Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
FLIP-FLOP SR
- S R Q
- 0 0 MEMORIA
- 1 0 1
- 0 1 0
- 1 1 NO
FLIP-FLOP JK
- J K Q
- 0 0 MEMORIA
- 1 0 1
- 0 1 0
- 1 1 Q̅
FLIP-FLOP D
- D Q
- 0 0
- 1 1
FLIP-FLOP T
- T Q
- 0 Q
- 1 Q̅
se T=1, la frequenza di Q risulta la metà di quella del CLK
CONTATORI ASINCRONI
a ogni impulso di clock il valore di Q0 commuta;
Q1 commuta sul fronte di discesa di Q0 ecc. quindi
la frequenza di Q1 è la metà di quella di Q0.
Si realizza quindi un contatore che incrementa di 1 per
ogni impulso di clock ricevuto.
Il valore massimo è 2n n->numero di flip-flop
CONTATORI SINCRONI
Q0 commuta a ogni impulso di CLK, mentre Q1
a ogni colpo di CLK per cui Q0 = 1, quindi ogni due.
Q3 commuta quando (Q0 ANDQ1)=1.
PROCESSORE
BUS INTERNO
BUS ESTERNO
FETCH:
viene letto il codice dell'istruzione dalla memoria
EXECUTE:
il codice viene decodificato ed eseguito
SEGNALI DI CONTROLLO
LINEE DI INDIRIZZO
LINEE DATI
STACK:
struttura LIFO, modificabile con PUSH e POP
lo stack pointer (SP) punta all'elemento più in alto
lo stack permette di simulare procedure: il ritorno di una
procedura si ottengono i dati nell'ordine opposto a quello in cui sono stati messi
DMA
metodo per trasferire dati senza occupare la CPU
Un DMA controller trasferisce dati da una periferica alla memoria o viceversa fingendo da master del BUS.
- la CPU carica in IOAR l'indirizzo del primo blocco di memoria e in DC il numero di dati (concatenati).
- la periferica richiede al DMA controller il trasferimento.
- il DMAC invia un DMA REQUEST alla CPU.
- quando la CPU lo accoglie, rilascia il bus e risponde con DMA ACK.
- il DMAC inizia a trasferire aggiornando DC e IOAR ad ogni parola.
- in base a come è gestito il trasferimento, possono essere abbelli periodici (si bloccano DMA REQ e quindi DMA ACK e la CPU riprende il controllo del bus).
- quando DC=0, il trasferimento è terminato e invia un interrupt alla CPU.
CACHE
LOCALITÀ DEI RIFERIMENTI
- TEMPORALE: se all'istante t accedo alla cella C, è probabile che ci dovrò riaccedere entro t+D
- SPAZIALE: se all'istante t accedo alla cella di indirizzo i, è probabile che a t+D acceda a i+e
quindi, se t carichiamo il blocco # l-o, l+b, per un certo periodo di tempo è probabile che il programma trovi tutto nella cache.
STRUTTURA
quando la CPU accede alla memoria, la cache:
- interpeta l'indirizzo
- verifica se il blocco corrispondente è in cache
- se sì, lo manda alla CPU HIT
- se no, carica il blocco dalla memoria di cui fa parte MISS
il caricamento del blocco può avvenire sul momento (rallenta l'esecuzione) o dopo aver finito la parola (LOAD THROUGH)
MICROPROGRAMMAZIONE ORIZZONTALE
La microistruzione contiene un bit per ogni segnale di controllo; i segnali sono quindi pilotati direttamente dal valore.
- alcune combinazioni di valori parziali non verificano mai
- la memoria risulta maggiore
CONFIGURAZIONI POSSIBILI
0 0 0 1
0 1 0 0
1 0 0 0
Si usano n bit per 2^n combinazioni, quando n è parziale allora 2 (log24)
MICROPROGRAMMAZIONE VERTICALE
Le microistruzioni sono codificate; i segnali di controllo sono pilotati dai valori decodificati.
Si usano 2 bit per 4 segnali di controllo