unidad de control, alu

36
2.1.2 Unidad Aritmética y Lógica (ALU) La Unidad Aritmética y Lógica, ALU tiene dos modos de operación: el Modo Aritmético y el Modo Lógico. En el Modo Aritmético ejecuta operaciones aritméticas tales como sumas y restas. Estas operaciones pueden ser extendidas para incluir multiplicación, división y exponenciación. En el Modo Lógico ejecuta operaciones lógicas tales como AND, OR o XOR (OR exclusivo). Estas operaciones permiten que la ALU controle el flujo y manipulación del contenido de los registros así como otras operaciones lógicas. En la Figura 2.5 se muestra la estructura de una ALU.. En dicha figura podemos ver sus elementos constitutivos básicos. La ALU se comunica con el exterior (en nuestro caso con el resto de los elementos que compondrán el CPU), mediante un bus denominado bus de datos, compuesto por nt líneas.

Upload: ricardo-de-la-parra

Post on 03-Dec-2015

28 views

Category:

Documents


1 download

DESCRIPTION

Componentes de la CPU

TRANSCRIPT

2.1.2 Unidad Aritmética y Lógica (ALU)

La Unidad Aritmética y Lógica, ALU tiene dos modos de operación: el Modo

Aritmético y el Modo Lógico. En el Modo Aritmético ejecuta operaciones aritméticas

tales como sumas y restas. Estas operaciones pueden ser extendidas para incluir

multiplicación, división y exponenciación. En el Modo Lógico ejecuta operaciones

lógicas tales como AND, OR o XOR (OR exclusivo). Estas operaciones permiten que

la ALU controle el flujo y manipulación del contenido de los registros así como

otras operaciones lógicas. En la Figura 2.5 se muestra la estructura de una ALU..

En dicha figura podemos ver sus elementos constitutivos básicos. La ALU

se comunica con el exterior (en nuestro caso con el resto de los elementos que

compondrán el CPU), mediante un bus denominado bus de datos, compuesto por nt

líneas.

Figura 2. 5 Estructura de una ALU básica.

Circuito combinacional.

El circuito combinacional es el que se encarga de realizar propiamente las

operaciones con los datos. En la estructura de la Figura 2.5, este circuito presenta dos

entradas, procedentes de los registros REN1 y REN2. El contenido de estos registros estará

siempre presente en las entradas del circuito combinacional. Este circuito tiene unas

entradas de órdenes (a la derecha en la Figura 2.5), para indicarle el tipo de operación que

se desea realizar con los datos de entrada.

A continuación enumeramos las órdenes más típicas:

SUM: Cuando se activa, el circuito combinacional presenta a su salida la suma

aritmética de las cantidades presentes en sus entradas.

RES: Cuando se activa, el circuito combinacional realiza la diferencia aritmética de

las cantidades presentes en sus entradas..

MUL: Cuando se activa, el circuito combinacional realiza la multiplicación aritmética

de las cantidades presentes a sus entradas.

INC: Cuando se activa, el circuito combinacional incrementa en una unidad el

contenido de una de sus entradas (predeterminada).

DEC: Cuando se activa, el circuito combinacional decrementa en una cantidad el

contenido de una de sus dos entradas (predeterminada).

NOT: Cuando se activa, el circuito combinacional invierte los bits del número binario

presente en una de sus dos entradas.

AND: Cuando se activa, el circuito combinacional presenta a su salida el producto

lógico de los números binarios presentes en sus entradas.

OR: Cuando se activa, el circuito combinacional presenta a su salida la suma lógica

de los números binarios presentes en sus entradas.

ORX: Cuando se activa, el circuito combinacional realiza la suma lógica exclusiva de

sus dos entradas, presentando el resultado a la salida.

PAS1: Cuando se activa, el circuito combinacional presenta a su salida el contenido

del registro REN1.

PAS2: Cuando se activa, el circuito combinacional presenta a su salida el contenido

del registro REN2.

Lógicamente, sólo una de esas órdenes a la ALU puede estar activa en cada

