Está en la página 1de 16

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

ESTRUCTURA BSICA DE UN SISTEMA PROGRAMABLE BASADO EN PROCESADOR Dentro de los sistemas lgicos programables, los dispositivos lgicos programables (PLD: Programmable Logic Device) permiten implementar sistemas digitales a travs de la interconexin de compuertas internas dentro del circuito integrado, haciendo que el sistema se comporte como un chip dedicado. Los procesadores por su parte, son sistemas orientados a programa almacenado, por lo que se tratan de una arquitectura genrica cuyo comportamiento se rige por una serie de cdigos de mquina almacenadas en una memoria. Para programar los PLDs se emplean lenguajes de descripcin de hardware (HDL: Hardware Description Language) como el ABEL o el VHDL, que despus de una sntesis e implementacin se traduce a una especificacin que indica como se debe hacer las conexiones dentro del chip (Figura 1).
VHDL
entity app is port (x, y: in bit; q: out bit ); end app;

Figura 1

Herramienta de sntesis

En los sistemas basados en procesador, su programacin se .jed PLD especificacin de puede hacer en lenguajes de alto nivel como el C, BASIC, conexiones etc., o a bajo nivel en ensamblador. Los compiladores o ensambladores se encargan de convertir la especificacin en palabras en un conjunto de nmeros binarios llamados cdigos o instrucciones de mquina, las cuales se almacenan en una memoria en lugar de fijarse en forma de conexiones como ocurre en los PLD (Figura 2).

