Diseño de un Procesador. (Monociclo)

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

Download "Diseño de un Procesador. (Monociclo)"

Transcripción

1 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á ejecutar el procesador. Se elige modelo Carga-Almacenamiento, y la siguiente especificación de instrucciones en assembler del procesador: Suma, resta y slt ( R ) add rd, rs, rt sub rd, rs, rt slt rd, rs, rt Or inmediato ( I ) ori rt, rs, inm6 Carga y Almacenamiento(I). lw rt, inm6(rs) sw rt, inm6(rs) Bifurcación ( I ) beq rs, rt, rótulo Salto incondicional. ( J ) j rótulo op rs rt rd shamt funct bits bits bits bits bits 6 bits Formato R op rs rt inmediato bits bits bits 6 bits Formato I op add bits 26 bits Formato J Figura 2. Especificación de intrucciones, Si bien el repertorio es restringido, es lo suficientemente poderoso para representar una gran variedad de algoritmos. Nótese que en este caso particular no es necesario el campo que especifica el tamaño de los corrimientos, y tampoco se requiere un código de operación de 6 bits. Sin embargo, se mantendrá el mismo formato de instrucciones del procesador MIPS, ya que lo que importa es ilustrar los principios de diseño del procesador (no hay especificaciones de entrada- salida, frecuencia del reloj, etc.).

2 2 Estructuras de Computadores Digitales 2.2. Manual de Programación MIPS reducido. Códigos Binarios Lenguaje Simbólico. Assembler. OP Rs Rt Rd Shamt Funct Nemo Campo Campo2 Camp3 Descripción Fte Fte2 Dst R add Dst, Fte, Fte2 #Addition Fte Fte2 Dst R sub Dst, Fte, Fte2 #Subtract Fte Fte2 Dst R slt Dst, Fte, Fte2 #Set Less Than jmp26 J j jmp26 #Jump Fte Fte2 label6 I beq Fte, Fte2, label6 #Branch on Equal Fte Dst inm6 I ori Dst, Fte, inm6 #OR Immediate Rbase Dst offset6 I lw Dst, Offset6(RBase) #Load Word Rbase Fte offset6 I sw Fte, Offset6(RBase) #Store Word Figura 2.2 Códigos binarios, descripción assembler. La especificación anterior, establece el número máximo de registros, el largo de palabra de la memoria y el espacio de direccionamiento. Se elige tener una operación con operando inmediato para visualizar los requerimientos de este tipo de instrucciones. Se decide implementar una bifurcación y un salto incondicional, para visualizar la forma de resolver por hardware la secuenciación y control del flujo de las instrucciones. La bifurcación junto a la instrucción de comparación slt, permiten implementar todos los operadores relacionales, que se emplean para programar condiciones. El nombre monociclo, tiene que ver con los mecanismos de sincronización(o de temporización) que se emplearán en el diseño; y cómo se entenderá más adelante éste es el sistema más simple que puede emplearse Transferencia entre registros. El siguiente paso es detallar, en un lenguaje adecuado, los movimientos de datos y las operaciones que se efectúan sobre ellos. Se empleará un lenguaje de transferencias entre registros (se usa el Lenguaje C) para documentar cada una de las instrucciones. Deben especificarse los operandos de entrada y salida, la operación a realizar y cuál será la próxima instrucción a realizar. Las instrucciones de bifurcación efectúan saltos relativos a PC. El programa que carga la instrucción en la memoria efectúa el siguiente cálculo, para determinar el valor binario del campo inmediato de 6 bits: Si PC contiene la dirección de la instrucción bifurcación, y rótulo es la dirección de la instrucción de la instrucción que debe ejecutarse si se efectúa la bifurcación, entonces:

3 Diseño de procesador monociclo 3 rotulo ( PC 4) inm 6 4 Calcula la diferencia en bytes, y luego determina el número de instrucciones, dividiendo por cuatro. El valor resultante debe poder expresarse con 6 bits; en caso que exceda el rango debe planearse la bifurcación usando más instrucciones. Si despejamos rótulo, de la relación anterior, se obtiene el valor que debe escribirse en PC, en caso de que se efectúe la bifurcación: rotulo nuevo _ valor _ de _ PC ( PC 4) sign _ ext( inm 6)*4 Transferencias Lógicas: ADDU R[rd] = R[rs] + R[rt]; PC = PC + 4 SUBU R[rd] = R[rs] R[rt]; PC = PC + 4 SLT R[rd] = R[rs] < R[rt]? : ; PC = PC + 4 ORI R[rt] = R[rs] or zero_ext(inm6); PC = PC + 4 LOAD R[rt] = MEM[ R[rs] + sign_ext(inm6)]; PC = PC + 4 STORE MEM[ R[rs] + sign_ext(inm6) ] = R[rt]; PC = PC + 4 BEQ if ( R[rs] = = R[rt] ) PC = (PC +4)+[sign_ext(Inm6)]*4; else PC = PC + 4 JUMP PC = (PC +4)&xF + add_26*4 El conjunto muestra los diferentes modos de direccionamiento para datos: relativo a registros, registro base más desplazamiento; y los modos de direccionamiento para el control de flujo de ejecución de las instrucciones: saltos incondicionales (salto absoluto dentro de un segmento) y bifurcaciones (saltos relativos a PC). Nótese que en bifurcaciones el campo inmediato representa el número de instrucciones, no de bytes. Por esto aparece multiplicado por cuatro. Se han introducido como funciones las extensiones con y sin signo; empleando zero_ext para extensión lógica o relleno de la parte más significaticva con ceros. Y sign_ext para extensión con signo o relleno con el bit del signo del campo inm6 (el bit ) de la parte más significativa Componentes físicas. A continuación deben especificarse las componentes físicas que se emplearán en el diseño. Algunas de ellas serán de tipo combinacional y otras serán de tipo almacenamiento (secuencial). Obviamente las componentes de hardware deben poder realizar electrónicamente las transferencias físicas que demandan las especificaciones anteriores Recursos Combinacionales: ALU Se requiere una Unidad Aritmético Lógica que pueda sumar, restar y realizar el or de los operandos de entrada. Se empleará la ALU diseñada anteriormente, la siguiente tabla resume las funciones de la Unidad Aritmético Lógica.

4 4 Estructuras de Computadores Digitales AluCtr[2..] Resultado Función Bnegate Operación ALU OpA & OpB and OpA OpB or OpA + OpB add OpA - OpB sub OpA < OpB? : slt OpA OpB AluCtr Resultado Calculador de PC+4 Figura 2.3 Descripción ALU Se requiere un sumador que permita calcular PC+4. Podría emplearse la ALU anterior, pero teniendo un recurso adicional, puede efectuarse en paralelo (en concurrencia) las operaciones en la ALU y el cálculo de la nueva dirección. La constante 4 se forma cableando a Vcc el bit 2; el resto de los bits se conectan a tierra. PC Suma PC Unidad extensora. Figura 2.4 Cálculo de dirección de próxima instrucción Se requiere una unidad que permita extender lógicamente y con signo un operando(o campo de la instrucción) de 6 bits a un resultado de 32.

