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 (I Parte)

Presentaciones similares


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

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

2 Definición de arquitectura de computadores
1950 a Abarcaba el tema de aritmética de computadores. 1970 a mediados de los abarcaba el tema de diseño de instrucciones especialmente la arquitectura ISA y sus correspondientes compiladores. 1990 en esta época se diseñaban los CPU, sistema de memoria, sistema de entrada/salida, los multiprocesadores y las redes. 2000 hasta nuestros días, se abarcan las arquitecturas de propósito especial, funcionalidad reconfigurable, consideraciones especiales para el bajo consumo y el procesamiento móvil.

3 Arquitectura de computadores
Con el término “Arquitectura de Computadores” nos referimos a una especificación computacional detallada, comunicación, y elementos para almacenar datos (hardware) de un sistema computador, como estos componentes interactúan (organización de la máquina), y como se controlan (conjunto de instrucciones). La arquitectura de la máquina determina, cuales cálculos pueden realizarse eficientemente, cuales formatos de organización de datos y diseño de programas se pueden realizar óptimamente. Este término fue aplicado por primera vez por Gene Amdahl, G. Anne Blaauw y Frederick Brooks, Jr. (diseñadores del IBM System/360), en 1964. En las décadas de los 70 y 80, los arquitectos de computadores se concentraron en el conjunto de instrucciones. En el presente los diseñadores se enfrentan al reto de implementar procesadores eficientes, diseñar sistemas de comunicación entre los diferentes niveles en la jerarquía de memorias, de integrar múltiples procesadores en un simple diseño y diseñar procesadores para aplicaciones específicas.

4 DATOS SOBRE TENDENCIAS

5 1971: INTEL 4004 Primer procesador Proceso de 10 micrones
2300 transistores Bus de 4 bits 640 bytes de memoria 750 Khz Die de 12 mm2

6 2000: Intel Pentium 4 Proceso de 0.18 micras
42 millones de transistores Die de 217 mm2 Bus de 64 bits 8 KBytes de memoria cache 450 MHz

7 2004: Intel Itanium 2 Proceso de 0.13 micras
592 millones de transistores Die de 432 mm2 Bus de 128 bits 1.4 GHz

8 2015: Proyecciones Proceso de 0.025 micras 7 billones de transistores
Die de 310 mm2 33 GHz en el chip 29 GHz fuera del chip

9 COMPARACIÓN

10 DIMENSIONES

11 AREA Y RETARDOS

12 CAPACIDAD DEL CHIP

13 TENDENCIA DE RENDIMIENTO

14 RETARDO POR CONDUCTORES

15 ANCHO DE BANDA POR PIN

16 POTENCIA RENDIMIENTO

17 DRAMS

18 TENDENCIA DE LOS MICROPROCESADORES

19 RETARDO POR INTERCONECCION
0.65 1989 0.5 1992 0.35 1995 0.25 1998 0.18 2001 0.13 2004 0.1 2007 5 10 15 20 25 30 35 40 Gate delay Interconnect delay Source: SIA Roadmap 1997

20 CONCEPTOS SOBRE ARQUITECTURAS DE PROCESADORES

21 Arquitectura básica de un procesador
ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Generador de dir y Controlador de bus 1 2 3 4 5 6 Bus interno de datos banderas EU Cola de instrucciones BIU Bus de datos Bus de direcciones UNIDAD DE INTERPRETACIÓN

22 La unidad de cálculo (ALU)
Se realizan las operaciones aritméticas y lógicas. Se encuentra el registro de estado, donde se encuentran las banderas que son accionadas después de cada una de las operaciones. Es operada por medio de la unidad de control por un grupo de primitivas de control que seleccionan la función a realizar, así como la fuente y el destino de los datos. ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Generador de dir y Controlador de bus 1 2 3 4 5 6 Bus interno de datos banderas EU Cola de instrucciones BIU Bus de datos Bus de direcciones UNIDAD DE INTERPRETACIÓN

23 Los registros de trabajo
Los registros de trabajo son medios de almacenamiento temporal Para el caso de la arquitectura IA86, específicamente para el microprocesador 8086/88 los registros de trabajo de 16 bits pueden ser: AX, BX, CX, DX , los cuales están compuestos por AH, AL; BH, BL; CH, CL; DH, DL; los cuales son de 8 bits cada uno. Se utilizan dependiendo de la acción a realizar. Así por ejemplo si es necesario la utilización de una cuenta se utiliza el registro CX. ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Generador de dir y Controlador de bus 1 2 3 4 5 6 Bus interno de datos banderas EU Cola de instrucciones BIU Bus de datos Bus de direcciones UNIDAD DE INTERPRETACIÓN