C
void main(){ int x; printf("x=");

Ensamblador
in ax,300h add ax,bx mov cx,10 rep

Figura 2

buses

procesador

E/S
memoria

Compilador y/o ensamblador .exe .hex cdigos de mquina

Para que un procesador se realmente prctico, requiere de la interconexin de varios dispositivos externos tales como memorias e interfaces de entrada/salida, acoplados a travs de un conjunto de buses de interconexin. De esta forma un sistema basado en procesador se puede ver como un sistema que intercambia y procesa datos entre la memoria y los dispositivos de entrada/salida. Por esta razn, gran parte del conjunto de instrucciones de un procesador se dedica a movimientos de datos entre la memoria y el procesador, o entre el procesador y los perifricos.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

1. BREVE HISTORIA DE LOS COMPUTADORES


Fecha Tecnologa Velocidad (Operaciones por segundo) Comentarios

Primera Generacin

1946-1957

Vlvulas

40.000

ENIAC (Electronic Numerical Integrator And Computer). Aplicacin Militar. Sent las bases de la arquitectura Neumann. UNIVAC (Universal Automatic Computer): 1950 Primer Computador Comercial. Empleado en el Censo. Inici la filosofa de compatibilidad de Hardware con el software escrito para modelos anteriores. Memorias de Ncleos Magnticos Memorias de Ncleos Magnticos Memorias Semiconductoras (1970) por Fairchild Aparicin del microprocesador Intel 4004 (1971).

Segunda Generacin Tercera Generacin Cuarta Generacin Quinta Generacin

1958-1964 1965-1971

Transistores Circuitos Integrados Gran Integracin (LSI) Alta Integracin (VLSI)

200.000 1000.000

1972-1977

10000.000

1978 -

>100000.000

De las diferentes familias de microprocesadores actuales hay 2 grandes, los de Intel, que iniciaron el auge de la arquitectura CISC (Complete Instruction Set Computer: Conjunto Completo de Instrucciones), y los de IBM/Motorola/Apple, el PowerPC, que popularizo la arquitectura RISC (Reduced Instruction Set Computer: Conjunto Reducido de Instrucciones) (1991). Evolucin de la Familia de Microprocesadores Intel 4004 (1971). 4 bits. El primer microprocesador. Aplicacin Especfica 8008 (1972). 8 bits. Aplicacin Especfica 8080 (1974).8 bits. Primer microprocesador de uso general. Usado en el Altair, primer computador personal 8086 (1978). 16 bits. El procesador usado en el primer IBM PC 80386 (1985). 32 bits. Soporte de multitarea Pentium (1993). Diseo superescalar. RISC MMX: Extensiones Multimedia Pentium Pro (1995). Tcnicas de Ejecucin Especulativa. Compendio de instrucciones SIMD Pentium II (1997). Pentium Pro + MMX (Single Instruction Multiple Data) Pentium III. (1999). Instrucciones de punto flotante para grficos 3D Pentium IV (2001). Mejoras para desempeo multimedia Itanium. 64 bits. Estado del Arte: Arquitectura Superescalar Memoria Cach en el chip. Prediccin de bifurcacin. El microprocesador se anticipa ante el software y predice las ramas o grupos de instrucciones a ejecutar. Anlisis de Flujo de Datos. Analiza las dependencias de las instrucciones y ordena su ejecucin. Ejecucin Especulativa. Haciendo uso de la prediccin de bifurcacin y el anlisis de flujo de datos, el P puede ejecutar instrucciones antes de que aparezcan.
Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

2. ARQUITECTURA NEUMANN

Concebida en 1945 por John von Neumann para el desarrollo del ENIAC (Primer computador electrnico de la historia) y cuya filosofa se mantiene hasta el momento para el diseo de sistemas lgicos programables. La idea se conoce con el nombre de concepto de programa almacenado. Componentes bsicos del sistema (Figura 3): Memoria principal para datos e instrucciones Unidad Aritmtico Lgica (Arithmetic-Logic Unit: ALU) Unidad de Control. Interpreta las instrucciones en memoria y realiza su ejecucin. Dispositivos de Entrada Salida (E/S).

Dispositivos de E/S

ALU Memoria Principal

CPU
Buses del Sistema

Memoria Principal

Dispositivos de E/S

Unidad de control de programa

Bus de Datos Bus de Direcciones Bus de Control Figura 4. Estructura Actual de un sistema lgico Programado

Figura 3. Estructura original de Computador de von Neumann (IAS)

Aunque la estructura actual ha cambiado (Figura 4), los computadores modernos conservan muchas caractersticas de la arquitectura original de Neumann, tales como la memoria compartida para datos e instrucciones, y el concepto de programa almacenado. De la arquitectura original, la ALU y la unidad control, junto con otros componentes bsicos se agrupan en lo que se denomina CPU (Central Processing Unit: Unidad Central de Procesamiento) o en trminos ms familiares, procesador. Ntese que en la arquitectura actual, la CPU, memoria y dispositivos de entrada/salida, comparten el mismo medio de comunicacin, denominado buses del sistema. Por esta razn, el dilogo entre los diferentes componentes del sistema se puede hacer nicamente entre: el procesador-memoria, el procesador-E/S o memoria-E/S. El control del flujo de la informacin que viaja por el bus de datos, siempre lo realiza el procesador, soportado en el bus de direcciones y el bus de control. El bus de direcciones se emplea para seleccionar una posicin particular de la memoria principal o uno de los tantos dispositivos de entrada/salida presentes en el sistema. Por su parte, por el bus de control, el procesador se encargada de establecer si la direccin presente en el bus de direcciones corresponde a una zona de memoria o al identificador de un dispositivos de E/S, y si la transferencia se realiza desde el procesador hacia la memoria/perifrico o desde la memoria/perifrico hacia el procesador. Se presentan a continuacin las posibles transferencias sobre el bus y la terminologa asociada a cada una de ellas.
Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

a) Instruccin de Carga. En el ejemplo, el procesador lee la posicin de memoria 100h. El nmero 67h presente en el bus de datos es colocado por la memoria, pues este valor se ubica en dicha direccin.

CPU
67h

Memoria Principal

Dispositivos de E/S

Datos Direcciones Control

Todos los perifricos se desconectan del bus de datos (salidas en Hi-Z) porque se enteran a travs del valor del bus de direcciones y seales del bus de control que no estn hablando con ellos.

100h Selecciona lectura de memoria

b) Instruccin de Almacenamiento. En este caso, es el procesador quien escribe el nmero 23h en el bus de datos, y dicho nmero se almacena en la posicin de memoria 200h.

CPU
23h

Memoria Principal

Dispositivos de E/S

Todos los perifricos se desconectan del bus de datos (salidas en Hi-Z) Datos Direcciones Control

200h Selecciona escritura en memoria

c) Instruccin de entrada/salida. Puede ser de lectura o escritura sobre el perifrico. En este caso, la memoria es quien se desconecta del bus de datos. En el ejemplo, el procesador escribe el nmero 64h en el dispositivo identificado con el cdigo 0h. Las transferencias de este tipo pueden ser de dos categoras: entrada/salida programada o polling, o entrada/salida por interrupcin. En el primer caso, el procesador es quien inicia la transferencia y en el segundo, es el dispositivo es quien le informa al procesador que lo debe atender, para lo cual el procesador "interrumpe"
La memoria se desconectan del bus de datos (salidas en Hi-Z)

