專利名稱:存儲器請求調(diào)度的應(yīng)用程序選擇的制作方法
存儲器請求調(diào)度的應(yīng)用程序選擇相關(guān)申請的引用本申請與下述共同待審申請相關(guān)2009年7月22日提交的申請序列號 12/507,696(代理案卷號 VXZ01-012-US),題為 “Batch Scheduling With Segregation"; 以及2009年7月23日提交的申請序列號12/508,457(代理案卷號ZAV01-013-US),題為 "Scheduling Of Threads By Batch Scheduling,,。
背景技術(shù):
在芯片多處理器(CMP)系統(tǒng)中,DRAM系統(tǒng)在內(nèi)核之間共享。在共享DRAM系統(tǒng)中, 來自一個線程的請求不但通過引起組(bank)沖突、總線沖突或行緩沖器沖突來延遲來自其他線程的請求,而且還破壞其他線程的DRAM組級別并行性。具有延遲的請求(否則,這些請求會交疊)實際上成為串行的。結(jié)果,公平性和系統(tǒng)吞吐量都會劣化,并且一些線程可能在較長時段上處于饑餓狀態(tài)。一種提供公平和高性能存儲器調(diào)度的方法是使用稱為并行性意識批調(diào)度 (PAR-BS)的調(diào)度算法,如 Onur Mutlu禾口 Thomas Moscibroda 的"Parallelism—Aware Batch Scheduling :Enhancing both Performance and Fairness of Shared DRAM Systems,,, isca, pp. 63-74, 2008 (2008 International Symposium on Computer Architecture)中所示,其全部內(nèi)容(除了其中與本申請不一致的內(nèi)容)通過參考合并在此。PAR-BS設(shè)計基于兩個思想(1)請求分批;以及(2)并行性意識存儲器調(diào)度。首先,PAR-BS成批地處理DRAM 請求,以提供公平性和避免請求饑餓。其次,為優(yōu)化系統(tǒng)吞吐量,PAR-BS采用并行性意識 DRAM調(diào)度策略,該策略旨在在DRAM組中并行處理來自線程的請求,從而減少線程經(jīng)歷的存儲器有關(guān)滯延時間。PAR-BS結(jié)合了對系統(tǒng)級線程優(yōu)先級的支持,并能夠向具有不同優(yōu)先級的線程提供不同的服務(wù)級別,包括純機會主義的服務(wù)。
發(fā)明內(nèi)容
在第一方面,本公開大體描述了一種對針對存儲器中的數(shù)據(jù)的請求進行調(diào)度的方法,包括利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用所選調(diào)度算法來調(diào)度請求; 以及根據(jù)調(diào)度算法,利用存儲器控制器來調(diào)度請求。在第二方面,本公開大體描述了一種對針對存儲器中的數(shù)據(jù)的請求進行調(diào)度的計算機程序產(chǎn)品,具有在計算機可讀介質(zhì)中編碼的軟件。該軟件包括在執(zhí)行時可操作用于如下的指令利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用調(diào)度算法來調(diào)度請求;以及根據(jù)調(diào)度算法,利用存儲器控制器來調(diào)度請求。在第三方面,本公開大體描述了一種計算機系統(tǒng),具有多個內(nèi)核、可操作性耦合至所述多個內(nèi)核的包含數(shù)據(jù)的存儲器、可操作性耦合至所述多個內(nèi)核的存儲器控制器、以及可操作性耦合至所述多個內(nèi)核的計算機可讀介質(zhì)。計算機可讀介質(zhì)包括計算機可執(zhí)行指令,當(dāng)由計算機系統(tǒng)執(zhí)行時,計算機可執(zhí)行指令將計算機系統(tǒng)配置為利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用調(diào)度算法來調(diào)度請求;以及根據(jù)調(diào)度算法,利用存儲器控
4制器來調(diào)度請求。以上發(fā)明內(nèi)容僅僅是說明性的,而絕不是限制性的。除了上述示例性的各方案、 各實施例和各特征之外,參照附圖和以下詳細說明,將清楚其他方案、其他實施例和其他特征。
在本說明書的總結(jié)部分特別指出并明確要求保護主題。根據(jù)以下說明和所附權(quán)利要求,結(jié)合附圖,本公開的前述和其他特征將更加清楚。在認識到這些附圖僅僅示出了根據(jù)本公開的一些示例且因此不應(yīng)被認為是限制本公開范圍的前提下,通過使用附圖更加具體和詳細地描述本公開,附圖中圖1示出了計算機系統(tǒng);圖2示出了由操作系統(tǒng)執(zhí)行應(yīng)用程序;圖3示出了將應(yīng)用程序劃分成線程的示意表示,包括圖3A中存儲器控制器的調(diào)度器的詳細視圖,其中線程發(fā)布發(fā)送給存儲器控制器的請求;圖4示出了帶隔離的批調(diào)度的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖示例;圖5示出了針對帶隔離的批調(diào)度,成批地布置來自線程的請求的示意表示;以及圖6示出了全部根據(jù)本公開的至少一些實施例布置的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖示例。
具體實施例方式下面描述給出了多種示例以及具體細節(jié),以提供對所要求保護的主題的充分理解。然而,本領(lǐng)域技術(shù)人員將理解,可以在沒有本文公開的一些或更多具體細節(jié)的情況下實施要求保護的主題。此外,在一些情況下,不詳細描述已知的方法、過程、系統(tǒng)、部件和/或電路,以避免不必要地模糊要求保護的主題。在以下詳細說明中,參考了作為詳細說明的一部分的附圖。在附圖中,類似符號通常表示類似部件,除非上下文另行指明。
具體實施方式
部分、附圖和權(quán)利要求書中記載的示例性實施例并不是限制性的。在不脫離在此所呈現(xiàn)主題的精神或范圍的情況下,可以利用其他實施例,且可以進行其他改變。應(yīng)當(dāng)理解,在此一般性記載以及附圖中圖示的本公開的各方案可以多種不同配置來設(shè)置、替換、組合和設(shè)計, 它們?nèi)慷荚诒竟_中明確考慮并形成本公開一部分。在以下描述中,可以提供對例如計算機和/或計算系統(tǒng)存儲器等計算系統(tǒng)內(nèi)存儲的數(shù)據(jù)比特和/或二進制數(shù)字信號的操作的算法和/或符號表示。一般將算法看作引導(dǎo)至所需結(jié)果的自相一致的操作序列和/或類似處理,其中操作可以包括對物理量的物理操縱,物理量可以采用電、磁和/或電磁信號的形式,能夠被存儲、傳送、組合、比較和/或以其他方式操縱。在多種情況下,這種信號可以稱為比特、數(shù)據(jù)、值、元素、符號、字符、項、數(shù)、數(shù)值等。然而本領(lǐng)域技術(shù)人員將認識到,這些術(shù)語可以用于暗指物理量。因此,當(dāng)在本說明書中使用例如“存儲”、“處理”、“獲取”、“計算”、“確定”等術(shù)語時,這些術(shù)語可以指例如計算機或類似電子計算設(shè)備(例如蜂窩電話)等計算平臺的動作,該計算平臺在計算機平臺的處理器、存儲器、寄存器等內(nèi)操縱和/或變換表示為物理量(包括電子和/或磁量)的數(shù)據(jù)。
本公開尤其涉及與存儲器請求調(diào)度的應(yīng)用程序選擇有關(guān)的方法、裝置、系統(tǒng)和計算機程序產(chǎn)品。本公開大體上也利用如下發(fā)現(xiàn)使用應(yīng)用程序從多個調(diào)度算法中選擇用于調(diào)度請求的調(diào)度算法,并指示存儲器控制器使用所選調(diào)度算法。圖1示出了根據(jù)本公開至少一些實施例布置的計算機系統(tǒng)。圖1示出了計算機 100包括處理器110、存儲器120和一個或多個驅(qū)動130。驅(qū)動130及其關(guān)聯(lián)的計算機存儲介質(zhì)可以提供為計算機100提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。驅(qū)動130可以包括操作系統(tǒng)140、應(yīng)用程序150、程序模塊160和數(shù)據(jù)庫180。操作系統(tǒng) 140和/或應(yīng)用程序150例如可以包括使計算機100執(zhí)行圖6所示的功能和/或操作的程序指令,例如作為應(yīng)用的一部分的調(diào)度算法153。計算機100可以包括用戶輸入設(shè)備190, 通過用戶輸入設(shè)備190,用戶可以輸入命令和數(shù)據(jù)。輸入設(shè)備可以包括電子數(shù)字化儀、麥克風(fēng)、鍵盤和指定設(shè)備(指定設(shè)備通常稱為鼠標(biāo)、軌跡球或觸摸板)。其他輸入設(shè)備可以包括操縱桿、游戲板、圓盤衛(wèi)星天線、掃描儀等。上述和其他輸入設(shè)備可以通過用戶輸入接口耦接至處理器110,用戶輸入接口可以耦接至系統(tǒng)總線,或者可以通過其他接口或總線結(jié)構(gòu)(例如并行端口、游戲端口或通用串行總線(USB)等)連接。計算機100可以包括外圍輸出設(shè)備,例如揚聲器、打印機或顯示器202,外圍輸出設(shè)備可以通過輸出外圍接口 194等連接。計算機100可以配置為在使用至一個或多個計算機(例如連接至網(wǎng)絡(luò)接口 196的遠程計算機)的邏輯連接的聯(lián)網(wǎng)環(huán)境中操作。遠程計算機可以是個人計算機(PC)、服務(wù)器、 路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他常見網(wǎng)絡(luò)節(jié)點,并且可以包括上述相對于計算機100所述的元件中的許多或者全部。聯(lián)網(wǎng)環(huán)境可以包括辦公室、企業(yè)廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)。在一個示例中,計算機100可以是數(shù)據(jù)從其遷出的源機器,而遠程計算機可以包括目的地機器,反之亦然。源和目的地機器可以不通過網(wǎng)絡(luò)108或任何其他手段連接,而是數(shù)據(jù)可以經(jīng)由任何能夠由源平臺寫入并由目的地平臺讀取的介質(zhì)來遷出。在LAN或WLAN聯(lián)網(wǎng)環(huán)境中, 計算機100可以通過網(wǎng)絡(luò)接口 196或適配器連接至LAN或WAN。在WAN聯(lián)網(wǎng)環(huán)境中,計算機 100可以包括調(diào)制解調(diào)器或用于通過例如互聯(lián)網(wǎng)或網(wǎng)絡(luò)108等WAN建立通信的其他手段。 可以使用在計算機之間建立通信鏈接的其他手段。計算機外圍設(shè)備可以包括通過系統(tǒng)總線耦接至計算機100的處理器110和存儲器 120的任何設(shè)備。計算機外圍設(shè)備可以包括與輸出外圍接口連接的任何設(shè)備,包括顯示器 202、打印機、揚聲器、驅(qū)動130、用戶輸入設(shè)備190以及網(wǎng)絡(luò)接口 196,用戶輸入設(shè)備190例如包括鍵盤、鼠標(biāo)和麥克風(fēng)。計算機外圍設(shè)備的部件可以包括計算機外圍設(shè)備內(nèi)的任何設(shè)備,該設(shè)備可以使用電能并且可以是任何設(shè)備,例如揚聲器、照明元件(例如發(fā)光二極管或用于為顯示器提供照明的背光)、顯示元件(例如IXD、LED、OLED、CRT或等離子體顯示器)、 或者半導(dǎo)體芯片(例如中央處理器(CPU)、圖像處理單元(GPU)、存儲器)。圖2示出了根據(jù)本公開至少一些實施例布置的由操作系統(tǒng)執(zhí)行應(yīng)用程序。如圖2 所示,操作系統(tǒng)140可以執(zhí)行來自驅(qū)動130的應(yīng)用程序150。操作系統(tǒng)140和/或應(yīng)用程序150可以包括用于使計算機100執(zhí)行圖6所指定的功能和/或操作的程序指令。應(yīng)用程序150可以是可由多處理器111中的操作系統(tǒng)140執(zhí)行的任何應(yīng)用、程序、程序部分或線程。應(yīng)用程序150可以使用存儲器控制器210將數(shù)據(jù)230加載到存儲器120中以及從存儲
6器120存取數(shù)據(jù)。應(yīng)用程序150可以布置為運行多個子應(yīng)用調(diào)用的線程220,以完成任務(wù), 例如使用一個或多個請求226向存儲器120的存儲器組122加載數(shù)據(jù)230和從存儲器120 的存儲器組122存取數(shù)據(jù)230。線程220可以由應(yīng)用程序150執(zhí)行。應(yīng)用程序150可以布置為按照應(yīng)用程序的需求將任務(wù)的執(zhí)行劃分成多個線程220來完成該任務(wù)。例如,如果應(yīng)用程序150是針對具有多頁的文檔的word處理程序,并且應(yīng)用程序150配置為完成每頁文檔的拼寫檢查任務(wù),則應(yīng)用程序150可以布置為將文檔拼寫檢查任務(wù)劃分成多個線程220, 使得每個線程220可以對文檔的一部分進行拼寫檢查。可以將每個線程220發(fā)送給多處理器111以便執(zhí)行。當(dāng)在多處理器111內(nèi)執(zhí)行時,每個線程220可以產(chǎn)生對存儲器120內(nèi)數(shù)據(jù)230的請求226??梢詫⒄埱? 發(fā)送至存儲器控制器210,存儲器控制器210可以對請求2 進行組織,使得多處理器111可以配置為高效操作。在一些實施例中,如圖2所示,多處理器111可以包括可以同時執(zhí)行多于一個線程 220的處理器。多處理器111可以包括稱作內(nèi)核412和512的多個處理器,或者包括稱為多線程處理器的可以同時運行多個線程220的單個處理器(只有412和512之一)。圖2示出了包括兩個內(nèi)核412和512的示例多處理器111,但是不限于任何具體的內(nèi)核數(shù)目。術(shù)語 “內(nèi)核”可以用在本文中指可以處理單個線程的任何裝置,并且可以指可以處理單個線程的處理器或處理器內(nèi)的一部分。多線程處理器可以指具有多個內(nèi)核的處理器。包括多個處理器的計算機100在本文中可以稱為具有多個內(nèi)核的計算機100。圖3示出了根據(jù)本公開至少一些實施例的將應(yīng)用程序劃分成線程的示意表示,其中線程可以發(fā)布發(fā)送給存儲器控制器的請求。如圖3所示,應(yīng)用150可以劃分成多個線程 220a-220n,其中η可以表示線程220的數(shù)目,并且每個線程可以執(zhí)行應(yīng)用150的任務(wù),并可以在例如圖2的多處理器111上執(zhí)行每個線程。多處理器可以配置為從應(yīng)用程序150單獨地或同時接收并執(zhí)行多個線程220a-220n。在多處理器上執(zhí)行的每個線程220可以與每個其他線程220相獨立地執(zhí)行,并且可以發(fā)布對于存儲器120中存儲的數(shù)據(jù)230的多個請求 220al-220n。,其中第一索引(a…η)表示與請求2 關(guān)聯(lián)的線程220,第二索引(1…ο)表示與具體線程220關(guān)聯(lián)的請求226的數(shù)目。每個線程220可以發(fā)布對于存儲器120中存儲的數(shù)據(jù)230的請求226,在一個示例中,請求2 是對于存儲器120內(nèi)存儲器組122^12 中存儲的數(shù)據(jù)230的請求,其中索引 (a,tr"m)可以表示存儲器組122的數(shù)目。存儲器120可以包括多個存儲器組1223到12 , 多個存儲器組122a到12 可以配置為如果多個未決存儲器請求226尋求來自不同存儲器組的數(shù)據(jù)230,則允許這些請求2 并行進行。由此,在接收到對于數(shù)據(jù)230的請求2 時, 存儲器控制器210可以并發(fā)地訪問第一存儲器組122a和第二存儲器12\。每個存儲器組122可以是二維陣列,包括列C1到Ci以及行隊到Rj,其中索引(L··· i)可以表示列數(shù),索引(1…j)可以表示行數(shù)。行可以在連續(xù)存儲位置中存儲數(shù)據(jù),并且大小可以例如是近似1-2千字節(jié)(KB)。可以從最多包含一行的行緩沖器&訪問存儲器組122 中的數(shù)據(jù)230。在一個示例中,每個存儲器組122可以包含一個行緩沖器&。對每個數(shù)據(jù) 230請求2 進行服務(wù)所需的時間可以依據(jù)每個行緩沖器&的狀態(tài),并且可以落入三個類別之一。第一類別可以是行命中,其中請求2 針對每個行緩沖器&中當(dāng)前開啟的行,這允許存儲器控制器210只發(fā)布至相應(yīng)存儲器組122的讀或?qū)懨睿斐山M訪問等待時間ta。第二類別可以是行關(guān)閉,其中行緩沖器&可能沒有開啟的行,從而存儲器控制器210需要首先發(fā)布開啟所需行的激活命令,然后發(fā)布讀/寫命令,造成總等待時間tKm+ta, tKD是針對激活命令的等待時間,是針對讀/寫命令的等待時間。第三類別可以是行沖突,其中請求2 針對與相應(yīng)行緩沖器&中的當(dāng)前行不同的行,從而存儲器控制器210需要首先發(fā)布預(yù)充電命令并開啟所需行(通過激活該行),并發(fā)布針對所需行中數(shù)據(jù)的讀/寫命令。這些訪問導(dǎo)致最大的總等待時間、^、^+{…{砠是針對行預(yù)充電(以關(guān)閉該行)的等待時間,tECD是針對激活命令的等待時間,tCL是針對讀/寫命令的等待時間。存儲器控制器210可以布置為與存儲器120和多處理器通信,并且可以位于沿系統(tǒng)的任何位置,包括在多處理器內(nèi)。存儲器控制器210可以包括存儲器請求緩沖器211,存儲器請求緩沖器211可以布置為在請求2 等待被服務(wù)時緩沖請求2 和數(shù)據(jù)230。存儲器控制器210可以包括調(diào)度器212,調(diào)度器212可以配置為選擇要被服務(wù)的下一請求226。 在一些實施例中,調(diào)度器212可以具有兩級。當(dāng)選擇要被服務(wù)的下一請求226時,調(diào)度器 212可以配置為考慮存儲器組122a-12\的狀態(tài)、將存儲器控制器210與每個存儲器組122 連接的存儲器總線214a-214m的狀態(tài)、以及請求2 的狀態(tài)。如果針對請求2 的存儲器命令的調(diào)度不引起任何資源(例如存儲器組122a-12\和地址/數(shù)據(jù)/系統(tǒng)總線)沖突,并且不違反任何存儲器時序制約,則調(diào)度器212可以調(diào)度該針對請求226的存儲器命令??梢哉J為不引起任何沖突的存儲器命令準(zhǔn)備好了。存在多種存儲器請求調(diào)度算法。示例包括(A)先準(zhǔn)備好先到先服務(wù);(B)網(wǎng)絡(luò)公平排隊,以及其變型,開始時間公平排隊;(C)滯延時間公平存儲器調(diào)度器;以及(D)并行性意識批調(diào)度,其使用分批算法和批內(nèi)調(diào)度算法兩者,允許通過使用不同的分批算法(例如基于時間的靜態(tài)分批和空時隙分批)和/或不同的批內(nèi)調(diào)度算法(例如并行性意識批內(nèi)調(diào)度,總體最大批內(nèi)調(diào)度,隨機批內(nèi)調(diào)度,循環(huán)法批內(nèi)調(diào)度,以及先準(zhǔn)備好先到先服務(wù)批內(nèi)調(diào)度)。另外,下面(圖4和幻更加詳細地描述了另一存儲器請求調(diào)度算法(E)帶隔離的批調(diào)度,其也可以使用分批算法和批內(nèi)調(diào)度算法兩者。在該算法中,可以將分批算法調(diào)整為基于例如發(fā)布了請求的線程的特性,對請求進行分組。對于線程,例如(1)基于線程被設(shè)計與并行存儲器一起使用的良好程度,分為好設(shè)計線程和差設(shè)計線程;(2)基于線程與其他線程一起工作的高效程度,分為合作線程和不合作線程;(3)基于線程所發(fā)源的應(yīng)用程序, 分為第一應(yīng)用、第二應(yīng)用和第三應(yīng)用線程;(4)基于線程發(fā)布的請求的相對數(shù)目,分為大請求線程、中等請求線程(可選的)、以及小請求線程,例如大請求線程可以發(fā)布平均數(shù)目的請求或更多請求,小請求線程可以發(fā)布小于平均數(shù)目的個數(shù)的請求。與并行性意識批內(nèi)調(diào)度類似,可以使用不同的批內(nèi)調(diào)度算法來創(chuàng)建多個變型(例如并行性意識批內(nèi)調(diào)度,總體最大批內(nèi)調(diào)度,隨機批內(nèi)調(diào)度,循環(huán)法批內(nèi)調(diào)度,以及先準(zhǔn)備好先到先服務(wù)批內(nèi)調(diào)度)。圖3A包括可以與帶隔離的批調(diào)度一起使用的調(diào)度器212的詳細視圖,示出了調(diào)度算法300的各部分,包括分批算法302、以及批內(nèi)調(diào)度算法或并行性意識批內(nèi)調(diào)度算法350。 備選地,調(diào)度算法可以采用批內(nèi)調(diào)度算法和并行性意識批內(nèi)調(diào)度算法兩者。再次參照圖3和圖3A,為提高來自線程220a_220n的請求226al_2^n。的調(diào)度效率, 存儲器控制器210和特別是調(diào)度器212可以適配為使用帶隔離的批調(diào)度作為調(diào)度算法300, 這可以考慮到線程組內(nèi)并行性,并且可以向每個線程220a-220n提供服務(wù)質(zhì)量OioS)。服務(wù)質(zhì)量可以看作是向不同220a-220n提供不同優(yōu)先級的能力,和/或在執(zhí)行線程220a-220n時提供基本等級性能的能力。調(diào)度算法300可以設(shè)計為為公平性、QoS和高CMP系統(tǒng)吞吐量提供可配置的基礎(chǔ)。分批算法302可以適配為將多個未決存儲器請求226al-2^n。分組成多個批。調(diào)度算法300可以適配為確保屬于當(dāng)前批的所有請求226al-2^5n。在后續(xù)批形成之前受到服務(wù)。分批算法302可以配置為同時形成多個批,其中可以使用本文描述的特定準(zhǔn)則來形成每個批。分批算法可以布置為將存儲器請求緩沖器中的未決請求分組成請求集合,稱為批。存儲器調(diào)度器可以通過使屬于當(dāng)前批的請求比其他請求優(yōu)先,來避免在批之間進行請求重排序。一旦批中的所有請求都被服務(wù)了,例如,當(dāng)批完成時,可以對下一批進行服務(wù),該下一批可以包括存儲器請求緩沖器中未包括在上一批中的未決請求。同時形成多個批可以允許對批內(nèi)的請求進行重排序。分批算法可以如下工作。存儲器請求緩沖器中的每個請求可以具有關(guān)聯(lián)比特,該比特指示該請求屬于當(dāng)前批中的哪個批。例如,如果請求屬于第一批,則關(guān)聯(lián)比特可以設(shè)定為指示該請求屬于第一批,并且可以認為該請求是被標(biāo)記的??梢曰诒疚拿枋龅奶囟?zhǔn)貝U,形成多個批,其中將每個請求標(biāo)記以指示該請求要放置在多個批的哪一個批中,或者是多個批中哪一個批的一部分。當(dāng)存儲器請求緩沖器中沒有未標(biāo)記的請求留下時,例如當(dāng)已經(jīng)完全服務(wù)了來自當(dāng)前批的所有請求時,可以形成新的批。在一些實施例中,當(dāng)形成批時,分批算法可以針對每個線程,對每個存儲器組的未決請求進行標(biāo)記,一直標(biāo)記到設(shè)定數(shù)目,即標(biāo)記上限;這些請求可以形成一批。可以利用標(biāo)記上限作為系統(tǒng)參數(shù),該系統(tǒng)參數(shù)可以限制能夠成為批的一部分的由線程針對某一組發(fā)布的請求的數(shù)目。例如,如果標(biāo)記上限是5,并且線程具有針對存儲器組的7個未決請求,則分批算法可以標(biāo)記5個最早的請求(或者,如果存在少于5個請求,則標(biāo)記更少的請求)。示例包括2、3、5、7、10、20、50或更大的標(biāo)記上限。此外,對于不同類型的批,如本文所述,標(biāo)記上限可以不同。在一些示例中,當(dāng)未設(shè)定標(biāo)記上限時,可以在形成一個或多個批時標(biāo)記所有的未決請求。分批算法可以布置為在給定存儲器組中使標(biāo)記的請求(成批的請求)比未標(biāo)記的請求優(yōu)先。如果沒有針對給定存儲器組的標(biāo)記的請求,則可以針對該組調(diào)度未決的未標(biāo)記請求??梢圆捎萌魏维F(xiàn)有或新的存儲器調(diào)度算法,例如FR-FCFS,在兩個標(biāo)記的或兩個未標(biāo)記的請求中進行選擇。圖4和6是示出了根據(jù)本公開至少一些實施例布置的方法、設(shè)備(系統(tǒng))和計算機程序產(chǎn)品的流程圖。將理解,可以通過計算機程序指令來實現(xiàn)圖4和6所示流程圖的每個塊、以及圖4和6所示流程圖的塊的組合??梢詫⑦@些計算機程序指令加載到計算機、處理器或者其他可編程數(shù)據(jù)處理設(shè)備,以產(chǎn)生機器,使得在計算機或其他可編程數(shù)據(jù)處理設(shè)備上運行的指令創(chuàng)建用于實現(xiàn)流程圖塊或多塊中指定的功能的裝置。這些計算機程序指令也可以存儲在存儲設(shè)備中,存儲設(shè)備可以弓丨導(dǎo)計算機、處理器或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作,使得存儲設(shè)備中存儲的指令產(chǎn)生制造品,該制造品包括用于實現(xiàn)流程圖塊或多塊中指定的功能的指令裝置。也可以將這些計算機程序指令加載到計算機、處理器或者其他可編程數(shù)據(jù)處理設(shè)備,以引起要在計算機、處理器或者其他可編程數(shù)據(jù)處理設(shè)備上執(zhí)行的一系列操作步驟,從而產(chǎn)生計算機實現(xiàn)的過程,使得在計算機、處理器或者其他可編程數(shù)據(jù)處理設(shè)備上執(zhí)行的指令提供用于實現(xiàn)流程圖塊或多塊中指定的功能的步驟。
9
相應(yīng)地,圖4和6所示流程圖的塊支持用于執(zhí)行指定功能/操作/動作的裝置的組合、或者用于執(zhí)行指定功能或操作的步驟與用于執(zhí)行指定功能或操作的程序指令的組合。 將理解,可以通過專用的基于硬件的計算機系統(tǒng)或者專用硬件和計算機指令的組合,來實現(xiàn)圖4和6所示流程圖的每個塊或者圖4和6所示流程圖的塊的組合,其中專用的基于硬件的計算機系統(tǒng)執(zhí)行指定功能/操作/動作或步驟。這種計算機指令可以固定在有形介質(zhì)上,例如在計算機可讀介質(zhì)(例如,軟盤、 ⑶-R0M、R0M或硬盤)上,或者是經(jīng)由調(diào)制解調(diào)器或其他接口設(shè)備(例如通過介質(zhì)連接至網(wǎng)絡(luò)的通信適配器)可傳輸至計算機系統(tǒng)的。介質(zhì)可以是有形介質(zhì)(例如光或模擬通信線路),或者以無線技術(shù)(例如,微波、紅外線或其他傳輸技術(shù))實現(xiàn)的介質(zhì)。計算機指令序列具體體現(xiàn)了在前相對于系統(tǒng)描述的全部功能性或其中一部分。本領(lǐng)域技術(shù)人員應(yīng)該理解,這種計算機程序可以多種編程語言來編寫,以與許多計算機架構(gòu)或操作系統(tǒng)一起使用。此外,這種指令可以存儲在任何存儲器設(shè)備中,例如半導(dǎo)體、磁、光或其他存儲器設(shè)備,并且可以使用任何通信技術(shù)來傳輸,例如光、紅外線、微波或其他傳輸技術(shù)。預(yù)期的是這種計算機程序產(chǎn)品可以作為可移除介質(zhì)連同印刷或電子的文檔 (例如,收縮包裝的軟件)一起分發(fā),預(yù)加載到計算機系統(tǒng)(例如,系統(tǒng)上ROM或硬盤),或者通過網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)或萬維網(wǎng))從服務(wù)器或電子公告板分發(fā)。圖4示出了帶隔離的批調(diào)度的示例。如圖所示,可以在塊501發(fā)起用于形成一個或多個線程請求批的方法500,其中每一批可以包括一個或多個請求。在發(fā)起方法500之后,在塊502,可以將線程隔離成(標(biāo)識為)線程類型,例如第一線程類型和第二線程類型, 或者第一、第二和第三線程類型。可以在塊504形成一個或多個批,每一批可以包含從類似或相同線程類型的線程發(fā)布的請求。在形成一個或多個批(每一批可以包含一個或多個請求)之后,在塊506,可以由存儲器控制器執(zhí)行這一個或多個批??梢砸淮螆?zhí)行這一個或多個批中的一個,或者如果計算機具有能力,可以一次執(zhí)行多個??梢曰诙鄠€不同準(zhǔn)則中的任意準(zhǔn)則,進行線程隔離(標(biāo)識)以及對來自不同線程類型的請求進行分批。例如,可以將線程隔離成(1)基于線程設(shè)計用于并行存儲器的良好程序,分為好設(shè)計線程和差設(shè)計線程(2)基于線程與其他線程一起工作的效率,分為合作線程和非合作線程;(3)基于程序所發(fā)源的應(yīng)用程序,分為第一應(yīng)用、第二應(yīng)用和第三應(yīng)用線程;(4)基于線程發(fā)出的請求的相對個數(shù),分為大請求線程、可選的中等請求線程、以及小請求線程,例如大請求線程可以發(fā)出平均個數(shù)或更多的請求,小請求線程可以發(fā)出個數(shù)少于平均個數(shù)的請求。許多其他變體也是可能的。因此,依據(jù)所選的準(zhǔn)則,可以有第一線程類型、第二線程類型、可選的第三線程類型、可選的第四線程類型等。圖5是使用可以產(chǎn)生兩個線程類型的準(zhǔn)則的帶隔離的批調(diào)度的示例;如上所述, 依據(jù)所選的準(zhǔn)則,可以存在多于兩個的線程類型??梢詫⒕€程220a-220jS離成第一線程類型250和第二線程類型251。然后可以將每種線程類型發(fā)布的請求(例如從第一線程類型250發(fā)布的第一請求沈0,以及從第二線程類型251發(fā)布的第二請求沈1)形成一個或多個線程請求批232a-23&。每個批可以包括一種線程類型的請求,例如如圖所示,第一批 232a可以包括第一請求沈0,最末批23 可以包括第二請求沈1。在另一示例中,每個批 232a-232x可以主要包含來自第一線程類型250的第一請求沈0,或者主要包含來自第二線程類型251的第二請求沈1。以這種方式,批232a-23&可以形成為對于來自每個線程類型的請求是同質(zhì)的或主要是同質(zhì)的。可以一次執(zhí)行這一個或多個批中的一個,或者如果計算機具有能力,可以一次執(zhí)行多個。本文所用的術(shù)語“主要”可以是多于大致50%、多于大致 80%、多于大致95%或者多于大致99%?!┬纬闪艘粋€或多個批,調(diào)度算法可以布置為采用批內(nèi)調(diào)度算法或并行性意識批內(nèi)調(diào)度算法,對批內(nèi)的請求服務(wù)進行調(diào)度??梢允褂萌魏闻鷥?nèi)調(diào)度算法,例如FR-FCFS。在批內(nèi),并行性意識批內(nèi)調(diào)度算法可以布置為首先優(yōu)先考慮行命中請求。其次,相比于來自較低等級的線程的請求,可以優(yōu)先考慮來自較高等級的線程的請求。最后,所有其他請求都是平等的,可以相比于較新的請求,優(yōu)先考慮較早的請求。并行性意識批內(nèi)調(diào)度算法可以布置為在批內(nèi)使用基于等級的線程優(yōu)先化方案。當(dāng)形成新的批時,存儲器調(diào)度器可以布置為在具有該新批中的請求的所有線程之間計算等級排列。當(dāng)處理該新批時,所計算的等級排列可以保持相同,相比于來自等級較低線程的請求,可以優(yōu)先考慮來自等級較高線程的請求。雖然可以使用任何基于等級排列的方案,但是具體的等級排列過程可以對CMP吞吐量和公平性具有顯著影響。好的等級排列方案可以有效地在存儲器密集和非密集線程 (以及具有較高組并行性的線程)之間進行區(qū)分。在一些實施方式中,可以采用符合最短工作優(yōu)先原則的等級排列方案可以將非密集線程的等級排列得比密集線程的等級高。圖6示出了根據(jù)本公開的至少一些實施例布置的方法、設(shè)備(系統(tǒng))和計算機程序產(chǎn)品的流程圖。如圖6所示,可以在框601發(fā)起用于存儲器請求調(diào)度的方法600。在發(fā)起該方法600之后,可以在框602使用應(yīng)用程序選擇調(diào)度算法。例如,可以使用發(fā)布了線程 (該線程或這些線程發(fā)布了請求)的應(yīng)用程序來選擇調(diào)度算法。選擇的調(diào)度算法可以是任何調(diào)度算法,例如那些如上所述的。應(yīng)用程序可以選擇相同的調(diào)度算法,或者可以基于在應(yīng)用程序產(chǎn)生期間選定的準(zhǔn)則來選擇不同的調(diào)度算法。選擇的調(diào)度算法可以是在計算機可讀介質(zhì)中編碼的調(diào)度算法,并且可以是操作系統(tǒng)、應(yīng)用程序的一部分,或者可以分離地提供。 例如,發(fā)布了線程的應(yīng)用程序可以包含一個或多個調(diào)度算法,可以使用該應(yīng)用程序來選擇這一個或多個調(diào)度算法。一旦選定,則在框604可以指示存儲器控制器使用選定的調(diào)度算法來調(diào)度請求。在框606,存儲器控制器可以根據(jù)選定的調(diào)度算法來調(diào)度要被服務(wù)的請求。要求保護的主題內(nèi)容在范圍上不限于本文描述的具體實施方式
。例如,一些實施方式可以是硬件形式,例如用于在例如設(shè)備或設(shè)備的組合上操作,而其他實施方式可以是軟件和/或固件形式。類似地,雖然在這方面要求保護的主題內(nèi)容在范圍上不受限,但是一些實施方式可以包括一個或多個物品,例如存儲介質(zhì)或存儲媒介。存儲介質(zhì)例如CD-ROM、計算機盤、閃速存儲器等,其上可以存儲有指令,當(dāng)由計算機系統(tǒng)、計算平臺或其他系統(tǒng)之類的系統(tǒng)執(zhí)行時,可以使處理器根據(jù)要求保護的主題內(nèi)容來執(zhí)行,例如上述實施方式之一。一個可能方式是計算平臺可以包括一個或多個處理單元或處理器、一個或多個輸入/輸出設(shè)備(例如顯示器、鍵盤和/或鼠標(biāo))、以及一個或多個存儲器(例如靜態(tài)隨機存取存儲器、動態(tài)隨機存取存儲器、閃速存儲器、和/或硬驅(qū))。說明書所述的“實施方式”、“ 一個實施方式”、“ 一些實施方式”或者“其他實施方式”可以表示與一個或多個實施方式相結(jié)合描述的具體特征、結(jié)構(gòu)或特點可以包括在至少一些實施方式中,但是不一定在所有實施方式中。在以上描述中出現(xiàn)的多個“實施方式”、 “一個實施方式”或“一些實施方式”不一定全部是指相同的實施方式。此外,當(dāng)本文或所附權(quán)利要求中使用例如“耦接”或“響應(yīng)”或“響應(yīng)于”或“與…通信”等術(shù)語或短語時,這些術(shù)語應(yīng)該被廣義地解釋。例如,適合于短語所用的上下文,短語“耦接至”可以指通信性地、電和/或操作性地耦合。在以上描述中,描述了要求保護的主題內(nèi)容的多個方面。為了說明目的,記載了具體數(shù)字、系統(tǒng)和/或配置,以提供對要求保護的主題內(nèi)容的透徹理解。然而,對于受益于本公開的本領(lǐng)域技術(shù)人員而言,應(yīng)該顯而易見的是,可以在不具有這些具體細節(jié)的情況下實施要求保護的主題內(nèi)容。在其他情況下,可以省略和/或簡化已知特征,以避免模糊要求保護的主題內(nèi)容。雖然本文示出了和/或描述了特定特征,但是許多修改、替換、改變和/或等同物目前或在將來是本領(lǐng)域技術(shù)人員可設(shè)想到的。因此,要理解,所附權(quán)利要求旨在覆蓋落入要求保護的主題內(nèi)容的真實精神內(nèi)的所有這些修改和/或改變。在系統(tǒng)方案的硬件和軟件實現(xiàn)方式之間存在一些小差別;硬件或軟件的使用一般 (但并非總是,因為在特定情況下硬件和軟件之間的選擇可能變得很重要)是一種體現(xiàn)成本與效率之間權(quán)衡的設(shè)計選擇??梢愿鞣N手段(例如,硬件、軟件和/或固件)來實施這里所描述的工藝和/或系統(tǒng)和/或其他技術(shù),并且優(yōu)選的工藝將隨著所述工藝和/或系統(tǒng)和 /或其他技術(shù)所應(yīng)用的環(huán)境而改變。例如,如果實現(xiàn)方確定速度和準(zhǔn)確性是最重要的,則實現(xiàn)方可以選擇主要為硬件和/或固件的手段;如果靈活性是最重要的,則實現(xiàn)方可以選擇主要是軟件的實施方式;或者,同樣也是可選地,實現(xiàn)方可以選擇硬件、軟件和/或固件的特定組合。以上的詳細描述通過使用方框圖、流程圖和/或示例,已經(jīng)闡述了設(shè)備和/或工藝的眾多實施例。在這種方框圖、流程圖和/或示例包含一個或多個功能和/或操作的情況下,本領(lǐng)域技術(shù)人員應(yīng)理解,這種方框圖、流程圖或示例中的每一功能和/或操作可以通過各種硬件、軟件、固件或?qū)嵸|(zhì)上它們的任意組合來單獨和/或共同實現(xiàn)。在一個實施例中, 本公開所述主題的若干部分可以通過專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)、或其他集成格式來實現(xiàn)。然而,本領(lǐng)域技術(shù)人員應(yīng)認識到,這里所公開的實施例的一些方面在整體上或部分地可以等同地實現(xiàn)在集成電路中,實現(xiàn)為在一臺或多臺計算機上運行的一個或多個計算機程序(例如,實現(xiàn)為在一臺或多臺計算機系統(tǒng)上運行的一個或多個程序),實現(xiàn)為在一個或多個處理器上運行的一個或多個程序(例如,實現(xiàn)為在一個或多個微處理器上運行的一個或多個程序),實現(xiàn)為固件,或者實質(zhì)上實現(xiàn)為上述方式的任意組合,并且本領(lǐng)域技術(shù)人員根據(jù)本公開,將具備設(shè)計電路和/或?qū)懭胲浖?或固件代碼的能力。此外,本領(lǐng)域技術(shù)人員將認識到,本公開所述主題的機制能夠作為多種形式的程序產(chǎn)品進行分發(fā),并且無論實際用來執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型如何,本公開所述主題的示例性實施例均適用。信號承載介質(zhì)的示例包括但不限于可記錄型介質(zhì),如軟盤、硬盤驅(qū)動器、緊致盤(CD)、數(shù)字通用盤(DVD)、數(shù)字磁帶、計算機存儲器等;以及傳輸型介質(zhì),如數(shù)字和/或模擬通信介質(zhì)(例如,光纖光纜、波導(dǎo)、有線通信鏈路、無線通信鏈路
寸J ο本領(lǐng)域技術(shù)人員應(yīng)認識到,上文詳細描述了設(shè)備和/或工藝,此后使用工程實踐來將所描述的設(shè)備和/或工藝集成到數(shù)據(jù)處理系統(tǒng)中是本領(lǐng)域的常用手段。也即,這里所述的設(shè)備和/或工藝的至少一部分可以通過合理數(shù)量的試驗而被集成到數(shù)據(jù)處理系統(tǒng)中。 本領(lǐng)域技術(shù)人員將認識到,典型的數(shù)據(jù)處理系統(tǒng)一般包括以下各項中的一項或多項系統(tǒng)單元外殼;視頻顯示設(shè)備;存儲器,如易失性和非易失性存儲器;處理器,如微處理器和數(shù)字信號處理器;計算實體,如操作系統(tǒng)、驅(qū)動程序、圖形用戶接口、以及應(yīng)用程序;一個或多個交互設(shè)備,如觸摸板或屏幕;和/或控制系統(tǒng),包括反饋環(huán)和控制電機(例如,用于感測位置和/或速度的反饋;用于移動和/或調(diào)節(jié)成分和/或數(shù)量的控制電機)。典型的數(shù)據(jù)處理系統(tǒng)可以利用任意合適的商用部件(如數(shù)據(jù)計算/通信和/或網(wǎng)絡(luò)計算/通信系統(tǒng)中常用的部件)予以實現(xiàn)。本公開所述的主題有時說明不同部件包含在不同的其他部件內(nèi)或者不同部件與不同的其他部件相連。應(yīng)當(dāng)理解,這樣描述的架構(gòu)只是示例,事實上可以實現(xiàn)許多能夠?qū)崿F(xiàn)相同功能的其他架構(gòu)。在概念上,有效地“關(guān)聯(lián)”用以實現(xiàn)相同功能的部件的任意設(shè)置,從而實現(xiàn)所需功能。因此,這里組合實現(xiàn)具體功能的任意兩個部件可以被視為彼此“關(guān)聯(lián)”從而實現(xiàn)所需功能,而無論架構(gòu)或中間部件如何。同樣,任意兩個如此關(guān)聯(lián)的部件也可以看作是彼此“可操作地連接”或“可操作地耦合”以實現(xiàn)所需功能,且能夠如此關(guān)聯(lián)的任意兩個部件也可以被視為彼此“能可操作地耦合”以實現(xiàn)所需功能。能可操作地耦合的具體示例包括但不限于物理上可配對和/或物理上交互的部件,和/或無線交互和/或可無線交互的部件,和/或邏輯交互和/或可邏輯交互的部件。至于本文中任何關(guān)于多數(shù)和/或單數(shù)術(shù)語的使用,本領(lǐng)域技術(shù)人員可以從多數(shù)形式轉(zhuǎn)換為單數(shù)形式,和/或從單數(shù)形式轉(zhuǎn)換為多數(shù)形式,以適合具體環(huán)境和/或應(yīng)用。為清楚起見,在此明確聲明單數(shù)形式/多數(shù)形式可互換。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,一般而言,所使用的術(shù)語,特別是所附權(quán)利要求中(例如,在所附權(quán)利要求的主體部分中)使用的術(shù)語,一般地應(yīng)理解為“開放”術(shù)語(例如,術(shù)語 “包括”應(yīng)解釋為“包括但不限于”,術(shù)語“具有”應(yīng)解釋為“至少具有”等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,如果意在所引入的權(quán)利要求中標(biāo)明具體數(shù)目,則這種意圖將在該權(quán)利要求中明確指出,而在沒有這種明確標(biāo)明的情況下,則不存在這種意圖。例如,為幫助理解,所附權(quán)利要求可能使用了引導(dǎo)短語“至少一個”和“一個或多個”來引入權(quán)利要求中的特征。然而, 這種短語的使用不應(yīng)被解釋為暗示著由不定冠詞“一”或“一個”引入的權(quán)利要求特征將包含該特征的任意特定權(quán)利要求限制為僅包含一個該特征的實施例,即便是該權(quán)利要求既包括引導(dǎo)短語“一個或多個”或“至少一個”又包括不定冠詞如“一”或“一個”(例如,“一”和 /或“一個”應(yīng)當(dāng)被解釋為意指“至少一個”或“一個或多個”);在使用定冠詞來引入權(quán)利要求中的特征時,同樣如此。另外,即使明確指出了所引入權(quán)利要求特征的具體數(shù)目,本領(lǐng)域技術(shù)人員應(yīng)認識到,這種列舉應(yīng)解釋為意指至少是所列數(shù)目(例如,不存在其他修飾語的短語“兩個特征”意指至少兩個該特征,或者兩個或更多該特征)。另外,在使用類似于“A、 B和C等中至少一個”這樣的表述的情況下,一般來說應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來予以解釋(例如,“具有A、B和C中至少一個的系統(tǒng)”應(yīng)包括但不限于單獨具有A、單獨具有B、單獨具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統(tǒng)等)。在使用類似于“A、B或C等中至少一個”這樣的表述的情況下,一般來說應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來予以解釋(例如,“具有A、B或C中至少一個的系統(tǒng)”應(yīng)包括但不限于單獨具有A、單獨具有B、單獨具有C、具有A和B、具有A和C、具有B和 C、和/或具有A、B、C的系統(tǒng)等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,實質(zhì)上任意表示兩個或更多可選項目的轉(zhuǎn)折連詞和/或短語,無論是在說明書、權(quán)利要求書還是附圖中,都應(yīng)被理解為給出了包括這些項目之一、這些項目任一方、或兩個項目的可能性。例如,短語“A或B”應(yīng)當(dāng)被理解為包括“A”或“B”、或“A和B”的可能性。
權(quán)利要求
1.一種對針對存儲器中的數(shù)據(jù)的請求進行調(diào)度的方法,包括利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用所選調(diào)度算法來調(diào)度請求;以及根據(jù)調(diào)度算法,利用存儲器控制器來調(diào)度請求。
2.根據(jù)權(quán)利要求1所述的方法,還包括執(zhí)行來自應(yīng)用程序的線程;以及從線程發(fā)布請求。
3.根據(jù)前述權(quán)利要求之一所述的方法,還包括執(zhí)行請求。
4.根據(jù)前述權(quán)利要求之一所述的方法,其中調(diào)度包括將線程隔離成第一線程類型和第二線程類型,第一線程類型的每一個線程發(fā)布至少一個第一線程請求類型,第二線程類型的每一個線程發(fā)布至少一個第二線程請求類型;以及形成第一批,每一個第一批主要包括第一線程類型的請求。
5.根據(jù)前述權(quán)利要求之一所述的方法,還包括執(zhí)行每一個第一批的請求。
6.根據(jù)前述權(quán)利要求之一所述的方法,其中從包括下述的組中選擇調(diào)度算法先準(zhǔn)備好先到先服務(wù);網(wǎng)絡(luò)公平排隊;開始時間公平排隊;滯延時間公平存儲器調(diào)度器;并行性意識批調(diào)度;以及帶隔離的批調(diào)度。
7.根據(jù)前述權(quán)利要求之一所述的方法,其中調(diào)度算法包括批算法和/或批內(nèi)調(diào)度算法中的一個或多個。
8.根據(jù)前述權(quán)利要求之一所述的方法,其中調(diào)度算法對應(yīng)于并行性意識批調(diào)度和/或帶隔離的批調(diào)度中的一個或多個。
9.根據(jù)前述權(quán)利要求之一所述的方法,其中調(diào)度算法對應(yīng)于帶隔離的批調(diào)度。
10.根據(jù)前述權(quán)利要求之一所述的方法,其中從包括下述的組中選擇批內(nèi)調(diào)度算法 并行性意識批內(nèi)調(diào)度;總體最大批內(nèi)調(diào)度;隨機批內(nèi)調(diào)度;循環(huán)法批內(nèi)調(diào)度;以及先準(zhǔn)備好先到先服務(wù)批內(nèi)調(diào)度。
11.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括基于線程被設(shè)計與并行存儲器一起使用的良好程度,來隔離線程;基于線程與其他線程一起工作的高效程度,來隔離線程;基于線程所發(fā)源的應(yīng)用程序,來隔離線程;或者基于每個線程發(fā)布的請求的相對數(shù)目,來隔離線程。
12.—種計算機程序產(chǎn)品,包括在計算機可讀介質(zhì)中編碼的軟件,用于對針對存儲器中的數(shù)據(jù)的請求進行調(diào)度,軟件包括指令,當(dāng)被執(zhí)行時可操作為利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用所選調(diào)度算法來調(diào)度請求;以及根據(jù)調(diào)度算法,利用存儲器控制器來調(diào)度請求。
13.根據(jù)前述權(quán)利要求之一所述的計算機程序產(chǎn)品,其中從包括下述的組中選擇調(diào)度算法先準(zhǔn)備好先到先服務(wù);網(wǎng)絡(luò)公平排隊;開始時間公平排隊;滯延時間公平存儲器調(diào)度器;并行性意識批調(diào)度;以及帶隔離的批調(diào)度。
14.根據(jù)前述權(quán)利要求之一所述的計算機程序產(chǎn)品,其中調(diào)度算法包括批算法和/或批內(nèi)調(diào)度算法中的一個或多個。
15.根據(jù)前述權(quán)利要求之一所述的計算機程序產(chǎn)品,其中調(diào)度算法對應(yīng)于并行性意識批調(diào)度或帶隔離的批調(diào)度。
16.根據(jù)前述權(quán)利要求之一所述的計算機程序產(chǎn)品,其中從包括下述的組中選擇批內(nèi)調(diào)度算法并行性意識批內(nèi)調(diào)度;總體最大批內(nèi)調(diào)度;隨機批內(nèi)調(diào)度;循環(huán)法批內(nèi)調(diào)度;以及先準(zhǔn)備好先到先服務(wù)批內(nèi)調(diào)度。
17.一種計算機系統(tǒng),包括多個內(nèi)核;存儲器,包含數(shù)據(jù),操作性耦接至所述多個內(nèi)核;存儲器控制器,操作性耦接至所述多個內(nèi)核;計算機可讀介質(zhì),操作性耦接至所述多個內(nèi)核,其中計算機可讀介質(zhì)包括計算機可執(zhí)行指令,當(dāng)由計算機系統(tǒng)執(zhí)行時,計算機可執(zhí)行指令將計算機系統(tǒng)配置為利用應(yīng)用程序選擇調(diào)度算法;指示存儲器控制器使用所選調(diào)度算法來調(diào)度請求;以及根據(jù)調(diào)度算法,利用存儲器控制器來調(diào)度請求。
18.根據(jù)前述權(quán)利要求之一所述的計算機系統(tǒng),其中從包括下述的組中選擇調(diào)度算法 先準(zhǔn)備好先到先服務(wù);網(wǎng)絡(luò)公平排隊;開始時間公平排隊;滯延時間公平存儲器調(diào)度器;并行性意識批調(diào)度;以及帶隔離的批調(diào)度。
19.根據(jù)前述權(quán)利要求之一所述的計算機系統(tǒng),其中調(diào)度算法包括批算法和/或批內(nèi)調(diào)度算法中的一個或多個。
20.根據(jù)前述權(quán)利要求之一所述的計算機系統(tǒng),其中調(diào)度算法包括并行性意識批調(diào)度或帶隔離的批調(diào)度。
全文摘要
本公開總體上描述了用于操作基于存儲器調(diào)度的計算機系統(tǒng)的系統(tǒng)、方法和設(shè)備。計算機系統(tǒng)可以包括應(yīng)用程序和與存儲器組通信的存儲器控制器中的一個或多個。存儲器控制器可以包括用于調(diào)度請求的調(diào)度器。應(yīng)用程序可以從多個調(diào)度算法中選擇用于調(diào)度請求的調(diào)度算法。應(yīng)用程序可以指示調(diào)度器使用所選調(diào)度算法來調(diào)度請求。
文檔編號H01L29/66GK102484130SQ201080032151
公開日2012年5月30日 申請日期2010年6月25日 優(yōu)先權(quán)日2009年7月22日
發(fā)明者塞達·奧格倫吉·梅米奇, 格克汗·梅米奇, 比爾·曼焦內(nèi)-史密斯 申請人:英派爾科技開發(fā)有限公司