Diseño Procesador Monociclo

Documentos relacionados
Diseño de un Procesador. (Monociclo)

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

MICROPROCESADOR. Multiciclo

Diseño de un procesador multiciclo.

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

Organización procesador MIPS

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

Arquitectura de Computadores

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

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

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

Procesador Segmentado

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

Diseño del procesador MIPS R2000

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

Arquitectura e Ingeniería de Computadores

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

Tema 4: Diseño de un microprocesador

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

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

Plataformas de soporte computacional: arquitecturas avanzadas,

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

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

ELO311 Estructuras de Computadores Digitales. Unidad Aritmética

Introducción a la arquitectura de computadores

Estructura de Computadores

MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES

Arquitectura t de Computadores

Procesador. Memoria. Ejemplo de un Procesador: MU0. Instrucciones. Direcciones. Registros. Datos. Instrucciones y datos SETI Tr.

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Práctica III Introducción a la descripción VHDL del procesador DLX

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

Pipelining o Segmentación de Instrucciones

Subsistemas aritméticos y lógicos. Tema 8

Arquitectura de Computadores. Tema 9. Microprogramación

El nivel ISA (II)! Conjunto de Instrucciones

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

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

Arquitectura Segmentada: Conceptos básicosb

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Carga de la instrucción / Decodificación y carga de registros (Figura 37) Instrucciones de salto condicional (Figura 40)

Bloques Combinacionales

Tema: Microprocesadores

Procesadores segmentados. El DLX.

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

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Electrónica Digital. Fco. Javier Expósito, Manuel Arbelo, Pedro A. Hernández Dpto. de Física Fundamental y Experimental, Electrónica y Sistemas

TEMA III: OPERACIONES CON LOS DATOS

La Unidad Procesadora.

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

Operación de circuitos lógicos combinatorios.

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

FUNCIONAMIENTO DEL ORDENADOR

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014

Ejercicios del tema 4. El procesador

Estructura de Computadores. Capítulo 3b: Programación en

Sistemas Digitales I Taller No 2: Diseño de Circuitos combinacionales usando VHDL

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

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

Estructura de Computadores Tema 1. Introducción a los computadores

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

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Unidad de Proceso Genérica y Unidad de Control Específica

Organización Básica de un Computador y Lenguaje de Máquina

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

3.8 Construcción de una ALU básica

3 - Arquitectura interna de un up

ITT-327-T Microprocesadores

TEMA 11 MEMORIAS. CIRCUITOS LÓGICOS PROGRAMABLES

Introducción Flip-Flops Ejercicios Resumen. Lógica Digital. Circuitos Secuenciales - Parte I. Francisco García Eijó

SOLUCION Examen final IC parte B

Asignatura de Organización de Computadoras. Alberto Hernández Cerezo. Cristian Tejedor García. Rodrigo Alonso Iglesias. Universidad de Valladolid

ESTRUCTURA BÁSICA DE UN ORDENADOR

ABEL Para Síntesis. Dr. Juan C. Herrera Lozada

Pipeline o Segmentación Encausada

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

Registros y Contadores

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso Introducción a la segmentación de Instrucciones.

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

Tema 15 ELECTRÓNICA DIGITAL. PROCESADORES DIGITALES (PARTE 2A) Arquitecturas Harvard y Von Neumann. Tipos de procesadores digitales

Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia

ARQUITECTURA DE COMPUTADORES CAPÍTULO 2. PROCESADORES SEGMENTADOS

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Instituto Tecnológico de Morelia

TEMA 6 ARITMÉTICA BINARIA Y CIRCUITOS ARITMÉTICOS

CURSO: ELECTRÓNICA DIGITAL UNIDAD 2: SISTEMAS COMBINATORIOS - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. CIRCUITOS ARITMÉTICOS

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

TEMA 1 INTRODUCCIÓN A LOS SISTEMAS DIGITALES

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 4. La Unidad de Control

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Conceptos de Arquitectura de Computadoras Curso 2015

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

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

