Bagaimana cara kerja akses memori acak RAM?

10

HDD bekerja sebagian secara berurutan. Namun, RAM dikenal untuk akses memori acak, yang memungkinkan kecepatan akses memori yang sama untuk setiap lokasi di setiap waktu. Jadi, apa yang membuat RAM begitu istimewa? Bagaimana cara kerja akses memori acak? (Saya tahu bahwa DRAM bukan akses acak, dan berfungsi dengan cepat. Saya tidak yakin apa artinya ini juga.)

Dotcomio
sumber

Jawaban:

9

Sel-sel memori disusun dalam sebuah matriks

masukkan deskripsi gambar di sini

Ini adalah memori 16-bit, lebar 1 bit, sehingga diperlukan 4 baris alamat untuk mengatasi setiap bit individual. Itu adalah a3.. a0garis di sebelah kiri. a0dan a1masukkan demultiplexer hijau 2-ke-4. Demultiplexer input-N dapat memiliki 2 garis output N , dan input biner menunjukkan yang mana yang akan aktif. Itu pilih baris.N

Pilih kolom melakukan sesuatu yang serupa, tetapi menggunakan multiplexer untuk memilih 1 dari 2 garis N sebagai sinyal output. Jadi kombinasi pilih baris dan pilih kolom dapat menangani sel memori individu.N

Ini adalah Memori Akses Acak karena bit apa pun dapat diakses secara langsung, apa pun alamatnya. Dan itu berlaku untuk DRAM dan juga SRAM. SRAM membutuhkan lebih banyak perangkat keras untuk menyimpan sedikit (4 atau 6 FET) daripada DRAM yang ditunjukkan, yang hanya membutuhkan 1 FET per bit. Data disimpan dalam kapasitor. Kapasitor mengalami kebocoran, dan setelah beberapa waktu (sangat singkat!) Data akan hilang. Itu sebabnya DRAM perlu sering disegarkan: data terus dibaca dan ditulis ulang di antara akses. Ini menambahkan beberapa perangkat keras tambahan ke perangkat, tetapi cetakan DRAM masih jauh lebih kecil dari cetakan SRAM dengan kapasitas yang sama.

stevenvh
sumber
4

RAM sederhana dapat dinyatakan sebagai (Dari beberapa catatan): -

masukkan deskripsi gambar di sini

RAM diatur sebagai array kuadrat dari masing-masing bit. Ada dua decoder, satu baris dan satu decoder kolom, dan masing-masing sel memori bit hanya diaktifkan ketika baris dan kolomnya adalah satu. Dalam kasus RAM 256 bit, setiap decoder mengubah angka biner empat bit menjadi angka unary enam belas bit. Jadi, dalam susunan kuadrat dari sel-sel memori satu bit, hanya akan ada satu sel di mana baris dan kolom adalah satu. Setiap sel terhubung ke jalur baca / tulis dan data yang sama. Jalur data terhubung ke luar melalui buffer tri state dua arah, sehingga kecuali jika chip diaktifkan tidak ada data yang dapat masuk atau keluar.

Data Static RAM pada intinya memiliki sirkuit penguncian bistable (biasanya empat atau enam transistor) untuk menyimpan bit tunggal sementara Dynamic RAM menggunakan metode penyimpanan kapasitif untuk bit tunggal (hanya satu transistor dan kapasitor). Dengan demikian DRAM mampu memegang memori dengan cara yang lebih padat daripada SRAM. Karena memori kapasitif cenderung bocor, DRAM memerlukan kecepatan refresh yang lebih tinggi untuk mempertahankan informasi bit di dalam sel memori.

masukkan deskripsi gambar di sini

perilbrain
sumber
4

Jawaban lain telah mengukur bagaimana RAM bekerja secara internal, tetapi mereka belum menyebutkan bagaimana itu cocok dengan sistem. Jenis RAM yang paling sederhana untuk dipahami adalah RAM asinkron statis. Perangkat semacam itu memiliki sejumlah pin alamat, sejumlah pin data, dan beberapa pin kontrol yang bersama-sama memiliki tiga status yang menarik:

  1. Status siaga, di mana sinyal pada alamat dan pin data diabaikan, dan pin data 'mengambang'.
  2. Status penulisan, di mana perangkat akan terus-menerus mentransfer sinyal pada pin data (yang akan mengambang) ke lokasi memori yang diidentifikasi oleh pin alamat.
  3. Status baca, di mana perangkat akan terus berusaha untuk mengarahkan pin data dengan nilai terakhir ditulis ke lokasi memori yang diidentifikasi oleh pin alamat.