5 Diseño de procesador monociclo ExtOp ExtO Op. de 32 p zero_ext(inm6) sign_ext(inm6) Inm6 Extensor Op32 Operando de 32 bits Multiplexor Figura 2. Unidad extensora de 6 a 32 bits Se requiere un multiplexor que permita canalizar diferentes señales hacia una de las entradas de la ALU o hacia la unidad que calcula la nueva dirección. CtrMux CtrMux Out S S S2 S S S2 2 Out Figura 2.6 Multiplexor La necesidad de multiplexores puede advertirse notando que se tienen diversos operandos que ingresan a la ALU, y también que existen diferentes contenidos para la dirección de la próxima instrucción. Ejemplo de diseño de multiplexor. El diseño digital, en base a compuertas, del bit de salida Out_i, de un multiplexor de 4 vías a uno, se ilustra en el siguiente diagrama:

6 6 Estructuras de Computadores Digitales Di C C Out_i Ai Bi Ci Di Ci Bi Ai C Out_i C Figura 2.7 Diseño de Multiplexor Se requieren 32 circuitos similares al anterior, para construir un mux de 32 bits. Diseños más realistas de multiplexores, empleando compuertas de transmisión CMOS, puede verse en el punto del texto "Contemporary Logic Design" de Randy H. Katz. Ejemplo de diseño de extensor. A continuación se muestra la implementación del extensor lógico y aritmético, mediante un multiplexor de dos vías a uno. Las 6 salidas, más significativas, denominadas <3..6> de Op32, están conectadas a la salida única del mux. tierra bit de Inm6 <..> Inm6 ExtOp <3..6> de Op32 <3..> de Op32 Figura 2.8 Diseño de extensor Detector de Igualdad. La instrucción BEQ requiere un circuito para determinar la igualdad de dos palabras de 32 bits. Esto no sería necesario si se desea utilizar la ALU anterior para efectuar la comparación; en este caso, ésta debe proveer la operación de resta y la condición de resultado igual a cero, lo cual implica operandos iguales en las entradas.

7 Diseño de procesador monociclo 7 OpA OpB Detector de Igualdad Equal Ejemplo de diseño de detector de igualdad. Figura 2.9 Detector de igualdad El diseño lógico del comparador de igualdad se ilustra empleando compuertas or exclusivo, para largo de operandos de entrada igual a tres. Del cual puede inducirse el diseño de un comparador de 32-bits. B2 A2 B A B A A=B Figura 2. Diseño detector de igualdad Como se verá más adelante el disponer de esta componente es importante en el diseño de arquitecturas más avanzadas. Por esta razón se la incluirá en el diseño inicial Recursos de Almacenamiento. Memorias y Registros Memorias. Se requiere una memoria para almacenar las instrucciones que serán ejecutadas; esta memoria si se supone grabada previamente con un programa, sólo será leída durante la ejecución (ROM). También se requiere una memoria para leer y escribir datos (RAM). Podría ocuparse una sola memoria para datos e instrucciones, pero en un diseño inicial se elige tener recursos separados. Además el modelo empleado debe ser lo suficientemente general para modelar diseños de memoria más realistas (caché y virtual) que se verán más adelante.

8 8 Estructuras de Computadores Digitales Inactivo MemRd MemWr MemRd Dirección Inactivo WrEn AddrI Rd Memoria Instrucciones Dout Dirección Din WrEn Rd AddrD Memoria Datos Dout Figura 2. Modelos de memorias Con Write Enable activado(asertado) se produce la escritura del bus de datos de entrada (Din) en la memoria, en la celda direccionada por el bus de direcciones, con el canto activo del reloj(de bajada de acuerdo al esquema). Además es preciso tener estable: el bus de direcciones y los datos en la entrada; y activada la señal de control de escritura MemWR. Luego del tiempo de acceso se obtiene: M[Addr] = Din Con Write Enable desactivado: no cambia la salida de la memoria, siempre y cuando no se cambie el bus de direcciones o se active control de escritura. Desde que se activa la señal de lectura de memoria (MemRd) y estando estable el bus de direcciones, transcurre el tiempo de acceso hasta que se tiene: Dout =M[Addr]. En lectura, el funcionamiento de la memoria puede considerarse combinacional. Esto se insinúa en el diagrama, mostrando segmentada la señal de reloj Arreglo de registros. Debido al modelo carga-almacenamiento se requiere disponer de un arreglo de registros para intercambiar datos con la memoria. RegWr Rs Rt Rw busw 32 Ra Rb Rw WE 32 Registros 32-bit busa busb Figura 2.2 Arreglo registros

9 Diseño de procesador monociclo 9 Con Write Enable, RegWr, activado (asertado) se produce la escritura en el registro, con el canto activo del reloj. Se obtiene: R[Rw] = busw Con Write Enable desactivado: no cambian las salidas del arreglo. Entonces: busa y busb mantienen sus valores siempre y cuando no se cambien las direcciones Ra y Rb. Los buses de salida toman valores válidos después de un tiempo de haber actualizado las direcciones Ra y Rb(el comportamiento en lectura también puede considerarse una operación combinacional). La operación de lectura puede escribirse: busa = R[ Ra ] ; busb = R[ Rb ] Contador del Programa(Program Counter). Se requiere un registro para almacenar la dirección de la instrucción que está en ejecución (PC), ya que este valor debe sostenerse para formar la suma PC+4; y el nuevo contenido de PC, en caso de bifurcación o salto. WE RIn PC ROut Figura 2.3 Contador del programa (program counter) Con Write Enable activado (asertado) se produce la escritura en un registro con el canto activo del reloj. PC = RIn Con Write Enable desactivado, no cambia la salida del registro, y se tiene: ROut = PC Debe observarse que todos los elementos que requieren de sincronización tienen incorparada la señal de reloj, y además una habilitación de escritura (Write Enable) Registro de Instrucción. Si no se modifica la dirección de la memoria de instrucciones, su contenido no cambia, y no es necesario disponer de un registro de instrucción IR, que contendría la instrucción que está en ejecución, con todos los campos de ésta disponibles.

10 Estructuras de Computadores Digitales Ejemplo de diseño del arrego de Registros. El siguiente diagrama muestra la estructura interna del arreglo de 32 registros. El registro R, almacena una constante y es sólo de lectura. No se muestran los registros R2 a R3. RegWr R Ra Rb RW Decodificador. a 32 3 WE R R R R3 3 busa busw WE3 R 3 R R R3 3 busb Figura 2.4 Diseño arreglo de registros Los controles de selección de registro de lectura (Ra y Rb) operan sobre muxes de 32 salidas. El decodificador de RW (selección de registro de escritura) habilita sólo una de las 32 salidas del decodificador. El control de escritura en registro (RegWr) habilita sólo una de las 3 señales WE que permiten capturar la entrada y almacenarla en el registro. El bus de escritura (busw) coloca el dato en todas las entradas de los registros; pero sólo será escrito el que tenga su WE habilitado, mediante el and de RegWr y la única salida activa del decodificador. 2. Camino de Datos. Es el siguiente paso en el diseño del procesador. Consiste en ir interconectado los recursos de hardware disponibles, de tal modo que puedan realizarse las transferencias físicas requeridas.

11 Diseño de procesador monociclo 2... Determinación de la próxima instrucción. Comenzaremos con un diseño para la determinación del próximo valor del PC. Debe existir un camino para los datos que permita lograr la transferencia: PC = PC + 4 Se muestran, en el diagrama siguiente, las conexiones necesarias entre un sumador y el registro PC. Camino de datos para realizar: PC = PC + 4: Suma WE PC PC PC+4 PC 4 Figura 2. Camino de datos para calcular dirección de próxima instrucción A continuación se muestra un diagrama, que ilustra el uso de mux y la incorporación de recursos adicionales, para implementar las transferencias hacia PC, debidas a las instrucciones de bifurcación y salto:

12 IR PC 2 Estructuras de Computadores Digitales npc_sel[..] 4 SigExt <<2 2 Inm6 (PC+4)[3..28] add26.. Figura 2.6 Camino de datos para implementar instrucciones de bifurcación y salto La señal de control npc_sel debe ser cero cuando está en ejecución una instrucción que no sea BEQ o jump. En este caso, en la salida del mux se obtiene PC+4. También npc_sel debe ser cero, en caso de una instrucción BEQ y que la condición no sea de igualdad. Cuando la instrucción es un BEQ y existe la condición de igualdad debe tenerse npc_sel igual a uno. Se ilustra un registro(virtual) IR que contiene la instrucción que está en ejecución(es decir, contiene la información de los campos de la instrucción que permiten calcular las direcciones de salto). Las líneas a, de este registro, se conectan a la entrada de un bloque que extiende el signo, para disponer de 32 bits, formando así: Sign_ext(Inm6). Luego se muestra un circuito que multiplica por 4, para convertir el offset en número de palabras, como lo requiere la semántica de la instrucción. Esto, físicamente, consiste en un reordenamiento de los cables y en la introducción de dos señales de tierra (Cero lógico) en las posiciones y del bus. Entonces se obtiene a la entrada del segundo sumador: [Sign_ext(Inm6)]*4. Finalmente, con npc_sel =, se tiene, a la salida del mux, la dirección de la próxima instrucción que será ejecutada.

13 Diseño de procesador monociclo 3 El caso del jump (npc_sel = 2), se logra interpretar electrónicamente mediante la formación de un bus, con las señales a 2 de la instrucción que está en ejecución(en el registro virtual IR), y las cuatro más significativas de PC+4, y agregando dos tierras en las posiciones y. En este caso con npc_sel = 2, a la salida del mux, se obtiene: (PC +4)&xF+(add_26*4) Nótese que en el hardware se dispone del valor de PC(a la salida del registro PC) y de PC+4 a la salida del sumador. Por esta razón, también es posible implementar la instrucción de salto según: PC &xf+(add_26*4) Sin embargo, es tradicional calcular direcciones de salto o bifurcación relativas a la dirección de la próxima instrucción Camino de datos entre PC y Memoria de Datos. Basta mantener permanentemente activada la señal de lectura de la memoria. Se han omitido los símbolos de control sincrónico, y la señal de control WE de la memoria de instrucciones. Mientras no se cambie el valor de PC ( el cambio ocurre en el canto de bajada del reloj y cuando WE PC =); es decir, entre dos cantos de bajada del reloj estará estable el bus de direcciones de la memoria de instrucciones. Si este tiempo es mayor que el de ciclo de la memoria, y por lo tanto que el de acceso a memoria, la salida busir estará estable con el valor binario de la instrucción que debe ejecutarse. <3..26> COp WE PC <..> Funct "" <..> Inm6 <..> Rd PC AddrI Rd Memoria Instrucciones busir <2..6> Rt <2..2> Rs <2..> add_26 Figura 2.7 Memoria de programa y decodificación de la instrucción Se ilustra la obtención de los diferentes campos necesarios para la interpretación de las instrucciones, mediante la descomposición del bus IR(que antes se ha denominado registro virtual). Se han agregado los nombres de los campos al bus de instrucción.

14 PC 4 Estructuras de Computadores Digitales 2..3 Unidad de instrucción. A continuación se muestra el camino de datos que interconecta la unidad que determina la próxima instrucción a ejecutar, con la memoria de instrucciones. La conexión de los cuatro primeros bits de (PC+4)[3..28], permiten formar la dirección de salto incondicional. La señal Write Enable del registro PC, puede estar permanentemente alta, de esta forma se modifica el valor del Contador del Programa solamente en los cantos de bajada del reloj. 4 SigExt <<2 Inm6 (PC+4)[3..28] add_26.. npc_sel 2 WE PC "" Rd AddrI busir Memoria Instrucciones COp <3..26> <.. > <2..2> <2..6> <..> <..> <2..> add_26 Funct rs rt rd Inm6 Rs Figura 2.8 Camino de datos Unidad de Instrucción Puede abstraerse el diagrama anterior en un bloque que determina y decodifica la instrucción a ejecutar, y que además calcula la dirección de la próxima instrucción a realizar. Si la denominamos Unidad de Instrucción, puede representársela según:

15 Diseño de procesador monociclo npc_sel Unidad de Instrucción busir <3..26> COp <..> Inm6 <..> rd <2..6> rt <2..2> rs Figura 2.9 Unidad de Instrucción Camino de Datos para operaciones de tipo R. Se ilustran las conexiones necesarias entre el arreglo de registros y la unidad aritmético lógica, para poder realizar las transferencias físicas que implementan las operaciones de suma y resta. Debe notarse que se requiere cablear desde el bus decodificado de instrucciones, el campo Rd a la entrada RW(que establece el valor del registro en que se escribirá). Debido a la realimentación, desde la salida de la ALU hacia la entrada del arreglo de registros, es preciso sincronizar la escritura(con RegWr). RegWr AluCtr rs rt RW = rd busw 32 Ra Rb RW W WE 32 Registros 32-bits busa busb AluOut Figura 2.2 Camino de datos para operaciones de tipo R 2... Requerimientos de tiempo para la escritura en el arreglo de registros: Desde el canto de bajada del reloj, transcurre un tiempo hasta que la salida del registro PC está estable. Luego debe esperarse el tiempo de acceso de la memoria de instrucciones para tener datos válidos en el bus de datos de la memoria. Nótese que entre cantos de reloj no cambia el valor de PC.

16 6 Estructuras de Computadores Digitales La señal WE PC es activada en otra parte del circuito (que no se muestra en el diagrama, y que se denomina unidad de control). Debe ser activada antes del canto del reloj. Los bits, ya estables del campo de operación deben ser decodificados en la unidad de control y activar la función de la ALU, que puede ser sumar o restar; esto demora un tiempo; en el diagrama se denomina Retardo de Propagación a través de la Unidad de Control. Se asume igual tiempo para que esté estable el valor de Rd en la entrada RW del arreglo de registros. (Como se verá más adelante el campo Rd debe pasar por un mux antes de ingresar al arreglo). No se indica en el diagrama, pero la unidad de control debe poner en uno el write enable del arreglo de registros, para preparar la escritura (cuando llegue el reloj). En el diagrama se aprecia un tiempo, un poco mayor que el anterior, hasta que se tienen estables las señales en los buses de salida del arreglo, es el tiempo de acceso al arreglo de registros. Ahora debe esperarse que esas señales se propaguen a través de la ALU para tener un resultado estable. Adicionalmente debe contemplarse el tiempo de setup del arreglo de registros y una provisión para absorber las variaciones del reloj(skew). Las consideraciones anteriores permiten determinar la máxima frecuencia del reloj para operación sincrónica, de las operaciones ADD y SUB. El diagrama muestra un tiempo de acceso a la memoria de instrucciones muy pequeño, y como se verá más adelante dicho tiempo puede ser aleatorio, ya que se puede estar leyendo de la memoria caché; o bien haberse producido un fallo en ésta, y debe esperarse la renovación de la caché a través de una lectura de memoria principal(lo cual es órdenes de magnitud mayores que el tiempo indicado en el diagrama). Más aún, si el sistema tiene memoria virtual, y si el segmento del programa no se encuentra en memoria principal, por una falla de página, deberá esperarse el tiempo(mucho mayor aún) para leer desde el disco y escribir en la memoria principal.

