LA COMPUTADORA BASADA
EN UN PROCESADOR
DISEÑO LÓGICO DE PROCESADORES
Una unidad procesadora es aquella parte de un sistema
digital o un computadora digital que configura las operaciones en el sistema
Esta compuesta por un número de registros y de
funciones digitales que conforman microoperaciones aritméticas, lógicas, de desplazamiento y trasferencia.
La unidad de proceso se llama una unidad, centrar de
proceso o CPU, cuando se combina con una unidad de control que supervisa la secuencias de microoperacione
El número de registros de una unidad procesadora varia
desde un registro procesador hasta 64 registros o más
Una operación puede ser configurada en una unidad de
proceso con una microoperación sencilla o con una secuencia de microoperáciones
Por ejemplo la multiplicación de dos números binarios
almacenados en dos registros puede ser configurada con un circuito combinacional que realiza la operación por medio de compuertas.
Tan pronto como las señales se propagan a través de las
compuertas, el producto estará disponible y puede ser trasferido a un registro de destino con un pulso de relój sencillo
Todos los computadores, excepto los muy grandes y rápidos,
configuran las operaciones, participantes por medio de una secuencia de macrooperaciones.
De esta manera, el procesador necesita
tener solamente circuitos que configuren
las microoperaciones básicas simples
tales como sumar desplazar
Otras operaciones, tales como
multiplicación, división y aritmética de
punto flotante, se generan conjuntamente
con la unidad de control.
La unidad procesadora en sí se diseña
UNIDAD DE CONTROL
La función principal de la unidad de control del UCP es dirigir la secuencia de pasos de modo que la
computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa.
Los pasos para ejecutar una instrucción cualquiera son los siguientes:
I. Ir a la memoria y extraer el código de la siguiente instrucción (que estará en la siguiente celda de
memoria por leer). Este paso se llama ciclo de fetch en la literatura computacional (to fetch significa traer, ir por).
II. Decodificar la instrucción recién leída (determinar de que instrucción se trata). III. Ejecutar la instrucción.
IV. Prepararse para leer la siguiente casilla de memoria (que contendrá la siguiente instrucción), y
volver al paso 1 para continuar.
La unidad de control ejecutara varias veces este ciclo de cuatro “instrucciones alambradas” a una
enorme velocidad.
Se llama así a estas instrucciones porque no residen en memoria, ni fueron escritas por ningún
programador, sino que la maquina las ejecuta directamente por medios electrónicos, y lo hará mientras este funcionando (mientras este encendida) en una computadora es a razón de cientos de miles (o incluso millones) de veces por segundo.
MICROOPERACIONES ARITMÉTICAS
Una microoperación es una operación elemental
efectuada con los datos almacenados en los registros.
Las microoperaciones que se encuentran con mayor
frecuencia en las computadoras digitales se clasifican en cuatro categorías:
1. Microoperaciones de transferencia de registros que transfieren
información binaria de un registro a otro.
2. Microoperaciones aritméticas que ejecutan operaciones
aritméticas sobre datos numéricos almacenados en los registros.
3. Microoperaciones lógicas que ejecutan operaciones de
manipulación de bits sobre datos no numéricos almacenados en registros.
4. Microoperaciones de corrimiento que ejecutan operaciones de
corrimiento sobre los datos almacenados en los registros.
Las microoperaciones aritméticas básicas son suma, resta, incremento,
La función digital que configura las microoperaciones con la
información almacenada en los registros del procesador se llama comúnmente ALU.
Par realizar una microoperación, el control canaliza la fuente
de información de los registros hasta las entradas del ALU.
El ALU recibe la información de los registros y realiza una
operación dada de la manera especificada por el control.
El resultado de la operación se trasfiere al registro de destino. Por definición, el ALU es un circuito combinacional; de
manera que toda la operación de trasferencia entre registros pueden realizarse durante el intervalo de un pulso de reloj.
Todas las operaciones de trasferencias entre registros,
incluyendo la trasferencia entre registros de una unidad procesadora típica, se realizan en un ALU común de lo
contrario, sería necesario duplicar las funciones digitales para cada registro
Las microoperaciones de desplazamiento se realizan a
menudo en una unidad separada.
Una unidad de desplazamiento se muestra por lo general
separada, pero algunas veces está incluida como parte de la unidad enteramente aritmética y lógica
Una computadora CPU debe manipular no solamente datos
sino también códigos de instrucción y direcciones que vienen de la memoria.
El registro que almacena y manipula el código de operación
Los registros que almacenan direcciones
son incluidos algunas veces como
parte de la unidad de proceso y la
información de direcciones se procesa
por un ALU común.
En algunos computadoras, los registros
que almacenan direcciones son
conectados a un bus separado y la
información de dirección se manipula con
funciones digitales separadas.
ORGANIZACIÓN DEL PROCESADO
La parte procesadora de un computador CPU se
trata algunas veces como eI cánal de datos del
CPU porque el procesador formula los canales de
trasferencia de datos entre los registros de la
unidad
Los diferentes caminos son controlados
supuestamente por medio de compuertas que
abren los caminos necesarios y cierran otros.
Una unidad procesadora puede diseñarse para
satisfacer un conjunto de canales de datos para
una aplicación específica
Las compuertas de control que formulan los canales de
datos son esencialmente multiplexores y decodificadores cuyas líneas de selección especifican el camino requerido.
ORGANIZACIÓN DEL BUS
Cuando se incluye un gran número de registros en
una unidad de proceso es más eficiente
conectarlos por medio de buses comunes o
arreglarlos como una memoria pequeña que
tiene un tiempo de acceso muy rápido.
Los registros se comunican entre sí no solamente
por la trasferencia directa de datos sino también
cuando se realizan varias microoperaciones
En la Figura se muestra una organización con bus
Cada registro se conecta a dos multiplexores (MUX) para formar los
buses de entrada A y B.
Las líneas de selección de cada multiplexor seleccionan un registro
para el bus particular.
Los buses A y B se aplican a una unidad lógica aritmética común. La función seleccionada en el ALU determina la operación
particular que se va a realizar
Las microoperaciones de desplazamiento se configuran en el
registro de desplazamiento.
El resultado de la microoperación pasa a través del bus de salida S
hasta las entradas de todos los registros
El registro de destino que recibe la información del bus de salida se
Cuando se habilita, este decodificador activa una de
las entradas de carga del registro para suministrar un canal de trasferencia entre los datos del bus S y las entradas del registro de destino seleccionado
El bus de salida S alimenta los terminales para
trasferir datos de un destino externo.
Una entrada del multiplexor A ó B puede recibir datos
de los elementos que lo rodean cuando es necesario trasferir datos externos a la unidad de proceso.
La unidad de control que supervisa el sistema de bus
procesador dirige el flujo de información a través
del ALU seleccionando los diferentes componentes de la unidad
Por ejempro para realizar la microoperación: R1R2+R3
El control debe suministrar variables de selección binarias a
las siguientes entradas de selección
1. Selector MUX A: coloca el contenido de R2 en el bus A. 2. Selector MUX B: coloca el contenido de R3 en el bus B.
3. Selector de función ALU: genera la operación aritmética A + B. 4 Selector de desplazamiento: para la trasferencia directa de la salida del ALU al bus de salida S (ningún desplazamiento)
5 Selector de destino del decodificador: trasfiere el contenido del bus S a R1.
Las cinco variables selectivas de control deben ser
generadas simultáneamente y deben estar disponibles durante un intervalo de pulso de reloj común.
Para lograr una rápida respuesta de tiempo, se
construye el ALU con circuitos generadores de
arrastre posterior y el registro de desplazamiento se configura con compuertas combinacionales
Cuando se encapsula en un CI, la unidad procesadora
se llama algunas veces registro y unidad lógica
aritmética o RALU (register and arithmetic logic unit).
Algunos fabricantes lo llaman un microprocesador de
un grupo de bits.
El prefijo micro se refiere a un tamaño físico pequeño
del circuito integrado en el cual se incluye el procesador
El grupo de bits se refiere al hecho de que el procesador
puede ser expandida a una unidad de proceso con un gran número de bits usando un grupo de CI.
Un microprocesador de un grupo de 4 bits contiene registros
y ALU para manipular datos de 4 bits
Dos CI de éstos pueden ser combinados para construir una
unidad procesadora de 8 bits.
Para un procesador de 16 bits , es necesario usar cuatro
circuitos integrados y conectarlo en cascada
El arrastre de salida de un ALU se conecta al arrastre de
entrada del siguiente ALU de mayor orden y la salida en serie y líneas de entrada de los registros de desplazamiento se
Un microprocesador de un grupo de bits debe distinguirse de otro tipo de CI
llamado mícroprocesador.
El primero es una unidad procesadora mientras que el microprocesador se
Algunas unidades procesadoras separan un registro de
otros y se le llama registro acumulador, abreviado AC o registro A.
El nombre dé este registro se deriva del proceso de
adición aritmética que se encuentra en los computadoras digitales.
Algunas unidades procesadoras separan un registro de
otros y se le llama registro multiproposito acumulador, abreviado AC o registro A. El nombre dé este registro se deriva del proceso de adición aritmética que se encuentra en los proccesadores digitales.
ALU
DEFINICIÓN
La ALU (unidad aritmético-lógica) es el
dispositivo que se encarga de realizar:
a)
Operaciones aritméticas (suma, resta, etc.).
CIRCUITOS COMBINATORIOS
Su salida depende exclusivamente de sus
COMPUERTAS BÁSICAS
AND A B A · B 0 0 0 0 1 0 1 0 0 1 1 1 OR A B A + B 0 0 0 0 1 1 1 0 1 1 1 1 NOT A Ā 0 1 1 0 30OTRAS COMPUERTAS
XOR (or exclusiv0).
EQV (equivalence).
NAND (not AND).
NOR (not OR).
MULTIPLEXOR
El multiplexor (mux) tiene 2
nentradas de
datos, n bits de selección y una salida.
Los bits de selección se usan para decidir
cuál entrada pasa a la salida.
MULTIPLEXOR
Mux 4 a 1
SUMADOR COMPLETO
Sumador completo (full adder) de 1 bit:
Entradas: dos números de 1 bit y un bit de carry
de entrada.
Salidas: la suma de 1 bit y un bit de carry de
SUMADOR COMPLETO
Suma = a
b
CarryIn
CarryOut = (a · CarryIn) + (b · CarryIn) + (a ·
b)
SUMADOR COMPLETO
ALU DE 1 BIT
Dos operaciones: AND y OR.
Un bit para seleccionar la operación.
Operación
Salida
0
a · b
AGREGANDO OPERACIONES
El siguiente paso es agregar la suma.
Se agrega un sumador completo al diseño
ALU DE 1 BIT
3 operaciones: AND, OR y suma.
2 bits para seleccionar la operación.
Operación Resultado CarryOut
00 a · b X 01 a + b X 10 a b CarryIn (a + b) · CarryIn + (a · b) 11 X X
AGREGANDO OPERACIONES
Agregar la resta
a
–
b
.
a
–
b
a
+
b
si
b
está en complemento a 2.
El complemento a dos de
b
se encuentra
sumando 1 al complemento a uno de
b
.
El complemento a uno de
b
se encuentra
negando a
b
.
a
–
b
=
a
+ (–
b
) =
a
+ (¬
b
+ 1) =
a
+ ¬
b
+ 1
El 1 de la suma viene en CarryIn.
ALU DE 1 BIT
4 operaciones: AND, OR, suma y resta.
2 bits para seleccionar la operación.
Un bit extra para diferenciar entre la suma y
la resta.
ALU DE 1 BIT
Operación Binver t
CarryIn Resultado CarryOut
00 X X a · b X 01 0 X a + b X 10 0 X a b CarryIn (a + b) · CarryIn + (a · b) 10 1 0 X X 10 1 1 a b a + ¬b 11 X X X X
AGREGANDO OPERACIONES
Agregar la operación NOR:
¬(
a
+
b
)
Ley de DeMorgan:
¬(
a
+
b
) = ¬
a
· ¬
b
La ALU ya puede calcular
a
·
b
y ¬
b
.
Hace falta poder calcular ¬
a
.
ALU DE 1 BIT
5 operaciones: AND, OR, NOR, suma y
resta.
2 bits para seleccionar la operación.
Binvert diferencia entre la suma y la resta.
En la resta, CarryIn es 1.
Ainvert y Binvert diferencian entre AND y
ALU DE 1 BIT
Operación Ainvert Binvert CarryIn Resultado CarryOut
00 0 0 X a · b X 00 1 1 X ¬a · ¬b X 01 0 0 X a + b X 10 0 0 X a b CarryIn (a + b) · CarryIn + (a · b) 10 0 1 0 X X 10 0 1 1 a b a + ¬b 11 X X X X X
AGREGANDO OPERACIONES
Variando Ainvert y Binvert permite generar:
8 operaciones lógicas.
AGREGANDO OPERACIONES
Operación Ainvert Binvert CarryIn Resultado CarryOut
00 0 0 X a · b X 00 0 1 X a · ¬b X 00 1 0 X ¬a · b X 00 1 1 X ¬a · ¬b X 01 0 0 X a + b X 01 0 1 X a + ¬b X 01 1 0 X ¬a + b X 01 1 1 X ¬a + ¬b X
AGREGANDO OPERACIONES
Operación Ainvert Binvert CarryIn Función aritmética 10 0 0 0 a + b 10 0 0 1 a + b + 1 10 0 1 1 a - b 10 1 0 1 b - a 10 1 1 1 -a - b
ALU DE 32 BITS
¿Cómo se genera una ALU de 32 bits?
Con 32 ALUs de 1 bit.
CarryOut de la ALU
ise conecta a CarryIn de
la ALU
i+1.
ALU PARA MIPS
El diseño de la ALU está incompleto.
La mayoría de las instrucciones de MIPS
pueden ser realizadas con las operaciones
AND, OR, suma y resta.
Se necesita soportar la instrucción slt (set on
less than).
slt $x, $y, $z guarda 1 en $x si $y < $z y 0 en
SOPORTANDO SLT
slt $x, $y, $z pone a ceros los bits 1 a 31 de
$x.
El bit 0 de $x tiene el resultado de la
comparación de $y y $z.
31 30 1 0 0 0 … … 0 $y < $z $xSOPORTANDO SLT
Se calcula t = $y - $z.
Si t es negativo $y < $z.
Si t es positivo o cero $y
$z.
En MIPS los números negativos tienen 1 en
el bit 31.
El bit 31 de t tiene el resultado de la
SOPORTANDO SLT
Para hacer una ALU de 32 bits se
consideran dos tipos de ALU distintos.
Una para los bits del 0 al 30.
Parecida al diseño anterior, tiene una entrada
extra llamada
Less
.
Otra para el bit 31.
Además de la entrada Less, tiene una salida
Set
con el signo de la resta y un detector de
overflow.
ALU DE 32 BITS
Se conectan las 32 ALUs.
CarryOut de la ALU
ise conecta a CarryIn de
la ALU
i+1.
Las entradas Less de la ALU
1a la ALU
31se
ponen a 0.
La entrada Less de la ALU
0se conecta a la
salida Set de la ALU
31.
En la resta CarryIn de la ALU
0se conecta a
DISEÑO DE CIRCUITOS LÓGICOS
SECUENCIALES
CIRCUITOS COMBINATORIOS Y SECUENCIALES
Los circuitos lógicos se clasifican en dos tipos: combinacional
o secuencial.
Un circuito lógico combinacional, es aquel cuyas salidas
dependen sólo de las entradas actuales.
Ni la secuencia de entrada ni el tiempo en que se realice, alteran la
salida del circuito. Son circuitos sin memoria.
Una característica de estos circuitos es que ninguno de ellos maneja
líneas de retroalimentación en su estructura.
En un circuito lógico secuencial, la salida del dispositivo
depende del estado en el cual se encontraba el mismo y de la secuencia de entrada.
CIRCUITOS COMBINATORIOS Y SECUENCIALES
En los circuitos combinacionales, la salida es siempre una
función de la entrada (zi=F(xi)).
En un circuito secuencial, como el del ejemplo:
la salida entonces, es una función de las entradas y de
todas las salidas que hayan ocurrido en el circuito.
inputs
CIRCUITOS COMBINATORIOS Y SECUENCIALES
Ahora, en lugar de usar todas las salidas pasadas,
representamos el pasado del circuito como su estado. zi=f(xi, si) si+1=g(xi, si)
Esto es, simplemente, la manera como funciona el cerebro;
su respuesta a sucesos nuevos depende de la entrada y de su historia. combinational x F(x) 0
)
(
)
(
0 t
i t t if
x
x
f
f
(
x
i)
tt0
f
(
x
i)
t0 sequential x F(x)FUNDAMENTOS DE LA MEMORIA
Considere el siguiente circuito:
El anterior, es un circuito secuencial muy simple, que puede
diferenciar entre dos estados ya que tiene solo una línea de retroalimentación que puede mantener uno de dos valores, 0 o 1.
PI
PI
0 1
FUNDAMENTOS DE LA MEMORIA
Esto significa que un circuito con n líneas de
retroalimentación tendrá 2n, estados potenciales y , que la
memoria de nuestro circuito depende del número de líneas de retroalimentación.
FUNDAMENTOS DE LA MEMORIA
R S
x
y
Reacomodando el circuito secuencial anterior de dos
estados, obtenemos:
Este circuito, a pesar de que no es muy obvio, solo tiene
una línea de retroalimentación, y es llamado la
estructura de compuerta de acoplamiento cruzado NOR (cross coupled nor).
FUNDAMENTOS DE LA MEMORIA
PI
PI
1
2
Debemos hacer notar que cualquiera de las líneas 1 o 2
del siguiente circuito pueden ser consideradas como la línea de retroalimentación; sin embargo, lo más
relevante es el hecho de que el circuito tiene sólo una línea de retroalimentación.
1 1 0 0 0 R S x y set reset 0 0 0 1 0 0 0 0 0 1 0
Mostramos a continuación el diagrama de tiempo para el
circuito “cross coupled nor”, con un estado particular de inicio: ‘x=0, y=1, S=0, R=0’ que mantendrá al circuito en estado estable hasta que la entrada cambie.
FUNDAMENTOS DE LA MEMORIA
Note que un estado estable es un estado que
permanecerá sin cambios sin importar cuanto esperemos hasta que la entrada sea modificada.
Como podemos observar en el diagrama de tiempo
mostrado, en ambos tiempos, 1 y 2 , las entradas del circuito permanecen las mismas pero la salida difiere. Esto muestra que el estado del circuito esta siendo influenciado por la salida.
FUNDAMENTOS DE LA MEMORIA
Algunas de notas deben hacerse con respecto al circuito
secuencial mostrado:
Un conjunto de entradas puede provocar en el circuito una
oscilación.
Algunas condiciones son ilegales, por ejemplo: en el circuito “cross
coupled nor”, ‘S=1, R=1’, no está permitido.
Un conjunto de entradas al circuito hacen que pierda su memoria, lo
que significa que no sabrá que estado anterior tenía y por lo tanto se consideran ilegales.
FUNDAMENTOS DE LA MEMORIA
Cuando una entrada al circuito secuencial cambia,
se repite el ciclo las veces que sea necesario hasta que el circuito encuentra un estado estable. Algunos circuitos pueden nunca encontrar ese estado, por ejemplo:
Nota: un circuito con retroalimentación no
necesariamente tiene memoria, aunque para tener memoria un circuito necesita forzosamente de
FUNDAMENTOS DE LA MEMORIA
Podemos considerar el circuito “cross coupled NOR”
como un elemento llamado “set-reset latch”, en
donde la salida va a 1 cuando un pulso se recibe en la línea S (set), y la salida va a cero cuando un pulso ocurre en la línea R (reset).
FUNDAMENTOS DE LA MEMORIA
NOTA: En este circuito una pérdida de memoria
ocurre cuando ambos x y y van a 0 o 1 al mismo
tiempo. Esto ocurre si le damos la entrada S=1 y R=1. Esta entrada es considerada como un estado de entrada ilegal. En algunos circuitos, la entrada
ilegal es la que puede poner el circuito en oscilación.
S R Q+ _ 0 1 0 0 0 0 1 1 1 1 Q Transition table
FUNDAMENTOS DE LA MEMORIA
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 S R Q+ _ Q _ Transition table En otras palabras, podemos decir que nuestro circuito
trabajará correctamente mientras x y y sean
complementos el uno del otro.
Characteristic equation S R Q Q _ S R Q Q _ Graphical notation 4 0 1 0 0 Q SR 0 00 1 0 1 5 7 _ _ 1 1 3 2 6 01 11 10 Q+
R
Q
S
Q
FUNDAMENTOS DE LA MEMORIA
R S
Q
Q
De la misma manera que un “cross coupled NOR”, un
“Cross coupled NAND” forma una “S-R Latch”, una
FUNDAMENTOS DE LA MEMORIA
r s Q R S c(clock) Q A pesar de que estas estructuras se consideran
elementos de memoria, lo que requerimos en un elemento de memoria es que cambie su contenido cuando se desee y en cualquier momento. Esto se puede lograr agregando un reloj de entrada a nuestra estructura. Entonces las entradas S y R solamente cambiarán nuestro contenido de memoria
cuando un pulso
FUNDAMENTOS DE LA MEMORIA
Q D c 1 0 1 0 0 1 1 0 Para mejorar esta estructura podemos salvar datos
cuando se le asignen y reescribirlo cuando nuevos datos sean enviados:
FUNDAMENTOS DE LA MEMORIA
Q+ c D
0 0
1 1
Esta estructura llamada “D latch” almacena datos
recibidos a través de la línea de datos hasta que nuevos datos lleguen.
Esta representación puede tener una tabla de excitación
como la siguiente: 1D Q Q _ C1
D
Q
FUNDAMENTOS DE LA MEMORIA
Q0 1D C1 Q2 1D C1 Q3 1D C1 Q1 1D C1 clock Ahora expandamos el tamaño de nuestra memoria
agregando líneas de retroalimentación o
simplemente combinando varios elementos de memoria con un reloj.
FUNDAMENTOS DE LA MEMORIA
decoder 16 8 64k … ... …... Esta estructura puede ahora generar 16 estados
diferentes. Se llama vector de memoria y almacena los datos suministrados a través de un pulso de reloj hasta que nuevos datos sean enviados.
Se puede expandir la memoria utilizando un arreglo de
FUNDAMENTOS DE LA MEMORIA
En la última transparencia, podemos encontrar 16 líneas de
dirección y 8 líneas de I/O a través de las cuales podemos escribir y leer de la memoria. Esta estructura es RAM
DISEÑO DE UN CONTADOR
1D C1 1D C1 1D C1 1D C1 4-bit Adder co 0 ci 0 0 0 1 0 1 1 1 1 1 1 0 13 14 3 2 1 0 clock Ahora que hemos visto como construir un elemento de
DISEÑO DE UN CONTADOR
En este circuito tenemos un reloj de entrada a la memoria
del multivibrador (latch) que es utilizado para controlar el flujo de datos que entra. La idea es utilizar el sumador para contar cada uno de los pulsos de reloj enviados a los
elementos de memoria.
El problema es que esta estructura nunca funcionará de la
manera correcta!!! Esto debido a: considere el LSB de esta estructura, observando los números de una secuencia
binaria. Podemos ver que el único hardware utilizado para este bit es un inversor:
DISEÑO DE UN CONTADOR
Q
C=0
10 0
DISEÑO DE UN CONTADOR
El 0 en la entrada del latch entrará al mismo tan pronto
como el reloj envíe el primer pulso. El tiempo que le toma al bit alcanzar la entrada – teniendo el 1 este tiempo – no será demasiado. Esto significa que la longitud del pulso de reloj no debe ser demasiado largo y corresponder al tiempo
mencionado. Nosotros podemos aplicar esta técnica de prueba y error pero haciendo eso habremos fijado tan solo un bit, y ser capaces de tomar medidas de tiempo para