A számítógép-architektúra egy számítógépes rendszer szerkezetének leírása.
Lehet a megvalósítás részleteit figyelmen kívül hagyó magas szintű leírás. Egy részletesebb leírásban szerepelhet az utasításkészlet-architektúra, a mikroarchitektúra tervezése, a logikai tervezés és a megvalósítás.
Az első leírt számítógép-architektúrát Charles Babbage és Ada Lovelace alkották az Analytical engine leírásával. A Z1 1936-os építésekor Konrad Zuse későbbi projektjei két alkalmazásában leírta, hogy a gépi utasítások az adattal egy tárhelyen tárolható, ez lett a tárolt program koncepciója. Két további korai és fontos példa:
Az architektúra fogalma a számítógépes irodalomban először Lyle R. Johnson és Fred Brooks, az IBM fő kutatóközpontjának két tagjának munkájában jelent meg 1959-ben. Johnson írt egy tanulmányt az Stretchről, melyet a Los Alamos-i Nemzeti Laboratóriumnak (akkori nevén Los Alamos-i Tudományos Laboratórium) fejlesztettek. A formátumok, utasítástípusok, hardverparaméterek és sebességjavulások leírásának részletessége a „rendszer-architektúra” szintjén volt.
Ezután Brooks, a Stretch tervezője a Planning a Computer System: Project Stretch 2. fejezetét így kezdte: „A számítógép-architektúra, mint más architektúrák, a szerkezet felhasználóinak szükségleteinek meghatározása, majd azok oly tervezése, hogy ezeket a lehető leghatékonyabban töltse be gazdasági és technológiai kereteken belül”.
Brooks később az IBM System/360 (mai nevén IBM zSeries) számítógép-sorozaton dolgozott, ahol az „architektúra” jelentése „a felhasználó által ismerendő információ” lett. Later, computer users came to use the term in many less explicit ways.
A legkorábbi számítógép-architektúrákat papíron készítették, majd közvetlenül a végső hardverben alkották meg.
Később a számítógéparchitektúra-prototípusokat – például a Motorola 6800-éit és a PA-RISC-éit – fizikailag alakították ki TTL-t használó számítógépen, tesztelték, a végső változat előtt javították.
Az 1990-es évektől az új architektúrákat általában „megépítik”, tesztelik, majd javítják – más számítógép-architektúrában számítógéparchitektúra-szimulátoron vagy FPGA-ban puha mikroprocesszorként – a végső hardver kialakítása előtt.
3 fő elvük van a számítógép-architektúráknak:
Más technológiák is vannak a számítógép-architektúrában. Az alábbiakat a nagyobb cégek, például az Intel használják, és 2002-es becslések szerint az architektúrák 1%-át teszik ki:
A számítógép-architektúrák célja a számítógépes rendszerek teljesítménye, hatékonysága, ára és megbízhatósága közti egyensúly. Az utasításkészlet-architektúra például e tényezők egyensúlyát mutathatja meg. Az összetettebb utasításkészletek lehetővé teszik helyhatékonyabb programok írását, mivel egy utasítás nagyobb szintű absztrakciót kódolhatnak (például az x86 Loop utasítása). Azonban a hosszabb és összetettebb utasítások feldolgozása hosszabb és költségesebb. A nagy utasításkészlet nagyobb komplexitása a megbízhatatlanságra nagyobb lehetőséget ad, ha az utasítások váratlan módokon hatnak egymásra.
A megvalósítás integráltáramkör-tervezést, csomagolást, áramot és hűtést igényel. A tervezés optimalizálása a fordítóprogramok, az operációs rendszerek, a logikai tervezés és a csomagolás ismeretét igénylik.
Az utasításkészlet-architektúra a számítógép szoftvere és hardvere közti felület, mely a gép programozói nézeteként is tekinthető. A számítógépek nem „értik” a magas szintű programozási nyelveket, például a Javát, a C++-t vagy a legtöbb használt programozási nyelvet. A processzor csak numerikusan, például bináris számokkal kódolt utasításokat ért. A szoftverek, például a fordítóprogramok e magas szintű nyelveket a processzor által érthető utasításokká fordítja.
Az utasítások mellett az ISA határozza meg a program számára elérhető elemeket – például adattípusokat, regisztereket, címzésmódokat és memóriát. Az utasítások ezeket regiszterindexekkel vagy -nevekkel és memóriacímzési módokkal érik el.
Egy számítógép ISA-ját általában kézikönyv írja le, ahol az utasítások kódolása szerepelhet. Ezenkívül rövid nevek is szerepelhetnek az utasításokra. A neveket egy assembler felismerheti. Ez az ISA ember által olvasható változatát géppel olvashatóvá alakítja. Ezenkívül elérhetők disassemblerek is jellemzően hibakeresőkben és a bináris programok hibáinak izolálására és javítására.
A számítógép-elrendezés lehetővé teszi a teljesítményalapú termékek optimalizációját. Például a szoftverfejlesztőknek ismerni kell a processzorok teljesítményét. A szoftvert optimalizálniuk kellhet a legjobb teljesítmény legolcsóbban történő eléréséért. Ehhez szükséges lehet a számítógép részletes elemzése. Például egy SD-kártyát a tervezőknek úgy kell elrendezniük, hogy a lehető legtöbb adat a lehető leggyorsabban feldolgozható legyen.
A számítógép-elrendezés lehetővé teszi a processzor kiválasztását adott projekthez. A multimédia-projektek gyors adathozzáférést igényelhetnek, míg a virtuális számítógépek gyors megszakításokat. Egyes feladatokhoz további komponensek is kellhetnek. Például egy virtuális gép futtatására képes számítógép virtuális memóriát igényel, így a különböző virtuális számítógépek memóriája elválasztható. A számítógép-elrendezés és -funkciók befolyásolják az energiafogyasztást és a költségeket.
Az utasításkészlet- és mikroarchitektúra megtervezése után a gyakorlati gép is kifejlesztendő, ez a megvalósítás. A megvalósítást általában nem architektúra-, hanem hardvertervezésnek tekintik. Ez több lépésre bontható:
CPU-k esetén e folyamat másképp történik, ezt gyakran CPU-tervezésnek nevezik.
Egy számítógépes rendszer formája függ a korlátoktól és a céloktól. A számítógép-architektúrák általában a szabványokat és a fogyasztást a teljesítménnyel, költségekkel, memóriával, késéssel (egy csomóponttól a forrásig megtett út ideje) és átvitellel hasonlítják össze. Néha más korlátok, például funkciók, méret, súly, megbízhatóság és bővíthetőség is számíthatnak.
Leggyakrabban a részletes teljesítményelemzés a fogyasztás megfelelő teljesítmény melletti alacsonyan tartását célozza.
A számítógép-teljesítmény gyakran ciklusonkénti utasításokkal (IPC) írható le, ami az architektúra hatékonysága tetszőleges frekvencián: a magasabb IPC gyorsabb számítógépet jelent. Régebbi számítógépek esetén az IPC akár 0,1 is lehetett, a modernebbek esetén ez körülbelül 1. A szuperskaláris processzorok esetén az IPC 3-5 közt van több utasítás egyszerre való végrehajtásával.
A gépi nyelvi utasítások számolása félrevezethet, mivel különböző ISA-kban különböző mennyiségű munkát végezhetnek. Az utasítás nem a gépi nyelvi utasítások száma, hanem általában a VAX architektúrán alapuló mértékegység.
A teljesítményt sok más tervezési mód is befolyásolja – például egy processzor futószalagozása a késést növeli, de az átvitelt javítja. A gépirányító számítógépeknek általában alacsony megszakítási késleltetés kell. E számítógépek valós idejű környezetben működnek, és a művelet adott időn belüli sikertelensége esetén sikertelenek. Például a számítógéppel irányított blokkolásgátló fékeknek előrejelezhető, korlátozott időn belül kell a fékpedál lenyomása után a fékezést indítani, különben a fékezés sikertelen.
A benchmarking e tényezőket figyelembe veszi egy tesztprogramsorozat futtatásának idejének mérésével. Bár megmutatja az erősségeket, nem ez az egyetlen szempont számítógép-választáskor. Gyakran a mérési eredmények mérésenként eltérnek – például egy rendszer a tudományos alkalmazásokat kezelheti jól, egy másik a videójátékokat. Továbbá a tervezők speciális funkciókat adhatnak termékeikhez hardverrel vagy szoftverrel, lehetővé téve jó nérési eredményt általános feladatokon jelentkező előnyök nélkül.
Az energiahatékonyság is fontos mennyiség a modern számítógépekben. A nagyobb hatékonyság gyakran alacsonyabb sebességgel vagy magasabb költséggel párosul. A leggyakoribb mértékegység a fogyasztásnál a MIPS/W (millió utasítás wattonként).
A modern áramkörök tranzisztoronként kevesebb energiát igényelnek a chipenkénti tranzisztorszám növekedésével. Ennek oka, hogy minden új chipbe kerülő tranzisztor saját áramforrást és új utat igényel az ellátásához, azonban a chipenkénti tranzisztorszám növekedése csökkenni kezdett. Így az energiahatékonyság hasonlóan fontossá vált, mint több tranzisztor egy chipen való elhelyezése. 2017-től a processzorok ezt helyezik előtérbe, nem a lehető legtöbb processzor elhelyezését egy helyen. A beágyazott rendszerekben a hatékonyság az átvitel és a késés mellett fontos cél volt.
Az órajel-növekedés 2015-től lassult az energiahatékonysági javulásokkal szemben. Ezt a Moore-törvény vége, a hosszabb akkumulátor-üzemidő és a mobiltechnológia méretcsökkenése okozta. A nagyobb órajelről az alacsonyabb fogyasztás és a miniatürizáció felé való eltolódás a jelentős, akár 50%-os fogyasztáscsökkenésben is látható, melyről az Intel a Haswell kiadásakor beszámolt: a fogyasztás 30-40 W-ról 10-20 W-ra csökkent. Összehasonlítva a sebesség 3-ról 4 GHz-re való növekedésével 2002–2006 közt, látható, hogy a kutatás-fejlesztési célok az órajelről az alacsonyabb energiafogyasztásra és kisebb helyigényre mozdultak.
Ez a szócikk részben vagy egészben a Computer architecture című angol Wikipédia-szócikk ezen változatának 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.
This article uses material from the Wikipedia Magyar article Számítógép-architektúra, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). A lap szövege CC BY-SA 4.0 alatt érhető el, ha nincs külön jelölve. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Magyar (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.