24 UNIDAD DE INTERPRETACIÓN
La interfaz con el bus Esta unidad es la capaz de realiza el cálculo para la próxima dirección. La cual se entrega a los diferentes buses de salida como lo son el de direcciones, datos y control. ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Generador de dir y Controlador de bus 1 2 3 4 5 6 Bus interno de datos banderas EU Cola de instrucciones BIU Bus de datos Bus de direcciones UNIDAD DE INTERPRETACIÓN

25 La unidad de interpretación de instrucciones
En esta unidad se realiza la interpretación del código de operación, y se ejecutan todas las primitivas de control necesarias para dar servicio a la instrucción. También se cuenta con una unidad de prueba de señales para generar interrupciones, generar saltos incondicionales y la prueba de banderas. Además se generan todas las primitivas de control necesarias para que la arquitectura funcione correctamente. ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Generador de dir y Controlador de bus 1 2 3 4 5 6 Bus interno de datos banderas EU Cola de instrucciones BIU Bus de datos Bus de direcciones UNIDAD DE INTERPRETACIÓN

26 Ejemplo de una máquina multinivel
Alto nivel Nivel 5 Traducción (compilador) Lenguaje ensamblador Nivel 4 Traducción (ensamblador) Sistema operativo Interpretación parcial (Sistema Operativo) Nivel 3 Interpretación (microprograma) o ejecución directa Conjunto de instrucciones Nivel 2 Microarquitectura Nivel 1 Hardware Lógica digital Nivel 0

27 Ejemplo de una máquina multinivel
temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Alto nivel Nivel 5 Lenguaje ensamblador lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Nivel 4 Cada arquitectura del computador tiene su propio lenguaje ensamblador los lenguajes ensambladores tienen a ser de bajo nivel, donde algunos todavía escribimos código. Mucho de ese código se escribe en HLLs y luego compilado. El compilador es un programa que automáticamente convierte HLL a ensamblador.

28 Ejemplo de una máquina multinivel
Alto nivel A este nivel algunas de las funciones del sistema operativo pueden ser ejecutadas como por ejemplo las interrupciones tipo 21H en el caso del procesador IAX86, lo que se conoce como llamados al sistema operativo. También a este nivel puede dársele el control al sistema operativo para que administre el programa que hemos realizado, en este caso el usuario pierde el control sobre la ubicación del programa en la arquitectura del computador Nivel 5 Lenguaje ensamblador Nivel 4 Sistema operativo Nivel 3

29 Ejemplo de una máquina multinivel
Alto nivel Nivel 5 Lenguaje ensamblador Nivel 4 Sistema operativo Nivel 3 Conjunto de instrucciones Nivel 2 A este nivel las instrucciones han sido compiladas para el nivel de interpretación del procesador, corresponden a una cadena de unos y ceros que representan las órdenes y los datos que se quieren ejecutar.

30 Ejemplo de una máquina multinivel
Alto nivel Para estos últimos dos niveles las instrucciones han sido interpretadas y se ejecutan señales eléctricas que manejan la microarquitectura donde se ejecutaran las órdenes. Esto es funciones lógicas a nivel de compuertas o transistores que pasan de la zona de saturación a la de corte. Nivel 5 Lenguaje ensamblador Nivel 4 Sistema operativo Nivel 3 Conjunto de instrucciones Nivel 2 Microarquitectura Nivel 1 Lógica digital Nivel 0

31 ¿Qué son las instrucciones?
software Conjunto de instrucciones hardware

32 ¿Qué son las instrucciones?
software hardware CONJUNTO DE INSTRUCCIONES Aplicaciones (iTunes) Sistema operativo (MS-DOS, Windows, Linux, etc.) Compilador Ensamblador Procesador Memoria Sistema de I/O Ruta de datos y control Control ALU I Reg Mem Diseño digital I1 O2 O1 I2 Diseño del circuito Vdd I1 O1 Transistores I1 O1 Vdd