instante.

Registro de entrada.

En la Figura 2.5, REN1 y REN2 se encarga de almacenar los dos operandos de entrada al

circuito combinacional. El registro REN1 posee una orden de escritura, etiquetada con

ERE1, que sirve para escribir en él lo que exista en el bus de datos. El registro REN2 posee,

por el contrario, dos órdenes de escritura, etiquetadas con ERE2, para escribir el

contenido del bus de datos, y ERA2, para realizar una transferencia entre el registro

acumulador y REN2.

Registro acumulador

El registro acumulador sirve como registro de almacenamiento de los resultados de

las operaciones de la ALU. Su conexión al registro de entrada REN2 será de utilidad en

operaciones que impliquen encadenamiento de resultados. Presenta una orden de

escritura, etiqueta con ERAC, y una orden de lectura, etiquetada con LRAC, que sirve para

comunicar su contenido al registro REN2, o para depositar su contenido en el bus de

datos.

Registro de estado.

Este registro es un elemento de gran importancia en el funcionamiento interno de

la computadora, ya que gracias a este elemento las computadoras poseen esa capacidad

de “decisión inteligente”.

Este registro, aunque se considerará como una unidad, está formado por un

conjunto de flip-flops (biestables), denominado indicadores o flags, accesibles por

separado. Cada uno de estos flip-flops señala una determinada condición sobre el último

valor que ha sido escrito en el acumulador.

Operaciones en la ALU

La operación de una ALU se entiende mejor si es separada en sus partes aritmética

y lógica. Procederemos primero explicando la operación de un circuito aritmético típico

que realiza ocho micro-operaciones aritméticas. Un segundo circuito se mostrará para

implementar cuatro micro-operaciones lógicas. Finalmente, los dos circuitos se

combinarán para formar una unidad aritmética lógica.

Circuito aritmético.

El sumador paralelo binario, es un circuito aritmético que suma dos números

binarios. Las micro-operaciones aritméticas adicionales pueden obtenerse aumentado el

sumador paralelo con ciertos circuitos lógicos de selección. La Figura 2.6 muestra las

micro-operaciones aritméticas obtenidas cuando un conjunto de entradas a un sumador

paralelo se controla externamente. La suma aritmética simple se logra cuando un

conjunto de entradas recibe un número binario A, el otro conjunto de entradas recibe un

número B, y el acarreo de entrada C1 se mantiene en 0. Este caso se muestra en la Figura

2.6 (a), en donde la salida del circuito designado por F produce la micro-operación add

(suma) F = A + B. Haciendo el acarreo de entrada C1 = 1 como en la Figura 2.6 (b), es

posible sumar 1 a la suma para producir una salida F = A + B + 1.

Pueden obtenerse diferentes micro-operaciones aritméticas controlando los datos

que entran a las entradas en B como se identifica en los otros seis diagramas de la Figura

2.6. Complementando todos los bits de la entrada B se obtiene una micro-operación F = A

+ B, que es la suma de A más el complemento a 1 de B. Sumando 1 a esta suma y

haciendo el acarreo de entrada C1 = 1, obtenemos F = A + B + 1, el cual produce la suma

de A más el complemento a 2 de B. Esto es equivalente a la operación resta F = A - B.

Seguidamente, consideremos forzar todos los 0 en los terminales de B del sumador

paralelo. Puesto que B es ahora 0, la suma producida en la salida se vuelve F = A, que se

transfiere la entrada A en la salida F. Sumando 1 a través del acarreo de entrada C 1 como

se muestra en la Figura 2.6 (f), obtenemos F = A + 1, que es la micro-operación

incremento. La condición ilustrada en la Figura 2.6 (g) inserta todos los 1 en los terminales

B del sumador paralelo. Un número binario con todos los 1 representa el complemento a

2 de la unidad. Considere, por ejemplo, un sumador paralelo de 4 bits. El complemento a

2 del número binario 0001 es 1111. Sumando un número A al complemento a 2 de la

