Technology

เมื่อ SSD เกิดมาไม่เท่ากัน ถูก vs แพง

By Arnon Puitrakul - 14 พฤศจิกายน 2022

เมื่อ SSD เกิดมาไม่เท่ากัน ถูก vs แพง

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

SSD ประกอบด้วยอะไรบ้าง ?

ก่อนที่เราจะไปดูว่า ทำไมอันนี้แพง อันนี้ถูก เราต้องมาเข้าใจส่วนประกอบของ SSD กันก่อน หลาย ๆ คนอาจจะเข้าใจว่า SSD มันก็ประกอบจากแค่หน่วยความจำสิ เพราะมันหน่วยความจำ

อันนี้ตัวอย่าง เป็น WD Black SN750SE 500GB จะเห็นว่ามี Memory Chip แค่อันเดียว เพราะขนาดความจุมันไม่ได้ใหญ่มาก

แต่จริง ๆ แล้ว SSD จะประกอบด้วยของ 2 ชิ้นใหญ่ ๆ คือ ตัว Chip หน่วยความจำ และ Controller ที่ควบคุมการทำงานของ SSD เรา ซึ่งทั้ง 2 ส่วนประกอบนี้ล้วนมีผลต่อการใช้งานจริง ๆ ทั้งหมด ทั้งในเรื่องของ Performance และ Endurance มาก ๆ ถ้าเราลองไปดูในสเปก ของแพง ๆ หน่อย อย่างพวก Data Centre SSD เราจะเห็นเลยว่า พวกนี้มีระยะเวลาในการใช้งานที่ยาวนานมาก ๆ รองรับการเขียนข้อมูลจำนวนเยอะ ๆ ได้ดี ดีกว่าแบบที่เราใช้ตามบ้านไปไกลมาก ๆ

ส่วนของตัว Controller ที่เราบอกว่า มันใช้ควบคุมการทำงานของ SSD มันมีรายละเอียดยิบย่อยลงไปอีกเยอะมาก เช่น การเขียน บางครั้ง เรามี Chip หน่วยความจำหลายตัว เราอาจจะต้องเขียนลงไปในหลาย ๆ Chip พร้อม ๆ กัน เพื่อจะเพิ่มความเร็ว ตัว Controller จะต้องจัดสรรแล้วว่า มันจะเขียนอย่างไร หรือ บางครั้ง ระบบเขียนมาเร็วมาก ๆ ทำให้มันเขียนลง Chip หน่วยความจำไม่ทัน บาง SSD ที่ Performance สูง ๆ ก็จะมีพวก Cache ที่เร็วมาก ๆ ให้ข้อมูลมาพัก แล้วค่อย ๆ ทยอยเขียนลงไปใน Chip หน่วยความจำก็มีเหมือนกัน จนกระทั่งงานของการ อ่านข้อมูล ก็ต้องเก็บไว้ว่าข้อมูลตรงนี้ มันอยู่ที่ส่วนไหน Chip ตัวไหน ดังนั้นส่วนของ Controller จึงเป็นอีกส่วนที่เป็นตัวกำหนด Performance ได้เป็นอย่างดีเลย

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

Flash Memory มีหลายแบบ SLC,MLC, TLC และ QLC ต่างกันอย่างไร

พวก Flash Memory ที่เราใช้งานกัน จริง ๆ แล้ว มันเกิดจากการเอาพวก Transistor มาต่อ ๆ กัน โดยเราจะใช้พวก NAND Gate นี่แหละ มาต่อกันเรื่อย ๆ เยอะ ๆ เราไม่เล่าละกัน เอาเรื่องที่ต้องโฟกัสกันดีกว่า คือ ในการเก็บข้อมูล เราจะเก็บ ไม่ 0 ก็ 1 เป็นลักษณะแบบ Binary

ถ้าเราบอกว่า ใน Flash Memory ของเรา ประกอบด้วย NAND Gate สัก 8 Gate และ เราเก็บเป็น Binary เลย นั่นแปลว่า เราจะเก็บข้อมูลได้ทั้งหมด 8 Bits หรือ 1 Byte เท่านั้น SSD ที่เก็บข้อมูล 1 Bit ต่อ Cell เราจะเรียกมันว่า SLC (Single-Layer Cell)

