Está en la página 1de 134

Procesador de primer nivel.

Procesador de primer nivel.


Un microprocesador no es ms que una calculadora programable con una alta capacidad de manejo de datos. Al ser una calculadora programable, su desarrollo siempre se localiza alrededor de una calculadora esttica (combinacional) o ALU. Partiendo de la ALU, es evidente que si se desea que sea programable, es necesario agregarle algo de memoria para ir almacenando clculos

Un procesador simple
El procesador ms simple que se pueda imaginar contiene solamente dos elementos que son: una unidad lgico-aritmtica y un secuenciador de instrucciones. En esta seccin se cubrirn los aspectos generales que conforman a este procesador, denominado procesador de primer nivel.

Unidad lgico aritmtica


Si es cierta la afirmacin que se hizo en la introduccin del presente captulo, se tiene que demostrar que un microprocesador es una calculadora programable que parte de una ALU bsica. Primeramente, partamos de la ALU mostrada en la figura que tiene definidas las operaciones descritas en la tabla.

Unidad lgico aritmtica

Unidad lgico aritmtica


Dado que esta ALU es muy primitiva, son pocas las operaciones que se pueden realizar con ella y si se quiere hacerla ms funcional se le debern proporcionar los elementos para que pueda efectuar operaciones ms complejas. Una solucin podra ser utilizar una ALU ms sofisticada, pero como se sabe, esta solucin es muy costosa y requiere de una cantidad muy grande de recursos que no siempre se encuentran disponibles.

Unidad lgico aritmtica


Otra solucin es idear un sistema que permita la ejecucin sucesiva de las cuatro operaciones bsicas hasta que se consiga obtener el resultado deseado, sin importar el nmero de operaciones que se tengan que realizar. Para poder permitir esta ejecucin secuencial se necesita un registro que almacene las operaciones intermedias, denominado acumulador. Tambin es necesario que la ALU cuente con una entrada de datos externa y que todas las transferencias se encuentren sincronizadas. Una posible solucin para este planteamiento lo constituye el diagrama de bloques de la figura

Unidad lgico aritmtica

Unidad lgico aritmtica


Como se puede ver, ahora la ALU ya es capaz de almacenar el resultado de la operacin anterior en el registro A, las banderas se pueden guardar en el registro FLG y los datos de entrada se sincronizan mediante el registro B. Quiz a primera vista no se de cuenta el estudiante de que ahora ya se pueden realizar mltiples operaciones, ms complejas, que si tan solo se tuviera la ALU original.

Unidad lgico aritmtica


Tambin resulta ms conveniente tratar a la nueva ALU como un bloque general al que se denominar ALU-1 y que se muestra en la figura

Unidad lgico aritmtica

Tambin se debe notar que, en forma directa, solamente se pueden ejecutar las siguientes operaciones lgicas: 1 Cargar el registro B con los datos de entrada. 2 Cargar el registro A con el resultado. 3 Actualizar las banderas. 4 Seleccionar la operacin de la ALU interna. 5 Fijar el acarreo de entrada. 6 El resultado y las banderas siempre estn disponibles.

Cualquier otra operacin que no sea alguna de las anteriores requiere de un proceso secuencial para llevarse a cabo, es decir, dos o ms ciclos de reloj.

Ejecucin secuencia
para darse cuenta del potencial de ALU-l se muestran a continuacin diversos ejemplos de operaciones secuenciales para obtener el resultado deseado. Borrar el acumulador. La tarea, en apariencia sencilla, de poner el acumulador A en ceros implica la ejecucin de varios procesos secuenciales en el siguiente orden:

Ejecucin secuencia
Ciclo 1: Cargar el registro B con el dato 0 Seleccionar F para que deje pasar a B Ciclo 2: Cargar el acumulador con el resultado Actualizar las banderas . Mantener F para que deje pasar a B

Ejecucin secuencia
En un primer ciclo se debe colocar como dato de entrada un 0 y activar la seal PB para que el registro B guarde este dato. Al mismo tiempo se selecciona como funcin lgica de la ALU, F, para que deje pasar a B (F=111). Es necesario seleccionar F desde este momento para que los datos ya estn listos en R durante el siguiente ciclo de reloj. No se deben olvidar los retardos y el tiempo de propagacin de los elementos.

Ejecucin secuencia
Ya que R tiene como valor a B, las banderas se han afectado y deben ser actualizadas, y al mismo tiempo se carga el acumulador con el resultado R. Para evitar transitorios, F debe conservar su valor. Estas operaciones pueden ser agrupadas en una tabla para entenderlas mejor, haciendo uso de nemnicos especiales, tal como se muestra en la tabla 2.3

