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

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

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

Transcripción

1 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 Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA material del curso anterior ELO311 del Prof. Leopoldo Silva

2 Procesador Monociclo 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. Si existen instrucciones que demoran demasiado (e.g. las de punto flotante) la frecuencia del reloj debe ajustarse a la instrucción que mas tarda. En el modelo monociclo los recursos (e.g. Memoria, ALU,...) deben utilizarse solo una vez por cada ciclo del reloj. Incluso esto causa que hay veces en que estos recursos deben duplicarse.

3 Procesador Multiciclo Estas razones llevan a pensar que las diferentes instrucciones puedan ser realizadas con varios ciclos (uno o mas ciclos) del reloj. Dependiendo de su complejidad unas podrían ser ejecutadas en pocos ciclos y otras en mas ciclos. Esto permite que las instrucciones tengan tiempos de ejecución diferentes, ya que emplean diferente número de ciclos de reloj.

4 Procesador Multiciclo (cont) Esto 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 del reloj. Los datos que se emplearán en los siguientes ciclos del reloj, al ejecutar una determinada instrucción deben ser almacenados en registros adicionales.

5 Procesador Monociclo vs Multiciclo 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): tp (tiempo propagación), ts (tiempo sumador IR), tr (tiempo registros)

6 Procesador Monociclo vs Multiciclo (cont) Si se pudiera dividir la unidad combinacional, en dos partes que supondremos con iguales tiempos de propagación, se tendrá el esquema siguiente. 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. Se agrega el tiempo de setup y hold pero en un mismo ciclo se pueden ocupar ambas etapas.

7 Procesador Monociclo vs Multiciclo (cont) Esto 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.

8 Procesador Multiciclo Se emplean los siguientes registros adicionales: IR registro de instruccion A y B salidas de la unidad de registros S salida de la unidad de operaciones M registro con dato leido de memoria

9 Procesador Multiciclo Se tienen cinco etapas para la ejecucion de instrucciones (no todas las instrucciones usan todas las etapas): Búsqueda de la Instrucción. Lectura de Memoria de Instrucciones y cálculo de dirección de próxima instrucción. Decodificación de la Instrucción y lectura de registros. Ejecución de operaciones y cálculo de la dirección efectiva de Memoria. Lectura de Memoria de Datos o Escritura en Memoria de Datos. Escritura en Registros. 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.

10 Procesador Multiciclo En cada canto activo del reloj se pasa a un estado diferente (se captura el estado en los registros). 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.

11 Procesador Multiciclo 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). El período del reloj debe ajustarse a la duración de la etapa más lenta, de este modo pueden realizarse todas las acciones y transferencias de cada etapa. 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 seria un múltiplo de la etapa más rápida, lo cual aumentaría el número de estados de la unidad de control, y complica su diseño.

12 Procesador Multiciclo 2

13 Procesador Multiciclo: Unidad de Instrucción Se necesita el reg. IR, para guardar la instrucción previa ya que en el primer ciclo se calcula la dirección de la próxima instrucción y se escribe en el reg. PC. Al cambiar PC, cambia el bus de direcciones de la memoria de instrucciones, esto requiere almacenar la instrucción previa para tener los campos disponibles en el resto de la ejecución. npcsel0 npcsel1

