Pertanyaan Bagaimana cara kerja pengumpulan sampah SSD?


Koreksi saya jika saya salah tetapi tidak blok bitmap (yang melacak blok gratis pada disk drive) bervariasi untuk sistem file yang berbeda (baik lokasi dan struktur yang bijaksana)? Jadi bagaimana OCZ memiliki algoritma generik untuk pengumpulan sampah tanpa mempertimbangkan sistem file yang digunakan?


4
2018-02-18 20:36


asal




Jawaban:


SSD memiliki lebih banyak blok di luar apa yang dinyatakan oleh kapasitas yang disebutkan. Blok ini digunakan sebagai bagian dari proses wear-leveling serta penggantian kesalahan karena blok benar-benar aus. Karena itu, pengendali SSD harus melacak blok apa yang dilihatnya saat ini disajikan ke sistem sebagai blok logis.

Dengan tidak adanya TRIM, ketika sebuah tulisan tiba untuk blok kotor (yang sudah memiliki data di dalamnya sejauh menyangkut SSD), salah satu dari dua hal terjadi:

  1. Pengendali membaca blok lama ke dalam memori lokal.
  2. Controller memodifikasi bit yang dibutuhkan.
  3. Pengontrol menulis ulang seluruh blok ke blok lama

Namun, karena wear-leveling, ini lebih mungkin:

  1. Pengendali membaca blok lama ke dalam memori lokal.
  2. Controller memodifikasi bit yang dibutuhkan.
  3. Pengendali menulis seluruh blok ke blok baru di bagian yang dipesan
  4. Controller memperbarui pemetaan logis untuk blok logika baru: pasangan blok-fisik.
  5. Pengendali bendera blok lama sebagai bagian dari Reserve.

Kuncinya di sini adalah bahwa pengendali SSD itu sendiri juga menjaga bitmap blok. Tidak seperti bitmap filesystem itu pencocokan blok logis untuk blok fisik, dan yang dapat berubah setiap kali menulis terjadi.


7
2018-02-20 06:47



Saya sebenarnya ingin tahu tentang rutinitas GC dan ketika mereka menendang tapi ini menjelaskan dengan cukup baik. Setelah pengontrol menandai blok sebagai Cadangan / Kotor, semua GC harus dilakukan dijalankan selama siklus menganggur dan nol pemblokiran ini. Jadi drive bergantung pada memori flash yang disediakan untuk menulis segera dan melakukan pembersihan nanti. - skryl


Dengan over provisioning. OCZ menambahkan mis. 7% lebih banyak flash dari yang dibutuhkan oleh drive. Ini 7% digunakan untuk melakukan leveling dan penggantian blok yang salah, tetapi bisa juga dihapus selama waktu idle menghindari siklus penghapusan-write yang Anda sebaliknya akan dikenakan.


2
2018-02-18 21:37



TRIM juga ikut bermain dengan SSD GC (jika perangkat keras dan perangkat lunak mendukungnya). Ini memungkinkan OS memberitahu drive yang menggigit filesystem / volume (tidak lagi) menggunakan. - Chris Johnsen
Ya, tapi itu tidak akan menjadi algoritme generik. - Erik
Bahkan dengan over-provisioning akan ada titik di mana semua memori yang tersedia drive telah ditulis setidaknya sekali. Setelah titik ini bagaimana drive dapat menentukan blok mana yang OK untuk dihapus selama siklus GC? - skryl