Está en la página 1de 50

Arquitectura y Organización

• Unidad 4 - Subsistemas de un computador:


• Arquitectura general y organización funcional de computadoras.
Descripción de los distintos bloques (Memoria, ALU, Unidad de
control y Unidad de E/S). Proceso de búsqueda y ejecución de las
instrucciones.). Interrupciones. Estructuras de interconexión. Buses.

Objetivos:
Repasar acerca de los componentes estructurales y funcionales
Comprender la interrelación de dichos componentes
Identificar buses, como medio de conexión de los componentes
Apreciar aspectos de diseño que afectan las interconexiones:
interrupciones.
1

Estructura y Funcionamiento

• Repasamos: Computador es un sistema complejo


• Naturaleza jerárquica de los sistema complejos.
• Sistema jerárquico: subsistemas interrelacionados.
Cada uno de los cuales se organiza en una
estructura jerárquica, hasta el nivel más bajo del
subsistema elemental.
• En cada nivel interesa: Estructura y
funcionamiento
2
Estructura y funcionamiento
• Estructura: Modo en que los componentes están
interrelacionados.
• Funcionamiento: la operación de cada
componente individual como parte de la estructura.
• En términos de descripción: de arriba abajo ( “top-
down”) es clara y efectiva (descomponer el
sistema.).

Organización funcional
• Funciones básicas de un computador:
– Procesamiento de datos
– Almacenamiento de datos (corto/largo plazo)
– Transferencias de datos (Entrada/salida.- Comunicación de datos).-
– Control ( De las tres anteriores- gestionar y dirigir por medio de
instrucciones)
• Número de operaciones posibles que pueden ser realizadas
es pequeño.
• Posibles operaciones de un computador (4)

4
Visión funcional de un computador

Recurso de
almacenamiento
de datos

Entorno Operativo
Sistema
Mecanismo
(Fuente y destino Transfere
de Control
ncia de
de datos datos

Recurso de
Procesamiento de
Datos

Operaciones (4)
• Las operaciones básicas pueden parecer absurdamente
generalizada, pero:

• “Hay sorprendentemente muy pocas formas de estructuras de


computadores que se ajusten a la función que va a ser llevada a
cabo. En la raíz de esto subyace el problema de la naturaleza de
uso general de computadores, en la cual toda la especialización
funcional ocurre cuando se programa y no cuando se diseña”.
(SIEW82)

6
Estructura de una computadora
• Como se interconectan los componentes.
• El computador es una entidad que interactúa
con su entorno externo.
• Existen cuatro componentes estructurales
principales:
– Unidad Central de Procesamiento (procesador)
– Memoria Principal: almacena datos
– Entrada/Salida transfieren datos entre el computador
y el entorno externo
– Sistema de Interconexión: mecanismo de conexión
entre la CPU, la memoria y la E/S. 7

Estructura del nivel superior

Peripherals Computer

Central Main
Processing Memory
Unit

Computer
Systems
Interconnection

Input
Output
Communication
lines
8
9

Sub-sistemas de un computador.

A alto nivel un computador se puede se puede describir:


1) Mediante el comportamiento de cada uno de sus
componentes, es decir, mediante los datos y las
señales de control que un componente
intercambia con otro.
2) Mediante la estructura de interconexión y los
controles necesarios para gestionar el uso de
dicha estructura.

10
Sub-sistemas de un computador.

La visión de alto nivel es importante dada su capacidad


explicativa para facilitar la comprensión de la naturaleza
de un computador.
1) Es importante además para entender los
problemas cada vez mas complejos de evaluación
de prestaciones.
2) Permite tener idea de los cuellos de botella del
sistema, los caminos alternativos, la importancia
de los fallos si hay un componente defectuoso
3) Muchas veces los requisitos de mayor potencia y
capacidad de funcionamiento tolerante a fallos se
soluciona mediante cambios en el diseño del 11
computador

Diseño de la Arquitectura Von Neuman

Basada en tres conceptos fundamentales:


Los datos y las instrucciones se almacenan en una sola
memoria de lectura-escritura.
Los contenidos de memoria se direccionan indicando su
posición, sin considerar el tipo de dato contenido en la
misma.
La ejecución es secuencial, una instrucción detrás de
otra.
Recordamos: Fundamento de esos conceptos: un
conjunto pequeño de componentes lógicos básicos que
se combinan para almacenar datos binarios y realizar 12
operaciones matemáticas y lógicas.
Concepto de programa (1)

- Antes para un cálculo concreto, era posible configurar


