La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Fondamenti di Informatica Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

Presentazioni simili


Presentazione sul tema: "1 Fondamenti di Informatica Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical."— Transcript della presentazione:

1 1 Fondamenti di Informatica Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical Numerical Integrator and Calculator Il primo calcolatore elettronico, lENIAC Electronical Numerical Integrator and Calculator nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti allUniversità della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel LENIAC, per la cui costruzione furono usate valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. Limpiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici. ENIAC Electronical Numerical Integrator and Calculator Il primo calcolatore elettronico, lENIAC Electronical Numerical Integrator and Calculator nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti allUniversità della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel LENIAC, per la cui costruzione furono usate valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. Limpiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici.

2 2 Lalgebra di Boole da Analisi Matematica della Logica (1847) al progetto degli elaboratori digitali Sistemi di numerazione da decimale a binario, a esadecimale: lalfabeto dellelaboratore La rappresentazione dei datie laritmetica degli elaboratori La rappresentazione dei dati e laritmetica degli elaboratori dai bit ai numeri, ai testi, alle immagini, alla musica, ai video in digitale La struttura del calcolatore da ENIAC al PC, ad HAL2000: cosa cè sotto ? Sommario UNIVAC (1951) UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole ( ) nel lavoro Analisi Matematica della Logica, pubblicato nel Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verità Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione. UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dellENIAC) per lUfficio Centrale di Statistica degli Stati Uniti. Lalgebra di Boole truefalse Fu teorizzata dal matematico inglese George Boole ( ) nel lavoro Analisi Matematica della Logica, pubblicato nel Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nellalgebra booleana possono essere applicate allanalisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. tabella di verità Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

3 3 Lalgebra di Boole

4 4 Algebra Booleana 01falsovero Contempla due costanti 0 e 1 (falso e vero) Corrispondono a due stati che si escludono a vicenda Possono descrivere lo stato di apertura o chiusura di un generico contatto o di un circuito a più contatti ANDORNOT Si definiscono delle operazioni fra i valori booleani: AND, OR, NOT sono gli operatori fondamentali 0 1 Le operazioni AND e OR sono operazioni binarie, loperazione NOT è unaria. Nella valutazione delle espressioni booleane esiste una relazione di precedenza fra gli operatori NOT, AND e OR, nellordine in cui sono stati elencati; le parentesi vengono utilizzate nel modo consueto.

5 5 Loperazione di OR somma logica Si definisce loperazione di somma logica (OR): il valore della somma logica è il simbolo 1 se il valore di almeno uno degli operandi è il simbolo = = = =

6 6 Loperazione di AND prodotto logico Si definisce loperazione di prodotto logico (AND): il valore del prodotto logico è il simbolo 1 se il valore di tutti gli operandi è il simbolo = = = =

7 7 La negazione NOT negazione Si definisce loperatore di negazione (NOT): loperatore inverte il valore della costante su cui opera 0 = 1 1 = 0 dalla definizione… 0 = 0 1 = 1

8 8 Variabili binarie Una variabile binaria indipendente può assumere uno dei due valori 0 e 1 Date n variabili binarie indipendenti la loro somma logica (OR) è x 0 1 x 1 + x 2 + … + x n = 1 se almeno una x i vale 1 0 se x 1 = x 2 = …= x n = 0

9 9 AND e NOT con variabili binarie x 1 x 2 … x n = 0 se almeno una x i vale 0 1 se x 1 = x 2 = …= x n = 1 Date n variabili binarie indipendenti il loro prodotto logico (AND) è La negazione di una variabile x è x = 0 se x = 1 x = 1 se x = 0 complemento Lelemento x = NOT( x ) viene detto complemento di x. Il complemento è unico.

10 10 Alcune identità x + 1 = 1 x + 0 = x x + x = x x 1 = x x 0 = 0 x x = x x 1 = x 1 1 = = 0 x = 0 x = 1 OK! Si verificano le uguaglianze Ad esempio… elemento neutro 0 è lelemento neutro per loperazione di OR; 1 è lelemento neutro per lAND. Gli elementi neutri sono unici. legge dellidempotenza La legge x + x = x · x = x è detta legge dellidempotenza. elemento neutro 0 è lelemento neutro per loperazione di OR; 1 è lelemento neutro per lAND. Gli elementi neutri sono unici. legge dellidempotenza La legge x + x = x · x = x è detta legge dellidempotenza.

11 11 Per gli operatori AND e OR valgono le seguenti proprietà: Per loperatore NOT si provano le seguenti identità: Altre proprietà commutativa commutativa x 1 + x 2 = x 2 + x 1 x 1 x 2 = x 2 x 1 associativa associativa x 1 + x 2 + x 3 = x 1 + ( x 2 + x 3 ) x 1 x 2 x 3 = x 1 ( x 2 x 3 ) distributiva delprodotto rispetto alla somma distributiva del prodotto rispetto alla somma x 1 x 2 + x 1 x 3 = x 1 ( x 2 + x 3 ) x + x = 1 x x = 0 x = x

12 12 Date n variabili binarie indipendenti x 1, x 2, …, x n, queste possono assumere 2 n configurazioni distinte Una configurazione specifica è individuata univocamente da un AND di tutte le variabili, dove quelle corrispondenti ai valori 0 compaiono negate Configurazioni delle variabili Ad esempio per n =3 si hanno 8 configurazioni x1x2x3x1x2x x1x2x3x1x2x3 010

13 13 Una variabile y è una funzione delle n variabili indipendenti x 1, x 2, …, x n, se esiste un criterio che fa corrispondere in modo univoco ad ognuna delle 2 n configurazioni delle x un valore di y tabella di verità Una rappresentazione esplicita di una funzione è la tabella di verità, in cui si elencano tutte le possibili combinazioni di x 1, x 2, …, x n, con associato il valore di y Funzioni logiche y = F(x 1,x 2,…,x n ) x 1 x 2 y y = x 1 +x 2

