เป็นความจริงหรือไม่ที่การ์ด SD / MMC ไม่ได้ปรับระดับด้วยคอนโทรลเลอร์ของตัวเอง?


51

ฉันไม่พบข้อมูลที่เชื่อถือได้เกี่ยวกับสิ่งนี้ ฉันไม่มีคุณสมบัติครบถ้วนของฮาร์ดแวร์การ์ด SD / MMC

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

แก้ไข

มีคนยืนยันได้หรือไม่ว่าการปรับระดับการสึกหรอได้รับการรับรองโดยข้อกำหนด SD? ฉันต้องการที่จะมั่นใจเพราะดูเหมือนว่าผู้ขายส่วนใหญ่ทำ แต่ไม่ได้กำหนดไว้โดยสเปค


5
ผู้ผลิตสื่อแฟลชบางรายเท่านั้นที่ลงทุนในอัลกอริธึมการปรับระดับการสึกหรอ การปรับระดับการสึกหรอนั้นแพร่หลายมากขึ้นใน SSD ที่ผู้ผลิตเป็นผู้นำตลาดเนื่องจากอัลกอริธึม
Chetan Bhargava

คำตอบ:


43

ฉันทำงานให้กับ บริษัท ที่เคยเป็นสมาชิกของสมาคม SD เราคุ้นเคยกับข้อกำหนด 2.0 (SDHC) ข้อมูลจำเพาะการ์ด SD ไม่มีรายการสำหรับปรับระดับการสึกหรอ นั่นคือทั้งหมดขึ้นอยู่กับผู้ผลิต SD เพื่อจัดการกับมันหากพวกเขาเลือก เราได้เห็นแล้วว่าบางคนมีแนวโน้มที่จะทำในขณะที่คนอื่นไม่ทำมาก (ระวังการ์ด SD แบบ knock-off ราคาถูกสุด ๆ ) SDXC อาจมีการเปลี่ยนแปลงซึ่งรวมถึงการปรับระดับการสวมใส่ แต่ฉันไม่แน่ใจ น่าเสียดายที่วิธีเดียวที่จะแสดงให้เห็นจริง ๆ คือการได้รับข้อมูลจำเพาะอย่างเป็นทางการ คุณสามารถค้นหาได้ทางออนไลน์ส่วนใหญ่ แต่สมาคม SD ต้องการให้คุณชำระเงินจริงๆ

ในฐานะที่เป็นบันทึกด้านรับการ์ด 2GB และเขียนมันเริ่มต้นที่จะจบลงซ้ำแล้วซ้ำอีกโดยเฉลี่ยประมาณ 10TB ก่อนที่บัตรจะตายและไม่สามารถเขียนได้อีกต่อไป นอกจากนี้การ์ด SD จะไม่แจ้งให้คุณทราบเมื่อข้อมูลไม่ดีเช่นไม่คืนข้อผิดพลาด I / O เช่นเดียวกับฮาร์ดไดรฟ์ PC นี่อาจไม่เป็นปัญหาสำหรับการออกแบบที่ฝังตัวเนื่องจาก 10TB เป็นข้อมูลจำนวนมาก แต่อาจเป็นปัจจัยสำหรับใครบางคน


2
ฉันคิดว่าแม้ว่ามันจะไม่ได้อยู่ในสเป็ค แต่ บริษัท ก็ยังต้องการที่จะทำให้ชื่อเสียงของพวกเขาดี ในขณะที่คนที่ไม่ชอบเรื่องราคาถูกสุด ๆ ไม่สนใจเรื่องชื่อเสียงพวกเขาขายให้กับคนที่มองหาสิ่งที่ถูก เสียงนี้สมเหตุสมผลหรือไม่
Kellenjb

1
@ Kellenjb มันเป็นข้อสมมติฐานที่สมเหตุสมผลมากและฉันก็เห็นด้วยกับคุณเป็นการส่วนตัว อย่างไรก็ตามเนื่องจากมันไม่ได้อยู่ในข้อมูลจำเพาะและไม่น่าเป็นไปได้ที่จะเข้าถึงตัวควบคุม SD ของผู้ผลิตรายใดรายหนึ่งจึงไม่สามารถพิสูจน์ได้จริงๆ เราทำการทดสอบเป็นจำนวนมากในช่วงหลายปีที่ผ่านมาบางแบรนด์ที่สำคัญ ๆ นั้นทำงานได้ดีกว่ายี่ห้ออื่น ๆ มันอาจเป็นความแตกต่างในอัลกอริธึมภายในหรือขาดมันอย่างสมบูรณ์
Kris Bahnsen

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

