ทำไม FPGA ที่ใช้ SRAM จึงใช้มากกว่า FPGA ที่ใช้ NVM


20

FPGAs ที่ใช้ SRAM จำเป็นต้องโหลดบิตสตรีมอีกครั้งหลังจากปิดเครื่อง ในขณะเดียวกันไม่จำเป็นต้องลบเลือนตาม

ฉันสงสัยว่าทำไมการทดลองเพิ่มเติมและการวิจัยด้านความปลอดภัยใน SRAM FPGA มากกว่า NVM ที่ใช้อยู่ดูเหมือนว่าเทคโนโลยีระเหยถูกใช้มากขึ้นโดยไม่คำนึงถึงขีดจำกัดความปลอดภัย (เมื่อมาถึงเพื่อให้แน่ใจว่าบูตปลอดภัย)

(PS: ฉันไม่มีสถิติมันเป็นข้อสังเกตส่วนตัว)


ฉันไม่แน่ใจเกี่ยวกับสถิติของคุณ แต่ FLASH FPGA นั้นค่อนข้างใหม่เมื่อเทียบกับสถิติ SRAM นั่นอาจเป็นเหตุผลว่าข้อมูลของคุณเป็นจริงหรือไม่
ยูจีน Sh.

3
คุณเปรียบเทียบต้นทุนแล้วหรือยัง ฉันคิดว่าสิ่งที่ไม่ลบเลือนนั้นราคาแพงกว่า
Hearth

@EugeneSh ฉันมีสถิติไม่มันเป็นข้อสังเกตส่วนตัว (ผมที่ปรับปรุงที่เป็น PS ในคำถามเพื่อให้คนไม่สับสน)
ลาเวนเดอร์

โครงการสุดท้ายที่ฉันได้สัมผัสใช้ sram เพราะพวกเขากำหนดค่าใหม่หลายครั้งสำหรับฟังก์ชั่นที่แตกต่างกัน
PlasmaHH

คำตอบ:


32

โปรแกรมควบคุมหลักคือความจริงที่ว่า SRAM เข้ากันได้อย่างมากกับกระบวนการทางกายภาพเดียวกันที่ใช้ในการใช้ตรรกะจริง แท้จริงแล้ว FPGA ส่วนใหญ่ในปัจจุบันนี้ใช้ LUT (ตารางการค้นหา) ซึ่งเป็น RAM เพียงเล็กน้อยเท่านั้นเอง

ในทางตรงกันข้ามกระบวนการที่จำเป็นในการสร้าง EEPROM (หน่วยความจำแบบไม่ลบเลือน) ต้องใช้ขั้นตอนพิเศษ - เพื่อสร้างประตูลอยที่มีความหนาของออกไซด์พิเศษ ฯลฯ กระบวนการนี้ไม่เข้ากันโดยตรงกับกระบวนการตรรกะ / SRAM ซึ่งหมายความว่า FPGA ที่ไม่ลบเลือนจะค่อนข้างประนีประนอมในทั้งสองพื้นที่


21

นอกเหนือจากคำตอบของ Dave Tweed เกี่ยวกับกระบวนการผลิตที่เกี่ยวข้อง FPGA ส่วนใหญ่ที่ใช้แฟลชยังคงใช้ SRAM เพื่อขับเคลื่อนโครงสร้างของพวกเขา บิตสตรีมถูกโหลดลงใน SRAM จากแฟลชเช่นเดียวกับใน FPGA ทั่วไปความแตกต่างเพียงอย่างเดียวคือแฟลชอยู่ภายใน สถาปัตยกรรมนี้เห็นได้ชัดเมื่อคุณดูที่เอกสารข้อมูลและ appnotes โดยเฉพาะอย่างยิ่งอุปกรณ์บางอย่างเช่น Lattice MachXO2 / 3 รองรับการตั้งโปรแกรมแฟลชใหม่ในขณะที่อุปกรณ์กำลังทำงานซึ่งเป็นไปได้เพียงเพราะอุปกรณ์ใช้งานจริงจาก SRAM แทนที่จะมาจากแฟลชโดยตรง ดังนั้น FPGA ที่ "ใช้แฟลช" จึงต้องการแฟลชเพิ่มเติมจาก SRAM ซึ่งหมายความว่ามันต้องการพื้นที่ตายมากกว่า

