Está en la página 1de 18

República Bolivariana de Venezuela

Ministerio Del Poder Popular para la Educación Superior

Instituto Universitario Politécnico “Santiago Mariño”

Mérida – Mérida

CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO

Alumno:

Marwan Bohssass.

CI: V-30.359.266

15 de junio del 2022


Índice

Introducción……………………………………………………………………………………….……….…3
Organización de la instrucción de máquina……………………….…………………….……..….4
Propiedad de ortogonalidad………………………………………………………………..….4
Formato de las instrucciones…………………………………………………………………..5
Diseño del repertorio de instrucciones…………………………………………………….5
Clasificación De Los Códigos De Operación……………………………………………………….6
¿Cómo funciona un OPCODE?.........................................................................7
Modos de direccionamiento…………………………………………………………..………….……..8
1. Direccionamiento implícito……………………………………………….…………8
2. Direccionamiento inmediato (o literal)………………………………………….9
3. Direccionamiento directo por registro…………………………………………...9
4. Direccionamiento directo (o absoluto)…………………………………………..9
5. Direccionamiento indirecto………………………………………...……………..10
6. Direccionamiento relativo…………………………………………………………..10
7. Direccionamiento por base y desplazamiento……………………………….10
8. Direccionamiento indexado………………………………………………….……..11
9. Direccionamiento autoincremental o postincremental……………….….11
10. Direccionamiento autodecremental o predecremental…………………..12
Visión general de los modos de direccionamiento……………………………………12
Sistemas De Barra Internas Para El Procesamiento De Datos………………………..……13
Unidad de Control………………………………………………………………………………………….13
Microoperaciones………………………………………………………………………………………….14
Tipos de microoperaciones…………………………………………………………………………..…14
Ciclo de ejecución…………………………………………………………………………………………..15
Lectura de la instrucción…………………………………………………………………………….…..15
Lectura de los operandos fuente………………………………………………………………………16
Ejecución de la instrucción y almacenamiento del operando de destino………………16
Comprobación de interrupciones…………………………………………………………………….17
Conclusión………………………………………………………………………………………………..….18
Introducción
La expresión "unidad central de proceso" es, en términos generales, una descripción
de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas
de computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de
los primeros computadores que existieron mucho antes que el término "CPU"
estuviera en amplio uso. Sin embargo, el término en sí mismo y su acrónimo han
estado en uso en la industria de la informática por lo menos desde el principio de los
años 1960.
La CPU también es la llamada unidad central de procesamiento (por el acrónimo en
inglés de central processing unit), o simplemente el procesador o microprocesador,
es el componente del computador y otros dispositivos programables, que interpreta
las instrucciones contenidas en los programas y procesa los datos. Los CPU
proporcionan la característica fundamental de la computadora digital (la
programabilidad) y son uno de los componentes necesarios encontrados en las
computadoras de cualquier tiempo, junto con el almacenamiento primario y los
dispositivos de entrada/salida. Se conoce como microprocesador del CPU que es
manufacturado con circuitos integrados.
Organización de la instrucción de máquina.
Las instrucciones máquina son las acciones elementales que puede ejecutar un
computador. Una acción compleja deberá codificarse como una secuencia de
instrucciones máquina en lo que se denomina un programa. La arquitectura de un
procesador entendida como el conjunto de recursos operativos disponibles por un
programador a nivel de lenguaje máquina queda definida por el repertorio de
instrucciones (ISA: Instruction Set Architecture). En general, una instrucción
codifica una operación básica que el computador realiza sobre unos datos ubicados
en la memoria o en los registros de la máquina y a los que accede utilizando un modo
de direccionamiento. Por consiguiente, la arquitectura ISA de un procesador viene
determinada por los siguientes factores:
a) Tipos de datos y formatos que pueden manejar las instrucciones: naturales,
enteros, reales, caracteres, entre otros.
b) Modos de direccionamiento de los datos ubicados en la memoria: inmediato,
directo, indirecto, entre otros. Estos dos factores son determinantes para la
implementación eficiente de las estructuras complejas de datos de un lenguaje de
alto nivel.
e) Conjunto básico de operaciones que se pueden realizar sobre los datos: suma,
resta, etc.
Propiedad de ortogonalidad
Diremos que un repertorio es ortogonal cuando las instrucciones puedan combinar
los elementos de los tres factores anteriores sin ninguna restricción. La
ortogonalidad completa no se da en ningún repertorio de máquina real.
Formato de las instrucciones
Las informaciones relativas a los cuatro factores anteriores se codifican en cada una
de las instrucciones siguiendo un formato preestablecido. El formato determinará
la longitud en bits de las instrucciones y los campos que codifican el valor de los
factores citados. En general una instrucción se compone de los siguientes campos:
 Código de operación (CO)
 Operandos fuente (OP1, OP2....
 Operando destino o Resultado (OPd)
 Instrucción siguiente (1S)

El CO determina la operación que se realiza sobre OP1,OP2,... El resultado se deja


en OPd. Lo normal es que el número de operandos fuente de un repertorio no pase
de 2. La dirección de la instrucción siguiente IS queda implícita en todas las
instrucciones (se trata de la instrucción siguiente del programa) salvo en las
instrucciones de ruptura condicional o incondicional de secuencia.
Diseño del repertorio de instrucciones.
a) 3 operandos explícitos

