用於片上多核系統的驅動基於訪問的資源的低功耗控制和管理的製作方法
2023-06-16 00:38:26 1

本申請要求於2015年1月21日提交的申請號為14/601981、名稱為「用於片上多核系統的驅動基於訪問的資源的低功耗控制和管理」的美國非臨時專利申請的優先權,而該美國非臨時專利申請要求於2014年10月27日提交的申請號為62/069166、名稱為「用於片上多核系統的驅動基於訪問的資源的低功耗控制和管理」的美國臨時申請的優先權,其全部內容通過引用結合在本申請中。
本公開一般涉及功耗管理,尤其涉及諸如功能資源/存儲資源控制器/調度器等的片上系統(soc)中的功耗管理。
背景技術:
「倡導綠色」是為了使世界成為一個更好的工作和生活的地方的世界性倡議。對於每個人的日常生活來說,信息、通信和電信是必不可少且無處不在的。
相對於單一dsp/cpu處理元件管理片上全部資源的傳統架構,現在的片上基帶系統(soc)有多種訪問相同存儲塊的同構和異構數位訊號處理器(dsp)/中央處理單元(cpu)元件、硬體加速器等(統稱為「處理元件」)。在以前的設備中,一個dsp/cpu元件擁有所有的資源,並使用物理尋址訪問這些資源。由dsp/cpu元件管理和啟動針對存儲資源的低功耗管理。由dsp/cpu元件執行靜態和顯式存儲組織。在功耗和存儲資源管理方面,存儲資源表現地像沒有任何智能的虛擬從機。
由於每個處理元件獨立地分配和訪問共享的資源,所以這種方法對於多處理元件的場景變得越來越繁瑣,使得功耗管理實際上成了一個博弈論問題。
技術實現要素:
本公開提供了一種用於高速、複雜和低功耗的功能/存儲系統的基於訪問的低功耗方法。
根據本公開的第一示例實施例,一種方法包括與功能資源/存儲資源關聯的資源控制器接收來自處理元件的訪問部分功能資源/存儲資源的訪問請求。響應該訪問請求,該資源控制器將功能資源/存儲資源的第一部分分配給處理元件,根據第一部分的分配,變更功能資源/存儲資源的第一部分的功耗模式,並且使功能資源/存儲資源的未分配部分處於掉電模式。
在一些實施例中,資源控制器將第一部分的功耗模式從掉電模式變更為淺睡眠模式。在第一部分的分配之後的多個時鐘周期之後,例如,至少兩個時鐘周期之後,當第一部分被處理元件訪問時,資源控制器將第一部分的功耗模式變更為上電模式。處理元件可以包括執行專用功能的數位訊號處理器(dsp)、中央處理器(cpu)和硬體加速器等。在一些實施例中,功能資源/存儲資源、資源控制器和處理元件是片上系統(soc)的部分。資源控制器響應於訪問請求選擇性地控制對功能資源/存儲資源的讀/寫訪問,並且存儲資源可以包括一個或多個存儲體。資源控制器從處理元件接收訪問請求,並且當接收訪問請求時資源控制器控制功能資源/存儲資源的分配。
在另一示例實施例中,一種電路包括功能資源/存儲資源以及與功能資源/存儲資源關聯的資源控制器。該資源控制器被配置為響應於從處理元件接收的訪問請求,將功能資源/存儲資源的第一部分分配給處理元件,根據第一部分的分配變更功能資源/存儲資源的第一部分的功耗模式,使功能資源/存儲資源的未分配部分處於掉電模式,並且響應於從處理元件接收的訪問請求,使處理元件能夠訪問功能資源/存儲資源的第一部分。
在一些實施例中,資源控制器被配置為響應於第一部分的分配將第一部分的功耗模式從掉電模式變更為淺睡眠模式。資源控制器被配置為在第一部分的分配之後的多個時鐘周期之後,例如至少兩個時鐘周期之後,將第一部分的功耗模式變更為上電模式。處理元件可以包括數位訊號處理器(dsp)、中央處理器(cpu)或硬體加速器。資源控制器被配置為響應於訪問請求選擇性地控制對存儲資源的讀/寫訪問,並且存儲資源包括一個或多個存儲體。
在另一實施例中,片上系統(soc)包括處理元件和與功能資源/存儲資源關聯的資源控制器。該資源控制器被配置為響應於來自處理元件的訪問請求,將功能資源/存儲資源的第一部分分配給處理元件,根據第一部分的分配變更功能資源/存儲資源的第一部分的功耗模式,使功能資源/存儲資源的未分配部分處於掉電模式,並響應於從處理元件接收的訪問請求,使處理元件能夠訪問功能資源/存儲資源的第一部分。
附圖說明
為了更清楚地理解本公開以及本公開的優點,現結合附圖參考如下描述,其中相似的數字表示相似的對象,其中,
圖1描述了多個處理元件訪問的存儲資源,其中訪問是由遠程管理器/低功耗控制器控制的;
圖2描述了根據本公開的多個處理元件可訪問的具有常駐qos分析器和資源調度器的存儲資源;
圖3描述了基於數據流的細粒度低功耗控制;
圖4描述了存儲資源的框圖;
圖5是描述處理元件訪問存儲資源的時序的示意圖;
圖6描述了避免/管理停頓的方法;以及
圖7描述了本公開與傳統方法的對比。
具體實施方式
參考圖1,示出了傳統片上系統10,包括具有低功耗控制器14的傳統功能資源/存儲資源12,例如存儲體。片上系統10的中央管理器/低功耗控制器16被配置為管理soc10上的所有處理元件18和資源12的低功耗。根據不同系統要求和負載,通過低功耗控制器16、資源12和處理元件18之間的握手,控制器16選擇性地將處理元件18和資源12置於預定義的低功耗模式。用於資源12的低功耗控制器14處理與控制器16的低功耗握手,以接收合適的低功耗控制命令,並相應地採取行動,以使資源12處於由低功耗控制命令指示的相應狀態。資源12表現地像虛擬從機,完全不參與其自身的功耗狀態管理的決策過程。
由於多元件soc10的動態特性,這類實現方式的缺點是集中式低功耗管理控制器16不能使整個soc10系統操作和負載總是最新的。每個處理元件18可以獨立工作,也可以與另一處理元件18密切合作,這使得系統負載和功耗有時有很大的差異。對一個集中式低功耗控制器16來說,總是立即做出機敏且智能的決策幾乎是不可能的。另外,低功耗管理的粒度是粗糙的,因為它總是在一些預定義的靜態低功耗狀態下運行,這導致整體上更多的功率被消耗。
參考圖2,示出了根據本公開的一個示例實施例,包括soc20,該soc20具有由關聯的常駐低功耗管理/服務質量(qos)分析器24和資源調度器26(有時統稱為「資源控制器」)管理的功能資源/存儲資源22(有時統稱為「資源」)。功能資源/存儲資源22包括,例如,一個或多個獨立可尋址和可控制的存儲體,以及功耗管理策略應用程式編程接口(api)。處理元件18包括數位訊號處理器(dsp)、中央處理器(cpu)以及硬體加速器中的一個。每個處理元件18被配置為使用qos參數直接對功能資源/存儲資源22的部分提出請求,資源調度器26和低功耗管理器/qos分析器24響應地分配功能資源/存儲資源22。處理元件18被配置為提交諸如訪問模式、訪問間隔、訪問間隔之間的低功耗要求等的功耗管理策略參數,功耗管理api被配置為接收這類功耗管理策略參數。資源調度器26和低功耗管理器/qos分析器24被配置為響應地向處理元件18分配功能資源/存儲資源22,有利於基於其策略執行本地的低功耗控制,而不是由多個處理元件18管理。
處理元件18可以使用虛擬尋址或傳輸元數據的消息傳輸,從而使得資源調度器26和低功耗管理器/qos分析器24在仍保持qos的同時,在最低功耗下有效地管理功能資源/存儲資源22的存儲器組織。
資源調度器26和低功耗管理器/qos分析器24在掉電模式下管理功能資源/存儲資源22的體(banks),直到它們已經被資源調度器26和低功耗管理器/qos分析器24分配使用。這在簡單的隨機訪問存儲器(ram)中是不可能的。
一旦功能資源/存儲資源22被分配給處理元件18,來自該處理元件18的功耗訪問消息則允許資源調度器26和低功耗管理器/qos24將未分配的功能資源/存儲資源22置於諸如淺睡眠模式等的其他睡眠模式下。一旦功能資源/存儲資源22被除去分配,則它們被返回到合適的掉電模式。
資源調度器26和低功耗管理器/qos24包括面向服務的低功耗控制和管理系統,該管理系統是自我管理的自動系統,其中,當由他們自己管理這些模塊時,特別是從低功耗管理的角度來管理時,服務實現模塊提供由主機/請求者請求的必需服務。資源控制器26內部的調度器負責立即分配存儲資源。另外,調度器向獨立的存儲體發送合適的低功耗控制器信號。
如圖2所示,所有服務請求均由主機/請求者和處理元件18以「服務合同」的形式傳遞,其中,服務請求定義了如下信息:
1.什麼類型的服務/任務:即,快速傅立葉變換(fft);
2.期望何時完成服務/任務:即,時鐘周期數;以及
3.將會處理多少數據:即512位元組或1024位元組等。
「服務合同信息」是一組豐富的元數據,通知資源調度器26諸如訪問有多重要、必須多快或多緊急地為這個特定的訪問服務、qos要求等的參數。資源調度器26基於這些信息調度資源訪問功能資源/存儲資源22,並決定馬上服務當前的訪問,或將其與其他訪問組合在一起,以稍後啟動一個特定的存儲體(此時該存儲體仍處於低功耗模式下),以便節省更多的功耗。
如果位於服務實現資源調度器26前面的qos分析器24接收到「服務合同信息」,qos分析器24基於當前的工作負荷開始處理「服務合同信息」,將服務合同拆分成小片,並且向資源調度器26調度子任務,以使得在儘可能節省功耗的同時保證qos。
qos分析器24被設計為使用以上描述的一項或多項低功耗技術,以達到節省功耗的目的。
例如,如果功能資源/存儲資源22有許多存儲體,qos分析器24則根據未完成的具有存儲器讀/寫訪問的子任務的數量,可以將功能資源/存儲資源22恰好置於淺睡眠/深睡眠模式下。
如果在可預見的未來不會使用這樣的子功能,qos分析器24也可以對功能資源/存儲資源22的部分進行時鐘脈衝門控或者甚至斷電。
如果當前的吞吐量/帶寬要求不是非常高,則如果必要的話,qos分析器24也可以降低運行頻率至1/2、1/3或1/4。
當功能資源/存儲資源22的剩餘部分正在運行或空閒(時鐘脈衝/斷電)時,由於qos分析器24是本地中心局,因此qos分析器24是被時鐘脈衝/功耗門控的最後的子模塊,這完全取決於當前工作模式/負載。
狀態信號向中央管理器/低功耗控制器16提供「心跳」信息。心跳信號的頻率與服務實現模塊運行的活躍程度成正比。
qos驅動的低功耗控制和管理方法的另一個顯著特點是,功能實現模塊/子模塊、功能資源/存儲資源22基於「數據」而非主機/請求者發出的命令激活低功耗機制。可以將「數據」看作是流經管道的水,其中「數據」相當於水,處理元件相當於管道。一旦沒有任何要處理的數據,則所有管道可以被置於空閒,相對於等待直到主機/請求者通知實現模塊後才這樣做,節省了更多的功耗。
如圖3所示,本公開採用系統級數據流。除了每個功能30(或塊)檢測其空閒狀態並進入低功耗狀態,功能30(塊)在檢測將來的某一時刻會不會有要處理的數據之前,從前面的功能30(塊)獲取低功率流控制信號,從而可以進入低功耗狀態。例如,如果功能1塊沒有要處理的數據,因此空閒,則它會向後面的塊發送低功耗反饋信號,以通知它們也應該預期沒有數據(在將來的一些時間),並轉變到低功耗模式。
有利的是,資源調度器26和低功耗管理器/qos分析器24提供更好、更高效、靈活以及更可擴展的低功耗管理方法,以進一步降低具有更細粒度的多核soc晶片的功耗。低功耗意味著電費更低,冷卻風扇的數量更少,機箱更小,為終端客戶節省得更多。
參照圖4,示出了存儲控制器40的一個示例框圖。存儲控制器40包括axi/存儲命令掃描器41、寫仲裁器42、寫組合器44、讀仲裁器46和讀組合器48。寫仲裁器42和讀仲裁器46被配置為由監督器50進行管理。有利的是,存儲控制器40還包括多個體控制器52,每個體控制器52配置為控制訪問一個或多個各自的存儲體54。在一些實施例中,多個存儲體54包括功能資源/存儲資源22。在一些例子中,存儲控制器40向一個或多個存儲體發送合適的低功耗控制器信號。
圖5是描述處理元件18訪問功能資源/存儲資源22的時序的示意圖,並且未分配的資源仍處於掉電模式。如60處所示,根據來自處理元件18的用於訪問功能資源/存儲資源22的請求,資源調度器26和qos分析器24將已分配的功能資源/存儲資源22的功耗模式從掉電模式變更為較低的功耗模式,例如,從正常運行變更為淺睡眠模式,或從淺睡眠變更為深睡眠等。在一個示例實施例中,在請求處理元件18被授權訪問已分配的功能資源/存儲資源22之前有3-4個時鐘周期,如62所示,其中訪問的已分配的功能資源/存儲資源22處於正常功耗模式。該3-4個時鐘周期階段的延遲被充分利用,以加大已分配的功能資源/存儲資源22的功耗,這樣的延遲並非損失,而是有益的。資源調度器26和qos分析器24智能地管理處於淺睡眠、深睡眠或掉電/時鐘脈衝門控中的整個功能資源/存儲資源22,這樣極大地降低了整體的功耗。在最後的功能資源/存儲資源的訪問之後,已分配的功能資源/存儲資源22被配置為恢復睡眠模式。當功能資源/存儲資源22的訪問被處理元件18再次請求時重複此過程。
參照圖4和圖5,在一個示例實施例中,qos分析器24和資源調度器26控制包括多個可尋址體54的存儲區域,例如,每個體54具有線性或交錯的物理體。
qos分析器24和資源調度器26監視整個存儲空間,並知道可尋址體54的哪些區域當前處於激活或處於低功耗模式。如果可尋址體3中的體4處於淺睡眠模式,並且它有一個需要在之後的30個周期內被提供服務的到其位置的讀訪問,以及另一個需要在之後的28個周期內被提供服務的到另一個位置的讀訪問,qos分析器24在仍然保持這個體在另外的20個時鐘周期處於淺睡眠模式的同時,一起調度這兩個讀訪問,然後通常用3到4個時鐘周期開始喚醒該體,執行這些讀訪問以滿足qos,如果沒有更多的讀訪問到這個體時,將其再次返回到淺睡眠模式。
由於axi總線協議包括五個信道(aw,ar,r,w,b),加上一些用戶定義的用於提升性能的邊帶信號,所有的這些信息一起被視為元數據。
例如,隨著讀訪問進入qos分析器24和資源調度器26,可以從ar信道信號中獲取地址、讀取的長度以及優先級。邊帶信號能夠由處理元件18一起配置,以攜帶諸如他們應該多久被服務等的其他重要信息。
對於aw和ar兩種信道,使用內置請求/準備握手方案以限制請求。這對避免過度運行qos分析器是非常重要的特點。
如果有很多請求進入qos分析器24和資源調度器26,qos分析器24和資源調度器26可以快速到達它能夠服務的未完成的讀/寫的數量的上限。在這種情況下,qos分析器24和資源調度器26使用背壓握手方案短暫地停頓流量,並且完全關閉低功耗功能以保證qos,直到未完成的讀/寫的數量降至閾值以下。圖6中的70處示出了一種示例的方法。
為了避免停頓或最小化停頓,通過交錯存儲器諸如交錯至8個或16個存儲體,用較短時間為業務提供服務。例如,如果有一項從地址0至7讀取的業務,線性存儲器要用8個時鐘周期去完成,然而,如果存儲地址是由八個地址交錯的,因為這樣它就能同時從存儲器的8個不同存儲片段中一起獲取數據,則只需要用一個時鐘周期。
參照圖7,示出了本公開和傳統解決方案的對比。在傳統解決方案中,存儲器可以在4至64個時鐘周期內進入淺睡眠模式,然而,在4至64個時鐘周期內盲目進入淺睡眠模式將極大地影響整體的讀寫訪問延遲。因此,不得不擴展至所示的128個時鐘周期,僅為了避免性能下降。
因為具有包括qos分析器24和資源調度器26的內置存儲管理器,所以本公開可以充分利用4個時鐘周期的進入時間,而不影響性能,這可以將利用率提升9%。
本公開有利於將功耗和資源管理的職責從一個或多個主機(即處理單元18)變更到從機(即服務於功能資源/存儲資源22的資源調度器26和qos分析器24)上。當功能資源/存儲資源22沒有被請求訪問以及處於多個訪問之間的間隔中時,基於訪問的資源調度器26和qos分析器24節省功耗。
對本專利文件通篇使用的某些字或術語的定義進行說明是有利的。術語「包括(include)」和「包括(comprise)」以及它們的衍生詞,是指包括但不限於。術語「或」包括和/或。短語「與……相關聯」和「與之相關聯」,以及它們的衍生詞,表示包括、被包括在內、與……互聯、包含、被包含在內、連接到……或與……連接、耦合到……或與……耦合、與……可通信、與……合作、交織、並列、與……接近、被綁定至……或與……綁定、具有、具有……的屬性等。
本公開已經描述了某些實施例和通常相關的方法,這些實施例和方法的變換和排列組合對本領域技術人員是顯而易見的。因此,以上示例實施例的描述並未限定或約束本公開。其他可能的變化、替換和修改,在不脫離本公開的精神和範圍的前提下,均包含在所附的權利要求中。