กลับไปหน้าบทความ

อ่าน 11 นาที

เขียนการขยาย

การขยายการเขียน (Write amplification หรือ WA ) เป็นปรากฏการณ์ที่ไม่พึงประสงค์ซึ่งเกี่ยวข้องกับ หน่วยความจำแฟลช และ ไดรฟ์โซลิดสเต ท (SSD)...

เขียนการขยาย

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

การขยายการเขียน (Write amplificationหรือWA ) เป็นปรากฏการณ์ที่ไม่พึงประสงค์ซึ่งเกี่ยวข้องกับหน่วยความจำแฟลชและไดรฟ์โซลิดสเตท (SSD) โดยที่ปริมาณข้อมูลที่เขียนลงในสื่อจัดเก็บข้อมูลจริง ๆ นั้นเป็นจำนวนเท่าของปริมาณข้อมูลเชิงตรรกะที่ตั้งใจจะเขียน

เนื่องจากหน่วยความจำแฟลชต้องถูกลบก่อนที่จะเขียนใหม่ได้ โดยการลบจะมีความละเอียดหยาบกว่าการเขียนมาก[ a ]กระบวนการดำเนินการเหล่านี้ส่งผลให้มีการย้าย (หรือเขียนใหม่) ข้อมูลผู้ใช้และเมตาเดต้ามากกว่าหนึ่งครั้ง ดังนั้น การเขียนข้อมูลใหม่บางส่วนจึงต้องอ่าน อัปเดต และเขียนส่วนของแฟลชที่ใช้ไปแล้วไปยังตำแหน่งใหม่ พร้อมกับการลบตำแหน่งใหม่ก่อนหากเคยใช้มาก่อน เนื่องจากวิธีการทำงานของแฟลช จึงต้องลบและเขียนส่วนของแฟลชมากกว่าปริมาณข้อมูลใหม่ที่ต้องการจริงมาก ผลกระทบแบบทวีคูณนี้จะเพิ่มจำนวนการเขียนที่จำเป็นตลอดอายุการใช้งานของ SSD ซึ่งทำให้ระยะเวลาที่สามารถทำงานได้อย่างน่าเชื่อถือสั้นลง การเขียนที่เพิ่มขึ้นยังใช้แบนด์วิดท์ไปยังหน่วยความจำแฟลช ซึ่งลดประสิทธิภาพการเขียนไปยัง SSD [ 1 ] [ 3 ]ปัจจัยหลายอย่างจะส่งผลต่อ WA ของ SSD บางอย่างสามารถควบคุมได้โดยผู้ใช้ และบางอย่างเป็นผลโดยตรงจากข้อมูลที่เขียนและการใช้งาน SSD

IntelและSiliconSystems (ซึ่งถูกซื้อกิจการโดยWestern Digitalในปี 2009) ใช้คำว่าwrite amplificationในเอกสารและสิ่งพิมพ์ของพวกเขาในปี 2008 [ 4 ]โดยทั่วไป WA จะวัดจากอัตราส่วนของการเขียนที่ส่งไปยังหน่วยความจำแฟลชต่อการเขียนที่มาจากระบบโฮสต์ หากไม่มีการบีบอัด WA จะไม่สามารถลดลงต่ำกว่าหนึ่งได้ การใช้การบีบอัดSandForceอ้างว่าสามารถบรรลุ write amplification ที่ 0.5 [ 5 ]โดยมีค่าที่ดีที่สุดต่ำถึง 0.14 ในคอนโทรลเลอร์ SF-2281 [ 6 ]

การทำงานพื้นฐานของ SSD

หน่วยความจำแฟลช NAND เขียนข้อมูลในหน้าขนาด 4 KiB และลบข้อมูลในบล็อกขนาด 256 KiB [ 2 ]

เนื่องจากลักษณะการทำงานของหน่วยความจำแฟลช ข้อมูลจึงไม่สามารถเขียนทับได้โดยตรงเหมือนกับฮาร์ดดิสก์ไดรฟ์เมื่อเขียนข้อมูลลงใน SSD ครั้งแรกเซลล์ทั้งหมดจะอยู่ในสถานะที่ถูกลบ เพื่อให้สามารถเขียนข้อมูลได้โดยตรงโดยใช้เพจในแต่ละครั้ง (โดยทั่วไปจะ  มีขนาด 4–8 กิโลไบต์ (KB)) ตัวควบคุม SSDบน SSD ซึ่งจัดการหน่วยความจำแฟลชและเชื่อมต่อกับระบบโฮสต์ จะใช้ระบบการแมปแบบลอจิกไปยังแบบกายภาพที่เรียกว่าการกำหนดแอดเดรสบล็อกแบบลอจิก (LBA) ซึ่งเป็นส่วนหนึ่งของเลเยอร์การแปลแฟลช (FTL) [ 7 ]เมื่อมีข้อมูลใหม่เข้ามาแทนที่ข้อมูลเก่าที่เขียนไว้แล้ว ตัวควบคุม SSD จะเขียนข้อมูลใหม่ในตำแหน่งใหม่และอัปเดตการแมปแบบลอจิกเพื่อชี้ไปยังตำแหน่งทางกายภาพใหม่ ข้อมูลในตำแหน่งเดิมจะไม่ถูกต้องอีกต่อไป และจะต้องถูกลบออกก่อนจึงจะสามารถเขียนข้อมูลลงในตำแหน่งนั้นได้อีกครั้ง[ 1 ] [ 8 ]

หน่วยความจำแฟลชสามารถเขียนและลบข้อมูลได้เพียงจำนวนครั้งที่จำกัด ซึ่งมักเรียกว่าจำนวนรอบการเขียน/ลบ (P/E cycles) สูงสุดที่หน่วยความจำแฟลชสามารถรองรับได้ตลอดอายุการใช้งาน หน่วยความจำแฟลชแบบเซลล์ระดับเดียว (SLC) ซึ่งออกแบบมาเพื่อประสิทธิภาพสูงและความทนทานที่ยาวนานกว่า มักทำงานได้ระหว่าง 50,000 ถึง 100,000 รอบ ตั้งแต่ปี 2011 หน่วยความจำแฟลช แบบเซลล์หลายระดับ (MLC) ถูกออกแบบมาสำหรับแอปพลิเคชันที่มีต้นทุนต่ำกว่า และมีจำนวนรอบการ ทำงานลดลงอย่างมาก โดยทั่วไปอยู่ระหว่าง 3,000 ถึง 5,000 รอบ ตั้งแต่ปี 2013 หน่วยความจำแฟลช แบบเซลล์สามระดับ (TLC) (เช่น 3D NAND) ก็เริ่มวางจำหน่าย โดยมีจำนวนรอบการทำงานลดลงเหลือเพียง 1,000 รอบ การเขียน/ลบ (P/E cycles) การลดจำนวนรอบการเขียนลงถือเป็นสิ่งที่พึงปรารถนามากกว่า เนื่องจากสอดคล้องกับจำนวนรอบการเขียน/ลบที่ลดลงในหน่วยความจำแฟลช และส่งผลให้มีอายุการใช้งานของ SSD ยาวนานขึ้น[ 1 ]การสึกหรอของหน่วยความจำแฟลชอาจทำให้ประสิทธิภาพลดลง เช่น ความเร็ว I/O ลดลง