CPU
64h

Memoria Principal

Dispositivos de E/S

Datos Direcciones Control

0h Selecciona escritura en perifrico

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

d) Entrada/salida por acceso directo a memoria DMA (Direct Memory Access). Este es un tipo especial de transferencia de datos en la cual el perifrico solicita a la CPU la transferencia, ante lo cual, el microprocesador se desconecta de los buses, y el dispositivo de E/S se encarga de manipular el bus de datos, direcciones y control para leer o escribir datos en la memoria. Este tipo de transferencia permite las velocidades de transferencia ms altas, ya que los datos no tienen que pasar por el procesador para ir desde la memoria hacia algn perifrico.
El procesador se desconecta de los buses dejando que el perifrico se encargue de la transferencia

CPU

Memoria Principal

Dispositivos de E/S

Datos Direcciones Selecciona escritura en memoria por DMA Control

Como se coment anteriormente, en la estructura de Neumann moderna, la CPU posee internamente la ALU y la unidad de control, y desde la aparicin de los primeros microprocesadores, registros internos, usados bsicamente para dos fines: a) servir de memorias temporales en las instrucciones de carga/almacenamiento o en las operaciones matemticas; y b) controlar el comportamiento de la CPU y del flujo del programa. En la Figura 5 se muestran los elementos mnimos constitutivos de una CPU. El bloque lgica aritmtica y booleana se encarga de realizar nicamente las operaciones de suma, and, or y not. Se incluyen tambin bloques complementadores, desplazadores de bits y banderas de estado, estas ltimas se usan para indicar el "estado" de la ltima operacin realizada en la ALU, por ejemplo, indican si el nmero resultante fue negativo, cero u otra situacin.
Unidad aritmtico-lgica ALU Banderas de estado

Desplazador

Complementador

Bus interno de la CPU

Registros

Lgica aritmtica y booleana

Unidad de Control

Caminos de datos Caminos de control

Figura 5. La Unidad Central de Procesamiento CPU Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

Los microprocesadores modernos tienen la capacidad de cmputo de cantidades flotantes al contar con un coprocesador matemtico interno, instrucciones orientadas a operar sobre vectores, tales como las instrucciones tipo SIMD (Single Instruction Multiple Data: Instruccin simple para mltiples datos) de la tecnologa MMX, memoria cach interna, y un diseo superescalar, que consiste en particionar la unidad de control y ALU en entidades ms pequeas que permiten ejecutar varias instrucciones simultneamente. Preguntas: Qu razones justifican colocar dentro de la ALU mnima un circuito complementador? Adems de desplazar, Qu otra funcin cumple el circuito desplazador dentro de la ALU?
3. ARQUITECTURA HARDVARD

Existe un tipo de arquitectura diferente a la Neumann, denominada Arquitectura Harvard (Figura 6), las cuales difieren de la forma como manipulan la memoria. Arquitectura Neumann
Memoria Principal compartida para el almacenamiento de las Instrucciones y los Datos. Menor velocidad en el procesamiento.

Arquitectura Harvard
Memorias Independientes para almacenar las Instrucciones y los Datos Mayor velocidad en el procesamiento.

Comentarios

Mayor Flexibilidad en la Ampliacin de Memoria

La Ampliacin de la Memoria no es tan directa.

Debido a que en la arquitectura Neumann la memoria es compartida, solamente se puede acceder (leer o escribir) a la vez una instruccin o un dato, en cambio en la Hardvard, es posible acceder a los datos e instrucciones simultneamente. En la arqutecura Neumann, al ampliar la memoria principal se ampla tanto la memoria de instrucciones como la de datos.

CPU

Memoria de programa

Memoria de datos

Dispositivos de E/S

Bus de Programa Bus de Datos Bus de E/S Bus de Direcciones de Programa Bus de Direcciones de Datos Bus de Direcciones de E/S Bus de Control
Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H. Figura 6. Arquitectura Hardvard

