prilicno sam siguran da Pwntium nema mikroinstrukcije... koliko se secam rasprava MC68060 vs Pentium.
Svaki CPU ima mikroinstrukcije, samo sto neki mogu da ih pre-dekodiraju u interni ortogonalni RISC mikrokod, gde su svi MOP-ovi iste duzine.
Npr, kod AMD-a se to zovu makrooperacije, kod intela mikrooperacije. Nakon dekodiranja fuzionisu se aritmeticke i memorijske operacije u jedan MOP, takozvana PACK faza, pa se nakon toga salju u scheduler (dispatch faza), da bi se iz scheduler-a (schedule faza), slale u AGU/ALU. Ako je aritmeticka, ide u ALU, ako je adresna ide u AGU itd... Npr, aritmeticka x86 instrukcija koja koristi reg, [mem] operande, moze da se rasturi na jednu aritmeticku i jednu adresnu operaciju, ili operacije uslovnog skoka mogu se pakovati u adresne, a zatim se adresa prosledjuje load-store jedinici.
Cilj ovoga je bolje iskoriscenje i postizanje internog paralelizma na nivou instrukcija.
Kod pentiuma postoje tzv U i V pipe. S' obzirom da x86 instrukcije nisu jednake, dekodiranje u mikrooperacije se koristilo radi postizanja boljeg IPC-a. Npr, jednu duzu x86 operaciju od na primer 8-bajtova moguce je rasturiti u dve 4-bajtne mikrooperacije.
EDIT:
na arstehnici se kaze "Decode1: Instructions are decoded into the
Pentium's internal instruction format. Branch prediction also takes place at this stage."
link
Da, to znaci da Pentium dekodira svoj legacy x86 format u neki drugi povoljniji za brze izvrsavanje.
a na wikipediji za PentiumPro kaze: "The Pentium Pro (P6) core featured an array of advanced RISC technologies, although it wasn't the first x86 CPU with such approach -- before it, the NexGen Nx586 processor already utilized internal x86 translation to its own proprietary RISC86TM instruction set. Perhaps the most obvious sign that things had changed was that the CPU's "front end"
decoded the old IA32 instructions into micro-instructions which the Pro's RISC core then processed."
link
da li to onda znaci da se i jedan i drugi imaju svoje mikroinstrukcije? da li su te mikroinstrukcije uopste dokumentovane u intelovoj dokumentaciji? da li se iste instrukcije koriste u svim intelovim procesorima od PentiumPro do danas? ili ih intel menja (PentiumPro>PentiumII>PentiumM>Pentium4??>Core...)?
Mikrooperacije nisu ni dokumentovane, niti su dostupne programeru. Sto se tice toga da li se iste mikroinstrukcije koriste od PPro do danas, pa prilicno sam siguran da je to tacno. Ne verujem da su tu nesto bitno menjali. Sa danasnje tacke gledista, moderni procesori su procesor u procesoru. Cinjenica je da je na taj nacin pocetkom 90-tih produzen zivot x86 CISC arhitekturi. Motorola je moglo bi se reci odustala od CISC-a, nakon 68060.
Inace, svaki procesor poseduje mikroprogram za svaku instrukciju, s' tom razlikom sto moderni procesori predekodiraju x86 u nesto drugo, a to "nesto drugo" se opet izvrsava po nekom mikroprogramu koji je odredjen od strane proizvodjaca.
Sto se tice tog preslikavanja x86 koda u RISC, AMD je bio medju prvima, sa svojim K5 procesorom. K5 je interno gledano AMD29000 RISC CPU, na ciji front-end su dodati x86->RISC dekoderi. To je radilo kako je radilo. U nekim situacijama brze, a u nekima manje efikasno.