Teljesítmény ISA - Power ISA

Teljesítmény ISA
Tervező
Bits 32 bites / 64 bites (32 → 64)
Bemutatott 2006
Változat 3.1
Tervezés RISC
típus Regisztráció-Regisztráció
Kódolás Rögzített/változó
Elágazó Feltétel kód
Endianitás Nagy/Bi
Bővítmények AltiVec , APU, DSP , CBEA
Nyisd ki Igen, és jogdíjmentesen
Regiszterek
  • 32 × 64/32 bites általános célú regiszterek
  • 32 × 64 bites lebegőpontos regiszterek
  • 64 × 128 bites vektorregiszterek
  • 32 bites állapotkód regiszter
  • 32 bites link regiszter
  • 32 bites számláló
+ több
Rendkívül sematikus diagram egy általános Power ISA processzoron.

A Power ISA egy utasításkészlet -architektúra (ISA), amelyet jelenleg az OpenPOWER Foundation fejlesztett ki , az IBM vezetésével . Eredetileg az IBM, majd azóta megszűnt Power.org ipari csoport fejlesztette ki. A Power ISA a PowerPC ISA továbbfejlesztése , amelyet a mag PowerPC ISA és a beágyazott alkalmazásokhoz rendelhető opcionális E könyv összeolvadása hozott létre. E két komponens összevonását 2006 -ban a Power.org alapítói, az IBM és a Freescale Semiconductor vezették .

Az ISA több kategóriába sorolható, amelyeket egy bizonyos könyv ismertet . A processzorok e feladatok végrehajtásához szükséges kategóriák egy sorát valósítják meg. Bizonyos kategóriák megvalósításához különböző osztályú processzorokra van szükség, például egy szerverosztályú processzor tartalmazza a Base , Server , Floating-Point , 64-Bit stb. Kategóriákat. Minden processzor megvalósítja az Base kategóriát.

A Power ISA egy RISC betöltési/tárolási architektúra . Több regiszterkészlettel rendelkezik :

  • 32 × 32 bites vagy 64 bites általános célú regiszterek (GPR) egész műveletekhez .
  • 64 × 128 bites vektor skaláris regiszterek (VSR) vektoros műveletekhez és lebegőpontos műveletekhez .
    • 32 × 64 bites lebegőpontos regiszterek (FPR) a lebegőpontos műveletekre vonatkozó VSR-ek részeként.
    • 32 × 128 bites vektorregiszterek (VR) a VSR-ek részeként vektoros műveletekhez.
  • 8 × 4 bites feltételregiszter mezők (CR) az összehasonlításhoz és a folyamatirányításhoz .
  • 11 különböző méretű különböző regiszter: számlálóregiszter (CTR), linkregiszter (LR), időbázis (TBU, TBL), alternatív időalap (ATBU, ATBL), akkumulátor (ACC), állapotregiszterek (XER, FPSCR, VSCR, SPEFSCR).

Utasítás akár 3.0 verzió hosszúsága 32 bit, kivéve a VLE (változó hosszúságú kódoló) részhalmaza, amely biztosítja a nagyobb kód sűrűségű az alacsony-end beágyazott alkalmazások, és 3.1-es verziója, amely bevezetett előtaggal, hogy hozzon létre a 64 bites utasítások . A legtöbb utasítás triadikus , azaz két forrás operandussal és egy célállomással rendelkezik. Egyszeri és kettős pontosságú, IEEE-754 szabványnak megfelelő lebegőpontos műveletek támogatottak, beleértve a további olvadt multiplikációs (FMA) és tizedes lebegőpontos utasításokat. Vannak rendelkezések a SIMD -műveletekhez , amelyek egyetlen utasításban legfeljebb 16 elemre vonatkoznak az egész és lebegőpontos adatokon.

A Power ISA támogatja a Harvard gyorsítótárat , azaz az adat- és utasításgyorsítótárak felosztását , valamint az egységesített gyorsítótárakat. A memóriaműveletek szigorúan betöltés/tárolás, de lehetővé teszik a soron kívüli végrehajtást . Támogatott a nagy és a kis endian címzés is, külön kategóriákkal a módosított és az oldalankénti végződéshez, valamint a 32 bites és a 64 bites címzés is.

A különböző működési módok közé tartozik a felhasználó, a felügyelő és a hipervizor.

Kategóriák

  • Bázis - Az I. és a II. Könyv nagy része
  • Szerver- III-S könyv
  • Beágyazott- III-E könyv
  • Egyéb - lebegőpontos, vektoros, jelfeldolgozó, gyorsítótár -zár, tizedes lebegőpontos stb.

Könyvek

