You are on page 1of 204

Контролна единица

Chapter 15
Control Unit Operation
Микро-операции
• Компјутерот извршува програма
• Циклус на Земи / Изврши инструкција
• Секој циклус се состои од даден број чекори
▫ Види проточност
• Наречени микро-операции
• Секој чекор прави мала работа
• Атомична работа на процесорот
Составни елементи на извршувањето
на програмата
Земи (Fetch) - 4 регистри
• Memory Address Register (MAR)
▫ Поврзан на адресната магистрала
▫ Ја одредува адресата за операцијата читање или
запишување
• Memory Buffer Register (MBR)
▫ Поврзан на податочната магистрала
▫ Го чува податокот за запишување или последниот
прочитан податок
• Program Counter (PC)
▫ Ја чува адресата на следната инструкција која треба
да се земе
• Instruction Register (IR)
▫ Ја чува последно земената инструкција
Земи (Fetch) секвенца
• Адресата на следната инструкција е во PC
• Адресата (преку MAR) се става на адресната
магистрала
• Контролната единица издава команда READ
• Резултатот (податок од меморија) се појавува на
податочната магистрала
• Податокот од податочната магистрала се копира во
MBR
• PC се зголемува за 1 (паралелно со земањето
податок од меморија)
• Податокот (инструкцијата) се преместува од MBR
во IR
• MBR е сега слободен за следни земања податоци
Земи (Fetch) секвенца симболички
• t1: MAR <- (PC)
• t2: MBR <- (memory)
• PC <- (PC) +1
• t3: IR <- (MBR)
• (tx = временска единица/циклус на такт
сигналот)
• или
• t1: MAR <- (PC)
• t2: MBR <- (memory)
• t3: PC <- (PC) +1
• IR <- (MBR)
Правила за групирање на циклусот на
тактот
• Мора да се следи точна секвенца
▫ MAR <- (PC) мора да е пред
MBR <- (memory)
• Мора да се избегнат конфликти
▫ Не смее да се чита и запишува со истиот регистар
во исто време
▫ MBR <- (memory) и IR <- (MBR) не смее да се во
истиот циклус
• Исто така: PC <- (PC) +1 вклучува собирање
▫ користи ALU
▫ Може да има потреба од дополнителни микро-
операции
Индиректен циклус
• MAR <- (IRaddress) - адресното поле од IR
• MBR <- (memory)
• IRaddress <- (MBRaddress)

• MBR содржи адреса


• IR сега е во иста состојба како да се користело
директно адресирање
• (што значи ова за големината на IR?)
Циклус на прекин (interrupt)
• t1: MBR <-(PC)
• t2: MAR <- адреса за запишување
• PC <- адреса на процедура
• t3: memory <- (MBR)
• Ова е минимумот
▫ Може да има дополнителни микро-операции за
земање адреси
▫ N.B. Запишувањето на контекстот се прави преку
процедурата за обработка на прекинот, а не
микро-операции
Циклус на извршување (ADD)
• Различен за секоја инструкција
• пр. ADD R1,X – додади ја содржината на
локација X на регистер 1 , резултатот се
запишува во R1
• t1: MAR <- (IRaddress)
• t2: MBR <- (memory)
• t3: R1 <- R1 + (MBR)
• Забележи дека нема преклопување на микро-
операциите
Циклус на извршување (ISZ)
• ISZ X – зголеми и скокни ако е нула
▫ t1: MAR <- (IRaddress)
▫ t2: MBR <- (memory)
▫ t3: MBR <- (MBR) + 1
▫ t4: memory <- (MBR)
▫ if (MBR) == 0 then PC <- (PC) + 1
• забелешки:
▫ IF е една микро-операција
▫ микро-операциите се прават за време на t4
Циклус на извршување (BSA)
• BSA X – гранање и запишување на адреса
▫ Адресата на инструкцијата која следи по BSA се
запишува на локација X
▫ Извршувањето продолжува од X+1
▫ t1: MAR <- (IRaddress)
▫ MBR <- (PC)
▫ t2: PC <- (IRaddress)
▫ memory <- (MBR)
▫ t3: PC <- (PC) + 1
Инструкциски циклус
• Секоја фаза е разложена во секвенца од
елементарни микро-операции
• пр. Циклус на земи, индиректно, прекин
• Циклус на извршување
▫ По една низа на микро-операции за секој opcode
• Секвенците треба да се поврзат
• Ако се претпостави нов 2-bit регистер
▫ Код на инструкцискиот циклус (Instruction cycle code -
ICC) одредува во кој дел од циклусот се наоѓа
процесорот во моментот
 00: земи
 01: индиректно
 10: изврши
 11: прекин
Дијаграм на инструкцискиот циклус
Функциски барања – карактеризација
на контролната единица

• Дефинирање на основните елементи на


процесорот
• Опис на микро-операциите кои ги изведува
процесорот
• Одредување на функциите кои треба да ги
изведува контролната единица
Основни елементи на процесорот
• ALU
• Регистри
• Внатрешни податочни патеки
• Надворешни податочни патеки
• Контролна единица
Типови на микро-операции
• Пренос на податоци помеѓу регистри
• Пренос на податоци од регистер кон надвор
• Пренос на податоци од надвор во регистер
• Изведување на аритметички или логички
операции
Функции на контролната единица
• Секвенцирање
▫ Наведување на CPU да помине низ серија микро-
операции чекор по чекор
• Извршување
▫ Предизвикува изведување на секоја микро-
операција
• Ова се прави со користење на контролните
сигнали
Контролни сигнали
• Такт
▫ Една микро-инструкција (или множество
паралелни микро-инструкции) по такт циклус
• Инструкциски регистер
▫ Op-code за тековната инструкција
▫ Одредува кои микро-инструкции ќе се извршат
• Знаменца
▫ Состојба на CPU
▫ Резултати од претходни операции
• Од контролната магистрала
▫ прекини
▫ потврди
Модел на контролна единица
Контролни сигнали - излезни
• Во рамките на CPU
▫ Предизвикуваат преместување на податоци
▫ Активираат специфични функции на ALU
• Преку контролната магистрала
▫ До меморија
▫ До В/И модули
Пример секвенца на контролни
сигнали - Fetch
• MAR <- (PC)
▫ Контролната единица активира сигнал да ги
отвори портите помеѓу PC и MAR
• MBR <- (memory)
▫ Отвора порти меѓу MAR и адресната магистрала
▫ Контролен сигнал за читање од меморија
(Memory read)
▫ Отвора порти помеѓу податочната магистрала и
MBR
Податочни патеки и контролни сигнали
Внатрешна организација
• Вообичаено една внатрешна магистрала
• Портите го контролираат преместувањето на
податоци на и од магистралата
• Контролните сигнали го контролираат преносот
на податоци од и кон надворешната системска
магистрала
• Потребни се привремени регистри за точна
работа на ALU
CPU со
внатрешна
магистрала
Hardwired имплементација (1)
• CU е конечен автомат
• Влезови на контролната единица:
• Знаменца и контролна магистрала
▫ Секој бит значи нешто
• Инструкциски регистар
▫ Op-code предизвикува различни контролни
сигнали за секоја различна инструкција
▫ Уникатна логика за секој op-code
▫ Декодер го зема кодот и дава еден излез
 n бинарни влеза и 2n излези
