-->
Данас је примарна меморија у већини случајева RAM.
Random-access Memory, дакле има неки алгоритам за случајни приступ?
Не баш. Овај назив је обмањујући.
Реч која би боље описала ову меморију би била једнакост (Equality, што опет није исто што и Equity)
Зар не постоје алгоритми који омогућавају бржем приступу битнијим подацима, тако да правичност (Equity) је уствари права реч?
Не постоје, барем на хардверском нивоу. Али то не значи да оперативни систем не мисли другачије.
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 картице.
Сваки рачунар има своје инструкцијске циклусе током којих преузима из меморије инструкције, обрађује их и извршава.
Обично се користе три технике за побољшање перформанси меморије:
Од ове три, кеш меморија има највећи ефекат.
Ово је најлакши начин да се повећа перформанса приступа меморији.
Тако CPU чита и уписује 2, 4 или више бита, уместо један по један.
Овде се сада ствара сложеност у магистралама и контролној јединици CPU-a који распоређује податке у регистре.
Због тога ретко који данашњи систем има приступ меморијиској речи која је душа од 8 бајтова.
Меморијски интерливинг је начин поделе меморије.
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.
На слици је приказан четворосмерни меморијски интерливинг.
Меморијски интерливинг је користан када више уређаја захтева приступ истој меморији.
Кеш меморија је скривена меморија између екстерне меморија (нпр. SRAM) и CPU-a. Она је мала и пружа бржи приступ процесору него екстерна.
Њу програмер не види.
Кеш линија је један блок у кеш меморији. Овај блок обично има од 8 до 64 бајтова складишта.
У блоку се налази тачна репродукција података у главној меморији.
Tag је ознака коју сваки кеш блок поседије и која упућује на локацију коју кеш линија реплицира.
Типична кеш меморија од 64KB може да садржи до око 8000 8-бајтних блокова, сваки са својом ознаком.
Ово се зове погодак!
У супротном је промашај и тада постоји додатан корак где се кеш пуни новим подацима и одговарајућим таговима који упућују на локацију у главној меморији.
Ефикасност кеш меморије је однос броја пута колико је кеш испоручио а CPU захтевао податке.
Време застоја кеш меморије представља време премештања нових података у кеш линије.
Често се деси да се кеш напуни. Тада се користе разни алгоритми који одбацују неке податке да се направе места за нове. Најпопуларнији је алгоритам “најмање коришћен” (Least Recently Used)
Када CPU жели да измени податке на некој локацији главне меморије, преко кеша је то могуће на два начина:
Write back је бржа опција, али је зато потребно паметније пројектовање да не би дошло до губитка података.
Кеш меморија фундаментално ради по принципу локалитета или locality of reference.
Locality of reference
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 имале исте податке.
< Назад