14 Transferencias Físicas de Datos 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; Unidad Instrucción. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = add(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura. SUB: R[rd] <= R[rs] R[rt]; PC <= PC + 4 IR = MemInst[PC], PC = PC+4; Unidad Instrucción. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = sub(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura.

15 Transferencias Físicas de Datos (cont) SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC <= PC + 4 IR = MemInst[PC], PC = PC+4; Unidad Instrucción. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = slt(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura. ORI: R[rt] <= R[rs] + zero_ext(inm16); PC <= PC + 4 IR = MemInst[PC], PC=PC+4; Unidad Instrucción. A = R[rs]; Unidad Registros. Lectura. S = or(a, zero_ext(inm16) ); Unidad Operaciones. R[rt] = S. Unidad Registros. Escritura.

16 Transferencias Físicas de Datos (cont) LOAD: R[rt] <= MEM[ R[rs] + sign_ext(inm16)]; PC <= PC + 4 IR = MemInst[PC], PC=PC+4; Unidad Instrucción. A = R[rs]; Unidad Registros. Lectura. S = add( A, sign_ext(inm16)); Unidad Operaciones. M = MemDat[S]; Unidad Memoria Datos. R[rt] = M. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] <= R[rt]; PC <= PC + 4 IR=MemInst[PC], PC=PC+4; Unidad Instrucción. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = add( A, sign_ext(inm16)); Unidad Operaciones. MemDat[S] = B. Unidad Memoria Datos.

17 Transferencias Físicas de Datos (cont) BEQ: if ( R[rs] == R[rt] ) PC <= (PC +4) + sign_ext(inm16)*4 else PC <= PC + 4 IR = MemInst[PC], PC=PC+4; Unidad Instrucción. A = R[rs], B = R[rt]; Unidad Registros. Lectura. if (Equal) Unidad Operaciones. PC = PC + sign_ext(inm16)*4. Unidad Instrucción. JUMP: PC <= (PC +4)&0xF add_26 *4 IR = MemInst[PC], PC=PC+4; Unidad Instrucción. PC = (PC)&0xF add_26 *4. Unidad Instrucción.

18 Señales de control ADD: R[rd] <= R[rs] + R[rt]; PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa, WEb ; Unidad Registros. Lectura. AluSrc = "busb", AluCtr = add, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura. SUB: R[rd] <= R[rs] R[rt]; PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa, WEb ; Unidad Registros. Lectura. AluSrc = "busb", AluCtr = sub, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura.

19 Señales de control (cont) SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa, WEb ; Unidad Registros. Lectura. AluSrc = "busb", AluCtr = slt, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura. ORI: R[rt] <= R[rs] + zero_ext(inm16); PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa ; Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = zero, AluCtr = ori, WEs ; Unidad Operaciones. RegDst = "rt", Memtoreg="alu", RegWr. Unidad Registros. Escritura.

20 Señales de control (cont) LOAD: R[rt] <= MEM[ R[rs] + sign_ext(inm16)]; PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa ; Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = sign, AluCtr = add, WEs ; Unidad Operaciones. MemRd, WEm ; Unidad Memoria Datos. RegDst = "rt", Memtoreg = "mem", RegWr. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] <= R[rt]; PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa, WEb ; Unidad Registros. AluSrc = "Op32", ExtOp = sign, AluCtr = add, WEs ; Unidad Operaciones. MemWr. Unidad Memoria Datos.

21 Señales de control (cont) BEQ: if ( R[rs] == R[rt] ) PC <= (PC +4)+ sign_ext(inm16)*4 else PC <= PC + 4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. WEa, WEb ; Unidad Registros. if (Equal) { npc_sel = Br, WEpc }. Unidad Instrucción. J: PC <= (PC +4)&0xF add_26 *4 npc_sel = +4, WEpc, WEir ; Unidad Instrucción. npc_sel = Jmp, WEpc. Unidad Instrucción.

22 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

23 Comportamiento del Procesador Multiciclo (cont) Para el procesador monociclo con un período fijo de reloj (CPI=1), se tiene: TE(monociclo) = NI*1*PCmono Se asume que el programa de prueba está constituido por la siguiente mezcla: 25% decargas, 11% de almacenamientos, 30% de sumas, 9% de restas, 4% de or inmediatos, 15% de bifurcaciones y 6% de saltos. 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 Para multiciclo, puede considerarse que el valor promedio de CPI (ciclos por instrucción) para la mezcla es de 3,98.

24 Comportamiento del Procesador Multiciclo (cont) 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.

25 Comportamiento del Procesador Multiciclo (cont) 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.

26 Compartir Recursos: Memoria El camino de datos anteriormente usado no comparte muchos recursos npcsel0 npcsel1 PC 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 obtenerse la condición de igualdad utilizando la misma unidad aritmética. También puede compartirse la memoria de instrucciones y de datos npcsel0 npcsel1 Se muestra una arquitectura que comparte la memoria de datos con la de instrucciones. PC Para esto es necesario modificar la unidad de instrucción, sacando de ésta la memoria de instrucciones. IR

27 Compartir recursos: Memoria (cont) 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. WE A WE B WE S 2 2

28 Compartir recursos: Memoria (cont) 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. Se ilustra la descripción de las transferencias físicas y de control con la instrucción load y store word: LOAD: R[rt] <= MEM[ R[rs] + sign_ext(inm16)]; PC <= PC + 4 IR = M[PC], PC=PC+4; Unidad Instrucción. A = R[rs]; Unidad Registros. Lectura. S = add( A, signext(inm16)); Unidad Operaciones. M = M[S]; Unidad Memoria Datos. R[rt] = M. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] <= R[rt]; PC <= PC + 4 npc_sel = +4, WEpc, MemRd, WEir, MemCtr= Instrucciones ; Unidad Instrucción. WEa, WEb ; Unidad Registros. AluSrc = "Op32", ExtOp = sign, AluCtr = add, WEs ; Unidad Operaciones. MemWr, MemCtr= Datos. Unidad Memoria Datos.

29 Compartir Recursos: 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 e introduciendo AluOut y S. npcsel0 npcsel1 PC IR

30 Compartir Recursos: ALU 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 de el valor que esta almacenado en PC. 2 PC IR

31 Compartir Recursos: ALU (cont) Para compartir la ALU, también 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. 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 señal: branch = sign_ext(inm16)*4