ejemplo: ADD B,C,A ← B +C


 Máxima flexibilidad
 Ocupa mucha memoria si los operandos no están en registros
b) 2 operandos explícitos

ejemplo: ADD B,C B←B+C

 Reduce el tamaño de la instrucción


 Se pierde uno de los operandos

e) 1 operando explícito

ejemplo: ADD B Acumulador ← <Acumulador> + B


 Supone que fuente 1 y destino es un registro predeterminado (acumulador)
 Se pierde un operando fuente

d) 0 operandos explícitos

ejemplo: ADD cima de pila ← <cima de pila>+<cima de pila - 1>

 Se trata de computadores que trabajan sobre una pila


Ejemplo:

Clasificación De Los Códigos De Operación


En computación, un código de operación es la parte de una instrucción en lenguaje
de máquina que especifica la operación a realizar. Además del código de operación
en sí, la mayoría de las instrucciones también especifican los datos que procesarán,
en forma de operandos. Además de los códigos de operación utilizados en las
arquitecturas de conjunto de instrucciones de varias CPU, que son dispositivos de
hardware, también se pueden utilizar en máquinas informáticas abstractas como
parte de sus especificaciones de código de bytes.
Las especificaciones y el formato de los códigos de operación se establecen en la
arquitectura del conjunto de instrucciones (ISA) del procesador en cuestión, que
puede ser una CPU general o una unidad de procesamiento más especializada. Los
códigos de operación para un conjunto de instrucciones determinado se pueden
describir mediante el uso de una tabla de códigos de operación que detalla todos los
códigos de operación posibles. Además del propio código de operación, una
instrucción normalmente también tiene uno o más especificadores de operandos (es
decir, datos) sobre los que debe actuar la operación, aunque algunas operaciones
pueden tener operandos implícitos o ninguno. Hay conjuntos de instrucciones con
campos casi uniformes para códigos de operación y especificadores de operandos,
así como otros (el x86arquitectura, por ejemplo) con una estructura de longitud
variable más complicada. Los conjuntos de instrucciones se pueden ampliar
mediante el uso de prefijos de código de operación que agregan un subconjunto de
nuevas instrucciones compuestas de códigos de operación existentes siguiendo
secuencias de bytes reservadas.
Dependiendo de la arquitectura, los operandos pueden ser valores de registro,
valores en la pila, otros valores de memoria, puertos de E/S (que también pueden
estar mapeados en memoria), etc., especificados y accedidos usando modos de
direccionamiento más o menos complejos. Los tipos de operaciones incluyen
aritmética, copia de datos, operaciones lógicas y control de programas, así como
instrucciones especiales (como CPUID y otras).
El lenguaje ensamblador, o simplemente ensamblador, es un lenguaje de
programación de bajo nivel, que usa instrucciones mnemotécnicas y operandos para
representar el código de máquina. Esto mejora la legibilidad al mismo tiempo que
brinda un control preciso sobre las instrucciones de la máquina. La mayor parte de
la programación actualmente se realiza utilizando lenguajes de programación de alto
nivel, que suelen ser más fáciles de leer y escribir. Estos lenguajes deben ser
compilados (traducidos a lenguaje ensamblador) por un compilador específico del
sistema o ejecutados a través de otros programas compilados.
Los códigos de operación también se pueden encontrar en los llamados códigos de
bytes y otras representaciones destinadas a un intérprete de software en lugar de un
dispositivo de hardware. Estos conjuntos de instrucciones basados en software a
menudo emplean tipos de datos y operaciones de nivel ligeramente más alto que la
mayoría de las contrapartes de hardware, pero, sin embargo, se construyen de
manera similar.
¿Cómo funciona un OPCODE?
Para que las máquinas, equipos y ordenadores puedan recibir y ejecutar una orden
específica, es necesario emitir instrucciones en un lenguaje que puedan entender.
Por ello, estas instrucciones son escritas en un lenguaje de programación que
contiene códigos de operación o es traducido en última instancia a una serie de
códigos de operación.
Estos códigos están escritos en un idioma que generalmente conocemos, como el
inglés, y luego son traducidos por un programa compilador o traductor para que las
máquinas lo entiendan en su lenguaje binario. Es decir, las instrucciones
mnemónicas escritas en nuestro lenguaje para la interpretación de nosotros los
humanos, tienen su equivalente en lenguaje binario para que las máquinas puedan
interpretarlas fácilmente. Y así poder actuar sobre la instrucción recibida y ejecutarla
de forma correcta.
Ejemplo de un OPCODE:

