Controllo Informatica - dmi.unict.it · quello di poter rappresentare un alfabeto di caratteri...

21
[email protected] Controllo Trasferimento Ambiente esterno Informatica Mario Pavone - Dept. Mathematics & Computer Science - University of Catania

Transcript of Controllo Informatica - dmi.unict.it · quello di poter rappresentare un alfabeto di caratteri...

[email protected]

Elaborazione

Controllo

Memorizzazione

Trasferimento

Ambiente

esterno

InformaticaMario Pavone - Dept. Mathematics & Computer Science - University of Catania

Rappresentazione dell’InformazioneRappresentazione delle Informazioni

• L’informazione viene rappresentata

mediante sequenze di bit.

• Ogni parola, o testo, o dato numerico,

o immagine, o suono viene codificato

come configurazioni di bit.

il BIT (binary digit) è la più piccola unità di informazione memorizzabile o elaborabile da un calcolatore

Byte

8

Viviana Patti Informatica di base - 11/11/04

Byte

Byte: unità di misura della capacità di memorizzare informazioneSi utilizzano i multipli dei byte– Kilo KB 210 ~ un migliaio (1024)– Mega MB 220 ~ un milione (1KB*1024)– Giga GB 230 ~ un miliardo (1MB*1024)– Tera TB 240 ~ mille miliardi (1GB*1024)

Quanta memoria occupa un file: si misura in byteLa capacità di memorizzazione di un dispositivo hardware si misura in byte (capacità di RAM, hard-disk)

Viviana Patti Informatica di base - 11/11/04

Esempio: quanta memoria occupa un file sul mio hard-disk?

Byte

Tipo di Informazione e Codifica Binaria

9

Viviana Patti Informatica di base - 11/11/04

Esempio: qual è la capacità di memoria del mio hard-disk?

Byte

Capacità totale11,7 GB

spazio di memoriagià utilizzato

per memorizzareInformazioni

3,82 GB

spazio di memoriaancora disponibile per memorizzare

informazioni7,88 GB

Viviana Patti Informatica di base - 11/11/04

Tipi di informazione e codifica binaria

Vediamo nello specifico come vengono codificate mediante l’alfabeto binario tipi di informazione elementari che solitamente ci interessa elaborare:

– caratteri utilizzati nella comunicazione scritta,

– numeri,

– immagini,

– suoni,

– video

Codifica dei Caratteri

Rappresentare un alfabeto di caratteri

10

Viviana Patti Informatica di base - 11/11/04

Sommario

Rappresentazione digitale o binariaCodifiche di caratteri e simboliRappresentazione dei numeri

Viviana Patti Informatica di base - 11/11/04

I caratteri usati nella comunicazione scritta

Il primo problema che si presenta se vogliamo poter comunicare con il computer usando il nostro linguaggio è quello di poter rappresentare un alfabeto di caratteri

– 52 lettere dell’alfabeto anglosassone (maiuscole + minuscole)

