09.02.2013 Views

Subsistemas de un Computador

Subsistemas de un Computador

Subsistemas de un Computador

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Arquitectura y Organización<br />

• Unidad 4 - <strong>Subsistemas</strong> <strong>de</strong> <strong>un</strong> computador:<br />

• Arquitectura general y organización f<strong>un</strong>cional <strong>de</strong> computadoras.<br />

Descripción <strong>de</strong> los distintos bloques (Memoria, ALU, Unidad <strong>de</strong><br />

control y Unidad <strong>de</strong> E/S). Proceso <strong>de</strong> búsqueda y ejecución <strong>de</strong> las<br />

instrucciones.). Interrupciones. Estructuras <strong>de</strong> interconexión. Buses.<br />

Objetivos:<br />

Repasar acerca <strong>de</strong> los componentes estructurales y f<strong>un</strong>cionales<br />

Compren<strong>de</strong>r la interrelación <strong>de</strong> dichos componentes<br />

I<strong>de</strong>ntificar buses, como medio <strong>de</strong> conexión <strong>de</strong> los componentes<br />

Apreciar aspectos <strong>de</strong> diseño que afectan las interconexiones:<br />

interrupciones.<br />

Estructura y F<strong>un</strong>cionamiento<br />

• Repasamos: <strong>Computador</strong> es <strong>un</strong> sistema complejo<br />

• Naturaleza jerárquica <strong>de</strong> los sistema complejos.<br />

• Sistema jerárquico: subsistemas interrelacionados.<br />

Cada <strong>un</strong>o <strong>de</strong> los cuales se organiza en <strong>un</strong>a<br />

estructura jerárquica, hasta el nivel más bajo <strong>de</strong>l<br />

subsistema elemental.<br />

• En cada nivel interesa: Estructura y<br />

f<strong>un</strong>cionamiento<br />

1<br />

2


Estructura y f<strong>un</strong>cionamiento<br />

• Estructura: Modo en que los componentes están<br />

interrelacionados.<br />

• F<strong>un</strong>cionamiento: la operación <strong>de</strong> cada<br />

componente individual como parte <strong>de</strong> la estructura.<br />

• En términos <strong>de</strong> <strong>de</strong>scripción: <strong>de</strong> arriba abajo ( “topdown”)<br />

es clara y efectiva (<strong>de</strong>scomponer el<br />

sistema.).<br />

Organización f<strong>un</strong>cional<br />

• F<strong>un</strong>ciones básicas <strong>de</strong> <strong>un</strong> computador:<br />

– Procesamiento <strong>de</strong> datos<br />

– Almacenamiento <strong>de</strong> datos (corto/largo plazo)<br />

– Transferencias <strong>de</strong> datos (Entrada/salida.- Com<strong>un</strong>icación <strong>de</strong> datos).-<br />

– Control ( De las tres anteriores- gestionar y dirigir por medio <strong>de</strong><br />

instrucciones)<br />

• Número <strong>de</strong> operaciones posibles que pue<strong>de</strong>n ser realizadas<br />

es pequeño.<br />

• Posibles operaciones <strong>de</strong> <strong>un</strong> computador (4)<br />

3<br />

4


Entorno Operativo<br />

(Fuente y <strong>de</strong>stino<br />

<strong>de</strong> datos<br />

Visión f<strong>un</strong>cional <strong>de</strong> <strong>un</strong> computador<br />

Sistema<br />

Transfere<br />

ncia <strong>de</strong><br />

datos<br />

Mecanismo<br />

<strong>de</strong> Control<br />

Operaciones (4)<br />

• Las operaciones básicas pue<strong>de</strong>n parecer absurdamente<br />

generalizada, pero:<br />

Recurso <strong>de</strong><br />

almacenamiento<br />

<strong>de</strong> datos<br />

Recurso <strong>de</strong><br />

Procesamiento <strong>de</strong><br />

Datos<br />

• “Hay sorpren<strong>de</strong>ntemente muy pocas formas <strong>de</strong> estructuras <strong>de</strong><br />

computadores que se ajusten a la f<strong>un</strong>ción que va a ser llevada a<br />

cabo. En la raíz <strong>de</strong> esto subyace el problema <strong>de</strong> la naturaleza <strong>de</strong><br />

uso general <strong>de</strong> computadores, en la cual toda la especialización<br />

f<strong>un</strong>cional ocurre cuando se programa y no cuando se diseña”.<br />

(SIEW82)<br />

5<br />

6


Estructura <strong>de</strong> <strong>un</strong>a computadora<br />

• Como se interconectan los componentes.<br />

• El computador es <strong>un</strong>a entidad que interactúa<br />

con su entorno externo.<br />

• Existen cuatro componentes estructurales<br />

principales:<br />

Peripherals<br />

Computer<br />

Comm<strong>un</strong>ication<br />

lines<br />

– Unidad Central <strong>de</strong> Procesamiento (procesador)<br />

– Memoria Principal: almacena datos<br />

– Entrada/Salida transfieren datos entre el computador<br />

y el entorno externo<br />

– Sistema <strong>de</strong> Interconexión: mecanismo <strong>de</strong> conexión<br />

entre la CPU, la memoria y la E/S.<br />

Estructura <strong>de</strong>l nivel superior<br />

Central<br />

Processing<br />

Unit<br />

Computer<br />

Systems<br />

Interconnection<br />

Input<br />

Output<br />

Main<br />

Memory<br />

7<br />

8


Sub-sistemas <strong>de</strong> <strong>un</strong> computador.<br />

A alto nivel <strong>un</strong> computador se pue<strong>de</strong> se pue<strong>de</strong> <strong>de</strong>scribir:<br />

1) Mediante el comportamiento <strong>de</strong> cada <strong>un</strong>o <strong>de</strong> sus<br />

componentes, es <strong>de</strong>cir, mediante los datos y las<br />

señales <strong>de</strong> control que <strong>un</strong> componente<br />

intercambia con otro.<br />

2) Mediante la estructura <strong>de</strong> interconexión y los<br />

controles necesarios para gestionar el uso <strong>de</strong><br />

dicha estructura.<br />

9<br />

10


Sub-sistemas <strong>de</strong> <strong>un</strong> computador.<br />

La visión <strong>de</strong> alto nivel es importante dada su capacidad<br />

explicativa para facilitar la comprensión <strong>de</strong> la naturaleza<br />

<strong>de</strong> <strong>un</strong> computador.<br />

1) Es importante a<strong>de</strong>más para enten<strong>de</strong>r los<br />

problemas cada vez mas complejos <strong>de</strong> evaluación<br />

<strong>de</strong> prestaciones.<br />

2) Permite tener i<strong>de</strong>a <strong>de</strong> los cuellos <strong>de</strong> botella <strong>de</strong>l<br />

sistema, los caminos alternativos, la importancia<br />

<strong>de</strong> los fallos si hay <strong>un</strong> componente <strong>de</strong>fectuoso<br />

3) Muchas veces los requisitos <strong>de</strong> mayor potencia y<br />

capacidad <strong>de</strong> f<strong>un</strong>cionamiento tolerante a fallos se<br />

soluciona mediante cambios en el diseño <strong>de</strong>l<br />

11<br />

computador<br />

Diseño <strong>de</strong> la Arquitectura Von Neuman<br />

Basada en tres conceptos f<strong>un</strong>damentales:<br />

�Los datos y las instrucciones se almacenan en <strong>un</strong>a sola<br />

memoria <strong>de</strong> lectura-escritura.<br />

�Los contenidos <strong>de</strong> memoria se direccionan indicando su<br />

posición, sin consi<strong>de</strong>rar el tipo <strong>de</strong> dato contenido en la<br />

misma.<br />

�La ejecución es secuencial, <strong>un</strong>a instrucción <strong>de</strong>trás <strong>de</strong><br />

otra.<br />

Recordamos: F<strong>un</strong>damento <strong>de</strong> esos conceptos: <strong>un</strong><br />

