Jump to content

SRAM & DRAM

From Haidhi Wiki
Revision as of 04:01, 12 October 2026 by SanzSkuy (talk | contribs) (Created page with "== Pendahuluan == Pada model sederhana, sistem komputer terdiri dari '''CPU''' dan '''memory system''' yang berupa array linear byte, dengan waktu akses konstan untuk setiap lokasi. Model ini efektif sampai batas tertentu, tetapi '''tidak mencerminkan cara kerja sistem modern'''. Dalam praktiknya, memory system adalah '''hierarki perangkat penyimpanan''' dengan kapasitas, biaya, dan waktu akses yang berbeda-beda. === Level hierarki (atas ke bawah) === # '''Register C...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Pendahuluan

Pada model sederhana, sistem komputer terdiri dari CPU dan memory system yang berupa array linear byte, dengan waktu akses konstan untuk setiap lokasi. Model ini efektif sampai batas tertentu, tetapi tidak mencerminkan cara kerja sistem modern.

Dalam praktiknya, memory system adalah hierarki perangkat penyimpanan dengan kapasitas, biaya, dan waktu akses yang berbeda-beda.

Level hierarki (atas ke bawah)

  1. Register CPU: menyimpan data yang paling sering dipakai
  2. Cache memory (SRAM): kecil dan cepat, menjadi staging area untuk subset data/instruksi di main memory
  3. Main memory (DRAM): lebih besar tetapi lambat, menjadi staging area untuk data di disk
  4. Disk: sangat besar dan sangat lambat, bisa menjadi staging area untuk data di disk/tape mesin lain lewat jaringan

Semakin ke bawah: makin besar, makin murah per bit, makin lambat.

Kenapa hierarki ini bekerja?

Program yang ditulis dengan baik cenderung mengakses level atas lebih sering daripada level di bawahnya. Akibatnya level bawah boleh lambat (sehingga besar dan murah). Efek akhirnya: kapasitas dan biaya seperti storage paling bawah, tetapi kecepatan seperti storage paling atas.

Waktu akses

Lokasi data Waktu akses
Register 0 cycle
Cache 4 sampai 75 cycle
Main memory ratusan cycle
Disk puluhan juta cycle

Locality

Ide sentral bab ini. Program dengan good locality:

  • mengakses data yang sama berulang-ulang (temporal locality), atau
  • mengakses data yang berdekatan (spatial locality)

Program dengan locality bagus lebih banyak dilayani level atas, sehingga lebih cepat. Contoh: pada sistem Core i7, beberapa kernel perkalian matriks dengan jumlah operasi aritmetika yang sama bisa berbeda kecepatan hampir 40x hanya karena locality-nya.

Roadmap bab

  • Teknologi penyimpanan dasar: SRAM, DRAM, ROM, rotating disk, SSD
  • Organisasi menjadi hierarki, dengan fokus pada cache (paling berdampak ke performa aplikasi)
  • Menganalisis dan memperbaiki locality program C
  • Memory mountain: karakterisasi performa hierarki memori sebagai fungsi dari locality

6.1 Storage Technologies

Kemajuan teknologi komputer sangat dipengaruhi kemajuan teknologi storage. IBM PC-XT (1982) memiliki disk 10 MB. Pada 2015, mesin tipikal punya kapasitas disk sekitar 300.000x lebih besar, dan kapasitas naik 2x tiap dua tahun.

6.1.1 Random Access Memory (RAM)

RAM terdiri dari dua varian:

  • SRAM (Static RAM): lebih cepat dan jauh lebih mahal. Dipakai untuk cache memory (di dalam maupun di luar chip CPU).
  • DRAM (Dynamic RAM): lebih lambat dan murah. Dipakai untuk main memory dan frame buffer sistem grafis.

Static RAM (SRAM)

  • Menyimpan tiap bit dalam sel bistable yang terdiri dari 6 transistor.
  • Sirkuit punya dua konfigurasi tegangan stabil (dua state). State lain bersifat tidak stabil dan akan bergerak cepat ke salah satu state stabil.
  • Analogi: inverted pendulum (pendulum terbalik)
    • Miring penuh ke kiri: stabil
    • Miring penuh ke kanan: stabil
    • Tegak lurus: metastable. Secara teori bisa bertahan, tetapi gangguan sekecil apa pun membuatnya jatuh dan tidak kembali ke posisi tegak.
  • Selama ada daya (power), nilai SRAM bertahan tanpa batas. Gangguan seperti noise listrik akan hilang dengan sendirinya: sirkuit kembali ke nilai stabil.

Perbandingan SRAM vs DRAM (Figure 6.2)

Transistor per bit Waktu akses relatif Persistent? Sensitive? Biaya relatif Pemakaian
SRAM 6 1x Ya Tidak 1.000x Cache memory
DRAM 1 10x Tidak Ya 1x Main memory, frame buffer

Catatan istilah:

  • Biaya = biaya per bit penyimpanan. Sebagian besar ditentukan oleh luas area silikon, sehingga SRAM (6 transistor/bit) jauh lebih mahal daripada DRAM (1 transistor/bit).
  • Persistent = nilai bertahan selama chip dialiri daya, tanpa perlu di-refresh. Bukan berarti data bertahan saat listrik mati (SRAM dan DRAM keduanya volatile).
  • Sensitive = rentan terhadap gangguan (noise). DRAM menyimpan bit sebagai muatan di kapasitor yang bocor pelan-pelan, sehingga perlu di-refresh berkala.

Conventional DRAMs

Sel (bit) dalam chip DRAM dibagi menjadi d supercell, masing-masing terdiri dari w sel DRAM.

  • Chip d × w menyimpan total d·w bit.
  • Supercell disusun sebagai array persegi panjang dengan r baris dan c kolom, dengan r·c = d.
  • Alamat supercell berbentuk (i, j): i = baris, j = kolom.

Catatan terminologi: komunitas storage tidak punya nama baku untuk elemen array DRAM. Arsitek komputer menyebutnya "cell", perancang sirkuit menyebutnya "word". Buku ini memakai istilah netral supercell.

Contoh: DRAM 16 × 8 (Figure 6.3)
  • d = 16 supercell, w = 8 bit per supercell, total 128 bit
  • r = 4 baris, c = 4 kolom
  • Supercell berwarna pada alamat (2, 1)

Informasi keluar-masuk chip lewat pin (konektor eksternal), dan tiap pin membawa sinyal 1 bit:

  • Pin data: 8 pin, mentransfer 1 byte sekaligus
  • Pin addr: 2 pin, membawa alamat baris atau kolom (2 bit)
  • (Pin kontrol tidak ditampilkan)

Chip DRAM dihubungkan ke memory controller, yaitu sirkuit yang dapat mentransfer w bit sekaligus ke/dari chip, lalu terhubung ke CPU.

Membaca supercell (i, j)

Dilakukan dalam dua langkah (Figure 6.4):

  1. RAS (Row Access Strobe): controller mengirim alamat baris i. DRAM menyalin seluruh isi baris i ke internal row buffer.
  2. CAS (Column Access Strobe): controller mengirim alamat kolom j. DRAM mengambil supercell (i, j) dari row buffer, lalu mengirim w bit-nya ke controller.

RAS dan CAS berbagi pin addr yang sama, sehingga alamat harus dikirim berurutan.

Contoh membaca supercell (2, 1) pada chip 16 × 8:

  1. Controller kirim RAS = 2, maka seluruh baris 2 disalin ke row buffer
  2. Controller kirim CAS = 1, maka 8 bit di supercell (2, 1) dikirim ke controller
Internal row buffer

Penyimpanan kecil di dalam chip DRAM yang muat satu baris penuh supercell. Fungsinya sebagai tempat penampung baris yang sedang diakses. Supercell yang diminta dipilih dari row buffer, bukan langsung dari array utama.

Kenapa array 2D, bukan linear?
  • Keuntungan: jumlah pin addr berkurang. Contoh: 16 supercell linear (alamat 0 sampai 15) butuh 4 pin addr, sedangkan susunan 4 × 4 cukup 2 pin.
  • Kerugian: alamat dikirim dalam dua tahap (RAS lalu CAS), sehingga waktu akses bertambah.

Rumus Ringkas

Yang ditanya Rumus
Total bit d × w
Jumlah pin data w
Jumlah pin addr log2(max(r, c))
Supercell disalin saat RAS c (satu baris penuh)
Ukuran row buffer c × w bit

Contoh Soal

Contoh 1: DRAM 64 × 4 (8 baris × 8 kolom)

  • Total bit = 64 × 4 = 256 bit
  • Pin data = 4
  • Pin addr: 8 baris butuh 3 bit, maka 3 pin
  • Baca (5, 3): RAS = 5 (baris 5 ke row buffer), lalu CAS = 3 (kirim 4 bit)

Contoh 2: DRAM 256 × 8 (16 × 16)

  • Total bit = 256 × 8 = 2048 bit
  • Pin data = 8
  • Pin addr = log216 = 4 pin (jika linear: log2256 = 8 pin)

Contoh 3: DRAM 64 × 16 (8 × 8)

  • Total bit = 1024 bit
  • Pin data = 16 (ditentukan oleh w, bukan selalu 8)
  • Pin addr = 3
  • Baca (6, 2): RAS = 6 (8 supercell masuk row buffer), lalu CAS = 2 (kirim 16 bit)

Contoh 4: DRAM 128 × 4 (16 baris × 8 kolom)

  • Total bit = 512 bit
  • Pin data = 4
  • Pin addr = 4 (baris butuh 4 bit, kolom butuh 3 bit, ambil yang terbesar karena pin dibagi)
  • Supercell disalin saat RAS = 8 (row buffer = 8 × 4 = 32 bit)

Poin Penting

  • Hierarki memori bekerja karena locality.
  • SRAM: cepat, stabil, mahal, untuk cache. DRAM: lambat, sensitif, murah, untuk main memory.
  • Pin data ditentukan oleh w, pin addr ditentukan oleh dimensi terbesar array.
  • Pembacaan DRAM: RAS (baris ke row buffer) lalu CAS (kolom dari row buffer).