Sottosistema di Ingresso/Uscita (I/O)



Documenti analoghi
Gestione dell I/O. Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Architettura di un sistema di calcolo

Il sistema di Input/Output

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

DMA Accesso Diretto alla Memoria

CPU. Maurizio Palesi

Informatica - A.A. 2010/11

Architettura di un calcolatore: introduzione

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura di un calcolatore

STRUTTURE DEI SISTEMI DI CALCOLO

MANUALE EDICOLA 04.05

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

HARDWARE. Relazione di Informatica

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Esame di INFORMATICA

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo

Struttura del calcolatore

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Appunti di Sistemi e Automazione

Ing. Paolo Domenici PREFAZIONE

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

L architettura del calcolatore (Terza parte)

Architettura del Personal Computer AUGUSTO GROSSI

ARCHITETTURA DEL CALCOLATORE

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Architettura del calcolatore

La memoria centrale (RAM)

Architettura hardware

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

LABORATORIO DI SISTEMI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

Concetti fondamentali della Tecnologia Dell informazione Parte prima

Architettura hardware

Manuale d uso per la raccolta: Monitoraggio del servizio di Maggior Tutela

Registratori di Cassa

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

C. P. U. MEMORIA CENTRALE

Software di base. Corso di Fondamenti di Informatica

Il Processore: i registri

Architettura di un computer

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Il Sistema Operativo (1)

Architettura dei computer

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il Sistema Operativo

Il sottosistema di I/O. Input Output digitale

Laboratorio di Informatica

PD32. Esercitazione sull interfacciamento con un dispositivo di IO

Dispensa di Informatica I.1

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Sistemi operativi. Esempi di sistemi operativi

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Informazione analogica e digitale

CAP. 4: Aspetti generali del Sistema Operativo Linux. l

1.4b: Hardware. (Memoria Centrale)

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

Corso di Sistemi di Elaborazione delle informazioni

Laboratorio di Informatica

ASSEMBLER 68K parte 1

Guida all installazione degli Hard Disk SATA ed alla configurazione del RAID

Informatica 1 Lezione 1

ARCHITETTURA DELL ELABORATORE

Test di informatica QUALE TRA I DISPOSITIVI DI MEMORIA ELENCATI HA LA CAPACITÀ PIÙ ELEVATA? a) Floppy disk b) Cd-Rom c) DVD Risposta corretta:

ancora l architettura elementare di un sistema di elaborazione:

Il Software. Il software del PC. Il BIOS

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Parte II.2 Elaboratore

L architettura di riferimento

MODULO Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale

TEST: Word & Excel Tutti i diritti riservati. Computer Facile -

Unità Periferiche. Rete Di Controllo

Tecniche di traduzione da C ad assembly Note generali

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

IRSplit. Istruzioni d uso 07/10-01 PC

Sistema operativo: Gestione della memoria

Transcript:

Corso di Calcolatori Elettronici I A.A. 2013-2014 Sottosistema di Ingresso/Uscita (I/O) ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica allievi J-Z

Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria

Sottosistema di I/O Esempi di componenti di I/O tastiera monitor dispositivi di puntamento periferiche USB disco rigido (memoria di massa) timer gestore delle interruzioni etc etc

Sottosistema di I/O Periferiche (peripherals) di Ingresso/Uscita, o Input/Output (I/O) praticamente tutti i componenti esterni all interazione diretta processore-memoria Esempi: tastiera, monitor, dispositivi di puntamento, periferiche USB, disco rigido (memoria di massa), timer, gestore delle interruzioni, Controllore del Direct Memory Address (DMA), etc etc

Interfacciamento con l I/O Due approcci per l interfacciamento tra processore e dispositivi di I/O I/O mapped I/O il processore dispone di un interfaccia indirizzo/dato separato per l I/O (es. Intel x86) i dispositivi sono in uno spazio di indirizzamento separato e sono presenti istruzioni apposite memory-mapped I/O i dispositivi sono attivati da alcuni specifici indirizzi, per il processore, gli accessi ai dispositivi di I/O sono visti come operazioni in memoria (es. M68000)

I/O-mapped I/O I/O_A I/O_B PC read write R 0 MA R 1 R 2 R 3 IR MB O 1 O 2 op C V ALU U SR Processore read write memoria il processore dispone di un interfaccia indirizzo/dato separato per l I/O (es. Intel x86) Ad ogni dispositivo è associato un indirizzo,in uno spazio di indirizzamento diverso da quello della memoria Sono presenti istruzioni apposite che il processore può eseguire per accedere alle periferiche

memory-mapped I/O R 0 PC MA MA R 1 R 2 R 3 IR MB read memoria MB O 1 O 2 write op ALU C V SR U Processore Accedendo ad alcuni particolari indirizzi di memoria mediante delle normali operazioni di trasferimento, il processore in realtà accede ai registri delle periferiche. Non servono istruzioni specifiche per l I/O

Interfaccia della periferica Tipicamente, l interfaccia di qualsiasi dispositivo è composta da registri locazioni, simili a quelle in memoria, da cui è possibile leggere o su cui è possibile scrivere Tre tipi di registri registri di controllo e stato registri indirizzo read registri dato write Dispositivo di I/O Controllo Indirizzo Dato