Ejecucin secuencia

Ejecucin secuencia
Se han utilizado dos smbolos para indicar, en mnemnico, la operacin a efectuar: Significa "toma el valor de". Implica una operacin combinacional. Significa "se transfiere a". Implica una operacin secuencial.

Ejecucin secuencia
A pesar de que el simple borrado del acumulador implique el uso de al menos dos ciclos de reloj para llevarse a cabo, se debe notar el potencial de esta simple unidad lgico-aritmtica ya que en un principio, esta operacin no se encuentra definida.

Ejecucin secuencia
Invertir el acumulador. Para realizar la inversin del acumulador se requieren los siguientes pasos: Ciclo 1: Cargar el registro B con el dato 1 en todos los bits Seleccionar F para realizar la operacin XOR entre A y B Ciclo 2: Cargar el acumulador con el resultado Actualizar las banderas Mantener a F para evitar transitorios

Ejecucin secuencia

Incrementar el acumulador.

Decrementar el acumulador.

Sumar el acumulador con un dato.

Restar un dato al acumulador.

Comparar el acumulador con un dato.

Poner el acumulador en el resultado

Como se puede observar, son muchas las operaciones que se pueden llevar a cabo con esta ALU sencilla, basta definir unas cuantas secuencias para poder hacerlo. Tambin es cierto que algunas operaciones no se pueden realizar, como por ejemplo los desplazamientos o rotaciones. Sin embargo, el estudiante debe haber captado ya el potencial de esta estructura tan simple.

Unidad de microprograma
Ya que se han definido las secuencias necesarias para ejecutar una operacin completa en la ALU, se necesita el circuito que sea capaz de proporcionar dicha secuencia. Este circuito debe realizar las siguientes operaciones:

Unidad de microprograma
1 Contener las secuencias de todas las posibles operaciones 2 Dar secuencia a las operaciones intermedias 3 Decidir el tipo de instruccin a ejecutar

Un circuito capaz de contener almacenadas todas las posibles operaciones a ejecutar, con las secuencias de operaciones intermedias es un circuito ROM. Como este circuito contiene la secuencia, o programa, para realizar las operaciones, se denominar de ahora en adelante ROM de microprograma.

Unidad de microprograma
Para dar las secuencias intermedias se necesita un contador programable que sea capaz de iniciar la cuenta en la posicin donde comienza la instruccin y ejecutarla secuencialmente hasta que sea necesario cambiar de instruccin. Este circuito recibe el nombre de contador de microprograma.

Unidad de microprograma
Por ltimo, el circuito que se encarga de decodificar la instruccin y convertirla en la direccin donde se encuentra su cdigo de microprograma es otro circuito ROM, denominado ROM de mapeo.

Unidad de microprograma
La estructura final del sistema secuencial para completar la calculadora programable se muestra en la figura

Unidad de microprograma
Este circuito bsico ya es un microprocesador y se denomina microprocesador de primer nivel, debido a que cuenta con una mquina secuencial que se encarga de controlar la operacin del mismo. A pesar de que ya se pueden ejecutar instrucciones en forma secuencial, an carece de un sistema que permita automatizar la entrada de datos del exterior. Cuando se le agregue la unidad para controlar el acceso de datos del exterior, el microprocesador ser un microprocesador de segundo nivel, el cual ya es un microprocesador como los que se encuentran en el mercado.

Unidad de microprograma
La operacin del circuito de la figura se lleva a cabo como sigue: la instruccin a ejecutar entra por la seal INS y la ROM de mapeo se encarga de decodificarla para entregar la posicin donde se encuentra la secuencia de microinstrucciones de la instruccin en cuestin. El contador programable se carga con la direccin apuntada por la ROM de mapeo y comienza la secuencia de microinstrucciones que controlan a la ALU. Cuando la secuencia de microinstrucciones se ha completado, el contador se vuelve a cargar con la nueva direccin para ejecutar la siguiente instruccin.

Microprogramacin
Al proceso de definir la secuencia que debe ser completada para ejecutar un instruccin externa o macroinstruccin se le denomina microprogramacin. Este trmino se utiliza para definir un nuevo nivel de programacin, ms bsico que el mismo lenguaje de ensamblador de los microprocesadores.

Microprogramacin
Se debe recordar que existen los siguientes niveles de programacin:

Meta-programacin (MathLab, Visual C++) Programacin de alto nivel (C++, PASCAL, FORTRAN) Programacin de mediano nivel (ADA, ANSI C) programacin de bajo nivel (Ensamblador) Microprogramacin (Microprocesadores en su parte interna) Nanoprogramacin (Unidades operativas de los microprocesadores)

Microprogramacin
Como se pudo haber comprobado, al igual que los lenguajes de ensamblador, resulta mucho ms conveniente utilizar mnemnicos para representar las operaciones de transferencias de registros en un microprocesador que tratar de recordar los valores lgicos de las seales involucradas. Este lenguaje de mnemnicos se denomina RTL y resulta bastante til en el diseo de microprocesador

Microprogramacin
De manera primitiva ya se ha utilizado el RTL para describir las secuencias o microinstrucciones del procesador de primer nivel en los ejemplos desarrollados. A lo largo del curso se irn introduciendo nuevos smbolos que son elementos del RTL Y no se debe olvidar que cada microprocesador tiene su propio cdigo RTL

Procesador CISC de primer nivel


En el presente apartado se har el diseo de un procesador CISC de 8 bits, bsico. Cada uno de los elementos constitutivos se ir justificando conforme se vea la necesidad de incorporarlo en la estructura. Tambin se dar una introduccin al diseo de un juego de instrucciones para microprocesador desarrollado.

Procesador CISC de primer nivel


Unidad lgico-aritmtica La unidad lgico-aritmtica utilizada en la seccin anterior resultaba conveniente para la realizacin de ciertas funciones, pero tena limitaciones en otras instrucciones, para poder incluir un mayor nmero de operaciones, la ALU con la que se partir para el diseo del rnicroprocesador bsico ser la mostrada en la figura con las instrucciones presentadas en la tabla

Procesador CISC de primer nivel

Procesador CISC de primer nivel


Como la ALU-l se encontraba limitada en cuanto al manejo de operandos, sera deseable poder proporcionar una mayor versatilidad para que la ALU pueda tener acceso a diferentes operandos. Para lograr este objetivo se necesita colocar un selector de operandos que proporcione los datos de entrada a la ALU. En la figura se muestra el selector de operandos, en diagrama de bloque, y en la tabla se muestran las selecciones del mismo.

Procesador CISC de primer nivel

Ahora la ALU tiene posibilidad de manejar como operandos a los registros A y X, al registro interno PC y al bus de datos interno D. Tambin tiene como posibilidad manejar el dato cero, Z.

Procesador CISC de primer nivel


Antes de agregar otras unidades a la ALU, es importante definir el tipo de sincrona que llevarn los sistemas secuenciales como registros, contadores, etc. Por simplicidad, se seleccionar una sincrona de borde de disparo negativo para que las operaciones sean realizadas a partir de que el reloj toma el valor de cero y se concluyen cuando se completa el ciclo. La descripcin de la operacin de sincrona se muestra en la figura 2.7. Bien se pudo haber seleccionado un tipo de sincrona diferente, pero ste resulta ms comprensible.

Procesador CISC de primer nivel

Procesador CISC de primer nivel


Debido a que la ALU es la unidad principal de un microprocesador y de su eficiencia depender la eficiencia del microprocesador, conviene disear una estructura de registros que sea rpida y que permita que en un solo ciclo de reloj se pueda realizar una operacin y guardar el resultado. Para logra ste propsito, se utiliza una estructura pipeline de dos niveles para la manipulacin de los registros A y X siguiendo una tcnica de fases mltiples de reloj. En la figura 2.8 se muestra la forma en que se conforman los registros A y X y el uso del pipeline.

Procesador CISC de primer nivel

Inmediatamente al inicio de la microinstruccin (transicin negativa), los registros A y X se pasan a la etapa pipeline con lo que la ALU ya puede realizar la operacin, de tal forma que durante la sincrona intermedia (transicin positiva) el resultado de la ALU se encuentre listo para ser cargado por cualquiera de los registros, todo en un solo ciclo de reloj. El reloj de los registros pipeline siempre opera y el resultado no afecta la operacin si no se utilizan estos datos, debido a que solo son registros temporales.

Donde s importa la sincronizacin de las transferencias es en los registros propios A y X Y es por este motivo que la seal de habilitacin de carga deber sincronizarse con el reloj. La ltima seccin de la ALU la constituyen las banderas.

