kde přesně jsou mezipaměti L1, L2 a L3 umístěny v počítači?

začněme tímto:

myslím, že nejnovější procesory SMP používají mezipaměti úrovně 3, takže chci pochopit hierarchii úrovně mezipaměti a jejich architekturu .

Chcete-li porozumět mezipaměti, musíte znát několik věcí:

CPU má registry. Hodnoty v tom mohou být přímo použity. Nic není rychlejší.

nicméně nemůžeme do čipu přidat nekonečné registry. Tyto věci zabírají místo. Když ten čip zvětšíme, zdraží se. Část toho je proto, že potřebujeme větší čip (více křemíku), ale také proto, že se zvyšuje počet čipů s problémy.

(obrázek imaginární oplatka s 500 cm2. Vyřízl jsem z něj 10 čipů, každý čip o velikosti 50 cm2. Jeden z nich je rozbitý. Zahodím to a nechám to 9 pracovních čipů. Nyní si vezměte stejnou oplatku a já jsem z ní vyřízl 100 čipů, každý desetkrát tak malý. Jeden z nich, pokud je zlomený. Zahodím rozbitý čip a zbylo mi 99 pracovních čipů. To je zlomek ztráty, kterou bych jinak měl. Abych kompenzoval větší čipy, musel bych požádat o vyšší ceny. Více než jen cena za extra křemík)

to je jeden z důvodů, proč chceme malé, cenově dostupné čipy.

čím blíže je mezipaměť CPU, tím rychleji je přístupná.

to je také snadné vysvětlit; elektrické signály se pohybují v blízkosti rychlosti světla. To je rychlá, ale stále konečná rychlost. Moderní CPU pracuje s hodinami GHz. To je také rychlé. Pokud vezmu procesor 4 GHz, elektrický signál může cestovat asi 7.5 cm na hodiny. To je 7,5 cm v přímce. (Čipy jsou něco jiného než přímé spojení). V praxi budete potřebovat výrazně méně než těch 7, 5 cm, protože to neumožňuje čipům předložit požadovaná data a signál se vrátit zpět.

Sečteno a podtrženo, chceme mezipaměť co nejblíže fyzicky. Což znamená velké čipy.

tyto dva musí být vyvážené (výkon vs. cena).

kde přesně jsou mezipaměti L1, L2 a L3 umístěny v počítači?

za předpokladu, že PC styl pouze hardware (mainframy jsou zcela odlišné, včetně výkonu vs.

IBM XT
původní 4.77 Mhz jeden: žádná mezipaměť. CPU přistupuje přímo k paměti. Čtení z paměti by následovalo tento vzor:

  • CPU umístí adresu, kterou chce číst, na paměťovou sběrnici a uplatní příznak čtení
  • paměť umístí data na datovou sběrnici.
  • CPU zkopíruje data z datové sběrnice do svých interních registrů.

80286 (1982)
stále žádná mezipaměť. Přístup do paměti nebyl velkým problémem pro verze s nižší rychlostí (6Mhz), ale rychlejší model běžel až na 20Mhz a často potřeboval zpoždění při přístupu do paměti.

pak dostanete scénář, jako je tento:

  • CPU umístí adresu, kterou chce číst, na paměťovou sběrnici a uplatní příznak čtení
  • paměť začne vkládat data na datovou sběrnici. CPU čeká.
  • paměť dokončila získávání dat a nyní je stabilní na datové sběrnici.
  • CPU zkopíruje data z datové sběrnice do svých interních registrů.

to je další krok strávený čekáním na paměť. Na moderním systému, který může být snadno 12 kroků, proto máme mezipaměť.

80386: (1985)
procesory se zrychlují. A to jak za hodiny, tak při vyšších rychlostech hodin.
RAM se zrychluje, ale ne o tolik rychleji než procesory.
v důsledku toho je zapotřebí více čekacích stavů.Některé základní desky to obejdou přidáním mezipaměti (to by byla mezipaměť 1. úrovně) na základní desku.

čtení z paměti nyní začíná kontrolou, zda jsou data již v mezipaměti. Pokud je, je čten z mnohem rychlejší mezipaměti. Pokud tomu tak není stejný postup, jak je popsáno s 80286

80486: (1989)
Toto je první procesor této generace, který má na CPU nějakou mezipaměť.
jedná se o 8KB jednotnou mezipaměť, což znamená, že se používá pro data a pokyny.

kolem této doby je běžné umístit 256KB rychlé statické paměti na základní desku jako mezipaměť 2. úrovně. Mezipaměť 1. úrovně na CPU, mezipaměť 2. úrovně na základní desce.

486 základní deska s umístěním CPU a vyrovnávací pamětí 2. úrovně označena

80586 (1993)
586 nebo Pentium-1 používá mezipaměť rozdělené úrovně 1. 8 KB každý pro data a pokyny. Mezipaměť byla rozdělena tak, aby mezipaměti dat a instrukcí mohly být individuálně naladěny pro jejich specifické použití. Stále máte malou, ale velmi rychlou mezipaměť 1st poblíž CPU a větší, ale pomalejší mezipaměť 2nd na základní desce. (Ve větší fyzické vzdálenosti).

ve stejné oblasti pentium 1 Intel vyrobil Pentium Pro (‚80686‘). V závislosti na modelu měl tento čip 256Kb, 512KB nebo 1MB na palubě cache. Bylo to také mnohem dražší, což lze snadno vysvětlit následujícím obrázkem.

 obrázek CPU pentium Pro, 256KB cache model

Všimněte si, že polovina místa v čipu je používána mezipamětí. A to je pro model 256KB. Více cache bylo technicky možné a některé modely, kde se vyrábí s 512KB a 1MB cache. Tržní cena za ně byla vysoká.

všimněte si také, že tento čip obsahuje dvě matrice. Jeden se skutečným CPU a 1st cache, a druhá kostka s 256kb 2nd cache.

Pentium-2

Pentium 2 je jádro pentium pro. Z ekonomických důvodů není v CPU žádná mezipaměť 2nd. Místo toho, co se prodává a CPU nám PCB se samostatnými čipy pro CPU (a 1. cache) a 2.cache.

jak technologie postupuje a začneme vytvářet čipy s menšími komponenty, je finančně možné vložit 2. mezipaměť zpět do skutečné CPU matrice. Stále však existuje rozdělení. Velmi rychlá mezipaměť 1st se přitulila k CPU. S jednou mezipamětí 1st na jádro CPU a větší, ale méně rychlou mezipamětí 2nd vedle jádra.

 obrázek procesoru pentium 2 (s krytem i bez krytu)

Pentium-3
Pentium-4
to se nemění pro pentium-3 nebo pentium-4.

kolem této doby jsme dosáhli praktického limitu, jak rychle můžeme hodiny CPU. 8086 nebo 80286 nepotřebovaly chlazení. Pentium-4 běžící na 3.0 GHz produkuje tolik tepla a využívá tolik energie, že je praktičtější umístit na základní desku dva samostatné CPU než jeden rychlý.

(dva procesory 2.0 GHz by spotřebovaly méně energie než jeden identický procesor 3.0 GHz, přesto by mohly dělat více práce).

to lze vyřešit třemi způsoby:

  1. Zefektivněte procesory, takže dělají více práce stejnou rychlostí.
  2. použijte více procesorů
  3. použijte více procesorů ve stejném „čipu“.

1) je probíhající proces. Není to nic nového a nezastaví se.

