BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

Gestione Input Output A. Ferrari.
Gestione del processore
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Esercizi sulle architetture
MICROCONTROLLORI Di Tiziano Ragazzi.
Memorie.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Glossario. AGP Accelerated Graphics Port: architettura di bus che permette alle schede grafiche laccesso diretto al bus di sitema (fino a 100MHz), invece.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
File.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Schema di principio del SCA di una MMU Memory Management Unit
Il livello Microarchitetturale
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Architetture dei nuovi calcolatori
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
BUS di comunicazione Da Testo Maeran. BUS caratteristiche generali Semplicità (minori costi) Standard (in modo che chiunque produce HW lo possa.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Istruzioni per il Controllo del Processore
Gestione della memoria logica e fisica degli elaboratori x86
Architettura degli elaboratori
Architettura degli elaboratori
Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo.
1 Prof. Marco Mezzalama CICLO DI BUS CON DATA BUS A 32 BIT (ciclo scrittura con wait) Verifica Segnale di READY: nel primo caso La memoria NON è pronta,
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
CPU (central process unit)
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
LEvoluzione dei computer In principio fu Eniac il primo calcolatore ad essere in grado di eseguire trecento moltiplicazioni al secondo. Bisogna aspettare.
Le unità di input/output Il dispositivo di interfaccia viene attivato ogni volta si vuole compiere un operazione di input/output e comprende : Un buffer.
GESTIONE DELLA TASTIERA
Il Calcolatore Elettronico
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Appunti di Informatica
L' ARCHITETTURA DI VON NEUMANN
Architettura del Computer
PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER
GESTIONE INTERRUPT CPU INTEL 8086
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
File system distribuito transazionale con replicazione
Sistemi di elaborazione e trasmissione delle informazioni
Unità centrale di processo
La RAM, insieme al microprocessore, è uno degli elementi più importanti all’interno di un elaboratore. Essa rappresenta un’area in cui il computer è in.
Esercitazioni I/O. Dischi: Esercizio 1 Si consideri un programma che legge blocchi di 2 KB da disco, esegue un’elaborazione su questi, e quindi li riscrive.
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.
Architettura di una CPU
Bus Interface Unit L1 I-CacheL1 D-Cache Fetch/Decode unit Dispatch/Execute unit Retire unit Instruction Pool System Bus L2 Cache 256 KB integrata 4 cicli.
Il nucleo del Sistema Operativo
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
1 M.MezzalamaM. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Mezzalama - M. Rebaudengo SOTTOSISTEMA DI MEMORIA.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
SOTTOSISTEMA DI MEMORIA
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Il modello di Von Neumann
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino Dip. di Automatica e Informatica

Coproc Cache (L1) CPU DESKTOP SYSTEM clock Host bus(FSB) BUS veloce (AGP) DRAM Cache (L2) BUS veloce (PCI) LAN BUS lento (ISA)

Dual Idependent Bus Arch. In Dual Independent Bus (DIB) architecture systems the single system bus is replaced by a "frontside bus" for shuttling data between the CPU and main memory, and between the CPU and peripheral buses and a "backside bus" for accessing Level 2 cache. The use of dual independent buses boosts performance, enabling the CPU to access data from either of its buses simultaneously and in parallel.

Dual Idependent Bus Arch.

CPU CPU Cache (L1/2) Cache (L1/2) SERVER SYSTEM CPU CPU Cache (L1/2) Cache (L1/2) DRAM Memory bus Cache (L2/3) SYSTEM BUS PCI PCI

Ciclo di Bus È la sequenza di eventi attraverso la quale la CPU comunica con la memoria, con un dispositivo di I/O, con l’Interrupt Controller. In funzione dei processori può essere costituito da 2 o 4 cicli di clock di sistema. Internamente esistono sempre 4 periodi Si compone di almeno 4 fasi, denominate T1, T2, T3, T4. T1: sull’address bus viene scritto l’indirizzo T2, T3, T4: sul data bus viene messo il dato. Se la CPU non deve accedere all’esterno, i segnali di controllo del bus sono inattivi ed i relativi piedini sono in alta impedenza. Se nessun altro dispositivo utilizza il bus, questo si trova allora nello stato di idle.

Ciclo di Bus Nel 8086 il ciclo interno (4 CLK) è identico al ciclo esterno di bus Nei processori tipo pentium o nei bus di sistema (es. PCI) il ciclo di bus è di 2 CLK Ad esempio nel bus del pentium (host bus o memory bus) a 100MHz il trasferimento avviene in 2 CLK, cioè in 20ns. In generale si indica la capacità di trasferimento del bus espressa in MBps (Mega Byte per secondo) Esempio: pentium con DBUS a 64 bit e 100MHz si ha: (64/8)*100M/2 = 400MBps Essendo 2 i periodi di clock per ciclo di bus

PCI CLK = 66MHz, 32 bit DBUS AGPx4 = 66MHz x 4

Ciclo di Bus T1 T2 T3 T4 T1 T2 T3 T4 Address Buffer Data Address Bus Cycle CLOCK di BUS interno CLOCK di BUS Address Buffer Data Address Buffer Data

Ciclo di Lettura T1: sull’address bus viene scritto l’indirizzo T2: la CPU forza sul data bus il valore Z T3, T4: la memoria scrive il dato sul data bus.

Ciclo di Scrittura T1: sull’address bus viene scritto l’indirizzo T2: la CPU scrive il dato sul data bus T3, T4: la memoria legge il dato dal data bus.

Cicli di Idle Vengono inseriti dalla CPU quando necessario, ossia quando: la CPU non necessita di nuovi dati e la coda interna delle istruzioni è piena, e non può essere eseguita alcuna fase di prefetch.

Cicli di Wait Se la memoria non è sufficientemente veloce, lo segnala alla CPU, e questa inserisce tra T3 e T4 una serie di stati di attesa (wait states) fino a che la memoria risponde. Per comunicare all'8086 la necessità di uno o più cicli di wait, la memoria esterna invia un segnale sul pin READY.

PENTIUM DMA ABUS (A31-A3, BE7-BE0) INTERRUPT DBUS (64 bit) BIT PARITA’ (DP7-DP0) L1/L2 cache Control (MESI) ADS MULTIPROC. SYNCR Stato (D/C, W/R,M/IO) READY

Segnali di Controllo ADS (o ALE): il fronte di salita segnala durante T1 che sull’address bus è pronto un indirizzo. IO/M*: indica se il ciclo di bus fa riferimento alla memoria o a un dispositivo di I/O; R/W*: indica se si tratta di un ciclo di lettura o scrittura C/D: indica se sul bus sono presenti dei dati o no

HOLD e HLDA Costituiscono l’interfaccia verso il controllore di DMA. Quando un dispositivo desidera acquisire il controllo del bus, porta a 1 il segnale HOLD. A questo punto il processore, terminato il corrente ciclo di bus, pone in alta impedenza i segnali di ABUS, e i segnali di controllo Quando il dispositivo rilascia il bus, riporta a 0 il segnale HOLD.

Segnali di Interrupt Sono: INTR (input): richiesta di interrupt da parte di un dispositivo esterno INTA* (output): accettazione della richiesta da parte della CPU, e temporizzazione del trasferimento del codice di interrupt NMI (input): richiesta di interrupt non mascherabile.

READY READY rappresenta un segnale di sincronizzazione con l'esterno. All'esecuzione dell'istruzione WAIT, il processore testa il segnale READY e, se vale 1, inizia ad eseguire dei cicli di idle; quando READY torna a 0, il processore esegue l'istruzione successiva alla WAIT.

BEi Nell’80x86 il segnale BEi* (Bank Enable), con i che varia tra 0 e il numero di byte di parallelismo del DBUS, definisce la dimensione e l’allineamento del tipo trasferito: BE0* = 0 trasferimento del byte meno significativo BE1* = 0 trasferimento del secondo byte ES. nell’istruzione MOV AL, (BX) viene attivato BE0 nell’istruzione MOV AX, (BX) viene attivato BE0 e BE1 nell’istruzione MOV EAX, (BX) viene attivato BE0, BE1, BE2 e BE3

LOCK* Indica che un’istruzione con il prefisso LOCK e’ in corso di esecuzione e conseguentemente il bus non puo’ essere utilizzato da un altro potenziale master.

PENTIUM BUS CYCLE Nel pentium esistono due tipi di cicli: single transfert: trasferimento di un solo dato Burst cycle: trasferimento di 4*64 bit (32 byte) effettuato per aggiornamento della L1 cache nei casi di cache miss

CICLO DI BUS CON DATA BUS A 32 BIT (ciclo lettura) Con bus a 32 bit, ABUS è costituito dai seguenti segnali: A31-A2 BE3-BE0 (4 byte)

CICLO DI BUS CON DATA BUS A 32 BIT (ciclo scrittura)

CICLO DI BUS CON DATA BUS A 32 BIT (ciclo scrittura con wait) Verifica Segnale di READY’: nel primo caso La memoria NON è pronta, nel secondo SI

PENTIUM BUS CYCLE (esempio con Dram) Si supponga di avere un pentium con host bus a 300MHz che interfaccia una memoria dram con ta = 80 ns Nel caso di single transfert (trasferimento di un solo dato) sono richiesti un certo numero di cicli di wait. Ciclo di bus (2*tclock) tacpu Verifica Segnale di READY’

PENTIUM BUS CYCLE (esempio con Dram) Si possono fare le seguenti considerazioni: host bus a 300MHz significa che un ciclo di bus dura: 33*2 = 66 ns (tclock = 33ns) La cpu acquisisce i dati dal bus (memoria) in circa ¾ di un ciclo di bus (si veda figura, tacpu). Nel caso in esame la memoria dovrebbe pertanto rispondere in circa 50 ns. Ogni ciclo di wait inserito ha durata (tw) pari ad un periodo di clock. Nel caso in esame 33 ns. In generale dovrà pertanto valere: ta(memoria) <= tacpu + n*tw

PENTIUM BUS CYCLE (esempio con Dram) Applicando la: ta(memoria) <= tacpu + n*tw al caso in esame, si ottiene: 80 <= 50 + n*33 Da cui si deriva che il numero di cicli di wait da inserire è pari ad n = 1. N.B. nel caso reale di DRAM è più corretto impiegare non il ta, il tempo di cyclo, tcycle, ponendosi sempre nel caso peggiore (worst case analisys). Si ricorda che tcycle è pari a circa 2*ta.

PENTIUM BUS CYCLE (Burst cycle) Nei microprocessori con cache on –chip la maggior parte degli accessi alla memoria è dovuta alla necessità di aggiornare la cache in presenza di cache miss o di scritture della cache in memoria nel caso di write di dati sulla cache. Si ricorda che la cache è organizzata in cache line, ognuna delle quali riporta il contenuto di un certo numero di byte ADIACENTI della memoria Ne deriva che l’aggiornamento della cache consiste nel leggere nella cache stessa un dato numero di byte dalla memoria (principio di località). Pertanto tale operazione deve essere fatta nel più breve tempo possibile per evitare che la cpu resti in attiva per lungo tempo. Da un punto di vista progettuale due sono i parametri in gioco: Il numero di byte associati ad una cache line Il tempo di aggiornamento della cache, ossia il numero di bus cycle da effettuare per la lettura della memoria

PENTIUM BUS CYCLE (Burst cycle) Quanto maggiore è il numero di byte della cache line tanto più è “efficace” il principio di località, ma tanto maggiore è il tempo di attesa/inattività della cpu. Negli attuali processori il compromesso è ottenuto limitando a 4 i cicli di bus per aggiornare la cache, ma incrementando il numero di segnali del DBUS in modo che ad ogni transazione si possano leggere un elevato numero di byte. Esempi DBUS 32 bit, (4 bus cycle x 4 byte) = 16 byte cache line DBUS 128 bit, (4 bus cycle x 16 byte) = 64 byte cache line

PENTIUM BUS CYCLE (Burst cycle) Per ottimizzare i tempi di trasferimento si sfrutta il fatto che i byte sono adiacenti e quindi gli indirizzi noti a priori. In tal modo la BIU realizza un ciclo di burst, composto da 4 cicli di bus di cui solo il primo deve essere di 2 clock. I restanti sono di un clock solo. Si ha cioè un ciclo di burst detto “2-1-1-1” Ad esempio nel caso di bus da 100 MHz, si ha un ciclo burst della durata di 20+10+10+10 = 50, rispetto agli 80 di 4 cicli di bus normali. Va da se che le memorie devono essere in grado di rispondere in tali tempi: da qui le nuove categorie di memoria dette “fast operative”, tipo le DDR DRAM.

PENTIUM BUS CYCLE (Burst cycle)