17 Diseño de procesador monociclo 7 Clk Retardo Registro Valor anterior PC Valor anterior IR Valor anterior PC+4 Valores anteriores Señales de control Valores anteriores busa, busb Nuevo valor PC+4 Nuevo valor PC Tiempo Acceso Memoria Instrucciones Nuevo valor IR Rs, Rt, Rd, Op, Inm6, add26 Tiempo Propagación Sumador Unidad de Instrucción Retardo de Propagación en Unidad de Control Nuevos valores RegWr, RW, WE PC, AluCtr,... Tiempo Acceso Arreglo Registros Nuevos valores busa, busb Valores anteriores AluOut Propagación Mux Valor anterior de busw en ADD, SUB Setup Registro y Skew del reloj. Nuevos valores de AluOut en ADD, SUB. Nuevo valor de busw Figura 2.2 Cálculo de la frecuencia del reloj La frecuencia del reloj se ha determinado para cumplir los requerimientos de tiempo de las instrucciones ADD y SUB. Debe efectuarse similar análisis para cada una de las instrucciones y la que tenga mayor tiempo de ejecución es la que determina la frecuencia del reloj. Incluso las instrucciones que tengan un tiempo de ejecución menor se ejecutarán al ritmo de la más costosa en tiempo, en la estructura que se está desarrollando (monociclo, ya que existe un solo reloj).

18 Extensor 8 Estructuras de Computadores Digitales Nótese que en este esquema, la unidad de control no puede ser una máquina secuencial sincrónica con el mismo reloj (CLK), pues debe efectuar varias decisiones en un mismo ciclo del reloj Modificaciones al camino de datos para procesar instrucciones inmediatas. Debido a que la instrucción inmediata escribe en Rt, es preciso agregar un mux controlado por la señal RegDst. Entonces cuando la instrucción es ADD o SUB, RegDst tendrá valor cero; y cuando la instrucción sea ORI, RegDst valdrá uno. De esta forma es posible compartir el arreglo de registros entre los dos tipos de instrucciones. Como el segundo operando del or inmediato es la extensión lógica del campo inmediato 6 (se rellena con ceros, los quince bits más significativos) y si se desea utilizar(compartir) la misma ALU de las instrucciones aritméticas anteriores, debe agregarse otro mux controlado por la señal AluSrc. Así entonces, si la instrucción es ADD o SUB, AluSrc valdrá cero, llevando a la entrada inferior de la ALU el valor de R[Rb]; y si la instrucción es ORI, AluSrc tomará valor uno, conduciendo ahora el valor de Op32 hacia la ALU. Además se indica en el diagrama la unidad extensora. RegDst RegWr ExtOp AluSrc AluCtr rd rt Inm6 rs rt RW busw 32 Ra Rb Rw WE 32 Registros 32-bit busa busb Op32 AluOut Figura 2.22 Modificaciones para implementar transferencias en instrucciones inmediatas No se requieren conexiones adicionales, en el camino de datos anterior, para poder realizar las transferencias físicas que implementan el direccionamiento de las instrucciones de carga y almacenamiento. La dirección efectiva se calcula en la misma ALU; canalizando en el busa el contenido de R[rs]; y en la otra entrada de la ALU, colocando la extensión con signo del operando inmediato6 (llevado a través del mux con AluSrc = ).

19 Diseño de procesador monociclo Camino de datos para accesar la memoria de datos. Es preciso conectar al bus de direcciones de la memoria de datos la salida de la ALU, de esta forma puede realizarse el direccionamiento relativo a registro base más desplazamiento para las instrucciones de carga y almacenamiento. Debido a que la instrucción Load moviliza la salida de la memoria hacia el arreglo de registros; y las instrucciones aritmético-lógicas escriben en el arreglo de registros la salida de la ALU, es preciso agregar un multiplexor comandado por la señal MemtoReg. La instrucción Store guarda en la dirección efectiva de la memoria el contenido del busb; se agrega entonces esa conexión al camino de datos. Finalmente queda el siguiente camino de datos: RegDst RegWr ExtOp AluSrc AluCtr MemWr MemtoReg MemRd rd rt Inm6 busw 32 Ra WE Rb RW 32-bits rs rt 32 Registros RW 32 Op32 Extensor busa 32 busb Din AluOut Addr WrEn Rd Memoria Datos Dout Figura 2.23 Modificaciones para implementar instrucciones de carga y almacenamiento Se agrega detector de igualdad. Se agrega una red combinacional para detectar la igualdad de busa y busb. La señal Equal se requiere para controlar las transferencias en instrucciones de bifurcación.

20 2 Estructuras de Computadores Digitales RegDst RegWr ExtOp Equal AluSrc AluCtr MemWr MemtoReg MemRd rd rt Inm6 rs rt busw 32 Ra WE Rb RW 32-bits Registros RW 32 Extensor busa Igual busb Op32 Din AluOut AddrD WrEn Rd Memoria Datos Dout 2.6. Unidades funcionales. Figura 2.24 Generación de condición Equal Puede simplificarse los esquemas anteriores definiendo bloques: la Unidad de Registros (o de Memoria Local), la Unidad de Operaciones, y la Unidad de Memoria (de datos). Cuyos diagramas con el detalle interno, se ilustran a continuación: RegDst RegWr ExtOp Equal AluSrc AluCtr rs rt rd RW 32 Ra Rb Rw WE 32 Registros 32-bit 32 busa 32 busb busa busb Igual AluOut busw Extensor Op32 busb Inm6 Figura 2.2 Unidad de Registros y de Operaciones

21 Diseño de procesador monociclo 2 MemWr MemRd MemtoR eg AddrD Memoria Datos Dout busw Din Figura 2.26 Unidad de Memoria Se ha agregado la unidad para detectar la igualdad del busa con el busb, dentro de la Unidad de Operaciones. Pero podría haberse empleado la ALU para determinar la igualdad de los operandos, este resultado se obtiene después en el tiempo, respecto al caso que se trata. Juntando ahora las unidades anteriores con la unidad de instrucciones, se obtiene el diagrama general. Un esquema general, con detalle de las unidades:

22 AluOut PC 22 Estructuras de Computadores Digitales Un esquema general, con detalle de las unidades: npc_sel WE PC COp <3..26> Funct RegDst RegWr ExtOp AluSrc Equal AluCtr MemWr MemRd MemtoReg <.. > +4 SigExt* Inm6 (PC+4)[3..28] add_ "" busir Rd AddrI Memoria Instrucciones <2..2> <2..6> <..> <..> <2..> add_26 rs rt rd 32 busw Ra Rb WE RW 32 Registros 32-bit busa busb Exte nsor Igu al Op32 AddrD Memoria Datos Din Dout busw Inm6 Inm6 busb Figura 2.27 Procesador Monociclo. Camino de datos. Se resume a continuación el camino de datos completo para el procesador. Se ha agregado la unidad de control que gobierna las señales que interactúan con los recursos, para modificar el camino de datos de tal modo que sea posible efectuar las diferentes transferencias físicas que demandan las instrucciones del repertorio.

23 Diseño de procesador monociclo 23 npc_sel WE PC RegDst Unidad de Control AluSrc RegWr ExtOp AluCtr MemWr MemRd MemtoReg COp+ Funct Equal Unidad de Instrucción rs rt rd busw Inm6 32 Unidad Registros 32 busa 32 busb Unidad de Operaciones AluOut Din AddrD Memoria Datos Dout Reloj Figura 2.28 Procesador Monociclo. Diagrama de las Unidades.

