4.2. Sebuah cache set-asosiatif dua arah memiliki garis 16 byte dan ukuran total 8 kbytes.
Memori utama 64-Mbyte beralamat byte. Tampilkan format alamat memori utama.
Jawab :
Ada total 8 kbytes / 16 byte = 512 baris dalam cache. Jadi cache terdiri dari 256 set 2
baris masing-masing. Oleh karena itu 8 bit diperlukan untuk mengidentifikasi nomor
yang ditetapkan. Untuk memori utama 64-Mbyte, alamat 26-bit diperlukan. Memori
utama terdiri dari 64-Mbyte / 16 byte = 222 blok. Oleh karena itu, panjang tag set plus
harus 22 bit, sehingga panjang tag adalah 14 bit dan panjang bidang kata adalah 4 bit.
a. Untuk contoh cache langsung Gambar 4.10: panjang alamat, jumlah unit
beralamat, ukuran blok, jumlah blok di memori utama, jumlah baris dalam
cache, ukuran tag
b. Untuk contoh cache asosiatif pada Gambar 4.12: panjang alamat, jumlah unit
beralamat, ukuran blok, jumlah blok dalam memori utama, jumlah baris dalam
cache, ukuran tag
c. Untuk contoh cache set-asosiatif dua arah pada Gambar 4.15: panjang alamat,
jumlah unit beralamat, ukuran blok, jumlah blok dalam memori utama, jumlah
baris di set, jumlah set, jumlah baris dalam cache, ukuran tag
Jawab :
a. Panjang alamat: 24; jumlah unit beralamat: 224; ukuran blok: 4; jumlah blok di
memori utama: 222; jumlah baris dalam cache: 214; ukuran tag: 8.
b. Panjang alamat: 24; jumlah unit beralamat: 224; ukuran blok: 4; jumlah blok di
memori utama: 222; jumlah baris dalam cache: 4000 hex; ukuran tag: 22.
c. Panjang alamat: 24; jumlah unit beralamat: 224; ukuran blok: 4; jumlah blok di
memori utama: 222; jumlah baris dalam set: 2; jumlah set: 213; jumlah baris
dalam cache: 214; ukuran tag: 9.
4.6. Diberikan spesifikasi berikut untuk memori cache eksternal: empat-cara mengatur
asosiatif; ukuran garis dari dua kata 16-bit; mampu menampung total 4K kata 32-bit
dari memori utama; digunakan dengan prosesor 16-bit yang mengeluarkan alamat 24-
bit. Rancang struktur cache dengan semua informasi terkait dan tunjukkan bagaimana
ia menafsirkan alamat prosesor.
4.8. Pertimbangkan mesin dengan memori utama beralamat byte 216 byte dan ukuran blok
8 byte. Asumsikan bahwa cache yang dipetakan langsung yang terdiri dari 32 baris
digunakan dengan mesin ini.
a. Bagaimana alamat memori 16-bit dibagi menjadi tag, nomor baris, dan nomor
byte?
b. Ke baris apa yang akan byte dengan masing-masing alamat berikut disimpan?
c. Misalkan byte dengan alamat 0001 1010 0001 1010 disimpan dalam cache. Apa
alamat dari byte lain yang disimpan bersama dengan itu?
d. Berapa banyak total byte memori yang dapat disimpan dalam cache?
Jawab :
a. 8 bit paling kiri = tag; 5 bit tengah = nomor baris; 3 bit paling kanan = bilangan
byte
c. Bytes dengan alamat 0001 1010 0001 1000 hingga 0001 1010 0001 1111
disimpan dalam cache
d. 256 byte
e. Karena dua item dengan dua alamat memori yang berbeda dapat disimpan di
tempat yang sama di cache. Tag digunakan untuk membedakannya.
4.10. Sebuah cache set-asosiatif memiliki ukuran blok dari empat kata 16-bit dan satu set
ukuran 2. Cache dapat menampung total 4096 kata. Ukuran memori utama yang dapat
disimpan dalam cache adalah 64K X 32 bit. Rancang struktur cache dan tunjukkan
bagaimana alamat prosesor ditafsirkan.
Jawab :
4.12. Pertimbangkan komputer dengan karakteristik berikut: total 1Mbyte memori utama;
ukuran kata 1 byte; ukuran blok 16 byte; dan ukuran cache 64 Kbytes.
a. Untuk alamat memori utama F0010, 01234, dan CABBE, berikan tag yang
sesuai, alamat cache, dan offset kata untuk cache yang dipetakan langsung.
b. Berikan dua alamat memori utama dengan tag berbeda yang memetakan ke slot
cache yang sama untuk cache yang dipetakan langsung.
c. Untuk alamat memori utama F0010 dan CABBE, berikan tag yang sesuai dan
nilai offset untuk cache penuh-asosiatif.
d. Untuk alamat memori utama F0010 dan CABBE, berikan tag yang sesuai, set
cache, dan nilai offset untuk cache set-asosiatif dua arah.
Jawab :
a. Karena ukuran blok adalah 16 byte dan ukuran kata adalah 1 byte, ini berarti
ada 16 kata per blok. Kami akan membutuhkan 4 bit untuk menunjukkan kata
yang kami inginkan dari blok. Setiap baris / slot cache cocok dengan blok
memori. Itu berarti setiap slot cache berisi 16 byte. Jika cache 64Kbytes
kemudian 64Kbytes / 16 = 4096 slot cache. Untuk mengatasi 4096 slot cache
ini, kita memerlukan 12 bit (212 = 4096). Akibatnya, diberi alamat memori
utama 20 bit (1 MByte):
Tag = 1111 = F
Tag = 0000 = 0
Tag = 1100 = C
b. Kita perlu memilih alamat di mana slotnya sama, tetapi tag (dan secara opsional,
kata offset) berbeda. Berikut dua contoh di mana slotnya adalah 1111 1111 1111
Alamat 1:
Tag = 0000
Alamat = 0FFFF
Alamat 2:
Kata offset = 0001
Tag = 0011
Alamat = 3FFF1
c. Dengan cache penuh asosiatif, cache dibagi menjadi bidang TAG dan
WORDOFFSET. Kami tidak perlu lagi mengidentifikasi slot mana yang
mungkin dipetakan oleh blok memori, karena blok dapat berada di slot mana
pun dan kami akan mencari setiap slot cache secara paralel. Offset kata harus 4
bit untuk menangani setiap kata dalam blok 16-kata. Ini menyisakan 16 bit sisa
untuk tag
F0010
Kata offset = 0h
Tag = F001h
CABBE
Kata offset = Eh
Tag = CABBh
d. Seperti yang dihitung dalam bagian a, kami memiliki 4096 slot cache. Jika kita
menerapkan dua jalur cache asosiatif, maka itu berarti kita menempatkan dua
slot cache ke dalam satu set. Cache kami sekarang memiliki 4096/2 = 2048 set,
di mana setiap set memiliki dua slot. Untuk mengatasi set 2048 ini kita
membutuhkan 11 bit (211 = 2048). Setelah kami mengatasi satu set, kami akan
secara bersamaan mencari kedua slot cache untuk melihat apakah ada tag yang
sesuai dengan target. Alamat 20-bit kami sekarang dipecah sebagai berikut:
4.14. Pertimbangkan lagi Contoh 4.3. Bagaimana jawaban berubah jika memori utama
menggunakan kemampuan transfer blok yang memiliki waktu akses kata pertama 30
ns dan waktu akses 5 ns untuk setiap kata sesudahnya?
Jawab :
4.16. Generalisasi Persamaan (4.2) dan (4.3), dalam Lampiran 4A, ke hierarki memori
tingkat-N.
Jawab :
Menetapkan
Hi = Probabilitas bahwa sebuah kata ada dalam memori saya dan tidak ada memori
tingkat yang lebih tinggi
Bi = Waktu untuk mentransfer blok data dari tingkat memori (i + 1) ke tingkat memori
i
Biarkan cache menjadi level memori 1; memori utama, tingkat memori 2; dan
seterusnya, untuk total level N memori. Kemudian
...
Derivasi Ts lebih rumit. Kami mulai dengan hasil dari teori probabilitas bahwa:
Kita perlu menyadari bahwa jika sebuah kata ada di M1 (cache), itu dibaca segera. Jika
dalam M2 tetapi tidak M1, maka blok data ditransfer dari M2 ke M1 dan kemudian
dibaca.
Demikian:
T2 = B1 + T1
Lebih lanjut
T3 = B2 + T2 = B1 + B2 + T1
Generalisasi:
...
Jadi
...
Tapi ...
Akhirnya ...
4.18. Pertimbangkan cache dari 4 baris 16 byte masing-masing. Memori utama dibagi
menjadi blok masing-masing 16 byte. Yaitu, blok 0 memiliki byte dengan alamat 0
hingga 15, dan seterusnya. Sekarang perhatikan program yang mengakses memori
dalam urutan alamat berikut:
Sekali: 63 hingga 70
b. Misalkan cache diorganisasikan sebagai asosiatif dua arah, dengan dua pasang
masing-masing dua baris. Blok bernomor genap ditetapkan untuk menetapkan
0 dan blok bernomor ganjil ditetapkan untuk menetapkan 1. Hitung rasio klik
untuk cache set-asosiatif dua arah menggunakan skema penggantian yang
paling baru-baru ini digunakan.
Jawab :
Access 32 1 Hit
Access 80 1 Miss Block 5 → Slot 1
Access 32 1 Hit
4.20. a. Pertimbangkan cache L1 dengan waktu akses 1 ns dan rasio hit H 0.95.
Misalkan kita dapat mengubah desain cache (ukuran cache, organisasi cache)
sehingga kita meningkatkan H ke 0,97, tetapi meningkatkan waktu akses ke 1,5
ns. Kondisi apa yang harus dipenuhi untuk perubahan ini untuk menghasilkan
peningkatan kinerja?
Jawab:
...
...
...
b. Karena waktu untuk akses ketika ada cache miss menjadi lebih besar, menjadi
lebih penting untuk meningkatkan rasio klik (hit ratio).
4.22. Komputer memiliki cache, memori utama, dan disk yang digunakan untuk memori
virtual. Jika kata yang direferensikan ada di cache, diperlukan 20 ns untuk
mengaksesnya. Jika dalam memori utama tetapi tidak di cache, 60 ns diperlukan untuk
memuatnya ke cache, dan kemudian referensi dimulai lagi. Jika kata tidak dalam
memori utama, 12 ms diminta untuk mengambil kata dari disk, diikuti oleh 60 ns
untuk menyalinnya ke cache, dan kemudian referensi dimulai lagi.Konversi rasio
cache adalah 0,9 dan memori utama hit rasio 0,6. Berapa waktu rata-rata dalam
nanodetik yang diperlukan untuk mengakses kata yang direferensikan pada sistem ini?
4.24. Pada mikroprosesor Motorola 68020, akses cache membutuhkan dua siklus clock.
Akses data dari memori utama di atas bus ke prosesor membutuhkan tiga siklus jam
dalam kasus penyisipan tanpa menunggu; data dikirim ke prosesor secara paralel
dengan pengiriman ke cache.
a. Hitung panjang efektif dari siklus memori yang diberikan rasio hit 0.9 dan
tingkat clocking 16.67 MHz.
b. Ulangi perhitungan dengan asumsi penyisipan dua status menunggu satu siklus
setiap siklus memori. Apa kesimpulan yang dapat Anda ambil dari hasil?
Jawab :
a. Satu siklus clock sama dengan 60 ns, jadi akses cache membutuhkan 120 ns dan
akses memori utama membutuhkan 180 ns. Panjang efektif dari siklus memori
adalah (0,9 × 120) + (0,1 × 180) = 126 ns.
b. Perhitungannya sekarang (0,9 × 120) + (0,1 × 300) = 138 ns. Jelas kinerja
menurun. Namun, perhatikan bahwa meskipun waktu akses memori meningkat
120 ns, waktu akses rata-rata meningkat hanya 12 ns.
4.26. Kinerja sistem cache level tunggal untuk operasi baca dapat dicirikan dengan
persamaan berikut:
...
di mana Ta adalah waktu akses rata-rata, Tc adalah waktu akses cache, Tm adalah
waktu akses memori (memori untuk register prosesor), dan H adalah rasio klik. Untuk
mempermudah, kami berasumsi bahwa kata yang dipermasalahkan dimuat ke dalam
cache secara paralel dengan beban ke register prosesor. Ini adalah bentuk yang sama
dengan Persamaan (4.2).
a. Tentukan Tb = waktu untuk mentransfer garis antara cache dan memori utama,
dan W = fraksi referensi tulis. Merevisi persamaan sebelumnya untuk mencatat
tulisan serta membaca, menggunakan kebijakan menulis-melalui.
a. Jika ukuran baris cache adalah satu kata, apa yang dimaksud dengan penalti
miss (mis., Waktu tambahan yang diperlukan untuk membaca jika terjadi
kesalahan baca)?
b. Apakah hukuman miss jika ukuran baris cache adalah empat kata dan multi,
transfer non burst dijalankan?
c. Apa hukuman miss jika ukuran baris cache adalah empat kata dan transfer
dijalankan, dengan satu siklus clock per transfer kata?
Jawab :
5.1. Sarankan alasan mengapa RAM secara tradisional telah diatur hanya 1 bit per chip
sedangkan ROM biasanya diatur dengan beberapa bit per keping.
Jawaban:
a. Asumsikan bahwa waktu akses adalah 60 ns dan waktu isi ulang adalah 40 ns.
Berapa lama waktu siklus memori? Berapa laju data maksimum DRAM ini
dapat dipertahankan, dengan asumsi output 1-bit?
Jawaban:
5.5. Pada sistem berbasis Intel 8086, terhubung melalui bus sistem ke memori DRAM,
untuk operasi baca, RAS diaktifkan oleh trailing edge dari sinyal Address Enable
(Gambar 3.19). Namun, karena propagasi dan penundaan lainnya, RAS tidak aktif
hingga 50 ns setelah Address Enable kembali ke rendah. Asumsikan yang terakhir
terjadi di tengah-tengah paruh kedua negara T1 (agak lebih awal dari pada Gambar
3.19). Data dibaca oleh prosesor pada akhir T3. Untuk presentasi tepat waktu ke
prosesor, bagaimanapun, data harus disediakan 60 ns sebelumnya oleh memori. Interval
ini menyumbang
...
delay propagasi sepanjang jalur data (dari memori ke prosesor) dan persyaratan waktu
penyimpanan data prosesor. Asumsikan tingkat clocking 10 MHz.
a. Seberapa cepat (waktu akses) DRAMs jika tidak ada status tunggu yang
dimasukkan?
b. Berapa banyak status tunggu yang harus kita masukkan per operasi pembacaan
memori jika waktu akses DRAM adalah 150 ns?
Jawaban:
a. Panjang siklus jam adalah 100 ns. Tandai awal T1 sebagai waktu 0. Address
Enable kembali ke titik rendah 75. RAS berjalan aktif 50 ns kemudian, atau
waktu 125. Data harus tersedia oleh DRAMs pada waktu 300 - 60 = 240. Oleh
karena itu, waktu akses harus tidak lebih dari 240 - 125 = 115 ns.
5.7. Gambar 5.17 menunjukkan salah satu SRAM awal, 16 X 4 Signetics 7489 chip, yang
menyimpan 16 kata X 4-bit.
a. Buat daftar mode operasi chip untuk setiap pulsa input CS yang ditunjukkan
pada Gambar 5.17c.
b. Buat daftar isi memori dari lokasi kata 0 hingga 6 setelah pulsa n.
Jawaban:
a.
5.9. Satuan umum ukuran untuk tingkat kegagalan komponen elektronik adalah Kegagalan
penyatuan (Failure unIT (FIT)), yang dinyatakan sebagai tingkat kegagalan per miliar
jam perangkat. Ukuran lain yang dikenal tetapi kurang digunakan adalah waktu rata-
rata antara kegagalan (mean time between failures (MTBF)), yang merupakan
waktu operasi rata-rata komponen tertentu sampai gagal. Pertimbangkan memori 1
MB dari mikroprosesor 16-bit dengan 256K X 1 DRAM. Hitung MTBF dengan
asumsi 2000 FITS untuk setiap DRAM.
Jawaban:
Jawaban:
Bit data dengan nilai 1 berada dalam posisi bit 12, 11, 5, 4, 2, dan 1:
...
Periksa bit 8 yang dihitung berdasarkan nilai dalam jumlah bit: 12, 11, 10, dan 9
Periksa bit 4 dihitung berdasarkan nilai dalam bit number: 12, 7, 6, dan 5
Periksa bit 2 dihitung berdasarkan nilai dalam bit number: 11, 10, 7, 6 dan 3
Periksa bit 1 dihitung oleh nilai-nilai dalam nomor bit: 11, 9, 7, 5 dan 3
5.13. Berapa banyak bit cek yang diperlukan jika kode koreksi kesalahan Hamming
digunakan untuk mendeteksi kesalahan bit tunggal dalam kata data 1024-bit?
Jawaban: