106
1 GLI AMBIENTI DELL’ INFORMATICA: HARDWARE M.Hmeljak

1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

Embed Size (px)

Citation preview

Page 1: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

1

GLI AMBIENTI DELL’ INFORMATICA:

HARDWARE

M.Hmeljak

Page 2: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

2Fondamenti di Informatica - Ambiente HW hardware

Architettura “classica” di un calcolatore: la Macchina di Von Neumann

UnitàLogico

Aritmetica

Unitàdi

Controllo

CPU

Unitàdi

Ingresso

Unitàdi

Uscita

MEMORIAPRINCIPALE

MEMORIASECONDARIA

Programmie

Dati

IstruzioniDati

Risultatidella

Elaborazione

Page 3: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

3

i componenti elettronici (diodi, transistor, e porte logiche) magnetici e meccanici di un calcolatore elettronico sono raggruppabili in 4 “macro-elementi”:

Unità centrale di calcolo o in breve U.C. (inglese: CPU - Central Processing Unit)

Memoria centrale MC e memorie periferiche: MC = memoria principale (cache, RAM, ROM)

Mem.periferiche=memoria secondaria (dischi HD, e altro) Periferiche di I/O (Input/Output) Dispositivi per la lettura dati (da mondo->calcolatore, es: tastiera)

e per la scrittura dati (da calcolatore->mondo, es: schermo ) Bus di comunicazione (via di trasmissione dati e comandi tra due dispositivi, Bus Dati, Bus Indirizzi, Bus di Controllo

Ambiente HW hardware : i 4 componenti

Page 4: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

4

Unita’Centrale

MemoriaCentrale(ram e rom)

Schermo(Dispositivodi uscita)

Tastiera(dispositivodi ingresso)

Disco HD(memoriaperiferica)

Dischetto(memoria periferica)

vie (“bus”) di trasmissione segnali e dati

la parte “fisica” = insieme dei componenti = “hardware”

Struttura di un calcolatore, approssimata:

Ambiente hardware architettura del calcolatore: UC, MC

Page 5: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

5

l’ U.C. esegue le istruzioni, al ritmo di N istruz/secondo,con N dell'ordine di 100..1000 milioni (2004); tutta l'elaborazione avviene in UC

Unita’Centrale

MemoriaCentrale(ram e rom)

Tastiera(dispositivodi ingresso)

Disco HD(memoriaperiferica)

altrememorie periferiche

la MC contiene i programmi “attivi” (istruzioni e dati) in un dato momento (l'UC puo' eseguire solo istruzioni che stanno in MC !)

Ambiente hardware architettura del calcolatore: UC, MC

memoria rom = memoria in sola lettura, indelebile;memoria ram = memoria volatile, si cancella se manca l'alimentazione

Schermo(dispositivo di uscita)

Page 6: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

6

Unita’Centrale

MemoriaCentrale(ram e rom)

Schermo(Dispositivodi uscita)

Tastiera(dispositivodi ingresso)

Disco HD(memoriaperiferica)

Dischetto(memoria periferica)

sullo schermo sono visualizzati le informazioni (stato) del sistema e i risultati dei programmi, in genere tutte le informazioni di interesse e/o richieste dall'utente

Ambiente hardware architettura del calcolatore: uscita: schermo

Disco CD / DVD / ..

il calcolatore legge da tastiera i comandi e i dati inseriti da chi lo usa

Page 7: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

7

Unita’Centrale

MemoriaCentrale(ram e rom)

Schermo(Dispositivodi uscita)

Tastiera(dispositivodi ingresso)

Disco HD(memoriaperiferica)

Dischetto(memoria periferica)

sul HD hard disk sono memorizzati programmi e dati in modo persistente, disponibili anche dopo alcuni anni (con o senza alimentazione) capacita' 1G..200G

i dischetti (<2003) piu’piccoli, estraibili, meno affidabili,capacita' 1.4 M byte

architettura del calcolatore: memorie periferiche

memoria perifericaesterna ..

Page 8: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

8

memoriacentrale(ram,rom)

Tastiera(dispositivodi ingresso)

Schermo(Dispositivodi uscita)

Ingresso/ Uscita seriale

Disco HD(memoriaperiferica)

Dischetto(memoria periferica)

bus trasmissione segnali e dati

architettura del calcolatore: il bus

I/Usegnale video

EthernetI/U rete

Ingresso/Uscita parallela

ModemI/U rete

EthernetI/U audio . . .

Page 9: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

9

memoriacentrale(ram,rom)

Tastiera(dispositivodi ingresso)

Schermo(Dispositivodi uscita)

Ingresso/ Uscita seriale

Disco HD(memoriaperiferica)

Disco HD

architettura del calcolatore: il bus

I/U segnale video

sul bus di trasmissione dati tra le varie unita' devono viaggiare anche i segnali di attivazione e di selezione: la comunicazione tra due componenti (trasmissione dati) avviene seguendo delle regole di un protocollo di trasmissione: richiesta dell'uso del bus, selezione dell'altro componente (ogni componente ha un indirizzo), trasmissione, verifica dell'esito, rilascio del bus ...

Page 10: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

10unita' centrale o processore o CPU

UNITA' CENTRALE

MEMORIA CENTRALE

Page 11: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

11HW: unita' centrale, memoria centrale e istruzioni macchina

la parte centrale del calcolatore sono i 2 componenti base,

la memoria centrale, MC, dove e' memorizzato il programma da eseguire (cioe' l'insieme delle istruzioni macchina da eseguire e i dati elaborati dal programma)- sara' esaminata dopo l'U.C.

l'unita'centrale, UC, dispositivo elettronico progettato per interpretare ed eseguire un insieme di istruzioni detto "linguaggio macchina", LM, per contrasto ai vari linguaggi di programmazione, LP,(come il C++)

ogni UC "capisce" solo il suo LM, e non altro: in particolare, non puo' eseguire programmi scritti in altri LM oppure in altri LP

Page 12: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

12HW: unita' centrale, memoria centrale e istruzioni macchina

nessuna UC puo'eseguire un programma scritto in C++ (o in altro linguaggio di progr.) - per il semplice motivo che l' UC capisce solo il suo LM linguaggio macchina :

un modello di un'UC in genere NON e'in grado di eseguire le istruzioni di un altro modello: un Pentium non puo' eseguire le istruzioni di un PowerPC e viceversa...

OGNI programma scritto in un linguaggio di programmazione (ad esempio C++) diverso dal LM DEVE essere tradotto in LM per poter essere eseguito;

i linguaggi di programmazione LP sono definiti in modo che il procedimento di traduzione di un programma da un LP in un LM possa essere descritto con un programma e poi svolto dal calcolatore stesso!

Page 13: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

13HW: unita' centrale

l'unita' centrale o processore interpreta ed esegue le istruzioni macchina di tutti i programmi in esecuzione;

il repertorio delle "istruzioni macchina" e' limitato, circa un centinaio di istruzioni: il numero di istruzioni macchina diverse che un unita' centrale sa interpretare di un unita' va da circa 50 (macchine RISC o reduced instruction set) a circa 200 (CISC o complex instruction set)

Page 14: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

14

Unità Centrale di elaborazione o

CPU (Central Processing Unit):

è il nucleo del calcolatore

dove sono eseguite le istruzioni dei programmi (in versione "linguaggio macchina") e che controlla (governa, dirige) tutte le attività del computer

Ambiente hardware - l' UC

Page 15: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

15

La CPU è oggi (*) realizzata con un singolo circuito integrato (chip) (tranne su macchine molto grandi)

ed è costituita (composta) internamente da diversi elementi:

un insieme di registri di lavoro e di altri tipi,

unità logico-aritmetica ALU (Arithmetic and Logic Unit)

unita' aritmetica in virgola mobileFPU (Floating Point Unit) per i calcoli in virgola mobile

CU (Control Unit, Unità di Governo), gestisce l'esecuzione delle istruzioni

___________(*) primo processore integrato in un unico circuito e' dell' inizio anni 70, il Intel 4004, con meno di 20k componenti

Ambiente hardware - l' Unita' Centrale: registri,ALU,CU

Page 16: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

16

QuickTime™ and a decompressor

are needed to see this picture.

CU

Interprete istruzione

Logica di controllo

Registro accumulatore

Instruction Reg.

ALU

ALT RI REGI-STRI SPECIA LI/ DI STAT O/ AUSILIARI [ +MEMORIA CACHE ]

BUS DATI (da e per la memoria e altri dispositivi)

BUS INDIRIZZI (verso la memoria e altri dispositivi)

Segnali di Controllo

Altri Registri di lavoro (in totale da uno a 64 …)

Struttura interna di un' unita' centrale

Page 17: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

17Unita' Centrale: registri, unita'funzionali, governo

registri dell'unita' centrale:

ogni calcolatore ha piu' registri (32 o 64)

sono dispositivi di memoria (di pochi byte) molto veloci

istruzioni di spostamento dati da/a registro macchina sono molto veloci (dell'ordine del nano secondo o frazione);

*copiare un dato in un registro (scrivere in un registro, o "caricare" dati nel registro)

*trasmettere un dato da un registro (a un altro, o al bus) (leggere un dato da un registro) - operazioni che scrivono/leggono tutti i bit in parallelo allo stesso istante

Page 18: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

18Unita' Centrale: registri, unita'funzionali, governo

0 1 1 0 1 1 1 1

nei registri sono tenuti i dati in uso corrente dalle istruzioni del programma;

ogni calcolatore ha istruzioni macchina per copiare un dato in un registro (scrivere un dato in un registro) e per trasmettere un dato da un registro (leggere un dato da un registro)

la trasmissione dati da/a registro sono sempre operazioni che scrivono/leggono tutti i bit in parallelo allo stesso istante:questo tipo di parallelismo e' presente in tutti i calcolatori;

Page 19: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

19Unita' Centrale: registri, unita'funzionali, governo

OGNI calcolatore ha piu' registri (almeno due, oggi 32 o 64); nei registri sono tenuti i dati in uso corrente dalle istruzioni del programma; i primi calcolatori avevano un registro RA (reg.accumulatore) usato per la somma, per fare c diventa a piu' b si esegue la sequenza tipica di 3 istruzioni:

1) metti a in RA (copia dato da Mem[a]=mem.centrale di indirizzo a nel RA)

2) aggiungi b a RA (somma: passa dato a (sta in RA) e dato b (sta in Mem[b]) alla ALU, il risultato a+b va in RA) 3) memorizza il risultato da RA in c (copia il dato a+b (risultato della somma) da RA in c ovvero in Mem[c]=memoria centrale di indirizzo c)

