Apa yang dicari dengan penyimpanan solid state?

13

Dengan penyimpanan mekanis, operasi disk level rendah seek()menyebabkan kepala hard drive pindah ke lokasi sehingga mereka siap untuk membaca dari area disk tertentu.

Dengan penyimpanan solid state, seperti kartu SD, flash drive, dan SSD, tidak ada bagian perangkat keras yang bergerak, hanya sinyal listrik.

Dengan asumsi teknologi NAND non-volatile RAM adalah dasar dari perangkat keras, fungsi apa yang seek()sebenarnya dilakukan pada tingkat perangkat keras untuk perangkat seperti itu?

Untuk lebih jelasnya, saya sudah tahu bahwa hal berikut terjadi:

  1. Program Userspace memanggil panggilan seek()sistem atau yang setara dengan OS khusus

  2. Kernel menginterpretasikan panggilan sistem dan mengirim pesan ke pengontrol SATA untuk dicari

  3. Pengontrol SATA menginterpretasikan perintah dan memberi tahu perangkat disk yang terpasang, yang merupakan keadaan padat, untuk mencari (atau mungkin itu cukup pintar untuk mengenali bahwa itu adalah keadaan padat dan bahkan tidak memberitahukannya ??)

  4. Yang tidak saya ketahui adalah, perangkat solid state tidak ??? dengan perintah untuk "mencari".

Jika ada detail yang tergantung pada sistem operasi, asumsikan GNU / Linux versi desktop yang relatif standar dengan kernel versi 3.2.

allquixotic
sumber
2
Saya pikir itu NOP lemak besar. Bercanda terpisah, jika saya seorang drive SSD, saya akan melakukan beberapa "pencegahan" membaca ke dalam cache, untuk memastikan hal-hal terjadi secepat mungkin. Tapi karena ini hanya dugaan samar pada sesuatu yang saya tidak punya ide sedikit pun, jadi bawa dengan sebutir garam ...
ppeterka
Saya tidak berpikir operasi "seek" digunakan dalam antarmuka penyimpanan tingkat rendah lagi. Jika memang ada, mereka hanya akan mengubah posisi yang disimpan untuk operasi I / O berikutnya.
David Schwartz

Jawaban:

4

jika Anda merujuk ke linux, cari masih bergerak maju jumlah byte yang diperlukan. Sebagai contoh:

dd if=/dev/zero of=/dev/sdb bs=512 SEEK=2

Akan mulai menyalin nol 1024 byte ke awal disk, tidak masalah jika sdb adalah kartu sd atau SSD, karena hal kecil yang disebut abstraksi , mekanisme sebenarnya dari hal ini dijaga pada level yang lebih rendah.

Memperbarui

Saya mengerti apa yang Anda katakan sekarang. Mengikuti contoh kartu sd saya, memori flash menggunakan sesuatu yang disebut halaman , dan halaman datang dalam ukuran tertentu. ketika pencarian datang, OS mengirimkan perintah ke kartu sd / pengendali kartu untuk pindah ke halaman tertentu untuk membaca dan menulis.

MDMoore313
sumber
Saya sadar bahwa ia bergerak maju dalam file secara logis , tetapi selain dari dampak logis pada file dalam hal abstrak "blok", apakah perangkat keras melakukan sesuatu yang berbeda ketika sebenarnya disuruh mencari? Anda dapat melihat lseek()panggilan sistem sebagai contoh spesifik jika diperlukan. Saya tahu bahwa pemanggilan sistem ini tidak hanya mencari secara logis tetapi juga menyebabkan kepala HDD bergerak ketika berhadapan dengan disk mekanis, jadi apa yang dilakukan SSD?
allquixotic
@allquixotic Saya telah memperbarui jawaban saya.
MDMoore313
1
Bahkan pada hard drive pemintalan fisik, OS mengirimkan perintah (perintah SCSI, perintah ATA / SATA, atau perintah penyimpanan massal USB) untuk mengemudi untuk mendapatkan LBA X. Host tidak benar-benar memberi tahu drive untuk memindahkan kepala di tingkat manapun, firmware drive melakukan itu. Jika Anda ingin mengetahui apa yang dilakukan firmware SSD sebagai respons terhadap perintah penyimpanan, lihatlah beberapa spesifikasi untuk proyek Jasmine OpenSSD jika Anda dapat menemukannya, beberapa di antaranya menjelaskan hal-hal pada tingkat yang sangat rendah.
LawrenceC