Interfaccia della periferica Registri Controllo/Stato Controllo: scritti dal processore, determinano mediante opportune codifiche (diverse da periferica a periferica) cosa il dispositivo deve fare Stato: scritti dalla periferica e letti dal processore, danno la possibilità al dispositivo di informare il processore circa l esito delle operazioni effettuate

Interfaccia della periferica Registri Indirizzo e Dato hanno lo stesso significato di quelli usati per la memoria, ma fanno riferimento ad un insieme (tipicamente ridotto) di locazioni fisicamente presenti nella periferica

Esempio: terminale File: programma024.a68 Terminale rappresenta un dispositivo combinato Monitor/Tastiera (cosiddetta console) CNTRL Data Buffer

Esempio: terminale Terminale: Interfaccia un indirizzo combinato di Controllo/Stato (CNTRL) un registro dati (DATA) su cui scrivere i dati che andranno su schermo o leggere quelli scritti da tastiera contiene un buffer interno per contenere i dati immessi da tastiera prima che vengano trasferiti File: programma024.a68 CNTRL DATA Buffer Dispositivo Terminale

Esempio: terminale File: programma024.a68 CNTRL (registro di controllo e stato): Bit 0: Abilita interruzione su BUFFER FULL Bit 1: Abilita interruzione su ENTER Bit 2: Cancella video Bit 3: Pulisce buffer tastiera Bit 4: Abilita tastiera Bit 5: Abilita eco Bit 6: Stato di BUFFER FULL Bit 7: Stato di ENTER inviato CNTRL DATA Buffer Dispositivo Terminale

