DISEÑO DEL PROCESADOR 1 La CPU se puede descomponer en los dos bloques siguientes: ◦ Unidad de control del procesador ◦ Unidad de procesamiento 2 Dirige la ejecución del programa. Su diseño similar a lo visto para el multiplicador binario. Diferencia es que ahora hay muchas más líneas de control y las operaciones realizadas son más complicadas. Tiene en cuenta el estado presente para controlar su evolución y tomar decisiones con respecto a las nuevas operaciones que serán iniciadas. Se puede descomponer en tres bloques: ◦ ◦ ◦ Registro de memorización de estado presente. Bloque de cálculo del próximo estado. Bloque de cálculo de las salidas. Realizaciones posibles: ◦ ◦ Lógica cableada técnicas clásicas de diseño de circuitos secuenciales. Circuitos rápidos, complejos y costosos. Desventaja que cualquier modificación implica un nuevo diseño partiendo de cero. Realización microprogramada Bloque de cálculo de las señales de salida y parte del bloque de cálculo del próximo estado se sustituyen por una memoria que almacena el estado de las señales de control en cada periodo de cada instrucción. El registro de estado presente se convierte en un registro de dirección para esa memoria. 3 Realiza todas las operaciones necesarias para ejecutar una instrucción. Puede ser descrita mediante una lista de todas sus microoperaciones. Las microoperaciones se pueden clasificar en dos grupos: De transferencia transfiere información de un almacenamiento fuente a un almacenamiento de destino. De proceso Opera con unos operandos y el resultado lo deja en el almacenamiento de destino indicado. 4 Cada instrucción lleva a cabo una parte elemental del procesamiento. Instrucciones se interpretan en la unidad de control y se ejecutan en la unidad de procesamiento. Cada CPU tiene su propio formato de instrucciones. se puede ver como una cadena de bits que se agrupan en campos Instrucción con tamaños diferentes: ◦ ◦ ◦ Longitud de los distintos campos no es igual para todas las instrucciones. No todos los campos tienen que estar presentes en todas las instrucciones. Las distintas instrucciones podrán por tanto tener distintas longitudes. Campo código operación Campo de dirección 5 Pueden tener dos campos más: Tipo de instrucción De transferencia de datos. Aritméticas, lógicas y de comparación. De desplazamiento. De transferencia de control. De gobierno. Modo indica la forma de obtener la dirección efectiva de los datos. Uno de los elementos esenciales es el número de campos de dirección que posee la instrucción. Objetivo importante conseguir que el número de accesos a memoria que necesitan los programas sea mínimo. 6 Incluye tres direcciones de memoria. Requiere un número elevado de bits para codificarla. 7 Resultado se posiciona en el lugar que ocupaba uno de los operandos. 8 Procesador dedica un registro específico a la función de servir como operando destino 9 Los datos se guardan en la pila. Las microoperaciones se realizan con los datos colocados en la cima de la pila o en el nivel inmediatamente inferior (si es una operación que necesita dos operandos). El resultado se guarda en la cima de la pila. En este caso las instrucciones solo necesitarán un acceso a memoria. 10 Extensión del concepto de procesador con acumulador. En vez de un único registro acumulador, un banco de registros para almacenar resultados. En las instrucciones será necesario un campo adicional para referenciar los registros. Ventajas: Registros más rápidos que memoria. Se reduce las necesidades de espacio en memoria de los programas. Se reduce el número de accesos a memoria. 11 Repertorio de instrucciones mucho menor. Programas más largos y en principio más lentos de ejecución, pero se simplifica el diseño del procesador. Arquitectura carga/almacenamiento accesos a memoria para cargar o escribir datos. Instrucciones regulares longitud. todas tienen la misma 12 13 14 15 16 17 18 19 Interpretación de los campos de dirección de la instrucción viene determinado por el modo de direccionamiento Obtendremos así la dirección efectiva. Una instrucción puede tener más de un campo de dirección, y cada dirección podrá tener su propio modo de direccionamiento. Ventajas de los modos de direccionamiento: Reducción del tamaño de palabra de la instrucción. Aumento de la flexibilidad en la programación. 20 El propio código de operación especifica de forma implícita la posición del operando o del resultado. (característico de procesadores con pila). 21 El campo de dirección contiene el propio operando en lugar de una dirección. 22 El campo de dirección contiene la dirección de una posición de memoria o la dirección de un registro. 23 El campo de dirección se denomina desplazamiento y se suma al contenido de un registro que se especifica en la instrucción. Ventaja de que da un campo de dirección más pequeño. 24 El campo de dirección especifica una dirección de memoria o registro que contiene la dirección en la que realmente está el operando buscado. Ventaja en este caso que el direccionamiento no está limitado por el tamaño del campo de dirección. Desventaja que son necesarios dos accesos para acceder al operando. 25 Para acceder a datos que están almacenados en arrays o tablas. Campo de dirección especifica la dirección de comienzo y se le suma al valor de un registro índice para obtener la dirección efectiva. El índice se puede incrementar o decrementar para acceder al siguiente elemento. 26 27 28 29