Desain Memor (CACHE)

download Desain Memor (CACHE)

of 115

Transcript of Desain Memor (CACHE)

Memory Design ISyahrulAdopted from notes by Professor Jerry Breecher Edited 2007

Syahrul's handout: just for internal students

1

TEKNIK MANAJEMEN MEMORIOUTLINE Instruction prefetch

Memory interleaving Write buffer

Cache memory Virtual memory

Syahrul's handout: just for internal students

2

Umumnya ada 4 teknik dalam penyelesaian problem prosesor untuk bekerja dgn baik pd main memory yg lambat:

1. 2. 3. 4.

Instruction prefetch Memory interleaving Write buffer Cache memory

berbeda dlm kompleksitas HW & efisiensi.

Syahrul's handout: just for internal students

3

Kini mikroprosesor menggabungkan semua teknik tsb dlm satu prosesor. Karena itu, secara teoritis memungkinkan untuk mempunyai memori fisik sebanyak yg dibutuhkan program. Tetapi ada beberapa masalah praktis yg berhubung dengan hal ini :1. Harga main memory meningkat harga sistem meningkat. dan karenanya

2.3.

Kebutuhan catu daya .Karena hardware meningkat (memori dan catu daya), panas yg dihasilkan meningkat melampaui persyaratan pendingin tambahan (kipas pendingin/pengkondisi udara).

Syahrul's handout: just for internal students

4

INSTRUCTION PREFETCH Tujuan instruction prefetch: untuk menuju ke instruksi berikutnya dari main memory, mendahului, ketika current instruction dieksekusi oleh prosesor. Cara ini dicapai melalui sekumpulan prefetch buffers di mana instruksi-instruksi yg diambil sebelumnya disimpan. Prefetch buffer menyimpan antrian instruksi (queue), beberapa instruksi diambil sebelumnya dari main memory. Ketika prosesor menyelesaikan suatu eksekusi instruksi, dia hanya mengambil instruksi berikutnya dari antrian instruksi. Jadi prosesor menghemat waktu untuk pengambilan instruksi. Hal ini dimungkinkan dengan melakukan overlap fase pengambilan dan fase eksekusi instruksi.Syahrul's handout: just for internal students

5

INSTRUCTION PREFETCH

Syahrul's handout: just for internal students

6

INSTRUCTION PREFETCH

Syahrul's handout: just for internal students

7

MEMORY INTERLEAVING CPU mampu menangani bandwidth yang lebih tinggi daripada bandwidth memori. Operasi-operasi internal CPU dikontrol oleh clock berkecepatan tinggi. Karena kecepatan antara CPU dan bandwidth memori tidak sesuai (mismatch), maka CPU harus selalu istirahat/menunggu instruksi/data dari memori. Memory interleaving adalah suatu teknik reorganisasi (pembagian) main memory menjadi modul-modul independen yg jamak agar semua bandwidth ditingkatkan menjadi beberapa kali.Syahrul's handout: just for internal students

8

MEMORY INTERLEAVING

Syahrul's handout: just for internal students

9

MEMORY INTERLEAVING

Anggap CPU mengirimkan alamat pertama 1000 dan alamat 1001 berikutnya. Bila alamat 1000 diterima, bank genap terpilih dan dia memulai operasi baca. Bila alamat 1001 diterima, bank ganjil terpilih dan dia juga mulai membaca. Jadi, bank-bank terpilih satu demi satu dan kedua bank melakukan operasi baca secara paralel. CPU menerima data dari dua bank dengan urutan yg sama.Syahrul's handout: just for internal students

10

MEMORY INTERLEAVING Pada non-interleaving, CPU melakukan operasi baca alamat 1000 pertama dan setelah waktu siklus berakhir, dilanjutkan dgn operasi baca untuk alamat 1001 berikutnya. Jika waktu siklus memori 50 s, maka total waktu akses yg digunakan untuk 2 pengaksesan adalah 100 s. Karena itu bandwidth-nya adalah 2 byte/100 s = 20 MB/sec. Dlm interleaving 2-arah, dua pengaksesan selesai dalam 50 s. Karena itu bandwidth memori = 2 byte/50 s = 40 MB/sec. Jadi, interleaving 2-arah menggandakan bandwidth memori. Secara umum, interleaving memori n-arah memberikan bandwidth sebesar n-kali bandwidth kasus non-interleaving.Syahrul's handout: just for internal students

11

MEMORY INTERLEAVING

Syahrul's handout: just for internal students

12

Syahrul's handout: just for internal students

13

MEMORY INTERLEAVING Interleaving n-arah melipatgandakan bandwidth n-kali. Kekurangannya adalah : 1. Diperlukan pendekodean bank dan rangkaian enabling. Hal ini meningkatkan biaya. 2. Waktu tunda nominal didahului oleh sirkuit logika pendekode bank yg harus diperhitungkan ketika penghitungan waktu akses efektif dan bandwidth. 3. CPU harus mempunyai sirkuit logika tambahan untuk memulai dan menangani serangkaian siklus baca/tulis memori . Ketiga kekurangan ini tidak terlalu serius dalam peningkatan performa karena memory interleaving.Syahrul's handout: just for internal students

14

WRITE BUFFER

