Protsessori vahemälu
Protsessori vahemälu (inglise k. CPU cache) on mälu, mida arvuti protsessor kasutab põhimällu pöördumisele keskmiselt kuluva aja lühendamiseks. Vahemälu on põhimälust väiksem ja kiirem ning sinna kopeeritakse andmed, mida protsessor põhimälust parajasti vajab. Kui protsessor pöördub andmetele, mis on juba vahemällu kopeeritud, siis saavutatakse arvestatav ajavõit. Kui kasutatakse peamiselt vahemälu, siis on mälu keskmine pöördusaeg lähemal vahemälu pöördusajale kui põhimälu omale. Diagramm paremal näitab kahte mälu. Iga asukoht mõlemas mälus hoiab mingeid andmeid, olenevalt mälu ehitusest võib asukoha andmete hulk olla 8–512 baiti. Vahemälu rida on tavaliselt suurem kui selle poole pöördumisel tavaliselt loetav andmete hulk, mis on tavaliselt 1–16 baiti. Igal asukohal on selle poole pöördumiseks ka unikaalne indeks. Indeksit, mis tähistab mõnda põhimälu asukohta nimetatakse aadressiks. Vahemälus on igal asukohal silt (tag), mis sisaldab puhverdatud andmete aadressi põhimälus. Selliseid kirjeid protsessori andmete vahemälus kutsutakse vahemälu ridadeks ehk vahemäluplokkideks. Kui protsessor soovib lugeda või kirjutada mõnda põhimälu pesa, kontrollitakse enne kas vastav mälupesa pole juba vahemälusse kopeeritud. Selleks võrreldakse mälupesa aadressi kõigi nende vahemälu lipikutega, mis vastavat aadressi võivad sisaldada. Kui protsessor leiab, et mälupesa on vahemälus, siis on toimunud vahemälu tabamus (cache hit), pesa puudumise korral on toimunud möödalask (cache miss). Tabamuse korral kirjutab protsessor andmed otse vahemälu ritta. Tabamuste ja pöörduste suhet nimetatakse hit rate'iks ja sellega mõõdetakse vahemälu efektiivsust. Kui vahemälus puudub otsitav aadress, siis suurem osa vahemäludest lisab uue kirje, kus sees on puudunud lipik ja koopia põhimälus olevatest andmetest. Protsessorile antakse andmed uuest kirjest, nagu oleks toimunud tabamus. Möödalasud on aeglased, kuna andmeid tuleb kopeerida põhimälust. Kopeerimisel toimub viivitus, kuna põhimälu on vahemälust märksa aeglasem.