Apa itu Memori ECC?

Beberapa RAM, atau memori Akses Acak, diiklankan sebagai memori ECC. ECC adalah singkatan dari Error Correcting Code dan merupakan proses mengidentifikasi dan mengoreksi kesalahan dalam memori. Kesalahan dalam RAM dapat menyebabkan kerusakan atau pengubahan data, yang dapat mengakibatkan kerusakan perangkat dan bahkan kerentanan keamanan. ECC RAM biasanya tidak kompatibel dengan perangkat keras PC kelas konsumen.

Apa itu kesalahan memori?

Kesalahan memori adalah masalah di mana nilai yang disimpan dalam memori berubah. Data dalam RAM disimpan dalam biner, dengan nilai 1 atau 0. Jika nilai a 1 dialihkan ke 0 atau sebaliknya, dalam proses yang disebut “bit-flipping”, data yang disimpan dalam RAM berubah.

Misalnya, bit yang diubah dapat digunakan untuk menyimpan nilai dalam spreadsheet. Dalam hal ini, nilai dalam spreadsheet dapat diubah ke angka yang sama sekali berbeda yang akan mempengaruhi hasil untuk setiap perhitungan, misalnya mengubah prakiraan ekonomi bisnis. Dalam kasus lain, bit yang diubah dapat menonaktifkan fitur keamanan, atau membuat kesalahan ketik yang mengubah cara program dijalankan. Kedua contoh ini sangat sulit untuk dideteksi dan diselesaikan tanpa menggunakan memori ECC. Dalam skenario ekstrem, satu bit yang dibalik dapat menyebabkan kesalahan besar yang menyebabkan sistem crash.

Bit-flipping memiliki banyak penyebab potensial, penyebab paling umum adalah akibat dari radiasi latar, terutama disebabkan oleh neutron yang diciptakan oleh peristiwa sinar kosmik. Sinar kosmik adalah partikel energi tinggi, biasanya proton, yang bergerak hampir dengan kecepatan cahaya. Mereka dipancarkan oleh benda-benda bintang termasuk Matahari dan objek astronomi energi tinggi lainnya. Ketika sinar kosmik mengenai atom, hujan neutron dan partikel sub-atom lainnya tercipta, neutron ini kemudian melanjutkan interaksi sekunder.

Interaksi neutron sekunder ini diyakini sebagai sumber utama kesalahan bit-flipping. Sinar kosmik lebih umum di ketinggian yang lebih tinggi dengan peningkatan 3,5x pada 1,5 km di atas permukaan laut dan peningkatan 300x pada ketinggian jelajah pesawat. Peningkatan risiko di ketinggian ini memerlukan tindakan keandalan ekstra.

Seberapa umumkah kesalahan memori?

Kebanyakan orang tidak melihat komputer mereka mogok setiap hari, jadi akan mudah untuk berpikir bahwa ini terutama merupakan risiko teoretis. Penelitian dari pusat data hyperscale telah digunakan untuk menganalisis tingkat insiden bit-flipping. Penelitian yang dilakukan oleh Google di seluruh pusat datanya telah menunjukkan tingkat kesalahan sekitar 1 kesalahan bit tunggal per gigabyte RAM setiap 1,8 jam.

Misi Cassini-Huygens NASA yang diluncurkan pada tahun 1997 untuk melakukan perjalanan ke Saturnus dikonfigurasi dengan dua komputer penerbangan identik masing-masing dengan 2,5 Gb RAM. Selama dua setengah tahun pertama perjalanannya, pesawat ruang angkasa mengamati 280 kesalahan bit tunggal yang konsisten setiap hari. Pada suatu hari, ketika Cassini-Huygens berada di jalur semburan matahari, peningkatan bit empat kali lipat kesalahan diamati, memberikan bukti lebih lanjut bahwa Matahari menjadi penyebab paling banyak bit-flipping masalah.

Ada kekhawatiran bahwa peningkatan kepadatan modul RAM yang berkelanjutan akan menyebabkan versi RAM yang lebih baru menjadi lebih rentan terhadap bit-flip. Studi yang lebih baru telah menunjukkan bahwa yang terjadi adalah sebaliknya, karena kesalahan telah berkurang karena geometri proses telah menurun.

Bagaimana memori ECC melindungi dari kesalahan?

Memori ECC menggunakan kode koreksi kesalahan, seperti kode Hamming, untuk memperbaiki kesalahan bit tunggal dalam RAM. Kesalahan bit ganda dapat dideteksi tetapi tidak diperbaiki. Kode koreksi kesalahan Hamming bekerja dengan menggunakan array bit paritas. Bersama-sama bit paritas ini dapat digunakan untuk mendeteksi apakah ada bit data yang berubah. Jika sedikit diidentifikasi telah membalik maka diubah kembali secara otomatis.

Tip: Kesalahan bit tunggal adalah insiden pembalikan bit ketika hanya satu bit yang dibalik. Dalam kesalahan double0bit, dua bit dibalik. Kedua bit tidak perlu dibalik dalam kejadian yang sama, bit-flip kedua hanya perlu terjadi sebelum bit yang dibalik pertama dikoreksi.

Satu bit paritas lebih dari yang diperlukan disertakan dalam kode koreksi kesalahan Hamming. Bit paritas ekstra ini memberi kode kemampuan untuk mendeteksi terjadinya kesalahan bit ganda, namun kesalahan ini tidak dapat diperbaiki.

Proses melakukan deteksi dan koreksi kesalahan dilakukan pada pengontrol memori di atas stik RAM.

Ketersediaan dan dukungan konsumen

Sebagian besar perangkat keras PC tingkat konsumen tidak mendukung memori ECC. Ini sebagian sebagai metode untuk membedakan perangkat keras server secara artifisial dari perangkat keras konsumen. Namun, RAM ECC lebih mahal dan berjalan sedikit lebih lambat. Selain itu, stabilitas ekstra yang akan diberikannya kepada konsumen rumahan adalah minimal karena kesalahan bit-flipping bukanlah penyebab utama sistem crash.

Tidak ada CPU kelas konsumen dan antusias Intel yang mendukung memori ECC, hanya CPU kelas servernya, seperti CPU jajaran Xeon. CPU kelas konsumen AMD tidak mendukung ECC, namun, masing-masing CPU workstation dan server, Threadripper dan EPYC, mendukung memori ECC.