欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩存一致代理到一致結(jié)構(gòu)的低開銷分層連接的制作方法

文檔序號:11635278閱讀:214來源:國知局
高速緩存一致代理到一致結(jié)構(gòu)的低開銷分層連接的制造方法與工藝
相關(guān)申請的交叉引用本申請要求2014年12月27日提交的題為“l(fā)owoverheadhierarchicalconnectivityofcachecoherentagentstoacoherentfabric”的美國非臨時專利申請no.14/583,611的權(quán)益和優(yōu)先權(quán),通過引用將其整體并入本文。本公開涉及計算系統(tǒng),并且特別地(但非排他性地)涉及共享非核(uncore)結(jié)構(gòu)。
背景技術(shù)
:在具有多個設(shè)備的許多計算機系統(tǒng)中,執(zhí)行仲裁來提供對諸如共享存儲器之類的共享資源的訪問。不同類型的仲裁機制被提供為使能能夠?qū)崿F(xiàn)不同代理或請求方之間的仲裁。一些系統(tǒng)使用固定優(yōu)先級仲裁系統(tǒng),在其中不同代理被分配特定的優(yōu)先級。然而,這可能導(dǎo)致在一個或多個代理獲得對共享資源的訪問的能力的使用和饑餓(starvation)方面的不公平。其他仲裁系統(tǒng)提供基于循環(huán)反復(fù)(roundrobin-based)的方法來分配對共享資源的訪問。在某些實施例中,仲裁并不計及諸如功率狀態(tài)之類的共享資源因素。因此,在一個示例中,準予對訪問共享資源的請求并且該請求使該資源離開低功率狀態(tài),盡管該設(shè)備不需要立即訪問該共享資源。附圖說明圖1是根據(jù)本說明書的一個或多個示例的共享存儲器結(jié)構(gòu)的一部分的框圖。圖2是根據(jù)本說明書的一個或多個示例的準許仲裁器的進一步細節(jié)的框圖。圖3是根據(jù)本說明書的一個或多個示例的在確定仲裁獲勝方時用于更新代理的年齡(age)值的方法的流程圖。圖4是根據(jù)本說明書的一個或多個示例的準許仲裁器狀態(tài)機的框圖。圖5是根據(jù)本說明書的一個或多個示例的用于在準許仲裁器中執(zhí)行第一級別仲裁的方法的流程圖。圖6是根據(jù)本說明書的一個或多個示例的資源分配邏輯的一部分的框圖。圖7是根據(jù)本說明書的一個或多個示例的記分板索引生成邏輯的框圖。圖8是根據(jù)本說明書的一個或多個示例的用于調(diào)度器仲裁器的狀態(tài)機的框圖。圖9是根據(jù)本說明書的一個或多個示例的用于執(zhí)行存儲器調(diào)度的方法的流程圖。圖10是根據(jù)本說明書的一個或多個示例的soc的框圖。圖11是根據(jù)本說明書的一個或多個示例的存在于計算機系統(tǒng)中的部件的框圖。圖12是根據(jù)本說明書的一個或多個示例的供控制系統(tǒng)中使用的現(xiàn)場使用(insitu)的soc的框圖。圖13是根據(jù)本說明書的一個或多個示例的soc的所選擇元件的框圖。圖14和14a是根據(jù)本說明書的一個或多個示例的選擇器的框圖。具體實施方式在下面的描述中,闡述了許多具體細節(jié)(諸如特定類型的處理器和系統(tǒng)配置、具體硬件構(gòu)造、具體架構(gòu)和微架構(gòu)細節(jié)、具體寄存器配置、具體指令類型、具體系統(tǒng)部件、具體測量結(jié)果/高度、具體處理器流水線級和操作等等的示例),以便提供對本發(fā)明的透徹理解。然而,對本領(lǐng)域技術(shù)人員來說顯而易見的是不需要采用這些具體細節(jié)來實踐本發(fā)明。在其他情況下,尚未詳細描述公知部件或方法(諸如具體和替代處理器架構(gòu)、用于所描述算法的具體邏輯電路/代碼、具體固件代碼、具體互連操作、具體邏輯配置、具體制造技術(shù)和材料、具體編譯器實現(xiàn)方式、以代碼形式的算法具體表達、具體功率下降和選通技術(shù)/邏輯以及計算機系統(tǒng)的其他具體操作細節(jié)),以便避免非必要地使本發(fā)明變晦澀。在一個示例中,控制系統(tǒng)可包括片上系統(tǒng)(soc),其包括用于實時操作以管理控制系統(tǒng)中的設(shè)備的一個處理器,和被配置成執(zhí)行輔助功能(諸如用于控制系統(tǒng)的用戶接口)的另一處理器。第一核和第二核可共享諸如動態(tài)隨機存取存儲器(dram)之類的存儲器,并且還可共享被配置成將處理器通信耦合至一個或多個外圍設(shè)備的非核結(jié)構(gòu)。第一核可要求對存儲器和/或外圍設(shè)備的有保證的服務(wù)質(zhì)量(qos)。非核結(jié)構(gòu)可被劃分成被指定用于來自第一處理器的業(yè)務(wù)的第一“實時”虛擬信道以及被指定用于來自第二處理器的業(yè)務(wù)的第二“輔助”虛擬信道。非核結(jié)構(gòu)可將適當?shù)倪x擇或加權(quán)算法應(yīng)用于虛擬信道以保證qos。在各種實施例中,共享結(jié)構(gòu)將多個獨立設(shè)備(在本文中也稱為“代理”)耦合至共享存儲器或輸入/輸出(i/o)設(shè)備。在一個實施例中,共享結(jié)構(gòu)包括單個管芯半導(dǎo)體器件的互連構(gòu)造,其包括不同類型的知識產(chǎn)權(quán)(ip)邏輯塊。在高級別處,共享結(jié)構(gòu)可包括共享存儲器結(jié)構(gòu)以用于訪問系統(tǒng)存儲器、共享i/o互連結(jié)構(gòu)和向全體共享結(jié)構(gòu)提供智能(intelligence)的系統(tǒng)代理。共享結(jié)構(gòu)可被配置成使得能夠符合時間關(guān)鍵等時設(shè)備的服務(wù)質(zhì)量(qos)要求,同時還為非等時設(shè)備(在本文中也稱為“盡力而為”設(shè)備)提供存儲器帶寬比例劃分。該結(jié)構(gòu)可被稱為“非核”,指示在該結(jié)構(gòu)中提供的互連、寄存器和其他資源不是包括“代理”的處理核的一部分。非核結(jié)構(gòu)可包括上述存儲器結(jié)構(gòu)、將“代理”連接至存儲器的部分、以及還有將代理彼此連接以及特別地將處理器核連接至其他“代理”的部分。進行存儲器帶寬的可靠且可預(yù)測分配和調(diào)度來支持連接至共享存儲器結(jié)構(gòu)的多個設(shè)備和設(shè)備類型。通過將qos功能包括在公共共享存儲器結(jié)構(gòu)中(而不是包括在存儲器控制器或其他非結(jié)構(gòu)電路中),該設(shè)計可跨越多個半導(dǎo)體器件(諸如片上系統(tǒng)(soc))而被更容易地重新使用,因為該設(shè)計獨立于存儲器技術(shù)。因此實施例在共享存儲器結(jié)構(gòu)中執(zhí)行資源分配、帶寬分派和時間感知qos屬性來提供可預(yù)測且可靠的存儲器帶寬和延時,以滿足連接至該結(jié)構(gòu)的設(shè)備的要求。服務(wù)類種類被指派給耦合至共享存儲器結(jié)構(gòu)的每個設(shè)備。在一個實施例中,可以使用該結(jié)構(gòu)的配置寄存器來標識這種指派。該結(jié)構(gòu)可支持多個服務(wù)類。在一個非限制性示例中,可存在兩個服務(wù)類種類的設(shè)備,包括用于延時敏感設(shè)備的等時服務(wù)類種類和用于可以忍受較長延時以服務(wù)于它們對存儲器的請求的設(shè)備的盡力而為服務(wù)類種類。在一些實施例中,延時敏感設(shè)備包括內(nèi)容呈遞設(shè)備(諸如作為非限制示例的音頻或視頻播放器、相機設(shè)備等等),而較低優(yōu)先級設(shè)備包括處理器核、圖形處理單元等等。將以請求最后期限形式的時間從等時設(shè)備傳達給結(jié)構(gòu),以向該結(jié)構(gòu)指示完成對存儲器的請求所需的延時。為了使得能夠?qū)崿F(xiàn)同步,該結(jié)構(gòu)向所有等時請求代理廣播全局定時器。對來自結(jié)構(gòu)的輸出連續(xù)驅(qū)動該全局定時器,因此它可用于通過等時設(shè)備進行采樣。響應(yīng)于該時間值,代理確定用于完成請求的延時要求并將該延時值添加至全局定時器值以形成針對該請求的最后期限。作為示例,可以由代理通過緩沖器的流失率和代理的數(shù)據(jù)緩沖器中的數(shù)據(jù)量來確定對于讀取的延時。如果代理每250納秒(ns)消耗1個高速緩存數(shù)據(jù)線并且在緩沖器中具有8個高速緩存數(shù)據(jù)線,則在緩沖器變空之前對于新請求所需的最后期限將是8×250ns或2微秒(μs)?;谠搨鬟_的延時或最后期限值,該結(jié)構(gòu)可基于存儲器的當前功率狀態(tài)的知識和對于結(jié)構(gòu)中未決的其他未調(diào)度存儲器請求所需的延時來做出更好的調(diào)度決定。該最后期限通信可改善存儲器帶寬并且還節(jié)省系統(tǒng)功率。請求最后期限的使用向結(jié)構(gòu)提供了針對來自等時設(shè)備的每個請求的延時信息。在結(jié)構(gòu)內(nèi)編程的配置寄存器向該結(jié)構(gòu)提供了關(guān)于存儲器配置的信息(諸如存儲器離開低功率(例如自刷新和狀態(tài))所需的延時)。該結(jié)構(gòu)還通過向存儲器控制器(例如以狀態(tài)信道的形式)發(fā)送指示來控制存儲器控制器何時促使所附接的存儲器進入和離開自刷新狀態(tài)。該結(jié)構(gòu)通過評估對于所有未決存儲器請求的延時需求來確定何時存儲器應(yīng)該進入和離開自刷新。因為該結(jié)構(gòu)了解對于所有未決存儲器請求所需的延時和離開自刷新所需的延時,所以存儲器的功率狀態(tài)轉(zhuǎn)變的更大管理可以導(dǎo)致附加的功率節(jié)省。實施例還可以通過允許存儲器請求被無序調(diào)度來提供存儲器帶寬中的效率,然而,這可能導(dǎo)致對于某些請求的長調(diào)度延時。為了解決此顧慮,結(jié)構(gòu)向每個等時存儲器請求指派優(yōu)先級級別,例如高優(yōu)先級或低優(yōu)先級。當調(diào)度高優(yōu)先級等時請求時,所允許的無序調(diào)度的量小于當調(diào)度盡力而為或低優(yōu)先級等時請求時可接受的量。限制對于高優(yōu)先級請求的無序調(diào)度的量確保了滿足請求延時要求。因為根據(jù)請求的最后期限來確定請求優(yōu)先級,所以該結(jié)構(gòu)可以在請求被調(diào)度之后立即確定對于等時設(shè)備來說其他未決請求的優(yōu)先級級別是什么。通過使用最后期限方法,所有未決請求的優(yōu)先級級別僅在全局定時器遞增時進行改變。實施例還可以改善跨越多個soc實現(xiàn)方式的復(fù)雜qos存儲器調(diào)度算法的便攜性和重用,因為智能存儲器調(diào)度邏輯被結(jié)合到該結(jié)構(gòu)中,同時可以在存儲器控制器中實施技術(shù)特定的存儲器控制器邏輯。實施例還可以將抗饑餓算法結(jié)合到結(jié)構(gòu)的多個仲裁點中。在一個實施例中,這些抗饑餓算法包括由準許仲裁器使用的加權(quán)的基于年齡的仲裁方法以及在存儲器調(diào)度器和請求跟蹤器中使用的可用調(diào)度隊列中的最舊一個。此外,相比于其中來自高優(yōu)先級等時設(shè)備的請求總是勝出的固定優(yōu)先級仲裁,請求權(quán)重可被用于在結(jié)構(gòu)中的仲裁點處的不同優(yōu)先級級別之間進行切換以及用于從調(diào)度讀取請求切換至寫入請求。在一個實施例中,共享存儲器結(jié)構(gòu)包括用于調(diào)度被發(fā)送至存儲器控制器的請求的兩個仲裁點。第一仲裁點被用來準許來自設(shè)備的請求進入共享存儲器結(jié)構(gòu)中并且被稱為“準許仲裁器”。第二仲裁點被用來調(diào)度從共享存儲器結(jié)構(gòu)發(fā)送至存儲器控制器的請求并且被稱為“調(diào)度器仲裁器”。被連接至共享存儲器結(jié)構(gòu)的每個設(shè)備都具有連接在設(shè)備和結(jié)構(gòu)之間的請求接口。該請求接口供應(yīng)可以被用于qos存儲器調(diào)度的關(guān)于請求的信息。在一個實施例中,該信息包括存儲器地址、順序id字段和操作碼字段。對于等時設(shè)備,提供被稱為請求最后期限字段的附加字段,以指示完成該請求需要的所需延時。要指出,在soc的一些實現(xiàn)方式中,存儲器結(jié)構(gòu)接口可被連接至允許多個設(shè)備共享公共請求接口的其他結(jié)構(gòu)或切換設(shè)備(switch)。在soc的一個實施例中,一個或多個請求代理被指定為“實時”核,而一個或多個請求代理被指定為“輔助”核,它們是基于盡力而為來提供的。作為一個示例,soc可被提供用來控制工業(yè)機械、提供壽命支持功能、控制自主或半自主車輛(諸如避免碰撞系統(tǒng))、或以其他方式執(zhí)行使命關(guān)鍵或安全關(guān)鍵功能。在該示例中,soc包括雙核處理器,其中第一核充當實時代理,并且第二核充當輔助(盡力而為)代理。設(shè)計考慮可以驅(qū)動實時代理以有保證的qos來執(zhí)行的要求以使得它不會在其控制功能中出現(xiàn)故障。輔助代理可以執(zhí)行不要求有保證的qos的其他任務(wù),諸如提供用戶接口、報告功能或不具有關(guān)鍵時序的其他支持功能。在某些應(yīng)用中,輔助代理可提供暫時“滿溢”或以其他方式淹沒非核結(jié)構(gòu)的過量業(yè)務(wù),以使得實時代理暫時不能在其所要求的有保證的qos上操作。例如,如果輔助代理提供用戶接口,則用戶與該接口的交互可提供淹沒非核結(jié)構(gòu)的數(shù)據(jù)流,使得實時業(yè)務(wù)暫時受阻。這可能導(dǎo)致實時代理遇到故障狀況的情況。為了避免此類受阻,非核結(jié)構(gòu)可被劃分成兩個或更多分離的虛擬信道。分離成虛擬信道可通過附加至流過非核結(jié)構(gòu)報頭信息的每個數(shù)據(jù)分組來完成,包括所起源于的或要接收數(shù)據(jù)的代理,并且在一些情況下包括所起源于的或要接收數(shù)據(jù)的設(shè)備或外圍設(shè)備。例如,報頭信息可將特定分組指定為源自于“核0”(在該示例中實時代理)并被路由至dram。另一分組可被指定為源自于“核1”(在該示例中輔助代理)并被路由至用戶顯示器。在這種情況下,本文所述的仲裁器可向第一分組提供相比于第二分組的搶先優(yōu)先級。在另一示例中,從核0至某一外圍設(shè)備的業(yè)務(wù)可被給予增加的優(yōu)先級,但是可能不至于關(guān)鍵到保證搶先優(yōu)先級。有利地,將業(yè)務(wù)劃分成多個虛擬信道使得能夠?qū)崿F(xiàn)根據(jù)特定應(yīng)用的需求和設(shè)計參數(shù)的任何適當優(yōu)先級方案。在下面的圖中,圖1-9描述包括優(yōu)先級和qos方案的存儲器結(jié)構(gòu)的操作的所選部分。圖10和11提供soc以及其應(yīng)用的示例框圖。圖12提供包括共享非核結(jié)構(gòu)、實時代理和盡力而為代理的現(xiàn)場使用的soc的示例框圖。圖13、14和14a提供了多路復(fù)用的框圖。圖1是根據(jù)本說明書的一個或多個示例的共享存儲器結(jié)構(gòu)的一部分的框圖。如圖1中所示,共享存儲器結(jié)構(gòu)100被耦合在多個代理115-0—115-3(統(tǒng)稱為代理115)和存儲器控制器170之間。要指出,在一些實施例中,存在多于一個存儲器控制器。盡管為了便于圖示沒有示出,但是存儲器控制器可被耦合至系統(tǒng)存儲器,諸如動態(tài)隨機存取存儲器(drom)或其他系統(tǒng)存儲器。在圖1中所示的實施例中,不同類型的代理被耦合至共享存儲器結(jié)構(gòu)110。具體來說,不同代理包括第一服務(wù)類(cos)代理類型(即所謂的等時代理)和第二服務(wù)類代理類型(即所謂的盡力而為cos代理)。如所看到的,代理115中的每一個都可以將請求信息傳達至準許仲裁器120。進而,準許仲裁器120可將對應(yīng)控制類型信息傳達回至代理。此外,等時代理(即在圖1的實施例中代理115-1和115-3)進一步包括附加鏈路來將請求最后期限信息傳達至準許仲裁器120。為此,這些代理可進一步被配置成從也耦合至準許仲裁器120和調(diào)度器仲裁器130二者的全局定時器150接收全局定時信息。在圖1的實施例中,準許仲裁器120可被配置成從代理115接收進入請求(并且從等時代理請求最后期限信息)并且選擇適當請求來準許去往調(diào)度器仲裁器130。為了幫助其仲裁過程,準許仲裁器120從進一步耦合至調(diào)度器仲裁器130的一組配置寄存器160接收配置信息。此外,請求和一致性跟蹤器140可被耦合至仲裁器120和130。一般來說,跟蹤器140可包括多個記分板142、數(shù)據(jù)緩沖器144和對應(yīng)的地址標簽儲存器145、控制隊列146和其他資源(諸如各種緩沖器、諸如資源分配邏輯148的邏輯、等等)。在一些實現(xiàn)方式中,標簽陣列和數(shù)據(jù)緩沖器可被定位在除跟蹤器外的別處。應(yīng)該指出,圖1的框圖意圖是非限制性的,并且其他元件可存在于各種實施例中。共享存儲器結(jié)構(gòu)可包括在由準許仲裁器可以對來自請求代理的請求準予之前被首先分配的某些有限資源。這些資源包括內(nèi)部數(shù)據(jù)緩沖器和地址標簽儲存器中的可用條目。其他有限資源包括存儲器調(diào)度器和請求跟蹤器記分板中的可用條目。在對于結(jié)構(gòu)的內(nèi)部數(shù)據(jù)緩沖器、標簽陣列和存儲器調(diào)度器記分板的資源中存在一對一對應(yīng)性。在一個實施例中,這些資源被分配給存儲器的預(yù)定區(qū)域(例如諸如64字節(jié)的高速緩存線帶寬)。每個有效請求也在請求和一致性跟蹤器中被分配其自己的條目,但是對存儲器中同一區(qū)域的多個請求共享數(shù)據(jù)緩沖器、標簽陣列和存儲器調(diào)度器記分板中的同一條目。盡管對于要被分配給同一數(shù)據(jù)緩沖器、標簽陣列和調(diào)度器記分板條目的多于一個請求來說這是可能的,但是對于請求和一致性跟蹤器中的所有未完成讀取請求來說僅一個讀取請求被調(diào)度至存儲器控制器。用于所有設(shè)備的請求接口連接至結(jié)構(gòu)的準許仲裁器。等時設(shè)備使用請求總線的最后期限字段來向結(jié)構(gòu)指示完成該請求所需的延時。結(jié)構(gòu)向被附接至該結(jié)構(gòu)的所有等時設(shè)備發(fā)送全局定時器值。對于要被發(fā)送至結(jié)構(gòu)的每個請求,等時設(shè)備(例如在最后期限邏輯中)確定完成請求需要的所需延時并且將該值添加至全局定時器的當前值,以便創(chuàng)建請求最后期限。不同方法可被不同等時設(shè)備用來確定對于請求所需的延時,但是在一個實施例中,所有等時設(shè)備使用請求接口的最后期限字段向結(jié)構(gòu)指示請求延時。在其他實施例中,非核結(jié)構(gòu)可代表要求實時qos的代理指派最后期限。具體方法可能不同,但是一個示例可以是,在默認情況下,非核結(jié)構(gòu)對來自實時核的所有請求指派自當前時間起的x微秒的固定最后期限。在該示例中,x可以是從配置寄存器導(dǎo)出的值。在一個實施例中,準許仲裁器具有兩個級別的優(yōu)先級。在用于緊急等時請求的仲裁器中存在高優(yōu)先級路徑。如果請求代理被配置為等時代理且請求的最后期限字段小于存儲在指定了閾值(被稱為“緊急閾值”)的配置寄存器中的值,則請求被視為緊急。準許仲裁器還具有用于盡力而為請求和用于不被視為緊急的等時請求的低優(yōu)先級路徑。使用在高優(yōu)先級仲裁的獲勝方和低優(yōu)先級仲裁的獲勝方之間進行選擇的優(yōu)先級選擇器來完成最終級別的仲裁。在一個實施例中,準許仲裁器最終選擇器具有可以使用配置寄存器選擇的兩個模式。第一模式是固定優(yōu)先級模式,在其中假設(shè)在準許仲裁器的輸入端處存在至少一個高優(yōu)先級請求,選擇器在選取低優(yōu)先級仲裁路徑的獲勝方之前選取高優(yōu)先級仲裁路徑的獲勝方。最終選擇器的第二模式是加權(quán)輪詢模式,在其中最終選擇器在對n個高優(yōu)先級請求準予之后在對高優(yōu)先級路徑準予到對低優(yōu)先級路徑準予之間進行切換。選擇器然后在切換回到對來自高優(yōu)先級路徑的請求準予之前對來自低優(yōu)先級路徑的獲勝方的m個低優(yōu)先級請求準予。在一個實施例中,n和m的值可以稱為“準予計數(shù)”,并且是使用配置寄存器來指定的。圖2是公開了根據(jù)本說明書的一個或多個示例的準許仲裁器的進一步細節(jié)的框圖。如圖2中所示,仲裁器120從請求代理接收進入請求。在該示圖中,請求代理115-0和115-1是非等時代理或盡力而為代理,而代理115-2和115-3是等時代理。要指出,等時代理可包括或被耦合至用來計算對于請求所需的延時的最后期限確定邏輯118。在其中代理中的至少一些是第三方ip塊的實施例中,該邏輯可以在將代理耦合至共享存儲器結(jié)構(gòu)的包裝器或接口邏輯中實現(xiàn)。在所示的實施例中,準許仲裁器120包括第一基于年齡的仲裁器122和第二基于年齡的仲裁器124,其分別對應(yīng)于低和高優(yōu)先級基于年齡的仲裁器。因此如所看到的,來自所有代理115的請求被提供給第一仲裁器122,而僅來自等時代理115-2和115-3的請求被提供給第二仲裁器124。為了確定來自等時代理之一的特定請求是否具有緊急狀態(tài),一對最后期限檢查器邏輯120-1和120-n均被耦合以從等時代理中的對應(yīng)一個接收請求,以及從全局定時器150接收全局定時信息。基于由代理提供的最后期限信息與全局定時信息的比較,可以將針對對應(yīng)請求的緊急狀態(tài)的指示提供給第二仲裁器124。在操作中,仲裁器122和124操作為從一組進入請求選擇仲裁獲勝方。在所示的示例中,該確定部分基于來自存儲針對每個代理的年齡值的年齡儲存器126的信息。來自每個仲裁器的對應(yīng)獲勝方可被耦合至優(yōu)先級仲裁器選擇器125,其基于操作模式選擇對應(yīng)請求以提供給調(diào)度器仲裁器130(圖1)。為此,選擇器125可至少部分基于優(yōu)先級儲存器129中的信息來選擇針對對于調(diào)度器仲裁器的準許的請求。應(yīng)該指出,圖2的框圖意圖是非限制性的,并且其他元件可存在于各種實施例中。加權(quán)的基于年齡的仲裁細節(jié)由準許仲裁器實現(xiàn)的基于年齡的算法是這樣的,以使得自從由仲裁器上一次準予以來已等待最長時間的請求代理將被給予最高優(yōu)先級級別。一旦已經(jīng)接收到最高優(yōu)先級級別,針對該代理的優(yōu)先級級別將不會改變,除非該代理已經(jīng)被仲裁器準予。以這種方式,通過確保針對請求代理的優(yōu)先級級別可以直到請求代理已經(jīng)被仲裁器準予才在優(yōu)先級級別中增加,可以避免在輪詢仲裁的某些實施例中可能發(fā)生的饑餓問題。準許仲裁器還允許向所有請求代理指派代理權(quán)重。權(quán)重被用來為每個請求代理分配請求帶寬的百分比。在一個實施例中,經(jīng)由存儲在代理權(quán)重配置寄存器中的值來為每個代理指定權(quán)重值。在一個非限制性示例中,被分配給代理的請求帶寬的百分比等于代理權(quán)重除以所述代理的權(quán)重和。在另一示例中,對于實時核的權(quán)重可以比其他核更高以給予實時核更好的qos。加權(quán)的基于年齡的算法準許仲裁器加權(quán)的基于年齡的算法是基于由仲裁器上一次對請求代理準予時的相對年齡。對于連接至準許仲裁器的每個請求代理,存在實例化的一個年齡計數(shù)器和實例化的一個權(quán)重計數(shù)器。準許仲裁器中的高優(yōu)先級仲裁路徑和低優(yōu)先級仲裁路徑二者共享用于連接至該準許仲裁器的代理的公共年齡和權(quán)重計數(shù)器。由最終選擇器(即優(yōu)先級仲裁器選擇器125)在選取最終仲裁獲勝方之后確定對請求代理的年齡和權(quán)重寄存器的更新。在一個示例中,響應(yīng)于接收到對準許仲裁器的重置輸入來首先初始化用于所有請求代理的年齡寄存器(例如年齡儲存器126的年齡寄存器)。當重置斷言(assert)時,年齡寄存器被初始化為在0處開始且在值n-1處結(jié)束的范圍中的唯一值,其中值n等于連接至準許仲裁器的請求接口的數(shù)目。在通過請求代理來斷言任何請求之前,根據(jù)結(jié)構(gòu)的代理權(quán)重配置寄存器中的編程值來初始化代理權(quán)重計數(shù)器(例如權(quán)重儲存器128的代理權(quán)重計數(shù)器)。一旦權(quán)重計數(shù)器初始化,對于針對代理所準予的每個請求,使用于該代理的計數(shù)器遞減1。一旦代理的權(quán)重計數(shù)器到達零并且如果由準許仲裁器再次對該代理準予,則利用配置寄存器中針對該代理的權(quán)重所編程的值來重新加載計數(shù)器。在一個實施例中,在第一和第二仲裁器122和124中執(zhí)行的基于年齡的仲裁方法使用請求位向量(每個仲裁器具有其自己的向量)來確定仲裁的獲勝方。當針對代理斷言請求時,仲裁器使用針對請求代理的年齡值作為該請求的優(yōu)先級級別。針對仲裁器的優(yōu)先級級別以及因此的位向量寬度的范圍是從0至n-1?;谀挲g的算法保證針對所有請求代理的年齡值總是唯一的并且因此每個仲裁總是存在僅一個獲勝方。當用于請求仲裁的獲勝方的權(quán)重計數(shù)器已到達零時仲裁器更新用于所有代理的年齡寄存器。在一個實施例中,根據(jù)保證針對代理的年齡值總是唯一值的以下規(guī)則來更新用于所有代理的年齡寄存器:a.規(guī)則1:當代理的年齡等于仲裁的獲勝方的年齡時,用于該代理的年齡寄存器被設(shè)置成零以指示最年輕的請求年齡或最低優(yōu)先級。b.規(guī)則2:當代理的年齡小于仲裁的獲勝方時,代理的年齡寄存器遞增1。c.規(guī)則3:當代理的年齡大于仲裁的獲勝方時,代理的年齡寄存器不改變。圖3是根據(jù)本說明書的一個或多個示例的用于在確定仲裁獲勝方時更新針對代理的年齡值的方法的流程圖。該方法可在一個示例中被執(zhí)行,以在獲勝方的權(quán)重值等于零時更新年齡值。如所看到的,可由優(yōu)先級仲裁器選擇器執(zhí)行的方法200開始于確定代理的年齡值是否等于獲勝方值(判定塊210)。如果是這樣的話,控制傳遞到塊215,在那里針對該獲勝代理的年齡值可以被更新為最低優(yōu)先級級別,其在一個實施例中可等于零。根據(jù)塊215和判定塊210二者,控制傳遞到判定塊220,在那里可以確定年齡值是否小于獲勝方值(即對應(yīng)于代理的年齡)。如果是這樣的話,控制傳遞到塊225,在那里代理的年齡值可以被更新,例如被遞增。如果這些狀況都沒有發(fā)生,則代理的年齡大于仲裁的獲勝方,并且照此針對該特定代理的年齡值不改變。要指出,當獲勝方被選擇時可以在每個仲裁回合的結(jié)論下針對每個代理執(zhí)行方法200。應(yīng)該指出,圖3的流程圖意圖是非限制性的,并且其他操作可存在于各種實施例中。圖4是根據(jù)本說明書的一個或多個示例的準許仲裁器狀態(tài)機的框圖。如圖4中所示,可存在于圖1的準許仲裁器120內(nèi)的狀態(tài)機250首先從重置斷言進入到初始化(init)狀態(tài)255中。根據(jù)該狀態(tài),控制傳遞到活動狀態(tài)260,其中只要沒有接受到請求就對其進行保持。當接收到請求并且經(jīng)準予代理具有零的權(quán)重時,控制傳遞到更新年齡狀態(tài)270,其中年齡儲存器被更新并且用于仲裁獲勝方的權(quán)重計數(shù)器被重新加載為預(yù)定值(例如從配置寄存器獲得)。控制然后根據(jù)是否存在附加請求和經(jīng)準予代理的權(quán)重的值而傳遞到活動狀態(tài)260、遞減代理權(quán)重狀態(tài)280中的一個,或者保持在更新年齡狀態(tài)270。類似地,在遞減代理權(quán)重狀態(tài)280處,獲勝方仲裁權(quán)重計數(shù)器被遞減。但是在這里不執(zhí)行權(quán)重計數(shù)器重新加載。應(yīng)該指出,圖4的流程圖意圖是非限制性的,并且其他狀態(tài)和操作可存在于各種實施例中。圖4的狀態(tài)機的狀態(tài)和描述包括以下內(nèi)容:圖5是根據(jù)本說明書的一個或多個示例的用于在準許仲裁器中執(zhí)行第一級別仲裁的方法300的流程圖。如圖5中所示,方法300可在準許仲裁器內(nèi)被執(zhí)行,其是出于執(zhí)行進入存儲器請求之間的仲裁以及基于仲裁來更新各種年齡和權(quán)重值這兩方面的目的。如圖5中所看到的,方法300可以開始于從耦合至結(jié)構(gòu)的設(shè)備接收存儲器請求(塊310)。更具體地,為了說明與來自延時敏感設(shè)備的基于最后期限的請求有關(guān)的操作,我們可以在一個示例中假設(shè)該存儲器請求包括最后期限值或與最后期限值相關(guān)聯(lián),并因此從等時或延時敏感設(shè)備來提供該存儲器請求。作為一個此類示例,該延時敏感設(shè)備是媒體播放器。如看到的,控制傳遞到判定塊315,在那里可以確定最后期限值是否大于延時閾值。在一個示例中,該延時閾值是從請求被接收到的時間一直到其被完成為止的最小延時(例如通過將所請求的數(shù)據(jù)提供回至針對寫入請求提供寫入完成的請求設(shè)備)。要指出,在一個實施例中最后期限值是請求設(shè)備對于處理存儲器請求而言可以容忍的最大延時。如果確定最后期限值大于延時閾值,則控制傳遞到塊320b,在那里存儲器請求被轉(zhuǎn)發(fā)至低優(yōu)先級仲裁器。否則,控制傳遞到塊320a,在那里存儲器請求被轉(zhuǎn)發(fā)至高優(yōu)先級仲裁器。要指出,存在并行路徑以使得在塊325(塊325a和325b)處在對應(yīng)仲裁器中執(zhí)行仲裁,其是基于與針對向?qū)?yīng)仲裁器提供請求的設(shè)備的年齡值相關(guān)聯(lián)的位向量。接下來,在塊330(塊330a和330b)處,獲勝存儲器請求被轉(zhuǎn)發(fā)至最終仲裁器。在塊335處,執(zhí)行最終仲裁以選擇獲勝方存儲器請求。取決于用于該最終仲裁器的配置的模式,可以僅從高優(yōu)先級仲裁器選擇獲勝方請求,或者可發(fā)生高優(yōu)先級路徑和低優(yōu)先級路徑之間的加權(quán)。因此,在該點處,獲勝存儲器請求被轉(zhuǎn)發(fā)至存儲器調(diào)度器記分板,在那里該存儲器請求可被存儲在條目中以由此使存儲器調(diào)度器仲裁器中的仲裁能夠考慮該存儲器請求??身憫?yīng)于由最終仲裁器對獲勝方的選擇來進一步執(zhí)行各種更新操作。具體來說,在判定塊340處,可以確定獲勝方代理的權(quán)重值是否等于零。如果是這樣的話,控制傳遞到塊345,在那里該權(quán)重值可以被更新為其配置值,例如被存儲在共享存儲器結(jié)構(gòu)的配置寄存器中。控制接下來傳遞到塊350,在那里針對所有代理的年齡值可以被更新(塊350)。為此,所有非獲勝代理可使它們的年齡值遞增,同時獲勝代理可使其年齡值被設(shè)置成最低優(yōu)先級值(例如零)。如果作為代替在判定塊340處確定獲勝方代理的權(quán)重值不為零,則控制傳遞到塊355,在那里獲勝方代理的權(quán)重值被遞減。應(yīng)該指出,圖5的流程圖意圖是非限制性的,并且其他操作可存在于各種實施例中。共享存儲器結(jié)構(gòu)共享資源分配存儲器結(jié)構(gòu)包括允許結(jié)構(gòu)內(nèi)共享資源的公平分配的邏輯,例如圖1的資源分配邏輯148。在一個實施例中,這些共享資源是結(jié)構(gòu)的內(nèi)部數(shù)據(jù)緩沖器、地址標簽儲存器和請求跟蹤器記分板。因為不存在用于請求代理中的任一個的專用資源,所以機制可以限制在結(jié)構(gòu)中對于每個代理而言未決的未完成請求的數(shù)目,同時還例如通過將虛擬條目預(yù)留在這些共享資源中來允許針對代理預(yù)留條目。該結(jié)構(gòu)慮及代理限制的規(guī)定以防止任一個請求代理用光結(jié)構(gòu)的所有可用共享資源。存儲器調(diào)度算法的一部分處理最小化讀取到寫入周轉(zhuǎn)時間對存儲器技術(shù)的性能影響。為了最小化次數(shù),存儲器調(diào)度器在調(diào)度讀取請求至調(diào)度寫入請求之間進行切換,沖刷池(flushpool)被用于詢問寫入請求。沖刷池允許寫入請求目標存儲器在存儲器結(jié)構(gòu)中被累加,直到已經(jīng)接收到足夠的寫入請求以允許結(jié)構(gòu)的存儲器調(diào)度器將寫入請求作為一連串背靠背(back-to-back)請求發(fā)送至存儲器控制器。為了防止結(jié)構(gòu)中的所有可用資源被沖刷池用光,可以指定沖刷限制。當被指定時,沖刷限制使結(jié)構(gòu)在準許仲裁器處阻止來自所有代理的新寫入請求,直到?jīng)_刷池中條目的數(shù)目小于為該沖刷池所編程的值。用于寫入請求的存儲器結(jié)構(gòu)沖刷池當從請求代理接收到寫入請求時,結(jié)構(gòu)將寫入數(shù)據(jù)從請求代理傳送至內(nèi)部數(shù)據(jù)緩沖器。一旦新的數(shù)據(jù)被寫入到結(jié)構(gòu)的內(nèi)部數(shù)據(jù)緩沖器并且從代理的視角來看該請求被收回,緩沖器條目就被視為處于“沖刷池”中。對于一致存儲器業(yè)務(wù),結(jié)構(gòu)可從請求代理接收探聽(snoop)請求。探聽請求可以是對于存儲器的讀取請求或?qū)⒄埱髮懭?。當結(jié)構(gòu)從請求代理接收探聽讀取或?qū)懭胝埱髸r,它將探聽請求發(fā)送給耦合至結(jié)構(gòu)的所有高速緩存代理。該高速緩存代理將對命中它們的高速緩存的探聽請求做出響應(yīng),并且將針對已經(jīng)被高速緩存代理修改的高速緩存線返回寫回(wb)數(shù)據(jù)。wb數(shù)據(jù)然后被寫入到結(jié)構(gòu)的內(nèi)部數(shù)據(jù)緩沖器中并且然后被視為包括在寫入請求目標存儲器的沖刷池中。當沖刷池中的條目的數(shù)目達到針對沖刷限制所編程的值時,在準許仲裁器處阻止例如如通過對請求操作碼字段的解碼所確定的新寫入請求。存儲器結(jié)構(gòu)預(yù)留和限制存儲器結(jié)構(gòu)允許使用代理預(yù)留配置寄存器針對任何代理指定預(yù)留。通過使用這些配置寄存器,用戶可以針對每個代理指定要預(yù)留的存儲器結(jié)構(gòu)中條目的數(shù)目。針對代理預(yù)留的條目是分配給代理的第一條目和針對代理要被收回的最后條目。為了確定代理的預(yù)留條目是將被分配還是收回,每個代理具有與配置寄存器中指定的值進行比較的請求計數(shù)器。如果請求計數(shù)器中的值小于或等于配置寄存器中的值,則代理的預(yù)留條目將被使用。用于為代理提供預(yù)留條目的機制會隨著滿閾值限制而變化,因為針對請求代理而分配或釋放所預(yù)留的條目。最初,通過從記分板中的條目總數(shù)減去針對所有代理預(yù)留的條目的總數(shù)(例如,如由配置寄存器指定的)來計算針對所有代理的滿閾值。當預(yù)留條目被分配給代理時,累加器被用來基于已經(jīng)被使用的預(yù)留條目的總數(shù)來調(diào)整滿閾值。當存儲器結(jié)構(gòu)中未決請求的總數(shù)達到該經(jīng)調(diào)整的滿閾值時,已使用它們的預(yù)留條目或沒有指定預(yù)留條目的代理被阻止。尚未使用它們的預(yù)留條目的代理不被準許仲裁器阻止,直到它們已經(jīng)使用所有它們的預(yù)留條目并且未決請求的總數(shù)達到經(jīng)調(diào)整的滿閾值限制。還可以在存儲器結(jié)構(gòu)的配置寄存器中指定代理限制。在一個實施例中,可通過將用于代理的請求限制設(shè)置成零來禁用這些代理限制。當代理限制被禁用時,可向任何代理分配請求跟蹤器的所有現(xiàn)有條目。為了防止單個代理使用所有請求跟蹤器條目,可以針對代理指定請求限制。當代理的請求計數(shù)器達到針對代理所指定的請求限制時,禁用針對該代理輸入至準許仲裁器的請求。當請求跟蹤器收回針對代理的請求并且該代理的請求計數(shù)器變得小于代理的請求限制時,啟用針對該代理輸入至準許仲裁器的請求。圖6是根據(jù)本說明書的一個或多個示例的資源分配邏輯的一部分的框圖。如圖6中所示,邏輯360可被用于控制在所有代理之間共享的各種資源的分配。如所看到的,加法器368基于從配置儲存器365接收到的代理預(yù)留值來確定預(yù)留條目的總數(shù)。在減法器370處從該總預(yù)留條目值減去標簽條目的數(shù)目。通過觸發(fā)器372將結(jié)果得到的值提供給加法器375,該加法器375將該值與從觸發(fā)器374接收到的所使用的預(yù)留條目的數(shù)目進行組合,如下面進一步所述的基于遞增和遞減預(yù)留計數(shù)值來交替地遞增和遞減該預(yù)留條目的數(shù)目。照此,由加法器375生成的和對應(yīng)于提供給比較器382的一個輸入端的經(jīng)調(diào)整的滿閾值,該比較器382進一步接收來自觸發(fā)器376的所分配的標簽條目的數(shù)目。如果確定經(jīng)調(diào)整的滿閾值小于或等于所分配的標簽條目的該數(shù)目,則滿標志被生成并用于掩蔽不具有預(yù)留條目或已使用它們的預(yù)留條目的代理的請求。如進一步所看到的,另一比較器380被配置成接收給定請求器的預(yù)留配置值和針對該請求器的請求計數(shù)器值(來自觸發(fā)器378)。比較器因此生成關(guān)于請求器是否具有任何自由預(yù)留條目的指示,其作為輸入被提供給進一步接收針對該信道的條目的信道準予和收回的指示的一對與(and)門384和385。照此,這些與門因此分別生成針對對應(yīng)請求器的遞增值和遞減值。對其他請求器執(zhí)行相似的邏輯和操作,其中所有遞增和遞減預(yù)留值被提供給分別生成遞增預(yù)留計數(shù)值和遞減預(yù)留計數(shù)值的對應(yīng)或(or)門386和387。最后,將針對請求器的請求計數(shù)值連同針對該請求器的經(jīng)配置的限制值一起提供給另一比較器390,以由此確定該請求器是否已達到其限制。如果是這樣的話,該限制的指示被用來掩蔽掉用于進一步仲裁的來自該代理的請求。應(yīng)該指出,圖6的框圖意圖是非限制性的,并且其他操作可存在于各種實施例中。共享存儲器結(jié)構(gòu)調(diào)度器仲裁細節(jié)實施例可結(jié)合多個調(diào)度算法以增強跨越支持不同存儲器技術(shù)的多個soc的重用。結(jié)構(gòu)的存儲器調(diào)度器邏輯包含高級qos調(diào)度算法,并且還被優(yōu)化以最小化通常在大多數(shù)存儲器技術(shù)中發(fā)現(xiàn)的性能瓶頸。使用例如dram存儲器而發(fā)生的典型性能瓶頸包括低功率存儲器狀態(tài)的進入和離開、讀取-寫入周轉(zhuǎn)時間、對同一dram庫但對存儲器的不同行的連續(xù)存儲器訪問、以及對不同dram存儲器庫的連續(xù)存儲器訪問。通過將復(fù)雜無序調(diào)度算法包括在共享存儲器結(jié)構(gòu)調(diào)度邏輯中,可以通過將簡化的技術(shù)特定約束求解器附接于結(jié)構(gòu)來使該結(jié)構(gòu)適于許多不同soc,以便支持它們對存儲器技術(shù)或配置的獨特要求。在其他實施例中,圖7-9中描述的方法可以在存儲器控制器中被整體或部分地重復(fù)或者排他性地由存儲器控制器實施。除了改進存儲器調(diào)度邏輯的便攜性之外,實施例還提供存儲器請求延時的可預(yù)測性,因為高級無序調(diào)度算法和qos調(diào)度算法的組合導(dǎo)致了最大請求延時的改善的可預(yù)測性,因為存儲器控制器具有對于重新排序存儲器請求的少得多的靈活性。一旦請求被準許仲裁器準予,它就被排隊到調(diào)度器記分板中。調(diào)度器記分板存儲關(guān)于該請求的信息,調(diào)度器記分板使用該信息來將請求轉(zhuǎn)發(fā)至存儲器控制器以便執(zhí)行對存儲器的讀取或?qū)懭?。在一個實施例中,該信息包括請求地址、請求長度、命令類型(讀取或?qū)懭耄?、服?wù)類種類、存儲器信道、存儲器庫、存儲器等級和頁面命中/未命中狀態(tài)。存儲器調(diào)度器最舊可用隊列實施例提供基于發(fā)送至存儲器控制器的請求歷史的無序頁面感知調(diào)度,盡管該結(jié)構(gòu)并不直接了解存儲器庫的真實狀態(tài)。更具體地,結(jié)構(gòu)的存儲器調(diào)度器將調(diào)度器記分板用作已經(jīng)被發(fā)送至存儲器的請求的歷史緩沖器。因為調(diào)度器記分板被用來反映請求的歷史,所以它試圖將針對請求的狀態(tài)信息盡可能長地保持在記分板中。存儲器調(diào)度器使用被稱為最舊可用隊列(theoldestofavailablequeue)的構(gòu)造來確定可用于被再分配的最舊記分板條目。最舊可用隊列也被存儲器調(diào)度器用來避免可能由于對存儲器的請求的無序調(diào)度而引起的饑餓問題。結(jié)構(gòu)的存儲器調(diào)度器使用最舊可用隊列來確定有多少個同一服務(wù)類種類和類型、讀取或?qū)懭氲恼埱笠呀?jīng)繞過對存儲器的最舊未決請求。一旦已繞過最舊請求的請求數(shù)目達到預(yù)編程的限制(例如由軟件設(shè)置),結(jié)構(gòu)的存儲器調(diào)度器就禁用請求的無序調(diào)度并且對最舊未決請求準予。如上文所提到的,調(diào)度器使用最舊可用隊列來對其記分板中的所有請求的相對年齡保持跟蹤。當由準許仲裁器對以新存儲器地址為目標的請求準予時,到調(diào)度器記分板中的索引指針被排隊到最舊可用隊列的尾條目中,該尾條目然后被視為最新請求。當所有未決請求已完成將數(shù)據(jù)從請求代理傳送至存儲器控制器/將數(shù)據(jù)從存儲器控制器傳送至請求代理時,記分板條目可用于被再分配并且可以被再分配用于由準許仲裁器對新請求準予。由于無序調(diào)度,最舊可用隊列中的最舊條目可能不總是可用于再分配。為了選擇要被再分配給新請求的記分板條目,調(diào)度器檢測對于記分板條目的所有未完成請求是否已經(jīng)完成。在一個實施例中,該調(diào)度器使用具有與記分板條目的數(shù)目相等的長度的請求位向量來指示哪些條目可用于再分配。在請求位向量中設(shè)置為1的位指示與該位位置相對應(yīng)的條目可用于再分配。然后將請求位向量發(fā)送至最舊可用隊列。最舊可用隊列使用存儲在隊列中的索引來選擇與針對隊列的該條目的請求相對應(yīng)的請求向量中的位。隊列的每個條目都與請求向量中的唯一位相關(guān)聯(lián)并且從隊列中的最舊條目開始執(zhí)行“找到第一個(findfirst)”函數(shù),以確定要被再分配的最舊可用請求。在確定要被再分配的最舊可用條目之后,從該最舊可用隊列輸出針對該條目的記分板索引。圖7是根據(jù)本說明書的一個或多個示例的記分板索引生成邏輯的框圖。如圖7中所示,邏輯400包括多個觸發(fā)器410-0—410-n,其以串行配置耦合來存儲對應(yīng)記分板索引。如所看到的,觸發(fā)器410被配置成接收與到調(diào)度器的記分板中的索引指針相對應(yīng)的記分板索引,其也是對于標簽陣列和數(shù)據(jù)緩沖器的索引。觸發(fā)器410可被配置在從最新(即觸發(fā)器410-0)到最舊(即觸發(fā)器410-n)的順序中。在非限制示例中,每個觸發(fā)器都可以是d型觸發(fā)器。在其他實施例中,可使用任何適當?shù)拇鎯υ?。如所看到的,每個觸發(fā)器410的輸出端都被耦合至對應(yīng)的多個多路復(fù)用器420-0—420-n中的一個,該多個多路復(fù)用器420-0—420-n中的每一個都進一步被配置成接收記分板請求向量的位。照此,該位向量例如經(jīng)由已設(shè)置位提供指示來指示對應(yīng)的記分板條目可用于再分配。使用來自多路復(fù)用器420的輸出,可以從比較器輸出端(諸如從比較器420-n)直接地生成或者經(jīng)由邏輯門430-0—430-n(在所示的實施例中其被配置為具有從對應(yīng)的多路復(fù)用器420接收的第一輸入和與對應(yīng)的或門425-0—425-(n-2)的逆輸出端相對應(yīng)的第二輸入的與門)中的對應(yīng)一個來生成準予信號。以這種方式,每次僅準予信號中的單個信號可以是有效的。如在圖7中進一步看到的,準予輸出信號可被耦合至多個與門435-0—435-n中的對應(yīng)一個,該與門435-0—435-n還被配置成接收進入索引信號。進而,來自與門435的輸出可以被耦合至或門440以由此輸出與最舊可用條目相對應(yīng)的記分板索引,以使得執(zhí)行“1熱(1-hot)”多路復(fù)用器功能來提供經(jīng)準予請求的記分板索引的“1熱(onehot)”多路復(fù)用。應(yīng)該指出,圖7的框圖意圖是非限制性的,并且其他元件可存在于各種實施例中。共享存儲器結(jié)構(gòu)存儲器調(diào)度細節(jié)在一個示例中,結(jié)構(gòu)存儲器調(diào)度器包含三個狀態(tài)機,它們一起工作來調(diào)度發(fā)送至存儲器控制器的請求。圖8是根據(jù)本說明書的一個或多個示例的用于調(diào)度器仲裁器的狀態(tài)機的框圖。如圖8中所示,狀態(tài)機500(其可以以硬件、軟件和/或固件來執(zhí)行,諸如圖1的調(diào)度器仲裁器130)可以開始于在系統(tǒng)的重置時進入初始化狀態(tài)init中。控制接下來傳遞到自刷新狀態(tài)機510,其包括“進入”自刷新狀態(tài)512、“請求”自刷新狀態(tài)513和“離開”自刷新狀態(tài)516。如在圖8中看到的,控制從離開自刷新狀態(tài)516傳遞到“讀取/寫入”準予狀態(tài)機520,其進而包括“準予讀取請求”狀態(tài)522和“準予寫入請求”狀態(tài)524。控制從這些狀態(tài)進而傳遞到“讀取”狀態(tài)機530,其包括多個狀態(tài),即“繞過準予”狀態(tài)532、“高優(yōu)先級讀取請求”準予狀態(tài)534、“盡力而為”準予讀取請求狀態(tài)536和“低優(yōu)先級”等時準予讀取請求狀態(tài)538。應(yīng)該指出,圖8的框圖意圖是非限制性的,并且其他元件和修改可存在于各種實施例中。自刷新狀態(tài)機。實施例可控制何時允許存儲器進入和離開低功率存儲器狀態(tài),也被稱為自刷新狀態(tài)。自刷新狀態(tài)機負責(zé)控制何時將指示發(fā)送給存儲器控制器以進入或離開自刷新。對于盡力而為讀取請求,自刷新狀態(tài)機立即轉(zhuǎn)變至離開自刷新狀態(tài)。對于等時讀取請求,存儲器調(diào)度器檢查請求最后期限來確定是否要離開自刷新,以便滿足對于該請求所需的讀取延時。為了確定是否需要離開自刷新以便滿足等時請求要求,存儲器調(diào)度器從全局定時器的當前值減去請求的最后期限。針對結(jié)構(gòu)中被編程為反映對于存儲器控制器離開自刷新且結(jié)構(gòu)將數(shù)據(jù)返回至請求代理而言所需要的最差情況延時的配置寄存器來檢查減法的結(jié)果。對于寫入請求,結(jié)構(gòu)對沖刷池中的臟(dirty)條目的數(shù)目計數(shù)并且針對可編程閾值(被稱為沖刷高水標)來檢查結(jié)果。如果臟條目的數(shù)目超過沖刷高水標的值,則自刷新狀態(tài)機將控制傳遞到離開自刷新狀態(tài)。此外,結(jié)構(gòu)檢查對其中由準予仲裁器阻止請求的同一標簽地址的讀取/寫入沖突。當結(jié)構(gòu)確定請求被地址沖突、代理限制阻止時或者如果請求跟蹤器或存儲器調(diào)度器記分板為滿時,控制從自刷新狀態(tài)機傳遞到離開自刷新狀態(tài)。在一個實施例中,結(jié)構(gòu)還包含可以被編程為使進入自刷新禁用的配置寄存器。當存儲器寄存器將指示發(fā)送至存儲器控制器以離開自刷新時,請求可開始被發(fā)送至存儲器控制器。該存儲器調(diào)度器繼續(xù)將指示發(fā)送至存儲器控制器以在它主動將存儲器請求發(fā)送至存儲器控制器的同時保持離開自刷新。當存儲器調(diào)度器完成將所有讀取請求發(fā)送至存儲器控制器并且沖刷池中的寫入請求的數(shù)目低于臨時高水標限制時,存儲器調(diào)度器轉(zhuǎn)變至請求自刷新狀態(tài)。在請求自刷新狀態(tài)中,如果準許仲裁器沒有對新的請求準予,則在被稱為“進入自刷新延遲”的可編程延遲值被滿足之后狀態(tài)機轉(zhuǎn)變至“進入自刷新”狀態(tài)。在一個實施例中,該延遲被編程于結(jié)構(gòu)中的配置寄存器中。如果由準許仲裁器對新的請求準予,則在某些情況下自刷新狀態(tài)機可轉(zhuǎn)變至“離開自刷新”狀態(tài)。如果接收到新的盡力而為讀取請求或者如果接收到導(dǎo)致沖刷池中條目的數(shù)目超過在沖刷高水標配置寄存器中編程的數(shù)目的寫入請求,則自刷新狀態(tài)機從請求自刷新狀態(tài)轉(zhuǎn)變回至離開自刷新狀態(tài)。如果在狀態(tài)機處于請求自刷新狀態(tài)時接收到等時讀取請求,則針對被稱為“進入自刷新”閾值的編程值來檢查請求的最后期限值。如果最后期限延時大于進入自刷新閾值,則狀態(tài)機繼續(xù)在請求自刷新狀態(tài)中。如果針對請求的最后期限延時小于進入自刷新閾值,則該狀態(tài)機將轉(zhuǎn)變至離開自刷新狀態(tài)。自刷新狀態(tài)機將狀態(tài)驅(qū)動至存儲器控制器以保持離開自刷新,直到狀態(tài)機轉(zhuǎn)變至進入自刷新狀態(tài)。一旦在進入自刷新狀態(tài)中,狀態(tài)機就將指示發(fā)送給存儲器控制器以進入自刷新。下面的表2是根據(jù)本說明書的實施例的自刷新狀態(tài)機的描述。當前狀態(tài)條件描述下一狀態(tài)輸出未知重置重置引腳被斷言進入自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以進入自刷新進入自刷新存儲器調(diào)度器ldl沖刷條目的數(shù)目小于沖刷hwm且沒有盡力而為讀取請求且沒有最后期限時間小于離開自刷新閾值的isoc讀取請求進入自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以進入自刷新進入自刷新離開自刷新1沖刷條目的數(shù)目大于沖刷hwm或盡力而為讀取請求或最后期限時間小于離開自刷新閾值的isoc讀取請求或isoc讀取請求被代理限制或結(jié)構(gòu)記分板全指示阻止離開自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以進入自刷新離開自刷新存儲器調(diào)度器有效等時或盡力而為讀取請求未決或沖刷池條目的數(shù)目高于臨時hwm離開自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以離開自刷新離開自刷新請求自刷新沒有等時或盡力而為讀取請求未決且沖刷池條目的數(shù)目低于臨時hwm請求自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以離開自刷新請求自刷新離開自刷新2接收到最后期限小于進入自刷新閾值的等時讀取請求或接收到盡力而為讀取請求未決,沖刷池條目的數(shù)目現(xiàn)在高于沖刷hwm離開自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以離開自刷新請求自刷新請求自刷新沒有接收到盡力而為讀取請求且沖刷池條目的數(shù)目低于沖刷hwm且進入自刷新定時器大于進入自刷新延遲值進入自刷新結(jié)構(gòu)將指示驅(qū)動至存儲器控制器以進入自刷新讀取/寫入準予狀態(tài)機在一個實施例中,存儲器調(diào)度器使用可配置的閾值來指定何時開始和停止將一連串寫入請求傳送至存儲器控制器。存儲器調(diào)度器可執(zhí)行不同類型的寫入數(shù)據(jù)向存儲器的傳送,例如高優(yōu)先級傳送和低優(yōu)先級傳送(在本文中也分別被稱為對存儲器的寫入請求的高優(yōu)先級沖刷和對存儲器的寫入請求的臨時沖刷)。當沖刷池中條目的數(shù)目達到或超過閾值(沖刷高水標)時,存儲器調(diào)度器開始調(diào)度對存儲器的高優(yōu)先級寫入沖刷并開始將寫入請求發(fā)送至存儲器控制器。存儲器控制器繼續(xù)使用高優(yōu)先級沖刷機制調(diào)度寫入請求,直到?jīng)_刷池中條目的數(shù)目達到或小于閾值(沖刷低水標)為止。臨時沖刷還可由結(jié)構(gòu)存儲器調(diào)度器來執(zhí)行。當存儲器調(diào)度器已完成將所有讀取請求發(fā)送至存儲器控制器并且沖刷池中條目的數(shù)目超過閾值(臨時沖刷限制)時,觸發(fā)臨時沖刷。在一個實施例中,因為性能原因,臨時沖刷限制可以通常被設(shè)置成低于高水標,但是大于或等于低水標。在一些情況下,該臨時沖刷限制可以被設(shè)置成0,以將所有寫入數(shù)據(jù)沖刷到存儲器。一旦最后的讀取請求被發(fā)送至存儲器控制器,如果沖刷池中條目的數(shù)目高于臨時沖刷限制,被稱為臨時沖刷定時器的計數(shù)器每個時鐘周期開始遞增。如果結(jié)構(gòu)沒有接收到對存儲器的新讀取請求并且臨時沖刷定時器達到由臨時沖刷延遲指定的值(其是存儲在配置寄存器中的閾值),則存儲器調(diào)度器開始將寫入請求發(fā)送至存儲器控制器。該臨時沖刷繼續(xù),直到?jīng)_刷池中條目的數(shù)目小于臨時沖刷限制為止或者直到結(jié)構(gòu)接收到新讀取請求為止。讀取/寫入準予狀態(tài)機負責(zé)從準予讀取請求切換至準予寫入請求。在一個實施例中,存儲器調(diào)度器可被配置成允許寫入請求具有超過讀取請求的優(yōu)先級或者當在讀取請求和寫入請求之間進行切換時使用權(quán)重(以便防止當系統(tǒng)被寫入請求飽和時讀取的饑餓)。當權(quán)重被啟用時,存儲器結(jié)構(gòu)使用配置寄存器來獨立地指定讀取和寫入權(quán)重。下面的表3是根據(jù)本說明書的實施例的讀取/寫入準予狀態(tài)機的描述。當前狀態(tài)條件描述下一狀態(tài)輸出未知重置重置引腳被斷言準予讀取請求存儲器調(diào)度器向存儲器控制器發(fā)送讀取請求準予讀取請求準予讀取請求沖刷條目的數(shù)目小于沖刷hwm且讀取/寫入權(quán)重被禁用或沖刷條目的數(shù)目大于hwm且讀取/寫入權(quán)重被啟用且讀取權(quán)重計數(shù)大于0準予讀取請求存儲器調(diào)度器向存儲器控制器發(fā)送讀取請求準予讀取請求準予寫入請求沖刷條目的數(shù)目大于沖刷hwm且讀取/寫入權(quán)重被禁用或沖刷條目的數(shù)目大于hwm且讀取/寫入權(quán)重被啟用且讀取權(quán)重計數(shù)等于0或沒有讀取請求未決且沖刷條目的數(shù)目大于臨時hwm且臨時定時器已到期準予寫入請求存儲器調(diào)度器向存儲器控制器發(fā)送寫入請求準予寫入請求準予寫入請求沖刷條目的數(shù)目大于沖刷hwm且讀取/寫入權(quán)重被禁用或沖刷條目的數(shù)目大于lwm且讀取/寫入權(quán)重被啟用且寫入計數(shù)大于0準予寫入請求存儲器調(diào)度器向存儲器控制器發(fā)送寫入請求準予寫入請求準予讀取請求未決讀取請求且沖刷條目的數(shù)目小于沖刷lwm或未決讀取請求且沖刷條目的數(shù)目大于lwm且讀取/寫入權(quán)重被啟用且寫入權(quán)重計數(shù)等于0準予讀取請求存儲器調(diào)度器向存儲器控制器發(fā)送讀取請求讀取狀態(tài)機讀取狀態(tài)機負責(zé)在高優(yōu)先級等時讀取請求、盡力而為讀取請求和低優(yōu)先級等時讀取請求之間進行切換。讀取狀態(tài)機可以被配置成以多個模式之一來操作。在一個實施例中,提供兩個這樣的模式。第一模式是固定優(yōu)先級模式,在其中讀取狀態(tài)機向高優(yōu)先級等時讀取給予最高優(yōu)先級、向盡力而為讀取請求給予中優(yōu)先級,并且向低優(yōu)先級等時讀取請求給予最低優(yōu)先級。第二模式是啟用用于在高優(yōu)先級等時讀取和盡力而為讀取請求之間進行切換的權(quán)重的使用。在該模式中,低優(yōu)先級等時請求僅在不再存在任何高優(yōu)先級等時或盡力而為讀取請求時被準予。表4是根據(jù)本說明書的讀取狀態(tài)機的描述。當前狀態(tài)條件描述下一狀態(tài)輸出未知重置重置引腳被斷言繞過準予啟用從準許仲裁器的輸出端至存儲器控制器的繞過路徑繞過準予沒有讀取請求在調(diào)度器中沒有讀取請求未決繞過準予啟用從準許仲裁器的輸出端至存儲器控制器的繞過路徑繞過準予高優(yōu)先級isoc請求無序自刷新且高優(yōu)先級isoc請求未決準予高優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送高優(yōu)先級讀取請求繞過準予盡力而為請求無序自刷新且沒有高優(yōu)先級isoc請求且盡力而為請求未決準予盡力而為請求存儲器調(diào)度器向存儲器控制器發(fā)送盡力而為讀取請求繞過準予低優(yōu)先級isoc請求無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且低優(yōu)先級isoc請求未決準予低優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送低優(yōu)先級讀取請求準予高優(yōu)先級isoc請求高優(yōu)先級isoc請求無序自刷新且高優(yōu)先級isoc請求未決且isoc權(quán)重不等于0準予高優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送高優(yōu)先級讀取請求準予高優(yōu)先級isoc請求盡力而為請求無序自刷新且沒有高優(yōu)先級isoc請求未決且isoc權(quán)重等于0且盡力而為請求未決準予盡力而為請求存儲器調(diào)度器向存儲器控制器發(fā)送盡力而為讀取請求準予高優(yōu)先級isoc請求低優(yōu)先級isoc請求無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且低優(yōu)先級isoc請求未決準予低優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送低優(yōu)先級讀取請求準予高優(yōu)先級isoc請求沒有讀取請求未決無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且沒有低優(yōu)先級isoc請求繞過準予啟用從準許仲裁器的輸出端至存儲器控制器的繞過路徑準予盡力而為請求盡力而為請求無序自刷新且沒有高優(yōu)先級isoc請求或者isoc權(quán)重等于0且盡力而為請求未決準予盡力而為請求存儲器調(diào)度器向存儲器控制器發(fā)送盡力而為讀取請求準予盡力而為請求高優(yōu)先級isoc請求無序自刷新且高優(yōu)先級isoc請求未決且isoc權(quán)重不等于0或be權(quán)重等于0準予高優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送高優(yōu)先級讀取請求準予盡力而為請求低優(yōu)先級isoc請求無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且低優(yōu)先級isoc請求未決準予低優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送低優(yōu)先級讀取請求準予盡力而為請求沒有讀取請求未決無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且沒有低優(yōu)先級isoc請求繞過準予啟用從準許仲裁器的輸出端至存儲器控制器的繞過路徑準予低優(yōu)先級isoc請求高優(yōu)先級isoc請求無序自刷新且高優(yōu)先級isoc請求未決準予高優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送高優(yōu)先級讀取請求準予低優(yōu)先級isoc請求盡力而為請求無序自刷新且沒有高優(yōu)先級isoc請求且盡力而為請求未決準予盡力而為請求存儲器調(diào)度器向存儲器控制器發(fā)送盡力而為讀取請求準予低優(yōu)先級isoc請求低優(yōu)先級isoc請求無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且低優(yōu)先級isoc請求未決準予低優(yōu)先級isoc請求存儲器調(diào)度器向存儲器控制器發(fā)送低優(yōu)先級讀取請求準予低優(yōu)先級isoc請求沒有讀取請求未決無序自刷新且沒有高優(yōu)先級isoc請求且沒有盡力而為請求且沒有低優(yōu)先級isoc請求繞過準予啟用從準許仲裁器的輸出端至存儲器控制器的繞過路徑調(diào)度器代理權(quán)重存儲器調(diào)度器將代理權(quán)重用于在同一服務(wù)類種類內(nèi)的代理之間按比例劃分存儲器帶寬。在一個實施例中,配置寄存器針對每個請求代理指定權(quán)重值,并且針對每個代理提供權(quán)重計數(shù)器。代理權(quán)重配置寄存器在準許仲裁器和存儲器調(diào)度器之間是公共的。當在用于連接至結(jié)構(gòu)的代理中的任一個的存儲器調(diào)度器中不存在請求未決時,利用在代理權(quán)重配置寄存器中指定的值來加載代理權(quán)重計數(shù)器。當由準許仲裁器準予請求并且該請求排隊到存儲器調(diào)度器記分板中時,代理id字段連同請求信息一起被存儲在存儲器調(diào)度記分板中。當存儲器調(diào)度器準予其記分板中的請求時,代理id字段被用來確定請求的源并且用于該代理的權(quán)重計數(shù)器被遞減1。一旦代理的權(quán)重計數(shù)器已達到零,針對該代理的剩余請求被掩蔽且不再參與調(diào)度器仲裁。當由于代理的權(quán)重計數(shù)器達到零而掩蔽代理以免于仲裁時,存儲器調(diào)度器繼續(xù)調(diào)度來自剩余代理的請求。一旦用于所有代理的權(quán)重計數(shù)器已達到零或者如果代理的權(quán)重計數(shù)器是非零的但不存在針對該代理的剩余請求,則利用來自代理權(quán)重配置寄存器的值重新加載所有代理權(quán)重計數(shù)器。圖9是根據(jù)本說明書的一個或多個示例的用于執(zhí)行存儲器調(diào)度的方法的框圖。如圖9中所示,方法600可以由共享存儲器結(jié)構(gòu)的調(diào)度器仲裁器來執(zhí)行。如所看到的,方法600可以開始于從存儲器調(diào)度器記分板選擇存儲器請求以用于遞送到存儲器控制器(塊610)。在確定適當條目時可以考慮到各種因素,包括存儲器的狀態(tài)、各種請求的狀態(tài)、未決請求的地址位置之間的關(guān)系,等等。接下來,在塊620處,更新針對所選代理的權(quán)重值。在一個實施例中,執(zhí)行權(quán)重值的遞減。要指出,盡管針對代理的權(quán)重值的初始值與從也被準許仲裁器使用的配置寄存器獲得的權(quán)重值相同,但是要理解的是,針對每個仲裁器提供不同的權(quán)重計數(shù)器以使得能夠?qū)崿F(xiàn)對這些權(quán)重值的獨立控制。仍參考圖9,接下來在判定塊630處,可以確定所選代理的權(quán)重值是否等于零。要指出,在一個非限制性示例中,該確定在一個實施例中可以是其中零是最低優(yōu)先級值。如果確定權(quán)重值是零,則控制傳遞到塊640,在那里掩蔽該所選代理以免于存儲器調(diào)度器內(nèi)的進一步仲裁??刂茝呐卸▔K630和640二者傳遞到判定塊650,在那里可以確定所有代理的權(quán)重值是否等于零。如果是這樣的話,控制傳遞到塊660,在那里針對所有代理的權(quán)重值可以被更新為例如從結(jié)構(gòu)的配置寄存器獲得的它們的配置值。否則,控制從判定塊650傳遞到判定塊670以確定在用于具有非零權(quán)重值的代理的存儲器調(diào)度器中是否存在任何剩余的請求。如果是這樣的話,這些請求可以被處理(例如經(jīng)由方法600的另一次迭代)。否則,如果沒有附加請求留下,則控制傳遞到塊660,在那里可以如所描述那樣更新權(quán)重值。應(yīng)該指出,圖9的流程圖意圖是非限制性的,并且其他元件和修改可存在于各種實施例中。下面的表5提供基于如下針對三個代理的初始權(quán)重值而針對多個時鐘周期進行存儲器調(diào)度的示例操作:代理0權(quán)重=4代理1權(quán)重=2代理2權(quán)重=1。表5時鐘周期代理0請求代理0請求掩蔽代理0權(quán)重計數(shù)器代理1請求代理1請求掩蔽代理1權(quán)重計數(shù)器代理2請求代理2請求掩蔽代理2權(quán)重計數(shù)器重新加載代理權(quán)重代理準予1假假4假假2假假1真沒有準予2真假4真假2真假1假準予代理13真假4真假1真假1假準予代理24真假4真假1真真0假準予代理05真假3真假1真真0假準予代理06真假2真假1真真0假準予代理17真假2真真0真真0假準予代理08真假1真真0真真0真準予代理09真假4真假2真假1假準予代理010真假3真假2真假1假準予代理011真假2真假2真假1假準予代理112真假2真假1真假1假準予代理213真假2真假1真真0假準予代理014真假1真假1真真0假準予代理015真真0真假1真真0真準予代理116真假4真假2真假1假準予代理017真假3真假2真假1假準予代理118真假3真假2真假1假準予代理0無序頁面感知調(diào)度存儲器調(diào)度器對發(fā)送至存儲器控制器的請求重新排序并且尋求針對最大存儲器可能帶寬使優(yōu)化請求流。存儲器調(diào)度器包含被編程為向調(diào)度器提供關(guān)于其附接到的存儲器控制器的信息的配置寄存器。在一個實施例中,這些配置寄存器包括關(guān)于什么地址位被用于存儲器信道、庫、等級和行地址的信息。通過使用編程于配置寄存器中的存儲器配置信息,存儲器調(diào)度器確定調(diào)度器記分板中的每個請求的庫、等級、行和信道。存儲器調(diào)度器記分板還包含針對每個請求的頁面命中狀態(tài)位,其被用于優(yōu)化發(fā)送至存儲器控制器的請求,以使得在將請求發(fā)送至不同頁面之前將對存儲器中同一頁面的請求發(fā)送至存儲器控制器。在初始化之后且在任何請求被發(fā)送至存儲器控制器之前,存儲器調(diào)度器清除其記分板中的所有頁面命中狀態(tài)位。當請求被發(fā)送至存儲器控制器時,存儲器調(diào)度器更新記分板中的頁面命中狀態(tài)位以指示其他請求是針對存儲器中的同一頁面還是針對存儲器中的不同頁面。盡管調(diào)度器并不知曉給定存儲器庫中的頁面的實際狀態(tài),但是這些頁面命中狀態(tài)位可被用作關(guān)于哪些請求是針對最優(yōu)存儲器帶寬而要被發(fā)送至存儲器控制器的最佳候選的提示。當請求被發(fā)送至存儲器控制器時,存儲器調(diào)度器將比較針對記分板中未決的所有其他請求的信道、等級和庫信息。如果記分板條目的信道、等級和庫信息與發(fā)送至存儲器控制器的請求相匹配,則將該條目的行地址與發(fā)送至存儲器控制器的請求的行地址進行比較。如果記分板條目的行地址與請求相匹配,則頁面命中狀態(tài)位被設(shè)置成1;如果行地址與請求不匹配則頁面命中狀態(tài)位被設(shè)置成0,從而指示頁面未命中。對于其中信道、等級或庫位不同于發(fā)送至存儲器控制器的請求的記分板條目而言,不發(fā)生對頁面命中狀態(tài)的更新。當由準許仲裁器準予新請求并且該新請求排隊到調(diào)度器記分板中時,將行地址信息與當前處于記分板中的所有條目進行比較。如果新請求的行地址與調(diào)度器記分板中的一個或多個條目相匹配,且任何匹配條目的頁面命中狀態(tài)位被設(shè)置,則針對新請求的頁面命中狀態(tài)也被設(shè)置。如果行地址與記分板中的任何條目都不匹配或者與它相匹配的所有條目都具有設(shè)置成零的頁面命中狀態(tài),則針對新請求的頁面命中狀態(tài)也被設(shè)置成零。使用存儲在調(diào)度器記分板中的頁面命中和等級狀態(tài)信息,存儲器調(diào)度器基于已經(jīng)被確定為針對大部分基于dram的存儲器技術(shù)提供最優(yōu)帶寬的優(yōu)先級編碼調(diào)度方案來對發(fā)送至存儲器控制器的請求重新排序。存儲器控制器在準予具有較低優(yōu)先級級別的請求之前準予較高優(yōu)先級請求。下面的表6示出根據(jù)本說明書的一個實施例的被存儲器調(diào)度器使用的不同優(yōu)先級級別。存儲器調(diào)度器頁面感知調(diào)度優(yōu)先級頁面命中狀態(tài)等級狀態(tài)優(yōu)先級級別頁面命中同一等級優(yōu)先級級別3(最高)頁面命中不同等級優(yōu)先級級別2頁面未命中同一等級優(yōu)先級級別1頁面未命中不同等級優(yōu)先級級別0(最低)基于年齡的存儲器調(diào)度和饑餓預(yù)防為了防止由于無序頁面感知調(diào)度算法而引起的請求饑餓,至少部分地將年齡概念用于調(diào)度請求。對于每個服務(wù)類(cos)種類,存儲器調(diào)度器包含指定無序(ooo)調(diào)度限制的配置寄存器。為了針對等時cos種類提供較短的最大讀取延時,ooo調(diào)度限制通常被設(shè)置成比盡力而為cos種類的ooo調(diào)度限制更小的值。存儲器調(diào)度器針對盡力而為和等時cos種類創(chuàng)建針對其記分板中的所有未決請求的請求命中向量。這些請求命中向量被發(fā)送至最舊可用隊列,這會確定仍未決的最舊請求。最舊可用隊列輸出一個熱編碼的位向量,其具有被設(shè)置成1來指示最舊請求的位。當存儲器調(diào)度器基于其頁面感知調(diào)度算法來準予請求ooo時,存儲器調(diào)度器對有多少個不是針對每個cos種類的最舊未決請求的請求被準予進行計數(shù)。一旦計數(shù)器達到針對cos種類的ooo調(diào)度限制(這可通過針對cos種類的最差情況可接受延時而完成的性能分析來確定),頁面感知調(diào)度邏輯被禁用并且由存儲器調(diào)度器準予針對cos種類的最舊請求。在針對cos種類的最舊請求被準予的任何時間,針對該cos種類的計數(shù)器被重置成零。為了提供針對cos種類的最低可能延時,ooo調(diào)度限制可以被編程為零,本質(zhì)上禁用了針對該cos種類的頁面感知調(diào)度邏輯。當針對cos種類將ooo調(diào)度限制設(shè)置成零時,可使用請求年齡來調(diào)度對存儲器的請求,該請求年齡通過最舊可用隊列來確定。盡力而為最大延時饑餓預(yù)防對于盡力而為讀取請求而言,該結(jié)構(gòu)利用調(diào)度器記分板中的最后期限存儲信息來存儲一個值,其被用于指定針對調(diào)度盡力而為請求的最大延時值。記分板是條目池并且存儲在記分板中的請求可以是通過也被存儲在用于每個請求的記分板中的請求的服務(wù)類種類所確定的盡力而為或等時請求。在記分板中的請求是盡力而為讀取請求的情況下,最大可允許延時(例如存儲在配置寄存器中的編程值)被用于調(diào)度該請求。當該請求在記分板中排隊并且是盡力而為讀取請求時,最大延時值被添加至全局定時器的當前值。一旦全局定時器達到針對盡力而為請求的最大延時所存儲的值,就針對該請求忽略頁面感知調(diào)度,并且導(dǎo)致當該請求是未決的最舊請求時(例如如通過最舊可用隊列確定)調(diào)度該請求。請求跟蹤器寫入優(yōu)先級和權(quán)重請求跟蹤器負責(zé)將數(shù)據(jù)從請求代理傳送至結(jié)構(gòu)的內(nèi)部存儲器緩沖器。被共享存儲器結(jié)構(gòu)使用的寫入?yún)f(xié)議使所有寫入數(shù)據(jù)以請求順序從請求代理傳送至結(jié)構(gòu)中的內(nèi)部存儲器緩沖器。在一個實施例中,請求跟蹤器使用每個代理的單獨鏈表來保持寫入請求的排序。請求跟蹤器可在將數(shù)據(jù)從請求代理傳送至內(nèi)部數(shù)據(jù)緩沖器之前執(zhí)行針對寫入請求的一致性檢查。對于寫入請求,請求跟蹤器可被配置成支持一個或多個優(yōu)先級級別。當請求被準許仲裁器準予時,針對該請求的最后期限信息被存儲在具有與請求跟蹤器中的條目數(shù)目相對應(yīng)的長度的陣列中。該結(jié)構(gòu)使用例如存儲在配置寄存器中的閾值來指定何時將請求最后期限值視為高優(yōu)先級。將針對請求的每個最后期限值與配置寄存器中編程的閾值進行比較。當最后期限延時小于配置寄存器中的值時,針對請求在跟蹤器的記分板條目中設(shè)置一個位,從而指示該請求是高優(yōu)先級請求。當被啟用用于兩個優(yōu)先級級別操作時,如果針對代理的寫入請求達到鏈表的首部并且針對請求設(shè)置高優(yōu)先級位,則該寫入請求被視為高優(yōu)先級。如果在代理鏈表中的任一個的首部處的任何寫入請求指示寫入請求是高優(yōu)先級請求,則在被輸入至寫入請求仲裁器之前,針對其他代理的其他鏈表的首部處的所有低優(yōu)先級寫入請求被掩蔽。如果在代理鏈表的首部處存在同一優(yōu)先級級別的多個請求,則執(zhí)行仲裁來選擇選取哪個代理來傳送寫入數(shù)據(jù)。請求跟蹤器寫入請求仲裁器寫入請求仲裁器使用基于加權(quán)優(yōu)先級的公平仲裁器來選擇哪個代理傳送寫入數(shù)據(jù)。用于寫入請求仲裁器的權(quán)重被編程于請求跟蹤器中的配置寄存器中。寫入仲裁器在重置時向每個代理指派唯一的優(yōu)先級。在每個周期上,仲裁器僅考慮具有準備好傳遞的數(shù)據(jù)的請求候選,并且準予請求器具有最高優(yōu)先級。當被準予時,使請求候選的權(quán)重遞減1.如果被準予的候選已經(jīng)具有為零的權(quán)重,則仲裁器還如下更新請求候選優(yōu)先級:被準予的候選的優(yōu)先級被設(shè)置成最低優(yōu)先級(例如零):具有比被準予的候選更低的優(yōu)先級的所有候選遞增其優(yōu)先級,并且具有比被準予的候選更高的優(yōu)先級的所有候選保留其優(yōu)先級不變。請求跟蹤器讀取數(shù)據(jù)返回請求代理支持有序數(shù)據(jù)返回或者無序數(shù)據(jù)返回。為了支持無序數(shù)據(jù)返回,使用順序id字段。從具有每個請求的代理發(fā)送順序id并且將該順序id存儲在請求跟蹤記分板中。按請求順序返回來自同一代理的具有同一順序id的請求。針對來自同一代理的具有不同順序id的請求的數(shù)據(jù)不需要按請求順序返回。在一個實施例中,請求跟蹤器使用用于確保當讀取數(shù)據(jù)被返回至請求代理時被正確排序的鏈表。在請求被準許仲裁器準予之前,選取數(shù)據(jù)要被寫入其中的內(nèi)部數(shù)據(jù)緩沖器的條目。當請求被準許仲裁器準予時,包括到內(nèi)部數(shù)據(jù)緩沖器中的索引的請求信息被轉(zhuǎn)發(fā)至請求跟蹤器。當數(shù)據(jù)從存儲器控制器返回時,存儲器調(diào)度器向請求跟蹤器轉(zhuǎn)發(fā)讀取完成指示,其包括到數(shù)據(jù)正被寫入其中的內(nèi)部數(shù)據(jù)緩沖器中的索引字段和存儲器地址的哪些數(shù)據(jù)塊(chunk)已經(jīng)完成存儲器讀取的指示。當請求跟蹤器接收到讀取完成時,它將索引字段與用于存儲在請求跟蹤器記分板中的所有請求的索引字段進行比較。如果記分板條目的索引字段與針對請求的讀取完成相匹配并且針對讀取完成設(shè)置用于請求的所有數(shù)據(jù)塊位,則在請求跟蹤器記分板中設(shè)置一個位,從而指示已完成讀取請求。如果讀取請求已達到鏈表的首部并且設(shè)置請求跟蹤器中的讀取完成狀態(tài)位并且已完成針對請求的所有一致性檢查,則該請求可用于將讀取數(shù)據(jù)返回至代理。類似于寫入請求,請求跟蹤器使用用于記分板條目的請求最后期限信息來指示請求優(yōu)先級。在一個實施例中,請求跟蹤器針對具有準備好返回至請求代理的數(shù)據(jù)的記分板條目創(chuàng)建兩個請求位向量。一個位向量用于低優(yōu)先級讀取請求并且另一個位向量用于高優(yōu)先級讀取請求。請求位向量被輸入至請求跟蹤器最舊可用隊列。最舊可用隊列確定對于兩個請求命中向量來說哪個請求是最舊的。請求跟蹤器具有一個配置模式,當啟用該配置模式時將促使在返回用于任何低優(yōu)先級請求的數(shù)據(jù)之前從由最舊可用隊列選擇的最舊高優(yōu)先級請求返回數(shù)據(jù)。當不啟用高優(yōu)先級數(shù)據(jù)返回的支持時,請求跟蹤器處理準備好返回具有同一優(yōu)先級級別的讀取數(shù)據(jù)的所有記分板條目。在該模式中,僅低優(yōu)先級位向量被用作對最舊可用隊列的輸入,該輸入進而在記分板中確定最舊讀取請求。然后將用于被確定為最舊的記分板條目的讀取數(shù)據(jù)返回至請求代理??稍谠趯⒏鞣Nip集成到單個管芯上以經(jīng)由存儲器結(jié)構(gòu)將這些ip連接至存儲器的許多不同soc或者其他半導(dǎo)體器件中使用實施例。更進一步,根據(jù)本說明書的實施例的存儲器結(jié)構(gòu)可被用來提供用于滿足這些ip中的至少一些的等時要求的qos級別。圖10是根據(jù)本說明書的一個或多個示例的soc的框圖。如圖10中所示,soc700是包括多個ip塊以及如上所述的共享存儲器仲裁器的單個管芯半導(dǎo)體器件。在圖10的實施例中,提供多個核710-1—710-n,它們中的每一個都可以獨立地執(zhí)行指令。在一個實施例中,所有這些核都具有單個設(shè)計(諸如有序核設(shè)計),例如具有英特爾架構(gòu)tm(諸如基于coretm的設(shè)計)。在其他實施例中,核可以是無序處理器,諸如英特爾架構(gòu)tm(ia)32核,諸如英特爾基于coretm的設(shè)計。在其他實施例中,可提供異構(gòu)核的混合。此外,可提供多個圖形引擎(即獨立的圖形單元720-0—720-n),它們中的每一個獨立地執(zhí)行圖形操作。如所看到的,多個核被耦合至共享高速緩存存儲器715(諸如2級(l2)高速緩存),并且類似地,圖形引擎被耦合至另一共享高速緩存存儲器725。系統(tǒng)代理730經(jīng)由對應(yīng)的管芯內(nèi)互連728和729耦合至這些核和圖形引擎。如所看到的,系統(tǒng)代理730包括共享存儲器結(jié)構(gòu)735,其可如本文所描述的那樣來配置。各種其他邏輯、控制器和其他單元(諸如功率管理單元)也可存在于系統(tǒng)代理730內(nèi)。如所看到的,共享存儲器結(jié)構(gòu)735與存儲器控制器740通信,該存儲器控制器740進而耦合至片外存儲器(諸如被配置為dram的系統(tǒng)存儲器)。此外,系統(tǒng)代理730經(jīng)由一組互連744耦合至一個或多個內(nèi)部代理750(諸如各種外圍設(shè)備)。在一個實施例中,互連744可包括優(yōu)先級信道互連、邊帶信道互連和存儲器信道互連。類似配置的互連74提供系統(tǒng)代理730和一個或多個片外代理(在圖10的實施例中為了易于說明而沒有被示出)之間的通信。應(yīng)該指出,圖10的框圖意圖是非限制性的,并且其他元件和修改可存在于各種實施例中。圖11是根據(jù)本說明書的一個或多個示例的存在于計算機系統(tǒng)中的部件的框圖。如圖11中所示,系統(tǒng)800可以包括許多不同部件。這些部件可以被實施為ic、其部分、分立電子設(shè)備、或適用于電路板(諸如計算機系統(tǒng)的母板或添加卡)的其他模塊,或者被實施為以其他方式并入計算機系統(tǒng)的機殼內(nèi)的部件。還要指出,圖11的框圖意圖示出計算機系統(tǒng)的許多部件的高級視圖,然而,要理解的是,可在某些實現(xiàn)方式中存在附加部件并且此外可在其他實現(xiàn)方式中出現(xiàn)所示部件的不同布置。如圖11中所示,處理器810(其可以是低功率多核處理器插座(諸如超低電壓處理器))可充當用于與系統(tǒng)的各種部件通信的主處理單元和中央中樞。此類處理器可以被實施為如本文所述的soc。在一個實施例中,處理器810可以是英特爾?架構(gòu)基于coretm的處理器(諸如i3、i5、i7)或者可從加利福尼亞州圣克拉拉市英特爾公司得到的另一種此類處理器(諸如將一個或多個基于coretm的核與一個或多個英特爾?基于atom?的核組合以由此在單個soc中實現(xiàn)高功率和低功率核的處理器)。然而,要理解,其他低功率處理器(諸如可從以下得到:加利福尼亞州森尼韋爾的高級微設(shè)備公司(amd)和來自arm控股有限公司的基于arm的設(shè)計或來自加利福尼亞州森尼韋爾的mips技術(shù)公司的基于mips的設(shè)計或其他被許可方或采用方)作為替代可存在于其他實施例中,諸如蘋果(apple)a5或a6處理器。在又一其他實施例中,處理器810可以是在虛擬機中實現(xiàn)為硬件和/或軟件的組合的虛擬處理器。處理器810可與系統(tǒng)存儲器815通信,該系統(tǒng)存儲器815在一個實施例中可以經(jīng)由多個存儲器設(shè)備來實施以便提供給定量的系統(tǒng)存儲器。為了提供諸如數(shù)據(jù)、應(yīng)用、一個或多個操作系統(tǒng)等等之類的信息的持久存儲,大容量儲存器820還可耦合至處理器810。在圖11中還示出,閃存設(shè)備822可例如經(jīng)由串行外圍接口(spi)耦合至處理器810。該閃存設(shè)備可提供對系統(tǒng)軟件(包括基本輸入/輸出軟件(bios))以及系統(tǒng)的其他固件的非易失性存儲。各種輸入/輸出(對設(shè)備的各種輸入/輸出)設(shè)備可存在于系統(tǒng)800內(nèi)。在圖11的實施例中具體示出顯示器824,其可以是在機殼的蓋部分內(nèi)配置的高清晰度lcd或led面板。該顯示器面板還可提供觸摸屏825,例如在顯示器面板上外部適配以使得經(jīng)由用戶與該觸摸屏的交互,用戶輸入可以被提供給系統(tǒng)以啟用例如關(guān)于信息的顯示、信息的訪問等等的期望操作。在一個實施例中,顯示器824可以經(jīng)由顯示器互連被耦合至處理器810,該顯示器互連可以被實施為高性能圖形互連。觸摸屏825可經(jīng)由另一互連被耦合至處理器810,在一個實施例中該另一互連可以是i2c互連。如圖11中進一步所示的,除了觸摸屏825結(jié)構(gòu),借助于觸摸,用戶輸入還可以經(jīng)由觸摸板830來發(fā)生,該觸摸板830可被配置在機殼內(nèi)并且還可被耦合至與觸摸屏825相同的i2c互連。為了感知計算和其他目的,各種傳感器可存在于系統(tǒng)中并且可以以不同方式被耦合至處理器810。某些慣性和環(huán)境傳感器可通過傳感器中樞840(例如經(jīng)由i2c互連)耦合至處理器810。在圖11中示出的實施例中,這些傳感器可包括加速度計841、環(huán)境光傳感器(als)842、指南針843和陀螺儀844。其他環(huán)境傳感器可包括一個或多個熱傳感器846,其在一個實施例中可經(jīng)由系統(tǒng)管理總線(smbus)總線耦合至處理器810。還在圖11中看到,各種外圍設(shè)備可經(jīng)由低引腳數(shù)(lpc)互連耦合至處理器810。在所示的實施例中,各種部件可以通過嵌入式控制器835被耦合。此類部件可以包括(例如經(jīng)由ps2接口耦合的)鍵盤836、風(fēng)扇837、和熱傳感器839。在一些實施例中,觸摸板830還可經(jīng)由ps2接口耦合至ec835。此外,諸如根據(jù)2003年10月2日發(fā)布的可信計算組(tcg)tpm規(guī)范版本1.2的可信平臺模塊(tpm)838的安全性處理器也可經(jīng)由該lpc互連耦合至處理器810。系統(tǒng)800可以以各種各樣的方式(包括無線地)與外部設(shè)備通信。在圖11中所示的實施例中,存在各種無線模塊,其中的每一個都可以對應(yīng)于針對特定無線通信協(xié)議所配置的無線電設(shè)備。用于短程(諸如近場)中的無線通信的一種方式可以是經(jīng)由近場通信(nfc)單元845,在一個實施例中其可經(jīng)由smbus與處理器810通信。要指出,經(jīng)由該nfc單元845,彼此緊密接近的設(shè)備可以通信。例如,用戶可以使系統(tǒng)800能夠通過將兩個設(shè)備緊密相關(guān)地適配在一起并且使得能夠?qū)崿F(xiàn)諸如標識信息支付信息之類的信息、諸如圖像數(shù)據(jù)之類的數(shù)據(jù)等等的傳送來與另一(例如)便攜式設(shè)備(諸如用戶的智能電話)進行通信。還可使用nfc系統(tǒng)來執(zhí)行無線功率傳送。如在圖11中進一步看到的,附加無線單元可以包括其他短程無線引擎,包括wlan單元850和藍牙單元852。通過使用wlan單元850,可以實現(xiàn)根據(jù)給定電氣與電子工程師協(xié)會(ieee)802.11標準的wi-fitm通信,同時經(jīng)由藍牙單元852,可以發(fā)生經(jīng)由藍牙協(xié)議的短程通信。這些單元可經(jīng)由例如usb鏈路或通用異步接收器發(fā)送器(uart)鏈路與處理器810通信?;蛘咂渌麊卧山?jīng)由互連經(jīng)由根據(jù)(2007年1月17日公布的)pci快速規(guī)范基礎(chǔ)規(guī)范版本3.0的外圍部件互連快速tm(pcietm)協(xié)議、或另一此類協(xié)議(諸如串行數(shù)據(jù)輸入/輸出(sdio)標準)耦合至處理器810。當然,這些外圍設(shè)備之間的實際物理連接(其可被配置在一個或多個附加卡上)可以借助于適合于母板的下一代形狀因子(ngff)連接器。此外,無線廣域通信(例如根據(jù)蜂窩協(xié)議或其他無線廣域協(xié)議)可以經(jīng)由無線廣域網(wǎng)絡(luò)(wwan)單元856來發(fā)生,該無線廣域網(wǎng)絡(luò)(wwan)單元856進而可耦合至訂戶身份模塊(sim)857。此外,為了能夠?qū)崿F(xiàn)位置信息的接收和使用,還可存在gps模塊855。要指出,在圖11中示出的實施例中,wwan單元856和諸如相機模塊854的集成捕獲設(shè)備可經(jīng)由給定usb協(xié)議(諸如usb2.0或3.0鏈路)或uart或i2c協(xié)議來通信。再次地,這些單元的實際物理連接可以經(jīng)由將ngff添加卡適配至配置在母板上的ngff連接器。為了提供音頻輸入和輸出,可以經(jīng)由數(shù)字信號處理器(dsp)860來實現(xiàn)音頻處理器,該數(shù)字信號處理器(dsp)860可經(jīng)由高清晰度音頻(had)鏈路耦合至處理器810。類似地,dsp860可與集成編碼器/解碼器(codec)和放大器862通信,該放大器862進而可耦合至輸出揚聲器863,其可被實現(xiàn)于機殼內(nèi)。類似地,放大器和codec862可以被耦合以從麥克風(fēng)865接收音頻輸入,在一個實施例中該麥克風(fēng)865可以經(jīng)由雙陣列麥克風(fēng)來實現(xiàn),以提供高質(zhì)量音頻輸入來使得能夠?qū)崿F(xiàn)對系統(tǒng)內(nèi)各種操作的語音激活控制。還要指出,可以將音頻輸出從放大器/codec862提供至耳機插孔864。圖12是在示例控制系統(tǒng)中現(xiàn)場使用的soc的框圖。然而,應(yīng)該指出,僅作為非限制性示例來提供控制系統(tǒng)以及該特定控制系統(tǒng)。在圖12的示例中,soc1200包括多核處理器,包括rt代理115-0和輔助代理115-1。rt代理115-0充當實時(等時)代理,而輔助代理115-1充當盡力而為代理。rt代理115-0和輔助代理115-1共享存儲器控制器170-0和存儲器控制器170-1,它們分別控制存儲器庫1220-0和1220-1。在某些示例中,存儲器庫1220-0和存儲器庫1220-1彼此完全獨立,并且可被交錯以使得偶數(shù)編號的存儲器地址通過存儲器控制器170-0到達庫1220-0,而奇數(shù)編號的存儲器位置被通過存儲器控制器170-1路由至存儲器庫1220-1。這僅作為示例來提供,并且其他存儲器配置和交錯方法是可用的。還應(yīng)該指出,在該示例中,存儲器控制器170和存儲器庫1220被示為在單獨的存儲器總線上。這也作為非限制性示例來公開。在其他示例中,可使用其他存儲器架構(gòu),諸如共享總線或片上網(wǎng)絡(luò)。rt代理115-0可被配置成與用于控制被控設(shè)備1292的控制子系統(tǒng)1290接口連接。在一個實施例中,被控設(shè)備1292可以是任務(wù)關(guān)鍵或安全關(guān)鍵設(shè)備,作為非限制性示例諸如是制造機器人、壽命支持系統(tǒng)、環(huán)境控制系統(tǒng)、交通控制系統(tǒng)或線控(drive-by-wire)系統(tǒng)。控制子系統(tǒng)1290向rt代理115-0提供控制被控設(shè)備1292所必要的所有軟件、固件和硬件。受控系統(tǒng)1290的要求可以是使得所保證的qos對于保持實時操作是必要的。然而,還可能期望的是提供輔助功能(諸如用戶接口),以使得用戶可以提供必要的輸入。輔助代理115-1還可提供諸如監(jiān)視和用戶反饋之類的功能。因此,期望設(shè)計soc1200以使得向rt代理115-0保證其對于實時功能而言的必要qos,但是不會完全獨占系統(tǒng)資源以使得輔助代理115-1不能執(zhí)行其功能,或反之亦然。為此,可提供具有使實時和輔助業(yè)務(wù)量分開的多個虛擬信道和相關(guān)聯(lián)優(yōu)先級方案的共享非核結(jié)構(gòu)1230,以對實時業(yè)務(wù)量準予較高優(yōu)先級,同時為輔助代理115-1留下充足的帶寬以正確地起作用。在該示例中,rt代理115-0經(jīng)由適當?shù)难b置(諸如網(wǎng)絡(luò)接口、專用總線或其他鏈接)通信耦合至受控系統(tǒng)1290。在該圖中,rt代理115-0還經(jīng)由共享非核結(jié)構(gòu)1230通信耦合至rt外圍設(shè)備1210-0。在某些實施例中,為了簡化設(shè)計,共享非核結(jié)構(gòu)1230可被提供為單個或多個模塊化ip塊。為了簡化附圖,以及為了說明許多不同樣式的互連是可能的,在這里沒有圖示rt外圍設(shè)備1210-0和控制子系統(tǒng)1290之間的物理或邏輯連接。但是這不意圖排除此類連接。在一些示例中,rt外圍設(shè)備1210-1可以是形成控制子系統(tǒng)1290的一部分的控制接口,或去往被控設(shè)備1292的物理和邏輯接口(在這種情況下可提供邏輯和/或物理連接)。在其他實施例中,rt外圍設(shè)備1210-0可提供其他實時功能,其可以或者可以不與被控設(shè)備1292直接邏輯相關(guān)。類似地,輔助代理115-1作為示例通信耦合至用戶接口1270或任何其他適當?shù)妮o助系統(tǒng)或子系統(tǒng)。類似于控制子系統(tǒng)1290,用戶接口1270可提供任何適當?shù)能浖⒐碳陀布募弦杂糜谔峁┯脩艚涌?。輔助代理1150-1還經(jīng)由共享非核結(jié)構(gòu)1230通信耦合至輔助外圍設(shè)備1210-1。與實時外圍設(shè)備1210-0一樣,輔助外圍設(shè)備1210-1可以或不可以通信耦合至用戶接口1270。為了簡化繪圖,以及為了說明許多不同的連接選項是可能的,在該圖中沒有示出輔助外圍設(shè)備1210-1和用戶接口1270之間的物理或邏輯連接,但是在一些實施例中,可提供此類連接。在一個非限制性示例中,共享非核結(jié)構(gòu)1230的所選元件包括共享i/o結(jié)構(gòu)1232、共享存儲器結(jié)構(gòu)100和系統(tǒng)代理730。共享i/o結(jié)構(gòu)1232向外圍設(shè)備1210提供互連、調(diào)度和其他通信服務(wù)。在一個示例中,共享i/o結(jié)構(gòu)1232基本上類似于共享存儲器結(jié)構(gòu)100,包括實現(xiàn)與本說明書中描述的那些類似的優(yōu)先級方案。結(jié)合圖1-9更詳細地描述共享存儲器結(jié)構(gòu)100。系統(tǒng)代理730包括控制器以向共享非核結(jié)構(gòu)100提供智能,包括本文中所述的方法。在一個示例中,附加硬件、固件或軟件可包括為系統(tǒng)代理730提供指令以執(zhí)行本文所公開的功能的可執(zhí)行指令或微代碼。外圍設(shè)備1210、存儲器庫1220和經(jīng)由非核結(jié)構(gòu)1230連接至請求代理的任何類似設(shè)備可統(tǒng)稱為“數(shù)據(jù)終端”,從而指示它們最終將數(shù)據(jù)發(fā)送至代理115或從代理115接收數(shù)據(jù)。在一個示例中,共享核結(jié)構(gòu)1230僅包括一組物理總線、互連、寄存器或其他資源,其可以被實時代理115-0和輔助代理115-1(連同任何其他代理)用來通信耦合至外圍設(shè)備1210以及耦合至存儲器控制器170。因此,為了確保針對實時代理115-0的所保證的qos,可能需要共享互連資源1230來提供代理115、外圍設(shè)備1210和存儲器控制器170之間的優(yōu)先級方案。共享非核結(jié)構(gòu)的某些實施例可采用在所有代理之間共享的僅一個虛擬信道。然而,本說明書還描述了一種提供多個虛擬信道以使得共享非核結(jié)構(gòu)1230可以在用于實時代理115-0的業(yè)務(wù)量和用于輔助代理115-1的業(yè)務(wù)量之間進行辨別、分離和優(yōu)先化的方法。該分離可能是期望的,以使得在其必需的情況下來自實時代理115-0的業(yè)務(wù)量可接收優(yōu)先級(包括超過來自輔助代理115-1的業(yè)務(wù)量的搶先優(yōu)先級)。在一個示例中,定義兩個虛擬信道:即虛擬信道vc_aux1240和虛擬信道vc_rt1242。vc_aux1240可被提供用于盡力而為事務(wù),而vc_rt1242被專用于實時或等時事務(wù)。業(yè)務(wù)模式可包括代理至外圍設(shè)備(經(jīng)由共享i/o結(jié)構(gòu)1232)、代理至存儲器(經(jīng)由共享存儲器結(jié)構(gòu)100)、外圍設(shè)備至代理(經(jīng)由共享i/o結(jié)構(gòu)1232)、外圍設(shè)備至存儲器(經(jīng)由共享i/o結(jié)構(gòu)1232和共享存儲器結(jié)構(gòu)100)、以及存儲器至外圍設(shè)備(經(jīng)由共享i/o結(jié)構(gòu)1232和共享存儲器結(jié)構(gòu)100)??稍谝粋€示例中通過對用于源自于代理115的分組的資源代理進行解碼來完成劃分成虛擬信道。應(yīng)該指出,在某些已知實施例中,為了路由目的,對每個分組的目的地進行解碼,并且每個分組的目的地可基于分組的屬性(諸如存儲器地址和/或操作碼)。在該示例中,仍可提供目的地解碼,并且目的地解碼可以是對源代理的解碼的附加。一旦源代理被解碼,就可向分組指派“業(yè)務(wù)量類”,其可具有對虛擬信道的一對一對應(yīng)性。例如,業(yè)務(wù)量類0可對應(yīng)于vc_aux,而業(yè)務(wù)量類1可對應(yīng)于vc_rt。有利地,業(yè)務(wù)量類可被編碼為報頭中的字段或用于分組的元數(shù)據(jù)以使得諸如外圍設(shè)備1210之類的端點不需要知曉虛擬信道架構(gòu)來保持端對端虛擬信道功能。這可保持舊有互操作性。在一個示例中,系統(tǒng)代理730可以向每個分組預(yù)加(prepend)報頭數(shù)據(jù),從而標識分組要被在其上載送的虛擬信道或業(yè)務(wù)量類。根據(jù)本文所述的qos方案,某些虛擬信道可被給予某些優(yōu)先級權(quán)重。優(yōu)先級方案可包括為高優(yōu)先級業(yè)務(wù)量提供高“準予計數(shù)”數(shù)目和/或向vc_rt上的業(yè)務(wù)量指派到期的最后期限以加快該業(yè)務(wù)量。在源自于外圍設(shè)備1210的分組(諸如響應(yīng)分組)的情況下,外圍設(shè)備1210可能不知曉虛擬信道結(jié)構(gòu)。然而,良好配置的外圍設(shè)備1210應(yīng)該回應(yīng)(echoback)與其所響應(yīng)于的分組相附接的業(yè)務(wù)量類字段。因此,舊有外圍設(shè)備1210可以能夠成功地將分組指引至其合適的虛擬信道,盡管在共享非核結(jié)構(gòu)1230內(nèi)多個虛擬信道的存在是不可知的。在源自于外圍設(shè)備1210并被指引至存儲器1220(而不是對代理115的響應(yīng))的分組的情況下,可基于外圍設(shè)備1210自身的性質(zhì)來指派業(yè)務(wù)量類。例如,如果已知rt外圍設(shè)備1210通常被用于實時事務(wù),則從rt外圍設(shè)備1210至存儲器1220的分組可被指引至vc_rt。類似地,源自于輔助外圍設(shè)備1210-1并被指引至存儲器1220的分組可被指引至vc_aux。在一個示例中,還可以例如根據(jù)每個分組的目的地將虛擬信道進一步細分。因此,例如,從實時代理115-0至任何存儲器控制器170的業(yè)務(wù)量可被給予非常高的優(yōu)先級或甚至搶先優(yōu)先級以保證qos。然而,從實時代理115-0至實時外圍設(shè)備1210-0的業(yè)務(wù)量可能是較不時間關(guān)鍵的。因此,該業(yè)務(wù)量可被指派稍稍更低(盡管可能仍被加快)的優(yōu)先級。在一個示例中,可基于哪個共享資源正被考慮來對vc_rt和vc_aux不同地進行優(yōu)先化。例如,從外圍設(shè)備至存儲器的vc_rt和vc_aux可使用針對不同優(yōu)先化的最后期限,而核和外圍設(shè)備之間的vc_rt和vc_aux路徑可使用準予計數(shù)。當然,這些配置僅作為非限制性示例來提供。本領(lǐng)域技術(shù)人員將根據(jù)特定實施例的設(shè)計約束來選擇合適的優(yōu)先級方案。圖13圖示了soc(諸如圖12的soc1200)的附加選擇的元件的示例。在這個示例中,提供了多個代理115,具體是在四個雙核cpu中的八個總代理。每個cpu包括高速緩存1310(在兩個核之間共享),并且提供輸出總線1370??赡苄枰谒泻?15之間保持高速緩存一致性。因此,共享非核結(jié)構(gòu)100可以提供高速緩存一致性跟蹤器,如本文所描述的。在一個示例中,輸出總線1370可以具有用于載送各種信號的大致600到700條線。因此,在某些實施例中將每條線單獨地路由至共享非核結(jié)構(gòu)100是不實際的。相反,提供了四個選擇器1320。選擇器1320多路復(fù)用來自核115的業(yè)務(wù)。在一般意義上來說,對于p個核,僅n個輸入總線需要被提供到共享非核結(jié)構(gòu)100中。在此特定情況下,p=8,并且n=2。然而,在某些實施例中,對選擇器1320來說作為簡單的多路復(fù)用器是不夠的。例如,傳統(tǒng)多路復(fù)用器可以根據(jù)選擇信號來阻塞某些輸入。對于soc1200來說這可能是不可接受的,因為來自代理115的每個分組需要最終被遞送到共享非核結(jié)構(gòu)100。因此,在一個示例中,選擇器1320是非阻塞多路復(fù)用器。例如這可以通過提供以先進先出(fifo)緩沖器形式的隊列來完成。利用fifo緩沖器,所有分組以它們被接收到的順序被遞送到共享非核結(jié)構(gòu)100。圖14和14a是根據(jù)本說明書的一個或多個示例的選擇器1320的實施例的框圖。在此示例中,許多信號或者是“核到非核”(c2u)或“非核到核”(u2c)。通過例證的方式,每個總線包括數(shù)據(jù)寬度,但應(yīng)該理解的是這些數(shù)據(jù)寬度被提供為非限制性示例。如可看到的,許多必要的總線非常大,諸如u2c數(shù)據(jù),其為128位寬。因此,多路復(fù)用這些信號是有利的。然而,其他信號要窄得多,并且在一些實施例中不需要被多路復(fù)用。例如“c2ureply”僅為15位寬。因此,在某些實施例中,可以在不多路復(fù)用的情況下提供窄總線,而不管其方向如何。這有助于加速某些關(guān)鍵數(shù)據(jù)事務(wù)。注意到遍及選擇器1320提供了許多隊列。通過示例的方式提供以下內(nèi)容。u2c請求隊列1410可以包括idi氣泡生成器fifo(bgf)信用計數(shù)器,其處理從邏輯塊時鐘比和電壓到系統(tǒng)接口時鐘比和電壓以及相反的轉(zhuǎn)換。從idi視角,這樣的fifo是運輸協(xié)議層消息的鏈路層構(gòu)造,并且每個bgf寫入器本地跟蹤獲得構(gòu)造條目的使用所需的可用bgf信用。c2u請求仲裁器1420包括薄片散列(slicehash)和加權(quán)年齡仲裁。其也可以包括b準許c2u請求fifo信用計數(shù)器。u2c數(shù)據(jù)fifo1430可以包括idibgf信用計數(shù)器。c2u數(shù)據(jù)仲裁器1440可以包括加權(quán)年齡四計數(shù)仲裁寫入數(shù)據(jù)fifo信用計數(shù)器。u2c響應(yīng)fifo1450包括idibgf信用計數(shù)器。在圖14a中,衛(wèi)星c2u請求仲裁器1460包括加權(quán)循環(huán)反復(fù)b準許c2u請求fifo信用計數(shù)器。衛(wèi)星u2c數(shù)據(jù)隊列1462包括bgf信用計數(shù)器。衛(wèi)星u2c響應(yīng)隊列1470包括bgf信用計數(shù)器。衛(wèi)星c2u數(shù)據(jù)仲裁器1480包括加權(quán)循環(huán)反復(fù)優(yōu)先級c2u數(shù)據(jù)fifo信用計數(shù)器。衛(wèi)星c2u數(shù)據(jù)隊列1490包括bgf信用計數(shù)器。本說明書的實施例提供超過僅為下行業(yè)務(wù)提供單個vc的某些實施例(它們中的一些不會為實時應(yīng)用提供端對端qos)的優(yōu)點。本文通過示例的方式公開了一種互連裝置,其包括:高速緩存一致性跟蹤器;數(shù)據(jù)接口,其將所述高速緩存一致性跟蹤器通信地耦合到p個高速緩存一致代理,所述數(shù)據(jù)接口包括n個輸入總線,其中n<p;以及至少一個多路復(fù)用器,其選擇性地從所述高速緩存一致代理中的至少兩個向所述輸入總線中的一個提供輸入。進一步公開了一個示例,其中所述多路復(fù)用器是非阻塞多路復(fù)用器。進一步公開了一個示例,其中所述多路復(fù)用器是排隊多路復(fù)用器。進一步公開了一個示例,其中所述排隊多路復(fù)用器包括先進先出隊列。進一步公開了一個示例,其中所述n個輸入總線要接收第一信號,并且還包括p個非多路復(fù)用的輸入總線以接收第二信號。進一步公開了一個示例,其中要接收所述第二信號的所述p個輸入總線比要接收所述第一信號的所述n個輸入總線具有基本上更小的數(shù)據(jù)寬度。進一步公開了一個示例,進一步包括p個非多路復(fù)用的輸出總線來提供返回信號。進一步公開了一個示例,其中所述p個非多路復(fù)用輸出總線比所述n個輸入總線具有基本上更小的數(shù)據(jù)寬度。通過示例的方式進一步公開了一種計算系統(tǒng),其包括:p個高速緩存一致代理;至少一個共享資源;以及共享結(jié)構(gòu),其將所述p個高速緩存一致代理通信地耦合到所述至少一個共享資源,所述共享結(jié)構(gòu)包括:高速緩存一致性跟蹤器;數(shù)據(jù)接口,其將所述高速緩存一致性跟蹤器通信地耦合到所述p個高速緩存一致代理,所述數(shù)據(jù)接口包括n個輸入總線,其中n<p;以及至少一個多路復(fù)用器,其選擇性地從所述高速緩存一致代理中的至少兩個向所述輸入總線中的一個提供輸入。進一步公開了一個示例,其中所述多路復(fù)用器是非阻塞多路復(fù)用器。進一步公開了一個示例,其中所述多路復(fù)用器是排隊多路復(fù)用器。進一步公開了一個示例,其中所述排隊多路復(fù)用器包括先進先出隊列。進一步公開了一個示例,其中所述n個輸入總線要接收第一信號,并且還包括p個非多路復(fù)用的輸入總線以接收第二信號。進一步公開了一個示例,其中要接收所述第二信號的所述p個輸入總線比要接收所述第一信號的所述n個輸入總線具有基本上更小的數(shù)據(jù)寬度。進一步公開了一個示例,進一步包括p個非多路復(fù)用的輸出總線來提供返回信號。進一步公開了一個示例,其中所述p個非多路復(fù)用輸出總線比所述n個輸入總線具有基本上更小的數(shù)據(jù)寬度。通過示例的方式進一步公開了一種保持計算系統(tǒng)中的高速緩存一致性的方法,其包括:接收來自p個高速緩存一致代理的輸入;將所述p個輸入多路復(fù)用到n個輸入總線中,其中p<n;以及將所述p個輸入提供給共享結(jié)構(gòu)。進一步公開了一個示例,其中多路復(fù)用所述p個輸入包括非阻塞多路復(fù)用。進一步公開了一個示例,其中多路復(fù)用所述p個輸入包括對所述輸入進行排隊。進一步公開了一個示例,其中所述排隊包括先進先出排隊。進一步公開了一個示例,其中所述p個輸入包括第一信號,并且所述示例進一步包括接收包括第二信號的p個非多路復(fù)用的輸入。進一步公開了一個示例,還包括提供p個非多路復(fù)用的輸出。盡管已經(jīng)關(guān)于有限數(shù)目的實施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將會從其認識到許多修改和變化。所意圖的是,所附權(quán)利要求覆蓋如落入該本發(fā)明的真實精神和范圍內(nèi)的所有此類修改和變化。設(shè)計可經(jīng)歷各個階段,從創(chuàng)建到模擬到制造。表示設(shè)計的數(shù)據(jù)可表示處于許多方式的設(shè)計。首先,如在模擬中有用的,可使用硬件描述語言或另一功能描述語言來表示硬件。另外地,可在設(shè)計過程的某些階段產(chǎn)生具有邏輯和/或晶體管門的電路級模型。此外,在某些階段大多數(shù)設(shè)計達到表示硬件模型中的各種設(shè)備的物理放置的數(shù)據(jù)級。在使用常規(guī)半導(dǎo)體制造技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是指定各種特征在針對用于產(chǎn)生集成電路的掩模的不同掩模層上的存在或不存在的數(shù)據(jù)。在設(shè)計的任何表示中,可以以任何形式的機器可讀介質(zhì)來存儲數(shù)據(jù)。諸如盤之類的存儲器或者磁性或光學(xué)存儲可以是機器可讀介質(zhì),以存儲經(jīng)由光波或電波傳送的信息,該光波或電波被調(diào)制或以其他方式被生成以傳送此類信息。當指示或載送代碼或設(shè)計的電學(xué)載波被傳送時,在電信號的拷貝、緩沖或重傳被執(zhí)行的程度上,制作新的拷貝。因此,通信提供商或網(wǎng)絡(luò)提供商可將物品(諸如被編碼成載波的信息)至少暫時存儲在有形的機器可讀介質(zhì)上,從而體現(xiàn)本發(fā)明的實施例的技術(shù)。如本文所使用的模塊指的是硬件、軟件和/或固件的任何組合。作為一個示例,模塊包括與非瞬時介質(zhì)相關(guān)聯(lián)的硬件(諸如微控制器),以存儲被適配成要由微控制器執(zhí)行的代碼。因此,在一個實施例中,對模塊的引用指的是具體被配置成識別和/或執(zhí)行要被保持在非瞬時介質(zhì)上的代碼的硬件。此外,在另一實施例中,模塊的使用指的是包括代碼的非瞬時介質(zhì),其被具體適配成要由微控制器來實行以執(zhí)行預(yù)定操作。并且如可以被推斷的,在又一實施例中,術(shù)語模塊(在該示例中)可指的是微控制器和非瞬時介質(zhì)的組合。通常,被圖示為分離的模塊邊界一般會變化并且潛在地重疊。例如,第一和第二模塊可在潛在地保留某些獨立硬件、軟件或固件的同時共享硬件、軟件、固件或其組合。在一個實施例中,術(shù)語邏輯的使用包括硬件,諸如晶體管、寄存器或其他硬件(諸如可編程邏輯設(shè)備)。在一個實施例中,短語“用以”或“被配置成”的使用指的是布置、放在一起、制造、供應(yīng)來銷售、引進和/或設(shè)計一種裝置、硬件、邏輯或元件來執(zhí)行指定任務(wù)或確定任務(wù)。在該示例中,如果未正在操作的裝置或其元件被設(shè)計、耦合和/或互連以執(zhí)行所述指定任務(wù),則該裝置或其元件仍“被配置成”執(zhí)行所述指定任務(wù)。作為純粹例證性的示例,邏輯門可在操作期間提供0或1。但是“被配置成”向時鐘提供使能信號的邏輯門不包括可提供1或0的每個潛在邏輯門。而是,邏輯門是以在操作期間1或0輸出要啟用時鐘的某一方式耦合的一種邏輯門。再一次要指出,術(shù)語“被配置成”的使用不需要操作,而是作為代替著重于裝置、硬件和/或元件的潛在狀態(tài),在這種情況下在該潛在狀態(tài)中裝置、硬件和/或元件被設(shè)計成當該裝置、硬件和/或元件正在操作時執(zhí)行特定任務(wù)。此外,在一個實施例中,短語‘能夠/能夠用以’、和或‘可操作為’的使用指的是某種裝置、邏輯、硬件和/或元件以能夠?qū)崿F(xiàn)該裝置、邏輯、硬件和/或元件以具體方式的使用的這種方式被設(shè)計。如上文指出的,在一個實施例中,“用以”、“能夠用以”或“可操作為”的使用指的是裝置、邏輯、硬件和/或元件的潛在狀態(tài),在這種情況下該裝置、邏輯、硬件和/或元件并沒有正在操作,而是以能夠?qū)崿F(xiàn)裝置以具體方式的使用的這種方式被設(shè)計。如本文所使用的,值包括數(shù)字、狀態(tài)、邏輯型狀態(tài)或二進制邏輯型狀態(tài)的任何已知表示。通常,邏輯電平、邏輯值或邏輯學(xué)值的使用也指的是1和0,其僅表示二進制邏輯狀態(tài)。例如,1指的是高邏輯電平并且0指的是低邏輯電平。在一個實施例中,存儲單元(諸如晶體管或閃存單元)可以能夠保持單個邏輯值或多個邏輯值。然而,已經(jīng)使用計算機系統(tǒng)中的值的其他表示。例如,十進制數(shù)10也可被表示為1010的二進制值以及十六進制字母a。因此,值包括能夠在計算機系統(tǒng)中保持的信息的任何表示。此外,狀態(tài)可以由值或值的部分來表示。作為一個示例,第一值(諸如邏輯一)可表示默認或初始狀態(tài),而第二值(諸如邏輯零)可表示非默認狀態(tài)。另外,在一個實施例中,術(shù)語重置和設(shè)置分別指的是默認和經(jīng)更新的值或狀態(tài)。例如,默認值潛在地包括高邏輯值(即重置),而經(jīng)更新的值潛在包括低邏輯值(即設(shè)置)。要指出,值的任何組合可被用來表示任何數(shù)目的狀態(tài)。上面闡述的方法、硬件、軟件、固件或代碼的實施例可經(jīng)由存儲在可由處理元件執(zhí)行的機器可訪問介質(zhì)、機器可讀介質(zhì)、計算機可訪問介質(zhì)或計算機可讀介質(zhì)上的指令或代碼來實施。非瞬時機器可訪問/可讀介質(zhì)包括提供(即存儲和/或傳送)處于由機器(諸如計算機或電子系統(tǒng))可讀的形式的信息的任何機構(gòu)。例如,非瞬時機器可訪問介質(zhì)包括隨機存取存儲器(ram)(諸如靜態(tài)ram(sram)或動態(tài)ram(dram));rom;磁或光學(xué)存儲介質(zhì);閃速存儲器設(shè)備;電存儲設(shè)備;光學(xué)存儲設(shè)備;聲學(xué)存儲設(shè)備;用于保持從瞬時(傳播的)信號(例如載波、紅外線信號、數(shù)字信號)接收的信息的其他形式的存儲設(shè)備;等等,它們將與可從其接收信息的非瞬時介質(zhì)相區(qū)分。用于對邏輯編程以執(zhí)行本發(fā)明的實施例的指令可被存儲在系統(tǒng)的存儲器(諸如dram、高速緩存、閃速存儲器或其他存儲)內(nèi)。此外,可以經(jīng)由網(wǎng)絡(luò)或借助于其他計算機可讀介質(zhì)來分配該指令。因此,機器可讀介質(zhì)可包括用于存儲或傳送以由機器(例如計算機)可讀的形式的信息的任何機構(gòu),但不限于軟盤、光盤、壓縮盤、只讀存儲器(cd-rom)、以及磁光盤、只讀存儲器(rom)、隨機存取存儲器(ram)、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、磁卡或光卡、閃速存儲器、或在通過因特網(wǎng)經(jīng)由電、光、聲或其他形式的傳播信號(例如載波、紅外線信號、數(shù)字信號等等)的信息傳輸中使用的有形機器可讀存儲。因此,計算機可讀介質(zhì)包括適于存儲或傳送以由機器(例如計算機)可讀的形式的信息或電子指令的任何類型的有形機器可讀介質(zhì)。遍及該說明書對“一個實施例”或“實施例”的引用意指結(jié)合該實施例描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施例中。因此,短語“在一個實施例中”或“在實施例中”在遍及本說明書的各個位置中的出現(xiàn)不一定都指的是同一實施例。此外,在一個或多個實施例中可以以任何適當方式來組合特定特征、結(jié)構(gòu)或特性。在前述說明書中,已經(jīng)參考具體示例性實施例而給出詳細描述。然而,將明顯的是,可以在不偏離如所附權(quán)利要求中闡述的本發(fā)明的較廣闊精神和范圍的情況下對實施例做出各種修改和改變。相應(yīng)地,要以例證性意義而非限制性意義來考慮說明書和附圖。此外,實施例以及其他示例性語言的前述使用不一定指的是相同的實施例或相同的示例,而是可指代不同且有區(qū)別的實施例,以及潛在相同的實施例。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嵊泗县| 孝昌县| 瑞金市| 丹棱县| 香格里拉县| 谷城县| 微山县| 临潭县| 万荣县| 南昌县| 金山区| 江油市| 浦县| 宁德市| 当雄县| 泰顺县| 襄汾县| 土默特右旗| 宁夏| 徐水县| 哈巴河县| 大荔县| 瑞安市| 定襄县| 古交市| 灵璧县| 林州市| 郑州市| 东兰县| 凤山市| 灵寿县| 斗六市| 花垣县| 嘉兴市| 青神县| 若羌县| 大宁县| 北京市| 新干县| 泸溪县| 铜陵市|