Classificazione dei calcolatori (oramai superata ...) Personal computer Utilizzo personale (ma non solo...) Architettura del calcolatore e delle sue periferiche Workstation Utilizzo professionale, CAD, pochi utenti (<5) Minicalcolatore Maggior numero di utenti, condivisione risorse Mainframe Numero elevato di periferiche, archivi di grandi dimensioni Supercomputer → Ultracomputer Applicazioni tecniche e scientifiche che richiedono la massima potenza di calcolo Architettura del calcolatore 1 Architettura del calcolatore 2 (Ri)classificazione dei calcolatori Organizzazione di un calcolatore Un calcolatore digitale è un sistema composto da processori, memorie e dispositivi di input/output (I/O) collegati tra loro. Computer usa e getta Cartoline d’auguri musicali, RFID Microcontrollore Orologi, Automobili, Elettrodomestici, Hi-Fi, Telefoni, Lettori audio/video, giocattoli, apparati medicali, ... Consolle da gioco Videogiochi Personal Computer Desktop o Portatili Server Server di rete • Questa organizzazione (con l’unica differenza del bus) è uguale a quella della macchina di Von Neumann Raggruppamento (Cluster) Computer di dipartimento • Questa organizzazione è detta “bus oriented”. Un bus è un insieme di connessioni elettriche (fili) parallele utilizzati per trasportare tutte le informazioni da un componente all’altro. Mainframe Elaborazione batch dei dati di un grosso istituto bancario • Il numero di bus, di processori e di memorie può variare. ATTENZIONE: questa organizzazione è la più utilizzata ma non l’unica Architettura del calcolatore 3 Architettura del calcolatore 4 Struttura generale di un calcolatore (1) Struttura generale di un calcolatore (2) In figura è rappresentata la scheda madre di un PC di classe Pentium Connettori I/O periferiche esterne Oltre al processore e alla memoria, un calcolatore “semplice” è formato da un insieme di chip di controllo e di connessioni che permettono la comunicazione tra le varie componenti e con l’esterno. La maggior parte di questo hardware risiede sulla scheda madre che contiene: • L’alloggiamento per la CPU • Il bus: è la via principale per lo scambio di informazioni tra i vari dispositivi. Vi possono essere più bus differenziati in base alla velocità di comunicazione (PCI, ISA, EISA, SCSI). • I connettori per l’inserimento dei moduli di memoria: normalmente la memoria comunica con i dispositivi di I/O tramite il bus controllato dalla CPU; in alternativa, per non rallentare i calcoli può comunicare con determinati controllori anche tramite un collegamento diretto (Direct Memory Access) • I controllori dei dispositivi di I/O fondamentali: hard disk, CD e DVD • I connettori per ulteriori dispositivi di I/O: al fine di semplificare la comunicazione tra calcolatori e dispositivi di I/O sono stati definiti alcuni protocolli standard per la loro connessione (interfacce): RS232, USB, FireWire, ecc. • Il chipset: è l’insieme di chip che controlla la scheda madre. Alcune delle sue funzioni sono: o Gestione della memoria cache o Esecuzione degli accessi DMA o Gestione degli interrupt o Interfacciamento tra i diversi bus Architettura del calcolatore 5 BIOS Batteria tampone Connettori ATA per Hard Disk e CD-ROM Connettore AGP Socket per la CPU Pentium 4 Slot PCI ChipSet: NorthBridge e SouthBridge Architettura del calcolatore Socket per la memoria RAM 6 L’architettura di Von Neumann La CPU Il compito della CPU è quello di eseguire i programmi immagazzinati nella memoria centrale leggendo le loro istruzioni ed eseguendole in sequenza. Memoria (RAM) Programma Una CPU è composta da: Bus Indirizzi Unità di controllo: legge le istruzioni dalla memoria centrale e ne determina il tipo. codice in formato binario ALU: esegue le operazioni necessarie all’esecuzione delle istruzioni (AND,OR, addizione binaria). CPU Dati Bus Dati Registri: sono una piccola memoria ad alta velocità utilizzata per memorizzare i risultati temporanei e le informazioni di controllo necessarie al funzionamento dell’ALU. I registri risiedono all’interno della CPU. variabili, array, ecc... in forma binaria La grande intuizione di Von Neumann, che oggi appare una cosa ovvia, fu quella di utilizzare la memoria non solo per i dati ma anche per i programmi. Programmi e Dati al tempo di esecuzione sono caricati in memoria (codificati in forma binaria). La CPU esegue il programma leggendo attraverso il bus indirizzi una istruzione per volta dalla memoria; durante l’esecuzione dell’istruzione la CPU può accedere nuovamente alla memoria per leggere o scrivere dati. Architettura del calcolatore 7 • Normalmente i registri hanno tutti le stesse dimensioni, alcuni vengono utilizzati per compiti specifici altri sono general purpose. • Il registro più importante è il Program Counter (PC) che indica la prossima istruzione da eseguire. • L’Instruction Register (IR) è il registro che memorizza l’istruzione che si sta per eseguire. All’interno della CPU i vari componenti sono a loro volta collegati tramite diversi bus. Architettura del calcolatore 8 Esempio: esecuzione di una istruzione 1) la CPU mette il valore di PC (indirizzo della prossima istruzione da leggere dalla memoria) su MAR e attiva la linea Leggi; 2) la memoria attraverso il bus indirizzi accede a MAR e, una volta reperito quanto richiesto, lo scrive su MDR attraverso il bus dati; 3) la CPU copia su IR il valore di MDR e decodifica l'istruzione; 4) l'istruzione passa in esecuzione sulla ALU; 5) se l'istruzione prevede la lettura di operandi dalla memoria, questi devono essere caricati sui registri; per ciascun operando da reperire: 5.1) la CPU mette l'indirizzo dell'operando su MAR e attiva la linea Leggi; 5.2) la memoria attraverso il bus indirizzi accede a MAR e, una volta reperito quanto richiesto, lo scrive su MDR attraverso il bus dati; 5.3) la CPU copia sul registro destinazione il valore dell'operando che è in MDR; 6) terminata l'esecuzione la CPU copia sul registro destinazione il valore prodotto dalla ALU; se è prevista scrittura in memoria del valore calcolato: 6.1) la CPU mette l'indirizzo della cella di destinazione su MAR e il risultato su MDR e attiva la linea Scrivi; 6.2) la memoria attraverso il bus indirizzi accede a MAR, attraverso il bus dati a MDR e, una volta reperito il valore in MDR, lo scrive sulla propria cella interna indicata da MAR; 7) Si ritorna al punto 1 dopo aver aggiornato il valore di PC (prossima istruzione da eseguire). Architettura del calcolatore 9 Il Data Path In figura è rappresentato il classico data path per una CPU di Von Neumann. Il data path comprende l’ALU e i registri. Il passaggio di due operandi attraverso la ALU e la memorizzazione del risultato in un nuovo registro viene detto ciclo di data path.. Ogni istruzione ISA (assembly) viene eseguita in uno o più cicli di datapath; diversi cicli sono necessari per istruzioni complesse (es. divisione). In architetture non parallele il ciclo di data path corrisponde al ciclo di clock (misurato in nanosecondi) ossia l’intervallo di tempo utilizzato per sincronizzare le diverse operazioni del processore. La velocità con cui viene compiuto un ciclo di data-path contribuisce significativamente a determinare la velocità della CPU. Architettura del calcolatore 10 Velocità della CPU Esecuzione delle istruzioni La CPU opera in modo ciclico, ripetendo le seguenti operazioni fino al termine dell’esecuzione del programma: durata ciclo di data path = durata ciclo di clock = 1/F (dove F è la frequenza di lavoro della CPU) • Caricamento (Fetch): acquisizione dalla memoria di un’istruzione del programma. durata istruzione ISA = n × durata ciclo di data path • Decodifica (Decode): identificazione del tipo di operazione da eseguire. (con n variabile da istruzione a istruzione ma anche da architettura ad architettura) Istruzioni ISA per secondo = 1/durata istruzione ISA = =F/n CPU Anno Frequenza Bus Registri Transistor Memoria 4004 1971 740 KHz 4 bit 4/8 bit 2.300 (10 µ) 1/4 Kb 8008 1972 200 KHz 8 bit 8 bit 3.500 (10 µ) 16 Kb 8080 1974 2 MHz 8 bit 8 bit 6.000 (6 µ) 64 Kb 8086 1978 5-10 MHz 16 bit 8/16 bit 29.000 (3 µ) 1 Mb 80286 1982 6-12.5 MHz 16 bit 16 bit 134.000 (1,5 µ) 16 Mb Intel386 1985 16-33 MHz 32 bit 32 bit 275.000 (1 µ) 4 Gb Intel486 1989 25-50 MHz 32 bit 32 bit 1,2 milioni (0,8-1 µ) 4 Gb Pentium 1993 60-66 MHz 64 bit 32 bit 3,1 milioni (0,8 µ) 4 Gb Pentium Pro 1995 150-200 MHz 64 bit 32 bit 5,5 milioni (0,35 µ) 64 Gb Pentium II 1997 200-300 MHz 64 bit 32 bit 7,5 milioni (0,35 µ) 64 Gb Pentium III 1999 0.65-1.2 GHz 64 bit 32 bit 9,5 milioni (0,25 µ) 64 Gb Pentium 4 2000 1,3-3,8 GHz 64 bit 32 bit 42 mil. (0,13-0,18 µ) 64 Gb Itanium 2001 733-800 MHz 64 bit 64 bit 25 milioni (0,18 µ) Architettura del calcolatore • Esecuzione (Execute): effettuazione delle operazioni corrispondenti all’istruzione. Più in dettaglio, l’esecuzione di ogni istruzione da parte della CPU richiede una serie di passi che, in linea di massima, possono essere così riassunti: 1) Leggi l’istruzione seguente dalla memoria e mettila nel IR 2) Incrementa il PC per indicare l’istruzione seguente 3) Decodifica l’istruzione appena letta 4) Se l’istruzione utilizza degli operandi (parole) determina dove si trovano (memoria/registri) 5) Se necessario metti gli operandi in registri della CPU 6) Esegui l’istruzione 7) Salva il risultato in un registro 8) Torna al punto 1 A sua volta il punto (6) può richiedere un insieme di sotto-passi a seconda della complessità dell’Instruction Set. La traduzione di una istruzione nei suoi passi elementari è effettuata da un interprete (microprogramma). 16 Tb 11 Architettura del calcolatore 12 Esempio nell’ambiente Visual Studio (1) Esempio: somma di 2 elementi ... vedere il programma in memoria ADD [64h],AL Indirizzo 20h Indirizzo 64h .. 00 .. 05 .. .. 05 .. 00 .. .. 64 .. 00 .. .. 00 .. 00 .. .. 00 .. 00 .. .. 00 .. 00 .. .. 90 .. 00 .. .. 90 .. 00 .. Memoria Un frammento di codice assembler, la sua codifica binaria (esadecimale) e caricamento in memoria per l’esecuzione. AL = 04h PC = 20h Sorgente (Assembler inline) Registri Fetch: viene letta in IR la sequenza 00 05 64 00 00 00 dalla memoria all’indirizzo correntemente puntato da PC (20h); PC viene incrementato. Compilazione (in questo caso assembling) ed esecuzione Decode: la sequenza 00 05 64 00 00 00 viene decodificata in ADD [64h], AL ecco il frammento di programma in memoria Execute: viene recuperato dalla memoria il contenuto all’indirizzo 64h; questo viene sommato con il valore di AL e nuovamente scritto all’indirizzo 64h. L’operazione richiede sicuramente più cicli di data-path, se non altro per la necessità di recuperare operandi dalla memoria. Indirizzo 20h Indirizzo 64h .. 00 .. 09 .. .. 05 .. 00 .. Architettura del calcolatore .. 64 .. 00 .. .. 00 .. 00 .. .. 00 .. 00 .. .. 00 .. 00 .. .. 90 .. 00 .. .. 90 .. 00 .. Memoria AL = 04h PC = 26h Registri 13 indirizzi di memoria dove è caricato il programma durante l’esecuzione Architettura del calcolatore 14 Esempio nell’ambiente Visual Studio (2) Le memorie ... vedere i dati in memoria Un frammento di codice assembler e l’allocazione in memoria dei propri dati (var1 e var2) al termine dell’esecuzione: Le memorie sono le componenti del calcolatore in grado di memorizzare le informazioni: dati, programmi e risultati indispensabili per il suo funzionamento. Ogni calcolatore utilizza tipi di memoria diversi per scopi diversi: Sorgente (Assembler inline) Registri Volatile Cache Memoria principale var2 (esadecimale) Dischi magnetici Off-line Nastri Persistente Dischi ottici • Volatile: l’informazione rimane memorizzata fino a che il calcolatore è alimentato • Persistente: l’informazione rimane memorizzata anche quando il calcolatore non è alimentato (spento) • On-line: i dati sono sempre accessibili • Off-line: il supporto deve essere montato per poter accedere ai dati & = operatore “C” che ritorna l’indirizzo di una variabile var1 (esadecimale) Il costo di memorizzazione per byte cresce salendo la piramide La dimensione delle memorie cresce scendendo la piramide Architettura del calcolatore 15 Architettura del calcolatore 16 Codici di correzione degli errori (1) Codici di correzione degli errori (2) La memorizzazione possono occasionalmente commettere errori a causa, ad esempio, di picchi di tensione elettrica (o difetti). Questi errori possono essere prevenuti utilizzando dei codici di correzione degli errori. Il più semplice codice di correzione degli errori è quello che si ottiene utilizzando un bit di parità. Distanza di Hamming: indica il numero di bit corrispondenti che differiscono in due parole. D. Hamming=2 D. Hamming=4 10011100 11010100 11111110 01100111 • Ad ogni parola viene aggiunto un bit di controllo • Il bit di controllo vale 1 se il numero di bit a 1 della parola è dispari • Il bit di controllo vale 0 se il numero di bit a 1 della parola è pari 10001110 10001010 Parola di codice: indica un insieme di bit n formato da m bit di dati (parola) e r bit di controllo. 100011100 100010101 La distanza di Hamming di questa tecnica è 2 quindi non permetterà di correggere nessun errore e permetterà di identificare errori di un bit. Se due parole di codice hanno distanza di Hamming x, saranno necessari x errori (cambiamenti di stato di 1 bit) per convertire una nell’altra. 111001110 111001011 VALIDA VALIDA Utilizzando parole di codice di lunghezza n con m bit di dati solo 2m delle 2 n possibili combinazioni di bit saranno valide. 100011101 100010100 ERRORE ERRORE Il calcolatore identifica la presenza di un errore quando, nel leggere una parola dalla memoria, incontra una parola di codice non valida rispetto al codice di correzione degli errori utilizzato. La distanza (di Hamming) di un codice di correzione è data dalla minima distanza tra tutte le parole di codice valide. • Per individuare d errori di un bit serve un codice con distanza d+1. in quanto non esiste alcun modo che consente con d errori singoli di cambiare una parola di codice in un’altra • Per correggere d errori di un bit serve un codice con distanza 2d+1. in quanto le parole sono abbastanza lontane per poter consentire anche nel caso di d errori di ricondursi alla parola originaria (la più vicina). Architettura del calcolatore 17 Architettura del calcolatore 18 Organizzazione della memoria Assemblaggio della memoria La memoria principale è quella parte del calcolatore preposta a immagazzinare i programmi in esecuzione e i relativi dati. La memoria principale è volatile ossia mantiene le informazioni sino a quando il calcolatore è alimentato. I chip di memoria non vengono venduti singolarmente ma sono normalmente organizzati su schede stampate. Ogni scheda contiene generalmente da 8 a 16 chip Le memorie si compongono di un numero di celle (o locazioni) ognuna delle quali è in grado di memorizzare una parte delle informazioni. Ogni cella è associata a un numero (indirizzo) che la identifica univocamente. Tutte le celle di una memoria mantengono lo stesso numero di bit. Il numero di bit associato a un indirizzo è detto parola. La dimensione minima per una parola è il byte (8 bit) anche se normalmente i calcolatori moderni utilizzano parole più lunghe (32-64 bit). La dimensione della parola determina anche le dimensioni dei registri e delle istruzioni. SIMM (Single Inline Memory Module): i contatti dorati (in genere 72) si trovano solo su un lato della scheda e trasferiscono 32bit per ciclo di clock. La loro velocità è di 60/70 nanosecondi. Sono oramai obsolete. DIMM (Dual Inline Memory Module): i contatti dorati (in genere 168 in totale) si trovano su entrambi i lati della scheda. La loro velocità è di 60/70 nanosecondi e possono ospitare fino a 256 MB. Le schede DIMM sono utilizzate nei processori Intel Pentium e utilizzano SDRAM (Synchronous DRAM). Possono comunicare sul bus con una velocità di 133Mhz. SO-DIMM (Small Outline DIMM): sono DIMM a dimensioni ridotte usate in genere nei portatili. RIMM (Rambus Inline Memory Module): introdotta a partire dai processori Pentium IV. Permette comunicare sul bus con una velocità di 400 Mhz. Alcune ricerche hanno dimostrato che, anche se con probabilità molto piccola (1 errore ogni 10 anni), i raggi cosmici possono causare errori nei singoli bit delle DRAM. Tre modi di organizzare una memoria di 96 bit Gli indirizzi di memoria sono espressi tramite numeri binari: se un indirizzo ha m bit il numero massimo di celle indirizzabili sarà 2m. Architettura del calcolatore 19 Pertanto i moduli SIMM/DIMM possono incorporare meccanismi ECC (Error Correction Code) ad esempio tramite bit di parità). Per motivi di risparmio e bassa probabilità di errore questi chip non sono presenti su calcolatori ordinari; per ovviare a questo durante l’avvio del sistema viene generalmente eseguito un test completo di lettura/scrittura. Architettura del calcolatore 20 Ordinamento dei byte Dischi magnetici (1) Quando la parola contiene più di un byte si pone il problema di come enumerare i byte al suo interno e quindi di come rappresentare i numeri binari che sono memorizzati su più byte Un hard disk (HD) è un dispositivo elettro-meccanico per la conservazione di informazioni sotto forma magnetica, su supporto rotante a forma di piatto su cui agiscono delle testine di lettura/scrittura. Big endian: il byte più significativo del numero è memorizzato nel byte della parola con offset minore (quello più a sinistra). Questa rappresentazione è utilizzata, tra gli altri, dai processori SPARC e Motorola. 0 1 Offset 698=1010111010 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 Little endian: il byte più significativo del numero è memorizzato nel byte della parola con offset maggiore (quello più a destra). Questa rappresentazione è utilizzata, tra gli altri, dai processori Intel e Alpha RISC. 0 1 La testina di un disco, contenente un induttore, è sospesa sopra la superficie e viene sostenuta da un cuscino d’aria. Impronta digitale 15 µ Offset 698=1010111010 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 Diametro del capello umano 80 µ Particella di fumo 6 µ Entrambe le rappresentazioni sono internamente consistenti, il problema si pone quando è necessario scambiare dati tra macchine utilizzando sistemi diversi. Altezza di volo della testina 0.5 µ Particella di polvere 30 µ Piatto Strato magnetico 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 = 698BE 47618LE= 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 Il problema si avrebbe ugualmente se i dati fossero scambiati in formato ASCII anziché binario ? Architettura del calcolatore 21 Scrittura: quando la corrente negativa o positiva passa attraverso la testina, viene magnetizzata la superficie appena sotto la testina e le particelle magnetiche si allineano verso sinistra o destra a seconda della polarizzazione della corrente. Lettura: quando una testina passa sopra un’area magnetizzata viene indotta una corrente positiva o negativa nella testina e ciò permette di rileggere i bit memorizzati precedentemente. Architettura del calcolatore 22 Dischi magnetici (2) Dischi magnetici (3) Le prestazioni di un hard disk dipendono da diversi fattori. Seek time: è il tempo necessario per spostare le testine sul cilindro desiderato e può essere a sua volta suddiviso in tre fasi (speed up, coast e slow down). I costruttori forniscono in genere: • Average Seek: 8-10 ms (di solito si riferisce a letture) • Track-to-Track: 1 ms • Full-stroke: 15-20 ms (dalla traccia più interna alla traccia più esterna) Latency time: rappresenta il tempo necessario affinché il settore interessato all’operazione passi sotto la testina. Questo fattore è definito dalla velocità di rotazione del disco che varia da 3600 a 15.000 RPM (rotazioni per minuto) Traccia: sequenza circolare di bit Settore: porzione di traccia di dimensione fissa. Ogni settore è composto da: • Preambolo: necessario alla testina per sincronizzarsi prima della lettura/scrittura. • Dati: l’insieme dei byte memorizzati nel settore, normalmente 512. • Codice correzione errori Cilindro: insieme delle tracce in una data posizione radiale RPM Caso peggiore ms Caso medio ms (un giro intero) Prima di poter leggere o scrivere la suddetta struttura (tracce, settori) deve essere creata. Questa operazione viene detta formattazione. La capacità di un hard disk è in gran parte definita dalla densità di registrazione: Densità lineare: è limitata dalla difficoltà di individuare le variazioni del campo magnetico sulla superficie del disco. Densità di area: il primo hard disk per PC aveva una densità d’area di circa 0.004 Gbits/in2. Attualmente si sono superati 100 Gbits/in2. Architettura del calcolatore 23 3.600 4.200 5.200 7.200 10.000 15.000 16.7 14.2 11.5 8.3 6.0 4.0 (½ giro) 8.3 7.1 5.8 4.2 3.0 2.0 Con i tempi di trasferimento tipici della tecnologia attuale (oltre 100 MB/sec) un settore di 512 byte richiede da pochi µsec. Il tempo di seek e di latency caratterizzano quindi le prestazioni dell’hard disk. I tempi si riducono drasticamente leggendo /scrivendo più settori contigui. Mentre la capacità dei dischi continua ad aumentare costantemente (nel 2010 sono disponibili dischi fino a 3 Terabyte), il tempo impiegato per la lettura di un intero disco tende a peggiorare. In generale la crescita del settore è molto più lenta rispetto a quella delle CPU. Architettura del calcolatore 24 Dischi magnetici: interfacce Dischi magnetici: interfacce (2) Esistono diversi tipi di interfacce di trasferimento dati (implementate sui controller integrati nel disco) tra hard-disk e bus: IDE (Integrated Drive Electronics): oramai obsoleta è stata la tecnologia più utilizzata negli anni ’80. Il controllore, integrato nel dispositivo, indirizza i settori indicando il numero di testina (4 bit), settore (6 bit) e cilindro (10 bit). Questa soluzione limita la dimensione dello spazio indirizzabile: 504 MB con settori da 512 byte. I MB sarebbero stati 512 se non si fosse commesso l’errore di numerare i settori a partire da 1 invece che da 0. EIDE (Extended IDE): supporta un diverso schema di indirizzamento chiamato LBA (Logical Block Addressing) che numera i settori da 0 a 228-1. Sebbene sia necessario rimappare gli indirizzi in termini di settori, cilindri e testine permette di aumentare notevolmente lo spazio indirizzabile fino a 128 GB = 228 × 29 (settori da 512 byte). Questo standard migliora IDE anche sotto altri punti di vista, i controller EIDE: possono pilotare fino a quattro unità (due per canale: uno master e uno slave), possono controllare anche i CD ROM e hanno una velocità di trasferimento maggiore (fino a 16.67 MB/sec). Serial ATA (denominato anche SATA) è una vera e propria rivoluzione in quanto consente: • una velocità che parte da 150 MB/sec (e che nella versione 3.0dovrebbe nel tempo arrivare a 1,5 GB/sec)! • una diminuzione di costo per i cavi • una migliore ventilazione del PC e semplicità di montaggio • una riduzione dei consumi • l’hot-swap (collegamento a caldo) delle unità • il collegamento di 128 device per canale contro i 2 di PATA (in questo modo sono rinominate le versioni parallele IDE-EIDE-ATIATAPI) e i 15 di SCSI (vedi nel seguito). evoluzioni di EIDE: ATA-3 ATAPI-4: fino a 33 MB/sec. ATAPI-5: fino a 66 MB/sec, ma sempre con il limite dei 128 GB ATAPI-6: fino a 100 MB/sec; gli indirizzi LBA passano a 48 bit, capacità massima di 248 × 29, stimando una crescita di capacità del 50% all’anno, sufficienti per circa 2035 anni. ATAPI-7: meglio noto come serial ATA rappresenta una rottura radicale col passato: si passa infatti da un trasferimento parallelo di 16 o 32 bit per volta (resa possibile da cavi piatti a 40 o 80 fili) al trasferimento seriale di 1 bit per volta su un connettore a 7 fili. Architettura del calcolatore 25 Architettura del calcolatore 26 Dischi magnetici: interfacce (3) Dischi magnetici: RAID Parallelamente allo standard IDE-EIDE si sviluppo un altro standard denominato SCSI (Small Computer System Interface, si pronuncia SCASI) destinato ai sistemi di fascia altra (server, workstation, ecc...) Va sottolineato che la tecnologia di base dei dischi impiegati è la stessa (anche se in genere i dischi usati per SCSI girano a velocità maggiori e hanno un tempo di vita più lungo). Per utilizzare dischi SCSI è generalmente necessario utilizzare una scheda controller aggiuntiva (da innestare negli slot di espansione PCI). Sono state definite nel tempo diverse evoluzioni con prestazioni via via crescenti: Velocità del bus Larghezza Max lunghezza Max numero di (Transfer rate) del bus (bits) cavi (metri) dispositivi (MByte/s) Interfaccia SCSI 5 8 6 8 Fast SCSI 10 8 1,5-3 8 Wide SCSI 20 16 1,5-3 16 Ultra SCSI 20 8 1,5-3 5-8 Ultra Wide SCSI 40 16 1,5-3 5-8 Ultra2 SCSI 40 8 12 8 Ultra2 Wide SCSI 80 16 12 16 Ultra3 SCSI 160 16 12 16 Ultra-320 SCSI 320 16 12 16 Il divario tra le prestazioni delle CPU e quello dei dischi aumenta continuamente. Per tentare di colmare questo gap e per migliorare anche la robustezza dei dischi sono state ideate anche soluzioni parallele: i dischi RAID (Redundant Array of Inexpensive Disks). Un sistema RAID • Appare al sistema come un disco unico. • Aumenta le prestazioni distribuendo i dati su più dischi a cui il controllore accede in parallelo. • Fornisce modalità di backup e correzione degli errori che gli possono permettere di funzionare anche se una delle unità non è operativa. • Ne esistono diverse configurazioni. Non-redundant data striping Redundant data striping Data striping at bit level SCSI è un bus vero e proprio a cui si possono collegare più dispositivi (CD, scanner, ecc.). Le unità, collegate in catena, sono identificate da un proprio ID e sono dotate di due connettori, uno in entrata e uno in uscita. L’introduzione di Serial ATA ha ridotto (in parte) l'interesse verso SCSI: Bit-interleaved parity Block-interleaved parity Block-interleaved distributed parity Architettura del calcolatore 27 Architettura del calcolatore 28 Dischi ottici (1) Dischi ottici (2) I CD (Compact Disc) utilizzano un principio ottico, invece che magnetico, per la memorizzazione persistente di informazioni. • Sono nati negli anni '80 (Philips e Sony) come supporto per la memorizzazione di musica. • Le informazioni sono codificate per mezzo di fori (Pit) di 0,8 micron di diametro alternati con zone piane (Land) lungo un’unica spirale. Un passaggio Pit-Land o Land-Pit codifica un 1. L’assenza di variazioni codifica lo 0. I CD-ROM (Compact Disc-Read Only Memory) utilizzano la tecnologia dei CD per memorizzare dati informatici. • Le informazioni sono lette tramite un raggio laser che viene riflesso diversamente al passaggio su pit e land. • I CD vengono prodotti utilizzando uno stampo (ottenuto tramite erosione laser) su cui viene iniettata resina liquida che preserva gli incavi corrispondenti ai pit. • Lungo la spirale i dati sono memorizzati con la stessa densità, quindi il CD ruota con velocità angolare non costante (da 530 a 200 giri/sec) per mantenere la medesima velocità lineare (120 cm/sec) nelle diverse aree del CD. • Al fine di evitare la perdita di bit durante la lettura ogni byte viene codificato da un simbolo di 14 bit. Nei bit in eccesso viene inserito un codice per la correzione dell’errore. • Un gruppo di 42 simboli viene denominato frame. Ogni frame contiene 192 bit di dati e 396 bit di correzione errore e controllo. • Un gruppo di 98 frame viene denominato settore di CD-ROM. • Ogni settore di CD-ROM inizia con un preambolo di 16 byte che permette di identificare il settore e la modalità di registrazione dei dati. • Esistono due modalità di registrazione: o Modo I: 16 byte di preambolo+2048 byte dati+288 byte di correzione errori o Modo II: 16 byte di preambolo+2336 byte dati Il Modo II viene utilizzato dalle applicazioni che non richiedono il controllo di correttezza (musica, video). • La velocità base di lettura dei CD-ROM (single speed, o 1×) è di 75 settori/sec che può essere aumentata significativamente in base alle caratteristiche del lettore (es. 40×). • Per motivi di compatibilità tra le diverse piattaforme i CD-ROM utilizzano un proprio file system (standard di organizzazione dei file all’interno del CD) denominato High Sierra. Qual è la quantità di dati trasferita per secondo ? Architettura del calcolatore 29 Architettura del calcolatore 30 Dischi ottici (3) Dischi ottici (4) I CD-R (Compact Disc-Recordables), nati a metà degli anni '90 svolgono le stesse funzioni dei CD-ROM ma sono registrabili dagli utenti senza l’utilizzo dello stampo. • Diversamente dai CD la riflettività di pit e land viene ottenuta ”bruciando” tramite un raggio laser uno strato di materiale colorato inserito tra il policarbonato e lo strato riflettente. I DVD (Digital Video Disk o Digital Versatile Disk) nascono alla fine degli anni '90 come supporto per la memorizzazione di video digitali. • I DVD utilizzando lo stesso progetto dei CD-ROM inserendovi alcune innovazioni: o Pit più piccoli (0,4 micron invece di 0,8) o Spirale più serrata (0,74 micron tra ogni traccia invece di 1,6) o Raggio laser rosso (0,65 micron invece di 0,78) • Permettono di memorizzare fino a 4,7 GB (133 minuti di video digitale in formato MPEG-2) • La velocità di lettura dati (1×) è 1,4 MB al secondo (più veloce di un CD-R 1× ?) Poiché lo spazio a disposizione non è mai sufficiente (e per altri motivi legati al business del mercato cinematografico) sono stati introdotti 4 formati: • Lo standard dei CD-R prevede la possibilità di scrivere su un disco in modo incrementale. Un gruppo di settori consecutivi scritti nello stesso momento si chiama CD-ROM track. Questa soluzione richiede la presenza di più VTOC (Volume Table Of Contents) una per ogni CDROM track. In una VTOC è possibile inserire anche riferimenti alle VTOC precedenti. Il sistema operativo farà riferimento alla VTOC più recente. Inserendo nell’ultima VTOC solo riferimenti a un numero limitato di file è possibile simulare la cancellazione dei dati. Formato Lato unico-Strato unico Lato unico-Strato doppio Lato doppio-Strato unico Lato doppio-Strato doppio Capacità (GB) 4,7 8,5 9,5 17 La tecnologia con doppio strato è ottenuta inserendo tra i due strati uno strato semiriflettente. A seconda del punto su cui il laser è messo a fuoco, la riflessione avverrà da uno strato oppure dall’altro. • Le tracce si possono ulteriormente raggruppare in sessioni creando così CD-ROM multisessione. • La registrazione di ogni traccia deve essere fatta con un’unica operazione se non si vuole rovinare il CD-R. La sorgente dei dati deve quindi essere sufficientemente veloce. Architettura del calcolatore 31 Architettura del calcolatore 32 Dischi ottici (5) Immagini digitali Blu-Ray è il nome di una tecnologia emergente che potrebbe sostituire i DVD nei prossimi anni. Il nome deriva dall’uso di un laser blu (e non rosso) che avendo una minore lunghezza d’onda consente di avere pit e land più piccoli e migliore messa a fuoco. Questi dischi consentono di: • memorizzare fino a 25 GB su singolo lato • memorizzare fino a 50 GB su due lati • leggere dati a 4,5 MB/sec Il primo apparecchio ad aver utilizzato commercialmente questa tecnologia è la PlayStation 3 (2004). L’immagine del video è rappresentata tramite una griglia o matrice di pixel (PIcture ELement) di ognuno dei quali è memorizzata l’intensità luminosa (e/o il colore). Parametri importanti sono: Dimensione (risoluzione) Profondità Formato di rappresentazione (Grayscale, RGB, Palette) Immagini a livelli di grigio (Grayscale): Immagine a colori (RGB): Architettura del calcolatore 33 Architettura del calcolatore 34 Schede grafiche Schede grafiche: risoluzioni Il compito di base di una scheda grafica è quello di tradurre la rappresentazione dell’immagine prodotta dal processore in un formato (normalmente analogico) visualizzabile dal monitor. La traduzione vera e propria del segnale viene realizzata da un componente denominato RAMDAC (Random Access Memory Digital-Analog Converter). Ogni volta che il video viene ridisegnato la scheda video legge la memoria e invia al monitor il segnale che permette di rappresentare il colore di ogni singolo pixel. Dimensione della griglia di pixel: determina la definizione dell’immagine, tipiche configurazioni sono: Risoluzione 320×200 640×480 800×600 1024×768 1280×1024 1600×1200 1920×1080 N° pixel 64,000 307,200 480,000 786,432 1,310,720 1,920,000 2,073,600 Aspect Ratio 8:5 4:3 4:3 4:3 5:4 4:3 16:9 Il rapporto "tipico" 4:3 è oggi spesso sostituito dal formato panoramico (16:9) tipico dei nuovi monitor Full HD. Profondità del colore dei pixel: indica il numero di bit utilizzati per codificare il colore di ogni singolo pixel. Tipiche configurazioni sono: Profondità 4-Bit 8-Bit 16-Bit 24-Bit N° colori 16 256 65.536 16.777.216 N° byte Nome 0.5 Standard VGA 1.0 256-Color Mode 2.0 High Color 3.0 True Color In modalità True Color ogni colore viene ottenuto mediante 256 diverse tonalità dei 3 colori primari additivi (Red, Green, Blue: RGB) Architettura del calcolatore 35 Architettura del calcolatore 36 Schede grafiche: memoria Schede grafiche: interfaccia La dimensione della memoria video necessaria a rappresentare una particolare risoluzione può essere calcolata come segue: La quantità di memoria e tempo di CPU necessari per sopperire alle crescenti esigenze grafiche dei calcolatori (es. videogiochi in grafica 3D) hanno imposto una rapida evoluzione alle schede grafiche. Dimensione in MB = (N° pixel × N° bit colore)/8×220 Un’immagine 1024×768 a 16 milioni di colori richiede 2,25 MB. Codifica tramite Palette Per ridurre la quantità di memoria richiesta viene spesso utilizzata una palette di colori. Una palette è una tabella che definisce 2c colori (ognuno caratterizzato da una tripletta RGB, con profondità p bit) e associa a ciascun colore un indice (posizione nella palette). In un’immagine “palettizzata” il colore di ogni pixel è definito dall’indice del colore nella palette (sono necessari c bit invece di p bit per ogni pixel!). In questo modo in un’immagine, pur potendo utilizzare un numero massimo (2c) di colori diversi, questi potranno essere scelti da un insieme molto più ampio (2p). Se p = 24 e c = 8 allora, l’immagine potrà utilizzare 256 colori diversi scelti tra 16.777.216 Memoria: al crescere del livello di definizione delle immagini cresce la quantità di memoria richiesta per rappresentare l’immagine video. Il flusso di dati dalla memoria alla scheda grafica rischia continuamente di saturare la capacità del bus. Per questo motivo oltre ad aumentare continuamente le dimensioni della memoria residente sulla scheda grafica (memoria video) è necessario ampliare la banda di trasmissione del bus o inserire bus o porte dedicate (AGP: Accellerated Graphic Port ). CP U Memoria RAMDAC Memoria Video Coprocessore Grafico CP U Memoria RAMDAC Coprocessore Grafico Utilizzando una porta AGP il processore grafico utilizza, tramite un accesso diretto, parte della memoria centrale. Questa soluzione consente, oltre a un risparmio in termini economici, di ridurre il traffico sul bus e di mettere a disposizione del coprocessore grafico una grande quantità di memoria. PCI Express: evoluzione del bus PCI rilasciata nel 2004 che sta sostituendo l'AGP come interfaccia di connessione delle schede grafiche in quanto offre una larghezza di banda maggiore e maggiore potenza erogata. Architettura del calcolatore 37 Architettura del calcolatore 38 Schede grafiche: larghezza di banda Schede grafiche: accelerazione Potenza di calcolo: la porzione di tempo di CPU dedicato al calcolo dell’immagine video è aumentato proporzionalmente al crescere dell’utilizzo di interfacce grafiche da parte delle applicazioni. Al fine di limitare lo “spreco” di tempo CPU le schede video sono state dotate di processori dedicati denominati GPU (Graphical Processing Unit). Il processore grafico può essere utilizzato sia per la grafica 3D, sia per la grafica raster: la CPU del calcolatore non calcola la posizione e il colore di tutti i pixel da disegnare, ma invia un comando all’acceleratore indicandogli cosa deve essere disegnato. Esempio disegna rettangolo blu centrato in 100, 150 e di dimensioni 20×20. Per poter sfruttare le capacità di accelerazione delle schede grafiche è necessario che le applicazioni conoscano le funzioni da esse implementate. A causa dell’elevato numero e delle differenze tra le schede grafiche è stato necessario sviluppare delle librerie standard (OpenGL, Direct3D) che permettano ai programmatori di prescindere dalla scheda grafica utilizzata. Sarà compito del costruttore supportare le funzioni previste dalla libreria. Nel caso in cui una particolare funzione non sia supportata la libreria stessa si occuperà di simularne (in software) il comportamento. Le GPU delle attuali schede grafiche (prodotte da ATI ed Nvidia) sono costituita da un numero molto elevato di core in grado di operare parallelamente (fino ad alcune migliaia). Da ciò deriva un'enorme capacità di calcolo che ha destato l'interesse dei programmatori. Attraverso linguaggi specifici (es. Cuda) possono oggi eseguire algoritmi (non grafici) sulla GPU. Architettura del calcolatore 39 Architettura del calcolatore 40 I monitor CRT (1) I monitor CRT (2) I monitor CRT (Cathode Ray Tube) sono costituiti da un cannone elettronico che spara un fascio di elettroni contro uno schermo di vetro sul cui interno è depositato un materiale a base di fosforo. La superficie dello schermo viene percorsa per linee orizzontali; lo spostamento viene controllato modulando il voltaggio di piastre di deflessione che si trovano ai lati del cannone. Nella immagini per luce trasmessa, la generazione dei colori avviene attraverso la sovrapposizione dei tre colori primari additivi (Rosso, Verde e Blu), Nei monito CRT si utilizzando triplette di fosfori colorati (RGB) che sono colpite da tre fasci elettronici. L’accensione nella corretta proporzione di fosfori (rossi, verdi e blu) spazialmente vicini, inganna l’occhio (o meglio il cervello) facendogli vedere un singolo punto (spot) colorato del colore desiderato. • Numero di passaggi/linee per schermata: da 400 a 1000 • Numero di schermate per secondo: da 30 a 100 (Hz) (Refresh rate) Per illuminare un pixel sullo schermo viene utilizzata una griglia posta all’interno del CRT: quando questa viene caricata positivamente gli elettroni vengono accelerati, il raggio colpisce una cella di fosfori dello schermo “spot” che diviene luminoso per un attimo. Con un refresh rate inferiore ai 60Hz si nota un fastidioso “sfarfallio” delle immagini poiché l’occhio umano percepisce il processo di scansione del CRT. Tale fenomeno scompare completamente quando si superano i 72Hz. Architettura del calcolatore 41 Architettura del calcolatore 42 I monitor LCD (1) I monitor LCD (2) I monitor LCD (Liquid Crystal Display) forniscono una qualità grafica migliore dei monitor CRT, un ingombro e un peso nettamente inferiori. Per questi motivi i monitor LCD stanno velocemente soppiantando quelli CRT. • In uno schermo LCD a colori ogni cella viene divisa in tre sezioni, una con un filtro rosso, una con un filtro verde e una con un filtro blu. I cristalli liquidi sono molecole organiche vischiose che scorrono in un liquido, ma, come i cristalli, sono anche dotate di una struttura spaziale. Utilizzando un campo elettrico per modificare l’orientamento delle molecole si variano le proprietà ottiche dei cristalli e quindi l’angolo di polarizzazione della luce che li attraversa. Uno schermo LCD è composto da numerose celle (talvolta corrispondenti ai pixel) nelle quali sono intrappolati i cristalli liquidi: • Ogni cella è provvista di contatti elettrici in modo da poter applicare un campo elettrico al liquido che contiene. • Le celle stesse sono contenute all'interno di due schermi polarizzatori lungo assi perpendicolari tra loro. • Una luce situata dietro la lastra posteriore Se i cristalli non sono polarizzati la luce attraversa (con minima attenuazione) il polarizzatore frontale (pixel chiari), se invece sono polarizzati con direzione ortogonale a quella del polarizzatore frontale questo blocca completamente la luce (pixel scuri). • Gli schermi LCD con un numero modesto di celle, come quelli usati nelle calcolatrici o negli orologi digitali, sono provvisti di un contatto elettrico per ogni segmento. Questo tipo di struttura diventa improponibile man mano che il numero di segmenti aumenta. • Gli schermi di medie dimensioni, come quelli delle agende elettroniche (e i primi modelli per computer), hanno una struttura a matrice passiva che prevede un gruppo di contatti per ogni riga e colonna dello schermo, invece che una per ogni pixel. Lo svantaggio è che può essere controllato solo un pixel alla volta, gli altri pixel devono ricordare il loro stato finché il circuito di controllo non si dedica nuovamente a loro. Problemi di persistenza (la tipica scia lasciata da oggetti in movimento) e diafonia (diffusione laterale della luce in parti molto luminose su fondi scuri). • Per gli schermi ad alta risoluzione, come i monitor per computer, si usa un sistema a matrice attiva. Lo schermo LCD contiene una sottile pellicola di transistor (Thin Film Transistor - TFT) e il campo elettrico viene applicato direttamente nel punto necessario tramite un transistor a film sottile realizzato con un substrato di materiale semiconduttore trasparente depositato sulle superfici interne dei vetri che ospitano i cristalli liquidi. Questo dispositivo memorizza lo stato elettrico di ogni pixel dello schermo mentre gli altri pixel vengono aggiornati. Architettura del calcolatore 43 Architettura del calcolatore 44 Il mouse Stampanti È la periferica di puntamento più diffusa, resa popolare dalle GUI “point & click” introdotte da Apple (Macintosh) e successivamente da Microsoft (Windows). La stampante è uno dei principali dispositivi di output e la tecnologia ad essa legata è in continua evoluzione. I principali tipi di stampante sono: • Stampante a matrice: sono basate su una testina mobile contenente da 2 a 24 aghi azionati elettromagneticamente. La qualità di stampa varia a seconda del numero di aghi e della possibilità di sovrapporre la loro immagine. con matrice 5 × 7 con 24 aghi in sovrapposizione (più passaggi) Nei modelli meccanici, una sfera (1) (solitamente di gomma dura) fa girare due rotelle (2) forate (3) disposte ortogonalmente tra loro. La velocità di rotazione è misurata da sensori (5) a infrarossi (4) e trasmessa al computer. • Stampante laser • Stampante a getto d’inchiostro I primi mouse ottici utilizzavano un LED e un trasduttore ottico-elettrico (fotodiodo) per rilevare il movimento relativo alla superficie d'appoggio. Questi mouse potevano essere utilizzati solo su una speciale superficie metallica con una rete di sottili linee blu e grigie. Successivamente i mouse ottici poterono incorporare chip per l'elaborazione dell'immagine, in modo da poter essere utilizzati su un maggior numero di superfici comuni. Per le stampi a colori esistono poi altre tecniche di stampa più sofisticate che permettono di ottenere una maggiore definizione e nitidezza dei colori. I mouse laser sono essenzialmente mouse ottici che utilizzano un laser al posto di un LED per l'illuminazione del piano d'appoggio. Come conseguenza si ha una maggiore risoluzione nell'acquisizione dell'immagine, che si traduce in migliore precisione e sensibilità di movimento. N.B. In generale i punti disposti su griglie che si uniscono per formare un'immagine sono detti pixel (Picture Element). Architettura del calcolatore 45 Il livello di definizione di una stampa si misura in dpi (dots per inch) che indica il numero di punti distinti disegnabili in un segmento di lunghezza di 1 pollice = 2.54 cm. Architettura del calcolatore 46 Stampanti a getto d’inchiostro Stampanti laser Le stampanti a getto d’inchiostro vengono oggi ampiamente utilizzate per le stampe a colori. La testina mobile contiene 4 cartucce di colore (ciano, giallo, magenta e nero) che viene spruzzato sulla carta per mezzo di minuscoli ugelli. Le stampanti laser usano una tecnologia simile a quella delle fotocopiatrici Infatti, le immagini per luce riflessa, come le fotografie a colori, assorbono certe lunghezze d’onda e ne riflettono altre. Queste vengono create dalla superimposizione dei 3 colori primari sottrattivi. Quasi tutti i sistemi di stampa a colori sfruttano questo principio e utilizzano la combinazione CYMK (Cyan, Yellow, Magenta, blacK). Il nero viene aggiunto poiché è difficile ottenere degli inchiostri sufficientemente puri da assorbire tutta la luce e produrre il colore nero. 1) Il tamburo viene caricato elettricamente (fino a 1000 volt) e ricoperto di materiale fotosensibile 2) Tramite uno specchio ottagonale viene fatta passare una luce laser sul tamburo: i punti colpiti dal raggio perdono la carica elettrica. 3) Ruotando il rullo raggiunge il toner (contenitore di polvere nera elettrostaticamente sensibile). I punti elettricamente carichi attirano il materiale colorante 4) Una serie di rulli riscaldati fissa il materiale colorante sulla carta 5) Il rullo viene scaricato e pulito da residui Giallo: assorbe completamente il blu Magenta: assorbe completamente il verde Ciano: assorbe completamente il rosso • Nei modelli piezoelettrici (Epson) un cristallo che opera come “tappo” si deforma quando gli si applica una tensione e fa fuoriuscire una gocciolina. • Nei modelli termici o bubble-jet (HP, Canon, etc...) all’interno di ogni ugello una goccia d’inchiostro viene riscaldata sino all’ebollizione. L’ebollizione comporta lo “scoppio” della goccia e la sua fuoriuscita dall’ugello. Raffreddandosi l’ugello crea una depressione che risucchia un’altra goccia di inchiostro. La velocità di stampa è limitata dalla velocità del processo di ebollizione/raffreddamento. La qualità di stampa varia dai 300 dpi fino a oltre 4000 dpi. Le stampanti laser possono creare punti neri o punti bianchi, ma per raffigurare immagini a livelli di grigio è necessario rappresentare le diverse intensità del grigio (ne vengono utilizzate 255). La soluzione più diffusa si chiama mezzotono (halftoning) che suddivide l’immagine in celle di 6×6 pixel. In base al livello di grigio medio della cella verranno lasciati bianchi un numero diverso di pixel. 0-6 14-20 28-34 56-62 105-111 161-167 Ovviamente la risoluzione virtuale è ridotta in presenza di halftoning Architettura del calcolatore 47 Architettura del calcolatore 48 Reti di Comunicazione Rete Locale Un computer è in grado di comunicare con altri computer o altri dispositivi attraverso reti di comunicazione. Nel seguito vengono fornite alcune nozioni circa le modalità di connessione di un computer a una rete di comunicazione, distinguendo tra collegamento: Una LAN (Local Area Network) è una rete privata utilizzata per collegare le stazioni di lavoro (PC) di un ufficio, un’azienda o un dipartimento che hanno necessità di condividere le risorse (es: stampanti e server) e stabilire collegamenti tra i PC. Permette una velocità di trasmissione tipica di 10 o 100 Mbps (Mega Bit per Secondo) anche se questo limite è in continua crescita. • con apparati vicini (PDA, cellulari, ecc... a pochi metri di distanza) • ad altri computer o dispositivi in rete locale (ufficio, dipartimento) • con il mondo esterno (Internet) Collegamento con apparati vicini: • Collegamento punto a punto via cavo seriale/parallelo: collegamento fisico di due unità attraverso un cavo seriale (RS232) o parallelo (porta parallela) dalla lunghezza massima di pochi metri; attraverso specifiche funzionalità del sistema operativo è possibile scambiare file tra le due unità. • Infrarossi (IrDA): connessione con luce infrarossa (senza fili). È utilizzato per collegamenti (lenti) di breve distanza come, ad esempio, quelli con cellulari e PDA, ma anche stampanti. • BlueTooth: connessione in radio frequenza (senza fili) a bassa velocità e distanza ridotta destinata principalmente a connessione con unità mobili (cuffie e auricolari, cellulari, PDA, ecc.). Affinché un calcolatore possa essere collegato in LAN è necessario che disponga di una scheda di rete. Inizialmente le schede di rete erano componenti aggiuntive da innestare negli slot di espansione (ISA o PCI) sulla motherboard. Oggi la maggior parte delle schede madre dei PC contengono una scheda di rete integrata. Un protocollo di rete è un insieme di regole che specifica il formato e il significato dei messaggi scambiati tra i calcolatori di una rete. Invece di definire tutte le regole attraverso un solo protocollo (in modo complesso e confuso), si preferisce definire una gerarchia (o suite) di protocolli che specificano in modo più ordinato le regole a diversi livelli di astrazione (dal basso verso l’alto): • il livello fisico definisce le specifiche fisiche del cavo e quelle elettriche dei segnali • il livello di collegamento definisce le sincronizzazione, l’arbitraggio, i frame di base. • il livello di trasporto stabilisce i pacchetti di dati e le regole per il loro instradamento e trasposto a destinazione • il livello di applicazione fornisce primitive di alto livello per la comunicazione da parte di due programmi su calcolatori diversi. Architettura del calcolatore 49 Architettura del calcolatore 50 Suite di protocolli di Rete Collegamento a Internet Internet (la rete delle reti) è costituita da una serie di reti, private, pubbliche, aziendali, universitarie, commerciali, connesse tra di loro. Mentre le università, i centri di calcolo, le organizzazioni governative hanno collegamenti diretti verso le dorsali di Internet, l’accesso delle aziende o delle utenze domestiche avviene per mezzo degli ISP. Un Internet Service Provider (ISP) è una struttura commerciale o un’organizzazione che offre agli utenti (casalinghi o ad altre imprese) accesso a Internet con i relativi servizi. In italiano è detto anche fornitore d'accesso. Un router è un apparato di rete in grado di interfacciare reti diverse (ad esempio una rete locale privata alla rete Internet). Università X Organizzazione governativa Y I protocolli evidenziati sono quelli oggi più utilizzati per la comunicazione in LAN. A livello fisico un doppino per LAN è costituito da un cavo contenete 8 fili di rame, intrecciati 2 a 2 per maggiore immunità al rumore. I connettori utilizzati sono denominati RJ 4 5 . router modem o router Azienda Z A livello di collegamento troviamo il protocollo Ethernet (IEEE 802.3). La sua “variante” senza fili è WiFi. A livello di trasporto/internetworking troviamo infine i protocolli TCP/IP; IP definisce gli indirizzi dei calcolatori: ogni PC (o apparato connesso in rete) è dotato di un indirizzo (detto indirizzo IP, es: 137.204.72.1) che codifica l’identificatore di rete e l’identificatore di host. La combinazione è unica: non devono esistere (in una rete pubblica) 2 calcolatori con lo stesso IP. Gli indirizzi dei calcolatori “visibili” su Internet sono assegnati da un apposito organo denominato ICANN (Internet Corporation for Assigned Names and Numbers). Architettura del calcolatore dorsale Internet 51 ISP Y Mario Rossi (utenza domestica) La connessione di un utenza privata all’ISP prescelto (es. TIN, Tiscali, FastWeb, ecc...) può avvenire: • in modalità Dial-up (composizione del numero) su linea telefonica tradizionale (voce); la velocità massima di comunicazione arriva a 56Kbps. • in modalità Dial-up su linea telefonica ISDN; la velocità massima di comunicazione arriva a 128Kbps. • in banda larga (ADSL) con velocità massima di comunicazione fino a diversi Mbps. Architettura del calcolatore 52 Modem (1) Modem (2) Per poter trasmettere dati su linea telefonica i segnali digitali vengono trasformati in segnali analogici tramite un Modem (ModulatoreDemodulatore). Infatti, la trasmissione di un segnale digitale puro (onda quadra) può essere fatta, su cavi di rame, solo a pochi metri di distanza a causa del rumore e dei disturbi. Per trasmette a maggiori distanze è necessario dunque modulare il segnale. Esistono diverse forme di modulazione: Nei modem moderni viene spesso utilizzata la modulazione mista di fase e di ampiezza denominata modulazione QAM (Quadrature Amplitude Modulation): un gruppo di n bit da trasmettere modula la portante in modo da ottenere un segnale sinusoidale di opportuna ampiezza e fase. La velocità di trasmissione (in bps, ovvero numero di bit trasmessi per secondo) è n volte più grande della rapidità di modulazione (in baud, ovvero quante volte per secondo il segnale può cambiare). I modem possono scambiare dati tra loro in tre modalità: • Simplex: I dati transitano solo dal trasmettitore al ricevitore. • Half duplex: La comunicazione è bidirezionale ma contemporanea. • Full duplex: La comunicazione è bidirezionale e simultanea non A causa delle limitazione imposte dalla tecnologia i modem fonici la velocità di trasmissione tramite Modem non supera i 57600 bps. Lo standard per i model tradizionali è il V.34: • Utilizza la modulazione QAM. Segnale digitale • Supporta velocità sino a 28800 bps con la stessa velocità usata in entrambe le direzioni simultaneamente (full duplex). Modulazione d’ampiezza • Verifica le caratteristiche della linea all’inizio della trasmissione e, in base alla risposta ottenuta, adatta i segnali in modo da minimizzare le distorsioni. Modulazione di frequenza Modulazione di fase Architettura del calcolatore Monitor 53 Architettura del calcolatore 54 ADSL La larghezza di banda tipica del cavo di comunicazione che collega le utenze domestiche alla centrale telecom (detto ciclo locale) è limitata a 3000Hz circa, sufficienti per la voce. I modem tradizionali operano su uno di questi canali a banda limitata e da questo deriva la loro ridotta velocità di comunicazione. Con ADSL (Asymmetric Digital Subscriber Line), il ciclo locale viene suddiviso in 256 canali indipendenti di 4312,5 Hz, di cui il canale 0 è usato per la voce, e circa 250 sono disponibili per il traffico dati. Un modem ADSL corrisponde a circa 250 modem tradizionali. Il termine Asymmetric indica che un numero di canali minore è in genere riservato ai dati in uscita rispetto a quelli in ingresso (infatti una navigazione web tipica richiede un flusso di dati in entrata molto più elevato rispetto ai dati in uscita). Filtri e divisori Architettura del calcolatore 55 Architettura del calcolatore 56