• Tidak ada hasil yang ditemukan

Aditya Wikan Mahastama

N/A
N/A
Protected

Academic year: 2021

Membagikan "Aditya Wikan Mahastama"

Copied!
41
0
0

Teks penuh

(1)

ARSITEKTUR DAN ORGANISASI KOMPUTER

Aditya Wikan Mahastama

[email protected]

UNIV KRISTEN DUTA WACANA – GENAP 1213

5

Memori dalam CPU: Register dan Cache

(2)

• 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

(3)

• 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

(4)

• PC: Program Control Register • AC: Accumulator Register

• IR: Instruction Register

• MAR: Memory Address Register

• MBR: Memory Buffer Register • AX, BX, CX, DX

(5)
(6)
(7)

• 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

(8)

• 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

(9)
(10)

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

(11)

• 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

(12)

• 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)

(13)

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

(14)

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 Jumlah baris cache

Block pengiriman RAM

Jumlah word

(15)
(16)

• 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

(17)

• 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

(18)

• 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.

(19)

Tag 22 bit Word2 bit

• 24 bit address

• 2 bit word identifier (4 word per block) • 22 bit tag identifier

• Check contents of cache by finding TAG

(20)
(21)

• Lebih banyak bit

yang disimpan sebagai penanda

• Lebih boros resource karena harus mencari dari line paling atas dengan mencocokkan tiap-tiap tag

(22)

• 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

(23)

• 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)

(24)

• 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 bit Word

2 bit

SET ASSOCIATIVE MAPPING – Struktur

Alamat

(25)

Tag 9 bit Set 13 bit Word 2 bit

SET ASSOCIATIVE MAPPING – Asal Pembagian Bit

Tag Data

CACHE

Jumlah baris (set)

cache Block pengiriman

RAM Jumlah word Tag Data Set 0000 0001 0010 0011 . . . ways

(26)
(27)

• Menggabungkan kelebihan direct mapping dan associative mapping

(28)

• 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

(29)

• 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

(30)

• 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

(31)

• 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

(32)

• 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

(33)

• 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

(34)

• 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

(35)
(36)
(37)
(38)
(39)
(40)
(41)

Topik Berikutnya: Program dan Interrupt

Referensi

Dokumen terkait