Por particularidades de velocidad, las limitaciones en la ampliacin de memoria y a la gran cantidad del nmero de buses independientes, la arquitectura Hardvard ha sido adoptada principalmente en el diseo de microcontroladores (reunin de una CPU, memoria y dispositivos de E/S en un solo chip) y procesadores digitales de seales (DSP), dado a que este tipo de procesadores se emplean en el diseo de sistemas de bajo costo, tamao y/o aplicaciones que requieran poca memoria pero alta velocidad de ejecucin (tiempo-real). Entre sus aplicaciones estn, el desarrollo de controles digitales de electrodomsticos hasta telfonos celulares. Por su parte la arquitectura Neumann se emplea extensivamente en el diseo de sistemas de cmputo de alto volumen de informacin, siendo empleada en aplicaciones que van desde un computador de escritorio hasta grandes servidores y supercomputadoras. 4. LOS BUSES Lneas Tpicas de un Bus. En la siguiente Figura se muestra el conjunto de lneas de un microprocesador de propsito general de 8 bits y su respectiva funcin. Descripcin de los Pines del Bus de Control
D0 D1 ... D7 A0 A1 ... A15 ____ IO/MEM WE RD Ready Reset in Reset out INTR 8 Bus de Datos

16 Bus de Direcciones

Bus de Control

Figura 7. Lneas tpicas de un Bus del Sistema

IO/MEM Se coloca en 1 cuando la operacin de lectura o escritura es sobre algn dispositivo de entrada/salida. Se pone en cero cuando va a acceder a la memoria principal. WE (Write) Al activarse en bajo indica que se realizar una operacin de escritura ya sea en la memoria o E/S, est ltima condicin esta determinada por IO/MEM. RD (Read) Activa en bajo, indica que se realizar una operacin de lectura de la memoria o la E/S. Ready Empleada para sincronizar el microprocesador (P) con las memorias o dispositivos de E/S ms lentos que l. Por ejemplo, cuando una E/S termina su operacin de lectura o escritura debe habilitar ste pin para indicarle al P que puede continuar con la ejecucin de la siguiente instruccin. Reset in/Reset out Son respectivamente, las lneas de reinicio del P y la confirmacin de que el P se ha reiniciado. INTR Es la lnea de peticin de interrupcin. Usada en transferencias desde algn perifrico hacia la CPU. Por esta lnea el dispositivo de E/S le indica al P que tiene o requiere de un dato, ante lo cual el P ejecuta un conjunto de instrucciones encaminadas a atender el dispositivo.

Algunos microprocesadores tienen fusionada la lnea WE y RD en una sola llamada R/W. En la Figura 8 y 9 se presentan otro tipo de configuraciones para el bus de control.

Arquitectura de Procesadores I - Universidad del Quindo

Microprocesador de 8 bits

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H. 8 D0 ... D7 A0 ... A15 ______ MEMR MEMW IOR IOW Ready Reset in Reset out INTR Figura 8 16

En este esquema, las lneas IO/MEM, RD y WE no existen, y en su lugar se han sustituido por MEMR, MEMW, IOR e IOW, todas activas bajas. De estas cuatro lneas solamente una est activa a la vez. Cuando MEMR est en bajo indica que se est realizando una operacin de lectura con la memoria exclusivamente. En caso contrario, para realizar una escritura, es la lnea MEMW la que se pone en bajo. Las lneas IOR e IOW, cumplen las mismas funciones que MEMR y MEMW, pero cuando la operacin es sobre algn dispositivo de entrada/salida. Si se hace un anlisis de estas lneas, se encuentra en correspondencia con las IO/MEM, RD y WE del primer modelo, el siguiente conjunto de ecuaciones: MEMR = IO/MEM + RD MEMW = IO/MEM + WE IOR = (IO/MEM)' + RD IOW = (IO/MEM)' + WE

8 AD0 ... AD7 A8 ... A15 ALE IO/MEM RD WE Ready Reset in Reset out INTR Figura 9 8

Este esquema se conoce con el nombre de bus multiplexado. Ntese que las lneas del bus de direcciones se ha reducido a tan solo 8 y se incluye una nueva lnea denominada ALE (Address Latch Enable: Habilitador del registro de direcciones). Cuando la lnea ALE = 0, las lneas del bus de datos (AD7...AD0) se comportan como el bus de datos normal. Cuando ALE = 1, estas lneas contienen la parte baja de la direccin (A7...A0) y las 8 lneas etiquetadas como A15...A8 la parte alta de la direccin. Este esquema de bus fue empleado para el empaquetamiento de los primeros microprocesadores de 8bits en encapsulados de 40 pines. Para poder usar el bus de datos y direcciones correctamente, se hace necesario demultiplexar el bus, lo cual se consigue conectando un latch (registro de datos) a la salida del bus de datos (Figura 10).
8 D0 Q0 ... ... D7 Q7 CLK 8 8 Bus de Direcciones