@KrisBahnsen คุณสามารถอธิบายรายละเอียดเกี่ยวกับสิ่งที่การ์ด SD ส่งคืนจริงหรือไม่เมื่อมีข้อผิดพลาดที่ไม่สามารถกู้คืนได้? ฉันสนใจสิ่งนี้มาก ไม่มีวิธีใดในการตรวจสอบสภาพนี้หรือไม่?
fred basset

3
@ เฟรดบาสเซ็ต, วิธีที่จะทำให้ซอมบี้เธรด;) มันเป็นเวลานานแล้วที่ฉันทำงาน SD card อย่างไรก็ตามการ์ด SD ของ IIRC เองจะส่งคืนสิ่งที่พวกเขารู้สึก ใหม่กว่าบางรวมกับไดรเวอร์ที่เหมาะสมอาจตรวจพบข้อผิดพลาด IO อย่างไรก็ตามการ์ด SD รุ่นเก่าอาจส่งคืนข้อมูลที่ไม่ดีที่ถูกเก็บไว้ใน NAND และเรียกมันว่าดี แม้ว่าหากการเขียนไม่สามารถเสร็จสิ้นได้นั่นจะส่งคืนข้อผิดพลาด IO
Kris Bahnsen

23

มันเป็นความจริง! การ์ด MicroSD มีชิปแฟลช NAND ที่ถูกผูกมัดกับไมโครคอนโทรลเลอร์ (ARM) ที่หุ้มด้วยพลาสติกสีดำ http://www.bunniestudios.com/blog/?p=898อธิบาย

ในตอนท้ายของโพสต์ติดตามhttp://www.bunniestudios.com/blog/?p=918 Bunnie posits การบูรณาการตัวควบคุมอาจมีค่าใช้จ่ายน้อยกว่าการทดสอบแฟลชล่วงหน้า

การอ้างอิงคู่มือผลิตภัณฑ์การ์ด SD ของ SanDisk: "1.9 Wear Leveling การปรับระดับการสวมเป็นส่วนที่แท้จริงของฟังก์ชั่นการลบการรวมกำไรของการ์ด SD โดยใช้หน่วยความจำ NAND" คุณสามารถอ่านสิ่งที่ทั้งในแผ่นข้อมูลสำหรับบัตรแบรนด์ SanDisk


1
Bunnie Huang น่าเชื่อถือเพียงพอสำหรับฉัน!
vicatcu

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

2
Digikey แสดงโบรชัวร์ SanDisk ที่ไร้ประโยชน์ให้ฉันเมื่อฉันพยายามค้นหาแผ่นข้อมูล WintecและSWISSBITเอกสารข้อมูลทางเทคนิคได้ดีและทั้งสองกล่าวถึงการปรับระดับการสึกหรอ คุณสามารถลิงค์ไปยังแผ่นข้อมูลที่โฮสต์โดย Digikey ได้หรือไม่?
Kevin Vermeer

นี่เป็นวิธีที่ดีกว่า SanDisk รุ่นเก่า
joeforker

Wintec นั้นไม่ค่อยดีนัก แต่ SanDisk ใหม่นั้นดีที่สุดในกลุ่ม! ขอบคุณสำหรับการแก้ไข
Kevin Vermeer

19

ใช่การ์ด SD / MMC มีตัวควบคุมที่สวมระดับ หากพวกเขาไม่ได้คุณสามารถทำลายหนึ่งในไม่กี่นาทีด้วยรูปแบบการเขียนที่ไม่ถูกต้อง

นั่นเป็นปัญหาสำหรับโครงการฝังตัวบางอย่าง ไม่มีทางใดที่จะรู้ได้เลยว่าภาคใดบ้างที่อาจจะมีการสึกหรอในทุกเวลาดังนั้นวงจรไฟฟ้าในเวลาที่ผิดสามารถทำลายข้อมูลได้ทุกที่บนการ์ดไม่ว่าคุณจะเขียนที่ใดก็ตาม (อย่าถามว่าฉันรู้ได้อย่างไร :))

ต้องใช้การ์ด SD กับระบบที่รับประกันการปิดระบบที่สะอาด (หรืออย่างน้อยที่สุดว่าการเขียนอนุญาตให้เสร็จสมบูรณ์) มิฉะนั้นข้อมูลจะสูญหาย (ในที่สุด) ผลลัพธ์

แก้ไข

ปัญหาคือกระบวนการปรับระดับการสึกหรอถูกซ่อนไว้อย่างสมบูรณ์ เซกเตอร์ใด ๆ บนดิสก์สามารถเคลื่อนย้ายได้ตลอดเวลา (สลับกับเพจที่เขียน) และหากไฟฟ้าดับในช่วงกลางของกระบวนการนั้นเซกเตอร์แบบสุ่มอาจเสียหายได้

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

