Diseño de un procesador multiciclo.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Diseño de un procesador multiciclo."

Transcripción

1 Capítulo Diseño de un procesador multiciclo Reutilización de los recursos y tiempos de ejecución de acuerdo a la instrucción. En el modelo del procesador monociclo el período del reloj se ajusta con la ruta crítica combinacional, que es la establecida por la instrucción más lenta en completar sus transferencias. En el ejemplo que se desarrolla, la instrucción load word fija el período del reloj. Sin embargo debe tenerse en cuenta que el funcionamiento de la memoria se ha simplificado, ya que es posible que ésta no pueda efectuar sus funciones en un ciclo tan corto, como se verá más adelante; si lo que se desea leer no está en la memoria caché, debe buscarse en la caché secundaria, lo cual puede tomar dos a tres veces el tiempo que se emplea al operar con la caché primaria. Y si se produce un fallo de la secundaria, debe accesarse a la memoria principal, lo que tiene un costo de 20 a 50 ciclos. También si existen instrucciones que demoren demasiado tiempo (las de punto flotante, por ejemplo), la frecuencia del reloj debe ajustarse al tiempo de ejecución de la que más tarda en realizarse. Por otra parte los recursos pueden emplearse sólo una vez por cada ciclo de reloj, lo que lleva a duplicar algunas unidades funcionales (por ejemplo: sumadores, memoria). Estas razones conducen a pensar en permitir que las instrucciones puedan ser realizadas con varios ciclos de reloj; dependiendo de la complejidad de éstas, algunas podrán ser realizadas en pocos ciclos, otras necesitarán más ciclos. Es decir, aquéllas que terminan sus transferencias en menos tiempo, ocuparán menos ciclos de reloj (y se realizan en menos tiempo). Lo anterior permite que las instrucciones tengan tiempos de ejecución diferentes, ya que emplean diferente número de ciclos de reloj; y también permite realizar diseños de menor costo, al posibilitar el compartir los recursos y reutilizarlos durante la ejecución de una instrucción. Un recurso puede ser empleado más de una vez en la realización de una instrucción, siempre que se use en diferentes ciclos del reloj. En el modelo multiciclo que se describe, cada paso o etapa de ejecución debe emplear un ciclo de reloj.

2 Reg A Reg AdicionalB Reg B Reg A Reg B 2 Estructuras de Computadores Digitales Uso de registros para separar etapas. Los datos que serán empleados por las siguientes instrucciones deben ser almacenados en registros o en la memoria. Los datos que se emplearán en los siguientes ciclos del reloj, al ejecutar una determinada instrucción deben ser almacenados en registros adicionales. La ubicación de estos registros adicionales, dependerá de si el retardo de propagación de la unidad permite ajustarse al período del reloj, y por otra parte de que el dato sea ocupado en los próximos ciclos de ejecución de la misma instrucción. También la necesidad de registros adicionales dependerá de si se desea compartir el recurso. Por ejemplo si se desea tener sólo una memoria, tanto para datos como para instrucciones, se requieren dos registros adicionales que capturen los datos leídos desde la memoria; uno para guardar la instrucción, otro para registrar la lectura de la memoria en la instrucción load word. Un esquema conceptual de la máquina monociclo, muestra una unidad combinacional con gran retardo de propagación, ubicada entre dos unidades de almacenamiento (memoria o registros): T1 = tr + tp + ts + tskew > = Tclk1 Tclk1 Figura Esquema máquina monociclo. Si se pudiera dividir la unidad combinacional, en dos partes que supondremos con iguales tiempos de propagación, se tendrá el esquema siguiente: T2 = T1/2 Etapa A T2 = T1/2 Etapa B Tclk2=Tclk1/2 Figura División unidad combinacional. Se realiza el mismo trabajo, que en el esquema anterior, pero en dos ciclos más rápidos en lugar de uno más lento.

3 Diseño procesador multiciclo 3 Se agrega el tiempo de setup (ts) y de clock hasta la salida (tf), con respecto al caso anterior. Pero en un mismo ciclo de reloj, pueden ocuparse simultáneamente ambas etapas, esto es lo que permite compartir un recurso; ya que se lo puede usar en diferentes ciclos de ejecución de una misma instrucción. La ubicación de los registros que definen etapas o ciclos deben ser relativamente equilibrados, ya que esto tiende a minimizar la duración del ciclo del reloj. Ya vimos que en la especificación de las transferencias físicas del modelo monociclo, podían agruparse las transferencias según la unidad en que se realizaban. Si lo que se desea es que cada unidad opere en un ciclo de reloj, el análisis de las transferencias realizadas en cada unidad permite identificar los registros adicionales necesarios. Debe notarse que en el caso monociclo todas las transferencias, que están separadas en líneas, se están ejecutando con la información fluyendo a través de las etapas (y no hay registros intermedios) mediante la red de cables o buses(pero los cables no almacenan la información, salvo mientras dure la propagación a través de éstos). Se emplean los registros adicionales IR(registro de Instrucción), A y B (salidas de la Unidad de Registros), S (salida de Unidad de Operaciones) y M (Registro con el dato leído de la memoria. Memory Data Register). Estos registros se escriben en cada ciclo de reloj y no requieren control adicional, excepto IR que requiere mantener la información para la unidad de registros, la de ejecución y control. Sin embargo se han dibujado en el diagrama las señales de habilitación de escritura de registros adicionales, y también se incorporan las señales que los controlan en las secuencias correspondientes Etapas en la ejecución de instrucciones. Entonces se tienen cinco etapas para la ejecución de instrucciones(no todas las intrucciones emplean todas las etapas): 1. Búsqueda de la Instrucción. Lectura de Memoria de Instrucciones y cálculo de dirección de próxima instrucción. 2. Decodificación de la Instrucción y lectura de registros. 3. Ejecución de operaciones con formato R y cálculo de la dirección efectiva de Memoria. 4. Lectura de Memoria de Datos o Escritura en Memoria de Datos. 5. Escritura en Registros. Pueden rescribirse las transferencias empleadas en el diseño del procesador monociclo, pero ahora cada línea representa un ciclo diferente de reloj. Por esta razón los grupos de micro operaciones que se realizan juntas en un ciclo de reloj, se separan por comas y el grupo está terminado en un punto y coma. El término de instrucción se marca con un punto. El período del reloj debe ajustarse a la duración de la etapa más lenta, de este modo en un ciclo de reloj pueden realizarse todas las acciones y transferencias de cada etapa. La activación de las señales que controlan las transferencias deben efectuarse asociadas a diferentes ciclos del reloj. Para lograr esto es preciso modelar la unidad de control como una máquina secuencial de estados finitos.

4 4 Estructuras de Computadores Digitales En cada canto activo del reloj se pasa a un estado diferente (se captura el estado en los registros), y en cada estado pueden activarse las señales de control que se requieran (salidas de redes combinacionales alimentadas por los estados de los flip-flops de la unidad de control). Es decir las salidas de esta máquina secuencial deben estar asociadas al estado (modelo de Moore). La ejecución de cada instrucción puede visualizarse como un recorrido en el diagrama de estados; algunas instrucciones se ejecutarán pasando por pocos estados, otras tendrán recorridos más largos. El número de estados por los que pasa una instrucción son los ciclos de reloj que demora en realizarse, y esto se mide en CPI (ciclos por instrucción). Podría ajustarse el período del reloj de acuerdo al tiempo de la etapa más rápida. Esto implica que el tiempo de las etapas será ahora un múltiplo de la etapa más rápida, lo cual aumenta el número de estados de la unidad de control, y complica su diseño. El siguiente diagrama muestra los registros que deben agregarse para ejecutar instrucciones con un número diferente de ciclos de reloj. Se muestran las señales de control en cada etapa. Se ha agregado el habilitamiento de escritura del registro de instrucción IR y de los registros adicionales A, B, S y M. npc_sel WE PC WE IR RegDst Unidad de Control WE B RegWr WE A AluSrc WE S ExtOp AluCtr MemRd WE MemWr M MemtoReg COp+ Funct 2 Equal Unidad de Instrucción rs rt rd IR busw Unidad Registros A B Unidad de Operaciones S Addr 0 Inm16 Din Memoria Datos M 1 Reloj Figura Registros procesador multiciclo.

