Számítógép-architektúra
A Wikipédiából, a szabad lexikonból.
A számítástechnikában a számítógép architektúra a számítógép tágabb értelemben vett felépítésére vonatkozik. Tágabb értelemben a számítógép tervezési elveinek és a gép alapvető működési módjának, struktúrájának, a számítógép "rendszerének" a meghatározása. A fenti jellemzők tervezési szinten dőlnek el, ezért a következőkben tervezési szempontok szerint vizsgáljuk a kérdést. A gép tervei, a megvalósítandó igények funkcionális leírása (különösen a sebesség és összekapcsolhatóság), a megvalósítás módja mind csak egy-egy részét határozzák meg a számítógépnek — a fő kérés általábam a CPU teljesítménye és memória címzés és hozzáférés módja.
"Architektúra" gyakran a CPU belső struktúrájára vonatkozik (azaz az elektronikus kapcsolókkal megvalósított logikai kapuk) által végrehajtott logikai műveletek, és ide tartozhatnak a beépített interfészek (úm. a hardver szintű opkódok), erőforrások (úm. CPU, memória, és esetleg az alaplap, perifériák) és a használható szoftverek.
Több speciális területet foglal magába az architektúra, ezek közül néhány:
- A számítógép tervezésénél a CPU architektúra, az utasítás készlet, a címzési módok, és a különféle techonlógiák, mint például a SIMD és a MIMD párhuzamosságok.
- Gyakran a skálázható kialakításra vonatkozik, mint a fürtözés (clustering) vagy a Non-Uniform Memory Access (NUMA) szerinti felépítés.
- Az architektúra gyakran meghatározza a programozó számára, hogy az adott számítógép milyen jellemzőkkel bír, ami alapján eldöntheti, hogy milyen programozási eszközöket használjon az adott számítógépre írt programok készítésénél. Például, az architektúra réésze az utasításkészlet, a legnagyobb ábrázolható szám, speciális műveletek stb.
- A létező technológiák használatával felépíteni a lehető legjobb számítógépet (a legjobb kifejezés gyakran sok, egymásnak ellentmondó szempontot takar, részletesebben lásd: "Tervezési célok" alatt). A korszerű tervezési megfontolások gyakran a vonatkoznak az úgynevezett mikroarchitektúrakra.
Tartalomjegyzék |
[szerkesztés] Tervezési célok
A következőkben az architektúrák fejlesztésének leggyakoribb céljait vesszük sorra, a költségeket, a teljesítményt (sebességet), és nem foglalkozunk egyéb meggondolásokal mint például méretek, súly, megvalósíthatóság, bővíthetőség, energiafogyasztás stb.
[szerkesztés] Költségek
A költségek általában állandó, a meghatározott rendszer vagy kereskedelmi igényektől függő, a sebesség és tároló kapcitás által meghatározott elemeket tartalmaznak, amelyeknek összességükben a kijelölt célköltségek közelében kell lenniük.
[szerkesztés] Teljesítmény
A számítógép eladók hajlamosak a számítógép teljesítményét a központi órajel sebességével mérni (ezt általában MHz-ben vagy GHz-ben adják meg). Ami valójában a CPU ciklusidejére jellemző, a megadott érték és mértékegység bizonyos mértékben félrevezető, ugyanis a magasabb órajel sebesség nem feltétlenül jelent nagyobb teljesítményt is egyben. A mai modern CPU-k képesek egy órajel ideje alatt több utasítást is végrehajtani, amivel jelentősen felgyorsul a programm végrehajtási sebessége. Más, teljesítményel összefüggő tényezők még a busz sebességek, a felhasználható memória mérete, gyorsítótár használata stb.
De léteznek más típusú sebességek is. A megszakítás késleltetés a rendszer egy garantált maximális válaszideje egy elektronikus eseményre (jelzésre) - pl. a diszk egység befejezte az adatok átvitelét. Ez a jellemző döntő tervezési megfontolásokat igényel, többek között járulékos gyorsító tár használatával javítható a késleltetés. A viszonylag lassabb reakció elfogadható egy adatfeldolgozó rendszernél, de az speciális, úgynevezett valós idejű (real-time) környezetben működő rendszerek esetében elvárás, hogy a számítógép a beavatkozást egy adott időn belül biztosan befejezze. Például gondoljunk egy atomerőmű vagy egy villamos teljesítmény elosztó rendszer vezérlő számítógépére, vagy a gépkocsikban lévő blokkolás gátló berendezésekre, ahol a reakcióidő esetleg igen rövid is lehet. A megfelelően gyors válaszidő megvalósítása esetleg nagyon drága is lehet.
A benchmarkok szolgálnak annak megállapítására, mérésére, hogy az adott rendszer bizonyos előre összeállított tesztjellegű utasítássorozatot milyen teljesítménnyel hajt végre. Annak elleére, hogy a benchmarkok hasznosak a különféle teljesítmények mérésére és összehasonlításokra, nem alkalmasak a rendszerek kiválasztására. Ráadásul különböző funkcionalitások elemzéséhez különböző benchmarkok szükségesek, és csak az azonos típusok eredményei hasonlíthatók össze. A számítógépek, számítógép-családok különböző tagjai eltérő célok kiszolgálására készülnek, lehetséges, hogy tudományos számításokat nagy pontossággal, és gyorsan végeznek, ugyanakkor grafikus műveleteket lassan és nehézkesen hajtanak végre. A tervezők egyre inkább probálnak általános gépeket tervezni, de biztosítják annak a lehetőségét, hogy kiegészítő elemek, részegységek egyszerű beépítésével bizonyos jellemzők - a többi jellemző változatlansága mellett - nagymértékben javíthatók legyenek. Ilyenkor - többnyire - egy kis, speciális, esteleg számítógép bonyolultságú egységet csatlakoztatnak, ami szinte perifériaként működik (pl. grafikus gyorsítókárlya, speciális műveletvégző egység stb.). Ezek a megoldások nem keverendők össze a skálázhatóság fogalmával, amikor azonos architektúra mellett több jellemző (sebesség, memória méret, processzorok száma, háttértár méret stb.) növelhető.
Az optimalizálás általános sémája szerint: meg kell vizsgálni a gépet alkotó egyes egységek költségeit. Egy kiegyenlített rendszer esetében az egységek adatrátái nagyából azonosak, a kölségek növekedése pedig nagyjából egyenesen arányos az adatráta növekedésével. A számítógéprendszer végső formája - és költsége - pedig a vele szmben támsztott követelmények szerint alakul.
[szerkesztés] Virtuális memória
Egy állandó kritikus terület: a virtuális memória kezelés.
A számítógépek korai időszakában a véletlen elérésű memória (ez esetünkben a központi memóriát jelenti) hozzávetőlegesen ezerszer drágább volt, mint a mechanikai tárolók (nem véletlenül voltak jellemzők a mágnesdobos memóriát használó korai gépek), azaz a mai merevlemezeknek egfelelő tárolók.
Jó megoldásnak tűnt, hogy a drága - ezért viszonylag kis tároló kapacitású - gyors memóriába csak az éppen szükséges programrész kerüljön be, a "nem használt" programrészek pedig külső, mechanikus tárolókon helyezkedjenek el. Különösen a több felhasználós (időosztásos) rendszerek esetében látszott előnyösnek ez a megoldás, amikor a program- és felhasználó váltás amúgy is jó alkalmat szolgáltatott arra, hogy a programot cseréljék.
A program megállítása helyett több számítógép rendszer a kevéssé használt memóriaterületekt másolja ki mechanikai tárolóra.
lényegében, a háttértárak központi memóriává válta. Viszont, a mechanikus háttértárak kb. ezerszer lassúbbak, mint a mágneses vagy félvezető tárak.
[szerkesztés] Átkonfigurálható számítógép
A folyamatban lévő fejlesztések célja az átkonfigurálható számítógépek területén a konvencionális struktúrákból származó határok ledöntése. Egy átkonfigurálható számítógép rendszerben egy speciális compiler programm segítségével a forrás kódból olyan közbülső kód jön létre, ami futás időben elvégzi a field-programmable gate arrays átkonfigurálását, biztosítva ezzel a programnak legjobban megfelelő hardver létrehozását. Amíg a különböző hardver megvalósításokkal sikerül a párhuzamos programvégrehajtásra alkalmas környezetet kialakítani, addig a átkonfigurálható számítógép "önmagától" biztosítja a legfeljetettebb, és program elvárásaihoz igazodó párhuzamos feldolgozási architektúra rendelkezésre állását. Az átkonfigurálható számítógépek másik fejlődési iránya a számítógép memória átalakítása. Itt elsősorban a neuron alapú memória, amely egyszerre tárol és végrehajt a fejlesztés iránya.
[szerkesztés] Lásd még
- Számítógép hardver
- CPU tervezés
- ortogonális utasításkészlet
[szerkesztés] Egyéb, angol nyelvű hivatkozások
- ISCA: Proceedings of the International Symposium on Computer Architecture
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems
- ACM Transactions on Computer Systems
- IEEE Computer Society
- Microprocessor Report