32 Transferencias Físicas de Datos Con estas modificaciones las transferencias físicas de datos pueden expresarse como: ADD: R[rd] <= R[rs] + R[rt]; PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = add(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura. SUB: R[rd] <= R[rs] R[rt]; PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = sub(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura.

33 Transferencias Físicas de Datos (cont) SLT: if( R[rs] < R[rt]) R[rd] = 1; else R[rd] =0; PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = slt(a, B); Unidad Operaciones. R[rd] = S. Unidad Registros. Escritura. ORI: R[rt] <= R[rs] + zero_ext(inm16); PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A = R[rs]; Unidad Registros. Lectura. S = or(a, zero_ext(inm16) ); Unidad Operaciones. R[rt] = S. Unidad Registros. Escritura.

34 Transferencias Físicas de Datos (cont) LOAD: R[rt] <= MEM[ R[rs] + sign_ext(inm16)]; PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A = R[rs]; Unidad Registros. Lectura. S = add( A, sign_ext(inm16)); Unidad Operaciones. M = M[S]; Unidad Memoria Datos. R[rt] = M. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] <= R[rt]; PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A=R[rs], B=R[rt]; Unidad Registros. Lectura. S = add( A, sign_ext(inm16)); Unidad Operaciones. M[S] = B. Unidad Memoria Datos.

35 Transferencias Físicas de Datos (cont) BEQ: if ( R[rs] == R[rt] ) PC <= (PC +4) + sign_ext(inm16)*4 else PC <= PC + 4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. A = R[rs], B = R[rt]; Unidad Registros. Lectura. if (Equal) PC = S Unidad Operaciones. Unidad Instrucción. JUMP: PC <= (PC +4)&0xF add_26 *4 IR = M[PC], PC = add(pc, +4); Unidad Instrucción, Operaciones. PC = (PC)&0xF add_26 *4. Unidad Instrucción.

36 Señales de control ADD: R[rd] <= R[rs] + R[rt]; PC <= PC + 4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; WEa, WEb ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "busb", AluCtr = add, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura. SUB: R[rd] <= R[rs] R[rt]; PC <= PC + 4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; WEa, WEb ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "busb ", AluCtr = sub, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura.

37 Señales de control (cont) 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, WEpc, MemRd, WEir ; WEa, WEb ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "busb", AluCtr = slt, WEs ; Unidad Operaciones. RegDst = "rd", Memtoreg="alu", RegWr. Unidad Registros. Escritura. ORI: R[rt] <= R[rs] + zero_ext(inm16); PC <= PC + 4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; WEa ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "Op32", ExtOp = zero, AluCtr = ori, WEs ; Unidad Operaciones. RegDst = "rt", Memtoreg="alu", RegWr. Unidad Registros. Escritura.

38 Señales de control (cont) LOAD: R[rt] <= MEM[ R[rs] + sign_ext(inm16)]; PC <= PC + 4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; WEa ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "Op32", ExtOp = sign, AluCtr = add, WEs ; Unidad Operaciones. MemRd, WEm ; Unidad Memoria Datos. RegDst = "rt", Memtoreg = "mem", RegWr. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm16)] <= R[rt]; PC <= PC + 4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; WEa, WEb ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = "Op32", ExtOp = sign, AluCtr = add, WEs ; Unidad Operaciones. MemWr. Unidad Memoria Datos.

39 Señales de control (cont) 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, WEpc, MemRd, WEir ; WEa, WEb ; Unidad Registros. Lectura. AluSrcA = "busa, AluSrcB = branch, AluCtr = add, WEs; if (Equal) { npc_sel = S, WEpc }. Unidad Instrucción. J: PC <= (PC +4)&0xF add_26 *4 npc_sel = alu, AluSrcA = PC, AluSrcB= +4, AluCtr= add, WEpc, MemRd, WEir ; npc_sel = Jmp, WEpc. Unidad Instrucción.

40 Diseño de la unidad de control Se puede hacer 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. 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.

41 Diseño de la unidad de control (cont) De acuerdo al valor de las entradas se cambia al estado siguiente, cuando ocurre el canto del reloj. 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 unirse 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 unirse los cuartos estados de add y sub. Si se escribe en el registro B, se tendrá que el segundo estado de todas las instrucciones excepto el jump pueden unirse Si se hace esta reducción, las salidas de este segundo estado deben estar rotuladas con los códigos de operación de las instrucciones.

42 Diagrama de estados En el caso de diseñar un repertorio completo de instrucciones, no es práctico usar diagramas de estados 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). 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. El siguiente diagrama de estado muestra las diferentes secuencias de las señales de control para cada una de las instrucciones del simple repertorio hecho hasta ahora

43 Diagrama (cont)

44 Diagrama de estados: Asincrónicos (cont) 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 debe adaptarse a memorias con diferentes tiempo de acceso empleando la señal (asincrónica) de wait proveniente de la memoria. Ej.: if (Wait) {WEir = 0; WEpc = 0;} else {WEir = 1; WEpc = 1;} WE IR WE PC

45 Excepciones Las excepciones (e.g. división por zero) tienen que ser manejados ya que interrumpen el flujo de control normal Una excepción es una interrupción de ejecución no programada. Es una señal que avisa que ha ocurrido un evento que requiere ser atendido. El sistema debe estar programado para tomar una acción para manipular la excepción: registrando la dirección de la instrucción que causó la excepción, salvando el estado del procesador, tomando una acción correctiva, recuperando el estado del procesador y devolviendo el control al programa que causó la excepción. La manipulación de excepciones 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.

46 Excepciones (cont) Los tipos de excepciones incluyen: interrupciones y traps. Interrupciones: Causadas por eventos externos. Solicitación de dispositivo de entrada/salida Asincrónicas con la ejecución del programa. Deben ser manipuladas entre instrucciones. Suspenden y reanudan la ejecución del programa. Traps: Causadas por eventos internos. Condiciones de excepción (ej. overflow) Errores (ej. paridad) Fallas (ej. De página) Llamados al Sistema Operativo Intento de ejecutar instrucción ilegal. Sincrónicas con la ejecución del programa La instrucción puede ser reintentada o simulada y el programa continúa o éste debe ser abortado. Deben ser manejadas por un handler (manipulador).