5 Diseño procesador multiciclo 5 Notar que la última etapa, la que escribe en los registros, hace fluir los datos hacia atrás. Por esta razón se denomina a esta etapa post escritura (write-back) Transferencias físicas. A continuación se muestran las transferencias físicas para ejecutar las transferencias lógicas que definen cada una de las instrucciones del repertorio. Los grupos de micro operaciones que se realizan juntas en un ciclo de reloj, se separan por comas y el grupo está terminado en un punto y coma. El término de instrucción se marca con un punto. ADD: R[rd] R[rs] + R[rt]; PC PC + 4 IR = MemInst[PC], PC = PC+4; A=R[rs], B=R[rt]; S = add(a, B); R[rd] = S. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 IR = MemInst[PC], PC = PC+4; A=R[rs], B=R[rt]; S = sub(a, B); R[rd] = S. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC PC + 4 IR = MemInst[PC], PC = PC+4; A=R[rs], B=R[rt]; S = slt(a, B); R[rd] = S. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. ORI: R[rt] R[rs] + zero_ext(inm16); PC PC + 4 IR = MemInst[PC], PC=PC+4; A = R[rs]; S = or(a, zero_ext(inm16) ); R[rt] = S. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. Las tres instrucciones anteriores no emplean la etapa de memoria. El ORI no requiere escribir en el registro B.

6 6 Estructuras de Computadores Digitales LOAD: R[rt] MEM[ R[rs] + sign_ext(inm16)]; PC PC + 4 IR = MemInst[PC], PC=PC+4; A = R[rs]; S = add( A, sign_ext(inm16)); M = MemDat[S]; R[rt] = M. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] R[rt]; PC PC + 4 IR=MemInst[PC], PC=PC+4; A=R[rs], B=R[rt]; S = add( A, sign_ext(inm16)); MemDat[S] = B. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. La instrucción STORE no utiliza el arreglo de registros para escritura. Están permanentemente cableadas las conexiones del registro B en la entrada de datos Din de la memoria; y de la salida S de la ALU, en el bus Add de direcciones de la memoria de datos. BEQ: if ( R[rs] == R[rt] ) PC (PC +4) + sign_ext(inm16)*4 else PC PC + 4 IR = MemInst[PC], PC=PC+4; A = R[rs], B = R[rt]; if (Equal) PC = PC + sign_ext(inm16)*4. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Instrucción. BEQ no ocupa las etapas de Memoria de Datos ni escritura en arreglo de Registros. Notar que en el primer ciclo se escribe en PC, la dirección de la próxima instrucción. En el tercer ciclo, puede emplearse dicho valor para calcular la dirección de bifurcación relativa a PC, lo cual permite compartir el sumador de la unidad de instrucción. Esto implica un cambio de la unidad de instrucción, que se muestra más adelante. J UMP: PC (PC +4)&0xF add_26 *4 IR = MemInst[PC], PC=PC+4; PC = (PC)&0xF add_26 *4. Unidad Instrucción. Unidad Instrucción. Se muestra la unidad de Instrucción modificada, se agrega un mux y se comparte el sumador, empleándolo dos veces en la realización de las instrucciones beq y jump(pero en ciclos diferentes de reloj): La necesidad del registro IR, se debe a que durante el primer ciclo se calcula la dirección de la próxima instrucción y se lo escribe en el registro PC. Al cambiar éste, cambia el bus de direcciones de la memoria de instrucciones, esto requiere almacenar la instrucción para tener los campos disponibles en el resto de la ejecución.

7 IR PC Diseño procesador multiciclo 7 WE PC WE IR 4 SigExt*4 Inm "1" Rd Addr Memoria Instrucciones COp Funct Rs Rt Rd PC[31..28] add_ Inm16 Figura Unidad de Instrucción. Procesador multiciclo. En caso de no escribir en PC hasta el término de la ejecución de la instrucción, se debe mantener la estructura de la unidad de instrucciones (que requiere dos sumadores) del procesador monociclo, y mantener las señales de control de la memoria de instrucciones en los siguientes ciclos que requieran leer campos de la instrucción. De esta forma podría no emplearse el registro IR. Si se comparte la memoria para datos e instrucciones, el registro IR es indispensable, ya que las instrucciones load word y store word, cambian el bus de direcciones de la memoria. Si no se cambian los contenidos de rd, rs, y rt, no se requieren los registros A y B. Además esto implica sostener los controles RegDst y RegWr en los ciclos en que se requiera mantener estables los contenidos del busa y busb. Sin embargo si A y B están presentes, se simplifica el diseño de la unidad de control; sólo es necesario activar los habilitamientos de escritura de A y B en el segundo ciclo. No es necesario activarlos en los ciclos que siguen, pues ya están registrados los contenidos de los buses A y B en dichos registros. Similar razonamiento puede emplearse para detectar la necesidad del registro S. Si la unidad de operaciones no se utiliza con diferentes operandos en diferentes ciclos de la ejecución de una misma instrucción (es decir si no se la comparte) no se requiere el registro S; pero esto implica sostener las señales de control a esta unidad en ciclos subsecuentes que requieran una salida estable de AluOut.

8 8 Estructuras de Computadores Digitales Señales de control. Se describen a continuación, las señales de control que activan las transferencias físicas. El primer ciclo es común a todas las instrucciones. En él se lee la instrucción que se ejecutará y se la almacena en IR, en PC se guarda la dirección de la próxima instrucción. A este ciclo se lo denomina de búsqueda de instrucción (fetch). Después de este ciclo, los campos de la instrucción quedan disponibles en las salidas de IR. ADD: R[rd] R[rs] + R[rt]; PC PC + 4 npc_sel = +4, WE PC, WE IR ; WE A, WE B ; AluSrc = "busb", AluCtr = add ; WE S ; RegDst = "rd", Memtoreg="alu", RegWr. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. En el segundo ciclo de ADD y SUB, se guardan en A y B los operandos de la instrucción, una vez que han sido leídos del arreglo de registros. Durante el ciclo se activan las habilitaciones de escritura, y sólo en el canto sincronizante del reloj se registran los valores. En el tercer ciclo de ADD y SUB, se almacena en S, el resultado de la operación. En el cuarto ciclo de ADD y SUB se escribe en el registro destino el resultado de la operación que fue salvado en el registro S, en el ciclo anterior. Ambas operaciones requieren cuatro ciclos de reloj para completarse. SUB: R[rd] R[rs] R[rt]; PC PC + 4 npc_sel = +4, WE PC, WE IR ; WE A, WE B ; AluSrc = "busb", AluCtr = sub, WE S ; RegDst = "rd", Memtoreg="alu", RegWr. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC PC + 4 npc_sel = +4, WE PC, WE IR ; WE A, WE B ; AluSrc = "busb", AluCtr = slt, WE S ; RegDst = "rd", Memtoreg="alu", RegWr. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura.

9 Diseño procesador multiciclo 9 ORI: R[rt] R[rs] + zero_ext(inm16); PC PC + 4 npc_sel = +4, WE PC, WE IR ; Unidad Instrucción. WE A ; Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = zero, AluCtr = ori,we S ; Unidad Operaciones. RegDst = "rt", Memtoreg="alu", RegWr. Unidad Registros. Escritura. En el segundo ciclo de ORI se escribe en A el contenido del operando especificado en el registro Rs. En el tercer ciclo de ORI se escribe en S, el resultado del or del operando en registro con el operando inmediato, extendido sin signo. En el cuarto ciclo de ORI se escribe en el registro destino (rt) el valor guardado en S, en el ciclo anterior. La operación ORI requiere cuatro ciclos para completar sus transferencias físicas. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm16)]; PC PC + 4 npc_sel = +4, WE PC, WE IR ; Unidad Instrucción. WE A ; Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; Unidad Operaciones. MemRd, WE M ; Unidad Memoria Datos. RegDst = "rt", Memtoreg = "mem", RegWr. Unidad Registros. Escritura. En el segundo ciclo de LOAD se escribe en A el contenido del operando especificado en el registro base Rs. En el tercer ciclo de LOAD se escribe en S la dirección efectiva de la celda de la memoria que se leerá, que es el resultado de la suma del operando en registro base con el desplazamiento inmediato, extendido con signo. En el cuarto ciclo de LOAD se lee la memoria de datos y se registra la lectura en M. En el quinto ciclo de LOAD se escribe en el registro destino(rt) el valor guardado en M, en el ciclo anterior. La operación LOAD requiere cinco ciclos para completar sus transferencias físicas. STORE: MEM[ R[rs] + sign_ext(inm16)] R[rt]; PC PC + 4 npc_sel = +4, WE PC, WE IR ; Unidad Instrucción. WE A, WE B ; Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; Unidad Operaciones. MemWr. Unidad Memoria Datos.