En ella podemos ver algunos OP_CODES pertenecientes a las instrucciones capaces


de ejecutar un procesador o CPU de computadora (específicamente los x86 de Intel).
Como podrás ver es algo críptico de leer y difícilmente se puede programar usando
el mismo (aunque algunos desarrollos se hacen en este tipo de lenguaje debido a su
velocidad).
Modos de direccionamiento
Los llamados modos de direccionamiento son las diferentes maneras de especificar
en informática un operando dentro de una instrucción en lenguaje ensamblador.
Un modo de direccionamiento especifica la forma de calcular la dirección de
memoria efectiva de un operando mediante el uso de la información contenida en
registros y / o constantes, contenida dentro de una instrucción de la máquina o en
otra parte.
1. Direccionamiento implícito
En este modo, llamado también inherente, el operando se especifica en la misma
definición de la instrucción. El modo implícito se usa para hacer referencia a
operandos de dos tipos:
 Registros: En el caso de que el código de operación se refiera en particular a
un registro.
 Operandos en la pila: En el caso de que la operación se realice siempre sobre
el dato situado en la cima de pila.
El primer caso es típico de las organizaciones de un solo acumulador. Generalmente
en un ordenador de este tipo todas las instrucciones que actúan sobre el acumulador
utilizan direccionamiento implícito.
En el segundo caso están la mayoría de las instrucciones de los ordenadores con
organización de pila. Estas operaciones llevan implícitos los operandos que de la
cima de pila. Esto se debe a que en este tipo de máquinas la mayoría de las
operaciones no tienen campos de dirección. También están en este caso las
instrucciones PUSH y POP de la mayoría de los ordenadores cuyo operando implícito
también es, como en el caso anterior, la cima de pila.
2. Direccionamiento inmediato (o literal)
En este modo es el operando el que figura en la instrucción no su dirección. En otras
palabras, el campo de operando contiene él mismo, sin transformación alguna, la
información sobre la que hay que operar. Este modo es útil para inicializar registros
o palabras de memoria con un valor constante.
3. Direccionamiento directo por registro
Se mencionó anteriormente que el campo de dirección de una instrucción puede
especificar una palabra de memoria o un registro del procesador. Cuando se da este
último caso se dice que el operando está especificado con direccionamiento directo
por registro, en tal caso, el operando reside en uno de los registros del procesador
que es seleccionado por un campo de registro de K bits en la instrucción. Este campo
de k bits puede especificar uno de 2𝐾 registros. Este modo es típico de los
ordenadores con organización de registros de uso general.
Las ventajas de este modo son:
 Acceso a los registros es muy rápido, por tanto, el direccionamiento por
registro debe usarse en las variables que se usen con más frecuencia para
evitar accesos a memoria que son más lentos, un ejemplo muy típico del uso
de este direccionamiento so los índices de los bucles.

 El número de bits necesarios para especificar un registro es mucho más


