Informatica di Base Ancora su numeri. La struttura dei sistemi informatici. http://dcssi.istm.cnr.it/Lanzavecchia/do cumenti/biotecnologie.htm AA 2010/11 Biotecnologie 1 Informatica di Base I sistemi informatici Prossima esercitazione • Lunedì 8 novembre ore 14, aula 307 • Gruppo B ore 14 – 16 • Gruppo A ore 16 – 18 Gruppo A: studenti P – R + i primi tre della lista. Gruppo B: studenti S – Z AA 2010/11 Biotecnologie 2 Informatica di Base I sistemi informatici Esercizi di conversione fra basi: • 8810 = 10110002 • 9710 = 11000012 • 11210 = 11100002 • 1410 = 11102 • 10011002 = 7610 • 10100000102 = 64210 • 11001110112 = 82710 • 111110110102 = 201010 AA 2010/11 Biotecnologie 3 Informatica di Base I sistemi informatici Aritmetica binaria • Somma fra numeri binari • Esattamente come in base 10, visto che entrambi i sistemi sono posizionali. • In decimale 1+1=2 • In binario 1+1=10 AA 2010/11 Biotecnologie 4 Informatica di Base I sistemi informatici Somma tra numeri binari 1 Ricordatevi il riporto! AA 2010/11 Biotecnologie 1 + 1 = 0 0 + 1 = 1 1 0 1 1 1 1 0 1 1 1 0 1 5 1 1 0 1 0 1 1 + 1 = 0 Informatica di Base I sistemi informatici Codifica dei numeri interi negativi • Prima soluzione: usiamo un bit per il segno, gli altri per il valore assoluto del numero • se codifico con quattro bit: 0 000 +0 0 001 +1 0 010 +2 ... 0 111 +7 AA 2010/11 Biotecnologie 1 000 -0 1 001 -1 1 010 -2 ... 1 111 -7 6 Informatica di Base I sistemi informatici Codifica dei numeri interi negativi • due controindicazioni: • 2 rappresentazioni dello 0 • non si possono applicare le regole tradizionali per le operazioni aritmetiche: 0 1 1 AA 2010/11 Biotecnologie 0 0 1 1 1 0 0 + 1 = 1 7 +2 -3 -5 Informatica di Base I sistemi informatici Codifica dei numeri interi negativi • Rappresentazione in complemento a 2 • bit più a sinistra (più “significativo”) si usa per rappresentare il segno (0 per il +, 1 per il -) • comune rappresentazione binaria per i numeri positivi • inversione dei restanti bit per i numeri negativi (0Æ1 e 1Æ0) e poi si somma 1 AA 2010/11 Biotecnologie 8 Informatica di Base I sistemi informatici Es. rappresentazione in complemento a 2 • -5 (meno cinque) con quattro bit: • il bit di segno è 1 (più a sinistra), uso gli altri 3 per il numero • • • • Conversione numero senza segno: 510 = 1012 Inversione dei bit risultanti: 101 Æ 010 Somma di 1 al risultato: 010 + 1 = 011 Aggiungo bit di segno (perché negativo): 1011 • Verifica: + 5 Æ 0101 – 5 Æ 1011 = 0 = (1)0000 AA 2010/11 Biotecnologie 9 Informatica di Base I sistemi informatici Conversione da binario in decimale con segno • se prima cifra 0 Æ numero positivo Æ conversione solita (es. 0100 Æ +4) • se prima cifra 1 Æ numero negativo Æ • • • • tolgo il primo bit (a sinistra) inversione dei bit conversione da binario a decimale somma di 1 AA 2010/11 Biotecnologie 10 Informatica di Base I sistemi informatici Es. Conversione da binario in decimale con segno • 1011 • • • • • tolgo il bit di segno Æ 011 Inversione Æ 100 Conversione in decimale Æ 1002 = 410 Somma Æ4 + 1 = 5 Segno Æ -5 AA 2010/11 Biotecnologie 11 Informatica di Base I sistemi informatici ATTENZIONE!!! • La rappresentazione in complemento a 2 è diversa a seconda del numero di bit che utilizzate!! • Quindi, i conti “tornano” se scegliete per rappresentare sia positivi che negativi lo stesso numero di bit, anche se sono di più di quelli minimi che vi servirebbero per codificare il numero • I computer “definiscono” in anticipo quanti bit useranno per rappresentare gli interi AA 2010/11 Biotecnologie 12 Informatica di Base I sistemi informatici Esempio • -3 con tre bit (uno lo uso per il segno) • • 3 Æ 11 • Inversione: 00 • Sommo uno 01 • Bit di segno Æ 101 • -3 con quattro bit (uno lo uso per il segno) • 3 Æ 011 • Inversione: 100 • Sommo uno 101 • Bit segno 1101 Quindi “-3” lo posso scrivere in modi diversi! AA 2010/11 Biotecnologie Informatica di Base I sistemi informatici 13 Rappresentazione in complemento a 2 • Con quattro bit: 0000 0001 0010 0011 0100 0101 0110 0111 0 +1 +2 +3 +4 +5 +6 +7 1000 1001 1010 1011 1100 1101 1110 1111 -8 -7 -6 -5 -4 -3 -2 -1 • E quindi se faccio – 5 + 5 = 1011 + 0101 = 0000 = 0 ! • Con N bit posso rappresentare i numeri da –(2N-1) a 2N-1-1 AA 2010/11 Biotecnologie 14 Informatica di Base I sistemi informatici Che numero è? • A quale numero intero decimale corrisponde il numero in complemento a due 10001 (avendo scelto 5 bit) ? • Tolgo bit di segno Æ 1 0001 • Inverto 0001 Æ 1110 • Converto 1110 Æ 14 • Sommo 1 Æ 15 • Con il segno Æ -15 AA 2010/11 Biotecnologie 15 Informatica di Base I sistemi informatici Che numero è? • A quale numero in complemento a due corrisponde il decimale -7 ? • Dipende dal numero di bit che uso! • Se ne uso 5 (4 più il segno): • Tolgo il segno • Converto 7 con 4 bit Æ 0111 • Inverto 0111 Æ 1000 • Sommo 1 Æ 1001 • Con il segno Æ 11001 AA 2010/11 Biotecnologie 16 Informatica di Base I sistemi informatici Numeri interi in 1 Byte [-128,127] • • • • • • • • • • • • 01111111 ……. 00000011 00000010 00000001 00000000 11111111 11111110 11111101 11111100 ………. 10000000 = 127 = = = = = = = = 3 2 1 0 -1 -2 -3 -4 = -128 AA 2010/11 Biotecnologie 17 Informatica di Base I sistemi informatici Esercizi di conversione fra basi avendo assunto di stare in un Byte • • • • • AA 2010/11 Biotecnologie -1210 = 9610 = -9610 = 110011002 = 100000102 = 11101002 01000002 10100002 -5210 -12610 18 Informatica di Base I sistemi informatici -12 = 11110100 0 1 0 0 0 1 1 0 0 + 12 su 8 bit 1 1 1 0 0 1 1 7 bit negati 1 1 1 0 1 0 0 +1 1 1 1 0 1 0 0 metto il segno AA 2010/11 Biotecnologie Informatica di Base I sistemi informatici 19 -96 = 10100000 0 1 1 1 0 0 0 0 0 + 96 su 8 bit 0 0 1 1 1 1 1 7 bit negati 0 1 0 0 0 0 0 +1 0 1 0 0 0 0 0 metto il segno AA 2010/11 Biotecnologie 20 Informatica di Base I sistemi informatici 110011002 = -5210 binario 11001100 senza segno 1 0 0 1 1 0 0 Nego i bit 0 1 1 0 0 1 1 Sommo 1 0 1 1 0 1 0 0 32 16 0 4 0 0 Converto a decimale AA 2010/11 Biotecnologie Informatica di Base I sistemi informatici 21 100000102 = -12610 binario 10000010 senza segno 0 0 0 0 0 1 0 Nego i bit 1 1 1 1 1 0 1 Sommo 1 1 1 1 1 1 1 0 Converto a decimale 64 32 16 8 4 2 0 AA 2010/11 Biotecnologie 22 Informatica di Base I sistemi informatici Formato dei numeri • Interi • Positivi • Unsigned char • Short • Int 1 Byte 2 Byte 4 Byte 0-255 0-65536 0-(232-1) 1 Byte 2 Byte 4 Byte -128,127 -32768,32767 -231,(231-1) • Con segno • Char • Short • Int • razionali (floating point) AA 2010/11 Biotecnologie 23 Informatica di Base I sistemi informatici Formato dei numeri Razionali (floating point) • 3,14159… = 3,14159 x 100 • 1937,26 = 1,93726 x 103 • 0,0005162 = 5,162 x 10-4 • 6,022x1023 • Servono 2 numeri: uno per la mantissa ed uno per l’esponente. AA 2010/11 Biotecnologie 24 Informatica di Base I sistemi informatici Numeri floating point Data la mantissa m e l’esponente e n=mx2e avendo scelto la base=2 1 8 23 32 bit segno esponente mantissa 64 bit 1 AA 2010/11 Biotecnologie 11 52 25 Informatica di Base I sistemi informatici Esecutori di algoritmi • I computer sono progettati per eseguire algoritmi • Sequenze di passi che portano all’esecuzione di un compito • Tutti i programmi sono strutturati per eseguire operazioni predefinite o istruzioni • Ogni istruzione viene portata a termine in modo automatico e acritico AA 2010/11 Biotecnologie 26 Informatica di Base I sistemi informatici Ciò che i computer non fanno • Non hanno immaginazione né creatività • Interpretano tutto alla lettera, senza alcun senso dell’ironia, dei sottintesi o delle proporzioni • Non hanno volontà propria • Non hanno intuito AA 2010/11 Biotecnologie 27 Informatica di Base I sistemi informatici Computer VS cervello umano • Capacità di calcolo • Computer fa conti precisi in microsecondi • Cervello ha bisogno di carta e penna e sbaglia • Analisi dell’ambiente circostante • Cervello riconosce subito alberi, case, automobili • Computer no; deve essere addestrato e sbaglia AA 2010/11 Biotecnologie 28 Informatica di Base I sistemi informatici Sistemi Informatici • Hardware • Microprocessore • Memoria • Periferiche di input e output • Software • Sistema operativo • Programmi applicativi AA 2010/11 Biotecnologie 29 Informatica di Base I sistemi informatici Distinzione Hw/Sw HARDWARE equipaggiamento fisico del computer, costituito da componenti meccanici, elettrici, ed elettronici che fanno svolgere al calcolatore un insieme di funzioni generiche (si puo` prendere a calci!) SOFTWARE equipaggiamento logico del computer, costituito da programmi che utilizzano i componenti dell’hardware integrandoli al fine di svolgere compiti specifici (si puo` solo imprecargli contro!) AA 2010/11 Biotecnologie 30 Informatica di Base I sistemi informatici Elaboratori di informazione • L’informazione è memorizzata in formato binario • Ogni forma di elaborazione deve essere descritta come algoritmo • Es. somma di numeri • 1011001 (89) + • 0001101 (13) = • 1100110 (102) normale addizione col riporto • Dati e istruzioni sono entrambe memorizzati AA 2010/11 Biotecnologie 31 Informatica di Base I sistemi informatici Esecutori di algoritmi • I dati sono memorizzati in formato binario • Anche le regole dell’algoritmo devono essere memorizzate • Istruzioni codificate in binario • Devono essere lette, interpretate ed eseguite AA 2010/11 Biotecnologie 32 Informatica di Base I sistemi informatici Il ciclo macchina • Tutta l’elaborazione avviene per successione di cicli: • • • • • Fetch istruzione Decodifica istruzione Fetch dati Esecuzione istruzione Restituzione risultato AA 2010/11 Biotecnologie 33 Informatica di Base I sistemi informatici O più semplicemente • Fetch istruzione • Decodifica • Esecuzione AA 2010/11 Biotecnologie 34 Informatica di Base I sistemi informatici Il cuore del processore Unità Aritmetico logica Controllo bus Memoria AA 2010/11 Biotecnologie 35 Informatica di Base I sistemi informatici Memoria • Una serie di locazioni discrete • Solitamente da 1 Byte • In ogni locazione sono contenuti i dati • Ogni locazione ha un suo indirizzo • Anche gli indirizzi devono essere memorizzati • Con 4 Byte si ricordano fino a 4 miliardi di indirizzi (232) AA 2010/11 Biotecnologie 36 Informatica di Base I sistemi informatici Memoria • Sopra i Byte si usano le convenzionali sigle K (kilo) M (mega) G (giga) • Ma al posto del fattore 1000 si usa 1024=210 • KB (chilobyte) = 1024 • MB = 220 = 1024x1024 = 1.048.576 • GB = 230 = 1.073.741.824 • 232 B = 4 x 230 = 4GB AA 2010/11 Biotecnologie 37 Informatica di Base I sistemi informatici Unità di Controllo • Implementa il ciclo macchina • Recupera le istruzioni e le fa eseguire dall’unità aritmetico logica (ALU) • Le istruzioni sono molto semplici • ADD 4000, 2000, 2080 • Somma i contenuti delle locazioni 4000 e 2000 e copia il risultato in locazione 2080 AA 2010/11 Biotecnologie 38 Informatica di Base I sistemi informatici Unità aritmetico logica • Implementa le istruzioni del ciclo macchina mediante circuiti elettronici • Una volta che i dati sono nei registri del processore le operazioni possono essere eseguite • Poche istruzione semplici • ADD • Mult e Div • (queste sono più complesse e coinvolgono più cicli) • Operazioni logiche AND, OR, NOT • Operazioni bit a bit AA 2010/11 Biotecnologie 39 Informatica di Base I sistemi informatici istruzioni macchina • Nei circuiti del processore sono implementate poche istruzioni molto semplici • Serie di passi elementari • Istruzioni più complesse vengono eseguite mettendo insieme le istruzioni più semplici • Queste a loro volta faranno da base per comandi ancora più complessi • Alla fine qualunque compito del computer viene eseguito come successione di passi elementari AA 2010/11 Biotecnologie 40 Informatica di Base I sistemi informatici Astrazione • Distinzione tra le proprietà esterne di un entità e i dettagli della sua struttura • Ci permette di trattare una parte senza preoccuparci di come è fatta • Ignoriamo i dettagli interni • Qualunque costruzione informatica viene fatta con questo procedura • Una volta costruito uno strumento lo usiamo senza più preoccuparci di come è stato fatto AA 2010/11 Biotecnologie 41 Informatica di Base I sistemi informatici Hardware di un P.C. • Unità di elaborazione (microprocessore) • Memoria • Memoria del processore (registri e cache) • Memoria centrale (RAM) • Memoria secondaria • Dischi fissi • Dischi removibili • Bus di sistema • Collega tutti gli elementi funzionali • Periferiche • • • • • Tastiera e mouse Schermo Stampante Scanner Scheda audio AA 2010/11 Biotecnologie 42 Informatica di Base I sistemi informatici Componenti hw del computer Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input AA 2010/11 Biotecnologie Output Input/Output (I/O) 43 Informatica di Base I sistemi informatici Il processore AA 2010/11 Biotecnologie 44 Informatica di Base I sistemi informatici Il processore • Il processore, o CPU -Central Processing Unit- è l’unità di elaborazione centrale del computer • Controlla le funzioni del computer, esegue le operazioni aritmetico-logiche ed elabora i dati AA 2010/11 Biotecnologie 45 Informatica di Base I sistemi informatici Il processore • I circuiti logici che compongono una CPU sono costituiti da milioni di transistor (microscopici interruttori acceso/spento) collegati tra loro da sottilissimi fili • I circuiti vengono “stampati” su una sottile lamina di silicio • Il chip che corrisponde a una CPU ha una superficie dell’ordine di una decina di mm2 AA 2010/11 Biotecnologie 46 Informatica di Base I sistemi informatici Il processore • Pertanto oggi si parla di microprocessore costituito da circuiti integrati • VLSI, Very Large scale Integration • milioni di elementi tra loro collegati contenuti in una superficie quasi microscopica AA 2010/11 Biotecnologie 47 Informatica di Base I sistemi informatici Il processore • Ogni istruzione del linguaggio macchina viene eseguita dal microprocessore svolgendo una serie di operazioni elementari • Il numero di operazioni elementari necessario per completare l’esecuzione di un’istruzione in linguaggio macchina è dell’ordine di 7-10 AA 2010/11 Biotecnologie 48 Informatica di Base I sistemi informatici Il processore - Clock • Il tempo richiesto dal microprocessore per svolgere un’operazione elementare e` detto ciclo di clock • la durata tipica oggi giorno e` inferiore al nanos • Il numero di cicli di clock nell’unita` di tempo, o frequenza di clock, si misura in GHz • (1 MHz; periodo=10-6 s ; 1 GHz: periodo = 10-9 s) • • • • Xeon 3 GHz Pentium 4 2.2 GHz Athlon 1.6 GHz PowerPC G5 2 GHz • E` uno dei parametri caratteristici di un processore AA 2010/11 Biotecnologie 49 Informatica di Base I sistemi informatici Il processore - Clock • Dati due processori con lo stesso linguaggio macchina, risulterà più veloce quello con frequenza di clock maggiore • Non è possibile dire nulla su processori con linguaggi macchina diversi • Es. Pentium vs PowerPC • Altri fattori contribuiscono alle prestazioni di un processore • memoria, bus, cache, natura dei programmi eseguiti AA 2010/11 Biotecnologie 50 Informatica di Base I sistemi informatici Il processore - Clock (esempio) Computer A • 2 GHz • 10 operazioni elementari per istruzione Computer B • 1,5 GHz • 6 operazioni elementari per istruzione devono eseguire un programma di 1G istruzioni macchina A impiegherà 5s B impiegherà 4s AA 2010/11 Biotecnologie Informatica di Base I sistemi informatici 51 Componenti hw del computer Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input AA 2010/11 Biotecnologie Output 52 Input/Output (I/O) Informatica di Base I sistemi informatici La memoria centrale AA 2010/11 Biotecnologie 53 Informatica di Base I sistemi informatici La memoria - Le celle • Ogni cella di memoria contiene un byte ed e` contraddistinta da un indirizzo • l’unita` minima indirizzabile puo` anche essere la word (2 Byte) • Volendo scrivere o leggere un dato nella/dalla memoria il processore deve sempre specificare l’indirizzo della cella alla quale vuole accedere AA 2010/11 Biotecnologie 54 Informatica di Base I sistemi informatici La memoria - Le celle AA 2010/11 Biotecnologie 55 Informatica di Base I sistemi informatici La memoria • Svolge la funzione di magazzino per i programmi e i dati su cui deve operare il microprocessore • Esistono due grosse categorie di dispositivi di memoria: • le memorie volatili • le memorie non volatili • Le memorie volatili sono tutti quei dispositivi di memoria che perdono il loro contenuto quando viene loro a mancare l'alimentazione elettrica • Le memorie non volatili invece sono in grado di mantenere l'informazione registrata anche in assenza di alimentazione elettrica AA 2010/11 Biotecnologie 56 Informatica di Base I sistemi informatici La memoria • Volatile • sono genericamente indicati con il termine RAM (Random Access Memory) • I registri di CPU, le cache e la memoria centrale • sono realizzati rifacendosi alla tecnologia dei circuiti integrati • Non Volatile • • • • Dischi fissi Floppy – CD – DVD Pen drive Nastri magnetici AA 2010/11 Biotecnologie Informatica di Base I sistemi informatici 57 Componenti hw del computer Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input AA 2010/11 Biotecnologie Output 58 Input/Output (I/O) Informatica di Base I sistemi informatici Il bus AA 2010/11 Biotecnologie 59 Informatica di Base I sistemi informatici Il bus • E` il canale fisico che mette in comunicazione le varie componenti del calcolatore • E` composto da un insieme di fili • In ogni istante, su ogni filo, passa un bit • Se il bus è formato da n fili, può trasferire n bit contemporaneamente • l’ampiezza del bus influenza la velocità del computer AA 2010/11 Biotecnologie 60 Informatica di Base I sistemi informatici Il bus • Periferiche diverse possono usare tipi di bus diversi, a seconda della velocità di trasmissione dati richiesta • La memoria centrale ha bisogno di un canale molto più veloce rispetto alle periferiche • Oltre al bus di sistema, i PC di oggi sono forniti anche di un insieme di bus locali che collegano le periferiche alla CPU AA 2010/11 Biotecnologie 61 Informatica di Base I sistemi informatici Il bus • In un dato istante, sul bus puo` passare • un dato in trasferimento tra CPU e memoria o tra CPU e una periferica • un indirizzo che identifica una posizione nella memoria alla quale la CPU deve leggere o scrivere • un segnale di controllo, come la selezione dell’unità coinvolta nel trasferimento dati (sorgente e destinatario) o la definizione della direzione dello scambio (lettura o scrittura) AA 2010/11 Biotecnologie 62 Informatica di Base I sistemi informatici Componenti hw del computer Periferiche Monitor Tastiera Mouse Memorie di massa Memoria CPU centrale BUS Input Output AA 2010/11 Biotecnologie Input/Output (I/O) 63 Informatica di Base I sistemi informatici Periferiche • Ogni periferica e` costituita da 3 componenti • device • dispositivo fisico • controller • componente elettronica di controllo • device driver • componente software che deve essere installata in memoria per il corretto funzionamento del dispositivo AA 2010/11 Biotecnologie 64 Informatica di Base I sistemi informatici Periferiche - Il controller • Il controller è realizzato su un circuito stampato • puo` essere piu` o meno intelligente a seconda della periferica che controlla • Riceve gli ordini dal processore e li impartisce al dispositivo fisico • cosa fare (leggere/scrivere), dove, quanto AA 2010/11 Biotecnologie 65 Informatica di Base I sistemi informatici Periferiche - Il driver • Il driver è il programma che gestisce la periferica • Viene consegnato insieme alla periferica (di solito memorizzato su un CD-ROM) e deve essere installato in memoria • e` parte del software di sistema AA 2010/11 Biotecnologie 66 Informatica di Base I sistemi informatici