Teknologi

Bagaimana SSD Bekerja?

IT Solution Jakarta – Untuk memahami bagaimana dan  mengapa SSD berbeda dari disk yang berputar, kita perlu sedikit bicara tentang hard drive. Sebuah hard drive menyimpan data pada serangkaian disk magnetik berputar, yang disebut piring-piring. Ada lengan aktuator dengan kepala baca / tulis yang menyertainya. Posisi lengan ini menulis baca tulis di area drive yang benar untuk membaca atau menulis informasi.

Karena kepala penggerak harus menyelaraskan area disk agar bisa membaca atau menulis data (dan disk terus berputar), ada waktu tunggu non-nol sebelum data dapat diakses. Drive mungkin perlu membaca dari beberapa lokasi untuk meluncurkan program atau memuat file, yang berarti mungkin harus menunggu piring-piring itu berputar ke posisi yang tepat beberapa kali sebelum dapat menyelesaikan perintah. Jika drive sedang tertidur atau dalam keadaan berdaya rendah, diperlukan beberapa detik lagi agar cakram berputar hingga penuh dan mulai beroperasi.

Sejak awal, jelas bahwa hard drive tidak mungkin sesuai dengan kecepatan CPU yang bisa beroperasi. Latency dalam HDD diukur dalam milidetik, dibandingkan dengan nanodetik untuk CPU Anda. Satu milidetik adalah 1.000.000 nanodetik, dan biasanya membutuhkan hard drive 10-15 milidetik untuk menemukan data pada drive dan mulai membacanya. Industri hard drive memperkenalkan piring-piring kecil, cache memori on-disk, dan kecepatan spindle yang lebih cepat untuk melawan tren ini, tapi hanya ada begitu cepatnya drive bisa berputar. Keluarga VelociRaptor 10.000 RPM dari Western Digital adalah perangkat tercepat yang pernah dibuat untuk pasar konsumen, sementara beberapa perusahaan drive berputar hingga 15.000 RPM. Masalahnya adalah, bahkan drive pemintalan tercepat dengan cache terbesar dan piring terkecil masih sangat lambat sejauh menyangkut CPU Anda.

Bagaimana SSD berbeda?

Drive solid-state disebut khusus karena tidak bergantung pada bagian yang bergerak atau disk yang berputar. Sebagai gantinya, data disimpan ke genangan flash NAND. NAND sendiri terdiri dari apa yang disebut floating gate transistors. Berbeda dengan desain transistor yang digunakan di DRAM, yang harus disegarkan beberapa kali per detik, lampu flash NAND dirancang untuk mempertahankan muatannya meski tidak menyala. Hal ini membuat NAND menjadi jenis memori non-volatile.

Screenshot_25

Diagram di atas menunjukkan disain flash cell sederhana. Elektron disimpan di gerbang mengambang, yang kemudian dibaca sebagai diisi “0” atau tidak diisi “1.” Ya, dalam flash NAND, 0 berarti data disimpan dalam sel – ini adalah kebalikan dari bagaimana kita biasanya memikirkannya. Nol atau satu. Flash NAND diatur dalam kotak. Keseluruhan tata letak grid disebut sebagai blok, sedangkan baris individu yang membentuk grid disebut halaman. Ukuran halaman umum adalah 2K, 4K, 8K, atau 16K, dengan 128 sampai 256 halaman per blok. Ukuran blok biasanya bervariasi antara 256KB dan 4MB.

Satu keuntungan dari sistem ini harus segera jelas. Karena SSD tidak memiliki bagian yang bergerak, mereka dapat beroperasi dengan kecepatan yang jauh di atas HDD biasa. Bagan berikut menunjukkan latency akses untuk medium penyimpanan khas yang diberikan dalam mikrodetik.

Screenshot_26

NAND adalah tempat secepat memori utama, tapi banyak lipat lebih cepat dari pada hard drive. Sementara menulis latency secara signifikan lebih lambat untuk flash NAND daripada latensi membaca.

Ada dua hal yang harus diperhatikan pada bagan di atas. Pertama, perhatikan bagaimana menambahkan lebih banyak bit per sel NAND memiliki dampak signifikan pada kinerja memori. Ini lebih buruk untuk menulis dibandingkan dengan membaca – latency tingkat tiga sel khas (TLC) adalah 4x lebih buruk dibandingkan dengan single-level cell (SLC) NAND untuk dibaca, namun 6x lebih buruk untuk penulisan. Menghapus latensi juga berdampak signifikan. Dampaknya tidak proporsional, TLC NAND hampir dua kali lebih lambat dari MLC NAND, meski hanya memiliki data 50% lebih banyak (tiga bit per sel, bukan dua).

Screenshot_27

Alasan TLC NAND lebih lambat dari pada MLC atau SLC berkaitan dengan bagaimana data bergerak masuk dan keluar dari sel NAND. Dengan NAND SLC, pengontrol hanya perlu mengetahui apakah bitnya 0 atau 1. Dengan NAND MLC, sel mungkin memiliki empat nilai – 00, 01, 10, atau 11. Dengan TLC NAND, sel dapat memiliki delapan nilai. . Membaca nilai yang tepat dari sel mengharuskan pengendali memori menggunakan voltase yang sangat tepat untuk memastikan apakah ada sel tertentu yang terisi atau tidak.

