informatica:ae:pcmem17
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
informatica:ae:pcmem17 [08/11/2017 alle 11:26 (7 anni fa)] – creata Marco Danelutto | informatica:ae:pcmem17 [08/11/2017 alle 12:06 (7 anni fa)] (versione attuale) – Marco Danelutto | ||
---|---|---|---|
Linea 13: | Linea 13: | ||
La memoria M può essere implementata utilizzando una ROM, ovvero una memoria in cui le parole sono scritte in modo immutabile all' | La memoria M può essere implementata utilizzando una ROM, ovvero una memoria in cui le parole sono scritte in modo immutabile all' | ||
+ | === Esempio === | ||
+ | Una unità U riceve da U1 un valore e lo cerca in una memoria interna M. Se lo trova, ne restituisce l' | ||
+ | Il microcodice è il seguente | ||
+ | < | ||
+ | 0. (RDY=0) nop, 0 | ||
+ | (=1) 1->I, zero(IN-M[0])-> | ||
+ | 1. (I0, F = 00) I+1->I, zero(IN - M[I])-> | ||
+ | (=10) -1 -> OUT, reset RDY, set ACK, 0 | ||
+ | (=-1) I-1 -> OUT, reset RDY, set ACK, 0 | ||
+ | </ | ||
+ | |||
+ | Serve un commutatore (e quindi un segnale α) per scrivere in I (1 o I+1) per scrivere in OUT (I-1 o (-1)) e un commutatore per decidere se indirizzare la memoria M con la costante 0 o con I. | ||
+ | |||
+ | Servono β per decidere se scrivere I, F, OUT, RDY (reset) e ACK (set). | ||
+ | |||
+ | Ci sono due possibili stati interni della PC. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Quindi (rispetto alla terminologia utilizzata per la spiegazione qui sopra): | ||
+ | * n = 1 | ||
+ | * vc = 3 | ||
+ | * m = 8 | ||
+ | * M è una memoria da 2 alla (1+3) = 16 posizioni, ognuna di 8 bit (nota che ci sono più posizioni che frasi, perchè serve scrivere qualcosa anche negli indirizzi che non contano: per la 0. conta l' | ||
+ | |||
+ | La configurazione della memoria scritta in fase di creazione della memoria, assumendo che l' | ||
+ | |||
+ | < | ||
+ | // ind s α β | ||
+ | M[0000] = 0 000 00000 // quando lo stato interno è 0 e RDY è 0, tutti i β sono a 0 | ||
+ | M[0001] = 0 000 00000 // (e per comodità anche gli α ) | ||
+ | M[0010] = 0 000 00000 | ||
+ | M[0011] = 0 000 00000 | ||
+ | |||
+ | M[0100] = 1 000 11000 // quando lo stato interno è 0 e RDY è 1 ... | ||
+ | M[0101] = 1 000 11000 | ||
+ | M[0110] = 1 000 11000 | ||
+ | M[0111] = 1 000 11000 | ||
+ | |||
+ | M[1000] = 1 101 11000 // prima frase della 1. indipendendemente da RDY | ||
+ | M[1100] = 1 101 11000 | ||
+ | |||
+ | M[1010] = 0 000 00111 // seconda frase della 1. indipendentemente da RDY | ||
+ | M[1110] = 0 000 00111 | ||
+ | |||
+ | M[1001] = 0 010 00111 // terza frase della 1. indipendentemente da RDY | ||
+ | M[1101] = 0 010 00111 | ||
+ | |||
+ | M[1011] = 0 010 00111 // quarta frase della 1. indipendentemente da RDY | ||
+ | M[1111] = 0 010 00111 | ||
+ | </ |
informatica/ae/pcmem17.1510140411.txt.gz · Ultima modifica: 08/11/2017 alle 11:26 (7 anni fa) da Marco Danelutto