Write buffer secara fungsional adalah kebalikan dari Instruction prefetch. Digunakan untuk melakukan operasipenulisan memori untuk kepentingan CPU sehingga membebaskan CPU dr operasi penulisan memori.

Write buffer berisi informasi berikut:1. Alamat memori dimana operasi tulis harus dilakukan. 2. Data yg akan ditulis Umumnya write buffer dapat menyimpan informasi untuk lebih dari satu operasi tulis. Umumnya bila CPU menulis data pada main memory, maka dia dapat menyimpan hasil dari suatu instruksi. Jika CPU harus terlibat secara penuh dalam siklus penulisan memori, maka dia memperlambat permulaan siklus instruksi berikutnya.Syahrul's handout: just for internal students

15

WRITE BUFFER

Syahrul's handout: just for internal students

16

MEMORI CACHE

Syahrul's handout: just for internal students

17

The Big Picture: Where are We Now? Lima Komponen Komputer (klasik) Processor

InputControl Memory Datapath

Output

Umumnya implementasi Memori adalah: Dynamic Random Access Memory (DRAM) - untuk main memory Static Random Access Memory (SRAM) - untuk cache Todays Topics: Locality and Memory Hierarchy SRAM Memory Technology DRAM Memory Technology Memory OrganizationSyahrul's handout: just for internal students

18

Kecenderungan TeknologiLogic: DRAM: Disk: Kapasitas 2 dalam 3 thn 4 dalam 3 thn 4 dalam 3 thn Kecepatan (latency) 2 dalam 3 thn 2 dalam 10 thn 2 dalam 10 thn

1000:1 !DRAM Tahun 1980 1983 1986 1989 1992 Ukuran 64 Kb 256 Kb 1 Mb 4 Mb 16 Mb

2:1 !Waktu siklus 250 ns 220 ns 190 ns 165 ns 145 ns

1995

64 Mb

120 ns

Syahrul's handout: just for internal students

19

Who Cares About the Memory Hierarchy?Processor-DRAM Memory Gap (latency) Proc 60%/year (2/1.5yr)

1000PerformanceMoores Law

CPU

10010 1Less Law?

Processor-Memory Performance Gap: (grows 50% / year)DRAM

Syahrul's handout: just for internal students

1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000

DRAM 9%/year (2/10 yrs)

Time20

Hirarki Memori Sistem Komputer Modern Idealnya memori utama haruslah cepat dan kapasitasnya besar agar program yg besar dapat disimpan dan dieksekusi. Ada beberapa teknologi memori sepertimemori semikonduktor, hard disk magnetik, pita magnetik, optical disk dsb. Masing-masing memori mempunyai keunikan dan rentang waktu akses yang berbeda. Harga per bit nya pun bervariasi.

Syahrul's handout: just for internal students

21

Hirarki Memori Sistem Komputer Modern

Syahrul's handout: just for internal students

22

Hirarki Memori Sistem Komputer ModernCapacity Access Time Cost CPU Registers 100s Bytes 1s ns Cache K Bytes 4 ns 1-0.1 cents/bit Main Memory M Bytes 100ns- 300ns $.0001-.00001 cents /bit Disk G Bytes, 10 ms (10,000,000 ns) -6 -5 10 - 10 cents/bit Tape infinite sec-min 10-8 Syahrul's handout: just for internal students

Upper LevelStaging Xfer Unit

faster

Registers Instr. Operands Cache Blocks Memory Pages Disk Files Tapeuser/operator Mbytes OS 512-4K bytes cache cntl 8-128 bytes prog./compiler 1-8 bytes

Larger Lower Level 23

Memori Cache SRAM dipilih sebagai memori cache karena kecepatannya yg tinggi dan ukurannya yg kecil. Umumnya mikroprosesor saat inimulai dari Intel 80486 mempunyai memori cache dlm prosesor (on-chip cache) dan disebut memori cache internal.

Memori cache dapat ditempatkan lebih dari satu level.Mikroprosesor performa tinggi sepertiPentium pro dan berikutnya mempunyai dua level. Level ini disebut cache Level-1 (L1) dan Level-2 (L2). On-chip cache lebih cepat daripada off-chip cache dgn teknologi yg sama. Karena propagation delay dlm lintasan antara prosesor dan on-chip cache hampir nolSyahrul's handout: just for internal students

Syahruls handout: just for internal students

24

Memori Cache Memori cache (MC) merupakan penyangga (buffer) tengah antara CPU dan memori-utama (MU). Tujuannya: untuk mengurangi waktu tunggu CPU selama pengaksesan MU. Pada sistem tanpa MC, setiap akses MU menghasilkan delay dalam pemrosesan instruksi karena waktu akses MU lebih tinggi dari perioda clock prosesor.

Kecepatan CPU yg tinggi terbuang selama akses memori (ketika pengambilan instruksi, pengambilan operand dan penyimpanan hasil) karena waktu akses MU yg besar. Untuk mengurangi waktu tunggu CPU, maka digunakanlah memori yg kecil tetapi cepat sebagai buffer yg berada di antara MU dan CPU.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

25

Memori Cache

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

26

Memori Cache Sebagian program dan data dibawa sebelumnya ke dalam memori cache. Bila CPU memerlukan instruksi/operand, CPU menerimanya dari MC (jika tersedia) sebagai pengganti dari pengaksesan MU. Namun, jika item yg diperlukan tidak ada dlm MC, maka akses ke MU tidak dpt dihindari. Item dibaca dari MU dan diletakkan di MC.

Jika MC penuh, maka beberapa item dihapus. Keberadaan MC tidak dikenal pd program pemakai (user program) dan bahkan pada prosesor. Perangkat keras cache controller mengatur semua persyaratan dgn melakukan operasi-operasi yg diperlukan. .Syahrul's handout: just for internal students

Syahruls handout: just for internal students

27

Memori CachePRINSIP CACHE Operasi cache berdasarkan pada locality of reference yg merupakan sifat yg melekat dlm program. Hampir semua waktu, pemrosesan instruksi dan data yg diperlukan tersedia dalam lokasi MU tsb yg secara fisik dekat dgn lokasi MU sekarang yg diakses. Ada dua macam pola tingkah laku: 1. Temporal locality: Instruksi sekarang yang diambil dapat diperlukan kembali dgn segera. 2. Spatial locality: Instruksi-instruksi yg berdekatan dgn instruksi sekarang dapat diperlukan segera.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

28

Memori CacheDari dua sifat locality, bila pengaksesan MU untuk satu instruksi, sebagai pengganti dari pengambilan satu instruksi saja dari MU, beberapa instruksi berurutan diambil bersama dan disimpan dlm MC.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

29

Memori CacheLets look at numbers for an Intel Pentium 4, 3.2 GHz Server.Component Access Speed (Time for data to be returned)1 cycle = 0.3 nanoseconds3 cycles = 1 nanoseconds 20 cycles = 7 nanoseconds 40 cycles = 13 nanoseconds 300 cycles = 100 nanoseconds

Size of Component

RegistersL1 Cache L2 Cache L3 Cache Memory

8 registersSeparate Data and Instruction Caches: 16 Kbytes each 256 Kbytes, 8-way set associative 4096 Kbytes, 8-way set associative 16 Gigabytes

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

30

Memori Cache Secara konseptual MU dibagi menjadi sejumlah blok, setiap blok berisi beberapa lokasi memori berurutan yg tetap. Selama pembacaan suatu lokasi MU, isi seluruh blok ditransfer dan disimpan dalam MC. MC disusun seperti sejumlah baris-baris (disebut juga blok) dan ukuran setiap baris sama seperti kapasitas dari blok MU. Jumlah blok MU lebih banyak drpd jumlah baris dlm MC.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

31

Memori Cache Suatu formula digunakan untuk memetakan secara simetris suatu blok MU ke salah satu baris cache.

Bila suatu blok MU disimpan dlm MC, maka baris cache (nomor baris) di mana blok harus ditulisi ditentukan dari fungsi pemetaan (mapping function). Similarly, bila CPU membaca dr suatu lokasi MU, maka cache controller menggunakan fungsi pemetaan yg mengindetifikasi baris cache di mana blok MU disimpan (jika tersedia). Ada 3 metoda popular untuk pemetaan MC:1. Pemetaan langsung (direct mapping) 2. Pemetaan asosiatif penuh (fully associative mapping) 3. Pemetaan asosiatif set (set associative mapping)Syahrul's handout: just for internal students

Syahruls handout: just for internal students

32

Memori Cache

Direct Mapping- baris memori dipetakan pada satu lokasi cache spesifik - murah tetapi hit ratio rendah - umumnya digunakan pada cache L1 (on-chip cache)

Fully Associative- baris memori dapat dipetakan di mana saja dlm cache - sistem look up table - hit ratio besar dan mahal

Set Associative- cache dibagi menjadi k-set dalam baris cache - baris memori dapat dipetakan di mana saja di dlm set - digunakan pada cache L2 (on board cache)Syahrul's handout: just for internal students

33

Memori Cache Secara fungsional, MC mempunyai dua bagian: 1. Cache data 2. Cache tag

Setiap baris dari cache data berisi blok memori. Baris tag yang bersesuaian dalam cache tag menunjukkan jumlah blok dari blok memori ini. Pola tag adalah suatu bagian alamat MU dari blok. Ini berbeda dgn teknik pemetaan (langsung, asosiatif penuh, dan set asosiatif) yg akan dibahas pada bagian berikutnya.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

34

Memori Cache

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

35

Memori CacheHIT DAN MISS Bila CPU mengakses MU, cache-controller memeriksa MC untuk melihat apakah alamat memori sekarang yg dilepaskan oleh CPU dipetakan ke dalam cache. Jika alamat memori yg sekarang dipetakan, artinya item yg diperlukan tersedia dalam MC, keadaan ini disebut cache hit. Informasi yg diperlukan dibaca dari MC Pada sisi lain, jika alamat MU yg sekarang tidak dipetakan dlm memori cache, artinya informasi yg diperlukan tidak tersedia dlm MC, keadaan ini disebut cache miss. Karena itu semua blok yang berisi alamat MU dikirim ke MC.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

36

Memori Cache Kini ada 2 dua cara menyuplai informasi ke prosesor:

1. Simpan semua blok dalam MC pertama dan kemudian baca item yg diperlukan dari MC dan suplai ke prosesor.2. Item yg segera diperlukan dibaca dr MU, disuplai ke prosesor dan kemudian disimpan dalam MC.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

37

Memori Cache Cache hit yang lebih sering ada, lebih baik karena setiap terjadi miss maka harus dilakukan pengaksesan MU. Waktu yg digunakan untuk membawa item yg diperlukan dari MU dan menyuplainya ke CPU disebut miss penalty Hit rate (disebut juga hit ratio) menyediakan bilangan jumlah akses yg dihadapi cache hit terhadap jumlah akses.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

38

Memori Cache Hit rate tergantung pada faktor-faktor berikut: Ukuran baris MC. Kapasitas total MC. Fungsi pemetaan yang digunakan.

Algoritma penggantian yang digunakan oleh sistem operasi yang memutuskan apakah akan berada dalam MC. Jenis program yang dijalankan.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

39

Memori CachePEMETAAN LANGSUNG (Direct mapping) Pada pemetaan langsung, blok MU yg ada dipetakan ke suatu baris khusus dlm MC. Dgn kata lain, cache controller tidak fleksibel dalam penempatan blok MU dlm baris-baris MC. Alamat memori utama dikelompokkan ke dlm 3 field: TAG, LINE dan WORD

Bit-bit dlm field WORD menunjukkan jumlah WORD dlm blok. Field TAG dan LINE bersama-sama menentukan jumlah blok.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

40

Syahrul's handout: just for internal students

41

Memori CachePenentuan nomor baris cache (direct mapping)

Anggap MC mempunyai c baris (blok) dan MU mempunyai m blok. Pemetaan langsung ditetapkan sebagai:

lcm = bmm modulo cdi mana lcm bmm c = nomor baris cache = nomor blok memori utama = jumlah total baris cache

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

42

Memori CachePenentuan nomor baris cache (direct mapping) Bila prosesor melakukan operasi pembacaan MU, pengendali cache mendapatkan no.baris cache dari field LINE alamat MU. Tag pada baris cache tsb match dgn field TAG pd alamat memori. Sekarang ada dua kemungkinan:a. Jika cocok, maka HIT. Data yg diperlukan tersedia dlm baris cache data. Pembacaan baris tsb dimulai. Word yg diperlukan dlm blok tsb diseleksi menggunakan field WORD dlm alamat memori. b. Jika tag dlm baris cache tidak cocok dgn field TAG dlm alamat memori, maka MISS. Karena itu, pengendali cache mulai melakukan operasi MU. Semua blok ditransfer dan disimpan dlm baris cache tsb menggantikan blok lama. Memori tag juga diperbarui dgn field TAG dr alamat memori. Word yg diperlukan dikirim ke prosesor.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

43

Syahrul's handout: just for internal students

44

Memori Cache Keuntungan Pemetaan Langsung. Pemetaan langsung merupakan jenis pemetaan yg paling sederhana.

Perangkat keras yg diperlukan sangat sederhana karena tag dari baris cache yg hanya satu adalah cocok dgn field TAG dlm alamat memori yg diberikan. Pengendali cache dgn sangat cepat menge luarkan informasi hit atau miss.

Low costSyahrul's handout: just for internal students

Syahruls handout: just for internal students

45

Memori Cache Kekurangan Pemetaan langsung. Tidak fleksibel. Blok memori dicantolkan (dipetakan) pada suatu baris cache yang tetap. Jika ada dua blok yang sering diakses untuk dipetakan pada baris cache yang sama (karena alamat memorinya), maka HIT ratio yang dihasilkan kecil. Hal ini memberikan eksekusi program yang lambat. Namun, masalah ini banyak terjadi hanya pada beberapa jenis program.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

46

Memori CacheContoh: Sebuah komputer 32 bit mempunyai alamat memori 32 bit. Komputer tersebut mempunyai memori cache 8 KB. Komputer mengikuti pemetaan langsung. Setiap baris berukuran 16 byte. Tunjukkan format alamat MU dan organisasi MC. Solusi: Alamat memori 32-bit. Jadi kapasitas MU 4GB (232). Secara logika dibagi menjadi blok-blok 16 byte. Empat alamat LSB memori (A0A3) memberikan nomor word dlm blok, 28 alamat MSB (A31A4) harus dibagi menjadi field TAG & field LINE. Panjang field LINE dpt diperoleh karena ukuran MC diberikan, yaitu: 8192/16 = 512 = 29 Karena jumlah baris dlm MC = 512, jadi diperlukan 9 bit untuk field LINE. Sisanya 19 bit untuk field TAG.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

47

Syahrul's handout: just for internal students

48

19 : 8 = 2 sisa 3

Syahrul's handout: just for internal students

49

Syahrul's handout: just for internal students

50

Memori CacheDirect Mapping CacheBits 2-4 of main memory address is the cache address (index). The upper 5 bits of main memory (tag) is stored in cache along with data. If tag and index requested from CPU matches, its a cache hit.

Syahrul's handout: just for internal students

51

Syahrul's handout: just for internal students

52