Membaca, menulis, dan menghapus

Salah satu keterbatasan fungsional SSD adalah ketika mereka dapat membaca dan menulis data dengan sangat cepat ke drive yang kosong. Hal ini karena sementara SSD membaca data pada tingkat halaman (artinya dari baris individu di dalam grid memori NAND) dan dapat menulis di tingkat halaman, dengan asumsi bahwa sel sekitarnya kosong, mereka hanya dapat menghapus data di tingkat blok. Ini karena tindakan menghapus flash NAND membutuhkan voltase dalam jumlah tinggi. Meskipun secara teoritis dapat menghapus NAND pada tingkat halaman, jumlah tegangan yang dibutuhkan menekankan sel individual di sekitar sel yang sedang ditulis ulang. Menghapus data di tingkat blok membantu mengurangi masalah ini.

Satu-satunya cara bagi SSD untuk memperbarui halaman yang ada adalah dengan menyalin isi keseluruhan blok ke dalam memori, menghapus blok, dan kemudian menulis isi blok lama + halaman yang diperbarui. Jika drive penuh dan tidak ada halaman kosong yang tersedia, SSD harus terlebih dahulu memindai blok yang ditandai untuk dihapus namun belum dihapus, hapus, lalu tulis data ke halaman yang sekarang terhapus. Inilah sebabnya mengapa SSD bisa menjadi lebih lambat seiring bertambahnya usia – drive yang kebanyakan kosong penuh dengan blok yang dapat ditulis segera, drive yang kebanyakan penuh lebih mungkin dipaksakan melalui keseluruhan rangkaian program / penghapusan.

Jika Anda menggunakan SSD, Anda mungkin pernah mendengar sesuatu yang disebut “pengumpulan sampah.” Pengumpulan sampah adalah proses latar belakang yang memungkinkan dorongan untuk mengurangi dampak kinerja program / menghapus siklus dengan melakukan tugas tertentu di latar belakang. Gambar berikut langkah-langkahnya melalui proses pengumpulan sampah.

Perintah TRIM memungkinkan sistem operasi memberi tahu SSD bahwa ia dapat melewatkan penulisan ulang data tertentu pada saat ia melakukan penghapusan blok. Ini menurunkan jumlah total data yang ditulis oleh drive dan meningkatkan umur panjang SSD. Keduanya membaca dan menulis kerusakan flash NAND, namun menulis melakukan kerusakan jauh lebih banyak daripada membaca. Untungnya, umur panjang block-level tidak terbukti menjadi masalah dalam flash NAND modern. Lebih banyak data tentang umur panjang SSD.

Dua konsep terakhir yang ingin kita bicarakan adalah memakai leveling dan menulis amplifikasi. Karena SSD menulis data ke halaman tapi menghapus data di blok, jumlah data yang ditulis ke drive selalu lebih besar dari update sebenarnya. Jika Anda membuat perubahan ke file 4KB, misalnya, seluruh blok yang berisi file 4K berada di dalam harus diperbarui dan ditulis ulang. Bergantung pada jumlah halaman per blok dan ukuran halaman, Anda mungkin akan menghasilkan data senilai 4MB untuk mengupdate file 4KB. Pengumpulan sampah mengurangi dampak amplifikasi penulisan, seperti juga perintah TRIM. Menjaga porsi yang signifikan dari drive free dan / atau overprovisioning produsen juga dapat mengurangi dampak amplifikasi penulisan.

Wear leveling mengacu pada praktik untuk memastikan bahwa blok NAND tertentu tidak ditulis dan dihapus lebih sering daripada yang lain. Sementara leveling dapat meningkatkan harapan hidup dan daya tahan drive dengan menulis ke NAND yang sama, sebenarnya dapat meningkatkan amplifikasi penulisan. Di sisi lain untuk mendistribusikan menulis secara merata di seluruh disk, kadang-kadang diperlukan untuk memprogram dan menghapus blok meskipun isinya belum benar-benar berubah. Algoritma leveling yang baik berusaha menyeimbangkan dampak ini.

Pengontrol SSD

SSD memerlukan mekanisme konrol yang jauh lebih canggih daripada yang dilakukan oleh hard drive.

Screenshot_28

Kontroler SSD memiliki memori DDR3 untuk membantu pengelolaan NAND itu sendiri. Banyak drive juga menggabungkan cache sel tingkat tunggal yang bertindak sebagai penyangga, meningkatkan kinerja drive dengan mendedikasikan NAND cepat untuk membaca / menulis siklus. Karena flash NAND di SSD biasanya terhubung ke controller melalui serangkaian saluran memori paralel, Anda dapat memikirkan pengendali drive karena melakukan beberapa pekerjaan penyeimbangan beban yang sama dengan array penyimpanan high-end – SSD tidak menggunakan RAID internal, tapi memakai leveling, pengumpulan sampah, dan manajemen cache SLC semuanya memiliki kesejajaran di dunia besi besar.

Beberapa drive juga menggunakan algoritma kompresi data untuk mengurangi jumlah total penulisan dan meningkatkan umur drive. Kontroler SSD menangani koreksi kesalahan, dan algoritma yang mengendalikan kesalahan single-bit menjadi semakin kompleks seiring berjalannya waktu.

 

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s