note - Dipartimento di Matematica e Informatica
Transcript
note - Dipartimento di Matematica e Informatica
Modello “esterno” di un computer Ambiente Dispositivo di Input 1 Dispositivo di Input M Computer elettronico Dispositivo di Output 1 Dispositivo di Output M Ambiente Da un punto di vista esterno/astratto, il computer si può considerare un sistema che: • riceve informazione da dispositivi o periferiche di input (tastiere, mouse, scanner, webcam, microfono, dischi, linee telefoniche, rete, lettore di barre, …) • elabora l’informazione per mezzo di dispositivi elettronici • invia i risultati a dispositivi o periferiche di output (display, amplificatori audio, nastri, dischi ottici/magnetici, stampanti, linee telefoniche, rete, attuatori...) NB: tipicamente rete e unità disco sono dispositivi di Input/Output (I/O) al tempo stesso. Architettura di un elaboratore: introduzione − 20/04/2006 1/29 Organizzazione interna di un computer Tipica organizzazione interna o architettura del computer: 1. CPU (Central Processing Unit = Unità Centrale di Elaborazione); è l’organo “intelligente” 2. Interfacce o controller verso le periferiche di I/O (Input/Output) 3. Memoria, contenente informazioni (I componenti (1,2) rispecchiano le funzionalità descritte a pag. 1; per la necessità della memoria, vedi sotto) Periferiche Computer (Tra CPU e alcune periferiche può esserci un bus dedicato) La memoria ha 3 funzioni principali: 1. buffer attraverso cui comunicano CPU e periferiche (serve perché la CPU è molto più veloce). 2. salvare i risultati intermedi (dati) di un’elaborazione; 3. contenere i programmi. (3) supporta la caratteristica fondamentale del computer: la programmabilità. Architettura di un elaboratore: introduzione − 20/04/2006 2/29 Programmi Programmabilità: il funzionamento del computer è • non fissato alla costruzione, ma • determinato dal programma (= sequenza di istruzioni), caricato in memoria dall’utente, secondo le sue esigenze. CPU Memoria Interfaccia Periferica 1 Interfaccia Periferica 2 Programma Dati Poter cambiare programma fa del computer uno strumento flessibile. Per questo: • ai programmi si dà il nome collettivo di software, al contrario, • i componenti fisici del computer sono detti hardware. Architettura di un elaboratore: introduzione − 20/04/2006 3/29 IT e ICT Information (and Communication) Technology: • complesso di tecnologie hardware e software per l’elaborazione (=trattamento) e la trasmissione dell’informazione L’ICT ha determinato, sul piano economico-sociale: • una radicale innovazione dei modi di produzione di beni e servizi, e quindi: • una nuova fase nello sviluppo dell’umanità: la più recente delle rivoluzioni industriali Architettura di un elaboratore: introduzione − 20/04/2006 4/29 Rappresentazione dell’informazione in un computer Aspetti e caratteristiche dello scambio di informazione: 1. mezzo fisico (elettrico...) i cui fenomeni realizzano lo scambio; 2. simboli: fenomeni fisici scelti per scambiare informazione; alfabeto: insieme dei simboli (non tutti i fenomeni sono simboli); 3. convenzioni secondo cui i simboli rappresentano informazione; tali convenzioni vengono applicate nei procedimenti di: • codifica: Informazione→Sequenza di simboli , e l’inverso: • decodifica: Sequenza di simboli→Informazione Esempi: • alfabeto Morse; p.es. “S” → … • notazione musicale • le parole italiane sono codificate con 26 simboli • numeri interi, codificati con cifre arabiche, romane, maya … I dispositivi elettronici/magnetici dei computer possono prendere 1 di 2 stati (di tensione/magnetizzazione) convenzionalmente detti 0 e 1 Quindi l’informazione all’interno del computer si rappresenta con l’alfabeto binario (da bis) di simboli 0 e 1, detti bit (binary digit). Dal termine digit (cifra), il computer si dice anche digitale. Architettura di un elaboratore: introduzione − 20/04/2006 5/29 Grandezze digitali e analogiche • una grandezza (p.es. fisica) si dice (rappresentabile in modo) digitale se varia “a scatti” (in particolare binari) quest’esempio riguarda una grandezza digitale binaria • una grandezza X si dice “analogica” se varia con continuità (come i numeri reali) Intervallo di campionamento tempo Livelli di quantizzazione della grandezza X • una grandezza analogica si può “digitalizzare”, come in figura o “quantizzando”: un livello analogico arbitrario, p.es. -.9 viene mappata sul livello quantizzato più vicino (-) in fig.: quantizzazione con 9 livelli e passo 0.25 o “campionando”, cioè valutando con un certo periodo o intervallo di campionamento, p.es. ogni sec o la perdita di informazione dovuta alla digitalizzazione si riduce con il passo di quantizzazione (es. da 0.25 a 0.125) e di campionamento (es. da 1 a 0.5 secondi) • la trasmissione analogica è più esposta al rumore • trasmissione/dispositivi digitali sono più immuni a rumore/guasti Architettura di un elaboratore: introduzione − 20/04/2006 6/29 Tipi di informazione in un computer I bit sono in genere elaborati o memorizzati a gruppi di N: • byte: sequenza di N=8 bit; • word: operando “standard” delle istruzioni (16 bit per un PC). I gruppi di bit si usano per codificare diversi tipi di informazione: • numerica: interi, relativi (interi con segno), con virgola • insiemi finiti • alfabetica/caratteri (ASCII) • istruzioni della CPU • altro Architettura di un elaboratore: introduzione − 20/04/2006 7/29 Informazione numerica: codifica degli interi Cosa si intende scrivendo 123 o 690? • 123 = 1*102+2*101+3*100 , 609 = 6*102+0*101+9*100 • con i 10 simboli 0,1,2,3,4,5,6,7,8,9 si rappresentano gli interi come somme di potenze di 10 (1=100, 10=101, 100=102 …) In generale, sia A un alfabeto di B simboli detti cifre • numerate le cifre, cioè posto A=a0, a1, … aB • si conviene che la kesima (0≤k<B) ak rappresenta l’ intero k e: • la sequenza di cifre [sn-1 ... s0]B (n>0, si∈A) rappresenta o codifica, in base B, il numero intero sn-1Bn-1 + ... + s0B0 Normalmente A={0,1,2,3,4,5,6,7,8,9}, B=10 e [...]10 si omette. Es.: • [123]10 o, semplicemente, 123 codifica 1*102+2*101+3*100 • [1111011]2 codifica 1*26+1*25+1*24+1*23+0*22+1*21+1*20 = 64+32+16+8+2+1 = 123 Architettura di un elaboratore: introduzione − 20/04/2006 8/29 Codifica binaria degli interi Per A={0,1} e B=2 (alfabeto binario) • la codifica si dice binaria e le cifre, come detto, bit • per codificare gli interi in binario, si può usare il procedimento generale (pag. 8) o, più semplicemente, contare in binario: • quindi con 2 bit si conta da 0 fino a 3 = 4-1= 22-1 con 3 bit si conta da 0 fino a 7 = 8-1= 23-1 con 4 bit si conta da 0 fino a 15 =16-1= 24-1 con n bit si conta da 0 fino a 2n-1 • in generale n bit (usati o no per codifica numerica) assumono 2n valori distinti Architettura di un elaboratore: introduzione − 20/04/2006 9/29 Notazione ottale ed esadecimale Oltre che in base 10 o 2, gli interi si rappresentano nelle basi: • 8, con le cifre: 0 1 2 3 4 5 6 7 • 16, con le cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F. Per semplicità, anziché [x...y]B si scriverà x...yR con R pari a: D se B=10, O se B=8, H (Hexadecimal) se B=16, B (binary) se B=2. Esempi: 123O=83D 123H=291D FFFH=4095D A6B4H=42676D Trascrivere una sequenza di bit non è conveniente. Alternative: 1. convertire ogni 3 bit (da destra verso sinistra) in ottale: 01 001 010 010 110 101 101 001 110 111B → 1 1 2 2 6 5 5 1 6 7 O 2. convertire ogni 4 bit (da destra verso sinistra) in hex: 10 0001 0100 1011 0101 1010 0111 0111B → 2 1 4 B 5 A 7 7 H (2) preferibile perché evidenzia le frontiere tra i byte: 21 4B 5A 77 (in genere il byte è il gruppo minimo in cui i bit sono considerati). Conversioni di base Per passare dalla base R1 alla base R2 , si divide x...yR1 per R2: • il resto (<R2) è l’ultima cifra nella base R2 • al quoziente, se non nullo, si applica lo stesso procedimento. Esempio. Portare 42676D in base 16 con divisione ripetuta per 16: Quoziente 2667D 166D 10D 0D Resto D 4D 11D 6D 10D Resto H 4H BH 6H AH Risultato (ultima colonna dal basso in alto): A6B4H Architettura di un elaboratore: introduzione − 20/04/2006 10/29 Tipi di informazione: insiemi finiti Insiemi finiti: gli elementi di un insieme I di 2N elementi si possono rappresentare con N bit, usando una codifica arbitraria. P. es.: Elementi di I cuori Quadri Fiori Picche Codifica (2 bit) 00 01 10 11 Informazione alfanumerica: I è un insieme di 256=28 caratteri (tra cui quelli sulla tastiera di un PC: lettere, cifre, simboli vari). Quindi la codifica binaria di questo insieme deve usare 1 byte. La codifica alfanumerica più usata è l’ASCII; p. es.: Carattere 0 A X Codifica (binaria) ASCII 0011 0000 0100 0001 0101 1000 Intero rappresentato dalla codifica ASCII 48D = 30H 65D = 41H 88D = 58H NB: il termine “codice” è usato in un duplice senso • legge di codifica (descritta p.es. con una tabella) • codifica di un particolare dato; p.es. il codice ASCII di X è 01011000 o 58H o 88D. Architettura di un elaboratore: introduzione − 20/04/2006 11/29 Codice ASCII: alcune varietà I programmi che interpretano i byte come testo possono differire nell’interpretazione di: 00H-1FH (0-31) e 80H-FFH (128-255). Ogni interpretazione dà luogo ad una varietà di codice ASCII. Nel codice PC-8 i caratteri detti si interpretano come simboli grafici: Nell’ANSI (Windows) i simboli sono diversi (più vocali accentate). E’ di uso sempre più frequente Unicode, codice a 16 bit in grado di rappresentare ogni simbolo (alfabetico, tecnico etc.) di uso corrente Architettura di un elaboratore: introduzione − 20/04/2006 12/29 Altri tipi di informazione Istruzioni (in memoria): sono codificate con opportuni gruppi di bit. Non esiste una codifica standard, né un set di istruzioni standard; p. es. 00100001 è un’istruzione diversa per CPU diverse; p.es. per la CPU Intel Pentium incrementa un dato noto come cx. In generale, l’interpretazione di una sequenza di bit dipende dal contesto (convenzioni adottate). Esempi • in un programma, secondo il contesto, 00100001 può rappresentare la lettera ‘A’, il numero 65D o un’istruzione • in un testo latino, il simbolo C si interpreta, secondo il contesto, come lettera o come numero 100. Architettura di un elaboratore: introduzione − 20/04/2006 13/29 Componenti base di un computer Periferiche Computer Configurazione di un PC di medio livello (febbraio 2005), vedi http://hwupgrade.it/ Modello Costo IVA inclusa Processore Intel Pentium 4 540 J 248 Scheda madre DFI Lan Party UT915P-T12 199 Scheda video Leadtek PX6600GT-TDH 128Mb Gddr3 218 Memoria 2 x 512Mb PC3200 Kingmax Color TinyBGA 171 Lettore ottico LG GOLDSTAR 8163 DVD-ROM 16X 52X EIDE 28 Hard disk Western Digtial Caviar 200GB SATA 8MB 156 Masterizzatore NEC ND-3500 93 Scheda audio integrata nella sk madre - Altoparlanti Creative Inspire T7900 7.1 113 Monitor Philips 109B60 19'' CRT 223 Case - Alimentatore Emermax CS-5168TABFS + Alimentatore 400w Mouse - Tastiera Logitech Cordless Desktop Optical Totale Architettura di un elaboratore: introduzione − 20/04/2006 85 + 40 50 circa €1630 14/29 Scheda madre, CPU, bus Zoccoli per controller = schede di interfaccia (verso periferiche) Zoccoli per i connettori terminali della piattina (cavi) verso unità dischi Zoccoli per schede di memoria CPU Pentium montate su zoccolo a leva (2 in questo sistema biprocessore, per lo più una sola) Porte o connettori verso dispositivi esterni (stampanti, modem, USB …) • alcuni controller (per dischi, stampante, USB …) sono integrati sulla scheda madre (sono alcuni dei vari chip più piccoli) • il Bus (chip + piste di rame sulla faccia inferiore della scheda), collega CPU a: o controller integrati o zoccoli di memorie e schede… Architettura di un elaboratore: introduzione − 20/04/2006 15/29 Memoria: schede • realizzata su schede DIMM (Dual In-line Memory Module) • cioè, entrambe le facce della scheda ospitano i piedini (dorati) di collegamento con i connettori della scheda madre • schede da 128MB, 256MB, 512MB (ciascuna) Unità di misura per le memorie: • bit (0 o 1) • Byte = 8 bit (simbolo B) • KB=210=1024B, cioè poco più di 1000B • MB=220=210x210=1024KB, cioè poco più di 1 milione di B • GB=230=210x220=1024MB, cioè poco più di 1 miliardo di B Architettura di un elaboratore: introduzione − 20/04/2006 16/29 Modello concettuale della memoria La memoria (detta anche centrale) contiene, in forma binaria: • istruzioni che compongono i programmi; • dati: rappresentazione dell’informazione elaborata dai programmi Astrattamente, una memoria va pensata come: • una sequenza finita (ma grande, p.es. 220) di celle o locazioni • ogni cella contiene un byte (su certi computer una word) • si dice indirizzo di una cella la sua posizione nella sequenza; p.es.: la cella di indirizzo 0, 1, 1024, 220-1 etc. Anche gli indirizzi sono rappresentati nel computer in binario; quindi servono n bit per indirizzare una memoria di 2n celle. Esempio: (PC con CPU 8086): indirizzi a 20 bit, quindi celle≤220: Indirizzi Celle (caso max) 0 1 . . . . 220-1 Le operazioni fondamentali su una memoria sono: • lettura (non distruttiva) del byte contenuto in una cella; • scrittura di un byte dentro una cella Architettura di un elaboratore: introduzione − 20/04/2006 17/29 Tecnologie e proprietà delle memorie Comunemente la memoria è fatta con tecnologia a semiconduttori. I bit di informazione sono livelli di grandezze elettriche. Tipi di memoria • RAM (Random Access M.): il tempo di accesso a una cella è random (casuale), cioè indipendente dal suo indirizzo. Al contrario, p.es. in un nastro magnetico completamente riavvolto, si ha un tempo di accesso proporzionale all’indirizzo della cella (=distanza dalla testina). • ROM (Read Only M.): non può scriversi da programmi comuni, ma solo, occasionalmente, con appositi dispositivi o programmi La RAM può essere: • volatile (si cancella se non alimentata): scrivibile ma più lenta; • non volatile: più veloce ma ROM. In un PC la memoria centrale è RAM, di cui: • la maggior parte è scrivibile, con dati e programmi d’utente, • il resto è ROM contenente programmi (BIOS) “incorporati” (dal costruttore) per la gestione dell’hardware. Valori tipici per le RAM a semiconduttori impiegati nei PC: dimensione: 128-1024MB (=1GB) tempo di accesso (a una cella): 6-8ns tempo di ciclo (tra due accessi): 1-3 volte il tempo di accesso Throughput memoria (velocità di 400MB/s trasferimento dati in MB/s) Throughput bus (se < memoria, come 333MB/s nell’esempio, ne limita le prestazioni) Architettura di un elaboratore: introduzione − 20/04/2006 18/29 Memoria secondaria magnetica Alla memoria centrale se ne affianca, in genere, una secondaria (<costo e >dimensione) ospitata da una periferica di I/O. Modello: anche la memoria secondaria va pensata come una sequenza di byte indirizzabili singolarmente. Tecnologia: la più comune usa dischi magnetici rotanti • disco rigido (Hard Disk=HD) a velocità 7200-10000rpm (giri/min) • floppy disk (FD), rimuovibile, ma lento e poco capace • drive = alloggiamento/dispositivo che ospita i dischi: (HDD, FDD) • letto/scritto da una testina su braccio mobile radialmente • un bit è rappresentato da un’area magnetizzata (es. 1) o no (0) Prestazioni: molto diverse rispetto alla RAM a semiconduttori: - accesso non casuale: richiede più tempo per i blocchi (di byte) più lontani dalle testine (cioè dall’ultimo blocco letto/scritto); + non volatile; - tempo di accesso: tipicamente 8-15 ms (HD) contro 8ns (RAM), cioè 1.000.000 di volte più lento; + dimensioni tipiche: da 40G a 200G; + costo/GB, p, es.: 512MB RAM 120G HD @ 70$ = 140$/GB @ 120$ = 10$/GB - throughput, p.es.: 10-40MB/s (HD) contro 100-500 MB/s (RAM) Architettura di un elaboratore: introduzione − 20/04/2006 19/29 Drive di disco rigido Piattina verso la scheda madre Cilindro: insieme di tracce di posizione corrispondente sulle varie superfici (in grigio) Architettura di un elaboratore: introduzione − 20/04/2006 20/29 Dischi ottici Tecnologia: • • dischi di un supporto ricoperto di oro/argento/alluminio riflettente pit (depressioni) e land nel supporto • laser riflesso diversamente da Au/Ag/Al se passa da pit o land • bit 1= transizione pit /land o land/pit • disco ruota, laser+fotorivelatore traslano radialmente • letto da laser • testina su braccio mobile radialmente • l’informazione (0 o 1) in un’area se essa riflette o no il laser Prestazioni: - accesso non casuale (vedi organizzazione) + non volatile; - tempo di accesso: tipicamente 8-15 ms (HD) contro 8ns (RAM), cioè 1.000.000 di volte più lento; • + dimensioni compact disk (CD, CD Drive=CDD), 700MB DVD (laser a >frequenza), 4,7-20GB (doppia faccia, doppio strato) + costo/GB, p, es.: 512MB RAM 120G HD Architettura di un elaboratore: introduzione − 20/04/2006 @ 70$ = 140$/GB @ 120$ = 10$/GB 21/29 La CPU La CPU ha lo scopo di eseguire i programmi: • prelevandone le istruzioni dalla memoria centrale; • esaminandole per riconoscerle, attraverso la Control Unit; • eseguendole, se serve usando la ALU (Arithmetic Logical Unit). CPU Unità di controllo ALU (Unità Aritmetica Logica) Registri Program Counter (PC) (P_CV) Instruction Register (IR) La CPU dispone di alcune (tip. 8-32) celle dette registri, distinti dalle celle di memoria centrale e di accesso più veloce. Si hanno: • registri accessibili da istruzioni; • registri non accessibili da istruzioni, tra cui: - registri di stato (p.es. PC, Program Counter, e i Flags), il cui valore può influenzare le istruzioni; - registri interni, necessari al funzionamento della CPU, ma “trasparenti” per le istruzioni (p.es. IR, Instruction Reg.). Architettura di un elaboratore: introduzione − 20/04/2006 22/29 Funzionamento della CPU Ogni CPU funziona secondo un ciclo prelievo-esecuzione: 1. si preleva il contenuto della cella il cui indirizzo è in PC; si tratta di un’istruzione, che viene posta in IR; 2. la Control Unit esamina IR e determina il tipo di istruzione; 3. si incrementa PC di 1+ (n.byte occupati dall’istruzione); 4. si esegue l’istruzione; 5. si torna al punto 1 (o ci si ferma se l’istruzione eseguita era halt). NB: • (3) mette in PC l’indirizzo dell’istruzione successiva • questa sarà eseguita al prossimo ciclo, se (4) non cambia PC • se no si ha un salto: la prossima istruzione non sarà la seguente Memoria CPU Unità di controllo ALU (Unità Aritmetica Logica) Istruzione corrente Registri Program Counter (PC) (P_CV) Architettura di un elaboratore: introduzione − 20/04/2006 Instruction Register (IR) 23/29 Istruzioni Lo scopo delle istruzioni è di cambiare lo stato del computer, cioé 1. contenuto del PC e dei Flag di stato 2. contenuti di memoria e registri (della CPU o delle periferiche). L’effetto di un’istruzione viene definito da: • un codice operativo (opcode) • k operandi (k varia secondo opcode e va tipicamente da 0 a 2), tipicamente registri, locazioni di memoria, dati numerici. P. es., mov ax,037fh, copia il dato 037fh nel registro ax Ogni CPU ha un suo set (insieme) di istruzioni (opcodes): da circa 20 (RISC - Reduced Instruction Set Computer) a circa 300 (CISC - Complex Instruction Set Computer). Velocità tipiche delle CPU in MIPs (Mega Instructions Per second): 1 (Vax), 5 (Intel 386), 5000 (Pentium 4 a 2.5GHz). Architettura di un elaboratore: introduzione − 20/04/2006 24/29 Principali classi di istruzioni Trasferimento (più precisamente, copia) di dati. P.es.: mov bl,0Ch sposta il byte 0Ch nel registro bl Aritmetico-logiche. P. es.: add ax,bx somma i contenuti dei registri bx e ax (sorgenti) e pone il risultato in ax (destinazione) and al,bl esegue l'AND dei contenuti dei registri al e bl e pone il risultato in al Test: modificano opportuni bit (o flag) di un registro di stato. tst d0 (CPU 68000) se il registro d0 è 0, pone a 1 il flag Z; cmp ax,3 se ax≠3, pone a 0 il flag Z altrimenti a 1 Architettura di un elaboratore: introduzione − 20/04/2006 25/29 Principali classi di istruzioni: salti Salti. P. es. (CPU 68000): jmp 34C2H salta a eseguire l’istruzione all’indirizzo 34C2 bz 7F23H salta a eseguire l’istruzione all’indirizzo 7F23, se vale 1 il flag Z Se la memoria contiene dei programmi A e B, le istruzioni di salto consentono di trasferire l’esecuzione da A a B e ritorno. P.es. (si immagini che B compia dei calcoli per conto di A): Programma A Programma B 0 78 79 304 chiamata salta a 304 ritorno Architettura di un elaboratore: introduzione − 20/04/2006 salta a 79 26/29 Classi di computer • Mainframe: alta potenza e costo, grandi organizzazioni servono numerosi terminali attraverso linee • sistemi HPC (supercalcolo, simulazione) • Server (Web, Database, File, Print, …): accessibili da clienti via rete; costo medio e ottime prestazioni in termini di servizi forniti nell’unità di tempo • Minicomputer o per esigenze di calcolo di un’organizzazione (PMI, Dipartimento), superiori a quelli di un utente personale o costo e potenza superiori ai PC entry-level o di fascia media o tende a sovrapporsi a PC di fascia alta • PC (Personal Computer): o mirati alle esigenze di calcolo del singolo o utilizzabili come clienti o alto rapporto prestazioni/prezzo Architettura di un elaboratore: introduzione − 20/04/2006 27/29 Classi di computer / 2 • sistemi embedded, ormai pressoché tutti I dispositivi elettronici • PDA (es. con PalmOS, Windows PocketPC) e smartphone • smart card = CPU + memoria o SIM del telefonino (rubrica, PIN, suonerie, SMS) o Scheda del decoder satellitare o Carta d’identità elettronica Architettura di un elaboratore: introduzione − 20/04/2006 28/29 Notebook o no? - costo superiore 20-30% - robustezza inferiore (miniaturizzazione) - riparazione difficile e costosa - robustezza? Centrino è meno sollecitato termicamente Architettura di un elaboratore: introduzione − 20/04/2006 29/29