Hierarchie paměti - Memory hierarchy
Typy paměti počítače a datového úložiště |
---|
Nestálý |
Non-volatile |
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
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:
- Registry procesorů - nejrychlejší možný přístup (obvykle 1 cyklus CPU). Velikost několik tisíc bajtů
-
Mezipaměti
- Mezipaměť mikro operací úrovně 0 (L0) - velikost 6 144 bajtů (6 KiB)
- Mezipaměť instrukcí úrovně 1 (L1) - velikost 128 KiB
- Mezipaměť dat úrovně 1 (L1) - velikost 128 KiB. Nejlepší přístupová rychlost je kolem 700 GB /s
- Úroveň 2 (L2) Pokyny a data (sdílené) - velikost 1 MiB . Nejlepší rychlost přístupu je kolem 200 GB/s
- Sdílená mezipaměť úrovně 3 (L3) - velikost 6 MiB. Nejlepší rychlost přístupu je kolem 100 GB/s
- Sdílená mezipaměť úrovně 4 (L4) - velikost 128 MiB. Nejlepší rychlost přístupu je kolem 40 GB/s
- Hlavní paměť ( primární úložiště ) - velikost GiB . Nejlepší rychlost přístupu je kolem 10 GB/s. V případě stroje NUMA nemusí být přístupové časy jednotné
- Úložiště na disku ( sekundární úložiště ) - velikost terabajtů . Od roku 2017 je nejlepší přístupová rychlost ze spotřebitelského disku SSD přibližně 2 000 MB/s
- Úložiště Nearline ( terciární úložiště ) - Velikost až exabytů . Od roku 2013 je nejlepší přístupová rychlost asi 160 MB/s
- Offline úložiště
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é
- Hierarchie mezipaměti
- Využití prostorové a časové lokality: hierarchická paměť
- Vyrovnávací paměť vs. mezipaměť
- Hierarchie mezipaměti v moderním procesoru
- Paměťová stěna
- Počítačová paměť
- Hierarchická správa úložiště
- Cloudové úložiště
- Vzorec přístupu do paměti
- Algoritmus vyhýbající se komunikaci