pequeño que el necesario para especificar una dirección de memoria, esto es
debido a que el número de registros del procesador es muy pequeño
comparado con el número de direcciones de memoria. Sin embargo, hay que
tener en cuenta que en los ordenadores modernos el número de registros ha
aumentado considerablemente.

4. Direccionamiento directo (o absoluto)


Este es el modo de direccionamiento más sencillo. El campo de dirección no necesita
transformación alguna para dar la dirección efectiva, es decir la función que
transforma el campo de operando en la dirección efectiva es la identidad. Esto
significa que el campo de operando es ya la dirección efectiva.
Este direccionamiento sólo se usa en ordenadores pequeños en que el programa
siempre se sitúa en la misma zona de memoria ya que dificulta la relocalización de
los programas, es decir, que el código de los programas no dependa de su situación
en memoria. En ordenadores más grandes, este modo está reservado para acceder a
direcciones del sistema, que normalmente se refiere a operaciones de entrada y
salida, ya que estas direcciones no dependen del programa.
5. Direccionamiento indirecto
En este modo el campo de operando de la instrucción indica la localización de la
dirección efectiva del operando. El modo de direccionamiento indirecto puede
adquirir diferentes formas según cuál sea el lugar donde se encuentre la dirección
del operando. En general, todos los modos de direccionamiento tienen su versión
indirecta que añade un eslabón más a la cadena del direccionamiento. Por ejemplo,
existe el direccionamiento indirecto por registro, en el que el registro especificado
contiene la dirección del operando, no el operando mismo.
Este direccionamiento es útil cuando se trabaja con apuntadores ya que los
apuntadores son variables que contienen las direcciones de los operandos, no los
operandos mismos.
6. Direccionamiento relativo
Hay algunos modos de direccionamiento en que se hace uso de una propiedad muy
generalizada de los programas denominada “localidad de referencia”, esta propiedad
consiste en que las direcciones referenciadas por los programas no suelen alejarse
mucho unas de otras y, por tanto, suelen estar concentradas en una parte de la
memoria. Estas consideraciones nos llevan a la conclusión de que no.es necesario
utilizar todos los bits-de la dirección de memoria en el campo de operando, basta
utilizar los bits precisos para cubrir la parte de memoria donde estén incluidas las
direcciones a las que el programa hace referencia.
Esto puede hacerse tomando como referencia un punto de la memoria y tomando
como campo de operando la diferencia entre ese punto y la dirección efectiva del
operando. La dirección que se toma como punto de referencia puede residir en un
registro de la CPU y, por tanto, sumando el contenido de ese registro con el campo
de operando obtendremos la dirección efectiva. Hay varios direccionamientos
basados en esta técnica que reciben diferentes nombres dependiendo de cuál sea el
registro en el que radica la dirección tomada como referencia. Todos ellos podrían
catalogarse como direccionamientos relativos a un registro.
7. Direccionamiento por base y desplazamiento
Este modo de direccionamiento se fundamenta en la propiedad de localidad de
referencia mencionada anteriormente. La dirección que se toma como referencia de
la zona de memoria en la que están localizados los datos se deposita en un registro
denominado registro base y el campo de operando indica la diferencia entre el
registro base y la dirección del operando. Normalmente se toma como referencia
(registro base) la dirección de comienzo de la zona de memoria ocupada por un
programa. Por tanto, la dirección efectiva del operando se calculará sumando el
contenido del registro base con el campo de operando.
Este modo de direccionamiento se usa en ordenadores que pueden mantener en
memoria varios programas ya que, de esta forma, los diferentes registros base
pueden contener las direcciones de comienzo de cada uno de los programas. Esto es
muy útil porque facilita la relocalización de los programas: para situar el programa
en una zona de memoria diferente bastará con cambiar el contenido de su registro
base, no será necesario cambiar ninguno de los campos de operando.
8. Direccionamiento indexado
En este modo de direccionamiento, la dirección del operando también se calcula
sumando un registro de la CPU al campo de operando, este registro es un registro
específico para este uso llamado registro índice. En los ordenadores con
organización de registros generales, el registro índice puede ser cualquiera de los
registros de la CPU. En los ordenadores en que el contador de programa es
considerado como un registro de uso general (PDP-11 y VAX) el modo relativo es un
caso particular del direccionamiento indexado. A la cantidad que hay que sumar al
registro índice para conseguir la dirección del operando también se le llama
desplazamiento u offset.
Este modo de direccionamiento es especialmente útil para el direccionamiento de
vectores y matrices en bucles ya que, si se quieren direccionar elementos
consecutivos del vector o matriz, basta mantener en el desplazamiento la dirección
del primer elemento e ir incrementando el registro índice. También sirve para
acceder de forma relativa a elementos de vectores cercanos a uno dado, para ello, se
carga la dirección del elemento de referencia en el registro índice y después se accede
mediante direccionamiento indexado, con el desplazamiento adecuado, al anterior,
al siguiente, etc., esto mismo también es aplicable a pilas, en que, algunas veces, hay
que acceder a datos cercanos, por encima o por debajo, al dato señalado por algún
apuntador. Una consecuencia de todo esto es una modalidad de direccionamiento
indexado de que disponen algunos ordenadores, denominada autoindexación, que
hace que el registro índice sea incrementado o decrementado en el tamaño del
operando antes o después de acceder al mismo.
9. Direccionamiento autoincremental o postincremental
En este modo, la dirección del operando se encuentra en un registro y éste es
incrementado, después de acceder al operando, en el tamaño del mismo. Este modo
es útil para manejar vectores y matrices como se veía en el apartado anterior.
También se puede utilizar para extraer datos de pilas (que crezcan hacia direcciones
bajas) ya que, si el registro sobre el que se aplica este modo es el apuntador de pila,
después de la operación el apuntador señalará al siguiente elemento de la pila.
10. Direccionamiento autodecremental o predecremental
En este modo para obtener la dirección del operando hay que decrementar un
registro en el tamaño del operando; el nuevo contenido del registro después de
efectuar esa operación, es la dirección del operando. Este modo complementa al
anterior y se emplea para direccionar elementos de vectores y matrices en orden
descendente y también para introducir datos en las pilas ya que, si aplica este modo
sobre el apuntador de pila, conseguiremos que antes de efectuar el acceso el
apuntador señale al siguiente hueco libre de la pila.
Visión general de los modos de direccionamiento
Sistemas De Barra Internas Para El Procesamiento De Datos
El código de barras consiste en un sistema de codificación creados atreves de seres
de líneas y espacios paralelos de distinto grosor. Generalmente se utiliza como
sistema de control ya que facilita la actividad comercial del fabricante y del
distribuidor, por lo que no ofrece información al consumidor, si no datos de
operaciones aplicados a identificar productos.
El código de barras ha sido creado para identificar objetos y facilitar el ingreso de
información, eliminando la posibilidad de error en la captura. Algunas de sus
ventajas de código de barras sobre otros procedimientos de colección de datos son:
 Se imprime a bajos costos.
 Permite porcentajes muy bajos de error.
 Rapidez en la captura de datos.
 Los equipos de lectura e impresión de código de barras son flexibles y fáciles
