Számítógép-Architektúra

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.

Számítógép-Architektúra
Egyszerű, egyprocesszoros számítógép rajza. A fekete vonalak az adat, a pirosak az irányítás áramlását, a nyilak ezek irányát mutatják.

Történet

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:

  • Neumann János 1945-ös First Draft of a Report on the EDVAC című, a logikai elemek elrendezését leíró beszámolója; and
  • Alan Turing szintén 1945-ös részletesebb, Neumann beszámolójára hivatkozó elektronikusszámológép-terve az Automatic Computing Engine-hez.

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.

Alkategóriák

3 fő elvük van a számítógép-architektúráknak:

  • Utasításkészlet-architektúra (ISA): a processzor által elolvasott és feldolgozott gépi kódot, a szóméretet, a memóriacímzési módokat, a processzorregisztereket és az adattípusokat határozza meg.
  • Mikroarchitektúra: más néven számítógép-elrendezés: egy processzor utasításkészletarchitektúra-megvalósítását írja le. A processzor gyorsítótárának mérete általában ISA-független kérdés.
  • Rendszertervezés: egy számítógép többi hardveres részét tartalmazza, például a CPU-n kívüli adatfeldolgozást (például közvetlen memóriaelérés), a virtualizációt és a többes feldolgozást.

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:

  • Makroarchitektúra: a mikroarchitektúráknál elvontabb architektúrarétegek
  • Összerakó utasításkészlet-architektúra: Egy assembler egy absztrakt több gépre jellemző assemblyt a különböző megvalósítások gépi nyelvére fordíthatja.
  • Programozó által látható makroarchitektúra: A magasabb szintű nyelvi eszközök, például a fordítóprogramok a programozókat összekapcsolják, az ISA, az UISA és a mikroarchitektúrák különbségeit láthatóvá téve. Például a C, a C++ vagy a Java programozó által látható makroarchitektúrákat határoznak meg.
  • Mikrokód: utasításokat a chipen való működésre fordító szoftver. A hardvert „borítják”, annak utasításkészlet-felületének legmegfelelőbb változatát adva. Ez az utasításfordítási mód a tervezőknek számos lehetőséget ad, például:
    1. Új, javított chip, mely mikrokódot használhat a korábbi chippel azonos utasításkészlethez, így az utasításkészletet célzó szoftver az új chipen változtatás szükségessége nélkül fut.
    2. A mikrokód azonos chiphez több utasításkészletet ad, több szoftverrel való működést lehetővé téve.
  • UISA: felhasználói utasításkészlet-architektúra – a PowerPC RISC processzorok utasításkészletének 3 részhalmazából az egyik. Az UISA az alkalmazásfejlesztők számára fontos utasításkészlet. A másik két utasítás a VEA (virtuáliskörnyezet-architektúra) virtualizációs rendszerek fejlesztőinek és az OEA (operációskörnyezet-architektúra) az operációs rendszerekhez.
  • Tüskearchitektúra: A hardverplatformnak a mikroprocesszor által kínálandó funkciók, például az A20M, FERR/IGNNE vagy FLUSH x86-tüskék. Ezenkívül a processzor által a gyorsítótár-ürítéshez kiadandó üzeneteket is tartalmazza. Funkciói rugalmasabbak az ISA-éinál, mivel a külső hardver az új kódolásokhoz alkalmazkodhat, vagy tüskéről üzenetre válthat. Azért architektúra, mert a kompatibilis rendszereknek adandók a funkciók akkor is, ha a módszer változik.

Szerepei

Definíció

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.

Utasításkészlet-architektúra

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.

Számítógép-elrendezés

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.

Megvalósítás

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ó:

  • Logikai tervezés: az áramkörök tervezése logikai kapuk szintjén.
  • Áramkörtervezés: az alapelemek (kapuk, multiplexerek, reteszek) valamint néhány nagyobb elem (ALU, gyorsítótárak stb.) tervezése tranzisztorok szintjén. Logikai kapuk szintjén vagy szükség esetén fizikailag megvalósítható.
  • Fizikai megvalósítás: fizikai áramkörök rajzolása. A különböző áramköri elemek chiptervrajzra vagy áramköri lapra kerülnek, és létrejönnek az őket összekötő huzalok.
  • Tervezés-ellenőrzés: a teljes számítógép megfelelő működésének ellenőrzése. A tervezésérvényesítés kezdetén logikaemulációval történik a logikai tervezés tesztje. Ez a realisztikus teszthez általában túl lassú. Így az első teszten alapuló javítások után prototípusokat állítanak elő FPGA-kkal. A legtöbb hobbiprojekt itt véget ér. Az utolsó lépés az integráltáramkör-prototípusok tesztje. Ez több újratervezést igényelhet.

CPU-k esetén e folyamat másképp történik, ezt gyakran CPU-tervezésnek nevezik.

Tervezési célok

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.

Teljesítmény

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.

Hatékonyság

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.

Igénybeli eltolódások

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.

Jegyzetek

Fordítás

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.

Források

További információk

A Wikimédia Commons tartalmaz Számítógép-architektúra témájú médiaállományokat.

Tags:

Számítógép-Architektúra TörténetSzámítógép-Architektúra AlkategóriákSzámítógép-Architektúra SzerepeiSzámítógép-Architektúra Tervezési célokSzámítógép-Architektúra JegyzetekSzámítógép-Architektúra FordításSzámítógép-Architektúra ForrásokSzámítógép-Architektúra További információkSzámítógép-ArchitektúraMikroarchitektúraUtasításkészlet-architektúra

🔥 Trending searches on Wiki Magyar:

Erdős Péter (menedzser)Miniszterelnöki KabinetirodaFarkasházy TivadarCsehországSopronHáfra MariTragédia a West-Balkán szórakozóhelyenKung Fu Panda (film)VatikánAlföldi RóbertFinnországHirosima és Nagaszaki bombázásaTörőcsik FranciskaGmail1-es villamos (Budapest)LepkehimlőRoberto BaggioNagy Zsolt (labdarúgó, 1993)Horvátország történelmeMenedék (film, 2013)Olimpiai játékokAmiotrófiás laterálszklerózisMaffiaMagyar nyelvi szórekordok listájaMagyarország uralkodóinak listájaMagyarország városaiMiskolcRené Paul FonckSzifiliszOrszágúti diszkó (film, 2024)Lengyel–litván határ2024-es labdarúgó-Európa-bajnokság (pótselejtezők)Manhattan tervA magyar labdarúgó-válogatott 2024. március 26-i mérkőzéseIszlámBánsági IldikóBíró KrisztaVeszettek (film, 2015)Széchenyi IstvánHollandiaGulyás MártonTuzson BenceSPAR (nemzetközi cég)Deák Dániel (politológus)Borbély AlexandraÁllatövi jegyReviczky GáborNagyváradYouTubeMadeira-szigetekRicardo CarvalhoÁzsia Expressz (ötödik évad)Bujtor IstvánMacskaKarinthy Frigyes1848–49-es forradalom és szabadságharcBartók Béla (zeneszerző)Séfek séfeVanuatuCsászár ElődPierce BrosnanKezdőlapGloria SwansonLoïc NegoAndrew Fletcher (zenész)Sclerosis multiplexGrúz labdarúgó-válogatottPuskás ArénaJános vitézHoldRocco SiffrediPuzsér RóbertGoogle FordítóLovas RoziKatalin walesi hercegné🡆 More