10 10 Estructuras de Computadores Digitales En el segundo ciclo de STORE se escribe en A el contenido del operando especificado en el registro base Rs. Y en B se almacena el contenido del registro rt, que será escrito en la memoria. En el tercer ciclo de STORE se escribe en S la dirección efectiva de la celda de la memoria que se escribirá, que es el resultado de la suma del operando en registro base con el desplazamiento inmediato, extendido con signo. En el cuarto ciclo de STORE se escribe en la memoria de datos en la dirección establecida por S(en el ciclo anterior) el valor que ya se tiene en B, desde dos ciclos antes. La operación STORE requiere cuatro ciclos para completar sus transferencias físicas. BEQ: if ( R[rs] == R[rt] ) PC (PC +4)+ sign_ext(inm16)*4 else PC PC + 4 npc_sel = +4, WE PC, WE IR ; WE A, WE B ; if (Equal) { npc_sel = Br, WE PC }. Unidad Instrucción. Unidad Registros. Lectura. Unidad Instrucción. En el segundo ciclo de BEQ se leen los registros y se determina el valor de la señal Equal. En el tercer ciclo de BEQ, si debe realizarse la bifurcación, se sobreescribe PC; en caso contrario, no se cambia el valor de PC ya escrito en el primer ciclo. La instrucción BEQ tiene un CPI igual a tres. Utiliza la unidad de instrucción dos veces en la ejecución. J: PC (PC +4)&0xF add_26 *4 npc_sel = +4, WE PC, WE IR ; npc_sel = Jmp, WE PC. Unidad Instrucción. Unidad Instrucción. En el segundo ciclo del salto incondicional, se sobreescribe PC con la dirección de salto. Se ocupa dos veces, en ciclos diferentes de reloj, la unidad de instrucción. Y tiene CPI = Comportamiento del procesador multiciclo. Si definimos, en general: TE = Tiempo de ejecución de un programa de prueba. C = Comportamiento Procesador = 1/ TE (a mayor tiempo, peor comportamiento) NI = Número de instrucciones del programa de prueba. CPI = Ciclos de reloj por instrucción. (será diferente de uno en caso multiciclo) PC = Período del reloj. Se tiene que: TE = NI * CPI * PC Para el procesador monociclo con un período fijo de reloj, se tiene: TE(monociclo) = NI*1*PCmono

11 Diseño procesador multiciclo 11 Se asume que el programa de prueba está constituido por la siguiente mezcla: 25% de cargas, 11% de almacenamientos, 30% de sumas, 9% de restas, 4% de or inmediatos, 15% de bifurcaciones y 6% de saltos. Se tendrá ahora: TE(multiciclo) = NI (0,25*5+0,11*4+0,30*4+0,09*4+0,04*4+0,15*3+0,06*2)*PCmulticiclo =NI*3,98*PCmulticiclo Puede considerarse que el valor promedio de CPI para la mezcla es de 3,98. Si la subdivisión en etapas, se realiza de tal modo que éstas requieran igual tiempo, podría modelarse cualitativamente que el período del reloj, en el caso monociclo, es cinco veces mayor que el requerido por el procesador multiciclo. La elección de tiempos iguales para las etapas tiende a minimizar el período del reloj requerido. La comparación: C(multiciclo)/ C(monociclo) = TE(monociclo) /TE(multiciclo) = PCmono/ (3,98*PCmulticiclo) = 5/3,98 = 1,26. indica que el procesador multiciclo es 1,26 veces más rápido que el monociclo. No apreciándose ventajas significativas en el aumento de velocidad, mayormente debido a que el repertorio elegido no contiene instrucciones complejas. La comparación anterior no refleja bien las bondades del diseño multiciclo; en el caso del diseño del repertorio completo existen alrededor de 100 instrucciones y algunas de ellas demandan hasta 20 ciclos de reloj. En este caso el numerador aumentaría a 20 (monociclo) y el CPI promedio (multiciclo) no subiría apreciablemente si las instrucciones largas son poco frecuentes Alcances de compartir recursos Compartir memoria. En la elección realizada para el camino de datos no se comparten demasiados recursos, que es otra poderosa ventaja del esquema de diseño multiciclo. Puede tenerse sólo una unidad aritmética y compartirla para las operaciones de las unidades de instrucción y operación, también puede compartirse la memoria de instrucciones y de datos; también puede obtenerse la condición de igualdad utilizando la misma unidad aritmética. Este desarrollo es el que efectúa el texto guía, en él puede verse que se ahorran recursos sin disminuir la velocidad de ejecución. A continuación se muestra una arquitectura que comparte la memoria de datos con la de instrucciones. Para esto es necesario modificar la unidad de instrucción, sacando de ésta la memoria de instrucciones.

12 PC 12 Estructuras de Computadores Digitales WE PC +4 SigExt*4 Inm PC[31..28] add_ Figura Unidad de Instrucción. Sin memoria de Instrucciones. Se ha agregado un mux controlado por MemCtr, que permite leer la dirección apuntada por PC, que contiene la instrucción actual, y grabarla en IR; o bien leer la dirección efectiva de la memoria apuntada por S, y grabar el dato en M. El compartir el recurso, no cambia la velocidad de ejecución de las instrucciones. Se ha sacado de la Unidad de Instrucción la memoria de programa, y se muestra que a esta unidad ingresa el bus IR.

13 Diseño procesador multiciclo 13 WE PC MemWr Unidad de Control MemRd npc_sel MemCtr WE M MemtoReg RegDst RegWr WE IR ExtOp AluSrc AluCtr Cop Funct Equal IR Unidad de Instrucción 0 1 Addr Memoria IR rs rt rd 1 0 Unidad Registros A B Unidad de Operaciones S Inm16 Din M Reloj Figura Procesador multiciclo. Se comparte la memoria. Se ilustra la descripción de las transferencias físicas con la instrucción load word: LOAD: R[rt] MEM[ R[rs] + sign_ext(inm16)]; PC PC + 4 IR = M[PC], PC=PC+4; A = R[rs]; S = add( A, signext(inm16)); M = M[S]; R[rt] = M. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. Las secuencias de control para la instrucción store word:

14 PC 14 Estructuras de Computadores Digitales STORE: MEM[ R[rs] + sign_ext(inm16)] R[rt]; PC PC + 4 npc_sel = +4, WE PC, WE IR, MenCtr= Instrucciones ; WE A ; WE B ; AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; MemWr, MenCtr= Datos Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos Compartiendo la ALU. A continuación se muestra una arquitectura que además de compartir la memoria comparte la unidad aritmética. Para esto es necesario modificar la unidad de instrucción, sacando de ésta el sumador. npc_sel WE PC AluOut S jump PC[31..28] add_26 Figura Unidad de Instrucción, para compartir la Unidad Artitmética. Nótese que se han simplificado los recursos que emplea la unidad de instrucción. Sólo queda el circuito que forma la dirección de salto: jump = PC &0xF add_26 *4 La formación de la dirección de salto requiere que el valor que debe estar estar almacenado en PC, sea la dirección siguiente a la instrucción que está en ejecución(la que está almacenada en IR). El multiplexor controlado por npc_sel puede ser alimentado por la salida de la ALU (para formar PC+4, como se verá luego) y desde el registro S(para formar la dirección de salto en caso de bifurcación). Para compartir la ALU, se requiere modificar la Unidad de Operaciones. Permitiendo ingresar la salida del registro PC o el busa en el primer operando. También deben agregarse las entradas +4 y la dirección de bifurcación, como posibles segundos operandos.

15 Diseño procesador multiciclo 15 También se comparte la unidad extensora. Tomando el operando de 32 bits(op32) y generando, por reordenamiento de las señales del bus, la nueva señal: branch = sign_ext(inm16)*4 Equal AluSrcA ExtOp AluSrcB AluCtr PC 1 busa Igual 0 busb + 4 branch AluOut Inm16 Extensor Op32 3 Figura Unidad de Operaciones, para compartir la ALU. Con estas modificaciones, las transferencias físicas, pueden expresarse, según: ADD: R[rd] R[rs] + R[rt]; PC PC + 4 IR = M[PC], PC = add(pc,+4); A=R[rs], B=R[rt]; S = add(a, B); R[rd] = S. Unidad Instrucción, Operaciones. Unidad Registros, Lectura. Unidad Operaciones. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 IR = M[PC], PC = add(pc,+4); A=R[rs], B=R[rt]; S = sub(a, B); R[rd] = S. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura.

