DISEÑO DE COMPUTADORES
El diseño del
computador digital es una tarea complicada. No se debe espera el cubrimiento de todos los
aspectos del diseño en un solo capítulo.
Aquí interesa el sistema y el diseño lógico de un computador digital pequeño
cuyas especificaciones se formulan de una manera arbitraria para poder establecer
una configuración mínima para una
máquina muy pequeña, aunque práctica.
El proceso del diseño se divide
en seis fases:
- La descomposición .del computador digital en registros que especifican la configuración general del sistema.
- La especificación de las instrucciones del computador.
- La formulación de los circuitos de tiempo y de control.
- La lista de operaciones de trasferencia entre registros necesaria para ejecutar todas las instrucciones de computador.
- El diseño de la sección del computado
- El diseño de la sección del control.
El proceso de
diseño se lleva a cabo por medio de las listas tabuladas que sumarizan las
especificaciones y operaciones en forma compacta. La sección del procesado se
define por medio del diagrama de bloque que consiste de registros y multiplexores.
Se asume que el lector tiene información suficiente para remplazar los bloques
en el diagrama con circuitos MSI.
Esta configuración se supone que satisface la estructura del sistema final. En una situación practica, el diseñador comienza con una configuración tentativa de un sistema, y la modifica constantemente durante el proceso de diseño. El nombre de cada registro se escribe dentro del bloque, conjuntamente con la designación simbólica en paréntesis.
El generador del
reloj maestro es una fuente de pulsos de reloj común, por lo general un
oscilador, el cual genera un tren periódico de pulsos. A estos pulsos se les da
mayor capacidad por medio de amplificadores y se distribuyen por todo el
sistema. Cada pulso debe llega a cada flip-flop y registros al mismo tiempo. El
llevar los retardos a la misma fase puede necesitarse indirectamente de manera
que la diferencia en retardos de trasmisión es uniforme por todas partes. La
frecuencia de los pulsos es una función de la velocidad con la cual opera el
sistema. Se asume una frecuencia de 1 megaciclo, la cual da un pulso cada
milisegundo. Esta frecuencia de pulso se escoge para tener un número redondo y
evitar problemas de los retados de propagación en los circuitos. La unidad de
memoria tiene una capacidad de 4.096 palabras de 16 bits cada una. Esta capacidad
es suficientemente larga para un proceso significativo. Se puede usar un tamaño
menor si se desea construir un computador en el laboratorio bajo restricciones
económicas.
Instrucciones de Computador
El número
de instrucciones disponibles en un computador y su eficiencia en resolver el
problema entre manos, es una buena indicación de lo bien que el diseñador del
sistema previó la aplicación que se requería de la máquina. Los sistemas de
cómputo mediano y de gran escala, pueden tener cientos de instrucciones,
mientras que la mayoría de computadores pequeños limitan la lista a menos de
100. Las instrucciones se deben escoger con cuidado para imprimir las
características suficientes del sistema con el fin de resolver un amplio rango
de problemas de procesamiento de datos. Los requerimientos mínimos de tal lista
deben incluir una capacidad para almacenar y cargar palabras de la memoria, un
conjunto suficiente de operaciones aritméticas
y lógicas, algunas propiedades de modificación de direcciones, bifurcación
incondicional, bifurcación bajo condiciones de prueba, propiedades de
manipulación de registro e instrucciones I/O. La lista instrucciones escogidas para el
computador pretende ser la mínima requerida para un procesador de datos
práctico pero restringido.
La
formulación del conjunto de instrucciones para el computador va mano a mano con
la formulación de los formatos para datos y palabras de instrucciones. Una
palabra de memoria consiste de 16 bits. Una palabra pude representar una
unidad de datos o una instrucción. Los formatos de palabras de datos se
muestran en la imagen siguiente. Los datos para las operaciones aritméticas se
representan por un número binario de 15 bits con un signo en la posición del
bit décimo sexto. Se asume que los números están en su-equivalente de
complemento de 2. Las operaciones lógicas se realizan con bits individuales de
la palabra, con el bit 16 tratado como cualquier otro bit. Cuando el computador
se comunica con un dispositivo I/O, la información
trasferida se considera compuesta de caracteres alfanuméricos de 8 bits. Dos de
estos caracteres pueden acomodarse en una palabra de computador.
Los
formatos de palabras de instrucción se muestran en la imagen siguiente. La
parte operativa de la instrucción contiene cuatro bits; el significado de los 12 bits restantes depende del código de operación encontrado. Una instrucción de
referencia de memoria usa los 12 bits
restantes para especificar una instrucción. Una instrucción de referencia de
registro implica una operación o prueba con el registro A o el E. No se
necesita un operando de la memoria; por tanto, los 12 bits menos significativos
son usados para especificar la operación o la prueba que se va a ejecutar. Una
instrucción de referencia de registro se reconoce por el código 0110 en la
parte de operación. Similarmente una instrucción de entrada-salida no necesita una referencia para la memoria y se reconoce
por el código de operación 0111. Los 12 bits restantes se usan para especificar
el dispositivo particular y el tipo de operación o prueba realizada.
Solamente
cuatro bits de la instrucción están disponibles para el código de operación.
Parecería que el computador está restringido á un máximo de 16 operaciones
diferentes. Sin embargo, como las instrucciones de referencia de registro y de
entrada-salida usan los 12 bits restantes como parte del código de operación,
el número total de instrucciones puede exceder de 16. De hecho, el número total
de instrucciones escogido para el computador es 22. De las 16 diferentes operaciones que pueden
ser formuladas con cuatro bits. Solamente ocho pueden ser utilizadas por el
computador, porque el bit de la extrema
izquierda de todas las instrucciones (bit 16) es siempre 0. Esto deja abierta
la posibilidad de agregar nuevas instrucciones y aumentar la capacidad del computador, si se desea.
Sincronización de Tiempo y Control
Todas las operaciones
del computador están sincronizadas por un generador de tiempo maestro cuyos
pulsos de reloj se aplican a todos los flip-flops del sistema. Además, está
disponible cierto número de variables de tiempo en la unidad de control para
darle secuencia a la operación en el orden adecuado. Esas variables de tiempo
se designan como t0, t1, t2, y t3 y se muestran en la imagen a continuación.
Los pulsos
de reloj ocurren una vez cada micro-segundo (μs). Cada variable de tiempo es de
1 μs de duración y ocurre una vez cada 4 μs. Se asume que el disparo de los
flip-flops ocurre durante el flanco negativo de los pulsos de reloj. Se puede
controlar el pulso de reloj específico que dispara el registro, aplicando una
de las variables de tiempo al terminal de entrada de habilitación de un
registro dado. Las variables de tiempo se repiten continuamente de manera que t0
aparezca después de t3. Cuatro variables de tiempo son suficientes
para la ejecución de cualquier instrucción en el computador que consideramos aquí.
En otras situaciones podría ser necesario emplear un número diferente de
variables de tiempo.
Se asume que el
tiempo de acceso de memoria es menor que 1 μs. Una operación de lectura o
escritura de memoria puede iniciarse con una de las variables de tiempo cuando
ésta se ponga alta. La operación de memoria se completará en el momento en que
llegue el pulso siguiente de reloj.
El
computador digital opera con pasos discretos controlados por las señales de
tiempo. Una instrucción es leída de la memoria y ejecutada en los registros por
medio de una secuencia de microoperaciones. Cuando el control recibe una
instrucción, éste genera las funciones de control adecuadas para las
microoperaciones requeridas. En la imagen siguiente, se muestra un diagrama de
bloque de la lógica de control.
Una instrucción que se lee de la memoria se
coloca en el registro B separador de la memoria. La instrucción tiene un código
de operación de 4 bits, designado por el símbolo OP. Si ésta es una instrucción
de referencia de memoria tendrá una parte de dirección designada por el símbolo
AD. El
código de operación se trasfiere siempre al registro de instrucción I. El
código de operación en I se decodifica en ocho salidas q0 – q7,
siendo el número suscrito igual al código hexadecimal para la operación. El
registro G es un contador de 2 bits que cuenta continuamente los pulsos de
reloj, durante el tiempo en que el flip-flop S, de comienzo-parada esté puesto a
uno. Las salidas del registro G se decodifican en cuatro variables de tiempo t0
– t3. El flip-flop F distingue entre los ciclos de búsqueda y de
ejecución. Otras condiciones de status son necesarias para determinar la secuencia
de control. Las salidas de los circuitos de lógica de control indican todas las
microoperaciones para el computador. El diagrama de bloque de la lógica de
control es útil para visualizar la unidad de control del computador, cuando se
derivan las operaciones de trasferencia entre registros durante el proceso de
diseño de la lógica.
Ejecución de Instrucciones
Las
operaciones de trasferencia entre registros describen de una forma concisa el
proceso de trasferencia de información dentro de los registros del computador. Cada
proposición de la descripción consiste de una función de control, seguida de
una coma, seguida de una o más microoperaciones con notación simbólica. La
función de control es una función de Boole cuyas variables son las señales de
tiempo t0 – t3, la operación decodificada q0 –q7
y ciertas condiciones de los bits de condición. Las microoperaciones son
especificadas de acuerdo con la notación simbólica definida en el método de
trasferencia entre registros.
Una
vez que se active el interruptor de comienzo, la secuencia del computador sigue
un patrón básico. Una instrucción cuya dirección está en el PC se lee de la
memoria. Su parte de operación se trasfiere al registro I y el PC se incrementa
en 1 para prepararla para la dirección de la siguiente instrucción. Si la
instrucción es del tipo referencia de memoria, podría ser necesario accesar de
nuevo la memoria para leer el operando. Así, las palabras leídas de la memoria
al registro B pueden ser instrucciones o datos. El flip-flop F se usa para
distinguir entre los dos. Cuando F=0, la palabra leída de la memoria, se
interpreta como una instrucción y se dice que el computador está en el ciclo de
búsqueda de la instrucción. Cuando F=1, la palabra leída de la memoria se toma
como un operando y se dice que el computador está en el ciclo de ejecución.
DISEÑO DE LOS REGISTROS DE COMPUTADO
El diseño de un sistema digital sincrónico sigue un procedimiento
prescrito. A partir del conocimiento de las necesidades el sistema se formula
una red de control y se obtiene una lista de operaciones de trasferencia entre
registros del sistema. Una vez que se haya derivado esa lista, el resto del diseño
es directo. Algunas instalaciones utilizan técnicas de automatización para el
diseño de computador para traducir las proposiciones de trasferencia entre
registros a un diagrama de circuitos compuesto de circuitos integrados.
La lista de funciones de control presenta las funciones de Boole para las compuertas en la red lógica de control. La lista de microoperaciones da una indicación del tipo de registros que deben escogerse para el computador. Aunque estas tablas son suficientes para completar el diseño lógico del sistema, podría ser conveniente redistribuir la información en las tablas de una manera más conveniente durante el proceso de configuración actual.
La lista de funciones de control presenta las funciones de Boole para las compuertas en la red lógica de control. La lista de microoperaciones da una indicación del tipo de registros que deben escogerse para el computador. Aunque estas tablas son suficientes para completar el diseño lógico del sistema, podría ser conveniente redistribuir la información en las tablas de una manera más conveniente durante el proceso de configuración actual.
Diseño del Control
La
unidad de control del computador genera las variables de control para los registros
y unidad de menoría. Hay 24 variables de control diferentes. Se presentaron
tres métodos para el diseño de la lógica de control: el control con componentes
alambrados, el control PLA y el control del microprograma. La unida de control
del computador puede ser diseñada usando cualquiera de estos tres métodos.
Consola del Computador
Cualquier
computador tiene un panel de control o consola con interruptores y lámparas para
permitir comunicación manual
y visual entre el operador y el computador. Esta comunicación es necesaria para
comenzar la operación del computador (bootstrapping) y para propósitos de
mantenimiento. Para completar se enumera un conjunto de funciones de la consola
útiles para el computador aunque no se muestren los circuitos necesarios para configurar
estas funciones.
Las
lámparas indican al operador la condición de los registros del computador. La
salida normal de un flip-flop conectado a una lámpara indicadora causará que la
lámpara alumbre cuando el flip-flop se pone a 1 y se apague cuando el flip-flop
se borra. Los registros cuyas salidas van a ser observadas en la consola del
computador son: A, B, PC, MAR, I, E, F y S. Cuando se muestra el número total
del flip-flop se encuentra que es necesario 63 lámparas indicadoras. Un
conjunto de interruptores y sus funciones para la consola pueden incluir lo
siguiente:
- Dieciséis interruptores de "palabra" para establecer manualmente los bits de una palabra.
- Un interruptor de "comienzo" para preparar el flip-flop S. La señal de este interruptor borra el flip-flop F, N9, U9 y el registro G.
- El interruptor de "parada" para borrar el flip-flop S. Para asegurar que se complete esta instrucción la señal que viene del interruptor se aplica conjuntamente con la función de Boole (F + q5+ q6 + q2 + q7) t3 a una compuerta AND antes de que se aplique para el borrado de la compuerta S.
- Un interruptor de "cargar dirección" para trasferir una dirección al registro PC. Cuando se activa este interruptor, el contenido de los 12 interruptores de "palabra" se trasfieren al PC.
- Un interruptor de "depósito" para almacenar manualmente palabras en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR y se inicia el ciclo de memoria. Después de 1 μs, el contenido de los 16 interruptores de "palabra" se trasfieren al registro B y se incrementa el PC en 1.
- Un interruptor de "exposición" para examinar el contenido de la palabra en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR, se inicia un ciclo de memoria y se incrementa el PC en 1. El contenido de la palabra de memoria especificado por la dirección en el PC, está en el registro B y puede verse en las correspondientes lámparas indicadoras.
por: Juan Samuel.
Fuente bibliográfica:
Buen aporte! cabe destacar que dado que la configuración del sistema debe satisfacer la estructura del sistema final. Esto es posible por medio de instrucciones que son operaciones elementales que el procesador puede cumplir, estas se almacenan en la memoria principal, esperando ser tratadas por el procesador. Las instrucciones poseen dos campos: código de operación y el código operando.
ResponderEliminarMuy interesante
ResponderEliminarLa informacion de esta pagina esta bien organizada.. me gusto
ResponderEliminar