การตรวจสอบความซ้ำซ้อนตามวัฏจักร (CRC) ใน Stratix Series FPGA

ความสามารถในการตรวจจับและดำเนินการกับอารมณ์เสียในเหตุการณ์เดียว (SEU) ในขณะที่ FPGA กำลังทำงานมีความสำคัญมากกว่าที่เคย Stratix® FPGA ทั้งหมดมีวงจรทรัพย์สินทางปัญญาอย่างหนัก (IP) การตรวจสอบความซ้ำซ้อนตามวัฏจักร (CRC) ที่ตรวจจับการพลิกบิตของ CRAM และระบุข้อผิดพลาดบนพิน CRC_ERROR เฉพาะ

ตั้งแต่เจเนอเรชั่นกระบวนการ 130 นาโนเมตร (Stratix FPGA) Intel® FPGA ได้รวมวงจรการตรวจจับข้อผิดพลาดเบื้องหลังใน FPGA ทั้งหมดโดยใช้ตัวตรวจสอบ CRC แบบฮาร์ด เพื่อให้สามารถยืนยันเนื้อหา CRAM ได้อย่างต่อเนื่องระหว่างการทำงานของอุปกรณ์ CRC รับประกันว่าจะตรวจพบข้อผิดพลาดแบบหลายบิต ข้อดีของการรวมวงจร CRC บนชิปในฮาร์ดเกทคือวงจรนั้นแข็งแกร่งและไม่ไวต่อข้อผิดพลาดเล็กน้อย นอกจากนี้ วงจร CRC ยังเป็นบล็อกในตัวเอง และเปิดใช้งานได้ง่ายๆ โดยทำเครื่องหมายในช่องในตัวเลือกการรวบรวม Quartus® II

ด้วยเทคนิคกระบวนการและการออกแบบ Intel FPGA ได้ปรับปรุง FIT/Mb ด้วยเทคโนโลยีทุกรุ่น เรายังได้จัดเตรียมโซลูชันการบรรเทาผลกระทบที่ได้รับการปรับปรุงสำหรับข้อผิดพลาดแบบซอฟต์ในระดับต่างๆ – ซิลิกอน IP และเครื่องมือ

ตัวอย่างหนึ่งของการปรับปรุงดังกล่าวคือการทำงานที่เพิ่มขึ้นและความซับซ้อนของวงจร CRC ดังแสดงในตารางที่ 1

ตาราง 1 การปรับปรุง CRC ใน Stratix Series FPGA

ตระกูล Stratix Series FPGA1

CRAM CRC
กำลังตรวจสอบ
CRAM ทั้งหมด

CRAM CRC
กำลังตรวจสอบ
กรอบ CRAM

CRAM
ข้อผิดพลาด
สถานที่

การฉีด
CRAM
ข้อผิดพลาด SEU
สำหรับการทดสอบ

ข้อผิดพลาด
การจำแนกประเภท

ข้อผิดพลาด CRAM
การแก้ไข

ออนชิป
หน่วยความจำ
การตรวจสอบข้อผิดพลาด

Stratix® GX

มี

-

-

-

-

-

-

Stratix® II
และ Stratix® II GX

มี

-

-

-

-

-

-

Stratix® III

-

มี

มี

มี

มี

-

มี

Stratix® IV E
และ
Stratix® IV GX

-

มี

มี

มี

มี

-

มี

Stratix® V

-

มี

มี

มี

มี

มี

มี

หมายเหตุ:
  1. เลือกลิงก์ตระกูล Stratix ซีรี่ส์ที่เหมาะสมเพื่อดูรายละเอียดทั้งหมดเกี่ยวกับคุณสมบัติของ CRC ในตระกูล Stratix FPGA ที่เฉพาะเจาะจง

การตรวจสอบข้อผิดพลาดในการกำหนดค่า

