diagrama de CPU simple

La informació que conté aquí dins es va compilar des d' un Una varietat de fonts de text i Web basades en text, està pensat com a ajuda d'ensenyament Només (per a ser usada en conjunciós amb la Text requerit , i no s' usarà per a cap Un propòsit comercial. Particular gràcies al Dr. Enrique Mafla pel seu permís per usar il· lustracions seleccionades des de les seves notes. En aquestes pàgines web.

4.1. El processador Central - Control i flux de dades

Reconèixer que, a la secció 3, vam dissenyar una base ALU sobre (a) construint blocs com múltiplesxers per seleccionar una operació per a produir una sortida ALU, (b) que porta els adds d' aspecte per reduir la La complexitat i l' exercici) són els valors crítics d' aritmètica Operacions, i (c) components com els coprocessadors per dur a terme costosament Operacions com aritmètica flotants. També ho vam demostrar. l'ordinador pateix aritmètica d' errors degut a la precisió de Finntie, falta d' asssociatritivitat, i limitacions dels protocols com ara l' IEEE 754 estàndard flotant.

4, 1, 21. Revisió

En les seccions anteriors, vam parlar de l'ordinador organització a nivell microarchititul, organització processador (en termes de transport de dades, control i registre de fitxer), així com lògica circuits incloent- hi metologies de rellotge i circuits seqüencials com ara Com si m'enganxos.

A la figura 4.1, l'organització típica d'una moderna El processador von Neumann és il·lustrat. Tingueu en compte que la CPU, la memòria El subsistema, i el subsistema d' E/ S estan connectats per adreces, dades, i Controla els autobusos. El fet que aquests són els autobusos paral·lels es denota La barra a través de cada línia que senyala un autobús.

Figura 4.1. Un diagrama d'esquemes d'un processador modern von Neumann, on la CPU està anotada per una caixa plegada - aptada des de [Maf01].

És paga la pena discutir més endavant el següent components a la figura 4.1:

Processador (CPU) és la part activa de l'ordinador, que fa tot el treball de la manipulació de dades i prendre decisions.

path de dades és el maquinari que realitza totes les operacions requerides, per exemple, ALU, registrades i internes Els autobusos.

Control és el maquinari que explica el datapath què fer, en termes de canvi, selecció d' operació, dades Moviment entre components ALU, etc.

El processador representat pel bloc plegat en La figura 4.1 està organitzada com es mostra a la Figura 4.2. Observa que l'ALU realitza I/O en les dades desades en el fitxer de registre, mentre el control Enviació d'unitat (receptius) senyals de control (remsp. dades) en conjunció amb L'arxiu de registre.

Figura 4.2. Diagrama d'esquemes del processador a la Figura 4.1. S'està adaptat a [Maf01].

A MIPS, l'ISA determina molts aspectes dels Implementació del processador. Per exemple, estratègies d' implementació I els objectius afecten a la taxa de rellotge i el PCI. Aquestes implementacions Les restriccions causen els paràmetres dels components a la figura 4. 3 S' ha modificat durant el procés de disseny.

Aquestes preocupacions d'aquesta implementació es reflecteixen en la Ús dels elements lògics i estratègies de rellotge. Per exemple, amb Elements de combinació com adders, múltiplesxers, o canviants, Les sortides només depenen de les entrades actuals. No obstant això, elements seqüencials Com la memòria i els registres contenen informació de l'estat, i els seus La sortida depèn de les seves dades (valors i rellotge) A l'estat emmagatzemat. El rellotge determina l' ordre dels esdeveniments dins d' un Porta, i defineix quan es poden convertir els senyals a les dades a llegir o llegir Escrit per als components del processador (p. ex., registres o memòria). Per propòsits de revisió, es presenta el següent diagrama de rellotge:

Aquí, una senyal que es manté a la lògica d'alt valor és Va dir que hi fos afirmat . A la secció 1, vam parlar de com El rellotge de vora pot donar suport a una transició precisa d' estat A la vora del rellotge activa (ja sigui l'aixecament o l'alçament, Depenent del que selecciona el dissenyador. També revisem l'SR. Basat en el Latch ni lògica, i mostra com pot ser això Es va convertir en una bossa de rellotge. D' aquí, un rellotge D Latch I l'Ulip d'un gir es va derivar. En concret, el D Gira-flop té un gallet de caiguda, i la seva sortida està inicialment desassemblada (i.e.,. el valor de la lògica baixa és present.

4.1.2. Registra el fitxer

El fitxer de registre (RF) és un dispositiu maquinari que té Dos ports de lectura i un port d'escriptura (crespondent a les dues entrades i una sortida de l' ALU). Els RF i l'ALU juntes comprenen els dos Es necessiten elements per calcular instruccions de MIPS R-format ALU. El RF està format per un conjunt de registres que poden ser llegits o escrits per També s' ha d' accedir a un número de registre (en el cas de les operacions d' escriptura) com a una mica d' autorització d' escriptura. Un diagrama de blocs de la RF es mostra a la Figura 4.4a.

Des de la lectura d' un valor de registre no ho fa Canviar l'estat del registre, no cal un mecanisme de seguretat Evita que s' escriguin en mode de sobreescriptura de dades desades, i només ens cal proporcionar el número de registre per obtenir les dades desades en això A la caixa registradora. (Tot això està disponible a la sortida de dades de lectura en la figura 4, 4a.) No obstant això, quan s'escriu a un registre, necessitem (1) un registre Número, (2) una mica d' autorització, per seguretat (perquè l' anterior El contingut del registre seleccionat per a escriptura són sobreescrits pel Operació d' escriptura), i (3) un pols de rellotge que controla l' escriptura de dades A la caixa registradora.

En aquesta discussió i en tota aquesta secció, nosaltres assumirà que el fitxer de registre està estructurat com es mostra en la figura 4,4a. Suposarem més que cada registre es construeix des d'un Una sèrie lineal de girs Dw-flops, on cada gir té un rellotge (C) i dades (D) d' entrada. Els ports de lectura es poden implementar usant dos múltiplesxers, cada cop que hi ha registre 2 Línies de control N, on N és el nombre de bits a cada registre del RF. A la figura 4, 4b, nota que dades de tots els N = 32 registres flueix a la sortida mxes, i el flux de dades del registre a llegir és seleccionat usant el Les cinc línies de control de mux. Similar al disseny ALU present a la secció 3, El paral·lelisme s'explota per a la velocitat i la simplicitat.

A la Figura 4, 4c es mostra una implementació del RF Escriu el port. Aquí, la s' està habilitant l' escripturaSuccessful message after an user action El senyal és un pols de rellotge que activa els arcs de vora entrellaçats que comprenen cada registre (mostrat com un rectangle amb les entrades del rellotge (C) i de dades (D). La El número de registre és l' entrada a un N- a- 2 N Descodificador, i actua com a el senyal de control per a canviar l' entrada del flux de dades al registre Entrada de dades. El canvi de dades actual es fa per i - Sobre la flux de dades amb la sortida descodificador: només la i Porta que té un unitatri (valorat) Descodificador de sortida passarà les dades a la Registre seleccionat (perquè 1 i x = x ).

Parlarem després de com construir un camí de dades d'un Registre de fitxers i una ALU, entre d' altres components.

4.2. Disseny de path de dades i implementació

La ruta de dades és "brwn" d'un processador, ja que és implementa el cicle de captura de codi. La disciplina general per a El disseny de dadespath és a (1) determinar les classes d' instrucció i els formats a l' ISA, (2) Disseny de componentspaths i interconnexiós per Cada classe d' instruccions o format, i (3) compondre els segments depath de dades Dissenyat en Pas 2) per a cedir una ruta de dades composite.

Els components " pathpath " simples inclouen Memòria (carreges la instrucció actual), PC o comptador de programes (selleja l' adreça d' instrucció actual), i ALU (Execuciona les instruccions actuals). La interconnexió d' aquests components simples per formar un bàsic Elpath de dades és il·lustrat a la figura 4.5. Tingueu present que el fitxer de registre està escrit a la sortida de l' ALU. Com a la secció 4.1, el registre. El fitxer mostrat a la Figura 4. 6 és rellotgeat pel senyal del RegWrite.

Implementació de la ruta de dades per a I- i- format J Les instruccions requereixen dos components més - a Memòria de dades i a StenerCity name (optional, probably does not need a translation) il·lustrada a la figura 4.6. La memòria de dades Emmagatzema els resultats de l' ALU i els operands, incloent instruccions, i en té dos Activant les entrades (MemWrite i Memlider) que no poden estar actives ( tenen un valor lògic) al mateix temps. La memòria de dades accepta una adreça i bé accepta dades (el port "WriteData " si el MemWrite està habilitat) o dades de sortida (LlegitData port si el " Mem Llegeix " està habilitat), a l' indicat adreça. El signe extendre afegeix 16 dígits inicials a una paraula de 16 bits amb Una mica més significatiu b , al producte d'una paraula de 32 bits. En particular, els 16 dígits addicionals tenen el mateix valor que b , per tant implementa Extensió de signes en dues representacions complementàries.

4.2.1. R- formatpath de dades

Implementació de la ruta de dades per a instruccions de format R és bastant senzill - el fitxer de registre i l'UA són tot el que Es requereix. L' ALU accepta l' entrada dels ports de lectura de dades El fitxer de registre, i el fitxer de registre està escrit per l'ALUresult Sortida de l'ALU, en combinació amb el senyal del RegWrite.