Hardwired имплементација (2)
• Такт
▫ Повторувачка низа од пулсови
▫ Корисна за мерење на траењето на микро-
операциите
▫ Мора да биде доволно долга за да дозволи
пропагација на сигналите
▫ Различни контролни сигнали во различни
моменти од инструкцискиот циклус
▫ Потребен е бројач за различните контролни
сигнали за t1, t2 итн.
Контролна единица со декодирани
влезови
Проблеми со Hard Wired дизајните
• Комплексно секвенцирање и логика за микро-
операции
• Тешко за дизајн и тестирање
• Нефлексибилен дизајн
• Тешко за додавање нови инструкции
Внатрешна меморија
Chapter 5
Internal Memory
Карактеристики на меморија - општо
• Локација
• Капацитет
• Единица на пренос
• Метод на пристап
• Перформанси
• Физички тип
• Физички карактеристики
• Организација
Локација
• CPU
• Внатрешна
• Надворешна
Капацитет
• Големина на збор
▫ Природна единица на организација
• Број на зборови
▫ или бајти
Единица на пренос
• Внатрешна
▫ Обично одредена според ширината на
податочната магистрала
• Надворешна
▫ Обично блок кој е многу поголем од збор
• Адресибилна единица
▫ Најмалата локација која уникатно може да се
адресира
▫ Внатрешен збор
Методи на пристап (1)
• Секвенцијално
▫ Почни од почетокот и читај по ред
▫ Времето на пристап зависи од локацијата на
податоците и претходната локација
▫ пр. лента
• Директно
▫ Индивидуални блокови имаат уникатни адреси
▫ Пристапот е со скокање во близината плус
секвенцијално пребарување
▫ Времето на пристап зависи од локацијата и
претходната локација
▫ пр. диск
Методи на пристап (2)
• Случајно
▫ Локациите точно се идентификуваат со
индивидуални адреси
▫ Времето на пристап е независно од локацијата
или претходниот пристап
▫ пр. RAM
• Асоцијативно
▫ Податокот се лоцира со споредба на
содржината со дел од складиштето
▫ Времето на пристап е независно од локацијата
и претходниот пристап
▫ пр. кеш
Перформанси
• Време на пристап - латентност
▫ Времето помеѓу давање адреса и добивање на
точен податок
• Време на мемориски циклус
▫ потребно е време за меморијата да се
„опорави“ пред следниот пристап
▫ Времето на циклус е пристап + опоравување
• Брзина (Рата) на пренос
▫ Брзината со која може да се премести податок
Физички типови
• Полупроводнички
▫ RAM
• Магнетни
▫ Диск & лента
• Оптички
▫ CD & DVD
• Други
▫ Меур
▫ Холограм
Физички карактеристики
• Decay – губење на информацијата
• Volatility - нестабилност
• Erasable – можност да се брише
• Потрошувачка на енергија
Организација
• Физичко распоредување на битовите во
зборови
• Не е секогаш очигледно
• пр. преплетена - interleaved
Крајна линија
• Колку голема?
▫ Капацитет
• Колку брза?
▫ Времето е пари
• Колку скапа?

• Побрза -> поскапа по бит


• Поголема -> поефтина по бит
• Поголема -> побавна
Хиерархиска листа
• Регистри
• L1 кеш
• L2 кеш
• Главна меморија
• Дисков кеш
• Диск
• Оптички медиум
• Лента
Мемориска хиерархија
• Регистри
▫ Во CPU
• Внатрешна или Главна меморија
▫ Може да вклучи едно или повеќе нивоа на кеш
▫ “RAM”
• Надворешна меморија
▫ Складиште за поддршка и чување копии
Типови на полупроводнички
мемории
Тип на
меморија
Категорија Бришење
Механизам за
запишување
Постојаност

Меморија за
Random-access Електрично, на
читање и Електрично Volatile
memory (RAM) ниво на бајти
запишување

Read-only
Маски
memory (ROM) Меморија која
Не е можно
само се чита
Programmable
ROM (PROM)

Erasable PROM УВ светлина, на


(EPROM) ниво на чип Nonvolatile

