View
297
Download
13
Category
Tags:
Preview:
Citation preview
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
Recommended