Estas seales se utilizan para la realizar la toma de decisiones en el proceso de cmputo y la unidad donde se procesan se denomina registro de condicin de cdigo. La unidad est constituida por un registro donde se almacenan las banderas y un multiplexor que permite la seleccin de cualquiera de ellas y sus inversos correspondientes. En la figura 2.9 se muestra el diagrama de bloques de esta unidad y en la tabla 2.13 se encuentra la forma en que se seleccionan.

La estructura final de la ALU con el selector de operandos, los registros y el registro de condicin de cdigo, a la que denominaremos ALU-2, se muestra en la figura 2.10. En forma de bloque funcional, la ALU-2 se muestra en la figura 2.11 y en la tabla 2.14 se hace un resumen de las seales disponibles para otras unidades.

ALU-2
Compruebe la funcionalidad de la ALU-2 y determine la secuencia necesarias para realizar las siguientes operaciones: 1.-Borrar el acumulador A 2.-Borrar el acumulador X 3.-Sumar A con X guardarlo en A 4.-Restar A de X y guardarlo en X 5.-Incrementar X

El estudiante debe darse cuenta que esta unidad lgico-aritmtica es capaz de realizar una cantidad muy grande de operaciones lgicas y aritmticas y sirve muy bien de base para un diseo microprocesadores. Sin embargo se debe notar que aun es incapaz de realizar desplazamientos y rotaciones. Esta ALU-2 ya es base para el diseo de un microprocesador simple y el siguiente paso es disear la unidad que de acceso a los datos externos o generador de direcciones.

Generador de direcciones
La unidad generadora de direcciones se encarga de proporcionar los accesos a los datos externos, desde y hacia el microprocesador. Como el estudiante recordar, el flujo de informacin hacia los dispositivos externos al microprocesador requiere de las siguientes seales:

1 Bus de datos (8 bits) 2 Bus de direcciones (8 bits) 3 Seal de lectura RD 4 Seal de escritura WR

Se restringir la capacidad de direccionamiento a 256 localidades de memoria ya que lo que se desea en esta primera aproximacin es introducir al estudiante con los elementos constitutivos y es por esto que el bus de direcciones solamente tiene 8 lneas.

El primer componente, y el ms importante del generador de direcciones es el contador de programa o PC. Este registro se encarga de llevar la cuenta de la direccin actual de la instruccin externa a ejecutar. Este registro debe ser capaz de poder borrarse, para inicializar el funcionamiento del microprocesador, y tambin tiene que tener la capacidad de carga condicional (dependiendo de la condicin de las banderas para saltos condicionales) y carga incondicional (saltos incondicionales). El registro PC se muestra en la figura 2.12

El siguiente registro que se necesita para el generador de direcciones es el apuntador de la pila, encargado del manejo automtico de los registros importantes cuando se realiza una subrutina. Este registro debe contar con una seal que lo inicialice en el valor con el que debe comenzar la pila. En nuestro caso ser definido como la parte ms alta de las direcciones. El apuntador de la pila o SP (Stack Pointer) se muestra en la figura 2.13.

Un elemento que resulta muy til en todo generador de direcciones es un registro de propsito general para poder almacenar operaciones intermedias. Este registro se denominar B y su diagrama de bloques se muestra en la figura 2.14.

El generador de direcciones ya cuenta con los registros necesarios para su manejo, sin embargo no tiene an comunicacin con los buses de direccin ni de datos. Primeramente diseemos el sistema de acceso al bus de direcciones. Este bus debe permitir diferentes modos de direccionamiento (directo, indexado, inmediato, pila) por lo que debe ser posible el colocar diferentes seales (PC, X, SP, B, etc.) en el mismo. El circuito que permite la direccin selectiva de diversos sistemas de buses es un multiplexor, el cual por conveniencia tendr las seales indicadas en la figura 2.15 y cuyo resumen se presenta en la tabla 2.15.

La ltima unidad, necesaria para completar el generador de direcciones es un sistema para permitir la entrada y salida de datos (bus de datos) y que por este bus se tenga acceso a todos los registros importantes del microprocesador, tanto de entrada como de salida. Los datos deben ser almacenados en un registro para poder procesar la informacin por otros elementos del microprocesador. Por esto se necesita un control de bus de datos como el que se muestra en la figura 2.16.

Al mismo tiempo, el microprocesador debe proporcionar las seales externas de lectura, RD, y escritura, WR. La misma seal de escritura controla el flujo de datos desde y hacia el exterior

