Tema 10: Estructura y Funcionamiento del Procesador
Estructura y funcionamiento del Procesador
Organizacion Interna de la CPU ATTACH
La CPU se encarga de llevar a cabo las instrucciones de un programa.
Partes de una CPU:
- Unidad de Procesamiento o Ruta de Datos: Hace las operaciones necesarias para llevar a cabo una instruccion.
- Unidad de Control: Busca instrucciones en memoria y se encarga de su interpretacion.
Unidad de Control
La unidad de control se ocupa de dirigir la ejecucion de un programa.
La unidad de control se divide en tres bloques:
- Registro de memorizacion del estado presente.
- Bloque de calculo del proximo estado.
- Un bloque de calculo de las salidas.
Como se construye una unidad de control?
- Realizacion Cableada: Tecnica clasica mediante puertas logicas. Se considera una estrategia muy compleja, rapida y cara.
- Realizacion Microprogramada: Supone el diseno de la unidad de control usando memorias ROM.
La unidad de procesamiento o ruta de datos de un procesador se puede definir a traves d una lista d todas las microoperaciones que pueden llevar a cabo. Estas microoperaciones no puede superar las 150 microoperaciones, incluye operadores, operandos, y caminos de interconexion de la unidad de procesamiento.
Las microoperaciones que se deben llevar a cabo se clasifican en:
- Microoperaciones de Proceso: Los datos de origen cambian al pasar a traves de un operador de camino a su destino.
- Microoperaciones de Transferencia: Los datos viajan entre un elemento de almacenamiento de origen a otro destino.
Repertorio de Instrucciones ATTACH
Un procesador se disena para llevar a cabo las secuencias de instrucciones que conforman un programa.
La lista de instrucciones de un procesador contara con un grupo elevado de ellas que podran organizarse en funcion de sus formatos. Estas instrucciones se traducen en la unidad de control y se llevan a cabo en la unidad de procesamiento.
Cada CPU usa un formato de instrucciones propio.
Una instruccion es un conjunto de bits que se organizan en campos con tamanos distintos:
- Las instrucciones no tienen la misma longitud de los campos en todas las instrucciones.
- No es necesario que todos los campos se incluyan en todas las instrucciones.
- Las instrucciones especificas que emplea una maquina pueden estar disenadas para usar tamanos diferentes (por ejemplo, una 2 byets y otra 20 bits.)
Dado que la mayor parte de operaciones aritmeticas y logicas se llevan a cabo empleando dos operandos y produciendo un resultado, es natural disenar instrucciones que incluyan tres direcciones de memoria: dos para los operandos y una para guardar el resultado.
En las maquinas que emplean este tipo de instrucciones, el resultado se almacena en el lugar que inicialmente ocupaba uno de los operandos.
En este caso, el procesador utiliza un registro concreto de su ruta de datos, denominado acumulador, para usarlo como operando de destino, de forma que solo se necesita definir un operando explicitamente en cada instruccion.
En los procesadores con una instruccion de cero direcciones (procesadores de pila). Lo unico que se necesita es saber la ubicacion de los dos operandos y el resultado. La informacion se almacena en una pila y todas las microoperaciones se llevan a cabo con los datos que se encuentran en la cumbre de la pila o nivel justamente inferior.
En los procesadores sin ALU es un caso especial de procesadores y las transformaciones llevadas a cabo sobre los datos son microoperaciones de transferencia.
Modo de Direccionamiento
La forma en que se descifra la inforamcion esta definido por el modo de direccionamiento que se emplea.
El modo de direccionamiento calcula la direccion real o efectiva donde se localizan los operandos de la instruccion y donde se almacena el resultado obtenido.
Un buen diseno en el modo de direccionamiento consigue disminuir el tamano de la palabra de instruccion y aumenta la flexibilidad en la programacion.
Tipos de direccionamiento:
- Implicita: Este modo no posee campos de direccion de la instruccion. El codigo de operacion senala la posicion del operando o del resultado de forma implicita.
- Inmediato: Utiliza el campo de direccion para senalar el propio operando en lugar de una direccion, lo que ahorra accesos del procesador a memoria que son innecesarios.
- Directo (Absoluto): El campo de direccion posee la direccion de la posicion de memoria o la direccion del registro que guarda el operando o el resultado.
- Relativo: Realiza un desplazamiento de los datos sumados al contenido de un registro que se indica en la instruccion como, por ejemplo, el contador de programas o un registro del banco de registros.
- Indirecto: El campo de direccion define que posicion de memoria o registro contiene la direccion donde esta el operando o donde se almacena el resultado.
- Indexado: En este modo de direccionamiento se indica la direccion de comienzo denominada base, mientras el indice del dato se almacena en un registro indice concreto o en un registro del banco de registros. La direccion efectiva se calcula sumando el contenido del registro indice y el valor de la base. Se suele emplear si se necesita acceder a datos de vectores, arrays o pilas.
Ciclo de Ejecucion de una Instruccion ATTACH
- Busqueda de la Instruccion: Busca en el contador de programa la direccion y la transfiere al registro de instruccion. Posteriormente, el contenido del contador de programa aumenta para actualizar su informacion con la direccion de la siguiente instruccion en la secuencia.
- Decodificacion de la Instruccion: Examina el campo codigo de operacion de la instruccion para determinar que operaciones debe realizar la unidad de procesamiento.
- Busqueda de los Operandos: Cuando la instruccion lo requiere, obtiene los operandos de los registros internos de la CPU, de la memoria o de la propia instruccion (modo de direccionamiento inmediato)
- Ejecucion de la Instruccion: Lleva a cabo la operacion senalada en las
instrucciones y, si es necesario, se almacena el resultado en los registros
internos de la CPU o en la memoria.
- Con objeto de gestionar el flujo dentro del programa, es valido llevar a cabo rupturas de secuencia condicional e incondicional. Tambien, es habitual utilizar una tecnica de transferencia de control temporal desde el programa principal a un subprograma. Esto puede ocurrir cuando se producen saltos a subprogramas y las interrupciones.
Segmentacion ATTACH
La segmentacion de instrucciones es una tecnica que permite implementar el paralelismo a nivel de instruccion en un unico procesador.
La segmentacion RISC clasica comprende:
- Lectura de instruccion.
- Decodificacion de instruccion y lectura de registro.
- Ejecucion.
- Ejecucion.
- Acceso a memoria.
- Escritura de vuelta en el registro.
x