Při navrhování počítač, cílem je umožnit mikroprocesor běžet na jeho plné rychlost jak levně jak je to možné. A 500-MHz chip prochází 500 milionů cyklů za jednu sekundu (jeden cyklus za dva nanosekund). Bez L1 a L2 cache, přístup do hlavní paměti trvá 60 nanosekund, nebo asi 30 plýtvání cyklů při přístupu na paměťovou.
Když se nad tím zamyslíte, je to tak trochu neuvěřitelné, že tyto relativně malé množství paměti mohou maximalizovat použití mnohem větší množství paměti. Přemýšlejte o 256-kilobyte L2 cache, že do mezipaměti 64 megabajtů paměti RAM. V tomto případě, 256.000 bytů efektivně ukládá 64,000,000 bajtů. Proč to funguje?
Ve vědě o počítačích, máme teoretický koncept nazvaný lokalita reference. To znamená, že v poměrně velké programu, pouze malé části jsou někdy používány v kterémkoliv jednom okamžiku. Je zvláštní, jak se může zdát, lokalita odkazu pracuje pro obrovskou většinu programů. I když je spustitelný soubor je 10 megabajtů ve velikosti, jen hrstka bajtů z tohoto programu jsou používány v každém okamžiku, a jejich četnost opakování je velmi vysoká. Na další stránce se dozvíte více o lokality odkaz.
Lokality odkaz
Pojďme se podívat na následující pseudo-kódu, pochopit, proč lokalita referenčních prací (viz Jak Works C programovací opravdu se do ní):
Výstup na obrazovce «zadejte číslo mezi 1 a 100» Přečíst si vstup z userPut hodnoty od uživatele z hodnoty proměnné XPUT 100 na hodnotu proměnné YPut 1 ve variabilním počtem ZLoop Y času Divide Z X Pokud je zbytek dělení = 0, pak výstup «Z je násobkem X» Přidat 1 až ZReturn na loopEndTento malý program požádá uživatele k zadání čísla mezi 1 a 100. Je to přečte hodnotu zadanou uživatelem. Poté program rozdělí každé číslo mezi 1 a 100, které číslo zadané uživatelem. Zkontroluje, zdali zbytek je 0 (modulo dělení). Pokud ano, program se výstupy " Z je násobkem X " (například 12 je násobkem 6), pro každé číslo mezi 1 a 100. Poté program skončí.
I když nevíte nic o programování počítače, je snadné pochopit, že v se 11 řádky tohoto programu, smyčka část (řádky 7 až 9), jsou prováděny 100 krát. Všechny ostatní řádky se provádějí pouze jednou. Linky 7 až 9 bude výrazně rychlejší, protože ukládání do mezipaměti.
Tent