Szuperskalár

A szuperskalár CPU-tervezés a párhuzamos számítás egy olyan formáját, az utasításszintű párhuzamosítást teszi lehetővé egyetlen CPU-n belül, amely lehetővé teszi, hogy ugyanazon az órajelen több munkát lehessen elvégezni. Ez azt jelenti, hogy a CPU egy órajelciklus alatt egynél több utasítást hajt végre azáltal, hogy több utasítást egyszerre futtat (ezt nevezzük utasítás-diszpécselésnek) a duplikált funkcionális egységeken. Minden funkcionális egység csak egy végrehajtási erőforrás a CPU-magban, mint például egy aritmetikai logikai egység (ALU), lebegőpontos egység (FPU), bittologató vagy szorzó.

A legtöbb szuperskalár CPU is pipelines, de lehetséges, hogy van egy nem pipelines szuperskalár CPU vagy egy pipelines nem szuperskalár CPU.

A szuperskalár technikát a CPU-mag számos jellemzője támogatja:

  1. Az utasítások egy rendezett utasításlistából származnak.
  2. A CPU hardvere képes kiszámítani, hogy mely utasítások milyen adatfüggőséggel rendelkeznek.
  3. Óraciklusonként több utasítás olvasására képes

A skalárprocesszor által végrehajtott minden egyes utasítás egyszerre egy vagy két adatelemet változtat meg, de a vektorprocesszor által végrehajtott minden egyes utasítás egyszerre sok adatelemet kezel. A szuperskalár processzor a kettő keveréke:

  1. Minden utasítás egy adatelemet dolgoz fel.
  2. Minden CPU-magban több duplikált funkcionális egység található, így több utasítás egyszerre több független adatelemet kezel.

Egy szuperskalár CPU-ban egy utasításdiszpécser olvassa be az utasításokat a memóriából, és eldönti, hogy melyek azok, amelyek párhuzamosan futtathatók, és elküldi őket a CPU-ban rendelkezésre álló többszörös funkcionális egységekre.

A szuperskalár CPU tervezése az utasításelosztó pontosságának javításával foglalkozik, és lehetővé teszi, hogy a több funkcionális egységet folyamatosan lefoglalja. 2008-tól minden általános célú CPU szuperskalár, egy tipikus szuperskalár CPU akár 4 ALU-t, 2 FPU-t és két SIMD egységet is tartalmazhat. Ha a diszpécser nem tudja az összes egységet lefoglalni, a CPU teljesítménye alacsonyabb lesz.

Egyszerű szuperskalár csővezeték. Egyszerre két utasítás lekérdezésével és elküldésével ciklusonként legfeljebb két utasítás fejezhető be.Zoom
Egyszerű szuperskalár csővezeték. Egyszerre két utasítás lekérdezésével és elküldésével ciklusonként legfeljebb két utasítás fejezhető be.

Egy CRAY T3e párhuzamos számítógép processzorlapja négy szuperskalár Alpha processzorralZoom
Egy CRAY T3e párhuzamos számítógép processzorlapja négy szuperskalár Alpha processzorral

Korlátozások

A szuperskalár CPU-k tervezésénél a teljesítmény javulását két dolog korlátozza:

  1. A beépített párhuzamosság szintje az utasításlistában
  2. A diszpécser és az adatfüggőség-ellenőrzés összetettsége és időigénye.

Még ha végtelenül gyors függőségi ellenőrzés is van egy normál szuperskalár CPU-n belül, ha maga az utasításlista sok függőséget tartalmaz, ez szintén korlátozza a lehetséges teljesítményjavulást, így a kódban beépített párhuzamosság mennyisége egy másik korlátot jelent.

