Esame di Sistemi di Elaborazione 04/11/2004

Le risposte alle domande devono essere esaustive!

  1. (punti 6) Si scriva un programma in linguaggio assembler che riceva in input un numero N maggiore di 0 (se il valore ricevuto in input non e' maggiore di 0 si dovra' ripetere la fase di input fino ad ottenerlo. Si calcoli quindi il valore di M=10*N (ovvero N sommato 10 volte), e si restituisca in output N ed M. Si illustri anche il contenuto dei registri IR, MAR, MDR, PC e A (accumulatore ALU) alla fine della esecuzione del programma quando siano dati in input i valori N=4.
    Lo studente supponga di avere gią in memoria eventuali costanti necessarie al programma e di avere a disposizione le seguenti istruzioni:

    Arithmetic 1xx ADD
    2xx SUB
    Data Movement 3xx STORE
    5xx LOAD
    BR 6xx JUMP
    BRZ 7xx BRANC ON 0
    BRP 8xx BRANCH ON +
    Input/Output 901 INPUT
    902 OUTPUT
    Machine Control 000 HALT

  2. (punti 4) Si descrivano dettagliatamente i passi del ciclo di Fetch-Execute per le istruzioni


  3. (punti 5) Si descriva dettagliatamente come avviene la lettura e la scrittura di dati e istruzioni dalla memoria (uso dei registri, delle linee di attivazione, della linea R/W). Se necessario usare anche dei disegni/schemi.

  4. (punti 5) Si descriva dettagliatamente il funzionamento della Memoria Virtuale tramite la tecnica del "Paging".

  5. (punti 5) Si descriva dettagliatamente il funzionamento della memoria cache e le motivazioni all'uso della cache stessa.

  6. (punti 7) Si descrivano dettagliatamente il funzionamento degli Interrupt (cosa sono, perche' sono importanti, cosa succede in caso di richieste di interrupt da pił devices). Se necessario usare anche dei disegni/schemi.