PSD Series #4: Memory
1. Definisi 💻
Memory ialah sekumpulan cell penyimpanan, yang bisa digunakan untuk transfer informasi. Biasanya memori akan disusun dan memiliki baris dan kolom.
RAM (Random Access Memory) ialah memori yang bisa dibaca dan ditulis, dan kita bisa mengaksesnya secara cepat untuk setiap posisinya. (Bayangkan seperti Kaset jadul 📼, atau streaming youtube) Saat kita buffering perlu waktu untuk mengakses bagian waktu lain, kalau RAM, untuk setiap posisinya waktu aksesnya sama cepat. Oleh karena itu disebut Random Access Memory.
Memory Address, karena RAM itu biasanya ada kolom barisnya, tentunya butuh alamat yang ingin kita akses informasinya. Layaknya ArrayList yang kita pelajari saat DDP.
Data yang disimpan ada bit, byte, word. Satuan word bersifat dinamis dan bisa berubah sesuai spesifikasi.
Pada memory, ada dua operasi:
- Read (Load)
- Write (Store)
2. Random Access Memory
Random Access Memory disusun sebagai array of words. Indexnya ialah alamatnya. Penomorannya selalu dari 0 (Zero-Based), biasanya dari kiri atas, ke kanan, berlanjut ke bawah.

Pada memori dengan ukuran misalnya 256M × 16 artinya array tersebut berukuran 256MB = 228 bit (Perhatikan bahwa 1 Byte = 8 bit = 23 bit) dan mengandung word berukuran 16 bit. Sehingga alamatnya dapat dinyatakan dengan meng-encode ukuran array-nya.
Komponen RAM berukuran 2K × N bits (per word):
- K buah Input address
- 1 buah Sinyal Read/~Write
- N buah Data input
- N buah Data output
Untuk proses membaca dan menulis, pada dasarnya address harus disiapkan selama jangka waktu clock selama prosesnya berlangsung. Untuk baca tulis, butuh sinyal read/write, dan address tentunya. Data input hanya dibutuhkan saat proses write, selain itu Don’t cares.
Ada beberapa jenis RAM:
- Static - penyimpanan dilakukan pada latch, lebih cepat, namun membutuhkan banyak transistor, sehingga mahal. Setiap blocknya butuh enam transistor.
- Dynamic - penyimpanan disimpan menggunakan kapasitor dan muatan listrik, karena muatan yang disimpan dapat habis, perlu refresh secara berkala untuk mempertahankan muatan yang ada di dalam setiap kapasitor penyimpanan. Kecepatannya lebih lambat, namun kapasitasnya lebih murah. Hanya membutuhkan sebuah transistor setiap blocknya.
Jenis memori dibagi pula berdasarkan kebutuhannya akan listrik:
- Volatile - Informasi yang disimpan akan hilang bila tidak diberi listrik. Contohnya SRAM, DRAM.
- Non Volatile - Menyimpan informasi saat tidak diberi listrik Contohnya ROM, Harddisk. (Metode penyimpanannya dapat berupa magnetik, cahaya, atau cara lain seperti yang dipelajari saat Fisika Dasar) 💾
3. Storage Cell
Ram Cell
Berikut ialah contoh salah satu static RAM cell yang dibuat menggunakan S-R Latch.

Cara kerjanya intuitif, seperti S-R Latch biasa. Saat ingin melakukan proses Read/Write maka select RAM cell tersebut akan menyala. Bila tidak, maka Tentunya S-R akan selalu bernilai 0, begitu pula dengan C dan ~C.
Bila selectnya menyala, ada dua kasus :
- Bila write, ada dua kasus lagi yang sama dengan state table S-R Latch
- Bila data input 1, maka B bernilai 1, tentunya Latch akan di-set
- Bila data input 0, maka ~B bernilai 1, tentunya latch akan di-reset
- Bila read, maka B dan ~B bernilai 0, sehingga kedua S dan R meremember valuenya, dan C akan bernilai Q.
RAM Slice

Perhatikan bahwa apabila dikombinasikan hingga menjadi RAM slice secara utuh, segalanya akan menjadi jelas.
Sangat disarankan untuk mencoba membuat 4 × 1 RAM.
Perhatikan bahwa pada RAM slice akan terdapat N word select yang akan memilih dari 2N Ram cell.
Untuk membuat Integrated circuitnya, dapat dimodifikasi RAM Slice dengan menambahkan decoder dan 3-state buffer, pada bagian outputnya.
Cell Arrays and Coincident Selection
Karena decoder mahal, dapat disusun cell-cell tersebut secara dua dimensi. Seperti yang kita tahu, sisi persegi dengan luas N ialah √N. Jadi dapat ditambahkan :
- Word/Row Select - Memilih baris (Seperti matrix R, C)
- Bit/Column Select - Memilih kolom
- Sisanya intuitif dan sama seperti Ram Slice
- Profit. 👍
Sangat disarankan untuk mencoba membuat 4 × 4 RAM.
Berikut ilustrasinya.

