CPU, noto anche come il microprocessore è il cuore e / o il cervello di un computer. Consente di immergersi in profondità nel nucleo del computer e capire come funziona la CPU che ci aiuterà a scrivere programmi per computer in modo efficiente.
Un computer è una macchina alimentata principalmente da elettricità, ma la sua flessibilità e programmabilità hanno contribuito a raggiungere la semplicità di uno strumento.
CPU è il cuore e / o il cervello di un computer. Esegue le istruzioni fornite loro. Il suo compito principale è quello di eseguire operazioni aritmetiche e logiche e orchestrare le istruzioni insieme. Prima di immergerci nelle parti principali iniziamo osservando quali sono i componenti principali di una CPU e quali sono i loro ruoli:
- Due componenti principali di una CPU (processore)
- Unità di controllo — CU
- Unità aritmetica e logica-ALU
- Storage — Registers and Memory
- Registri
- Memoria (RAM)
- Quali sono le istruzioni
- CPU clock
- Come viene eseguita un’istruzione
- PASSO 1 — LOAD_A 8:
- PASSO 2 — LOAD_B 2
- PASSO 3 — AGGIUNGI B A
- STEP 4 — STORE_A 23
- BUS
- Cache
- Instruction pipelining
- Computer multicore
- Prestazioni
Due componenti principali di una CPU (processore)
- Unità di controllo — CU
- Unità aritmetica e logica — ALU
Unità di controllo — CU
Unità di controllo CU è la parte della CPU che aiuta a orchestrare l’esecuzione delle istruzioni. Dice cosa fare. Secondo le istruzioni, aiuta ad attivare i fili che collegano la CPU a diverse altre parti del computer, inclusa l’ALU. L’unità di controllo è il primo componente della CPU a ricevere le istruzioni per l’elaborazione.
Esistono due tipi di unità di controllo:
- unità di controllo cablate.
- unità di controllo micro programmabili (microprogrammate).
Le unità di controllo cablate sono l’hardware e richiedono il cambiamento dell’hardware per aggiungere modificare il funzionamento, mentre l’unità di controllo micro-programmabile può essere programmata per modificarne il comportamento. Il CU cablato è più veloce nelle istruzioni di elaborazione mentre il micro-programmabile è più flessibile.
Unità aritmetica e logica-ALU
Unità aritmetica e logica ALU come suggerisce il nome fa tutti i calcoli aritmetici e logici. ALU esegue operazioni come addizione, sottrazione. ALU è costituito da circuiti logici o porte logiche che eseguono queste operazioni.
La maggior parte delle porte logiche prendono in due ingressi e producono una uscita
Di seguito è riportato un esempio di un circuito mezzo sommatore che prende in due ingressi e uscite il risultato. Qui A e B sono l’input, S è l’output e C è il carry.
Storage — Registers and Memory
Il compito principale della CPU è quello di eseguire le istruzioni fornite ad esso. Per elaborare queste istruzioni la maggior parte del tempo, ha bisogno di dati. Alcuni dati sono dati intermedi, alcuni sono input e altri sono l’output. Questi dati insieme alle istruzioni sono memorizzati nel seguente archivio:
Registri
Un registro è un piccolo insieme di luoghi in cui i dati possono essere memorizzati. Un registro è una combinazione di fermi. I fermi noti anche come infradito sono combinazioni di porte logiche che memorizzano 1 bit di informazioni.
Un fermo ha due filo di ingresso, scrivere e filo di ingresso e un filo di uscita. Possiamo abilitare il filo di scrittura per apportare modifiche ai dati memorizzati. Quando il filo di scrittura è disabilitato l’uscita rimane sempre la stessa.
La CPU ha registri per memorizzare i dati di output. L’invio alla memoria principale (RAM) sarebbe lento in quanto sono i dati intermedi. Questi dati vengono inviati ad altri registri collegati da un BUS. Un registro può memorizzare istruzioni, dati di output, indirizzo di archiviazione o qualsiasi tipo di dati.
Memoria (RAM)
La ram è una raccolta di registri disposti e compatti insieme in modo ottimizzato in modo da poter memorizzare un numero maggiore di dati. La RAM (Random Access Memory) è volatile e i suoi dati si perdono quando spegniamo l’alimentazione. Poiché la RAM è una raccolta di registri per leggere/scrivere dati, una RAM prende l’input dell’indirizzo 8bit, l’input dei dati per i dati effettivi da memorizzare e infine leggere e scrivere enabler che funziona come è per i fermi.
Quali sono le istruzioni
L’istruzione è il calcolo del livello granulare che un computer può eseguire. Esistono vari tipi di istruzioni che una CPU può elaborare.
Le istruzioni includono:
- Aritmetica come aggiungere e sottrarre
- istruzioni Logiche and, or e not
- Dati istruzioni di come muoversi, di ingresso, di uscita, di carico e store
- Controllo del Flusso di istruzioni come goto, se … vai chiamata e ritorno
- Notifica della CPU che il programma ha finito di Arresto
sono fornite le Istruzioni di un computer che utilizza linguaggio assembly o generato da un compilatore o vengono interpretate in alcuni linguaggi di alto livello.
Queste istruzioni sono cablate all’interno della CPU. ALU contiene aritmetica e logica mentre il flusso di controllo è gestito da CU.
In un ciclo di clock i computer possono eseguire un’istruzione, ma i computer moderni possono eseguirne più di una.
Un gruppo di istruzioni che un computer può eseguire è chiamato set di istruzioni.
CPU clock
Ciclo di clock
La velocità di un computer è determinata dal suo ciclo di clock. È il numero di periodi di clock al secondo su cui lavora un computer. I cicli di clock singoli sono molto piccoli come intorno 250 * 10 *-12 sec. Più alto è il ciclo di clock più veloce è il processore.
Un ciclo di clock della CPU viene misurato in GHz(Gigahertz). 1GHz è uguale a 10 Hz Hz (hertz). Un hertz significa un secondo. Quindi 1Gigahertz significa 10 cycles cicli al secondo.
Più veloce è il ciclo di clock, più istruzioni la CPU può eseguire. Clock cycle = 1 / clock rate CPU Time = numero di clock cycle / clock rate
Questo significa migliorare il tempo della CPU possiamo aumentare la frequenza di clock o diminuire il numero di cicli di clock ottimizzando le istruzioni che forniamo alla CPU. Alcuni processori offrono la possibilità di aumentare il ciclo di clock, ma poiché si tratta di cambiamenti fisici potrebbero esserci surriscaldamento e persino fumi/incendi.
Come viene eseguita un’istruzione
Le istruzioni sono memorizzate sulla RAM in ordine sequenziale. Per un’ipotetica CPU, l’istruzione consiste in codice operativo (codice operativo) e memoria o indirizzo di registro.
Ci sono due registri all’interno di un registro delle istruzioni dell’unità di controllo(IR) che carica il codice OP dell’istruzione e il registro degli indirizzi delle istruzioni che carica l’indirizzo dell’istruzione attualmente in esecuzione. Ci sono altri registri all’interno di una CPU che memorizza il valore memorizzato nell’indirizzo degli ultimi 4 bit di un’istruzione.
Prendiamo un esempio di un insieme di istruzioni che aggiunge due numeri. Di seguito sono riportate le istruzioni insieme alla loro descrizione. La CPU funziona eseguendo le seguenti istruzioni:
PASSO 1 — LOAD_A 8:
L’istruzione viene salvata nella RAM inizialmente come diciamo <>. Il primo bit 4 è il codice operativo. Questo determina l’istruzione. Questa istruzione viene recuperata nell’IR dell’unità di controllo. L’istruzione è decodificata per essere load_A, il che significa che deve caricare i dati nell’indirizzo 1000 che è l’ultimo bit 4 dell’istruzione per registrare A.
PASSO 2 — LOAD_B 2
Simile a sopra questo carica i dati nell’indirizzo di memoria 2 (0010) al registro della CPU B.
PASSO 3 — AGGIUNGI B A
Ora l’istruzione successiva è di aggiungere questi due numeri. Qui il CU dice ad ALU di eseguire l’operazione di aggiunta e salvare il risultato per registrare A.
STEP 4 — STORE_A 23
Questo è un insieme molto semplice di istruzioni che aiuta ad aggiungere due numeri.
Abbiamo aggiunto con successo due numeri!
BUS
Tutti i dati tra CPU, registro, memoria e IO devise vengono trasferiti tramite bus. Per caricare i dati in memoria che ha appena aggiunto, la CPU mette l’indirizzo di memoria su address-bus e il risultato della somma sul bus dati e abilita il segnale giusto nel bus di controllo. In questo modo, i dati vengono caricati in memoria con l’aiuto del bus.
Cache
La CPU ha anche un meccanismo per preconfezionare l’istruzione nella cache. Come sappiamo ci sono milioni di istruzioni che un processore può completare in un secondo. Ciò significa che ci sarà più tempo dedicato a recuperare le istruzioni dalla RAM piuttosto che eseguirle. Quindi la cache della CPU prefetches alcune delle istruzioni e anche i dati in modo che l’esecuzione diventi veloce.
Se i dati nella cache e nella memoria operativa sono diversi, i dati vengono contrassegnati come bit sporco.
Instruction pipelining
La CPU moderna utilizza il pipelining delle istruzioni per la parallelizzazione nell’esecuzione delle istruzioni. Recupera, decodifica, Esegui. Quando un’istruzione è in fase di decodifica, la CPU può elaborare un’altra istruzione per la fase di recupero.
Questo ha un problema quando un’istruzione dipende da un’altra. Quindi i processori eseguono l’istruzione che non dipende e in un ordine diverso.
Computer multicore
È fondamentalmente la CPU diversa ma ha alcune risorse condivise come la cache.
Prestazioni
Le prestazioni della CPU sono determinate dal tempo di esecuzione. Performance = 1 / tempo di esecuzione
diciamo che ci vogliono 20 ms per un programma da eseguire. Le prestazioni della CPU sono 1/20 = 0.05msRelative performance = tempo di esecuzione 1 / tempo di esecuzione 2
Il fattore che viene preso in considerazione per le prestazioni della CPU è il tempo di esecuzione delle istruzioni e la velocità di clock della CPU. Quindi, per aumentare le prestazioni di un programma abbiamo bisogno di aumentare la velocità di clock o diminuire il numero di istruzioni in un programma. La velocità del processore è limitata e computer moderni con multi-core in grado di supportare milioni di istruzioni al secondo. Ma se il programma che abbiamo scritto ha un sacco di istruzioni questo diminuirà le prestazioni complessive.
La notazione Big O determina con l’input dato su come le prestazioni saranno influenzate.
C’è un sacco di ottimizzazioni fatte nella CPU per renderlo più veloce ed eseguire il più possibile. Durante la scrittura di qualsiasi programma dobbiamo considerare come ridurre il numero di istruzioni che forniamo alla CPU aumenterà le prestazioni del programma per computer.
Interessato all’ottimizzazione dei database? Scopri qui: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/