Unidad 2: Sistemas Digitales de Programa Almacenado

Anuncio
Unidad 2: Sistemas Digitales de Programa
Almacenado
March 14, 2013
Temas
Arquitectura de Von Neumann. Organizacin de una CPU: Registros: contador de programa, registro de instruccin, puntero de pila, acumulador, registros de propósito general, registros códigos de condición, ı́ndice y especiales. Unidad Aritmético-Lógica.
Unidad de control: microprogramación. Representación de datos e instrucciones.
Tipos de instrucciones. Ciclos de operación. Modos de direccionamiento: inmediato, implı́cito, extendido, paginado, relativo, indexado, indirecto memoria y registro,
indexado indirecto, etc.
1
Introducción
La computadora es tal vez el “invento” del Siglo XX que abrió las puertas a la modernidad. El desarrollo que tuvo a partir de la Segunda Guerra Mundial al presente fue
vertiginoso e impactó sobre todas las actividades realizadas por el hombre, y todavı́a no
se vislumbra un lı́mite en sus aplicaciones. Curiosamente, tamaño desarrollo carece de
una patente y de un único creador que de haber existido se habrı́a hecho infinitamente
rico.
Las computadoras electrónicas se remontan a la Segunda Guerra cuando los aliados
y en especial los ingleses desarrollan el Proyecto Colosus que quebraba la criptografı́a
alemana de las máquinas Enigma. Detrás del proyecto estaba el matemático Alan Turing en cuya memoria la ACM entrega una distinción anual equivalente al Premio Nobel
pero en computación.
Las máquinas del Proyecto Colosus sin embargo no se pueden catalogar como computadoras en el sentido en que lo hacemos hoy dı́a pues solamente resolvı́an un problema, descifrar los mensajes escritos con Enigma.
En 1945, en Estados Unidos, un grupo de cientı́ficos trabajaba en Pensylvania sobre el desarrollo de una computadora digital (Electronic Discrete Variable Automatic
Computer). Entre los memorandums con los que trabajaban se filtro uno que llevaba
la firma de uno de ellos que era Von Neuman. El impacto del memorandum fue tan
grande que a partir de ese momento, la arquitectura presentada llevó ese nombre en
1
DIEC-UNS
Sistemas Digitales de Programa Almacenado
desmedro de los otros miembros del equipo que colaboraron con el desarrollo. La Arquitectura propuesta presentaba un Unidad Aritmético Lógica encargada de realizar las
operaciones, un conjunto de registros de acceso rápido, una unidad de memoria en la
que se almacenaban datos e instrucciones de manera indistinguible y una Unidad de
Control que controlaba los distintos elementos, buscaba las instrucciones en memoria,
las decodificaba y las ejecutaba.
No fue hasta el 21 de junio de 1948 que por primera vez en la historia una computadora corrió un programa que estaba almacenado en memoria, este programa además
podı́a cambiarse por otro y la computadora entonces realizaba tantas funciones o aplicaciones como programas se le pudieran escribir. Esta computadora se denominó “The
Baby” y fue construida en la Universidad de Manchester. En el diseño participaron
entre otros Alan Turing. En ese tiempo entre los problemas a resolver estaba la memoria. Esta era una limitante muy importante. El grupo de la Universidad de Manchester
trabajaba sobre una memoria basada en un tubo de rayos catódicos y para probar la
factibilidad de la misma desarrolló lo que finalmente serı́a el puntapié inicial de una
carrera que todavı́a no ha concluido.
Al año siguiente la computadora ya presentaba mejoras varias y se denominó Mark
I. La empresa Ferranti comenzó la producción de computadoras de manera comercial y
en 1951 vendı́a la Mark I. La primera computadora arribada a la Argentina apenas una
década después era de la fábrica Ferranti y fue instalada en el Instituto de Cálculo de la
Universidad de Buenos Aires a instancias del Prof. Sadosky. Se la llamó “Clementina”.
“The Baby” era una máquina que tenı́a una palabra de 32 bits de longitud, utilizaba
una ALU que operaba con aritmética serial en Ca2 y tenı́a un único modo de direccionamiento (modo de acceder a los datos en memoria). La RAM original era de 32
palabras pero era extendible a 8192. Requerı́a de 1.2 ms por instrucción. El primer
programa que corrió fue el cálculo del factor más alto de un número, se probó con 218
y requirió 52 minutos de cálculo.
Con motivo del 50 aniversario de esta computadora, la Universidad de Manchester,
reconstruyó la misma y organizó una competencia de programación para que de todas
partes del mundo escribieran aplicaciones. Como la memoria es un tubo de rayos
catódicos hubo infinidad de programas que aprovecharon la parte visual para hacer
animaciones. La computadora sólo tenı́a 7 instrucciones que se identificaban con 3
bits. La memoria era un tubo de 32 x32 bits y habı́a otro tubo para los registros que
eran un acumulador y punteros hacia la instrucción actual y la siguiente.
Más información sobre esto se consigue en:
Computer50.org
2
Arquitectura Von Neumann
La definición de Arquitectura de Computadora es un tema de discución todavı́a hoy en
ciencias e ingenierı́a de computación. En su versión más tradicional, se afirma que la
arquitectura está definida por el conjunto de instrucciones que se utilizan para su programación. La arquitectura además del diseño del conjunto de instrucciones contempla
la organización y el hardware. En verdad hay máquinas con practicamente id́enticos
lenguajes pero que difieren en su organización y otras que tienen organización similar
Computadoras Digitales 2013
2
R. Santos
DIEC-UNS
Sistemas Digitales de Programa Almacenado
pero hardware distinto. El término organización se refiere al sistema de memoria, la
estructura de los canales, y la organización interna de la CPU (Unidad Procesadora
Central) en donde las operaciones aritméticas, lógicas, de salto y transferencia de datos
son implementadas. El hardware se refiere a las particularidades de implementación
electrónica: diseño lógico, como se construye, etc. 1
La trabajo de Von Neumann se limitaba a las cuestiones de organización y no introducı́a las cuestiones relacionadas con el conjunto de instrucciones o su implementación
electrónica. La realización de la “Baby” y posteriormente la “EDVAC” en Pennsylvania dieron forma real a una computadora.
La organización propuesta por Von Neumman entonces contaba con 4 partes:
• Unidad Aritmética Lógica.
• Memoria.
• Registros.
• Unidad de Control.
La particularidad que esconde esta organización y que determina su funcionamiento
tanto en las instrucciones como en la parte de hardware es la existencia de una única
memoria en la cual se almacenarán de manera indistinguible tanto datos como instrucciones. La determinación de si un determinado lugar de memoria contiene un dato o
una instrucción responde a la manera en que el programador desarrolló su programa.
2.1
Memoria
La memoria se describe como un arreglo lineal de palabras de la longitud que maneje
el procesador. Habitualmente se utilizan memorias de 8 bits de palabra combinandose
para obtener palabras más largas cuando es necesario en paralelo. La memoria se
accede por medio de punteros que permiten leer los lugares adecuados. Para esto hay
un registro especial que se llama contador de programa que mantiene el lugar donde
se encuentra la siguiente instrucción.
Los distintos tipos de memoria se estudiarán más adelante pero se pueden clasificar
rápidamente en estáticas o dinámicas, siendo las primeras utilizadas para almacenar
programas y las segundas para almacenar los valores cambiantes de las variables utilizadas.
Las memorias en general tienen una gran cantidad de bytes y requieren entonces el
uso de un canal de direcciones que permita acceder a los distintos elementos de manera
aleatoria (no secuencial). Los accesos a memoria son entonces costosos desde el punto
de vista temporal pues el procesador debe primero decodificar la dirección para luego
acceder a la misma.
1 Para más información sobre este tema se puede consultar “Computer Architecture: A Quantitative Approach. J. Hennessy and D. Patterson, Morgan Kaufman”
Computadoras Digitales 2013
3
R. Santos
DIEC-UNS
2.2
Sistemas Digitales de Programa Almacenado
Registros
Los registros son elementos de memoria de acceso inmediato por parte de la unidad de
control. Están junto a la ALU dentro de la CPU y pueden almacenar de manera temporal los valores de variables o el estado del procesador. Los procesadores se pueden
definir aún dentro de la organización Von Neumann como orientados a registro o orientados a memoria. En la primera tendencia, se cuenta con una gran cantidad de registros
que permite realizar operaciones rápidas. En la segunda las operaciones requieren los
acceso a memoria y hacen al sistema en principio más lento. Sin embargo esta clasificación inicial va perdiendo valor a medida que los procesadores incorporan memorias
en sus integrados y facilitan la operación sobre las mismas.
Los registros que están presentes siempre son el acumulador, el contador de programa o puntero de instrucción y el registro de instrucción. El primero sirve para
realizar las operaciones aritmético-lógicas y el segundo indica la siguiente instrucción
a realizar. El último tiene la instrucción que se está ejecutando.
Otros registro que se utilizan habitualmente son los registros de propósito general
que sirven para almacenar valores intermedios, realizar operaciones contra el acumulador, ser contadores, etc.
Los registros ı́ndices también son muy utilizados y sirven para manejar arreglos y
estructuras de datos.
Los registros de estado indican como está operando el procesador y dan información sobre las últimas operaciones realizadas. Argumentos tradicionales son las
banderas Z (cero), P (paridad), O (overflow), S (signo).
Los procesadores suelen implementar una pila que utilizan para almacenar información en memoria temporal, la pila se maneja por medio de un registro denominado
puntero de pila presente en practicamente todos los procesadores modernos.
Existen además registros especiales dedicados por ejemplo al refresco de memorias
dinámicas, manejo de interrupciones o funciones especı́ficas de ciertas plataformas.
En algunos casos, el manejo de la memoria es complejo y no lineal como se presentaba al inicio y esto incorpora entonces una serie de registros que permiten administrar la memoria en espacios lógicos y fı́sicos.
Finalmente, en la actualidad muchos procesadores se manejan con bancos de registros. Es decir que hay varios conjuntos de registros iguales que permiten al programador mantener el contexto de distintos programas sin necesidad de almacenar el
mismo en memoria.
2.3
Unidad Aritmético Lógica (ALU)
La ALU es una parte fundamental del procesador. Es la encargada de realizar las operaciones aritméticas y lógicas. La ALU cuenta con un acumulador que es un registro
que habitualmente es de entrada y de resultados también. Además, la ALU tiene un
registro de estado en el que indica particularidades del resultado como si hubo acarreo,
si la cuenta dio cero, el signo del resultado y si hubo overflow.
Computadoras Digitales 2013
4
R. Santos
DIEC-UNS
2.4
Sistemas Digitales de Programa Almacenado
Unidad de Control (UC)
Es la unidad más compleja. Coordina todas las acciones. La unidad de control se
encarga de buscar la instrucción en memoria, decodificarla y ejecutarla. Para ello puede
recurrir a los registros, la ALU y la memoria. Tiene un registro especial denominado
Registro de Instrucción que es donde se almacena la instrucción en ejecución.
La UC implementa una máquina de estados que puede evolucionar de manera
sincrónica o asincrónica. Los procesadores comerciales son sincrónicos pues es más
simple su construcción y funcionamiento. Las máquinas asincrónicas pueden lograr
una mejor utilización o rendimiento pero son extremadamente difı́ciles de diseñar y
ajustar.
La UC determina entonces la secuencia de tareas a realizar y genera el temporizado
de las señales de control necesarias para ejecutar una determinada instrucción.
El procesador guiado por la UC realiza un ciclo de ejecución que requiere los siguientes pasos:
1. La UC requiere y busca de memoria la próxima instrucción.
2. La UC decodifica la instrucción. Esto significa que interpreta la instrucción y
define las señales de control que intervienen y su temporizado.
3. De acuerdo al tipo de instrucción, la UC volverá a memoria una o dos veces más
a buscar un operando.
4. Ejecuta la acción determinada por la instrucción.
5. Si corresponde almacena el resultado en memoria.
6. Regresa al punto 1.
2.5
Unidad de Entrada/Salida
La unidad de entrada/salida es un tipo particular de memoria. En general estas unidades
cuentan con un número limitado de registros de memoria que sirven para la programación de un dispositivo, para la lectura o escritura de un valor en dispositivos tales
como controladores, conversores, etc.
2.6
Canales
La CPU está formada por la UC, los Registros y la ALU. La memoria es externa al
igual que las unidades de entrada/salida que son particulares de cada configuración. El
modo en que la CPU se comunica con la memoria y los periféricos es por medio de
canales. Como se vio en la Unidad anterior, los canales facilitan la interconexión de los
dispositivos cuando estos son muchos. En una computadora hay tres canales básicos:
datos, direcciones y control.
Computadoras Digitales 2013
5
R. Santos
DIEC-UNS
2.6.1
Sistemas Digitales de Programa Almacenado
Datos
Se utiliza para la transferencia de datos. Puede ser entre el procesador y la memoria,
entre el procesador y una unidad de entrada/salida o entre memoria y dispositivos.
La cantidad de bits del canal coincide en general con la palabra base de la ALU o el
procesador.
2.6.2
Direcciones
Se utiliza para direccionar y acceder a los lugares especı́ficos de memoria. La cantidad
de bits del canal determinan la cantidad de memoria que puede manejar el procesador.
2.6.3
Control
Contiene las lineas de sincronismo que permiten acceder a los dispositivos de manera
segura. Complementa a los otros dos canales. Las lı́neas de control más usuales son:
• Reset
• Enable
• Read
• Write
• Ready
• Wait
• Intr
• Clock
• Hold
• Inta
• Ack
Algunas de estas lı́neas son manejadas por la UC y otras por los periféricos en las
unidades de E/S, las memorias o incluso el usuario (botón de Reset).
En una operación de lectura de memoria intervienen los tres canales. El de direcciones es el encargado de decodificar el lugar deseado de la memoria, el de control
establecerá que la operación es de lectura colocando la linea Read en el estado adecuado y recien entonces la memoria pondrá disponible en el canal el dato almacenado
para que pueda ser cargado por el procesador.
Dentro de la CPU se cuenta también con canales que permiten trabajar sobre la
ALU y los registros. Sin embargo este canal es cerrado en tanto no es posible acceder
desde el exterior o modificarlo. Los canales disponibles del procesador en cambio,
dejan la libertad al diseñador para trabajar.
Computadoras Digitales 2013
6
R. Santos
DIEC-UNS
3
Sistemas Digitales de Programa Almacenado
Representación de Datos e Instrucciones
La memoria almacena instrucciones y datos. Sin embargo, esta información siempre
está guardada en forma de números binarios y la interpretación que de ella se haga
la convierte en una instrucción, un número o un caracter. Para comprender que es lo
que efectivamente está almacenado hay que poseer el conocimiento del objeto de la
información.
3.1
Datos binarios
Pueden ser números o estados. Se leen simplemente como números con o sin signo
dependiendo de si se los considera en complemento a2 o no. Muchas veces la longitud
de la palabra de memoria no alcanza para representar a un valor y se utilizan varios
bytes para ello. Si el número está expresado en punto flotante entonces cada bit además
tiene su propio significado dentro del número.
3.2
Datos codificados
En este caso los números representados en la memoria representan algo diferente a un
valor numérico. Quedan claramente libres a la interpretación del programador. Por
ejemplo, la letra A mayúscula en ASCII se representa como 41h. Este número por si
sólo no expresa más que un valor, sólo cuando el programa lo interpreta como la letra
A, puede ser utilizado para alguna operación. Existen muchos códigos que se utilizan
en computación pero los más corrientes son ASCII y BCD.
3.3
Instrucciones
Las instrucciones como en los otros casos son datos binarios que el procesador interpreta como instrucción. Estas tienen formas pre-establecidas según el tipo de microprocesador de que se trate y longitud de palabra. Las instrucciones en microprocesadores de 8 bits pueden ser de un byte, dos o tres. La estructura general de una
instrucción es una operación (suma, resta, división, salto, comparación, etc.) seguida
de los operandos o datos sobre los que se debe actuar. Algunas instrucciones tienen a
sus operandos implı́citos por lo que no requieren que estos se manifiesten.
El conjunto de instrucciones es una de las caracterı́sticas de las arquitecturas. Algunas pocas instrucciones son suficientes para realizar gran cantidad de operaciones.
Como se introdujo al principio de esta Unidad, la “Baby” solamente contaba con 7
instrucciones y su sucesora con 11. Los microprocesadores modernos cuentan con un
conjunto mucho más completo pero no por esto pueden realizar especificamente más
cosas. Surge entonces una clasificación de las arquitecturas que parte de dos conceptos
antagónicos:
• Un conjunto reducido de instrucciones simples que se ejecutan muy rápido porque
la decodificación es simple. Estas máquinas son conocidas como RISC (Reduced
Instruction Set Computer)
Computadoras Digitales 2013
7
R. Santos
DIEC-UNS
Sistemas Digitales de Programa Almacenado
• Un conjunto amplio de instrucciones que permite incorporar instrucciones complejas que realizan en un paso una operación complicada pero que su decodificación y atención es lenta. Estas máquinas son conocidas como CISC (Complex
Instruction Set Computer).
Una buena comparación de ambas aproximaciones puede ser encontrada en el siguiente enlace:
RISC vs CISC
Por otra parte es posible clasificar a los procesadores por el modo en que operan
sus ALU. Existen tres tipos básicos que pueden estar o no combinados:
• Pila. Los operandos son los dos primeros lugars de la pila. Esto se utiliza en la
Notación Polaca Inversa que utilizan las calculadoras de HP.
• Acumulador. Uno de los operandos siempre es el acumulador, por lo que hay
que explicitar al segundo operando, sea este un registro o un lugar de memoria.
• Registros de propósito general. En este caso se deben explicitar los dos operandos que pueden ser registros o lugares de memoria.
De las tres variantes, la última es la más utilizada en la actualidad por su gran
versatilidad. Sin embargo, en el ámbito de los microcontroladores es usual encontrar
una CPU que opere sobre el acumulador.
3.4
Lenguajes
El lenguaje de programación de un procesador está determinado por su conjunto de instrucciones. Estas no son más que números binarios que representan acciones que ejecuta el procesador. En este formato, se denomina lenguaje de máquina. Evidentemente
escribir un programa enteramente en lenguaje de máquina requiere de muchisima paciencia, es factible cometer múltiples errores y por otra parte es de muy difı́cil comprensión.
Para solucionar este inconveniente, cada instrucción es representada por una palabra o nemónico que en general indica el significado de la instrucción. Por ejemplo son
comunes los nemónicos:
• ADD indica la suma
• SUB indica la resta
• JMP o BRA indica un salto incondicional
• JNZ Salto condicionado a la no existencia de la bandera de cero.
• CALL llamada a una rutina que retorna usualmente con RET
Los nemónicos serán más o menos intuitivos de acuerdo a la experiencia del programador y a la cantidad de instrucciones del conjunto.
Computadoras Digitales 2013
8
R. Santos
DIEC-UNS
Sistemas Digitales de Programa Almacenado
El conjunto de nemónicos se denomina Lenguaje Assembler y su función es expresar de manera simbólica al lenguaje de máquina. Como el microprocesador solamente
comprende a este último, se precisa de un compilador que traduzca el assembler.
La incorporación de un compilador permite la introducción de otros comandos que
no son para el procesador sino para el compilador. Estos comandos que se denominan
directivas permiten programar de manera relativa sin determinar los lugares de memoria de manera explı́cita, abreviar la escritura del programa mediante la incorporación
de macros, establecer variables y constantes de manera segura, etc. Entre las directivas
más comunes se encuentran ORG que apunta a un sitio de memoria indicando que todo
lo que sigue deberá iniciarse en ese lugar, DB que sirve para definir una variable de tipo
byte, EQU que sirve para identificar constantes, END que le indica al compilador hasta
donde debe leer el assembler. Hay además directivas condicionales que permiten al
compilador definir que porciones de código se compilan de acuerdo a caracterı́sticas
particulares.
3.5
Tipos de Instrucciones
Las instrucciones de un procesador tienen diferentes objetivos y están destinadas a operar sobre distintos operandos. Las instrucciones entonces se pueden clasificar como:
1. Aritméticas: son las que realizan operaciones aritméticas como sumas, restas,
multiplicaciones, divisiones, incrementos, decrementos, etc.
2. Lógicas: son las que realizan operaciones de lógica booleana como AND, OR,
XOR, Complementar, negar, comparar.
3. Desplazamiento: se encargan de rotar los bits de un registro o lugar de memoria
en cualquier sentido, replicar un bit, utilizar o no el carry para la rotación. No
están presentes en todos los procesadores.
4. Transferencia de datos: estas instrucciones mueven la información entre la memoria y los registros, entre registros o entre registros y memoria. Pueden además
cargar datos en un registro de manera inmediata. La variedad de estas instrucciones depende del procesador.
5. Entrada/Salida: al igual que el tipo anterior, éste se dedica a la transferencia de
datos pero se restrinje a las unidades de entrada/salida que suelen tener un acceso
diferente al de las memorias.
6. Salto o Transferencia de control: estas instrucciones se utilizan para derivar el
programa en base a condiciones o requerimientos. Pocas veces un programa se
ejecuta de manera lineal de principio a fin sin requerir en algún punto establecer
un lazo o realizar un llamado a una rutina particular.
7. Pila: estas son instrucciones especı́ficas para el manejo de la pila. Cuando hay
una transferencia de control a una rutina sea por una llamada en el software o
por una interrupción, los procesadores suelen almacenar el status del procesador
en la pila. La pila sirve además para pasar parámetros entre funciones o rutinas
Computadoras Digitales 2013
9
R. Santos
DIEC-UNS
Sistemas Digitales de Programa Almacenado
dentro de un programa y eventualmente para almacenar de manera transitoria
variables.
8. Control de Máquina: en general están presentes en todos los procesadores, son
NOP y HALT. La primera no hace nada más que correr el tiempo mientras que
la segunda detiene la ejecución del procesador.
De acuerdo al procesador puede haber otros tipos de instrucciones pero las anteriores están presentes en practicamente todos.
4
Modos de Direccionamiento
La potencia de un procesador se determina en gran medida con los modos de direccionamiento que es el mecanismo por el cual accede a la memoria para buscar datos o
para almacenarlos.
Los modos de direccionamiento se pueden clasificar como imı́citos cuando los
operandos de la operación son determinados por el mismo código de operación y
explı́citos cuando los operandos se manifiestan.
A continuación se listan algunos de los modos más usuales.
• Registro: se trata de un direccionamiento implı́cito. Dentro del código de operación un conjunto de bits identifican los registros sobre los que se opera.
• Inmediato: en este caso el operando de la instrucción es una constante sobre la
que se opera. Por ejemplo se carga de manera inmediata un valor en un registro,
o se suma, resta, etc. Solamente hay un operando.
• Inherente: actúan sobre la memoria en función del valor de puntero de pila. Son
las operaciones de PUSH y POP sobre la pila.
• Directo o Absoluto: se indica la dirección del operando de manera explı́cita.
• Paginado: para los procesadores que pueden manejar la memoria de manera
paginada, se indica únicamente el desplazamiento sobre la página.
• Relativo: se conforma a partir de la dirección actual del contador de programa.
En muchos casos las transferencias de control son relativas de modo que van 127
lugares hacia adelante o 128 hacia atrás.
• Indexado: se usa un registro ı́ndice al cual e le suma un operando. Conceptualmente el operando es la dirección base y el ı́ndice el offset. Sirve para manejao
de listas y arreglos. Son costosas en tiempo y tienen diferentes formas de implementarse.
• Indirecto: se usa un elemento intermedio que contiene la dirección final. Puede
ser un registro o un lugar de memoria.
• Autoincremento/autodecremento: algunos procesadores poseen instrucciones
que pueden operar sobre memoria incrementando/decrementando las instrucciones de manera automática.
Computadoras Digitales 2013
10
R. Santos
DIEC-UNS
5
Sistemas Digitales de Programa Almacenado
Operación Interna de un Microprocesador
La ejecución de un programa por parte de un microprocesador sigue una serie de
operaciones que se encadenan secuencialmente siguiendo una máquina de estados.
Básicamente la UC buscará una instrucción en la memoria y luego la ejecuta para
volver a buscar una nueva instrucción. Por lo tanto las operaciones básicas de un procesador son:
• Búsqueda (Fetch)
• Ejecución
La ejecución de una instrucción consta entonces de uno o más ciclos de máquina
que se identifican como:
• Fetch
• Lectura de Memoria
• Escritura de Memoria
• Lectura de E/S
• Escritura de E/S
• Reconocimiento de interrupción
Un ciclo de instrucción comprende entonces a uno o varios de los anteriores y su
duración se mide desde el inicio del mismo hasta su finalización en periodos de reloj
que se denominan estados.
Cada ciclo de máquina está compuesto por un número entero de estados de reloj.
En general un ciclo dura al menos tres estados ya que requiere uno para direccionar el
canal, en el siguiente prepara la transferencia y en el último la realiza.
La Figura 1 presenta un ciclo de instrucción completo 2 .
6
Control y Temporizado
El microprocesador es una máquina de estados que evoluciona con un reloj. Éste puede
ser de fase simple o doble. En el primer caso se cuentan con dos flancos y dos niveles
mientras que en el segundo hay cuatro flancos y varias combinaciones posibles de
niveles. Con esta segunda versión en un ciclo de reloj la máquina puede realizar más
acciones. En la actualidad está practicamente en desuso. El 6500 de la familia Motorola
tenı́a un reloj de fase doble.
En la Figura 2 se presenta la evolución de una máquina de estados similar a la que
implementa un microprocesador 8085.
2 Obtenida
de Microprocessors, Interfacngs and Applications, pag 188
Computadoras Digitales 2013
11
R. Santos
Sistemas Digitales de Programa Almacenado
DIEC-UNS
Figure 1: Ciclo de Instrucción Completo para STA (8085)
Computadoras Digitales 2013
12
R. Santos
DIEC-UNS
Sistemas Digitales de Programa Almacenado
Figure 2: Diagrama de transisición de estados de un procesador de simple fase
Computadoras Digitales 2013
13
R. Santos
Descargar