domingo, 14 de junio de 2015

Instrucción de Maquina y Código de Operación

Una instrucción se puede ver como una cadena de bits que se agrupan en campos con tamaños diferentes.
Las instrucciones que es capaz de realizar la UCP se denominan instrucciones máquina.
El lenguaje que se utiliza para su codificación es el lenguaje máquina y, de acuerdo con su función, se clasifican en:
-       Instrucciones de transferencia de datos. Transfieren datos
-       Instrucciones aritméticas, lógicas y de comparación. Operaciones
-       Instrucciones de transferencia de control. Secuencia de ejecución
-       Instrucciones de gobierno. Controlan estado CPU
Tipos
·         Instrucciones de transferencia de datos: en este tipo de instrucciones, se transfieren datos desde una localización a otra. Los pasos que se siguen para realizarlo son:
1.       Determinación de las direcciones de origen y destino de memoria.
2.       Realización de la transformación de memoria virtual a memoria real.
3.       Comprobación de la caché.
4.       Inicio del proceso de lectura/escritura en la memoria.
·         Instrucciones aritméticas: pueden implicar transferencia de datos antes y/o después. Realizan operaciones aritméticas de las que se encarga la ALU. Se pueden clasificar en de 1 operando (valor absoluto, negación) y 2 operandos (suma, resta).
·         Instrucciones lógicas: al igual que las aritméticas, la ALU se encarga de realizar estas operaciones, que en este caso son de tipo lógico.
·         Instrucciones de conversión: similares a las aritméticas y lógicas. Pueden implicar lógica especial para realizar la conversión.
·         Instrucciones de transferencia de control: actualizan el contador de programa (PC). Administran las llamadas/retornos a las subrutinas, el paso de parámetros y el enlazado.
·         Instrucciones de E/S (entrada/salida): administran los comandos de entrada/salida. Si hay un mapa de memoria de entrada/salida, determina la dirección de este mapa.
Repertorio
Las instrucciones de un lenguaje de programación se pueden clasificar en 4 grupos:
·         Instrucciones de transferencias de datos: Son aquellas de entrada o lectura y de salida o escritura. En el caso de las instrucciones de entrada o lectura, se lleva el dato de entrada o lectura desde la unidad de entrada a la memoria. Si por el contrario es una instrucción de salida o escritura, se lleva el dato de la memoria a la unidad de salida.
·         Instrucciones de tratamiento: Se trata de las instrucciones aritmético-lógicas y las de desplazamientos. Así como suma de datos o comparaciones.
·         Instrucciones de flujo de control o de bifurcación y salto: Las instrucciones de flujo de control son aquellas instrucciones que alteran el orden secuencial de la ejecución de un programa. También hay instrucciones que posibilitan la interrupción de la ejecución o saltar a ejecutar otro programa. Cuando termina cualquiera de estas instrucciones, el programa continúa ejecutándose desde el punto en el que se interrumpió.
·         Otras instrucciones: Por ejemplo, la detención del funcionamiento del computador a la espera de una acción del usuario.

http://es.wikipedia.org/wiki/Instrucci%C3%B3n_inform%C3%A1tica

Una segunda clasificación de las instrucciones máquina hace referencia a su formato y al número de operandos que intervienen en ellas.
Instrucciones:
a) Código de operación (CO), que indica qué operación se debe realizar por el procesador.
b) Operandos, relativos a los datos, que son necesarios para realizar su misión.
·         En función de esto tenemos:
·         Instrucciones de tres operandos
·         Instrucciones de dos operandos
·         Instrucciones de un solo operando
·         Instrucciones sin operandos


Instrucciones de tres operandos
Constan en primer lugar de código de operación al que siguen tres operandos, de los cuales, los dos primeros son las direcciones de los argumentos que hay que operar y el tercero es la dirección donde se depositará el resultado.
Este formato se adoptó en algunos de los primeros computadores, en los que la capacidad de la memoria era pequeña y por tanto bastaba con pocos bits para los campos de dirección. De no ser así, la longitud del formato resulta ser excesivamente grande.



Instrucciones de dos operandos
Contienen el código de operación y dos operandos, de los que uno de ellos actúa, además, como receptor del resultado de la operación.
En las máquinas que utilizan instrucciones con dos direcciones el resultado puede depositarse en el lugar que inicialmente ocupaba uno de los operandos.



Instrucciones de un operando
Se utilizan generalmente en máquinas cuya arquitectura funciona con filosofía de acumulador. El acumulador de la UAL contiene previamente el primer argumento de la operación, el segundo es el contenido en la propia instrucción, y después de ser operados ambos por el circuito operacional, el resultado queda depositado de nuevo en el acumulador.



Instrucciones sin operandos
Una pila está formada por datos almacenados en orden consecutivo en la memoria, existiendo un registro especial, denominado puntero de pila, que nos indica la dirección del último dato introducido en ella.

Cuando se saca un dato de la misma, el puntero de la pila decrece apuntando al dato que está a continuación en la pila hacia lo que llamaremos fondo de la misma y que será aquel dato que se introdujo en primer lugar.

http://saia.psm.edu.ve/moodle/pluginfile.php/223209/mod_resource/content/1/organizacion_del_computador.pdf


Código de Operación


Es la porción de una instrucción de lenguaje de máquina que especifica la operación a ser realizada. Su especificación y formato serán determinados por la arquitectura del conjunto de instrucciones (ISA) del componente de hardware de computador - normalmente un CPU, pero posiblemente una unidad más especializada. Una instrucción completa de lenguaje de máquina contiene un opcode y, opcionalmente, la especificación de uno o más operandos - sobre los que la operación debe actuar. Algunas operaciones tienen operandos implícitos, o de hecho ninguno. Algunas ISAs tiene instrucciones con campos definidos para los opcodes y operandos, mientras que otras (ej. la arquitectura Intel x86) tienen una estructura más complicada y de propósito específico. Los operandos sobre los cuales los opcodes aplican pueden, dependiendo de la arquitectura del CPU, consistir de registros, valores en memoria, valores almacenados en la pila, puertos de I/O, bus, etc. Las operaciones que un opcode puede especificar pueden incluir aritmética, copia de datos, operaciones lógicas, y control del programa.




Una maquina con instrucciones de 16 bits, que realiza operaciones hasta con 3 operandos y que éstos siempre están en alguno de sus 16 registros. Esto quiere decir que se necesitan 4bits por operando, y que si puede haber hasta 3 operandos, se necesitan 12 bits para ellos. Esto nos deja con 4 bits para códigos, lo que significa que puede haber hasta 16 operaciones distintas con 3 operandos.

Códigos de Operación con Extensión


15 instrucciones de 3 operaciones: Se comienza con el formato de las instrucciones de 3 operandos de 4 bits. Para representar 15 códigos de operación se requieren 4 bits, y los 12 bits restantes se utilizan para los tres operandos de 4 bits.
Los códigos de operación serán el 0000, 0001, …., hasta el 1110. Y sobran una combinación de 165 que ofrecen los 4 bits.
14 instrucciones de 2 operaciones: La combinación que nos sobraba del formato anterior (la 1111) se utiliza ahora para indicar un nuevo formato de instrucción. Es decir, las instrucciones cuyos 4 bits de mayor peso sean 1111 tendrán un código de operación extendido con los 4 bits siguientes. En este nuevo formato, el código de operación ocupa 8 bits, donde los 4 de mayor peso están siempre a 1. Los ocho bits restantes se utilizan para indicar los dos operandos de este formato, y sobran 2 combinaciones 1111 1110 y 1111 1111.
31 instrucciones de 1 operando: Si los 4 bits de mayor peso a 1 indican que el código de operación se extiende o amplía con otros 4, cuando los 7 bits de mayor peso son 1111 111, indica que el formato de tales instrucciones está formando por un código de operación de 12 bits (los de mayor peso). Los 4 bits restantes se utilizan como operando.
Para este formato se dispone ahora de 5 bits para expresar 31 nuevas instrucciones, las que tienen los códigos desde 1111 1110 0000 hasta 1111 1111 1110. Ahora sobra una combinación de las disponibles.
16 instrucciones sin operandos explícitos: Ahora encontramos que los 12 bits de mayor peso a 1 indican un nuevo formato de instrucción con un código de operación de 16 bits.
Los 4 bits de la ampliación son los que ofrecen los últimos 16 códigos de operación para las instrucciones sin operandos explícitos.

Cuando se planifican formatos de instrucciones con códigos de operación con extensión para cada formato se debe reservar alguna de las combinaciones posibles para expresar una extensión en el código de operación.

http://saia.psm.edu.ve/moodle/pluginfile.php/327780/mod_resource/content/1/Visi%C3%B3n%20del%20programador%20Maquina.pdf

Con el uso de expansión de códigos de operación se puede minimizar la longitud promedio de las instrucciones codificando cada instrucción de forma que el número de bits requerido sea el mínimo.
Por otro lado se puede hacer que todas las instrucciones tengan la misma longitud, asignando los códigos de operación más cortos a las instrucciones que necesiten más bits para especificar otras cosas.

Se puede también minimizar el tamaño promedio de las instrucciones escogiendo códigos de operación más cortos para las instrucciones más comunes y más largos para las menos usadas.

http://ldc.usb.ve/~rgonzalez/organizacion/laminas/Laminas_FormatodeInstrucciones.pdf

Tipos de Modos de Direccionamiento


Direccionamiento Implícito.
No necesita recibir la dirección del operando, esta se encuentra implícita en la operación.

Ej.:
MUL BX

Ventaja:
Acceso rápido.

Desventaja:
Conocer perfectamente la operación.

Direccionamiento Inmediato.
Recibe el operando y no la dirección de este.

Ej.:
MOV AX, 4

Ventaja: no requiere memoria extra para traer el operando.

Desventaja: Solo puede utilizar constantes.

Direccionamiento Directo.
Recibe la dirección en memoria del operando.

Ej.:
MOV AX, [10]

Ventaja: Acceso rápido para variables globales.

Desventajas: La instrucción siempre accesará la misma localidad de memoria.
        Solo puede cambiar el valor del operando pero no su dirección.

Direccionamiento Indirecto.
Recibe la dirección de la palabra en memoria  (apuntador) que contiene la dirección del operando.

Ej.:
MOV AX, [[10]]

Ventaja: La dirección en memoria puede apuntar a distintas localidades de memoria.

Desventaja: La ejecución de la instrucción requiere de dos referencias a memoria para traer el operando (una para obtener su dirección y la otra para obtener su valor).

Direccionamiento de Registro (directo).
Similar al direccionamiento directo.
Recibe un registro en lugar de una dirección en memoria.

Ej.:
MOV AX, BX

Ventaja: No necesita referencias a memoria.

Desventaja: Número limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados.

Este es el modo de direccionamiento más común.

Direccionamiento de Registro Indirecto.
Similar al direccionamiento indirecto.
Recibe un registro que contiene la dirección (apuntador) en memoria del operando.

Ej.:
MOV AX, [BX]

Ventaja: La dirección en el registro puede apuntar a distintas localidades de memoria (misma indirecta).
Utiliza una referencia menos a memoria en comparación con el direccionamiento indirecto.

Utilizado para apuntadores de uso frecuente.

Direccionamiento de Desplazamiento.
Combina los modos de direccionamiento directo y de registro indirecto.

Se requiere que la dirección del operando sea calculada en base a una dirección fija más otra dirección de desplazamiento.
                               Dirección = Fija + Desplazamiento.

Tanto la dirección fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta.

La dirección fija puede estar ímplicita en la instrucción.
Relativo.
Indexado.
Base.

·         Relativo.
La dirección fija es el registro PC y se encuentra implícita en la instrucción.
Ej.:
MOVPC AX, BX (BX = 5, PC = 10)