16 16 Estructuras de Computadores Digitales SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC PC + 4 IR = M[PC], PC = add(pc, +4); A=R[rs], B=R[rt]; S = slt(a, B); R[rd] = S. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. ORI: R[rt] R[rs] + zero_ext(inm16); PC PC + 4 IR = M[PC], PC = add(pc, +4); A = R[rs]; S = or(a, zero_ext(inm16) ); R[rt] = S. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm16)]; PC PC + 4 IR = M[PC], PC = add(pc, +4); A = R[rs]; S = add( A, sign_ext(inm16)); M = M[S]; R[rt] = M. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] R[rt]; PC PC + 4 IR=M[PC], PC = add(pc, +4); A=R[rs], B=R[rt]; S = add( A, sign_ext(inm16)); M[S] = B. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. BEQ: if ( R[rs] == R[rt] ) PC (PC +4) + sign_ext(inm16)*4 else PC PC + 4 IR = M[PC], PC = add(pc, +4); A = R[rs], B = R[rt]; S = add( PC, sign_ext(inm16)*4); if (Equal) PC = S. Unidad Instrucción y Operaciones. Unidad Registros. Lectura. Unidad Operaciones. Unidad Operaciones. Unidad Instrucción. J UMP: PC (PC +4)&0xF add_26 *4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción y Operaciones. PC = (PC)&0xF add_26 *4. Unidad Instrucción.

17 Diseño procesador multiciclo 17 Las señales de control, pueden describirse por: ADD: R[rd] R[rs] + R[rt]; PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A, WE B ; AluSrcA = "busa", AluSrcB = "busb", AluCtr = add ; WE S ; RegDst = "rd", Memtoreg="alu", RegWr. SUB: R[rd] R[rs] R[rt]; PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A, WE B ; AluSrcA = "busa", AluSrcB = "busb", AluCtr = sub ; WE S ; RegDst = "rd", Memtoreg="alu", RegWr. SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A, WE B ; AluSrcA = "busa", AluSrcB = "busb", AluCtr = slt ; WE S ; RegDst = "rd", Memtoreg="alu", RegWr. ORI: R[rt] R[rs] + zero_ext(inm16); PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A ; AluSrcA = "busa", AluSrcB = "Op32", ExtOp = zero, AluCtr = ori, WE S ; RegDst = "rt", Memtoreg="alu", RegWr. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm16)]; PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A ; AluSrcA = "busa", AluSrcB = "Op32", ExtOp = sign, AluCtr = add, WE S ; MemRd, WE M ; RegDst = "rt", Memtoreg = "mem", RegWr. STORE: MEM[ R[rs] + sign_ext(inm16)] R[rt]; PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A, WE B ; AluSrcA = "busa", AluSrcB = "Op32", ExtOp = sign, AluCtr = add, WE S ; MemWr.

18 18 Estructuras de Computadores Digitales BEQ: if ( R[rs] == R[rt] ) PC (PC +4)+ sign_ext(inm16)*4 else PC PC + 4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; WE A, WE B ; AluSrcA = "PC", AluSrcB = "branch", AluCtr = add, WE S ; if (Equal) { npc_sel = S, WE PC }. J: PC (PC +4)&0xF add_26 *4 npc_sel = alu, AluSrcA = "PC", AluSrcB = "+4", AluCtr = add, WE PC, WE IR ; npc_sel = Jmp, WE PC Diseño de la unidad de control del procesador multiciclo. Puede confeccionarse un diagrama de estados a partir de las señales de control de cada etapa. Debido a que la primera serie de microoperaciones, para la etapa de búsqueda de instrucción, es igual para todas las instrucciones, se considera como el estado inicial. Luego a partir de éste se colocan las secuencias de estados para generar las señales de control para cada etapa. En el interior de cada estado se colocan las salidas asociadas a ese estado. Después de la última microoperación de cada secuencia (cuando se encuentra un punto en la secuencia), debe volverse al estado inicial, para seguir ejecutando instrucciones. Después de realizadas las transferencias del estado fetch (o de búsqueda de la instrucción), se disponen de las entradas para la unidad de control: el código de operación y el campo funct. De acuerdo al valor de las entradas se cambia al estado siguiente, cuando ocurre el canto del reloj. Cuando no están rotuladas las transiciones se asume que el próximo canto activo del reloj cambia al próximo estado de la secuencia. Pueden aplicarse las técnicas tradicionales del diseño de máquinas secuenciales. Puede emplearse métodos para la reducción de estados. Por ejemplo: el tercer estado de lw y sw son idénticos, y podrían fundirse en uno; en este caso las dos salidas de este estado deben estar rotuladas con el código de operación de lw y sw (esto debido a que el cuarto estado de éstas no es el mismo). También pueden fundirse los cuartos estados de add y sub. Si se decide escribir en el registro B, en el caso de ori y lw (no importa lo que se escriba, si luego no se lo usa), se tendrá que el segundo estado de todas las instrucciones excepto el jump pueden fundirse; en caso de efectuar esta reducción, las salidas de este segundo estado común debe estar rotuladas con los códigos de operación de las instrucciones. Luego se procede a asignar estados y continuar con las metodologías de diseño.

19 Diseño procesador multiciclo Diagrama de estados El modelo del diagrama de estados debe entenderse como un modelo conceptual del problema del control. En el caso de diseñar un repertorio completo, no es práctico ocuparlo para describir cientos de estados con posibles centenares de secuencias diferentes (más aún si el tipo de repertorio es complejo y posee diversos modos de direccionamiento). El siguiente diagrama de estado muestra las diferentes secuencias de las señales de control para cada una de las instrucciones del repertorio: npc_sel = +4, WE PC, WE IR ; Add Sub Ori Lw Sw Beq J WE A WE B WE A WE B WE A WE A WE A WE B WE A WE B npc_sel = Jmp WE PC. AluSrc =busb, AluCtr = add WE S AluSrc =busb, AluCtr = sub WE S AluSrc =Op32 ExtOp =zero AluCtr = ori WE S AluSrc = Op32 ExtOp =sign AluCtr = add WE S AluSrc = Op32 ExtOp =sign AluCtr = add WE S npc_sel = if (Equal) { Br, WE PC }. RegDst =rd Memto reg=alu RegWr. RegDst =rd Memto reg=alu RegWr. RegDst =rt Memto reg=alu RegWr. MemRd WE M MemWr. RegDst =rt Memto reg=mem RegWr. Figura Diagrama de estados. Se verá más adelante la técnica de microprogramación, que básicamente consiste en diseñar la unidad de control como si fuera un computador en miniatura.

20 20 Estructuras de Computadores Digitales Control de Memorias Asincrónicas. En el diagrama de estados puede fácilmente incorporarse controles asincrónicos mediante ciclos de espera (wait). Algunas memorias después de transcurrido el tiempo de acceso activan una señal indicando este evento. El controlador puede adaptarse a memorias con diferente tiempo de acceso empleando la señal (asincrónica) de wait proveniente de la memoria. Consideremos, por ejemplo, la memoria de instrucciones con los controles MemRd para leer y Wait. Mientras esta última está alta debe esperarse, ya que aún no termina el tiempo de acceso; cuando Wait se desactiva, el dato en el bus es válido. El siguiente esquema ilustra una parte de la Unidad de Instrucciones: WE PC Wait WE IR MemRd PC Addr Rd Memoria Instrucciones IR Figura Control asincrónico de memoria de instrucción. El siguiente diagrama de estados incorpora ciclos de espera, empleando la señal wait: Se espera un múltiplo del período del reloj (se dice que es asincrónico, pero el tiempo que permanece esperando es sincrónico con el reloj; es la señal la que se produce en forma asincrónica al reloj). MemRD WE IR &Wait' WE PC &Wait' Wait Wait WE A.... Figura Diagrama de estados. Ciclos de espera.

21 Diseño procesador multiciclo 21 Nótese que las señales que habilitan la escritura de los registros PC e IR se activan cuando la memoria de instrucciones tiene datos válidos (cuando Wait pasa a cero). Lo anterior impide cambiar el valor de PC(es decir el bus de direcciones de la memoria) cuando aún se está leyendo; y de reactualizar con datos inválidos el registro de instrucción. La lógica combinacional que genera las señales de control de sincronización queda mejor descrita por: if (Wait) {WE IR = 0; WE PC = 0;} else {WE IR = 1; WE PC = 1;} Similar procedimiento se emplea, en la memoria de datos, en el ciclo de lectura de lw; y en el de escritura de sw Excepciones. (Interrupciones y Traps) El flujo de control normal, es la ejecución secuencial de instrucciones, de saltos, bifurcaciones, llamados a subrutinas y retornos. Una excepción es una transferencia de control de ejecución no programada. Es una señal que avisa que ha ocurrido un evento que requiere ser atendido. Programa de Usuario. Manipulador de Excepciones. Se produce excepción... (trap handler) Servicio de excepción. Figura Servicio excepciones. Retorno de excepción. El sistema debe estar programado para tomar una acción para manipular la excepción: a) registrandro la dirección de la instrucción que causó la excepción, b) salvando el estado del procesador, c) tomando una acción correctiva, d) recuperando el estado del procesador y e) devolviendo el control al programa que causó la excepción. La manipulación de excepciones ocasiona un control complejo, lo cual disminuye la velocidad de procesamiento, ya que tiende a aumentar el CPI promedio. MIPS define que no debe ejecutarse la instrucción que causa la excepción.

