จะกำหนดขนาดบล็อก Nand ของ SSD ได้อย่างไร?


14

ฉันเพิ่งเลือก Crucial M500 240GB SSD (20nm NAND) และฉันพยายามหาวิธีที่ดีที่สุดในการแบ่งพาร์ติชัน ปัจจุบันผมใช้เริ่มต้นที่ภาคfdisk -cu2048

ฉันเชื่อว่าnand page sizeมันคือ 16KB

ฉันไม่สามารถหาได้ทุกสิ่งnand erase block sizeสำหรับมัน

ไม่มีใครรู้คำตอบสำหรับคำแนะนำนี้หรือคำแนะนำทั่วไปเกี่ยวกับการแบ่งพาร์ติชัน SSD ชุดนี้โดยเฉพาะ?


1
การเปิดไดรฟ์และ Googling อาจต้องใช้หมายเลขชิ้นส่วนบนชิป NAND
LawrenceC

คำตอบ:


8

บางครั้งข้อมูลนี้จะถูกเผยแพร่ในรายละเอียดผู้ผลิต SSD แต่บางครั้งก็ไม่มีข้อมูลโดยเฉพาะอย่างยิ่งสำหรับการ์ดหน่วยความจำ CF หรือ SD สั้น ๆ จากการใช้ Google เพื่อค้นหาคนที่ทำวิจัยคุณสามารถลองประเมินด้วยตัวคุณเองโดยใช้ FlashBench ดาวน์โหลดได้ที่นี่: https://github.com/bradfa/flashbench

เครื่องมือนี้จะสุ่มอ่านบน SSD และจะลงจุดตารางที่แสดงเวลาอ่าน (คุณควรเขียนไปยัง SSD แล้วเนื่องจากการอ่านหน้าที่ถูกลบมักจะถูกจำลองโดยชิปคอนโทรลเลอร์) โดยการมองหาการแบ่งในเวลาตามขนาดบล็อกคุณสามารถอนุมานว่าขนาดบล็อกการลบคืออะไร นี่คือตัวอย่างจากREADME:

== เดาการลบบล็อกและขนาดหน้า ==

''flashbench -a <device>''

นี่คือการทดสอบแบบอ่านอย่างเดียวอย่างง่ายโดยทำการอ่านขนาดเล็กข้ามขอบเขตของขนาดต่างๆ ตัวอย่าง:

$ sudo ./flashbench -a /dev/mmcblk0  --blocksize=1024
align 134217728 pre 735µs       on 1.08ms       post 780µs      diff 324µs
align 67108864  pre 736µs       on 1.05ms       post 763µs      diff 300µs
align 33554432  pre 722µs       on 1.04ms       post 763µs      diff 294µs
align 16777216  pre 727µs       on 1.05ms       post 772µs      diff 302µs
align 8388608   pre 724µs       on 1.04ms       post 768µs      diff 299µs
align 4194304   pre 741µs       on 1.08ms       post 788µs      diff 317µs
align 2097152   pre 745µs       on 950µs        post 811µs      diff 171µs
align 1048576   pre 745µs       on 945µs        post 807µs      diff 169µs
align 524288    pre 743µs       on 936µs        post 799µs      diff 165µs
align 262144    pre 746µs       on 948µs        post 809µs      diff 171µs
align 131072    pre 737µs       on 935µs        post 804µs      diff 165µs
align 65536     pre 735µs       on 925µs        post 796µs      diff 159µs
align 32768     pre 735µs       on 925µs        post 800µs      diff 157µs
align 16384     pre 745µs       on 911µs        post 781µs      diff 148µs
align 8192      pre 785µs       on 808µs        post 725µs      diff 53.3µs
align 4096      pre 784µs       on 788µs        post 779µs      diff 5.85µs
align 2048      pre 787µs       on 793µs        post 789µs      diff 4.65µs

สิ่งนี้แสดงเวลาการเข้าถึงที่ทำ 1024 1024 ไบต์สองรายการเพื่ออ่านรอบขอบเขตของบล็อกที่จัดเรียงแบบ power-of-two การอ่านที่ส่วนท้ายของหน่วย 128 MB ใช้เวลาประมาณ 735 microseconds อ่านบล็อกสุดท้ายของหน่วยนี้พร้อมกับบล็อกแรกของบล็อกถัดไปใช้เวลาประมาณ 1080 microseconds และอ่านสองบล็อกแรกในหน่วย 128 MB ใช้เวลาประมาณ 780 microseconds

