Macchina di Von Neumann Flashcards
(41 cards)
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)
Cos’è il coprocessore matematico?
Una ALU particolare che si occupa di effettuare operazioni in virgola mobile. Successivamente è stata inclusa nella ALU nativa
Quanti tipi di memoria esistono?
RAM (Random Access Memory), memorie che perdono l’info in mancanza di corrente;
ROM (Read Only Memory), memorie che mantengono l’informazione e che possono essere solo lette;
CAM (Content Addressable Memory)
Quali tipi di RAM esistono?
SRAM (Static RAM), memorie statiche dove l’info è memorizzata come in un latch D;
DRAM (Dynamic RAM), memorie dinamiche dove l’info rimane in un condensatore per circa 2ms e poi deve essere refreshata;
SDRAM (Synchronous DRAM), una evoluzione della DRAM che consente grazie ad un registro di uscita di mantenere il vecchio dato mentre se ne sta memorizzando uno nuovo.
DDR (Double Date Rate), evoluzione della SDRAM che consente di operare a doppia frequenza potendo essere pilotata sia nei fronti di salita che in quelli di discesa
Quali tipi di ROM esistono?
PROM (Programmable ROM), memorie su cui poter scrivere una sola volta;
EPROM (Erasable Programmable ROM), memorie su cui si può scrivere più volte sfruttando appositivi sistemi (a raggi ultravioletti);
EEPROM (Electrically Erasable PROM), memorie dove la riscrittura o cancellazione dei dati avviene per via elettrica.
Cos’è la memoria centrale?
Una memoria RAM DDR formata da tante celle ciascuna in grado di mantenere una stringa binaria di lunghezza n, che può essere un operando, una istruzione o un indirizzo. A ciascuna locazione si accede allo stesso tempo, e queste locazione sono numerati in sequenza da 0 a 2^m-1, dove m è la dimensione massima della memoria
Come è suddivisa la memoria centrale?
Una parte dal sistema operativo, una dai programmi, una dallo Stack e una per i trasferimenti I/O
Com’è progettata solitamente una memoria centrale?
Solitamente ciascuna cella di memoria è lunga 8 bit, mentre la lunghezza della parola viene decisa in fase di progettazione. Se ad esempio si sceglie una parola di 32 bit, verranno prelevate dalla memoria 4 celle contigue alla volta.
Come possono venire ordinati i dati in memoria centrale?
In Big Endian (si ordinano dal byte più significativo al meno) o al contrario in Little Endian.