存儲器控制器和這種存儲器控制器的操作方法【專利摘要】本發(fā)明提供一種存儲器控制器,用于控制對具有非均勻訪問定時特性類型的存儲器設(shè)備的訪問。該存儲器控制器具有用于接收從至少一個事務(wù)源發(fā)出的事務(wù)的接口,每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示。緩沖器用于將通過接口接收的還沒有被發(fā)送給存儲器設(shè)備的那些事務(wù)臨時存儲為掛起事務(wù),緩沖器保持對于存儲的掛起事務(wù)的多個有序列表,包括至少一個基于優(yōu)先級的有序列表和至少一個訪問定時有序列表。每個基于優(yōu)先級的有序列表具有多個條目,每個條目與掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序。每個訪問定時有序列表具有多個條目,每個條目與掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)形成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址就能夠被存儲器設(shè)備有效地訪問。仲裁電路執(zhí)行仲裁操作,在仲裁操作過程中多個有序列表被參考以便從掛起事務(wù)中選擇要發(fā)送給存儲器設(shè)備的獲勝事務(wù)。該獲勝事務(wù)的任何條目隨后被從多個有序列表中移除。如果當(dāng)仲裁操作被執(zhí)行時,先前選中的獲勝事務(wù)在特定的訪問定時列表中具有條目且該訪問定時有序列表仍然非空,則在不存在預(yù)定的異常狀況時,仲裁操作被布置來將掛起事務(wù)中的在該訪問定時有序列表中具有條目的掛起事務(wù)選作獲勝事務(wù)。這種方法允許在對事務(wù)進(jìn)行重新排序以改善存儲器訪問時間同時確??紤]到各種事務(wù)的優(yōu)先級之間達(dá)到平衡?!緦@f明】存儲器控制器和這種存儲器控制器的操作方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及存儲器控制器和這種存儲器控制器的操作方法,并具體地涉及用于控制對具有非均勻訪問定時(non-uniformaccesstiming)特性類型的存儲器設(shè)備的訪問從而使得訪問存儲器地址所需的時間取決于存儲器設(shè)備中在前的訪問活動的存儲器控制器?!?br>背景技術(shù):
】[0002]許多現(xiàn)代數(shù)據(jù)處理系統(tǒng)使用具有非均勻訪問定時特性的存儲器設(shè)備。例如,在使存儲器設(shè)備中的存儲器地址的特定行被訪問的過程中經(jīng)常會牽涉到初始時間開銷,但是如果一序列訪問隨后針對該行中的地址而發(fā)生,則初始開銷可被分?jǐn)偟蕉啻卧L問中。然而,如果該序列中的每次訪問都訪問不同的行,那么每次訪問單獨(dú)地引起使能行的開銷,從而當(dāng)與所有訪問都訪問相同的行的一序列訪問相比,這樣的一序列訪問導(dǎo)致較長的訪問定時特性。[0003]具有上述性質(zhì)的一種類型的存儲器設(shè)備是這樣的存儲器設(shè)備,其包括多個存儲庫(bank),每個存儲庫包括多行且每行都需要在該行被訪問之前被激活。這種存儲器設(shè)備的示例是動態(tài)隨機(jī)存取存儲器(DRAM)存儲器設(shè)備??紤]到每行都需要在該行被訪問之前被激活,應(yīng)該理解,對于由事務(wù)(transaction)指定的特定存儲器地址的訪問定時將隨該行是否包含當(dāng)前已經(jīng)被激活的存儲器地址而變化。[0004]在行被訪問之前需被激活的需求不僅導(dǎo)致了上面所述的性能下降,還因?yàn)樵趫?zhí)行行激活處理時消耗功率而額外地導(dǎo)致了功率消耗的增加。因此,希望對發(fā)送給這種存儲器的事務(wù)進(jìn)行重新排序以力圖改善訪問時間并特別地保證當(dāng)特定行已經(jīng)被激活時盡可能多的發(fā)生對該行的訪問。出現(xiàn)在2000年6月14日發(fā)表的2000年第27屆計算機(jī)架構(gòu)國際研討會論文集第128頁-138頁的美國加州斯坦福大學(xué)計算機(jī)系統(tǒng)實(shí)驗(yàn)室的SRixner等人的文章“存儲器訪問調(diào)度(MemoryAccessScheduling)”中討論了DRAM架構(gòu)和可被用來嘗試對存儲器操作進(jìn)行重新排序以便利用DRAM的非均勻訪問時間的若干存儲器訪問調(diào)度技術(shù)。[0005]由于在各種類型的系統(tǒng)(媒體處理系統(tǒng))中存儲器帶寬正變成獲得較高性能的限制因素,對存儲器操作進(jìn)行重新排序以便減少所觀察到的訪問時間的技術(shù)可能非常有益。然而,在許多實(shí)際應(yīng)用中,在包含這種存儲器設(shè)備的系統(tǒng)中還必需考慮其它度量。特別地,如果存儲器訪問重新排序被孤立地執(zhí)行來優(yōu)化存儲器訪問時間,存在這種重新排序可能對系統(tǒng)的另一個度量產(chǎn)生不利影響到不可接受的程度的可能性。[0006]作為示例,經(jīng)常存在這樣的情況,即某種形式的優(yōu)先級指示被與數(shù)據(jù)處理系統(tǒng)中發(fā)出的各個事務(wù)相關(guān)聯(lián)。這可以是由發(fā)出該事務(wù)的主設(shè)備添加的顯式優(yōu)先級指示,或者可以是從該事務(wù)中推斷出的隱式優(yōu)先級指示。例如,可以理解,某些主設(shè)備的活動比由其它主設(shè)備執(zhí)行的活動更重要(至少更不耐受延時),因此由這樣的主設(shè)備發(fā)出的事務(wù)可以被布置為具有推斷的較高優(yōu)先級。通常情況下,這種優(yōu)先級指示表明那些事務(wù)所需要的服務(wù)質(zhì)量,因此確保對由此存儲器設(shè)備發(fā)出的事務(wù)進(jìn)行重新排序以便減少訪問時間的要求和這樣的服務(wù)質(zhì)量的需求保持平衡的是重要的。[0007]因此,希望提供能夠使得這樣的平衡得以實(shí)現(xiàn)的改進(jìn)的存儲器控制器?!?br/>發(fā)明內(nèi)容】[0008]從第一方面看,本發(fā)明提供了一種用于控制對存儲器設(shè)備的存取的存儲器控制器,存儲器設(shè)備具有非均勻訪問定時特性從而使得對存儲器地址進(jìn)行訪問花費(fèi)的時間取決于存儲器設(shè)備中的先前的訪問活動,存儲器控制器包括:接口,被配置來接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;存儲裝置(storage),被配置來將通過接口接收的還沒有被存儲器控制器發(fā)送給存儲器設(shè)備的那些事務(wù)臨時存儲為掛起事務(wù)(pendingtransaction),存儲裝置保持對于所存儲的掛起事務(wù)的多個有序列表,包括至少一個基于優(yōu)先級的有序列表和至少一個訪問定時有序列表;每個基于優(yōu)先級的有序列表具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序;每個訪問定時有序列表具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)形成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址就能夠被存儲器設(shè)備根據(jù)非均勻訪問定時特性有效地訪問;仲裁電路,被配置來執(zhí)行仲裁操作,在仲裁操作過程中所述多個有序列表被參考以便從所述掛起事務(wù)中選擇要被發(fā)送給存儲器設(shè)備的獲勝事務(wù),存儲裝置被布置來從多個有序列表中移除該獲勝事務(wù)的任何條目;如果當(dāng)仲裁操作被執(zhí)行時,仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目且該至少一個訪問定時有序列表仍然非空,除非存在預(yù)定的異常狀況,否則仲裁操作被布置來將掛起事務(wù)中在該至少一個訪問定時有序列表中具有條目的掛起事務(wù)選作獲勝事務(wù)。[0009]依據(jù)本發(fā)明,兩種不同類型的有序列表被用來記錄等候被分派到存儲器設(shè)備的掛起事務(wù),第一種類型的列表是基于優(yōu)先級的有序列表,第二種類型的列表是訪問定時有序列表。仲裁電路被布置來當(dāng)執(zhí)行仲裁操作時參考這兩種類型的列表,以便選擇要被發(fā)送給存儲器設(shè)備的獲勝事務(wù)。一旦已經(jīng)從訪問定時有序列表之一中選中獲勝事務(wù),當(dāng)該訪問定時有序列表繼續(xù)包含掛起事務(wù)的條目時,仲裁電路被預(yù)先布置來從該訪問定時有序列表中選擇后續(xù)的獲勝事務(wù)(在不存在預(yù)定的異常狀況的情況下)。[0010]這種方法使得在對掛起事務(wù)進(jìn)行重新排序以改善存儲器設(shè)備中的訪問時間和考慮與掛起事務(wù)相關(guān)聯(lián)的優(yōu)先級以便確保高優(yōu)先級的事務(wù)不被過度地延遲的需求之間達(dá)到平衡。[0011]在一個實(shí)施例中,如果仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)沒有在所述至少一個訪問定時有序列表中具有條目,或在所述至少一個訪問定時有序列表中有條目但該至少一個訪問定時有序列表現(xiàn)在是空的,則仲裁操作被布置來將在所述至少一個基于優(yōu)先級的有序列表之一中的頭部位置具有條目的掛起事務(wù)選作獲勝事務(wù)。這確保較高優(yōu)先級的掛起事務(wù)及時地被提供服務(wù)。[0012]在一個實(shí)施例中,可以采用進(jìn)一步的步驟來確保高優(yōu)先級的掛起事務(wù)及時地被提供服務(wù),即使特定的訪問定時有序列表參考的條目的數(shù)目變得相當(dāng)大。特別地,在一個實(shí)施例中,存儲器控制器還包括限制器電路,限制器電路被配置來至少監(jiān)測從所述訪問定時有序列表之一中選出的連續(xù)的獲勝事務(wù)的數(shù)目,并在閾值條件出現(xiàn)時斷言(assert)限制器信號。如果所述限制器信號被斷言則預(yù)定的異常狀況被檢測出,且仲裁電路隨后響應(yīng)于限制器信號的斷言來使得仲裁操作的下次執(zhí)行將在所述至少一個基于優(yōu)先級的有序列表之一中的頭部位置處具有條目的掛起事務(wù)選作獲勝事務(wù),即使仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表中具有條目且該至少一個訪問定時有序列表仍然非空。[0013]在一個這樣的實(shí)施例中,閾值條件可以僅采用某個最大計數(shù)值的形式,每當(dāng)從基于優(yōu)先級的列表中選出獲勝事務(wù),該計數(shù)值被重新設(shè)置,且每當(dāng)從訪問定時有序列表中選出獲勝事務(wù),該計數(shù)值被遞增。因此,應(yīng)該理解,如果仲裁電路從特定的訪問定時有序列表中連續(xù)選擇獲勝請求,那么計數(shù)值將增加直到達(dá)到閾值條件的點(diǎn)。一旦達(dá)到閾值條件,隨后仲裁電路從相關(guān)的基于優(yōu)先級的有序列表中選擇下一個獲勝事務(wù),盡管訪問定時有序列表還未空。[0014]在修改的實(shí)施例中,限制器電路可能不是僅采用計數(shù)器的形式,而是可以將逐漸降低的優(yōu)先級與從特定的訪問定時有序列表中選中的獲勝事務(wù)的數(shù)目的增加相關(guān)聯(lián)。如果限制器電路隨后也被提供相關(guān)的基于優(yōu)先級的有序列表中的最聞優(yōu)先級的掛起事務(wù)的指示,它可以確定適于停止從訪問定時有序列表中選擇獲勝事務(wù)的點(diǎn),并且替代地切換到從基于優(yōu)先級的有序列表中選擇下一個獲勝事務(wù)。[0015]基于優(yōu)先級的有序列表可以以各種不同的方式布置。然而,在一個實(shí)施例中,每個基于優(yōu)先級的有序列表包括若干子列表,每個條目存在于一個子列表中,以使得各個子列表的條目與具有相同優(yōu)先級指示的事務(wù)相關(guān),這些子列表基于優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序,且在每個子列表中,該子列表的條目基于相關(guān)聯(lián)的掛起事務(wù)通過接口接收的時間順序被排序。因此,在這樣的實(shí)施例中,每個基于優(yōu)先級的有序列表包括一組子列表,每個子列表的優(yōu)先級指示值與掛起事務(wù)相關(guān)聯(lián),并在具有相同優(yōu)先級指示值的事務(wù)之間保持時間順序。[0016]在一個實(shí)施例中,在每個訪問定時有序列表中,各條目基于相關(guān)聯(lián)的掛起事務(wù)通過接口接收的時間順序被排序。[0017]存儲器設(shè)備能夠采用各種形式。然而,在一個實(shí)施例中,存儲器設(shè)備包括多個存儲庫,且所述至少一個基于優(yōu)先級的有序列表包括對于存在掛起事務(wù)的每個存儲庫包括單獨(dú)的基于優(yōu)先級的有序列表。[0018]此外,在一個實(shí)施例中,每個存儲庫包括多行,每行都需要在該行被訪問之前被激活,從而使得對指定的存儲器地址的訪問定時隨包含該指定的存儲器地址的行是否已經(jīng)被激活而變化。具有這樣的結(jié)構(gòu)的一種類型的存儲器設(shè)備是DRAM(動態(tài)隨機(jī)存取存儲器)存儲器設(shè)備。在這樣的實(shí)施例中,所述至少一個訪問定時有序列表可以針對存在掛起事務(wù)的每個存儲庫的每行包括單獨(dú)的訪問定時有序列表。[0019]在一個實(shí)施例中,存儲器控制器還包括分配電路,響應(yīng)于由接口接收的每個事務(wù),為在所述多個有序列表的至少一個有序列表中的事務(wù)分配條目。通過在通過接口接收到每個事務(wù)時執(zhí)行分配,可以從關(guān)鍵路徑中移除分配處理。特別地,在獲勝請求需要被仲裁電路選擇時,可以僅參考保持在臨時存儲裝置中的多個有序列表快速地并簡單地執(zhí)行仲裁操作。[0020]在一個特定的實(shí)施例中,對于通過接口接收的每個事務(wù),分配電路被配置來在所述至少一個基于優(yōu)先級的有序列表之一和所述至少一個存取時序有序列表之一中為該事務(wù)分配條目。因此,通過每個掛起事務(wù)具有兩個條目,一個條目在基于優(yōu)先級的有序列表中,另一個條目在訪問定時有序列表中。[0021]每個基于優(yōu)先級的有序列表中的條目可以采用各種形式。然而,在一個實(shí)施例中,在每個基于優(yōu)先級的有序列表中,每個條目包括頭部指示符和尾部指示符,如果該條目在此基于優(yōu)先級的有序列表中的頭部位置處則頭部指示符被設(shè)置,如果該條目在此基于優(yōu)先級的有序列表中的尾部位置處則尾部指示符被設(shè)置。每個條目還包括到此基于優(yōu)先級的有序列表中的下一個條目的指針,下一個條目在比指針指向該下一個條目的條目離頭部位置更遠(yuǎn)的位置處。這提供了在每個基于優(yōu)先級的有序列表中的各條目之間保持相對排序同時清晰地標(biāo)記在此基于優(yōu)先級的有序列表的頭部位置和尾部位置處的條目的簡單有效的機(jī)制。[0022]在一個實(shí)施例中,每個條目還標(biāo)識相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示。這有助于當(dāng)新的條目需要被分配到基于優(yōu)先級的有序列表中時所必需的分配處理。[0023]在一個特定的實(shí)施例中,每個條目還標(biāo)識與所述下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示。這也有助于分配處理,因?yàn)榉峙涮幚黼S后可以分析條目來找出特定條目,該特定條目具有其相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示和與下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示的特定組合。[0024]特別地,在一個實(shí)施例中,存儲器控制器還包括:分配電路,響應(yīng)于通過接口接收的當(dāng)前事務(wù),在所述至少一個基于優(yōu)先級的有序列表中的所選中的基于優(yōu)先級的有序列表中為所述當(dāng)前事務(wù)分配條目,選中的基于優(yōu)先級的有序列表是根據(jù)由所述當(dāng)前事務(wù)指定的存儲器地址而被選出的。分配電路被配置來識別所選中的基于優(yōu)先級的有序列表中的條目,該條目的相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示大于或等于當(dāng)前事務(wù)的優(yōu)先級指示,且與所述下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示小于當(dāng)前事務(wù)的優(yōu)先級指示。隨后分配電路還被配置來向選中的基于優(yōu)先級的有序列表中添加當(dāng)前事務(wù)的新條目,該新條目被排序以使得它與識別出的條目相鄰但比識別出的條目離頭部位置更遠(yuǎn)。[0025]如果在上述分析過程中,考慮中的識別出的條目沒有下一個條目,即,識別出的條目在列表的尾部位置,那么與下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示可以被設(shè)置為某個預(yù)定的值,該預(yù)定的值被解釋為低于當(dāng)前事務(wù)的優(yōu)先級指示,從而適當(dāng)時可以使用上述機(jī)制來識別列表中尾部位置的條目,并且新條目可以隨后被添加到形成列表的新尾部位置的位置。[0026]在一個實(shí)施例中,識別出的條目的指針被更新為指向新條目,且新條目的指針被布置來指向所述下一個條目。[0027]依據(jù)可選的改進(jìn),當(dāng)新的條目插入時也可以對前面提到的下一個條目進(jìn)行修改,以使得與該下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示被更新,例如,被更新為指示對于與該下一個條目相關(guān)聯(lián)的掛起事務(wù)的增加的優(yōu)先級。這能夠以多種方式實(shí)現(xiàn),例如,僅通過使優(yōu)先級指示增加預(yù)定的量。然而,在一個實(shí)施例中,相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示被更新為對應(yīng)于與新條目相關(guān)聯(lián)的當(dāng)前事務(wù)的優(yōu)先級指示。這種優(yōu)先級提高(elevation)技術(shù)(也稱作“伙伴(buddying)”方案)可以防止對較低優(yōu)先級的事務(wù)無限期封鎖,因此允許可預(yù)測的延時計算。同時該優(yōu)先級提高技術(shù)在一個實(shí)施例中可以被布置來只影響該新條目后面的下一個條目,在可選的實(shí)施例中該優(yōu)先級提高技術(shù)可用于提高新插入的條目后面的一個以上的條目的優(yōu)先級。[0028]在一個實(shí)施例中,如果新條目在基于優(yōu)先級的有序列表中的尾部位置,則分配電路使得新條目的尾部指示符被設(shè)置,且先前在尾部位置的條目的尾部指示符被清除。[0029]此外,在一個實(shí)施例中,如果在選中的基于優(yōu)先級的有序列表中沒有其相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示大于或等于當(dāng)前事務(wù)的優(yōu)先級指示的條目,則分配電路被配置來在頭部位置添加當(dāng)前事務(wù)的新條目,新條目的頭部指示符被設(shè)置且新條目的指針被布置來指向先前在頭部位置的條目,先前在頭部位置的條目的頭部指示符被清除。[0030]當(dāng)執(zhí)行上面所述的分配處理時,選中的基于優(yōu)先級的有序列表當(dāng)前可能沒有條目是可能的,例如,因?yàn)橐峙涞漠?dāng)前事務(wù)指向沒有掛起事務(wù)的存儲庫。在這種情況下,分配電路可以被布置來使得分配給當(dāng)前事務(wù)的新條目的頭部指示符和尾部指示符都被設(shè)置,該條目實(shí)際上創(chuàng)建了相關(guān)的基于優(yōu)先級的有序列表并成為該列表中僅有的條目。[0031]訪問定時有序列表中的每個條目能夠以多種方式被配置。然而,在一個實(shí)施例中,每個條目具有與基于優(yōu)先級的有序列表中的條目相似的配置,因?yàn)槊總€條目包括頭部指示符和尾部指示符,如果條目在訪問定時有序列表中的頭部位置則頭部指示符被設(shè)置,如果條目在訪問定時有序列表中的尾部位置則尾部指示符被設(shè)置,且每個條目還包括到訪問定時有序列表中的下一個條目的指針,下一個條目在比指針指向該下一個條目的條目離頭部位置更遠(yuǎn)的位置。[0032]在一個實(shí)施例中,可以通過存儲器控制器接收由事務(wù)源發(fā)出的突發(fā)事務(wù)。通常情況是事務(wù)源可以為突發(fā)事務(wù)指定的突發(fā)大小(burstsize)可能超過存儲器設(shè)備允許的最大突發(fā)大小,因此這種突發(fā)事務(wù)可能被轉(zhuǎn)換成對于存儲器設(shè)備的多個鏈接的突發(fā)事務(wù)。每個鏈接的突發(fā)事務(wù)被存儲器控制器視作分立的事務(wù)。在一個實(shí)施例中,存儲器控制器中的分配電路能夠被布置來將所述鏈接的突發(fā)事務(wù)中的第一個突發(fā)事務(wù)分配到所述至少一個訪問定時有序列表之一中的條目,并隨后將所有剩余的鏈接的事務(wù)分配到與該條目相關(guān)聯(lián)的激勵列表的激勵列表條目。[0033]通過以這種方式布置各種鏈接的突發(fā)事務(wù),使仲裁電路能夠?qū)㈡溄拥耐话l(fā)事務(wù)視作特殊情況。特別地,如果當(dāng)仲裁操作被執(zhí)行時,仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目,且該條目具有與其相關(guān)聯(lián)的所述激勵列表,仲裁操作被布置來將鏈接的事務(wù)中的在所述激勵列表中具有激勵列表條目的鏈接的事務(wù)選作獲勝事務(wù)。通過這種方法,剩余的鏈接的突發(fā)事務(wù)能夠被優(yōu)先化。這是有益的,因?yàn)橥ǔG闆r是在系統(tǒng)中的其它地方,某些資源可能被綁定等候這樣的突發(fā)事務(wù)完成,因此當(dāng)存儲器設(shè)備開始通過處理第一個鏈接的突發(fā)事務(wù)來處理這樣的突發(fā)事務(wù)時,如果剩余的鏈接的突發(fā)事務(wù)能夠隨后接連不斷地被處理是非常有益的。[0034]在一個實(shí)施例中,只有當(dāng)所有鏈接的事務(wù)都被選作獲勝請求時,仲裁操作才被布置來選擇與訪問定時有序列表中的所述下一個條目相關(guān)聯(lián)的事務(wù)作為后續(xù)獲勝事務(wù)。[0035]考慮前面提到的存儲器設(shè)備的示例,存儲器設(shè)備包括多個存儲庫,每個存儲庫包括多行,那么在一個實(shí)施例中,在每個訪問定時有序列表中,每個條目包括被提供了該訪問定時有序列表的存儲庫和行的指不。[0036]與每個事務(wù)相關(guān)聯(lián)的優(yōu)先級指示能夠采用各種形式。雖然優(yōu)先級指示可以是從事務(wù)的細(xì)節(jié)中推斷出的隱式優(yōu)先級指示(例如,發(fā)出該事務(wù)的主設(shè)備的指示),在一個實(shí)施例中,優(yōu)先級指示是在事務(wù)的字段內(nèi)提供的顯示優(yōu)先級指示。在一個特定的實(shí)施例中,優(yōu)先級指示是服務(wù)的質(zhì)量(QoS)等級指示。[0037]預(yù)定的異常狀況能夠采用各種形式,該預(yù)定的異常狀況出現(xiàn)時將中斷仲裁操作從先前的事務(wù)也是從中選擇的訪問定時有序列表中選擇獲勝事務(wù)的偏向。然而,在一個實(shí)施例中,預(yù)定的異常狀況是使得特定的掛起事務(wù)的優(yōu)先級指示被變化以表示高優(yōu)先級的條件,當(dāng)該預(yù)定的異常狀況出現(xiàn)時,仲裁電路被配置來選擇所述特定的掛起事務(wù)作為獲勝事務(wù),且存儲裝置被布置來從多個有序列表中移除對于該獲勝事務(wù)的任何條目。[0038]這種條件可以是例如當(dāng)對于該特定的事務(wù)存在可允許的最大延時且接近該最大延時時被觸發(fā)的超時條件。在另一個實(shí)施例中,可能在系統(tǒng)中的其它地方檢測到危險條件,這要求特定的事務(wù)在危險被清除之前處理。[0039]在一個特定的實(shí)施例中,其中前面所述的鏈接的突發(fā)事務(wù)被創(chuàng)建并被分配到訪問定時有序列表中的激勵列表,隨后在仲裁電路對出現(xiàn)的預(yù)定的異常狀況作出響應(yīng)之前,它將首先確保任何剩余的鏈接的突發(fā)事件被選作獲勝請求,并隨后將優(yōu)先級已經(jīng)被提高而成為最高優(yōu)先級掛起事務(wù)的特定的掛起事務(wù)選作獲勝事務(wù)。[0040]上面所述的實(shí)施例中的存儲器控制器能夠用于任何類型的事務(wù)。例如,這些技術(shù)能夠被用于向存儲器設(shè)備發(fā)出的寫事務(wù)。然而,在一個實(shí)施例中,這些技術(shù)是就發(fā)送到存儲器設(shè)備的讀事務(wù)而被采用的。應(yīng)該理解,在另一個實(shí)施例中,上面所述的機(jī)制能夠被重復(fù),從而讀事務(wù)和寫事務(wù)都能夠進(jìn)行上面所述的技術(shù)。[0041]盡管在一個實(shí)施例中,仲裁電路被布置來一次只執(zhí)行一項仲裁操作,并因此一次只選擇一個獲勝事務(wù),在可選的實(shí)施例中,仲裁電路可以被配置來并行地執(zhí)行多項仲裁操作,并因此一次選擇多個獲勝事務(wù)。這在存儲器設(shè)備能夠并行地處理多個獲勝事務(wù)的情況下是有用的。[0042]從第二方面看,本發(fā)明提供了控制對存儲器設(shè)備的訪問的方法,存儲器設(shè)備具有非均勻訪問定時特性,從而訪問存儲器地址花費(fèi)的時間取決于存儲器設(shè)備先前的訪問活動,該方法包括:接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;將所接收的還沒有從輸出接口輸出到存儲器設(shè)備的那些事務(wù)在存儲裝置中臨時存儲為掛起事務(wù),存儲裝置保持對于所存儲的掛起事務(wù)的多個有序列表,包括至少一個基于優(yōu)先級的有序列表和至少一個訪問定時有序列表;將每個基于優(yōu)先級的有序列表布置為具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序;將每個訪問定時有序列表布置為具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)組成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址能就夠被存儲器設(shè)備根據(jù)非均勻訪問定時特性有效地訪問;執(zhí)行仲裁操作,在所述仲裁操作過程中,所述多個有序列表被參考以便從所述掛起事務(wù)中選擇要從所述輸出接口輸出到所述存儲器設(shè)備的獲勝事務(wù),并從多個有序列表中移除該獲勝事務(wù)的任何條目;如果當(dāng)仲裁操作被執(zhí)行時,仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目,且該至少一個訪問定時有序列表仍然非空,除非存在預(yù)定的異常狀況,否則仲裁操作被布置來將掛起事務(wù)中的在該至少一個訪問定時有序列表中具有條目的掛起事務(wù)選作獲勝事務(wù)。[0043]從第三方面看,本發(fā)明提供用于控制對存儲器設(shè)備的訪問的存儲器控制器,存儲器設(shè)備具有非均勻訪問定時特性,從而訪問存儲器地址花費(fèi)的時間取決于存儲器設(shè)備中先前的訪問活動,該存儲器控制器包括:接口裝置,用于接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;存儲裝置,用于將通過接口裝置接收的還沒有被存儲器控制器輸出到存儲器設(shè)備的那些事務(wù)臨時存儲為掛起事務(wù),存儲裝置保持對于存儲的掛起事務(wù)的多個有序列表裝置,包括至少一個基于優(yōu)先級的有序列表裝置和至少一個訪問定時有序列表裝置;每個基于優(yōu)先級的有序列表裝置具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表裝置中被排序;每個訪問定時有序列表裝置包括多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)組成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址能就夠被的存儲器設(shè)備根據(jù)非均勻訪問定時特性有效地訪問;以及仲裁裝置,用于執(zhí)行仲裁操作,在所述仲裁操作過程中,所述多個有序列表裝置被參考以便從所述掛起事務(wù)中選擇要發(fā)送給所述存儲器設(shè)備的獲勝事務(wù),存儲裝置用于從多個有序列表裝置中移除該獲勝事務(wù)的任何條目;如果當(dāng)仲裁操作被執(zhí)行時,仲裁操作上次被執(zhí)行時選中的獲勝事務(wù)在所述至少一個訪問定時有序列表裝置之一中具有條目,且該至少一個訪問定時有序列表裝置仍然非空,除非存在預(yù)定的異常狀況,否則仲裁操作被布置來將掛起事務(wù)中的在該至少一個訪問定時有序列表裝置中具有條目的掛起事務(wù)選作獲勝事務(wù)。【專利附圖】【附圖說明】[0044]僅通過示例的方式,參考如附圖中所示出的實(shí)施例,將對本發(fā)明作出進(jìn)一步描述,在附圖中:[0045]圖1是依據(jù)一個實(shí)施例的包含存儲器控制器的數(shù)據(jù)處理系統(tǒng)的框圖;[0046]圖2是依據(jù)一個實(shí)施例的圖1的DRAM存儲器的框圖;[0047]圖3是依據(jù)一個實(shí)施例的圖1的DRAM存儲器控制器的框圖;[0048]圖4A依據(jù)一個實(shí)施例示意性地示出了基于優(yōu)先級的有序列表的條目;[0049]圖4B示意性地示出了對多個這樣的條目進(jìn)行排序以構(gòu)成基于優(yōu)先級的有序列表;[0050]圖5A依據(jù)一個實(shí)施例示意性地示出了訪問定時有序列表的條目;[0051]圖5B示意性地示出了對多個這樣的條目進(jìn)行排序以構(gòu)成訪問定時有序列表;[0052]圖6是依據(jù)一個實(shí)施例示出了通過圖3的列表分配電路執(zhí)行的步驟的流程圖;[0053]圖7是示出了為了實(shí)現(xiàn)圖6的步驟365在一個實(shí)施例中執(zhí)行的一系列步驟的流程圖;[0054]圖8示意性地示出了依據(jù)圖7的技術(shù)新條目如何被插入到現(xiàn)有的基于優(yōu)先級的有序列表中;[0055]圖9是依據(jù)一個實(shí)施例示出了通過圖3的仲裁電路執(zhí)行的步驟的流程圖;[0056]圖1OA依據(jù)一個實(shí)施例示意性地示出了限制器電路的操作;[0057]圖1OB和圖1OC依據(jù)可選的實(shí)施例示意性地示出了限制器電路的操作;[0058]圖1lA和圖1lB依據(jù)一個實(shí)施例分別示出了當(dāng)從基于優(yōu)先級的有序列表中和從訪問定時有序列表中彈出條目時執(zhí)行的步驟;[0059]圖12依據(jù)圖1lA中的處理示意性地示出了如何從基于優(yōu)先級的有序列表中彈出條目;[0060]圖13是依據(jù)可選的實(shí)施例示出了通過圖3的列表分配電路執(zhí)行的步驟的流程圖;[0061]圖14依據(jù)一個實(shí)施例示意性地示出了圖13的讀升級(escalation)步驟730和735如何影響基于優(yōu)先級的有序列表的條目;[0062]圖15依據(jù)一個實(shí)施例示意性地示出了圖13的步驟740和745如何能夠使激勵列表從訪問定時有序列表中被生成;以及[0063]圖16是依據(jù)可選的實(shí)施例示出了通過圖3的仲裁電路執(zhí)行的步驟的流程圖?!揪唧w實(shí)施方式】[0064]圖1是數(shù)據(jù)處理系統(tǒng)的框圖,該數(shù)據(jù)處理系統(tǒng)包括通過互連電路30與若干從設(shè)備55,60耦合的多個主設(shè)備10、20。從設(shè)備之一是通過DRAM存儲器控制器50耦合至互連30的DRAM存儲器設(shè)備55。[0065]互連電路30通過若干連接路徑35將主設(shè)備和從設(shè)備相耦合以使事務(wù)能夠被執(zhí)行。每個事務(wù)由從主設(shè)備到從設(shè)備的地址傳送(addresstransfer)和主設(shè)備與從設(shè)備之間的一個或多個數(shù)據(jù)傳送(datatransfer)構(gòu)成。若干已知的協(xié)議可用來處理互連30中的事務(wù)。為了說明,在下面所述的實(shí)施例中,將假設(shè)互連電路采用分離事務(wù)協(xié)議,其中提供了分立的地址通道和數(shù)據(jù)通道并且特定的事務(wù)的數(shù)據(jù)傳送定時是與地址傳送定時解耦的。在一個特定的實(shí)施例中,互連電路是按照AXI協(xié)議操作的,并且互連電路的連接路徑35提供五個通道,即讀地址通道、寫地址通道、讀數(shù)據(jù)通道、寫數(shù)據(jù)通道和寫響應(yīng)通道。[0066]當(dāng)每個主設(shè)備通過發(fā)出地址傳送來啟動事務(wù)時,主設(shè)備通常隨該地址傳送發(fā)出事務(wù)標(biāo)識符以標(biāo)識該事務(wù),從而所述事務(wù)標(biāo)識符隨后能夠用在與該事務(wù)的數(shù)據(jù)傳送的關(guān)聯(lián)中以便將那些數(shù)據(jù)傳送與該地址傳送相匹配。[0067]在互連電路30的控制電路40中,可以提供ID添加/移除電路以確保來自不同主設(shè)備的事務(wù)在互連電路30中能夠被唯一地識別。例如,這種ID添加和移除電路對于由相關(guān)聯(lián)的主設(shè)備發(fā)出的每個事務(wù)標(biāo)識符能夠被布置來以主設(shè)備號碼(masternumber)擴(kuò)展該事務(wù)標(biāo)識符從而允許響應(yīng)路由回到該主設(shè)備。類似地,當(dāng)傳送被路由回該主設(shè)備時,ID添加/移除電路將在響應(yīng)傳送返回相關(guān)聯(lián)的主設(shè)備10、20之前剝除該主號碼。除允許響應(yīng)路由回到適合的主設(shè)備外,在互連電路30內(nèi)以主設(shè)備號碼擴(kuò)展事務(wù)標(biāo)識符來創(chuàng)建新形式的事務(wù)標(biāo)識符還帶來如下結(jié)果:具有對具有不同的事務(wù)標(biāo)識符的事務(wù)進(jìn)行重新排序的能力的任何從設(shè)備50、55、60于是能夠也對來自不同主設(shè)備的事務(wù)進(jìn)行重新排序,即使這些事務(wù)本來具有相同的事務(wù)標(biāo)識符。[0068]還應(yīng)該理解,互連30的控制電路40還可以包括另外的功能。例如,為了檢測潛在的死鎖(deadlock)狀況,在互連30中可以提供循環(huán)依賴避免方案(CDAS)控制電路來檢測可能導(dǎo)致死鎖的事務(wù)序列(如果這些事務(wù)被允許同時進(jìn)行)并采取行動來避免這種死鎖發(fā)生??刂齐娐?0還可以包括記事板(scareboarding)電路和危險(hazard)檢測電路來監(jiān)測各種危險狀況,例如,先寫后讀危險,目的在于確保這種危險狀況處理得當(dāng)。這可能例如牽涉到使一個事務(wù)停止向前傳播直到較早的事務(wù)完成。[0069]考慮DRAM存儲器控制器50,從上述討論中將理解,DRAM存儲器控制器50將接收事務(wù)流,每個事務(wù)通常具有事務(wù)標(biāo)識符。根據(jù)下面要詳細(xì)地討論的,依據(jù)本文所述的DRAM存儲器控制器的實(shí)施例,DRAM存儲器控制器能夠?qū)δ切┦聞?wù)進(jìn)行重新排序,以改善對DRAM55的訪問時間。DRAM存儲器控制器包括一些內(nèi)部緩沖器以確保任何響應(yīng)都能夠在被輸出到互連電路30之前被重新排序從而符合互連30所使用的事務(wù)排序約束協(xié)議。例如,對于具有相同的事務(wù)標(biāo)識符的任何事務(wù),可能需要從從設(shè)備返回的響應(yīng)按順序返回,因此為了提高DRAM效率而對這些事務(wù)本地執(zhí)行的任何重新排序需要在響應(yīng)傳送輸出到互連30之前被逆轉(zhuǎn)。[0070]事務(wù)的另一種性質(zhì)是它們可包括優(yōu)先級指示,作為事務(wù)的顯式字段(field),或憑借能夠從事務(wù)中確定的一些推斷(例如,應(yīng)該理解,由主設(shè)備110發(fā)出的事務(wù)具有比由主設(shè)備220發(fā)出的事務(wù)高的優(yōu)先級)。在本文所述的一個特定的實(shí)施例中,每個事務(wù)包括服務(wù)質(zhì)量(QoS)指示形式的顯式優(yōu)先級指示。依據(jù)本文所述的技術(shù),DRAM存儲器控制器50力圖對事務(wù)進(jìn)行重新排序以便改善對DRAM55的訪問時間,但同時也要注意到事務(wù)的QoS等級指示從而確保事務(wù)根據(jù)它們的QoS指示而被恰當(dāng)?shù)胤?wù)。[0071]圖2依據(jù)一個實(shí)施例示意性地示出了圖1的DRAM55。DRAM55由多個存儲庫(bank)130、135、140構(gòu)成,其中每個存儲庫由多行構(gòu)成。提供了與每個存儲庫相關(guān)聯(lián)的訪問電路100、110、120,訪問電路響應(yīng)由DRAM存儲器控制器50發(fā)出的訪問命令。每個訪問電路100、110、120包括行緩沖器105、115、125,行緩沖器用于存儲來自相關(guān)聯(lián)的存儲庫的至少一行的數(shù)據(jù)。為了訪問某行中的數(shù)據(jù)值,該行首先必須通過從存儲器控制器發(fā)出的RAS命令被移動到相關(guān)的行緩沖器中,這種RAS命令在本文中也被稱為激活命令。一旦該行被存儲在行緩沖器中,該行中的各個存儲器地址就能夠通過存儲器控制器發(fā)出的RAS命令來訪問。最后,當(dāng)對該行的訪問已經(jīng)完成時,或當(dāng)新的行需要被訪問時,預(yù)充命令從存儲器控制器發(fā)出以使得該行緩沖器中的當(dāng)前的行的內(nèi)容被存儲回DRAM55中的相關(guān)聯(lián)的存儲庫。[0072]因此,應(yīng)該理解,當(dāng)激活某行以使得它的內(nèi)容能夠隨后被訪問時會招致顯著的訪問時間損失,實(shí)際上還有功率消耗損失,因此如果一旦某行已經(jīng)被激活并且相應(yīng)地它的內(nèi)容已經(jīng)被存儲在行緩沖器中,那么對該行的存儲器地址的多次訪問在該行的內(nèi)容隨后被返回到存儲庫之前執(zhí)行是有益的。如下面將更詳細(xì)地討論的,所述實(shí)施例的DRAM存儲器控制器能夠執(zhí)行對事務(wù)的重新排序來獲得這一(益處),并因此降低訪問時間和功率消耗,同時還考慮到與事務(wù)相關(guān)聯(lián)的優(yōu)先級指示以便確保這樣的重新排序不會對滿足事務(wù)的QoS要求產(chǎn)生不利影響。[0073]圖3依據(jù)一個實(shí)施例示意性地示出了圖1的DRAM存儲器控制器50。從互連30接收的輸入事務(wù)被提供給輸入接口200,輸入接口200可以包括某種本地重新排序控制電路210。重新排序控制電路210可以例如改變輸入事務(wù)的事務(wù)標(biāo)識符從而實(shí)際上解耦具有相同的事務(wù)標(biāo)識符的多個事務(wù),以便允許那些事務(wù)被DRAM存儲器任意次序地處理。然而,在任何響應(yīng)被輸出回到互連30之前對那些事務(wù)進(jìn)行重新排序是必要的,因?yàn)樵谶@個實(shí)施例中假設(shè)互連30需要來自DRAM的對于具有相同的事務(wù)標(biāo)識符的事務(wù)的響應(yīng)按次序返回。因此,可以在重新排序控制電路210中提供數(shù)據(jù)緩沖器215以允許在響應(yīng)數(shù)據(jù)被輸出到互連30之前進(jìn)行本地重新排序。[0074]當(dāng)在一個實(shí)施例中下面所述的技術(shù)能夠與寫事務(wù)相關(guān)聯(lián)地被使用時,為了圖3的示例將假設(shè)輸入事務(wù)都是讀事務(wù),相應(yīng)地輸出到互連電路的響應(yīng)是讀數(shù)據(jù)。對于寫事務(wù),響應(yīng)將是通過寫響應(yīng)通道提供的狀態(tài)信息。如果希望將該技術(shù)用于讀事務(wù)和寫事務(wù),圖3中所示的電路可完全或部分地被復(fù)制,從而為讀事務(wù)提供一組電路,為寫事務(wù)提供一組復(fù)制的電路。[0075]如圖3所示,接口200可選擇地包括突發(fā)格式化電路205。特別地,主設(shè)備10、20之一可以發(fā)出具有超出訪問DRAM存儲器允許的突發(fā)長度的突發(fā)長度的突發(fā)事務(wù)。因此,接口200接收的這樣的突發(fā)事務(wù)可以被突發(fā)格式化電路205轉(zhuǎn)換成多個鏈接的突發(fā)事務(wù),每個鏈接的突發(fā)事務(wù)被存儲器控制器視作單獨(dú)的事務(wù)??梢詾閬碜灾匦屡判蚩刂齐娐?10的每個鏈接的突發(fā)事務(wù)提供內(nèi)部事務(wù)標(biāo)識符。[0076]DRAM存儲器控制器50包括掛起(pending)事務(wù)緩沖器230,用于將通過接口200接收的還沒有被存儲器控制器50發(fā)出給DRAM55的事務(wù)臨時存儲為掛起事務(wù)。除保持每個事務(wù)相關(guān)的細(xì)節(jié)之外,掛起事務(wù)緩沖器230還保持一組覆加的(overlaid)有序列表235,這些列表包括對于至少有一個掛起事務(wù)的每個存儲庫的基于優(yōu)先級的有序列表(這種基于優(yōu)先級的有序列表在本文中稱作QoS列表),和對于至少有一個掛起事務(wù)的每個存儲庫的每一行的訪問定時有序列表(這種列表在本文中稱作行-命中列表(row-hitlist))。隨著每個事務(wù)被接口200接收,事務(wù)被傳遞到列表分配電路220,列表分配電路220被布置來在有序列表235的至少一個中為掛起事務(wù)分配條目(entry)。特別地,在一個實(shí)施例中,列表分配電路220在相關(guān)的QoS列表和相關(guān)的行-命中列表中為每個掛起事務(wù)分配條目。隨后將參照其余附圖提供列表和列表分配電路220的操作的更多的細(xì)節(jié)。[0077]在一個實(shí)施例中,緩沖器230包括多個緩沖條目,每個緩沖條目用于存儲掛起事務(wù)的細(xì)節(jié)。與每個緩沖條目相關(guān)聯(lián)的信息于是用于描述相關(guān)聯(lián)的事務(wù)在相關(guān)的QoS列表和相關(guān)的行-命中列表中的位置。列表本身是虛擬列表。[0078]當(dāng)有必要發(fā)出新的事務(wù)到DRAM存儲器55時,例如,因?yàn)榇鎯ζ骺刂破?0已經(jīng)確定DRAM存儲器55具有處理新事務(wù)的能力,仲裁電路240被布置來執(zhí)行仲裁操作,在仲裁操作過程中,多個有序列表235被參考以便從掛起事務(wù)中選出要發(fā)出給DRAM55的獲勝事務(wù)。后面將對仲裁電路的操作作出更詳細(xì)地描述,但一般來說由仲裁電路執(zhí)行的仲裁操作偏向于繼續(xù)從行-命中列表中的從其選擇了上一個獲勝事務(wù)的行-命中列表選擇條目。然而,某些狀況將導(dǎo)致仲裁電路偏離該自然偏向,以便確保與各個事務(wù)相關(guān)聯(lián)的QoS等級都考慮在內(nèi)。[0079]由仲裁電路240選出的每個獲勝事務(wù)的細(xì)節(jié)被輸出到存儲器接口250,存儲器接口250包括用于存儲事務(wù)的本地緩沖器255和用于創(chuàng)建到DRAM的命令序列以便實(shí)現(xiàn)每個事務(wù)的DRAM調(diào)度器260。緩沖器255通常是必需的,因?yàn)樗鼘τ趶腄RAM調(diào)度器發(fā)出多個命令以便執(zhí)行每個事務(wù)必需的訪問可能是必要的,另外,DRAM調(diào)度器260和DRAM55之間的接口路徑可能是這樣的以致于每個時鐘周期只能發(fā)出單個命令。因此,在由存儲器接口250執(zhí)行的處理中可能有多個事務(wù),例如,指向DRAM的不同存儲庫的事務(wù),且執(zhí)行那些事務(wù)所需的命令將通過DRAM調(diào)度器260根據(jù)所需訪問電路100、110和120的可用性來進(jìn)行調(diào)度。[0080]如前面所討論的,由DRAM調(diào)度器260發(fā)出的命令可以包括激活行的RAS命令、訪問行內(nèi)特定的存儲器地址的一系列CAS命令以及將行緩沖器的內(nèi)容存儲回到DRAM的相關(guān)行中的預(yù)充(pre-charge)命令。如果事務(wù)能夠被重新排序以使得全部都訪問相同行的一系列事務(wù)由存儲器接口處理,那些事務(wù)中的一些事務(wù)將只需要從DRAM調(diào)度器260發(fā)出對應(yīng)的CAS命令來執(zhí)行所需的訪問,因?yàn)楸匾腞AS命令已經(jīng)與前一個事務(wù)相關(guān)地被發(fā)出。另夕卜,如果后續(xù)的事務(wù)也訪問相同行,則當(dāng)前事務(wù)將不需要預(yù)充命令。[0081]雖然在一個實(shí)施例中,圖3中示出的所有組件都可以提供在互連電路30的外部(如圖1中示意性地示出的),應(yīng)該理解,在某些實(shí)施例中,DRAM存儲器控制器50的一個或多個組件可以作為互連30的部分接口塊而被內(nèi)部地提供在互連30內(nèi)。例如,在一個實(shí)施例中,存儲器接口250之外的所有組件都可被提供在互連30內(nèi),而只有存儲器接口250被外部地提供以在互連30和DRAM55之間提供接口。然而,不管圖3中所示的組件物理上駐留在數(shù)據(jù)處理系統(tǒng)中的確切位置如何,那些組件將在本文中統(tǒng)稱為對于DRAM55的“存儲器控制器”。[0082]如前面所提到的,保持在掛起事務(wù)緩沖器230中的一種類型的列表是QoS列表,每個QoS列表由若干個QoS列表條目構(gòu)成。每個QoS列表條目采用圖4A中的條目300所示意性地示出的形式。圖4A中使用的術(shù)語具有如下意義:[0083]Ptr:到指定的存儲庫的QoS有序列表中的下一項的指針[0084]Bank:存儲在條目中的事務(wù)的目標(biāo)存儲庫[0085]QoS:存儲在條目中的事務(wù)的QoS值[0086]pQoS:存儲在Ptr指向的條目(“下一個條目”)中的事務(wù)的QoS值[0087]V:條目是有效的(即,包含還沒有被處理的事務(wù))[0088]L:設(shè)置來表示條目包含指定的存儲庫列表的最后一個(尾部)事務(wù)[0089]F:設(shè)置來表示條目包含指定的存儲庫列表的第一個(頭部)事務(wù)[0090]此外,在每個條目300中由框305標(biāo)識的數(shù)字表示事務(wù)的細(xì)節(jié)存儲在緩沖器230中的位置。[0091]存儲庫I的填充的QoS列表的示例可以相應(yīng)地采用圖4B的列表310示意性地示出的形式。如從圖4B中能夠看出的,QoS列表310能夠被認(rèn)為是由若干子列表311、312、313和314構(gòu)成的。在每個子列表中,每個條目具有相同的QoS指示且每個子列表中的條目的相對排序取決于那些事務(wù)由存儲器控制器50的接口200接收的時間順序。如圖4B中所示,子列表311中僅有的一個條目將它的第一個標(biāo)志設(shè)置為表不該條目是QoS列表310的頭部事務(wù),類似地,子列表314中的最后一個事務(wù)將它的最后字段設(shè)置為表示該事務(wù)是特定的QoS列表的尾部事務(wù)。[0092]上面還提到,保持在掛起事務(wù)緩沖器230中的另一種類型的有序列表是行-命中列表,在一個實(shí)施例中,行-命中列表中的每個條目采用圖5A中示出的條目320的形式。用于圖5A的條目320的每個術(shù)語的意義如下:[0093]HPtr:命中指針。指向行命中列表中的下一項(除突發(fā)命中外,這將在后面討論)[0094]Bank:存儲在條目中的事務(wù)的目標(biāo)存儲庫[0095]Row:存儲在條目中的事務(wù)的目標(biāo)行[0096]T:設(shè)置來表示該條目包含指定的行-命中列表的尾部事務(wù)[0097]H:設(shè)置來表示該條目包含指定的行-命中列表的頭部事務(wù)[0098]IB:設(shè)置來表示該條目包含突發(fā)行-命中而不是常規(guī)行-命中[0099]當(dāng)新的掛起事務(wù)分配到掛起事務(wù)緩沖器230中時,如果已經(jīng)存在被標(biāo)志為行-命中列表尾部的具有匹配的存儲庫/行的存儲的事務(wù),那么對于新的事務(wù)的條目被推進(jìn)該列表以形成新的尾部。否則,條目被分配以形成新的行-命中列表。因此,對于存儲庫1、行4的填充的行-命中列表的示例可以采用在圖5B中示意性地示為列表330的形式。[0100]圖6是依據(jù)一個實(shí)施例示出了圖3的列表分配電路220的操作的流程圖,在這個實(shí)施例中假設(shè)不使用突發(fā)行-命中字段IB。在步驟350中,列表分配電路220接收要分配的新事務(wù),該事務(wù)被指向存儲庫A、行B并具有QoS值Z。在步驟355中,判斷是否已經(jīng)存在對于存儲庫A的QoS列表,即,是否存在任何其它指向存儲庫A的掛起事務(wù)。如果不存在,隨后處理繼續(xù)進(jìn)行到步驟375,其中在對于存儲庫A的新的QoS列表中創(chuàng)建條目并設(shè)置該條目的第一個標(biāo)志和最后一個標(biāo)志被設(shè)置。如果不存在對于存儲庫A的QoS列表,那么也將是這種情況:不存在對于存儲庫A、行B的行-命中列表,因此如果步驟375被執(zhí)行,處理還執(zhí)行步驟390,其中在對于存儲庫A、行B的行-命中列表中創(chuàng)建條目,并設(shè)置該條目的頭部標(biāo)志和尾部標(biāo)志。[0101]假設(shè)在步驟355中判定存在對于存儲庫A的QoS列表,隨后在步驟360中判斷當(dāng)前事務(wù)的QoS值Z是否大于對于存儲庫A的QoS列表中的最高優(yōu)先級條目(即,設(shè)置了第一個字段的條目)的QoS值。如果大于,那么這表示新的事務(wù)應(yīng)該被添加到該QoS列表的頭部位置,因此處理繼續(xù)進(jìn)行到步驟370,其中在現(xiàn)存的QoS列表的頭部創(chuàng)建條目,該條目繼承該QoS列表的以前的頭部的第一個標(biāo)志。然而,假設(shè)QoS值Z不大于對于存儲庫A的QoS列表中的最高優(yōu)先級的條目的QoS值,隨后處理進(jìn)行到步驟365,其中條目被創(chuàng)建并置于對于存儲庫A的QoS列表中的適當(dāng)位置。后面將參照圖7描述一種執(zhí)行圖6中的步驟365的方法。[0102]在步驟365或步驟370之后,在步驟380中判斷是否存在對于存儲庫A、行B的行-命中列表。如果不存在,處理分支到步驟390,但假設(shè)已經(jīng)存在可用于存儲庫A、行B的行-命中列表,那么處理繼續(xù)進(jìn)行到步驟385,其中在該行-命中列表的尾部創(chuàng)建新的條目,該條目繼承先前的尾部條目的尾部標(biāo)志。[0103]圖7是依據(jù)一個實(shí)施例示出了能夠用來實(shí)現(xiàn)圖6的步驟365的一系列步驟的流程圖。在步驟400中,參數(shù)N被設(shè)置為等于零,隨后在步驟405中,判斷條目N的QoS等級是否大于或等于QoS值Z,另外,判斷在條目N中標(biāo)識的pQoS值是否小于QoS值Z。如果不是如此,那么在步驟410中判斷是否已經(jīng)分析了最后一個QoS列表條目,并且如果沒有已經(jīng)分析了最后一個QoS列表條目,在步驟415中參數(shù)N遞增,處理返回步驟405。對于特定的條目,當(dāng)判定滿足步驟405中列出的條件時,處理繼續(xù)進(jìn)行到步驟420,其中在該QoS列表中緊在條目N后創(chuàng)建條目。為了使列表中的一個條目總是滿足步驟405中的條件,列表中最后的條目可將PQoS值設(shè)置為是被認(rèn)為小于QoS值Z的某個預(yù)定值。例如,參照圖4B,這種預(yù)定的等級在QoS列表的尾部條目中由符號“X”表示。[0104]除在步驟420中創(chuàng)建條目外,在步驟425中如果合適就設(shè)置最后一個標(biāo)志(通常這可以通過繼承條目N的最后一個標(biāo)志來實(shí)現(xiàn)),另外,在步驟430中,更新條目N的QoS值和指針。[0105]圖8中示意性地示出了這一處理,其中,圖4A中所示的條目作為新的條目455被插入圖4B的QoS列表310中,以創(chuàng)建經(jīng)修改的QoS列表450。特別地,要被分配的新事務(wù)的QoS值Z在此情況下是“4”,因此條目457被識別為滿足圖7中的步驟405的條件的條目N,因?yàn)樵摋l目457最初具有QoS值4和pQoS值I(從圖4B的QoS列表310中的相應(yīng)的條目中所顯而易見的)。因此,新的條目455被分配,該條目繼承了條目457的初始的指針值,同時條目457被修改為指向新的條目455。另外,存儲在條目457中的pQoS值從“I”更新為“4”以正確地標(biāo)識下一個條目455的QoS值。由于新的條目455不是QoS列表中的最終條目,所以不設(shè)置它的最后一個標(biāo)志。[0106]盡管上面參照圖7和圖8描述的實(shí)施例討論了一種適于執(zhí)行圖6的步驟365的機(jī)制,其中每個條目保持QoS值和PQoS值以簡化并加速分配處理,應(yīng)該理解,若需要則可以使用其它技術(shù)。例如,若需要則可以使用表游走(tablewalk)處理。[0107]圖9是依據(jù)一個實(shí)施例示出了由圖3的仲裁電路240執(zhí)行的仲裁操作的流程圖。當(dāng)新事務(wù)需要被選中以傳遞到存儲器接口250時,仲裁操作開始于步驟500,隨后在步驟505中,判斷是否已經(jīng)設(shè)置了限制器信號。后面將參照圖1OA到圖1OC對這一信號進(jìn)行更詳細(xì)地介紹。然而,除非設(shè)置了限制器信號,處理才繼續(xù)進(jìn)行到步驟510,其中判斷先前仲裁的條目(即,對應(yīng)于仲裁操作上次執(zhí)行時的先前的獲勝請求的條目)是否被標(biāo)志為其行-命中列表的尾部。如果不是,表示相關(guān)的行-命中列表還不是空的,因此處理分支到步驟520,其中,通過仲裁操作選中的條目是行-命中列表中的由先前仲裁的條目的命中指針指向的條目。[0108]然而,如果在步驟510中判定先前仲裁的條目已經(jīng)被標(biāo)志為其行-命中列表的尾部,那么處理繼續(xù)進(jìn)行到步驟515,其中在相關(guān)的存儲庫QoS列表頭部的條目被選作下一個獲勝條目。至于該相關(guān)的存儲庫,存儲器接口250通常向仲裁電路240標(biāo)識出能夠接收新事務(wù)的存儲庫。因此,在步驟515中通常只有單個QoS列表要被考慮。[0109]在步驟515或步驟520之后,處理繼續(xù)進(jìn)行到步驟525,其中,選中的條目從QoS列表和行_命中列表彈出,后面參照圖1lA和圖1lB對這一處理進(jìn)行描述。[0110]圖1OA示意性地示出了可以用在一個實(shí)施例中的限制器電路550的示例。在一個特定的實(shí)施例中,該限制器電路分別針對每個存儲庫被提供,且可被認(rèn)為構(gòu)成了仲裁電路240的部分。每個限制器電路包括計數(shù)器555,計數(shù)器555隨每次從行-命中列表中選中相關(guān)聯(lián)的存儲庫的獲勝事務(wù)而遞增。此外,每次從存儲庫的QoS列表中選中獲勝事務(wù),該計數(shù)器被重置。如果計數(shù)器555保持的計數(shù)值達(dá)到預(yù)定的閾值,則限制器信號被設(shè)置。參照圖9的步驟505,將理解,當(dāng)限制器信號被設(shè)置了時,這將使得處理直接繼續(xù)進(jìn)行到步驟515,從而下一個獲勝事務(wù)從QoS列表而不是行-命中列表中選出,即使上一個獲勝事務(wù)來自不在尾部位置的行-命中列表條目。通過這種方法,能夠確保即使對于特定存儲庫的特定行存在大量掛起事務(wù)時,其它事務(wù)的QoS等級仍然被考慮,因此確保對于特定行存在大量的掛起事務(wù)時,高優(yōu)先級的事務(wù)不會被延遲到不可接受的程度。[0111]圖1OB示出了限制器電路的替代示例,其中,替代簡單的計數(shù)器,執(zhí)行一些效益(benifit)分析功能565的電路被使用。除通過圖1OA的計數(shù)器555接收信號外,效益分析功能565接收與相關(guān)的存儲庫的QoS列表的頭部條目相關(guān)聯(lián)的QoS值的指示。由于DRAM存儲器的性質(zhì),能夠形成諸如圖1OC的標(biāo)識出對于在特定的行中的存儲器地址的連續(xù)訪問的行-命中效益的曲線圖。最初,行-命中效益是非常大的,因?yàn)樵谛心軌虮辉L問之前需要激活該行,并且在該行能夠被再次預(yù)充之前通常還需要預(yù)定的延遲。因此,在這段時間中,曲線圖采用圖1OC中所示的水平形式。然而,該初始期過后,由于開銷分?jǐn)偟教囟ㄐ兄械亩啻卧L問,如曲線570所表示的,效益緩慢地下降。因此,圖1OC的曲線圖能夠轉(zhuǎn)換成與對特定行的連續(xù)訪問相關(guān)聯(lián)的逐漸降低的優(yōu)先級量表(scale),即,隨著連續(xù)訪問的數(shù)目的增力口,與那些訪問相關(guān)聯(lián)的有效的QoS值降低。因此,在某點(diǎn)處,偽-QoS值將下降到比與QoS列表的頭部相關(guān)聯(lián)的QoS值低的級別,并且在該點(diǎn)處能夠設(shè)置限制器信號以使得從存儲庫QoS列表而非從行-命中列表的頭部中選出下一個獲勝事務(wù)。[0112]圖1lA是示出了在圖9的步驟525中執(zhí)行的為了從QoS列表中彈出條目的步驟的流程圖。當(dāng)在步驟600中判定需要彈出條目時,處理繼續(xù)進(jìn)行到步驟605,其中判斷要彈出的條目是否在QoS列表的頭部。如果由于執(zhí)行圖9的步驟515而達(dá)到圖9的步驟525,顯然會是這種情況,但如果通過圖9的步驟520而達(dá)到步驟525,則不一定是這種情況。特別地,當(dāng)條目從行-命中列表中選中時,它在存儲庫QoS列表中相應(yīng)的條目能夠在存儲庫QoS列表的任何位置。[0113]如果在步驟605中判定要彈出的條目位于QoS列表的頭部,那么處理繼續(xù)進(jìn)行到步驟610,其中彈出的條目指向的條目中的第一個標(biāo)志被設(shè)置。另外,正在彈出的條目的有效標(biāo)志被清除以指示該條目不再有效。如果要彈出的條目不在QoS列表的頭部,那么處理繼續(xù)進(jìn)行到步驟615,其中指向彈出的條目的條目繼承彈出的條目的指針、彈出的條目的PQoS值和彈出的條目的最后一個標(biāo)志狀態(tài)。再次,正在彈出的條目的有效標(biāo)志被清除以指示該條目不再有效。[0114]在圖12中示意性地示出了在步驟615中執(zhí)行的處理,其中QoS列表470中的條目477被彈出,因此先前指向條目477的條目475使其指針被更新為指向條目478并將其pQoS值更新為反映條目478的QoS值。由于彈出的條目477的最后一個標(biāo)志沒有被設(shè)置,條目475的最后一個標(biāo)志也沒有被設(shè)置。[0115]圖1lB示出了當(dāng)從行-命中列表中彈出條目時執(zhí)行的相應(yīng)的步驟。正如從圖1lB和圖1lA的對比中可以看出,處理基本上是一樣的。如果要彈出的條目位于行-命中列表的頭部,那么在步驟660中設(shè)置彈出的條目指向的條目的頭部標(biāo)志。然而,如果要彈出的條目不在行-命中列表的頭部,那么在步驟665中指向彈出的條目的條目繼承彈出的條目的指針和尾部標(biāo)志狀態(tài)。[0116]圖13是依據(jù)可選的實(shí)施例示出了由圖3中的列表分配電路220執(zhí)行的步驟的流程圖。通過將圖13和前面所述的圖6進(jìn)行對比,將理解,圖13的步驟700到步驟725和步驟750到步驟760分別對應(yīng)于圖6的步驟350到步驟375和步驟380到步驟390,因此對這些步驟不作進(jìn)一步討論。然而,在圖13的流程圖中,執(zhí)行了四個附加的步驟,即步驟730到步驟745。[0117]特別地,在圖13中,QoS列表包括能夠被啟用或禁用的讀升級特征,這種讀升級特征在本文中也被稱作伙伴方案。如果讀升級特征沒有啟用,那么處理繼續(xù)進(jìn)行到步驟740。然而,如果讀升級特征被啟用了,那么處理繼續(xù)進(jìn)行到步驟735,其中將指向的條目的QoS值提高到等于QoS值Z。圖14中示意性地示出了這一點(diǎn),示出了和上面參照圖8所討論的相同的配置,但另外還示出了讀升級功能的作用。特別地,當(dāng)引入新的條目455時,將下一個條目460的QoS值增加到等于新的條目的QoS值,S卩,表示QoS值4。因此,插入的條目455中標(biāo)識的pQoS值現(xiàn)在取值為4。否則,處理完全是按照上面參照圖8所討論的。這種方法的好處是當(dāng)新的條目被插入到QoS列表中條目460前面時,條目460的優(yōu)先級被提高,并因此能夠防止較低優(yōu)先級的事務(wù)的無限期封鎖(indefiniteblocking),因此可以允許可預(yù)測的延時計算。雖然在圖13中所討論的實(shí)施例中所指向的條目的QoS值被更新到等于QoS值Z時,應(yīng)該理解,這不是必需的,且在讀升級方案的另一個實(shí)施例中,僅將所指向的條目的QoS值增加某個預(yù)定的量可能就足夠了。[0118]步驟740和步驟745處理前面提到的鏈接的突發(fā)事務(wù)。特別地,在一個實(shí)施例中,行-命中列表能夠被布置來支持一個或多個激勵列表(spur-list),每個激勵列表具有若干標(biāo)識鏈接的突發(fā)事務(wù)的激勵列表條目。因此,在步驟740中,判斷要分配的新的事務(wù)是否是鏈接的突發(fā)事務(wù),對于該鏈接的突發(fā)事務(wù)前面相關(guān)聯(lián)的鏈接的突發(fā)事務(wù)已經(jīng)被分配了在存儲庫A、行B的行-命中列表中的條目。如果是,那么處理繼續(xù)進(jìn)行到步驟745,其中從針對存儲庫AJfB的行-命中列表創(chuàng)建關(guān)于激勵列表的激勵列表條目,并通過設(shè)置IB標(biāo)志來將該條目標(biāo)志為“突發(fā)(in-burst)”。圖15中針對行-命中列表480示意性地示出了這一點(diǎn)。特別地,第一個鏈接的突發(fā)事務(wù)被分配了行-命中列表480中的條目485。然而,每個后續(xù)的鏈接的突發(fā)事務(wù)被分配激勵列表480中的激勵列表條目487、489。這樣的激勵列表條目隨后在仲裁期間能夠被區(qū)別對待,例如參照圖16所討論的。[0119]特別地,圖16依據(jù)可選的實(shí)施例示出了可以由圖3的仲裁電路240執(zhí)行的仲裁操作。通過與前面所述的圖9進(jìn)行比較,應(yīng)該理解,步驟825到步驟845對應(yīng)于圖9的步驟505到步驟525,因此本文中不作進(jìn)一步討論。然而,在步驟825之前,執(zhí)行若干進(jìn)一步的步驟。特別地,在步驟805中,判斷突發(fā)標(biāo)志被設(shè)定了的激勵列表條目是否指向先前仲裁的條目。因此,參照圖15,如果先前仲裁的條目是485,這將是條目487指向條目485的情況。類似地,如果先前仲裁的條目是條目487,這也將是條目489指向條目487的情況。[0120]每當(dāng)滿足此條件時,處理分支到步驟810,其中突發(fā)標(biāo)志被設(shè)定了的激勵列表條目被選中來標(biāo)識獲勝事務(wù),此后在步驟845中選中的條目從行-命中列表中彈出(并且其相應(yīng)的條目從相關(guān)的QoS列表中彈出)。[0121]然而,假設(shè)在步驟805中沒有識別出這樣的激勵列表條目,處理繼續(xù)進(jìn)行到步驟815,其中判斷是否有超時標(biāo)志被設(shè)定了的事務(wù)。特別地,在這個實(shí)施例中,超時標(biāo)志被用作預(yù)定的異常狀況的示例,且當(dāng)超時標(biāo)志被設(shè)置來標(biāo)識存在預(yù)定的異常狀況時,不執(zhí)行正常的仲裁處理,而是處理分支到步驟820。超時標(biāo)志能夠由于多種原因而被設(shè)定。然而,在一個實(shí)施例中,數(shù)據(jù)處理系統(tǒng)中各處的元件可以識別特定的事務(wù)需要按實(shí)際情況盡快地處理,因?yàn)橐呀?jīng)達(dá)到該事務(wù)的延時上限或者因?yàn)橹钡皆撌聞?wù)被處理才能進(jìn)行各種其它事務(wù)。因此,那些元件將發(fā)出控制信號,這些信號將使得該事務(wù)的優(yōu)先級被提高,從而在存儲器控制器內(nèi)為該特定的事務(wù)設(shè)置超時標(biāo)志。這樣的超時標(biāo)志能夠被保持在若干位置。然而,在一個實(shí)施例中,超時標(biāo)志是與掛起事務(wù)的細(xì)節(jié)相關(guān)聯(lián)地被保持在緩沖器230中。[0122]如果為任何事務(wù)設(shè)定了超時標(biāo)志,那么處理繼續(xù)進(jìn)行到步驟820,其中超時標(biāo)志被設(shè)定了的事務(wù)被選擇。如果有多個事務(wù)被設(shè)定了超時標(biāo)志,那么在步驟820中可以使用任何合適的選擇技術(shù)來選擇獲勝事務(wù),例如,通過超時標(biāo)志被設(shè)定的事務(wù)中進(jìn)行隨機(jī)選擇。然而,通常期望一般不會有多個超時標(biāo)志被設(shè)定的事務(wù),因?yàn)檫@將指示與事務(wù)相關(guān)聯(lián)的QoS值沒有被存儲器控制器50適當(dāng)?shù)貎?yōu)先化。在這種情況下,降低對要設(shè)置限制器信號的要求是恰當(dāng)?shù)模允沟脧牟襟E825分支到步驟835更頻繁地發(fā)生,從而降低事務(wù)被設(shè)定超時標(biāo)志的可能性。[0123]依據(jù)上面所述的技術(shù),存儲器控制器執(zhí)行列表分配和仲裁操作,這允許對事務(wù)進(jìn)行顯著的重新排序來提高行命中的發(fā)生率,而同時保留事務(wù)在其優(yōu)先級等級中的時間順序。因此這可使得在對事務(wù)進(jìn)行重新排序以減少訪問延時同時保持事務(wù)的QoS要求處于系統(tǒng)等級之間達(dá)到平衡。[0124]盡管本文已經(jīng)描述了特定的實(shí)施例,但應(yīng)該理解的是本發(fā)明不限于此并且在本發(fā)明的范圍內(nèi)能夠做出許多修改和增加。例如,以獨(dú)立權(quán)利要求的特征能夠做出下面的從屬權(quán)利要求的各種組合而不脫離本發(fā)明的范圍?!緳?quán)利要求】1.一種存儲器控制器,用于控制對存儲器設(shè)備的訪問,所述存儲器設(shè)備具有非均勻訪問定時特性,從而訪問存儲器地址花費(fèi)的時間取決于所述存儲器設(shè)備中先前的訪問活動,所述存儲器控制器包括:接口,所述接口被配置來接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;存儲裝置,所述存儲裝置被配置來將通過所述接口接收的還沒有被所述存儲器控制器發(fā)送給所述存儲器設(shè)備的那些事務(wù)臨時存儲為掛起事務(wù),所述存儲裝置保持對于所存儲的掛起事務(wù)的多個有序列表,包括至少一個基于優(yōu)先級的有序列表和至少一個訪問定時有序列表;每個基于優(yōu)先級的有序列表具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序;每個訪問定時有序列表具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)組成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址就能夠被所述存儲器設(shè)備根據(jù)所述非均勻訪問定時特性有效地訪問;以及仲裁電路,所述仲裁電路被配置來執(zhí)行仲裁操作,在所述仲裁操作過程中所述多個有序列表被參考以便從所述掛起事務(wù)中選擇要被發(fā)送給所述存儲器設(shè)備的獲勝事務(wù),所述存儲裝置被布置來從所述多個有序列表中移除該獲勝事務(wù)的任何條目;如果當(dāng)所述仲裁操作被執(zhí)行時,所述仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目且所述至少一個訪問定時有序列表仍然非空,除非存在預(yù)定的異常狀況,否則該仲裁操作被布置來將所述掛起事務(wù)中的在所述至少一個訪問定時有序列表中具有條目的掛起事務(wù)選作獲勝事務(wù)。2.如權(quán)利要求1所述的存儲器控制器,其中,如果所述仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)沒有在所述至少一個訪問定時有序列表之一中具有條目,或在所述至少一個訪問定時有序列表之一中具有條目但該至少一個訪問定時有序列表現(xiàn)在是空的,則所述仲裁操作被布置來將在所述至少一個基于優(yōu)先級的有序列表之一中的頭部位置具有條目的掛起事務(wù)選作獲勝事務(wù)。3.如權(quán)利要求1或權(quán)利要求2所述的存儲器控制器,其中,每個基于優(yōu)先級的有序列表包括多個子列表,每個條目存在于一個子列表中,從而各個子列表的條目與具有相同的優(yōu)先級指示的事務(wù)相關(guān),這些子列表基于所述優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序,且在每個子列表中,該子列表的條目基于相關(guān)聯(lián)的掛起事務(wù)通過所述接口接收的時間順序被排序。4.如任何前面的權(quán)利要求所述的存儲器控制器,其中,在每個訪問定時有序列表中,各條目基于相關(guān)聯(lián)的掛起事務(wù)通過所述接口接收的時間順序被排序。5.如任何前面的權(quán)利要求所述的存儲器控制器,其中,所述存儲器設(shè)備包括多個存儲庫,且所述至少一個基于優(yōu)先級的有序列表對于存在掛起事務(wù)的每個存儲庫包括單獨(dú)的基于優(yōu)先級的有序列表。6.如權(quán)利要求5所述的存儲器控制器,其中:每個存儲庫包括多行,每行在被訪問之前需要被激活,從而對指定的存儲器地址的訪問定時隨包含所述指定的存儲器地址的行是否已經(jīng)被激活而變化;以及所述至少一個訪問定時有序列表針對存在掛起事務(wù)的每個存儲庫的每個行包括單獨(dú)的訪問定時有序列表。7.如任何前面的權(quán)利要求所述的存儲器控制器,還包括分配電路,所述分配電路響應(yīng)于通過所述接口接收的每個事務(wù)來在所述多個有序列表中的至少一個有序列表中為該事務(wù)分配條目。8.如權(quán)利要求7所述的存儲器控制器,其中,對于通過所述接口接收的每個事務(wù),所述分配電路被配置來在所述至少一個基于優(yōu)先級的有序列表之一中和所述至少一個訪問定時有序列表之一中為該事務(wù)分配條目。9.如任何前面的權(quán)利要求所述的存儲器控制器,其中:在每個基于優(yōu)先級的有序列表中,每個條目包括頭部指示符和尾部指示符,如果該條目在此基于優(yōu)先級的有序列表中的頭部位置則所述頭部指示符被設(shè)置,如果該條目在此基于優(yōu)先級的有序列表中的尾部位置則所述尾部指示符被設(shè)置;以及每個條目還包括到此基于優(yōu)先級的有序列表中的下一個條目的指針,所述下一個條目在比指針指向該下一個條目的條目離所述頭部位置更遠(yuǎn)的位置。10.如權(quán)利要求9所述的存儲器控制器,其中,每個條目還標(biāo)識相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示。11.如權(quán)利要求10所述的存儲器控制器,其中,每個條目標(biāo)識與所述下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示。12.如權(quán)利要求11所述的存儲器控制器,還包括:分配電路,所述分配電路響應(yīng)于通過所述接口接收的當(dāng)前事務(wù)來在所述至少一個基于優(yōu)先級的有序列表中的所選中的基于優(yōu)先級的有序列表中為所述當(dāng)前事務(wù)分配條目,所選中的基于優(yōu)先級的有序列表是根據(jù)由所述當(dāng)前事務(wù)指定的存儲器地址而被選出的;所述分配電路被配置來識別所選中的基于優(yōu)先級的有序列表中的條目,該條目的相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示大于或等于所述當(dāng)前事務(wù)的優(yōu)先級指示,且與下一個條目相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示小于所述當(dāng)前事務(wù)的優(yōu)先級指示;以及所述分配電路還被配置來向所選中的基于優(yōu)先級的有序列表中添加所述當(dāng)前事務(wù)的新條目,所述新條目被排序以使得所述新條目與所識別出的條目相鄰但比所識別出的條目離所述頭部位置更遠(yuǎn)。13.如權(quán)利要求12所述的存儲器控制器,其中,所識別出的條目的指針被更新來指向所述新條目,且所述新條目的指針被布置來指向所述下一個條目。14.如權(quán)利要求13所述的存儲器控制器,其中,在所述下一個條目中,相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示被更新。15.如權(quán)利要求14所述的存儲器控制器,其中,相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示被更新為對應(yīng)于與所述新條目相關(guān)聯(lián)的當(dāng)前事務(wù)的優(yōu)先級指示。16.如權(quán)利要求12到15中的任何權(quán)利要求所述的存儲器控制器,其中,如果所述新條目在所述基于優(yōu)先級的有序列表中的尾部位置,所述分配電路使得所述新條目的尾部指示符被設(shè)置,且先前在所述尾部位置的條目的尾部指示符被清除。17.如權(quán)利要求12到16中的任何權(quán)利要求所述的存儲器控制器,其中,如果在所選中的基于優(yōu)先級的有序列表中不存在其相關(guān)聯(lián)掛起事務(wù)的優(yōu)先級指示大于或等于所述當(dāng)前事務(wù)的優(yōu)先級指示的條目,所述分配電路被配置來在所述頭部位置添加所述當(dāng)前事務(wù)的新條目,所述新條目的頭部指示符被設(shè)置且所述新條目的指針被布置來指向先前在所述頭部位置的條目,且先前在所述頭部位置的條目的頭部指示符被清除。18.如權(quán)利要求12到17中的任何權(quán)利要求所述的存儲器控制器,其中,如果所選中的基于優(yōu)先級的有序列表當(dāng)前沒有條目,所述分配電路被布置來使得為所述當(dāng)前事務(wù)分配的新條目被設(shè)置其頭部指示符和尾部指示符。19.如任何前面的權(quán)利要求所述的存儲器控制器,其中:在每個訪問定時有序列表內(nèi),每個條目包括頭部指示符和尾部指示符,如果該條目在此訪問定時有序列表的頭部位置則頭部指示符被設(shè)置,如果該條目在此訪問定時有序列表的尾部位置則尾部指示符被設(shè)置;以及每個條目還包括到此訪問定時有序列表中的下一個條目的指針,所述下一個條目在比指針指向該下一個條目的條目離所述頭部位置更遠(yuǎn)的位置。20.如權(quán)利要求19所述的存儲器控制器,其中,由所述至少一個事務(wù)源發(fā)出的突發(fā)事務(wù)被轉(zhuǎn)換成對于所述存儲器設(shè)備的多個鏈接的突發(fā)事務(wù),所述存儲器控制器還包括:分配電路,所述分配電路被布置來將所述鏈接的突發(fā)事務(wù)中的第一個突發(fā)事務(wù)分配到所述至少一個訪問定時有序列表之一中的條目,并隨后將所有剩余的鏈接的突發(fā)事務(wù)分配到與該條目相關(guān)聯(lián)的激勵列表中的激勵列表條目。21.如權(quán)利要求20所述的存儲器控制器,其中,如果當(dāng)所述仲裁操作被執(zhí)行時,所述仲裁選上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目,且該條目具有與其相關(guān)聯(lián)的激勵列表,則所述仲裁操作被布置來將所述鏈接的事務(wù)中在所述激勵列表中具有激勵列表條目的鏈接的事務(wù)選作獲勝事務(wù)。22.如權(quán)利要求21所述的存儲器控制器,其中,只有當(dāng)所有鏈接的事務(wù)都已經(jīng)被選作獲勝請求時,所述仲裁操作才被布置來將所述至少一個訪問定時有序列表之一中的與所述下一個條目相關(guān)聯(lián)的事務(wù)選作后續(xù)的獲勝事務(wù)。23.如權(quán)利要求19到22中的任何權(quán)利要求所述的存儲器控制器,其中:所述存儲器設(shè)備包括多個存儲庫,每個存儲庫包括多行,且所述至少一個訪問定時有序列表對于存在掛起事務(wù)的每個存儲庫的每行包括單獨(dú)的訪問定時有序列表;在每個訪問定時有序列表中,每個條目包括被提供了此訪問定時列表的的存儲庫和行的指示。24.如任何前面的權(quán)利要求所述的存儲器控制器,其中,所述優(yōu)先級指示是在每個事務(wù)的字段中提供的顯式優(yōu)先級指示。25.如權(quán)利要求24所述的存儲器控制器,其中,所述優(yōu)先級指示是服務(wù)質(zhì)量(QoS)等級指示。26.如任何前面的權(quán)利要求所述的存儲器控制器,其中,所述預(yù)定的異常狀況是使得特定的掛起事務(wù)的優(yōu)先級指示被改變?yōu)楸硎靖邇?yōu)先級的條件,當(dāng)所述預(yù)定的異常狀況出現(xiàn)時,所述仲裁電路被配置來將該特定的掛起事務(wù)選作獲勝事務(wù),且所述存儲裝置被布置來從所述多個有序列表中移除此獲勝事務(wù)的任何條目。27.如任何前面的權(quán)利要求所述的存儲器控制器,還包括:限制器電路,所述限制器電路被配置來至少監(jiān)測從所述訪問定時有序列表之一中選中的連續(xù)的獲勝事務(wù)的數(shù)目,并在閾值條件出現(xiàn)時斷言限制器信號;如果所述限制器信號被斷言則所述預(yù)定的異常狀況被檢測出,且所述仲裁電路響應(yīng)于所述限制器信號的斷言以使得所述仲裁操作的下次執(zhí)行將在所述至少一個基于優(yōu)先級的有序列表之一中的頭部位置具有條目的掛起事務(wù)選作獲勝事務(wù),即使所述仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目且該至少一個訪問定時有序列表仍然非空。28.如任何前面的權(quán)利要求所述的存儲器控制器,其中,通過所述接口接收的事務(wù)是讀事務(wù)。29.如任何前面的權(quán)利要求所述的存儲器控制器,其中,所述仲裁電路被配置來并行地執(zhí)行多項仲裁操作。30.一種控制對存儲器設(shè)備的訪問的方法,所述存儲器設(shè)備具有非均勻訪問定時特性,從而訪問存儲器地址花費(fèi)的時間取決于所述存儲器設(shè)備中先前的訪問活動,所述方法包括:接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;將所接收的還沒有從輸出接口輸出到所述存儲器設(shè)備的那些事務(wù)在存儲裝置中臨時存儲為掛起事務(wù),所述存儲裝置保持對于所存儲的掛起事務(wù)的多個有序列表,包括至少一個基于優(yōu)先級的有序列表和至少一個訪問定時有序列表;將每個基于優(yōu)先級的有序列表布置為具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序;將每個訪問定時有序列表布置為具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表相關(guān)聯(lián)的掛起事務(wù)形成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址就能夠被所述存儲器設(shè)備根據(jù)所述非均勻訪問定時特性有效地訪問;以及執(zhí)行仲裁操作,在所述仲裁操作過程中所述多個有序列表被參考以便從所述掛起事務(wù)中選擇要從所述輸出接口輸出到所述存儲器設(shè)備的獲勝事務(wù),并從所述多個有序列表中移除該獲勝事務(wù)的任何條目;如果當(dāng)所述仲裁操作被執(zhí)行時,所述仲裁操作上次被執(zhí)行時所選中的獲勝事務(wù)在所述至少一個訪問定時有序列表之一中具有條目且所述至少一個訪問定時有序列表仍然非空,除非存在預(yù)定的異常狀況,否則所述仲裁操作被布置來將所述掛起事務(wù)中的在所述至少一個訪問定時有序列表中具有條目的掛起事務(wù)選作獲勝事務(wù)。31.一種存儲器控制器,用于控制對存儲器設(shè)備的訪問,所述存儲器設(shè)備具有非均勻訪問定時特性,從而訪問存儲器地址花費(fèi)的時間取決于所述存儲器設(shè)備中先前的訪問活動,所述存儲器控制器包括:接口裝置,所述接口裝置用于接收從至少一個事務(wù)源發(fā)出的事務(wù),每個事務(wù)指定該事務(wù)要訪問的存儲器地址并包括與該事務(wù)相關(guān)聯(lián)的優(yōu)先級指示;存儲裝置,所述存儲裝置用于將通過所述接口裝置接收的還沒有被所述存儲器控制器發(fā)送給所述存儲器設(shè)備的那些事務(wù)臨時存儲為掛起事務(wù),所述存儲裝置保持對于存儲的掛起事務(wù)的多個有序列表裝置,包括至少一個基于優(yōu)先級的有序列表裝置和至少一個訪問定時有序列表裝置;每個基于優(yōu)先級的有序列表裝置具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且每個條目基于相關(guān)聯(lián)的掛起事務(wù)的優(yōu)先級指示在其基于優(yōu)先級的有序列表中被排序;每個訪問定時有序列表裝置具有多個條目,每個條目與所述掛起事務(wù)之一相關(guān)聯(lián),且與每個訪問定時有序列表裝置相關(guān)聯(lián)的掛起事務(wù)組成一事務(wù)組,一旦該組中的某一事務(wù)的存儲器地址被訪問,該組各事務(wù)的存儲器地址就能夠被所述存儲器設(shè)備根據(jù)所述非均勻訪問定時特性有效地訪問;以及仲裁裝置,所述仲裁裝置用于執(zhí)行仲裁操作,在仲裁操作過程中所述多個有序列表裝置被參考以便從所述掛起事務(wù)中選擇要被發(fā)送給所述存儲器設(shè)備的獲勝事務(wù),所述存儲裝置用于從所述多個有序列表裝置中移除該獲勝事務(wù)的任何條目;如果當(dāng)所述仲裁操作被執(zhí)行時,所述仲裁操作在上次被執(zhí)行時選中的獲勝事務(wù)在所述至少一個訪問定時有序列表裝置之一中具有條目且所述至少一個訪問定時有序列表裝置仍然非空,除非存在預(yù)定的異常狀況,否則所述仲裁操作將所述掛起事務(wù)中的在所述至少一個訪問定時序列表裝置中具有條目的掛起事務(wù)選作獲勝事務(wù)?!疚臋n編號】G06F13/16GK103620570SQ201280031025【公開日】2014年3月5日申請日期:2012年5月29日優(yōu)先權(quán)日:2011年6月24日【發(fā)明者】邁克爾·安德魯·坎貝爾,克里斯托弗·埃德溫·瑞格利,布雷特·斯坦利·菲勒申請人:Arm有限公司