14 14 Una tabella di verità Date 3 variabili booleane ( A,B,C ) si scrive la funzione F che vale 1 quando solo due di esse hanno valore 1 A B C F Si può scrivere la funzione come somma logica delle configurazioni corrispondenti agli 1 F(A,B,C) = ABC + ABC + ABC Forma canonica: somma di prodotti (OR di AND) Forma canonica: somma di prodotti (OR di AND) tutte le funzioni logiche si possono scrivere in questa forma

15 15 Un esempio: lo XOR La funzione XOR verifica la disuguaglianza di due variabili Lespressione come somma di prodotti è quindi... x 1 x 2 XOR XOR = x 1 x 2 + x 1 x 2ESEMPI legge dellassorbimento 1)La legge dellassorbimento x 1 + x 1 · x 2 = x 1 leggi di De Morgan 2)Le leggi di De Morgan (x 1 + x 2 )' = x 1· x 2 ( x 1 · x 2 ) = x 1+ x 2 ( un modo alternativo per indicare la negazione). Dalle leggi di De Morgan si evince che la scelta delle funzioni OR, AND e NOT, come funzioni primitive, è ridondante. Loperazione logica AND può essere espressa in funzione delle operazioni OR e NOT; in modo analogo, loperazione OR può essere espressa tramite AND e NOT. 3)Le relazioni stabilite sono generalmente applicate nelle trasformazioni di funzioni booleane in altre equivalenti, ma di più facile realizzazione circuitale.ESEMPI legge dellassorbimento 1)La legge dellassorbimento x 1 + x 1 · x 2 = x 1 leggi di De Morgan 2)Le leggi di De Morgan (x 1 + x 2 )' = x 1· x 2 ( x 1 · x 2 ) = x 1+ x 2 ( un modo alternativo per indicare la negazione). Dalle leggi di De Morgan si evince che la scelta delle funzioni OR, AND e NOT, come funzioni primitive, è ridondante. Loperazione logica AND può essere espressa in funzione delle operazioni OR e NOT; in modo analogo, loperazione OR può essere espressa tramite AND e NOT. 3)Le relazioni stabilite sono generalmente applicate nelle trasformazioni di funzioni booleane in altre equivalenti, ma di più facile realizzazione circuitale.

16 16 Un circuito con due interruttori I due interruttori corrispondono a due variabili ( A,B ) a valori booleani le variabili assumono i due valori 0 e 1 che corrispondono alle due posizioni dellinterruttore L = A B+A B A B A B A=1 B=0 L A B A B A=1 B=1 L A B A B A=0 B=1 L A B A B A=0 B=0 L

17 17 Un esercizio Progettare un circuito per accendere e spegnere una lampada da uno qualsiasi di tre interruttori indipendenti A B C A BC Cambia lo stato di un interruttore qualsiasi L = 0 L = 1

18 18 Analisi delle combinazioni Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta A BC 000 L = 0 L = 1 ABC 0 10 A BC 001 ABC 1 00 L = 0 ABC 101 A BC 111 L = ABC L = ABC

19 19 Scrittura della funzione logica tabella di verità Dalle otto combinazioni si ottiene la tabella di verità della funzione logica somma logica di prodotti logici Si può scrivere la funzione L come somma logica di prodotti logici A B C L L = A B C + A B C + A B C + A B C

20 20 Come collegare gli interruttori Si può manipolare lespressione di L usando la proprietà distributiva dellAND rispetto allOR L = A (B C + B C) + A (B C + B C) L = A B C + A B C + A B C + A B C A A B B C C C C B B A A B B C C C C B B

21 21 Sistemi di numerazione

22 22 Sistemi di numerazione posizionali Sistemi di numerazione posizionali: base La base del sistema di numerazione cifre Le cifre del sistema di numerazione posizione relativa Il numero è scritto specificando le cifre in ordine ed il suo valore dipende dalla posizione relativa delle cifre Esempio Esempio: Il sistema decimale (Base 10) Cifre : = 5· · · ·10 0 Posizione:

23 23 Sistemi in base B La base definisce il numero di cifre diverse nel sistema di numerazione La cifra di minor valore è sempre lo 0; le altre sono, nellordine, 1,2,…,B 1; se B>10 occorre introdurre B 10 simboli in aggiunta alle cifre decimali N = c n B n +c n-1 B n c 2 B 2 +c 1 B 1 +c 0 B 0 frazionario Un numero frazionario N si rappresenta come (0,c 1 c 2 …c n ) B intero Un numero intero N si rappresenta con la scrittura (c n c n-1 …c 2 c 1 c 0 ) B N = c 1 B -1 +c 2 B c n B -n c n cifra più significativac 0 meno significativa c n è la cifra più significativa, c 0 la meno significativa

24 24 Numeri interi senza segno Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a B n 1 (B n numeri distinti) Esempio Esempio: base 10 2 cifre: da 0 a = … Esempio Esempio: base 2 2 cifre: da 0 a = = 100 valori 2 2 = 4 valori

25 25 Il sistema binario (B=2) La base 2 è la più piccola per un sistema di numerazione bitbinary digit Cifre: 0 1 bit (binary digit) Esempi Esempi: (101101) 2 = = = (45) 10 (0,0101) 2 = = 0 + 0, ,0625 = (0,3125) 10 (11,101) 2 = = , ,125 = (3,625) 10 Formapolinomia

26 26 byte Un byte è un insieme di 8 bit (un numero binario a 8 cifre) Con un byte si rappresentano i numeri interi fra 0 e = 255 È lelemento base con cui si rappresentano i dati nei calcolatori Si utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)… Dal bit al byte b7b6b5b4b3b2b1b0b7b6b5b4b3b2b1b …………… = 256 valori distinti

