Cache
Vyrovnávacia pamäť - cache - je veľmi rýchla pamäť relatívne malé kapacity, slúžiace k zrýchleniu toku dát medzi procesorom a operačnou pamäťou, resp. inými časťami počítača. Je zapojená medzi procesor a operačná pamäť a to ako vo vnútri procesora (486DX) alebo mimo procesora. Môžu byť zapojené súčasne ako vnútorné aj vonkajšie cache.
Používa sa pre zrýchlenie toku dát, najčastejšie medzi operačnou pamäťou a μP. Majú malú inteligenciu - dovedú o niečom rozhodnúť sami. Je ovládaná radičom (firmware), ktorý nemôžeme ovplyvniť.
Prenos medzi μP a CACHE je po slovách (niekedy aj po dvojtých slovách),
medzi CACHE a operačnou pamäťou je po blokoch. Medzi μP a operačnou
pamäťou slúži len pre čítanie z hľadiska procesu.
V CACHE sa prepisujú hodnoty.
Ak je obsah na adrese pamäti žiadaný procesorom vo vyrovnávacej pamäti,
je tento obsah rýchlo odovzdaný procesora. Ak nie je vo vyrovnávacej pamäti,
zavedie sa do nej celý blok po sebe idúcich dát. Tento proces trvá dlhšie
ako priamy prístup do fyzickej pamäti a teda zvýšenie výkonu nastane len
vtedy, ak je počet úspešných zásahov rádovo väčší ako neúspešných.
Pri správnej organizácii býva úspešnosť až 97%.
Druhy CACHE
Podľa prístupu:
- asynchrónne - obsadzujú zbernica po celú dobu
- synchrónne - CPU po zadaní adresy nečaká až sa objaví dáta na zbernici, ale o dáta požiada v ďalšom takte, takže odpadá wait stav procesora. Tým sa zrýchli tok dáta priemerné oneskorenie SRAM sa zníži na 9 ns.
- synchrónne - pipelined burst SDRAM CACHE (s hromadným prístupom) - synchrónne CACHE, zadávanie adresy je rovnaké, ale prenáša sa niekoľko dát za sebou - burst režim.
Podľa spôsobu vyhľadávania:
- asociatívne - vyhľadávanie podľa (časti) obsahu - časť informácie poznám, podľa tejto časti vyhľadám zvyšok (vyhľadávanie napr. * .pdf vo Win)
- neasociativní - vyhľadávanie podľa adries, nepoužíva sa
Podľa vzťahu k operačnej pamäte:
- netransparentné - zastaraný, nevhodný, dnes sa nepoužíva. Zmena obsahu nie je zachytená do CACHE a CACHE potom neobsahuje správne údaje.
- transparentné - nutné pri viacprocesorových systémov. Procesor (čipová sada) obsahuje ďalší radič, ktorý sleduje spolu s CHIP SETom transakcie na zbernicu a podľa nich upravuje I (invalid) tagy v CACHE.
Podľa počtu položiek na 1 adresu:
Pružné časti OP na jednom riadku.
- jednocestné - 1 blok
- dvojcestné - 2 bloky
- štvorcestné - 4 bloky
- osemsmerový - 8 blokov
Podľa množstva súčasných prístupov:
- jednoportový
- dvojportová
podľa adresácia
- s fyzickou adresáciou - (zvyčajne umiestnené medzi MMU a OP). Prepočet adries na fyzické trvania niekoľko taktov a tak táto pamäť je pomalší. Nemôže nastať kolíše adries.
- s virtuálnou alebo logickú adresáciou - (zvyčajne umiestnené medzi CPU a MMU). Virtuálne adresa je takmer ihneď k dispozícii a teda vyhľadávania je rýchle. U multiprocesorových systémov. U multitaskingu môže rovnaká virtuálna adresa znamenať rôzne fyzické adresy. Nutné ošetrovať cache.
podľa obsahu
- spoločná pre dáta a inštrukcie
- iba pre data- dátová
- iba pre inštrukcie - inštrukčnú
Podľa umiestnenia vzhľadom k μP
- vnútorná (ondie) - na rovnakom chipu ako μP
- vonkajšie - všetky ostatné CACHE
Podľa poradia od μP
- L (level) 1 - CACHE prvej úrovne, najbližšie k μP, najčastejšie vnútorné, najmenší, najrýchlejší, šírka zbernice podľa μP
- L2 - CACHE druhej úrovne, väčší, pomalší
- L3 - najväčší, najpomalší
L1, L2, L3 sú rýchlejšie ako OP.
Podľa spolupráca s operačnou pamäťou (OP)
- CACHE Write Through - zapisuje modifikovaná dáta v CACHE, zapisuje súčasne do CACHE a OP. Výstup na zbernici je zvyčajne bufferován (FIFO dĺžky 1 až 4), aby sa nezdržiaval proces čakanie na ukončenie zápisu.
- CACHE Write Back - zapisuje dáta iba do CACHE. Do OP sa vykoná zápis až pri rušení obsahu CACHE. Rýchlejšie než Write Through. Nebezpečnejšie, pretože nesúhlasí obsah CACHE a OP.
CACHE 486
Pri hľadaní spočítám fyzickú adresu a potom hľadám v Cache.
Riadok vo fyz. Adrese odkazuje na riadok v Cache. Na riadku sú
adresy s rovnakými 7b. Vyhl. riadku je neasociativní.
Na každom riadku v Cache pamäti sú štyri kľúče
(štvorcestná pamäť).
Komparácia sa vykonáva asociatívnym vyhľadávaním a
slúži na vyhľadávanie klíčů.Ke kaž. klíči je priradená jeden blok
dát. Každý blok dát obsahuje 16B dát, ktoré sú na adrese OP.
Valid (4b) - každému kľúči je tu priradený 1b, ak je kľúč obsadený má tento bit hodnotu 1, inak 0. Ak kľúče nesúhlasí, obsadí sa kľúč, ktorý má vyhľadávať na voľný kľúč a prispôsobí sa voľnému bloku dát, príslušný b vo valid sa prepíše na 1. LRU (3b) - ak nenájdem pri komparáciu správny kľúč použijem LRU, ktorý vyhľadá najdlhšie nepoužité kľúče a zistí, ktorý kľúč aktuálne nepotrebuje a prepíše ho späť do OP. Nakoniec vezme nový potrebný kľúč. LRU nie je ideálne, ale postačuje.