จากการทดสอบตัวควบคุมการ์ด SD ของฉันไม่ได้ทำอย่างปลอดภัยเลย

ฉันอาจมองหาการ์ด SD "ความน่าเชื่อถือสูง" ที่ฉันเห็นโฆษณาเฉพาะสำหรับความทนทานต่อไฟดับ ... แต่คุณต้องเชื่อใจผู้ผลิตว่าต้องทำอย่างถูกต้องและไม่ ฉันต้องการควบคุมการลบหน้าโดยตรง ฉันยังคงพยายามหาอันนี้


4
ดูคำตอบที่โพสต์ของฉัน เนื่องจากอัลกอริธึมการปรับระดับการสึกหรอขึ้นอยู่กับผู้ผลิตจึงอาจไม่ได้รับกลิ่น อัลกอริธึมการปรับระดับการสึกหรอที่ดีจะย้ายข้อมูลก่อนจากนั้นทำเครื่องหมายว่าข้อมูลดีจากนั้นขยะจะรวบรวมข้อมูลต้นฉบับ นี่อาจเป็นปัญหาสำหรับการ์ดบางใบอาจไม่ใช่การ์ดอื่น SD คือการออกแบบที่น่าเกลียดมากเมื่อคุณไปถึงด้านล่างของมัน
Kris Bahnsen

2
ใช่มันเป็นมาตรฐานอึเท่าที่ฉันกังวล มันน่ารำคาญมากที่มาตรฐานหน่วยความจำที่ใช้กันอย่างแพร่หลายนั้นจะไม่น่าเชื่อถือ
darron

2
@jpc: บางทีฉันจะทำรายการบล็อกแล้ว ฉันได้รับความประทับใจที่ไม่ได้พิจารณาบ่อย ฉันไม่ได้ตระหนักถึงความหมายของตัวเองจนกระทั่งมันสายเกินไป ฉันต่อสู้กับสิ่งนี้พูดคุยกับผู้ผลิตการ์ด SD ของฉัน ฯลฯ ไม่มีวิธีการอื่นใดนอกจากลดเวลาในการเขียน ตอนนี้ฉันเขียนถึงแฟลช NAND และคัดลอกไปที่ SD วันละครั้งโดยเร็วที่สุด มีการ์ด SD ที่ออกแบบมาให้ "ต้านทาน" ต่อความล้มเหลวของการใช้พลังงานแบบสุ่ม แต่ฉันไม่แน่ใจว่าสิ่งเหล่านี้จะเชื่อถือได้อย่างสมบูรณ์
darron

2
@fred basset ผิดปกติรายละเอียดเกี่ยวกับบัตรอุตสาหกรรมดูเหมือนว่าจะเปลี่ยนไปนับตั้งแต่คำตอบนี้ถูกเขียนขึ้น ฉันได้รับการเห็นการ์ด microSD ที่มีการค้ำประกันในการเขียน (journaled ผมคิดว่า) ... ตอนนี้พวกเขาทำให้ไม่มีการเรียกร้องดังกล่าว พูดคุยกับผู้ผลิตพวกเขากำลังใช้ supercaps ตอนนี้ ... แต่มีเพียงการ์ดแฟลชขนาดเล็กเท่านั้นที่มีที่ว่างสำหรับพวกเขา การทำสิ่งต่าง ๆ อย่างปลอดภัยลดประสิทธิภาพมากเกินไป พวกเขากำลังบอกว่าจะให้พลังงานสำรองเพียงพอที่จะเขียนให้เสร็จสมบูรณ์ ระบุว่า ARM SBCs ที่ทันสมัยซับซ้อนเพียงใด ... มันยากที่จะทำหากการออกแบบอ้างอิงของผู้ขายไม่ได้ทำ ไม่มีที่ฉันรู้
darron

2
@freq basset ฉันใช้ UBI & UBIFS ดูเหมือนว่าจะทำงานได้ดี ... ฉันมีระบบมากมายที่ทำงานมาหลายปีแล้วโดยไม่มีปัญหา
darron

12

