A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
A Harvard-architektúra egy számítógép-felépítési elv, amelyben a programkód és az adatok külön, fizikailag elkülönített útvonalakon közlekednek a processzor felé.
Ezt az elvet eredetileg a Harvard Mark I (1944) számítógéphez dolgozták ki. A Mark I az utasításokat 24 bit széles lyukszalagon, az adatokat elektromechanikus regiszterekben tárolta. Ezek a korai gépek korlátozott adattárral rendelkeztek és a központi egység nem adott lehetőséget a programtároló adatként való elérésére. A programokat egy operátor töltötte be és utána a betöltött program megfelelő belépési pontjára ráindította a processzort. Nem volt mai értelemben vett operációs rendszer, amitől a programok betöltését és megfelelő indítását kérni lehetett volna.
A korszerű harvard architektúra alapú számítógépek az adatokat és a programutasításokat elkülönítve tárolják, ami a párhuzamos adatutak miatt teljesítménynövekedést eredményez, illetve az adatok és a programkód elkülönülése miatt különféle egyéb járulékos előnyöket biztosít, pl. kártékony kódok írása nehezebb – ez is egy ok, ami miatt a beágyazott rendszerekben előszeretettel használják ezt a felépítést.
A Harvard-architektúrát napjainkban leginkább digitális jelfeldolgozó processzorokban (DSP) és mikrovezérlőkben alkalmazzák.
A modern processzorok tervezésénél felhasználják mind a Harvard-, mind a Neumann-féle architektúra elveit; a modern általános processzorok igyekeznek mindkét elv előnyeit kihasználni; ezenkívül a processzorok belső felépítésében a különböző felépítésű részegységek egymáshoz illeszthetők. A modern processzorok valójában a módosított Harvard-architektúrát valósítják meg, tehát képesek olyan feladatokat is végrehajtani, mint pl. programok adatként való betöltése külső tárolóról, a programkód megváltoztatása (!) és annak elindítása.
Jellemzők
Memória
A Harvard-architektúrában a különböző memóriáknak nem kell közös jellemzőkkel rendelkezniük: a szóhossz, időzítés, sebesség, a kivitelezési technológia, címstruktúra mind más és más lehet. Egyes rendszerekben a program tárolódhat csak olvasható memóriában, miközben az adatok írható-olvasható memóriában helyezkednek el. Más rendszerekben a programmemória nagyságrendekkel nagyobb lehet, mint az adatmemória, ezért az utasításcímek jóval szélesebbek lehetnek (több bitet foglalhatnak), mint az adatcímek.
Eltérések a Neumann architektúrától
A tiszta 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.
Eltérések a módosított Harvard-architektúrától
A módosított Harvard-architektúra felépítése hasonlít a Harvard-architektúrához, de az utasítások és adatok elválasztása nem annyira szigorú, miközben a CPU egyidejű hozzáférése két – vagy több – memóriasínhez megmarad. A leggyakoribb módosításban külön adat- és utasítás-cache található, miközben mindkettő ugyanazt a címteret ill. memóriát használja. Amíg a CPU a gyorsítótárakat használja, tiszta Harvard-architektúrájú gépként működik. Mikor ugyanez a gép közvetlenül fordul a memóriához, már Neumann architektúrájú gépként viselkedik, mivel a programkódot adatként vagy fordítva, az adatokat programkódként kezelheti. Ez a módosítás széles körben elterjedt a modern processzorok, mint pl. az ARM vagy akár az x86-os architektúra körében. Erre is gyakran felületesen Harvard-architektúraként hivatkoznak, elhagyva a „módosított” jelzőt.
Egy másik változtatás adatutat nyit a programmemória (ami általában ROM vagy flash) és a CPU között, ami lehetővé teszi a programmemória szavainak csak-olvasható adatként való kezelését. Ezt a technikát különféle mikrovezérlőkben alkalmazzák, pl. az Atmel AVR kontrollerekben. Ezzel lehetővé válik konstans adatok, pl. szöveg, funkció(hívási) táblázatok hozzáférése anélkül, hogy azt előzetesen az adatmemóriába kellene másolni, így meghagyva a gyakran szűkös és energiaéhes adatmemóriát a programváltozók számára. Az adatok olvasására a programmemóriából ekkor speciális processzorutasítások szolgálnak; ez nem ugyanaz, mint amikor maga az utasítás állandókat tartalmaz a programkódban (bár bizonyos esetekben az eredmény hasonló lehet).
Sebességi kérdések
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árak 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 gyorsí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-csip 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 gyorsítótára általában két részre van osztva: utasítás- és adat-cache. A CPU és a gyorsítótár közötti kapcsolathoz gyakran a Harvard-architektúra szerinti megoldást alkalmaznak, azaz a CPU külön á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-) gyorsí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
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 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 adatsínje van (kettő írásra, három olvasásra) az egy utasítássín mellett.
- A mikrovezérlőeket (főleg) a kisméretű program-memória (általában flash memória), szintén kisméretű adatmemória (SRAM) jellemzi, a 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 PIC és az ARM 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.
Jegyzetek
Fordítás
- Ez a szócikk részben vagy egészben a Harvard architecture című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
További információk
- Digitális rendszerek és számítógép architektúrák, Pannon Egyetem, Veszprém, előadásjegyzet, pdf
- Harvard architektúra dióhéjban (angol)
Kapcsolódó szócikkek
- Harvard vs Von Neumann Archiválva 2015. június 24-i dátummal a Wayback Machine-ben (angolul)
- SHARC overview
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.
Analóg multiméterek túlterhelés elleni védelme
Egyenáram
Egyenáram mérése
Egyenirányítós lengőtekercses műszer
Elektromágnes (fizika)
Elektromos feszültség
Elektromos térerősség
Fáziseltolódás
Fázismutató
Fajlagos ellenállás
Feszültséggenerátor
Feszültségváltó
Forgó mágneses tér
Háromfázisú hálózat
Hőelektromosság
Hatásos ellenállás
A lap szövege Creative Commons Nevezd meg! – Így add tovább! 3.0 licenc alatt van; egyes esetekben más módon is felhasználható. Részletekért lásd a felhasználási feltételeket.