unidad produce una salida F = A + el complemento a 2 de 1 = A - 1, que es la micro-

operación de decremento.

Una etapa de un circuito aritmético que proporciona las micro-operaciones

enumeradas antes se muestra en la Figura 2.7. El circuito sumador complemento

representa un estado del sumador paralelo. Las dos líneas de selección S1 y S0 controlan la

ruta de datos entre el terminal B y una entrada del circuito sumador completo. Cuando

S1S0 = 00, la entrada controlada del sumador completo es siempre 0. Cuando S1S0 = 01, la

entrada recibe el valor de Bi. Cuando S1S0= 10, la entrada recibe el valor complemento de

Bi. Cuando S1S0= 11, la entrada es siempre igual a 1. Estas condiciones pueden verificarse

derivando la tabla de verdad de la lógica de selección. No obstante que las dos variables

de selección S1 y S0 controlan las rutas de entrada en el terminal B de acuerdo a las cuatro

condiciones ilustradas en la Figura 2.6.

Figura 2.6 Micro-operaciones aritméticas que se obtienen controlando un conjunto de entradas de un sumador paralelo.

Precisamente como en un sumador paralelo, el circuito aritmético puede partirse

en etapas, una para cada par de bits de los operandos de entrada. Para los operandos con

n bits, el circuito aritmético consta de n etapas idénticas. La Figura 2.8 muestra el

diagrama de bloques de un circuito aritméticos partido en n etapas.

Cada una de las etapas es idéntica al circuito que se muestra en la Figura 2.7. Los

bits de las entradas A y B son designados por los números subíndices de derecha a

izquierda con el subíndice 1 denotando el bit de orden inferior. Los acarreos son

conectados en una cadena a través de las etapas. Las líneas de selección de función S 1, S0

y C1 seleccionan las micro-operaciones aritméticas de F generan la función de salida.

Note que C1 es e l acarreo de entrada de la primera etapa y su efecto es sumar 1 al

par de orden inferior de bits S1 y S0 controlan las entradas a los terminales de B en cada

una de las etapas.

Las micro-operaciones aritméticas implementadas en el circuito aritmético se

enumeran en la Tabla 2.1.

Función de selección

S1 S2 C1 Salida Corresponde a la Figura 1

Diagrama de Función

0 0 0 F = A (e) Transfiere A

0 0 1 F = A + 1 (f) Incremente A

Figura 2.7 Una etapa de un circuito

0 1 0 F = A + B (a) Sume

0 1 1 F = A + B + 1 (b) Suma con acarreo

1 0 0 F = A + B’ (c) A más el complemento de 1 de B

1 0 1 F = A + B´ + 1 (d) Resta

1 1 0 F = A - 1 (g) Decremente A

1 1 1 F = A (h) Transfiere A

Las ocho operaciones enumeradas en la tabla siguen directamente los diagramas de

función que se ilustran en la Figura 2.6.

Tabla 2.1 Funciones para el circuito aritmético.

Circuito Lógico

Las micro-operaciones lógicas manipulan los bits de los operandos tratando cada

uno de los bits como una variante binaria. Existen 16 micro-operaciones lógicas que

pueden realizarse con las dos variables binarias. Las 16 operaciones lógicas pueden ser

generadas en un circuito y cada operación puede seleccionarse por medio de cuatro

variables de selección. Sin embargo, hay esencialmente cuatro operaciones lógicas básicas

a partir de las cuales todas las otras se pueden derivar por medio del álgebra Booleana.

Ellas son la AND, OR, XOR (OR exclusivo), y la micro-operación complemento.

La Figura 2.9 muestra una etapa de un circuito lógico. Consta de cuatro compuertas

y un multiplexor. Cada una de las cuatro operaciones lógicas AND, OR, XOR, y el

complemento se generan con una compuerta que realiza la lógica requerida. Las salidas

de las compuertas son aplicadas a un multiplexor con dos variables de selección S1 y S0.

Estas variables de selección escogen una de las entradas del multiplexor y dirigen su valor