33 Representación de capas
Programa en alto nivel temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Programa: Compilador Programa en lenguaje ensamblador lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Programa en ensamblador: Ensamblador Lenguaje máquina Programa en memoria Código objeto de máquina Código de máquina ejecutable Linker Loader Programa en lenguaje máquina: Arquitectura del conjunto de instrucciones Especificación de las señales de control Interpretación de máquina ALUOP[0:3]  InstReg[9:11] & MASK

34 Jerarquía en el diseño de computadores

35 Ciclo general de ejecución de instrucciones
Búsqueda de instrucción Obtener la instrucción del programa almacenado Decodificación de la instrucción Determinar las acciones requeridas y el tamaño de la instrucción Búsqueda del operando Localizar y obtener el operando Ejecución Calcular el resultado o estado Almacenar el resultado Depositar el resultado en el medio de almacenamiento para un próximo uso Próxima instrucción Determinar la siguiente instrucción

36 Formato de Instrucciones
Las instrucciones consisten de un código de operación (opcode) y operandos. El opcode identifica la operación a realizar Los operandos identifican los datos a utilizar, y el lugar donde se almacenará el resultado. Todas las instrucciones tienen código de operación, pero pueden o no tener operandos.

37 Formato de instrucciones
Las instrucciones pueden variar en su largo Si todas las instrucciones tienen el mismo largo simplifica el proceso de decodificación de instrucciones, sin embargo se puede ver como un desperdicio de espacio. Si todas las instrucciones tienen diferente largo se complica el proceso de decodificación pero permite un uso más eficiente de la memoria.

38 Criterios de diseño de instrucciones
El formato de las instrucciones es un aspecto de mucha importancia. En el desarrollo de la arquitectura de los computadores, el diseño a nivel de lógica digital y de la microarquitectura tienen un mínimo impacto en la interfaz del computador a nivel de hardware y software. El impacto es mínimo porque los diseños a bajo nivel se ocultan por el diseño de las instrucciones. Sin embargo los cambios en el nivel del conjunto de instrucciones, y particularmente en el formato de las instrucciones, hace que algunos programas no funcionen correctamente en las nuevas generaciones de computadores.

39 Criterio de diseño para el formato de las instrucciones
El primer aspecto en el diseño de instrucciones se relaciona con su tamaño. Entre más pequeño es el formato de las instrucciones, más rápido se pueden leer de memoria. Siempre tenemos un ancho de banda de memoria limitado. Sin embargo para obtener pequeñas instrucciones se presenta un compromiso: Códigos de operación pequeños Operandos pequeños o escasos Se cuenta con mayor complejidad en la decodificación.

40 Criterio de diseño para el formato de las instrucciones
Códigos de operación pequeños El tamaño del espacio para el código de operación limita el número de operaciones que se pueden realizar. Operandos pequeños Esta relacionado con la cantidad de registros que se pueden direccionar. Esta relacionado con la cantidad de memoria que se puede direccionar. Pocos operandos Sin operandos el trabajo se debe realizar utilizando la pila Utilizar un operando y trabajar con el operador Utilizar dos operandos y tener el resultado en la entrada Utilizar tres operandos. Formatos más comprimidos Mayor complejidad en la decodificación Menos potencial para crecer

41 Soluciones de diseño para el formato de las instrucciones
Una vez que sabemos la cantidad de códigos de operación que se necesitan (basados en el número de operaciones que se quieren) y el número y tamaño de los operandos, luego debemos saber la cantidad de bits que se requieren para el formato de la instrucción. Si tenemos 256 operaciones, entonces necesitamos 8 bits para representar los códigos de operación. Si contamos con instrucciones con tres operandos, donde cada operando puede especificar direcciones de 32 bits, entonces necesitamos 96 bits para representar los operandos. Por lo tanto, la unidad decodificadora utilizaría instrucciones de 104 bits. Claramente no es un buen diseño a no ser de que se cuente con memoria extremadamente rápida. La solución es utilizar códigos de operación expandibles.

42 Códigos de operación expandibles
El código de operación expandible es un opcode que toma más espacio cuando se requiere de menos espacio para almacenar los operandos. La expansión de los opcodes tiene la ventaja en el hecho de que operaciones diferentes, tienen requerimientos diferentes para sus operandos NOP no necesita operandos GOTO necesita un operando Operaciones de registro a registro necesitan de direcciones para operandos más pequeñas que operaciones de memoria a memoria. Por lo tanto organice los operandos tal que se pueda realizar el compromiso entre el espacio de los códigos de operaciones y el espacio de los operandos.