Esempio: terminale File: programma024.a68 CNTRL (registro di controllo e stato): Bit 0: Abilita interruzione su BUFFER FULL Bit 1: Abilita interruzione su ENTER Bit 2: Cancella video Bit 3: Pulisce buffer tastiera Bit 4: Abilita tastiera Bit 5: Abilita eco Bit 6: Stato di BUFFER FULL Bit 7: Stato di ENTER inviato I Bit da 0 a 5 sono bit di controllo (determinano un'azione o una configurazione della periferica) I Bit 6 e 7 sono bit di stato (indicano al processore cosa sta succedendo nella periferica)

Esempio: terminale File: programma024.a68 CNTRL (registro di controllo e stato): Bit 0: Abilita interruzione su BUFFER FULL Bit 1: Abilita interruzione su ENTER Bit 2: Cancella video Bit 3: Pulisce buffer tastiera Bit 4: Abilita tastiera Bit 5: Abilita eco Bit 6: Stato di BUFFER FULL Bit 7: Stato di ENTER inviato CNTRL DATA Ad esempio, per chiedere al terminale di cancellare il contenuto del video, dobbiamo scrivere il valore 1 nel bit 2 del registro CNTRL Se ad esempio CNTRL è mappato all indirizzo $2001 dobbiamo eseguire l istruzione OR.B #4,$2001

Esempio: terminale File: programma024.a68 Richiede un file di configurazione in ASIM che comprenda anche la periferica Terminale File Terminal.cfg La configurazione descrive un sistema che comprende, oltre alla parte base processore+memoria, anche una periferica memory-mapped Sono indicati gli indirizzi cui sono mappati i due registri della periferica

Esempio: terminale MEM ORG $8000 ORG $8200 TER EQU $2000 EOS EQU 0 ENTER EQU 13 ENTERHIT EQU $80 10000000 TTYCFG EQU $30 00110000 QUEST DC.B 'Come ti chiami? ',0 ANSW DC.B 'Ciao, ',0 BEGIN MOVEA.L #TER,A2 MOVEA.L A2,A0 ADD.L #1,A2 MOVE.B #TTYCFG,(A2) LEA.L QUEST,A1 OUTPUT MOVE.B (A1)+,D0 CMP.B EOS,D0 BEQ CONT MOVE.B D0,(A0) BRA OUTPUT CONT MOVE.B (A2),D1 AND.B #ENTERHIT,D1 BEQ CONT File: programma024.a68 MOVEA.L #MEM,A1 IN1 MOVE.B (A0),D0 MOVE.B D0,(A1)+ CMP.B #ENTER,D0 BNE IN1 LEA.L ANSW,A1 OUT1 MOVE.B (A1)+,D0 CMP.B #EOS,D0 BEQ CONT1 MOVE.B D0,(A0) BCC OUT1 CONT1 MOVEA.L #MEM,A1 OUT2 MOVE.B (A1)+,D0 MOVE.B D0,(A0) CMP.B #ENTER,D0 BNE OUT2 FINE BRA FINE END BEGIN

Esempio: terminale MEM ORG $8000 ORG $8200 TER EQU $2000 EOS EQU 0 ENTER EQU 13 ENTERHIT EQU $80 10000000 TTYCFG EQU $30 00110000 QUEST DC.B 'Come ti chiami? ',0 ANSW DC.B 'Ciao, ',0 BEGIN MOVEA.L #TER,A2 MOVEA.L A2,A0 ADD.L #1,A2 MOVE.B #TTYCFG,(A2) LEA.L QUEST,A1 OUTPUT MOVE.B (A1)+,D0 CMP.B EOS,D0 BEQ CONT MOVE.B D0,(A0) BRA OUTPUT CONT MOVE.B (A2),D1 AND.B #ENTERHIT,D1 BEQ CONT wd File: programma024.a68 Riserva 512 locazioni (200 esadecimale) vuote Indirizzo del registro DATA del terminale ($2000) Maschera che individua il bit di CNTRL usato per rilevare quando è stato premuto il tasto ENTER Costante che sarà scritta in CNTRL per configurare inizialmente il terminale Inizializza A0 con l'indirizzo del registro DATA ( $2000 ) Inizializza A2 con l'indirizzo del registro CNTRL Scrive 00110000 nel registro di controllo: Abilita tastiera ed eco Carica in A1 l'indirizzo di partenza della frase da visualizzare Visualizza i caratteri scrivendo nel registro DATA (indirizzo $2000) fino a quando non incontra il carattere terminatore 0 (End of String, EOS) Verifica ripetutamente il registro di controllo CNTRL (indirizzo $2001) fino a quando viene premuto ENTER

Esempio: terminale File: programma024.a68 Inizializza A1 con l'indirizzo di partenza dell'area di memoria precedentemente riservata Copia i caratteri dal registro DATA del terminale all'area di memoria Interrompe quando viene trovato il carattere ENTER nei dati Inizializza A1 con l'indirizzo della stringa di risposta da visualizzare Visualizza i caratteri fino a quando incontra il carattere terminatore 0 (End of String, EOS) Inizializza A1 con l'indirizzo di partenza dell'area di memoria che contiene i caratteri precedentemente letti dal terminale Visualizza i caratteri fino a quando viene trovato il carattere ENTER (carattere ASCII di codice 13) MOVEA.L #MEM,A1 IN1 MOVE.B (A0),D0 MOVE.B D0,(A1)+ CMP.B #ENTER,D0 BNE IN1 LEA.L ANSW,A1 OUT1 MOVE.B (A1)+,D0 CMP.B #EOS,D0 BEQ CONT1 MOVE.B D0,(A0) BRA OUT1 CONT1 MOVEA.L #MEM,A1 OUT2 MOVE.B (A1)+,D0 MOVE.B D0,(A0) CMP.B #ENTER,D0 BNE OUT2 FINE BRA FINE END BEGIN

Esempio: terminale File: programma024.a68 Programma in esecuzione (usare il file Terminal.cfg invece del file base.cfg per la simulazione!)

Osservazione: Esempio: terminale File: programma024.a68 i dati sono scritti uno dopo l altro sullo stesso indirizzo Il funzionamento del dispositivo garantisce che valori scritti successivamente sullo stesso indirizzo vengano trasferiti come dati distinti qui l indirizzo non corrisponde fisicamente ad una locazione di memoria!! Visualizza i caratteri fino a quando incontra il carattere terminatore 0 (End of String, EOS), scrivendoli tutti all indirizzo contenuto in A0 (che rimane costante nel ciclo e pari all indirizzo #TER, ovvero $2000. L indirizzo in realtà corrisponde al registro DATA del dispositivo terminale BEGIN MOVEA.L #TER,A2 MOVEA.L A2,A0...... OUT1 MOVE.B (A1)+,D0 CMP.B #EOS,D0 BEQ CONT1 MOVE.B D0,(A0) BRA OUT1......

Interazione CPU-periferica Osservazione il registro di controllo/stato CNTRL segnala il fatto che sia stato premuto il tasto ENTER, alzando il bit più significativo (che rappresenta un informazione di stato) per aspettare fino alla pressione del tasto, il programma principale contiene un ciclo che legge il registro CNTRL e itera (bloccandosi nel ciclo) quando il bit di stato è 0..... ENTERHIT EQU $80 10000000..... BEGIN MOVEA.L #TER,A2 MOVEA.L A2,A0 ADD.L #1,A2..... CONT MOVE.B (A2),D1 AND.B #ENTERHIT,D1 BEQ CONT Verifica ripetutamente il registro di controllo CNTRL fino a quando non viene premuto ENTER. Ciò viene segnalato dal fatto che il registro CNTRL, posto all indirizzo #TER+1, ha il bit più a sinistra pari ad 1

Interazione CPU-periferica Polling (o I/O controllato da programma ) tecnica per l interazione CPU-periferica in cui la CPU accede ripetutamente ai registri di stato fino a quando la periferica è pronta (come nell esempio precedente) impedisce alla CPU di fare altro durante l attesa! La CPU si blocca in quello che si chiama busy-waiting Alternativa: Interruzioni (interrupts) dette anche eccezioni (exceptions) il processore può eseguire altre istruzioni mentre la periferica lavora. Appena questa è pronta, il processore viene interrotto (tramite un opportuna infrastruttura circuitale fornita dal sistema), e passa ad eseguire la parte di programma che gestisce l interazione con la periferica