conj<strong>un</strong>to pequeño <strong>de</strong> componentes lógicos básicos que<br />

se combinan para almacenar datos binarios y realizar<br />

operaciones matemáticas y lógicas.<br />

12


Concepto <strong>de</strong> programa (1)<br />

- Antes para <strong>un</strong> cálculo concreto, era posible configurar<br />

los componentes lógicos <strong>de</strong> manera especial para eso.<br />

Se piensa en conectar los componentes para obtener la<br />

configuración <strong>de</strong>seada, se obtiene <strong>un</strong> programa cableado<br />

(hardwired program)<br />

- Programación hardware: cuando cambian las<br />

tareas se cambia el hardware<br />

Concepto <strong>de</strong> programa (2)<br />

- Hardware <strong>de</strong> uso general<br />

Programación en software: se proporciona en cada<br />

paso <strong>un</strong> nuevo conj<strong>un</strong>to <strong>de</strong> señales <strong>de</strong> control.<br />

13<br />

14


Componentes <strong>de</strong> <strong>un</strong>a PC<br />

-Dos componentes esenciales <strong>de</strong>l sistema graficado:<br />

Intérprete <strong>de</strong> instrucciones + módulo <strong>de</strong> uso general para las<br />

f<strong>un</strong>ciones = CPU.<br />

Componentes adicionales: para ingresar datos e<br />

instrucciones: Modulo <strong>de</strong> entrada y para dar salida a los<br />

resultados: Módulo <strong>de</strong> Salida= Componentes <strong>de</strong> E/S.<br />

Componente necesario para almacenar temporalmente los<br />

datos e instrucciones= MEMORIA o MEMORIA PRINCIPAL.<br />

Componentes <strong>de</strong> <strong>un</strong> <strong>Computador</strong> esquema <strong>de</strong> dos niveles (I)<br />

15<br />

16


Componentes <strong>de</strong> <strong>un</strong> <strong>Computador</strong> (Esquema <strong>de</strong> dos niveles ) (II)<br />

CPU: Se encarga <strong>de</strong>l control. Intercambia datos con la memoria<br />

–PC = Contador <strong>de</strong> Programa ó Program Co<strong>un</strong>ter.<br />

Cuando <strong>un</strong> programa va a ser ejecutado, el PC contiene la dirección<br />

<strong>de</strong> la 1era. instrucción. Alcanzada esta inst. el PC es incrementado<br />

para ap<strong>un</strong>tar a la siguiente instrucción.<br />

–RI = Registro <strong>de</strong> instrucción<br />

–MAR = Registro <strong>de</strong> dirección <strong>de</strong> memoria (especifica la dirección en<br />

memoria <strong>de</strong> la próxima lectura o escritura)<br />

–MBR = Registro <strong>de</strong> Buffer <strong>de</strong> Memoria (contiene el dato que se va a escribir en<br />

memoria o don<strong>de</strong> se escribe el dato que se va a leer <strong>de</strong> memoria).<br />

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

–E/S BR= Registro buffer <strong>de</strong> E/S (para intercambiar datos entre <strong>un</strong> módulo <strong>de</strong><br />

17<br />

E/S y la CPU)<br />

F<strong>un</strong>cionamiento <strong>de</strong>l <strong>Computador</strong><br />

F<strong>un</strong>ción <strong>de</strong> la computadora ( 1 )<br />

–Ejecutar programas<br />

–El programa está compuesto <strong>de</strong> instrucciones almacenadas<br />

en memoria<br />

–La CPU procesa/ejecuta las instrucciones<br />

–Debe traerlas <strong>de</strong>s<strong>de</strong> memoria <strong>un</strong>a por vez<br />

–Debe cumplir cada operación or<strong>de</strong>nada<br />

18


Ciclo <strong>de</strong> Instrucción<br />

F<strong>un</strong>ción <strong>de</strong> la computadora ( 2 )<br />

Po<strong>de</strong>mos <strong>de</strong>scomponer el procesamiento <strong>de</strong> instrucciones en<br />

dos etapas:<br />

Búsqueda: leer <strong>de</strong>s<strong>de</strong> memoria (capta)<br />

Común a todas las instrucciones.<br />

Ejecución: <strong>de</strong>pendiendo <strong>de</strong> la instrucción pue<strong>de</strong> implicar<br />

varias operaciones<br />

Ciclo <strong>de</strong> Instrucción<br />

F<strong>un</strong>ción <strong>de</strong> la computadora ( 3 )<br />

El procesamiento requerido para <strong>un</strong>a sola instrucción se llama<br />

ciclo <strong>de</strong> instrucción.<br />

– Dos pasos:<br />

ciclo <strong>de</strong> búsqueda y ciclo <strong>de</strong> ejecución<br />

- La ejecución <strong>de</strong>l programa se interrumpe sólo si la máquina<br />

se apaga, hay <strong>un</strong> error ó <strong>un</strong>a instrucción que interrumpa a la<br />

computadora.<br />

19<br />

20


Ciclo <strong>de</strong> Instrucción<br />

Ciclo <strong>de</strong> captación y ejecución ( 1 )<br />

Ciclo <strong>de</strong> Instrucción<br />

Ciclo <strong>de</strong> captación y ejecución ( 2 )<br />

–Al principio <strong>de</strong> cada ciclo, la CPU capta <strong>un</strong>a instrucción<br />

<strong>de</strong> memoria.<br />

–En la CPU hay <strong>un</strong> registro, llamado contador <strong>de</strong><br />

programa (PC), que tiene la dirección <strong>de</strong> la próxima<br />

instrucción a captar.<br />

La CPU, <strong>de</strong>spués <strong>de</strong> buscar cada instrucción,<br />

incrementa el valor contenido en PC; así podrá buscar la<br />

siguiente instrucción en secuencia.<br />

21<br />

22


Ciclo <strong>de</strong> captación y ejecución ( 3)<br />

–La instrucción buscada se carga <strong>de</strong>ntro <strong>de</strong> <strong>un</strong> registro <strong>de</strong> la<br />

CPU, llamado registro <strong>de</strong> instrucción (IR).<br />

–La instrucción está en la forma <strong>de</strong> <strong>un</strong> código binario que<br />

especifica las acciones que tomará la CPU.<br />

–La CPU interpreta cada instrucción y lleva a cabo las<br />

acciones requeridas.<br />

Ciclo <strong>de</strong> búsqueda y ejecución ( 4 )<br />

– En general las acciones pue<strong>de</strong>n ser <strong>de</strong> 4 tipos:<br />

•CPU – Memoria<br />

datos pue<strong>de</strong>n transferirse entre CPU y memoria y<br />

viceversa.<br />

•CPU – E/S<br />

datos pue<strong>de</strong>n transferirse entre CPU y modulo <strong>de</strong><br />

entrada/salida. ( datos a o <strong>de</strong>s<strong>de</strong> el exterior)<br />

•Procesamiento <strong>de</strong> datos<br />

CPU efectúa operaciones aritméticas ó lógicas con los<br />

datos.<br />

•Control<br />

alterar la secuencia <strong>de</strong> ejecución <strong>de</strong> instrucciones.<br />

23<br />

24


Ejemplo: (1)<br />

Se mostrará la ejecución <strong>de</strong> <strong>un</strong>a parte <strong>de</strong> <strong>un</strong> programa,<br />

recalcando las partes relevantes como memoria y<br />

registros <strong>de</strong> la CPU.<br />

Este fragmento suma el contenido <strong>de</strong> la palabra <strong>de</strong> memoria<br />

que está en la dirección 940 con el contenido <strong>de</strong> la<br />

palabra <strong>de</strong> memoria en la dirección 941 y almacena el<br />

resultado en esta última posición.<br />

–<br />

Ejemplo (2) : Se consi<strong>de</strong>rará <strong>un</strong>a maquina hipotética<br />

