做項目實現某個feature時經常會考慮一個問題,硬件實現還是軟件實現,還是軟硬件結合。
要想回答好這個問題,就要理解硬件和軟件的各自的優劣勢。
優劣勢
軟件程序其實是運行在CPU上的,所有的程序都要分解為一條一條的機器指令去運行。CPU作為一種通用的架構,它最大的優勢自然也是通用,擅長復雜的邏輯和運算操作。但也因為其通用的架構,使得CPU在某些特定的應用場景性能不足,比如視頻渲染,不然也不會出現GPU。
FPGA則恰恰相反。FPGA非常擅長并行計算,同時能夠提供極低的延遲。但是卻不擅長復雜的邏輯和數學運算操作,比如調度算法,甚至某些看起來比較簡單的排序算法在FPGA上實現也比較麻煩。
軟硬件結合的經典設計
計算機系統中的地址翻譯可以看做一個經典設計。
地址翻譯是將虛擬地址轉換為物理地址。這個過程是通過查找表(頁表)的方式實現的。頁表中存儲著物理地址,那么要存儲哪些物理地址,哪個物理地址存儲在哪一個表項,是一個比較復雜的邏輯,這個過程是通過操作系統即軟件來實現的。當程序或者進程在運行期間需要訪問某一個地址,我們希望用最快的速度來實現地址翻譯,這個過程用到的便是硬件,硬件讀取頁表的內容獲得物理地址即可。
最后回到最初的問題,用硬件還是用軟件,一句話總結,復雜的對性能要求較低的交給軟件,簡單的性能要求高的交給硬件。
更多信息可以來這里獲取==>>電子技術應用-AET<<
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。