interrupciones y ciclo de dma

Upload: panchoso14

Post on 26-Feb-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Interrupciones y Ciclo de DMA

    1/9

    Interrupciones y Ciclo

    de DMA

  • 7/25/2019 Interrupciones y Ciclo de DMA

    2/9

    Estructura

    de

    interrupciones

    del

    8086

    /

    8088

    Hay

    tres

    clases

    de

    interrupcin

    :

    por

    hardware,

    porsoftware

    e

    internas

    (a

    las

    dos

    ltimas

    tambin

    selas

    llama

    "

    excepciones

    ")

    .

    Veremos

    primeramente

    el

    caso de

    interrupciones

    por

    hardware

    :

    el

    8086

    /

    8088

    tiene

    dos

    entradas

    depeticin de interrupcin

    : NMI e INTR

    y una dereconocimiento (INTA)

    . La gran mayora de lasfuentes

    de

    interrupcin

    se

    conectan

    al

    pin

    INTR,

    ya

    que

    esto

    permite

    enmascarar

    las

    interrupciones

    (elNMI

    no)

    .

    Para

    facilitar

    esta

    conexin

    ,

    se

    utiliza

    elcircuito integrado controlador de

    interrupciones

    ,que

    tiene

    el

    cdigo

    8259

    A

    .

  • 7/25/2019 Interrupciones y Ciclo de DMA

    3/9

    Existen

    algunas

    interrupciones

    predefinidas

    ,

    de

    usoexclusivo del microprocesador

    , por

    lo que no esrecomendable utilizar

    estos tipos de interrupcin

    para

    interrupciones

    por

    hardware

    o

    software

    .

    Tipo

    0:

    Ocurre

    cuando

    se divide

    por

    cero o elcociente

    es

    mayor que el valor

    mximo

    que

    permite

    el

    destino

    .

    Tipo

    1:

    Ocurre

    despus

    de

    ejecutar

    unainstruccin

    si

    TF (Trap Flag) vale 1.

    Estopermite

    la

    ejecucin

    de

    un

    programa

    paso

    apaso

    , lo que

    es

    muy

    til

    para la

    depuracin

    deprogramas

    .

    Tipo

    2:

    Ocurre

    cuando

    se

    activa

    la

    pata

    NMI

    (

    interrupcin

    no enmascarable

    ).

  • 7/25/2019 Interrupciones y Ciclo de DMA

    4/9

    Tipo

    3:

    Existe

    una

    instruccin

    INT que

    ocupa

    un

    slo

    byte,que

    es

    la

    correspondiente

    a

    este

    tipo

    .

    En

    los

    programasdepuradores

    (debuggers) (tales

    como

    Debug

    ,

    CodeView

    ,

    Turbo Debugger

    , etc.), se

    utiliza

    esta

    instruccin

    como

    puntode

    parada

    (para

    ejecutar

    un

    programa

    hasta

    una

    determinadadireccin

    ,

    fijada

    por

    el

    usuario

    del

    depurador

    , se

    inserta

    estainstruccin

    en

    la

    direccin orrespondiente

    a la

    parada

    y selanza

    la

    ejecucin

    .

    Cuando

    el CS:IP

    apunte

    a

    esta

    direccin

    se

    ejecutar

    la INT 3, lo que

    devolver

    el control delprocesador

    al

    depurador

    ).

    Debido

    a

    esto

    ,

    si

    se le

    ordena

    aldepurador

    que

    ejecute

    el

    programa

    hasta

    una

    determinadadireccin

    en

    ROM (

    memoria

    de

    slo

    lectura

    ) (

    por

    ejemplo

    ,para

    ver

    cmo

    funciona

    una

    subrutina

    almacenada

    en

    dicha

    memoria

    ), la

    ejecucin

    seguir

    sin

    parar

    all

    (

    ya

    que lainstruccin

    INT 3 no se

    pudo

    escribir

    sobre

    el

    programa

    ).

    Enel 80386, con

    su

    elaborado

    hardware de

    ayuda

    para ladepuracin

    , se

    puede

    poner

    un

    punto

    de

    parada

    en

    ROM.

  • 7/25/2019 Interrupciones y Ciclo de DMA

    5/9

    Tipo

    4:

    Ocurre

    cuando

    se

    ejecuta

    la

    instruccin

    deinterrupcin

    condicional

    INTO y el flag OF (Overflow

    Flag) vale 1.

    Los

    tipos

    5 a 31 (1F

    en

    hexadecimal)

    estn

    reservadospara

    interrupciones

    internas

    (

    tambin

    llamados

    "

    excepciones

    ") de

    futuros

    microprocesadores

    .

    Prioridad

    entre

    diferentes

    fuentes

    deinterrupcin

    :

    1) Error de

    divisin

    , INT

    n

    (no

    enmascarable

    ), INTO.

    2) NMI (no

    enmascarable

    ).3) INTR (

    enmascarable

    mediante

    IF).

    4)

    Ejecucin

    paso

    a

    paso

    (

    enmascarable

    mediante

    TF).

  • 7/25/2019 Interrupciones y Ciclo de DMA

    6/9

    Ciclo de DMA

    El

    ciclo

    de

    DMA

    es

    un

    poco

    ms

    complicado

    ya

    que

    tanto

    la

    funcin

    delectura

    como

    de

    escritura

    son

    realizados

    en

    un

    mismo

    ciclo

    . El

    bus

    escontrolado

    por

    el

    controlador

    DMA

    y

    no

    por

    el

    8088

    Los

    ciclos

    de

    DMA

    no

    son

    iniciados

    ni

    por

    el

    8088

    ni

    por

    el

    controlador

    deDMA

    sino

    por

    una

    peticin

    de

    un

    adaptador

    de

    interfase

    .

    El

    bus

    del

    sistema

    posee

    tres

    seales

    :

    DRQ

    1

    ,

    DRQ

    2

    y

    DRQ

    3

    producidas

    porel

    controlador

    DMA

    . Un

    ciclo

    de

    DMA

    puede

    ser

    iniciado

    al

    poner

    en

    altocualquiera

    de

    estas

    seales

    . La

    primera

    indicacin

    en

    el

    sistema

    que

    unapeticin

    ha

    sido

    aceptada

    y

    que

    un

    ciclo

    de

    DMA

    ha

    iniciado

    es

    cuando

    la

    seal

    AEN

    del

    bus

    es

    activada

    .

    Luego

    de

    activarse

    la

    seal

    AEN,

    una

    de

    cuatro

    posibles

    seales

    (DACK

    0

    ,DACK

    1

    ,

    DACK

    2

    ,

    DACK

    3

    )

    es

    activada

    . Estas

    seales

    le

    indican

    al

    adaptadorde

    interfase

    que

    canal

    de

    DMA

    est

    siendo

    atendido

    .

  • 7/25/2019 Interrupciones y Ciclo de DMA

    7/9

  • 7/25/2019 Interrupciones y Ciclo de DMA

    8/9

    CuandoelcontroladorDMAnoestejecutandounciclodeDMA,seencuentraenloseconocecomounestadodenoactividad,ejecutandocontinuamente ciclos S0mientrasesperaporpeticionesdeDMA.

    Cuandounapeticinesdetectada,elcontroladorenvaunasealal8088queledicequedejeelcontroldelbusal siguiente tiempo conveniente. El controlador espuestoenelestado S0el cualbuscacontinuamenteunarespuestadel8088queledigaqueelbuseslibreyquepuedeserutilizadoparainiciarelcicloDMA. EstasealseconocecomoALDAyalrecibirlaelcontroladorDMAentraenunestadoS1marcandoeliniciodelcicloDMA.

  • 7/25/2019 Interrupciones y Ciclo de DMA

    9/9