ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama mahas@ukdw.ac.id 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 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 Asal Pembagian Bit s Tag s-r Line or Slot r Word w 8 14 2 CACHE Line Tag Data 0000 0001 0010 0011... Jumlah baris cache Block pengiriman RAM 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 = 2 s+w words or bytes Besar blok = besar baris = 2 w words or bytes Jumlah blok pada main memory = 2 s+ w /2 w = 2 s Jumlah baris di cache = m = 2 r 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 Word 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 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 = 2 s+w words or bytes Besar blok = Besar baris = 2 w words or bytes Jumlah blok di main memory = 2 s+ w /2 w = 2 s 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 Word 2 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
SET ASSOCIATIVE MAPPING Asal Pembagian Bit Tag 9 bit Set 13 bit Word 2 bit CACHE Tag Data Set Tag Data 0000 0001 0010 0011... Jumlah baris (set) cache Block pengiriman RAM Jumlah word ways
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 = 2 s+w words or bytes Besar blok = besar baris = 2 w words or bytes Jumlah blok di main memory = 2 d Jumlah baris dalam sebuah set = k Jumlah set = v = 2 d Jumlah baris dalam satu cache = kv = k * 2 d 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