Меморија Електрично
Electrically
претежно за Електрично, на
Erasable PROM
читање ниво на бајт
(EEPROM)
Електрично, на
Flash memory
ниво на блок
Полупроводничка меморија
• RAM
▫ Лошо име затоа што сите полупроводнички
мемории се со случаен пристап
▫ Читање/запишување
▫ Volatile
▫ Привремено складиште
▫ Статички или динамички
Операции на мемориска ќелија
Dynamic RAM
• Битовите се запишуваат како полнеж во
кондензатор
• Полнежите слабеат
• Има потреба од освежување дури и кога има
напојување
• Поедноставна градба
• Помала по бит
• Поефтина
• Потребни се кола за освежување
• Побавна
• Главна меморија
• Во основа аналогна
▫ Нивото на полнеж ја одредува вредноста
Dynamic RAM структура
Работа на DRAM
• Адресната линија е активна кога битот се чита или
запишува
▫ Затворен транзисторски прекинувач (проток на струја)
• Запишување
▫ Напон на бит линијата
– Високо за 1, ниско за 0
▫ Потоа сигнализација на адресната линија
– Пренесува полнеж во кондензаторот
• Читање
▫ Избрана адресна линија
– Транзисторот се вклучува
▫ Полнеж од кондензаторот преку бит линијата кон засилувачот
– Се споредува со референтна вредност за да се одреди дали е 0 или 1
▫ Мора да се освежи полнежот на кондензаторот
Static RAM
• Битовите се зачувани како
вклучени/исклучени прекинувачи
• Нема слабеење на полнеж
• Покомплексна градба
• Поголема по бит
• Поскапа
• Нема потреба од кола за освежување
• Побрза
• Кеш
• Дигитална
▫ Користи флип-флопови
Stating RAM Structure
SRAM споредено со DRAM
• Двете се непостојани
▫ Потребно е напојување за да се зачуваат
податоците
• Динамички ќелии
▫ Поедноставни за градба, помали
▫ Погусто спакувани
▫ Поефтини
▫ Имаат потреба од освежување
▫ Поголеми мемориски единици
• Статички
▫ Побрзи
▫ Кеш
Read Only Memory (ROM)
• Перманентно складиште
▫ Постојана - Nonvolatile
• За микропрограмирање
• Библиотечни процедури
• Системски програми (BIOS)
• Функциски табели
Типови на ROM
• Се запишува во текот на производството
▫ Многу скапо за малку користење
• Програмабилен (еднаш)- PROM
▫ Потребна е специјална опрема за
програмирање
• “најчесто” за читање
▫ Бришлив програмабилен (EPROM)
– Се брише со УВ светлина
▫ Електрично бришлив (EEPROM)
– Многу подолго се запишува од чита
▫ Флеш меморија
– Цела меморија се брише електрично
Организација
• 16Mbit чип може да е организиран како 1M од
16 битни зборови
• Бит по чип систем има 16 групи од 1Mbit
чипови со 1 на секој збор во чип 1 итн.
• 16Mbit чип може да е организиран како 2048
x 2048 x 4bit поле
▫ Го намалува бројот на адресни пинови
– Мултиплексира адреса на ред и адреса на колона
– 11 пина за адресирање (211=2048)
– Со додавање на уште 1 пин се зголемува опсегот
на вредности на x 4 капацитет
Типичен 16 Mb DRAM (4M x 4)
Пакување
Организација на
256kByte модул
Организација на 1MByte модул
Преплетена меморија
Interleaved Memory
• Колекција од DRAM чипови
• Групирани во мемориски банки
• Банките независно опслужуваат барања за
читање или запишување
• K банки може да опслужат k барања
едновремено
Корекција на грешка
• Хардверска грешка
▫ Перманентен дефект
• Софтверска грешка
▫ Случајна, не-деструктивна
▫ Нема перманентно уништување на меморијата
• Се детектира со користење на Хамингов код
Код за корекција на грешка
Напредна DRAM организација
• Основен DRAM ист уште од првите RAM
чипови
• Подобрен DRAM
▫ Содржи и мал SRAM
▫ SRAM ја чува последно прочитаната линија
(кеш!)
• кеш DRAM
▫ поголема SRAM компонентна
▫ Се користи како кеш или сериски бафер
Синхрон DRAM (SDRAM)
• Пристапот се синхронизира со надворешен такт
• Адресата се дава на RAM
• RAM го наоѓа податокот (CPU чека кај
конвенционален DRAM)
• Бидејќи SDRAM ги преместува податоците со
системскиот такт, CPU знае кога податокот ќе биде
спремен
• CPU не мора да чека, може да прави нешто друго
• Режим на изливи (Burst) овозможува SDRAM да
постави проток од податоци и да ги излие во блок
RAMBUS
• Прифатено од Intel за Pentium & Itanium
• Главен соперник на SDRAM
• Вертикално пакување – сите пинови на една
страна
• Размена на податоци преку 28 жици
< 12 cm должина
• Магистралата адресира до 320 RDRAM чипа
со 1.6Gbps
• Асинхрон блок протокол
▫ 480 ns време на пристап
▫ потоа 1.6 Gbps
DDR SDRAM
• SDRAM може да испраќа податок само еднаш
по такт
• Двојна-податочна-брзина SDRAM може да
испраќа податоци два пати по такт
▫ Растечка и опаѓачка ивица
DDR2, DDR3, DDR4 SDRAM
• DDR2 – односот помеѓу внатрешен и
надворешен такт е 2
▫ 4 пати побрз
• DDR3 – 2 пати побрз од DDR2
▫ 4 пати побрз такт
• DDR4 (2014) – поголема густина на пакување,
повисока фреквенција на работа
▫ double data rate fourth-generation synchronous
dynamic random-access memory
▫ DIMMs со капацитет до 512 GB
– dual in-line memory module
Кеш меморија
Chapter 4
Cache Memory
Мемориска хиерархија - дијаграм
Надолу низ хиерархијата
• Се намалува цената по бит
• Се зголемува капацитетот
• Се зголемува времето на пристап
• Се намалува фреквенцијата на пристап до
меморијата од процесорот
Значи треба брзо?
• Можно е да се направи компјутер кој користи
само статички RAM
• значи би било многу брзо
• Значи нема потреба од кеш
• Значи ќе чини многу многу
Локалност на референцирање
• За време на извршување на програмата,
мемориските референци се обично
кластерирани
• пр. јамки
Кеш
• Мало количество на брза меморија
• Стои помеѓу нормалната главна меморија и
CPU
• Може да е лоциран на CPU чип или модул
Кеш и главна меморија
Структура на кеш/главна меморија
Работа на кеш - преглед
• CPU бара содржина на мемориска локација
• Се проверува кешот
• Ако е таму, податокот се зема од кеш (брзо) =
погодок
• Ако не е таму, се чита потребниот блок од
главната меморија во кешот = промашување
• Потоа податокот се доставува од кешот до
CPU
• Кешот вклучува ознаки за точна
идентификација на блокот од главна
меморија
Работа на читање од кеш - дијаграм
Типична кеш организација
Дизајн на кеш
• Адресирање
• Големина
• Функција на мапирање
• Алгоритам на замена
• Полиса на запишување
• Големина на блок
• Број на кешови
Кеш адресирање
• Каде стои кешот?
▫ Меѓу процесорот и единицата за управување со виртуелната
меморија
▫ Меѓу MMU и главната меморија
• Логички кеш (виртуелен кеш) чува податоци со
користење на виртуелни адреси
▫ Процесорот пристапува до кеш директно
▫ Пристапот до кеш е побрз, пред MMU превод на адресата
▫ Виртуелните адреси го користат истиот адресен простор за
различни апликации
– Мора да се испразни кешот на секоја промена на контекстот
• Физичкиот кеш ги чува податоците со користење на
физичките адреси на главната меморија
Големината значи
• Цена
▫ Поголем кеш е скап
• Брзина
▫ Поголем кеш е побрз (до дадена точка)
▫ Проверка на кешот за податок одзема време
Споредба на големина на кеш
Year of
Processor Type L1 cache L2 cache L3 cache
Introduction
IBM 360/85 Mainframe 1968 16 to 32 KB — —
PDP-11/70 Minicomputer 1975 1 KB — —
VAX 11/780 Minicomputer 1978 16 KB — —
IBM 3033 Mainframe 1978 64 KB — —
IBM 3090 Mainframe 1985 128 to 256 KB — —
Intel 80486 PC 1989 8 KB — —
Pentium PC 1993 8 KB/8 KB 256 to 512 KB —
PowerPC 601 PC 1993 32 KB — —
PowerPC 620 PC 1996 32 KB/32 KB — —
PowerPC G4 PC/server 1999 32 KB/32 KB 256 KB to 1 MB 2 MB
IBM S/390 G4 Mainframe 1997 32 KB 256 KB 2 MB
IBM S/390 G6 Mainframe 1999 256 KB 8 MB —
Pentium 4 PC/server 2000 8 KB/8 KB 256 KB —
High-end server/
IBM SP 2000 64 KB/32 KB 8 MB —
supercomputer
CRAY MTAb Supercomputer 2000 8 KB 2 MB —
Itanium PC/server 2001 16 KB/16 KB 96 KB 4 MB
SGI Origin 2001 High-end server 2001 32 KB/32 KB 4 MB —
Itanium 2 PC/server 2002 32 KB 256 KB 6 MB
IBM POWER5 High-end server 2003 64 KB 1.9 MB 36 MB
CRAY XD-1 Supercomputer 2004 64 KB/64 KB 1MB —
Функција на мапирање - пример
• Кеш од 64kByte
• Кеш блок од 4 bytes
▫ Значи кешот е 16k (214) линии од 4 бајти
• 16MBytes главна меморија
• 24 bit адреса
▫ (224=16M)
Директно мапирање
• Секој блок од главната меморија се мапира во
само 1 кеш линија
▫ Ако блок е во кешот, тој мора да е на едно
одредено место
• Адресата е во 2 дела
• Најмалку значајните w бита го одредуваат
уникатниот збор
• Најзначајните s бита одредуваат еден
мемориски блок
• MSB битовите се делат во поле за кеш линија
r и ознака s-r
Директно мапирање
структура на адреса
Ознака s-r Линија или слот r Збор w
8 14 2

