Sunteți pe pagina 1din 36

Arquitectura de

computadores 1
Resumen prctico












Diego Gonzlez
2007
diesgomo@gmail.com
1. Representaciones de datos

1.1 Sistemas de codificacin
- Definicin de bit:
Es un smbolo 0 1
- Definicin de byte:
Es una coleccin ordenada de 8 bits
- Definicin de cdigo binario:
Es un conjunto ordenado de bits
- Definicin de distancia entre cdigos binarios:
La distancia entre el cdigo binario A y el cdigo binario B es el nmero de bits a
cambiar en A para llegar a B
- Definicin de distancia d de un sistema de codificacin binario:
d es la menor de las distancias entre sus cdigos

1.2 Deteccin y correccin de errores
- Condiciones de deteccin y correccin de errores
1
:
t d < Es posible detectar errores
2
d
t <
Es posible corregir errores
- Mtodo de la paridad:
Se agregan ms bits controladores de la paridad del cdigo. Esto permite detectar
errores; para corregir es posible implementar la paridad vertical, donde se controla la
paridad por fila y por columna.
- Bits de redundancia:
Para generar cdigos de 3 para objetos representables en bits, se necesitan
utilizar bits adicionales tal que 2 1
p
d k
p p k
=
> + +

- Cdigos de Hamming
2
:
4 3 2 1 3 2 1 3 2 3 1 2 1
1 4 2 1
2 4 3 1
3 4 3 2
Para un cdigo se agregan los bits de redundancia como
calculando como
Luego se calcula como
i
i
a a a a p p p a a p a p p
p
p a a a
p a a a
p a a a
s
=
=
=


4
a
3
a
2
a
3
p
1
a
2
p
1
p
0
s X X X X
1
s X X X X
2
s X X X X
Posicin 7 6 5 4 3 2 1
Se define y calcula
2 1 0
s s s s = si
0 no hay errores
, indica la posicin del bit errado
s
s x x
=



1
Se asumen las siguientes hiptesis para el clculo siguiente y para los 3 puntos dados a
continuacin:
i. La probabilidad de que falle un bit es baja
ii. Las fallas de bits son sucesos independientes entre s
t es la cantidad mxima de bits admitida como modificados
2
es la operacin XOR
- Cdigos de redundancia cclica:
Si es la cantidad de bits, se define el polinomio ( ) de grado 1 cuyos
coeficientes coinciden con los bits del mensaje, y ( ) polinomio de grado y
coeficientes binarios.
Se calcula ( ) ( ) (
r
m M x m
G x r
x M x Q x G x

= ) ( ) y ( ) ( ) ( ) y se enva ( ).
Si se verifica que ( ) ( ) , entonces, el cdigo es correcto, sino, hay errores
r
R x T x x M x R x T x
T x G x
+ =


1.3 Representacin interna de datos
- Tipo carcter:
Estos se representan asociando un cdigo binario distinto para cada carcter distinto
segn determinados estndares, los actualmente ms usados son el ISO 10646 y el
UNICODE.
- Tipo string:
Se representan como una sucesin de caracteres implementada como:
i. de largo fijo
ii. de largo indeterminado indicando el final con un carcter especial
iii. un registro de dos campos: el primero contiene el largo y el segundo la cadena
de caracteres del largo especificado en el primer campo
- Tipo entero sin signo
3
:
Se representan expresando el nmero en base 2. La cantidad de nmeros representables
son 0 2 1
n
N s s y sus caractersticas son:
i. El 0 es representable
ii. El orden en la representacin se conserva
iii. Las operaciones de las representaciones coinciden con lo que se representa
- Tipo entero con signo:
Nombre de la
representacin
Descripcin
Cantidad de nmeros
representables
Valor absoluto
y signo
Se utilizan todos los bits disponibles 1
para almacenar el nmero y el bit
restante para almacenar el signo
( )
1 1
2 1 2 1
n n
N

s s
Desplazamiento
Aplica un desplazamiento d
(tpicamente
1
2
n
d

=
1
2 1
n
d

= ) al
nmero en binario: ( )
( ) 2
N N d +
2 1
n
d N d s s
Complemento a
uno
Los nmeros positivos se representan en
binario, y los negativos en el
complemento de cada bit del positivo
correspondiente
( )
1 1
2 1 2 1
n n
N

s s
Complemento a
dos
Representa los nmeros por
complemento a uno y luego le suma 1
1 1
2 2 1
n n
N

s s



3
En esta seccin se considerar n la cantidad de bits disponibles para la codificacin y N el
nmero a representar.
Esta representacin tiene el problema de overflow dado por el bit de acarreo (carry bit), que es
el bit ms significativo sobrante de la operacin.
Nombre de la
representacin

