arsitektur & organisasi komputer - mahas/dossier/arkom_05.pdf · pdf filearsitektur...

Click here to load reader

Post on 07-Aug-2019

235 views

Category:

Documents

7 download

Embed Size (px)

TRANSCRIPT

  • ARSITEKTUR DAN ORGANISASI KOMPUTER

    Aditya Wikan Mahastama [email protected]

    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

  • POSISI REGISTER

  • CONTOH REGISTER PADA PROSESOR

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

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

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

    Jumlah baris cache

    Block pengiriman RAM

    Jumlah word

    s

  • DIRECT MAPPING – Organisasi Cache

  • • 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 – 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 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 – Struktur Alamat

  • ASSOCIATIVE MAPPING – Organisasi Cache

  • • Lebih banyak bit yang disimpan sebagai penanda

    • Lebih boros resource karena harus mencari dari line paling atas dengan mencocokkan tiap-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 bit Word

    2 bit

    SET ASSOCIATIVE MAPPING – Struktur Alamat

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

    0000

    0001

    0010

    0011

    .

    .

    .

    ways

  • TWO-WAY SET ASSOCIATIVE – Contoh

  • • Menggabungkan kelebihan direct mapping dan associative mapping

    TWO-WAY SET ASSOCIATIVE – Contoh

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