Modello di Von Neumann


Schema dell'architettura di von Neumann


Lo schema si basa su cinque componenti fondamentali:

  1. CPU (o unità di lavoro) che si divide a sua volta in
  2. Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory), il cui compito e' contenere sia i dati elaborati, sia le istruzioni (=programma) da eseguire
  3. Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati
  4. Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore
  5. Bus, un canale che collega tutti i componenti fra loro. Questo a sua volta si divide in tre parti:

All'interno dell'ALU è presente un registro detto accumulatore, che fa da buffer tra memoria e ALU grazie a una speciale istruzione che carica una parola dalla memoria all'accumulatore e viceversa.

È importante sottolineare che tale architettura, a differenza di altre, si distingue per la caratteristica di immagazzinare all'interno dell'unità di memoria, sia i dati dei programmi in esecuzione che il codice di questi ultimi.

Bisogna comunque precisare che questa è una schematizzazione molto sintetica, sebbene molto potente: basti pensare che i moderni computer di uso comune sono progettati secondo l'architettura Von Neumann.

Ciclo del processore

Tipicamente la CPU è l'Interprete del linguaggio macchina. Il suo funzionamento si basa sul seguente ciclo, che si ripete ininterrottamente dall'accensione allo spegnimento:

Set d'istruzioni macchina

Le istruzioni di una CPU (instruction set) sono semplicemente dei numeri, detti opcode o codici operativi: in base al loro valore l'unità di controllo intraprende delle azioni predefinite, come per esempio leggere la successiva locazione di memoria per caricare un dato, oppure attivare la ALU per eseguire un calcolo, oppure scrivere il contenuto di un registro in una certa locazione di memoria o in un altro registro, oppure una combinazione di queste.

Spostamento dati MOV

Operazioni aritmetiche ADD, SUB, MUL, DIV

Operazioni di confronto CMP

Salto condizionato e incondizionato JMP

Avanti