El 0 tiene una
nica
representacin?
El orden de la
representacin se
conserva?
Las operaciones de
las representaciones
coinciden con lo
que representa?
Valor absoluto y
signo
No, tiene 2 No No
Desplazamiento S S No
Complemento a uno No, tiene 2 No No
Complemento a dos S No S
- Representacin decimal:
Nombre de la
representacin
Descripcin
Decimal
empaquetado
Se representa el nmero como un string de caracteres: un nmero es
representado como una sucesin de caracteres que son smbolos
numricos. El final del carcter implementado se indica con un caracteres
especial
Punto flotante
N se representa como ( ) 1
s
e
N b M = , donde s es el signo, e el exponente,
M la mantisa, y b la base de la representacin.
Para representarlos se convenciona la mantisa como mxima (se toma su
bit ms significativo distinto de 0).
Generalmente se expresa en base 2 como: ( ) 1 1. 2
S
E
N F = y se
almacena la terna ( ) , , S F E . Las especificaciones de cmo hacerlo estn
dadas en el estndar IEEE 754. Se considera normalizado si es 1.F y
denormalizado si es 0.F


2. lgebra de Boole

2.1 Axiomas y propiedades
- Axiomas
4
:
1. Existe un conjunto G de objetos, sujetos a una relacin de equivalencia, denotada
por = que satisface el principio de sustitucin.
2.
"+" o
Se define una regla de combinacin tal que siempre que
" " y
a b a b
G G
a b a b
+

e e




3. Neutros:

0 0
Existe un elemento tal que para cada ,
1 1
a a
G a G
a a
+ =

e e

=


4. Conmutativos:
Para todo , ocurre que y a b G a b b a a b b a e + = + =
5. Distributivos:
( ) ( ) ( ) ( ) Para todo , , ocurre que y a b c G a b c a b a c a b c a b a c e + = + + + = +
6. Complemento:
Para todo , existe tal que 0 y 1 a G a a a a a e = + =
7. Existen por lo menos dos elementos , tales que estos sean distintos a b G e
- Propiedades
5
:
o Dualidad:
Todo enunciado vlido posee un dual tambin vlido intercambiando 0 por
1 y + por simultneamente.
o Asociatividad:
( ) ( ) a b c a b c + + = + +
o Idemptoencia:
a + a = a
o Neutros cruzados:
a + 1 = 1
o Complemento de complemento:
a a
a ab a
a ab a b
=
+ =
+ = +

o Ley de De Morgan:
( ) a b ab + =

2.2 Modelos
- Modelo lgico:
{ } ( ) , , , . Este es consecuencia del siguiente isomorfismo: G V F = v .
V 1
F 0
.
v +



4
A + se le dice suma, y a , producto.
5
Por comodidad ab se notar ab. Las propiedades se enuncian para todo , , a b c G e
- Modelo circuital
6
:
{ } ( ) , , , .
Este es consecuencia del isomorfismo:
G A C circuito en paralelo circuito en serie =

A 0
C 1
circuito en paralelo +
circuito en serie
- Modelo binario
7
:
{ } ( ) 0, 1 , AND,OR . Este es consecuencia del isomorfismo: G =
0 0
1 1
OR +
AND
- Conectivas binarias
8
:
a b a OR b a AND b a XOR b a NOR b a NAND b a IGUAL b NOT a
0 0 0 0 0 1 1 1 1
0 1 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 0
1 1 1 1 0 0 0 1 0

2.3 Funciones booleanas
- Definicin por extensin:
: se define por extensin mediante una tabla llamada "tabla de verdad"
n
F G G
- Definicin por comprensin:
( ) ( ) ( ) ( )
1 1
: se define por comprensin indicando los puntos donde se anula
, ..., o los puntos donde no se anula , ...,
n
n n
F G G
F a a F b b

