Parte III Logica Digitale, Memorie, Microprocessori e Bus Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.1 Circuiti Digitali i1 INGRESSI in CIRCUITO DIGITALE o1 USCITE om • Circuiti elettronici i cui ingressi e le cui uscite assumono solo due livelli • Al circuito sono associate le funzioni che calcolano le uscite a partire dagli ingressi o1 = f1( i1,….,in ) .. . om = fm( i1,….,in ) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.2 Funzioni Logiche (Booleane) y, x1,…, xn ∈ { 0,1 } y = f (x1,…,xn) f { 0,1 } → { 0,1 } n • Variabili con due soli valori possibili: { 0,1 } FALSO VERO { F,T } FALSE TRUE x2 …… x n-1 xn 0 …….. 0 0 0 …….. 0 1 .. .. .. . . . 1 …….. 1 1 f 0 1 .. . 0 Tavola di verità x1 0 0 .. . 1 • 2n combinazioni di ingresso • n 2 2 funzioni distinte di n variabili Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.3 Funzioni Booleane (Esempi) • Con n=1 si hanno 4 funzioni: x1 0 1 f0 0 0 f1 0 1 f2 f3 1 1 0 1 • La funzione f2 è detta NOT • Con n=2 si hanno 16 funzioni, tra cui: x1 0 0 1 1 x2 0 1 0 1 f0 0 0 0 0 f1 0 0 0 1 f2 0 0 1 0 f3 0 0 1 1 f4 0 1 0 0 f5 0 1 0 1 f6 0 1 1 0 • La funzione f1 è nota come AND • La funzione f7 è nota come OR Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.4 f7 0 1 1 1 Algebra Circuitale (Booleana) • È una struttura algebrica (insieme più operatori) • Reticolo distributivo complementato Insieme: I = { 0,1 } Operatori: AND , OR Complementazione: NOT Notazione • Se x e y sono due variabili booleane: – L’ AND di x e y si indica con x · y – L’ OR di x e y si indica con x + y – Il NOT di x si indica con x Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.5 Proprietà dell’Algebra Booleana Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.6 Espressioni Algebriche Teor.: ogni funzione booleana è algebrica, cioè rappresentabile con un’espressione dell’algebra Prima Forma Canonica f = Σj=1..m Π i=1..n xij* • xij* vale xi oppure xi • f è espressa come OR delle combinazioni per cui la funzione è vera (somma di mintermini) Qualsiasi funzione booleana può essere messa in questa forma Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.7 Funzioni Booleane (Esempio) ES • Tre variabili booleane A, B, C • Funzione di maggioranza M: è vera solo se almeno due delle tre variabili sono vere ABC ABC ABC ABC M = ABC + ABC + ABC + ABC Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.8 Circuiti Logici • Porte Logiche: circuiti elementari che realizzano gli operatori dell’algebra Qualsiasi funzione booleana può essere calcolata con un circuito realizzato con sole porte AND, OR e NOT • Le porte logiche vengono realizzate con circuiti elettronici: NOT NAND NOR Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.9 Circuiti Logici: (Esempio) (Funzione di Maggioranza) M = ABC + ABC + ABC + ABC Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.10 Porte NAND e NOR È possibile simulare AND, OR e NOT, e quindi realizzare qualsiasi circuito, usando soli NAND oppure soli NOR Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.11 Porte XOR • Calcola la funzione OR Esclusivo: dà uscita 1 (vero) quando uno solo degli ingressi (ma non entrambi) vale 1 • Facilmente realizzabile con porte AND, OR e NAND Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.12 Circuiti Integrati • Molte porte realizzate sulla stessa piastrina di silicio (chip) • Contenitori da 14 a 68 piedini • Vari livelli di integrazione: – SSI (Small Scale) 1-10 porte – MSI (Medium Scale) 10-100 ” – LSI (Large Scale) 102-105 ” – VLSI (Very Large Sc.) > 105 ” • Tempi di commutazione 1-20 nsec Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.13 Circuiti Combinatori Circuiti in cui l’uscita dipende solo dagli ingressi, e non dallo stato cioè dalla storia passata ES n 2 INGRESSI CONTROLLATI n INGRESSI DI CONTROLLO …. …………... MULTIPLEXER UNA USCITA • Gli ingressi di controllo selezionano quale degli ingressi controllati viene mandato in uscita Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.14 Multiplexer (circuito) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.15 Calcolo di funzioni booleane tramite multiplexer • Con un multiplexer ad n si può calcolare qualsiasi funzione di n variabili • Gli ingressi controllati corrispondono ai mintermini • Si cablano a 0 o 1, a seconda che il mintermine compaia o meno nella forma canonica ES (Funzione di maggioranza) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.16 Decodificatore n • Circuito a n ingressi e 2 uscite • Una ed una sola delle n uscite assume valore vero in corrispondenza a ciascun na delle 2 configurazioni di ingresso Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.17 Comparatore • Compara i bit omologhi di due stringhe • L'uscita vale 1 se e solo se Ai=Bi ¹ i • Se Ai=Bi allora Ai XOR Bi = 0 • Il NOR da uscita 1 solo quando tutti i suoi ingressi valgono 0 Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.18 Programmable Logic Arrays (PLA) • Permette di realizzare una ‘qualsiasi’ funzione (in prima forma canonica) • Circuito configurabile tramite bruciatura (interruzione) di connessioni • Permette di calcolare più funzioni • Due sezioni nel circuito: A) Generazione di un insieme di mintermini B) Selezione dei mintermini da inviare a ciascuna delle uscite • Limitazioni – Numero limitato di mintermini n generati << 2 – Numero limitato di mintermini in ingresso a ciascuno degli OR di uscita Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.19 PLA: realizzazione circuitale • Genera 6 funzioni di 12 variabili • Massimo 50 mintermini (su 4096) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.20 Semiaddizionatore (Half Adder) • Circuito a 2 ingressi e 2 uscite: somma e riporto (carry) • Non può essere usato per la somma di numerali a più bit, dove occorre sommare anche il riporto della cifra precedente Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.21 Addizionatore Completo (Full Adder) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.22 • Circuito a 3 ingressi e 2 uscite • Riceve il riporto dalla cifra precedente ALU a 1 bit (bit slice) • A e B sono bit omologhi degli operandi • F0 e F1 selezionano la funzione (00: AND), (01: OR), (10: NOT), (11: SUM) • ENA ed ENB sono segnali di enable • INVA permette di negare A • Default ENA=ENB=1 e INVA=0 Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.23 ALU ad n bit Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.24 • Realizzata connettendo n ALU ad 1 bit (bit slices) • Problema: propagazione dei riporti • Ciascuno stadio deve attendere il riporto dal precedente • Tempo di addizione lineare con n • INC incrementa la somma di 1 (A+1, A+B+1) Circuiti Sequenziali o1 i1 s1 …. sr INGRESSI in STATO USCITE om oi = fi( i1,...,in ,s1,…,sr) i=1,…,m s’i =gi( i1,...,in ,s1,…,sr) j=1,…,r • Le uscite del circuito dipendono dagli ingressi e dalla storia passata • La storia passata è riassunta nello stato • Lo stato è codificato nelle variabili di stato booleane s1,…,sr • Le variabili di stato sono memorizzate in elementi di memoria binari • Circuiti combinatori calcolano le uscite e il nuovo valore dello stato Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.25 Clock • Tutti i cambiamenti di stato vengono sincronizzati da un segnale (clock) • Da un clock primario ne vengono ricavati per sfasatura, sottrazione ecc. • Le transizioni di stato del circuito possono avvenire: A) In corrispondenza dei livelli B) In corrispondenza dei fronti Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.26 Latch • Dispositivo di memoria elementare • Due stati stabili Q=0 e Q=1 S (SET): forza Q a 1 R (RESET): forza Q a 0 • Con S=R=0 il circuito mantiene lo stato • Il circuito commuta sui livelli cioè quando S o R passano a 1 • S ed R non devono mai andare insieme ad 1 Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.27 Latch con Clock, Latch D • R ed S vengono trasferiti sugli ingressi del latch solo quando il clock è ad 1 • Quando il clock è a 0 vengono ignorati • Il latch D (Delay) quando il clock va ad 1 registra nello stato Q il valore dell’ingresso D Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.28 Latch e Flip-Flop a) b) • I Latch commutano sui livelli del clock ( a) alto, b) basso) a) b) • I Flip-Flop commutano sui fronti del clock: a) Commuta sul fronte di salita b) Commuta sul fronte di discesa Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.29 Registri • I Flip-Flop sono gli elementi base di memorizzazione nel computer • Molti Flip-Flop possono essere messi su un unico chip • Occorrono in genere da 6 a 10 transistor per ogni Flip-Flop Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.30 Organizzazione della Memoria Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.31 Dispositivi a 3 stati • In base ad un segnale di controllo C si comporta: (b) C=1: come circuito chiuso (c) C=0: come circuito aperto • Tempo di commutazione: pochi nsec • Consente di usare gli stessi piedini sia per la lettura che per scrittura • Usato anche per la connessione ai bus e a qualsiasi linea bidirezionale Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.32 Chip di Memoria CS n× m OE ……. CHIP DI MEMORIA log2 n LINEE INDIRIZZO WE ……. m LINEE DATI IN/OUT • Chip da n × m bit complessivi • m linee dati bidirezionali • log2 n linee di indirizzo • Segnali di controllo: – CS (Chip Select) – OE (Output Enable) – WE (Write Enable) Problema: numero limitato di piedini del contenitore Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.33 Matrice di selezione log2n 1/2 log2n 1/2 log2n = log2 √ n DECODER 1/2 log n → √ n DECODER 1/2 log n → √ n • Si risparmia nella complessità della logica di decodifica • Un decoder m → 2m richiede 2m porte AND ES – 4M parole → 22 linee – 1 decoder a 22 → 4M porte AND – 2 decoder a 11 → 2⋅211= 4k porte AND Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.34 Chip di Memoria (Esempi) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.35 • RAS (Row Address Strobe), CAS (Column Address Strobe) • Indirizzi di riga e di colonna multiplexati sugli stessi piedini Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 Schede di Memoria III.36 • La scheda memorizza parole di n byte • Si usano n+1 se si vuole il controllo di parità • Bit di parità gestito dal controller della memoria Organizzazione della memoria • SIMM (Single Inline Memory Module) – 72 piedini, 32 bit, 8-16 chip, 32 MByte – A coppie nel Pentium (bus dati 64 bit) • DIMM (Double Inline Memory Module) – 168 piedini, 64 bit, 16 chip, 128 MByte • Il controller gestisce più SIMM (o DIMM) • Ogni SIMM informa il controller della sua dimensione (segnali su certi piedini) • Il controller determina al momento del boot il tipo di RAM (e.g. EDO) • Dall’indirizzo e dalla configurazione il controller calcola a quale SIMM mandare il segnale di Chip Select Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.37 Tassonomia delle RAM e ROM • RAM (Random Access Memory) • ROM (Read Only Memory) • SRAM (Static RAM): a Flip-Flop, molto veloce (~5nsec) • DRAM (Dynamic RAM): basata su capacità parassite; richiede refresh, alta densità, basso costo (~70 nsec) – FPM: selezione a matrice – EDO: (Extended Data Output) lettura in pipeline, più banda • SDRAM (Synchronous DRAM) – Sincrona, prestazioni migliori • PROM (Programmable ROM) • EPROM (Erasable PROM) raggi UV • EEPROM: cancellabile elettricamente • Flash Memory: tipo di EEPROM, ciclo 100nsec, max 10.000 riscritture Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.38 Tipi di RAM e di ROM e loro impieghi Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.39 Refresh nelle DRAM • Necessario rinfrescare, cioè riscrivere, tutta la DRAM con periodo T • Possibile scrivere in un solo ciclo una riga o una colonna • Refresh simultaneo di tutti i chip e tutte le schede ES – T : periodo di refresh – n : dimensione (4 ms) (4MB) – τ : durata ciclo refresh (40ns) – η : overhead η=(√ n⋅ τ) / T η=(2048 ⋅ 40 ⋅10-9) / (4 ⋅10-3)≈2% Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.40 Pinout Logico del µP • Indirizzamento • Dati • Controllo – Controllo del ciclo di bus – Gestione delle interruzioni – Arbitraggio del bus – Gestione del coprocessore – Segnalazione di stato – Vari (alimentazione etc.) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.41 Architettura a più Bus • Diversi bus, interni ed esterni al chip • Soddisfano diverse esigenze: – Velocità di trasferimento – Numero di linee – Più trasferimenti paralleli – Compatibilità all’indietro • Nei primi PC c’era un unico bus • Negli attuali PC almeno tre bus esterni Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.42 Comunicazione sul Bus • La comunicazione sul bus è regolata da un protocollo di bus • In ciascun ciclo comunicano due soli dispositivi il master e lo slave • Lo stesso dispositivo può avere ruoli diversi a seconda dei casi • I dispositivi sono connessi al bus tramite un bus transceiver • La connessione al bus avviene tramite dispositivi a tre stati oppure è di tipo open collector Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.43 ‘Larghezza’ del Bus • Larghezza = numero di linee • Linee dati: banda di trasferimento • Linee indirizzo: dimensione dello spazio (di memoria) indirizzabile, 2n locazioni con n bit di indirizzo Problema: al crescere del numero di linee aumenta il bus skew (differenza nella velocità di propagazione dei segnali Soluzione: multiplexamento di più segnali sulla stessa linea Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.44 Segnali asseriti e negati • In alcuni casi ( a seconda delle scelte di progetto) un segnale provoca l’azione corrispondente quando la sua tensione è alta, in altri quando è bassa • Per evitare confusione si parla di: – Segnale asserito: quando assume il valore che provoca l’azione – Segnale negato: altrimenti • Si adotta la seguente notazione: – S: segnale che è asserito alto – S: segnale che è asserito basso • Ulteriore notazione (usata da Intel): – S: segnale che è asserito alto – S#: segnale che è asserito basso ( adatta al set di caratteri ASCII) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.45 Bus Sincroni: ciclo di lettura T=25 nsec • Tutte le azioni avvengono sui fronti • Se la memoria mantiene asserito WAIT il ciclo si prolunga Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.46 Bus Sincrono: Temporizzazione ES • Frequenza 40 MHz, periodo 25 nsec • Tempo a disposizione della memoria fra: a) la comparsa dell’indirizzo sul Bus b) la disponibilità dei dati sul Bus τ1 = 2.5⋅T-TAD-TDS = 62.5-16 = 46.5 nsec • Tempo a disposizione della memoria fra: a) l’asserzione di MREQ e RD b) la disponibilità dei dati sul Bus τ2 = 2⋅T-TM-TDS = 50-13 = 37 nsec • Una memoria da 40 nsec ce la fa di sicuro • Altrimenti mantiene asserito il segnale di WAIT, per introdurre stati di wait, cioè cicli di bus addizionali Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.47 Bus Asincrono: ciclo di lettura • Accoppiamento di dispositivi con velocità diverse • Gli eventi avvengono in risposta ad altri eventi (rapporto di causa ed effetto) FULL HANDSHAKE 1) MSYN asserito 2) SSYN asserito in risposta a MSYN 3) MSYN negato in risposta a SSYN 4) SSYN negato in risposta a ¬MSYN Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.48 Arbitraggio del Bus • Permette di decidere quale dispositivo sarà il prossimo Bus Master risolvendo eventuali conflitti • Spesso l’arbitro è nel chip del µP • Linea di richiesta condivisa • Il Bus grant è propagato dall’arbitro poco prima dell’inizio del ciclo • Viene intercettato dal futuro master NB Favoriti i dispositivi situati vicino all’arbitro Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.49 Livelli Multipli di priorità • Diverse linee di richiesta associate a diversi livelli di priorità • In caso di conflitto favorite le catene a priorità più alta • All’interno di ciascuna catena vale la posizione • In genere se c’è un solo bus con anche la memoria la CPU ha priorità più bassa dei dispositivi di I/O (e.g. dischi) Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.50 Block Transfers • Permette di leggere più parole consecutive • Usato per trasferire blocchi di cache • Numero di parole specificato durante T1 • Dopo la prima viene trasferita una word ogni ciclo (invece di una ogni tre cicli) • Per leggere quattro word occorrono 6 cicli invece di 12 • Il segnale BLOCK viene asserito per chiedere un block transfer Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.51 Gestione delle Interruzioni • Chip controllore di interruzioni Intel 8259A usato dal PC IBM e successori • Gestisce 8 linee di interrupt – INT: interruzione inviata alla CPU – INTA: aknowledge della CPU – Vettore di Interrupt passato sul Bus – IR0-IR7: linee di interrupt sul Bus • Il vettore di interrupt è usato dalla CPU per saltare alla relativa routine • Registri all’interno del chip scrivibili dalla CPU per programmare lo 8259A Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.52 Il Pentium II • Architettura a 32 bit completamente compatibile con i predecessori • Aritmetica Floating-point IEEE 754 • Bus di memoria a 64 bit • Cache 1o livello 16KB dati +16KB istr. • Cache 2o livello 512 KB nel package (a metà della frequenza della CPU) • SEC (Single Edge Cartridge) a 242 pin • Dissipa oltre 55W! Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.53 Pentium II: Pinout Logico Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.54 Pentium II: Pinout Logico (2) • 242 connetori sul SEC: – 170 segnali – 27 connessioni di alimentazione – 35 connessioni di massa – 10 per ‘uso futuro’ • Indirizzi a 36 bit (64 GB), ma sempre in blocchi di 8 byte (solo 33 bit di indirizzo) • 64 linee dati; segnali: D# (richiesta dati), DRDY# (data ready), DBSY# (data busy) • Segnali di Snoop per la coerenza di cache • Gestione delle interruzioni sia come l’8088 che con APIC (Adv. Progr. Interr. Contr.) • VID: per la scelta della tensione • Power Management: permette di mettere la CPU in stato di sleep e deep sleep • 11 linee di diagnosi secondo lo standard IEEE 1149.1 JTAG Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.55 Pentium II: Memory Bus • Bus gestito con pipelining: è possibile sovrapporre più transazioni • Fasi di una transazione (usano gruppi di linee indipendenti): 1) Bus arbitration phase (non mostrata) 2) Request phase 3) Error reporting phase 4) Snoop phase 5) Response phase 6) Data phase • Non sempre si usano tutte le fasi Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.56 Il Bus ISA del PC/AT • ISA (Indunstry Standard Architecture) derivato dal bus del PC/AT • Compatibile con il bus del PC a 62 linee • 62+36 linee: 16 dati e 24 indirizzi • Edge Connectors (molto economici) • Tutt'oggi presente in tutti i PC per l’uso di carte legacy • Estensione EISA di poco successo • Sincrono a 8.33 MHz: 16.7 MB/sec Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.57 Il Bus PCI: architettura complessiva Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.58 Il Bus PCI: specifiche • PCI (Peripheral Component Interconnect) • Introdotto da Intel per applicazioni video • Video 1024×768×3 Byte a 30 frame/sec richiede una banda di 67.5 MB/sec • Standard non propietario, adottato da molti, (ma Intel vende i chip di gestione….) • Versione base a 32 bit, 33 MHz: 133 MB/sec • Estensione a 64 bit e 66 MHz: 528 MB/sec • Local Bus e Memory Bus separati (più veloci) • Connessione tramite chip PCI bridge • Varie opzioni di tensione (5 V e 3.3 V) • Carte con 120 e 120+64 contatti • Bridge ISA (include doppio controller IDE) • Controllori addizionali SCSI e USB • Bus sincrono, transazioni tra initiator e target • Linee indirizzo e dati multiplexate Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.59 Il Bus PCI: arbitraggio • Arbitraggio centralizzato (nel Bridge) • Ogni PCI device ha due linee dedicate • Il device fa la richiesta tramite REQ# • Il grant viene concesso tramite GNT# • Diversi algoritmi di arbitraggio: – Round Robin – Priorità – Altro • Transazioni su piu cicli separate da cicli di idle Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.60 Il Bus PCI: Segnali Obbligatori Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.61 Il Bus PCI: Segnali Opzionali Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.62 Bus PCI: Segnali • Bus a 120 o 180 linee • Oltre ai segnali sono distribuiti anche alimentazioni e masse • 32(+32) linee AD multiplexate tra dati e indirizzo con 1(+1) bit di parità PAR • C/BE# (in cicli diversi) invia comandi e specifica quanti e quali byte leggere • FRAME# e IRDY (lettura) usati dal master • DEVSEL# e TRDY# usati dallo slave • IDSEL indirizza nel configuration space di un device invece che in memoria (usato per gestire il Plug and Play) • STOP# e PERR# segnalano errori • RST# induce un reset nella CPU e in tutti i device sul bus • SBO e SDONE segnali di cache snooping Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.63 Bus USB (Universal Serial Bus) • Bus economico concordato da varie aziende per la gestione di device di I/O a bassa velocità (~ 1995) • Obiettivi: 1) Evitare switch, jumpers 2) Installazione di tipo esterno 3) Cavo di connessione unificato 4) Alimentazione fornita dal cavo 5) Fino a 127 dispositivi collegabili 6) Supporto di dispositivi real-time 7) Installazione a PC acceso 8) Reboot non necessario 9) Bus e dispositivi economici • Tutti gli obiettivi sono di fatto rispettati Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.64 USB: Specifiche Fondamentali • Banda complessiva 1.5 MB/sec • Limitata per ragioni di costo • Root hub di connessione al bus PCI • Connessione di dispositivi e di altri hub • Struttura complessiva ad albero con massima ramificazione di 16 • Connettori ai capi del cavo diversi • Cavo a 4 fili: +5V, GND, 2 di segnale • Alla connessione di un dispositivo: – Interrupt: intervento del SO – Richiesta di banda – Assegnazione di indirizzo • Indirizzo 0 usato per inizializzazione • Logicamente connessione tra root hub e ciascun device con bit pipe dedicata Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.65 USB: Struttura dei Frame • Frame emessi ogni 1.00±0.05 msec • Idle frame se non c’è comunicazione • Contenuto del frame: – SOF: Start of Frame – IN / OUT: richiesta in lettura/scrittura – DATA: payload fino a 64 byte più controllo e codice di errore – ACK / NACK: acknowledge o errore • Polling usato invece delle interruzioni Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.66 Chip di I/O: UART, USART e PIO • UART (Univ. Async. Rec. Transm.) • USART (… Sync. Async. ……) • Usati in interfacce parallelo/seriale • PIO (Parallel Input/Output) – Configurabile dalla CPU – 3 Porti indipendenti da 8 bit con latch – La CPU legge e scrive nei porti – Possibile gestire anche semplici protocolli di handshaking CPU-device – Per gestire device TTY-compatible Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.67 Decodifica degli Indirizzi • Spazio separato di I/O, oppure unico spazio (Memory-Mapped I/O) • Alcuni indirizzi riservati ai porti di I/O • Problema: ricavare i segnali di chip select ES – EPROM: 0-2K 00000XXXXXXXXXXX 00000XXXXXXXXXXX – RAM: 32K-34K 10000XXXXXXXXXXX 10000XXXXXXXXXXX – PIO: FFFC-FFFF 1111111111111100 1111111111111111 Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.68 Decodifica Completa Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.69 Decodifica Parziale Calcolatori Elettronici, Proff. S. Salza e G. Santucci a.a. 00-01 III.70