Descrizione:Il pezzo fondamentale di un qualsiasi computer moderno e la cosiddetta Central Processor Unit o CPU. Stiamo parlando di computer "normali", non di oggetti per ora in fase di studio come per esempio computer basati su reti neurali. Tanto un comune PC quanto un gigantesco mainframe dispongono di un unica CPU, o processore. Il processore è, di solito, un oggetto relativamente semplice.
Tipologia:Università
Testo completo:Il pezzo fondamentale di un qualsiasi computer moderno e la cosiddetta Central Processor Unit o CPU. Stiamo parlando di computer "normali", non di oggetti per ora in fase di studio come per esempio computer basati su reti neurali. Tanto un comune PC quanto un gigantesco mainframe dispongono di un unica CPU, o processore. Il processore è, di solito, un oggetto relativamente semplice. Possiede alcune memorie interne, dette registri, che gli permettono di svolgere semplici operazioni di base come:
- richiamare un numero scritto nella memoria in un certo indirizzo, e scriverlo in un registro;
- scrivere il numero contenuto in un registro in un certo indirizzo di memoria;
- sommare due registri;
- incrementare di un'unità il valore di un registro.
Il numero e la complessità delle operazioni di base che possono essere eseguite dal processore dipende dal tipo del processore stesso, ed è legato alla potenza di calcolo richiesta al computer. Non ci interessa qui entrare nel dettaglio, quanto chiarire che si tratta sempre di operazioni semplici. Il problema è naturalmente quello di tradurre le infinite operazioni complesse che il computer deve poter eseguire nei termini elementari delle operazioni che la CPU può effettivamente svolgere.
Le operazioni che la CPU svolge sono, come si dice in gergo, "cablate" nei suoi stessi circuiti. In qualche modo, ciascuna di tali operazioni di base è realizzata attraverso un meccanismo affine a quello dei righelli; la grande versatilità della CPU si ottiene facendo in modo che le specifiche operazioni elementari di volta in volta attivate dipendano a loro volta dai dati che arrivano alla CPU.
Una domanda sorge spontanea: se la CPU esegue solo operazioni elementari, come fa a gestire in tempi ragionevoli tutte le operazioni complesse che il computer richiede? Il trucco, naturalmente, sta nel fatto che la CPU è molto veloce. Per avere un'idea di quanto sia veloce, possiamo notare un fatto. Per motivi di semplicità di costruzione, un computer moderno ha bisogno che tutte le operazioni di base siano accuratamente sincronizzate tra loro. Il meccanismo di sincronizzazione è realizzato attraverso un orologio (clock), che letteralmente "batte il tempo". A ogni battito può partire una singola operazione elementare. Possiamo prendere come esempio, un computer portatile che ha una velocità di clock di 1,4 gigahertz (GHz). Questa strana misura dice che l'orologio del computer dà 1.400.000.000 battiti ad ogni secondo; cioè, è in grado di compiere un massimo di 1.400.000.000 operazioni elementari al secondo. Il gigahertz indica miliardi di hertz; l'hertz è l'unità di misura della frequenza.
Il computer si basa sull'uso di impulsi elettrici che "rappresentano" i numeri. E' possibile costruire circuiti specifici che, dati due numeri in input, forniscano in output il risultato di una certa operazione aritmetica.
Per fare un esempio, possiamo vedere brevemente come sarebbe possibile realizzare circuiti per effettuare le operazioni logiche “And”(=end) e “Or”. Ricordiamo che l'operatore logico “And” fornisce un risultato "vero" solo se entrambi i termini su cui agisce sono veri; per fare un esempio, la proposizione "piove AND fa freddo" è vera se e solo se piove e fa anche freddo. Se non piove o non fa freddo la proposizione è falsa. Viceversa l'operatore OR fornisce un risultato vero se è vero uno qualsiasi dei termini su cui agisce. Ad esempio, l'unico caso in cui la proposizione "piove OR fa freddo" è falsa è quello in cui non piove, e neppure fa freddo. Immaginiamo ora di attribuire il valore "vero" al fatto che in un circuito elettrico passi corrente, e il valore "falso" al fatto che la corrente non passi. Due interruttori rappresentano rispettivamente le proposizioni "piove" e "fa freddo". Dunque, se l'interruttore "piove" è chiuso, vuol dire che piove; se è aperto vuol dire che non piove. Questo nel senso che un interruttore chiuso lascia passare la corrente, dunque il fatto che l'interruttore "piove" sia chiuso rappresenta il fatto che la proposizione "piove" è vera. Mettendo in serie i due interruttori, la corrente passerà nel circuito solo nel caso in cui entrambi gli interruttori saranno chiusi. Il circuito in serie, quindi, realizza l'hardware necessario per rappresentare la logica dell'operatore AND. Viceversa, mettendo i due interruttori in parallelo la corrente passerà quando uno qualsiasi dei due interruttori verrà chiuso. In questo caso, quindi, avremo l'hardware necessario per rappresentare la logica dell'operatore OR. Va da sé che se costruiamo un circuito AND, il circuito non potrà compiere un'operazione logica di tipo OR; circuiti di questo tipo svolgono ruoli affini a quello che abbiamo descritto nel caso dei due righelli.