GUIDA ALL’ESAME ECDL
27 Gennaio 2019Aldo Serbelli Odisio
27 Gennaio 2019Ricerca di informatica di Artusi Elisa, Cucchetti Chiara, Frigerio Melissa e Ottolini Chiara
A.S. 2005/06
Nel più semplice schema che possiamo immaginare un computer può essere scomposto nei seguenti componenti: CPU (Central Processing Unit), RAM (Random Access Memory), BIOS (Basic Input Output System), I/O (Input/Output).
RAM
Acronimo usato nell’informatica per Random Access Memory, è il supporto di memoria su cui è possibile leggere e scrivere informazioni con un accesso “casuale”, ovvero senza dover rispettare un determinato ordine sequenziale, come ad esempio avviene per un nastro magnetico.
Termine correntemente attribuito a supporti di memoria a stato solido facenti parte dell’hardware installato su un computer.
L’uso della memoria RAM è comune a tutte le architetture hardware, sia monoprocessore che multiprocessore e costituisce la memoria primaria dell’elaboratore.
A seconda dall’architettura usata, la CPU può accedere direttamente alla memoria oppure accedervi tramite appositi controller. Nel caso di sistemi multiprocessore, la memoria primaria può essere condivisa da più processori oppure può essere partizionata, nel qual caso ogni processore dispone di una sua memoria privata. Esistono anche architetture miste dove è presente sia una memoria primaria condivisa da tutti i processori che una memoria privata dedicata ad ognuno di essi.
Il processore carica dalla RAM, quando non presenti nella sua cache interna, le istruzioni da eseguire e i dati da elaborare per poi riscriverli nuovamente in RAM. Poiché generalmente è più lenta del processore, la sua velocità è un fattore determinante per le prestazioni dell’intero calcolatore.
Caratteristica comune a tutti i tipi di RAM utilizzati per la memoria principale è quella di perdere il proprio contenuto nel momento in cui viene a mancare la corrente elettrica che le alimenta. Sono allo studio altri tipi di memoria, basati su altri principi, che in futuro potrebbero consentire di superare questa limitazione.
ROM
Acronimo di Read Only Memory, è una memoria di sola lettura.
Fisicamente si tratta di un componente hardware (solitamente un circuito integrato) contenente dati disponibili per la sola consultazione.
E’ adatta ad alti volumi di produzione dovendo inviare al produttore (agli albori su banda perforata o scheda perforata) la copia dei dati da memorizzarvi con cui creare la maschera per la produzione.
In commercio si trovavano delle ROM già programmate con dei dati di uso generale. Ad esempio la tabella dei seni trigonometrici, la mappa dei caratteri alfanumerici usata nella visualizzazione sui terminali video, ed anche il famoso “The quick brown fox jumps over the lazy dog”.
Fino dagli albori il BIOS dei PC è memorizzato su una memoria di questo tipo. Attualmente (2005) la memoria utilizzata è di tipo “flash” EEPROM mentre precedentemente era prevalentemente di tipo EPROM.
BIOS
Il BIOS è un chip che contiene le istruzioni necessarie ad accedere ai vari dispositivi di input e output. Possiamo pensare al BIOS come ad una estensione della CPU alla quale vengono delegate le attività che sono strettamente connesse con l’impiego dei dispositivi esterni. Una funzione importante del BIOS è quella di contenere le istruzioni che devono essere eseguite quando il computer viene acceso, nella fase cioè di bootstrap. Infatti tali istruzioni non possono risiedere nella RAM perché questa si cancella ogni volta che il computer viene spento. Il BIOS contiene invece una memoria che si chiama ROM (Read Only Memory) che ha la caratteristica di essere scritta all’atto della sua costruzione e che non può più essere cancellata. Il BIOS è soggetto a continui miglioramenti come succede per la CPU ma questi sono molto frequenti perché il parco dei possibili dispositivi periferici è in continua e veloce espansione. Può infatti accadere che non si riesca ad utilizzare certi nuovi dispositivi perché si è in possesso di una versione non sufficientemente aggiornata del BIOS. In tal caso dovrebbe essere possibile far montare una versione più recente del BIOS rivolgendosi ad un rivenditore specializzato (il quale avrà comunque più voglia di farvi riaggiornare il computer intero …).
DMA
Il DMA (Direct Memory Access, «accesso diretto alla memoria») permette ad alcuni sottosistemi hardware di un computer di accedere alla memoria di sistema in lettura e/o scrittura indipendentemente dalla CPU. Il DMA è usato da molti sistemi hardware come controller di unità a disco, schede grafiche e schede audio.
Il DMA è una componente essenziale di tutti i computer moderni, in quanto permette a periferiche che lavorano a velocità diverse di comunicare senza assoggettare la CPU a un enorme carico di interrupt.
Essenzialmente, in un trasferimento DMA un blocco di memoria viene copiato da una periferica a un’altra. La CPU si limita a dare avvio al trasferimento, mentre il trasferimento vero e proprio è svolto dal controller DMA. Un caso tipico è lo spostamento di un blocco di memoria da unità di memoria esterna alla memoria principale. Se questa operazione, come avviene grazie al DMA, non blocca il processore, esso può continuare a svolgere altre operazioni.
La tecnica del DMA “scatter-gather” permette il trasferimento di dati verso più regioni di memoria nel corso di una singola transazione DMA. Il risultato è equivalente a quello che si avrebbe con una catena di normali richieste DMA, ma in questo modo si alleggerisce ulteriormente la CPU da interrupt e operazioni di copia di dati.
La sigla DRQ sta per DMA Request (richiesta di DMA); la duale DACK sta per DMA Acknowledge (accettazione di DMA).
I/O
Intendiamo con questo termine la miriade di dispositivi (spesso chiamati anche perifieriche) che possono essere impiegati nel computer. Citiamo qui solo quelli obbligatori: il disco rigido (HD: Hard Disk), l’unità floppy disk (FD, capacità 1.44 Mbyte), l’unità CD-ROM, la tastiera, il mouse, il modem.
Per avere un’idea un pò più precisa di quello che succede nella CPU quando gira un programma, individuiamo due dei suoi componenti principali: l’unità di controllo e la ALU (Arithmetic Logical Unit). L’unità di controllo è la parte che legge le istruzioni dalla RAM e le esegue. è dotata di due registri di memoria che chiamiamo registro indirizzo e registro istruzione. Ogni registro non è altro che una parola analoga a quelle che costituiscono RAM eccetto che per una velocità di accesso maggiore. I registri di memoria sono composti da un numero di bits che dipende dall’architettura del computer. In realtà di registri ce ne sono molti nella CPU ma a questo livello di descrizione ci possiamo limitare registro indirizzo e registro istruzione. L’altro componente del CPU che evidenziamo è la ALU la quale esegue tutte le operazioni aritmetiche e logiche. Anche nella ALU possiamo riconoscere due registri principali che possiamo chiamare il registro A e registro B. Questi due registri sono impiegati per memorizzare gli operandi ed anche per ospitare i risultati delle operazioni.
Con il termine istruzione in questo contesto ci riferiamo a quelle che fanno parte del linguaggio macchina. Tali istruzioni sono codificate in 0 ed 1 che l’unità è in grado di decodificare. A queste istruzioni, corrispondo dei codici mnemonici che facilitano il compito dei programmatori. Il linguaggio di programmazione che si avvale di questi codici prende il nome di assembler. Il linguaggio assembler è specifico di un computer perché è strettamente associato all’architettura di quel computer. In questo è diverso dai linguaggi di programmazione di livello elevato che presentano un livello di astrazine maggiore che gli rende sostanzialmente svincolati dall’architettura di uno specifico computer.
Facciamo qui un esempio semplicissimo di un linguaggio assembler per un ipotetico computer basato su di un’architettura a soli 8 bits. è evidente che tale esempio ha valore puramente didattico. Nella seguente tabella riportiamo i valori numerici che contraddistinguono le singole istruzioni insieme ai corrispondenti codici mnemonici. L’istruzione che sta in 8 bits è specificata mediante i 3 bits più a sinistra. Il quarto bit specifica se l’istruzione coinvolgerà il registro A (valore 0) o B (valore 1) della ALU. I 4 bits più a destra specificano l’indirizzo nella RAM che serve all’istruzione.
Il disco rigido
Il disco rigido (Hard Disk, viene indicato con la sigla HD usualmente) fa parte dei cosiddetti supporti di memoria di massa. La memoria di un computer si può distinguere in memoria centrale e memoria di massa. La memoria centrale è quella che viene usualmente chiamata RAM . Contrariamente a questa la memoria di massa è realizzata con hardware più economico (questo significa che il costo per bit memorizzato è inferiore) e che consente il mantenimento dell’informazione memorizzata anche in assenza di alimentazione elettrica. L’accesso a queste memorie è molto più lento (per esempio 1000 volte più lento) di quello che caratterizza la memoria centrale. In genere tale lentezza è dovuta alla natura meccanica di questi dispositivi. Fra i dispositivi di memoria di massa si annoverano i dischi magnetici (cosiddetti dischi rigidi appunto), i dischi ottici (CD-ROM e DVD), nastri magnetici, cartucce magnetiche, memory cards. Le memory cards fanno eccezione fra i dispositivi di memoria di massa in quanto sono basate su tecnologie allo stato solido; il loro impiego non si è diffuso molto nel mondo dei computers a causa degli enormi progressi che hanno caratterizzato la tecnologia dei dischi rigidi. Le memory cards sono destinate ad avere probabilmente maggiore successo in altri apparecchi di consumo quali per esempio apparecchi fotografici digitali, telecamere, segreterie telefoniche.
L’importanza del disco rigido è dovuta al fatto che tutti i dati che vi aspettate di ritrovare quando riaccendete il vostro computer sono memorizzati sul disco rigido. Tutto viene mantenuto sul disco rigido: il sistema operativo, la sua impostazione (come si presenta il desktop, cioè l’insieme delle icone e dei menu), tutti i programmi (talvolta chiamati applicativi) installati, lo stato dei programmi (i bookmarks memorizzati nel browser Netscape per esempio), tutti i documenti e dati da voi prodotti.
Si può ragionevolmente affermare che se proprio si deve rompere qualcosa (tutto si rompe prima o poi ed è professionalmente corretto organizzare il proprio lavoro in previsione di questo, laddove possibile) è preferibile che sia tutto (parlando del computer ovviamente) eccetto il disco rigido. Se si deteriora la CPU o si rompe il monitor si tratta di sostituire il pezzo appropriato e si riparte immediatamente. Se si rompe il disco rigido in modo irreparabile tutto il vostro lavoro, le installazioni fatte, le impostazioni dei programmi vengono irrimediabilmente perse.
Queste considerazioni suggeriscono una norma fondamentale nell’uso di un computer: salvare regolarmente tutti i propri dati rilevanti su dispositivi aggiuntivi: floppy disk, dischi rimovibili, CD-ROM masterizzabili (sui quali è possibile scrivere cioè). è ancora meglio salvare in doppia copia se i dati sono importanti, per esempio lo stesso file su due floppy disk. La procedura di salvare i propri dati su di un altro supporto di memoria di massa si chiama backup. è importante stabilire una regolare strategia di backup. Un buon procedimento può essere salvare tutti i files nuovi o comunque modificati alla fine di ogni giornata e fare un salvataggio generale di tutti i files alla fine di ogni settimana.
Le seguenti regole possono ridurre la probabilità di andare incontro ad incidenti che possono rappresentare un incubo in molte situazioni.
Non economizzare sul disco rigido: a parità di dimensioni e prestazioni meglio spendere di più. Forse è anche meglio, a parità di budget, privilegiare la qualità rispetto alle prestazioni.
Fare regolari e completi backups di tutti i dati importanti.
Avere rispetto della macchina: i dischi rigidi sono oggetti meccanici ed urti di qualsiasi tipo possono essere dannosi. Questo è evidentemente particolarmente importante per i computer portatili (notebook o laptop). Appoggiare 100 volte dolcemente o bruscamente sulla scrivania il portatile può fare una differenza.
Per avere un’idea dell’incredibile livello raggiunto dalla tecnologia nella realizzazione dei dischi rigidi in questa figura potete vedere l’interno di un disco rigido che 36 Gbytes di capacità, è costituito da 10 dischi impilati uno su l’altro e che gira alla velocità di 10000 giri al minuto (167 giri al secondo!). In quest’altra figura é stato schematizzato il confronto fra la distanza alla quale la testina di lettura-scrittura galleggia su di un cuscino di aria compressa al di sopra della superficie del disco, circa 1 o 2 micrometri, e le dimensioni di un capello, di una particella di polvere di una traccia di una ditata.
Il modem
Il modem è particolarmente importante per il fatto che molto spesso rappresenta il mezzo attraverso il quale il vostro computer comunica con il mondo esterno. Più precisamente il modem consente di collegarsi ad un nodo della rete Internet attraverso la normale linea telefonica. Non è l’unico modo oggi disponibile ma è il più economico e quindi almeno per ora il più rilevante. Ne parliamo più diffusamente nella sezione dedicata ad Internet .
Microprocessore
Un microprocessore è un singolo circuito integrato in grado di effettuare operazioni decisionali, di calcolo o di elaborazione dell’informazione; il microprocessore principale di un computer viene chiamato processore o CPU; il microprocessore che si occupa delle operazione legate alla visualizzazione delle informazioni in un computer viene chiamato GPU o VPU.
I processori sono circuiti contenenti da migliaia a milioni di transistor ed altri componenti elettronici, ottenuti sfruttando le caratteristiche di semiconduttività del silicio e la sua relativa facilità di essere convertito in isolante tramite drogaggio. Questi transistor conservano informazioni sotto forma di carica elettrica, variando il livello a seconda della logica usata nel funzionamento del circuito.
Periferica
Una periferica è, nell’informatica, un dispositivo hardware collegato al computer talvolta controllato da un proprio microprocessore, le cui funzioni sono controllate dal sistema operativo attraverso i relativi driver. Sebbene il termine suggerisca l’idea di qualcosa di aggiuntivo – e quindi non strettamente essenziale – molti di questi dispositivi si rivelano di primaria importanza nell’economia di un sistema di elaborazione dati che possa dirsi totalmente efficiente.
Fra le principali periferiche necessarie ad un uso ottimale del computer vi sono le memorie di massa (hard disk), quelle di input ed output cartaceo (scanner e stampante) e quelle di comunicazione con altri computer (scheda di rete e modem). Ugualmente, la tastiera, il mouse e il monitor – componenti primarie dell’interfaccia con l’utente.
Principali periferiche:
Tastiera
Periferiche di puntamento:
Mouse
Mouse ottico
Penna ottica
Memorie di massa:
Hard disk
Floppy disk
Lettori di Dischi ottici (CD, DVD, Blu-Ray Disc)
Lettori di Memory card e Pen-drive USB
Microdrive
Unità a nastro
Unità a dischi removibili
Monitor
Stampanti
Dispositivi di Input-Output (ingresso uscita):
Modem
Router
Print server
Scanner d’immagini
Scheda video (con Risoluzioni standard)
Scheda audio
Universal Serial Bus
L’Universal Serial Bus (USB) è uno standard di comunicazione seriale che consente di collegare diverse periferiche ad un computer.
Il sistema USB è asimmetrico, consiste in un singolo gestore e molte periferiche collegate da una struttura simile ad un albero attraverso dei dispositivi chiamati hub (concentratori). Supporta fino ad un massimo di 127 periferiche per gestore, nel computo vanno inclusi anche gli hub e il gestore stesso quindi in realtà il numero totale di dispositivi collegabili è sensibilmente inferiore.
Lo standard prevede che il connettore porti anche un segnale per alimentare le periferiche a basso consumo. Le periferiche che hanno richieste energetiche elevate vanno alimentate a parte. I limiti energetici dello standard vanno seguiti scrupolosamente pena il probabile danneggiamento del gestore dato che lo standard USB non prevede nelle specifiche minime la sconnessione in caso di sovraccarico.
Il disegno dell’USB è stato pensato per consentire un semplice inserimento e rimozione. Lo standard è stato progettato in modo da consentire un semplice aggiornamento dei sistemi sprovvisti di USB attraverso una scheda PCI o ISA. Le porte USB sono dotate del supporto del Plug and Play e supportano i dispositivi hot swap quindi se il sistema operativo lo consente supportano la rimozione a caldo e il reinserimento delle periferiche senza dover riavviare il computer.
USB può collegare periferiche quali mouse, tastiere, scanner d’immagini, macchine fotografiche digitali, stampanti, casse acustiche, microfoni e altro ancora. Per i componenti multimediali oramai lo standard USB è il metodo di collegamento più utilizzato mentre nelle stampanti sopravvivono ancora molti modelli dotati anche di porta parallela per questioni di compatibilità.
All’interno del computer l’USB non ha rimpiazzato lo standard ATA o SCSI per via della sua lentezza. Il nuovo standard serial ATA per esempio consente trasferimenti dell’ordine di 150 Mbyte per secondo, una velocità molto più elevata dello standard USB, che nella versione 2.0 raggiunge un massimo di 60 Mbyte per secondo (480 Mbits/s). L’USB viene molto usato negli hard disk esterni dove si preferisce privilegiare la praticità di poter collegare e scollegare a caldo il componente rispetto alla velocità di una connessione tipo ATA.
USB non ha ancora totalmente rimpiazzato il connettore PS/2 della tastiera, molti costruttori preferiscono mantenerlo per consentire agli utenti di poter utilizzare le economiche tastiere PS2.
Lo standard 1.0 dell’USB supporta collegamenti a solo 1,5 Mbit/s, velocità adeguata per mouse, tastiere e dispostivi lenti. La versione 1.1 aggiunge la modalità full speed che innalza la velocità a 12 Mbit/s.
La maggior novità dello standard USB versione 2.0 è l’innalzamento della velocità di trasferimento che arriva anche a 480 Mbit/s. Questa velocità cosi elevata consente all’USB di competere con lo standard Firewire ad armi quasi pari. Infatti lo standard USB ha delle limitazioni di carattere tecnico che ne sconsigliano l’utilizzo su telecamere e dispostivi che manipolano flussi video.
Il forum che sovraintende allo sviluppo dello standard USB ha rinominato USB 1.1 come USB 2.0 Full Speed e USB 2.0 come USB 2.0 High Speed.
Le specifiche dell’USB stabiliscono due tipi di connettori per collegare i dispositivi, il connettore A e B. Negli ultimi anni alcuni produttori hanno introdotto delle varianti del connettore per i loro dispostivi miniaturizzati. Molti produttori cercando di ridurre le dimensioni dei dispositivi hanno deciso di creare connettori più piccoli di quelli standard. Questi dispositivi sono dei dispositivi USB a tutti gli effetti, infatti lo standard di comunicazione rimane quello dell’USB, l’unica cosa che cambia è il connettore che è fisicamente diverso.
Una estensione del USB chiamata USB-On-The-Go consente ad una singola porta di fungere sia da dispositivo che da controllore. Ciò consente una più semplice connessione di dispositivi tipo i PDA che a volte devono fare da dispositivo ed a volte devono comandare dei dispostivi. Per evitare una proliferazione dei connettori proprietari. USB-On-The-Go ha definito anche due connettori chiamati, mini-A e mini-B, che sono connettori molto più piccoli dei connettori precedenti, questo rimuove la principale motivazione dei produttori ad ignorare lo standard e cioè risparmiare spazio.
Porte seriali e parallele
La comunicazione seriale consente la trasmissione e la ricezione di dati tramite una porta seriale. Tale comunicazione avviene attraverso lo scambio di blocchi di bit ad una determinata velocità lungo i cavi seriali che raggiungono porte di ogni tipo in base naturalmente alle periferiche installate sul computer.
Le porte più comuni sono quelle della tastiera, del mouse, del video, del modem, della stampante, la porta USB e così via.
Vediamo brevemente i principi della comunicazione seriale.
Come già detto le porte seriali connettono fisicamente una periferica al computer e ne permettono una comunicazione asincrona. Per comunicazione asincrona s’intende un metodo di trasferimento dati ad intervalli regolari: l’invio di ogni carattere alla porta (tipo RS-232) viene preceduto dall’invio un bit che indica l’inizio della comunicazione, e seguito dall’invio di un secondo bit che indica la chiusura (temporanea) della comunicazione.
E naturalmente si definisce invece comunicazione sincrona il trasferimento dati computer/porta parallela come flusso continuo di bit.
Qual è la differenza tra una comunicazione seriale ed una parallela? Nel caso di comunicazione parallela il trasferimento dei dati avviene attraverso otto pin (ossia in pratica otto contatti) per trasmettere gli otto bit che costituiscono un carattere (ad esempio la lettera ‘a’). Una volta arrivati alla porta questi bit si combinano per creare il carattere.
Bus di sistema
Il bus di sistema, presente in tutti i microcalcolatori, è composto da 50 a 100 fili in rame incisi sulla scheda madre ed è dotato di connettori separati ad intervalli regolari per linnesto dei moduli di memoria e di I/O. Si tratta di una serie di connessioni elettriche ognuna delle quali può trasmettere cifre binarie (0 o 1) in successione, l’insieme delle quali (che può essere o meno interpretato come un valore numerico) è interpretato dai vari componenti del sistema secondo protocolli prestabiliti. Un bus che collega 2 componenti appartenenti alla stessa scheda integrata è detto bus interno (internal bus) (di solito proprietario), se collega due componenti generici è detto bus esterno (external bus). Se c’è un solo bus esterno è detto bus di sistema (system bus).
Il bus di sistema si divide in tre bus minori:
bus dati
bus indirizzi
bus controlli
Bus dati
E’ il bus sul quale transitano le informazioni. E’ usufruibile da tutti i componenti del sistema, sia in scrittura sia in lettura.
Bus indirizzi
E’ il bus attraverso il quale la CPU decide in quale indirizzo andare a scrivere o a leggere informazioni; sia le celle di memoria (RAM) sia le periferiche di I/O (Input/Output) sono infatti divise in zone, ognuna delle quali ha un dato indirizzo. Dopo aver comunicato l’indirizzo tramite questo bus, la scrittura o lettura avviene normalmente tramite il bus dati. Naturalmente questo bus è fruibile in scrittura solo dalla CPU ed in lettura dagli altri componenti, in quanto tramite questo bus viene dato solo l’indirizzo della cella, che è deciso dalla CPU.
Bus controlli
Il bus controlli è un insiemi di collegamenti il cui scopo è coordinare le attività del sistema; tramite esso, la CPU può decidere quale componente deve scrivere sul bus dati in un determinato momento, quale deve leggere l’indirizzo sul bus indirizzi, quali celle di memoria devono scrivere e quali invece leggere, etc. Infatti la memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico bus condiviso; questo significa che senza un controllo da parte dalla CPU si verrebbero a creare dei conflitti e delle collisioni.
Il motivo per cui gli elaboratori dispongono in genere di un solo bus è semplice: l’architettura a più bus, proposta teoricamente agli albori dell’informatica da John von Neumann nel 1945, non è praticamente realizzabile, visto l’altissimo numero di connessioni che sarebbero necessarie.
CPU
La CPU (acronimo di Central Processing Unit, detta comunemente processore) è l’implementazione fisica di uno dei due componenti della macchina di Turing (l’altro è la memoria).
Compito della CPU è quello di leggere le istruzioni e i dati dalla memoria ed eseguire le istruzioni; il risultato della esecuzione di una istruzione dipende dal dato su cui opera e dallo stato interno della CPU stessa, che tiene traccia delle passate operazioni.
In base all’organizzazione della memoria si possono distingure due famiglie di CPU:
con architettura Von Neumann classica, in cui dati ed istruzioni risiedono nella stessa memoria (è dunque possibile avere codice automodificante). Questa architettura è la più comune, perché la più semplice e flessibile.
con architettura Harvard: i dati e le istruzioni risiedono in due memorie separate. Questa architettura garantisce migliori prestazioni poiché le due memorie possono lavorare in parallelo ma è più complessa da gestire. E’ tipicamente utilizzata nei DSP.
Qualunque CPU contiene:
una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche;
una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l’istruzione letta, esegue l’istruzione e memorizza il risultato se c’è, scrivendolo in memoria o in un registro della CPU.
dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente. Due registri sempre presenti sono:
il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l’indirizzo in memoria della prossima istruzione da eseguire;
il registro dei flag: questo registro non contiene valori numerici convenzionali, ma è piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari della CPU e alcune informazioni sul risultato dell’ultima operazione eseguita. I flag più importanti sono:
Zero: vale 1 se l’ultima operazione ha avuto risultato zero, altrimenti vale 0.
Carry: vale 1 se l’ultima operazione ha ecceduto la capacità del registro che contiene il risultato, altrimenti vale 0 (esempio: in un registro a 8 bit, che può rappresentare solo numeri da 0 a 255, la somma 178+250 darebbe come risultato 172 e il carry verrebbe posto a 1).
Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di rispondere alle richieste di servizio esterne delle periferiche (i segnali delle linee IRQ) finché non viene ripristinato al valore 0, o finché non arriva dall’esterno un segnale di RESET.
A proposto di registri le CPU si distinguono in:
basate su stack: i registri sono organizzati in una struttura a stack e tutte le istruzioni operano esclusivamente su questo stack (ad esempio il Transputer); questa architettura ha il vantaggio di non dover specificare su quale registro interno operare (è sempre quello in cima allo stack), ottenendo istruzioni (opcodes) più corte e più semplici da decodificare. L’altra faccia della medaglia è che nel caso sia necessario un dato “sepolto” in fondo allo stack, il suo recupero è un’operazione molto lenta.
basate su registri: queste CPU sono dotate di ulteriori registri generici che restano a disposizione dell’utente per memorizzarci valori temporanei. Le istruzioni possono accedere a questi registri generici. La maggioranza delle CPU sono di questo tipo.
Una CPU è un circuito digitale sincrono: vale a dire che il suo stato cambia ogni volta che riceve un impulso da un segnale di sincronismo detto CLOCK: quindi il tempo di esecuzione di una istruzione si misura in cicli di clock, cioè in quanti impulsi di clock sono necessari perché la CPU la completi. In effetti, una parte importante e delicata di ogni CPU è il sistema di distribuzione che porta il segnale di clock alle varie unità e sottounità di cui è composta, per fare in modo che siano sempre in sincronia: tale sistema si dirama in una struttura ad albero con divisori e ripetitori che giunge ovunque nella CPU. Nei processori più moderni (Pentium, Athlon, PowerPC) questa “catena di ingranaggi” elettronica arriva ad impiegare circa il 30% di tutti i transistor disponibili. La velocità di questa distribuzione determina in maniera diretta la massima frequenza operativa di una CPU: nessuna CPU può essere più veloce del suo critical path, cioè del tempo che impiega il clock per percorrere il tratto più lungo in tutto l’albero di distribuzione del clock. Per esempio, se il segnale di clock di una data CPU impiega un nanosecondo per attraversare tutto il chip ed arrivare fino all’ultima sottounità, questa CPU potrà operare a non più di 1 GHz, perché altrimenti le sue componenti interne perderebbero la sincronizzazione, con risultati imprevedibili (per motivi di tolleranze e margini di sicurezza, il limite pratico sarà anzi ben minore di 1GHz).
Fonti:
Wikipedia – enciclopedia libera
Informatica – Facoltà di Medicina – Università di Firenze