การตรวจสอบความซ้ำซ้อนตามวัฏจักร (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 CRC |
CRAM |
การฉีด |
ข้อผิดพลาด |
ข้อผิดพลาด CRAM |
ออนชิป |
---|---|---|---|---|---|---|---|
มี |
- |
- |
- |
- |
- |
- |
|
มี |
- |
- |
- |
- |
- |
- |
|
- |
มี |
มี |
มี |
มี |
- |
มี |
|
- |
มี |
มี |
มี |
มี |
- |
มี |
|
- |
มี |
มี |
มี |
มี |
มี |
มี |
- เลือกลิงก์ตระกูล 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 อัตโนมัติมีสองประเภท
- การขัดถูภายใน: ด้วยตัวเลือกนี้ การตรวจจับ/การแก้ไข CRAM CRC จะทำงานในเบื้องหลังและไม่ต้องการการออกแบบของผู้ใช้หรือส่วนประกอบภายนอกใดๆ เมื่อเปิดใช้งานผ่านซอฟต์แวร์ Quartus II วงจร CRC ซึ่งใช้งานในฮาร์ดลอจิก สามารถตรวจจับข้อผิดพลาดแบบหลายบิตและแก้ไขข้อผิดพลาดที่อยู่ติดกันเพียงครั้งเดียวหรือสองครั้งในเฟรมได้ในเวลาเพียงเสี้ยววินาทีในขณะที่ FPGA ที่เหลือทำงานอยู่
- โหลดซ้ำ .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 เป็นเรื่องง่าย