È che molto spesso ci sono dei furbacchioni che tendono a fare questo tipo di domande in vari forum per evitare di fare il proprio dovere
Pare che tu non sia fra questi.
a) 16 * 1024 / 128 non è uguale a 128?
Presumo che l'indirizzo fisico verrebbe interpretato come segue, nel metodo diretto, posto che si usi (come di consueto) la funzione modulo per determinare il blocco cache corrispondente:
| TAG | BC | DISPL |
con:
TAG = discriminante, per verificare che il blocco in cache sia effettivamente quello richiesto, con ampiezza 18 bit.
BC = blocco cache (ciascun blocco con ampiezza 128 byte) di ampiezza 7 bit
DISPL = offset all'interno del blocco, di ampiezza 7 bit
è possibile ricavare i vari campi mediante semplici operazioni bit a bit.
b e c) non so come hai studiato i metodi nel tuo corso, di fatto i due procedimenti sono simili, ma presumo che la domanda richiedesse di addentrarsi nella differenza di interpretazione dei vari campi in questi metodi. Il metodo diretto è diverso, sia come prestazioni, sia come interpretazione dei campi, dai metodi associativi.