a la salida. El diagrama muestra una etapa típica con subíndice i. Para un circuito lógico

con n bits, el diagrama de la Figura 2.9 debe ser repetido n veces para i = 1, 2, 3, …, n. Las

variables de selección deben ser aplicadas a todas las etapas. La Tabla 2.2 enumera la

micro-operación lógica obtenida para cada combinación de las variables de selección.

Figura 2.8 Circuito aritmético partido en n

S1 S0 Salida Micro-operación

0 0 F = A B AND

0 1 F = A B OR

1 0 F = A B XOR

1 1 F = A’ Complemento

El circuito lógico puede combinarse con el circuito aritmético para producir una

unidad aritmética lógica comúnmente denominada ALU. Las variables de selección S1 y S0

pueden ser comunes a ambos circuitos siempre que utilicemos una tercera variable de

selección para diferenciar entre los dos. La configuración de una etapa ALU se ilustra en la

Figura 2.10. Las salidas de los circuitos aritmético y lógico en cada una de las etapas son

Figura 2.9 Una etapa de un circuito

Tabla 2.2 Funciones

aplicadas a un multiplexor con variable de selección S2. Cuando S2 = 0, la salida aritmética

es seleccionada, pero cuando S2 = 1, la salida lógica es seleccionada. Note que el diagrama

muestra justamente una etapa típica del ALU. El circuito de la Figura 2.10 puede repetirse

n veces para una ALU de n bits . El acarreo de salida Ci+1 de una etapa dada debe

conectarse al acarreo de entrada Ci de la etapa siguiente de orden superior. El acarreo de

entrada en la primera etapa se designa por C1 y proporciona una variable de selección

para las micro-operaciones aritméticas. La entrada C1 no tiene efecto en las micro-

operaciones lógicas.

Una ALU con etapas individuales como se define en la Figura 2.10 proporcionará 8

micro-operaciones aritméticas y 4 lógicas, para un total de 12 micro-operaciones. Cada

micro-operación es seleccionada a través de las variables S2, S1, S0 y C1. El acarreo de

entrada C1 se utiliza para la selección de micro-operaciones aritméticas solamente.

La Tabla 2.3 lista las 12 micro-operaciones de la ALU. Las primeras ocho

enumeradas (con S2 = 0) son idénticas a las micro-operaciones de la Tabla 2.1. El acarreo

de entrada durante las cuatro operaciones lógicas (cuando S2 = 1) no tiene efecto en la

operación de la unidad, de tal manera que las entradas bajo la columna C 1 para las micro-

operaciones lógicas se marcan con X que no importa.

Función seleccionada

S1 S2 S0 C1 Salida Función

0 0 0 0 F = A Transfiere A

0 0 0 1 F = A + 1 Incremente A

0 0 1 0 F = A + B Suma

0 1 1 1 F = A + B + 1 Suma con acarreo

0 1 0 0 F = A + B’ A más el complemento de 1 de B

0 1 0 1 F = A + B´ + 1 Resta

0 1 1 0 F = A - 1 Decremente A

0 1 1 1 F = A Transfiere A

1 0 0 X F = A ^ B AND

1 0 1 X F = A V B OR

1 1 0 X F = A + B XOR

1 1 1 X F = A’ Complemento de A

2.1.3 La Unidad de Control (UC)

Tabla 2.3 Funciones para la ALU.

Figura 2.10 Una etapa de una Unidad Aritmética y Lógica

La unidad de control puede calificarse como el “director” del ordenador, ya que es

la parte del mismo que gobierna totalmente su funcionamiento.

La unidad de control se encarga de traer de la memoria las instrucciones que

componen un programa, de interpretarlas y de generar el conjunto de órdenes que

gobierna a todos los elementos del ordenador, en la secuencia adecuada para que la

instrucción se ejecute de modo correcto.

Esta unidad también se ocupa de controlar y coordinar a las unidades implicadas

en las operaciones anteriormente mencionadas, de manera que se eviten problemas

internos que se puedan producir entre los componentes de la computadora.