ตัวเลขที่น่าสนใจที่สุดที่นี่คือตัวเลขสุดท้ายความแตกต่างระหว่างตัวเลขตัวที่สองกับค่าเฉลี่ยของตัวแรกและตัวที่สามคือ 324 microseconds ตัวเลขเหล่านี้จะมีค่าเท่ากันสำหรับหน่วยทั้งหมดระหว่าง 4 MB ถึง 128 MB

อย่างไรก็ตามตั้งแต่ 2 MB จนถึง 16 KB คอลัมน์สุดท้ายมีค่าที่ต่ำกว่ามาก สิ่งนี้บ่งชี้ว่าสิ่งที่การ์ดหน่วยความจำทำในขอบเขต 4 MB จะไม่เกิดขึ้นที่ขอบเขตอื่น การคาดเดาที่มีการศึกษาที่นี่คือ 4 MB เป็นขนาดบล็อกการลบหรือที่เรียกว่าขนาดเซ็กเมนต์หรือการจัดสรรหน่วย การลบบล็อคขนาดนี้จะต้องใช้ในการทดสอบอื่น ๆ หลังจากนี้

ในทำนองเดียวกันขอบเขตทั้ง 16 KB และ 8 KB เป็นพิเศษ คำอธิบายเชิงตรรกะสำหรับสิ่งนี้คือการ์ดมีหน้า 8 KB แต่สามารถใช้การเข้าถึงแบบหลายระนาบเพื่ออ่านหน้า 8 KB สองหน้าพร้อมกัน

การ์ดบางใบจะแสดงรูปแบบที่ชัดเจนโดยใช้การเข้าถึงที่มีขนาดบล็อกบางอย่างการ์ดอื่นไม่แสดงรูปแบบใด ๆ ซึ่งหมายความว่าต้องมีการกำหนดตัวเลขที่แตกต่างกัน

นอกจากนี้การ์ดที่ไม่เคยเขียนอย่างเต็มที่อาจแสดงพฤติกรรมที่แตกต่างกันเนื่องจากเวลาในการเข้าถึงในส่วนที่ลบล่วงหน้านั้นแตกต่างจากที่เขียนไว้


2

ความพยายามอีกประการหนึ่งคือการจัดแนวในขอบเขตที่เป็นคูณของขนาดบล็อกการปฏิบัติใด ๆ

ด้วยแนวคิดนี้เป็นเรื่องธรรมดาที่สุดที่จะจัดแนวบนขอบเขต 1MB ดังนั้นจึงไม่สำคัญว่าขนาดบล็อกจะเป็น 4 หรือ 16kb ทั้งหมดเหล่านี้จะเป็น mulitplys ของ 2 และต่ำกว่า 1M ดังนั้นการจัดตำแหน่งในขอบเขตนั้นจะพอดีกับพวกเขาทั้งหมด

อย่างไรก็ตามการใช้แนวคิดนี้ขึ้นอยู่กับสิ่งที่คุณจัดตำแหน่ง การสูญเสีย 1MB ที่จุดเริ่มต้นของอุปกรณ์เก็บข้อมูลขนาดใหญ่นั้นเป็นที่ยอมรับโดยสิ้นเชิงในขณะที่สูญเสียหลายครั้งในสถานการณ์ที่แตกต่างกันอาจไม่ได้


1

ขนาดบล็อกลบไม่มีการจัดแนวและ M500 รองรับการรวบรวมขยะดังนั้นประสิทธิภาพจึงไม่เป็นปัญหา โปรดดูหน้า 2 ของPDF นี้จากเว็บไซต์ของไมครอนซึ่งจะช่วยคุณกำหนดขนาดบล็อกลบตาม NAND ที่ใช้ใน M500 ของคุณ

สำหรับคำแนะนำการจัดตำแหน่งโปรดตรวจสอบSuperuser Post ที่ยอดเยี่ยมนี้

นี่คือภาพหน้าจอของหน้า: ป้อนคำอธิบายรูปภาพที่นี่


2
ดังนั้นในกรณีนี้ขนาดของบล็อกการลบจะได้รับที่ไหนในแผนภาพนี้
hbogert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.