Apabila diketahui dalam memori, kedua array tersebut terletak berurutan, sehingga array
B terletak pada alamat memory tepat setelah array A. Serta diketahui elemen A kolom 3
baris 2 terletak pada alamat x, Lengkapilah tabel berikut:
Lakukan simulasi pengisian cache secara berurutan sesuai dengan alamat yang diacu pada soal
berikut ini, dengan menuliskan status (Hit atau Miss) da nisi cache. Apabila kedua line dalam
satu set penuh, lakukan penggantian pada line tertua (not recently used).
Kondisi cache tergantung soal sebelumnya, untuk soal a diasumsikan diawali dengan kondisi
cold cache.
a. Alamat 0x02
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
b. Alamat 0x06
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
c. Alamat 0x11
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
d. Alamat 0x10
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
e. Alamat 0x1B
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
f. Alamat 0x02
Status: ____________
Isi cache (dalam hexadecimal
Line 0 Line 1
Set Tag V B0 B1 Tag V B0 B1
index
0
1
Soal 3
Diberikan kode aasembly sebagai berikut (note: jae: jump if above ord equal)
loop:
pushl %ebp
movl %esp, %ebp
movl 0x8(%ebp), %edx
movl %edx, %eax
addl 0xc(%ebp), %eax
leal 0xffffffff (%eax), %ecx
cmpl %ecx, %edx
jae .L4
L6:
movb (%edx), %al
xorb (%ecx), %al
movb %al, (%edx)
xorb (%ecx), %al
movb %al, (%ecx)
xorb %al, (%edx)
incl %edx
decl %ecx
cmpl %ecx, %edx
jb .L6
.L4:
movl %ebp, %esp
popl %ebp
ret
Soal 4
a. Buatlah layout alokasi memory untuk kedua struktur diatas pada mesin Linux x86 [32bit]
Setelah kode ini dijalankan, tuliskanlah isi variabel newData di bawah ini (pada mesin
Linux x86, menggunakan Little Endian. Perhatikan aturan byte ordering)