La unidad de control, finalmente, comunica entre sí y dirige las entradas y salidas

desde y hasta los periféricos, dando el oportuno tratamiento a la información en proceso.

Para poder realizar su cometido, la unidad de control necesita manejar la siguiente

información:

1. El registro de estado.

2. El registro puntero de instrucciones.

3. La instrucción a ejecutar.

4. Las señales de entrada/salida.

La salida que proporcionará la unidad de control será el conjunto de órdenes

elementales que servirán para ejecutar la orden solicitada.

La secuencia de operación para este proceso es:

1. Extraer de la memoria principal la instrucción a ejecutar.

2. Tras reconocer la instrucción, la unidad de control establece la configuración de

las compuertas lógicas (las interconexiones de los diferentes componentes del

circuito lógico) que se van a ver involucradas en la operación de cálculo solicitada

para la instrucción, estableciendo el circuito que van a resolverla.

3. Busca y extrae de la memoria principal los datos necesarios para ejecutar la

instrucción indicada en el paso 1.

4. Ordenan a la unidad involucrada en la resolución de la instrucción en proceso que

realice las oportunas operaciones elementales.

5. Si la operación elemental realizada ha proporcionado nuevos datos, éstos se

almacenan en la memoria principal

6. Se incrementa el contenido del registro puntero de instrucción.

La Figura 2.11 muestra la estructura de una Unidad de Control típica. Sus

conexiones al exterior, y al resto de los elementos que componen el ordenador, se

realizan en este caso a través de dos buses: el bus de datos, que ya se menciono en la ALU,

y un nuevo bus, denominado bus de direcciones, compuesto por nd líneas, cuyo cometido

fundamental es transmitir a la memoria principal (MP) a través del registro RDIM las

direcciones que se desea leer o en las que se desea escribir. La Unidad de Control poseerá

sus propios buses de datos y de direcciones, que denominaremos buses de direcciones y

de datos internos.

Los registros y dispositivos fundamentales con que opera la Unidad de Control son:

Registro de instrucción (RI)

Este registro se encarga de almacenar las instrucción en curso, procedente de la

memoria principal. Este registro suele estar dividido en campos. Cada campo contiene un

número de bits variables de acuerdo con cada arquitectura de la CPU. Los campos más

comunes son:

CO: Código de operación. El valor de sus bits indica a la unidad de control (más en

concreto, al conjunto decodificador-controlador) de qué instrucción se trata

(suma, resta, salto, ...).

MD: Modo de direccionamiento. Indica el modo de acceso a la memoria para

buscar el dato o dirección necesarios para la ejecución de determinadas

Figura 2.11 Estructura de una Unidad de Control

instrucciones.

CDE: Campo de dirección efectiva. Contiene la información necesaria para, junto

con la información de MD, acceder al dato o dirección requeridos para la

ejecución de determinadas instrucciones.

En la Figura 2.12 se puede ver la estructura de este registro y sus órdenes

asociadas. La activación de la orden ENRI produce la escritura del contenido del registro

RDAM en este registro. El contenido de sus campos CO y MD se supone que siempre está

presente en la entrada del conjunto decodificador-controlador. Si la orden SARI produce

la lectura del campo de dirección efectiva para transferir su contenido hacia los registro

RDIM o RDAM, según convenga.

Registro contador de programa (CP)

Como mencionamos anteriormente, la ejecución de los programas almacenados en

memoria se realiza primordialmente en secuencia. Se ejecuta una instrucción tras otra,

según su orden consecutivo en la memoria principal. No obstante, cuando se realiza un

salto, se pasa a ejecutar una instrucción escrita en otra zona de la memoria.

El registro contador de programa es el que contiene la dirección de la siguiente

Figura 2. 12 Estructura del registro de instrucción.

instrucción a ejecutarse. Por tanto, cuando busque la instrucción siguiente, lo hará

utilizando la información en la posición de memoria en la que se encuentra, que es

precisamente el contenido del contador de programa.

