Вы находитесь на странице: 1из 12

Resumen: CPU

Teora General de la Arquitectura de Sistemas Digitales de Cmputo

Todo sistema digital de cmputo consta de 3 bloques fundamentales:

Unidad Central de Procesos CPU. Integrada por la Unidad de Control UC, la Unidad Aritmtico Lgica ALU, el Banco de Registros de trabajo BR y las Seales de Reloj. La CPU crea y controla el flujo de datos que maneja el sistema a partir del conjunto de instrucciones que conforman el programa, adems gobierna las unidades de interfase de entrada y salida para intercambiar informacin con el mundo exterior.

Unidad de Memoria. Principalmente se dispone de dos reas, la Memoria de Programa y la Memoria de Datos; la primera es donde se almacenan las instrucciones que debe ejecutar el sistema y la segunda, se emplea para guardar datos y resultados de forma temporal.

Unidad de Interfase de Entradas y Salidas. Es la encargada de adecuar los cdigos y/o protocolos de comunicacin para intercambiar informacin con el mundo exterior, de una manera lgica para el sistema.

Unidad de Memoria MU. Por el Bus de Direcciones se recibe un conjunto de bits (tantos como lneas tenga el bus) que codifican la direccin o posicin de la memoria a que se desea acceder, este cdigo o direccin es almacenado temporalmente en el Registro de Direcciones de Memoria MAR, quien retiene el dato para que el Decodificador de Direcciones traduzca el cdigo y seleccione el registro exacto que corresponde a la direccin, el cual se encuentra inmerso dentro de una matriz de registros dentro de la cual existen reas de memoria del tipo ROM general (de programa, ROM, PROM, EPROM, EEPROM, FLASH) y reas del tipo RAM general (de datos, SRAM, DRAM, SDRAM, etc).

Luego que es ubicado el registro preciso al que se desea acceder (tanto para operaciones de lectura como de escritura), su contenido es conectado con el Registro de Datos de Memoria MDR, que es como el puerto de entrada y salida de todos los registros de la memoria, tanto de instrucciones de programa como de datos, teniendo en cuenta que en el caso de las instrucciones, el MDR es solo de salida, mientras en el caso de datos es bidireccional. En cualquier caso, el dato que almacena temporalmente el MDR es colocado en bus y segn el modelo de CPU, ser en un nico bus de datos e instrucciones, o en uno de datos y otro de instrucciones.

Unidad Central de Procesos CPU. La CPU recibe secuencialmente las instrucciones provenientes desde la MU, almacenando cada una temporalmente en el Registro de Instrucciones IR, que las retiene para que el Decodificador de Instrucciones las interprete y genere las seales e impulsos de gobierno y control que salen del Generador de Impulsos de Control.

Cada una de las seales que enva el Generador constituye una seal de control, que determinar el funcionamiento de todos y cada uno de los componentes del sistema. De manera sincronizada el CPU mantiene un conteo de las instrucciones que se ejecutan en el Contador de Programa PC, el cual siempre se incrementa scronamente con la ejecucin de una instruccin y apunta a la siguiente direccin a ejecutar, el PC entrega la siguiente direccin de programa al MAR para completar la secuencia. Cada instruccin de programa consta de varios pasos elementales denominados microinstrucciones, de tal forma que cuando se requiere ejecutar una instruccin, se divide el trabajo en una secuencia predefinida de microinstrucciones, entre las microinstrucciones est la activacin de las seales de control que indican a la ALU que operacin se va a realizar, la cual opera siempre entre 2 registros temporales, clsicamente denotados como A y B y produce tanto un resultado lgico o aritmtico por el registro Z, as como tambin genera una serie de seales que indican el estado en que qued la ALU, por ejemplo, si el ltimo resultado fue cero, o si se produjo un desbordamiento, etc. Segn el modelo de CPU, la ALU puede conectarse mediante un nico bus de datos, dos buses, tres buses, etc, los cuales le permiten

a la ALU tener acceso a datos que estn tanto dentro de la CPU en el Banco de Registros BR, como en la MU y en el exterior del sistema y viceversa.

El BR es un grupo de registros de propsito general y algunos de uso especializado, que permiten el almacenamiento temporal de datos que requiere la CPU para la ejecucin de instrucciones y ayudan a reducir el tiempo de proceso, ya que de no existir, la CPU tendra que estar accediendo con mayor frecuencia a la MU, lo cual disminuira enormemente el desempeo total del sistema. El BR puede ser visto como una pequea y sencilla memoria RAM incrustada dentro de la CPU, con un nmero no mayor a 32 registros (incluso en los Microprocesadores actuales) que son utilizados como una memoria intermedia de uso rpido y temporal.