AD0 ... AD7 ALE A8 ... A15

Bus de Datos

Figura 10. Demultiplexacin de los buses de datos y direcciones Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

Cableado de un Bus. Supongamos que tenemos un microprocesador de 4 bits con la estructura de lneas del bus de control de la Figura 7, al cual vamos a conectar una memoria RAM de 16 bytes y dos puertos. El puerto de escritura se trata de un registro de almacenamiento, al que le hemos conectado un decodificador Hexadecimal a 7 segmentos, y le hemos asignado como direccin la 1h. Al puerto de lectura, un buffer triestado, le hemos asignado la direccin de puerto #0, y le conectamos 4 suiches. Problemas: Realizar el cableado de los respectivos buses Por qu se emplea un buffer tri-estado como puerto de lectura, en lugar de usar un simple registro de almacenamiento como se hizo para el puerto de escritura?

8
Dec. Hexadecimal a 7 segmentos

Memoria RAM
D0 D1 D2 D3 A0 A1 A2 A3 ___ R/W CS

Registro
D0 D1 D2 D3
___

OE

D0 D1 D2 D3 A0 A1 A2 A3 ____ IO/MEM WE RD Ready

Figura 11 La realizacin del cableado del sistema mnimo se consigue por medio de lgica combinacional que hace uso del bus de direcciones y bus de control como seales de entrada y cuyas salida son las entradas de Chip Select (CS), reloj (CLK) o habilitadores de salida (OE) de los diferentes dispositivos que componen el sistema. Estos circuitos combinacionales se denominan comnmente decodificadores de direccin.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

10

Funcionamiento de un Bus Para ilustrar el funcionamiento de un sistema basado en procesador y en particular sobre su bus, se considerar una CPU hipottica de 4 bits y el montaje de la Figura 11. Para la CPU hipottica, se tendr en cuenta que todas las CPUs tiene en su interior como mnimo los siguientes registros: Un registro llamado acumulador (AC) donde almacenan temporalmente datos o el resultado de las operaciones aritmticas y lgicas. Un registro que indica la direccin de memoria donde se encuentra la prxima instruccin a ejecutar. Se llama Contador de Programa (PC = Program Counter). Un registro donde se almacena el valor de la ltima instruccin leda, en otras palabras, la instruccin a ejecutar. Se llama Registro de Instruccin (IR = Instruction Register) Consideremos tambin el siguiente conjunto mnimo de instrucciones para el microprocesador: Nemnico LOAD A,dato STORE A,(dir) ADD A,A ADD A,dato IN A,#puerto OUT A,#puerto JMP dir ADD A,(dir) LOAD A,(dir) Cdigo de operacin 0h 1h 2h 3h 4h 5h 6h 7h 8h Descripcin Carga el acumulador con el valor especificado en dato. Almacena el contenido del acumulador en la direccin de memoria dir. Realiza la operacin AC = AC*2 Realiza la operacin AC = AC + dato Carga en el acumulador el valor del dispositivo de E/S con direccin #puerto Enva el contenido del acumulador al dispositivo de E/S con direccin #puerto Salta a la direccin de memoria dir Realiza la operacin AC = AC+contenido de la direccin de memoria dir Carga el acumulador con el valor especificado en la direccin de mem. dir

Ahora, supongamos que el procesador realizar el siguiente programa: Inicio: A = Valor ledo de los suiches B = 5 Sumar A y B Poner el resultado de la suma en el display Volver a la etiqueta Inicio El programa anterior quedara codificado con el conjunto mnimo de instrucciones de la siguiente forma:

INICIO: IN A,0h ADD A,5 OUT A,1h JMP INICIO

0 1 2 3 4 5 6 7

4 0 3 5 5 1 6 0 Cdigos de Operacin

Arquitectura de Procesadores I - Universidad del Quindo

Direccin en la memoria

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

11