24 24 Estructuras de Computadores Digitales 2.7 Transferencias físicas de Datos. Cada transferencia lógica se implementa como un conjunto de transferencias físicas. Una transferencia física es la descripción de un movimiento de datos entre los recursos del camino de datos. Esta visión muestra lo que sucede en el camino de datos. Alguno de estos movimientos son debidos a conexiones permanentes entre recursos; otros movimientos de datos que pueden programarse mediante las señales de control. También las operaciones(o funciones del camino de datos; en nuestro caso las operaciones de la alu y la unidad extensora) pueden programarse mediante las señales de control. El resto de las señales de control sincronizan los cambios de estados de los registros o de la memoria. Para cada instrucción, a la cual se hace referencia a través de un mnemónico, se anota la transferencia lógica, y luego el conjunto de transferencias físicas que la desarrollan. Las transferencias físicas se agrupan de acuerdo a la unidad en que se realizan. Se muestran por líneas, pero toda la electrónica que las representa está funcionando en paralelo, y la información fluye en serie a través de los recursos (en este diseño monociclo). ADD: R[rd] R[rs] + R[rt]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, Rb=rt, RW=rd, busa=r[ra], busb=r[rb], AluOut=add(busA, busb), busw=aluout, R[RW]=busW. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, Rb=rt, RW=rd, busa=r[ra], busb=r[rb], AluOut= sub(busa, busb), busw=aluout, R[RW]=busW. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. SLT: R[rd] R[rs] < R[rt]? : ; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, Rb=rt, RW=rd, busa=r[ra], busb=r[rb], AluOut=slt(busA, busb), busw=aluout, R[RW]=busW. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura.

25 Diseño de procesador monociclo 2 ORI: R[rt] R[rs] zero_ext(inm6); PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, RW=rt, busa=r[ra], Op32 = zero_ext(inm6), AluOut=or(busA, Op32), busw=aluout, R[RW]=busW. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Registros. Escritura. Las tres instrucciones anteriores no emplean la etapa de memoria(memwr=). El ORI no utiliza el busb. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm6)]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, RW=rt, busa=r[ra], Op32 = signext(inm6), AluOut=add(busA, Op32), AddrD=AluOut, Dout = MemDat[AddrD], busw=dout, R[RW]=busW. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm6)] R[rt]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Ra=rs, Rb=rt, busa=r[ra], busb=r[rb], Op32 = signext(inm6), AluOut= add(busa, Op32), AddrD=AluOut, Din = busb, MemDat[AddrD]=Din. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. La instrucción STORE no utiliza el arreglo de registros para escritura(regwr=). BEQ: if ( R[rs] == R[rt] ) PC (PC +4)+ sign_ext(inm6)] *4 else PC PC + 4 AddrI=PC, busir=meminst[addri], Unidad Instrucción. Ra=rs, Rb=rt, busa=r[ra], busb=r[rb], Unidad Registros. Lectura. if (Equal) Unidad Operaciones. PC = (PC +4)+[sign_ext(Inm6)] *4 else PC=PC+4. Unidad Instrucción. BEQ no ocupa las etapas de Memoria de Datos ni escritura en arreglo de Registros. (MemWr=, RegWr=) J UMP: PC (PC +4)&xF+ add_26 *4 AddrI=PC, busir=meminst[addri], PC = (PC +4)&xF+ add_26 *4. Unidad Instrucción. Unidad Instrucción. Jump no ocupa las etapas de Memoria de Datos ni escritura en arreglo de Registros. (MemWr=, RegWr=)

26 26 Estructuras de Computadores Digitales 2.8. Transferencias físicas mediante señales de control. Valores Conceptuales que toman las Señales de Control En lugar de emplear códigos binarios para las señales de control pueden usarse valores que recuerden la función de la señal de control(movimientos, funciones, sincronización). Se tienen: npc_sel: "+4","Branch","Jump" Unidad Instrucción. WE PC : "" Escribe en registro PC. Unidad Instrucción. RegDst: rt, rd Unidad Registros. Lectura. ExtOp: zero, sign Unidad Operaciones. AluSrc: "busb","op32" Unidad Operaciones. AluCtr: add, sub, or, slt Unidad Operaciones. MemWr: "" Escribe en la memoria. Unidad Memoria Datos. MemRd: "" Lee desde la memoria de datos. Unidad Memoria Datos. MemtoReg: "alu","mem" Unidad Registros. Escritura. RegWr: "" escribe busw en el registro Unidad Registros. Escritura. especificado en RW. Valores de las señales de control para activar las transferencias lógicas. Pueden describirse los valores que toman las señales de control para desarrollar las diferentes transferencias lógicas necesarias para cada instrucción. De esta forma se hace énfasis en el control y no en el movimiento de los datos a través del camino. Así entonces no es necesario describir las rutas permanentes del camino de datos. Como se verá esta descripción permitirá especificar la unidad de control. Se muestran agrupadas por Unidad. Dependiendo de la instrucción en ejecución, se muestran los valores que deben tomar las señales de control. Luego podrá obtenerse ecuaciones que muestren la dependencia de las señales de control del código de operación y de las condiciones(en este caso sólo la señal equal). ADD: R[rd] R[rs] + R[rt]; PC PC + 4 npc_sel = +4, WE PC =, Unidad Instrucción. RegDst = "rd", Unidad Registros. Lectura. AluSrc = "busb", AluCtr = add, ExtOp=, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg="alu", RegWr=. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 npc_sel = +4, WE PC =, Unidad Instrucción. RegDst = "rd", Unidad Registros. Lectura. AluSrc = "busb", AluCtr = sub, ExtOp=, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg="alu", RegWr=. Unidad Registros. Escritura.

27 Diseño de procesador monociclo 27 SLT: R[rd] R[rs] < R[rt]? : ; PC PC + 4 npc_sel = +4, WE PC =, Unidad Instrucción. RegDst = "rd", Unidad Registros. Lectura. AluSrc = "busb", AluCtr = slt, ExtOp=, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg="alu", RegWr=. Unidad Registros. Escritura. ORI: R[rt] R[rs] + zero_ext(inm6); PC PC + 4 npc_sel = +4, WE PC =, Unidad Instrucción. RegDst = "rt", Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = zero, AluCtr = or, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg="alu", RegWr=. Unidad Registros. Escritura. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm6)]; PC PC + 4 npc_sel = +4, WE PC =, RegDst = "rt", AluSrc = "Op32", ExtOp = sign, AluCtr = add, MemRd=, MemWr=, Memtoreg="mem", RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. STORE: MEM[ R[rs] + sign_ext(inm6)] R[rt]; PC PC + 4 npc_sel = +4, WE PC =, Unidad Instrucción. RegDst =, Unidad Registros. Lectura. AluSrc = "Op32", ExtOp = sign, AluCtr = add, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg=, RegWr=. Unidad Registros. Escritura BEQ: if ( R[rs] == R[rt] ) PC (PC +4) +[sign_ext(inm6)]*4 M; else PC PC + 4 if (Equal) npc_sel= Br ; else npc_sel= +4 ; WE PC =. Unidad Instrucción. RegDst =, Unidad Registros. Lectura. AluSrc =, ExtOp =, AluCtr =, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg=, RegWr=. Unidad Registros. Escritura Se ha empleado la expresión alternativa en C. Si Equal es uno, a npc_sel se le asigna Br ; en caso contrario, se asigna "+4". Nótese que la señal Equal se forma después de haber leído los registros. J: PC (PC +4)&xF+ add_26 *4 npc_sel = Jmp, WE PC =. Unidad Instrucción.