Page 20: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

20Unita' Centrale: registri, unita'funzionali, governo

le operazioni aritmetiche e logiche sono svolte dalle unita' funzionali [ALU = arithmetic and logic unit] = dispositivi elettronici che sanno fare le operazioni aritmetiche e logiche su uno o due dati (uno sta nel registro RA e uno sta in memoria centrale) esempio per le operazioni logiche:

prodotto logico (and) tra due dati ad es: 8 bit ciascuno, dato A 0 0 1 1 0 0 1 1 dato B 0 0 0 0 1 1 1 1 risultato, dato C 0 0 0 0 0 0 1 1somma logica (or) tra due dati ad es: 8 bit ciascuno, dato A 0 0 1 1 0 0 1 1 dato B 0 0 0 0 1 1 1 1 risultato, dato C 0 0 1 1 1 1 1 1

Page 21: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

21Unita' Centrale: registri, unita'funzionali, governo

le operazioni aritmetiche e logiche sono svolte dalle unita' funzionali [ALU = arithmetic and logic unit] = dispositivi elettronici che sanno fare le operazioni aritmetiche e logiche su uno o due dati (uno sta nel registro RA e uno sta in memoria centrale) esempio per le operazioni logiche:

complemento (not) di un dato ad es: 8 bit ciascuno, dato A 0 0 1 1 0 0 1 1 risultato, dato C 1 1 0 0 1 1 0 0

scorrimento a destra (shift) di dato per una posizione: ad es: 8 bit ciascuno, dato A 0 0 1 1 0 0 1 1 risultato, dato C 0 0 0 1 1 0 0 1

Page 22: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

22Unita' Centrale: registri, unita'funzionali, governo

le operazioni aritmetiche e logiche sono svolte dalle unita' funzionali [ALU = arithmetic and logic unit] = dispositivi elettronici che sanno fare le operazioni aritmetiche e logiche su uno o due dati;

per l'aritmetica servono uno o due registri:

somma intera di due numeri interi con segno ad es: 8 bit ciascuno, dato A 0 0 1 1 0 0 1 1 dato B 1 0 0 1 1 0 0 1 risultato, dato C 1 1 0 0 1 1 0 0

ancora: 8 bit ciascuno, dato A 0 1 1 1 1 1 1 1 dato B 0 0 0 0 0 0 0 1 risultato, dato C 1 0 0 0 0 0 0 0

Page 23: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

23Unita' Centrale: registri, unita'funzionali, governo

nota: per il prodotto o la divisione servono due registri:

prodotto intero di due numeri interi con segno: caso di operandi "piccoli", risultato ancora a 8 bit: 8 bit ciascuno, dato A 0 0 0 0 1 1 1 0 (14) dato B 0 0 0 1 0 0 0 1 (17) risultato, dato C 1 1 1 0 1 1 1 0 (238)

prodotto di due numeri spesso NON sta in un registro: 8 bit ciascuno, dato A 0 1 0 0 1 0 0 1 (73) dato B 0 1 0 0 1 0 0 1 (73)il risultato 0 1 0 1 0 0 1 1 0 1 0 0 0 1 (5329)richiede piu' di 8 bit (in genere 2n bit, qui 16 bit!) =>

il risultato sta in DUE registri

Page 24: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

24Unita' Centrale: registri, unita'funzionali, governo

divisione intera di due numeri interi con segno in genere produce un quoziente ed un resto:

8 bit ciascuno, dato A 0 1 0 0 1 0 0 1 (73) dato B 0 0 0 1 0 1 0 0 (10) risultato, quoziente C 0 0 0 0 0 1 1 1 (7) resto: D 0 0 0 0 0 0 1 1 (3)il risultato ric hiede anche qui due registri ...

vi sono due unita' aritmetiche separate, una per dati interi ALU e una per dati floating FPU;l'unita' aritmetica floating fa l'aritmetica sui numeri in virgola mobile; si noti che le operazioni aritmetiche in virgola mobile richiedono operazioni piu' complesse, e quindi piu'tempo ...

Page 25: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

25vie dati e vie segnali

un conduttore puo' portare un segnale di controllo - un bit - (ad esempio un segnale di "apri una porta logica e fa passare un dato da un registro all'altro")graficamente:

un fascio di conduttori puo' portare in parallelo un insieme di dati - di bit - da un circuito all'altro, ad esempio - 32 bit per un indirizzo - - 64 bit per un dato -graficamente: oppure:

bus = un insieme di conduttori che trasmette sia segnali di controllo che segnali di indirizzi e dati

Page 26: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

26

QuickTime™ and a decompressor

are needed to see this picture.

CU

Interprete istruzione

Logica di controllo

Registro accumulatore

Instruction Reg.

ALU

ALT RI REGI-STRI SPECIA LI/ DI STAT O/ AUSILIARI [ +MEMORIA CACHE ]

BUS DATI (da e per la memoria e altri dispositivi)

BUS INDIRIZZI (verso la memoria e altri dispositivi)

Segnali di Controllo

Altri Registri di lavoro (in totale da uno a 64 …)

Struttura interna di un' unita' centrale

Page 27: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

27

Unità Centrale di elaborazione o CPU (Central Processing Unit): è il nucleo del calcolatore che controlla tutte le attività del computer. La CPU è oggi realizzata con un singolo circuito integrato (chip) (tranne su macchine molto grandi) ed è costituita internamente da diversi elementi:

