Architetture dei processori/Definizione

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 operazioni legate alla visualizzazione delle informazioni in un computer viene chiamato GPU o VPU.

L'Intel 4004 il primo processore prodotto

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, il processore comunica con la memoria e con i dispositivi di input/output tramite tre canali, detti bus.

L'architettura di von Neumann risultava inefficiente nella gestione di più flussi di dati, poiché le istruzioni e i dati erano trasferiti sullo stesso bus. 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 Neumann è 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.