Aplikasi cache memory pada komputer selalu digunakan teknik “mapping”, karena

Pertemuan ke- 5 Mapping Function

Struktur DMA (Direct Memory Access) Direct Memory Access (DMA) suatu metoda penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan CPU. Setelah men-set buffers, pointers, dan counters untuk perangkat I/O, device controller mentransfer blok data langsung ke penyimpanan tanpa campur tangan CPU. DMA digunakan untuk perangkat I/O dengan kecepatan tinggi. Hanya terdapat satu interupsi setiap blok, berbeda dengan perangkat yang mempunyai kecepatan rendah dimana interupsi terjadi untuk setiap byte (word).

Struktur DMA (Direct Memory Access) Gambar Struktur DMA

Struktur Penyimpanan Program komputer harus berada di memori utama (biasanya RAM) untuk dapat dijalankan. Memori utama adalah satu-satunya tempat penyimpanan yang dapat diakses secara langsung oleh prosesor. Idealnya program dan data secara keseluruhan dapat disimpan dalam memori utama secara permanen. Namun demikian hal ini tidak mungkin karena: Ukuran memori utama relatif kecil untuk dapat menyimpan data dan program secara keseluruhan. Memori utama bersifat volatile, tidak bisa menyimpan secara permanen, apabila komputer dimatikan maka data yang tersimpan di memori utama akan hilang.

Struktur Penyimpanan Gambar Hirarki Penyimpanan di Sistem Komputer

Pengertian cache memory Cache Memory Cache berasal dari kata cash. Dari istilah tersebut cache adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut cache memori adalah tempat menympan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat. Cache memori ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.

Fungsi dari Cache Memory 1. Mempercepat akses data pada komputer 2. Meringankan kerja processor 3. Mengurangi kebutuhan bandwidth memori program yang ditulis dalam blok terstruktur 4. Menjembatani komunikasi data antara CPU dan Harddisk

Level Memori Cache Cache memori ada tiga level yaitu L1, L2 dan L3. Cache memori level 1 (L1) adalah cache memori yang terletak dalam prosesor (cache internal). Cache ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb.

Level Memori Cache Cache level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun cache L2 ini memiliki kecepatan yang lebih rendah dari cache L1. Cache L2 terletak terpisah dengan prosesor atau disebut dengan cache eksternal.

Level Memori Cache Sedangkan cache level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari cache L2 dari masing-masing inti prosesor.

Letak Cache Memory L1 Cache Memory (Primary Cache, first cache, level one cache). Letak L1 cache menyatu dengan chip prosessor (berada di dalam keeping prosessor). Sehingga L1 Cache terintegrasi dengan chip prosessor

Letak Cache Memory L2 Cache Memory (Secondery cache, second level cache, level two cache). Letak dari L2 Cache, ada yang menyatu dengan chip prosessor, ada pula yang terletak di luar chip prosessor, yaitu didekat motherboard dekat posisi dudukan prosessor. Pada era prosessor intel 80486 atau sebelumnya, letak dari L2 cache memory kebanyakan berada diluar chip prosessor. Chip cache terpisah dari prosessor. Namun sejak era Pentium, letak dari L2 sudah terintegrasi dengan chip prosessor. Posisinya terletak antara L1 cache dengan RAM (Memori Utama)

Letak Cache Memory L3 cache Memory Letak dari L3 cache ini masih belum di implementasikan secara umum pada semua jenis prosessor. Hanya prosessor tertentu saja yang memiliki L3 cache. Cache Memory yang letaknya terpisah dengan prosessor disebut memory non integrated atau diskrit (terpisah), sedangkan yang letaknya menyatu disebut integrated on-chip atau on-die(menyatu)

Kapan Cache Memory Digunakan 1. Jika prosesor membutuhkan suatu data, pertamatama ia akan mencarinya pada cache. Jika data ditemukan, prosesor akan langsung membacanya dengan delay yang sangat kecil. 2. Tetapi jika data yang dicari tidak ditemukan, prosesor akan mencarinya pada RAM yang kecepatannya lebih rendah. 3. Pada umumnya, cache dapat menyediakan data yang dibutuhkan oleh prosesor sehingga pengaruh kerja RAM yang lambat dapat dikurangi. 4. Dengan cara ini maka memory bandwidth akan naik dan kerja prosesor menjadi lebih efisien.