A Power ISA specifikáció öt részre oszlik, amelyeket "könyveknek" neveznek:

  • I. könyv - A felhasználói utasításkészlet architektúrája az alkalmazásprogramozó számára rendelkezésre álló alap utasításkészletet tartalmazza. Memória referencia, áramlásszabályozás, egész, lebegőpontos, numerikus gyorsítás, alkalmazásszintű programozás. Tartalmaz fejezeteket a kiegészítő feldolgozóegységekről, például a DSP -kről és az AltiVec bővítményről.
  • II. Könyv - A virtuális környezet architektúrája meghatározza az alkalmazásprogramozó számára elérhető tárolási modellt, beleértve az időzítést, a szinkronizálást, a gyorsítótár -kezelést, a tárolási szolgáltatásokat és a bájtrendezést.
  • III. Könyv - Az üzemeltetési környezet architektúrája kivételeket, megszakításokat, memóriakezelést, hibakeresési szolgáltatásokat és speciális vezérlési funkciókat tartalmaz. Két részre van osztva.
    • III-S könyv- Az általános célú/szerver implementációkhoz használt felügyeleti utasításokat határozza meg. Elsősorban az egykori PowerPC ISA III. Könyvének tartalma.
    • III-E könyv- A beágyazott alkalmazásokhoz használt felügyeleti utasításokat határozza meg. A korábbi PowerPC E könyvből származik.
  • Book VLE - Variable Length Kódolt Instruction Architecture meghatározza alternatív utasítások és definíciók Books I-III szánt nagyobb használati sűrűsége és igen-low-end alkalmazásokhoz. 16 bites utasításokat és big-endian byte sorrendet használnak.

Megfelelőség

A Power ISA 3. verziójában újdonság, hogy nem kell a teljes specifikációt megvalósítania ahhoz, hogy megfeleljen. Az utasítások és technológiák terjedése miatt a teljes specifikáció nehézkes, ezért az OpenPOWER Foundation úgy döntött, hogy engedélyezi a többszintű megfelelőséget.

Ezek a szintek opcionális és kötelező követelményeket is tartalmaznak, azonban az egyik gyakori félreértés az, hogy semmi sem akadályozza meg azt, hogy egy megvalósítás alacsonyabb szinten megfeleljen, de további kiválasztott funkciókkal rendelkezzen magasabb szintekről, valamint egyéni bővítmények. Javasoljuk azonban, hogy biztosítson egy opciót a tervezés deklarált részhalmazszintjén túli további funkciók letiltására.

A formatervezési mintának meg kell felelnie a bejelentett részhalmaz szintjén, hogy kihasználja az Alapítvány szellemi tulajdon használatára vonatkozó védelmét , legyen szó szabadalmakról és védjegyekről . Ezt az OpenPOWER EULA tartalmazza.

A megfelelő tervezésnek…

  • Támogassa a Base architektúrát
  • És legalább az egyik részhalmaz támogatása
    • SFS- Scalar Fixpontos részhalmaz. 129 utasítás. Alapvető rögzített pont és betöltési/tárolási utasítások, ami valójában a Base architektúra.
    • SFFS- skaláris fixpont + lebegőpontos részhalmaz. 214 utasítás. Lebegőpontos műveletek hozzáadása az alaphoz.
    • LCS - Linux megfelelőségi részhalmaz. 962 utasítás. Kiszolgáló minőségű Linuxhoz készült, olyan funkciókkal, mint a 64 bites, opcionális SIMD/VSX, Radix MMU, kis endian mód és hipervizor támogatás.
    • ACS - AIX megfelelőségi részhalmaz. 1099 utasítás. Az AIX futtatására szolgál, olyan funkciókkal, mint a tizedes és négyes pontosságú lebegőpontos, nagy endián mód és szimmetrikus többfeldolgozás.
  • Tartalmazhatja az LCS és az ACS bármely funkcióját opcionálisként, vagy választhat a Mindig opcionális funkciók közül, például a mátrix matematikát és az energiagazdálkodást.
  • Az opcionális funkciókat, ha úgy választják, teljes egészében meg kell valósítani (az opcionális funkció részleges megvalósítása nem megengedett)
  • Tartalmazhat az építészet homokozójában megvalósított, a megvalósításra jellemző egyedi bővítményeket .

Ha a kiterjesztés eléggé általános célú, az OpenPOWER Alapítvány kéri, hogy a végrehajtók nyújtsák be megjegyzéskérésként (RFC) az OpenPOWER ISA munkacsoportnak . Ne feledje, hogy nem feltétlenül szükséges csatlakozni az OpenPOWER Alapítványhoz az RFC -k benyújtásához.

  • Sok megvalósítható hardverben vagy firmware -ben.

EABI és Linux megfelelőségi eltérés

Az EABI specifikációk megelőzik a Compliancy részhalmazok bejelentését és létrehozását.

A VSX (SIMD) opcionális Linux-megfelelőségi részhalmaz tekintetében: 2003-4-ben a 64 bites EABI v1.9 opcionális SIMD-t tett lehetővé, de 2015 júliusában az IBM POWER9 rendszerek teljesítményének javítása érdekében a SIMD-t kötelezővé tették az EABI v2-ben .0. Ez az eltérés a SIMD között, amely opcionális a Linux megfelelőségi szinten, de kötelező az EABI v2.0 verziójában, nem javítható jelentős erőfeszítés nélkül: a Linux disztribúciók visszafelé való inkompatibilitása nem járható út. Jelenleg ez azt jelenti, hogy a szabványos Linux disztribúciókat futtatni kívánó új OpenPOWER implementátoroknak hatalmas 962 utasítást kell végrehajtaniuk. Ezzel szemben a RISC-V RV64GC, a Linux futtatásához szükséges minimum, csak 165-öt igényel.

