Diseno Procesador 4 Bits

Sistemas Digitales II Diseño de un procesador discreto de 4 bits El procesador simplificado mostrado en la figura 1, pu

Views 75 Downloads 3 File size 55KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Sistemas Digitales II

Diseño de un procesador discreto de 4 bits El procesador simplificado mostrado en la figura 1, puede ser implementado mediante el esquema de procesador discreto mostrado en la figura 2. A grandes rasgos, en éste esquema puede distinguirse 2 grandes bloques: el primero de ellos, formado por la interconexión en bus de un conjunto de registros y la ALU, denominado trayectoria de datos y otro que es la unidad de control. Bus de datos (lectura) Bus de datos (escritura)

Procesador y control

Memoria

Bus de direcciones

Figura 1: Procesador básico simplificado

Analizando más detalle el esquema, se puede notar que el procesador discreto cuenta con las siguientes partes: PC

Apuntador de programa: Es un contador el cual se incrementa al recibir un “1” lógico en la línea (X6)de incremento.

ACC

Registro acumulador: Es un registro de tipo “D” múltiple (uno para cada bit del bus de datos) el cual almacenará la salida del MBR cuando reciba un “1” lógico en la línea X10.

IR

Registro de instrucción: Es un registro de tipo “D” múltiple (uno para cada bit del bus de datos) el cual almacenará la salida del MBR cuando reciba un “1” lógico en la línea X1.

MAR

Registro de direccionamiento de memoria: Es un registro de tipo “D” múltiple (uno para cada bit del bus de direcciones) que se cargará con la salida de PC o de la concatenación de MBR y MBRAUX (dependiendo del MUX 1). Su salida selecciona la localidad de memoria a leer o escribir.

MBR

Registro buffer de memoria: Es un registro de tipo “D” múltiple (uno para cada bit del bus de datos) que se cargará con la salida de ACC o del contenido de la dirección de memoria activa (dependiendo del MUX 2). Su salida puede ser enviada a casi todos los demás registros y a la ALU. Cabe señalar que todo que vaya a ser leído o escrito a memoria tiene que pasar a través del MBR.

MBRAUX: MBR auxiliar: Al igual que el MBR, este es un registro de tipo “D” múltiple. Su uso es necesario cuando el procesador va a ejecutar alguna instrucción de salto o alguna otra en la que el operando es una dirección de memoria. En tales casos, en conjunción con MBR formará dichas direcciones y éstas se enviarán al PC o al MAR, según sea el caso.

E. Romero A. – ITSON

Sistemas Digitales II

CCR

Registro de código de condiciones: Es un registro de tipo “D” múltiple (uno para cada bandera) que almacena información que indican el estado de la última operación que realizó el ALU.

T

Registro de tiempos: Es un registro contador. Su función es la de dar los tiempos de cada parte de la instrucción (microinstrucción). Cada vez que recibe un pulso de reloj se incrementa hasta que recibe un “1” lógico en la línea de “clear” (fin de instrucción), entonces se pone en cero de nuevo para que el procesador inicie la ejecución de la instrucción siguiente.

ALU

Unidad de aritmética y lógica; Realiza el procesamiento de la información. Es un circuito con 3 entradas de varios bits; dos de las cuales son los datos que se procesarán de acuerdo a lo indicado por la tercera entrada. La salida es el resultado de la operación seleccionada y las condiciones de salida de esta operación (acarreo, sobreflujo, cero, signo, etc).

Unidad de control: Es la encargada de generar las señales que forman las microinstrucciones (salidas X), estas se producen de acuerdo a la instrucción que se ejecutando (IR) y al tiempo en que se encuentre esta instrucción (T).

R/W incrementa

PC

1

Bus de direcciones

MAR

MUX 1

Bus de datos

0 S

M B RAUX

1

0

MUX 2

u

S

IR

X7

X6

X5

X4

X3

X2

X1

3

2

1

MBR

0

X13 X12

q

X8

X14

X9

S0

UNIDAD DE CONTROL

X17

T ...

2

1

0

X11 X10

Contador

ALU S3

banderas

CCR CLK

ACC

S2

X16

n

MBR S1

X15

ACC

clear

Figura 2: Esquema de la arquitectura interna de un procesador básico.

E. Romero A. – ITSON

Sistemas Digitales II

Microinstrucciones Las proposiciones en un lenguaje de alto nivel, nos ocultan en gran medida el proceso que sigue el procesador para realizar sus operaciones. Esto permite que el programador se concentre más en el problema a resolver que en las operaciones que realiza el procesador. Ya se vio que cada proposición puede convertirse en una o más instrucciones del juego de instrucciones del procesador. De la mismo forma, cada una de las instrucciones del juego de instrucciones de un procesador se descompone en grupos de instrucciones mas sencillas llamadas microinstrucciones. Al conjunto de microinstrucciones que conforman cada instrucción (del procesador) se llama microprograma. El uso de instrucciones permite que los componentes internos del procesador sean invisibles para el programador, y sólo maneje los registros que tienen relación con el programa. Las microinstrucciones que el procesador básico propuesto puede realizar son sumamente sencillas, como por ejemplo, la transferencia de información de un registro a otro. Las microinstrucciones se producen activando alguna línea X determinada; por ejemplo para incrementar el PC, la línea X6 debe ponerse en 1. para enviar el contenido del PC al registro MAR, debe ponerse en 1 la línea X7, etc. En la siguiente tabla se listan las microinstrucciones que puede realizar el procesador discreto propuesto: Microinstrucciones