การคำนวณค่า

การขยายการเขียนมีอยู่ใน SSD มาโดยตลอดก่อนที่จะมีการกำหนดคำนี้ แต่ในปี 2008 ทั้ง Intel [ 4 ] [ 9 ]และ SiliconSystems เริ่มใช้คำนี้ในเอกสารและสิ่งพิมพ์ของพวกเขา[ 10 ] SSD ทุกตัวมีค่าการขยายการเขียน และค่านี้ขึ้นอยู่กับทั้งสิ่งที่กำลังเขียนอยู่ในปัจจุบันและสิ่งที่เขียนลงใน SSD ก่อนหน้านี้ เพื่อให้สามารถวัดค่าสำหรับ SSD เฉพาะได้อย่างแม่นยำ ควรทำการทดสอบที่เลือกเป็นเวลานานพอเพื่อให้แน่ใจว่าไดรฟ์อยู่ในสภาวะคงที่[ 3 ]

สูตรง่ายๆ ในการคำนวณการขยายการเขียนของ SSD คือ: [ 1 ] [ 11 ] [ 12 ]

ปริมาณทั้งสองที่ใช้ในการคำนวณสามารถได้รับผ่าน สถิติ SMART (ATA F7/F8; [ 13 ] ATA F1/F9)

ปัจจัยที่มีผลต่อมูลค่า

ปัจจัยหลายอย่างส่งผลต่อการขยายการเขียนของ SSD ตารางด้านล่างแสดงรายการปัจจัยหลักและวิธีที่ปัจจัยเหล่านั้นส่งผลต่อการขยายการเขียน สำหรับปัจจัยที่เป็นตัวแปร ตารางจะระบุว่ามี ความสัมพันธ์ โดยตรงหรือ ความสัมพันธ์ ผกผันตัวอย่างเช่น เมื่อปริมาณการจัดสรรเกินเพิ่มขึ้น การขยายการเขียนจะลดลง (ความสัมพันธ์ผกผัน) หากปัจจัยเป็นฟังก์ชันสลับ ( เปิดใช้งานหรือปิดใช้งาน ) จะมีความสัมพันธ์เป็นบวกหรือลบ[ 1 ] [ 7 ] [ 14 ]