47 Excepciones (cont) Formas de acceder al handler 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 al handler: 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/causa del error o excepción: En el stack. En registros especiales. EPC, BadVaddr, Status, Cause (MIPS) Cambios de banco o registros sombreados.

48 Excepciones (cont) MIPS agrega los siguientes recursos al camino de datos para excepciones: 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 coprocesador 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 registros: EPC, Cause, BadVAddr, y Status. Estos registros están implementados en el simulador Spim, y descritos en el manual/apuntes.

49 Modos de Ejecución / Operación Proporcionar múltiples modos de ejecución (e.g. usuario versus kernel) 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.

50 Excepciones en la máquina de estados Se ilustran las modificaciones al diagrama de estados para tratar excepciones de dos tipos: overflow (rebalse) e instrucción ilegal. Overflow o rebalse aritmético: Se emplea la condición generada por la ALU, para saltar a un estado que genera excepción. 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.

51 Excepciones en la máquina de estados (cont)

52 SPIM Exception Handler # 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] " 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] "

53 SPIM Exception Handler (cont) 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.

54 SPIM Exception Handler (cont) #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. syscall

55 SPIM Exception Handler (cont) 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

56 SPIM Exception Handler (cont) # 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

57 SPIM Exception Handler (cont) 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. 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.

58 Diseño Unid. Control: Diagrama de estados

59 Diseño de la Unidad de Control: Clásico Diseño Clásico A partir del diagrama de estados se generan ecuaciones lógicas para determinar el próximo estado Las ecuaciones de salida son en función del estado (se emplea el modelo de Moore, para máquinas secuenciales de estados finitos)

60 Diseño de la Unidad de Control: Clásico (cont) En cada estado se especifican los valores de las señales de control que determinan las transferencias entre registros. El cambio de estado ocurre en canto del reloj y la duración del reloj debe permitir la transferencia de la etapa más lenta. Del diagrama de estados se puede construir la siguiente tabla de verdad, que corresponde a la matriz de transiciones.

61 Diseño de la Unidad de Control: Clásico (cont) 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) La secuencia de estados depende sólo de la instrucción en ejecución La activación de algunas señales de control están condicionadas por los valores generados durante la ejecución.

62 Diseño de la Unidad de Control: Microprogramación Microprogramación 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 manera 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.

63 Diseño de la Unidad de Control: Microprog. (cont) Una representación de la información en la micromemoria, que se denomina microprograma es la siguiente: Denominamos microoperaciones a las señales de control que actúan sobre los recursos del camino de datos El secuenciador de microinstrucciones determina la siguiente microinstrucción a ejecutar: señales que controlan µpc = (µcontrol PC, COp, Funct)

64 Diseño de la Unidad de Control: Microprog. (cont) La ejecución de una instrucción puede verse como la ejecución de una serie de microinstrucciones para activar las diferentes microoperaciones de una etapa del procesador Es necesario el registro µpc, el que mantiene estable el bus de direcciones de la micromemoria, entre ciclos del reloj.

65 Diseño de la Unidad de Control: Microprog. Una alternativa de diseño es emplear un contador, con las funciones sincrónicas de poner en cero, incrementar en uno y precargar un valor, para el registro µpc. Lo anterior observando que en el diagrama de estados ocurren frecuentes transiciones al estado inicial (clear, si se denomina con binario cero al estado inicial) En la figura siguiente se ilustra el diseño del secuenciador mediante muxes, un sumador en uno y algunas redes combinacionales, que implementan el contador con las funciones especiales.

66 Diseño de la Unidad de Control: Microprog. (cont) Las redes combinacionales que determinan la próxima microinstrucción usando los bits de microcontrol y los códigos de operación (Cop, funct), suelen llamarse tablas de despacho. Con µpcsel = 0, se vuelve al estado inicial (búsqueda de instrucción o fetch); cuando es 1 se pasa a la microinstrucción siguiente; y cuando es 2 se determina la próxima microinstrucción usando la tabla de despacho.

67 Diseño de la Unidad de Control: Microprog. (cont) Se tienen dos modalidades de microprogramación: Microprogramación horizontal: Se especifica un bit para cada punto del control del camino de datos. Se tiene control total del paralelismo del camino de datos, pero emplea gran cantidad de bits de microcódigo. Microprogramación vertical: Se codifica el microcódigo usando campos en que se agrupan clases de microoperaciones. Luego se decodifica localmente para generar todas las señales de control. Permite una mejor abstracción de la microprogramación, pero la decodificación puede hacer la máquina más lenta; debido a los niveles que deben recorrerse para la decodificación.

68 Diseño de la Unidad de Control: Microprog. (cont) Pueden especificarse diferentes formatos, por ejemplo uno para especificar transferencias y otro para especificar saltos. Ejemplo: asumiendo una longitud de palabra de micromemoria de 21 bits: Transferencias: Saltos: Hay solo dos formatos, por eso el campo código ocupa un bit. Compromiso: Espacio versus tiempo. Dependiendo de la estructura del camino de datos, algunas señales de control no se pueden activar simultáneamente

69 Diseño del Microprograma Existen dos modalidades de diseño del microprograma: Orientada a las transferencias: Las microoperaciones son descritas por las transferencias físicas que realizan. Orientada a las señales de control: Microprogramación orientada a las señales de control utilizadas.