22 22 Estructuras de Computadores Digitales Tipos de Excepciones: Interrupciones: a) Causadas por eventos externos. Solicitación de dispositivo de entrada/salida b) Asincrónicas con la ejecución del programa. Deben ser manipuladas entre instrucciones. Suspenden y reanudan la ejecución del programa. Traps: a) Causadas por eventos internos. Condiciones de excepción (ej. overflow) Errores (ej. paridad) Fallas (ej. De página) Llamados al Sistema Intento de ejecutar instrucción ilegal. b) Sincrónicas con la ejecución del programa c) Las condiciones deben ser remediadas por el manipulador. d) La instrucción puede ser reintentada o simulada y el programa continúa o éste debe ser abortado Formas de accesar al manipulador de excepciones: Los diferentes procesadores emplean mecanismos especiales para manipular la excepción. En el caso del procesador MIPS, cuando se produce una excepción se pasa a modo kernel, cambiando el valor de PC a una dirección fija. Entrada fija. PC = 0x (MIPS) Otros procesadores emplean vectores o tablas de direcciones: Tabla de direcciones. PC = M[base+causa] (8051) Vectores de Interrupción. PC = base+causa Formas de salvar el Estado. a) En el stack. b) En registros especiales. EPC, BadVaddr, Status, Cause (MIPS) c) Cambios de banco o registros sombreados. En el caso del procesador MIPS se agregaron los siguientes recursos al camino de datos para manipular excepciones:

23 Diseño procesador multiciclo 23 Registro EPC. Registro 14 del coprocesador 0, es un registro de 32 bits que almacena la dirección de la instrucción que ocasiona la excepción. Debe ser capaz de deshacer la suma PC = PC+4, ya que EPC debe apuntar a la instrucción que causa la excepción y no a la siguiente. Es decir: EPC = PC-4. Registro Cause. Registro 13 del procesador 0, de 32 bits. Almacena la causa de la excepción. Registro BadVAddr. Registro 8 del coprocesador 0, contiene la dirección de la instrucción que efectuó un direccionamiento ilegal. Registro Status. Registro 12 del coprocesador 0, contiene las máscaras de interrupción y los bits de habilitación. Es preciso modificar el camino de datos, además de agregar registros: Se agrega una entrada al mux controlado por npc_sel, con la dirección fija del manipulador de excepciones: 0x Señales de control para escribir en los registros: EPC, Cause, BadVAddr, y Status Modos: User y Kernel. Proporcionar dos modos de ejecución facilita el desarrollo del sistema operativo, que es un programa especial que corre en modo privilegiado (modo kernel o system) que le permite tener acceso a todos los recursos del computador. Normalmente todos los procesos de entrada/salida son administrados por el sistema operativo. De este modo cada programa de usuario puede compartir recursos (archivos, discos, memoria, pantalla, red, etc.) en forma organizada. El manipulador de excepciones es parte del sistema operativo, en éste se programan las acciones en respuesta a eventos que ocurran mientras se ejecuta el programa del usuario. Se describen a continuación algunos registros del coprocesador 0. Estos están implementados en el simulador Spim, y descritos en el manual Registro de Estado. (STATUS) Se tienen ocho niveles de interrupción, cinco son de hardware y tres de software. Existe un bit por nivel que habilita (cuando es uno) o deshabilita el nivel de interrupción. Máscaras k e k e k e old previo actual Los 6 bits menos significativos forman un stack de tres niveles. Los seis bits menos significativos indican si la interrupción se produjo en modo kernel o en modo usuario, para esto se emplea el bit denominado k, en el esquema anterior. Un uno indica que se produjo en modo kernel; cero en modo usuario.

24 24 Estructuras de Computadores Digitales En los bits denominados e se registra si están habilitadas las interrupciones, con un uno se marca que estaban habilitadas y con un cero deshabilitadas. Cuando se produce una interrupción, los seis bits menos significativos se desplazan en dos posiciones hacia la izquierda, dejando en cero las últimas dos posiciones. Esto implica que se corre en modo kernel con las interrupciones deshabilitadas Registro CAUSE. Pendientes Causa Los bits 10 al 15, se emplean para registrar si existen interrupciones pendientes de uno de los cinco niveles de interrupciones de hardware. Se setea a uno si ocurre la interrupción, y si ésta aún no ha sido servida. Se emplea para manejar la situación en que se hayan generado. Del bit 2 al 5 se registra la razón de la interrupción: 0 (Int) indica una interrupción externa. 4 (ADDRL) excepción por error de dirección no alineada en el fetch o en instrucción load 5 (ADDRS) excepción por error de dirección no alineada en instrucción store. 6 (IBUS) error de dirección en fetch de instrucción. 7 (DBUS) error de bus en búsqueda de datos. 8 (Syscall) excepción por llamado errado al sistema. 9 (BKPT) excepción por breakpoint. 10 (RI) excepción por instrucción reservada. 12 (OVF) Excepción por rebalse aritmético. 13 Resultado punto flotante inexacto. 14 Resultado punto flotante inválido. 15 División por cero. 16 Rebalse punto flotante. 17 Vaciamiento punto flotante Instrucciones para el Coprocesador 0. Existen instrucciones y macros que permiten mover datos del coprocesador 0 hacia el principal y viceversa. Data transfer: lwc0, swc0 Move: mfc0, mtc0 Ver trap.handler de spim (se lo incluye más adelante) Tratamiento de excepciones en la máquina de estados. Se ilustran las modificaciones al diagrama de estados para tratar excepciones de dos tipos: rebalse e instrucción ilegal.

25 Diseño procesador multiciclo 25 Una instrucción indefinida o ilegal se detecta cuando no está definido el próximo estado para el código ilegal. Se define un próximo estado, al que se pasa cuando el código de operación es otro (diferente de lw, sw, j, beq, ori, tipo-r), en el cual se activan las microoperaciones para generar la excepción. La dirección ExcAdd es la del manipulador de excepciones. Rebalse aritmético. Se emplea la condición generada por la ALU, para saltar a un estado que genera excepción. Manipular las diferentes interacciones entre instrucciones y otros eventos que causan excepciones puede dar origen a un control complejo. El objetivo es mantener simple y rápida la lógica de control. Es tratamiento de las excepciones es el aspecto más complejo del control. E0 (fetch) Add Sub Ori Lw J Sw Beq E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 oper. oper. otro EPC=PC-4 PC=ExcAdd Cause=10(RI) E14 E15 E16 E17 E18 E19 overflow EPC=PC-4 PC=ExcAdd Cause=12(Ovf) Figura Diagrama de estados, con excepciones Código del manipulador de Excepciones de SPIM. # SPIM S20 MIPS simulator. # The default trap handler for spim. # Copyright (C) James Larus, larus@cs.wisc.edu. # Define the exception handling code. This must go first!.kdata m1_:.asciiz " Exception " m2_:.asciiz " occurred and ignored\n" e0_:.asciiz " [Interrupt] "

26 26 Estructuras de Computadores Digitales e1_:.asciiz "" e2_:.asciiz "" e3_:.asciiz "" e4_:.asciiz " [Unaligned address in inst/data fetch] " e5_:.asciiz " [Unaligned address in store] " e6_:.asciiz " [Bad address in text read] " e7_:.asciiz " [Bad address in data/stack read] " e8_:.asciiz " [Error in syscall] " e9_:.asciiz " [Breakpoint] " e10_:.asciiz " [Reserved instruction] " e11_:.asciiz "" e12_:.asciiz " [Arithmetic overflow] " e13_:.asciiz " [Inexact floating point result] " e14_:.asciiz " [Invalid floating point result] " e15_:.asciiz " [Divide by 0] " e16_:.asciiz " [Floating point overflow] " e17_:.asciiz " [Floating point underflow] " excp:.word e0_, e1_, e2_, e3_, e4_, e5_, e6_.word e7_, e8_, e9_, e10_, e11_, e12_.word e13_, e14_, e15_, e16_, e17_ s1:.word 0 #para salvar registros de usuario. s2:.word 0.ktext 0x #ExcAdd # Al entrar se pueden usar los registros k0 y k1, sin salvarlos, ya que el usuario # no puede usar estos registros..set noat move $k1, $at # Salva at ya que el manipulador usa macros..set at #Habilita uso de macros en modo kernel. #El manipulador usa v0 y a0, los salva en memoria de datos del kernel. #No usa el stack ya que la excepción puede ser una mala referencia al stack. #Asume que no es confiable el valor de sp. sw $v0, s1 sw $a0, s2 #Salva a0 y v0 en variables locales del kernel. mfc0 $k0, $13 # Cause es el registro $13 del coprocesador 0 sgt $v0, $k0, 0x44 # Ignora la excepción, mayor que causa 17. bgtz $v0, ret addu $0, $0, 0 # Equivale a un nop. Se ejecuta(delayed branch). li $v0, 4 # syscall 4 (print_str con mensaje m1) la $a0, m1_ syscall li $v0, 1 # syscall 1 (print_int) srl $a0, $k0, 2 # Genera en a0 el número de la excepción, syscall # y lo imprime. li $v0, 4 # syscall 4 (print_str) lw $a0, excp($k0) #Accesa dirección mensaje de error.

