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

存取調(diào)度器的制作方法

文檔序號(hào):6353220閱讀:254來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):存取調(diào)度器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于對(duì)用于分組緩沖的諸如一個(gè)或多個(gè)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM) 之類(lèi)的一個(gè)或多個(gè)存儲(chǔ)器器件的存取進(jìn)行調(diào)度的存取調(diào)度器。本發(fā)明也涉及包括這種存取 調(diào)度器的存儲(chǔ)器控制器并且涉及包括該存儲(chǔ)器控制器的數(shù)據(jù)處理系統(tǒng)。
背景技術(shù)
因?yàn)閯?dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的低成本和低功率,所以往往使用動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(DRAM)來(lái)實(shí)施分組緩沖器,例如排隊(duì)器件。然而,DRAM由于其長(zhǎng)的等待時(shí)間以及其 對(duì)隨機(jī)存取的約束而提出挑戰(zhàn)。DRAM被成排(bank)地組織并且DRAM的物理性質(zhì)對(duì)排存取 提出限制。例如,存取參數(shù)行循環(huán)時(shí)間tRC給出對(duì)DRAM排中的行的存取和對(duì)相同DRAM排 中的另一行的連續(xù)存取之間的最小時(shí)間。另一個(gè)存取參數(shù)滾動(dòng)時(shí)間幀tFAW限制時(shí)間窗口 內(nèi)的行激活命令的數(shù)量,在所述滾動(dòng)時(shí)間幀tFAW中可以同時(shí)進(jìn)行對(duì)相同DRAM器件的最大 四行激活。行是排的一部分。在可以執(zhí)行對(duì)行內(nèi)的地址的讀或?qū)懼?,必須激活該行。DRAM的存儲(chǔ)器控制器接收針對(duì)DRAM的不同排的讀和寫(xiě)請(qǐng)求。由于就每時(shí)間單位 的存取而言DRAM帶寬往往是瓶頸,所以DRAM的存儲(chǔ)器控制器可以重新布置讀和寫(xiě)請(qǐng)求的 順序,使得最大化存儲(chǔ)器接口的利用。一種優(yōu)化是以固定的順序循環(huán)地存取這些排,因而確保對(duì)任一 DRAM排的兩個(gè)連 續(xù)存取之間的時(shí)間大于或等于行循環(huán)時(shí)間tRC。另一種優(yōu)化是重新布置讀請(qǐng)求和寫(xiě)請(qǐng)求,使得多個(gè)讀請(qǐng)求后面是多個(gè)寫(xiě)請(qǐng)求例 如把序列Sl = (Rl, W2, R3, W4)重新布置成S2 = (Rl, R3, W2, W4),其中R代表讀,W 代表寫(xiě)并且數(shù)字指示其中存儲(chǔ)器控制器接收請(qǐng)求的順序。對(duì)于在對(duì)DRAM的讀和寫(xiě)存取之 間的轉(zhuǎn)向而言經(jīng)常存在帶寬懲罰,因此S2比Sl在更短的時(shí)間內(nèi)完成。Bains的已公開(kāi)美國(guó)申請(qǐng)US 2004/0236921 Al揭示了一種改進(jìn)高速緩存數(shù)據(jù)總 線上的帶寬使得可以更高效地使用諸如DRAM之類(lèi)的高速緩存存儲(chǔ)器的方法。在一個(gè)實(shí)施 例中,重新排序讀或?qū)懘嫒∫愿咝У乩脭?shù)據(jù)總線上的帶寬。Van Hook等人的美國(guó)專(zhuān)利US 6,564,304 Bl揭示了一種用于對(duì)圖形處理系統(tǒng)中的 存儲(chǔ)器進(jìn)行存取的存儲(chǔ)器處理系統(tǒng),其中存儲(chǔ)器控制器仲裁來(lái)自多個(gè)存儲(chǔ)器請(qǐng)求器的存儲(chǔ) 器存取請(qǐng)求。讀被分組在一起并且寫(xiě)被分組在一起以避免模式切換。然而,例如,如果DRAM排中的地址在變成寫(xiě)之前被讀,則諸如讀和寫(xiě)存取之類(lèi)的 存取的重新排序可能造成邏輯錯(cuò)誤。例如,在上面提及的序列Sl = (Rl, W2, R3, W4)和 S2 = (Rl, R3, W2, W4)中,W2和R3可能存取相同的排地址。如果W2寫(xiě)數(shù)據(jù)結(jié)構(gòu)(例如鏈 接表)的元素并且R3存取該數(shù)據(jù)結(jié)構(gòu)的相同元素,則如果如以S2那樣重新排序W2和R3, 將發(fā)生邏輯錯(cuò)誤,原因在于這將使程序在地址被寫(xiě)完之前讀該地址。即,重新排序?qū)⑹菇馕?該鏈接表的程序使用陳舊的指針,造成程序故障。Laskshmanamurthy等人的已公開(kāi)美國(guó)申請(qǐng)US 2007/0156946 Al揭示了一種利用 排分類(lèi)(sort)和調(diào)度的存儲(chǔ)器控制器。存儲(chǔ)器控制器包括FIFO緩沖器、仲裁器、排FIFO集
5和排調(diào)度器。來(lái)自FIFO緩沖器的輸出被饋送到把存儲(chǔ)器請(qǐng)求分類(lèi)到適當(dāng)?shù)呐臚IFO中的仲 裁器中。仲裁器可以使用循環(huán)仲裁方案來(lái)分類(lèi)和優(yōu)先化輸入請(qǐng)求流。排調(diào)度器接收來(lái)自排 FIFO集的輸出并且循環(huán)地處理這些請(qǐng)求。在每個(gè)循環(huán)中,排調(diào)度器可以選擇對(duì)讀/寫(xiě)效率 進(jìn)行優(yōu)化的業(yè)務(wù),例如排調(diào)度器可以對(duì)讀和/或?qū)戇M(jìn)行分組以最小化讀寫(xiě)周轉(zhuǎn)。在US 2007/0156946 Al中,如上面所描述的邏輯錯(cuò)誤的問(wèn)題由“無(wú)序”機(jī)構(gòu)解決, 該“無(wú)序”機(jī)構(gòu)確保從不違反支配對(duì)相同地址的讀和寫(xiě)的業(yè)務(wù)排序規(guī)則,即地址在其被寫(xiě)完 之前不能被讀。US 2007/0156946 Al的存儲(chǔ)器控制器的缺點(diǎn)/問(wèn)題在于其未提供存儲(chǔ)器帶寬的 加權(quán)公平共享。通過(guò)把讀和寫(xiě)存儲(chǔ)器請(qǐng)求存儲(chǔ)在相同的排FIFO中,讀和寫(xiě)之間的共享由請(qǐng) 求到達(dá)過(guò)程確定而不由存儲(chǔ)器控制器調(diào)整。進(jìn)一步,US 2007/0156946 Al的存儲(chǔ)器控制器具有確保例如在寫(xiě)請(qǐng)求之前不發(fā)出 讀請(qǐng)求(如果這些請(qǐng)求是針對(duì)相同地址的話)的仲裁器。因而,盡管存在要在存儲(chǔ)器控制器 的內(nèi)部?jī)?chǔ)存器中讀的數(shù)據(jù),還發(fā)出對(duì)DRAM的讀請(qǐng)求。這意味著DRAM未被最優(yōu)地利用并且 讀等待時(shí)間未被最小化。而且,US 2007/0156946 Al的存儲(chǔ)器控制器沒(méi)有裝置來(lái)優(yōu)先化需要低等待時(shí)間的 請(qǐng)求,例如與控制信息有關(guān)的請(qǐng)求,使得它們?cè)谌萑梯^長(zhǎng)等待時(shí)間的請(qǐng)求(例如與分組數(shù)據(jù) 有關(guān)的請(qǐng)求)之前被服務(wù)。