cuyas características se muestran:<br />

- Tanto las instrucciones como los datos son <strong>de</strong> 16 bits<br />

- Posee <strong>un</strong> único registro <strong>de</strong> datos llamado acumulador (AC)<br />

- La memoria se organiza en posiciones <strong>de</strong> 16 bits, o palabras<br />

- Pue<strong>de</strong> haber 2 4 , códigos <strong>de</strong> operación diferentes<br />

- Se pue<strong>de</strong>n direccionar directamente hasta 2 12 = 4096 (4k)<br />

palabras <strong>de</strong> memoria.<br />

Lista parcial <strong>de</strong> códigos <strong>de</strong> operación. (“CODOPS”)<br />

0001 2=1= cargar AC ( D) <strong>de</strong>s<strong>de</strong> la memoria<br />

0010 2=2= almacenar AC ( D ) en memoria<br />

0101 2=5= sumar a AC (D) <strong>un</strong> dato <strong>de</strong> memoria<br />

25<br />

26


Ejemplo (3):<br />

El ejemplo muestra la ejecución <strong>de</strong> <strong>un</strong> fragmento <strong>de</strong> programa<br />

que tiene tres instrucciones:<br />

- Cargar en el registro AC (D) el contenido <strong>de</strong> la posición <strong>de</strong><br />

memoria 940 16<br />

- Sumar el contenido <strong>de</strong> la posición <strong>de</strong> memoria 941 16 al registro<br />

AC y guardar el resultado en AC<br />

– Almacenar el valor <strong>de</strong>l registro AC en la posición<br />

<strong>de</strong> memoria 941 16<br />

Ejemplo (4):<br />

Consi<strong>de</strong>remos que cada posición <strong>de</strong> memoria almacena 16<br />

bits. Los primeros 4 bits indican la operación a realizar,<br />

los siguientes 12 bits indican <strong>un</strong>a dirección <strong>de</strong> memoria.<br />

– 0001 2=1= cargar D <strong>de</strong>s<strong>de</strong> la memoria<br />

– 0010 2=2= almacenar D en memoria<br />

– 0101 2=5= sumar D con <strong>un</strong> dato en memoria<br />

27<br />

28


Ejemplo: Paso 1<br />

El contador <strong>de</strong> programa (PC) contiene 300 16 como la dirección<br />

<strong>de</strong> la primera instrucción ( 1940 16). El contenido <strong>de</strong> esta<br />

dirección se carga en el registro <strong>de</strong> instrucción (IR).<br />

Este proceso implica usar MAR y MBR. Para simplificar por<br />

ahora los ignoramos.<br />

Ejemplo: Paso 1<br />

AC<br />

29<br />

30


Ejemplo: Paso 2<br />

•Los primeros 4 bits en IR ( primer digito Hexa<strong>de</strong>cimal)<br />

indican que el registro AC (D) se cargará con <strong>un</strong> dato<br />

proveniente <strong>de</strong> la dirección especificada<br />

•Los restantes 12 bits <strong>de</strong> la instrucción especifican la<br />

dirección que se va a cargar, 940 16.<br />

Ejemplo: Paso 2<br />

= AC<br />

31<br />

32


Ejemplo: Paso 3<br />

–Se incrementa el contador <strong>de</strong> programa PC y se capta la<br />

siguiente instrucción en la dirección 301 16.<br />

Ejemplo: Paso 4<br />

El 5 16 en IR indica que se <strong>de</strong>be sumar el contenido <strong>de</strong><br />

<strong>un</strong>a dirección <strong>de</strong> memoria especificada, en este caso la<br />

dirección es 941 16, con el contenido <strong>de</strong>l registro D y<br />

almacenar el resultado en el registro AC (D).<br />

33<br />

34


Ejemplo: Paso 5<br />

Se incrementa el PC y se busca la siguiente<br />

instrucción en 302 16<br />

Ejemplo: Paso 6<br />

El 2 16 en IR indica que el contenido <strong>de</strong>l registro D se<br />

almacena en la dirección 941 16, que está<br />

especificada en los bits restantes <strong>de</strong> la instrucción.<br />

En este ejemplo, se necesitan 3 ciclos <strong>de</strong> instrucción,<br />

cada <strong>un</strong>o con <strong>un</strong> ciclo <strong>de</strong> búsqueda y <strong>un</strong> ciclo <strong>de</strong><br />

ejecución.<br />

35<br />

36


Ciclo <strong>de</strong> instrucción<br />

Con este ejemplo po<strong>de</strong>mos ahora tener <strong>un</strong>a visión<br />

más <strong>de</strong>tallada <strong>de</strong>l ciclo <strong>de</strong> instrucción básico. El ciclo<br />

<strong>de</strong> ejecución <strong>de</strong> <strong>un</strong>a instrucción pue<strong>de</strong> ocasionar mas<br />

<strong>de</strong> <strong>un</strong>a referencia a memoria.<br />

A<strong>de</strong>más, en lugar <strong>de</strong> referencias a memoria, <strong>un</strong>a<br />

instrucción pue<strong>de</strong> referencia <strong>un</strong>a operación <strong>de</strong> E/S.<br />

La figura siguiente está en forma <strong>de</strong> diagrama <strong>de</strong><br />

estados.<br />

Para cualquier ciclo <strong>de</strong> instrucción dado, alg<strong>un</strong>os<br />

estados pue<strong>de</strong>n no estar y otros pue<strong>de</strong>n repetirse.<br />

Diagrama <strong>de</strong> estados <strong>de</strong>l ciclo <strong>de</strong> instrucción(1)<br />

Captación <strong>de</strong> la instrucción<br />

Cálculo <strong>de</strong> la dirección <strong>de</strong><br />

la instrucción<br />

Decodificación <strong>de</strong> la operación<br />

<strong>de</strong> la instrucción<br />

Captación <strong>de</strong> operando<br />

Cálculo <strong>de</strong> la dirección <strong>de</strong><br />

operando<br />

Operación con datos<br />

37<br />

Almacenamiento <strong>de</strong> operando<br />

Cálculo <strong>de</strong> la dirección <strong>de</strong><br />

operando<br />

38


Diagrama <strong>de</strong> estados (1)<br />

Diagrama <strong>de</strong> estados (2)<br />

1. Cálculo <strong>de</strong> la dirección <strong>de</strong> la instrucción: (IAC)<br />

<strong>de</strong>termina la dirección <strong>de</strong> la siguiente instrucción<br />

a ejecutarse.<br />

2. Búsqueda instrucción (IF): lee la instrucción <strong>de</strong><br />

su posición <strong>de</strong> memoria a la cpu.<br />

3. Decodificación <strong>de</strong> la instrucción (IOD): analiza la<br />

instrucción para <strong>de</strong>terminar el tipo <strong>de</strong> operación<br />

a realizar y los operandos que se usarán.<br />

39<br />

40


Diagrama <strong>de</strong> estados (3)<br />

4. Cálculo dirección operando (OAC): si la instrucción<br />

implica <strong>un</strong>a referencia a <strong>un</strong> operando en la memoria ó<br />

e/s, entonces se <strong>de</strong>termina la dirección <strong>de</strong>l operando.<br />

5. Captación <strong>de</strong>l operando (OAC): capta el operando<br />

<strong>de</strong>s<strong>de</strong> la memoria ó se lee <strong>de</strong>s<strong>de</strong> el dispositivo <strong>de</strong> e/s.<br />

6. Operación sobre los datos (DO): realiza la operación<br />

indicada en la instrucción.<br />

7. Cálculo dirección resultado. I<strong>de</strong>m 4.<br />

8. Almacenamiento resultado. Escribe el resultado en<br />

memoria o lo saca a través <strong>de</strong> <strong>un</strong> dispositivo <strong>de</strong> E/S<br />

Diagrama <strong>de</strong> estados (4)<br />

• Los estados en la parte superior implican <strong>un</strong><br />