เกี่ยวกับความปลอดภัยคุณมีสิทธิ์ชี้ให้เห็นว่ากระบวนการเริ่มต้นของ FPGA อาจเป็นจุดอ่อนในแง่ของการอนุญาตให้บิตสตรีมถูกดักจับ เพื่อช่วยปิดช่องว่างนี้ตอนนี้ FPGA จำนวนมากได้รวมการสนับสนุนการเข้ารหัสบิตสตรีมซึ่งขึ้นอยู่กับคีย์ความปลอดภัยที่เก็บไว้ในหน่วยความจำเฉพาะภายใน FPGA อิมเมจบิตสตรีมถูกเข้ารหัสด้วยคีย์นี้โหลดลงในหน่วยความจำการกำหนดค่าและเมื่อ FPGA เริ่มทำงานจะอ่านบิตสตรีมที่เข้ารหัสและถอดรหัสมันเมื่อโหลดลงใน (ไมโครคอนโทรลเลอร์บางตัวที่ต้องการหน่วยความจำภายนอกมีความสามารถคล้ายกันและ หลักการส่วนใหญ่เหมือนกัน)


2
ที่จริงย่อหน้าแรกของคุณเป็นจริงสำหรับ FPGAs ที่ค่อนข้าง จำกัด FPGAs ที่ใช้แฟลชจำนวนมากถูกโฆษณาเป็น "ทันที" (จุดขายที่แข็งแกร่งในหลาย ๆ แอปพลิเคชัน) ซึ่งหมายความว่าไม่มีการถ่ายโอนภายใน - เซลล์แฟลชควบคุมการเชื่อมต่อและตรรกะโดยตรง
Dave Tweed

3
จากสิ่งที่ฉันเห็นแม้แต่อุปกรณ์ "ทันที" ยังต้องโหลด CRAM มันเพิ่งจะเกิดขึ้นเร็วขึ้นมาก (ฉันเดาว่าเนื่องจากอินเทอร์เฟซที่กว้างกว่าจากแฟลชภายใน) กว่าในส่วนที่ต้องใช้แฟลชภายนอก ตัวอย่างเช่น MAX10 คือ "เปิดใช้ทันที" แต่ดูหน้า 23 ที่นี่: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/ แต่ถ้าคุณมีการอ้างอิงที่แสดงให้เห็นว่า CRAM- ทั้งหมด สถาปัตยกรรมที่น้อยลงฉันสนใจที่จะเรียนรู้เกี่ยวกับมัน
ajb

2
ดู Actel (ตอนนี้ Microsemi) - ทั้งอุปกรณ์ป้องกันการใช้สารกันบูดและแฟลชเป็นศูนย์สำเนา
Dave Tweed

8

ยิ่งกว่าสิ่งใดมันขึ้นอยู่กับความต้องการของคุณ ในขณะที่ขนาดน้ำหนักและพลังงาน (SWaP) เป็นตัวขับเคลื่อนหลักสำหรับ IC โดยทั่วไปหากคุณไม่ได้ถูกบังคับให้พัฒนา ASIC เนื่องจากข้อกำหนดเหล่านั้นประสิทธิภาพคือสิ่งที่คุณควรพิจารณาต่อไปซึ่งอาจทำให้คุณกลับไปที่ ASIC ได้ แต่คุณอาจใช้ FPGA ได้หากคุณสามารถซื้อการแลกเปลี่ยน SWaP ได้

  • FPGAs ที่ใช้แฟลชต้องใช้ "ไม่มีเวลา" ในการกำหนดค่าเนื่องจากเป็น "เปิดทันที" การออกแบบของคุณอาจต้องใช้สิ่งนี้
  • เทคโนโลยี FLASH ใช้พลังงานต่ำกว่า SRAM
  • FPGA ที่ใช้แฟลชไม่จำเป็นต้องมี BOOT PROM ดังนั้นจึงมีชิปหนึ่งตัวเทียบกับสองตัว (หรือมากกว่า)
  • คุณอาจมีข้อกำหนดในการเปิดเครื่องในสถานะก่อนหน้า
  • FLASH-based ให้บริการโซลูชั่น Rad-Tolerant ที่มากขึ้น มีวิธีจัดการกับข้อกำหนดด้านรังสีหรือ SEUs โดยทั่วไปใน FPGA ที่ใช้ SRAM แต่ Microsemi เสนอ "เทคโนโลยีที่แข็ง"

