Download presentation
Presentation is loading. Please wait.
1
Кеш меморије Приципи рада кеш меморија Величина кеша
Функције пресликавања Алгоритми замене Политике уписа Величина линије кеша Број кеш меморија
2
Принципи рада кеш меморије
Кеш (скривена) меморија је релативно мала и брза меморија између процесора и велике, али релативно споре главне меморије. CPU Кеш Главна меморија Пренос речи Пренос блока Сл. 1. Кеш и главна меморија.
3
Принципи рада кеш меморије
Кеш садржи копију дела главне меморије. Када процесор покушава да прочита реч из меморије он најпре проверава да ли је у кешу. Ако је то тачно (кеш погодак), тражена реч се чита из кеша. Ако то није тачно (кеш промашај), блок података (фиксираног броја речи) се учитава у кеш из главне меморије и потом предаје процесору.
4
Принципи рада кеш меморије
Због локалности референце велика је вероватноћа да ће и будуће меморијске референце бити из истог блока података. Ако главна меморија има 2n речи и ако су блокови фиксне дужине од K речи, онда је њихов број M=2n/K. Кеш се састоји од C линија (C<<M) од по K речи. Свака линија садржи поље ТАГ које идентификује блок из меморије и обични је део меморијске адресе.
5
Принципи рада кеш меморије
. Блок (K речи) Блок Дужина речи Меморијске адресе 1 2 3 2n-1 Дужина блока (K речи) Број линије C - 1 Таг Сл. 2. Структура кеш меморије и главне меморије.
6
Принципи рада кеш меморије
Почетак Прихвати адресу RA од CPU-a Да ли је блок који садржи RA у кешу? Добави реч RA и испоручи је CPU-у Додели линију кеша том блоку Приступи блоку главне меморије који садржи RA Испоручи реч RA CPU-у Напуни линију кеша тим блоком Крај Сл. 3. Операција читања кеша.
7
Принципи рада кеш меморије
Процесор Адресе Бафер адреса Кеш Управљање Управљање Системска магистрала Бафер података Подаци Сл. 4. Типична организација кеша.
8
Величина кеша Пожељно је да величина кеша буде довољно мала да укупна цена по биту меморијског система буде блиска цени главне меморије. С друге стране, кеш треба да буде довољно велики тако да ефективно време приступа за читав меморијски систем буде блиско времену приступа кеш меморији.
9
Величина кеша Преостали мотиви за мањи капацитет кеш меморије:
Са порастом кеша расте и логика за адресирање кеша. Расположиви чипови и матичне плоче лимитирају величину кеша. Рад кеша остељив је на природу меморијских референци и није могуће одредити оптималну величину.
10
High-end сервер/суперрачунар
Величина кеша Процесор Тип Год. прозводње L1 кеш1 L2 кеш L3 кеш IBM 360/85 Mainframe 1968 16-32 kB - PDP-11/70 Mинирачунар 1975 1kB VAX 11/780 Минирачунар 1978 16kB IBM 3033 64kB IBM 3090 1985 kB Intel 80486 PC 1989 8kB Pentium 1993 8kB/8kB 256kB-512kB PowerPC 601 32kB PowerPC 602 1996 32kB/32kB PowerPC G4 PC/сервер 1999 256kB-1MB 2MB IBM S/390 G4 1997 256kB IBM S/390 G6 8MB Pentium 4 2000 IBM SP High-end сервер/суперрачунар 2001 64kB/32kB CRAY MTA2 16kB/16kB 96kB 4MB Itanium SGI Origin 2001 High-end сервер 1Две вредности указују на кеш за инструкције и кеш за податке 2Оба кеша су за инструкције; нема кеша за податке
11
Функције пресликавања
Како постоји мање кеш линија него блокова у меморији потребан је алгоритам за пресликавање меморијских блокова у линије кеша. Даље је потребно одредити који меморијски блок тренутно заузима неку линију кеша. Избор функција пресликавања диктира организцију кеша. Користе се три технике: Директно пресликавање. Асоцијативно пресликавање. Скупно-асоцијативно пресликавање
12
Функције пресликавања
У сва три случаја, примера ради, претпоставићемо да је капацитет кеша 64kB, као и да се подаци преносе између главне и кеш меморије у блоковима од по 4kB. То значи да је кеш организован у 16k=214 линија од по 4B.
13
Функције пресликавања
Директно пресликавање је најједноставнија техника где се сваки блок из главне меморије пресликава у јединствену линију кеша. Пресликавање је изражено као i = j mod m где је i – број линије кеша j – број блока у главној меморији m – број линије кеша
14
Функције пресликавања
Једностава имплементација. Свака меморијска адреса састоји се од три поља. Најнижих w битова идентификују јединствену реч или бајт у оквиру меморијског блока. Преосталих s битова специфицира један од 2s блокова у меморији. Логика кеша интерпретира ових s битова као таг од s-r битова (највеће тежине) и поље линије од r битова. Ово поље идентификује једну од m=2r линија кеша.
15
Функције пресликавања
Сл. 5. Организација кеша са директним пресликавањем.
16
Функције пресликавања
Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у кешу = m = 2r . Величина поља таг = (s-r) битова.
17
Функције пресликавања
Ефекат пресликавања је да се линијама додељују блокови као у табели. Линија кеша Додељују јој се блокови главне меморије 0, m, 2m, …, 2s-m 1 1, m + 1, 2m + 1, …, 2s - m + 1 . m-1 m - 1, 2m - 1, 3m - 1, …, 2s – 1
18
Функције пресликавања
За наш пример пресликавање даје следеће. Линија кеша Почетна адреса блока 000000, , …, FF0000 1 000004, , …, FF0004 . 00FFFC, 01FFFC, …, FFFFFC Очигледно су вредности тагова редом 00, 01, ..., 0F.
19
Функције пресликавања
Сл. 6. Пример директног пресликавања.
20
Функције пресликавања
Директно пресликавање је једноставна и јефтина техника за имплементацију. Главни недостатак је постојање фиксираних локација за сваки блок. Ако програм понавља узастопно референцирање речи из два различита блока који се пресликавају у исту линију, онда се ти блокови стално смењују у истој линији и фактор поготка је низак (појава позната као trashing – батинање).
21
Функције пресликавања
Асоцијативно пресликавање превазилази недостатак директног тако што дозвољава да се сваки од меморијских блокова пуни у произвољну линију кеша. Управљачка логика леша интерпретира меморијску адресу као поље тага и поље речи. Поље тага идентификује блок из главне меморије. Да би се одредило који блок је у кешу управљачка логика мора симултано да испита таг сваке линије.
22
Функције пресликавања
Сл. 7. Организација кеша са асоцијативним пресликавањем.
23
Функције пресликавања
Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у кешу = неодређен. Величина поља таг = s битова.
24
Функције пресликавања
Сл. 8. Пример асоцијативног пресликавања.
25
Функције пресликавања
Недостатак је сложеност кола потребних да се симултано испитају тагови у свим линијама кеша. Добра страна је у флексибилности коју иманмо код замене блока.
26
Функције пресликавања
Скупно-асоцијативно пресликавање је компромис између претходна два приступа са тежњом да се искористе добре стране. Кеш меморија се дели на v скупова од по k линија: m = vk i = j mod v где је i – број скупа у кешу j – број блока у главној меморији m – број линија у кеша
27
Функције пресликавања
Овакво пресликавање се означава и као k-тоструко скупно-асоцијативно пресликавање. Код овог пресликавања се блок Bj пресликава у произвољну линију из скупа i. Управљачка логика интерпретира меморијску адресу као три поља: таг, скуп и реч. d битова специфицира један од v=2d скупова. s битова поља таг и скуп специфицира један од 2s блокова из меморије.
28
Функције пресликавања
Сл. 9. Организација k-тоструког скупно-асоцијативног кеша.
29
Функције пресликавања
Дужина адресе = (s+w) битова. Број адресибилних јединица = 2s+w. Величина блока = величина линије = 2w. Број блокова у главној меморији = 2s+w/ 2w= 2s. Број линија у скупу = k Број скупова = v=2d Број линија у кешу = kv=k2d. Величина поља таг = (s-d) битова.
30
Функције пресликавања
Сл. 10. Пример организације двоструког скупно-асоцијативног кеша.
31
Алгоритми замене Када се нови блок учитава у кеш, један од постојећих блокова се мора заменити. Код директног пресликавања постоји само једна могућа линија за сваки од блокова! За асоцијативно и скупно-асоцијативно пресликавање потребан је одговарајући алгоритам замене. Да би се постигле веће брзине рада такви алгоритми се имплементирају хардверски.
32
Алгоритми замене У пракси се користе: LRU (Least Recently Used).
FIFO (First In First Out) LFU (Least Frequently Used)
33
Политика уписа Пре него се неки блок у кешу замени новим од значаја је да ли је он пре тога измењен. Ако није био модификован једноставно се преко њега уписује нови блок. Ако је блок модификован, он мора и у главној меморији да се ажурира.
34
Политика уписа Срећемо се са два проблема:
Могуће је да меморији приступа више од једног уређаја (нпр. У/И модул може да обавља DMA). Ако је реч измењена само у кешу, онда она у меморији није ваљана и обрнуто. Још сложенији проблем се јавља ако је више процесора прикључено на исту меморију а сваки има свој кеш.
35
Политика уписа Различите технике решавају ове проблеме паравећи компромис између цене и перформансе. Write through: Операција уписа врши се и у меморији и у кешу што обезбеђује да је реч у меморији увек ваљана. Write back: Минимизира упис у меморију тако што се упис врши само у кеш а свакој кеш линији придружује се бит који говори о томе да ли је дотичн и блок у кешу модификован.
36
Величина линија кеша Са порастом величине блока треба да расте и фактор поготка због принципа локалности. Међутим, почев од неких вредности величине блока/кеш линије овај фактор поготка опада!
37
Величина линија кеша Разлози су следећи:
Већи блокови смањују број блокова у кешу. Осим тога, преко блокова се уписују нови убрзо по њиховом учитавању. Како величина блока расте, свака додатна реч у блоку је даља од тражене те је мања вероватноћа да ће и она бити потребна. Обично је величина блока/линије 8-32В а код HPC В.
38
Број кеш меморија Када је концепт кеш меморије уведен типични системи имали су само по један кеш. У новије време уобичајено је коришћење вишеструких кеш меморија. Са порастом густине интегрисаних кола омогућен је on-chip кеш. Поставља се питање када је off-chip кеш потребан. Резултујућа организација је двонивовски кеш: L1 (on-chip) i L2 (off-chip).
39
Број кеш меморија У почетку се on-chip кеш користио и за податке и за инструкције, али је у новије време постало уобичајено да се овај кеш подели на два посебна. Предности јединственог кеша су: За дату величину кеша постиже се већи фактор поготка. Једноставније је пројектовање и имплементација.
40
Број кеш меморија И поред ових предности, у тренду је дељење кеша, нарочито код суперскаларних машина (Pentium и PowerPC). Главна предност подељеног кеша је елиминација надметања за кеш између степена за припрему/декодирање и степена за извршење инструкција.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.