La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 La struttura hardware. 2 Esecuzione di programmi Algoritmo Codifica in un linguaggio di programmazione C, Java etc. Programma Compilatore Input : programma.

Presentazioni simili


Presentazione sul tema: "1 La struttura hardware. 2 Esecuzione di programmi Algoritmo Codifica in un linguaggio di programmazione C, Java etc. Programma Compilatore Input : programma."— Transcript della presentazione:

1 1 La struttura hardware

2 2 Esecuzione di programmi Algoritmo Codifica in un linguaggio di programmazione C, Java etc. Programma Compilatore Input : programma Output : rappresentazione di dati ed istruzioni elementari comprensibile alla macchina Eseguibile Effetto : esecuzione delle istruzioni sulla macchina fisica Hardware

3 3 Esecuzione di programmi (2) Leseguibile dipende dalla macchina che dobbiamo specializzare (es. processore Intel, o processore SUN), dal sistema operativo (es. Windows, Linux …) e dal linguaggio usato (es: C o Java) Gli eseguibili di alcuni linguaggi (come Java) contengono operazioni complesse che non possono essere eseguite direttamente! In questo caso si utilizza un programma interprete (es Java Virtual Machine) che realizza le operazioni elementari complesse

4 4 Esecuzione di programmi (3) Algoritmo Codifica in un linguaggio di programmazione Java-like Programma Compilatore Input : programma Output : rappresentazione di dati ed istruzioni elementari comprensibile allinterprete (es JVM) Eseguibile Effetto : esecuzione delle istruzioni elementari dellinterprete sulla macchina fisica Interprete Hardware

5 5 Esecuzione di programmi (4) Algoritmo Codifica in un linguaggio di programmazione (C, Java etc) Programma Compilatore Input : programma Output : rappresentazione di dati ed istruzioni elementari comprensibile alla macchina o allinterprete Eseguibile Sistema operativo Effetto : esecuzione delle istruzioni sulla macchina fisica Interprete Hardware

6 6 Ritorniamo alla …. struttura generale di un calcolatore Il calcolatore di Von Neumann Memoria (RAM,dischi, etc) Mantiene Dati e Programmi Processore (CPU) E un esecutore capace di interpretare i singoli passi richiesti dai programmi (istruzioni elementari) Sottosistema di Interfaccia Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, micr., stampante, schermo, )

7 7 Struttura di un calcolatore (2) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

8 8 Struttura di un calcolatore (3) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem indirizzi Sequenza di parole (un array …)

9 9 Struttura di un calcolatore (4) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem indirizzi Sequenza di parole (un array …) Valore da trasferire Dove trasferirlo Direzione di trasferimento, unità coinvolte etc.

10 10 Struttura di un calcolatore (5) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

11 11 Operazioni elementari eseguibili da un processore Dati numerici (binari) : –operazioni matematiche : +,-,divisione e moltiplicazione per potenze di due –confronti con 0 –operazioni logiche o booleane: AND, OR, XOR, NOT Dati numerici e non –letture/scritture nella memoria, letture e scritture nei registri di controllo dei dispositivi –uguaglianza e disuguaglianza di due rappresentazioni

12 12 Operazioni elementari eseguibili da un processore (2) Operazioni di controllo di flusso : –salti condizionati (corrispondono alla combinazione di istruzioni di controllo se ( …) vai al passo X ) –salti incondizionati (corrispondono alla istruzioni di controllo vai al passo X ) –chiamate di un sottoprogramma (CALL) –terminazione del programma (RETURN)

13 13 Operazioni elementari eseguibili da un processore (3) Abbiamo elencato le funzionalità tipiche, i loro nomi ed il funzionamento specifico variano da macchina a macchina Esistono sul mercato processori compatibili cioè in grado di eseguire lo stesso insieme di istruzioni (facilita la portabilità dei programmi in linguaggio macchina) –es : Intel Pentium, IBM-Cyrix, AMD

14 14 Operazioni booleane Sono operazioni che lavorano su variabili che assumono valori di verità o boolani (vero, falso) : –es : se fuori piove e mi sposto a piedi allora apro lombrello –La due sotto-condizioni (fuori piove, mi sposto a piedi) avranno un valore vero/falso che dipende dalla situzione in cui mi trovo –loperatore booleano e permette di combinare fra loro due valori booleani –il risultato delloperazione e è il valore vero se entrambi gli operando sono veri e falso altrimenti