intercambio entre la cpu y la memoria ó e/s.<br />

• Los estados en la parte inferior implican sólo<br />

operaciones internas en la cpu.<br />

41<br />

42


Ejemplo: ADD<br />

Supongamos la siguiente instrucción :<br />

ADD: paso a paso (1)<br />

•Buscar la instrucción en memoria.<br />

•Incrementar el PC.<br />

•Decodificar la instrucción.<br />

•Si es necesario, buscar <strong>un</strong>a constante en <strong>un</strong>a dirección<br />

<strong>de</strong> memoria.<br />

•Si es necesario, incrementar PC para que ap<strong>un</strong>te más<br />

allá <strong>de</strong> la constante.<br />

43<br />

44


ADD: paso a paso (2)<br />

•Si es necesario calcular la dirección <strong>de</strong>l operando.<br />

•Buscar <strong>un</strong>o <strong>de</strong> los operandos, <strong>de</strong>s<strong>de</strong> memoria ó<br />

registro.<br />

•Buscar el otro operando <strong>de</strong>s<strong>de</strong> registro.<br />

•Realizar la Suma.<br />

•Almacenar el resultado.<br />

Paso a paso (1)<br />

•En el primer paso, la CPU busca la instrucción en<br />

memoria. Para esto copia el valor <strong>de</strong>l PC al MAR y <strong>de</strong><br />

ahí al bus <strong>de</strong> direcciones. La UC envía las señales<br />

necesarias para <strong>un</strong>a operación <strong>de</strong> lectura. Se pue<strong>de</strong>n<br />

leer <strong>un</strong>o ó más bytes. Se colocan en IR.<br />

Paso a paso (2)<br />

•Después <strong>de</strong> buscar la instrucción, la CPU <strong>de</strong>be<br />

incrementar el PC para ap<strong>un</strong>tar a “lo que sigue”. Pue<strong>de</strong><br />

ser <strong>un</strong> dato, dirección ó la siguiente instrucción.<br />

45<br />

46


Paso a paso (3)<br />

El paso siguiente es <strong>de</strong>codificar la instrucción para<br />

saber que operación hacer (suma, resta, etc.). En<br />

este momento la CPU no sólo se entera <strong>de</strong> la<br />

operación, sino también dón<strong>de</strong> se encuentran los<br />

datos sobre los cuales operar.<br />

La instrucción es auto-contenida en ella “todo está<br />

dicho”.<br />

Paso a paso (4)<br />

•En el paso anterior la CPU <strong>de</strong>terminó si tiene que ir a<br />

buscar <strong>un</strong> operando a memoria, que ocupa <strong>un</strong>a celda o<br />

más (byte/s) y lo hace en este momento.<br />

•Si existió el paso anterior la CPU <strong>de</strong>be incrementar el<br />

PC en el valor a<strong>de</strong>cuado <strong>de</strong> celdas (1, 2 o mas).<br />

47<br />

48


Paso a paso (5)<br />

•En este paso si es necesario, calcula la dirección <strong>de</strong>l<br />

operando.<br />

•Buscar los operandos.<br />

•Sumar, Restar ….<br />

•Almacenar el resultado.<br />

Ejemplos adicionales<br />

Simulación <strong>de</strong> Instrucciones en MSX88<br />

•Ejecutar aplicación MSX88.exe<br />

•Almacenar en memoria:<br />

•e 2000 b8002081c000e0<br />

•Analizar la ejecución ciclo <strong>de</strong> instrucción a ciclo <strong>de</strong><br />

instrucción con <br />

49<br />

50


Ejemplo: Repensar el ejercicio anterior<br />

Esta máquina hipotética tiene también dos<br />

instrucciones <strong>de</strong> E/S.<br />

0011 = Cargar AC <strong>de</strong>s<strong>de</strong> E/S<br />

0111 = Almacenar AC en E/S<br />

En estos casos, la dirección <strong>de</strong> 12 bits indica <strong>un</strong><br />

dispositivo concreto <strong>de</strong> E/S.<br />

1. Cargar AC <strong>de</strong>s<strong>de</strong> el dispositivo 5<br />

2.Sumar el contenido <strong>de</strong> la posición <strong>de</strong> memoria<br />

940<br />

3. Almacenar AC en el dispositivo 6.<br />

Consi<strong>de</strong>rar que el siguiente valor obtenido <strong>de</strong>s<strong>de</strong> el<br />

dispositivo 5 es 3 y que la posición 940 almacena el<br />

valor 2.<br />

Objetivo:<br />

Interrupciones (I)<br />

• Introducir el concepto <strong>de</strong> lo que es <strong>un</strong>a interrupción.<br />

•Facilitar la comprensión <strong>de</strong>l ciclo <strong>de</strong> instrucción y los efectos <strong>de</strong> las<br />

mismas en la estructura <strong>de</strong> interconexión.<br />

51


Interrupciones (II)<br />

• Mecanismo mediante el cual se pue<strong>de</strong><br />

interrumpir el procesamiento normal <strong>de</strong> la CPU.<br />

– Ejecución secuencial <strong>de</strong> instrucciones <strong>de</strong> <strong>un</strong><br />

programa<br />

• Pue<strong>de</strong>n ser <strong>de</strong> origen interno o externo a la<br />

CPU.<br />

¿Porqué Interrumpir?<br />

• Por resultado <strong>de</strong> <strong>un</strong>a ejecución <strong>de</strong> <strong>un</strong>a instrucción.<br />

– Ej: <strong>de</strong>sbordamiento aritmético (“overflow”), división por cero, intento <strong>de</strong><br />

acce<strong>de</strong>r fuera <strong>de</strong>l espacio <strong>de</strong> memoria permitido al usuario<br />

• Por <strong>un</strong> temporizador interno <strong>de</strong>l procesador.<br />

– Generadas por <strong>un</strong> temporizador interno al procesador. Ej Permite al S.O.<br />

realizar ciertas f<strong>un</strong>ciones <strong>de</strong> manera regular.<br />

• Por <strong>un</strong>a operación <strong>de</strong> E/S.<br />

– Generadas por <strong>un</strong> controlador <strong>de</strong> E/S: para indicar la finalización normal<br />

<strong>de</strong> <strong>un</strong>a operación o para avisar <strong>de</strong> ciertas condiciones <strong>de</strong> error.<br />

• Por <strong>un</strong> fallo <strong>de</strong> hardware.<br />

– Ej: error <strong>de</strong> paridad en la memoria, pérdida <strong>de</strong> energía o falta <strong>de</strong><br />

alimentación.


¿Porqué Interrumpir?<br />

– Las interrupciones proporcionan <strong>un</strong>a forma <strong>de</strong> mejorar la eficiencia <strong>de</strong>l<br />

procesador.<br />

– Ej: La mayoría <strong>de</strong> los dispositivos externos son mucho mas lentos que el<br />

procesador.<br />

– Si el procesador esta transfiriendo datos a <strong>un</strong>a impresora utilizando el<br />

esquema <strong>de</strong>l ciclo <strong>de</strong> instrucción<br />

– Después <strong>de</strong> cada operación <strong>de</strong> escritura, el procesador permanece<br />

ocioso hasta que la impresora termine su tarea.<br />

– La longitud <strong>de</strong> esta pausa pue<strong>de</strong> ser <strong>de</strong>l or<strong>de</strong>n <strong>de</strong> muchos cientos o<br />

incluso miles <strong>de</strong> ciclos <strong>de</strong> instrucción que no implican acceso a memoria,<br />

esto supone <strong>un</strong> <strong>de</strong>rroche <strong>de</strong> CPU.<br />

– Si se utilizan interrupciones el procesador pue<strong>de</strong> <strong>de</strong>dicarse a ejecutar<br />

otras instrucciones mientras <strong>un</strong>a operación <strong>de</strong> E/S está en curso.<br />

Interrupciones<br />