Transcripción:

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 considerando las instrucciones: Suma, resta y slt (R) add rd, rs, rt sub rd, rs, rt slt rd, rs, rt Or inmediato (I) ori rt, rs, inm6

Se implementará el procesador considerando las instrucciones: Carga y Almacenamiento (I). lw sw rt, inm6(rs) rt, inm6(rs) Bifurcación (I). beq rs, rt, rótulo Salto incondicional. (J) j rótulo

Manual de Programación MIPS reducido.

Trasferencias Lógicas add R[rd] = R[rs] + R[rt]; PC = PC + 4 sub 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 lw R[rt] = MEM[ R[rs] + sign_ext(inm6)]; PC = PC + 4 sw MEM[ R[rs] + sign_ext(inm6) ] = R[rt]; PC = PC + 4 beq if ( R[rs] = = R[rt] ) j PC = (PC +4)+[sign_ext(Inm6)]*4; else PC = PC + 4 PC = (PC +4)&xF + add_26*4 6

Recursos Combinacionales Unidad Aritmético Lógica AluCtr[2..] Resultado Función AluCtr Binvert Operación ALU OpA OpA & OpB and OpA OpB or Resultado OpA + OpB OpA - OpB add sub OpB OpA < OpB? : slt 7

Recursos Combinacionales Sumador que permita calcular PC+4 PC Suma PC+4 4 8

Recursos Combinacionales Unidad Extensora ExtOp ExtOp Op. de zero_ext(inm6) Inm6 Extensor Op sign_ext(inm6) Operando de bits 9

Recursos Combinacionales Diseño Extensor lógico y aritmético tierra bit 5 de Inm6 <5..> Inm6 ExtOp <3..6> de Op <3..> de Op

Recursos Combinacionales Multiplexores CtrMux Out CtrMux S S S2 S S Out S2 2

Recursos Combinacionales Multiplexores. Implementación. Di C C Out_i Ai Bi Ci Di Ci Bi Ai C Out_i C 2

Recursos Combinacionales Detector Igualdad OpA OpB Detector de Igualdad Equal B2 A2 B A B A A=B 3

Recursos Almacenamiento. Memorias Una memoria para almacenar las instrucciones (ROM). Una memoria para leer y escribir datos (RAM). Diseño inicial se elige tener recursos separados aunque podría ocuparse una sola memoria para datos e instrucciones. 4

Recursos Almacenamiento. Memorias Inactivo MemRd MemWr MemRd Dirección Inactivo WrEn AddrI Rd Memoria Instrucciones Dout Dirección Din WrEn Rd AddrD Memoria Datos Dout 5

Recursos Almacenamiento. Registros. Arreglo Registros Rs Rt Rw busw 5 5 5 Ra Rb Rw RegWr WE Registros -bit busa busb R[Rw] = busw busa = R[ Ra ] busb = R[ Rb ] 6

Diseño del arreglo de Registros. 7

Recursos Almacenamiento. Registros. Contador de Programa WE RIn PC ROut 8

Camino Datos. Determinación del próximo valor del PC. PC = PC + 4 Suma WEPC PC PC+4 PC 4 9

Camino Datos. Determinación del próximo npc_sel[..] valor del PC. Bifurcaciones y salto. 4 PC npcsel Inm6 SigExt << 2 2 PC = PC +4 (PC+4)[3..28] PC = PC +4 + [Sign_ext(Inm6)]*4 PC = (PC +4)&xF+(addr_26*4) Addr26.. 2

Camino de datos entre PC y Memoria de Programa. <3..26> COp WE PC <5..> Funct "" <5..> Inm6 <5..> Rd PC AddrI Rd Memoria Instrucciones busir <2..6> Rt <25..2> Rs <25..> add_26 2

Unidad que determina la próxima instrucción a ejecutar, con la memoria de instrucciones. 4 SigExt <<2 Inm6 (PC+4)[3..28] add_26.. npc_sel 2 PC WE PC "" Rd AddrI busir Memoria Instrucciones COp <3..26> <5.. > <25..2> <2..6> <5..> <5..> <25..> add_26 Funct rs rt rd Inm6 Rs 22

