處理器內核越復雜,面積和功耗就越大。但是,隨著處理器處理數據的方式變得更加復雜,復雜性并不是一個單一的衡量維度。在選擇處理器IP內核時,為您的項目選擇正確的復雜性很重要。
思考復雜性的一些方法包括:
字節(jié)長
執(zhí)行單元
特權/保護
虛擬內存
安全功能
通常,字節(jié)越短,內核越小,功率越低,但是,并非總是如此。8位內核(例如8051)的門數可與最小的32位內核相比,但功耗通常更差。8位內核需要更多的存儲器訪問權限,這是因為每個時鐘周期需要較少的計算量,需要更多的周期。最終的影響是它需要更多功能來完成計算。
處理器內核在其執(zhí)行單元的復雜性方面差異很大。最簡單的是基本的單個ALU,它們需要通過簡單的指令來實現(xiàn)許多通用操作。例如,使用shift和add來實現(xiàn)乘法。因此,內核具有硬件乘法器和除法器是普遍的。如果需要良好的浮點性能,則添加硬件浮點單元將提供明顯更好的性能。此選項可用于Codasip的Bk3和Bk5RISC-V內核,但價格更貴。
到目前為止,我們已經假設單個計算線程和標量處理單元可以一次執(zhí)行一條指令。超標量體系結構具有指令級并行性,能夠提取多個指令并將其發(fā)送到不同的執(zhí)行單元。例如,Western Digital EH1和EH2 SweRV內核有兩個執(zhí)行單元。理論上,單線程雙核處理器可以具有單核兩倍的性能。但是,線程可能會掛起,這會使兩個執(zhí)行單元暫時處于非活動狀態(tài)。如果有兩個硬件線程,一個線程掛起后,另一個線程可以繼續(xù)執(zhí)行。
處理器的流水線深度可能有很大差異,并且深度與延遲之間存在直接關系。一些應用程序可以忍受高延遲,結果是對中斷的響應變慢,以換取較高的時鐘頻率和吞吐量。其他應用程序需要對中斷的快速響應,因此需要更短的流水線。
復雜性的另一個方面是特權模式。模式越多,核心邏輯就越復雜。許多嵌入式應用程序以機器模式運行,這意味著代碼具有對內核的完全訪問權限。例如Linux中的root特權。必須完全信任此類代碼,以避免產生負面后果。在更復雜的應用程序中,可以提供一系列特權,例如機器,管理員和用戶。普通應用程序將在具有最大保護程度的用戶模式下運行,而一些需要更高權限的軟件將使用管理員模式。Linux需要這三種模式,這就是Codasip開發(fā)具有Linux功能的Bk7內核的原因。
虛擬內存還需要其他處理器資源,例如內存管理單元(MUU)和轉換后備緩沖器(TLB),以處理將虛擬內存地址轉換為物理地址的操作。這在面積和功耗方面帶來了額外的成本,而沒有提高處理器的吞吐量。但是,虛擬內存對于使用豐富的操作系統(tǒng)(例如Linux)是必不可少的,該操作系統(tǒng)可以使用更復雜的軟件。
因此,在選擇處理器內核時,請確定所需的執(zhí)行單元,內存管理,特權和安全性。這種結合將決定內核的復雜性。
責任編輯:lq6
-
處理器
+關注
關注
68文章
19293瀏覽量
229940 -
內核
+關注
關注
3文章
1372瀏覽量
40298
原文標題:如何選擇合適的處理器內核
文章出處:【微信號:zhixinkeji2015,微信公眾號:芯片逆向】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論