La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

CLASE 14.

Presentaciones similares


Presentación del tema: "CLASE 14."— Transcripción de la presentación:

1 CLASE 14

2 VISTA DE ALTO NIVEL DE LA IMPLEMENTACION DEL MIPS
Modelo de memoria dividida (Harvard): Una memoria para instrucciones y una para datos. CPU monociclo (Single-cycle CPU) Todas las instrucciones se ejecutan por completo en un ciclo de reloj. La ejecución comienza en un flanco y termina en el siguiente (del mismo tipo). (Diapositiva 2)

3 PRINCIPIOS DE DISEÑO LOGICO
Elementos combinacionales Elementos secuenciales D Clk Q DATAPATH (Diapositiva 2)

4 Búsqueda de la instrucción:
LA CONSTRUCCION DEL DATAPATH IMPLICABA QUE ESTE LLEVARA A CABO UNA SERIE DE TAREAS Búsqueda de la instrucción: Traer la instrucción de memoria: Inst = MEM[PC]. Actualizar el program Counter para el próximo ciclo: ¿Cuál es la dirección de la próxima instrucción? 2. Definir el tipo de instrucción traída: Se manejan 3 formatos de instrucciones: Tipo R, tipo I y tipo J. Todas las instrucciones tienen el mismo tamaño. Cada uno de los campos de cada instrucción debe ser adecuadamente conectado a los elementos del datapath para que este pueda ejecutarla correctamente. (Diapositiva 2)

5 INSTRUCCIONES TIPO R Y TIPO I (QUE EMPLEAN OPERANDOS INMEDIATOS)
(Diapositiva 2)

6 INSTRUCCIONES TIPO I PARA LEER MEMORIA (LOAD)
(Diapositiva 2)

7 INSTRUCCIONES TIPO I PARA ESCRIBIR EN MEMORIA (STORE)
(Diapositiva 2)

8 INSTRUCCIONES TIPO I QUE IMPLEMENTAN SALTOS CONDICIONALES
(Diapositiva 2)

9 INSTRUCCIONES TIPO J (SALTOS INCONDICIONALES)
(Diapositiva 2)

10 INSTRUCCIONES TIPO J (SALTOS INCONDICIONALES)
(Diapositiva 2)

11 JUNTANDO TODO (Diapositiva 2)

12 AÑADIENDO CONTROL ¿Qué hace la unidad de control?
Selecciona las operaciones a realizar (ALU, Banco de registros y lecturas/escrituras de memoria). Controlar el flujo de datos. ¿Como? La información viene desde las instrucciones de 32 bits. Campos de las instrucciones El campo op siempre ocupa los bits La dirección de los dos registros a ser leídos están siempre especificadas por los campos rs y rt (bits y 20-16). El registro base para lw y sw esta siempre en rs (bits 25-21). La dirección de registro a ser escrito siempre esta en uno de dos lugares; en rt (bits 20-16) para lw o en rd (bits 15-11) para instrucciones tipo R. El offset para beq, lw, y sw esta siempre en los bits 15-0. El formato de la instrucción tipo J es el mas diferente. (Diapositiva 2)

13 ALGUNOS EJEMPLOS Al principio del ciclo de reloj
(Diapositiva 2)

14 ALGUNOS EJEMPLOS Control para operaciones aritméticas
(Diapositiva 2)

15 ALGUNOS EJEMPLOS Instruction fetch y fin
(Diapositiva 2)

16 ALGUNOS EJEMPLOS Aritmética con inmediatos (ori)
(Diapositiva 2)

17 ALGUNOS EJEMPLOS Control para operaciones de lectura de memoria (load)
(Diapositiva 2)

18 ALGUNOS EJEMPLOS Control para instrucciones de escritura en memoria (store) (Diapositiva 2)

19 ALGUNOS EJEMPLOS Control para saltos condicionales (equ)
(Diapositiva 2)

20 ALGUNOS EJEMPLOS Control para saltos incondicionales (j)
(Diapositiva 2)

21 PARA VER TODO LO ANTERIOR MAS CLARAMENTE
El programa ProcSim simula un procesador MIPS R2000. Puede desplegar un numero de datapath a través del procesador, mostrando como cada componente de la arquitectura trabaja con la entrada. Ensambla programas que pueden ser entradas al programa usando las instrucciones soportadas las cuales varían con la arquitectura usada URL: (Diapositiva 2)

22 PARA VER TODO LO ANTERIOR MAS CLARAMENTE

23 MAS SOBRE LA UNIDAD DE CONTROL
Como la unidad de control toma un solo ciclo, el control es libre de estados. Este solo decodifica los bits de la instrucción. La tabla siguiente resume cada una de las instrucciones anteriormente mostradas: (Diapositiva 2) Recordemos, el control se realiza principalmente con el fin de seleccionar la operación que realizara la ALU, así como definir la ruta de datos del datapath.

24 Líneas de control de la ALU
La ALU puede realizar una serie de funciones las cuales dependen de las líneas de control. La siguiente tabla muestra las líneas de control asociadas a la ALU: Líneas de control de la ALU Función 0000 AND 0001 OR 0010 add 0110 subtract 0111 set-on-less-than 1100 NOR (Diapositiva 2) La ALU básicamente se emplea para: Instrucciones load/store (lw/sw): sumador 00 Instrucciones branch (equ): restador  01 Instrucciones tipos R (aritméticas): Depende del campo funct (6 bits)  10 ALUOp (Campo de 2 bits asociado al tipo de instrucción)

25 CONTROL DE LA ALU Para generar los 4 bits de control de la ALU se usa una pequeña unidad de control que tiene como entradas el campo funct de la instrucción (mas específicamente de la tipo R) y un campo de control de 2 bits conocido como ALUOP: Los valores de ALUOp se generan en una unidad de control principal. El uso de varios niveles de control permite reducir el tamaño de la unidad de control principal (potencialmente incrementando su velocidad). Dependiendo del tipo de instrucción, la ALU necesita realizar una de las primeras cinco funciones (la función NOR no es necesaria en el subconjunto de instrucciones MIPS que estamos implementando): (Diapositiva 2)

26 CONTROL DE LA ALU La siguiente tabla relaciona la entrada ALUOp con el tipo de operaciona a realizar y la salida (ControlALU) de la unidad de control de la ALU. opcode ALUOp Operación funct Función ALU Control ALU lw 00 load word XXXXXX add 0010 sw store word beq 01 branch equal subtract 0110 Tipo R 10 100000 100010 AND 100100 0000 OR 100101 0001 set-on-less-than 101010 0111 (Diapositiva 2)

27 CONTROL DE LA ALU Tabla de verdad para las líneas de control de la ALU (Operation), cuyas entradas son ALUop y el campo funct Una posible implementación: (Diapositiva 2)

28 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
Tabla de verdad para las líneas de control de la ALU (Operation), cuyas entradas son ALUop y el campo funct (Diapositiva 2)

29 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
Mediante el análisis de los campos de una instrucción y las líneas de control requeridas por el datapath que hemos construido, podemos diseñar la unidad de control principal. R-type rs rt rd shamt funct 31:26 5:0 25:21 20:16 15:11 10:6 Load/ Store 35 / 43 rs rt address 31:26 25:21 20:16 15:0 4 rs rt address 31:26 25:21 20:16 15:0 Branch (Diapositiva 2) opcode Leído siempre Leído, excepto en load Escrito en tipo R y load: MUX extra Extendido en signo y sumado

30 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

31 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

32 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

33 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

34 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

35 EFECTOS DE LAS SEÑALES DE CONTROL
Efecto cuando no se acciona Efecto cuando se acciona RegDst El número del registro de destino para la entrada Write register del banco de registros proviene del campo rt (bits 20:16) El número del registro de destino para la entrada Write register del banco de registros proviene del campo rd (bits 15:11) RegWrite Ninguno El registro seleccionado en la entrada Write register se escribe con el valor en la entrada Write data ALUSrc El segundo operando de la ALU proviene de la segunda salida del banco de registros (Read data 2) El segundo operando de la ALU corresponde a los 16 bits inferiores de la instrucción extendidos en signo PCSrc El PC se actualiza con la salida del sumador que calcula el valor PC+4 El PC se actualiza con la salida del sumador que calcula el destino del salto MemRead El contenido de la memoria de datos en la dirección indicada a la entrada se pone en la salida Read data MemWrite El contenido de la memoria de datos en la dirección indicada se reemplaza con el valor en la entrada Write data MemtoReg El valor dirigido a la entrada Write data del banco de registros proviene de la ALU El valor dirigido a la entrada Write data del banco de registros proviene de la memoria de datos (Diapositiva 2)

36 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
Todas las señales de control (incluida ALUop) son accionadas por parte de la unidad de control, excepto la señal PCSrc PCSrc debe accionarse si la instrucción es beq (esta decisión la puede tomar la unidad de control basada en el opcode) y la salida Zero de la ALU está activa (esto sucede cuando el resultado de la comparación es cierto) PCSrc = Branch AND Zero La señal Branch la genera la unidad de control La unidad de control queda completamente determinada por el campo opcode de la instrucción. Un multiplexor cuya entrada de control es 0, tiene una acción definida aun si no es usado para realizar la operación. (Diapositiva 2)

37 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
De la tabla de verdad anterior se puede diseñar la unidad de control principal (Diapositiva 2)

38 IMPLEMENTACION DE SALTOS INCONDICIONALES
La instrucción de salto incondicional jump produce una dirección de palabra de destino del salto El PC se actualiza mediante la concatenación de: Cuatro bits superiores del valor PC+4 Los 26 bits del campo inmediato de la instrucción jump Los bits 00 (para direccionar palabras) Su implementación requiere de: Un multiplexor adicional para seleccionar una nueva fuente para el valor del PC, que puede ser el PC incremental (PC+4), la dirección de destino de salto condicional (beq), o la dirección de destino de salto incondicional (jump) Una señal de control para el multiplexor adicional denominada Jump, obtenida a partir del opcode de la instrucción de salto incondicional (Diapositiva 2)

39 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
(Diapositiva 2)

40 DISEÑANDO LA UNIDAD DE CONTROL PRINCIPAL
Asignar ‘1’ a la señal MemRd (Para intrucciones tipo R, sw, beq) depende del diseño de la memoria. (Diapositiva 2)

41 ANOTACIONES SOBRE LA IMPLEMENTACION MONOCICLO DEL PROCESADOR
Ventajas: Un ciclo por instrucción (CPI = 1) hace la lógica y el reloj simples. Desventajas: Muy lenta, esto debido a que el ciclo de reloj debe tener la misma longitud para cada instrucción. Sin embargo, no todas las instrucciones tardan lo mismo por lo que el tiempo del reloj será el de la instrucción que mas demore. Ineficiente utilización de memoria y unidades funcionales ya que diferentes instrucciones toman diferentes tiempos. Cycle time = 20 ns Load Add Beq 1 cycle (Diapositiva 2)

42 CRITICAL PATH – INSTRUCCIÓN LOAD
El camino mas largo es el seguido por la instrucción load, debido a que es la que mas unidades funcionales emplea. La siguiente tabla muestra esto: (Diapositiva 2)

43 RESUMEN PROCESADOR MONOCICLO
Cinco pasos para diseñar un procesador: Analizar la arquitectura del conjunto de instrucciones (ISA) Para conocer los requerimientos del datapath Establecer los componentes del datapath y elegir el esquema de reloj Ensamblar el datapath satisfaciendo los requerimientos Analizar la implementación de las instrucciones para determinar las señales de control que tendrán efecto sobre el flujo de datos Ensamblar la lógica de control (Diapositiva 2)

44 REFERENCIAS http://microe.udea.edu.co/~farivera/docencia.html
Computer organization and design. The hardware/software interface, 3rd ed., Chapter 5. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers


Descargar ppt "CLASE 14."

Presentaciones similares


Anuncios Google