ความแตกต่างอย่างหนึ่งที่ฉันไม่ได้เห็นในที่นี้คือ FPGA นั้นถูกใช้และประพฤติในวิธีที่แตกต่างอย่างสิ้นเชิงกับโปรเซสเซอร์
FPGA นั้นดีมากในการทำภารกิจเดียวกันซ้ำแล้วซ้ำอีก ตัวอย่างเช่นการประมวลผลสัญญาณเสียงหรือสัญญาณ RF หรือการกำหนดเส้นทางแพ็คเก็ตอีเธอร์เน็ต หรือจำลองการไหลของของไหล สถานการณ์ใดก็ตามที่คุณมีข้อมูลประเภทเดียวกันจำนวนมากที่ถูกส่งเข้ามาที่คุณอย่างรวดเร็วและคุณต้องการจัดการกับมันด้วยวิธีเดียวกัน หรือคุณต้องการเรียกใช้อัลกอริทึมเดียวกันซ้ำ ๆ FPGA ไม่มีงาน 'จริงๆ' ที่เริ่มต้นและหยุด [1] งานทั้งหมดของมันคือการทำสิ่งเดียวกันกับข้อมูลที่ได้รับตราบใดที่มันเปิดอยู่ มันไม่เปลี่ยนเกียร์มันไม่ทำอะไรเลย มันเป็นสายการผลิตที่ดีที่สุด มันจะทำสิ่งเดียวกันซ้ำ ๆ ให้เร็วที่สุดเท่าที่จะทำได้ตลอดไป
ในทางตรงกันข้ามซีพียูเป็นตัวอย่างที่ดีของความยืดหยุ่น พวกเขาสามารถตั้งโปรแกรมให้ทำอะไรก็ได้และสามารถตั้งโปรแกรมให้ทำสิ่งต่าง ๆ ได้หลายอย่างในเวลาเดียวกัน พวกเขามีงานที่เริ่มและหยุดพวกเขาเปลี่ยนเกียร์มัลติทาสก์มีการสลับและการเปลี่ยนฟังก์ชั่น
FPGA และ CPU ตรงข้ามอย่างสมบูรณ์ สินค้าของซีพียูเป็นเวลา - มันจะต้องทำให้เสร็จเร็วขึ้น แอปพลิเคชันของคุณทำงานได้เร็วขึ้น
สินค้าของ FPGA คือพื้นที่ FPGA ของคุณมีขนาดใหญ่มากและมีประตูที่พร้อมใช้งานจำนวนมากเท่านั้นสำหรับการทำงานที่คุณต้องการ ส่วนใหญ่แล้วปัญหาจะมีขนาดใหญ่กว่าความเร็ว [2]
เป็นไปได้ที่จะทำให้ FPGA ทำตัวเหมือนซีพียู คุณสามารถใส่ CPU IP core ลงใน FPGA ได้ แต่มันเป็นเรื่องยากมากที่จะพิสูจน์เหตุผลเนื่องจากเหตุผลอื่น ๆ ที่อธิบายไว้ [3] FPGA และ CPU เป็นสิ่งที่ตรงกันข้ามทั้งมีจุดแข็งและจุดอ่อนของตัวเองและทั้งสองมีสถานที่ของตัวเองเป็นผล
หมายเหตุ:
1) FPGA สามารถออกแบบให้ทำงานต่าง ๆ ได้ แต่ถึงจะเป็นตัวเลขเฉพาะที่ออกแบบไว้ล่วงหน้า
2) ความเร็วยังเป็นข้อกำหนดการออกแบบ FPGA จริงๆแล้วมันเป็นการแลกเปลี่ยนระหว่างความเร็วและขนาด
3) การใส่ซีพียูลงใน FPGA นั้นทำได้ค่อนข้างบ่อยครั้งอย่างไรก็ตามมันจะทำแบบแยกเป็นกรณีไปตามแต่ละแอพพลิเคชั่น ตัวอย่างเช่นหากคุณต้องการไมโครคอนโทรลเลอร์ขนาดเล็กมากและมีพื้นที่ FPGA เพิ่มเติม
และสุดท้าย: คำตอบนี้เป็นเรื่องง่ายขนาดใหญ่ - FPGA ถูกใช้อย่างหลากหลายและซับซ้อนและนี่เป็นภาพรวมโดยย่อเกี่ยวกับวิธีการใช้งานทั่วไป