優(yōu)先權(quán)的相關(guān)申請(qǐng)
本申請(qǐng)與2013年4月9日提交的標(biāo)題為“sensorpollingunitformicroprocessorintegration”的美國(guó)專利申請(qǐng)13/859,473相關(guān)但并不要求優(yōu)先權(quán),其全部?jī)?nèi)容通過(guò)引用并入本文。
本申請(qǐng)要求2014年10月8日提交的題為“configurablepre-processingarray”的美國(guó)臨時(shí)專利申請(qǐng)62/061,210的優(yōu)先權(quán),其全部?jī)?nèi)容通過(guò)引用并入本文。
本發(fā)明涉及集成電路領(lǐng)域,特別是可配置的預(yù)處理陣列。
背景技術(shù):
現(xiàn)代電子設(shè)備,特別是便攜式電子設(shè)備,通常配備有許多傳感器。這些傳感器可以包括以下任何一個(gè)或多個(gè):麥克風(fēng),電容傳感器,光傳感器,溫度傳感器,多軸加速度計(jì),陀螺儀,全球定位系統(tǒng)(gps)接收器,濕度傳感器,壓力傳感器,化學(xué)傳感器等。這樣的現(xiàn)代電子設(shè)備包括平板電腦,手機(jī),筆記本電腦,手持設(shè)備,可穿戴電子設(shè)備等。這些傳感器中的許多通常獲得需要處理電子設(shè)備的主處理器的大量實(shí)時(shí)數(shù)據(jù)。使用主處理器處理實(shí)時(shí)數(shù)據(jù)可占用大量的計(jì)算資源。
技術(shù)實(shí)現(xiàn)要素:
縮放和可配置的預(yù)處理器陣列允許最小的數(shù)字活動(dòng),同時(shí)保持硬實(shí)時(shí)性能。預(yù)處理器陣列專門(mén)用于處理實(shí)時(shí)傳感器數(shù)據(jù)。陣列的互連處理單元可以大大減少上下文交換、內(nèi)存訪問(wèn)、主處理器輸入/輸出訪問(wèn)以及實(shí)時(shí)事件管理開(kāi)銷(xiāo)。
附圖說(shuō)明
為了更全面地了解本公開(kāi)及其特征和優(yōu)點(diǎn),參考結(jié)合附圖的以下描述,其中相同的附圖標(biāo)記表示相同的部分,其中:
圖1示出了根據(jù)本公開(kāi)的一些實(shí)施例的主處理器和可配置預(yù)處理陣列的示例性芯片框圖;
圖2是示出根據(jù)本公開(kāi)的一些實(shí)施例的示例性h1處理單元的功能圖;
圖3是示出根據(jù)本公開(kāi)的一些實(shí)施例的示例性中斷和地址生成塊的框圖;
圖4是根據(jù)本公開(kāi)的一些實(shí)施例的具有單個(gè)alu的h1處理單元的框圖;
圖5是根據(jù)本公開(kāi)的一些實(shí)施例的具有兩個(gè)alu的h2處理單元的框圖;和
圖6是根據(jù)本公開(kāi)的一些實(shí)施例的具有三個(gè)alu的h3處理單元的框圖;和
圖7是示出根據(jù)本公開(kāi)的一些實(shí)施例的用于預(yù)處理實(shí)時(shí)傳感器數(shù)據(jù)流的方法的流程圖。
具體實(shí)施方式
用于處理實(shí)時(shí)傳感器數(shù)據(jù)的功耗問(wèn)題
當(dāng)電子設(shè)備的主處理器正在處理許多實(shí)時(shí)傳感器數(shù)據(jù)流時(shí),主處理器消耗大量的功率,而且可用的資源將被從主處理器上的其他進(jìn)程中奪走。許多現(xiàn)代電子設(shè)備具有有限的功率資源(例如,由于電池),或者甚至當(dāng)這些電子設(shè)備被插入時(shí),電源設(shè)備在睡眠或待機(jī)模式期間的功率需求對(duì)于功率效率原因可能非常嚴(yán)格。同時(shí),應(yīng)用程序通常是“始終處于開(kāi)啟狀態(tài)”,特別是始終感測(cè)環(huán)境或電子設(shè)備狀態(tài)的應(yīng)用程序。這些應(yīng)用通常需要主處理器來(lái)持續(xù)處理來(lái)自這些傳感器的實(shí)時(shí)數(shù)據(jù)。
這種計(jì)算架構(gòu)具有許多低效率。一個(gè)低效率是收集傳感器數(shù)據(jù)的負(fù)載和存儲(chǔ)方面,并將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,這占據(jù)了大量的處理量。另一個(gè)無(wú)效率涉及對(duì)通信接口執(zhí)行寄存器事務(wù)(例如,提供傳感器數(shù)據(jù)的同步讀取)。進(jìn)一步的低效率涉及主處理器中的上下文切換,主處理器通常運(yùn)行許多具有不同上下文的不同應(yīng)用(并且上下文切換可能引起用戶體驗(yàn)中的抖動(dòng))。當(dāng)在上下文之間切換時(shí),主處理器停止進(jìn)程并切換到另一進(jìn)程(涉及內(nèi)存混洗)通常會(huì)導(dǎo)致傳感器數(shù)據(jù)處理效率低下。
解決方案:可配置的預(yù)處理以輔助主處理器
在便攜式消費(fèi)者設(shè)備中,能量守恒是導(dǎo)致整個(gè)用戶體驗(yàn)的幾個(gè)因素之一。同時(shí),連續(xù)或不斷收集和解釋各種形式的傳感器數(shù)據(jù)構(gòu)成了便攜式設(shè)備如何操作和與用戶和環(huán)境交互的基礎(chǔ)。理想情況將包括傳感器數(shù)據(jù)不斷被采樣和預(yù)處理,同時(shí)消耗很少的功率。
為了解決功耗的問(wèn)題,改進(jìn)的計(jì)算架構(gòu)利用專門(mén)設(shè)計(jì)的專門(mén)配置的預(yù)處理陣列,其專門(mén)用于處理來(lái)自多個(gè)傳感器(例如,許多實(shí)時(shí)傳感器數(shù)據(jù)流)的傳感器數(shù)據(jù)。專門(mén)的可配置預(yù)處理陣列可以包括用于處理數(shù)字?jǐn)?shù)據(jù)的數(shù)字電路。該陣列可以與與傳感器(例如,模擬前端進(jìn)行“輕”處理)接口的電路集成。當(dāng)傳感器、模擬前端和可配置的預(yù)處理陣列一起提供為感測(cè)子系統(tǒng)時(shí),感測(cè)子系統(tǒng)可以收集傳感器數(shù)據(jù),并對(duì)傳感器數(shù)據(jù)執(zhí)行智能操作,同時(shí)消耗很少的功率。
可配置預(yù)處理陣列的獨(dú)特特征是其將處理職責(zé)劃分為任務(wù)優(yōu)化的處理單元,以及經(jīng)由這些處理單元之間的可配置互連網(wǎng)絡(luò)的處理單元之間的無(wú)縫交互。通過(guò)管道配置中的協(xié)作處理,在主處理器中無(wú)需頻繁的上下文切換,使開(kāi)銷(xiāo)最小化。以同樣的方式進(jìn)行數(shù)據(jù)的同步收集,幾乎不進(jìn)行任何對(duì)下一階段收集和準(zhǔn)備數(shù)據(jù)的最終目標(biāo)的貢獻(xiàn)(幾乎所有處理都有助于收集和準(zhǔn)備數(shù)據(jù)的最終目標(biāo))為下一階段)。此外,管道之間的相互作用導(dǎo)致零開(kāi)銷(xiāo)。因?yàn)榭膳渲玫念A(yù)處理陣列可以以異步邏輯(在處理單元之間不具有共享或全局時(shí)鐘信號(hào)的情況下異步操作)來(lái)實(shí)現(xiàn),所以極少數(shù)的門(mén)將轉(zhuǎn)變,導(dǎo)致最小的動(dòng)態(tài)功率。該系統(tǒng)的強(qiáng)度在于,在指令級(jí)別,要執(zhí)行的項(xiàng)目數(shù)量減少到最小,這具有降低總體功耗的優(yōu)點(diǎn)。
該解決方案優(yōu)選地執(zhí)行以下技術(shù)任務(wù)中的一個(gè)或多個(gè)。第一個(gè)示例性技術(shù)任務(wù)是連續(xù)收集傳感器數(shù)據(jù),同時(shí)系統(tǒng)的大部分以可接受的低功耗關(guān)閉。第二個(gè)示例性技術(shù)任務(wù)是在喚醒主處理器或其他資源之前識(shí)別傳感器數(shù)據(jù)流中的感興趣區(qū)域。第三個(gè)示例性技術(shù)任務(wù)是在主處理器喚醒之后執(zhí)行傳感器數(shù)據(jù)的采集和流水線處理。第四個(gè)示例性技術(shù)任務(wù)是允許主處理器動(dòng)態(tài)地重新配置底層處理單元的微代碼以適應(yīng)系統(tǒng)的需要(硬件線程)。第五示例性的技術(shù)任務(wù)是通過(guò)允許使用(圖形)開(kāi)發(fā)工具來(lái)生成微代碼來(lái)提供算法的簡(jiǎn)化實(shí)現(xiàn)。
層疊的互連算術(shù)邏輯單元(alu)的矩陣
主處理器可以觸發(fā)將選擇性地激活可配置的預(yù)處理陣列(互連的算術(shù)邏輯單元(alu)的矩陣)的部件以持續(xù)監(jiān)視傳感器的過(guò)程?;ミBalu的矩陣可以被組織成布置在多個(gè)處理層中的異步處理單元。具有不同復(fù)雜性的各種處理單元的選擇性特征受限制,并排布置在并行管道中,使得傳感器數(shù)據(jù)可以僅通過(guò)流水線階段來(lái)評(píng)估,以確定其有用或無(wú)用。一般來(lái)說(shuō),與較高處理層的處理單元相比,較低處理層將具有較低復(fù)雜度的處理單元。
例如,可以通過(guò)具有基本(單個(gè))alu(流水線的量)的處理單元為傳感器提供接口。在較高層,處理單元可以具有兩個(gè)或更多個(gè)alu,并且這些處理單元的互連(例如,數(shù)據(jù)路由)可以有助于動(dòng)態(tài)管道的連接和分支。由于處理單元不是時(shí)鐘,即單元是異步的,因此可以顯著降低功耗,特別是在低泄漏過(guò)程中。
圖1示出了根據(jù)本公開(kāi)的一些實(shí)施例的主處理器和可配置預(yù)處理陣列的示例性芯片框圖。在該示例中,芯片框圖示出了h1層102,h2層104,h3層106和主處理層108。h1層102,h2層104和h3層106與可配置預(yù)處理層108的處理相關(guān)聯(lián)。處理陣列。主處理層108與主處理器的處理相關(guān)聯(lián)。應(yīng)當(dāng)理解,根據(jù)應(yīng)用可以提供更少或更多的層。此外,該示例示出了每層的多個(gè)處理單元,但是應(yīng)當(dāng)理解,根據(jù)應(yīng)用,每層可以提供更少或更多的單元。主處理器通過(guò)這些處理單元能夠執(zhí)行的合適指令來(lái)管理預(yù)處理流水線的配置。該配置可以指示例如數(shù)據(jù)如何通過(guò)層(在每個(gè)層的處理單元之間,或不同層的處理單元之間)之間移動(dòng)。
在一些實(shí)施例中,可配置的預(yù)處理陣列可以執(zhí)行實(shí)時(shí)傳感器數(shù)據(jù)流的預(yù)處理并且減少整個(gè)系統(tǒng)的降低功耗??膳渲玫念A(yù)處理陣列由專門(mén)的電路實(shí)現(xiàn),其操作的執(zhí)行可以被編程??膳渲妙A(yù)處理陣列包括用于處理實(shí)時(shí)傳感器數(shù)據(jù)流的第一處理層(h1層102)中的多個(gè)第一處理單元。第一處理單元中的每一個(gè)可被配置為從主處理器執(zhí)行一個(gè)或多個(gè)第一處理層指令??膳渲妙A(yù)處理陣列還包括用于處理由第一處理層(h1層102)生成的輸出數(shù)據(jù)的第二處理層(h2層104)中的多個(gè)第二處理單元。第二處理單元中的每一個(gè)可被配置為從主處理器執(zhí)行一個(gè)或多個(gè)第二處理層指令。指令集可能因應(yīng)用而異。這些處理單元中的許多可以作為多條管線并行運(yùn)行。因此,可以非常有效地執(zhí)行許多實(shí)時(shí)傳感器數(shù)據(jù)流的處理。
如果需要,可配置的預(yù)處理陣列還可以包括進(jìn)一步的處理層。例如,可配置預(yù)處理陣列可以包括用于處理由第二處理層(h2層104)產(chǎn)生的輸出數(shù)據(jù)的第三處理層(h3層106)中的多個(gè)第三處理單元。第三處理單元中的每一個(gè)可以被配置為從主處理器執(zhí)行一個(gè)或多個(gè)第三處理層指令。
除了由處理單元執(zhí)行的操作之外,可配置預(yù)處理的不同部分之間的數(shù)據(jù)路由也可以由例如主處理器來(lái)編程。在某些情況下,主處理器可以指定條件數(shù)據(jù)路由,其中數(shù)據(jù)路由基于處理單元的輸出數(shù)據(jù)。條件數(shù)據(jù)路由允許可配置處理陣列的復(fù)雜數(shù)據(jù)處理,例如基于來(lái)自多個(gè)傳感器的數(shù)據(jù)的智能感測(cè)。此外,條件數(shù)據(jù)路由有利地允許管線根據(jù)傳感器數(shù)據(jù)進(jìn)行連接或拆分。
例如,第二處理單元中的第一處理單元可以包括向以下各項(xiàng)中的一個(gè)或多個(gè)提供條件數(shù)據(jù)路由的電路:存儲(chǔ)器,對(duì)等第二處理單元(在第二處理層中)以及處理單元第三處理層。在一些情況下,條件數(shù)據(jù)路由,即第二處理單元中的第一處理單元的輸出數(shù)據(jù)應(yīng)被路由在哪里,可以基于第一處理單元的輸出數(shù)據(jù)。
在一些情況下,第三處理單元中的第一處理單元可以包括向以下各項(xiàng)中的一個(gè)或多個(gè)提供條件數(shù)據(jù)路由的電路:存儲(chǔ)器,對(duì)等第三處理單元(在第三處理層中)和處理單元第三處理層。在一些情況下,條件數(shù)據(jù)路由,即第三處理單元中的第一處理單元的輸出數(shù)據(jù)應(yīng)該被路由的地方,可以基于第三處理單元中的第一處理單元的輸出數(shù)據(jù)。
傳感器數(shù)據(jù)流的并行處理的優(yōu)點(diǎn)
單個(gè)傳感器可以由在h1層102中的接口塊處開(kāi)始的流水線來(lái)服務(wù)。因此,多個(gè)傳感器可以經(jīng)由相應(yīng)管線在h1層102中的多個(gè)接口塊來(lái)處理。這些管道提供多個(gè)數(shù)據(jù)流的并行處理,并且這些管道可以根據(jù)可配置處理陣列的編程進(jìn)行合并或拆分。具體來(lái)說(shuō),流水線的微編碼配置可以對(duì)流水線進(jìn)行編程,以定期收集傳感器數(shù)據(jù),以編程方式評(píng)估傳感器數(shù)據(jù),評(píng)估從多個(gè)管道的合并接收的數(shù)據(jù),評(píng)估從管道分割的數(shù)據(jù),打開(kāi)具有不同級(jí)別的處理復(fù)雜度的處理單元,并且在最高級(jí)別的功能上,為主處理器執(zhí)行循環(huán)加速或并行化任務(wù)。由于動(dòng)態(tài)管道的可配置性,操作的結(jié)果可以共享并轉(zhuǎn)移到其他處理單元以利用高度并行架構(gòu)。
這些級(jí)還提供了一些有利的特征以提供樣本數(shù)據(jù)的有效處理,而不受主處理器的干擾。例如,根據(jù)管道中的位置(通常適用于較高層中的處理單元),管道的某些階段可以實(shí)現(xiàn)循環(huán)和/或分支功能。每個(gè)階段可以實(shí)現(xiàn)零開(kāi)銷(xiāo)循環(huán),這可以大大提高效率,而無(wú)需主處理器執(zhí)行干預(yù)或工作。一些階段甚至可以執(zhí)行零循環(huán)跳轉(zhuǎn),中斷和返回。在另一種情況下,流水線中的一些階段可以將數(shù)據(jù)直接傳遞到下一階段,從而消除了轉(zhuǎn)換期間的數(shù)據(jù)存儲(chǔ)器訪問(wèn),以及減少函數(shù)調(diào)用或潛在的進(jìn)程上下文交換。輸出數(shù)據(jù)的傳遞可以在相同層中的“對(duì)等”處理單元之間,或者從一層的一個(gè)處理單元到較高層的另一個(gè)處理單元之間完成。在另一情況下,這些處理單元也可以寫(xiě)入共享存儲(chǔ)器而不受主處理器的干擾??膳渲妙A(yù)處理陣列可以包括由第一處理層,第二處理層和第三處理層可訪問(wèn)的共享存儲(chǔ)器,而不受來(lái)自主處理器的干擾。共享存儲(chǔ)器可以用于數(shù)據(jù)的內(nèi)部處理層通信,而不必利用主處理器的周期或資源。
h1(最低)層:可配置處理陣列的量子
圖1中看到的作為最低層處理的h1層102具有有限的實(shí)現(xiàn)。h1層102具有用于每個(gè)傳感器的單獨(dú)管道,其中每個(gè)流水線包括接口塊(例如,相應(yīng)的傳感器接口)和低功率有限狀態(tài)機(jī)(fsm)塊(在此稱為“h1處理單元”),其可以包括用于處理傳感器數(shù)據(jù)的單個(gè)算術(shù)邏輯單元)。例如,一個(gè)接口塊可以通過(guò)串行接口與加速度計(jì)接口,另一個(gè)接口塊可以通過(guò)另一個(gè)串行接口與電容式傳感器接口。廣義而言,這一層是“永遠(yuǎn)在”的。具體來(lái)說(shuō),該層被配置為收集和存儲(chǔ)傳感器數(shù)據(jù),并且在許多情況下,實(shí)現(xiàn)簡(jiǎn)單的流監(jiān)視以指示興趣的活動(dòng)。例如,閾值處理是一種常見(jiàn)的流監(jiān)視功能。
在一些實(shí)施例中,第一處理層(h1層102)中的第一處理單元可以通過(guò)向?qū)崟r(shí)傳感器數(shù)據(jù)流應(yīng)用閾值來(lái)監(jiān)視實(shí)時(shí)傳感器數(shù)據(jù)流。例如,第一處理單元可以檢查實(shí)時(shí)傳感器數(shù)據(jù)流中的數(shù)據(jù)值是否大于閾值,或者檢查最小數(shù)量的數(shù)據(jù)值是否超過(guò)閾值。如果是,則第一處理單元檢測(cè)到感興趣的活動(dòng)。這種操作模式是特別有利的,因?yàn)閭鞲衅骺梢浴靶菝摺被蛘唛L(zhǎng)時(shí)間沒(méi)有有趣的活動(dòng)。沒(méi)有這種處理層,主處理器將花費(fèi)大量的精力來(lái)輪詢感興趣的活動(dòng)。
h1層102執(zhí)行的技術(shù)任務(wù)之一是管理來(lái)自任意數(shù)據(jù)接口的數(shù)據(jù)的同步收集,如果需要執(zhí)行輕度預(yù)處理,并盡可能少地消耗功率。例如,如果發(fā)現(xiàn)感興趣的活動(dòng),則h1層102可以掃描傳感器數(shù)據(jù)中感興趣的活動(dòng)并中斷較高層(例如,h2層104),系統(tǒng)的其余部分保持“關(guān)閉”或“未占用”。通常,保證多個(gè)傳感器的硬實(shí)時(shí)采樣開(kāi)始成為在任何大量負(fù)載下的單個(gè)處理器的挑戰(zhàn)。此外,處理器定期對(duì)外部傳感器采樣的大機(jī)制是功耗低效的。h1層102通過(guò)僅執(zhí)行單次循環(huán)以在被觸發(fā)時(shí)從傳感器捕獲數(shù)據(jù)來(lái)解決這些問(wèn)題,如果需要?jiǎng)t處理接收到的數(shù)據(jù),然后停止直到另一個(gè)主處理器觸發(fā)另一個(gè)單次循環(huán)。在一些實(shí)施例中,第一處理層(h1層102)的第一處理單元中的至少一個(gè)可以被配置為響應(yīng)于使能信號(hào)執(zhí)行指令存儲(chǔ)器中的指令的單次執(zhí)行,并且在執(zhí)行指令的單次執(zhí)行直到另一個(gè)使能信號(hào)被觸發(fā)。
圖2是示出根據(jù)本公開(kāi)的一些實(shí)施例的示例性h1處理單元的功能圖。h1處理單元的功能塊包括地址生成器塊202,指令隨機(jī)存取存儲(chǔ)器(ram)204,讀/寫(xiě)(r/w)仲裁塊202,工作寄存器208,特殊功能寄存器210,數(shù)據(jù)路由212和alu案例聲明塊214。為了觸發(fā)單次循環(huán)(僅循環(huán)一次的“循環(huán)”),主處理器可以經(jīng)由r/w仲裁塊206將指令(“微代碼”)加載到指令ram204上并導(dǎo)致一個(gè)使能信號(hào)被提供給地址生成塊202。地址生成塊202可以包括可以響應(yīng)于使能信號(hào)順序執(zhí)行指令ram204中的指令的電路。
h1處理單元可以被認(rèn)為是具有單個(gè)中斷向量的基本處理器。完成中斷服務(wù)程序中的指令后,h1停頓,不消耗動(dòng)態(tài)電源。任何能夠保持時(shí)基的源適合于觸發(fā)h1的使能信號(hào);示例是數(shù)字計(jì)數(shù)器,振蕩模擬比較器電路等。優(yōu)選地,h1被實(shí)現(xiàn)為異步邏輯。當(dāng)處理完成時(shí)(例如,當(dāng)一個(gè)或多個(gè)第一處理層指令的執(zhí)行完成時(shí),門(mén)控異步邏輯的時(shí)鐘或信號(hào)),h1處理單元可以對(duì)其自己的時(shí)鐘進(jìn)行選通。
指令的一部分可以控制數(shù)據(jù)路由,例如控制多路復(fù)用器來(lái)加載來(lái)自工作寄存器208和特殊功能寄存器210的適當(dāng)操作數(shù),以及向工作寄存器208和特殊功能寄存器210寫(xiě)入數(shù)據(jù)。此外,每個(gè)指令的部分可以在alucase語(yǔ)句214塊中選擇一個(gè)適當(dāng)?shù)腶lu功能來(lái)處理數(shù)據(jù)。工作寄存器208通常用于存儲(chǔ)指令的中間結(jié)果,并且特殊功能寄存器210通常用于向/從h1處理單元之外的塊傳送數(shù)據(jù)(例如,傳感器接口,主處理器的存儲(chǔ)器,循環(huán)緩沖器到下一個(gè)階段,管道中的下一個(gè)階段的注冊(cè)等)。alu案例聲明塊214通常將包括最小指令集,諸如針對(duì)有限脈沖響應(yīng)(fir)濾波和比較而優(yōu)化的指令,或可執(zhí)行傳感器數(shù)據(jù)的輕微預(yù)處理的其他指令。一旦完成了指令ram204的指令,地址生成塊202可以復(fù)位并返回到零(即,指令ram204的開(kāi)始)。
在流水線階段的輸出處使用循環(huán)隊(duì)列
返回參考圖1,可以提供循環(huán)隊(duì)列來(lái)存儲(chǔ)感興趣的樣本或由處理單元在處理層中的任何一個(gè)處產(chǎn)生的數(shù)據(jù),使得較高層可以以突發(fā)模式讀取數(shù)據(jù)。在一些實(shí)施例中,第一處理層(h1層102)還包括在第一處理單元中的(任一)一個(gè)的輸出處的圓形隊(duì)列,其中第二處理單元之一直接從第一處理層經(jīng)由循環(huán)隊(duì)列。其他層的其他處理單元(例如,h2和h3)也可以在輸出端包括圓形隊(duì)列。
循環(huán)隊(duì)列與直接路徑區(qū)分開(kāi),因?yàn)檠h(huán)隊(duì)列允許多個(gè)數(shù)據(jù)樣本的突發(fā)讀取,并且直接路徑僅允許讀取單個(gè)數(shù)據(jù)樣本。該示例示出了h1處理單元的輸出處的循環(huán)隊(duì)列,但是應(yīng)當(dāng)理解,較高層處的其他處理單元還可以包括循環(huán)隊(duì)列(在不同層的處理單元之間或在同一層的“對(duì)等”處理單元之間)。有利地,需要多個(gè)數(shù)據(jù)樣本(例如,快速傅里葉變換)的一些處理可以通過(guò)排隊(duì)的路徑快速讀取多個(gè)數(shù)據(jù)樣本。循環(huán)隊(duì)列允許處理單元將數(shù)據(jù)存儲(chǔ)在隊(duì)列中,無(wú)需任何空載并存儲(chǔ)到內(nèi)存中。循環(huán)隊(duì)列實(shí)際上是一個(gè)流水線延遲操作,這比實(shí)際的內(nèi)存訪問(wèn)效率要高得多。
中斷和地址生成
單次循環(huán)的實(shí)現(xiàn)相當(dāng)簡(jiǎn)單。對(duì)于諸如h2層104和h3層106的更高層的處理,可以在處理單元的地址生成塊中提供進(jìn)一步的電路,以提供傳感器數(shù)據(jù)流的更復(fù)雜的處理。附加電路可以提供零周期跳轉(zhuǎn),中斷和返回,并且還使用循環(huán)計(jì)數(shù)器提供零延遲循環(huán)。圖3是示出根據(jù)本公開(kāi)的一些實(shí)施例的示例性中斷和地址生成塊的框圖。顯示的更復(fù)雜的地址生成器可以將程序計(jì)數(shù)器(“pc”)可用于生成的寄存器中的中斷,跳轉(zhuǎn)和返回向量(“jmpv”,“intv”,“jmprv”和“intrv”)程序計(jì)數(shù)器“pco”。alu也可以寫(xiě)入程序計(jì)數(shù)器本身。這樣的中斷和地址生成器可以提供比h1處理層的單次循環(huán)執(zhí)行更靈活的跳轉(zhuǎn)。
處理單元中的alu的各種構(gòu)造配置
返回參考圖1,不同的處理層具有不同復(fù)雜性的處理單元。在h1層102處,低功率fsm處理單元具有一個(gè)alu。圖4是根據(jù)本公開(kāi)的一些實(shí)施例的具有單個(gè)alu的h1處理單元的框圖。單個(gè)alu處理單元可以負(fù)責(zé)基本收集和先進(jìn)先出(fifo)任務(wù)。為了提供更復(fù)雜的數(shù)據(jù)流處理,較高層具有具有多于一個(gè)alu的處理單元。一到三(或更多)個(gè)alu可以組合成一個(gè)處理單元。在一些實(shí)施例中,一個(gè)或多個(gè)第一處理單元(在h1層102中)中的至少一個(gè)每個(gè)具有單個(gè)算術(shù)邏輯單元,至少一個(gè)或多個(gè)第二處理單元(在h2層104中)每個(gè)具有兩個(gè)算術(shù)邏輯單元。在一些情況下,第三處理單元中的至少一個(gè)具有三個(gè)算術(shù)邏輯單元。
h2層上的雙alufsm處理單元
h2層104處的雙alufsm可以具有兩個(gè)alu。雙alufsm處理單元可以很好地比較和分析兩個(gè)數(shù)據(jù)流。圖5是根據(jù)本公開(kāi)的一些實(shí)施例的具有兩個(gè)alu的h2處理單元的框圖。該處理單元可用于h2層,可提供復(fù)雜的識(shí)別。h2層對(duì)應(yīng)于圖1的h2層104,其包括一個(gè)或多個(gè)雙alufsm(這里稱為“h2處理單元”)。從圖中可以看出,兩個(gè)alu可以同時(shí)處理兩個(gè)數(shù)據(jù)流。連接和分割流也是可能的。h2處理單元被設(shè)計(jì)為能夠采用0,1或2個(gè)數(shù)據(jù)源,并確定數(shù)據(jù)的路由。h2處理停止,直到它已經(jīng)接收到適當(dāng)?shù)闹袛嘈盘?hào)或觸發(fā)信號(hào),這可以是同步(中斷)源或觸發(fā)或一個(gè)或多個(gè)h1數(shù)據(jù)就緒中斷信號(hào)。h2將數(shù)據(jù)存在于其輸入端,并且可以檢查先前的采樣或存儲(chǔ)在存儲(chǔ)器中的其他數(shù)據(jù),以確定是否應(yīng)啟動(dòng)管道的下一級(jí)。決策過(guò)程可以預(yù)處理下一階段的數(shù)據(jù)。
用于該處理單元的指令可以有利地提供基于數(shù)據(jù)的條件路由,以確定輸出數(shù)據(jù)是否應(yīng)被路由到存儲(chǔ)器,對(duì)等h2處理單元或h3處理單元(或其任何組合)。這一重要特征,動(dòng)態(tài)流水線是基于數(shù)據(jù)的條件,使多個(gè)算法(管線)能夠利用由特定處理塊執(zhí)行的相同處理。此外,數(shù)據(jù)的處理或操作可以在不用上下文切換的開(kāi)銷(xiāo)的情況下在不同上下文之間共享(即,通過(guò)連接或分支數(shù)據(jù)輸出來(lái)共享中間結(jié)果),所以指令已經(jīng)適當(dāng)?shù)鼐幊塘丝膳渲玫奶幚黻嚵小?/p>
一般來(lái)說(shuō),h2層中的雙alufsm處理單元可以在h1檢測(cè)到有趣的活動(dòng)之后執(zhí)行更復(fù)雜的數(shù)據(jù)分析。當(dāng)h1層不存在有趣的活動(dòng)時(shí),h2層的處理單元睡眠/停頓,直至在h1層檢測(cè)到活動(dòng)。h2層的處理單元可以調(diào)查傳感器數(shù)據(jù)的興趣活動(dòng),并對(duì)多個(gè)數(shù)據(jù)流并行處理中等復(fù)雜度算法。雙alufsm的代碼與單個(gè)alufsm兼容,其中內(nèi)部更改為兩個(gè)alu和寫(xiě)入目的地信號(hào)量。這樣的代碼可以以宏語(yǔ)言或其他合適的編程工具生成。
在h3層的三重alufsm處理單元
h3層106處的三重alufsm可以具有三個(gè)alu。h3層對(duì)應(yīng)于圖1的h3層106,其包括一個(gè)或多個(gè)雙alufsm(在此稱為“h3處理單元”)。該層中的處理單元睡眠直到有效的下層活動(dòng)或其他事件發(fā)生。三重alu處理單元可以作為硬件線程接管主處理器計(jì)算任務(wù)。圖6是根據(jù)本公開(kāi)的一些實(shí)施例的具有三個(gè)alu的h3處理單元的框圖。h3處理塊的第三個(gè)也是最后一個(gè)階段,旨在實(shí)現(xiàn)需要硬實(shí)時(shí)性能的小型算法。通過(guò)擁有三個(gè)alu,h3處理單元可以加入并分支數(shù)據(jù)流。使用內(nèi)部合并功能(連接兩個(gè)alu的輸出),h3處理單元無(wú)需使用1.5h2處理單元。
h3處理單元執(zhí)行的任務(wù)的示例可以包括比例積分微分(pid)循環(huán),觸覺(jué)反饋和增強(qiáng)的音頻功能。管道的這一階段可以為算法提供實(shí)時(shí)性能,并允許主處理器通過(guò)高級(jí)應(yīng)用程序編程接口(api)以軟實(shí)時(shí)控制操作參數(shù)。這可以通過(guò)將某些算法作為流水線階段的微代碼來(lái)進(jìn)一步提取傳感器和算法。結(jié)果是在完全操作時(shí)可以幫助主處理器進(jìn)行周期性處理任務(wù)的一層處理。h3層的代碼通常與h1和h2層兼容,主處理器可以使用h3單元作為硬件線程,加載在編程工具中生成的二進(jìn)制文件,或者通過(guò)直接加載生成的字節(jié)碼來(lái)實(shí)現(xiàn)。
用于配置預(yù)處理陣列的軟件
在一些實(shí)施例中,處理單元的各種特征向下兼容,意味著雙單元可以運(yùn)行單個(gè)單元的代碼等??梢詾樘幚韱卧乃酗L(fēng)格提供單個(gè)編程模型,并且因此任何缺失功能可以輕松模擬。代碼空間可以限制。請(qǐng)注意,分析工具可用于生成用于配置預(yù)處理陣列的微代碼,以優(yōu)化處理單元和并行性的重用。
可配置預(yù)處理陣列可與通用協(xié)處理器區(qū)分開(kāi)
在一些系統(tǒng)中,高性能主處理器通常由協(xié)處理器(例如,圖形處理器,音頻處理器,通用小型協(xié)處理器等)協(xié)助。其中一個(gè)例子可以是包括通用小尺寸處理器與電子設(shè)備中的主/應(yīng)用處理器一起提供用于通信接口的一些數(shù)據(jù)通信功能。這些協(xié)處理器通常過(guò)于強(qiáng)大,并不特別適用于處理傳感器數(shù)據(jù)流。雖然使用標(biāo)準(zhǔn)協(xié)處理器的原因有很多,例如熟悉現(xiàn)有的工具鏈和ip,但是使用通用協(xié)處理器并不能像處理傳感器數(shù)據(jù)的處理網(wǎng)絡(luò)那樣獲得同樣的優(yōu)勢(shì)。
用于預(yù)處理實(shí)時(shí)傳感器數(shù)據(jù)流的方法
圖7是示出根據(jù)本公開(kāi)的一些實(shí)施例的用于預(yù)處理實(shí)時(shí)傳感器數(shù)據(jù)流的方法的流程圖。用于預(yù)處理實(shí)時(shí)傳感器數(shù)據(jù)流的方法可以有利地減少主處理器的上下文切換??膳渲妙A(yù)處理陣列的第一處理層(h1)中的多個(gè)第一處理單元根據(jù)來(lái)自主處理器(任務(wù)702的一個(gè)或多個(gè)第一處理層指令)來(lái)并行地監(jiān)視來(lái)自多個(gè)傳感器的實(shí)時(shí)傳感器數(shù)據(jù)流)。例如,第一處理單元可以單獨(dú)和并行地監(jiān)視數(shù)據(jù)流中感興趣的活動(dòng)。響應(yīng)于通過(guò)第一處理單元(檢查704)中的第一處理單元檢測(cè)實(shí)時(shí)傳感器數(shù)據(jù)流中感興趣的活動(dòng),第一處理單元中的第一處理單元可以在第二處理中中斷第二處理單元(任務(wù)706)層(h2),并且在第二處理層(任務(wù)708)中提供從第一處理單元中的第一處理單元到第二處理單元的輸出數(shù)據(jù)。
在一些實(shí)施例中,監(jiān)視實(shí)時(shí)傳感器數(shù)據(jù)流(任務(wù)702)包括將閾值應(yīng)用于至少一個(gè)實(shí)時(shí)傳感器數(shù)據(jù)流。在一些實(shí)施例中,監(jiān)控實(shí)時(shí)傳感器數(shù)據(jù)流將濾波器(例如,由主處理器指定)應(yīng)用于實(shí)時(shí)傳感器數(shù)據(jù)流,使得將濾波版本提供給第二處理層(h2)用于進(jìn)一步處理。
在一些實(shí)施例中,根據(jù)來(lái)自主處理器的一個(gè)或多個(gè)第二層處理指令,由第一處理單元中的第一處理單元處理來(lái)自第一處理單元的第一處理單元的輸出數(shù)據(jù)。例如,第一處理單元中的第一處理單元可以“喚醒”,并且第一處理單元中的第一處理單元中的兩個(gè)alu可以對(duì)來(lái)自第一處理單元中的第一處理單元的輸出數(shù)據(jù)進(jìn)行操作。
為了提供傳感器數(shù)據(jù)流的復(fù)雜處理,該方法可以包括將第二處理單元中的第一處理單元(在h2中)中的第一處理單元有條件地將輸出數(shù)據(jù)路由到以下的一個(gè)或多個(gè):基于第一處理單元的輸出數(shù)據(jù),存儲(chǔ)器,對(duì)等第二處理單元(在h2中)和第三處理層(h3)處理單元。
為了節(jié)省功率,該方法包括停止第二處理單元中的一個(gè)或多個(gè),直到第一處理單元中的一個(gè)或多個(gè)處理單元檢測(cè)傳感器數(shù)據(jù)流中感興趣的活動(dòng)。該方法還可以包括停止第三處理單元中的一個(gè)或多個(gè)處理單元,直到第二處理單元中的一個(gè)或多個(gè)處理單元檢測(cè)到數(shù)據(jù)中感興趣的活動(dòng)。
應(yīng)用,變型和實(shí)現(xiàn)
在某些情況下,本文所討論的特征可以適用于消費(fèi)者(便攜式)設(shè)備,涉及傳感器的醫(yī)療系統(tǒng),涉及許多傳感器的科學(xué)儀器,無(wú)線和有線通信,涉及傳感器/接收器的雷達(dá),涉及傳感器的工業(yè)過(guò)程控制,音頻以及涉及傳感器的視頻設(shè)備,涉及傳感器的儀器以及具有許多傳感器的其它基于數(shù)字處理的系統(tǒng)產(chǎn)生許多傳感器數(shù)據(jù)流。廣義地說(shuō),這里描述的實(shí)施例可應(yīng)用于需要在不消耗大量功率的情況下監(jiān)測(cè)傳感器數(shù)據(jù)的許多應(yīng)用中。可配置的預(yù)處理陣列通常用于輔助主處理器處理傳感器數(shù)據(jù)流。主處理器陣列可以耦合到具有有限功率資源的電池供電設(shè)備。在這種情況下,可配置的預(yù)處理陣列是特別有利的,因?yàn)樗梢栽谑褂梅浅P〉墓β实耐瑫r(shí)實(shí)現(xiàn)傳感器數(shù)據(jù)流的連續(xù)監(jiān)視。
除了便攜式電子設(shè)備之外,本文公開(kāi)的實(shí)施例也適用于傳感器遠(yuǎn)離主處理器和可配置預(yù)處理陣列分布的系統(tǒng)。一個(gè)例子是使用所公開(kāi)的實(shí)施例與物聯(lián)網(wǎng)。在物聯(lián)網(wǎng)中,許多傳感器(唯一可識(shí)別的感測(cè)設(shè)備)可以可通信地連接到可配置的預(yù)處理陣列。傳感器數(shù)據(jù)可以經(jīng)由接口(如h1層所示)作為數(shù)據(jù)幀或數(shù)據(jù)包提供,其中與h1層中的傳感器的接口可以包括通信接口,例如無(wú)線通信接口。h1處理單元可以用于最小的網(wǎng)絡(luò)幀或分組處理,例如幀/分組的解封裝(例如,處理和/或去除報(bào)頭信息),與校驗(yàn)和相關(guān)的數(shù)據(jù)計(jì)算,其他網(wǎng)絡(luò)層處理。有效地,主處理器不必執(zhí)行這些網(wǎng)絡(luò)相關(guān)功能,h1處理單元可以激活可配置預(yù)處理陣列的較高層,以進(jìn)一步處理來(lái)自傳感器的輸入數(shù)據(jù)(例如處理有效載荷內(nèi)容,檢測(cè)有效載荷內(nèi)容中的興趣活動(dòng),或其他合適的應(yīng)用程序處理)。
廣義地說(shuō),這里公開(kāi)的實(shí)施例可應(yīng)用于正在監(jiān)視來(lái)自許多發(fā)射設(shè)備的數(shù)據(jù)的系統(tǒng)。這些設(shè)備中的一個(gè)或多個(gè)可以是主處理器和可配置的預(yù)處理陣列(例如,經(jīng)由有線接口)本地的,或者遠(yuǎn)離主處理器和可配置的預(yù)處理陣列(例如,經(jīng)由有線或無(wú)線接口)。這些設(shè)備可以包括例如醫(yī)療保健行業(yè),農(nóng)業(yè)/農(nóng)業(yè),汽車(chē)工業(yè),運(yùn)輸業(yè),體育產(chǎn)業(yè),人員跟蹤,庫(kù)存跟蹤,安全行業(yè)等中使用的監(jiān)控設(shè)備。對(duì)于某些應(yīng)用,這些設(shè)備可以包括低能夠在可配置的預(yù)處理陣列處將數(shù)據(jù)發(fā)送到接口的無(wú)線電裝置。在許多這些應(yīng)用中,數(shù)據(jù)可以包括傳感器數(shù)據(jù)或?qū)鞲衅鞯臓顟B(tài)進(jìn)行采樣的數(shù)據(jù)(例如,“活動(dòng)”狀態(tài)、“空閑”狀態(tài)或“活動(dòng)”狀態(tài)))。例如,監(jiān)視許多設(shè)備狀態(tài)的應(yīng)用程序可以利用可配置的預(yù)處理來(lái)降低主處理器的功耗。在這些應(yīng)用中,應(yīng)用可以周期地或頻繁地輪詢這些設(shè)備的狀態(tài),和/或設(shè)備可以周期地或頻繁地向主處理器發(fā)送狀態(tài)。為了降低功耗,可以在可配置的預(yù)處理陣列中輕松實(shí)現(xiàn)這些設(shè)備的狀態(tài)信息的輪詢,接收和處理。處理單元還可以被配置為檢測(cè)來(lái)自一個(gè)設(shè)備的狀態(tài)中的興趣活動(dòng)。用于合并管道(在某些情況下有條件地)具有更復(fù)雜性的處理單元還可以被配置為源自許多設(shè)備的狀態(tài)的興趣活動(dòng),從而進(jìn)行更復(fù)雜的識(shí)別或活動(dòng)檢測(cè)。
在一些實(shí)施例中,一種用于預(yù)處理來(lái)自網(wǎng)絡(luò)傳感器的實(shí)時(shí)傳感器數(shù)據(jù)流的方法包括在輔助主處理器的可配置預(yù)處理陣列處接收包括源自多個(gè)傳感器??膳渲妙A(yù)處理陣列的第一處理層(h1)中的多個(gè)第一處理單元可以通過(guò)將來(lái)自第一處理單元的實(shí)時(shí)傳感器數(shù)據(jù)流提供給多個(gè)第一處理單元來(lái)執(zhí)行對(duì)幀或分組的網(wǎng)絡(luò)層處理可配置預(yù)處理陣列的第二處理層(h2)中的第二處理單元。第二處理單元可處理感興趣的活動(dòng)的實(shí)時(shí)傳感器數(shù)據(jù)流。第二處理單元中的每一個(gè)可以執(zhí)行來(lái)自主處理器的一個(gè)或多個(gè)第二處理層指令。響應(yīng)于檢測(cè)到實(shí)時(shí)傳感器數(shù)據(jù)中感興趣的活動(dòng),一個(gè)或多個(gè)第二處理單元可以在第三處理層(h3)中中斷第三處理單元中的至少一個(gè),并將第二處理層的輸出數(shù)據(jù)提供給所述第三處理單元中的至少一個(gè)。
注意,上面參考附圖討論的活動(dòng)可應(yīng)用于涉及信號(hào)處理的任何集成電路,特別是那些可以執(zhí)行專門(mén)的軟件程序或算法的集成電路,其中一些可能與處理數(shù)字化的實(shí)時(shí)(傳感器)數(shù)據(jù)。某些實(shí)施例可以具有涉及多dsp信號(hào)處理、浮點(diǎn)處理、信號(hào)/控制處理、固定功能處理、微控制器應(yīng)用等的主處理器。
在上述實(shí)施例的討論中,處理單元、功能塊、電容器、時(shí)鐘、dff、分頻器、電感器、電阻器、放大器、開(kāi)關(guān)、數(shù)字核心、晶體管和/或其他組件可以容易地被替換,或以其他方式進(jìn)行修改以適應(yīng)特定的電路需求。此外,應(yīng)當(dāng)注意,使用互補(bǔ)電子設(shè)備、硬件、軟件等為實(shí)現(xiàn)本公開(kāi)的教導(dǎo)提供了同樣可行的選擇。
用于提供傳感器數(shù)據(jù)的可配置預(yù)處理的各種裝置的部分可以包括執(zhí)行本文所述功能的電子電路。在一些情況下,設(shè)備的一個(gè)或多個(gè)部分可以由專門(mén)配置用于觸發(fā)本文描述的功能的主處理器提供。例如,處理器可以包括一個(gè)或多個(gè)應(yīng)用特定組件,或者可以包括被配置為觸發(fā)本文描述的功能的可編程邏輯門(mén)。電路可以在模擬域、數(shù)字域或混合信號(hào)域中工作。在一些情況下,主處理器可以被配置為觸發(fā)可配置的預(yù)處理陣列以通過(guò)執(zhí)行存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)介質(zhì)上的一個(gè)或多個(gè)指令來(lái)執(zhí)行本文描述的功能。
在一個(gè)示例性實(shí)施例中,附圖的任何數(shù)量的電路可以在相關(guān)聯(lián)的電子設(shè)備的板上實(shí)現(xiàn)。該板可以是可以容納電子設(shè)備的內(nèi)部電子系統(tǒng)的各種部件的通用電路板,并且還可以為其它外圍設(shè)備提供連接器。更具體地,電路板可以提供電連接,通過(guò)該電連接系統(tǒng)的其它部件可以電氣通信?;谔囟ǖ呐渲眯枨?、處理需求、計(jì)算機(jī)設(shè)計(jì)等,任何合適的處理器(包括數(shù)字信號(hào)處理器,微處理器,支持芯片組等),計(jì)算機(jī)可讀的非暫時(shí)性存儲(chǔ)元件等可以適當(dāng)?shù)伛詈系桨迳掀渌M件如外部存儲(chǔ)器,附加傳感器,用于音頻/視頻顯示的控制器和外圍設(shè)備可以作為插件卡通過(guò)電纜連接到板上,或者集成到電路板本身中。
在另一個(gè)示例實(shí)施例中,圖的電路可以被實(shí)現(xiàn)為獨(dú)立模塊(例如,具有被配置為執(zhí)行特定應(yīng)用或功能的相關(guān)組件和電路的設(shè)備)或被實(shí)現(xiàn)為插件模塊應(yīng)用電子設(shè)備的具體硬件。注意,本公開(kāi)的特定實(shí)施例可以部分地或全部地容易地包括在片上系統(tǒng)(soc)封裝中。soc表示將計(jì)算機(jī)或其他電子系統(tǒng)的組件集成到單個(gè)芯片中的ic。它可能包含數(shù)字,模擬,混合信號(hào)和通常的射頻功能:所有這些都可以在單個(gè)芯片基板上提供。其他實(shí)施例可以包括多芯片模塊(mcm),其中多個(gè)單獨(dú)的ic位于單個(gè)電子封裝內(nèi)并被配置為通過(guò)電子封裝彼此緊密地相互作用。在各種其他實(shí)施例中,可配置預(yù)處理陣列可以在專用集成電路(asic),現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)和其它半導(dǎo)體芯片中的一個(gè)或多個(gè)硅芯中實(shí)現(xiàn)。
還必須注意,本文概述的所有規(guī)格、尺寸和關(guān)系(例如,處理器的數(shù)量,邏輯操作等)僅僅是為了示例和教導(dǎo)的目的而提供的。在不脫離本公開(kāi)的精神或所附權(quán)利要求的范圍的情況下,這樣的信息可以相當(dāng)大地變化。這些規(guī)范僅適用于一個(gè)非限制性實(shí)例,因此,它們應(yīng)被解釋為如此。在前面的描述中,已經(jīng)參考特定的處理器和/或組件布置描述了示例性實(shí)施例。在不脫離所附權(quán)利要求的范圍的情況下,可以對(duì)這些實(shí)施例進(jìn)行各種修改和改變。因此,描述和附圖被認(rèn)為是說(shuō)明性的而不是限制性的。
注意,通過(guò)本文提供的許多實(shí)例,可以用兩個(gè)、三個(gè)、四個(gè)或更多個(gè)電氣部件來(lái)描述相互作用。然而,這僅僅是為了清楚和示例的目的而實(shí)現(xiàn)的。應(yīng)當(dāng)理解,可以以任何合適的方式來(lái)鞏固該系統(tǒng)。沿著類(lèi)似的設(shè)計(jì)替代方案,圖中所示的組件,模塊和元件中的任何一個(gè)可以以各種可能的配置組合,所有這些配置都明確地在本說(shuō)明書(shū)的廣泛范圍內(nèi)。在某些情況下,僅通過(guò)參考有限數(shù)量的電氣元件來(lái)描述給定的一組流的一個(gè)或多個(gè)功能可能更容易。應(yīng)當(dāng)理解,圖的電路及其教導(dǎo)是容易地可擴(kuò)展的并且可以容納大量組件以及更復(fù)雜/復(fù)雜的布置和配置。因此,所提供的實(shí)施例不應(yīng)該限制范圍或抑制潛在地應(yīng)用于無(wú)數(shù)其他架構(gòu)的電路的廣泛教導(dǎo)。
注意,在本說(shuō)明書(shū)中,對(duì)“一個(gè)實(shí)施例”、“示例實(shí)施例”、“實(shí)施例”、“另一個(gè)實(shí)施例”、“一些實(shí)施例”、“各種實(shí)施例”、“其他實(shí)施例”、“替代實(shí)施例”中包括的各種特征(例如,元件,結(jié)構(gòu),模塊,部件,步驟,操作,特性等)等旨在意味著任何這樣的特征被包括在本公開(kāi)的一個(gè)或多個(gè)實(shí)施例中,或者可以不一定在相同的實(shí)施例中組合。
還重要的是注意,本文描述的用于處理傳感器數(shù)據(jù)的操作僅示出了可能由圖中所示的系統(tǒng)執(zhí)行或在圖中所示的系統(tǒng)內(nèi)的一些可能的過(guò)程。這些操作中的一些可以在適當(dāng)?shù)那闆r下被刪除或去除,或者這些操作可以在不脫離本公開(kāi)的范圍的情況下被修改或改變。此外,這些操作的時(shí)間可能會(huì)相當(dāng)大的改變。上述業(yè)務(wù)流程是為了舉例和討論的目的而提供的。本文描述的實(shí)施例提供了實(shí)質(zhì)的靈活性,因?yàn)樵诓幻撾x本公開(kāi)的教導(dǎo)的情況下,可以提供任何合適的布置、年表、配置和定時(shí)機(jī)制。
可以為本領(lǐng)域技術(shù)人員確定許多其它變化、替代、變化、改變和修改,并且本公開(kāi)意圖包括落入范圍內(nèi)的所有這樣的改變、替換、變化、改變和修改的所附權(quán)利要求。注意,上述裝置的所有可選特征也可以針對(duì)本文描述的方法或過(guò)程來(lái)實(shí)現(xiàn),并且示例中的具體內(nèi)容可以在一個(gè)或多個(gè)實(shí)施例中的任何地方使用。
說(shuō)明性實(shí)施例
示例1是用于執(zhí)行多個(gè)傳感器數(shù)據(jù)流的預(yù)處理的可配置預(yù)處理陣列,該陣列包括:用于處理傳感器數(shù)據(jù)流的第一處理層,第一處理層具有一個(gè)或多個(gè)第一處理單元連接到多個(gè)傳感器接口,所述一個(gè)或多個(gè)第一處理單元中的至少一個(gè)具有單個(gè)算術(shù)邏輯單元(alu);以及第二處理層,用于處理來(lái)自第一處理層的輸出數(shù)據(jù),第二處理層具有一個(gè)或多個(gè)第二處理單元,至少一個(gè)或多個(gè)第二處理單元具有兩個(gè)alu;其中所述第二處理單元中的第一處理單元包括基于所述處理單元的輸出數(shù)據(jù)將條件數(shù)據(jù)路由提供給以下一個(gè)或多個(gè)的電路:存儲(chǔ)器,對(duì)等第二處理單元和第三處理中的處理單元層。
在示例2中,示例1的陣列可以包括包括一個(gè)或多個(gè)第三處理單元的第三層,每個(gè)一個(gè)或多個(gè)第三處理單元具有三個(gè)alu。
在示例3中,示例1或2的陣列可以包括在第一處理單元(或其他處理層中的其他處理單元)之一的輸出處的圓形隊(duì)列。
在示例4中,上述示例中的任何一個(gè)的陣列可以包括一個(gè)或多個(gè)第一處理單元被配置為執(zhí)行響應(yīng)中的循環(huán)中的指令的單次執(zhí)行。
在示例5中,上述示例中的任何一個(gè)的陣列可以包括一個(gè)或多個(gè)第二處理單元中的至少一個(gè),包括用于在寄存器中存儲(chǔ)中斷,跳轉(zhuǎn)和返回向量的中斷和地址生成器,程序計(jì)數(shù)器用于生成程序計(jì)數(shù)器。
在示例6中,上述示例中的任一個(gè)的陣列可以包括一個(gè)或多個(gè)第二處理單元中的至少一個(gè)包括具有程序計(jì)數(shù)器的中斷和地址生成器,該程序計(jì)數(shù)器可由alu的輸出第二處理單元。
在示例7中,上述示例中的任一個(gè)的陣列可以包括經(jīng)由串行接口耦合到多個(gè)傳感器的陣列。
在實(shí)施例8中,上述實(shí)施例中的任何一個(gè)的陣列可以包括耦合到電池供電裝置的陣列。
在實(shí)施例9中,上述實(shí)施例中的任何一個(gè)的陣列可以包括一個(gè)或多個(gè)第二處理單元停滯,直到一個(gè)或多個(gè)第一處理單元檢測(cè)到感興趣的活動(dòng)。
在示例10中,上述示例中的任何一個(gè)的陣列可以包括第三層的一個(gè)或多個(gè)第三處理單元停頓,直到一個(gè)或多個(gè)第二處理單元檢測(cè)到感興趣的活動(dòng)。
在示例11中,上述示例中的任何一個(gè)的陣列可以包括異步操作的陣列(沒(méi)有時(shí)鐘)。