• 24 bit адреса
• 2 bit идентификатор на збор (4 byte блок)
• 22 bit идентификатор на блок
▫ 8 bit ознака (=22-14)
▫ 14 bit слот или линија
• Нема 2 блока во иста линија со исто поле за ознака
• Содржината на кешот се проверува со наоѓање на линијата и
проверка на ознаката
Директно мапирање од кеш во главна меморија
Директно мапирање
табела на кеш линии
Кеш линија Ги чува блоковите од
главна меморија
0 0, m, 2m, 3m…2s-m

1 1,m+1, 2m+1…2s-m+1


m-1 m-1, 2m-1,3m-1…2s-1
Директно мапирање
оганизација на кешот
Директно
мапирање
пример
Директно мапирање за и против
• Едноставно
• Ефтино
• Фиксна локација за даден блок
▫ Ако програма повторувачки пристапува до 2
блока кои се мапираат во истата линија, бројот
на промашувања во кешот е многу голем
Жртвен кеш
• Помала казна за промашувања
• Памти што било отфрлено
▫ Веќе е земено
▫ Да се искористи пак со помала казна
• Целосно асоцијативен
• 4 до 16 кеш линии
• Меѓу директно мапиран L1 кеш и следното
мемориско ниво
Асоцијативно мапирање
• Блок од главната меморија може да се вчита
во било која кеш линија
• Мемориската адреса се интерпретира како
ознака и збор
• Ознаката уникатно го идентификува блокот
од меморија
• Секоја ознака на линија се проверува за
совпаѓање
• Пребарувањето на кешот станува скапо
Асоцијативно мапирање
кеш со главна меморија
Организација на целосно
асоцијативен кеш
Асоцијативно
мапирање
пример
Асоцијативно мапирање
структура на адреса
збор
Ознака 22 bit 2 bit
• 22 bit ознака се запишува со секој 32 bit блок
податоци
• Полето со ознака се споредува со ознаките во кешот
за погодок
• Најмалку значајните 2 bits од адресата одредуваат
кој 8 bit збор се бара од 32 bit податочен блок
Мапирање со асоцијативни
множества
• Кешот се дели на даден број множества
• Секое множество содржи даден број линии
• Даден блок се мапира во било која линија во
дадено множество
▫ пр. блокот B може да биде во било која линија
на множеството i
• пр. 2 линии по множество
▫ 2 насочно асоцијативно мапирање
▫ Даден блок може да биде во една од 2 линии во
само едно множество
Пример
мапирање со асоцијативни
множества
• 13 bit број на множество
• Бројот на блокови во главната меморија е
modulo 213
• 000000, 0A0000, 0B0000, 0C0000 … се
мапираат во истото множество
Мапирање од главна меморија во кеш:
v асоцијативни множества
Мапирање од главна меморија во кеш:
k-насочно асоцијативно
Организација на кешот
K-насочно со асоцијативни
множества
Мапирање со асоцијативни
множества
структура на адреса
збор
Ознака 9 bit Множество 13 bit 2 bit

• Полето множество се користи да се одреди