Abstracción del 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. npc_sel Unidad de Instrucción busir <3..26> COp <5..> Inm6 <5..> rd <2..6> rt <25..2> rs 23

Camino de Datos para operaciones de tipo R. 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. RegWr AluCtr rs rt RW = rd busw 5 5 5 Ra Rb RW W WE Registros -bits busa busb AluOut 24

Modificaciones al camino de datos para poder procesar instrucciones inmediatas. RegDst RegWr ExtOp AluSrc AluCtr rd rt Inm6 rs rt RW busw 5 5 5 Ra Rb Rw WE Registros -bit Extensor busa busb Op AluOut 25

Camino de datos para acceder la memoria de datos. RegDst RegWr ExtOp AluSrc AluCtr MemWr MemtoReg MemRd rd rt Inm6 busw Ra WE Rb Registros RW -bits 5 rs 5 rt 5 RW Op Extensor busa busb Din AluOut Addr WrEn Rd Memoria Datos Dout 26

Detector de igualdad de busa y busb RegDst RegWr ExtOp Equal AluSrc AluCtr MemWr MemtoReg MemRd rd rt Inm6 busw 5 rs Ra WE 5 rt Rb Registros 5 RW RW -bits Extensor busa Igual busb Op Din AluOut AddrD WrEn Rd Memoria Datos Dout 27

Simplificación Considerando unidades Unidad Instrucción npc_sel WE PC COp <3..26> Funct 4 SigExt <<2 Inm6 (PC+4)[3..28] add_26 2 PC "" Rd AddrI busir Memoria Instrucciones <5.. > <25..2> <2..6> <5..> <5..> <25..> rs rt rd.. add_26 Inm6 Rs 28

Simplificación Considerando unidades Unidad Registros RegDst RegWr rs rt rd 5 5 5 RW Ra Rb Rw WE Registros -bit busa busb busw 29

Simplificación Considerando unidades Unidad Operaciones ExtOp Equal AluSrc AluCtr busa Igual busb AluOut Extensor Op busb Inm6 3

Simplificación Considerando unidades Unidad Memoria MemWr MemRd MemtoR eg AddrD Memoria Datos Dout busw Din 3

Procesador Monociclo Procesador Monociclo Esquema General Esquema General Memoria Memoria Datos Datos Dout Dout MemRd MemRd MemWr MemWr MemtoReg MemtoReg AddrD AddrD Din Din busw busw RW RW R a Rb Rb Registros Registros -bit -bit busw busw WE WE RegWr RegWr 5 5 5 RegDst RegDst Inm6 Inm6 Alu Alu Out Out AluSrc AluSrc Op Op Extensor Extensor AluCtr AluCtr Igual Igual Equal Equal bus bus B busa busa busb busb ExtOp ExtOp <25..2> <25..2> <2..6> <2..6> <5..> <5..> <5..> <5..> <25..> <25..> <3..26> <3..26> P C Sig SigExt*4 Ext*4 4 (PC+4)[3..28] (PC+4)[3..28] npc_sel npc_sel 2.... AddrI AddrI Memoria Memoria Instruc- Instrucciones ciones busir busir Rd Rd "" "" Inm6 Inm6 add_26 add_26 WE WE PC PC <5.. > <5.. > Funct Funct COp COp rs rs rt rt rd rd Inm6 Inm6 add_26 add_26 4

Esquema General por unidad npc_sel WEPC RegDst Unidad de Control AluSrc RegWr ExtOp AluCtr MemWr MemRd MemtoReg COp+ Funct Equal Unidad de Instrucción rs rt rd 5 5 5 busw Inm6 Unidad Registros busa busb Unidad de Operaciones AluOut Din AddrD Memoria Datos Dout Reloj 33

Transferencias físicas de datos. Cada transferencia lógica se implementa como un conjunto de transferencias físicas. Transferencia física es la descripción de un movimiento de datos entre los recursos del camino de datos. Muestra lo que sucede en el camino de datos. 34

Transferencias físicas de datos. Movimientos son debidos a: Conexiones permanentes entre recursos Señales de control. Para cada instrucción: 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. 35

Transferencias físicas de datos. 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. 36

Transferencias físicas de datos. ADD: R[rd] R[rs] + R[rt]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Unidad Instrucción. Ra=rs, Rb=rt, RW=rd, busa=r[ra], busb=r[rb], Unidad Registros. Lectura. AluOut=add(busA, busb), Unidad Operaciones. busw=aluout, R[RW]=busW. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Unidad Instrucción. Ra=rs, Rb=rt, RW=rd, busa=r[ra], busb=r[rb], Unidad Registros. Lectura. AluOut= sub(busa, busb), Unidad Operaciones. busw=aluout, R[RW]=busW. Unidad Registros. Escritura. 37

Transferencias físicas de datos. 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. ORI: R[rt] R[rs] zero_ext(inm6); PC PC + 4 AddrI=PC, busir=meminst[addri], PC=PC+4, Unidad Instrucción. Ra=rs, RW=rt, busa=r[ra], Unidad Registros. Lectura. Op = zero_ext(inm6), AluOut=or(busA, Op), Unidad Operaciones. busw=aluout, R[RW]=busW. Unidad Registros. Escritura. 38

Transferencias físicas de datos. 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], Op = signext(inm6), AluOut=add(busA, Op), 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], Op = signext(inm6), AluOut= add(busa, Op), AddrD=AluOut, Din = busb, MemDat[AddrD]=Din. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. 39

Transferencias físicas de datos. BEQ: if ( R[rs] == R[rt] ) PC (PC +4)+ sign_ext(inm6)] *4 else PC PC + 4 AddrI=PC, busir=meminst[addri], Ra=rs, Rb=rt, busa=r[ra], busb=r[rb], if (Equal) PC = (PC +4)+ sign_ext(inm6)] *4 else PC=PC+4. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Instrucción. 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 4

Transferencias físicas de datos. Valores Conceptuales que toman las Señales de Control npc_sel: "+4","Branch","Jump" Unidad Instrucción. WEPC: "" Escribe en registro PC. Unidad Instrucción. RegDst: rt, rd Unidad Registros. Lectura. ExtOp: zero, sign Unidad Operaciones. AluSrc: "busb","op" 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. 4

Valores de las señales de control para activar las transferencias lógicas. Valores que toman las señales de control para desarrollar las diferentes transferencias lógicas necesarias para cada instrucción. 42

Valores de las señales de control para activar las transferencias lógicas. ADD: R[rd] R[rs] + R[rt]; PC PC + 4 npc_sel = +4, WEPC =, RegDst = "rd", AluSrc = "busb", AluCtr = add, ExtOp=, MemWr=, MemRd=, Memtoreg="alu", RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. SUB: R[rd] R[rs] R[rt]; PC PC + 4 npc_sel = +4, WEPC=, RegDst = "rd", AluSrc = "busb", AluCtr = sub, ExtOp=, MemWr=, MemRd=, Memtoreg="alu", RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. 43

Valores de las señales de control para activar las transferencias lógicas. SLT: R[rd] R[rs] < R[rt]? : ; PC PC + 4 npc_sel = +4, WEPC=, RegDst = "rd", AluSrc = "busb", AluCtr = slt, ExtOp=, MemWr=, MemRd=, Memtoreg="alu", RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. ORI: R[rt] R[rs] + zero_ext(inm6); PC PC + 4 npc_sel = +4, WEPC =, RegDst = "rt", AluSrc = "Op", ExtOp = zero, AluCtr = or, MemWr=, MemRd=, Memtoreg="alu", RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. 44

Valores de las señales de control para activar las transferencias lógicas. LOAD: R[rt] MEM[ R[rs] + sign_ext(inm6)]; PC PC + 4 npc_sel = +4, WEPC=, RegDst = "rt", AluSrc = "Op", 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, WEPC =, Unidad Instrucción. RegDst =, Unidad Registros. Lectura. AluSrc = "Op", ExtOp = sign, AluCtr = add, Unidad Operaciones. MemWr=, MemRd=, Unidad Memoria Datos. Memtoreg=, RegWr=. Unidad Registros. Escritura 45

Valores de las señales de control para activar las transferencias lógicas. BEQ: if ( R[rs] == R[rt] ) PC (PC +4) + sign_ext(inm6)] *4; else PC PC + 4 if (Equal) npc_sel= Br ; else npc_sel= +4 ; WEPC =. RegDst =, AluSrc =, ExtOp =, AluCtr =, MemWr=, MemRd=, Memtoreg=, RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura J: PC (PC +4)&xF+ add_26 *4 npc_sel = Jmp, WEPC=. RegDst =, AluSrc =, ExtOp =, AluCtr =, MemWr=, MemRd=. Memtoreg=, RegWr=. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura 46

Clk Diagrama de tiempos para todas las instruccion es del procesador Valor anterior PC Valor anterior IR Valor anterior PC+4 Valores anteriores Señales de control Valores anteriores busa, busb Retardo Registro 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 Valores anteriores AluOut, busw Tiempo Acceso Memoria de Datos 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 Nuevos valores de AluOut y busw en ADD, SUB, ORI Valor anterior Dout Propagación Mux Nuevos valores de Dout en Lw y M[Aluout] en Sw Propagación Mux Valor anterior Dirección de salto. 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 bus W en Lw Valor anterior Dirección de bifurcación Nuevo valor Dirección de bifurcación Propagación Detector igualdad 47

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-funct y la condición Equal; y como salidas las señales de Control. Unidad de Control npc_sel WE PC Cop + Funct RegDst RegWr Equal ExtOp AluSrc AluCtr MemWr MemRd MemtoReg U. Instrucción U. Registros U. Operaciones U. Memoria U.Registros Camino de Datos Reloj 48

Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control Monociclo Op Bnegate Operación Decimal Binario and or add 2 slt 3 sub 2 49

Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control Monociclo OP Funct Nemo. R add R sub R slt I ori I lw I sw I beq J j R and R slt 5

Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control Monociclo Op+funct Eq WE PC npc_sel Ext Op Alu Src Alu Ctr Reg Dst Mem Wr Mem Rd Mem toreg Reg Wr Add Sub Slt Ori Load Store Beq Beq Jmp Entradas 3 Salidas 3 5

52 Memoria Memoria Datos Datos Dou Dou t MemR MemR d MemW MemW r MemtoR MemtoR eg eg Addr Addr D Di Di n bus bus W R W R a R b Registros Registros -bit -bit 3 2 bus bus W W E Reg Reg Wr Wr 5 5 5 RegDs RegDs t Inm6 Inm6 Al Al u O ut ut AluSrc AluSrc Op Op Extensor Extensor AluCtr AluCtr Igual Igual Equal Equal bus bus B bus bus A bus bus B ExtOp ExtOp <25..2 <25..2 > <2..6 <2..6 > <5.. <5.. > <5.. <5.. > <25.. <25.. > <3..26> <3..26> P C Sig SigExt* Ext* 4 4 (PC+4) (PC+4) [3..28] [3..28] npc_sel npc_sel 2.... Addr Addr I Memoria Memoria Instruc- Instrucciones ciones busi busi R R d " " " Inm Inm 6 add_26 add_26 WE WE PC PC <5.. <5.. > Fun Fun ct ct COp COp rs rs rt rt rd rd Inm6 Inm6 add_26 add_26 4 Salidas 3 Entradas 3 Jmp Beq Beq Store Load Ori Slt Sub Add Reg Wr Mem toreg Mem Rd Mem Wr Reg Dst Alu Ctr Alu Src Ext Op npc_sel WE PC Eq Op+funct

Diseño de la Unidad de Control. Tabla Resumen Unidad de Control Monociclo OP+Funct+Eq Control[2..] Obs. Add Sub Slt Ori Load Store Beq Beq Jmp 53

Diseño de la Unidad de Control. La implementación de la unidad de control puede ser utilizando. En base a compuertas lógicas (función mínima). Dispositivos lógicos programables (por ejemplo: GAL). O mediante EPROM. 54