Memori Cache PEMETAAN ASOSIATIF (Associative Mapping) Pd pemetaan asosiatif, blok memori dapat dipetakan pd sembarang baris cache Alamat memori terdiri dari 2 field: TAG dan WORD. Field TAG menunjukkan nomor blok memori. Bila prosesor membaca memori, cache controller harus mencocokkan field TAG dlm alamat dgn isi TAG pd semua baris dlm MC. Jika hit dgn suatu baris tag, maka blok yg tersimpan dlm baris tsb dibaca dr MC. Jika miss pd semua baris, cache controller memulai pembacaan memori. Blok yg dibaca dr MU disimpan pd suatu baris cache jika MC tidak penuh. Jika cache penuh, hanya dilakukan penggantian blok yg diperlukan dlm cache.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

53

Syahrul's handout: just for internal students

54

Memori Cache Keuntungan Pemetaan Asosiatif Fleksibilitas tinggi. Suatu blok memori dpt dipindahkan ke sembarang baris cache. Karena itu, penggantian blok cache diperlukan hanya jika cache penuh secara total. Hal ini memberikan performa yang lebih baik karena waktu yg digunakan dlm penggantian berkurang. Dalam pemetaan asosiatif, jumlah baris dlm cache tidak tetap.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

55

Memori Cache Kekurangan Pemetaan Asosiatif. Mahal. Cache controller kompleks karena tag semua baris cache dicocokkan secara simultan untuk mengurangi delay. Dengan kata lain, pencarian paralel semua baris cache dilakukan untuk suatu pola TAG khusus. Suatu memori khusus disebut associative memory atau Content Addressable Memory (CAM) digunakan untuk tujuan ini.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

56

Memori CacheContoh: Sebuah komputer 32-bit mempunyai alamat memori 32-bit. Komputer mempunyai MC 8 KB dan mengikuti pemetaan asosiatif. Setiap baris berukuran 16 byte. Tunjukkan format alamat memori dan organisasi memori cache. Solusi: Empat LSB (A0A3) menetapkan nomor word dlm blok. Sisanya 28-bit (A31A4) memberikan field TAG nomor blok. Ada 228 blok dalam memori. Jumlah baris dlm MC tidak tergantung pada faktor lain. Dia dipilih berdasarkan ekpektasi performa dan harga. Karena ukuran baris adalah 16 byte, maka MC mempunyai 512 baris (8096/16 = 512)Syahrul's handout: just for internal students

Syahruls handout: just for internal students

57

Syahrul's handout: just for internal students

58

Syahrul's handout: just for internal students

59

Memori Cache PEMETAAN SET ASSOCIATIVE Pemetaan set associative menggabungkan konsep pemetaan langsung dgn pemetaan asosiatif, untuk memberikan biaya efektif dan kelayakan skema pemetaan yg fleksibel. Jumlah total baris cache dikelompokkan ke dlm multiple set. Setiap set mempunyai baris jamak (multiple line) dr nomor yg sama. Jika ada k baris dlm setiap set, maka sistem pemetaan dikenal dgn set asosiatif k-cara. Suatu blok MU dpt dipetakan menjadi set khusus (specific set) saja. Dalam suatu set, blok memori dapat ditempatkan di mana saja dalam k baris. Terdapat 3 field: TAG, SET, dan WORD. Field SET menyediakan nomor set.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

60

Memori Cache PEMETAAN SET ASSOCIATIVE Bila prosesor membaca memori, cache controller menggunakan field SET untuk mengakses cache.

Dalam set, ada k jumlah baris. Karena itu field TAG dlm alamat dicocokkan dgn isi tag dlm semua k baris. Pada penerimaan suatu HIT, blok yg bersesuaian dibaca dan word yg diperlukan dipilih. Pada penerimaan MISS, blok dibaca dari MU dan disimpan dlm set yg ditentukan sebelumnya.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

61

Syahrul's handout: just for internal students

62

Memori Cache Keuntungan Pemetaan Set Associative.

Dibandingkan dgn pemetaan langsung, terdpt pilihan yg banyak dlm pemetaan suatu blok memori. Banyaknya pilihan/opsi tergantung pada ukuran k. Biasanya dlm nomor kecil: 2, 4, 8 dst. Jadi menyediakan fleksibilitas yg lebih baik. Selama pembacaan, penyesuaian tag (pencarian) terbatas pd jumlah baris dlm set. Karena itu, pencarian (searching) hanya dlm suatu set, tidak seperti pd pemetaan asosiatif, di mana pencarian dilakukan pd semua MC.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

63

Memori Cache Kekurangan Pemetaan Set Associative. Biaya implementasi lebih mahal daripada pemetaan langsung dan lebih murah daripada pemetaan asosiatif. Namun, dibandingkan terhadap keuntungan pemetaan set associative, biaya ini meningkat tidak relevan.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

64

Memori Cache PEMETAAN SET ASSOCIATIVEContoh: Sebuah komputer 32-bit mempunyai alamat memori 32-bit. Komputer mempunyai MC 8 KB dan mengikuti pemetaan set asosiatif 4-way. Setiap baris berukuran 16 byte. Tunjukkan format alamat memori dan organisasi memori cache.Solusi: 4 bit alamat (A0A3) untuk nomor word karena ukuran blok adalah 16 byte. Total jumlah baris dalam memori cache adalah 8 KB/16 = 512 = 29. Karena pemetaan set associative 4-way, maka cache dibagi menjadi 128 set. Setiap set mempunyai empat baris. Karena ada 128 set, maka 7 bit dibutuhkan untuk nomor set. Karena itu filed SET mempunyai 7 bit. Sisanya 21 bit membentuk field TAG.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

