architettura dei computer. motori per lesecuzione di istruzioni quello che i computer possono fare...

45
Architettura dei computer

Upload: graziano-andreoli

Post on 01-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

Architettura dei computer

Page 2: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

Motori per l’esecuzione di istruzioni

• Quello che i computer possono fare – eseguire deterministicamente istruzioni per elaborare

informazione

– il computer deve ricevere una serie di istruzioni da seguire

• Quello che i computer non possono fare

– non hanno immaginazione né creatività

– non hanno alcun intuito

– non sono crudeli né vendicativi (almeno in molti casi …)

– non hanno alcuna forma di libero arbitrio

Page 3: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

3

Il ciclo macchina

• Un ciclo in cinque passi:

1. Fetch istruzione

2. Decodifica istruzione

3. Fetch Dati

4. Esecuzione Istruzione

5. Restituzione Risultato

Page 4: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

4

Anatomia di un computer

• I computer sono costituiti da cinque parti:

– memoria, unità di controllo, unità aritmetico/logica (ALU), unità di input e unità di output

Page 5: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

5

Memoria

• La memoria contiene il programma in esecuzione e i dati su cui il programma stesso opera

• Caratteristiche della memoria:

– locazioni discrete. Ogni locazione è pari a 1 byte

– indirizzi. Ogni locazione di memoria ha un indirizzo(un numero intero a partire da 0)

– valori. Le locazioni di memoria memorizzano valori

– capacità finita. Le locazioni di memoria hanno una capacità finita—i programmatori devono tenere presente che la quantità di dati che è possibile scrivere è limitata

Page 6: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

6

Locazioni di memoria da un byte

• Generalmente un diagramma della memoria di un computer rappresenta le locazioni discrete come piccoli rettangoli

• L’indirizzo delle locazioni è indicato sopra il rettangolo.

• I valori delle locazioni sono riportati nel rettangolo corrispondente.

Page 7: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

7

Page 8: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

8

Locazioni di memoria da un byte (cont.)

• Ogni locazione contiene 1 byte che memorizza un carattere ASCII o un numero compreso tra 0 e 256

• I programmatori utilizzano una sequenza di locazioni di memoria adiacenti, ignorando il fatto che hanno differenti indirizzi

– i blocchi di 4 byte sono usati come singola unità così frequentemente che hanno preso il nome di "parole di memoria“ (word)

Page 9: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

9

Memoria ad accesso casuale

• "ad accesso casuale" significa che il computer può accedere a qualsiasi locazione di memoria

• Spesso è misurata in megabyte (MB)

• Avere tanta memoria è preferibile per non avere problemi di spazio per i programmi e i dati

Page 10: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

10

Unità di controllo

• Implementa il ciclo macchina direttamente via hardware

• I suoi circuiti recuperano un’istruzione dalla memoria ed eseguono altre operazioni del ciclo

– un’istruzione tipica ha la forma ADD 2000, 2080, 4000

– quest’istruzione chiede che i numeri memorizzati nelle locazioni 2000 e 2080 siano sommati e che il risultato sia inserito nella locazione 4000

– il passo di Fetch Dati deve estrarre i due valori; dopo aver effettuato la somma il passo Restituzione Risultato inserirà la somma nella locazione 4000

Page 11: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

11

Unità Aritmetico/Logica

• Esegue tutti i calcoli

• Generalmente è responsabile del passo del ciclo macchina denominato Esecuzione Istruzione

• Un circuito nell’ALU può sommare due numeri

• Ci sono anche circuiti dedicati alla moltiplicazione, al confronto ecc.

• Le istruzioni di puro trasferimento dei dati non usano l’ALU

• Il passo del ciclo macchina Fetch Dati recupera i valori necessari all’ALU (operandi)

• Quando l’ALU ha completato l’operazione, il passo Restituzione Risultato trasferisce il risultato (somma o prodotto o qualche altro valore) dall’ALU in un indirizzo di memoria specificato nell’istruzione

Page 12: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

12

Unità di input e output

• Le piste e i circuiti attraverso cui l’informazione entra ed esce dal computer

• Le periferiche: si collegano alle porte di input/output del computer. Non sono considerate parti vere e proprie del computer, ma terminali specializzati che codificano/decodificano l’informazione scambiata tra computer e mondo fisico.

Page 13: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

13

Le periferiche

• La tastiera trasforma le battute sui tasti in un formato binario

• Il monitor rappresenta l’informazione contenuta nella memoria del computer visualizzandola su uno schermo a colori

• Chiavi USB e hard disk sono utilizzati sia come input che come output. Sono dispositivi di memorizzazione in cui il computer può archiviare permanentemente informazioni per poi recuperarle al momento del bisogno

