„Harvard-architektúra” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
sín
jav
21. sor:
 
=== Eltérések a Neumann architektúrától ===
A tiszta [[Neumann-architektúra|Neumann-architektúrá]]ban a [[CPU]] bármely időpontban vagy egy utasítást olvas be, vagy írja/olvassa a memóriát; mindkét feladatot nem tudja egyszerre végezni, mivel a programkódot és az adatokat ugyanazon a sínen (buszon) keresztül éri el. Egy Harvard architektúrájú számítógépben a CPU az adatmemória-hozzáféréssel egyidőben képes egy utasítás beolvasására és végrehajtására, még [[gyorsítótár]] nélkül is. A Harvard-felépítésű számítógép ezért gyorsabb lehet ugyanazon áramköri komplexitás mellett, mert az utasításbeolvasásnak és az adathozzáférésnek nem kell egyetlen szűk memória-útvonalon osztoznia.
 
Ezen kívül a Harvard felépítésű gépek különálló kód- és adat-címtartománnyal rendelkeznek: az utasítás- és adat-címek hiába lehetnek látszólag egyenlők, más fizikailag elkülönülő memóriaterületeket címeznek, amelyekben az értékek akár eltérő bithosszúságúak is lehetnek, pl. [[24 bites]] utasítások és [[8 bites]] adatok.
38. sor:
 
=== Belső és külső felépítés ===
A modern, nagy teljesítményű CPU-chip kialakítások magukban foglalják mind a Harvard-, mind a Neumann-elvű architektúrák megoldásait. Különösen a [[Módosított Harvard-architektúra]] az elterjedt. A CPU cache általában két részre van osztva: utasítás- és adat-cache. A CPU és a cache közötti kapcsolathoz gyakran a Harvard-architektúra szerinti megoldást alkalmaznak, azaz a CPU külön cache-ekből, külön buszokonsíneken keresztül olvassa az utasításokat és az adatokat. Tévesztés (''cache-miss'') esetén azonban az adatot a fő memóriából kell kiolvasni, amely formálisan nincs különálló utasítás- és adatszegmensekre felosztva, bár ez lehetséges, pl. a RAM, ROM és (NOR) flash típusú memóriákat, amelyekből több is lehet, külön memóriavezérlők kezelhetik (pl. játékkonzoloknál).
 
Így miközben a hardver bizonyos szempontokból a Neumann-architektúrának megfelelően viselkedik, tehát mikor az adat és a kód ugyanazon a memóriavezérlőn keresztül közlekedik, a hardvermegvalósítás mégis kihasználja a Harvard-architektúra előnyeit a gyorsítótárakhoz való hozzáférésnél és a memóriaelérések egy részénél is.
47. sor:
A tiszta Harvard architektúra alapvető előnye – a több memóriarendszerhez való egyidejű, szimultán hozzáférés – nem érvényesül teljes mértékben a módosított Harvard-architektúrájú processzorokban, a modern cache-megvalósítások miatt. Viszonylag tiszta Harvard-megvalósításokat csak olyan alkalmazásokban használnak, ahol az ár és a fogyasztás csökkenése indokolttá teszi ill. ellensúlyozza a gyorsítótárak elhagyását és a külön adat- és kódterület kezelésének programozási vonzatait.
 
* A [[DSP|digitális jelfeldolgozó processzorok (DSP)]] általában kicsi, rendkívül optimalizált audio- és videojel-feldolgozó algoritmusokat hajtanak végre. Ezekben kerülik a gyorsítótárak használatát, a működés, feladatvégzés állandósága miatt. Elsődleges a végrehajtás sebessége, a többszörös címterek kezelési nehézségei kevésbé számítanak. Emiatt néhány DSP több, külön címterű adatmemória-területtel is rendelkezik, hogy ki tudja használni a [[SIMD]] és [[VLIW]] utasításfeldolgozás előnyeit is. A [[Texas Instruments TMS320]] C55x processzorainak például több párhuzamos adatbuszaadatsínje van (kettő írásra, három olvasásra) az egy utasításbuszutasítássín mellett.
 
* A [[mikrokontrollermikrovezérlő]]eket (főleg) a kisméretű program-memória (általában [[flashmemória|flash]] memória), szintén kisméretű adatmemória ([[SRAM]]) jellemzi, a cache[[gyorsítótár]] hiányzik. Ezek igyekeznek a Harvard-architektúra gyors párhuzamos/konkurens program- és adatfeldolgozási lehetőségét kihasználni. A külön program- és adattárolók különböző bitszámúak lehetnek, ez jelenthet pl. 16 bites utasításhosszt 8 bites adatméret mellett. Ezen kívül kihasználható az egyéb tevékenységtől független utasítás-előbetöltés (''instruction prefetch'') is. Példák: [[Atmel AVR]], [[Microchip Technology|Microchip]] [[PIC mikrokontroller|PIC]] és az [[ARM]] [[ARM_architektúra#Thumb-2|Cortex-M3]] processzor (mikrokontroller; nem minden ARM csip Harvard architektúrájú).
 
Még ezeknél a felhasználásoknál is gyakori, hogy a processzorokban speciális utasításokat helyeznek el a programmemória adatként való kezeléséhez, pl. csak olvasható táblák beolvasására vagy átprogramozáshoz.