La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

El procesador: la ruta de datos y el control (II Parte)

Presentaciones similares


Presentación del tema: "El procesador: la ruta de datos y el control (II Parte)"— Transcripción de la presentación:

1 El procesador: la ruta de datos y el control (II Parte)
Capítulo 3 El procesador: la ruta de datos y el control (II Parte)

2 Mejoramiento del rendimiento
Tiempo de ciclo arreglado Obviamente ineficiente Tiempo de ciclo variable Más rápido Temporización compleja Múltiples ciclos de reloj Quiebre de instrucciones en pasos de un ciclo Balance de la cantidad de trabajo por realizar Restricciones en cada ciclo por usar una unidad funcional Almacena valores al final de cada ciclo para ser utilizado en otros ciclos.

3 Implementación de múltiples ciclos de reloj
Registros se actualizan en cada ciclo Datos Salidas del archivo de registros Salidas de la ALU Instrucción se actualiza al final de la instrucción.

4 Ruta de datos Utilice la ALU para Rutas de datos adicionales
Incrementar el PC Saltos Direcciones de memoria Operaciones aritméticas Rutas de datos adicionales Interpretación de IR depende del formato de las instrucciones

5 Ruta de datos con señales de control
Direcciones de memoria R/W Escritura en IR Escritura en registro Escritura en el registro destino Escritura en el registro fuente de datos Multiplexor de fuente de ALU Control de ALU

6 Manejo del PC La fuente del PC se selecciona por medio de un multiplexor Salida de la ALU después de PC + 4 (instrucción normal) Salida de la ALU después de calcular una dirección de salto condicional Nueva dirección de una instrucción de salto Escritura del PC Incondicional después de una instrucción normal y salto. Sobre escritura condicional si se realiza un salto PCWriteCond permite cargas condicionales El bit de Zero de ALU decide si el PC se cargará con la nueva dirección de salto.

7 Diseño de la multiciclo
Se pueden reutilizar las unidades funcionales La ALU se puede reutilizar para el cálculo de direcciones y para incrementar el PC La memoria se puede utilizar para almacenar instrucciones y datos Las señales de control no son determinadas únicamente por la instrucción. Se utiliza una máquina de estados finita (FSM) para implementar el control. No solamente el uso de lógica combinacional en el diseño del sistema. Ahora la unidad de control es secuencial por lo que se requiere de una FSM

8 Multiplexores para enrutar Registros Extra Conductores
Componentes básicos Multiplexores para enrutar Registros Extra M U X 1 2 3 MUX Conductores P C Memoria ALU Registros D R1id WRid R2id IR M R A O U t A B 4 Shift Dirección de memoria Actualizar el PC Salida de memoria Palabra de instrucción Salida de registros Salida de ALU

9 Operación de búsqueda 1 cargue sume cargue 1 4
Memoria ALU Registros D R1id WRid R2id IR M R A U X 1 O t B 2 3 MUX 4 Shift Ruta del PC a Memoria & ALU Add 4 1 Load PC cargue Load IR sume cargue 1

10 Ruta de datos completa y su control

11

12

13 Quiebra de instrucciones
Moverse de un ciclo a multiciclo Identificar los pasos que tardan un ciclo Misma distribución en el tiempo de ejecución Por lo menos una operación para cada uno de los módulos ALU Archivo de Registros Memoria Nuevos registros si La señal se genera en un ciclo y se utiliza en otro. Las entradas del bloque que genera la señal puede cambiar en el segundo ciclo.

14 Los 5 pasos en la ejecución
Búsqueda de instrucción Mover la instrucción de la memoria de instrucción al registro de instrucción IR Decodificación de la instrucción y búsqueda de registro Provee el contenido del registro a la ALU Ejecución, cálculo de la dirección de memoria o salto Acceso a memoria o finalización de instrucciones tipo R Proceso de escritura.

15 Paso 1: Búsqueda de una instrucción
Utilice el PC para obtener la instrucción y colocarla en el registro de instrucción. IR <=MEMORIA(PC) SET Read Address Mux (IorD) = 0 selecciona la instrucción SET MemRead = 1 Incremente el PC en cuatro 4 y coloque el resultado en el PC nuevamente. PC <= PC+4 ALUSrcA = 0 obtenga el operando de IR ALUSrcB = 01 obtenga el operando 4 ALUOp = 00 add Almacene el nuevo valor del PC en PC Incrementar el PC y el acceso a la memoria de instrucción pueden realizarse en paralelo.

16 Ruta de datos: IR = Memory[PC], PC = PC + 4
Control: IorD=0, MemRead=1, MemWr=0, IRwrite=1, ALUsrcA=0, etc

17 Paso 2: Decodificación de instrucción y búsqueda de registro
Lee los registros rs y rt en caso de que se necesiten A <= Reg[IR[25-21]] rs B <= Reg[IR[20-16]] rt Se calculan las direcciones de salto en caso de que se ejecute el salto. ALUOut <= PC + (sign-extend(IR[15-0]) << 2); Almacénelo en el registro ALUOut ALUSrcb = 11 ALUOp = 00 add

18 A = Register[IR[25-21]] B = Register[IR[20-16]] ALUout = PC + (sign-extend (IR[15-0]) << 2)

19 Paso 3: Ejecución, cálculo de dirección de memoria o de salto
La cantidad de pasos dependen de la instrucción Selección realizada por interpretación de op + campo de la función en la instrucción La ALU realiza una de las tres funciones, basándose en el tipo de instrucciones. Calcula la dirección de memoria ALUOut <= A + sign-extend(IR[15-0]) ALUSrcA = 1 obtiene el operando de A ALUSrcB = 10 obtiene el operando de la unidad de signo externo ALUOp = 00 add

20 Paso 3: Ejecución, cálculo de dirección de memoria o de salto (continuación)
Instrucciones tipo R: ALUOut <= A op B ALUSrcA = 1 obtiene operando de A ALUSrcb = 00 obtiene operando de B ALUOp = 10 código de IR Instrucciones con salto: if (A==B) PC <= ALUOut; ALUSrcA = 1 obtiene operando de A ALUSrcB = 00 obtiene operando de B ALUOp = 01 sustracción Escriba ALUOut en el registro PC Salto JUMP PC<= {PC[31-28], (IR[25-0],2’b00)}

21 En el ciclo 1, PC se incrementa en 4
ALU out B En el ciclo 1, PC se incrementa en 4 En el ciclo 2, ALUout se pone para el salto condicional En este ciclo, condicionalmente se pone el PC: if (A==B) PC=ALUout

22 Paso 4: Acceso a memoria o ejecución de instrucción tipo R
El control de la ALU debe mantenerse estable Ponga I o D = 1 direcciones de la ALU MDR <= Memoria [ALUOut] Carga con memoria Ponga MemRead = 1 B => Memoria [ALUOut] Almacena en memoria Ponga MemWrite = 1

23 Paso 4: Acceso a memoria o ejecución de instrucción tipo R
Finalización de instrucciones aritméticas o lógicas Registro [IR[15-11]]<=ALUOut Pone RegDst = 1 seleccionar el registro de escritura Pone RegWrite = 1 permite operaciones de escritura Pone MemToReg = 0 selecciona datos en ALU ALUOp, ALUSrcA, ALUSrcB = CONTANTE

24 Ciclo 4: Reg[IR[15-11]] = ALUout
Ciclo 3: ALUout = A op B Ciclo 4: Reg[IR[15-11]] = ALUout B A

25 Ciclo 4: Reg[IR[15-11]] = ALUout
Ciclo 3: ALUout = A op B Ciclo 4: Reg[IR[15-11]] = ALUout B A ALU out

26 Paso 5: Proceso de escritura
Escribe datos de la memoria al registro Reg[IR[20-16]]= MDR Pone RegDst = 0 selecciona escritura en RT como registro de dirección Pone RegWrite = 1 permite operaciones de escritura Pone MenToReg = 1 selecciona la memoria de datos ALUOp, ALUSrcA, ALUSrcB = CONTANTE

27 RESUMEN

28 SEÑALES DE CONTROL

29 CONTROLANDO EL PROCESADOR
Secuencia de pasos es dependiente del tiempo (máquina de estados) Descripción de los métodos Diagrama de estados Microprogramación VHDL Programa En este ejemplo utilizaremos diagramas de estado y microprogramación

30 Descomposición general
Parte común Búsqueda de instrucciones Decodificación de las instrucciones/búsqueda de registro Parte específica de la instrucción

31 Parte común Búsqueda de instrucción
Descodificación de la instrucción/búsqueda de registro

32 Acceso a Memoria Cálculo de dirección Secuencia de carga
Lectura de memoria Almacenamiento en registro Acceso a memoria Escritura de secuencia de almacenamiento

33 Instrucción tipo R Ejecución de la instrucción Escribir el resultado final en el registro

34 Instrucción de salto Un solo estado El PC se debe cargar con la dirección de salto Obtener la próxima instrucción

35 Instrucción de salto (JUMP)
Carga el PC con el nuevo valor Obtiene la próxima instrucción

36 Maquina de estados completa
Parte común Parte específica de la instrucción

37 Resumen de las señales de control
Los datos en negro indican señales activas Los datos en gris indican señales inactivas que deben establecerse Líneas indican condiciones no importa

38 Rendimiento Mezcla de instrucciones y estados CPI cargas 5 22% 4 11%
instrucción largo prueba cargas 5 22% almacenamiento 4 11% Tipo R 49% salto 3 16% Jump 2%

39 Posibilidades de implementación
Máquina de Moore: las salidas dependen de la entradas y del estado

40 Para este ejemplo

41 Opciones para implementación
ROM Bits para direcciones: 10 Registros de estado: 4 bits Campo para código de operación: 6 bits Bits de salida: 17 PLA Calculo de las funciones de salida Optimización Mapear a la arquitectura PLA Menos área Rápida construcción

42 PLA

43 ROM vs PLA Rompe la tabla en dos partes PLA es más pequeño
4 bits de estado para generar 16 salidas, 24X16 bits de ROM 10 bits para definir los próximos 4 estados, 210X4 bits de ROM Total: 4.3K bits de ROM PLA es más pequeño Se pueden compartir términos Solo se necesita de entradas que producen una salida Se puede contar con condiciones no importa El tamaño es (#entradas´ #producto-términos) + (#salidas ´ #producto-términos) para este ejemplo = (10x17)+(20x17) = 460 PLA celdas Las celdas del PLA generalmente tienen el tamaño de una celda de ROM

44 MICROPROGRAMACION Limitaciones en FSM basadas en los diagramas de estado y su complejidad MIPS: más de 100 instrucciones Largo de las instrucciones: 1 – 20 ciclos Numero de estados: gigantesco y creciente Otra alternativa: microprogramación Implementación de instrucciones tipo MIPs se puede realizar como una secuencia de simples instrucciones Diseñar un formato para las micro instrucciones Escribir el programa

45 Micro instrucciones ¿Qué es lo que necesitamos? ¿Qué vamos a hacer?
Señales de control para la ALU Señales de control para el contador de programa PC Ruta de datos completa ¿Qué vamos a hacer? Analizar que sucede en cada estado Escribirlo en una tabla Traducirlo a binario Almacenarlo en una forma apropiada

46 Una simple implementación

47 Elementos Almacenamiento del micro código (ROM o PLA)
Salidas para el control de la ruta de datos Secuencia para el control de salida Decodificador de salida (opcional) Contador de microprograma/mux Reset Incrementador Nueva dirección Control de secuencia Mux de control Calculo de la próxima dirección

48 RUTA DE DATOS Ruta de datos y control

49 Formato de las micro instrucciones
Mezcle las señales de acuerdo a la función Las señales que nunca se utilizarán se pueden compartir al mismo tiempo Las señales deben ponerse

50 Microprograma Implementación física: ROM o PLA
Cada microinstrucción tiene una dirección Secuencialmente ordenado Cada paso de la secuencia es de un ciclo Selección de la próxima instrucción Se incrementa la dirección (campo de secuencia = seq) Búsqueda: inicia la búsqueda de la próxima microinstrucción (campo de secuencia = fetch) Dispatch: salta a la próxima microinstrucción el número i indica la dirección en la tabla de dispatch.

51 Señales de control

52 Creación del microprograma
Inicio de cada instrucción Búsqueda de instrucción Cálculo de próximo PC Decodificación de la instrucción Cálculo del próximo salto PC Espacios en blanco Multiplexor: no importa Las señales de control para el acceso a los registros o generación de funciones: se ponen en cero

53 Secuencia de inicio Primera instrucción Segunda instrucción

54 Acceso a memoria Micro instrucciones Parte común

55 Acceso a memoria Cargue una palabra específica, 1 Cargue una palabra específica, 2 Almacene una palabra específica

56 Instrucciones con formato R
Microinstrucción Operación Finalización de la operación

57 Salto y Jump Salto Jump

58 Micro programa completo

59 Situaciones no implementadas
Interrupciones Solicitudes de periféricos de entrada salida Manejo de excepciones Invocación del sistema operativo Rebase aritmético Instrucción indefinida Errores en hardware Manejo de errores Recuperación Operación de abortar Proceso de abortar Reboot

60 Detección de excepciones
Instrucciones indefinidas Pruebe el valor en el campo del código de operación En todos los valores que no pertenecen a un valor válido genere una interrupción Rebase aritmético Es detectado y generado por la ALU Acciones Salve el PC en la instrucción (PC-4)en el contador de programa de excepciones (EPC) Continúe con OS con un código para el manejo de errores Retorne al código original en la próxima instrucción para reiniciar.

61 Manejo de excepciones VERSION 1: VERSION 2:
Utilice el registro de estado Simple punto de entrada El sistema operativo (OS) analiza el registro de estado VERSION 2: Interrupciones vectorizadas Por cada interrupción se almacena un vector Cada vector de interrupciones tiene asociado un programa

62 Manejo de MIPS REGISTROS SEÑALES DE CONTROL
Registros de causa de 32 bits Bits individuales son utilizados para codificar la causa, Instrucciones indefinidas: bit 0 = 0 Rebase aritmético: bit 0 = 1 EPC, 32 bits, se puede cargas desde la salida de la ALU SEÑALES DE CONTROL CauseWrite EPCWrite Señales de 1 Bit IntCause Direcciones de excepciones, C hex

63 Manejo de MIPS Extensión del Mux del PC
ALU Saltos Jumps Excepciones Decremente el PC en 4 obtenga las direcciones de la instrucción que se ejecuta

64 Arquitectura extendida

65 Arquitectura extendida
Registro de Causa Escritura de Causa EPC EPCWrite Extensión PCSourse

66 Manejo de excepciones Instrucción indefinida > IntCause = 0 (estado 10) Rebase aritmético > IntCause= 1 (estado 11) Carga el EPC Carga el PC con el registro de interrupciones

67 Máquina de estados con excepciones

68 Opciones para implementación

69 FIN


Descargar ppt "El procesador: la ruta de datos y el control (II Parte)"

Presentaciones similares


Anuncios Google