logo pupin | пупин

Меморија - наставак

Архитектура ИК Система

Огњен
8 минута читања

Данас је примарна меморија у већини случајева RAM.

Random-access memory

Random-access Memory, дакле има неки алгоритам за случајни приступ?

Не баш. Овај назив је обмањујући.

Реч која би боље описала ову меморију би била једнакост (Equality, што опет није исто што и Equity)

Зар не постоје алгоритми који омогућавају бржем приступу битнијим подацима, тако да правичност (Equity) је уствари права реч?

Не постоје, барем на хардверском нивоу. Али то не значи да оперативни систем не мисли другачије.

ChatGPT ChatGPT

So, while all data in RAM technically has equal access speed at the hardware level, the practical experience of data access can vary significantly due to these optimization techniques and algorithms employed by modern computer systems.

Постоје две врсте RAM меморија:

Постоје две врсте меморија, зависно од тога да ли задржавају податке и након престанка напајања:

Флеш меморија

Тренутно најважнија врста постојане меморије је флеш. Ова меморија се чита у блоковима па се често не користи као примарна меморија.

У неким случајевима је и довољно брза.

На пример Raspberry Pi и SD картице.


Меморија и инструкцијски циклус

Сваки рачунар има своје инструкцијске циклусе током којих преузима из меморије инструкције, обрађује их и извршава.

Унапређење карактеристика

Обично се користе три технике за побољшање перформанси меморије:

  1. Приступ меморији помоћу дуже речи
  2. Меморијски интерливинг
  3. Кеш меморија

Од ове три, кеш меморија има највећи ефекат.

Приступ меморије помоћу душе речи

Ово је најлакши начин да се повећа перформанса приступа меморији.

Тако CPU чита и уписује 2, 4 или више бита, уместо један по један.

Овде се сада ствара сложеност у магистралама и контролној јединици CPU-a који распоређује податке у регистре.

Због тога ретко који данашњи систем има приступ меморијиској речи која је душа од 8 бајтова.

Memory interleaving

Меморијски интерливинг је начин поделе меморије.

ChatGPT ChatGPT

Memory interleaving is a technique used in computer architecture to improve memory access performance by spreading memory addresses across multiple memory modules or banks in a systematic way. Instead of accessing memory sequentially from a single module, interleaving allows for concurrent access to multiple modules, thereby increasing memory bandwidth and reducing access latency.

Astronaut in the air

На слици је приказан четворосмерни меморијски интерливинг.

Меморијски интерливинг је користан када више уређаја захтева приступ истој меморији.

Кеш меморија

Кеш меморија је скривена меморија између екстерне меморија (нпр. SRAM) и CPU-a. Она је мала и пружа бржи приступ процесору него екстерна.

Њу програмер не види.

Кеш линија је један блок у кеш меморији. Овај блок обично има од 8 до 64 бајтова складишта.

У блоку се налази тачна репродукција података у главној меморији.

Tag је ознака коју сваки кеш блок поседије и која упућује на локацију коју кеш линија реплицира.

Типична кеш меморија од 64KB може да садржи до око 8000 8-бајтних блокова, сваки са својом ознаком.

Начин рада

  1. Сваки захтев CPU-a главној меморији пролази прво кроз кеш меморију;
  2. Кеш проверава да ли постоји tag који одговара локацији у главној меморији на који CPU шаље захтев и
  3. ако постоји, кеш враћа податке и “глуми” главну меморију.

Ово се зове погодак!

У супротном је промашај и тада постоји додатан корак где се кеш пуни новим подацима и одговарајућим таговима који упућују на локацију у главној меморији.

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

Време застоја кеш меморије представља време премештања нових података у кеш линије.

Често се деси да се кеш напуни. Тада се користе разни алгоритми који одбацују неке податке да се направе места за нове. Најпопуларнији је алгоритам “најмање коришћен” (Least Recently Used)

Уписивање и кеш меморија

Када CPU жели да измени податке на некој локацији главне меморије, преко кеша је то могуће на два начина:

Write back је бржа опција, али је зато потребно паметније пројектовање да не би дошло до губитка података.

Принцип локалитета

Кеш меморија фундаментално ради по принципу локалитета или locality of reference.

Locality of reference

ChatGPT ChatGPT

Locality of reference describes the tendency of programs to access the same memory locations repeatedly over a short period of time. Cache memory systems leverage this principle by storing frequently accessed data in fast cache memory, reducing the need to fetch data from slower main memory.

Овај фундаментални принцип кеш меморије доноси до преко 90% кеш поготка.

Вишеслојна кеш меморија

Показало се да увођење више од три слоја кеша не доноси никакве боље перформансе.

Код двослојног кеша, L2 је већи и даљи од процесора. L1 захтева податке од L2 само када их нема у сопственим кеш линијама.

L2 мора имати знатно већи капацитет меморије. У супротном би L1 и L2 имале исте податке.

< Назад