• Proporcionan <strong>un</strong>a forma <strong>de</strong> mejorar la eficiencia <strong>de</strong>l procesador.<br />

• Ej.: los dispositivos externos son mucho mas lentos qe el<br />

procesador<br />

• El procesador está transfiriendo datos a <strong>un</strong>a impresora basado<br />

en el ciclo <strong>de</strong> instrucción.<br />

• Después <strong>de</strong> cada operación <strong>de</strong> escritura, el procesador queda<br />

ocioso hasta que se complete la escritura.<br />

• Esta pausa pue<strong>de</strong> ser <strong>de</strong>l or<strong>de</strong>n <strong>de</strong> cientos o incluso miles <strong>de</strong><br />

ciclos <strong>de</strong> instrucción que no implican acceso a memoria.<br />

• Esto supone <strong>un</strong> <strong>de</strong>rroche en el procesador.


Ciclo <strong>de</strong> instrucción e interrupciones<br />

Para permitir el uso <strong>de</strong> interrupciones resultan:<br />

Tres pasos:<br />

• Captación<br />

• Ejecución<br />

• Gestión <strong>de</strong> interrupciones<br />

Ciclo <strong>de</strong> instrucción e interrupciones<br />

• El procesador comprueba si se ha solicitado alg<strong>un</strong>a interrupción.<br />

– indicada por la presencia <strong>de</strong> <strong>un</strong>a señal <strong>de</strong> pedido <strong>de</strong> interrupción.<br />

• Si no hay señales se capta la siguiente instrucción.<br />

• Si hay algún pedido <strong>de</strong> interrupción pendiente, la CPU:<br />

– Suspen<strong>de</strong> la ejecución <strong>de</strong>l programa en curso<br />

– Guarda su contexto (próxima instrucción a ejecutar , PC, y el estado <strong>de</strong>l<br />

procesador)<br />

– Carga el PC con la dirección <strong>de</strong> comienzo <strong>de</strong> <strong>un</strong>a rutina <strong>de</strong> gestión <strong>de</strong><br />

interrupción. Se inhiben otras interrupciones.<br />

– El procesador acce<strong>de</strong> a la 1era. Instrucción <strong>de</strong> gestión <strong>de</strong> interrupción, y<br />

realiza todas las operaciones que sean necesarias.<br />

– Finalizada la rutina <strong>de</strong> gestión <strong>de</strong> interrupción, el procesador retoma la<br />

ejecución <strong>de</strong>l programa <strong>de</strong>l usuario en el p<strong>un</strong>to <strong>de</strong> interrupción.


Diagrama <strong>de</strong> estados <strong>de</strong> <strong>un</strong> ciclo <strong>de</strong><br />

instrucción con interrupciones<br />

Un ejemplo <strong>de</strong> uso <strong>de</strong> interrupciones (I)<br />

• Un programa realiza <strong>un</strong>a operación <strong>de</strong> E/S<br />

– Hay que esperar al dispositivo<br />

• Mejor solución: cuando el dispositivo termina su<br />

tarea, envía <strong>un</strong>a señal al procesador indicando<br />

el fin <strong>de</strong> la interrupción.<br />

• Generalmente el programa <strong>de</strong> gestión <strong>de</strong><br />

interrupción forma parte <strong>de</strong>l sistema operativo.<br />

• Normalmente <strong>de</strong>termina el origen <strong>de</strong> la<br />

interrupción y realiza todas las acciones<br />

necesarias


Un ejemplo <strong>de</strong> uso <strong>de</strong> interrupciones (II)<br />

• Situación frecuente para <strong>un</strong> dispositivo lento, como <strong>un</strong>a<br />

impresora:<br />

• Allí la operación <strong>de</strong> E/S requiere mas tiempo para ejecutar<br />

<strong>un</strong>a secuencia <strong>de</strong> instrucciones <strong>de</strong> usuario .<br />

• Un programa realiza <strong>un</strong>a operación <strong>de</strong> E/S<br />

– Hay que esperar al dispositivo<br />

• Mejor solución: cuando el dispositivo termina su tarea,<br />

envía <strong>un</strong>a señal al procesador indicando fin <strong>de</strong> la<br />

interrupción<br />

– Este mecanismo permite a <strong>un</strong> programa que escribe mas datos<br />

en ese modulo <strong>de</strong> E/S, cuando se completa se retorna al<br />

programa original<br />

– Tener en cuenta la velocidad <strong>de</strong>l dispositivo externo. (Fig. a ) a.)<br />

a.Sin interrupción<br />

Flujo <strong>de</strong> control <strong>de</strong>l programa<br />

<strong>de</strong>l ejemplo<br />

b. Interrupción, espera<br />

<strong>de</strong> E/S corta<br />

c. Interrupción, espera<br />

<strong>de</strong> E/S larga


Flujo <strong>de</strong> control <strong>de</strong>l programa <strong>de</strong>l ejemplo<br />

• Figura a)<br />

• Los segmentos <strong>de</strong> código 1,2 y 3 correspon<strong>de</strong>n a<br />

instrucciones que no ocasionan operaciones <strong>de</strong> E/S<br />

• Las llamadas <strong>de</strong> escritura (WRITE) correspon<strong>de</strong>n a llamadas a <strong>un</strong><br />

programa <strong>de</strong> E/S, que es <strong>un</strong>a <strong>de</strong> las utilida<strong>de</strong>s <strong>de</strong>l S.O.<br />

• El programa <strong>de</strong> E/S esta formado por:<br />

• Una secuencia <strong>de</strong> instrucciones (4) , <strong>de</strong> preparación para la<br />

operación ( copia <strong>de</strong>l dato en <strong>un</strong> buffer, preparar los parámetros<br />

<strong>de</strong>l control <strong>de</strong>l dispositivo <strong>de</strong> E/S.<br />

• La or<strong>de</strong>n <strong>de</strong> E/S propiamente dicha. El programa <strong>de</strong>be esperar a<br />

que el dispositivo <strong>de</strong> E/S complete la operación requerida.<br />

Comprobaría repetidamente <strong>un</strong>a condición que indique su fin<br />

• Una secuencia <strong>de</strong> instrucciones, (5), que terminan la operación<br />

<strong>de</strong> E/S. Ej.: Activación <strong>de</strong> <strong>un</strong> flag, que indique si se ha concluido o<br />

no con errores.<br />

• El programa <strong>de</strong> usuario está parado en las llamadas Write <strong>un</strong><br />

tiempo consi<strong>de</strong>rable<br />

63<br />

Flujo <strong>de</strong> control <strong>de</strong>l programa <strong>de</strong>l ejemplo<br />

• Figura b)<br />

• El programa llega a <strong>un</strong>a llamada al sistema operativo para<br />

ejecutar la escritura WRITE<br />

• El programa <strong>de</strong> E/S al que se llama está constituido por el<br />

código <strong>de</strong> preparación y la or<strong>de</strong>n <strong>de</strong> E/S.<br />

• Luego el control se <strong>de</strong>vuelve al programa <strong>de</strong>l usuario.<br />

• Mientras, el dispositivo esta ocupado aceptando el dato <strong>de</strong> la<br />

memoria <strong>de</strong>l computador e imprimiéndolo. Esto se realiza<br />

concurrentemente con el ejecución <strong>de</strong>l programa <strong>de</strong>l usuario.<br />

• Cuando el dispositivo externo esta listo para actuar, es <strong>de</strong>cir<br />

leer mas datos, el modulo <strong>de</strong> E/S <strong>de</strong>l dispositivo envía <strong>un</strong>a<br />

señal <strong>de</strong> petición <strong>de</strong> interrupción al procesador.<br />

• El procesador, suspen<strong>de</strong> lo que estaba haciendo y salta al<br />

programa <strong>de</strong> gestión <strong>de</strong> interrupción, que da servicio al<br />

dispositivo. Los p<strong>un</strong>tos don<strong>de</strong> se producen las interrupciones 64<br />

se indican con <strong>un</strong>a equis


Flujo <strong>de</strong> control <strong>de</strong> <strong>un</strong> programa<br />

• El proceso generado por el gestor <strong>de</strong> interrupciones supone <strong>un</strong>a<br />

cierta penalización (overhead). Deben ejecutarse instrucciones<br />

extras en el gestor<br />

• Para <strong>de</strong>terminar el origen <strong>de</strong> la interrupción y para <strong>de</strong>cidir la acción<br />

mas apropiada.<br />

• No obstante el procesador pue<strong>de</strong> emplearse mas eficientemente ya<br />

que se per<strong>de</strong>ría tiempo asociado a la operación <strong>de</strong> E/S<br />

Flujo <strong>de</strong> control <strong>de</strong> <strong>un</strong> programa<br />

• Figura c)<br />

• La situación mas frecuente es que la operación <strong>de</strong> E/S, por ejemplo<br />

<strong>un</strong>a impresora, requiera mucho mas tiempo para ejecutar <strong>un</strong>a<br />

secuencia <strong>de</strong> instrucciones <strong>de</strong> usuario.<br />

• El programa <strong>de</strong> usuario llega a la 2da llamada WRITE, antes que la<br />

operación E/S generada por la 1er llamada se complete.<br />

• El programa <strong>de</strong> usuario se <strong>de</strong>tiene en ese p<strong>un</strong>to<br />

• Cuando la operación E/S prece<strong>de</strong>nte se completa, esta nueva<br />

llamada a escritura se pue<strong>de</strong> procesar, y se inicia <strong>un</strong>a nueva llamada<br />

<strong>de</strong> E/S y se pue<strong>de</strong> iniciar <strong>un</strong>a nueva operación <strong>de</strong> E/S.<br />

• Existe <strong>un</strong>a mejora porque parte <strong>de</strong>l tiempo durante el cual la<br />

operación <strong>de</strong> E/S está en marcha se solapa con la ejecución <strong>de</strong><br />

instrucciones <strong>de</strong> usuario.


Jerarquía <strong>de</strong> interrupciones<br />

Si hay múltiples fuentes se establece cuales son<br />

mas importantes<br />

• No enmascarables: No pue<strong>de</strong>n ignorarse.<br />

– Indican eventos peligrosos o <strong>de</strong> alta prioridad.<br />

• Enmascarables: Pue<strong>de</strong>n ser ignoradas.<br />

– Con instrucciones inhibimos su ocurrencia.<br />

Interrupciones múltiples (1)<br />

• Un programa pue<strong>de</strong> estar recibiendo datos a través <strong>de</strong> <strong>un</strong>a línea <strong>de</strong><br />

com<strong>un</strong>icación e imprimiendo resultados. La impresora generará<br />

interrupciones cada vez que complete <strong>un</strong>a operación <strong>de</strong> escritura.<br />

• Se presentan 2 alternativas para tratar este tipo <strong>de</strong> interrupciones<br />

• Interrupciones inhabilitadas<br />

• El procesador pue<strong>de</strong> y <strong>de</strong>be ignorar la señal <strong>de</strong> petición <strong>de</strong> interrupción.<br />

• Si se hubiera generado <strong>un</strong>a interrupción se mantiene pendiente y se<br />

examinará luego <strong>un</strong>a vez que se hayan habilitado nuevamente.<br />

• Ocurre <strong>un</strong>a interrupción, se inhabilitan, se gestiona la misma y luego se<br />

habilitan otra vez.<br />

• Por lo tanto las interrupciones se manejan en <strong>un</strong> or<strong>de</strong>n secuencial<br />

estricto.<br />

• Inconvenientes: NO tiene en cuenta priorida<strong>de</strong>s relativas, ni las<br />

solicitu<strong>de</strong>s con <strong>un</strong> tiempo critico. Ej: Llega <strong>un</strong>a entrada <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong><br />

com<strong>un</strong>icación esta <strong>de</strong>be tramitarse para <strong>de</strong>jar espacio a la sgte, ……


Procesamiento <strong>de</strong> interrupciones<br />

Interrupción inhabilitada.<br />

Interrupciones múltiples (2)<br />

Otra alternativa:<br />

Definir priorida<strong>de</strong>s<br />

• Una interrupción <strong>de</strong> prioridad más alta pue<strong>de</strong><br />

interrumpir a <strong>un</strong> gestor <strong>de</strong> interrupción <strong>de</strong> prioridad<br />

menor.<br />

• Cuando se ha gestionado la interrupción <strong>de</strong> prioridad<br />

más alta, el procesador vuelve a las interrupciones<br />

previas (<strong>de</strong> menor prioridad).<br />

• Terminadas todas las rutinas <strong>de</strong> gestión <strong>de</strong><br />

interrupciones se retoma el programa <strong>de</strong>l usuario.


Procesamiento <strong>de</strong> interrupciones<br />

anidadas (priorización)<br />

Reconocimiento <strong>de</strong> interrupciones (1)<br />

• Interrupciones multinivel<br />

– Cada dispositivo que pue<strong>de</strong> provocar interrupción tiene <strong>un</strong>a<br />

entrada física <strong>de</strong> interrupción conectada a la CPU.<br />

– Es muy sencillo, pero muy caro.<br />

• Línea <strong>de</strong> interrupción única<br />

– Una sola entrada física <strong>de</strong> pedido <strong>de</strong> interrupción a la que<br />

están conectados todos los dispositivos.<br />

– Tiene que “preg<strong>un</strong>tar” a cada dispositivo si ha producido el<br />

pedido <strong>de</strong> interrupción (técnica Polling).


Reconocimiento <strong>de</strong> interrupciones<br />

(2)<br />

• Interrupciones vectorizadas<br />

– El dispositivo que quiere interrumpir a<strong>de</strong>más <strong>de</strong> la<br />

señal <strong>de</strong> pedido <strong>de</strong> interrupción, <strong>de</strong>be colocar en el<br />

bus <strong>de</strong> datos <strong>un</strong> i<strong>de</strong>ntificador (vector).<br />

– Lo pue<strong>de</strong> poner el periférico directamente, o bien <strong>un</strong><br />

controlador <strong>de</strong> interrupciones (que se ocupa <strong>de</strong><br />

todo).<br />

Escenario <strong>de</strong> trabajo<br />

• El procesador tiene <strong>un</strong>a única entrada <strong>de</strong> pedido<br />

<strong>de</strong> interrupciones.<br />

• Si tenemos varios productores <strong>de</strong> interrupciones<br />

¿Cómo lo solucionamos?<br />

– Dispositivo controlador <strong>de</strong> interrupciones (PIC)


• Hardware<br />

Conexionado<br />

Interrupciones <strong>de</strong>l MSX88<br />

– Línea INT<br />

– Como respuesta <strong>de</strong> reconocimiento INTA<br />

– Línea NMI<br />

– Su proceso <strong>de</strong> atención es por salto indirecto<br />

• Software<br />

– Instrucción INT xx<br />

– Para retorno <strong>de</strong>be usarse la instrucción IRET<br />

– Proceso <strong>de</strong> atención vectorizado


F<strong>un</strong>cionamiento <strong>de</strong> la E/S<br />

Lo anterior hizo foco en la interacción entre CPU y memoria<br />

Se <strong>de</strong>be consi<strong>de</strong>rar también entre componentes <strong>de</strong> E/S<br />

Un módulo <strong>de</strong> E/S pue<strong>de</strong> intercambiar datos directamente con el<br />

procesador<br />

Pue<strong>de</strong> iniciar <strong>un</strong>a lectura o escritura en memoria, especificando<br />

la dirección <strong>de</strong> <strong>un</strong>a posición concreta<br />

El procesador también pue<strong>de</strong> leer/escribir datos en <strong>un</strong> modulo<br />

<strong>de</strong> E/S-> i<strong>de</strong>ntifica <strong>un</strong> dispositivo especifico controlado por <strong>un</strong><br />

