Trasferimento Ambiente esterno Controllo Informatica Mario Pavone - Dept. Mathematics & Computer Science - University of Catania mpavone@dmi.unict.it
Rappresentazione dell Informazione 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 Byte: unità di misura della capacità di memorizzare informazione Si utilizzano i multipli dei byte Kilo KB 2 10 ~ un migliaio (1024) Mega MB 2 20 ~ un milione (1KB*1024) Giga GB 2 30 ~ un miliardo (1MB*1024) Tera TB 2 40 ~ mille miliardi (1GB*1024) Quanta memoria occupa un file: si misura in byte La capacità di memorizzazione di un dispositivo hardware si misura in byte (capacità di RAM, hard-disk)
Tipo 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 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 Ad ogni carattere bisogna associare un configurazione di bit
Codifica dei Dati Alfabetici 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: Tabella ASCII
Codifica UNICODE 16 bit per carattere => in grado di codificare 2 16 caratteri diversi (~65000) ASCII + caratteri/simboli di altri alfabeti (greco, cinese, arabo, etc.)
Architettura di Von Neumann PC$ Registri$ ALU$ Memoria$di$ massa$ Video/tas4era$ (terminale)$ CPU$ Memoria$ Interfaccia$di$I/O$ Interfaccia$di$I/O$ BUS$ da4$ indirizzi$ controllo$
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 PC+ Registri+ ALU+ Istruzioni+possono+essere+operazioni:+ elaborazione+dell informazione+ trasferimento+dell informazione++ Sono+codificate+mediante+stringhe+bina CPU+ Un istruzione+è+suddivisa+in+ codice&opera.vo:+operazione+da+eseguire+ operandi:+dove+reperire+i+da/+ Il+ codice+ opera/vo+ e+ gli+ operandi+ Dopo ogni istruzione, il program counter viene incrementato di un indirizzo in modo che il processore esegua l istruzione successiva
Zoom della CPU Registro+contatore+ di+programma+(pc)+ Registro+ interruzioni+(intr)+ Registro+istruzione+ corrente+(cir)+ Registro+di+stato+(SR)+ A+ B+ Clock+ Unità+ aritme/co+ logica+ (ALU)+ Unità+di+controllo+ (CU)+ Registro+da/+(DR)+ Registro+indirizzi+ (AR)+
Codifica Istruzione: esempio Esempio: viene eseguita una somma tra i registri R1 ed R2, ed il risultato viene inserito in R0. R0 R1 R2 R3 Istruzione (add) Esito X X + Y X Y ALU X + Y Y
Codifica Istruzioni I dati da elaborare sono conservati all interno dei registri e passati all unità ALU che esegue le operazioni, il risultato viene poi scritto in uno dei registri. In questo caso l unità di controllo gestisce: icollegamenti,ovverodecidequaliregistricollegareiningresso/uscita dell ALU, invia all ALU il codice dell istruzione da eseguire rileva l esito dell operazione svolta dall ALU, in modo da garantire la corretta conclusione dell operazione o che si è verificata una situazione anomala (divisione per 0, overflow).
Formato Istruzioni: esempio Add R2, R3, R4 Somma i valori nei registri R3 ed R4, e imposta il valore risultante in R2. 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 è minore di 0, salta all indirizzo contenuto in R7.
Struttura della Memoria RAM e ROM 0+ 1+ h+=+16+bit+ Parola (word) Registro+indir.+(AR)+ k+=+10+bit+ store+ load+ Registro+da/+(DR)+ h+=+16+bit+ Indirizzo cella Spazio di indirizzamento 2 10 =1024 1023+ Dato da leggere/scrivere ognuna contiene un byte = 8 bits, ogni bit è 0 o indirizzo: numero che identifica la locazione di memoria
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 2) indica sul bus controllo che si tratta di operazione di lettura 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 5) il contenuto del PC viene incrementato per la successiva fase di catch