FPGAs ที่ใช้แฟลช (Actel, ตอนนี้ Microsemi) ตามเนื้อผ้าไม่มีความหนาแน่นหรือประสิทธิภาพที่สามารถทำได้ด้วย FPGA ที่ใช้ SRAM ดังนั้นหากประสิทธิภาพเป็นปัจจัยขับเคลื่อนคุณควรเลือก Xilinx หรือ Altera (ตอนนี้ Intel) หรือ อาจเป็น Lattice

โดยพื้นฐานแล้วคุณได้รับแรงหนุนจากข้อกำหนดของระบบและ IC ของคุณโดยเฉพาะ ก่อนหน้านี้คุณจะต้องปฏิบัติตามข้อกำหนดเหล่านี้และทำการศึกษาการค้าของ FPGA (แผ่นงาน) SWaP และประสิทธิภาพแล้วตามด้วยค่าใช้จ่ายที่เกิดขึ้นเป็นข้อพิจารณาหลักที่คุณต้องการทำซ้ำกับทีมของคุณ (ระบบ, CCA, หรือแม้แต่ SW) ที่ถูกส่งคืนไปยังหัวหน้าโครงการ / ผู้จัดการโครงการของคุณ ข้อกังวลอื่น ๆ เช่นความน่าเชื่อถือความสามารถในการผลิตและอื่น ๆ มักจะได้รับจากสมาชิกในทีมจากองค์กรที่เกี่ยวข้อง แต่มักจะไม่ได้มีความหมายมากนักหากไม่มีการซื้อขายครั้งแรกและโดยทั่วไปจะไม่ป้องกันการเลือกของคุณ

มีบทความบนเว็บหากคุณค้นหา "SRAM กับ FLASH FPGAs" แต่คุณอาจจะเรียนรู้เพิ่มเติมจากการศึกษาการค้ากับความต้องการของคุณโดยใช้แผ่นข้อมูลมากกว่าที่คุณจะทำอะไรก็ได้


2

เพื่อแก้ไขปัญหาด้านความปลอดภัย SRAM FPGA ที่ทันสมัยที่สุดสามารถกำหนดค่าด้วยสตรีมที่เข้ารหัสโดยปกติแล้วจะมีมาตรฐานการเข้ารหัสที่ทันสมัยเช่น 256 บิต AES เนื้อหาที่ปลอดภัยเช่นเดียวกับการจัดเก็บการกำหนดค่าภายใน: อุปกรณ์ต่อพ่วงเฉพาะที่สามารถแยกคีย์ส่วนตัวออกจากชิปที่ถอดรหัสแล้วจะสามารถอ่านแฟลชภายในได้

โดยทั่วไปแล้ว FPGAs ที่ใช้แฟลชจะใช้เมื่อการใช้งานค่อนข้างง่าย (ดังนั้นจึงไม่จำเป็นต้องใช้ SRAM FPGA ขนาดใหญ่) หรือเมื่อต้องการเริ่มต้นใช้งานทันที


ฉันขอยืนยันว่า FPGA ที่ใช้แฟลชอาจตอบข้อกังวลด้านความปลอดภัยเช่นกัน ดูบทความจาก EEtimes เกี่ยวกับการลดการโจมตีโดยใช้การวิเคราะห์พลังงานที่แตกต่าง (DPA): eetimes.com/document.asp?doc_id=1327477
boink

@bink จริงโดยเฉพาะ FPGA ที่เก่ากว่านั้นค่อนข้างมีช่องโหว่ ( ตัวอย่าง ) แต่ฉันคาดว่าสถานการณ์จะดีขึ้นในตอนนี้ บทความที่คุณอ้างถึงดูเหมือนจะโฆษณามาตรการตอบโต้ DPA
Dmitry Grigoryev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.