modulo <strong>de</strong> E/S <strong>de</strong>terminado.<br />

En ciertas casos es <strong>de</strong>seable permitir los intercambios <strong>de</strong> E/S<br />

directamente con la memoria.<br />

El procesador ce<strong>de</strong> a <strong>un</strong> modulo la autoridad para leer/escribir<br />

en memoria -> no interviene el procesador-� Esto se conoce 77<br />

como DMA ( Direct Memory Access)<br />

Estructuras <strong>de</strong> interconexión.(I)<br />

PC: conj<strong>un</strong>to <strong>de</strong> módulos o <strong>un</strong>ida<strong>de</strong>s elementales<br />

Deben existir líneas para interconectar esos módulos<br />

El diseño <strong>de</strong> la estructura <strong>de</strong> interconexión <strong>de</strong>pen<strong>de</strong>rá<br />

<strong>de</strong> los intercambios que <strong>de</strong>ban producirse<br />

Tipos <strong>de</strong> intercambio <strong>de</strong> datos según tipo <strong>de</strong> módulo:<br />

•Memoria: Constituida por N palabras <strong>de</strong> igual<br />

longitud. Cada <strong>un</strong>a con 1 dirección única. Una palabra<br />

pue<strong>de</strong> leerse o escribirse en memoria.<br />

El tipo <strong>de</strong> operación se indica mediante señales: Read (<br />

leer ) y Write ( escribir).<br />

La posición <strong>de</strong> memoria para la operación se especifica<br />

mediante <strong>un</strong>a dirección.<br />

78


Módulos <strong>de</strong> <strong>un</strong> computador<br />

Estructuras <strong>de</strong> interconexión.(II)<br />

Módulo <strong>de</strong> E/S: es f<strong>un</strong>cionalmente parecida a<br />

la memoria. Dos operaciones ( leer y escribir).<br />

•Pue<strong>de</strong> controlar más <strong>de</strong> <strong>un</strong> dispositivo externo<br />

•Interfaces con <strong>un</strong> disp. externo= puerto (port)<br />

•Cada <strong>un</strong>o con <strong>un</strong>a dirección (0,1,.. M-1)<br />

•Existen líneas externas <strong>de</strong> datos para la<br />

entrada y la salida <strong>de</strong> datos por <strong>un</strong> dispositivo<br />

externo.<br />

•Pue<strong>de</strong> enviar señales <strong>de</strong> interrupción al<br />

procesador<br />

79<br />

80


Estructuras <strong>de</strong> interconexión.(III)<br />

Procesador:<br />

•Lee instrucciones y datos<br />

•Escribe datos <strong>un</strong>a vez procesados<br />

•Utiliza señales para controlar el f<strong>un</strong>cionamiento<br />

<strong>de</strong>l sistema.<br />

•Pue<strong>de</strong> recibir señales <strong>de</strong> interrupción.<br />

Estructuras <strong>de</strong> interconexión. (III)<br />

Las estructuras <strong>de</strong>ben dar cobertura a los<br />

siguientes tipos <strong>de</strong> transferencia:<br />

Memoria a procesador<br />

Procesador a memoria<br />

E/S a procesador<br />

Procesador a E/S<br />

Memoria a E/S y viceversa:<br />

Un módulo <strong>de</strong> E/S pue<strong>de</strong> intercambiar datos directamente con<br />

la memoria, sin que tengan que pasar a través <strong>de</strong>l procesador,<br />

utilizando el “acceso directo a memoria” (DMA)<br />

Las estructuras mas com<strong>un</strong>es son los buses.<br />

81<br />

82


Interconexión con buses .(I)<br />

Es <strong>un</strong> camino <strong>de</strong> com<strong>un</strong>icación entre 2 o más<br />

dispositivos.<br />

Es <strong>un</strong> medio <strong>de</strong> transmisión compartido<br />

Se conectan a él varios dispositivos y cualquier<br />

señal transmitida por <strong>un</strong>o está disponible para<br />

los otros<br />

Constituidos por líneas<br />

Cada línea transmite señales binarias <strong>de</strong> 0 y 1<br />

Varias líneas pue<strong>de</strong>n transmitir bits en paralelo<br />

(Ej. Un dato <strong>de</strong> 8 bits pue<strong>de</strong> transmitirse<br />

mediante 8 líneas <strong>de</strong>l bus)<br />

Bus <strong>de</strong>l sistema: interconecta los componentes 83<br />

principales <strong>de</strong>l computador.<br />

Interconexión con buses .(II)<br />

Bus <strong>de</strong>l sistema: entre 50 y 100 líneas<br />

A cada línea se le asigna <strong>un</strong> significado o<br />

f<strong>un</strong>ción particular.<br />

Tres grupos f<strong>un</strong>cionales: líneas <strong>de</strong> datos, líneas<br />

<strong>de</strong> dirección y <strong>de</strong> control.<br />

Líneas <strong>de</strong> alimentación para suministrar energía<br />

a los módulos conectados al bus.<br />

84


Interconexión con buses .(III)<br />

Líneas <strong>de</strong> datos: Constituye el bus <strong>de</strong> datos.<br />

Pue<strong>de</strong> incluir entre 32 y cientos <strong>de</strong> líneas.<br />

Cada línea sólo pue<strong>de</strong> transportar <strong>un</strong> bit a la<br />

vez<br />

Anchura <strong>de</strong>l bus: factor clave a la hora <strong>de</strong><br />

<strong>de</strong>terminar las prestaciones <strong>de</strong>l sistema.<br />

Si el bus <strong>de</strong> datos tiene 8 líneas y las<br />

instrucciones son <strong>de</strong> 16 bits, que hace el<br />

procesador cuando acce<strong>de</strong> al módulo <strong>de</strong><br />

memoria???<br />

Interconexión con buses .(IV)<br />

Líneas <strong>de</strong> dirección: Designan la fuente o el<br />

<strong>de</strong>stino <strong>de</strong>l dato, situado en el bus <strong>de</strong> datos<br />

Anchura <strong>de</strong>l bus <strong>de</strong> direcciones: Determina la<br />

máxima capacidad <strong>de</strong> memoria posible en el<br />

sistema<br />

Se usan a<strong>de</strong>más para direccionar los puertos <strong>de</strong><br />

E/S<br />

Líneas <strong>de</strong> control: Controlan el uso y acceso a<br />

las otras líneas.<br />

Las señales <strong>de</strong> control transmiten: ór<strong>de</strong>nes e<br />

información <strong>de</strong> temporización entre los<br />

módulos.<br />

Las <strong>de</strong> temporización: indican la vali<strong>de</strong>z <strong>de</strong> los 86<br />

datos y las direcciones.<br />

85


Interconexión con buses .(IV)<br />

Las señales <strong>de</strong> ór<strong>de</strong>nes: especifican las<br />

operaciones a realizar:<br />

1. Escritura en memoria (Memory write)<br />

2. Lectura <strong>de</strong> memoria (Memory Read)<br />

3. Escritura <strong>de</strong> E/S (I/O Write)<br />

4. Lectura <strong>de</strong> E/S (E/S Read)<br />

5. Transferencia reconocida (Transfer ACK)<br />

6. Petición <strong>de</strong>l bus (Bus request)<br />

7. Cesión <strong>de</strong> bus (Bus grant)<br />

8. Petición <strong>de</strong> ininterrupción (Interrupt request)<br />

87<br />

9. Interrupción reconocida (Interrupt ACK)<br />

Interconexión con buses .(V)<br />

1. Reloj (clock): se utiliza para sincronizar las<br />

operaciones<br />

2. Inicio (reset): Pone los módulos conectados en<br />

su estado inicial.<br />

F<strong>un</strong>cionamiento básico <strong>de</strong>l bus:<br />

a) Si <strong>un</strong> módulo <strong>de</strong>sea enviar <strong>un</strong> dato a otro:<br />