·         Indexado.
La dirección fija referencia a la memoria.
El desplazamiento contiene un número positivo para calcular la dirección del operando.
Ventaja: Eficiente para operaciones ciclicas.
Desventaja: dos accesos a memoria.
Dos tipos principales:
-       Preindexado.
-       Postindexado.
Preindexado (indexamiento previo)
La dirección fija es sumada al desplazamiento.
El resultado es usado como una dirección en memoria donde se encuentra la dirección del operando.
Ej.:
MOV AX, [BX,CX]

Postindexado (indexamiento posterior)
La dirección fija contiene la dirección en memoria que a su vez contiene la dirección  a ser utilizada para obtener el operando.
A la dirección obtenida a partir de la dirección fija se le suma el desplazamiento para obtener la dirección del operando.
Ej.:
MOV AX, [BX]CX
________________________________________________________________________________
Direccionamiento Inmediato
En la instrucción está incluido directamente el operando.
En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valor constante.
Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro.


ejemplo:MOV A,#17H
Direccionamiento Directo
El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.
En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.


Ejemplo: MOV A,17H
Direccionamiento Indirecto
El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.


Ejemplo: MOV A,@17H
Direccionamiento Absoluto
El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción. Y no se cancela.
Direccionamiento  De registro
Sirve para especificar operandos que están en registros. En este modo, los operandos están en registros que residen dentro de la CPU


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.
En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva se almacena en la memoria. 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 trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho más complejo que otros tipos estudiados más arriba.
Relativo a un registro base
Consiste, al igual que el indirecto a través de registro, en calcular la dirección efectiva (EA, effective address) como la suma del contenido del registro base y un cierto desplazamiento (offset) que siempre será positivo. Esta técnica permite códigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria. Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parámetros almacenados en la pila).
Relativo a un registro índice
Es similar al anterior, excepto que es el contenido del registro índice el que indica el desplazamiento que se produce a partir de una dirección de memoria que se pasa también como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del contenido del registro índice y una dirección de memoria:
Indexado respecto a una base
Se trata de una combinación de los dos anteriores y consiste en calcular la dirección efectiva como:
Relativo al contador de programa
Consiste en dirección una posición de memoria usando como registro base al contador de programa (PC), el funcionamiento es análogo al direccionamiento respecto a registro base con la salvedad de que, en este caso, el offset puede ser también negativo.
Indexado con autoincremento/autodecremento
Es un modo de direccionamiento análogo al indexado, explicado anteriormente.
La única diferencia es que permite un incremento o decremento de la dirección final o el registro índice según los siguientes casos:
-> Indexado con autopreincremento: Incrementa el registro índice primero (se incrementa un valor, según el tamaño del objeto direccionado) y luego calcula la EA al igual que el direccionamiento indexado.
-> Indexado con autoposincremento: Calcula la dirección efectiva y después incrementa esta.
-> Indexado con autopredecremento: Decrementa el registro índice y después calcula la dirección efectiva.
-> Indexado con autoposdecremento: Calcula la dirección efectica y después decrementa esta.
Instrucción de salto con direccionamiento absoluto
Consiste en cargar en el PC el valor que se especifica, p.e:
jmp 0xAB ----> Carga 0xAB en PC
Instrucción de salto con direccionamiento relativo
Es parecida a la especificada anteriormente la diferencia es que el salto es relativo al PC, pongamos un ejemplo:
Supongamos que PC vale = 0x0A, si nosotros interpretamos la instrucción jr +03, saltaremos tres posiciones posteriores a PC (también podría ser -03 y serían posiciones anteriores). Pero, ¡cuidado! si esa instrucción estaba en la posición 0x0A la dirección de PC a incrementar será la inmediatamente posterior (ya que PC se incrementa automáticamente después de leer la instrucción), por lo que quedaría:
PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedaría como 0x0E.

http://es.wikipedia.org/wiki/Modos_de_direccionamiento
________________________________________________________________________________

