Download datos y control (I Parte) - Escuela de Ingeniería Electrónica
Document related concepts
no text concepts found
Transcript
El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 1 Capítulo 3 El procesador, la ruta de datos y el control (I Parte) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Definición de arquitectura de computadores EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 2 • 1950 a 1960 Abarcaba el tema de aritmética de computadores. • 1970 a mediados de los 1980 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Arquitectura de computadores EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 3 • • • • • 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. El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 4 DATOS SOBRE TENDENCIAS Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 1971: INTEL 4004 EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 5 • Primer procesador • Proceso de 10 micrones • 2300 transistores • Bus de 4 bits • 640 bytes de memoria • 750 Khz • Die de 12 mm2 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 2000: Intel Pentium 4 EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 6 • Proceso de 0.18 micras • 42 millones de transistores • Die de 217 mm2 • Bus de 64 bits • 8 KBytes de memoria cache • 450 MHz Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 2004: Intel Itanium 2 EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 7 • Proceso de 0.13 micras • 592 millones de transistores • Die de 432 mm2 • Bus de 128 bits • 1.4 GHz Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 2015: Proyecciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 8 • Proceso de 0.025 micras • 7 billones de transistores • Die de 310 mm2 • 33 GHz en el chip • 29 GHz fuera del chip Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) COMPARACIÓN EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 9 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) DIMENSIONES EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 10 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) AREA Y RETARDOS EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 11 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) CAPACIDAD DEL CHIP EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 12 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) TENDENCIA DE RENDIMIENTO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 13 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) RETARDO POR CONDUCTORES EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 14 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) ANCHO DE BANDA POR PIN EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 15 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) POTENCIA RENDIMIENTO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 16 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) DRAMS EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 17 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 18 TENDENCIA DE LOS MICROPROCESADORES Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) RETARDO POR INTERCONECCION EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 19 40 35 30 25 20 15 10 5 0 0.65 1989 Gate delay Interconnect delay 0.5 1992 0.35 1995 0.25 1998 0.18 2001 0.13 2004 0.1 2007 Source: SIA Roadmap 1997 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 20 CONCEPTOS SOBRE ARQUITECTURAS DE PROCESADORES Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Arquitectura básica de un procesador Bus de direcciones Bus de datos Generador de dir y Controlador de bus EU AH BH CH DH AL BL CL DL BP DI SI SP ALU Página 21 ADD CS ES SS DS IP 1 2 3 4 5 6 Cola de instrucciones Bus interno de datos EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García BIU banderas UNIDAD DE INTERPRETACIÓN Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) La unidad de cálculo (ALU) EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 22 • 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. Bus de direcciones Bus de datos Generador de dir y Controlador de bus EU AH AL BH BL CH CL DH DL BP DI SI SP BIU ADD CS ES SS DS IP 1 2 3 4 5 6 Cola de instrucciones Bus interno de datos ALU banderas UNIDAD DE INTERPRETACIÓN Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Los registros de trabajo EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 23 • • • 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. Bus de datos Bus de direcciones Generador de dir y Controlador de bus EU AH AL BH BL CH CL DH DL BP DI SI SP BIU ADD CS ES SS DS IP 1 2 3 Cola de 4 instrucciones 5 6 Bus interno de datos ALU banderas UNIDAD DE INTERPRETACIÓN Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) La interfaz con el bus EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 24 • 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. Bus de direcciones Bus de datos Generador de dir y Controlador de bus EU AH AL BH BL CH CL DH DL BP DI SI SP BIU ADD CS ES SS DS IP 1 2 3 4 5 6 Cola de instrucciones Bus interno de datos ALU banderas UNIDAD DE INTERPRETACIÓN Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) La unidad de interpretación de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 25 • • • 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. Bus de direcciones Bus de datos Generador de dir y Controlador de bus EU AH AL BH BL CH CL DH DL BP DI SI SP BIU ADD CS ES SS DS IP 1 2 3 4 5 6 Cola de instrucciones Bus interno de datos ALU banderas UNIDAD DE INTERPRETACIÓN Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo de una máquina multinivel Nivel 5 Alto nivel Nivel 4 Lenguaje ensamblador Nivel 3 Sistema operativo Nivel 2 Conjunto de instrucciones Nivel 1 Microarquitectura EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 26 Traducción (compilador) Traducción (ensamblador) Interpretación parcial (Sistema Operativo) Interpretación (microprograma) o ejecución directa Hardware Nivel 0 Lógica digital Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo de una máquina multinivel EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 27 Nivel 5 Alto nivel Nivel 4 Lenguaje ensamblador temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo de una máquina multinivel EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 28 Nivel 5 Alto nivel Nivel 4 Lenguaje ensamblador Nivel 3 Sistema operativo • • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo de una máquina multinivel EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 29 Nivel 5 Alto nivel Nivel 4 Lenguaje ensamblador Nivel 3 Sistema operativo Nivel 2 Conjunto de instrucciones 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo de una máquina multinivel Nivel 5 Alto nivel Nivel 4 Lenguaje ensamblador Nivel 3 Sistema operativo Nivel 2 Conjunto de instrucciones Nivel 1 Microarquitectura Nivel 0 Lógica digital EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 30 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) ¿Qué son las instrucciones? EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 31 software Conjunto de instrucciones hardware Escuela de Ingeniería Electrónica software Aplicaciones (iTunes) Compilador Ensamblador Diseño del circuito Página 32 Vdd I1 O1 Transistores I1 Me m ALU CONJUNTO DE INSTRUCCIONES Procesador Memoria Sistema de I/O Control Ruta de datos y control I2 O2 Diseño digital I1 O1 EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Sistema operativo (MS-DOS, Windows, Linux, etc.) I Reg El procesador: datos y control (I Parte) ¿Qué son las instrucciones? Vdd O1 hardware Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Representación de capas EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 33 Programa en alto nivel Compilador Programa en lenguaje ensamblador Ensamblador Código objeto de máquina Linker Código de máquina ejecutable Loader Lenguaje máquina Programa en memoria Arquitectura del conjunto de instrucciones Especificación de las señales de control Programa: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Programa en ensamblador: lw lw sw sw $15, $16, $16, $15, 0($2) 4($2) 0($2) 4($2) Programa en lenguaje máquina: 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Interpretación de máquina ALUOP[0:3] InstReg[9:11] & MASK Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Jerarquía en el diseño de computadores EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 34 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ciclo general de ejecución de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 35 Búsqueda de instrucción Decodificación de la instrucción Búsqueda del operando Ejecución Almacenar el resultado Próxima instrucción Obtener la instrucción del programa almacenado Determinar las acciones requeridas y el tamaño de la instrucción Localizar y obtener el operando Calcular el resultado o estado Depositar el resultado en el medio de almacenamiento para un próximo uso Determinar la siguiente instrucción Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Formato de Instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 36 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Formato de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 37 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Criterios de diseño de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 38 • 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. El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Criterio de diseño para el formato de las instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 40 • 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 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Códigos de operación expandibles EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 42 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Códigos de operación expandibles EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 43 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Solución utilizando la expansión de código EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 44 • 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: 1111 0000 hasta 1111 1110 – Número de instrucciones: 15 – Bits de datos: 0-7 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Solución con la expansión del opcode EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 45 • Instrucciones con un operando – Bits para el opcode: 4 - 15 – Rango del opcode: 1111 1111 hasta 1111 1111 1110 – Número de instrucciones: 15 – Bits de datos: 0-3 • Instrucciones sin operandos – Bits para el opcode: 0 - 15 – Rango del opcode: 1111 1111 1111 0000 hasta 1111 1111 1111 1111 – Número de instrucciones: 16 – Bits de datos: ninguno El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Modelos de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 47 • CISC • RISC • CRISC • EPIC (Complex Instruction Set Computer) (Reduced Instruction Set Computer) (Complex Reduced Instruction Set Computer) (Explicitly Parallel Instruction Computing ) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) CISC EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 48 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) RISC EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 49 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EPIC EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 50 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Formato de Instrucciones para el caso del 8088/86 EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 51 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejecución de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 52 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejecución de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 53 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Criterios para el diseño de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 54 • “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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) PRINCIPIOS DE DISEÑO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 55 • • • • 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 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) ENTRE MÁS PEQUEÑOS ES MÁS RÁPIDO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 57 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) HAGA EL CASO COMÚN MÁS RÁPIDO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 58 • 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. El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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? Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) ESPECIFICACIONES DE DISEÑO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 60 • Para el desarrollo de este tema se utilizaran instrucciones del tipo MIPS, esto con el fin de seguir el libro de Patterson. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) INSTRUCCIONES EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) INSTRUCCIONES TIPO “R” EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 62 31 26 25 opcode 21 20 rs 16 15 rt 11 10 rd 6 5 shamt 0 funct • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) INSTRUCCIONES TIPO “R” EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 63 • Este tipo de formato para instrucciones se utiliza para todas las que no accesen memoria o sean de control de programa. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) INSTRUCCIONES TIPO I EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 64 31 26 25 opcode 21 20 rs 16 15 rt 0 inmediate • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) INSTRUCCIONES TIPO J EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 65 31 26 25 opcode 0 Dirección de 26 bits • Es el formato para las instrucciones de salto ya sean condicionales o incondicionales • La dirección no es de 32 bits. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Modos de direccionamiento EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 66 • Esta máquina con instrucciones MIPS tiene 4 modos de direccionamiento: – – – – – Por registro Por desplazamiento Inmediato Relativo al PC Pseudodirecto Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Direccionamiento por registro EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 67 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Direccionamiento base o desplazamiento EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 68 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Direccionamiento inmediato EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 69 • El operando es una constante la cual se encuentra en el contenido de la instrucción. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Direccionamiento relativo al PC EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 70 • • • • • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Direccionamiento pseudodirecto EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 71 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Resumen del conjunto de instrucciones Página 72 Three operands; data in registers subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers addi $s1, $s2, 100 lw $s1, 100($s2) sw $s1, 100($s2) lb $s1, 100($s2) sb $s1, 100($s2) lui $s1, 100 $s1 = $s2 + 100 Used to add constants $s1 = Memory[$s2 + 100]Word from memory to register Memory[$s2 + 100] = $s1 Word from register to memory $s1 = Memory[$s2 + 100]Byte from memory to register Memory[$s2 + 100] = $s1 Byte from register to memory beq $s1, $s2, 25 if ($s1 == $s2) go to PC + 4 + 100 Equal test; PC-relative branch branch on not equal bne $s1, $s2, 25 if ($s1 != $s2) go to PC + 4 + 100 Not equal test; PC-relative $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Compare less than; for beq, bne Category Arithmetic Instruction add immediate load w ord store w ord Data transfer load byte store byte load upper immediate branch on equal Conditional branch EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García add MIPS assembly language Example Meaning add $s1, $s2, $s3 $s1 = $s2 + $s3 Unconditional jump set on less than slt set less than immediate slti jump jump register jump and link j jr jal $s1 = 100 * 2 16 $s1, $s2, 100 if ($s2 < 100) $s1 = 1; Comments Loads constant in upper 16 bits Compare less than constant else $s1 = 0 2500 $ra 2500 go to 10000 Jump to target address go to $ra For sw itch, procedure return $ra = PC + 4; go to 10000 For procedure call Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Resumen del conjunto de instrucciones EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 73 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) CODIFICACIÓN DE LAS INSTRUCCIONES EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 74 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Jerarquía de traducción EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 75 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 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 Reg ALU Ruta de control Mem EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 76 Circuitos lógicos Deco Secuenciador Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Diseño del CPU EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 77 • 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 A Memoria B Lógica de salida C E D Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) MAQUINAS DE ESTADO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 78 • • • • Máquina de Mealy Máquina de Moore Máquina tipo C Máquina microprogramada Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Máquina Clase A, Mealy EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 79 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Máquina Clase B, Moore EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 80 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Máquina Clase C, Moore sin registro de salidas EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 81 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Máquina Clase E EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 82 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Máquina Clase D EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 83 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Detalles para la implementación EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 84 • Dos tipos de unidades funcionales – Elementos que operan en la ruta de los datos (combinacional) – Elementos que contienen estados (secuenciales) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) TIPOS DE MÁQUINAS EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 85 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Señales de Reloj EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 86 • El reloj es una señal periódica: Cualquier valor almacenado en la máquina se actualiza solo Borde creciente Borde decreciente • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) 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) Registro EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 87 PROBLEMA: El ciclo del reloj debe ser muy largo Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Operación con múltiples ciclos • Los cambios ocurren en el borde creciente los momentos seleccionados escritura Registro escritura Combinational Logic (ALU) EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 88 Requiere de señales de control adicionales Registro Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Concepto de un solo ciclo EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 89 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) La visión abstracta EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 90 • • • • • Contador de programa: próxima instrucción Memoria de instrucciones Archivo de registros Memoria de datos Estructura del bus: transferencia de información Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Construcción de la ruta de datos EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 91 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Instrucciones y el PC EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 92 • Incrementa: suma 4 al PC para obtener la dirección de la próxima instrucción. • Necesita de extensiones para ejecutar saltos. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Registros y ALU EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 93 • • Archivo de registros con el fin de ejecutar instrucciones con direccionamient o por registro La unidad lógica y aritmética se puede diseñar de una forma muy similar al circuito integrado 74181 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Agregando la memoria de datos EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 94 • 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ruta de datos para el salto EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 95 • PC+4 + extensión del signo y dirección desplazada Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Conectando las unidades EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 96 • Archivo de registros • ALU para operandos y cálculos de direcciones • Memoria de datos El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 97 Agregando la unidad de búsqueda de instrucción • La unidad de búsqueda de instrucción provee la instrucción. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Agregando la unidad de salto EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 98 • Se pueden manejar todas la instrucciones básicas PCSrc M u x Add Add ALU result 4 Shift left 2 PC Read address Instruction Instruction memory Registers Read register 1 Read Read data 1 register 2 Write register Write data RegWrite 16 ALUSrc Read data 2 M u x 3 ALU operation Zero ALU ALU result MemtoReg Address Write data Sign extend MemWrite Read data Data memory 32 MemRead M u x Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EJERCICIO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 99 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EJERCICIO Cont EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 100 PCSrc M u x Add Add ALU result 4 Shift left 2 PC Read address Instruction Instruction memory Registers Read register 1 Read Read data 1 register 2 Write register Write data RegWrite 16 ALUSrc Read data 2 M u x 3 ALU operation Zero ALU ALU result MemtoReg Address Write data Sign extend MemWrite Read data Data memory 32 MemRead M u x Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Procesador de un solo ciclo +1 0M ADD 1 R1 ID WR ID otro ADD ¿Porqué esta esto aquí? R1id P C R2id Memoria Para Instrucciones Registros 0M 1 Contador de programa Direcciones de memoria U X ALU WRid D 0M 1 U X Incrementar Campos de instrucciones – Registros con puertos duales EL - 3310 de datos - ALU Diseño Ruta de Sistemas Digitales Memoria principal para datos Ing. José Alberto Díaz García Página 101 R2 ID U X ¿Porqué esto aquí? Addr Memoria Para Datos D 0M 1 U X Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Acción de un procesador de un solo ciclo 0M ADD Clk Clk 1 U X ADD Campo de la dirr Reg 0 R1id P C R2id Memoria De instrucciones Registros 0M Campo de Dirr Datos 1 U X ALU WRid D Read Escribir datos a un registro Búsqueda de instrucción – Requiere “Read” Actualice el PC – Requiere “0” Mux de dirr Decodifique la Instrucción EL - 3310 Seleccione Reg Addr Diseño de Sistemas PaseDigitales la dirección de los Datos Pase la dirección de datos por la ALU Ing. Josélos Alberto Díaz Lea datos García Envié los datos a los registros Página 102 Escriba la instrucción en el registro 0M 1 0 U X NOP Write 1 Addr Memoria De Datos 0M 1 U X D Read Ahora los relojes en el sistema 1 Escuela de Ingeniería Electrónica Temporización de un solo ciclo El procesador: datos y control (I Parte) Ciclo de reloj requerido RELOJ I Memoria PC Mux Ing. José Alberto Díaz García Página 103 0 Reg Mux 0 ALU Mux 0 ALU Op D Memoria Data Mux EL - 3310 Diseño de Sistemas Digitales lectura Reg Ctrl NOP lectura 1 escritura Escuela de Ingeniería Electrónica Control básico El procesador: datos y control (I Parte) • Repaso de las funciones de la ALU/líneas de control. EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 104 • 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) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Control de la ALU EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 105 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Control central EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 106 • • • • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ruta de datos extendida EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 107 • Multiplexores para la selección de escritura en registros • Todas las líneas de control Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) RESUMEN DE LAS LINEAS DE CONTROL EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 108 • 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ruta de datos y control EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 109 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Operación de la ruta de datos EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 110 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 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EJEMPLO DE INSTRUCCIÓN TIPO R EL - 3310 Diseño de Sistemas Digitales 0 M u x Add ALU result Add 4 Instruction [31– 26] Read address Instruction memory Read register 1 Instruction [20– 16] Instruction [31– 0] Instruction [15– 11] Shift left 2 RegDst Branch MemRead MemtoReg Control ALUOp MemWrite ALUSrc RegWrite Instruction [25– 21] PC 0 M u x 1 Read data 1 Read register 2 Registers Read Write data 2 register Página 111 0 M u x 1 Write data Zero ALU ALU result Address Write data Instruction [15– 0] 16 Instruction [5– 0] Ing. José Alberto Díaz García 1 Sign extend 32 ALU control Read data Data memory 1 M u x 0 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EJEMPLO DE EJECUCION EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 112 • Lw $3, offset ($2) – – – – – 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Finalización del control EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 113 • Códigos de operación en decimal • Códigos de operación en binario Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Funciones de control EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 114 Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Implementación EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 115 • Seleccione la correcta – – – – Lógica PLA ROM Etc.... Inputs Op5 Op4 Op3 Op2 Op1 Op0 Outputs R-format Iw sw beq RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch ALUOp1 ALUOpO Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Instrucción de salto EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 116 • Realizar una extensión de la arquitectura que se está tratando • Tiene el siguiente formato – Instrucción – Dirección Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Arquitectura con Jump EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 117 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 118 Limitaciones de la solución con un solo ciclo • El tiempo de acceso para varias operaciones varía – – – – – – – Acceso a memoria Acceso a registros Add Sub Multiplicación Multiplicación en PF Funciones transcendentales 10 ns 2 ns 3 ns 3.5 ns 20 ns 24 ns 40 ns • Tiempo depende de la implementación • El módulo más lento define la duración del ciclo Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) EJEMPLO EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 119 • Lista de acciones por instrucción • Número de ciclos por instrucción Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Ejemplo cont. EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 120 • Probabilidades – – – – – Formato Load Store Branch Jump 49% 22% 11% 16% 2% 16 ns 24 ns 22 ns 14 ns 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) Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Implementación de un solo ciclo EL - 3310 Diseño de Sistemas Digitales • Calcule el tiempo de ciclo asumiendo tiempos de retardo despreciables excepto: memoria (2ns), ALU y sumadores (2ns), acceso al file de registros (1ns) PCSrc Add ALU Add result 4 Shift left 2 RegWrite Instruction [25– 21] PC Read address Instruction [31– 0] Instruction memory Instruction [20– 16] 1 M u Instruction [15– 11] x 0 RegDst Instruction [15– 0] Read register 1 Read register 2 Read data 1 MemWrite ALUSrc Read data 2 1 M u x 0 Write register Write Registers data 16 Sign extend Página 121 ALU Zero ALU result MemtoReg Address Write data 32 ALU control Instruction [5– 0] Ing. José Alberto Díaz García 1 M u x 0 ALUOp Read data Data memory MemRead 1 M u x 0 El procesador: datos y control (I Parte) Escuela de Ingeniería Electrónica EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 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. Instruction register PC Address Data A Register # Instruction Memory or data Data Memory data register ALU Registers Register # B Register # ALUOut Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Problemas en procesadores de un solo ciclo EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 123 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. Escuela de Ingeniería Electrónica El procesador: datos y control (I Parte) Solución con multiciclo EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 124 • 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. Escuela de Ingeniería Electrónica Solución con Multiciclo El procesador: datos y control (I Parte) • EL - 3310 Diseño de Sistemas Digitales Ing. José Alberto Díaz García Página 125 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 PC 0 M u x 1 Address Memory MemData Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read Read register 2 data 1 Registers Write Read register data 2 Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 A B 4 Write data 0 M u x 1 16 Sign extend 0 M u x 1 32 Shift left 2 0 1 M u 2 x 3 Zero ALU ALU result ALUOut