Ntese de la disposicin de las instrucciones en la memoria que cada una de las instrucciones empleadas ocupa dos celdas de memoria. La primera celda almacena el cdigo de la instruccin y la segunda el operando. En un procesador no todas las instrucciones ocupan el mismo tamao en memoria, por ejemplo, la instruccin ADD A,A no requiere operandos y solamente ocupa una celda de memoria. Analicemos a continuacin la ejecucin del programa. 1) Al reiniciar el procesador, este carga el contador de programa en cero (PC = 0). Paso siguiente, ubica en las lneas de direccin el contenido del PC y luego coloca las seales IO/MEM=0, RD=0 y WE=1. Esto lo hace para leer la posicin de memoria cero, que corresponde al cdigo de operacin de la primera instruccin que ejecutar el procesador (IN A,0). Bajo estas circunstancias, la memoria colocar el nmero 4 (cdigo de operacin de la instruccin IN) en el bus de datos. Este nmero lo introduce el procesador en el registro de instruccin IR. Paso siguiente, regresa las lneas RD y WE a 1, desactivando la lectura y escritura en memoria/dispositivos.

0
Memoria RAM
D0 ...D3 A0 .. A3 0 R/W CS 1 0

Registro
D0 ... D3 4 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC X X 0 F X 0 4 1 0 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

2) El procesador incrementa el PC, y lee de nuevo la memoria, con el fin de conocer el nmero del dispositivo con el cual se debe comunicar. Para ello, ubica el contenido del PC en el bus de datos, y coloca las seales IO/MEM=0, RD=0 y WE=1. La memoria coloca entonces el nmero 0 sobre el bus de datos, el procesador lo captura y coloca las lneas RD y WE en 1.

0
Memoria RAM
D0 ...D3 A0 .. A3 1 R/W CS 1 0

Registro
D0 ... D3 0 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC X 4 1 0 4 1 0 2 3 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

12

3) El procesador, valindose del registro IR, se da cuenta que debe ejecutar una instruccin IN A,0 , la cual fue capturada en los dos pasos anteriores. Para ello, procede a colocar en el bus de direcciones el nmero 0, operando capturado en el paso anterior, y las seales IO/MEM=1 y RD=0. Esto hace que se active el buffer tri-estado y coloca a la memoria en alta impedancia (Hi-Z). Si el usuario ha colocado el nmero binario 0011 (3) en los suiches, este valor ser el nmero presente en el bus datos. Un instante de tiempo despus, el procesador lee el bus de datos y lo almacena en el registro acumulador AC. Posteriormente, coloca las lneas RD=1 y WE=1.

0
Memoria RAM
D0 ...D3 A0 .. A3 0 R/W CS 1 1

Registro
D0 ... D3 3 0

Buffer Triestado
CS D0 ... D3 3 0 AC IR PC X 4 1 0 4 1 0 2 3 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD

Hi-Z

0 1 1 0

Dec. Dir.

Dec. Dir.

4) Una vez concluye la ejecucin de la instruccin IN A,0, se procede a capturar la siguiente instruccin. Esto se consigue incrementando el PC, colocando su contenido en el bus de direcciones, activando las seales IO/MEM=0 y RD=0. El dato enviado por la memoria es el nmero 3 que corresponde al cdigo de operacin de la instruccin suma ADD. ste se almacena en el registro IR y se desactivan las seales RD=1 y WE=1.

0
Memoria RAM
D0 ...D3 A0 .. A3 2 R/W CS 1 0

Registro
D0 ... D3 3 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 3 4 2 1 0 2 3 3 5 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

13

5) Para ejecutar la suma, se hace necesario capturar el operando, lo cual se consigue incrementando el PC y leyendo la posicin de memoria apuntada por ste. La configuracin de las seales IO/MEM y RD sigue el mismo patrn de lectura de las pasos 1, 2 y 4. El dato que entrega la memoria se almacena en un registro temporal al interior de la CPU el cual no es visible. Como se ha capturado la totalidad de la instruccin ADD A,5. El procesador procede a ejecutarla, para lo cual activa el hardware interno de la ALU quedando el acumulador con el resultado de la suma AC = 3+5=8.

0
Memoria RAM
D0 ...D3 A0 .. A3 3 R/W CS 1 0

Registro
D0 ... D3 5 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 3 3 3 2 3 3 5 4 5 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

6) Una vez ha concluido la ejecucin de la instruccin suma, el procesador incrementa el PC con el fin de capturar la siguiente instruccin. Las seales A0..A3, IO/MEM e RD adquieren los valores necesarios para leer dicha posicin desde la memoria. (Ver en detalle el paso 1). La memoria devuelve el cdigo de operacin 5 que corresponde a la instruccin OUT. Este cdigo se almacena en el IR.