27 Diseño procesador multiciclo 27 syscall bne $k0, 0x18, ok_pc # Causa = 6. Bad PC requires special checks mfc0 $a0, $14 # a0 = EPC and $a0, $a0, 0x3 # Is EPC word-aligned? beq $a0, $zero, ok_pc li $v0, 10 # Exit on really bad PC (out of text). syscall ok_pc: li $v0, 4 # syscall 4 (print_str) la $a0, m2_ syscall mtc0 $zero, $13 # Clear Cause register ret: lw $v0, s1 # Recupera a0 y v0. lw $a0, s2 mfc0 $k0, $14 # k0 = EPC.set noat move $at, $k1 # Restaura $at del usuario..set at # Habilita macros de usuario. rfe # Return from exception handler addiu $k0, $k0, 4 # Return to next instruction jr $k0 # Standard startup code. #Invoke the routine main with no arguments..text.globl start start: lw $a0, 0($sp) # argc addiu $a1, $sp, 4 # argv addiu $a2, $a1, 4 # envp sll $v0, $a0, 2 addu $a2, $a2, $v0 jal main li $v0, 10 # syscall 10 (exit) syscall Observaciones: a) La instrucción: sgt $v0, $k0, 0x44 # ignore interrupt exceptions es una macro, que expandida resulta: ori $at, $zero, 0x44 slt $v0, $at, $k0 #coloca 1 en v0 si 0x44 < k0 0x44 equivale al binario , con número de excepción binario 10001(ya que los dos últimos son ceros). Es decir si la causa de excepción es mayor que 17 ignora la excepción.

28 28 Estructuras de Computadores Digitales b) La macro: lw $a0, excp($k0) #Accesa dirección mensaje de error. Accesa al arreglo de punteros, que contienen los mensajes asociados a la causa de la excepción. En k0 está la causa de la excepción, considerando que los dos bits menos significativos son ceros se tiene, por ejemplo, que cuando k0 tiene valor binario 11000, se tendrá la causa 6(110). Y se suma a la dirección dada por excp el valor decimal 24(equivale a 11000); el cual equivale a 6*4. Es decir la sexta entrada con valor simbólico: e6_. c) Los rótulos del kernel usan el símbolo underscore( _ ), de esta forma el ensamblador difícilmente puede tener conflicto con los símbolos de usuario. d) La instrucción rfe, restaura el registro de estado como estaba antes de la excepción y reanuda la ejecución en la instrucción siguiente a la que causó la excepción Diseño de la Unidad de Control de un Procesador Multiciclo Diseño clásico. A partir del diagrama de estados se plantean las ecuaciones lógicas para determinar el próximo estado; y las ecuaciones de salida en función del estado (se emplea el modelo de Moore, para máquinas secuenciales de estados finitos). Entradas Lógica próximo estado Registro Lógica de Salida Salidas Estado Figura Modelo de Moore. Máquina de estados. En cada estado se especifican los valores de las señales de control que gobiernan las Transferencias entre Registros. El cambio de estado ocurre en el canto activo del reloj y la duración del reloj debe permitir la transferencia confiable de la etapa más lenta. La secuencia de transferencias se controla mediante el recorrido a través de los estados. La información que puede derivarse del diagrama de estados permite construir la siguiente tabla de verdad, que corresponde a la matriz de transiciones.

29 Diseño procesador multiciclo 29 Entradas Estado Código Operación Funct Condiciones Salidas Próximo estado Señales de control Figura Modelo de Moore. Matriz de transiciones. El diseño consiste en encontrar las funciones combinacionales mínimas para: Próximo estado = f1(estado, Cod. Op., Funct) Señales de Control = f2(estado, Cod. Op., Funct, Condiciones) Se asume que el próximo estado no depende de las condiciones generadas en el camino de datos. La secuencia de estados depende sólo de la instrucción en ejecución; mientras que la activación de algunas señales de control están condicionadas por los valores generados durante la ejecución. Esto reduce el número de estados Microprogramación. Método sistemático para diseñar la unidad de control de un procesador. Se programan las transferencias entre registros y la secuencia en que éstas deben efectuarse. Cada microinstrucción especifica el valor que deben tomar las señales de control, las funciones de la alu, y cuál es la próxima microinstrucción. Una forma de implementar las funciones de próximo estado y las salidas es almacenar el estado en un registro ( PC), e implementar las funciones de próximo estado y las salidas en una ROM o en un dispositivo programable. El esquema anterior puede visualizarse como el de un procesador que ejecuta microinstrucciones almacenadas en una memoria. Cada microinstrucción puede considerarse dividida en dos campos: uno, el conjunto de micro-operaciones; el otro, asociado a las bifurcaciones y saltos incondicionales dentro del microprograma, que podríamos denominar control de secuencia de las microinstrucciones. Denominamos micro operaciones a las señales de control que actúan sobre los recursos del camino de datos: las funciones de la ALU y de la Unidad de Extensión, la programación de las vías de datos a través de los muxes, las habilitaciones de escritura sincrónica de los diversos registros, los controles de lectura y escritura de las memorias y el arreglo de registros (control de transferencias físicas), y las señales que controlan la secuenciación de las instrucciones en la unidad de instrucción (que dependen de las condiciones: equal, cero, etc.). Una representación de la información que se almacena en la micro memoria, que se denomina microprograma es la siguiente:

30 bus IR PC 30 Estructuras de Computadores Digitales Dirección Microinstrucción Estado = PC Control Microoperaciones Figura Microprograma. Además existe la siguiente función: señales que controlan PC = f(micro operaciones de Control PC, Condiciones) Se denomina microcontrol a la información que permite determinar la próxima microinstrucción a ejecutar, que en general depende solamente de la instrucción que esté en ejecución. Ésta se ilustra en la siguiente tabla de verdad: Entradas Salidas Control COp Funct Próxima Instrucción Figura Microcontrol. La tabla anterior describe el secuenciador de las microintrucciones. Un esquema de diseño de una unidad de control microprogramada se ilustra a continuación: WE PC "1" Rd Control Cop Funct Secuenciador Memoria Instrucciones Addr op funciones muxes memoria registros write enable Control PC Señales de Control Figura Unidad de control microprogramada. Condiciones

ELO311 Estructuras de Computadores Digitales. Diseño de un Procesador Multiciclo

ELO311 Estructuras de Computadores Digitales. Diseño de un Procesador Multiciclo ELO311 Estructuras de Computadores Digitales Diseño de un Procesador Multiciclo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

Más detalles

Diseño Procesador Monociclo

Diseño Procesador Monociclo Diseño Procesador Monociclo Especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar el procesador. Modelo Carga-Almacenamiento. Se implementará el procesador

Más detalles

ELO311 Estructuras de Computadores Digitales. Procesador Monociclo

ELO311 Estructuras de Computadores Digitales. Procesador Monociclo ELO3 Estructuras de Computadores Digitales Procesador Monociclo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization

Más detalles

La Unidad de Control y el Camino de Datos

La Unidad de Control y el Camino de Datos Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 Contenido Veremos el diseño completo de un subconjunto

Más detalles

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos: Unidades principales en la implementación Data El procesador: camino de datos y control IEC UTM Moisés E. Ramírez G. 1 Register # PC Address Instruction Instruction Registers Register # ALU memory Register

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores 12. Diseño de un Procesador. (Monociclo) 12.1 Especificación de instrucciones. El primer paso es la especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar

Más detalles

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES Arquitectura del Repertorio de instrucciones Arquitectura del repertorio de instrucciones Repertorio de instrucciones Organización del almacenamiento Formato

Más detalles

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012 /4/22 Introducción rquitectura de Computadoras Primavera 22 Construyendo el path Esquema de implementación Simple Unidad de Control 2 Los elementos básicos de un sistema de computo son: Nos centraremos

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación uniciclo Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción. 2. Construcción