發(fā)明內(nèi)容
本發(fā)明的目標(biāo)是克服現(xiàn)有技術(shù)的問(wèn)題和/或缺點(diǎn)。按照本發(fā)明,提供DRAM帶寬的共享和優(yōu)化。進(jìn)一步,被配置成設(shè)定每一 DRAM排或 每一 DRAM器件(群組)的位屏蔽(mask)的發(fā)明存取調(diào)度器使存取調(diào)度器與存儲(chǔ)器接口同步 地執(zhí)行DRAM存取的開(kāi)環(huán)控制,即當(dāng)存取調(diào)度器發(fā)出命令序列時(shí),保證它們以與它們由存取 調(diào)度器發(fā)出相同的速率由存儲(chǔ)器接口執(zhí)行。用于對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件的存取進(jìn)行調(diào)度的發(fā)明存取調(diào)度器的實(shí)施例包 括
一第一層次級(jí)別,包括
---個(gè)或多個(gè)排定時(shí)器,被配置成當(dāng)與存儲(chǔ)器器件的每排關(guān)聯(lián)的FIFO隊(duì)列被存取
時(shí)設(shè)定該排的屏蔽位,所述FIFO隊(duì)列存儲(chǔ)與存取請(qǐng)求有關(guān)的請(qǐng)求信息;以及
---個(gè)或多個(gè)第一級(jí)別仲裁器,被配置成選擇來(lái)自多個(gè)FIFO隊(duì)列中的一個(gè)FIFO隊(duì)
列的存取請(qǐng)求并且把關(guān)于所述一個(gè)FIFO隊(duì)列的合格(eligibility)信息傳播到下一層次 級(jí)別;以及
一第四層次級(jí)別,包括
一一第四級(jí)別仲裁器,被配置成接收傳播的合格信息并且基于傳播的合格信息來(lái)選擇 請(qǐng)求。在實(shí)施例中,第四級(jí)別仲裁器進(jìn)一步被配置成基于由有限狀態(tài)機(jī)生成的刷新請(qǐng)求 來(lái)選擇請(qǐng)求。在實(shí)施例中,有限狀態(tài)機(jī)被配置成控制在切換到第二類(lèi)型的許多存取請(qǐng)求例如寫(xiě) 請(qǐng)求之前要執(zhí)行的第一類(lèi)型的存取請(qǐng)求例如讀請(qǐng)求的數(shù)量。
6
實(shí)施例進(jìn)一步包括第五層次級(jí)別,包括
一第五級(jí)別仲裁器,被配置成在對(duì)第一存儲(chǔ)器器件的存取請(qǐng)求和對(duì)第二存儲(chǔ)器器件的 存取請(qǐng)求之間選擇。實(shí)施例進(jìn)一步包括
一第二層次級(jí)別,包括一個(gè)或多個(gè)第二級(jí)別仲裁器,被布置成從第一級(jí)別仲裁器接收 傳播的合格信息并且被配置成在低優(yōu)先級(jí)請(qǐng)求和高優(yōu)先級(jí)請(qǐng)求之間執(zhí)行仲裁且把與選擇 的請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別;以及
一第三層次級(jí)別,包括一個(gè)或多個(gè)第三級(jí)別仲裁器,被配置成從第二級(jí)別仲裁器接 收傳播的合格信息;從管理請(qǐng)求單元接收管理請(qǐng)求,以基于傳播的合格信息和管理請(qǐng)求來(lái) 選擇請(qǐng)求;并且把與選擇的存取請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別。實(shí)施例進(jìn)一步包括刷新定時(shí)器,被配置成基于存儲(chǔ)在配置參數(shù)單元中的配置參 數(shù)來(lái)指令所述有限狀態(tài)機(jī)生成刷新請(qǐng)求。在實(shí)施例中,刷新請(qǐng)求是對(duì)存儲(chǔ)器器件的維護(hù)請(qǐng)求,諸如刷新存儲(chǔ)器器件的內(nèi)容 的請(qǐng)求。在實(shí)施例中,刷新請(qǐng)求被周期性地發(fā)送并且優(yōu)先于其它請(qǐng)求。在實(shí)施例中,配置參數(shù)涉及在要執(zhí)行許多寫(xiě)請(qǐng)求之前要執(zhí)行的讀請(qǐng)求的數(shù)量或者 在寫(xiě)之前要讀的突發(fā)(burst)的數(shù)量。本發(fā)明也涉及一種包括發(fā)明存取調(diào)度器的存儲(chǔ)器控制器。存儲(chǔ)器控制器的實(shí)施例 進(jìn)一步包括
一存取緩沖器,連接到所述存取調(diào)度器且到一個(gè)或多個(gè)存儲(chǔ)器器件并且被配置成從連 接到存儲(chǔ)器控制器的處理器接收對(duì)所述一個(gè)或多個(gè)存儲(chǔ)器器件的一個(gè)或多個(gè)存取請(qǐng)求,以 及
一重新排序器件,連接到所述存取緩沖器,被配置成接收來(lái)自一個(gè)或多個(gè)存儲(chǔ)器器件 的響應(yīng)數(shù)據(jù),以對(duì)接收的響應(yīng)數(shù)據(jù)進(jìn)行分類(lèi),使得以與處理器發(fā)送存取請(qǐng)求相同的順序產(chǎn) 生到處理器的存取響應(yīng)。本發(fā)明也涉及一種對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件的存取進(jìn)行調(diào)度的方法,包括提供具 有如下的存取調(diào)度器的步驟
一第一層次級(jí)別,包括
---個(gè)或多個(gè)排定時(shí)器,被配置成當(dāng)與存儲(chǔ)器器件的每排關(guān)聯(lián)的FIFO隊(duì)列被存取
時(shí)設(shè)定該排的屏蔽位,所述FIFO隊(duì)列存儲(chǔ)與存取請(qǐng)求有關(guān)的請(qǐng)求信息;以及
---個(gè)或多個(gè)第一級(jí)別仲裁器,被配置成選擇來(lái)自多個(gè)FIFO隊(duì)列中的一個(gè)FIFO隊(duì)
列的存取請(qǐng)求并且把關(guān)于所述一個(gè)FIFO隊(duì)列的合格信息傳播到下一層次級(jí)別;以及 一第四層次級(jí)別,包括
一一第四級(jí)別仲裁器,被配置成接收傳播的合格信息并且基于傳播的合格信息、由有 限狀態(tài)機(jī)生成的可能刷新請(qǐng)求以及由群組定時(shí)器設(shè)定的可能屏蔽來(lái)選擇請(qǐng)求。方法的實(shí)施例進(jìn)一步包括以下步驟借助于有限狀態(tài)機(jī),控制在切換到第二類(lèi)型 的許多存取請(qǐng)求例如寫(xiě)請(qǐng)求之前要執(zhí)行的第一類(lèi)型的存取請(qǐng)求例如讀請(qǐng)求的數(shù)量。方法的實(shí)施例進(jìn)一步包括以下步驟提供包括第五級(jí)別仲裁器的第五層次級(jí)別, 所述第五級(jí)別仲裁器被配置成在對(duì)第一存儲(chǔ)器器件的存取請(qǐng)求和對(duì)第二存儲(chǔ)器器件的存取請(qǐng)求之間選擇。方法的實(shí)施例進(jìn)一步包括提供如下的步驟
一第二層次級(jí)別,包括一個(gè)或多個(gè)第二級(jí)別仲裁器,布置成從第一級(jí)別仲裁器接收傳 播的合格信息并且被配置成在低優(yōu)先級(jí)請(qǐng)求和高優(yōu)先級(jí)請(qǐng)求之間執(zhí)行仲裁且把與選擇的 請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別;以及
一第三層次級(jí)別,包括一個(gè)或多個(gè)第三級(jí)別仲裁器,被配置成從第二級(jí)別仲裁器接 收傳播的合格信息;從管理請(qǐng)求單元接收管理請(qǐng)求,以基于傳播的合格信息和管理請(qǐng)求來(lái) 選擇請(qǐng)求;并且把與選擇的存取請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別。方法的實(shí)施例進(jìn)一步包括提供刷新定時(shí)器的步驟,所述刷新定時(shí)器被配置成基于 存儲(chǔ)在配置參數(shù)單元中的配置參數(shù)來(lái)指令所述有限狀態(tài)機(jī)生成刷新請(qǐng)求。被配置成調(diào)度對(duì)分組緩沖器(諸如DRAM)的存取的發(fā)明存取調(diào)度器的實(shí)施例具有 以下特征和優(yōu)點(diǎn)
一使用定時(shí)器控制的屏蔽來(lái)防止排存取模式(pattern)違反諸如排隨機(jī)存取時(shí)間之類(lèi) 的DRAM約束。一產(chǎn)生也防止對(duì)存取的DRAM約束造成存儲(chǔ)器總線拖延(stall)的排存取模式。一在DRAM群組之間交替以進(jìn)一步獲得存儲(chǔ)器總線帶寬,其中存儲(chǔ)器器件共享橫 跨群組的地址總線但是具有每一群組的專(zhuān)用數(shù)據(jù)總線。一產(chǎn)生不同長(zhǎng)度的DRAM存?。患窗恳淮嫒〔煌臄?shù)據(jù)突發(fā)量而不是迫使處 理器產(chǎn)生每一請(qǐng)求每一排和行包括特定固定數(shù)量的突發(fā)的存取。一給讀和寫(xiě)存取靈活地分配帶寬共享。一支持例如分別針對(duì)控制和數(shù)據(jù)的高優(yōu)先級(jí)和低優(yōu)先級(jí)存取。一管理存取的超高優(yōu)先級(jí)。包括發(fā)明存取調(diào)度器的發(fā)明存儲(chǔ)器控制器適合用于緩沖器系統(tǒng),即以諸如隊(duì)列 之類(lèi)的結(jié)構(gòu)暫時(shí)存儲(chǔ)在輸入上接收的數(shù)據(jù)以等待傳輸?shù)捷敵錾系南到y(tǒng);例如用于通信量 (traffic)管理器。通信量管理器是一種例如通過(guò)組合用于隊(duì)列管理、調(diào)度、通信量整形和 阻塞控制但不限于此類(lèi)使用的機(jī)構(gòu)而給聯(lián)網(wǎng)系統(tǒng)中的流提供帶寬管理的器件。進(jìn)一步,這樣的發(fā)明存儲(chǔ)器控制器產(chǎn)生
存儲(chǔ)器接口的高利用,即存儲(chǔ)器請(qǐng)求序列被重新排序,使得對(duì)于任何序列的存儲(chǔ)器請(qǐng) 求的速率(rate)接近最優(yōu)重新排序序列的速率;
到高帶寬的可伸縮性,即發(fā)明存儲(chǔ)器控制器容易適于與任意數(shù)量的DRAM器件一起使
用;
有限的等待時(shí)間,即從發(fā)送要求來(lái)自存儲(chǔ)器控制器的響應(yīng)的請(qǐng)求(例如讀請(qǐng)求)起的時(shí) 間具有已知的上限;
存取類(lèi)型之間的存儲(chǔ)器帶寬的受控共享,即DRAM帶寬的已知(例如最小)共享可以被分 配給存取類(lèi)型,例如讀存取或?qū)懘嫒?;以?br> 數(shù)據(jù)相對(duì)于請(qǐng)求順序的不重新排序,即如果處理器向存儲(chǔ)器控制器產(chǎn)生后面是第二請(qǐng) 求的第一請(qǐng)求,其中這兩個(gè)請(qǐng)求觸發(fā)響應(yīng)(例如讀請(qǐng)求),則存儲(chǔ)器控制器在對(duì)第二請(qǐng)求的 響應(yīng)之前返回對(duì)第一請(qǐng)求的響應(yīng)。


