Calcolatori elettronici II Calcolatori elettronici II CALCOLATORI ELETTRONICI II Esempio Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio Esempio Connessioni Verrà descritto il modo in cui all’interno di un PC è connesso lo speaker, e come il suo funzionamento possa essere programmato via software Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II 8255 Porta B PB1 PB0 8253 I dispositivi per il conteggio Counter #2 I dispositivi per il conteggio CLK2 OUT2 Indirizzi 1,331 Mhz GATE2 8255 60h ÷ 63h 8253 40h ÷ 43h Speaker Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 1 Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio Codice Viene proposto il codice della procedura beep, che riceve in DI la frequenza in Hz, ed in BX la durata in centesimi di secondo del suono desiderato I dispositivi per il conteggio PB_8255 EQU 61h;porta B dell'8255 C2_8253 EQU 42h;cont.2 dell'8253 CW_8253 EQU 43h;Control Word dell'8253 .CODE BEEP PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,0B6h;contatore2,2byte, ;modo 3, ;conteggio binario Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio I dispositivi per il conteggio 144F38h = 1331000 (frequenza del clock) OUT MOV MOV DIV CW_8253, AL DX, 14h AX, 4F38H DI l1: l2: OUT MOV OUT IN MOV OR OUT MOV LOOP DEC JNZ C2_8253, AL ;frequenza (LSB) AL, AH C2_8253, AL ;frequenza (MSB) AL, PB_8255 AH, AL AL, 03h PB_8255, AL ;abilita beeper CX, 2801 l2 BX l1 Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio I dispositivi per il conteggio Durata del ciclo BEEP MOV AL,AH OUT PB_8255,AL ;disabilita beeper POP DX POP CX POP BX POP AX RET ENDP lab: MOV CX, n LOOP LAB Quanto deve valere n affinché il ciclo duri 10 msec? Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 2 Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio I dispositivi per il conteggio Soluzione Dai manuali si può dedurre Î La durata di LOOP Soluzione Dai manuali si può dedurre Î La durata di MOV Æ 17 colpi di clock se ripete Æ 4 colpi di clock Æ 5 colpi di clock se non ripete Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio I dispositivi per il conteggio Soluzione Deve quindi essere [17(n-1)+5+4]T = 0,01 sec T è il periodo di clock del processore Se il clock ha frequenza 5 Mhz, si ha n = 2801 Programma principale ;Suona una scala che va da 500 a 2000 Hz. ;Ogni nota dura 150 msec. .STARTUP MOV DI, 500 MOV BX, 15 again: CALL BEEP ADD DI, 20 CMP DI, 2000 JB again .EXIT END Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I dispositivi per il conteggio Note musicali Frequenza delle note nell’ottava centrale del pianoforte Hz 293,7 349,2 440,0 261,7 329,6 392,0 493,9 IL MECCANISMO DELLE INTERRUZIONI SI MI FA DO RE SOL LA Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 3 Calcolatori elettronici II Calcolatori elettronici II Argomenti della lezione Î Introduzione Î Le interruzioni nei sistemi Intel Introduzione Î Il dispositivo Intel 8259 Î Altri tipi di interruzioni Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Gestione dell’I/O Gestione dell’I/O Tutti i sistemi a microprocessore eseguono operazioni di Input/Output Vi sono due modi per attuare la sincronizzazione: Î polling Per questo devono sincronizzarsi con i dispositivi periferici esterni Î interrupt Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Polling Esempio ... La gestione del polling viene fatta attraverso un ciclo software di lettura dello stato dei dispositivi di I/O: il processore legge periodicamente il registro di stato del dispositivo Se il dispositivo interrogato richiede servizio viene servito MOV DX, prSTAT pr_n_ready:IN AL, DX; legge lo stato ;della stampante TEST AL, sERR JZ pr_error; errore TEST AL, sBUSY JZ pr_n_ready; busy ... Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 4 Calcolatori elettronici II Calcolatori elettronici II Vantaggi Svantaggi Il meccanismo è semplice da realizzare La maggior parte del tempo è impiegata dal programma principale nell’esecuzione del ciclo di polling Non richiede risorse hardware particolari Un dispositivo deve attendere che il processore interroghi il suo registro di stato prima di essere servito (elevata latenza) Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Interrupt Il processore non interroga i dispositivi di I/O Quando un dispositivo ha necessità di essere servito attiva una richiesta di interruzione (o interrupt) Interrupt Al termine dell’esecuzione dell’istruzione corrente, il processore riconosce la richiesta di interruzione ed eventualmente la serve Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Procedure di servizio dell’interruzione Quando il processore decide di servire una richiesta di interruzione Î Interrompe il programma in corso di esecuzione Procedure di servizio dell’interruzione Î Attiva un’apposita procedura, dipendente dal dispositivo che ha fatto la richiesta, denominata procedura di servizio dell’interruzione Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 5 Calcolatori elettronici II Calcolatori elettronici II Procedure di servizio dell’interruzione Î Al termine della procedura, ritorna al programma interrotto Controllore delle interruzioni Spesso il sistema include un circuito apposito, denominato controllore delle interruzioni che gestisce le richieste di interruzione Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Controllore delle interruzioni Problemi µP bus MEM Controllore delle interruzioni I/O I/O I/O Come fa il processore, una volta ricevuta una richiesta di interruzione, a sapere quale dispositivo l’ha prodotta? Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Problemi Una volta individuato il dispositivo, come fa il processore a sapere quale procedura di servizio deve essere attivata? Identificazione del dispositivo Normalmente l’identificazione del dispositivo avviene grazie ad un ciclo di bus apposito Attraverso tale ciclo il processore acquisisce dal controllore delle interruzioni un codice che identifica il dispositivo che ha fatto richiesta Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 6 Calcolatori elettronici II Calcolatori elettronici II Attivazione della procedura di servizio IVR Î Risiede nella memoria principale L’identificazione della procedura da attivare avviene normalmente attraverso una tabella, denominata Interrupt Vector Table o IVR Î Associa a ciascun codice di interruzione l’indirizzo della corrispondente procedura di servizio Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Protocollo di interruzione Un dispositivo richiede servizio attraverso una richiesta di interruzione µP bus Controllore delle interruzioni MEM Protocollo di interruzione Il controllore delle interruzioni inoltra la richiesta al processore 2 I/O I/O I/O MEM µP bus Controllore delle interruzioni Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I/O I/O I/O Protocollo di interruzione Protocollo di interruzione µP µP bus MEM Al termine dell’istruzione corrente il processore: I/O I/O Controllore Æ rileva la richiesta delle interruzioni I/O bus Al termine dell’istruzione corrente il processore: I/O I/O I/O Controllore il programma Æ interrompe delle MEM interruzioni in corso di esecuzione Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 7 Calcolatori elettronici II Al termine Protocollo dell’istruzione corrente il processore: Æ chiede al controllore il codice del dispositivo 3 MEM Calcolatori elettronici II di interruzione Protocollo di interruzione Il controllore µP µP bus Controllore delle interruzioni I/O I/O I/O Controllore delle interruzioni MEM Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II delle interruzioni invia al processore il codice del dispositivo busche ha fatto la richiesta I/O I/O I/O Protocollo di interruzione Protocollo di interruzione µP µP bus bus Il processore accede in I/OIVR I/O I/O memoria alla e legge MEM Controllore l’indirizzo della procedura di delle servizio dell’interruzione interruzioni MEM Il processore attiva la I/O I/O procedura di servizio e Controllore processa la richiesta delle attivata dal dispositivo interruzioni Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II I/O Protocollo di interruzione µP bus MEM Terminata la procedura di servizio il processore I/O I/O I/O torna all’esecuzione del Controllore programma interrotto delle Le interruzioni nei sistemi Intel interruzioni Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 8 Calcolatori elettronici II Calcolatori elettronici II Segnali INTR e INTA Segnali INTR e INTA Nei sistemi Intel il processore dispone di due segnali INTR ed INTA destinati alla gestione delle interruzioni INTR viene portato alto per segnalare al processore che un dispositivo ha fatto richiesta di interruzione Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Segnali INTR e INTA Codice del dispositivo È composto da 8 bit Il processore attiva INTA per segnalare che ha percepito la richiesta e per richiedere il codice del dispositivo Il processore è quindi in grado di Î distinguere tra 256 possibili richieste di interruzione Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Codice del dispositivo È composto da 8 bit Il processore è quindi in grado di Î attivare 256 diverse procedure di servizio dell’interruzione Interrupt Vector Table Contiene i puntatori alle procedure di servizio di ciascuno dei 256 tipi di interruzione Si trova in memoria agli indirizzi da 00000H a 003FEH Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 9 Calcolatori elettronici II Calcolatori elettronici II Interrupt Vector Table Ogni elemento della tabella contiene 4 byte, corrispondenti all’indirizzo della procedura CS + IP Abilitazione/disabilitazione delle interruzioni Il flag IF permette di abilitare/disabilitare le richieste di interruzione Î Può essere modificato via software attraverso le istruzioni CLI e STI Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Abilitazione/disabilitazione delle interruzioni Il flag IF permette di abilitare/disabilitare le richieste di interruzione Î Viene automaticamente posto a 0 all'attivazione di una procedura di servizio delle interruzioni Protocollo di interruzione 1 Un dispositivo esterno invia una richiesta di interruzione sul pin INTR 2 Durante l'ultimo periodo di clock di un’istruzione il processore rileva la presenza di un valore 1 su INTR Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II Calcolatori elettronici II Protocollo di interruzione Protocollo di interruzione 3 5 Il processore invia un impulso su INTA per segnalare che la richiesta è stata rilevata Il processore legge dal data bus il codice n del dispositivo che ha richiesto l’interruzione (1 byte) 4 6 Il processore invia un secondo impulso su INTA per chiedere di leggere sul data bus il codice del dispositivo Il processore salva nello stack il valore del registro dei flag (PSW) e l'indirizzo di ritorno (registri CS e IP) Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino 10 Calcolatori elettronici II Calcolatori elettronici II Protocollo di interruzione Protocollo di interruzione 7 9 Il processore azzera il flag IF per disabilitare ulteriori richieste di interruzione Viene attivata la corrispondente procedura di interruzione 8 Il processore accede all’elemento n-esimo nella Interrupt Vector Table 10 Al termine della procedura il processore ripristina dallo stack il registro dei flag e l’indirizzo di ritorno, tornando ad eseguire il programma interrotto Prof. Matteo Sonza Reorda Prof. Matteo Sonza Reorda Politecnico di Torino Politecnico di Torino Calcolatori elettronici II CALCOLATORI ELETTRONICI II Prof. Matteo Sonza Reorda Politecnico di Torino 11