28 28 Estructuras de Computadores Digitales RegDst =, Unidad Registros. Lectura. AluSrc =, ExtOp =, AluCtr =, Unidad Operaciones. MemWr=, MemRd=. Unidad Memoria Datos. Memtoreg=, RegWr=. Unidad Registros. Escritura Las señales de control: WE PC, MemWr, RegWr pueden tomar valores ó. No pueden tomar valores superfluos, pues cambian el estado del procesador. En algunas de las instrucciones no importa el valor lógico que tomen algunas de las señales de control, ya que no afectan el desarrollo de las transferencias. Se las muestra tomando valores superfluos. El resto de las señales de control, que están formadas por más de una línea, en caso de no ser empleadas en la interpretación electrónica de las instrucciones deben tomar un valor que no altere el flujo de los datos o las funciones del camino de datos. Esta descripción muestra que el control puede describirse por un microprograma, mediante asignaciones (microoperaciones), funciones(las de la ALU y el extensor), saltos y bifurcaciones (microcontrol). 2.9 Diagrama de tiempos para todas las instrucciones del procesador. Se muestran todas las señales que se producen cuando se ejecutan las instrucciones del repertorio. Obviamente en una instrucción determinada no están presentes todas las formas de ondas. Se las ubica con sus requerimientos aproximados de tiempo, y en forma relativa con respecto a las otras. En el instante marcado con, se tiene el tiempo requerido para la ejecución de la instrucción de salto jump. En el instante marcado con 2 se completa la ejecución de la bifurcación, se asume que el circuito combinacional que detecta la igualdad de operandos de 32 bits, termina después que la generación de la dirección de salto en la bifurcación si los operandos son iguales. En 3 termina la ejecución de las aritméticas y lógica inmediata. En 4 termina la escritura en memoria de la instrucción Store Word. En termina la instrucción Lw, que es la que más demora en ejecutarse, y que es la que determina la frecuencia de operación del reloj. Nótese que se ha previsto los requerimientos de set-up y posibles variaciones del reloj (skew). Si se miden los tiempos que requieren las instrucciones para completar sus transferencias, puede confeccionarse, observando el diagrama temporal, la siguiente tabla:

29 Diseño de procesador monociclo 29 Instrucción Tiempo de ejecución[ns] Add 8 Sub 8 Slt 8 Ori 8 Load 2 Store Beq 7 Jmp 4 Figura 2.29 Tiempos de ejecución de las instrucciones. Sin embargo todas las instrucciones se ejecutan en el mismo tiempo (un ciclo de reloj) que la más lenta en ejecutarse(es decir en 2 unidades, en la escala con la que se confeccionó el gráfico). Si los tiempos de las memorias, registros, alu, se obtienen de las especificaciones temporales de los circuitos que efectivamente se empleen en el diseño, el diagrama temporal reflejaría mejor la realidad. Existe una alternativa, de tipo cualitativa, para evaluar los tiempos y consiste en estimar los tiempos mayores. Por ejemplo si las memorias responden en 2 ns, los sumadores y la ALU operan en 2 ns; y la unidad de registros, tanto en lectura como en escritura, responden en ns. Y si se desprecian los retardos: de los multiplexores, de los circuitos de la unidad de control, detector de igualdad, extensores de signo, y retardo de propagación en cables, puede confeccionarse la siguiente tabla: Instrucción Memoria Intrucción Lectura Registro s Operación ALU Memori a de Datos Escritura Registros Add Sub Slt Ori Load Store Beq 2 3 Jmp 2 2 Figura 2.3 Tiempos de ejecución de las instrucciones en las Unidades. Total ns

30 3 Estructuras de Computadores Digitales Rendimiento del procesador monociclo. Si definimos, en general: C = Comportamiento Procesador = / TE (a mayor tiempo, peor comportamiento) TE = Tiempo de ejecución de un programa de prueba. NI = número de instrucciones del programa de prueba. CPI = ciclos de reloj por instrucción. ( vale para diseño monociclo) PC = Período del reloj. Se tiene que: TE = NI * CPI * PC Con la tabla simplificada, para el procesador monociclo con un período fijo de reloj, se tiene: Ya que la instrucción más lenta demora 8 ns. TE(reloj fijo) = NI**8 Se desea evaluar el comportamiento de un procesador monociclo, con un período de reloj variable. Es decir, la unidad de control determina la duración del reloj de acuerdo a la instrucción que esté ejecutando. Se asume que el programa de prueba está constituido por la siguiente mezcla: 2% de cargas, % de almacenamientos, 3 % de sumas, 9 % de restas, 4 % de or inmediatos, % de bifurcaciones y 6 % de saltos. Se tendrá ahora: TE(reloj variable) = NI (,2*8 +,*7+,3*6+,9*6+,4*6+,*3+,6*2)=NI*,92 Puede considerarse que el valor promedio del período del reloj es,92 ns. La comparación: C(reloj variable)/ C(reloj fijo) = TE(reloj fijo) /TE(reloj variable) = 8,/,92 =,3. indica que el procesador monociclo con reloj variable es,3 veces más rápido. La alternativa de reloj variable es de implementación compleja, suele escogerse un reloj más rápido pero aceptando que las instrucciones se completen en diferentes ciclos de reloj(es decir CPI variable). Esto dará origen a la metodología de diseño denominada multiciclo, que se verá más adelante. El comportamiento monociclo empeora si en la mezcla de instrucciones participan algunas que tengan tiempos de ejecución mucho mayores que el promedio. Por ejemplo instrucciones de punto flotante, o bien de transferencias complejas (movimiento de string); o modos de direccionamiento complejos.

31 Diseño de procesador monociclo 3 Clk Retardo Registro Valor anterior PC Valor anterior IR Valor anterior PC+4 Valores anteriores Señales de control Valores anteriores busa, busb Nuevo valor PC+4 Nuevo valor PC Tiempo Acceso Memoria Instrucciones Nuevo valor IR Rs, Rt, Rd, Op, Inm6, add26 Tiempo Propagación Sumador Unidad de Instrucción Retardo de Propagación en Unidad de Control Nuevos valores RegWr, RW, WEpc, AluCtr,... Tiempo Acceso Arreglo Registros Nuevos valores busa, busb Propagación ALU Valores anteriores AluOut, busw Tiempo Acceso Memoria de Datos Valor anterior Dout 3 Propagación Mux Nuevos valores de AluOut y busw en ADD, SUB, ORI 4 Nuevos valores de Dout en Lw y M[Aluout] en Sw Propagación Mux Valor anterior Dirección de salto. Valor anterior Dirección de bifurcación 2 Valor anterior busw Setup Registro y Skew del reloj. Nuevo valor Dirección de salto. Propagación Sumador y Mux Unidad de Instrucción Nuevo valor Dirección de bifurcación 2 Propagación Detector igualdad Nuevo valor bus W en Lw Figura 2.3 Tiempos de ejecución de las instrucciones.