65

Syahrul's handout: just for internal students

66

19 modulo 4 = 4 sisa 3no. blok jumlah set no. tag no. set

14 modulo 4 = 3 sisa 2no. blok jumlah set no. tag no. set

Syahrul's handout: just for internal students

67

Syahrul's handout: just for internal students

68

Memori Cache PENGGANTIAN CACHE Jika MC sudah penuh, maka beberapa isi MC dihapus untuk membuat ruang bagi entry baru.. ALGORITMA PENGGANTIAN CACHE

Jika kita menghapus suatu blok yg akan diakses segera oleh CPU, maka terjadi miss penalty. Karena itu, diperlukan suatu keputusan cerdas dari suatu pemilihan baris cache yg akan dikosongkan.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

69

Memori Cache ALGORITMA PENGGANTIAN CACHE Algoritma penggantian tertentu telah dicoba dan diuji efisiensinya, di antaranya: Random choice Algorithm: Algoritma ini memilih baris cache secara random tanpa suatu acuan pada frekuensi penggunaan sebelumnya. Algoritma ini diimplementasikan dgn perangkat keras yg sederhana. Walaupun dapat muncul pada suatu algoritma biasa, dia mempunyai efisiensi praktis yg menarik.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

70

Memori Cache ALGORITMA PENGGANTIAN CACHE First-In First-Out (FIFO) Algortihm: Algoritma ini memilih set yg telah berada pd cache dlm waktu yg lama. Dengan kata lain, blok yg dimasukkan dlm cache pertama didorong keluar pertama. Asumsinya bahwa item yg baru saja dimasukkan mungkin yg akan diperlukan.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

71

Memori Cache ALGORITMA PENGGANTIAN CACHE Least Frequently Used (LFU) Algortihm: Algoritma ini memilih suatu blok yang telah digunakan CPU yang paling sedikit. Least Recently Used (LRU) Algortihm: Algoritma ini memilih item yg telah digunakan CPU yg paling sedikit yg baru lalu (terakhir). Asumsinya adalah bahwa cara serupa akan berlanjut dan tidak mungkin dibutuhkan segera.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

72

Memori Cache KEBIJAKAN PENULISAN CACHEAnggap CPU sedang mengeksekusi instruksi ADD yg hasilnya disimpan pd lokasi MU. Apakah hasilnya disimpan pd MU atau MC? Jika alamat hasil (operand) tidak sedang dipetakan di dlm MC, maka jelas hasil akan disimpan di dlm MU. Di sisi lain, jika alamat pd saat sekarang dipetakan dlm MC, terdapat dua pilihan: 1. Penulisan hasil dlm MU dan MC. Kebijakan ini dikenal sebagai write-through policy. 2. Penulisan hasil hanya dlm MC, tetapi ditandai sebuah flag dlm cache untuk mengingatkan kesesuaian isi MU adalah usang (obsolete). Ke depan, kapanpun isi dlm MC akan diganti, cukup jika disimpan dlm MU pada saat itu. Kebijakan ini dikenal sebagai write-back policy.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

73

Memori Cache KEBIJAKAN PENULISAN CACHE Write-Through Policy Write-through policy sederhana dan tidak berteletele dalam implementasi. Tetapi memerlukan satu akses MU setiap saat ada keperluan penulisan. Karena itu, memperlambat eksekusi program. Juga kadang-kadang terjadi bahwa apa yg disimpan dlm MU hanyalah suatu intermediate result yg segera dibawa ke dlm cache atau diperbarui. Sehinga waktu yg tidak dibutuhkan digunakan dlm penyimpanan item tsb dlm MU.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

74

Memori Cache KEBIJAKAN PENULISAN CACHE Write-Back Policy Write-back policy menghemat waktu karena penulisan dlm MU tidak dilakukan pada setiap operasi penulisan. Item tertentu mungkin tidak pernah ditulis dlm MU di mana tergantung pada instruksi selanjutnya. Hanya bila item harus dihapus dari cache, dia ditulis ke dlm MU. Apakah penghapusan akan terjadi atau tidak, tidak diketahui saat permulaan. Tergantung pada instruksi-instruksi selanjutnya.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

75

Urutan Pembacaan Memori

Syahrul's handout: just for internal students

76

Urutan Penulisan Memori

Syahrul's handout: just for internal students

77

Memori Cache PERFORMA CACHE DAN HIT RATE

Desain MC dilakukan karena pertimbangan biaya dan performa.Paramater-parameter utama dalam desain MC adalah: Kapasitas MC Ukuran baris cache (ukuran blok cache) Ukuran set

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

78