เขียนตัวประกอบการขยาย
ปัจจัย คำอธิบาย พิมพ์ ความสัมพันธ์*
การเก็บขยะประสิทธิภาพของอัลกอริธึมที่ใช้ในการเลือกบล็อกที่ดีที่สุดถัดไปเพื่อลบและเขียนทับ ตัวแปร ตรงกันข้าม (ดี)
การจัดสรรทรัพยากรเกินความจำเป็นเปอร์เซ็นต์ของความจุส่วนเกินที่จัดสรรให้กับตัวควบคุม SSD ตัวแปร ตรงกันข้าม (ดี)
บัฟเฟอร์ DRAM ในตัวของอุปกรณ์ บัฟเฟอร์ DRAM ในตัวของอุปกรณ์จัดเก็บข้อมูล (โดยปกติคือ SSD) สามารถใช้เพื่อลดการขยายการเขียนได้ ตัวแปร ตรงกันข้าม (ดี)
คำสั่ง TRIMสำหรับ SATA หรือ UNMAP สำหรับ SCSI คำสั่งเหล่านี้ต้องถูกส่งโดยระบบปฏิบัติการ (OS) ซึ่งจะแจ้งให้อุปกรณ์จัดเก็บข้อมูลทราบว่าหน้าใดบ้างที่มีข้อมูลที่ไม่ถูกต้อง SSD ที่ได้รับคำสั่งเหล่านี้จะสามารถเรียกคืนบล็อกที่มีหน้าเหล่านั้นเป็นพื้นที่ว่างได้เมื่อมีการลบข้อมูล แทนที่จะคัดลอกข้อมูลที่ไม่ถูกต้องไปยังหน้าว่าง สลับ ในแง่บวก (ดี)
พื้นที่จัดเก็บแบบแบ่งโซน การจัดเก็บ ข้อมูลแบบแบ่งโซน (Zoned Storage ) เป็นชุดเทคโนโลยีการจัดเก็บข้อมูลที่ช่วยลดการเขียนข้อมูลซ้ำซ้อนและต้นทุนผลิตภัณฑ์ โดยจะแบ่งอุปกรณ์จัดเก็บข้อมูลออกเป็นหลายโซน (โดยปกติจะเป็นบล็อกของหน่วยความจำแฟลช) และอนุญาตให้ระบบปฏิบัติการ (OS) เขียนข้อมูลลงในแต่ละโซนตามลำดับ เทคโนโลยีนี้ต้องการทั้งระบบปฏิบัติการและอุปกรณ์ (เช่น SSD) ที่รองรับคุณสมบัตินี้ นอกจากนี้ยังช่วยปรับปรุงประสิทธิภาพการอ่านเนื่องจากสามารถลดการรบกวนในการอ่านได้ สลับ ในแง่บวก (ดี)
พื้นที่ว่างสำหรับผู้ใช้เปอร์เซ็นต์ของความจุของผู้ใช้ที่ว่างอยู่โดยไม่มีข้อมูลของผู้ใช้จริง จำเป็นต้องใช้ TRIM มิเช่นนั้น SSD จะไม่ได้รับประโยชน์ใดๆ จากความจุของผู้ใช้ที่ว่างอยู่ ตัวแปร ตรงกันข้าม (ดี)
ลบข้อมูลอย่างปลอดภัยลบข้อมูลผู้ใช้และข้อมูลเมตาที่เกี่ยวข้องทั้งหมด ซึ่งจะรีเซ็ต SSD ให้กลับสู่ประสิทธิภาพเริ่มต้นเหมือนตอนแกะกล่อง (จนกว่ากระบวนการเก็บกวาดข้อมูลที่ไม่จำเป็นจะเริ่มทำงานอีกครั้ง) สลับ ในแง่บวก (ดี)
การปรับระดับการสึกหรอประสิทธิภาพของอัลกอริธึมที่รับประกันว่าทุกบล็อกจะถูกเขียนลงในบล็อกอื่นๆ ด้วยจำนวนครั้งเท่ากันและสม่ำเสมอที่สุดเท่าที่จะเป็นไปได้ ตัวแปร พึ่งพา
การแยกข้อมูลคงที่และข้อมูลไดนามิกการจัดกลุ่มข้อมูลตามความถี่ในการเปลี่ยนแปลง สลับ ในแง่บวก (ดี)
การเขียนตามลำดับตามทฤษฎี การเขียนข้อมูลแบบเรียงลำดับจะทำให้เกิดการขยายการเขียนน้อยกว่า แต่ปัจจัยอื่นๆ ก็ยังคงส่งผลต่อสถานการณ์จริงอยู่ดี สลับ ในแง่บวก (ดี)
การเขียนแบบสุ่มการเขียนข้อมูลที่ไม่เรียงลำดับและขนาดข้อมูลที่เล็กลงจะมีผลกระทบต่อการขยายการเขียนมากขึ้น สลับ เชิงลบ (ไม่ดี)
การบีบอัดข้อมูลซึ่งรวมถึงการกำจัดข้อมูลซ้ำซ้อนอัตราการเขียนข้อมูลซ้ำซ้อนลดลงและความเร็วของ SSD เพิ่มขึ้นเมื่อการบีบอัดและการกำจัดข้อมูลซ้ำซ้อนช่วยลดข้อมูลที่ไม่จำเป็นลงได้มากขึ้น ตัวแปร ตรงกันข้าม (ดี)
การใช้ NAND แบบหลายระดับ (รวมถึง TLC/QLC และรุ่นต่อๆ ไป) ในโหมด SLCวิธีการนี้จะเขียนข้อมูลด้วยอัตราหนึ่งบิตต่อเซลล์ แทนที่จะเป็นจำนวนบิตต่อเซลล์ตามที่ออกแบบไว้ (โดยปกติคือสองบิตต่อเซลล์หรือสามบิตต่อเซลล์) เพื่อเพิ่มความเร็วในการอ่านและเขียน หากความจุของ NAND ในโหมด SLC ใกล้ถึงขีดจำกัด SSD จะต้องเขียนข้อมูลที่เก่าที่สุดที่เขียนในโหมด SLC ใหม่ไปยังโหมด MLC/TLC เพื่อให้มีพื้นที่ว่างใน NAND ในโหมด SLC สำหรับการลบข้อมูลเพื่อรับข้อมูลเพิ่มเติม อย่างไรก็ตาม วิธีนี้สามารถลดการสึกหรอได้โดยการเก็บหน้าที่เปลี่ยนแปลงบ่อยไว้ในโหมด SLC เพื่อหลีกเลี่ยงการเขียนโปรแกรมการเปลี่ยนแปลงเหล่านี้ในโหมด MLC/TLC เนื่องจาก1การเขียนในโหมด MLC/TLC จะสร้างความเสียหายให้กับแฟลชมากกว่าการเขียนในโหมด SLC ดังนั้น วิธีนี้จึงเพิ่มการขยายการเขียน แต่สามารถลดการสึกหรอได้เมื่อรูปแบบการเขียนกำหนดเป้าหมายไปที่หน้าที่เขียนบ่อย อย่างไรก็ตาม รูปแบบการเขียนแบบเรียงลำดับและแบบสุ่มจะทำให้ความเสียหายรุนแรงขึ้น เนื่องจากไม่มีหรือมีหน้าที่เขียนบ่อยน้อยมากที่สามารถเก็บไว้ในพื้นที่ SLC ได้ ทำให้ข้อมูลเก่าจำเป็นต้องถูกเขียนใหม่ไปยัง MLC/TLC จากพื้นที่ SLC อย่างต่อเนื่อง วิธีการนี้บางครั้งเรียกว่า "แคช SLC" หรือ "บัฟเฟอร์ SLC" โดยมี "บัฟเฟอร์ SLC" สองประเภท คือ บัฟเฟอร์ SLC แบบคงที่ (บัฟเฟอร์ SLC ที่ใช้พื้นที่เกินความจำเป็น) และบัฟเฟอร์ SLC แบบไดนามิก (เปลี่ยนแปลงขนาดแบบไดนามิกตามปัจจัยต่างๆ เช่น ความจุว่างของผู้ใช้) อย่างไรก็ตาม บัฟเฟอร์ SLC โดยทั่วไปไม่ได้ช่วยเพิ่มความเร็วในการอ่าน การจำลองแฟลชแบบหลายระดับ ทั้งหมด ลงในแฟลช SLC เรียกว่า "Pseudo SLC" ซึ่งจะลดความจุลง แต่จะเพิ่มความทนทานและประสิทธิภาพอย่างมาก สลับ พึ่งพา
คัดลอกเมื่อเขียนระบบไฟล์ เมื่อเปรียบเทียบกับระบบไฟล์แบบบันทึกการ เปลี่ยนแปลง ระบบไฟล์แบบ คัดลอกเมื่อเขียนที่ทันสมัยสามารถลดการขยายการเขียนได้[ 15 ]ตัวแปร ตรงกันข้าม (ดี)
*คำจำกัดความของความสัมพันธ์
พิมพ์ ความสัมพันธ์ถูกเปลี่ยนแปลง คำอธิบาย
ตัวแปร โดยตรง เมื่อค่าตัวประกอบเพิ่มขึ้น ค่า WA ก็จะเพิ่มขึ้นด้วย
ผกผัน เมื่อค่าตัวประกอบเพิ่มขึ้น ค่า WA จะลดลง
พึ่งพา ขึ้นอยู่กับผู้ผลิตและรุ่นต่างๆ
สลับ เชิงบวก เมื่อมีปัจจัยดังกล่าวอยู่ ค่า WA จะลดลง
เชิงลบ เมื่อมีปัจจัยดังกล่าวอยู่ ค่า WA จะเพิ่มขึ้น
พึ่งพา ขึ้นอยู่กับผู้ผลิตและรุ่นต่างๆ

การเก็บขยะ

หน้าต่างๆ จะถูกเขียนลงในบล็อกจนกว่าจะเต็ม จากนั้น หน้าที่มีข้อมูลปัจจุบันจะถูกย้ายไปยังบล็อกใหม่ และบล็อกเก่าจะถูกลบ[ 2 ]

ข้อมูลจะถูกเขียนลงในหน่วยความจำแฟลชในหน่วยที่เรียกว่าเพจ (ประกอบด้วยเซลล์หลายเซลล์) อย่างไรก็ตาม หน่วยความจำสามารถลบได้เฉพาะในหน่วยที่ใหญ่กว่าที่เรียกว่าบล็อก (ประกอบด้วยเพจหลายเพจ) [ 2 ]หากข้อมูลในบางเพจของบล็อกไม่จำเป็นอีกต่อไป (เรียกอีกอย่างว่าเพจที่ล้าสมัย) เฉพาะเพจที่มีข้อมูลที่ดีในบล็อกนั้นเท่านั้นที่จะถูกอ่านและเขียนใหม่ลงในบล็อกว่างที่ถูกลบไปก่อนหน้านี้[ 3 ]จากนั้นเพจว่างที่เหลือจากการไม่ย้ายข้อมูลที่ล้าสมัยจะพร้อมสำหรับข้อมูลใหม่ กระบวนการนี้เรียกว่าการเก็บขยะ (GC) [ 1 ] [ 11 ] SSD ทุกตัวมีการเก็บขยะในระดับหนึ่ง แต่อาจแตกต่างกันในเรื่องเวลาและความเร็วในการดำเนินการ[ 11 ]การเก็บขยะเป็นส่วนสำคัญของการขยายการเขียนบน SSD [ 1 ] [ 11 ]

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

การเก็บขยะยังดำเนินการอื่นๆ อีก เช่น การล้างบัฟเฟอร์ (บัฟเฟอร์ SLC หรือบัฟเฟอร์ DRAM) และ การ รีเฟรชหน่วยความจำแฟลช[ 17 ]

การเก็บขยะพื้นหลัง

กระบวนการเก็บขยะเกี่ยวข้องกับการอ่านและเขียนข้อมูลซ้ำลงในหน่วยความจำแฟลช ซึ่งหมายความว่าการเขียนใหม่จากโฮสต์จะต้องอ่านบล็อกทั้งหมดก่อน เขียนส่วนของบล็อกที่ยังมีข้อมูลที่ถูกต้อง และจากนั้นจึงเขียนข้อมูลใหม่ ซึ่งอาจลดประสิทธิภาพของระบบลงอย่างมาก[ 18 ]ตัวควบคุม SSD หลายตัวใช้การเก็บขยะพื้นหลัง ( BGC ) ซึ่งบางครั้งเรียกว่าการเก็บขยะขณะไม่ได้ใช้งานหรือการเก็บขยะในเวลาว่าง ( ITGC ) โดยตัวควบคุมจะใช้เวลาว่างในการรวมบล็อกของหน่วยความจำแฟลชก่อนที่โฮสต์จะต้องเขียนข้อมูลใหม่ ซึ่งช่วยให้ประสิทธิภาพของอุปกรณ์ยังคงสูงอยู่[ 19 ]

หากตัวควบคุมทำการเก็บกวาดขยะพื้นหลังเพื่อกำจัดบล็อกส่วนเกินทั้งหมดก่อนที่จะจำเป็นจริงๆ ข้อมูลใหม่ที่เขียนจากโฮสต์จะสามารถเขียนได้โดยไม่ต้องย้ายข้อมูลใดๆ ล่วงหน้า ทำให้ประสิทธิภาพการทำงานอยู่ที่ความเร็วสูงสุด ข้อเสียคือ บล็อกข้อมูลบางส่วนนั้นโฮสต์ไม่จำเป็นต้องใช้และจะถูกลบในที่สุด แต่ระบบปฏิบัติการไม่ได้แจ้งข้อมูลนี้ให้ตัวควบคุมทราบ (จนกระทั่ง มีการนำ TRIMมาใช้) ผลที่ได้คือ ข้อมูลที่จะถูกลบในไม่ช้าจะถูกเขียนใหม่ไปยังตำแหน่งอื่นในหน่วยความจำแฟลช ทำให้การเขียนเพิ่มขึ้น ใน SSD บางรุ่นจากOCZการเก็บกวาดขยะพื้นหลังจะล้างบล็อกเพียงเล็กน้อยแล้วหยุดลง ซึ่งจะช่วยจำกัดปริมาณการเขียนที่มากเกินไป[ 11 ]อีกวิธีหนึ่งคือการมีระบบเก็บกวาดขยะที่มีประสิทธิภาพซึ่งสามารถดำเนินการย้ายที่จำเป็นพร้อมกับการเขียนจากโฮสต์ได้ วิธีนี้มีประสิทธิภาพมากกว่าในสภาพแวดล้อมที่มีการเขียนสูงซึ่ง SSD แทบจะไม่ว่าง[ 20 ]ตัวควบคุม SSD ของ SandForce [ 18 ]และระบบจากViolin Memoryมีความสามารถนี้[ 14 ]

การเก็บขยะที่คำนึงถึงระบบไฟล์

ในปี 2553 ผู้ผลิตบางราย (โดยเฉพาะ Samsung) ได้แนะนำตัวควบคุม SSD ที่ขยายแนวคิดของ BGC เพื่อวิเคราะห์ระบบไฟล์ที่ใช้บน SSD เพื่อระบุไฟล์ที่ถูกลบเมื่อเร็ว ๆ นี้และพื้นที่ที่ไม่ได้แบ่งพาร์ติชั่น Samsung อ้างว่าสิ่งนี้จะทำให้มั่นใจได้ว่าแม้แต่ระบบ (ระบบปฏิบัติการและฮาร์ดแวร์ตัวควบคุม SATA) ที่ไม่รองรับTRIMก็สามารถบรรลุประสิทธิภาพที่คล้ายคลึงกันได้ การทำงานของการใช้งานของ Samsung ดูเหมือนจะสมมติและต้องการระบบไฟล์NTFS [ 21 ]ยังไม่ชัดเจนว่าคุณสมบัตินี้ยังคงมีอยู่ใน SSD ที่วางจำหน่ายในปัจจุบันจากผู้ผลิตเหล่านี้หรือ ไม่ มีรายงาน ความเสียหายของข้อมูล ในระบบ บนไดรฟ์เหล่านี้หากไม่ได้ฟอร์แมตอย่างถูกต้องโดยใช้MBRและ NTFS

ตัดแต่ง