4.2.2. Carrega/ Store Datapath

El camí de càrrega/ magatzem de dades usa instruccions com ara Lw $t1, Desplaçament ($t2) , on Desplaçament Anota un El desplaçament de l' adreça de memòria s' ha aplicat a l' adreça base en el registre $t2 . La lwunit description in lists Les instruccions es poden llegir de la memòria i escriure al registre $t1 . La slaw Les instruccions es llegeix des de la caixa registradora $t1 i escriu dins La memòria. Per tal de calcular l'adreça de la memòria, els MIPS ISA Especificació diu que hem de signar el desplaçament de 16 bits a un Valor signat de 32 bits. Això es fa usant el signe que es mostra - A les 4.6.

El camí de càrrega i magatzem de dades és il·lustrat a la figura 4.8, i realitza les següents accions en l' ordre indicat:

Registra l' accés Es necessita l' entrada des de la Registre de registre, per implementar les instruccions, les dades o l' adreça Obtén Pas del cicle d'execució del codi.

Càlcul de l' adreça de memòria Descodificador l' adreça base i el desplaçament, combinant- los per produir De debò l'adreça de la memòria. Aquest pas fa servir el senyal més ampli i ALU.

Llegeix/Write de memòria Es necessiten dades o instruccions de la memòria de dades, i implementa el primer part de la executa Pas del camp d' obtenció/decodi/ execute cicle.

Escriu en un fitxer de registre posa dades o instruccions a la memòria de dades, implementant el segon part de la executa Pas del camp d' obtenció/decodi/ execute cicle.

Figura 4,8. Diagrama d'esquemes de les instruccions de càrrega/ Store path. Noteu que la executa El pas també inclou l' escriptura de Les dades al fitxer de registre, que no es mostren en la figura, per simplicitat [MK98].

La ruta de càrrega/ magatzem de dades té operand 1 (l' adreça base) Des del fitxer de registre, i signa el desplaçament, que s' ha obtingut Des de l' entrada d' instrucció al fitxer de registre. El desplaçament a l' inrevés del signe i l'adreça base es combina per l'ALU per donar l'adreça de la memòria, que és entrada al port de l' adreça de la memòria de dades. El senyal de lectura Quan està activat, i les dades de sortida obtingudes des del port de lecturaData La memòria de dades es torna a escriure al fitxer de registre usant- lo Port d' escripturaData, amb el RegWrite va afirmar.

4.2.3. Ramificar/Jump path de dades

El camí de dades de la branca (jump és una branca incondicional) Usa les instruccions com ara beq $t1, $t2, Desplaçament , on Desplaçament és un desplaçament de 16 bits per al càlcul de la branca Adreça de destí a través de l' adreça de connexió amb PC. La beq Les instruccions es llegeix des de la caixa registradora $t1 i $t2 , llavors compara les dades obtingudes d'aquests registres per veure si són iguals. Si és igual, es pren la branca. Si no, La branca no està agafada.

Per Agafant la branca , l' especificació ISA significa que l' ALU afegeix un desplaçament de signes al comptador del programa (CP). El desplaçament es desplaça a l' esquerra 2 bits per permetre l' alineació de paraula (des de 2 2 = 4, i les paraules es compren en 4 bytes). Així, per saltar a l' adreça de destí, es substitueixen 26 bits més avall del PC amb Les 26 bits més baixes de la instrucció van canviar dos bits.

La ruta d' instruccions de les dades de la branca és il·lustrada a la figura 4. 9, i realitza les següents accions en l' ordre indicat:

Registra l' accés Es necessita l' entrada des de la S' està registrant el fitxer, per implementar- lo Eina d' obtenció d' instrucció o dades Obtén Pas del cicle d'execució del codi.

Calcula el destí de la branca - Concurrent amb l'avaluació d' ALU 1 de la condició de la branca, ALU # 2 calcula l' adreça de destí de la branca, per a estar a punt per a la branca si s'ha pres. Això completa el Descodificador step Del cicle d'execució del codi.

Avalua la condició de la branca i salta a BA o PC+4 usa ALU 1 a la figura 4. 9, per a determinar si o No s'ha de prendre la branca. Salta a BTA o PC+4 usa el control maquinari lògic per transferir el control a l' instrucció referenciada per l'adreça de la branca de destí. Això canvia efectivament el PC a l' adreça de la branca de destí, i completa la executa step Del cicle d'execució del codi.

Figura 4,9. Diagrama d' esquemes de la instrucció de la branca path. Tingueu en compte que, a diferència de la càrrega/ Store path de dades, la executa El pas no inclou l' escriptura dels resultats de nou a la Registre del fitxer [MK98].

La ruta de les dades de la branca pren l' operand 1 (el desplaçament) Des de l' entrada d' instrucció al fitxer de registre, després signa el Desplaçament. El desplaçament de signes i el comptador del programa (incrementat) per 4 bytes per a fer referència a la següent instrucció després de la branca Les instruccions) són combinades per ALU # 1 per a cedir l' adreça de destí de la branca. Els operands per a la condició de la branca a avaluar s' han obtingut actualment des del fitxer de registre mitjançant els ports readData, i són d' entrada a ALU # 2, Aquesta sortida dóna un valor o zero a la lògica de control de la branca.

MIPS té la característica especial d'un retardat branca Això és, instruccions que b El que segueix la branca Sempre s'ha recuperat, descodificat i preparat per a l'execució. Si la branca La condició és falsa, es produeix una branca normal. Si la condició de la branca És veritat, llavors jo sí. b S' ha executat. Una pregunta per què aquest extra S' ha realitzat el treball - la resposta és que és retardada La branca millora l'eficiència de l'execució de canonada, com hem de fer Vegeu a la secció 5. També, l'ús de la branca no obtingut (on jo faig) b l' execució) és a vegades el cas comú.

4,3. Conjunt de dades d' un únic i multicicle

Una ruta de dades d' un únic cicle executa en un cicle tot Les instruccions que elpath de dades està dissenyat per implementar. Això Un impacte clarament al CPI d'una manera beneficiosa, a dir, CPI = 1 cicle per a Totes les instruccions. En aquesta secció, primer hem examinat el disseny. disciplina per implementar un mecanisme de dades utilitzant el maquinari components i camins de dades específiques d' instrucció desenvolupats a la secció 4.2. Llavors, descobrirem com l'actuació d'un sol cicle Elpath de dades es pot millorar usant una implementació multicicle.

4,3.2. paths simples de dades

Comencem construint una ruta de dades amb el control. Les estructures preses dels resultats de la secció 4.2. La manera més simple de Connectar els components delpath de dades desenvolupats a la secció 4. 2 és tenir Totes s' executen una instrucció en aquest moment, en un cicle. Com a El resultat, no es pot usar cap component depath de dades més d' una vegada per cicle, Això implica una duplicació de components. Per a fer aquest tipus de disseny Més eficient sense sacrificar velocitat, podem compartir una ruta de dades component permetent que el component tingui múltiples entrades i Sortida seleccionada per un múltiplesxer.

La clau per al disseny de dades d' un únic cicle eficient és per a trobar corrents comuns entre els tipus d' instruccions. Per exemple, la Formata instrucció MIPSpath de la figura 4. 7 i la càrrega Les dadespath de la figura 4. 8 tenen connexions similars a registre i ALU. No obstant això, les següents diferències també es poden observar:

La segona entrada ALU és un registre (R- format instrucció) o una instrucció signada menys de 16 bits de la instrucció (p. ex., un desplaçament de càrrega/ magatzem).

El valor escrit al fitxer de registre és S' ha obtingut des de la instrucció ALU (R- format) o memòria (Clou d' instruccions de càrrega/ magatzems).

Aquests dos dissenys de dades es poden combinar per incloure Les instruccions separades i la memòria de dades, tal com es mostra a la Figura 4.10. La La combinació requereix un adder i un ALU a respectivament increment de PC i executa la instrucció R-format.

S' està afegint la branca de dadespath a la ruta de dades il·lustrat a la figura 4. 9 produeix la ruta de dades augmentada en Figura 4.11. Les instruccions de les branques usen l'ALU principal per comparar- les operands i l' adder calcula l' adreça de la branca de destí. Una altra Cal aprendre múltiplesxer per seleccionar o bé la següent adreça d' instrucció (PCP + 4) o l' adreça de destí de la branca és el nou valor per al PC.

4.3.1. Control ALU. Donada la simple path de dades mostrades a la figura 4.11, següent afegirem la unitat de control. Control accepta les entrades (anomenats Senyals de control ) i genera (a) a Escriu senyal per a cada element d' estat, (b) els senyals de control per a cada element multiplexer, i (c) la senyal de control ALU. L'UA té tres Senyals de control, com es mostra a la taula 4.1, a sota.

L'ALAU s' usa per a totes les classes d' instruccions, i Sempre Fa una de les cinc funcions de la dreta columna de la taula 4. Per instruccions de la branca, l'ALU realitza un Restant, mentre que les instruccions R-format requereixen una de les UA Funcionalitats. L' ALU està controlat per dues entrades: (1) el codi op d' un instrucció MIPS (6 bits més significatius), i (2) a dues bits Camp de control (el Patterson i la crida Hennesey ALUop ). El senyal ALUop anota si l' operació ha de ser una de les següents:

La sortida del control ALU és un dels 3- bits Codis de control mostrats a la columna esquerra de la taula 4. A la taula 4, 2, us mostrem com establir la sortida ALU basada en el codi d' instruccions I els senyals ALUop. Més tard desenvoluparem un circuit per a S' estan generant els bits ALUop. Anomenem aquest enfocament. Nivell multi- nivell S' està descodificantThe role of the transaction, in present tense -- el control principal genera bits ALUop, que són d' entrada a Control ALU. El control ALU aleshores genera els codis de tres bits mostrats A la taula 4.

L' avantatge d' una partició jeràrquica o d' una partició jeràrquicaName L' esquema de control de canonades s'ha adonat en el maquinari reduït (several) Les unitats de control petites s' usen en comptes d' una gran unitat). Això Resultats en el cost de maquinari reduït, i poden produir en certes instàncies Augmenta la velocitat de control. Des que la unitat de control és crítica Implementació de les dades, aquest és un pas important d' implementació.

Retreu que hem de traçar el camp ALUop de dos bits i el codi d'operacions de sis bits a un codi de control ALU de tres bits. Normalment, Això requeriria 2 (2 + 6) = 256 combinacions possibles, Finalment, s'expressen com a entrades en una taula de veritat. No obstant això, només uns pocs Els codis d'operacions s'han d' implementar a l'ALU dissenyat aquí. A més, la ALU només s' utilitza quan ALUop = 10 2 . Per tant, podem utilitzar lògica simple per implementar el control ALU, com es mostra en termes de la Taula de veritat il·lustrada a la taula 4.2.

Taula 4.2. Bits de control ALU com a funció de ALUop bits i articles d' articles [MK98].

En aquesta taula, una "X" de la columna d' entrada representa un valor "no-care," que indica que la sortida no depengui En l'entrada a la posició d'un bit. La taula de veritat anterior pot Es optimitza i implementat en termes de portes, com es mostra en Secció C. 2 de Addix C de la Llibre de text .

4,3.1.2. Unitat de control principal. El primer pas d' entrada El disseny de la unitat de control principal és identificar els camps de cada Les instruccions i les línies de control necessàries per implementar el camí de dades Es mostra a la Figura 4.11.

Reconèixer els tres formats d' instrucció MIPS (R, I, i J), mostrat com segueix:

Tingueu en compte que les diferents posicions per als dos el registre de destí implica un selector (i. e., un mutx) per a localitzar la Camp apropiat per a cada tipus d' instruccions. Donat aquests contragents, podem afegir al camí de dades simple fins ara desenvolupat Etiquetes d' instrucció i un extra múltiplexer per a l' entrada " writeReg " El fitxer de registre, tal i com es mostra a la Figura 4. 12.

DeasertedCity name (optional, probably does not need a translation) : El valor l' actual a l' entrada " writeData " és la sortida de l' ALU

AssertedCity name (optional, probably does not need a translation) : El valor present al registre S' agafa l' entrada " writeData " de la memòria de dades

Donada només el codi d' articles, la unitat de control pot establir- la Tots els senyals de control excepte el PCSrc, que només està establert si la Les instruccions són beq i la sortida zero de l' ALu usada per a la comparació és cert . El PCSrc és generat per i - Fent-ne un RamificarStencils senyal de la unitat de control amb el senyal Zero de L'UA. Així, tots els senyals de control es poden establir basant- se en el codi d'operacions trossos. El camí de dades resultant i els seus senyals es mostren en detall en Figura 4.13.

A continuació, examinarem la funcionalitat del camí de dades il· lustrades a 4.13, per a tres tipus d' instruccions principals, llavors discutiu com fer-ho Un augment de la ruta de dades per a un nou tipus d' instruccions.

4,3.2. Operació pathStencils

Recepció que hi ha tres formats d' instrucció MIPS R, jo i la J. Cada instrucció provoca una funcionalitat lleugerament diferent per passar al llarg de la ruta de dades, com segueix.

4,3.2.1. Instrucció R-format. Execució d' un instrucció de format R (p. ex., afegeix $t1, $t0, $t1 ) usant el datapath desenvolupat a la secció 4.3.1 implica les següents passes:

Obtén instrucció des de la memòria d' instruccions i increment del PC

Registres d'entrada (p. ex., $t0 i $t1 ) es llegeix des del fitxer de registre

LU opera en dades des del fitxer de registre usant el ▁functCity name (optional, probably does not need a translation) field de la instrucció MIPS (Bits 5- 0) a Ajuda a seleccionar l' operació ALU

Resultat de l' ALU escrit en el fitxer de registre usant bits 15- 11 d' instrucció per a seleccionar el destí Registre (p. ex., $t1 ).

Tingueu en compte que aquesta seqüència d' implementació és realment Una combinació, una taca de l'assumpció d'un únic cicle. Des de la Elpath de dades funciona dins d' un cicle del rellotge, els senyals s'estabilitzen aproximadament en l' ordre mostrada en Pass 1-4, superior.

4,3.2.2. Carrega/ instrucció de càrrega. Execució de una instrucció de càrrega/ magatzem (p. ex., lw $t1, desplaçament($t2) ) usant elpath de dades desenvolupat a la secció 4. 3. 1 implica el següent passos:

ALU resta el contingut de $t1 menys contingut de $t2 . La sortida Zero de la ALU directa el resultat (PCP+4 o BETA) per escriure com a nou PC.

4,3.2.4. Disseny de control final. Ara que nosaltres ha determinat les accions a les que elpath de dades ha de realitzar Calcular els tres tipus d' instruccions MIPS, podem utilitzar la informació a la taula 4, 3 per a descriure la lògica de control en termes d' una taula de veritat. Aquesta taula de veritat (Table 4. 3) s' optimitza com es mostra a la secció C. 2 de Apèndix C de la Llibre de text per donar-li suport al circuits de control de dades.

Taula 4,3. Bits de control ALU com a funció de ALUop bits i articles d' articles [MK98].

4,3.3. Control ampliat per a instruccions noves

La instrucció de salt proveeix un exemple útil de com per ampliar la ruta de dades d' un únic cicle desenvolupat a la secció 4. 3. 2, a Doneu suport a noves instruccions. Salta s' assembla a la branca (una forma condicional de les instruccions de salt), però calcula el PC de manera diferent i és incondicional. Identificat a l' adreça de la branca, el més baix Dos bits de l' adreça de salt (JA) sempre són zero, per a preservar word alineament. Els següents 26 bits són press d' un 26 bits immediat camp en l' instrucció de salt (els sis bits restants estan reservats per a l'operació. Els 4 bits superiors de la JETA són agafats des de dalt de tot 4 bits de la següent instrucció (CP + 4). Així doncs, la JA calculada per l' instrucció de salt està format com segueix:

  • Bits 31-28: Més alta quatre bits de (PCP + 4)
  • Bits 27- 02: Immediat camp d' instruccions de salt
  • Bits 01- 00: Zero (00 2 )

El salt està implementat en maquinari afegint un control circuit a la figura 4.13, que està format per:

Un multixador addicional, per seleccionar la Font per al nou valor del PC. Per cobrir tots els casos, aquesta font El PC+4, el condicional BETA, o el JETA.

Un senyal addicional de control per al nou multiplexer, afirmada només per a una instrucció de salt (opcode = 2).

4.3.3. Limitacions de la ruta de dades d' un simple "Cycle "

El camí de dades d' un únic cicle no s' usa en modernName processadors, perquè és ineficient. El camí crític (grans) La seqüència de proagació a través del camí de dades) és cinc components per als Carrega instrucció. El temps del cicle t cunit description in lists està limitat per la S' està instal· lant el temps t s Aquests components. Per a un circuit amb sense bucles de retroalimentació, t cunit description in lists > 5t s . A la pràctica. tunit description in lists cunit description in lists = 5kt s , amb constant proporcional k, degut a bucles de retroalimentació, retardades degut al circuit, etc. A més, com es mostra a la taula a p. 374 de la Llibre de text , és possible calcular la Es requereix temps d' execució per a cada classe d' instruccions de la crítica Informació del camí. El resultat és que les instruccions de càrrega tenen 5 Unitats de temps, mentre les instruccions Desa i R-format prenen 4 unitats de temps. Tot Els altres tipus d' instruccions a les que es dissenyen el camí de dades Executeu més ràpid, requerint tres unitats de temps.

El problema de l'addició penalitzada, resta, i Les operacions de comparació amb els paquets d' accomotoda i les botigues fan servir un a Pregunta si es poden fer servir múltiples cicles d' un rellotge molt més ràpid per a cada part del cicle d'execució del codi. En pràctica, aquesta tècnica s' utilitza en el disseny i la implementació de la CPU, tal com s' explica en la A continuació, les següents seccions en el disseny multicicle de dades. En secció 5, Mostra que les accions de " path " poden ser interdeixat en el temps a Rendiu una implementació potencialment ràpida de l'execució del codi El cicle que es fa formalment en una tècnica anomenada paral· lelisme .

4,3.5. Disseny multicicle de dades

A les seccions 4,3.1 a 4.3, vam dissenyar un path de dades d' un únic cicle per (1) agrupant instruccions a les classes, (2) Descomposir cada classe d' instruccions a les operacions constituents, i (3) descaure components de dadespath per a cada classe d' instrucció que S' han implementat aquestes operacions. Noun, name of the user action En aquesta secció, fem servir la components d' un únic cicle de dades per crear una ruta de dades multicicles, A on cada pas de la seqüència d'execució del codi es pren un cicle. Aquest enfocament té dos avantatges per sobre de la ruta de dades d'un sol cicle:

Cada unitat funcional (p. ex., Registra el fitxer, La memòria de dades, ALU) es pot usar més d' una vegada en el curs d' execució una instrucció, que desa maquinari (i, per tant, redueix el cost); i

Cada instrucció passa té un cicle, així que Les instruccions diferents tenen temps d'execució diferents. En contrast, el path de dades d' un únic cicle que vam dissenyar prèviament requerint cada instrucció per prendre un cicle, així que totes les instruccions es mouen a la velocitat de la més lenta.

El següent considerarem les diferències bàsiques entre un sol cicle i espàtxos de dades multicicles.

4,3.5.1. Anàlisi de cursor. Figura 4, 15 il·lustra una simple muta de dades multicicles. Observa les següents diferències entre una path de dades d' un sol cicle i multicicles:

En el tauler de dades multicicles, una unitat de memòria Les dues instruccions i les dades, mentre que el camí de dades d' un únic cicle requereix Ordres separades i memòries de dades.

El conjunt de dades multicicle usa l' ALU, contra Una ALU i dos adders a la ruta de dades d' un sol cicle, perquè senyals Es pot redirigir a l'UA en una implementació multicicle.

En la implementació d' un sol cicle, la instrucció executa en un cicle (amb disseny) i les sortides de tots Les unitats funcionals s'han d'estabilitzar en un cicle. En contrast, el La implementació multicicle utilitza un o més registres temporal store (buffer) les sortides de les unitats ALU o funcionals. Això Memòria intermèdia L' acció desa un valor en un registre temporal fins que Cal o s'utilitza en un cicle de rellotge posterior.

Noteu que hi ha dos tipus de Elements d' estat (E.g., memòria, registres), que són:

Programador-Visible (fitxer de "regirester," PC, o memòria), en quines dades s' emmagatzemen que s' usa després instruccions (en un cicle de rellotge més tard); i

Elements d' estat addicionals (buffer) Registres), en les que es desen les dades que s' usen en un cicle de rellotge més tard Les mateixes instruccions.

Per tant, els registres addicionals (bufer) determinen (a) Quines unitats funcionals s' ajustaran en un cicle i (b) del rellotge donat el S' han requerit dades per cicles posteriors involucrats en executar l' actual Les instruccions. En la senzilla implementació present aquíin, assumim que Per a propòsits d'il·lustracions que cada cicle del rellotge pot exocular-ne una i només una de les següents operacions:

  • Accés de memòria
  • Registra l' accés al fitxer (dos llegeix o una escriptura)
  • Operació ALU (arithmetic o lògic)

4,3.5.2. Registres nous. Com a resultat de la memòria intermèdia, Les dades produeixen per memòria, el fitxer de registre, o l'UU es desa per a usar- les en una Després del cicle. Els següents registres temporals són importants L' implementació multicicle de dades explicada en aquesta secció:

  • Registrador d' instruccions (IR) desa la sortida de dades Des del segment de text de la memòria per a una nova instrucció de lectura;
  • Registres A i B (A, B) desa els valors de l' operand LU des del fitxer de registre, i
  • Registre de sortida ALU (ALUout) conté el resultat produït per l'ALU.

La IR i MDR són diferents registres perquè alguns Les operacions requereixen ambdues instruccions i dades en el mateix cicle del rellotge. Com que tots els registres excepte les dades IR tenen només entre dos adjacents Els cicles del rellotge, aquests registres no necessiten un senyal de control d'escriptura. Entrada contrastar, la IR conté una instrucció fins que s' executi (multiple) cicles del rellotge) i requereix una senyal de control d'escriptura per a protegir L' instrucció de ser sobreescrit abans d' haver estat l' execució S' ha completat.

4,3.5.3. Les noves muxes. També hem d'afegir nous múltiplesxers i expandint-ne d'altres existents, per implementar la compartició de Unitats funcionals. Per exemple, hem de seleccionar entre la memòria adreça com a PC (per a una instrucció de càrrega) o ALUout (per a carregar/ característiques) instruccions). Les muxes també venen cap a una ALU les moltes entrades i S' han distribuït les sortides entre les diverses ULUs de la path de dades d'un únic cicle. Així doncs, fem els següents canvis addicionals a la ruta de dades d' un únic cicle:

Afegeix un múltiple a la primera entrada ALU, a Escolliu entre (a) la caixa registradora com a entrada (per a instruccions de R i I- format) , o (b) El PC com a entrada (per a instruccions de branca).

En el segon ALU, l' entrada està seleccionada per un Quatreway mux (dos bits de control). Les dues entrades addicionals al mux són (a) el valor immediat (constant) 4 per incrementar el PC i (b) El desplaçament de signes, va canviar dos bits per preservar l'aligment, que s' usa en el càlcul de l' adreça de destí de la branca.

Els detalls d'aquests muxes es mostren a la figura 4.16. En afegir uns quants registres (buferis) i els estris muxs (inexpensives), Hem aconseguit el nombre d' unitats de memòria (transtènssive hardware) i eliminar Dos adders (el maquinari més car).

4, 3, 5, 4.4. Senyals de control nou. La ruta de dades Es mostra a la figura 4. 16 és multicicle, atès que utilitza múltiples cicles per Les instruccions. Com a resultat, requerirà diferents senyals de control que el camí de dades d' un únic cicle, com segueix:

  • Escriu senyals de control per l'IR i Unitats d' estat visible per programador
  • Llegeix senyal de control per la memòria, i
  • Línies de control pels muxes.

És avantatge que el control ALU de la Es pot usar un conjunt de dades de cicles com a... és per al camí de dades multicicle Control ALU. No obstant això, es requereix algunes modificacions per acceptar- les Branques i salts. descriurem aquests canvis com a continuació.

4,3.5.5. La branca i la implementació de les instruccions. Per implementar les instruccions de branca i saltar, un dels tres possibles valors està escrit al PC:

Sortida de l' ALU = PC + 4, per aconseguir el Les següents instruccions durant l' instrucció Obtén pas (a fer això, PC + 4 està escrit directament al PC)

Registra ALUout , que desa la Adreça de destí calculada.

26 bits més baixa (soffset) de la IR , Canviat a l' esquerra de dos bits (per preservar l' alginament) i concatenat amb Els 4 bits superiors del PC+4, per formar l' adreça de salt.

El PC està escrit incondicionalment (es salta les instruccions) o condicióalment (branch), que implica dos senyals de control - PCWrite i PCWriteCond. Des d' aquests dos senyals i la sortida Zero de la ALU, vam derivar el senyal de control del PCWrite, mitjançant l'equació de lògica següent:

PCWriteControl = (ALUZero i PCWriteCond) o PCWrite,

on (a) ALUZero indica si dos operands de beq La nuducció són iguals i (b) el resultat de (ALUZero i PCWriteCond) determina si s' ha d' escriure el PC Durant una branca condicional. Trucarem l'última vegada. branca S' ha presThe role of the transaction, in past tense - Quin estat. Figura 4. 16 mostra el multicicle resultant unitat de path i control de dades amb nous muxes i el control corresponent Senyals. La taula 4, 4 il·lustra els senyals de control i els seus Funcionalitats.

4,3,6. Execució multicicle de dades i instrucció

Donada el camí de dades il·lustrades a la figura 4.16, nosaltres examinar l' execució d' instruccions en cada cicle de la ruta de dades. La L' objectiu d' implementació és l' equilibri de la feina realitzada per rellotge cicle, per minimitzar el temps mitjà per cicles a través de totes les instruccions. Per exemple, cada pas contindrà un dels següents:

  • Operació ALU
  • Registra l' accés al fitxer (dos llegeix o una escriptura)
  • Accés de memòria (una lectura o una escriptura)

Així, el temps del cicle serà igual al màxim temps requerit per qualsevol de les operacions prèvies.

Nota : Des de (a) la ruta de dades està dissenyada per a ser seguit de vora (traducció de referència 4.1) i (b) les sortides de l'ALU, El registre del fitxer, o la memòria es desen en els registres dedicats (buferis), Podem continuar llegint el valor emmagatzemat en un registre dedicat. La nou valor, sortida d' ALU, fitxer de registre, o memòria, no està disponible En el registre fins al proper cicle del rellotge.

Figura 4.16. path de dades de l' MIPS multicicle [MK98].

Taula 4,4. Senyals de control multicicle de dades I les seves funcions [MK98].

En el tauler de dades multicicles, totes les operacions dins d' una El cicle del rellotge succeeix en paral· leles, però hi ha passos d'èxit dins d' un determinat Les instruccions funcionen seqüencialment. Diversos problemes d' implementació present que no controbat aquesta vista, però s'hauria de discutir. Un Ha de distingir entre (a) llegir/ escriure el PC o un dels Registres de memòria intermèdia, i (b) llegeix/escrits al fitxer de registre. En nom. L' E/O al PC o la memòria intermèdia és part d' un cicle de rellotge, és a dir, tenim això Bàsicament "per lliure" a causa de l'esquema i el maquinari Disseny. En canvi, el fitxer de registre té maquinari més complex (com Es mostra a la secció 4.1.2) i requereix un cicle de rellotge dedicat per a ella El circuit per a estabilitzar-lo.

A continuació, examinarem l'execució multicicle de dades en termes de La seqüència d'execució del codi.

4,3.6.1. Obtén instrucció. En aquest primer lloc El cicle que és comú per a totes les instruccions, el camí de dades recull una instrucció Des de la memòria i calcula el nou PC (adreça de les següents instruccions en seqüència de programa), com representada per la següent pseudocodi:

El PC s' envia (via control de control) com a adreça A la memòria. El maquinari de memòria realitza una operació de lectura i control Registra les instruccions de maquinari a la memòria [PC] a la IR, on es desa fins que s' hagi recuperat la següent instrucció. Llavors, l'ALU Augmenta el PC per quatre per preservar l' aligment de paraula. L' increment (nou) el valor del PC es desa de nou al registre del PC establint l'Font del PC = 00 i afirmant PCWrite. Afortunadament, increment del PC i Fer que la memòria llegeixi són operacions concurrents, atès que el nou PC No es requereix (en el primer) fins al proper cicle del rellotge.

S' està llegint l' asigment : La exacta La seqüència d'operacions es descriu a les p.385 del llibre de text.

4,3,6.2. Obténció de codis d' instrucció i dades. Incloat en el disseny multicicle de dades és la suposició que la No es coneix el codi actual a executar abans de la instrucció S'ha descodificat el pas. Això és raonable, ja que la nova instrucció encara no és disponible fins que la compleció d' instruccions obtingudes i no hagi estat així Descodificador.

Com a resultat de no saber quina operació és l'UA per executar en l' instrucció actual, el camí de dades ha d' executar Només accions que són:

  • Applicable a tot instruccions i
  • No és perjudicial per a any Les instruccions.

Per tant, donada la rsunit description in lists i rtunit description in lists camps Format d' instrucció MIPS (per a la figura 2. 7), podem suposar (graduament) que la següent instrucció serà R- format. Podem així. llegeix els operands corresponents a rsunit description in lists i rtunit description in lists des de la Registre de registre. Si no necessitem un o tots dos d'aquests operands, No és perjudicial. D' altra manera, l' operació de lectura de registre de fitxers Posa'ls al registre de la memòria intermèdia A i B, que no és perjudicial.

Una altra acció que elpath de dades pot realitzar és Càlcul de l' adreça de destí de la branca usant l' ALU, ja que això és l' instrucció Descodificador step i l'ALU encara no és necessària per Execució d' instruccions. Si les instruccions en les que estem descodificades Aquest pas no és una branca, llavors no es fa mal - la BA s'està emmagatzemant L'LUout i no n'hi ha res més a veure.

Podem realitzar aquestes accions preratòrias per culpa de el dels formats d' instrucció MIPS. El resultat és Representat en pseudocode, com segueix:

S' està llegint l' asigment : La exacta La seqüència d'operacions de nivell baixa es descriu a la p. 384 del llibre.

4,3,6,3. Instrucció d' instrucció Executada, composició de l' adreça, o compleció de la branca. En aquest cicle, sabem què és la instrucció. és, atès que la descodificació s' ha completat en el cicle anterior. La Les instruccions poden determinar l' operaciópath de dades, com en el path de dades d'un únic cicle. L' ALU opera amb els operands preparats en el pas de descodificar/ data- obtenció (Section 4. 33. 6.2), realitzant un dels Accions següents:

Referència de memòria : ALUout = A + SignExteend(IR[ 15: 0])

L' ALU construeix l' adreça de memòria des de l' adreça base (produeix a A) i el desplaçament (trigat des dels 16 bits baixos de la IR). Control S'estableixen senyals tal com es descriu a p. 387 opf el llibre de text.

Instrucció R- format : ALUout = A op B

L' ALU pren les seves entrades des de la llista de registres de memòria intermèdia A i B i calculacions Un resultat d' acord amb el control dels senyals especificats per les instruccions opode, camp de funció i control de senyals ALUop = 10 . Els senyals de control es descriuen més a la p. 387 del llibre.

RamificarStencils : si (A == B) llavors PC = ALUout

En instruccions de la branca, l'ALAU realitza la comparació entre les contingut de la caixa A i B. Si A = B, aleshores la sortida Zero de la ALU s' ha declarat, el PC s' ha actualitzat (sobreescrit) amb (1) el BETA S' ha calculat en el pas anterior (per a la secció 4, 3. 6. 2), llavors (2) el Un valor de l'LUout. Si la branca no està agafada, aleshores el valor PC+4 S' ha calculat durant l' obtenció d' instrucció (per secció 4. 3. 6. 1) s' usa. Això Cobreix totes les possibilitats usant el BETA el valor més recentment S'ha escrit al PC. Les accions de control del maquinari Salient es discuteixen 387 del llibre de text.

Salt : PC = PC[31: 28] RT (RIR[ 125: 0] < 2)

Aquí, el PC és reemplaçat per l' adreça de salt, No cal que es calculi l'ALU, però es pot formar en el maquinari 387 del llibre de text.

4,3,6,4. Instrucció d'accés a la memòria o instrucció R Compleció. En aquest cicle, hi ha un accés d' instrucció de càrrega La memòria i una instrucció R-format escriu el seu resultat (que apareix en ALUout al final del cicle anterior, com segueix:

MDR = Memòria[ALUout] # Carregar
Memòria [ALUout] = B # Emmagatzema

a on MDNnota el registre de dades de memòria.

S' està llegint l' asigment : The Les accions de control per a instruccions de càrrega/ característiques es discuteixen en p. 388 El llibre de text.

Per a una compleció de format R, a on

Reg[ IR[ 15: 11] = ALUout # Escriu el resultat de l' ALU per registrar el fitxer

Les dades a carregar s' han desat a la MDR de la El cicle previ i per tant està disponible per aquest cicle. La rtunit description in lists camp del format d' instrucció MIPS (Bits 20- 16) té el registre Número, que s' aplica a l' entrada del fitxer de registre, junt amb RegDst = 0 i un senyal declarat RegWrite.

S' està llegint l' asigment : La exacta La seqüència d'operacions es descriu a les p.385 del llibre de text.

Des de les seqüències anteriors, així com de les seves En el llibre de text, estem preparats per dissenyar un estat finit Controlador, tal i com es mostra en la següent secció.

4,4. Control d' estat finit

En el control de dades de cicle únic, vam dissenyar Controleu maquinari usant un conjunt de taules de veritat basant- se en senyals de control S' ha activat per a cada classe d' instruccions. No obstant això, aquest enfocament ha de ser S' ha modificat per al fabricant de dades multicicles, que té l' addicional La dimensió del temps a causa de l'execució mitjana de les instruccions. Així, el control multicicle de dades depèn del pas actual implicada en executar una instrucció, així com en el següent pas.

Hi ha dues tècniques alternatives per implementar Control multicicle de dades. Primer, a Màquina d' estat finit (FSM) o Control de l' estat finit (FSC) prediu les accions apropiades per a El pròxim pas computacional de datapath. Aquesta predicció està basada en (a) l' estat i la informació de control específica de l' actual " datapath " Les accions de pas i (b) que es fan en el següent pas. Un segon tècnica, anomenada microprogramam , usa una representació programàtica Per implementar el control, tal i com s'ha discutit a la secció 4.5. Apèndix C dels programes de text Com es tradueixen aquestes representacions en hardware.

4, 4, 1. Màquina d' estat finit

Un FSM consisteix en un conjunt d' estats amb direccionsName Això li diu al FSM com canviar els estats. Les següents característiques són important:

L' estat actual i les dades d' entrada;

Funció següent de l' estat, també anomenada el Funció de transició , que converteix les entrades a (a) un nou estat, i (b) sortides del FSM; i

Sortida, que en el cas de la path de dades multicicle, són senyals de control que són Va afirmar que el FSM està en un estat donat.

Amb l'execució, assumim que tot Les sortides no s' afirmen explícitament que estan desassemblades. A més, tots Els controls múltiples s' especifiquen explícitament si són i només si ho fan Pertany als estats actuals i següents. Un exemple simple d' un FSM Es proporciona a Apèndix B del llibre de text.

4, 2, Control d' estat finit

La FSC està dissenyada per al conjunt de dades multicicles tenint en compte els cinc passos d' execució d' instrucció donats en Secció 4.3, a dir:

  • Obtén instrucció
  • Descodificador d' instrucció i captura de dades
  • Operació ALU
  • Compleció d' instrucció d' accés de memòria o R- format
  • Compleció d' accés de memòria

Cada un d'aquests passos té un cicle, per definició de l'empat de dades multicicle. A més, cada pas desa els resultats temporals Es registra com la IR, MDR, A, B, i ALUout. Cada estat en El FSM també ocuparà un cicle en el temps, i (b) desa els resultats En un registre temporal.

Des de la discussió de la secció 4.3, observeu-ho Pass 1 i 2 són agnàtics per a cada instrucció, però Pass 3- 5 De forma diferent, depenent del format d' instrucció. Nota també que després Compleció d' una instrucció, el FSC retorna al seu estat inicial (Step 1) per obtenir una altra instrucció, tal com es mostra en la figura 4. 17.

Comencem la nostra discussió del FSC per expansió Les passes 1 i 2, on l' estat 0 (l' estat inicial) corresponen a Pas 1.

4.4.2.1. Obtén instrucció i codi. Entrada Es mostra la representació del FSM per obtenir instruccions i Descodificador. Els senyals de control s' apliquen a cada estat es mostren dins El cercle que denota un estat donat. Les vores (línies o fletxes) Entre els estats s' etiquetaran amb les condicions que s' han de complir per a la transició il·lustrada entre els estats. Patterson i Hennesey anomena el procés de ramificar-se a diferents estats S' està descodificantThe role of the transaction, in present tense , depèn de la classe d' instruccions després de l' estat 1 (p. e., Pas 2, com a llista superior).

Figura 4,18. Representació del control de l' estat finit per a la Les instruccions es poden obtenir i descodificar els estats del conjunt de dades multicicles. Els números es refereixen a les xifres del llibre de text [Pat98, MK98].

4, 2, 2. Referència de la memòria. La memòria Es mostra una part de referència del FSC a la figura 4.19. Aquí, estat 2 calcula l' adreça de memòria mitjançant l' establiment de les mxes d' entrada ALU per passar la A Registre (adreça de la base) i signes- expandits inferior 16 bits del desplaçament (s'han deixat dos bits) a l'ALU. Després del càlcul de l' adreça, memòria read/ write requereix dos estats:

Estat 3: Realitza l' accés de memòria per afirmant el senyal de transferència de Mem, posant la sortida de memòria a la MDR.

Estat 5: Activat si slaw S' usa una instrucció de magatzem, i la MemWrite s' afirma.

En ambdós estats, la memòria es veu obligada a igual a ALUout, S' està establint el senyal de control IorD = 1.

Figura 4.19. Representació del control de l' estat finit per a la Els estats de referència de memòria del conjunt de dades multicicles. Els números es refereixen a les xifres del llibre de text [Pat98, MK98].

Quan l'Estat 5 s'acaba, el control es transferirà a Estat 0. Si no, l' estat 3 completa i el camí de dades han d' acabar L' operació de càrrega, que està complert per transferir el control a Estat 4. Allà, MemtoReg = 1, RegDst = 0, i el contingut MDR són S' ha escrit al fitxer de registre. L'estat següent és l'estat 0.

4, 2,3. Execució R- format. Per implementar Instruccions de format R, FSC fa servir dos estats, una per a l' execució (Step 3) i una altra per finalitzar el format R (Step 4), per figura 4. 20. Estat 6 afirma l'ALUSrcA i estableix ALUSrcB = 00, que carrega la ALU d' A i Registres B de sortida de registre de fitxers. L' ALUop = 10 paràmetres Fa que el control ALU utilitzi les instruccions ▁functCity name (optional, probably does not need a translation) camp a Estableix els senyals de control ALU per implementar l' operació designada ALU.

L' estat 7 causa (a) el fitxer de registre a escriure (assemblador) RegWrite), (b) rdunit description in lists camp de les instruccions a tenir el número del registre de destí (sust RegDst), i (c) ALUout seleccionat com a tenir el valor que s' ha d' escriure al fitxer de registre com El resultat de l'operació ALU (per desassemblant MemtoReg).

Figura 4.20. Representació del control de l' estat finit per a la Les instruccions d' execució R-format als estats de la ruta de dades multiciclear. Els números es refereixen a les xifres del llibre de text [Pat98, MK98].

4, 2, 4.4. Control de la branca. Des de branques Completat durant el Pas 3, només es necessita un nou estat. A l' estat 8 (a) controlas que causin l'ALU per comparar els continguts de la seva A i S' estableixen els registres d' entrada B (p. e., ALUSrcA = 1, ALUSrcB = 00, ALUop = 01) i (b) el PC està escrit en condicions (per establir PCSrc = 01 i afirmació del PCWriteCond). Tingueu en compte que establir l'ALUop = 01 forces a resta, per tant només la beq Les instruccions poden S' implementarà d' aquesta manera.

(a) (b)

Figura 4.21. Representació del control d' estat finit (a) i (b) salteu els estats específics de la ruta de dades multicicle. Els números es refereixen a les xifres del llibre de text [Pat98, MK98].