Memori Cache PERFORMA CACHE DAN HIT RATEKapasitas Memori Cache: Peningkatan biaya sebanding dgn kapasitas. Kenyataannya, ada biaya tambahan yg tak terlihat karena decoding dan sirkuit kontrol lainnya. Karena itu, diinginkan menjaga kapasitas memori cache sekecil mungkin. Ukuran Baris Cache: Jika ukuran baris besar, membantu mengurangi jumlah pengaksesan memori utama. Tetapi ukuran baris yg besar mengurangi jumlah blok yg dapat dimuat dlm memori cache. Karena itu ukuran sebaiknya dipilih setelah studi yg hati-hati dari sifat berbagai ukuran blok. Ukuran Set: Baris yg lebih pd setiap set, hit rate menjadi lebih baik. Tetapi ukuran set yg terlalu besar, meningkatkan biaya karena sirkuti bertambah untuk kesesuaian tag (tag match).Syahrul's handout: just for internal students

Syahruls handout: just for internal students

79

Memori Cache PERFORMA CACHE DAN HIT RATE Hit rate idealnya 1 agar setiap pengaksesan MU oleh prosesor dilayani oleh MC dan tidak ada akses MU yg diperlukan secara keseluruhan. Secara praktis, tidak mungkin tercapai, karenanya dicoba hit rate mendekati 1. Desain sangat buruk jika hit rate mendekati 0. Ini artinya pengaksesan MU sangat banyak. Hit rate 0 artinya semua hasil pengaksesan MU oleh prosesor adalah MISS. Walaupun parameterparameter desain tertentu membantu dalam pencapaian hit rate mendekati 1, tingkah laku program aplikasi dapat dgn mudah mengganggu hit rate. Syahrul's handout: just Syahruls handout: just for internal students for internal students 80

Memori Cache CACHE MENYATU dan CACHE TERPISAH Memori cache ada 2 jenis: 1. Cache menyatu (unified cache): menyimpan instruksi dan data bersatu. Mikroprosesor INTEL 80486 mempunyai cache-menyatu. 2. Cache terpisah (split cache): mempunyai cache data dan instruksi yang terpisah. Mikroprosesor INTEL Pentium mempunyai cache terpisah yaitu 8 KB untuk instruksi dan 8 KB untuk data.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

81

Arsitektur cache-menyatu mikroprosesor INTEL 80486

Syahrul's handout: just for internal students

82

Arsitektur cache-terpisah pada mikroprosesor INTEL Pentium

Syahrul's handout: just for internal students

83

Memori Cache CACHE MENYATU dan CACHE TERPISAH Cache-menyatu mudah diimplementasikan tetapi menawarkan hit rate yg kecil secara khusus pada CPU pipeline Memori cache-menyatu mengawasi beberapa permintaan tunda, menyebabkan delay, hingga akses yg sekarang selesai. Cache-terpisah menyediakan paralelisme. Keduanya dapat diakses secara paralel. Hal ini mengurangi waktu tunggu dan meningkatkan performa.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

84

Memori Cache CACHE MULTI-LEVEL Beberapa komputer menggunakan sistem MC 2-level atau 3-level, bila ukuran MU nya besar. Cache yg letaknya terdekat dgn prosesor disebut cache level-1 (L1) atau cache primer. Cache level berikutnya disebut cache level-2 (L2) atau cache sekunder. Pada umumnya prosesor menggabungkan cache multi-level dlm satu chip.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

85

Memori Cache CACHE MULTI-LEVEL

Memori cache 2-level

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

86

Arsitektur cache dua level pada Pentium Pro

Retire unit

Syahrul's handout: just for internal students

87

Memori Maya

Virtual Memory

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

88

Syahrul's handout: just for internal students

89

Memori MayaMemori maya (virtual memory) dikehendaki dalam dua kasus, untuk mengeksekusi program-program besar yang mempunyai ukuran melebihi ukuran fisik memori: Ruang memori utama tidak menjalankan program besar. cukup untuk

Ukuran fisik memori utama dibiarkan kecil untuk mengurangi biaya walaupun prosesor mempunyai ruang memori logik yang besar.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

90

Memori MayaPada kasus pertama (dahulu) digunakan memori virtual karena komputer pada waktu itu menawarkan ruang memori utama yang terbatas. Tetapi, sekarang ruang memori besar disediakan oleh komputer dan karena itu kasus kedua merupakan alasan untuk mempunyai memori virtual.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

91

Memori MayaDalam sistem memori maya (MM), sistem operasi secara otomatis mengatur (manage) programprogram yg panjang. Program pemakai (user program) dpt lebih besar drpd kapasitas fisik MU.

Sistem operasi menyimpan semua program pd hard disk yg mempunyai kapasitas yg lebih besar drpd ukuran memori fisik. Pd satu waktu, hanya beberapa bagian program yg dibawa ke dlm MU dari hard disk. Pada saat diperlukan, bagian yg tidak berada dlm MU dikirimdari hard disk, dan pd saat yg sama, bagian dr suatu program yg berada dlm MU dikeluarkan dr MU dan disimpan pada hard disk. Proses ini dikenal sebagai pertukaran (swapping).Syahrul's handout: just for internal students

Syahruls handout: just for internal students

92

Memori MayaDalam sistem MM, bila suatu program dieksekusi, swapping dilakukan setiap diperlukan pada suatu basis kontinyu (continuous basis). CPU mengambil instruksi dan data dari MU. Jika tidak tersedia dlm MU, perangkat keras membangkitkan interupsi khusus dikenal dgn virtual memory interrupt atau page fault.

Saat respon, sistem operasi me-load bagian program (berisi instruksi atau data yang diperlukan) dari hard disk drive ke MU.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

93

Memori MayaPage fault mirip interupsi tetapi dapat terjadi dlm suatu siklus instruksi. Setelah interupsi page fault dilayani, CPU akan melanjutkan pemrosesan instruksi yg dieksekusi secara parsial. Untuk mendukung MM, program tidak langsung mengalamati memori fisik. Bila membaca operand (data) atau instruksi, dia menyediakan alamat logika (logical address) dan perangkat keras MM menerjemahkannya menjadi alamat memori fisik yg ekivalen selama eksekusi. Translasi (penerjemahan) alamat Memory Management Unit (MMU).Syahrul's handout: just for internal students

dilakukan

oleh

Syahruls handout: just for internal students

94

Memori Maya

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

95

Memori MayaAda beberapa metoda yang digunakan untuk translasi alamat atau pemetaan, 3 yg populer adalah: Associative Mapping Scheme Mapping by address Scheme dan Segment Map Table Scheme Pada Associative Mapping Scheme, digunakan suatu memori khusus yg dikenal dgn associative memory atau content address memory. Setiap entry pada memori ini berisi alamat logika dan alamat fisik ekivalen. Pengalamatan memori ini dilakukan menggunakan alamat logika.

Syahrul's handout: just for internal students

Syahruls handout: just for internal students

96

Memori MayaKEUNTUNGAN MEMORI VIRTUAL

Ukuran program tidak dibatasi ukuran memori fisik Pemakai tidak perlu mengestimasi memori. Alokasi memori dilakukan otomatis sesuai permintaan program. Manual folding (over lay) dieliminasi menjalankan program-progam besar. alokasi secara untuk

Program dapat di-load dalam suatu area memori fisik karena program tidak menggunakan alamat fisik.Syahrul's handout: just for internal students

Syahruls handout: just for internal students

97

HALAMAN INI SENGAJA DIKOSONGKAN

Syahrul's handout: just for internal students

98

Hirarki Memori: Bagaimana cara kerjanya? Locality!Probability of reference 2n 1

0

Address Space

Temporal Locality (Locality in Time): Menjaga item data yg diakses terakhir berada di dekat prosesor Spatial Locality (Locality in Space): Menyalin block yg mengandung word yg berdekatan ke level ataske Prosesor Memori Level AtasBlk X

Memori Level bawah

Dari ProsesorSyahrul's handout: just for internal students

Blk Y

99

Example: 1 KB Direct Mapped Cache With 32 Byte Blocks Untuk Cache 2N byte : Bit teratas (32 - N) adalah selalu cache tag Bit M terbawah adalah Byte Select (ukuran Block = 2M )Alamat Block31 9 4 0 Ex: 0x00

Cache Tag

Example: 0x50

Cache IndexEx: 0x01

Byte Select

Stored as part of the cache state Valid Bit Cache Tag 0x50 Cache Data Byte 63

: :

Byte 31

Byte 1

Byte 0 0 Byte 33 Byte 32 1 2 3

:Syahrul's handout: just for internal students

:Byte 1023

:Byte 992 31

:

100

Hirarki Memori: Terminologi Hit: data berada dalam beberapa block pada level atas (mis: Block X) Hit Rate: the fraction of memory access found in the upper level Hit Time: Time to access the upper level which consists of RAM access time + Time to determine hit/miss Miss: data needs to be retrieve from a block in the lower level (Block Y) Miss Rate = 1 - (Hit Rate) Miss Penalty(Time): Time to replace a block in the upper level + Time to deliver the block the processor Hit Time > DRAM (Read/Write) Access Time 2:1; why? DRAM (Read/Write) Cycle Time : How frequent can you initiate an access? Analogy: A little kid can only ask his father for money on Saturday DRAM (Read/Write) Access Time: How quickly will you get what you want once you initiate an access? Analogy: As soon as he asks, his father will give him the money DRAM Bandwidth Limitation analogy: What happens if he runs out of money on Wednesday?Syahrul's handout: just for internal students

113

Increasing Bandwidth InterleavingAccess Pattern without Interleaving:CPU Memory

D1 available Start Access for D1 Start Access for D2

Access Pattern with 4-way Interleaving:

Memory Bank 0 Memory Bank 1

CPU

Memory Bank 2Access Bank 0 Memory Bank 3

Access Bank 1 Access Bank 2 Access Bank 3 We can Access Bank 0 againSyahrul's handout: just for internal students

114

Main Memory Performance Timing model 1 to send address, 4 for access time, 10 cycle time, 1 to send data Cache Block is 4 words Simple M.P. = 4 x (1 + 10 + 1) = 48 Wide M.P. = 1 + 10 + 1 = 12 Interleaved M.P. = 1 + 10 + 1 + 3 = 15

address0 4 8 12

address1 5 9 13

address2 6 10 14

address3 7 11 15

Bank 0Syahrul's handout: just for internal students

Bank 1

Bank 2

Bank 3

115