de conectar e instalar.
Unidad de Control
La unidad de control se puede considerar el cerebro del computador. Como el
cerebro, está conectada al resto de los componentes del computador mediante las
señales de control (el sistema nervioso del computador). Con este símil no se
pretende humanizar los computadores, sino ilustrar que la unidad de control es
imprescindible para coordinar los diferentes elementos que tiene el computador y
hacer un buen uso de ellos.
Es muy importante que un computador tenga unidades funcionales muy eficientes y
rápidas, pero si no se coordinan y no se controlan correctamente, es imposible
aprovechar todas las potencialidades que se habían previsto en el diseño.
Consiguientemente, muchas veces, al implementar una unidad de control, se hacen
evidentes las relaciones que hay entre las diferentes unidades del computador y nos
damos cuenta de que hay que rediseñarlas, no para mejorar el funcionamiento
concreto de cada unidad, sino para mejorar el funcionamiento global del
computador.
La función básica de la unidad de control es la ejecución de las instrucciones, pero
su complejidad del diseño no se debe a la complejidad de estas tareas (que en general
son muy sencillas), sino a la sincronización que se debe hacer de ellas.
Aparte de ver las maneras más habituales de implementar una unidad de control,
analizaremos el comportamiento dinámico, que es clave en la eficiencia y la rapidez
de un computador.
Microoperaciones
Como ya sabemos, ejecutar un programa consiste en ejecutar una secuencia de
instrucciones, y cada instrucción se lleva a cabo mediante un ciclo de ejecución que
consta de las fases principales siguientes:
1) Lectura de la instrucción.
2) Lectura de los operandos fuente.
3) Ejecución de la instrucción y almacenamiento del operando de destino.
4) Comprobación de interrupciones.
Cada una de las operaciones que hacemos durante la ejecución de una instrucción la
denominamos microoperación, y estas microoperaciones son la base para diseñar la
unidad de control.
Tipos de microoperaciones
La función básica de las microoperaciones es la transferencia de información de un
lugar del computador a otro, generalmente de un registro a otro, tanto si son internos
al procesador como externos. Este proceso de transferencia puede implicar solo
mover la información, pero también transformarla. Identificamos tres tipos básicos
de microoperaciones:
1) Transferencia interna: operaciones de transferencia entre registros internos del
procesador.
2) Transferencia interna con transformación: operaciones aritméticas o lógicas
utilizando registros internos del procesador.
3) Transferencia externa: operaciones de transferencia entre registros internos del
procesador y registros externos al procesador o módulos externos al procesador
(como el bus del sistema o la memoria principal).
Ejemplos de transferencia
Una transferencia interna puede consistir en cargar el contenido del registro PC en
el registro MAR para obtener la siguiente instrucción que hemos de ejecutar; una
transferencia interna con transformación de información puede consistir en
incrementar un registro, llevando el contenido del registro a la ALU y recoger el
resultado para guardarlo en otro registro, y una transferencia externa puede consistir
en llevar el contenido de un registro de estado de un dispositivo de E/S a un registro
del procesador.
La nomenclatura que utilizaremos para denotar las microoperaciones es
la siguiente:

Registro de destino ← Registro de origen


Registro de destino ← Registro de origen <operación> Registro de origen / Valor
Ciclo de ejecución
Las microoperaciones sirven de guía para diseñar la unidad de control, pero antes de
entrar en el detalle de la implementación, analizaremos la secuencia de
microoperaciones que habitualmente se producen en cada fase del ciclo de ejecución
de las instrucciones.
Esta secuencia puede variar de una arquitectura a otra e, incluso, puede haber
microoperaciones que estén en fases diferentes. Eso depende en buena parte de las
características de la arquitectura: el número de buses, a qué buses tienen acceso los
diferentes registros, si hay unidades funcionales específicas como registros que se
puedan autoincrementar sin hacer uso de la ALU, la manera de acceder a los
elementos externos al procesador, etc.
A continuación, veremos las microoperaciones que se llevan a cabo en cada una de
las fases del ciclo de ejecución para una arquitectura genérica desde el punto de vista
funcional: cuáles se deben realizar y en qué orden.
Lectura de la instrucción
La fase de lectura de la instrucción consta básicamente de cuatro pasos:

1) MAR ← PC: se pone el contenido del registro PC en el registro MAR.


2) MBR ← Memoria: se lee la instrucción.
3) PC ← PC + Δ: se incrementa el PC tantas posiciones de memoria como se han
leído (Δ posiciones).
4) IR ← MBR: se carga la instrucción en el registro IR.
Hay que tener presente que, si la instrucción tiene un tamaño superior a una palabra
de memoria, este proceso se debe repetir tantas veces como sea necesario. Las
diferencias principales que encontramos entre diferentes máquinas en esta fase son
cómo y cuándo se incrementa el PC, ya que en algunas máquinas se utiliza la ALU y
en otras se puede utilizar un circuito incrementado específico para el PC. La
información almacenada en el registro IR se descodifica para identificar las
diferentes partes de la instrucción y determinar las operaciones necesarias que hay
que efectuar en las fases siguientes.
Lectura de los operandos fuente
El número de pasos que hay que hacer en esta fase depende del número de operandos
fuente y de los modos de direccionamiento utilizados en cada operando. Si hay más
de un operando, hay que repetir el proceso para cada uno de los operandos.
El modo de direccionamiento indica el lugar en el que está el dato:
 Si el dato está en la instrucción misma, no hay que hacer nada porque ya lo
