Homepage » come » HTG spiega come funziona effettivamente una CPU?

    HTG spiega come funziona effettivamente una CPU?

    La maggior parte delle cose in un computer è relativamente semplice da comprendere: la RAM, l'archiviazione, le periferiche e il software funzionano tutti insieme per creare una funzione del computer. Ma il cuore del tuo sistema, la CPU, sembra magico anche per molti tecnici. Qui, faremo del nostro meglio per abbatterlo.

    La maggior parte delle ricerche per questo articolo proviene da "Ma How Do It Know?" Di J. Clark Scott. È una lettura fantastica, entra molto più in profondità di questo articolo, e vale la pena spendere un paio di dollari su Amazon.

    Una nota prima di iniziare: le CPU moderne sono ordini di grandezza più complesse di quelle che stiamo delineando qui. È quasi impossibile per una persona comprendere ogni sfumatura di un chip con oltre un miliardo di transistor. Tuttavia, i principi di base di come tutto si combina sono gli stessi, e la comprensione delle basi ti darà una migliore comprensione dei sistemi moderni.

    Avvio piccolo

    I computer operano in binario. Comprendono solo due stati: acceso e spento. Per eseguire calcoli in binario, usano quello che viene chiamato un transistor. Il transistor consente alla corrente della sorgente di fluire attraverso lo scarico solo se c'è corrente attraverso il gate. Essenzialmente, questo forma un interruttore binario, che interrompe il collegamento a seconda di un secondo segnale di ingresso.

    I computer moderni utilizzano miliardi di transistor per eseguire calcoli, ma ai livelli più bassi, è sufficiente una manciata per formare i componenti più elementari, noti come porte.

    Porte logiche

    Impila correttamente alcuni transistor e hai ciò che è noto come gate logico. Le porte logiche accettano due ingressi binari, eseguono un'operazione su di essi e restituiscono un'uscita. La porta OR, ad esempio, restituisce true se uno degli input è vero. La porta AND controlla se entrambi gli ingressi sono veri, XOR verifica se solo uno degli input è vero e le varianti N (NOR, NAND e XNOR) sono versioni invertite delle loro porte di base.

    Fare matematica con le porte

    Con solo due porte puoi eseguire l'aggiunta binaria di base. Questo diagramma sopra mostra un mezzo addizionatore, creato usando Logicly, un parco giochi online gratuito per porte logiche. Il gate XOR qui si accenderà se solo uno degli ingressi è attivo, ma non entrambi. La porta AND si accenderà se entrambi gli ingressi sono attivi, ma resteranno spenti se non ci sono input. Quindi, se entrambi sono attivi, lo XOR rimane spento e il gate AND si accende, arrivando alla risposta corretta di due:

    Questo ci dà una configurazione semplice con tre uscite distinte: zero, uno e due. Ma un bit non può memorizzare nulla più in alto di 1, e questa macchina non è troppo utile in quanto risolve solo uno dei più semplici problemi matematici possibili. Ma questo è solo un mezzo addizionatore, e se si collegano due di loro con un altro input, si ottiene un full adder:

    Il sommatore completo ha tre input: i due numeri da aggiungere e un "carry". Il carry viene utilizzato quando il numero finale supera quello che può essere memorizzato in un singolo bit. I sommatori completi saranno collegati in una catena, e il carry sarà passato da un sommatore all'altro. Il carry viene aggiunto al risultato del gate XOR nel primo half adder, e c'è un cancello OR extra per gestire entrambi i casi quando il modo in cui dovrebbe essere.

    Quando entrambi gli ingressi sono attivi, il carry si accende e lo invia al successivo full adder della catena:

    E questo è tanto complesso quanto l'aggiunta. Passare a più bit in sostanza significa solo più sommatori completi in una catena più lunga.

    La maggior parte delle altre operazioni matematiche può essere eseguita con l'aggiunta; la moltiplicazione è solo un'aggiunta ripetuta, la sottrazione può essere eseguita con un'inversione di bit di fantasia, e la divisione è solo una sottrazione ripetuta. E mentre tutti i computer moderni dispongono di soluzioni basate su hardware per accelerare operazioni più complesse, è possibile tecnicamente fare tutto con il full adder.

    Il bus e la memoria

    In questo momento, il nostro computer non è altro che una cattiva calcolatrice. Questo perché non può ricordare nulla e non fa nulla con le sue uscite. Mostrato sopra è una cella di memoria, che può fare tutto ciò. Sotto il cofano, utilizza molte porte NAND, e nella vita reale può essere molto diverso a seconda della tecnica di memorizzazione, ma la sua funzione è la stessa. Dagli qualche input, attiva il bit 'write' e memorizzerà gli input all'interno della cella. Questa non è solo una cella di memoria, poiché abbiamo anche bisogno di un modo per leggere le informazioni da essa. Questo viene fatto con un enabler, che è una collezione di porte AND per ogni bit in memoria, il tutto legato a un altro input, il bit "read". I bit di scrittura e lettura sono spesso chiamati "set" e "enable".

    L'intero pacchetto è racchiuso in quello che è noto come registro. Questi registri sono collegati al bus, che è un fascio di fili che gira intorno all'intero sistema, collegato a ogni componente. Anche i computer moderni hanno un bus, sebbene possano avere più bus per migliorare le prestazioni del multitasking.

    Ogni registro ha ancora un bit di scrittura e lettura, ma in questa configurazione, l'input e l'output sono la stessa cosa. Questo è veramente buono. Per esempio. Se si volesse copiare il contenuto di R1 in R2, si accenderebbe il bit di lettura per R1, che spingerebbe il contenuto di R1 sul bus. Mentre il bit di lettura è attivo, si attiva il bit di scrittura per R2, che copierà il contenuto del bus in R2.

    I registri sono utilizzati anche per creare RAM. La RAM è spesso disposta in una griglia, con fili che vanno in due direzioni:

    I decodificatori prendono un input binario e attivano il filo numerato corrispondente. Ad esempio, "11" è 3 in binario, il numero più alto a 2 bit, quindi il decodificatore accenderebbe il filo più alto. Ad ogni intersezione, c'è un registro. Tutti questi sono collegati al bus centrale e ad un input di scrittura e lettura centrale. Sia l'input di lettura che quello di scrittura si accenderanno solo se i due fili che attraversano il registro sono anch'essi attivi, consentendo in pratica di selezionare il registro da cui scrivere e leggere. Ancora una volta, la RAM moderna è molto più complicata, ma questa configurazione funziona ancora.

    L'orologio, il passo-passo e il decodificatore

    I registri sono utilizzati ovunque e sono lo strumento di base per lo spostamento dei dati e la memorizzazione delle informazioni nella CPU. Quindi, ciò che dice loro di spostare le cose?

    L'orologio è il primo componente nel cuore della CPU e si spegne e accende a intervalli regolari, misurati in hertz o cicli al secondo. Questa è la velocità che vedi pubblicizzata insieme alle CPU; un chip a 5 GHz può eseguire 5 miliardi di cicli al secondo. La velocità di clock è spesso una metrica molto buona per la velocità della CPU.

    L'orologio ha tre stati diversi: l'orologio base, l'orologio abilitazione e l'orologio impostato. L'orologio base sarà acceso per mezzo ciclo e spento per l'altra metà. L'orologio di abilitazione viene utilizzato per attivare i registri e dovrà essere acceso più a lungo per assicurarsi che i dati siano abilitati. L'orologio impostato deve sempre essere attivo contemporaneamente al clock di abilitazione, altrimenti potrebbero essere scritti dati non corretti.

    L'orologio è collegato allo stepper, che conterà da uno al gradino massimo e si resetterà su uno quando è finito. L'orologio è anche collegato alle porte AND per ogni registro che la CPU può scrivere su:

    Queste porte AND sono anche collegate all'uscita di un altro componente, il decodificatore di istruzioni. Il decodificatore di istruzioni prende un'istruzione come "SET R2 TO R1" e la decodifica in qualcosa che la CPU può capire. Ha un proprio registro interno, chiamato "Registro delle istruzioni", che è il luogo in cui è archiviata l'operazione corrente. In che modo esattamente questo si riduce al sistema su cui si sta eseguendo, ma una volta decodificato, si attiva il set corretto e abilita i bit per i registri corretti, che si attivano in base all'orologio.

    Le istruzioni del programma sono memorizzate nella RAM (o nella cache L1 su sistemi moderni, più vicini alla CPU). Poiché i dati del programma sono memorizzati nei registri, come qualsiasi altra variabile, possono essere manipolati al volo per saltare il programma. Ecco come i programmi ottengono la loro struttura, con cicli e se dichiarazioni. Un'istruzione di salto imposta la posizione corrente nella memoria che il decodificatore di istruzioni sta leggendo da una posizione diversa.

    Come tutto viene insieme

    Ora, la nostra grossolana semplificazione di come funziona una CPU è completa. Il bus principale copre l'intero sistema e si collega a tutti i registri. I sommatori completi, insieme ad un sacco di altre operazioni, sono confezionati nell'unità di logica aritmetica, o l'ALU. Questa ALU avrà connessioni al bus e avrà anche i suoi registri per memorizzare il secondo numero su cui sta operando.

    Per eseguire un calcolo, i dati del programma vengono caricati dalla RAM del sistema nella sezione di controllo. La sezione di controllo legge due numeri dalla RAM, carica il primo nel registro delle istruzioni dell'ALU e quindi carica il secondo sul bus. Nel frattempo, invia all'ALU un codice di istruzioni che gli dice cosa fare. L'ALU esegue quindi tutti i calcoli e memorizza il risultato in un registro diverso, da cui la CPU può leggere e quindi continua il processo.

    Immagine di credito: Rost9 / Shutterstock