Page 14: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

14

Un driver per ogni periferica

• Le periferiche sono "stupide” perché forniscono solo un servizio base di traduzione da fenomeno fisico a segnale binario

• Ogni ulteriore informazione è demandata al computer che deve aggiungere ogni comportamento “intelligente”

• Ad es., quando il computer riceve la segnalazione che l’utente ha premuto contemporaneamente shift e q converte l’input nella lettera maiuscola Q. Il software che opera la conversione è chiamato driver.

Page 15: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

15

Il Program Counter: un “PC” nel PC

• Come fa il computer a determinare qual è l’istruzione successiva da eseguire?

• L’indirizzo dell’istruzione successiva è memorizzato nell’unità di controllo ed è chiamato Program Counter (PC)

• Dato che le istruzioni occupano 4 byte di memoria, l’istruzione successiva dovrebbe essere PC + 4

• Il PC è incrementato di 4, così, quando il ciclo macchina ritornerà al passo Fetch Istruzione, il PC starà già "puntando" all’istruzione successiva

Page 16: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

16

Istruzioni di salto

• L’istruzione può includere l’indirizzo dell’istruzione successiva. Questo modifica il PC che invece di aggiungere 4 automaticamente, "salta" alla locazione specificata

Page 17: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

17

Interpretazione delle istruzioni

• Processo di esecuzione di un programma– il computer interpreta i nostri comandi, ma

espressi nel suo proprio linguaggio

• Prima che il ciclo macchini inizi, qualche locazione di memoria e il PC sono visibili nell’unità di controllo

Page 18: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

18

Page 19: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

19

Page 20: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

20

Interpretazione delle istruzioni (cont.)

• L’esecuzione comincia trasferendo dalla memoria all’unità di controllo l’istruzione contenuta all’indirizzo specificato dal PC

Page 21: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

21

Interpretazione delle istruzioni (cont.)

• I bit dell’istruzione sono copiati nel circuito decodificatore dell’unità di controllo

• Una volta fatto questo, il PC può essere configurato per il recupero dell’istruzione successiva

Page 22: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

22

Interpretazione delle istruzioni (cont.)

• Nel passo Decodifica Istruzione, l’ALU è configurata per eseguire l’operazione desiderata

• Il decodificatore troverà gli indirizzi dei dati in ingresso (operandi sorgente)– la maggior parte delle istruzioni contiene gli indirizzi di due operandi

sorgente (come ADD)

– questi indirizzi sono passati al circuito che li recupera durante il passo successivo, Fetch Dati

• Il decodificatore estrae l’indirizzo di destinazione per il passo Restituzione Risultato e lo inserisce in un circuito RR

• Il decodificatore determina quali operazioni l’ALU dovrà eseguire e la configura in modo appropriato

Page 23: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

23

Page 24: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

24

Interpretazione delle istruzioni (cont.)

• Esecuzione Istruzione: è il passo in cui sono effettivamente eseguiti i calcoli. Nel caso dell’istruzione ADD, il circuito effettua la somma dei due operandi sorgente

Page 25: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

25

Page 26: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

26

Interpretazione delle istruzioni (cont.)

• Restituzione Risultato: restituisce il risultato dell’elaborazione nella locazione di memoria specificata dall’indirizzo di destinazione

• Una volta concluso questo passo, il ciclo ricomincia

Page 27: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

27

Page 28: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

28

Page 29: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

29

Moltissime operazioni semplici

• I computer possono eseguire solo circa 100 istruzioni diverse– circa 20 tipi di operazioni distinte (ma servono

istruzioni diverse per sommare byte, parole di memoria, numeri decimali ecc.)

• Tutto ciò che chiediamo al computer deve essere ricondotto a una combinazione di queste operazioni primitive, supportate direttamente dall’hardware

Page 30: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

30

Esempi di altre istruzioni

• Oltre ad ADD, MULT (moltiplicazione) e DIV (divisione), altri esempi di istruzioni includono:– lo spostamento (shift) dei bit di una parola di memoria verso

destra o verso sinistra, riempiendo gli spazi che si vengono a creare con degli zeri e buttando via i bit che “strabordano”

– il calcolo dell’AND logico, che verifica se due bit valgono entrambi 1, o dell’OR logico, che verifica se almeno uno di essi vale 1

– il test che appura se un singolo bit vale zero o no, e salta a un nuovo blocco di istruzioni a seconda del risultato

– lo spostamento dei dati da un’area all’altra della memoria

– la ricezione di segnali dai dispositivi di input/output

Page 31: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

31

Quanto è veloce il ciclo macchina?