อย่างที่เราบอกว่า NAND Gate พวกนี้ มันมีอายุการใช้งานของมัน ซึ่งนับจากจำนวนครั้งที่เรา ลบ และ เขียนลงไปใหม่ สมมุติว่า NAND Gate ของเราการันตีไว้ว่า มันสามารถลบ และ เขียนได้ 1 ล้านครั้ง นั่นแปลว่า 1 Gate เราเขียน ๆ ลบ ๆ ได้ 1 ล้านครั้ง รวมกัน 8 Gates เราจะทำได้ทั้งหมด 8 ล้านครั้ง หรืออ่าน ๆ เขียน ๆ ได้สัก 1 MB ก่อนที่จะเริ่มเสื่อมสภาพนั่นเอง

ถามว่า แล้วถ้าเกิด เราไม่สามารถเพิ่มจำนวน NAND Gate ได้แล้ว อาจจะเพราะด้วย Form Factor หรืออะไรก็ตาม เราจะแก้ปัญหานี้อย่างไร Engineer เลยบอกว่า งั้นเอางี้ 1 NAND Gate เราก็ เก็บมากกว่า 1 Bit ไปสิ อาจจะเก็บสัก 2 Bits ต่อ Gate ไปเลยได้มั้ย พวกนี้เราจะเรียกว่า MLC (Multi-Layers Cell)

ด้วยข้อจำกัดเดิม เรามี 8 Gates เก็บได้ Gate ละ 2 Bits ทำให้เราจะเก็บข้อมูลได้พร้อม ๆ กัน 2 Bytes ไปเลย จะเห็นว่า มันเพิ่มเป็น 2 เท่าเลยนะ โห เป็นเรื่องดีเลยใช่มั้ย เราใช้ Gate เท่าเดิม แต่เราเก็บข้อมูลได้เพิ่ม 2 เท่า

แต่ความชิบหายคือ เมื่อเราเอา 2 Bits ใส่ใน 1 Gate แล้วสมมุติว่า เราจะแก้ข้อมูลใน Gate ที่ 2 Bit ที่ 1 เราจะต้องเก็บข้อมูลใน Cell ที่ 2 แล้วแก้ Bit ที่ 1 แล้ว ลบข้อมูลใน Gate ที่ 2 ออก แล้วเขียนลงไปใหม่ นั่นแปลว่า เราจะเขียน ๆ ลบ ๆ ได้น้อยกว่า 8 ล้านครั้ง น้อยกว่าแบบ SLC ลงไปอีก ก่อนที่มันจะพัง ทำให้เราได้พื้นที่การจัดเก็บที่มากขึ้น แต่แลกมากกับความทนทาน

ในแง่ของ Performance เองก็เรียกว่า แย่กว่า อย่างแรกคือ แทนที่เราจะต้องมานั่งแยกว่า 0 หรือ 1 เฉย ๆ เราจะต้องมาแยก 4 เคส 00, 01, 10, 11 ซึ่งเยอะกว่าเยอะ ยังไม่นับว่า บางครั้งมันจะมีพวก Error Checking อีก ทำให้ แทนที่จะอ่านแค่ 1 Cell เราจะต้องอ่านหลาย ๆ Cell เพื่อหาว่า ที่เขียนมันผิดมั้ยอีก ทำให้ Performance ก็แย่ลงอีก

อ่านมาแล้ว เอ๊ะ อะไรมั้ยฮะ เราจะเห็นว่า พวก MLC เวลาเราจะเขียน เราจะต้องทำหลายอย่างมากขึ้นกว่า SLC มาก ๆ ที่แค่ อ่าน และ เขียน ตรง ๆ ทำให้โดยทั่ว ๆ ไปแล้ว MLC Flash จะมี Performance ที่สู้พวก SLC ไม่ได้