43 Códigos de operación expandibles
EJEMPLO: Considere el siguiente esquema basado en una palabra de 16 bits en donde se utilizan 4 bits para la dirección. Una solución con un código de operación fijo, localiza 4 bits para el código de operación y 4 bits para cada uno de los tres operandos Esta solución se limita a 16 códigos de operación. Una solución utilizando los códigos expandibles, trata de incrementar el número de códigos de operación organizando el formato de las instrucciones basado en el tamaño de los operandos.

44 Solución utilizando la expansión de código
Instrucciones con tres operandos Bits para el opcode: 12-15 Rango del opcode: 0000 hasta 1110 Número de instrucciones: 15 Bits de datos: 0-11 Instrucciones con dos operandos Bits para el opcode: 8-15 Rango del opcode: hasta Bits de datos: 0-7

45 Solución con la expansión del opcode
Instrucciones con un operando Bits para el opcode: Rango del opcode: hasta Número de instrucciones: 15 Bits de datos: 0-3 Instrucciones sin operandos Bits para el opcode: Rango del opcode: hasta Número de instrucciones: 16 Bits de datos: ninguno

46 Formato de instrucciones para PENTIUM II
Altamente complejas e irregulares Espacios para seis variables, cinco de las cuales son opcionales La complejidad e irregularidad es debida a la necesidad de mantener compatibilidad con la familia 80X86

47 Modelos de instrucciones
CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) CRISC (Complex Reduced Instruction Set Computer) EPIC (Explicitly Parallel Instruction Computing )

48 CISC Se enfatiza en hacer más en cada instrucción.
Motivado por el alto costo de la memoria y la capacidad de los discos duros. Cuando se introdujo el M6800: 16K RAM = $500, 40M disco duro = $ 55, Cuando se introdujo el MC68000: 64K RAM = $200, 10M HD = $5,000 Gran variedad de modos de direccionamiento 14 en el MC68000, 25 en MC68020 Un número de modos de instrucciones para la posición y número de operandos. El VAX tiene desde 0 hasta 3 instrucciones para direcciones. Largo de las instrucciones variable.

49 RISC Se enfatiza en reducir el número y la complejidad de las instrucciones. CPI reducido. La meta por lo menos una instrucción por ciclo de reloj. Diseñadas para una arquitectura de un procesador segmentado. El largo de las instrucciones es el mismo. Solo las instrucciones de cargue y almacene accesan la memoria. Los modos de direccionamiento se han simplificado. Generalmente limitado a: inmediato, indirecto por registro, desplazamiento con registro, indexado. Las cargas y los saltos se retardo

50 EPIC Pueden cambiar el número de canales que usan de generación en generación y aún conservar la compatibilidad con las aplicaciones existentes. La información grabada en el grupo de instrucciones le dice explícitamente al procesador cuales de las instrucciones siguientes no tienen dependencia de los datos y por ende pueden ser ejecutadas simultáneamente.

51 Formato de Instrucciones para el caso del 8088/86

52 Ejecución de instrucciones

53 Ejecución de instrucciones

54 Criterios para el diseño de instrucciones
“Encontrar un lenguaje que haga fácil construir el hardware y el compilador maximizando su rendimiento y minimizando el costo” Uno de los aspectos relacionados con hacer un hardware sencillo es diseñar instrucciones que sean del mismo largo. El HW con un número variable de operandos es más complejo.

55 PRINCIPIOS DE DISEÑO 1. La simplicidad favorece la regularidad.
2. Entre más pequeño es más rápido 3. Haga el caso común más rápido 4. Un buen diseño demanda un buen compromiso

56 LA SIMPLICIDAD FAVORECE LA REGULARIDAD
Entre más regulares sean las instrucciones más simple será el HW Nuevamente si se cuenta con instrucciones de largo variable el HW será más complejo. Mientras que si las instrucciones son todas del mismo largo se pueden generalizar algunas partes del diseño eléctrico.

57 ENTRE MÁS PEQUEÑOS ES MÁS RÁPIDO
Si el sistema cuenta con una gran cantidad de registros se incrementa el tiempo de ciclo del reloj, porque a las señales eléctricas le toman más tiempo cuando deben de viajar más rápido. En este caso entre menos registros se cuente en la arquitectura el tiempo de ejecución de las instrucciones disminuye.