un insieme di registri di lavoro e di altri tipi, (ogni registro e' una piccola memoria veloce per contenere dati, istruzioni e informazioni sullo stato dell'esecuzione dei programmi)unità logico-aritmetiche ALU (Arithmetic and Logic Unit) per i calcoli su numeri interi e le operazioni logiche ... FPU (Floating Point Unit) per i calcoli matematici in virgola mobile operazioni standard: +, -, *, /, and, or, xor, shift, eccCU (Control Unit, Unità di Controllo), che gestisce (attiva e controlla) l'esecuzione delle istruzioni.

Al giorno d'oggi il termine microprocessore è sinonimo di CPU, la maggior parte delle unita’ centrali o processori sono realizzate in un unico circuito integrato (con milioni di componenti)

Fondamenti di Informatica - Ambiente hardware - l' UC

Page 28: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

28HW: bus di sistema

l'unita' centrale interagisce con il resto attraverso un insieme di conduttori detto bus di sistema, composto da 3 parti:

un insieme di conduttori che porta un dato (bus dati)

un insieme di conduttori che porta un indirizzo (bus indirizzi)

un insieme di conduttori che porta i segnali di controllo per governare, coordinare e sincronizzare le varie parti (bus controllo)

Page 29: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

29

I microprocessori si possono classificare sulla base del num. di

bit utilizzati in parallelo per i dati (calcoli/elaborazioni), ossia

parola (word) usata dalla CPU (8, 16, 32, 64 bit del BUS DATI),

sulla base del numero di locazioni (celle) di memoria primaria

indirizzabili (num. locazioni = 2N, dove N è il numero di linee

parallele del BUS INDIRIZZI; usualmente (2004) N = 32 bit,

che permette di indirizzare 4 miliardi (giga) celle di memoria).(2006: molte macchine hanno un bus indirizzi a 64bit -> indirizzabili fino a (10 alla 20) celle di memoria centrale !)

tra i vari dispositivi collegati tra loro dal bus viaggiano

dei segnali di comando, di controllo, di sicronizzazione ecc:

BUS CONTROLLO ;

i tre componenti assieme sono il bus di sistema

Ambiente hardware - l' UC : bus dati / bus indirizzi

Page 30: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

30registri

registri dell' unita' centrale

contengono i valori dei dati correnti in uso =

stato dell' U.C. in ogni istante

Page 31: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

31

registri dell' Unita' Centrale (schema semplificato)

sono memorie molto veloci (meno di nano secondi per registrare/leggere un dato); durante l' esecuzione di un' istruzione i dati sono spesso spostati (scritti, letti, copiati) tra i registri dell' UC (vi sono dei bus interni per tale fine)

PC (Program Counter) - qui sta l'indirizzo (di memoria centrale) dell' istruzione da eseguire

IR (Instruction register) - contiene il codice dell'istruzione in corso

Registri di lavoro (ad es. 32 registri da 32 bit ciascuno), numerati (ad es.: R0, R1, .. R31)

Ambiente hardware - l' UC - i registri PC, IR, Rk

Page 32: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

32Ambiente hardware - l' UC - registri SR, RI,

Altri registri dell'unita' centrale, (oltre ai citati PC, IR, Registri di lavoro)

SR registro di stato (status register) (dove sono memorizzate informazioni sull'esecuzione, ad es. il segno del risultato dell'ultima operazione aritmetica, una particolare situazione di errore ecc)

TR registro per il controllo di interruzioni (segnali di richiesta di attenzione da dispositivi di I/U)

Registri con indirizzi / con valori particolari,

e altri (SP stack pointer, SR1 stato utente/supervisore)

Page 33: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

33unita' centrale UC o Central Processing Unit CPU: l'unita'governo

Program Counter

Instruction Register

General Register 0

General Register 1

General Register 2

General Register 3

Status Register

ADDRESSDATA

ALU

UNITA' DI GOVERNO (CONTROL UNIT)

OROLOGIO

Page 34: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

34Unita' Centrale: registri, unita'funzionali, governo

l'unita' di governo (inglese "control unit") interpreta ed esegue le istruzioni macchina (da essa escono tutti i segnali di controllo necessari per l'esecuzione istruzioni)

per eseguire un'istruzione macchina essa DEVE essere presente nel registro istruzioni - le istruzioni hanno un formato fisso, oppure uno o due o pochi formati.

registro istruzioni

dalla memoria centraleunita' di governo (control unit)

segnali di controllo

Page 35: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

35Unita' Centrale: registri, unita'funzionali, governo

l'unita' di governo interpreta ed esegue le istruzioni:la decodifica e l' esecuzione sono scandite dal ritmo base dato dall' orologio interno (clock); si noti chel'esecuzione di un' istruzione richiede piu' cicli base

registro istruzioni

dalla memoriacentrale unita' di

governo (control unit)

segnali di controllo

segnale di orologio

segnali da altri registri

Page 36: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

36Ambiente Hardware - la CPU: l' unita' di governo

unita' di governo (control unit) e' la parte meno visibile ma piu' importante dell' unita'centrale,e' un insieme di circuiti logici dove avviene la decodifica e dove viene realizzata/gestita l'esecuzione delle istruzioni : l'unita' di governo interpreta ed esegue le istruzioni, a tal fine controlla tutti i passaggi dati e/o indirizzi all'interno dell'unita' centrale (registri - ALU - bus esterno) via uno o piu' bus interni - sono le micro-azioni necessarie per eseguire un'istruzione: la sequenza di micro-azioni da eseguire (per eseguire un' istruzione macchina ) avviene in tempi molto brevi scanditi da un "micro orologio interno":l'esecuzione di un'istruzione e' una sequenza di microistruzioniqueste sequenze possono a loro volta essere realizzate come un micro programma (UC microprogrammate) oppure con circuiti logici ad hoc (UC cablate) ... firmware

Page 37: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

37ciclo istruzione

il ciclo istruzione:

1) prendi un'istruzione del programma (sta in memoria centrale)

2) interpreta questa istruzione (decodifica) (il numero istruzioni diverse da 50 a 200)

3) esegui l'istruzione (le azioni relative dipendono da che istruzione devo fare)

4) modifica (incrementa) il PC per la prossima istr., poi ripeti da inizio passo 1) (senza fermarti mai)

Page 38: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

38L' unita' centarle esegue le istruzioni del programma (sono sempre e solo istruzioni macchina!!) - per essere eseguite le istruzioni devono essere disponibili velocemente all' unita' centrale -per tale motivo le istruzioni stanno in memoria centrale (sia le istruzioni, sia i dati di queste)

ogni istruzione macchina e' eseguita in un "ciclo istruzione", che e': 1) prendi l'istruzione dalla memoria centrale (fetch) 2) decodifica l'istruzione (decode) 3) esegui l'istruzione con gli operandi previsti (execute) 4) prepara a prendere la prossima istruzione

per fare questo, l'U.C. ha molti registri

Ambiente hardware - l' UC: ciclo istruzione

Page 39: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

39

1) prendi l'istruzione dalla memoria centrale, che sta nella cella di indirizzo PC (program counter dato dal registro PC) e metti l'istruzione nel RI registro istruzione, schematicamente: MC[PC] -> IR

2) decodifica l'istruzione: ovvero "interpreta" l'istruzione, e vedi cosa si deve fare

3) esegui l'istruzione ... ad es. : somma due valori contenuti in dei registri di lavoro dell'UC e metti il risultato in un altro registro di lavoro (* pagina dopo)

4) prepara per la prossima istruzione: cambia il valore del registro PC in modo che esso ora dica dove sta la prossima istruzione; se ad es. ogni istruzione e' lunga 4 byte, allora ad ogni passo si incrementa il PC di 4.

Ambiente Hardware - l' UC: ciclo istruzione

Page 40: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

40

