Está en la página 1de 13

Instituto Tecnológico de Oaxaca

ANÁLISIS DE UNA CPU

Alumno: Marcos Mendoza Pedro

Docente: Ing. Oscar arturo López Córdoba

Materia: Lenguaje de Interfaz

Ingenieria en Sistemas Computacionales

14/07/2022
Registros y funciones mas importantes de una CPU
Concepto general
Los registros del procesador 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 son
direccionables por medio de una viñeta, que es una dirección de memoria. Los
bits, por conveniencia, se numeran de derecha a izquierda (15,14,13.... 3,2,1,0),
los registros están divididos en seis grupos los cuales tienen un fin especifico. Los
registros se dividen en:
+ Registros de segmento
+ Registros de apuntadores de instrucciones
+ Registros apuntadores
+ Registros de propósitos generales
+ Registro índice
+ Registro de bandera.

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 o 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
Registro CS.

El DOS almacena la dirección inicial del segmento de código de un programa en el


registro CS. Esta dirección de segmento, más un valor de desplazamiento en el
registro de apuntado de instrucción (1P), indica la dirección de una instrucción que
es buscada para sí ejecución. Para propósito de programación normal, no se
necesita referenciar el registro CS.
Registro DS.
La dirección inicial de un segmento de datos de programa es almacenada en el
registro DS. En términos sencillos, 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. El DOS almacena la dirección de inicio del
segmento de pila de un programa en el registro SS. 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. Para propósitos de
programación normal, no se necesita referenciar el registro SS.
Registro ES
Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el
registro esta de segmento para manejar el direccionamiento de memoria. 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 80386y posteriores a estos
procesadores.

Registro Apuntador de instrucciones. (IP)


El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento
de dirección de la siguiente instrucción que se ejecuta.
El registro IP está 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 está ejecutando
actualmente. En el ejemplo siguiente, el registro CS contiene 2544[0]H y el IP
contiene 412H. Para encontrar la siguiente instrucción que será ejecutada el
procesados combina las direcciones en el CS y el IP así:
Segmento de dirección en el registro CS: 25440H
Desplazamiento de dirección en el registro IP: + 412H
Dirección de la siguiente instrucción: 25E52H

Registros apuntadores.
Los registros apuntadores están asociados con el registro SS y permiten al
procesador acezar datos en el segmento de pila los registros apuntadores son
dos:
+ El registro SP
+ El registro BP

Registro SP.
El apuntador de pila 1P de 16 bits esta asociado con el registro SS y proporciona
un valor de desplazamiento que se refiere a la palabra actual que esta siendo
procesada en la pila.
El ejemplo siguiente el registro SS contiene la dirección de segmento 27B3[0]H y
el SP el desplazamiento 312H Para encontrar la palabra actual que esta siendo
procesada en la pila el microprocesador combina las direcciones en el SS y el PP:
Dirección de segmento en el registro SS: 27830H
Desplazamiento en el registro SP: + 312H
Dirección en la Pila: 27E42H

Registro BP.
El registro BP de 16 bits facilita la referencia de parámetros, los cuales son datos y
direcciones transmitidos vía lapida.
Registros de propósitos generales.
Los registros de propósitos generales AX, BX, CX y DX son los caballos de batalla
o las herramientas del sistema. Son los únicos en el sentido de que se puede
direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la
izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja" por
ejemplo, el registro CX consta de una parte CH (alta) y una parte CL (baja), y
usted puede referirse a cualquier parte por si nombre. Las instrucciones siguientes
mueven ceros a los registros CX, CH y CL respectivamente.
Mov CX, 00
Mov CH, 00
MovCL, 00
Los procesadores 80386 y posteriores permiten el uso de todos registros de
propósito general, más versiones de 32 bits; EAX, EBX y EDCX.
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ódigos 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 CX.
El CX es conocido como el registro contador. Puede contener un valor para
controlar el número de veces que un ciclo se repite o un valor para corrimiento de
bits, hacia la derecha o hacia la izquierda. El CX también es usado para muchos
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.