32 32 Estructuras de Computadores Digitales 2.. Diseño de la Unidad de Control. En el modelo monociclo la unidad de control es una red combinacional que tiene como entradas el código de operación y la condición Equal; y como salidas las señales de Control, según se muestra en el esquema siguiente. La estructura multiciclo se caracteriza por representar a la Unidad de Control mediante una máquina secuencial de estados finitos. Se asume que los 6 bits más significativos tienen el código de operación. En caso de operaciones aritméticas debe agregarse el campo funct para especificar completamente la instrucción (ya que en este caso de ADD y SUB el código de operación está formado por 6 ceros). npc_sel WE PC Unidad de Control Cop + Funct Equal RegDst RegWr ExtOp AluSrc AluCtr MemWr MemRd MemtoReg U. Instrucción U. Registros U. Operaciones U. Memoria U.Registros Camino de Datos Reloj Figura 2.32 Entradas y salidas Unidad de Control. El planteo de las ecuaciones puede efectuarse de manera informal a través de un lenguaje de programación (microprograma), o bien mediante una tabla de verdad de las funciones asociadas a las señales de control (en el caso de un procesador monociclo) Descripción del control. La siguiente es una descripción, empleando el lenguaje C, de las señales de control. Las ecuaciones muestran la dependencia de las señales de control del código de operación y de las condiciones (en este caso sólo la señal equal). npc_sel RegDst AluSrc = if ((OP == BEQ) && EQUAL ) branch ; elseif (OP == J) "jmp"; else "+4"; = ((OP == Load) (OP == ORI))? "rt" : "rd"; = (OP == )? reg : extender ;

33 Diseño de procesador monociclo 33 AluCtr ExtOp = if ((OP == Load) (OP==Store) (OP==Add) add ; elseif (OP == ORI) or ; elseif (OP == Sub) sub ; elseif (OP == SLT) slt ; = (OP == ORI)? zero : sign ; MemWr = (OP == Store)? : ; MemtoReg = (OP == Load)? : ; RegWr = ((OP == Store) (OP == BEQ))? : ; A continuación se describirán tablas de verdad para las señales de control. Debe notarse la incorporación de condiciones superfluas para facilitar la minimización del diseño. Sin embargo las señales que sincronizan el estado de registros o la memoria de datos (WE PC, MemWr, RegWr) tienen valores bien definidos, para evitar cambios de estado. También debe notarse el tratamiento de la entrada Equal, en este caso se requiere especificar los valores de las señales de control para ambos valores de la entrada Tabla de verdad de la Unidad de Control Monociclo. Del diseño de la ALU, puede obtenerse AluCtr[2..], formada por la concatenación de Bnegate y la señal Operación que controla el mux. Op Bnegate Operación Decimal Binario and or add 2 slt 3 sub 2 Figura 2.33 Tabla de verdad. Unidad de Operación. De la especificación del repertorio, se obtienen los códigos de operación y el campo funct, que permiten determinar la instrucción:

34 34 Estructuras de Computadores Digitales OP Funct Nemo. R add R sub R slt I ori I lw I sw I beq J j R and R slt Figura 2.34 Tabla de verdad. Unidad de instrucción. Op+funct Eq WE PC npc_sel Ext AluSrc Alu Reg Mem Mem Mem Reg Op Ctr Dst Wr Rd toreg Wr Add Sub Slt Ori Load Store Beq Beq Jmp Entradas 3 Salidas 3 Figura 2.3 Tabla de verdad. Unidad de control. En la tabla de verdad se marcan como condiciones superfluas algunas casillas. Lo cual establece que para determinada condición de las entradas no es necesaria la acción de la señal de control. En caso de efectuar la programación mediante dispositivos lógicos programables o mediante EPROM, debe definirse el valor que tendrán las variables ( puede escogerse valor cero). La siguiente tabla resume la especificación de la unidad de Control.

35 Diseño de procesador monociclo 3 OP+Funct+Eq Control[2..] Obs. Add Sub Slt Ori Load Store Beq Beq Jmp Figura Tabla de verdad de la Unidad de control. La cual permite efectuar el diseño en EEPROM, o en un dispositivo lógico programable, con la ayuda de herramientas adecuadas. Puede simplificarse el diseño, generando un control local de la alu, el cual puede verse en el texto guía. Todas las instrucciones se ejecutan en un ciclo de reloj. Por esta razón se denomina monociclo a la metodología de sincronización que se empleó en este caso. También se dice que el número de ciclos por instrucción (CPI) es uno. 2.. Agregar instrucciones. Pueden agregarse algunas instrucciones del repertorio con el camino de datos y la unidad aritmética disponible. Para ello basta generar las señales de control que realizan las acciones asociadas a las instrucciones. Op+func Eq WE PC npc_sel Ext Alu Alu Reg Mem Mem Mem Reg Op Src Ctr Dst Wr Rd toreg Wr Add Sub And Or Slt Ori Addi Andi Slti Load Store Beq Beq

36 36 Estructuras de Computadores Digitales Bne Bne Jmp Entradas 3 Salidas 3 Figura Unidad de control con instrucciones adicionales. En la tabla anterior, se ilustran en negrita algunas instrucciones que no requieren modificar los recursos dispuestos hasta el momento. A continuación se muestra una manera de ir agregando instrucciones al repertorio, indicando las diferentes unidades que deben modificarse. Agregar las instrucciones xor, xori requiere modificar la unidad lógica, para que pueda realizar la operación or exclusivo. También debe modificarse la unidad lógica si se desea efectuar la operación nor. El conjunto de bifurcaciones con respecto a cero, requiere agregar en la unidad de operaciones una red combinacional para efectuar comparaciones de Rs con cero, y que genere señales hacia la unidad de control. Los corrimientos requieren agregar una unidad combinacional en la unidad de operaciones, que permita realizarlos (no se efectúan corrimientos mediante un registro de desplazamiento, ya que la operación de éste requiere varios ciclos de reloj). El salto relativo a registro (jr), requiere modificar la unidad de instrucción; para permitir escribir en PC el contenido del registro rs. La instrucción jal, requiere modificar el camino de datos, para llevar el contenido de PC+4 hacia el registro ra; lo cual a su vez requiere un mux adicional para introducirse en el busw. Además el mux controlado por RegDst, debe tener una entrada adicional para introducir Rs en la entrada Rw. El mnemónico de esta instrucción debió ser laj( link and jump), ya que primero debe realizarse el enlace y luego saltar. La instrucción lui, requiere modificar la unidad de extensión, agregando un mux de 32 bits, que permita colocar en la parte más significativa el campo inmediato de 6 bits, y rellenar con ceros los 6 inferiores. Se ilustra a continuación un posible diseño. La señal de control ExtOpt es ahora de dos bits.

37 Diseño de procesador monociclo 37 ExtOp[] tierra <3..6> de Op32 ExtOp[] bit de inm6 <..> Inm6 imm6 <3..> de Op32 <3..6> de Op32 <..> de Op32 Figura Modificación al extensor, para implementar instrucción lui. Si se suprime la unidad que genera la señal igual, puede desarrollarse la comparación de la igualdad de dos registros en la alu. Para esto se requiere que ésta genere la señal resultado igual a cero (es decir todos los bits del resultado deben ser ceros). Un esquema de la unidad de operaciones, es el siguiente: ExtOp AluSrc AluCtr Cero =cero busa busb AluOut Extensor busb Inm6 Figura Modificación Unidad de operaciones, suprimiendo bloque de comparación.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 5.3 SISTEMAS DIGITALES

TEMA 5.3 SISTEMAS DIGITALES TEMA 5.3 SISTEMAS DIGITALES TEMA 5 SISTEMAS DIGITALES FUNDAMENTOS DE ELECTRÓNICA 08 de enero de 2015 TEMA 5.3 SISTEMAS DIGITALES Introducción Sistemas combinacionales Sistemas secuenciales TEMA 5.3 SISTEMAS

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

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

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

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

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

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

Circuitos Lógicos Combinatorios. Ing. Jorge Manrique 2004 Sistemas Digitales 1

Circuitos Lógicos Combinatorios. Ing. Jorge Manrique 2004 Sistemas Digitales 1 Circuitos Lógicos Combinatorios Ing. Jorge Manrique 2004 Sistemas Digitales 1 Circuitos Combinatorios Un circuito combinatorio es un arreglo de compuertas lógicas con un conjunto de entradas y salidas.

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

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

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

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

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

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

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

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

LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1)

LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1) LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1) 1. CONVERSORES DE CODIGO La disponibilidad de una gran variedad de códigos para los mismos elementos discretos de información origina el uso de

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

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

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

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

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

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

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

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

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

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organización de Computadoras. Principios de Conjuntos de Intrucciones Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load

Más detalles

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen 1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato

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

UNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011

UNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011 1 UNIDAD I CONCEPTOS GENERALES Fall 2011 Conceptos Generales Microprocesadores Otoño 2011 Contenido 2 Introducción Arquitectura generalizada de una computadora Componentes de una computadora Conjunto de

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

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

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

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

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

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

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

Tema 3. Operaciones aritméticas y lógicas

Tema 3. Operaciones aritméticas y lógicas Tema 3. Operaciones aritméticas y lógicas Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Transparencia: 2 / 28 Índice Operaciones lógicas: OR, AND, XOR y NOT Operaciones

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

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

Implementación de una unidad procesadora de cuatro bits, como material didáctico

Implementación de una unidad procesadora de cuatro bits, como material didáctico Implementación de una unidad procesadora de cuatro bits, como material didáctico Ángel Eduardo Gasca Herrera Universidad Veracruzana Agasca3@hotmail.com Jacinto Enrique Pretelin Canela Universidad Veracruzana

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

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

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

Implementación de instrucciones para el procesador MIPS de ciclo único.

Implementación de instrucciones para el procesador MIPS de ciclo único. Implementación de instrucciones para el procesador MIPS de ciclo único. 1. Introducción. El MIPS (Microprocessor without Interlock Pipeline Stages) es un conocido tipo de procesador de arquitectura RISC

Más detalles

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

Más detalles

El Microprocesador. Tecnología y Funcionamiento

El Microprocesador. Tecnología y Funcionamiento El Microprocesador Tecnología y Funcionamiento EL MICROPROCESADOR (I) El microprocesador aparece como un circuito integrado con una muy elevada escala de integración VHSI. El empleo de los microprocesadores

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes

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

Funcionamiento de las computadoras

Funcionamiento de las computadoras Funcionamiento de las computadoras Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Plan de la presentación El modelo de von Neuman

Más detalles

Tema 3: Operaciones aritméticas y lógicas

Tema 3: Operaciones aritméticas y lógicas Tema 3: Operaciones aritméticas y lógicas S Suma-resta en base dos S Operaciones lógicas: OR, AND, XOR y NOT S Operaciones de desplazamiento S Suma-resta en los diferentes sistemas de representación de

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

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos Bloques para el encaminamiento y/o transferencia de datos Multiplexor Demultiplexor Decodificador Codificador Bloques para el procesamiento de datos Comparador Bloques para la generación de funciones booleanas

Más detalles

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y Introducción Circuitos Bloques Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

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

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

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

ARQUITECTURAS ESPECIALES

ARQUITECTURAS ESPECIALES ARQUITECTURAS ESPECIALES EL - 337 Página Qué es un Multiplexor? EL - 337 Un multiplexor o MUX es un switch digital (interruptor digital) que conecta una de las entradas con su única salida. Desde el punto

Más detalles

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI Guía de preparación para el examen ELECTRONICA CxTx En esta materia básicamente se evalúan temas tales como son: MULTIVIBRADORES, MEMORIAS, CONTADORES Y COMPUERTAS LOGICAS, SUMADOR RESTADOR Y MICROPOCESADORES

Más detalles

ELO311 Estructuras de Computadores Digitales. Unidad Aritmética

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

Más detalles

TRABAJO PRÁCTICO Nº 4. Sistemas combinacionales MSI

TRABAJO PRÁCTICO Nº 4. Sistemas combinacionales MSI Sistemas Digitales TRABAJO PRÁCTICO Nº 4 Sistemas combinacionales MSI Ejercicio Nº 1: Se desea transmitir datos de dos bits con control de paridad impar. Utilice un decodificador para diseñar un circuito

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

Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son:

Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son: 3. Circuitos aritméticos ticos Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Introducción La realización de operaciones aritméticas y lógicas

Más detalles

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas Dr. Marcelo Risk Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 2017 Lógica

Más detalles

Unidad 3: Circuitos digitales.

Unidad 3: Circuitos digitales. A-1 Appendix A - Digital Logic Unidad 3: Circuitos digitales. Diapositivas traducidas del libro Principles of Computer Architecture Miles Murdocca and Vincent Heuring Appendix A: Digital Logic A-2 Appendix

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

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

Arquitecturas de Computadores. 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R.

Arquitecturas de Computadores. 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R. Arquitecturas de Computadores 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R. Temario 1. Introducción 2. Sistemas Combinacionales (SC) 3. Implantación de SC mediante PLA 4. Sistemas Secuenciales

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras SEMANA 1 UNIVERSIDAD NACIONAL DE QUILMES Qué vimos? Sistema Binario Interpretación Representación Aritmética Sistema Hexadecimal Hoy! Lógica proposicional Compuertas lógicas:

Más detalles

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción 0-06-200 Temario Arquitecturas de Computadores Prof. Mauricio Solar 5 Componentes igitales Estructurados Introducción 2 Registros 3 Multiplexores 4 Codificadores y ecodificadores 5 Archivos de Registros

Más detalles

41(T0)T.':#0&'4'4#T. Diseñar en VHDL un decodificador BCD a 7 segmentos que cumpla con las siguientes condiciones:

41(T0)T.':#0&'4'4#T. Diseñar en VHDL un decodificador BCD a 7 segmentos que cumpla con las siguientes condiciones: Diseñar en VHDL un decodificador BCD a 7 segmentos que cumpla con las siguientes condiciones: D Salidas activas en bajo para manejar display ánodo común E Entradas (4 bits) activas en bajo (o con lógica

Más detalles

3 - DISEÑO RTL. Existen dos tipos de descripciones a nivel de comportamiento en Verilog:

3 - DISEÑO RTL. Existen dos tipos de descripciones a nivel de comportamiento en Verilog: 3 - DISEÑO RTL Un diseño a nivel funcional o de comportamiento (behavioral description) permite describir circuitos digitales atendiendo únicamente a las relaciones existentes entre las entradas y salidas

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

ARQUITECTURA VON NEUMANN ARQUITECTURA VO EUMA 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 Entrada

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

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas. 2. ACCIONES PRIMITIVAS. En los lenguajes de alto nivel existen cuatro instrucciones primitivas que reflejan lo que un computador puede realizar (en este nivel de abstracción). Se describirán las instrucciones

Más detalles

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 4). Curso Arquitectura de Computadores Problemas (hoja 4). Curso 2006-07 1. Sea un computador superescalar similar a la versión Tomasulo del DLX capaz de lanzar a ejecución dos instrucciones independientes por ciclo

Más detalles