4, 4, 2, 5. Salta a instrucció. És semblant a la branca, La instrucció de salt només requereix un estat (# 9) per completar- se Execució. Aquí, el PC està escrit per afirmar PCWrite. El valor L'escriptura al PC és la baixa 26 bits de la IR amb la superior 4 bits del PC, i els dos bits més baixos iguals a 00 2 . Això està fet. mitjançant l' opció PCSrc = 10 2 .

4,3. Rendiment de l' FSC i multicicle de dadespath

Es mostra el FSC composite a la figura 4. 22, que era Construir pujant per compondre figures 4.18 a 4.21.

Figura 4,22. Representació de l' estat compositiu Control de dades multicicles MIPS (MK98].

Quan s' està computant l' actuació de la mutació de dades multicicles, fem servir aquest FSM Representació per a determinar el camí crític (màximum número de S' han trobat estats) per a cada tipus d' instruccions, amb el següent Resultats:

  • Carrega: 5 estats
  • Emmagatzema: 4 estats
  • Formata instruccions ALU: 4 estats
  • Branca: 3 estats
  • Salt: 3 estats

Des que cada estat correspon a un cicle del rellotge (segons la suposició del controlador FSC a la secció 4, 4,2), tenim la següent expressió per al PCI del multicicle path de dades:

S' està llegint l' asigment : coneix dins detalla l' exemple de càlcul del PCI per al directori de dades multicicles. Començant per p.397 del llibre de text.

L' exemple de llibre de text mostra el PCI per al gcc El punt de referència és 0. 02, un estalvi d' aproximadament 20 Per cent sobre del CPI del pitjor cas (igual a 5 cicles per a tots instruccions, basant- se en la restricció de disseny de dades d' un únic cicle que totes les instruccions s' executen a la velocitat de la més lenta).

4, 4, 4.4. Implementació del control de Finte-State

El FSC es pot implementar en maquinari usant un només- lectura Memòria (ROM) o matriu de lògica programable (POSA), tal i com s' explica en Secció C.3 del llibre de text. Interfície gràfica de lògica Combinatorial implementa la funció de transició i un registre d' estat de les botigues Estat actual de la màquina (p. ex., EUA 0 a través de 9 en Desenvolupament de la secció 4.4.2). Les dades són els codis d'imatges IR, i Les sortides són les diverses senyals de control de dades (p. ex., PCSrc, ALUop, etc.)

El següent considerarem com pot ser la funció anterior Implementació usant la tècnica de microprogramam .

4,5. Control microprogramat

Mentre el control de l' estat finit pel multicicle elpath de dades era relativament fàcil de dissenyar, l' aproximació gràfica que es mostra A la secció 4, 4 està limitada als sistemes de control petits. Hem implementat Només s' han establert cinc tipus d' instruccions MIPS, però s' ha establert l' instrucció real MIPS Té més de 100 instruccions diferents. Reclune que la CSC de la secció 4. 4 han demanat 10 estats només per cinc tipus d' instruccions, i han pres el PCI Des de tres a cinc. Ara, observar que MIPS no només té 100 Les instruccions, però el CPI ha passat d'un a 20 cicles. Un sistema de control per a una instrucció realista (encara que sigui RISC) Tindria centenars o milers d'estats que no podrien ser Representant convenientment usant la tècnica gràfica de secció 4.4.

No obstant això, és possible desenvolupar un convenient tècnica del disseny del sistema de control i programació usant abstracció de l'entrenament del llenguatge de programació. Aquesta tècnica. s' ha cridat microprogramam , ajuda a fer el disseny de control més Exaltable i també ajuda a millorar la correcció si hi ha un bon programari S'ha seguit l'entrenament d'enginyeria. Utilitzant un nivell molt baix instruccions (anomenats microinstracions ) que estableixi el valor dels senyals de control de dades, un pot escriure microprogramadors que implementa el sistema de control d'un processador ((s). Per fer-ho, un Especifica:

Format de micronstracció que formallitza l' estructura i el contingut de la microinstracció camps i funcionalitats;

Sequencing Mechanisme , que determina si la següent instrucció, o s' indica per una estructura de control de la branca, s' executarà, i

Gestió d' excepció que determina Què hauria de prendre el control d' accions quan es produeix un error (p. ex., Amerit a l'aritmètica).

Considerem aquests temes, tal com segueix.

4,5.1. Format de micronstracció

Una microinstracció és una abstracció de baix nivell Control que s'utilitza per al programa per controlar el maquinari lògic. La El format de microinstracció hauria de ser simple, i ha de desestimar o desactivar Que prohibeixi la inconsistència. (Una microinstracció inconsistent requereix un Senyal de control donat per establir-se a dos valors diferents simultàniament, que és físicament impossible.)

L'aplicació de cada microntroducció hauria de ser: Per tant, feu que cada camp especifiqui un conjunt de valors no referenciats. Senyals que mai s' alineen, per tant, poden compartir el mateix En el camp. Taula 4. 5 il·lustra com s'ha adonat a MIPS, utilitzant set camps. Els primers sis camps controlen el camí de dades, mentre que el L' últim camp controla la seqüència de microinstracció (decisió que La microinstracció s' executarà a continuació).

Taula 4.5. Format de microinstracció MIPS [MK98].

En el maquinari, les microinstracions normalment es desen en Un ROM o PLA (per descripcions en addiccions B i C del llibre de text). Les microinstracions solen ser referenciades per addres seqüencials a Combinació. El procés de seqüència pot tenir una de les Els següents tres modes:

Incrementació , per la qual la l' adreça de la microintroducció actual s' incrementa a Obteniu l' adreça de la següent microinstracció. Thsi és indicat pel valor Saq en el SequencingCity name (optional, probably does not need a translation) Camp de taula 4.5.

Escorçant , a la microinstracció que Inicia l' execució de la següent instrucció MIPS. Això és S' ha implementat el valor Obtén en el SequencingCity name (optional, probably does not need a translation) En el camp.

Selecció gestionada del controlNoun, name of the user action , on segueix S' ha escollit microinstracció basant- se en l' entrada de control. Diem aquesta operació a Enviament . Això està implementat per un o més taules d' adreces (més a una taula de salts) anomenada Taules de broquetx . La implementació del maquinari S' han discutit les taules d' enviament a la secció C. 5 (Appendix C) de Un llibre de text.

En el subconjunt actual de MIPS, el multicicle Hem estat implementant les dades, necessitem dues taules d'enviaments. Un per l'Estat 1 i l'Estat 2. L' ús d' una taula d' enviament Nombre i és indicat en la microinstracció posant central i en el SequencingCity name (optional, probably does not need a translation) En el camp.

La taula 4, 6 resumeix els valors permesos per a cada camp de la microinstracció i l' efecte de cada valor.

Valors de camp de camp per a la funció del camp Camp
-- 8859- 8859- 8859- 2004
Etiqueta Qualsevol seqüència de control de cadenes, per p. 403 del llibre
Un control ALU Afegeix una operació de suma ALU
Subt ALU realitza l' operació de resta
Camp divertit d' instrucció de codi Funchc determina l' operació ALU
PC SRC1 El PC és la primera entrada ALU
Un registre de la memòria intermèdia A és la primera entrada ALU
Registre BC2 B Buffer B és la segona entrada ALU
4 La constant 4 és la segona entrada ALU (per a PC+4)
Amplia la sortida del mòdul de l' extensió de signes és la segona entrada ALU
Exshaft Sign-expand la sortida del canviant de dues bits és la segona entrada ALU
Registra el control de lectura de dos registres usant els camps rs i rt
la instrucció actual, posant dades en la memòria intermèdia A i B
Escriu ALU Escriu al fitxer de registre usant el camp rd del
Registre d' instruccions com el número de registre i el contingut
d' ALUout com a dades
Escriu l' MDR al fitxer de registre usant el camp rd del
Registre d' instruccions com el número de registre i el contingut
de la MDR com a dades
Memòria de lectura del PC usant el PC com a adreça de memòria, escrivint el
Resultat de la instrucció IR i MDR [Instituïda d' instrucció]
Llegeix la memòria de lectura ALU usant ALUout com a adreça, escriu el resultat a MDR
Escriu ALU (LU) Escriu a la memòria usant els continguts de l' ALUout com a adreça, escrivint
per a recordar les dades contingudes al registre de la memòria intermèdia B
PCWrite Control ALU escriu la sortida de l' ALU al registre del PC
ALUout-cond Si la sortida zero de l' ALU és alta, escriu el contingut de l' ALUout
al registre del PC
Salta l' adreça Escriu el PC amb l' adreça de salt des de la instrucció
Sequencing Sq escolliu la següent microinstration seqüencialment
L' obtenció ha de començar una nova instrucció MIPS
Central i central usant el ROM especificat per I (on i = 1 o 2)

A l' exercici, les microinstracions són d'entrada a un microsassemblador , que comprova les inconsistències. S' ha detectat Les inconsistències estan flags i s'han de corregir abans del maquinari Implementació.

4.5.2. Microprogramar el control de dades delpath

En aquesta secció, fem servir l'execució del codi seqüència que hem desenvolupat per al conjunt de dades multicicles al disseny El control microprogramat. Primer, observem que de vegades Una instrucció pot tenir un camp en blanc. Això és permès quan:

Un camp que controla una funcional unitat (p. ex., ALU, registre de fitxer, memòria) o causa estat informació a escriure (p. ex., ALU dest field), Quan està en blanc, implica que no s' han d' afirmar cap senyal de control.

Un camp que Només Especifica el control d' un d' entrada múltiplexer per a una unitat funcional, quan quedi en blanc, implica que la ruta de dades no importa quin valor té La sortida del mux té.

Ara podem crear el microprograma de moda a pas.

4.5.2.1. Obtén instrucció i codis, Obtén dades. Cada instrucció executa primer les instruccions, la descodifica, i Calcula tant el PC seqüencial com el PC de l' objectiu de la branca (si és aplicable). La S'aconsegueixen dues microinstracions:

Control ALU, SRC1, i SRC2 estan arranjats calculador PC+4, que està escrit a ALUout. El camp de memòria Llegeix les instruccions a l' adreça igual al PC, i desa les Les instruccions de la IR. El control PCWrite causa l'ALU Sortida (CP + 4) a escriure al PC, mentre que el Sequenc El camp indica que el control vagi a la següent microinstracció.

El camp d' etiqueta (valor = Obtén ) S' usarà per transferir el control en el camp següent de Sequencing quan s' inicia l' execució de la següent instrucció.

En la segona microinstracció, tenim el següent accions:

Control ALU, SRC1, i SRC2 estan arranjats desa el PC més el signe-expandit, desplaçat IR[ 15: 0] in ALUout. El control del registre fa que les dades referencian rsunit description in lists i rtunit description in lists Camps a situar en l' entrada ALU Registra la sortida A i B. (PCP + 4) a escriure en el PC, Mentre el camp Squencing li diu al control d'anar a l'enviament taula 1 per a la següent adreça de microntroducció.

4.5.2.2. Taules de central. Patterson i Hensey considera la taula d'enviaments com a casella declaració que utilitza el opode Taula d'enviaments i d'enviaments i a seleccionar un de N i Etiquetes diferents. Per a la taula de central 1 (i = 1, N i = 4) Tenim etiqueta Mem1unit description in lists per referència de memòria instruccions. Rformat1 per instruccions aritmètica i lògiques. Beq1 per branques condicionals, i Salt1 per incondicional Branques. Cada una d'aquestes etiquetes apunta a una microinstracció diferent seqüència que es pot pensar com una mena de subprograma. Cada microcodi La seqüència es pot considerar com a restricció d' una petita utilitat que implementa el desig És possible especificar els senyals de control del maquinari.

Aquí, hem afegit la SO2 microinstracció a il·lustra l'últim pas de les instruccions de la botiga.

Observa que aquestes deu instruccions corresponen Va desenvolupar directament als deu estats del control de l'estat finit en Secció 4.4. En màquines més complexes, el control del microprogramagram pot Componen desenes o centenars de milers de microinstracions, amb Registres especials utilitzats per a emmagatzemar dades interèdies.

4.5.3. Implementant un programa de microprogramari

És útil pensar en un microprogramat com a textual Representació d' una màquina estat limitada. D'aquesta manera, un microprogramari podria S' implementarà de manera similar al FSC que vam desenvolupar a la secció 4.4, Utilitzant un PLA per codificar la funció de seqüència i el control principal. No obstant això, sovint és útil guardar la funció de control d'un ROM, Després, implementant la funció de seqüència d'una altra manera. Normalment, el seqüenciador utilitza un increment per triar el següent Les instruccions de control. Aquí, l' emmagatzematge microcoded determina el Valors de línies de control de datapath i la tècnica de seleccionar la El proper estat. Seleccioneu la lògica que conté taules d'enviaments (en ROMs o PLAs) i determina la següent microinstracció a executar, tot i que sota control de l' adreça, seleccioneu les sortides.

Aquesta tècnica és preferida, ja que substitueix un Un comptador senzill per a la lògica de control d' adreces més complexa, que és Sobretot eficient si les microinstracions tenen petites branques. Usant un ROM, es pot desar el microcode en la seva pròpia memòria i és adreçat al taulell del microprogramari, similar al programa regular Les instruccions són adreçades per un seqüenciador d' instruccions.

És interessant notar que així és com La microprogramació va començar, fent que el ROM i el taulell Molt ràpid. Això representa un gran avenç sobre l' ús de la més lenta La memòria per a l'emmagatzematge microprogramari. Avui, però, avenços en la memòria cau La tecnologia fa memòria d'un microprogramari separat una obsoleta Desenvolupament, com més fàcil guardar el microprogramagrama en memòria principal i pàgines en les parts que es necessiten al cau, on s' obté la recuperació És ràpid i no fa servir hardware extra.

4.5.4. Gestió d' excepció

Si el disseny de control no era prou difícil, també tenim per tractar amb el problema molt difícil d' implementar excepcions i interromp, que es defineix com segueix:

An excepció és un esdeveniment aomalous Aristant des de dins del processador, com l'aritmètica desmesa.

An interromp és un esdeveniment que Provoca un canvi inesperat en el flux de control. Les interrupcions són s' assumeix que s' ha d' originar fora del processador, per exemple, un I/O Sol·licito.

En aquesta discussió, seguim Patterson i La convenció de Hennesey, per la simplicitat: Una interrupció és un recurs extern Ha causat l'esdeveniment, i una excepció d'un dels altres esdeveniments que causen control de flux inesperat en un programa. Una comparació interessant de Aquesta terminologia per diferents processadors i fabricants es dóna A pp. 410-411 del llibre de text.

En aquesta secció cal discutir el disseny de control Manega dos tipus d' excepcions: (1) una instrucció definida, i (2) Amerit a l'aritmètica. Aquestes excepcions són alemanyes a la llengua petita (5). Les instruccions) de la implementació de la qual hem estat explorant fins ara.

4.5.4.1. Manipulació bàsica del mecnisme. Després d'haver detectat una excepció, el circuit de control del processador ha de Es pot desar l' adreça en el comptador d' excepció (EPC) de la instrucció que va causar l' excepció, llavors (2) Control de transferència a la Sistema operatiu (OS) en una adreça especificada. El segon pas En general, s' invoca a Gestor d' excepció , que és una rutina que O (a) ajuda al programa a recuperar-se de l'excepció o (b) problemes a Missatge d' error, llavors intenta finalitzar el programa d' una ordre De moda.

Si l' execució del programa és continuar després de la L' excepció és detectada i gestionada, llavors el registre de l'ECP ajuda determinar a on reiniciar el programa. Per exemple, la Les instruccions d' excepció es poden repetir a través d' una manera que ho faci No causa una excepció. Alternativament, la següent instrucció pot ser S' ha executat (en MIPS, aquesta adreça d' instrucció és $epc + 4).

Per a que l'OSM es manegi l'excepció, un de dos. Les tècniques s'utilitzen. Primer, la màquina pot tenir Causa i CPCLanguage Registres, que contenen codis que representen respectivament la causa de l'excepció i l'adreça de l'exagerat Les instruccions. Un segon mètode utilitzat interuptures vectorials , on l' adreça a la que es transferirà el control a continuació de l' excepció és decidit per la causa de l'excepció. Si les interseccions vectorials són No s' usa, el control és referenciat només a una adreça, independentment de Per causa. Llavors, la causa s'utilitza per determinar quina acció té l'excepció S'hauria de prendre la rutina.

4.5.4.2. Implementació del maquinari. L' MIPS utilitza el Aquest darrer mètode, anomenat Anotacions no gravades@ info: whatsthis . Per a donar suport a això És possible que a la ruta de dades que hem estat desenvolupant en això Secció, hem d' afegir els següents dos registres:

CPCLanguage : registre de 32 bits manté el adreça de la instrucció d' excepció, i

Causa : El registre de 32 bits conté un Codi binari que descriu la causa o tipus d' excepció.

Calen dos senyals de control addicionals: ECPWrite i CausaWrite , que escriu la Informació apropiada a la CPCLanguage i Causa Els registres. També es requereix en aquesta implementació particular un senyal d' 1 bit a estableix el LSB de Causa per ser 0 per una instrucció no definida, o 1 Per l'aritmètica desbordada. A més a més, l'ús és una adreça A E això apunta a la gestió d' excepció a la qual és el control transferida. A MIPS, assumim que A E = mil· l0000 16 .

En el camí anterior de dades desenvolupat a través de la secció 4, 4, l' entrada del PC s' agafa d' un myx de quatre sentit que té tres entrades Definit, que són: PC+4, BETA, i JT. Sense afegir línies de control, Podem afegir una quarta entrada possible al PC, a saber A E , que està escrit al PC per establir el " source " del PC = 11. 2 .

Malauradament, no podem simplement escriure el PC al CPCP, atès que el PC s' incrementarà en la cerca d' instrucció (Step 1 de la path de dades multicicle) en comptes d' execució d' instrucció (Step 3) L'excepció de fet succeeix. Així, quan es detecta una excepció, L' ALU ha de restar 4 del PC i el contingut del registre de l' ALUout S'ha d'escriure al PCP. És afortunat que això no requereixi. Senyals de control addicionals o línies en aquest entorn de dades Disseny, atès que 4 ja és una entrada seleccionable ALU (emprada per S' està augmentant el PC durant l' obtenció d' instrucció, i està seleccionat via Senyal de control ALUsrcB).

Implementació del maquinari per a les modificacions delpath de dades Cal implementar la gestió d' excepció en el cas simple il· lustrat En aquesta secció es mostra a la Figura 4. 23. En els diagrames d' estats finits de Figura 4,24 i 4.25, veiem que cada un dels dos anteriors Es poden gestionar excepcions utilitzant un estat cada un. Per cada excepció type, les accions d' estat són: (1) establerts Causa S' està registrantThe role of the transaction, in present tense contingut per reflectir el tipus d' excepció, (2) calculada i desa el PC- 4 en ECP per a fer avaialitzar l' adreça de retorn, i (3) escriu l' adreça Acard symbol E Al PC per tal que el control es pugui transferir a l' excepció Gestor. Per actualitzar el diagrama de control de l' estat finit (FSC) de la figura 4.22, vam sumar els dos estats mostrats a la figura 4.24.

Figura 4,23. Representació de la ruta de dades composite Arquitectura i control per a la companyia de dades multicicles MIPS, amb La disposició de la gestió d' excepció [MK98].

Fins ara, hem discutit excepcions i com fer-ho Gestioneu-los, i heu il·lustrat els requeriments del funcionament del maquinari a la ruta de dades multicicles desenvolupat en aquesta secció. En el@ info: whatsthis A continuació, completem aquesta discussió amb una visió general de la Passos necessaris en detecció d'excepció.

4.5.4.3. Detecció d' excepció. Cada un dels dos Els tipus d' excepció possibles en el nostre exemple MIPS multiciclet de dades és S' ha detectat diferent, com segueix:

Instrucció no definida : Estat finit El control s' ha de canviar per definir el valor del següent estat com a 10 (l' estat onze del nostre control FSM) per a tots els tipus d' operació A part dels cinc que estan permesos (p.E., lw, crow, suplicar, saltar, i R- format). En el diagrama de figures FSM 425, aquest és Mostra com a altra .

Desbordament Aritmètica : Recall que a Es pot dissenyar ALU per incloure la lògica de detecció sobres amb una S' ha cridat la sortida de senyal de l' ALU Arseita , que és afirmat si s' ha detectat el punt de sobre. Això s' utilitza per especificar el El pròxim estat per l'Estat 7 en el FSM de la figura 4.25.

Figura 4,24. Representació dels models de l' estat finit Dos tipus d' excepcions a la ruta de dades MIPS multicicles [MK98].

Figura 4.25. Representació de l' estat compositiu Control de dades MIPS multicicles, incloent la gestió d' excepció [MK98].

Com a resultat d'aquestes modificacions, figura 4.25 Representa una especificació completa de control per al nostre path de dades MIPS, incloent mecanismes per gestionar dos dispositius Tipus d' excepcions. El nostre objectiu de disseny segueix mantenint el control. lògica petita, ràpid i precís.

Per desgràcia, la FSC a la figura 4.25 Té defectes. Per exemple, el circuit de detecció de punt de sobres fa No causa que l' operació ALU es torni enrere o es reiniciï. Més aviat. El resultat de l' ALU apareix en el registre de l'ALUout, si no n' hi ha o no Una excepció. Aquest contradiu aquest MIPS ISA, que especifica que un Les instruccions no haurien de tenir efecte a la ruta de dades si causa un A excepció. A la pràctica, alguns tipus d' excepcions requereixen el procés Gira enrere i això incrementa molt la complexitat del sistema de control, També ha disminuït el rendiment.

4.5.3. Resum

Hem desenvolupat un entorn de dades multicicle i centrat quant a (a) anàlisi de rendiment i disseny del sistema de control (b) i Implementació. Es va veure la microprogramaminació per ser especialment útil Una manera de dissenyar sistemes de control. Malauradament, n'hi ha dos Isumpcions sobre microprogramam que són potencialment perillosos Dissenyadors d'ordinadors o enginyers, que es tracten de la següent manera.

Primer, s'ha assumit que el microcode és un Una manera més ràpida d' implementar una instrucció que una seqüència de més simple instruccions. Aquesta és una instància d'un conflicte en filosofia de disseny Això està arrelat en CISC contra els intercanvis de RISC. En el passat (CISC) ▁practice), el microcode es va emmagatzemar en un record local molt ràpid, així que Les seqüències de microcode codi es poden recuperar ràpidament. Això ho va fer mirar. com si el microcode s'hagués executat molt ràpid, quan, de fet, s'utilitzava el El mateix camí de dades com a instruccions d'alt nivell - només la memòria del microprogramari El rendiment era més ràpid. Avui, amb la memòria cau ràpida disponible, El rendiment del microcode és el mateix que l' execució de la CPU instruccions senzilles. L'excepció és una arquitectura amb pocs Registres generals (com ara CISC), en el qual el microcodi podria no ser S' ha intercanviat i fora del fitxer de registre molt eficientment.

Un altre desavantatge d' usar un micrococoditName L' execució és que el codi (i per tant la instrucció establerta) S' ha de seleccionar i establir- se abans que es faci una nova arquitectura disponible. Aquest codi no es pot canviar fins que s' allibera un nou model. En canvi, s'apropa el programari a controlar el disseny del sistema molt més flexible, ja que les instruccions (ww, simple) resideixen en Memòria ràpida (p. ex., cau) i es pot canviar a voluntat. A la mateixa El pitjor, un compilador nou o una revisió de muntar pot ser requerit, però que és pràctica comú avui en dia, i molt menys car que el maquinari Revisió.

La segona suposició enganyosa sobre la microcodi és que si tens una habitació extra a la botiga de control després d'un El sistema de control del processador està dissenyat, permet noves instruccions que pugui S'ha d'afegir de franc. Això no és cert, pel típic Recepció de l' interès Compatibilitat cap amunt . Això és, qualsevol futur Els models de l' arquitectura especificats han d' incloure les instruccions "free" això s' ha afegit després del disseny del processador inicial, independentment de si o no l'espai d'emmagatzematge de control podria ser una prima en el futur Les revisions de l'arquitectura.

Això conclou la nostra discussió de les dades. processadors, control i excepcions. Ens concentrem en un altre Mètode d' augment de l' rendiment del conjunt de dades multicicles, s' ha cridat paral· lelisme .

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +