LA STORIA DEL PERSONAL COMPUTER .................................................... 2 Alan Mathison Turing ............................................................................................... 12 Algoritmi e macchine di TURING .......................................................................... 12 L'Elaboratore di Von Neumann ............................................................................... 15 Limiti dell’architettura di Von Neumann ............................................................... 18 STRUTTURA DI UN COMPUTER .................................................................. 19 Il Processore ............................................................................................................... 20 Bus........................................................................................................................... 20 Decodifica ............................................................................................................... 24 Specifiche tecniche della CPU ................................................................................ 25 Clock cycle time e Clock rate .............................................................................. 26 CPU(execution)time e performance .................................................................... 26 MIPS ................................................................................................................... 27 MFLOPS ............................................................................................................. 27 Specifiche fisiche .................................................................................................... 27 Vcore e VI/O ....................................................................................................... 27 VRM .................................................................................................................... 28 Voltage ID ........................................................................................................... 30 Socket (zoccolo) .................................................................................................. 30 Il fattore di moltiplicazione ................................................................................. 36 Sistema di Input e Output – I/O ............................................................................... 38 I/O controller ........................................................................................................... 38 I/O - CMOS clock-calendar..................................................................................... 39 I/O - porte seriali ..................................................................................................... 39 I/O - porta parallela ................................................................................................. 42 I/O - porta mouse PS/2 ............................................................................................ 43 I/O - connettore tastiera ........................................................................................... 44 I/O - porta IR ........................................................................................................... 44 I/O – USB ................................................................................................................ 44 Memoria ..................................................................................................................... 48 Tipi di Memoria....................................................................................................... 48 Tipi di memoria su circuiti integrati ........................................................................ 49 Tipi di RAM ............................................................................................................ 51 Specifiche per i chip DRAM ................................................................................... 52 DIMM e SIMM ................................................................................................... 54 Shadow RAM ...................................................................................................... 56 La memoria CACHE ............................................................................................... 57 TAG..................................................................................................................... 58 WRITE BACK e WRITE THROUGH ............................................................... 58 Cache sincrona e asincrona ................................................................................. 58 COAST e CELP .................................................................................................. 59 La storia del Personal Computer Storicamente Il primo computer, inteso come “calcolatore”, risale al 1946: si chiamava Eniac1, creato da Mauchly ed Eckert, funzionava a valvole, ed era basato su un’architettura ideata negli anni 40 da Neumann e Turing: l’input veniva dato con delle schede perforate; le memorie di massa erano costituite da nastri magnetici; e la RAM era basata su nuclei di ferrite. Da un progetto dello scienziato di origine ungherese John von Neumann, entrano in funzione, nel 1949 a Cambridge, in Inghilterra, l'EDSAC (Electronic Delay Storage Automatic Calculator) e, nel 1950, presso l'Istituto di Studi Avanzati Figura 1 - EDVAC Figura 2 - UNIVAC dell'Università di Princeton, negli Stati Uniti, l'EDVAC (Electronic Discrete Variable Automanic Computer), quello che è stato universalmente riconosciuto come il vero prototipo dei moderni elaboratori elettronici. Le nuove macchine, sono basate sul concetto di "programma memorizzato", cioè vengono registrati al proprio interno, nella "Memoria", non solo i dati su cui lavorare, ma anche le istruzioni per il suo funzionamento. In questo modo il calcolatore, durante il corso di una elaborazione, sulla base dell’analisi dei risultati intermedi, può saltare direttamente da una istruzione all'altra, eseguendo di conseguenza operazioni diverse, potendo così, secondo le Per rappresentare i numeri, sostituendole con tubi a vuoto che vengono attivati mediante impulsi elettrici e che indicano le varie cifre mediante il proprio stato di acceso o spento. Poiché gli impulsi elettronici si muovono migliaia di volte più velocemente di un dispositivo elettromeccanico, l'ENIAC è in grado di effettuare oltre 300 moltiplicazioni in un secondo. Il primo calcolatore elettronico della storia impiega 18.000 valvole, pesa 13 tonnellate ed occupa una superficie di 180 metri quadrati. Tutte le operazioni interne erano semplificate mediante impulsi elettronici generati al ritmo di 100.000 al secondo. Con l'aumento della velocità di calcolo si fece sentire l'esigenza di velocizzare il lavoro di programmazione. Prima di poter lavorare su un certo programma, l'ENIAC doveva essere preparato da un squadra di tecnici che per diversi giorni lavorava a collegare manualmente i circuiti elettrici necessari per quel programma. L'ENIAC restò in funzione fino al 1955 ed è attualmente esposto allo Smithsonian Institute di Washington. 1 varie necessità, risolvere problemi di tipo diverso. Il calcolatore diventa così "elaboratore", capace cioè di eseguire non solo operazioni aritmetiche ad alta velocità, ma di prendere decisioni logiche, previste da un programma creato dall'uomo, elaborando quindi qualsiasi tipo di informazione. La combinazione di queste due caratteristiche permette di alterare la normale sequenza delle istruzioni in base all'esito di un confronto: permette cioè di trasferire, all'interno della macchina, quelle funzioni di controllo che prima richiedevano un Figura 3 - Tubo a vuoto o Valvola intervento esterno, facendo compiere quel salto di diversi ordini di grandezza alla "velocità di esecuzione" del calcolo ed alla sua "garanzia di correttezza", che erano state auspicate da Leibniz e delineate da Babbage. Gli studi teorici sugli elaboratori elettronici escono dai laboratori universitari inglesi e americani dove hanno dato vita a tutta una serie di prototipi isolati identificati dalle sigle EDSAC (Electronic Delay Storage Automatic Calculator), MADM (Manchester Automatic Digital MAchine), UNIVAC (UNIVersal Automativ Computer), SEAC (Standard Estern Automatic Computer), ecc., e cominciando ad interessare anche le industrie. Dalla fase puramente sperimentale si passa alla produzione di queste macchine in più esemplari destinati alla vendita commerciale, inizia così la loro diffusione. All'inizio degli anni '50 l'IBM diede vita ad una serie di macchine come il sistema 701, nel 1952, il 650 nel 1953 ed il 704 nel 1954 che era in grado di registrare un milione di cifre binarie e di eseguire in un secondo 42.000 addizioni. Qualcosa viene prodotto anche in Figura 4 - Nuclei di ferrite Germania, nel 1955 il 2002 della Siemens, e in Francia, il Gamma ET della Bull dal 1956. Gli elaboratori della prima generazione si basano su tre funzioni fondamentali che la macchina deve svolgere e che ancora oggi sono per definizione la base di un processo di elaborazione di dati: l'immissione delle informazioni, la loro elaborazione,e l'emissione del risultato della elaborazione. I dati da utilizzare e le istruzioni necessarie ad eseguire automaticamente le varie operazioni, espressi sotto forma di perforazioni su schede, vengono letti dall'unità di immissione e trasferiti nella memoria interna. Da qui i dati passano Figura 5 - Transistor nell'ALU, unità aritmetico logica, dove vengono eseguite le elaborazioni e i calcoli indicati dalle istruzioni impartite. I risultati vengono poi inviati all' unità di emissione, che provvede a perforarli su scheda oppure a stamparli su un foglio di carta. Mentre nelle macchine meccanografiche tutte le fasi si svolgono separatamente, con continui interventi manuali e controlli intermedi, nell'elaboratore tutte le operazioni e tutti i controlli sono effettuati automaticamente, dall'immissione dei dati fino alla emissione dei risultati. Il funzionamento dell'elaboratore è infatti guidato da un'apposita unità di controllo che comprende il significato delle istruzioni impartite, presiede alla loro esecuzione, ne controlla l'esattezza e regola il movimento dei dati attraverso le varie parti della macchina. Nei primi elaboratori elettronici la memoria era costituita da tubi a raggi catodici, oppure da tamburi magnetici che ruotano ad alta velocità. Una serie di testine magnetiche "scrive" i dati e le istruzioni sulla superficie cilindrica del tamburo in forma di punti magnetizzati e li "legge" poi in pochi millesimi di secondi. Verso il 1955, negli elaboratori più evoluti la memoria a tamburo viene sostituita da milioni di nuclei di ferrite che consentono di registrare in poco spazio un numero molto maggiore di dati e di leggerli mille volte più velocemente. I nuclei sono microscopici anellini di materiale magnetico, del diametro di pochi decimi di millimetro, attraversati da due fili elettrici fra loro perpendicolari: al passaggio degli impulsi provenienti dall'unità di immissione dei dati, ogni nucleo si può magnetizzare in due sensi opposti e può così registrare convenzionalmente l'1 o lo 0. Un terzo filo elettrico è in grado di prelevare l'informazione registrata riconoscendo lo stato del nucleo e inviando un impulso corrispondente in pochi millesimi di secondo. L'esecuzione delle operazioni aritmetiche e logiche viene svolta all'interno dell'unità centrale mediante circuiti a tubi elettronici, il cui impiego costituisce la caratteristica tecnologica che contraddistingue gli elaboratori della "prima generazione". Il tubo a vuoto, noto poi anche come "valvola", é nella forma più semplice un'ampolla di vetro in cui é stato praticato il vuoto e che contiene i due capi di un circuito elettrico. A seconda della tensione applicata, il tubo consente o meno il passaggio degli impulsi elettrici, indicando così convenzionalmente i simboli 1 e 0. Questa funzione, analoga a quella di un semaforo che regola il passaggio delle automobili secondo che sia intervenuto o no un segnale di "via libera", era svolta nei calcolatori elettromeccanici dai relè: il tempo di scambio di un tubo a vuoto é però solamente di qualche milionesimo di secondo, contro i centesimi di secondo richiesti dall'apertura o chiusura di un relè. La memoria che immagazzina al suo interno i dati e le istruzioni, non è in grado di comprendere il significato degli ordini che contiene. La loro interpretazione è affidata all'unità di controllo che sonda il contenuto dei nuclei di ferrite e utilizza i vari stati "1" e "0" per ricavarne opportuni impulsi di corrente, che a loro volta provocheranno a velocità elettronica gli effetti voluti. Ogni istruzione introdotta nella memoria si compone di due parti: la prima serie di impulsi indica qual è l'operazione da compiere; la seconda parte indica invece la posizione della memoria in cui si trova il dato che è necessario all'operazione, cioè il suo "indirizzo". I risultati dell'elaborazione vengono materialmente forniti dall'elaboratore attraverso le unità per l'emissione dei dati. Il più semplice di questi dispositivi è il perforatore di schede, che provvede a convertire i risultati dalla forma binaria in quella comprensibile all'uomo: una serie di punzoni mossi da opportuni impulsi inviati dall'unità centrale di elaborazione, trasforma i risultati in perforazioni su schede. Verso la metà degli anni 50 le possibilità applicative degli elaboratori vengono notevolmente ampliate dall'impiego di memorie ausiliarie esterne. Nastri, dischi e tamburi magnetici registrano grandi quantità di informazioni da conservare permanentemente o da utilizzare rapidamente durante le fasi di elaborazione. Mentre per leggere un'informazione registrata su nastro è necessario svolgerlo dall'inizio fino al punto che interessa, i dischi magnetici sono invece unità di memoria ad accesso diretto che consentono di raggiungere istantaneamente qualsiasi dato registrato. Presentata per la prima volta nel 1956 sul Sistema IBM 305 Ramac, RANDOM ACCESS MEMORY ACCOUNTING COMPUTER, la memoria a dischi è simile al jukebox. Una pila di dischi metallici ruotanti immagazzina le informazioni sulle proprie superfici lungo piste concentriche e in forma di punti magnetizzati. La disponibilità dei dischi magnetici, capaci di individuare e aggiornare, in frazioni di secondo, informazioni sparse tra la gran massa di dati archiviati, fornisce grande impulso alle applicazioni degli elaboratori. Macchine più veloci, più affidabili, di dimensioni ridotte e meno costose, grazie al circuito integrato, che è frutto di un’avanzata sperimentazione nel campo dell'elettronica, della chimica e della fisica, caratterizzano la terza generazione di calcolatori, Figura 6 - Dischi magnetici intorno alla metà degli anni '60. Le prime macchine ad essere prodotte sulla base di questa tecnologia furono quelle della serie 360 della IBM, che riuscì ad installarne oltre trentamila esemplari in tutto il mondo. La Honeywell installò più di mille esemplari del G 115, e la Univac 2500 esemplari della serie 9000. L'ordine di grandezza del tempo necessario alla esecuzione di una operazione è il miliardesimo di secondo, una velocità circa mille volte maggiore di quella consentita alle macchine della precedente generazione. Per avere l'idea di questo straordinario incremento di velocità, basti pensare che un miliardesimo di secondo sta ad un secondo come un secondo sta a 30 anni. Questo passo in avanti impone degli accorgimenti per potere adattare a questa velocità tutti i componenti del calcolatore. Tra la memoria a nuclei magnetici, e l' unità centrale, che è circa mille volte più veloce, viene creata una "memoria di transito" costituita da circuiti molto veloci per permettere il passaggio dei dati. Il circuito integrato, con la miniaturizzazione dei circuiti elettronici, ha permesso, di conseguenza, la diminuzione dei costi di produzione. Una barretta di silicio viene tagliata in sezioni sottilissime, e su ciascuna di queste, con metodi di fotolitografia vengono create delle piastre della misura di pochi millimetri. Su ciascuna di queste piastrine trovano posto, collegati tra di loro, migliaia di transistor e di altri componenti elettronici come resistenze e diodi. L'alta densità dei componenti elettronici, su ciascuna piastrina, consente di ottenere una elevata velocità di elaborazione, un volume assai ridotto ed una minima dispersione di potenza. Un altro aspetto notevole delle macchine di questa generazione riguarda lo sviluppo di programmi compatibili tra le diverse famiglie di calcolatori. Gli elaboratori vengono progettati per potere essere potenziati nel tempo, aumentando la capacità della macchina grazie a dei moduli che permettono di adeguare la macchina a qualsiasi tipo di applicazione ed a qualsiasi volume di informazioni da elaborare. Con la 3ª generazione vengono superati alcuni limiti legati alla generazione precedente, in cui gli elaboratori erano generalmente costruiti "su misura", progettati con una specifica dimensione, per potere essere impiegati ad uso esclusivo scientifico o commerciale. Al fine di gestire il coordinamento delle varie componenti di un calcolatore, vengono creati dei programmi che hanno lo scopo di aumentare l'efficienza della macchina, senza avere nessun compito specifico. Nasce il "sistema operativo", che controlla il funzionamento della macchina senza l'intervento dell'operatore eliminando di conseguenza i tempi di attesa. Oltre al sistema operativo vengono creati nuovi linguaggi di programmazione come l'APL, (A Programming Language), che viene impiegato per interrogare l'elaboratore, il Figura 7 - Circuito integrato Figura 8 - Transistor e valvola PL/1, (Programmino Language 1), un linguaggio versatile che risolve problemi sia scientifici che commerciali, ed il BASIC, (Beginners All-purpose Symbolic Instruction Code), che facilita molto l'approccio alla programmazione per utenti inesperti. Questi nuovi linguaggi vengono sviluppati tenendo conto dei nuovi concetti di "multi programmazione" e di "time-sharing", che consentono in pratica di elaborare più programmi contemporaneamente, permettendo così l'uso simultaneo del calcolatore a più utenti. Sotto il controllo del sistema operativo la macchina salta da un utente ad un altro in modo così rapido, rispetto alla velocità dei terminali, che nessuno si rende conto di utilizzare l'elaboratore assieme ad altri. E' anche grazie al sistema operativo che, utilizzando al meglio il calcolatore, permette a programmi diversi, introdotti nella memoria centrale, di funzionare contemporaneamente utilizzando ciascuno i tempi morti durante l'esecuzione degli altri programmi. La nascita vera e propria dell'industria dei personal computer risale al 1971 quando un'azienda giapponese produttrice di calcolatori, la Busicom, commissionò alla Intel2 una serie di chip per un calcolatore. Si trattava di produrre appositamente dodici processori con caratteristiche particolari che tuttavia, il tecnico Ted Hoff si rifiutò di eseguire ritenendoli poco pratici. Invece di tali chip speciali egli offrì un unico congegno, valido per tutti gli usi, che ripescava le informazioni dalla memoria del semiconduttore. Questo versatile chip, detto 4004, soddisfaceva pienamente le necessità del calcolatore Busicom, ma Hoff intuì che esso potesse benissimo adattarsi senza nessuna modifica anche ad una grande varietà di apparecchiature, ma la cosa era complicata dal fatto che Busicom aveva acquistato i diritti sul 4004. Hoff ed i suoi collaboratori dovettero quindi sostenere una dura battaglia per convincere Intel a spendere 60 mila dollari (allora come oggi un'enormità) per ricomprare i diritti di sfruttamento del prodotto. Per quanto oggi possa sembrare incredibile, l'argomento vincente consistette nel fatto che in questo modo Intel avrebbe venduto più memorie!!! Benché più piccolo di un francobollo, il 4004 sprigionava la stessa potenza di calcolo dell'ENIAC, era costituito da 2300 transistor e operava a 4 bit. La strada era ormai tracciata ed era relativamente in discesa: nel 1972 seguì il modello a otto bit denominato 8008, che elaborava le informazioni a velocità doppia. Questi chip all'inizio venivano utilizzati dentro apparecchiature di precisione,(calcolatrici), diagnostici ospedalieri, flipper e altro. Il primo microcomputer digitale per uso personale fu il MITS 816, messo in vendita nel 1972. Il MITS 816 non possedeva né uno schermo né tantomeno la tastiera, ma fu comunque acquistato dagli appassionati, in genere sempre recettivi alle novità. Il decollo dell’industria dei PC avviene nel 1974 proprio alla M.I.T.S.(Micro Instrumentation and Telemetry System, società produttrice di calcolatrici tascabili, spazzata poi via dal mercato dall’ingresso della Texas Instruments) con la nascita del primo PC, battezzato poi Altair e lanciato nel gennaio del 1975 sulla rivista “Popular Electronics” che lo descriveva come "il primo kit per minicomputer in grado di competere con i modelli commerciali". L'Altair era un sistema basato sul microprocessore 8080 di Intel e dotato di appena 256 byte di memoria, e un’architettura a bus espandibile. Venduto a circa 375 dollari , il 2 azienda costituita nel 1968 per produrre memorie per semiconduttori a prezzo accessibile, che praticamente inventò i microprocessori quasi per caso sistema Altair fu il primo personal computer a raggiungere il grande pubblico e venne ordinato da centinaia di appassionati di elettronica. Le prime applicazioni sviluppate sono, emblematicamente, il collegamento a una minuscola telecamera digitale, un gioco, un programma che sfruttava le interferenze generate dal computer per far produrre musica, e un apparecchio radiofonico. Purtroppo non era ancora fornito di schermo e tastiera. L'evento fu notato anche da un giovane programmatore, Paul Allen, che insieme a un suo amico, Bill Gates(ancora studente ad Harvard), unirono le loro forze per produrre velocemente una versione del linguaggio BASIC per il sistema Altair grazie al quale realizzarono nel 1976 il primo wordprocessor “Electric Pencil”(dopo poco tempo Allen e Gates fondarono quella compagnia che poi si sarebbe chiamata MICROSOFT). In quegli anni si svilupparono evidenti mescolanze tra la cultura degli hobbisti del PC e la cultura alternativa: si pubblicarono il libro “Computer lib” di Ted Nelson e il periodico “People’s Computer Company”; si diede vita a iniziative pioneristiche per diffondere l’accesso ai computer e per l’uso dei computer con i bambini. L'Altair fece prendere il volo all'industria del personal computer, tanto che nel 1977,ci fu una vera e propria esplosione di interesse in questo campo, scatenando la produzione semiartigianale di microcomputer basati sull’8080 e sui chip Motorola 6800 e 6502. Nel 1976 due giovani Steven Jobs e Stephen Wozniack, iniziarono a vendere un computer a basso costo, progettato da quest’ultimo, e chiamato Apple; poco tempo dopo si unisce a loro un ex dipendente dell’Intel, Mike Makkula, per fondare la Apple Computer Company. L'Apple II, presentato nella primavera del 1977, e venduto insieme con un Basic divenne il più importante PC in distribuzione, e in questo fu enormemente aiutato dal progetto di un lettore economico per floppy disk da 5 e ¼ , sviluppato da Wozniack nel 1978,e da Visicalc, il primo foglio elettronico della storia, in grado di gestire 63 colonne per 254 righe occupando 21kb di memoria. Visicalc in particolare forni quasi improvvisamente una valida ragione per l'utilizzo commerciale dei personal computer che, da quel momento in poi, smisero di essere il regno esclusivo degli hobbisti. Il resto del decennio vide la nascita di dozzine di progetti differenti, con varie aziende che provavano a mettere insieme combinazioni uniche di potenza di calcolo, prezzo, prestazioni e funzionalità. Le macchine prodotte in questo periodo spaziano dai sistemi per l'utenza hobbistica, domestica e ludica, ai sistemi rivolti ad un'utenza commerciale. Per ciò che riguarda l’utenza domestica e ludica, si fece strada nel 1982 il Commodore 64, che rappresentò uno dei primi tentativi storici di creare un mercato per le famiglie: era dotato di processore 6501, 64kb di RAM, audio e grafica a colori, il tutto a meno di 600 dollari. Il C64 ebbe un enorme successo tanto da risultare il modello di computer più venduto di tutti i tempi(20 milioni di unità!). Nel 1981 appare il primo PC portatile, creato da Adams Osborne, L’Osborne 1, con sistema operativo CP/M(Control Program for Microcomputers, creato nel 1974 da Gary Kildall, fu il primo sistema operativo in grado di controllare un’unità a disco), foglio elettronico e wordprocessor(il più avanzato disponibile Wordstar, sviluppato nel 1979), pesava 11kg ed era venduto a 1800 dollari. Poi nel 1982, giunse sul mercato il Portable HP75C di Hewlett-Packard, mentre nel 1983 arrivò il Compaq Portable PC, al prezzo di tremila dollari, offriva 128 kb di RAM, un video monocromatico da nove pollici, un processore 8088 da 4,77 MHz e un’unità opzionale per floppy disk da 5 e ¼ . Questo periodo fu contrassegnato da un esplosione di creatività senza precedenti, sia per la crescita veloce del mercato sia perché in quei giorni la compatibilità con i sistemi precedenti non aveva ancora molta importanza. Era nata finalmente l'era dei personal computer. IBM, che era sul mercato da tempo, voleva anche lei la sua "fetta di torta", per cui William Lowe, direttore dei laboratori IBM, reclutò 12 ingegneri per formare un gruppo di lavoro e realizzare un primo prototipo. Nell'agosto del 1980 fu presentato il primo prototipo che fu chiamato ACORN. Per questo prototipo fu scelto inizialmente un processore a 16 bit l'8086 di intel, ma poi la scelta cadde sull' 8088(4.77 Mhz), una versione di quello stesso chip che però lavorava a 8 bit; per ciò che riguarda il software, inizialmente si cercò di adottare il sistema operativo CP/M, poi si cercò di ottenere dalla Microsoft il QDOS, poi perfezionato e chiamato PC-DOS. Alla fine il 12 agosto 1981, a quasi un anno di distanza dalla realizzazione del primo prototipo, IBM presentò il suo primo PC, dotato di una CPU intel 8088, di 64 kbyte di ram e di un lettore floppy disk da 5 e ¼ a singola faccia e singola densità con una capacità di 160 kbyte, e con un pacchetto di programmi tra cui il gioco Microsoft Adventure. Il sistema venne messo in vendita nei negozi a un prezzo di listino di 2800 dollari. Nel frattempo(1980) la Apple che avava mandato in produzione un terzo modello(Apple III che costava tra 4500 e 8000 dollari, e utilizzava un processore 6502 a 2MHz), assai meno fortunato, prepara l’introduzione nella produzione di massa di una delle innovazioni fondamentali nella storia dell’informatica: si tratta della applicazione al PC , di idee sviluppate in una struttura di ricerca della XEROX PARC (Palo Alto Research Center) a partire dai risultati del progetto “Augmentation”, guidato anni prima da Douglas Eugelbart, cui la Xerox non riesce a dare ampia diffusione commerciale. I ricercatori della Xerox avevano sviluppato una stazione di lavoro, collegata in rete e dotata di interfaccia grafica a oggetti(GUI); per interfaccia si intende qui il modo in cui un sistema si presenta all’utente e comunica con esso: un dispositivo di interfaccia per l’utente può essere una serie di interruttori affiancati da lucette, come nell’Altair. L’idea di un’interfaccia grafica si basava sulla possibilità di collegare un monitor ad alta risoluzione al computer per disegnarvi una rappresentazione metaforica, mediante un insieme di elementi iconici, delle principali operazioni compiute dall’utente; uno strumento puntatore(Mouse)avrebbe posto in grado di operare sugli oggetti grafici e di selezionare comandi attivando menù a tendina. Nel 1982 la Apple introduce LISA, il primo PC dotato di interfaccia grafica e mouse, venduto con sei programmi integrati e intercambiabili, detti “Tools”; e poi il Macintosh nel 1984, primo PC con processore a 32bit(Motorola 68000) e floppy da 3,5, con notevoli capacità di riproduzione del suono, dotato della medesima interfaccia grafica di LISA, ma a un costo inferiore. User-frendly. Inizia “l’umanizzazione” del computer ed il concetto di userfrendly(sistema amichevole per l’utente): per avvicinare il computer all’utente medio i dati e le operazioni vengono rappresentati in una forma iconica intuitiva e gradevole per l’utente. Il concetto viene ripreso dalla Microsoft con lo sviluppo di Windows, un sistema di interfaccia grafica per computers IBMPC e compatibili. Backward Compatibility. Adesso la maggior parte dei computer del mondo sono compatibili IBM-PC basati sui microprocessori della intel(serie 80x86 e Pentium), o su vari microprocessori di altre società(AMD, IBM, Motorola) in grado di eseguire le stesse istruzioni. La crescita dei microprocessori è stata condotta secondo lo standard denominato backward compatibility (letteralmente “compatibilità all’indietro”) che assicurava il funzionamento di un programma, eseguito da un vecchio processore, su un processore ,della stessa serie, ma di più recente realizzazione, e ovviamente non consentiva il contrario. In altre parole un programma vecchio girerà generalmente anche su un computer nuovo con lo stesso sistema operativo, ma non viceversa. Presentato sovente come uno strumento per l’accesso di massa all’informatica, o per l’automazione casalinga, il PC ha avuto fortuna grazie ai fogli elettronici e programmi di video scrittura; come strumento per giochi e per l’elaborazione grafica; come strumento di design e progettazione grafica, architettonica, meccanica; come strumento a basso costo per l’automazione delle funzioni editoriali. Con delle stazioni Commodore Amiga già all’inizio degli anni 90 si sperimentano la post-produzione e l’editing in linea digitale del video in trasmissioni televisive. Dall’1992 è disponibile il video digitale su PC con decompressione mediante software. Oggi vengono integrati correntemente con sintonizzatori e codec digitali-analogici per audio e video, schede di decompressione MPEG, e diversi dispositivi di comunicazione. Possiamo infine dare delle cifre per sottolineare uno degli aspetti più sconcertanti dell’informatica che è la costante e rapida crescita della potenza dei computers, misurata in capacità della RAM, velocità del processore, e capienza del disco rigido: - RAM : dai 48k dell’Apple II ai 32 MB di un PC medio-alto odierno(un incremento di più di 520 volte) - Processore : da 4 MHz a più di 350 MHz(un incremento di circa 75 volte). Di pari passo è aumentata anche la complessità interna del processore, espressa dal numero di transistors che contengono. Finora, si è mantenuta valida la Legge di Moore, enunciata nel 1964, che afferma che il numero di transistors nel processore raddoppia ogni 18 mesi. - Memorie di massa : dai 90k su floppydisk dell’Apple II ai 6GB di un PC medo-alto attuale(un incremento di più di 30.000 volte) Questo effetto, che non ha probabilmente uguali nella storia umana, ha tra le sue conseguenze la rapida obsolescenza delle macchine, la diminuzione dei prezzi dei computer a parità di prestazioni, l’aumento delle dimensioni del software. Alan Mathison Turing Matematico, logico, informatico inglese. Studiò al King’s College di Cambridge; dal 1936 al 1938 operò alla Princeton University con A. Church. Turing è stato uno dei “padri” per le ricerche e le realizzazioni nel settore degli elaboratori elettronici e più in generale dell’informatica e dell’intelligenza artificiale. Nel 1937 pubblicò un lavoro divenuto celebre: On Computable Numbers, with an Application to the Entsheidungs-problem, ristampato varie volte in riviste e libri diversi, in cui compie una rigorosa critica della nozione di “algoritmo” o “procedura effettiva”. In questa occasione definisce delle macchine particolari, a memoria finita ma estendibile illimitatamente durante il funzionamento, dette oggi Macchine di Turino, ed enuncia una tesi, divenuta famosa, che suona così:”algoritmo è tutto e soltanto ciò che può essere elaborato con una opportuna macchina di Turing”. Nel 1939 Turing ritornò al King’s College; durante la seconda guerra mondiale prestò la sua opera nel dipartimento di comunicazioni del ministero degli esteri britannico, nel ’45 passò al National Physical Laboratori, lavorando al progetto di un elaboratore elettronico, nel 1948 divenne rettore all’università di Manchester, operando nel settore dei calcolatori automatici digitali e dell’intelligenza artificiale. Morì per avvelenamento secondo alcuni in modo accidentale, secondo altri per suicidio. Algoritmi e macchine di TURING La teoria della computabilità studia la risolvibilità algoritmica di un problema. Un algoritmo è una procedura completamente definita, articolata in un numero finito di passi, eseguibili meccanicamente in un tempo finito, e corrispondente a un'espressione scritta in un determinato linguaggio. I problemi per la cui soluzione esiste un algoritmo definiscono la classe delle funzioni computabili. Le funzioni computabili possono essere espresse per mezzo di un tipo di definizione molto generale detta ricorsiva che sarà definita più avanti. Il problema di definire in maniera rigorosa la classe delle funzioni computabili porto nel 1930 il matematico Turing al progetto di una macchina di calcolo ideale descritta in figura 2.1. Gli elementi costituenti la macchina di Turing sono: 1. un unità esterna di memoria o nastro 2. una testina di lettura e scrittura 3. una unità di controllo A a stati finiti. Per la macchina di Turing è definito un alfabeto esterno di simboli Xi, e un alfabeto interno di simbolo Qi . Gli ingressi della macchina sono i simboli dell'alfabeto esterno X, mentre l'uscita della macchina corrisponde ad un'operazione di scrittura di un simbolo sull'unità esterna di memoria oppure ad un movimento della testina sul nastro. Lo stato interno della macchina è espresso mediante i simboli Qi dell'alfabeto interno della macchina. Il funzionamento della macchina consiste nell'esecuzione di una serie di passi elementari, in ciascuno dei quali la macchina assume una configurazione totale determinata dallo stato in cui si trova la macchina, dalla cella in esame dall'unità di controllo e dal contenuto di ogni cella della memoria esterna. Si definisce computazione o calcolo di una macchina di Turing una sequenza di configurazioni totali che terminano in uno stato di halt Q0. Lo stato di halt non ammette una configurazione successiva. Il tipo d'algoritmo implementato da una particolare macchina di Turing è definito dalla tavola funzionale della macchina, che corrisponde al programma dell'unità logica. Il concetto di macchina di Turing può essere esteso definendo una macchina di Turing universale in grado di eseguire gli algoritmi di una qualsiasi macchina di Turing dotata di una qualunque tavola funzionale. La macchina universale opererà a partire da una configurazione iniziale che prevede la registrazione su nastro sia della matrice funzionale della macchina da imitare che della configurazione iniziale di questa. La macchina di Turing universale equivale concettualmente ad un computer Von Neumann general purpose. La caratteristica della macchina universale di avere tavole funzionali e simboli dell'alfabeto esterno memorizzati insieme nella memoria esterna equivale, nel caso di un elaboratore Von Neumann, ai programmi e ai dati contenuti contemporaneamente in memoria. L’universalità della macchina di Turino viene evidenziata dalla tesi di Church, la quale restringe il concetto di computabilità a una classe precisa ma molto generale di funzioni, le funzioni parziali ricorsive. Una funzione di n-argomenti f(x1 ,x2 ,...,xn ) è detta ricorsiva se è definibile mediante le equazioni : 2.1 Nella 2.1 g e h sono funzioni note, S(x) è la funzione successore definita come: S(x) = x + 1. La funzione ricorsiva f è detta parziale quando essa non ha un valore definito per ogni n-upla di argomenti (x1 ,x2 ,...,xn ) ed è quindi definita per un set limitato di argomenti. Un esempio di definizione ricorsiva di funzione riguarda l'operazione di addizione, indicando f col simbolo + si ha: 2.2 Nella 2.2 +(x,S(y)) è definito in termini di +(x,y) e della funzione nota successore (h = S). Anche l'operazione di moltiplicazione può essere definita in tal modo, indicando f col simbolo * si ha: 2.3 Nella 2.3 *(x,S(y)) è definito in termini di *(x,y) e della funzione nota addizione (h = +). La tesi di Church afferma che qualunque algoritmo scritto con qualsiasi formalismo può essere calcolato da una macchina di Turing. La formulazione forte di questa tesi dice che qualsiasi sistema fisico reale può essere simulato da una macchina di Turing, con un grado di approssimazione arbitrariamente elevato, con l'ipotesi di poter ignorare i limiti di lunghezza del nastro della macchina e il tempo disponibile per la computazione. Questa tesi evidentemente non può essere dimostrata, esistono però significativi argomenti a suo sostegno. Innanzitutto metodi alternativi elaborati per definire la computabilità hanno sempre portato a classi di funzioni computabili coincidenti con le funzioni parziali ricorsive. Per completare il discorso non si può trascurare l'esistenza di funzioni che non sono parziali ricorsive, per la tesi di Church queste funzioni non sono Turing-calcolabili, e quindi sono ignorate dalla macchina di Turing. Un altro problema non risolvibile è quello noto come problema dell'arresto di una macchina di Turing. Si consideri una macchina di Turing A con configurazione totale iniziale data da una tavola funzionale T e da una parola W contenuta nella memoria esterna, non esiste un'altra macchina di Turing B che con l'input di T e W possa calcolare se la computazione di T si ferma o cicla. L'Elaboratore di Von Neumann I moderni computer digitali sono quasi tutti basati su un'architettura definita nel 1945 dal matematico John Von Neumann nel progetto dell'elaboratore EDVAC L'elaboratore di Von Neumann è costituito da due organi di base, il processore e la memoria centrale (vedi figura 2.2c). Le operazioni di tutti i computer convenzionali possono essere modellate nell’esecuzione del ciclo seguente: 1. preleva un istruzione dalla memoria 2. preleva i dati richiesti da tale istruzione dalla memoria 3. esegui l’istruzione 4. memorizza i risultati in memoria 5. vai al punto 1 FIGURA 2.2c - Semplice rappresentazione dell’architettura di Elaboratore Von Neumann L’elaboratore di Von Neumann è una macchina di calcolo equivalente a quella di Turing, ed è caratterizzata come segue : Linguaggi di programmazione. Tali linguaggi sono utilizzati per esprimere gli algoritmi e sono costituiti da statement che si ottengono applicando un insieme finito di regole di composizione a un numero finito di simboli base. Programmabilità. Si intende in tal modo la possibilità concreta di comunicare all'elaboratore il programma scritto alla macchina. Dal punto di vista dell'utente tale processo di comunicazione può essere mediato da un compilatore. Universalità. Essendo equivalente a una macchina di Turing, un calcolatore Von Neumann può calcolare qualsiasi funzione computabile e quindi, per la tesi di Church, simulare qualsiasi sistema fisico. Sequenzialità. Un computer di Von Neumann ha un architettura sequenziale, esegue infatti una singola operazione elementare alla volta. Inefficienza. I computer di Von Neumann utilizzano in modo non ottimizzato le risorse di spazio, tempo ed energia. Il processore, a causa della sequenzialità con cui esegue le istruzioni, è inattivo per la maggior parte del tempo. Programmabilità strutturale. Per spiegare questa caratteristica ci si deve riferire alla definizione di semiautoma vista in precedenza. Un calcolatore di Von Neumann si dice strutturalmente programmabile perché si può dimostrare che sostanzialmente è un semiautoma, cioè il calcolatore può essere rappresentato come un insieme elementi capaci di eseguire una operazione logica di switch o semplice. La definizione di programmabilità strutturale è legata alla tesi forte di Church, e stabilisce che una macchina strutturalmente programmabile è capace di simulare qualsiasi sistema fisico a condizione che le risorse di tempo e di spazio riservate alla computazione siano illimitate. Inoltre gli algoritmi, espressi in un calcolatore digitale in simboli primitivi di un linguaggio di alto livello, possono essere espressi direttamente in termini alla di primitive computazionali programmazione di una di rete programmabilità strutturale sarà utile per switching, che corrispondono di neuroni analizzare formali. i La limiti generali dell'architettura di Von Neumann. La formulazione forte della tesi di Church, valida anche per gli elaboratori di Von Neumann, suggerisce un legame tra i modelli formali di computazione e i processi dinamici simulabili su un calcolatore. Pensare a un sistema fisico come realizzazione di una computazione significa : 1. identificare gli argomenti o input della funzione computabile considerata con i parametri di descrizione di un certo stato del sistema. 2. considerare i parametri di descrizione di un successivo stato del sistema il risultato della computazione cioè l'output. L'elaboratore di Von Neumann è una realizzazione fisica di un sistema formale che esegue semplici operazioni su stringhe di simboli. Si dice che un computer simula un sistema fisico, mediante le primitive computazionali sopra definite, se gli stati del computer possono essere associati agli stati del sistema con un alto grado di approssimazione, non è necessario comunque che ogni stato della macchina corrisponda a uno stato del sistema. Si è visto che un sistema fisico è simulabile con l'elaboratore Von Neumann, tuttavia molti fenomeni computazionali osservati in natura fanno ritenere che è possibile definire delle macchine di calcolo che incorporano il processo fisico stesso come primitiva computazionale. In tal caso si perde sia il carattere discreto delle primitive computazionali, sia la possibilità di comunicare queste ultime sotto forma di algoritmo alla macchina. Limiti dell’architettura di Von Neumann L'architettura dell'elaboratore di Von Neumann presenta dei limiti di applicabilità e di capacità di calcolo che non potranno essere superati dal solo progresso tecnologico, ossia dal miglioramento delle prestazioni dei processori e delle memorie. Tali limiti sono intrinseci al disegno stesso dell'elaboratore di Von Neumann, e sono di seguito esaminati: Irreversibilità operativa. La modalità in cui un computer tradizionale elabora l'informazione è un processo irreversibile. La funzione logica AND è un esempio di perdita di informazione in un computer. La tabella 2.5 mostra che non è possibile, esaminando le uscite della tabella, risalire agli ingressi che le hanno prodotte. Tabella della verità della Funzione Logica AND. INPUT OUTPUT 0 0 0 0 1 0 1 0 0 1 1 1 Alta dissipazione termica. In un computer digitale i segnali elettrici originano dei cambiamenti di potenziale in diverse regioni spaziali del sistema. Gli elettroni operano con un disturbo termico che in termini di potenziale è circa kT/q Volt dove k è la costante di Boltzmann, T è la temperatura Kelvin assoluta e q è la carica dell'elettrone, a temperatura ambiente (290 K) kT/q = 0.025 Volt. Le operazioni computer digitale devono avvenire Volt. In definitiva si osserva logiche in un con potenziali maggiori di 0.025 che il valore alto di kT/q richiede un'alta dissipazione di potenza che caratterizza come processi irreversibili le operazioni logiche fondamentali di un computer digitale di Von Neumann. Lentezza operativa. Un risultato del modo di operare seriale dell'architettura di Von Neumann è il cosiddetto "collo di bottiglia di Von Neumann". Esso è originato dalla lentezza con cui il processore accede alla memoria. Il trasferimento di dati e istruzioni dalla memoria al processore, prima che quest'ultimo cominci il suo lavoro computazionale, comporta un intervallo di tempo in cui il processore è inattivo. Alla fine della computazione il trasferimento dei risultati alla memoria origina un altro periodo di inattività del processore. Alle inefficienze elencate si aggiunge un generale limite connesso alla programmazione strutturale, infatti una macchina di calcolo reale non dispone di risorse di tempo e di spazio illimitate come richiesto dalla tesi forte di Church per macchine strutturalmente programmabili. Costruire una macchina strutturalmente programmabile significa essenzialmente convogliare lungo canali precisi il fenomeno utilizzato per ottenere la realizzazione fisica della computazione. Controllare un fenomeno fisico significa ridurre il numero di gradi di libertà, e quindi di interazioni, del fenomeno stesso, riducendo in tal modo anche le risorse della computazione. Struttura di un Computer Concettualmente un computer è un sistema di trattamento delle informazioni, costituito da un sistema d’input, che introduce i dati nella macchina, un processore che li elabora servendosi di una memoria, e di un sistema d’output che presenta all’utente i risultati dell’elaborazione. Il Processore Detto anche CPU(central processing unit, unità di processo centrale) è il componente fondamentale di un personal computer, il "motore" che esegue tutti i calcoli e permette alle varie parti del computer di funzionare insieme , ad es. esegue le istruzioni dalla tastiera , elabora i dati , memorizza i risultati e li invia alle periferiche. I processori sono progettati dalle grandi aziende di semiconduttori ; a volte chi progetta il chip non ha la struttura per produrlo (la cosiddetta foundry , la fonderia del silicio ) e ne commissiona la produzione ad altre aziende che hanno questo genere di impianti. INTEL, CYRIX, IBM, AMD, MOTOROLA, NEC, SGS-THOMSON (ST), TEXAS INSTRUMENTS sono alcuni dei nomi che spiccano nel settore e molti altri progettano e/o producono microprocessori, sia per computers che per altri settori industriali e civili. La CPU è costituita da un sottile strato di cristallo di silicio ed ha un’area di circa 1 cm2 su cui vengono impressi diodi, transistors e circuiti. Esegue le istruzioni e i dati dei programmi presenti nella memoria RAM e nei registri interni al processore. I registri sono delle memorie particolari e piu' veloci, in termini di accesso, ad ogni altro tipo di memoria. Qualora il processore sia contenuto in un solo chip e' piu' corretto parlare di microprocessore. Al suo interno ci sono 4 componenti principali e talvolta solo le prime due vengono definite con il termine processore: Control - (la mente) dice cosa fare al datapath, alla memoria e ai dispositivi I/O Datapath - (il braccio) che esegue le operazioni aritmetiche con l'ALU3. Bus - l'interconnessione delle componenti della CPU. Cache - memoria tampone. Bus Riferito al processore, la grandezza del bus è la quantità di dati che la CPU riesce a ricevere nell’unità di tempo. Per es. i bus a 32bit sono 32 corsie incisi sui circuiti stampati che trasmettono 32bit alla volta. Questo insieme di collegamenti elettrici che hanno il compito di portare informazioni da e verso la CPU si distingue in: Data Bus per i nostri dati; Address Bus per gli indirizzi di memoria trasmessi dalla CPU ai circuiti esterni; 3 Arithmetic-Logic Unit, il contabile del computer, costituente una delle sezioni del datapath nella CPU, che gestisce le operazioni aritmetiche quali l'addizione, la sottrazione, gli operatori logici AND, OR. Control Bus per la gestione delle memorie, delle periferiche e delle operazioni da compiere. in senso stretto il BUS non e un componente, ma è la modalità tramite la quale vengono trasferiti i dati tra il processore e la memoria RAM o le unità periferiche. Abbiamo diverse interfacce di BUS: XT – E’ la parte a 8 bit del bus ISA , 20 linee di indirizzo . É il bus dei primi PC . Molte schede attuali sono a 8 bit , ad es. le seriali e parallela addizionali , interfacce per scanner e simili . La frequenza originale era 4.77MHz. ISA (industry standard architecture) - Nata con gli IBM - AT all'inizio degli anni 80. O At bus , aggiunge una componente a 16 bit ad XT bus . É il bus ancora presente su tutte le mainboard , per compatibilitá con schede di ogni tipo , anche perché non esiste una reale necessitá , né tecnica né economica per rifarle in uno standard differente . I connettori , di solito di colore nero , in due pezzi consecutivi , hanno 8/16 linee dati e 24 di indirizzi ; la frequenza dello standard é 8.3MHz , ma moltissimi prodotti possono lavorare a frequenze molto superiori. Micro Channel - Nata nel 1987, ha un bus da 32 bit, una frequenza di 10 MHz e prestazioni di 40 Mbyte al secondo. Non si è sviluppato molto come standard perchè è rimasto ristretto agli IBM che ne detiene il monopolio. MCA - sono slot simili a EISA , che possono portare 32 linee dati e indirizzi, autoconfigurabili e dotati di possibilitá di bus master e burst sincrono . EISA (extended ISA) - Ha un bus a 16 bit, 8 MHz con prestazioni massime di 33 Mbyte/sec. Mantiene la compatibilità con ISA. 32 linee dati e indirizzi , autoconfigurabile , con bus master e gestine condivisa degli IRQ e DMA . Gli slot EISA , di solito di colore marrone , possono accettare schede ISA , che penetrano parzialmente ; la scheda EISA , invece , ha un connettore piú allungato , che permette il contatto con le connessioni a 32 bit . In questo modo é possibile installare anche schede ISA negli stessi slot . VESA (video electronics standards association) Local Bus - Nato nel 1983, costituito da un connettore ISA ed una estensione a 32 bit . Con la possibilitá di arrivare fino a oltre 40MHz in modo asincrono , la possibilitá di bus master e di coesitenza con altri bus sulla stessa scheda , ne hanno fatto uno standard molto diffuso sulle mainboard 486 . Il processore può dialogare direttamente con una, due o tre schede di espansione utilizzando una linea a 32 bit alla stressa frequenza della motherBoard, con prestazioni massime teoriche di 132 Mbyte. Unisce a una discreta potenza un basso costo. Adesso questo standard è scomparso e La sua scomparsa é dovuta ad alcuni fattori determinanti : la dipendenza troppo stretta con l' hardware , che portava spesso ad una non perfetta compatibilitá delle schede inserite sul bus la difficoltá di definire paramentri Plug & Play per questo sistema La rapida introduzione del bus PCI , piú definito ed indipendente dall'hardware e , quindi , piú stabile , ha dato il colpo definitivo al VESA. PCI (peripheral component interconnect) - Nato nel 1984. Crea un ponte fra CPU e dispositivo I/O PCI utilizzando una linea a 32 bit, evitando di gravare (al contrario del VESA) sulla CPU stessa. Supporta l'uso di processori multipli. Le caratteristiche speciali del bus locale PCI assicurano molti vantaggi agli utenti di computer: Alte prestazioni per funzioni grafiche , video e sonore e per periferiche che richiedono un particolare impegno da parte del processore . Le prestazioni del bus locale PCI consentono di eseguire queste applicazioni velocemente e senza problemi . Il bus PCI é in grado di arrivare ad una velocitá di trasferimento d dati di oltre 130MB/s , quindi in grado di far girare applicazioni software sempre piú potenti. Compatibilitá : a differenza di altri tipi di bus locale , le schede aggiuntive , compatibili PCI , dovrebbero funzio nare in qual siasi sistema che supporti l'architettura PCI , indipendentemente dal tipo di processore. (é notizia recente la volontá di Apple di adottare questo bus per i suoi computers). Assieme a PCI é nato anche il concetto di Plug and Play , che , se correttamente applicato e sviluppato , consentirá finalmente una reale possibilitá di upgrades dell' hardware senza le difficoltá fino ad ora esistite . IDE (integratet drive eletronoics) - Proposta da Western Digital e Compaq nel 1986. Le proposte per questo standard sono integrate nella specifica ATA (AT attachement) che definisce un gruppo di registri e di comandi da utilizzare per l'interfacciamento. Supporta fino a due dischi fissi di 528 Mbyte. EIDE (enanced IDE) - Interfaccia proposta nel 1993 da Westen Digital. Supporta fino a 4 dispositivi interni, compresi dischi fissi, CD-Rom e unità nastro (si possono avere ad esempio 4 dischi fissi su un unico PC), e permette l'utilizzo di unità disco fino ad un massimo di 8.4 GigaByte (grazie alla modalità LBA) e trasferimento dati fino a 13.3 Mbyte/sec. I 4 dispositivi su EIDE vengono gestiti da due canali ciascuno in grado di supportare due dispositivi organizzati in configurazione master/slave. La porta principale ha generalmente lo stesso indirizzo e IRQ dell'IDE standard; il sistema operativo necessita di software supplementare per far fronte alle nuove richieste. La capacità di supportare periferiche non a dischi è data dalla specifica ATAPI (ATA Packet Interface), ampliamento di ATA che contiene comandi specifici per i CD. La velocità di trasferimento può essere fino a 11.1 Mbyte/sec utilizzando le metodiche 3 PIO (Input/Output Programmati), un metodo per trasferire dati fra disco e PC; la modalità 4 PIO, più recente, permette velocità superiori (16.6 Mbyte). SCSI (small computer systems interface) - Interfaccia sviluppata nei primi anni 80. Le periferiche SCSI vengono connesse a catena ad un adattatore host SCSI che controlla il sistema; ogni dispositivo connesso deve avere un numero identificativo univoco, non necessariamente sequenziale nella catena. La tipica interfaccia SCSI consente di supportare fino a 8 dispositivi (Host compreso) numerati da 0 a 7 (all'host per convenzione spetta il 7, al disco di boot il numero 0). La maggior parte degli adattatori host permette connessioni sia interne che esterne. Entrambi i capi della catena (interna ed esterna) devono essere terminati con resistenze (tramite prese, ponticelli fisici, configurazioni software). I dispositivi SCSI possono essere Dischi fissi, Cd-rom, scanner, registratori CD, unità nastro, unità disco o cassetta rimovibili. SCSI 1 Stabiliva un collegamento asincrono, in cui le varie unità non conoscevano le velocità delle altre; la velocità di trasferimento era di 3 Mbyte/secondo. SCSI 2 Stabilisce un collegamento sincrono, le unità valutano le loro velocità; la velocità massima h di 5 Mbyte/secondo. Fast SCSI 2 Ultimato nel 1994, raddoppia la velocità de SCSI 2 normale; è la modalità ora più diffusa. Wide SCSI Utilizza un bus a 16 bit (contro gli 8 dei precedenti), pertanto raddoppia la velocità dello SCSI corrispondente non wide; inoltre supporta fino a 16 dispositivi. Ultra SCSI Raddoppia la velocità della SCSI non Ultra; per esempio una Wide Ultra SCSI 2 giunge a 40 Mbyte/secondo. Da considerare la compatibilità verso il basso: un dispositivo SCSI 1 si può connettere a un host Wide Ultra SCSI 2. SCAM (SCSI configured AutoMagically) consente ai dispositivi Plug and Play di impostare automaticamente il numero di identificazione del dispositivo. Connettori - Tipicamente i connettori del bus PCI sono di colore bianco e sono lunghi circa 8,5 cm e dotati di due file di piccoli contatti dorati . I connettori ISA sono di dimensioni maggiori , circa 14 cm per il tipo a 16 bit , normalmente di colore nero , con due file di contatti dorati con una spaziatura ben maggiore di quelli PCI . I connettori EISA sono simili agli ISA , tipicamente di colore marrone e di altezza superiore agli altri . Il local bus VESA è costituito da un connettore simile al PCI , tipicamente di colore marrone e posto in linea con il connettore ISA di cui amplia le funzioni . Tutte le schede ISA e EISA hanno i componenti principali montati sul lato destro della scheda , mentre PCI ha il contrario . Normalmente una mainboard dispone di 3 o 4 slot ISA a 16 bit e 4 PCI . Spesso , a causa delle dimensioni meccaniche imposte dallo standard PC , i connettori ISA e PCI centrali possono essere usati solo alternativamente (in questo caso sono detti concorrenti , perché sfuttano la stessa posizione dello slot di uscita del case). Decodifica Dal punto di vista della tecnologia di decodifica4 delle istruzioni, possiamo distinguere due tipologie di processori: 1) CISC (Complex Instructions Set Computer)è un tipo di CPU in cui la fase di decodifica di un'istruzione avviene in passi successivi. Uno svantaggio di questa filosofia e' che la singola istruzione 5 può richiedere alcuni cicli di clock per essere interpretata dal processore. Un vantaggio dei processori di tipo CISC e' quello di utilizzare un numero minore di istruzioni e quindi di occupare una quantita' minore di memoria. Esempi di CPU CISC sono la famiglia Motorola 68000 installata sui modelli Macintosh precedenti all'uscita del Power Mac, e la famiglia 80x86 della Intel. 2) RISC (Reduced Instructions Set Computer)è un tipo di CPU che permette di eseguire delle operazioni piu' velocemente di un processore CISC perchè si esegue almeno un'istruzione per ogni ciclo di clock. Statisticamente il numero di istruzioni usate effettivamente da una CPU è minore del numero di istruzioni definite nel set di una CPU CISC. Quindi è 4 Decodifica: una delle fasi nelle quali si articola un ciclo della CPU. Per ogni istruzione si hanno diverse fasi come: prelievo (fetch), decodifica, esecuzione e memorizzazione. La decodifica e' la fase nella quale la CPU analizza l'istruzione letta dalla memoria e ne interpreta il significato. 5 Istruzione: il comando singolo che la CPU sa eseguire e che viene raccolta dalla memoria durante la fase di fetch. stato ridotto il set di istruzioni prendendo solo quelle semplici, usatissime nei programmi ed eliminando quelle piu' complesse e poco usate. Queste ultime possono comunque essere ricreate combinando alcune operazioni semplici. L'idea e' quella di fornire un processore con poche istruzioni e pochi modi di indirizzamento, ma interamente implementato in hardware, in contrapposizione con le CPU CISC, dotate di istruzioni piu' ad alto livello ed implementa in micro-codice. Oggi, si considerano spesso RISC anche processori con istruzioni derivate da vecchie implementazioni 6 CISC (tipo il 68040/060 con i 680x0 fino allo 030, od il Pentium con gli80x86), poiche' si bada piu' all'implementazione completamante hardware delle istruzioni che all'instruction set. Processori come il PowerPC, infatti, hanno portato a questa evoluzione del termine introducendo in un set di istruzioni tipico di altre CPU RISC - di nome e di fatto, tipo il MIPS o l'Alpha - istruzioni piu' complesse ma ugualmente implementate in hardware, che ne incrementano le prestazioni notevolmente rispetto ai concorrenti. Un'architettura RISC - nel senso moderno - permette un'implementazione superpipeline 7e superscalare, in quanto piu' complessa solo da un punto di vista tecnologico, ma piu' facile da gestire. Da un punto di vista della sintassi assembler, si distingue una CPU di filosofia CISC da una RISC (indipendentemente dall'implementazione) se sono presenti istruzioni che permettono molti modi di indirizzamento in sorgente ed in destinazione. Il PowerPC, ad esempio, si prensenta con istruzioni ad operandi fissi, ma gode di numerose varianti della stessa istruzione per opearazioni piu' complesse. Specifiche tecniche della CPU Velocità - La velocità delle CPU si misura in frequenza di lavoro o di clock; a parità di frequenza una CPU di generazione superiore e più veloce di una inferiore (fra 486 e Pentium rapporto di 1:2). Il Clock è un segnale periodico, ottenuto dalle vibrazioni di un cristallo di quarzo, che si può trovare internamente o esternamente alla CPU, sottoposto al passaggio di una 6 Implementazione: realizzazione di un istruzione in assembly language o di una funzione o procedura. Nei linguaggi di programmazione solitamente si intende la realizzazione di cio' che viene offerto da un'interfaccia. 7 Pipelining: Coda di attesa delle istruzioni e/o dei dati fra le sottounita' della CPU. Se ogni sottounità di elaborazione preleva i dati da una pipe sempre tenuta piena, andrà sempre al massimo della velocità perchè' non dovrà mai fermarsi ad aspettare l'arrivo dei dati. Scaricando i dati elaborati in un'altra coda, senza aspettare che l'unita' ricevente sia pronta si guadagna tempo. Si parla allora di Pipeling fra sottounità di elaborazione. Si immagini una catena di montaggio e un insieme di piccoli magazzini intermedi dove prelevo i pezzi da lavorare e scarico quelli lavorati, senza dover aspettare che il collega della fase successiva sia pronto. Super pipeline viene usato per definire una CPU con un pipeline con un numero di stadi maggiore o uguale a 5. corrente elettrica; questo segnale viene poi normalizzato e stabilizzato elettronicamente da un chip avente quella specifica funzionalità. Nel nostro caso sincronizza le operazioni da compiere, tramite impulsi alla CPU (o alla scheda madre o ad altre periferiche). La frequenza di clock, che si misura in MHz, non è l’unico e nemmeno il più importante fattore che determina la velocità utile di un calcolatore; ad influire sulla velocità di un calcolatore sono: Le interferenze di software(il tempo del sistema operativo per svolgere le proprie mansioni) Le interferenze di hardware(il tempo dalle diverse unità del calcolatore e le periferiche per svolgere pure esse il loro lavoro) Il tempo di accesso alla memoria centrale(RAM) e la quantità della stessa Il livello di parallelismo(indirizzamento a16,32,64 bit) CPI (cicli di clock per istruzione) Instuction count(numero di istruzioni nel programma) Clock cycle time e Clock rate Il tempo impiegato per un ciclo di clock(Clock cycle time - ns) è inversamente proporzionale alla frequenza di clock(Clock rate); quindi aumentando il clock cycle time si rallenta il clock rate. Es. 10ns = 10/1.000.000.000 = 1/100.000.000 = 100 milioni di cicli al secondo = 100MHz Il numero totale di cicli di clock per un programma(Cpu clock cycles) è uguale a: CPI x instruction count o conoscendo i tipi differenti di istruzioni e le corrispondenti CPI, la formula è: (CPI x C) dove C è il numero di istruzioni delle classi eseguite, mentre CPI è la media del numero di cicli di clock per le classi di istruzioni. CPU(execution)time e performance la prestazione è inversamente proporzionale al tempo di esecuzione (execution time). Performance = 1/execution time; Performance ratio = performance A/performance B; ossia il rapporto di prestazione. Es.: un programma viene svolto dalle macchine A eB rispettivamente in 5 e 10 sec.; il rapporto di prestazione è 2, quindi la macchina A è due volte più veloce di B. L’execution time è il tempo speso dal processore per l’esecuzione di un programma, escludendo il tempo dell’I/O, e l’esecuzione di altri programmi. Si divide in: 1- User cpu time tempo speso per il programma 2- System cpu time tempo speso dal sistema operativo per supportare il programma CPU time = cpu clock cycle x clock cycle time MIPS Million instruction per second(Milioni di istruzioni al secondo) è un unita di misura che ci informa su quante operazioni una CPU riesce ad eseguire in un secondo; questo è anche un indice di velocità. MIPS = clock rate/(CPI x 1 milione) inversamente al execution time = instuction count/MIPS x 1 milione. È un unità di misura molto intuitiva che specifica la velocità di esecuzione di istruzioni ma non permette di dedurre proprietà generalizzate dei calcolatori perché: non possiamo confrontare due calcolatori in MIPS con differenti instruction set una macchina non ha una velocità MPS singola perchè varia dall’esecuzione dei programmi MIPS può variare inversamente alla perfomance MFLOPS Million floating-point per second(Milioni di operazioni in virgola mobile al secondo) è un unità di misura per la CPU avente meno condizioni del MIPS per il confronto dei calcolatori perché si basa sulle operazioni anziché sul numero di istruzioni ma è utile solo con quei programmi che sfruttano operazioni floating-point8(FP). Specifiche fisiche Vcore e VI/O I termini Vcore (Core Voltage = tensione del "core" ) e Vi/o (I/O Voltage = Tensione dell I/O) sono utilizzati quando si parla delle recenti CPU. "Core" non 8 Virgola mobile , notazione scientifica esponenziale che permette di scrivere in spazi ridotti numeri reali molto lunghi, sia grandi che piccoli. Ciò permette di rappresentare più cifre decimali escludendo gli zeri. é il cuore in dialetto partenopeo , ma ha un significato similare ; é una parola inglese che indica il centro di qualche cosa; riferito ad una CPU ne indica la parte centrale , in sostanza il processore vero e proprio. In questo contesto I/O si riferisce a quelle altre parti del chip che consentono al processore di interfacciarsi con il resto del sistema. Le tensioni di alimentazione di queste due parti non sono necessariamente uguali. La tensione tipica dei circuiti logici che costituiscono la maggior parte della mainboard e delle schede é di 5V. Con questa tensione , possono essere realizzati componenti con un certo rapporto tra velocitá e potenza dissipata . Con il progredire della tecnologia , si é avuta una riduzione degli spessori dei materiali che costituiscono il semiconduttore per ottenere grandi velocitá con minima dissipazione di potenza . Questo ha portato alla necessitá di ridurre contemporaneamente la tensione di alimentazione a 3.3V . Gia' con le CPU 486 si era evidenziato questo passaggio : le prime a 5V , le ultime a 3.3V , mantenuti poi nelle CPU su Socket 7, in cui sia il processore vero e proprio sia la sua area di interfaccia sono alla medesima tensione a 3.3 o 3.5V. Il processore lavora alla stessa tensione dei circuiti esterni piú vicini , mentre altri circuiti , ad esempio le SIMM , lavorano a 5V e sono dotati di circuiti adattatori appositi per adeguare le due differenti tensioni. Un ulteriore riduzione negli spessori dei semiconduttori ha portato ad una ulteriore discesa della tensione al di sotto dei 3.3V. Al momento risulta improponibile l'adeguamento di tutte le parti esterne alla CPU per una tensione cosi' bassa , per cui é necessario che all' interno del chip si trovi un' area di interfaccia che adatti la bassissima tensione del processore a quella un pó piú alta del resto della logica. Da qui la necessitá di avere CPU alimentate a due tensioni diverse. VRM L'elettronica digitale standard ha come tensione di funzionamento 5 volt in corrente continua. Questa é ottenuta attraverso un alimentatore che converte la tensione alternata della rete ENEL nei valori richiesti dai vari chips. Ad esempio le CPU 386 e le prime 486 erano circuiti a 5 volt. Lo sviluppo della tecnologia ha portato ad una riduzione della tensione, che é diventata 3.3 volt; questo permette di ottenere migliori prestazioni con consumi minori. Restano in ogni modo parti del circuito che funzionano a cinque volt. Ad esempio le CPU 486 delle ultime generazioni ed il Pentium Intel non MMX hanno questa struttura. Poiché l’alimentatore AT standard non dispone della tensione di 3.3V questa deve essere ottenuta con un ulteriore circuito riduttore, posto sulla mainboard (VRM, Voltage Regulator Module = Modulo di Regolazione della Tensione). Un ulteriore passo nello sviluppo della tecnologia ha portato alle CPU dell' ultima generazione in cui la parte centrale della CPU, detta core , é alimentata con una tensione ancora piú bassa , ad es. a 2.9 volt , mentre permane la necessitá della tensione 3.3 volt per l' interfaccia con gli altri chip della mainboard (tensione di I/O o Vi/o). A questo gruppo appartengono i Pentium Intel MMX, AMD K6 e Cyrix/IBM della serie /L. In questo caso la CPU richiede non una, ma due tensioni ridotte non disponibili direttamente dall' alimentatore e quindi sono necessari due VRM. Con l'affermarsi dello standard ATX, la necessitá del doppio riduttore viene a cessare, perché il 3.3 volt é fornito direttamente dall'alimentatore ATX ed il VRM a bordo della scheda serve ad alimentare il core della CPU. Solitamente la bassa tensione delle CPU tipo Intel Pentium Pro richiede una corrente elevata; si è fissato uno standard per un modulo VRM da inserire su un opportuno connettore. Questo modulo, per avere un’elevata efficenza e quindi un basso riscaldamento é di tipo switching. Ogni CPU dispone di un modulo VRM proprio, che deve essere presente per il corretto funzionamento. Nelle mainboard Pentium , data la minore richiesta di potenza, il VRM è costituito da uno o piú regolatori di tensione lineari , normalmente dotati di alette di raffreddamento in alluminio , soluzione piú semplice e conveniente , ma con una efficienza minore ed un maggiore riscaldamento nel caso di forti assorbimenti di potenza. E’ quindi da tenere in considerazione che le CPU 686 Cyrix/IBM e AMD K6 hanno un consumo elevato e sviluppano un notevole calore; ció può produrre un surriscaldamento del regolatore di tensione, che, nonostante l’abbondante radiatore, può richiedere un’ulteriore fonte di raffreddamento. Per l’identificazione del doppio VRM si può procedere nel seguente modo: 1 - identificare sulla scheda il VRM, facilmente riconoscibile, essendo costituito principalmente da un’aletta in alluminio anodizzato nero di grandi dimensioni 2 - osservare questa aletta : se ha montati 2 regolatori a tre terminali , uno su ogni lato del radiatore alettato , allora si tratta di un VRM doppio ed é adatto per le CPU con Vcore ridotta ( tipicamente 2.9/2.8V ). Se é montato un solo regolatore (singolo VRM ), la mainboard non é adatta a fornire la tensione Vcore separata. In alcuni casi (es. SUPERMICRO P5xx o P6SNA) il modulo VRM é integrato sul circuito stampato principale della mainboard. Negli altri casi il modulo VRM consiste in un alimentatore switching , montato su un circuito stampato che va inserito in un connettore specifico , di solito di colore bianco , posto vicino alla CPU. Normalmente i moduli VRM sono usati per le mainboard Pentium Pro , dove Vvrm = 3.3V (la sequenza degli switch in tal caso é on on on on off ) , ma possono essere utilizzati in tutte quelle situazioni dove la CPU richiede una tensione diversa da quelle fornite dall' alimentatore . VRM, con il relativo connettore a 40 poli, sono uno standard adottato dai maggiori Costruttori. Voltage ID Voltage ID é un segnale fornito ai pin d’input dei VRM intelligenti per controllarne la tensione. I VRM per Pentium Pro possono avere 4 pin di controllo, mentre quelli per Pentium II ne hanno 5. Questo rende automatico l' adattamento tra la tensione ed il processore, evitando l' intervento manuale di spostamento di jumper ed i possibili errori conseguenti. Le definizione dei VRM ID sono uno standard industriale. Socket (zoccolo) Come per tutti i componenti elettronici , la possibilità di inserire il componente stesso su uno zoccolo permette una facile sostituzione in caso di guasto. Sono normalmente inseriti su zoccolo : 1. i componenti che devono poter essere sostituiti per aggiornamento (ad esempio le PROM , EPROM o Flash) 2. i componenti che possono essere sostituiti per ragioni varie (ad esempio gli oscillatori del clock) 3. i componenti più recenti , per i quali non esistono ancora dati sufficienti a determinare il tasso di guasto e che il costruttore ritiene opportuno , per precauzione , installare su zoccolo 4. i componenti ad alta integrazione , più sensibili ai problemi di saldatura Tra queste categorie si trovano anche i processori , che , normalmente , non vengono saldati al circuito stampato principalmente perché il costruttore della scheda madre , che di solito non é il costruttore del processore , tende a progettare un prodotto che sia quanto più possibile universale , ovvero possa supportare diversi modelli o tipi di CPU . Se , nelle prime realizzazioni quasi tutti i componenti attivi erano zoccolati , a causa del punto 3 di cui sopra , nelle versioni più recenti solo la CPU ed il BIOS hanno questa opzione . Ovvio che esistono eccezioni , in quanto schede a basso livello possono avere il chip del BIOS saldato , per motivi economici , o anche la CPU , del tipo a montaggio superficiale. In tal caso questi due componenti non sono facilmente rimovibili e richiedono speciali attrezzature. Sono altresì saldati , di solito , i processori dedicati ad usi speciali, come i controllori dei dischi o i chipset delle schede addizionali. Al di la di questi casi , comunque , la classica CPU del PC é sempre stata installata su uno zoccolo. Inizialmente i processori delle prime generazioni (8088/8086) erano in package del tipo DIL a 40 piedini , il che rendeva sufficiente l'impiego di zoccoli standard DIL , molto diffusi ancora oggi. Con l'aumentare delle prestazioni e delle funzioni si é reso necessario un aumento considerevole dei pin , per cui il package DIL é stato sostituito da altri modelli , inizialmente quadrati (PQFP) con i pin sui lati oppure il classico PGA ceramico con i pin sul lato inferiore . I PQFP , limitati ai 386/386SX e ad alcuni coprocessori matematici , dispongono di uno speciale zoccolo che richiede un opportuno attrezzo per l' estrazione e l'inserzione , che risultano essere comunque operazioni piuttosto critiche. Il PGA ceramico , invece , viene adottato per i processori dal 386 in avanti e resta ancora adesso la sagoma tipica delle CPU di ultima generazione , passando dai 486 agli attuali AMD K6 e Cyrix M2 . Con I Pentium MMX delle ultime serie (ed attualmente con i Celeron 370 pin) il PGA diventa PPGA , ma sostanzialmente resta immutato il sistema di connessione. Se per i processori 386 con un numero di pin ridotto il classico zoccolo "con i contatti a tulipano" la cui inserzione e disinserzione richiedono un certo sforzo meccanico , con i 486 e poi i Pentium il numero di pin cresce notevolmente e diventa sempre più arduo inserirli e disinserirli senza danneggiare i pin che sono meccanicamente poco resistenti. In questo periodo vengono prodotti anche attrezzi per aiutare l'operazione di disinserzione . Pero , nel contempo , i modelli di CPU proliferano , inizialmente differenziandosi per il clock , poi per altri fattori costruttivi , dipendenti anche dal fatto che Intel comincia ad avere numerosi concorrenti che producono CPU simili . I costruttori di schede madri si adeguano , dapprima rendendo sostituibile il generatore del clock , poi realizzando sistemi con clock programmabili e ponticellature per configurare le diverse famiglie di CPU . L'Utente , ma soprattutto l'operatore del settore , comincia a desiderare un sistema più pratico per installare la CPU . Già da tempo alcuni produttori di attrezzature per test , come ad esempio AMP e Textool , avevano sviluppato degli zoccoli per i sistemi di collaudo , dove era primario non perdere tempo nel sostituire i componenti sui banchi di prova e , soprattutto , effettuare le operazioni relative senza danneggiarli . Questi zoccoli , invece di avere un contatto fisso a molla avevano i contati divisi in due parti di cui una fissa ed una mobile , azionata con una leva ; il componente veniva posizionato sullo zoccolo aperto , poi le parti accostate azionando la leva . Cosi era possibile inserire e disinserire il componente senza alcuno sforzo e senza danneggiare i pin . Detti ZIF (Zero Insertion Force = assenza sforzo di inserzione) , inizialmente erano estremamente costosi ; vengono semplificati ed installati sulle schede madri e l'immediata praticità del metodo ne avvia la diffusione generalizzata ed ora non c'é scheda senza lo ZIF. Ovviamente un prodotto si diffonde più facilmente se attorno ad esso sussistono possibilità di espansione o modifica semplici ed economiche ; il PC prevale proprio per essere un sistema aperto che permette di sostituire o modificare la struttura con il cambio delle varie parti . Quindi , i produttori di CPU devono attenersi ad un minimo standard che permetta l' intercambiabilità delle parti ; dovendo produrre processori intercambiabili pur rispettando i brevetti altrui , ci si trova in accordo almeno nella creazione di standard relativi al bus ed alle interfacce fisiche con il resto del sistema , tra cui , ovviamente , il formato del package. Se per i primi anni di vita del PC Intel é stata l'unico fornitore di CPU , l' ingresso sul mercato di Cyrix e AMD (e la stessa Intel con gli Overdrive) rendono disponibili ampie possibilità di aggiornamento dei sistemi , a patto che le schede madri supportino i nuovi prodotti . La presenza degli standard di fatto che si vengono via via a creare consente anche all' utente finale la possibile sostituzione della CPU . Gli standard elettrici e meccanici prendono il nome di Socket (zoccolo , in inglese) . Quindi , il nome "Socket" con la S maiuscola applicato alle CPU , non indica solo la forma meccanica , ma, contemporaneamente , anche l'interfaccia elettrica , la tensione di alimentazione , la disposizione dei segnali , ecc. , ovvero l'intero set dei particolari che rendono una CPU adeguata ad inserirsi su un certo zoccolo ; é importante comprendere questo in quanto la forma fisica dello ZIF può essere comune a diversi standard , mentre non lo é la compatibilità elettrica. In particolare un problema c'è sempre stato per quanto riguarda le tensioni di alimentazione delle CPU che variano con il modificarsi delle tecnologie costruttive . Va notata la soluzione degli OverDrive , che , dove necessario , prevedono dei riduttori di tensione direttamente installati nel package delle CPU per derivare le tensioni ridotte da quella principale . Sono in commercio anche zoccoli dotati di questi riduttori per inserire CPU a tensioni basse in Socket che non ne sono dotati. Standard: Socket 1 : originariamente é stato il nome del Socket dell' OverDrive Intel della classe 486 . Si trova sulle schede madri 486 che prevedevano l'aggiornamento con questo processore . La CPU é di forma quadrata , PGA ceramico , con una tensione di alimentazione di 5 volt e 169 pin . Supporta CPU 486 e 486DX e l' OverDrive 486DX4 , ma non il Pentium OverDrive che ha la stessa forma , ma un numero maggiore di pin . Socket 1 non é la stessa cosa del primo zoccolo a 168 pin per il 486 originale ed impiegato in moltissime schede madri e che non é in grado di accogliere l'OverDrive. Nelle prime serie i Socket per le CPU PGA raramente erano del tipo ZIF . Nell'immagine uno zoccolo economico per le CPU 80486 , privo del sistema ZIF . L'inserzione della CPU avveniva a pressione e per la disinserzione era consigliato l'uso di un piccolo attrezzo , simile ad un rastrello , impiegato per fare leva tra la CPU e lo zoccolo senza danneggiare i delicati. Socket 2 : é uno zoccolo 486 previsto per supportare i Pentium OverDrive . é presente sulle schede madri 486 più recenti ed é simile al Socket 1 , da cui si differenzia per il numero maggiore di pin , disposti su una riga in più. Socket 3 : é il più recente zoccolo delle schede 486 , in genere del tipo ZIF . Inizia con questo standard la disponibilità di una tensione inferiore a 5V , tipicamente 3.3V , selezionabili con ponticelli . la forma continua ad essere simile , con un numero di pin praticamente uguale a Socket 2 . Da notare , pero , che nel periodo dei 486 la situazione é parecchio confusa , questo dovuto alle differenze che si creano tra i vari costruttori che combattono attorno ai vari brevetti . Vengono prodotte CPU con e senza coprocessori , con PGA a 168 o169 pin , con sub assembly per il coprocessore ed i vari OverDrive . La presenza di cosi tante variabili rende le schede madri ricche di una selva di ponticelli e la corretta configurazione della CPU diventa un'operazione di alta magia rituale , che , nonostante gli adeguati scongiuri , non sempre ha successo . Lo standard dello zoccolo non é ben chiaro e non tutti i prodotti sono realmente compatibili elettricamente , anche se lo sono meccanicamente . Le CPU 486 sono prodotte da numerose manifatture ed i problemi di compatibilità sono evidenti . Socket 4 : é lo zoccolo dei primi Pentium a 60 e 66 MHz , alimentati a 5 volt. Le CPU sono sempre del tipo PGA , con ben 273 pin . Socket 5 : é lo standard per i processori Pentium della fascia da 75 a 133 MHz , non MMX . Socket 6 : é l'ultimo zoccolo per i processori della classe 486 di Intel , simile a Socket 3 . Non risulta sia stato impiegato praticamente , in quanto nello stesso periodo erano disponibili ampiamente i processori della classe Pentium. Più semplice diventa la situazione di compatibilità con i processori della classe Pentium , anche se poi si sono formate differenziazioni tra i package con l'introduzione delle CPU Intel su Slot 1 e Slot 2 . Socket 7 : "Sua Eccellenza il Socket" , previsto per le CPU della classe Pentium ; é ormai lo standard per i vari MMX , K6 , 6x86 . Socket 7 é uno ZIF . Le schede madri dispongono alimentatori multipli in grado di produrre le tensioni inferiori a 3.3V richieste dalle più recenti tecnologie costruttive , anche se si é verificata una certa confusione per l'eccessivo proliferare di tensioni intermedie . Da osservare che lo standard Intel delle CPU MMX prevede solo una alimentazione a 2.8V . La compatibilità tra le diverse CPU viene ottenuta attraverso il BIOS che , riconosciuto correttamente il modello del chip , invia gli opportuni segnali di inizializzazione del chipset . Spariscono le orde di ponticelli che avevano reso grama la vita agli utenti delle ultime generazioni di schede 486 . La gestione soft , assieme alla necessita di spazio per i dati della configurazione del sistema e del Plug and Play , rende indispensabile il BIOS facilmente aggiornabile , determina la fine delle EPROM e l' impiego generalizzato delle Flash o EEPROM . Socket 8 : é lo "zoccolone" per Pentium Pro , progettato per la forma rettangolare di questa CPU , forma dovuta alla presenza del dual-cavity che contiene la CPU vera e propria e la cache . Socket 8 supporta solo i processori Pentium Pro Intel ed i loro OverDrive e non é stato utilizzato da altri costruttori . Socket 8 é il primo zoccolo per i processori con bus P6 , che migreranno sullo Slot 1 , per ragioni sia tecnologiche che di costo .Lo zoccolo ha una forma rettangolare per accogliere la CPU con il dual acvity package (due vani interni per la CPU vera e propria e per la cache) .Si nota in alto un minuscolo integrato a 8 piedini che é il sensore termico usato per la misura della temperatura della CPU , oltre a molti piccoli componenti passivi necessari al funzionamento della scheda . Quelli piú grandi sono condensatori elettrolitici al tantalio .Inciso sulla plastica , in basso a destra , il marchio del costruttore , la nota AMP , uno dei maggiori a livello mondiale (particolare da Supermicro P6SBA) . 370 pin : la sorpresa di fine 1998 é la ricomparsa di un simil-Socket 7 per le CPU della classe P6 . Il Celeron , per diventare sempre più un entry level a basso prezzo , abbandona lo Slot 1 e ritorna alla "vecchia e cara " forma PGA . 370 pin , pur essendo uno ZIF simile meccanicamente a Socket 7 non é assolutamente compatibile con le CPU Socket 7 , in quanto si tratta di una struttura con bus P6 e con chipset adeguati a questa architettura .Notate che la scritta incisa nella plastica dello zoccolo indica chiaramente che si tratta di uno zoccolo PGA 370 .Al centro si nota il sensore termico usato per la misura della temperatura della CPU , oltre ad un grande numero di piccoli componenti passivi necessari al funzionamento della scheda (particolare da V370B di EPOX) Slot 1 : Intel abbandona il PGA per le CPU ad alto livello e converte la struttura in un circuito stampato pieno di componenti , chiuso in una scatoletta plastica dotata di radiatore , detto SEC . Il Socket non é più quadrato , ma diventa simile allo slot di una scheda addizionale , dovendo ricevere il connettore del circuito stampato del SEC .Il colore tipico é marrone , come gli slot del bus EISA o VLB ; le dimensioni sono particolari e anche la posizione tale da non poter essere confuso con uno slot per schede di espansione . Una tacca impedisce l'inserzione errata della CPU .Anche il sistema di fissaggio é totalmente modificato e richiede una incastellatura plastica e varie minuterie , dette Retension Mechanism . Slot 1 é previsto per CPU della classe P6 , quindi Pentium II , Celeron e successivi ; é anche possibile installare un Pentium Pro con un opportuno adattatore , trattandosi comunque di una CPU P6 . Slot 2 : Intel procede con gli "slot" , estendendo il numero 1 con numerosi segnali e controlli che danno origine al più grande Slot 2 . Sempre previsto per CPU della classe P6 , nasce esplicitamente con Xeon e dovrebbe supportare i futuri processori della fascia più alta . Su Slot2 é possibile installare anche Pentium II con l'opportuno adattatore , trattandosi comunque di una CPU P6 .Il colore tipico é nero ; le dimensioni e la posizione ne rendono impossibile la confusione con altri zoccoli . Una coppia di tacche impedisce l'inserzione errata della grossa CPU .Slot 1 é previsto per CPU della classe Xeon , ma essendo questi compatibili con il bus P6 é anche possibile installare un Pentium II con un opportuno adattatore . Slot A : Dulcis in fundo , ci mettiamo pure questo . Mentre Intel fa una rimpatriata sul PGA con il Celeron 370 pin , AMD , dopo aver strenuamente difeso il Socket 7 , passa ad un simil-Slot1 per le sue future CPU K7 . La tabella seguente raccoglie i dati principali delle specifiche relative ai vari standard Nome Pin Socket 1 169 Socket 2 238 Tensione tipica 5 5 Classe 486 486 Processori supportati 80486DX, 80486SX, 80486DX2, 80486DX4 OverDrive 80486DX, 80486SX, 80486DX2, 80486DX4 OverDrive, Pentium OverDrive 80486DX, 80486SX, 80486DX2, 80486DX4, Socket 3 237 5 / 3.3 486 Socket 4 273 5 Pentium Pentium 60-66, Pentium OverDrive Socket 5 320 3.3 Pentium Pentium 75-133 MHz, Pentium OverDrive e AMD 5x86, Cyrix 5x86, Pentium OverDrive OverDrive MMX Socket 6 Socket 7 235 321 3.3 2.8(2.2)/ 3.3 486 Pentium MMX non impiegato Intel Pentium e MMX 75-233 MHz , Pentium OverDrive , Cyrix 6x86 e 6x86MX , AMD K5 e K6 Socket 8 387 3.1 / 3.3 P6 Intel Pentium Pro 370 pin 370 3.3 P6 Celeron 370 pin Slot 1 242 2.0 / 3.3 P6 1.8 / 3.3 P6 Slot 2 Slot A AMD K7 Intel Pentium II, Pentium Pro con adattatore , Celeron Intel Xeon e successivi , Pentium II con adattatore AMD K7 Il fattore di moltiplicazione Giá a partire dalle CPU 486 , é diventato comune avere per il processore un clock piú elevato di quello generale del sistema , moltiplicandolo per un fattore variabile da 1.5 in su all' interno della CPU stessa . Questo é possibile perché la struttura interna del chip puó essere progettata senza difficoltá in modo tale da poter operare con valori di clock molto piú elevati di quelli possibili al resto del circuito . La cosa é ovviamente vantaggiosa , in quanto piú veloce é il clock , piú breve é il tempo necessario per svolgere la serie di cicli che compongono una istruzione del software o una attivitá interna del processore ; piú clock , piú velocitá e quindi piú prestazione del sistema .É ovvio che questo beneficio si estende solo all' interno della CPU , ovvero all'unitá logicoarimentica (ALU) , al coprocessore matematico (FPU) , ai registri interni ed alla cache L1 e non interessa le altre parti del circuito del PC , se non indirettamente , attraverso le linee di controllo e di scambio dati del processore .Come nel caso del clock , le recenti famiglie di CPU sono state progettate per disporre di piú valori possibili di moltiplicatore , onde permettere uno sviluppo semplice tra un modello ed il successivo e la maggior compatibilitá possibile tra i vari modelli , legata al tipo di socket usato (es. Socket7, ecc.) . Praticamente , la CPU ha alcuni pins di programmazione che determinano il valore del moltiplicatore ; questi pins vengono chiamati BF e possono essere uno , due o tre , cioé BF0 , BF1 , BF2 . La funzione dei pins BF é definita nel progetto della CPU e dipende quindi da come il chip é stato realizzato ; alcune CPU dispongono di uno solo di questi pins , la maggior parte di due e le piú recenti hanno tutti e tre ; inoltre , non in tutte le famiglie tutti i pins sono attivi oppure sono collegati a moltiplicatori diversi.. I pins BF hanno un pullup interno che li mantiene a livello alto (1) e sono portati a livello basso (0) con jumpers . (Da osservare che la presenza di tre pins BF é , per ora , limitata alle CPU AMD K6 ; solo le mainboards piú recenti , ad es. Supermicro P5MMA98 e P5MMS98 , hanno jumpers per controllare tutte e tre le linee , mentre la maggior parte delle schede madri dispone solo dei jumper per BF0 e BF1. Il valore dei BF viene rilevato solamente durante la fase di reset del processore ; questo per evitare qualunque problema durante il funzionamento del sistema . In ogni caso , é buona regola non modificare alcun jumper a sistema acceso. La tabella seguente riporta le configurazioni tipiche dei pins BF per le CPU Intel Pentium. BF1 BF0 Moltiplicatore Bus/Core frequency 0 0 166/66 , 150/60 2,5 x 0 1 200/66 , 180/60 3x 1 0 133/66 , 120/60 2x 1 1 100/66 , 75/50 (233/66) 1,5 x (3,5x) É da osservare che la funzione delle linee BF puó essere variata con una diversa realizzazione del chip della CPU ; ad es. per Intel Pentium 233MMX la posizione del moltiplicatore 1,5 x vale in realtà come 3,5 x , per poter arrivare a 233MHz con clock di 66MHz . Le CPU AMD K6 hanno 3 linee di controllo del moltiplicatore , di cui sono attualmente sono utilizzate solo le prime due , come per Intel Pentium 233MMX . BF2 BF1 BF0 AMD K6 1 0 0 2.5x 1 0 1 3x 1 1 0 2x 1 1 1 3.5x 0 0 0 4.5x 0 0 1 5x 0 1 0 4x 0 1 1 5.5x Le CPU 6x86 hanno attiva solo la linea BF0 e la scelta é limitata , in pratica , al solo x2 . Le CPU 6x86MX hanno la stessa configurazione delle altre MMX . Le CPU Pentium II hanno quattro linee di BF , con le seguenti configurazioni possibili , di cui sono attualmente in uso le prime quattro : Molt. 3 2 1 0 2.5x 1 0 0 0 3x 0 1 0 0 3.5x 1 1 0 0 4x 0 0 1 0 4.5x 1 0 1 0 5x 0 1 1 0 5.5x 1 1 1 0 6x 0 0 0 1 Non in tutte le CPU i pin BF hanno sono abilitati , dipendendo sia dal modello , sia dalla presenza del dispositivo anti-overclock , che limita il fattore di moltiplicazione disabilitando uno dei pin BF . Storia: Quando Intel rilasciò il Pentium, cessò di classificare i processori con delle cifre. Fino ad allora le CPU erano identificate con dei numeri: 8086, 80286, 80386 e 80486. Dopo quest’ultimo, quello che si sarebbe dovuto chiamare 586 venne chiamato Pentium. Il motivo fu un’astuzia squisitamente commerciale per aggirare una normativa internazionale che vieta di registrare il marchio di un prodotto con una sigla composta da numeri. Le società AMD e Cyrix, concorrenti di Intel, avevano prodotto, fino a quel momento, propri processori chiamandoli 386 e 486 che non davano, comunque, le stesse prestazioni di Intel. CPU ANNO Transistorb interni 8086/8088 1978 29.000 80286 1982 134.000 Intel 386 DX 1985 275.000 Intel 486 DX 1989 1.200.000 Pentium 1993 3.100.000 Pentium Pro 1995 5.500.000 Pentium II 1997 7.500.000 Sistema di Input e Output – I/O Insieme di elementi che permettono di immettere(input) o emettere(output) i dati nel computer. I primi sono rappresentati tipicamente da una tastiera e da un mouse a cui si possono aggiungere un microfono, tavolette grafiche(che consentono di disegnare facendo apparire il disegno sullo schermo), penne ottiche e modem; l’output è costituito solitamente da uno schermo, da una stampante, da altoparlanti e dal modem. In senso più specifico l’I/O(acronimo di Input output), indica tutti quei circuiti e dispositivi che consentono alla CPU di colloquiare con l’esterno, come stampanti, video, tastiera, ecc. I/O controller Nella generazione attuale delle mainboards il controllo delle linee di I/O é compito di uno specifico circuito integrato , detto I/O controller. Si tratta di circuiti integrati con numerosi pin , del tipo a montaggio superficiale ( surface mount ) , saldati direttamente sulla scheda ; questi chip gestiscono le due seriali veloci tipo 16550 , la porta parallela programmabile SPP/ECP/EPP , la porta IR , la porta mouse PS/2 , il controller del floppy disk. Le risorse di questi speciali chip possono essere programmate nel Setup del BIOS con la finestra PERIPHERALS . L' accesso alle periferiche avviene con connettori a spina multipolari sulla mainboard , a cui si accoppiano connettori femmina fissati a pressione ( crimpati ) su cavi piatti ( flat cables ) ; un indice , che puó essere una o piú tacche o naselli o fori ciechi sul connettore e/o una barra colorata sui cavi , segnalano che il connettore é polarizzato , ovvero ha un preciso senso di inserzione che deve essere rispettato per ottenere la giusta connessione . I/O - CMOS clock-calendar La configurazione del PC IBM XT non aveva alcun orologio , né ram CMOS ; una eventuale aggiunta di orologio poteva essere fatta con una scheda opportuna . Invece, i progettisti dello standard AT , nella versione originale , hanno utilizzato il chip Motorola MC146818 , contenente un orologiocalendario con clock a quarzo piú 50 bytes di ram , utilizzata per immagazzinare i dati avviabili del setup . Questo integrato , in tecnologia CMOS , é contraddistinto da un bassissimo consumo , dell'ordine dei microampere e quindi adatto a funzionare a batteria nei momenti in cui l' alimentazione principale del PC é interrotta , con una autonomia , a piena carica ed a temperatura normale , di molti mesi . Con lo svilupparsi delle tecnologie , altri costruttori hanno prodotto questo chip o simili , ad esempio Dallas , con i modelli DS 1285 e 1287 , contenente al suo interno la batteria , il quarzo e tutti i circuiti ausiliari necessari e con una autonomia dichiarata di ben 10 anni ! Inoltre la maggior parte dei progettisti di chipset hanno integrato queste funzioni in uno dei componenti del chipset stesso , rendendo superfluo l'uso di un chip esterno . La precisone tipica di un orologio CMOS su PC é di 15 sec/mese, circa 6ppm , ma dipende dalla precisone del quarzo , ovvero dalla temperatura ambiente e dalle tolleranze dei componenti . In sostanza , l'orologio del PC é piuttosto preciso , ma NON é uno standard di tempo e puó essere afflitto da ampie tolleranze . Se il conteggio del tempo si arresta o rallenta molto a PC spento , é indice sicuro della batteria quasi scarica ; occorrerá cambiarla prima che la completa scarica cancelli anche il contenuto della memoria CMOS del setup . I/O - porte seriali Le linee seriali costituiscono uno degli accessi primari al personal computer . I dati scambiati con le periferichead esse collegate ( ad esempio mouse , stampante , modem , fax , altro computer ) viaggiano in modo seriale , un bit dopo l'altro , su un numero limitato di conduttori , tipicamente tre : dati trasmessi , dati riceviti , massa comune . I dati , di solito organizzati nel computer a blocchi di 8 ( 8 bit = i Byte ) o piú , vengono serializzati e poi ricostruiti da un circuito detto UART ( Universal Asynchronous Receiver Transmitter = Ricetrasmettitore universale asincrono ) , il cui modello di riferimento standard é il tipo 16550 , che consente elevate velocitá comunicazione . Le modalitá hardware e logiche utilizzate per interfacciare l' UART con l'esterno sono dette protocolli ; il piú diffuso sul PC é quello definito dalle specifiche RS-232C . Il connettore tipico é il tipo D a vaschetta , a 9 e a 25 poli , maschio sul lato PC . L'illustrazione seguente riporta i connettori e i collegamenti comuni . La lunghezza massima di un cavo RS-232C é prevista in circa 15metri , ma è possibile raggiungere distanze maggiori con cavi speciali o con buffers . Il cavo seriale é , comunque , schermato , ovvero dotato di un rivestimento metallico che lo isola dalle inteferenze eletriche dell' ambiente . Sulla linea seriale possono essere collegati due soli dispositivi , ad esempio PC e modem o PC e mouse ; quindi , per ogni periferica seriale , occorre disporre di una corrispondente linea sul PC . Lo standard prevede una base di 4 linee seriali , di cui 2 fanno solitamente parte della dotazione della mainboard . Ogni linea occupa un'area della mappa di memoria dell' I/O e un canale di interrupt . La tabella seguente riporta il nome DOS delle porte , il loro indirizzo in esadecimale , la linea di interrupt correntemente usata e l' assegnazione tipica . Questi parametri possono essere controllati dalla finestra PERIPHERALS del Setup iniziale del BIOS . DOS Indirizzo Interrupt Assegnazione COM1: 03F8-03FFh IRQ 4 Default COM2: 02F8-02FFh IRQ 3 Default COM3: 03E8-03EFh IRQ 4 Alternativo COM4: 02E8-02EFh IRQ 3 Alternativo Utilizzando schede e software apposito é peró possibile superare questa limitazione imposta dalla compatibilitá con il DOS e con l'hardware standard ed ampliare il numero delle seriali installabili sul PC . Tipici collegamenti seriali sono effettuati con le connessioni riportate nelle tabelle seguenti : Tipo lap-link seriale signal DB9F DB25F RD 2 3 - - - - - TD 3 2 - - - - DTR 4 20 - - - GND 5 7 - - - signa DB25F DB9F - 2 3 TD - - 3 2 RD - - - 6 6 DSR - - - 7 5 GND l DSR 6 6 - - - - - - 20 4 DTR RTS 7 4 - - - - - - 5 8 CTS CTS 8 5 - - - - - - 4 7 RTS Peripheral (es. HP17255M) 5 fili handshake hardware signal DB9F DB25F DB25F DB9F signal GND 5 7 - - - - - - 7 5 GND TD 3 2 - - - - - - 3 2 RD RD 2 3 - - - - - - 2 3 TD DSR 6 6 - - CTS 8 5 - - - - - - 20 4 DTR DTR 4 20 - - - - - - 6 6 DSR - - 5 5 CTS Null modem / Peripheral 7 fili handshake hardware signal DB9F DB25F GND 5 7 - - - - - - DB25F DB9F 7 5 signal GND TD 3 2 - - - - - - 3 2 RD RD 2 3 - - - - - - 2 3 TD DSR 6 6 - - - - - - 4 7 RTS DTR 4 20 - - - - - - 5 8 CTS CTS 8 5 - - - - - - 20 4 DTR RTS 7 4 - - - - - - 6 6 DSR Null Modem / Peripheral minimo 3 fili handshake software signal DB9F DB25F DB25F DB9F signal GND 5 7 - - - - - - 7 5 GND TD 3 2 - - - - - - 3 2 RD RD 2 3 - - - - - - 2 3 TD DSR 6 6 - | | - 6 6 DSR DCD 1 8 - | | - 8 1 DCD DTR 4 20 - | | - 20 4 DTR CTS 8 5 - 5 8 RTS 7 4 - | - RTS | - 4 7 CTS I/O - porta parallela I dati sulla porta parallela viaggiano a blocchi di 8 per volta , utilizzando un cavo con numerosi conduttori , tra cui gli 8 dei dati e svariati altri di controllo . L' interfaccia parallela é nata principalmente per collegare stampanti , anche se é possibile sfruttarla per altre connessioni ; il cavo schermato che collega PC e periferiche puó essere lungo pochi metri e distanze maggiori si possono coprire solo con cavi speciali o buffers . Lo scambio di dati si svolge a velocitá molto maggiori che sulle linee seriali , ma non é utilizzabile altro che con cavi dotati di molti conduttori . Sul PC il connettore é ancora del tipo DB a 25 poli , femmina per evitare confusione con quello delle seriali . ATTENZIONE : spesso le schede di interfaccia SCSI economiche utilizzano come connettore esterno lo stesso tipo di quello della porta parallela ; é assolutamente da evitare lo scambio dei cavi nei due connettori , pena danni irreparabili alle periferiche o alle interfacce. Sulla linea parallela standard possono essere collegati due soli dispositivi , ad esempio PC e stampante , anche se alcuni dispositivi come i cavi adattatori parallela/SCSI o parallela/unitá di backup( tipo ZIP) permettono la coesistenza ; in generale , per ogni stampante parallela , occorre disporre di una corrispondente linea sul PC . Lo standard prevede una base di 3 linee parallele , di cui 1 fa solitamente parte della dotazione della mainboard. Ogni linea occupa un'area della mappa di memoria dell' I/O e un canale di interrupt . La tabella seguente riporta il nome DOS delle porte , il loro indirizzo in esadecimale , la linea di interrupt correntemente usata e l' assegnazione tipica . Questi parametri possono essere controllati dalla finestra PERIPHERALS del setup iniziale del BIOS: DOS Indirizzo Interrupt Assegnazione LPT1: 0378-037Fh IRQ 7 Default LPT2: 0278-027Bh IRQ 5 Alternativo LPT3: 03BC-03BFh IRQ 7 Alternativo L' I/O Controller permette di prograrmmare la porta parallela come SPP (Standard Parallel Port ) oppure nelle modalitá avanzate EPP (Enhanced Paralle Port ) o ECP (Extended Capability Port ) . I dispositivi correnti sono previsti per i modi SPP/bi-direzionale o EPP , mentre ECP richiede differenti strutture ed impiega anche le risorse di un canale DMA . La connessione tipica tra PC e stampante é effettuata con un cavo DB25Femmina/lato PC e Centronics 36Maschio/lato stampante DB25M Centronics Segnale 1 1 STB 2 2 Data 0 3 3 Data 1 4 4 Data 2 5 5 Data 3 6 6 Data 4 7 7 Data 5 8 8 Data 6 9 9 Data 7 10 10 Ack 11 11 Busy 12 12 PE 13 13 SLCT 14 14 Auto Feed 15 32 Error 16 31 Init 17 36 SLCTIN 18-25 33 19-28 GND Per lo scambio dati tra computer puó essere utilizzata anche la porta parallela ; il vantaggio consiste nella possibilitá di trasferire dati in paralello a blocchi di 8 bit , quindi in modo molto piú veloce della porta seriale . Per conto lo svantaggio é quello di non poter utilizzare cavi lunghi piú 1 o 2 metri , a causa dei segnali di tipo logico a basso livello che subiscono una eccessiva degradazione su cavi lunghi . Cavo tipo Lap-link parallelo DB25M pin 1 2 3 4 5 6 10 11 12 13 14 15 16 17 25 DB25M pin 1 15 13 12 10 11 5 6 4 3 14 2 16 17 25 I/O - porta mouse PS/2 Il mouse si collega comunemente ad una porta seriale , ma , nei casi in cui sia necessario disporre di tutte le porte seriali del sistema , occorre installare il mouse in un altro canale hardware . in passato la soluzione piú praticata era quella del Bus-Mouse , ovvero una scheda daddizionale inserita sul bus a cui andava collegato un mouse apposito . Attualmente questa funzione é integrata nell' I/O Controller , utilizzando lo standard del mouse PS/2 . In questo caso il puntatore é collegato ad un connettore miniDIN standard e le risorse delle linee seriali restano libere per altri usi . Indicazioni sui connettori per la porta mouse presenti sulle mainboard sono reperibili nei relativi manuali . I/O - connettore tastiera La tastiera é collegata alla mainboard con un connettore tipo DIN audio a 5 poli per lo standard AT e con un connettore miniDIN a 6 poli per lo standard PS/2 . La comunicazione tra mainboard e tastiera é di tipo seriale a due fili (dati e clock). Nella tastiera é contenuto un microprocessore , in genere della famiglia 8042 che gestisce i dati da e per il computer ; questo processore ha bisogno di una alimentazione a 5V che gli giunge dalla mainboard attraverso il connettore . Per evitare danni al sistema , la linedel +5V é protetta con un microfusibile rapido (FS1 o F1) posto sul circuito stampato della mainboard : in caso di guasto della tastiera o di cortocircuiti sul cavo , questo fusibile brucia , impedendo danni maggiori ; purtroppo la sostituzione non é semplice e richiede un intervento tecnico. I segnali ai due connettori sono gli stessi ed é possibile adattare una tastiera PS/2 su un sistema AT e viceversa con le opportune spine o cavetti di riduzione. I/O - porta IR La porta IR é prevista per collegare un dispositivo a raggi infrarossi per una comunicazone seriale senza fili su brevi distanze . Inizialmente pensato come mezzo di comunicazione tra stazioni fisse e notebook , per la sua natura puó essere adattato anche ad altre periferiche nelle quali la mancanza del cavo di connessione puó essere un vantaggio ( ad es. mouse o puntatori per conferenze e presentazioni ) . Al momento i dispositivi IR non sono molti , né molto diffusi e le potenzialitá dell' interfaccia sono ancora latenti . Sulle mainboard l' I/O Controller provvede a gestire anche questa linea , che é accessibile con un connettore a 5 pin , al quale andrá collegata l' interfaccia con l' esterno , composta da un ricetrasmettitore di raggi infrarossi adatto alla periferica da connettere e fornito dal costruttore della stessa . I manuali delle mainboards forniscono ulteriori informazioni . I/O – USB Nella ricerca di nuove soluzioni tecnologiche che rendano piú efficienti e piú semplici i contatti tra le varie periferiche del sistema si stanno studiando diversi sistemi di interconnessione , tra i quali é diventato standard USB . USB (Universal Serial Bus - Bus Seriale Universale) è stato studiato per collegare con un solo cavo le principali periferiche di un PC , come ad esempio monitor , tastiera , mouse , ecc. L’idea viene portata avanti da molti grandi costruttori come Compaq , DEC , IBM , Intel , Microsoft , NEC , Norther Telecom . USB puó collegare fino a 127 dispositivi periferici con la stessa inter faccia , che , ad esempio , Intel ha integrato nei suoi PCIset 430 (Triton) . L’interconnessione fisica é del tipo a stella , nella quale alcuni dispositivi (hub) saranno dotati di prese per poter collegare in cascata altri componenti . La velocitá di trasmissione dovrebbe arrivare almeno a 12MB/sec e quindi essere adeguata anche a dispositivi complessi , anche asincroni , come sistemi video e telefonici , joystick , stampanti , scanner e interfacce audio . Attualmente USB è ancora allo stato potenziale e sono ben poche le periferiche disponibili sul mercato , anche perché si presenta come un doppione delle risorse giá esistenti . Per ciò che interessa fisicamente l’utente da vicino, abbiamo: Tastiera (input) - La tastiera standard è a 102 tasti; attualmente sono in commercio anche tastiere win95 con 105 tasti: vi sono cioè tasti supplementari in più per specifiche scorciatoie da tastiera in win95 (se si ha una tastiera a 102 tasti non c'è bisogno di cambiarla; queste funzioni sono abbastanza inutili). Attualmente sono in vendita anche la tastiere ergonomiche che, abbandonata la classica forma rettangolare, permettono di tenere le mani in posizione più naturale e di poggiare meglio i polsi. Le tastiere sono diverse per disposizione dei tasti a seconda della nazione. Il diverso costo delle tastiere (da 40.000 a 120.000 lire) dipende dalla meccanica interna della tastiera e dal tipo di contatti; se non bisogna usare un PC come dattilografi anche una tastiera media pur andare bene. Mouse (input) - I mouse possono essere a 2 o 3 tasti; se si dispone di un mouse a 2 non è necessario cambiarlo (sono pochissimi i programmi che sfruttano il tasto centrale). I mouse si collegano alla porta seriale, o alla porta PS2 (controllare che il PC disponga di tale porta). Se si utilizza Windows è meglio avere un mouse di marca (Microsoft o Logitech per esempio) o comunque che permetta una buona sensibilità. Vi possono essere diversi tipi di mouse: tradizionale: bisogna muovere il mouse su una superficie; Track-ball: bisogna far girare una palla inserita in un supporto, talora tutt'uno con la tastiera, talora in un accessorio a parte; Pointing stick: in alcuni modelli il mouse h sostituito da una piccola levetta inserita fra i tasti G ed H della tastiera; TouchPad (tavoletta sensibile al tatto): toccando con il dito su una tavoletta, si genera il movimento del cursore sullo schermo; in alcuni ultimi modelli di portatili Hewlett-Packard il mouse è costituito da una espansione laterale estraibile del PC, simile ad un mouse tradizionale, ma attaccato saldamente ad esso: Microsoft ha recentemente introdotto per i bimbi un mouse semplificato (Easy Ball); Sempre Microsoft ha introdotto IntelliMouse, un mouse a tre tasti + una rotella supplementare che permette di meglio sfruttare le caratteristiche di Office 97. Stampante (output) - Le stampanti si dividono in tre categorie: ad aghi (9 o 24 aghi): le più economiche, usano un nastro inchiostrato come quello della macchina da scrivere, e compongono le lettere con la percussione sul foglio dei vari aghi; a getto di inchiostro ("ink jet"), stampano lanciando un sottilissimo pennello di inchiostro; sono le uniche con cui si pur effettuare una stampa a colori in modo discreto a prezzo contenuto; laser, le più costose come prezzo, la stampa avviene in pratica come con una moderna fotocopiatrice; la stampa a colori richiede l'acquisto di stampanti ad alto prezzo. La qualità di stampa si misura in DPI (dots per inch) ovvero il numero di punti stampati per ogni pollice. Una stampante a getto discreta dovrebbe essere in grado di lavorare a 600x300; per stampare testo basta la risoluzione 300x300, per la grafica 600x300. La velocità di stampa si misura in pagine per minuto (PPM): una getto d'inchiostro lavora a 1-3 PPM, una laser a 4-8 PPM. Le stampanti ad aghi, oltre al basso prezzo di acquisto e di manutenzione hanno anche il vantaggio di stampare moduli multicopia e di poter utilizzare moduli continui. Attualmente le stampanti a getto non necessitano più di carta speciale per stampare (a meno di non utilizzare risoluzioni elevate) e l'inchiostro si asciuga (anche in caso di notevole copertura di inchiostro) in meno di un minuto; è però da osservare che l'inchiostro se esposto direttamente al sole tende a sbiadire in un paio di mesi. La stampa a colori pur essere effettuata sia tramite il sistema CMY (Ciano Magenta Giallo), ma in tal modo il nero appare marroncino, oppure tramite CMYK (CMY + nero) ma la stampante in questo caso costa il doppio. Le stampanti a getto di inchiostro sono le stampanti che hanno il costo per pagina più elevato. Talune stampanti laser utilizzano uno standard detto POST SCRIPT per migliorare la qualità; logicamente anche il prezzo è maggiore. Una stampante laser necessita di RAM per poter funzionare (per stampare senza programmi di compressione un foglio A4 a 300 dpi ne occorre 1 megaByte); del resto qualche decina di Kbyte di memoria può accelerare la stampa anche negli altri tipi di stampante. In generale per le stampanti laser convenzionali devono creare ed immagazzinare l'immagine della pagina, quindi hanno bisogno di un processore e di RAM; in una stampante GDI (Graphical Device Interface) il software del driver si serve del processore e della memoria del PC (unico problema è che i drivers sono specifici per ogni sistema e pertanto una stampante che funzioni con Win 3.1 non è detto che funzioni con Win 95. Attualmente è stato introdotto il WPS (Windows Printing System), detto anche SLEEK. Questo sistema supera i problemi del GDI pur utilizzando il processore e la RAM del PC; manda alla stampante strisce orizzontali della pagina in ordine sequenziale e perciò la pagina esce più rapidamente. Se la stampante accetta la comunicazione bidirezionale è possibile che il PC riceva informazioni in tempo reale sugli eventuali problemi della stampante. Necessario in qualunque stampante è o il trattore per il modulo continuo o il cassetto per l'alimentazione automatica dei fogli. Monitor (output) - I video standard sono quelli di 14 pollici (misurati sulla diagonale dello schermo); in realtà la porzione di schermo realmente utilizzata è 12.5 pollici. Un monitor di 15 pollici è più confortevole, permette di lavorare alla risoluzione di 800 x 600 senza problemi, ma costa 200.000 lire in più. Per lavorare a 1024 x 768 h necessario un 17 pollici, decisamente ancora troppo caro. Altre due caratteristiche di un monitor: il "dot pitch" ovvero la distanza tra due pixel adiacenti; in un 15 pollici non dovrebbe superare i 0.28 mm, valori più elevati possono generare immagini sfuocate; l'interlacciamento; in modalità non interlacciata l'intera schermata visualizzata sul monitor viene rigenerata ad ogni passata del tubo catodico, e la frequenza con cui questo avviene ogni secondo è detta frequenza di scansione verticale; in modalità interlacciata l'immagine video viene generata in due passate (prima le righe dispari, poi le pari), talora generando un fastidioso fenomeno di sfarfallio. Memoria Quando si parla di memoria , in un computer , si fa riferimento ad un mezzo in cui i dati possono essere immagazzinati . Si puó dividere , in generale , la memoria in due tipologie principali : Temporanea , o volatile . La memoria volatile perde i dati 9 immagazzinati quando viene interrotta la fonte di alimentazione . In generale , la memoria volatile é costituita da circuiti integrati particolari, tipo la RAM. Non volatile che , al contrario , mantiene i dati anche in assenza di alimentazione . In generale la memoria non volatile impiega sistemi magnetici (hard disk , nastri e simili) od ottici (CDROM) o magnetoottici , chiamate memorie di massa , ma esistono anche memorie non volatili realizzate con circuiti integrati (EPROM , FLASH , ecc.) . Tipi di Memoria Possiamo distinguere diversi tipi di memoria : La memoria principale : si intende la RAM , ovvero un insieme organizzato di chip in grado di essere scritti e letti a piacimento e che mantengono i dati fino a che il computer é acceso ; il sistema operativo ed i programmi applicativi utilizzeranno questa memoria per le loro elaborazioni . La memoria CMOS : costituita da un componente realizzato con questa tecnologia , é una memoria statica (SRAM) che mantiene i dati con una alimentazione a batteria La memoria cache : solitamente si tratta di circuiti integrati di SRAM ad alta velocitá La memoria contenente il firmware , ovvero alcuni chip realizzati con tecnologia non volatile (EPROM , Flash e simili) che contiene i programmi BIOS (ad es. il BIOS della scheda madre , della scheda video , la Prom di boot della scheda di rete , ecc) . La memoria di massa , costituita in genere da hard disk , che conserva i dati in modo non volatile come tracce magnetiche o il CDROM , in cui i dati sono scritti e letti con sistemi basati sulla luce laser . Molti confondono la memoria RAM con gli altri media di immagazzinamento della memoria di massa . Questo avviene perché 9 I dati , in formato binario , sono immagazzinati nella RAM come livelli logici di tensione (1 o 0) ; nei dischi come segnali magnetici , nei CDROM , come tacche chiare e scure di diversa dimensione . le funzioni sono similari ed anche l'unitá di misura della grandezza dell'area di memoria (il byte) é la stessa . Tipi di memoria su circuiti integrati In generale la memoria realizzata con circuiti integrati si può suddividere in : ROM (Read Only Memory -memoria a sola lettura) , non riscrivibile dal sistema , che contiene il firmware o il BIOS . La memoria ROM e’ "mascherata" ovvero scritta dal produttore e non puó essere modificata dall'utilizzatore . I livelli 1 e 0 che costituiscono i dati binari sono "incisi" (mascherati) durante il processo di produzione del componente e non possono essere cambiati . Il contenuto , quindi , non è volatile. La memoria ROM conserva il suo contenuto indefinitamente , anche se manca l’alimentazione del sistema . Normalmente sono utilizzate per contenere il firmware , ovvero il software residente su schede , come BIOS delle mainboard , controller SCSI ,VGA, ecc. Alla famiglia ROM appartengono anche : PROM (Programmable ROM) : é una ROM che puó essere programmata dall' acquirente con una apparecchiatura speciale (programmatore) . I livelli 1 e 0 che costituiscono i dati binari sono scritti con la modifica di alcune parti del chip (ad es. bruciatura di fusibili integrati) ed una volta scritti non sono piú cancellabili . Prende anche il nome di OTP (One Time PROM) EPROM (Erasable Programmable ROM) che può essere cancellata e riscritta con opportuni apparecchi . La possibilitá di riscrivere il contenuto la rende adatta alle applicazioni in cui sono richieste modifiche ai dati contenuti senza sostituire il componente . La cancellazione delle EPROM avviene esponendo il chip ad una luce ultravioletta di lunghezza d'onda opportuna che , ionizzando il materiale , riporta i livelli logici ad una situazione definita (normalmente a livello 1) .Spesso i BIOS ed altri firmware sono in EPROM . I principali vantaggi delle EPROM sono il basso costo ed il fatto che si tratta di dispositivi in produzione da gran tempo e quindi facili da reperire. I lati negativi sono l' impossibilita di cancellarle e riscriverle sul circuito in cui sono installate , rendendo cosí problematico l'aggiornamento dei firmware che , con l'attuale sviluppo tecnologico , é diventato un fatto comune . Nella attuale situazione di rapido progresso (leggi : grandissima confusione) , si stanno sostituendo , quindi , le EPROM dei BIOS con altri dispositivi che possano essere cancellati e riscritti dallo stesso sistema su cui sono installati e consentano quindi un rapido upgrade del firmware da parte dell’utente , senza l’intervento di tecnici specializzati . Sono: EEPROM (Elettrically Erasable Read Only Memory -memoria a sola lettura programmabile e cancellabile elettricamente) é un dispositivo che puó essere riscritto direttamente dal circuito su cui si trova . In genere le tensioni di lavoro per le EEPROM sono 5 o 12 volt , a seconda del modello FLASH : é simile alla EEPROM e puó essere scritta e modificata direttamente dal circuito in cui é inserita Nella stessa famiglia delle EEPROM sono compresi alcuni dispositivo speciali , le EEPROM seriali , in cui l'accesso ai dati , invece di essere organizzato in modo parallelo su un bus a 8 o 16 bit , avviene con un colloquio seriale , su pochi conduttori (da 1 a 3). Le EEPROM seriali sono utilizzate per immagazzinare dati che vengono richiesti saltuariamente , ad esempio solo nella fase successiva al reset , in quanto il colloquio seriale é estremamente piú lento di quello parallelo . Ad esempio , su molte schede audio é presente un piccolo chip seriale in cui sono conservati i dati del setup della scheda stessa e le varie impostazioni predisposte dall'Utente durante la configurazione della scheda (emulazione Sound Blaster o Microsoft Sound , interrupt , DMA , qualitá del suono , ecc.) ; in questo caso il contenuto della EEPROM seriale : é letto durante la fase di inizializzazione della scheda successiva al reset utilizzato dai driver per trasmettere ai chip della scheda i giusti parametri di configurazione e poi non viene piú richiamato durante il funzionamento del sistema . Essenziale vantaggio della EEPROM seriale é il costo estremamente basso per un dispositivo programmabile non volatile e le dimensioni altrettanto piccole . Della stessa famiglia fanno parte gli : SPD (Serial Presence Device- dispositivo di presenza seriale) di cui sono dotate le DIMM di SDRAM . Questo chip contiene i dati di impiego della DIMM e puó essere letto da un BIOS adeguato per una configurazione ottimale automatica del sistema . In alcune previsioni , si prevede un futuro in cui tutti gli add-on del PC saranno dotati di sistemi simili all' SPD per una configurazione completamente automatizzata e priva delle difficoltá che ancora oggi si presentano (nonostante il Plug and Pray e simili) RAM (Random Access Memory - memoria ad accesso casuale) , leggibile e scrivibile dal sistema , che costituisce la memoria principale in cui ‘girano’ le applicazioni . I dati contenuti nella RAM vanno perduti al cessare della alimentazione del sistema. Random non indica che l' accesso avviene a caso , ma che si puó accede ad un locazione e poi ad un'altra non contigua senza alcuna regola precisa , a differenza dei media come il nastro in cui i dati sono accessibili solo in sequenza . Tipi di RAM La RAM in generale si puó dividere in due grandi categorie: SRAM (Static RAM= RAM statica) : non necessita di refresh , ha tempi di accesso brevi e consumi bassissimi : per contro ha una struttura molto piú complessa di DRAM e quindi un costo molto elevato e una minore possibilità di integrazione , che ne limitano l’ uso alle strutture di cache (piccole di dimensione , ma necessitanti alte velocitá) ed alle aree CMOS ( che richiedono basso consumo per poter essere mantenute da una batteria tampone ) . I dati contenuti nella RAM vanno perduti al cessare della alimentazione del sistema . DRAM (Dynamic RAM) : costituisce la maggior parte della RAM installata sui sistemi , perché costruttivamente semplice ; risulta pertanto poco costosa ed è possibile integrarne grandi quantità in piccoli spazi . Il difetto è costituito nella necessità di una continua operazione di mantenimento dei dati scritti , detta refresh , che altrimenti andrebbero persi , anche con la tensione di alimentazione presente (si può paragonare la ram dinamica ad un secchio con un piccolo buco : se non si rabboccasse ogni tanto il contenuto , dopo un certo tempo il secchio sarebbe vuoto ) . Questo porta alla presenza di tempi morti nelle operazioni di lettura e scrittura , con una riduzione delle prestazioni . DRAM é realizzata con diverse tecnologie , tra cui FastPage , EDO , SDRAM , ecc. La DRAM é sicuramente il tipo piú comune presente nei PC . La struttura di una cella (bit) consiste in un circuito equivalente ad un condensatore . Caricando elettricamente il condensatore , si accumula un bit ; sfortunatamente il condensatore ha la tendenza a scaricarsi rapidamente e quindi a perdere l' informazione immagazzinata . Occorre allora che un circuito apposito , detto Refresh Controller , passi periodicamente a " rinfrescare " il contenuto delle celle , mantenendo "piene "quelle che lo richiedono . DRAM perde tutto il suo contenuto nel momento in cui cessa il ciclo di refresh e/o manca la tensione di alimentazione . La DRAM é organizzata in banchi a matrice (come le celle di una tabella di un foglio di calcolo o le caselle della battaglia navale) , il cui accesso si effettua inviando l'indirizzo della riga e della colonna relativo alla cella che si vuole raggiungere ; queste operazioni , che interessano linee di segnali specifiche ( CAS = Column Address Select e RAS= Row Address Select ) , sono abbastanza complesse , devono tenere conto del refresh di cui si é detto prima e "consumano "un certo tempo per la loro esecuzione , cosicché l' acceso ad una cella é asincrono rispetto al clock principale del processore. La DRAM richiede un circuito speciale , il DRAM controller , attualmente integrato nel chipset10 , che provvede a fornire ai chip le giuste temporizzazioni e, soprattutto , i segnali di refresh. Un comitato che stabilisce gli standard per i componenti elettronici , il JEDEC , ha fissato molte specifiche per i chip DRAM. Specifiche per i chip DRAM FP (Fast Page) : fino a poco tempo fa la categoria piú usata . Il nome deriva dalla maggior velocitá di accesso rispetto alle tecnologie precedenti e dalla possibilitá di lavorare con dati organizzati a pagine. Una pagina é una sezione della memoria disponibile con uno specifico indirizzo di riga . Assieme ad un indirizzo di riga si troveranno numerose colonne di celle contenenti i dati : con FP il sistema richiede solo lo specifico indirizzo di riga , una sola volta , per poter accedere consecutivamente a tutti i dati della pagina . Successivi accessi alla stessa pagina richiedono solo l'indirizzo di colonna per recuperare i dati della cella , risparmiando un certo tempo. Le CPU attuali lavorano su parole (word) di molti bytes : ad es. Pentium lavora con QWord (Quadruple Word ) , ovvero blocchi da 64 bit , costituiti da 4 bytes . In sostanza , quindi , un accesso in memoria richiede il prelievo di almeno 4 bytes consecutivi . La struttura FP privilegia l' accesso a blocchi consecutivi di celle , detto anche burst mode ( modo a raffica) richiedendo 5 clock per l'accesso al primo byte e solo 3 per i successivi nella stesa pagina . Questo ciclo si descrive con la sigla 5-3-3-3 ; in totale , quindi , la CPU usa 14 colpi di clock . EDO (Extended Data Out RAM) : un miglioramento della DRAM , che riduce ulteriormente i tempi di accesso. Il funzionamento é simile a quello della FP , ma , in piú é presente una serie di celle ausiliarie che immagazzinano provvisoriamente i dati in transito (buffer) . La EDO conserva i dati validi anche dopo il termine del segnale che indirizza la colonna ; questo consente al processore di gestire meglio i tempi di accesso alla memoria : mentre la EDO ricerca e conserva un dato , la CPU puó svolgere un' altra attivitá e recuperare il dato piú avanti . Il ciclo in tal caso diventa 5-2-2-2 , con un impegno totale di 11 clock . Un impiego massiccio di ram EDO si sta diffondendo nelle schede video i cui processori , privi di cache , traggono benefici notevoli dalla possibilità di accedere senza tempi morti alle 10 L'"intelligenza" di una scheda madre e' definita dai suoi circuiti logici, in altri termini dai controller e dal chipset della scheda stessa. La parola stessa chipset significa un insieme di chip, raccolti in un solo componente. Prima dell'arrivo dei chipset, la scheda madre presentava molteplici controller chip, tutti separati l'uno dall'altro. informazioni video , soprattutto nel caso di immagini in movimento. Per quanto fino ad ora verificato con i test , l’ uso della ram di tipo EDO non porta che benefici trascurabili se la mainboard dispone di cache . Di fatto , il sistema con cache , sfrutterà meglio i meccanismi di questa , senza dare peso a quelli del sistema EDO . In un PC dotato di cache L2 , la presenza della EDO incrementa i risultati dei test , ma non è visibile ad occhio nudo . Altro discorso è per i sistemi privi di cache , che , senza la EDO , sarebbero pesantemente penalizzati . Attualmente , alcuni noti nomi offrono sistemi economici con EDO , ma senza cache L2 (possibilmente da evitare l’acquisto!). In ogni caso , tra un sistema senza cache e con EDO ed un sistema con cache e senza EDO , quest’ ultimo ha una prestazione di gran lunga migliore , mentre un sistema con cache e EDO non si differenzia in modo significativo . Nell' attuale momento del mercato , inoltre , i costi dei chip della cache pipeline sono scesi sensibilmente , mentre la ram EDO (di buona qualità) ha ancora un costo che non è compensato dalla trascurabile differenza di prestazione . BEDO (Burst EDO) è un ulteriore miglioramento della struttura EDO , in cui il ciclo e' ridotto a 5-1-1-1 , ovvero 8 clock totali . Attualmente BEDO é gestita da pochi chipset e , comunque , é ancora un prodotto assai poco diffuso MDRAM (Multibank DRAM) : un tipo di architettura che consente un trasferimento dati molto elevato SDRAM (Synchronous DRAM) : una nuova struttura per la RAM dinamica , la cui gestione è svolta in modo differente dalle precedenti e le operazioni diventano sincrone con il clock del processore , migliorando le prestazioni. SDRAM lavora in modo molto differente da EDO ed FP : queste operano al ritmo dei segnali RAS e CAS forniti dal DRAM controller , mentre SDRAM opera in sincronismo con un clock fornito esternamente (ad es. quello della CPU , anche se alcuni chipset consentono un funzionamento semi-sincrono , con un clock diverso) . L' impiego del clock consente accessi estremamente rapidi per le operazioni di lettura e scrittura e , mentre le prestazioni di EDO e FP erano relative ai tempi di accesso (in nano secondi) , le SDRAM sono valutate a seconda dei mega Hertz di clock a cui possono lavorare . SDRAM permette accessi burst , ma , in piú , i cicli burst posso essere ripetuti consecutivamente per piú QWord ; questi diventa particolarmente interessante negli scambi di dati fra RAM e cache , dove vengono spostati blocchi consecutivi . Il ciclo é come quello della BEDO , ovvero 5-1-1-1 , ma puó operare con clock molto piú elevati , anche 100MHz . É necessario che il chipset abbia la possibilità di usare questo tipo di memoria : tutti i piú recenti prodotti di Intel , VIA , SIS , ecc. sono in grado di farlo. Per lavorare ad alte frequenze , i chip sono organizzati in due banchi , di cui uno é accessibile mentre l' altro é giá impegnato in una operazione. Questo permette di comprendere alcune definizioni che danno i costruttori : ad esempio 16 MB di SDRAM possono essere descritti come 1 MB x 8 bit x 2 banchi , equivalenti a 16 MB FP o EDO , che invece é descrivibile come 2 MB x 8 bit.SDRAM é strutturata , per il PC , in banchi da 64 bit , in DIMM a 168 pin ; pertanto basta una sola DIMM per avere i 64 bit necessari alle CPU Pentium. Tipicamente SDRAM ha una tensione di 3.3V (mentre FP e EDO vanno a 5V) ; questo puó creare problemi nel caso in cui siano mescolate DIMM a 3.3 e SIMM a 5V , perché i segnali a 5V potrebbero danneggiare le linee delle DIMM a 3.3V . In ogni caso , per ovviare a questo , molti costruttori hanno realizzato DIMM a 3.3V , ma con capacita di tollerare agli ingressi una tensione maggiore . SDRAM II : il tempo standard di 10ns non é adatto al funzionamento con clock da 100MHz in su . Sono in sviluppo altre tecnologie costruttive come ad es. la DDRSDRAM (Double Data Rate SDRAM) e SLDRAM (Sync-Link DRAM) che possono lavorare con clock da 200MHz e transfer rate da 400MB/s . SGRAM (Synchronous Graphic RAM) , WRAM , VRAM : strutture per la RAM impiegate da alcuni costruttori nei sistemi video . In generale si tratta di DRAM dotate di buffer e/o sistemi per consentire accessi e trasferimenti multipli o concomitanti in modo tale da migliorare le prestazioni dei sistemi grafici che tipicamente richiedono la movimentazione rapida di grosse quantitá di dati RAMBus o RDRAM : una struttura di DRAM ad alte prestazioni e che richiede un minimo numero di connessioni , con una struttura a bus . É possibile anche l'accesso a bus multipli , incrementando ulteriormente le prestazioni . Attualmente é impiegata come memoria in sistemi video . Il transfer rate raggiungibile é di 533MB/s con un clock di 267MHz . DIMM e SIMM SIMM : è acronimo di Single In-line Memory Module ( modulo di Memoria con contatti in singola linea) . Nelle mainboard piú vecchie , la memoria era costituita da banchi di chip tradizionali nel contenitore a 2 file di pin (DIL = Dual In Line) . Con lo svilupparsi delle tecnologie si sono potute ridurre le dimensioni dei chip , aumentando nel contempo l’integrazione , per seguire la sempre crescente fame di memoria dei sistemi . Sono state quindi sviluppate alternative al DIL per ottenere una densità ed una semplicità operativa maggiori , sfociate nelle SIMM , che , in alcune versioni , sono diventate degli standard . Tipi: SIMM a 30 pin : sono le SIMM dei computer della generazione 386/486 . Su una SIMM a 30 pin sono stati integrati fino a 32MB di ram dinamica a 8 bit , con o senza paritá . Poiché i sistemi 486 utilizzano ram a 32 bit , occorrono 4 SIMM a 30 pin per completare un banco ; nel caso di processori Pentium , la ram utilizzata è a 64 bit , per cui occorrerebbero 8 SIMM per ogni banco , cosa poco proponibile , per ragioni di spazio ed economicità . Sono state quindi sviluppate SIMM a 72 pin , che costituiscono la maggior parte della ram attualmente installata . Sulle SIMM a 72 pin la memoria è organizzata per 32 bit ( o 36 se con paritá) e quindi occorrono 2 SIMM per ogni banco . Le SIMM a 72 pin possono inoltre contenere ram DRAM , Fast Page , EDO, BEDO , Flash ed altre soluzioni tecnologiche . DIMM : é acronimo di Dual In-line Memory Module ( modulo di memoria con contatti su doppia linea ). Sono elementi di memoria simili alle SIMM , ma con un numero di contatti maggiore , su tutte e due le facce del circuito stampato . La maggior densità permette , ad esempio , di avere i 64 bit necessari ad un banco per Pentium su un solo circuito ; inoltre è possibile aggiungere segnali non previsti dallo standard SIMM , come ad esempio quelli per il sincronismo della SDRAM . Bisogna tener presente che sul modulo DIMM possono prendere posto diversi tipi di memoria e quindi parlare di DIMM NON é lo stesso che parlare del tipo di memoria contenuto. Ad esempio , i chipset Intel TX e VX possono gestire SDRAM , che é disponibile in DIMM ; altri costruttori usano DIMM per ram di tipo FP o EDO , allo scopo di ridurre lo spazio occupato sulle schede . Da ricordare anche che esistono DIMM di diverso formato , dalle piccole DIMM per i notebook alle grandi DIMM per mainboard speciali . Alla voce DIMM fanno capo forme meccaniche differenti , ad es. 168 o 192 contatti e tensioni di alimentazioni diverse , ad es. 3.3V o 5V . In ogni caso , le DIMM tecnologicamente differenti tra loro hanno una sagomatura (notch) che impedisce l’installazione su uno zoccolo non adatto. Quindi DIMM non é univocamente indice di un particolare prodotto , né come formato fisico né come tipo dei chip contenuti , ma é solo una denominazione generica di un modo di effettuare i contatti sul connettore tra il modulo e la mainboard . Shadow RAM Numerosi dispositivi installati nel PC dispongono di un proprio BIOS o firmware , ad esempio i controller SCSI , le schede video , ecc. Questi firmware hanno la funzione di fornire il supporto per il colloquio tra la periferica ed il sistema . Normalmente sono caricati in EPROM o Flash ; questo ne permette l' upgrade in caso di nuove versioni o per correggere bugs o adattare la periferica a nuove necessitá del sistema. EPROM, ROM , Flash hanno , di solito , tempi di accesso piú lenti della ram principale e , siccome sono utilizzate ad ogni accesso ai dispositivi relativi , i tempi morti potrebbero costituire una penalizzazione del sistema . Basti pensare ai due firmware principali , ovvero il BIOS della mainboard e quello della scheda video , che sono utilizzati intensivamente nel funzionamento ordinario del PC. Nel modo Shadow (ombra) il contenuto delle memorie lente viene copiato , al boot , nella ram principale e tutti i successivi accessi sono effettuati da questa , con un indubbio risparmio di tempo , anche perché , solitamente , i firmware sono accessibili a 8 o 16bit , mentre la ram principale é a 32 bit. Per esempio , abilitando la shadow per l'area del BIOS video da C000H , al boot , una copia di questa area sará portata in ram ; tutti i futuri accessi al BIOS della VGA non avranno luogo sul bus verso la scheda , ma direttamente verso la ram in cui esiste la copia. Nel caso di schede a 16 bit , una linea speciale del bus ISA a 16bit , denominata MEMCS16 , decodificato dalle linee di indirizzi LA17-LA23 , permette una suddivisione delle aree di shadow in blocchi da 128kB . Dopo la fase iniziale in cui la scheda genera MEMCS16 in dipendenza dalle linee LA13-LA23 , vengono impiegate le linee SA0-SA16 che permettono una granularitá di un byte nella regione di 128k identificata . Questo meccanismo , l'unico implementato sui PC delle precedenti generazioni , avevano limiti notevoli , sia bel la scarsa flessibilità , sia per la possibilitá di conflitti tra shadow di firmware a 8 ed a 16 bit. Attualmente , utilizzando altre strutture di controllo , si possono configurare blocchi da trattare in shadow di dimensioni minori , ad es. 64kB , permettendo un controllo piú fine della situazione. Alcuni BIOS , poi , permettono di attribuire la possibilitá di cache alle aree shadow , incrementando ulteriormente le prestazioni. AVVERTENZA : non sempre é possibile attivare shadow e/o shadow/cache in quanto si possono verificare incompatibilitá tra la gestione shadow ed i BIOS oppure tra la presenza in shadow dei dei BIOS ed applicazioni software che utilizzano quell' area . In questi casi i sintomi comuni sono il blocco del sistema oppure problemi evidenti nella gestione delle periferiche per cui la shadow é attivata. La memoria CACHE La cache è un blocco di memoria ad alta velocità e di dimensioni piuttosto piccole , rispetto alla memoria primaria , situato tra questa e il microprocessore . In genere si tratta di memoria di tipo statico , ovvero senza la necessità di refresh , assai più costosa di quella dinamica , ma con tempi di accesso molto ridotti , dell’ ordine dei nanosecondi. La cache contiene i dati utilizzati con maggior frequenza dal microprocessore nelle operazioni correnti contribuendo all'incremento delle prestazioni , poiché tali dati non devono essere richiamati ogni volta dalla più lenta memoria RAM: in pratica funziona come un buffer11 e contiene la copia delle istruzioni e dei dati che vengono maggiormente utilizzati. Le cache possono contenere istruzioni (codici), dati o entrambi i tipi di informazione. Ad esempio , se la CPU deve cercare un dato o una istruzione , la ricerca per primo nella cache ; se non è presente , la preleva dalla RAM o dalla ROM e ne fa anche una copia nella cache (se l’area da cui è stato prelevato questo elemento è dichiarata ‘cacheable’ dal BIOS o dal software del sistema ). Quanto più grande è la cache , tanto più grande è il numero di informazioni che possono essere gestiti ( questa affermazione è vera relativamente , in quanto ,aumentando la cache oltre certi limiti , il rapporto prezzo/prestazioni diventa non conveniente ). Per aumentare ulteriormente le prestazioni , la cache può essere incorporata nel microprocessore. La cache su chip comunica più rapidamente con il microprocessore essendo fisicamente più vicina ad esso. Sono definibili due tipi di cache , dette L1 , interna al chip del processore , e L2 , esterna .Un sistema senza cache ha prestazioni nettamente ridotte rispetto ad uno con cache . Il processore cerca prima nella cache interna L1 e poi in quella esterna L2 . Esistono anche chipset che permettono un sistema di cache virtuale , che utilizza dei registri FIFO (First In First Out) o altri sistemi semplificati per emulare le funzioni della cache , spesso piuttosto efficienti . La cache virtuale gestita in questo modo non è da confondersi con la cache fittizia (inesistente) di molti prodotti orientali . Poiché attualmente il costo della cache si è grandemente ridotto , non ha più alcun senso il piccolissimo risparmio dovuto alla cache cache virtuale , mentre , per contro , conta alquanto la differenza di prestazione tra i due sistemi . 11 Area di memoria usata per conservare temporaneamente i dati da trasferire ad un dispositivo oppure tra due dispositivi quali il computer e la stampante. Es. la stampa di un carattere è sempre più lenta rispetto alla velocità d'invio del carattere dal computer alla stampante: il buffer della stampante memorizza i caratteri inviati dal computer. Effettuato l'invio il computer non restera' in attesa della fase stampa ma sara' libero di eseguire altri processi. TAG L’area TAG della cache mantiene una traccia degli indirizzi residenti e dello stato dei dati nella cache . In genere si tratta di un chip separato , ma può anche essere integrato o semiintegrato nel chipset . WRITE BACK e WRITE THROUGH Nell’architettura Write Back i dati nella memoria e nella cache non sono correlati simultaneamente ; il controller della cache mantiene una traccia della coerenza di questi dati . Questa struttura , abbastanza complessa , riduce il traffico sul bus e le operazioni di scrittura della memoria , con sensibili vantaggi di prestazione .Nel modo Write Thru , i dati scritti sono sempre passati attraverso (through) la cache verso la memoria principale ed è mantenuta una stretta coerenza tra queste . Questa struttura è più semplice da implementare , ma aumenta il traffico sulla memoria e riduce le prestazioni . Negli ultimi processori , in generale , la cache L1 è di tipo Write Back ; la cache L2 dipende dal chipset della mainboard , ma tutti i chipset più recenti hanno anche essi adottato questa modalità . AVVERTENZA : alcuni costruttori orientali utilizzano la dizione Write Back per indicare una cache fittizia , non esistente , visualizzata da BIOS "compiacenti" nel prompt del boot . Cache sincrona e asincrona La cache asincrona è economica , ma meno performante della cache sincrona. La non sincronicitá tra il processore e la risposta della ram portano alla necessità di più cicli di clock per esaurire una richiesta di informazioni . Tipicamente , per leggere il blocco di 4 bytes=64bit con cui lavorano le CPU pentium , sono impegnati 9 cicli di clock e questo da origine alla indicazione 32-2-2. L'accesso alla cache é quindi piú veloce di quello alla RAM. La cache sincrona richiede un numero minore di clock per esaurire una richiesta. Il tipo piú performante , e piú costoso , é quella detta "flow-through " o SyncSRAM (Synchronous Burst Static RAM ) che ha un ciclo di 2-1-1-1 . ( il ciclo ideale della CPU sarebbe 1-1-1-1). Altro tipo di cache sincrona é quella detta Pipelined Burst ed è attualmente la più diffusa . Con riferimento all’ esempio precedente , il ciclo diventa 3-1-1-1 , ottimo risultato , anche perché , in ogni caso , i chipset Triton non possono gestire tempi minori di questo . Global Pipelined Burst : è una ottimizzazione fisica della cache pipelined , con le stesse prestazioni . New Pipelined Burst : il chipset che governa la cache , con l’opportuna aggiunta di linee di controllo , ricava l’area cache dalla memoria DRAM principale , riducendo il costo del sistema ,con una perdita di prestazioni . Si può distinguere la cache asincrona perché è costituita da più chip nel comune package DIL (Dual In Line) , installati su zoccoli , mentre la cache sincrona è realizzata con pochi chip a montaggio superficiale , senza zoccolo oppure su modulo (ved. paragrafo successivo) . Attualmente il costo della cache sincrona é tale da permetterne l' uso su tutte le mainboard . COAST e CELP COASt è l’acronimo di Cache On A Stick e indica lo standard del modulo cache L2 , principalmente riferito alla Pipelined Burst Ram . CELP deriva da Card Edge Low Profile ed è il connettore posto sulla mainboard per ricevere il modulo . Differenti formati del profilo delle estremità del modulo dovrebbero garantire la possibilità di inserire il modulo stesso solo nel corrispondente ed adeguato zoccolo. Le prime versioni di mainboard per Pentium adottavano la cache di tipo asincrono , costituita da chip in contenitore DIL , montati su zoccolo , retaggio delle strutture 486 . Quasi subito , peró , lo sviluppo tecnologico ha prodotto la cache di tipo sincrono/pipeline burst , con elevati benefici , e i costruttori hanno iniziato ad offrire la possibilitá di installare anche questo tipo di cache , ben piú costosa della asincrona . Guidata principalmente dal punto di vista economico , si é stabilito lo standard COAST per la cache su modulo , in modo da permettere una certa flessibilitá di configurazione . Attualmente l'incremento della produzionea di cache sincrona ne ha ridotto grandemente il costo , tanto da portarlo al livello della vecchia cache asincrona , che é sparita dal mercato . Inoltre , la richiesta di prestazioni elevate porta alla necessitá di una progettazione molto critica delle strutture hardware , ivi compreo il circuito stampato ; sarebbe quindi impensabile rinunciare oggi al miglioramento delle temporizzazioni che si ottiene fissando direttamente i chip di cache sul circuito principale , senza i problemi di capacitá disperse , lunghezza di piste , problemi dei contatti del modulo COAST , del suo zoccolo , ecc. Pertanto , una mainboard di qualitá della generazione attuale é dotata di 512kB di cache direttamente on board . Solo prodotti vecchi , decisamente da scartare , hanno ancora COAST o usano cache asincrona . Differenza tra la cache saldata e quella su modulo - In linea di principio , nessuna differenza . La tendenza attuale per i prodotti di classe più elevata è quella di mon tare direttamente la cache sulla mainboard , anche perché al momento attuale , il costo dei chip della cache si è ridotto alquanto rispetto allo scorso anno . Tuttavia molti costruttori installano il connettore per il modulo COAST assieme ad un certo quantitativo di cache . Inoltre , i chip di cache sincrona sono studiati per essere saldati e non zoccolati . Si possono verificare allora le seguenti possibilità : 5. - nessuna cache a bordo : in tal caso occorre verificare che esista il connettore per il modulo COAST e che questo connettore possa accettare moduli standard fino a 512kB pipeline burst . La cache potrà allora essere aggiunta in un momento successivo 6. - 256kB di cache asincrona a bordo : in questo caso può essere difficile espandere la cache a 512kB , per la diffi coltà di reperimento dei chip o per la mancanza di zoccoli di espansione . Attualmente la cache asincrona non ha più molto senso ; si tratta di materiali , magari di ottima qualità , ma datati o molto economici . 7. - 256kB di cache sincrona (pipeline burst ) senza zoccolo COAST : la cache non è espandibile , ma per gli impieghi più generali è più che adeguata . 8. - 256kB di cache sincrona (pipeline burst) con zoccolo COAST : è la soluzione adottata dalla maggior parte dei produttori orientali , perché permette di mantenere basso il costo della mainboard e nel contempo lascia aperta la possibilità di un upgrade . Va segnalato che l’upgrade può essere fatto solo con appositi COAST senza chip di TAG , in quanto detto chip è già posto sulla mainboard . Assicurarsi della disponibilità del modulo addizionale da 256kB , onde evitare brutte sorprese al momento dell’upgrade . 9. - 512kB di cache sincrona (pipeline burst) installata : le mainboard più recenti , sfruttando la riduzione dei costi delle ram statiche , montano direttamente questa quantità ; il costo è leggermente più elevato , ma le prestazioni sono le massime e non si pone il problema della impossibilità di un futuro upgrade. Indice Analitico A Algoritmo Altair APL 12; 13; 14 8; 9; 10 7 memoria a nuclei magnetici Moore 6 11 N nuclei di ferrite 2 B BASIC P 7; 8 C Commodore 9; 11 perforatore di schede programma memorizzato 3 2 I IBM 3; 5; 10; 11 L l'EDSAC l'EDVAC 2 R E EDSAC Eniac 5 2 2 RAM 2 T tamburi magnetici tubi a vuoto elettronici raggi catodici 4 5 5 4 U M M.I.T.S MADM UNIVAC 8 3 3