27 27 Da decimale a binario 1 intero Si divide ripetutamente il numero intero decimale per 2 fino ad ottenere un quoziente nullo; le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è lultimo resto Esempio Esempio: convertire in binario (43) : 2 = : 2 = : 2 = : 2 = : 2 = : 2 = resti bit più significativo (43) 10 = (101011) 2

28 28 frazionario Si moltiplica ripetutamente il numero frazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte; le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione Da decimale a binario 2 Esempio Esempio: convertire in binario (0,21875) 10 e (0,45) 10 0,45 2 = 0,9 0,90 2 = 1,8 0,80 2 = 1,6 0,60 2 = 1,2 0,20 2 = 0,4 etc. (0.45) 10 ( ) 2 0, = 0,4375 0, = 0,875 0,875 2 = 1,75 0,75 2 = 1,5 0,5 2 = 1,0 ( ) 10 = ( ) 2

29 29 Da binario a decimale forma polinomia Oltre allespansione esplicita in potenze del 2 forma polinomia… …si può operare nel modo seguente: si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo Esempio Esempio: convertire in decimale (101011) 2 bit più significativo (101011) 2 = = (43) 10 1 x 2 = x 2 = x 2 = x 2 = x 2 = = 43 (101011) 2 = (43) 10 Esercizio Si verifichino le seguenti corrispondenze: a)(110010) 2 =(50) 10 b)( ) 2 =(102) 10 c)(1111) 2 =(17) 10 d)(11011) 2 =(27) 10 e)(100001) 2 =(39) 10 f)( ) 2 =(237) 10Esercizio Si verifichino le seguenti corrispondenze: a)(110010) 2 =(50) 10 b)( ) 2 =(102) 10 c)(1111) 2 =(17) 10 d)(11011) 2 =(27) 10 e)(100001) 2 =(39) 10 f)( ) 2 =(237) 10

30 30 Sistema esadecimale La base 16 è molto usata in campo informatico Cifre: A B C D E F Esempio Esempio: (3A2F) 16 = = = (14895) 10 La corrispondenza in decimale delle cifre oltre il 9 è A = (10) 10 D = (13) 10 B = (11) 10 E = (14) 10 C = (12) 10 F = (15) 10

31 31 Da binario a esadecimale Una cifra esadecimale corrisponde a 4 bit Si possono rappresentare numeri binari lunghi con poche cifre (1/4) La conversione da binario ad esadecimale è immediata, raggruppando le cifre binarie in gruppi di 4 (da destra) e sostituendole con le cifre esadecimali secondo la tabella precedente A B C D E F F corrisponde a 4 bit a 1 0 corrisponde a 4 bit a 0

32 32 Dai bit allhex Un numero binario di 4n bit corrisponde a un numero esadecimale di n cifre Esempio Esempio: 32 bit corrispondono a 8 cifre esadecimali D 9 1 B F (D91B437F) 16 Esempio Esempio: 16 bit corrispondono a 4 cifre esadecimali F F (00FF) 16

33 33 Da esadecimale a binario La conversione da esadecimale a binario si ottiene espandendo ciascuna cifra con i 4 bit corrispondenti Esempio 0x Esempio : convertire in binario il numero esadecimale 0x0c8f Notazione usata in molti linguaggi di programmazione per rappresentare numeri esadecimali 0 c 8 f Il numero binario ha 4 x 4 =16 bit

34 34 Esempi 1 posizionale In qualsiasi base, lessere il sistema di numerazione posizionale, impone che combinazioni diverse di cifre uguali rappresentino numeri diversi; ad esempio: (319) 10 (193) 10 (152) 6 (512) 6, infatti... (152) 6 = = =(68) 10 (512) 6 = = =(188) 10 Numeri che hanno identica rappresentazione, in basi diverse, hanno valori diversi: (234) 10 (234) 8, infatti... (234) 8 = = = = (156) 10 Osservazione Osservazione: più piccola è la base, minore è il valore del numero rappresentato dalla stessa sequenza di cifre

35 35 Esempi 2 La notazione posizionale si applica anche per il calcolo del valore dei numeri frazionari, infatti... (0,872) 10 = = 8/10 + 7/ /1000 = 0,8 + 0,07 + 0,002 Quante cifre occorreranno per rappresentare il numero decimale 36 in base 2? Sappiamo che con n cifre si rappresentano i numeri da 0 a 2 n 1, quindi... per n=1 (con una cifra) si rappresentano ,1 per n=2: per n=3: per n=4: per n=5: per n=6: Effettivamente possiamo verificare che (100100) 2 =(36) 10, infatti = = = 36 6 con 6 cifre necessarie per la codifica del numero in base 2

36 36 Esempi 3 Quesito Quesito: Per quale base B risulterà vera luguaglianza = 102 ? Se i numeri sono rappresentati in base B, sappiamo che: (17) B = 1 B 1 +7 B 0 = B+7 (41) B = 4 B 1 +1 B 0 = 4B+1 (22) B = 2 B 1 +2 B 0 = 2B+2 (102) B = 1 B 2 +0 B 1 +2 B 0 = B 2 +2 da cui...B+7+4B+1+2B+2 = 7B+10 = B 2 +2 Si ottiene unequazione di 2° grado:B 2 7B 8 = 0 Risolvendo: = = 81 B = (7 )/2 = (7 9)/2 = 1 (7+9)/2 = 8 È la soluzione! Non può essere una base

37 37 La rappresentazione dei dati e laritmetica degli elaboratori

38 38 Numeri interi positivi I numeri interi positivi sono rappresentati allinterno dellelaboratore utilizzando un multiplo del byte (generalmente 2/4 byte) Se lintero si rappresenta con un numero di cifre minore, vengono aggiunti zeri nelle cifre più significative Esempio Esempio: 12 viene rappresentato in un byte come…