Chip memori statis yang khas akan memiliki beberapa batasan waktu, yang dapat dimodelkan secara efektif dengan mengatakan bahwa berbagai input mungkin berperilaku seolah-olah mereka memiliki berbagai penundaan (tidak harus konstan). Operasi baca dapat menyebabkan nilai sembarang (sampah) menjadi keluaran singkat pada pin data sebelum chip mulai mengeluarkan data yang benar. Untuk melakukan operasi penulisan, seseorang harus memberi makan chip alamat yang valid beberapa waktu sebelum menyatakan sinyal untuk memasukkan chip ke mode "tulis", dan seseorang harus memegang data yang benar pada pin data untuk beberapa waktu setelah chip dikeluarkan. dari "mode tulis. Namun, memenuhi batasan-batasan ini umumnya tidak terlalu sulit. Banyak chip memori memiliki status tambahan yang dapat dianggap sebagai" bersiap-siap untuk membaca ": chip secara terus menerus menentukan nilai apa yang akan dikeluarkan pada bus data jika diminta untuk menampilkan lokasi memori yang dituju. Jika chip kemudian diminta untuk menampilkan lokasi itu, ia akan dapat menyediakannya lebih cepat daripada jika harus memulai "dari awal".

Perhatikan bahwa walaupun chip memori statis tipikal akan ditransfer secara internal sebagai kisi baris / kolom (seperti yang ditunjukkan oleh jawaban lain), dan akan memiliki sekitar setengah dari pin alamatnya dihubungkan untuk mengontrol "baris" dan setengah untuk mengontrol "kolom", sebuah chip memori dinamis yang khas akan menggunakan satu set pin alamat untuk mengontrol baris dan kolom. Untuk mengakses memori dinamis, seseorang harus memilih alamat baris dan kemudian menyatakan pin yang disebut / RAS (Pilih Alamat Baris). Ini akan mengunci alamat baris dan menyebabkan baris tertentu dari lokasi memori dibaca ke buffer sementara. Seseorang kemudian dapat menggunakan pin alamat bersama dengan beberapa pin kontrol lainnya untuk mengakses buffer sementara dengan cara yang mirip dengan RAM statis. Setelah satu selesai dengan satu baris, orang mungkin harus / RAS. Ini akan menyebabkan (mungkin dimodifikasi) konten buffer baris disalin kembali ke baris yang sesuai dalam array. Beberapa waktu setelah / RAS dirilis, chip memori akan siap untuk menerima alamat baris lain dan memiliki / RAS ditegaskan lagi.

Perhatikan bahwa tindakan membaca baris dari array memori ke buffer sementara akan menghapus baris itu dari array memori. Akibatnya, bahkan jika seseorang tidak membuat perubahan pada buffer baris, masih perlu untuk menulis kembali ke array memori sebelum seseorang dapat mengakses baris lain. Perhatikan juga bahwa waktu yang diperlukan untuk mengakses suatu baris, dan waktu antara penyelesaian dengan satu baris dan mengakses yang lain, jauh lebih lama daripada waktu yang dibutuhkan untuk membaca dan menulis data dalam buffer. Meskipun banyak mikrokomputer yang lebih tua akan selalu melakukan seluruh urutan "pilih baris; baca atau tulis byte; batalkan pilihan" untuk setiap akses memori, komputer yang lebih cepat akan berusaha melakukan sebanyak mungkin dengan setiap operasi pemilihan baris (saya akan mengaku beberapa keingintahuan mengapa komputer yang lebih tua tidak t membuat lebih banyak upaya dalam hal itu ketika mengakses memori untuk hal-hal seperti pembaruan tampilan video, karena dalam banyak kasus memori video dapat dengan mudah diakses dalam kelompok dua, empat, atau delapan byte). Selanjutnya, perangkat memori modern menyertakan fitur untuk memungkinkan operasi tertentu tumpang tindih dalam banyak kasus (misalnya, mampu menulis buffer baris kembali ke array memori saat baris yang berbeda sedang dibaca).

supercat
sumber