Hierarchie paměti - Memory hierarchy

Schéma hierarchie paměti počítače

V architektuře počítače , na paměťové hierarchie odděluje počítač ukládání do hierarchie založené na dobu odezvy. Vzhledem k tomu, že doba odezvy, složitost a kapacita spolu souvisí, lze úrovně odlišit také podle jejich výkonu a kontrolních technologií. Hierarchie paměti ovlivňuje výkon v počítačovém architektonickém návrhu, predikcích algoritmů a programovacích konstrukcích nižší úrovně zahrnujících referenční lokalitu .

Navrhování pro vysoký výkon vyžaduje zvážení omezení hierarchie paměti, tj. Velikosti a schopností každé komponenty. Každá z různých složek mohou být považovány za součást hierarchie paměti (m 1 , m 2 , ..., m n ), kde každý člen m i je obvykle menší a rychlejší než další nejvyšší člen m i + 1 z hierarchie. Aby se omezilo čekání vyššími úrovněmi, nižší úroveň zareaguje vyplněním vyrovnávací paměti a následnou signalizací aktivace přenosu.

Existují čtyři hlavní úrovně úložiště.

  • Interní - registry procesoru a mezipaměť .
  • Hlavní - systémová paměť RAM a karty řadiče.
  • On-line velkokapacitní úložiště-sekundární úložiště.
  • Off-line hromadné úložiště-terciární a off-line úložiště.

Toto je obecná struktura hierarchie paměti. Mnoho dalších struktur je užitečných. Algoritmus stránkování může být například považován za úroveň pro virtuální paměť při navrhování architektury počítače a jeden může zahrnovat úroveň blízkého úložiště mezi online a offline úložištěm.

Vlastnosti technologií v hierarchii paměti

  • Přidání složitosti zpomaluje hierarchii paměti .
  • Technologie paměti CMOx rozšiřuje prostor Flash v hierarchii paměti
  • Jedním z hlavních způsobů, jak zvýšit výkon systému, je minimalizace toho, jak hluboko v hierarchii paměti musí člověk manipulovat s daty.
  • Latence a šířka pásma jsou dvě metriky spojené s mezipaměti. Žádný z nich není jednotný, ale je specifický pro konkrétní součást hierarchie paměti.
  • Je obtížné předpovědět, kde v hierarchii paměti jsou data.
  • ... umístění v hierarchii paměti určuje čas potřebný k provedení předběžného načtení.

Příklady

Hierarchie paměti serveru AMD Bulldozer.

Počet úrovní v hierarchii paměti a výkon na každé úrovni se v průběhu času zvyšoval. Historicky se také mění typ paměti nebo úložných komponent. Například hierarchie paměti procesoru Intel Haswell Mobile kolem roku 2013 je:

Nižší úrovně hierarchie - od disků směrem dolů - se také nazývají stupňovité úložiště . Formální rozdíl mezi online, nearline a offline úložištěm je:

  • Online úložiště je pro I/O okamžitě k dispozici.
  • Blízké úložiště není okamžitě k dispozici, ale lze jej rychle vytvořit online bez zásahu člověka.
  • Úložiště offline není okamžitě k dispozici a k ​​uvedení do provozu vyžaduje určitý lidský zásah.

Například vždy zapnuté rotující disky jsou online, zatímco rotující disky, jako je například masivní pole nečinného disku ( MAID ), jsou blízko. Vyměnitelná média, jako jsou páskové kazety, které lze automaticky zavádět, jako v knihovně pásek , jsou blízko čáry, zatímco kazety, které je třeba ručně vkládat, jsou offline.

Většina moderních procesorů jsou tak rychlé, že u většiny programů vytížení je překážkou je lokalita odkazu paměťových přístupů a efektivita cache a paměti převodu mezi jednotlivými úrovněmi hierarchie. Výsledkem je, že CPU tráví většinu času naprázdno a čeká na dokončení I/O paměti. Toto se někdy nazývá náklady na prostor , protože větší paměťový objekt pravděpodobně přeteče malou/rychlou úroveň a vyžaduje použití vyšší/pomalejší úrovně. Výsledné zatížení využití paměti je známé jako tlak (respektive tlak v registru, tlak v mezipaměti a (hlavní) tlak v paměti ). Termíny pro data, která na vyšší úrovni chybí a je třeba je načíst z nižší úrovně, jsou: přelévání registru (kvůli tlaku registru: registrace do mezipaměti), vynechání mezipaměti (mezipaměť do hlavní paměti) a (tvrdá) chyba stránky (hlavní paměť na disk).

Moderní programovací jazyky předpokládají hlavně dvě úrovně paměti, hlavní paměť a diskové úložiště, i když v jazyce sestavení a vložených assemblerech v jazycích, jako je C , lze k registrům přistupovat přímo. Optimální využití hierarchie paměti vyžaduje spolupráci programátorů, hardwaru a překladačů (a také základní podporu operačního systému):

  • Programátoři jsou zodpovědní za přesun dat mezi diskem a pamětí přes soubor I/O.
  • Hardware je zodpovědný za přesun dat mezi pamětí a mezipaměti.
  • Optimalizační překladače jsou zodpovědné za generování kódu, který po spuštění způsobí, že hardware bude efektivně využívat mezipaměti a registry.

Mnoho programátorů předpokládá jednu úroveň paměti. To funguje dobře, dokud aplikace nenarazí na výkonnostní zeď. Poté bude během refaktoringu kódu posouzena hierarchie paměti .

Viz také

Reference