39 39 Numeri con segno Per rappresentare numeri con segno, occorre utilizzare un bit per definire il segno del numero Si possono usare 3 tecniche di codifica Modulo e segno Complemento a 2 Complemento a 1

40 40 Modulo e segno Il bit più significativo rappresenta il segno: 0 per i numeri positivi, 1 per quelli negativi Esiste uno zero positivo (00…0) e uno zero negativo (10…0) Se si utilizzano n bit si rappresentano tutti i numeri compresi fra (2 n 1 1) e +2 n 1 1 Esempio Esempio : con 4 bit si rappresentano i numeri fra 7 ( (2 3 1)) e +7 (2 3 1) positivi negativi

41 41 Complemento a 2 Il complemento a 2 di un numero binario (N) 2 a n cifre è il numero Tale numero si ottiene… Effettuando il complemento a 1 del numero di partenza (negazione di ogni cifra): si trasforma ogni 0 in 1 e ogni 1 in 0 Aggiungendo 1 al numero ottenuto Oppure: a partire da destra, lasciando invariate tutte le cifre fino al primo 1 compreso, quindi invertendo il valore delle rimanenti complemento a N N+1 2 n (N) 2 = 10……0 (N) 2 { n

42 42 Interi in complemento a 2 numeri positivi I numeri positivi sono rappresentati in modulo e segno numeri negativi I numeri negativi hanno un 1 nella posizione più significativa e sono rappresentati in complemento a 2 Lo zero è rappresentato come numero positivo (con una sequenza di n zeri) Il campo dei numeri rappresentabili è da 2 n 1 a +2 n 1 1 Esempio Esempio : numeri a 4 cifre Nota:

43 43 Interi a 16 bit Numeri interi rappresentati su 16 bit in complemento a 2: Il più grande numero intero positivo è =(32767) x 7 F F F Il più piccolo numero intero negativo è 2 15 =( 32768) x Il numero intero –1 è rappresentato come x F F F F

44 44 Addizione binaria Le regole per laddizione di due bit sono Lultima regola è… (1) 2 +(1) 2 = (10) 2 … (1+1=2) 10 !! = = = = 0 con riporto di 1 Esempio riporti

45 45 Sottrazione binaria 1 Le regole per la sottrazione di due bit sono La sottrazione può divenire complicata: quando si ha una richiesta sulla cifra precedente a sinistra, che è uno 0, loperazione si propaga a sinistra fino alla prima cifra ad 1 del sottraendo 0 0 = = = = 1 con prestito di 1 dalla cifra precedente a sinistra Esempio

46 46 Sottrazione binaria – 2 Utilizzando la rappresentazione in complemento a 2, addizione e sottrazione sono trattate come ununica operazione N 1 N 2 = N 1 +(2 n N 2 ) 2 n complemento a 2 di N 2 : ( N 2 ) si trascura il bit n +1 Si calcola il complemento a 2 di N 2 Si somma N 1 con il complemento a 2 di N 2 Si trascura il bit più significativo del risultato Esempio Esempio : (010001) 2 (000101) 2 = (17) 10 (5) (12) 10 {

47 47 Sono utili perché loperazione di somma può essere realizzata non curandosi del bit di segno In complemento a 1 (più semplice da calcolare)… Zero ha due rappresentazioni: e La somma bit a bit funziona quasi sempre In complemento a 2… Zero ha una sola rappresentazione La somma bit a bit funziona sempre Rappresentazioni in complemento ( 6) = ( 5) ( 12) (6) = ( 10) ( 4)

48 48 Overflow overflow Loverflow si ha quando il risultato di unoperazione non è rappresentabile correttamente con n bit Per evitare loverflow occorre aumentare il numero di bit utilizzati per rappresentare gli operandi Cè overflow se cè riporto al di fuori del bit di segno e non sul bit di segno, o se cè riporto sul bit di segno, ma non al di fuori Esempio Esempio : 5 bit [ 16,+15] Punteggio nei vecchi videogame… sorpresa per i campioni! = = 32768

49 49 Moltiplicazione binaria Le regole per la moltiplicazione di due bit sono Moltiplicare per 2 n corrisponde ad aggiungere n zeri in coda al moltiplicando 0 0 = = = = 1 Esempio x x = = 2 4

50 50 La divisione binaria di A per B viene calcolata in modo analogo alla divisione decimale, così da ottenere un quoziente Q ed un resto R, tali che A = B Q + R La divisione binaria si compone di una serie di sottrazioni Dividere per 2 n equivale a scorrere il numero a destra di n posizioni; le cifre scartate costituiscono il resto Divisione binaria ( ^ ^^ 51:16 = 3 con resto = 11 con resto =

51 51 Esercizi Esercizio 1 Assumendo che un elaboratore rappresenti i numeri interi con segno su quattro bit, si calcolino entrambi i membri della seguente identità: (A C)+B = (A+B) C (A C)+B = (A+B) C, A=7B=5C=7 con A=7, B=5, C=7. Si ottiene lo stesso risultato dal calcolo dei due membri? Discutere le motivazioni della risposta. Esercizio 2 a) Si determini, se esiste, la base b di un sistema di numerazione tale che (842) b = (1202) 10 b) Si determini, se esiste, la base b 16 di un sistema di numerazione tale che (725) b (626) b = (224) 10

52 52 Numeri in virgola mobile notazione scientifica La rappresentazione dei numeri in virgola mobile è in relazione con la notazione scientifica (es =120) La IEEE ha previsto uno standard per la rappresentazione in virgola mobile singola precisione singola precisione (32 bit = 4 byte) doppia precisione doppia precisione (64 bit = 8 byte) quadrupla precisione quadrupla precisione (128 bit = 16 byte) Singola precisione bit8 bit Mantissa (o Caratteristica) Segno Il valore è ( 1) S 1.M 2 E 127 se E 0 ( 1) S 0.M se E=0 Esponente

53 53 Singola precisione Il numero più grande rappresentabile è ( ) Il più piccolo numero positivo è = In totale si rappresentano 2 32 numeri distinti, metà positivi, metà negativi Circa metà dei numeri sono compresi fra 1 e 1 (E 127<0) valori

54 54 Metodo per il calcolo delladdizione 1. Se le caratteristiche dei numeri sono diverse, si considera il numero con caratteristica minore e… 1.1 Si trasla la mantissa di un posto a destra 1.2 Si incrementa la caratteristica di 1, fino a quando le due 2. La mantissa del risultato è ottenuta dalla somma delle due mantisse 3. Se laddizione comporta un riporto oltre la cifra più significativa, si trasla la mantissa del risultato a destra di un posto, il riporto nel bit più significativo, e si incrementa la caratteristica di 1 Laritmetica floating point: addizione caratteristiche sono uguali, e corrispondono alla caratteristica del risultato

55 55 Supponiamo che per la rappresentazione floating–point vengano utilizzati otto bit, di cui uno per il segno, tre per la caratteristica e quattro per la mantissa La caratteristica del secondo operando è più piccola di una unità, quindi la mantissa deve scorrere di una posizione a destra La caratteristica del risultato è 110 e la mantissa è = 10001; la caratteristica deve essere aumentata di 1 e portata a 111, e la mantissa del risultato traslata a destra di una posizione: Un esempio di addizione errore di troncamento Codifica il numero 4 (dato che la caratteristica si rappresenta in eccesso a 4), ma il risultato corretto è 4.375: errore di troncamento N = ( 1) s 0.M 2 E 4

56 56 Metodo per il calcolo della moltiplicazione 1. Si moltiplicano le due mantisse 2. Si addizionano le due caratteristiche 3. Si trasla a sinistra il prodotto delle due mantisse fino ad ottenere un 1 come cifra più significativa; si diminuisce la caratteristica di 1 per ogni traslazione eseguita 4. Si tronca la mantissa al numero di bit utilizzati nella rappresentazione; la mantissa del prodotto è il risultato del troncamento 5. Si sottrae leccesso alla somma delle caratteristiche, ottenendo la caratteristica del prodotto Laritmetica floating point: moltiplicazione

57 57 Supponiamo che per la rappresentazione floating–point vengano utilizzati otto bit, di cui uno per il segno, tre per la caratteristica e quattro per la mantissa Moltiplicando le mantisse e sommando le caratteristiche si ottiene: La mantissa del risultato deve essere traslata di un posto a sinistra, e la somma delle caratteristiche deve essere decrementata di 1; infine la mantissa deve essere troncata alle 4 cifre significative e leccesso (100) sottratto alla caratteristica: Un esempio di moltiplicazione M= E= errore di troncamento Codifica il numero , ma il risultato corretto è : errore di troncamento N = ( 1) s 0.M 2 E 4

58 58 Laritmetica interna degli elaboratori differisce notevolmente dallaritmetica classica Sebbene le stesse operazioni possano essere realizzate secondo modalità diverse su elaboratori diversi, si riscontrano alcune caratteristiche comuni: Rappresentazione binaria dei numeri Rango finito dei numeri rappresentabili Precisione finita dei numeri Operazioni espresse in termini di operazioni più semplici Laritmetica degli elaboratori 1

59 59 Rango finito dei numeri rappresentabili Qualunque sia la codifica utilizzata, esistono sempre il più grande ed il più piccolo numero rappresentabile I limiti inferiore e superiore del rango di rappresentazione dipendono sia dal tipo di codifica, sia dal numero di bit utilizzati underflow Se il risultato di unoperazione non appartiene al rango dei numeri rappresentabili, si dice che si è verificato un overflow (un underflow, più precisamente, se il risultato è più piccolo del più piccolo numero rappresentabile) Laritmetica degli elaboratori 2

60 60 Precisione finita dei numeri precisione La precisione della rappresentazione di un numero frazionario è una misura di quanto essa corrisponda al numero che deve essere rappresentato floating–point Negli elaboratori, i numeri frazionari sono rappresentati in virgola mobile (floating–point), utilizzando un numero finito di bit È plausibile che un numero reale non ammetta una rappresentazione finita, quindi dovrà essere codificato in maniera approssimata Negli elaboratori si rappresentano soltanto numeri razionali (fino ad una data precisione) Laritmetica degli elaboratori 3

61 61 Operazioni espresse in termini di operazioni più semplici La maggior parte degli elaboratori non possiede circuiti in grado di eseguire direttamente tutte le operazioni: La sottrazione si realizza per mezzo di una complementazione e di unaddizione shift La moltiplicazione si realizza per mezzo di una successione di addizioni e di shift (traslazioni) La divisione si realizza per mezzo di una successione di shift e sottrazioni hardware firmware Le operazioni più semplici sono eseguite direttamente da appositi circuiti (in hardware); le operazioni più complesse sono realizzate mediante lesecuzione di successioni di operazioni più semplici, sotto il controllo di programmi appositamente realizzati, e generalmente memorizzati permanentemente (in firmware) Laritmetica degli elaboratori 4

62 62 Codifica dei caratteri alfabetici – 1 Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli) Gli elaboratori elettronici trattano numeri Si codificano i caratteri e i simboli per mezzo di numeri Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica A $