Más detalles

Sección de procesamiento: El camino de datos

Sección de procesamiento: El camino de datos Sección de procesamiento: El camino de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución

Más detalles

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization

Más detalles

Microarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 3. MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR

Microarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 3. MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR Microarquitectura: implementación multiciclo DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 3. MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR 3.1 Esquema básico de un microprocesador

Más detalles

Organización procesador MIPS

Organización procesador MIPS Organización procesador MIPS Organización MIPS Memoria CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Organización MIPS Unidad Aritmética y Lógica (ALU). Unidad Aritmética

Más detalles

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción

Más detalles

Organización del Computador I Verano. Control Multiciclo. Basado en el capítulo 5 del libro de Patterson y Hennessy

Organización del Computador I Verano. Control Multiciclo. Basado en el capítulo 5 del libro de Patterson y Hennessy Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Resumen Step name Instruction fetch Instruction decode/register

Más detalles

Arquitectura de Computadores. Resumen para Certamen 2 Por Franco Zuccar

Arquitectura de Computadores. Resumen para Certamen 2 Por Franco Zuccar Arquitectura de Computadores Resumen para Certamen 2 Por Franco Zuccar Componentes básicos Compuertas logicas (AND, OR, NOT, XOR, NAND y NOR) Flip-Flop s (SR, JK, D y T) Los circuitos combinacionales se

Más detalles

Diseño del procesador MIPS R2000

Diseño del procesador MIPS R2000 Diseño del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice 1.

Más detalles

Procesador Segmentado

Procesador Segmentado Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Segmentación Descompone una determinada operación

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Diseño de un Procesador. (Monociclo)

Diseño de un Procesador. (Monociclo) Capítulo 2. Diseño de un Procesador. (Monociclo) 2. Especificación de instrucciones. El primer paso es la especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá

Más detalles

Procesador Segmentado

Procesador Segmentado Procesador Segmentado 1 Se desea ejecutar varias instrucciones, al mismo tiempo. Se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa. Cinco etapas, pueden ejecutarse

Más detalles

Arquitectura del MIPS: Introducción

Arquitectura del MIPS: Introducción Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

Arquitectura de Computadores - 2001

Arquitectura de Computadores - 2001 IV. Segmentación o Pipelining Alternativas de Implementación de Procesador 1. Procesador Uniciclo CPI = 1 Pero Período de Reloj Grande 2. Procesador Multiciclo CPI > 1 Pero Período de Reloj más Pequeño

Más detalles

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones Arquitectura de Computadoras Clase 4 Segmentación de Instrucciones Segmentación de cauce: Conceptos básicos La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware

Más detalles

Tratamiento de Excepciones en MIPS

Tratamiento de Excepciones en MIPS Tratamiento de en MIPS Elías Todorovich Arquitectura I - Curso 2013 Riesgos de Control Las direcciones del PC no son secuenciales (PC = PC + 4) en los siguientes casos: Saltos condicionales (beq, bne)

Más detalles

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Tema 16. Diseño de la ruta de datos y la unidad de control

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Tema 16. Diseño de la ruta de datos y la unidad de control Estructura y Tecnología de Computadores Módulo G Estructura del procesador Tema 6 Diseño de la ruta de datos y la unidad de control José Manuel Mendías Cuadros Dpto Arquitectura de Computadores y Automática

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras 4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Terecer Certamen

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Terecer Certamen UNVESA TECNCA FEECO SANTA AA EPATAENTO E EECTONCA EO311 Estructuras de Computadores 1. Se tiene la siguiente secuencia de instrucciones assembler PS: a) eterminar los riesgos que se producen en la ejecución

Más detalles

4.5 Microprogramación para simplificar el diseño del control

4.5 Microprogramación para simplificar el diseño del control 4.5 Microprogramación para simplificar el diseño del control Para el control de la implementación multiciclos del subconjunto MIPS considerado, una máquina de estados como la mostrada en la figura 4.28

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre. FUNDAMENTOS DE COMPUTADORES 18 de junio de 2014. Examen parcial del 2º cuatrimestre. Nombre DNI Apellidos Grupo Ejercicio 1 (2.5 puntos) Para el computador MIPS estudiado en clase, responder a las siguientes

Más detalles

UNIDAD 4: El procesador: Camino de los datos y Control.

UNIDAD 4: El procesador: Camino de los datos y Control. UNIDAD 4: El procesador: Camino de los datos y Control. 4.1 Introducción El rendimiento de una máquina depende de tres factores clave: Conteo de Instrucciones, tiempo del ciclo de reloj y ciclos de reloj

Más detalles

Procesador MIPS - Registros

Procesador MIPS - Registros MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros

Más detalles

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN De Diego Varona, Rubén Romay López, Oscar Manuel Vega Martínez, Jorge INTRODUCCIÓN La representación de la instrucción en la computadora se denomina formato.

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Elementos de un

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Departamento de Ingeniería de Sistemas Universidad id d de Antioquia i 2011 2 Unidad de control principal Mediante el

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Dada la CPU con la estructura interna que se muestra en la figura,

Dada la CPU con la estructura interna que se muestra en la figura, Estructura de Computadores Tema 5. La unidad de control Estructura interna de la CPU. Estrategias de diseño de unidades de control. Unidad de control cableada. Máquina de Wilkes. Microprogramación. Horizontalidad

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Práctica 7 - Microarquitectura del CPU

Práctica 7 - Microarquitectura del CPU Práctica 7 - Microarquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 El siguiente esquema muestra algunos de los componentes de la microarquitectura de un modelo

Más detalles

MICROPROCESADOR. Multiciclo

MICROPROCESADOR. Multiciclo MICROPROCESADOR Multiciclo Ejemplo Tiempos de operación. Unidades de memoria: 10 ns. Alu y sumadores: 10 ns Archivo de registros (lectura y escritura): 5 ns. Suponiendo que los multiplexores, unidad de

Más detalles

Unidad 5 Unidad central de proceso

Unidad 5 Unidad central de proceso Unidad 5 Unidad central de proceso Objetivo El objetivo de esta unidad es que el alumno logre: entender el funcionamiento básico de la Unidad Central de Proceso (UCP), definir las componentes básicas de

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: visión de conjunto y conclusiones Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa 1. Excepciones

Más detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación multiciclo Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción. 2. Construcción

Más detalles

Estructura de los sistemas de cómputo

Estructura de los sistemas de cómputo Estructura de los sistemas de cómputo Introducción Elementos básicos de un computador Registro del procesador Ejecución de las instrucciones Interrupciones Hardware de protección Introducción Qué es un

Más detalles

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación microprogramada Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción.

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

Más detalles

Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de

Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de Arquitectura de Computadores Tema 2. Repaso de Conceptos fundamentales Diseño de la ruta de datos y la unidad de control 2. Introducción contenidos Importancia del diseño del procesador. Metodología de

Más detalles

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Organización del Computador I Verano MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Arquitectura MIPS (R2000) Registros Formato de Instrucción

Más detalles

Tema 4 (II) El procesador

Tema 4 (II) El procesador Tema 4 (II) El procesador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Técnicas de control 1. Lógica cableada 2. Lógica almacenada

Más detalles

El nivel ISA (II)! Conjunto de Instrucciones

El nivel ISA (II)! Conjunto de Instrucciones El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina

Más detalles

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción

Más detalles

Repaso concepto de programa

Repaso concepto de programa Repaso concepto de programa ANTES se tenían sistemas cableados Datos Secuencia de funciones aritmético/lógicas Resultados Programación en hardware: cuando cambiamos las tareas, debemos cambiar el hardware

Más detalles

Práctica 4 - Microarquitectura del CPU

Práctica 4 - Microarquitectura del CPU Práctica 4 - Microarquitectura del CPU Organización del Computador 1 Verano 2011 Ejercicio 1 El siguiente esquema muestra algunos de los componentes de la microarquitectura de un modelo del procesador

Más detalles

Memoria. Traps y Manejo de Memoria BadVAddr EPC. Status. Figura 4.1. Diagrama funcional.

Memoria. Traps y Manejo de Memoria BadVAddr EPC. Status. Figura 4.1. Diagrama funcional. Capítulo 4. 1 Organización MIPS. Luego de la introducción informal del capítulo anterior, se describirán con detalle las principales características del procesador MIPS, desde un punto de vista del programador

Más detalles

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de

Más detalles

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017 Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase

Más detalles

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo

Más detalles

TEMA VI DISEÑO DEL PROCESADOR

