Pertama-tama, ini bukan spam tag bahasa, tetapi pertanyaan ini tidak spesifik untuk satu bahasa tertentu dan menurut saya situs pertukaran tumpukan ini adalah yang paling sesuai untuk pertanyaan saya.
Saya sedang mengerjakan cache dan memori, mencoba memahami cara kerjanya. Yang saya tidak mengerti adalah kalimat ini (dicetak tebal, bukan di gambar):
Dalam arsitektur MIPS, karena kata-kata disejajarkan dengan kelipatan empat byte, dua bit paling tidak signifikan akan diabaikan saat memilih kata dalam blok.
Jadi katakanlah saya mempunyai dua alamat ini:
[1........0]10
[1........0]00
^
|
same 30 bits for boths [31-12] for the tag and [11-2] for the index (see figure below)
Seperti yang saya pahami, yang pertama akan menghasilkan LEWATKAN (saya berasumsi bahwa cache awal kosong). Jadi satu slot di cache akan diisi dengan data yang terletak di alamat memori ini.
Sekarang kita ambil yang kedua, karena memiliki 30 bit yang sama maka akan menghasilkan HIT di cache karena kita mengakses slot yang sama (karena 10 bit yang sama) dan 20 bit alamatnya sama dengan 20 bit disimpan di bidang Tag.
Jadi hasilnya, kita akan memiliki data yang terletak di memori [1........0]10
dan bukan [1........0]00
yang salah!
Jadi saya berasumsi ini ada hubungannya dengan kalimat yang saya kutip di atas. Adakah yang bisa menjelaskan mengapa alasan saya salah?
Cache pada gambar :
lw
misalnya dan akan ada multiplexer dengan offset byte sebagai sinyal kontrol ketika saya akan menggunakanlb
untuk mendapatkan byte yang benar? - person user2336315   schedule 15.12.2013