• L’impressionante capacità dei computer deriva dalla loro possibilità di eseguire in un secondo un enorme numero di istruzioni

• Il clock del computer determina la velocità del ciclo macchina

– misurato in megahertz, o milioni di cicli al secondo

Page 32: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

32

Page 33: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

33

Quanto è importante la velocità del clock?

• I computer moderni tentano di cominciare un’istruzione a ogni tick del clock

• I circuiti si passano l’istruzione l’un l’altro (pipelining)– possono essere processate 5 istruzioni simultaneamente

• Un clock a 1 GHz può veramente eseguire un miliardo di istruzioni al secondo?– in realtà i computer non possono cominciare cominciare

un’istruzione a ogni tick, ma possono eseguire più istruzioni alla volta

Page 34: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

34

Page 35: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

35

Software

• Il software visto dal computer – la macchina vede un oggetto binario, una lunga

sequenza di parole (gruppi di 4 byte)

• Il linguaggio assembler– forma alternativa del linguaggio macchina che usa

lettere e numeri in modo che le persone lo possano comprendere più facilmente

– il computer esamina il programma in assembler e quando incontra le parole le cerca in una tabella per trovare la corrispondente cifra binaria; quindi converte in binario e assembla i pezzi “costruendo” l’istruzione macchina completa

Page 36: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

36

Software (cont.)

• Linguaggi di programmazione di alto livello– oggi la maggior parte del software è scritta in un

linguaggio di alto livello che è compilato (tradotto) in linguaggio assembler, che viene a sua volta assemblato per ottenere un file binario

– I linguaggi includono strutture speciali che aiutano i programmatori a esprimere istruzioni complicate

• Esempio: un blocco if è composto di tre parti

– una domanda a cui si può rispondere sì e no (il test)

– le istruzioni che il computer dovrà eseguire se il test risulta vero

– le istruzioni che il computer dovrà eseguire se il test risulta falso.

Page 37: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

37

Page 38: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

38

Page 39: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

39

Sistemi operativi

• Offrono le operazioni base necessarie per l’uso efficace del computer, ma non supportate direttamente dall’hardware

• I tre più usati sono:– Microsoft Windows

– MacOSX di Apple

– Unix

• Il sistema operativo (OS) esegue il boot, gestisce la memoria, le periferiche, i file e la connessione a Internet

Page 40: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

40

Programmazione avanzata

• I programmatori riutilizzano software precedentemente sviluppato per rendere più facile il loro lavoro

• Esempio: la GUI (interfaccia utente)– i bordi delle finestre, le barre di

scorrimento, i pulsanti, i puntatori, ecc. sono “impacchettati” per i programmatori e forniti con l’OS

Page 41: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

41

Circuiti integrati

• Miniaturizzazione– la velocità del clock è così alta perché il

microprocessore è piccolissimo (i segnali elettrici percorrono circa 30 centimetri in un nanosecondo)

Page 42: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

42

Circuiti integrati

• Fotolitografia

– Processo di stampa. Invece di collegare i circuiti a mano, si usa una tecnica fotografica applicata più volte consecutive

– Il costo del circuito è indipendente dalla sua complessità

Page 43: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

43

La tecnologia dei semiconduttori

• Integrazione– I componenti attivi e le piste che li collegano

sono costruiti insieme, in un singolo processo e con gli stessi materiali

– Si risparmia spazio e si producono componenti monolitici, più affidabili

• Il silicio è un semiconduttore– La capacità di controllare il passaggio di

corrente in un semiconduttore è fondamentale per la costruzione dei computer

Page 44: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

44

Dall’applicazione agli elettroni

• Riepilogo:

– Partiamo da un processo di elaborazione dell’informazione

– Il processo è svolto da un’applicazione, implementata sotto forma di programma in un linguaggio di alto livello come C o Java

– Il programma esegue operazioni specifiche; i servizi standard come stampa o salvataggio su disco sono messi a disposizione dal sistema operativo

– I comandi del programma sono compilati, cioè tradotti in istruzioni in linguaggio assembler

Page 45: Architettura dei computer. Motori per lesecuzione di istruzioni Quello che i computer possono fare –eseguire deterministicamente istruzioni per elaborare

45

Dall’applicazione agli elettroni (cont.)

– Le istruzioni assembler sono tradotte in codice macchina binario

– Le istruzioni binarie sono registrate sull’hard disk

– Le istruzioni macchina vengono trasferite dal disco nella memoria RAM

– Il ciclo macchina esegue le istruzioni una dopo l’altra

– Tutte le istruzioni del computer sono eseguite dai circuiti contenuti nell’ALU, utilizzando il modello descritto precedentemente