Roberto Yair Tellez
La Unidad de Procesamiento (CPU) controla el funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos. Frecuentemente se le llama procesador.
Un procesador, incluye tanto registros visibles por el usuario como registros de control/estado. Los registros visibles por el usuario pueden ser de uso general o tener una utilidad especial, mientras que los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el contador de programa.
Los registros se emplean para controlar las instrucciones en ejecución, manejar direccionamiento de memoria y propiciar la capacidad aritmética.
Los registros vienen de tres tipos: datos, direcciones e índice, que tiene lugar en casi todos los aspectos de la operación del CPU. El tamaño de un registro depende del CPU; los más simples tienen registros que aceptan 8 o 16 bits de datos y los más complejos tienen registros de 32, 48 o 64 bits.
Son aquellos que pueden ser referenciado por medio del lenguaje maquina que ejecuta la CPU, los registro que normalmente disponibles son:
Se utilizan para controlar las operaciones del procesador, la mayor parte de estos registros no son visibles al usuario y algunos pueden ser accesibles a las instrucciones de maquina ejecutadas en un modo de control. Los registros utilizados son los siguientes:
En el Motorola 68000 el mismo direccionamiento lleva implícito el tipo de registro sobre el que trabaja (direcciones o datos). Está basado en dos bancos de 8 registros de 32 bits. Un banco es de datos (Dn) y el otro de punteros (An). Además contiene un contador de programa de 32 bits y un registro de estado de 16 bits. Los registros de datos (D0 a D7) se pueden usar como registros de 32 bits (.l), 16 bits (.w) y 8 bits (.b). Cualquiera de ellos puede usarse como acumulador, índice o puntero.
Acepta los siguientes modos de direccionamiento:
Una CPU lo que hace es ejecutar las instrucciones de un programa situado en una memoria. Todos siguen el mismo ciclo de instrucción, el cual se divide en tres etapas diferenciadas llamadas Fetch, Decode y Execute, las cuales se traducen como captación, descodificación y ejecución.
La primera etapa del ciclo de instrucción se encarga de captar las instrucciones que hay en la memoria RAM asignada al procesador a través de una serie de unidades y registros que son las siguientes:
La segunda etapa:
Hay diferentes tipos de instrucciones y no todas hacen lo mismo, por lo que dependiendo del tipo de instrucción necesitamos saber hacía que unidades de ejecución se van a enviar y la manera más clásica de hacerlo es a través de lo que llamamos un descodificador, el cual toma cada instrucción, la divide internamente según el opcode o instrucción y el dato o la dirección de memoria donde se encuentra este.
La última etapa es la de la ejecución de las instrucciones, en esta étapa las instrucciones son resueltas, pero no todos los tipos de instrucción se resuelven de la misma forma, ya que la forma de utilizar el hardware dependerá de la función de cada una de ellas, en general tenemos cuatro tipos de instrucciones:
Fletch
Decode
Execute
La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware de la CPU para realizar más de una operación al mismo tiempo. • Consiste en descomponer el proceso de ejecución de las instrucciones en fases o etapas que permitan una ejecución simultánea. • Explota el paralelismo entre las instrucciones de un flujo secuencial.
La segmentación es una técnica de mejora de prestaciones a nivel de diseño hardware y la cual es invisible al programador. El diseño de procesadores segmentados tiene gran dependencia del repertorio de instrucciones.
El conjunto de instrucciones que maneja una computadora es una pieza
fundamental para el funcionamiento de ésta debido a que las instrucciones se
comunican directamente con el procesador para hacer un manejo adecuado de
los datos que están procesando y dependiendo del tipo de set de instrucciones
que un CPU entienda nos dirá el tipo de programas que una computadora puede
llegar o no a soportar.
-Ortogonales (Simétricas)
La ortogonalidad es una característica de las instrucciones que es considerada algo amplia en términos de lo que requiere una instrucción o un set de instrucciones para ser considerado ortogonal en primera instancia se dice que las instrucciones en un set deben de poder ser fuente y destino de cualquier elemento de la arquitectura del CPU.
-Risc
Un juego de instrucciones Cisc se caracteriza por un número reducido de instrucciones además del uso de pipelining que permite al procesador dividir la ejecución de una instrucción en distintas fases incrementando de esa manera la velocidad de ejecución.
-Cisc
A diferencia del set de instrucciones Risc, este set tiene una cantidad de instrucciones considerable pero dichas instrucciones no suelen ejecutarse por medio de segmentación o pipelining, sus instrucciones no son ortogonales eso quiere decir que se debe tener cuidado con los registros que se utilizan debido a que no se pueden direccionar de cualquier forma los datos sobre cualquier registro, se debe especificar en la instrucción.
Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes. A estos procesadores se les conoce como pipeline processors. Estos están compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales.
Contar con diferentes formatos de instrucciones, implica contar con diferentes formas de obtener los operandos de las instrucciones. Por lo general a estas múltiples formas se les conoce como modos de direccionamiento.
I-8086:
Los registros del procesador, se usan para contener los datos con que se está trabajando puesto que el acceso a los registros es mucho más rápido que los accesos a memoria. Se pueden realizar operaciones aritméticas y lógicas, comparaciones, entre otras. Los modos del 8086 son indirectos por registro, indexados o directos por registro.
80386:
Para este microprocesador existe un modo nuevo que requiere un byte adicional denominado SIB (escala, índice, base) que se añade al byte de operandos, es útil para direccionar elementos de vectores de longitudes diferentes en bucles. Es una alternativa a los modos autoindexados que esta máquina no soporta.