Storage Technol
Random Access Memory memiliki 2 jenis bentuk yakni static dan dinamik. Static
Random access Memory (SRAM) menyimpan tiap bit pada bistable memeory cell yang tiap
sel nya diwujudkan dengan 6 transistor. SRAM dinilai lebih cepat namun memiliki cost yang
tinggi. Pada SRAM, selama power diberikan maka valuenya akan tetap indefinitely. Dinamic
RAM atau DRAM menyimpan bitnya pada kapasitor yang cukup kecil. Tidak seperti SRAM,
DRAM sangat mudah mengalami gangguan seperti tegangan atau cahaya. Biasanya dalam
desktop system, ia akan memiliki sedikit SRAM dan banyak DRAM.
Disk storage terdiri dari sekumpulan platter yang berotasi dengan kecepatan
tertentu. Disk ini merupakan workhouse storage device yang menyimpan data yang sangat
besar hingga ratusan atau ribuan gigabytes. Walau demikian ia membutuhkan waktu waktu
yang lebih lama untuk melakukan proses pembacaan dibandingkan dengan SRAM dan DRAM.
Ilustrasi Disk dan platternya
Untuk mengakses data pada pada disk terdapat 3 tahapan. Tahapan pertama yakni
peletakan posisi head pada proper track hal ini dikenal dengan nama seek dan membutuhkan
waktu selama seek time. Setelah seek maka kita harus menunggu sector yang diinginkan
mengalami rotate dibawah write/read head. Waktu penungguan ini dikenal sebagai
Rotational latency. Tahap ketiga adalah transfer time yakni waktu terjadinya transfer dari
bits pada sebuah block.
Locality
Locality merupakan kecenderungan dalam reference data item yang berada dekat
dengan recent reference data item. Hal ini dikenal sebgai principle of locality yang memiliki
dampak yang besar pada performance hardware dan software. Terdapat 2 bentuk lokalitas
yakni temporal locality dan spatial locality. Temporal locality berarti lokasi memori yang
direferensikan sekali kemungkinan akan direferensikan lagi beberapa kali dalam waktu dekat
masa depan. Sedangkan spatial locality jika lokasi memori direferensikan satu kali, maka
program cenderung merujuk lokasi memori terdekat dalam waktu dekat masa depan.
Dua bentuk lokalitas pada hardware adalah pada reference ke program data dan
lokalitas pada instruction fetch. Pada dasar untuk reference program data, maka kita ingin
melakukan pengaksesan data yang berada dekan dengan data yang diambil saat ini. Process
kedekatan antara reference data yang diinginkan dengan yang ricent saat ini merupakan
bentuk lokalitas yang diinginkan. Sedangkan pada Instruction memory kita juga dapat
mengevaluasi lokalitasnya apakah proses instruction fetch yang di reference ini saling
berdekatan.
Sejumlah konklusi terhadap lokalitas pada kasus program iterasi pencarian data
adalah sebagai berikut. Program yang berulang kali merujuk variabel yang sama memiliki
temporal locality yang baik. Untuk program dengan pola referensi langkah-k, semakin kecil
langkahnya, menandakan lebih baik lokalitas spasialnya. Program dengan pola referensi
stride-1 sudah bagus lokalitas spasial. Program yang memiliki memori besar dengan langkah
besar memiliki lokalitas spasial yang buruk. Loop memiliki lokalitas temporal dan spasial yang
baik sehubungan dengan instruction fetch. Semakin kecil loop body dan semakin besar
jumlah iterasi loop, semakin baik lokalitasnya.
Memory Hierarchy
Teknologi penyimpanan yang berbeda memiliki akses waktu yang sangat berbeda .
Teknologi yang lebih cepat harganya lebih mahal per byte daripada yang lebih lambat dan
milikikapasitas kurang. Sedangkan pada Perangkat lunak komputer. Program yang ditulis
dengan baik cenderung menunjukkan lokalitas yang baik. Dalam salah satu kebetulan yang
lebih bahagia dari komputasi, sifat - sifat mendasar ini perangkat keras dan perangkat lunak
saling melengkapi satu sama lain dengan indah. Mereka saling melengkapi alam
menyarankan pendekatan untuk mengatur sistem memori, yang dikenal sebagai memori
hierarki, yang digunakan di semua sistem komputer modern.
Cache berarti kita menggunakan storage yang kecil namun cepat yang berperan
sebagai suatu stage area untuk data yang tersimpan pada larger dan slower device. Proses
ini dikenal sebagai caching. Prosesnya adalah sebagai berikut
Pada dasar nya cache menyediakan sebuah device yang lebih kecil namun lebih cepat
diakses. Kemudian device ini akan melakukan pengkopian sebagian data dari devais yang
berada dibawahnya yang lebih besar namun memiliki waktu acces yang lebih lama. Dengan
demikian apabila kita memiliki nilai lokalitas yang baik maka pengambilan data tidak perlu
repot repot untuk turun jauh kebawah devais yang lambat karena data yang dibutuhkan
telah tersedia pada level diatasnya.
Cache hits terjadi jika data yang berada pada level k+1 telah dicache ke level k
sehingga data dapat langsung ditemukan pada level k. Sehingga program dapat secara
langsung membaca data dari level k tanpa perlu mengakses level k+1 yang memiliki waktu
akses yang lebi lama.
Cache Miss terjadi jika sebaliknya. Yakni saat sebuah data belum dicache ke level k
sehingga kita perlu melakukan akses ke level k+1. Ketika terjadi cache miss maka cache pada
level k akan mengambil blok yang menyimpan data tersebut dari level k+1. Dan
memungkinkan terjadi overwrite pada level k jika telah penuh.
Perhitungan performancy
CPU time dapat dibagi menjadi siklus clock yang dihabiskan CPU program dan clock cycle yang
dihabiskan CPU menunggu memori sistem.
The memory-stall clock cycles come primarily from cache misses, dan kita harus membuat
asumsi disini. Oleh sebab itu Memory-stall clock cycles didefinisikan
Dimana
Dan
Solusi
Contohnya
Find the AMAT for a processor with a 1 ns clock cycle time, a miss penalty of 20 clock cycles,
a miss rate of 0.05 misses per instruction, and a cache access time (including hit detection)
of 1 clock cycle. Assume that the read and write miss penalties are the same and ignore other
write stalls.
Solusi
Cache Memory and Mapping
Direct-Mapped Caches