DMA (BUS MASTERING PCI) G. Frosini DMA Slide 1
|
|
- Geraldo Rota
- 6 anni fa
- Visualizzazioni
Transcript
1 DMA (BUS MASTERING PCI) G. Frosini DMA Slide 1
2 Accesso diretto alla memoria Tecniche di ingresso/uscita a controllo di programma e a interruzione di programma: il trasferimento di un dato tra una locazione di memoria e il registro dati di un'interfaccia richiede l'esecuzione di più istruzioni da parte del processore. Casi particolari: velocità di trasferimento superiore a quella di esecuzione delle istruzioni (trasferimento dati da/verso un disco magnetico od ottico); non opportuno occupare il processore con le istruzioni per il trasferimento tra memoria e interfaccia, in modo da utilizzarlo per altre elaborazioni. Utilizzo della tecnica di accesso diretto alla memoria (DMA: Direct Memory Access): i trasferimenti dati fra la memoria e un interfaccia avvengono senza l'intervento continuo del processore. G. Frosini DMA Slide 2
3 Bus Mastering Bus PCI: prevede una forma di DMA nota come Bus Mastering. Dispositivo collegato al bus PCI: può essere iniziatore di una transazione avente come obiettivo il ponte Ospite-PCI; tramite tale ponte, l iniziatore può accedere alla memoria centrale. Transazione sul bus PCI che specifica un indirizzo della memoria centrale (memoria collegata fisicamente al bus locale): il ponte Ospite-PCI: risponde divenendo l obiettivo alla transazione; si impossessa del bus locale sostituendosi al processore; comanda il trasferimento da o verso la memoria; completa la transazione PCI. Controllo del bus locale: viene gestito da un apposito arbitro, che concede l'utilizzo del bus a un richiedente alla volta (gestione in mutua esclusione). Entità che utilizzano il bus locale: ipotesi: solo il processore e il ponte Ospite-PCI; in questo caso l'arbitraggio del bus locale viene effettuato dal processore. G. Frosini DMA Slide 3
4 Colloquio fra processore e ponte Ospite-PCI (1) Processore: dotato di una coppia di piedini /HOLD e /HOLDA, mediante i quali riceve le richieste di utilizzo del bus locale e invia le risposte di accettazione. Ponte Ospite-PCI: dotato di due piedini omonimi /HOLD e /HOLDA, collegati a quelli del processore; avviene un colloquio per concordare chi dei due ha il controllo del bus: condizione iniziale: /HOLD e /HOLDA sono entrambi disattivi, e il processore ha il controllo del bus (i piedini di uscita del ponte verso il bus locale sono in alta impedenza); il ponte attiva il piedino /HOLD, chiedendo al processore l'utilizzo del bus locale; il processore, dopo aver completato l'eventuale ciclo di bus in corso, si disconnette dal bus locale (pone i piedini di uscita verso il bus locale in alta impedenza) e attiva il piedino /HOLDA; il ponte si impossessa del bus locale e, dopo averlo utilizzato, disattiva il piedino /HOLD (pone nuovamente i piedini di uscita verso il bus locale in alta impedenza); il processore chiude il colloquio con il ponte disattivando il piedino /HOLDA e assume nuovamente il controllo del bus locale. G. Frosini DMA Slide 4
5 Colloquio fra processore e ponte Ospite-PCI (2) Processore: privilegia le richieste esterne di utilizzo del bus rispetto alle proprie necessità interne; ciò per evitare la possibile perdita di dati quando le richieste provengono da una periferica con elevata velocità di trasferimento. Presenza del controllore della memoria cache: il controllore della memoria cache è quello che utilizza effettivamente il bus locale; esso possiede i piedini /HOLD e /HOLDA; le richieste di utilizzo del bus locale sono fatte dal ponte al controllore della memoria cache; il piedino di ingresso /HOLD del processore è collegato permanentemente all alimentazione (disattivo); il piedino di uscita /HOLDA del processore (disattivo) è lasciato scollegato. G. Frosini DMA Slide 5
6 Arbitraggi del bus PCI e del bus locale Bus Locale Processore Cache /HOLD /HOLDA Ponte Ospite-PCI Memoria Bus PCI /REQ Arbitro /REQ Iniziatore /GNT /GNT G. Frosini DMA Slide 6
7 Bus PCI a 32 bit Ipotesi precedente: bus PCI a 32 bit; in grado di gestire trasferimenti di parole lunghe (32 bit). Operazioni in DMA: avvengono utilizzando buffer di memoria che si trovano nei primi 4 Gbyte (indirizzi dei buffer con i 32 bit più significativi uguali a 0); richiedono descrittori di buffer di memoria che si trovano anch essi in memoria nei primi 4 Gbyte (indirizzi dei descrittori di buffer con i 32 bit più significativi uguali a 0). G. Frosini DMA Slide 7
8 Operazioni in Bus Mastering (1) Command register di una funzione (spazio di configurazione): bit n. 2: se posto ad 1 abilita la funzione a operare in bus mastering; bit n. 1 e bit n. 0: se posti a 1 abilitano la funzione, rispettivamente, a rispondere a transazioni nello spazio di memoria o di I/O. Trasferimento in Bus Mastering: può coinvolgere uno o più buffer di memoria; richiede che venga preparata in memoria una tabella dei descrittori di buffer. Descrittore di buffer: struttura dati con tre informazioni: indirizzo (multiplo di 4) del buffer nello spazio di memoria (primi 4 Gbyte)); numero di byte (valore multiplo di 4) della porzione di buffer da utilizzare (espressa con 16 bit); flag EOT (End Of Table) che indica se questo descrittore è l'ultimo (EOT vale 1) o meno (EOT vale 0) nella tabella dei descrittori di buffer Indirizzo del buffer 0 EOT Numero di byte G. Frosini DMA Slide 8
9 Operazioni in Bus Mastering (2) Funzioni con capacità di Bus Mastering: implementano tre registri di 32 bit, tipicamente nello spazio di I/O (blocco di 16 byte): un registro di comando BMCMD (Bus Mastering CoMmanD register), che specifica se il trasferimento richiesto è dalla funzione verso la memoria o viceversa; un registro di stato BMSTR (Bus Mastering StaTus Register), destinato a contenere informazioni sullo stato dell'ultimo trasferimento (per esempio, presenza di errori); un registro puntatore BMDTPR (Bus Mastering Descriptor Table Pointer Register), che contiene l indirizzo della tabella dei descrittori di buffer. Funzione Spazio di configurazione Memoria centrale Command register Base register Blocco (tipicamente di I/O) BMCMD BMSTR BMDTPR Indirizzo buffer EOT N. byte Buffer G. Frosini DMA Slide 9
10 Operazioni in Bus Mastering (3) Consideriamo un trasferimento dati dalla funzione verso la memoria: ipotesi semplificativa: la tabella dei descrittori di buffer contiene un unico descrittore (il flag EOT vale 1). Quando avviene una scrittura in BMCMD, la funzione (inizio operazione): preleva (tramite una transazione PCI con due fasi dati) il descrittore puntato da BMDTPR, costituito da due parole lunghe: indirizzo del buffer; numero di byte e Flag EOT; memorizza le quantità lette in registri interni, siano BUF, NUM ed EOT; esegue quindi ciclicamente i seguenti passi: 1. quando si rendono disponibili dei dati da trasferire, siano N (N è memorizzato in un registro interno ed è multiplo di 4), effettua una transazione PCI di scrittura in memoria (tramite il ponte Ospite-PCI), all'indirizzo specificato da BUF; 2. in ogni fase dati della transazione trasferisce 4 byte, decrementando N e NUM di 4 e incrementando BUF di 4 (per predisporre la fase di indirizzamento della eventuale transazione successiva); quando almeno uno tra N e NUM diventa 0, fa terminare la transazione PCI e passa al punto seguente; 3. se NUM è diverso da zero torna al punto 1), altrimenti (nel caso di un solo descrittore EOT vale 1) aggiorna il registro BMSTR e invia una richiesta di interruzione. G. Frosini DMA Slide 10
11 Operazioni in Bus Mastering (4) Routine che va in esecuzione per effetto di questa interruzione: legge il contenuto del registro BMSTR: questa operazione viene riconosciuta come risposta alla richiesta di interruzione effettuata dalla funzione. Obiettivo della transazione PCI eseguita al punto 1 (slide precedente): ponte Ospite-PCI; tale ponte, usando i piedini /HOLD e /HOLDA, assume il controllo del bus locale e quindi esegue una o più operazioni di scrittura in memoria. Tabella dei descrittori di buffer (in generale): contiene più di un descrittore; al punto 3) (slide precedente), nel caso in cui NUM valga 0 ma anche EOT valga 0 (ci sono altri descrittori di buffer), la funzione: incrementa BMDTPR di 8; preleva dalla memoria un nuovo descrittore di buffer, memorizzando nuovi valori in BUF, NUM e EOT; torna al punto 1) (slide precedente). G. Frosini DMA Slide 11
12 Dimensioni e allineamento del Buffer Dimensioni del buffer e numero di byte: in genere non coincidono; uno stesso buffer può venir utilizzato per operazioni diverse in bus mastering; la dimensione del buffer (DIM) è la massima delle varie quantità Numero di byte per le varie operazioni. Operazione in bus mastering (slide 9): 2. in ogni fase dati della transazione trasferisce 4 byte, decrementando N e NUM di 4 e incrementando BUF di 4; quando almeno uno tra N e NUM diventa 0, fa terminare la transazione PCI e passa al punto successivo. per le precedenti operazioni viene normalmente utilizzato un sommatore a 16 bit (NUM è rappresentato su 16 bit); occorre che: l incremento di BUF non dia luogo a un riporto del sommatore, e quindi che il buffer si trovi all interno di una porzione di memoria di 2**16 = 64K; se DIM è uguale a 64K, BUFF deve essere allineato a 64K; se DIM ha un valore sottomultiplo di 64K (per esempio, 4K), è sufficiente che il buffer sia allineato a quel valore (per esempio, 4K). G. Frosini DMA Slide 12
13 Esempio di trasferimento (1) Funzione che effettua trasferimenti in Bus Mastering (ipotesi): coordinate PCI: costanti BUS (vale 0), DEV, e FUN; collegata al piedino IRQ del controllore APIC; implementa un blocco, tipicamente di I/O, che contiene i registri specifici per il Bus Mastering, BMCMD, BMSTR e BMDTPR; indirizzo del blocco di I/O: contenuto nel registro base numero REGB: i registri BMCMD, BMSTR, BMDTPR sono allocati uno di seguito all altro, a incrementi di 4 byte. Operazioni preliminari: leggere il registro base numero REGB, per ottenere l indirizzo del blocco di I/O e calcolare gli indirizzi dei registri BMSTR, BMCMD, BMDTPR; abilitare transazioni nello spazio di I/O e funzionalità di Bus Mastering tramite il Command Register (16 bit, spazio di configurazione, offset 4). G. Frosini DMA Slide 13
14 Esempio di trasferimento (2) const natb BUS = 0; const natb DEV = ; const natb FUN = ; const natb REGB = ; ioaddr ibmcmd, ibmstr, ibmdtpr; void init_bm() { natl base; natw cmd; base = pci_read_confl(bus, DEV, FUN, 16+4*REGB); // registro base numero REGB, che indirizza un blocco di I/O base &= 0xFFFFFFFE; // bit n. 0 viene posto a 0 (valeva 1, blocco di I/0); bit n. 1 e 2 valgono già 0 (blocco di 16 byte) ibmcmd = base; ibmstr = base + 4; ibmdtpr = base + 8; cmd = pci_read_confw(bus, DEV, FUN, 4); // lettura del Command Register (spazio di configurazione, offset 4) pci_write_confw(bus, DEV, FUN, 4, cmd 0x0005); // abilitazione a rispondere a transazioni nello spazio di I/O (bit n. 0), // per leggere o scrivere nel blocco di I/O contenente i registri BMCMD, BMSTR,BMDTPR; // abilitazione della funzionalità di bus mastering (bit n. 2): } G. Frosini DMA Slide 14
15 Esempio di trasferimento (3) Programma: costituito dai quattro file rdma.cpp, rdma.s, mod_rdma.s e mod_rdma.cpp (quest ultimo contiene anche la precedente funzione init_bm()). // fle rdma.cpp #include <libce.h> extern natb buf_rdma[]; // definito in Assembler per l allineamento extern "C" void go_rdma(natb nn, natb vv[]); int main() { natl quanti = ; // max 2**16 //... go_rdma(quanti, buf_rdma); //... return 0; } G. Frosini DMA Slide 15
16 Esempio di trasferimento (4) # file rdma.s.data.align # allineamento a 2**16 = global _buf_rdma _buf_rdma:.space text.global _go_rdma _go_rdma: int $200 ret # file mod_rdma.s.text.extern _c_go_rdma.global _a_go_rdma # dichiarazione necessaria per la funzione ini() _a_go_rdma: call _c_go_rdma # routine int $200 iretq.extern _c_driver_rdma.global _a_driver_rdma # dichiarazione necessaria per la funzione ini() _a_driver_rdma: # salvataggio registri # piedino IRQ, tipo 100 call _c_driver_rdma movq $0, 0x FEE000B0 # invio di End Of Interrupt # ripristino registri iretq G. Frosini DMA Slide 16
17 Esempio di trasferimento (5) // file mode_rdma.cpp #include <libce.h> const natb BUS = 0; const natb DEV = ; const natb FUN = ; const natb REGB = ; ioaddr ibmcmd, ibmstr, ibmdtpr; void init_bm() {... } const natl sincr_rdma = ; const natl IRQ = ; natl prd[2]; extern C void a_go_rdma(); extern C void a_driver_rdma(); void ini() { init_bm(); gate_init(200, a_go_rdma); gate_init(100, a_driver_rdma); apic_set_vect(irq, 100); // piedino IRQ con tipo 100 apic_set_mirq(irq, false); // abilitazione piedino IRQ dello APIC } G. Frosini DMA Slide 17
18 Esempio di trasferimento (6) extern "C" void c_go_rdma(natl a, natl b, natl c, natl d, natl quanti, natb vv[]) { const natl LAV = ; natb work; prd[0] = reinterpret_cast<natl>(&vv[0]); // scrittura in prd prd[1] = 0x quanti; // EOT posto a 1 outputl(reinterpret_cast<natl>(&prd[0]), ibmdtpr); // scrittura in BMDTPR outputl(lav, ibmcmd); // verso del trasferimento (lettura da PCI-scrittura in memoria), avvio dell operazione sem_wait(sincr_rdma); } extern "C" void c_driver_rdma() { natl work; inputl(ibmstr, work); // risposta alla richiesta di interruzione // sem_signal(sincr_rdma); } G. Frosini DMA Slide 18
19 DMA con memoria cache (1) Memoria Cache funzionante in modo write through: trasferimento diretto verso la memoria centrale (con modifica dei dati contenuti nella memoria centrale stessa): le eventuali informazioni che risiedono anche nella memoria cache, devono essere aggiornate anche nella memoria cache stessa, o invalidate; trasferimento diretto dalla memoria centrale: non è necessaria alcuna azione. Soluzione diffusa: costruire il controllore della memoria cache in modo che sia esso stesso, in caso di operazione di scrittura, ad aggiornare la memoria cache stessa: il controllore, ogni volta che attiva il segnale /HOLDA, esamina anche il valore dell indirizzo presente sul bus indirizzi e il tipo di operazione (informazioni emesse del ponte Ospite-PCI); se l operazione è di scrittura (/MWR diviene attivo), il controllore (in caso di successo della memoria cache) comanda la scrittura in cache del dato presente sul bus dati (in tal modo aggiorna anche la memoria cache). G. Frosini DMA Slide 19
20 DMA con memoria cache (2) Controllore cache Tranceiver A31-A0 bus /BE3-/BE0 bus D31-D0 bus /OE T/R /MWR bus /HOLDA G. Frosini DMA Slide 20
21 DMA con memoria cache (3) Memoria Cache funzionante in modo write back: trasferimento diretto dalla memoria centrale (che potrebbe essere non aggiornata): gli eventuali dati che risiedono anche nella memoria cache, dovrebbero essere preventivamente invalidati (con aggiornamento della memoria centrale), oppure essere restituiti al posto di quelli contenuti nella memoria; Soluzione diffusa: prevedere collegamenti opportuni fra ponte Ospite-PCI e Controllore della memoria cache, in modo da effettuare le seguenti azioni: in caso di operazione di lettura, verificare se la memoria cache dà successo o fallimento:; nel primo caso, prelevare i dati dalla cache stessa e impedire che vengano prelevati dalla memoria centrale. G. Frosini DMA Slide 21
Bus PCI (1) Calcolatore che utilizza (parzialmente o totalmente) bus PCI:
BUS PCI Bus PCI (1) Collegamento con le periferiche: standard di comunicazione costituito dal bus PCI (Periferal Component Interconnect): per il processore x86-64 possono essere utilizzati bus PCI a 32
DettagliInput/Output (Cap. 7, Stallings)
Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli
Dettagli5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche
Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con
DettagliPrincipali periferiche
Principali periferiche Timer Periferica per il conteggio esatto del tempo Esempio: 8254 3 contatori "indietro" da 16 bit: si può impostare un valore iniziale fino a 0xFFFF in ciascuno dei tre contatori;
DettagliLA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
DettagliStruttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04
DettagliI seguenti luicidi sono tratti da: Paolo Corsini, Dalle porte AND OR NOT al sistema calcolatore, Edizioni ETS
I seguenti luicidi sono tratti da: Paolo Corsini, Dalle porte AND OR NOT al sistema calcolatore, Edizioni ETS Sommario Moduli di espansione di memoria Organizzazione dello spazio di I/O Interfacce parallele
DettagliCapitolo 2: Strutture dei sistemi di calcolo
Capitolo 2: Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Struttura delle reti di calcolatori
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere
DettagliISA Input / Output (I/O) Data register Controller
ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliEsercizi per il recupero del debito formativo:
ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliCorso di Calcolatori Elettronici I
Corso di Calcolatori Elettronici I Il sistema di Input-Output Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2014-2015 Roberto Canonico Corso di Calcolatori Elettronici I A.A. 2014-2015
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliArchitetture dei Calcolatori Interfacce
Architetture dei Calcolatori Interfacce Ingegneria dell Automazione A.A. 2011/12 Anna Lina Ruscelli Sommario Organizzazione dello spazio di I/O Interfacce parallele di ingresso/uscita senza handshake con
DettagliIntroduzione alle gerarchie di memoria
Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file
DettagliArchitettura dei Calcolatori Interfacce
Architettura dei Calcolatori Interfacce Ingegneria dell Automazione A.A. 2011/12 Anna Lina Ruscelli Sommario Organizzazione dello spazio di I/O Interfacce parallele di ingresso/uscita senza handshake con
DettagliSistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
Dettaglistatic dynamic random access memory
LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento
DettagliMEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:
MEMORIA VIRTUALE MEMORIA VIRTUALE Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l insieme degli indirizzi logici costituisce il cosiddetto spazio logico. Processore: utilizza
DettagliLivelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
DettagliIO 1 Input Output a livello Hardware
Architettura dei calcolatori e sistemi operativi Input Output IO 1 Input Output a livello Hardware Accesso delle periferiche Le unità periferiche interagiscono con il processore e la memoria centrale attraverso
DettagliPeriferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus
Periferiche Interface Interface Interface Interface CPU SREG CREG DREG Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data
DettagliMemoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliSistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware
DettagliMiglioramento delle prestazioni
Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi
DettagliIl Microprocessore. Modello di Von Neumann
Il Microprocessore Modello di Von Neumann Comunicazione tramite bus Le linee di comunicazione tra il microprocessore e i dispositivi di supporto sono denominate bus. Si chiama bus dati, o data bus, il
DettagliSottosistemi ed Architetture Memorie
Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di
DettagliCapitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)
Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio
DettagliArchitettura di un processore basato su registri generali.
Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato
DettagliMemoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliMEMORIA VIRTUALE. G. Frosini Memoria virtuale Slide 1
MEMORIA VIRTUALE G. Frosini Memoria virtuale Slide 1 MEMORIA VIRTUALE Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l insieme degli indirizzi logici costituisce il cosiddetto
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software
DettagliCAP9. Device drivers
Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici
DettagliLa gestione dell I/O (Cap. 5, Tanenbaum)
La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità
DettagliCalcolatori Elettronici: introduzione
Calcolatori Elettronici: introduzione G. Lettieri 3 Marzo 2017 1 Introduzione e richiami La Figura 1 mostra l architettura generale di un calcolatore. Nel corso approfondiremo ogni componente. I principali
DettagliSistemi di Elaborazione: esercizio con il D12
Sistemi di Elaborazione: esercizio con il D12 Un sistema basato su PIC18F8720 a 24 MHz è dotato di 32 KB di EPROM agli indirizzi alti e 64 KB di RAM statica agli indirizzi bassi. Il sistema è dotato inoltre
DettagliFallimenti nella TLB
Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente
DettagliIl sistema delle interruzioni nel processore MC68000 (cenni)
Corso di Calcolatori Elettronici I A.A. 2011-2012 Il sistema delle interruzioni nel processore MC68000 (cenni) Lezione 33 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria
DettagliUniversità degli Studi di Cassino
Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2004/2005 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione
DettagliI SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliInterazione con il DOS e il BIOS
Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H
DettagliModi di esecuzione user / kernel
Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione
DettagliOperazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU
Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia
DettagliIl linguaggio assembly
Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria
DettagliARCHITETTURA DI UN CALCOLATORE ELETTRONICO
ARCHITETTURA DI UN CALCOLATORE ELETTRONICO Per architettura di un calcolatore elettronico si intende l'insieme delle principali unità funzionali di un calcolatore ed il modo in cui queste interagiscono.
DettagliEsercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2
Esercizio FAT 1 In un disco con blocchi di 1 Kbyte (= 2 10 byte), è definito un file system FAT. Gli elementi della FAT sono in corrispondenza biunivoca con i blocchi fisici del disco. Ogni elemento ha
DettagliLezione 15. L elaboratore Elettronico
Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente
DettagliLa memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni
La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo
DettagliARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
DettagliIl problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano
Il problema dello I/O e gli Interrupt Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il Calcolatore e le periferiche Periferica Decodifica Indirizzi Circuiti di Controllo Registri
DettagliArchitettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
DettagliCorso Sistemi Operativi
Corso Sistemi Operativi Ing. Pierfrancesco Bellini pierfrancesco.bellini@unifi.it Laboratorio DISIT Dip. Ingegneria dell Informazione Via S. Marta, 3 Programma a.a. 2016/17 Introduzione Struttura di un
DettagliIl sistema di I/O. Sistemi Operativi 13.1
Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Prestazioni 13.1 Introduzione Un elaborazione eseguita da
DettagliSecondo l architettura di Von Neumann il bus rappresenta il punto di interconnessione di tutti i componenti del calcolatore.
Secondo l architettura di Von Neumann il bus rappresenta il punto di interconnessione di tutti i componenti del calcolatore. Sui bus si attestano periferiche caratterizzate da funzioni e velocità molto
DettagliSet di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO
Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO JP pq E un istruzione di salto assoluto incondizionato. Per salto assoluto si intende il fatto che grazie a quest istruzione, il contenuto
DettagliLezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario
Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1
DettagliMemoria Virtuale e I/O
Memoria Virtuale e I/O Paolo Baldan Baldan@dsi.unive.it Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie
DettagliIntroduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1
Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti
DettagliElementi di informatica
Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliCriteri di caratterizzazione di una memoria
La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità
DettagliLezione XII: La gestione delle eccezioni in MINIX
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliArchitettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente
Architettura dei calcolatori e sistemi operativi M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente 18.01.2015 Architettura Intel x64 Lo spazio di indirizzamento virtuale
DettagliArchitettura degli elaboratori - 2 -
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
DettagliSOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004
SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (9 punti) Si
DettagliArchitettura di una CPU
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1
DettagliArchitettura degli elaboratori - 2 -
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
DettagliLa memoria principale
La memoria principale DRAM (Dynamic RAM) il contenuto viene memorizzato per pochissimo tempo per cui deve essere aggiornato centinaia di volte al secondo (FPM, EDO, SDRAM, RDRAM) SRAM (Static RAM) veloce
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliGiustificazione dei sistemi di interrupt
Sistemi di interruzione Giustificazione dei sistemi di interrupt Omero Tuzzi Sistemi di Interruzione 1 Sistemi di interruzione Dalla constatazione che i traferimenti di dati tra un dispositivo periferico
DettagliCalcolatori Elettronici B a.a. 2007/2008
Calcolatori Elettronici B a.a. 27/28 MEMORIA VIRTUALE Massimiliano Giacomin Gerarchia di memorie CPU Cache Memoria CI OCCUPIAMO DI QUESTO 2 Richiami sulla gestione dell I/O Modalità di gestione e sincronizzazione
DettagliG L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi
G L O S S A R I O BIT: acronimo di Binary Digit. E l unità elementare di informazione. Può assumere solo il valore 0 o 1. CALCOLATORE: macchina che opera la trasformazione dei dati (informazioni) HARDWARE:
DettagliGli attori principali di un architettura
Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali
DettagliSISTEMA DI I/O CALCOLATORI ELETTRONICI I
SISTEMA DI I/ AATI EETTNII I d Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Supporti didattici B. Fadini,. Savy: Fondamenti di Informatica III cap. IV, par. 1-11, 14-15
DettagliIl calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica
Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione
DettagliDispositivi di I/O. Dispositivi di I/O. Prestazioni degli hard disk. Dispositivi di I/O (2) Architetture dei Calcolatori (lettere A-I)
Dispositivi di I/O Architetture dei Calcolatori (lettere A-I) Dispositivi di I/O Un dispositivo di I/O è costituito da due componenti: Il dispositivo fisico effettivo (disco, stampante, mouse, video, )
DettagliUNITA PERIFERICA DI TIPO PARALLELO - PIA MC 6821
UNITA PERIFERICA DI TIPO PARALLELO - PIA MC 6821 Indirizzamento interno dei registri: Registro di controllo CRA: Bit 7 Bit 6 Bit 5,4,3 Bit 2 Bit 1,0 IRQA1 IRQA2 CA2 DDRA CA1 Significato dei singoli bit:
DettagliLe Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.
Le Memorie Supporti sui quali le informazioni vengono fisicamente memorizzate. Si distinguono per: Velocità Costo per bit Tipo di accesso Accesso a byte o blocchi di byte Volatilità Parte I 15 Due Tipi
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliPROVA SCRITTA DEL MODULO/CORSO DI. 24 novembre 2016
PROVA SCRITTA DEL MODULO/CORSO DI 24 novembre 206 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI NOME: COGNOME: MATRICOLA: ESERCIZIO (6 punti) Progettare un riconoscitore
DettagliFunzionamento dei sistemi di calcolo Struttura dell I/O Struttura della memoria Gerarchie delle memorie Architetture di protezione Strutture delle
Capitolo 2: Strutture dei sistemi di calcolo Funzionamento dei sistemi di calcolo Struttura dell I/O Struttura della memoria Gerarchie delle memorie Architetture di protezione Strutture delle reti di calcolatori
DettagliI dispositivi di input/output
I dispositivi di input/output I dispositivi di input/output (anche detti periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina La loro funzione primaria è quella di consentire l'immissione
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliArchitettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni)
Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Migliorare
DettagliStruttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:
Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema
DettagliLa memoria - tecnologie
Architettura degli Elaboratori e delle Reti Lezione 26 La memoria - tecnologie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 26 1/24 Indirizzi
DettagliPentium: architettura di sistema
Pentium: architettura di sistema 1 2 TXC 4 3 5 6 PIIX 7 Pentium: architettura a livello di sistema 1 Il processore Pentum (1) è interfacciato sul bus con la memoria cache di livello 2 (2). L interfacciamento
DettagliEsame di INFORMATICA Lezione 4
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite
DettagliReti logiche (2) Circuiti sequenziali
Reti logiche (2) Circuiti sequenziali 1 Un ripasso Algebra booleana: operatori, postulati, identità, operatori funzionalmente completi Circuiti combinatori: tabelle di verità, porte logiche Decodificatore
DettagliCapitolo 5 Elementi architetturali di base
Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo
DettagliInterfacciamento di periferiche I/O al μp 8088
Interfacciamento di periferiche I/O al μp 8088 5.1 Principali segnali della CPU 8086 5.2 Periferiche di I/O e loro gestione 5.3 Collegamento di periferiche di input 5.4 Collegamento di periferiche di output
DettagliCAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1
CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più
DettagliSistemi Operativi. Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliL'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
DettagliMULTIPROGRAMMAZIONE E PROTEZIONE
MULTIPROGRAMMAZIONE E PROTEZIONE Sistemi multiprogrammati Sistema di elaborazione con un solo processore: può eseguire un solo programma alla volta; a divisione di tempo, può portare avanti in concorrenza
Dettagli