通過(guò)連同附圖一起閱讀時(shí)的本發(fā)明實(shí)施例的以下詳細(xì)描述,將更容易理解本發(fā)明 的目標(biāo)、優(yōu)點(diǎn)和效果以及特征,在附圖中
圖1示意性地示出根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的實(shí)施例的概觀; 圖2示意性地示出根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的另一個(gè)實(shí)施例的概觀; 圖3示意性地示出根據(jù)本發(fā)明的存取調(diào)度器的實(shí)施例; 圖4示意性地示出根據(jù)本發(fā)明的存取調(diào)度器的廣義實(shí)施例; 圖5示意性地示出存取緩沖器的實(shí)施例; 圖6示意性地示出存取緩沖器的廣義實(shí)施例;
圖7示意性地示出根據(jù)本發(fā)明的存取調(diào)度器中的排定時(shí)器設(shè)定的屏蔽位的序列圖; 圖8示意性地示出根據(jù)本發(fā)明的存取調(diào)度器中的群組定時(shí)器設(shè)定的屏蔽位的序列以及
圖9示意性地示出根據(jù)本發(fā)明的存取調(diào)度器中的選擇和命令生成的序列圖。
具體實(shí)施例方式雖然本發(fā)明覆蓋各種修改以及可選方法、裝置和系統(tǒng),但是本發(fā)明的實(shí)施例在附 圖中被示出并且將在下文中被更詳細(xì)地描述。然而,要理解,特定的描述和附圖不旨在把發(fā) 明限制為所揭示的特定形式。相反,所要求保護(hù)的發(fā)明的范圍旨在包括落入如在所附權(quán)利 要求到其等效物的整個(gè)范圍中表示的發(fā)明的精神和范圍內(nèi)的其所有修改和可選構(gòu)造。在附 圖中,相同的參考數(shù)字用于相同或類(lèi)似的特征。圖1示出根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)100的實(shí)施例的概觀。數(shù)據(jù)處理系統(tǒng)100包 括連接到存儲(chǔ)器控制器104的處理器102。處理器102被配置成把存取請(qǐng)求發(fā)送到存儲(chǔ)器 控制器104并且接收來(lái)自存儲(chǔ)器控制器104的存取響應(yīng),如箭頭所示的。處理器102可以是可以執(zhí)行計(jì)算機(jī)程序的中央處理器單元(CPU)、多處理器、網(wǎng)絡(luò) 處理器、可編程管線、IO處理器或者諸如有限狀態(tài)機(jī)之類(lèi)的邏輯電路。存儲(chǔ)器控制器104經(jīng)由存儲(chǔ)器接口 400連接到一個(gè)或多個(gè)存儲(chǔ)器器件106并且被 配置成控制對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件106的存取。有時(shí)也被稱(chēng)為分組緩沖器的存儲(chǔ)器器件 106可以是具有隨機(jī)存取約束的長(zhǎng)等待時(shí)間存儲(chǔ)器,諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。在實(shí)施例中,存儲(chǔ)器控制器104包括存取緩沖器200、存取調(diào)度器300、存儲(chǔ)器接口 400和重新排序器件500,參見(jiàn)圖1。如先前所提及的,存儲(chǔ)器接口 400被配置成把存儲(chǔ)器控 制器104連接到一個(gè)或多個(gè)存儲(chǔ)器器件106 (例如DRAM)并且實(shí)施針對(duì)使用的器件類(lèi)型的 通信協(xié)議(例如DRAM協(xié)議)。然而,如圖2示意性地所示的,應(yīng)當(dāng)理解,在實(shí)施例中存儲(chǔ)器接口 400可以被布置 在一個(gè)或多個(gè)存儲(chǔ)器控制器104的外部。在這樣的實(shí)施例中,存儲(chǔ)器接口 400可以借助于 交換機(jī)450而連接到一個(gè)或多個(gè)存儲(chǔ)器控制器104,參見(jiàn)圖2。該交換機(jī)可以例如是交叉開(kāi) 關(guān)(crossbar)、網(wǎng)狀網(wǎng)絡(luò)、環(huán)或總線。優(yōu)選地,存儲(chǔ)器接口 400被微編碼并且被配置成響應(yīng)于接收的命令而執(zhí)行微編碼 的序列。該命令可以例如是從存取緩沖器200接收的讀請(qǐng)求或?qū)懻?qǐng)求。當(dāng)用于本描述中時(shí),措詞“微代碼”/ “微編碼”指代實(shí)施功能基元以供其它單元使用的硬件級(jí)指令。微代碼駐留在特殊的存儲(chǔ)器(未示出)中并且把輸入轉(zhuǎn)換成內(nèi)部電路上或 輸入/輸出(IO)管腳上的電路級(jí)控制信號(hào)序列。存取緩沖器200被配置成接收來(lái)自連接到存儲(chǔ)器控制器104的一個(gè)或多個(gè)處理器 102的一個(gè)或多個(gè)存取請(qǐng)求。在實(shí)施例中,存取緩沖器200被配置成處理對(duì)一個(gè)或多個(gè)存儲(chǔ) 器器件106例如DRAM的存取。存取請(qǐng)求可以具有不同類(lèi)型,例如具有高或低優(yōu)先級(jí)的讀或?qū)懻?qǐng)求以及管理請(qǐng) 求。然而,應(yīng)當(dāng)理解,其它實(shí)施例可以包括其它請(qǐng)求類(lèi)型,諸如DRAM刷新請(qǐng)求。在實(shí)施例中,管理請(qǐng)求具有最高優(yōu)先級(jí),并且與寫(xiě)和讀控制信息數(shù)據(jù)有關(guān)的請(qǐng)求 一般具有比與寫(xiě)和讀數(shù)據(jù)例如有效載荷數(shù)據(jù)有關(guān)的請(qǐng)求更高的優(yōu)先級(jí)。管理請(qǐng)求可以例如是對(duì)存儲(chǔ)器接口中的微代碼存儲(chǔ)器或配置參數(shù)的讀或?qū)懻?qǐng)求、 或者對(duì)存儲(chǔ)器接口的狀態(tài)位的讀請(qǐng)求。數(shù)據(jù)請(qǐng)求可以例如是對(duì)在DRAM中緩沖的分組數(shù)據(jù)例如有效載荷數(shù)據(jù)的讀或?qū)懻?qǐng) 求??刂菩畔?shù)據(jù)請(qǐng)求可以例如是對(duì)與對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)有關(guān)的信息(諸如 鏈接表指針或分組長(zhǎng)度)的讀或?qū)懻?qǐng)求。在實(shí)施例中,存取緩沖器200基于先進(jìn)先出(FIFO),即存取緩沖器200包括許多 FIFO緩沖器,所述FIFO緩沖器在本說(shuō)明書(shū)文本中也被稱(chēng)為FIFO隊(duì)列。如果例如存取緩沖器200被配置成處理兩個(gè)存儲(chǔ)器器件106 (例如DRAM),每個(gè)具 有8排,則與FIFO隊(duì)列關(guān)聯(lián)的每一請(qǐng)求類(lèi)型存在16個(gè)FIFO隊(duì)列。管理請(qǐng)求經(jīng)常不與FIFO 隊(duì)列關(guān)聯(lián),因?yàn)樗鼈兙哂凶罡叩膬?yōu)先級(jí)并因此被優(yōu)先化而不用緩沖。具有高優(yōu)先級(jí)的讀請(qǐng) 求、具有低優(yōu)先級(jí)的讀請(qǐng)求、具有高優(yōu)先級(jí)的寫(xiě)請(qǐng)求和具有低優(yōu)先級(jí)的寫(xiě)請(qǐng)求每個(gè)與每排 存儲(chǔ)器器件的FIFO隊(duì)列關(guān)聯(lián)。根據(jù)從處理器接收的請(qǐng)求類(lèi)型且根據(jù)其旨在用于哪個(gè)存儲(chǔ)器器件和該存儲(chǔ)器器 件的哪排,該請(qǐng)求被存儲(chǔ)在與請(qǐng)求類(lèi)型和所討論的存儲(chǔ)器器件排對(duì)應(yīng)的FIFO隊(duì)列中。存取緩沖器200包括或連接到存取調(diào)度器300。存取調(diào)度器被配置成從存取緩沖 器的FIFO隊(duì)列接收或檢索請(qǐng)求信息和/或從存取緩沖器接收或檢索管理請(qǐng)求信息。請(qǐng)求 信息可以例如是存取緩沖器中的FIFO隊(duì)列包括存取請(qǐng)求的指示,其也可以包括FIFO隊(duì)列 為空的信息以及關(guān)于請(qǐng)求長(zhǎng)度的信息。優(yōu)選地,由于管理請(qǐng)求具有最高優(yōu)先級(jí),所以存取調(diào) 度器可以直接接收或檢索管理請(qǐng)求信息而不用管理請(qǐng)求信息在存取緩沖器的任何緩沖。存取調(diào)度器進(jìn)一步被配置成借助于包括一個(gè)或多個(gè)調(diào)度算法的一個(gè)或多個(gè)調(diào)度 器或仲裁器來(lái)調(diào)度請(qǐng)求。也被稱(chēng)為選擇的請(qǐng)求的所調(diào)度請(qǐng)求然后作為請(qǐng)求命令發(fā)送到所討 論的存儲(chǔ)器器件,優(yōu)選地到存儲(chǔ)器器件的特定排。請(qǐng)求命令優(yōu)選地在存取緩沖器中被生成 并且從存取緩沖器直接或經(jīng)由交換機(jī)發(fā)送到存儲(chǔ)器接口。存儲(chǔ)器控制器104進(jìn)一步包括重新排序器件500,該重新排序器件500被連接成并 且被配置成從存取緩沖器200和/或從存儲(chǔ)器器件106接收響應(yīng)數(shù)據(jù)。在實(shí)施例中,重新 排序器件500被連接成并且被配置成經(jīng)由存儲(chǔ)器接口 400以及也可能經(jīng)由交換機(jī)450從存 儲(chǔ)器器件106接收響應(yīng)數(shù)據(jù)。重新排序器件500被配置成對(duì)接收的響應(yīng)數(shù)據(jù)進(jìn)行分類(lèi),使 得以與處理器102向存儲(chǔ)器控制器104發(fā)出對(duì)應(yīng)的存取請(qǐng)求相同的順序產(chǎn)生到處理器102 的存取響應(yīng)。
圖3和4示出發(fā)明存取調(diào)度器300的實(shí)施例。該發(fā)明存取調(diào)度器被配置為層次調(diào) 度器,其中也被稱(chēng)為合格信息的狀態(tài)信息從葉子朝樹(shù)根傳播,如下面將描述的。在根中做出 調(diào)度決策以便選擇服務(wù)哪個(gè)請(qǐng)求,然后調(diào)度決策從根傳播到葉子,如下面將描述的。在葉子 處,請(qǐng)求信息被檢索并發(fā)送到基于所檢索的請(qǐng)求信息來(lái)生成DRAM命令的命令生成器。在實(shí)施例中,發(fā)明存取調(diào)度器300包括五個(gè)層次級(jí)別,如圖3示意性地所示的。然 而,如圖4示意性地所示的,存取調(diào)度器300的實(shí)施例可以包括樹(shù)層次級(jí)別。在圖4中,在 存取調(diào)度器300中包括三個(gè)級(jí)別級(jí)別1,級(jí)別4和級(jí)別5?,F(xiàn)在將參考圖3來(lái)描述合格信息從葉子到根的傳播。FIFO 隊(duì)列,諸如"Rd Hi FIFO”,"Rd Lo FIFO”,"ffr Hi FIFO”或者“Wr Lo FIFO” 中的一個(gè),在其不是空的且其排定時(shí)器屏蔽允許調(diào)度的情況下有資格由在第一級(jí)別(級(jí)別 1)處的調(diào)度器304調(diào)度。進(jìn)一步,如果由第一級(jí)別調(diào)度器304服務(wù)的任一 FIFO是合格的,則在級(jí)別1處的 第一級(jí)別調(diào)度器304有資格由在級(jí)別2處的第二級(jí)別調(diào)度器308調(diào)度。例如,為了第一級(jí) 別調(diào)度器30 有資格由第二級(jí)別調(diào)度器308a調(diào)度,讀高優(yōu)先級(jí)FIFO隊(duì)列“Rd Hi FIFO” 之一必須是合格的。如果由在級(jí)別3處的第三級(jí)別調(diào)度器312服務(wù)的在級(jí)別2處的任一第二級(jí)別調(diào)度 器308是合格的,則在級(jí)別2處的第二級(jí)別調(diào)度器308有資格由在級(jí)別3處的第三級(jí)別調(diào) 度器312調(diào)度。進(jìn)一步,如果由在級(jí)別4處的第四級(jí)別調(diào)度器318服務(wù)的在級(jí)別3處的任一第三 級(jí)別調(diào)度器312是合格的,則在級(jí)別3處的第三級(jí)別調(diào)度器312有資格由在級(jí)別4處的第 四級(jí)別調(diào)度器318調(diào)度。為了使第三級(jí)別調(diào)度器312是合格的,群組定時(shí)器315必須允許 調(diào)度。在級(jí)別5處,在級(jí)別4處的群組以循環(huán)的方式交替?,F(xiàn)在將參考圖3和9來(lái)描述調(diào)度決策從根到葉子的傳播。對(duì)于該群組,即在級(jí)別5處選擇的DRAM器件,如果也被稱(chēng)為刷新定時(shí)器314的 用于刷新的計(jì)數(shù)器達(dá)到了在配置參數(shù)單元316中可配置的閾值,則該群組的有限狀態(tài)機(jī) (FSM)320選擇刷新操作。刷新操作可以被延遲,直到達(dá)到其中FSM否則將從讀切換到寫(xiě)或 空閑或者從寫(xiě)切換到讀或空閑的狀態(tài)為止。如果未選擇刷新,并且讀和/或?qū)懯呛细竦?,則 讀/寫(xiě)仲裁器318使用例如虧損加權(quán)循環(huán)(DWRR)調(diào)度算法來(lái)選擇讀或?qū)?。否則調(diào)度器318 可以是空閑的。如果選擇讀或?qū)?,則被選擇的在級(jí)別3處的第三級(jí)別調(diào)度器312在合格的 第二級(jí)別調(diào)度器308之間選擇具有最高優(yōu)先級(jí)的第二級(jí)別調(diào)度器308。然后,被選擇的第二級(jí)別調(diào)度器308在合格的第一級(jí)別調(diào)度器304之間選擇具有 最高優(yōu)先級(jí)的第一級(jí)別調(diào)度器304。第一級(jí)別調(diào)度器304以循環(huán)方式選擇下一合格的FIFO 隊(duì)列。應(yīng)當(dāng)理解,合格信息從葉子到根的傳播以及調(diào)度決策從根到葉子的傳播在具有除 5之外的另一個(gè)層次級(jí)別數(shù)量的存取調(diào)度器中以相同的方式運(yùn)行。根據(jù)實(shí)施例,第一級(jí)別(級(jí)別1)包括一個(gè)或多個(gè)排定時(shí)器302,排定時(shí)器的數(shù)量對(duì) 應(yīng)于排的數(shù)量。排定時(shí)器302被配置成當(dāng)在存取緩沖器中包括的且與該排關(guān)聯(lián)的FIFO隊(duì)列 被存取時(shí)設(shè)定每排存儲(chǔ)器器件106的屏蔽位,如圖7示意性地所示的。在圖3中,屏蔽位的 設(shè)定由環(huán)繞連接FIFO與第一級(jí)別調(diào)度器304的線A40的環(huán)所示。通過(guò)當(dāng)相關(guān)FIFO隊(duì)列被存取時(shí)設(shè)定該排的屏蔽位,該排不能被選擇用于另一個(gè)存取直到該屏蔽位被清除為止。進(jìn) 一步,當(dāng)DRAM特定的隨機(jī)存取時(shí)間tRC過(guò)期時(shí),借助于排定時(shí)器302來(lái)清除該屏蔽位。從 而,可以防止存取錯(cuò)誤,諸如在對(duì)排的先前存取之后過(guò)早地存取相同排。進(jìn)一步,調(diào)度器300包括一個(gè)或多個(gè)第一級(jí)別仲裁器304,例如與存取緩沖器中的 FIFO隊(duì)列關(guān)聯(lián)的每一存取請(qǐng)求類(lèi)型一個(gè)第一級(jí)別仲裁器304。FIFO隊(duì)列把合格信息傳播到 第一級(jí)別仲裁器304,如圖9中的箭頭A40所示的。第一級(jí)別仲裁器304被配置成借助于調(diào) 度算法諸如如圖3中由RR所示的循環(huán)調(diào)度算法,以公平的方式且基于所接收的請(qǐng)求信息來(lái) 選擇與排0-7關(guān)聯(lián)的FIFO隊(duì)列之一中包括的存取請(qǐng)求之一。因而,向排的工作守恒循環(huán)服務(wù)提供每一存取請(qǐng)求類(lèi)型一個(gè)循環(huán);即每一讀高優(yōu) 先級(jí)請(qǐng)求、讀低優(yōu)先級(jí)請(qǐng)求、寫(xiě)高優(yōu)先級(jí)請(qǐng)求和寫(xiě)低優(yōu)先級(jí)請(qǐng)求一個(gè)循環(huán)?!┻x擇了存取請(qǐng)求,第一級(jí)別仲裁器304將把關(guān)于存儲(chǔ)與選擇的存取請(qǐng)求有關(guān) 的請(qǐng)求信息的FIFO的合格信息傳播到在下一級(jí)別(級(jí)別2)中包括的第二級(jí)別仲裁器308, 如圖9中的箭頭A42所指示的。如圖3示意性地所示的,用于調(diào)度讀高優(yōu)先級(jí)請(qǐng)求的第一級(jí)別仲裁器30 被配置 成基于與排0-7關(guān)聯(lián)的8個(gè)FIFO隊(duì)列“Read Hi FIFO”之一中包括的請(qǐng)求信息來(lái)選擇讀高 優(yōu)先級(jí)請(qǐng)求之一。以相同的方式,第一級(jí)別仲裁器304b、304c、304d被配置成分別從FIFO 隊(duì)列“Read Lo FIF0'\"Write Hi FIFO”和“Write Lo FIFO”選擇讀低優(yōu)先級(jí)請(qǐng)求、寫(xiě)高優(yōu) 先級(jí)請(qǐng)求和寫(xiě)低優(yōu)先級(jí)請(qǐng)求。在最后儲(chǔ)存器306中,存儲(chǔ)來(lái)自調(diào)度器304的指針。該指針被配置成告訴哪個(gè)排 0-7是要服務(wù)的最后排。在調(diào)度決策之后最后指針被增加1模與調(diào)度器關(guān)聯(lián)的排的數(shù)量,以 指示調(diào)度器304接著要服務(wù)哪個(gè)排。根據(jù)實(shí)施例,第二級(jí)別(級(jí)別2)包括一個(gè)或多個(gè)第二級(jí)別仲裁器308。優(yōu)選地,存 取調(diào)度器300包括每一請(qǐng)求類(lèi)型(不管高低優(yōu)先級(jí))一個(gè)第二級(jí)別仲裁器308,即每一寫(xiě)請(qǐng) 求一個(gè)和每一讀請(qǐng)求一個(gè)。因而,第一第二級(jí)別仲裁器308a被配置成在讀請(qǐng)求之間仲裁而 第二第二級(jí)別仲裁器308b被配置成在寫(xiě)請(qǐng)求之間仲裁。第二級(jí)別仲裁器308被配置成借助于固定優(yōu)先級(jí)調(diào)度算法在低優(yōu)先級(jí)請(qǐng)求和高 優(yōu)先級(jí)請(qǐng)求之間執(zhí)行仲裁,即第二級(jí)別仲裁器308被配置成選擇具有最高優(yōu)先級(jí)的請(qǐng)求并 且把合格信息傳播到在下一級(jí)別(級(jí)別3)中包括的第三級(jí)別仲裁器312,如圖9中的箭頭 A44所指示的。因而,只要讀高優(yōu)先級(jí)請(qǐng)求存在,在選擇讀低優(yōu)先級(jí)請(qǐng)求之前,第一第二級(jí)別仲裁 器308a將選擇讀高優(yōu)先級(jí)請(qǐng)求。按照相同的推理,第二第二級(jí)別仲裁器308b被配置成在選擇寫(xiě)低優(yōu)先級(jí)請(qǐng)求之 前選擇寫(xiě)高優(yōu)先級(jí)請(qǐng)求。在第二級(jí)別(級(jí)別2)中,存取調(diào)度器300也包括管理請(qǐng)求單元310,其被配置成把 具有高優(yōu)先級(jí)的管理讀請(qǐng)求從存取緩沖器傳播到第三級(jí)別調(diào)度器31 并且把合格信息傳 播到第三級(jí)別調(diào)度器312b,如圖9中的箭頭A46所指示的。根據(jù)實(shí)施例,在第三級(jí)別(級(jí)別3)中,存取調(diào)度器300包括一個(gè)或多個(gè)第三級(jí)別仲 裁器312。第三級(jí)別仲裁器312被配置成在正常存取請(qǐng)求即讀請(qǐng)求和寫(xiě)請(qǐng)求以及管理存取 請(qǐng)求之間調(diào)度。如先前所提及的,管理存取請(qǐng)求是高優(yōu)先級(jí)存取請(qǐng)求,其可以源自除處理器之外的另一個(gè)部件;例如源自連接到存取調(diào)度器/存取緩沖器的控制平面CPU。如圖3示意性地所示的,第一第三級(jí)別仲裁器31 被配置成在讀請(qǐng)求和讀管理請(qǐng) 求之間選擇,而第二第三級(jí)別仲裁器312b被配置成在寫(xiě)請(qǐng)求和寫(xiě)管理請(qǐng)求之間選擇。由于 管理請(qǐng)求比讀請(qǐng)求和寫(xiě)請(qǐng)求具有更高的優(yōu)先級(jí),所以只要管理請(qǐng)求可用于選擇,第三級(jí)別 仲裁器312將選擇管理請(qǐng)求。如圖9中的箭頭A48所指示的,合格信息被傳播到在下一級(jí)別(級(jí)別4)中包括的 第四級(jí)別仲裁器318。在實(shí)施例中,存取調(diào)度器300也包括刷新定時(shí)器314,其被配置成基于存儲(chǔ)在配置 參數(shù)單元316中的配置參數(shù)來(lái)指令有限狀態(tài)機(jī)(FSM) 320以生成刷新請(qǐng)求。該刷新請(qǐng)求可 以例如是對(duì)DRAM的維護(hù)請(qǐng)求,即請(qǐng)求維護(hù)DRAM以例如通過(guò)內(nèi)部電機(jī)構(gòu)來(lái)刷新存儲(chǔ)器的內(nèi) 容的請(qǐng)求。若不刷新,存儲(chǔ)器內(nèi)容變得走樣(corrupted)。刷新請(qǐng)求可以被周期性地發(fā)送并 且它們可以?xún)?yōu)先于其它存取請(qǐng)求和管理請(qǐng)求。在實(shí)施例中,存取調(diào)度器包括一個(gè)或多個(gè)群組定時(shí)器315。群組定時(shí)器315被配置 成根據(jù)例如 tFAW、tRRD、tRead2write、tWrite2read 和 tCalibration 來(lái)設(shè)定群組即 DRAM 器 件的屏蔽位,如圖8示意性地所示的。tFAff限制時(shí)間窗口內(nèi)的行激活命令的數(shù)量,并且tRRD 是到DRAM器件的兩個(gè)連續(xù)激活命令之間的最小時(shí)間。tRead2write是讀命令和后續(xù)寫(xiě)命令 之間的最小時(shí)間,而tfeite2read是寫(xiě)命令和后續(xù)讀命令之間的最小時(shí)間。tCalibration 是兩個(gè)校準(zhǔn)命令之間的時(shí)間周期??梢岳鐖?zhí)行校準(zhǔn)命令以補(bǔ)償操作條件的變化,諸如溫 度變化。在第四級(jí)別中,存取調(diào)度器可以包括配置參數(shù)單元316。配置參數(shù)單元316被配置 成把諸如在要執(zhí)行許多寫(xiě)請(qǐng)求之前要執(zhí)行的讀請(qǐng)求的數(shù)量或者在寫(xiě)之前要讀的突發(fā)的數(shù) 量之類(lèi)的配置參數(shù)傳遞到在第四級(jí)別(級(jí)別4)中包括的有限狀態(tài)機(jī)(FSM) 320。借助于配 置參數(shù),F(xiàn)SM 320被配置成控制何時(shí)進(jìn)行讀、寫(xiě)、刷新或空閑。FSM被配置成把也被稱(chēng)為Ack信號(hào)的確認(rèn)信號(hào)傳輸?shù)揭粋€(gè)或多個(gè)FIFO隊(duì)列和傳輸 到與一個(gè)或多個(gè)第一級(jí)別仲裁器304關(guān)聯(lián)的一個(gè)或多個(gè)最后儲(chǔ)存器306,如圖3、4和9示意 性地所示的。Ack信號(hào)觸發(fā)從選擇的FIFO檢索請(qǐng)求。另外,其觸發(fā)在與選擇的FIFO關(guān)聯(lián)的 RR調(diào)度器304的最后儲(chǔ)存器306中更新RR指針。根據(jù)實(shí)施例,存取調(diào)度器在第四級(jí)別(級(jí)別4)中包括第四級(jí)別仲裁器318、有限狀 態(tài)機(jī)(FSM) 320、FSM定時(shí)器計(jì)數(shù)器322。第四級(jí)別仲裁器318被配置成在不考慮優(yōu)先級(jí)的情況下在請(qǐng)求之間即在寫(xiě)請(qǐng)求、 讀請(qǐng)求、管理請(qǐng)求和刷新請(qǐng)求之間調(diào)度,即在第四級(jí)別處請(qǐng)求是具有低優(yōu)先級(jí)還是高優(yōu)先 級(jí)無(wú)關(guān)緊要。第四級(jí)別仲裁器318也可以被配置成調(diào)度在要執(zhí)行許多寫(xiě)請(qǐng)求之前要執(zhí)行的 許多讀請(qǐng)求以便最小化存儲(chǔ)器存取的延遲,原因在于不同存取請(qǐng)求(例如讀、寫(xiě)、管理、刷新 和維護(hù))之間的切換花費(fèi)時(shí)間并且也可能要求插入空閑循環(huán)。在實(shí)施例中,刷新定時(shí)器314被配置成對(duì)刷新請(qǐng)求之間的循環(huán)數(shù)量進(jìn)行計(jì)數(shù)并且 一個(gè)或多個(gè)FSM計(jì)算器322被配置成對(duì)寫(xiě)和讀請(qǐng)求的數(shù)量以及對(duì)在諸如讀、寫(xiě)和刷新之類(lèi) 的命令類(lèi)型之間切換時(shí)需要插入的循環(huán)的數(shù)量進(jìn)行計(jì)數(shù)。讀和寫(xiě)帶寬是可配置的并且以公平、加權(quán)、工作守恒的方式被動(dòng)態(tài)地共享。在配置 參數(shù)單元316中包括的兩個(gè)可配置參數(shù)是“MaxRead” “MaxWrite”。參數(shù)“MaxWrite”指示在轉(zhuǎn)向服務(wù)DRAM讀之前被寫(xiě)(如果合格的話)的DRAM突發(fā)的數(shù)量。參數(shù)“MaxRead”指示在 轉(zhuǎn)向服務(wù)DRAM寫(xiě)之前被讀(如果合格的話)的DRAM突發(fā)的數(shù)量。在實(shí)施例中,“MaxRead” 和“MaxWrite”是虧損加權(quán)循環(huán)(DWRR)調(diào)度器的權(quán)重。進(jìn)一步,第四級(jí)別仲裁器318被配置成把合格信息傳播到在存取調(diào)度器的下一級(jí) 別(級(jí)別5)中包括的第五級(jí)別仲裁器324,如圖9中的箭頭A50所指示的。根據(jù)實(shí)施例,存取調(diào)度器在第五級(jí)別(級(jí)別5)中包括第五級(jí)別仲裁器324,其被配 置成在到也被稱(chēng)為第一群組0的第一存儲(chǔ)器器件106的存取請(qǐng)求和到也被稱(chēng)為第二群組1 的第二存儲(chǔ)器器件106的存取請(qǐng)求之間選擇。在實(shí)施例中,這些群組共享地址總線但是具 有單獨(dú)的數(shù)據(jù)總線。在實(shí)施例中,第五級(jí)別仲裁器3M在選擇對(duì)第一存儲(chǔ)器器件和對(duì)第二 存儲(chǔ)器器件的存取請(qǐng)求之間交替。為了最大化存儲(chǔ)器接口的利用,DRAM器件因而可以被組織成群組,例如組織成群 組0和群組1。通過(guò)在群組之間交替,如由tFAW參數(shù)表示的對(duì)時(shí)間窗口內(nèi)的行激活命令數(shù) 量的DRAM約束不會(huì)減損存儲(chǔ)器接口帶寬。在群組之間交替也防止由于tRRD即兩個(gè)連續(xù)行 激活命令之間的最小時(shí)間和tCCD即兩個(gè)列命令之間的最小時(shí)間引起的帶寬減損。命令生成器214被布置成與存取調(diào)度器300通信并且被配置成基于關(guān)于來(lái)自存取 調(diào)度器的優(yōu)勝者的請(qǐng)求信息(如圖9中的箭頭Rq Info所指示)且基于與請(qǐng)求關(guān)聯(lián)的且從 FIFO隊(duì)列檢索的地址、數(shù)據(jù)和屬性(如圖9中的箭頭“地址、數(shù)據(jù)和屬性”所指示)來(lái)生成命 令。該命令然后經(jīng)由存儲(chǔ)器接口 400發(fā)送到DRAM,如圖9中的箭頭Cmd所指示的。圖4示意性地示出發(fā)明存取調(diào)度器300的更廣義實(shí)施例。如所示的,存取調(diào)度器300的實(shí)施例在第一級(jí)別(級(jí)別1)中包括一個(gè)或多個(gè)排定 時(shí)器302,排定時(shí)器的數(shù)量對(duì)應(yīng)于排的數(shù)量。排定時(shí)器302被配置成當(dāng)在存取緩沖器中包 括的且與該排關(guān)聯(lián)的FIFO隊(duì)列被存取時(shí)設(shè)定每排存儲(chǔ)器器件106的屏蔽位,如先前所描述 的。進(jìn)一步,調(diào)度器300包括一個(gè)或多個(gè)第一級(jí)別仲裁器304,例如與存取緩沖器中的 FIFO隊(duì)列關(guān)聯(lián)的每一存取請(qǐng)求類(lèi)型一個(gè)第一級(jí)別仲裁器304。在所示的實(shí)施例中,存取請(qǐng) 求類(lèi)型的數(shù)量是二 讀請(qǐng)求和寫(xiě)請(qǐng)求。一旦選擇了存取請(qǐng)求,第一級(jí)別仲裁器304將把關(guān)于存儲(chǔ)與選擇的存取請(qǐng)求有關(guān) 的請(qǐng)求信息的FIFO的合格信息傳播到在下一級(jí)別(級(jí)別4)中包括的第四級(jí)別仲裁器318, 如線A44所指示的。在實(shí)施例中,存取調(diào)度器300也包括刷新定時(shí)器314、群組定時(shí)器315、配置參數(shù)單 元316、有限狀態(tài)機(jī)(FSM) 320和FSM計(jì)數(shù)器322,如先前所描述的。第四級(jí)別仲裁器318被配置成在請(qǐng)求之間即在寫(xiě)請(qǐng)求、讀請(qǐng)求、管理請(qǐng)求和刷新 請(qǐng)求之間調(diào)度。第四級(jí)別仲裁器318也可以被配置成調(diào)度在要執(zhí)行許多寫(xiě)請(qǐng)求之前要執(zhí)行 的許多讀請(qǐng)求以便最小化存儲(chǔ)器存取的延遲,原因在于不同存取請(qǐng)求(例如讀、寫(xiě)、管理、刷 新和維護(hù))之間的切換花費(fèi)時(shí)間并且也可能要求插入空閑循環(huán)。進(jìn)一步,第四級(jí)別仲裁器318被配置成把合格信息傳播到在存取調(diào)度器的下一級(jí) 別(級(jí)別5)中包括的第五級(jí)別仲裁器324,如線A50所指示的。第五級(jí)別仲裁器3M被配置成在到也被稱(chēng)為第一群組0的第一存儲(chǔ)器器件106的 存取請(qǐng)求和到也被稱(chēng)為第二群組1的第二存儲(chǔ)器器件106的存取請(qǐng)求之間選擇,如先前所
14描述的。關(guān)于優(yōu)勝者的請(qǐng)求信息被傳輸?shù)矫钌善?14,該命令生成器214基于請(qǐng)求信息 且基于與請(qǐng)求關(guān)聯(lián)的且在FIFO隊(duì)列中存儲(chǔ)的地址、數(shù)據(jù)和屬性來(lái)生成命令。該命令然后經(jīng) 由存儲(chǔ)器接口 400發(fā)送到DRAM器件。圖5示意性地示出存取緩沖器200的實(shí)施例。存取緩沖器200優(yōu)選地基于先進(jìn)先 出(FIFO),即存取緩沖器200包括許多FIFO緩沖器,所述FIFO緩沖器在本描述文本中也被 稱(chēng)為FIFO隊(duì)列。圖5所示的存取緩沖器200的實(shí)施例被配置成處理兩個(gè)存儲(chǔ)器器件106 (例如 DRAM),每個(gè)具有8排,意味著每一請(qǐng)求類(lèi)型存在16個(gè)FIFO隊(duì)列。由于與FIFO隊(duì)列關(guān)聯(lián)的 請(qǐng)求類(lèi)型的數(shù)量為4 (管理請(qǐng)求不與FIFO隊(duì)列關(guān)聯(lián)),所以存取緩沖器200的所示實(shí)施例包 括總共64個(gè)FIFO隊(duì)列。為了清楚起見(jiàn),在圖5中未示出所有64個(gè)FIFO隊(duì)列。然而,應(yīng)當(dāng)理解,F(xiàn)IFO隊(duì)列的數(shù)量可以根據(jù)要處理的存儲(chǔ)器器件的數(shù)量、在每個(gè)存 儲(chǔ)器器件中包括的排的數(shù)量和/或與一個(gè)或多個(gè)FIFO隊(duì)列關(guān)聯(lián)的請(qǐng)求類(lèi)型的數(shù)量而不同。在實(shí)施例中,存取緩沖器200包括許多寫(xiě)/讀低優(yōu)先級(jí)/高優(yōu)先級(jí)FIFO隊(duì)列 204 :"ffr Lo Prio FIFO,,,"ffr Hi Prio FIFO,,,"Rd Hi Prio FIFO,,禾口 "Rd Lo Prio FIFO,,;許多寫(xiě)/讀低優(yōu)先級(jí)/高優(yōu)先級(jí)儲(chǔ)存器206 :"ffr LoPrio Storage","Rd LoPrio storage", "ffr HiPrio Storage,,和"Rd HiPrio Storage,,;搜索單元 208,仲裁器 210,復(fù) 用器212,存取調(diào)度器300,以及命令生成器214。命令生成器214被配置成以所需的格式構(gòu) 造存儲(chǔ)器控制器命令并且經(jīng)由存儲(chǔ)器接口 400把所生成的命令發(fā)送到存儲(chǔ)器器件106。在實(shí)施例中,可搜索地址儲(chǔ)存器206是內(nèi)容可尋址相關(guān)存儲(chǔ)器(CAM)。進(jìn)一步,應(yīng)當(dāng)理解,在其它實(shí)施例中,存取調(diào)度器300可以被布置在存取緩沖器 200的外部并且與存取緩沖器200通信。如圖5的左手側(cè)的向右箭頭A1-A5示意性地所示的,不同類(lèi)型的請(qǐng)求,例如讀/ 寫(xiě)、高優(yōu)先級(jí)/低優(yōu)先級(jí)、和管理,可以從處理器發(fā)送到存取緩沖器200。然而,應(yīng)當(dāng)理解,其 它實(shí)施例可以包括其它請(qǐng)求類(lèi)型,諸如DRAM刷新請(qǐng)求。在圖5中,示出以下不同請(qǐng)求類(lèi)型管理請(qǐng)求‘‘Mgmt”;具有低優(yōu)先級(jí)的寫(xiě)請(qǐng)求 IriteLoPrio”,例如寫(xiě)數(shù)據(jù)請(qǐng)求;具有高優(yōu)先級(jí)的寫(xiě)請(qǐng)求IriteHiPrio”,例如寫(xiě)控制信 息數(shù)據(jù)請(qǐng)求;具有高優(yōu)先級(jí)的讀請(qǐng)求“ReadHiPrio”,例如讀控制信息數(shù)據(jù)請(qǐng)求;以及具有 低優(yōu)先級(jí)的讀請(qǐng)求“ReadLc^rio”,例如讀數(shù)據(jù)請(qǐng)求。在實(shí)施例中,例如參見(jiàn)圖5,寫(xiě)請(qǐng)求包括要寫(xiě)到存儲(chǔ)器器件的數(shù)據(jù)、與要寫(xiě)數(shù)據(jù)的 存儲(chǔ)器器件的地址對(duì)應(yīng)的地址、以及定義該請(qǐng)求相對(duì)于其它請(qǐng)求的順序的屬性;而讀請(qǐng)求 包括與要讀數(shù)據(jù)的存儲(chǔ)器器件的地址對(duì)應(yīng)的地址、以及定義該請(qǐng)求相對(duì)于其它請(qǐng)求的順序 的屬性。在其它實(shí)施例中,例如參見(jiàn)圖6,寫(xiě)請(qǐng)求不包括屬性。在這樣的實(shí)施例中,寫(xiě)請(qǐng)求包 括要寫(xiě)到存儲(chǔ)器器件的數(shù)據(jù)、以及與要寫(xiě)數(shù)據(jù)的存儲(chǔ)器器件的地址對(duì)應(yīng)的地址;而讀請(qǐng)求 包括與要讀數(shù)據(jù)的存儲(chǔ)器器件的地址對(duì)應(yīng)的地址、以及定義該請(qǐng)求相對(duì)于其它請(qǐng)求的順序 的屬性。在實(shí)施例中,管理請(qǐng)求具有最高優(yōu)先級(jí),并且與寫(xiě)和讀控制信息數(shù)據(jù)有關(guān)的請(qǐng)求 一般具有比與寫(xiě)和讀數(shù)據(jù)例如有效載荷數(shù)據(jù)有關(guān)的請(qǐng)求更高的優(yōu)先級(jí)。管理請(qǐng)求可以例如是對(duì)存儲(chǔ)器接口中的微代碼存儲(chǔ)器或配置參數(shù)的讀或?qū)懻?qǐng)求。
數(shù)據(jù)請(qǐng)求可以例如是對(duì)在DRAM中緩沖的分組數(shù)據(jù)例如有效載荷數(shù)據(jù)的讀或?qū)懻?qǐng) 求??刂菩畔?shù)據(jù)請(qǐng)求可以例如是對(duì)與對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)有關(guān)的信息(諸如 鏈接表指針或分組長(zhǎng)度)的讀或?qū)懻?qǐng)求。如圖5示意性地所示的,當(dāng)存取緩沖器200如箭頭Al所指示的那樣從處理器102 接收把例如低優(yōu)先級(jí)數(shù)據(jù)寫(xiě)到存儲(chǔ)器器件106的請(qǐng)求“WriteLoPrio”時(shí),低優(yōu)先級(jí)數(shù)據(jù)的 地址將如箭頭Ala所指示的那樣被寫(xiě)到在存取緩沖器200中包括的FIFO隊(duì)列“fe LoPrio FIFO”之一。進(jìn)一步,寫(xiě)低優(yōu)先級(jí)請(qǐng)求的數(shù)據(jù)和屬性(Attr)將被存儲(chǔ)在存取緩沖器200中 包括的可搜索地址儲(chǔ)存器“Wr LoPrio Morage” 206中,如箭頭Alb所指示的。進(jìn)一步,如圖5示意性地所示的,當(dāng)存取緩沖器200如箭頭A2所指示的那樣從 處理器接收把例如控制信息數(shù)據(jù)寫(xiě)到存儲(chǔ)器器件106的請(qǐng)求IriteHiPrio”時(shí),請(qǐng)求 “feiteHiPrio”的地址將如箭頭k2a所指示的那樣被寫(xiě)到在存取緩沖器200中包括的FIFO 隊(duì)列“fe HiPrio FIFO”之一。進(jìn)一步,請(qǐng)求“WriteHiPrio”的數(shù)據(jù)和屬性將被存儲(chǔ)在存取 緩沖器200中包括的可搜索地址儲(chǔ)存器“Wr HiPrio Storage" 206中,如箭頭A2b所指示 的。而且,如圖5示意性地所示的,當(dāng)存取緩沖器200如箭頭A3所指示的那樣從處理 器接收例如從存儲(chǔ)器器件106讀控制信息數(shù)據(jù)的請(qǐng)求“ReadHiPrio”時(shí),請(qǐng)求“ReadHiPrio” 的地址將如箭頭A3a所指示的那樣被寫(xiě)到在存取緩沖器200中包括的FIFO隊(duì)列“Rd HiPrio FIFO”之一。進(jìn)一步,請(qǐng)求“ReadHiPrio”的屬性將被存儲(chǔ)在存取緩沖器200中包括的可搜 索地址儲(chǔ)存器“Rd HiPrio Morage”206中,如箭頭A!3b所指示的。如圖5示意性地所示的,當(dāng)存取緩沖器200如箭頭A4所指示的那樣從處理器102 接收例如從存儲(chǔ)器器件106讀數(shù)據(jù)信息的請(qǐng)求“ReadLc^rio”時(shí),存取緩沖器200被配置成 借助于搜索單元208來(lái)(如虛線箭頭所示的那樣)搜索FIFO隊(duì)列“fe LoPrio FIFO”以確定 請(qǐng)求“ReadLoPrio”的地址是否包括在FIFO隊(duì)列“Wr LoPrio FIFO”之一中。如果要讀的數(shù)據(jù)的地址是在FIFO隊(duì)列“fe LoPrio FIFO”之一中,則搜索單元208 檢測(cè)到“命中(hit)”。搜索單元208從FIFO隊(duì)列“fe LoPrio FIFO”去除該地址并且要讀 的數(shù)據(jù)和屬性從數(shù)據(jù)儲(chǔ)存器“Wr LoPrio Morage”進(jìn)行讀。在從“fe LoPrio Morage”讀 之前,“Hit”請(qǐng)求可以如箭頭Ak所指示的那樣被寫(xiě)到FIFO隊(duì)列“Hit Synch FIFO”,并且 如箭頭A6所指示的那樣借助于仲裁器210被調(diào)度,以便如箭頭A7所指示的那樣以有序的 且經(jīng)調(diào)度的方式從儲(chǔ)存器“Wr LoPrio Morage”讀數(shù)據(jù)和屬性。當(dāng)從儲(chǔ)存器“Wr LoPrio Morage”讀了數(shù)據(jù)和屬性時(shí),數(shù)據(jù)和屬性分別如箭頭A8b和ASc所指示的那樣被發(fā)送到重 新排序器件500。此后,重新排序器件500被配置成以正確的順序把存取響應(yīng)傳輸?shù)教幚砥?102,該響應(yīng)是基于所讀的數(shù)據(jù)和屬性,如圖5中的重新排序器件500中的符號(hào)“屬性+數(shù)據(jù) (命中)”所指示的。仲裁器210被配置成借助于嚴(yán)格的優(yōu)先級(jí)調(diào)度算法來(lái)執(zhí)行調(diào)度。在實(shí)施例中,由 存取調(diào)度器300選擇的存取請(qǐng)求應(yīng)當(dāng)優(yōu)先于“Hit”請(qǐng)求,原因在于存儲(chǔ)器接口的帶寬應(yīng)當(dāng) 被優(yōu)化。在這種情況下,“Hit”請(qǐng)求可以在Hit Synch FIFO中等待可用的時(shí)隙(例如存取 調(diào)度器讀命令)。如果要讀的地址不在FIFO隊(duì)列之一中,則搜索單元208檢測(cè)到“未中(miss)”。要讀的數(shù)據(jù)的地址然后如箭頭A4d所指示的那樣被寫(xiě)到在存取緩沖器200中包括的FIFO隊(duì) 列“Rd LoPrio FIFO”之一。進(jìn)一步,該請(qǐng)求的屬性(Attr)將被存儲(chǔ)在存取緩沖器200中 包括的儲(chǔ)存器“Rd LoPrio Morage”中,如箭頭A4b所指示的。如圖5所示的,存取調(diào)度器300被配置成基于存取緩沖器200的FIFO隊(duì)列204即 "ffr LoPrio FIFO","ffr HiPrio FIFO","Rd HiPrio FIFO” 禾口"Rd LoPrio FIFO” 中的信息 且基于如箭頭Afe所指示的那樣由存取調(diào)度器300接收的管理請(qǐng)求的可能地址來(lái)選擇存取 請(qǐng)求之一。存取調(diào)度器300被配置成借助于一個(gè)或多個(gè)仲裁器,基于調(diào)度算法例如如圖5 中用“RR”指示的循環(huán)調(diào)度算法、或先來(lái)先服務(wù)、或者另一種合適的調(diào)度算法來(lái)選擇存取請(qǐng) 求之一。存取調(diào)度器可以進(jìn)一步包括調(diào)度器和有限狀態(tài)機(jī)(FSM) 216,其被配置成執(zhí)行寫(xiě)/ 讀/刷新請(qǐng)求調(diào)度并且確保不違反DRAM協(xié)議。然而,如箭頭A5b所指示的,管理請(qǐng)求的數(shù)據(jù)和屬性可以直接發(fā)送到被配置生成 命令的命令生成器214,所述命令借助于存儲(chǔ)器接口 400發(fā)送到存儲(chǔ)器器件106。進(jìn)一步,如箭頭A13所指示的,存取調(diào)度器300被配置成把選擇的存取請(qǐng)求的地址 傳輸?shù)矫钌善?14。當(dāng)存取請(qǐng)求被存取調(diào)度器300選擇時(shí),存取緩沖器200被配置成從 FIFO隊(duì)列清除該存取請(qǐng)求的地址并且從儲(chǔ)存器206之一讀所選擇請(qǐng)求的數(shù)據(jù)和/或?qū)傩?。如果例如選擇的存取請(qǐng)求是“WriteLoPrio”,即寫(xiě)低優(yōu)先級(jí)請(qǐng)求,則存取調(diào)度器 300將如箭頭A12所指示的那樣把在“Wr LoPrio FIFO”中包括的所選擇存取請(qǐng)求的地址 傳達(dá)到“Wr LoPrio Morage”并且如箭頭A13所指示的那樣傳達(dá)到命令生成器214。進(jìn)一 步,如圖3所示,地址可以通過(guò)仲裁器210,以便在從“ fe LoPrio Morage”讀和去除數(shù)據(jù) 和屬性之前,基于搜索單元208所檢測(cè)的命中或者基于從存取調(diào)度器300選擇的寫(xiě)低優(yōu)先 級(jí)請(qǐng)求來(lái)優(yōu)先化“Wr LoPrio Morage”中的讀。當(dāng)從“Wr LoPrio Morage”讀了數(shù)據(jù)和屬 性時(shí),數(shù)據(jù)和屬性被傳輸?shù)矫钌善?14,如箭頭ASa和A14所指示的。進(jìn)一步,當(dāng)從“Wr LoPrio Storage"讀了數(shù)據(jù)和屬性時(shí),數(shù)據(jù)和屬性被傳輸?shù)街匦屡判蚱骷?00,如箭頭A8b 和ASc所指示的。在實(shí)施例中,數(shù)據(jù)和屬性經(jīng)由復(fù)用器212被傳輸?shù)矫钌善?14以便在如箭頭 A8a、A9a、AlO和All所指示的那樣從不同數(shù)據(jù)儲(chǔ)存器傳輸?shù)牟煌瑪?shù)據(jù)和屬性之間進(jìn)行選擇。當(dāng)從“fe LoPrio Morage”讀的數(shù)據(jù)和屬性在命令生成器214中被接收時(shí),其將 與從“fe LoPrio FIFO”讀的地址組合成被傳輸?shù)酱鎯?chǔ)器器件的寫(xiě)低優(yōu)先級(jí)命令。進(jìn)一步,如果例如所選擇的存取請(qǐng)求是“WriteHiPrio”,即寫(xiě)高優(yōu)先級(jí)請(qǐng)求,則存 取調(diào)度器300將如箭頭A12所指示的那樣把在“fe HiPrio FIFO”中包括的寫(xiě)高優(yōu)先級(jí)請(qǐng) 求的地址傳達(dá)到“Wr HiPrio Morage”并且如箭頭A13所指示的那樣傳達(dá)到命令生成器 214。當(dāng)從“Wr HiPrio Morage”讀和去除了數(shù)據(jù)和屬性時(shí),數(shù)據(jù)和屬性被傳輸?shù)矫钌?器214,如箭頭AlO和A14所指示的。可能地,數(shù)據(jù)和屬性經(jīng)由復(fù)用器212被傳輸?shù)矫钌善?14以便在如箭頭A8a、 A9a、AlO和All所指示的那樣從不同數(shù)據(jù)儲(chǔ)存器傳輸?shù)牟煌瑪?shù)據(jù)和屬性之間進(jìn)行選擇。當(dāng)來(lái)自“fe HiPrio Storage”的數(shù)據(jù)和屬性在命令生成器214中被接收時(shí),其將 與從“fe HiPrio FIFO”讀的地址組合成被傳輸?shù)酱鎯?chǔ)器器件的寫(xiě)高優(yōu)先級(jí)命令。而且,如果例如所選擇的存取請(qǐng)求是“ReadHiPrio”,即讀高優(yōu)先級(jí)請(qǐng)求,則存取調(diào)度器300將如箭頭A12所指示的那樣把與所選擇的存取請(qǐng)求對(duì)應(yīng)的“Rd HiPrio FIFO”中 存儲(chǔ)的讀高優(yōu)先級(jí)請(qǐng)求的地址傳達(dá)到“Rd HiPrio Morage”并且如箭頭A13所指示的那樣 傳達(dá)到命令生成器214。當(dāng)從“Rd HiPrio Storage”讀和去除了屬性時(shí),屬性被傳輸?shù)矫?生成器214,如箭頭All和A14所指示的。可能地,屬性經(jīng)由復(fù)用器212被傳輸?shù)矫钌?器214以便在如箭頭A8a、A9a、AlO和All所指示的那樣從不同數(shù)據(jù)儲(chǔ)存器傳輸?shù)牟煌瑪?shù) 據(jù)和屬性之間進(jìn)行選擇。當(dāng)從“Rd HiPrio Morage”讀的屬性在命令生成器214中被接收 時(shí),其將與從“Rd HiPrio FIFO”讀的地址組合成被傳輸?shù)酱鎯?chǔ)器器件的讀高優(yōu)先級(jí)命令。如果例如所選擇的存取請(qǐng)求是“ReadLc^rio”,即讀低優(yōu)先級(jí)請(qǐng)求,則存取調(diào)度器 300將如箭頭A12所指示的那樣把與所選擇的存取請(qǐng)求對(duì)應(yīng)的“Rd LoPrio FIFO”的地址 傳達(dá)到“Rd LoPrio Morage”并且如箭頭A13所指示的那樣傳達(dá)到命令生成器214。當(dāng)從 "Rd LoPrio Storage”讀和去除了屬性時(shí),屬性被傳輸?shù)矫钌善?14,如箭頭A9a和A14 所指示的。進(jìn)一步,屬性也被傳輸?shù)街匦屡判蚱骷?00,如箭頭A9所指示的??赡艿?,屬性經(jīng)由復(fù)用器212被傳輸?shù)矫钌善?14以便在如箭頭A8a、A9a、A10 和All所指示的那樣從不同數(shù)據(jù)儲(chǔ)存器傳輸?shù)牟煌瑪?shù)據(jù)和屬性之間進(jìn)行選擇。當(dāng)從“Rd LoPrio Storage”讀的屬性在命令生成器214中被接收時(shí),其將與從“Rd LoPrio FIFO”讀的地址組合成被傳輸?shù)酱鎯?chǔ)器器件的讀低優(yōu)先級(jí)命令。當(dāng)命令從命令生成器214發(fā)送到存儲(chǔ)器器件時(shí),關(guān)于發(fā)送的請(qǐng)求類(lèi)型例如寫(xiě)/讀 低/高優(yōu)先級(jí)請(qǐng)求“Type”和關(guān)于請(qǐng)求的序列標(biāo)識(shí)“SerlD”的信息被發(fā)送到重新排序器件 500,如箭頭A15所指示的。在實(shí)施例中,SerID是由處理器設(shè)定的屬性。其用來(lái)識(shí)別回到處理器的響應(yīng)。另 外,其被重新排序器件500用來(lái)恢復(fù)可能被存取調(diào)度器打斷的原始順序。例如,處理器可以 針對(duì)每個(gè)請(qǐng)求使SerID遞增一直到達(dá)到諸如65 535之類(lèi)的最大值為止,此后SerID被復(fù)位 到O并且繼續(xù)按一遞增。重新排序器件500被配置成使用所接收的屬性來(lái)為與該屬性關(guān)聯(lián)的存取請(qǐng)求的 順序分配重新排序器件中的地址。因而,當(dāng)在重新排序器件500中接收存取響應(yīng)時(shí),該屬性 可以用來(lái)知道何時(shí)把存取響應(yīng)發(fā)送到處理器。因而借助于請(qǐng)求的屬性,知道該請(qǐng)求相對(duì)于 從處理器發(fā)送的其它請(qǐng)求的順序。如果例如該請(qǐng)求的順序在請(qǐng)求序列中是第二,則來(lái)自存 儲(chǔ)器器件的對(duì)這個(gè)請(qǐng)求的響應(yīng)應(yīng)當(dāng)在發(fā)送了對(duì)第一請(qǐng)求的響應(yīng)之后且在發(fā)送對(duì)第三請(qǐng)求 的響應(yīng)之前發(fā)送到處理器。圖6示出被配置成處理分別如箭頭Al’和A3’示意性地所示的所接收的寫(xiě)請(qǐng)求和 讀請(qǐng)求的存取緩沖器200的廣義實(shí)施例。存取緩沖器200包括許多FIFO隊(duì)列例如寫(xiě)、讀和 命中FIFO隊(duì)列204、搜索單元208,存取調(diào)度器300以及命令生成器214。進(jìn)一步,存取緩沖 器連接到被配置成如先前所描述的那樣運(yùn)行的重新排序器件500。當(dāng)如箭頭Al’所示的那樣接收包括地址和數(shù)據(jù)的寫(xiě)請(qǐng)求時(shí),寫(xiě)請(qǐng)求的地址和數(shù)據(jù) 被存儲(chǔ)在寫(xiě)FIFO隊(duì)列‘Ir FIFO”之一中。當(dāng)如箭頭A3’所示的那樣接收包括地址和屬性的讀請(qǐng)求時(shí),搜索單元208被配置 成在“fe FIFO”中搜索與讀請(qǐng)求的地址匹配的地址。如果找到這樣的地址,則搜索單元208檢測(cè)到命中并且可能經(jīng)由命中FIFO隊(duì)列 "Hit FIFO”把讀請(qǐng)求的屬性和地址傳輸?shù)街匦屡判蚱骷?00。
如果未找到這樣的地址,則搜索單元208檢測(cè)到未中并且把地址和屬性存儲(chǔ)在讀 FIFO 隊(duì)列 “RD FIFO” 之一中。如先前所描述的,存取調(diào)度器300被配置成選擇請(qǐng)求之一。如果所選擇的請(qǐng)求是寫(xiě)請(qǐng)求,則地址和數(shù)據(jù)從寫(xiě)FIFO進(jìn)行檢索并且發(fā)送到命令 生成器214以生成寫(xiě)命令。如果所選擇的請(qǐng)求是讀請(qǐng)求,則屬性被發(fā)送到重新排序器件500并且地址被發(fā)送 到命令生成器214以生成讀命令。命令生成器214被配置成把生成的命令發(fā)送到存儲(chǔ)器器件并且把請(qǐng)求類(lèi)型例如 寫(xiě)或讀“Type”以及SerID發(fā)送到重新排序器件500。進(jìn)一步,存取緩沖器的實(shí)施例可以被配置成具有擁有背壓(backpressure)閾值的 一個(gè)或多個(gè)FIFO隊(duì)列。如果FIFO隊(duì)列的填充級(jí)別超過(guò)其背壓閾值,則存取緩沖器被配置 成把這個(gè)背壓傳達(dá)到處理器。從而,處理器被配置成阻止對(duì)存取緩沖器的相同類(lèi)型(例如讀 或?qū)懀蛘呔哂袃?yōu)先級(jí)的讀或?qū)?的進(jìn)一步存取請(qǐng)求,直到存取緩沖器向處理器傳達(dá)FIFO隊(duì) 列的填充級(jí)別已返回到在閾值之下的級(jí)別。背壓級(jí)別應(yīng)當(dāng)被設(shè)定為使最大不可阻止請(qǐng)求流 適應(yīng)FIFO之一。如果例如FIFO可以包括16個(gè)請(qǐng)求并且不可阻止量是5個(gè)請(qǐng)求,則背壓閾 值應(yīng)當(dāng)被設(shè)定為11個(gè)請(qǐng)求。而且,存取緩沖器的實(shí)施例可以被配置成具有擁有應(yīng)急(panic)閾值的一個(gè)或多 個(gè)FIFO隊(duì)列。如果寫(xiě)FIFO隊(duì)列或讀FIFO隊(duì)列的最大填充級(jí)別增長(zhǎng)到大于應(yīng)急閾值,則用 于讀和寫(xiě)的權(quán)重在存取調(diào)度器中被自動(dòng)地改變,使得寫(xiě)或讀得到更高的相對(duì)帶寬共享。當(dāng) 填充級(jí)別返回到在閾值之下的級(jí)別時(shí),離開(kāi)應(yīng)急模式并且把權(quán)重復(fù)位到正常值。
權(quán)利要求
1.一種用于對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件(106)的存取進(jìn)行調(diào)度的存取調(diào)度器(300),包括一第一層次級(jí)別(級(jí)別1),包括---個(gè)或多個(gè)排定時(shí)器(302),被配置成當(dāng)與存儲(chǔ)器器件(106)的每排關(guān)聯(lián)的FIFO隊(duì)列被存取時(shí)設(shè)定該排的屏蔽位,所述FIFO隊(duì)列存儲(chǔ)與存取請(qǐng)求有關(guān)的請(qǐng)求信息;以及---個(gè)或多個(gè)第一級(jí)別仲裁器(304),被配置成選擇來(lái)自多個(gè)FIFO隊(duì)列中的一個(gè)FIFO隊(duì)列的存取請(qǐng)求并且把關(guān)于所述一個(gè)FIFO隊(duì)列的合格信息傳播到下一層次級(jí)別;以 及一第四層次級(jí)別(級(jí)別4),包括一一第四級(jí)別仲裁器(318),被配置成接收傳播的合格信息并且基于傳播的合格信息 來(lái)選擇請(qǐng)求。
2.根據(jù)權(quán)利要求1的存取調(diào)度器(300),其中所述第四級(jí)別仲裁器(318)進(jìn)一步被配 置成基于由有限狀態(tài)機(jī)(320)生成的刷新請(qǐng)求來(lái)選擇請(qǐng)求。
3.根據(jù)權(quán)利要求1或2的存取調(diào)度器(300),其中所述有限狀態(tài)機(jī)(320)被配置成控 制在切換到第二類(lèi)型的許多存取請(qǐng)求例如寫(xiě)請(qǐng)求之前要執(zhí)行的第一類(lèi)型的存取請(qǐng)求例如 讀請(qǐng)求的數(shù)量。
4.根據(jù)權(quán)利要求1-3中任一項(xiàng)的存取調(diào)度器(300),進(jìn)一步包括一第五層次級(jí)別(級(jí)別5),包括一一第五級(jí)別仲裁器(3M),被配置成在對(duì)第一存儲(chǔ)器器件(106)的存取請(qǐng)求和對(duì)第 二存儲(chǔ)器器件(106)的存取請(qǐng)求之間選擇。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)的存取調(diào)度器(300),進(jìn)一步包括一第二層次級(jí)別(級(jí)別2),包括一個(gè)或多個(gè)第二級(jí)別仲裁器(308),適于從第一級(jí)別 仲裁器(302)接收傳播的合格信息并且被配置成在低優(yōu)先級(jí)請(qǐng)求和高優(yōu)先級(jí)請(qǐng)求之間執(zhí)行 仲裁且把與選擇的請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別;以及一第三層次級(jí)別(級(jí)別3),包括一個(gè)或多個(gè)第三級(jí)別仲裁器(312),被配置成從第二 級(jí)別仲裁器(308)接收傳播的合格信息;從管理請(qǐng)求單元(310)接收管理請(qǐng)求,以基于傳播 的合格信息和管理請(qǐng)求來(lái)選擇請(qǐng)求;并且把與選擇的存取請(qǐng)求有關(guān)的合格信息傳播到下一 層次級(jí)別。
6.根據(jù)權(quán)利要求1-5中任一項(xiàng)的存取調(diào)度器(300),進(jìn)一步包括刷新定時(shí)器(314), 被配置成基于存儲(chǔ)在配置參數(shù)單元(316)中的配置參數(shù)來(lái)指令所述有限狀態(tài)機(jī)(320)生成 刷新請(qǐng)求。
7.根據(jù)權(quán)利要求1-6中任一項(xiàng)的存取調(diào)度器(300),其中所述刷新請(qǐng)求是對(duì)存儲(chǔ)器器 件(106)的維護(hù)請(qǐng)求,諸如刷新存儲(chǔ)器器件(106)的內(nèi)容的請(qǐng)求。
8.根據(jù)權(quán)利要求1-7中任一項(xiàng)的存取調(diào)度器(300),其中所述刷新請(qǐng)求被周期性地發(fā) 送并且優(yōu)先于其它請(qǐng)求。
9.根據(jù)權(quán)利要求1-6中任一項(xiàng)的存取調(diào)度器(300),進(jìn)一步包括一個(gè)或多個(gè)群組定 時(shí)器(315),被配置成根據(jù)預(yù)定時(shí)間周期來(lái)設(shè)定群組即存儲(chǔ)器器件(106)的屏蔽位。
10.根據(jù)權(quán)利要求9的存取調(diào)度器(300),其中所述時(shí)間周期被選擇為以下中的任 一個(gè)(tFAW),其限制時(shí)間窗口內(nèi)的行激活命令的數(shù)量;(tRRD),是到DRAM器件的兩個(gè)連續(xù)激活命令之間的最小時(shí)間;(tRead2Write),是讀命令和后續(xù)寫(xiě)命令之間的最小時(shí)間; (tfeite2read),是寫(xiě)命令和后續(xù)讀命令之間的最小時(shí)間;或者(tCalibration),是兩個(gè)校 準(zhǔn)命令之間的時(shí)間周期。
11.根據(jù)權(quán)利要求1-6中任一項(xiàng)的存取調(diào)度器(300),其中所述配置參數(shù)涉及在要執(zhí) 行許多寫(xiě)請(qǐng)求之前要執(zhí)行的讀請(qǐng)求的數(shù)量或者在寫(xiě)之前要讀的突發(fā)的數(shù)量。
12.—種存儲(chǔ)器控制器(104),包括一根據(jù)權(quán)利要求1-11中任一項(xiàng)的存取調(diào)度器(300),一存取緩沖器(200),連接到所述存取調(diào)度器(300)且到一個(gè)或多個(gè)存儲(chǔ)器器件(106) 并且被配置成從連接到存儲(chǔ)器控制器(104)的處理器(102)接收對(duì)所述一個(gè)或多個(gè)存儲(chǔ)器 器件(106)的一個(gè)或多個(gè)存取請(qǐng)求,以及一重新排序器件(500),連接到所述存取緩沖器(200),被配置成接收來(lái)自一個(gè)或多個(gè) 存儲(chǔ)器器件(106)的響應(yīng)數(shù)據(jù)并且對(duì)接收的響應(yīng)數(shù)據(jù)進(jìn)行分類(lèi),使得以與處理器(102)發(fā) 送存取請(qǐng)求相同的順序產(chǎn)生到處理器(102)的存取響應(yīng)。
13.一種借助于存取調(diào)度器(300)對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件(106)的存取進(jìn)行調(diào)度的 方法,包括以下步驟一在包括一個(gè)或多個(gè)第一級(jí)別仲裁器(304)的第一層次級(jí)別(級(jí)別1)中 一一借助于一個(gè)或多個(gè)排定時(shí)器(302),當(dāng)與存儲(chǔ)器器件(106)的每排關(guān)聯(lián)的FIFO隊(duì) 列被存取時(shí)設(shè)定該排的屏蔽位;一一把與存取請(qǐng)求有關(guān)的請(qǐng)求信息存儲(chǔ)在FIFO隊(duì)列中; 一一選擇來(lái)自多個(gè)FIFO隊(duì)列中的一個(gè)FIFO隊(duì)列的存取請(qǐng)求;并且 一一把關(guān)于所述一個(gè)FIFO隊(duì)列的合格信息傳播到下一層次級(jí)別;以及 一在包括第四級(jí)別仲裁器(318)的第四層次級(jí)別(級(jí)別4)中 一一接收傳播的合格信息;并且 一一基于傳播的合格信息來(lái)選擇請(qǐng)求。
14.根據(jù)權(quán)利要求13的方法,進(jìn)一步包括以下步驟借助于第四級(jí)別仲裁器(318) 一基于由有限狀態(tài)機(jī)(320 )生成的刷新請(qǐng)求來(lái)選擇請(qǐng)求。
15.根據(jù)權(quán)利要求13或14的方法,進(jìn)一步包括以下步驟借助于有限狀態(tài)機(jī)(320) 一控制在切換到第二類(lèi)型的許多存取請(qǐng)求例如寫(xiě)請(qǐng)求之前要執(zhí)行的第一類(lèi)型的存取請(qǐng)求例如讀請(qǐng)求的數(shù)量。
16.根據(jù)權(quán)利要求13-15中任一項(xiàng)的方法,進(jìn)一步包括以下步驟借助于第五層次級(jí) 別(級(jí)另U 5)中的第五級(jí)別仲裁器(3M)一在對(duì)第一存儲(chǔ)器器件(106)的存取請(qǐng)求和對(duì)第二存儲(chǔ)器器件(106)的存取請(qǐng)求之間 選擇。
17.根據(jù)權(quán)利要求13-16中任一項(xiàng)的方法,進(jìn)一步包括以下步驟一在包括一個(gè)或多個(gè)第二級(jí)別仲裁器(308)的第二層次級(jí)別(級(jí)別2)中 一一從第一級(jí)別仲裁器(302)接收傳播的合格信息; 一一在低優(yōu)先級(jí)請(qǐng)求和高優(yōu)先級(jí)請(qǐng)求之間執(zhí)行仲裁;并且 一一把與選擇的請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別;以及 一在包括一個(gè)或多個(gè)第三級(jí)別仲裁器(312)的第三層次級(jí)別(級(jí)別3)中一一從第二級(jí)別仲裁器(308)接收傳播的合格信息;一一從管理請(qǐng)求單元(310)接收管理請(qǐng)求;一一基于傳播的合格信息和管理請(qǐng)求來(lái)選擇請(qǐng)求;并且一一把與選擇的存取請(qǐng)求有關(guān)的合格信息傳播到下一層次級(jí)別。
18.根據(jù)權(quán)利要求13-17中任一項(xiàng)的方法,進(jìn)一步包括以下步驟借助于刷新定時(shí)器(314)一基于存儲(chǔ)在配置參數(shù)單元(316)中的配置參數(shù)來(lái)指令所述有限狀態(tài)機(jī)(320)生成刷 新請(qǐng)求。
19.根據(jù)權(quán)利要求13-18中任一項(xiàng)的方法,其中所述刷新請(qǐng)求是對(duì)存儲(chǔ)器器件(106) 的維護(hù)請(qǐng)求,諸如刷新存儲(chǔ)器器件(106)的內(nèi)容的請(qǐng)求。
20.根據(jù)權(quán)利要求13-19中任一項(xiàng)的方法,進(jìn)一步包括以下步驟借助于群組定時(shí)器(315)一根據(jù)預(yù)定時(shí)間周期來(lái)設(shè)定每個(gè)群組即每個(gè)存儲(chǔ)器器件(106)的屏蔽位。
21.根據(jù)權(quán)利要求20的方法,其中所述時(shí)間周期被選擇為以下中的任一個(gè)(tFAW), 其限制時(shí)間窗口內(nèi)的行激活命令的數(shù)量;(tRRD),是到DRAM器件的兩個(gè)連續(xù)激活命令之間 的最小時(shí)間;(tRead2Write),是讀命令和后續(xù)寫(xiě)命令之間的最小時(shí)間;(tfeite2read),是 寫(xiě)命令和后續(xù)讀命令之間的最小時(shí)間;或者(tCalibration),是兩個(gè)校準(zhǔn)命令之間的時(shí)間 周期。
全文摘要
本發(fā)明涉及一種用于對(duì)一個(gè)或多個(gè)存儲(chǔ)器器件(106)的存取進(jìn)行調(diào)度的存取調(diào)度器(300),包括第一層次級(jí)別(級(jí)別1),包括一個(gè)或多個(gè)排定時(shí)器(302),被配置成當(dāng)與存儲(chǔ)器器件(106)的每排關(guān)聯(lián)的FIFO隊(duì)列被存取時(shí)設(shè)定該排的屏蔽位,所述FIFO隊(duì)列存儲(chǔ)與存取請(qǐng)求有關(guān)的請(qǐng)求信息;以及一個(gè)或多個(gè)第一級(jí)別仲裁器(304),被配置成選擇來(lái)自多個(gè)FIFO隊(duì)列中的一個(gè)FIFO隊(duì)列的存取請(qǐng)求并且把關(guān)于所述一個(gè)FIFO隊(duì)列的合格信息傳播到下一層次級(jí)別;以及第四層次級(jí)別(級(jí)別4),包括第四級(jí)別仲裁器(318),被配置成接收傳播的合格信息并且基于傳播的合格信息來(lái)選擇請(qǐng)求。
文檔編號(hào)G06F13/18GK102129412SQ20111000898
公開(kāi)日2011年7月20日 申請(qǐng)日期2011年1月17日 優(yōu)先權(quán)日2010年1月18日
發(fā)明者B·維爾丁, S·利夫內(nèi), V·蘇科尼克 申請(qǐng)人:厄塞勒拉特公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
江门市| 桂阳县| 睢宁县| 马鞍山市| 诏安县| 达孜县| 乐业县| 巴彦县| 上饶市| 马边| 上犹县| 彭州市| 桂平市| 大荔县| 锦州市| 岢岚县| 澜沧| 尼木县| 土默特左旗| 京山县| 金湖县| 巴青县| 略阳县| 灯塔市| 平泉县| 全州县| 玛纳斯县| 利津县| 怀宁县| 汨罗市| 定安县| 德保县| 葫芦岛市| 二连浩特市| 拜城县| 米易县| 罗城| 景德镇市| 防城港市| 张掖市| 上饶市|