Il microprocessore La prima e più importante componente della scheda madre è sicuramente il microprocessore, ovvero la cosiddetta CPU (central processing unit). A dire il vero, microprocessore e CPU non sono proprio la stessa cosa: il microprocessore è l'oggetto fisico che si trova nel nostro computer (ma anche nelle fotocamere digitali, negli impianti HI-FI, nei televisori, ecc..), mentre la CPU, ovvero l unità di elaborazione centrale, è soprattutto un concetto logico-funzionale. Concretamente, la CPU è dentro il microprocessore, (insieme ad alcune componenti aggiuntive), però, i due termini vengono usati in maniera quasi intercambiabile. La CPU è composta da un insieme di elementi, collegati tra di loro da uno o più bus interni, ovvero bus di comunicazione ricavati dallo stesso elemento di silicio della CPU. Tali componenti sono: i registri; l unità aritmetico logica (ALU); l unità di controllo (CU); l unità floating point (FPU).
La CPU trasferisce le informazioni in formato digitale dalla memoria del computer a piccoli scaffali di lavoro disponibili al suo interno, i cosiddetti registri, elementi di memoria ad alta velocità usati per memorizzare risultati temporanei e informazioni di controllo; leggendo i valori che trova nei registri, li modifica se necessario, in base alle regole previste dal programma che sta eseguendo e quindi trasferisce nuovamente nella memoria i valori eventualmente modificati. Fra i registri dei quali dispone la CPU ricordiamo: I registri A, B, T contengono dati su cui è possibile eseguire operazioni elementari da parte dell ALU; instruction register (IR): memorizza l istruzione da eseguire; program counter (PC): memorizza l indirizzo della prossima istruzione, un programma corrisponde infatti ad una sequenza di istruzioni immagazzinate nella memoria centrale. La prima fase dell'esecuzione di ogni istruzione corrisponde al prelevamento (fetch) dalla memoria dell'istruzione da eseguire. Questa operazione richiede l'indirizzo in memoria del primo byte dell'istruzione, contenuto nel program counter. Dopo che l'istruzione è stata prelevata, il program counter viene incrementato del numero di bytes di cui l'istruzione è composta, e quindi conterrà l'indirizzo iniziale dell'istruzione successiva. Durante l'esecuzione della istruzione il program counter potrebbe venire modificato nel caso l'istruzione sia un'istruzione di salto che modifica l'esecuzione sequenziale del programma;
memory data register (MDR o MD): serve a scambiare dati tra la CPU e la memoria, mentre il registro ED e utilizzato per scambiare i dati tra la CPU e le unita esterne di ingresso e di uscita; memory address register (MAR): è caricato di volta in volta con l indirizzo della locazione di memoria che in un certo istante la CPU vuole leggere o scrivere, mentre il registro EAR è caricato con il numero della porta di I/O con cui scambiare i dati; ED: serve allo scambio dati con le unita esterne di ingresso/uscita; program status word (PSW): è il registro dei flag che che memorizza particolari condizioni quali: riporto, traboccamento, risultato positivo/negativo, parità e altro; RC è il registro per i segnali di controllo da e verso le altre unità (scrittura,lettura, attesa, pronto ecc..; status register (SR): contiene informazioni sullo stato corrente del processore, in particolare contiene i bits di condizione, ovvero flags che indicano particolari condizioni che si sono verificate nell'ultima istruzione eseguita. I bit di condizione sono generalmente: bit di Carry C: posto ad 1 quando l'operazione aritmetica appena eseguita ha causato un riporto dal bit più significativo; bit di Zero Z: posto ad 1 quando il risultato dell'ultima istruzione è stato pari a 0; bit di Overflow V: posto ad 1 quando l'ultima operazione ha causato un overflow; bit di segno N: posto ad 1 quando il risultato dell'ultima istruzione è negativo. Molte istruzioni di programma richiedono l'intervento di una componente particolarmente importante della CPU, l'unità aritmetico-logica o ALU, che compie le principali operazioni aritmetiche. L'unità aritmetico-logica è rappresentata da una rete combinatoria composta di sommatori binari, blocchi logici AND, OR, XOR, invertitori e multiplexers. L'attivazione di questi componenti è dettata da un insieme di linee di controllo che, opportunamente comandate dall'unità di controllo, fanno si che la ALU assuma la funzionalità desiderata. Il modulo di controllo rappresenta la parte centrale della CPU, che coordina la sequenza delle fasi di esecuzione delle istruzioni. L'esecuzione di ogni istruzione richiede una sequenza di fasi diverse: la fase di fetch, per leggere dalla memoria l'istruzione da eseguire: il termine fetch indica la copia di un informazione dalla memoria all interno della CPU:
1. (PC) MAR: il contenuto del program counter viene spostato nel registro indirizzi; 2. MEM (MAR) MD: viene prelevato dalla memoria il contenuto dell indirizzo puntato da MAR e viene posto nel registro MD; 3. (MD) IR: il contenuto di MD viene posto nel registro istruzione corrente (IR); 4. (PC) +1 PC: il contenuto del program counter PC viene incrementato. la fase di decode, per la decodifica dell'istruzione; la fase di execute, per l'esecuzione dell'istruzione stessa. Queste fasi possono a loro volta essere suddivise in altre fasi. La CPU pertanto non è rappresentata da una rete combinatoria, bensì da una macchina sequenziale, che attraversa un insieme di stati, sincronizzata da un segnale di clock. L'unità di controllo implementa tale macchina sequenziale, e definirà un certo insieme di bits per contenere lo stato. L'ingresso di tale macchina sequenziale sarà rappresentato dall'istruzione da eseguire (o più precisamente da una parte di essa corrispondente al codice operativo), e le uscite saranno le linee di controllo necessarie per la corretta configurazione della ALU, per la connessione dei bus interni, e per la configurazione dei multiplexer utilizzati al di fuori della ALU. L'esecuzione di un'istruzione richiederà pertanto un certo numero di cicli di clock: maggiore sarà la frequenza di tale clock (limitato tuttavia dai tempi di commutazione del circuito), più veloce sarà l'esecuzione delle istruzioni. L'unità floating point consente di eseguire operazione su numeri reali, normalmente espressi in notazione floating point IEEE 754. Inizialmente la FPU era costituita da un chip separato dalla CPU ed in mancanza di essa le operazioni su numeri reali dovevano essere eseguite via software, ovvero con un'opportuna sequenza di istruzioni che comportassero solo calcoli su numeri interi. Attualmente le CPU utilizzate nei pc montano a bordo dello stesso chip l'unità floating point, e pertanto il set di istruzioni della CPU viene esteso alle operazioni di manipolazione dei numeri reali. I bit che vanno avanti e indietro dai registri e sui quali lavorano l'unità di controllo e la ALU hanno naturalmente bisogno di canali attraverso cui viaggiare: si tratta dei cosiddetti bus. L'architettura di un computer dovrà naturalmente prevedere diversi tipi di bus; ognuno dei componenti funzionali del pc è collegato ad un bus di controllo, un bus degli indirizzi e un bus dei dati, nonché ad una linea di alimentazione: il bus di controllo trasmette segnali che indicano quando un dato è disponibile per l accesso, il tipo di accesso, e segnala eventuali errori occorsi durante l operazione; ciascun componente collegato al bus degli indirizzi può riconoscere una combinazione di segnali elettronici unica, detta indirizzo; i bus di dati sono strade di comunicazione assai trafficate e l'efficienza e la velocità di un computer dipenderanno anche dalla loro portata'': un numero maggiore di corsie'' permetterà di far viaggiare contemporaneamente più bit e migliorerà la velocità del sistema.
Quando il microprocessore deve leggere dati dalla memoria, segnala la locazione desiderata sul bus indirizzi e quindi li legge sul bus dei dati. L esatta sincronizzazione dei bus degli indirizzi e di trasferimento dati è compito del bus di controllo. Il bus è fisicamente realizzato da un gruppo di linee comuni sulla scheda madre a cui sono collegati tutti i dispositivi del pc e, quando una nuova scheda viene innestata in uno slot di espansione, viene inserita direttamente sul bus. Il bus è sotto il controllo diretto del microprocessore che, ad ogni istante, seleziona l interconnessione da attivare e indica l operazione da compiere; le varie altre unità funzionali collegate al bus entrano in azione solo all atto della selezione da parte del microprocessore. Attraverso i bus pertanto, le informazioni provenienti dall esterno sotto forma di dati binari vengono lavorate'' in accordo con le istruzioni del programma, e vengono nuovamente spedite verso l'esterno. I ritmi di lavoro sono scanditi dall'orologio (clock) della CPU (più veloce è questo orologio, più rapidamente vengono eseguiti i compiti richiesti) e la capacità di elaborazione dipende direttamente dall'insieme di istruzioni che il processore può riconoscere ed eseguire: ogni programma costruito per essere eseguito da un particolare processore deve essere basato su comandi tratti dal relativo set di istruzioni.
Il clock è dunque un segnale periodico costituito da una sequenza alternata di uni e zeri che viene distribuito a tutti i circuiti sequenziali sincroni per sincronizzarne il funzionamento: l intervallo di tempo che intercorre tra due successivi impulsi è detto periodo di clock. La CPU lavora a n GHz, segue un ritmo, definito dall orologio del sistema, di n miliardi di impulsi al secondo: questi impulsi determinano pertanto la velocità del processore (frequenza di clock). Ad esempio, il microprocessore Intel Pentium IV con un clock a 3 GHz è temporizzato da tre miliardi di impulsi al secondo. Naturalmente, il fatto che la CPU lavori così velocemente (a una frequenza molto alta) comporta lo sviluppo di calore ed ecco che diventa essenziale raffreddare le CPU mediante una piccola ventola a motore. Si è detto che la frequenza di clock è uno degli indici della velocità del processore, ma la sua potenza effettiva dipende anche dal numero e dal tipo di istruzioni che il processore è in grado di eseguire. Le CPU si dividono in varie tipologie in funzione del tipo di connessione alla scheda madre (ad esempio socket 939, dedicati al processore Amd Athlon 64 FX, socket 775 LGA, dedicati al processore Intel Pentium 4) e dell architettura. Alcune schede madri permettono di alloggiare due CPU che si divideranno il lavoro migliorando così le prestazioni del computer.