Kapan Cache Memory Digunakan 5. Selain itu kapasitas memori cache yang semakin besar juga akan meningkatkan kecepatan kerja komputer secara keseluruhan. 6. Dua jenis cache yang sering digunakan dalam dunia komputer adalah memory caching dan disk caching. Implementasinya dapat berupa sebuah bagian khusus dari memori utama komputer atau sebuah media penyimpanan data khusus yang berkecepatan tinggi. Implementasi memory caching sering disebut sebagai memory cache dan tersusun dari memori komputer jenis SDRAM yang berkecepatan tinggi. Sedangkan implementasi disk caching menggunakan sebagian dari memori komputer.

Cara Kerja Memory Cache 1. Proses transfer data dari/ke memory utama ke/dari register CPU dilakukan per karakter, padahal kecepatan register dengan memory berbeda cukup jauh. Untuk itu agar CPU tidak menganggur terlalu lama digunakan bantuan cache sebagai perantara CPU dengan memory.

Cara Kerja Memory Cache 2. Pengiriman dari/ke cache ke /dari CPU dilakukan per karakter, sedangkan pengiriman data dari/ke cache ke/dari memory dilakukan perblok/

Cara Kerja Memory Cache CPU Word Transfer / per karakter Cache Memory Utama Blok Transfer

Jenis Cache Ada dua jenis cache yaitu : Software cache (caching disk controller) : akan mempercepat akses data pada disk dengan menyimpan data yang baru saja digunakan dalam memory. Hardware cache (on-the-board cache) : akan mempercepat akses memory itu sendiri dengan menyimpan data yang baru saja digunakan dalam memory yang lebih cepat lagi.

Gambar Chace

Istilah penting yang berhubungan Cache Cache hit, jika data yang diminta oleh unit yang lebih tinggi dan ada dalam cache disebut hit. Permintaan dapat dilayani dengan cepat. Maksud urutan unit dari rendah hingga tinggi yaitu: Streamer Hardisk Memori Second Level First level CPU cache. Cache miss, bila data yang diminta tidak ada dalam cache, harus diambil dari unit dibawahnya yang cukup memakan waktu. Ini disebut miss (gagal) Burst mode, dalam modus cepat ini cache mengambil banyak data sekaligus dari unit dibawahnya. Ia mengambil lebih dari yang dibutuhkan dengan asumsi, data yang diminta berikutnya letaknya berdekatan.

Istilah penting yang berhubungan Cache LRU (Least Recently Used) adalah algoritma penggantian cache. COAST, Cache on the stick adalah bentuk khusus L2, yang dapat diganti-ganti seperti RAM dan ditempatkan pada modul. DRAM, memori dinamik ( Dynamic Random Access Memory ) adalah bentuk yang paling umum. DRAM hanya menggunakan sebuah kapasitor untuk menyimpan, sehingga kecil dan murah untuk kapasitas besar. Kekurangannya: kecepatannya tidak begitu tinggi.

Istilah penting yang berhubungan Cache SRAM, memori statik (Static RAM) ini menggunakan sakelar elektronik (flip-flop) untuk menyimpan. secara teknis flipflop pada RAM lebih rumit dari kapasitor pada DRAM. Karena lebih cepat, SRAM biasanya digunakan untuk cache L1 atau L2. SDRAM, memori dinamik tersinkronisasi (Synchronous DRAM) merupakan perkembangan lebih lanjut dari DRAM. Akses pada memori disinkronkan dengan frekuensi sistem prosesor sehingga menghemat waktu. Pada motherboard modern, SDRAM berfungsi sebagai pengganti langsung DRAM. First level cache (L1), ini tingkat cache teratas dalam hirarki, dengan kapasitas memori terkecil, termahal dan tercepat.

Istilah penting yang berhubungan Cache Second level cache (L2), cache level dua ini memiliki kapasitas lebih besar dari L1, tetapi lebih lambat dan murah. Cache L2 masih lebih cepat dibandingkan dengan RAM. Write back (WB), cache digunakan tidak hanya saat membaca, tetapi juga dalam proses menulis. Write through (WT), mementingkan keamanan: cache hanya digunakan saat membaca, sedangkan untuk menulis ditunggu hingga memori yang dituju selesai menulis.

Istilah penting yang berhubungan Cache Jika segmen yang aktif dari suatu program dapat ditempatkan pada cache memory dengan akses yang sangat cepat, maka waktu eksekusi dapat dikurangi sebesar besarnya. Biasanya cache dapat menyimpan sejumlah blok pada suatu saat. Namun jumlah ini jauh lebih sedikit dengan jumlah blok yang ada pada memory utama. Hubungan antara blok blok yang ada pada cache dengan blok blok yang ada pada memory utama dispesifikasikan dengan menggunakan fungsi pemetaan (mapping function).