los componentes lógicos de manera especial para eso.
Se piensa en conectar los componentes para obtener la
configuración deseada, se obtiene un programa cableado
(hardwired program)

- Programación hardware: cuando cambian las


tareas se cambia el hardware
13

Concepto de programa (2)

- Hardware de uso general


Programación en software: se proporciona en cada
paso un nuevo conjunto de señales de control.
14
Componentes de una PC
-Dos componentes esenciales del sistema graficado:
Intérprete de instrucciones + módulo de uso general para las
funciones = CPU.
Componentes adicionales: para ingresar datos e
instrucciones: Modulo de entrada y para dar salida a los
resultados: Módulo de Salida= Componentes de E/S.
Componente necesario para almacenar temporalmente los
datos e instrucciones= MEMORIA o MEMORIA PRINCIPAL.

15

Componentes de un Computador esquema de dos niveles (I)

16
Componentes de un Computador (Esquema de dos niveles ) (II)
CPU: Se encarga del control. Intercambia datos con la memoria
–PC = Contador de Programa ó Program Counter.
Cuando un programa va a ser ejecutado, el PC contiene la dirección
de la 1era. instrucción. Alcanzada esta inst. el PC es incrementado
para apuntar a la siguiente instrucción.
–RI = Registro de instrucción
–MAR = Registro de dirección de memoria (especifica la dirección en
memoria de la próxima lectura o escritura)
–MBR = Registro de Buffer de Memoria (contiene el dato que se va a escribir en
memoria o donde se escribe el dato que se va a leer de memoria).

–E/S AR= Registro de dirección de E/S (especifica un dispositivo de E/S).

–E/S BR= Registro buffer de E/S (para intercambiar datos entre un módulo de
17
E/S y la CPU)

Funcionamiento del Computador

Función de la computadora ( 1 )
–Ejecutar programas
–El programa está compuesto de instrucciones almacenadas
en memoria
–La CPU procesa/ejecuta las instrucciones
–Debe traerlas desde memoria una por vez
–Debe cumplir cada operación ordenada

18
Ciclo de Instrucción

Función de la computadora ( 2 )

Podemos descomponer el procesamiento de instrucciones en


dos etapas:
Búsqueda: leer desde memoria (capta)
Común a todas las instrucciones.
Ejecución: dependiendo de la instrucción puede implicar
varias operaciones

19

Ciclo de Instrucción

Función de la computadora ( 3 )
El procesamiento requerido para una sola instrucción se llama
ciclo de instrucción.
– Dos pasos:
ciclo de búsqueda y ciclo de ejecución
- La ejecución del programa se interrumpe sólo si la máquina
se apaga, hay un error ó una instrucción que interrumpa a la
computadora.
20
Ciclo de Instrucción
Ciclo de captación y ejecución ( 1 )

21

Ciclo de Instrucción
Ciclo de captación y ejecución ( 2 )
–Al principio de cada ciclo, la CPU capta una instrucción
de memoria.
–En la CPU hay un registro, llamado contador de
programa (PC), que tiene la dirección de la próxima
instrucción a captar.

La CPU, después de buscar cada instrucción,


incrementa el valor contenido en PC; así podrá buscar la
siguiente instrucción en secuencia.

22
Ciclo de captación y ejecución ( 3)
–La instrucción buscada se carga dentro de un registro de la
CPU, llamado registro de instrucción (IR).

–La instrucción está en la forma de un código binario que


especifica las acciones que tomará la CPU.

–La CPU interpreta cada instrucción y lleva a cabo las


acciones requeridas.

23

Ciclo de búsqueda y ejecución ( 4 )

– En general las acciones pueden ser de 4 tipos:


•CPU – Memoria
datos pueden transferirse entre CPU y memoria y
viceversa.
•CPU – E/S
datos pueden transferirse entre CPU y modulo de
entrada/salida. ( datos a o desde el exterior)
•Procesamiento de datos
CPU efectúa operaciones aritméticas ó lógicas con los
datos.
•Control
alterar la secuencia de ejecución de instrucciones. 24
Ejemplo: (1)

Se mostrará la ejecución de una parte de un programa,


recalcando las partes relevantes como memoria y
registros de la CPU.
Este fragmento suma el contenido de la palabra de memoria
que está en la dirección 940 con el contenido de la
palabra de memoria en la dirección 941 y almacena el
resultado en esta última posición.

25

Ejemplo (2) : Se considerará una maquina hipotética