Al finalizar la ejecución de una instrucción (o al comienzo de la ejecución de la

instrucción siguiente, según se mire), lo primero que se deberá hacer será colocar en el

contador de programa la posición de memoria en donde se encuentra la siguiente

instrucción que se va a ejecutar. Para ello, si no se trata de una instrucción de salto,

bastará incrementar adecuadamente el contador de programa. Si se trata de una

instrucción de salto, sin embargo, habrá que escribir directamente el valor de la posición

de la siguiente instrucción a ejecutar.

En la Figura 2.13 se muestra la estructura y conexiones del registro contador de

programa.

En la Figura 2.13 se puede apreciar las órdenes ENCP y LSCP, que gobiernan la

Figura 2. 13 El registro contador de

escritura y lectura, respectivamente, del contador de programa. Se aprecia también la

existencia de la orden INCP, cuya activación produce que el contenido del contador de

programa se incremente en un número de unidades predeterminado. Esta orden es típica

de los registro contadores de programa.

Registro de direcciones de memoria (RDIM)

Este registro se utiliza para almacenar las direcciones de memoria en las que van a

escribir o de las que se van a leer los datos. La orden ERDI gobierna la escritura en este

registro desde el bus de direcciones interno de la unidad de control. El contenido de este

registro se supone siempre presente en sus líneas de salida, conectadas al bus de

direcciones externo, sin necesidad de una orden explícita.

Registro de datos de memoria (RDAM)

Almacena temporalmente los datos que se intercambian con la memoria en las

operaciones de lectura y de escritura. Una de sus conexiones se considera como líneas de

entrada y salida de conexión directa con el bus de datos externo a la unidad de control,

gobernadas por las órdenes ERDAE y LRDAE. La otra conexión procede del interior de la

unidad de control, de bus de datos internos de dicha unidad. La conexión del RDAM con

este bus de datos interno se gobierna con dos órdenes: ERDAI para escritura en el registro

y LRDAI para lectura en dicho bus de los datos del registro.

Decodificador

Es un circuito combinacional de este tipo, toma como entrada los campos CO + MD

del registro de instrucción y activa un conjunto de salidas conectadas directamente como

entradas al controlador. Simplifica el trabajo de éste, ya que cada salida del decodificador

estará asociada directamente con una instrucción y un modo de direccionamiento

determinados, mientras que a su entrada esa misma información está codificada para

ahorrar bits de memoria.

Controlador

Es el verdadero “centro de operaciones” del ordenador. Tiene las siguientes

entradas:

1. Salidas del decodificador. Aquellas que estén activas le indican el tipo de

instrucción y el modo de direccionamiento asociados.

2. Reloj del sistema. El ordenador es un dispositivo esencialmente síncrono. Nada

sucede fuera de los instantes marcados por el reloj. Por tanto, el controlador

debe tener información de los pulsos de reloj del sistema. Si existe más de un

reloj, todos ellos informarán de su estado al controlador.

3. Registro de estado. El secuenciador conoce en todo momento el valor de los

biestables (flip-flops) de este registro de la ALU, de modo que puede gobernar

adecuadamente las instrucciones de salto condicional.

2.2 Microórdenes

Como puede verse en la Figura 2.11, el controlador presenta una serie de salidas

denominadas microórdenes. De estas salidas se vale precisamente el controlador para

gobernar el funcionamiento del ordenador. Las microórdenes están conectadas

directamente a las órdenes de los registros (lectura, escritura,...), de la ALU (SUM, OR,...),

a la memoria principal y, en general, a todos los elementos operativos del ordenador.

Existen dos tipos de microórdenes:

1. Microórdenes de nivel: Se mantienen activas un período completo de reloj que

temporiza a la CPU. Estas microórdenes las denotaremos con NIV en la

Figura 2.14.

2. Microórdenes de impulso: Se mantienen activas un período más corto que las de

nivel (un impulso de reloj). Estas microórdenes las denotaremos con IMP, en la

Figura 2.14.

Figura 2. 14 Microórdenes NIV e IMP.