множеството кое ќе се гледа
• Се споредува полето за ознака за да се одреди
дали има погодок
Двонасочно мапирање со
асоцијативни множества пример
Кеш директен и со асоцијативни
множества разлики во перформанси
• Значајни за најмалку 64kB за 2-насочен
• Разлика меѓу 2-насочен и 4-насочен за 4kB
многу помала од 4kB до 8kB
• Со асоцијативноста расте комплексноста на
кешот
• Не е оправдан за зголемување на кешот од
8kB на 16kB
• над 32kB не дава подобрувања
• (симулациски резултати)
промена на асоцијативноста за
различни кеш големини
1.0
0.9
0.8
0.7
Hit ratio

0.6
0.5
0.4
0.3
0.2
0.1
0.0
1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1M
Cache size (bytes)
direct
2-way
4-way
8-way
16-way
Алгоритми за замена (1)
директно мапирање
• Нема избор
• Секој блок се мапира во само една линија
• Замени ја таа линија
Алгоритми за замена (2)
асоцијативно & асоцијативни множества
• Хардверски имплементиран алгоритам
(брзина)
• Најодамна користен = Least Recently used
(LRU)
• пр. кај 2 насочни асоцијативни множества
▫ Кој од 2та блока е lru?
• First in first out (FIFO)
▫ Замени го блокот кој бил најдолго во кешот
• Најретко користен = Least frequently used
▫ Замени го блокот кој има најмалку погодоци
• Случајно
Полиси за запишување
• Не смее да се пребрише блок во кешот ако
главната меморија не е освежена со
промените
• повеќе CPU може да имаат индивидуални
кешови
• I/O може директно да ја адресира главната
меморија
Запиши со пренос - Write through
• Сите запишувања одат во главната меморија
како и во кешот
• повеќе CPU може да ја мониторираат
главната меморија за да го чуваат локалниот
(за CPU) кеш точен
• Многу сообраќај
• Се забавува запишувањето
Запиши наназад - Write back
• Промените иницијално се прават само во
кешот
• Се користи „Update bit“ за кеш слотот за да се
означи постоење промена
• Ако блокот треба да се замени, запиши во
главна меморија само ако битот е 1
• Другите кешови не се синхронизирани
• I/O мора да пристапува до главната меморија
преку кешот
• 15% од мемориските референци се
запишувања
Кохерентност на кешот
• Сите кешови (за сите CPU) да имаат валидни
податоци
• Следење на магистралата со запишување со
пренос
• Хардверска транспарентност
• Споделена меморија без кеш
Големина на линија
• Земи го не само бараниот збор туку и даден број на
соседни зборови
• Зголемена големина на блокот првично го зголемува
% на погодоци
▫ Принципот на локалност
• % на погодоци ќе се намали како што блокот станува
поголем
▫ Веројатноста за користење на ново земената информација
станува помала од веројатноста за повторна употреба на
заменетата
• Поголеми блокови
▫ Намали го бројот на блокови кој го собира во кешот
▫ Податоците се пребришуваат кратко откако ќе се земат
▫ Секој дополнителен збор е помалку локален па помалку
веројатно е дека ќе е потребен
• Не е најдена дефинитивна оптимална вредност
• 8 до 64 бајти е разумно
• за HPC системи, 64- и 128-byte највообичаено
Кешови на повеќе нивоа
• Големата густина на логиката овозможува кеш
на чипот
▫ Побрзо од пристап на магистрала
▫ Ја ослободува магистралата за други преноси
• Вообичаено се користи кеш на и кеш одвоен од
чипот
▫ L1 на чип, L2 одвоен статички RAM
▫ L2 пристапот е многу побрз од DRAM или ROM
▫ L2 често користи одвоена податочна патека
▫ L2 сега може да е на чип
▫ Што значи има L3 cache
– Пристап до магистрала или сега на чип…
Унифицирани наспроти поделени
кеш мемории
• Еден кеш за податоци и инструкции или два,
еден за податоци и еден за инструкции
• Предности за унифициран кеш
▫ Повисока рата на погодок
– ја балансира оптовареноста на земање
инструкции и податоци
– Само еден кеш за дизајн и имплементација
• Предности на поделен кеш
▫ Елиминира кеш натпревар меѓу единицата за
земање/декодирање инструкци и единицата за
извршување
– Важно кај pipelining
Pentium 4 блок дијаграм
ARM кеш и бафер за запишување - организација
Виртуелна меморија
Chapter 8
Operating System Support
Цели и функции на оперативниот
систем

• Употребливост
▫ ОС го прави компјутерот поедноставен за
употреба
• Ефикасност
▫ ОС овозможува подобра употреба на
компјутерските ресурси
Нивоа и погледи на компјутерски
систем
Услуги на оперативниот систем
• Дизајн на програми
• Извршување на програми
• Пристап до В/И уреди
• Контролиран пристап до датотеки
• Пристап до системот
• Детекција на грешка и одговор
• Водење статистички информации
ОС како менаџер на ресурси
Само една програма
Мулти-програмирање (Multitasking)
со 2 програми
Мулти-програмирање со 3 програми
Управување со меморија
• Uni-program
▫ Меморијата се дели на 2 дела
▫ Еден за оперативниот систем (монитор)
▫ Еден за програмата која тековно се извршува
• Multi-program
▫ “корисничкиот” дел се дели и споделува помеѓу
активните процеси
Swapping
• проблем: В/И е многу бавен во споредба со
CPU така што дури и во мулти-
програмирачки систем, CPU може да „врти во
празно“ голем дел од времето
• Решенија:
▫ Зголемување на главната меморија
– скапо
– Води кон поголеми програми
▫ Swapping
Што е Swapping?
• Долгорочна редица од процеси запишана на
диск
• Процесите се “заменуваат” со појава на
слободен простор
• Кога процесот ќе заврши тој се вади од
главната меморија
• Ако ниту еден од процесите во меморија не се
спремни (пр. В/И блокирани)
▫ Замени блокиран процес во средната редица
▫ Стави спремен процес или нов процес
▫ но swapping е В/И процес…
Користење на
Swapping
Партиционирање - Partitioning
• Поделба на меморијата во делови за
алокација за процеси (вклучувајќи го и ОС)
• Со еднаква или различна големина
• Партиции со фиксна големина
• Партиции со динамичка големина
Релокација
• Нема гаранција дека процесот ќе се вчита во
истото место во меморија
• Инструкциите содржат адреси
▫ Локации на податоци
▫ Адреси за инструкции (гранање)
• Логичка адреса – релативно на почетокот на
програмата
• Физичка адреса – вистинската локација во
меморија (овој пат)
• Автоматска конверзија со користење на базна
адреса
Страничење - Paging
• Поделба на меморијата во мали делови со
еднаква големина – рамки за страници
• Поделба на програмите (процесите) во
еднакво големи мали делови - страници
• Алокација на потребниот број рамки на
процес
• ОС одржува листа од слободни рамки
• Процесот не бара последователни рамки
• Се користи табела на страници за водење
сметка
Алокација на слободни рамки
Логички и физички адреси - Paging
Виртуелна меморија
• Страничење по потреба – on demand paging
▫ Нема потреба сите страници на процесот да
бидат во меморија
▫ Страниците се носат по потреба
• Page fault
▫ Бараната страница ја нема во меморија
▫ ОС мора да ја донесе бараната страница
▫ Може да треба да исфрли страница за да
направи место
▫ Избери страница за исфрлање врз основа на
скорешната историја
Thrashing
• Премногу процеси во премалку меморија
• ОС го троши целото време на замена
• Се прави малку или никаква вистинска
работа
• Светилката за дискот е постојано вклучена
• Решенија
▫ Добри алгоритми за замена на страница
▫ Намалување на бројот на процеси кои работат
▫ Поголема меморија
Бонус
• Нема потреба целиот процес да биде во
меморија за да работи
• Може да се носат страници по потреба
• значи – сега може да работат процеси кои се
поголеми од вкупната главна меморија

