Ingeniero Técnico en Informática de Sistemas
Estructura y Tecnología de Computadores
TEMA 1: Introducció a l'estructura de computadors
1.1. Organització d'un computador
Basada en la màquina de Von Newmann (1945).
- Tres conceptes:
- Dades: Les instruccions s'emmagatzemen en una cel·la de memòria de lectura/escriptura.
- Els continguts es direccionen mitjançant la seva adreça, sense considerar el tipus de dada.
- Execució seqüencial.
1.2. Interconnexió dels blocs funcionals
Intercanvis entre unitats funcionals:
Memòria
Mòdul d'Entrada/Sortida
CPU
La CPU llegeix instruccions i dades, escriu les dades una vegada les ha processat i utilitza senyals de control per controlar el funcionament del sistema.
Tipus de transferències
a) Memòria a CPU: la CPU llegeix una instrucció o dada des de memòria.
b) CPU a memòria: la CPU escriu dades a memòria.
c) CPU a E/S: la CPU envia dades als dispositius perifèrics de sortida.
d) E/S a CPU: la CPU rep dades dels dispositius perifèrics d'entrada.
e) Memòria a E/S i viceversa: Un mòdul d'E/S pot intercanviar dades directament amb la memòria sense necessitat de passar a través de la CPU, utilitzant l'accés directe a memòria.
1.3. Principis bàsics de funcionament
La funció bàsica és la execució de programes.
El programa a executar està format per un conjunt d'instruccions emmagatzemades a memòria. La CPU és l'encarregada d'executar les instruccions emmagatzemades en un programa.
El processament que requereix una instrucció s'anomena cicle d'instrucció. Aquest està format bàsicament per dos etapes: cicle de captura de la instrucció i cicle d'execució de la instrucció.
Captura de la instrucció
La CPU ha d'enviar a memòria l'adreça de la instrucció a capturar, així com l'ordre de lectura. La memòria retorna el contingut (instrucció) associat a l'adreça enviada. Quan la instrucció arriba a la CPU s'emmagatzema al registre d'instruccions (IR).
Execució de la instrucció
Fase de decodificació: la UC ha d'analitzar el codi d'operació de la instrucció capturada i generar els senyals de control corresponents.
Fase indirecta (de cerca de les adreces efectives dels opserands): En cas de que els operands estiguin adreçats en mode indirecte, s'ha de realitzar una lectura a memòria per capturar l'adreça efectiva dels operands.
Fase de captura dels operands: La CPU ha de realitzar una o vàries lectures a memòria per capturar els valors dels operands.
Fase d'operació: Una vegada es coneix l'operació que realitza la instrucció i es disposa dels operands, només queda realitzar l'operació.
Fase d'emmagatzemament dels resultats: L'execució de la instrucció produeix un resultat i aquest s'ha d'emmagatzemar a memòria o bé en algun dels registres interns de la CPU.
TEMA 2: LA UNITAT DE CONTROL
2.1. Introducció
2.1.1. Flux de dades i microoperacions
Hem vist que un cicle d'instrucció està compost per dels següents cicles: captació, decodificació, cerca d'operands, operació i emmagatzemament del resultat.
En realitat l'execució de cadascun d'aquests cicles comporta una sèrie de passos, que involucren els registres de la CPU. Aquests passos s'anomenen microoperacions.
Les operacions són les operacions funcionals o atòmiques de la CPU.
CPU
MAR (Memory Address Register)
El MAR conté l'adreça de memòria on es realitza l'operació de lectura/escriptura.
MBR (Memory Buffer Register)
Conté la última dada (paraula) llegida de memòria o bé la dada a escriure a memòria.
PC (Comptador de programa)
Conté l'adreça de la següent instrucció a executar.
IR (Instruction Register)
Conté la instrucció que s'està executant per la CPU.
Exemple:
Captació
t1: MAR <PC>
t2: Memòria <MAR>, read
t3: MBR <Memòria (<MAR>)>
PC <PC> + 1
t4 : IR <MBR>
Decodificació
UC <IR (codi d'operació)>
Cicle indirecte (només quan l'operand està adreçat en mode indirecte)
MAR <IR (adreça)>
Memòria <MAR>, read
MBR <Memòria (<MAR>)>
Cerca d'operands
MAR <MBR>
Memòria <MAR>, read
MBR Memòria (<MAR>)>
Operació
AC <MBR>
Emmagatzemament del resultat
MAR <IR (adreça)>
MBR dada a escriure
Memòria <MAR>, <MBR>, write
Exemple de Operació
BSA X: L'adreça de la instrucció que ve a continuació de la instrucció BSA s'emmagatzema en la posició X i l'execució continua en la posició X + 1.
Captació
MAR <PC>
Memòria <MAR>
MBR <Memòria (<MAR>)>
PC <PC> + 1
IR <MBR>
Decodificació
UC <IR (comptador)>
Operació
t0: MAR <IR (adreça)>
t1: MBR <PC>
t2: Memòria <MBR>, <MAR>, write
PC <MAR>
t3: PC <PC> + 1
ADD Ind X AC <AC> + <<X>>
Captació
Decodificació
Cicle indirecte
MAR <IR (adreça)>
Memòria <MAR>, read
MBR <Memòria (<MAR>)>
Cerca d'operands
MAR <MBR>
Memòria <MAR>, read
MBR <Memòria (<MAR>)>
Operació
Y <MBR>
Z <Y> + <AC>
AC <Z>
2.1.2. Funcions de la Unitat de Control. Senyals de Control
La unitat de control realitza bàsicament dues tasques:
- Seqüenciament: La UC fa que la CPU executi una seqüència de operacions, basades en el programa que s'està executant.
- Execució: La UC fa que s'executi la operació.
Aquestes dos tasques les fa mitjantçant l'ús dels senyals de control.
Les entrades són:
- Rellotge: La UC fa que s'executi cada operació en cada pols de rellotge ( temps cicle de processador o període de rellotge).
- Registre d'instruccions: El codi d'operació de les instruccions determina quines operacions s'han de realitzar.
- Indicadors: Els necessita la UC per determinar l'estat de la CPU i el resultat d'anteriors operacions de l'ALU.
- Senyals de control des del bus del sistema: Bàsicament són els senyals d'interrupció generats pels dispositius perifèrics.
Les sortides són:
- Senyals de control internes a la CPU: Són de dos tipus:
-
Les que fan que les dades es transfereixin d'un registre a un altre (activen el camí de dades).
-
Les que activen funcions específiques de l'ALU (suma, resta, OR, etc).
- Senyals de control cap al bus del sistema:
-
Memòria (Read, Write)
-
Dispositius d'E/S
Per l'activació dels senyals de control s'han de tenir en compte les següents consideracions:
- Els senyals de control es troben per defecte desactivats, de manera que s'han d'activar en cada cicle de rellotge quan ho necessitin.
- Totes les senyals de control que pertanyen a l'execució d'una operació s'han d'activar simultàniament a l'inici de la fase.
Problema 5.2
ADD Ind X, R2 ! <X> <<X>> + <R2>
Cicle de captació
t0: MAR <PC> C4, C7
t1: Memòria <MAR> C25, Read
t2: MBR <Memòria (<MAR>)> C27, Read
PC <PC> + 1 PC
t3: IR <MBR> C1, C6
Cicle de decodificació
UC <IR (codi op.)>
Cicle indirecte
t0: MAR <IR (adreça)> C2, C7
t1: Memòria <MAR> C25, Read
t2: MBR <Memòria (<MAR>)> C27, Read
Cicle captura d'operand
t0: MAR <MBR> C6, C7
t1: Memòria <MAR> C25, Read
t2: MBR <Memòria (<MAR>)> C27, Read
Cicle d'operació
t0: Y <MBR> C6, C8
t1: Z <Y> + <R2> C15, C9, ADD
Cicle d'emmagatzemament
t0: MBR <Z> C10, C5
t1: Memòria <MAR>, <MBR> C26, C25, Write
2.1.3. Alternatives de disseny d'Unitat de Control
-
UC Cablejada: és un circuit seqüencial que genera seqüències fixes de senyals de control.
-
UC microprogramada: hi ha una memòria anomenada “memòria de control” on s'emmagatzemen les microinstruccions de manera que aquestes guarden la informació dels senyals de control a activar.
2.2. Unitat de Control cablejada
Implementar una unitat de control cablejada bàsicament consisteix en obtenir una expressió booleana de cadascun dels senyals de control en funció de les entrades (registre d'instruccions, indicadors ALU, rellotge, comptadors de fase).
Exemple:
Suposem el següent joc d'instruccions:
ADD X ! I0
SUB X ! I1
AND X ! I2
OR X ! I3
LOAD X ! I4
STORE X ! I5
JUMP X ! I6
On X és l'adreça directa.
P | Q | Fase Cicle Instrucció |
0 | 0 | Cicle captació instrucció |
0 | 1 | Cicle captació operand |
1 | 0 | Cicle d'operació |
1 | 1 | Cicle emmagatzemament |
Cicle operació ADD
t0: Y <MBR>
t1: Z <Y> + <AC>
t2: AC <Z>
Cicle operació LOAD
t0: AC <MBR>
2.3. Unitat de Control Microprogramada
El terme de microprograma va estar introduït pel Dr. Wilkies a principis del 50. Wilkies va proposar un nou disseny de la UC ordenat i sistemàtic que evita la complexitat de la cablejada. No va ésser fins al 64 quan IBM va implementar el disseny en la seva línia System 360.
2.3.1. Conceptes bàsics
- Microinstruccions: Paraula que representa els diferents senyals de control corresponents a l'execució d'una microoperació.
Exemple:
<AC> R1 C3, C5
- Microprograma d'una instrucció: Seqüència de microinstruccions que s'han de realitzar per dur a terme l'execució d'una instrucció ensamblador (màquina).
Exemple:
- Memòria de microprograma o de control: És on s'emmagatzemen tots els microprogrames necessaris per executar un llenguatge màquina determinat.
Problema La seqüència de microinstruccions no és fixa, aleshores cal afegir a la memòria de control una adreça per paraula i afegir un camp d'adreçament a cada microinstrucció per indicar la següent microinstrucció a executar en cas de que sigui certa una determinada condició. Per tant, un possible format de microinstrucció pot ser:
Aquesta microinstrucció s'interpreta de la següent manera:
Per executar la microinstrucció s'activen totes les línies de control amb el bit corresponent a 1.
Si la condició indicada en la microinstrucció és falsa, aleshores s'executa la següent microinstrucció seqüencial.
Si la condició és certa s'executa la microinstrucció indicada en el camp d'adreça.
2.3.2. Funcionament d'una Unitat de Control microprogramada
CAR: Conté l'adreça de la següent microinstrucció a executar.
CBR: Quan es llegeix una microinstrucció de la memòria de control s'emmagatzema en el Registre Intermig de Control.
El seu funcionament és el següent:
Per executar una microinstrucció, la lògica de seqüenciament genera una ordre de lectura a la memòria de control.
Es llegeix la microinstrucció indicada pel registre direcció de control (CAR) i s'emmagatzema en el CBR.
El CBR genera els senyals de control i conté la informació de l'adreça de salt.
En funció de la informació del CBR (adreça de salt) i els indicadors de la ALU es pren una de les següents decisions:
-
Capturar la següent instrucció ! Sumar 1 al CAR (CAR <CAR> + 1)
-
Saltar a una rutina segons indica una microinstrucció de salt !
CAR <CBR(adreça)>
-
Saltar a la rutina del cicle d'operació associat a la instrucció màquina que hi ha al registre d'instruccions ! Es carrega el CAR amb una direcció basada en el codi d'operació del RI (CAR <RI(C.O.)>)
2.3.3. Seqüenciament de microinstruccions
L'objectiu és obtenir la següent microinstruccio de la memòria de control:
Les opcions per la direcció següent són:
-
Camp d'adreça de la instrucció en curs
-
Codi del RI
-
Següent microinstrucció seqüencial (<CAR>+1)
Els senyals de selecció de direcció activats per la lògica de salt determinen quina opció s'escolleix.
2.3.4. Codificació de les microinstruccions
Bàsicament, hi ha dos tipus de codificació:
-
Horitzontal: hi ha un bit per cadascun dels senyals de control generats.
-
Vertical o mixta: normalment s'utilitza un cert grau de codificació amb l'objectiu de reduir l'ample de la memòria de control. Normalment s'organitza la microinstrucció en un conjunt de camps de manera que cada camp conté un codi que després de la decodificació activa un senyal de control.
Aquesta divisió per camps es pot fer utilitzant una “codificació per recursos”. Això comporta que la màquina es divideix amb un conjunt de recursos independents i dedica un camp a cadascun d'ells.
A l'hora d'elegir els camps s'han de tenir en compte els següents criteris:
-
Cada camp representa un conjunt d'accions de manera que accions de diferents camps poden ocórrer simultàniament.
-
Els senyals de control associats a cada camp han d'ésser mútuament excloents ( no es poden activar simultàniament).
TEMA 3: LA UNITAT D'ENTRADA - SORTIDA
3.1. Visió global del subsistema d'E/S
La funció del sistema d'E/S és la de possibilitar la comunicació amb el món exterior.
- Perifèric: és un dispositiu hardware que possibilita la comunicació amb el món exterior.
- Controlador: és un sistema mixte (hardware/software) que permet la comunicació entre la CPU/memòria i un o més perifèrics. Quan el controlador està dins del perifèric parlarem de perifèrics intel·ligents (ex: disc IDE).
Per què no connectem el perifèric directament al bus del sistema?
-
Freqüentment els perifèrics utilitzen dades amb formats i tamanys de paraules diferents de les del computador al que es connecten.
-
La velocitat de transferència de les dades dels perifèrics és molt menor que la de la memòria o CPU.
-
Hi ha una gran varietat de perifèrics amb diferents formes de funcionament. No seria pràctic incorporar la lògica necessària dins de la CPU per controlar tanta diversitat de dispositius.
Les principals funcions del controlador d'E/S són les següents:
Control i temporització ! Controlar la transferència de dades entre els dispositius i la CPU. Exemple:
La CPU interroga al controlador d'E/S per comprovar l'estat del dispositiu connectat al mateix.
El controlador retorna l'estat del mateix.
Si el dispositiu està operatiu i preparat per transmetre, la CPU sol·licita la transferència de dades mitjançant el controlador.
El controlador obté una dada del perifèric.
Les dades es transfereixen des del controlador a la CPU.
La comunicació amb la CPU:
Decodificació de les ordres de control.
Dades: intercanvi de dades.
Informació de l'estat. Donat que els perifèrics són lents és important conèixer l'estat del controlador d'E/S.
Reconeixement de les direccions. Al igual que cada paraula de memòria té associada una adreça, cada dispositiu d'E/S en té una altra. Aleshores, el controlador ha de reconèixer si l'adreça enviada per la CPU pertany a algun perifèric dels que controla.
Comunicació amb els perifèrics:
Estat: indica l'estat del dispositiu perifèric (Ready o No Ready).
Control: indica la funció a realitzar pel dispositiu (R/W).
Emmagatzemament temporal de les dades:
Donades les diferents velocitats de transferència a memòria o CPU i la dels perifèrics, és necessari establir un mecanisme d'emmagatzemament temporal (Buffering).
Detecció d'errors de transmissió.
Diagrama simplificat d'un sistema d'E/S
Controlador d'E/S
Dispositiu Perifèric
Transductor: dispositiu que s'encarrega de convertir els senyals elèctrics en mecànics o viceversa.
3.2. Tècniques de transferència d'E/S
3.2.1. E/S amb transferència per programa i sincronització per consulta d'estat (E/S programada).
3.2.2. E/S amb transferència per programa i sincronització per interrupcions (E/S per interrupcions).
3.2.3. E/S mitjançant Accés Directe a Memòria (DMA).
3.2.4. E/S mitjançant canals/processadors d'E/S.
Sincronització: tècnica que utilitza la CPU per conèixer l'estat del dispositiu i per tant saber quan pot realitzar la transferència de dades.
3.2.1. E/S programada
Problema:
Determinar l'impacte de la tècnica d'E/S programada en tres dispositius diferents. Suposarem que el nombre de cicles de rellotge per operació d'E/S programada és de 100 i que el processador els executa amb un rellotge de 50 MHz. Calcular la fracció de temps consumit en cadascun dels següents casos, suposant que la consulta d'estat es realitza amb la freqüència suficient per no perdre cap dada:
El ratolí ha d'ésser consultat 30 vegades per segon per assegurar que no es perd cap moviment fet per l'usuari.
El floppy ha de transferir dades al processador en blocs de 16 bits i a una velocitat de transferència de 50 Kb/seg.
El disc dur transfereix dades en blocs de 32 bits a raó de 2 MB/seg.
1. Els cicles que perd el processador cada segon per consultar el ratolí:
30 x 100 = 3000 cicles/seg
Si el processador funciona a 50 MHz, el percentatge dedicat a la consulta:
2. El número d'accessos per consulta que ha de fer el processador per transferir 50 KB/s a raó de 2 Bytes en cada accés:
El número de cicles consumits per segon serà:
El percentatge demanat:
%
3.2.1.1. E/S aïllada vs E/S mapejada
E/S aïllada
El terme aïllat es refereix al fet que les direccions pels dispositius d'E/S, anomenats parts, estan separades de la memòria. Aquest mode implica que la CPU té un senyal de R/W diferent per memòria que per dispositius d'E/S.
Disposa d'instruccions específiques per E/S:
-
IN acumulador, port: Transfereix un byte o una paraula d'un port d'entrada del processador al registre AL o AX, respectivament.
-
OUT acumulador, port: Transfereix un byte o una paraula del registre AL o AX a un port de sortida.
E/S mapejada
En l'E/S mapejada existeix un únic espai de direccions per les posicions de memòria i pels dispositius d'E/S. La CPU considera els registres d'estat i de dades dels dispositius d'E/S com posicions de memòria i utilitza les mateixes instruccions màquina per accedir tant a memòria com als dispositius d'E/S.
3.2.2. E/S per interrupcions
3.2.2.1. El processament de la interrupció
Quan la CPU rep una interrupció es disposa una sèrie d'events tant a nivell software com hardware.
El controlador d'E/S envia un senyal d'interrupció al processador.
El processador finalitza l'execució de la instrucció en curs abans de respondre a la interrupció.
El processador comprova si hi ha interrupcions, i en cas de que aquestes estiguin habilitades (flag IF=1), envia un senyal de reconeixement al controlador que ha originat la interrupció. El senyal de reconeixement farà que el controlador desactivi el senyal d'interrupció.
El processador necessita preparar-se per transferir el control a la rutina d'interrupció. En primer lloc ha de guardar la informació necessària per continuar el programa en curs en el punt on es va interrompre. Aquesta informació serà (com a mínim):
-
Paraula d'estat.
-
Comptador de programa.
El processador carrega el comptador de programa amb la posició d'inici de la Rutina de Serveis d'Interrupció (RSI).
L'execució de la RSI comprova els següents passos:
- La RSI comença emmagatzemant en la pila el contingut dels registres.
- S'executa el cos de la rutina on es consulta el registre d'estat i es fan les transferències de dades.
- Es recupera de la pila el valor dels registres.
- Es recupera el valor del comptador de programa i el registre d'estat mitjançant l'execució de la instrucció RET.
3.2.2.2. Classificació de les interrupcions
Depenen de la natura de la font que les produeix:
- Hardware: es produeixen per l'activació d'una línia física (INTR o NMI):
-
Externes: produïdes per un dispositiu perifèric (les que estudiem en aquest tema).
-
Internes: produïdes per condicions internes de la CPU.
- Execució pas a pas (debugger).
- Divisió per 0.
- Desbordament.
- etc...
! Les interrupcions harware també es poden classificar en:
-
Interrupcions emmascarables: són aquelles que s'activen per la línia INTR. Solament s'executen si el flag IF = 1.
-
Interrupcions no emmascarables: són aquelles que s'executen sempre. S'activen per la línia NMI. Normalment es corresponen amb les internes.
3.2.2.3. Com determina la CPU qui ha provocat la interrupció
Bàsicament hi ha tres tipus:
Múltiples línies d'interrupció.
Interrupcions no Vectoritzades o Autovectoritzades.
Interrupcions Vectoritzades.
a) Cada perifèric té associat una línia d'interrupció.
b) La CPU realitza una etapa de consulta mitjançant la qual anirà llegint els registres d'estats dels condensadors. El desavantatge és un mètode molt lent.
c) En aquest cas, el controlador que ha provocat la interrupció envia a la CPU un identificador que li permeti calcular l'adreça de la RSI corresponent.
Aquest identificador pot ésser:
-
Direccionament absolut: el controlador proporciona l'adreça de la RSI.
-
Direccionament relatiu: el controlador proporciona una part de l'adreça i la CPU la completa.
-
Direccionament indexat: s'envia un índex corresponent a una taula de vectors.
5 ! Executa RSI 10
3.2.2.4. Prioritat de les interrupcions
Existeixen diferents formes d'establir els nivells de prioritat depenent de l'esquema de connexió dels perifèrics:
Si s'utilitzen interrupcions autovectoritzades la prioritat ve donada per l'ordre de consulta (senzill però lent).
Si s'utilitzen interrupcions vectoritzades la prioritat ve donada per l'ordre de connexió física de la línia INTA, que és l'encarregada de conèixer al perifèric la seva interrupció.
Mitjançant un dispositiu hardware capaç de gestionar múltiples línies de petició d'interrupció. Cada línia de petició correspon a un perifèric. Aquest controlador ha d'ésser capaç de:
Indicar a la CPU la ocurrència d'una interrupció.
Enviar a la CPU l'adreça de la RSI.
Realitzar l'emmascarament selectiu d'interrupcions.
Una última possibilitat és un esquema mixte on hi ha vàries línies de petició d'interrupcions i on cada línia es connecta a més d'un dispositiu.
3.2.2.5. Interrupcions en el i8086
Les interrupcions són vectoritzades amb un direccionament indexat.
3.2.3. E/S mitjançant Accés Directe a Memòria (DMA)
En els dos mètodes anteriors, la CPU s'ha de dedicar a la gestió de la transferència d'E/S ! S'han d'executar un cert nombre d'instruccions per cada transferència.
Per tant, quan s'ha de transferir un gran volum de dades s'utilitza un hardware específic, anomenat controlador DMA, que és l'encarregat de realitzar la transferència.
La CPU no intervé en l'intercanvi d'informació, les dades van directament entre els perifèrics i la memòria, encara que a vegades també ho podem fer a partir del DMA.
Estructura general d'un controlador DMA
BR: Bus Request (petició)
BS: Bus Grant (conseció)
-
Una dada llegida a memòria s'escriu al perifèric i a la inversa.
DREQ: Data Request
DACK: Data Acknowlege
-
R. Direccions: Conté en cada instant la direcció de memòria involucrada en la transferència. Aquest registre s'incrementa o decrementa cada vegada que es transfereix una dada.
-
Comptador: Al principi de la transferència conté el número de bytes a transferir i cada vegada que es transfereix una dada, el seu valor es decrementa en una unitat.
-
R. Estat: Conté l'estat del controlador.
-
R. Control: S'utilitza per programar (configurar) el controlador.
-
Buffer: És opcional. S'utilitza quan es transfereixen dades a través del controlador DMA. Actua com un buffer temporal.
El DMA s'utilitza per a dispositius que han de transferir gran volum de dades.
Funcionament del DMA
Quan la CPU desitja llegir o escriure un bloc de dades envia una ordre al controlador de DMA incloent la següent informació:
-
Si es tracta d'una lectura o escriptura.
-
La direcció del dispositiu d'E/S.
-
La posició inicial de memòria a partir d'on s'ha de llegir o escriure.
-
El número de paraules a llegir o escriure.
Després la CPU continua amb un altre treball. Quan la transferència de dades per part del controlador de DMA envia un senyal d'interrupció a la CPU ! La CPU intervé al principi i al final de la transferència.
Per la transferència d'una unitat bàsica d'informació es produeixen les següents accions (lectura perifèric - escriptura memòria):
El controlador DMA (DMAC) activa el senyal de lectura del corresponent perifèric.
El dispositiu perifèric activa el senyal de petició de DMA indicant que pot realitzar una transferència de dades (DREQ).
El DMAC demanarà el control del bus a la CPU activant el senyal BR.
La CPU cedeix el control del bus activant el senyal BG. Existeixen diferents tècniques per cedir el control del bus.
Quan el DMAC rep el reconeixement de la petició de bus (BG) es farà càrrec del bus per realitzar la transferència i activarà el senyal de reconeixement de DMA (DACK) que farà que el dispositiu perifèric quedi seleccionat i enviï una dada a través del bus.
El DMAC volca el contingut del seu registre de direccions al bus de direccions i activa el senyal de write a memòria.
El DMAC retorna el control del bus, en cas de robatori de cicle o DMA transparent, la CPU li contesta desactivant BG.
El DMAC incrementa/decrementa el registre de direccions i decrementa el comptador.
Si el comptador no es 0, torna al pas 1, si és 0 finalitza la transferència sol·licitant una interrupció a la CPU.
Tècniques per cedir el control del BUS
1. Tècnica per robatori de cicle
La CPU cedeix un cicle de bus per cada cicle d'instrucció.
2. Transferència per ràfaga (BURST)
Quan el controlador per DMA agafa el control del bus, no l'allibera fins que ha transmès tot el bloc de dades.
3. DMA transparent
El DMA utilitza el bus quan la CPU no l'utilitza (no serveix).
Modes d'operació
Els modes d'operació es poden classificar atenent a tres característiques:
Sentit de transferència de les dades.
Ocupació del BUS.
Tipus d'accés.
Sentit de la transferència
Lectura Perifèric ! Escriptura Memòria
Lectura Memòria ! Escriptura Perifèric
Lectura Memòria ! Escriptura Memòria
Mode d'ocupació del BUS
Mode simple: Per cada transferència d'una dada el DMAC demana a la CPU el control del bus. Robatori de cicle i el DMA transparent.
Mode Burst (Ràfaga): Una vegada que el DMA pren el control del bus, transfereix tot el bloc de dades consecutivament.
Mode accés
- Accés directe
- Accés seqüencial
3.2.4. Processadors d'E/S
En sistemes on les transferències d'E/S són molt freqüents, els avantatges que ofereix el DMA no són suficients ! seria interessant que el controlador de DMA tingués certa capacitat de processament de manera que pugui actuar en paral·lel amb la CPU ! Dotar al controlador de DMA de capacitat d'executar instruccions, i amb el seu propi repertori d'instruccions. Això es coneix com a processador d'E/S.
Hi ha dos tipus de processadors d'E/S:
Canal selectiu: Solament pot realitzar una única transferència a la vegada. Per dispositius orientats a blocs.
Canal multiplexor: Pot gestionar diferents transferències a la vegada. Per dispositius orientats a caràcter.
3.3. L'interface extern
Una de les principals característiques de l'interface és sèrie o paral·lel.
Interface paral·lel (SCSI)
Interface sèrie (USB)
La connexió entre un mòdul d'E/S i els dispositius perifèrics pot ésser:
-
Punt a punt: hi ha una línia específica entre el mòdul d'E/S i el dispositiu extern (USB).
-
Multipunt: un bus compartit per diferents dispositius (SCSI) ! En cadena.
BUS: És un camí de comunicació entre dos o més dispositius.
Master: És capaç d'obtenir el control del bus iniciant la seva transferència i determinant la seva temporització.
Slave: Solament és capaç de realitzar la transferència d'informació d'acord als cicles generats pel master.
4.3. Elements de disseny d'un BUS
1. Amplada del BUS
-
Adreça: Determina la capacitat del sistema de memòria ! Quan més ample sigui major es el rang de posicions al que pot fer referència.
-
Dades: Quan més ample sigui major és el nombre de bits que es transmeten simultàniament (normalment es correspon a la longitud de paraula de memòria).
2. Tipus
-
Dedicat: Un bus està dedicat si les seves línies estan assignades a una funció de forma permanent (dedicat funcionalment) o bé dedicat a un conjunt de components (dedicat físicament).
-
No dedicat: En un bus no dedicat es realitza una multiplexació en el temps de manera que sobre les mateixes línies es transmet diferents tipus d'informació.
Operació escriptura multiplexada
Operació escriptura no multiplexada
3. Mecanismes d'arbitratge
Es necessiten quan pot haver-hi més d'un dispositiu master. Aquest mecanisme garanteix que no es faci més d'una transferència simultània pel bus.
-
Centralitzat: Existeix un controlador central (àrbitre) que determina qui pren el control del bus.
-
Distribuït: La lògica de control del bus està distribuïda entre els dispositius connectats al bus.
4. Temporització
Fan referència a la forma com es coordinen els events del bus.
-
Protocol síncron
-
Protocol asíncron
-
Protocol semisíncron
-
Protocol de cicle partit
Daisy-chain de tres fils
1) Quan un controlador pren el control del bus, activa BUS BUSY.
2) Quan un controlador realitza una petició, activa REQUEST.
3) L'àrbitre activa GRANT quan detecta REQUEST pendent i BUS BUSY inactiva.
4) Un controlador passa el GRANT al següent si el senyal GRANT és rebut quan el controlador pren el control del bus quan:
Té una petició pendent.
BUS BUSY està inactiva.
Detecta un flanc de pujada de GRANT.
Polling
- Cada dispositiu té assignat un codi. Quan un dispositiu vol prendre el control del bus, activa el REQUEST.
- Aleshores, l'àrbitre genera una seqüència de dades per les línies de POLL COUNT i agafa el bus aquell dispositiu el codi del qual coincideix amb el que hi ha en aquell moment a les línies, aleshores activa el BUS BUSY i s'atura la seqüència de codis.
- Prioritat programable.
- Desavantatge VS daisy-chain: moltes línies de control.
Processador
UAL
Registres de propòsit general o específic
U. Control
M.P.
E/S
Perifèric
entrada
Perifèric
sortida
Perifèric emmag.
de dades
BUS
Memòria
llegir
escriure
Adreça
Dades
(en cas d'escriptura)
Dada llegida
Llegir
Escriure
Adreça
(port)
Dades internes enviades
des de la CPU (escriptura)
Dades internes enviades
cap a la CPU (lectura)
Dades externes enviades cap a un dispositiu de sortida (W)
Dades externes enviades per un dispositiu d'entrada (R)
Perifèric
sortida
Perifèric
entrada
CPU
E/S
Instruccions
Dades
Senyals
d'interrupció
Dades
Senyals de control
Memoria + subsistemes E/S + BUSOS
Memòria
Memòria
Bàsicament
de les unitats d'E/S
CPU
INICI
Captura
instrucció
Execució
instrucció
FI
Cicle d'instrucció
Adreça
Instrucció
PC
IR
CPU Memòria
Lectura
Adreça
Instrucció
Captura
instrucció
Captura
d'operands
Emmag.
resultats
Decodificador
Càlcul
adreça
operands
Operació
amb dades
Càlcul direcció operands
Cicle indirecte
Cicle indirecte
Càlcul adreça següent instrucció
Accés de la CPU a memoria o E/S
Operacions internes a la CPU
Cicle d'instrucció
Captació
Decodificació
Cerca operands
Operació
Emmag. resultats
op
op
op
op
op
op
UC
PC
IR
MBR
MAR
Y
ALU
Z
R0
R1
R2
R3
SOURCE
DESTÍ
AC
Registres de propòsit general
BUS INTERN
Dada (4)
Dades (5)
Dades ? (3)
Ready/NReady(2)
Estat ? (1)
Perifèric
Controlador
CPU
Bus
sistema
Bus
perifèrics
Subsistema d'E/S
Perifèrics
Interface
o
controlador
d'E/S
Indicadors
ALU
Registre instruccions
Rellotge
Senyals de control des
del bus del sistema
Senyals de control cap
al bus del sistema
Unitat
de
Control
( UC )
Senyals de control
interns a la CPU
Bus del
sistema
1
0
0
0
0
1
C1 C2 C3 C4 C5 C6 C30
0 …………….0
0
0
Microinstruccio asociada a la microoperació (<AC> R1)
MAR <PC>
MBR <MAR>
.
.
.
.
.
.
Microprograma associat a la microinstrucció LOAD X
LOAD X
RI
Decodificador
T0
T1
T2
T3
T4
Rellotge
U. Control
Circuit seqüencial
Indicadors ALU
Comptadors
de fase
Reset
Reset
Comp-
tador
P
Q
I0 I1 …………........ I6
C0
C17
CRead
CPC
…....
….
MAR <PC>
MBR <MAR>
.
.
MAR <IR(adrç)>
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cicle captació
Cicle indirecte
Cicle captura operands
Cicle emmagatzemament
Cicle operació ADD
Cicle operació SUB
Cicle operació LOAD
Senyals de control
Condició
Adreça de salt
Decodificador
RI
Registre Direcció Control (CAR)
Memòria
de
Control
Registre Intermig Control
Indicadors
ALU
Rellotge
Lògica
de
seqüenciament
Senyals de control
U. Control
Senyals de control
Direcció
Mx
IR
t1
CAR
Lògica de salt
CBR
Indicadors ALU
Selecció
Direcció
Memòria
de
Control
Estat (1)
(Organ passiu)
Controlador
Perifèrics
Estat
Control
Dades
Regisre de dades
Registre d'estat
Lògica
E/S
Lògica
interface
amb
perifèric
Lògica
interface
amb
perifèric
BUS DADES
Línies adreça
Línies control
Dades
Estat
Control
Control
Estat
Dades
Transductor
Buffer
Lògica
Control
Dades (des de i cap al controlador)
Dades (des de i cap a l'exterior)
Control Estat
Interface
extern
CPU envia ordre de
lectura al control d'E/S
CPU llegeix l'estat del controlador d'E/S
Llegir paraula al controlador d'E/S
Escriure una paraula
en memòria
Comprova
estat
Final
No Ready
NO
SI
Condició
error
CPU ! E/S
E/S ! CPU
E/S ! CPU
Mem ! CPU
CPU ! Mem
Sincronització
per consulta
Transferencia de
dades ! Es realitza mitjançant l'execució d'unes instruccions per part de la CPU
1 Adreça per E/S
0 Adreça per Memòria
IO / M =
Mapa de memòria
FFFFF
.
.
0FFFF
.
.
0F000
.
.
00000
Espai E/S
Envia ordre de lectura al mòdul d'E/S
Llegir estat mòdul E/S
Llegir paraula d'E/S
Escriure paraula en memòria
Comprovar
estat
FI
NO
SI
CPU ! Memòria
E/S ! CPU
CPU ! E/S
E/S ! CPU
Per una altra cosa
Interrupció
Condició Error
Controlador
Perifèric
INT(1)
INTA(3)
CPU
CONTROLADOR 0
CONTROLADOR N
INTR 0
INTR N
CPU
CPU
Ctrl 1
Ctrl 2
Ctrl. 0
INTR
ESTAT
ESTAT
ESTAT
BUS
CPU
Controlador
E/S
Memòria
Adreça RSI 10
10
Taula vector interrupcions
INTR(1)
INTA(2)
(3) Identificador (10)
Llegeix el contingut de la posició 10 de la taula de VI (4)
Petició disp1 Petició disp2 Petició disp7
CPU comprova si la línia INTR està activada
Cicle d'instrucció
CPU
CONT 2
CONT 1
INTR
INTA
(Connexió Daisy Chain)
INTA
INTA
Registre Màscara
Lògica
prioritats
INTR
INTA
BUS adreces
BUS control
BUS DADES
INTR0
INTR7
1 0 1 0 1 1 1 1
0 1 1 1 1 0 0 0
AND
Registre màscara
Registre peticions
0 0 1 0 1 0 0 0
Lògica
prioritats
(100% programable)
Disp 1
Disp N
Disp 3
Disp 2
Controlador d'interrupcions
INTR1
Disp
Disp
Disp
INTRN
INT 1Ah
DS = 0
IP = 1A x 4 = 68h
F 0 0 0
F E 6 E
TAULA VECTOR INTERRUPCIONS
Memoria Principal
6A
6B
1K
0
1
256
FE6E
F000
CS
IP
Adreça de la RSI de la INT 1A
Memòria
E/S
Control
DMA
CPU
BUS Sistema
Dades
Control transferència
Control transferència
Dades (2)
BUS Sistema
CPU
Control
DMA
E/S
Memòria
Bus Control
Buffer
R. Estat
R. Control
R. Comptador
R. Direccions
Dada (1)
Bus direccions
Bus dades
BR
BG
INTR
DACK
DREQ
IOR
IOW
CPU
Controlador E/S
R
W
a Memòria
Enviar l'ordre de lectura al mòdul DMA
Llegir estat DMA
Cicle d'instrucció
Cerca inst. Decod. Robatori Capt. Op. Execució Emmag.
Cerca inst. Decod. Capt. Op. Execució Emmag.
CPU
Control DMA (DMAC)
Control perifèric
Memòria
Dada
Write (6)
Adreça (5)
DACK (4)
DREQ (1)
IQR (0)
BG (3)
BR (2)
DMA ! CPU
CPU ! DMA
Interrupció
Fer una altra cosa
CPU
Programes
Cicle d'instrucció amb robatori
CPU aturada
(1)
IOP
Programes
Programes
(2)
BUS Sistema
CPU
Control
DMA
E/S
Memòria
CPU - IOP
Communic region
Dades
BUS Sistema
CPU
Control
DMA
E/S
Memòria
Programes
CPU
IOP
BUS
IO BUS
BR
DACK
INTR
ATTENTION
IO devices
SI
SI
SI
Ficar estatus IOCR
Generar INTR
Fi
prog E/S
Fi
transf.
Transmet dada
Recollir paràmetres IOCR
Començar exec programa E/S
OK?
Llegir estatus perifèric
Attention
active
Test attention signal from CPU
SI
NO
NO
NO
NO
Canal selector
Controlador
E/S
Controlador
E/S
Canal multiplexor
A1A2A3
Controlador
E/S
Controlador
E/S
B1B2B3
A1B1A2B2A3B3
Control
E/S
Control
E/S
Al perifèric
Al perifèric
BUS SISTEMA
BUS SISTEMA
Master envia adreça
Master envia dades
Master envia adreça
Master envia dades
Temps
Temps
Descargar
Enviado por: | Ramon Baró Guiu |
Idioma: | catalán |
País: | España |