Кеш меморија

Да би се при извршењу програма смањило време приступа подацима и инструкцијама, између процесора и главне меморије умеће се кеш-меморија чија брзина одговара брзини рада процесора. Кеш-меморија је мала, ултрабрза полупроводничка меморија са непосредним приступом. Она се користи за привремено чување делова програма који се тренутно извршава, затим као радна меморија за актуелне податке који се обрађују… Данас се често у процесору реализују посебна кеш-меморија за податке и посебна кеш-меморија за инструкције.

Кеш-меморија повећава брзину обраде, јер се у њој чувају текући подаци и текуће инструкције програма којима процесор приступа великом брзином. На тај начин, кеш-меморија компензује разлику између брзине рада процесора и времена приступа главној меморији. Које је обично десетак пута веће. Тиме се, у ствари, повећава продуктивност процесора.

Кеш меморија служи за усаглашавање брзине процесора и оперативне меморије. Кеш меморија омогућава повећање брзине обраде јер се у њој налазе текући подаци и текуће инструкције програма којима процесор приступа знатно брже. Кеш меморија је 10 пута бржа од оперативне меморије.

Оперативна и кеш меморија су подељене на јединице које се називају блокови. Блок је скуп n сукцесивних меморијских локација који се увек као целина преноси између оперативне и кеш меморије. Јединица преноса између процесора и кеш меморије је меморијска реч, а између кеш меморије и оперативне меморије је блок. Величина блока обично износи између 4 и 128 бајтова, а капацитет кеш меморије је од 1 до 256kB. У кеш меморији се налази мали број блокова оперативне меморије.

Принцип коришћења кеш-меморије

Принцип коришћења кеш-меморије

Програм експлицитно адресира само регистре процесора и локације главне меморије. Кеш-меморија је скривена, јер се процесор њој обраћа на основу адреса података у главној меморији.

Када процесор генерише адресу меморијске локације формира се управљачки сигнал за приступ кеш меморији. Уколико се податак са траженом адресом налази у кеш меморији он се преноси у процесор ради обраде или се замењује новом вредношћу из процесора која представља резултат обраде. Ако у кеш меморији нема блока са траженом адресом активира се процедура којом се из кеш меморије један блок шаље у оперативну меморију а на његово место се из оперативне меморије позива тражени блок који се преноси у кеш меморију (тражени податак се, истовремено, одмах прослеђује у процесор). Ово најчешће има за последицу да је процесор блокиран (у стању застоја) све док му се не достави тражени податак. То се код савремених кеш-меморија дешава ретко, тако да процесор највећи део времена ради без застоја.

Ефикасност кеш-меморија у повећању брзине меморијског система разлог је да су оне данас скоро обавезни саставни део меморије свих класа рачунара, почев од микрорачунара до суперрачунара.

При коришћењу кеш меморије треба решити 4 проблема:

  • смештање блокова – где ће у кеш меморији бити смештен нови блок прочитан из оперативне меморије. Најбољи начин за смештање блокова из оперативне меморије је асоцијативно пресликавање када се сваки блок може сместити било где у кеш меморији
  • идентификација блока – како ће бити нађен блок који се налази у кеш меморији. Ако се користи асоцијативно пресликавање као кеш меморија се користи асоцијативна меморија. У том случају кључ представља меморијску адресу блока, а информациони део представља податке из оперативне меморије.
  • замена блокова – који блок ће бити замењен ако се тражени блок не налази у кеш меморији. Најчешће се замењује најраније коришћен блок или онај који се најдуже налази у меморији.
  • стратегија уписа – како ће се поступити код уписа новог податка у кеш меморију, јер се тада блок мења и постаје различит од одговарајућег блока у оперативној меморији. Постоје два начина: непосредан упис када се истовремено уписује и у кеш и у оперативну меморију и посредан приступ кад се податак уписује само у кеш меморију, блок у кеш меморији добија ознаку да је промењен, па се тек при замени тог блока у оперативну меморију уписују подаци.

Основни параметри кеш меморије су: фактор поготка (h), фактор промашаја (1-h), време приступа, задржавање услед ажурирања оперативне меморије… Фактор поготка је вероватноћа да се тражени податак налази у кеш меморији. Фактор промашаја мери пенале због кеш промашаја, јер тада процесор прекида активност док се тражени податак донесе у кеш меморију. Фактор поготка је мањи од 1, али се у пракси остварују вредности веће од 0,9.

Данас се углавном користе тзв. два нивоа кеш меморија. Ниво 1 (L1) налази се на самом чипу процесора чиме се смањује активност процесора на спољашњој магистрали и самим тим убрзава време извршења. Кеш меморија нивоа 2 (L2) је спољашња кеш меморија, тј. налази се ван процесорског чипа. На тај начин, коришћењем два нивоа кеш меморија побољшавају се перформансе целокупног система. Осим тога, кеш меморија нивоа 1 обично се реализује као подељена кеш меморија: кеш меморија за инструкције (I кеш) и кеш меморија за податке (D кеш). На тај начин се елиминише такмичење за кеш меморију између дела процесора који прибавља инструкције и извршне јединице која чита податке. Тиме се постиже да је могућ истовремени приступ кеш меморији за читање инструкција и за читање или упис података, чиме се додатно убрзава рад система.

Постави коментар