FPGA คืออะไร?

Field Programmable Gate Arrays ฟังดูซับซ้อน แต่เปิดโลกใหม่สำหรับนักพัฒนา

หากคุณเคยอ่านเกี่ยวกับการจำลองเกมย้อนยุค คุณอาจเคยเจอประเภทเซมิคอนดักเตอร์ที่เรียกว่า Field-Programmable Gate Array (FPGA) เหล่านี้เป็นวงจรรวมพิเศษที่สามารถกำหนดค่าตัวเองใหม่ได้หลังจากการผลิตด้วยบล็อกลอจิกที่กำหนดค่าได้ (CLB) กล่าวอีกนัยหนึ่ง โดยพื้นฐานแล้ว คุณสามารถตั้งโปรแกรมชิปเซ็ตใหม่ให้ทำหน้าที่เป็นวงจรดิจิทัลประเภทอื่นๆ ได้ ซึ่งมีแอปพลิเคชันหลายรายการใน AI การออกแบบชิปเซ็ต และสาขาอื่นๆ

FPGA มีกรณีการใช้งานมากมาย และอุปกรณ์ต่างๆ เช่น Analogue Pocket ก็ใช้สิ่งเหล่านี้เพื่อรองรับอุปกรณ์พกพาต่างๆ อย่างไรก็ตาม Microsoft ยังใช้ FPGA เพื่อขับเคลื่อน Bing เนื่องจากช่วยให้บริษัทสามารถตั้งโปรแกรมใหม่ได้อย่างรวดเร็วเพื่อรองรับอัลกอริธึมใหม่ในขณะที่ได้รับการพัฒนา

FPGA กับ CPU แบบดั้งเดิม: อะไรคือความแตกต่าง?

ตรงกันข้ามกับชิปเซ็ตมาตรฐาน — สแนปดรากอน 8 เจนเนอเรชั่น 2ตัวอย่างเช่น — FPGA ไม่ได้ออกแบบมาให้ตั้งโปรแกรมใหม่ในภาคสนาม เป็นระบบบนชิป (SoC) ที่ประกอบด้วยหลายส่วน รวมถึง GPU, NPU และ CPU เมื่อจัดส่งแล้ว นั่นคือสิ่งที่ผู้บริโภคและธุรกิจจะได้รับ

อย่างไรก็ตาม FPGA ได้รับการออกแบบมาเพื่อให้มีความยืดหยุ่นได้ เพื่อให้ผู้ใช้สามารถเปลี่ยนส่วนของชิปได้โดยไม่ต้องเสียค่าใช้จ่ายหรือความเสี่ยงเพิ่มเติม ในอุตสาหกรรมที่เปลี่ยนแปลงอย่างรวดเร็ว เช่น รถยนต์ไร้คนขับ กฎระเบียบและมาตรฐานใหม่สามารถนำมาใช้ได้ตลอดเวลาสำหรับอุปกรณ์ทุกด้าน การใช้ FPGA ช่วยให้สามารถอัปเดต OTA เพื่อตั้งโปรแกรมชิปใหม่เพื่อรองรับมาตรฐานใหม่ได้

ข้อแตกต่างที่สำคัญประการหนึ่งระหว่าง FPGA และ CPU แบบดั้งเดิมคือ FPGA ได้รับการออกแบบมาเพื่อประมวลผลข้อมูลแบบขนานโดยแลกกับความเร็วสัญญาณนาฬิกาที่ต่ำกว่ามาก ตัวอย่างเช่น FPGA ที่มี 10 ไปป์ไลน์สำหรับการประมวลผลข้อมูลสามารถดำเนินการคูณตัวเลขสองตัวสำหรับแต่ละไปป์ไลน์ โดยคูณ 20 หมายเลขต่อรอบ CPU แบบเดิมสามารถคูณตัวเลขสองตัวต่อรอบ ต่อคอร์ และตามลำดับ

FPGA ทำงานอย่างไรสำหรับการจำลอง

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

ตัวอย่างเช่น Analogue Pocket สามารถอ่านเกม Game Boy ได้โดยตรงในช่องตลับหมึกและเล่นได้ราวกับว่าเป็นคอนโซลดั้งเดิม ไม่เพียงเท่านั้น อะแดปเตอร์คาร์ทริดจ์ยังเพิ่มการรองรับเพิ่มเติมสำหรับอุปกรณ์อื่นๆ ด้วย เช่น Game Gear, Atari Lynx และอื่นๆ อีกมากมาย สิ่งนี้เป็นไปได้เพียงเพราะธรรมชาติของ FPGA ที่สามารถตั้งโปรแกรมใหม่ได้ซึ่งใช้การจำลองฮาร์ดแวร์แทนการจำลองซอฟต์แวร์เพื่อให้แน่ใจว่าสามารถเล่นเกมได้ MiSTer (ซึ่งใช้บอร์ด DE-10 Nano FPGA เป็นฐานและต้องมีโมดูลเพิ่มเติมอยู่ด้านบน) มีความคล้ายคลึงกันตรงที่สามารถใช้เพื่อจำลองคอนโซลเช่น SNES, Sega Genesis และแม้แต่ เกมคิวบ์ โดยทั่วไปการจำลองฮาร์ดแวร์จะมีความแม่นยำมากกว่าการจำลองซอฟต์แวร์ ในขณะเดียวกันก็ให้ประโยชน์ด้านประสิทธิภาพด้วย

แม้ว่าฮาร์ดแวร์จะมีอายุมากขึ้นและอาจไม่น่าเชื่อถือเมื่อเวลาผ่านไป แต่ FPGA ก็สามารถตั้งโปรแกรมใหม่เพื่อจำลองประสบการณ์การใช้ฮาร์ดแวร์แบบเดียวกันได้

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

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

ยิ่งไปกว่านั้น คุณยังได้รับประโยชน์เพิ่มเติมจากการเล่นเกมเหล่านั้นด้วยวิธีที่ถูกต้องตามกฎหมายแต่ใช้ฮาร์ดแวร์โดยรวมที่ดีกว่า คุณสามารถซื้อ Analogue Pocket ได้ในราคา 220 เหรียญสหรัฐ และเล่นเกม Game Boy ได้เหมือนอย่างที่คุณเคยทำในอดีต แต่ด้วยคุณภาพงานประกอบที่สูงขึ้น หน้าจอที่ดีขึ้น และแม้แต่การรองรับ Dock

ข้อเสียของ FPGA

DE-10 Nano สำหรับโครงสร้าง MiSTer FPGA

อย่างไรก็ตาม มีข้อเสียบางประการ ประการแรก พวกเขาใช้พื้นที่มากกว่า CPU แบบดั้งเดิมมาก และยังมีราคาแพงกว่าในการผลิตอีกด้วย อุปกรณ์เช่น Analogue Pocket และ MiSTer FPGA มีค่าใช้จ่ายเป็นจำนวนมาก โดยอย่างหลังจะคืนเงินให้คุณมากกว่า 500 ดอลลาร์หากคุณรับส่วนเสริมบางอย่างเช่นกัน คนส่วนใหญ่เพียงต้องการจำลองเกมบนสมาร์ทโฟนหรือคอมพิวเตอร์ของตน และไม่สนใจเกี่ยวกับความแม่นยำของพิกเซลที่สมบูรณ์แบบที่การจำลองระดับฮาร์ดแวร์มอบให้

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

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