70 Diseño del Microprograma: Transferencias El microprograma se escribe en forma similar a un programa en un lenguaje de alto nivel. Cada línea, puede tener un rótulo que simboliza la microdirección, corresponde a una microinstrucción, que se realiza en un ciclo de reloj. Una microinstrucción es un secuencia de microoperaciones, separadas por comas. Las sentencias de control deben especificar cual será la próxima microinstrucción a realizar Pueden emplearse saltos a microdirecciones o activar funciones combinacionales (mediante las tablas de despacho) que determinan la próxima microdirección.

71 Diseño del Microprograma: Transferencias (cont) Ejemplo: El siguiente es el texto del microprograma que implementa el procesador multiciclo desarrollado anteriormente, pero con un segundo estado común para todas las instrucciones. Esto último implica que la instrucción jump se realizará en dos ciclos. Nótese que el estado siguiente al add y al sub se ha tratado como un solo estado equivalente (el ubicado en la microdirección writereg), lo cual requiere emplear otra tabla de despacho, ya que sólo puede existir un estado siguiente al estado En el siguiente diagrama la identificación del estado (e.g. 0000, 0001,..., 1100) es la microdirección.

72 Diseño del Microprograma: Transferencias (cont) Ejemplo: El siguiente es el texto del microprograma que implementa el procesador multiciclo desarrollado anteriormente, pero con un segundo estado común para todas las instrucciones. Esto último implica que la instrucción jump se realizará en dos ciclos. Nótese que el estado siguiente al add y al sub se ha tratado como un solo estado equivalente (el ubicado en la microdirección writereg), lo cual requiere emplear otra tabla de despacho, ya que sólo puede existir un estado siguiente al estado En el siguiente diagrama la identificación del estado (e.g. 0000, 0001,..., 1100) es la microdirección.

73 Diseño del Microprograma: Transferencias (cont) fetch: IR = MemInst[PC], PC = PC+4, µpc = µpc +1; A=R[rs], B=R[rt], if(cop == J) PC = (PC)&0xF add_26*4, µpc = T0[OP]; add: S = add(a, B), µpc = T1[OP]; sub: S = sub(a, B), µpc = µpc +1; writereg: R[rd] = S, µpc = 0. ori: S = or(a, zero_ext(inm16)), µpc = µpc +1; R[rt] = S, µpc = 0. loadword: S = add(a, sign_ext(inm16)), µpc = µpc +1; M = MemDat[S], µpc = µpc +1; R[rt] = M, µpc = 0. storeword: S = add(a, sign_ext(inm16)), µpc = µpc +1; MemDat[S] = B, µpc = 0. beq: if (Equal) PC = PC + sign_ext(inm16)] *4, µpc = 0.

74 Diseño del Microprograma: Transferencias (cont) Si mediante las 12 líneas formadas por los buses Cop y Funct, formamos un decodificador de la instrucción, generando el bus OP, de tres bits, ya que en el ejemplo se microprograman siete instrucciones, se tiene:

75 Diseño del Microprograma: Transferencias (cont) La tabla de despacho 0, es descrito por el siguiente mapa de memoria, asumiendo la dirección 0000 para la primera microinstrucción que realiza la búsqueda de la instrucción. Incluye columnas con los mnemónicos de las instrucciones y con los nombres simbólicos de la micro direcciones: La tabla de despacho 1 (equivale a una constante), puede describirse según:

76 Diseño del Microprograma: Transferencias (cont) Se definen tres microoperaciones para controlar la escritura en el registro PC. La señal PCWR, que debe activarse para escritura incondicional en PC PCBEQ que se activa si la instrucción en ejecución es una bifurcación PCJ que se activa si la instrucción en curso es un salto incondicional. Las señales npc_sel[1..0] seleccionan el contenido a escribir en el registro PC. La siguiente ecuación muestra cuando debe escribirse en el registro PC. WEPC = PCWR (PCBEQ & Equal) (PCJ & (OP== j))

77 Diseño del Microprograma: Transferencias (cont) La siguiente tabla muestra los contenidos del microprograma Se aprecia el µcontrol y las µoperaciones que cambian el PC.

78 Diseño del Microprograma: Transferencias (cont) Se vuelve a dibujar un esquema parcial de la unidad de instrucción y un esquema, en base a compuertas, para la lógica que forma la señal de control que habilita la escritura en el registro PC. npcsel0 npcsel1

79 Lógica Alambrada Usar un dispositivo programable (eg. PLD) con salidas de registro, para programar las funciones siguientes: Próximo estado = F1(Estado, Cod. Op., Funct) Señales de Control = F2(Estado, Cod. Op., Funct, Condiciones) Con esta arquitectura, las realimentaciones del estado son internas al dispositivo. Este esquema se emplea para diseñar unidades de control en firmware, o de lógica alambrada. Diseño que resulta más rápido que la lectura de memorias del caso anterior.

80 Microsecuenciación Una variante del esquema anterior (e.g. PLD) mediante diagramas de estado, usa para registrar el estado un contador sincrónico con funciones (sincrónicas): de carga paralela, clear e incrementar. Se programa la función de próximo estado en función de estas señales. Este esquema se denomina de microsecuenciación y se emplea en diseños de la unidad de control Las funciones de las señales de control del contador son: Cero: llevar al estado inicial. Inc: pasar al estado siguiente. Load: presetear un estado determinado