– Segni di punteggiatura : , . ; ! ? “ ‘ … – Segni matematici + - { [ > …– Caratteri nazionali à è è ñ ç …– Altri segni grafici: @ € © …

In totale si tratta di un alfabeto di 220 caratteri circa considerando che ho bisogno di associare a ogni carattere una configurazione di bit (codice numerico), ho bisogno di...

...almeno 8 bit (1 byte)Ad ogni carattere bisogna associare un configurazione di bit

Codifica dei Dati Alfabetici

11

Viviana Patti Informatica di base - 11/11/04

Codifica di dati alfabetici o carattericodifiche standard: per rimediare all’apparente incomunicabilità fra linguaggio binario comprensibile dai computer e i dati alfabetici con cui di solito ci esprimiamo sono state definite alcune convenzioni (o codici) mediante le quali è possibile rappresentare in modo univoco un certo numero di caratteri attraverso configurazioni di bit prestabilite.– ASCII (American Standard Code for Information

Interchange) standard: 7 bit per carattere, rappresenta 128 caratteri

– ASCII esteso: 8 bit per carattere, rappresenta 256 caratteri

– UNICODE: 16 bit per carattere: (ASCII + caratteri etnici), rappresenta circa 65.000 caratteri

codifiche proprietarie:– MSWindows: 16 bit per carattere, simile a UNICODE

Viviana Patti Informatica di base - 11/11/04

Unicode

UNICODE: 16 bit per carattere -> in grado di codificare 216 caratteri diversi (~ 65.000)ASCII + caratteri/simboli di altri alfabeti: greco, cirillico, cinese, arabo…http://www.unicode.org/charts/

Codice in formaesadecimale

117116

Binario:0001 0001 0111 0001

12

Viviana Patti Informatica di base - 11/11/04

Il codice ASCII

NUL0000 0000

000110000

200110010

!0010 0001

P0101 000

i0110 1001

l0110 1100

o0110 1111

SimboloCodice ASCII

segni di punteggiatura

cifre decimali

l. Alfabetichemaiuscole

caratteri di controllo

l. Alfabeticheminuscole

Viviana Patti Informatica di base - 11/11/04

Il codice ASCIIASCII standard: 7 bit per carattere -> in grado di codificare 27= 128 caratteri diversiTabella: mancano le prime 32 configurazioni usate per la codifica dei caratteri specialiLegenda: nella prima colonna ho i primi 3 bit della codifica, nella prima riga gli altri quattro

P -> 1010000

Tabella ASCII

Codifica UNICODE

16 bit per carattere => in grado di codificare 216 caratteri diversi (~65000)

ASCII + caratteri/simboli di altri alfabeti (greco, cinese, arabo, etc.)

11

Viviana Patti Informatica di base - 11/11/04

Codifica di dati alfabetici o carattericodifiche standard: per rimediare all’apparente incomunicabilità fra linguaggio binario comprensibile dai computer e i dati alfabetici con cui di solito ci esprimiamo sono state definite alcune convenzioni (o codici) mediante le quali è possibile rappresentare in modo univoco un certo numero di caratteri attraverso configurazioni di bit prestabilite.– ASCII (American Standard Code for Information

Interchange) standard: 7 bit per carattere, rappresenta 128 caratteri

– ASCII esteso: 8 bit per carattere, rappresenta 256 caratteri

– UNICODE: 16 bit per carattere: (ASCII + caratteri etnici), rappresenta circa 65.000 caratteri

codifiche proprietarie:– MSWindows: 16 bit per carattere, simile a UNICODE

Viviana Patti Informatica di base - 11/11/04

Unicode

UNICODE: 16 bit per carattere -> in grado di codificare 216 caratteri diversi (~ 65.000)ASCII + caratteri/simboli di altri alfabeti: greco, cirillico, cinese, arabo…http://www.unicode.org/charts/

Codice in formaesadecimale

117116

Binario:0001 0001 0111 0001

Architettura di Von Neumann

Lo(Schema(di(Riferimento(

ALU$

Interfaccia$di$I/O$

Video/tas4era$(terminale)$

Memoria$di$massa$

da4$

controllo$

indirizzi$BUS$

Interfaccia$di$I/O$Memoria$CPU$

PC$

Registri$

Codifica delle Istruzioni

La stessa logica di codifica dei dati si applica alle istruzione

Tipi di Istruzioni:

aritmetico-logiche

trasferimento dati

controllo

Esempio di Codifica

Codifica Istruzioni

Ogni istruzione è codificata univocamente mediante una successione chiamata codice operativo

un’istruzione deve specificare anche i dati e/o i riferimenti ai dati necessari per l’esecuzione (operandi)

il numero dei dati da specificare è variabile

Codifica delle Istruzioni

Esempi di formato delle istruzioni in linguaggio macchina

Codifica Istruzioni

Codifica+delle+istruzioni+

•  Istruzioni+possono+essere+operazioni:+–  elaborazione+dell’informazione+–  trasferimento+dell’informazione++

•  Sono+codificate+mediante+stringhe+binarie+•  Un’istruzione+è+suddivisa+in+–  codice&opera.vo:+operazione+da+eseguire+–  operandi:+dove+reperire+i+da/+

•  Il+ codice+ opera/vo+ e+ gli+ operandi+ sono+ anch’essi+codifica/+in+forma+binaria+

Codifica+delle+istruzioni+

•  Istruzioni+possono+essere+operazioni:+–  elaborazione+dell’informazione+–  trasferimento+dell’informazione++

•  Sono+codificate+mediante+stringhe+binarie+•  Un’istruzione+è+suddivisa+in+

–  codice&opera.vo:+operazione+da+eseguire+–  operandi:+dove+reperire+i+da/+

•  Il+ codice+ opera/vo+ e+ gli+ operandi+ sono+ anch’essi+codifica/+in+forma+binaria+

ArchiteAura+di+Von+Neumann+

ALU+

Interfaccia+di+I/O+

Video/tas/era+(terminale)+

Memoria+di+massa+

da/+

controllo+

indirizzi+BUS+

Interfaccia+di+I/O+Memoria+CPU+

PC+

Registri+

Esecuzione

Tornando alla fase di elaborazione svolta dalla CPU, il processoreesegue istruzioni contenute in memoria rappresentate da sequenze dibit.

Il punto dove e arrivata l’esecuzione e un indirizzo di memoria dettoprogram counter (PC).

Un indirizzo di memoria e un numero ordinale relativo all’inizio dellamemoria. Esempio (semplificato): PC = 100 vuol dire che deve essereeseguita l’istruzione definita al centesimo byte della memoria.

Dopo ogni istruzione, il program counter viene incrementato di unindirizzo in modo che il processore esegua l’istruzione successiva

Eccezione: in caso di istruzioni di salto

(Stefano Bilotta) Il sistema di elaborazione Corso di Informatica 28 / 57

Zoom della CPUL’unità+di+elaborazione+

Registro+istruzione+corrente+(CIR)+

Registro+da/+(DR)+Registro+indirizzi+

(AR)+

Registro+contatore+di+programma+(PC)+

Registro+di+stato+(SR)+

Registro+interruzioni+(INTR)+

A+

B+

Unità+di+controllo+(CU)+

Clock+

Unità+aritme/co+logica+(ALU)+

Codifica Istruzione: esempioTipi di istruzione

Esempio: viene eseguita una somma tra i registri R1 ed R2, ed ilrisultato viene inserito in R0.

R1R0 R2 R3

ALUX Y

X

+

Y

X

Y

X

+

Y

Istruzione

(add) Esito

(Stefano Bilotta) Il sistema di elaborazione Corso di Informatica 31 / 57

Codifica IstruzioniTipi di istruzione

I dati da elaborare sono conservati all’interno dei registri e passatiall’unita ALU che esegue le operazioni, il risultato viene poi scritto inuno dei registri.

In questo caso l’unita di controllo gestisce:i collegamenti, ovvero decide quali registri collegare in ingresso/uscitadell’ALU,invia all’ALU il codice dell’istruzione da eseguirerileva l’esito dell’operazione svolta dall’ALU, in modo da garantire lacorretta conclusione dell’operazione o che si e verificata una situazioneanomala (divisione per 0, overflow).

(Stefano Bilotta) Il sistema di elaborazione Corso di Informatica 32 / 57

Formato Istruzioni: esempioFormati delle istruzioni

Vediamo alcuni esempi di possibili istruzioni, ’tradotte’ dalla sequenzadi bit al loro significato:

Add R2, R3, R4

Somma i valori nei registri R3 ed R4, e imposta il valore risultante inR2.

Add R2, R4, 1

Somma 1 al valore di R4, e imposta il valore risultante in R2.

Store R2, 5000

Scrivi il contenuto di R2 in memoria all’indirizzo 5000.

Branch if lower than 0 R4, R7

Se il contenuto di R4 e minore di 0, salta all’indirizzo contenuto in R7.

(Stefano Bilotta) Il sistema di elaborazione Corso di Informatica 34 / 57

Struttura della Memoria

Parola (word)

Spazio di

indirizzamento

210=1024

Memoria+centrale+

Registro+indir.+(AR)+

k+=+10+bit+

Registro+da/+(DR)+

load+

store+

h+=+16+bit+

0+1+

1023+

h+=+16+bit+RAM e ROM

Dato da

leggere/scrivere

Indirizzo cella

6

memoria principaleè una lunga sequenza di locazioni

ognuna contiene un byte = 8 bits, ogni bit è 0 oppure 1indirizzo: numero che identifica la locazione di memoria

dati grandi: alcuni dati sono troppo grandi per stare in un byte

molti interi e realigli indirizzi fanno riferimento al primo byte i byte seguenti servono a memorizzare la parte restante del dato

Struttura della Memoria

Alcuni dati sono troppo grandi per stare in un byte

gli indirizzi fanno riferimento al primo byte

i byte seguenti servono a memorizzare la parte restante del dato

Ciclo della Macchina

La CPU esegue in successione tutte le istruzioni di un programma

Nota: mentre le fasi di lettura (fetch) e decodifica (decode) hanno durata uguale per tutte le istruzioni; la fase di esecuzione richiede un tempo variabile

La fase di Fetch

Compito Principale: prelievo dalla memoria delle istruzioni da eseguire

1) il contenuto di Program Counter (PC) viene trasferito sul bus indirizzi e trasmesso alla memoria

3) la memoria legge il contenuto all’indirizzo specificato e lo trasferisce al bus dati

4) il contenuto del bus dati viene copiato nel registro istruzione corrente

2) indica sul bus controllo che si tratta di operazione di lettura

5) il contenuto del PC viene incrementato per la successiva fase di catch