58 HAGA EL CASO COMÚN MÁS RÁPIDO
Para este caso se deben analizar los aspectos comunes en las instrucciones y una vez detectado, se debe invertir tiempo en rediseñarlo para que de tal forma sea más pequeño y así se realice la operación en un menor tiempo. Un ejemplo puede ser realizar el fetch de una instrucción, o un análisis de constantes.

59 UN BUEN DISEÑO DEMANDA UN BUEN COMPROMISO
Aquí el compromiso es realizar las mejoras necesarias para que si se quieren instrucciones de un mismo largo, ¿Cuáles deben ser los compromisos que se deben realizar, en los modos de direccionamiento o en el HW para que el sistema se eficiente?

60 ESPECIFICACIONES DE DISEÑO
Para el desarrollo de este tema se utilizaran instrucciones del tipo MIPS, esto con el fin de seguir el libro de Patterson.

61 Las instrucciones son de 32 bits de largo.
Hay dos tipos de instrucciones: Las de registro o tipo R Las tipo I (inmediato) Las tipo J (utilizadas para producir saltos)

62 INSTRUCCIONES TIPO “R”
opcode corresponde a la operación básica de la instrucción, tradicionalmente llamado opcode. Normalmente corresponde a 0 para las instrucciones tipo R. rs el primer registro fuente (operando) rt el segundo registro fuente (operando) rd el registro destino, recibirá el resultado de la operación. shamt cantidad de desplazamientos, en la mayoría de las instrucciones este espacio contiene un 0. funct función, este campo combinado con el “opcode” selecciona las variaciones específicas del código de la función a realizar. EJEMPLO: add $t0, $s1, $s2

63 INSTRUCCIONES TIPO “R”
Este tipo de formato para instrucciones se utiliza para todas las que no accesen memoria o sean de control de programa.

64 INSTRUCCIONES TIPO I Se utiliza la I para representar la forma inmediata Ejemplo: lw $t0, 32($s2) Este tipo de instrucción se utiliza para el manejo de memoria.

65 INSTRUCCIONES TIPO J Es el formato para las instrucciones de salto ya sean condicionales o incondicionales La dirección no es de 32 bits.

66 Modos de direccionamiento
Esta máquina con instrucciones MIPS tiene 4 modos de direccionamiento: Por registro Por desplazamiento Inmediato Relativo al PC Pseudodirecto

67 Direccionamiento por registro
En esta categoría se incluyen todas aquellas instrucciones en donde se utiliza un registro en su sintaxis. El operando es el contenido de un registro.

68 Direccionamiento base o desplazamiento
En este caso el operando se encuentra en una posición de memoria cuya dirección se forma por la suma del contenido de un registro y una constante contenida en el formato de la instrucción.

69 Direccionamiento inmediato
El operando es una constante la cual se encuentra en el contenido de la instrucción.

70 Direccionamiento relativo al PC
La dirección del operando se forma de la suma del contenido del PC y la dirección que aparece en el formato de la instrucción. Es la combinación de un registro base y la dirección en la operación de salto. PC=registro+la dirección de salto La referencia es el contador de programa PC Ejemplos: saltos condicionales e incondicionales.

71 Direccionamiento pseudodirecto
Se utiliza principalmente para los saltos. La dirección de salto es de 26 bits del código de instrucción, concatenado con los bits altos del contenido del contador de programa PC.

72 Resumen del conjunto de instrucciones

73 Resumen del conjunto de instrucciones

74 CODIFICACIÓN DE LAS INSTRUCCIONES

75 Jerarquía de traducción

76 Proceso de diseño del CPU
En el proceso de diseño de un procesador se deben conocer los siguientes aspectos: Arquitectura del conjunto de instrucciones Procesador Ruta de datos Ruta de control Reg ALU Mem Deco Secuenciador Circuitos lógicos

77 Diseño del CPU A Memoria B C Lógica de salida E D
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. Lógica de próximo estado Memoria Lógica de salida A B C D E

78 MAQUINAS DE ESTADO Máquina de Mealy Máquina de Moore Máquina tipo C Máquina microprogramada

79 Máquina Clase A, Mealy

80 Máquina Clase B, Moore

81 Máquina Clase C, Moore sin registro de salidas

82 Máquina Clase E

83 Máquina Clase D