การ์ด SD ทุกประเภทที่ใช้หน่วยความจำแฟลช NAND ทั่วไปประเภทใดก็ตามจะต้องใช้เซกเตอร์เสมือนจริงบางประเภทเนื่องจากไม่มีอุปกรณ์แฟลช NAND ทั่วไปที่สามารถรองรับการลบเซกเตอร์ส่วนตัวขนาด 512 ไบต์และอุปกรณ์แฟลช NAND ทั่วไปที่มีขนาดสำคัญ จะสามารถให้ประสิทธิภาพการทำงานที่อยู่ในลำดับความสำคัญของการเป็นที่ยอมรับแม้แต่น้อยถ้าทุกครั้งที่พยายามเขียนเซกเตอร์จำเป็นต้องใช้อุปกรณ์เพื่อคัดลอกเซกเตอร์ทั้งหมดในเซกเตอร์ลบบล็อกของเซกเตอร์นั้น (แม้แต่ RAM) จากนั้นลบบล็อกและเขียน ทุกภาคส่วนกลับมา เทคนิคการทำเวอร์ช่วลเซกชั่นส่วนใหญ่นั้นค่อนข้างมีระดับการสึกหรอ ฉันคาดหวังว่าปัญหาความแปรปรวนที่ใหญ่ที่สุดระหว่างอุปกรณ์ที่มีคุณภาพและการลอกเลียนแบบจะเป็นขอบเขตที่อุปกรณ์พยายามอย่างยิ่งที่จะปรับระดับระหว่างบล็อก เมื่อเทียบกับเพียงแค่ใช้การจัดสรรบล็อกแบบหลอกเทียมและหวังว่าจะให้ผลลัพธ์ที่ใกล้เคียงกับที่ยอมรับได้ ในทางปฏิบัติฉันคาดหวังว่าแม้การจัดสรรแบบสุ่ม / หวังดีที่สุดจะเพียงพอในกรณีส่วนใหญ่


อาจเป็นไปได้ว่าการ "ปรับระดับการสึกหรอ" ที่ผู้ผลิตบางรายนำมาใช้นั้นเกิดจากส่วนต่อประสาน NAND เองและบล็อกไปยังส่วน / ภาคเพื่อบล็อกการจำลองเสมือน
Kris Bahnsen

1
@KrisBahnsen: ฉันคาดหวังว่าผู้ผลิตที่อ้างว่าระดับการสึกหรอจะตรวจสอบการสึกหรอสัมพัทธ์ของบล็อกที่แตกต่างกันและอายุของข้อมูลในนั้นและหากพบว่าบล็อกที่มีข้อมูลมีอายุยาวนานนั้นอยู่ในบล็อกที่มีการสึกหรอน้อยกว่าค่าเฉลี่ย ข้อมูลจากบล็อกเหล่านั้นจะถูกย้ายไปยังบล็อกที่มีการสึกหรอมากขึ้น (เพื่อเป็นไปได้มากที่สุดลดการสึกหรอในอนาคตบนบล็อกเหล่านั้น) สิ่งนี้สามารถปรับปรุงได้โดยปัจจัย 10 อายุการใช้งานของอุปกรณ์ที่ 95% เต็มไปด้วยข้อมูลที่ไม่เคยเปลี่ยนแปลงในขณะที่ส่วนที่เหลืออีก 5% ของพื้นที่ถูกปั่นบ่อย
supercat

ฉันเห็นด้วยถ้าพวกเขาโฆษณาฉันคิดว่าพวกเขาจะสวมใส่เสื้อผ้าจริง ๆ ฉันรู้สึกแย่ในเรื่องทั้งหมดซึ่งฉันขอโทษ ฉันถูกกัดสองสามครั้งด้วยนิสัยใจคอของ SD
Kris Bahnsen

1
@KrisBahnsen: ปัญหาที่ใหญ่ที่สุดที่ฉันคิดว่าเป็นรูปแบบการจำลองเสมือนซึ่งถือว่าเป็นกลุ่มเชิงเส้นของภาค 512 ไบต์ที่ต่อเนื่องกัน มันอาจจะสะดวกในการเชื่อมต่อกับ DOS แต่มันไม่เหมาะกับฮาร์ดแวร์ที่มีอยู่หรือกับสิ่งที่ซอฟต์แวร์โฮสต์ต้องการจริงๆ เปิดหมายเลขบล็อกเป็น 64 บิตและอนุญาตให้ไม่ต่อเนื่องกันโดยพลการจากนั้นจัดเรียงเพื่อให้ไฟล์จัดเก็บอยู่ในบล็อกที่ต่อเนื่องกันตามหลักเหตุผลเสมอ ในการลบไฟล์ลบช่วงของบล็อก
supercat