63 63 Codifica dei caratteri alfabetici – 2 Quando si scambiano dati, deve essere noto il tipo di codifica utilizzato In genere un sistema informatico deve supportare più standard di codifica La codifica deve prevedere le lettere dellalfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (æ, ã, ë, è,…) codice ASCIIAmerican Standard Code for Information Interchange Il più diffuso è il codice ASCII, per American Standard Code for Information Interchange

64 64 Codifica ASCII 7 bit Definisce una tabella di corrispondenza fra ciascun carattere e un codice a 7 bit (128 caratteri) 1 byte I caratteri, in genere, sono rappresentati con 1 byte (8 bit); i caratteri con il bit più significativo a 1 (quelli con codice dal 128 al 255) rappresentano unestensione della codifica caratteri di controllo caratteri stampabili La tabella comprende sia caratteri di controllo (codici da 0 a 31) che caratteri stampabili I caratteri alfabetici/numerici hanno codici ordinati secondo lordine alfabetico/numerico A 65 B 66 ……. Y 89 Z 90 a 97 b 98 ……. y 121 Z …… cifre maiuscole minuscole

65 65 Caratteri di controllo ASCII I caratteri di controllo (codice da 0 a 31) hanno funzioni speciali Ctrl+carattere Si ottengono o con tasti specifici o con una sequenza Ctrl+carattere Ctrl Dec Hex Code Nota 0 0 NULL carattere nullo ^A 1 1 SOH partenza blocco …… … … …… ………………… ^G 7 7 BEL beep ^H 8 8 BS backspace ^I 9 9 HT tabulazione orizzontale ^J 10 A LF line feed (cambio linea) ^K 11 B VT tabulazione verticale ^L 12 C FF form feed (alim. carta) ^M 13 D CR carriage return (a capo) …… … … …… …………………… ^Z 26 1A EOF fine file ^[ 27 1 B ESC escape …… … … …… ……… ^_ 31 1F US separatore di unità

66 66 Caratteri ASCII stampabili Dec Hx Chr Dec Hx Chr Dec Hx Chr SPACE P96 60 ` p ! A81 51 Q97 61 a q B82 52 R98 62 b r # C83 53 S99 63 c s $ D84 54 T d t % E85 55 U e u & F86 56 V f v G87 57 W g w ( H88 58 X h x ) I89 59 Y i y 42 2A *58 3A :74 4A J90 5A Z106 6A j122 7A z 43 2B +59 3B ;75 4B K91 5B [107 6B k123 7B { 44 2C,60 3C <76 4C L92 5C \108 6C l124 7C | 45 2D -61 3D =77 4D M93 5D ]109 6D m125 7D } 46 2E.62 3E >78 4E N94 5E ^110 6E n126 7E ~ 47 2F /63 3F ?79 4F O95 5F _111 6F o 127 7F DEL Nota Nota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. 5 0 = = 5)

67 67 Tabella ASCII estesa I codici oltre il 127 non sono compresi nello standard originario

68 68 Codifica UNICODE – 1 È lo standard emergente per la codifica dei caratteri nei testi; è basato sulle caratteristiche del codice ASCII, ma supera la limitazione di poter rappresentare in modo coerente solo lalfabeto latino unico codice per ogni carattere di ogni lingua scritta Fornisce un unico codice per ogni carattere di ogni lingua scritta, indipendentemente dalla piattaforma, dal linguaggio o dal programma Lo standard iniziale prevedeva di codificare i caratteri con 16 bit, per un totale di oltre caratteri rappresentabili

69 69 Codifica UNICODE – La versione 3.0 dello standard fornisce i codici per caratteri, derivati dagli alfabeti usati nel mondo, dagli insiemi di ideogrammi, dalle collezioni di simboli UTF-8UTF-16 UTF-32 Lultima versione dello standard definisce tre tipi diversi di codifica che permettono agli stessi dati di essere trasmessi in byte (8 bit UTF-8), word (16 bit UTF-16) o double word (32 bit UTF-32) Tutte le codifiche presuppongono, al più, lutilizzo di 32 bit per carattere

70 70 Codifica delle immagini 1 digitalizzazione Le immagini vengono anchesse codificate come una sequenza di bit: il processo di traduzione da unimmagine ad una sequenza binaria prende il nome di digitalizzazione pixel picture element Limmagine è suddivisa in punti o pixel (per picture element ), e ciascun punto viene codificato con un numero, che corrisponde ad un colore o ad un particolare tono di grigio Si utilizzano un numero di colori o di sfumature che sia una potenza del 2, in modo da codificare linformazione legata a ciascun pixel con un opportuno numero di bit

71 71 Codifica delle immagini 2 Le immagini vengono memorizzate come lunghe sequenze di bit: per interpretarle è necessario conoscere... risoluzione...le dimensioni dellimmagine (base ed altezza in numero di pixel), detta anche risoluzione...il numero di colori (o toni di grigio) disponibili per ogni pixel Se un immagine viene codificata ad una data risoluzione, potrà comunque essere presentata su un dispositivo a più bassa risoluzione, a patto di ignorare alcuni dei bit che descrivono i pixel

72 72 Codifica delle immagini 3 Come è avvenuto per i caratteri, anche per le immagini sono stati definiti standard di codifica, che assicurano la compatibilità fra sistemi diversi, per quanto concerne la trasmissione e la visualizzazione delle immagini TIFFTagged Image File Format TIFF Tagged Image File FormatJPEG PNGPortable Network Graphics PNG Portable Network Graphics compressione Per ridurre lo spazio necessario per memorizzare le immagini si utilizzano tecniche di compressione (utili anche per la trasmissione su rete Internet)

73 73 Codifica delle immagini 4 Le tecniche di compressione si dividono in... Tecniche lossless Tecniche lossless: non provocano perdita di informazione, sono adatte a codificare immagini in cui sono presenti ampie aree monocromatiche si codificano in maniera compatta insiemi di pixel aventi le stesse caratteristiche Tecniche lossly Tecniche lossly: provocano perdita di informazione, facendo decadere la qualità dellimmagine JPEGPNG Normalmente ai formati JPEG e PNG, molto diffusi per lo scambio di immagini su Internet, si applicano metodi di compressione lossly

74 74 La struttura del calcolatore

75 75 Il mercato informatico nel 1964 IBM S/360 Mod MHz 32KB 256KB $ IBM S/360 Mod MHz 128KB 256KB $ IBM S/360 Mod MHz 256KB 1MB $ Nel 1964, IBM lanciò sul mercato la serie /360, coniando per loccasione la definizione di generazione: The third generation begins era infatti il titolo dellarticolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati. La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dellordine dei nanosecondi per le operazioni elementari. Nel 1964, IBM lanciò sul mercato la serie /360, coniando per loccasione la definizione di generazione: The third generation begins era infatti il titolo dellarticolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati. La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dellordine dei nanosecondi per le operazioni elementari.

76 76 Struttura del calcolatore Si possono considerare vari livelli di astrazione: Circuiti elettronici (hardware) Architettura e linguaggio macchina Sistema operativo (software di sistema) Linguaggi di programmazione Programmi applicativi Silicon Graphics Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con lalgebra booleana; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, etc.

77 77 Architettura a BUS bus Larchitettura più consolidata per il calcolatore prevede unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il bus Il bus è fisicamente realizzato mediante un insieme di conduttori elettrici Memoria principale CPU I/O BUS Indirizzi Dati Controllo Dispositivi di Input/Output

78 78 Il BUS Memoria principale CPU Il bus è utilizzato per trasferire dati fra le unità funzionali bus indirizzi bus controllo Lunità che inizia il trasferimento (in genere la CPU) fornisce lindirizzo, che individua univocamente il dato, sulle linee del bus indirizzi, e configura le linee del bus controllo inviando un comando al dispositivo che contiene il dato (es. READ) bus dati Il dato da trasferire è reso disponibile sul bus dati e viene ricopiato nel dispositivo destinatario READ=1 MEM=1 0008AB38 Indirizzo a 32 bit (32 fili) Memoria principale CPU READ=1 MEM=1 0008AB38 5F66B102 Dato a 32 bit (32 fili) trasferito dalla memoria principale alla CPU 5F66B102

79 79 La CPU Central Processing Unit La Central Processing Unit è lunità che controlla il funzionamento del calcolatore (esegue le istruzioni del programma e ne regola il flusso, esegue i calcoli) È costituita da tre elementi fondamentali: Intel Pentium Unità Aritmetico Logica (ALU) Registri Unità di Controllo (CU) ALU CU PC IR registri Contatore di programma Program Counter (Program Counter) Registro Istruzione Istruction Register (Istruction Register) BUS

80 80 LUnità Aritmetico Logica Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CU Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandi FPU Può esistere una unità specializzata per le operazioni in virgola mobile (FPU) Arithmetic Logic Unit LALU (Arithmetic Logic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32 bit); oltre al risultato delloperazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, il risultato è negativo) ALU Result Zero Overflow a b ALU operation CarryOut

81 81 I registri I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32 bit) Alcuni registri hanno funzioni specifiche (es. contatore di programma) In alcune CPU le operazioni della ALU si possono effettuare solo fra dati presenti in due registri Il risultato di unoperazione effettuata dalla ALU può essere memorizzato in un registro EIPInstructionpointer(PC) EFLAGSConditioncodes Codesegmentpointer CS Stacksegmentpointer(topofstack) SS Datasegmentpointer0 DS Datasegmentpointer1ES Datasegmentpointer2 FS Datasegmentpointer3 GS 031 GPR0EAX GPR3EBX GPR1ECX GPR2EDX GPR6ESI GPR7EDI GPR5EBP GPR4ESP Name Use Registri del Pentium

82 82 Registro puntatore allo stack push pop Registro puntatore allo stack (Stack Pointer): lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (Last In First Out); la posizione in cui si trova lelemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (push) ed incrementato ad ogni prelievo (pop) Registri e loro funzioni Registri accumulatori Registri accumulatori: sono integrati alla ALU, che vi può operare direttamente; mantengono risultati temporanei Registro di stato Registro di stato: contiene informazioni che globalmente determinano, in ogni istante, lo stato dellunità centrale 2100 SP 2000

83 83 LUnità di Controllo fetch Esegue le istruzioni prelevandole dalla memoria nella fase di fetch registro contatore di programma La prossima istruzione da eseguire è individuata dallindirizzo presente nel registro contatore di programma (PC) registro istruzione Listruzione in esecuzione è memorizzata nel registro istruzione (IR) decodificato Listruzione è un codice binario che deve essere decodificato dalla CU; specifica il tipo di operazione, gli eventuali operandi, etc. PC viene incrementato Normalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC viene incrementato, per fare riferimento allistruzione successiva CU IR PCPC memoria BUS Istruzione 1 Istruzione 2 Istruzione 3 02AD77F2 Segnali di controllo (ALU, Registri, etc.)

84 84 La memoria principale 1 Lunità di memorizzazione è il byte indirizzo Ciascun byte nella memoria è individuato da un indirizzo che lo distingue da tutti gli altri, costituito da un numero variabile da 0 a 2 N 1 dove N è la dimensione in bit dellindirizzo (es. numero di bit sul bus indirizzi) 128 MB = byte = = byte xxxxxxxxxxxxxxxxxxxxxxxxxxx 27 bit indirizzo allinterno del blocco FFFFFF 32 bit 128 MB

85 85 Fino agli anni `70, le celle erano costituite da nuclei di ferrite attraversati da fili elettrici, che potevano magnetizzarli in un senso o nellaltro, con opportune intensità di corrente, realizzando le cifre 0 e 1 VLSIVery Large Scale Integrated Circuit Attualmente le memorie sono realizzate con tecnologia VLSI (Very Large Scale Integrated Circuit), cioè mediante circuiti elettronici ad elevato grado di integrazione (più bit codificabili su chip di una data dimensione) La memoria principale 2

86 86 La memoria principale 3 memoria ad accesso casualeRAMRandom Access Memory La memoria centrale viene anche chiamata memoria ad accesso casuale o RAM (Random Access Memory): qualsiasi cella può essere letta/scritta in un tempo (mediamente) costante ROMRead Only Memory Una parte della memoria centrale, la ROM (Read Only Memory), viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette (ed in generale contengono informazioni fondamentali, specialmente per linizializzazione dellelaboratore), ma mai riscritte La memoria centrale RAM è volatile

87 87 letturascrittura Le operazioni che si effettuano sulla memoria sono operazioni di lettura e scrittura Entrambe presuppongono lutilizzo di un indirizzo che identifica univocamente la cella interessata alloperazione distruttiva Loperazione di scrittura è distruttiva, cioè cancella linformazione precedentemente contenuta nella cella Loperazione di lettura preserva il contenuto della cella indirizzata: allesterno della memoria centrale viene trasferita copia dellinformazione Operazioni sulla memoria principale

88 88 registro indirizzi Il registro indirizzi contiene lindirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzate Esempio Esempio: un registro a 16 bit indirizza posizioni di memoria decodificatore di indirizzi Il decodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizzi registro dati Il registro dati contiene linformazione scritta/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle Architettura della memoria principale BUS Registro dati Registro dati Memoria centrale Memoria centrale Registro indirizzi Registro indirizzi Decodificatore indirizzi Decodificatore indirizzi

89 89 Il linguaggio macchina Quando il programma è in esecuzione, è memorizzato nella memoria principale; esso è rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dallunità centrale Il programma non è quindi distinguibile dai dati osservando il contenuto della memoria; le istruzioni sono individuate dai valori assunti dal registro PC durante lesecuzione del programma Ogni codice binario codifica il tipo di istruzione (OPCODE) ed eventuali parametri (es. registri, indirizzi in memoria) I primi calcolatori si programmavano direttamente in linguaggio macchina! PC

90 90 Il set di istruzioni macchina Linsieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processore (es. Intel Pentium, Power PC, Alpha) Le istruzioni possono essere codificate con un numero variabile di bit (es. Pentium) o con un numero fisso (es. MIPS 32 bit) Le categorie di istruzioni normalmente disponibili sono: Trasferimento dati Trasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O) Aritmetico logiche Aritmetico logiche: eseguono i calcoli nellALU Salti (condizionati e incondizionati) Salti (condizionati e incondizionati): prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni

91 91 Assembler assembly Per facilitare la programmazione è stato definito il linguaggio assembly assembler Lassembly impiega una notazione simbolica che è in stretta relazione con i codici in linguaggio macchina; il programma scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo del programma traduttore assembler LOAD R1, MEM1 CMP R1, R2 BEQ RISZERO STORE R1, MEM1 RISZERO: LOAD R2, MEM2 Assembler OPCODE (LOAD) registro

92 92 Trasferimento dei dati Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoria assembly Si fa riferimento ad un assembly generico LOAD MEM, REG1 LOAD [REG2], REG1 STORE REG1, MEM STORE REG1, [REG2] MOVE REG1, REG2 REG1 MEM REG1 REG2 memoria registro registro memoria registro Indirizzamento diretto Indirizzamento indiretto

93 93 Operazioni aritmetico logiche Permettono di eseguire operazioni aritmetiche o logiche su due operandi ADD REG1, REG2 ALU ADD REG1 REG2 OR REG1, REG REG1 REG2 REG1

94 94 Istruzioni di salto condizionato Modificano il flusso di esecuzione del programma; il salto è condizionato se viene effettuato solo quando si verifica una certa condizione CMP Listruzione CMP confronta i due argomenti, assegnando valori particolari a bit di condizione che si trovano in un registro speciale della CPU (zero, segno) BRNE BRLE Listruzione di salto condizionato può essere basata su diverse condizioni: BRNE (branch not equal), BRLE (branch less equal), etc. BRANCH Listruzione di salto incondizionato, BRANCH, effettua sempre il salto CMP REG1, REG2 BREQ UGUALI LOAD REG1, MEM1 UGUALI: STORE REG2, MEM1 Confronta il contenuto dei registri REG1 e REG2 BRanch EQual

