UCP- CPU (UNIDAD CENTRAL DE PROCESAMIENTO)

MICROPROCESADOR
EL CEREBRO DEL COMPUTADOR

 







CPU

La unidad central de procesos: Es un circuito microscópico que interpreta y ejecuta instrucciones, también se ocupa del control y el proceso de datos en los ordenadores. Es la unidad fundamental de la computadora. es el que interpreta las instrucciones contenidas en los programas o definidas por las entradas y ejecuta el procedimiento de datos. Coordina y controla todas las operaciones

EL PROCESADOR:
Es el que se encarga de ejecutar instrucciones específicos por el programa.
Funciones Básicas
¨       Captar instrucciones
¨       Interpretar instrucciones
¨       Captar datos
¨       Procesar datos
¨       Escribir datos
Unidad de control: Se encarga de la interpretación y ejecución de las instrucciones del programa, también controla todas componentes de un computador por medio de la línea de conexión llamada buses.

U.C: Busca, decodifica, ejecuta.
a.       Registro de Contador de Programa (CP).
b.      Registro de Dirección (RD).
c.       Registro de Instrucciones (RI).
d.      Decodificador (D).
e.       Reloj (R).
f.       Generador de programa (S).
Unidad aritmética lógica (ALU-UAL): Es la unidad encada de realizar las operaciones lógicas y aritméticas usando como base la operación suma y la notación del complemento dos todos los cálculos y operaciones para el procesamiento de datos se efectúan en la UAL.

Operaciones aritméticas                                               
And  
Or
Not
REGISTROS
Los registros del procesador son sitios de almacenamiento rápido y temporal, se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética.  Los registros son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee.
Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética.
 
  1.  Banco de Registro (BR)
  2. Señalizadores de Estado (SE)
  3. Circuito de Operador (CIROP)
  4. Registro de Resultado (RR)
Registros de segmento.
Un registro de segmento se utiliza para alinear en un límite de párrafo o dicho de otra forma codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha. Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamientos conocidos como el segmento actual. Los registros de segmento son:
  • Registro CS
  • Registro DS
  • Registro SS
  • Registro ES
  • Registro FS y GS 
Segmento de codigo
El segmento de código (CS) contiene las instrucciones de maquina que son ejecutadas por lo común la primera instrucción ejecutable esta en el inicio del segmento, y el sistema operativo enlaza a esa localidad para iniciar la ejecución del programa. Como su nombre indica, el registro del CS direcciona el segmento de código. Si su área de código requiere mas de 64K, su programa puede necesitar definir mas de un segmento de código.
Segmento de datos
 El segmento de datos (DS) contiene datos, constantes y áreas de trabajo definidos por el programa. El registro DS direcciona el segmento de datos. Si su área de datos requiere mas de 64K, su programa puede necesitar definir mas de un segmento de datos.

Segmento de pila
 En términos sencillos, la pila contiene los datos y direcciones que usted necesita guardar temporalmente o para uso de sus "llamadas" subrutinas. El registro de segmento de la pila (SS) direcciona el segmento de la pila.