ส่วนพวก TLC (Triple-Levels Cell) และ QLC (Quad-Level Cell) จะเหมือนกับ MLC ทุกประการ แค่จากเดิมเราใส่ 2 เราก็ใส่ 3 และ 4 Bits ตามลำดับ นั่นแปลว่า Performance และ Endurance ก็จะลดลงตามลำดับด้วยเช่นกัน บางที ก็งง นะว่า ทำไมเรียกว่า MLC เป็นตัวที่ใส่ 2 Bits มันบอกแค่ Multi น่าจะเป็น Superset ของพวก TLC และ QLC ไปด้วยสิ

เทคนิคการแก้ปัญหา บน MLC Flash

ปัญหาใหญ่ ๆ ของพวก MLC Flash ทั้งหลายที่รุนแรงมาก ๆ โดยเฉพาะพวก QLC คือ ความเร็วในการเขียนข้อมูล เช่น QLC บางตัว อาจจะเร็วได้แค่ 160 MB/s หรือต่ำกว่านั้นอีกด้วยซ้ำ เรียกว่า เร็วพอ ๆ กัน หรือ ช้ากว่า HDD จานหมุนแล้วนะ

ฝ่ายการตลาดก็โยนปัญหาใส่ Engineer งั้นเอางี้ ง่าย ๆ เลย เราก็เอา Memory ที่เร็ว ๆ หน่อยมาคั่นไว้ก่อนมั้ย เป็น Cache เลย อะ มันก็เร็วขึ้น แต่ ๆ ถ้าเราใส่ Cache ใหญ่มาก ราคามันก็สูงไป ขายยังไงก๊อนนน ดังนั้น Cache ที่ได้ก็จะเล็กมาก ทำให้มีปัญหากับการอ่าน และ เขียนไฟล์ขนาดใหญ่ ๆ ไปเลย เช่น เขียน ๆ ไปสัก 1 GB ความเร็วก็หล่นไป 4-5 เท่าแล้วอะไรแบบนั้น

งั้นเอาใหม่ ๆๆๆๆ ในเมื่อส่วนประกอบอะไรเหมือนกันหมด งั้นเราทำ SLC ทิพย์ ๆ มั้ย SLC แบบหลอก ๆ แกล้ง ๆ เราเรียกว่า Psudo-SLC คือ แทนที่เราจะเขียน 4 Bits ลงไปเลย งั้นเราเขียน 1 Cell ด้วย 1 Bits ไปเลย แล้วค่อยเอาข้อมูลกลับไปเรียงใส่ Cell อื่น ๆ ไปก็จะทำให้มันทนต่อการเขียนไฟล์ขนาดใหญ่ ๆ ได้ดีขึ้น ซึ่งก็ได้ดีอยู่นะ แต่ ๆ พอมันเป็น SLC แบบหลอก ๆ ก็ทำให้เมื่อเราเก็บข้อมูลเกินสัก 50% ของความจุ พื้นที่หลอก ๆ มันก็จะน้อยลง จนทำให้ Cache ทิพย์ ๆ มันเล็กลงนั่นเอง

และ ในส่วนของ Endurance จริง ๆ เอาวิธีพีค ๆ ถ้ามันเขียนได้น้อย งั้นเราก็เอา Cell ใส่เข้าไปเพิ่มเลยดิ เอ๊ออออออ เอากันงี้เลย เราเรียกว่า Over-Provisioning แค่นั้นเลย ซึ่งอาจจะใส่เกินไปสัก 7% หรือมากกว่านั้นขึ้นกับรุ่น และ การออกแบบด้วย

SSD ถูก vs แพง

เอาหละ เราพอจะเข้าในการทำงานของ SSD แล้ว ถามว่า การที่ SSD จะแพง หรือ ถูก อย่างที่เราเล่าไปตอนแรกว่า SSD ขนาด 512 GB มีราคาตั้งแต่หลักพันนิด ๆ จนไป 2-3 พันเลยก็มี

โดยทั่ว ๆ ไปแล้ว SSD ในระดับ Consumer Grade ทั้งหลายราคาจะไม่ห่างกันเยอะมาก ๆ ส่วนใหญ่จะเลือกใช้ Controller ความเร็วกลาง ๆ และ TLC จนไปถึง QLC ในบางรุ่น ก็ถือว่าเร็วมาก ๆ แล้วสำหรับการใช้งานทั่ว ๆ ไป และ Performance สูง ๆ สำหรับ Consumer แล้ว

