Architetture dei processori/Definizione
Wikibooks, manuali e libri di testo liberi.
Un processore è un singolo circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione; il microprocessore principale di un computer viene chiamato processore o CPU; il microprocessore che si occupa delle operazione legate alla visualizzazione delle informazioni in un computer viene chiamato GPU o VPU.
I processori sono circuiti contenenti da migliaia a centinaia di milioni di transistor ed altri componenti elettronici, ottenuti sfruttando le caratteristiche di semiconduttività del silicio e la sua relativa facilità di essere convertito in semiconduttore tramite drogaggio. Questi transistor conservano informazioni sotto forma di tensione elettrica, variandone il livello a seconda della logica usata nel funzionamento del circuito.
All'inizio i processori venivano progettati seguendo la classica architettura di von Neumann. Secondo questa architettura la memoria del computer era vista come un nastro infinito e il processore era una testina che leggeva sequenzialmente i dati sul nastro, li elaborava e si spostava sul nastro di conseguenza.
L'architettura di von Neumann risultava inefficiente nella gestione di più flussi di dati essendo il flusso delle operazioni e dei dati mischiati. Per superarne i limiti venne sviluppata l'Architettura Harvard. Questa architettura prevede che il flusso dati e il flusso delle istruzioni viaggino su due canali separati all'interno del processore in modo da non disturbarsi a vicenda. Praticamente tutti i moderni processori sono basati su questa architettura dato che la separazione dei dati e delle istruzioni permette agli algoritmi che gestiscono le cache dei processori di funzionare al meglio. L'ultimo processore ad elevate prestazioni basato su architettura di von Newmann è stato l'Intel 80486, mentre gli altri concorrenti avevano abbandonato questa architettura già da alcune generazioni. Intel proseguì a lungo con questa architettura per via della difficoltà di ottenere processori basati su architettura Harvard compatibili a livello binario con il software scritto per l'architettura x86.