TRIMเป็นคำสั่ง SATA ที่ช่วยให้ระบบปฏิบัติการบอก SSD ว่าบล็อกข้อมูลที่บันทึกไว้ก่อนหน้านี้บล็อกใดที่ไม่จำเป็นอีกต่อไปอันเป็นผลมาจากการลบไฟล์หรือการฟอร์แมตไดรฟ์ เมื่อ LBA ถูกแทนที่โดยระบบปฏิบัติการ เช่น การเขียนทับไฟล์ SSD จะทราบว่า LBA เดิมสามารถถูกทำเครื่องหมายว่าล้าสมัยหรือไม่ถูกต้อง และจะไม่บันทึกบล็อกเหล่านั้นในระหว่างการเก็บขยะ หากผู้ใช้หรือระบบปฏิบัติการลบไฟล์ (ไม่ใช่แค่ลบส่วนต่างๆ ของไฟล์) โดยทั่วไปไฟล์จะถูกทำเครื่องหมายสำหรับการลบ แต่เนื้อหาจริงบนดิสก์จะไม่ถูกลบออกไปจริงๆ เนื่องจากเหตุนี้ SSD จึงไม่ทราบว่าสามารถลบ LBA ที่ไฟล์เคยครอบครองอยู่ก่อนหน้านี้ได้ ดังนั้น SSD จะยังคงรวม LBA ดังกล่าวไว้ในการเก็บขยะต่อไป[ 22 ] [ 23 ] [ 24 ]

การนำคำสั่ง TRIM มาใช้ช่วยแก้ปัญหานี้สำหรับระบบปฏิบัติการที่รองรับ เช่น Windows 7 [ 23 ] Mac OS ( รุ่นล่าสุดของ Snow Leopard, Lion และ Mountain Lion ซึ่งได้รับการแก้ไขในบางกรณี) [ 25 ] FreeBSDตั้งแต่เวอร์ชัน 8.1 [ 26 ]และLinuxตั้งแต่เวอร์ชัน 2.6.33 ของLinux kernel mainline [ 27 ] เมื่อไฟล์ถูกลบอย่างถาวรหรือไดรฟ์ถูกฟอร์แมต ระบบปฏิบัติการจะส่งคำสั่ง TRIM พร้อมกับ LBA ที่ไม่มีข้อมูลที่ถูกต้องอีกต่อไป ซึ่ง จะแจ้งให้ SSD ทราบว่า LBA ที่ใช้งานอยู่สามารถลบและนำกลับมาใช้ใหม่ได้ ซึ่งจะช่วยลดจำนวน LBA ที่ต้องย้ายระหว่างการเก็บขยะ ผลลัพธ์คือ SSD จะมีพื้นที่ว่างมากขึ้น ทำให้การเขียนซ้ำลดลงและมีประสิทธิภาพสูงขึ้น[ 22 ] [ 23 ] [ 24 ]

ข้อจำกัดและการพึ่งพา

คำสั่ง TRIM ยังต้องการการสนับสนุนจาก SSD ด้วย หากเฟิร์มแวร์ใน SSD ไม่รองรับคำสั่ง TRIM LBA ที่ได้รับพร้อมกับคำสั่ง TRIM จะไม่ถูกทำเครื่องหมายว่าไม่ถูกต้อง และไดรฟ์จะยังคงรวบรวมข้อมูลขยะต่อไปโดยถือว่าข้อมูลนั้นยังคงถูกต้อง เฉพาะเมื่อระบบปฏิบัติการบันทึกข้อมูลใหม่ลงใน LBA เหล่านั้น SSD จึงจะทราบว่าต้องทำเครื่องหมาย LBA เดิมว่าไม่ถูกต้อง[ 24 ]ผู้ผลิต SSD ที่ไม่ได้สร้างการสนับสนุน TRIM ไว้ในไดรฟ์ตั้งแต่แรกสามารถเสนอการอัปเกรดเฟิร์มแวร์ให้กับผู้ใช้ หรือจัดหาโปรแกรมยูทิลิตี้แยกต่างหากที่ดึงข้อมูลเกี่ยวกับข้อมูลที่ไม่ถูกต้องจากระบบปฏิบัติการและทำการ TRIM SSD แยกต่างหาก ประโยชน์จะเกิดขึ้นได้ก็ต่อเมื่อผู้ใช้เรียกใช้โปรแกรมยูทิลิตี้ดังกล่าวในแต่ละครั้ง ผู้ใช้สามารถตั้งค่าโปรแกรมยูทิลิตี้ดังกล่าวให้ทำงานเป็นระยะในพื้นหลังเป็นงานที่กำหนดเวลาโดยอัตโนมัติ[ 18 ]

เพียงเพราะ SSD รองรับคำสั่ง TRIM ไม่ได้หมายความว่ามันจะสามารถทำงานได้ด้วยความเร็วสูงสุดทันทีหลังจากคำสั่ง TRIM พื้นที่ที่ถูกปล่อยว่างหลังจากคำสั่ง TRIM อาจอยู่ในตำแหน่งสุ่มที่กระจายอยู่ทั่ว SSD จะต้องมีการเขียนข้อมูลและเก็บกวาดขยะหลายรอบก่อนที่พื้นที่เหล่านั้นจะถูกรวมเข้าด้วยกันเพื่อแสดงประสิทธิภาพที่ดีขึ้น[ 24 ]

แม้ว่าระบบปฏิบัติการและ SSD จะได้รับการกำหนดค่าให้รองรับคำสั่ง TRIM แล้วก็ตาม เงื่อนไขอื่นๆ อาจขัดขวางประโยชน์ใดๆ จาก TRIM ได้ ในช่วงต้นปี 2010 ฐานข้อมูลและระบบ RAID ยังไม่รองรับ TRIM และด้วยเหตุนี้จึงไม่ทราบวิธีการส่งต่อข้อมูลดังกล่าวไปยัง SSD ในกรณีเหล่านั้น SSD จะยังคงบันทึกและเก็บกวาดบล็อกเหล่านั้นต่อไปจนกว่าระบบปฏิบัติการจะใช้ LBA เหล่านั้นสำหรับการเขียนใหม่[ 24 ]

ประโยชน์ที่แท้จริงของคำสั่ง TRIM ขึ้นอยู่กับพื้นที่ว่างของผู้ใช้บน SSD หากความจุของผู้ใช้บน SSD คือ 100 GB และผู้ใช้บันทึกข้อมูลจริง 95 GB ลงในไดรฟ์ การดำเนินการ TRIM ใดๆ ก็จะไม่เพิ่มพื้นที่ว่างมากกว่า 5 GB สำหรับการเก็บขยะและการปรับระดับการสึกหรอ ในสถานการณ์เหล่านั้น การเพิ่มปริมาณการจัดสรรเกิน 5 GB จะช่วยให้ SSD มีประสิทธิภาพที่สม่ำเสมอมากขึ้น เนื่องจากจะมีพื้นที่ว่างเพิ่มเติม 5 GB เสมอโดยไม่ต้องรอคำสั่ง TRIM จากระบบปฏิบัติการ[ 24 ]