Modelos Generales de CPU. En la prctica, un CPU viene encapsulado en un solo chip comercial, bien dentro de un microprocesador o dentro de un microcontrolador y en general todo sistema de computo digital cuenta con un CPU como elemento central del sistema, algo as como el cerebro que interpreta las instrucciones de programa, realiza clculos y anlisis de datos en base a lo cual toma decisiones y las ejecuta. Es conveniente comprender el funcionamiento bsico de un CPU de forma general con el objetivo de tener claros los elementos fundamentales que permitan un rpido y suficiente entendimiento de cualquier modelo comercial de CPU.

CPU de Bus nico:

Rauxw

Raux A Z Racu B R0 R1 R2 R3

UC

3 O2 O1O0 Racuw

En este modelo todos los datos comparten una nica va, por esto, para ingresar o salir del CPU es necesario que el dato se cargue en el bus nico, pero tambin es necesario esto para datos que se dirijan a la ALU o al BR. En cuanto a la carga de los registros de trabajo de la ALU es importante tener en cuenta que siempre se debe cargar primero el dato que va al registro A (guardndolo temporalmente en el registro Raux) y luego el del registro B. Otro aspecto interesante de este modelo es que para llevar un dato de uno de los registros del BR a otro del BR no es necesario pasar por la ALU, basta con colocar el dato en el bus y direccionar el nuevo registro en el BR. Las seales de control son: Rauxw que es la que permite cargar un dato en el registro auxiliar, Racuw cargar un dato en el registro acumulador (este registro es para almacenamiento temporal del resultado de la ALU), O2O1O0 es el cdigo de operacin para la ALU (con este cdigo se especifica cual funcin

A1 A0 Rbrr Rbrw

aritmtica o lgica debe realizar la ALU), A1 A0 son el par de bits necesarios para direccionar o seleccionar un registro particular de BR, Rbrr es la seal que habilita al registro seleccionado para una operacin de lectura de su contenido y Rbrw es la que habilita la operacin de escritura o carga. Es importante destacar que aqu se presenta que las seales del cdigo de operacin son 3 con lo cual se pueden tener hasta un mximo de 8 funciones, sin embargo esto depende de cada modelo real en la prctica. Por otro lado, cada una de las seales de control descritas se agrupa en lo que se menciona ms adelante como Palabra de Control para formar la microinstruccin y el micro cdigo.

CPU de Dos Buses:

Rauxw

Raux A Z B R0 R1 R2 R3

UC

3 O2 O1O0

BUS Origen BUS Destino

En este modelo se presenta un bus de entradas a la ALU y un bus de salida de la ALU. Observar que el sentido de traslado de datos en el BR siempre es unidireccional, por lo que para llevar un dato de un registro a otro es necesario pasar por la ALU. Al obtener un resultado en la ALU no hay que hacer un paso intermedio por un registro (como en el caso del CPU1B) sino que puede ir directamente al BR.

A1 A0 Rbrr Rbrw

CPU de Tres Buses:

Rbw Raw 3 O2 O1O0 Rzw

Rb A Z Rz B

Ra R0 R1 R2 R3

UC

BUS Operando A BUS Operando B BUS Destino

Se reconoce fcilmente porque se tiene un bus para cada entrada a la ALU y un bus para la salida de la ALU

Microprogramacin. Como resulta de intuicin al observar los modelos anteriores, la realizacin de una sencilla operacin que involucre dos operandos a travs de la ALU requiere varios pasos intermedios (por ejemplo, cargar cada operando en los registros de entrada de la ALU, luego ejecutar la operacin, y finalmente guardar el resultado en alguno de los registros de trabajo) que deben ser controlados por la UC mediante un conjunto de seales de gobierno hacia los otros integrantes de la CPU (ALU, BR), cada instruccin que es capaz de interpretar y ejecutar la CPU tiene un conjunto de micro instrucciones (pasos intermedios) que estn predefinidas de fbrica dentro de la UC, cada micro instruccin se compone del valor que adoptan todas y cada una de las seales de control que enva la UC hacia cada integrante del sistema (seales de activacin, inhibicin, pulsos de escritura, seales de reloj, etc.). Cuando se construye un CPU, se definen un conjunto de instrucciones (set de instrucciones) que se utilizan para crear programas que al cargarlos en el CPU son ejecutados (por ejemplo, el microprocesador 8086 tiene un set de ms de 100 instrucciones con las que se realizan programas en lenguaje ensamblador), el usuario o programador del

