今天來(lái)看兩個(gè)特殊的指令,WFI(Wait For Interrupt)和WFE(Wait For Event)。這兩條指令的語(yǔ)法非常簡(jiǎn)單,不需要帶任何參數(shù)。如果大家讀過(guò)前面文章,肯定對(duì)中斷(interrupt)不陌生。至于事件(event),與中斷有點(diǎn)像,不同的是處理器對(duì)二者的處理方式不一樣??梢韵葘⑹录斫獬商厥獾闹袛唷?/p>
先看WFI,首先,我們研究一下ARM處理器進(jìn)入低功耗狀態(tài)的機(jī)制。當(dāng)一個(gè)處理器核的工作負(fù)載不高時(shí),可以通過(guò)降壓降頻(DVFS)的方式來(lái)讓處理器運(yùn)行在較低的頻率,從而降低整個(gè)芯片的功耗。如果處理器的沒(méi)有工作負(fù)載,完全空閑下來(lái),這時(shí)就需要其它方法讓處理器進(jìn)入更低的功耗模式。如果大家對(duì)ACPI有一些了解,就知道其中定義的“睡眠(sleep)”模式就有好幾種,每種模式對(duì)應(yīng)的電源和時(shí)鐘狀態(tài)不同。處理器芯片進(jìn)入空閑狀態(tài)的大體順序應(yīng)該是這樣的,應(yīng)用處理器(Application Processor)判斷是否具備進(jìn)入空閑狀態(tài)的條件,如果滿足條件則進(jìn)行一些準(zhǔn)備工作;發(fā)消息給系統(tǒng)控制器(System control processor);等待全部操作執(zhí)行完;執(zhí)行WFI進(jìn)入空閑狀態(tài);等待系統(tǒng)控制器做出下一步動(dòng)作,或者關(guān)閉時(shí)鐘,或者關(guān)閉電源等等。
從WFI這個(gè)名字可以看出,喚醒(wake up)處理器的一個(gè)機(jī)制就是發(fā)送中斷給處理器。與A系列處理器搭配的中斷處理器是GIC,這在前面介紹過(guò)。GIC接到中斷后,產(chǎn)生喚醒信號(hào)給系統(tǒng)控制器或者是電源管理模塊(PowerManagement Unit),系統(tǒng)控制器或者PMU根據(jù)處理器核的狀態(tài)以及系統(tǒng)狀態(tài),決定下一步的動(dòng)作。如果喚醒信號(hào)是給系統(tǒng)控制器,則可以考慮接到系統(tǒng)控制器的中斷處理接口,比如,采用M系列作為系統(tǒng)控制器時(shí),可以接到NVIC(Nested Vectored Interrupt Controller)。喚醒機(jī)制要根據(jù)具體情況具體分析,法無(wú)定法。
WFE與WFI很像,只不過(guò)等待的是事件,也就是說(shuō)系統(tǒng)可以通過(guò)發(fā)送事件來(lái)喚醒應(yīng)用處理器。WFE的一個(gè)典型應(yīng)用場(chǎng)景是自旋鎖。當(dāng)多個(gè)應(yīng)用處理器競(jìng)爭(zhēng)同一個(gè)臨界區(qū)資源時(shí),只有一個(gè)應(yīng)用處理器能獲得權(quán)限,其它的應(yīng)用處理器需要等待臨界區(qū)資源被釋放,也就是這些應(yīng)用處理器“自旋”。當(dāng)然操作系統(tǒng)也可以采取其它的處理方式,比如把時(shí)間片分給其它的應(yīng)用程序,不過(guò)這不在今天的研究范疇。顯然,應(yīng)用處理器簡(jiǎn)單的“自旋”對(duì)于功耗不友好,一個(gè)解決辦法就是讓這些“自旋”的應(yīng)用處理器進(jìn)入一種低功耗模式,獲得臨界區(qū)資源的應(yīng)用處理器在完成當(dāng)前進(jìn)程后,喚醒這些應(yīng)用處理器去重新競(jìng)爭(zhēng)臨界區(qū)資源。這時(shí)的喚醒機(jī)制不宜采取中斷方式,因?yàn)樾什桓?。ARM中采用的是事件方式,即通過(guò)執(zhí)行SEV(Send Event)指令向其它應(yīng)用處理器發(fā)送喚醒的事件。
WFI和WFE還有一種變體形式,WFIT和WFET,其中的T是超時(shí)(timeout)的意思,也就是說(shuō),喚醒機(jī)制多了一種超時(shí)的方式,沒(méi)有中斷或者事件產(chǎn)生,時(shí)間到了也會(huì)發(fā)出喚醒。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229852 -
指令
+關(guān)注
關(guān)注
1文章
607瀏覽量
35714 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41502 -
wfi
+關(guān)注
關(guān)注
0文章
2瀏覽量
1464
原文標(biāo)題:ARM系列 -- WFI和WFE
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論