81 Microsecuenciación (cont) Un esquema general de la arquitectura para diseñar máquinas secuenciales, en base a un secuenciador, se ilustra a continuación:

82 Resumen de diseño de unidad de control El siguiente esquema muestra las diversas relaciones que existen y muestra las alternativas de diseño de la unidad de control.

83 Intro Segmentación (pipeline) En un pipeline, se ejecutan varias instrucciones, al mismo tiempo. Para esto, se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa. Si existen cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones. Para esto es preciso, que cada instrucción pase por las cinco etapas, y que cada etapa tenga su propio control. Se verá más adelante las razones por las cuales las instrucciones deben durar aproximadamente lo mismo. Para lograr esto, basta en el diagrama de estados, agregar estados en los que no se activen controles.

84 Intro Segmentación (pipeline) (cont)

85 Intro Segmentación (pipeline) (cont) Un esquema del control asociado a la etapa se muestra a continuación.

86 Diseño del Microprograma: Texto Referencia Se desarrollará el método para el camino multiciclo propuesto en el texto de referencia, que se ilustra a continuación:

87 Diseño del Microprograma: Texto Referencia (cont) En este procesador El camino de datos comparte la memoria para las instrucciones y los datos Los cálculos de direcciones de la unidad de instrucción se realizan en la ALU Para calcular la condición de igualdad en las bifurcaciones se emplea la ALU (ésta genera la señal cero). En el primer ciclo del reloj Se lee la memoria para obtener la instrucción a ejecutar, y al mismo tiempo se emplea la unidad de operaciones para calcular la dirección de la próxima instrucción (PC = PC + 4). En el segundo ciclo del reloj Se decodifica la instrucción a ejecutar (en la unidad de control), al mismo tiempo se leen los registros asociados a los campos Rs y Rt de la instrucción también se calcula empleando la unidad de operaciones la dirección de salto de la bifurcación (que se almacena en BR); y se genera la dirección de salto incondicional

88 Diseño del Microprograma: Texto Referencia (cont) En el tercer ciclo del reloj Se ejecutan las operaciones inmediatas y aritméticas o se calcula la dirección en el caso de instrucciones de transferencias. En este procesador Es necesario un registro adicional para almacenar la dirección de bifurcación, se emplea BR con este propósito. Debe destacarse que se calcula en todos los casos dicha dirección, aunque la instrucción no sea una bifurcación. En caso de instrucción de salto, en el segundo ciclo se tiene decodificada la instrucción y se pueden activar las señales de control de PC, para grabar la dirección de salto que se denomina Jaddr, en el diagrama. Además, en este caso, se requiere que la próxima microinstrucción sea de búsqueda de próxima instrucción(fetch). De este modo el segundo estado será común para todas las instrucciones Se leen los registros y se decodifica la instrucción, generándose las señales de control, y mediante la activación de la tabla de despacho se puede seguir procesando las diferentes instrucciones.

89 Diseño del Microprograma: Texto Referencia (cont) A continuación se ilustran la forma de generar la dirección de salto Jaddr, y un detalle de la unidad de operaciones modificada para compartir la unidad aritmético lógica El camino de datos no almacena en registro la salida de la ALU, por esta razón deben sostenerse las entradas a la ALU

90 Diseño del Microprograma: Texto Referencia (cont) fetch: IR = M[PC], AluOut=add(PC, 4), PC = AluOut, µpc = µpc +1; A=R[Rs], B=R[Rt],if(COp == J) PC = JAddr, add: AluOut=add(PC, sign_ext(inm16)] *4), BR=AluOut, µpc = T0[OP]. AluOut = add(a, B), µpc = µpc +1; R[Rd] = AluOut, AluOut = add(a, B), µpc = 0. sub: ori: AluOut = sub(a, B), µpc = µpc +1; R[Rd] = AluOut, AluOut = sub(a, B), µpc = 0. AluOut = or(a, zero_ext(inm16)), µpc = µpc +1; R[Rt] = AluOut, AluOut = or(a, zero_ext(inm16)), µpc = 0.

