Struttura dei calcolatori Organizzazione di un semplice calcolatore • CPU (Unità centrale di elaborazione) • Memoria principale • Dispositivi ingresso • Dispositivi uscita • Bus Calcolatori Elettronici, Beraldi, aa 03/04 Organizzazione di un semplice calcolatore • La CPU è composta da un’unita di controllo, un insieme di registri ed una ALU – Un registro è un dispositivo in grado di memorizzare gruppi di bit di dimensione fissa (es 16,32 bit) • Registri speciali: – PC: indirizzo dell’istruzione corrente – IR: contiene l’istruzione corrente – A: Contiene il risultato o un operando dell’operazione corrente • La memoria principale contiene sia i dati che le istruzioni – La memoria è un dispositivo in grado di memorizzare diversi gruppi di bit (parole di memoria) • Calcolatori Elettronici, Beraldi, aa 03/04 I dispositivi per l’ingresso e l’uscita (I/O) producono o ricevono dati da ( o verso) l’esterno Organizzazione della CPU: il data-path • Il data-path è la parte della CPU che contiene la ALU con con i suoi input ed output • La ALU esegue operazioni aritmetiche o logiche sui dati contenuti nei suoi registri d’ingresso e memorizza il risultato nel registro d’uscita • Ciclo del data-path: passaggio di due operandi attraverso la ALU e memorizzazione del risultato Calcolatori Elettronici, Beraldi, aa 03/04 Ciclo istruzione Fetch Istruzione PC 100 IR ADD R3,R5,R0 CPU Memoria Indirizzo ADD R3,R5,R0 100 . . CU IP Memoria[PC] PC PC+1 Calcolatori Elettronici, Beraldi, aa 03/04 Ciclo istruzione Decodifica Indirizzo PC 101 IR ADD R3,R5,R0 ADD R3,R5,R0 . . CU Calcolatori Elettronici, Beraldi, aa 03/04 100 Ciclo istruzione esecuzione Indirizzo PC 101 IR ADD R3,R5,R0 ADD R3,R5,R0 100 . . CU INPUT1 R3 INPUT2 R5 ALU.Somma R0 OUPUT Calcolatori Elettronici, Beraldi, aa 03/04 Ciclo Istruzione 1. 2. 3. 4. 5. 6. 7. Preleva l’istruzione seguente dalla memoria e copiala nel registro istruzioni (fetch) Cambia il program counter per indicare l’istruzione seguente Determina il tipo di istruzione letta (fase di decodifica) Se l’istruzione usa una parola di memoria determina dove si trova (l’indirizzo) Se necessario copiala in un registro della CPU (fetch operandi) Esegui l’istruzione (fase di execute) Torna al punto 1 Calcolatori Elettronici, Beraldi, aa 03/04 Segnale di sincronizzazione (clock) • E’ un segnale con le seguenti caratteristiche: – E’ un segnale binario – E’ un segnale periodico (durata T), ossia frequenza f=1/T – Può essere asimmetrico: La durata del livello basso (clock LOW pulse width) diversa da quella del livello alto (clock HIGH pulse width) Fronte di discesa (transizione negativa) 1 0 Fronte di salita (transizione positiva) nella realtà le transizioni 0 Periodo T 1 e 10 non sono istantanee Calcolatori Elettronici, Beraldi, aa 03/04 Segnale di sincronizzazione (clock) • Le varie attività della CPU hanno inizio in corrispondenza di tempi ben precisi stabiliti del clock • In generale completare un’istruzione richiede più “colpi” di clock, tale grandezza si chiama Clock Per Instruction (CPI) • Con la tecnologia attuale la frequenza del clock della CPU è dell’ordine dei GHz (1GHz = 109 T= 1ns) – Es Pentium IV 3.4 GHz • Ipotizzando 4 CPI in media, una CPU con f=1GHz ha ¼ x 109=0,25 x 103 x 106=250 Mips – Come effettuare la media? Non tutte le istruzioni sono eseguite con la stessa frequenza… Calcolatori Elettronici, Beraldi, aa 03/04 Esempio • • • Ammettiamo che il caricamento dei registri d’ingresso (copia del contenuto dei registri generici in quelli d’ingresso) richieda 5 ns (1ns=10-9s), l’elaborazione della ALU 10 ns e la memorizzazione del risultato nel registro di uscita 5ns La ALU completerà un’operazione in 5+10+5 ns = 20 ns Il numero massimo di operazioni (di questo tipo) che possono essere eseguite in un secondo vale 1/20ns = 0,05 x 109 = 50 MIPS (Milioni di operazioni al secondo) – Trascurando la fase di fetch… • • Il MIPS è una metrica per misurare la velocità di esecuzione di una CPU, anche se poco impiegata in pratica. Le prestazioni di una CPU sono invece comunemente espresse misurando il tempo di esecuzione di programmi di test (benchmark). Vedi http: http:// www.spec.org Calcolatori Elettronici, Beraldi, aa 03/04 Esempio Temporizzazioni INPUT1 R3 INPUT2 R5 ALU.Somma R0 OUTPUT 5 ns • Nell’esempio precedente si può immaginare che la CPU riceva un segnale di clock con frequenza 1/5 ns = 0,2 x 109 = 200 MHz. L’istruzione è caratterizzata da CPI=4 Calcolatori Elettronici, Beraldi, aa 03/04 Esercizio • Un programma P viene eseguito in 10 sec. sul un calcolatore A con fA=400MHz. Ammettendo di poter costruire un calcolatore B con frequenza di clock fB maggiore di quella di A, ma con un numero di cicli per istruzione maggiore del 20%, quale valore deve avere fB affinchè P termini in 6 sec ? Calcolatori Elettronici, Beraldi, aa 03/04 Soluzione CPIA 10 s • • fA x TA = # colpi di clock fA x TA / CPIA = # istruzioni • fA x TA / CPIA = fB x TB / (1.2)xCPIA • fB = fA x TA/TB x 1.20 = 400 x 10/6 x 1.20 = 800 MHz Calcolatori Elettronici, Beraldi, aa 03/04 Evoluzione dei criteri di realizzazione di CPU • • Inizialmente il set d’istruzioni dei calcolatori era composto da poche istruzioni “semplici” (eseguibili in pochi cicli di clock) Il set fu presto aumentato includendo istruzioni “complesse” – ad esempio operazioni floating point • Disporre di istruzioni complesse direttamente eseguite in hw spesso comporta un aumento delle prestazioni poiché è possibile eseguire più attività in parallelo • Negli anni 50, per garantire compatibilità fra modelli di calcolatori con costo/prestazioni differenti, l’IBM introduce la tecnica dell’esecuzione mediante interpretazione • Due calcolatori sono compatibili se hanno lo stesso set di istruzioni – Modello fascia alta esecuzione diretta (+ prestazioni, + costo) – Modello fascia bassa esecuzione interpretata (-prestazioni, -costo) Calcolatori Elettronici, Beraldi, aa 03/04 Macchine CISC Complex Instruction Set Computer • Filosofia anni ’70-’80 • Repertorio esteso di istruzioni per facilitare la programmazione – Lunghezza delle istruzioni variabile con decodifica complessa… (il significato di un campo dipende dal valore dei campi precedenti) • Spostare funzionalità “dentro” la CPU – L’interprete è un microprogrmma (insieme microistruzioni) memorizzato in memorie veloci, dette control store • Ad esempio il VAX aveva più di 200 istruzioni – Il set d’istruzioni venne progettato considerando esecuzione interpretata. La realizzazione di hw per l’esecuzione diretta divenne difficile • Anche i primi microprocessori erano macchine CISC (Motorola 68000) Calcolatori Elettronici, Beraldi, aa 03/04 Macchine CISC Un esempio numerico • Ammettiamo che una istruzione macchina richieda 10 microistruzioni e 2 accessi in memoria centrale (es. leggere gli operandi) • Una microistruzione è eseguita in 100 ns, l’accesso in memoria in 500 ns • Il costo totale è: 10 x 100 + 2 x 500 = 2000 ns = 2µs • In caso di esecuzione hw ideale (costo esecuzione 0), tempo = 2x500=1000ns = 1µs • Nota, in caso di tempo di accesso alle microistruzioni pari al tempo di accesso in memoria centrale (10+2)x500 = 6000 ns =6µs Calcolatori Elettronici, Beraldi, aa 03/04 Architettura RISC Reduced Instruction Set Computer • Filosofia proposta alle fine degli anni 70 • Nell’80 progettazione del MIPS, e poi del chip SPARC • L’idea chiave è progettare un set istruzioni in modo da aumentare il numero di istruzioni che, nell’unità di tempo, possono iniziare l’esecuzione (idealmente una per colpo di clock) Calcolatori Elettronici, Beraldi, aa 03/04 Principi di progettazione del set istruzioni 1. 2. 3. 4. Tutte le istruzioni frequenti eseguite direttamente in hw Massimizzare la velocità con la quale vengono iniziate nuove istruzioni – – – 5. La durata dell’esecuzione di una singola istruzione può anche aumentare Rendere semplice la decodifica Istruzioni con pochi formati Solo due istruzioni, load e store, dovrebbero accedere in memoria Ciò consente da un lato di effettuare operazioni con operandi nei registri e dall’altro di sovrapporre l’accesso alla memoria con l’esecuzione di altre operazioni Disporre di molti registri – Ciò per evitare di dover ricaricare un registro Calcolatori Elettronici, Beraldi, aa 03/04 Tecniche per aumentare le prestazioni • In generale esistono varie tecniche per migliorare le prestazioni di un sistema di calcolo… • Aumentare la frequenza della CPU e/o diminuire CPI • • – Sfruttare qualche forma di parallelismo a livello della singola istruzione Ridurre il tempo di accesso alla memoria Impiego di più processori Calcolatori Elettronici, Beraldi, aa 03/04 Memoria cache Pipelining • Ann, Brian, Cathy, Dave hanno un carico di panni da lavare,asciugare,stirare • Lavatrice 30 minuti • Asciugatrice 40 minuti • Stiratura takes 20 minuti • (*)Tratto da “Hennessy,Patterson, Architettura dei computer: un approccio quantitativo, Jackson” A B C D Calcolatori Elettronici, Beraldi, aa 03/04 Sequential Laundry 6 PM 7 8 9 10 11 Midnight Time 30 T a s k O r d e r 40 20 30 40 20 30 A B C D • Sequential laundry = 6 ore per 4 carichi Calcolatori Elettronici, Beraldi, aa 03/04 40 20 30 40 20 Pipelined Laundry 6 PM 7 8 9 10 11 Midnight 10 11 Midnight Time 30 T a s k O r d e r 40 40 40 40 20 A B C D • Pipelined laundry = 3.5 ore per 4 carichi Calcolatori Elettronici, Beraldi, aa 03/04 Pipelined Laundry 6 PM 7 8 9 Time 30 T a s k O r d e r 40 A B 40 40 40 20 • • • • • • C D Calcolatori Elettronici, Beraldi, aa 03/04 Il ritardo (latenza) non diminuisice Aumenta il throughput del sistema Pipeline limitato dallo stadio più lento Più task simultaneamente Speedup potenziale= numero di stadi E’ richiesto del tempo per riempire la pipeline Parallelismo a livello istruzione Pipelining • • Suddividere l’esecuzione dell’istruzione in fasi consecutive Ogni fase viene gestita da uno stadio – • • I risultati dello stadio i sono passati in ingresso allo stadio i+1 Aumenta il numero delle istruzioni iniziate per secondo (banda) – • Gli stadi possono lavorare in parallelo In teoria un aumento della banda pari al numero di stadi In generale la latenza (ossia la durata totale dell’esecuzione di una istruzione) aumenta Calcolatori Elettronici, Beraldi, aa 03/04 Parallelismo a livello istruzione Pipelining Calcolatori Elettronici, Beraldi, aa 03/04 Parallelismo a livello istruzione Architetture superscalari (doppia pipeline) • Pipeline specializzate • Le istruzioni eseguite in parallelo devono essere compatibili (non usare gli stessi registri o dipendere dal risultato delle altre istruzioni) Calcolatori Elettronici, Beraldi, aa 03/04 Parallelismo a livello istruzione Architetture superscalari (unità funzionali multiple) • Le unità dello stadio 4 sono più lente delle altre (richiedono + cicli di clock) – Devono accedere alla memoria, o eseguire operazioni fp Calcolatori Elettronici, Beraldi, aa 03/04 Memoria principale (RAM – Random Access Memory) nozioni di base 1 byte • • • • Insieme di n celle di memoria Ogni cella memorizza un byte Ogni cella è univocamente individuata da un indirizzo IND (indirizzo di memoria) k byte formano una parola (es: k=4) – Parola allineata se inizia dal byte con indirizzo IND tale IND mod k =0 n • • Sono possibili due operazioni: lettura e scrittura Caratteristiche principali: – capacità (tipica 64-256 MB), • 1K=1024,1 M = 1024K, – tempo di accesso indipendente dalla posizione (tipico, 10 ns), – Le informazioni sono volatili (non persistono se l’alimentazione viene meno) Calcolatori Elettronici, Beraldi, aa 03/04 Interazione CPU-Memoria schema di principio indirizzo CPU Read MEMORIA dato Di norma l’accesso alla memoria è maggiore di circa un fattore 10 rispetto alla velocità della CPU indirizzo CPU Write dato Calcolatori Elettronici, Beraldi, aa 03/04 MEMORIA Memorie cache Nozioni di base • • • • E’ una memoria di piccole dimensioni (~KB) e veloce (rispetto alla memoria principale) Impiegata per diminuire la latenza degli accessi in memoria Se il dato richiesto è in cache risparmio il tempo di accesso al dato è quello della cache (c) Se il dato non è in cache deve essere aggiunto il tempo d’accesso alla memoria centrale (m). – Il dato viene trasferito anche in cache (si copia una cache line) Calcolatori Elettronici, Beraldi, aa 03/04 Memorie cache Schema di principio CPU Richiesta Calcolatori Elettronici, Beraldi, aa 03/04 cache cache miss richiesta a memoria Memoria Memorie cache Nozioni di base • Calcolo dei tempi – Parametri: c= tempo di accesso alla cache, m= tempo di accesso alle memoria principale, h=percentuale di successi (hit ratio) – tempo medio di accesso= c + (1-h) m • Due alternative – Cache unificata per dati ed istruzioni – Cache separate (split cache) per dati ed istruzioni • Architettura Harvard Calcolatori Elettronici, Beraldi, aa 03/04 Memorie cache Principi di località • • Località Spaziale – dati e/o istruzioni memorizzati ad indirizzi vicini sono utilizzati dai programmi in tempi ravvicinati – Esempi • scansioni di strutture dati come matrici e vettori • esecuzione di codice sequenziale Località Temporale – programma tende ad utilizzare in un breve intervallo di tempo più volte lo stesso dato e/o istruzione, esempi: • esecuzione di cicli • esecuzione sottoprogrammi • strutture dati tipo stack • Variabili tipo indice Calcolatori Elettronici, Beraldi, aa 03/04 Memoria secondaria E’ una memoria persistente • Dischi magnetici • – Fissi (Hard Disk, HD) • Diverse prestazioni: IDE, EIDE, SCISI,.. – Removibili (Floppy) • CD-ROM • DVD • Memory stick Calcolatori Elettronici, Beraldi, aa 03/04 Dischi magnetici • Registrazione seriale su tracce concentriche – 800-2000 tracce/cm (larghe ~10µ) • Tracce divise in settori contenenti i dati, un preambolo e un ECC (ErrorCorrecting Code) – la capacità di memorizzazione dopo la formattazione scende del 15% rispetto alla capacità nuda • Velocità di rotazione costante (~7200 RPM) – Densità di registrazione (bit/cm) variabile con il raggio della traccia • Velocità di trasferimento di 5-20 MB/sec – Burst rate (trasferimento singolo settore) – Sustained rate (valore medio) Calcolatori Elettronici, Beraldi, aa 03/04 Dischi winchester • Tempo di seek – spostamento delle testine sulla traccia desiderata (~ 5-10ms) • Latenza di rotazione – spostamento sul settore desiderato supposto che la testina sia gia’ sulla traccia – Influenzato dalla velocità di rotazione (RPM) • Capacità – FD: 1.44 MB – HD: 20-100 GB • • 18 x 80 x 2 x 512 byte Cache interna Calcolatori Elettronici, Beraldi, aa 03/04 Esercizio • Si supponga che un HD sia caratterizzato dai seguenti parametri – – – • Tempo medio di posizionamento, ts = 15 ms Numero di giri al minuto, rpm= 7200 Numero di settori per traccia, Nb = 32 Si calcoli 1. 2. 3. Il tempo medio di trasferimento di un blocco Il tempo medio di trasferimento di 10 settori consecutivi Il tempo medio di trasferimento di 10 settori casuali Calcolatori Elettronici, Beraldi, aa 03/04 Soluzione • La latenza dovuta alla rotazione, espressa in ms, vale tr [ms] = (0,5)x60x1000/rpm – • t b t s Poiché la testina effettua un giro completo (ossia 360°) in circa 2x4,15=8,30 ms, un angolo pari 360/Nb ° verrà percorso in 8,4/Nb ms – • t r 0,5 x 60 x 1000 / 7200 = 300/72 ~ 4,15ms tr=8,30/32 ~ 0,26 ms Soluzione – Trasferimento di un blocco – Trasferimento di 10 blocchi consecutivi – Trasferimento 10 blocchi casuali • • • 15ms+4,15+0,26=19,41 ms 15 + 4,15 + 10 x 0,26 = 21,75 ms 10 x(19,41) = 194,1 ms (~10 volte in più) Calcolatori Elettronici, Beraldi, aa 03/04 Dischi IDE, EIDE, SCISI • IDE (Integrated Drive Electronics) – Standard nato con il PC XT IBM – Limiti • 16 testine, 63 settori, 1024 cilindri • 528 MB Il controllore gestisce al più 2 unità disco • EIDE (Extended IDE) – Estensione fino a 224 settori, controllore gestisce fino a 4 unità disco • SCISI (“scasi”, Small Computer Standard Interface) – Connessioni a daisy chain Calcolatori Elettronici, Beraldi, aa 03/04 Altri supporti • CD-ROM – Rotazione variabile 200-520 RPM per – Velocità di rotazione espresse come multiplo della velocità CD-ROM audio (75 avere flusso dati uniforme (musica) settori/sec) • – • CD-R – Laser a due potenze • • • • alta (scrive): ‘brucia’ delle areole nello strato colorato bassa legge: come nei CD-ROM Solco pre-inciso per guidare il laser CD-WR – Laser a tre potenze: • • 2x,..,32x,.. Capacità: 650 MB utili supporto a due stati: amorfo e cristallino DVD (Digital Versatile Disk) – Capacità 4.7 GB, 8.5 GB, 9.4 GB, 17 GB Calcolatori Elettronici, Beraldi, aa 03/04 Flash memory USB removable • Capacità dell’ordine di centinaia di byte (tipico, 256 MB, ma anche GB) • Dimensioni ridotte e rimovibili (Inseriscono sul bus USB) 512MB 2.2 GB Calcolatori Elettronici, Beraldi, aa 03/04 Gerarchia delle memorie Costo Calcolatori Elettronici, Beraldi, aa 03/04 Dispositivi per l’ingresso e l’uscita di dati • Un calcolatore acquisisce dall’esterno o trasferisce all’esterno dati mediante vari dispositivi • Un dispositivo ha due “parti” – Una parte collegata al computer mediante un controllore (controller) – Una parte visibile all’esterno dall’utente • Lo scambio dei dati avviene mediante un bus o mediante accesso diretto alla memoria (DMA) Calcolatori Elettronici, Beraldi, aa 03/04 Interrupt nozioni di base • • Un dispositivo può interrompere l’esecuzione del programma attualmente eseguito dalla CPU (interrupt) La CPU deve gestire l’interrupt e poi riprendere l’esecuzione del programma: – è funzionalmente analogo ad un meccanismo di chiamata a funzione nei linguaggi di programmazione • • Consente d’interagire con l’esterno E’ un meccanismo sfruttato dai SO multitasking (il clock interrompe periodicamente la CPU per far progredire un altro task) Interrupt . . . . . . . . . . Interrupt handler . . Calcolatori Elettronici, Beraldi, aa 03/04 Collegamento dei dispositivi I/O soluzione con bus unico Il bus è di norma dedicato ai trasferimenti CPU-Memoria I dispositivi possono “rubare” cicli di bus (cycle stealing) Calcolatori Elettronici, Beraldi, aa 03/04 Collegamento dei dispositivi I/O soluzione con bus unico • Il bus è una risorsa condivisa, come regolarne l’uso? • Protocollo (insieme di regole) di utilizzo Arbitro del bus Calcolatori Elettronici, Beraldi, aa 03/04 Collegamento dei dispositivi I/O soluzione con bus multiplo Calcolatori Elettronici, Beraldi, aa 03/04 Terminali • Si compongono di due parti – Tastiera – Schermo • Tipologie – A caratteri – Grafici – RS-232 Calcolatori Elettronici, Beraldi, aa 03/04 Terminali a carattere • Impiegano una memoria (memoria video) per la memorizzazione del codice ASCII del carattere e degli attributi • La memoria video è mappata nello spazio indirizzamento della memoria principale • Dimensione tipica della visualizzazione 25 x 80 (righe x colonne) 4000 byte • Quasi archeologia! Calcolatori Elettronici, Beraldi, aa 03/04 Terminali grafici • Unità minima che può essere visualizzata: pixel – Colore ottenuto mediante sovrapposizione dei 3 colori fondamentali additivi (Rosso, Verde, Blue) • Codifica del pixel mediante k bit (k=8,16,24) • Dimensioni dello schermo (4:3) – – – – 640 x 480 pixel 800 x 600 1024 x 768 1280 x 960 • Dot Pitch: La distanza fra due pixel dello stesso colore – Valori tipici: 0.31mm, .28mm, .27mm, .26mm, e .25mm. – Valori minori indicano qualità migliori • Schede grafiche con capacità di elaborazione per limitare trasferimento dati da RAM a RAM video, e evitare lavoro alla CPU Calcolatori Elettronici, Beraldi, aa 03/04 Stampanti • Getto d’inchiostro • Laser B/N • Laser a Colori • (Vedi sezione 2.4.4) Calcolatori Elettronici, Beraldi, aa 03/04 Modem • (Vedi sezione 2.4.5) Calcolatori Elettronici, Beraldi, aa 03/04 Modem • Calcolatori Elettronici, Beraldi, aa 03/04