Arquitectura-De Computadoras

  • View
    4

  • Download
    0

Embed Size (px)

DESCRIPTION

Arquitectura-De Computadoras 2015 UNLP

Text of Arquitectura-De Computadoras

  • InterrupcionesExplicacin 2

  • Cmo trabajan?

    Rutina de atencin

    Programa en ejecucin

    1. IntPSW2. apilarPILAIP3. salto4. Se maneja la interrupcin5. desapilar

  • Implementacin

    El procesador tiene una nica entrada de pedido de interrupciones.

    Si tenemos varios productores de interrupciones

    Cmo lo solucionamos?

  • Interrupciones vectorizadas El dispositivo que quiere interrumpir adems de la seal de pedido de interrupcin, debe colocar en el bus de datos un identificador (tipo).

  • Vector de interrupcionesINT 0INT 1INT 2INT 255TIPODireccin de la rutina de atencin a la interrupcin 21k = 1024 Bytes

    0000HDIR 0_00001HDIR 0_10002HDIR 0_20003HDIR 0_30004HDIR 1_00005HDIR 1_10006HDIR 1_20007HDIR 1_30008HDIR 2_00009HDIR 2_1000AHDIR 2_2000BHDIR 2_3000CHDIR 3_0000DHDIR 3_10400H

  • Interrupciones vectorizadas IIVector de interrupciones : Nexo entre tipo de interrupcin (0...255) y el procedimiento designado para atenderla.Cada entrada es una doble palabra (4 bytes) y corresponde a la direccin del procedimiento que brinda el servicio.

    Ej: 0000yyyy, donde yyyy es la direccin lgica/fsica.

  • Cmo trabajan?

    Vector de interrupciones

    Programa en ejecucin

    1. Int xPSW2. apilarPILAIP 4. salto5. Se maneja la interrupcin6. desapilar

    Rutina de atencin

    3. Accede al vector de acuerdo al identificador x[ X * 4 ]

  • Interrupciones por softwareTipos preasignados INT 0 (HLT)

    INT 3 (debug)

    INT 6 (leer caracter)BX tiene la direccin donde se almacena el carcter

    INT 7 (imprimir un string)BX tiene la dir donde comienza el stringAL cantidad de caracteres a imprimir

  • Ej 1Escritura de datos en la pantalla de comandos.Implementar un programa en el lenguaje assembler del simulador MSX88 que muestre en la pantalla de comandos un mensaje previamente almacenado en memoria de datos, aplicando la interrupcin por software INT 7.

    ORG 1000HMSJ DB "ARQUITECTURA DE COMPUTADORAS-" DB "FACULTAD DE INFORMATICA-" DB 55H DB 4EH DB 4CH DB 50HFIN DB ?

    ORG 2000HMOV BX, OFFSET MSJMOV AL, OFFSET FIN-OFFSET MSJINT 7INT 0ENDBXAX10 00H00 37HARQUITECTURA DE COMPUTADORAS FACULTAD DE INFORMATICA UNLP

  • Ej 4Lectura de datos desde el teclado.Escribir un programa que solicite el ingreso de un nmero (de un dgito) por teclado e inmediatamente lo muestre en la pantalla de comandos, haciendo uso de las interrupciones por software INT 6 e INT 7.

    ORG 1000HMSJ DB "INGRESE UN NUMERO:"FIN DB ?ORG 1500HNUM DB ?ORG 2000HMOV BX, OFFSET MSJMOV AL, OFFSET FIN-OFFSET MSJINT 7MOV BX, OFFSET NUMINT 6MOV AL, 1INT 7MOV CL, NUMINT 0ENDBXAX10 00H00 11HINGRESE UN NUMERO:1500H?1500NUM34H014CX34H4

  • Interrupciones por hardwareSon las generadas por dispositivos de E/S. Son las verdaderas interrupciones.

    No estn relacionadas con el proceso en ejecucin en ese momento.

    Son conocidas como interrupt request.

    El sistema de cmputo debe ser capaz de manejar estos eventos externos no planeados asincrnicos.

  • PIC Dispositivo controlador de interrupcionesPerifrico encargado de administrar los pedidos de interrupcin procedentes de los dems perifricos.

  • PIC Dispositivo controlador de interrupciones

  • PIC - Registros internosEOI: para comandosPara fin de int escribir 20HIMR: mscara de intenmascara con 1IRR: peticin de intIndica con bit en 1ISR: int en servicioIndica con bit en 1INT0...INT7c/u con su tipo PICMemoria de E/SSon accedidos con operaciones lectura y escritura en el espacio de E/S (IN y OUT).

    EOI20HIMR21HIRR22HISR23HINT024HINT125HINT226HINT327H

  • PIC

    Las lneas del PIC estn asignadas por defecto a algunos perifricos

    PICTecla F10TimerHandshakeDMA

    EOI20HIMR21HIRR22HISR23HINT024HINT125HINT226HINT327H

  • Cmo trabajan?

    Vector de interrupciones

    Programa en ejecucin

    1. Int xPSW2. apilarPILAIP 4. salto5. Se maneja la interrupcin6. desapilar

    Rutina de atencin

    3. Accede al vector de acuerdo al identificador x[ X * 4 ]

  • Vector de interrupcionesINT 0INT 1INT 2INT 255TIPODireccin de la rutina de atencin a la interrupcin 21k = 1024 Bytes

    0000HDIR 0_00001HDIR 0_10002HDIR 0_20003HDIR 0_30004HDIR 1_00005HDIR 1_10006HDIR 1_20007HDIR 1_30008HDIR 2_00009HDIR 2_1000AHDIR 2_2000BHDIR 2_3000CHDIR 3_0000DHDIR 3_10400H

  • PICVectorORG 3000HSUBRUTINA: INC DX IRET

    383900400341004200434445

  • Ej 10

    Interrupcin por hardware: Tecla F10

    Escribir un programa que, mientras ejecuta un lazo infinito, cuente el nmero de veces que se presiona la tecla F10 y acumule este valor en el registro DX.

  • Ej 10PIC EQU 20HEOI EQU 20HN_F10 EQU 10

    ORG 40IP_F10 DW RUT_F10

    ORG 2000HCLIMOV AL, 0FEHOUT PIC+1, AL ; PIC: registro IMRMOV AL, N_F10OUT PIC+4, AL ; PIC: registro INT0MOV DX, 0STILAZO: JMP LAZO

    ORG 3000HRUT_F10: PUSH AXINC DXMOV AL, EOIOUT EOI, AL ; PIC: registro EOIPOP AXIRETENDVectorRegistro de estado0AX0FEHPIC0FEH = 111111101010DX01120H20H10Tipo int elegido : 10 => 10*4 = 40

    383900400341004200434445

    IZSOCAP

    EOI20HIMR21HIRR22HISR23HINT024HINT125HINT226HINT327H

  • TIMER (temporizador)Posee dos registros de 8 bits.COMP: registro de comparacin que determina el mdulo de la cuenta del timer.CONT: registro contador, muestra la cuenta de los pulsos de la seal aplicada a la entrada del perifrico. Cuando coincide su valor con el del registro COMP provoca una seal de salida.Direcciones de registros: 10H y 11H

    Entrada int1

  • TIMERTIMER

    CONT10HCOMP11H

  • Ej 12Interrupcin por hardware: TIMER.

    Implementar a travs de un programa un reloj segundero que muestre en pantalla los segundos transcurridos (00-59 seg) desde el inicio de la ejecucin.

  • Ej12TIMER EQU 10HPIC EQU 20HEOI EQU 20HN_CLK EQU 10

    ORG 40IP_CLK DW RUT_CLK

    ORG 1000HSEG DB30HDB 30HFIN DB ?ORG 3000HRUT_CLK: PUSH AXINC SEG+1CMP SEG+1, 3AHJNZ RESETMOV SEG+1, 30HINC SEGCMP SEG, 36HJNZ RESETMOV SEG, 30HRESET: INT 7MOV AL, 0OUT TIMER, ALMOV AL, EOIOUT PIC, ALPOP AXIRETORG 2000HCLIMOV AL, 0FDH; PIC: registro IMROUT PIC+1, AL MOV AL, N_CLK; PIC: registro INT1OUT PIC+5, ALMOV AL, 1; TIMER: registro COMPOUT TIMER+1, ALMOV AL, 0; TIMER: registro CONTOUT TIMER, ALMOV BX, OFFSET SEGMOV AL, OFFSET FIN-OFFSET SEGSTILAZO: JMP LAZOENDPICVectorRegistro de estado01AX0FDH0FDH = 1111110110101TIMER100BX10 00 H2131H01020H20H232H02020H39H3AH30H31H10

    EOI20HIMR21HIRR22HISR23HINT024HINT125HINT226HINT327H

    3940004103420043004445

    1000H30H1001H30H1002H?1003H1004H1005H

    IZSOCAP

    CONT10HCOMP11H