95 95 La memoria secondaria Il disco fisso è costituito da uno o più piatti ricoperti di materiale magnetico su entrambe le facce Ciascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere linformazione memorizzata su tracce concentriche Dischi magnetici Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk e floppy), dischi ottici (CD–R, CD–RW, DVD), nastri magnetici Memoria non volatile ad alta capacità

96 96 I dischi magnetici tracce Linformazione è disposta sul disco in tracce, ovvero in cerchi concentrici settori Le tracce sono divise in settori Il numero di bit contenuti in una traccia è dellordine delle centinaia di migliaia (512/4096 byte a settore) Per leggere o scrivere sul disco, la testina si deve posizionare sulla traccia che contiene il dato, ed attendere che il dato passi sotto di essa

97 97 Accesso al disco Il tempo medio di accesso allinformazione memorizzata su disco è dato da tempo di ricerca t seek è il tempo di ricerca, necessario per posizionare la testina sulla traccia che contiene linformazione; dipende dallampiezza dello spostamento tempo di latenza t lat è il tempo di latenza, necessario perché linformazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischi tempo di trasferimento t tr è il tempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire T = t seek + t lat + t tr

98 98 I dispositivi di Input Output Comportamento Comportamento: Input (read once), output (write only), memoria (rilettura/riscrittura) Partner Partner: uomo o macchina Velocità del flusso dei dati Velocità del flusso dei dati: quantità di dati nellunità di tempo trasferiti da o verso la CPU o la memoria centrale Tastiera Mouse Rete Hard Disk Tastiera input uomo 0.01 KB/s Mouse input uomo 0.02 KB/s Rete input/output macchina 1000 KB/s Hard Disk storage macchina 5000 KB/s I dispositivi di I/O sono molti vari Si possono considerare tre diverse caratteristiche:


Scaricare ppt "1 Fondamenti di Informatica Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical."

Presentazioni simili


Annunci Google