91 Diseño del Microprograma: Texto Referencia (cont) loadword: AluOut = add(a, signext(inm16)), µpc = µpc +1; Dout = M[AluOut], AluOut = add(a, signext(inm16)), µpc = µpc +1; R[Rt] = Dout, AluOut = add(a, signext(inm16)), µpc = 0. storeword: AluOut = add(a, signext(inm16)), µpc = µpc +1; M[AluOut] = B, AluOut = add(a, signext(inm16), µpc = 0. beq: AluOut= sub(a, B), if (Cero) PC = BR, µpc = 0. Notar: Son 14 microinstrucciones (separadas por ;).

92 Diseño del Microprograma: Texto Referencia (cont) La siguiente tabla muestra el contenido del microprograma, cada columna corresponde a una microinstrucción. En los renglones figuran los valores de las señales de control. Unidad de Control

93 Diseño del Microprograma: Texto Referencia (cont) Para ejecutar el salto en dos ciclos se requiere agregar una señal de control que se active cuando el código de operación es un salto incondicional. La tabla de verdad para la Tabla de Despacho 1, se ilustra a continuación. Las microdirecciones están en hexadecimal.

Diseño Procesador Multiciclo

Diseño Procesador Multiciclo Diseño Procesador Multiciclo En el modelo del procesador monociclo el reloj se ajusta a la ruta combinacional más crítica, por ejemplo la que se genera con la instrucción lw. Los recursos son utilizados

Más detalles

Diseño de un procesador multiciclo.

Diseño de un procesador multiciclo. Capítulo 13. 1 Diseño de un procesador multiciclo. 13.1 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

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

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

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 1 La Unidad de Control La instrucción

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

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

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

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

El procesador: camino de datos y. IEC UTM Moisés E. Ramírez G. control

El procesador: camino de datos y. IEC UTM Moisés E. Ramírez G. control El procesador: camino de datos y IEC UTM Moisés E. Ramírez G. control 1 Introducción Se diseñará una implementación que incluya las instrucciones más importantes. Instrucciones de acceso a memoria: lw,

Más detalles

Elementos constituyentes de la ejecución de un programa

Elementos constituyentes de la ejecución de un programa Micro-Operaciones En la ejecución de un programa en una computadora, se ejecutan instrucciones, que pueden subdividirse en ciclos: Búsqueda/Ejecución Cada ciclo se compone a su vez de una serie de operaciones

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

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

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

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

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones

Más detalles

El procesador. Datapath y control

El procesador. Datapath y control El procesador Datapath y control Introducción En esta parte del curso contiene: Las principales técnicas usadas en el diseño de un procesador. La construcción del datapath y del control. Estudiaremos la

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

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

Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante)

Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante) Estructura del tema etodología de sincronización Diseño de un procesador IPS

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

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 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

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

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

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR MICROINSTRUCCIONES FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR La memoria de las maquinas IAS consiste en 1000 posiciones de almacenamiento, llamadas palabras, de 40 digitos binarios (bits) cada

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

Diseño de la ruta de datos multiciclo. Procesador Multiciclo. Diseño de la ruta de datos multiciclo. Diseño de la ruta de datos multiciclo

Diseño de la ruta de datos multiciclo. Procesador Multiciclo. Diseño de la ruta de datos multiciclo. Diseño de la ruta de datos multiciclo lw sw mem. instrución banco reg. mu LU mem. dato mu Camino crítico mem. instrución banco reg. mu LU mem. dato setup beq mem. instrución banco reg. mu LU mu setup R mem. instrución banco reg. mu LU mu setup

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

El repertorio de instrucciones

El repertorio de instrucciones El repertorio de instrucciones 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

El procesador. Diseño del control

El procesador. Diseño del control El procesador Diseño del control Datapath MIPS simple Universidad de Sonora Arquitectura de Computadoras 2 MIPS simple El datapath anterior cubre instrucciones: Aritméticas-lógicas: add, sub, and, or y

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

La Unidad Aritmética

La Unidad Aritmética 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 4 5 En este capítulo profundizaremos la aritmética computacional

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

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

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

Unidad 3. Facultad de Ciencias Departamento de Electrónica

Unidad 3. Facultad de Ciencias Departamento de Electrónica Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del

Más detalles

instrucción(ir) y CP se incrementa en 1.

instrucción(ir) y CP se incrementa en 1. El registro contador de programa(cp) guarda la dirección de la próxima instrucción. La dirección se guarda en el registro de instrucción(ir) y CP se incrementa en 1. Si no hay bus directo de acceso a memoria

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 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

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

DISEÑO DEL PROCESADOR

DISEÑO DEL PROCESADOR DISEÑO DEL PROCESADOR Partes de un sistema digital Unidad de procesamiento: Se almacenan y transforman los datos Unidad de control: Genera las secuencias se señales de control de acuerdo al algoritmo de

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 Computadoras para Ingeniería

Arquitectura de Computadoras para Ingeniería Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1 Cuatrimestre 216 Dra. DCIC - UNS 1 Unidad de Control Provee las señales de control para la operación y coordinación de las componentes del procesador.

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

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

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División ELO311 Estructuras de Computadores Digitales Algoritmos de Multiplicación y División Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

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

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

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

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

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

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

TEMA 13. INTRODUCCION A SISTEMAS PROGRAMABLES Y MICROS

TEMA 13. INTRODUCCION A SISTEMAS PROGRAMABLES Y MICROS TEMA 13. INTRODUCCION A SISTEMAS PROGRAMABLES Y MICROS http://www.tech-faq.com/wp-content/uploads/images/integrated-circuit-layout.jpg IEEE 125 Aniversary: http://www.flickr.com/photos/ieee125/with/2809342254/

Más detalles

El siguiente es un diagrama funcional del procesador MIPS, que se estudiará en este curso. Memoria

El siguiente es un diagrama funcional del procesador MIPS, que se estudiará en este curso. Memoria 4. 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 assembler.

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

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

Tema 4. La Unidad de Control

Tema 4. La Unidad de Control Enunciados de problemas Tema 4. Arquitectura de Computadores Curso 2009-2010 Tema 4: Hoja: 2 / 22 Tema 4: Hoja: 3 / 22 Base teórica es el órgano de gobierno del computador. Es el elemento encargado de

Más detalles

Diseño de la ruta de datos y la unidad de control