A1 A0 Rbrr Rbrw

sistema tiene acceso a las instrucciones, sin embargo, cada instruccin tiene definida dentro de la CPU un conjunto de microinstrucciones a las cuales el programador no tiene acceso ya que el fabricante las defini en el diseo del chip. Esta tcnica de construccin de CPU se conoce como microprogramacin y se ide con la finalidad de facilitar, optimizar y darle mayor velocidad a los CPU, debido a que se divide el trabajo en etapas ms sencillas lo que permite la realizacin simultnea de varias tareas.

Cada microinstruccin se representa mediante la Palabra de Control, que no es otra cosa que la imagen binaria del estado de todas y cada una de las seales que emite la UC a los otros elementos del sistema, as por ejemplo, la ALU requiere que se le entregue el cdigo de operacin a realizar, entonces, el conjunto de seales (cuyo nmero depende de la cantidad de funciones con las que se construyo la ALU, por ejemplo, si son 8 funciones se utilizan 3 seales, 4 si son 16 funciones, etc.) que enva la UC hacia la ALU para codificar la operacin estn presentes (forman parte) en la Palabra de Control. Aparte de la microinstruccin, existe el micro cdigo que es el nmero binario de la palabra de control en cada microinstruccin y sirve para codificar el valor de la microinstruccin cuando se intenta hacer un montaje experimental.

Microprogramacin de CPU1B: La Palabra de Control ser el estado de cada seal de Control para cada microinstruccin: O2O1O0 3 bits Rauxw 1 bit Racuw 1 bit A1 A0 2 bits Rbrr 1 bit Rbrw 1 bit

El micro cdigo es la representacin binaria de la Palabra de Control

Microprogramacin de CPU2B: La Palabra de Control ser el estado de cada seal de Control para cada microinstruccin: O2O1O0 3 bits Rauxw 1 bit A1 A0 2 bits Rbrr 1 bit Rbrw 1 bit

El micro cdigo es la representacin binaria de la Palabra de Control

Microprogramacin de CPU3B: La Palabra de Control ser el estado de cada seal de Control para cada microinstruccin: O2O1O0 3 bits Raw 1 bit Rbw 1 bit Rzw 1 bit A1 A0 2 bits Rbrr 1 bit Rbrw 1 bit

El micro cdigo es la representacin binaria de la Palabra de Control

Funcionamiento de la ALU. Como ya se mencion anteriormente, la ALU es una unidad que realiza operaciones aritmticas y lgicas entre 2 operandos y obtiene un resultado, los operandos son cargados en un registro respectivo para su posterior utilizacin de manera clsica se identifican como registro A y registro B a los operandos de entrada y registro Z al resultado. Cuando se construye una ALU se le definen de fabrica un conjunto de operaciones o funciones bsicas (tanto lgicas, complemento, OR, AND, XOR, etc. como aritmticas, suma, resta,

multiplicacin, etc.) que se encuentran en una tabla dentro de la ALU, para establecer cual operacin debe ejecutar la ALU durante una microinstruccin, la UC entrega un cdigo que identifica nicamente a una y solo una de las funciones en la tabla. Por lo general, la ALU tiene una funcin de especial importancia que se refiere a no operacin (Estado en Reposo), es decir, cuando se especifica esta funcin, la ALU no realiza ninguna operacin, a pesar de tener sus registros de entrada cargados. La importancia de esta funcin es que permite a la UC generar microinstrucciones completas sin que la ALU realice ninguna funcin, lo que puede alterar el estado del sistema. La ALU adems de entregar un resultado, tambin es capaz de entregar un informe sobre el estado de la ALU luego de realizada una operacin (por ejemplo, luego de una operacin de suma, informar si se produjo un acarreo por que la capacidad de bits es superada), esto lo hace mediante la Palabra de Estado, que es un conjunto de bits que funcionan como banderas indicadores de ciertos y determinados eventos (el evento que registra la palabra de estado depende del modelo) que pueden ocurrir cuando se realiza una operacin o funcin en la ALU.

Algunas Palabras de Estado contienen entre otros indicadores los siguientes:

S Bandera de Signo: cuando se realizan operacin entre nmeros con signo usualmente el bit ms significativo se usa para especificar el signo, siendo 0 para los positivos y 1 para los negativos y el resto de bits se usa para la magnitud. Por ejemplo, en palabras tipo nible (semi byte) si se especifican nmeros con signo, el bit 3 ser el utilizado para el signo y por tanto se podr contar hasta un mximo de 7 (111 en binario), quedando el rango de la palabra en 7 a +7. Cuando se realizan operaciones de nmeros con signo, la bandera S se activa (va a 1) cuando en el resultado qued un nmero negativo. C Bandera de Acarreo: cuando se realiza una operacin que produce un acarreo entre los dos bits de mayor peso de cada operando se activa C. O Bandera de Overflow: cuando se realiza una operacin (por ejemplo de suma o multiplicacin) cuyo resultado no puede ser expresado en forma completa por la capacidad de la palabra de trabajo, se activa O, indicando que ha ocurrido un sobrepasamiento o desborde en el registro Z. NOTA: no confundir C y O, C se refiere al acarreo entre los bits de mayor peso, mientras O se refiere a desbordamiento del resultado. Z Bandera de Cero (0): cuando en el registro Z todos sus bits quedan en 0 luego de haber realizado una operacin se activa la bandera Z, indicando que ha quedado cero en el registro Z. Esto puede ocurrir an cuando se active C y O (analizar explicacin!).

Es importante resaltar que cuando se establece el valor de Z y la Palabra de Estado, solo cambian por dos nicas formas, cuando se realice una nueva operacin en la ALU que resulte en un valor diferente para Z y la Palabra de Estado (en este caso lo que ocurre es que tanto el registro Z como las banderas de estado son sobrescritas con el nuevo valor respectivo). La otra forma de cambiar es mediante programa (la cual no ser contemplada para efectos de este curso).

Ejecucin de Instrucciones en el CPU. Como ya se mencion la ejecucin de una instruccin significa la ejecucin de pasos intermedios (micro instrucciones), sin embargo eso es desde el punto de vista interno del CPU, pero Cmo es la secuencia de ejecucin entre instrucciones?, como se sabe, el sistema de cmputo lo que realiza es la ejecucin de un programa, el cual es una secuencia lgica y ordenada de unas instrucciones que el programador especific, luego para la

ejecucin del programa ocurre un proceso bien establecido que se resume en los siguientes pasos: BSQUEDA DECODIFICACION EJECUCION BUSQUEDA

Un programa es la repeticin continua de estos pasos, primero se realiza la bsqueda de la instruccin a ejecutar, se decodifica para que la UC genere las micro instrucciones necesarias y al final se busca la instruccin siguiente. La fase de bsqueda tiene dos versiones, una es cuando se busca la primera instruccin de programa y la otra versin es cuando busca la instruccin siguiente dentro del programa. Cuando el sistema de cmputo inicia, hay un registro especial que se encarga de obtener la direccin de la primera instruccin de programa a ejecutar, este registro es el Contador de Programa (PC) quien siempre almacena la direccin de la siguiente instruccin a ejecutar. La carga del PC indica el inicio de la fase de bsqueda, que contina cuando el contenido del PC pasa al MAR (registro de direcciones de memoria), seguidamente la MU entrega al CPU el cdigo de la instruccin a ejecutar por medio del MDR (Registros de Datos de Memoria) y para finalizar la fase de bsqueda, el cdigo de la instruccin pasa al IR (Registro de Instruccin). En este punto se desencadenan 2 acciones simultneas, se incrementa automticamente el PC en 1 para apuntar a la siguiente instruccin y se inicia la fase de decodificacin, que consiste en que la UC recibe el cdigo de la instruccin y lo interpreta para establecer cules y en qu orden se ejecutarn las micro instrucciones. Una vez determinado qu micro instrucciones deben realizarse se lleva a cabo la ejecucin de estas, siendo la ltima micro instruccin aquella que permite que el PC (que ya tiene la direccin de la siguiente instruccin) entregue su contenido al MAR para continuar la secuencia.

Un Modelo Ms Real de CPU. Hasta ahora slo se han examinado modelos generales bsicos, es necesario ahora observar un modelo ms aproximado y real de un CPU.

PC
Rauxw

MAR

Al BUS de Direcciones

Raux MDR A Z Racu B R0 R1 R2 R3

Al BUS de Datos

UC

3 O2 O1O0 Racuw

A1 A0 Rbrr Rbrw

Вам также может понравиться