Harvardská architektura - Harvard architecture

Harvardská architektura

Harvardská architektura je architektura počítače s oddělenou skladování a signálních drah pro instrukcí a dat . Je v kontrastu s architekturou von Neumann , kde instrukce programu a data sdílejí stejnou paměť a cesty.

Termín pochází z reléového počítače Harvard Mark I , který ukládal instrukce na děrnou pásku (24 bitů široký) a data do elektromechanických čítačů. Tyto rané stroje měly úložiště dat zcela obsaženo v centrální procesorové jednotce a neposkytovalo žádný přístup k úložišti instrukcí jako data. Programy, které musí nahrát operátor; procesor se nemohl sám inicializovat .

Moderní procesory se uživateli zdají být stroji von Neumann s kódem programu uloženým ve stejné hlavní paměti jako data. Z důvodů výkonu, interně a do značné míry pro uživatele neviditelných, má většina návrhů oddělené mezipaměti procesoru pro pokyny a data, přičemž pro každý z nich jsou k dispozici samostatné cesty do procesoru. Toto je jedna forma takzvané modifikované harvardské architektury .

Podrobnosti o paměti

V harvardské architektuře není potřeba, aby tyto dvě paměti sdílely charakteristiky. Zejména šířka slova , načasování, implementační technologie a struktura adres paměti se mohou lišit. V některých systémech mohou být pokyny pro předprogramované úlohy uloženy v paměti pouze pro čtení, zatímco paměť dat obecně vyžaduje paměť pro čtení a zápis . V některých systémech existuje mnohem více instrukční paměti než paměť dat, takže adresy instrukcí jsou širší než adresy dat.

Kontrast s von Neumannovými architekturami

V systému s čistou von Neumannovou architekturou jsou instrukce a data uložena ve stejné paměti, takže instrukce jsou načítány přes stejnou datovou cestu, která slouží k načítání dat. To znamená, že CPU nemůže současně číst instrukce a číst nebo zapisovat data z nebo do paměti. V počítači využívajícím architekturu Harvard může procesor číst instrukci a současně provádět přístup k datové paměti, a to i bez mezipaměti. Počítač s architekturou Harvard může být tedy pro danou složitost obvodu rychlejší, protože načítání instrukcí a přístup k datům nesoutěží o jedinou paměťovou cestu.

Harvardský architektonický stroj má také odlišný prostor pro kód a adresu adresy: nula adresy adresy instrukce není stejná jako nula adresy dat. Nulová adresa instrukce může identifikovat dvacetičtyřbitovou hodnotu, zatímco nula datové adresy může znamenat osmibitový bajt, který není součástí této čtyřiadvacetibitové hodnoty.

Kontrast s upravenou harvardskou architekturou

Modifikované Harvardská architektura stroj je velmi podobně jako architektura stroj Harvard, ale uvolňuje přísné oddělení mezi instrukcí a dat a zároveň nechat CPU souběžně přístup dva (nebo více) paměťové sběrnice. Nejběžnější modifikace zahrnuje oddělené instrukční a datové cache zálohované společným adresním prostorem. Zatímco se CPU spouští z mezipaměti, funguje jako čistý harvardský stroj. Při přístupu k záložní paměti se chová jako von Neumannův stroj (kde lze kódem pohybovat jako data, což je mocná technika). Tato modifikace je rozšířená v moderních procesorech, jako je architektura ARM , procesory Power ISA a x86 . Někdy se mu volně říká harvardská architektura, přičemž přehlíží fakt, že je ve skutečnosti „upravený“.

Další modifikace poskytuje cestu mezi instrukční pamětí (jako je ROM nebo flash paměť ) a CPU, aby bylo možné zacházet se slovy z instrukční paměti jako s daty pouze pro čtení. Tato technika se používá v některých mikrokontrolérech, včetně Atmel AVR . To umožňuje přístup ke konstantním datům, jako jsou textové řetězce nebo tabulky funkcí , aniž by bylo nutné je nejprve kopírovat do datové paměti, čímž se zachová omezená (a energeticky náročná) datová paměť pro proměnné čtení/zápisu. Ke čtení dat z paměti instrukcí jsou poskytovány speciální instrukce strojového jazyka , nebo je k paměti instrukcí možné přistupovat pomocí periferního rozhraní. (To se liší od instrukcí, které samy obsahují konstantní data, i když u jednotlivých konstant mohou tyto dva mechanismy navzájem nahradit.)

