220 likes | 489 Views
CALCOLATORI ELETTRONICI. Giovanni Danese Tel. 0382 985364 e-mail: gianni.danese@unipv.it Corsi di Laurea in Ingegneria Biomedica, in Ingegneria Elettronica e delle Telecomunicazioni e in Ingegneria Informatica orario delle lezioni : Lunedì 14-16 aula 8, Giovedì 14-16 aula 8
E N D
CALCOLATORI ELETTRONICI Giovanni Danese Tel. 0382 985364 e-mail: gianni.danese@unipv.it Corsi di Laurea in Ingegneria Biomedica, in Ingegneria Elettronica e delle Telecomunicazioni e in Ingegneria Informatica orario delle lezioni: Lunedì 14-16 aula 8, Giovedì 14-16 aula 8 orario di ricevimento: Martedì 16.45-17.45, Giovedì 16.45-17.45
Materiale didattico consigliato • Testo Consigliato: David A. Patterson, John L. Hennessy, Struttura e progetto dei calcolatoriZanichelli, 2010, Bologna, III edizione. (David A. Patterson, John L. Hennessy, “Computer Organization and Design” Elsevier – Morgan Kaufmann, 2009, IV edition) • David A. Patterson, John L. Hennessy, Struttura, organizzazione e progetto dei calcolatoriJackson libri, 1999, Milano, II edizione. • Documentazione varia è reperibile al sito: http://gamma.unipv.it/
Argomenti del corso: • 1. Architettura dei calcolatori • 2. Architettura di una CPU • 3. Linguaggio assemblativo • 4. L’aritmetica dei calcolatori • 5. L’ambiente di sviluppo dei progetti Prerequisiti Devono essere noti gli argomenti trattati nei corsi Fondamenti di Informatica e Fondamenti di Informatica (laboratorio)
Application Operating System Compiler Firmware Instr. Set Proc. I/O system Datapath & Control Digital Design Circuit Design Layout Architettura di un computer Diversi livelli di astrazione Instruction Set
Rappresentazione delle istruzioni Linguaggio ad alto livello (HLL) temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Compilatore lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Linguaggio Assembly Assemblatore 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Linguaggio Macchina Interpretazione macchina Segnali di controllo ° °
Struttura del software (1) • I linguaggi HLL permettono • progettazione in linguaggio ~ a quello naturale • una maggior concisione rispetto al linguaggio macchina • indipendenza dal calcolatore • Riutilizzo routine frequentemente impiegate librerie di subroutine • Un programma separato che supervisiona l’utilizzo della macchina da parte dei programmi utente sistema operativo • Software di sistema= insieme di programmi che forniscono servizi (Sistema Operativo, compilatori, assemblatori) • Software applicativo=programmi utente o mirati all’utente (editors, spreadsheet)
HW Sw sistema Struttura del software (2) Sw applicativo SOFTWARE Software appl. Software sistema Word Compilatori Sist. Op. Assembl. Memoria File I/O virtuale System drivers
Architettura del Set di Istruzioni Un importante livello di astrazione • interfaccia fra hardware e software di basso livello • standardizza il formato delle istruzioni e i pattern di bit a livello di linguaggio macchina • vantaggi: differenti implementazioni della stessa architettura • svantaggi: talora impossibilità di avvalersi di innovazioni tecnologiche • Architetture moderne di set di istruzioni • Digital Alpha (v1, v3) 1992-97 • HP PA-RISC (v1.1, v2.0) 1986-96 • Sun Sparc (v8, v9) 1987-95 • SGI MIPS (MIPS I, II, III, IV, V) 1986-96 • Intel (8086,80286,80386, 1978-96 80486, Pentium, MMX, ...)
Di cosa ci occuperemo • Le istruzioni: il linguaggio dei calcolatori (Cap. 2 Zanich, 3 Jacks) • L’aritmetica dei calcolatori (Cap. 3 Zanichelli, Cap. 4 Jackson) • Assemblatori, linker ed il simulatore SPIM (App. B Zanichelli e App. A Jackson) • Fondamenti sulla progettazione di reti logiche (App. C CD Zanichelli e Jackson)
ALU Unità di controllo Architettura della macchina di Von Neumann Unità di ingresso Unità di uscita Memoria Risultati Programmi e dati CPU Unità centrale
CPU Unità di controllo ALU MBR MAR Memoria ROM MBR MAR Memoria RAM Unità Centrale D A T A B U S CONTROL B U S AD D R E SS B U S
Microprocessori e Bus • I microprocessori sono dispositivi elettronici che implementano in un unico circuito integrato le funzioni di una intera CPU. I microprocessori attuali hanno bus dati a 8, 16, 32, 64 bit. • Il bus dati (data bus) esprime la capacità di elaborazione del processore (quanti bit possono essere elaborati in parallelo) • Il bus indirizzi (address bus) esprime la capacità di memorizzazione del processore (2m celle di memoria, se m è il numero dei bit del bus) • La capacità di indirizzamento indica il numero di celle diverse cui si può accedere: 210 Byte = 1024 byte = 1 KByte 220 Byte = 1048576 byte = 1 Mbyte 230 Byte = 1073741824 byte = 1 GByte
Un Esempio • Variazione nella precisione di misura di 1 Kg. in un sistema di pesatura basato su microprocessori con diversa dimensione del bus dati Numero di bit bus dati 4 8 16 Dati rappresentabili 24=16 28= 256 216= 65536 Precisione relativa 6.25% ~3.9 ‰ ~0.015‰ Precisione max. 62.5 gr ~3.9 gr ~0.015 gr
Osservazioni • I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16 bit con capacità di indirizzamento di 64 KB • I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a 20-24 bit con capacità di indirizzamento di 1-16 MB • I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con capacità di indirizzamento fino a circa 1019 byte • I microprocessori Single Chip riuniscono in un unico circuito integrato più di uno dei blocchi costituenti un microcalcolatore (eventualmente tutti).
Architettura di una CPU BUS DATI ESTERNO BUS DATI INTERNO ACC C O N T R. D E C O D. I N S T. R E G. SP PC R e g 0 R e g N F L A G …. ALU BUS INDIRIZZI INTERNO BUS IND. ESTERNO
Codice Operativo Operando 1 Operando 2 Ciclo di esecuzione di un’istruzione • FETCH (prelevamento dell’istruzione) • DECODIFICA • ESECUZIONE La memoria (ROM e RAM) contiene il programma e i dati sui quali opera la CPU. Il Program Counter (PC) contiene l’indirizzo della cella di memoria con la prossima istruzione da eseguire. FORMATO DELLE ISTRUZIONI Campo che caratterizza le varie istruzioni Gli operandi possono essere 0, 1, 2
Sequenza di operazioni elementari per l’esecuzione di ogni singola istruzione • FETCH: vengono letti i campi che costituiscono l’istruzione: 1) (PC)MAR 2) ((MAR)) MBR; (PC)+1 PC 3) (MBR) IR I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codice operativo (OP Code) dell’istruzione corrente. Passi analoghi permettono di caricare in opportuni registri della CPU gli operandi presenti nell’istruzione. In tal caso, nel passo 3 la destinazione del dato proveniente dalla memoria non è più IR, ma opportuni registri. • DECODE: viene identificata l’istruzione corrente sulla base dell’OP Code • EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consiste nell’inviare comandi e dati alle unità interessate. • P.S. MAR= Memory Address Register; MBR: Memory Buffer Register • Notazione: (X) Y significa: “Il contenuto del registro X viene trasferito nel registro Y
Codice Operativo Sorgente Destinazione Mod. indirizzamento Formato delle istruzioni • Le istruzioni sono codificate da stringhe di bit. • Una volta caricata nell’IR, un’istruzione deve essere decodificata ed eseguita. A tal scopo l’unità di controllo deve conoscere: • codice operativo • sorgente: dati su cui operare • destinatario: dove porre il risultato e, se sorgente e destinazione sono in memoria, la modalità di indirizzamento Esempio 1: Somma tra il contenuto del registro R2 e il contenuto dell’accumulatore. Il risultato va nell’accumulatore FORMATO codice operativo FETCH come in precedenza ESECUZIONE (R2)+(ACC)ACC
Esempio di esecuzione di istruzioni complete Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo è specificato nell’istruzione ed il contenuto dell’accumulatore; il risultato va nell’accumulatore • FORMATO: codice operativo+operando • FETCH: 1) (PC)MAR 4) (PC)MAR 2) ((MAR)) MBR; (PC)+1 PC 5) ((MAR)) MBR; (PC)+1 PC 3) (MBR) IR 6) (MBR) Rn • EXECUTE: 1) (Rn) MAR 3) (MBR) Rn 2) ((MAR)) MBR 4) (Rn)+(ACC) ACC
Esempio di esecuzione di istruzioni complete Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui indirizzo è specificato all’interno dell’istruzione corrente: • FORMATO: codice operativo+operando • FETCH: 1) (PC)MAR 4) (PC)MAR 2) ((MAR)) MBR; (PC)+1 PC 5) ((MAR)) MBR; (PC)+1 PC 3) (MBR) IR 6) (MBR) Rn • EXECUTE: 1) (Rn) PC