Fungsi Pemetaan (Mapping Function) Direct-Mapped Cache Cara paling mudah untuk menentukan lokasi pada cache yang mana blok blok pada memory utama disimpan menggunakan teknik direct-mapping. Pada teknik ini, sebuah blok dari memory utama dipetakan ke sebuah blok di cache dengan memperhatikan besaran kelipatan modulo.

Menentukan Besarnya J-Modulo Besarnya J-Modulo menggunakan besaran bilangan 2 pangkat n.

Direct-Mapped Cache Contoh : Sebuah cache berisi 128 blok, dan memory utama mempunyai besar 5 kali dari cache. Untuk menentukan lokasi blok mana saja yang dapat ditempati di cache oleh blok blok dari memory utama tersebut, maka :

Direct-Mapped Cache Blok 0, 128, 256, 512, 1024, 2048, ditempatkan di blok 0 pada cache Blok 1, 129, 257, 513, 1025, 2049, ditempatkan di blok 1 pada cache Blok 2, 130, 258, 514, 1026, 2050, ditempatkan di blok 2 pada cache Blok 3, 131, 259, 515, 1027, 2051, ditempatkan di blok 3 pada cache Blok 4, 132, 260, 516, 1028, 2052, ditempatkan di blok 4 pada cache Blok 5, 133, 261, 517, 1029, 2052, ditempatkan di blok 5 pada cache Blok 6, 134, 262, 518, 1030, 2053, ditempatkan di blok 6 pada cache Blok 7, 135, 263, 519, 2031, 2054, ditempatkan diblok 7 pada cache Dan seterusnya sampai pada blok Blok 127, 255, 383, 639, 2151, 2174, ditempatkan di blok 127 pada cache.

Direct-Mapped Cache Menentukan jumlah blok pada cache = 128 = besarnya J-Modulo Jika jumlah cache = 128, maka blok blok di cache mulai diberi nomor mulai dari 0 127 Jika jumlah blok di RAM 5 kali lebih besar, maka jumlah blok di RAM = 2 pangkat 12 = 4096. Jika jumlah blok di RAM = 4096, maka blok blok di RAM diberi nomor mulai dari 0-4095

Direct-Mapped Cache Teknik mapping blok dari RAM ke cache dilakukan dengan mengambil: Blok 0, 128, 256, 512, 1024, 2048 ke blok 0 di cache Blok 1, 129, 257, 513, 1025, 2049 ke blok 1 di cache Dan seterusnya sampai pada blok 127, 255, 383, 729, 1151, 2175 ke blok 127 di cache

Direct-Mapped Cache Cache Memory Utama Ket : Pembagian gambar Blok pada Memory utama berdasarkan J-modulo. Jumlah blok di memory = 2 pangkat 12 = 4096 blok.

Direct Mapped Cache Tugas1 Jika diketahui sebuah komputer menggunakan metode direct mapped cache untuk transfer data, dengan J Modulo 2 pangkat 6 dan jumlah blok di memory 5 kali lebih besar. a) Gambarkan pemetaannya! b) Tuliskan hasil transfer blok dari RAM ke Cache pada blok 16 c) Hitung Total Blok yang ditransfer dari RAM ke Cache

Tugas2 Direct Mapped Cache Jika diketahui sebuah komputer menggunakan metode direct mapped cache untuk transfer data, dengan J Modulo 2 pangkat 5 dan jumlah blok di memory 5 kali lebih besar. a) Gambarkan pemetaannya! b) Tuliskan hasil transfer blok dari RAM ke Cache pada blok 0 dan blok 8 c) Hitung Total Blok yang ditransfer dari RAM ke Cache d) Hitung Sisa Blok yang belum di transfer ke Cache

Tugas 3 Direct Mapped Cache Jika diketahui sebuah komputer menggunakan metode direct mapped cache untuk transfer data, dengan modulo 2 pangkat 4 dan jumlah blok di memory 6 kali lebih besar. a) Gambarkan pemetaannya! b) Tuliskan hasil transfer blok dari RAM ke Cache pada blok 1 dan blok 4 c) Hitung Total Blok yang ditransfer dari RAM ke Cache d) Hitung Sisa Blok yang belum di transfer ke Cache