Struttura e Funzionamento del Computer.
Andrea Minini Informatica per tutti Punto informatico Il sole 24 ore Multi nazionali Fastweb Ai 4 business Okpedia Informatica Scuola Pc primi passi Tech Games Ionos Scuola di tecnologia Tech byte Bint Music Speak Languages Il software Tesi online Giardini blog Free code camp Roba da informatici Tech 4 future Informatica Rgpsoft Gaminghw Ac Software ac Mente informatica Orti piccolo mondo antico Campus hub scuola Esquire Skuola Informarsi Studocu Iccivitella Computer wizard Greelane Le parti del computer Foto Schema a blocchi di un computer Schema di funzionamento del computer Memorizzazione delle informazioni Foto Struttura della memoria La memoria Ram Foto Memoria ram montata Vari tipi di memoria ram Tipologie di RAM Foto Operazione di scrittura e di lettura in memoria RAM Le memorie Prom Eprom Earom Foto Memoria Eprom Il processore Foto Schema di registri presenti in un microprocessore Processore Amd5x86 Processore Athlon 64 Processore Intel 486sx Processore Pentium II Processore Pentium MMX Processore Sempron 3000 Prestazioni dei processori Foto Schema dei processori Intel 8088 e 8086 Il processo di esecuzione delle istruzioni Ripasso di Matematica per Informatica Informatica - Programmazione Linguaggio e Ambiente di Sviluppo Caratteristiche dei Linguaggi di Programmazione Sistemi Operativi Ricerche Complementari Il Sistema Operativo Dos Ricerche Complementari La Programmazione Interfaccia Utente Le Applicazioni Ricerche Complementari Le Reti Ricerche Complementari Le Strutture di Dati Ricerche Complementari L'Hardware del PC Ricerche Complementari L'Hardware del Personal Computer Linguaggi Ricerche Complementari Periferiche Ricerche Complementari Programmazione la Struttura Condizionale Programmazione dall'Algoritmo al Programma Programmazione I File I Primi Elementi Programmazione Il Controllo degli Errori Programmazione L'Analisi Top Down Programmazione Le Strutture Cicliche Rappresentazione Dati in Memoria Struttura e Funzionamento del Computer Ricerche Complementari Struttura e Funzionamento del Computer Yahoo! Video Struttura e Funzionamento del Computer Matematica Programmazione Strutture Cicliche Strutture Iterative while for do C++ Programmazione C Ciclo Pre-condizionale (while) Guadagnare navigando! Acquisti prodotti e servizi. Guadagnare acquistando online. INFORMATICA - STRUTTURA E FUNZIONAMENTO DEL COMPUTERLE PARTI DEL COMPUTERUn computer, di qualsiasi tipo e dimensione, ha sempre una struttura nella quale sono individuabili:- degli organi di ingresso (input) che servono per immettere le istruzioni e i dati; - una unità centrale (central unit) che comprende la CPU (Control Process Unit) per le elaborazioni e la memoria centrale per la conservazione temporanea delle informazioni; - degli organi di uscita (output) che emettono i risultati delle elaborazioni. L'utente comunica con il computer tramite le periferiche, dispositivi che permettono di inserire o mostrare dati di varia natura (sono periferiche la tastiera, il video e la stampante). Le informazioni inserite, i risultati delle elaborazioni e i programmi da eseguire vengono memorizzati nella memoria centrale, un dispositivo in grado di conservare le informazioni finché il computer è alimentato dalla corrente elettrica (rete 220 Volt o batteria). Per la conservazione permanente delle informazioni sono necessarie le memorie di massa (gestite da dispositivi periferici di input/output). Il cervello vero e proprio del computer è il processore, detto anche CPU (Control Process Unit), un dispositivo in grado di elaborare molte informazioni ad una grandissima velocità. La CPU funziona eseguendo le istruzioni che le vengono impartite dal sistema operativo e dai vari programmi utilizzati. Schema a blocchi di un computer
Schema di funzionamento del computer
LE MEMORIE DEL COMPUTERNel computer sono presenti vari tipi di memorie, con caratteristiche diverse. Una prima suddivisione può essere fatta tra memoria centrale e memorie di massa.La memoria centrale è accessibile molto velocemente ma è anche più costosa e quindi di solito è scarsa; inoltre la memoria centrale usata come memoria di lavoro, o memoria RAM (quella dove vengono memorizzati i programmi dell'utente), è delebile, cioè perde le informazioni contenute quando si spegne il computer (o quando per qualsiasi motivo, ad esempio una caduta di tensione, viene a mancare la corrente). La memoria centrale è formata da due tipi diversi di memorie; la memoria RAM e la memoria ROM, che presentano caratteristiche molto diverse. Le memorie di massa, meno costose e quindi disponibili nel computer in quantità maggiore, permettono di conservare moltissime informazioni (programmi e dati), anche in assenza di alimentazione elettrica. Generalmente più la memoria consente tempi di accesso rapidi e più risulta costosa; la memoria RAM è la più veloce e quindi la più costosa; al contrario i supporti di memorizzazione a nastro sono il tipo di memoria più lento e meno costoso. Oltre al costo ogni memoria ha comunque delle caratteristiche particolari, di cui si deve tener conto a seconda dell'utilizzo. Per sfruttare convenientemente la memoria si realizzano gerarchie di memorie, da quelle con maggior velocità di trasferimento dei dati e minor capacità a quelle più grandi e più lente. MEMORIZZAZIONE DELLE INFORMAZIONITutte le informazioni, i dati e i programmi vengono memorizzati attraverso una codifica composta da due soli simboli:le cifre 0 e 1 del sistema di numerazione binario. La memoria è composta da una serie di elementi (chiamati bit) ognuno dei quali è in grado di memorizzare una cifra binaria. I bit vengono raggruppati in byte (ognuno costituito da 8 bit); in questo modo la rappresentazione di un carattere occupa un byte; la memorizzazione di qualsiasi dato occupa sempre uno o più byte, non possono essere usati singoli bit o gruppi di bit più piccoli del byte. Ogni locazione della memoria è caratterizzato da un indirizzo, cioè da un numero (partendo da 0 e proseguendo in sequenza) che ne individua la posizione all'interno della memoria.
LA MISURA DELLA MEMORIALa quantità di memoria presente, o capacità di memoria, viene misurata in byte, o meglio nei suoi multipli.I multipli del byte sono: il Kbyte (si legge kappabyte) pari a 2^10 byte, cioè 1024 byte il Mbyte (si legge megabyte) pari a 1024 Kbyte (2^20 byte, cioè 1.048.576 byte). Il Gbyte (si legge gigabyte) pari a 1024 megabyte (2^30 byte, cioè più di un miliardo di byte). Poiché tutto nel computer è specificato utilizzando il sistema di numerazione binario risulta conveniente anche nel campo delle memorie procedere per multipli con base 2 (potenza di 2), pertanto 1 K vale 1024 bit e non 1000 bit. La memoria in realtà è composta da blocchi ognuno dei quali può memorizzare una certa quantità di byte. Generalmente su ogni computer si può aumentare la capacità della memoria aggiungendo altri blocchi di memoria o altre periferiche di memoria di massa. LA MEMORIA RAMLa RAM (Random Access Memory) è definita come "memoria nella quale i dati possono essere letti dal processore, modificati durante l'elaborazione, e quindi scritti di nuovo per l'archiviazione".La quantità di tempo richiesto per leggere i dati dalla memoria o per scriverci si chiama tempo di accesso ed è misurato in nano secondi. Numerose sigle costellano il mondo della memoria; tra le più note possiamo citare DRAM, FPM DRAM, EDO RAM, SDRAM, SRAM, EDRAM, VRAM, WRAM e RDRAM, SIMM (Single In-Line Memory Modules). La memoria è usata in diverse zone del PC, incluso il sistema principale, la cache e il video. La maggior parte dei PC usano dei moduli intercambiabili, diffusi soprattutto per la praticità e la facilità con cui si aumenta o diminuisce la memoria del sistema. Possiamo per esempio ricordare i PC della generazione con CPU Intel 486 che erano stati disegnati per SIMM a 72 piedini (contro i 30 di quelli ancor più vecchi con CPU Intel 286 e 386 ), che consentivano di fornire 4 bytes di dati più la parità ad ogni accesso (lettura) alla memoria. Successivamente le DIMM, adottate sui primi Intel Pentium I e II, costituivano una novità nel campo della memoria. In tali sistemi esse erano preferite perché, pur occupando meno spazio di una SIMM, equivalevano come capacità a due SIMM. Le DIMM offrivano una capacità maggiore rispetto alle SIMM, giungendo fino a 128 MB per blocco. Sui modelli con CPU Intel 486 le SIMM dovevano essere installate a coppie, mentre le DIMM potevano essere inserite singolarmente; inoltre sulla stessa scheda madre era possibile installare DIMM di capacità diversa. Queste vecchie memorie non sono del tutto sparite: l'evoluzione tecnologica ha portato a miniaturizzare sempre più i circuiti e anche le memorie con notevoli vantaggi, sia nella capacità, sia nel dispendio energetico, sia nella velocità di accesso. Ma in certe soluzioni hardware dove la velocità non è particolarmente importante (si pensi alla memoria cache nelle stampanti o di periferiche simili) si sono adottate memorie con prestazioni vicine a quelle di SIMM e DIMM unicamente per accumulare temporaneamente informazioni che lentamente vengono poi elaborate. Spesso avere delle solide basi teoriche può facilitare la comprensione di determinate dinamiche tipiche del proprio personal computer. Conoscere il significato di alcuni timings aiuterà l'utente a trovare il miglior compromesso tra frequenza massima e prestazioni, mantenendo la perfetta stabilità del proprio sistema. Non è solo la frequenza di lavoro a determinare le prestazioni velocistiche di un modulo memoria; esistono parametri di funzionamento, tipicamente raccolti sotto il nome di timings, che influenzano le prestazioni in modo marcato. È possibile variarli manualmente, così da ottenere performance superiori. I bios (basic input output system) delle schede madri mettono a disposizione settaggi differenti a seconda sia del modello di chipset presente, sia delle scelte del produttore della scheda madre. Per cominciare focalizziamo l'attenzione su tre parole chiave: Latenza: tempo necessario per eseguire una singola operazione. Throughput: velocità alla quale vengono eseguite le operazioni. Bandwidth: quantità di dati in transito nell'unità di tempo; equivale al prodotto tra il troughput e la quantità di dati cui fa riferimento ogni singola operazione. I sistemi di memoria dei moderni calcolatori sono organizzati in una struttura gerarchica a tre livelli con caratteristiche differenti, tali che il costo per bit sia proporzionale alla velocità. Cache. Memoria centrale. Memoria di massa. Le prime sono memorie caratterizzate da tempi di accesso molto bassi e vengono impiegate nei livelli più vicini alla CPU. Sono di tipo SRAM (Static RAM) ad alto costo per bit. Conseguentemente risulta impossibile, allo stato attuale, produrre calcolatori comprensivi di memoria centrale di tipo SRAM a prezzi accessibili. Le DRAM, caratteristiche della memoria centrale, sono più lente e meno costose delle prime. Le memorie di massa, invece, sono quelle con tempi di accesso più elevati; naturalmente il costo per bit sarà nettamente più basso rispetto a quello delle prime due. Con l'acronimo DRAM (Dynamic RAM) si fa riferimento alle memorie dinamiche, ovvero a quelle volatili. La memoria centrale può essere considerata un insieme di vettori (array) che compongono una tabella; pertanto sarà possibile operare su righe e colonne della stessa. Ogni cella degli array può contenere dati sotto forma di 0 e 1; per questo motivo si parla di celle di bit. Nei moderni computer l'accesso da parte del processore alla memoria centrale non è più diretto ma regolamentato da un chip specifico MMU (Memory Management Unit) che coordina tutte le richieste: per comunicare con la MMU è necessario utilizzare il bus (un insieme di circuiti che connettono tutte le parti fondamentali del computer): ogni qualvolta si rende necessario accedere alla RAM la CPU invia, attraverso il bus indirizzi, due segnali che vengono memorizzati all'interno di un buffer presente nel chip MMU: RAS (Row Address Strobe): trasferimento di un indirizzo di riga; CAS (Column Address Strobe): traferimento di un indirizzo di colonna. La suddivisione in due indirizzi permette di ridurre il numero di linee necessarie a trasportare gli stessi. Si deduce che il tempo richiesto per leggere un dato da una memoria DRAM è la somma di due ritardi: RAS-CAS: ritardo tra il trasferimento dell'indirizzo di riga e quello di colonna; CAS-dati: tempo necessario per trasferire in uscita i dati richiesti. Al fine di migliorare le prestazioni di un sistema di memoria è possibile effettuare degli accessi in parallelo, eliminando ulteriori ritardi dovuti agli accessi in sequenza. Il modello più diffuso, a banchi, offre la possibilità di suddividere i dati tra i banchi di memoria installati. Ogni modulo conterrà solo una frazione del dato originale (interleaving). Si può quindi notare che il tempo di riposta della memoria è sì fondamentale ma regolamentato anche dalla MMU e dalla velocità del bus. Il bus ha una velocità di trasferimento dei dati altissima in confronto della risposta della memoria, per cui può accadere che si formi una "coda" gestita con saggezza dalla MMU per servire non solo chi prima arriva, ma anche chi ha maggiore priorità/urgenza. Facendo un esempio concreto, al crescere della frequenza di lavoro della memoria, la bandwidth massima teorica ottenibile aumenta di conseguenza raggiungendo valori molto elevati. Utilizzando una scheda madre con supporto a configurazioni memoria dual channel, sia per processori Intel che AMD, la bandwidth massima teorica viene raddoppiata a patto, è naturale, di utilizzare contemporaneamente due moduli di memoria DDR. La frequenza di lavoro della memoria DDR potrà al limite essere identica a quella di bus di sistema, operando in modalità sincrona, quindi, con divisore impostato da bios pari a 1:1. In alcuni casi, i produttori di schede madri hanno implementato, da bios, rapporti di lavoro superiori a quelli 1:1 ma spesso si dimostrano non funzionanti, instabili o poco efficaci. Al crescere della frequenza di clock della memoria, quindi, consegue un aumento della bandwidth massima teorica disponibile. In realtà sarebbe più corretto parlare di larghezza di banda di picco in quanto periodi privi di richieste indirizzate alla memoria ed eventuali conflitti tra banchi limitano la bandwitdh.
Tipologie di RAMDRAM è il più comune tipo di memoria usata come memoria principale e come memoria video; è poco costosa ma piuttosto lenta e volatile. Le DRAM sono usate sia per leggere che per scrivere, ma i dati devono essere rinfrescati dopo ogni trasferimento. FPM DRAM (Fast Page Memory) simili alle DRAM, ma più veloci, sono disponibili a 70 ns (nanosecondi) e a 60 ns EDO RAM costituiscono un sensibile miglioramento rispetto alle FPM DRAM; se nel sistema è presente una cache secondaria le EDO possono fornire un aumento di prestazioni del 3% rispetto alle FPM DRAM; se la cache secondaria non è presente l'aumento di prestazioni sale al 10-12%. Ha un limite supporta frequenze di bus fino a 66MHz SDRAM sono DRAM Sincrone con performance migliorate e un disegno più semplice rispetto alle DRAM. Sono ideali per i Pentium I/II e supportano frequenze di Bus superiori a 100MHz. Ha la capacita' di sincronizzarsi con la frequenza di clock del microprocessore. SDRAM Ram Statica; è usata principalmente come memoria cache. È più veloce, più grande e produce più calore di una DRAM. Anche il costo è superiore. EDRAM Enhanced RAM; memoria che combina in un chip una DRAM e una SRAM cache. VRAM Video RAM; specializzata per il video, permette la scrittura e lettura simultanea di dati. È più ingombrante e più costosa della DRAM. WRAM Video Memory WRAM; è un'evoluzione della RAM VRAM. Chiamata così per la sua efficienza nell'offrire full-motion video, la WRAM ingombra meno della VRAM. Ha maggiore intelligenza che la rende fino al 50% più veloce della VRAM. RDRAM la futura generazione delle DRAM; dovrebbe migliorare fino a 20 volte le performance delle DRAM standard, con un costo decisamente inferiore. Inoltre una parte di memoria viene utilizzata per la gestione del video. SDRAM PC66: Sono moduli utilizzati nelle prime piastre madri di Pentium II e III dotate di socket 7. SDRAM PC100: è una evoluzione della stessa tipologia, utilizzata per sistemi che lavorano a 100 Mhz anche se sta lentamente scomparendo dal mercato per lasciare il posto ai moduli PC 133. SDRAM PC133: lavorano alla frequenza di 133 Mhz e i tempi di accesso sono davvero bassi (attorno ai 7 ns). Inoltre c'è un efficacie controllo per l'integrità dei dati e da questo deriva sicurezza e stabilità anche per applicazioni server. DDR: significa "Double data rate" e identifica una tecnologia che permette di sfruttare in maniera doppia ogni ciclo di clock. Questo vuol dire che sono molto performanti e che la loro capacità di trasferimento è all'incirca doppia. Memorie Rambus: nuova tipologia introdotta con l'avvento del Pentium IV. A seconda del modello le Rambus possono lavorare a 300, 356 o 400 Mhz e anch'esse sono capaci di raddoppiare il flusso di dati gestiti.Operazione di scrittura e di lettura in memoria RAM
LA MEMORIA ROMLa memoria ROM è una memoria indelebile, cioè mantiene le informazioni in modo permanente, anche quando si spegne il computer. La sigla ROM sta per Read Only Memory, che significa memoria a sola lettura: le informazioni registrate possono soltanto essere lette e non modificate. Il contenuto di una ROM viene impresso in maniera permanente dal costruttore del componente e non può essere alterato in alcun modo durante il suo funzionamento. Nella memoria ROM vengono registrate per esempio le istruzioni necessarie per il caricamento in memoria (dal disco alla memoria RAM) del sistema operativo all'accensione del computer. Anche per le memorie ROM l'accesso ai dati è di tipo random, cioè il tempo di accesso è indipendente dalla posizione; il tempo di accesso alle memorie ROM risulta comunque superiore a quello delle memorie RAM che sono dunque più veloci.LE MEMORIE PROM EPROM EAROMIl contenuto delle memorie ROM non può essere modificato dall'utente; esistono però dei tipi particolari di ROM in cui è possibile anche per l'utente registrare una o più volte le informazioni, seguendo particolari procedimenti. Le memorie PROM sono memorie a sola lettura (ROM) programmabili; l'utente può registrare delle informazioni in questo tipo di memorie, ma poi non ha più la possibilità di modificarne il contenuto. Bisogna quindi essere ben sicuri di quello che si vuole registrare; prima di programmare una PROM è opportuno registrare il programma nella RAM e verificarlo a fondo. La programmazione di una PROM avviene mediante un'apposita apparecchiatura (non mentre la PROM è installata nel computer). Le memorie EPROM (acronimo di Erasable Programmable Read Only Memory) sono delle memorie PROM che possono essere cancellate e riprogrammate; la modifica di una EPROM richiede l'estrazione dal computer, la cancellazione totale e la riprogrammazione. La cancellazione di una memoria EPROM avviene sottoponendo il componente a temperature elevate, a radiazioni ultraviolette o raggi X. Le EPROM più comuni hanno una finestra trasparente in modo che, esponendole per un certo tempo alla luce ultravioletta, il loro contenuto scompaia e possano essere riprogrammate. Le memorie EAROM (Electrically Alterable ROM) sono delle memorie ROM il cui contenuto può venire modificato anche solo in parte, applicando segnali elettrici particolari, senza che sia necessaria l'estrazione del componente dal computer. Dal punto di vista pratico, il circuito integrato della EPROM dispone sul lato superiore di una finestra in vetro di quarzo. Ponendolo sotto una lampada a raggi UV di tipo UV-C per alcuni minuti, si cancellerà il contenuto della memoria, tutti i Bit (celle o locazioni) saranno a valore alto(1), la EPROM è a questo punto riprogrammabile. Le EPROM sono ormai da considerare obsolete e non vengono praticamente più usate. Sono state sostituite dalle EEPROM (Electrical Erasable Programmable Read Only Memory) che possono essere cancellate elettricamente senza dover ricorrere ai raggi UV o staccarle dai relativi circuiti o zoccoli. La scrittura nelle celle di una memoria EPROM si realizza tramite un fenomeno di breakdown a valanga. Infatti viene fatta scorrere una forte corrente tra Drain e Source. Con una certa probabilità, alcuni elettroni "caldi" riescono a penetrare nel gate flottante. La cella è programmata quando nel gate flottante è presente una carica tale da inibire l'accensione del dispositivo. Sono stati prodotti diversi tipi di EPROM che si differenziano - oltre che per la capacità di memoria disponibile, anche per la velocità (tempo di accesso) e per le tensioni di lavoro e di programmazione. Generalmente ciascun programmatore ha un elenco di chip, divisi per produttore, per automatizzare le operazioni di impostazione ai fini della programmazione, la quale poteva essere effettuata in due modi: trasferire all'EPROM-PROGRAMMER il file in codice esadecimale residente nella memoria di un computer tramite un'interfaccia, oppure copiare direttamente il contenuto di una EPROM campione, in una o più EPROM vergini. Per le EPROM con capacità fino a 4096 byte (32768 celle), con sigla commerciale 2732, è stato sufficiente adottare un package a 24 pin, interamente occupati dai 12 fili di indirizzo, 8 fili dei dati, 1 di selezione chip, 1 per la programmazione e 2 per l'alimentazione. Per le versioni successive a partire dal chip siglato 2764, avente capacità doppia (8192 byte per un totale di 65536 celle), si rese necessario impiegare un package a 28 pin, venendo a mancare il pin necessario ad ospitare il tredicesimo filo di indirizzo; più avanti nel tempo con l'aumentare di capacità anche il package a 28 pin non fu più sufficiente. Il package era unicamente ceramico, dovendo garatite la tenuta stagna della finestra. A partire dal chip con capacità di 8 Kbyte in poi, questo tipo di memoria fu prodotta anche in tecnologia CMOS, consentendo una forte riduzione nel consumo di corrente a beneficio anche di una minore produzione di calore. La EEPROM (Electrically Erasable and Programmable ROM) è una memoria ROM, ma a differenza di una semplice ROM è cancellabile e riscrivibile, mediante opportune tensioni e correnti applicate ai MOSFET (i componenti base di una ROM) che la compongono. Le EEPROM sfruttano l'effetto tunnel per scrivere i dati all'interno delle locazioni di memoria. Infatti i transistor che formano le celle di memoria non hanno il gate direttamene collegato con l'esterno. Il gate è scollegato dal circuito attraverso un sottilissimo strato di materiale isolante e il transistor viene caricato e scaricato attraverso l'effetto tunnel. Le EEPROM sono il componente più diffuso ad utilizzare principi della meccanica quantistica (è stato infatti osservato che se le nostre leggi fisiche fossero governate dalla meccanica classica, questi componenti non potrebbero funzionare).
IL BIOSBios è l'acronimo per Basic Input-Output System ed è il supporto di memoria dove sono memorizzate le prime istruzioni per l'avviamento del personal computer: in genere tre sono le funzioni principali:- eseguire una serie di test diagnostici per controllare lo stato di funzionamento dell'hardware e segnalare eventuali guasti rilevati tramite un codice sonoro (beep code); - localizzare il sistema operativo e caricarlo nella RAM; - fornire una interfaccia software per l'accesso alle periferiche e all'hardware del PC per settaggi. Nei primi PC il BIOS supportava tutte le periferiche ed il sistema operativo (DOS) faceva completo affidamento su di esso per le operazioni a basso livello, ma con l'evoluzione tecnologica successiva le capacità offerte dalle routine di gestione del BIOS (all'epoca non aggiornabili, perché incise su ROM) divennero rapidamente insufficienti. I moderni sistemi operativi (Microsoft Windows e Linux) non usano più il BIOS per le loro operazioni di I/O ma accedono direttamente all'hardware. Il BIOS è scritto di solito nel linguaggio assembler nativo della famiglia di CPU utilizzata. Attualmente il BIOS dei PC è scritto su memorie EEPROM riscrivibili, quindi può essere modificato e aggiornato: generalmente i costruttori mettono a disposizione nuove versioni di BIOS per correggere difetti o aggiungere supporto a periferiche hardware non previste inizialmente. Tuttavia non è consigliabile aggiornare il BIOS di un PC senza un motivo ben preciso, perché l'operazione di aggiornamento, se non va a buon fine, può rendere il PC inutilizzabile. Per accedere al menu di modifica del BIOS è necessario premere all'avvio dell'elaboratore (dopo alcuni sencondi che si è premuto il tasto di accensione) un tasto o una combinazione di tasti. Se l'elaboratore ha iniziato a caricare il sistema operativo non è più possibile (eccetto alcuni casi) variare le impostazioni del BIOS. I tasti più usati: Canc oppure Del F2 F10 Alt-F1 Una volta entrati nel menu di impostazione del BIOS è sufficiente seguire le indicazioni. Un computer può integrare il proprio BIOS con altri moduli: esistono infatti schede di espansione che possono impiegare delle estensioni proprietarie del BIOS in aggiunta a quello collocato sulla scheda madre; di solito la scheda Video, ad esempio, o un controller SCSI. Il BIOS della scheda madre, durante la fase di boot, può individuare nella memoria reale da 0xC8000 a 0xF0000 saltando di 2 kilobyte e cercando una firma "0x55 0xaa", che è seguita immediatamente da un byte che indica il numero di blocchi da 512 byte che l'espansione occupa nella memoria reale: il BIOS effettua una chiamata all'indirizzo seguente, che è la prima istruzione della subroutine di startup del BIOS della periferica e registra gli interrupt necessari, svolge le funzioni diagnostiche e fornisce a video informazioni sulla scheda di espansione installata: spesso si chiama il BIOS anche col nome Firmware dal momento che è una parte integrante dell'hardware, pur essendo composto da istruzioni software. Una curiosità: pur essendo il termine BIOS un acronimo inventato, c'è un richiamo alla parola greca "ßioS" ossia vita. LA MEMORIA CACHENel funzionamento del computer la velocità di esecuzione è importantissima;alcune operazioni sulla memoria possono risultare lente rispetto alla velocità con cui opera la CPU; viene allora utilizzata una memoria piccola (anche perché più costosa) ma velocissima, interposta tra il processore e la memoria centrale, chiamata memoria cache. Nelle memorie cache vengono portati quei blocchi di istruzioni del programma a cui si fa maggiormente riferimento o record di file, in modo che, per quanto possibile, si acceda alla memoria cache e non alla memoria centrale. IL PROCESSOREIl processore o CPU costituisce in pratica "il cervello" del computer.Ci sono diversi tipi di processori che si differenziano per architettura (il modo in cui sono realizzati) e funzionamento. In generale, comunque, le componenti principali sono il BIU (Bus Interface Unit), l'unità di interfaccia del bus che gestisce la comunicazione dei dati e l'EU (Execution Unit), l'unità di esecuzione delle istruzioni. Quest'ultima comprende un'unità di controllo che sovrintende al funzionamento di tutte le parti e controlla l'esecuzione delle operazioni, l'unità aritmetico logica (ALU) in grado di eseguire le operazioni aritmetiche e logiche e alcuni registri. Schema di registri presenti in un microprocessore
L'UNITA' ARITMETICO LOGICAL'unità aritmetico logica (ALU) è un dispositivo che contiene circuiti capaci di eseguire le operazioni aritmetiche e logiche elementari e le operazioni di confronto.Le operazioni non vengono effettuate sui dati contenuti in memoria, ma sui dati trasportati nei registri, in particolare nel registro accumulatore. Per esempio per eseguire un'addizione tra due numeri, i dati devono essere prelevati dalla memoria e portati nei registri; qui l'unità aritmetico logica esegue l'operazione. Il risultato può essere inserito nel registro accumulatore o in un altro registro, oppure trasferito in memoria. I REGISTRIUn registro è una piccola memoria ad accesso molto veloce che, oltre a conservare le informazioni, permette anche di eseguire operazioni su di esse.Quando si devono eseguire delle operazioni su dati conservati nella memoria centrale, questi vengono prelevati e portati in registri particolari dove viene eseguita l'operazione; il risultato viene poi riportato in memoria. I principali registri che possono essere disponibili in un processore sono: - il registro accumulatore: è il registro in cui vengono depositati operandi e risultati intermedi per l'esecuzione di operazioni; - il registro istruzioni: è il registro in cui viene depositata l'istruzione in linguaggio macchina che deve essere eseguita; - il registro di stato di programma (chiamato anche PSW - Program Status Word): è il registro dove vengono mantenute tutte le informazioni relative al programma in corso di esecuzione, come i bit di stato che indicano il risultato di particolari operazioni (confronti, operazioni, riporto, overflow ecc.); - il registro program counter: è il registro che permette di conoscere l'indirizzo dell'istruzione che deve essere eseguita; - i registri indice: sono registri che permettono di comporre gli indirizzi degli operandi (modalità di indirizzamento indicizzato). IL CLOCKIl clock è un orologio interno al computer che serve per sincronizzare il funzionamento di tutte le parti del processore e della macchina, regolandone l'intera attività. Il clock è un circuito che genera una frequenza costante, mediante la quale è possibile misurare il tempo. In pratica il clock genera un treno di impulsi di tensione, equivalente ad una serie di 0101010101+; ad ogni 1 la macchina avanza di un passo, cioè esegue un'operazione elementare (per esempio il trasferimento di un bit). Un ciclo di clock rappresenta il tempo minimo necessario per l'esecuzione di un'operazione elementare del microprocessore. La frequenza degli impulsi viene misurata in MegaHertz (milioni di impulsi al secondo). Dire che un processore lavora a una frequenza di 20 Mhz significa che in un secondo possono avvenire 20 milioni di operazioni elementari. Quindi il clock è un segnale periodico utilizzato per sincronizzare il funzionamento di tutti i dispositivi presenti nel computer: esso viene generato da un oscillatore a quarzo. Il segnale è costituito da un livello di tensione che periodicamente in modo regolare fa una rapida transizione dal valore zero ad un valore che generalmente coincide con la tensione di alimentazione del circuito, rimane a questo livello per un certo tempo e poi in modo altrettanto rapido ritorna a livello zero, rimane a livello zero per un determinato tempo e poi il ciclo si ripete. La commutazione di tutti i circuiti logici avviene durante la transizione di questa tensione, ovverosia durante la variazione di livello di questo segnale. Gli ingressi dei dispositivi preposti a ricevere il clock sono definiti per consuetudine "attivi alti" o "attivi negati", i primi commutano durante il fronte di salita del clock i secondi sul fronte di discesa. Non necessariamente il segnale deve essere simmetrico, un clock di 100 Mhz può essere costituito da un segnale che sta alto 3 ns e rimane a zero 7 ns, o viceversa. Il ciclo di clock è il tempo che trascorre tra il verificarsi di due colpi di clock successivi. La frequenza di clock è il numero di colpi di clock che vengono eseguiti in una determinata unità di tempo. L'unità di misura usata è l'hertz, ovvero il numero di cicli di clock eseguiti in un secondo. Poiché i clock sono in genere molto veloci, si usano comunemente i multipli kilohertz (Khz), megahertz (Mhz) e gigahertz (Ghz) per indicare mille, un milione e un miliardo di cicli al secondo. Nel processore ci sono vari circuiti logici preposti ad eseguire operazioni diverse. Tali circuiti devono interagire tra loro e lo devono fare scambiandosi informazioni. Perché tale operazione avvenga correttamente però è necessario che ad ogni circuito sia indicato il momento esatto in cui può ritenere validi i segnali che riceve in ingresso. Il clock è il segnale che si occupa di questo, ed è condiviso tra tutti i circuiti. La sua frequenza quindi deve essere calcolata in modo tale che il ciclo di clock sia sufficientemente lungo da consentire a tutti i circuiti, anche il più lento, di completare correttamente le proprie operazioni.Più è breve, e quindi maggiore è la frequenza, maggiori sono le operazioni che possono essere eseguite nello stesso lasso di tempo. Per aumentare le prestazioni di una CPU quindi è possibile agire sul clock. Visto che tale valore è limitato dal circuito logico più lento, è facile che alcuni circuiti molto complessi causino colli di bottiglia (rallentamenti) che riducono molto le prestazioni generali. Per ovviare a questo problema è possibile ridurre la lunghezza massima dei circuiti logici spezzando in più parti quelli che lo sono eccessivamente. Le operazione quindi non sarebbero più completate in un solo ciclo di clock. Spesso c'è la tentazione di aumentare la frequenza di clock (overclocking ) ma in questo modo si rischia di danneggiare il processore o ad avere benefici/peggioramenti non tali da giustificare questa alterazione. Si fa presente che a livello pratico si tratta di un'operazione perfettamente legale ma che invalida istantaneamente la garanzia del prodotto oggetto della manipolazione, anche se in caso di rottura di un componente è difficile dimostrarne la causa reale. PRESTAZIONI DEI PROCESSORILe prestazioni dei processori si possono misurare in base all'ampiezza dei registri e alla velocità di clock. La velocità di clock è misurata in Mhz e dà una misura della velocità di esecuzione del processore. L'ampiezza dei registri è misurata in bit (si parla di processore a 8, 16, 32 bit ecc.). Essa indica il numero di bit che possono essere elaborati contemporaneamente e il numero di bit che possono essere utilizzati per comporre gli indirizzi; la grandezza degli indirizzi che si possono formare limita la quantità di memoria che si può usare direttamente. La frequenza con cui lavora un moderno processore è determinata da due parametri: la velocità ed il tipo di bus (che potrebbe, ad esempio, essere di 200 Mhz) ed il moltiplicatore di tale parametro, nel nostro caso esemplificativo pari a X10. Dato l'esempio, la frequenza di lavoro del processore preso in esame sarà di 2000 Mhz (bus * moltiplicatore).In generale è possibile praticare l'overclock di tutti i componenti digitali in sistemi asincroni, composti per meglio dire da sottosistemi che operino quindi a velocità diverse. Per esempio un PC ha le porte USB, la memoria di sistema, la memoria della scheda grafica, la CPU ed il bus di sistema che operano a velocità diverse: è l'architettura che procede poi a bufferizzare e gestire in modo del tutto trasparente le transizioni delle informazioni tra un componente e l'altro. In sistemi sincroni, invece, esiste una sola velocità di clock alla quale sono legate tutte le componenti del sistema: modificarla significherebbe agire sull'intero sistema, cosa che evidentemente non è possibile data la nativa eterogenia delle componenti in questione. Di solito si usa praticare overclock sulla memoria e il processore della schede video, nonché su memoria, bus e CPU del sistema ma a proprio rischio e pericolo. Il problema più grande da risolvere quando si overclocca un computer è mantenere una bassa temperatura di esercizio: infatti, aumentando la frequenza aumenta anche la quantità di corrente assorbita dal componente e di conseguenza il calore disperso nell'ambiente. Per dare un'idea del problema, un processore overcloccato può arrivare a temperature di 40-60 gradi Celsius superiori a quelli nominali indicati dal costruttore. Ciò ovviamente pregiudica l'affidabilità del componente. Talvolta, nel caso l'overclock riguardi anche la velocità di funzionamento dell'FSB (Front Side Bus) delle memorie di sistema, si dovrà provvedere ad installare appositi dissipatori anche sulle memorie stesse, pena la loro disfunzione. Alternativamente, si potrà optare per l'acquisto di memorie con maggiori tolleranze di funzionamento, appositamente vendute allo scopo. Schema dei processori Intel 8088 e 8086
IL BUSLe diverse componenti del computer (memoria, processore, periferiche ecc.) comunicano tra di loro tramite delle linee di collegamento, chiamate bus. I bus possono essere classificati in bus indirizzi, bus dati e bus di controllo in base al tipo di informazioni che trasportano (in realtà la suddivisione è soltanto teorica, dato che il modo con cui i diversi tipi di bus vengono realizzati può essere il medesimo in tutti e tre i casi). Il bus indirizzi trasporta un insieme di bit (chiamato indirizzo) che permette di individuare una locazione di memoria o una periferica; il bus indirizzi è unidirezionale, cioè le informazioni viaggiano in un solo senso: dal processore verso gli altri componenti; il numero di linee che compongono il bus dipende dal numero di bit che compongono l'indirizzo (per esempio per indirizzi a 16 bit si hanno 16 linee); l'ampiezza è un importante parametro per valutare le prestazioni del bus. Il bus dati permette al processore di scambiare dati con gli altri componenti; è bidirezionale, cioè le informazioni possono viaggiare nei due sensi (dal processore agli altri componenti o da un componente al processore). Il numero di linee che lo compongono dipende dall'ampiezza dei registri del processore. Il bus di controllo permette di trasportare i segnali di controllo per la gestione di tutte le operazioni del computer; il numero delle linee di cui è composto può variare notevolmente (più linee ci sono e più sono specializzate); ogni linea è bidirezionale.I PROGRAMMI ESEGUIBILII programmi scritti in un linguaggio di programmazione non sono direttamente eseguibili dal processore; quest'ultimo è in grado di comprendere ed eseguire soltanto le istruzioni del linguaggio macchina, un linguaggio in cui esse sono codificate mediante il sistema binario e che varia notevolmente da un processore all'altro. I programmi scritti utilizzando un qualsiasi linguaggio di programmazione, per poter essere eseguiti, devono essere tradotti in linguaggio macchina con un programma traduttore (compilatore o interprete). Un programma eseguibile può venire memorizzato su una memoria di massa, per esempio il disco. I programmi possono essere eseguiti soltanto se si trovano nella memoria centrale del computer; perciò quando si chiede l'esecuzione di un programma che risiede sul disco, il programma viene copiato in un'area della memoria RAM.IL PROCESSO DI ESECUZIONE DELLE ISTRUZIONIIl computer funziona seguendo le istruzioni fornite mediante i programmi immessi; il programma da eseguire deve essere in linguaggio macchina; le istruzioni vengono caricate nella memoria centrale (RAM) in modo sequenziale, cioè in modo che occupino posizioni consecutive della memoria. L'esecuzione delle istruzioni si basa su un processo sequenziale noto come modello di Von Neumann; tale processo consiste in una ripetizione continua delle seguenti fasi: - fase di fetch o di prelevamento - fase di decode o di decodifica - fase di execute o di esecuzione. Esso comincia con il prelevamento dalla memoria della prima istruzione; l'indirizzo di memoria dell'istruzione che deve essere eseguita viene conservato in un registro, chiamato registro contatore di programma (o program counter). Dopo che l'istruzione è stata prelevata viene determinato l'indirizzo dell'istruzione successiva e modificato il contenuto del registro contatore di programma. Le altre informazioni riguardanti l'esecuzione del programma vengono conservate nel registro di stato di programma, che contiene tra l'altro dei segnali che indicano il risultato di operazioni aritmetiche, di confronto o segnalazioni di errore. Per procedere al prelevamento dell'istruzione dalla memoria, l'unità di controllo invia sul bus degli indirizzi, l'indirizzo dell'istruzione stessa, contenuto nel registro contatore di programma; invia inoltre dei segnali di controllo per specificare che si tratta di una operazione di lettura. L'istruzione acquisita mediante l'operazione di lettura viene portata nel registro istruzioni, attraverso il bus dati. L'istruzione che si trova nel registro istruzioni viene decodificata per stabilire di quale tipo di operazione si tratta; è in questa fase che viene anche determinato l'indirizzo dell'istruzione successiva per l'aggiornamento del program counter (tale indirizzo viene infatti calcolato aggiungendo all'indirizzo dell'istruzione prelevata la lunghezza in byte dell'istruzione stessa, a meno che non si tratti di una istruzione di salto, che richiede cioè di eseguire una istruzione di cui viene specificato l'indirizzo). In base al tipo di operazione, l'unità di controllo attiva le componenti interessate all'esecuzione. Per esempio, se si tratta di una operazione di input/output devono essere attivati i componenti preposti alla gestione delle periferiche. Per eseguire una operazione aritmetico logica viene attivata l'unità aritmetico logica. Bisogna ricordare che le operazioni possono essere eseguite sempre soltanto all'interno del processore; i dati su cui eseguire l'operazione devono essere prelevati dalla memoria e portati in registri all'interno del processore con operazioni di trasferimento e, dopo l'esecuzione dell'operazione, il risultato deve essere riportato in memoria. I dati vengono prelevati dalla memoria attraverso il bus dati; l'unità di controllo pone l'indirizzo del dato da prelevare nel bus indirizzi e segnala che si tratta di una operazione di lettura tramite il bus di controllo.LE CATEGORIE DI COMPUTERNon esiste una vera e propria classificazione dei computer; questa in genere viene fatta in base alla potenza, al costo e al tipo di applicazioni e utenti a cui si rivolgono. Inoltre, data la rapidità dell'evoluzione tecnologica, le prestazioni di ogni fascia migliorano continuamente, sconfinando nella fascia di prestazioni superiori; i costi calano favorendo la diffusione del computer.I PERSONAL COMPUTERLa categoria più nota e più diffusa è senz'altro quella dei personal computer chiamati tecnicamente microcomputer poiché la CPU è costituita da un microprocessore. I personal computer hanno una capacità di memoria di qualche milione di byte (ormai le configurazioni minime partono da 4 Megabyte) e permettono di collegare periferiche di vario tipo, oltre tastiera, video e stampante, troviamo mouse, lettori di CD-ROM, scanner, plotter, modem per collegamenti a distanza ecc. Ne esistono svariati modelli che si differenziano per prestazioni, capacità di memoria e prezzi. I costi sono comunque ormai piuttosto bassi. Possono essere utilizzati anche come terminali intelligenti di sistemi più grossi o per il collegamento in rete. Sono molto diffusi nelle applicazioni di automazione d'ufficio, nelle scuole e perfino nelle case. Esiste una grande varietà di software che permette un'infinità di applicazioni, garantendo alte prestazioni.GLI HOME COMPUTERFino a qualche tempo fa erano molto diffusi gli home computer, computer di uso domestico, costituiti da una tastiera contenente il processore e la memoria; all'inizio venivano utilizzati in abbinamento a un comune registratore, per la registrazione dei programmi; poi diventarono disponibili anche drive per dischetti. L'uscita per il collegamento del video presenta un dispositivo capace di generare un segnale in alta frequenza in modo che si possa utilizzare un comune televisore al posto del monitor. Il loro costo è molto basso; permettono di programmare in Basic o in qualche altro linguaggio, ma vengono utilizzati soprattutto per i giochi.I TERMINALI INTELLIGENTII terminali sono dispositivi che possono essere collegati ad un sistema di una certa dimensione, consentendo a più utenti di lavorare contemporaneamente, in modo interattivo. I primi terminali erano costituiti da telescriventi (dette anche teletype dal nome di una famosa casa costruttrice); ormai comunque si utilizzano quasi esclusivamente terminali video, composti da una tastiera e da un video. I terminali intelligenti sono l'evoluzione dei vecchi terminali; si chiamano intelligenti poiché è stata inserita la possibilità di effettuare alcune elaborazioni sui dati.I MINICOMPUTERI minicomputer offrono prestazioni superiori a quelle dei personal computer con velocità di calcolo di centinaia di migliaia di istruzioni al secondo e memorie con capacità di qualche decina di milione di byte; possono essere utilizzati da più utenti contemporaneamente perché consentono di collegare numerosi terminali. Di solito non hanno necessità particolari di installazione e manutenzione e sono diffusi in aziende di medie dimensioni, ma anche nella scuola, soprattutto negli istituti tecnici del settore informatico.LE WORK STATIONLe work station (stazioni di lavoro) sono normalmente costituite da computer di piccole dimensioni (minicomputer o microcomputer) per una persona, o comunque per poche persone, specializzate per un lavoro particolare grazie a software, e a volte hardware, specifici. Un esempio tipico è quello di work station grafiche per l'utilizzo di applicazioni grafiche.I MAIN FRAMEI main frame sono computer dalle prestazioni molto elevate; la loro velocità di esecuzione si misura in MIPS (Mega Instructions per Second, milioni di istruzioni al secondo). A un main frame possono essere collegati centinaia di terminali; la gestione della macchina e dei diversi lavori viene affidata agli operatori, in modo che gli utenti non debbano conoscere in dettaglio il funzionamento del sistema. I main frame sono molto complessi, costosi e hanno bisogno di una costante manutenzione; nella sala dove vengono istallati devono essere presenti opportuni impianti di condizionamento d'aria (il computer sviluppa infatti un notevole calore durante il funzionamento). Sono diffusi soprattutto nei grossi centri di calcolo di aziende, università, centri di ricerca ecc. Essi sono per loro natura dei computer "general purpose", cioè computer di uso generale.I SUPERCOMPUTERI supercomputer sono i calcolatori più potenti; raggiungono velocità di calcolo dell'ordine di miliardi di istruzioni al secondo e sono dotati di memorie centrali con capacità di miliardi di byte; il loro costo è molto elevato e la diffusione limitata a settori di avanguardia come l'industria aerospaziale e automobilistica e l'ingegneria nucleare.Enciclopedia termini lemmi con iniziale a b c d e f g h i j k l m n o p q r s t u v w x y z Storia Antica dizionario lemmi a b c d e f g h i j k l m n o p q r s t u v w x y z Dizionario di Storia Moderna e Contemporanea a b c d e f g h i j k l m n o p q r s t u v w y z Lemmi Storia Antica Lemmi Storia Moderna e Contemporanea Dizionario Egizio Dizionario di storia antica e medievale Prima Seconda Terza Parte Storia Antica e Medievale Storia Moderna e Contemporanea Dizionario di matematica iniziale: a b c d e f g i k l m n o p q r s t u v z Dizionario faunistico df1 df2 df3 df4 df5 df6 df7 df8 df9 Dizionario di botanica a b c d e f g h i l m n o p q r s t u v z |
Ultima modifica :