FPGA ซีรีส์ Intel FPGA Stratix ทั้งหมดคำนวณ CRC ระหว่างการกำหนดค่าและจัดเก็บไว้ในรีจิสเตอร์ วงจรเฉพาะจะตรวจสอบกับ CRC ที่คำนวณโดยอัตโนมัติ หมุด CRC_ERROR รายงานความล้มเหลวเมื่อข้อมูลการกำหนดค่า RAM มีการเปลี่ยนแปลงโดยไม่ได้ตั้งใจ และทำให้ง่ายต่อการทริกเกอร์การกำหนดค่าใหม่ การตรวจสอบ CRC ถูกควบคุมผ่านซอฟต์แวร์การออกแบบ Quartus II

นับตั้งแต่เปิดตัววงจรตรวจสอบการกำหนดค่าพื้นหลัง CRC โดยเฉพาะใน Stratix FPGA รุ่นแรก Intel FPGA ได้เพิ่มความสามารถอย่างต่อเนื่อง:

  • แทนที่จะเก็บค่า CRC เดียวสำหรับอุปกรณ์ทั้งหมด Stratix series FPGA (Stratix III FPGA และใหม่กว่า) จะเก็บค่า CRC แต่ละรายการไว้สำหรับเฟรมการกำหนดค่า ซึ่งช่วยให้ตรวจจับ SEU ได้เร็วขึ้น
  • กลไกตรวจจับข้อผิดพลาด CRC ใน Stratix series FPGA (Stratix III FPGA และใหม่กว่า) ระบุตำแหน่งของ SEU สำหรับข้อผิดพลาดแบบบิตเดียวและหลายบิตที่อยู่ติดกัน
  • วงจรการกำหนดค่า CRC ใน Stratix series FPGA (Stratix III FPGA และใหม่กว่า) อนุญาตให้มีการฉีดข้อผิดพลาดประเภทต่างๆ เพื่อจำลองเหตุการณ์ SEU และกลยุทธ์การทดสอบการลดผลกระทบ
  • วงจรการตรวจจับ/การแก้ไข CRC ใน Stratix V FPGA ได้เพิ่มความครอบคลุมการตรวจจับข้อผิดพลาด (99.99999998%) และสามารถแก้ไขข้อผิดพลาดหลายบิตที่อยู่ติดกันเดี่ยวและคู่ได้
  • เวลาการตรวจจับ CRC ใน Stratix V FPGA ได้รับการปรับปรุงประมาณ 7 เท่า สำหรับความหนาแน่นที่เท่ากันเมื่อเทียบกับกลุ่ม Stratix® IV ด้วยรูปแบบ CRC ที่ปรับปรุงแล้ว
  • การเพิ่มข้อผิดพลาดใน Stratix V FPGA นั้นได้รับการปรับปรุงโดยที่ผู้ใช้สามารถฉีดข้อผิดพลาดหลายจุดใน FPGA ได้

การจัดประเภทข้อผิดพลาดในการกำหนดค่า

เนื่องจากข้อผิดพลาดในการกำหนดค่าส่วนใหญ่ไม่มีผลต่อการทำงานของ FPGA ความสามารถในการละเว้นข้อผิดพลาดซอฟต์ "ไม่สนใจ" เหล่านี้จึงช่วยเพิ่มเวลาเฉลี่ยจริงระหว่างความล้มเหลว (MTBF) จาก SEU ซึ่งส่งผลให้เวลาทำงานของระบบดีขึ้น การใช้ข้อมูลตำแหน่งที่ได้รับจากวงจร CRC ที่ปรับปรุงแล้วใน Stratix series FPGA (Stratix III FPGA และใหม่กว่า) และตรรกะจำนวนเล็กน้อยเพื่อตรวจสอบตำแหน่งข้อผิดพลาดเทียบกับแผนที่วิกฤติ จึงสามารถกำหนด SEU ให้เป็น "สนใจ" หรือ "ไม่สนใจ"