3) esegui l'istruzione ... ad es. : ADD R4,R9,R10somma due valori contenuti nei registri di lavoro dell'UC R4 e R9 e metti il risultato in un altro registro di lavoro R10l'esecuzione di un' istruzione implica sempre una sequenza (prefissata) di azioni "semplici" da fare: l'istruzione di sopra implica ad esempio: fa passare il dato dal R4 all'unita ALU, fa passare il dato da R9 all'ALU, attiva l'ALU con somma, preleva il risultato dall'ALU e copialo in R10...ciascuna di queste operazioni implica varie operazioni elementari a livello di "porte logiche" o circuiti elettronici che realizzano queste operazioni ...

Ambiente Hardware - l' UC: ciclo istruzione

Page 41: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

41

MC - memoria centrale:istruzioni e dati sono prelevati dalla MC, i risultati vanno in MC - c'e' una continua interazione tra UC e MC !vedremo in seguito di piu' sulla MC

memoria centrale

unita' centrale

PC

IR

RL0

RLk

RS

bus (dati,indir.,controllo)

bus interno (dati, segnali)

altri dispositivi

Fondamenti di Informatica - Ambiente hardware

istruzione PC

Page 42: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

42

ciclo istruzione inizia con la fase di recupero o fetch:l'UC chiede alla MC di leggere il contenuto della cella di memoria di indirizzo PC (program counter)-> questo e' l' istruzione da eseguire ! essa va messa nel registro IR

memoria centrale

unita' centrale

PC

IR

RL0

RLk

RS

bus (dati,indir.,controllo)

bus interno (dati, segnali)

altri dispositivi

Fondamenti di Informatica - Ambiente hardware

istruzione PC

Page 43: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

43

l'istruzione che si trova nel registro IR viene decodificata dall'unita' di governo, e quindi eseguita

memoria centrale

unita' centrale

PC

IR

RL0

RLk

RS

bus (dati,indir.,controllo)

bus interno (dati, segnali)

altri dispositivi

Fondamenti di Informatica - Ambiente hardware

istruzione PC

Page 44: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

44

finite le fasi di recupero+decodifica +esecuzione si passa alla prossima istruzione: cambia il PC in modo che corrisponda all' indirizzo della pros sima istruzione : e fine ciclo istruzionee inizio del prossimo ciclo istruzione (con un nuovo PC, e con i registri dell'UC cambiati)

memoria centrale

unita' centrale

PC

IR

RL0

RLk

RS

bus (dati,indir.,controllo)

bus interno (dati, segnali)

altri dispositivi

Fondamenti di Informatica - Ambiente hardware

istruzione 1 PC

istruzione 2

istruzione 3

Page 45: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

45memoria centrale

la memoria centrale "sa" eseguire due comandi: scrivi un dato X in memoria all'indirizzo I, cioe' copia un insieme di bit X (da 8 a 64) dal bus dati (X fornito dall' UC) in una cella di indirizzo Ileggi un dato X dalla memoria dall'indirizzo I cioe' copia un insieme di bit X da una cella di memoria di indirizzo I sul bus dati :

bus dati

bus indirizzi

XI

I

X

celle di memoria

controllo memoria

...

Page 46: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

46

memoria centrale

unita' centrale

PC

IR

RL0

RLk

RS

bus (dati,indir.,controllo)

bus interno (dati, segnali)

altri dispositivi

Fondamenti di Informatica - Ambiente hardware

Page 47: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

47Ciclo istruzione

un programma in linguaggio macchina: istruzioni (qui solo quattro istruzioni, codici 3,4,7,9) e dati (qui tre dati, 22,33,55)

indirizzo contenuto commentodi memoria della cella 097 000022 dato 22098 000033 dato 33099 000000 risultato sara' 55 101 3 097 R1 istruzione 3 preleva (load) in R1102 3 098 R2 istr. 3 preleva da MC in R2103 7 R1,R2,R3 istr. 7 somma R1 e R2, ris in R3104 4 099 R3 istr. 4 memorizza da R3 in MC105 9 0 0 istr 9 stop (oggi non esiste piu')

Il "programma" esegue una somma di due numeri, prelevati dalla MC agli indirizzi 97 e 98, e poi memorizza il risultato in MC all'indirizzo 99, dove alla fine troveremo il valore 55.

Page 48: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

48un frammento programma in linguaggio macchina/assembly.

indirizz contenuto istruzione ; commentodi mem della cella assembler 097 000022 x dec 22 ; dato 22, indirizzo MC x=97098 000033 y dec 33 ; dato 33, indirizzo MC y=98099 000000 z bss 1 ; cella per il risultato indir.z101 3 097 R1 L R1,x ; 3=preleva (load) in R1102 3 098 R2 L R2,y ; 3=preleva da MC in R2103 7 R1,R2,R3 A R1,R2,R3; 7=somma R1+R2 ->R3104 4 099 R3 St R3,z ; 4=memorizza R3 in MC105 9 Stop ; 9=stop (non esiste piu')

Il "programma" esegue una somma di due numeri, prelevati dalla MC agli indirizzi 97 e 98, e poi memorizza il risultato in MC all'indirizzo 99, dove alla fine troveremo il valore 55.Nota che le istruz.macchina 3 e 4 hanno due operandi, la 7 ha tre operandi (addendi e risultato), la 9 non ha alcun operando.

Page 49: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

49Ciclo istruzione

097 000022 dato 22098 000033 dato 33099 000000 risultato101 3 097 R1 istr. 3 preleva (load) in R1102 3 098 R2 istr. 3 preleva da MC[98] in R2103 7 R1,R2,R3 istr. 7 somma R1 e R2, ris in R3104 4 099 R3 istr. 4 scrivi da R3 in MC[99]105 9 0 0 istr 9 stop (oggi non esiste piu')

vediamo piu' in dettaglio l'esecuzione: *) fase fetch o prelievo istruzione: all'inizio il registro PC contiene l'indirizzo della prima istr. da eseguire (qui PC=101); il valore del PC viene trasmesso alla MC (bus indirizzi) assieme al comando leggi, la MC legge dalla cella di memoria di indirizzo 101 il suo contenuto e lo passa attraverso il bus dati all'UC, che lo scrive (lo memorizza) nel registro IR

Page 50: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

50Ciclo istruzione

097 000022 dato 22098 000033 dato 33099 000000 risultato101 3 097 R1 istr. 3 preleva (load) in R1102 3 098 R2 istr. 3 preleva da MC[98] in R2103 7 R1,R2,R3 istr. 7 somma R1 e R2, ris in R3104 4 099 R3 istr. 4 scrivi da R3 in MC[99]105 9 0 0 istr 9 stop (oggi non esiste piu')

[ continua esecuzione ]: *) terminato il prelievo l'istruzione sta in IR; inizia ora la**) fase di esecuzione dell'istruzione: l'istruzione deve essere decodificata (in base al codice che sta in una parte fissa dell'istruzione) e quindi eseguita (e qui l'esecuzione dipende dalla particolare istruzione: l'istruzione 0 = NO-Operation (istruzione vuota) non fa nulla, l'istruz. FD R1,R2,R3 floating divide puo' richiedere molti cicli base della macchina

Page 51: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

51Ciclo istruzione

097 000022 dato 22098 000033 dato 33099 000000 risultato101 3 097 R1 istr. 3 preleva (load) in R1102 3 098 R2 istr. 3 preleva da MC[98] in R2103 7 R1,R2,R3 istr. 7 somma R1 e R2, ris in R3104 4 099 R3 istr. 4 scrivi da R3 in MC[99]105 9 0 0 istr 9 stop (oggi non esiste piu')

ciclo istruzione:

*) fetch: metti in IR l'istruzione che sta in M.C. all'indir.PC **) l'istruzione e' decodificata nell'U.di Governo e poi eseguita ***) il PC viene messo all'indirizzo della prossima istruzione:se l'istruz.corrente e'lunga 1,2,k celle, allora si incrementa il PC di 1,2,k unita';

Page 52: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

