11. tétel Flashcards
(9 cards)
Neumann architektúra
Számítógépes rendszer modell:
* CPU (CU + ALU) szeparáció
* Egyetlen, de különálló tároló elem utasítások és adatok együttes tárolására
* Univerzális Turing gépet implementál
* Szekvenciális architektúra
„De Facto” szabvány: az adat- és utasítás-címek a memória ugyanazon címtartományára vannak leképezve.
Példák:
- EDVAC: egyenletmegoldó, tárolt-programú gép
- ENIAC, UNIVAC: numerikus integrátor, kalkulátor
- A mai rendszerek modern mini-, mikro- és mainframe számítógépek operatív memóriája is ezt az architektúrát követi.
Neumann elvek
- A számítógép működését tárolt program vezérli (Turing).
- A vezérlést vezérlés-folyam gráf (CFG – Control-Flow Graph) segítségével lehet leírni.
- A gép belső operatív tárolójában a program utasításai és a végrehajtásukhoz szükséges adatok egyaránt megtalálhatók (közös utasítás és adattárolás, a program felülírhatja önmagát).
- Az aritmetikai és logikai műveletek (programutasítások) végrehajtását önálló részegység, az ALU végzi (CU szeparáció).
- Az adatok és programok beolvasására és az eredmények megjelenítésére önálló egységek (IO perifériák) szolgálnak.
- Bináris számrendszer alkalmazása
Fix vs tárolt programozhatóság
A korai számítógépes eszközök fix programmal rendelkeztek (pl.: kalkulátor). A program megváltoztatása átvezetékezéssel, struktúra újra tervezéssel volt csak lehetséges. Ez egy nagyon lassú művelet volt, tele hibalehetőségekkel (folyamat diagram -> előterv specifikáció -> részletes mérnöki tervek -> nehézkes implementáció).
Tárolt programozhatóság ötlete:
- Utasítás-készlet architektúra (ISA): RISC, CISC
- Változtatható program: utasítások sorozata
- Nagyfokú flexibilitás, adatot hasonló módon tárol és kezel
Neumann architektúra hátrányai
- A már eleve rosszul megírt, önmagát változtató programok kárt okozhatnak önmagukban és más szoftverekben is, melyek rendszer leálláshoz is vezethetnek. Például a buffer túlcsordulás kezelése szintenkénti hozzáféréssel és memória védelemmel.
- Bottleneck probléma: sávszélesség korlát a CPU és a memória között, amely a nagymennyiségű adatok továbbítása során léphet fel. Ezért kellett bevezetni a CPU-ban a Cache memóriát.
- A nem-cache alapú rendszerekben egyszerre, vagy csak adat írást/olvasást, vagy csak az utasítás beolvasását lehet elvégezni (egy buszrendszer).
Harvard architektúra
Olyan számítógéprendszer, amelynél a programutasításokat és az adatokat fizikailag különálló memóriában tárolják és külön buszon érhetők el.
Példák:
- Harvard MARK I.: relés alapú rendszer (1944)
- Intel Pentium processzor család L1-szintű különálló adat- és utasítás-cache memóriája
- ARM processzorok újabb (pl.: Cortex) sorozatai (L1 cache)
- Beágyazott rendszerek processzorai:
o Mikrovezérlők (MCU) különálló utasítás-adat buszai és
memóriái (Atmel, Cypress, Texas)
o FPGA-alapú beágyazott rendszerek (pl.: MicroBlaze, PowerPC)
cache memóriái, buszrendszerei
o DSP jelfeldolgozó processzorok (RAM, ROM memóriái)
Harvard architektúra tulajdonságai
Nem szükséges a memória osztott (shared) jellegének kialakítása:
* A memória szóhosszúsága, időzítése, tervezési technológiája és címzése is különböző lehet.
* Az utasítás (program) memória gyakran szélesebb, mint az adat memória.
* Az utasításokat a legtöbb rendszer esetében olvasható ROM-ban (esetleg PROM-ban) tárolják, míg az adatot írható/olvasható memóriában (például RAM-ban).
* A számítógép különálló buszrendszere segítségével egyidőben akár egy utasítás beolvasását és adat írását/olvasását is el lehet végezni (cache nélkül is).
Módosított Harvard architektúra
Az utasítás-memória és CPU között olyan közvetlen adatút biztosított, ezáltal a konstans (readonly) adat utasítás-memóriába töltésével a változók számára további helyet spórolhatunk meg az adatmemóriában.
Harvard architektúra hátrányai
- A mostani egychipes(SOC - System on a chip) technológiák esetén bonyolult a több memória kezelésének megoldása, ezért neumann architektúrát alkalmaznak.
- Magasabb szintű nyelvek(ansi C) nyelvek nehezen támogathatóak
Harvard-Neumann együttes architektúra megvalósítás
A mai, nagy teljesítményű számítógép architektúrákban a két elvet együttesen kell értelmezni. Például: cache rendszer:
- Neumann cache -> ha nincs a cache-ben akkor a memóriából kell kiszedni
- Harvard cache -> Külön cache kell a utasításoknak és külön az adatoknak