ในกรณีที่มีข้อผิดพลาดในการกำหนดค่า "ไม่สนใจ" คุณสามารถตัดสินใจที่จะละเว้น SEU และดำเนินการต่อไป แผนที่วิกฤตถูกสร้างขึ้นโดยอัตโนมัติโดยเครื่องมือพัฒนาซอฟต์แวร์ Quartus II และเข้าถึงได้ผ่านอินเทอร์เฟซที่ผู้ใช้กำหนดเอง เช่น หน่วยความจำการกำหนดค่าซีเรียลที่ทำงานอยู่ ตรรกะของตัวประมวลผลวิกฤตถูกรวมไว้ในซอฟต์แวร์ Quartus II เป็นเมกะฟังก์ชัน IP

การแก้ไขข้อผิดพลาดในการกำหนดค่า

เพื่อลดผลกระทบของข้อผิดพลาด SEU Stratix V FPGA สามารถแก้ไขการพลิกบิต CRAM โดยไม่ต้องหยุดทำงานของระบบ การแก้ไข SEU อัตโนมัติมีสองประเภท

  1. การขัดถูภายใน: ด้วยตัวเลือกนี้ การตรวจจับ/การแก้ไข CRAM CRC จะทำงานในเบื้องหลังและไม่ต้องการการออกแบบของผู้ใช้หรือส่วนประกอบภายนอกใดๆ เมื่อเปิดใช้งานผ่านซอฟต์แวร์ Quartus II วงจร CRC ซึ่งใช้งานในฮาร์ดลอจิก สามารถตรวจจับข้อผิดพลาดแบบหลายบิตและแก้ไขข้อผิดพลาดที่อยู่ติดกันเพียงครั้งเดียวหรือสองครั้งในเฟรมได้ในเวลาเพียงเสี้ยววินาทีในขณะที่ FPGA ที่เหลือทำงานอยู่
  2. โหลดซ้ำ .pof แบบไดนามิก: แก้ไขการพลิกบิต CRAM โดยโหลดอิมเมจ CRAM ใหม่จากไฟล์ .pof ภายนอก การแก้ไขทีละเฟรมอาจเกิดขึ้นในพื้นหลัง หรือคุณจะเริ่มต้นก็ได้ ตัวเลือกนี้อาจได้รับการพิจารณาเพื่อแก้ไขการพลิกบิตของ CRAM หลายครั้ง (ข้อผิดพลาดที่อยู่ติดกันมากกว่าสองเท่า) ต่อเฟรม

การตรวจสอบข้อผิดพลาดหน่วยความจำบนชิป

นอกเหนือจากการตรวจสอบหน่วยความจำการกำหนดค่า Stratix series FPGA (Stratix III FPGA และใหม่กว่า) สามารถตรวจสอบความสมบูรณ์ของหน่วยความจำบนชิปได้ บล็อกหน่วยความจำแบบฝังตัว M20K ใหม่มีวงจรฮาร์ดโค้ดแก้ไขข้อผิดพลาด (ECC) ที่สามารถใช้ในโหมดไปป์ไลน์หรือโหมดไม่ใช้ไปป์ไลน์ หรือข้ามได้ทั้งหมด รหัส ECC ที่ใช้สำหรับหน่วยความจำ M20K สามารถตรวจจับข้อผิดพลาดได้ถึงสามบิตและแก้ไขข้อผิดพลาดได้ถึงสองบิต การครอบคลุมแบบหลายบิตที่ปรับปรุงแล้วพร้อมกับการสอดแทรกทางกายภาพของบิตในหนึ่งคำช่วยบรรเทาปัญหาการพลิกคว่ำแบบหลายบิตใน Stratix V FPGA การใช้บิตหน่วยความจำที่เก้า ร่วมกับเมกะฟังก์ชัน ECC ที่สร้างขึ้นโดยอัตโนมัติ สามารถให้การบรรเทา SEU สำหรับโครงสร้างหน่วยความจำที่สร้างขึ้นโดยใช้บล็อกอาร์เรย์ลอจิกหน่วยความจำ (MLAB) MegaWizard Plug-In Manager ภายในซอฟต์แวร์ Quartus II ทำให้การกำหนดค่าฟังก์ชัน ECC เป็นเรื่องง่าย

ผลิตภัณฑ์ที่เกี่ยวข้อง