Registro índice.
Los registros SI y DI están disponibles para direccionamientos indexados y para
sumas y restas. Que son las operaciones de punta.

Registro SL.
El registro índice de 16 bits es requerido por algunas operaciones con cadenas (de
caracteres). En este contexto, el SI está asociado con el registro DS. Los
procesadores 80386 y posteriores permiten el uso de un registro ampliado a 32
bits, el ESI.

Registro DL
El registro índice destino también es requerido por algunas operaciones con
cadenas de caracteres. En este contexto, el Di está asociado con el registro ES.
Los procesadores 80386 y posteriores permiten el uso de un registro ampliado a
32 bits, el EDL.

Registro de bandera.
Los registros de banderas sirven parar indicar el estado actual de la maquina y el
resultado del procesamiento, Cuando algunas instrucciones piden comparaciones
o cálculos aritméticos cambian el estado de las banderas.

Bandera
Las banderas más comunes son las siguientes:
OF (Overflowflag, desbordamiento).
Indica el desbordamiento de un bit de orden alto (más a la izquierda) después de
una operación aritmética.

DF (Directionflag, Direccion).
Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar
cadenas de caracteres.
IF (Interruptionflag, Interrupcion).
Indica que una interrupción externa, como la entrada desde el teclado sea
procesada o ignorada.
TF (Trapflag, Trampa).
Examina el efecto de una instrucción sobre los registros y la memoria.
Los programas depuradores como DEBUG, activan esta bandera de manera que
pueda avanzar en la ejecución de una sola interrupción a un tiempo.
SF (Signflag, Signo).
Contiene el signo resultante de una operación aritmética (o=positivo y 1=
negativo).
ZE (Zero flag, Zero).
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 (Auxiliarycarryflag, Acarreo auxiliar).
Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmética
especializada
PF (Parityflag, Paridad).
Indica paridad par o impar de una operación en datos de ocho bits de bajo orden
(mas a la derecha).
CF (Carryflag, 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 rotación.
Estructura y organización de un procesador

La Unidad Central de Proceso es la encargada de la ejecución de las


instrucciones. Para ello la arquitectura de von Neumann propone que la misma
cuente con los siguientes elementos básicos:

Unidad Aritmética-Lógica (ALU): circuito lógico que implementa operaciones de


aritmética binaria (típicamente las operaciones básicas para representaciones
"binario" y "complemento a 2" y lógicas (típicamente AND, OR, EXOR y NOT bit a
bit). También es habitual que implemente operaciones de desplazamiento y/o
rotación de bits.
Unidad de Control: circuito secuencial que implementa el denominado "ciclo de
instrucción", permitiendo acceder a la siguiente instrucción de un programa, leer
sus operandos, efectuar la operación indicada en la ALU y guardar el resultado de
la misma.
Banco (Set / Conjunto) de Registros: una serie de posiciones especiales de
memoria, ubicadas físicamente dentro de la propia CPU, que permiten un acceso
a operandos y lugares de almacenamiento de resultados mucho más veloz que si
estuvieran en el sistema de memoria normal. Algunos de estos registros son de
uso interno de la propia CPU (más precisamente de su Unidad de Control) y otros
son accesibles y utilizables por el programador.
El Banco (Set / Conjunto) de Registros no es un elemento esencial de la
arquitectura. Es un elemento de carácter tecnológico que tiene que ver con dos
aspectos:

• Por razones vinculadas a la electrónica, la velocidad de transferencia de


información entre dos circuitos está limitada por la distancia geográfica
entre los mismos
• La memoria rápida (usada en los pocos registros de la CPU) es más cara
que la memoria más lenta (usada en las mucho más abundantes posiciones
del sistema de memoria principal).
De allí que se utilice poca memoria rápida (por el costo) y que se ubique en las
cercanías de donde se va a utilizar (dentro de la CPU) para minimizar su tiempo
de acceso.
Como ya se mencionó antes una CPU (Centrol Processor Unit) está conformada
por tres sub-sistemas fundamentales: la ALU (Arithmetic Logic Unit, Unidad
Aritmética y Lógica), la CU (Control Unit, Unidad de Control) y el Register Set
(también denominado Register Bank) ó sea Conjunto (o Banco) de Registros.
El Banco de Registros contiene registros de tres categorías desde el punto de
vista de su función en relación con los programas y el funcionamiento interno de la
CPU:
- Totalmente visibles: estos son los ya mencionados registros de uso general ó
personalizados que contienen operandos o direcciones para su utilización en las
instrucciones. El programador de “bajo nivel” los manipula directamente en los
programas.
- Parcialmente visibles: son registros que tienen funciones especiales pero
participan de algún modo indirecto en las instrucciones. El programador los
manipula indirectamente en determinadas instrucciones específicas. Ejemplos de
este tipo de registros son el IP (Instruction Pointer), también denominado PC
(Program Counter) que contiene la dirección de la próxima instrucción a ejecutarse
(en algunas arquitecturas almacena la dirección de la que se está ejecutando en
este momento), el SP (Stack Pointer) que contiene el puntero al primer lugar de la
pila en las arquitecturas “de stack” y el PS (Processor Status) también
denominado registro de FLAGS (en el caso de Intel) que contiene el estado del
procesador incluyendo el valor que tomaron los bits de condición (Negative, Zero,
Carry, Overflow) en función del resultado de la última operación realizada por la
ALU.
- Internos: son registros que utiliza la Unidad de Control de la CPU para poder
ejecutar las instrucciones. Almacenan constantes, el estado de la CU, la
instrucción en ejecución (su código binario), resultados intermedios de cálculos de
direcciones, etc. No son visibles de ninguna manera al programador. La Unidad de
Control es, en definitiva, una máquina secuencial que realiza el “ciclo de
instrucción”: conjunto de acciones ordenado y secuencial que interconectan
adecuadamente los distintos elementos en el tiempo, para lograr el objetivo de
ejecutar la instrucción realizando la operación indicada sobre los operandos
correspondientes y almacenando el resultado en el lugar indicado. Esta máquina
secuencial funciona sincronizada por un reloj, el cual también es utilizado para
sincronizar todas las actividades de los otros elementos del sistema (memoria y
entrada/salida). En las primeras computadoras el reloj era el mismo para todos los
elementos. Últimamente se utilizan relojes independientes (aunque vinculados)
para cada subsistema. En muchos diseños se utilizan más de un reloj para la
CPU, con la misma frecuencia, pero desfasados (0º, 90º, 180º y 270º, por ejemplo)
a los efectos de ser utilizados para sincronizar distintas partes del
circuito compensando los diferentes retardos de propagación de las señales en los
circuitos internos de la CPU.
La Unidad Aritmética y Lógica es un conjunto de circuitos (típicamente
combinatorios) que implementan un conjunto de operaciones, que incluyen suma y
resta (en aritmética complemento a 2), operaciones lógicas bit a bit (AND, OR,
EXOR, NOT) y operaciones de desplazamiento (shift). Las ALUs más avanzadas
incluyen operaciones de multiplicación y división (aunque en este caso se
implementan como una máquina secuencial que implementa algún algoritmo para
estas operaciones).

Modos de direccionamiento a memoria

La memoria de acceso aleatorio, o RAM, es la memoria principal de una


computadora. Las aplicaciones son cargadas y ejecutadas en la memoria RAM.
Los modos de direccionamiento asignan memoria RAM en porciones que pueden
ser referenciadas individualmente para que la unidad central de procesamiento, o
CPU, pueda determinar qué ubicación de memoria está siendo utilizada por una
instrucción de la máquina.
Se les llama modos de direccionamiento a las distintas formas de combinar los
operandos según el acceso que se hace a memoria.

Direccionamiento implícito
Depende solamente de la instrucción, es decir, la instrucción no lleva parámetros.
Particularmente en instrucciones que no accesan memoria, o bien que tienen una
forma específica de accesarla.
Ejemplos: PUSHF, POPF, NOP

Modo registro
Usa solamente registros como operandos
Es el más rápido, pues minimiza los recursos necesarios (toda la información fluye
dentro del EU del CPU)
Ejemplo: MOV AX, BX

Modo inmediato
Tiene dos operandos: un registro y una constante que se usa por su valor.
El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer
el “fetch” de la instrucción.
Ejemplo: MOV AH, 9

Modo directo
Uno de los operandos involucra una localidad específica de memoria
El valor constante se tiene que buscar en memoria, en la localidad especificada.
Es más lento que los anteriores, pero es el más rápido para ir a memoria, pues ya
“sabe” la localidad, la toma de la instrucción y no la tiene que calcular.
Ejemplo: MOV AH, [0000]
Modo indirecto
Se usan los registros SI, DI como apuntadores
El operando indica una localidad de memoria, cuya dirección (sólo la parte
desplazamiento) está en SI o DI.
Es más lento que los anteriores, pues tiene que “calcular” la localidad
Ejemplos: MOV AL, [SI]

Modo indexado de base


Formato: [ BX o BP + SI o DI (opcionales) + constante (opcional) ]
BX o BP indica una localidad base de la memoria
A partir de BX o BP, se puede tener un desplazamiento variable y uno constante
La diferencia es el segmento sobre el que trabajan por defecto:
BX por defecto en el segmento de datos
BP por defecto en el segmento de pila.
Ejemplos:
Ø MOV AX, [BX]
Ø MOV DX, [BX+2]
Ø MOV CX, [BX+DI]
Ø MOV DL, [BX+SI+3]

Absoluto
El campo de operando contiene una dirección en memoria, en la que se encuentra
la instrucción. Y no se cancela.

Indirecto recursivo
Unos pocos sistemas como el PDP-6 o el PDP-10 tenían la posibilidad de
direccionamiento indirecto recursivo. Tal dirección de memoria indirecta tenía un
campo de registro para indexación y posiblemente un otro bit indirecto, de modo
que el proceso de direccionamiento indirecto con indexación podría teóricamente
repetirse cualquier número de veces hasta que se encontrara una dirección sin un
bit indirecto en la cadena.

Indirecto mediante registros


El campo de operando de la instrucción contiene un identificador de registro en el
que se encuentra la dirección efectiva del operando.
El control localiza la instrucción de la memoria y utiliza su parte de dirección para
acceder a la memoria de nuevo para leer una dirección efectiva. Unos pocos
modos de direccionamiento requieren que el campo de dirección de la instrucción
sea sumado al control de un registro especificado en el procesador. La dirección
efectiva en este modo se obtiene del siguiente cálculo: Dir. efectiva = Dir. de la
parte de la instrucción + Contenido del registro del procesador.

De desplazamiento
Combina el modo directo e indirecto mediante registros.

De pila
Se utiliza cuando el operando está en memoria y en la cabecera de la pila.
Este direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO),
las cuales están marcados por el fondo de la pila y el puntero de pila (*SP). El
puntero de pila apunta a la última posición ocupada. Así, como puntero de
direccionamiento usaremos el SP.
El desplazamiento más el valor del SP nos dará la dirección del objeto al que
queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo
se trabajará con la cima de la pila.

Referencias
https://es.slideshare.net/cirenio/definicin-de-registro-de-procesador
https://es.slideshare.net/KILLERMSTR/prez-camacho-jess-asmeth
https://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/teo/arq-teo06.pdf
https://sites.google.com/site/lgiao2018/unidad-1/1-6-modos-de-direccionamiento

También podría gustarte