El circuito de control funciona como sigue: Cuando se activa la seal WR, el buffer de salida se habilita permitiendo que el dato almacenado en el registro de datos se encuentre presente en el bus de datos externo. Si la seal de lectura se activa, el bus de datos externos pasa desde el exterior y se dirige hacia el multiplexor de datos y hacia otras unidades. El registro de datos puede cargarse con la seal de datos externos o con la seal proveniente del multiplexor de direcciones permitiendo el flujo de informacin de cualquier registro interno hacia el bus de datos.

Unidad de microprograma
El diseo de los bloques ALU-2 y el generador de direcciones ya permite realizar operaciones y transferirlas hacia sistemas exteriores, sin embargo, hace falta el control que se encargue de generar todas las seales internas que supervisen los sistemas de transferencia.

Unidad de microprograma
El control interno del microprocesador lo forma la unidad de microprograma. Son dos operaciones bsicas que tiene que ejecutar la unidad de microprograma:

1 Leer la macroinstruccin externa 2 Ejecutar la macroinstruccin

Unidad de microprograma
Estas operaciones son evidentes en el funcionamiento de un microprocesador ya que primero tiene que leerse la instruccin a ejecutar y despus generar el control necesario para su ejecucin. A estos dos ciclos se les conoce con el nombre respectivo de Fetch y Execute.

Unidad de microprograma
Primeramente se necesita de una unidad que contenga todas las secuencias precisas para la transferencia de registros entre las diferentes unidades y que est sincronizada con el reloj maestro.

Unidad de microprograma
Esta unidad ya fue bosquejada en la seccin 2.1 y se trata de una memoria de solo lectura, denominada ROM de microprograma, y el sistema encargado de la sincrona es un registro colocado a la salida de la ROM. El diagrama de bloques de la memoria de microprograma se muestra en la figura 2.190

Unidad de microprograma

Unidad de microprograma
Para el microprocesador que se est desarrollando, con 8 lneas de direccin (256 localidades) y 24 lneas de control es suficiente, como podr ser comprobado ms adelante. El segundo bloque de la unidad de microprogramacin es el microsecuenciador, encargado de proporcionar las secuencias de entrada a la ROM de microprograma para completar una macroinstruccin.

Unidad de microprograma
El microsecuenciador debe ser capaz de proporcionar tres tipos de seales: 1 Cero 2 Inicio de la macroinstruccin 3 Incremento del microsecuenciador

Unidad de microprograma
La seal de cero es necesaria para iniciar el ciclo Fetch donde se lleva a cabo la lectura de la siguiente macroinstruccin. El inicio de la macroinstruccin es la localidad de memoria en ROM de microprograma donde se encuentra la secuencia especfica de dicha macroinstruccin.

Unidad de microprograma
El incremento del microsecuenciador proporciona la secuencia de los ciclos necesarios para completar la ejecucin de la macroinstruccin. El secuenciador de microprograma se muestra en la figura 2.20.

La tercera parte de la unidad de microprograma es un circuito que permita la entrada de las macroinstrucciones externas y las decodifique para dar la posicin inicial de las secuencias a ejecutar. En la figura 2.21 se muestra esta unidad, denominada registro de instruccin y memoria de mapeo.

En la figura 2.23 se muestra la unidad de microprograma como un bloque funcional y en la tabla 2.17 se resumen las seales de esta unidad.

Microprogramacin
La microprogramacin consiste en la definicin de las secuencias necesarias para ejecutar una macroinstruccin externa al microprocesador, generando las seales de control interno que sern almacenadas en las memorias de microprograma y de mapeo.

Microprogramacin
Al igual que el lenguaje de ensamblador es una herramienta til para la programacin de microprocesadores al nivel ms bsico, la definicin de las seales de control interno de un microprocesador tienen un lenguaje denominado R TL que permite facilitar su manejo y definicin.

Microprogramacin
Con el objeto de simplificar la parte de la definicin de microinstrucciones, en la tabla 2.18 se encuentran resumidas todas las seales de control interno del microprocesador y el cdigo R TL ser explicado, seccin por seccin, en los siguientes apartados.

Microprogramacin

Microprogramacin

Instrucciones de la ALU
Cada una de las seales que se encuentran en la tabla 2.18 da lugar a nanoinstrucciones, que en conjunto forman la microinstruccin. Estas seales sern descritas por unidad y su cdigo R TL se explicar de manera detallada para su uso posterior.

Instrucciones de la ALU

Instrucciones de la ALU

Instrucciones de la ALU

Instrucciones de la ALU

Instrucciones de la ALU

Instrucciones de la ALU

