หน่วยความจําแฟลช NAND กับ NOR: การแลกเปลี่ยนสถาปัตยกรรม ประสิทธิภาพ และวิศวกรรม
หน่วยความจําแฟลชถูกนํามาใช้กันอย่างแพร่หลายในระบบฝังตัวและอุปกรณ์อิเล็กทรอนิกส์สําหรับผู้บริโภค แต่แฟลช NAND และ NOR มีจุดประสงค์ที่แตกต่างกันโดยพื้นฐาน ความแตกต่างไม่ได้เกี่ยวกับความเร็วหรือความจุเท่านั้น แต่ยังมาจากวิธีการจัดเรียงและเข้าถึงเซลล์หน่วยความจําทางกายภาพ บทความนี้ใช้มุมมองทางวิศวกรรมเชิงปฏิบัติ โดยมุ่งเน้นไปที่ความแตกต่างเหล่านี้ส่งผลต่อการออกแบบระบบจริง พฤติกรรมประสิทธิภาพ และความน่าเชื่อถือในระยะยาวอย่างไร
สารบัญ
- [พื้นฐานหน่วยความจําแฟลช](พื้นฐานหน่วยความจํา #flash)
- [แฟลช NAND: การออกแบบและพฤติกรรม](การออกแบบและพฤติกรรมของแฟลช #nand)
- [แฟลช NOR: การออกแบบและพฤติกรรม](การออกแบบและพฤติกรรมแฟลช #nor)
- การเปรียบเทียบสถาปัตยกรรม
- การวิเคราะห์ประสิทธิภาพ
- [การพิจารณาความหนาแน่นและต้นทุน](การพิจารณา #density และต้นทุน)
- การใช้พลังงาน
- ความน่าเชื่อถือและความสมบูรณ์ของข้อมูล
- [สถานการณ์การใช้งาน](#application สถานการณ์)
- แนวทางการเลือกการออกแบบ
- คําถามที่พบบ่อย
พื้นฐานหน่วยความจําแฟลช
ในระดับต่ํา หน่วยความจําแฟลชจะสร้างขึ้นจากทรานซิสเตอร์แบบลอยตัว อุปกรณ์เหล่านี้จัดเก็บข้อมูลโดยการดักจับอิเล็กตรอนในประตูหุ้มฉนวนซึ่งจะเปลี่ยนแรงดันไฟฟ้าเกณฑ์ของทรานซิสเตอร์
ข้อจํากัดในทางปฏิบัติบางประการกําหนดวิธีการใช้แฟลช:
- ไม่สามารถเขียนทับข้อมูลได้โดยตรง ต้องลบก่อน
- การดําเนินการลบเกิดขึ้นที่ความละเอียดของบล็อก
- แต่ละเซลล์มีจํานวนรอบโปรแกรม/การลบที่จํากัด
ข้อจํากัดเหล่านี้ได้รับการจัดการแตกต่างกันมากในการออกแบบ NAND และ NOR
NAND Flash: การออกแบบและพฤติกรรม
แฟลช NAND สร้างขึ้นเพื่อจัดเก็บข้อมูลจํานวนมากอย่างมีประสิทธิภาพ
สิ่งที่สําคัญในทางปฏิบัติ
- เซลล์เชื่อมต่อกันใน ห่วงโซ่อนุกรม
- การดําเนินงานถูกจัดกลุ่ม:
- หน้า (อ่าน/เขียน)
- บล็อก (ลบ)
- ใช้กับคอนโทรลเลอร์ (FTL + ECC) เสมอ
โครงสร้างนี้ช่วยลดพื้นที่ซิลิกอน ซึ่งเป็นสาเหตุที่ NAND ปรับขนาดได้ดีในด้านความจุ
อย่างไรก็ตาม มีการแลกเปลี่ยน:
- การเข้าถึงแบบสุ่มเป็นทางอ้อม
- อัตราความผิดพลาดสูงขึ้น
- ต้องมีการจัดการพื้นหลัง (การปรับระดับการสึกหรอ การจัดการบล็อกที่ไม่ดี)
NOR Flash: การออกแบบและพฤติกรรม
แฟลช NOR ใช้แนวทางที่แตกต่างออกไป โดยให้ความสําคัญกับการเข้าถึงโดยตรง
ลักษณะสําคัญ
- เซลล์ที่เชื่อมต่อกันใน ขนาน
- การเข้าถึงแบบสุ่มที่แท้จริง (ระบุตําแหน่งไบต์ได้)
- CPU สามารถอ่านได้โดยตรงจากมัน
สิ่งนี้ทําให้ execute-in-place (XIP) ซึ่งหมายความว่าโค้ดทํางานโดยตรงจากแฟลชโดยไม่ต้องคัดลอกไปยัง RAM
ข้อเสียคือประสิทธิภาพของพื้นที่ แต่ละเซลล์ต้องการการเดินสายมากขึ้น ซึ่งจํากัดความหนาแน่น
การเปรียบเทียบสถาปัตยกรรม

โทโพโลยีภายในอธิบายพฤติกรรมที่สังเกตได้ส่วนใหญ่:
- NAND แชร์การเชื่อมต่อในหลายเซลล์→การเข้าถึงที่กะทัดรัดแต่โดยอ้อม
- NOR เชื่อมต่อแต่ละเซลล์แยกกัน→การเข้าถึงที่รวดเร็ว แต่มีขนาดใหญ่กว่า
พูดง่ายๆ: NAND ประหยัดพื้นที่ NOR ช่วยประหยัดเวลา
การวิเคราะห์ประสิทธิภาพ

แทนที่จะดูตัวเลขดิบ การคิดในแง่ของรูปแบบการเข้าถึงจะมีประโยชน์มากกว่า:
- NAND ทํางานได้ดีที่สุดด้วย สตรีมข้อมูลตามลําดับ
- NOR ทํางานได้ดีที่สุดด้วย การอ่านแบบสุ่มขนาดเล็ก
ตารางเปรียบเทียบประสิทธิภาพ
| การดําเนินการ | แฟลช NAND | แฟลช NOR |
|---|---|---|
| การอ่านแบบสุ่ม | ปานกลาง | เร็วมาก |
| การอ่านตามลําดับ | รวดเร็ว | ปานกลาง |
| เขียน | รวดเร็ว (ตามหน้าเว็บ) | ช้า |
| ลบ | รวดเร็ว (ตามบล็อก) | ช้า |
นี่คือเหตุผลที่ NAND ครองอุปกรณ์จัดเก็บข้อมูล ในขณะที่ NOR ยังคงใช้ในระบบบูต
การพิจารณาความหนาแน่นและต้นทุน

โครงสร้างของ NAND ช่วยให้บิตต่อหน่วยพื้นที่ได้มากขึ้น:
- ขนาดเซลล์ที่เล็กลง
- การเชื่อมต่อโลหะน้อยลง
- การซ้อนแนวตั้งที่ง่ายขึ้น (3D NAND)
NOR ในทางตรงกันข้าม:
- ต้องมีการเชื่อมต่อแต่ละเซลล์ต่อเซลล์
- ใช้พื้นที่ดายมากขึ้น
- มีราคาแพงในวงกว้าง
นี่คือเหตุผลหลักที่ NAND ถูกใช้สําหรับกิกะไบต์และเทราไบต์ ในขณะที่ NOR มักจะมีขนาดเล็กกว่ามาก
การใช้พลังงาน
การใช้พลังงานขึ้นอยู่กับวิธีการเข้าถึงหน่วยความจําเป็นอย่างมาก
- NAND มีประสิทธิภาพในระหว่างการถ่ายโอนขนาดใหญ่ เนื่องจากการดําเนินการเป็นชุด
- NOR มีแนวโน้มที่จะใช้พลังงานมากขึ้นในระหว่างการเขียน/ลบเนื่องจากการดําเนินการขนาดเล็กซ้ําๆ
ในระบบที่ใช้งานต่ํา (เช่น ที่เก็บข้อมูลเฟิร์มแวร์) ค่าพลังงานของ NOR มักจะเป็นที่ยอมรับได้ ในระบบที่มีข้อมูลมาก NAND มีประสิทธิภาพมากกว่ามาก
ความน่าเชื่อถือและความสมบูรณ์ของข้อมูล

ข้อควรพิจารณาเกี่ยวกับ NAND
เมื่อความหนาแน่นเพิ่มขึ้นความน่าเชื่อถือจะกลายเป็นปัญหาระดับระบบ:
- ข้อผิดพลาดบิตสะสมเมื่อเวลาผ่านไป
- เกิดการรบกวนการอ่านและการรบกวนของเซลล์
- การเก็บรักษาข้อมูลลดลง
เพื่อชดเชย:
- ECC เป็นข้อบังคับ
- การปรับระดับการสึกหรอกระจายการใช้งาน
- มีการแมปบล็อกที่ไม่ดี
พฤติกรรม NOR
NOR ง่ายกว่าในเรื่องนี้:
- อัตราความผิดพลาดดิบที่ต่ํากว่า
- ลักษณะการอ่านที่เสถียร
- ค่าโสหุ้ยการแก้ไขน้อยที่สุด
นี่คือเหตุผลที่ NOR ยังคงเป็นที่ต้องการสําหรับการจัดเก็บรหัสบูตที่สําคัญ
สถานการณ์การใช้งาน
แฟลช NAND
ใช้ในกรณีที่ความจุและปริมาณงานมีความสําคัญ:
- ไดรฟ์โซลิดสเทต
- ที่เก็บข้อมูลมือถือ (UFS, eMMC)
- การ์ดหน่วยความจํา
NOR แฟลช
ใช้ในกรณีที่ความน่าเชื่อถือและการเข้าถึงโดยตรงมีความสําคัญ:
- บูต ROM / เฟิร์มแวร์
- ไบออส / UEFI
- ตัวควบคุมอุตสาหกรรม
แนวทางการเลือกการออกแบบ
จากมุมมองการออกแบบระบบ:
NAND เป็นตัวเลือกที่ดีกว่าหาก:
- คุณกําลังสร้างระบบย่อยที่เก็บข้อมูล
- เข้าถึงข้อมูลเป็นก้อนใหญ่
- ต้นทุนต่อ GB มีความสําคัญ
NOR เป็นตัวเลือกที่ดีกว่าหาก:
- ระบบต้องบู๊ตอย่างรวดเร็วและเชื่อถือได้
- การเรียกใช้โค้ดต้องเป็นแบบกําหนด
- ความเรียบง่ายเป็นที่ต้องการมากกว่าความจุ
แนวทางในโลกแห่งความเป็นจริงทั่วไป
หลายระบบรวมทั้งสองอย่าง:
- NOR สําหรับการบูตและโค้ดที่สําคัญ
- NAND สําหรับการจัดเก็บจํานวนมาก
การออกแบบแบบแยกส่วนนี้ใช้กันอย่างแพร่หลายเนื่องจากสอดคล้องกับจุดแข็งของแต่ละเทคโนโลยี
คําถามที่พบบ่อย
1. เหตุใดจึงไม่ใช้ NAND สําหรับการเรียกใช้โค้ดโดยตรง
เนื่องจากการเข้าถึงต้องผ่านการอ่านตามหน้าและการแปลที่อยู่ ซึ่งจะเพิ่มเวลาแฝงและความซับซ้อน
2. NOR ล้าสมัยหรือไม่?
ไม่ บทบาทของมันแคบลงในขณะนี้ แต่ยังคงจําเป็นสําหรับการบูตและโค้ดที่มีความสําคัญต่อความปลอดภัย
3. ความหนาแน่นของ NAND ที่สูงขึ้นจะลดความน่าเชื่อถือหรือไม่
ใช่ โดยเฉพาะอย่างยิ่งกับ TLC และ QLC นี่คือเหตุผลที่อัลกอริทึมของคอนโทรลเลอร์มีความสําคัญมากขึ้นเรื่อยๆ
4. ระบบสามารถพึ่งพา NAND เพียงอย่างเดียวได้หรือไม่?
สามารถทําได้ แต่ความซับซ้อนในการบูตเพิ่มขึ้นและอาจต้องการการสนับสนุนฮาร์ดแวร์เฉพาะทาง
5. อะไรคือประเด็นสําคัญสําหรับวิศวกร?
คิดในแง่ของ รูปแบบการเข้าถึงและบทบาทของระบบ ไม่ใช่แค่ความเร็วหรือขนาด
สรุป
แฟลช NAND และ NOR ไม่สามารถใช้แทนกันได้ แต่ละรายการได้รับการปรับให้เหมาะสมสําหรับส่วนต่างๆ ของระบบ:
- NAND จัดการ การจัดเก็บข้อมูลตามขนาด
- NOR จัดการ การเข้าถึงโค้ดที่รวดเร็วและเชื่อถือได้
การทําความเข้าใจความแตกต่างของโครงสร้างทําให้ง่ายต่อการออกแบบระบบที่มีประสิทธิภาพและเชื่อถือได้