Esame di Sistemi di Elaborazione 3/11/2005

  1. Si scriva un programma in linguaggio assembler che riceva in input 2 numeri N1 e N2. Ne calcoli la differenza positiva N (se N1>N2 calcolerą N=N1-N2, altrimenti N=N2-N1). Quindi stampi N volte la coppia di numeri N1 ed N2 (se N=3, stamperą N1-N2-N1-N2-N1-N2). Si mostri quindi 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 10 e 11. Lo studente supponga di avere già in memoria eventuali costanti necessarie al programma e di avere a disposizione le seguenti istruzioni:
    Arithmetic1xxADD
    2xxSUB
    Data Movement3xxSTORE
    5xxLOAD
    BR6xxJUMP
    BRZ7xxBRANCH ON 0
    BRP8xxBRANCH ON +
    Input/Output901INPUT
    902OUTPUT
    Machine Control000HALT

  2. Si descrivabo in microcodice le istruzioni JUMP, BRANCH ON 0, BRANCH ON +. Si discutano quindi le problematiche relative alla esecuzione in pipeline delle stesse.

  3. Si descrivano alcune metodologie per velocizzare l'accesso in memoria.

  4. Si descriva il funzionamento della gestione delle interruzioni. Fornire quando necessario esempi, disegni, etc.

  5. Si descrivano differenze e funzionamento di dischi magnetici ed ottici.

  6. Si descrivano differenze e funzionamento di Ethernet (CSMA/CD) e Token Ring.