ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastama
[email protected]
Memori dalam CPU: Register dan Cache
5 UNIV KRISTEN DUTA WACANA – GENAP 1213
REGISTER • 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
JENIS 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
CONTOH REGISTER • • • • • •
PC: Program Control Register AC: Accumulator Register IR: Instruction Register MAR: Memory Address Register MBR: Memory Buffer Register AX, BX, CX, DX
POSISI REGISTER
CONTOH REGISTER PADA PROSESOR
CACHE • 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
ORGANISASI CACHE PADA UMUMNYA
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.
SIZE DOES MATTER • 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
DIRECT MAPPING • Satu word data dari main memory akan dimapping 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 – Struktur Alamat Tag s-r 8
Line or Slot r
Word w
14
• 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
2
DIRECT MAPPING – Asal Pembagian Bit s Tag s-r
Line or Slot r
Word w
14
8
2
CACHE Line
Tag
Block pengiriman RAM
Data
0000
0001 0010 0011 . . .
Jumlah baris cache
Jumlah word
DIRECT MAPPING – Organisasi Cache
DIRECT MAPPING – Contoh • Simpel & sederhana • Tidak boros resource • Alamat mapping tiap word ke cache sama • Kalau ada beberapa blok berbeda yang menempati line/slot yang sama, peluang CACHE MISS lebih besar
DIRECT MAPPING FACTS • 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
ASSOCIATIVE MAPPING • Satu word data dari main memory akan dimapping 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 – Struktur Alamat Tag 22 bit
• 24 bit address • 2 bit word identifier (4 word per block) • 22 bit tag identifier • Check contents of cache by finding TAG
Word 2 bit
ASSOCIATIVE MAPPING – Organisasi Cache
ASSOCIATIVE MAPPING – Contoh • Lebih banyak bit yang disimpan sebagai penanda • Lebih boros resource karena harus mencari dari line paling atas dengan mencocokkan tiap-tiap tag
ASSOCIATIVE MAPPING FACTS • 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
SET ASSOCIATIVE MAPPING • Satu word data dari main memory akan dimapping 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 – Struktur Alamat Tag 9 bit
Set 13 bit
• 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
Word 2 bit
SET ASSOCIATIVE MAPPING – Asal Pembagian Bit Tag 9 bit
Word 2 bit
Set 13 bit CACHE
Tag
Data
Set
Tag
Data
0000 0001 0010 0011 . . .
ways
Jumlah baris (set) cache
Jumlah word
Block pengiriman RAM
TWO-WAY SET ASSOCIATIVE – Contoh
TWO-WAY SET ASSOCIATIVE – Contoh • Menggabungkan kelebihan direct mapping dan associative mapping
SET ASSOCIATIVE MAPPING FACTS • 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
ALGORITMA REPLACEMENT – Direct Mapping • 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 – Associative & Set Associative • 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
WRITE POLICY • 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 diupdate • 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 THROUGH • 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 BACK • 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
CONTOH: PENTIUM 4 CACHE • 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
UKURAN CACHE
ARSITEKTUR PENTIUM 4
INTEL CORE i3
INTEL CORE i5
INTEL CORE i7
ARSITEKTUR INTEL CORE i3
Demikian Materi Kali Ini Topik Berikutnya: Program dan Interrupt