Storage

Teknologi dan Tren Penyimpanan

  • Teknologi dan Tren Penyimpanan

  • Lokalitas Referensi

  • Caching dalam Hirarki Memori

Memori Akses Acak (RAM)
  • Fitur Utama:

    • RAM biasanya dikemas sebagai chip.

    • Unit penyimpanan dasar biasanya adalah sel (satu bit per sel).

    • Beberapa chip RAM membentuk sebuah memori.

  • RAM Statis (SRAM)

    • Setiap sel menyimpan satu bit dengan rangkaian empat atau enam transistor.

    • Mempertahankan nilai tanpa batas waktu selama tetap diberi daya.

    • Relatif tidak sensitif terhadap gangguan listrik (EMI), radiasi, dll.

    • Lebih cepat dan lebih mahal daripada DRAM.

  • RAM Dinamis (DRAM)

    • Setiap sel menyimpan satu bit dengan sebuah kapasitor. Satu transistor digunakan untuk akses.

    • Nilai harus disegarkan setiap 10-100 ms.

    • Lebih sensitif terhadap gangguan (EMI, radiasi, …) daripada SRAM.

    • Lebih lambat dan lebih murah daripada SRAM.

Ringkasan SRAM vs DRAM

Fitur

SRAM

DRAM




Transistor

4 atau 6

1

Waktu Akses

1X

10X

Perlu Refresh

Tidak

Ya

EDC

Mungkin

Ya

Biaya

100x

1X

Aplikasi

Cache

Memori utama

Organisasi DRAM Konvensional
  • d x w DRAM:

    • dwdw total bit diorganisasikan sebagai d supercell dengan ukuran w bit.

    • Contoh: Chip DRAM 16 x 8

    • 16 supercell, masing-masing 8 bit.

Membaca Supercell DRAM (Contoh: 2,1)
  1. Langkah 1(a): Row access strobe (RAS) memilih baris 2.

  2. Langkah 1(b): Baris 2 disalin dari array DRAM ke buffer baris.

  3. Langkah 2(a): Column access strobe (CAS) memilih kolom 1.

  4. Langkah 2(b): Supercell (2,1) disalin dari buffer ke jalur data dan akhirnya kembali ke CPU.

Modul Memori
  • Contoh: Modul memori 64 MB terdiri dari delapan DRAM 8Mx8.

  • Doubleword 64-bit pada alamat memori utama A terdiri dari bit dari masing-masing delapan chip DRAM.

DRAM yang Ditingkatkan
  • Sel DRAM dasar tidak berubah sejak penemuannya pada tahun 1966.

  • Inti DRAM dengan logika antarmuka yang lebih baik dan I/O yang lebih cepat:

    • DRAM Sinkron (SDRAM)

    • Menggunakan sinyal clock konvensional alih-alih kontrol asinkron.

    • Memungkinkan penggunaan kembali alamat baris (misalnya, RAS, CAS, CAS, CAS).

  • DRAM sinkron laju data ganda (DDR SDRAM)

    • Double edge clocking mengirimkan dua bit per siklus per pin.

    • Berbagai jenis dibedakan oleh ukuran buffer prefetch kecil:

      • DDR (2 bit), DDR2 (4 bit), DDR3 (8 bit).

- Pada tahun 2010, menjadi standar untuk sebagian besar sistem server dan desktop
- Intel Core i7 hanya mendukung DDR3 SDRAM.
Memori Nonvolatile
  • DRAM dan SRAM adalah memori volatile; mereka kehilangan informasi jika dimatikan.

  • Memori nonvolatile mempertahankan nilai bahkan jika dimatikan.

    • Read-only memory (ROM): diprogram selama produksi.

    • Programmable ROM (PROM): dapat diprogram sekali.

    • Eraseable PROM (EPROM): dapat dihapus secara massal (UV, Sinar-X).

    • Electrically eraseable PROM (EEPROM): kemampuan penghapusan elektronik.

    • Flash memory: EEPROM dengan kemampuan penghapusan sebagian (sektor).

    • Aus setelah sekitar 100.000 penghapusan.

  • Kegunaan Memori Nonvolatile:

    • Program firmware disimpan dalam ROM (BIOS, pengendali untuk disk, kartu jaringan, akselerator grafis, subsistem keamanan,…).

    • Solid state disk (menggantikan disk berputar dalam thumb drive, ponsel pintar, pemutar mp3, tablet, laptop, …).

    • Cache disk.