cuyas características se muestran:
- Tanto las instrucciones como los datos son de 16 bits
- Posee un único registro de datos llamado acumulador (AC)
- La memoria se organiza en posiciones de 16 bits, o palabras
- Puede haber 2 4, códigos de operación diferentes
- Se pueden direccionar directamente hasta 2 12 = 4096 (4k)
palabras de memoria.
Lista parcial de códigos de operación. (“CODOPS”)
00012=1= cargar AC ( D) desde la memoria
00102=2= almacenar AC ( D ) en memoria
01012=5= sumar a AC (D) un dato de memoria
26
Ejemplo (3):

El ejemplo muestra la ejecución de un fragmento de programa


que tiene tres instrucciones:
- Cargar en el registro AC (D) el contenido de la posición de
memoria 94016
- Sumar el contenido de la posición de memoria 94116 al registro
AC y guardar el resultado en AC
– Almacenar el valor del registro AC en la posición
de memoria 94116

27

Ejemplo (4):

Consideremos que cada posición de memoria almacena 16


bits. Los primeros 4 bits indican la operación a realizar,
los siguientes 12 bits indican una dirección de memoria.

– 00012=1= cargar D desde la memoria


– 00102=2= almacenar D en memoria
– 01012=5= sumar D con un dato en memoria

28
Ejemplo: Paso 1

El contador de programa (PC) contiene 30016 como la dirección


de la primera instrucción ( 1940 16). El contenido de esta
dirección se carga en el registro de instrucción (IR).

Este proceso implica usar MAR y MBR. Para simplificar por


ahora los ignoramos.

29

Ejemplo: Paso 1

AC

30
Ejemplo: Paso 2

•Los primeros 4 bits en IR ( primer digito Hexadecimal)


indican que el registro AC (D) se cargará con un dato
proveniente de la dirección especificada
•Los restantes 12 bits de la instrucción especifican la
dirección que se va a cargar, 94016.

31

Ejemplo: Paso 2

= AC

32
Ejemplo: Paso 3

–Se incrementa el contador de programa PC y se capta la


siguiente instrucción en la dirección 30116.

33

Ejemplo: Paso 4
El 516 en IR indica que se debe sumar el contenido de
una dirección de memoria especificada, en este caso la
dirección es 94116, con el contenido del registro D y
almacenar el resultado en el registro AC (D).

34
Ejemplo: Paso 5

Se incrementa el PC y se busca la siguiente


instrucción en 30216

35

Ejemplo: Paso 6

El 216 en IR indica que el contenido del registro D se


almacena en la dirección 94116, que está
especificada en los bits restantes de la instrucción.
En este ejemplo, se necesitan 3 ciclos de instrucción,
cada uno con un ciclo de búsqueda y un ciclo de
ejecución.

36
Ciclo de instrucción
Con este ejemplo podemos ahora tener una visión
más detallada del ciclo de instrucción básico. El ciclo
de ejecución de una instrucción puede ocasionar mas
de una referencia a memoria.
Además, en lugar de referencias a memoria, una
instrucción puede referencia una operación de E/S.
La figura siguiente está en forma de diagrama de
estados.
Para cualquier ciclo de instrucción dado, algunos
estados pueden no estar y otros pueden repetirse.

37

Diagrama de estados del ciclo de instrucción(1)

Captación de la instrucción Almacenamiento de operando


Captación de operando

Decodificación de la operación
de la instrucción
Operación con datos

Cálculo de la dirección de Cálculo de la dirección de Cálculo de la dirección de


la instrucción operando operando
38
Diagrama de estados (1)

39

Diagrama de estados (2)


1. Cálculo de la dirección de la instrucción: (IAC)
determina la dirección de la siguiente instrucción
a ejecutarse.

2. Búsqueda instrucción (IF): lee la instrucción de


su posición de memoria a la cpu.

3. Decodificación de la instrucción (IOD): analiza la


instrucción para determinar el tipo de operación
a realizar y los operandos que se usarán.

40
Diagrama de estados (3)
4. Cálculo dirección operando (OAC): si la instrucción
implica una referencia a un operando en la memoria ó
e/s, entonces se determina la dirección del operando.

5. Captación del operando (OF): capta el operando


desde la memoria ó se lee desde el dispositivo de e/s.

6. Operación sobre los datos (DO): realiza la operación


indicada en la instrucción.
7. Cálculo dirección resultado. Idem 4.
8. Almacenamiento resultado. Escribe el resultado en
memoria o lo saca a través de un dispositivo de E/S
41

Diagrama de estados (4)

• Los estados en la parte superior implican un


intercambio entre la cpu y la memoria ó e/s.

• Los estados en la parte inferior implican sólo


operaciones internas en la cpu.

42
Ejemplo: ADD
Supongamos la siguiente instrucción :

