Académique Documents
Professionnel Documents
Culture Documents
RESUMEN
Se desarrollan los conceptos básicos del lenguaje de transferencia entre registros para
especificar y describir las interconexiones entre los diferentes módulos del hardware de un
sistema digital.
Para enfatizar estos conceptos se implementa el diseño lógico de un sencillo computador,
así como el software requerido para una aplicación que sirva de comprobación del
hardware implementado.
ABSTRACT
There are developed the basic concepts of the “Register Transfer Language” or “Computer
Hardware Description Language” in order to specify and describe the interconnections
between the differents units in the hardware of a digital system.
To emphasize these concepts, it is implemented the logic design of a small computer, as
well as the required software for an application which can be used to prove the
implemented hardware.
PALABRAS CLAVES
Microoperación, función de control, salida de tres estados, reloj, operador de reemplazo,
registro de instrucciones, contador de programa, decodificador de instrucciones,
acumulador, señales de tiempo, ciclo de instrucción, ciclo de búsqueda, ciclo de ejecución,
código de operación.
KEY WORDS
Microoperation, control function, three state output, clock, replacement operator, instruction
register, program counter, instruction decoder, accumulator, timing signals, instruction
cicle, fetch cicle, execution cicle, operation code.
1
Ingeniero Electricista, Especialista en Telecomunicaciones del área de Electrónica, M. Sc. en “Electrónica
del Estado Sólido:Microelectrónica”, más de 20 años en la docencia universitaria y 25 años de experiencia
profesional, habiendo sido miembro de comités regionales y nacionales del sector eléctrico colombiano.
Profesor Tiempo Completo de la Universidad Santiago de Cali. Vinculado al Grupo de Investigación en
Instrumentación Electrónica GIE. alcuervo03@yahoo.es
Lenguaje de Transferencia entre Registros 2
0. Introducción.
El “Lenguaje de Transferencia entre Registros” o “Lenguaje Descriptivo del Hardware del
Computador” (Register-Transfer Language o Computer Hardware Description Language
en inglés) consiste de un conjunto de notaciones simbólicas para representar registros y
operaciones específicas en los contenidos de los registros de un sistema digital, así como
las funciones de control encargadas de ordenar la ejecución de las distintas
microoperaciones que se deben realizar en un computador o en un sistema digital en
general.
Utiliza un conjunto de expresiones y afirmaciones, las cuales tienen similitud con las
afirmaciones utilizadas en los lenguajes de programación, brindando las herramientas
necesarias para especificar un conjunto de interconexiones entre las diversas unidades
funcionales de un sistema digital.
En este artículo se describen los conceptos básicos del Lenguaje de Transferencia entre
Registros ejemplificando la utilización del mismo con el diseño de un sencillo computador y
el software necesario para una aplicación específica.
2
Alberto Cuervo García, “Elementos de Microprogramación”, Revista Ingenium nº 5, Univ Stgo de Cali.
3
Alberto Cuervo García, “Circuitos Digitales II”, Plataforma Virtual de la Univ. Santiago de Cali.
Lenguaje de Transferencia entre Registros 4
3. Representación de registros
Los registros en un sistema digital pueden ser representados de diversas maneras.
Comunmente se designan por letras mayúsculas, algunas veces seguidas de números
como se muestra en la figura 1.
A A7 A6 A5 A4 A3 A2 A1 A0
RI CP(H) CP(L)
4. Transferencia de información
La transferencia de información de un registro a otro se designa en forma simbólica por
medio del operador de reemplazo (←). Así, la microoperación :
A←B
denota la transferencia del contenido del registro B al registro A, o lo que es lo mismo, el
contenido del registro A es reemplazado por el contenido del registro B. Por definición, el
contenido del registro origen B no cambia después de la transferencia.
Lenguaje de Transferencia entre Registros 5
x ´T1 + T3 : A← B
En la proposición anterior se puede observar que la misma está compuesta de dos partes:
la función de control y la microoperación A←B. La función de control es una función
booleana que se termina en dos puntos, por tanto la función de control es x ´T1 + T3. Ésta
simboliza que la microoperación de transferencia A ← B se ejecuta cuando la función
booleana x ´T1+ T3 = 1, donde x es una variable de condición y T1 y T3 son señales de
tiempo.
De acuerdo a lo anterior, la microoperación se ejecuta en el tiempo T1 (T1=1) si x=0 o en el
tiempo T3 (T3=1).
4
Alberto Cuervo García, “Circuitos Digitales I: Registros, Contadores y Memoria RAM”, Plataforma Virtual de
la Univ. Santiago de Cali.
Lenguaje de Transferencia entre Registros 6
reloj
Unidad B
T0
de
T1
Control
T2
T3
x T4
T1 carga
A reloj y señales de tiempo
T3 reloj
En esta situación hay dos registros de origen (B y C) que transfieren sus datos a un solo
registro de destino (A). Para dar solución a esta situación se puede utilizar un multiplexor 5
de dos entradas y una línea de selección s como se muestra en la figura 3.
B C
Unidad
de
control
0 1
s multiplexor
x
T0 carga A
T2
reloj
Cuando T2=1 (carga = 1) se almacena el contenido del registro C que es seleccionado por
el multiplexor en el registro A.
Cuando T0=1 (T2=0) el multiplexor selecciona el contenido del registro B el cual es
almacenado en el registro A si se cumple la condición de que x = 0.
5. Microoperaciones aritméticas
Como su nombre indica, estas microoperaciones se refieren a un procesamiento aritmético
de los datos contenidos en los registros como por ejemplo: sumar dos números,
5
Alberto Cuervo García, “Circuitos Digitales I: Multiplexor”, Plataforma Virtual de la Universidad Santiago de
Cali.
Lenguaje de Transferencia entre Registros 7
reloj
T4
T2 carga
B up C
y reloj A down
Unidad
de
control
sumador
6
Alberto Cuervo García, “Circuitos Digitales I: Decodificadores y Sumadores”, Plataforma Virtual de la
Universidad Santiago de Cali
Lenguaje de Transferencia entre Registros 8
6. Microoperaciones lógicas
Estas microoperaciones se refieren a una manipulación lógica de los datos contenidos en
los registros como por ejemplo : complementar o negar un dato contenido en un registro,
realizar el AND de los datos contenidos en dos registros, el OR, el OR exclusivo, etc.
Considere la proposición siguiente:
xT1 + T2 : A← A´, B ← B ∨ C
La primera microoperación implica complementar el dato que se encuentra en el registro A
y la segunda realizar el OR entre los contenidos de los registros B y C y el resultado
dejarlo almacenado en el registro B. Se debe observar que se utilizó el operador ∨ para
representar la operación OR en vez del operador + para que no haya confusión con la
suma aritmética.
El hardware requerido para implementar esta proposición se muestra en la figura 5.
Unidad
de
control
T2
T1
carga carga
x A B C
registros
reloj de 4 bits
7. Microoperaciones de desplazamiento
Una microoperación de desplazamiento implica el corrimiento del dato contenido en un
registro una posición a la izquierda o a la derecha dependiendo de la dirección del
desplazamiento.
Considere la microoperación siguiente:
A ← shl A
Esta microoperación implica que se debe desplazar el dato contenido en el registro A una
posición hacia la izquierda (shl = shift left). Por ejemplo, si A es un registro de 4 bits
conteniendo el dato 1001, el desplazamiento ocurre de la forma como se muestra en la
figura 6.
Lenguaje de Transferencia entre Registros 9
A3 A2 A1 A0
antes del
1 0 0 1
desplazamiento
después del
desplazamiento
0 0 1 ?
Microoperaciones Descripción
a) A ← shlA , A0 ← 0 Desplazamiento de A hacia la izquierda entrando un 0
por la posición de menor orden
b) A ← shlA , A0← C, C← A3 Rotación hacia la izquierda de A a través del flip-flop C
c) A ← shrA , A3← A0 Rotación hacia la derecha de A
d) A ← shlA , A0 ← A3 Rotación hacia la izquierda de A
0
A A
(a) (b)
A A
(c) (d)
8. Proposiciones Condicionales
Una proposición condicional en el lenguaje de transferencia entre registros tiene la
siguiente estructura:
fc : si (condición) entonces (microoperaciones) si no (microoperaciones)
donde fc representa la función de control de la proposición. En esta proposición, si se
cumple la condición establecida entre paréntesis, se ejecutan las microoperaciones
encerradas entre paréntesis después de la palabra “entonces”. Si no se cumple la
condición, se ejecutan las microoperaciones después de “si no”.
De cualquier forma la función de control debe ser igual a 1 para que se ejecuten
cualesquiera de las microoperaciones. Si la parte “si no” falta, entonces si no se cumple la
condición no se ejecuta ninguna microoperación.
Las proposiciones condicionales facilitan la interpretación de la escritura, pero son más
una conveniencia que una real necesidad ya que se pueden descomponer en dos
proposiciones simples como se ilustra en el ejemplo siguiente.
Suponga la siguiente proposición condicional:
T3: si (CY=1) entonces (A←0) si no (A←shlA, A0←A3)
donde CY es un flip-flop y A es un registro de 4 bits. La condición en este ejemplo es que
el flip-flop CY se encuentre en el estado 1.
Esta proposición plantea lo siguiente: en el tiempo T3, si el flip-flop CY se encuentra en el
estado 1 se debe borrar el registro A, de lo contrario debe ocurrir una rotación hacia la
izquierda de A.
Esta proposición condicional es equivalente a escribir las dos proposiciones simples
siguientes, y el hardware requerido para implementarlas se muestra en la figura 8.
CY T3 : A ← 0
CY ´T3: A ← shl A , A0 ← A3
CY Modo de operación sincrónico
M1 M0
0 0 no opera
shli:entrada para 0 1 desplaza a la izq
control desplazamiento a la 1 0 desplaza a la derecha
izquierda 1 1 carga
M1
M0
shri A shli
T3 reset
A3 A2 A1 A0
reloj
Figura 8 Hardware para la proposición condicional
Lenguaje de Transferencia entre Registros 11
reloj
bus de datos
T1 dato
OE
WE Memoria
pulso CE dirección
de
lectura
RD bus de direcciones
se almacena el dato
reloj en el registro C
T1
pulso de Lectura
colocado por de
lectura
la memoria
bus de dato memoria
datos 3er estado 3er estado
Los elementos del hardware que debe tener el computador serán los siguientes.
programa que debe ser buscada en la memoria para ser ejecutada. Por tanto será
también de 8 bits.
4. Un registro de instrucciones RI. Cuando el computador busca en la memoria una
instrucción (código de operación) se almacena en el registro de instrucciones para
ser decodificado por el decodificador de instrucciones. El RI será de 8 bits.
5. Decodificador de instrucciones. El decodificador de instrucciones decodifica
(interpreta) el código de operación y al activar una sola salida le dice a la unidad de
control de qué instrucción se trata.
6. Unidad de Control: esta unidad es la encargada de generar las señales de control
para el resto del sistema con el objetivo de ordenar la ejecución de las diferentes
microoperaciones que se deben realizar en el computador.
7. Un registro acumulador A de 8 bits y un registro de 1 bit C. El acumulador A del
computador es un registro que sirve de origen y destino en las operaciones
aritméticas y lógicas y el registro de 1 bit C es un flip-flop o bandera encargado de
guardar el acarreo que se puede generar en una operación aritmética como la suma
por ejemplo.
8. Un registro de 8 bits B de propósito general.
9. Una tecla denominada EJEC, la cual debe ser presionada para comenzar la
ejecución de un programa almacenado en la memoria en la dirección 0 dec.
10. Un acumulador temporal de 8 bits ACT transparente para el programador en el cual
se almacena en forma temporal uno de los operandos de origen en aquellas
instrucciones aritméticas o lógicas como la suma por ejemplo.
11. Un sumador para poder implementar la instrucción de sumar, que como se verá es
una de las instrcciones del repertorio del computador.
12. Un registro temporal TEMP transparente para el programador en el cual se
almacenará la dirección especificada por algunas instrucciones, como por ejemplo,
en las instrucciones de modo de direccionamiento directo.
Los pulsos de reloj son aplicados a la Unidad de Control, así como al resto de los registros
que conforman el sistema (esto último no representado en la figura 10), como en cualquier
sistema digital del tipo secuencial sincrónico.
Reg de
C CP B
Instrucciones
señal
de RD ACT
Dec. de
instrucciones
estado
A sumador
ejec
Unidad
señales
de
de TEMP
Control Memoria
reloj control
Como se puede observar en la figura 10, la salida del flip-flop de acarreo C entra a la
unidad de control para que ésta conozca su valor y pueda tomar una decisión determinada
de acuerdo al valor que tiene esta bandera de acarreo. También entrará a la unidad de
control la señal externa “ejec” para que el control se entere cuando se ha presionado la
tecla del mismo nombre y ordene comenzar la ejecución del programa almacenado en la
EPROM.
Especificación del repertorio de instrucciones.
Con un registro de instrucciones de 8 bits, el código de operación de las instrucciones
puede ser de 8 bits, lo que implicaría que el computador podría reconocer hasta 28 = 256
instrucciones. Como es obvio, y en aras de la sencillez, nuestro computador tendrá
solamente un repertorio de 7 instrucciones las cuales tendrán 3 modos de
direccionamiento diferentes. Como se observará más adelante de acuerdo a los formatos
de las instrucciones, como el código de operación de la instrucción ocupa un byte de
memoria, el computador podría tener 256 instrucciones si se utilizara un decodificador de
instrucciones de 8 bits y el hardware necesario para esto.
7
Modo de direccionamiento: el término “modo de direccionamiento” se refiere a la forma
cómo una instrucción especifica un operando sobre el cual va a actuar. El repertorio de
instrucciones de nuestro computador utilizará uno de los siguientes modos de
direccionamiento:
7
Kenneth L. Short, Microprocessors and Programmed Logic”, 2ª ed, Prentice-Hall Inc., New Jersey
Lenguaje de Transferencia entre Registros 15
En esta tabla, además de las instrucciones simbólicas que debe poseer el computador,
aparece el modo de operación asignado a cada una de las mismas, así como los modos
de direccionamiento que poseen.
direcciones memoria
15 Cod Oper
instrucciones
25 Cod Oper
LDA 64 El número 20 se almacena en A
26 64
64 20
búsqueda ejecución
Así por ejemplo, analizando la microoperación CP←M, se observa que ésta se debe
efectuar en el tiempo T3 si y3=1 ó en el tiempo T3 si C=0 y y4=1. Esto es, la función de
control completa para esta microoperación es:
y3T3 + C´y4T3 : CP ← M
Realizando el mismo análisis para cada una de las microoperaciones se puede elaborar la
tabla 4 en la cual se observan las funciones de control para cada una de las
microoperaciones que debe ordenar ejecutar la unidad de control del computador.
Como se verá posteriormente, las funciones de control de la tabla 4 serán las señales de
salida de la unidad de control del computador que ordenarán ejecutar cada una de las
microoperaciones, esto es, una unidad funcional de la unidad de control será una lógica
combinacional la cual tiene como salidas las funciones de control de la tabla 4 y como
señales de entrada las salidas del decodificador de instrucciones, las señales de tiempo y
el bit de acarreo C.
Organización del hardware del computador.
La organización del computador que se adoptará será la de utilizar un bus de datos para
realizar las transferncias de información que se plantean en las distintas microoperaciones,
como se muestra en la figura 13.
En esta figura cabe destacar lo siguiente:
1. La entrada del RI está conectada al bus de datos para recibir información de la
unidad de memoria. Su salida entra al decodificador de instrucciones para que el
código de operación de la instrucción se decodifique.
Lenguaje de Transferencia entre Registros 21
13. De forma similar se observa que el registro de direcciones RD recibe datos también
de dos orígenes: el contador de programa CP y el registro termporal TEMP. Por
tanto, el terminal de carga del registro RD debe ser activado con la función F1 + F9.
14. El sumador, la memoria y todos los registros (B, CP y TEMP) cuyas salidas están
conectadas al bus de datos deben tener salidas de 3 estados.
15. Las salidas de los elementos relacionados en el punto 14 deben quedar habilitadas
siempre que sirvan de origen de una transferencia, por tanto: la salida del sumador
debe quedar habilitada con F5+F11, la salida de la memoria con F2+F6+F7+F8, la
del reg B con F10, la del registro CP con F1 y la del registro TEMP con F9, para
garantizar que estos elementos coloquen un dato en el bus de datos.
16. El terminal de carga del registro de instrucciones RI debe ser activado con la señal
F2 para que con el flanco positivo del pulso de reloj correspondiente se almacene
en el mismo el dato que ha colocado la memoria en el bus de datos.
17. El terminal de carga del registro CP debe ser activado con la señal F6 para
almacenar el dato con el pulso de reloj correspondiente que ha colocado la
memoria en el bus de datos.
18. El terminal de carga del registro de propósito general B debe ser activado con la
señal F11 para que se almacene en el mismo el dato colocado por el sumador en el
bus de datos.
19. El terminal de carga del registro TEMP debe ser activado con la señal F7 para
garantizar que en el mismo se almacene el dato que ha colocado la memoria en el
bus de datos.
20. En todo elemento del sistema digital cuya salida sea de 3 estados conectada a un
bus de datos común y sirva de origen en una transferencia de información, su
salida debe ser habilitada con las funciones de control correspondientes para que
coloque dicha información en el bus y lo reciba el elemento destino.
21. Todo registro del sistema digital que sea destino en una transferencia de
información, debe ser colocado en el modo de carga por las funciones de control
correspondientes para que el pulso de reloj almacene esta información en el
mismo. Esta información debe haber sido colocada previamente en el bus de datos
proveniniente directamente de otro elemento o registro del sistema digital.
22. El terminal de “conteo” del CP debe ser activado con F3 para permitir que el flanco
positivo del pulso de reloj correspondiente lo incremente.
Lenguaje de Transferencia entre Registros 23
borrado
inicial borrado carga
carga conteo
OE TEMP OE CP OE B
entr / sal carga entr / sal entr / sal
bus de
datos
8 bits
decodificador
de
OE
instrucciones
y5 y4 y3 y2 y1 y0 SUMADOR
de 8 bits
C entr Cout salida de
carga 3 estados
F4
F3
unidad
de F5 carga entr
RD
control F11 salida OE: Output enable
F10
F9 8 bits habilita salida
F1 Borrado: cuando =1 el
F7 dirección
reloj borra el registro
F8
F6 carga: cuando = 1, el
F2
CE MEMORIA reloj almacena el dato
EPROM a la entrada
ejec salida de conteo: cuando =1, el
OE 3 estados reloj incrementa el
pulso dato registro
negativo
reloj a los demás de lectura
registros del
computador
operación
sincrónica
borrado clear
entrada clear load ENP ENT
carga load
74LS163 0 X X X borrado
conteo ENP
1 ENT 1 0 X X carga
salida reloj conteo
RCO 1 1 1 1
ascendente
1 1 0 X
no opera
RCO: acarreo de salida
1 1 X 1
RCO=1 cuando la salida = 1111
TEMP CP B RI A ACT RD
Conteo tierra X tierra tierra tierra tierra tierra
Carga X X X X X X X
Borrado tierra Borrado tierra tierra tierra X tierra
inicial
carga
buffer de 3 estados
OE 74LS465 OC : output control
OC
entrada/salida
Figura 15 Circuito de los registros.
Los registros RI, A, ACT y RD no necesitan salida de 3 estados, por lo que no se utiliza en
la implementación de los mismos el buffer de 3 estados de la figura 15.
13. Implementación del sumador
Al igual que con los registros, en la implementación del sumador debe incluirse un buffer
de 3 estados, pués la salida del sumador esta conectada al bus de datos.
Se utilizarán para la implementación del mismo 2 circuitos integrados 74LS283
(sumadores de 4 bits) y un buffer de 3 estados 74LS465 como se muestra en la figura 16.
del registro A del registro ACT
74LS283 74LS283
OE 74LS465
OC
al bus
de datos
salida de 3
estados
dirección
del registro RD
Flip-flop de acarreo
Debido a que las señales de tiempo ocurren secuencialmente una tras otra, las mismas
pueden ser implementadas fácilmente utilizando un registro de desplazamiento hacia la
derecha en el cual un solo flip-flop se encuentre en el estado 1.
Se debe recordar que el computador necesita para su operación 6 señales de tiempo
(T0…T5). Todas las instrucciones, de acuerdo a las proposiciones de transferencia entre
registros escritas, necesitan 4 señales de tiempo (T0…T3). Solamente una instrucción,
“LDA dirección” cuyo código de operación es el 00000101 necesita 6 señales de tiempo o
estados.
De acuerdo al análisis anterior, cuando el generador de tiempos se encuentre en T3, si
y5=1, debe seguir hasta T5 y regresarse a T0 para el siguiente ciclo de búsqueda.
En caso contrario, si y5=0, entonces de T3 debe regresar a T0.
La señal Ejec también entra al generador de tiempos pués esta señal de acuerdo a los
requerimientos planteados anteriormente debe iniciar la ejecución de un programa
almacenado en la memoria.
Esto es, inicialmente cuando se suministra la energía eléctrica al computador, todas las
señales de tiempo son 0. En el flanco negativo del pulso de reloj en que Ejec=1, T0 se
hace 1 y se comienzan a generar las señales de tiempo. Debe observarse que Ejec nada
más puede tener el valor 1 durante un período de los pulsos de reloj.
De acuerdo con el análisis anterior, el circuito del generador de tiempos puede ser
implementado como se muestra en la figura 19, donde se han utilizado 6 flip-flops JK de
flancos negativos para el registro de desplazamiento.
y6 y5 y4 y3 y2 y1 y0
F1
F2
F3 reloj
F4
Lógica F5
F6
combinacional F7 Ejec
F8
del control F9
F10 T0
F11
C T1
T2
T3
T5 T4 T3 T2 T1 T0
T0 T1 T2 T3 T4 T5
J T0 J T1 J T2 J T3 J T4 J T5
ejec
reloj
K K K K K K
clear clear clear clear clear clear
borrado
inicial
y5
En la figura 19 puede observarse que cuando T3=1, este 1 aparece en la J del flip-flop T4 si
y5=1. En caso contrario, si y5=0, el 1 aparece en la J del flip-flop T0 generándose entonces
esta última señal después de T3.
La señal ejec se coloca en 1 al presionar una tecla. Pero la acción de presionar una tecla
es una acción totalmente asincrónica, esto es, puede ocurrir en cualquier momento del
tiempo y puede estar presionada por un intervalo de tiempo relativamente prolongado
comparado con el período de los pulsos de reloj.
Esto generaría un serio inconveniente, pués la duración de la señal ejec nada más puede
durar un período del reloj y ocurrir sincrónicamente cuando ocurre un flanco positivo del
mismo.
En la figura 20 se ilustra esta situación, por lo que para superar este inconveniente se
utilizará un circuito secuencial sincrónico cuyo diagrama de estados se muestra en la
misma figura 20 para generar la señal ejec a partir de la señal de la tecla.
De acuerdo con el diagrama de estados de la figura 20, en el estado de inicio el circuito se
encuentra esperando que la señal tecla se haga 1. Cuando tecla=1, el pulso de reloj
ocasiona que pase al estado de pulso donde se genera la señal ejec y al siguiente pulso
de reloj pasa al estado de espera.
Va a permanecer en el estado de espera hasta que la señal tecla regrese a 0.
Lenguaje de Transferencia entre Registros 29
reloj
inicio inicio inicio pulso espera espera inicio
tecla
ejec
tecla=1
inicio pulso espera
tecla=1
tecla=0
tecla=0
diagrama de estados
ejec = pulso
pulso
D inicio D D espera
tecla
ejec
reloj
tecla
borrado inicial
a la alimentación 4.7 K
1 polo
de los circuitos tecla
2 posiciones
220 integrados
Kohmios I 74ACT14
tecla
0.68 borrado inicial
4.7 K
microfaradios CMOS, schmitt trigger
+5v.
Este sencillo programa suma el dato que está almacenado en la dirección 80 con el dato
almacenado en la dirección 90 de la memoria. El resultado se queda en el registro
acumulador si no se produce un acarreo en la instrucción de suma. Si se produce un
acarreo, entonces se limpia al acumulador.
Este programa puede ser fácilmente grabado en la pastilla de la memoria EPROM al igual
que los dos datos anteriores haciendo uso del programador universal existente en el
laboratorio de electrónica de la universidad Santiago de Cali. Las direcciones de memoria
así como los códigos de las instrucciones de la tabla 6 están en hexadecimal.
Para la prueba del computador se recomienda utilizar un generador de pulsos del
laboratorio con una frecuencia baja de 1 KHz. para aplicárselos al computador diseñado.
Lenguaje de Transferencia entre Registros 32
19. Conclusiones
El artículo presente fué escrito con el objetivo de presentar los conceptos básicos del
lenguaje de transferencia entre registros. Para ilustrar la utilización de estos conceptos se
realizó el diseño lógico de un sencillo computador capaz de interpretar y ejecutar un
pequeño conjunto de siete instrucciones, presentando la organización y la arquitectura del
computador diseñado.
La arquitectura del computador se refiere a todas aquellas características del mismo que
son visibles para un programador, las cuales tienen una incidencia directa en la ejecución
de un programa, mientras la organización se refiere al análisis de las diferentes unidades
funcionales que tiene el computador así como la interconexión entre las mismas.
Se procuró suministrar unos conocimientos básicos sobre aspectos de la Organización y
Arquitectura de Computadores, tratando tanto el hardware como el software ya que para
entender mejor la organización y arquitectura de un computador es necesario mostrar una
visión general del mismo que permita ver cómo sus diferentes partes encajan en un todo.
En todo momento se trató de enfocar los conceptos presentados de la forma más
descriptiva y práctica posible que ayuden a comprender satisfactoriamente el uso del
lenguaje de transferencia entre registros en el diseño de un sistema digital.
Se utilizó en el diseño del computador un bus de datos al cual está conectada la memoria
y diferentes registros para realizar transferencias de información entre los mismos. Esto
implica que no es necesario utilizar multiplexores voluminosos que harían más complejo el
hardware del computador, pero sin embargo trae aparejado el inconveniente de que se
pueden presentar picos de corriente durante un breve lapso de tiempo (unos pocos
nanosegundos) en que se produce la conmutación de un dispositivo a otro cuyas salidas
están conectadas al bus de datos. Esto se debe a que frecuentemente no se puede
predecir si en el momento de la conmutación las salidas de dos dispositivos queden
simultáneamente conectadas al bus debido a la demora intrínsica de los dispositivos
electrónicos utilizados. 8
La escritura de este artículo estuvo dirigida a estudiantes de Ingeniería de Sistemas e
Ingeniería Electrónica que cursan un nivel intermedio en circuitos digitales y a todos
aquellos profesionales que de una forma u otra están relacionados con esta área y deseen
actualizarse en el diseño de sistemas digitales utilizando como herramienta el lenguaje de
transferencia entre registros.
8
Eilhard Haseloff, “Designing With Logic”, Texas Instruments Incorporated, junio 1997
Lenguaje de Transferencia entre Registros 33
20. BIBLIOGRAFÍA
1. Texas Instruments, página web: www.ti.com
2. Alberto Cuervo G, “Elementos de Microprogramación”, revista Ingenium no 5 de
la Universidad Santiago de Cali
3. Alberto Cuervo G, “Circuitos Digitales II”, Plataforma Virtual de la Universidad
Santiago de Cali.
4. Alberto Cuervo G, “Circuitos Digitales I: Registros, Contadores y Memoria RAM”,
Plataforma Virtual de la Universidad Santiago de Cali
5. Alberto Cuervo G, “ Circuitos Digitales I: Multiplexor”, Plataforma Virtual de la
Universidad Santiago de Cali
6. Alberto Cuervo G., “Circuitos Digitales I: Decodificadores y Sumadores”,
Plataforma Virtual de la Universidad Santiago de Cali
7. Kenneth L. Short, “Microprocessors and Programmed Logic”, 2ª ed, Prentice-
Hall, New Jersey
8. Eilhard Haseloff, “Designing with Logic”, Texas Instruments Incorporated, junio
1997
Lenguaje de Transferencia entre Registros 34
Lenguaje de Transferencia entre Registros 35