Señales de activación

PC  PC + 1 PC  MBR: MBRAUX MAR  PC MAR MBR: MBRAUX M  MBR IR  MBR A  MBR MBRAUX  MBR MBR  A MBR  M T0 AA+1 A  A + MBR A  A + MBR + 1 A  A + MBR’ A  A – MBR A  A ∧ MBR A  A ∨ MBR A  A’

X6 = 1 X5 = 1 X7 y X13 = 1 X8 = 1 X9 = 0 X1 = 1 X10 = 1 X17: X16: X15: X14: = 0:0:0:0 X4 = 1 X2 = 1 X3 = 1, X9 = 1 y X12 = 1 X11 = 1 X10 = 1 X17: X16: X15: X14: = 0:0:0:1 X10 = 1 X17: X16: X15: X14:= 0:0:1:0 X10 = 1 X17: X16: X15: X14: = 0:0:1:1 X10 = 1 X17: X16: X15: X14: = 0:1:0:0 X10 = 1 X17: X16: X15: X14: = 0:1:0:1 X10 = 1 X17: X16: X15: X14: = 0:1:1:0 X10 = 1 X17: X16: X15: X14: = 0:1:1:1 X10 = 1 X17: X16: X15: X14: = 1:0:0:0

Tabla 1: Microinstrucciones del procesador discreto propuesto

Se asume que todas las líneas de control “X” que no se especifican en las microinstrucciones están en ”0”, y que la tabla de verdad de la ALU es la siguiente:

E. Romero A. – ITSON

Sistemas Digitales II

S3

S2

S1

S0

Salida (F)

0 0 0 0 0 0 0 0 1

0 0 0 0 1 1 1 1 0

0 0 1 1 0 0 1 1 0

0 1 0 1 0 1 0 1 0

A A+1 A+B A+B+1 A + B’ A-B A∧B A∨B A’

Tabla 1: Tabla de verdad de la ALU

Microprogramas para cada instrucción Un microprograma es la secuencia de microinstrucciones que se deben producir para que una instrucción del procesador se realice. Para definir la secuencia de las microinstrucciones, se debe considerar qué instrucción se está ejecutando y en qué tiempo o etapa se encuentra la instrucción. El registro IR indica que instrucción se está ejecutando y el contador T indica el tiempo. El microprograma define el comportamiento de la unidad de control que produce las señales “X”. Cada línea o renglón del microprograma define bajo que condiciones de entrada de señales “q” y “t” se deben producir alguna señal “X”, esto se representa en la forma: Condición de entrada: Salida X Por ejemplo: t3q4: MAR  PC Indica que la microinstrucción “MAR  PC” debe efectuarse cuando el contador de tiempo sea 3 y el registro IR tenga un 4 (código de la operación). Otra forma de verlo es: Cuando IR = 4 y T = 3, la salida X7 debe ser 1 (al activarse X1 se carga MAR con el valor de PC). El contador T se incrementará por cada pulso de reloj desde cero (al inicio de la instrucción) hasta que se limpie debido a una señal de X11 = 1 (clear) producida por la microinstrucción T  0, la cual es la última microinstrucción de la instrucción, esto se repite periódicamente para cada instrucción del procesador. El registro de instrucción IR se carga con el código de la instrucción a ser ejecutada mediante las primeras tres microinstrucciones, esta es la forma en que el procesador identifica la instrucción, a estas microinstrucciones se les conoce como ciclo fetch o de búsqueda de código. Posteriormente IR define que instrucción se está realizando, de tal forma que para tiempos mayores de 2, IR determina que microinstrucción corresponde a cada tiempo. Ciclo fetch:

E. Romero A. – ITSON

t0: MAR  PC t1: MBR  M, PC  PC + 1 t2: IR  MBR

Sistemas Digitales II

T igual a cero es condición suficiente para que se realice la microinstrucción “MAR  PC”. Después del pulso de reloj, T es igual a uno y esto es condición suficiente para que se realicen las microinstrucciones “MBR  M” y “PC  PC + 1”. En el siguiente pulso de reloj T, es igual a dos, y se realiza la microinstrucción “IR  MBR”. En este momento IR contiene el código de la instrucción a ser realizada y PC apunta la dirección inmediata a este. Cuando T sea igual a tres, se realizará la microinstrucción cuyas condición sea “t3 and OPR”, donde opr es el contenido de IR. Después se incrementará T y se ejecutará t4OPR, y así hasta que T sea puesta en cero, y el ciclo se inicia de nuevo con la siguiente instrucción cuando T es igual a cero.

E. Romero A. – ITSON