43

ADD: paso a paso (1)

•Buscar la instrucción en memoria.


•Incrementar el PC.
•Decodificar la instrucción.
•Si es necesario, buscar una constante en una dirección
de memoria.
•Si es necesario, incrementar PC para que apunte más
allá de la constante.

44
ADD: paso a paso (2)

•Si es necesario calcular la dirección del operando.


•Buscar uno de los operandos, desde memoria ó
registro.
•Buscar el otro operando desde registro.
•Realizar la Suma.
•Almacenar el resultado.

45

Paso a paso (1)


•En el primer paso, la CPU busca la instrucción en
memoria. Para esto copia el valor del PC al MAR y de
ahí al bus de direcciones. La UC envía las señales
necesarias para una operación de lectura. Se pueden
leer uno ó más bytes. Se colocan en IR.

Paso a paso (2)


•Después de buscar la instrucción, la CPU debe
incrementar el PC para apuntar a “lo que sigue”. Puede
ser un dato, dirección ó la siguiente instrucción.
46
Paso a paso (3)
El paso siguiente es decodificar la instrucción para
saber que operación hacer (suma, resta, etc.). En
este momento la CPU no sólo se entera de la
operación, sino también dónde se encuentran los
datos sobre los cuales operar.
La instrucción es auto-contenida en ella “todo está
dicho”.

47

Paso a paso (4)


•En el paso anterior la CPU determinó si tiene que ir a
buscar un operando a memoria, que ocupa una celda o
más (byte/s) y lo hace en este momento.
•Si existió el paso anterior la CPU debe incrementar el
PC en el valor adecuado de celdas (1, 2 o mas).

48
Paso a paso (5)
•En este paso si es necesario, calcula la dirección del
operando.
•Buscar los operandos.
•Sumar, Restar ….
•Almacenar el resultado.

49

Ejemplos adicionales

Simulación de Instrucciones en MSX88

•Ejecutar aplicación MSX88.exe


•Almacenar en memoria:
•e 2000 b8002081c000e0
•Analizar la ejecución ciclo de instrucción a ciclo de
instrucción con <F6>

50
Ejemplo: Repensar el ejercicio anterior
Esta máquina hipotética tiene también dos
instrucciones de E/S.
0011 = Cargar AC desde E/S
0111 = Almacenar AC en E/S
En estos casos, la dirección de 12 bits indica un
dispositivo concreto de E/S.
1. Cargar AC desde el dispositivo 5
2.Sumar el contenido de la posición de memoria
940
3. Almacenar AC en el dispositivo 6.
Considerar que el siguiente valor obtenido desde el
dispositivo 5 es 3 y que la posición 940 almacena el51
valor 2.

Interrupciones (I)

Objetivo:
• Introducir el concepto de lo que es una interrupción.
•Facilitar la comprensión del ciclo de instrucción y los efectos de las
mismas en la estructura de interconexión.
Interrupciones (II)
• Mecanismo mediante el cual se puede
interrumpir el procesamiento normal de la CPU.
– Ejecución secuencial de instrucciones de un
programa
• Pueden ser de origen interno o externo a la
CPU.

¿Porqué Interrumpir?
• Por resultado de una ejecución de una instrucción.
– Ej: desbordamiento aritmético (“overflow”), división por cero, intento de
acceder fuera del espacio de memoria permitido al usuario
• Por un temporizador interno del procesador.
– Generadas por un temporizador interno al procesador. Ej Permite al S.O.
realizar ciertas funciones de manera regular.
• Por una operación de E/S.
– Generadas por un controlador de E/S: para indicar la finalización normal
de una operación o para avisar de ciertas condiciones de error.
• Por un fallo de hardware.
– Ej: error de paridad en la memoria, pérdida de energía o falta de
alimentación.
¿Porqué Interrumpir?
– Las interrupciones proporcionan una forma de mejorar la eficiencia del
procesador.
– Ej: La mayoría de los dispositivos externos son mucho mas lentos que el
procesador.
– Si el procesador esta transfiriendo datos a una impresora utilizando el
esquema del ciclo de instrucción
– Después de cada operación de escritura, el procesador permanece
ocioso hasta que la impresora termine su tarea.
– La longitud de esta pausa puede ser del orden de muchos cientos o
incluso miles de ciclos de instrucción que no implican acceso a memoria,
esto supone un derroche de CPU.
– Si se utilizan interrupciones el procesador puede dedicarse a ejecutar
otras instrucciones mientras una operación de E/S está en curso.