84 Detalles para la implementación
Dos tipos de unidades funcionales Elementos que operan en la ruta de los datos (combinacional) Elementos que contienen estados (secuenciales)

85 TIPOS DE MÁQUINAS Máquinas cuya operación se realiza en un solo ciclo de reloj Máquinas cuya operación se realiza en varios ciclos de reloj

86 El reloj es una señal periódica:
Señales de Reloj El reloj es una señal periódica: 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 Cualquier valor almacenado en la máquina se actualiza solo Borde creciente Borde decreciente

87 Operación en su sólo ciclo
Todas las operaciones en lógica combinacional deben realizarse en un ciclo de reloj. Un ciclo de reloj Se actualiza aquí Registro Lógica combinacional (ALU) PROBLEMA: El ciclo del reloj debe ser muy largo

88 Operación con múltiples ciclos
Los cambios ocurren en el borde creciente los momentos seleccionados escritura escritura Registro Combinational Logic (ALU) Requiere de señales de control adicionales

89 Concepto de un solo ciclo
La ruta de datos en el CPU se encuentra entre los registros – el pulso de reloj determina cuando los registros cambian. Retardo en la lógica combinacional Retardo en carga de registros

90 La visión abstracta Contador de programa: próxima instrucción
Memoria de instrucciones Archivo de registros Memoria de datos Estructura del bus: transferencia de información

91 Construcción de la ruta de datos
Memoria para instrucciones Contenga sólo instrucciones Contador de programa Apunte a la próxima instrucción Unidad aritmética y lógica Solo un sumador

92 Instrucciones y el PC Incrementa: suma 4 al PC para obtener la dirección de la próxima instrucción. Necesita de extensiones para ejecutar saltos.

93 Registros y ALU Archivo de registros con el fin de ejecutar instrucciones con direccionamiento por registro La unidad lógica y aritmética se puede diseñar de una forma muy similar al circuito integrado 74181

94 Agregando la memoria de datos
Transferencia de direcciones a memoria Transferencia de los datos al archivo de registros Unidad de extensión de signo para el cálculo de la dirección.

95 Ruta de datos para el salto
PC+4 + extensión del signo y dirección desplazada

96 Conectando las unidades
Archivo de registros ALU para operandos y cálculos de direcciones Memoria de datos

97 Agregando la unidad de búsqueda de instrucción
La unidad de búsqueda de instrucción provee la instrucción.

98 Agregando la unidad de salto
Se pueden manejar todas la instrucciones básicas

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

100 EJERCICIO Cont

101 Procesador de un solo ciclo
ADD +1 ¿Porqué esta esto aquí? M U X 1 ADD R1 ID R2 ID WR ID otro Registros D R1id WRid R2id P C Memoria Para Instrucciones ALU M U X 1 M U X 1 ¿Porqué esto aquí? Contador de programa Direcciones de memoria Incrementar M U X 1 Addr D Memoria Para Datos Campos de instrucciones – Registros con puertos duales Ruta de datos - ALU Memoria principal para datos

102 Acción de un procesador de un solo ciclo
Registros D R1id WRid R2id P C ADD Memoria De instrucciones ALU Datos M U X 1 Addr Clk Campo de la dirr Reg Read Campo de Dirr Datos NOP Write Escribir datos a un registro 1 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 1 Pase la dirección de datos por la ALU Read Lea los datos Envié los datos a los registros Ahora los relojes en el sistema Escriba la instrucción en el registro

103 Temporización de un solo ciclo
Ciclo de reloj requerido RELOJ I Memoria lectura PC Mux Reg Mux ALU Mux ALU Op NOP D Memoria Data Mux 1 Reg Ctrl escritura

104 Control básico Repaso de las funciones de la ALU/líneas de control.
Bits de control de la ALU: origen de 00: suma (carga o almacena una palabra) 01: resta (salta si es igual) 10: operaciones de acuerdo al valor de la función (instrucciones con direccionamiento por registro)

105 Control de la ALU

106 Control central Código de operación: Op [31-26]
Registros de lectura: rs [25-21], rt [20-16] Registro base (LW, SW): rs[25-21] Registro destino Cargue: rt[20-16] Tipo R: rd[15-11] Requiere de un multiplexor para indicar el número del registro en el que se va a escribir

107 Ruta de datos extendida
Multiplexores para la selección de escritura en registros Todas las líneas de control

