A számítástechnikában a számítógép-architektúra egy számítógépes rendszer koncepcionális tervezése és alapvető működési szerkezete. Ez magában foglalja a tervezési követelményeket és célokat (például teljesítmény, fogyasztás, költség és kompatibilitás), a komponensek funkcionális leírását, valamint azt, hogyan kommunikálnak egymással a rendszer részei. Gyakran központi kérdés az, hogy a központi feldolgozó egység (CPU) belső felépítése miként kapcsolódik a memóriában lévő címekhez és más rendszererőforrásokhoz.

Mi a célja és miért fontos?

A számítógép-architektúra célja olyan rendszerek megtervezése, amelyek megfelelnek a funkcionális követelményeknek, jó teljesítményt nyújtanak, és elfogadható költséggel, fogyasztással rendelkeznek. Ez a terület ötvözi a hardverkomponensek kiválasztásának tudományát és művészetét, és gyakran kompromisszumok sorozatát igényli (például sebesség vs. energiafogyasztás vagy kompatibilitás vs. egyszerűség).

A számítógép-architektúra fő alkategóriái

A számítógép-architektúra jellemzően legalább három nagyobb részre bontható:

  1. Utasításkészlet-architektúra (ISA):

    Az ISA a számítógépről a programozó (vagy fordító) által látható absztrakt modell. Tartalmazza az utasításkészletet, az instrukciók formátumát, a memória címzési módokat, a processzor regisztereit és az adat- illetve címformátumokat. Az ISA határozza meg, hogy milyen műveleteket lehet végrehajtani és hogyan írhatóak meg a gépi/assembly szintű programok.

  2. Mikroarchitektúra (számítógép-szervezés):

    A mikroarchitektúra a rendszer alacsonyabb szintű, részletes leírása, amely megmutatja, hogy az ISA által definiált funkciókat hogyan tudja a hardver ténylegesen megvalósítani. Itt kerülnek meghatározásra a pipeline-struktúrák, a gyorsítótár-elrendezés, az utasítás-végrehajtás belső lépései és az adatút felépítése. Például egy processzor gyorsítótárának mérete és szervezése mikroarchitekturális döntés, amit az ISA általában nem ír elő.

  3. Rendszertervezés:

    A rendszertervezés magában foglalja a számítási rendszer összes többi hardverkomponensét és azok kapcsolatait. Ide tartoznak például:

    • Rendszerösszekötők, például számítógépes buszok és kapcsolók.
    • Memóriavezérlők és memóriahierarchiák (cache szintek, fő memória, háttértár).
    • CPU tehermentesítő mechanizmusok, mint a közvetlen memóriaelérés (DMA) és I/O kezelési stratégiák.
    • Többprocesszoros rendszerek és párhuzamos feldolgozás kérdései (szinkronizáció, koherencia, skálázhatóság).

Mik a tervezési lépések — megvalósítás

Miután az ISA és a mikroarchitektúra le van írva, a következő lépés a tényleges számítási rendszer hardverre történő megvalósítása. Ezt a folyamatot gyakran megvalósításnak vagy hardvertervezésnek nevezik. A megvalósítás három, egymáshoz kapcsolódó szintre bontható:

  • Logikai megvalósítás: A mikroarchitektúrában leírt blokkok (regiszterek, adatutak, vezérlőegységek) tervezése regiszter-transzfer és kapu-logikai szinten. Itt határozzák meg az adatfolyamot és a vezérlési jeleket.
  • Áramkör megvalósítása: Az alapelemi tervezés: kapuk, multiplexerek, flip-flopok, továbbá nagyobb egységek, mint az ALU-k vagy gyorsítótárak tranzisztorszintű megtervezése. Egyes kritikus részeket ilyen alacsony szinten optimalizálnak teljesítmény vagy fogyasztás miatt; itt merül fel a tranzisztorszintű tervezés kérdése is.
  • Fizikai megvalósítás: A nyomvonaltervezés (routing), a chip alaprajzának (layout) elkészítése, a cellák és blokkok elhelyezése, valamint a vezetékek fizikai összekötése. Ez a szint foglalkozik a hőleadással, jelintegritással és fizikai korlátokkal.

Tipikus fogalmak, technikák és mérőszámok

  • Pipeline és párhuzamosság: Az utasítások végrehajtásának felbontása több szakaszra (fetch, decode, execute, memory, writeback) növeli az áteresztőképességet. A superscalar, out-of-order végrehajtás és a spekulatív végrehajtás mind mikroarchitekturális technikák a teljesítmény növelésére.
  • Gyorsítótár és memóriahierarchia: Több szintű cache-ek csökkentik az átlagos memóriahozzáférési időt; tervezésük alapvetően hat a teljesítményre.
  • Teljesítménymutatók: Latencia (egy utasítás vagy feladat ideje), áteresztőképesség (utasítások/s), IPC (instructions per cycle), órajel (GHz) és energia/fogyasztás (Watt vagy Joule/op).
  • Kompatibilitás és visszafelé kompatibilitás: Az ISA változtatása hatással van a szoftverekre; ezért a visszafelé kompatibilitás gyakran fontos üzleti és technikai szempont.
  • Verifikáció és tesztelés: Funkcionális verifikáció, formális verifikáció, szintetikus tesztek (benchmarks), illetve gyártás utáni tesztelés (DFT) biztosítják, hogy a hardver helyesen működjön.

Gyakorlati eszközök és módszerek

A mai CPU- és rendszertervezésben gyakran használnak hardverleíró nyelveket (például Verilog, VHDL), logikai szintű szintézist, statikus időzítési analízist, majd floorplanning és place-and-route lépéseket a fizikai megvalósításhoz. Emellett elterjedt a szimuláció és az emuláció különféle szintjein, hogy a tervezés korai fázisában mérni lehessen viselkedést és teljesítményt.

Példák és családok

A CPU-tervezések gyakran családokban jelennek meg: például a RISC és a CISC filozófiák különböző ISA- és mikroarchitekturális megközelítéseket képviselnek. A modern processzorok e két irányzat elemeit is kombinálhatják: egyszerű utasítások gyors végrehajtása (RISC jelleg), de komplex utasítások dekódolása és végrehajtása is megtalálható a célspecifikus implementációkban.

Összefoglalás

A számítógép-architektúra összekapcsolja az elméletet és a gyakorlati hardvertervezést: meghatározza, hogy milyen funkciókat nyújt a rendszer (ISA), hogyan lehet ezeket hatékonyan megvalósítani (mikroarchitektúra), és hogyan kapcsolódnak össze a rendszer többi elemei (rendszertervezés). A végleges megvalósítás során logikai, áramköri és fizikai szinteken dolgoznak a tervezők, miközben figyelembe veszik a teljesítmény, fogyasztás, költség és kompatibilitás közötti kompromisszumokat.

A CPU-k esetében ezt a teljes tervezési és megvalósítási folyamatot gyakran egyszerűen CPU-tervezésnek nevezik; a végeredmény lehet egy egész család, amely különböző mikroarchitekturális optimalizációkkal valósítja meg ugyanazt az ISA-t.