多核、超線程和高速 DMA 等現(xiàn)代處理器功能旨在優(yōu)化平均案例執(zhí)行時間。但是,這些優(yōu)化通常以犧牲最壞情況的執(zhí)行時間為代價,并使系統(tǒng)更難綁定。這種情況給安全關(guān)鍵型軟件的開發(fā)人員帶來了重大挑戰(zhàn),他們必須針對最壞情況進(jìn)行設(shè)計。因此,以下討論探討了為什么在軟件開發(fā)過程中關(guān)注最壞情況的行為,以及安全關(guān)鍵軟件開發(fā)人員面臨的一些與處理器相關(guān)的關(guān)鍵挑戰(zhàn)以及解決這些問題的方法。
為什么要關(guān)注最壞的情況行為?
在安全關(guān)鍵型軟件環(huán)境中,必須確保三個關(guān)鍵事項:
首先,每個周期線程(或任務(wù))必須始終以其定義的速率(例如,100 Hz)執(zhí)行。這很重要,因為每個線程必須以給定的速率執(zhí)行,否則系統(tǒng)可能會變得不穩(wěn)定,因此不安全。
其次,必須為每個周期線程分配一個不能超過的固定時間預(yù)算(例如,100 Hz 時為 200 微秒)。這很重要,因為它允許底層 RTOS 強制執(zhí)行時間分區(qū)。
第三,每個周期線程的固定時間預(yù)算必須足以覆蓋線程的最壞情況行為。這很重要,因為許多安全關(guān)鍵線程必須在每個周期內(nèi)執(zhí)行以完成。否則,系統(tǒng)可能會變得不穩(wěn)定,從而導(dǎo)致不安全。
請注意,這組要求與非關(guān)鍵軟件系統(tǒng)形成鮮明對比,在非關(guān)鍵軟件系統(tǒng)中,人們希望整體性能處于最高水平,但可以容忍性能低于平均水平的偶爾“故障”。
多核和緩存/內(nèi)存爭用
自 1985 年以來,CPU 吞吐量大約每 18 個月翻一番,這與摩爾定律一致。然而,由于三個關(guān)鍵因素,這一趨勢在2005年左右開始放緩。主要原因是內(nèi)存速度跟不上CPU性能,在同一時間段內(nèi)每年僅增加約10%。較大的緩存有助于緩解此問題,但內(nèi)存子系統(tǒng)仍然是重要的性能瓶頸。
從理論上講,更高的并行性應(yīng)該通過使CPU能夠同時處理多個指令來提高峰值性能。然而,流水線、分支預(yù)測和推測執(zhí)行等技術(shù)已經(jīng)開始“碰壁”,這使得利用這種并行性變得越來越困難。
散熱因素也減緩了 CPU 吞吐量的推進(jìn)速度。隨著工作頻率的增加,功耗和發(fā)熱也會成比例地增加。在許多環(huán)境中,散發(fā)這種熱量提出了艱巨的挑戰(zhàn),特別是對于被動冷卻的嵌入式系統(tǒng)。
最近,多核處理器已經(jīng)發(fā)展到可以應(yīng)對其中的許多挑戰(zhàn)。例如,為了提高內(nèi)存吞吐量,每個 CPU 內(nèi)核都配備了自己的 L1 緩存。更緊密的物理封裝還通過縮短內(nèi)核之間的信號運行來提高性能,從而使數(shù)據(jù)傳輸成比例地更快、更可靠。同時,多內(nèi)核使處理器能夠在每個時鐘周期執(zhí)行更多指令。這使得每個內(nèi)核都能以較低的頻率運行,從而消耗更少的功率并產(chǎn)生更少的熱量。
盡管取得了這些進(jìn)步,但多核處理器仍然給安全關(guān)鍵型軟件的開發(fā)人員帶來了挑戰(zhàn):主要是對二級緩存和內(nèi)存子系統(tǒng)等共享資源的爭用增加。圖 1 顯示了一個簡單的雙核處理器,每個內(nèi)核都有自己的 CPU 和 L1 緩存,兩個內(nèi)核共享一個 L2 緩存和一個 RAM 子系統(tǒng)。
圖1:一個簡單的雙核處理器,每個內(nèi)核都有自己的CPU和L1緩存,兩個內(nèi)核共享一個L2緩存和一個RAM子系統(tǒng)
左側(cè)列出的值表示每個 CPU 在訪問給定資源時產(chǎn)生的“成本”。例如,假設(shè) CPU 訪問其本地 L1 緩存需要一個周期。如果訪問未命中,并且 CPU 必須轉(zhuǎn)到 L2 緩存,則需要 10 個周期。如果二級緩存未命中并且CPU必須轉(zhuǎn)到RAM,則成本為100個周期。如果緩存“臟”并且需要“回寫”,則性能會更差。請注意,這些數(shù)字并不準(zhǔn)確,并且會因處理器而異,但相對數(shù)量級是典型的。重要的一點是,CPU 訪問數(shù)據(jù)的距離越遠(yuǎn),數(shù)據(jù)傳輸所需的時間就越多。
當(dāng) CPU 上的多線程進(jìn)程同時爭用該內(nèi)核的 L1 緩存時,以及當(dāng)多個內(nèi)核同時競爭共享的 L2 緩存和內(nèi)存子系統(tǒng)時,就會發(fā)生爭用。即使使用單核處理器,CPU 也很容易使內(nèi)存子系統(tǒng)不堪重負(fù)。在多核系統(tǒng)中,多個內(nèi)核必須爭用共享內(nèi)存資源,內(nèi)存訪問瓶頸要嚴(yán)重得多。
松弛調(diào)度和緩存分區(qū)
開發(fā)人員可以減少內(nèi)存爭用并利用多核的強大功能,同時仍滿足最壞情況的執(zhí)行要求的一種方法是利用針對安全關(guān)鍵型應(yīng)用程序優(yōu)化的實時操作系統(tǒng)。例如,DDC-I 的 Deos 提供緩存分區(qū)和松弛調(diào)度功能,可緩解內(nèi)存訪問瓶頸,增強確定性,并提高跨一個或多個內(nèi)核的安全關(guān)鍵應(yīng)用程序的 CPU 利用率。
緩存分區(qū)使設(shè)計人員能夠?qū)⒁徊糠志彺鎸S糜诿總€內(nèi)核,從而減少內(nèi)存爭用和最壞情況下的執(zhí)行時間。通過這種物理分區(qū),每個核心可用的緩存總量將減少。但是,由于多個內(nèi)核不再共享同一資源,因此總體爭用減少了。
同時,Slack 調(diào)度利用了平均線程執(zhí)行時間通常比最壞情況執(zhí)行時間短得多的事實。對于那些實際執(zhí)行時間小于最壞情況預(yù)算時間的線程,RTOS回收未使用的時間并將其重新分配給其他線程,從而提高整體系統(tǒng)性能。
超線程 (HT)
HT 允許通過復(fù)制存儲特定應(yīng)用程序狀態(tài)的處理器部分而不復(fù)制處理器的主處理引擎 (CPU) 來提高計算的并行化。這樣,HT 處理器在 RTOS 中顯示為兩個邏輯處理器。超線程技術(shù)還可用于多核設(shè)置,其中每個內(nèi)核有兩個邏輯內(nèi)核。
超線程處理器的優(yōu)點是提高了應(yīng)用程序代碼的并行化,并縮短了反應(yīng)和響應(yīng)時間。例如,與非HT處理器相比,某些HT處理器的性能提高了30%。不幸的是,使用安全關(guān)鍵型軟件很難實現(xiàn)此性能,因為 HT 增加了對緩存和內(nèi)存子系統(tǒng)的爭用,并使系統(tǒng)更難綁定。因此,在許多安全關(guān)鍵應(yīng)用中必須禁用HT。
動態(tài)頻率縮放 (DFS)
DFS(也稱為 CPU 節(jié)流)允許實時調(diào)整處理器時鐘的頻率,以節(jié)省功率或減少芯片產(chǎn)生的熱量。雖然DFS主要用于電池供電的移動設(shè)備,但也可用于被動冷卻的航空電子系統(tǒng),該系統(tǒng)必須僅使用環(huán)境空氣來滿足嚴(yán)格的熱分布。DFS通常與動態(tài)電壓調(diào)節(jié)(DVS)結(jié)合使用,因為頻率與工作電壓成正比,功耗隨著電壓的平方而增加。
DFS 和 DVS 可以節(jié)省功耗并減少熱量,但在安全關(guān)鍵環(huán)境中,它們存在問題,因為它們還可以減少處理器在給定時間內(nèi)可以發(fā)出的指令數(shù)量(包括減慢內(nèi)存總線訪問速度)。因此,性能可能會以難以綁定的不可預(yù)測的方式降低。如果功耗不是門控因素,則可以禁用 DFS 和 DVS。或者,想要利用DFS和DVS的設(shè)計人員可以通過測量最壞情況的性能來實現(xiàn),同時在較低頻率/電壓下運行處理器,然后相應(yīng)地進(jìn)行預(yù)算。
直接內(nèi)存訪問 (DMA)
DMA 允許設(shè)備在不涉及 CPU 的情況下將大量數(shù)據(jù)(包括地圖顯示和地形數(shù)據(jù)庫)移入和移出系統(tǒng)內(nèi)存,從而提高性能,從而釋放 CPU 以執(zhí)行其他工作。對于安全關(guān)鍵型軟件,DMA 的主要缺點是它在 CPU 和內(nèi)存管理單元 (MMU) 的控制之外運行。因此,DMA 控制器中的缺陷可能會破壞空間分區(qū)。緩解此問題的一種方法是將RTOS與滿足最高設(shè)計保證的特殊DMA控制器軟件一起使用。
在像Deos這樣的RTOS的幫助下,安全關(guān)鍵型系統(tǒng)的設(shè)計人員可以獲得具有多核、高速DMA和DFS的高級處理器的性能優(yōu)勢,而不會影響最壞情況下的執(zhí)行時間。然而,并非所有高級處理器功能都非常適合安全關(guān)鍵型應(yīng)用。有些(如超線程)雖然是提高平均性能的理想選擇,但只是缺乏安全關(guān)鍵應(yīng)用程序所需的確定性,必須禁用。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19890瀏覽量
235129 -
cpu
+關(guān)注
關(guān)注
68文章
11077瀏覽量
217032
發(fā)布評論請先 登錄
編譯器功能安全驗證的關(guān)鍵要素
光子 AI 處理器的核心原理及突破性進(jìn)展
自主創(chuàng)新,安全可控:申威SW831處理器與國產(chǎn)終端產(chǎn)品推薦
低功耗處理器的優(yōu)勢分析
處理器和芯片的區(qū)別是什么 處理器是指cpu嗎
量子處理器是什么_量子處理器原理
云計算HPC軟件關(guān)鍵技術(shù)
旋智多核心處理器助力電機控制應(yīng)用

海外HTTP安全挑戰(zhàn)與應(yīng)對策略
處理器指令的獲取過程
Tensilica處理器及Xtensa LX7處理器介紹

ARM處理器和CISC處理器的區(qū)別
使用邊緣AI和Sitara處理器進(jìn)行關(guān)鍵字檢測

簡述微處理器的發(fā)展歷史

評論