Estructura y Tecnología de Computadores

Computación. CPU (Central Process Unit). Hardware. BUS. DMA (Direct Memory Access) # Unitat de control i d'entrada sortida. Microinstruccions. Perifèrics. Interrupcions

  • Enviado por: Ramon Baró Guiu
  • Idioma: catalán
  • País: España España
  • 39 páginas
publicidad

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

    'Estructura y Tecnología de Computadores'

    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

    'Estructura y Tecnología de Computadores'

    Disp

    Disp

    Disp

    'Estructura y Tecnología de Computadores'

    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