En la Figura 2.11 se indican las microórdenes de nivel y de impulso, en la que se

muestran:

1. Las microórdenes de lectura de registro (volcando su contenido al bus) son de

nivel. Esto se debe a que es necesario mantener los datos en el bus un tiempo

para que puedan ser leídos por quien deba leerlos.

2. Las microórdenes de escritura en registros son de impulso. Ello es debido a que el

proceso de actualización de la información es prácticamente instantáneo.

3. Las microórdenes que gobiernan la ALU son todas de nivel, ya que deben dar

tiempo a los circuitos de la ALU para que realicen la operación pedida.

4. Las microórdenes que gobiernan la memoria son todas de nivel: ni la lectura y ni

la escritura son procesos instantáneos en la memoria, sino que consumen cierto

tiempo.

2.3 Formato de instrucciones

Los formatos de instrucciones que podemos encontrar en los CPUs reales son muy

variados, ya que cada arquitectura el diseñador ha podido optar por soluciones muy

diferentes. Es por tanto difícil, intentar clasificar exclusivamente los formatos de

instrucción de los CPUs. No obstante, podemos dar una clasificación lo suficientemente

general: Definimos así dos tipos de formatos de instrucción:

1. Formatos de una palabra de memoria: La instrucción se almacena

completamente en una sola palabra de memoria. En la Figura 2.15 (a) se

muestra un ejemplo de este formato.

2. Formatos de varias palabras de memoria: La instrucción se almacena en varias

palabras consecutivas de memoria. En la Figura 2.15 (b) se muestra el formato

de instrucción de dos palabras consecutivas en memoria.

Supongamos que la longitud de la palabra de memoria es fija, lo normal en las

arquitecturas reales, podemos establecer las ventajas e inconvenientes de cada tipo de

formato.

Los formatos de una sola palabra presentan la ventaja de rapidez de ejecución:

basta una sola búsqueda en memoria para acceder a la instrucción completa. En cambio,

los formatos de varias palabras requieren varias lecturas de la memoria para acceder a la

instrucción completa. Por tanto, habrá que separar uno o más ciclos de memoria para

poder ejecutar la instrucción: son más lentos.

Los formatos de varias palabras poseen la ventaja de que hay más bits por

instrucción, lo que permite acomodar un juego de instrucciones más amplio, más modos

de direccionamiento y posibilidad de acceso a una mayor cantidad de memoria principal

(mayor longitud del campo CD).

El formato de las instrucciones en la memoria del la CPU, que se corresponden con

el formato del registro de instrucción, es un formato de una sola palabra de memoria y

Figura 2. 15 a) Formato de instrucción de una sola palabra de memoria; b) Formato de instrucción de dos palabras de

(a) (b

puede verse en la Figura 2.16.

En dicha Figura se muestra que el registro de instrucción se encuentra dividido en

dos campos:

CO: Campo de código de operación: Su longitud es de 4 bits. Se permite, por tanto,

hasta un máximo de 16 instrucciones distintas.

CD: Campo de direccionamiento: Su longitud es de 12 bits. Contiene la dirección de

memoria donde se encuentra el dato a que hace referencia la instrucción, o la

dirección de salto, si se trata de una instrucción de salto.

Figura 2. 16 Formato del registro de instrucción del CPU.

NOMBRE MNEMONICO OPCODE DESCRIPCION

Load A

(Carga Acumulador)

LDA 1000 0110

o

8616

Carga el contenido de la siguiente

posición de memoria en el

acumulador.

Add

(Suma)

ADD 1000 1011

o

8B16

Suma el contenido de la siguiente

posición de memoria al contenido del

acumulador. Deja la suma en el

acumulador.

Halt

(Para)

HLT 0011 1110

o

3E16

Detiene todas las operaciones.

LDA se convierte en: 1000 0110

opcode

según tabla

0000 0111

representación

del 7 en binario

ADD 10 se convierte en: 1000 1011

opcode

según tabla

0000 1010

representación

del 10 en binario

HLT se convierte en: 0011 1110

opcode

según tabla