1. Obtener el uso <strong>de</strong>l bus<br />

2. Transferir el dato a través <strong>de</strong>l bus.<br />

b) Si <strong>un</strong> módulo <strong>de</strong>sea pedir <strong>un</strong> dato a otro:<br />

1. Obtener el uso <strong>de</strong>l bus<br />

2. Transferir la petición al otro módulo mediante las líneas <strong>de</strong><br />

control y dirección apropiadas. Debe esperar a que el 2do.<br />

módulo envié el dato.<br />

88


Implementación física típica <strong>de</strong> <strong>un</strong>a arquitectura <strong>de</strong><br />

bus<br />

Interconexión con buses (VI)<br />

Conj. <strong>de</strong> conductores eléctricos<br />

paralelos. Líneas <strong>de</strong> metal<br />

grabadas en <strong>un</strong>a tarjeta ( <strong>de</strong><br />

89<br />

circuito impreso).<br />

1. El esquema anterior se introduce en <strong>un</strong> chasis.<br />

2. En los sistemas actuales tien<strong>de</strong>n a tener sus componentes<br />

principales en la misma tarjeta y los circuitos integrados<br />

incluyen mas elementos.<br />

3. El bus que conecta el procesador y la memoria cache se<br />

integra en el micro j<strong>un</strong>to con el procesador y la cache ( onchip)<br />

en bus que conecta el procesador con la memoria y<br />

otros componentes se incluye (On-board)<br />

4. Se pue<strong>de</strong> adquirir <strong>un</strong> computador pequeño y expandirlo (<br />

ampliar memoria, módulos <strong>de</strong> E/S) mas a<strong>de</strong>lante añadiendo<br />

mas tarjetas.<br />

90


Jerarquía <strong>de</strong> buses múltiples.<br />

Si se conectan <strong>de</strong>masiados dispositivos al bus-> disminuyen las<br />

prestaciones:<br />

1. A mayor nro <strong>de</strong> dispositivos mayor retardo <strong>de</strong> propagación.<br />

Retardo: tiempo que necesitan los dispositivos para coordinarse<br />

en el uso <strong>de</strong>l bus. Si el control pasa <strong>de</strong> <strong>un</strong> dispositivo a otro<br />

frecuentemente esto afecta las prestaciones.<br />

2. Cuello <strong>de</strong> botella: Si las peticiones <strong>de</strong> transferencia<br />

acumuladas se aproximan a la capacidad <strong>de</strong>l bus-> se<br />

incrementa la anchura <strong>de</strong>l bus y hasta cierto p<strong>un</strong>to su<br />

velocidad, pero la velocidad que necesitan los dispositivos<br />

aumenta también ( -> Bus único esta <strong>de</strong>stinado a <strong>de</strong>jar <strong>de</strong><br />

utilizarse.<br />

3. La mayoría <strong>de</strong> los computadores utilizan varios buses,<br />

organizados jerárquicamente.<br />

Arquitectura <strong>de</strong> bus tradicional. (ISA) con caché<br />

91<br />

92


Arquitectura <strong>de</strong> altas prestaciones.(Arquitectura <strong>de</strong><br />

Ventajas:<br />

entreplanta – mezzanine architecture)<br />

Arquitectura <strong>de</strong> altas prestaciones.<br />

Acerca al procesador los dispositivos que exigen<br />

prestaciones elevadas<br />

Al mismo tiempo es in<strong>de</strong>pendiente <strong>de</strong>l procesador.<br />

Los cambios en la arquitectura <strong>de</strong>l procesador no<br />

afectan al bus <strong>de</strong> alta velocidad y viceversa.<br />

93<br />

94


Elementos <strong>de</strong> diseño <strong>de</strong> <strong>un</strong> bus<br />

Tipo Anchura <strong>de</strong>l bus:<br />

Dedicado – Multiplexado Dirección<br />

Método <strong>de</strong> arbitraje: Datos<br />

Centralizado – Distribuido Tipo <strong>de</strong> transferencia <strong>de</strong> datos<br />

Temporización: Lectura<br />

Asíncrono - Síncrono Escritura<br />

Lectura – Modificación-Escritura<br />

Lectura – <strong>de</strong>spués <strong>de</strong> escritura-<br />

Bloque<br />

Elementos <strong>de</strong> diseño <strong>de</strong> <strong>un</strong> bus<br />

(preg<strong>un</strong>tas para trabajar en grupo)<br />

1.- Cual es el propósito <strong>de</strong> <strong>un</strong> método <strong>de</strong> arbitraje?<br />

2. Caracteriza el arbitraje centralizado y el distribuido?<br />

3. Describa la temporización síncrona <strong>de</strong> bus.<br />

4. Caracteriza la temporización asíncrona <strong>de</strong>l bus?<br />

4. Relaciona anchura <strong>de</strong> bus y prestaciones <strong>de</strong>l<br />

sistema.<br />

95<br />

96


Problema ejemplo<br />

• Consi<strong>de</strong>re <strong>un</strong> hipotético microprocesador <strong>de</strong> 32 bits cuyas<br />

instrucciones <strong>de</strong> 32 bits están compuestas por dos campos: el primer<br />

byte contiene el codop y los restantes <strong>un</strong> operando inmediato o <strong>un</strong>a<br />

dirección <strong>de</strong> operando.<br />

• a) Cual es la máxima capacidad <strong>de</strong> memoria ( en bytes) direccionable<br />

directamente?<br />

• b) Discuta el impacto que se produciría en la velocidad <strong>de</strong>l sistema si el<br />

microprocesador tiene :<br />

• 1.- Un bus <strong>de</strong> dirección local <strong>de</strong> 32 bits y <strong>un</strong> bus <strong>de</strong> datos local <strong>de</strong> 16<br />

bits,<br />

• 2.- Un bus <strong>de</strong> dirección local <strong>de</strong> 16 bits y <strong>un</strong> bus <strong>de</strong> datos local <strong>de</strong> 16<br />

bits.<br />

• c) Cuantos bits necesitan el contador <strong>de</strong> programa y el registro <strong>de</strong><br />

97<br />

instrucción?.<br />

PCI (Peripheral Component Interconnect)<br />

• PCI ( Interconexión <strong>de</strong> componente periférico)<br />

• Muy popular, se utiliza como bus <strong>de</strong> periféricos o bus para <strong>un</strong>a<br />

arquitectura <strong>de</strong> entreplanta<br />

• El estándar actual permite el uso <strong>de</strong> 64 líneas <strong>de</strong> datos a 66 MHZ, para<br />

<strong>un</strong>a velocidad <strong>de</strong> transferencia <strong>de</strong> 528 MB o 4,224 Gbps.<br />

• Ha sido diseñado para ajustarse económicamente a los requisitos <strong>de</strong><br />

E/S <strong>de</strong> los sistemas actuales.<br />

• Se implementa con muy pocos circuitos integrados y permite que otros<br />

buses se conecten a él.<br />

• Permite <strong>un</strong>a cierta variedad <strong>de</strong> configuraciones basadas en<br />

microprocesadores, incluyendo sistemas <strong>de</strong> <strong>un</strong>o o varios procesadores<br />

• Proporciona <strong>un</strong> conj<strong>un</strong>to <strong>de</strong> f<strong>un</strong>ciones <strong>de</strong> uso general. Utiliza<br />

temporización sincrónica y <strong>un</strong> esquema <strong>de</strong> arbitraje centralizado.<br />

• El uso <strong>de</strong> adaptadores mantiene al PCI in<strong>de</strong>pendiente <strong>de</strong> la velocidad<br />

procesador y proporciona la posibilidad <strong>de</strong> recibir y enviar datos<br />

rápidamente.<br />

98


Referencias bibliográficas<br />

• Stallings, Capítulo 3<br />

• www.pcgui<strong>de</strong>.com/ref/mbsys/buses/<br />

99

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!