Interrupciones
• Proporcionan una forma de mejorar la eficiencia del procesador.
• Ej.: los dispositivos externos son mucho mas lentos qe el
procesador
• El procesador está transfiriendo datos a una impresora basado
en el ciclo de instrucción.
• Después de cada operación de escritura, el procesador queda
ocioso hasta que se complete la escritura.
• Esta pausa puede ser del orden de cientos o incluso miles de
ciclos de instrucción que no implican acceso a memoria.
• Esto supone un derroche en el procesador.
Ciclo de instrucción e interrupciones
Para permitir el uso de interrupciones resultan:
Tres pasos:
• Captación
• Ejecución
• Gestión de interrupciones

Ciclo de instrucción e interrupciones


• El procesador comprueba si se ha solicitado alguna interrupción.
– indicada por la presencia de una señal de pedido de interrupción.
• Si no hay señales se capta la siguiente instrucción.
• Si hay algún pedido de interrupción pendiente, la CPU:
– Suspende la ejecución del programa en curso
– Guarda su contexto (próxima instrucción a ejecutar , PC, y el estado del
procesador)
– Carga el PC con la dirección de comienzo de una rutina de gestión de
interrupción. Se inhiben otras interrupciones.
– El procesador accede a la 1era. Instrucción de gestión de interrupción, y
realiza todas las operaciones que sean necesarias.
– Finalizada la rutina de gestión de interrupción, el procesador retoma la
ejecución del programa del usuario en el punto de interrupción.
Diagrama de estados de un ciclo de
instrucción con interrupciones

Un ejemplo de uso de interrupciones (I)


• Un programa realiza una operación de E/S
– Hay que esperar al dispositivo
• Mejor solución: cuando el dispositivo termina su
tarea, envía una señal al procesador indicando
el fin de la interrupción.
• Generalmente el programa de gestión de
interrupción forma parte del sistema operativo.
• Normalmente determina el origen de la
interrupción y realiza todas las acciones
necesarias
Un ejemplo de uso de interrupciones (II)
• Situación frecuente para un dispositivo lento, como una
impresora:
• Allí la operación de E/S requiere mas tiempo para ejecutar
una secuencia de instrucciones de usuario .
• Un programa realiza una operación de E/S
– Hay que esperar al dispositivo
• Mejor solución: cuando el dispositivo termina su tarea,
envía una señal al procesador indicando fin de la
interrupción
– Este mecanismo permite a un programa que escribe mas datos
en ese modulo de E/S, cuando se completa se retorna al
programa original
– Tener en cuenta la velocidad del dispositivo externo. (Fig. a ) a.)

Flujo de control del programa


del ejemplo

b. Interrupción, espera c. Interrupción, espera


a.Sin interrupción de E/S corta de E/S larga
Flujo de control del programa del ejemplo

• Figura a)
• Los segmentos de código 1,2 y 3 corresponden a
instrucciones que no ocasionan operaciones de E/S
• Las llamadas de escritura (WRITE) corresponden a llamadas a un
programa de E/S, que es una de las utilidades del S.O.
• El programa de E/S esta formado por:
• Una secuencia de instrucciones (4) , de preparación para la
operación ( copia del dato en un buffer, preparar los parámetros
del control del dispositivo de E/S.
• La orden de E/S propiamente dicha. El programa debe esperar a
que el dispositivo de E/S complete la operación requerida.
Comprobaría repetidamente una condición que indique su fin
• Una secuencia de instrucciones, (5), que terminan la operación
de E/S. Ej.: Activación de un flag, que indique si se ha concluido o
no con errores.
• El programa de usuario está parado en las llamadas Write un
tiempo considerable 63

Flujo de control del programa del ejemplo


• Figura b)
• El programa llega a una llamada al sistema operativo para
ejecutar la escritura WRITE
• El programa de E/S al que se llama está constituido por el
código de preparación y la orden de E/S.
• Luego el control se devuelve al programa del usuario.
• Mientras, el dispositivo esta ocupado aceptando el dato de la
memoria del computador e imprimiéndolo. Esto se realiza
concurrentemente con el ejecución del programa del usuario.
• Cuando el dispositivo externo esta listo para actuar, es decir
leer mas datos, el modulo de E/S del dispositivo envía una
señal de petición de interrupción al procesador.
• El procesador, suspende lo que estaba haciendo y salta al
programa de gestión de interrupción, que da servicio al
dispositivo. Los puntos donde se producen las interrupciones
64
se indican con una equis
Flujo de control de un programa
• El proceso generado por el gestor de interrupciones supone una
cierta penalización (overhead). Deben ejecutarse instrucciones
extras en el gestor
• Para determinar el origen de la interrupción y para decidir la acción
mas apropiada.
• No obstante el procesador puede emplearse mas eficientemente ya
que se perdería tiempo asociado a la operación de E/S