2) bylo provedeno brzy (např. s duálními základními deskami Pentium-1 a čipovou sadou NX). Až dosud to byla jediná možnost pro vybudování rychlejšího počítače.

3) vyžaduje CPU, kde je více „cpu core“ zabudováno do jednoho čipu. (Pak jsme tento procesor nazvali dvoujádrovým procesorem, abychom zvýšili zmatek. Děkuji marketing:))

v těchto dnech jsme jen odkazují na CPU jako „jádro“, aby nedošlo k záměně.

nyní získáte čipy jako pentium-D (duo), což jsou v podstatě dvě jádra pentium-4 na stejném čipu.

rané pentium-D (2 jádra P4)

Pamatujete si obrázek starého pentium-Pro? S obrovskou velikostí mezipaměti?
podívejte se na dvě velké oblasti na tomto obrázku?

ukazuje se, že můžeme sdílet tuto 2.mezipaměť mezi oběma jádry CPU. Rychlost by mírně poklesla, ale sdílená 2. mezipaměť 512KiB je často rychlejší než přidání dvou nezávislých mezipaměti 2. úrovně o polovině velikosti.

to je důležité pro vaši otázku.

to znamená, že pokud si něco přečtete z jednoho jádra CPU a později se pokusíte přečíst z jiného jádra, které sdílí stejnou mezipaměť, dostanete zásah do mezipaměti. Paměť nebude nutné přistupovat.

vzhledem k tomu, že programy migrují mezi CPU, v závislosti na zatížení, počtu jádra a plánovači můžete získat další výkon tím, že připnete programy, které používají stejná data na stejný procesor (zásahy mezipaměti na L1 a nižší) nebo na stejné procesory, které sdílejí mezipaměť L2 (a tak se dostanou na L1, ale narazí na čtení mezipaměti L2).

takže na pozdějších modelech uvidíte sdílené mezipaměti úrovně 2.

 obrázek otevřeného procesoru Core2

pokud programujete pro moderní procesory, máte dvě možnosti:

  1. Neobtěžuj se. OS by měl být schopen naplánovat věci. Plánovač má velký dopad na výkon počítače a lidé vynaložili velké úsilí na optimalizaci tohoto. Pokud neuděláte něco divného nebo se optimalizujete pro jeden konkrétní model počítače, máte lepší výchozí plánovač.
  2. pokud potřebujete každý poslední kousek výkonu a rychlejší hardware není možnost, zkuste ponechat běhouny, které přistupují ke stejným datům na stejném jádru nebo na jádru s přístupem ke sdílené mezipaměti.

uvědomuji si, že jsem ještě nezmínil mezipaměť L3, ale neliší se. Mezipaměť L3 funguje stejným způsobem. Větší než L2, pomalejší než L2. A to je často sdíleno mezi jádry. Pokud je přítomen, je mnohem větší než mezipaměť L2 (jinak by to nemělo smysl) a je často sdíleno se všemi jádry.

modernCPUwithL3.png

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.