1 / 50

Кеш мемориј a

Кеш мемориј a. Приципи рада кеш меморија Величина кеша Функције пресликавања Алгоритми замене Политике уписа Величина линије кеша Број кеш меморија. Пренос речи. Пренос блока. Главна меморија. CPU. Кеш. Сл. 1. Кеш и главна меморија. Принципи рада кеш меморије.

geneva
Download Presentation

Кеш мемориј a

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Кеш меморијa Приципи рада кеш меморија Величина кеша Функције пресликавања Алгоритми замене Политике уписа Величина линије кеша Број кеш меморија

  2. Пренос речи Пренос блока Главна меморија CPU Кеш Сл. 1. Кеш и главна меморија. Принципи рада кеш меморије • Кеш (скривена) меморија је релативно мала и брза меморија између процесора и велике, али релативно споре главне меморије.

  3. Принципи рада кеш меморије • Кеш садржи копију дела главне меморије. Када процесор покушава да прочита реч из меморије он најпре проверава да ли је у кешу.

  4. Принципи рада кеш меморије • Ако је то тачно (кеш погодак), тражена реч се чита из кеша. • Ако то није тачно (кеш промашај), блок података (фиксираног броја речи) се учитава у кеш из главне меморије и потом предаје процесору.

  5. Принципи рада кеш меморије • Због локалности референце велика је вероватноћа да ће и будуће меморијске референце бити из истог блока података.

  6. Принципи рада кеш меморије • Ако главна меморија има 2nречи и ако су блокови фиксне дужине од Kречи, онда је њихов број M=2n/K. • Кеш се састоји од C линија (C<<M) од по Kречи. • Свака линија садржи поље ТАГ које идентификује блок из меморије и обични је део меморијске адресе.

  7. Принципи рада кеш меморије Меморијске адресе 0 1 2 3 2n-1 Број линије Блок (Kречи) Таг Блок 0 1 2 C - 1 . . . . . . Блок Дужина блока (K речи) Дужина речи Сл. 2. Структура кеш меморије и главне меморије.

  8. Почетак Прихвати адресу RA од CPU-a Да ли је блок који садржи RA у кешу? Приступи блоку главне меморије који садржи RA Додели линију кеша том блоку Добави реч RA и испоручи је CPU-у Напуни линију кеша тим блоком Испоручи реч RA CPU-у Крај Сл. 3. Операција читања кеша. Принципи рада кеш меморије

  9. Принципи рада кеш меморије Процесор Адресе Бафер адреса Кеш Управљање Управљање Системска магистрала Бафер података Подаци Сл. 4. Типична организација кеша.

  10. Величина кеша • Пожељно је да величина кеша буде довољно мала да укупна цена по биту меморијског система буде блиска цени главне меморије. • С друге стране, кеш треба да буде довољно велики тако да ефективно време приступа за читав меморијски систем буде блиско времену приступа кеш меморији.

  11. Величина кеша • Преостали мотиви за мањи капацитет кеш меморије: • Са порастом кеша расте и логика за адресирање кеша. • Расположиви чипови и матичне плоче лимитирају величину кеша. • Рад кеша остељив је на природу меморијских референци и није могуће одредити оптималну величину.

  12. Величина кеша 1Две вредности указују на кеш за инструкције и кеш за податке 2Оба кеша су за инструкције; нема кеша за податке

  13. Функције пресликавања • Како постоји мање кеш линија него блокова у меморији потребан је алгоритам за пресликавање меморијских блокова у линије кеша. • Даље је потребно одредити који меморијски блок тренутно заузима неку линију кеша.

  14. Функције пресликавања • Избор функција пресликавања диктира организацију кеша. Користе се три технике: • Директно пресликавање. • Асоцијативно пресликавање. • Скупно-асоцијативно пресликавање.

  15. Функције пресликавања • У сва три случаја, примера ради, претпоставићемо да је капацитет кеша 64kB, као и да се подаци преносе између главне и кеш меморије у блоковима од по 4B. • То значи да је кеш организован у 16k=214 линија од по 4B.

  16. Функције пресликавања • На располагању је главна меморија капацитета 16MB где се сваки од бајтова може адресирати 24-битном адресом (224=16М).

  17. Функције пресликавања • Директно пресликавање је најједноставнија техника где се сваки блок из главне меморије пресликава у јединствену линију кеша.

  18. Функције пресликавања • Пресликавање је изражено као i = jmodm где је i– број линије кеша j– број блока у главној меморији m– број линија у кешу

  19. Функције пресликавања • Једностава имплементација. • Свака меморијска адреса састоји се од три поља. • Најнижих w битова идентификују јединствену реч или бајт у оквиру меморијског блока.

  20. Функције пресликавања • Преосталих s битова специфицира један од 2sблокова у меморији. • Логика кеша интерпретира ових s битова као таг од s-r битова (највеће тежине) и поље линије од r битова. Ово поље идентификује једну од m=2rлинија кеша.

  21. Функције пресликавања Сл. 5. Организација кеша са директним пресликавањем.

  22. Функције пресликавања • Дужина адресе = (s+w) битова. • Број адресибилних јединица = 2s+w. • Величина блока = величина линије = 2w. • Број блокова у главној меморији = 2s+w/ 2w=2s. • Број линија у кешу = m=2r. • Величина поља таг = (s-r) битова.

  23. Функције пресликавања • Ефекат пресликавања је да се линијама додељују блокови као у табели.

  24. Функције пресликавања • За наш пример пресликавање даје следеће. • Очигледно су вредности тагова редом 00, 01, ..., FF.

  25. Функције пресликавања Сл. 6. Пример директног пресликавања.

  26. Функције пресликавања • Директно пресликавање је једноставна и јефтина техника за имплементацију. • Главни недостатак је постојање фиксираних локација за сваки блок. • Ако програм понавља узастопно референцирање речи из два различита блока који се пресликавају у исту линију, онда се ти блокови стално смењују у истој линији и фактор поготка је низак (појава позната као trashing– батинање).

  27. Функције пресликавања • Асоцијативно пресликавање превазилази недостатак директног тако што дозвољава да се сваки од меморијских блокова пуни у произвољну линију кеша. • Управљачка логика кеша интерпретира меморијску адресу као поље тага и поље речи.

  28. Функције пресликавања • Поље тага идентификује блок из главне меморије. • Да би се одредило који блок је у кешу управљачка логика мора симултано да испита таг сваке линије.

  29. Функције пресликавања Сл. 7. Организација кеша са асоцијативним пресликавањем.

  30. Функције пресликавања • Дужина адресе = (s+w) битова. • Број адресибилних јединица = 2s+w. • Величина блока = величина линије = 2w. • Број блокова у главној меморији = 2s+w/ 2w=2s. • Број линија у кешу = неодређен. • Величина поља таг = s битова.

  31. Функције пресликавања Сл. 8. Пример асоцијативног пресликавања.

  32. Функције пресликавања • Недостатак је сложеност кола потребних да се симултано испитају тагови у свим линијама кеша. • Добра страна је у флексибилности коју имамо код замене блока.

  33. Функције пресликавања • Скупно-асоцијативно пресликавање је компромис између претходна два приступа са тежњом да се искористе добре стране.

  34. Функције пресликавања • Кеш меморија се дели на vскупова од по kлинија: m = vk i = jmodv где је i– број скупа у кешу j– број блока у главној меморији m– број линија у кеша

  35. Функције пресликавања • Овакво пресликавање се означава и као k-тоструко скупно-асоцијативно пресликавање. • Код овог пресликавања се блок Bjпресликава у произвољну линију из скупа i.

  36. Функције пресликавања • Управљачка логика интерпретира меморијску адресу као три поља: таг, скуп и реч. d битова специфицира један од v=2d скупова. s битова поља таг и скуп специфицира један од 2s блокова из меморије.

  37. Функције пресликавања Сл. 9. Организација k-тоструког скупно-асоцијативног кеша.

  38. Функције пресликавања • Дужина адресе = (s+w) битова. • Број адресибилних јединица = 2s+w. • Величина блока = величина линије = 2w. • Број блокова у главној меморији = 2s+w/ 2w=2s. • Број линија у скупу = k • Број скупова = v=2d • Број линија у кешу = kv=k2d. • Величина поља таг = (s-d) битова.

  39. Функције пресликавања Сл. 10. Пример организације двоструког скупно-асоцијативног кеша.

  40. Алгоритми замене • Када се нови блок учитава у кеш, један од постојећих блокова се мора заменити. • Код директног пресликавања постоји само једна могућа линија за сваки од блокова! • За асоцијативно и скупно-асоцијативно пресликавање потребан је одговарајући алгоритам замене. • Да би се постигле веће брзине рада такви алгоритми се имплементирају хардверски.

  41. Алгоритми замене • У пракси се користе: • LRU (Least Recently Used). • FIFO (First In First Out) • LFU (Least Frequently Used)

  42. Политика уписа • Пре него се неки блок у кешу замени новим од значаја је да ли је он пре тога измењен. • Ако није био модификован једноставно се преко њега уписује нови блок. • Ако је блок модификован, он мора и у главној меморији да се ажурира.

  43. Политика уписа • Срећемо се са два проблема: • Могуће је да меморији приступа више од једног уређаја (нпр. У/И модул може да обавља DMA). Ако је реч измењена само у кешу, онда она у меморији није ваљана и обрнуто. • Још сложенији проблем се јавља ако је више процесора прикључено на исту меморију а сваки има свој кеш.

  44. Политика уписа • Различите технике решавају ове проблеме паравећи компромис између цене и перформансе. • Write through: Операција уписа врши се и у меморији и у кешу што обезбеђује да је реч у меморији увек ваљана. • Write back: Минимизира упис у меморију тако што се упис врши само у кеш а свакој кеш линији придружује се бит који говори о томе да ли је дотични блок у кешу модификован.

  45. Величина линија кеша • Са порастом величине блока треба да расте и фактор поготка због принципа локалности. • Међутим, почев од неких вредности величине блока/кеш линије овај фактор поготка опада!

  46. Величина линија кеша • Разлози су следећи: • Већи блокови смањују број блокова у кешу. Осим тога, преко блокова се уписују нови убрзо по њиховом учитавању. • Како величина блока расте, свака додатна реч у блоку је даља од тражене те је мања вероватноћа да ће и она бити потребна. • Обично је величина блока/линије 8-32В а код HPC 64-128В.

  47. Број кеш меморија • Када је концепт кеш меморије уведен типични системи имали су само по један кеш. • У новије време уобичајено је коришћење вишеструких кеш меморија.

  48. Број кеш меморија • Са порастом густине интегрисаних кола омогућен је on-chipкеш. • Поставља се питање када је off-chip кеш потребан. Резултујућа организација је двонивовски кеш: L1 (on-chip) i L2 (off-chip).

  49. Број кеш меморија • У почетку се on-chipкеш користио и за податке и за инструкције, али је у новије време постало уобичајено да се овај кеш подели на два посебна. • Предности јединственог кеша су: • За дату величину кеша постиже се већи фактор поготка. • Једноставније је пројектовање и имплементација.

  50. Број кеш меморија • И поред ових предности, у тренду је дељење кеша, нарочито код суперскаларних машина (Pentium и PowerPC). • Главна предност подељеног кеша је елиминација надметања за кеш између степена за припрему/декодирање и степена за извршење инструкција.

More Related