Flujo de control de un programa


• Figura c)
• La situación mas frecuente es que la operación de E/S, por ejemplo
una impresora, requiera mucho mas tiempo para ejecutar una
secuencia de instrucciones de usuario.
• El programa de usuario llega a la 2da llamada WRITE, antes que la
operación E/S generada por la 1er llamada se complete.

• El programa de usuario se detiene en ese punto


• Cuando la operación E/S precedente se completa, esta nueva
llamada a escritura se puede procesar, y se inicia una nueva llamada
de E/S y se puede iniciar una nueva operación de E/S.
• Existe una mejora porque parte del tiempo durante el cual la
operación de E/S está en marcha se solapa con la ejecución de
instrucciones de usuario.
Jerarquía de interrupciones
Si hay múltiples fuentes se establece cuales son
mas importantes
• No enmascarables: No pueden ignorarse.
– Indican eventos peligrosos o de alta prioridad.
• Enmascarables: Pueden ser ignoradas.
– Con instrucciones inhibimos su ocurrencia.

Interrupciones múltiples (1)


• Un programa puede estar recibiendo datos a través de una línea de
comunicación e imprimiendo resultados. La impresora generará
interrupciones cada vez que complete una operación de escritura.
• Se presentan 2 alternativas para tratar este tipo de interrupciones
• Interrupciones inhabilitadas
• El procesador puede y debe ignorar la señal de petición de interrupción.
• Si se hubiera generado una interrupción se mantiene pendiente y se
examinará luego una vez que se hayan habilitado nuevamente.
• Ocurre una interrupción, se inhabilitan, se gestiona la misma y luego se
habilitan otra vez.
• Por lo tanto las interrupciones se manejan en un orden secuencial
estricto.
• Inconvenientes: NO tiene en cuenta prioridades relativas, ni las
solicitudes con un tiempo critico. Ej: Llega una entrada desde la línea de
comunicación esta debe tramitarse para dejar espacio a la sgte, ……
Procesamiento de interrupciones

Interrupción inhabilitada.

Interrupciones múltiples (2)


Otra alternativa:
Definir prioridades
• Una interrupción de prioridad más alta puede
interrumpir a un gestor de interrupción de prioridad
menor.
• Cuando se ha gestionado la interrupción de prioridad
más alta, el procesador vuelve a las interrupciones
previas (de menor prioridad).
• Terminadas todas las rutinas de gestión de
interrupciones se retoma el programa del usuario.
Procesamiento de interrupciones
anidadas (priorización)

Reconocimiento de interrupciones (1)


• Interrupciones multinivel
– Cada dispositivo que puede provocar interrupción tiene una
entrada física de interrupción conectada a la CPU.
– Es muy sencillo, pero muy caro.
• Línea de interrupción única
– Una sola entrada física de pedido de interrupción a la que
están conectados todos los dispositivos.
– Tiene que “preguntar” a cada dispositivo si ha producido el
pedido de interrupción (técnica Polling).
Reconocimiento de interrupciones
(2)
• Interrupciones vectorizadas
– El dispositivo que quiere interrumpir además de la
señal de pedido de interrupción, debe colocar en el
bus de datos un identificador (vector).
– Lo puede poner el periférico directamente, o bien un
controlador de interrupciones (que se ocupa de
todo).

Escenario de trabajo
• El procesador tiene una única entrada de pedido
de interrupciones.
• Si tenemos varios productores de interrupciones
¿Cómo lo solucionamos?
– Dispositivo controlador de interrupciones (PIC)
Conexionado

Interrupciones del MSX88


• Hardware
– Línea INT
– Como respuesta de reconocimiento INTA
– Línea NMI
– Su proceso de atención es por salto indirecto
• Software
– Instrucción INT xx
– Para retorno debe usarse la instrucción IRET
– Proceso de atención vectorizado
Funcionamiento de la E/S
Lo anterior hizo foco en la interacción entre CPU y memoria
Se debe considerar también entre componentes de E/S
Un módulo de E/S puede intercambiar datos directamente con el
procesador
Puede iniciar una lectura o escritura en memoria, especificando
la dirección de una posición concreta
El procesador también puede leer/escribir datos en un modulo
de E/S-> identifica un dispositivo especifico controlado por un
modulo de E/S determinado.
En ciertas casos es deseable permitir los intercambios de E/S
directamente con la memoria.
El procesador cede a un modulo la autoridad para leer/escribir
en memoria -> no interviene el procesador- Esto se conoce
77