Nem számít, milyen gyors a diszpécser sebessége, van egy gyakorlati korlátja annak, hogy hány utasítást lehet egyszerre feladni. Bár a hardveres fejlődés lehetővé teszi, hogy CPU-magonként több funkcionális egység (pl. ALU) legyen, az utasításfüggőségek ellenőrzésének problémája olyan mértékben növekszik, hogy az elérhető szuperskaláris diszpécserhatár némileg kicsi. -- Valószínűleg öt-hat egyidejűleg feladott utasítás nagyságrendje.

Alternatívák

  • A szimultán többszálú futás: gyakran SMT-ként rövidítik, a szuperskalár CPU-k általános sebességének növelésére szolgáló technika. Az SMT lehetővé teszi több független végrehajtószál használatát a modern szuperskalár processzoron belül rendelkezésre álló erőforrások jobb kihasználása érdekében.
  • Többmagos processzorok: A szuperskalár processzorok abban különböznek a többmagos processzoroktól, hogy a több redundáns funkcionális egység nem teljes processzor. Egyetlen szuperskalár processzor olyan fejlett funkcionális egységekből áll, mint az ALU, az egész szám szorzó, az egész szám átváltó, a lebegőpontos egység (FPU) stb. Minden funkcionális egységnek több változata is lehet, hogy lehetővé tegye sok utasítás párhuzamos végrehajtását. Ez eltér a többmagos processzoroktól, amelyek több szálból származó utasításokat dolgoznak fel egyidejűleg, magonként egy szál.
  • Pipelines processzorok: A szuperskalár processzorok szintén különböznek a pipelines CPU-tól, ahol a több utasítás egyidejűleg a végrehajtás különböző szakaszaiban lehet.

A különböző alternatív technikák nem zárják ki egymást - kombinálhatók (és gyakran kombinálják is) egyetlen processzorban, így lehetséges olyan többmagos CPU-t tervezni, ahol minden egyes mag egy független processzor több párhuzamos szuperskaláris pipelines processzorral. Egyes többmagos processzorok vektoros képességgel is rendelkeznek.

Kapcsolódó oldalak

Kérdések és válaszok

K: Mi az a szuperskalár technológia?


V: A szuperskalár technológia az alapvető párhuzamos számítástechnika egy olyan formája, amely lehetővé teszi, hogy egynél több utasítás feldolgozása történjen minden egyes órajelciklusban több végrehajtó egység egyidejű használatával.

K: Hogyan működik a szuperskalár technológia?


V: A szuperskalár technológia során az utasítások sorrendben érkeznek a processzorba, futás közben keresik az adatfüggőségeket, és minden egyes órajelciklusban egynél több utasítást töltenek be.

K: Mi a különbség a skaláris és a vektoros processzorok között?


V: Egy skalár processzoron az utasítások általában egy vagy két adatelemmel dolgoznak egyszerre, míg egy vektorprocesszoron az utasítások általában sok adatelemmel dolgoznak egyszerre. A szuperskalár processzor a kettő keveréke, mivel minden utasítás egy adatelemet dolgoz fel, de egyszerre több utasítás is fut, így a processzor egyszerre sok adatelemet dolgoz fel.

K: Milyen szerepet játszik egy pontos utasításelosztó egy szuperskalár processzorban?


V: A pontos utasításelosztó nagyon fontos egy szuperskalár processzor számára, mivel biztosítja, hogy a végrehajtó egységek mindig olyan munkával legyenek elfoglalva, amelyre valószínűleg szükség lesz. Ha az utasítás-diszpatcher nem pontos, akkor a munka egy részét esetleg el kell dobni, ami miatt a processzor nem lesz gyorsabb, mint egy skálázó processzor.

K: Melyik évben vált minden normál CPU szuperskalárissá?


V: Az összes normál CPU 2008-ban vált szuperskalárissá.

K: Hány ALU, FPU és SIMD egység lehet egy normál CPU-ban?


V: Egy normál CPU-n legfeljebb 4 ALU, 2 FPU és 2 SIMD egység lehet.

AlegsaOnline.com - 2020 / 2023 - License CC3