= =
[

- Teorema de la expresin algebraica:
Toda funcin booleana f de n variables puede expresarse como:
( ) ( ) ( )
( ) ( )
1 1 2 3 1 2 3
1 2 3 1 2 3
, ... ... 1, 1, 1, ..., 1 ... 0, 1, 1, ..., 1
... 1, 0, 1, ..., 1 ... ... 0, 0, 0, ..., 0
n n n
n n
f x x x x x x f x x x x f
x x x x f x x x x f
= + +
+ +

- Mtodo de expresin algebraica:
Dada la tabla de verdad de una funcin, su expresin algebraica vendr dada por la
suma de los productos de las variables (conjugando para que con estas entradas el
producto no se anule) de la suma de todas aquellas filas donde la funcin no se anule.
- Simplificacin de funciones: Mtodo algebraico:
Este consiste en combinar las siguientes propiedades en pos de simplificar la funcin:
1. 0 f f =
2. 1 f f + =
3. gf gf f + =
4. gf f f + =
5. f f g f g + = +


6
A hace referencia a una llave de un circuito abierta, y C a la llave de un circuito cerrada.
7
Este ser el que se utilizar el resto del curso.
8
NAND es la negacin del AND
NOR es la negacin del OR
XOR es equivalente a distinto (no igual)
- Simplificacin de funciones: Mapa de Karnaugh:
1. Dibujar una cuadrcula con columnas encabezadas por 00, 01, 11 y 10
(correspondiente a las variables a y b de la funcin respectivamente) y las filas
por c o d (si la funcin es de 3 o 4 variables respectivamente). Si fuera de 5
variables, basta con hacer dos mapas de Karnaugh superpuestos. En uno se
supone la quinta variable de valor 0 y en la otra 1.
2. Se marca con 1 los lugares para los cuales la combinacin de valores de las
variables hace que la funcin valga 1.
3. Se agrupan (considerando que la cuadrcula no tiene borde) la mayor cantidad
posible de unos cuya cantidad encerrada sea potencia de dos.
4. La mnima expresin de la funcin se obtiene sumando los trminos asociados
a cada rectngulo, los cuales son el producto de las variables (simples o
complementadas, dependiendo si su valor es 1 o 0 respectivamente) cuyo valor
no cambia en l.
Ejemplo: La imagen es un Mapa de Karnaugh que representa la funcin
f ad abc acd = + +

3. Circuitos combinatorios
9


3.1 Compuertas lgicas
- Simbologa de los conectivos (compuertas lgicas):

- Compactacin de circuitos lgicos (bloques lgicos):
Los bloques lgicos, simbolizados como se muestra compactan circuitos lgicos.
Cuando se dan estos bloques lgicos debe especificarse cada ( )
1
,...,
i i n
s f a a =





9
Un circuito combinatorio se define como un circuito cuya salida est determinada en todo
instante por la entrada.
Todas las tecnologas se basan en la interpretacin circuital.
3.2 Bloques constructivos
- Circuito decodificador:
o Descripcin:
Dada una combinacin de unos y ceros a la entrada, todas las salidas estarn en
0 salvo la que corresponda al nmero binario coincidente con la combinacin de
todas.
ste tiene N entradas y 2
N
salidas.
o Tabla de verdad (para N = 3):

o Circuito lgico (para N = 3):

o Bloque constructivo (para N = 3):


- Circuito multiplexor:
o Descripcin:
La salida Y toma el valor de la entrada D cuyo ndice coincida con el nmero
binario representado por las entradas A, B y C.
A, B y C se llaman entradas de control, y D entrada de datos.
ste tiene N + 2
N
entradas y una salida.
o Tabla de verdad (para N = 3):

o Bloque constructivo (para N = 3):

- Circuito demultiplexor:
o Descripcin:
Dada la compuerta G (Gate), se devuelve G por la salida Y cuyo ndice coincide
con el nmero binario correspondiente al dado por las entradas de control.
o Tabla de verdad (para N = 3):


o Circuito lgico (para N = 3):

o Bloque constructivo (para N = 3):


- Circuito sumador completo de 1 bit:
o Descripcin:
Suma dos nmeros de un bit cada uno con un acarreo de entrada (cin) y
devuelve la suma y un acarreo de salida (cout)
o Tabla de verdad:

o Circuito lgico:

o Bloque constructivo:


- Circuito sumador completo de N bits:
o Descripcin:
Igual al anterior pero con N bits.
o Bloque constructivo:
Se conexiona en cascada los sumadores completos de 1 bit.
Para N = 4 bits:

- ROMs:
o Descripcin:
Este tiene m + 2 entradas y n salidas.
Dada una entrada devuelve n bits (uno en cada salida) almacenados en esa
entrada. CS selecciona o deselecciona la ROM (indica si sus salidas son 0 o son
las que deberan ser)
o Tabla de verdad:

o Circuito lgico:

o Bloque constructivo (para m = 14 y n = 8):


3.3 Retardo de conmutacin
10

- Problema:
Dados los tiempos de reaccin por las corrientes transitorias es que existen resultados
reales incorrectos.
- Solucin:
Se incorporan relojes tras los cambios que estos producen las salidas pueden tomarse
como vlidas. Estos dan tiempo a que las corrientes transitorias se disipen.
- Lgica del tercer estado
11
:
o Descripcin:
Este agrega a los estados 0 y 1 el estado Z.
Estas indican con Z = 1 que se habilite la salida, y con 0, que se inhabilite la
salida. Estas se implementan con una entrada identidad llamada output
enabled (OE).
o Conectivo:



10
Tiempo de propagacin, retardo de propagacin o tiempo de setup
11
Estado de alta impedancia, estado diferente o tri-state.
4. Circuitos secuenciales
12


4.1 Flip-flops
- Descripcin:
Este es un circuito capaz de recordar un valor de la entrada previa y por ello puede
considerarse un elemento de memoria
- Flip-flops R-S asincrnico (Latch):
o Tabla de verdad:

o Circuito lgico:

o Bloque constructivo:



12
Son secuenciales porque las salidas no son solo en funcin de las entradas, sino tambin en
funcin de los valores anteriores.
- Flip-flop R-S sincrnico:
o Descripcin:
Estos flip-flops habilitan el acceso al contenido mediante una seal G de control
secuencialmente proveniente de un reloj (CLK). Hay dos estados:
1. Si G vale 1, se habilita el acceso al contenido (control por reloj).
2. Se habilita el acceso al contenido en cualquier cambio del valor en G
(control por flanco de reloj)
o Circuito lgico:

o Bloque constructivo:
El primero es con un control por reloj, el segundo por un flanco de reloj:


- Flip-flop D:
o Descripcin:
Estos funcionan igual al flip-flop R-S sincrnico, con la diferencia de que el
nuevo valor de la salida corresponde al valor de la entrada D mientras G est en
1. Mientras G est en 0 la salida mantiene el valor de la entrada D
inmediatamente antes de la transicin de 1 a 0 en la entrada G.
Cuando se trabaja con flanco de reloj se hace ascendentemente (cuando el reloj
va de 0 a 1)
o Tabla de verdad:

o Ecuacin caracterstica:
1 n
Q D
+
=
o Circuito lgico:

o Bloque constructivo:


- Flip-flop T:
o Descripcin:
O bien mantiene su salida incambiada (T = 0) o bien la invierte (T = 1)
o Tabla de verdad:

o Ecuacin caracterstica:
1 n n n
Q Q T Q T
+
= +
o Bloque constructivo:

- Flip-flop J-K:
o Descripcin:
Estos funcionan bajo los flancos descendentes de reloj y permite emular otros
flip-flops segn:
Flip-flop J K
R-S S R
D D
D
T T T
o Tabla de verdad:

o Ecuacin caracterstica:
1 n n n
Q JQ KQ
+
= +
o Circuito lgico:

o Bloque constructivo:

- Entradas set y clear:
Estas con asincrnicas y sirven para poner 1 (set o preset) 0 (clear) en el circuito.

- Entrada clock enabled (CE):
o Descripcin:
Sirve para indicarle al flip-flop cundo debe modificar el contenido
13
.
o Circuito lgico:
Regresivamente (para 4 bits):




13
De esta forma se evita escribir en el flip-flop cuando no interesa (pese a que ocurra un flanco
de reloj).
La informacin solo se guarda si CE = 1 y hay un franco de reloj.
Progresivamente (para 4 bits):

- Contador a base de flip-flops D:
o Descripcin:
Estos cuentan segn cada flanco de reloj de forma progresiva.
o Tabla de verdad:

o Circuito lgico:

4.2 Modelacin de circuitos secuenciales
14

- Definicin de circuito secuencial:
Es un sistema en el cual la salida depende de la entrada y del valor de las entradas
anteriores
- Modelacin
15
:
Matemticamente puede modelarse como
( )
( )
,
,
Y G X E
E H X E
=

' =

donde:
Identificador Descripcin
Y Salida
X Entrada
E Estado interno
E
Valor del estado luego de la transicin
provocada por una nueva entrada
G Funcin
H Funcin
- Esquema modelo:


4.3 Diseo y ejemplo
- Pasos de diseo:
1. Modelado del sistema a implementar mediante la especificacin del Autmatas
finitos deterministas (AFD)
16
correspondiente mediante un diagrama de
Estados
2. Deducir la Tabla de salida y la Tabla de transicin a partir del Diagrama de
estados
3. Determinar el nmero de flip-flops necesarios para codificar todos los estados
posibles y determinar la codificacin a utilizar. Determinar la cantidad de bits y
sistema de codificacin para las entradas y las salidas
4. Incorporar la codificacin de los estados, entradas y salidas a las tablas de
salida y transicin
5. Determinar las funciones lgicas que permitirn determinar el valor de las
salidas en base a las entradas y las salidas de los flip-flops y el valor a presentar
en las entradas de los flip-flops para almacenar el nuevo estado en ellos
6. Minimizar las expresiones lgicas en dos niveles mediante Karnaugh
7. Dibujar el circuito lgico en base a flip-flops, AND, OR y NOT

14
Ver 5.1
15
Este corresponde a una mquina de Mealy; una mquina de Moore se modelara como
( )
( ) ,
Y G E
E H X E
=

' =


16
Ver 5.1
- Ejemplo:
Este ejemplo muestra un reconocedor de la secuencia 11011 en su nico bit de entrada.
Cuando esto ocurre devuelve verdadero (V), en caso contrario, devuelve falso (F).
El diagrama de estados es:

La tabla de estados ser:

Codificando F 0 y V 1 y simplificando el circuito final considerando los estados
indiferente (X) se obtiene la tabla de codificacin de los estados:

Aplicando Karnaugh para simplificar las entradas y las salidas:

El circuito que se obtiene es:


5. Mquinas

5.1 Mquinas de estado
- Definicin de estado:
Dadas dos secuencias de valores de entrada de un circuito secuencial, stas sern
equivalentes si a partir de cierto punto coinciden las entradas y las salidas.
Cada clase de equivalencia que define la relacin anterior es un estado.
- Definicin de AFD:
Es un modelo matemtico de un sistema con entradas y salidas discretas que tiene el
mismo comportamiento para la misma combinacin entrada-salida.
- Definicin de mquina de estado:
( )
0
Son cuaternas , , , donde M E e o = E
Componente Descripcin
E Conjunto finito de estados
e0 Es el estado inicial (e0 e E)
E Alfabeto de entrada
o : E E o E funcin de transicin
- Mquina de Mealy
17
:
o Definicin de Mquina de Mealy:
Se define como ( )
0
, , , , , M E e o = E A donde
Componente Descripcin
Alfabeto de salida
: funcin de salida E E A
o Ejemplo:
{ } { } { } ( )
0 1 2 0
, , , 0, 1 , , , , , M e e e y n e o = con
o 0 1
e
0 e
1
e
2
e1 e1 e2
e2 e1 e2

0 1
e0 n n
e1
y n
e2
n y
Si bien esta definicin es suficiente, tambin se puede definir como un grafo
dirigido con nodos los estados y aristas las transiciones de estado xx/yy los
valores de las entradas que provocan la transicin y el valor de las salidas
respectivamente.


17
En este caso se trata de una mquina de estado cuya salida est asociada con la transicin
- Mquina de Moore
18
:
o Definicin:
( )
0
, , , , , M E e o = E A
o Ejemplo:


5.2 Mquina lgica general
- Caractersticas:
o Una mquina combinatoria es un caso particular de una mquina secuencial,
pudindose comportar tanto como un traductor de smbolos como una
mquina reconocedora de secuencias.
o Una mquina lgica general puede resolver cualquier problema computable
19
.
- Diseo general:

- Diseo de la mquina lgica general programable:



18
En este caso se trata de una mquina de estado cuya salida est asociada con el estado
19
Esto lo admitiremos sin demostrar
6. Computadora

6.1 Arquitectura de Von Neumann
- Definicin de computadora:
Es una mquina lgica general programable
- Arquitectura de Von Neumann:
Utiliza el concepto de que normalmente una operacin compleja puede dividirse como
una secuencia ordenada de operaciones ms simples.
Para ello introdujo el concepto de programa almacenado como una secuencia
lgicamente ordenada de instrucciones, siendo stas las operaciones bsicas que se
implementa en hardware.
- Bloques constructivos de la arquitectura de Von Neumann:


- Variantes de la arquitectura de Von Neumann:
Variante Descripcin
Set de instrucciones
La cantidad de instrucciones disponibles y la calidad
y complejidad de las operaciones implementadas en
el hardware de la CPU
Formato de instruccin La forma en que se codifican las instrucciones
Set de registros
La cantidad de registros disponibles al programador,
as como la funcin que pueden cumplir
Modos de direccionamiento
Formas de generar las direcciones para hallar los
operandos o almacenar los resultados de las
operaciones
Manejo de la E/S Forma de comunicacin con los perifricos
Manejo de interrupciones
Manejo de una forma particular de invocar a ciertas
subrutinas de los programas tratados en los
siguientes puntos

6.2 CPU
- Componentes:
Componentes Descripcin
Unidad Aritmtico-
Lgica (ALU)
Circuito lgico que implementa operaciones de aritmtica
binaria, lgica y de desplazamiento o rotacin de bits
Unidad de control
(UC)
Circuito secuencial que implementa del denominado ciclo de
instruccin, permitiendo acceder a la siguiente instruccin de
un programa, leer sus operandos, efectuar la operacin
indicada en la ALU y guardar el resultado de la misma
Banco (Set)
Son una serie de posiciones de memoria, ubicadas dentro de la
propia CPU, que permiten un acceso a operando y lugares de
almacenamiento de resultados mucho ms veloz que si
estuvieran en el sistema de memoria normal. Algunos de estos
registros son de uso interno de la propia CPU y otros son
utilizables por el programador

Componente Funcin
CPU Ejecuta los programas
Memoria (MEM)
Almacena el programa y
los datos
Entrada/Salida (E/S)
Comunica el computador
con los usuarios
- Diagrama de la CPU:

- Componentes del Banco de registros:
Componente Descripcin
Registro totalmente
visible
Contiene operandos o direcciones para la utilizacin en
instrucciones. Es accesible al programador
Registro
parcialmente visible
Contiene funciones especiales. Es manipulado indirectamente por
el programador para funciones especficas. Ejemplos de este
registro: IP, PC, SP PS y FLAGS
20

Registros internos
Los utiliza la CPU para poder ejecutar las instrucciones.
Almacena constantes, el estado de la UC, la instruccin en
ejecucin y resultados intermedios de clculos de direcciones
entre otras.
- Unidad de control:
Es una mquina de estados que realiza el ciclo de instruccin
- Ciclo de instruccin:
Secuencia de micro-acciones que realiza la CPU para lograr ejecutar una instruccin del
programa almacenado en memoria:



20
Ms adelante se detalla el significado y funcin de lo que estas siglas representan
Fetch
Leer la prxima instruccin a ejecutarse desde la memoria
Decode
Analizar el cdigo binario de la instruccin para determinar qu se debe
realizar (cul operacin, qu operandos y dnde almacenar el resultado)
Read
Acceso a memoria para obtener los operandos
Execute
Ejecucin de la operacin en la ALU
Write
Escribir el resultado en el destino indicado en la instruccin
- Estructura de ejemplo:


Recurso Descripcin (si es un registro, lo que almacena)
Registro IP Puntero de instruccin
Registro SP Puntero a la pila
Registro PS
Estado del procesador (en particular, FLAGS
Carry, Overflow y Zero)
Registro IR Instruccin leda desde memoria
Registro AUX
Datos internos de a la UC (por ejemplo, direccin
de memoria)
Registro 0 Constante 0
Registro +1 Constante 1
Registro -1 Constante -1
Registros A a F De uso general
Registro MAR (Memory
Adress Register)
Direccin de memoria que se presenta en el bus
de direcciones de la memoria durante una
operacin de lectura o escritura de la misma
Registro MDR (Memory Data
Register)
Dato ledo de la memoria (en una operacin de
lectura) o dato a escribir en la memoria (en una
operacin de escritura)
A MUX Multiplexor que elige entre dos entradas posibles
Shifter
Unidad encargada de realizar la operacin de
desplazamiento de 0 bits o 1 bit a derecha o
izquierda
Se omite la UC que tiene como entrada los bits del Registro IR y analiza qu debe
hacer en funcin de lo especificado en la instruccin y como salidas toda las seales de
control indicadas en el diagrama.
Seal de control Funcin Ejemplos
A0, A1, A2, A3
Seleccionar un registro y
conectar su salida al bus A
- 0001 IP
- 0111 -1
B0, B1, B2, B3
Seleccionar un registro y
conectar su salida al bus B
- 0001 IP
- 0100 IR
C0, C1, C2, C3
Seleccionar un registro y
conectar su entrada al bus C
- 0001 IP
- 1110 F
X0
Seleccionar si se conecta a su
salida la entrada que viene
desde el MDR o desde el bus A
- 0 MDR
- 1 Bus A
F0, F1
Codificar l operacin a realizar
por la ALU
- 00 Identidad
- 11 Nand bit a bit
S0, S1
Codificar la operacin de
desplazamiento
- 00 No desplaza
- 10 Un bit a la
izquierda
M0 Controlar la carga en el MAR - 1 Carga
M1, M2
Controlar la carga en el MDR,
desde qu lneas se produce y
qu lneas se activa
- 01 Carga desde el
bus de datos de
memoria y activa
salidas hacia el
MUX
- Ejecucin de ejemplo:
Ejecucin de la suma de un operando de memoria con modo de direccionamiento
indirecto (B) y un registro (A) guardando el resultado en otro registro (E)

Fetch
Conectar la salida del registro IP al bus B (B0 = 0, B1 = 0, B2 = 0, B3 = 1)
Seleccionar cargar MAR (M0 = 1)
Seleccionar conectar el bus de datos de memoria con el mux (M1 = 1, M2 = 1)
Seleccionar MDR en el A MUX (X0 = 0)
Seleccionar la operacin identidad A en la ALU (F0 = 0, F1 = 1)
Seleccionar no desplazar en el Shifter (S0 = 0, S1 = 0)
Conectar la entrada del registro IR al bus C (C0 = 0, C1 = 0, C2 = 0, C3 = 1)
Activar la lectura en el bus de control de memoria (R/W = 0)
Decode
Se analiza el cdigo binario de la instruccin
Se implementa en la UC una funcin que toma como entrada el contenido del IR y da como salida
los valores apropiados de las seales de control, condicionando el prximo estado de la mquina
secuencial
Read
Conectar la salida del registro B al bus B (B0 = 1, B1 = 0, B2 = 0, B3 = 1)
Seleccionar cargar MAR (M0 = 1)
Seleccionar cargar el MDR desde el bus de datos de memoria (M1 = 0, M2 = 1)
Activar la lectura en el bus de control de memoria (R/W = 0)
Execute
Conectar la salida del registro A al bus B (B0 = 0, B1 = 0, B2 = 0, B3 = 1)
Seleccionar MDR en el A MUX (X0 = 0)
Conectar la entrada del registro E al bus C (C0 = 1, C1 = 1, C2 = 0, C3 = 1)
Seleccionar la operacin suma en la ALU (F0 = 0, F1 = 1)
Seleccionar no desplazar en el Shifter (S0 = 0, S1 = 0)
Write
No corresponde en este ejemplo
- Lgica cableada:
Una CPU en base a la lgica cableada se construye en base a un diagrama de estados
traducindola a una Mquina de Mealy.
- Lgica microprogramada:
Para cada instruccin en la CPU existir un microprograma consistente en una
secuencia lgica de microinstrucciones que establecern el orden de los eventos
necesarios para lograr la ejecucin de la instruccin en la CPU, incluyendo todas las
bifurcaciones de la secuencia que se requieran en base a los distintos tipos de
direccionamiento y cualquier otra variante que admita la instruccin especfica.
- Microprogramacin vertical:
Cada microinstruccin contiene los bits codificados de las seales de control de los
distintos caminos de la seales de datos.
- Microprogramacin horizontal:
Utiliza microinstrucciones con los bits de control sin codificar.

6.3 E/S
- Definicin de bus:
Es una agrupacin de lneas que comunican tres tipos de informacin en el
computador: Direccin, Datos y Control
- Tipos de buses:
Tipo Composicin y funcionalidad
Bus de
direcciones
Lneas de conexin que transportan las direcciones de memoria
o E/S a ser accedidas durante la transferencia
Bus de control
Lneas de conexin que transportan seales que controlan el uso
del bus y la comunicacin sobre l. stas son:
Seal Funcin
Memory_Read Indica una operacin de lectura sobre la
memoria
Memory_Write Indica una operacin de escritura sobre
la memoria
I/O_Read Indica una operacin de lectura sobre la
E/S
I/O_Write Indica una operacin de escritura sobre
la E/S
Bus_Request Indica que un sub-sistema desea tomar
control del bus para iniciar una
transferencia
Bus_Grant Confira que el bus est disponible para
quien lo solicit
Transfer_ACK Confirma la recepcin de una
transferencia de informacin
Interrupt_Request Indica un pedido de interrpcin hacia
un sub-sistema
Interrupt_ACK Confirma la aceptacin del pedido de
interrupcin
Clock Sincroniza las actividades del bus y sus
seales
Reset Fuerza el reset de todos los
componentes conectados al bus
Bus de datos
Lneas de conexin que transportan la informacin que es
transferida sobre el bus


- Clasificacin de buses segn la complejidad:

- Clasificacin de buses segn la aplicacin a la que se destinan:

- Perifricos:
Son los que realizan el vnculo del computador con el mundo exterior. A travs de ellos
se realiza el ingreso de programas y datos a procesar y se obtienen los resultados del
proceso en un formato que sea legible para el ser humano se provoca alguna
alteracin del mundo fsico circundante.
- Definicin de controlador:
Es la parte del perifrico que contiene su inteligencia.

Bus simple
Master-Slave: Existe una sola entidad
(Master) que controla y supervisa el
uso del bus (generalmente la CPU) por
parte de las dems entidades (Slaves)
Bus inteligente
Cualquier entidad conectada puede ser,
potencialmente, el Master. Ello se elije
arbitrariamente mientras el resto se
mantiene como Slave
Bus con arbitraje
centralizado
Hay una entidad con mayor
jerarqua que las dems
(generalmente la CPU)
encargada de controlar el bus.
Cada entidad interesada en
ser el Master se lo solicita al
rbitro
Bus con arbitraje
distribuido
Todas las entidades
conectadas tienen el mismo
rango y no hay un rbitro: la
inteligencia del bus se
encuentra distribuida
Internos
Se utilizan para conectar sub-sistemas
dentro de la "frontera" del sistema
Externos
Se utilizan para conectar sub-sistemas
fuera de la "frontera" del sistema
- Conexin de los controladores:

- Acceso a los controladores:
El acceso se obtiene mediante las posiciones de memoria especiales de estos
dispositivos.
- Arquitectura
21
:
Hay dos tipos:
1. La CPU dispone de un espacio de direcciones reservado que es accedido
mediante instrucciones especialmente destinadas
2. La CPU accede a los controladores como si se tratara de posiciones normales de
memoria


21
Las posiciones de memoria referidas se les llama registros
Controlador contenido
en el gabinete
Conectado directamente al bus del
sistema






Conectado a un bus distinto al interno del
sistema, el cual se conecta al bus interno a
travs de un adaptador







Controlador contenido
en el gabinete del
perifrico
Conectado directamente ak bus del sistema
mediante una interfaz






Conectado directamente al bus interno del
sistema mediante un adaptador










Conectado a un bus distinto del interno
mediante un adaptador









Controlador distribuido entre el gabinete
del computador y del perifrico





- Manejo de los registros:
Estas memorias no siempre se comportan como las comunes sino como se detalla a
continuacin:
Nombre Comportamiento
Slo lectura
El registro puede solamente ser ledo; la escritura
no surte efecto
Slo escritura
Er registro solo puede ser escrito; la lectura tiene un
resultado impredecible
Lectura/Escritura
independiente
Hay dos registros diferentes, uno para solo lectura
y otro para solo escritura independientes segn se
detalla en los dos puntos anteriores
Lectura/Escritura normal
Se comportan como una posicin de memoria
normal
- Tipos de registros:
Tipo Contenido
Entrada
Contiene un dato destinado a la CPU. Proviene del perifrico, el
controlador o la lnea de comunicaciones
Salida
Contiene un dato destinado al perifrico, el controlador o la lnea de
comunicaciones. Proviene de la CPU
Estado Contiene bits que indican el estado del controlador o del perifrico
Control
Contiene bits que le indican al controlador o al perifrico realizar
determinada accin
- Arquitectura de E/S y buses de un PC:
Se basa en buses interconectados mediante dispositivos llamados bridges segn:

6.4 Interrupciones
- Definicin de interrupcin
22
:
Una interrupcin consiste en un mecanismo que provoca la alteracin del orden lgico
de ejecucin de instrucciones como respuesta a un evento externo, generado por el
hardware de E/S en forma asincrnica al programa que est siendo ejecutado.

22
Una definicin alternativa es: Una interrupcin consiste en un mecanismo que le permite al
hardware la invocacin de una rutina fuera del control del programa que est siendo ejecutado.
- Pedido de interrupcin:

- Circuito de la entrada INT:

- Pedido de interrupcin:


Pedido de interrupcin generado por
el controlador de E/S
Deteccin por nivel: La CPU
reconocer que hay un pedido de
interrupcin mientras INT valga 1
Deteccin por flanco: La CPU
reconocer que hay un valor de
interrupcin por flanco ascendente
de INT
stos disponen de una seal de salida INT que
toma el valor 1 cuando el controlador interumpe.
Cuando el proceso de interrupcin termina, INT
vale 0
La misma seal existe en el CPU pero
es de entrada. sta es consultada por
el CPU para saber si hay pedido de
interrupcin
"Termina" de
ejecutar la
instruccin actual
Guarda el valor actual del IP
para continuar la ejecucin del
programa interrumpido una vez
finalizado el proceso de
interupcin
Identifica el controlador
de E/S que realiz el
pedido de interrupcin
Obtiene la direccin de la
rutina de servicio de la
interrupcin. Este se almacena
en un vector de interrupciones
Enmascara las interrupciones para inhibir la aceptacin de
nuevos pedidos de interrupcin hasta que se retorne de la
rutina del servicio de interrupcin el cdigo de la rutina
habilite de forma explcita la aceptacin de nuevas
interrupciones
Ejecuta la rutina
del servicio de
interrupcin
- Identificacin del controlador que solicita la interrupcin:


Mecanismo INT/INTA

Controlador de interrupciones
- Habilitacin de interrupciones:
La CPU puede aceptar o rechazar pedidos de interrupcin, para ello se vale de lo
siguiente:
Implementacin Funcin
Enmascaramiento
La CPU inhibe la aceptacin de todas las solicitudes de
interrupcin (ste es su estado inicial)
Deshabilitacin
La CPU acta individualmente sobre cada controlador en
forma de inhibir su eventual pedido de interrupcin
- Tipos de prioridades:
o Prioridad fija: Se atiende en orden jerrquico
o Prioridad configurable: Cambia en funcin de las condiciones del sistema
o Sin prioridad: Se implementa un sistema de seleccin stas funcionan segn el
comportamiento de interrupciones:

Identificacin por
hardware
Lneas INT/IRQ independientes de la
CPU
La CPU tiene mltiples entradas INT
donde se conecta cada controlador de
E/S
Mecanismo INT/INTA
La CPU dispone de una nica entrada
INT a la cual se conecta en la
modalidad OR cableado todos los
pedidos de interrupcin de los distintos
controladores
Controlador de interrupciones
El controlador de interrupciones genera
el pedido a la CPU a travs del
controlador INT y devuelve por INTA la
decisin tomada.
Identificacin por
software
Rutina de servicio de interrupcin
Aplica cuando hay mltiples
controladores conectados en OR a la
misma entrada de INT. La rutina de
servicio de interrupcin debe tener
una parte inicial que consista en el
recorrido de los distintos
controladores de E/S, leyendo los
registros de estado hasta encontrar
aquel que tenga su bit de periodo de
interrupcin en 1. En ese caso se
invocar a la subrutina asociada a ese
controlador especfico
- Superposicin de interrupciones:
Comportamiento Descripcin
Interrupciones simultneas
Se adopta una de las estrategias descriptas en el
punto anterior
Interrupcin de
interrupcin
La atencin o no de la solicitud depender del
esquema de jerarqua/prioridades que tenga
implementada la CPU o el controlador de
interrupciones
- Definicin de rutinas de interrupcin:
Son la pieza de cdigo que se ejecuta como resultado del mecanismo que desencadena
la CPU al procesar un pedido de interrupcin. stas deben preservar el contexto.
- Estrategias de conservacin del contexto:
Estrategia Descripcin
Mquina no dedicada
En la mquina donde se ejecuta la rutina de interrupcin
existen mltiples programas en ejecucin los cuales han
sido programados por distintos equipos sin coordinacin
Mquina dedicada
La mquina est completamente dedicada a una funcin
especfica y todos los programas y rutinas que se ejecutan estn desarrollados por el
mismo equipo de programadores o por equipos fuertemente coordinados
- Estrategias de programacin:
o Toda la lgica del sistema se implementa en el programa principal y las rutinas
de interrupcin solamente modifican banderas indicando que se ejecutaron
o Toda la lgica se implementa en las rutinas de interrupcin y el programa
principal o bien est en loop infinito (mquina dedicada) o bien instalada e
inicializa las rutinas de interrupcin y termina (mquina no dedicada)
o La lgica se implementa en parte en el programa principal y en parte en las
rutinas de interrupcin

S-ar putea să vă placă și