Post on 07-Aug-2019
transcript
ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastamamahas@ukdw.ac.id
UNIV KRISTEN DUTA WACANA – GENAP 1213
5
Memori dalam CPU:Register dan Cache
• A processor register is a small amount of storage available as part of a CPU or other digital processor
• Such registers are (typically) addressed by mechanisms other than main memory and can be accessed more quickly register naming
• Almost all computers load data from a larger memory into registers where it is used for arithmetic, manipulated, or tested, by some machine instruction
REGISTER
• User Accessible Registers: bisa diakses langsung oleh pengguna melalui instruksi bahasa mesin/assembly, biasanya pengalamatannya dinamakan X, Y, Z, dsb.
• Data Registers: register yang digunakan untuk menampung data berupa bilangan maupun instruksi, biasanya integer. Untuk pecahan ada FP (Floating Point) register
• Address Registers: register yang hanya dapat menampung sebuah alamat
JENIS REGISTER
• PC: Program Control Register
• AC: Accumulator Register
• IR: Instruction Register
• MAR: Memory Address Register
• MBR: Memory Buffer Register
• AX, BX, CX, DX
CONTOH REGISTER
• Sebagian program mempunyai instruksi yang cenderung mengambil data dari alamat yang sama berkali-kali. Misal: menyimpan variabel, kemudian dilakukan loop.
• Kalau untuk data yang sama harus mencari lokasi alamat ke memory lagi, berarti buang-buang waktu
• Bagaimana seandainya data yang sering diakses, disimpan di dalam memory, tetapi harus static (punya jalur langsung ke CPU), agar lebih cepat Cache
CACHE
• Sejumlah kecil memory berkecepatan tinggi
• Terdiri dari slot-slot berukuran masing-masing satu block memory
• Satu block biasanya terdiri dari 4 s/d 16 words
• Bekerja antara main memory dan CPU
• Bisa terletak di chip CPU atau pada modul tersendiri
CACHE
BAGAIMANA CACHE BEKERJA?
• Saat CPU meminta alamat sebuah lokasi memory, cache dicek untuk data tersebut
• Kalau ada, ambil dari cache (cepat)
• Kalau tidak ada, ambil data dari memory, simpan ke dalam slot cache, kemudian teruskan data dari cache ke CPU
• Pada saat menyimpan ke slot, cache memberikan tag dari blok memory mana data tersebut berasal, untuk referensi berikutnya.
• Semakin besar cache, semakin bagus, karena akses data akan semakin cepat
• Tapi untuk membuat cache yang besar, biayanya akan sangat mahal
• Cache akan selalu berukuran kecil, dan hanya menyimpan data-data berfrekuensi akses tinggi saja.
• Akan selalu butuh metode MAPPING
• Akan selalu butuh WRITE POLICY
SIZE DOES MATTER
• Satu word data dari main memory akan di-mapping ke satu slot/baris cache
Alamat main memory akan dibagi menjadi:
• w bit LSB mewakili nomor word dalam 1 block
• s bit MSB mewakili block
• MSB kemudian diambil r bit sebagai penanda baris cache, sisanya (s-r) sebagai tag (penanda)
DIRECT MAPPING
Tag s-r Line or Slot r Word w
8 14 2
• 24 bit address
• 2 bit word identifier (4 word per block)
• 22 bit block identifier
– 8 bit tag (=22-14)
– 14 bit slot or line
• Check contents of cache by finding LINE and checking TAG
DIRECT MAPPING – Struktur Alamat
Tag s-r Line or Slot r Word w
8 14 2
DIRECT MAPPING – Asal Pembagian Bit
Line Tag Data
0000
0001
0010
0011
.
.
.
CACHE
Jumlahbariscache
Block pengiriman RAM
Jumlahword
s
• Simpel & sederhana
• Tidak borosresource
• Alamat mapping tiapword ke cache sama
• Kalau ada beberapablok berbeda yangmenempati line/slotyang sama, peluang
CACHE MISS lebihbesar
DIRECT MAPPING – Contoh
• Panjang alamat = (s + w) bits
• Jumlah unit yang dapat dialamati = 2s+w
words or bytes
• Besar blok = besar baris = 2w words or bytes
• Jumlah blok pada main memory = 2s+ w/2w = 2s
• Jumlah baris di cache = m = 2r
• Ukuran tag = (s – r) bits
DIRECT MAPPING FACTS
• Satu word data dari main memory akan di-mapping ke satu slot/baris cache
Alamat main memory akan dibagi menjadi:
• w bit LSB mewakili nomor word dalam 1 block
• s bit MSB sebagai Tag yang mewakili 1 block
• Tag disimpan sebagai penanda dari block mana di memory, data tersebut berasal.
ASSOCIATIVE MAPPING
Tag 22 bitWord
2 bit
• 24 bit address
• 2 bit word identifier (4 word per block)
• 22 bit tag identifier
• Check contents of cache by finding TAG
ASSOCIATIVE MAPPING – Struktur Alamat
• Lebih banyak bityang disimpan sebagaipenanda
• Lebih boros resourcekarena harus mencaridari line paling atasdengan mencocokkantiap-tiap tag
ASSOCIATIVE MAPPING – Contoh
• Panjang alamat = (s + w) bits
• Jumlah unit yang dapat dialamati = 2s+w
words or bytes
• Besar blok = Besar baris = 2w words or bytes
• Jumlah blok di main memory = 2s+ w/2w = 2s
• Jumlah baris di cache = bebas
• Ukuran tag = s bits
ASSOCIATIVE MAPPING FACTS
• Satu word data dari main memory akan di-mapping ke slot mana saja di cache dalam baris set yang sama
Alamat main memory akan dibagi menjadi:
• w bit LSB mewakili nomor word dalam 1 block
• s bit MSB mewakili block
• MSB kemudian diambil r bit sebagai penanda baris set cache, sisanya (s-r) sebagai tag (penanda)
SET ASSOCIATIVE MAPPING
• 24 bit address
• 2 bit word identifier (4 word per block)
• 22 bit block identifier– 9 bit tag (=22-13)
– 13 set number, each having 2 slots
• Check contents of cache by finding SET and checking TAG
Tag 9 bit Set 13 bitWord
2 bit
SET ASSOCIATIVE MAPPING – Struktur Alamat
Tag 9 bit Set 13 bitWord
2 bit
SET ASSOCIATIVE MAPPING – Asal Pembagian Bit
Tag Data
CACHE
Jumlahbaris(set)cache Block pengiriman
RAM
Jumlahword
Tag DataSet
0000
0001
0010
0011
.
.
.
ways
• Panjang Alamat = (s + w) bits
• Jumlah unit yang bisa dialamatkan = 2s+w
words or bytes
• Besar blok = besar baris = 2w words or bytes
• Jumlah blok di main memory = 2d
• Jumlah baris dalam sebuah set = k
• Jumlah set = v = 2d
• Jumlah baris dalam satu cache = kv = k * 2d
• Ukuran tag = (s – d) bits
SET ASSOCIATIVE MAPPING FACTS
• Tidak ada pilihan
• Tiap word dari sebuah blok hanya dapat terpetakan pada satu baris tertentu
• Jika ada data baru yang akan disimpan dalam cache, replace baris tersebut
ALGORITMA REPLACEMENT– Direct Mapping
• Implementasi algoritma bisa langsung secara hardware (cepat)
• Least Recently Used (LRU)Misal pada 2 way set associative– Mana dari kedua slot yang is LRU?
• First In First Out (FIFO)– Replace slot yang paling lama berada di cache
• Least Frequently Used (LFU)– Replace slot yang memiliki hit paling rendah
• Random
ALGORITMA REPLACEMENT– Associative & Set Associative
• Mengapa butuh write policy? Karena bisa saja data yang tadi diload ke cache, terupdate oleh proses di CPU
• Demi keamanan data, jangan overwrite isi cache kecuali jika main memory sudah di-update
• Agar tidak berebut, multiple CPU (satu komputer dengan > 1 CPU, yang dapat berupa CPU terpisah maupun multi-core) bisa memiliki cache masing-masing
WRITE POLICY
• Write terhadap update data dilakukan baik ke main memory maupun cache
• CPU bisa memonitor traffic main memory untuk menjaga agar cache selalu up to date
• Kekurangan:– Traffic data
– Memperlambat proses write
WRITE POLICY: WRITE THROUGH
• Write terhadap update data, awalnya hanya dilakukan pada data di cache (update bit pada baris cache di-set ketika terjadi update)
• Jika slot data tersebut akan terkena replace, baru tuliskan update ke main memory
• Sisi negatif:– Cache terlambat tersinkronisasi– I/O harus mengakses main memory melewati
cache– 15% pembacaan memory adalah write
WRITE POLICY: WRITE BACK
• 80386 – no on chip cache• 80486 – 8k using 16 byte lines and four way set
associative organization• Pentium (all versions)
– two on-chip L1 caches for Data & instructions• Pentium 4 – L1 caches
– 8k bytes– 64 byte lines– four way set associative
• L2 cache – Feeding both L1 caches- 256k– 128 byte lines– 8 way set associative
CONTOH: PENTIUM 4 CACHE