como DMA ( Direct Memory Access)

Estructuras de interconexión.(I)
PC: conjunto de módulos o unidades elementales
Deben existir líneas para interconectar esos módulos
El diseño de la estructura de interconexión dependerá
de los intercambios que deban producirse
Tipos de intercambio de datos según tipo de módulo:
•Memoria: Constituida por N palabras de igual
longitud. Cada una con 1 dirección única. Una palabra
puede leerse o escribirse en memoria.
El tipo de operación se indica mediante señales: Read (
leer ) y Write ( escribir).
La posición de memoria para la operación se especifica
mediante una dirección. 78
Módulos de un computador

79

Estructuras de interconexión.(II)
Módulo de E/S: es funcionalmente parecida a
la memoria. Dos operaciones ( leer y escribir).
•Puede controlar más de un dispositivo externo
•Interfaces con un disp. externo= puerto (port)
•Cada uno con una dirección (0,1,.. M-1)
•Existen líneas externas de datos para la
entrada y la salida de datos por un dispositivo
externo.
•Puede enviar señales de interrupción al
procesador

80
Estructuras de interconexión.(III)
Procesador:
•Lee instrucciones y datos
•Escribe datos una vez procesados
•Utiliza señales para controlar el funcionamiento
del sistema.
•Puede recibir señales de interrupción.

81

Estructuras de interconexión. (III)


Las estructuras deben dar cobertura a los
siguientes tipos de transferencia:
Memoria a procesador
Procesador a memoria
E/S a procesador
Procesador a E/S
Memoria a E/S y viceversa:
Un módulo de E/S puede intercambiar datos directamente con
la memoria, sin que tengan que pasar a través del procesador,
utilizando el “acceso directo a memoria” (DMA)
Las estructuras mas comunes son los buses.
82
Interconexión con buses .(I)
Es un camino de comunicación entre 2 o más
dispositivos.
Es un medio de transmisión compartido
Se conectan a él varios dispositivos y cualquier
señal transmitida por uno está disponible para
los otros
Constituidos por líneas
Cada línea transmite señales binarias de 0 y 1
Varias líneas pueden transmitir bits en paralelo
(Ej. Un dato de 8 bits puede transmitirse
mediante 8 líneas del bus)
Bus del sistema: interconecta los componentes83
principales del computador.

Interconexión con buses .(II)


Bus del sistema: entre 50 y 100 líneas
A cada línea se le asigna un significado o
función particular.
Tres grupos funcionales: líneas de datos, líneas
de dirección y de control.
Líneas de alimentación para suministrar energía
a los módulos conectados al bus.

84
Interconexión con buses .(III)
Líneas de datos: Constituye el bus de datos.
Puede incluir entre 32 y cientos de líneas.
Cada línea sólo puede transportar un bit a la
vez
Anchura del bus: factor clave a la hora de
determinar las prestaciones del sistema.
Si el bus de datos tiene 8 líneas y las
instrucciones son de 16 bits, que hace el
procesador cuando accede al módulo de
memoria???

85

Interconexión con buses .(IV)


Líneas de dirección: Designan la fuente o el
destino del dato, situado en el bus de datos
Anchura del bus de direcciones: Determina la
máxima capacidad de memoria posible en el
sistema
Se usan además para direccionar los puertos de
E/S
Líneas de control: Controlan el uso y acceso a
las otras líneas.
Las señales de control transmiten: órdenes e
información de temporización entre los
módulos.
Las de temporización: indican la validez de los
86
datos y las direcciones.
Interconexión con buses .(IV)

Las señales de órdenes: especifican las


operaciones a realizar:
1. Escritura en memoria (Memory write)
2. Lectura de memoria (Memory Read)
3. Escritura de E/S (I/O Write)
4. Lectura de E/S (E/S Read)
5. Transferencia reconocida (Transfer ACK)
6. Petición del bus (Bus request)
7. Cesión de bus (Bus grant)
8. Petición de ininterrupción (Interrupt request)
9. Interrupción reconocida (Interrupt ACK)87

Interconexión con buses .(V)


1. Reloj (clock): se utiliza para sincronizar las
operaciones
2. Inicio (reset): Pone los módulos conectados en
su estado inicial.
Funcionamiento básico del bus:
a) Si un módulo desea enviar un dato a otro:
1. Obtener el uso del bus
2. Transferir el dato a través del bus.
b) Si un módulo desea pedir un dato a otro:
1. Obtener el uso del bus
2. Transferir la petición al otro módulo mediante las líneas de
control y dirección apropiadas. Debe esperar a que el 2do. 88
módulo envié el dato.
Implementación física típica de una arquitectura de
bus

Conj. de conductores eléctricos


paralelos. Líneas de metal
grabadas en una tarjeta ( de
circuito impreso). 89

Interconexión con buses (VI)


1. El esquema anterior se introduce en un chasis.
2. En los sistemas actuales tienden a tener sus componentes
principales en la misma tarjeta y los circuitos integrados
incluyen mas elementos.
3. El bus que conecta el procesador y la memoria cache se
integra en el micro junto con el procesador y la cache ( on-
chip) en bus que conecta el procesador con la memoria y
otros componentes se incluye (On-board)
4. Se puede adquirir un computador pequeño y expandirlo (
ampliar memoria, módulos de E/S) mas adelante añadiendo
mas tarjetas.

90
Jerarquía de buses múltiples.
Si se conectan demasiados dispositivos al bus-> disminuyen las
prestaciones:
1. A mayor nro de dispositivos mayor retardo de propagación.
Retardo: tiempo que necesitan los dispositivos para coordinarse
en el uso del bus. Si el control pasa de un dispositivo a otro
frecuentemente esto afecta las prestaciones.
2. Cuello de botella: Si las peticiones de transferencia
acumuladas se aproximan a la capacidad del bus-> se
incrementa la anchura del bus y hasta cierto punto su
velocidad, pero la velocidad que necesitan los dispositivos
aumenta también ( -> Bus único esta destinado a dejar de
utilizarse.
3. La mayoría de los computadores utilizan varios buses,
organizados jerárquicamente. 91

Arquitectura de bus tradicional. (ISA) con caché 92


Arquitectura de altas prestaciones.(Arquitectura de
entreplanta – mezzanine architecture)

93

Arquitectura de altas prestaciones.


Ventajas:
Acerca al procesador los dispositivos que exigen
prestaciones elevadas
Al mismo tiempo es independiente del procesador.
Los cambios en la arquitectura del procesador no
afectan al bus de alta velocidad y viceversa.

94
Elementos de diseño de un bus
Tipo Anchura del bus:
Dedicado – Multiplexado Dirección
Método de arbitraje: Datos
Centralizado – Distribuido Tipo de transferencia de datos
Temporización: Lectura
Asíncrono - Síncrono Escritura
Lectura – Modificación-Escritura
Lectura – después de escritura-
Bloque
95

Elementos de diseño de un bus


(preguntas para trabajar en grupo)

1.- Cual es el propósito de un método de arbitraje?


2. Caracteriza el arbitraje centralizado y el distribuido?
3. Describa la temporización síncrona de bus.
4. Caracteriza la temporización asíncrona del bus?
4. Relaciona anchura de bus y prestaciones del
sistema.

96
Problema ejemplo
• Considere un hipotético microprocesador de 32 bits cuyas
instrucciones de 32 bits están compuestas por dos campos: el primer
byte contiene el codop y los restantes un operando inmediato o una
dirección de operando.
• a) Cual es la máxima capacidad de memoria ( en bytes) direccionable
directamente?
• b) Discuta el impacto que se produciría en la velocidad del sistema si el
microprocesador tiene :
• 1.- Un bus de dirección local de 32 bits y un bus de datos local de 16
bits,
• 2.- Un bus de dirección local de 16 bits y un bus de datos local de 16
bits.
• c) Cuantos bits necesitan el contador de programa y el registro de
97
instrucción?.

PCI (Peripheral Component Interconnect)


• PCI ( Interconexión de componente periférico)
• Muy popular, se utiliza como bus de periféricos o bus para una
arquitectura de entreplanta
• El estándar actual permite el uso de 64 líneas de datos a 66 MHZ, para
una velocidad de transferencia de 528 MB o 4,224 Gbps.
• Ha sido diseñado para ajustarse económicamente a los requisitos de
E/S de los sistemas actuales.
• Se implementa con muy pocos circuitos integrados y permite que otros
buses se conecten a él.
• Permite una cierta variedad de configuraciones basadas en
microprocesadores, incluyendo sistemas de uno o varios procesadores
• Proporciona un conjunto de funciones de uso general. Utiliza
temporización sincrónica y un esquema de arbitraje centralizado.
• El uso de adaptadores mantiene al PCI independiente de la velocidad
procesador y proporciona la posibilidad de recibir y enviar datos
rápidamente. 98
Referencias bibliográficas
• Stallings, Capítulo 3
• www.pcguide.com/ref/mbsys/buses/

99

También podría gustarte