การจัดสรรทรัพยากรเกินความจำเป็น

แหล่งที่มา (ระดับ) สามแหล่งของการจัดสรรเกินที่พบใน SSD [ 18 ] [ 28 ]

การจัดสรรพื้นที่เกิน (บางครั้งสะกดว่า OP, over provisioning หรือ overprovisioning) คือความแตกต่างระหว่างความจุทางกายภาพของหน่วยความจำแฟลชและความจุเชิงตรรกะที่แสดงผ่านระบบปฏิบัติการ (OS) ว่าพร้อมใช้งานสำหรับผู้ใช้ ในระหว่างการดำเนินการเก็บขยะ การปรับระดับการสึกหรอ และการแมปบล็อกเสียบน SSD พื้นที่เพิ่มเติมจากการจัดสรรพื้นที่เกินจะช่วยลดการขยายการเขียนเมื่อคอนโทรลเลอร์เขียนไปยังหน่วยความจำแฟลช[ 4 ] [ 28 ] [ 29 ]พื้นที่จัดสรรเกินยังใช้สำหรับจัดเก็บข้อมูลเฟิร์มแวร์ เช่น ตาราง FTLผลิตภัณฑ์แฟลชระดับกลางและระดับสูงมักจะมีพื้นที่จัดสรรเกินที่ใหญ่กว่า การจัดสรรพื้นที่เกินแสดงเป็นอัตราส่วนร้อยละของความจุส่วนเกินต่อความจุที่ผู้ใช้สามารถใช้งานได้: [ 30 ]

การจัดสรรทรัพยากรเกินความจำเป็นมักเกิดจากสามสาเหตุหลัก:

  1. การคำนวณความจุและการใช้กิกะไบต์ (GB) เป็นหน่วยแทนกิกะไบต์ (GiB) ทั้งผู้ผลิต HDD และ SSD ใช้คำว่า GB เพื่อแสดงถึงGB ในระบบเลขฐานสิบหรือ 1,000,000,000 (= 10⁹ )ไบต์ เช่นเดียวกับอุปกรณ์จัดเก็บข้อมูลอิเล็กทรอนิกส์อื่นๆ หน่วยความจำแฟลชถูกสร้างขึ้นโดยใช้กำลังของสอง ดังนั้นการคำนวณความจุทางกายภาพของ SSD จะอิงตาม 1,073,741,824 (= 2³⁰ )ต่อGBหรือ GiB ในระบบเลขฐานสอง ความแตกต่างระหว่างสองค่านี้คือ 7.37% (= (2³⁰  10⁹ ) / 10⁹ ×  100%) ดังนั้น SSD ขนาด 128 GB ที่ไม่มีการจัดสรรพื้นที่เกิน (over-provisioning) จะให้พื้นที่ 128,000,000,000 ไบต์แก่ผู้ใช้ (จากทั้งหมด 137,438,953,472 ไบต์) โดยทั่วไปแล้ว 7.37% เริ่มต้นนี้จะไม่ถูกนับรวมในจำนวนการจัดสรรเกินทั้งหมด และปริมาณที่มีอยู่จริงมักจะน้อยกว่า เนื่องจากจำเป็นต้องมีพื้นที่จัดเก็บบางส่วนสำหรับคอนโทรลเลอร์ในการติดตามข้อมูลที่ไม่ใช่ระบบปฏิบัติการ เช่น แฟล็กสถานะบล็อก[ 28 ] [ 30 ]ตัวเลข 7.37% อาจขยายไปถึง 9.95% ในช่วงเทราไบต์ เนื่องจากผู้ผลิตใช้ประโยชน์จากความแตกต่างของหน่วยไบนารี/ทศนิยมในระดับที่สูงขึ้น เพื่อนำเสนอไดรฟ์ขนาด 1 หรือ 2 TB ที่มีความจุ 1000 และ 2000 GB (931 และ 1862 GiB) ตามลำดับ แทนที่จะเป็น 1024 และ 2048 GB (เนื่องจาก 1 TB = 1,000,000,000,000 ไบต์ในระบบเลขฐานสิบ แต่ 1,099,511,627,776 ในระบบเลขฐานสอง)
  2. การตัดสินใจของผู้ผลิต โดยทั่วไปจะกำหนดไว้ที่ 0%, 7%, 14% หรือ 28% โดยพิจารณาจากความแตกต่างระหว่างกิกะไบต์ทศนิยมของความจุทางกายภาพและกิกะไบต์ทศนิยมของพื้นที่ว่างที่ผู้ใช้สามารถใช้งานได้ การจัดสรรพื้นที่เกิน (Overprovisioning หรือ OP) ประเภทนี้มักเรียกว่า OP แบบคงที่ ตัวอย่างเช่น ผู้ผลิตอาจเผยแพร่ข้อมูลจำเพาะสำหรับ SSD ของตนที่ 100, 112, 120 หรือ 128 GB โดยอิงจากความจุที่เป็นไปได้ 128 GB ความแตกต่างนี้คือ 28%, 14%, 7% และ 0% ตามลำดับ และเป็นพื้นฐานสำหรับผู้ผลิตในการอ้างว่าพวกเขามีการจัดสรรพื้นที่เกิน 28% บนไดรฟ์ของตน ซึ่งไม่นับรวมความจุเพิ่มเติม 7.37% ที่มีอยู่จากความแตกต่างระหว่างกิกะไบต์ทศนิยมและกิกะไบต์ไบนารี[ 28 ] [ 30 ]
  3. พื้นที่ว่างที่ผู้ใช้ทราบบนไดรฟ์ ช่วยเพิ่มความทนทานและประสิทธิภาพโดยแลกกับการรายงานส่วนที่ไม่ได้ใช้งาน หรือแลกกับความจุในปัจจุบันหรืออนาคต พื้นที่ว่างนี้สามารถระบุได้โดยระบบปฏิบัติการโดยใช้คำสั่ง TRIM OP ประเภทนี้มักเรียกว่า OP แบบไดนามิก ในทางกลับกัน SSD บางตัวมีโปรแกรมยูทิลิตี้ที่อนุญาตให้ผู้ใช้เลือกโอเวอร์โพรวิชันนิ่งเพิ่มเติมได้ ยิ่งไปกว่านั้น หาก SSD ใด ๆ ถูกตั้งค่าด้วยเค้าโครงพาร์ติชั่นโดยรวมที่เล็กกว่า 100% ของพื้นที่ที่มีอยู่ พื้นที่ที่ไม่ได้แบ่งพาร์ติชั่นนั้นจะถูกใช้โดย SSD โดยอัตโนมัติเป็นโอเวอร์โพรวิชันนิ่งเช่นกัน[ 30 ]แหล่งที่มาของโอเวอร์โพรวิชันนิ่งอีกแหล่งหนึ่งคือขีดจำกัดพื้นที่ว่างขั้นต่ำของระบบปฏิบัติการ ระบบปฏิบัติการบางระบบรักษาพื้นที่ว่างขั้นต่ำต่อไดรฟ์ โดยเฉพาะอย่างยิ่งบนไดรฟ์บูตหรือไดรฟ์หลัก หาก SSD สามารถระบุพื้นที่เพิ่มเติมนี้ได้ อาจผ่านการใช้คำสั่ง TRIM อย่างต่อเนื่อง ก็จะทำหน้าที่เป็นโอเวอร์โพรวิชันนิ่งแบบกึ่งถาวร การจัดสรรทรัพยากรเกินความจำเป็นมักจะลดความจุของผู้ใช้ลง ไม่ว่าจะชั่วคราวหรือถาวร แต่จะได้คืนมาในรูปของการลดการขยายการเขียน เพิ่มความทนทาน และเพิ่มประสิทธิภาพ[ 20 ] [ 29 ] [ 31 ] [ 32 ] [ 33 ]

