Capítulo 3 El procesador, la ruta de datos y el control (I Parte) Página
Jerarquía de traducción Página
Proceso de diseño del CPU <ul><li>En el proceso de diseño de un procesador se deben conocer los siguientes aspectos: </li>...
Diseño del CPU <ul><li>Una forma de diseñar la Unidad de Control o de interpretación de instrucciones es mediante el diseñ...
MAQUINAS DE ESTADO <ul><li>Máquina de Mealy </li></ul><ul><li>Máquina de Moore </li></ul><ul><li>Máquina tipo C </li></ul>...
Máquina Clase A, Mealy Página
Máquina Clase B, Moore Página
Máquina Clase C, Moore sin registro de salidas Página
Máquina Clase E Página
Máquina Clase D Página
<ul><li>Dos tipos de unidades funcionales </li></ul><ul><ul><li>Elementos que operan en la ruta  de los datos (combinacion...
TIPOS DE MÁQUINAS <ul><li>Máquinas cuya operación se realiza en un solo ciclo de reloj </li></ul><ul><li>Máquinas cuya ope...
Señales de Reloj <ul><li>El reloj es una señal periódica: </li></ul><ul><li>El disparo por borde permite a los datos ser l...
Operación en su sólo ciclo <ul><li>Todas las operaciones en lógica combinacional deben realizarse en un ciclo de reloj. </...
Operación con múltiples ciclos <ul><li>Los cambios ocurren en el borde creciente  los momentos seleccionados </li></ul>Pág...
Concepto de un solo ciclo <ul><li>La ruta de datos en el CPU se encuentra entre los registros – el pulso de reloj determin...
La visión abstracta <ul><li>Contador de programa: próxima instrucción </li></ul><ul><li>Memoria de instrucciones </li></ul...
Construcción de la ruta de datos <ul><li>Memoria para instrucciones </li></ul><ul><ul><li>Contenga sólo instrucciones </li...
Instrucciones y el PC <ul><li>Incrementa: suma 4 al PC para obtener la dirección de la próxima instrucción. </li></ul><ul>...
Registros y ALU <ul><li>Archivo de registros con el fin de ejecutar instrucciones con direccionamiento por registro </li><...
Agregando la memoria de datos <ul><li>Transferencia de direcciones a memoria </li></ul><ul><li>Transferencia de los datos ...
Ruta de datos para el salto <ul><li>PC+4 + extensión del signo y dirección desplazada </li></ul>Página
Conectando las unidades <ul><li>Archivo de registros </li></ul><ul><li>ALU para operandos y cálculos de direcciones </li><...
Agregando la unidad de búsqueda de instrucción <ul><li>La unidad de búsqueda de instrucción provee la instrucción. </li></...
Agregando la unidad de salto <ul><li>Se pueden manejar todas la instrucciones básicas </li></ul>Página
EJERCICIO <ul><li>Realice las modificaciones de HW necesarias para que esta arquitectura que se muestra a continuación rea...
EJERCICIO Cont Página
Procesador de un solo ciclo Página  Memoria Para  Datos Contador de programa Direcciones de memoria Incrementar Campos de ...
Acción de un procesador de un solo ciclo Página  Escribir datos a un registro Búsqueda de instrucción – Requiere “Read” Ac...
Temporización de un solo ciclo Página  I Memoria lectura PC Mux 0 Reg Mux ALU Mux 0 0 ALU Op NOP D Memoria lectura Data Mu...
Control básico <ul><li>Repaso de las funciones de la ALU/líneas de control. </li></ul><ul><li>Bits de control de la ALU: o...
Control de la ALU Página
Control central <ul><li>Código de operación: Op [31-26] </li></ul><ul><li>Registros de lectura: rs [25-21], rt [20-16] </l...
Ruta de datos extendida <ul><li>Multiplexores para la selección de escritura en registros </li></ul><ul><li>Todas las líne...
RESUMEN DE LAS LINEAS DE CONTROL <ul><li>REGDEST:  fuente del registro destino para la operación </li></ul><ul><li>REGWRIT...
Ruta de datos y control Página
Operación de la ruta de datos <ul><li>Ejemplo: Instrucción tipo registro </li></ul><ul><ul><li>Búsqueda de instrucción e i...
EJEMPLO DE INSTRUCCIÓN TIPO R Página
EJEMPLO DE EJECUCION <ul><li>Lw $3, offset ($2) </li></ul><ul><ul><li>Se busca la instrucción en memoria, incrementa el PC...
Finalización del control <ul><li>Códigos de operación en decimal </li></ul><ul><li>Códigos de operación en binario </li></...
Funciones de control Página
Implementación  <ul><li>Seleccione la correcta </li></ul><ul><ul><li>Lógica  </li></ul></ul><ul><ul><li>PLA </li></ul></ul...
Instrucción de salto <ul><li>Realizar una extensión de la arquitectura que se está tratando </li></ul><ul><li>Tiene el sig...
Arquitectura con Jump Página
Limitaciones de la solución con un solo ciclo <ul><li>El tiempo de acceso para varias operaciones varía </li></ul><ul><ul>...
EJEMPLO <ul><li>Lista de acciones por instrucción </li></ul><ul><li>Número de ciclos por instrucción </li></ul>Página
Ejemplo cont. <ul><li>Probabilidades </li></ul><ul><ul><li>Formato  49% 16 ns </li></ul></ul><ul><ul><li>Load 22% 24 ns </...
Implementación de un solo ciclo <ul><li>Calcule el tiempo de ciclo asumiendo tiempos de retardo despreciables excepto: mem...
EJERCICIO <ul><li>Se quiere agregar una nueva instrucción al conjunto de instrucciones MIPS, es la instrucción “jr” (jump ...
Arquitectura uniciclo Página
Palabra de control Página
Secuencia de ejecución de un modo de direccionamiento Página
Secuencia de ejecución de un modo indirecto Página
Secuencia de ejecución de modo inmediato Página
Secuencia de ejecución de una instrucción MOVE Página
Secuencia de ejecución de un Fetch Página
UNIDAD DE CONTROL Página
UNIDAD DE CONTROL (MOVE) Página
Problemas  <ul><li>¿Que sucede con las instrucciones complejas? </li></ul><ul><ul><li>Aumento del HW </li></ul></ul><ul><u...
Problemas en procesadores de un solo ciclo <ul><li>En la implementación de un solo ciclo:  Cada instrucción tarda un solo ...
<ul><li>Se estaría reutilizando las unidades funcionales </li></ul><ul><ul><li>La ALU se utilizaría para calcular direccio...
<ul><li>Se rompe la instrucción en pasos, cada paso toma un ciclo </li></ul><ul><ul><li>Balance en el trabajo a realizar <...
Upcoming SlideShare
Loading in …5
×

MICROPROCESADOR UNICICLO

1,707 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,707
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MICROPROCESADOR UNICICLO

  1. 1. Capítulo 3 El procesador, la ruta de datos y el control (I Parte) Página
  2. 2. Jerarquía de traducción Página
  3. 3. Proceso de diseño del CPU <ul><li>En el proceso de diseño de un procesador se deben conocer los siguientes aspectos: </li></ul>Página Procesador Ruta de datos Ruta de control Reg ALU Mem Deco Secuenciador Arquitectura del conjunto de instrucciones Circuitos lógicos
  4. 4. Diseño del CPU <ul><li>Una forma de diseñar la Unidad de Control o de interpretación de instrucciones es mediante el diseño de máquinas de estado. </li></ul>Página Lógica de próximo estado Memoria Lógica de salida A B C D E
  5. 5. MAQUINAS DE ESTADO <ul><li>Máquina de Mealy </li></ul><ul><li>Máquina de Moore </li></ul><ul><li>Máquina tipo C </li></ul><ul><li>Máquina microprogramada </li></ul>Página
  6. 6. Máquina Clase A, Mealy Página
  7. 7. Máquina Clase B, Moore Página
  8. 8. Máquina Clase C, Moore sin registro de salidas Página
  9. 9. Máquina Clase E Página
  10. 10. Máquina Clase D Página
  11. 11. <ul><li>Dos tipos de unidades funcionales </li></ul><ul><ul><li>Elementos que operan en la ruta de los datos (combinacional) </li></ul></ul><ul><ul><li>Elementos que contienen estados (secuenciales) </li></ul></ul>Detalles para la implementación Página
  12. 12. TIPOS DE MÁQUINAS <ul><li>Máquinas cuya operación se realiza en un solo ciclo de reloj </li></ul><ul><li>Máquinas cuya operación se realiza en varios ciclos de reloj </li></ul>Página
  13. 13. Señales de Reloj <ul><li>El reloj es una señal periódica: </li></ul><ul><li>El disparo por borde permite a los datos ser leídos de un registro y almacenados en un registro todo en un solo ciclo de reloj </li></ul>Página Cualquier valor almacenado en la máquina se actualiza solo Borde creciente Borde decreciente
  14. 14. Operación en su sólo ciclo <ul><li>Todas las operaciones en lógica combinacional deben realizarse en un ciclo de reloj. </li></ul>Página Un ciclo de reloj PROBLEMA: El ciclo del reloj debe ser muy largo Registro Lógica combinacional (ALU) Registro Se actualiza aquí
  15. 15. Operación con múltiples ciclos <ul><li>Los cambios ocurren en el borde creciente los momentos seleccionados </li></ul>Página escritura Requiere de señales de control adicionales Registro Combinational Logic (ALU) Registro escritura
  16. 16. Concepto de un solo ciclo <ul><li>La ruta de datos en el CPU se encuentra entre los registros – el pulso de reloj determina cuando los registros cambian. </li></ul>Página Retardo en carga de registros Retardo en la lógica combinacional
  17. 17. La visión abstracta <ul><li>Contador de programa: próxima instrucción </li></ul><ul><li>Memoria de instrucciones </li></ul><ul><li>Archivo de registros </li></ul><ul><li>Memoria de datos </li></ul><ul><li>Estructura del bus: transferencia de información </li></ul>Página
  18. 18. Construcción de la ruta de datos <ul><li>Memoria para instrucciones </li></ul><ul><ul><li>Contenga sólo instrucciones </li></ul></ul><ul><li>Contador de programa </li></ul><ul><ul><li>Apunte a la próxima instrucción </li></ul></ul><ul><li>Unidad aritmética y lógica </li></ul><ul><ul><li>Solo un sumador </li></ul></ul>Página
  19. 19. Instrucciones y el PC <ul><li>Incrementa: suma 4 al PC para obtener la dirección de la próxima instrucción. </li></ul><ul><li>Necesita de extensiones para ejecutar saltos. </li></ul>Página
  20. 20. Registros y ALU <ul><li>Archivo de registros con el fin de ejecutar instrucciones con direccionamiento por registro </li></ul><ul><li>La unidad lógica y aritmética se puede diseñar de una forma muy similar al circuito integrado 74181 </li></ul>Página
  21. 21. Agregando la memoria de datos <ul><li>Transferencia de direcciones a memoria </li></ul><ul><li>Transferencia de los datos al archivo de registros </li></ul><ul><li>Unidad de extensión de signo para el cálculo de la dirección. </li></ul>Página
  22. 22. Ruta de datos para el salto <ul><li>PC+4 + extensión del signo y dirección desplazada </li></ul>Página
  23. 23. Conectando las unidades <ul><li>Archivo de registros </li></ul><ul><li>ALU para operandos y cálculos de direcciones </li></ul><ul><li>Memoria de datos </li></ul>Página
  24. 24. Agregando la unidad de búsqueda de instrucción <ul><li>La unidad de búsqueda de instrucción provee la instrucción. </li></ul>Página
  25. 25. Agregando la unidad de salto <ul><li>Se pueden manejar todas la instrucciones básicas </li></ul>Página
  26. 26. EJERCICIO <ul><li>Realice las modificaciones de HW necesarias para que esta arquitectura que se muestra a continuación realice una instrucción que SUME dos operados, uno almacenado en un registro, otro almacenado en una dirección de memoria y que el resultado se almacene en un registro </li></ul>Página
  27. 27. EJERCICIO Cont Página
  28. 28. Procesador de un solo ciclo Página Memoria Para Datos Contador de programa Direcciones de memoria Incrementar Campos de instrucciones – Registros con puertos duales Ruta de datos - ALU Memoria principal para datos P C Memoria Para Instrucciones M U X 0 1 Addr D ADD M U X 0 1 M U X 0 1 Registros D R1id WRid R2id ADD +4 ALU M U X 0 1 ¿Porqué esto aquí? R1 ID R2 ID WR ID otro ¿Porqué esta esto aquí?
  29. 29. Acción de un procesador de un solo ciclo Página Escribir datos a un registro Búsqueda de instrucción – Requiere “Read” Actualice el PC – Requiere “0” Mux de dirr Decodifique la Instrucción Seleccione Reg Addr Pase la dirección de los Datos Pase la dirección de datos por la ALU Lea los datos Envié los datos a los registros Escriba la instrucción en el registro Ahora los relojes en el sistema Registros D R1id WRid R2id P C ADD Memoria De instrucciones ALU Memoria De Datos ADD M U X 0 1 M U X 0 1 M U X 0 1 M U X 0 1 Addr D Read 0 1 1 0 NOP Read Write Campo de la dirr Reg Campo de Dirr Datos Clk Clk
  30. 30. Temporización de un solo ciclo Página I Memoria lectura PC Mux 0 Reg Mux ALU Mux 0 0 ALU Op NOP D Memoria lectura Data Mux 1 Reg Ctrl escritura RELOJ Ciclo de reloj requerido
  31. 31. Control básico <ul><li>Repaso de las funciones de la ALU/líneas de control. </li></ul><ul><li>Bits de control de la ALU: origen de </li></ul><ul><ul><li>00: suma (carga o almacena una palabra) </li></ul></ul><ul><ul><li>01: resta (salta si es igual) </li></ul></ul><ul><ul><li>10: operaciones de acuerdo al valor de la función (instrucciones con direccionamiento por registro) </li></ul></ul>Página
  32. 32. Control de la ALU Página
  33. 33. Control central <ul><li>Código de operación: Op [31-26] </li></ul><ul><li>Registros de lectura: rs [25-21], rt [20-16] </li></ul><ul><li>Registro base (LW, SW): rs[25-21] </li></ul><ul><li>Registro destino </li></ul><ul><ul><li>Cargue: rt[20-16] </li></ul></ul><ul><ul><li>Tipo R: rd[15-11] </li></ul></ul><ul><ul><li>Requiere de un multiplexor para indicar el número del registro en el que se va a escribir </li></ul></ul>Página
  34. 34. Ruta de datos extendida <ul><li>Multiplexores para la selección de escritura en registros </li></ul><ul><li>Todas las líneas de control </li></ul>Página
  35. 35. RESUMEN DE LAS LINEAS DE CONTROL <ul><li>REGDEST: fuente del registro destino para la operación </li></ul><ul><li>REGWRITE: habilita la escritura a un registro del archivo </li></ul><ul><li>ALUSRC: fuente del segundo operando de la ALU, puede ser un registro o parte de la instrucción </li></ul><ul><li>PCSRC: fuente del PC, (incremente[POC+4] o salta) </li></ul><ul><li>MEMREAD/MEMWRITE: lectura o escritura de memoria </li></ul><ul><li>MEMTOREG: fuente de escritura de un registro </li></ul>Página
  36. 36. Ruta de datos y control Página
  37. 37. Operación de la ruta de datos <ul><li>Ejemplo: Instrucción tipo registro </li></ul><ul><ul><li>Búsqueda de instrucción e incremento del PC </li></ul></ul><ul><ul><li>Lectura de registros </li></ul></ul><ul><ul><li>Procesamiento de los datos en la ALU </li></ul></ul><ul><ul><li>Escritura del resultado en el archivo de registros </li></ul></ul>Página
  38. 38. EJEMPLO DE INSTRUCCIÓN TIPO R Página
  39. 39. EJEMPLO DE EJECUCION <ul><li>Lw $3, offset ($2) </li></ul><ul><ul><li>Se busca la instrucción en memoria, incrementa el PC </li></ul></ul><ul><ul><li>Lee el valor del registro $2 </li></ul></ul><ul><ul><li>Calcula la dirección final </li></ul></ul><ul><ul><li>Utiliza la dirección para direccionar la memoria </li></ul></ul><ul><ul><li>Escribir el dato en el file de registros </li></ul></ul><ul><li>Beq $10, $11, offset </li></ul><ul><ul><li>Busca la instrucción en memoria, incrementa el PC </li></ul></ul><ul><ul><li>Lee los dos valores de los registros ($10,$11) </li></ul></ul><ul><ul><li>Resta los valores, calcula la dirección de salto </li></ul></ul><ul><ul><li>Utiliza la señal de cero para determinar el salto o la etiqueta. </li></ul></ul>Página
  40. 40. Finalización del control <ul><li>Códigos de operación en decimal </li></ul><ul><li>Códigos de operación en binario </li></ul>Página
  41. 41. Funciones de control Página
  42. 42. Implementación <ul><li>Seleccione la correcta </li></ul><ul><ul><li>Lógica </li></ul></ul><ul><ul><li>PLA </li></ul></ul><ul><ul><li>ROM </li></ul></ul><ul><ul><li>Etc.... </li></ul></ul>Página
  43. 43. Instrucción de salto <ul><li>Realizar una extensión de la arquitectura que se está tratando </li></ul><ul><li>Tiene el siguiente formato </li></ul><ul><ul><li>Instrucción </li></ul></ul><ul><ul><li>Dirección </li></ul></ul>Página
  44. 44. Arquitectura con Jump Página
  45. 45. Limitaciones de la solución con un solo ciclo <ul><li>El tiempo de acceso para varias operaciones varía </li></ul><ul><ul><li>Acceso a memoria 10 ns </li></ul></ul><ul><ul><li>Acceso a registros 2 ns </li></ul></ul><ul><ul><li>Add 3 ns </li></ul></ul><ul><ul><li>Sub 3.5 ns </li></ul></ul><ul><ul><li>Multiplicación 20 ns </li></ul></ul><ul><ul><li>Multiplicación en PF 24 ns </li></ul></ul><ul><ul><li>Funciones transcendentales 40 ns </li></ul></ul><ul><li>Tiempo depende de la implementación </li></ul><ul><li>El módulo más lento define la duración del ciclo </li></ul>Página
  46. 46. EJEMPLO <ul><li>Lista de acciones por instrucción </li></ul><ul><li>Número de ciclos por instrucción </li></ul>Página
  47. 47. Ejemplo cont. <ul><li>Probabilidades </li></ul><ul><ul><li>Formato 49% 16 ns </li></ul></ul><ul><ul><li>Load 22% 24 ns </li></ul></ul><ul><ul><li>Store 11% 22 ns </li></ul></ul><ul><ul><li>Branch 16% 14 ns </li></ul></ul><ul><ul><li>Jump 2% 8 ns </li></ul></ul><ul><li>Tiempo de ciclo de reloj del CPU es de: 18 ns </li></ul><ul><li>Tiempo de ciclo de reloj por el bloque más lento: 24 ns (ignorando operaciones largas) </li></ul>Página
  48. 48. Implementación de un solo ciclo <ul><li>Calcule el tiempo de ciclo asumiendo tiempos de retardo despreciables excepto: memoria (2ns), ALU y sumadores (2ns), acceso al file de registros (1ns) </li></ul>Página
  49. 49. EJERCICIO <ul><li>Se quiere agregar una nueva instrucción al conjunto de instrucciones MIPS, es la instrucción “jr” (jump register). Modifique la arquitectura vista en clase tanto en la ruta de control como en la ruta de los datos </li></ul>Página
  50. 50. Arquitectura uniciclo Página
  51. 51. Palabra de control Página
  52. 52. Secuencia de ejecución de un modo de direccionamiento Página
  53. 53. Secuencia de ejecución de un modo indirecto Página
  54. 54. Secuencia de ejecución de modo inmediato Página
  55. 55. Secuencia de ejecución de una instrucción MOVE Página
  56. 56. Secuencia de ejecución de un Fetch Página
  57. 57. UNIDAD DE CONTROL Página
  58. 58. UNIDAD DE CONTROL (MOVE) Página
  59. 59. Problemas <ul><li>¿Que sucede con las instrucciones complejas? </li></ul><ul><ul><li>Aumento del HW </li></ul></ul><ul><ul><li>Desperdicio de área </li></ul></ul><ul><ul><li>Tiempo de ciclo muy largo </li></ul></ul><ul><li>SOLUCIÓN </li></ul><ul><ul><li>Utilizar un tiempo de ciclo más pequeño </li></ul></ul><ul><ul><li>Si se tienen diferentes instrucciones se tienen diferentes número de ciclos </li></ul></ul><ul><ul><li>Ruta de datos con multiciclo. </li></ul></ul>Página
  60. 60. Problemas en procesadores de un solo ciclo <ul><li>En la implementación de un solo ciclo: Cada instrucción tarda un solo ciclo de reloj en ejecutarse. </li></ul><ul><ul><li>No se pueden compartir los recursos. </li></ul></ul><ul><li>Generalmente la instrucción más larga es LOAD </li></ul><ul><ul><li>El tiempo de ciclo es mucho mayor que cualquier otra instrucción. </li></ul></ul><ul><ul><li>Ejemplos: </li></ul></ul><ul><ul><ul><li>Instrucciones tipo R no requieren acceso a la memoria de datos. </li></ul></ul></ul><ul><ul><ul><li>Los saltos incondicionales “JUMP” no requieren operaciones con la ALU ni tampoco acceso a la memoria de datos. </li></ul></ul></ul>Página
  61. 61. <ul><li>Se estaría reutilizando las unidades funcionales </li></ul><ul><ul><li>La ALU se utilizaría para calcular direcciones e incrementar el PC </li></ul></ul><ul><ul><li>La memoria se utilizaría para almacenar datos e instrucciones </li></ul></ul><ul><li>Las señales de control no serán determinadas solamente por las instrucciones. </li></ul><ul><li>Se utilizará una máquina de estados para realizar el control. </li></ul>Solución con multiciclo Página
  62. 62. <ul><li>Se rompe la instrucción en pasos, cada paso toma un ciclo </li></ul><ul><ul><li>Balance en el trabajo a realizar </li></ul></ul><ul><ul><li>Restringir cada ciclo a utilizar solo una unidad funcional </li></ul></ul><ul><li>Al final del ciclo </li></ul><ul><ul><li>Almacenar valores para que se utilicen en los siguientes ciclos. </li></ul></ul><ul><ul><li>Introducir registros internos adicionales </li></ul></ul>Solución con Multiciclo Página

×