Diseño de la ruta de datos y la unidad de control Diseño de la ruta de datos y la unidad de control contenidos. Introducción 2. Diseño de la ruta de datos (monociclo) 3. Diseño del controlador (monociclo) 4. Diseño de la ruta de datos (multiciclo) 5.

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

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

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

ELO311 Estructuras de Computadores Digitales. Pipeline (Segmentación)

ELO311 Estructuras de Computadores Digitales. Pipeline (Segmentación) ELO311 Estructuras de Computadores Digitales Pipeline (Segmentación) Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization

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

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

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

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación Segmentación: Mejora del rendimiento IEC UTM Moisés E. Ramírez G. 1 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

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

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

Introducción a las Computadoras. Capítulo 3 Buses del Sistema

Introducción a las Computadoras. Capítulo 3 Buses del Sistema Introducción a las Computadoras Capítulo 3 Buses del Sistema Concepto de Programa Los sistemas de propósito específico no son flexibles El Hardware de propósito general puede realizar diferentes tareas,

Más detalles

Arquitectura de Computadoras para Ingeniería

Arquitectura de Computadoras para Ingeniería rquitectura de Computadoras para Ingeniería (Cód. 7526) Cuatrimestre 26 Dra. Dana K. Urribarri DCIC - UNS Dana K. Urribarri C 26 Modelos de arquitecturas Dana K. Urribarri C 26 2 Modelo von Neumann El

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

Organización del Computador. Microprogramación

Organización del Computador. Microprogramación Organización del Computador Microprogramación Consideraciones Una única ALU, una única Memoria, un único Banco de Registros. Problemas con el uso de los recursos?? Dos tipos de problemas: Una instrucción

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

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

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

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL 1. ESTRUCTURA GENERAL DE UN COMPUTADOR VON-NEUMANN. Unidad de memoria (UM) Unidad Aritmético Lógica (UAL) Unidad de control (UC) Buses. Unidades de

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

Introducción al simulador

Introducción al simulador Departamento de Automática 1 / 17 Índice Proyecciones de dispositivos de entrada/salida Registros Instrucciones 2 / 17 Arquitectura del simulador Sitio web https://parraman.github.io/asm-simulator/ Proyecto

Más detalles

Estructura y Tecnología de Computadores II (Gestión y Sistemas)

Estructura y Tecnología de Computadores II (Gestión y Sistemas) Temario Estructura y Tecnología de Computadores II (Gestión y Sistemas) Contenido del temario El temario propuesto en la asignatura coíncide con los siguientes apartados del texto base teórico Estructura

Más detalles

Organización del Computador. Máquina de von Neumann Jerarquía de Niveles

Organización del Computador. Máquina de von Neumann Jerarquía de Niveles Organización del Computador Máquina de von Neumann Jerarquía de Niveles El modelo de Von Neumann Antes: programar era conectar cables (ENIAC) Hacer programas era mas una cuestión de ingeniería electrónica

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

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

Memoria y Buses. Organización de Computadoras Universidad Nacional de Quilmes

Memoria y Buses. Organización de Computadoras Universidad Nacional de Quilmes Memoria y Buses Organización de Computadoras Universidad Nacional de Quilmes Índice 1. Memoria Principal e instrucciones 1 1.1. Operaciones sobre la memoria.................... 3 1.2. Interconexión.............................

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

LABORATORIO DE COMPUTADORAS

LABORATORIO DE COMPUTADORAS U.N.J.U. F.I. INGENIERÍA INFORMÁTICA LABORATORIO DE COMPUTADORAS ARQUITECTURA BÁSICA DE LAS COMPUTADORAS TEMA: ARQUITECTURA Y MICROPROGRAMACIÓN Conceptos Básicos Computadora Digital: implica que la información

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: 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

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión

Más detalles

Primer Microprocesador: 4004, Intel, año bits de ancho de palabra de datos Intel 8 bits dir. 64K Z80

Primer Microprocesador: 4004, Intel, año bits de ancho de palabra de datos Intel 8 bits dir. 64K Z80 2-1 Primer Microprocesador: 4004, Intel, año 1971. 4 bits de ancho de palabra de datos. 1971 Intel 4 bits dir. 4K 1972 Intel 8 bits dir. 16K 1973 Intel 8 bits dir. 64K 1977 Intel 8 bits dir. 64K 1978 Intel

Más detalles

ELO311 Estructuras de Computadores Digitales. Ensamblador MIPS

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

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

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador Ejercicios del tema 4. El procesador Estructura del procesador elemental WepSIM Address Bus Data Bus Control Bus C0 Ta Internal Bus RA RB RC LC MAR T9 Memory MRdy BE ADDR DATA R W A31-A0 BE3-BE0 D31-D0

Más detalles

Contenidos: Definiciones:

Contenidos: Definiciones: Contenidos: Definiciones. Esquema de un ordenador. Codificación de la información. Parámetros básicos de un ordenador. Programas e instrucciones. Proceso de ejecución de una instrucción. Tipos de instrucciones.

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos de los Computadores Grado en Ingeniería Informática 7. Camino de datos y unidad de control o Fundamentos de los Computadores Grado en Ingeniería Informática Introducción La versatilidad es una característica deseable de los sistemas digitales Un sistema

Más detalles