Elaboratore: la macchina di von Neuman

I calcolatori moderni hanno in comune fra loro un modello fondamentale di macchina, chiamato modello di Von Neumann.

In informatica l'architettura di von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. Per tale caratteristica l'architettura di von Neumann si contrappone all'architettura Harvard nella quale invece i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti.

Lo schema si basa su quattro componenti fondamentali:

  1. CPU (o unità di lavoro) che si divide a sua volta in
    1. Unità operativa, nella quale uno dei sottosistemi più rilevanti è l'unità aritmetica e logica (o ALU)
    2. Unità di controllo
  2. Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory)
  3. Unità di input tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati e unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore
  4. Bus, un canale che collega tutti i componenti fra loro

All'interno dell'ALU è presente un registro detto accumulatore, che fa da ponte tra input e output 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.

Il modello prevede due fasi di elaborazione: la prima si occupa del caricamento del programma (load time), che viene prelevato dall’unità di ingresso e registrato in memoria; la seconda  è l’esecuzione del programma (run time) ossia il programma viene eseguito per opera dell’unità di controllo che interpreta in sequenza le istruzioni, attiva opportunamente le altre unità.

Bus di sistema

Il bus è costituito da un insieme di linee lungo le  quali viene trasferita l’informazione.Topologicamente, è un collegamento aperto (non limitato ad un estremo), cui si collegano le varie unità funzionali della macchina di Von Neumann

In ogni istante di tempo, il bus collega due unità funzionali: una trasmette dati e l’altra li riceve.

Le possibili interconnessioni sono tra l’unità centrale e la memoria centrale, oppure tra l’unità centrale e l’interfaccia di una periferica Il bus lavora sotto il controllo dell’unità centrale di elaborazione, che sceglie il collegamento da attivare e l’operazione da compiere.

La modalità di funzionamento del bus è master-slave: l’unità di elaborazione funge da dispositivo master, mentre le altre unità funzionali assumono, una per volta, il ruolo di slave.

Il bus è assegnato ad uno specifico collegamento per il tempo necessario a svolgere l’operazione da compiere: più piccolo è questo tempo, più alta è la velocità del bus.

Funzionalmente, le linee del bus possono essere divise in tre categorie, a seconda del tipo di informazione trasportata:

-          dati,

-          indirizzi

-          segnali di controllo

Si identificano pertanto  tre bus:

BUS DATI: trasferisce dati dall’unità master all’unità slave e/o viceversa. Se per esempio lo slave è la memoria centrale, i dati viaggiano da una cella di  memoria al DR (lettura), oppure dal DR ad una cella di memoria (scrittura).

BUS INDIRIZZI: trasferisce indirizzi dall’unità di elaborazione allo slave. Per esempio, se deve essere scelta una locazione di memoria per un’operazione di lettura o scrittura, le informazioni vanno dall’unità centrale (registro AR) alla memoria.

BUS CONTROLLI: trasferisce dal master allo slave il comando (codificato) corrispondente all’operazione da eseguire, e dallo slave al master informazioni relative all’avvenuto espletamento dell’operazione richiesta

I componenti funzionali della CPU sono:

• UNITA’ DI CONTROLLO (CU): è responsabile del prelievo delle istruzioni dalla memoria centrale, della loro decodifica e dell’invio dei segnali di controllo che danno luogo alle operazioni necessarie per l’esecuzione dell’istruzione decodificata.

• OROLOGIO DI SISTEMA (Clock): sincronizza le operazioni rispetto ad una certa frequenza.

• UNITA’ ARITMETICO-LOGICA (ALU): effettua le operazioni aritmetiche e logiche (eventualmente) richieste per l’esecuzione dell’istruzione

La CPU contiene inoltre diversi registri. I principali sono:

• REGISTRO DATI (DR), lungo H bit

• REGISTRO INDIRIZZI (AR), lungo K bit

• REGISTRO ISTRUZIONE CORRENTE (CIR), lungo H bit: contiene in ogni istante l’istruzione in esecuzione

• CONTATORE DI PROGRAMMA (PC), lungo K bit: contiene l’indirizzo della successiva istruzione da eseguire

• REGISTRO INTERRUZIONI (INTR), contiene informazioni sullo stato di funzionamento delle periferiche

• Registri contenenti operandi e risultato delle operazioni aritmetico-logiche (per esempio, A e B)

• Registri di lavoro, contenenti dati ed istruzioni di uso frequente, ovvero risultati intermedi

• REGISTRO DI STATO (SR), contiene indicazioni relative al risultato delle operazioni  effettuate dalla ALU. Tra queste:

–   Bit di carry o riporto (indica la presenza di un riporto)

–   Bit di zero (è 1 se c’è un valore nullo in A),

–   Bit di segno (è il segno del risultato di un’operazione)

–   Bit di overflow (è 1 quando il risultato dell’ultima operazione aritmetica supera il massimo valore rappresentabile, cioè 2H, se H è la lunghezza di A)

 


Ultime modifiche: domenica, 8 marzo 2020, 15:34