Registro cs
Esta dirección de segmento, más un valor de desplazamiento en el registro de apuntado de instrucción (IP), indica la dirección de una instrucción que es buscada para sí ejecución. 
Registro Ds
La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. Esta dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un bytes especifico en el segmento de datos. 
Registro ss
El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que está siendo direccionada. 
Registro ES
En este contexto, el registro ES está asociado con el registro DI (índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección apropiada. 
Registros FS y GS.
Son registros extra de segmento en los procesadores 80386 y posteriores a estos procesadores.
 

REGISTROS DE PROCESADOR DE PROPOSOTO GENERAL
Los registros de propósitos generales (AX, BX, CX y DX) 16 bits. Son los únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El último byte de la izquierda es la parte "alta", y el último byte de la derecha es la parte "baja" por ejemplo, el registro CX consta de una parte CH (alta) y una parte CL (baja)
Registros AX:
El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. También, algunas operaciones generan código más eficientes si se refiere al AX en lugar de los otros registros.
Registro BX:
El BX es conocido como el registro base ya que es el único registro de propósitos generales que pueden ser unos índices para direccionamiento indexado. También es común emplear al BX para cálculos.
Registro DX:
El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicación y división con cifras grandes suponen al DX y al AX trabajando juntos. Puede usar los registros de propósitos para suma y resta de cifras de 8, 16, 32 bits.

AX se usa siempre en multiplicaciones  y  divisiones y  es  el más eficiente para operaciones aritméticas 
y de movimiento de datos.

BX se usa como puntero, y junto con DS  referencia  posiciones  de memoria. Por ejemplo, para cargar en 
AL el contenido de  la  posición de memoria número 9:

  MOV AX,0
  MOV DS,AX
  MOV BX,9
  MOV AL,[BX]

CX se usa principalmente como contador  en los  bucles. Estos  son tan frecuentes que existe  una 
 instrucción  especial,  LOOP,  que comprueba su  valor,  volviendo  al  principio  del  bucle  si  es distinto
 de cero:

 MOV CX,10
 BUCLE:
 instrucciones
 LOOP BUCLE

DX  es el único  registro que puede usarse para acceder a puertos. Algunas operaciones de entrada/salida
 requieren su uso, y las operaciones de multiplicación y división con cifras grandes suponen al DX y al 
AX trabajando juntos. Puede usar los registros de propósitos para suma y resta de cifras de 8, 16, 32 bits.
 Por ejemplo, para escribir 62H en la  direccion de puerto 1000H:

 MOV AL,62H
 MOV DX,1000H
 OUT DX,AL

Registro Apuntadores: SP, BP
Que están asociados al segmento SS y permiten al sistema a acceder datos en el segmento de la pila.

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP. 

Registro Apuntadores
Los registros SP (apuntador de la pila) Y BP (apuntador de base) están asociados con el registro SS y permiten al sistema acceder datos en el segmento de la pila. 

En el ejemplo siguiente, el registro CS contiene 25A40H y el IP contiene 412H. Para encontrar la siguiente instrucción que será ejecutada, el procesador combina las direcciones en el CS y el IP:
Segmento de dirección en el registro CS: 25A40H Desplazamiento de dirección en el registro IP: + 412H Dirección de la siguiente instrucción: 25E52H
Registro BP.
El registro BP de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía lapida.
Registro índice:
Los registros SI y DI están disponibles para direccionamientos indexados y para sumas y restas.
Registro SI.
El registro índice de 16 bits es requerido por algunas operaciones con cadenas (de caracteres).

El SI está asociado con el registro DS.
CLD 
MOV AX,0
MOV DS,AX
MOV SI,20
LODSB
Registro DI
El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el E
DI también se usa como  puntero.  Permite  escribir  en posiciones sucesivas de memoria cuando 
se usa con instrucciones de cadena:

CLD
MOV DX, 0
MOV ES, DX
MOV DI, 2048
STOSB

Registro de Bandera

De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086 y
sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas 
instrucciones quepiden comparaciones y aritmética cambian el estado de las banderas, algunas 
cuyas instrucciones pueden realizar pruebas para determinar la acción subsecuente. En resumen,
los bits de las banderas comunes son como sigue: 

OF (Overflow, desbordamiento): Indica desbordamiento de un bit de orden alto (mas a la izquierda) después de una operación aritmética.

DF (dirección): Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.

IF (interrupción): Indica que una interrupción externa, como la entrada desde el teclado, sea procesada o ignorada.

TF (trampa): Permite la operación del procesador en modo de un paso. Los programas depuradores, como el DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecución de una sola instrucción a un tiempo, para examinar el efecto de esa instrucción sobre los registros de memoria.
SF (signo): Contiene el signo resultante de una operación aritmética (0 = positivo y 1 = negativo).

ZF (cero): Indica el resultado de una operación aritmética o de comparación (0 = resultado diferente de cero y 1 = resultado igual a cero).

AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits para aritmética especializada.
PF (paridad): Indica paridad par o impar de una operación en datos de 8 bits de bajo orden (mas a la derecha).
CF (acarreo): Contiene el acarreo de orden mas alto (mas a la izquierda) después de una operación aritmética; también lleva el contenido del ultimo bit en una operación de corrimiento o de rotación. Las banderas están en el registro de banderas en las siguientes posiciones:
Registros de PILA
La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:
SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general, el programador no debe alterar su contenido.
BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.
Claro que estos nombres y tipos de registros son estándar, ya que cada fabricante puede utilizar otros registro que reemplacen a estos o los auxilien, aun así, los fabricantes que usan otros registro tienen la misma función que los anteriormente mencionado.  


Ejemplo
Registros de uso general del 8086/8088:
Tienen 16 bits cada uno y son ocho:

  1. AX = Registro acumulador, dividido en AH y AL (8 bits cada uno). Usándolo se produce (en general) una instrucción que ocupa un byte menos que si se utilizaran otros registros de uso general. Su parte más baja, AL, también tiene esta propiedad. El último registro mencionado es el equivalente al acumulador de los procesadores anteriores (8080 y 8085). Además hay instrucciones como DAA; DAS; AAA; AAS; AAM; AAD; LAHF; SAHF; CBW; IN y OUT que trabajan con AX o con uno de sus dos bytes (AH o AL). También se utiliza este registro (junto con DX a veces) en multiplicaciones y divisiones.
  2. BX = Registro base, dividido en BH y BL. Es el registro base de propósito similar (se usa para direccionamiento indirecto) y es una versión más potente del par de registros HL de los procesadores anteriores.
  3. CX = Registro contador, dividido en CH y CL. Se utiliza como contador en bucles (instrucción LOOP), en operaciones con cadenas (usando el prefijo REP) y en desplazamientos y rotaciones (usando el registro CL en los dos últimos casos).
  4. DX = Registro de datos, dividido en DH y DL. Se utiliza junto con el registro AX en multiplicaciones y divisiones, en la instrucción CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el número de puerto de entrada/salida).
  5. SP = Puntero de pila (no se puede subdividir). Aunque es un registro de uso general, debe utilizarse sólo como puntero de pila, la cual sirve para almacenar las direcciones de retorno de subrutinas y los datos temporarios (mediante las instrucciones PUSH y POP). Al introducir (push) un valor en la pila a este registro se le resta dos, mientras que al extraer (pop) un valor de la pila este a registro se le suma dos.
  6. BP = Puntero base (no se puede subdividir). Generalmente se utiliza para realizar direccionamiento indirecto dentro de la pila.
  7. SI = Puntero índice (no se puede subdividir). Sirve como puntero fuente para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto.
  8. DI = Puntero destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. También sirve para realizar direccionamiento indirecto.

Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritméticas y lógicas
Indicadores (flags)        
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits más significativos están indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno (esto también ocurría en los procesadores anteriores).
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o "préstamo" (en caso de resta) desde el bit de orden más significativo del resultado. Este indicador es usado por instrucciones que suman o restan números que ocupan varios bytes. Las instrucciones de rotación pueden aislar un bit de la memoria o de un registro poniéndolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un número par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "préstamo" del nibble (cuatro bits) menos significativo al nibble más significativo. Este indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es cero.
SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los números negativos se representan en la notación de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador está en modo paso a paso. En este modo, la CPU automáticamente genera una interrupción interna después de cada instrucción, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instrucción por instrucción.

IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupción externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del valor de IF. DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirán "auto-decremento", esto es, se procesarán las cadenas desde las direcciones más altas de memoria hacia las más bajas. Si vale 0, habrá "auto-incremento", lo que quiere decir que las cadenas se procesarán de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operación aritmética con signo, esto es, un dígito significativo se perdió debido a que tamaño del resultado es mayor que el tamaño del destino.
 



Registros de datos
AX
BX
CX
DX
Punteros de pila
SP
BP


Registros índice
DI
SI


Registros de segmento
CS
DS
ES
SS
Registro de flags






CPU
REGISTROS Y BUSES


















UNIDAD CENTRAL DE PROCESO

No hay comentarios:

Publicar un comentario