• Главната меморија е наречена реална


меморија
• Корисникот/програмерот гледаат многу
поголема меморија – виртуелна меморија
Структура на инвертирана табела на
страници
Translation Lookaside Buffer
• Секоја виртуелна мемориска референца
предизвикува 2 пристапи до физичката
меморија
▫ Земи запис од табелата со страници
▫ Земи податок
• Се користи специјален кеш за табелата за
страници
▫ TLB
Работа на TLB
TLB и работа на кешот
Сегментација
• Страничењето не е (вообичаено) видливо за
програмерот
• Сегментацијата е видлива за програмерот
• Обично различни сегменти се алоцирани за
програма и податоци
• Може да има повеќе програмски и податочни
сегменти
Предности на сегментацијата
• Ја поедноставува работата со растечките
податочни структури
• Овозможува програмите да бидат променети
и независно да се компајлираат без повторно
линкување и повторно вчитување
• Се нуди за споделување меѓу процесите
• Се нуди за заштита
• Некои системи комбинираат сегментација со
страничење
Pentium II механизам за превод на адреси
Pentium II заштита
• Битови за заштита (Protection) со 4 нивоа на
привилегии
▫ 0 најзаштитен 3 најмалку
▫ Користењето на нивоата е софтверски зависно
▫ Обично ниво 3 за апликации, ниво 1 за ОС и
ниво 0 за јадро (kernel) (ниво 2 не се користи)
▫ Ниво 2 може да се користи за апликации кои
имаат внатрешна безбедност, пр. база
▫ Некои инструкции работат само на ниво 0
ARM преглед на мемориски систем
ARM превод на виртуелни адреси за мали страници - дијаграм
Надворешна меморија
Chapter 6
External Memory
Типови на надворешна меморија
• Магнетен диск
▫ RAID
▫ Removable
• Оптичка
▫ CD-ROM
▫ CD-Recordable (CD-R)
▫ CD-R/W
▫ DVD
• Магнетна лента
Магнетен диск
• Диск супстрат прекриен со магнетизиран
материјал
• Супстратот порано бил алуминиум
• Сега стакло
▫ Подобрена униформност на површината
– Зголемена надежност
▫ Намалување на дефектите на површината
– Намалени читај/запиши грешки
▫ Намалени висини за лебдење (види понатаму)
▫ Подобра тврдина
▫ Подобра отпорност на шок/штета
Механизми на читање и запишување
• Запишување и читање преку проводен калем наречен глава
• Може да има една чита/запишува глава или одвоени
• За време на читање/запишување, главата е стационарна, чинијата
ротира
• Запишување
▫ Струја низ калемот генерира магнетно поле
▫ Се испраќаат пулсови до главата
▫ Магнетниот образец се запишува на површината долу
• Читање (традиционално)
▫ Магнетно поле кое се движи релативно на калемот генерира струја
▫ Калемот е ист и за читање и за пишување
• Читање (современо)
▫ Посебна глава за читање, блиску до главата за запишување
▫ Парцијално заштитен магнетно отпорен сензор (MR)
▫ Електричната отпорност зависи од насоката на магнетното поле
▫ Работа со висока фреквенција
– Поголема густина на запис и брзина
Индуктивно запишување MR читање
Организација на податоците и
форматирање
• Концентрични прстени или траки (tracks)
▫ Празнини меѓу траките
▫ Намалување на празнината за зголемување на
капацитетот
▫ Ист број бити по траки (променлива густина на
пакување)
▫ Константна аголна брзина
• Траките се поделени во сектори
• Минимална големина на блок е еден сектор
• Може да има повеќе од 1 сектор по блок
Изглед на податоци на диск
Брзина на диск
• Бит блиску до центарот на ротирачкиот диск поминува
фиксна точка побавно од бит на периферијата
• Зголемување на растојанието меѓу битови на различни
траки
• Дискот ротира со константна аголна брзина (CAV)
▫ Дава сектори во облик на пита и концентрични ленти
▫ Адресибилност на одвоени траки и сектори
▫ Помести ја главата на дадена трака и чекај за даден сектор
▫ Се троши простор на надворешните траки
– Помала густина на податоци
• Може да се користат зони за зголемување на
капацитетот
▫ Секоја зона има фиксен број битови по трака
▫ Покомплексно коло
Дијаграм на методи за
распоредување на дискот
Наоѓање на сектори
• Треба да се идентификува почетокот на трака
и сектор
• Форматирање на диск
▫ Дополнителна информација која не е достапна
за корисникот
▫ Ги означува траките и секторите
Winchester Disk Format
Seagate ST506
Карактеристики
• Фиксна (ретко) или мобилна глава
• Фиксен или може да се вади
• Една или две (вообичаено) страни
• Со една или повеќе чинии
• Механизам на главата
▫ Контактен (Floppy)
▫ Фиксна празнина
▫ Лебдечки (Winchester)
Фиксна/Мобилна глава
• Фиксна глава
▫ Една читај запиши
глава по трака
▫ Главите се прикачени
на фиксна „рака“
• Мобилна глава
▫ Една читај запиши
глава по страна
▫ Прикачени на
подвижна „рака“
Може да се вади или не
• Може да се вади
▫ Може да се извади и да се замени со друг диск
▫ Обезбедува неограничен капацитет за
запишување
▫ Лесен трансфер на податоци меѓу системи
• Не може да се вади
▫ Перманентно закачен
Со повеќе чинии
• Една глава по страна
• Главите се споени и подредени
• Подредените траки на секоја чинија
формираат цилиндри
• Податоците се земаат по цилиндар
▫ Намалува движење на главите
▫ Зголемува брзина (количина на пренос)
Со повеќе чинии
Траки и цилиндри
Floppy Disk
• 8”, 5.25”, 3.5”
• Мал капацитет
▫ до 1.44Mbyte (2.88M никогаш популарни)
• Бавни
• Универзални
• Ефтини
• Надминати
Winchester Hard Disk (1)
• Развиен од IBM во Winchester (USA)
• Затворена единица
• Една или повеќе чинии (дискови)
• Главите лебдат на граничен слој од воздух
додека дискот се врти
• Многу мала глава во споредба со диск
празнина
• Стануваат по робустни
Winchester Hard Disk (2)
• Универзален
• Ефтин
• Најбрзо надворешно складиште
• Станува поголемо со текот на времето
▫ 250, 500 GB – 1-2 TB се сега типични
Брзина
• Време на барање - Seek time
▫ Поместување на главата на точната трака
• (ротационо) доцнење
▫ Чекањето податокот да изротира под главата
• Време на пристап = барање + доцнење
• Брзина на пренос на податоци
Временско усогласување на диск
В/И пренос
Типични параметри за тврд диск
Оптичко складиште CD-ROM
• Оригинално за аудио
• 650Mbytes за повеќе од 70 мин аудио
• Поликарбонат прекриен со високо
рефлективен слој, обично алуминиум
• Податоците се запишуваат како дупки
• Се чита со рефлектирачки ласер
• Константна густина на пакување
• Константна линеарна брзина
Работа на CD
CD-ROM брзини
• Аудиото е со една брзина
▫ Константна линеарна брзина
▫ 1.2 ms-1
▫ трака (спирала) долга 5.27km
▫ дава 4391 секунди = 73.2 мин
• Другите брзини се пишуваат како мултипли
од
• пр. 24x
• Дадената брзина е максималната која може
да ја постигне уредот
CD-ROM формат