Struktur Bus Tradisional yang Menghubungkan CPU dan Memori
  • Bus adalah kumpulan kabel paralel yang membawa alamat, data, dan sinyal kontrol.

  • Bus biasanya digunakan bersama oleh beberapa perangkat.

  • Komponen:

    • Chip CPU (ALU, File register, Antarmuka bus)

    • Memori utama

    • Jembatan I/O

    • Bus sistem

    • Bus memori

Transaksi Pembacaan Memori
  1. CPU menempatkan alamat A pada bus memori.

  2. Memori utama membaca A dari bus memori, mengambil word x, dan menempatkannya di bus.

  3. CPU membaca word x dari bus dan menyalinnya ke register %eax.

Transaksi Penulisan Memori
  1. CPU menempatkan alamat A pada bus. Memori utama membacanya dan menunggu word data yang sesuai tiba.

  2. CPU menempatkan word data y di bus.

  3. Memori utama membaca word data y dari bus dan menyimpannya di alamat A.

Apa yang Ada Di Dalam Hard Disk?
  • Komponen:

    • Spindle

    • Arm

    • Actuator

    • Platters

    • Elektronik (termasuk prosesor dan memori!)

    • Konektor SCSI

Geometri Disk
  • Disk terdiri dari platter, masing-masing dengan dua permukaan.

  • Setiap permukaan terdiri dari cincin konsentris yang disebut track.

  • Setiap track terdiri dari sektor yang dipisahkan oleh celah.

Geometri Disk (Tampilan Multi-Platter)
  • Track yang sejajar membentuk silinder.

Kapasitas Disk
  • Kapasitas: jumlah bit maksimum yang dapat disimpan.

  • Vendor menyatakan kapasitas dalam satuan gigabyte (GB), di mana 1 GB = 10910^9 Byte.

  • Kapasitas ditentukan oleh faktor teknologi ini:

    • Recording density (bit/in): jumlah bit yang dapat diperas ke dalam segmen 1 inci dari sebuah track.

    • Track density (track/in): jumlah track yang dapat diperas ke dalam segmen radial 1 inci.

    • Areal density (bit/in2^2): hasil perkalian dari recording density dan track density.

  • Disk modern membagi track menjadi subset yang tidak beririsan yang disebut recording zone.

    • Setiap track dalam sebuah zone memiliki jumlah sektor yang sama, ditentukan oleh keliling track terdalam.

    • Setiap zone memiliki jumlah sektor/track yang berbeda.