2
นี่อาจเป็นคำตอบที่ดีที่สุด ฉันสงสัยว่านี่เป็นวิธีที่พวกเขาทำ หากคุณคิดเกี่ยวกับมันไม่มีทางที่จะทำการปรับระดับการสึกหรอด้วยอัลกอริธึมที่ซับซ้อนอย่างแท้จริงเพราะประวัติศาสตร์การสึกหรอจะต้องถูกเก็บไว้ในการ์ดใบเดียวกันและส่วนนั้นจะล้มเหลวก่อน การปรับระดับแบบสุ่มเป็นไปได้ในทางปฏิบัติเท่านั้น ฉันไม่เชื่อว่า SSD นั้นฉลาดกว่า พวกเขาอาจมีบัฟเฟอร์สำรองมากขึ้นแม้ว่าจะเป็นไปได้อย่างแน่นอนว่าพวกเขาเก็บข้อมูลการสึกหรอที่หยาบ (และมีการปรับปรุงไม่บ่อยนัก)
Nimrod

7

Sandisk มีกระดาษสีขาวที่อธิบายตรรกะการปรับระดับการสึกหรอในการ์ดของพวกเขาและดำเนินการประมาณอายุการใช้งานการ์ดภายใต้สถานการณ์ต่างๆ บทสรุปผู้บริหาร: หากคุณไม่ได้ตอกบัตรอย่างไม่หยุดยั้งมันจะคงอยู่นานหลายสิบปี


การเชื่อมโยงนั้นตายแล้วและเนื้อหาดูเหมือนจะถูกลบออก - เพราะมันเปิดเผยมากเกินไปบางที
Cuadue

6
@Cuadue ลิงก์นี้เข้าถึงได้ ในกรณีที่มีการแตกหน้าจะถูกเก็บถาวรในขณะนี้ที่web.archive.org/web/20150326122100/http://ugweb.cs.ualberta.ca/…
Lekensteyn

2

มันน่าสนใจที่จะทราบว่าแม้จะมีอุปกรณ์จำนวนมากที่ทำการ์ด SD และ microSD ที่เสียหายโดยเฉพาะอย่างยิ่งที่มีความหนาแน่นสูงหากแบตเตอรี่ต่ำหรือโทรศัพท์ขัดข้อง / ปิดตัวลง / ฯลฯ ฉันสงสัยว่าปัญหาคือการควบคุมไม่เพียงพอของแหล่งจ่ายแรงดันไฟฟ้าเช่นนี้เป็นที่รู้จักกันดีในบัตรบางคน (ไอโฆษณาT / ไอ) จะส่งผลในปรากฏการณ์ของบัตรไม่สามารถอ่านได้ในผู้อ่านภายนอกบางอย่าง แต่ทำงานได้ดีบนความหลากหลายไมโครจัดทำโดยบางส่วน ร้านคอมพิวเตอร์

ฉันกำลังอยู่ในขั้นตอนการกู้คืนการ์ดในขณะนี้ด้วยความผิดพลาดนี้ส่วนใหญ่แล้วข้อมูลส่วนใหญ่สามารถกู้คืนได้อย่างน่าประหลาดใจ แต่บางภาคส่วนไม่ได้เปลี่ยนแปลงในแต่ละครั้ง การปรับระดับการสึกหรออาจผิดพลาดได้หรือไม่? (ใช่แล้วลองใช้ตัวอ่านหลาย ๆ ตัวผิดแบบเดียวกัน!)


0

นอกจากนี้ยังมีการ์ดซอมบี้ "nuking" ที่ประสบความสำเร็จเช่นการ์ดที่ไม่ได้จัดรูปแบบหรืออ่านได้อย่างเดียว ใช้งานได้กับเปอร์เซ็นต์เพียงเล็กน้อย แต่มีความไวมากกว่าแนวทาง "ทางการ" ส่วนใหญ่

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


1
โดย "nuking" คุณหมายถึงวางไว้ในไมโครเวฟหรือไม่? ที่วัตต์และนานเท่าไหร่?
0x6d64

เอ่อไม่ :-) แล้วยังทำเช่นนั้นทำไมเมื่อปล่อยแสง (RF) จะมีผลที่คล้ายกันและเป็นอันตรายน้อยกว่าวิธีที่ฉันใช้? ปรากฎว่าการ์ด uSD มีความไวมากขึ้นเนื่องจากขาดกรอบโลหะด้านหนึ่ง
Conundrum5642Z

ฉันไม่สามารถยืนยันหรือปฏิเสธว่า nuking อ้างถึงการใช้ "แกดเจ็ต" 5642 + HVPS ด้วยเหตุผลทางกฎหมาย อย่างไรก็ตามมันใช้งานได้บ่อยครั้งและตอนนี้เทคนิคเป็นที่รู้จักในขณะที่ฉันตีพิมพ์ใน HaD ฯลฯ
Conundrum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.