Controllo Informatica - dmi.unict.it · quello di poter rappresentare un alfabeto di caratteri...
Transcript of Controllo Informatica - dmi.unict.it · quello di poter rappresentare un alfabeto di caratteri...
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
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 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