แต่ SSD ที่สุดจริง ๆ อย่าง SLC NAND และ Controller ตัวแรง ๆ หน่อย จะอยู่ในกลุ่มของ Enterprise ซะเยอะ (เอาจริง คือ Enterprise SSD หลาย ๆ ตัวยังใช้ TLC เลย) เพราะพวกนี้ มีการอ่านเขียนที่หนัก และ ต้องการอายุการใช้งานที่ยาวนานกว่าฝั่ง Consumer มาก ๆ วัน ๆ นึงอาจจะเขียน ๆ ลบ ๆ ข้อมูลอยู่หลัก TB เลยก็มี เลยทำให้พวกนี้ ต้องออกแบบมาให้มีความคงทนสูงมากกว่าแบบการใช้งานในบ้านสักหน่อย

สรุป : เราควรเลี่ยงพวก QLC หรือ TLC NAND SSD มั้ย

สำหรับการใช้งานจริง ๆ ไม่ว่าจะตามบ้าน หรือ ในระดับ Enterprise เรามองว่า TLC เป็นตัวเลือกที่ราคาไม่แพงมาก แต่ก็ยังได้ Performance และ Endurance ที่ดีมาก ๆ แล้วในตอนนี้ ถามว่า เราควรจะเลี่ยงมั้ย เราก็มองว่า มันได้เลย สบาย ๆ แต่ QLC เราไม่ค่อยแนะนำสำหรับการใช้งานเป็น Device หลักเท่าไหร่ อาจจะเอามาเป็นพวก Device สำหรับการเก็บข้อมูลรองเฉย ๆ ด้วยราคาที่ถูก แต่ Performance ก็ยังดีพอ ๆ หรือดีกว่า HDD ทั่ว ๆ ไปหน่อยนึง

Read Next...

Apple M4 รุ่นไหนเหมาะกับใคร

Apple M4 รุ่นไหนเหมาะกับใคร

หลังจากเมื่อหลายอาทิตย์ก่อน Apple ออก Mac รัว ๆ ตั้งแต่ Mac Mini, iMac และ Macbook Pro ที่ใช้ M4 กันไปแล้ว มีหลายคนถามเราเข้ามาว่า เราควรจะเลือก M4 ตัวไหนดีถึงจะเหมาะกับเรา...

Cloudflare Access ของดีขนาดนี้ ฟรีได้ไงวะ

Cloudflare Access ของดีขนาดนี้ ฟรีได้ไงวะ

จากตอนก่อน เราเล่าเรื่องการ Host Website จากบ้านของเราอย่างปลอดภัยด้วย Cloudflare Tunnel ไปแล้ว แต่ Product ด้าน Zero-Trust ของนางยังไม่หมด วันนี้เราจะมาเล่าอีกหนึ่งขาที่จะช่วยปกป้อง Infrastructure และ Application ต่าง ๆ ของเราด้วย Cloudflare Access กัน...

Mainframe Computer คืออะไร ? มันยังมีชีวิตอยู่ใช่มั้ย ?

Mainframe Computer คืออะไร ? มันยังมีชีวิตอยู่ใช่มั้ย ?

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

Infrastructure as Code คืออะไร ทำไมถึงสำคัญมากในปัจจุบัน

Infrastructure as Code คืออะไร ทำไมถึงสำคัญมากในปัจจุบัน

เคยมั้ยเวลา Deploy โปรแกรมสักตัว เราจะต้องมานั่ง Provision Infrastructure ไหนจะ VM และ Settings อื่น ๆ อีกมากมาย มันจะดีกว่ามั้ยถ้าเรามีเครื่องมือบางอย่างที่จะ Automate งานที่น่าเบื่อเหล่านี้ออกไป และลดความผิดพลาดที่อาจจะเกิดขึ้น วันนี้เราจะพาทุกคนมาทำความรู้จักกับ Infrastructure as Code กัน...