tenemos en la misma instrucción.
 Si el dato está en un registro, no hay que hacer nada porque ya lo tenemos
disponible en un registro dentro del procesador.
 Si el dato está en la memoria, hay que llevarlo al registro MBR.

Ejemplo
Veamos ahora algún ejemplo de ello:
 Inmediato: el dato está en la misma instrucción y, por lo tanto, no hay
que hacer nada: IR (operando).
 Directo a registro: el dato está en un registro y, por lo tanto, no hay que
hacer nada.
 Relativo a registro índice:
- MAR ← IR (Dirección operando) + Contenido IR (registro índice)
- MBR ← Memoria: leemos el dato.

Ejecución de la instrucción y almacenamiento del operando de destino


El número de pasos que hay que realizar en esta fase depende del código de
operación de la instrucción y del modo de direccionamiento utilizado para
especificar el operando de destino. Se necesita, por lo tanto, una descodificación para
obtener esta información.
Para ejecutar algunas instrucciones es necesaria la ALU. Para operar con esta, hay
que tener disponibles al mismo tiempo todos los operandos que utiliza, pero la ALU
no dispone de elementos para almacenarlos; por lo tanto, se deben almacenar en
registros del procesador. Si no hay un bus diferente desde el que se pueda captar
cada uno de los operandos fuente y donde se pueda dejar el operando de destino, se
necesitan registros temporales (transparentes al programador) conectados
directamente a la ALU (entrada y salida de la ALU) y disponibles al mismo tiempo,
lo que implica el uso de microoperaciones adicionales para llevar los operandos a
estos registros temporales.
Si los operandos fuente se encuentran en registros disponibles para la ALU, la
microoperación para hacer la fase de ejecución es de la manera siguiente:
Registro de destino ← Registro de origen <operación> Registro de origen o Valor
Si el operando de destino no es un registro, hay que resolver antes el modo de
direccionamiento para almacenar el dato, de manera muy parecida a la lectura del
operando fuente. Veamos cómo se resolverían algunos de estos modos de
direccionamiento.
Directo a memoria:
 MBR ← <Resultado ejecución>
 MAR ← IR(Dirección operando)
 Memoria ← MBR

Relativo a registro base:

 MBR ← <Resultado ejecución>


 MAR ← Contenido IR(RB) + IR(Desplazamiento operando)
 Memoria ← MBR

Hay que tener presente que en muchas arquitecturas el operando de destino es el


mismo que uno de los operandos fuente y, por lo tanto, los cálculos consecuencia del
modo de direccionamiento ya están resueltos, es decir, ya se sabe dónde se guarda el
dato y no hay que repetirlo.
Comprobación de interrupciones
En esta fase, si no se ha producido ninguna petición de interrupción, no hay que
ejecutar ninguna microoperación y se continúa con la ejecución de la instrucción
siguiente; en el caso contrario, hay que hacer un cambio de contexto. Para hacer un
cambio de contexto hay que guardar el estado del procesador (generalmente en la
pila del sistema) y poner en el PC la dirección de la rutina que da servicio a esta
interrupción. Este proceso puede variar mucho de una máquina a otra. Aquí solo
presentamos la secuencia de microoperaciones para actualizar el PC.
 MBR ← PC: se pone el contenido del PC en el registro MBR.
 MAR ← Dirección de salvaguarda: se indica dónde se guarda el PC.
 Memoria ← MBR: se guarda el PC en la memoria.
 PC ← Dirección de la rutina: se posiciona el PC al inicio de la rutina de servicio
de la interrupción.
Conclusión.

La unidad de control es por lo tanto el verdadero cerebro en la sombra dentro de la


CPU, el que se encarga de gestionar que todas las piezas de la CPU reciban los datos
correctos y ejecuten las instrucciones correctas en cada momento.

Se encarga de dos de las tres etapas del ciclo de instrucción de la CPU como es la
captación de datos e instrucciones, así como la decodificación de las mismas. Aunque
el trabajo por el cual es más conocida es por la descodificación de las diferentes
instrucciones que ha de ejecutar el procesador.

También podría gustarte