52 Ciclo istruzione097 000022 dato 22098 000033 dato 33099 000000 risultato101 3 097 R1 istr. 3 preleva (load) in R1102 3 098 R2 istr. 3 preleva da MC[98] in R2103 7 R1,R2,R3 istr. 7 somma R1 e R2, ris in R3104 4 099 R3 istr. 4 scrivi da R3 in MC[99]105 9 0 0 istr 9 stop (*) oggi non esiste piu'

il ciclo istruzione :recupera istruzione, decodifica, esegue, aggiorna il PC (all'indirizzo della prossima istruzione)

Questo ciclo e' ripetuto per ogni istruzione eseguita dalla macchina, nel nostro caso, per cinque istruzioni, dalla 101 alla 105: PC<-101, {3 097 R1}-> IR, esegui quindi l'istruzione 3 all'indir. 106...

(*) NOTA: nelle UC correnti NON esiste l'istruzione di arresto (stop), l'UC esegue continuamente delle istruzioni dal momento di accensione fino a che si spegne

Page 53: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

53formato istruzione

Ogni istruzione e' composta da una o piu' informazioni:

* operazione da fare o codice istruzione: da 4 bit (al massimo 16 istruzioni) a 8 bit (al massimo 256 istruzioni) qui assumo 8 bit per il codice istruzione; * operandi (da zero a piu');

ad es. l'istruzione all'indirizzo 101: 3 097 R1 ;"preleva (load) in R1 da mem.di indirizzo 091)" (con due operandi) potrebbe avere il formato:

8 bit 16 bit 5 bit istruz 3 indirizzo memoria 091 indirizzo registro 01

in totale 29 bit ...

Page 54: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

54formato istruzione

l'istruzione di sposta dato da memoria centrale in registro "preleva (load) in R1 da mem.di indirizzo 091)" : 3 097 R1 potrebbe avere il formato (in totale 29 bit)

8 bit 16 bit 5 bit istruz indirizzo memoria indirizzo registro a 16 bit (in totale 64k) (max 32 registri)

se ho la memoria centrale con 4G di celle di memoria? allora devo avere la possibilita' di indirizzare 4G indirizzi, e quindi devo avere 32 bit per un indirizzo di memoria centrale - cambia il formato istruzione:

8 bit 32 bit 5 bit istruz indirizzo memoria indirizzo registro

in totale 45 bit ...

Page 55: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

55formato istruzione

formati di altre istruzioni:

somma due valori dati nei registri Rk e Rl e metti il risultato nel registro Rm -tre operandi "brevi" da 5 bit - 15 bit per operandi

salta all'indirizzo z (metti il valore z nel registro PC) -un operando "lungo" = indirizzo di memoria (32 bit)

non fare nulla e passa alla prossima istruzione -zero operandi (zero bit per operandi)

Page 56: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

56gruppi di istruzioni: istruzioni di aritmetica e logiche

non affrontiamo la codifica delle istruzioni macchina ...

ricordiamo solo alcuni gruppi principali di istruzioni macchina, presenti in tutte le UC correnti:

1) istruzioni aritmetico/logiche gia' viste (+,-,*,/, and,or,xor,complem, scorrimento,...), con operandi nei registri oppure in memoria centrale (oggi le UC tendono a avere istruzioni aritm./logiche con operandi SOLO nei registri, e NON in memoria centrale, perche' questo rallenta l'UC: l'accesso alla MC e' sempre molto piu' lento dell'accesso ai registri (ordine di grandezza: MC: circa 1/2..1/50 di micro secondo, Registro: 10-100 volte di meno)

Page 57: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

57formato istruzione

1) istruzioni aritmetico/logiche

2) istruzioni di spostamento (move) dati: Registro -> Registro, (esecuzione veloce)

memoria centrale -> registro (move o load),

registro -> memoria centrale (move o store) ...

le istruzioni Load e Store (o Move da/a MC) richiedono un'accesso alla MC, che e' piu' lenta; per rendere l'accesso alla MC piu' veloce si usa una memoria intermedia di transito, detta cache memory, dove stanno i dati (blocchi di MC) in uso corrente; la cache puo' essere un dispositivo separato o / e incorporata nell'UC; puo' essere a piu' livelli...

Page 58: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

58formato istruzione

cache memory: piu' veloce della memoria centrale, meno veloce dei registri, usata per far "vedere" (all' unita' centrale) la memoria centrale piu' veloce, e quindi poter far lavorare piu' veloce l'unita'centrale;

nella cache stanno i dati (blocchi di MC) in uso corrente; se un dato o un'istruzione richiesta dall'u.c. non sta nella cache, allora la cache richiede il blocco di memoria interessato alla m.c., e l'u.c. aspetta...

la cache puo' essere un dispositivo separato o / e incorporata nell'UC; puo' essere a piu' livelli...

Page 59: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

59gruppi di istruzioni

gruppi di istruzioni: 1) aritmetico/logiche 2) spostamento dati

3) controllo sequenza (flusso) di esecuzione: salto (dalla istruzione corrente si salta ad altra istruzione, di cui si specifica l'indirizzo di memoria)

4) salto condizionato (test) - salta se si verifica qualcosa, ad es. se il valore in un registro e' zero... oppure se il risultato dell'ultima operazione aritme- tica e' negativo, oppure se c'era un overflow ...

Page 60: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

60gruppi di istruzioni

gruppi di istruzioni: 1) aritmetico/logiche 2) spostamento dati 3) salto non condizionato 4) salto condizionato

5) istruzioni di conteggio, di ciclo, di ripetizione ...

sono la realizzazione a livello di linguaggio macchina di cicli di istruzioni da ripetere n volte, quindi con uso di contatore (registro), test, salto condizionato ecc...

segue un esempio di frammento di programma in linguaggio macchina con ciclo di ripetizione ...

Page 61: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

61ciclo istruzioni macchina

097 000011 ; dato 11098 000001 ; dato 1099 000000 ; risultato101 3 097 R1 ; metti 11 in R1102 3 098 R2 ; metti 1 in R2103 7 R2,R2,R2 ; somma R2 e R2, ris in R2104 8 R1,-1 ; decrementa R1 di uno 105 10 R1,103 ; salta in 103 se R1 >= 0106 4 099 R2 ; metti R3 in MC[99]107 9 0 0 ; istr 9 stop (non esiste piu')

e' un ciclo di istruzioni che viene eseguito 11 volte, ad ogni passo viene raddoppiato il valore in R2 (1+1=2, poi 2+2=4, poi 4+4=8, ecc)

Page 62: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

62gruppi di istruzioni

gruppi di istruzioni: 1) aritmetico/logiche 2) spostamento dati 3) salto non condizionato 4) salto condizionato 5) istruzioni di conteggio, di ciclo, di ripetizione ...

6) istruzioni di salto a sottoprogramma consentono l'uso di gruppi di istruzioni di uso frequente, con salto e conservazione dell' indirizzo di ritorno all' istruzione seguente il salto - non si esaminano qui (vedi corso di architettura dei calcolatori e programmazione in assembly)

Page 63: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

63gruppi di istruzioni 1) aritmetico/logiche 2) spostamento dati 3) salto non condizionato 4) salto condizionato 5) istruzioni di conteggio, di ciclo, di ripetizione ... 6) istruzioni di salto a sottoprogramma

7) istruzioni di gestione di interruzioni, cambio stato

istruzioni privilegiate (riservate a programmi eseguiti in "stato privilegiato"), come controllo dei dispositivi di ingresso e uscita ... nota: ogni UC ha almeno un particolare registro dove sono raccolte le informazioni sullo stato dell'unita' centrale , sull'ultimo risultato aritmetico, e altro - e' lo STATUS REGISTER

Page 64: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

64gruppi di istruzioni 1) aritmetico/logiche 2) spostamento dati 3) salto non condizionato 4) salto condizionato 5) istruzioni di conteggio, di ciclo, di ripetizione ... 6) istruzioni di salto a sottoprogramma

7) istruzioni di gestione di interruzioni, operazioni di ingresso/uscita, di cambio dello stato