Rychlost

V posledních letech rychlost CPU mnohonásobně vzrostla ve srovnání s přístupovou rychlostí hlavní paměti. Aby byla zachována výkonnost, je třeba snížit počet přístupů do hlavní paměti. Pokud například každá instrukce spuštěná v CPU vyžaduje přístup do paměti, počítač nezvýší nic pro zvýšenou rychlost CPU - problém, kterému se říká vázání paměti .

Je možné vytvořit extrémně rychlou paměť, ale je to praktické pouze pro malé množství paměti z důvodů nákladů, výkonu a směrování signálu. Řešením je poskytnout malé množství velmi rychlé paměti známé jako mezipaměť CPU, která uchovává nedávno přístupná data. Dokud jsou data, která CPU potřebuje, v mezipaměti, je výkon mnohem vyšší, než když CPU musí získávat data z hlavní paměti.

Interní vs. externí design

Moderní vysoce výkonné designy čipů CPU zahrnují aspekty architektury Harvard i von Neumann. Zejména verze „split cache“ upravené Harvardské architektury je velmi běžná. Mezipaměť CPU je rozdělena na mezipaměť instrukcí a mezipaměť dat. Jako CPU přistupuje k mezipaměti architektura Harvard. V případě vynechání mezipaměti jsou však data načtena z hlavní paměti, která není formálně rozdělena na samostatné instrukční a datové sekce, i když může mít také oddělené řadiče paměti používané pro souběžný přístup k RAM, ROM a (NOR) ) flash paměť.

Zatímco tedy architektura von Neumann je v některých kontextech viditelná, například když data a kód procházejí stejným řadičem paměti, hardwarová implementace získává efektivitu architektury Harvard pro přístupy do mezipaměti a alespoň některé přístupy do hlavní paměti.

Kromě toho mají procesory často vyrovnávací paměti pro zápis, která umožňuje CPU pokračovat po zápisu do oblastí bez mezipaměti. Povaha paměti von Neumann je pak viditelná, když jsou instrukce CPU zapsány jako data a software musí zajistit, aby byly mezipaměti (data a instrukce) a vyrovnávací paměť pro zápis synchronizovány, než se pokusíte provést právě napsané instrukce.

Moderní využití harvardské architektury

Zásadní výhodu čisté harvardské architektury - simultánní přístup k více než jednomu paměťovému systému - omezily modifikované harvardské procesory využívající moderní cache systémy CPU . Relativně čisté stroje Harvardské architektury se používají většinou v aplikacích, kde kompromisy, jako jsou úspory nákladů a energie při vynechání mezipaměti, převažují nad pokutami za programování díky odlišným prostorům pro kódové a datové adresy.

  • Procesory digitálního signálu (DSP) obecně provádějí malé, vysoce optimalizované algoritmy pro zpracování zvuku nebo videa. Vyhýbají se keškám, protože jejich chování musí být extrémně reprodukovatelné. Obtíže při zvládání více adresních prostorů jsou sekundárním problémem rychlosti provádění. V důsledku toho některé DSP obsahují více datových pamětí v odlišných adresních prostorech, aby usnadnily zpracování SIMD a VLIW . Procesory Texas Instruments TMS320 C55x mají například několik paralelních datových sběrnic (dvě pro zápis, tři pro čtení) a jednu instrukční sběrnici.
  • Mikrokontroléry se vyznačují malým množstvím programové (flash paměti) a datové ( SRAM ) paměti a využívají výhod Harvardské architektury k urychlení zpracování souběžnými instrukcemi a přístupem k datům. Oddělené úložiště znamená, že program a datové paměti mohou mít různé šířky bitů, například pomocí 16bitových instrukcí a 8bitových dat. Znamená to také, že předběžné načtení instrukcí lze provádět souběžně s jinými aktivitami. Mezi příklady patří PIC od Microchip Technology, Inc. a AVR od Atmel Corp (nyní součást Microchip Technology).

I v těchto případech je běžné používat speciální instrukce pro přístup do paměti programu, jako by to byla data pro tabulky jen pro čtení nebo pro přeprogramování; tyto procesory jsou upravené procesory architektury Harvard .

Poznámky

Reference

externí odkazy