Menghitung Kapasitas Disk
  • Kapasitas = (# byte/sektor) x (rata-rata # sektor/track) x (# track/permukaan) x (# permukaan/platter) x (# platter/disk)

  • Contoh:

    • 512 byte/sektor

    • 300 sektor/track (rata-rata)

    • 20.000 track/permukaan

    • 2 permukaan/platter

    • 5 platter/disk

    • Kapasitas = 512x300x20000x2x5=30.720.000.000=30,72GB512 \text{x} 300 \text{x} 20000 \text{x} 2 \text{x} 5 = 30.720.000.000 = 30,72 \text{GB}

Operasi Disk (Tampilan Single-Platter)
  • Permukaan disk berputar pada tingkat rotasi tetap.

  • Dengan bergerak secara radial, arm dapat memposisikan head baca/tulis di atas track mana pun.

  • Head baca/tulis terpasang di ujung arm dan terbang di atas permukaan disk pada bantalan udara tipis.

Operasi Disk (Tampilan Multi-Platter)
  • Head baca/tulis bergerak serempak dari silinder ke silinder.

Akses Disk
  • Seek: Memindahkan head ke track yang benar.

  • Rotational Latency: Menunggu sektor yang diinginkan berputar di bawah head.

  • Data Transfer: Membaca atau menulis data di sektor.

Akses Disk – Komponen Waktu Layanan
  • Waktu layanan mencakup Seek time, Rotational Latency, dan Data Transfer time.

Waktu Akses Disk
  • Rata-rata waktu untuk mengakses beberapa sektor target diperkirakan oleh:

    • T<em>akses=T</em>avg seek+T<em>avg rotation+T</em>avg transferT<em>{\text{akses}} = T</em>{\text{avg seek}} + T<em>{\text{avg rotation}} + T</em>{\text{avg transfer}}

  • Seek time (T<em>avg seekT<em>{\text{avg seek}}) - Waktu untuk memposisikan head di atas silinder yang berisi sektor target. Khasnya T</em>avg seekT</em>{\text{avg seek}} adalah 3—9 ms.

  • Rotational latency (Tavg rotationT_{\text{avg rotation}}) - Waktu menunggu bit pertama dari sektor target lewat di bawah head baca/tulis.

    • Tavg rotation=1/2×1/RPMs×60detik/1menitT_{\text{avg rotation}} = 1/2 \times 1/\text{RPMs} \times 60 \,\text{detik}/1 \,\text{menit}

    • Khasnya Tavg rotation=7200RPMsT_{\text{avg rotation}} = 7200 \,\text{RPMs} (Revolusi Per Menit).

  • Transfer time (Tavg transferT_{\text{avg transfer}}) - Waktu untuk membaca bit di sektor target.

    • T_{\text{avg transfer}} = 1/\text{RPM} \times 1/(\text{rata-rata # sektor/track}) \times 60 \,\text{detik}/1 \,\text{menit}

Contoh Waktu Akses Disk
  • Diketahui:

    • Tingkat rotasi = 7.200 RPM

    • Rata-rata seek time = 9 ms.

    • Rata-rata # sektor/track = 400.

  • Diturunkan:

    • Tavg rotation=1/2×(60detik/7200RPM)×1000ms/detik=4msT_{\text{avg rotation}} = 1/2 \times (60 \,\text{detik}/7200 \,\text{RPM}) \times 1000 \,\text{ms/detik} = 4 \,\text{ms}.

    • Tavg transfer=60/7200RPM×1/400detik/track×1000ms/detik=0,02msT_{\text{avg transfer}} = 60/7200 \,\text{RPM} \times 1/400 \,\text{detik/track} \times 1000 \,\text{ms/detik} = 0,02 \,\text{ms}

    • Takses=9ms+4ms+0,02msT_{\text{akses}} = 9 \,\text{ms} + 4 \,\text{ms} + 0,02 \,\text{ms}

  • Poin penting:

    • Waktu akses didominasi oleh seek time dan rotational latency.

    • Bit pertama dalam sebuah sektor adalah yang paling mahal, sisanya gratis.

    • Waktu akses SRAM adalah sekitar 4 ns/doubleword, DRAM sekitar 60 ns

    • Disk sekitar 40.000 kali lebih lambat dari SRAM, 2.500 kali lebih lambat dari DRAM.

Blok Disk Logis
  • Disk modern menyajikan tampilan abstrak yang lebih sederhana dari geometri sektor yang kompleks:

    • Set sektor yang tersedia dimodelkan sebagai urutan blok logis berukuran b (0, 1, 2, …)

  • Pemetaan antara blok logis dan sektor (fisik) aktual

    • Dikelola oleh perangkat keras/firmware yang disebut disk controller.

    • Mengonversi permintaan untuk blok logis menjadi tripel (permukaan, track, sektor).

    • Memungkinkan controller untuk menyisihkan silinder cadangan untuk setiap zone.

    • Memperhitungkan perbedaan dalam “kapasitas terformat” dan “kapasitas maksimum”.

Bus I/O
  • Komponen:

    • Chip CPU (ALU, File register, Antarmuka bus)

    • Memori utama

    • Jembatan I/O

    • Bus sistem

    • Bus memori

    • Disk controller

    • Adaptor grafis

    • USB controller

    • Mouse, Keyboard, Monitor

    • Bus I/O disk

    • Slot ekspansi untuk perangkat lain seperti adaptor jaringan.

Membaca Sektor Disk
  1. CPU memulai pembacaan disk dengan menulis perintah, nomor blok logis, dan alamat memori tujuan ke port (alamat) yang terkait dengan disk controller.

  2. Disk controller membaca sektor dan melakukan transfer direct memory access (DMA) ke memori utama.

  3. Ketika transfer DMA selesai, disk controller memberi tahu CPU dengan interupsi (yaitu, menegaskan pin “interupsi” khusus pada CPU).

Solid State Disk (SSD)
  • Halaman: 512 hingga 4KB, Blok: 32 hingga 128 halaman

  • Data dibaca/ditulis dalam satuan halaman.

  • Halaman hanya dapat ditulis setelah bloknya dihapus

  • Sebuah blok aus setelah 100.000 penulisan berulang.

  • Flash translation layer mengelola pemetaan blok logis ke lokasi fisik dan pemerataan keausan.

Karakteristik Kinerja SSD
  • Sequential read tput: 550 MB/s

  • Sequential write tput: 470 MB/s

  • Random read tput: 365 MB/s

  • Random write tput: 303 MB/s

  • Rata-rata seq read time: 30 us

  • Rata-rata seq write time: 60 us

  • Sumber: Spesifikasi produk Intel SSD 730.

  • Akses sekuensial lebih cepat daripada akses acak

  • Tema umum dalam hirarki memori

  • Penulisan acak agak lebih lambat

  • Menghapus blok membutuhkan waktu yang lama (~1 ms)

  • Memodifikasi halaman blok mengharuskan semua halaman lain disalin ke blok baru

  • Pada SSD sebelumnya, celah baca/tulis jauh lebih besar.

Tradeoff SSD vs Disk Berputar
  • Keuntungan

    • Tidak ada bagian yang bergerak → lebih cepat, lebih sedikit daya, lebih kokoh

  • Kerugian

    • Memiliki potensi untuk aus

    • Dimitigasi oleh “wear leveling logic” di flash translation layer

    • Contohnya, Intel SSD 730 menjamin 128 petabyte (128x1015128 \text{x} 10^{15} byte) penulisan sebelum aus

  • Pada tahun 2015, sekitar 30 kali lebih mahal per byte

  • Aplikasi

    • Pemutar MP3, ponsel pintar, laptop

    • Mulai muncul di desktop dan server

Tren Penyimpanan
  • Tren dalam teknologi DRAM, SRAM, dan Disk dari tahun 1980 hingga 2010, menunjukkan perubahan dalam $/MB, waktu akses, dan ukuran tipikal.

  • Kecepatan terus meningkat pesat, sementara biaya menurun.

Tingkat Clock CPU
  • Tingkat clock CPU dari tahun 1980 hingga 2010, menunjukkan perubahan dalam tingkat clock, waktu siklus, core, dan waktu siklus efektif.

  • Menyoroti titik infleksi dalam sejarah komputer ketika desainer mencapai “Power Wall”.

Kesenjangan CPU-Memori
  • Kesenjangan antara DRAM, disk, dan kecepatan CPU semakin lebar.

  • Grafik yang menggambarkan peningkatan perbedaan antara waktu siklus CPU, waktu akses DRAM, waktu akses SSD, dan seek time Disk dari tahun 1985 hingga 2015.

Lokality untuk Menyelamatkan!
  • Lokalitas adalah kunci untuk menjembatani kesenjangan CPU-Memori.

Lokalitas
  • Prinsip Lokalitas: Program cenderung menggunakan data dan instruksi dengan alamat yang dekat atau sama dengan yang telah mereka gunakan baru-baru ini

  • Lokalitas temporal:

    • Item yang baru-baru ini direferensikan cenderung direferensikan lagi dalam waktu dekat

  • Lokalitas spasial:

    • Item dengan alamat terdekat cenderung direferensikan bersamaan dalam waktu

Contoh Lokalitas
  • Contoh kode:

sum = 0;
for (i = 0; i < n; i++)
  sum += a[i];
return sum;
  • Referensi data:

    • Mereferensikan elemen array secara berurutan (pola referensi stride-1)

    • Lokalitas spasial.

    • Mereferensikan variabel sum setiap iterasi

    • Lokalitas temporal.

  • Referensi instruksi:

    • Mereferensikan instruksi secara berurutan

    • Lokalitas spasial.

    • Berputar melalui loop berulang kali

    • Lokalitas temporal.

Estimasi Kualitatif Lokalitas

Klaim: Mampu melihat kode dan mendapatkan rasa kualitatif dari lokalitasnya adalah keterampilan kunci bagi seorang programmer profesional.

  • Contoh 1:

int sum_array_rows(int a[M][N]) {
  int i, j, sum = 0;
  for (i = 0; i < M; i++)
    for (j = 0; j < N; j++)
      sum += a[i][j];
  return sum;
}
  • Lokalitas yang baik sehubungan dengan array a.

  • Contoh 2:

int sum_array_cols(int a[M][N]) {
  int i, j, sum = 0;
  for (j = 0; j < N; j++)
    for (i = 0; i < M; i++)
      sum += a[i][j];
  return sum;
}
  • Lokalitas yang buruk sehubungan dengan array a.

  • Contoh 3:

int sum_array_3d(int a[M][N][N]) {
  int i, j, k, sum = 0;
  for (i = 0; i < N; i++)
    for (j = 0; j < N; j++)
      for (k = 0; k < M; k++)
        sum += a[k][i][j];
  return sum;
}
  • Permutasi loop untuk pola referensi stride-1.

Hirarki Memori
  • Beberapa sifat fundamental dan abadi dari perangkat keras dan perangkat lunak:

    • Teknologi penyimpanan cepat lebih mahal per byte, memiliki kapasitas yang lebih kecil, dan membutuhkan lebih banyak daya (panas!).

    • Kesenjangan antara CPU dan kecepatan memori utama semakin lebar.

    • Program yang ditulis dengan baik cenderung menunjukkan lokalitas yang baik.

  • Sifat-sifat fundamental ini saling melengkapi dengan indah.

  • Mereka menyarankan pendekatan untuk mengatur memori dan sistem penyimpanan yang dikenal sebagai hirarki memori.

Contoh Hirarki Memori
  • Tingkat:

    • Register (L0)

    • L1 cache (SRAM)

    • L2 cache (SRAM)

    • Memori utama (DRAM)

    • Penyimpanan sekunder lokal (disk lokal)

    • Penyimpanan sekunder jarak jauh (tape, sistem file terdistribusi, server Web)

  • Karakteristik:

    • Lebih kecil, lebih cepat, lebih mahal per byte pada tingkat yang lebih tinggi.

    • Lebih besar, lebih lambat, lebih murah per byte pada tingkat yang lebih rendah.

Cache
  • Cache: Perangkat penyimpanan yang lebih kecil dan lebih cepat yang bertindak sebagai area pementasan untuk subset data dalam perangkat yang lebih besar dan lebih lambat.

  • Ide mendasar dari hirarki memori:

    • Untuk setiap k, perangkat yang lebih cepat dan lebih kecil di tingkat k berfungsi sebagai cache untuk perangkat yang lebih besar dan lebih lambat di tingkat k+1.

  • Mengapa hirarki memori berfungsi?

    • Karena lokalitas, program cenderung mengakses data di tingkat k lebih sering daripada mereka mengakses data di tingkat k+1.

    • Dengan demikian, penyimpanan di tingkat k+1 dapat lebih lambat, dan dengan demikian lebih besar dan lebih murah per bit.

  • Ide Besar: Hirarki memori menciptakan kumpulan penyimpanan besar yang harganya sama dengan penyimpanan murah di dekat bagian bawah, tetapi yang menyajikan data ke program pada tingkat penyimpanan cepat di dekat bagian atas.

Konsep Cache Umum
  • Memori dipartisi menjadi blok.

  • Cache menyimpan subset dari blok ini.

  • Data disalin dalam unit transfer berukuran blok.

Konsep Cache Umum: Hit
  • Data dalam blok b dibutuhkan.

  • Blok b ada di cache: Hit!

Konsep Cache Umum: Miss
  • Data dalam blok b dibutuhkan.

  • Blok b tidak ada di cache: Miss!

  • Blok b diambil dari memori.

  • Blok b disimpan di cache.

    • Kebijakan penempatan: menentukan ke mana b pergi

    • Kebijakan penggantian: menentukan blok mana yang dikeluarkan (korban)

Konsep Caching Umum: Jenis-Jenis Cache Miss
  • Cold (compulsory) miss

    • Cold miss terjadi karena cache kosong.

  • Conflict miss

    • Sebagian besar cache membatasi blok di tingkat k+1 ke subset kecil (kadang-kadang singleton) dari posisi blok di tingkat k.

    • Contohnya, Blok i di tingkat k+1 harus ditempatkan di blok (i mod 4) di tingkat k.

    • Conflict miss terjadi ketika cache tingkat k cukup besar, tetapi beberapa objek data semuanya memetakan ke blok tingkat k yang sama.

    • Contohnya, Mereferensikan blok 0, 8, 0, 8, 0, 8, … akan selalu miss.

  • Capacity miss

    • Terjadi ketika set blok cache aktif (working set) lebih besar dari cache.

Contoh Caching dalam Hirarki
  • Caching terjadi di berbagai tingkatan dalam sistem komputer, dari perangkat keras hingga perangkat lunak.

  • Contohnya termasuk:

    • Register CPU menyimpan word dari L1 cache.

    • L1 cache menyimpan blok dari L2 cache.

    • L2 cache menyimpan blok dari memori utama.

    • Memori utama menyimpan halaman dari disk lokal (Virtual Memory).

    • Web browser menyimpan halaman web dari disk lokal (Browser cache).

Angka Latensi yang Harus Diketahui Setiap Programmer
  • Latensi kunci dalam sistem komputer, dinyatakan dalam nanodetik.

  • Contohnya termasuk:

    • Referensi L1 cache: 1ns

    • Branch mispredict: 3ns

    • Referensi L2 cache: 4ns

    • Mutex lock/unlock: 17ns

    • Referensi memori utama: 100ns

    • SSD random read: 16.000ns=16μs16.000 \,\text{ns} = 16 \,\mu\text{s}

    • Disk seek: 3.000.000ns3ms3.000.000 \,\text{ns} \approx 3 \,\text{ms}

  • Menyoroti perbedaan besar dalam waktu akses antara tingkat yang berbeda dari hirarki memori.

Ringkasan
  • Kesenjangan kecepatan antara CPU, memori, dan penyimpanan massal terus melebar.

  • Program yang ditulis dengan baik menunjukkan sifat yang disebut lokalitas.

  • Hirarki