พื้นที่ว่างสำหรับผู้ใช้

ตัวควบคุม SSD จะใช้บล็อกว่างบน SSD สำหรับการเก็บขยะและการปรับระดับการสึกหรอ ส่วนของความจุของผู้ใช้ที่ว่างจากข้อมูลของผู้ใช้ (ไม่ว่าจะถูก TRIM แล้วหรือไม่ได้เขียนตั้งแต่แรก) จะมีลักษณะเหมือนกับพื้นที่สำรอง (จนกว่าผู้ใช้จะบันทึกข้อมูลใหม่ลงใน SSD) หากผู้ใช้บันทึกข้อมูลที่ใช้ความจุของผู้ใช้เพียงครึ่งหนึ่งของไดรฟ์ทั้งหมด อีกครึ่งหนึ่งของความจุของผู้ใช้จะมีลักษณะเหมือนพื้นที่สำรองเพิ่มเติม (ตราบใดที่ระบบรองรับคำสั่ง TRIM) [ 24 ] [ 34 ]

บัฟเฟอร์ DRAM

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

ลบข้อมูลอย่างปลอดภัย

คำสั่ง ATA Secure Erase ออกแบบมาเพื่อลบข้อมูลผู้ใช้ทั้งหมดออกจากไดรฟ์ สำหรับ SSD ที่ไม่มีการเข้ารหัสในตัว คำสั่งนี้จะทำให้ไดรฟ์กลับสู่สถานะเดิมเหมือนตอนแกะกล่อง ซึ่งในขั้นต้นจะคืนค่าประสิทธิภาพให้สูงที่สุดเท่าที่จะเป็นไปได้และเพิ่มประสิทธิภาพการเขียนให้ดีที่สุด (ตัวเลขต่ำที่สุด) แต่ทันทีที่ไดรฟ์เริ่มทำการเก็บกวาดขยะอีกครั้ง ประสิทธิภาพและประสิทธิภาพการเขียนก็จะเริ่มกลับไปสู่ระดับเดิม[ 35 ] [ 36 ] เครื่องมือหลายอย่างใช้คำสั่ง ATA Secure Erase เพื่อรีเซ็ตไดรฟ์และมีอินเทอร์เฟซผู้ใช้ให้ใช้ งานด้วย เครื่องมือฟรีตัวหนึ่งที่มักถูกอ้างอิงในอุตสาหกรรมคือHDDerase [ 36 ] [ 37 ] GPartedและUbuntu live CD ให้ระบบ Linux ที่สามารถบูตได้พร้อมยูทิลิตี้ดิสก์ รวมถึงการลบข้อมูลอย่างปลอดภัย[ 38 ]

ไดรฟ์ที่เข้ารหัสการเขียนทั้งหมดแบบเรียลไทม์สามารถใช้การลบข้อมูลอย่างปลอดภัยของ ATA ได้อีกวิธีหนึ่ง โดยจะทำการล้าง ข้อมูลทั้งหมด และสร้างคีย์การเข้ารหัสแบบสุ่มใหม่ทุกครั้งที่มีการลบข้อมูลอย่างปลอดภัย ด้วยวิธีนี้ ข้อมูลเก่าจะไม่สามารถอ่านได้อีกต่อไป เนื่องจากไม่สามารถถอดรหัสได้[ 39 ]ไดรฟ์บางตัวที่มีการเข้ารหัสในตัวจะทำการล้างบล็อกทั้งหมดทางกายภาพหลังจากนั้นด้วย ในขณะที่ไดรฟ์อื่นๆ อาจต้องส่งคำสั่ง TRIM ไปยังไดรฟ์เพื่อคืนค่าไดรฟ์กลับสู่สถานะเดิมเมื่อแกะกล่อง (มิฉะนั้นประสิทธิภาพอาจไม่สูงสุด) [ 40 ]

การปรับระดับการสึกหรอ

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

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

การแยกข้อมูลคงที่และข้อมูลไดนามิก

การแยกข้อมูลคงที่ (เย็น) และข้อมูลไดนามิก (ร้อน) เพื่อลดการขยายการเขียนไม่ใช่กระบวนการที่ง่ายสำหรับตัวควบคุม SSD กระบวนการนี้ต้องการให้ตัวควบคุม SSD แยก LBA ที่มีข้อมูลที่เปลี่ยนแปลงอยู่ตลอดเวลาและต้องเขียนใหม่ (ข้อมูลไดนามิก) ออกจาก LBA ที่มีข้อมูลที่เปลี่ยนแปลงน้อยมากและไม่ต้องการการเขียนใหม่ (ข้อมูลคงที่) หากข้อมูลผสมกันอยู่ในบล็อกเดียวกัน เช่นเดียวกับระบบเกือบทั้งหมดในปัจจุบัน การเขียนใหม่ใดๆ จะทำให้ตัวควบคุม SSD ต้องเขียนใหม่ทั้งข้อมูลไดนามิก (ซึ่งเป็นสาเหตุของการเขียนใหม่ในตอนแรก) และข้อมูลคงที่ (ซึ่งไม่ต้องการการเขียนใหม่) การเก็บขยะของข้อมูลที่ปกติไม่จำเป็นต้องย้ายจะเพิ่มการขยายการเขียน ดังนั้น การแยกข้อมูลจะช่วยให้ข้อมูลคงที่อยู่นิ่ง และหากไม่เคยถูกเขียนใหม่ จะมีการขยายการเขียนต่ำที่สุดเท่าที่จะเป็นไปได้สำหรับข้อมูลนั้น ข้อเสียของกระบวนการนี้คือ ตัวควบคุม SSD ยังคงต้องหาวิธีปรับระดับการสึกหรอของข้อมูลคงที่ เนื่องจากบล็อกที่ไม่เคยเปลี่ยนแปลงจะไม่มีโอกาสถูกเขียนจนถึงรอบ P/E สูงสุด[ 1 ]

