„Ortogonális utasításkészlet” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
a +linkek
a j
 
31. sor:
A [[binárisan kompatibilis]] Z80-as később prefix kódokkal bővítette az opkódokat, hogy az egy bájtos korlátot kikerülve további képességeket építhessen az utasításkészletbe. Ugyanezt az alapötletet alkalmazták az [[Intel 8086]]-nál is, itt azonban nem törekedtek a bináris kompatibilitásra, ami radikálisabb kiterjesztést tett lehetővé. A 8086-ost ehelyett szabályos 16 bites processzornak tervezték, ami forráskód szinten volt kompatibilis a 8008, 8080 és 8085 processzorokkal. A magas [[Utasításkészlet#Kódsűrűség|kódsűrűség]] kedvéért valamennyire meghagyták a kódot nem ortogonálisnak (amit a kortárs számítógéptudósok „barokkosnak” csúfoltak). Az architektúra 32 bites kiterjesztése a [[80386]]-tal érkezett meg, az eredeti 8086 utasítások (és bővítéseik) megtartása ellenére valamivel ortogonálisabb megközelítést követtek. Az opkódban alkalmazott kódolási stratégia azonban továbbra is az eredeti 8008 és 8080 (valamint a Z80) örökségeit mutatta; például egyes gyakori utasítások, mint a regiszterek vagy konstansok '''push''' és '''pop''' utasítása egy bájtos opkódot kaptak, az elsődleges akkumulátor, az '''eax''' bizonyos művelettípusokban rövidebb kódot kapott; ezeket a megfigyeléseket a kézi és a fordítóprogram által végzett [[kódoptimalizálás]] során egyaránt kihasználják.
 
===A RISC-érakorszak kezdete===
Egy teljes mértékben ortogonális architektúra nem feltétlenül a leginkább „bithatékony” is egyben. Az 1970-es évek végén az [[IBM]] kutatói (és máshol végzett kutatások egyaránt) kimutatták, hogy ezeknek az „ortogonális” címzési módoknak a legnagyobb részét nem használják ki a programok. Megszületett az elképzelés, hogy a teljesen ortogonális utasításkészletet kifejező bitek egy részét talán hatékonyabban fel lehetne használni például több [[virtuális cím|virtuáliscím]]-bit vagy több választható regiszter kódolására.