TEMA VI DISEÑO DEL PROCESADOR TEMA VI DISEÑO DEL PROCESADOR Diseño del procesador 6.1 Repertorio de instrucciones 6.1.1 Procesadores de tres direcciones 6.1.2 Procesadores de dos direcciones 6.1.3 Procesadores de una dirección (procesadores

Más detalles

Estructuras de Computadores I Tarea 02 02/99

Estructuras de Computadores I Tarea 02 02/99 Estructuras de Computadores I Tarea 02 02/99 1. Dada la secuencia de bits: 0011 0100 0101 0101 0100 0011 0100 0010 Qué representa, asumiendo que es: a. Un número entero en complemento dos. b. Fracción

Más detalles

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús Microprocesador Introducción El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de

Más detalles

ARQUITECTURA VON NEUMANN

ARQUITECTURA VON NEUMANN ARQUITECTURA VON NEUMANN Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de

Más detalles

4.1 Ejecución de instrucciones en el nivel de Microprogramación

4.1 Ejecución de instrucciones en el nivel de Microprogramación 4. Microprogramación (Nivel 1) La ejecución de una instrucción de máquina (nivel 2) requiere de varias etapas internas dentro de la CPU para ser ejecutadas. Así cada instrucción de nivel 2, dependiendo

Más detalles

UNIDAD DE CONTROL MICROPROGRAMADA.

UNIDAD DE CONTROL MICROPROGRAMADA. UNIDAD DE CONTROL MICROPROGRAMADA. Como se ha visto en el capítulo anterior, la UC puede ser diseñada a partir de técnicas de síntesis de sistemas secuenciales y la utilización de una ROM para guardar

Más detalles

5. Procesador: camino de datos y control

5. Procesador: camino de datos y control Fundamentos de Computadores Ingeniería de Telecomunicación Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Contenidos 1 Control de operaciones elementales 2 3 4 5 Objetivos

Más detalles

Arquitectura de Computadoras Organización del CPU Basadas en las Notas de Teórico Versión 5.1 del Dpto. de Arquitectura-InCo-FIng

Arquitectura de Computadoras Organización del CPU Basadas en las Notas de Teórico Versión 5.1 del Dpto. de Arquitectura-InCo-FIng Basadas en las Versión 5.1 del Dpto. de Arquitectura-InCo-FIng ORGANIZACIÓN DE LA UNIDAD CENTRAL DE PROCESO (CPU) 1 Introducción En este capítulo veremos un posible diseño interno de una unidad central

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

TEMA III: OPERACIONES CON LOS DATOS

TEMA III: OPERACIONES CON LOS DATOS CUESTIONES A TRATAR: Cual es la función de la unidad operativa? Es necesaria? Qué tipos de circuitos implementan la unidad operativa? Unidad operativa frente a ALU Qué es una operación de múltiple precisión?

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 2 UNIDAD DE CONTROL JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 2 UNIDAD DE CONTROL JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 2 UNIDAD DE CONTROL JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 2. La Unidad Central de Proceso 1 La Unidad

Más detalles

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

Más detalles

8. Diseño de la codificación binaria del repertorio de Instrucciones.

8. Diseño de la codificación binaria del repertorio de Instrucciones. 8. Diseño de la codificación binaria del repertorio de Instrucciones. Se desea elegir los códigos binarios de las instrucciones. Esta parte, en forma indirecta especifica lo que debe realizar un programa

Más detalles

UNIDAD 5: Mejora del rendimiento con la segmentación.

UNIDAD 5: Mejora del rendimiento con la segmentación. UNIDAD 5: Mejora del rendimiento con la segmentación. 5.1 Un resumen de segmentación La segmentación (pipelining) es una técnica de implementación por la cual se solapa la ejecución de múltiples instrucciones.

Más detalles

2. Números naturales: sistema de numeración y operaciones básicas

2. Números naturales: sistema de numeración y operaciones básicas INTRODUCCIÓN A LOS COMPUTADORES 2003-2004 Objetivos Formativos Que el alumno sea capaz de: Comprender el funcionamiento y saber diseñar los circuitos digitales combinacionales y secuenciales que se utilizan

Más detalles

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION ESTRUCTURA DE COMPUTADORES Pag. 14.1 LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION 1. Introducción Vamos a aplicar las ideas de microprogramación al caso de un minicomputador similar al

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

Cap.2. Kernel Sistemas Operativos - Viña del Mar.

Cap.2. Kernel Sistemas Operativos - Viña del Mar. Cap.2. Kernel Sistemas Operativos - Viña del Mar. Maximiliano Osorio mosorio@inf.utfsm.cl Universidad Técnica Federico Santa Maria 19 de agosto de 2017 1 / 44 Tabla de contenidos 1 Proceso Protección de

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Dr. Andrés David García García Escuela de Diseño, Ingeniería y Arquitectura Departamento de Mecatrónica 1 Microprocesadores y Periféricos Objetivos: Analizar la arquitectura

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control

Más detalles

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR Historia Bloques funcionales Dimensionamiento Estructura CPU Concepto de programa Interrupciones Buses Entrada / Salida Ejemplo de arquitectura:

Más detalles

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita

Más detalles

Arquitectura Interna del 8088

Arquitectura Interna del 8088 Arquitectura Interna del 8088 Intel diseñó el 8088/8086 para realizar al mismo tiempo las principales funciones internas de transferencia de datos y búsqueda de instrucciones. Para conseguir esto, el 8088

Más detalles

op rs rt inmediato 6 bits 5 bits 5 bits Tipo J: Salto incondicional op

op rs rt inmediato 6 bits 5 bits 5 bits Tipo J: Salto incondicional op Arquitectura MIPS: Formato de la instrucción máquina La ruta de datos la diseñaremos para un subconjunto de instrucciones del procesador MIPS, que dispone de sólo 3 formatos de diferentes de longitud fija

Más detalles

Tema 4: Diseño de un microprocesador

Tema 4: Diseño de un microprocesador Tema : Diseño de un microprocesador Febrero de Tema : Diseño de un microprocesador Febrero de / 7 Índice Introducción Visión general de la implementación El camino de datos Control del camino de datos

Más detalles

Capítulo 1 Conceptos arquitectónicos

Capítulo 1 Conceptos arquitectónicos Sistemas operativos: una visión aplicada Capítulo 1 Conceptos arquitectónicos Contenido Estructura del computador Ejecución de instrucciones Interrupciones Reloj del computador Jerarquía de memoria Entrada/Salida

Más detalles

DISEÑO CURRICULAR ARQUITECTURA DEL COMPUTADOR

DISEÑO CURRICULAR ARQUITECTURA DEL COMPUTADOR DISEÑO CURRICULAR ARQUITECTURA L COMPUTADOR FACULTAD (ES) CARRERA (S) Ingeniería Computación y Sistemas. CÓDIGO HORAS TEÓRICAS HORAS PRÁCTICAS UNIDAS CRÉDITO SEMESTRE 126643 02 02 03 VI PRE-REQUISITO ELABORADO

Más detalles

Arquitectura de Computadores. Tema 9. Microprogramación

Arquitectura de Computadores. Tema 9. Microprogramación Arquitectura de Computadores Tema 9 Microprogramación Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 1 Casos de Mayor complejidad. Qué pasa si hay muchos más estados y condiciones

Más detalles

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos INDICE Parte I. La computadora digital: organización, operaciones, periféricos, lenguajes y sistemas operativos 1 Capitulo 1. La computadora digital 1.1. Introducción 3 1.2. Aplicaciones de las computadoras

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

Microprocesadores. Informática Aplicada DSI-EIE FCEIA

Microprocesadores. Informática Aplicada DSI-EIE FCEIA Microprocesadores Informática Aplicada DSI-EIE FCEIA Arquitecturas Un concepto: Programa almacenado Dos modelos: Von Neumann (1945) Harvard 2 Microprocesador Es un circuito integrado que cumple las funciones

Más detalles

Organización de Computadoras Apunte 5: Circuitos Lógicos Secuenciales

Organización de Computadoras Apunte 5: Circuitos Lógicos Secuenciales Organización de Computadoras 2003 Apunte 5: Circuitos Lógicos Secuenciales Introducción: En el desarrollo de los sistemas digitales es fundamental el almacenamiento de la información, esta característica

Más detalles

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos Arquitectura de ordenadores (fundamentos teóricos) Representación de la información Estructura de un microprocesador Memorias Sistemas de E/S Elementos de un ordenador Microprocesador Placa base Chipset

Más detalles

Organización de Computadoras. Clase 6

Organización de Computadoras. Clase 6 Organización de Computadoras Clase 6 Tema de Clase Ciclo de Instrucción Notas de Clase 6 2 Función de la computadora(1) Ejecutar programas El programa está compuesto de instrucciones almacenadas en memoria

Más detalles