15 15 Operazioni booleane (2) Con le operazioni booleane è possibile complicare arbitrariamente le condizioni delle strutture se…allora…altrimenti e finchè...ripeti Anche i valori booleani si possono rappresentare in codifica binaria: generalmente –1 rappresenta VERO –0 rappresenta FALSO La definizione di ciascuna operazione booleana si può dare sotto forma di tabellina (la tabella di verità)

16 16 Operazioni booleane (3) Le operazioni boolane più comuni sono : Operazione di and ( ) : –A and B : combina i valori di A e B in modo che il risultato sia vero solo se sono veri sia A che B Operazione di or ( ) : –A or B : combina i valori di A e B in modo che il risultato sia vero solo almeno uno fra A e B è vero Operazione di not ( ) : –not A : restituisce falso se A e vero e viceversa

17 17 Tabelle di verità delle operazioni and, or e not

18 18 Operazioni logiche/booleane : perché sono importanti Sono facili da realizzare utilizzando circuiti elementari È possibile dimostrare che tutte le funzioni interessanti possono essere calcolate utilizzando una opportuna combinazione delle funzioni logiche Esiste un procedimento automatico per trovare questa combinazione, che viene utilizzato per realizzare le funzioni disponibili nellhw

19 19 Operazioni logiche : perché sono importanti (2) Quando si scrivono programmi che parlano con lhw spesso dobbiamo manipolare sequenze binarie direttamente Usando le funzioni logiche è sempre possibile costruire la manipolazione che ci interessa –es: mettere a 0 il terzo bit di una rappresentazione consideriamo la rappr mi costruisco la maschera e poi calcolo AND bit a bit AND

20 20 Linguaggio macchina e assembler Linguaggio macchina : linguaggio comprensibile direttamente dal processore della macchina (binario) Assembler : versione simbolica del linguaggio macchina in cui i nomi delle operazioni e degli operandi sono indicati con codici simbolici

21 21 Linguaggio macchina e assembler (2) Per parlare direttamente con la macchina si usa lassembler Assemblatori : programmi che traducono il codice simbolico in sequenze di 0 e 1 Nei prossimi lucidi vediamo un esempio di un tipico programma assembler e i passi necessari per la sua traduzione in binario

22 22 Linguaggio macchina e assembler (3) Esempio: come si realizza in assembler loperazione x=y+2 : LOAD Y, R1 ADD 2, R1 STORE R1, X Y X Indirizzi di due parole di memoria che rappresentano le variabili intere x e y 17 R1 Registro interno del processore (variabile temporanea su cui lavorare) Legge il valore in Y e lo scrive in R1 memoria

23 23 Linguaggio macchina e assembler (4) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X Y X Indirizzi di due parole di memoria che rappresentano interi 34 R1 Registro interno del processore (variabile temporanea su cui lavorare) Aggiunge 2 a R1 memoria

24 24 Linguaggio macchina e assembler (5) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X Y X Indirizzi di due parole di memoria che rappresentano interi 36 R1 Registro interno del processore (variabile temporanea su cui lavorare) Scrive il contenuto di R1 nella parola di indirizzo X memoria

25 25 Linguaggio macchina e assembler (6) Esempio x=y+2 (assembler) LOAD Y, R1 ADD 2, R1 STORE R1, X Y X Situazione finale della memoria 36 R1 memoria

26 26 Linguaggio macchina e assembler (7) Traduzione binaria (in linguaggio macchina) di LOAD Y, R1 ADD 2, R1 STORE R1, X Prima di tutto dobbiamo decidere quale è il vero indirizzo di X e Y memoria Y X

27 27 Linguaggio macchina e assembler (8) Codifica binaria di LOAD 01101, R1 ADD 2, R1 STORE R1, Ogni operazione si codifica secondo un formato stabilito da chi costruisce lhw –un formato semplificato è Codice operativoModo 1Op1Modo 2Op2

28 28 Linguaggio macchina e assembler (9) Vediamo i vari campi del formato : Codice operativoModo1Op1Modo2Op2 È la codifica delloperazione da eseguire es: ADD 0001 LOAD 0110 STORE 0111

29 29 Linguaggio macchina e assembler (9) Vediamo i vari campi del formato : Codice operativoModo1Op1Modo2Op2 È la codifica primo operando, MODO1 dice a cosa si riferisce OP1 es: se MODO1 = 00 loperando è nel registro interno del processore (e OP1 è il numero del registro) se MODO1 = 01 loperando è in memoria (e OP1 è lindirizzo) se MODO1 = 10 loperando è immediato, cioè OP1 è direttamente il valore delloperando Lo stesso vale per il secondo operando!

30 30 Linguaggio macchina e assembler (10) Tipicamente la codifica di una istruzione lunga come una parola o multipli della parola per poterla leggere dalla memoria in modo più efficiente : –es : con parole di 4 byte (32 bit) Codice operativoModo1Op1Modo2Op2 2bit 4bit 12bit

31 31 Linguaggio macchina e assembler (11) Problema ….. –es : con 12 bit posso indirizzare solo 2 12 parole di memoria centrale (RAM) ! Cioè posso avere al massimo una RAM di 4K parole … se ne ho di più (oggi si arriva tranquillamente a 512K e siamo sempre in aumento …) devo inventarmi codifiche diverse…. Codice operativoModo1Op1Modo2Op2 2bit 4bit 12bit

32 32 Linguaggio macchina e assembler (12) Codifica binaria di LOAD 01101, R1 ADD 2, R1 STORE R1, Codice operativoModo1Op1Modo2Op2 MODI 00 registro 01 memoria 10 immediato CODICI OPERATIVI ADD 0001 LOAD 0110 STORE bit 4bit 12bit load add store

33 33 Il processore Come è strutturato il processore per riuscire ad eseguire i programmi in linguaggio macchina che abbiamo appena visto …. Dati e programmi sono codificati in binario e risiedono in Memoria Centrale (RAM) ad opportuni indirizzi

34 34 Il processore (2) Esegue il seguente ciclo ininterrottamente : 1. (fetch) legge una nuova istruzione da eseguire dalla memoria centrale 2. (decode) risale alla operazione richiesta decodificando la rappresentazione binaria 3. (execute) porta a termine loperazione richiesta

35 35 Il processore: struttura base Processore Parte controllo PC IR PSW R0 R1 R2... R16 Registri generali ALU Operazione Esegui Esito MARMAR MDRMDR MemoriacentraleMemoriacentrale Bus dati Bus indirizzi Bus controllo Registro/i coinvolti

36 36 Il processore struttura base (2) PC (program counter) indica lindirizzo di memoria della prossima istruzione da eseguire IR (Instruction register) contiene copia della codifica dellistruzione da eseguire MAR, MDR (Memory Address Register, Memory Data Register) contengono lindirizzo della cella di memoria che vogliamo leggere/scrivere (MAR) ed i dati da/per la memoria (MDR)

37 37 Il processore struttura base (3) PSW (program status word) contiene informazioni, opportunamente codificate, sullesito di operazioni aritmetico logiche o sullesito di operazioni di confronto e informazioni sul funzionamento della macchina (le vedremo qundo parleremo dei sistemi operativi) ALU (Arithmetic-Logic Unit) effettua operazioni di tipo aritmetico e logico- booleano (+,-,and,or …)

38 38 Un esempio : ADD 2, R1 (fetch 1) Processore Parte controllo 40 IC PSW R0 R1 R2... R16 Registri generali ALU Operazione Esegui Esito MARMAR MDRMDR Bus dati Bus indirizzi Bus controllo Registro/i coinvolti memoria Indirizzo della istruzione codifica PC

39 39 Un esempio : ADD 2, R1 (fetch 2) Processore Parte controllo 41 IC PSW R0 R1 R2... R16 Registri generali ALU Operazione Esegui Esito MDRMDR Bus dati Bus indirizzi Registro/i coinvolti memoria Indirizzo della istruzione codifica PC 40 MAR Leggi!

40 40 Un esempio : ADD 2, R1 (fetch 3) Processore Parte controllo PSW R0 R1 R2... R16 Registri generali ALU Operazione Esegui Esito Bus dati Bus indirizzi Registro/i coinvolti memoria PC MAR MDR IC

41 41 Un esempio : ADD 2, R1 (dec) Processore Parte controllo PSW R0 R1 R2... R16 Registri generali ALU add Esegui Esito Bus dati Bus indirizzi Registro/i coinvolti memoria PC MAR MDR IC

42 42 Un esempio : ADD 2, R1 (exe 1) Processore Parte controllo PSW R1 R2... R16 Registri generali ALU add Esegui Esito Bus dati Bus indirizzi Registro/i coinvolti memoria PC MAR MDR IC

43 43 Un esempio : ADD 2, R1 (exe 2) Processore Parte controllo PSW R2... R16 Registri generali ALU add Esegui Esito Bus dati Bus indirizzi Registro/i coinvolti memoria PC MAR MDR IC

44 44 Un esempio : ADD 2, R1 (exe 3) Processore Parte controllo PSW R2... R16 Registri generali ALU Esito Bus dati Bus indirizzi Registro/i coinvolti memoria PC MAR MDR IC

45 45 Il processore : il clock ed i GHz I vari sotto-passi che compongono lesecuzione di una istruzione seguono algoritmi cablati nei circuiti della macchina Lesecuzione è sincrona, –cioè esiste un segnale di inizio della sottooperazione (detto tick, in quanto generato da un clock) riconosciuto da tutti i componenti La frequenza con cui viene inviato il tick è misurata in numero di tick al secondo (Hz) –nei computer attuali 1Ghz (giga hertz), ovvero uno al nanosecondo, o più

46 46 Il processore : nella realtà... La struttura è estremamente più complessa –ci sono più registri interni di quelli mostrati, es Stack Pointer (SP) usato per implementare le chiamate a sottoprogrammi Vengono eseguite più attività in parallelo: –pipelining : si eseguono fasi diverse di istruzioni consecutive contemporaneamente (es. fetch I3, decode I2, execute I1...) –superscalari : più istruzioni sono eseguite in parallelo (duplicazione unità funzionali)

47 47 Il processore : nella realtà … (2) E molto altro ancora …. Per chi è interessato –Patterson Hennessy. Computer Organization and Design: The Hardware / Software Interface (3ed). Morgan and Kaufmann, 2004

48 48 Le memorie Cosa vorremmo : –una memoria veloce –abbastanza grande da contenere tutti i dati e i programmi che servono –persistente (o non volatile) cioè capace di mantenere il suo contenuto anche in assenza di alimentazione elettrica –di basso costo

49 49 Le memorie (2) Cosa può fare la tecnologia ? –Memorie relativamente piccole (qualche centinaio di MB) e veloci, volatili, a costo medio alto RAM : lettura e scrittura nellordine delle decine di nanosecondi per parola –Memorie grandi, molto capienti (decine di GB), persistenti e lente Dischi rigidi : lettura e scrittura nellordine di alcuni millisecondi per blocco (qualche KB) Nastri magnetici, CD ROM, DVD

50 50 Le memorie (3) I computer quindi utilizzano supporti di memorizzazione di più tipi : –una memoria centrale, tipo RAM : contiene i programmi durante la loro esecuzione ed i dati relativi altrimenti il processore sarebbe per la maggior parte del tempo fermo in attesa di dati da/per la memoria –una o più memorie di massa (dischi etc.) : che mantengono tutti i dati ed i programmi in attesa di essere eseguiti (in modo persistente)

51 51 La memoria centrale

52 52 Struttura di un calcolatore (ancora!) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

53 53 Struttura di una RAM elettronica... Bus dati Bus indirizzi Bus controllo memoria Decodificatore Dato letto o da scrivere Parola : gruppo minimo di bit indirizzabili Indirizzo

54 54 Struttura di una RAM elettronica (2) La dimensione massima della RAM è data dalla dimensione della parte indirizzi del bus –al solito con N linee posso indirizzare da 0 a 2 N-1 Velocità, ordine decine di nanosecondi –ancora troppo lenta per i processori attuali (1 op elementare al nanosecondo o più)

55 55 Struttura di una RAM elettronica (3) E allora ? Si usano memorie velocissime e molto piccole realizzate con tecnologia speciale Si usa il principio dello scaffale e della scrivania ovvero –tengo impilati sulla scrivania i testi che sto consultando per la mia attività corrente –se prendo un nuovo testo dallo scaffale generalmente poi lo poso per un po sulla scrivania in attesa che mi serva di nuovo

56 56 Memoria cache Processore Cache Memoria piccola e molto veloce RAM

57 57 Memoria cache Processore Cache Memoria piccola e molto veloce RAM Tutti i dati Copia dei dati usati di recente

58 58 Memoria cache (2) Algoritmo seguito: Il dato viene cercato prima nella cache Se è presente abbiamo finito (cache hit) Se non è presente si legge in RAM e si mette una copia nella cache (cache miss) Per le scritture generalmente si scrive la RAM e si aggiorna la copia se cè

59 59 Memoria cache (3) Costo medio di un accesso : tempo_RAM *p + tempo_cache * (1-p) –p è un valore compreso nellintervallo (0,1) ed esprime la probabilità che si verifichi un cache miss –p può essere reso piccolo usando il principio di località

60 60 Memoria cache (4) Località temporale se un programma accede una parola al tempo t è molto probabile che la stessa parola sia acceduta di nuovo a breve Località spaziale se il programma accede allindirizzo K è molto probabile che anche gli indirizzi vicini siano acceduti a breve

61 61 Memoria cache (5) E se devo inserire un nuovo dato e non cè più posto nella memoria cache? –Questo accade perché le memorie cache sono molto più piccole delle RAM (< 1MB) –La soluzione è sovrascrivere una posizione già in uso. –Ci sono diverse strategie : di solito si sovrascrive la posizione con dati utilizzati meno di recente (strategia LRU Least Recently Used) applicando il principio di località. –Nelle cache si usa con successo anche la Random

62 62 Memoria cache (6) I computer attuali hanno tutti 1 o più livelli di cache Si riesce ad approssimare la velocità della memoria più piccola e le dimensioni della memoria grande a prezzi contenuti

63 63 Le memorie secondarie

64 64 Hardware del disco (1) Struttura di un disco rigido Braccio (direzioni movimento) Testine (una per superfice) Superfici 0 1

65 65 Hardware del disco (2) Ogni superficie è divisa in tracce concentriche (una per ogni possibile posizione della testina) traccia settore Unità minima di informazione leggibile/scrivibile Ampiezza standard: 512 byte

66 66 Struttura di un settore preambolodati ECC Codici correttori di errore : dati in più per accorgersi se la lettura è andata bene dati Permette alla testina di capire che sta iniziando un nuovo settore, fornisce il numero del settore etc

67 67 Sommario memorie No CD-ROM 650 MB 10 ms ca No CD-RW DVD 17 GB 10 ms ca No ( Digital Versatile Disc )

68 68 Dispositivi di ingresso/uscita (I/O) (o periferiche)

69 69 Struttura di un calcolatore (5) RAM (memoria centrale) Processore bus Linee dati, indirizzi e controllo Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O Interfaccia di I/O schermo dischi mouse modem

70 70 La connessione dei dispositivi di I/0 (periferiche) Linterfaccia (adapter) : –traduce i segnali interni al calcolatore in modo comprensibile alla periferica –mantiene informazioni sullo stato della periferica La periferica –è connessa allinterfaccia tramite porte di I/O (mouse, tastiera …) –oppure è integrata assieme allinterfaccia internamente al calcolatore (dischi, schede di rete)

71 71 La connessione dei dispositivi di I/0 (periferiche) (2) Diversi tipi di porte : –seriali (i bit arrivano uno alla volta) mouse, modem, collegamenti wireless,IR –parallela (tutto il byte assieme) stampante Diversi standard per scambiare il segnale sui vari tipi di porte : –seriale : RS - 232C, USB, Firewire,Bluetooth –parallela : Centronics

72 72 La connessione dei dispositivi di I/0 (periferiche) (3) Interfaccia I/O Registro dati Registro stato Unità di controllo Bus dati Bus indirizzi Bus controllo Periferica porta Sottoprogramma per realizzare loperazione richiesta Operazione / esiti Dati da/per la periferica

73 73 La connessione dei dispositivi di I/0 (periferiche) (4) Vari tipi di gestione delle interazioni con le periferiche –a controllo di programma : il processore esegue personalmente tutti i trasferimenti dalla RAM alle periferiche e viceversa –in DMA (Direct Memory Transfer) linterfaccia può accedere direttamente alla RAM possibilità di trasferire dati mentre il processore elabora la periferica avverte quando ha finito attraverso una particolare linea di controllo del bus (interruzione)

74 74 Lhardware del Video (1) Si usano delle schede di interfaccia speciali che effettuano tutto il calcolo necessario allinvio dei segnali analogici per il video Parallel port Segnale analogico per il dispositivo Scheda grafica

75 75 Domande ed esercizi È possibile far eseguire direttamente al processore un programma ad alto livello (C/Java)? Che differenza cè fra linguaggio assembler e linguaggio macchina? Cosa contiene un file eseguibile? Cosè un compilatore?

76 76 Domande ed esercizi (2) In cosa consiste il ciclo fetch, decode execute? Che differenza cè fra una memoria persistente ed una volatile? Supponedo un hit-rate dell80%, tempo di accesso alla cache di 1ns, e tempo di accesso in RAM di 70ns, calcolare il tempo medio di ogni accesso alla memoria.

77 77 Domande ed esercizi (3) Perché è necessario utilizzare diversi tipi di memorie allinterno della macchina? A cosa servono i registri PC ed IC del processore? Come vengono collegati i dispositivi? Fornire esempi di informazioni che vengono inviate sui diversi gruppi di linee del bus Costruire la tabella di verità di –(~ a) AND (b OR c)


Scaricare ppt "1 La struttura hardware. 2 Esecuzione di programmi Algoritmo Codifica in un linguaggio di programmazione C, Java etc. Programma Compilatore Input : programma."

Presentazioni simili


Annunci Google