Sanoisin, että he todennäköisesti tukevat miljoonia ohjeita. Mutta se riippuu todella siitä, miten määrität "käskyn".
Yleensä ohjeet on jaettu useisiin kenttiin - yksi osa osoittaa operaation (lisätä, vähentää, jakaa, haara, hypätä, lukea, kirjoittaa jne.) ja sitten muut osat voivat antaa argumentteja - välittömiä arvoja rekisterimerkinnät. Joten jos ryhmität kaikki mahdolliset välittömät arvot ja kaikki mahdolliset rekisterimerkinnät yhteen, sinulla on vain suhteellisen pieni määrä toimintoja. Koska jokainen operaatio on arvioitava omistetulla laitteistolla (hyvin, enemmän tai vähemmän ... asioita, kuten summaus ja vähennys, voidaan tehdä samalla laitteistolla joillakin kokoonpanoilla / esikäsittelyllä), erillisten operaatioiden määrää on rajoitettava laitteiden alueella ja monimutkaisuudessa. siru.
Eri argumentit johtavat kuitenkin erilaisiin konekoodeihin. Ota esimerkiksi RISC-V-lisäysohje, ADD rd, rs1, rs2
, joka ottaa kaksi rekisteriarvoa, rs1
ja rs2
, lisää ne yhdessä ja sijoittaa tuloksen kolmanteen rekisteriin, rd
. RISC-V: llä on 32 rekisteriä, joten se tarkoittaa, että on olemassa 32 * 32 * 32 = 32 768 erilaista "ohjetta", jotka kaikki yhdistyvät ADD: hen, mutta eri argumenteilla. Vastaavasti ADDI rd, rs1, imm
ottaa välitöntä 12-bittistä arvoa, lisää sen kohtaan rs1
ja kirjoittaa tuloksen kohtaan rd
. Joten tämä johtaa 32 * 32 * 4096 = 4,194,304 erilliseen koodaukseen vain ADDI
: lle.
"Ohjaustilan" jakaminen on erittäin tärkeä osa ISA: n suunnittelua.Millä bitillä käytät rekisteröintiargumentteja, millä bitillä käytät välittömiä arvoja, millä bitillä käytät operaatiota, millä bitillä käytät komentomuotoa, millä bitillä käytät komentokokoa jne.ottaen huomioon komentosarjan joustavuuden ja ilmeikkyyden sekä prosessorissa vaaditun dekoodauslaitteiston monimutkaisuuden.Käytettävissä olevien toimintojen määrän lisääminen tapahtuu yleensä joustavuuden kustannuksella - välitön koko, argumenttien lukumäärä, osoitettavien rekistereiden määrä jne.