l'UC puo' essere in uno di due stati diversi: * stato utente (in cui sono vietate alcune istruzioni "pericolose") se si sta eseguendo un programma di un utente normale * stato supervisore (in cui l' UC puo'eseguire tutte le istruzioni) se e' in esecuzione un programma del sistema operativo

Page 65: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

65istruzioni

un es. di istruzioni pericolose:cambia i limiti di memoria assegnata all'utente, ovvero leggi o scrivi in zone di memoria che non appartengono al programma:in genere ogni programma ha a disposizione solo una parte della memoria centrale, una zona istruzioni e una zona dati; il programma NON puo' accedere alle altre zone di memoria; solo i programmi del sistema operativo possono accedere a tutte le zone di memoria centrale (per necessita'!) - ma si suppone che tali programmi siano corretti, e non distruggano parti di memoria in uso da altri programmi ... (*) _______virus, programmi "malintenzionati" possono invadere tutte le zone di MC

Page 66: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

66memoria centrale

MEMORIA CENTRALE

Page 67: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

67

MC memoria centrale o memoria principale (primary memory):

la memoria è il dispositivo che rende “programmabile” il calcolatore stesso:

la memoria immagazzina e rende disponibili / modificabili sia i programmi (le sequenze di istruzioni da eseguire) sia le informazioni (i dati) relativi ad ogni elaborazione con tempi di accesso molto piccoli (meno di 10E-7 =100 miliardesimi di secondo= 100 nanosecondi) ma maggiori dei tempi dell'UC.

E' formata da cellette (locazioni di memoria), ognuna con un indirizzo univoco (arriva dalla CPU mediante il BUS INDIRIZZI) e ognuna contenente le informazioni (dati e/o istruzioni) codificate in binario, con numero bit fisso (8..64)

ambiente hardware : memoria centrale

Page 68: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

68

La memoria MC "sa" fare due cose: memorizzare un dato - in risposta al comando:

" scrivi in memoria nella cella di indirizzo xxx il dato zzz" zzz -> MC[ xxx ]

"leggi dalla memoria il dato zzz che si trova nella cella di indirizzo xxx" MC[ xxx ] -> zzz

per farlo, si deve avere un collegamento con: bus indirizzi (unidirezionale, in ingresso alla memoria) bus dati (bidirezionale, scrivo in MC, leggo da MC) bus di controllo (leggi/scrivi, lavora/non lavora..)-->> bus indirizzi fissa quante celle ho al max in MC-->> bus dati fissa il formato di ogni cella (unico!)

Fondamenti di Informatica - Ambiente hardware

Page 69: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

69Memoria Centrale

bus di controllo (leggi/scrivi)

bus indirizzi

bus dati

00000001000000020000000300000004000000050000000600000007...0FFFFF80FFFFF90FFFFFA0FFFFFB0FFFFFC0FFFFFD0FFFFFE0FFFFFF

0710FF00

operazioni sulla MC:scrivi un dato in memoria = storeleggi un dato dalla memoria = fetch

Page 70: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

70memoria centrale

alcune caratteristiche della memoria centrale :

tempo di accesso - costante o variabile? durata della memorizzazione - limitata? organizzazione - insieme di celle di memoria ... tecnologia - elettronica / magnetica ... controllo / correzione di errore ...

Page 71: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

71

la memoria centrale e' in gran parte memoria RAM: (random access memory) = memoria in scrittura e in lettura, detta RAM perche' il tempo di accesso alle singole celle e' costante con qualunque sequenza di accesso, anche casuale; contiene i programmi in esecuzione

e in parte e' memoria ROM, (read only memory) dove vengono preregistrati alcuni programmi (di primo avvio, quelli piu' usati dal sistema ecc) in maniera indelebile (nota: la rom e’ anche ram, ma una ram di solito non e’ rom, si puo' solo leggere)

nota: la memoria RAM e' "volatile", nel senso che se manca l'alimentazione elettrica si perdono tutti i dati ivi memorizzati (e quindi si perde il lavoro corrente :-(

memoria centrale

Page 72: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

72Livelli di memoria

Nei calcolatori la memoria M (per le istruzioni e i dati) è strutturata in livelli a seconda del tempo di accesso e della relativa “vicinanza” all’ unita’ centrale UC:

• registri dell’UC (circa 1 nano secondo)

• cache memory (memoria molto veloce 10-30 nanosec., spesso integrata nell’ UC) bufferizza istruzioni e dati cioe' e' un tampone [transito] tra CPU e Mem

• memoria principale (ad accesso diretto, RAM e ROM, veloce 40-80 nanosec., organizzata in “banchi”, chip ad altissima integrazione) - comunica con l'UC attraverso il bus di sistema

•memoria di massa (tecnologie molteplici magnetiche, ottiche, ecc.; tempi di accesso di qualche millisecondo, alta capacità di memorizzazione – dell’ordine di centinaia di giga byte)

Page 73: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

73livelli di memoria

se scendo di livello (mi allontano dall'UC), la capacita' di memoria aumenta il costo per bit diminuisce

il sistema operativo che gestisce tutte le risorse (componenti HW e SW) del calcolatore ha tra i suoi compiti principali quello di far apparire al programmatore la memoria in modo uniforme con capacita' "quasi" uguale alla memoria di massa e con prestazioni (velocita'di accesso) "quasi" uguali alla memoria centrale

Page 74: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

74

circuiti di selezione di una cella di memoria:

un esempio di memoria

composta da 64 celle (64=2^6, in binario posso contare da 0 a 63 usando 6 bit, per cui servono 6 linee di indirizzo):

sara' attivata la cella all’ indirizzo 010101 (in binario, ovvero: 010 101 = 2a riga, 5a colonna) e verra' scritto o letto il dato di tale cella

(in figura, la cella più scura)

R/Wdata

Addressbit

CONTROL

Column Select

Row

Select

Read/write Circuitry

010101

Column address

Row

address

circuiti di selezione di una cella di memoria

Page 75: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

75memoria centrale

memoria centrale (RAM) tecnologia a semiconduttori,

e' volatile (perde le info se si spegne) circuiti integrati di tipo SIMM (Single Inline Memory Module con il bus dati a 32 bit) o DIMM (Dual Inline Mem Module con il bus dati a 64 bit), l'integrato (la schedina) si inserisce su uno zoccolo (socket) presente sulla "scheda madre" , supporto dove sono messi i componenti "centrali" collegati dal bus di sistema

DRAM: Dynamic RAM ogni bit e' rappresentato dallo stato di un transistor, necessitano di un ripristino dello stato (refresh) a ciclo molto stretto (circa 1 ms);

SRAM (Static RAM – piu' transistor per bit, non occorre il refresh)

Page 76: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

76memoria centrale

esistono infine memorie "riscrivibili", con tempi di lettura e di scrittura diversi (scrittura piu' lenta), dove l'informazione rimane anche in assenza di corrente:

es.: memorie EPROM (Erasable Programmable ROM)

es.: le memorie periferiche "flash" usate per trasporto informazioni

es.: un controller di impianti o di macchinari (una lavatrice) dove un piccolo calcolatore (un integrato che comprende sia l'unita' centrale sia le memorie ROM, RAM e EPROM) gestisce dei segnali (sia in ingresso sia in uscita) - in questi casi la memoria NON deve essere volatile.

Page 77: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

77memoria centrale

solo un cenno al problema della gestione della memoria centrale, in parte hw in parte sw (sistema operativo!):

ogni programma in esecuzione deve avere una zona di memoria centrale assegnata solo a lui; la gestione della memoria centrale e' compito del gestore della m.c., o

memory manager;

il memory manager * gestisce le parti di memoria centrale libere/occupate * accoglie le richieste di uso della mem. centrale quando un programma deve andare in esecuzione, * riprende in consegna la memoria quando un programma termina l'esecuzione;

Page 78: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

78memoria centrale

* il programma in esecuzione puo' usare (leggi/scrivi) solo la parte di mem.centrale che gli e' assegnata;se un'istruzione del programma tenta di leggere o scrivere in indirizzi fuori della zona di memoria assegnata si ha un blocco immediato dell'esecuzione, (evento di eccezione o trap o interrupt)e il programma viene eliminato per errore di indirizzo di memoria

non entriamo in dettaglio sui meccanismi hw di protezione della memoria ...

Page 79: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

79dischi

MEMORIE DI MASSA O

DISCHI

Page 80: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

80Memorie di massa

dischi magnetici : da 30 anni i principali dispositivi di memorizzazione permanente nei calcolatori. floppy disk (dal 1975 circa) hard disk (dal 1965 circa)

sono organizzati in: tracce (tracks) circolari in cui viene registrata l’informazione letta/scritta da apposite testine (head) di lettura/scrittura; si parla di cilindri (cylinder) sugli hard disk, individuati dal numero di “piatti” sovrapposti con cui è realizzato il disco (2 lati utilizzabili per piatto). ... ogni traccia e' divisa in :

settori (sector) che suddividono le tracce in modo che l’informazione sia organizzata “a blocchi” (512, 1024 byte,...)

Page 81: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

81

Il disco ha le informazioni organizzate in blocchi di byte singolarmente indirizzabili (leggibili/scrivibili) dette settori:

un settore = parte di una traccia = parte di una superficie = parte di una pila di dischi concentrici...)questa organizzazione deve essere preregistrata (il disco deve essere "formattato"),

ogni traccia ha un indirizzo, ogni settore nella traccia ha un indirizzo:il settore e' la minima unita' singolarmente indirizzabile e singolarmente scrivibile / leggibile;

conviene (per vari motivi) considerare piu' settori come un unico elemento singolarmente indirizzabile (leggibile e scrivibile) detto blocco o cluster di settori

Fondamenti di Informatica - Dischi

Page 82: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

82Fondamenti di Informatica - Dischi

La dimensione di un disco si calcola pertanto così:

dim = nun_head * num_trac * num_sect * dim_sect

hard disk 1975 (calcolatore facolta'): 5Mb per tutti

Esempio (floppy disk 1985):1.44 Mb = 2 heads * 80 tracks * 18 sect * 512 bytes

1990: 10-50 M di HD Esempio (hard disk 1995):

540 Mb = 32 heads * 532 cyl *63 sect * 512 bytes

2002: sono in commercio dischi da 160Gb e + capacita'

dischi nel 2006: da 50 a 350 Gb

Page 83: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

83dischi

esercizio:reperire su rete le prestazioni di un disco fisso corrente

capacita' (in numero byte totali per un'unita'disco) tempo di accesso (per iniziare un'operazione di I/U: minimo, medio, massimo) velocita' di rotazione (giri/minuto) densita' di registrazione (bit/pollice) numero testine (di un'unita') costo costo / byte probabilita' di errore (num.errori/num.byte trasmessi) cache (memoria tampone per aumentare le prestazioni) interfaccia (SCSI,IDE,...)

Page 84: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

84

sul (sui) disco/i fisso sono registrati i dati e i programmi degli utenti (uno o piu') della macchina: (storicamente erano registrati su nastro magnetico)

un record = una registrazione di un singolo dato utente

un file = un insieme di record o dati correlati tra loro

file = archivio dati, programma, immagine, canzone ... nota che un file puo' contenere zero o piu' record;

il numero dei file su disco varia, ma in genere e' molto alto (un prodotto medio di software si compone oggi di migliaia di pezzi):

abbiamo bisogno di un sistema di gestione dei dischi (file system, fa parte del sistema operativo, e' SW)

Dischi

Page 85: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

85

il numero dei file su disco e' molto alto: abbiamo bisogno di un sistema di gestione dei dischi file system,

il file system fa parte del sistema operativo, (e' SW) mantiene su ogni disco le informazioni necessarie per gestire tutto lo spazio di memoria su disco: * spazio libero su disco, * spazio occupato dagli archivi presenti su disco(file), * zone con errori (ogni dato registrato su disco e' sempre corredato di un controllo di errore)

e per gestire tutta la struttura gerarchica dei file (livelli organizzati a "cartelle" di "cartelle" di ... ), a partire dall'indice iniziale o radice del sistema fino ad ogni singolo file utente / sistema ...

Dischi

Page 86: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

86Fondamenti di Informatica: le Periferiche I/O

Periferiche I/O

Le unità di Ingresso/Uscita (Input/Output) sono utilizzate per mettere in comunicazione il calcolatore con il mondo esterno (quindi anche con l’utente)

• tastiera• display• mouse• porte seriali e parallele• connessioni audio / video• connessioni di rete (di vario tipo)• sensori (segnali di ingresso)• attuatori (segnali di uscita)

Page 87: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

87

un dispositivo periferico in genere:

* esegue una ricodifica dei dati (da rappresentazione esterna a rappresentazione interna e viceversa) * inpacca / dispacca i dati * trasmette dati * controlla i dati trasmessi * mantiene l'informazione sul proprio stato (pronto, err, spento..)

ed e' in genere composto da una parte elettronica e una parte elettromeccanica ...

Fondamenti di Informatica - Periferiche I/O

Page 88: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

88ambiente HW - schermo

schermo=dispositivo principale di uscita informazioni;

lo schermo e' (quasi sempre) formato da un reticolo di elementi immagine (pixel = picture element), dove appaioni le informazioni destinate all'utente; le informazioni sono in forma di testo e in forma grafica;

le informazioni in forma grafica sono di vario tipo, due categorie principali:

disegni vettoriali (risultato di una sequenza di comandi di visualizzazione o di tracciamento di elementi grafici elementari (punto, linea, poligono),

disegni a raster (matrice di num_righe x num_colonne) ogni elemento e' un pixel, con associato il suo colore

Page 89: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

89schermo

precisione dello schermo:dai primi schermi alfanumerici (anni 60-70) con schermo di 24 righe per 80 colonne di caratteri, tipico per un terminale di un sistema Unix, o di un PC, fu mantenuto con il DOS fino a meta' anni 90; "breve storia" (vedi internet) schermi grafici (Apple II, 1977, (600$ nel 77=6000$ oggi) circa 300x190, (4 AppleII erano "il" lab. didattico di calcolatori 1980 della facolta' di ingegneria di Trieste)CGA (1981, 320x200,4 colori,Color Graphics Adapter)VGA (1987, 640x480, 8 bit/pixel, Video Graphics Adap) XGA(1990, 800x600, 24 bit/pixel,Extended Graphics A)SVGA (1990, 1600x1200, 24 bit/pix,Super VGA)AGP (1997, 2048x1536, 32bit/pix,AcceleratedGr.Port)(vedi su rete, beginners computer history ... )

Page 90: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

90scermo

tecnologia:primi schermi grafici erano vettoriali, la "penna" luminosa tracciava direttamente una linea (un punto) sullo schermo (1960..70, vedi Tektronix), era l'equivalente elettronico dei plotter meccanici;poi schede grafiche: memoria bit-map corrispondente all'immagine schermo, riempita dal programma e usata per visualizzare il reticolo di pixel sullo schermo (il ZX81 di Sinclair (costo 500.000 lire, tastiera di plastica, da connettere al TV di casa, la stessa UC, un Z80, era usata meta' tempo per l'esecuzione programmi e meta' per fornire l'immagine dal bitmap al circuito RF per il TV)display LCD ... (Liquid Crystal Display) display a plasma ... (usato per la HighDefTV) ...

Page 91: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

91

Prestazioni calcolatore (indicative) al 85/97/00/02/04 :istruzioni al secondo: 10/50/800/1800/3000 milioni (NB: istruzioni/sec - diverso dal ritmo base dell' UC, o clock di sistema (piu' veloce), diverso dalle prestazioni del bus di sistema (piu'lento) e dai tempi della MC

caratteri (byte) memoria centrale 4/32/128/500/1000 milioni (Mega) byte

caratteri di spazio su disco fisso 0,010/1/20/100/.. miliardi (Giga) byte

schermo (pixel): 640x480/ 1000x800 / 1600 x 1200, con 24/32 bit di informazione/colore per pixel ...

costo HW (un PC) 600 - 5000 € ....

hardware - prestazioni

Page 92: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

92

architettura del calcolatore:

l'Unita' Centrale, la Memoria Centrale (RAM e ROM)

collegamento tra le unita' o bus di sistema

connettori per altre unita' (dischi ecc) il tutto sta su un supporto fisico detto "scheda madre" o motherboard,

hardware - riassumendo l'architettura del calcolatore

Page 93: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

93

"Scheda Madre o Mother Board" e' un supporto fisico dove sono fissati i componenti principaliovvero unita' centrale memoria centrale connettori per gli altri componenti ma anche alcuni componenti completi,

il tutto collegato con un "bus" di sistema, ovvero con un insieme di conduttori per i segnali di controllo e dati scambiati dai vari componenti...ad una velocita' in genere abbastanza inferiore al ritmo base dell'unita' centrale (1/4 e meno)

hardware: cheda madre

Page 94: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

94

Riassumendo:

Le caratteristiche importanti che differenziano i calcolatori oggi sono:

• velocità di esecuzione delle istruzioni• affidabilità e resistenza agli errori hardware• costo complessivo in rapporto alle prestazioni• organizzazione della memoria (centrale e periferica)• numero e varieta' di connettori ad altri dispositivi

e altre carateristiche come peso, tipo scatola, batterie, colore, marca, provenienza, ... ;-)

hardware - riassumendo le caratteristiche

Page 95: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

95

Architetture di calcolatori

l’architettura della maggior parte dei calcolatori si basa ancora oggi sul modello di Von Neumann:

unita' centrale con registri PC (indirizzi istruzioni), IR (instruction register), registri di lavoro/di stato, programma da eseguire che sta in memoria centrale, istruzioni e dati nella stessa memoria, .. questa idea (di un gruppo di persone, tra cui Von Neumann che firmo' un documento conoscitivo del progetto ...) e' alla base di tutti i calcolatori dal 1948 in poi, e differenzia il calcolatore di oggi dai tentativi precedenti (l'idea risale al 1830 circa, di C.Babbage)

hardware - architetture - macchine Von Neumann

Page 96: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

96

l’architettura dei calcolatori basata sul modello di Von Neumann "resiste" a tutt'oggi -

fin dagli anni 1950 si era compreso che un modo per accelerare i tempi di un'elaborazione era quello di eseguire contemporaneamente (in parallelo nel tempo) quante piu' operazioni possibile;

gia' agli inizi del 1960 alcuni dispositivi di I/U potevano lavorare in parallelo all' UC (I/O channel)

il passo successivo era di eseguire gruppi di istruzioni in parallelo, ovvero di avere piu'UC attive in parallelo

non esiste un prototipo comune per i calcolatori paralleli ==>

hardware - architetture - macchine Von Neumann

Page 97: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

97

Architetture di calcolatori

l’architettura dei calcolatori non si basa più sul solo modello di Von Neumann, ma anche su piattaforme più complesse (Non Von-Neumann, calcolatori paralleli e distribuiti).

La classificazione proposta da Flynn (anni 70) si basa sul concetto di flussi di informazioni, ossia su come le informazioni “viaggiano” all’interno dei calcolatori e sul ruolo distinto tra:

•flusso dei dati (data stream)•flusso delle istruzioni (instruction stream)

hardware - architetture - macchine NON Von Neumann

Page 98: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

98

L’elaborazione in un calcolatore si distingue in:

• seriale nel tempo (un' istruzione lavora su un dato, in ogni istante viene eseguita 1 istruzione, le istruzioni sono eseguite in sequenza nel tempo, una dopo l'altra, in serie (*), sono macchine alla Von Neumann, SISD = Single Instruction (stream) Single Data (stream)

• parallela nel tempo (*) : piu’ istruzioni e/o piu’ dati elaborati contemporaneamente, macchine non Von Neumann,

SIMD = Single Instruction Multiple DataMISD = Multiple Instruction Single DataMIMD = Multiple Instruction Multiple Data

(*) in realta' c'e' sempre un parallelismo: un byte (8 bit) almeno, sono (all'interno) sempre trattati in parallelo; solo nella porta seriale i bit viaggiano uno alla volta...) oggi sono elaborati in parallelo 32 o 64 bit...

hardware - architetture - macchine NON Von Neumann

Page 99: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

99

ELABORAZIONE

Seriale Parallela

SISD SIMD MISD MIMD

Macchinadi Von

Neumann

Arrayprocessors,Connection

Machine

Pipeline

(struttura attualimicroprocessori)

Architetturemulti-processors

emulti-computer

Architetture Non-Von Neumann

hardware - architetture - macchine NON Von Neumann

Page 100: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

100parallelismo delle macchine Von Neumann

nei calcolatori correnti c'e' in genere una (o due) unita' centrale che riesce a fare un gran numero di attivita' contemporaneamente: * vi sono 2 o piu' unita' aritmetiche separate, ciascuna in grado di eseguire delle operazioni indipendentemente, * c'e' una "pipeline" o catena di montaggio dove le istruzioni sono prelevate ed eseguite piu' di una alla volta (mentre un'istruzione A e' gia' nella fase di terminazione di esecuzione, l'istruzione B (che segue la A) inizia l'esecuzione, l'istruzione C (che segue la B) e' in fase di recupero, ...)

Page 101: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

101parallelismo

* le operazioni di I/U sono eseguite in parallelo all'attivita' dell' UC (canali di I/U "autonomi", sono dei calcolatori specializzati alla trasmissione dati da dispositivo periferico (disco) a memoria centrale e viceversa, presenti dagli anni 60 nei mainframe)

il tutto al fine di velocizzare > il tempo di esecuzione medio delle istruzioni (per l'UC) > e dell'elaborazione nel suo complesso (per il calcolatore)

Page 102: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

102misura delle prestazioni

si noti che esistono varie tecniche di misura delle prestazioni di un calcolatore

“benchmark"

ma sono spesso poco affidabili, perche' in genere eseguite su insiemi di istruzioni e/o dati scelti in modo da favorire il modello sotto misura ...

(vedere su rete...)

Page 103: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

103parallelismi

nota: gia' dagli anni sessanta si inizia a rendere l'esecuzione dei programmi piu' velocesia facendo eseguire delle attivita' in parallelo (tipicamente l'esecuzione delle istruzioni da parte dell'unita' centrale e l'esecuzione di ingresso / uscita dati da parte di dispositivi periferici;

sia con strutture con piu' unita' centrali indipendenti che eseguono ciascuna delle istruzioni ... -> macchine parallele, esecuzione parallela di programmi

ma l'evoluzione della tecnologia per una singola CPU (modello Von Neumann) ha sempre raggiunto le prestazioni di queste "super" macchine in genere costosissime ...

Page 104: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

104elaborazione parallela

un'esempio di elaborazione parallela:un procedimento di calcolo complesso viene scomposto in parti eseguibili contemporaneamente, che sono poiassegnate a molti calcolatori collegati in rete (internet);

un esempio dei problemi dell'elaborazione parallela:

vi sono alcune attivita' scomponibili in parti che possono essere eseguite contemporaneamente,esempio: costruzione di una casa prefabbricata (vi sono perfino gare di velocita')ma vi sono anche attivita' difficilmente scomponibili in parti eseguibili contemporaneamente, es: scavo di un fosso di diametro di un metro, profondo 20 metri ...

Page 105: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

105elaborazione parallela

per l'elaborazione sequenziale esistono modelli "classici" da molto tempo, tuttora validi: * formalismo: la macchina di Turing * macchina reale: il modello di von Neumann;

per l'elaborazione parallela non esiste un unico modello formale che possa essere usato per tutti i casi,ne' esiste una macchina parallela reale che possa essere usata convenientemente per tutti i problemi parallelizzabili;

Page 106: 1 GLI AMBIENTI DELL INFORMATICA: HARDWARE M.Hmeljak

106hardware

fine presentazione

della parte relativa all'ambiente

HARDWARE