Professional Documents
Culture Documents
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)
Меморија за
Random-access Електрично, на
читање и Електрично Volatile
memory (RAM) ниво на бајти
запишување
Read-only
Маски
memory (ROM) Меморија која
Не е можно
само се чита
Programmable
ROM (PROM)
Меморија Електрично
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
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
• Премногу процеси во премалку меморија
• ОС го троши целото време на замена
• Се прави малку или никаква вистинска
работа
• Светилката за дискот е постојано вклучена
• Решенија
▫ Добри алгоритми за замена на страница
▫ Намалување на бројот на процеси кои работат
▫ Поголема меморија
Бонус
• Нема потреба целиот процес да биде во
меморија за да работи
• Може да се носат страници по потреба
• значи – сега може да работат процеси кои се
поголеми од вкупната главна меморија
Примени напон
Чекај реакција
▫ Врати резултат или
▫ Примени повеќе напон, повтори
Перформанси на SLC vs. MLC
• разлика?
▫ Бидејќи има само 2 можни вредности кај SLC
потребно е само 1 напон да врати 0 или 1
▫ MLC бара максимум 3 различни напони за да
се обезбеди дека ќе се најде вредноста.
• Но…
Што се случува со бришењето?
За да се избрише вредност од флеш
меморијата, оригиналниот напон мора да се
ресетира на неутрално пред да се примени
нов напон, т.н. write amplification.
Што е блок?
Структура на меморија
• 1 или 2 bits не се доволно
• Потребни се страници!!!
▫ 1 страница= 4KB
• Блок = 128 страници= 512 KB
• Рамнина = 1024 блока = 512 MB
▫ Зависно од плочата комбинациите
продолжуваат се додека не се дојде до еден
чип, NAND IC, на плочата
Ахиловата пета на SSD
Може да се чита и запишува една страница
податоци на SSD, но се брише на ниво на блок
https://www.techradar.com/news/best-solid-state-drives-ssds