„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
a j link
a j gyorsítóár
31. sor:
Az utóbbi években a processzorok sebessége sokkal gyorsabban nőtt, mint a memóriák hozzáférési sebessége, ezért a teljesítmény fenntartása érdekében valahogy redukálni kell a fő memóriához való hozzáférés idejét, ill. összeegyeztetni a processzor sebességével. Ha például a CPU által végzett minden utasítás memória-hozzáférést igényel, akkor a számítógép semmit sem nyer a megnövelt processzorsebességgel – a lassú memória visszafogja, fékezi a processzor teljesítményét (''„memory-bound”'' probléma).
 
(Be)építhető extrém gyors memória, de ez csak kis méreteknél (pl. regiszterek esetén) éri meg, a költségek, fogyasztási és tervezési megfontolások miatt. A jelen állapot szerinti gyakorlati megoldást a [[gyorsítótár]]ak használata jelenti: a gyorsítótár (''cache'') egy kisméretű, de nagyon gyors memória, ami a legfrissebb és leggyakrabban hivatkozott adatokat tárolja. Amíg az adat, amire a processzornak szüksége van, a gyorsítótárban van, addig gyorsan elérhető, így nincs akkora lassulás, mint amikor a gyorsítótár a fő memóriából kénytelen olvasni az adatokat.
 
A Harvard-architektúrájú processzorok legalább két cache-etgyorsítótárat használnak: egyet az utasítások és egyet az adatok számára.
 
=== Belső és külső felépítés ===
A modern, nagy teljesítményű CPU-chipcsip 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ítottmódosított Harvard-architektúra]] az elterjedt. A CPU cachegyorsítótára általában két részre van osztva: utasítás- és adat-cache. A CPU és a cachegyorsítótár közötti kapcsolathoz gyakran a Harvard-architektúra szerinti megoldást alkalmaznak, azaz a CPU külön cache-ekbőlátmeneti tárakból, külön sí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 vannak ilyen megoldások).
 
Í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.
 
Emellett a CPU-k gyakran rendelkeznek (akár több) írási pufferrel is, ami lehetővé teszi a nem gyorsítótárazott memóriaterületek késleltetett írását; ekkor a memória Neumann-féle tulajdonságai csak akkor kerülnek előtérbe, mikor a CPU utasításokat ír a memóriába adatként és a szoftvernek ellenőriznie kell, hogy az (adat- és utasítás-) cache-ekgyorsítótárak és az írási puffer szinkronban van-e az éppen kiírt utasítások végrehajtása előtt.
 
== A Harvard-architektúra modern felhasználása ==