• Режим 0=празно податочно поле


• Режим 1=2048 byte податок+корекција на
грешка
• Режим 2=2336 byte податок
Случаен пристап на CD-ROM
• Тешко
• Главата се мести на груба позиција
• Се поставува точната брзина
• Се чита адресата
• Се поместува на бараната локација
CD-ROM за & против
• Голем капацитет (?)
• Лесно за масовно производство
• Removable
• Робустно

• Скапо за мал број


• Бавно
• Само за читање
Други оптички складишта
• CD-Recordable (CD-R)
▫ WORM=write once read many
▫ Компатибилно со CD-ROM drives
• CD-RW
▫ Може да се брише
▫ Прифатливи цени
▫ Повеќето се CD-ROM drive компатибилни
▫ Промена на фаза
– Материјалот има 2 различни рефлексии во
различни фазни состојби
DVD - технологија
• Повеќе-слојна
• Многу голем капацитет (4.7G по слој)
• Цел филм на еден диск
▫ со MPEG компресија
• Конечно стандардизиран
• Филмовите имаат регионален код
• Players пуштаат само филмови од точен
регион
• Може да се “поправи”
CD и DVD
High Definition Optical Disks
• Дизајнирани за видеа со висока резолуција
• Многу поголем капацитет од DVD
▫ Ласер со пократка бранова должина
– Сино-виолетов опсег
▫ Помали дупки
• HD-DVD
▫ 15GB од една страна со еден слој
• Blue-ray
▫ Податочниот слој поблиску до ласерот
– По тесен фокус, помалку дисторзија, помали
дупки
▫ 25GB на еден слој
▫ достапни read only (BD-ROM), Recordable once
(BR-R) и re-recordable (BR-RE)
Карактеристики на оптичка меморија
Магнетна лента
• Сериски пристап
• Бавна
• Многу ефтина
• За чување копија и архивирање
• Linear Tape-Open (LTO) Tape Drives
▫ Развиени во доцните 1990ти
▫ Open source алтернатива на затворените
системи со ленти
Linear Tape-Open (LTO) Tape Drives
LTO-1 LTO-2 LTO-3 LTO-4 LTO-5 LTO-6 LTO-7 LTO-8 LTO-9 LTO-10 LTO-11 LTO-12
Dec. Dec. 2017
Release date 2000 2003 2005 2007 2010 TBA TBA TBA TBA
2012 2015 (Q4)
Native/raw
100 GB 200 GB 400 GB 800 GB 1.5 TB 2.5 TB 6.0 TB 12 TB 24 TB 48 TB 96 TB 192 TB
data capacity
Max
uncompressed 20 40 80 120 140 160 300 360 TBA TBA TBA TBA
speed (MB/s)
Time to write a
full tape at
max 1:25 1:25 1:25 1:50 3:10 5:30 5:55 9:15 TBA TBA TBA TBA
uncompressed
speed(hh:mm)
Compression
Yes, "2:1" Yes, "2.5:1" Planned, "2.5:1"
capable?
WORM
No Yes Planned
capable?
Encryption
No Yes Planned
capable?
Max. number
1 (no partitioning) 2 4 Planned
of partitions
Првите дискови:
• Капацитет: 3.75 MB
• Физичка големина: 87.9 ft3
• цена: 15,000$/MB