0
Memoria RAM
D0 ...D3 A0 .. A3 4 R/W CS 1 0

Registro
D0 ... D3 5 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 8 3 4 3 5 4 5 5 1 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

14

7) Posteriormente se captura el operando de la instruccin OUT, siguiente el mismo comportamiento para las seales del paso 2.

0
Memoria RAM
D0 ...D3 A0 .. A3 5 R/W CS 1 0

Registro
D0 ... D3 1 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 8 5 5 4 5 5 1 6 6 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

8) Dado que la instruccin a ejecutar se trata de una escritura en un perifrico, el procesador ubica el nmero del puerto (nmero 1) en el bus de direcciones, el nmero 8 (contenido del acumulador AC) en el bus de datos y pone las lneas IO/MEM = 1, WE = 0, lo cual activa el reloj del registro de datos, y deja a la memoria y buffer triestado en alta impedancia. De esta forma, se visualiza el nmero 8 en el display.

8
Memoria RAM
D0 ...D3 A0 .. A3 1 R/W CS 0 1

Registro
D0 ... D3 8 1

Buffer Triestado
CS D0 ... D3 Hi-Z 1

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD

Hi-Z

1 1 0 1

Dec. Dir.

Dec. Dir.

AC IR PC

8 5 5 4 5 5 1 6 6 Memoria

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

15

9) Concluida la ejecucin de la instruccin OUT, se procede a la captura de la siguiente instruccin siguiendo el mismo protocolo para las seales del bus de control. De esta forma IR adquiere el cdigo de operacin 6 (instruccin JMP).

8
Memoria RAM
D0 ...D3 A0 .. A3 6 R/W CS 1 0

Registro
D0 ... D3 6 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 8 5 6 5 1 6 6 7 0 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

10) En este paso se captura el operando de la instruccin JMP, siguiendo la misma forma de las seales del bus de control del paso 2.

8
Memoria RAM
D0 ...D3 A0 .. A3 7 R/W CS 1 0

Registro
D0 ... D3 0 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 8 6 7 6 6 7 0 8 X Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

Arquitectura de Procesadores I - Universidad del Quindo

Estructura Bsica de un Sistema Programable Basado en Procesador - Jorge Ivn Marn H.

16

11) Dado que el operando de la instruccin JMP es el nmero cero, para ejecutar dicha instruccin, el procesador carga este nmero en el contador de programa PC. De esta forma en la siguiente captura de instruccin, el procesador leer la instruccin de la posicin de memoria 0, repitiendo as la ejecucin del programa.

8
Memoria RAM
D0 ...D3 A0 .. A3 0 R/W CS 1 0

Registro
D0 ... D3 4 0

Buffer Triestado
CS D0 ... D3 Hi-Z 1 AC IR PC 8 6 0 F 1 0 4 1 0 Memoria

D0 ... D3 A0 ... A3 ____ IO/MEM WE RD 0 1 0

Dec. Dir.

Dec. Dir.

Problemas: Usando el conjunto de instrucciones del procesador hipottico y el circuito cableado, escriba un programa que multiplique por tres el nmero ingresado en los suiches. Escriba un programa que permita realizar un conteo binario y su respectiva visualizacin en el display Modifique el circuito cableado con el fin de leer dos nmeros desde suiches diferentes, los cuales deben ser sumados y visualizados en el display. Asuma que el procesador hipottico tiene la disposicin de seales para el bus de control mostrada en la Figura 8. Repita el cableado del sistema para la misma memoria y perifricos del ejemplo. Del anlisis anterior se puede apreciar que el procesador se puede modelar como una mquina secuencial que realiza tres acciones bsicas: captar la instruccin, denominada tambin fetch, decodificacin de la instruccin, que incluye la captacin de los operandos de ser necesario, y la ejecucin de la instruccin. Este conjunto de acciones se denominan ciclo de instruccin.
Inicio

Capturar instruccin (fetch) Decodificar instruccin Ejecutar instruccin

Figura 12. Ciclo de Instruccin Simple

Por otra parte, para describir con mayor detalle los diferentes cambios que sufren las seales que viajan por los buses de datos, direcciones y control, se emplean representaciones en diagramas de tiempo que sern estudiados en las siguientes secciones.
Arquitectura de Procesadores I - Universidad del Quindo

También podría gustarte