Macchina di Von Neumann Flashcards
Da quali parti è composta la macchina di Von Neumann?
CPU (CU e ALU), Memoria principale, dispositivi I/O e il bus.
Cosa fa’ la CU?
Scandisce le operazioni elementari per ogni istruzione, riconoscendo e generando i comandi atti all’esecuzione dell’istruzione
Cosa si trova nella CU?
I registri, divisi in speciali e generali, il transcodificatore e un generatore di fase
Quali sono i registri speciali presenti nella CU?
Il PC (Program Counter), l’SR (lo Status Register) e l’SP (lo Stack Pointer)
Cosa fa’ il PC (Program Counter)
E’ un registro che viene incrementato ad ogni clock che contiene l’indirizzo in memoria dell’istruzione da eseguire
Cosa fa’ l’SR (Status Register)?
Registro speciale contenente varie informazioni del sistema, come i condition codes della ALU (overflow, zero, carry ecc…)
Cosa fa’ l’SP (Stack Pointer)?
Registro che contiene l’indirizzo della cima della pila, usata per mantenre i dati durante il passaggio di parametri tra funzioni
A che serve il generatore di fase? Quali sono le fasi che controlla?
Scandisce le operazioni elementari eseguite dalla CU. Le fasi sono: FETCH (caricamento della parola nel PC);
DECODE (decodifica del tipo di istruzione con il decodificatore);
EXECUTE (esecuzione dei comandi decodificati. Questa fase può essere di durate differenti in base al tipo di istruzione);
MOVE (movimentazione dei dati in memoria).
Come avviene generalmente un ciclo di clock?
Viene prelevata l’istruzione in memoria a partite dall’indirizzo nel PC;
Viene incrementato il PC;
Viene determinato il tipo di istruzione prelevata;
Vengono reperiti gli operandi;
Viene eseguita l’istruzione;
Il valore finale viene rimesso in memoria.
Cosa fa’ il transcodificatore?
Il transcodificatore è composto dal decodificatore e il codificatore. Il primo prende l’istruzione dal PC e ne riconosce il tipo e dove andare a prendere i valori in mem, poi passa tutto al codificatore che attiva le unità necessarie per eseguire l’istruzione
Descrivi le fasi di questa istruzione:
ADD 0x300, 0x100, 0x200
❖ In fase di fetch si preleva l’istruzione dalla
Memoria Centrale e si incrementa il PC;
❖ In fase di decode, il decodificatore riconosce
l’addizione. Il codificatore, a sua volta, invia dei
comandi (dei segnali elettrici) lungo le linee di
ingresso della ALU che specificano il tipo di
operazione che questa deve offrire;
❖ In fase di load, contestualmente il codificatore lancia dei segnali per prendere gli operandi in memoria alla locazione 0x100 e poi 0x200;
❖ In fase di execute, una volta reperiti gli
operandi si deve generare la connessione con la ALU disconnettendo la memoria;
❖ La ALU esegue l’operazione;
❖ In fase di movement, si riattiva la linea con la Memoria Centrale per trasferire il risultato nella locazione 0x300.
A che servono i registri ad uso generale?
Servono per mantere temporaneamente dei dati senza depositarli e riprelevarli dalla memoria principale. Consentono di risparmiare tempo e aumentare l’efficienza della CU.
Cosa sono gli accumulatori?
Sono registri speciali impliciti presenti nella ALU dove si trovano gli operandi su cui effettuare i calcoli. Sono impliciti perché svolgono solo quel ruolo e non è necessario esplicitarloe non possono essere modificati dal programmatore
Cosa sono i condition codes della ALU?
Sono linee di uscita che riportano informazioni sull’ultima operazione eseguita
Cos’è la ALU?
E’ una componente della CPU che si occupa di eseguire le operazioni logico-aritmetiche dell’elaboratore.
Cos’è il registro degli errori della ALU?
Un registro speciale dove sono riportate situazioni irrisolvibili (radice negativa o divisione per 0)