Come funziona una CPU?
Una CPU funziona eseguendo istruzioni lette dalla memoria: queste istruzioni indicano alla CPU quali operazioni devono essere eseguite su particolari elementi di dati memorizzati nella memoria o nei registri. Quando un'istruzione viene recuperata dalla memoria, viene inviata all'unità di controllo dove viene decodificata e vengono determinati gli indirizzi/gli elementi di dati necessari; queste informazioni vengono poi passate all'ALU dove vengono eseguite le operazioni in base a quanto specificato nell'istruzione. Al termine delle operazioni, i valori risultanti vengono memorizzati, se necessario, prima di recuperare un'altra istruzione e ripetere il processo fino all'esecuzione di tutte le istruzioni del programma.
Che cos'è una CPU?
L'unità di elaborazione centrale (CPU) è il cervello di un sistema informatico: è essenzialmente ciò che dice al computer cosa fare e come farlo. Una CPU è composta da circuiti che consistono in tre componenti principali: un'unità di controllo, un'unità aritmetica/logica (ALU) e un set di registri. L'unità di controllo recupera le istruzioni dalla memoria, le decodifica, determina l'indirizzo dei dati memorizzati (se necessario) e quindi passa le informazioni sui dati e sulle istruzioni all'ALU per l'elaborazione. L'ALU esegue i calcoli o la logica richiesta da ciascuna istruzione, memorizza i risultati intermedi nei registri, se necessario, e quindi rimanda il risultato alla memoria, dove può essere consultato da altri programmi o scritto su disco. I registri sono utilizzati per conservare i dati a breve termine mentre vengono elaborati dalla CPU.
Cosa sono i core?
Un core è un'istanza di un'unità di esecuzione all'interno di un processore multicore. Ogni core ha una propria cache privata, che gli consente di svolgere compiti indipendenti senza dover accedere spesso alla memoria principale; tuttavia, più core possono condividere risorse come la cache L2. I core multipli consentono un maggiore parallelismo nell'esecuzione delle istruzioni, il che significa che è possibile eseguire più istruzioni simultaneamente e quindi svolgere più lavoro in meno tempo rispetto a un processore a core singolo. Questo rende i processori multicore ideali per le attività di calcolo intensive come il video editing o il rendering 3D.
Cosa sono le filettature?
I thread sono sequenze di esecuzione che possono essere eseguite simultaneamente all'interno di un singolo processo o applicazione su un singolo core del processore. I thread consentono alle applicazioni/programmi di sembrare più veloci di quanto non lo siano in realtà, perché sono in grado di utilizzare più core contemporaneamente: con più thread in esecuzione contemporaneamente su core diversi, è possibile svolgere più lavoro senza dover aspettare che un thread finisca l'esecuzione prima che un altro thread possa ricominciare l'esecuzione su un altro core. Questo rende le applicazioni multi-thread molto più efficienti delle loro controparti a thread singolo, poiché non è necessario passare da un thread all'altro quando si eseguono più processi contemporaneamente su core separati, mentre si ha un solo core con molti thread in coda per l'elaborazione uno dopo l'altro in modo sequenziale, come avviene con un'applicazione a thread singolo.
Che cos'è l'hyper-threading?
L'Hyper-Threading (HT) è una tecnologia proprietaria di Intel che consente di utilizzare più processori logici all'interno di ciascun core fisico del processore, permettendo in sostanza di eseguire due flussi di istruzioni simultanei per ogni core fisico (in pratica quattro processori "virtuali" invece di due). L'introduzione dell'HT nelle CPU ha permesso alle CPU Intel di migliorare le prestazioni multitasking grazie all'aumento delle capacità di elaborazione per ciclo di clock, che consente di gestire carichi di lavoro elevati in modo più rapido rispetto alle generazioni precedenti, limitate dalla sola velocità di clock (che aveva solo incrementi limitati). Inoltre, in alcuni casi l'HT contribuisce ad aumentare il throughput e l'IPC grazie a una migliore efficienza di schedulazione quando si ha a che fare con un numero maggiore di thread rispetto a quando l'HT è disattivato in quegli stessi scenari.
Che cos'è l'architettura RISC rispetto a quella CISC?
RISC è l'acronimo di Reduced Instruction Set Computer (computer a set di istruzioni ridotte) e si riferisce tipicamente ad architetture che utilizzano un numero di istruzioni complesse significativamente inferiore rispetto alle architetture CISC (Complex Instruction Set Computers). Le architetture CISC consistono tipicamente in insiemi di istruzioni molto vari, che vanno da semplici operazioni aritmetiche a operazioni complesse che comportano diversi passaggi, come la manipolazione di stringhe, ecc. mentre i RISC tendono a utilizzare istruzioni più semplici ma più veloci (che occupano meno spazio per chip a causa della minore complessità), per cui tendono ad avere caratteristiche di prestazioni più elevate in presenza di velocità di clock simili in entrambe le architetture.
Cosa sono le condutture?
Le pipeline nelle CPU si riferiscono specificamente alle architetture che suddividono le varie fasi di esecuzione di un'istruzione in parti discrete, in modo che i risultati delle fasi precedenti diventino disponibili più rapidamente nelle fasi successive, consentendo così ulteriori ottimizzazioni, come l'invio e l'esecuzione non ordinata: ciò consente ad alcune parti di essere eseguite più velocemente o più lentamente a seconda delle loro esigenze individuali, anziché far sì che ogni fase attenda l'altra, consentendo così di ottenere notevoli guadagni in termini di prestazioni rispetto ai progetti non pipeline, rendendo possibili i moderni processori ad alta velocità e multithreading.
Cosa sono le cache?
Le cache sono piccoli blocchi di RAM relativamente veloci, situati direttamente all'interno o vicino all'unità di elaborazione centrale, che svolgono due funzioni: in primo luogo, tolgono pressione alle letture e alle scritture della memoria principale, poiché le cache funzionano con una latenza inferiore, in secondo luogo accelerano la velocità.
Che cos'è una linea di cache?
Una linea di cache è il più piccolo blocco di dati che può essere trasferito dalla memoria principale alla cache della CPU. Una linea di cache consiste in genere di 64 byte in un processore con istruzioni a 4 byte e di 128 byte per le istruzioni a 8 byte. Ogni volta che la CPU richiede dati dalla memoria, recupera l'intera riga anziché un solo dato o istruzione; ciò contribuisce a ridurre la latenza assicurando che tutti i dati correlati siano presenti nella cache della CPU se necessari per operazioni future.
Che cos'è il multiprocessing?
Multiprocessing è un termine generico usato per descrivere più CPU che lavorano insieme come parte di un singolo sistema informatico o distribuite su più sistemi/dispositivi. Nella maggior parte dei computer/server/reti moderni la multielaborazione può assumere diverse forme, tra cui la multielaborazione simmetrica (SMP), in cui due o più CPU condividono l'accesso alla RAM e ad altre risorse; la multielaborazione asimmetrica (AMP), in cui uno o più processori agiscono come master e delegano i compiti ai processori subordinati; e l'elaborazione massicciamente parallela (MPP), in cui più processori cooperano per eseguire rapidamente compiti di calcolo complessi su grandi quantità di dati.
Che cos'è l'architettura superscalare?
Le architetture superscalari si riferiscono a CPU ad alte prestazioni in grado di eseguire più istruzioni contemporaneamente: ciò consente di aumentare le prestazioni consentendo l'esecuzione simultanea di più istruzioni anziché in sequenza come sarebbe avvenuto nelle generazioni precedenti, riducendo così la latenza e aumentando il throughput grazie all'utilizzo di unità di esecuzione inattive quando necessario. In questo modo, le architetture superscalari utilizzano in modo più efficiente le risorse disponibili del processore, garantendo velocità di elaborazione più elevate rispetto ai predecessori con clock più elevato.
Cosa sono i microprocessori?
Un microprocessore è essenzialmente una versione ridotta di un processore di dimensioni reali, progettato per dispositivi di dimensioni ridotte come sistemi embedded, PDA, telefoni cellulari, ecc. dove il consumo di energia e le dimensioni fisiche sono due fattori importanti. I microprocessori di solito utilizzano architetture più semplici rispetto alle loro controparti più grandi, per ridurre i costi e la complessità, pur offrendo prestazioni comparabili per lo scopo per cui sono stati progettati.
Come funziona la virtualizzazione?
La tecnologia di virtualizzazione consente di suddividere le risorse hardware di un sistema informatico (come i core della CPU, la memoria, ecc.) in diverse macchine "virtuali", ognuna delle quali esegue il proprio sistema operativo in modo indipendente dalle altre macchine virtuali. In questo modo, più utenti/applicazioni all'interno di un'organizzazione o di una famiglia possono utilizzare le risorse di una macchina fisica senza influenzarsi reciprocamente, poiché ogni macchina virtuale opera in modo completamente separato da tutte le altre macchine virtuali in esecuzione sulla stessa macchina, con il proprio sottoinsieme dedicato di risorse hardware disponibili. Ciò rende la virtualizzazione molto utile per risparmiare spazio ed energia, consentendo inoltre un utilizzo più efficiente dell'hardware esistente grazie alla riduzione delle duplicazioni tra macchine/dispositivi.