1) DIRECCIONAMIENTO INMEDIATO

a) El operando está presente en la propia instrucción, por lo tanto, esta opera con un valor constante.

b) El direccionamiento de una sola palabra: MAS RAPIDO >> el operando se encuentra ya en IR al fin de la fase de búsqueda. 2 palabras: lectura de mem adicional.

-VENTAJA: No referencia a memoria.

-DESVENTAJA: Operandos limitados por la instr.

2) DIRECCIONAMIENTO DIRECTO

a) La instrucción contiene la dirección real del operando.

b) dos tipos:

2.1) Direccionamiento absoluto:

a) La instrucción contiene la dirección de memoria donde se encuentra el objeto, q se halla en una posición de mem principal.

b) Rango de posiciones limitado por CO.

c) Formato de 2 palabras >> MAYOR CAPACIDAD DE DIRECCIONAMIENTO >> lectura adicional.

2.2) Direccionamiento mediante registro

a) Operando almacenado en un registro de la CPU. La instrucción indica de q registro se trata.

b) Registros limitados.

c) CARACTERISTICAS:

1.- Lectura MAS RAPIDA q en memoria >> ninguna lectura adicional.

2.- Solo necesita CD pequeño.

3.- Rango operando = Rango registro >> LIMITA espacio de direcciones.

-VENTAJA: Solo una referencia a memoria sin cálculos previos.

-DESVENTAJA: Espacio de direcciones reducido.

3) DIRECCIONAMIENTO RELATIVO A REGISTRO

a)La instrucción NO contiene la dirección del operando >> debe ser calculada.

-La instr contiene un DESPLAZAMIENTO q hay q añadir a la dirección marcada por un puntero para obtener la dirección final del operando>> RETRASO ADICIONAL.

-El puntero suele estar en un registro.

b) Permite acceder a un conjunto de direcciones de memoria a partir de una considerada como referencia.>> en el CD emplea un nº de bits pequeño

c) Varios tipos:

3.1) Direccionamiento relativo al registro contador del programa (PC)

a) puntero : PC; almacena la dirección de la siguiente instr.

b) Para direccionar instr cercanas a la instr en curso, para bucles...

3.2) Direccionamiento relativo al registro base

a) puntero: REGISTRO BASE.

b) la instr contiene la identificación del registro y el desplazamiento

c) Conveniente para zonas de datos (como listas).

3.3) Direccionamiento relativo a pila (LIFO)

a) puntero : SP (stack pointer); apunta a la dirección de mem donde se encuentra la cima de la pila.

b) DESPL. + valor SP = DIRECCIÓN DEL OBJETO

c) Si no existe C. de despl. >> solo se trabaja con la cima de la pila.

d) Permite instrucciones muy compactas.

-VENTAJA : flexibilidad.

-DESVENTAJA: complejidad.


4) DIRECCIONAMIENTO INDEXADO

a) Un registro índice contiene la dirección de referencia y actúa de puntero.

b) Similar al relativo a registro base; pero el valor del reg indice se modifica con frecuencia en la ejecución del programa.

c) Para:

-operaciones iterativas

- recorrer estructuras de datos (tablas, vectores...).Permite realizar incrementos y decrementos de una cierta magnitud >> AUTO-INDEXADO

*PREAUTOINCREMENTO y PREAUTODECREMENTO:

1.-el reg indice se incrementa (o decrementa)

2.- se obtiene la dirección = REG INDICE + DESPL..

*POSTAUTOINCREMENTO :

1.-dirección = REG INDICE +DESPL..

2.- el reg indice se incrementa

-VENTAJA : flexibilidad.

-DESVENTAJA: complejidad.

5) DIRECCIONAMIENTO INDIRECTO

a) El CD referencia la dirección de una palabra, q a su vez contiene la dirección completa del operando.

b) Para aplicaciones q utilizan datos situados en posiciones distantes en memoria

-VENTAJAS: 1) espacio de dirección grande; para N bits >> 2N espacio de direcc.