108 RESUMEN DE LAS LINEAS DE CONTROL
REGDEST: fuente del registro destino para la operación REGWRITE: habilita la escritura a un registro del archivo ALUSRC: fuente del segundo operando de la ALU, puede ser un registro o parte de la instrucción PCSRC: fuente del PC, (incremente[POC+4] o salta) MEMREAD/MEMWRITE: lectura o escritura de memoria MEMTOREG: fuente de escritura de un registro

109 Ruta de datos y control

110 Operación de la ruta de datos
Ejemplo: Instrucción tipo registro Búsqueda de instrucción e incremento del PC Lectura de registros Procesamiento de los datos en la ALU Escritura del resultado en el archivo de registros

111 EJEMPLO DE INSTRUCCIÓN TIPO R

112 EJEMPLO DE EJECUCION Lw $3, offset ($2) Beq $10, $11, offset
Se busca la instrucción en memoria, incrementa el PC Lee el valor del registro $2 Calcula la dirección final Utiliza la dirección para direccionar la memoria Escribir el dato en el file de registros Beq $10, $11, offset Busca la instrucción en memoria, incrementa el PC Lee los dos valores de los registros ($10,$11) Resta los valores, calcula la dirección de salto Utiliza la señal de cero para determinar el salto o la etiqueta.

113 Finalización del control
Códigos de operación en decimal Códigos de operación en binario

114 Funciones de control

115 Implementación Seleccione la correcta Lógica PLA ROM Etc....

116 Instrucción de salto Realizar una extensión de la arquitectura que se está tratando Tiene el siguiente formato Instrucción Dirección

117 Arquitectura con Jump

118 Limitaciones de la solución con un solo ciclo
El tiempo de acceso para varias operaciones varía Acceso a memoria 10 ns Acceso a registros 2 ns Add ns Sub ns Multiplicación ns Multiplicación en PF 24 ns Funciones transcendentales 40 ns Tiempo depende de la implementación El módulo más lento define la duración del ciclo

119 EJEMPLO Lista de acciones por instrucción
Número de ciclos por instrucción

120 Tiempo de ciclo de reloj del CPU es de: 18 ns
Ejemplo cont. Probabilidades Formato % 16 ns Load 22% 24 ns Store 11% 22 ns Branch 16% 14 ns Jump 2% 8 ns Tiempo de ciclo de reloj del CPU es de: 18 ns Tiempo de ciclo de reloj por el bloque más lento: 24 ns (ignorando operaciones largas)

121 Implementación de un solo ciclo
Calcule el tiempo de ciclo asumiendo tiempos de retardo despreciables excepto: memoria (2ns), ALU y sumadores (2ns), acceso al file de registros (1ns)

122 Problemas ¿Que sucede con las instrucciones complejas? Aumento del HW
Desperdicio de área Tiempo de ciclo muy largo SOLUCIÓN Utilizar un tiempo de ciclo más pequeño Si se tienen diferentes instrucciones se tienen diferentes número de ciclos Ruta de datos con multiciclo.

123 Problemas en procesadores de un solo ciclo
En la implementación de un solo ciclo: Cada instrucción tarda un solo ciclo de reloj en ejecutarse. CPI = 1 pero el ciclo de reloj se determina con la instrucción que tarda más en ejecutarse en toda la máquina. No se pueden compartir los recursos. Generalmente la instrucción más larga es LOAD El tiempo de ciclo es mucho mayor que cualquier otra instrucción. Ejemplos: Instrucciones tipo R no requieren acceso a la memoria de datos. Los saltos incondicionales “Jump” no requieren operaciones con la ALU ni tampoco acceso a la memoria de datos.

124 Solución con multiciclo
Se estaría reutilizando las unidades funcionales La ALU se utilizaría para calcular direcciones e incrementar el PC La memoria se utilizaría para almacenar datos e instrucciones Las señales de control no serán determinadas solamente por las instrucciones. Se utilizará una máquina de estados para realizar el control.

125 Solución con Multiciclo
Se rompe la instrucción en pasos, cada paso toma un ciclo Balance en el trabajo a realizar Restringir cada ciclo a utilizar solo una unidad funcional Al final del ciclo Almacenar valores para que se utilicen en los siguientes ciclos. Introducir registros internos adicionales


Descargar ppt "El procesador, la ruta de datos y el control (I Parte)"

Presentaciones similares


Anuncios Google