ผลกระทบต่อประสิทธิภาพการทำงาน

การเขียนตามลำดับ

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

การเขียนแบบสุ่ม

ประสิทธิภาพการเขียนแบบสุ่มสูงสุดบน SSD นั้นขึ้นอยู่กับจำนวนบล็อกว่างจำนวนมากหลังจากที่ SSD ถูกเก็บรวบรวมขยะอย่างสมบูรณ์ ลบข้อมูลอย่างปลอดภัย ทำการ TRIM 100% หรือติดตั้งใหม่ ความเร็วสูงสุดจะขึ้นอยู่กับจำนวนช่องแฟลชแบบขนานที่เชื่อมต่อกับตัวควบคุม SSD ประสิทธิภาพของเฟิร์มแวร์ และความเร็วของหน่วยความจำแฟลชในการเขียนไปยังหน้า ในระหว่างขั้นตอนนี้ การขยายการเขียนจะดีที่สุดเท่าที่จะเป็นไปได้สำหรับการเขียนแบบสุ่มและจะเข้าใกล้หนึ่ง เมื่อบล็อกทั้งหมดถูกเขียนแล้ว การเก็บรวบรวมขยะจะเริ่มต้นขึ้น และประสิทธิภาพจะถูกจำกัดด้วยความเร็วและประสิทธิภาพของกระบวนการนั้น การขยายการเขียนในขั้นตอนนี้จะเพิ่มขึ้นถึงระดับสูงสุดที่ไดรฟ์จะได้รับ[ 7 ]

ผลกระทบต่อประสิทธิภาพ

ประสิทธิภาพโดยรวมของ SSD ขึ้นอยู่กับปัจจัยหลายประการ รวมถึงการขยายการเขียน การเขียนไปยังอุปกรณ์หน่วยความจำแฟลชใช้เวลานานกว่าการอ่านจากอุปกรณ์นั้น[ 19 ]โดยทั่วไป SSD จะใช้ส่วนประกอบหน่วยความจำแฟลชหลายตัวที่เชื่อมต่อแบบขนานเป็นช่องสัญญาณเพื่อเพิ่มประสิทธิภาพ หาก SSD มีการขยายการเขียนสูง ตัวควบคุมจะต้องเขียนไปยังหน่วยความจำแฟลชมากขึ้น ซึ่งต้องใช้เวลามากขึ้นในการเขียนข้อมูลจากโฮสต์ SSD ที่มีการขยายการเขียนต่ำจะไม่จำเป็นต้องเขียนข้อมูลมากเท่า และจึงสามารถเขียนเสร็จได้เร็วกว่าไดรฟ์ที่มีการขยายการเขียนสูง[ 1 ] [ 8 ]

คำชี้แจงเกี่ยวกับผลิตภัณฑ์

ในเดือนกันยายน พ.ศ. 2551 Intelประกาศเปิดตัว SSD SATA รุ่น X25-M ที่มี WA ต่ำถึง 1.1 [ 5 ] [ 42 ]ในเดือนเมษายน พ.ศ. 2552 SandForceประกาศเปิดตัวตระกูลโปรเซสเซอร์ SSD รุ่น SF-1000 ที่มี WA 0.5 ซึ่งใช้การบีบอัดข้อมูลเพื่อให้ได้ WA ต่ำกว่า 1.0 [ 5 ] [ 43 ]ก่อนการประกาศนี้ การขยายการเขียนที่ 1.0 ถือเป็นค่าต่ำสุดที่สามารถทำได้ด้วย SSD [ 19 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ^ข้อมูลจะถูกเขียนลงในหน่วยความจำแฟลชในหน่วยที่เรียกว่าเพจ ซึ่งประกอบด้วยเซลล์หลายเซลล์ อย่างไรก็ตาม หน่วยความจำแฟลชสามารถลบได้เฉพาะในหน่วยที่ใหญ่กว่าที่เรียกว่าบล็อก ซึ่งประกอบด้วยเพจหลายเพจ [ 2 ]
  • โลโก้ Wikimedia Commonsสื่อที่เกี่ยวข้องกับการเผยแพร่บทความในวิกิมีเดียคอมมอนส์

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Write_amplification&oldid=1360236472#Factors_affecting_the_value "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เขียนการขยาย

การขยายการเขียน (Write amplification หรือ WA ) เป็นปรากฏการณ์ที่ไม่พึงประสงค์ซึ่งเกี่ยวข้องกับ หน่วยความจำแฟลช และ ไดรฟ์โซลิดสเต ท (SSD)...

การทำงานพื้นฐานของ SSD

เนื่องจากลักษณะการทำงานของหน่วยความจำแฟลช ข้อมูลจึงไม่สามารถเขียนทับได้โดยตรงเหมือนกับ ฮาร์ดดิสก์ไดรฟ์ เมื่อเขียนข้อมูลลงใน SSD ครั้งแรก เซลล์ ทั้งหมดจะอยู่ในสถานะที่ถูกลบ เพื่อให้สามารถเขียนข้อมูลได้โดยตรงโดยใช้ เพจ ในแต่ละครั้ง (โดยทั่วไปจะ มีขนาด 4–8...

การคำนวณค่า

การขยายการเขียนมีอยู่ใน SSD มาโดยตลอดก่อนที่จะมีการกำหนดคำนี้ แต่ในปี 2008 ทั้ง Intel [ 4 ] [ 9 ] และ SiliconSystems เริ่มใช้คำนี้ในเอกสารและสิ่งพิมพ์ของพวกเขา [ 10 ] SSD ทุกตัวมีค่าการขยายการเขียน...

ปัจจัยที่มีผลต่อมูลค่า

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