2) se puede combinar con los direccionamientos relativos

-DESVENTAJA: referencia extra a memoria

c) Variante : Direccionamiento indirecto con registro

-En el CD, hace referencia a un registro q contiene la dirección completa del operando.

-Emplea una referencia a memoria menos

Modos de Direccionamiento


Modos  de Direccionamiento

Un modo de direccionamiento de una instrucción es el modo que se utiliza en la misma para indicar la posición de memoria en que está el dato o datos intervinientes en la instrucción.
·         Los programas utilizan normalmente varios modos de direccionamiento.
·         Algunas arquitecturas no permiten la utilización de determinados modos de direccionamiento.
·         Cada modo puede combinarse con los demás, de manera que el número de modos de direccionamiento disponible en teoría es limitado.

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.



Un modo de direccionamiento permite determinar un operando, o la ubicación de un operando en una instrucción. Estos operandos pueden residir en diversas partes:

1.-La propia instrucción

2.-Memoria principal

3.-Registros internos de la CPU

-Los programas utilizan varios MD motivados por:

1.- Ahorro de espacio

2.- Código reubicable: se puede almacenar el programa en diversas zonas de memoria sin q afecte a la ejecución del código

3.-Estructuras de datos.


Cada instrucción debe contener la información que necesita el CPU para su ejecución:
·         Código de operación: especifica la operación a realizar (suma, resta, E/S, etc.) La operación se indica mediante un código binario.
·         Referencia a operandos fuente (dirección): la operación puede involucrar uno o más operandos fuentes, es decir, operandos que son entradas para la instrucción.
·         Referencia al operando resultado (dirección): la operación puede producir un resultado.
·         Referencia a la siguiente instrucción: le indica al CPU de donde va a captar la siguiente instrucción tras completarse la ejecución de la instrucción actual. La siguiente instrucción a captar está en memoria principal.




Unidad de Control(UC)

Es el centro nervioso de la computadora ya que desde ella se controlan y gobiernan todas las operaciones.
La misión fundamental de esta unidad es recoger las instrucciones que componen un programa, interpretarlas y controlar su ejecución.
Otra Definición:
Ejecución de una instrucción = conjunto de ciclos:
Captación (fetch): obtener instrucción de la memoria.
Indirecto: obtener operandos.
Ejecución.
Interrupción: instrucciones que requieren atención urgente.
Ciclos compuestos de microoperaciones.
Utiliza los registros de Control y Estado.
También se puede decir:
Dispositivo más importante del PC (es su cerebro): Dirige y Controla el funcionamiento del resto de componentes, coordinando sus actividades para el correcto desarrollo del programa que se esté ejecutando. La UC contiene un reloj (generador de pulsos) que controla la velocidad a la que se realizan las operaciones. La frecuencia del reloj se mide en Megahercios (MHz) Determina la velocidad del ordenador.
La Unidad de Control es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa. Los pasos para ejecutar una instrucción cualquiera son los siguientes:
1.       Ir a la memoria y extraer el código de la siguiente instrucción (que estará en la siguiente celda de memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional (to fetch significa traer, ir por).
2.       Decodificar la instrucción recién leída (determinar de que instrucción se trata).
3.       Ejecutar la instrucción.
4.       Prepararse para leer la siguiente casilla de memoria (que contendrá la siguiente instrucción), y volver al paso 1 para continuar.
La unidad de control ejecutara varias veces este ciclo de cuatro “instrucciones alambradas” a una enorme velocidad.
Se llama así a estas instrucciones porque no residen en memoria, ni fueron escritas por ningún programador, sino que la maquina las ejecuta directamente por medios electrónicos, y lo hará mientras esté funcionando (mientras este encendida) en una computadora es a razón de cientos de miles (o incluso millones) de veces por segundo.

Se ha definido ya el modelo de von Neumann. Ahora se pondrá a funcionar sobre nuestro pequeño programa de ejemplo (que ya está cargado en la memoria).