TW201636771A - 在非核心組織中之電力管理技術 - Google Patents

在非核心組織中之電力管理技術 Download PDF

Info

Publication number
TW201636771A
TW201636771A TW104138977A TW104138977A TW201636771A TW 201636771 A TW201636771 A TW 201636771A TW 104138977 A TW104138977 A TW 104138977A TW 104138977 A TW104138977 A TW 104138977A TW 201636771 A TW201636771 A TW 201636771A
Authority
TW
Taiwan
Prior art keywords
request
organization
memory
power
agent
Prior art date
Application number
TW104138977A
Other languages
English (en)
Other versions
TWI633424B (zh
Inventor
拉瑪達斯 納加拉珍
傑瑞米J 席拉爾
艾立克G 哈勒諾
維尼特M 亞伯拉罕
艾茲拉N 哈林頓
Original Assignee
英特爾公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾公司 filed Critical 英特爾公司
Publication of TW201636771A publication Critical patent/TW201636771A/zh
Application granted granted Critical
Publication of TWI633424B publication Critical patent/TWI633424B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Power Sources (AREA)

Abstract

在一實例中,系統單晶片(SoC)之共享非核心記憶體組織被組配來提供即時電力管理。SoC可包括電力管理代理器,該電力管理代理器用於通知共享組織處理核心及周邊設備將閒置一段時間,並且協商電力節省狀態。非核心組織亦可包括局部電力管理器,該局部電力管理器偵測何時未接收存取請求一段時間,諸如在核心自快取記憶體來操作時。然後,共享組織可單方進入電力節省狀態,並且保持在該狀態下直到接收存取請求為止。在電力節省狀態下,將電力及/或時鐘閘控,並且組織之狀態儲存在保留胞元中。在接收新的存取請求時,未閘控控制器可處置預先處理,同時局部電力管理器恢復狀態並且將共享組織電力開啟。

Description

在非核心組織中之電力管理技術 發明領域
本揭示案係關於計算系統,並且尤其(但是並非唯一地)係關於用於非核心組織中之電力管理之系統及方法。
發明背景
在具有多個裝置之許多電腦系統中,執行仲裁以提供共享資源如共享記憶體之存取。提供不同類型之仲裁機制以實現不同代理器或請求者之間之仲裁。一些系統使用固定優先級仲裁系統,其中為不同代理器分配特定優先級。然而,此可導致使用不公平及一或多個代理器獲得對於共享資源之存取之能力饑餓。其他仲裁系統提供基於循環之方法來分配對於共享資源之存取。
在某些實施例中,仲裁不考慮到共享資源因素如電力狀態。因此,在一個實例中,向請求授與對於共享資源之存取並且導致資源退出低電力狀態,但是裝置不需要立即存取共享資源。
依據本發明之一實施例,係特地提出一種設備, 其包含:一共享組織,該共享組織包含一閘控區域,並且進一步包含:一局部電力管理器,其用以判定該共享組織在大於一臨界值之一時間內未接收一存取請求;以及一電力閘,其用以在來自該局部電力管理器之一電力切斷信號時斷開至該閘控區域之電力。
100、735‧‧‧共享記憶體組織
115-0~115-3‧‧‧代理器
118‧‧‧最終期限判定邏輯
120‧‧‧容許仲裁器
121-0‧‧‧最終期限核對器
122‧‧‧第一仲裁器
124‧‧‧第二仲裁器
125‧‧‧優先級仲裁器選擇器
126‧‧‧時效儲存器
128‧‧‧權重儲存器
129‧‧‧優先級儲存器
130‧‧‧排程器仲裁器
140‧‧‧快取記憶體相干性追蹤器
142‧‧‧記分板
144‧‧‧資料緩衝器
146‧‧‧控制佇列
148‧‧‧資源分配邏輯
150‧‧‧全域計時器
160、365‧‧‧組態暫存器
170、170-1~170-0、740‧‧‧記憶體控制器
200、300、600‧‧‧方法
210、220、315、340、630、650、670‧‧‧決定方塊
215、225、310、610、620、640、660、1410~1490、320a、320b、325a、325b、330a、330b、335、345、350‧‧‧方塊
250、500‧‧‧狀態機
260‧‧‧現用狀態
270‧‧‧更新時效狀態
280‧‧‧遞減代理器權重狀態
360、400‧‧‧邏輯
368、375‧‧‧加法器
370‧‧‧減法器
372~378、410-0~410-n‧‧‧正反器
380、382、390‧‧‧比較器
384、385、435-0~435-n‧‧‧及閘
386、387、425-0~425n-2、440‧‧‧或閘
420-0~420-n‧‧‧多工器
430-0~430n-1‧‧‧邏輯閘
505‧‧‧初始化
510‧‧‧自我再新狀態機
512‧‧‧「進入」自我再新狀態
514‧‧‧「請求」自我再新狀態
516‧‧‧「退出」自我再新狀態
520‧‧‧「讀取/寫入」授與狀態機
522‧‧‧「授與讀取請求」狀態
524‧‧‧「授與寫入請求」狀態
530‧‧‧「讀取」狀態機
532‧‧‧「繞過授與」狀態
534‧‧‧「高優先級讀取請求」授與狀態
536‧‧‧「最佳努力」授與讀取請求狀態
538‧‧‧「低優先級」等時授與讀取請求狀態
700、1200‧‧‧SoC
710-0~710-n‧‧‧核心
715、725‧‧‧共享快取記憶體
720-0~720-n‧‧‧圖形單元
728、729‧‧‧晶粒內互連
730‧‧‧系統代理器
744、746‧‧‧互連
780‧‧‧內部代理器
800‧‧‧系統
810‧‧‧處理器
815‧‧‧系統記憶體
820‧‧‧大容量儲存器
822‧‧‧快閃裝置
824‧‧‧顯示器
825‧‧‧觸控螢幕
830‧‧‧觸控墊
835‧‧‧嵌入控制器
836‧‧‧鍵盤
837‧‧‧風扇
838‧‧‧可信賴平台模組
839、846‧‧‧熱感測器
841‧‧‧加速計
842‧‧‧環境光感測器
843‧‧‧指南針
844‧‧‧回轉儀
850‧‧‧WLAN單元
852‧‧‧藍牙單元
854‧‧‧攝像機模組
855‧‧‧GPS模組
856‧‧‧無線廣域網路單元
857‧‧‧訂戶身份模組
860‧‧‧數位信號處理器
862‧‧‧放大器
863‧‧‧輸出揚聲器
864‧‧‧耳機插孔
865‧‧‧麥克風
1210-0‧‧‧RT周邊裝置
1210-1‧‧‧輔助周邊裝置
1220-0、1220-1‧‧‧記憶體器組
1230‧‧‧共享互連資源
1232‧‧‧電力管理代理器
1240‧‧‧虛擬通道VC_AUX
1242‧‧‧虛擬通道VC_RT
1250‧‧‧PMA
1270‧‧‧用戶介面
1290‧‧‧受控系統
1310‧‧‧未閘控區域
1320‧‧‧閘控區域
1330‧‧‧系統解碼器
1340‧‧‧保留胞元
1342‧‧‧I/O互連組織
1350‧‧‧I/O根複合體
1360‧‧‧電力閘
1370‧‧‧時鐘閘
1372‧‧‧時鐘
1380‧‧‧未閘控控制器
1390‧‧‧局部電力管理器
圖1係根據本說明書之一或多個實例之共享非核心記憶體組織之一部分的方塊圖。
圖2係根據本說明書之一或多個實例之容許仲裁器之進一步細節之方塊圖。
圖3係根據本說明書之一或多個實例的在判定仲裁勝利者後更新代理器之時效值之方法之流程圖。
圖4係根據本說明書之一或多個實例之容許仲裁器狀態機之方塊圖。
圖5係根據本說明書之一或多個實例的在容許仲裁器中執行第一級仲裁之方法之流程圖。
圖6係根據本說明書之一或多個實例的資源分配邏輯之一部分之方塊圖。
圖7係根據本說明書之一或多個實例的記分板索引產生邏輯之方塊圖。
圖8係根據本說明書之一或多個實例之排程器仲裁器之狀態機之方塊圖。
圖9係根據本說明書之一或多個實例的執行記憶體排程之方法之流程圖。
圖10係根據本說明書之一或多個實例的SoC之方塊圖。
圖11係根據本說明書之一或多個實例的存在於電腦系統中之部件之方塊圖。
圖12係根據本說明書之一或多個實例的用於控制受控系統之原位SoC之方塊圖。
圖13係根據本說明書之一或多個實例的被組配來動態電力管理之共享互連組織之選定元件之方塊圖。
圖14係根據本說明書之一或多個實例的即時電力管理之方法之流程圖。
在以下描述中,闡述眾多特定細節,諸如特定類型之處理器及系統組態、特定硬體結構、特定架構及微架構細節、特定暫存器組態、特定指令類型、特定系統部件、特定量測/高度、特定處理器管線階段及操作等之實例,以便提供對本發明的詳盡理解。然而,熟習此項技術者顯而易知此等具體細節不一定用於實踐本發明。在其他情況下,熟知部件或方法,如具體及替代處理器架構、所描述演算法之具體邏輯電路/代碼、具體韌體代碼、具體互連操作、具體邏輯組態、具體製造技術及材料、具體編譯器實行方案、演算法以代碼來具體表示、具體電力切斷及閘控技術/邏輯及電腦系統之其他具體操作細節未詳細描述以便避免不必要地使本發明模糊。
在一實例中,系統單晶片(SoC)之共享非核心記 憶體組織被組配來提供即時電力管理。SoC可包括電力管理代理器來通知共享組織處理核心及周邊設備將閒置一段時間,並且協商電力節省狀態。非核心組織亦可包括局部電力管理器,其偵測何時未接收存取請求一段時間,諸如在核心自快取記憶體來操作時。然後,共享組織可單方進入電力節省狀態,並且保持在該狀態下直到接收存取請求為止。在電力節省狀態下,將電力及/或時鐘閘控,並且組織之狀態儲存在保留胞元中。在接收新的存取請求時,未閘控控制器可處置預先處理,同時局部電力管理器恢復狀態並且將共享組織電力開啟。
在各種實施例中,共享記憶體組織將多個獨立裝置,在本文中也稱為「代理器」耦接至共享記憶體(例如,經由介入記憶體控制器)。在一些實施例中,共享記憶體組織係包括不同類型之智慧財產(IP)邏輯區塊之單一晶粒半導體裝置之互連結構。共享記憶體組織可被組配來實現遵循時間關鍵等時裝置之服務品質(QoS)要求,同時亦提供非等時裝置,在本文中也稱為「最佳努力」裝置之記憶體帶寬定比。此組織可被稱為「非核心」,指示在組織中提供之互連、暫存器及其他資源並非構成「代理器」之處理核心之一部分。
進行記憶體帶寬之可靠及可預測分配及排程以支援連接至共享記憶體組織之多個裝置及裝置類型。藉由在共同共享記憶體組織(而非記憶體控制器或其他非組織電路)中包括QoS功能,此設計可更容易地在多個半導體裝 置如系統單晶片(SOC)上再用,因為此設計與記憶體技術無關。
因此,實施例在共享記憶體組織中執行資源分配、帶寬分派及時間感知QoS性質以提供可預測及可靠記憶體帶寬及潛時來滿足連接至組織之裝置之要求。
將服務級別種類指派至耦接至共享記憶體組織之每個裝置。在一實施例中,此指派可使用組織之組態暫存器來識別。組織可支援多個服務級別。在一個非限制性實例中,可存在兩個服務級別種類之裝置,包括用於潛時敏感裝置之等時服務級別種類及用於可耐受為其發至記憶體之請求提供服務之較長潛時之裝置的最佳努力服務級別種類。在一些實施例中,潛時敏感裝置包括內容渲染裝置諸如作為非限制實例之音訊或視訊播放器、攝像機裝置等等,而較低優先級裝置包括處理器核心、圖形處理單元等等。
呈請求最終期限形式之時間自等時裝置傳達至組織來向組織指示完成發至記憶體之請求之所需潛時。為了實現同步化,組織向所有等時請求代理器廣播全域計時器。此全域計時器在來自組織之輸出端連續驅動以使得其可用於藉由等時裝置採樣。響應於此時間值,代理器判定完成請求之潛時要求並且將此潛時值添加至全域計時器值以形成請求之最終期限。舉例而言,讀取之潛時可藉由代理器之資料緩衝器中之資料量及緩衝器藉由代理器之排出速率來判定。若代理器每250奈秒(ns)消耗1個快取列之資料 並且在緩衝器中具有8個快取列之資料,則在緩衝器清空之前,新請求之所需最終期限將為8x250ns或2微秒(μs)。基於所傳達之此潛時或最終期限值,組織可基於記憶體之當前電力狀態及在組織中擱置之其他未排程記憶體請求之所需潛時之知識來作出更好的排程決定。此最終期限傳達可改良記憶體帶寬並且亦節省系統電力。
請求最後期限之使用為組織提供來自等時裝置之每個請求之潛時資訊。在組織中程式規劃之組態暫存器為組織提供關於記憶體組態之資訊諸如記憶體退出低電力之所需潛時,例如,自我再新及狀態。組織亦藉由向記憶體控制器發送例如呈狀態通道形式之指示來控制何時記憶體控制器導致所連接記憶體進入及退出自我再新狀態。組織藉由評估所有擱置記憶體請求之潛時要求來判定何時記憶體應進入及退出自我再新。因為組織具有所有擱置記憶體請求之所需潛時及退出自我再新之所需潛時的知識,所以記憶體之電力狀態變遷之更大程度管理可導致額外電力節省。
實施例亦可藉由允許將記憶體請求無序排程來提供記憶體帶寬之效率;然而此可導致一些請求之較長排程潛時。為了解決此問題,組織為每個等時記憶體請求指派優先級,例如,較高或較低優先級。在排程高優先級等時請求時,所允許的無序排程之量小於在排程最佳努力或低優先級等時請求時之可接受之無序排程量。限制高優先級請求之無序排程量確保滿足請求潛時要求。因為請求優 先級由請求之最終期限來判定,所以組織可在將請求排程之後立即判定等時裝置之其他擱置請求之優先級為何。使用最終期限方法,所有擱置請求之優先級僅在全域計時器遞增時變化。
實施例亦可改良複雜QoS記憶體排程演算法在多個SoC實行方案中之可攜性及再用性,因為智慧型記憶體排程邏輯併入組織中,同時技術特定記憶體控制器邏輯可實施於記憶體控制器中。
實施例亦可將抗饑餓演算法併入組織之多個仲裁點中。在一實施例中,此等抗饑餓演算法包括由容許仲裁器使用之加權基於時效之仲裁方法及用於記憶體排程器及請求追蹤器中之可利用排程佇列之最長久者。另外,請求權重可用於在組織中之仲裁點處在不同優先級之間切換並且用於自排程讀取請求切換至寫入請求,此情況與其中來自高優先級等時裝置之請求總是勝利之固定優先級仲裁形成對比。
在一實施例中,共享記憶體組織包括用於排程發送至記憶體控制器之請求的兩個仲裁點。第一仲裁點用於容許來自裝置之請求進入共享記憶體組織並且被稱為「容許仲裁器」。第二仲裁點用於排程來自共享記憶體組織的發送至記憶體控制器之請求並且被稱為「排程器仲裁器」。
連接至共享記憶體組織之每個裝置具有連接於裝置與組織之間的請求介面。請求介面提供關於可用於QoS記憶體排程之請求的資訊。在一實施例中,此資訊包括記 憶體位址、順序ID欄位及運算碼欄位。對於等時裝置,提供被稱為請求最終期限欄位之額外欄位來指示需要完成請求的所需潛時。注意在SoC之一些實行方案中,記憶體組織介面可連接至允許多個裝置共享共同請求介面的其他結構或開關。
在SoC之一實施例中,一或多個請求代理器被指定為「即時」核心,而一或多個請求代理器被指定為「輔助」核心,該等核心基於最佳努力來提供。舉例而言,可提供SoC來控制工業機器、提供生命維持功能、控制自動或半自動車輛(如事故避免系統),或另外執行任務關鍵或安全關鍵功能。在此實例中,SoC包括雙核心處理器,其中第一核心充當即時代理器,並且第二核心充當輔助(最佳努力)代理器。設計考慮因素可能迫切需要即時代理器以保證QoS來執行以使得其在其控制功能方面不會出故障。輔助代理器可執行不需要保證QoS之其他任務,如提供用戶介面、報告功能,或不具有關鍵計時之其他支援功能。
在某些應用中,輔助代理器可提供過量訊務,該訊務暫時「充滿」或另外壓垮非核心組織以使得即時代理器暫時不能以其所需保證QoS來操作。舉例而言,若輔助代理器提供用戶介面,用戶與介面之相互作用可提供壓垮非核心組織以使得即時訊務暫時阻塞之資料流。此可導致即時代理器遇到故障狀況之情況。
為了避免此等阻塞,非核心組織可劃分成兩個或兩個以上單獨虛擬通道。分隔成虛擬通道可藉由將標頭資 訊附加於流經非核心組織之每個資料封包來實現,包括發起或接收資料之代理器,及在一些情況下發起或接收資料之裝置或周邊設備。舉例而言,標頭資訊可將特定封包指定為來源於「核心0」(在此實例中,即時代理器)並且依路由傳遞至DRAM。另一個封包可指定為來源於「核心1」(在此實例中,輔助代理器)並且依路由傳遞至用戶顯示器。在此情況下,本文所述之仲裁器可為第一封包而非第二封包提供搶先優先級。在另一個實例中,可給予自核心0至某個周邊設備之訊務增加之優先級,但是可能並不如此關鍵以致於保證搶先排程。有利地,將訊務劃分成多個虛擬通道能夠根據特定應用之要求及設計參數來實現任何合適優先級方案。
在本說明書之其他實施例中,當在系統閒置時允許系統之某些部分進入低電力狀態,可實現電力節省。在一實施例中,雙向協商可在請求代理器,如處理核心,與共享記憶體組織之間發生。此協商可藉由位於共享記憶體資源與處理核心之間之電力管理代理器(PMA)來促進。
在此雙向通訊中,處理核心可遇到其知道在給定時段內不需要其操作之情況。因為每個核心向組織發送指示其閒置之信號,所以組織保持追蹤該等信號。當組織判定所有處理核心已經閒置,則組織本身可進入低電力狀態。
然而,此技術存在限制。舉例而言,僅在所有核心能夠成功預測其將閒置固定時間時,組織可進入其低電力狀態。此外,將組織電力切斷之某些方法可導致組織失 去狀態資訊,或保持於其將在電力重新開啟並準備運行方面耗費大量時間之狀態下。因此,當組織正在做無用功,但是當電力重新開啟之內務操作不經濟,或當核心不能夠一致地同意進入較低電力狀態時,組織可能需要保持電力開啟較短時段。
有利地,本說明書之系統及方法提供閘控機制,其中當組織保持閒置給定時段,如幾微秒時,組織可藉由閘控來自大多數組織之電力輸入及時鐘輸入來單方進入低電力狀態。此狀況可例如在核心成功地以有用資料填充其快取記憶體,並且對於該等資料操作時發生。在良好設計軟體中,此應為相當常見事件,因為快取記憶體未中及自記憶體讀取在計算時間方面是代價很高的。
根據本說明書,非核心組織可包括很小未閘控區域,該區域包含例如局部電力管理器、未閘控控制器及閘本身。在一個實例中,此組織部分係只要組織正常地起作用就不切斷電力之「始終通電」部分。然而,當未閘控控制器偵測到組織閒置一段較短時間時,其切斷共享記憶體組織之閘控部分之電力及時鐘閘,由此在處理核心經由其相應快取記憶體操作時實現實質性電力節省。此狀況可通常持續幾微秒之時間。
然後,當來自一個核心之記憶體存取請求進入時,未閘控控制器處置依路由傳遞記憶體存取請求之最初運作,同時電力管理器打開閘以允許電力及時鐘信號經由非核心組織傳播。此電力及閘傳播通常以奈秒等級發生, 以使得相對於藉由閘控實現電力節省,與將非核心組織電力重新開啟相關聯之內務操作非常少。
有利地,本說明書亦提供保留胞元,其可提供於非核心組織內以便在閘控電力及時鐘時儲存狀態資訊。在一個實例中,保留胞元可為合適正反器,該等正反器可操作以保持狀態資訊,同時幾乎不消耗電力。因此,在電力及時鐘信號自閘控事件喚醒時,保留胞元用於立即將非核心組織恢復至其先前操作狀態。
在下圖中,圖1-9描述潛在非核心組織架構,包括優先級及QoS方案。圖10及11提供SoC及其應用之示例性方塊圖。圖12提供包括即時代理器及最佳努力代理器之原位SoC之示例性方塊圖。圖13提供共享記憶體組織之選定閘控及未閘控部分之方塊圖。圖14係根據本說明書之一或多個實例的方法之流程圖。
圖1係根據本說明書之一或多個實例之共享記憶體組織之一部分的方塊圖。如圖1示出,共享記憶體組織100耦接於多個代理器115-0-115-3(統稱為代理器115)與記憶體控制器170之間。注意在一些實施例中,存在一個以上記憶體控制器。雖然為了便於說明未展示,但是記憶體控制器可耦接至系統記憶體如動態隨機存取記憶體(DRAM)或其他系統記憶體。
在圖1示出之實施例中,不同類型之代理器耦接至共享記憶體組織100。具體而言,不同代理器包括第一服務級別(COS)代理器類型,即所謂等時代理器及第二服務級 別代理器類型,即所謂最佳努力COS代理器。如所見,代理器115中之每一者可將請求資訊傳達至容許仲裁器120。依次,容許仲裁器120可將對應控制類型資訊傳達回到代理器。另外,等時代理器(即,在圖1之實施例中,代理器115-1及115-3)進一步包括將請求最終期限資訊傳達至容許仲裁器120之額外連結。為此目的,此等代理器可進一步被組配來接收來自亦耦接至容許仲裁器120及排程器仲裁器130之全域計時器150之全域計時資訊。
在圖1之實施例中,容許仲裁器120可被組配來接收來自代理器115之傳入請求(及來自等時代理器之請求最終期限資訊)並且選擇合適請求以容許進入排程器仲裁器130。為了輔助其仲裁過程,容許仲裁器120接收來自進一步耦接至排程器仲裁器130之一組組態暫存器160的組態資訊。另外,請求及相干性追蹤器140可耦接至仲裁器120及130。通常,追蹤器140可包括多個記分板142、資料緩衝器144,及對應位址標籤儲存器145、控制佇列146及其他資源如各種緩衝器、邏輯如資源分配邏輯148等等。在一些實行方案中,標籤陣列及資料緩衝器可定位於不同於追蹤器之其他部位。應當指出的是圖1之方塊圖意欲是非限制性的,並且其他元件可存在於各種實施例中。
共享記憶體組織可包括在來自請求代理器之請求可藉由容許伸裁器授與之前首先分配的某些有限資源。此等資源包括內部資料緩衝器及位址標籤儲存器中之可利用條目。其他有限資源包括記憶體排程器及請求追蹤器記 分板中之可利用條目。在組織之內部資料緩衝器、標籤陣列及記憶體排程器記分板之資源中存在一一對應。在一實施例中,此等資源分配至記憶體之預定區域(例如,快取列寬度如64位元組)。亦向每個現用請求分配其在請求及相干性追蹤器中之自己的條目,但是發至記憶體中之同一區域的多個請求共享資料緩衝器、標籤陣列及記憶體排程器記分板中之同一條目。雖然一個以上請求可分配至同一資料緩衝器、標籤陣列及排程器記分板條目,但是對於請求及相干性追蹤器中之所有未處理讀取請求而言,僅將一個讀取請求排程至記憶體控制器。
所有裝置之請求介面連接至組織之容許仲裁器。等時裝置使用請求匯流排之最終期限欄位來向組織指示完成請求之所需潛時。組織將全域計時器值發送至連接至組織之所有等時裝置。對於將要發送至組織之每個請求,例如在最終期限邏輯中之等時裝置判定需要完成請求之所需潛時並且將該值添加至全域計時器之當前值以便產生請求最終期限。不同方法可由不同等時裝置用於判定請求之所需潛時,但是所有等時裝置使用請求介面之最終期限欄位向組織指示請求潛時。
在一實施例中,容許仲裁器具有兩個優先級。在仲裁器中存在用於緊急等時請求之高優先級路徑。若請求代理器被組配為等時代理器並且請求之最終期限欄位小於在組態暫存器中儲存的指定被稱為「緊急臨界值」的臨界值的值,則請求被認為是緊急的。容許仲裁器亦具有用於 最佳努力請求及不認為緊急之等時請求的低優先級路徑。最終級別之仲裁使用優先級選擇器來進行,該選擇器在高優先級仲裁之勝利者與低優先級仲裁之勝利者之間選擇。
在一實施例中,容許仲裁器最終選擇器具有可使用組態暫存器來選擇的兩個模式。第一模式係固定優先級模式,其中假設至少一個高優先級請求存在於容許仲裁器之輸入端,選擇器選擇高優先級仲裁路徑之勝利者,然後選擇低優先級仲裁路徑之勝利者。最終選擇器之第二模式係加權循環模式,其中在授與N數目之高優先級請求之後,最終選擇器在授與高優先級路徑至授與低優先級路徑之間切換。然後,選擇器授與來自低優先級路徑之勝利者之M數目之低優先級請求,然後切換回到授與來自高優先級路徑之請求。在一實施例中,NM之值可被稱為「授與計數」,並且使用組態暫存器來指定。
圖2係揭示根據本說明書之一或多個實例之容許仲裁器之進一步細節之方塊圖。如圖2示出,仲裁器120接收來自請求代理器之傳入請求。在此說明中,請求代理器115-0及115-1係非等時或最佳努力代理器,而代理器115-2及115-3係等時代理器。注意等時代理器可包括或耦接至用於計算請求之所需潛時的最終期限判定邏輯118。在至少一些代理器係第三者IP區塊之一實施例中,此邏輯可實施於將代理器耦接至共享記憶體組織的封套或介面邏輯中。
在示出之實施例中,容許仲裁器120包括第一基於時效仲裁器122及第二基於時效仲裁器124,其分別對應 於低及高優先級基於時效仲裁器。因此,如所見,將來自所有代理器115之請求提供至第一仲裁器122,而僅將來自等時代理器115-2及115-3之請求提供至第二仲裁器124。為了判定是否來自一個等時代理器之特定請求具有緊急狀態,將一對最終期限核對器邏輯120-1及120-n分別耦接以接收來自等時代理器中之一對應者之請求,以及來自全域計時器150之全域計時資訊。基於藉由代理器提供之最終期限資訊與全域計時資訊之比較,對應請求之緊急狀態之指示可提供至第二仲裁器124。
在操作中,伸裁器122及124操作以選擇來自一組傳入請求之仲裁勝利者。在示出之實施例中,此判定部分地基於來自儲存代理器中之每一者之時效值之時效儲存器126的資訊。來自仲裁器中之每一者之對應勝利者可耦接至優先級仲裁器選擇器125,其基於操作模式來選擇對應請求以提供至排程器仲裁器130(圖1)。為此目的,選擇器125可至少部分地基於優先級儲存器129中之資訊來選擇容許進入排程器仲裁器之請求。應當指出的是圖2之方塊圖意欲是非限制性的,並且其他元件可存在於各種實施例中。
加權基於時效之仲裁細節
藉由容許仲裁器實施之基於時效演算法使得自從上一次藉由伸裁器授與以來等待時間最長之請求代理器被給予最高優先級。一旦代理器接收最高優先級,該代理器之優先級不變化,除非該代理器藉由仲裁器授與。以此方式,可在循環伸裁之某些實施例中發生之饑餓問題可藉 由確保請求代理器之優先級僅可增加優先級直到請求代理器藉由仲裁器授與為止來避免。
容許仲裁器亦允許將代理器權重指派至所有請求代理器。權重用於對於每個請求代理器分配一定百分比之請求帶寬。在一實施例中,每個代理器之權重值經由儲存於代理器權重組態暫存器中之值來指定。在一個非限制性實例中,分配至代理器之請求帶寬之百分比等於代理器權重值除以所有代理器之權重之總和。
加權基於時效之演算法
容許仲裁器加權基於時效之演算法基於自從請求代理器上一次藉由仲裁器授與之時起的相對時效。對於連接至容許仲裁器之每個請求代理器,存在樣例化之一個時效計數器及樣例化之一個權重計數器。
對於連接至容許仲裁器之代理器而言,容許仲裁器中之高優先級及低優先級仲裁路徑共享共同時效及權重計數器。請求代理器之時效及權重暫存器之更新藉由最終選擇器(即優先級仲裁器選擇器125)在選擇最終仲裁勝利者之後來判定。
在一實例中,所有請求代理器之時效暫存器(例如,時效儲存器126)首先響應於接收容許仲裁器之重設輸入來初始化。當重設宣告時,將時效暫存器初始化至起始於0並且終止於值N|1之範圍內之唯一值,其中值N等於連接至容許仲裁器之請求介面之數目。
在任何請求藉由請求代理器宣告之前,代理器權 重計數器(例如,權重儲存器128)自組織之代理器權重組態暫存器中之規劃值初始化。一旦權重計數器初始化,對於授與該代理器之每個請求而言,代理器之計數器遞減一。一旦代理器之權重計數器達到零並且若代理器再次藉由容許仲裁器授與,向計數器重新載入在組態暫存器中規劃的該代理器之權重之值。
在一實施例中,在第一及第二仲裁器122及124中執行之基於時效仲裁方法使用請求位元向量(每個仲裁器具有其自己的向量)來判定仲裁之勝利者。當宣告代理器之請求時,伸裁器使用請求代理器之時效值作為請求之優先級。仲裁器之優先級以及由此位元向量寬度之範圍是0至N|1。基於時效演算法保證所有請求代理器之時效值總是唯一的並且由此每次仲裁總是存在僅一個勝利者。
當請求仲裁勝利者之權重計數器達到零時,仲裁器更新所有代理器之時效暫存器。在一實施例中,所有代理器之時效暫存器根據保證代理器之時效值總是唯一值之以下規則來更新:
規則1:在代理器之時效等於仲裁之勝利者之時效時,該代理器之時效暫存器設定為零以指示最短暫的請求時效或最低優先級。
規則2:在代理器之時效小於仲裁之勝利者時,代理器之時效暫存器遞增1。
規則3:在代理器之時效大於仲裁之勝利者時,代理器之時效暫存器不變化。
圖3係根據本說明書之一或多個實例的在判定仲裁勝利者後更新代理器之時效值之方法之流程圖。在一個實例中,此方法可在勝利者之權重值等於零時執行以更新時效值。如所見,可藉由優先級仲裁器選擇器執行之方法200開始於判定是否代理器之時效值等於勝利者值(決定方塊210)。若如此,則控制進行至方塊215,其中此勝利代理器之時效值可更新至最低優先級,其在一實施例中可等於零。對於方塊215及決定方塊210,控制進行至決定方塊220,其中可判定是否時效值小於勝利者值(即對應於代理器之時效)。若如此,則控制進行至方塊225,其中代理器之時效值可更新,例如,遞增。若沒有一個此等狀況發生,則代理器之時效大於仲裁之勝利者,並且因此此特定代理器之時效值不變化。注意在選擇勝利者的每個仲裁循環結束時,方法200可對於每個代理器來執行。應當指出的是圖3之流程圖意欲是非限制性的,並且其他操作可存在於各種實施例中。
圖4係根據本說明書之一或多個實例之容許仲裁器狀態機之方塊圖。如圖4示出,可存在於圖1之容許仲裁器120內之狀態機250首先自重設宣告進入初始化(INIT)狀態255。自此狀態,控制進行至現用狀態260,其中只要未接收請求,則保持此狀態。當接收請求並且授與代理器具有零之權重時,控制進行至更新時效狀態270,其中更新時效儲存並且仲裁勝利者之權重計數器重新載入至例如自組態暫存器獲得之預定值。然後,控制進行至現用狀態260、 遞減代理器權重狀態280,或保持於更新時效狀態270中之一者,取決於是否存在額外請求以及授與代理器之權重之值。
同樣地在遞減代理器權重狀態280下,勝利者仲裁權重計數器遞減。但是在此處不執行權重計數器重新載入。應當指出的是圖4之狀態機方塊圖意欲是非限制性的,並且其他狀態及操作可存在於各種實施例中。
圖4之狀態機之狀態及描述包括以下:
圖5係根據本說明書之一或多個實例的在容許仲裁器中執行第一級仲裁之方法300之流程圖。如圖5示出,方法300可在容許仲裁器內出於在傳入記憶體請求之間執行仲裁,以及基於仲裁來更新各種時效及權重值之目的來執行。如圖5所見,方法300可開始於接收來自耦接至組織之裝置之記憶體請求(方塊310)。更具體而言,為了參照來 自潛時敏感裝置之基於最終期限之請求來闡明操作,在一個實例中,可假設此記憶體請求包括或與最終期限值關聯並且由此自等時或潛時敏感裝置提供。作為一個此類實例,此潛時敏感裝置係媒體播放器。如所見,控制進行至決定方塊315,其中可判定是否最終期限值大於潛時臨界值。在一實施例中,此潛時臨界值係自接收請求之時直到其完成為止的最小潛時(例如,藉由將請求資料提供回到請求裝置,提供寫入請求之寫入完成)。注意在一實施例中,最終期限值係請求裝置為了處置記憶體請求可耐受之最大潛時。
若判定最終期限值大於潛時臨界值,則控制進行至方塊320b,其中將記憶體請求進送至低優先級仲裁器。否則控制進行至方塊320a,其中將記憶體請求進送至高優先級仲裁器。
注意存在平行路徑以使得在方塊325(方塊325a及325b)處,在基於與裝置之時效值關聯之位元向量之對應仲裁器中執行仲裁,該等裝置將請求提供至對應伸裁器。隨後在方塊330(方塊330a及330b)處,將勝利記憶體請求進送至最終仲裁器。在方塊335處,執行最終仲裁來選擇勝利者記憶體請求。
取決於此最終仲裁器之組態模式,勝利者請求可僅選自高優先級仲裁器,或可發生高優先級與低優先級路徑之間之權衡。因此,在此時點,將勝利記憶體請求進送至記憶體排程器記分板,其中其可儲存於條目中以便由此 使得記憶體排程器仲裁器中之仲裁能夠考慮此記憶體請求。
響應於勝利者藉由最終仲裁器之選擇,可進一步執行各種更新操作。具體而言,在決定方塊340處,可判定是否勝利者代理器之權重值等於零。若如此,控制進行至方塊345,其中此權重值可更新至其組配值,例如,儲存於共享記憶體組織之組態暫存器中之值。控制隨後進行至方塊350,其中所有代理器之時效值可更新(方塊350)。為此目的,所有未勝利代理器可使其時效值遞增,而勝利代理器可使其時效值設定至最低優先級值,例如,零。若替代地在決定方塊340處,判定勝利者代理器之權重值不是零,則控制進行至方塊355,其中勝利者代理器之權重值遞減。應當指出的是圖5之流程圖意欲是非限制性的,並且其他操作可存在於各種實施例中。
共享記憶體組織共享資源分配
記憶體組織包括允許將組織內之共享資源公平分配之邏輯,例如,圖1之資源分配邏輯148。在一實施例中,此等共享資源係組織之內部資料緩衝器、位址標籤儲存器及請求追蹤器記分板。由於沒有用於任何請求代理器之專用資源,機制可限制在組織中針對代理器中之每一者擱置的未處理請求之數目,同時亦允許保留代理器之條目,例如,藉由保留此等共享資源中之虛擬條目。組織允許規定代理器極限以防止任何一個請求代理器用完組織之所有可利用共享資源。
記憶體排程演算法之一部分涉及將讀取至寫入轉變時間對於記憶體技術之性能影響減少到最低限度。為了將記憶體排程器在排程讀取請求至排程寫入請求之間切換之次數減少到最低限度,清除池用於將寫入請求排隊。清除池允許靶向記憶體之寫入請求在記憶體組織中累積直到接收足夠寫入請求以允許組織之記憶體排程器將寫入請求作為連續請求之猝發發送至記憶體控制器為止。為了防止組織中之所有可利用資源被清除池用完,可指定清除極限。當指定時,清除極限導致組織在容許仲裁器處阻止來自所有代理器之新寫入請求直到清除池中之條目之數目小於清除池中規劃之值為止。
寫入請求之記憶體組織清除池
當自請求代理器接收寫入請求時,組織將來自請求代理器之寫入資料傳遞至內部資料緩衝器。一旦將新資料寫入組織之內部資料緩衝器並且自代理器之觀點而言請求引退時,緩衝器條目被認為處於「清除池」中。對於相干記憶體訊務,組織可接收來自請求代理器之監聽請求。監聽請求可為發至記憶體之讀取或寫入請求。當組織接收來自請求代理器之監聽讀取或寫入請求時,其將監聽請求發送至耦接至組織之所有高速存取代理器。高速存取代理器對於命中其快取記憶體之監聽請求作出響應並且對於藉由高速存取代理器改變之快取列,返回寫回(WB)資料。然後,將WB資料寫入組織之內部資料緩衝器中,然後被認為包含於靶向記憶體之寫入請求之清除池中。當清除池中之 條目之數目達到清除極限之規劃值時,例如藉由解碼請求運算碼欄位來判定之新寫入請求在容許仲裁器處加以阻止。
記憶體組織保留及極限
記憶體組織允許對於任何代理器使用代理器保留組態暫存器來指定保留。使用此等組態暫存器,用戶可指定記憶體組織中的針對每個代理器來保留之條目之數目。代理器之保留條目係分配至代理器之首批條目及對於代理器引退之末批條目。為了判定是否代理器之保留條目係分配或引退條目,每個代理器具有請求計數器,該計數器相對於在組態暫存器中指定之值來比較。若請求計數器中之值小於或等於組態暫存器中之值,則使用代理器之保留條目。
當保留條目針對請求代理器來分配或釋放時,用於為代理器提供保留條目之機制在整個臨界值極限內變化。最初,所有代理器之完整臨界值藉由將所有代理器之保留條目之總數(例如,藉由組態暫存器指定)自記分板中之條目之總數減去來計算。當保留條目分配至代理器時,累積器用於基於已經使用的保留條目之總數來調整完整臨界值。當記憶體組織中之擱置請求之總數達到此調整完整臨界值時,將已經使用其保留條目或未指定保留條目之代理器加以阻止。未使用其保留條目之代理器不被容許仲裁器阻止直到其已經使用所有其保留條目並且擱置請求之總數達到調整完整臨界值極限為止。
代理器極限亦可在記憶體組織之組態暫存器中加以指定。在一實施例中,此等代理器極限可藉由將代理器之請求極限設定至零來停用。當代理器極限停用時,可向任何代理器分配請求追蹤器之所有現有條目。為了防止單一代理器使用所有請求追蹤器條目,可指定代理器之請求極限。當代理器之請求計數器達到指定的代理器之請求極限時,停用發至容許仲裁器之針對該代理器之請求輸入。當請求追蹤器引退代理器之請求並且代理器之請求計數器變得小於代理器之請求極限時,停用發至容許仲裁器之針對該代理器之請求輸入。
圖6係根據本說明書之一或多個實例的資源分配邏輯之一部分之方塊圖。如圖6示出,邏輯360可用於控制在所有代理器之間共享之各種資源之分配。如所見,加法器368基於自組態儲存器365接收之代理器保留值來判定保留條目之總數。自此總保留條目值,在減法器370處減去標籤條目之數目。所得值經由正反器372提供至加法器375,該加法器將此值與自正反器374接收的所使用保留條目之數目結合,該正反器基於遞增及遞減保留計數值來交替地遞增及遞減,以下進一步描述。
因此,藉由加法器375產生之和對應於提供至比較器382之一個輸入端的調整完整臨界值,該比較器進一步接收來自正反器376之分配標籤條目之數目。若判定調整完整臨界值小於或等於分配標籤條目之此數目,則產生完整旗標及用於掩蔽不具有保留條目或已經使用其保留條目之 代理器之請求。
如進一步發現,另一個比較器380被組配來接收給定請求者之保留組態值及該請求者之請求計數值(來自正反器378)。因此,比較器產生關於是否請求者具有任何未佔用保留條目之指示,其作為輸入提供至一對及閘384及385,該等閘進一步接收通道授與及引退該通道之條目之指示。因此,此等及閘由此分別產生對應請求者之遞增及遞減值。對於其他請求者執行類似邏輯及操作,並且所有遞增及遞減保留值提供至對應或閘386及387,其分別產生遞增保留計數值及遞減保留計數值。
最後,請求者之請求計數值與該請求者之組配極限值一起提供至另一個比較器390以由此判定是否此請求者已經達到其極限。若如此,此極限之指示用於掩蔽來自此代理器之請求免於進一步仲裁。應當指出的是圖6之方塊圖意欲是非限制性的,並且其他操作可存在於各種實施例中。
共享記憶體組織排程器仲裁細節
實施例可併入多個排程演算法以增強在支援不同記憶體技術之多個SoC中之再用。組織之記憶體排程器邏輯含有進階QoS排程演算法,並且亦優化以將通常存在於大多數記憶體技術中之性能瓶頸減少到最低限度。使用例如DRAM記憶體發生之典型性能瓶頸包括進入及離開低電力記憶體狀態、讀取-寫入轉變時間、發至同一DRAM器組但是發至不同記憶體列之連續記憶體存取,及發至不同 DRAM記憶體秩之連續記憶體存取。藉由在共享記憶體結構排程邏輯中包括複雜無序排程演算法,組織可被調適用於許多不同SoC,該調適係藉由將簡化特定技術約束解答器連接至組織以支援其對於記憶體技術或組態之獨特要求來實現的。
除了改善記憶體排程邏輯之可攜性以外,實施例亦提供記憶體請求潛時之可預測性,因為進階無序排程演算法與QoS排程邏輯之組合導致最大請求潛時之改良可預測性,因為記憶體控制器具有將記憶體請求重新排序之少得多的靈活性。
一旦請求藉由容許仲裁器授與,其進入排程器記分板之佇列。排程器記分板儲存關於請求之資訊,其用於將請求進送至記憶體控制器以便執行發至記憶體之讀取或寫入。在一實施例中,資訊包括請求位址、請求長度、指令類型(讀取或寫入)、服務級別種類、記憶體通道、記憶體器組、記憶體秩,及頁面命中/未中狀態。
記憶體排程器可利用佇列中之最長久者
實施例提供基於發送至記憶體控制器之請求之歷史的無序頁面感知排程,但是組織不具有記憶體器組之真實狀態之直接知識。更具體而言,組織之記憶體排程器使用排程器記分板作為發送至記憶體之請求之歷史緩衝器。因為排程器記分板用於反映請求之歷史,其旨在將請求之狀態資訊盡可能長時間地保持在記分板中。記憶體排程器使用被稱為可利用佇列中之最長久者之結構來判定可 用於再分配之最長久記分板條目。
可利用佇列中之最長久者亦藉由記憶體排程器用於避免可由於發至記憶體之請求之無序排程而出現的饑餓問題。組織之記憶體排程器使用可利用佇列中之最長久者來判定同一服務級別種類及類型之多少請求,不論讀取或寫入請求,已經繞過發至記憶體之最長久擱置請求。一旦繞過最長久請求之請求之數目達到預程式化極限(例如,藉由軟體設定),組織之記憶體排程器停用請求之無序排程並且授與最長久擱置請求。
如上所述,排程器使用可利用佇列中之最長久者來保持追蹤其記分板中之所有請求之相對時效。當靶向新記憶體位址之請求藉由容許仲裁器授與時,排程器記分板之索引指標進入那時被視為最新請求之可利用佇列中之最長久者之尾部條目之佇列中。當所有擱置請求完成發至/來自請求代理器及發至/來自記憶體控制器之資料之轉移,記分板條目可用於再分配並且可再分配用於藉由容許仲裁器授與之新請求。由於無序排程,可利用佇列中之最長久者中之最長久條目可能不一定可用於再分配。
為了選擇將要再分配至新請求之記分板條目,排程器偵測是否發至記分板條目之所有未處理請求已經完成。在一實施例中,排程器使用具有等於記分板條目之數目之長度的請求位元向量來指示哪些條目可用於再分配。請求位元向量中之設定為1之位元指示對應於該位元位置之條目可用於再分配。然後,將請求位元向量發送至可利 用佇列中之最長久者。可利用佇列中之最長久者使用儲存於佇列中之索引來選擇對應於佇列之該條目之請求之請求向量中之位元。佇列之每個條目與請求向量中之唯一位元關聯並且自佇列中之最長久條目開始來執行「查找第一個」功能以判定將要再分配之最長久可利用請求。在判定將要再分配之最長久可利用條目之後,該條目之記分板索引自可利用佇列中之最長久者輸出。
圖7係根據本說明書之一或多個實例的記分板索引產生邏輯之方塊圖。如圖7示出,邏輯400包括多個正反器410-0-410-n,其以串列組態耦接以儲存對應記分板索引。如所見,正反器410被組配來接收對應於排程器之記分板中之索引指標的記分板索引,其亦係標籤陣列及資料緩衝器之索引。正反器410可被以自最新(即正反器410-0)至最長久(即正反器410-n)之順序來組配。在非限制性實例中,每個正反器可為D型正反器。在其他實施例中,可使用任何合適儲存元件。
如所見,輸出每個正反器410耦接至對應多個多工器420-0-420-n中之一者,該等多工器中之每一者進一步被組配來接收記分板請求向量之位元。因此,此位元向量例如經由設定位元來提供指示以指示對應記分板條目可用於再分配。使用來自多工器420之輸出,授與信號可直接自比較器輸出(如自比較器420-n)或經由邏輯閘430-0-430-n之一對應者(其在示出之實施例中被組配為及閘,該等閘具有自對應多工器420接收之第一輸入及對應於對應或閘 425-0-425-(n-2)之反相輸出之第二輸入)來產生。以此方式,每次僅單獨一個授與信號可現用。
如進一步在圖7中發現,授與輸出信號可耦接至多個及閘435-0-435-n之一對應者,亦被組配來接收傳入索引信號。轉而,來自及閘435之輸出可耦接至或閘440以由此輸出對應於最長久可利用條目之記分板索引以使得執行「獨熱」多工器功能以提供授與請求之記分板索引之「獨熱」多工法。應當指出的是圖7之方塊圖意欲是非限制性的,並且其他元件可存在於各種實施例中。
共享記憶體組織記憶體排程細節
在一實例中,組織記憶體排程器含有三個狀態機,其在一起運作以排程發送至記憶體控制器之請求。
圖8係根據本說明書之一或多個實例之排程器仲裁器之狀態機之方塊圖。如圖8示出,可在硬體、軟體及/或韌體如圖1之排程器仲裁器130中執行的狀態機500可開始於在重設系統後進入初始化狀態INIT。控制隨後進行至自我再新狀態機510,其包括「進入」自我再新狀態512、「請求」自我再新狀態513及「退出」自我再新狀態516。
如圖8所見,自退出自我再新狀態516,控制進行至「讀取/寫入」授與狀態機520,其轉而包括「授與讀取請求」狀態522及「授與寫入請求」狀態524。自此等狀態,控制轉而進行至「讀取」狀態機530,其包括多個狀態,即「繞過授與」狀態532、「高優先級讀取請求」授與狀態534、「最佳努力」授與讀取請求狀態536及「低優先級」等時授 與讀取請求狀態538。應當指出的是圖8之方塊圖意欲是非限制性的,並且其他元件及改進可存在於各種實施例中。
自我再新狀態機
實施例可控制何時允許記憶體進入及退出低電力記憶體狀態,亦稱為自我再新狀態。自我再新狀態機負責控制何時向記憶體控制器發送指示以進入或退出自我再新。對於最佳努力讀取請求,自我再新狀態機立即變遷至退出自我再新狀態。對於等時讀取請求,記憶體排程器檢查請求最終期限以判定是否其將要退出自我再新以便滿足請求之所需讀取潛時。為了判定為了滿足等時讀取要求是否需要離開自我再新,記憶體排程器將請求之最終期限自全域計時器之當前值減去。減法之結果相對於組織中之組態暫存器來檢查,該暫存器經程式規劃以反映記憶體控制器退出自我再新及組織將資料返回至請求代理器所需要的最壞情況潛時。
對於寫入請求,組織計數清除池中之壞條目之數目並且將結果相對於被稱為清除高水位標誌之可程式臨界值來檢查。若壞條目之數目超過清除高水位標誌之值,則自我再新狀態機將控制進行至退出自我再新狀態。另外,組織檢查請求藉由容許仲裁器阻止的同一標籤位址之讀取/寫入衝突。當組織判定請求藉由位址衝突、代理器極限阻止時或若請求追蹤器或記憶體排程器記分板已滿,控制自自我再新狀態機進行至退出自我再新狀態。在一實施例中,組織亦含有可規劃以停用進入自我再新之組態暫存器。
當記憶體排程器向記憶體控制器發送指示來退出自我再新時,請求可開始發送至記憶體控制器。記憶體排程器繼續向記憶體控制器發送指示以在其主動地向記憶體控制器發送記憶體請求時保持離開自我再新。當記憶體排程器完成將所有讀取請求發送至記憶體控制器並且清除池中之寫入請求之數目低於非正式高水位標誌極限時,記憶體排程器變遷至請求自我再新狀態。
在請求自我再新狀態下,若沒有新請求藉由容許仲裁器授與,則在滿足被稱為「進入自我再新延遲」之可規劃延遲值之後,狀態機變遷至「進入自我再新」狀態。在一實施例中,此延遲在組織中之組態暫存器中加以規劃。若新請求藉由容許仲裁器授與,則自我再新狀態機可在某些條件下變遷至「退出自我再新」狀態。若接收新的最佳努力讀取請求或若接收導致清除池中之條目之數目超過在清除高水位標誌組態暫存器中規劃之數目的寫入請求,則自我再新狀態機自請求自我再新狀態變遷回到退出自我再新狀態。若在狀態機處於請求自我再新狀態中時接收等時讀取請求,將請求之最終期限值相對於被稱為「進入自我再新」臨界值之規劃值來檢查。若最終期限潛時大於進入自我再新臨界值,則狀態機繼續在請求自我再新狀態下,若請求之最終期限潛時低於進入自我再新臨界值,則狀態機變遷至退出自我再新狀態。
自我再新狀態機驅動發至記憶體控制器之狀態以保持離開自我再新直到狀態機變遷至進入自我再新狀態 為止。一旦在進入自我再新狀態下,狀態機向記憶體控制器發送指示以進入自我再新。
下表2係根據本說明書之實施例之自我再新狀態機之描述。
讀取/寫入授與狀態機
在一實施例中,記憶體排程器使用可組配臨界值來指定何時開始及停止將寫入請求猝發轉移至記憶體控制器。記憶體排程器可執行發至記憶體之寫入資料之不同類 型之傳遞,例如,高優先級傳遞及低優先級傳遞,在本文中亦分別被稱為發至記憶體之寫入請求之高優先級清除及寫入請求之非正式清除。當清除池中之條目之數目達到或超過臨界值(清除高水位標誌),記憶體排程器開始排程發至記憶體之高優先級寫入清除並且開始將寫入請求發送至記憶體控制器。記憶體排程器繼續使用高優先級清除機制來排程寫入請求直到清除池中之條目之數目達到或小於臨界值(清除低水位標誌)為止。
非正式清除亦可藉由組織記憶體排程器執行。當記憶體排程器完成將所有讀取請求發送至記憶體控制器並且清除池中之條目之數目超過臨界值(非正式清除極限)時,觸發非正式清除。在一實施例中,出於性能原因,非正式清除極限可通常設定為低於高水位標誌,但是大於或等於低水位標誌。在一些情況下,此非正式清除極限可設定為0以清除發至記憶體之所有寫入資料。一旦最後一個讀取請求發送至記憶體控制器,若清除池中之條目之數目高於非正式清除極限,則被稱為非正式清除計時器之計數器開始遞增每一個時鐘週期。若沒有發至記憶體之新讀取請求藉由組織接收並且非正式清除計時器達到藉由非正式清除延遲指定之值,其為儲存於組態暫存器中之臨界值,則記憶體排程器開始將寫入請求發送至記憶體控制器。此非正式清除繼續直到為止清除池中之條目之數目小於非正式清除極限或直到新讀取請求藉由組織接收為止。
讀取/寫入授與狀態機負責自授與讀取請求切換 至授與寫入請求。在一實施例中,記憶體排程器可組配來允許寫入請求具有超過讀取請求之優先級或在讀取請求與寫入請求之間切換時使用權重(以便在系統充滿寫入請求時防止讀取饑餓)。當啟用權重時,記憶體組織使用組態暫存器來獨立地指定讀取及寫入權重。
下表3係根據本說明書之實施例之讀取/寫入授與狀態機之描述。
讀取狀態機
讀取狀態機負責在高優先級等時讀取請求、最佳努力讀取請求與低優先級等時讀取請求之間切換。讀取狀態機可被組配來在多種模式之一者下操作。在一實施例 中,提供兩種此類模式。第一模式係固定優先級模式,其中讀取狀態機給予高優先級等時讀取最高優先級,最佳努力讀取請求中優先級,並且低優先級等時讀取請求接收最低優先級。第二模式係使得在高優先級等時讀取與最佳努力讀取請求之間切換時能夠使用權重。在此模式下,僅在不再有任何高優先級等時或最佳努力讀取請求時,才授與低優先級等時請求。
表4係根據本說明書之讀取狀態機之描述。
排程器代理器權重
記憶體排程器使用代理器權重來將記憶體帶寬在相同服務級別種類內之代理器之間定比。在一實施例中,組態暫存器指定每個請求代理器之權重值,並且為每個代理器提供權重計數器。代理器權重組態暫存器在容許仲裁器與記憶體排程器之間係共同的。
當在記憶體排程器中對於連接至組織之任何代理器沒有擱置請求時,向代理器權重計數器載入在代理器權重組態暫存器中指定之值。當請求藉由容許仲裁器授與並且進入記憶體排程器記分板之佇列中,代理器ID欄位與請求資訊一起儲存於記憶體排程器記分板中。當記憶體排程器授與其記分板中之請求時,代理器ID欄位用於判定請求之來源並且該代理器之權重計數器遞減一。一旦代理器之權重計數器達到零,將該代理器之剩餘請求掩蔽並且不再參與排程器仲裁。當代理器由於其權重計數器達到零而被掩蔽免於仲裁時,記憶體排程器繼續排程來自其餘代理器之請求。一旦所有代理器之權重計數器達到零或若代理器之權重計數器非零但是沒有該代理器之其餘請求,則將所有代理器權重計數器重新載入來自代理器權重組態暫存器之值。
圖9係根據本說明書之一或多個實例的執行記憶體排程之方法之方塊圖。如圖9示出,方法600可藉由共享記憶體組織之排程器仲裁器執行。如所見,方法600可開始於選擇來自記憶體排程器記分板之記憶體請求以便傳遞至 記憶體控制器(方塊610)。在判定合適條目中可考慮到各種考慮因素,包括記憶體之狀態、各種請求之狀態、擱置請求之位址位置之間之關係等等。隨後在方塊620處,更新選定代理器之權重值。在一實施例中,執行權重值之遞減。注意雖然代理器之權重值之初始值與自亦藉由容許仲裁器使用之組態暫存器獲得者相同,但是應理解為每個仲裁器提供不同權重計數器以實現此等權重值之獨立控制。
仍然參看圖9,隨後在決定方塊630處,可判定是否選定代理器之權重值等於零。注意在一個非限制性實例中,此判定可在零係最低優先級值之一實施例中。若判定權重值係零,控制進行至方塊640,其中將此選定代理器掩蔽免於記憶體排程器中之進一步仲裁。
自決定方塊630及640,控制進行至決定方塊650,其中可判定是否所有代理器之權重值等於零。若如此,控制進行至方塊660,其中所有代理器之權重值可更新至其被組配來值,例如,自組織之組態暫存器獲得。否則,控制自決定方塊650進行至決定方塊670以判定是否在記憶體排程器中存在具有非零權重值之代理器之任何剩餘請求。若如此,該等請求可例如經由方法600之另一次重複來操作。否則若沒有額外請求保留,則控制進行至方塊660,其中權重值可如描述來更新。應當指出的是圖9之流程圖意欲是非限制性的,並且其他元件及改進可存在於各種實施例中。
下表5基於如下三個代理器之初始權重值,提供 多個時鐘週期之記憶體排程之示例性操作: 表5
無序頁面感知排程
記憶體排程器將發送至記憶體控制器之請求重新排序並且旨在為獲得最大可能記憶體帶寬來優化請求串流。記憶體排程器含有組態暫存器,其經規劃以為排程器提供關於其連接之記憶體控制器之資訊。在一實施例中,此等組態暫存器包括關於哪些位址位元用於記憶體通道、器組、秩及列位址之資訊。使用在組態暫存器中規劃之記憶體組態資訊,記憶體排程器判定排程器記分板中之每個請求之器組、秩、列及通道。記憶體排程器記分板亦含有每個請求之頁面命中狀態位元,其用於優化發送至記憶體 控制器之請求以使得在將請求發送至不同頁面之前將發至記憶體中之相同頁面之請求發送至記憶體控制器。
在初始化之後並且在任何請求發送至記憶體控制器之前,記憶體排程器清除其記分板中之所有頁面命中狀態位元。當請求發送至記憶體控制器時,記憶體排程器更新記分板中之頁面命中狀態位元以指示是否其他請求將要發至記憶體中之相同頁面或不同頁面。雖然排程器未感知給定記憶體器組中之頁面之實際狀態,但是為了獲得最佳記憶體帶寬,此等頁面命中狀態位元可用作關於哪些請求係發送至記憶體控制器之最佳候選者的提示。
當請求發送至記憶體控制器時,記憶體排程器將記分板中擱置之所有其他請求之通道、秩及器組資訊比較。若記分板條目之通道、秩及器組資訊匹配發送至記憶體控制器之請求,則條目之列位址相對於發送至記憶體控制器之請求之列位址來比較。若記分板條目之列位址匹配請求,則頁面命中狀態位元設定為1;若列位址不匹配請求,則頁面命中狀態位元設定為0,指示頁面未中。對於通道、秩或器組位元不同於發送至記憶體控制器之請求的記分板條目,不發生頁面命中狀態之更新。
當新請求藉由容許仲裁器授與並且進入排程器記分板之佇列時,列位址資訊相對於當前在記分板中之所有條目來比較。若新請求之列位址匹配排程器記分板中之一或多個條目並且設定任何匹配條目之頁面命中狀態位元,則亦設定新請求之頁面命中狀態。若列位址不匹配記 分板中之任何條目或其匹配之所有條目使頁面命中狀態設定為零,則新請求之頁面命中狀態亦設定為零。
使用儲存於排程器記分板中之頁面命中及秩狀態資訊,記憶體排程器基於優先級編碼排程方案來將發送至記憶體控制器之請求重新排序,該方案經判定以針對大多數基於DRAM之記憶體技術來提供最佳帶寬。記憶體排程器在授與具有較低優先級之請求之前授與較高優先級請求。
下表6示出根據本說明書之一個實施例的藉由記憶體排程器使用之不同優先級。
記憶體排程器頁面感知排程優先級
基於時效之記憶體排程及饑餓預防
為了防止由於無序頁面感知排程演算法而導致的請求饑餓,時效之概念用於至少部分地將請求排程。對於每個服務級別(COS)種類,記憶體排程器含有組態暫存器來指定無序(OOO)排程極限。為了對於等時COS種類提供較短最大讀取潛時,OOO排程極限通常設定為比最佳努力COS種類之OOO排程極限更小之值。對於最佳努力及等時COS類別,記憶體排程器為其記分板中之所有擱置請求產生請求命中向量。此等請求位元向量發送至判定仍然擱置之最長久請求的可利用佇列中之最長久者。可利用佇列中 之最長久者以設定為1之位元來輸出獨熱編碼位元向量以指示最長久請求。當記憶體排程器基於其頁面感知排程演算法來OOO授與請求時,記憶體排程器計數授與多少個並非每個COS種類之最長久擱置請求的請求。一旦計數器達到COS種類之OOO排程極限,該極限可藉由對於COS種類之最壞情況可接受潛時進行之性能分析來判定,將頁面感知排程邏輯停用並且COS種類之最長久請求藉由記憶體排程器授與。在任何時候授與COS種類之最長久請求,該COS種類之計數器重設為零。為了提供COS種類之最低可能潛時,OOO排程極限可規劃為零,從而基本上停用該COS種類之頁面感知排程邏輯。當COS種類之OOO排程極限設定為零時,發至記憶體之請求可使用藉由可利用佇列中之最長久者來判定之請求時效來排程。
最佳努力最大潛時饑餓預防
對於最佳努力讀取請求,組織利用排程器記分板中之最終期限儲存資訊來儲存一值,該值用於指定排程最佳努力請求之最大潛時值。記分板係條目池並且儲存於記分板中之請求可為藉由亦在記分板中針對每個請求儲存的請求服務級別種類來判定之最佳努力或等時請求。在記分板中之請求係最佳努力讀取請求的情況下,最大允許潛時例如儲存於組態暫存器中之預程式化值用於將請求排程。當請求進入記分板之佇列並且係最佳努力讀取請求時,最大潛時值添加至全域計時器之當前值。一旦全域計時器達到對於最佳努力請求之最大潛時所儲存之值,則對於該請 求忽略頁面感知排程並且導致當該請求係例如藉由可利用佇列中之最長久者所判定之擱置最長久請求時,該請求經排程。
請求追蹤器寫入優先級及權重
請求追蹤器負責將資料自請求代理器傳遞至組織之內部記憶體緩衝器。藉由共享記憶體組織使用之寫入協定導致所有寫入資料以請求順序自請求代理器轉移至組織中之內部記憶體緩衝器。在一實施例中,請求追蹤器每個代理器使用單獨連結列表來保持寫入請求之排序。請求追蹤器可在將資料自請求代理器轉移至內部資料緩衝器之前執行寫入請求之相干性檢查。
對於寫入請求,請求追蹤器可被組配來支援一或多個優先級。當請求藉由容許仲裁器授與時,請求之最終期限資訊儲存於具有對應於請求追蹤器中之條目之數目之長度的陣列中。組織使用例如儲存於組態暫存器中之臨界值來指定何時請求最終期限值被視為高優先級。請求之每個最終期限值相對於在組態暫存器中規劃之臨界值來比較。當最終期限潛時小於組態暫存器中之值,在追蹤器之記分板條目中針對該請求設定位元,其指示該請求係高優先級請求。
當啟用兩個優先級操作時,若代理器之寫入請求到達連結列表之頭部並且對於請求設定高優先級位元,則寫入請求被視為高優先級。若任何代理器連結列表頭部之任何寫入請求指示寫入請求係高優先級請求,則其他代理 器之其他連結列表之頭部之所有低優先級寫入請求在輸入至寫入請求仲裁器之前經掩蔽。若相同優先級之多個請求存在於代理器連結列表之頭部,則執行仲裁以選擇哪一個代理器選用於傳遞寫入資料。
請求追蹤器寫入請求仲裁器
寫入請求仲裁器使用基於加權優先級之公平仲裁器來選擇傳遞寫入資料之代理器。寫入請求仲裁器之權重在請求追蹤器中之組態暫存器中經規劃。寫入伸裁器在重設時為每個代理器指派唯一的優先級。在每個週期,仲裁器僅考慮具有準備傳遞之資料之請求候選者,並且授與具有最高優先級之請求者。當授與時,請求候選者之權重遞減一。若授與候選者已經具有零之權重,則仲裁器亦如下更新請求候選者優先級:授與候選者之優先級設定為最低優先級(例如,零):具有低於授與候選者之優先級的所有候選者遞增其優先級,並且具有高於授與候選者之優先級的所有候選者保持其優先級不改變。
請求追蹤器讀取資料返回
請求代理器支援有序資料返回或無序資料返回。為了支援無序資料返回,使用順序ID欄位。順序ID自代理器與每個請求一起發送並且儲存於請求追蹤器記分板中。來自同一代理器的具有同一順序ID之請求以請求順序來返回。來自同一代理器的具有不同順序ID之請求之資料不需要以請求順序來返回。在一實施例中,請求追蹤器使用連結列表來確保讀取資料在返回至請求代理器時正確地 排序。
在請求藉由容許仲裁器授與之前,選擇內部資料緩衝器的將要寫入資料之條目。當請求藉由容許仲裁器授與時,將包括內部資料緩衝器中之索引之請求資訊進送至請求追蹤器。當資料自記憶體控制器返回時,記憶體排程器將讀取完成指示進送至請求追蹤器,其包括正在寫入資料的內部資料緩衝器中之索引欄位及哪些記憶體位址塊已經完成記憶體讀取之指示。當請求追蹤器接收讀取完成時,其將索引欄位與儲存於請求追蹤器記分板中之所有請求之索引欄位比較。若記分板條目之索引欄位匹配請求之讀取完成並且請求之所有塊位元針對讀取完成來設定,則在請求追蹤器記分板中設定指示讀取請求已經完成之位元。
若讀取請求達到連結列表之頭部並且設定請求追蹤器中之讀取完成狀態位元並且所有相干性檢查請求已經完成,則請求可用於將讀取資料返回至代理器。與寫入請求類似,請求追蹤器使用記分板條目之請求最終期限資訊來指示請求優先級。在一實施例中,請求追蹤器對於具有準備返回請求代理器之資料之記分板條目產生兩個請求位元向量。一個位元向量用於低優先級讀取請求並且另一個位元向量用於高優先級讀取請求。將請求位元向量輸入至請求追蹤器可利用佇列中之最長久者。可利用佇列中之最長久者對於兩種請求命中向量判定哪一個請求係最長久者。請求追蹤器具有組態模式,其在啟用時導致返回來自 藉由可利用佇列中之最長久者選擇之最長久高優先級請求之資料,然後返回任何低優先級請求之資料。當高優先級資料返回之支援未啟用時,請求追蹤器將準備返回讀取資料之所有記分板條目作為具有相同優先級來處理。在此模式下,僅低優先級位元向量用作可利用佇列中之最長久者之輸入,該可利用佇列中之最長久者轉而判定記分板中之最長久讀取請求。判定為最長久之記分板條目之讀取資料然後返回至請求代理器。
實施例可用於許多不同SoC或將各種IP整合至單一晶粒上以經由記憶體組織將此等IP連接至記憶體的其他半導體裝置中。更進一步,根據本說明書之實施例之記憶體組織可用於提供滿足至少一些此等IP之等時要求的Q0S水準。
圖10係根據本說明書之一或多個實例的SoC之方塊圖。如圖10示出,SoC 700係包括多個IP區塊與如上所述共享記憶體仲裁器之單一晶粒半導體裝置。在圖10之實施例中,提供多個核心710-1-710-n,其中之每一者可獨立地執行指令。在一實施例中,所有此等核心係單一設計如有序核心設計,例如Intel ArchitectureTM諸如基於CoreTM之設計。在其他實施例中,核心可為無序處理器如Intel ArchitectureTM(IA)32核心諸如基於Intel CoreTM之設計。在其他實施例中,可提供異類核心之混合物。另外,可分別提供多個圖形引擎,即獨立圖形單元720-0-720-n以獨立地執行圖形操作。如所見,多個核心耦接至共享快取記憶體 715如2級(L2)快取記憶體並且類似地,圖形引擎耦接至另一個共享快取記憶體725。
系統代理器730經由對應晶粒內互連728及729來耦接至此等核心及圖形引擎。如所見,系統代理器730包括可如本文描述來組配之共享記憶體組織735。各種其他邏輯、控制器及其他單元如電力管理單元亦可存在於系統代理器730內。如所見,共享記憶體組織735與記憶體控制器740通訊,該控制器進而耦接至晶片外記憶體如組配為DRAM之系統記憶體。另外,系統代理器730經由一組互連744耦接至一或多個內部代理器750如各種周邊裝置。在一實施例中,互連744可包括優先級通道互連、邊帶通道互連及記憶體通道互連。類似組配之互連74提供系統代理器730與一或多個晶片外代理器(為了便於說明在圖10之實施例中未展示)之間之通訊。應當指出的是圖10之方塊圖意欲是非限制性的,並且其他元件及改進可存在於各種實施例中。
圖11係根據本說明書之一或多個實例的存在於電腦系統中之部件之方塊圖。如圖11示出,系統800可包括許多不同部件。此等部件可實施為IC、其部分、分離電子裝置,或適於電路板之其他模組如母板或電腦系統之附加卡,或實施為另外併入電腦系統之框架內之部件。亦注意圖11之方塊圖意欲展示電腦系統之許多部件之高階視圖,然而,應瞭解額外部件可存在於某些實行方案中並且此外,所示部件之不同佈置可出現於其他實行方案中。
如圖11所見,可為低電力多核心處理器插座如超 低電壓處理器的處理器810可充當與系統之各種部件通訊之主要處理單元及中心集線器。此處理器可實施為如本文描述之SoC。在一實施例中,處理器810可為基於Intel®Architecture CoreTM之處理器如i3、i5、i7或可自Intel Corporation,Santa Clara,CA獲得之另一種此類處理器,如將一或多個基於CoreTM之核心與一或多個基於Intel® ATOMTM之核心組合以由此在單一SoC中實現高電力及低電力核心的處理器。然而,應理解如可自Advanced Micro Devices.Inc.(AMD)of Sunnyvale,CA獲得之其他低電力處理器,及來自ARM holdings,Ltd.之基於ARM之設計或來自MIPS Technologies,Inc.,of Sunnyvale.CA或其被授權人或採用者之基於MIPS之設計可替代地存在於其他實施例中如Apple A5或A6處理器。在其他實施例中,處理器810可為在虛擬機中以硬體及/或軟體之組合形式實現之虛擬處理器。
處理器810可與系統記憶體815通訊,該記憶體在一實施例中可經由多個記憶體裝置實施以提供給定量之系統記憶體。為了提供資訊如資料、應用程式、一或多個作業系統等等之持續儲存,大容量儲存器820亦可耦接至處理器810。亦在圖11中示出,快閃裝置822可例如經由串列周邊介面(SPI)耦接至處理器810。此快閃裝置可提供系統軟體,包括基本輸入/輸出軟體(BIOS)以及系統之其他韌體的非依電性儲存。
各種輸入/輸出裝置可存在於系統800內。尤其在 圖11之實施例中示出顯示器824,其可為在框架之蓋罩部分內組配之高清晰度LCD或LED面板。此顯示面板亦可提供觸控螢幕825,例如,配接於顯示面板外部以使得經由用戶與此觸控螢幕之交互,用戶輸入可提供至系統以實現例如關於資訊之顯示、資訊之存取等等之所需操作。在一實施例中,顯示器824可經由顯示互連耦接至處理器810,該互連可實施為高效能圖形互連。觸控螢幕825可經由在一實施例中可為I2C互連之另一個互連來耦接至處理器810。如在圖11中進一步示出,除了觸控螢幕825以外,經由觸控之用戶輸入亦可經由觸控墊830來發生,該觸控墊可組配於框架內並且亦可耦接至與觸控螢幕825相同之12C互連。
出於感知計算及其他目的,各種感測器可存在於系統內並且可以不同方式耦接至處理器810。某些慣性及環境感測器可經由感測器集線器840,例如,經由I2C互連來耦接至處理器810。在圖11示出之實施例中,此等感測器可包括加速計841、環境光感測器(ALS)842、指南針843及回轉儀844。其他環境感測器可包括一或多個熱感測器846,其在一實施例中可經由系統管理匯流排(SMBus)來耦接至處理器810。
亦在圖11中所見,各種周邊裝置可經由低接腳數(LPC)互連來耦接至處理器810。在示出之實施例中,各種部件可經由嵌入控制器835來耦接。此等部件可包括鍵盤836(例如,經由PS2介面耦接)、風扇837及熱感測器839。在一些實施例中,觸控墊830亦可經由PS2介面來耦接至EC 835。另外,安全處理器例如根據日期為10月2日2003年之可信賴計算組織(TCG)TPM規範版本1.2之可信賴平台模組(TPM)838亦可經由此LPC互連耦接至處理器810。
系統800可以各種方式,包括以無線方式與外部裝置通訊。在圖11示出之實施例中,存在各種無線模組,其中之每一者可對應於針對特定無線通訊協定來組配之無線電設備。在短距離如近場中無線通訊之一種方式可經由近場通訊(NFC單元845,其在一實施例中可經由SMBus與處理器810通訊。注意經由此NFC單元845,彼此緊鄰之裝置可通訊。舉例而言,用戶可啟用系統800以便與另一個(例如)可攜裝置如用戶之智能手機通訊,該通訊係經由將兩個裝置以接近關係配合在一起並且致能資訊諸如識別資訊支付資訊、資料如影像資料等等之傳輸來實現的。無線電力傳遞亦可使用NFC系統來執行。
如圖11進一步所見,額外無線單元可包括其他短距離無線引擎包括WLAN單元850及藍牙單元852。使用WLAN單元850,可實現根據給定電機與電子工程師學會(IEEE)802.11標準之Wi-FiTM通訊,同時經由藍牙單元852,可發生經由藍牙協定之短距離通訊。此等單元可經由例如USB連結或通用異步接收及發射器(UART)連結來與處理器810通訊。或此等單元可藉由互連經由根據PCI快速規範基本規範版本3.0(2007年1月17日公開)之快速周邊組件互連TM(PCIeTM)協定,或另一種此類協定如串列資料輸入/輸出(SDIO)標準來耦接至處理器810。當然,可組配於一或多個 附加卡上之此等周邊裝置之間的實際實體連接可經由配接至母板之新一代外型規格(NGFF)連接器。
另外,例如根據蜂巢式或其他無線廣域協定之無線廣域通訊可經由無線廣域網路(WWAN)單元856發生,該單元轉而可耦接至訂戶身份模組(SIM)857。另外,為了實現位置資訊之接收及使用,亦可存在GPS模組855。注意在圖11示出之實施例中,WWAN單元856及整合捕獲裝置如攝像機模組854可經由給定USB協定如USB2.0或3.0連結,或UART或I2C協定來通訊。另外,此等單元之實際實體連接可經由將NGFF附加卡配接至在母板上組配之NGFF連接器。
為了提供音訊輸入及輸出,音訊處理器可經由數位信號處理器(DSP)860來實施,該數位信號處理器可經由高傳真音訊(HDA)連結來耦接處理器810。同樣地,DSP 860可與整合編碼器/解碼器CODEC)及放大器862通訊,該放大器轉而可耦接至可實施於框架內之輸出揚聲器863。同樣地,放大器及CODEC 862可耦接以接收來自麥克風865之音訊輸入,該麥克風在一實施例中可經由雙重陣列麥克風來實施以提供高品質音訊輸入以實現系統內之各種操作之話音啟動控制。亦注意音訊輸出可自放大器/CODEC 862提供至耳機插孔864。
圖12係在示例性控制系統中之原位SoC之方塊圖。然而,應注意,控制系統及此特定控制系統僅作為非限制實例來提供。
在圖12之實例中,SoC 1200包括多核心處理器,包括RT核心115-0及輔助核心115-1。RT核心115-0充當即時代理器,而輔助核心115-1充當最佳努力代理器。
RT核心115-1及輔助核心115-1共享分別控制記憶體器組1220-0及1220-1之記憶體控制器170-0及記憶體控制器170-1。在某些實例中,記憶體器組1220-0及記憶體器組1220-1完全彼此獨立,並且可交錯以使得偶數記憶體位址經過記憶體控制器170-0到達器組1220-0,而奇數記憶體位置依路由傳遞穿過記憶體控制器170-1到達記憶體器組1220-1。此僅作為舉例來提供,並且可利用其他記憶體組態。亦應注意在此實例中,記憶體控制器170及記憶體器組1220展示於單獨記憶體匯流排上。此亦作為非限制實例來揭示。在其他實施例中,可使用其他記憶體架構,如直接記憶體存取(DMA)及使用與其他系統資源之公共匯流排之記憶體架構。
RT核心115-0可被組配來控制系統,如受控系統1290。在一實施例中,受控系統1290可為任務關鍵或安全關鍵裝置如製造機器人、生命維持系統,作為非限制實例。受控系統1290之要求可使得需要保證QoS來維持即時操作。然而,亦可能需要提供輔助功能,如用戶介面以使得用戶可提供必需輸入。輔助核心115-1亦可提供功能如監視及用戶回饋。因此,需要設計SoC 1200以使得RT核心150-0針對其即時功能來保證其必需QoS,但是不完全壟斷共享非核心組織100以使得輔助核心115-1不能執行其功能。為此 目的,可提供優先級方案以便向即時訊務授與較高優先級,同時為輔助核心115-1保留足夠帶寬以便正確地運作。
在此實例中,RT核心115-0經由合適構件,如網路介面、專用匯流排或其他連接可通訊地耦接至受控系統1290。在此圖中,RT核心115-0亦經由共享互連資源1230可通訊地耦接至RT周邊裝置1210-0。在某些實施例中,為了簡化設計,共享互連資源1230可以單一模組化IP區塊形式來提供。
為了簡化附圖,並且為了闡明許多不同類型互連是可能的,在此處在RT周邊裝置1210-0與受控系統1290之間未示出實體或邏輯連接。但是此不意欲排除此連接。在一些實施例中,RT周邊裝置1210-0可為受控系統1290之控制介面,在此情況下可提供邏輯與/或實體連接。在其他實施例中,RT周邊裝置121-0可提供其他即時功能,其可或可不直接在邏輯上與受控系統1290相關。
同樣地,舉例而言,輔助核心115-1可通訊地耦接至用戶介面1270,或耦接至任何其他合適輔助系統或子系統。輔助核心1150-1經由共享互連資源1230可通訊地耦接至輔助周邊裝置1210-1。與即時周邊裝置1210-0一樣,輔助周邊裝置1210-1可或可不可通訊地耦接至用戶介面1270。為了簡化附圖,並且為了闡明許多不同連接選項是可能的,在此圖中在輔助周邊裝置1210-1與用戶介面1270之間未示出實體或邏輯連接,但是在一些實施例中,可提供此連接。
在一個實例中,共享非核心組織100僅包括一組實體匯流排、互連、暫存器,及即時核心115-0及輔助核心115-1可用於可通訊地耦接至周邊裝置1210,及記憶體控制器170的其他資源。因此,為了確保用於即時核心115-0的保證QoS,共享互連資源1230可能需要在代理器115、周邊設備1210與記憶體控制器170之間提供優先級方案。
如上所述,某些實施例僅使用在所有代理器之間共享的一個虛擬通道。然而,本說明書亦描述提供多個虛擬通道以使得共享非核心組織100可在用於即時核心115-0之訊務與用於輔助核心150-1之訊務之間判別、分離及按優先級排序的方法。此分離可為合意的以使得只要有需要,來自即時核心115-0之訊務可接收優先級,包括超過來自輔助核心115-1之訊務的搶先優先級。
在一個實例中,定義兩個虛擬通道:即虛擬通道VC_AUX 1240,及虛擬通道VC_RT 1242。劃分成虛擬通道可在一個實例中藉由將每個封包之來源代理器解碼來實現。應當指出的是在某些已知實施例中,出於依路由傳遞之目的,將每個封包之目的地解碼。在此實例中,可仍然提供目的地解碼,並且可附加於將來源代理器解碼。一旦來源代理器解碼,可根據來源代理器在整個共享互連資源1230中追蹤封包。在一個實例中,共享非核心組織100可將標頭資料置於每個封包之前部,從而識別將要傳送封包之虛擬通道。可根據本文所述之QoS方案給予某些虛擬通道某些優先級權重。優先級方案可包括為高優先級訊務提供較 高「授與計數」數目及/或為VC_RT上之訊務指派期滿最終期限以便加速該訊務。
虛擬通道亦可進一步細分,例如根據每個封包之目的地。因此,例如,可給予自即時核心115-0發至任何記憶體控制器170之訊務很高或甚至搶先優先級以保證QOS。然而,自即時核心115-0發至即時周邊裝置1210-0之訊務可能不太時間關鍵的。因此,此訊務可指派略微較低(雖然可能仍然加速)優先級。當然,此等組態僅作為非限制實例來提供。熟習此項技術者根據特定實施例之設計約束來選擇合適優先級方案。
在一實施例中,SoC 1200亦包括電力管理代理器(PMA)1232。PMA 1232促進請求代理器115與共享互連組織100之間之通訊。舉例而言,若請求代理器115通知PMA 1232其將閒置一定時間,PMA 1232可通知共享互連組織100其可進入低電力狀態歷時該時間。
圖13係根據本說明書之一或多個實例之非核心共享記憶體組織100之選定元件的方塊圖。
在一個實例中,非核心組織100可邏輯劃分成閘控區域1320及未閘控區域1310。此等係邏輯劃分並且不一定表示非核心組織100之分離實體區域。
閘控區域1320包括非核心組織100之大部分主要功能,包括記憶體排程器130、快取記憶體相干性追蹤器140及容許仲裁器120。閘控區域1320亦可包括其他功能,如I/O根複合體1350、可為階層式的I/O互連組織1342及系統解碼 器1330。系統解碼器1330可專門為非核心組織100提供智慧。最後,非核心組織100之非核心組織100閘控區域1320包括保留胞元1340。保留胞元1340可為合適正反器,其可用於保持非核心組織100在降低電力狀態下之狀態,同時本身消耗極少電力。
未閘控區域1310可包括例如電力閘1360、時鐘閘1370、時鐘1372、未閘控控制器1380及局部電力管理器1390。
在一個實例中,提供一或多個時鐘1372在整個非核心組織100中傳播。此等時鐘可在其途徑中傳送穿過時鐘閘1370直至非核心組織100之其餘部分。因此,當時鐘閘1370閉合時,時鐘1372保持閒置並且不傳播信號。電力閘1360亦可切斷至全部或大部分閘控區域1320之電力。因此,當電力閘1360及時鐘閘1370閉合時,非核心組織100總體上汲取可忽略的電力。
局部電力管理器1390對於時鐘閘1370及電力閘1360實施控制,並且包括監測發至未閘控控制器1380之輸入以便判定何時輸入「停止」的邏輯。當在沒有輸入的情況下,足夠多的時間已經過去時,局部電力管理器1390閉合時鐘閘1370及電力閘1360。
然後,非核心組織100保持閒置直到傳入信號藉由未閘控控制器1380接收為止。未閘控控制器處置傳入資料之預先處理。如果非核心組織100管線化或其一部分管線化,未閘控控制器1380可包括選擇邏輯及散列,其用於將 傳入記憶體存取請求指派至合適管線。此可包括例如將位址散列以判定是否其係偶數或奇數,並且將其指派至偶數或奇數管線。
在未閘控控制器1380執行其傳入記憶體請求之預先處理時,電力管理器1390打開電力閘1360及時鐘閘1370。此允許電力及時鐘信號總體上在大約奈秒內傳播至非核心組織100之整個閘控區域1320。因為非核心組織100之典型閒置時間可為大約幾微秒,所以在記憶體存取事件時喚醒閘控區域1320之奈秒等級內務操作可為合適及可接受之折衷。
圖14係根據本說明書之一或多個實例的藉由非核心組織100執行之方法之流程圖。
在方塊1410,在第一平行路徑上,圖12之PMA1230可將「核心閒置」信號發送至共享互連組織100。
或者,在方塊1420,未閘控控制器1380可判定未接收輸入。
方塊1422係迴圈,其中電力管理器1390等待直到閒置時間大於臨界值為止。在一個實例中,臨界值可小於一微秒。在一個實例中,臨界值可由用戶藉由規劃組態暫存器來動態地管理。
若時間仍未超過臨界值,則在方塊1424,若已經超過較小臨界值(小於第一臨界值),則可單獨閘控時鐘。此提供中間或部分電力切斷狀態,其中電力仍然施加,但是時鐘不操作。
在方塊1430,若已經超過主要臨界值,則非核心組織100之電力管理器1380判定非核心組織100可進入電力節省狀態。因此,電力管理器1380將非核心組織100之狀態保存至保留胞元1340。
在方塊1440,局部電力管理器1390藉由將電力閘1360及時鐘閘1370閉合來將非核心組織100電力切斷。
在方塊1450,非核心組織100等待新的傳入存取請求。
在方塊1460,未閘控控制器1380接收存取請求或「喚醒」指令(例如,來自PMA 1232)。因此,其為非核心組織100開始自其低電力狀態喚醒之過程之時。在一個實例中,此發生於兩個平行路徑中。
在方塊1470,未閘控控制器1380可處置新存取請求之預先處理。此可包括,例如,將位址散列並且將傳入封包指派至非核心組織100之合適管線。
平行地,在方塊1480,電力管理器1390自保留胞元1340恢復非核心組織100之狀態。在方塊1482,電力管理器1390藉由打開電力閘1360及時鐘閘1370來將非核心組織100電力開啟。然後,電力及時鐘信號例如在大約幾奈秒內傳播通過非核心組織100。一旦電力及時鐘信號已經恢復至非核心組織100,在方塊1490,非核心組織100準備如本文描述來處置存取請求。
該圖像需要包括被稱為「防火牆」之方塊。當介面之一側(共享記憶體組織)切斷電力並且另一側(請求代理 器)未切斷電力時,那麼實體設計需要防火牆來切斷(即,接地)信號以避免到達電力切斷區域。
有利地,根據本說明書之系統及方法,即使請求代理器115本身仍然具有施加之時鐘及電力,共享非核心組織100可關閉時鐘及/或電力。請求代理器115及共享非核心組織100不需要預協商來進入低電力狀態。此舉允許SoC中之積極電力管理及顯著電力節省,尤其對於代理器本身相當活躍(並且由此需要電力),但是不將請求發送至組織之情況更是如此。
雖然已就有限數目之實施例描述本發明,但是熟習此項技術者將瞭解基於該等實施例之許多修改及變化。隨附申請專利範圍意欲涵蓋如屬於本發明之真實精神及範疇內之所有此等修改及變化。
設計可經歷自產生至模擬至製造之各種階段。表示設計之資料可以數種方式來表示設計。首先,如在模擬中為有用的,硬體可使用硬體描述語言(HDL)或另一功能描述語言來表示。另外,具有邏輯及/或電晶體閘之電路層級模型可在設計處理程序之一些階段產生。此外,大多數設計在一些階段達到表示各種裝置在硬體模型中之實體佈局之資料的層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定各種特徵在用於遮罩之不同遮罩層上是否存在的資料,該等遮罩用以產生積體電路。
在一些實行方案中,基於軟體之硬體模型,及HDL及其他功能描述語言物件可包括暫存器轉移語言(RTL) 檔案,以及其他實例。此等物件可為機器可解析的以使得設計工具可接受HDL物件(或模型),針對所描述硬體之屬性來解析HDL物件,並且自物件判定實體電路及/或晶片上配置。設計工具之輸出可用於製造實體裝置。例如,設計工具可自HDL物件判定各種硬體及/或韌體元件之組態,如匯流排寬度、暫存器(包括尺寸及類型)、記憶體方塊、實體連結路徑,組織拓撲,以及將實施以便實現在HDL物件中建模之系統的其他屬性。設計工具可包括判定系統單晶片(SoC)及其他硬體裝置之拓撲及組織組態的工具。在一些情況下,HDL物件可用作用於開發可由製造設備用於製造所描述硬體之模型及設計檔案的基礎。事實上,HDL物件本身可作為輸入提供至製造系統軟體以產生所描述硬體。
在設計之任何表示中,資料可儲存於任何形式之機器可讀媒體中。記憶體或者磁性或光學儲存器(諸如,碟片)可為儲存經由光波或電波所傳輸之資訊的機器可讀媒體,該光波或電波經調變或以其他方式產生以傳輸此資訊。當指示或攜載程式碼或設計之電載波經傳輸,達到執行電信號之複製、緩衝或重新傳輸的程度時,新的複本得以製作。因此,通訊提供者或網路提供者可在有形的機器可讀媒體上至少暫時儲存體現本揭示案之實施例之技術的物件,諸如編碼至載波中的資訊。
如本文所使用之模組指代硬體、軟體,及/或韌體之任何組合。作為實例,模組包括與非暫時性媒體相關聯之硬體,諸如微控制器,該媒體儲存經調適來藉由微控 制器執行之程式碼。因此,在一實施例中,對模組之引用指代硬體,其經特定組配來辨識及/或執行將要在非暫時性媒體上保留之程式碼。此外,在另一實施例中,模組之使用指代包括程式碼之非暫時性媒體,該程式碼經特定調適來藉由微控制器執行以執行預定操作。且如可推斷,在又一實施例中,模組一詞(在此實例中)可指代微控制器與非暫時性媒體之組合。常常,例示為單獨的模組邊界通常變化且可能重疊。舉例而言,第一模組及第二模組可共用硬體、軟體、韌體或其組合,同時可能保留一些獨立的硬體、軟體或韌體。在一實施例中,邏輯一詞之使用包括硬體,諸如電晶體、暫存器,或諸如可規劃邏輯裝置之其他硬體。
在一實施例中,片語「以」或「經組配來」之使用指代配置、放在一起、製造、要約出售、進口及/或設計執行所指明或所判定任務之設備、硬體、邏輯或元件。在此實例中,並未操作之設備或其元件仍「經組配來」在其經設計、耦接及/或互連以執行所指明任務的情況下執行該所指明任務。作為純例示性實例,邏輯閘可在操作期間提供0或1。但「經組配來」將啟用信號提供至時脈之邏輯閘不包括可提供1或0之每一可能邏輯閘。實情為,邏輯閘為以某方式耦接之邏輯閘,該方式為在操作期間,1或0輸出將啟用時脈。再次注意,「經組配來」一詞之使用不需要操作,而是聚焦於設備、硬體及/或元件之潛在狀態,其中設備、硬體及/或元件之潛在狀態經設計來在該設備、硬體及/或元件正操作時執行特定任務。
此外,在一實施例中,片語「能夠」及或「可操作以」之使用指代某設備、邏輯、硬體及/或元件以允許以指定方式使用該設備、邏輯、硬體及/或元件之方式來設計。注意如上文,在一實施例中,以、能夠或可操作以之使用指代設備、邏輯、硬體及/或元件之潛在狀態,其中設備、邏輯、硬體及/或元件不操作但以允許以指定方式使用設備的方式來設計。
如本文所使用,值包括數目、狀態、邏輯狀態或二進位邏輯狀態之任何已知表示。常常,邏輯位準、邏輯值或多個邏輯值之使用亦被稱為1及0,此簡單地表示二進位邏輯狀態。舉例而言,1指代高邏輯位準且0指代低邏輯位準。在一實施例中,諸如電晶體或快閃胞之儲存胞可能能夠保留單一邏輯值或多個邏輯值。然而,電腦系統中之值的其他表示已得以使用。舉例而言,十進位數10亦可表示為二進位值1010及十六進位字母A。因此,值包括能夠保留於電腦系統中之資訊的任何表示。
此外,狀態可藉由值或值之多個部分表示。作為實例,諸如邏輯1之第一值可表示預設或初始狀態,而諸如邏輯0之第二值可表示非預設狀態。另外,在一實施例中,重設及設定等詞分別指代預設及更新值或狀態。舉例而言,預設值可能包括高邏輯值,亦即,重設,而更新值可能包括低邏輯值,亦即,設定。注意,值之任何組合可用以表示任何數目個狀態。
上文所闡述之方法、硬體、軟體、韌體或程式碼 之實施例可經由儲存於機器可存取、機器可讀、電腦可存取或電腦可讀媒體上之指令或程式碼來實施,該等指令或程式碼可藉由處理元件執行。非暫時性機器可存取/可讀媒體包括以可藉由機器讀取之形式提供(亦即,儲存及/或傳輸)資訊的任何機制,該機器諸如電腦或電子系統。例如,非暫時性機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電氣儲存裝置;光學儲存裝置;聲學儲存裝置;用於保持自暫時性(傳播)信號(例如,載波、紅外信號、數位信號)接收的資訊的其他形式之儲存裝置等,該等其他形式之儲存裝置不同於可自該等暫時性(傳播)信號(例如,載波、紅外信號、數位信號)接收資訊的非暫時性媒體。
用來規劃邏輯以執行本揭示案之實施例的指令可儲存於系統中的記憶體中,諸如DRAM、快取記憶體、快閃記憶體或其他儲存體。此外,指令可經由網路或藉由其他電腦可讀媒體來散佈。因此,機器可讀媒體可包括用於以可藉由機器(例如,電腦)讀取之形式儲存或傳輸資訊的任何機制,但不限於軟碟片、光碟、光碟片唯讀記憶體(CD-ROM),及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、電可抹除可規劃唯讀記憶體(EEPROM)、磁性或光學卡、快閃記憶體,或在資訊經網際網路經由電、光學、聲學或其他形式之所傳播信號(例如,載波、紅外信號、數位信號等)之傳輸 中所使用的有形的機器可讀儲存器。因此,電腦可讀媒體包括適於以機器(例如,電腦)可讀的形式儲存或傳輸電子指令或資訊之任何類型之有形的機器可讀媒體。
以下實例係關於根據本說明書之實施例。一或多個實施例可提供方法、設備、系統、機器可讀儲存器、機器可讀媒體、基於硬體及/或軟體之邏輯,提供共享組織,其包含閘控區域,判定共享組織未接收存取請求大於臨界值之一段時間的局部電力管理器,及在收到來自局部電力管理器之電力切斷信號時斷開發至閘控區域之電力的電力閘。
在至少一個實例中,提供時鐘閘以在收到來自局部電力管理器之電力切斷信號時斷開發至閘控區域之時鐘信號。
在至少一個實例中,局部電力管理器進一步偵測傳入存取請求,並且將電力開啟信號發送至電力閘。
在至少一個實例中,局部電力管理器駐留於未閘控區域中。
在至少一個實例中,未閘控控制器提供於未閘控區域中以接收傳入存取請求,通知局部電力管理器傳入存取請求,並且至少部分地處置傳入存取請求。
在至少一個實例中,提供保留胞元以在收到電力切斷信號後儲存關於共享組織之狀態資訊。
在至少一個實例中,保留胞元進一步在收到來自局部記憶體控制器之電力開啟信號後將狀態資訊恢復至共 享組織。
在至少一個實例中,局部電力管理器進一步判定共享組織未接收存取請求大於較小臨界值之一段時間,並且斷開發至閘控區域之時鐘。
在至少一個實例中,在不存在請求代理器之外顯電力切斷信號的情況下,電力管理器發送電力切斷信號。
在至少一個實例中,共享組織包含非核心組織。
一或多個實施例可提供設備、系統、機器可讀儲存器、機器可讀媒體、基於硬體及/或軟體之邏輯,一種方法,該方法監測將請求代理器可通訊地耦接至定址資料裝置並且包括閘控區域的共享互連組織,判定未接收來自請求代理器之記憶體存取請求大於臨界值之一段時間,在收到來自局部電力管理器之電力切斷信號時導致發至閘控區域之電力斷開,並且將共享互連組織之狀態資訊儲存於保留胞元中。
遍及本說明書對「一實施例」或「實施例」之引用意味,結合實施例所述之特定特徵、結構或特性包括於本發明的至少一實施例中。因此,片語「在一實施例中」或「在實施例中」在遍及本說明書之各處的出現未必均指代同一實施例。此外,特定特徵、結構或特性可在一或多個實施例中以任何合適之方式組合。
在前述說明書中,已參考特定例示性實施例提供了詳細描述。然而,將顯而易見的是,可在不脫離如所附申請專利範圍中所闡述之本發明之較廣泛精神及範疇的情 況下在說明書中進行各種修改及變化。因此,應以例示性意義而非限制性意義來看待說明書及圖式。此外,實施例及其他例示性語言之前述使用未必指代同一實施例或同一實例,而可指代不同且相異的實施例,以及可能同一實施例。
100‧‧‧共享記憶體組織
115-0~115-3‧‧‧代理器
120‧‧‧容許仲裁器
130‧‧‧排程器仲裁器
140‧‧‧快取記憶體相干性追蹤器
142‧‧‧記分板
143‧‧‧位址標籤儲存器
144‧‧‧資料緩衝器
146‧‧‧控制佇列
148‧‧‧資源分配邏輯
150‧‧‧全域計時器
160‧‧‧組態暫存器
170‧‧‧記憶體控制器

Claims (20)

  1. 一種設備,其包含:一共享組織,該共享組織包含一閘控區域,並且進一步包含:一局部電力管理器,其用以判定該共享組織在大於一臨界值之一時間內未接收一存取請求;以及一電力閘,其用以在來自該局部電力管理器之一電力切斷信號時斷開至該閘控區域之電力。
  2. 如請求項1之設備,其進一步包含一時鐘閘以在來自該局部電力管理器之一電力切斷信號時斷開至該閘控區域之一時鐘信號。
  3. 如請求項1之設備,其中該局部電力管理器係進一步用以偵測一傳入存取請求,並且用以將一電力開啟信號發送至該電力閘。
  4. 如請求項1之設備,其進一步包含一未閘控區域,其中該局部電力管理器駐留於該未閘控區域中。
  5. 如請求項4之設備,其進一步包含該未閘控區域中之一未閘控控制器,該未閘控控制器用以:接收一傳入存取請求;通知該局部電力管理器該傳入存取請求;以及至少部分地處置該傳入存取請求。
  6. 如請求項1之設備,其進一步包含保留胞元以在該電力切斷信號時儲存關於該共享組織之狀態資訊。
  7. 如請求項6之設備,其中該等保留胞元係進一步用以在來自該局部記憶體控制器之一電力開啟信號時將狀態資訊恢復至該共享組織。
  8. 如請求項1之設備,其中該局部電力管理器係進一步用以:判定該共享組織在大於一較小臨界值之一時間內未接收一存取請求;以及斷開發至該閘控區域之一時鐘。
  9. 如請求項1之設備,其中該電力管理器係用以在不存在用於一請求代理器之一外顯電力切斷信號的情況下發送該電力切斷信號。
  10. 如請求項1之設備,其中該共享組織包含一非核心組織。
  11. 一種系統單晶片,其包含:一請求代理器;一定址資料裝置;以及一組織,該組織用以將該請求代理器通訊地耦接至該定址資料裝置,該組織包含一閘控區域,並且進一步包含:一局部電力管理器,其用以判定該組織在大於一臨界值之一時間內未接收自該請求代理器至該定址資料裝置之一存取請求;以及一電力閘,其用以在來自該局部電力管理器之一電力切斷信號時斷開至該閘控區域之電力。
  12. 如請求項11之系統單晶片,其中該組織進一步包含一時鐘閘以在來自該局部電力管理器之一電力切斷信號時斷開至該閘控區域之一時鐘信號。
  13. 如請求項11之系統單晶片,其中該局部電力管理器係進一步用以偵測一傳入存取請求,並且用以將一電力開啟信號發送至該電力閘。
  14. 如請求項11之系統單晶片,其進一步包含一未閘控區域,其中該局部電力管理器駐留於該未閘控區域中。
  15. 如請求項14之系統單晶片,其進一步包含該未閘控區域中之一未閘控控制器,該未閘控控制器用以:接收一傳入存取請求;通知該局部電力管理器該傳入存取請求;及至少部分地處置該傳入存取請求。
  16. 如請求項11之系統單晶片,其進一步包含保留胞元以在該電力切斷信號時儲存關於該組織之狀態資訊。
  17. 如請求項16之系統單晶片,其中該等保留胞元係進一步用以在來自該局部記憶體控制器之一電力開啟信號時將狀態資訊恢復至該組織。
  18. 如請求項11之系統單晶片,其中該局部電力管理器係進一步用以:判定該組織在大於一較小臨界值之一時間內未接收一存取請求;以及斷開發至該閘控區域之一時鐘。
  19. 如請求項11之系統,其中該局部電力管理器用以在不存在用於一請求代理器之一外顯電力切斷信號的情況下發送該電力切斷信號。
  20. 一種具有程式碼儲存於其上之至少一機器可存取儲存媒體,該程式碼在一機器上執行時致使該機器:監測一共享互連組織,其中該共享互連組織係用以將一請求代理器通訊地耦接至一定址資料裝置,並且係用以包含一閘控區域;判定來自該請求代理器之一記憶體存取請求在大於一臨界值之一時間內未被接收;在來自一局部電力管理器之一電力切斷信號時致使至該閘控區域之電力被斷開;以及將該共享互連組織之狀態資訊儲存於一保留胞元中。
TW104138977A 2014-12-25 2015-11-24 在非核心組織中之電力管理技術 TWI633424B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/583,151 US9785223B2 (en) 2014-12-25 2014-12-25 Power management in an uncore fabric
US14/583,151 2014-12-25

Publications (2)

Publication Number Publication Date
TW201636771A true TW201636771A (zh) 2016-10-16
TWI633424B TWI633424B (zh) 2018-08-21

Family

ID=56151376

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138977A TWI633424B (zh) 2014-12-25 2015-11-24 在非核心組織中之電力管理技術

Country Status (5)

Country Link
US (1) US9785223B2 (zh)
EP (1) EP3238003A4 (zh)
CN (1) CN107077190B (zh)
TW (1) TWI633424B (zh)
WO (1) WO2016105864A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI655548B (zh) * 2017-10-13 2019-04-01 技嘉科技股份有限公司 介面優先排程及解決衝突之控制電路及介面優先排程及解決衝突之操作方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785223B2 (en) 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric
US10133670B2 (en) * 2014-12-27 2018-11-20 Intel Corporation Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
US10067691B1 (en) * 2017-03-02 2018-09-04 Qualcomm Incorporated System and method for dynamic control of shared memory management resources
US10795427B2 (en) 2017-06-02 2020-10-06 Apple Inc. Control of power state transitions
CN111240459B (zh) * 2020-01-08 2021-05-28 珠海全志科技股份有限公司 片上系统功耗管理方法、计算机装置及计算机可读存储介质
US11656967B2 (en) * 2020-02-13 2023-05-23 MemRay Corporation Method and apparatus for supporting persistence and computing device
US11500444B2 (en) * 2020-05-08 2022-11-15 Intel Corporation Intelligent prediction of processor idle time apparatus and method
CN112130990B (zh) * 2020-08-25 2022-05-10 珠海市一微半导体有限公司 机器人任务运行方法及系统
US11703932B2 (en) * 2021-06-24 2023-07-18 Advanced Micro Devices, Inc. Demand based probe filter initialization after low power state
KR20230047823A (ko) * 2021-10-01 2023-04-10 삼성전자주식회사 시스템 온 칩 및 어플리케이션 프로세서
US20240103728A1 (en) * 2022-09-21 2024-03-28 SK hynix NAND Product Solutions Corporation Systems, methods, and media for recovering worker shares from read prioritization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230274B1 (en) * 1998-11-03 2001-05-08 Intel Corporation Method and apparatus for restoring a memory device channel when exiting a low power state
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
US20160195918A9 (en) * 2002-06-05 2016-07-07 Broadcom Corporation Method and Apparatus for Predictive and Adaptive Power Management of Memory Subsystem Based on memory access Information
US7710322B1 (en) * 2005-05-10 2010-05-04 Multispectral Solutions, Inc. Extensible object location system and method using multiple references
US7971086B2 (en) * 2007-02-06 2011-06-28 D. S. P. Group Ltd. Integrated waking/while-awake power management system with breaking distance timer for high wake-up latency portion of hardware
US20110112798A1 (en) * 2009-11-06 2011-05-12 Alexander Branover Controlling performance/power by frequency control of the responding node
US8656198B2 (en) * 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8789170B2 (en) 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
US8438416B2 (en) 2010-10-21 2013-05-07 Advanced Micro Devices, Inc. Function based dynamic power control
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8230247B2 (en) 2011-12-30 2012-07-24 Intel Corporation Transferring architectural functions of a processor to a platform control hub responsive to the processor entering a deep sleep state
US9760150B2 (en) * 2012-11-27 2017-09-12 Nvidia Corporation Low-power states for a computer system with integrated baseband
US9535860B2 (en) 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
US9250679B2 (en) * 2013-03-08 2016-02-02 Intel Corporation Reduced wake up delay for on-die routers
US20150316971A1 (en) * 2014-05-02 2015-11-05 Avalanche Technology, Inc. Method and apparatus to reduce power consumption of mobile and portable devices with non-volatile memories
US9928150B2 (en) * 2014-06-30 2018-03-27 The Board Of Trustees Of The Leland Stanford Junior University System and method for testing a logic-based processing device
US9785223B2 (en) 2014-12-25 2017-10-10 Intel Corporation Power management in an uncore fabric

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI655548B (zh) * 2017-10-13 2019-04-01 技嘉科技股份有限公司 介面優先排程及解決衝突之控制電路及介面優先排程及解決衝突之操作方法

Also Published As

Publication number Publication date
US20160187959A1 (en) 2016-06-30
EP3238003A1 (en) 2017-11-01
CN107077190A (zh) 2017-08-18
EP3238003A4 (en) 2018-08-08
CN107077190B (zh) 2020-12-22
WO2016105864A1 (en) 2016-06-30
TWI633424B (zh) 2018-08-21
US9785223B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
TWI633424B (zh) 在非核心組織中之電力管理技術
CN107078959B (zh) 用于减轻分布式非核结构中的业务量引导低效的系统和方法
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
JP5886470B2 (ja) 共有メモリ・ファブリックを介したメモリ・アクセスの調停
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
US10338974B2 (en) Virtual retry queue
US9971711B2 (en) Tightly-coupled distributed uncore coherent fabric
KR20160004365A (ko) 크레딧 기반의 중재를 위한 서비스 레이트 재분배
EP3238085B1 (en) Virtual legacy wire