• Seek Time: 600 ms


• Брзина на ротирање: 1200 RPM
Спецификации на чинија
• капацитет: 80GB – 3 TB
• Физичка големина: .002 ft3
• цена: 10¢/ GB

• Seek Time: 9ms


• Брзина на ротирање: 7200-10000 RPM
Најбрзиот тврд диск
WD VelociRaptor:
žкапацитет: 600GB
žцена: 289.99$
žЦена по капацитет: 48¢/ GB

žSeek Time: 7ms


žБрзина на ротирање: 10000 RPM

žСеквенцијално читај-пишувај: 157 MB/s


žСлучајно читање: 1 MB/s
žСлучајно запишување: 1 MB/s
žIOPS: 905
https://www.lifewire.com/best-sata-hard-drives-833475
OCZ Vertex 2
žкапацитет: 60GB-240GB
žцена: $209.99(120 GB)
žЦена по капацитет: 1.74$/GB

žСеквенцијално читање: 265.5 MB/s


žСеквенцијално запишување: 251.9 MB/s

žСлучајно читање: 62 MB/s


žСлучајно запишување: 164.9 MB/s
žIOps: 50,000
Историја
• Првиот SSD не е од 2007, туку од 1976…
▫ Имал капацитет од само 2 MB
• Во 2007:
▫ NAND Flash (измислена во 1980)
– Non-Volatile систем за складирање
– Се користи во USB Flash дискови, MP3 Players &
SSDs
– Повеќе типа: Single Level Cell(SLC) & Multi Level
Cell(MLC)
– Читање и запишување со Погоди и провери
Читање и Запишување

SLC Flash MLC Flash

žПримени напон
žЧекај реакција
▫ Врати резултат или
▫ Примени повеќе напон, повтори
Перформанси на SLC vs. MLC
• разлика?
▫ Бидејќи има само 2 можни вредности кај SLC
потребно е само 1 напон да врати 0 или 1
▫ MLC бара максимум 3 различни напони за да
се обезбеди дека ќе се најде вредноста.

▫ Брзина на случајно читање:


– SLC: 25 µs MLC: 50 µs
▫ Брзина на случајно запишување:
– SLC: 250 µs MLC: 900 µs
Контролен тек на процесот
Што го прави SSD специјален?
žSSD ја има истата технологија на USB Flash
дискови и тие работат со околу 5-40MB/s.

žШто ако земеме 10 USB Flash дискови


поврзани во raid слично на HDD?
▫ Капацитетот ќе биде околу 40GB – 320GB
▫ Можни брзини на пристап од 50-400MB/s
Структура на плочата
žСекоја SSD плоча содржи даден број на
NAND ICs, чипови кои се користат за
складирање податоци, зависно од цената на
плочата.

žСекоја SDD плоча исто така содржи даден


број на канали, обично еден по NAND IC, кои
овозможуваат контролерот да комуницира со
секое NAND IC.
Паралелизам
• Брзината на SSD доаѓа од фактот дека секое
од NAND IC може да се пристапи
едновремено.

• За разлика од HDDs со чинија кои имаат


читање-запишување на иста локација, SSDs
се труди да ги растури податоците
униформно по NAND ICs за максимална
достапност
Што е подобро?
• Се се чува на SSD:
▫ Скоро инстантно време на читање и
запишување
▫ Можност да се чита или запишува на повеќе
локации одеднаш
▫ Брзината на дискот скалира екстремно добро
со бројот на NAND ICs на плочата

• Но…
Што се случува со бришењето?
žЗа да се избрише вредност од флеш
меморијата, оригиналниот напон мора да се
ресетира на неутрално пред да се примени
нов напон, т.н. write amplification.

žБрзина на случајно бришење:


▫ SLC 2ms по блок MLC 2ms по блок

žШто е блок?
Структура на меморија
• 1 или 2 bits не се доволно
• Потребни се страници!!!
▫ 1 страница= 4KB
• Блок = 128 страници= 512 KB
• Рамнина = 1024 блока = 512 MB
▫ Зависно од плочата комбинациите
продолжуваат се додека не се дојде до еден
чип, NAND IC, на плочата
Ахиловата пета на SSD
žМоже да се чита и запишува една страница
податоци на SSD, но се брише на ниво на блок

žДополнително, страницата мора да биде празна


пред да се запишува на неа.

žДа биде уште полошо, стандарден MLC може да


се брише само 10,000 пати пред да се расипе.

žрешение: датотеките не се бришат кога ќе се


означат за избришани од страна на ОС.
Оригиналното решение
žНаместо да се брише блокот и да се запише
променетиот блок со новата страница назад на
оригиналната локација, само се запишува
променетиот блок на нова локација во меморија.
žГолем број дискови биле изработени со ова
решение без да се размисли што ќе се случи кога
дискот ќе се исполни
žОткако дискот ќе се исполни, времето за
запишување на блок податоци расте од 250 µs на
250 µs + 2ms затоа што сега мора и да брише
блок едновремено. Вака SSDs стануваат побавни
од нормалните тврди дискови кога се запишува.
Ново решение од 2009
žЗошто да не се избрише датотеката тогаш кога
ОС ќе ја избрише или релативно кратко време
после тоа и со тоа да се избрише страницата во
блокот?
žОва го решава проблемот на снемување простор
на дискот, но што се случува кога треба да се
презапише (overwrite) датотека, како на пример
запишување на нова верзија на word документ?
žСепак нема друго решение освен да се прочита
блокот кој ја содржи оригиналната датотека во
кеш и да се избрише, но постои избор дали тоа
да се направи пред или по запишувањето. Што е
подобро?
Разлики во имплементација
žНема голема разлика помеѓу NAND Flash
меморијата која се користи во различните
SSD бидејќи сите се направени од 4
различни производители, и сите го користат
истиот дизајн.

žГлавната разлика кај дисковите е во


контролерот кој се користи. Контролерот е
тој кој одлучува кои алгоритми да ги користи
и како да управува со меморијата.
Најдобри SSD денес
• Capacity: 250GB/500GB/1TB
• read up to 3,200MBps
• write time up to 1,900MBps
• PCIe interface

https://www.techradar.com/news/best-solid-state-drives-ssds

You might also like