前言
FPGA的並行設計是其高速處理的核心之一, 通過並行地處理大量的數據實現預期的功能;
PC的多線程設計則是處理大量的內容而衍生出的一種處理方式, 其本質是利用CPU的高速處理能力, 將單個線程以難以察覺的速度處理, 從而實現多線程的穩步運行;
兩者的目標有所不同, 實現的手段也是存在差異;
內容
FPGA的並行處理
FPGA的並行處理依靠的是數字電路的時鍾構建的時序, 通過時鍾不停地觸發不同地模塊, 實現數據按照預期地目標推進; 期間各個模塊地推進只通過信號進行控制, 不依賴於其他地資源;
這種處理模式, 可以保證FPGA的並行是實時且不干擾的發生的, 從而達到處理效率的提升; 換言之, FPGA處理的數據量取決於邏輯資源的量, 處理的速度取決於時鍾及對應的時序資源;
這樣做的好處顯而易見, 速度可以隨着資源的增加而快速提升; 與之對應的缺點是資源利用率的降低; FPGA中的邏輯資源一旦確定, 就無法修改, 也就是說其他模塊無法調用已經分配的
邏輯資源;
PC的多線程處理
PC的CPU屬於ASIC, 通過各種版圖構建的高速處理模塊; 一般而言, ASIC的時鍾及時序要遠高於FPGA; ASIC可以在設計時對時序進行MOS層次的優化, 所能實現的效果是FPGA將時序以
固定的模塊約束所不能比的; CPU每個模塊的資源是固定的, 在設計之初就將所有的資源按照需求進行了完整的分配, 在底層邏輯及操作系統的控制下, 硬件資源進行高速地處理;
目前地多核技術可以提高數據地處理速度, 但是操作系統還是需要按照指令進行解析, 所有底層的執行邏輯還是單線程的; 利用單線程的高速處理能力, 實現多個短時任務的合並處理;
PC的優勢在於資源利用率高, CPU可以將大量的重復操作交給指定的模塊, 實現資源的高效利用; 其缺點在於過早固化的硬件難以滿足一些特定的情形, 比如高並發數據的處理;
兩者對比
FPGA追求硬件的靈活性, 利用硬件的並發處理能力處理特定的需求;
PC追求軟件的速度, 利用硬件的重復利用提高處理的能力, 滿足大部分的需求;
一般而言, FPGA中比較常用的模塊會慢慢轉化為一些專用模塊, PC中一些比較極端的需求也會以獨立的芯片脫離出CPU;
兩者在專用和通用的兩面發揮重要的作用;
總結
對比, 才能知道優劣所在;