ขออะไรจะทำอย่างไรกับการจัดเก็บข้อมูลของรัฐที่มั่นคง?


13

ด้วยที่เก็บข้อมูลเชิงกลการทำงานของดิสก์ระดับต่ำseek()ทำให้หัวฮาร์ดไดรฟ์ย้ายไปยังตำแหน่งเพื่อให้พร้อมที่จะอ่านจากพื้นที่ที่กำหนดของดิสก์

ด้วยการจัดเก็บข้อมูลโซลิดสเตตเช่นการ์ด SD แฟลชไดรฟ์และ SSD จึงไม่มีชิ้นส่วนที่เคลื่อนไหวของฮาร์ดแวร์เพียงสัญญาณไฟฟ้า

สมมติว่าเทคโนโลยี RAM แบบไม่ลบเลือนของ NAND เป็นพื้นฐานของฮาร์ดแวร์ฟังก์ชั่นใดที่ใช้งานseek()จริงในระดับฮาร์ดแวร์สำหรับอุปกรณ์ดังกล่าว

เพื่อความชัดเจนฉันรู้แล้วว่าสิ่งต่อไปนี้เกิดขึ้น:

  1. โปรแกรม Userspace เรียกการโทรของseek()ระบบหรือเทียบเท่าเฉพาะระบบปฏิบัติการ

  2. เคอร์เนลตีความการโทรของระบบและส่งข้อความไปยังคอนโทรลเลอร์ SATA เพื่อค้นหา

  3. คอนโทรลเลอร์ SATA ตีความคำสั่งและบอกอุปกรณ์ดิสก์ที่เชื่อมต่อซึ่งเป็นสถานะของแข็งเพื่อค้นหา (หรืออาจฉลาดพอที่จะรับรู้ว่าเป็นสถานะของแข็งและไม่ได้บอกด้วย)

  4. สิ่งที่ฉันไม่ทราบว่าเป็นอุปกรณ์ของรัฐที่มั่นคงไม่??? ด้วยคำสั่งเพื่อ "แสวงหา"

หากมีรายละเอียดที่จะขึ้นอยู่กับระบบปฏิบัติการสมมติว่าเป็นรุ่นเดสก์ท็อปที่ค่อนข้างมาตรฐานของ GNU / Linux พร้อมเคอร์เนลเวอร์ชัน 3.2


2
ฉันคิดว่ามันเป็น NOP ไขมันขนาดใหญ่ แยกเรื่องตลกถ้าฉันเป็นไดรฟ์ SSD ฉันจะอ่านคำเตือน "ข้อควรระวัง" บางอย่างเพื่อให้แน่ใจว่าสิ่งต่าง ๆ เกิดขึ้นเร็วที่สุด แต่นี่เป็นเพียงการคาดเดาที่คลุมเครือในบางสิ่งบางอย่างฉันไม่มีความคิดแม้แต่น้อยดังนั้นจึงเอาเกลือเม็ดเล็ก ๆ ...
ppeterka

ฉันไม่คิดว่าการดำเนินการ "ค้นหา" จะใช้ในอินเทอร์เฟซหน่วยเก็บข้อมูลระดับต่ำอีกต่อไป หากพวกเขามีอยู่พวกเขาจะเปลี่ยนตำแหน่งที่เก็บไว้สำหรับการดำเนินการ I / O ครั้งต่อไป
David Schwartz

คำตอบ:


4

หากคุณอ้างถึง linux ให้ค้นหายังคงเคลื่อนที่ไปข้างหน้าตามจำนวนไบต์ที่ต้องการ ตัวอย่างเช่น:

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

จะเริ่มคัดลอกเลขศูนย์ 1024 ไบต์ไปที่จุดเริ่มต้นของดิสก์มันไม่สำคัญว่า sdb เป็น sd card หรือ ssd drive เพราะสิ่งเล็ก ๆ ที่เรียกว่าabstractionกลไกที่แท้จริงของเรื่องนี้ได้รับการดูแลในระดับที่ต่ำกว่า

ปรับปรุง

ฉันเห็นสิ่งที่คุณพูดตอนนี้ ตามตัวอย่างการ์ด sd ของฉันหน่วยความจำแฟลชใช้สิ่งที่เรียกว่าหน้าและหน้ามาในขนาดที่เฉพาะเจาะจง เมื่อมีการค้นหาเกิดขึ้นระบบปฏิบัติการจะส่งคำสั่งไปยังตัวควบคุมการ์ด sd / การ์ดเพื่อย้ายไปยังหน้าหนึ่งเพื่ออ่านและเขียน


ฉันรู้ว่ามันก้าวหน้าไปข้างหน้าในไฟล์อย่างมีเหตุผลแต่นอกเหนือจากผลกระทบเชิงตรรกะต่อไฟล์ในแง่ของ "บล็อก" ที่เป็นนามธรรมฮาร์ดแวร์ทำอะไรที่แตกต่างออกไปเมื่อมีการบอกให้แสวงหาหรือไม่? คุณสามารถดูการlseek()เรียกของระบบเป็นตัวอย่างเฉพาะถ้าจำเป็น ฉันรู้ว่าการเรียกระบบนี้ไม่เพียง แต่จะเป็นการค้นหาแบบลอจิคัลเท่านั้น แต่ยังทำให้หัว HDD เคลื่อนที่เมื่อจัดการกับดิสก์เชิงกลด้วย SSD ทำอะไรได้บ้าง
allquixotic

@allquixotic ฉันได้อัปเดตคำตอบของฉันแล้ว
MDMoore313

1
แม้ในฮาร์ดไดรฟ์ที่ปั่นอยู่จริง OS ก็ส่งคำสั่ง (คำสั่ง SCSI คำสั่ง ATA / SATA หรือคำสั่ง USB mass storage) เพื่อให้ไดรฟ์รับ LBA X โฮสต์ไม่ได้บอกให้ย้ายไดรฟ์ มุ่งหน้าไปที่ระดับใดก็ได้เฟิร์มแวร์ของไดรฟ์ทำเช่นนั้น หากคุณต้องการความคิดเกี่ยวกับสิ่งที่เฟิร์มแวร์ SSD ทำเพื่อตอบสนองคำสั่งหน่วยเก็บข้อมูลดูรายละเอียดบางอย่างสำหรับโครงการ Jasmine OpenSSD หากคุณสามารถหาพวกเขาได้บางส่วนนั้นอธิบายสิ่งต่าง ๆ ในระดับต่ำมาก
LawrenceC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.