RAM Integrated Circuits, 1 Word has > 1 Bit 🙂
Agar dapat dirubah tidak hanya satu RAM Cell setiap clocknya, dapat ditambahkan:
- Kurangi ukuran Bit/Column Select
- Tambahkan bit Data input dan Data output
- Sisanya intuitif dan sama seperti RAM Cell
- Perhatikan numbering dan sesuaikan dengan jumlah bit.
- Berhati-hati pula dengan numbering Data Input/Output. Semakin besar index, semakin dekat ke atas dan kiri maka pangkat semakin besar.
- Profit. 👍
Sangat disarankan untuk mencoba membuat 4 × 4 RAM, dengan 2 bit/word
Berikut ilustrasinya.
<img width = “300px” width = “300px”src=”https://i.ibb.co/C0fCmWk/2bit.jpg” alt=”2bit” border=”0”>
4. Larger, Wider, and Bigger Memories!
Ram Circuit yang tadinya dibuat, ada satu hal yang masih kita bingung. Chip Select. Saat mencoba, Chip Selectnya selalu hidup, tapi mengapa?
Kita dapat membuat circuit dari Array of RAM ICs (Integrated Circuit), dengan memanfaatkan Chip Select dari decoder, layaknya alamat chip yang disusun secara paralel, Berikut ilustrasinya.

- Berkembang searah baris, barisnya bertambah/larger (Intuisinya satu kolom dari semua baris dipilih (Satu buah chip))

- Berkembang searah kolom, kolomnya bertambah/wider (Intuisinya satu baris dari semua kolom dipilih (Sebagian dari semua chip))
Contoh : Memperbesar RAM 64K × 8 menjadi 256K × 16

5. Dynamic Ram (DRAM)
Dynamic RAM pada dasarnya sama dengan SRAM, bedanya komponen penyimpanannya menggunakan kapasitor sebagai penampung muatan dan transistor sebagai switch yang mengatur, charge, dan discharge muatan. Karena muatannya dapat leak, maka perlu dicharge secara periodik. Setiap kali dibaca, maka DRAM cell harus dicharge kembali, jika tidak maka data akan hilang. DRAM juga lebih padat dari SRAM, sehingga memakan lebih sedikit tempat.

Apabila muatannya mencapai tingkat tinggi tertentu, dapat dinyatakan menjadi 1, dan 0 sebaliknya. Dapat digunakan analogi, atau ibaratkan dengan pipa air, dimana capacitor sebagai tangki kecil, dan kerannya menjadi transistor. Karena kapasitansi row/column line yang besar, dinotasikan sebagai tangki besar dan pompanya yang dapat mengisi dan mengosongkan tangki tersebut dengan cepat. Perhatikan kondisi b saat kapasitor menyimpan 1 dan kondisi c saat kapasitor menyimpan 0. Karena kerannya tertutup, maka tangki kecilnya tidak terpengaruh dengan kondisi apapun.
Saat ingin menulis 1 ke dalam tangki kecil, maka kerannya dibuka dan pompanya mengisi tangki besar dan mengalirkan air ke tangki kecil hingga penuh. Begitu pula ketika ingin menulis 0.
Saat ingin membaca 0 dari tangki kecil, tangki besar dibuat dalam kondisi tengah tertentu, sehingga perubahan yang terjadi pada tangki besar karena perpindahan dari tangki kecil dapat diketahui. Perhatikan bahwa hal ini menyebabkan hilangnya nilai yang disimpan dalam kapasitor.
Untuk mengembalikan nilai tangki kecil yang penuh, akan dilakukan operasi yang mirip saat ingin menulis.
DRAM Cell model dilambangkan dengan D-Latch. Bit Slice DRAM hampir sama dengan bit slice SRAM, bedanya pada Dynamic RAM digunakan 3-state buffer untuk mengatur input dan outputnya. Digunakan pula amplifier untuk memperkuat perubahan tegangan menjadi sinyal logic yang bisa dimengerti.

Cell-Cell DRAM disusun menggunakan coincident selection. Ada row dan column address inputnya, untuk diselect cell mana yang ingin diakses. Adapula mekanisme refresh karena muatan DRAM Cell yang harus dicharge ulang secara periodik. Akan digunakan mekanisme refresh row-wise, sehingga dibutuhkan counter refresh, karena address yang diberikan row dulu. Apabila input Row dan Column Address diberikan, maka RAS dan CAS akan diisi dengan Address tersebut. Untuk melihat prosesnya lebih jelas, dapat dilihat pada slide halaman 35.
Leave a Comment