相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求提交于2014年8月12日的題為“l(fā)owpowercomputationalimaging(低功率計(jì)算成像)”的美國(guó)專(zhuān)利申請(qǐng)?zhí)?4/458,014的較早優(yōu)先權(quán)日期的權(quán)益,所述申請(qǐng)對(duì)提交于2014年7月30日的題為“l(fā)owpowercomputationalimagingcomputingdevice(低功率計(jì)算成像計(jì)算設(shè)備)”的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)?zhí)?2/030,913以及提交于2013年11月18日的題為“apparatus,systems,andmethodsforprovidingcomputationalimagingpipeline(用于提供計(jì)算成像流水線(xiàn)的裝置、系統(tǒng)、和方法)”的美國(guó)專(zhuān)利申請(qǐng)?zhí)?4/082,396要求了優(yōu)先權(quán),其對(duì)提交于2013年11月6日的題為“apparatus,systems,andmethodsforprovidingconfigurableandcomposablecomputationalimagingpipeline(用于提供可配置和可組合的計(jì)算成像流水線(xiàn)的裝置、系統(tǒng)、和方法)”的羅馬尼亞專(zhuān)利申請(qǐng)osim登記a/00812以及對(duì)提交于2013年8月8日的題為“configurableandcomposablecomputationalimagingpipeline(可配置和可組合的計(jì)算成像流水線(xiàn))”的英國(guó)專(zhuān)利申請(qǐng)?zhí)杇b1314263.3要求了優(yōu)先權(quán)。本申請(qǐng)還要求提交于2014年8月12日的題為“apparatus,systems,andmethodsforlowpowercomputationalimaging(用于低功率計(jì)算成像的裝置、系統(tǒng)、和方法)”的美國(guó)專(zhuān)利申請(qǐng)?zhí)?4/458,052的較早優(yōu)先權(quán)日期的權(quán)益,所述申請(qǐng)對(duì)提交于2014年7月30日的題為“l(fā)owpowercomputationalimagingcomputingdevice(低功率計(jì)算成像計(jì)算設(shè)備)”的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)?zhí)?2/030,913、以及對(duì)提交于2013年11月18日的題為“apparatus,systems,andmethodsforprovidingcomputationalimagingpipeline(用于提供計(jì)算成像流水線(xiàn)的裝置、系統(tǒng)、和方法)”的美國(guó)專(zhuān)利申請(qǐng)?zhí)?4/082,396要求了優(yōu)先權(quán),其對(duì)提交于2013年11月6日的題為“apparatus,systems,andmethodsforprovidingconfigurableandcomposablecomputationalimagingpipeline(用于提供可配置和可組合的計(jì)算成像流水線(xiàn)的裝置、系統(tǒng)、和方法)”的羅馬尼亞專(zhuān)利申請(qǐng)osim登記a/00812以及對(duì)提交于2013年8月8日的題為“configurableandcomposablecomputationalimagingpipeline(可配置和可組合的計(jì)算成像流水線(xiàn))”的英國(guó)專(zhuān)利申請(qǐng)?zhí)杇b1314263.3要求了優(yōu)先權(quán)。。所述申請(qǐng)中的每項(xiàng)申請(qǐng)都特此通過(guò)引用以其全文結(jié)合在此。
發(fā)明領(lǐng)域
本申請(qǐng)總體上涉及提供一種低功率計(jì)算成像計(jì)算設(shè)備。
背景技術(shù):
計(jì)算成像是一種新的成像范式,其能夠基于圖像和視頻提供空前的用戶(hù)體驗(yàn)和信息。例如,計(jì)算成像可以對(duì)圖像和/或視頻進(jìn)行處理以提供場(chǎng)景的深度映射,提供場(chǎng)景的全景視圖,從圖像和/或視頻提取面部,從圖像和/或視頻提取文本、特征和元數(shù)據(jù),并且甚至提供基于對(duì)象和場(chǎng)景識(shí)別特征的自動(dòng)化視覺(jué)認(rèn)知能力。
雖然計(jì)算成像可以提供有趣的能力,但它沒(méi)有被廣泛采用。計(jì)算成像的緩慢采用可歸因于計(jì)算成像伴隨有基本的數(shù)據(jù)處理挑戰(zhàn)。通常,圖像分辨率和視頻幀速率是高的。因此,計(jì)算成像通常需要數(shù)百千兆字節(jié)的計(jì)算資源,這可能難以通過(guò)使用常規(guī)計(jì)算機(jī)處理器來(lái)獲得,特別是在性能必須是可持續(xù)的并且在低功耗下由高的存儲(chǔ)器帶寬支持的情況下。此外,計(jì)算成像一般對(duì)延遲敏感。因?yàn)橛脩?hù)不可能等待幾分鐘來(lái)使相機(jī)識(shí)別對(duì)象,所以計(jì)算成像相機(jī)一般被設(shè)計(jì)為快速處理圖像和視頻,這進(jìn)一步加重了計(jì)算成像的計(jì)算要求。
遺憾的是,難以在定制硬件中實(shí)現(xiàn)計(jì)算成像技術(shù)。由于計(jì)算成像領(lǐng)域處于其相對(duì)初期,實(shí)現(xiàn)技術(shù)在不斷變化。因此,難以在硬件中完全定制計(jì)算成像,因?yàn)閷?shí)施技術(shù)的變化將需要重新設(shè)計(jì)整個(gè)硬件。因此,通常期望提供靈活的硬件架構(gòu)和靈活的硬件基礎(chǔ)結(jié)構(gòu)。
同時(shí),對(duì)于這樣的視頻和圖像處理的需求在很大程度上來(lái)自功率消耗是關(guān)鍵考慮因素的便攜式電子設(shè)備,例如平板計(jì)算機(jī)和移動(dòng)設(shè)備。其結(jié)果是,存在對(duì)于即使在受限的功率預(yù)算下也可以操作的靈活的計(jì)算成像基礎(chǔ)結(jié)構(gòu)。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)所公開(kāi)的主題,提供了用于提供低功率計(jì)算成像的系統(tǒng)和方法。
所公開(kāi)的主題包括一種計(jì)算設(shè)備。所述計(jì)算設(shè)備可以包括多個(gè)向量處理器,其中,所述多個(gè)向量處理器中的一個(gè)向量處理器被配置成用于執(zhí)行在第一值數(shù)組上操作的指令。所述計(jì)算設(shè)備還可以包括硬件加速器,所述硬件加速器被配置成用于對(duì)第二值數(shù)組執(zhí)行濾波操作。所述計(jì)算設(shè)備還可以包括存儲(chǔ)器結(jié)構(gòu),所述存儲(chǔ)器結(jié)構(gòu)包括多個(gè)存儲(chǔ)器片以及具有第一接口和第二接口的互連系統(tǒng),其中,所述第一接口被配置成用于將所述多個(gè)向量處理器耦合至所述多個(gè)存儲(chǔ)器片上,并且其中,所述第二接口被配置成用于將所述硬件加速器耦合至所述多個(gè)存儲(chǔ)器片上。另外,所述計(jì)算設(shè)備可以包括主機(jī)處理器,所述主機(jī)處理器被配置成用于使所述存儲(chǔ)器結(jié)構(gòu)通過(guò)所述第一接口向所述多個(gè)向量處理器中的所述一個(gè)向量處理器提供所述第一值數(shù)組并且通過(guò)所述第二接口向所述硬件加速器提供所述第二值數(shù)組,由此使所述多個(gè)向量處理器中的所述一個(gè)向量處理器能夠根據(jù)所述指令處理所述第一值數(shù)組并且使所述硬件加速器能夠根據(jù)所述濾波操作處理所述第二值數(shù)組。
在某些實(shí)施例中,所述計(jì)算設(shè)備可以包括多個(gè)功率島,每個(gè)功率島包括至少一個(gè)功率域,其中,所述多個(gè)功率島中的第一功率島被耦合至第一電源電壓來(lái)向所述多個(gè)向量處理器中的一個(gè)向量處理器提供所述第一電源電壓,并且其中,所述多個(gè)功率島中的第二功率島被耦合至第二電源電壓來(lái)向所述硬件加速器提供所述第二電源電壓。
在某些實(shí)施例中,所述計(jì)算設(shè)備可以包括功率管理模塊,所述功率管理模塊被配置成用于向?qū)⑺龆鄠€(gè)功率島中的所述第一功率島耦合至所述第一電源電壓的開(kāi)關(guān)提供使能信號(hào),由此將所述多個(gè)向量處理器中的所述一個(gè)向量處理器置于活動(dòng)模式。
在某些實(shí)施例中,所述多個(gè)向量處理器中的所述一個(gè)向量處理器可以包括用于處理所述第一值數(shù)組的邏輯電路區(qū)域以及用于至少存儲(chǔ)所述第一值數(shù)組的子集的本地存儲(chǔ)器,并且所述功率管理模塊可以被配置成用于使所述第一電源電壓被提供給所述邏輯電路區(qū)域并且使第三電源電壓被提供給所述本地存儲(chǔ)器以獨(dú)立控制所述邏輯電路區(qū)域和所述本地存儲(chǔ)器的功耗。
在某些實(shí)施例中,所述功率管理模塊可以被配置成用于斷開(kāi)所述開(kāi)關(guān)以將所述多個(gè)功率島中的所述第一功率島從所述第一電源電壓斷開(kāi),由此將所述多個(gè)向量處理器中的所述一個(gè)向量處理器置于低功率模式。
在某些實(shí)施例中,所述功率管理模塊可以包括有效信號(hào)生成器,所述有效信號(hào)生成器被配置成用于生成指示所述多個(gè)功率島中的所述第一功率島中的電路塊準(zhǔn)備好處理輸入數(shù)據(jù)的時(shí)刻的有效信號(hào),其中,所述有效信號(hào)生成器包括向所述多個(gè)功率島中的所述第一功率島中的所述電路塊提供所述第一電源電壓的開(kāi)關(guān)菊鏈。
在某些實(shí)施例中,所述計(jì)算設(shè)備可以包括耦合至多個(gè)輸入/輸出(i/o)引腳的外圍設(shè)備,其中,所述外圍設(shè)備被配置成用于提供所述多個(gè)向量處理器中的至少一個(gè)處理器與外部設(shè)備之間的通信信道。
在某些實(shí)施例中,所述外圍設(shè)備可以在始終通電的功率島內(nèi)。
在某些實(shí)施例中,所述外圍設(shè)備可以被配置成用于監(jiān)測(cè)來(lái)自所述外部設(shè)備的信號(hào)以檢測(cè)所述多個(gè)向量處理器中的一個(gè)向量處理器應(yīng)當(dāng)響應(yīng)的事件,并且當(dāng)所述外圍設(shè)備檢測(cè)到所述事件時(shí),使所述功率管理模塊將所述多個(gè)向量處理器中的所述一個(gè)向量處理器置于所述活動(dòng)模式。
在某些實(shí)施例中,所述外圍設(shè)備可以包括仿真模塊,所述仿真模塊被配置成用于使所述外圍設(shè)備通過(guò)所述i/o引腳的公共組來(lái)仿真多個(gè)標(biāo)準(zhǔn)協(xié)議接口的功能。
在某些實(shí)施例中,所述外圍設(shè)備可以被耦合至i/o引腳的差分對(duì)上,并且所述外圍設(shè)備被配置成用于基于極性控制信號(hào)來(lái)改變所述差分對(duì)的極性。
在某些實(shí)施例中,i/o引腳差分對(duì)可以包括移動(dòng)行業(yè)處理器接口(mipi)通道差分對(duì)。
在某些實(shí)施例中,所述外圍設(shè)備可以包括旁路緩沖器,所述旁路緩沖器被配置成用于在輸入i/o引腳和輸出i/o引腳之間進(jìn)行旁路,由此在所述輸入i/o引腳與所述輸出i/o引腳之間提供通信信道而無(wú)需將所述向量處理器中的所述一個(gè)向量處理器置于活動(dòng)模式。
所公開(kāi)的主題包括一種方法。所述方法可以包括:提供包括多個(gè)存儲(chǔ)器片的存儲(chǔ)器結(jié)構(gòu)以及具有第一接口和第二接口的互連系統(tǒng)。所述方法還可以包括:使用所述第一接口將所述多個(gè)存儲(chǔ)器片和多個(gè)向量處理器進(jìn)行耦合,以及使用所述第二接口將所述多個(gè)存儲(chǔ)器片與硬件加速器進(jìn)行耦合。所述方法可以進(jìn)一步包括:由所述存儲(chǔ)器結(jié)構(gòu)通過(guò)所述第一接口向所述多個(gè)向量處理器中的一個(gè)向量處理器提供第一值數(shù)組并且通過(guò)所述第二接口向所述硬件加速器提供第二值數(shù)組;在多個(gè)向量處理器中的所述一個(gè)向量處理器上執(zhí)行在所述第一值數(shù)組上操作的指令,以及由所述硬件加速器對(duì)所述第二值數(shù)組執(zhí)行濾波操作。
在某些實(shí)施例中,所述方法可以包括向所述多個(gè)向量處理器中的一個(gè)向量處理器提供第一電源電壓,以及向所述硬件加速器提供第二電源電壓,其中,所述多個(gè)向量處理器中的所述一個(gè)向量處理器以及所述硬件加速器分別與第一功率島和第二功率島相關(guān)聯(lián)。
在某些實(shí)施例中,所述方法可以包括由功率管理模塊向?qū)⑺龅谝还β蕧u耦合至所述第一電源電壓的開(kāi)關(guān)提供使能信號(hào),由此將所述多個(gè)向量處理器中的所述一個(gè)向量處理器置于活動(dòng)模式。
在某些實(shí)施例中,所述方法可以包括:使用向所述多個(gè)向量處理器中的所述一個(gè)向量處理器中的所述電路塊提供所述第一電源電壓的開(kāi)關(guān)菊鏈,生成指示所述第一功率島中的電路塊準(zhǔn)備好處理輸入數(shù)據(jù)的時(shí)刻的有效信號(hào)。
在某些實(shí)施例中,所述方法可以包括提供耦合至多個(gè)輸入/輸出(i/o)引腳的外圍設(shè)備,其中,所述外圍設(shè)備與始終通電的功率島相關(guān)聯(lián)。
在某些實(shí)施例中,所述方法可以包括監(jiān)測(cè)來(lái)自外部設(shè)備的信號(hào)以檢測(cè)所述多個(gè)向量處理器中的所述一個(gè)向量處理器應(yīng)當(dāng)響應(yīng)的事件,并且使所述功率管理模塊將所述多個(gè)向量處理器中的所述一個(gè)向量處理器置于所述活動(dòng)模式。
在某些實(shí)施例中,所述方法可以包括由所述外圍設(shè)備通過(guò)所述i/o引腳的公共組來(lái)仿真多個(gè)標(biāo)準(zhǔn)協(xié)議接口的功能。
在某些實(shí)施例中,所述外圍設(shè)備被耦合至i/o引腳的差分對(duì)上,并且所述方法進(jìn)一步包括基于極性控制信號(hào)來(lái)改變所述差分對(duì)的極性。
在某些實(shí)施例中,所述方法可以包括使用旁路緩沖器在輸入i/o引腳和輸出i/o引腳之間進(jìn)行旁路,由此在所述輸入i/o引腳與所述輸出i/o引腳之間提供通信信道而無(wú)需將所述向量處理器中的所述一個(gè)向量處理器置于活動(dòng)模式。
所公開(kāi)的主題包括一種電子設(shè)備。所述電子設(shè)備可以包括多個(gè)向量處理器,其中,所述多個(gè)向量處理器中的一個(gè)向量處理器被配置成用于執(zhí)行在第一值數(shù)組上操作的指令。所述電子設(shè)備還可以包括硬件加速器,所述硬件加速器包括使用從軟件模塊所接收的配置信息進(jìn)行編程的可編程數(shù)據(jù)路徑流水線(xiàn),其中,所述可編程數(shù)據(jù)路徑流水線(xiàn)被配置成用于根據(jù)所述配置信息對(duì)第二值數(shù)組執(zhí)行濾波操作。所述電子設(shè)備還可以包括存儲(chǔ)器結(jié)構(gòu),所述存儲(chǔ)器結(jié)構(gòu)包括多個(gè)存儲(chǔ)器片。所述電子設(shè)備可以進(jìn)一步包括主機(jī)處理器,所述主機(jī)處理器被配置成用于使所述存儲(chǔ)器結(jié)構(gòu)向所述多個(gè)向量處理器中的所述一個(gè)向量處理器提供所述第一值數(shù)組并且向所述硬件加速器提供所述第二值數(shù)組,由此使所述多個(gè)向量處理器中的所述一個(gè)向量處理器能夠根據(jù)所述指令處理所述第一值數(shù)組并且使所述硬件加速器能夠根據(jù)所述配置信息處理所述第二值數(shù)組。
在某些實(shí)施例中,所述硬件加速器可以包括輸出緩沖器,所述輸出緩沖器用于接收由所述可編程數(shù)據(jù)路徑流水線(xiàn)所處理的圖像的掃描線(xiàn),以及流水線(xiàn)停轉(zhuǎn)控制器,所述流水線(xiàn)停轉(zhuǎn)控制器被配置成用于在所述輸出緩沖器已滿(mǎn)時(shí)停轉(zhuǎn)所述可編程數(shù)據(jù)路徑流水線(xiàn)的操作。
在某些實(shí)施例中,所述硬件加速器可以包括被鏈接到一起以執(zhí)行所述濾波操作的多個(gè)功能單元。
在某些實(shí)施例中,所述多個(gè)功能單元被鏈接到一起的順序是使用從所述軟件模塊所接收的所述配置信息所確定的。
在某些實(shí)施例中,將所述多個(gè)功能單元中的第一單元的輸出提供到存儲(chǔ)器結(jié)構(gòu)中的緩沖器,并且從所述緩沖器接收所述多個(gè)功能單元中的第二功能單元的輸入。
在某些實(shí)施例中,所述硬件加速器可以包括深度映射客戶(hù)端,所述深度映射客戶(hù)端被配置成用于接收指示由所述圖像的所述掃描線(xiàn)中的像素所表示的物體的深度的深度信息。
在某些實(shí)施例中,所述硬件加速器可以包括深度映射模塊,所述深度映射模塊被配置成用于處理所述深度信息以將所述深度信息的分辨率與所述圖像的所述掃描線(xiàn)的分辨率相匹配。
在某些實(shí)施例中,所述深度映射模塊被配置成用于將所述深度信息與所述圖像的所述掃描線(xiàn)進(jìn)行時(shí)間同步。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以包括互斥(mutex)控制器,所述互斥控制器被配置成用于監(jiān)測(cè)請(qǐng)求由所述向量處理器中的一個(gè)向量處理器對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的獨(dú)占訪(fǎng)問(wèn)請(qǐng)求的狀態(tài),并且當(dāng)所述向量處理器中的所述一個(gè)向量處理器接收到對(duì)所述共享資源的獨(dú)占訪(fǎng)問(wèn)時(shí),向所述向量處理器中的所述一個(gè)向量處理器發(fā)送指示所述向量處理器中的所述一個(gè)向量處理器可以對(duì)所述共享資源進(jìn)行所述獨(dú)占訪(fǎng)問(wèn)的確認(rèn)消息。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以包括多個(gè)緩沖器,其中,所述多個(gè)緩沖器中的第一緩沖器與所述向量處理器中的第一向量處理器相關(guān)聯(lián),并且其中,所述向量處理器中的第二向量處理器被配置成用于通過(guò)將數(shù)據(jù)存儲(chǔ)在所述多個(gè)緩沖器中的所述第一緩沖器中來(lái)向所述向量處理器中的所述第一向量處理器發(fā)送數(shù)據(jù)。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以被配置成用于基于轉(zhuǎn)移到所述向量處理器中的所述第一向量處理器中的數(shù)據(jù)量對(duì)所述多個(gè)緩沖器中的所述第一緩沖器的容量進(jìn)行動(dòng)態(tài)修改。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以被配置成用于基于轉(zhuǎn)移到所述向量處理器中的所述第一向量處理器中的數(shù)據(jù)量將所述多個(gè)緩沖器中的兩個(gè)或更多個(gè)緩沖器與所述向量處理器中的所述第一向量處理器進(jìn)行動(dòng)態(tài)關(guān)聯(lián)。
在某些實(shí)施例中,所述多個(gè)緩沖器可以是所述存儲(chǔ)器結(jié)構(gòu)中的所述多個(gè)存儲(chǔ)器片中的一個(gè)存儲(chǔ)器片的一部分。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以被配置成用于當(dāng)所述向量處理器中的一個(gè)向量處理器進(jìn)入低功率模式時(shí),存儲(chǔ)所述向量處理器中的所述一個(gè)向量處理器的狀態(tài)信息。
在某些實(shí)施例中,將所述狀態(tài)信息存儲(chǔ)在所述存儲(chǔ)器結(jié)構(gòu)中的靜態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器中。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以包括直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)控制器,其中,所述dma控制器包括指示執(zhí)行dma操作的順序的操作列表。
在某些實(shí)施例中,所述dma控制器可以被配置成用于基于使能緩沖器執(zhí)行所述操作列表中的所述dma操作的子集,其中,所述使能緩沖器包括多個(gè)位,其中,所述多個(gè)位中的一個(gè)位與所述dma操作中的一個(gè)dma操作相關(guān)聯(lián),并且所述多個(gè)位中的所述一個(gè)位的值指示是否將由所述dma控制器執(zhí)行所述dma操作中的所述一個(gè)操作。
所公開(kāi)的主題包括一種方法。所述方法可以包括:所述方法可以包括由包括多個(gè)存儲(chǔ)器片的存儲(chǔ)器結(jié)構(gòu)向多個(gè)向量處理器中的一個(gè)向量處理器提供第一值數(shù)組。所述方法還可以包括:由所述存儲(chǔ)器結(jié)構(gòu)向包括可編程數(shù)據(jù)路徑流水線(xiàn)的硬件加速器提供第二值數(shù)組;由所述多個(gè)向量處理器中的一個(gè)向量處理器執(zhí)行在所述第一值數(shù)組上操作的指令;使用配置信息在所述硬件加速器中配置所述數(shù)據(jù)路徑流水線(xiàn);以及使用所述硬件加速器中的所述數(shù)據(jù)路徑流水線(xiàn)根據(jù)所述配置信息對(duì)所述第二值數(shù)組執(zhí)行濾波操作。
在某些實(shí)施例中,所述方法可以包括在輸出緩沖器處接收由所述可編程數(shù)據(jù)路徑流水線(xiàn)所處理的圖像的掃描線(xiàn);以及在所述輸出緩沖器已滿(mǎn)時(shí)由流水線(xiàn)停轉(zhuǎn)控制器停轉(zhuǎn)所述可編程數(shù)據(jù)路徑流水線(xiàn)的操作。
在某些實(shí)施例中,所述硬件加速器包括多個(gè)功能單元,并且所述方法包括根據(jù)所述配置信息將所述多個(gè)功能單元進(jìn)行鏈接以執(zhí)行所述濾波操作。
在某些實(shí)施例中,所述多個(gè)功能單元包括第一功能單元和第二功能單元,并且其中,將所述多個(gè)功能單元進(jìn)行鏈接包括將所述第一功能單元的輸出鏈接到所述第二功能單元的輸入。
在某些實(shí)施例中,所述方法可以包括接收指示由所述圖像的所述掃描線(xiàn)中的像素所表示的物體的深度的深度信息;以及將所述深度信息與所述圖像的所述掃描線(xiàn)進(jìn)行同步。
在某些實(shí)施例中,所述方法可以包括由所述存儲(chǔ)器結(jié)構(gòu)中的存儲(chǔ)器控制器來(lái)監(jiān)測(cè)請(qǐng)求由所述向量處理器中的一個(gè)向量處理器對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的獨(dú)占訪(fǎng)問(wèn)請(qǐng)求的狀態(tài),并且當(dāng)所述向量處理器中的所述一個(gè)向量處理器接收到對(duì)所述共享資源的獨(dú)占訪(fǎng)問(wèn)時(shí),向所述向量處理器中的所述一個(gè)向量處理器發(fā)送指示所述向量處理器中的所述一個(gè)向量處理器可以對(duì)所述共享資源進(jìn)行所述獨(dú)占訪(fǎng)問(wèn)的確認(rèn)消息。
在某些實(shí)施例中,所述存儲(chǔ)器結(jié)構(gòu)可以包括多個(gè)緩沖器,其中,所述多個(gè)緩沖器中的第一緩沖器與所述向量處理器中的第一向量處理器相關(guān)聯(lián),并且所述方法進(jìn)一步包括通過(guò)將數(shù)據(jù)存儲(chǔ)在所述多個(gè)緩沖器中的所述第一緩沖器中來(lái)由所述向量處理器中的第二向量處理器向所述向量處理器中的所述第一向量處理器發(fā)送數(shù)據(jù)。
在某些實(shí)施例中,所述方法可以包括基于轉(zhuǎn)移到所述向量處理器中的所述第一向量處理器中的數(shù)據(jù)量對(duì)所述多個(gè)緩沖器中的所述第一緩沖器的容量進(jìn)行動(dòng)態(tài)修改。
在某些實(shí)施例中,所述方法可以包括基于轉(zhuǎn)移到所述向量處理器中的所述第一向量處理器中的數(shù)據(jù)量將所述多個(gè)緩沖器中的兩個(gè)或更多個(gè)緩沖器與所述向量處理器中的所述第一向量處理器進(jìn)行動(dòng)態(tài)關(guān)聯(lián)。
在某些實(shí)施例中,所述方法可以包括當(dāng)所述向量處理器中的一個(gè)向量處理器進(jìn)入低功率模式時(shí),將所述向量處理器中的所述一個(gè)向量處理器的狀態(tài)信息存儲(chǔ)在所述存儲(chǔ)器結(jié)構(gòu)中。
在某些實(shí)施例中,將所述狀態(tài)信息存儲(chǔ)在所述存儲(chǔ)器結(jié)構(gòu)中的靜態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器中。
在某些實(shí)施例中,所述方法可以包括在直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)控制器處維護(hù)指示執(zhí)行dma操作的順序的操作列表。
在某些實(shí)施例中,所述方法可以包括基于使能緩沖器執(zhí)行所述操作列表中的所述dma操作的子集,其中,所述使能緩沖器包括多個(gè)位,其中,所述多個(gè)位中的一個(gè)位與所述dma操作中的一個(gè)dma操作相關(guān)聯(lián),并且所述多個(gè)位中的所述一個(gè)位的值指示是否將由所述dma控制器執(zhí)行所述dma操作中的所述一個(gè)dma操作。
附圖說(shuō)明
當(dāng)結(jié)合以下相同的參考號(hào)標(biāo)識(shí)相同的元素的附圖進(jìn)行考慮時(shí),所公開(kāi)的主題的各種目的、特征、以及優(yōu)點(diǎn)可以通過(guò)參照所公開(kāi)的主題的以下詳細(xì)說(shuō)明而被更全面地理解。附圖是示意性的,并且不旨在按比例進(jìn)行繪制。為了清楚起見(jiàn),沒(méi)有在每張圖中標(biāo)記每個(gè)部件。也并未示出所公開(kāi)主題的每個(gè)實(shí)施例的每個(gè)組件,其中圖示無(wú)需允許本領(lǐng)域普通技術(shù)人員理解所公開(kāi)主題。
圖1提供了根據(jù)某些實(shí)施例的計(jì)算設(shè)備的高級(jí)圖解。
圖2展示了根據(jù)某些實(shí)施例的計(jì)算設(shè)備的詳細(xì)圖解。
圖3展示了根據(jù)某些實(shí)施例的硬件加速器。
圖4展示了根據(jù)某些實(shí)施例的可以基于深度信息適應(yīng)濾波操作的硬件加速器。
圖5展示了硬件加速器。
圖6展示了根據(jù)某些實(shí)施例的基于通用功能的硬件加速器。
圖7展示了根據(jù)某些實(shí)施例的包括用于在多個(gè)圖像信號(hào)處理(isp)功能模塊之間進(jìn)行通信的先入先出(fifo)緩沖器的硬件加速器。
圖8展示了根據(jù)某些實(shí)施例的功率島的電力供給選通。
圖9展示了根據(jù)某些實(shí)施例的有效信號(hào)生成器。
圖10展示了根據(jù)某些實(shí)施例的事件信號(hào)監(jiān)測(cè)機(jī)制。
圖11示出了根據(jù)某些實(shí)施例的軟件定義接口。
圖12示出了根據(jù)某些實(shí)施例的軟件定義接口的詳細(xì)實(shí)現(xiàn)方式。
圖13展示了根據(jù)某些實(shí)施例的事件處理器。
圖14展示了根據(jù)某些實(shí)施例的事件處理器中的事件濾波器。
圖15示出了根據(jù)某些實(shí)施例的外圍設(shè)備的旁路模式。
圖16示出了根據(jù)某些實(shí)施例的可編程移動(dòng)行業(yè)處理器接口(mipi)的接口。
圖17展示了根據(jù)某些實(shí)施例的用于輸入/輸出界面的極性反轉(zhuǎn)機(jī)制的應(yīng)用。
圖18展示了根據(jù)某些實(shí)施例的具有基于硬件的互斥(mutex)控制器的存儲(chǔ)器結(jié)構(gòu)。
圖19展示了根據(jù)某些實(shí)施例的緩沖器的動(dòng)態(tài)分配。
圖20展示了根據(jù)某些實(shí)施例的向邏輯電路存儲(chǔ)器設(shè)備提供不同電壓的功率管理機(jī)制。
圖21展示了根據(jù)某些實(shí)施例的實(shí)現(xiàn)基于緩沖器的直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)數(shù)據(jù)結(jié)構(gòu)使能機(jī)制的dma引擎。
圖22展示了根據(jù)某些實(shí)施例的包括計(jì)算設(shè)備的電子設(shè)備。
具體實(shí)施方式
在下面的描述中,關(guān)于所公開(kāi)主題的系統(tǒng)和方法以及這些系統(tǒng)和方法可以操作的環(huán)境等,闡述了許多具體細(xì)節(jié),以便提供對(duì)所公開(kāi)主題的透徹理解。然而,本領(lǐng)域技術(shù)人員將清楚的是,可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐所公開(kāi)主題,并且本領(lǐng)域公知的某些特征未進(jìn)行詳細(xì)描述,以避免使所公開(kāi)主題復(fù)雜化。此外,應(yīng)當(dāng)理解的是,下面提供的示例是示例性的,并且可以預(yù)期,在所公開(kāi)主題的范圍內(nèi)存在其他系統(tǒng)和方法。
計(jì)算成像可以轉(zhuǎn)換機(jī)器捕獲物理世界并與其交互的方式。例如,通過(guò)計(jì)算成像,機(jī)器可以捕獲使用傳統(tǒng)成像技術(shù)極難捕獲的圖像。作為另一個(gè)示例,通過(guò)計(jì)算成像,機(jī)器可以理解其周?chē)h(huán)境并根據(jù)其周?chē)h(huán)境作出反應(yīng)。
將計(jì)算成像引入大眾市場(chǎng)的挑戰(zhàn)之一在于,計(jì)算成像本身是計(jì)算量巨大的。計(jì)算成像通常使用大量的高分辨率的圖像和/或大量的具有高幀速率的視頻。因此,計(jì)算成像通常需要強(qiáng)大的計(jì)算平臺(tái)的支持。此外,由于計(jì)算成像通常用于移動(dòng)環(huán)境中,例如使用智能手機(jī)或平板計(jì)算機(jī),計(jì)算成像通常需要可以低功率預(yù)算操作的強(qiáng)大的計(jì)算平臺(tái)的支持。
本申請(qǐng)公開(kāi)了一種計(jì)算設(shè)備,該計(jì)算設(shè)備可以提供用于計(jì)算成像的低功率、高能力的計(jì)算平臺(tái)。圖1提供了根據(jù)一些實(shí)施例的計(jì)算設(shè)備的高級(jí)圖示。計(jì)算設(shè)備100可以包括一個(gè)或多個(gè)處理單元(例如一個(gè)或多個(gè)向量處理器102和一個(gè)或多個(gè)硬件加速器104)、智能存儲(chǔ)器結(jié)構(gòu)106、外圍設(shè)備108、以及功率管理模塊110。
所述一個(gè)或多個(gè)向量處理器102包括實(shí)現(xiàn)包含對(duì)稱(chēng)為向量的數(shù)據(jù)陣列進(jìn)行操作的指令的指令集的中央處理單元(cpu)。更具體地,所述一個(gè)或多個(gè)向量處理器102可以被配置為用于同時(shí)對(duì)大量數(shù)據(jù)執(zhí)行通用算術(shù)操作。在一些實(shí)施例中,所述一個(gè)或多個(gè)向量處理器102可以包括單指令多數(shù)據(jù)、超長(zhǎng)指令字(simd-vliw)處理器。在一些實(shí)施例中,所述一個(gè)或多個(gè)向量處理器102可以被設(shè)計(jì)為執(zhí)行與計(jì)算機(jī)視覺(jué)和成像應(yīng)用相關(guān)聯(lián)的指令。
所述一個(gè)或多個(gè)硬件加速器104包括執(zhí)行一些功能的計(jì)算機(jī)硬件,其比在更通用的cpu上運(yùn)行的軟件中可能的功能執(zhí)行更快。非視覺(jué)應(yīng)用中的硬件加速器的示例包括圖形處理單元(gpu)中的位塊傳輸(blitting)加速模塊,該位塊傳輸加速模塊被配置為用于使用光柵算子將幾個(gè)位圖組合成一個(gè)。
在一些實(shí)施例中,所述一個(gè)或多個(gè)硬件加速器104可以提供適合于圖像處理和計(jì)算機(jī)視覺(jué)應(yīng)用的可配置基礎(chǔ)結(jié)構(gòu)。這些硬件加速器104可以被認(rèn)為包括用于使圖像處理加速和圍繞專(zhuān)用計(jì)算核心的計(jì)算機(jī)視覺(jué)操作的通用包裝硬件。例如,硬件加速器104可以包括用于執(zhí)行圖像過(guò)濾操作的專(zhuān)用過(guò)濾模塊。過(guò)濾模塊可以被配置為用于以有效的方式跨圖像操作定制的濾波器內(nèi)核。在一些實(shí)施例中,硬件加速器104可以在每個(gè)時(shí)鐘周期輸出一個(gè)完整計(jì)算的輸出像素。
智能存儲(chǔ)器結(jié)構(gòu)106可以被配置為用于提供具有小時(shí)延的低功率存儲(chǔ)器系統(tǒng)。由于圖像和視頻包括大量數(shù)據(jù),在存儲(chǔ)器和處理單元之間提供高速接口是重要的。在一些實(shí)施例中,智能存儲(chǔ)器結(jié)構(gòu)106可以包括例如64個(gè)存儲(chǔ)器塊,其中每個(gè)塊可以包括64位接口。在這些實(shí)施例中,例如,以600mhz操作的存儲(chǔ)器結(jié)構(gòu)106能夠以307.2gb/秒傳輸數(shù)據(jù)。在其他實(shí)施例中,智能存儲(chǔ)器結(jié)構(gòu)106可以包括任何其他數(shù)量的存儲(chǔ)器塊,其中每個(gè)塊可以包括實(shí)現(xiàn)一個(gè)或多個(gè)接口協(xié)議的任何數(shù)量的接口。
外圍設(shè)備108可以被配置為用于提供用于向諸如圖像傳感器和加速度計(jì)等外部設(shè)備發(fā)送和接收數(shù)據(jù)位的通信信道。外圍設(shè)備108可以用于這些向量處理器102、硬件加速器104和存儲(chǔ)器結(jié)構(gòu)106的通信機(jī)制,以與外部設(shè)備通信。
功率管理模塊110可以被配置為用于控制計(jì)算設(shè)備100內(nèi)的多個(gè)指定塊的活動(dòng)。更具體地,功率管理模塊110可以被配置為用于控制在計(jì)算設(shè)備100內(nèi)的多個(gè)指定塊(也稱(chēng)為功率島)的供電電壓。例如,當(dāng)功率管理模塊110啟用功率島的供電時(shí),可以觸發(fā)計(jì)算設(shè)備100向所述功率島提供適當(dāng)?shù)墓╇婋妷骸T谝恍?shí)施例中,每個(gè)功率島可以包括獨(dú)立的功率域。因此,可以獨(dú)立地控制功率島的供電。在一些實(shí)施例中,功率管理模塊110還可以被配置成通過(guò)計(jì)算設(shè)備100中的輸入/輸出引腳中的一者或多者來(lái)控制外部附接到計(jì)算設(shè)備100的功率島的活動(dòng)。
圖2示出了根據(jù)一些實(shí)施例的計(jì)算設(shè)備的詳細(xì)圖示。計(jì)算設(shè)備100可以包括多個(gè)向量處理器102。在該圖示中,計(jì)算設(shè)備100包括12個(gè)向量處理器102。這些向量處理器102可以經(jīng)由處理器間互連(ipi)202彼此通信。這些向量處理器102還可以經(jīng)由ipi202和加速器存儲(chǔ)器控制器(amc)交叉開(kāi)關(guān)矩陣204或存儲(chǔ)器映射處理器總線(xiàn)208與計(jì)算設(shè)備100中的其他組件(包括存儲(chǔ)器結(jié)構(gòu)106和/或硬件加速器104)通信。
在一些實(shí)施例中,所述一個(gè)或多個(gè)向量處理器102可以被設(shè)計(jì)為執(zhí)行專(zhuān)有指令集。該專(zhuān)有指令集可以包括專(zhuān)有指令。該專(zhuān)有指令可以是可變長(zhǎng)度二進(jìn)制字符串,其包括指令標(biāo)頭和一個(gè)或多個(gè)單元指令。該指令標(biāo)頭可以包括關(guān)于指令長(zhǎng)度和用于相關(guān)聯(lián)的專(zhuān)有指令的活動(dòng)單元的信息;單元指令可以是包括多個(gè)固定或可變的字段的可變長(zhǎng)度二進(jìn)制字符串。這些字段可以包括標(biāo)識(shí)所述指令的操作碼和指定在單元指令執(zhí)行中使用的值的操作數(shù)。
在題為“vectorprocessor(向量處理器)”、代理人案卷no.2209599.127us1且與本申請(qǐng)同日提交的美國(guó)專(zhuān)利申請(qǐng)no.待定提供了向量處理器102的細(xì)節(jié),通過(guò)引用該申請(qǐng)的整體結(jié)合于此。
計(jì)算設(shè)備100可以包括多個(gè)硬件加速器104。這些硬件加速器104可以包括被配置為用于執(zhí)行多種預(yù)定處理功能的各種加速器模塊。在一些實(shí)施例中,預(yù)定處理功能可以包括過(guò)濾操作。例如,這些硬件加速器104可以包括原始圖像處理模塊、鏡頭陰影校正(lsc)模塊、拜耳模式去馬賽克模塊、銳化濾波器模塊、多相縮放器模塊、harris角檢測(cè)模塊、顏色組合模塊、亮度信道噪聲模塊、色度信道去噪模塊、中值濾波器模塊、查找表、卷積模塊、邊檢測(cè)模塊和/或任何其他合適的模塊或模塊組合。這些硬件加速器104可以被配置為用于檢索和存儲(chǔ)駐留在存儲(chǔ)器結(jié)構(gòu)106中的多個(gè)存儲(chǔ)器設(shè)備中的數(shù)據(jù)。
存儲(chǔ)器結(jié)構(gòu)106可以包括協(xié)調(diào)計(jì)算設(shè)備100內(nèi)的存儲(chǔ)器操作的中央存儲(chǔ)器系統(tǒng)。存儲(chǔ)器結(jié)構(gòu)106可以被設(shè)計(jì)為減少處理單元(例如向量處理器102和硬件加速器104)之間的不必要的數(shù)據(jù)傳輸。存儲(chǔ)器結(jié)構(gòu)106被結(jié)構(gòu)為允許多個(gè)處理單元并行地訪(fǎng)問(wèn)數(shù)據(jù)和程序代碼存儲(chǔ)器而不停頓。另外,存儲(chǔ)器結(jié)構(gòu)106可以使主機(jī)處理器經(jīng)由諸如高級(jí)可擴(kuò)展接口(axi)或任何其他合適的總線(xiàn)208的并行總線(xiàn)訪(fǎng)問(wèn)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器系統(tǒng)。
在一些實(shí)施例中,處理單元可以通過(guò)其多個(gè)加載存儲(chǔ)單元(lsu)端口每個(gè)周期讀/寫(xiě)高達(dá)128位,并且通過(guò)其指令端口每個(gè)周期讀取高達(dá)128位的程序代碼。除了分別用于處理器102和硬件加速器104的ipi202和amc204接口之外,存儲(chǔ)器結(jié)構(gòu)106可以通過(guò)高級(jí)微控制器總線(xiàn)架構(gòu)(amba)高性能總線(xiàn)(ahb)和axi總線(xiàn)接口提供對(duì)存儲(chǔ)器系統(tǒng)的同時(shí)讀/寫(xiě)訪(fǎng)問(wèn)。ahb和axi是允許使用共享總線(xiàn)基礎(chǔ)結(jié)構(gòu)來(lái)連接多個(gè)處理單元、存儲(chǔ)器系統(tǒng)和外圍設(shè)備的標(biāo)準(zhǔn)并行接口總線(xiàn)??梢允褂萌魏纹渌线m的總線(xiàn)。在一些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以被配置為用于每個(gè)時(shí)鐘周期處理18x128位存儲(chǔ)器訪(fǎng)問(wèn)的峰值。在其他實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以被設(shè)計(jì)為使用具有大的位數(shù)的高速接口來(lái)每個(gè)時(shí)鐘周期處理任意數(shù)量的存儲(chǔ)器訪(fǎng)問(wèn)。
存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器系統(tǒng)可以包括多個(gè)存儲(chǔ)器片,每個(gè)存儲(chǔ)器片與這些向量處理器102之一相關(guān)聯(lián)、并且越過(guò)其他向量處理器102向該處理器給予優(yōu)先訪(fǎng)問(wèn)。每個(gè)存儲(chǔ)器片可以包括多個(gè)隨機(jī)存取存儲(chǔ)器(ram)瓦片(tile),其中每個(gè)ram瓦片可以包括讀取端口和寫(xiě)入端口。在一些情況下,每個(gè)存儲(chǔ)器片可以設(shè)置有用于提供對(duì)相關(guān)存儲(chǔ)器片的訪(fǎng)問(wèn)的存儲(chǔ)器片控制器。
這些處理器和ram瓦片可以經(jīng)由總線(xiàn)(也稱(chēng)為ipi202)彼此耦聯(lián)。在一些情況下,ipi202可以將這些向量處理器202中的任一者與存儲(chǔ)器結(jié)構(gòu)106中的這些存儲(chǔ)器片中的任一者耦聯(lián)。適當(dāng)?shù)?,每個(gè)ram瓦片可以包括用于準(zhǔn)許對(duì)所述瓦片的訪(fǎng)問(wèn)的瓦片控制邏輯塊。該瓦片控制邏輯塊有時(shí)被稱(chēng)為瓦片控制邏輯或仲裁塊。
在一些實(shí)施例中,每個(gè)存儲(chǔ)器片可以包括多個(gè)ram瓦片或物理ram塊。例如,具有128kb大小的存儲(chǔ)器片可以包括組織為4k×32位字的四個(gè)32kb單端口ram瓦片(例如,物理ram元件)。作為另一實(shí)例,具有256kb大小的存儲(chǔ)器片可以包括組織為8k×32位字的八個(gè)32kb單端口ram瓦片(例如,物理ram元件)。在一些實(shí)施例中,存儲(chǔ)器片可以具有低至16kb和高達(dá)16mb的容量。在其他實(shí)施例中,存儲(chǔ)器片可以被配置為用于具有與容納由所述計(jì)算設(shè)備處理的各種應(yīng)用所需的一樣大的容量。
在一些實(shí)施例中,ram瓦片可以包括單端口互補(bǔ)金屬氧化物半導(dǎo)體(cmos)ram。單端口cmosram的優(yōu)點(diǎn)是,其在大多數(shù)半導(dǎo)體工藝中通常可用。在其他實(shí)施例中,ram瓦片可以包括多端口cmosram。在一些實(shí)施例中,每個(gè)ram瓦片可以是16位寬、32位寬、64位寬、128位寬,或者可以與所述計(jì)算設(shè)備的特定應(yīng)用所需的一樣寬。
單端口存儲(chǔ)器設(shè)備的使用可以增加存儲(chǔ)器子系統(tǒng)的功率和面積效率,但是可能限制存儲(chǔ)器系統(tǒng)的帶寬。在一些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以被設(shè)計(jì)為允許這些存儲(chǔ)器設(shè)備表現(xiàn)為能夠服務(wù)來(lái)自多個(gè)源(處理器和硬件塊)的多個(gè)同時(shí)讀取和寫(xiě)入請(qǐng)求的虛擬多端口存儲(chǔ)器子系統(tǒng)。這可以通過(guò)使用多個(gè)物理ram實(shí)例并提供對(duì)它們的仲裁訪(fǎng)問(wèn)以服務(wù)多個(gè)源來(lái)實(shí)現(xiàn)。
在一些實(shí)施例中,每個(gè)ram瓦片可以與瓦片控制邏輯相關(guān)聯(lián)。該瓦片控制邏輯被配置為用于從多個(gè)向量處理器102或硬件加速器104接收請(qǐng)求、并且提供對(duì)相關(guān)聯(lián)的ram瓦片的各個(gè)讀取端口和寫(xiě)入端口的訪(fǎng)問(wèn)。例如,當(dāng)向量處理器102準(zhǔn)備訪(fǎng)問(wèn)ram瓦片中的數(shù)據(jù)時(shí),在向量處理器102將存儲(chǔ)器數(shù)據(jù)請(qǐng)求直接發(fā)送到ram瓦片之前,向量處理器102可以將存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求發(fā)送到與ram瓦片相關(guān)聯(lián)的瓦片控制邏輯。所述存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求可以包括由處理元件請(qǐng)求的數(shù)據(jù)的存儲(chǔ)器地址。隨后,瓦片控制邏輯可以分析存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求、并且確定向量處理器102是否可以訪(fǎng)問(wèn)所請(qǐng)求的ram瓦片。如果向量處理器102可以訪(fǎng)問(wèn)所請(qǐng)求的ram瓦片,則瓦片控制邏輯可以將訪(fǎng)問(wèn)授權(quán)消息發(fā)送到向量處理器102,并且隨后,向量處理器102可以向ram瓦片發(fā)送存儲(chǔ)器數(shù)據(jù)請(qǐng)求。
在一些實(shí)施例中,瓦片控制邏輯可以被配置為用于確定和實(shí)施許多處理單元(例如,向量處理器和硬件加速器)訪(fǎng)問(wèn)相同ram瓦片的順序。例如,瓦片控制邏輯可以包括沖突檢測(cè)器,該沖突檢測(cè)器被配置為用于檢測(cè)兩個(gè)或更多個(gè)處理單元嘗試同時(shí)訪(fǎng)問(wèn)ram瓦片的情況。沖突檢測(cè)器可以被配置為用于向運(yùn)行時(shí)調(diào)度器報(bào)告已經(jīng)發(fā)生訪(fǎng)問(wèn)沖突并且訪(fǎng)問(wèn)沖突應(yīng)當(dāng)被解決。
存儲(chǔ)器結(jié)構(gòu)106還可以包括用于將數(shù)據(jù)位從存儲(chǔ)器傳送到向量處理器102或硬件加速器104或者從向量處理器102或硬件加速器104傳送到存儲(chǔ)器的存儲(chǔ)器總線(xiàn)。存儲(chǔ)器結(jié)構(gòu)106還可以包括直接存儲(chǔ)器存取(dma)控制器,該dma控制器協(xié)調(diào)在向量處理器102、硬件加速器104和存儲(chǔ)器之間的數(shù)據(jù)傳送。
在某些實(shí)施例中,可以通過(guò)分離的總線(xiàn)將硬件加速器104耦合至存儲(chǔ)器結(jié)構(gòu)106上。所述分離的總線(xiàn)可以包括加速器存儲(chǔ)器控制器(amc)204,其被配置成用于從至少一個(gè)硬件加速器接收請(qǐng)求,并且通過(guò)相關(guān)存儲(chǔ)器片控制器向硬件加速器授權(quán)對(duì)存儲(chǔ)器片的訪(fǎng)問(wèn)。由此將理解由硬件加速器104所占用的存儲(chǔ)器訪(fǎng)問(wèn)路徑可以與由向量處理器102所占用的路徑不同。實(shí)際上,amc204可以執(zhí)行地址濾波、仲裁和復(fù)用。在某些實(shí)施例中,硬件加速器104可以包括內(nèi)部緩沖器(例如,fifo存儲(chǔ)器)來(lái)負(fù)責(zé)對(duì)訪(fǎng)問(wèn)存儲(chǔ)器結(jié)構(gòu)106的延遲。
在某些實(shí)施例中,可以將amc204耦合至一個(gè)或多個(gè)外圍設(shè)備108(包括例如,多個(gè)移動(dòng)行業(yè)處理器接口(mipi)照相機(jī)接口)上。amc204還可以被連接至axi和apb接口以允許兩個(gè)系統(tǒng)risc處理器通過(guò)amc204來(lái)訪(fǎng)問(wèn)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片。
在某些實(shí)施例中,amc204可以包括進(jìn)入存儲(chǔ)器結(jié)構(gòu)106的每個(gè)存儲(chǔ)器片的一對(duì)64位端口。amc204可以被配置成用于由部分地址解碼將請(qǐng)求從硬件加速器104路由到合適的存儲(chǔ)器片。
在某些實(shí)施例中,amc204可以被耦合至多種多樣的處理單元以提供對(duì)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片的訪(fǎng)問(wèn)。例如,可以將amc204耦合至任何類(lèi)型的硬件加速器或第三方元件上以提供對(duì)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片的訪(fǎng)問(wèn)。amc204還可以被配置成用于提供對(duì)計(jì)算系統(tǒng)的更廣存儲(chǔ)器空間的訪(fǎng)問(wèn),包括處于在計(jì)算設(shè)備100外的存儲(chǔ)器設(shè)備。
在某些實(shí)施例中,amc204可以用循環(huán)方式仲裁對(duì)相同存儲(chǔ)器片的同步的存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求。例如,處理單元(如硬件加速器104)可以向amc204發(fā)送包括存儲(chǔ)器地址的存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求。當(dāng)amc204接收到存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求,amc204確定在存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求中的存儲(chǔ)器地址是否與存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片相關(guān)聯(lián)。如果存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求中的存儲(chǔ)器地址不與存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片相關(guān)聯(lián),則amc204可以將存儲(chǔ)器請(qǐng)求轉(zhuǎn)發(fā)到amc的axi主機(jī)。如果存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求中的存儲(chǔ)器地址與存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片相關(guān)聯(lián),amc204可以對(duì)存儲(chǔ)器訪(fǎng)問(wèn)請(qǐng)求進(jìn)行仲裁以提供對(duì)所期望的存儲(chǔ)器位置的訪(fǎng)問(wèn)。
外圍設(shè)備108可以被配置為用于提供用于向諸如多個(gè)異構(gòu)圖像傳感器和加速度計(jì)等外部設(shè)備發(fā)送和接收數(shù)據(jù)位的通信信道。外圍設(shè)備108可以用于這些向量處理器102、硬件加速器104和存儲(chǔ)器結(jié)構(gòu)106的通信機(jī)制,以與外部設(shè)備通信。
傳統(tǒng)上,外圍設(shè)備的功能已經(jīng)被固定和硬編碼。例如,移動(dòng)工業(yè)處理器接口(mipi)外圍設(shè)備僅能夠與也實(shí)現(xiàn)較低速率數(shù)字接口(例如spi、i2c、i2s或任何其它合適的標(biāo)準(zhǔn))的外部設(shè)備接口連接。
然而,在本公開(kāi)內(nèi)容的一些實(shí)施例中,外圍設(shè)備108的功能可以使用軟件來(lái)定義。更具體地,外圍設(shè)備108可以包括仿真模塊,該仿真模塊能夠仿真標(biāo)準(zhǔn)化接口協(xié)議(例如spi、i2c、i2s或任何其他合適的協(xié)議)的功能。
功率管理模塊110被配置為用于控制計(jì)算設(shè)備100內(nèi)的多個(gè)塊的活動(dòng)。更具體地,功率管理模塊110被配置為用于控制在多個(gè)指定塊(也稱(chēng)為功率島)的供電電壓。例如,當(dāng)功率管理模塊110啟用功率島的供電時(shí),計(jì)算設(shè)備100被配置為用于向所述功率島提供適當(dāng)?shù)墓╇婋妷?。功率管理模塊110可以被配置為用于通過(guò)在寄存器中或在總線(xiàn)上的信號(hào)線(xiàn)上施加使能信號(hào)來(lái)啟用對(duì)功率島的供電。在一些實(shí)施例中,功率管理模塊110還可以被配置成通過(guò)計(jì)算設(shè)備100中的輸入/輸出引腳中的一者或多者來(lái)控制外部設(shè)備的活動(dòng)。
在一些實(shí)施例中,功率島可以總是通電(例如,總是將供電電壓提供給功率島)。這樣的功率島可以被稱(chēng)為常通(always-on)功率島。在一些實(shí)施例中,常通功率島可以用于檢測(cè)來(lái)自例如通用輸入輸出(gpio)引腳、外部接口、和/或內(nèi)部功能塊(例如低頻定時(shí)器或上電復(fù)位)的信號(hào)。這樣,計(jì)算設(shè)備100可以響應(yīng)事件或事件序列,并且僅對(duì)需要響應(yīng)所述事件或事件序列的電源島自適應(yīng)地上電。
圖3展示了根據(jù)某些實(shí)施例的硬件加速器。硬件加速器104可以包括一組硬件圖像處理濾波器。硬件加速器104可以使某些計(jì)算密集功能能夠從向量處理器102卸載。加速器104可以被耦合至amc204從而以高帶寬訪(fǎng)問(wèn)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片。
在某些實(shí)施例中,可以通過(guò)amc204將硬件加速器104耦合至存儲(chǔ)器結(jié)構(gòu)106上。在某些實(shí)施例中,硬件加速器104可以包括一個(gè)或多個(gè)濾波器模塊(例如,20個(gè)濾波器模塊),包括mipi接收器濾波器和mipi發(fā)射器濾波器。在某些實(shí)施例中,濾波器模塊可以包括只讀amc接口(讀客戶(hù)端接口)和只寫(xiě)amc接口(寫(xiě)客戶(hù)端接口)。在其他實(shí)施例中,濾波器模塊還可以具有多個(gè)只讀amc接口。例如,濾波器模塊可以具有多個(gè)只讀amc接口用于對(duì)多個(gè)輸入緩沖器、多個(gè)平面(從相同緩沖器)的并行訪(fǎng)問(wèn)。所述多個(gè)只讀amc接口可以被用于提供額外存儲(chǔ)器讀帶寬以保持濾波器模塊的處理吞吐量。對(duì)硬件加速器104的描述可以同樣地應(yīng)用于每個(gè)濾波器模塊,由于硬件加速器104僅可以具有單個(gè)濾波器模塊。同樣,對(duì)濾波器模塊的描述可以同樣地應(yīng)用于硬件加速器,因?yàn)闉V波器模塊可以是硬件加速器中的唯一濾波器模塊。
在某些實(shí)施例中,amc204具有進(jìn)入存儲(chǔ)器結(jié)構(gòu)106的每個(gè)存儲(chǔ)器片的一個(gè)或多個(gè)雙向(例如,讀/寫(xiě))端口。所述端口可以容納許多位。例如,所述端口可以容納64位通信。在某些實(shí)施例中,amc204還可以包括axi主機(jī),其提供到外部dram設(shè)備的直接連通。
在某些實(shí)施例中,濾波器模塊可以被主要設(shè)計(jì)未處理存儲(chǔ)器結(jié)構(gòu)106中的緩沖器。例如,隨著mipi接收器模塊和mipi發(fā)射器濾波器模塊的異常,濾波器模塊可以?xún)H通過(guò)其amc客戶(hù)端輸入和輸出數(shù)據(jù)。對(duì)濾波器模塊的配置(包括其緩沖器基地址)可以通過(guò)若干apb從接口來(lái)實(shí)現(xiàn)。
在某些實(shí)施例中,硬件加速器104可以通過(guò)mipi接收器濾波器模塊和mipi發(fā)射器濾波器模塊接收?qǐng)D像數(shù)據(jù)。mipi接收器濾波器模塊和mipi發(fā)射器濾波器模塊可以允許硬件加速器104中的其他濾波器模塊來(lái)建立與mipi接收器控制器和mipi收發(fā)器控制器的直接連接。mipi接收器濾波器模塊和mipi發(fā)射器濾波器模塊可以通過(guò)并行接口連接至mipi控制器并且可以被用于將數(shù)據(jù)從mipi控制器將數(shù)據(jù)直接分流到存儲(chǔ)器結(jié)構(gòu)106中或?qū)⒋鎯?chǔ)器結(jié)構(gòu)外的數(shù)據(jù)直接分流到mipi控制器。
在某些實(shí)施例中,硬件加速器106可以在存儲(chǔ)器結(jié)構(gòu)106中所緩沖的、通過(guò)amc204進(jìn)行訪(fǎng)問(wèn)的圖像數(shù)據(jù)的掃描線(xiàn)上進(jìn)行操作。amc204可以將事務(wù)從其客戶(hù)端接口路由至目標(biāo)存儲(chǔ)器片(或axi主機(jī))并且在每個(gè)存儲(chǔ)器片處對(duì)來(lái)自不同客戶(hù)端的同步的事務(wù)進(jìn)行仲裁。在某些實(shí)施例中,硬件加速器106中的多個(gè)濾波器模塊可以通過(guò)將一個(gè)或多個(gè)濾波器模塊的輸出緩沖器(也成為生產(chǎn)者/父)耦合至其他濾波器模塊的輸入緩沖器(也成為消費(fèi)者/子)來(lái)流式連接到一起。
在某些實(shí)施例中,硬件加速器104中的濾波器模塊可以在以當(dāng)前像素為中心的像素上操作二維內(nèi)核。內(nèi)核中的所有像素可以在對(duì)以當(dāng)前像素為中心的像素的處理上做出貢獻(xiàn)。
在某些實(shí)施例中,硬件加速器104中的濾波器模塊可以逐行處理圖像。例如,濾波器模塊可以從上到下掃描圖像以生成圖像的掃描線(xiàn),并且處理所述掃描線(xiàn)(例如,從左到右移動(dòng))。在其他示例中,濾波器模塊可以通過(guò)以適合于濾波處理的任何方向/順序來(lái)掃描圖像來(lái)生成圖像的掃描線(xiàn)。
在某些實(shí)施例中,濾波器模塊可以通過(guò)讀取數(shù)據(jù)來(lái)處理圖像的掃描線(xiàn)來(lái)形成針對(duì)掃描線(xiàn)上的第一像素的內(nèi)核。濾波器模塊可以通過(guò)以滑動(dòng)窗口形式來(lái)滑動(dòng)內(nèi)核來(lái)處理掃描線(xiàn)。一旦完成處理,濾波器模塊可以將輸出像素寫(xiě)入到輸出緩沖器或存儲(chǔ)器位置中。
在某些實(shí)施例中,用于濾波的內(nèi)核通常是方形的并且沿著每條邊通常具有奇數(shù)個(gè)像素,例如,3x3、5x5、或7x7。如果濾波器模塊是用kxk像素內(nèi)核,則可以為由其輸出緩沖器所處理并寫(xiě)入其輸出緩沖器的每行圖像數(shù)據(jù)從輸入緩沖器中讀取圖像數(shù)據(jù)的k條掃描線(xiàn)。
在某些實(shí)施例中,硬件加速器104可以使用環(huán)形輸入緩沖器。假設(shè)目標(biāo)濾波器模塊被配置成用于接收(用作輸入)另濾波器模塊(也被稱(chēng)為父濾波器模塊)的輸出掃描線(xiàn)。還假設(shè)目標(biāo)濾波器模塊使用kxk像素內(nèi)核。則用于目標(biāo)濾波器模塊的輸入緩沖器可以被設(shè)計(jì)為維持圖像數(shù)據(jù)的至少(k+1)條掃描線(xiàn):針對(duì)濾波器模塊的k條掃描線(xiàn)以及針對(duì)同時(shí)接收父濾波器模塊的輸出掃描線(xiàn)的一條(或多條)掃描線(xiàn)。在本示例中,因?yàn)檩斎刖彌_器是環(huán)形的,在從父濾波器模塊接收(k+1)條掃描線(xiàn)之后,可以將第(k+2)條掃描線(xiàn)寫(xiě)入到第一條線(xiàn)的位置。在大多數(shù)情況下,在其當(dāng)前線(xiàn)號(hào)在輸入圖像內(nèi)方面,父濾波器模塊可以在目標(biāo)濾波器模塊之前。在初始配置后,濾波器模塊的讀和寫(xiě)客戶(hù)端可以注意當(dāng)訪(fǎng)問(wèn)濾波器模塊的輸入和輸出緩沖器時(shí),環(huán)形緩沖器地址包裝。
在某些實(shí)施例中,硬件加速器104中的緩沖器可以由預(yù)定數(shù)目的字節(jié)進(jìn)行對(duì)準(zhǔn)。例如,硬件加速器104中的緩沖器可以對(duì)準(zhǔn)在8字節(jié)邊界上。為了減輕事務(wù)路由,讀和寫(xiě)客戶(hù)端和amc可以被配置成用于提供僅對(duì)準(zhǔn)的緩沖器訪(fǎng)問(wèn)。當(dāng)圖像寬度不是預(yù)定數(shù)目的字節(jié)的倍數(shù)時(shí),則硬件加速器104可以被配置成用于將空字節(jié)寫(xiě)入每條掃描線(xiàn)和下字節(jié)邊界的(未對(duì)準(zhǔn)的)末端之間的輸出緩沖器。
圖3展示了用于操作濾波器內(nèi)核、存儲(chǔ)在濾波器內(nèi)核寄存器302中、在輸入數(shù)據(jù)流(例如,一張或多張圖像的掃描線(xiàn))上的硬件加速器的實(shí)現(xiàn)方式。輸入數(shù)據(jù)流可以對(duì)應(yīng)于一張或多張圖像中的像素。硬件加速器104可以包括數(shù)據(jù)路徑流水線(xiàn)304、流水線(xiàn)停轉(zhuǎn)控制器306、線(xiàn)緩沖器讀客戶(hù)端308、線(xiàn)開(kāi)始控制輸入310、和線(xiàn)緩沖器寫(xiě)客戶(hù)端310。在某些實(shí)施例中,硬件加速器104可以包括至少一個(gè)amc讀客戶(hù)端接口314和/或至少一個(gè)amc寫(xiě)客戶(hù)端接口316來(lái)訪(fǎng)問(wèn)存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片。amc204上的讀/寫(xiě)客戶(hù)端接口的數(shù)目可以被合適地配置。
在某些實(shí)施例中,濾波器內(nèi)核寄存器302可以被編程用于修改有待在輸入數(shù)據(jù)流上被操作的內(nèi)核。濾波器內(nèi)核寄存器302可以被配置成用于容納多種內(nèi)核大小。例如,濾波器內(nèi)核寄存器302可以被配置成用于容納3x3內(nèi)核、5x5內(nèi)核、7x7內(nèi)核、9x9內(nèi)核、或任何其他表示為mxn的內(nèi)核大小。在某些情況下,m可以與n相同;在其他情況下,m可以與n不同。在某些實(shí)施例中,濾波器內(nèi)核寄存器302可以被配置成用于容納各維度的內(nèi)核。例如,濾波器內(nèi)核寄存器302可以被配置成用于容納一維濾波器、二維濾波器、三維濾波器、或任何整數(shù)維度的濾波器。
在某些實(shí)施例中,線(xiàn)緩沖器讀客戶(hù)端308被配置成用于接收?qǐng)D像的掃描線(xiàn)(例如,圖像網(wǎng)格上的圖像的行或列)并且用于向數(shù)據(jù)路徑流水線(xiàn)304提供所述掃描線(xiàn)。線(xiàn)緩沖器讀客戶(hù)端308可以通過(guò)amc讀接口314接收?qǐng)D像的掃描線(xiàn)。一旦數(shù)據(jù)路徑流水線(xiàn)304接收了內(nèi)核和圖像的掃描線(xiàn),數(shù)據(jù)路徑流水線(xiàn)304可以執(zhí)行濾波操作。一旦數(shù)據(jù)路徑流水線(xiàn)304完成了濾波操作,數(shù)據(jù)路徑流水線(xiàn)304可以將結(jié)果線(xiàn)存儲(chǔ)在線(xiàn)緩沖器寫(xiě)客戶(hù)端312中。線(xiàn)緩沖器寫(xiě)客戶(hù)端312可以可選地將結(jié)果線(xiàn)通過(guò)amc寫(xiě)接口316存儲(chǔ)在存儲(chǔ)器片中。流水線(xiàn)停轉(zhuǎn)控制器306可以停轉(zhuǎn)流水線(xiàn)的某些部分以確保線(xiàn)緩沖器寫(xiě)客戶(hù)端312不溢出。
在某些實(shí)施例中,線(xiàn)開(kāi)始控制器310可以控制數(shù)據(jù)路徑流水線(xiàn)304開(kāi)始處理所接收的圖像的掃描線(xiàn)的時(shí)刻。線(xiàn)開(kāi)始控制器310還可以被配置成用于選擇性地使數(shù)據(jù)路徑流水線(xiàn)304的一個(gè)或多個(gè)部分來(lái)執(zhí)行定制操作。在某些情況下,線(xiàn)開(kāi)始控制器310還可以控制有待在由數(shù)據(jù)路徑流水線(xiàn)304所進(jìn)行的濾波操作期間使用的系數(shù)。
在某些實(shí)施例中,數(shù)據(jù)路徑流水線(xiàn)304和線(xiàn)開(kāi)始控制器310可以是可編程的。數(shù)據(jù)路徑流水線(xiàn)304和線(xiàn)開(kāi)始控制器310可以被編程從而使得不同類(lèi)型的濾波操作可以由硬件加速器104所執(zhí)行。例如,數(shù)據(jù)路徑流水線(xiàn)304和線(xiàn)開(kāi)始控制器310可以用濾波操作參數(shù)(如系數(shù)集和/或閾值)進(jìn)行編程,從而使得可以由硬件加速器104執(zhí)行定制濾波操作。濾波操作參數(shù)還可以包括濾波內(nèi)核大小、系數(shù)、縮放率、增益、閾值、查找表、或任何其他合適的參數(shù)。因此,硬件加速器104可以被認(rèn)為是用于容納各種圖像濾波操作的通用包裝。
在某些實(shí)施例中,數(shù)據(jù)路徑流水線(xiàn)304可以被配置成用于處理以一個(gè)或多個(gè)數(shù)字形式所表示的數(shù)字。例如,數(shù)據(jù)路徑流水線(xiàn)304可以被設(shè)計(jì)為在浮點(diǎn)數(shù)(例如,fpl6(類(lèi)似ieee754的16位浮點(diǎn)格式))、證書(shū)、定點(diǎn)數(shù)、或任何其他適合于圖像處理的數(shù)字格式上操作。
硬件加速器104可以被配置成用于控制數(shù)據(jù)路徑流水線(xiàn)304如何消費(fèi)來(lái)自輸入數(shù)據(jù)緩沖器308的掃描線(xiàn)以及數(shù)據(jù)路徑流水線(xiàn)304如何將所處理的掃描線(xiàn)存儲(chǔ)到輸出數(shù)據(jù)緩沖器312。硬件加速器104可以被配置成用于實(shí)現(xiàn)兩種控制模式之一:緩沖器填充控制(bfc)模式和同步模式。
在某些實(shí)施例中,在bfc模式下,硬件加速器104可以被配置成用于維持填充水平的內(nèi)部計(jì)數(shù)(例如,存儲(chǔ)在輸入緩沖器中的掃描線(xiàn)的數(shù)目)。硬件加速器104可以被配置成用于在(1)啟用硬件加速器,(2)其輸入緩沖器具有足夠數(shù)目的掃描線(xiàn),以及(3)在其輸出緩沖器具有空間來(lái)存儲(chǔ)所處理的掃描線(xiàn)時(shí),自主處理來(lái)自其輸入緩沖器的掃描線(xiàn)。在某些情況下,運(yùn)行數(shù)據(jù)路徑流水線(xiàn)304所需要的緩沖器填充水平可以取決于內(nèi)核的高度。例如,當(dāng)內(nèi)核是3x3,則硬件加速器104可以需要至少三條掃描線(xiàn)來(lái)操作濾波器。
在某些實(shí)施例中,在同步控制模式下,硬件加速器中的濾波器模塊可以被配置成用于在開(kāi)啟針對(duì)濾波器模塊的開(kāi)始位時(shí)運(yùn)行。開(kāi)始位可以使用例如軟件模塊來(lái)開(kāi)啟。在同步控制下,軟件模塊可以被配置成用于確定針對(duì)濾波器模塊的輸入緩沖器具有足夠數(shù)目的掃描線(xiàn)并且針對(duì)濾波器模塊的輸出緩沖器具有足夠空間來(lái)存儲(chǔ)來(lái)自濾波器模塊的所處理的掃描線(xiàn)。一旦滿(mǎn)足了這些條件,軟件模塊可以開(kāi)啟濾波器模塊的開(kāi)始位。
在兩種模式下,一旦濾波器模塊處理了掃描線(xiàn),濾波器模塊可以更新在其緩沖器內(nèi)和輸入圖像內(nèi)的其當(dāng)前線(xiàn)索引。在某些實(shí)施例中,當(dāng)輸出圖像不具有與輸入圖像相同的大小時(shí),濾波器模塊也可以更新在輸出圖像中的其當(dāng)前線(xiàn)索引。所述線(xiàn)索引的值(和用于緩沖器填充控制的緩沖器填充水平)可以表示濾波器模塊的內(nèi)部狀態(tài)。這個(gè)內(nèi)部狀態(tài)可以由軟件模塊進(jìn)行訪(fǎng)問(wèn)并且可以被保存、更新、和恢復(fù),從而使得濾波器模塊的上下文可以在下一周期運(yùn)行濾波器模塊之前被切換。
在某些實(shí)施例中,硬件加速器104中的緩沖器可以被配置成用于維持多個(gè)數(shù)據(jù)平面。例如,硬件加速器104中的緩沖器可以被配置成用于在分離的平面中維持圖像的紅色信道、綠色信道、和藍(lán)色信道。在某些示例中,硬件加速器104中的緩沖器可以被配置成用于支持多達(dá)十六個(gè)平面。每個(gè)平面中的圖像數(shù)據(jù)的掃描線(xiàn)可以被連續(xù)存儲(chǔ),并且平面可以由其數(shù)目和由其平面步幅進(jìn)行限定。
在某些實(shí)施例中,硬件加速器104中的濾波器模塊可以被配置成用于順序處理來(lái)自每個(gè)數(shù)據(jù)屏幕的掃描線(xiàn),每次處理一條。為了順序處理,從控制的角度來(lái)說(shuō),來(lái)自所有平面的控制線(xiàn)可以被認(rèn)為具有相同的時(shí)間戳。在其他實(shí)施例中,硬件加速器104中的濾波器模塊可以被配置成用于并行處理多個(gè)數(shù)據(jù)平面。
在某些實(shí)施例中,在處理圖像/視頻流之前,或如果切換了上下文,可以合適地配置和啟用濾波器模塊。每個(gè)濾波器模塊可以包括限定了其輸入緩沖器和輸出緩沖器配置的一組軟件可編程寄存器。
在某些實(shí)施例中,可以使用以下參數(shù)中的一個(gè)或多個(gè)來(lái)對(duì)濾波器模塊中的緩沖器進(jìn)行編程:
·基(base):基地址。這個(gè)參數(shù)可以指定緩沖器的基地址??梢詫⒌刂穼?duì)準(zhǔn)在字節(jié)邊界上(例如,amc客戶(hù)端數(shù)據(jù)總線(xiàn)的寬度)。
·nl:掃描線(xiàn)數(shù)目。在環(huán)形緩沖器模式中,這個(gè)參數(shù)可以指定掃描線(xiàn)中的環(huán)形緩沖器的大小。針對(duì)環(huán)形緩沖器的最大掃描線(xiàn)數(shù)目可以是1023,但是其他上界也是可能的。如果將緩沖器配置為nl=0,這表示緩沖器在非環(huán)形模式中。因此,nl=0將訪(fǎng)問(wèn)緩沖器的讀/寫(xiě)客戶(hù)端放在非環(huán)形或非包裝模式中,在所述模式中,緩沖器中的掃描線(xiàn)的數(shù)目與圖像的高度相對(duì)應(yīng),并且沒(méi)有環(huán)形緩沖器指針包裝發(fā)生。
·ls:線(xiàn)步幅。線(xiàn)步幅可以是固定字節(jié)數(shù)目的倍數(shù),例如,8個(gè)字節(jié)??梢灶A(yù)先確定最大線(xiàn)步幅。例如,最大線(xiàn)步幅可以是(32mb-8)字節(jié)??梢杂勺x/寫(xiě)客戶(hù)端使用線(xiàn)步幅和線(xiàn)數(shù)目來(lái)執(zhí)行環(huán)形緩沖器指針?biāo)阈g(shù)。線(xiàn)步幅可以大于或等于圖像寬度。
·np:平面數(shù)目。這個(gè)參數(shù)代表由緩沖器所表示的平面數(shù)目。當(dāng)np=0時(shí),代表緩沖器表示非平面數(shù)據(jù)(例如,單平面數(shù)據(jù))。緩沖器中的線(xiàn)緩沖器存儲(chǔ)量可以乘以平面數(shù)目。
·ps:平面步幅。平面步幅可以是固定字節(jié)數(shù)目的倍數(shù),例如,8個(gè)字節(jié)??梢灶A(yù)先確定最大平面步幅。例如,最大平面步幅可以是(32mb-8)字節(jié)。通常,平面步幅可以大于或等于nl乘以ls。然而,其他平面步幅可以是可能的。
·格式(format):緩沖器數(shù)據(jù)格式。這個(gè)參數(shù)可以指定以字節(jié)為單位的像素?cái)?shù)據(jù)的大小。例如,對(duì)于fp16緩沖器,可以將格式設(shè)置為2,代表每像素2個(gè)字節(jié)。
在某些實(shí)施例中,可以使用以下參數(shù)中的一個(gè)或多個(gè)來(lái)對(duì)濾波器模塊中的輸出緩沖器進(jìn)行編程:
·偏移(offset):偏移可以指定從基地址(和每條線(xiàn)的開(kāi)始)到第一像素的偏移。這個(gè)參數(shù)可以被用于避免被對(duì)準(zhǔn)在字節(jié)邊界上的緩沖器的限制的問(wèn)題。使用偏移,可以在掃描線(xiàn)的左邊保留空間,例如,用于由輸出緩沖器的消費(fèi)者的水平像素填充。默認(rèn)偏移是零。如果指定了非零偏移,則可以在第一輸出像素前將空字節(jié)寫(xiě)入每條輸出掃描線(xiàn)。
在某些實(shí)施例中,濾波器模塊可以支持多種數(shù)據(jù)類(lèi)型。以下列出了濾波器模塊所支持的最常用數(shù)據(jù)類(lèi)型:
·u8——無(wú)符號(hào)8位整數(shù)數(shù)據(jù)
·u8f——無(wú)符號(hào)8位分?jǐn)?shù)數(shù)據(jù),范圍[0,1.0]
·u16——無(wú)符號(hào)16位整數(shù)數(shù)據(jù)
·u32——無(wú)符號(hào)32位整數(shù)數(shù)據(jù)
·fp16——半精度(16位)浮點(diǎn)
·fp32——全精度(32位)浮點(diǎn)
在某些實(shí)施例中,可以為其操作來(lái)優(yōu)化濾波器模塊的數(shù)據(jù)路徑流水線(xiàn):半精度浮點(diǎn)(fp16)算術(shù)可以用于涉及高動(dòng)態(tài)范圍的操作;優(yōu)化后的定點(diǎn)算術(shù)可以被用于維持高精度是更重要的情況下。
在某些實(shí)施例中,僅對(duì)于fp16緩沖器,使用fp16算術(shù)所實(shí)現(xiàn)的濾波器模塊可以不限于讀/寫(xiě)。u8f緩沖器還可以伴隨來(lái)自/到濾波器模塊內(nèi)自動(dòng)發(fā)生的fp16的對(duì)話(huà)而被訪(fǎng)問(wèn)。
在某些實(shí)施例中,當(dāng)使用fp16算術(shù)來(lái)實(shí)現(xiàn)濾波器模塊時(shí),緩沖器可以是fp16或u8f。當(dāng)緩沖器是fp16時(shí),緩沖器配置格式可以被設(shè)置為2。如果緩沖器是u8f時(shí),緩沖器設(shè)置格式可以被設(shè)置為1。對(duì)于具有fp16數(shù)據(jù)路徑流水線(xiàn)的濾波器模塊,如果輸入緩沖器格式是“1”,讀客戶(hù)端可以在處理前自動(dòng)將u8f輸入數(shù)據(jù)轉(zhuǎn)換為fp16。如果輸出緩沖器格式是“1”,寫(xiě)客戶(hù)端可以在存儲(chǔ)前將來(lái)自數(shù)據(jù)路徑流水線(xiàn)的fp16轉(zhuǎn)換為u8f。
在某些實(shí)施例中,通過(guò)乘以1.0/255將u8f轉(zhuǎn)換成歸一化的fp16,在范圍[0,1.0]中。歸一化的fp16可以通過(guò)乘以255并取整來(lái)被轉(zhuǎn)換為u8f,這有效地將浮點(diǎn)值量化為8個(gè)位。在某些實(shí)施例中,來(lái)自具有fp16數(shù)據(jù)路徑流水線(xiàn)的濾波器模塊的輸出數(shù)據(jù)可以被可選地夾在歸一化的范圍[0,1.0]中。如果啟用向u8f的轉(zhuǎn)換,則隱含啟用了夾在歸一化的范圍中,并且這在如上所述的向u8f的轉(zhuǎn)換之前執(zhí)行。使用fp16數(shù)據(jù)路徑流水線(xiàn)所實(shí)現(xiàn)的濾波器模塊不限于處理在歸一化的范圍[0,1.0]中的數(shù)據(jù);還可以支持fp16的全范圍。
在某些實(shí)施例中,濾波器模塊被配置成用于在輸入圖像中跟蹤其豎直位置。濾波器模塊可以使用此信息來(lái)在圖像的頂部和底部通過(guò)線(xiàn)復(fù)制或反射執(zhí)行豎直填充。不執(zhí)行豎直填充的濾波器模塊可以創(chuàng)建比輸入圖像小的輸出圖像,這在某些情況下不是所期望的。
在某些實(shí)施例中,當(dāng)濾波器模塊被配置成用于執(zhí)行豎直填充時(shí),可以由輸入緩沖器所維持的最小掃描線(xiàn)數(shù)目m可以是:
m=(k>>1)+1,其中>>表示右位移位運(yùn)算數(shù)。
在圖像的頂部,當(dāng)輸入緩沖器的容量(掃描線(xiàn)方面)小于m,緩沖器中沒(méi)有足夠的掃描線(xiàn)來(lái)執(zhí)行濾波操作。當(dāng)輸入緩沖器的容量(掃描線(xiàn)方面)大于或等于m,如果執(zhí)行了豎直填充,可以處理數(shù)據(jù)。類(lèi)似地,在圖像的底部,在處理最后(k>>1)條線(xiàn)時(shí),濾波器模塊可以執(zhí)行線(xiàn)n-1的復(fù)制(或?qū)€(xiàn)n-1和其上的線(xiàn)的復(fù)制)。
在某些實(shí)施例中,當(dāng)內(nèi)核具有偶數(shù)維度時(shí),可以執(zhí)行豎直填充。對(duì)偶數(shù)維度的內(nèi)核的豎直填充可以基本上與對(duì)奇數(shù)維度的內(nèi)核的豎直填充相同,除了在底部少了一條應(yīng)當(dāng)被填充的線(xiàn)。
在某些實(shí)施例中,濾波器模塊可以執(zhí)行水平填充。像素內(nèi)核的水平填充可以被執(zhí)行為數(shù)據(jù)從輸入緩沖器讀取并且寫(xiě)入到像素內(nèi)核寄存器。濾波器模塊可以知道其在當(dāng)前線(xiàn)上的位置以及在線(xiàn)的開(kāi)始和結(jié)束。因此,可以將有效像素內(nèi)核寄存器復(fù)制到?jīng)]有有效數(shù)據(jù)的那些中。與豎直填充一樣,是否執(zhí)行水平填充可以取決于給定濾波器模塊的具體功能和需求。
在某些實(shí)施例中,在環(huán)形緩沖器模式中,濾波器模塊可以被配置成用于處理來(lái)自其輸入緩沖器的掃描線(xiàn)并且將所處理的掃描線(xiàn)寫(xiě)入到其輸出緩沖器中。這組操作可以被稱(chēng)為濾波器運(yùn)行。
在某些實(shí)施例中,為了靈活性,可以提供可以控制濾波器運(yùn)行的兩個(gè)不同的控制機(jī)制。在第一機(jī)制中,稱(chēng)作緩沖器填充控制模式,濾波器模塊可以跟蹤其自身環(huán)形緩沖器的填充水平并且自行確定其是否可以運(yùn)行。這種方法本質(zhì)上是異步的;只要滿(mǎn)足所需要的條件,濾波器模塊可以可能重復(fù)地運(yùn)行。提供了寄存器中的控制位來(lái)允許軟件來(lái)通知濾波器模塊什么時(shí)候掃描線(xiàn)已被添加至輸入緩沖器或從輸出緩沖器移除。當(dāng)掃描線(xiàn)被添加至輸入緩沖器時(shí),可以增加填充水平;當(dāng)掃描線(xiàn)被從輸出緩沖器移除時(shí),可以降低填充水平。在這個(gè)模式下,濾波器模塊與其輸入和輸出緩沖器一起可以被看作是先入先出(fifo),其中,掃描線(xiàn)占用了其條目并且fifo的深度由被編程用于輸入和輸出緩沖器的掃描線(xiàn)的數(shù)目來(lái)配置。
在某些實(shí)施例中,如果濾波器模塊的輸入緩沖器不滿(mǎn),另濾波器模塊可以向fifo添加掃描線(xiàn)。在允許另濾波器模塊向輸入緩沖器添加掃描線(xiàn)時(shí),軟件可以檢查輸入緩沖器的填充水平。隨后,軟件或?yàn)V波器模塊可以增加與輸入緩沖器相關(guān)聯(lián)的填充水平。在輸出側(cè),在對(duì)輸出緩沖器的填充水平進(jìn)行減量前(例如,在由另濾波器處理了濾波器的輸出緩沖器中的線(xiàn)(如讀取fifo)之后),軟件可以檢查輸出緩沖器的填充水平,或響應(yīng)表示濾波器模塊向其輸出緩沖器添加了新的掃描線(xiàn)的中斷事件。
第二機(jī)制稱(chēng)作同步模式,取決于軟件顯式調(diào)度每次濾波器運(yùn)行。可以在寄存器中提供每個(gè)濾波器模塊的開(kāi)始位,軟件可以寫(xiě)入寄存器來(lái)立即開(kāi)始濾波器運(yùn)行。當(dāng)由此機(jī)制開(kāi)始時(shí),可以精確地執(zhí)行一次濾波器模塊。
在某些實(shí)施例中,當(dāng)濾波器模塊接收中斷請(qǐng)求時(shí),其可以被中斷。在某些情況下,濾波器模塊可以具有多個(gè)中斷請(qǐng)求源,所述中斷請(qǐng)求源被映射到外部中斷請(qǐng)求線(xiàn)并且被路由到中斷控制器。當(dāng)濾波器模塊標(biāo)志中斷并且啟用所述中斷,則可以標(biāo)志相應(yīng)的外部中斷請(qǐng)求線(xiàn)。
在某些實(shí)施例中,所述多個(gè)中斷請(qǐng)求源可以包括:
·輸入緩沖器填充水平減量中斷
·輸出緩沖器填充水平增量中斷
·幀完成中斷
在濾波器模塊被配置成用于在同步模式中操作時(shí),輸出緩沖器填充水平增量中斷還可以被認(rèn)為表示濾波器模塊完成了其濾波器運(yùn)行。
在某些實(shí)施例中,硬件加速器104可以基于深度信息來(lái)適應(yīng)濾波操作。例如,硬件加速器104可以被配置成用于有條件地僅模糊與距離遠(yuǎn)于30碼的物體相關(guān)聯(lián)的像素,或者超過(guò)5碼的像素可以比超過(guò)10碼的像素的模糊程度低等。
圖4展示了根據(jù)某些實(shí)施例的可以基于深度信息適應(yīng)濾波操作的硬件加速器。除了圖3中的硬件加速器104中的模塊,深度感知硬件加速器402包括深度映射讀客戶(hù)端404和深度映射模塊406。深度映射讀客戶(hù)端404被配置成用于接收表明由相應(yīng)圖像中的像素所表示的物體的深度的深度映射。例如,當(dāng)線(xiàn)緩沖器讀客戶(hù)端308接收?qǐng)D像的掃描線(xiàn)時(shí),深度映射讀客戶(hù)端404可以被配置成用于接收與圖像的掃描線(xiàn)相對(duì)應(yīng)的深度映射。
隨后,深度映射讀客戶(hù)端404可以向深度映射模塊406提供深度映射。當(dāng)深度映射的分辨率低于圖像的掃描線(xiàn)的分辨率時(shí),深度映射模塊406可以被配置成用于對(duì)深度映射進(jìn)行上采樣以將深度映射的分辨率與掃描線(xiàn)的分辨率進(jìn)行匹配。當(dāng)深度映射不與圖像的掃描線(xiàn)時(shí)間同步時(shí),深度映射模塊406可以被配置成用于對(duì)深度映射和掃描線(xiàn)進(jìn)行同步。深度映射模塊406隨后可以向線(xiàn)開(kāi)始控制器310提供處理后的深度映射,從而使得線(xiàn)開(kāi)始控制器310可以控制數(shù)據(jù)路徑流水線(xiàn)304的操作。更通常地,可以有條件地基于使用比較器在像素位置處將深度與一個(gè)或多個(gè)閾值進(jìn)行比較來(lái)應(yīng)用算術(shù)功能,或可替代地直接使用與每個(gè)像素相關(guān)聯(lián)的二進(jìn)制控制位,這可以使用旁路多路復(fù)用器代替比較器輸出來(lái)進(jìn)行應(yīng)用。
傳統(tǒng)上,用于圖像處理操作的硬件加速器包括以預(yù)定順序安排的硬件的圖像信號(hào)處理(isp)功能的固定集合。圖5展示了傳統(tǒng)硬件加速器。傳統(tǒng)硬件加速器500會(huì)從存儲(chǔ)器設(shè)備504接收?qǐng)D像,并且以在設(shè)計(jì)時(shí)所預(yù)定的順序使用isp功能502a-502h處理所接收的圖像。在圖5中所示的示例中,硬件加速器500以所展示的順序使用8個(gè)isp功能來(lái)處理所接收的圖像。此方法相當(dāng)不靈活,并且會(huì)限制硬件加速器500可以被使用的應(yīng)用領(lǐng)域。圖像傳感器技術(shù)正在迅速發(fā)展,并且難以想象針對(duì)所有當(dāng)前和未來(lái)傳感器使用單個(gè)固定isp流水線(xiàn)。進(jìn)一步地,當(dāng)isp功能在圖像的多條掃描線(xiàn)上操作濾波器時(shí),isp功能不得不在緩沖器中存儲(chǔ)進(jìn)入的掃描線(xiàn)直到存在足夠數(shù)目的掃描線(xiàn)。這些緩沖器通常使用根據(jù)圖像的分辨率來(lái)確定大小的ram設(shè)備來(lái)實(shí)現(xiàn),并且在硬件加速器500的設(shè)計(jì)時(shí)預(yù)先確定緩沖器的大小。因此,用于isp的緩沖器可以有效地在圖像分辨率上強(qiáng)加硬限制,這可以由硬件加速器500所處理。此外,由于緩沖器是isp功能私有的,不可以在其他場(chǎng)景(例如,由軟件)中使用緩沖器并且緩沖器會(huì)消費(fèi)大量芯片區(qū)域。
在某些實(shí)施例中,硬件加速器104通過(guò)鏈接通用、公共isp功能來(lái)解決傳統(tǒng)硬件加速器的不靈活性。經(jīng)常地,硬件加速器在功能之間的差別不像由硬件加速器所實(shí)現(xiàn)的isp功能那樣多,而是在調(diào)用isp功能的順序(并且在某些情況下是次數(shù))上。因此,硬件加速器104可以被配置成用于通過(guò)鏈接一個(gè)或多個(gè)高效實(shí)現(xiàn)的通用、公共功能模塊來(lái)執(zhí)行所期望的功能。
例如,卷積操作可以被表示為乘法和求和。同樣,有限脈沖響應(yīng)(fir)濾波操作也可以被表示為乘法和求和,盡管fir濾波操作執(zhí)行乘法和求和的順序可能與卷積操作的順序不同。盡管卷積操作和fir濾波操作之間存在差別,乘法操作和求和操作是卷積操作和fir濾波操作的公共功能。因此,硬件加速器104可以被設(shè)計(jì)成使用同樣的乘法模塊和同樣的求和模塊來(lái)執(zhí)行卷積操作和有限脈沖響應(yīng)濾波操作。
在某些實(shí)施例中,可以使用軟件來(lái)確定調(diào)用通用、公共功能的順序。例如,軟件可以對(duì)硬件加速器進(jìn)行編程以調(diào)用乘法模塊和求和模塊通過(guò)以不同順序來(lái)鏈接乘法模塊和求和模塊來(lái)執(zhí)行卷積操作或fir濾波操作。
圖6展示了根據(jù)某些實(shí)施例的基于通用功能的硬件加速器。硬件加速器102可以包括多個(gè)通用isp功能模塊602a-602h、用于接收用于處理的圖像的一條或多條掃描線(xiàn)的數(shù)據(jù)接收器模塊604、以及用于輸出已經(jīng)由一個(gè)或多個(gè)通用isp功能模塊602a-602h所處理過(guò)的一條或多條掃描線(xiàn)的數(shù)據(jù)輸出模塊606。在某些實(shí)施例中,所述一個(gè)或多個(gè)通用isp功能模塊602a-602h可以包括配置寄存器和控制寄存器。這些寄存器的值可以使用軟件來(lái)進(jìn)行控制。在某些實(shí)施例中,所述多個(gè)通用isp功能模塊602a-602h可以是數(shù)據(jù)路徑流水線(xiàn)304的一部分。
在某些實(shí)施例中,一個(gè)或多個(gè)通用isp功能模塊602a-602h可以包括獨(dú)立的硬件濾波器,所述硬件濾波器還包括直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)能力。所述通用isp功能模塊602a-602h的一個(gè)或多個(gè)可以使用dma能力來(lái)從存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片和/或向其中加載和/或存儲(chǔ)數(shù)據(jù)。可以使用軟件來(lái)控制dma能力。
在某些實(shí)施例中,數(shù)據(jù)接收器模塊604可以包括用于檢索圖像的一條或多條掃描線(xiàn)的dma模塊。在其他實(shí)施例中,數(shù)據(jù)接收器模塊604可以包括傳感器接口模塊,如mipi模塊。在某些實(shí)施例中,數(shù)據(jù)輸出模塊606可以包括用于存儲(chǔ)圖像的一條或多條處理后的掃描線(xiàn)的dma模塊。在其他實(shí)施例中,數(shù)據(jù)輸出模塊606可以包括顯示設(shè)備。
在某些實(shí)施例中,可以將硬件加速器102耦合至包括isp表的存儲(chǔ)器結(jié)構(gòu)106上。isp表可以包括一個(gè)或多個(gè)緩沖器608。每個(gè)緩沖器可以包括指向通用isp功能模塊602a-602h中的一個(gè)通用isp功能模塊的指針。由于存儲(chǔ)器結(jié)構(gòu)106可以包括多端口公共(或統(tǒng)一)存儲(chǔ)器,多個(gè)設(shè)備可以訪(fǎng)問(wèn)isp表中的所述一個(gè)或多個(gè)緩沖器來(lái)標(biāo)識(shí)可用的通用isp功能模塊。
在某些實(shí)施例中,運(yùn)行在處理器610上的軟件isp功能612a-612c可以被設(shè)計(jì)成用于執(zhí)行硬件加速器102中的一個(gè)或多個(gè)通用isp功能模塊602a-602h。例如,軟件isp功能612a可以確定(1)有待被執(zhí)行的通用isp功能模塊602a-602h的列表來(lái)執(zhí)行所期望的功能,以及(2)所述通用isp功能模塊602a-602h的列表應(yīng)當(dāng)被執(zhí)行的順序。然后,軟件isp功能612a可以使用與所述通用isp功能模塊602a-602h的列表相對(duì)應(yīng)的一個(gè)或多個(gè)緩沖器608來(lái)鏈接所述通用isp功能模塊,由此執(zhí)行所期望的功能。實(shí)質(zhì)上,可以由軟件查找其isp表中的緩沖器608來(lái)確定硬件加速器的功能。
在某些實(shí)施例中,可以通過(guò)小存儲(chǔ)器映射的先入先出(fifo)緩沖器來(lái)將isp功能模塊的輸入接口直接耦合至其他isp功能模塊的輸出接口上。圖7展示了根據(jù)某些實(shí)施例的包括用于在isp功能模塊之間進(jìn)行通信的fifo緩沖器的硬件加速器。可以將isp功能模塊602耦合至存儲(chǔ)器總線(xiàn)接口702上,其轉(zhuǎn)而被耦合至fifo緩沖器704和存儲(chǔ)器結(jié)構(gòu)106上。
當(dāng)?shù)谝籭sp功能模塊602a完成其對(duì)圖像掃描線(xiàn)的操作時(shí),第一isp功能模塊602a可以將處理后的掃描線(xiàn)存儲(chǔ)在fifo緩沖器704中。隨著第一isp功能模塊602a繼續(xù)處理附加的掃描線(xiàn),第一isp功能模塊602a可以繼續(xù)將處理后的掃描線(xiàn)存儲(chǔ)在fifo緩沖器704中,直到fifo緩沖器704已滿(mǎn)。當(dāng)fifo緩沖器704已滿(mǎn)時(shí),可以將第一isp功能模塊602a停轉(zhuǎn),直到fifo緩沖器704不再是滿(mǎn)的。同時(shí),第二isp功能模塊602b可以從fifo緩沖器704檢索處理后的掃描線(xiàn)用于進(jìn)一步處理,直到fifo緩沖器704空了。實(shí)際上,第一isp功能模塊602a可以被認(rèn)為是數(shù)據(jù)的生產(chǎn)者;第二isp功能模塊602b可以被認(rèn)為是數(shù)據(jù)的消費(fèi)者;而fifo緩沖器704可以被認(rèn)為是仲裁者。由于第二isp功能模塊602b可以從fifo緩沖器704檢索處理后的掃描線(xiàn),這與存儲(chǔ)器結(jié)構(gòu)106中的存儲(chǔ)器片相比具有較低延遲,fifo緩沖器704可以降低isp功能模塊602的鏈的延遲。
在某些實(shí)施例中,計(jì)算設(shè)備100可以包括多個(gè)功率島。每個(gè)功率島可以與專(zhuān)用功率域相關(guān)聯(lián)。因此,可以獨(dú)立控制每個(gè)功率島的電力電源電壓。例如,計(jì)算設(shè)備100可以確定需要哪些功率島來(lái)執(zhí)行某個(gè)操作,并且開(kāi)啟僅那些所需要的功率島的電力電源電壓。以此方式,計(jì)算設(shè)備100可以降低漏電功耗。
在某些實(shí)施例中,當(dāng)計(jì)算設(shè)備100確定功率島當(dāng)前在低功率模式時(shí)(例如,不提供電源電壓),并且需要所述功率島來(lái)執(zhí)行特定操作,計(jì)算設(shè)備100可以調(diào)用針對(duì)所述功率島的通電序列并且向所述功率島提供電源電壓。
在某些實(shí)施例中,所述向量處理器102中的每個(gè)都可以與唯一的功率島相關(guān)聯(lián)。在某些實(shí)施例中,硬件加速器104可以與唯一的功率島相關(guān)聯(lián)。在某些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以與唯一的功率島相關(guān)聯(lián)。在某些實(shí)施例中,外圍設(shè)備108可以與唯一的功率島相關(guān)聯(lián)。
在某些實(shí)施例中,計(jì)算設(shè)備100可以通過(guò)向功率島提供使能信號(hào)來(lái)調(diào)用通電序列。所述使能信號(hào)可以隨后閉合位于電力電源電壓和功率島之間的開(kāi)關(guān),由此向功率島提供電力電源電壓。此操作有時(shí)也被稱(chēng)為電力供給選通。
圖8展示了根據(jù)某些實(shí)施例的功率島的電力供給選通。圖8示出了功率島802,所述功率島可以包括用于處理輸入數(shù)據(jù)的電路塊、用于向功率島802提供電力電源電壓或接地信號(hào)的一個(gè)或多個(gè)開(kāi)關(guān)804a-804b、以及用于保留輸入數(shù)據(jù)直到功率島802準(zhǔn)備好處理輸入數(shù)據(jù)的輸入寄存器806。在某些實(shí)施例中,當(dāng)輸入寄存器806從有效信號(hào)生成器808接收有效信號(hào)時(shí)(表示功率島802準(zhǔn)備好處理輸入數(shù)據(jù)),觸發(fā)輸入寄存器806來(lái)向功率島802提供輸入數(shù)據(jù)。
在某些實(shí)施例中,計(jì)算設(shè)備100被配置成用于生成有效信號(hào),所述有效信號(hào)表示功率島的電力電源電壓已到達(dá)合適的操作電壓。有效信號(hào)可以表示功率島中的電路可以被用于執(zhí)行所期望的操作的時(shí)刻??梢杂捎行盘?hào)生成器808來(lái)生成有效信號(hào)。
有效信號(hào)生成器808可以使用定時(shí)器來(lái)生成有效信號(hào)。例如,有效信號(hào)生成器808可以確定使能信號(hào)被施加到功率島的時(shí)刻,并且使用定時(shí)器來(lái)等待預(yù)定時(shí)間量,并且然后生成有效信號(hào)。然而,在設(shè)計(jì)時(shí)確定預(yù)定時(shí)間量是困難的,因?yàn)樯吖β蕧u的電力電源電壓花費(fèi)的時(shí)間量會(huì)受到過(guò)程、電壓和溫度(pvt)變化的影響。為了解決pvt變化,通常保守地(例如,足夠大)對(duì)預(yù)定時(shí)間量進(jìn)行設(shè)置以容納最壞情況的pvt角點(diǎn),這會(huì)不必要地為通電序列增加延遲。
為了解決這些問(wèn)題,在某些實(shí)施例中,有效信號(hào)生成器808被配置成用于適應(yīng)性地生成有效信號(hào)。更具體地,功率島可以被配置成用于通過(guò)延遲提供給功率島的使能信號(hào)來(lái)生成有效信號(hào)。
圖9展示了根據(jù)某些實(shí)施例的有效信號(hào)生成器。有效信號(hào)生成器808可以包括被配置成用于向耦合至多個(gè)電源開(kāi)關(guān)的邏輯單元提供電力電源電壓的多個(gè)電源開(kāi)關(guān)。在某些實(shí)施例中,電源開(kāi)關(guān)可以是每個(gè)邏輯單元的一部分。例如,電源開(kāi)關(guān)可以包括與正供給相串聯(lián)的一個(gè)或多個(gè)p通道設(shè)備和/或與負(fù)供給(接地)相串聯(lián)的一個(gè)或多個(gè)n通道設(shè)備。可以遍及包括功率島的邏輯塊來(lái)分布這些電源開(kāi)關(guān)。在圖9中,為了簡(jiǎn)單,n信道電源開(kāi)關(guān)和p通道電源開(kāi)關(guān)被示為與每個(gè)邏輯單元相關(guān)聯(lián)的單個(gè)電源開(kāi)關(guān)塊。
在某些實(shí)施例中,有效信號(hào)生成器808可以將使能信號(hào)施加到電源開(kāi)關(guān)的菊鏈上并且等到使能信號(hào)到達(dá)電源開(kāi)關(guān)的菊鏈的末端。一旦使能信號(hào)到達(dá)電源開(kāi)關(guān)的菊鏈的末端,則確保功率島中的所有邏輯單元都是正常通電的。因此,有效信號(hào)生成器808可以使用由電源開(kāi)關(guān)的菊鏈所延遲的使能信號(hào)作為有效信號(hào)。這個(gè)自校準(zhǔn)機(jī)制可以適應(yīng)性地捕獲特定計(jì)算設(shè)備的任何過(guò)程-電壓-溫度(pvt)變化。以此方式,計(jì)算設(shè)備不需要不必要地等待很長(zhǎng)時(shí)間段來(lái)等到功率島通電;計(jì)算設(shè)備可以?xún)H等待正常對(duì)功率島通電所需的時(shí)間量。
在某些實(shí)施例中,功率島可以始終是通電的。換句話(huà)說(shuō),功率島可以被設(shè)計(jì)為不進(jìn)入不提供電力電源電壓的低功率模式。這種功率島可以被稱(chēng)為常通功率島。
在某些實(shí)施例中,常通功率島可以被用于監(jiān)測(cè)外部信號(hào)。例如,常通功率島可以被用于檢測(cè)來(lái)自通用輸入輸出(gpio)引腳、外部接口、和/或內(nèi)部功能塊(如低頻定時(shí)器或通電復(fù)位)的信號(hào)。以此方式,計(jì)算設(shè)備100可以分析外部信號(hào)、確定一個(gè)或多個(gè)功率島是否需要被通電以響應(yīng)外部信號(hào)、并且適應(yīng)性地僅對(duì)響應(yīng)外部信號(hào)所需要的功率島進(jìn)行通電。
圖10展示了根據(jù)某些實(shí)施例的事件信號(hào)監(jiān)測(cè)機(jī)制。圖10示出了常通功率島802和功率管理模塊110。常通功率島802可以包括用于外圍設(shè)備108的功率域。由于常通功率島802不進(jìn)入低功率模式,常通功率島802中的外圍設(shè)備108可以監(jiān)測(cè)與計(jì)算設(shè)備100的時(shí)鐘異步的信號(hào)。當(dāng)外圍設(shè)備108檢測(cè)到計(jì)算設(shè)備100應(yīng)當(dāng)響應(yīng)的事件信號(hào)時(shí),外圍設(shè)備108可以警告功率管理模塊110。反過(guò)來(lái),功率管理模塊110可以確定應(yīng)當(dāng)開(kāi)啟計(jì)算設(shè)備100中的哪個(gè)功率島。隨后,功率管理模塊110可以使一個(gè)或多個(gè)功率島通電。
在某些實(shí)施例中,外圍設(shè)備108可以包括軟件定義接口,其功能可以用軟件進(jìn)行限定。更具體地,外圍設(shè)備108可以包括接口協(xié)議仿真(ipe)模塊,所述模塊能夠?qū)?biāo)準(zhǔn)化接口協(xié)議(如spi、i2c、i2s、或任何其他合適的協(xié)議)的功能進(jìn)行仿真。軟件定義接口是有益的,因?yàn)橥鈬O(shè)備108可以維持僅單個(gè)軟件定義接口,所述軟件定義接口可以被編程以容納多個(gè)接口協(xié)議,而不用維持每個(gè)專(zhuān)用于特定接口協(xié)議的多個(gè)接口。由于單個(gè)軟件定義接口可以比多個(gè)專(zhuān)用接口消費(fèi)小得多的芯片區(qū)域。單個(gè)軟件定義接口可以大大降低與接口相關(guān)聯(lián)的成本。
圖11示出了根據(jù)某些實(shí)施例的軟件定義接口。圖11示出了包括通用輸入/輸出(i/o)接口1104、ipe模塊1106的軟件定義接口和用于計(jì)算設(shè)備100的內(nèi)部總線(xiàn)1108。通用輸入/輸出接口104可以包括用于和外部設(shè)備(如傳感器或照相機(jī)模塊)進(jìn)行通信的接口。
可以使用ipe模塊1106對(duì)i/o接口1104的功能進(jìn)行配置。例如,當(dāng)ipe模塊1106確定i/o接口1104應(yīng)當(dāng)作為i2c接口來(lái)操作時(shí),則ipe模塊1106可以對(duì)i/o接口1104進(jìn)行編程來(lái)使用i2c接口協(xié)議用于和外部設(shè)備進(jìn)行通信。在某些實(shí)施例中,可以使用軟件對(duì)ipe模塊1106進(jìn)行編程??梢詫?duì)ipe模塊1106進(jìn)行編程,從而使得ipe模塊1106可以對(duì)i/o接口1104進(jìn)行配置以實(shí)現(xiàn)標(biāo)準(zhǔn)化接口協(xié)議(如spi、i2c、i2s、或任何其他合適的協(xié)議)。
圖12示出了根據(jù)某些實(shí)施例的軟件定義接口的詳細(xì)實(shí)現(xiàn)方式。軟件定義接口1102可以包括通用輸入/輸出(gpio)接口1202及其寄存器1204。主機(jī)處理器可以通過(guò)配置在gpio寄存器1204中的位來(lái)控制gpio1202的操作。gpio1202可以控制i/o接口1104中的某些引腳以與外部設(shè)備(如加速度計(jì)、環(huán)境光線(xiàn)傳感器、音頻傳感器)進(jìn)行通信。
軟件定義接口1102還可以包括ipe模塊1106及其寄存器1206。主機(jī)處理器可以通過(guò)配置在ipe寄存器1206中的位來(lái)控制ipe模塊1106的操作。ipe模塊1106可以被配置成用于確定(1)有待由軟件定義接口1102所實(shí)現(xiàn)的接口協(xié)議,以及(2)有待被使用的i/o接口引腳以實(shí)現(xiàn)接口協(xié)議。一旦ipe模塊1106確定了要使用i/o接口引腳來(lái)實(shí)現(xiàn)接口協(xié)議,ipe模塊1106可以向多路復(fù)用器1208發(fā)送控制信號(hào)以將所選擇的i/o接口引腳復(fù)用到ipe模塊1106。ipe模塊1106可以使i/o接口引腳通過(guò)使i/o接口引腳來(lái)根據(jù)接口協(xié)議發(fā)送控制信號(hào)和數(shù)據(jù)來(lái)對(duì)接口協(xié)議進(jìn)行仿真。
在某些實(shí)施例中,定時(shí)器1214和/或預(yù)分頻器1216可以被用來(lái)將高頻參考時(shí)鐘(例如,在幾百兆赫范圍中)轉(zhuǎn)換為低頻適中(例如,在幾百千赫范圍中)以向ipe提供適當(dāng)?shù)臅r(shí)鐘信號(hào)。在某些實(shí)施例中,可以將來(lái)自預(yù)分頻器1216的輸出時(shí)鐘的頻率乘以整數(shù)值以仿真某些接口。例如,當(dāng)預(yù)分頻器1216的輸出時(shí)鐘以500khz進(jìn)行操作時(shí),可以將來(lái)自預(yù)分頻器1216的輸出時(shí)鐘的頻率乘以三以仿真i2c接口。以此方式,可以使用500khz時(shí)鐘來(lái)操作ipe邏輯并且對(duì)連接至i/o引腳的輸出寄存器進(jìn)行采樣。
在某些實(shí)施例中,外圍設(shè)備108中的ipe模塊1106可以被配置成用于在i/o接口1104的輸入引腳和輸出引腳之間進(jìn)行旁路繞出,由此在計(jì)算設(shè)備100的一側(cè)仿真輸入并且在計(jì)算設(shè)備100的另一次仿真輸出,而不用實(shí)際影響對(duì)處理單元的通電。這允許耦合至計(jì)算設(shè)備100的第一外部設(shè)備(如加速度計(jì))通過(guò)i2c來(lái)與第二外部設(shè)備(如應(yīng)用處理器soc)進(jìn)行通信,而不用喚醒計(jì)算設(shè)備100的處理單元。
軟件定義接口1102還可以包括事件處理器1210及其寄存器1212。事件處理器1210可以被配置成用于接收外部信號(hào)并且檢測(cè)計(jì)算設(shè)備100應(yīng)當(dāng)響應(yīng)的事件??梢允褂胑p寄存器1212對(duì)事件處理器1210的功能進(jìn)行配置。在某些實(shí)施例中,一旦事件處理器1210檢測(cè)到要響應(yīng)的事件,事件處理器1210可以確定響應(yīng)事件所需要的向量處理器102、硬件加速器104、和/或存儲(chǔ)器結(jié)構(gòu)106,并且向與所確定的向量處理器102、硬件加速器104、和/或存儲(chǔ)器結(jié)構(gòu)106所關(guān)聯(lián)的功率島發(fā)送電力使能信號(hào)。
圖13展示了根據(jù)某些實(shí)施例的事件處理器。如上所討論,事件處理器1210可以與外部設(shè)備進(jìn)行通信并且從外部設(shè)備接收信號(hào)。所述信號(hào)可以包括音頻樣本、加速度計(jì)值、環(huán)境光線(xiàn)傳感器值、或可以通過(guò)通信接口(如gpio)被提供的任何其他輸入。事件處理器1210可以被配置成用于將所接收的信號(hào)與特定配置進(jìn)行比較以識(shí)別事件或事件序列。一旦事件處理器1210識(shí)別了事件或事件序列,事件處理器1210可以指示計(jì)算設(shè)備100中的一個(gè)或多個(gè)組件從低功率模式醒來(lái)并且開(kāi)始操作。
在某些實(shí)施例中,事件處理器1210可以包括一個(gè)或多個(gè)事件濾波器1302a-1302n。事件濾波器1302被配置成用于從接口1104接收輸入信號(hào),并且確定是否發(fā)生了特定事件。如果發(fā)生了特定事件,事件濾波器1302可以向計(jì)算設(shè)備100中的多個(gè)功率島中的一個(gè)功率島發(fā)送控制信號(hào)和/或功率島使能信號(hào)。
圖14示出了根據(jù)某些實(shí)施例的事件濾波器的實(shí)現(xiàn)方式。事件濾波器1302可以包括寄存器1402、比較器1404、以及布爾運(yùn)算數(shù)1406??梢酝ㄟ^(guò)事件處理器控制寄存器1212和定時(shí)器1214來(lái)控制事件濾波器1302。
輸入寄存器1402可以被配置成用于從一個(gè)或多個(gè)外部設(shè)備接收輸入信號(hào)并且向一組比較器1404提供所接收的輸入信號(hào)。比較器1404可以被配置成用于支持廣泛的輸入信號(hào)表示,包括布爾、整數(shù)、定點(diǎn)、以及浮點(diǎn)表示。
隨后,可以基于來(lái)自ep定時(shí)器1214的定時(shí)器值對(duì)來(lái)自比較器1404的輸出進(jìn)行邏輯組合,從而確定是否發(fā)生了特定事件或事件序列。在某些情況下,當(dāng)比較器輸出之間的特定關(guān)系持續(xù)一段預(yù)定時(shí)間后,特定事件或事件序列可以被認(rèn)為已經(jīng)發(fā)生。一旦事件濾波器1302確定發(fā)生了特定事件或事件序列,事件濾波器1302可以輸出控制信號(hào)以控制計(jì)算設(shè)備100中的其他組件,如向量處理器102或硬件加速器104,或耦合至外圍設(shè)備108的外部設(shè)備。
事件處理器1210可以被配置成用于檢測(cè)用戶(hù)開(kāi)始使用電子設(shè)備的事件。事件處理器1210可以隨后開(kāi)啟計(jì)算設(shè)備100中的組件以響應(yīng)啟動(dòng)事件。例如,事件處理器1210可以被配置成用于檢測(cè)環(huán)境光線(xiàn)的改變,這可以指示是否已將電子設(shè)備從口袋中移出。當(dāng)環(huán)境光線(xiàn)保持多于幾毫秒的高水平,事件處理器1210可以檢查音頻輸入以確定輸入音頻信號(hào)是否有改變。當(dāng)事件處理器1210檢測(cè)處輸入音頻信號(hào)的改變時(shí),事件處理器1210可以使計(jì)算設(shè)備100中的數(shù)字信號(hào)處理器能夠檢測(cè)口述命令。以此方式,事件處理器1210允許計(jì)算設(shè)備100中的組件保持在低功率模式中,并且僅在事件或事件序列已發(fā)生時(shí)執(zhí)行操作。因此,事件處理器1210可以大大降低計(jì)算設(shè)備100的平均待機(jī)功率。
圖15示出了根據(jù)某些實(shí)施例的外圍設(shè)備的旁路模式。在圖15中,計(jì)算設(shè)備100可以處于低功率操作模式,在所述模式中,一個(gè)或多個(gè)功率島處于低功率模式(例如,沒(méi)有電力電源電壓被施加到所述一個(gè)或多個(gè)功率島)。在此情況下,ipe模塊1106可以被配置成用于在i/o接口1104的輸入引腳和輸出引腳(如輸入mipi通道1502和輸出mipi通道1504)之間執(zhí)行旁路。在本示例中,輸入mipi通道1502被耦合至照相機(jī)模塊并且輸出mipi通道1504被耦合至應(yīng)用處理器。因此,照相機(jī)模塊可以被耦合至應(yīng)用處理器,而不用實(shí)際喚醒在低功率模式中的一個(gè)或多個(gè)功率島。
在某些實(shí)施例中,用于不同接口協(xié)議的外圍設(shè)備108可以共享計(jì)算設(shè)備100的物理引腳(或焊盤(pán))。例如,外圍設(shè)備108可以包括用于第一通信協(xié)議的第一接口和用于第二通信協(xié)議的第二接口。第一接口和第二接口可以被配置成對(duì)物理i/o引腳進(jìn)行時(shí)間復(fù)用,從而使得可以降低專(zhuān)用于外圍設(shè)備108的i/o引腳的數(shù)目。在某些情況下,外圍設(shè)備108可以包括表,所述表包括第一和第二接口中的信號(hào)與物理引腳之間的映射。
在計(jì)算設(shè)備100被連接至一些mipi設(shè)備(如照相機(jī)和顯示器)、或連接至應(yīng)用處理器或計(jì)算設(shè)備100“出現(xiàn)”為照相機(jī)的其他設(shè)備的應(yīng)用中,在mipi接口塊和相關(guān)聯(lián)的引腳的數(shù)目方面的計(jì)算設(shè)備100的配置在設(shè)計(jì)時(shí)可以不是已知的。出于此原因,有利的是將一組mipii/o引腳連接至多個(gè)可編程的mipii/o協(xié)議控制塊,從而使得支持特定mipi使用案例所需要的mipi輸入和輸出的數(shù)目可以在運(yùn)行時(shí)通過(guò)軟件進(jìn)行配置。
圖16示出了根據(jù)某些實(shí)施例的可編程mipi接口。所述可編程mipi接口1600可以包括mipi媒體訪(fǎng)問(wèn)控制(mac)協(xié)議塊1602、mipi發(fā)射器1604、mipi接收器1606、被配置成用于對(duì)來(lái)自mipi發(fā)射器1604和mipi接收器1606中的任的信號(hào)進(jìn)行通道傳遞的多路復(fù)用器1608、被配置成用于改變差分mipii/o焊盤(pán)1612的極性的mipi極性開(kāi)關(guān)1610、以及用于在如關(guān)于圖15所展示的i/o接口1104的輸入引腳和輸出引腳之間執(zhí)行旁路的旁路多路復(fù)用器1614和旁路緩沖器1616。
在某些實(shí)施例中,mipimac協(xié)議塊1602被設(shè)計(jì)成用于控制mipi發(fā)射器1604和/或mipi接收器1606的操作,從而使得mipi發(fā)射器1604和/或mipi接收器1606的運(yùn)算數(shù)合mipi協(xié)議。
在某些實(shí)施例中,可編程mipi接口1600可以允許mipi發(fā)射器1604或mipi接收器1606中的僅來(lái)通過(guò)mipii/o焊盤(pán)1612在特定時(shí)刻進(jìn)行通信。例如,可編程mipi接口1600可以通過(guò)多路復(fù)用器1608將mipi發(fā)射器1604或mipi接收器1606中的僅與mipii/o焊盤(pán)1612進(jìn)行耦合。以此方式,對(duì)于外部設(shè)備,mipii/o焊盤(pán)1612可以被認(rèn)為是雙向mipi接口。
在某些實(shí)施例中,可編程mipi接口1600可以使用mipi極性開(kāi)關(guān)1610來(lái)反轉(zhuǎn)差分mipii/o焊盤(pán)的極性,從而使得可以在運(yùn)行時(shí)反轉(zhuǎn)差分mipii/o焊盤(pán)的極性,從而獲得更好的阻抗匹配或改正外部pcb設(shè)計(jì)中的錯(cuò)誤,而不用重做。圖17展示了根據(jù)某些實(shí)施例的用于輸入/輸出界面的極性反轉(zhuǎn)機(jī)制的應(yīng)用。盡管圖17展示了用于mipii/o焊盤(pán)的極性反轉(zhuǎn)機(jī)制的應(yīng)用,極性反轉(zhuǎn)機(jī)制可以被用在是用信號(hào)線(xiàn)的差分對(duì)的多種其他接口中。
在某些實(shí)施例中,如以上大體關(guān)于圖15所描述,可編程mipi接口1600可以通過(guò)提供允許mipii/o焊盤(pán)1612連接至輸出而不需要將計(jì)算設(shè)備100的處理單元通電的mipi多路復(fù)用器1614和緩沖器1616來(lái)提供低功率mipi旁路模式。此特征在以下模式中是所期望的:多個(gè)照相機(jī)傳感器被連接至計(jì)算設(shè)備100以執(zhí)行計(jì)算機(jī)視覺(jué)任務(wù),而在其他使用案例中,不需要計(jì)算設(shè)備100并且應(yīng)用處理器使用相同的傳感器集合進(jìn)行靜態(tài)或視頻圖像捕獲。隨著內(nèi)部mipi多路復(fù)用器1614的提供,可以通過(guò)內(nèi)部旁路多路復(fù)用器1614而不是使用外部組件來(lái)支持這種使用案例,并且大大簡(jiǎn)化了在其上組合芯片的pcb的成本和復(fù)雜度。
在某些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以包括被設(shè)計(jì)成用于利用數(shù)據(jù)局部性的緩存存儲(chǔ)器,包括空間和時(shí)間局部性?xún)烧?。?dāng)計(jì)算設(shè)備100沒(méi)有被耦合至外部存儲(chǔ)器設(shè)備時(shí),則存儲(chǔ)器結(jié)構(gòu)106可以允許向量處理器102和硬件加速器104將緩存存儲(chǔ)器用作一般存儲(chǔ)器設(shè)備。在某些實(shí)施例中,可以將緩存存儲(chǔ)器分區(qū),從而使得每個(gè)分區(qū)被向量處理器中的一個(gè)向量處理器或硬件加速器中的一個(gè)向量處理器所獨(dú)占地使用。
在某些實(shí)施例中,當(dāng)計(jì)算設(shè)備100在節(jié)電模式中時(shí),存儲(chǔ)器結(jié)構(gòu)106被配置成用于維持計(jì)算設(shè)備100的狀態(tài)信息。以此方式,當(dāng)再次開(kāi)啟計(jì)算設(shè)備100時(shí),計(jì)算設(shè)備100可以將狀態(tài)信息重新分發(fā)給適當(dāng)設(shè)備,從而使得可以降低與“喚醒”過(guò)程相關(guān)聯(lián)的延遲。
在某些情況下,在緩存存儲(chǔ)器中維持狀態(tài)信息。在這種情況下,甚至在計(jì)算設(shè)備100進(jìn)入節(jié)電模式時(shí),也可以將存儲(chǔ)狀態(tài)信息的緩存存儲(chǔ)器通電。狀態(tài)信息可以包括在啟動(dòng)時(shí)或運(yùn)行時(shí)期間所加載的二進(jìn)制應(yīng)用。狀態(tài)信息還可以包括在啟動(dòng)時(shí)被加載和在運(yùn)行時(shí)期間被修改的配置信息(如寄存器設(shè)置、操作模式、流水線(xiàn)配置、以及運(yùn)行時(shí)環(huán)境設(shè)置),其將以另外方式不得不存儲(chǔ)在外部非易失性存儲(chǔ)器中,并且在斷電到通電序列發(fā)生時(shí)被檢索。狀態(tài)信息還可以包括數(shù)據(jù)(如圖像數(shù)據(jù)),以及來(lái)自其他傳感器的值。狀態(tài)信息還可以包括計(jì)算設(shè)備100和其他系統(tǒng)組件之間的通信協(xié)議的狀態(tài),其將以另外方式需要在斷電到通電序列發(fā)生時(shí)被存儲(chǔ)在外部非易失性存儲(chǔ)器中并從其中檢索。
在某些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以包括基于硬件的互斥(mutex)控制器206。圖18展示了根據(jù)某些實(shí)施例的具有基于硬件的mutex控制器的存儲(chǔ)器結(jié)構(gòu)。圖18示出了多個(gè)處理單元1802a-1802p、存儲(chǔ)器結(jié)構(gòu)106、和mutex控制器206。處理單元1802可以包括向量處理器102或硬件加速器104。mutex控制器206可以包括一個(gè)或多個(gè)獨(dú)立可尋址mutex元件,所述元件被配置成用于協(xié)調(diào)共享數(shù)據(jù)元件的處理單元1802的多任務(wù)處理。更具體地,mutex元件可以被配置成用于為第一處理單元1802a鎖定存儲(chǔ)在存儲(chǔ)器結(jié)構(gòu)106或計(jì)算設(shè)備100的其他部分中的共享數(shù)據(jù)元件,從而使得也使用共享數(shù)據(jù)元件的其他處理單元1802p可以等到第一處理單元1802a釋放共享數(shù)據(jù)元件。因?yàn)閙utex控制器206駐留在存儲(chǔ)器結(jié)構(gòu)106內(nèi),當(dāng)與使用共享總線(xiàn)或其他手段相比較時(shí),降低了釋放或鎖定共享資源的時(shí)間。
傳統(tǒng)上,當(dāng)mutex控制器接收對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的請(qǐng)求時(shí),mutex控制器立即響應(yīng)所述請(qǐng)求,表示請(qǐng)求處理單元是否可以獲得對(duì)共享資源的獨(dú)占訪(fǎng)問(wèn)。因此,如果請(qǐng)求處理單元未獲得獨(dú)占訪(fǎng)問(wèn),請(qǐng)求處理單元不得不繼續(xù)請(qǐng)求mutex控制器直到請(qǐng)求處理單元從mutex控制器接收到獨(dú)占訪(fǎng)問(wèn)。這會(huì)增加傳統(tǒng)mutex控制器和處理單元之間的總線(xiàn)上的流量。
為了解決這個(gè)問(wèn)題,在某些實(shí)施例中,當(dāng)處理單元1802a發(fā)送請(qǐng)求對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的獨(dú)占訪(fǎng)問(wèn)請(qǐng)求時(shí),mutex控制器206可以自行監(jiān)測(cè)請(qǐng)求的狀態(tài)。一旦mutex控制器206確定授權(quán)給處理單元1802a獨(dú)占訪(fǎng)問(wèn)時(shí),mutex控制器206可以向處理單元1802a發(fā)送確認(rèn)消息,表示處理單元1802a具有對(duì)共享資源進(jìn)行獨(dú)占訪(fǎng)問(wèn)的權(quán)限。以此方式,不需要處理單元1802a多次發(fā)送獨(dú)占訪(fǎng)問(wèn)請(qǐng)求直到處理單元1802a接收到獨(dú)占訪(fǎng)問(wèn);處理器單元1802a可以?xún)H發(fā)送一次獨(dú)占訪(fǎng)問(wèn)請(qǐng)求并且等待從mutex控制器206接收獨(dú)占訪(fǎng)問(wèn)。此發(fā)信機(jī)制可以降低存儲(chǔ)器結(jié)構(gòu)106上的通信負(fù)荷。
在某些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以包括提供處理單元之間的通信的靈活的總線(xiàn)架構(gòu)。經(jīng)常地,用于處理單元之間的通信的接口包括緩沖器(如先入先出(fifo))。例如,當(dāng)?shù)谝惶幚韱卧獪?zhǔn)備好向第二處理單元發(fā)送消息時(shí),第一處理單元可以向被分配給第二處理單元的緩沖器發(fā)送消息。當(dāng)?shù)诙幚韱卧獪?zhǔn)備好接收消息時(shí),第二處理單元可以從緩沖器檢索消息。
然而,傳統(tǒng)接口中的緩沖器具有有限的存儲(chǔ)容量。因此,傳統(tǒng)接口中的緩沖器通常被限制為存儲(chǔ)控制消息,并且不能容納大量數(shù)據(jù)(如圖像和視頻數(shù)據(jù))。進(jìn)一步地,將每個(gè)緩沖器永久地分配給這些處理單元中的一個(gè)處理單元。因此,盡管分配給第一處理單元的第一緩沖器可能溢出,分配給第二處理單元的第二緩沖器可能是空的。因此,在系統(tǒng)水平上,可能不能完全利用緩沖器的容量。
存儲(chǔ)器結(jié)構(gòu)106通過(guò)增加緩沖器的容量和通過(guò)基于對(duì)通信的實(shí)時(shí)需要將緩沖器動(dòng)態(tài)分配給處理單元來(lái)解決傳統(tǒng)接口的這些缺點(diǎn)。存儲(chǔ)器結(jié)構(gòu)106提供用于創(chuàng)建、管理、和釋放緩沖器的靈活的機(jī)制。可以針對(duì)過(guò)程期間創(chuàng)建緩沖器,并且一旦過(guò)程完成,可以釋放緩沖器。在軟件程序控制下,可以使被釋放的緩沖器對(duì)其他應(yīng)用或處理單元可用。
圖19展示了根據(jù)某些實(shí)施例的緩沖器的動(dòng)態(tài)分配。存儲(chǔ)器結(jié)構(gòu)106可以包括多個(gè)緩沖器1902a-1902p,每個(gè)緩沖器可以被獨(dú)占地分配給處理單元中的一個(gè)處理單元(如向量處理器或硬件加速器)。在某些情況下,可以將多個(gè)緩沖器1902分配給相同的處理單元。
在某些實(shí)施例中,多個(gè)緩沖器1902可以是緩沖器的存儲(chǔ)庫(kù)的一部分,其可以被分區(qū)并且獨(dú)占地分配給處理單元中的一個(gè)處理單元。存儲(chǔ)庫(kù)可以包括來(lái)自存儲(chǔ)器結(jié)構(gòu)106的存儲(chǔ)器片。在某些實(shí)施例中,所述緩沖器1092中的每個(gè)緩沖器可能具有相同容量。在其他實(shí)施例中,所述緩沖器1902中的一個(gè)或多個(gè)可以具有可變?nèi)萘?。例如,?dāng)?shù)谝惶幚韱卧?802n試圖將少量控制消息發(fā)送給第二處理單元1802c,存儲(chǔ)器結(jié)構(gòu)106可以將小緩沖器1902c分配給第二處理單元1802c,從而使得第二處理單元1802c可以接收少量控制消息。然而,當(dāng)?shù)谝惶幚韱卧?802n試圖向第二處理單元1802m發(fā)送大量視頻數(shù)據(jù)時(shí),存儲(chǔ)器結(jié)構(gòu)106可以將具有大容量的緩沖器分配給第二處理單元1802m,從而使得第二處理單元1802m可以接收大量視頻。
在某些實(shí)施例中,可以將多個(gè)緩沖器1902中的一個(gè)或多個(gè)與特定應(yīng)用(如包括usb、mipi或以太網(wǎng)的可以在設(shè)備(片上系統(tǒng))設(shè)計(jì)時(shí)被預(yù)見(jiàn)的通信接口)相關(guān)聯(lián)。
在某些實(shí)施例中,功率管理模塊110可以被配置成用于向邏輯電路和存儲(chǔ)器設(shè)備提供不同的電力電源電壓。圖20展示了根據(jù)某些實(shí)施例的向邏輯電路存儲(chǔ)器設(shè)備提供不同電壓的功率管理機(jī)制。單個(gè)功率島2002a可以包括邏輯電路區(qū)域2004和存儲(chǔ)器區(qū)域2006。功率管理模塊110可以被配置成用于向邏輯電路區(qū)域2004提供第一電壓v1以及向存儲(chǔ)器區(qū)域2006提供第二電壓v2。在某些實(shí)施例中,可以由不同的功率調(diào)節(jié)器提供第一電壓和第二電壓。因此,可以獨(dú)立控制第一電壓和第二電壓。
在某些實(shí)施例中,邏輯電路區(qū)域2004和存儲(chǔ)器區(qū)域2006可以獨(dú)立進(jìn)入低功率模式。例如,功率管理模塊110可以使用局部開(kāi)關(guān)2008、2010來(lái)分別切斷對(duì)邏輯電路區(qū)域2004和存儲(chǔ)器區(qū)域2006的電力電源電壓。在某些實(shí)施例中,功率管理模塊110可以使用全局開(kāi)關(guān)2012來(lái)切斷對(duì)在一個(gè)或多個(gè)功率島2002a,...,2002n中的存儲(chǔ)器區(qū)域2006的電力電源電壓。
在某些實(shí)施例中,存儲(chǔ)器結(jié)構(gòu)106可以包括直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)引擎。dma引擎可以維持操作列表,所述操作列表包括dma數(shù)據(jù)結(jié)構(gòu)的雙鏈表。每個(gè)dma數(shù)據(jù)結(jié)構(gòu)表示有待由dma引擎來(lái)執(zhí)行的特定操作。以dma引擎應(yīng)當(dāng)執(zhí)行與dma數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的操作的順序來(lái)維持dma數(shù)據(jù)結(jié)構(gòu)。
因?yàn)椴僮髁斜戆╠ma數(shù)據(jù)結(jié)構(gòu)的雙鏈表,為由雙鏈表所表示的操作序列移除dma操作花費(fèi)大量時(shí)間。在某些實(shí)施例中,dma引擎可以通過(guò)維持表示是否應(yīng)當(dāng)執(zhí)行dma數(shù)據(jù)結(jié)構(gòu)的緩沖器來(lái)解決這個(gè)問(wèn)題。緩沖器中的每個(gè)位都可以被認(rèn)為是針對(duì)相關(guān)聯(lián)的dma數(shù)據(jù)結(jié)構(gòu)的使能信號(hào)。
圖21展示了根據(jù)某些實(shí)施例的實(shí)現(xiàn)基于緩沖器的dma數(shù)據(jù)結(jié)構(gòu)使能機(jī)制的dma引擎。dma引擎包括具有多個(gè)dma數(shù)據(jù)結(jié)構(gòu)2104的操作列表2102。多個(gè)dma數(shù)據(jù)結(jié)構(gòu)2104可以被耦合至彼此作為雙鏈表。dma引擎還包括使能緩沖器2106。使能緩沖器2106可以包括多個(gè)位。使能緩沖器2106中的位數(shù)目可以與操作列表2102中的dma數(shù)據(jù)結(jié)構(gòu)的數(shù)目相同。使能緩沖器2106中的每個(gè)位可以表示是否啟用了與位相關(guān)聯(lián)的dma數(shù)據(jù)結(jié)構(gòu)。例如,當(dāng)緩沖器中的第一位是“1”時(shí),則dma引擎可以確定啟用了第一dma數(shù)據(jù)結(jié)構(gòu)并且執(zhí)行第一dma數(shù)據(jù)結(jié)構(gòu)。當(dāng)緩沖器中的第二位是“0”時(shí),則dma引擎可以確定啟用了第二dma數(shù)據(jù)結(jié)構(gòu)并且不執(zhí)行第二dma數(shù)據(jù)結(jié)構(gòu)。以此方式,dma引擎可以選擇性地執(zhí)行操作列表中的dma數(shù)據(jù)結(jié)構(gòu)的子集,而不實(shí)際從操作列表中移除dma數(shù)據(jù)結(jié)構(gòu)。由于dma引擎不需要移除dma數(shù)據(jù)結(jié)構(gòu),與禁用一個(gè)或多個(gè)dma數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的延遲可以是小的。
在某個(gè)實(shí)施例中,并行計(jì)算設(shè)備100可以駐留在電子設(shè)備中。圖22展示了根據(jù)某些實(shí)施例的包括計(jì)算設(shè)備的電子設(shè)備。電子設(shè)備2200可以包括處理器2202、存儲(chǔ)器2204、一個(gè)或多個(gè)接口2206、和計(jì)算設(shè)備100。
電子設(shè)備2200可以具有存儲(chǔ)器2204,諸如計(jì)算機(jī)可讀介質(zhì)、閃速存儲(chǔ)器、磁盤(pán)驅(qū)動(dòng)器、光驅(qū)動(dòng)器、可編程只讀存儲(chǔ)器(prom)和/或只讀存儲(chǔ)器(rom)。電子設(shè)備2200可以配置有對(duì)指令進(jìn)行處理并運(yùn)行可存儲(chǔ)在存儲(chǔ)器2204中的軟件的一個(gè)或多個(gè)處理器2204。處理器2202還可以與存儲(chǔ)器2204和多個(gè)接口2206通信以與其他設(shè)備通信。處理器2202可以是任何可應(yīng)用的處理器,例如組合cpu、應(yīng)用處理器和閃速存儲(chǔ)器的片上系統(tǒng),或精簡(jiǎn)指令集計(jì)算(risc)處理器。
存儲(chǔ)器2204可以是非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)、閃速存儲(chǔ)器、磁盤(pán)驅(qū)動(dòng)器、光學(xué)驅(qū)動(dòng)器、可編程只讀存儲(chǔ)器(prom)、只讀存儲(chǔ)器(rom)或任何其他存儲(chǔ)器或存儲(chǔ)器組合。軟件可以在能夠執(zhí)行計(jì)算機(jī)指令或計(jì)算機(jī)代碼的處理器上運(yùn)行。處理器還可以使用專(zhuān)用集成電路(asic)、可編程邏輯陣列(pla)、現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)或任何其他集成電路的硬件中實(shí)現(xiàn)。
這些接口2206可以在硬件或軟件中實(shí)現(xiàn)。這些接口2206可以用于從網(wǎng)絡(luò)接收數(shù)據(jù)和控制信息以及本地源,諸如到電視機(jī)的遠(yuǎn)程控制。電子設(shè)備還可以提供各種用戶(hù)接口,例如鍵盤(pán)、觸摸屏、軌跡球、觸摸板和/或鼠標(biāo)。在一些實(shí)施例中,電子設(shè)備還可以包括揚(yáng)聲器和顯示設(shè)備。
在一些實(shí)施例中,計(jì)算設(shè)備100中的處理單元(例如向量處理器102和硬件加速器104)可以包括能夠執(zhí)行計(jì)算機(jī)指令或計(jì)算機(jī)代碼的集成芯片。處理器還可以使用專(zhuān)用集成電路(asic)、可編程邏輯陣列(pla)、現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)或任何其他集成電路的硬件中實(shí)現(xiàn)。
在一些實(shí)施例中,計(jì)算設(shè)備100可以被實(shí)現(xiàn)為片上系統(tǒng)(soc)。在其他實(shí)施例中,并行計(jì)算設(shè)備中的一個(gè)或多個(gè)塊可以被實(shí)現(xiàn)為分開(kāi)的芯片,并且并行計(jì)算設(shè)備可以被封裝在系統(tǒng)級(jí)封裝(sip)中。在一些實(shí)施例中,并行計(jì)算設(shè)備400可以用于數(shù)據(jù)處理應(yīng)用。這些數(shù)據(jù)處理應(yīng)用可以包括圖像處理應(yīng)用和/或視頻處理應(yīng)用。圖像處理應(yīng)用可以包括圖像處理過(guò)程(包括圖像過(guò)濾操作);視頻處理應(yīng)用可以包括視頻解碼操作、視頻編碼操作、用于檢測(cè)視頻中的運(yùn)動(dòng)或?qū)ο蟮囊曨l分析操作。本發(fā)明的附加應(yīng)用包括基于圖像、對(duì)象或視頻序列的機(jī)器學(xué)習(xí)和分類(lèi)以及增強(qiáng)現(xiàn)實(shí)應(yīng)用,增強(qiáng)現(xiàn)實(shí)應(yīng)用包括游戲應(yīng)用從包括深度啟用相機(jī)的多個(gè)相機(jī)視圖中提取幾何形狀、以及從多個(gè)視圖中提取特征,gpu可以從所述視圖提取線(xiàn)框幾何形狀(例如經(jīng)由點(diǎn)云)用于隨后的頂點(diǎn)著色。
電子設(shè)備2200可以包括移動(dòng)設(shè)備,例如蜂窩電話(huà)。移動(dòng)設(shè)備可以使用多種接入技術(shù)與多個(gè)無(wú)線(xiàn)電接入網(wǎng)絡(luò)通信和與有線(xiàn)通信網(wǎng)絡(luò)通信。移動(dòng)設(shè)備可以是提供諸如文字處理、網(wǎng)絡(luò)瀏覽、游戲、電子書(shū)能力、操作系統(tǒng)和全鍵盤(pán)的高級(jí)能力的智能電話(huà)。移動(dòng)設(shè)備可以運(yùn)行諸如symbianos、iphoneos、rim的blackberry、windowsmobile、linux、palmwebos、以及android等操作系統(tǒng)。屏幕可以是可以用于向移動(dòng)設(shè)備輸入數(shù)據(jù)的觸摸屏,并且可以使用屏幕而不是全鍵盤(pán)。移動(dòng)設(shè)備可以具有運(yùn)行應(yīng)用或與由通信網(wǎng)絡(luò)中的服務(wù)器提供的應(yīng)用進(jìn)行通信的能力。移動(dòng)設(shè)備可以從網(wǎng)絡(luò)上的這些應(yīng)用接收更新和其他信息。
電子設(shè)備2200還可以包括諸如電視(tv)、視頻投影儀、機(jī)頂盒或機(jī)頂單元、數(shù)字視頻記錄器(dvr)、計(jì)算機(jī)、上網(wǎng)本、膝上型計(jì)算機(jī),平板計(jì)算機(jī)以及可以與網(wǎng)絡(luò)通信的任何其他音頻/視頻設(shè)備。電子設(shè)備還可以在其堆?;虼鎯?chǔ)器中保持全球定位坐標(biāo)、簡(jiǎn)檔信息或其他位置信息。
應(yīng)當(dāng)理解的是,雖然本文描述了若干種不同的布置,但是每一種的特征可以有利地以各種形式組合在一起以實(shí)現(xiàn)優(yōu)點(diǎn)。
在前述說(shuō)明書(shū)中,已經(jīng)參考具體示例描述了本申請(qǐng)。然而,在不偏離所附權(quán)利要求中闡述的本發(fā)明的更廣精神和范圍的情況下,將顯然的是可對(duì)其進(jìn)行各種修改和改變。例如,連接可以是適合于例如經(jīng)由中間設(shè)備從相應(yīng)的節(jié)點(diǎn)、單元或設(shè)備傳送信號(hào)或者對(duì)其傳送信號(hào)的任何類(lèi)型的連接。因此,除非暗示或另作聲明,否則這些連接可以例如是直接連接或間接連接。
應(yīng)當(dāng)理解的是,本文所描述的架構(gòu)僅僅是示例性的,并且實(shí)際上可以實(shí)施實(shí)現(xiàn)相同功能的許多其他架構(gòu)。在抽象但仍然明確的意義上,實(shí)現(xiàn)相同功能的多個(gè)組件的任何布置是有效地“相關(guān)聯(lián)”的,以使得實(shí)現(xiàn)期望的功能。因此,在此組合以實(shí)現(xiàn)特定功能的任何兩個(gè)組件可以被看作是彼此“相關(guān)聯(lián)”的,以使得實(shí)現(xiàn)期望的功能,而不管架構(gòu)或中間組件。同樣,如此關(guān)聯(lián)的任何兩個(gè)組件還可以被視為是彼此“可操作地連接”或“可操作地耦聯(lián)”的,以實(shí)現(xiàn)期望的功能。
此外,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,上述操作的功能之間的界限僅僅是說(shuō)明性的。多個(gè)操作的功能可以組合成單個(gè)操作,和/或單個(gè)操作的功能可以分布在多個(gè)附加操作中。此外,替換實(shí)施例可以包括特定操作的多個(gè)實(shí)例,并且在各種其它實(shí)施例中可以改變操作的順序。
然而,其他修改、變化和替代也是可能的。因此,本說(shuō)明書(shū)和附圖應(yīng)被視為是說(shuō)明性的而非限制性的。
在權(quán)利要求中,置于括號(hào)之間的任何附圖標(biāo)記不應(yīng)被解釋為限制權(quán)利要求。詞語(yǔ)“包括”不排除權(quán)利要求中所列出的元件或步驟之外的其他元件或步驟的存在。此外,在此使用的術(shù)語(yǔ)“一”和“一個(gè)”被定義為一個(gè)或多于一個(gè)。此外,在權(quán)利要求中使用諸如“至少一個(gè)”和“一個(gè)或多個(gè)”之類(lèi)的介紹性短語(yǔ)不應(yīng)被解釋為意味著通過(guò)不定冠詞“一”或“一個(gè)”引入另一權(quán)利要求元素將包含這樣的引入的權(quán)利要求元素的任何特定權(quán)利要求限制為僅包含一個(gè)這樣的元素的發(fā)明,即使在相同的權(quán)利要求包括介紹性短語(yǔ)“一個(gè)或多個(gè)”或“至少一個(gè)”和諸如“一”或“一個(gè)”的不定冠詞時(shí)亦是如此。這同樣適用于定冠詞的使用。除非另作聲明,術(shù)語(yǔ)例如“第一”和“第二”用于任意地區(qū)別這類(lèi)術(shù)語(yǔ)所描述的元素。因此,這些術(shù)語(yǔ)不一定旨在指示這類(lèi)元素的時(shí)序或其他優(yōu)先順序。某些措施被引用在相互不同的權(quán)利要求中的單純事實(shí)并不指示不能有利地使用這些措施的組合。