apertura_m01.qxd 30-06-2004 11:03 Pagina 15 Modulo 1. I sistemi informatici UNITÀ 1. L’architettura hardware di un computer UNITÀ 2. Le periferiche del PC UNITÀ 3. La memoria centrale del PC UNITÀ 4. Le porte di comunicazione del PC PREREQUISITI Possedere una sufficiente conoscenza dei siste- mi di numerazione binario ed esadecimale Conoscere gli elementi di base di elettronica con particolare riferimento ai dispositivi logici OBIETTIVI Acquisire le conoscenze di base dell’hardware di un PC ed in particolare conoscere le caratteristiche fondamentali dei suoi principali componenti (CPU, Bus di espansione, chipset, socket) Conoscere le caratteristiche delle fondamentali periferiche da connettere ad un PC (tastiera, video, stampante, dischi) Acquisire le informazioni fondamentali sui tipi di memoria in uso nei PC Conoscere le funzioni di base delle porte di I/O di un PC (Parrallela, seriale, USB) m01ud01.qxd 30-06-2004 11:04 Pagina 16 unità 1. L’architettura hardware di un computer 1.1 © RCS LIBRI EDUCATION SPA La continua evoluzione del software (programmi e sistemi operativi) e dell’hardware (componenti elettronici ed elettromeccanici) dei sistemi informatici, rende difficile aggiornare e tenere aggiornate le caratteristiche dei moderni computer. Per questo in questo modulo si cercherà di fornire le caratteristiche di base degli elaboratori per quanto riguarda l’aspetto hardware. Di seguito sono analizzati i Personal Computer, dotati di microprocessori della famiglia 8088/86 o di processori ad essi equivalenti. In questa unità viene effettuata un’analisi descrittiva delle parti elettroniche costituenti il computer (hardware) e delle fondamentali unità periferiche ad esso collegate. Struttura di un elaboratore Un elaboratore elettronico può essere definito, in modo semplice, come un sistema capa- ce di elaborare i dati immessi, seguendo opportunamente una serie di istruzioni, e di dare in uscita i risultati dell’elaborazione. L’insieme delle istruzioni, atte ad elaborare convenientemente i dati ed organizzate in modo organico, viene normalmente definito programma. La struttura interna di un moderno calcolatore contiene come parti fondamentali: • la CPU (Central Processing Unit ovvero Unità Centrale di Processo) o microprocessore, dispositivo elettronico che coordina tutte le funzioni che si svolgono all’interno del computer; • la memoria centrale in cui risiedono programmi e dati; • le memorie di massa costituite da supporti magnetici, ottici o magneto-ottici, di forma diversa come i dischi magnetici (hard disk o floppy disk), nastri magnetici, dischi ottici (CD-ROM o DVD), dischi magneto-ottici; • le unità di ingresso, ovvero quei dispositivi attraverso i quali l’operatore può immettere dati e programmi nella memoria; • le unità di uscita, cioè dispositivi atti a presentare all’operatore i risultati delle elaborazioni svolte. La memoria centrale presente all’interno del sistema è di tipo elettronico (ovvero costituita con dispositivi elettronici come BJT o MOSFET). Questa memoria è generalmente di due tipi base: 1. RAM, su cui è possibile sia scrivere che leggere i dati; questa memoria è di tipo volatile, ovvero perde i dati con lo spegnimento del sistema; 2. ROM, da cui è possibile solamente leggere i dati; è di tipo non volatile in quanto conserva le informazioni anche con il sistema non alimentato. Le memorie di massa, di grossa capacità, contengono spesso inizialmente i dati da elaborare e i programmi, generalmente di dimensioni ragguardevoli. I programmi ed i dati, contenuti nelle memorie di massa, sono poi trasferiti, quando debbono essere elaborati, nella memoria centrale. Durante l’elaborazione dei dati, operata per mezzo dei programmi, spesso viene richiesta l’immissione nel sistema di dati aggiuntivi che vengono forniti all’elaboratore attraverso un’unità d’ingresso (normalmente una tastiera). 16 MODULO 1 I SISTEMI INFORMATICI m01ud01.qxd 30-06-2004 11:04 Pagina 17 Al termine dell’elaborazione, o a volte in fasi intermedie, i risultati dell’elaborazione vengono portati all’esterno su un’unità di uscita (normalmente il video o la stampante) o registrati sulle unità di massa. Nella figura 1.1 è raffigurato lo schema di principio di un elaboratore. Si possono schematicamente raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle posBUS DATI sibilità di utilizzazione: MEMORIA ROM CPU MEMORIA RAM BUS INDIRIZZI BUS CONTROLLI INTERFACCIA INGRESSO - USCITA INPUT OUTPUT OUTPUT OUTPUT TASTIERA VIDEO STAMPANTE PLOTTER Fig. 1.1 IN / OUT MEMORIE MASSA – i mainframe sono grossi sistemi di elaborazione mentre i minicomputer sistemi di capacità ridotta rispetto ai mainframe; – le workstation possono essere considerate sistemi specializzati per svolgere particolari funzioni (per esempio workstation per automazione della fase di progetto detta CAD1, per grafica, per lo sviluppo del software); – i server sono sistemi (per lo più di tipo minicomputer ma anche personal con particolari caratteristiche), che operano nell’ambito di un collegamento in rete tra computer e che forniscono ad altri sistemi ad essi collegati, client, servizi specifici. Accanto ai grossi sistemi di elaborazione dati si sono diffusi in maniera sempre più capillare i così detti Personal Computer, ovvero dei sistemi che pur essendo di minimo ingombro offrono al singolo utente notevoli possibilità di elaborazione, sicuramente uguali se addirittura non superiori a quelle dei grossi elaboratori delle precedenti generazioni. 1.2 Il Personal Computer Il Personal Computer fa la sua prima apparizione intorno al 1975. Nel 1980 sono presenti sul mercato alcuni tipi di PC dotati di memorie di massa costituite da dischi magnetici flessibili (floppy disk) e che usano come linguaggio di programmazione ad alto livello il BASIC. Sono dotati di microprocessore, con bus dati a 8 bit2. Alla fine del 1981 compare sul mercato il primo PC, realizzato dalla IBM, dotato della CPU 8088, prodotta dall’INTEL, con bus esterno a 8 bit ed interno a 16 bit. Con tale evento i PC subiscono un salto di qualità. Da questo momento si susseguono numerosi modelli con sempre maggiori potenzialità, prodotti oltre che dalla IBM anche da altre case costruttrici, tutti basati sulla famiglia di processori 8088/86, denominata iAPXnn. Abbastanza diffusi sono anche i PC, con processori PowerPC G3 della MOTOROLA-IBMAPPLE, detti Power Macintosh prodotti dall’APPLE. Nel seguito, si farà riferimento, in particolare, ai PC che utilizzano processori del tipo iAPXnn (famiglia 8088/86). In un Personal Computer possono distinguersi, in modo sintetico, le seguenti parti: • CPU: denominata anche processore o microprocessore; presiede al controllo ed allo svolgimento di tutte le operazioni che avvengono all’interno del computer sotto la supervisione di opportuni programmi. Il tipo di microprocessore presente in un computer determina la velocità e la potenza delle elaborazioni, e le istruzioni di base che esso è in grado di riconoscere. I moderni microprocessori contengono al loro interno anche il coprocessore matematico che funziona in sincronismo con la CPU, specializzato nello svolgimento di operazioni matematiche, e un certo quantitativo di memoria che lavora con la stessa velocità del processore, detta cache di 1° livello. • Circuiti d’interfaccia: collegano le unità di ingresso ed uscita con il BUS della CPU. 1 Per CAD (Computer Aided Design) si intende una progettazione assistita dal computer. 2 Il bus dati di un processore è formato da un insieme di linee su cui transitano i dati ad esso diretti o che escono da esso. Il numero di linee che compongono il bus dati viene normalmente assunto per definire il tipo di processore (a 8 bit, a 16 bit, a 32 bit....). 17 Unità 1 L’architettura hardware di un computer m01ud01.qxd 30-06-2004 11:04 Pagina 18 • Dispositivi d’ingresso e uscita: nei casi più semplici sono costituiti dalla tastiera (input) e dal video (output). Essi trasferiscono i dati dal mondo esterno verso la CPU e dalla CPU verso il mondo esterno. • Memoria centrale: in essa sono memorizzati i programmi, i dati intermedi delle elaborazioni e i dati finali. In generale la memoria di un calcolatore è costituita da memorie RAM (Random Access Memory o memorie ad accesso casuale) a lettura e scrittura, e da memorie ROM (Read Only Memory o memorie a sola lettura) che possono essere solamente lette. La programmazione delle ROM avviene all’atto della fabbricazione. Spesso le ROM sono sostituite con memorie di tipo EPROM (a sola lettura ma cancellabili con raggi ultravioletti e riprogrammabili) o anche con memorie di tipo flash (EEPROM cancellabili elettricamente) che possono essere riprogrammate direttamente senza toglierle dal circuito in cui sono inserite. In genere nella ROM è memorizzato il BIOS (Basic Input Output System), ovvero una serie di programmi, scritti nel linguaggio base del processore (detto linguaggio macchina), che interagiscono direttamente con l’hardware del sistema e che permettono l’avvio del computer in fase di accensione. Il BIOS è scritto su ROM (o su EPROM o su memoria EEPROM), perché deve rimanere memorizzato anche quando il computer viene spento. • Memorie di massa: costituite da unità con dischi magnetici detti hard disk (disco fisso o rigido), drive per dischi flessibili (floppy disk) e ottici (CD-ROM) di diverso formato e con diversa capacità di memorizzazione. Le memorie di massa vengono normalmente utilizzate per memorizzare i programmi e grossi quantitativi di dati. • Alimentatore: fornisce le tensioni necessarie per alimentare tutte le parti presenti all’interno del PC. Attualmente il mercato dei PC è orientato verso sistemi aperti, cioè dotati di una scheda interna, detta motherboard (piastra madre), che contiene i principali circuiti per il funzionamento del computer. Su tale scheda è presente anche una serie di connettori (detti slot di espansione) su cui vengono inseriti altri elementi necessari per ampliare la struttura del PC. Con tale sistema è possibile aggiornare determinati elementi senza tuttavia cambiare la piastra principale. Sulle moderne motherboard sono situati i seguenti dispositivi: • la CPU, in cui è integrato sia il coprocessore matematico che la memoria cache di 1° livello e nei nuovi processori anche quella di 2° livello; • un certo quantitativo (di solito 512 Kbyte) di memoria veloce di tipo SRAM (RAM statica) detta cache di 2° livello; • la memoria centrale di tipo SDRAM (RAM dinamica sincrona o nei sistemi più vecchi DRAM) con tempi di accesso maggiori della SRAM ma meno costosa. Attualmente sono utilizzate le memorie SDRAM dette DDR (Double Data Rate); • la memoria o di tipo ROM o, come si è detto, di tipo flash EEPROM, che permette di aggiornare il BIOS via software senza togliere il chip dalla piastra madre; • la memoria RAM C-MOS e il real time clock con una piccola batteria tampone. Nella memoria C-MOS vengono memorizzate le informazioni di base del BIOS che possono essere modificate con il BIOS setup. Il real time clock è un dispositivo che aggiorna in continuazione, anche con il computer spento, la data e l’orario del sistema; • gli integrati di interfaccia del microprocessore con la memoria centrale, con il bus di espansione e con alcune delle periferiche di I/O (denominati chipset). Nei chipset sono integrate anche le funzioni di controllo dei drive (dispositivi elettronici-meccanici che presiedono al funzionamento dei dischi magnetici e ottici) e il supporto alla nuova porta denominata USB (Universal Serial Bus) alla quale possono essere collegati numerosi tipi di periferiche come la tastiera, le stampanti, ecc. L’USB dovrebbe sostituire nei nuovi sistemi sia le porte seriali standard che quelle parallele; • un chip che contiene integrati i circuiti d’interfaccia di I/O (input/output) per la porta parallela (per il collegamento della stampante detta LPT1), le porte di comunicazione seriali (COM1 e COM2)3. Nei sistemi più vecchi le funzioni del chip di I/O sono 3 Un dato, formato per esempio da un byte, è trasmesso serialmente quando i suoi 8 bit sono inviati su una cer- ta linea di trasmissione, uno dopo l’altro. Nella trasmissione in parallelo invece gli 8 bit sono inviati contemporaneamente su altrettante linee. 18 MODULO 1 I SISTEMI INFORMATICI m01ud01.qxd 30-06-2004 11:04 Pagina 19 svolte da una scheda da inserire negli slot di espansione. Attualmente le funzioni di interfaccia per le porte di comunicazione vengono integrate direttamente nel chipset. La CPU comunica con tutti gli altri elementi presenti sulla motherboard, tramite una serie di linee di collegamento che nel loro insieme prendono il nome di BUS. Tali linee, in base ai tipi di segnale che trasferiscono all’interno del PC, vengono suddivise in tre gruppi distinti denominati: BUS dei DATI (DATA BUS), BUS degli INDIRIZZI (ADDRESS BUS) e BUS di CONTROLLO (CONTROL BUS). Ciascun tipo di BUS possiede caratteristiche ben distinte e svolge funzioni particolari. Il BUS DATI, bidirezionale, permette di inviare le informazioni da elaborare dai dispositivi d’ingresso e dalla memoria, alla CPU, e viceversa. Sulle linee del BUS DATI viaggiano inoltre i codici delle istruzioni, provenienti dalla memoria, che la CPU deve di volta in volta eseguire. La CPU utilizza il BUS INDIRIZZI per indicare con quale dispositivo o con quale locazione di memoria debbano essere scambiati i dati in un determinato istante. Sul BUS di CONTROLLO invece transitano dei segnali, che la CPU utilizza per trasmettere particolari comandi ai vari dispositivi presenti nel sistema, o che le permettono di conoscere il loro stato. © RCS LIBRI EDUCATION SPA Le linee dei BUS della CPU, opportunamente bufferizzate, insieme con altre linee specifiche per le richieste di interrupt e per il controllo del DMA, sono portate su una serie di connettori, posti sulla piastra madre. I segnali presenti su questi connettori costituiscono il così detto BUS di ESPANSIONE del PC. Nei PC particolare importanza rivestono le funzioni d’interrupt e di DMA. La richiesta d’interrupt è svolta dalle periferiche collegate al PC che, attraverso linee dedicate del BUS di CONTROLLO, inviano un segnale alla CPU, interrompendo le normali funzioni che essa sta in quel momento svolgendo, per richiedere uno scambio di dati. Le linee di richiesta d’interrupt sono denominate IRQ0 ÷ IRQ15. Alcune di esse sono dedicate a particolari funzioni e quindi non sono disponibili per le periferiche. Normalmente ogni periferica deve utilizzare una linea d’interrupt diversa, per non creare conflitti nel sistema. È denominata DMA la tecnica con cui alcune periferiche (per esempio l’hard disk) scambiano direttamente i dati con la memoria senza farli transitare attraverso la CPU. Il BUS di ESPANSIONE permette di variare rapidamente la configurazione hardware del sistema, aggiungendo nuove schede. Tra queste si elencano quelle per il controllo del monitor (video), e della gestione delle relative rappresentazioni grafiche (schede grafiche), le schede audio, le veloci schede SCSI (leggere scasi) particolarmente indicate per il collegamento di hard disk veloci, di scanner (dispositivo per l’acquisizione di immagini e testo), di sistemi di masterizzazione per la scrittura di dischi ottici. 1.3 I BUS di ESPANSIONE Ogni PC è dotato di un BUS di ESPANSIONE su cui l’utente può connettere liberamente le proprie schede (oltre che quelle precedentemente descritte). Il BUS di ESPANSIONE ha subito dalla sua nascita notevoli trasformazioni seguendo l’evoluzione stessa dei Personal Computer. Si è passati così dal BUS tipo XT a quello AT (detto anche ISA) e poi al VESA (denominato Local Bus) ed infine al BUS PCI (Peripheral Component Interconnect). Le trasformazioni si sono rese necessarie al fine di rendere idoneo il BUS a nuove applicazioni sfruttando in modo più idoneo la crescente potenza e velocità dei processori utilizzati nei PC ed inoltre al trasferimento di dati con numero sempre maggiore di bit. Nei moderni PC anche se in essi è implementato il BUS PCI, sono sempre presenti un certo numero di connettori di tipo ISA in cui è possibile inserire anche schede di tipo XT. 19 Unità 1 L’architettura hardware di un computer m01ud01.qxd 30-06-2004 1.3.1 11:04 Pagina 20 Il BUS XT Il BUS XT fu realizzato per operare in sistemi in cui era presente il processore 8088. Si ricorda che tale processore ha un BUS DATI esterno ad 8 bit (interno a 16 bit) ed è dotato di 20 linee d’indirizzo. Pertanto nel BUS XT sono presenti solo 8 linee dedicate ai dati e 20 per gli indirizzi. I segnali presenti sulle linee del BUS di espansione sono portate verso l’esterno attraverso uno o più connettori (collegati in parallelo) a 62 contatti (31 per lato), nei quali vanno inserite le schede di espansione. Sul lato A del connettore va applicata la faccia della scheda che reca i componenti. Nella tabella 1.1 è riportata una descrizione funzionale di alcuni dei segnali del BUS. Le linee per la richiesta d’interrupt, anche se presenti sul BUS di espansione, in genere sono utilizzate da periferiche standard (drive per dischi, stampanti, porte seriali) e pertanto, il loro uso è consentito solo sotto determinate condizioni per evitare problemi di conflitto. Nella tabella 1.2 si riporta il dispositivo che utilizza gli interrupt. Come è mostrato nella tabella 1.2, alcuni degli interrupt hanno subito variazioni tra il BUS del tipo XT e quello ISA e PCI. TAB. 1.1 A19 – A0 Linee del BUS INDIRIZZI D7 – D0 Linee del BUS DATI - bidirezionali MEMW Attiva (a livello basso) per operazioni di scrittura su memoria MEMR Attiva (a livello basso) per operazioni di lettura dalla memoria IOW Attiva (a livello basso) per operazioni di scrittura su periferica IOR Attiva (a livello basso) per operazioni di lettura da periferica AEN Attiva (a livello alto) quando il DMA assume il controllo del BUS IRQ7 - IRQ2 Linee per la richiesta di interrupt DRQ3 - DRQ1 Linee per la richiesta del DMA DACK3 - DACK1 Linee per il riconoscimento del DMA ALE Abilitazione per la memorizzazione degli indirizzi TAB. 1.2 Interrupt Dispositivo utilizzatore IRQ0 BUS XT BUS ISA TIMER DI SISTEMA - NON DISPONIBILE SUI BUS IRQ1 TASTIERA - NON DISPONIBILE SUI BUS IRQ2 REAL TIME CLOCK IRQ3 COM2 IRQ4 COM1 IRQ5 HARD DISK IRQ6 FLOPPY DISK IRQ7 LPT1 PIC - ND LPT2 IRQ8 REAL TIME CLOCK IRQ9 INPUT DA IRQ2 IRQ10 LIBERO IRQ11 LIBERO IRQ12 MOUSE PS2 IRQ13 COPROCESSORE MAT. ND IRQ14 HARD DISK IRQ15 LIBERO ND: non disponibile. 20 MODULO 1 I SISTEMI INFORMATICI m01ud01.qxd 30-06-2004 11:04 Pagina 21 Si ricorda che, quando la CPU riceve un segnale di interrupt, interrompe l’esecuzione del programma che sta eseguendo e mette in esecuzione uno specifico programma (routine di servizio dell’interrupt) che svolge particolari compiti relativi alla periferica che ha richiesto l’interrupt. Al termine della routine di servizio dell’interrupt torna al programma principale. È necessario precisare che agli eventuali dispositivi realizzati dall’utente (utilizzando schede che vanno connesse sui connettori del BUS di ESPANSIONE), è stato assegnato un campo di indirizzamento ristretto: 300h-31Fh essendo riservati gli altri indirizzi alle periferiche standard presenti nel PC. 1.3.2 Il BUS ISA Il BUS ISA è costituito da due sezioni separate, di cui una fa capo ad un connettore a 31+31 pin che implementa il BUS di espansione tipo XT (con la variazione di alcuni segnali), e l’altra ad un connettore a 18+18 pin con segnali propri del BUS ISA. Sulla espansione a 18 +18 pin oltre alle linee di espansione dei dati (SD8 ÷ SD15) e degli indirizzi (LA17 ÷ LA23) sono riportate le nuove linee di controllo per la richiesta d’interrupt (IRQ10 ÷ IRQ14), per la richiesta di DMA (DRQ0, DRQ5, DRQ6 e DRQ7), le linee di riconoscimento di accoglimento delle richieste di DMA (DACK0, DACK5, DACK6 e DACK7). Quindi su tale tipo di BUS le linee dei dati sono diventate in totale 16 e quelle d’indirizzo 24. 1.3.3 Il BUS PCI Il BUS XT adatto alla CPU 8088, lavora con una frequenza uguale a quella della stessa CPU (4,77 Mhz). L’introduzione del BUS ISA è adatto ai processori più potenti (80286, 80386, 80486) che lavorano con frequenze più elevate (25 MHz per l’80286, fino a 133 MHz per 80486). Con i precedenti BUS di espansione si ha un rallentamento delle periferiche collegate al BUS in quanto il clock con cui essi lavorano ha una frequenza inferiore a quella del processore stesso. Con l’introduzione del nuovo BUS PCI si è almeno cercato di aumentare la frequenza di funzionamento del BUS (75 MHz-133 MHz) anche se essa rimane ben al di sotto di quella dei nuovi processori. Con tale BUS cambia fondamentalmente anche l’architettura del sistema. La CPU è interfacciata direttamente per mezzo di un BUS locale con la memoria centrale, con la cache di 2° livello e con lo stesso BUS PCI. Il sistema d’interfaccia è denominato ponte. Esiste poi un altro ponte che realizza il collegamento tra il BUS PCI e il vecchio BUS ISA. Le funzioni di interfacciamento sono svolte da alcuni integrati (due o più) che nel loro insieme vengono denominati chipset ed assolvono alle specifiche d’interfacciamento proprie dei due ponti (fig. 1.2). Il BUS PCI è disponibile sulla piastra madre per mezzo di alcuni connettori normalmente a 62 + 62 contatti (per un bus dati/indirizzi a 32 bit) che può anche essere esteso a 94 +94 pin (per un bus dati/indirizzi a 64 bit) disposti su due lati (lato A e lato B). È da osservare che sul connettore le linee relative ai dati ed agli indirizzi sono multiplexate. 1.3.4 Il BUS AGP Il BUS AGP (Accelerated Graphics Port) è un bus specifico per il collegamento al sistema di una scheda grafica. Il BUS AGP, essendo direttamente collegato con il chipset che contiene il controllore della memoria di sistema, permette un più rapido scambio di dati tra il controllore grafico, presente sulla scheda grafica, e la memoria rendendo possibili l’utilizzazione di applicazioni 3D in tempo reale. Nella figura 1.2 è rappresentato uno schema a blocchi di un personal computer che possiede gli slot di espansione per il BUS PCI, per il BUS ISA e per quello AGP. Il sistema, come avviene nei moderni PC, ha la CPU collegata direttamente con la memoria e il BUS AGP. In questa maniera sia gli accessi alla memoria che alla scheda grafica collegata sul BUS AGP possono essere molto veloci. Il ponte fornisce poi l’interfacciamento della CPU con 21 Unità 1 L’architettura hardware di un computer m01ud01.qxd 30-06-2004 11:04 Pagina 22 CPU BUS LOCALE AGP SCHEDA GRAFICA AGP CHIPSET MEMORIA PCI BRIDGE CONTROLLER MEMORIA SLOT ESPANSIONE PCI PCI BUS COM1 USB PERIFERICHE USB FAST IDE CHIPSET I/O BRIDGE CHIPSET I/O COM2 LPT1 FLOPPY HARD DISK CD ROM ISA BUS SLOT ESPANSIONE ISA © RCS LIBRI EDUCATION SPA Fig. 1.2 il BUS PCI. Un secondo ponte collega il BUS PCI con quello ISA, e fornisce il supporto per il BUS USB, con i canali IDE (Ultra DMA) per dischi rigidi e CD ROM. Il chipset di I/O collega le altre periferiche del sistema. 1.3.5 I connettori IDE (EIDE) Sulla scheda madre sono presenti anche dei connettori per i dischi fissi, per i lettori DVDCD ROM o per i masterizzatori CD e per i floppy disk. Questi connettori sono denominati IDE (Integrated Device Electronics) o, con i nuovi computer EIDE (Enhanced IDE ovvero IDE migliorato). Normalmente sulle nuove schede sono installati 2 connettori a 40 pin denominati primary IDE e secondary IDE e uno a 34 pin riservato ai drive per floppy. Il connettore primary IDE corrisponde ad un canale primario a cui si connette il cavo del disco fisso principale, contraddistinto con la lettera C: (normalmente è il disco da cui si avvia il sistema operativo) configurato come master. Allo stesso cavo può connettersi anche un secondo disco fisso o un lettore di CD-DVD (o anche un masterizzatore) configurati come slave. Al secondary IDE corrisponde un canale secondario a cui possono essere connessi altri dischi fissi o lettori CD rispettando sempre le configurazione dei dispositivi l’uno come master e l’altro come slave. Al connettore floppy si connette un cavo a cui si possono collegare uno o due drive per floppy (denominati A: e B:). I connettori dei canali primario e secondario normalmente supportano più modalità di trasferimento dei dati. Gli standard creati per armonizzare l’utilizzazione dei connettori EIDE e delle relative interfacce sono denominati ATA, ATA-2, ULTRA ATA/33, ULTRA ATA/66 e ULTRA ATA/100. Esistono poi diverse modalità che, seguendo gli standard descritti, provvedono al trasferimento dei dati tra disco e controllore presente sulla piastra madre attraverso TAB. 1.3 Standard 22 Modalità Velocità di trasferimento (teorico) ATA-2 PIO MODE 3 11,1 Mbit/s ATA-2 PIO MODE 4 16,6 Mbit/s ATA-2 DMA MODE 2 16,6 Mbit/s ULTRA ATA/33 Ultra DMA/33 33 Mbit/s ULTRA ATA/66 Ultra DMA/66 66 Mbit/s ULTRA ATA/100 Ultra DMA/100 100 Mbit/s MODULO 1 I SISTEMI INFORMATICI m01ud01.qxd 30-06-2004 11:04 Pagina 23 i connettori EIDE e i cavi di collegamento con il disco stesso. Nella tabella 1.3 sono elencate alcune di queste modalità. 1.3.6 I socket dei processori Un elemento che sulle piastre madri riveste grande importanza è lo zoccolo su cui viene montata la CPU. È evidente che la struttura dello zoccolo e il numero di pin di cui esso è composto sono strettamente legati alla configurazione del BUS della CPU. Nelle ultime generazioni di PC si è avuta una certa diversificazione degli zoccoli in base ai tipi di processori da utilizzare sulla piastra madre. Si descrivono di seguito alcune delle configurazioni possibili utilizzate nelle ultime versioni di motherboard: – Socket 7: è usato per i PENTIUM di prima generazione, per i PENTIUM MMX della INTEL, per il K5 e il K6 della AMD; – Super 7: socket adatto per frequenze di BUS di 100 MHz. È usato dal K6-2 e K6-III della AMD; – Slot 1: è uno slot su cui inserire una piccola scheda contenente il processore e in genere la memoria cache di 2° livello. È utilizzato dai PENTIUM II e dal CELERON della INTEL. – Socket 370: variante del Socket 7 adottato dalla INTEL per i CELERON di seconda generazione, INTEL PENTIUM III, VIA Cyrix III; – Socket A (Socket 462) AMD Duron, AMD Athlon; – Socket 423 INTEL PENTIUM 4 (prima versione); – Socket 478 INTEL PENTIUM 4 (seconda versione). 1.3.7 I chipset Con la parola chipset si indica l’insieme dei circuiti integrati che sono di ausilio al processore per la gestione dei dispositivi presenti nella piastra madre: controllori del bus di sistema e di espansione, controllori DMA e della memoria cache, gestione delle porta parallela e seriale, ecc. I chipset moderni svolgono molte funzioni aggiuntive rispetto a quelli meno recenti, come la gestione del risparmio energetico, inoltre sono in grado di gestire configurazioni differenti in base al tipo di CPU installata. 1.4 Approfondimenti sui microprocessori Dalla loro origine (inizi anni ’70) i microprocessori sono diventati sempre più potenti essendo implementate in essi nuove funzioni e lavorando con frequenze di clock sempre più elevate. In essi è aumentato poi sia il numero di linee del bus indirizzi che del bus dati. Anche l’architettura dei microprocessori ha subito evoluzioni passando da dispositivi di tipo CISC (Complex Instruction Set Computing), a quelli CISC/RISC o completamente RISC (Reduced Instruction Set Computing). L’architettura CISC è nata con la necessità di avere un gran numero di istruzioni (in codice macchina), di tipo anche complesso, per semplificare il compito dei programmatori e per disporre di programmi più compatti che utilizzassero minore memoria. All’interno delle CPU realizzate secondo tale architettura (per esempio tutti i processori prodotti dall’INTEL della serie 8086/88 fino all’80486 e i primi PENTIUM), è presente una memoria di tipo ROM che contiene una serie di codici (microcodici), ciascuno dei quali permette di eseguire all’interno del processore stesso un’azione elementare. Ogni istruzione in linguaggio macchina, per essere eseguita, viene prima trasformata in una serie più o meno grande di istruzioni in microcodice. In questo modo le istruzioni semplici in linguaggio macchina possono essere convertite in una sola istruzione in microcodice, mentre quelle più complesse richiedono l’esecuzione di un numero elevato di istruzioni in microcodice. L’architettura in microcodice permette, tra l’altro, di estendere facilmente il set d’istruzioni in linguaggio macchina di un microprocessore semplicemente implementando in 23 Unità 1 L’architettura hardware di un computer m01ud01.qxd 30-06-2004 11:04 Pagina 24 esso la trasformazione delle nuove istruzioni in un set appropriato di quelle in microcodice già presenti. L’architettura RISC è nata intorno agli anni ’80. Il principio base di questa architettura sta nel fatto che il microprocessore ha un set di istruzioni molto ridotto e per di più di tipo semplice. Quasi tutte le istruzioni, di lunghezza fissa, sono eseguite in un singolo ciclo di clock permettendo di adottare efficacemente la tecnica del pipelining. Attualmente l’architettura RISC è utilizzata per la realizzazione di un discreto numero di processori utilizzati soprattutto per applicazioni nelle workstation e nella costruzione dei microcontroller (➜ Modulo 11). È RISC il processore PowerPC 604 della IBM. L’architettura dei nuovi processori sia dell’INTEL (PENTIUM di seconda generazione) che della AMD (dal K5) ha subito anche un’evoluzione verso la tecnologia RISC. Infatti essi eseguono il set d’istruzioni CISC x86, ma posseggono al loro interno un’unità implementata di tipo RISC, che incrementa significativamente le prestazioni rispetto ai vecchi processori CISC. Ogni istruzione di tipo x86 è decodificata e trasformata in una serie di micro operazioni che sono eseguite dal cuore del processore di tipo RISC. Le fasi temporali Nell’esecuzione di un programma il microprocessore carica le istruzioni da eseguire dalla memoria (con un ciclo di lettura) eseguendo una fase di fetch (ricerca codice operativo), una fase di decodifica del codice caricato ed infine una fase di esecuzione dell’istruzione decodificata. Durante la decodifica il BUS è posto in una fase di inattività denominata idle. Il ciclo poi ricomincia con l’istruzione seguente e così via, istruzione dopo istruzione. L’architettura che permette di sovrapporre nel tempo più istruzioni utilizzando un’unica risorsa di esecuzione (suddivisa in più stadi), viene detta di tipo pipeline (catena per l’elaborazione dei dati). La tecnica del pipelining è quindi la tecnica che permette il caricamento e l’esecuzione di una nuova istruzione prima che sia stata portata a termine quella precedente. Nell’esempio precedente la pipeline è a due stadi (ricerca del codice operativo, decodifica ed esecuzione). Una pipeline può essere pensata come una catena di montaggio in cui la produzione di un oggetto segue le varie fasi del montaggio passando per vari reparti (gli stadi o le fasi) in ognuno dei quali subisce opportune trasformazioni da parte del personale addetto alla lavorazione in quel reparto. È chiaro che quando il primo reparto ha terminato la fase di lavorazione del primo oggetto, questo passa al secondo reparto ed il primo può prendere in carico un nuovo oggetto. Quando in un processore sono presenti più unità che operano in parallelo si dice che è utilizzata una tecnologia superscalare. Con la tecnica superscalare il processore può operare quindi in parallelo su più istruzioni. A differenza della pipeline in cui l’esecuzione di una istruzione viene suddivisa in tante fasi elementari che operano in successione, la superscalarità utilizza più unità identiche che svolgono in parallelo per l’esecuzione di istruzioni diverse. Per aumentare l’efficienza dei microprocessori le architetture superscalari sono utilizzate in unione con quelle pipelined. In questo caso ad ogni unità di lavoro viene associata una pipeline. Per minimizzare i blocchi delle pipeline dovute ai cambiamenti di flusso del programma, nei nuovi processori sono usate tecniche di predizione dei salti (condizionati) e l’esecuzione speculativa. Un salto è detto condizionato quando la sua esecuzione avviene solamente se si verificano particolari condizioni derivanti dall’esecuzione di precedenti istruzioni. La tecnica di predizione dei salti permette di conoscere in anticipo il flusso del programma con una accuratezza molto elevata che può raggiungere il 98%. 24 MODULO 1 I SISTEMI INFORMATICI 30-06-2004 11:04 Pagina 25 Questa tecnica quindi permette al dispositivo che effettua il fetch di tenere la coda riempita con istruzioni che hanno un’alta probabilità di essere eseguite per prime. L’esecuzione speculativa permette di eseguire istruzioni successive che hanno buona probabilità di dover essere svolte. Nella figura 1.3 è riportata in modo schematico l’architettura denominata P5 utilizzata dalla INTEL nei primi processori di classe PENTIUM. È un’architettura di tipo superscalare in cui sono inserite due ALU per i calcoli con i numeri interi che possono operare indipendentemente l’una dall’altra. Le ALU sono precedute da una pipeline (denominate dall’INTEL V-pipeline e U-pipeline) a 5 stadi. Nello schema di figura 1.3 è messa in risalto anche l’unità di calcolo per i numeri in virgola mobile (FPU). Dopo il 2° stadio di decodifica l’esecuzione dei calcoli di numeri con virgola è effettuata dalla FPU invece che dalle due ALU per numeri interi. Nello schema è visibile poi il buffer BTB (Branch Target Buffer) che memorizza una sola destinazione prevista per ciascun salto. In totale vengono memorizzate nel BTB 256 previsioni di salto. BTB CACHE ISTRUZIONI 256 PREFETCH ROM MICROCODICE DECODIFICA ISTRUZIONI UNITA’ DI CONTROLLO 64 32 REGISTRO INTERI REGISTRO FP FPU ALU ALU 32 32 64 BIU Fig. 1.3 25 DATI 64 CACHE DEI DATI © RCS LIBRI EDUCATION SPA m01ud01.qxd INDIRIZZI CONTROLLI 32 Unità 1 L’architettura hardware di un computer m01ud02.qxd 30-06-2004 11:06 Pagina 26 unità 2. Le periferiche del PC 2.1 Le schede di espansione Nonostante la forte integrazione di funzioni presenti sulla scheda madre e nei chipset, è spesso necessario collegare al PC, negli slot di espansione previsti, schede che integrano alcune funzioni specifiche. Tra le principali schede si citano: • Scheda grafica: la scheda per il controllo del video; tale scheda gestisce le modalità di scrittura e di grafica sul video ed è corredata con della memoria RAM ausiliaria. Le schede grafiche che supportano funzioni 3D sono definite anche acceleratori grafici. Queste schede sono dotate di potenti chip grafici e di memoria di tipo SDRAM o SGRAM (specifica per applicazioni grafiche). Il collegamento con le piastre madri di recente costruzione è ormai standardizzato ed avviene sull’apposito slot del BUS AGP. • Scheda Audio: in grado di gestire complesse funzioni audio come la registrazione e la riproduzione di suoni e di brani musicali, la dettatura vocale (con particolari programmi) e sono collegabili con casse acustiche, con microfono e con le cuffie. • Schede SCSI per il collegamento di veloci hard-disk, scanner e sistemi di scrittura su dischi ottici (masterizzatori). • Schede di rete per il collegamento in rete locale di più computer. Tra le più diffuse si citano le schede per reti ETHERNET (per maggiori dettagli ➜ Modulo 14). • Schede TV: integrano un convertitore TV e permettono di ricevere i canali televisivi sul monitor del PC. • Schede con funzioni di modem: contengono tutte le funzioni di una porta seriale e in più quelle proprie di un modem (in genere di tipo fonico, multistandard) idoneo per il collegamento del PC con la rete telefonica; il modem può essere utilizzato per il collegamento con INTERNET, per inviare FAX o, a volte, come segreteria telefonica. • Scheda con porta IEEE 1348 (detta firewire). 2.2 La tastiera La tastiera costituisce il dispositivo standard per l’immissione di dati in un computer. Tra i vari tipi disponibili in commercio è possibile individuare quattro zone principali di raggruppamento di tasti costituite da: • Tasti funzione: indicati con F1, F2, F3 ... ; questi tasti svolgono azioni diverse a seconda dell’ambiente di applicazione attivo. Normalmente sono disposti sulla parte alta della tastiera. • Tasti numerici: posti sulla destra della tastiera svolgono in genere la duplice funzione di tasti numerici, attivati quando viene premuto il tasto NUM-LOCK (blocca numero), o tasti per lo spostamento del cursore. • Tasti per il movimento del cursore: posti accanto al tastierino numerico svolgono la funzione di spostamento del cursore sul video. Tra di essi sono posti anche i tasti INS e CANC (o DEL). • Tasti alfanumerici comprensivi dei tasti speciali. I tasti alfanumerici contengono tutti i caratteri alfabetici, quelli numerici e i più comuni segni di interpunzione. 26 MODULO 1 I SISTEMI INFORMATICI m01ud02.qxd 30-06-2004 2.3 11:06 Pagina 27 Il video Il video è una periferica d’uscita che permette di visualizzare i risultati delle elaborazioni effettuate. Normalmente sul video compaiono anche i caratteri man mano che essi vengono digitati da tastiera (eco della tastiera). Il video è costituito da un tubo a raggi catodici (CRT), simile a quello usato nei televisori. La visualizzazione è ottenuta mediante la scansione di un fascio di elettroni che, opportunamente accelerati e concentrati in un minuscolo punto, colpiscono il rivestimento di materiale a base di fosfori depositato sulla parte interna dello schermo. Il fosforo si illumina quando viene colpito dal fascio di elettroni e la luminosità persiste per un tempo molto breve. Il punto luminoso viene detto pixel. L’insieme di punti luminosi viene a formare, come in un mosaico, un’immagine. Se l’intera immagine viene ripetuta (scandita) abbastanza spesso, circa 50 volte al secondo, l’informazione presente sul video appare fissa e i caratteri o l’immagine grafica si osservano con facilità. L’immagine rappresentata è tanto più nitida quanto minore è la spaziatura tra i punti che vengono illuminati. Tale caratteristica è legata alla qualità del video adottato ed è espressa in termini tecnici come dot pitch1. La qualità del CRT è tanto migliore quanto più è piccolo il dot pitch. La grandezza del video viene misurata in pollici e rappresenta la lunghezza della diagonale dello schermo. Misure standard sono 14 (attualmente poco utilizzati), 15, 17, 19 pollici ed oltre. Nella tabella 2.1 sono elencate alcune risoluzioni per la modalità Super VGA. TAB. 2.1 Norme adattatore Super VGA (o VESA)2 Risoluzione pixel 640 ×480 800 × 600 1024 × 768 1280 × 1024 Parametro importante per la scelta del monitor è anche la conoscenza della massima frequenza di scansione orizzontale e verticale. In genere le frequenze di scansione orizzontale aumenta con l’aumento delle risoluzioni dei vari modi. Un buon monitor deve essere del tipo non interlacciato (NI), ovvero la scansione del video da parte del pennellino elettronico non deve avvenire a righe alterne. Un tipo di monitor che inizia a diffondersi è quello che utilizza una tecnologia a LCD (cristalli liquidi). Tali monitor offrono uno spessore molto ridotto rispetto ai tradizionali monitor con CRT (tubo a raggi catodici). 2.4 Il mouse Il mouse è un dispositivo di puntamento che permette di spostare rapidamente il cursore in ogni zona del video o di selezionare testo o immagini grafiche. Esso si rende indispensabile in quelle applicazioni in cui è utilizzato un software che tende ad associare a particolari immagini, dette icone, programmi che svolgono le funzioni richiamate dalle immagini stesse. Quando il mouse viene fatto scorrere su una superficie piana, la pallina ruota, e speciali dispositivi foto-elettronici, posti al suo interno, rilevano la grandezza del movimento e la direzione ed il verso in cui è avvenuto, e inviano le informazioni all’elaboratore attraverso una interfaccia d’ingresso. Quindi ogni spostamento del dispositivo su un piano di lavoro è rappresentato sul video per mezzo di un particolare cursore. Il mouse normalmente viene collegato ad una delle porte seriali (serial mouse) o all’apposito connettore definito PS/2 (mouse tipo PS/2). 1 Nei video a colori, sono presenti gruppi di tre punti di colore diverso (rosso, verde e blu), che opportuna- mente illuminati creano una visione a colori. In tali monitor, il dot pitch è riferito alla distanza tra le triadi. 2 Le schede video Super VGA, oltre a supportare tutti i modi testo visti precedentemente, dispongono di altri numerosi modi in genere dipendenti dalla scheda utilizzata. 27 Unità 2 Le periferiche del PC m01ud02.qxd 30-06-2004 2.5 11:06 Pagina 28 La stampante La stampante è una periferica d’uscita che permette di riportare su carta i risultati delle elaborazioni come dati, grafici, testi, ecc. Sul mercato sono presenti numerosi tipi di stampante che differiscono per la tecnologia di costruzione, la velocità di stampa, le dimensioni del foglio di carta su cui operano la possibilità di effettuare stampe a colori o meno ed altre caratteristiche. Di seguito sono brevemente descritti alcuni dei tipi più comuni di stampanti: • la stampante a getto d’inchiostro (ink-jet) spruzza sulla carta gocce d’inchiostro attraverso minuscoli ugelli. Sono presenti sul mercato stampanti con una risoluzione di 300 punti per pollice (dpi) e anche con 600 o più dpi sia per la stampa monocromatica che per quella a colori. Le più comuni risoluzioni per le stampanti a colori utilizzate per grafica o fotografia sono di 600 × 600 dpi, 1200 × 600 dpi 1440 × 720 dpi, 1200 × 1200 dpi ed oltre. • la stampante laser riproduce le immagini e i caratteri attraverso un sottile raggio laser. Con essa si ottiene una elevata qualità ed una buona velocità di stampa. Le memorie di massa © RCS LIBRI EDUCATION SPA 2.6 Come è facile intuire, la sola memoria centrale (RAM e ROM) interna al PC non è sufficiente né adatta a memorizzare i numerosi programmi e i dati che normalmente sono utilizzati dall’utente. Infatti la RAM perde l’informazione ogni volta che viene spento il computer mentre la ROM, essendo a sola lettura, non può essere alterata. Inoltre, anche se attualmente i PC possono disporre di notevole capacità di memorizzazione a costi contenuti, i nuovi programmi applicativi raggiungono ormai lunghezze ragguardevoli. Si rendono pertanto necessari altri tipi di memoria che permettano all’utente di conservare dati e programmi quando il computer è spento. I supporti utilizzati per conservare permanentemente le informazioni sono i floppy disk, gli hard disk, i CD-ROM, i DVD ed i dischi magneto-ottici. 2.6.1 Floppy disk BORDO ESTERNO BORDO INTERNO SETTORE PRIMA TRACCIA ULTIMA TRACCIA Fig. 2.1 2.6.2 I floppy disk, o dischi flessibili, sono dischi removibili costituiti da un supporto in plastica ricoperto di ossidi magnetici. Attualmente i dischi utilizzati sono quelli da 3 pollici (3.5”) che hanno una capacità di 1.44 Mbyte. Per poter esser letti o scritti, i floppy disk debbono essere inseriti in appositi dispositivi, denominati drive, muniti di motore per la rotazione del disco e di apposite testine, che sono mosse radialmente, per effettuare il prelievo o il deposito delle informazioni sulla superficie magnetica. I floppy sono messi in rotazione solo quando sono eseguite su di essi operazioni di lettura o scrittura. Sul disco, durante il processo chiamato formattazione, vengono magneticamente contrassegnate, su ciascuna delle due facce, un certo numero di tracce concentriche e poi, ogni traccia, viene suddivisa in un certo numero di settori (fig. 2.1). Dischi removibili Accanto ai floppy disk si sono diffusi altri tipi di dischi removibili che offrono all’utente una maggiore capacità di memorizzazione ed una maggiore velocità di accesso ai dati. 28 MODULO 1 I SISTEMI INFORMATICI m01ud02.qxd 30-06-2004 11:06 Pagina 29 Anche se non si è in presenza di uno standard, alcuni dispositivi hanno raggiunto una buona diffusione. Si citano tra i modelli più utilizzati: • Iomega Zip: dispone di dischi con capacità di 100 o 250 Mbyte o più. Non è compatibile con i floppy standard. Il drive può essere interno o esterno. Esistono vari tipi che possono essere collegati al PC per mezzo della porta parallela, con una scheda SCSI, alla porta USB o su un canale EIDE del controllore per dischi. • Imation SuperDisk: i dischi hanno una capacità di 120 Mbyte ed il drive può gestire anche i normali floppy disk. • Sony HiFD: i dischi hanno una capacità di 200 Mbyte ed il drive è compatibile con i normali floppy. 2.6.3 Hard disk Il disco rigido, o hard disk, viene anche detto disco fisso, in quanto non è estraibile dal drive. In realtà esistono anche hard disk removibili posti all’interno di un cassetto, munito sul fondo di un connettore elettrico, che può essere estratto dal computer. Per memorizzare le informazioni, l’hard disk utilizza un supporto rigido, di forma circolare, realizzato con una lega di alluminio ricoperta da uno strato di materiale magnetico. Normalmente per realizzare un disco rigido vengono adoperati più supporti, fissati su un unico asse, solidali tra di loro, che ruotano tutti insieme. I piatti di un hard disk ruotano a una velocità superiore a quella dei floppy, variabile a seconda del tipo da circa 5200 a oltre 7200 giri al minuto. I drive degli hard disk sono mantenuti sempre in rotazione poiché, per il modo in cui sono realizzati, impiegano un certo tempo per raggiungere la velocità di regime. La rotazione costante rende i dati disponibili in tempi molto minori, rispetto a quello dei floppy, e la maggiore velocità di rotazione permette anche una diminuzione dei tempi di scrittura e di lettura. Su ogni piatto, costituente il disco rigido, sono presenti due testine, una per faccia, che si muovono radialmente su di esso. Tutte le testine sono poi collegate a un braccio meccanico che ha la funzione di sostenere tutto l’insieme e, un dispositivo, detto attuatore, provvede poi a spostare le testine verso l’interno o l’esterno del disco lungo un suo raggio. Nella figura 2.2 è schematizzata la struttura di un disco rigido. Braccio Testine Disco Altri dischi Supporto unico per tutte le testine Disco Facce Disco Testine Fig. 2.2 Motore per il trascinamento dei dischi Anche le superfici (superiore ed inferiore) di ciascun piatto del disco fisso sono suddivise in tracce. L’insieme di tutte le tracce descritte sulle superfici di tutti i piatti formano una pila di tracce detta cilindro. Le tracce di ogni piatto sono normalmente divise in settori. Il raggruppamento di più settori contigui, utilizzati dal sistema operativo come blocco unico per la memorizzazione dei dati, è definito cluster. Le capacità di memoria di un hard disk sono molto varie e in continuo aumento. Quando vengono memorizzati dati o programmi sul disco inizialmente vengono occupati 29 Unità 2 Le periferiche del PC m01ud02.qxd 30-06-2004 11:06 Pagina 30 settori contigui. Poi con le continue cancellazioni di dati e programmi, o parti di essi, le nuove memorizzazioni sono fatte in settori non più contigui. Quindi uno stesso programma o una serie di dati, appartenenti allo stesso insieme, vengono ad essere memorizzati in diverse zone del disco. Con il passare del tempo la situazione diviene sempre più critica e la lettura o scrittura di dati diviene più lenta. Per ripristinare la situazione iniziale si ricorre alla defragmentazione del disco. Un’apposita utility, fornita con i sistemi operativi, rimette in settori contigui i dati appartenenti alle stesse applicazioni. Caratteristiche tecniche per la scelta dei dischi rigidi • Capacità di memorizzazione espressa in Gbyte. • Tempo di ricerca medio: tempo che impiega mediamente la testina per raggiungere una traccia (8 ÷ 10 ms o anche meno). • Transfer rate: (in Mbyte/s) velocità con cui vengono trasferiti i dati dal disco; il transfer rate esterno indica la velocità con cui vengono trasferite le informazioni dalla memoria cache contenuta nel disco; il transfer rate interno specifica invece la velocità di trasferimento senza utilizzazione della cache interna. • Velocità di rotazione (rpm: rotazioni per minuto – in genere a maggiore velocità corrisponde un transfer rate interno maggiore). • Disco di tipo EIDE collegabile direttamente al controller presente sulla scheda madre attraverso un connettore IDE. • Disco di tipo SCSI (leggere scasi): sono dischi con caratteristiche più elevate; necessitano di una apposita scheda d’interfaccia. 2.6.4 Drive per CD-ROM e DVD I drive adatti alla lettura dei CD-ROM hanno un cassettino estraibile in cui si inserisce il disco (normalmente con la superficie su cui si trovano i dati rivolta verso il fondo del cassetto). Le informazioni sono incise sul disco, in formato binario, in forma ottica con piccole zone riflettenti (land) e altre opache (pit), poste su un’unica traccia, a forma di spirale, che parte dal centro del disco e va verso la superficie esterna. La traccia è incisa sul disco in fabbrica e possiede una larghezza di 0,6 µm ed un passo di 1,6 µm. Il disco, in fase di lettura, viene posto in rotazione ed un sistema ottico, dotato di un diodo laser, mosso su un braccetto lungo un raggio del disco, illumina la superficie e, il raggio laser, riflesso o meno a seconda che colpisca un land o un pit, viene inviato ad un fotorivelatore, in grado di distinguere i punti opachi e quelli riflettenti. La successione di una zona opaca ed una riflettente viene interpretata come uno logico, mentre la successione di zone opache o zone riflettenti come zero logico. I lettori di CD utilizzano normalmente la tecnica CAV (Constant Angular Velocity) e meno frequentemente la tecnica CLV (Constant Linear Velocity) e a volte ambedue. Con la CAV il disco ruota con velocità angolare costante. Quindi esso impiega sempre lo stesso tempo per compiere una rotazione completa. Di conseguenza le tracce interne passeranno sotto la testina di lettura in modo più lento mentre quelle più esterne con velocità superiore. Per questo la velocità di trasferimento dei dati sarà più bassa sulle tracce esterne e più elevata su quelle interne. La velocità di trasferimento dei dati, per un lettore CD, è indicata con un numero seguito dalla X (per esempio 40X). Si tenga presente che il valore 1X corrisponde ad un trasferimento di dati pari a 150 kbyte/s. Quindi un lettore 40X trasferisce 40 × 150 kbyte/s = 6000 kbyte/s. Il valore indicato sul drive si riferisce alla lettura delle tracce più esterne. Per esempio, un lettore di CD 40X avrà per le tracce più interne una velocità di trasferimento pari a circa 18X. In un CD (definito normalmente CD-R) sono memorizzati normalmente 650 Mbyte o 700 Mbyte di dati. Il DVD (Digital Video Disc) ha lo stesso formato del CD ma può contenere una quantità di dati di gran lunga superiore (4,7 Gbyte). Per ottenere questa maggiore capacità di memorizzazione, nel DVD sono utilizzati pit e land di dimensioni ridotte rispetto al comune CD-R. Inoltre il laser emettitore utilizza una lunghezza d’onda inferiore (650 nm) e la meccanica del drive è più precisa. 30 MODULO 1 I SISTEMI INFORMATICI m01ud02.qxd 30-06-2004 11:06 Pagina 31 Un lettore DVD deve essere in grado di leggere anche un CD. Per la velocità di trasferimento dei dati per un lettore di DVD si considera l’unità base 1X = 1350 Kbyte/s. In genere in un lettore per DVD è indicata separatamente la velocità di trasferimento dei dati in modalità lettore CD. 2.6.5 Masterizzatori per CD © RCS LIBRI EDUCATION SPA I masterizzatori sono utilizzati per incidere CD del tipo CD-R (Recordable), ovvero che possono essere incisi una sola volta, o CD-RW (ReWritable), che possono essere riscritti più volte. Sui dischi è sempre incisa la capacità di memorizzazione del supporto (650 Mbyte o 700 Mbyte) e la velocità con cui possono essere masterizzati (4X, 6X, 8X, 12X, 16X…). L’aspetto esteriore di un masterizzatore è simile a quello di un lettore. Normalmente un drive per la masterizzazione utilizza tre velocità distinte per la scrittura dei CD-R, per la scrittura dei CD-RW ed infine per la lettura (per esempio 24X-10X-40X). A corredo dei masterizzatori è spesso fornito un apposito software che serve per compiere tutti i processi di masterizzazione. La scrittura di un CD-R può essere eseguita tutta in una volta (in una sola sessione) o in più sessioni successive (CD multisessione). Al centro del disco, intorno al foro, c’è una zona definita PMA (Program Memory Area) che contiene informazioni sui dati registrati sul disco relativi alle varie sessioni. Per ogni sessione, all’inizio della zona registrata con i dati, viene posta un’area detta lead-in che contiene la TOC (Table Of Contents) ovvero l’indice con le informazioni relative alla struttura delle tracce della sessione attuale. Al termine delle tracce incise, contenenti i dati, per ogni sessione, viene posto un lead-out. Le modalità principali con cui possono essere scritti i CD sono così definite: – DAO (Disc At Once): scrittura del disco in un’unica sessione, utilizzata normalmente per la copia di dati da un CD ad un altro. Questo metodo è utile per la produzione di CD audio, poiché non crea intervalli fra le tracce. – TAO (Track At Once, ovvero traccia per traccia): quando si registra in modalità Track at Once il processo di scrittura viene interrotto dopo ogni traccia. Ogni traccia registrata viene chiusa prima di iniziare la registrazione della successiva. – SAO (Session At Once): viene registrata una sessione per volta, in tempi successivi, creando un disco multisessione. In questo modo al CD-R possono essere aggiunti dati in tempi diversi. – PACKET WRITING (scrittura a pacchetto): il CD è utilizzato come un comune disco rigido. Dopo una particolare formattazione si possono trasferire sul disco file e cartelle. Normalmente, fin quando il disco non viene finalizzato, la sua lettura è possibile solo per i PC che hanno lo stesso software di packet writing. Normalmente per incidere un CD viene utilizzato il file system denominato ISO-9660. Con tale standard i nomi dei file e delle directory seguono le caratteristiche del DOS (massima lunghezza del nome 8 caratteri). Nuove specifiche di masterizzazione per il file system dei CD-ROM, introdotte dalla Microsoft, dette Joliet, sono estensioni dello standard ISO 9660, che permettono di usare nomi di file fino a 64 caratteri. Nei vecchi masterizzatori si presentava spesso, durante l’incisione di un disco, il così detto buffer underrun, che rendeva il disco non più utilizzabile. Il buffer underrun è dovuto allo svuotamento del buffer di memoria presente nel masterizzatore in cui sono contenuti i dati che debbono essere incisi sul disco, a causa di una bassa velocità di trasferimento dati dal PC verso il masterizzatore. Per minimizzare l’errore di svuotamento è necessario che il drive abbia un buffer abbastanza capace (di solito 2 o 4 Mbyte). Attualmente esistono varie tecniche che permettono di superare il buffer underrun e tra tutte si cita il Burn-Proof. 31 Unità 2 Le periferiche del PC m01ud03.qxd 30-06-2004 11:08 Pagina 32 unità 3. La memoria centrale del PC 3.1 La memoria centrale Un calcolatore deve necessariamente essere fornito di memoria di tipo ROM (a sola lettura, non volatile) e RAM (lettura e scrittura di tipo volatile). Nella ROM, si trova il BIOS, il programma che gestisce l’avvio del sistema ed effettua i test necessari per verificare il corretto funzionamento dei componenti base del PC. Nella RAM, vengono memorizzate le informazioni durante le varie fasi di elaborazione. Inoltre, i programmi, prima di essere eseguiti, vengono caricati dalla memoria di massa, floppy disk o hard disk, nella RAM. Con programmi estesi e complessi ed in particolare con applicazioni di grafica è richiesta l’installazione di grossi quantitativi di RAM. La memoria complessiva che può essere installata all’interno di un PC è strettamente correlata con il tipo di CPU presente nel sistema ed alla particolare motherboard (piastra madre) presente nel PC che fissa la quantità massima di memoria installabile. La memoria di tipo RAM presente nei PC è costituita da chip, di diversa capacità, raggruppati in moduli già pronti. I moduli vengono alloggiati in appositi slot presenti sulla piastra madre. Nel tempo i moduli hanno subito una certa evoluzione contenendo quantitativi di memoria sempre più elevati con conseguente aumento di pin necessari per il collegamento con la scheda madre. Si è passato così dai moduli di tipo SIMM (Single In-line Memory Module) a 30 pin, ai SIMM a 72 pin, ai DIMM a 168 pin ed infine a quelli 184 pin per le memorie DDR. Sono presenti sul mercato moduli da 32, 64, 128 e 256 Mbyte. Le memorie attualmente installate nei PC sono SDRAM (Synchronous Dynamic RAM cioè delle DRAM di tipo sincrono) o SDRAM del tipo DDR. Nella memoria possono essere immagazzinati dati, in formato binario. Normalmente ogni dato si considera formato da 1 byte (8 bit). È per questo che la quantità di memoria si misura in byte o nei relativi multipli (1 Kbyte = 1024 byte, 1 Mbyte = 1048576 byte, 1 Gbyte = 1073741824 byte). Il numero di byte, e quindi di dati, che la CPU può indirizzare è legato al numero di linee presenti nel suo bus indirizzi. Infatti, considerando che su tali linee si possono trovare solo livelli binari (uno o zero), si ha che il numero di indirizzi diversi che si possono avere, ognuno dei quali è adatto alla identificazione univoca di un byte, è dato dalla relazione: num_byte = 2num_lin_ind dove il numero due rappresenta la base dei numeri binari e num_lin_ind il numero delle linee di indirizzo della CPU e quindi del bus indirizzi stesso. Le singole posizioni di memoria, nella quale vengono caricate informazioni in forma binaria, sono denominate comunemente locazioni. 3.1.1 La memoria centrale con MS-DOS Il sistema operativo MS-DOS fu creato inizialmente per operare con la CPU 8088 della INTEL. Tale processore ha un BUS INDIRIZZI formato da 20 linee. Pertanto esso è in grado di gestire un quantitativo massimo di dati pari a 1 Mbyte (220 = 1048576). Per questo la stesura della prima versione del DOS, e poi anche delle successive, sono strettamente legate a tale caratteristica. 32 MODULO 1 I SISTEMI INFORMATICI m01ud03.qxd 30-06-2004 11:08 Pagina 33 Con il sistema operativo MS-DOS la divisione dello spazio di memoria indirizzabile, diviso in 16 blocchi di 64 Kbyte ciascuno, è così ripartito: • i primi 640 Kbyte (10 blocchi) sono destinati ad essere occupati da memorie di tipo RAM, atte a contenere sia i programmi di sistema (prima parte) che programmi e dati dell’utente; • i successivi 128 Kbyte (due blocchi) destinati alla gestione del video; • i rimanenti 256 Kbyte (quattro blocchi) destinati a contenere memorie, generalmente di tipo ROM, con il ROM-BIOS (posto nell’ultimo blocco) o con estensioni del BIOS stesso. I primi 640 Kbyte di memoria RAM sono detti normalmente memoria convenzionale, mentre la parte restante, pari a 384 Kbyte, viene chiamata memoria superiore. Non necessariamente, in un PC, la memoria superiore risulta tutta fisicamente occupata (perché questo succeda debbono essere installati nel sistema i necessari integrati di memoria). Le parti di tale memoria non utilizzate vengono chiamate blocchi di memoria superiore (UMB), e sono adoperati per particolari funzioni di estensione della memoria. È da tenere presente che in un PC, con il sistema operativo MS-DOS, senza particolari accorgimenti, la sola memoria che possono sfruttare i programmi è quella convenzionale. La distribuzione della memoria può essere osservata con il comando del DOS MEM/C. Con l’utilizzazione successiva nei PC di processori con numero di linee di indirizzo superiori a 20 si è reso possibile adoperare una quantità di memoria superiore ad 1 Mbyte. Però i vincoli imposti dal sistema operativo MS-DOS, per conservare la compatibilità con le precedenti versioni hanno reso necessario utilizzare particolari sistemi per sfruttare quantitativi di memoria più elevati, necessari per estendere i 640 Kbyte della memoria convenzionale. La Memoria estesa o XMS (eXtended Memory Specification), è la parte di memoria presente nei PC con estensione al di sopra del Mbyte. Con l’introduzione del sistema operativo WINDOWS 95 e poi WINDOWS 98 non esiste più la distinzione tra memoria convenzionale e memoria estesa. Il processore in tal caso lavora in modalità protetta e la memoria viene vista come un unico blocco. Tuttavia se si usa il sistema operativo MS-DOS, e programmi che lavorano con tale sistema operativo, la precedente suddivisione rimane ancora valida. 3.1.2 Memoria cache Le memorie RAM installate in un PC, per motivi di costo, sono del tipo dinamico (SDRAM). Poiché il sistema è dotato di una CPU che lavora con frequenze di clock alte, queste memorie, per la tecnologia costruttiva e per il modo di funzionamento, costringono la CPU stessa, durante le operazioni di lettura e di scrittura, a stati di attesa (wait state), rallentando pertanto il funzionamento del sistema. Per eliminare in parte tale inconveniente, vengono inserite nel PC delle memorie di tipo statico (SRAM), molto più veloci delle DRAM, ma anche più costose, che costituiscono la così detta memoria cache. Tale memoria, posta tra la memoria DRAM ed il processore, è quindi quella a cui esso accede direttamente. Utilizzata come memoria di transito, vengono memorizzati in essa dati e parti di programma, prelevati dalla memoria SDRAM. I processori dispongono anche di un certo quantitativo di memoria cache interna (detta cache di primo livello). I nuovi processori implementano nel chip, o in piastre direttamente collegate ad esso, anche un quantitativo di memoria cache di 2° livello che lavora con frequenze prossime a quelle del processore stesso. 3.1.3 Memoria cache per disco (o memoria di scambio o memoria virtuale) La memoria cache per disco non è da confondere con la precedente memoria cache, costituita da RAM di tipo statico; è infatti una memoria costituita semplicemente da alcune zone della RAM dinamica, che vengono destinate, gestendole con opportuni programmi, a buffer per i dati del disco. 33 Unità 3 La memoria centrale del PC m01ud03.qxd 30-06-2004 11:08 Pagina 34 Per rendere più veloci le operazioni di lettura o scrittura su disco, per evitare continui accessi su di esso, che sono abbastanza lenti, di volta in volta un certo numero di dati, vengono copiati sulla memoria, e, il sistema, accede in tal modo non al disco, ma alla memoria operando in tal modo più velocemente. Naturalmente quando si deve accedere a zone diverse di disco, la memoria cache va caricata con i nuovi dati. 3.1.4 Memoria CMOS • • • • • • • 3.2 attribuzione delle caratteristiche dei dischi utilizzati; assegnazione del numero e dei tipi dei driver per floppy presenti; configurazione dei dispositivi di boot; impostazioni del modo di operare della porta parallela; abilitazione o meno di alcuni test da effettuare all’avvio; operazioni sulla configurazione della memoria; altre funzioni particolari. Caratteristiche delle memorie © RCS LIBRI EDUCATION SPA È una memoria realizzata in tecnologia C-MOS (Complementary Metal Oxide Semiconductor), quindi a basso assorbimento di corrente, mantenuta sempre in funzione, anche con il PC spento, per mezzo di una piccola batteria. Su di essa è memorizzata la configurazione del sistema. Nei nuovi PC è possibile accedervi lanciando il programma di setup, contenuto anch’esso nella ROM-BIOS, all’avvio del sistema. Tra le funzioni fondamentali del programma di setup, si evidenziano le seguenti: Una memoria è un dispositivo elettronico in grado di memorizzare dati in binario, per poi fornirli al momento opportuno, quando richiesti. Un dispositivo elettronico, in grado di memorizzare un solo bit (zero o uno), viene definito come cella elementare di memoria. Normalmente una memoria è formata da numerose celle, che permettono la memorizzazione di grossi quantitativi di dati. Dal punto di vista elettronico una cella può essere costituita in modo diverso a seconda della tecnologia con cui si realizza il dispositivo di memoria1. In riferimento alla tecnologia costruttiva di base si possono suddividere le memorie in due grosse categorie: quelle con tecnologia bipolare e quelle con tecnologia di tipo MOS (N-MOS o CMOS). Nella figura 3.1 sono rappresentate alcune celle elementari per particolari tipi di memoria e per le tecnologie di base bipolare e MOS: A) B) C) D) cella cella cella cella Fig. 3.1 di di di di tipo PROM con tecnologia bipolare; tipo PROM con tecnologia MOS; RAM STATICA in tecnologia MOS; RAM DINAMICA in tecnologia MOS. (A) (B) ( C) ( D) 1 Per una più ampia descrizione della costituzione delle celle di memoria, vedasi il testo Elettronica - La logica di Giometti-Frascari, cap. 12, edizioni Calderini. 34 MODULO 1 I SISTEMI INFORMATICI m01ud03.qxd 30-06-2004 11:08 CELLA ELEMENTARE c1 ( 1 BIT ) Pagina 35 COLONNE c2 c3 c4 Le celle elementari di una memoria sono in genere disposte in modo da formare una matrice come è rappresentato nella figura 3.2. In tale matrice ogni singola cella è univocamente individuata da un numero ri di riga (r1, r2, r3, r4) e da un numero cj di colonna (c1, c2, c3, c4). Per accedere alle singole celle, bisogna selezionare la riga e la colonna che la individuano. La cella posta sulla terza riga e sulla seconda colonna, ad esempio, viene selezionata attivando le linee r3 c2. Con tale modo di procedere, la selezione sarebbe troppo onerosa, in termini di impiego di linee, per effettuare la scelta della singola cella. Per una memoria di sole 16 celle disposte a matrice con 4 righe e 4 colonne, occorrerebbero infatti ben otto linee, 4 per le righe e 4 per le colonne, per individuare ciascuna cella. Se invece si utilizzano due decodificatori, uno per le righe e un altro per le colonne, sempre riferendosi alla memoria con 16 celle, queste si possono individuare con solo 4 linee, come illustrato nella figura 3.3. Due di queste, poste in ingresso al decodificatore delle righe (A3 e A2), permetteranno di scegliere con i quattro codici binari diversi (002, 012, 102, 112), le quattro righe e le altre due linee (A1 e A0), permetteranno la scelta di una delle 4 colonne. Tale procedimento è sintetizzato nella tabella 3.1. cn r1 r2 RIGHE r3 r4 rm Fig. 3.2 A1 A0 DECODER COLONNE r1 A2 DECODER r2 RIGHE r3 A3 r4 c1 c2 c3 c4 Fig. 3.3 TAB. 3.1 A3 A2 Selez. riga A1 A0 Selez. colon. 0 0 0 0 0 1 0 1 1 0 1 0 1 1 r1 r2 r3 r4 1 1 c1 c2 c3 c4 Con tale procedimento se r rappresenta il numero delle linee in ingresso al decoder delle righe, e c il numero delle linee in ingresso al decoder delle colonne, il numero N di celle selezionabili è: N = 2r+c Infatti nel caso precedente essendo r = 2 e c = 2 si avrà N = 22+2 = 24 = 16. Se si considerano, complessivamente, il codice a due bit inviato al decoder delle righe e quello, sempre a due bit, inviato al decoder delle colonne, si ottiene un nuovo codice, a quattro bit, che permette di selezionare, con ognuna delle 16 combinazioni possibili, ciascuna delle celle elementari. Tali 16 combinazioni possono essere considerate gli indirizzi delle singole celle. Ognuno dei 16 indirizzi seleziona una riga ed un colonna che individuano poi la cella posta al loro incrocio. Si veda a tale proposito la tabella 3.2. 35 Unità 3 La memoria centrale del PC m01ud03.qxd 30-06-2004 11:08 Pagina 36 Si ha quindi che con codici di n bit (distribuiti tra le righe e le colonne), possono essere individuate 2n celle diverse di memoria. Si definisce capacità C di una memoria il numero di bit che possono essere memorizzati nella memoria stessa. Nelle memorie commerciali, spesso si raggruppano le celle elementari di ogni riga, in modo da formare strutture con 4 o 8 celle e a volte anche con 16, 24 o 32. In tale maniera ad ogni accesso alla memoria possono essere individuate parole di 4 o 8 bit o 16 o più bit. Le più diffuse memorie presentano quindi un’organizzazione interna di 1 bit, 4 bit o 8 o più bit. Si parla in tal caso di memorie con organizzazione in parole (word) di: TAB. 3.2 A3 A2 A1 A0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Riga Colon. r1 r1 r1 r1 r2 r2 r2 r2 r3 r3 r3 r3 r4 r4 r4 r4 c1 c2 c3 c4 c1 c2 c3 c4 c1 c2 c3 c4 c1 c2 c3 c4 n word × 1 bit n word × 4 bit n word × 8 bit dove con n si è indicato il numero di raggruppamenti di celle elementari presenti nella memoria. Nel caso di raggruppamenti a 4 o 8 bit, dovendosi selezionare gruppi, e non più singole celle, occorrono meno linee d’indirizzo per la selezione delle parole contenute nella memoria, in quanto celle elementari di ogni gruppo sono selezionate contemporaneamente. Quanto detto è chiarito nella figura 3.4, ove è presa in considerazione una matrice di celle di formato 64 × 64. La memoria in totale può memorizzare 4096 bit (64 × 64 = 4096). Se si considera la memoria con organizzazione interna di 4096 parole × 1 bit, occorrono 6 linee d’indirizzo per le righe ed altrettante per le colonne. Infatti con 6 bit si possono ottenere, attraverso i decoder, 64 combinazioni diverse (26 = 64) per le righe e 64 per le colonne. Se invece la stessa matrice di 4096 bit è organizzata in 1024 parole × 4 bit, occorrono sempre 6 linee di indirizzo da inviare al decoder delle righe, ma solo 4 linee per il decoder delle colonne. Infatti in tal caso ogni riga può essere pensata formata da 16 raggruppamenti di 4 celle elementari ognuno. E, per selezionare 16 raggruppamenti, sono necessarie 4 linee in ingresso al decoder. In realtà all’utente non interessa come siano distribuite le linee d’indirizzo, all’interno della memoria, tra le righe e le colonne, ma solo conoscere il numero totale delle linee per selezionare tutti i possibili raggruppamenti di celle all’interno della memoria stessa. A5 A4 A3 A2 A1 A0 A9 A8 A7 A6 OGNI RIGA 16 GRUPPI DI 4 CELLE DECODER COLONNE DECODER COLONNE c1 c1 c2 c3 A6 r1 A7 A8 A9 DECODER RIGHE r2 MATRICE r3 64 x 64 36 A11 4 CELLE 4 CELLE A6 4 CELLE r1 A7 A8 DECODER A9 RIGHE MATRICE 64 x 64 A10 A10 Fig. 3.4 c64 c16 r64 A11 r64 MODULO 1 I SISTEMI INFORMATICI m01ud03.qxd 30-06-2004 11:08 Pagina 37 Si definisce locazione di memoria un raggruppamento di celle elementari a cui si può accedere con un’unica combinazione delle linee d’indirizzo, in generale si può dire che, con n linee d’indirizzo, possono essere indirizzate 2n locazioni distinte di memoria. Spesso, con memorie di grossa capacità, si considerano i seguenti multipli dei bit: 1024 bit = 1 Kbit 1024 Kbit = 1 Mbit = 1048576 bit o, in caso di organizzazione ad 8 bit (1 byte): 1024 byte = 1 Kbyte 1024 Kbyte = 1 Mbyte = 1048576 byte È chiaro che una memoria con capacità di 1 Mbyte contiene al suo interno 8388608 celle elementari (1048576 × 8 = 8388608). 3.3 Classificazione delle memorie © RCS LIBRI EDUCATION SPA Altro parametro caratteristico delle memorie è il tempo di accesso, ovvero il tempo che intercorre dal momento in cui viene indirizzata una locazione di memoria a quello in cui si rende disponibile il dato all’esterno del dispositivo, in caso di lettura, o a quello necessario per depositare il dato nella locazione selezionata, in caso di scrittura. La prima classificazione che può essere effettuata con le memorie è relativa al tipo di tecnologia con cui sono realizzate le singole celle elementari. Si hanno pertanto: • memorie di tipo bipolare realizzate con transistor di tipo BJT. Tali tipi di memorie permettono tempi molto brevi per l’accesso ai dati, ma non offrono la possibilità di ottenere chip con grandi capacità di memorizzazione; • memorie con celle realizzate con transistor di tipo MOS. In base al tipo di transistore usato si distinguono in N-MOS (a canale N), C-MOS (complementari, con canale N e P). Permettono di ottenere grosse capacità di integrazione, ma sono meno veloci rispetto al tipo bipolare. Tuttavia le nuove tecnologie hanno permesso di realizzare memorie di tipo MOS sempre più veloci, e con elevatissima scala di integrazione. Pertanto tali tipi di memoria possono considerarsi attualmente i più diffusi. Una classificazione delle memorie in base alle loro caratteristiche funzionali può essere poi fatta secondo le modalità con cui si può accedere al dispositivo: si avranno pertanto memorie a sola lettura e memorie a lettura e scrittura. Memorie di lettura e lettura-scrittura sola lettura Memorie in cui è possibile effettuare la sola lettura dei dati memorizzati, senza possibilità di scrivere in esse nuove informazioni. lettura e scrittura Memorie in cui è possibile memorizzare dati e poi rileggerli senza alcuna limitazione. In base poi alla modalità con cui rimangono memorizzati i dati nelle memorie si hanno memorie volatili e non volatili. Memorie volatili e non volatili 37 volatili Memorie che perdono il loro contenuto una volta che sono disconnesse da una sorgente di alimentazione. Le RAM sono memorie volatili. non volatili Memorie che mantengono le informazioni in esse memorizzate anche quando non sono più alimentate. A tale tipo appartengono le ROM, le PROM, le EPROM, le EEPROM. Unità 3 La memoria centrale del PC m01ud03.qxd 30-06-2004 3.3.1 11:08 Pagina 38 Memorie non volatili Le memorie non volatili hanno nomi e caratteristiche diverse; esse sono le ROM, le EPROM, le EEPROM, e sono tutte memorie, come detto, a sola lettura. I vari tipi si differenziano per le caratteristiche costruttive e per il modo di programmazione, ovvero per come vengono scritti in essi i dati che poi conserveranno anche in assenza di alimentazione: • ROM (Read Only Memory): le memorie ROM sono programmate in sede di fabbricazione ponendo a livello logico alto o basso le singole celle. La loro programmazione è commissionata direttamente dall’utente secondo contenuti specifici. È evidente che i dati contenuti nelle memorie ROM, una volta fabbricate, non sono in alcun modo modificabili. Le memorie ROM sono caratterizzate da un basso costo, ma solo per produzione di grandi quantità, e hanno una buona facilità d’impiego. Tali memorie sono utilizzate per realizzare decodifiche veloci, per contenere programmi non soggetti a modifiche e in applicazioni specifiche quali la costruzione di strumenti elettronici programmabili. Sono realizzate sia in tecnologia bipolare che in quella MOS (C-MOS e N-MOS). • PROM (Programmable ROM): per superare le limitazioni delle memorie ROM, sono state introdotte le memorie PROM. Queste memorie sono, a differenza delle ROM, programmabili dall’utente ed escono dalla fabbrica con tutte le celle allo stato logico alto. Con un apposito strumento, detto programmatore di PROM, l’utente può cambiare lo stato delle singole celle bruciando alcuni collegamenti interni con appositi impulsi di tensione. La memoria PROM può essere programmata una sola volta in quanto non è possibile ripristinare i collegamenti bruciati. Le memorie PROM hanno una buona facilità d’impiego. Possono avere gli stessi campi di applicazione delle ROM. In tal caso non occorre la produzione di grossi quantitativi per abbassare il costo di produzione. • EPROM (Erasable Programmable ROM): le memorie EPROM sono memorie programmabili ma anche cancellabili, per poter essere di nuovo riprogrammate. La cancellazione è ottenuta esponendo la memoria a raggi ultravioletti di particolare lunghezza d’onda (non inferiore a 2537 A) per circa 20 minuti; a tal fine esiste sul circuito integrato una apertura o finestra protetta da un materiale trasparente ai raggi ultravioletti. Tuttavia è da aggiungere che anche raggi ultravioletti con maggiore lunghezza d’onda effettuano la cancellazione della memoria, anche se in tempi più lunghi. La permanenza dei dati in una EPROM, in genere, è garantita per una decina di anni. La programmazione delle EPROM è fatta con un programmatore, che invia impulsi di tensione sugli appositi pin del chip. Le memorie EPROM hanno un costo contenuto e buona facilità d’impiego. • EEPROM (Electrical Erasable Programmable ROM): le EEPROM sono cancellabili elettricamente senza dover far ricorso ai raggi ultravioletti. Il numero dei cicli di cancellazione è limitato a 10000 per i primi tipi prodotti, e arriva fino a 100000 per i chip delle ultime generazioni. Le EEPROM hanno avuto negli ultimi tempi una grande diffusione in quanto utilizzate per memorizzare il firmware di vari tipi di dispositivi (per esempio dei modem) per permetterne poi l’aggiornamento in circuit, ovvero senza togliere il chip di memoria dall’apparecchiatura. Sono poi utilizzate anche nei PC, sulle motherboard, per contenere la parte del sistema operativo (ROM-BIOS) residente nella macchina che provvede all’accensione, all’avvio del sistema. In tal modo è possibile aggiornare facilmente il BIOS senza aprire il computer. Altra applicazione recente delle EEPROM è legata alle nuove tecnologie costruttive dei microcontroller (➜ Modulo 11). In questi dispositivi essa costituisce a volte sia la memoria di programma che quella dati o solo quella per i dati. 3.3.2 Memorie volatili Le memorie RAM (Random Access Memory) volatili possono essere scritte e lette in continuazione. Quando viene tolta l’alimentazione le RAM perdono il loro contenuto. 38 MODULO 1 I SISTEMI INFORMATICI m01ud03.qxd 30-06-2004 11:08 Pagina 39 Tipi di RAM RAM statiche o SRAM Realizzate sia in tecnologia bipolare che in tecnologia MOS. Mantengono le informazioni in esse memorizzate, fino a quando rimangono connesse ad una sorgente di alimentazione, senza necessità di particolari operazioni. L’elemento di base per la memorizzazione per questo tipo di memorie è costituito da un flip-flop. RAM dinamiche o DRAM Realizzate in tecnologia MOS. Necessitano di un ripristino, ad intervalli di tempo prefissati, dei dati in esse memorizzati. Le memorie RAM dinamiche offrono la possibilità di integrare su un unico chip un elevatissimo numero di celle elementari. • SRAM (Static RAM): le memorie SRAM sono costruite attualmente quasi esclusivamente in tecnologia MOS e sono caratterizzate da velocità anche molto elevate, con tempi di accesso di poche decine di nanosecondi; la loro capacità è inferiore a quella delle memorie dinamiche. L’impiego delle SRAM risulta molto facilitato e trovano applicazione nei sistemi di memoria di tipo cache (➜ Modulo 2, unità 1), ovvero memorie di transito interposte tra microprocessore e memorie dinamiche. • DRAM (Dynamic RAM): le DRAM sono costruite in tecnologia MOS. Il funzionamento delle DRAM si basa sullo stato di carica di un condensatore, collegato con il transistore di tipo MOS, che costituisce la singola cella (vedere fig. 3.1D). Una tensione ai capi del condensatore è interpretata come livello logico alto, mentre una tensione nulla è interpretata come livello logico basso. L’informazione memorizzata sul condensatore tende tuttavia a degradarsi in un tempo abbastanza breve a causa della scarica del condensatore dovuta alle correnti di fuga per le impedenze alte ma non infinite del transistore MOS. Per mantenere l’informazione delle memorie dinamiche si ricorre ad appositi circuiti detti di rinfresco. Il rinfresco delle celle di memoria si realizza con una successione di cicli di lettura che interessano via via tutte le celle della memoria e con il contemporaneo ripristino dei valori letti. L’operazione di rinfresco deve svolgersi in un tempo massimo, variabile a seconda del tipo di DRAM, entro il quale devono essere ripristinate le informazioni immagazzinate pena la perdita delle stesse. L’operazione di rinfresco può essere eseguita direttamente da appositi segnali della CPU o, nei casi più complessi, attraverso appositi circuiti supplementari. Nelle nuove memorie DRAM sono previsti anche circuiti interni al dispositivo per l’auto-refresh. Le memorie DRAM sono caratterizzate da valori di capacità molto superiori a quelle delle SRAM, hanno buona velocità e sono poi caratterizzate da basso consumo. Le memorie DRAM sono utilizzate per creare grossi banchi di memoria nei personal computer e in stazioni per la gestione di elaborazioni grafiche. 3.4 Approfondimenti sulle memorie La struttura interna delle memorie dinamiche è realizzata come una matrice di celle elementari e l’accesso alle singole ____ le righe e le colonne con spe____ celle è fatto selezionando cifici segnali denominati RAS (Row Address Strobe) e CAS (Column Address Strobe) che permettono di selezionare le singole righe e le singole colonne della matrice di celle costituenti la memoria, quando sulle linee d’indirizzo viene posto l’indirizzo di una riga o quello di una colonna. In questo modo, le linee d’indirizzo che sono collegate al chip ____ ____ contengono o l’indirizzo di una riga o quello di una colonna. I segnali CAS e RAS indicano al chip di memoria rispettivamente se l’indirizzo è quello di una linea o di una colonna. Solo dopo che sul chip sono poste successivamente tutte e due le parti d’indirizzo relative alla riga e alla colonna, il bit (dato) contenuto nella cella indirizzata viene posto sulla linea dati collegata con la cella indirizzata. 39 Unità 3 La memoria centrale del PC 30-06-2004 11:08 Pagina 40 T1 T2 T3 T4 T5 T6 T7 110 ns min RAS RIGA COLONNA CAS OE DATO tcac Fig. 3.5 trac 60 ns La tecnologia costruttiva e le modalità di funzionamento e quindi i metodi d’interfacciamento delle memorie dinamiche alla CPU hanno seguito nel tempo notevoli variazioni. Si esaminano qui brevemente le caratteristiche dei vari tipi di RAM dinamiche. Un tipico ciclo di lettura di un dato singolo per una memoria DRAM con tempo di accesso di 60 ns e con frequenza del clock del BUS di 66 MHz è riportato in figura 3.5. Come si vede dal diagramma delle temporizzazioni: ____ – con la discesa del segnale ____ RAS deve essere presente sul bus indirizzi l’indirizzo di una riga e con la discesa CAS___ quello di una colonna; – con il fronte di salita di OE avviene ____ ____ la lettura del dato. I tempi di accesso al dato relativamente ai segnali CAS e RAS sono detti tcac e__trac indicano la disponibilità del __ e__ __ dato dal momento in cui diventano attivi i segnali CAS e RAS; – alla lettura del dato segue un ciclo di refresh della memoria. © RCS LIBRI EDUCATION SPA m01ud03.qxd Come si vede dalla temporizzazione, per poter accedere ad un nuovo dato prima che ____ possa essere riportato basso il segnale RAS debbono trascorrere almeno 110 ns (più di 7 cicli di clock del bus). Le modalità esposte per la lettura e scrittura di dati nelle memorie dinamiche con accesso di volta in volta alla riga e poi alla colonna, può essere migliorato utilizzando chip di memoria che supportano modalità diverse per l’accesso ai dati. Si utilizza normalmente un trasferimento di tipo burst (a raffica) in cui i dati vengono trasferiti una serie per volta, leggendo locazioni di memoria consecutive. In genere i dati letti dalla DRAM sono trasferiti nella cache. Normalmente in un ciclo di burst (burst cycle) vengono letti dalla memoria DRAM 4 dati consecutivi per volta. La grandezza dei dati letti (2, 4, 8 byte) dipende dal numero di linee del bus DATI. Per esempio: con un processore con bus dati da 32 bit, debbono essere effettuate in un ciclo di burst 4 letture consecutive trasferendo in ognuna di esse 4 byte (32 bit quante sono le linee del bus dati). Questi 4 dati da 32 bit sono posti in una linea della memoria cache. Per eseguire un ciclo di burst occorre un certo numero di cicli di clock del bus. Il bus ha un clock, BCK, con frequenza inferiore a quello della CPU. Nei PC esso può avere la frequenza di 66, 100 o 133 MHz. Il numero totale di cicli di clock che occorrono per effettuare la lettura dei 4 dati dipende quindi sia dalla frequenza del clock del bus sia dal tipo di memoria utilizzato. La tecnologia costruttiva delle DRAM ha subito notevoli variazioni nel corso degli anni per tenere il passo con le CPU sempre più veloci: si è così passati dalle DRAM tradizionali alle DRAM FPM (Fast Page Mode), alle EDO (Extended Data Out) e BEDO (Burst EDO). Anche per i sistemi grafici sono state realizzate DRAM di tipo specifico: SGRAM (Synchronous Graphics RAM), VRAM (Video RAM), WRAM (Window RAM): • SDRAM (Synchronous DRAM). La struttura interna di queste memorie è simile alle DRAM tradizionali. In esse è stato introdotto un registro per memorizzare l’indiriz40 MODULO 1 I SISTEMI INFORMATICI m01ud03.qxd 30-06-2004 11:08 Pagina 41 zo di riga e di colonna; in tale maniera la CPU, una volta fornito l’indirizzo, può seguitare a svolgere i suoi compiti in attesa che la memoria fornisca i dati indirizzati. Per queste memorie vengono forniti i tempi di ciclo (invece dei tempi di accesso) per specificare la frequenza del bus del PC con cui possono lavorare. Per le SDRAM si hanno le PC66 con tempi di ciclo di 15 ns e frequenza del bus a 66 MHz, le PC100 con tempi di ciclo di 10 ns e frequenza del bus a 100 MHz, e infine le PC133 con tempi di ciclo di 7,5 ns e frequenza del bus a 133 MHz. Le memorie SDRAM permettono di sincronizzare le loro temporizzazioni con quelle della CPU. Con una memoria con frequenza del clock del bus a 66 MHz, dopo l’accesso al primo dato (che avviene in 5 cicli di clock) la lettura dei dati successivi avviene con un solo ciclo di clock (5-1-1-1). Le memorie SDRAM internamente sono strutturate in banchi e ciascun banco poi è organizzato in righe e colonne come gli altri tipi di DRAM. Il modo di operare di una SDRAM deve essere preventivamente programmato procedendo ad una inizializzazione del dispositivo. Le inizializzazioni possibili sono: 1. Lunghezza della serie dei dati da leggere (burst length) programmabile in genere in 1, 2, 4, 8 o tutta la pagina. Quindi la lunghezza del burst indica il numero massimo delle colonne a cui si può accedere con una data operazione di lettura o scrittura in memoria. 2. Modalità con cui effettuare la lettura (burst type), in genere del tipo sequenziale o interleaved ____ (ovvero con ____possibilità di scambio tra i vari banchi). 3. Latenza del CAS (latency CAS ) ovvero il numero di cicli di clock di ritardo con cui dopo un comando di lettura di un dato esso è reso disponibile. 4. Modalità con cui eseguire le operazioni di lettura o scrittura (burst mode), ovvero se si deve accedere ad una singola locazione oppure se si deve operare attraverso la modalità burst length programmata (serie di colonne da leggere). CAS LATENCY = 2 COMMAND ACTIVE READ INDIRIZZO RIGA COLONNA DATO 1 DATO 2 Fig. 3.6 DATO 3 DATO 4 BURST LENGTH = 4 Nella figura 3.6 è riprodotto un ciclo di lettura di tipo burst in cui è programmato ____ un burst length = 4 (lettura di 4 colonne) e un latency CAS = 2 (2 cicli di ritardo prima della disponibilità del primo dato). • SDRAM DDR (SDRAM Double Data Rate). Lavorano in modo simile alle SDRAM tradizionali ma per il trasferimento delle informazioni utilizzano sia il fronte di salita che quello di discesa del clock. I moduli disponibili sono PC1600 (per frequenza di bus a 200 MHz), PC2100 (per 266 MHz), PC2700 (per 333 MHz) e PC3200 (per 400 MHz). • DR DRAM (Direct Rambus™ DRAM). In queste memorie la tecnologia di trasferimento dei dati è diversa. Nelle DDR si utilizza un bus di trasferimento a 64 bit con frequenza pari a quella specifica del modulo. Nelle DR DRAM invece si ha un bus di trasferimento a 16 bit con frequenza di 400 MHz (per il modulo PC800), frequenza che diviene 800 MHz se si considera che vengono utilizzati ambedue i fronti del clock. 41 Unità 3 La memoria centrale del PC m01ud04.qxd 30-06-2004 11:11 Pagina 42 unità 4. Le porte di comunicazione del PC 4.1 Le porte di comunicazione del PC Il computer può essere collegato verso alcune periferiche per mezzo di porte standard. Generalmente, come affermato in precedenza, nei nuovi sistemi le interfacce relative alle varie porte di comunicazione sono integrate o in apposito chip presente sulla piastra madre o direttamente nei chipset. Normalmente sono presenti in un PC almeno una porta parallela per la stampante, una o più spesso due porte per le comunicazioni seriali, e due o più porte USB. 4.1.1 La porta parallela La porta parallela, denominata comunemente Centronics, mette in comunicazione il PC con la periferica stampante, utilizzata sia per la scrittura su carta di testi che per prestazioni di grafica. Essa è accessibile all’esterno del computer attraverso un connettore del tipo D a vaschetta a 25 poli femmina. Sono disponibili 8 linee per i dati, 9 per segnali, di ingresso o di uscita, di vario tipo, che permettono il colloquio tra la stampante e il computer, e più linee, collegate a massa. Nei PC è possibile utilizzare fino a tre porte parallele. Ad ognuna di esse è riservato un insieme di tre indirizzi contigui nel campo dell’indirizzamento delle periferiche I/O (input/output) del computer. L’indirizzo base è riservato all’output dei dati verso la stampante, il successivo per l’input dei segnali di stato provenienti dalla stampante e diretti verso il PC, ed infine, il terzo, per alcuni segnali di controllo diretti alla stampante: – la porta primaria, definita anche LPT1, ha come indirizzo base 378h (esadecimale) o 888 (decimale); – la porta LPT2 ha l’indirizzo base 278h (632 decimale); – la porta LPT3 ha l’indirizzo 3bch (956 decimale). Alla porta LPT1 è riservato l’interrupt IRQ7, alla LPT2 l’interrupt IRQ5 (dal PC AT in poi). Non è previsto un interrupt specifico per la LPT3. Nei PC di più recente generazione la porta parallela può essere abilitata, per mezzo del software (in genere attraverso il BIOS), per ottenere modalità diverse di funzionamento. Con lo standard IEEE 1284-1994 sono stati definiti cinque modi diversi per il trasferimento dati dalla porta parallela. Essi sono: • Modalità standard (o Centronics o Compatibility mode), denominata SPP (Standard Printer Port). In tale modalità si ha trasferimento con le 8 linee dei dati D0-D7 solamente dal PC alla periferica. • Trasferimento Nibble Mode. I dati sono trasferiti in modo diretto dal PC alla periferica usando le otto linee dei dati D0-D7. Sono utilizzate invece 4 linee di stato (BUSY, PE, SE, ER) per trasferire i dati dalla periferica al computer. La linea di stato ACK è usata inoltre dalla periferica per comunicare al PC che è pronto un dato da ricevere. • Trasferimento Byte Mode. Rappresenta un metodo di trasferimento dati bidirezionale. Le 8 linee dei dati D0-D7 possono trasferire i dati sia dal PC alla periferica che in 42 MODULO 1 I SISTEMI INFORMATICI 30-06-2004 11:11 Pagina 43 modo inverso. Per il trasferimento dati viene implementato un protocollo, utilizzando alcune delle linee di controllo e di stato, che permette uno scambio ordinato di dati tra PC e periferica. • Trasferimento bidirezionale EPP (Enhanced Parallel Port). Le 8 linee dei dati D0-D7 possono trasferire i dati sia dal PC alla periferica che in modo inverso. La modalità EPP permette un trasferimento dati ad alta velocità e può essere utilizzata per l’acquisizione dati e da periferiche come dischi rigidi, CD-ROM, unità a dischi removibili e anche per il trasferimento di dati tra due PC. • Trasferimento bidirezionale ECP (Extended Capabilitie Port) anche in questo caso le 8 linee dei dati D0-D7 possono trasferire i dati sia dal PC alla periferica che in modo inverso. La modalità ECP è utilizzata soprattutto dalle moderne stampanti e dagli scanner. Nello standard IEEE 1248-1994 sono definite le caratteristiche elettriche e meccaniche e il modo di operare per le cinque modalità di funzionamento previste (SSP, nibble mode, byte mode, EPP e ECP). Nella tabella 4.1 sono riportati i segnali presenti sul connettore della parallela con riferimento alla modalità SPP (i nomi dei segnali cambiano nelle modalità nibble mode, byte mode, EPP e ECP). TAB. 4.1 Pin Segnale SSP Bit In Out Registro 1 D0 I/O CONTROL 2 STROBE D0 OUT DATA 3 D1 OUT DATA 4 D2 OUT DATA 5 D2 OUT DATA 6 D4 OUT DATA 7 D5 OUT DATA 8 D6 OUT DATA Indirizzo LPT1 LPT2 37Ah 27Ah 378h 278h 9 D7 OUT DATA 10 D6 IN STATUS 379h 279h 11 ACK BUSY D7 IN STATUS 379h 279h 12 Paper End D5 IN STATUS 379h 279h 13 Select D4 IN STATUS 379h 279h 14 AutoLinefeed D1 I/O CONTROL 37Ah 27Ah 15 Error Inizialize D3 IN STATUS 379h 279h D2 I/O CONTROL 37Ah 27Ah I/O CONTROL 37Ah 27Ah 16 17 18-25 SelectIn Ground D3 © RCS LIBRI EDUCATION SPA m01ud04.qxd GND Nota: le linee con casella grigia sono invertite via hardware all’interno del PC. Quelle sopralineate sono attive a livello basso. Si definisce indirizzo base per LPT1 378h e per LPT2 278h. Quindi per la LPT1 il registro di stato si trova all’indirizzo base + 1 e quello di controllo all’indirizzo base + 2. Due delle linee del registro di controllo, non riportate nella tabella 4.1, sono utilizzate per scopi particolari come indicato nella tabella 4.2. 43 Unità 4 Le porte di comunicazione del PC m01ud04.qxd 30-06-2004 11:11 Pagina 44 TAB. 4.2 Indirizzo 37Ah (LPT1) 37Ah (LPT1) Bit Funzione D5 D4 , D5 = H abilita funzionamento bidirezionale sulle linee dati. D4 = H abilita interrupt. La richiesta si effettua attraverso la linea ACK. Nota: l’abilitazione del funzionamento bidirezionale è valida solo per quei sistemi in cui è implementata tale funzione. 4.1.2 Le porte seriali Nei PC è prevista la possibilità di implementare fino a quattro porte seriali denominate comunemente COM1, COM2, COM3 e COM4. Ogni porta seriale nello spazio indirizzabile di I/O occupa una serie di 8 indirizzi contigui e predeterminati. Questi otto indirizzi sono poi diversi per ognuna delle COMn installate. – Alla COM1 sono riservati gli indirizzi 3F8h ÷ 3FFh (1016 ÷1023 in decimale) e la linea di richiesta d’interrupt IRQ4 del BUS del PC; – alla COM2 gli indirizzi 2F8H ÷ 2FFH (760 ÷ 767 in decimale) e la linea d’interrupt IRQ3. Le porte COM1 e COM2 sono accessibili all’esterno del computer attraverso connettori del tipo D a vaschetta a 25 o a 9 poli maschio. I livelli dei segnali di uscita non sono TTL compatibili ma seguono lo standard RS-232/C. Nel PC si ha normalmente per i segnali d’uscita una tensione +12 V per il livello basso e −12 V per quello alto (logica negativa). La velocità massima di trasferimento dati per una porta seriale (per i nuovi PC) è pari a 115200 bit/s (bit al secondo). Nei vecchi sistemi si raggiungevano i 19200 bit/s. Ad una delle porte seriali viene collegato normalmente il modem utilizzato per il collegamento del computer con la linea telefonica. Altre periferiche che vengono connesse alle porte seriali sono il mouse, il plotter (strumento per riproduzione di disegni), la tavoletta grafica. Nella tabella 4.3 sono riportati i segnali presenti sul connettore per le porte seriali. Questi segnali sono presenti su connettori a vaschetta tipo D che possono essere a 9 poli o a 25 poli (maschi). Non c’è corrispondenza tra il numero di pin ed i segnali nei due casi. TAB. 4.3 Descrizione 9 poli I/O 2 3 OUT Sigla 25 poli Terra di protezione Protective Ground FG 1 Dati trasmessi Trasmitted Data TD Dati ricevuti Received Data RD 3 2 IN Richiesta a trasmettere Request To Send RTS 4 7 OUT Pronto a trasmettere Clear To Send CTS 5 8 IN Modem pronto Data Set Ready DSR 6 6 IN Massa dei segnali Signal Ground SG 7 5 Rilevazione portante dei dati Data Carrier Detect DCD 8 1 IN Terminale dati pronto Data Terminal Ready DTR 20 4 OUT Indicatore di chiamata Ring Indicator RI 22 9 IN Si ricorda che i segnali presenti sulle porte seriali non sono TTL compatibili. Uno studio più approfondito per l’utilizzazione della porta seriale verrà fatto nel ➜ Modulo 14. 44 MODULO 1 I SISTEMI INFORMATICI m01ud04.qxd 30-06-2004 4.1.3 11:11 Pagina 45 La porta USB La porta USB (Universal Serial Bus) è una porta di tipo seriale collegata alla periferica con un cavo a quattro poli. Due dei conduttori del cavo portano fuori del computer una tensione di alimentazione (+5 V) mentre altri due servono per il trasferimento dati e lavorano in modo differenziale. Nella figura 4.1 è rappresentato schematicamente un connettore USB. Normalmente sul PC sono implementati due o più connettori ai quali possono essere connesse altrettante periferiche di tipo USB. Utilizzando i connettori del PC è possibile fornire anche l’alimentazione alle periferiche connesse. 4 3 2 1 1 2 3 4 GND DATI ( + ) DATI ( - ) +5 V Fig. 4.1 4.2 Approfondimento sulle funzioni della porta parallela 4.2.1 Modalità Standard (SPP) In questa modalità esiste un protocollo di comunicazione per lo scambio dei dati. Le temporizzazioni sono riportate in figura 4.2: 1. Il PC legge la linea BUSY per vedere se la stampante è pronta (BUSY a livello basso). 2. Il PC pone il dato sulle linee D0-D7 e abbassa la linea STROBE . 3. Il PC rialza la linea STROBE . Normalmente la stamPC → STAMPANTE pante legge il dato con il fronte di salita di questo STAMPANTE → PC segnale. STAMPANTE → PC 4. La stampante riabbassa la linea BUSY e segnala con PC → STAMPANTE un impulso su ACK l’accoglimento del dato. STROBE BUSY ACK DATO Fig. 4.2 La velocità del trasferimento dati nella modalità SPP è compresa tra i 50 e 100 Kbyte/s. 4.2.2 Modalità Nibble In questa modalità sono utilizzate quattro delle cinque linee di stato per inviare al PC un semi-byte per volta. Le linee utilizzate per il trasferimento dati in questa modalità sono indicate nella tabella 4.4. TAB. 4.4 Segnale SPP NIBBLE Registro Bit AutoLinefeed HostBusy CONTROL D1 SelectIn 1284Active CONTROL D3 ACK PtrClk Funzione STATUS D6 BUSY STATUS D7 Trasferisce bit D7 o D3 Paper End STATUS D5 Trasferisce bit D6 o D2 Select STATUS D4 Trasferisce bit D5 o D1 Error STATUS D3 Trasferisce bit D4 o D0 Nota: le linee con casella scura sono invertite via hardware. 45 Unità 4 Le porte di comunicazione del PC m01ud04.qxd 30-06-2004 11:11 Q HostBusy Pagina 46 T S PC → Perif. U Perif. → PC PtrClk Dato D0 - D3 R Fig. 4.3 3. 4. 5. 6. Perif. → PC D4 - D7 Le altre linee del registro control non sono usate. Nella figura 4.3 sono rappresentate le temporizzazioni per la lettura di un byte. Le operazioni che vengono compiute per l’acquisizione di un byte sono: 1. Il PC segnala la disponibilità ad accettare il dato ponendo bassa la linea HostBusy ( AutoLinefeed ). 2. La periferica pone il byte basso sulle linee di stato. La periferica comunica che sulle linee c’è un dato valido ponendo basso PtrClk ( ACK ). Il PC segnala che ha ricevuto il dato ponendo alta la linea HostBusy. La periferica riporta alta la linea PtrClk. Si ripetono di nuovo le temporizzazioni per il nuovo semi-byte. 4.2.3 Byte Mode © RCS LIBRI EDUCATION SPA La velocità di trasferimento dati nella modalità Nibble non supera i 50 Kbyte/s. Per i PC che sono dotati dell’hardware adatto è possibile effettuare uno scambio di dati bidirezionale con le otto linee dati. I segnali della porta usati in byte mode sono descritti nella tabella 4.5. TAB. 4.5 Segnale SPP BYTE MODE STROBE HostClk Registro Bit Funzione CONTROL D0 Indica che il byte è stato ricevuto AutoLinefeed HostBusy CONTROL D1 Indica che il PC è pronto per ricevere il byte SelectIn 1284Active CONTROL D3 Alto quando il PC è in modalità 1284 CONTROL D2 Non usata STATUS D6 Alto indica dato valido sulle linee dati Inizialize ACK PtrClk BUSY PtrBusy STATUS D7 Segnala lo stato di occupato sul canale diretto Paper End AckDataReq STATUS D5 Segue DataAvail STATUS D4 Non usata STATUS D3 Basso indica che è disponibile un dato per PC Select Error DataAvail Nota: le linee con casella scura sono invertite via hardware. Il protocollo tra PC e periferica è riportato nella figura 4.4. Le azioni svolte per lo scambio di un dato in modo inverso sono: HostBusy Q PtrClk S R Dato HostClk T D0 - D7 U PC → Perif. Perif. → PC Perif. → PC PC → Perif. 1. il PC pone bassa la linea HostBusy per indicare che è pronto a ricevere un dato; 2. la periferica pone il dato sulle linee dati; 3. la periferica pone PtrClk basso per indicare che sulle linee c’è un dato valido; 4. il PC pone alto HostBusy per indicare che ha accettato il dato e non è pronto per riceverne un altro; 5. la periferica riporta alto PtrClk; 6. il PC invia un impulso basso con HostClk come riconoscimento per la periferica. Fig. 4.4 46 MODULO 1 I SISTEMI INFORMATICI m01ud04.qxd 30-06-2004 4.2.4 11:11 Pagina 47 Modalità EPP e ECP Nelle modalità EPP e ECP si ha un notevole incremento della velocità di trasferimento dati in quanto il colloquio tra PC e periferica avviene a livello hardware e non per mezzo di un protocollo software. L’invio di un byte dal PC alla periferica avviene con una semplice istruzione di output, mentre il trasferimento del byte dalla periferica al PC con un’istruzione di input. Occorre però hardware aggiuntivo per operare in questa modalità. Nella modalità EPP il protocollo di comunicazione prevede quattro tipi di trasferimento dati: 1. 2. 3. 4. ciclo ciclo ciclo ciclo di di di di scrittura dati; lettura dati; scrittura di un indirizzo; lettura di un indirizzo. I cicli di lettura e scrittura dati sono utilizzati per lo scambio di dati tra PC e periferica, mentre i cicli lettura e scrittura d’indirizzi servono per scambiare informazioni di controllo, selezione di dispositivi diversi connessi sulla stessa porta o invio di comandi. I segnali utilizzati nella modalità EPP sono descritti nella tabella 4.6. TAB. 4.6 Segnale SPP EPP STROBE Write Bit In Out Registro D0 OUT CONTROL AutoLinefeed DataStrobe D1 OUT CONTROL SelectIn AddrStrobe D3 OUT CONTROL Inizialize Reset D2 OUT CONTROL ACK Intr D6 IN STATUS BUSY Wait D7 IN STATUS Paper End Non definito D5 IN STATUS Select Non definito D4 IN STATUS Error Non definito D3 IN STATUS Nota: le linee con casella scura sono invertite via hardware. Nella modalità EPP si può raggiungere una velocità di trasferimento dati compresa tra 500 Kbyte/s e 2 Mbyte/s. Quando il PC lavora in modalità EPP ai registri presenti nella modalità SPP ne sono aggiunti degli altri come riportato nella tabella 4.7. TAB. 4.7 Registri 47 Indirizzi DATI (SPP) BASE + 0 LPT1 LPT2 378h 278h STATO (SPP) BASE + 1 379h 279h CONTROLLO (SPP) BASE + 2 37Ah 27Ah INDIRIZZI (EPP) BASE + 3 37Bh 27Bh DATI (EPP) BASE + 4 37Ch 27Ch Unità 4 Le porte di comunicazione del PC m01ud04.qxd 30-06-2004 11:11 Pagina 48 Per eseguire un ciclo di scrittura dati su periferica si deve effettuare semplicemente un’istruzione di out su periferica scrivendo il dato che deve essere posto in uscita sul registro con indirizzo BASE+4 (37Ch). Per leggere invece un dato dalla periferica deve essere effettuata un’istruzione di input da periferica con indirizzo BASE+4 (37Ch). Quindi effettuando un out o un input su periferica si attiva automaticamente un ciclo di scrittura o lettura di tipo EPP. Le stesse operazioni possono effettuarsi per inviare o ricevere indirizzi. In questo caso deve essere usato però l’indirizzo BASE+3 (37Bh). Protocollo ciclo di scrittura dati Un ciclo di scrittura dati dura esattamente come un ciclo del BUS del PC per la scrittura dati su periferica. Le fasi del protocollo sono le seguenti: 1. il programma scrive il dato nel registro BASE+4; 2. il PC pone bassa la linea Write per indicare che è in corso un’operazione di scrittura su periferica; 3. il dato è posto sulle linee dati; 4. il PC controlla la linea Wait, se bassa pone basso Data Strobe; 5. la periferica pone alta la linea Wait per segnalare al PC l’accoglimento del dato (fine del ciclo); 6. il PC rialza la linea Data Strobe. Protocollo ciclo di lettura dati Un ciclo di lettura dati dura esattamente come un ciclo del BUS del PC per la lettura di un dato da una periferica. Le fasi del protocollo sono le seguenti: 1. il programma esegue un’istruzione di input da periferica per leggere il registro BASE+4; 2. il PC pone alta la linea Write per indicare che è in corso un’operazione di lettura da periferica; 3. il PC controlla la linea Wait e se bassa pone basso Data Strobe; 4. la periferica pone il dato sulle linee D0-D7 e pone alta la linea Wait per segnalare al PC la disponibilità del dato; 5. il dato è letto dalle linee D0-D7; 6. il PC rialza la linea Data Strobe ed il ciclo di lettura è terminato. Nella figura 4.5 sono riportati i cicli di scrittura e lettura dati. Come è possibile osservare da quanto esposto precedentemente, la gestione delle linee per il controllo del trasferimento dati è affidata ad hardware aggiuntivo sia a livello di PC sia a livello di periferica. Q Write Data Strobe Q S U T Wait Dato R D0 - D7 V PC → Perif. Write PC → Perif. Data Strobe Perif. → PC Wait PC → Perif. Dato R S U T D0 - D7 PC → Perif. PC → Perif. Perif. → PC Perif. → PC Fig. 4.5 48 MODULO 1 I SISTEMI INFORMATICI apertuta_m02.qxd 30-06-2004 11:12 Pagina 49 UNITÀ 1. Architettura software di un elaboratore UNITÀ 2. I sistemi operativi PREREQUISITI © RCS LIBRI EDUCATION SPA Modulo 2. Il software del PC Possedere le informazioni di base sull’hardwa- re di un elaboratore Avere la conoscenza di base della numerazione binaria ed esadecimale Sapere adoperare in modo corretto la tastiera, il mouse e le unità di memorizzazione di massa Le nozioni su Windows XP, illustrate nell’unità 2, presuppongono una conoscenza preliminare dei sistemi operativi precedenti con Interfaccia Grafica (Windows 95/98) o le nozioni di base di Windows XP stesso OBIETTIVI Acquisire le informazioni di base sui file system e sulle partizioni del disco rigido Conoscere i concetti fondamentali relativi all’architettura software di un elaboratore ed in particolare quelli inerenti le funzioni svolte dal BIOS, dal Sistema Operativo e dal software applicativo Conoscere gli aspetti più significativi di un sistema operativo con interfaccia grafica e saperlo utilizzare opportunamente m02ud01.qxd 30-06-2004 11:13 Pagina 50 unità 1. Architettura software di un elaboratore Un elaboratore, essendo un sistema programmabile, per poter funzionare ha bisogno del software, ovvero di programmi che ne permettano prima l’avvio all’atto dell’accensione (BIOS), e che poi, siano in grado di utilizzare la macchina, in modo appropriato, per ottenere le volute elaborazioni. Si può fare una prima classificazione del software dividendolo in software di sistema e software applicativo. • Il software di sistema che ha il compito di effettuare il collegamento tra i programmi applicativi e l’hardware del computer, può essere suddiviso in: 1. ROM BIOS memorizzato su una memoria non volatile (EEPROM) inserita sulla piastra madre; 2. Sistema Operativo vero e proprio presente invece su un disco (in genere il disco fisso C: o, a volte, altro supporto). Nel momento della messa in funzione del computer, il ROM BIOS provvede a tutte le funzioni necessarie per un corretto avvio del sistema e poi al caricamento del sistema operativo dal disco. Il sistema operativo poi presiede a tutte le fondamentali operazioni che riguardano il trattamento dei file su disco, la gestione del video, della tastiera, della stampante e delle altre periferiche presenti nel sistema. • Il software applicativo è costituito invece dai linguaggi di programmazione e da particolari programmi applicativi come per esempio gli editori di testo o i fogli elettronici o i data base o altri tipi di programmi necessari per svolgere particolari elaborazioni. Il software applicativo è quindi costituito dai programmi utilizzati sia per la programmazione di base (linguaggi di programmazione), che per lo svolgimento di particolari compiti di diversa natura. Esempi di software applicativo, oltre ai linguaggi di programmazione, sono i vari programmi noti col nome di Word processor che permettono di scrivere, correggere e archiviare testi, i data base specifici per la creazione e gestione di archivi, i fogli elettronici che permettono di manipolare tabelle di dati per ottenere grafici di varia natura, risolvere equazioni e svolgere altre funzioni statistiche e matematiche, programmi di grafica adoperati per il disegno tecnico o per il fotoritocco, editori di testi multimediali per creare testi che possono richiamare immagini, filmati, suoni e che hanno una struttura per la lettura non sequenziale. Esempi di linguaggi di programmazione sono: BASIC, PASCAL, C, C++, VISUAL BASIC, C#, VISUAL C++, DELPHI, JAVA, C++ BUILDER ed altri. 1.1 Le partizioni del disco rigido I moderni dischi rigidi in cui sono memorizzati sia il sistema operativo che i vari tipi di programmi e i dati, hanno ormai raggiunto capacità di memorizzazione molto elevate e pertanto spesso è necessario procedere alla loro suddivisione in unità con capacità di memorizzazione più piccole, dette partizioni. I tipi di partizioni possibili sono: • Partizione primaria. Su un disco non possono essere create più di quattro partizioni primarie. Ogni partizione primaria può eventualmente essere formattata in modo diverso dalle altre per contenere un determinato sistema operativo. Su un disco, se esistono più partizioni primarie, ne può essere attiva una sola per volta; il sistema 50 MODULO 2 IL SOFTWARE DEL PC m02ud01.qxd 30-06-2004 11:13 Pagina 51 operativo presente sulla partizione attiva è quello che viene avviato. Le altre partizioni possono essere nascoste (ovvero rese non visibili dal sistema operativo avviato) e pertanto i dati presenti su di esse non sono accessibili. È possibile anche rendere visibili le altre partizioni, fermo restando il fatto che una sola deve essere quella attiva, in modo da rendere accessibili i dati presenti su di esse. • Partizione estesa. Una delle quattro partizioni primarie può divenire partizione estesa suddividendola in partizioni logiche (senza limite di numero). • Partizione logica. Le partizioni logiche sono le suddivisioni di una partizione estesa. Le partizioni logiche sono visibili tutte contemporaneamente. Alcuni sistemi operativi (come MS-DOS, WINDOWS 95/98) possono essere avviati solamente da una partizione primaria (attiva) presente sul primo disco rigido. La creazione e manutenzione delle partizioni può essere eseguita (in modo limitato) con il comando FDISK del DOS o con programmi specifici (per esempio Partition Magic o Ranish Partition Manager). Dopo la creazione di una partizione questa deve essere formattata in modo logico in base al file system relativo al sistema operativo che dovrà essere installato in essa. Il sistema operativo Windows 2000 permette di effettuare con proprie utilità, la formattazione delle partizioni presenti sul disco. Anche il sistema operativo LINUX ha una sua utility di formattazione. Si ricordi che la formattazione di una partizione distrugge tutti i dati e i programmi in essa memorizzati. 1.1.1 Il file system Il file system rappresenta la modalità con cui un sistema operativo organizza i file sul disco rigido. Il file system tiene conto dei nomi delle directory e dei nomi dei file, della allocazione dei file nei diversi cluster (per la definizione di cluster ➜ Modulo 1, unità 2, § 2.6.3 Hard disk), e dello spazio occupato sul disco. Alcuni dei principali file system sono: • FAT (File Allocation Table). È il file system proprio del DOS e di Windows 3.x e può essere utilizzato anche da Windows 95/98. Usa tabelle di allocazione file (FAT) a 16 bit. I file vengono memorizzati in cluster che costituiscono un raggruppamento di settori. La dimensione dei cluster è legata alle dimensioni del disco (o della partizione). • FAT32 (FAT a 32 bit). È il file system di Windows 95/98/ME. Usa tabelle di allocazione file (FAT) a 32 bit. • NTFS (New Tecnology File System). È il file system proprio di Windows NT e di Windows 2000 e di Windows XP. Tiene traccia della allocazione dei file usando una MTF (Master Table File). I file sono memorizzati nei cluster che però hanno una dimensione indipendente dalle dimensioni del disco e possono essere grandi anche come un solo settore (512 byte). WINME 8 Gbyte FAT32 PRIMARIA MASTER BOOT RECORD DATI 3 Gbyte FAT32 ESTESA WINXP 5 Gbyte NTFS PRIMARIA LINUX 3 Gbyte EXT2 PRIMARIA D: 2 Gbyte FAT32 LOGICA E: 1 Gbyte FAT32 LOGICA SPAZIO NON UTILIZZATO Fig. 1.1 51 Unità 1 Architettura software di un elaboratore m02ud01.qxd 30-06-2004 11:13 Pagina 52 • LINUX EXT2. È il file system di LINUX. • HPFS (High Performance File System). È il file system utilizzato da OS/2. Nella figura 1.1 è rappresentato schematicamente un disco partizionato con più sistemi operativi. 1.2 Il ROM-BIOS Il BIOS (Basic Input Output System), come si è precedentemente detto, è un programma memorizzato in una ROM (nei moderni sistemi in una memoria riscrivibile per poter essere aggiornato senza cambiare il chip di memoria, in tal caso è detto FLASH BIOS), serve per la gestione a più basso livello dei dispositivi di ingresso e d’uscita del sistema. Le funzioni fondamentali del BIOS che sono eseguite nella prima fase di avvio di un computer sono le seguenti: • test dei componenti hardware fondamentali del sistema; • caricamento in memoria RAM del sistema operativo prelevato dal disco. 1.2.1 © RCS LIBRI EDUCATION SPA Il BIOS acquisisce le informazioni di base relative alla configurazione hardware del sistema (tipi e numero di floppy installati, tipo di disco rigido, disco da cui caricare il sistema operativo, data ed ora ed altro) da una piccola memoria RAM di tipo CMOS che mantiene le informazioni rimanendo sempre alimentata, anche a computer spento, per mezzo di una batteria in tampone. L’azione svolta dal BIOS inizia nella prima fase di messa in servizio del PC. Quando esso viene acceso (power-up), la CPU legge il contenuto della ROM (o della EEPROM), a partire da una locazione ben precisa (locazione di reset), eseguendo le istruzioni contenute in essa e nelle successive locazioni. Le prime operazioni eseguite sono relative ad un test di funzionalità della memoria, delle periferiche di base e di particolari circuiti del calcolatore; questo test è denominato POST (Power On Self Test). Se vengono riscontrate anomalie di funzionamento sono emessi sul video messaggi di errore o, a seconda della circostanza, attivati dei suoni (beep). Se la procedura di self-test viene superata senza rilevamento di errori, il BIOS inizia la fase di bootstrap, ovvero di lettura e caricamento dal disco del sistema operativo, nella RAM. Il BIOS SETUP In genere prima di attivare per la prima volta un computer è fondamentale eseguire il programma di setup del BIOS in modo da fissare i parametri fondamentali che regolano il funzionamento della macchina memorizzandoli nella memoria CMOS. È possibile accedere al programma di setup del BIOS premendo un apposito tasto indicato in un messaggio visualizzato sul video durante la fase di POST (in genere il tasto CANC o la barra spaziatrice). Debbono essere eseguite con attenzione le regolazioni secondo quanto esposto nel manuale di sistema (è sempre possibile comunque effettuare un caricamento di default dei parametri del BIOS). Essendo presenti sul mercato diversi tipi di programmi di setup e subendo essi continue evoluzioni, vengono esposte sinteticamente solo alcune delle specifiche che vengono impostate con tale programma chiarendone il significato. Quanto segue fa riferimento ad una piastra madre con slot di espansione di tipo PCI/ISA. Si tenga presente che i parametri impostati vengono memorizzati in una memoria di tipo CMOS tenuta attiva, anche con il computer spento, per mezzo di una piccola batteria al litio (o a volte al Ni-Cd ricaricabile). Tra le altre cose sono memorizzate in tale memoria anche l’orario e la data attuale. Normalmente si identificano nel programma di setup le seguenti parti: • Setup di tipo standard: serve per selezionare i parametri relativi alle unità a disco, quali sono le unità a disco attive, il tipo di disco (o dischi) rigido presente ed impostare la data e l’orario corrente. 52 MODULO 2 IL SOFTWARE DEL PC m02ud01.qxd 30-06-2004 11:13 Pagina 53 • Setup delle caratteristiche del BIOS: serve per abilitare o meno la cache di primo livello (interna al processore) e quella di secondo livello (esterna); per l’impostazione della sequenza con cui viene effettuato l’avvio del sistema (disco A poi C, C e poi A, solo C, ecc.) (Boot Sequence); per scambiare la sequenza di avvio tra A: e B: (Swap Floppy Drive); per l’abilitazione del tasto BLOC-NUM (Boot Up Num Loch Status). • Setup delle caratteristiche del chipset1: permette di impostare diversi parametri relativi alle temporizzazioni delle DRAM. • Setup per la configurazione PNP/PCI: il PNP (Plug and Play) è una caratteristica posseduta da alcuni recenti sistemi che operano con Windows 95 che permette il riconoscimento automatico dei dispositivi hardware presenti nel computer. È chiaro che i dispositivi per essere individuati debbono essere essi stessi del tipo PNP. Con questa opzione del setup si assegnano in particolare i vari livelli di interrupt e i canali di DMA alle periferiche. • Setup delle periferiche integrate: permette di selezionare alcune delle caratteristiche e alcuni indirizzi delle periferiche integrate sulla piastra come la porta parallela della stampante, le porte seriali, il controllore dei dischi, la USB (Universal Serial Bus). In particolare per la porta parallela possono essere scelti vari modi di funzionamento, che come noto sono denominati: SPP (Standard Printer Port), EPP (Enhanced Parallel Port); ECP (Extended Capabilities Port). 1.2.2 Il bootstrap da disco rigido (C:) Eseguito il POST, il BIOS si predispone al caricamento del sistema operativo. Il disco da cui deve avvenire il caricamento è indicato nella CMOS con la Boot Sequence (nei nuovi PC può essere anche un drive per i CD-ROM, il floppy A: o un disco removibile). Nella fase di bootstrap la CPU, seguendo il programma del BIOS, legge un particolare settore denominato Master Boot Record (MBR) che contiene informazioni sulle partizioni del disco ed un piccolo programma (Master Boot Program). Il BIOS cede quindi il controllo al Master Boot Program che controlla se sul disco sono presenti partizioni primarie avviabili (cioè contenenti un sistema operativo) e nel caso ce ne sia più di una quale di esse sia attiva. Ogni partizione primaria avviabile ha un proprio settore di avviamento (bootstrap sector) che contiene un piccolo programma, specifico per il sistema operativo contenuto nella partizione. Quindi il controllo viene ceduto al programma di caricamento (loader) della partizione avviabile attiva che procede al caricamento del sistema operativo in memoria. Dopo di che il controllo viene ceduto al sistema operativo stesso. 1.3 I sistemi operativi Come precedentemente detto, per ottenere una gestione migliore delle risorse hardware del computer (ovvero la parte elettronica comprendente anche la memoria centrale e quella di massa), sono usati i sistemi operativi, ovvero un insieme di programmi, normalmente scritti in linguaggio macchina, e più recentemente in linguaggio “C” o “C++”. I sistemi operativi quindi permettono ai programmatori un più facile accesso alle risorse hardware della macchina, con particolare riferimento alle unità di ingresso e di uscita dati, e alla gestione dei dispositivi di memorizzazione di massa (dischi magnetici, ottici o magneto-ottici). I primi PC, con processori della famiglia 8088/86, furono dotati del sistema operativo denominato MS-DOS (MicroSoft Disk Operating System). Sono disponibili per i PC anche altri sistemi operativi tra cui si citano le varie implementazioni di UNIX e un sistema operativo simile a UNIX, denominato LINUX. La struttura iniziale di LINUX fu realizzata nel 1991 da Linus Torvalds e distribuita gratuitamente su INTERNET perché venisse ampliata da altri programmatori. 1 Per la definizione di chipset ➜ Modulo 1, unità 1 § 1.3. 53 Unità 1 Architettura software di un elaboratore m02ud01.qxd 30-06-2004 11:13 Pagina 54 Attualmente esistono diverse distribuzioni di LINUX realizzate da diverse software-house; tra le più note si citano Mandrake Linux, Caldera Open Linux, Red Hat, SuSE Linux, Debian Gnu/Linux. Intorno al 1985 la Microsoft ha introdotto un ambiente grafico che opera sotto MS-DOS denominato Windows 1.0. Nel 1990 ne ha rilasciato poi la versione 3.0, ed infine nel 1992 l’ultima versione 3.11. L’ambiente grafico di Windows 3.x, pur lavorando ancora sotto il sistema operativo MS-DOS, permette di eseguire numerose funzioni servendosi di particolari piccole immagini, presenti sul video, denominate icone. Nel 1995 la Microsoft ha immesso sul mercato il sistema operativo che utilizza un ambiente grafico, denominato Windows 95. Esso, a differenza delle precedenti versioni di Windows, opera senza la presenza dell’MS-DOS. Nel 1998 è stato poi presentato Windows 98 e dopo qualche tempo Windows ME. L’ultima versione è stata messa in commercio alla fine del 2002, ed è denominata Windows XP. Il sistema operativo Windows XP è presente sul mercato nella versione Home, destinata prevalentemente ai PC che operano nell’ambiente domestico, ed una versione Professional per l’ambito aziendale. 1.3.1 Struttura del sistema operativo MS-DOS Nel caso del sistema operativo MS-DOS esso è presente sul disco ed è memorizzato in tre file distinti; il primo è chiamato command.com e costituisce il così detto interprete dei comandi; gli altri, che sono due file nascosti, assumono nomi diversi a seconda delle implementazioni del DOS. Durante la fase di bootstrap vengono quindi caricati in memoria i due file nascosti IBMBIO.SYS e IBMDOS.SYS ed eseguito, se presente, il file config.sys. Subito dopo è caricato in memoria il file COMMAND.COM ed infine viene ricercato ed eseguito (sempre se presente) il file autoexec.bat. Al termine del caricamento, viene visualizzato sul video il prompt di sistema, rappresentato, nel caso più semplice, dalla lettera C: (se il bootstrap è stato eseguito da C:) o A: (se il bootstrap è avvenuto da A:) seguite dal segno di maggiore (C:> o A:>) ed il controllo passa al programma command.com, che rimane in attesa che venga digitato un comando da tastiera. Il file command.com è denominato interprete dei comandi, in quanto analizza i comandi digitati da tastiera e passa, se validi, alla loro esecuzione. Come già esposto nel ➜ Modulo 1 i programmi che lavorano sotto il sistema operativo MS-DOS possono utilizzare solamente i primi 640 kByte di RAM (dall’indirizzo fisico 00000h a 9FFFFh) ovvero la così detta memoria convenzionale. Il ROM BIOS risiede invece in una memoria a sola lettura negli ultimi 128 kByte, nell’area d’indirizzamento totale di 1 Mbyte (dall’indirizzo fisico D0000h a FFFFFh). 1.3.2 Struttura del sistema operativo WINDOWS 98 Il sistema operativo Windows 98 (l’ultima versione è denominata Windows ME) è definito un sistema a 32 bit (Windows 3.1 è a 16 bit), in quanto usa un’organizzazione dei dati e del codice a 32 bit; tuttavia per compatibilità con i precedenti sistemi può utilizzare anche codice a 16 bit. Il passaggio dei sistemi operativi da 16 a 32 bit è legato strettamente alle funzioni della CPU montata sui computer su cui tali sistemi operativi debbono lavorare. • La prima CPU 8088 che lavorava con il DOS aveva un bus dati esterno ad 8 bit ed interno a 16 bit e i registri interni a 16 bit. I registri della CPU sono memorie interne che il processore utilizza per svolgere le elaborazioni dei dati provenienti dalla memoria. Ricordando che attraverso il bus dati nel processore confluiscono sia i codici delle istruzioni che i dati, la CPU 8088 acquisisce dalla memoria un byte alla volta che poi internamente compone formando una word (2 byte = 16 bit). • Con la CPU 80286 vengono introdotte due nuove funzioni fondamentali: la possibilità di gestire l’esecuzione di più applicazioni contemporaneamente (multitasking) e la funzione di macchina a memoria virtuale ovvero un sistema in grado di gestire (virtualmente) un quantitativo di memoria molto più grande di quella indirizzabile fisicamente (1 Gbyte di memoria virtuale contro i 16 Mbyte fisici). 54 MODULO 2 IL SOFTWARE DEL PC m02ud01.qxd 30-06-2004 11:13 Pagina 55 • Con la CPU 80386 (versione DX) si ha un bus dati e i registri interni a 32 bit. Anche le linee d’indirizzo dell’80386 diventano 32 e quindi l’area di memoria indirizzabile va dall’indirizzo 00000000h all’indirizzo FFFFFFFFh ed è uguale a 4 Gbyte (232 = 4.295.000.000 = 4 Gbyte). Quindi a partire dalla CPU 80386 si possono avere sistemi operativi a 32 bit di tipo multitasking. Il sistema operativo Windows 98 è quindi un sistema multitasking, in quanto può lavorare con più applicazioni contemporaneamente, a 32 bit. 1.3.3 Struttura del sistema operativo WINDOWS XP 1.4 Linguaggi a basso ed alto livello © RCS LIBRI EDUCATION SPA Pur conservando molte delle caratteristiche dei precedenti sistemi, Windows XP ha subito una profonda trasformazione nella sua architettura interna che lo ha reso certamente più stabile introducendo anche un certo controllo sulle intrusioni indesiderate nei collegamenti con INTERNET. Le due versioni (Home e Professional) sono basate sullo stesso nucleo centrale (kernel). È possibile installare Windows XP utilizzando lo stesso file system delle precedenti versioni (FAT 32) oppure il file system di Windows 2000 (NTFS). Solo scegliendo l’NTFS è possibile utilizzare una robusta protezione dei file che ne impedisce l’accesso, senza opportuna autorizzazione, e la loro cancellazione non voluta. Nelle prime macchine i programmi dovevano necessariamente essere scritti utilizzando particolari codici facilmente interpretabili dalla macchina (linguaggio macchina), ma alla portata di soli tecnici specializzati. I codici del linguaggio macchina direttamente interpretabili dalla CPU debbono essere espressi sotto forma di numeri binari. Questi codici in binario vengono introdotti nel microprocessore attraverso le linee del bus dati. Combinando in modo diverso i singoli bit, si ottiene un insieme di codici diversi, ognuno dei quali può rappresentare un’istruzione del microprocessore. È evidente che solo aumentando il numero di linee del bus dati si può aumentare il numero di codici ottenibili. Con 8 bit si possono avere, per esempio, 256 codici diversi (28 = 256), con 16 bit 65536 codici (216 = 65536). Per questo nei primi processori, essendo il numero delle linee del bus dati limitato ad otto (anzi nei primissimi processori tali linee erano solo quattro), per ottenere un numero più elevato di codici disponibili si formavano alcuni codici utilizzando due o più byte (1 byte = 8 bit). È per tale motivo che nei nuovi processori in cui il set di istruzioni è compatibile con i vecchi processori, pur essendo aumentato il numero di linee del bus dati, i codici del set di istruzioni di base sono formati da uno o più byte. È quello che succede nella famiglia di processori utilizzati sui PC che discendono dalla vecchia CPU 8088 che aveva un bus dati formato da solo 8 linee. È da tenere tuttavia presente che nei nuovi processori della famiglia 8088/86 il set di istruzioni di base è stato ampliato. Per esempio un PENTIUM o un K6 sono in grado di riconoscere tutto il set d’istruzioni della CPU 8088, ma nel loro set di istruzioni ne sono presenti altre non implementate nel processore 8088. Nello sviluppo dei vari tipi di processori sono andate confermandosi due modalità diverse di implementare in essi il set di istruzioni di base. I microprocessori che riconoscono un ridotto numero di codici di base e che per eseguire funzioni più complesse utilizzano solo tali codici, sono detti RISC (Reduced Instruction Set Computing). I processori in grado invece di lavorare con un esteso numero di codici di base sono detti CISC (Complex Instruction Set Computing). I processori della famiglia 8088 sono di questo secondo tipo (➜ Modulo 1, unità 1, § 1.4). 55 Unità 1 Architettura software di un elaboratore m02ud01.qxd 30-06-2004 11:13 Pagina 56 I codici macchina del set d’istruzioni scritti in binario sono per i programmatori di difficile utilizzazione. Un primo passo per semplificare il compito di programmazione è stato fatto utilizzando al posto di codici binari, codici scritti in esadecimale. I codici scritti in esadecimale non sono però direttamente interpretabili dal microprocessore. Già questo piccolo passo di semplificazione per la scrittura di un programma comporta la presenza di un qualche metodo che provveda a tradurre i codici esadecimali in codici binari. La traslazione potrebbe essere effettuata via software usando un apposito programma in grado di effettuare direttamente la traslazione esadecimale-binario o per mezzo di hardware utilizzando appositi circuiti. Si tenga comunque presente che un processore preleva sempre i codici in binario del programma da svolgere dalla memoria ad esso collegata. È per questo che ogni programma da eseguire, comunque codificato, deve sempre essere prima posto in memoria in formato binario. Per poter semplificare ulteriormente il compito dei programmatori sono stati sviluppati dei linguaggi che associano ai codici esadecimali, di difficile memorizzazione da parte del programmatore, dei mnemonici ovvero delle sigle abbreviate che indicano un’azione da svolgere. I linguaggi che utilizzano questi mnemonici sono detti linguaggi assembly. Questi linguaggi pur avendo caratteristiche simili e pur utilizzando a volte mnemonici uguali sono in genere diversi per i vari tipi di processori. I linguaggi assembly sono linguaggi di basso livello in quanto associano ad ogni loro singola istruzione una sola istruzione corrispondente scritta in linguaggio macchina. Ovvero esiste un rapporto uno ad uno tra un’istruzione in assembly ed un’istruzione in codice macchina. Le istruzioni scritte in linguaggio assembly non sono direttamente interpretabili dal processore, occorre quindi effettuare una traslazione del programma in istruzioni eseguibili in codice macchina. La traslazione viene operata con particolari programmi detti assemblatori. Anche i linguaggi assembly sono di difficile utilizzazione perché richiedono una profonda conoscenza delle risorse del processore. Per permettere una più semplice possibilità di utilizzazione degli elaboratori sono stati sviluppati i linguaggi ad alto livello, più facilmente utilizzabili dai programmatori, anche senza una profonda conoscenza dell’hardware del sistema; per utilizzare questi linguaggi sono però necessari particolari programmi, detti compilatori, per effettuare la traslazione dei linguaggi ad alto livello nel linguaggio macchina relativo all’elaboratore utilizzato. 56 MODULO 2 IL SOFTWARE DEL PC 30-06-2004 18:21 Pagina 57 2. I sistemi operativi unità m02ud02.qxd Verranno prese in considerazione di seguito le caratteristiche di base dei sistemi operativi: – MS-DOS (cenni); – Windows 95/98; – Windows XP. Il § 2.1 è dedicato a MS-DOS e contiene nozioni di carattere generale che è bene conoscere. Il sistema operativo WINDOWS XP, pur con una veste grafica del tutto rinnovata, conserva molte delle funzioni presenti nei precedenti sistemi, offrendo al tempo stesso molte nuove particolarità. Si tenga ben presente che Windows XP esercita un controllo rigoroso sull’accesso alle periferiche di sistema e, per questo, i programmi di gestione delle schede e delle interfacce presentate in questo volume non funzionano correttamente con questo sistema operativo. Pertanto quando si deve operare con programmi scritti con linguaggi a basso livello (assembly) o in QBASIC (o altri linguaggi ad alto livello), si deve avviare il sistema con un dischetto in MS-DOS o utilizzare una finestra MS-DOS di Windows 98. In particolare, con Windows XP, non è possibile utilizzare l’accesso alla porta parallela con i programmi scritti in Visual Basic presenti nei ➜ Moduli 9 e 15. Si consiglia pertanto di installare sul disco un doppio sistema operativo (Windows 98 e Windows XP) usando due partizioni distinte (vedere nozioni sulle partizioni del disco nel ➜ Modulo 2, unità 1, § 1.1). Si fa presente che su INTERNET sono reperibili driver speciali (in genere freeware) da ricercare in www.driverlinx.com o il driver userport presente in diversi siti (effettuare una ricerca) che permettono di utilizzare la parallela con le stesse modalità di Windows 98 anche con Windows XP o 2000. Si indicano di seguito le modalità di installazioni di un doppio sistema operativo. Nuova installazione di Windows 98 e Windows XP Usando un programma per eseguire partizioni sul disco, per esempio Partition Magic o Ranish Partition Manager (più difficile da utilizzare ma freeware: www.ranish.com/part/), creare due partizioni primarie sull’unità C:\ capaci di contenere i sistemi operativi e le applicazioni da installare. Sulla prima partizione verrà installato Windows 98 e sulla seconda Windows XP. Formattare la prima partizione con FAT32 utilizzando lo stesso programma con cui sono state create le partizioni. Nascondere la seconda partizione e rendere attiva la prima. Uscire dal programma. 1. Installare da CD-ROM Windows 98. 2. Installare Windows XP da CD-ROM. Durante l’installazione il sistema individuerà le due partizioni e chiederà ove installare il sistema operativo. Scegliere la seconda partizione e scegliere di formattarla con NTFS. 3. Procedere nell’installazione di Windows XP. 4. Windows XP creerà il sistema di dual boot e ogni volta che si avvierà il computer verrà proposta all’utente la scelta di quale sistema avviare per primo. 57 Unità 2 I sistemi operativi m02ud02.qxd 30-06-2004 18:21 Pagina 58 Dopo l’installazione si può accedere alla configurazione di boot manager di Windows XP (per eventuali modifiche) nel seguente modo: PANNELLO DI CONTROLLO ⇒ PRESTAZIONI E MANUTENZIONE ⇒ VISUALIZZARE INFORM. DI BASE; scegliere la cartella AVANZATE e fare clic sul pulsante IMPOSTAZIONI DI AVVIO E RIPRISTINO. Un’alternativa diversa è quella di usare un programma boot manager esterno come per esempio BOOT MAGIC o XOSL (freeware: www.xosl.org). In questo caso prima dell’installazione di Windows XP (punto 2) si deve inserire il seguente punto: 2’. Usando ancora il programma per creare le partizioni, nascondere la partizione con Windows 98 e rendere attiva la seconda partizione. Uscire dal programma. Al termine delle due installazioni deve essere installato il boot manager (BOOT MAGIC o XOSL). Installazione di Windows XP in un sistema con Windows 98 già installato © RCS LIBRI EDUCATION SPA Si fa l’ipotesi che si voglia installare il nuovo sistema operativo lasciando inalterato Windows 98. È necessario che sul disco rigido ci sia abbastanza spazio per installare il secondo sistema operativo e le eventuali applicazioni (almeno 1 117 Mbyte per XP). È possibile installare Windows XP anche su un secondo hard disk, cosa non ammessa per Windows 98. Nel caso si utilizzi un unico disco è necessario creare su di esso una seconda partizione primaria. Se il disco è occupato tutto da Windows 98 è necessario ridimensionare la partizione e poi crearne una seconda. Si proceda come segue: 1. Usando un programma per ridimensionare le partizioni senza perdita dei dati (per esempio Partition Magic) ridimensionare la partizione su cui è installato Windows 98. Si crea in questo modo uno spazio libero dopo la prima partizione. 2. Procedere all’installazione di Windows XP facendo il boot dal CD-ROM. 3. Durante l’installazione il sistema operativo chiederà dove dovrà essere installato; scegliere lo spazio libero e procedere alla sua formattazione in formato NTFS (tutte queste operazioni possono essere effettuate direttamente durante l’installazione). 4. Windows XP al termine dell’installazione creerà un semplice boot manager che permetterà di scegliere il sistema operativo di avvio. 2.1 Il sistema operativo MS-DOS Anche se i nuovi sistemi operativi che utilizzano un ambiente grafico hanno di molto diminuito l’importanza del DOS, si ritiene che le conoscenze di alcuni elementi di questo sistema operativo siano in talune circostanze necessarie per risolvere particolari problemi legati ai nuovi sistemi operativi, in particolare con i dischetti di ripristino che lavorano con linea di comando. Si tenga presente poi che con il DOS, attraverso la programmazione a basso livello, è possibile ottenere un completo ed incondizionato controllo del sistema e di tutte le sue periferiche operando direttamente con istruzioni di I/O. Nell’esame delle caratteristiche dei dischi è ricorsa più volte la parola drive, ovvero quei dispositivi in cui viene introdotto il disco e ne permettono la lettura e scrittura. Essi, in ambiente DOS (ma anche con Windows), sono individuati con delle lettere maiuscole seguite dai due punti (A:, B:, C:, D:, E: ...). In genere il primo drive dei floppy disk è indicato con la lettera A: ed il secondo con la lettera B:. Il disco fisso (hard disk) è invece indicato con la lettera C:. Se è presente un secondo hard disk (o se il disco fisso è suddiviso in partizioni), esso è contraddistinto dalla lettera D: e così in successione per gli altri. Se nel sistema è presente un drive per CD-ROM esso prende la prima lettera libera dopo quelle occupate dal disco rigido. 58 MODULO 2 IL SOFTWARE DEL PC m02ud02.qxd 30-06-2004 2.1.1 18:21 Pagina 59 File e directory in MS-DOS Tutte le informazioni presenti su un disco sono memorizzate in particolari strutture denominate file. Il file rappresenta quindi una raccolta ordinata di informazioni memorizzate sul disco. Un file può contenere quindi sia programmi che un insieme di dati di diversa natura. Esso deve avere un nome di identificazione costituito da un massimo di otto caratteri. Il DOS non fa distinzione tra caratteri maiuscoli e minuscoli. Non si possono usare, per i nomi, i seguenti caratteri: < > + = / \ [ ] “ : , . ? * spazio. I nomi dei file possono essere completati con una estensione, formata al massimo da tre caratteri, e separata dal nome da un punto (tab. 2.1). Alcune estensioni identificano in modo univoco alcuni tipi di file e possono pertanto essere usate solo per quei particolari file. TAB. 2.1 Alcune estensioni dei file di uso comune .COM File eseguibile (file che contiene un programma che può essere posto in esecuzione digitando il nome del file e dando invio). .EXE È ancora un file eseguibile (file di programma), con caratteristiche leggermente diverse dal precedente. .SYS Sono file di sistema. .BAT Particolari file, detti file batch, che contengono un insieme di comandi del DOS. .HLP File che forniscono aiuto. .DOC File di testo formattato (contenenti informazioni sulla formattazione del testo, come per esempio caratteri corsivi, colorati, tabelle, ecc.). .TXT File di testo non formattato. .ZIP File compattati in modo che occupino meno spazio. .BMP File grafici. Per poter usare in modo più semplice i file, è possibile creare sul disco delle suddivisioni, dette subdirectory (in Windows sono denominate cartelle); ognuna di esse è contraddistinta da un proprio nome e può contenere un certo numero di file, per lo più di tipo omogeneo. Con questo sistema è possibile accedere ai file di una certa subdirectory ignorando quelli presenti nelle altre. Il disco intero è considerato come una directory a cui è assegnato il nome di directory principale o radice. Si possono, inoltre, creare all’interno di una certa directory, altre subdirectory. 2.1.2 Avvio del DOS Quando si inizia a lavorare con il DOS, dopo un riuscito bootstrap, sul video viene visualizzato il prompt del sistema operativo (A:\ > _ con avvio dal drive A o C:\ > _ con avvio dall’hard disk). Dopo di che il computer rimane in attesa dei comandi digitati sulla tastiera e chiusi con il tasto INVIO. La lettera seguita dai due punti ( : ) indica l’unità a disco da cui è stato operato l’avvio, la barra retroversa ( \ detta back slesh), che ci si trova nella direttrice radice e il trattino lampeggiante dopo il segno di maggiore ( > ) rappresenta il cursore, ovvero il punto in cui verranno inseriti eventuali caratteri digitati da tastiera. La riga del video su cui è visualizzato il prompt viene definita riga di comando. I comandi che possono essere digitati su tale riga sono di diversa natura, ed una prima distinzione può essere effettuata dividendoli in comandi interni ed esterni. 59 Unità 2 I sistemi operativi m02ud02.qxd 30-06-2004 18:21 Pagina 60 Sono comandi interni quelli che sono contenuti nel file COMMAND.COM e vengono caricati in memoria insieme con tale file. Essi sono immediatamente disponibili per l’utente e sono riconosciuti dal DOS anche se viene tolto il disco di avvio. I comandi esterni non sono contenuti in memoria, ma si trovano sul disco sotto forma di file eseguibili, con estensione .COM o .EXE. Per questo, per essere eseguiti debbono effettivamente trovarsi su un disco inserito in uno dei drive. Per cambiare drive si deve digitare (si supponga di trovarsi in C:): C:\ > A: ↵ Con tale comando si seleziona il drive A: e il nuovo prompt diventa: A:\ > _ Dopo il cambio di unità i comandi digitati si riferiranno al drive A:. 2.1.3 Analisi di alcuni comandi interni del DOS Verrà ora effettuata una breve analisi dei fondamentali comandi interni del DOS (tab. 2.2). Essi sono tutti disponibili immediatamente e per eseguirli non occorre la presenza del disco di sistema. Caratteri speciali Al fine di rendere più efficace l’utilizzazione dei comandi rivolti ai file, il DOS permette di adoperare due caratteri jolly, l’asterisco (*) e il punto interrogativo (?), che, inseriti opportunamente nei nomi dei file, possono sostituire parti del nome o dell’estensione o i singoli caratteri del nome stesso. La parte del nome del file o dell’estensione al cui posto viene inserito l’asterisco può assumere un valore qualsiasi. Il punto interrogativo invece può sostituire i singoli caratteri. Gli esempi che seguono chiariranno il metodo di utilizzazione di tali caratteri jolly. TAB. 2.2 Applicazione di alcuni comandi interni del DOS DIR C:\> DIR ↵ C:\> DIR/p ↵ C:\> DIR >PRN ↵ A:\> DIR ∗.EXE ↵ REN C:\> REN file1 file2 ↵ C:\> REN *.txt *.old ↵ COPY C:\> COPY sorgente destinazione A:\> COPY 32IOF.DLL C:\Windows\SYSTEM DEL A:\> DEL *.* C:\TEMP> DEL *.DOC MD CD RD A:\> MD copie A:\> CD copie A:\> RD copie 60 Visualizza i file e le direttrici contenuti nel drive o nella direttrice da cui si impartisce il comando. Visualizza una pagina per volta. Invia alla stampante il contenuto del drive o della direttrice da cui si impartisce il comando (questa operazione non può essere eseguita direttamente da Windows). Visualizza tutti i file presenti sul disco A: con nome qualsiasi ed estensione .exe. Cambia il nome di file1 assegnandogli il nuovo nome file2. Assegna a tutti i file che hanno estensione .txt la nuova estensione .old. Non è possibile eseguire l’operazione direttamente con Windows. Permette di copiare un file, da un disco all’altro o da una subdirectory ad un’altra o anche nella stessa subdirectory in cui si trova, cambiandovi però il nome. La sorgente deve contenere il nome del file che si vuole copiare preceduto dal percorso completo per raggiungerlo, mentre nella destinazione deve esserci il nome che deve essere attribuito al file da copiare e il percorso completo di dove esso deve essere copiato. Copia il file 32IO.DLL contenuto in A: nella cartella SYSTEM di Windows. Cancella tutti i file contenuti sul disco A:. Cancella tutti i file con nome qualsiasi e con estensione .DOC contenuti nella sottodirettrice TEMP di C:. Crea una sottodirettrice in A: con il nome copie. Cambia direttrice (accede alla sottodirettrice copie). Rimuove la sottodirettrice copie se non contiene file o altre sottodirettrici. MODULO 2 IL SOFTWARE DEL PC