Una vez que se han cubierto todas las nanoinstrucciones que contiene el microprocesador se puede iniciar al diseo del juego de instrucciones del mismo. El estudiante debe darse cuenta que las nanoinstrucciones descritas anteriormente son las nicas con las que cuenta el microprocesador. Cualquier otra transferencia de registros no est definida

Diseo del juego de instrucciones


El juego de instrucciones de un microprocesador es el conjunto de operaciones que pueden ser programadas en forma externa. Dependiendo del tipo y poder del microprocesador, tambin lo ser su juego de instrucciones

El microprocesador UPC-l es muy elemental y cuenta con muy poca capacidad de cmputo, an as, se le puede definir un conjunto de instrucciones relativamente modesto. Las macroinstrucciones pueden ser agrupadas de la siguiente forma: 1 Acumulador y memoria 2 Saltos y bifurcaciones 3 ndice 4 Pila 5 Control interno .

Todos los microprocesadores incluyen varias macroinstrucciones de cada uno de los grupos enumerados y depender de las necesidades particulares la forma en que sean asignadas y definidas.

Definicin de un juego de instrucciones


Antes de definir un juego de instrucciones para el microprocesador UPC-l, se tienen que tomar en cuenta las limitaciones del mismo en cuanto a capacidad. La primera limitante que se tiene que considerar es la del nmero total de macroinstrucciones que se pueden ejecutar. La segunda limitante es la longitud de la secuencia de ejecucin.

Definicin de un juego de instrucciones


Como se ha restringido al registro de instruccin (IR en la figura 2.21) a cinco lneas. Solamente se pueden tener 32 macroinstrucciones, las cuales son ms que suficientes para nuestros objetivos

Dado que la capacidad de la memoria de microprograma se ha restringido a un direccionamiento de 8 bits, solamente se pueden tener 256 secuencias diferentes, almacenadas para su ejecucin.

Por lo tanto, adems de no sobrepasar de 32 el nmero de macroinstrucciones, estas en su conjunto deben ser programadas en 256 microinstrucciones en forma total, dando un promedio de 8 microinstrucciones por macroinstruccin. Tambin esta capacidad es ms que suficiente para nuestros propsitos

Con el objeto de simplificar el diseo de las macroinstrucciones, se ha preparado la hoja de microprogramacin de la tabla 2.19 donde el estudiante podr completar el diseo de sus propias macroinstrucciones

En la hoja de microprogramacin se encuentra resumida toda la informacin necesaria para contar con una referencia rpida de todas las seales, el cdigo RTL y otra informacin pertinente

El grupo de 32 macroinstrucciones que sern definidas para el microprocesador UPC-l se muestran en la tabla 2.20

Macroinstrucciones
El alumno debe recordad que un microprocesador es una mquina de dos ciclos: 1.- Fetch 2.- Execute

Macroinstrucciones
EI cicIo Fetch se encarga de leer la macroinstruccin que se va a ejecutar y saltar a la direccin de microprograma donde esta se encuentra codificada. EI cicIo Execute se encarga de secuenciar al microprograma para la realizacin de la instruccin en cuestin y retornar al cicIo Fetch para leer otra macroinstruccin

Macroinstrucciones

Macroinstrucciones
De la existencia de estos dos ciclos dentro del microprocesador, se deduce que existen dos tipos de secuencias de microinstrucciones: La primera para el ciclo fetch La segunda para el ciclo execute

Ciclo fetch
El ciclo fetch se encarga de realizar la lectura de la instruccin a ejecutar, incrementa el contador de programa y salta a la secuencia definida por la instruccin leda. Para realizar esta funcin se tienen que definir la secuencia de seales adecuada al proceso

Ciclo fetch
Ciclo I

Pon el PC en el bus de datos internos para dar salida a la direccin de la siguiente instruccin a ejecutar. ID(PC)

Ciclo fetch
Seleccionar como operandos de ALU al bus de datos interno y cero lgico YWDZ Realizar la suma del PC con cero lgico y acarreo de entrada ALUADD, [CI] Habilitar la entrada de datos externos [RD]

Continua a la secuencia siguiente. [INC] Ciclo 2 Mantener condicin para evitar transitorios ID(PC), YWDZ, ALUADD, [CI], [RD] Cargar el contador de programa con el resultado de la ALU

R(PC) Cargar el registro de instrucciones con el dato externo DT(IR) Con esto se completa el ciclo fetch y el resumen de las microinstrucciones se muestran en la tabla

También podría gustarte