Specifikációk

Power ISA v.2.03

A Power ISA v.2.03 specifikációja a POWER5+ korábbi PowerPC ISA v.2.02 verzióján és a PowerPC specifikáció Book Book kiterjesztésén alapul . Az I. könyv öt új fejezetet tartalmazott a kiegészítő feldolgozó egységekkel kapcsolatban, mint például a DSP -k és az AltiVec bővítmény.

Megfelelő magok

Power ISA v.2.04

A leírás for Power ISA v.2.04 véglegesítették 2007. június alapul Teljesítmény ISA v.2.03 és magában változások elsősorban a könyv III-S része tekintetében a virtualizáció , hypervisor funkciókat, logikai particionálás és virtuális oldal kezelését.

Megfelelő magok

  • Minden mag, amely megfelel a Power ISA korábbi verzióinak
  • A PA6T mag a PA Semi -től
  • Titán az AMCC -től

Teljesítmény ISA v.2.05

A Power ISA v.2.05 specifikációja 2007 decemberében jelent meg. A Power ISA v.2.04 alapú, és elsősorban az I. és a III-S könyv változásait tartalmazza , beleértve a jelentős fejlesztéseket, például a tizedes számtant (kategória: Tizedes lebegőpontos) az I. könyv ) és a szerver hypervisor fejlesztéseket.

Megfelelő magok

Power ISA v.2.06

A Power ISA v.2.06 specifikációját 2009 februárjában adták ki, és 2010 júliusában felülvizsgálták. A Power ISA v.2.05 alapú, és kiterjesztéseket tartalmaz a POWER7 processzorhoz és az e500-mc maghoz . Az egyik jelentős újdonság a vektor-skalár lebegőpontos utasítások ( VSX ). A III-E könyv jelentős javítást is tartalmaz a beágyazott specifikációban a hipervizorral és a virtualizációval kapcsolatban az egy- és többmagos implementációkban.

A specifikációt 2010 novemberében felülvizsgálták a Power ISA v.2.06 B verziójának specifikációjához, javítva a virtualizációs funkciókat.

Megfelelő magok

Power ISA v.2.07

A Power ISA v.2.07 specifikációja 2013 májusában jelent meg. A Power ISA v.2.06 alapú, és jelentős fejlesztéseket tartalmaz a logikai partíciók funkcionalitásában , a tranzakciós memóriában , a kibővített teljesítményfigyelésben, az új tárhelyvezérlő funkciókban, a VMX és a VSX kiegészítéseiben. vektoros létesítmények (VSX-2), az AES és a Galois Counter Mode (GCM), az SHA-224, az SHA-256, az SHA-384 és az SHA-512 ( SHA-2 ) kriptográfiai kiterjesztések és a ciklikus redundancia-ellenőrző (CRC) algoritmusok .

A specifikációt 2015 áprilisában felülvizsgálták a Power ISA v.2.07 B specifikációjára.

Megfelelő magok

  • Minden mag, amely megfelel a Power ISA korábbi verzióinak
  • POWER8
  • e6500 mag
  • A2O

Power ISA v.3.0

A Power ISA v.3.0 specifikációját 2015 novemberében adták ki. Ez az első, amely az OpenPOWER Foundation alapítása után jelent meg, és kiterjesztéseket tartalmaz a munkaterhelések széles spektrumához, és eltávolítja a szervert és a beágyazott kategóriákat, miközben megőrzi a visszafelé való kompatibilitást és támogatja a VSX-3 utasításokat. Az új funkciók közé tartozik a 128 bites négypontos pontosságú lebegőpontos műveletek, a véletlenszám-generátor , a hardver által támogatott hulladékgyűjtés és a hardver által kényszerített megbízható számítástechnika.

A specifikációt 2017 márciusában felülvizsgálták a Power ISA v.3.0 B specifikációjára. és 2020 májusában újra módosították a v3.0C verzióra. A v3.0B és a v3.0C közötti legfontosabb különbség az, hogy a v3.1. pontban felsorolt ​​megfelelőségi szinteket is hozzáadták a v3.0C verzióhoz.

Megfelelő magok

Power ISA v.3.1

A Power ISA v.3.1 specifikációja 2020 májusában jelent meg. Elsősorban a Power10 -ben bevezetett új funkciókat támogatja, de magában foglalja a PowerISA specifikáció opcionális fogalmát is. Az utasítások most nyolc bájt hosszúságú, "előtagú utasítások" lehetnek, szemben a szokásos négy bájtos "szóutasításokkal". A SIMD és a VSX utasításokhoz sok új funkció is tartozik.

Az új, 64 bites előtagú utasítások egyik fő előnye, hogy az ágakban lévő közvetlen termékeket 34 bitesre bővítik.

Megfelelő magok

Lásd még

Hivatkozások