หน่วยความจําแฟลช NAND กับ NOR: การแลกเปลี่ยนสถาปัตยกรรม ประสิทธิภาพ และวิศวกรรม

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

สารบัญ

พื้นฐานหน่วยความจําแฟลช

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

ข้อจํากัดในทางปฏิบัติบางประการกําหนดวิธีการใช้แฟลช:

  • ไม่สามารถเขียนทับข้อมูลได้โดยตรง ต้องลบก่อน
  • การดําเนินการลบเกิดขึ้นที่ความละเอียดของบล็อก
  • แต่ละเซลล์มีจํานวนรอบโปรแกรม/การลบที่จํากัด

ข้อจํากัดเหล่านี้ได้รับการจัดการแตกต่างกันมากในการออกแบบ NAND และ NOR

NAND Flash: การออกแบบและพฤติกรรม

แฟลช NAND สร้างขึ้นเพื่อจัดเก็บข้อมูลจํานวนมากอย่างมีประสิทธิภาพ

สิ่งที่สําคัญในทางปฏิบัติ

  • เซลล์เชื่อมต่อกันใน ห่วงโซ่อนุกรม
  • การดําเนินงานถูกจัดกลุ่ม:
    • หน้า (อ่าน/เขียน)
    • บล็อก (ลบ)
  • ใช้กับคอนโทรลเลอร์ (FTL + ECC) เสมอ

โครงสร้างนี้ช่วยลดพื้นที่ซิลิกอน ซึ่งเป็นสาเหตุที่ NAND ปรับขนาดได้ดีในด้านความจุ

อย่างไรก็ตาม มีการแลกเปลี่ยน:

  • การเข้าถึงแบบสุ่มเป็นทางอ้อม
  • อัตราความผิดพลาดสูงขึ้น
  • ต้องมีการจัดการพื้นหลัง (การปรับระดับการสึกหรอ การจัดการบล็อกที่ไม่ดี)

NOR Flash: การออกแบบและพฤติกรรม

แฟลช NOR ใช้แนวทางที่แตกต่างออกไป โดยให้ความสําคัญกับการเข้าถึงโดยตรง

ลักษณะสําคัญ

  • เซลล์ที่เชื่อมต่อกันใน ขนาน
  • การเข้าถึงแบบสุ่มที่แท้จริง (ระบุตําแหน่งไบต์ได้)
  • CPU สามารถอ่านได้โดยตรงจากมัน

สิ่งนี้ทําให้ execute-in-place (XIP) ซึ่งหมายความว่าโค้ดทํางานโดยตรงจากแฟลชโดยไม่ต้องคัดลอกไปยัง RAM

ข้อเสียคือประสิทธิภาพของพื้นที่ แต่ละเซลล์ต้องการการเดินสายมากขึ้น ซึ่งจํากัดความหนาแน่น

การเปรียบเทียบสถาปัตยกรรม

nand_vs_nor_architecture

โทโพโลยีภายในอธิบายพฤติกรรมที่สังเกตได้ส่วนใหญ่:

  • NAND แชร์การเชื่อมต่อในหลายเซลล์→การเข้าถึงที่กะทัดรัดแต่โดยอ้อม
  • NOR เชื่อมต่อแต่ละเซลล์แยกกัน→การเข้าถึงที่รวดเร็ว แต่มีขนาดใหญ่กว่า

พูดง่ายๆ: NAND ประหยัดพื้นที่ NOR ช่วยประหยัดเวลา


การวิเคราะห์ประสิทธิภาพ

nand_nor_performance_comparison

แทนที่จะดูตัวเลขดิบ การคิดในแง่ของรูปแบบการเข้าถึงจะมีประโยชน์มากกว่า:

  • NAND ทํางานได้ดีที่สุดด้วย สตรีมข้อมูลตามลําดับ
  • NOR ทํางานได้ดีที่สุดด้วย การอ่านแบบสุ่มขนาดเล็ก

ตารางเปรียบเทียบประสิทธิภาพ

การดําเนินการ แฟลช NAND แฟลช NOR
การอ่านแบบสุ่ม ปานกลาง เร็วมาก
การอ่านตามลําดับ รวดเร็ว ปานกลาง
เขียน รวดเร็ว (ตามหน้าเว็บ) ช้า
ลบ รวดเร็ว (ตามบล็อก) ช้า

นี่คือเหตุผลที่ NAND ครองอุปกรณ์จัดเก็บข้อมูล ในขณะที่ NOR ยังคงใช้ในระบบบูต

การพิจารณาความหนาแน่นและต้นทุน

nand_vs_nor_density_scaling

โครงสร้างของ NAND ช่วยให้บิตต่อหน่วยพื้นที่ได้มากขึ้น:

  • ขนาดเซลล์ที่เล็กลง
  • การเชื่อมต่อโลหะน้อยลง
  • การซ้อนแนวตั้งที่ง่ายขึ้น (3D NAND)

NOR ในทางตรงกันข้าม:

  • ต้องมีการเชื่อมต่อแต่ละเซลล์ต่อเซลล์
  • ใช้พื้นที่ดายมากขึ้น
  • มีราคาแพงในวงกว้าง

นี่คือเหตุผลหลักที่ NAND ถูกใช้สําหรับกิกะไบต์และเทราไบต์ ในขณะที่ NOR มักจะมีขนาดเล็กกว่ามาก

การใช้พลังงาน

การใช้พลังงานขึ้นอยู่กับวิธีการเข้าถึงหน่วยความจําเป็นอย่างมาก

  • NAND มีประสิทธิภาพในระหว่างการถ่ายโอนขนาดใหญ่ เนื่องจากการดําเนินการเป็นชุด
  • NOR มีแนวโน้มที่จะใช้พลังงานมากขึ้นในระหว่างการเขียน/ลบเนื่องจากการดําเนินการขนาดเล็กซ้ําๆ

ในระบบที่ใช้งานต่ํา (เช่น ที่เก็บข้อมูลเฟิร์มแวร์) ค่าพลังงานของ NOR มักจะเป็นที่ยอมรับได้ ในระบบที่มีข้อมูลมาก NAND มีประสิทธิภาพมากกว่ามาก

ความน่าเชื่อถือและความสมบูรณ์ของข้อมูล

flash_memory_reliability_mechanisms

ข้อควรพิจารณาเกี่ยวกับ 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 จัดการ การเข้าถึงโค้ดที่รวดเร็วและเชื่อถือได้

การทําความเข้าใจความแตกต่างของโครงสร้างทําให้ง่ายต่อการออกแบบระบบที่มีประสิทธิภาพและเชื่อถือได้