專利名稱:具有命令前瞻的存儲(chǔ)器控制器的制作方法
相關(guān)申請(qǐng)的引用本文與在2004年3月10日遞交、標(biāo)題為“Command Scheduling forDual Data Rate Two(DDR2)Memory Devices(用于雙倍數(shù)據(jù)速率2(DDR2)存儲(chǔ)器設(shè)備的命令調(diào)度)”的同時(shí)待審定美國(guó)專利申請(qǐng)No.10/798,600有關(guān)。
背景許多電子設(shè)備使用被稱為隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的存儲(chǔ)器來(lái)儲(chǔ)存數(shù)據(jù)。各種RAM體系結(jié)構(gòu)已經(jīng)被開(kāi)發(fā)出來(lái)。一般地,這些體系結(jié)構(gòu)以標(biāo)識(shí)正被訪問(wèn)的存儲(chǔ)器地址的地址總線和傳送正被寫到存儲(chǔ)器或正從存儲(chǔ)器被讀取的數(shù)據(jù)的數(shù)據(jù)總線為特征。
一些RAM體系結(jié)構(gòu)以這樣的雙向數(shù)據(jù)總線為特征,所述雙向數(shù)據(jù)總線可以基于數(shù)據(jù)是正被讀還是正被寫來(lái)改變方向。切換該總線的方向可能花費(fèi)少量但卻具有實(shí)際意義的時(shí)間。
為了避免與切換總線方向相關(guān)聯(lián)的時(shí)間損失(penalty),其他RAM體系結(jié)構(gòu)以多總線為特征。例如,存儲(chǔ)器可以以讀數(shù)據(jù)總線和分離的寫總線為特征,所述讀總線傳送從存儲(chǔ)器獲取的數(shù)據(jù),所述寫總線傳送正被寫的數(shù)據(jù)。
附圖簡(jiǎn)要說(shuō)明
圖1A-1C圖示存儲(chǔ)器控制器的操作。
圖2是圖示存儲(chǔ)器控制器操作的表。
圖3是存儲(chǔ)器控制器操作的流程圖。
圖4是存儲(chǔ)器控制器圖。
圖5是多引擎處理器圖。
圖6是網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備圖。
詳細(xì)說(shuō)明圖1A示出接收用于隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)112的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器控制器100。這些命令包括指定要讀取的存儲(chǔ)器112地址的讀命令和指定要被寫的地址和數(shù)據(jù)兩者的寫命令。
潛在地,在給定時(shí)間段內(nèi),控制器100可以接收比RAM 112可以響應(yīng)的命令要多的命令。因此,控制器100以隊(duì)列104a-104n的集合為特征,所述隊(duì)列104a-104n緩沖接收到的命令,直到所述命令可以被RAM 112服務(wù)。
如圖所示,RAM 112在不同的內(nèi)部存儲(chǔ)區(qū)塊(bank)114a-114n之間劃分儲(chǔ)存空間。對(duì)于RAM 112的每一個(gè)區(qū)塊114a-114n,控制器100維護(hù)分別的隊(duì)列104a-104n。一旦接收到命令,控制器100電路102(例如基于該命令的地址)將該命令添加到適當(dāng)?shù)年?duì)列104a-104n的末尾。
如圖所示,控制器100包括電路110,所述電路110“消耗(drain)”命令隊(duì)列114a-114n,并且發(fā)起RAM 112中的對(duì)應(yīng)的操作。例如,如圖1B中示出的,電路110從隊(duì)列104a“彈出”讀命令106a(被標(biāo)記為“R”),并且發(fā)起對(duì)應(yīng)的RAM 112的讀操作。響應(yīng)于此,RAM 112可以將讀數(shù)據(jù)(未示出)返回到存儲(chǔ)器控制器100,所述存儲(chǔ)器控制器100又可以將所述讀數(shù)據(jù)返回到曾發(fā)射該讀命令的任何實(shí)體。
RAM 112對(duì)給定操作的響應(yīng)時(shí)間依賴于RAM 112的體系結(jié)構(gòu)和被進(jìn)行的操作序列兩者。例如,由于切換數(shù)據(jù)總線的方向所花費(fèi)的時(shí)間,以雙向總線為特征的RAM 112(例如雙倍數(shù)據(jù)速率II(DDRII)同步動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SDRAM)存儲(chǔ)器芯片或縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)公共I/O(CIO)存儲(chǔ)器芯片)可以懲罰(penalize)緊跟寫的讀操作。類似地,通過(guò)利用讀和寫總線兩者的交替的讀和寫操作,以雙總線為特征的RAM 112(例如縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)分離輸入/輸出(SIO)存儲(chǔ)器芯片)可以被更高效地使用。
如圖1C中示出的,控制器100電路110可以訪問(wèn)隊(duì)列104b的頂部的兩個(gè)命令106b-106c,并且選擇可以更好地利用RAM 112能力的命令,而不是嚴(yán)格地基于隊(duì)列中命令的順序來(lái)處理所述命令。例如,如圖所示,如果之前的RAM 112操作是讀(在圖1B中的106a),并且RAM 112體系結(jié)構(gòu)懲罰讀之后的寫,那么即使寫命令106b排在讀命令106c之前,控制器110仍可以選擇讀命令106c,并且發(fā)起對(duì)應(yīng)的存儲(chǔ)器112操作。通過(guò)“查看”多個(gè)命令,控制器100增加了找到可以提高存儲(chǔ)器112吞吐量的命令的機(jī)會(huì)。對(duì)于一些RAM 112,控制器100用來(lái)選擇命令的短暫的時(shí)間量可以被隱藏在另外被花費(fèi)來(lái)等待RAM 112的時(shí)段(例如對(duì)同一區(qū)塊的連續(xù)激活操作之間的最短時(shí)間)中。
通常,存儲(chǔ)器控制器100保證讀操作反映之前的寫操作。例如,在圖1C中,如果寫命令106b要用值“y”覆寫(overwrite)在給定地址的值“x”,并且讀命令106c要讀同一地址,那么在排在前面的命令106b之前選擇命令106c將錯(cuò)誤地導(dǎo)致命令106c讀值“x”。為了避免這種情形,控制器100可以比較正被考慮以進(jìn)行選擇的命令的地址。例如,如果命令106b和106c兩者指定了同一地址,控制器100可以基于隊(duì)列順序來(lái)選擇命令106b以保持?jǐn)?shù)據(jù)完整性。
潛在地,命令可能指定不同的、但會(huì)導(dǎo)致對(duì)存儲(chǔ)器112的重疊部分訪問(wèn)的地址。例如,命令106b可以從地址“1”開(kāi)始寫8字節(jié)數(shù)據(jù),而命令106c從地址“5”開(kāi)始讀8字節(jié)數(shù)據(jù)。因此,兩個(gè)命令都訪問(wèn)字節(jié)“5”到“8”。為了避免這樣的命令106b-106c的亂序(out-of-order)執(zhí)行,由控制器100進(jìn)行的地址比較可以基于地址位的子集(例如最高的N位),而不是基于針對(duì)以完全一致的方式來(lái)匹配地址的測(cè)試。
圖1A-1C中示出的控制器100僅僅是實(shí)施例,并且各種變化是可能的。例如,控制器100可以從隊(duì)列的前N個(gè)命令中選擇,而不是從給定隊(duì)列104a-104n的前兩個(gè)命令中選擇。此外,示范性的控制器100是基于命令所請(qǐng)求的訪問(wèn)類型來(lái)選擇命令的。然而,控制器100還可以基于其他考慮、依賴于RAM 112體系結(jié)構(gòu)來(lái)進(jìn)行選擇。此外,盡管圖1A-1C圖示了隊(duì)列104a-104n和區(qū)塊114a之間嚴(yán)格的一一對(duì)應(yīng),但在其他實(shí)現(xiàn)中,給定隊(duì)列可以緩沖針對(duì)多于一個(gè)區(qū)塊的命令,并且給定區(qū)塊可以由多于一個(gè)隊(duì)列來(lái)饋入。
圖2示出了圖示示范性控制器100的邏輯的表。所述表標(biāo)識(shí)由存儲(chǔ)器的控制器做出的不同的命令選擇,所述存儲(chǔ)器以讀后寫和寫后讀損失為特征。如圖所示,如果隊(duì)列以單個(gè)命令為特征(120),那么所述單個(gè)命令被選擇。如果不同命令影響重疊的地址(122),那么控制器可以選擇更早被排隊(duì)的命令。
如在表中示出的,對(duì)于讀緊跟讀(124)或?qū)懢o跟寫(128),控制器100可以選擇更早被排隊(duì)的命令。在控制器100具有不同類型的命令要從中選擇的情況(126-130)下,控制器100可以選擇這樣的命令,所述命令請(qǐng)求與之前被選擇的命令(例如,最近被發(fā)射到存儲(chǔ)器或被添加到存儲(chǔ)器命令調(diào)度計(jì)劃(schedule)以進(jìn)行發(fā)射的一個(gè)命令)相同的訪問(wèn)類型。
再次重申,示出的表僅僅是實(shí)施例,并且其他控制器可以實(shí)現(xiàn)不同邏輯。例如,對(duì)于懲罰寫后寫或讀后讀序列的存儲(chǔ)器112,控制器112可以改為選擇這樣的命令,所述命令請(qǐng)求與之前被選擇的存儲(chǔ)器112操作不同的訪問(wèn)類型。此外,控制器100可以改為在必要時(shí)(例如讀緊跟寫時(shí))進(jìn)行地址比較,而不是總是進(jìn)行該比較。此外,在一些情況下,命令的選擇可以是任意的。例如,在圖2中的所述表反映出,當(dāng)評(píng)估一對(duì)讀命令時(shí)(122),選擇了更早接收的讀命令。存儲(chǔ)器112進(jìn)行這些讀操作的順序不影響所儲(chǔ)存的數(shù)據(jù)。因此,可以選擇第二命令而不是第一命令,而不會(huì)有不利影響。
圖3示出控制器100的操作的示范性流程圖。如圖所示,控制器100選擇(150)要服務(wù)的隊(duì)列。例如,控制器100可以進(jìn)行依次服務(wù)每個(gè)隊(duì)列的輪轉(zhuǎn)??商鎿Q地,控制器100可以(例如基于隊(duì)列中掛起的命令的數(shù)量或使用優(yōu)先權(quán)機(jī)制)實(shí)現(xiàn)一些其他的服務(wù)算法。
對(duì)于被選擇的隊(duì)列,控制器100訪問(wèn)(152)多個(gè)命令。如果所述多個(gè)命令訪問(wèn)重疊的地址(154),那么控制器100可以基于所述多個(gè)命令的排隊(duì)順序來(lái)選擇(156)命令。否則,控制器100可以基于命令和之前被選擇的命令所指定的操作來(lái)選擇(158)所述命令??刂破?00可以隨后為被選擇的命令發(fā)起(160)或調(diào)度對(duì)應(yīng)的存儲(chǔ)器操作。
圖4描繪了控制器100的示范性實(shí)現(xiàn)的示意圖。被示出的示意圖以電路框170x為特征,所述電路框170x緩沖來(lái)自給定隊(duì)列114x的命令???70x可以被復(fù)制來(lái)用于被服務(wù)的每個(gè)隊(duì)列。
隊(duì)列114x可以以各種方式來(lái)實(shí)現(xiàn)。例如,隊(duì)列114x可以通過(guò)使用數(shù)據(jù)陣列以及隊(duì)列寄存器頭部和隊(duì)列寄存器尾部(未示出)以硬件來(lái)實(shí)現(xiàn)。當(dāng)命令被排隊(duì)或出隊(duì)時(shí),由這些寄存器指向的陣列位置可以“繞回”所述數(shù)據(jù)陣列。
如圖所示,框170x以多個(gè)觸發(fā)器172a-172b為特征,所述多個(gè)觸發(fā)器172a-172b可以緩沖(172a-172b)從隊(duì)列114x彈出的命令??梢杂呻娐?74來(lái)選擇被用來(lái)緩沖給定命令的觸發(fā)器172a-172b。例如,如果被給定觸發(fā)器緩沖的命令在一個(gè)選擇輪中被選擇,那么該觸發(fā)器可以被認(rèn)為“可用”,并且在下一輪中被用來(lái)儲(chǔ)存新“彈出”的命令。因此,盡管所述框緩沖兩個(gè)命令,但在給定時(shí)間只有一個(gè)命令需要從隊(duì)列中被彈出。
除了將隊(duì)列命令路由到可用的緩沖器172a-172b之外,電路174被饋入所緩沖的命令,以進(jìn)行如上面描述的命令選擇操作(例如地址比較和/或基于訪問(wèn)類型的命令選擇)。為了選擇命令,電路174可以選擇由該170x的緩沖器172和其他框(未示出)饋入的復(fù)用器180的哪個(gè)輸入被輸出到存儲(chǔ)器112??商鎿Q地,控制器100可以隨著時(shí)間的進(jìn)展來(lái)構(gòu)造要從不同隊(duì)列發(fā)射的命令調(diào)度,而不是在選擇后發(fā)射被選擇的命令。
上面描述的技術(shù)可以以各種設(shè)備來(lái)實(shí)現(xiàn)。例如,圖5描繪了包括這樣的控制器100的網(wǎng)絡(luò)處理器200的實(shí)施例。被示出的網(wǎng)絡(luò)處理器200是Intel因特網(wǎng)交換網(wǎng)絡(luò)處理器(IXP)。其他網(wǎng)絡(luò)處理器以不同的設(shè)計(jì)為特征。
被示出的網(wǎng)絡(luò)處理器200以在單個(gè)集成半導(dǎo)體管芯上的一組處理引擎202為特征。每個(gè)引擎202可以是被定制為用于分組處理的精簡(jiǎn)指令集計(jì)算(RISC)處理器。例如,引擎202可以不提供通常由通用處理器的指令集提供的浮點(diǎn)或整除指令。各個(gè)引擎202可以提供多個(gè)執(zhí)行線程。例如,引擎202可以為不同線程儲(chǔ)存多個(gè)程序計(jì)數(shù)器和其他上下文(context)數(shù)據(jù)。網(wǎng)絡(luò)處理器200還包括“核心”處理器210(例如StrongARMXScale),所述“核心”處理器210常常被編程以進(jìn)行網(wǎng)絡(luò)操作中涉及到的“控制面”任務(wù)。然而,核心處理器210還可以處理“數(shù)據(jù)面”任務(wù)。
如圖所示,網(wǎng)絡(luò)處理器200還以至少一個(gè)接口202為特征,所述至少一個(gè)接口可以在處理器200和其他網(wǎng)絡(luò)組件之間傳送分組。例如,處理器200可以以交換結(jié)構(gòu)接口202(例如通用交換接口(CSIX))為特征,所述交換結(jié)構(gòu)接口使得處理器200能夠?qū)⒎纸M傳輸?shù)竭B接到該結(jié)構(gòu)的其他一個(gè)或多個(gè)處理器或電路。處理器200還可以以接口202(例如系統(tǒng)分組接口(SPI)接口)為特征,所述接口使得處理器200能夠與物理層(PHY)和/或鏈路層設(shè)備(例如MAC或成幀器設(shè)備)通信。處理器200還可以包括接口208(例如外設(shè)部件互聯(lián)(PCI)總線接口)以便例如與主機(jī)或其他網(wǎng)絡(luò)處理器通信。
如圖所示,處理器200還可以包括由引擎202共享的其他組件,例如由所述引擎共享的哈希引擎和內(nèi)部便箋式存儲(chǔ)器。存儲(chǔ)器控制器100、212提供對(duì)由所述引擎共享的外部存儲(chǔ)器的訪問(wèn)。如圖所示,存儲(chǔ)器控制器100通過(guò)總線116從引擎202和所述核心接收命令。
圖6描繪了可以使用上面描述的存儲(chǔ)器控制器處理分組的網(wǎng)絡(luò)設(shè)備。如圖所示,所述設(shè)備以一組通過(guò)交換結(jié)構(gòu)310(例如縱橫結(jié)構(gòu)或共享的存儲(chǔ)器交換結(jié)構(gòu))互連的線卡300(“刀片(blade)”)為特征。所述交換結(jié)構(gòu)例如可以遵守CSIX或其他結(jié)構(gòu)技術(shù),例如HyperTansport、Infiniband、PCI、Packet-Over-SONET、RapidIO和/或UTOPIA(用于ATM的通用測(cè)試和操作PHY接口)。
單獨(dú)的線卡(例如300a)可以包括一個(gè)或更多個(gè)處理網(wǎng)絡(luò)連接上的通信的物理層(PHY)設(shè)備302(例如光、有線和無(wú)線PHY)。PHY在不同網(wǎng)絡(luò)介質(zhì)傳送的物理信號(hào)和數(shù)字系統(tǒng)所使用的位(例如“0”和“1”)之間進(jìn)行翻譯。線卡300還可以包括成幀器設(shè)備(例如,以太網(wǎng)、同步光網(wǎng)絡(luò)(SONET)、高級(jí)數(shù)據(jù)鏈路(HDLC)成幀器或其他的“層2”設(shè)備)304,所述成幀器設(shè)備可以對(duì)幀進(jìn)行例如檢錯(cuò)和/或糾錯(cuò)的操作。示出的線卡300還可以包括一個(gè)或更多個(gè)網(wǎng)絡(luò)處理器306,所述網(wǎng)絡(luò)處理器306對(duì)通過(guò)一個(gè)或多個(gè)PHY 302接收到的分組進(jìn)行分組處理操作,并且通過(guò)交換結(jié)構(gòu)310將該分組導(dǎo)向到提供出口接口的線卡以轉(zhuǎn)發(fā)該分組。潛在地,一個(gè)或多個(gè)網(wǎng)絡(luò)處理器306可以代替成幀器設(shè)備304來(lái)履行“層2”的職責(zé)。如上面描述的,一個(gè)或多個(gè)網(wǎng)絡(luò)處理器306可以包括使用上面描述的技術(shù)的一個(gè)或更多個(gè)存儲(chǔ)器控制器100??商鎿Q地,設(shè)備300中的其他組件可以包括這樣的存儲(chǔ)器控制器100。
盡管在圖5和圖6中描述了網(wǎng)絡(luò)處理器和包括網(wǎng)絡(luò)處理器的設(shè)備的具體的實(shí)施例,但是所述技術(shù)可以以各種體系結(jié)構(gòu)來(lái)實(shí)現(xiàn),所述體系結(jié)構(gòu)包括具有與那些被示出的設(shè)計(jì)不同的設(shè)計(jì)的處理器和設(shè)備。此外,可以在各種網(wǎng)絡(luò)設(shè)備(例如,路由器、交換機(jī)、網(wǎng)橋、網(wǎng)絡(luò)中心、流量生成器等)中使用這些技術(shù)。
本文用到的術(shù)語(yǔ)電路包括硬連線電路、數(shù)字電路、模擬電路、可編程電路等??删幊屉娐房梢曰谟?jì)算機(jī)程序工作。例如,控制器電路可以由包括用于有限狀態(tài)機(jī)的邏輯的專用集成電路(ASIC)來(lái)實(shí)現(xiàn)。
其他實(shí)施方案落入所附權(quán)利要求書的范圍之內(nèi)。
權(quán)利要求
1.一種方法,包括從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián);至少部分地基于由所述多個(gè)存儲(chǔ)器訪問(wèn)命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被選擇的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的一個(gè)。
2.如權(quán)利要求1所述的方法,其中,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的操作包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求讀操作的存儲(chǔ)器訪問(wèn)命令。
3.如權(quán)利要求2所述的方法,其中所述隨機(jī)訪問(wèn)存儲(chǔ)器包括選自由以下組成的組中的一種雙倍數(shù)據(jù)速率動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DDRDRAM)和縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)公共I/O(CIO)。
4.如權(quán)利要求1所述的方法,其中,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的操作包括如果所述之前被發(fā)射的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求寫操作的存儲(chǔ)器訪問(wèn)命令。
5.如權(quán)利要求4所述的方法,其中所述隨機(jī)訪問(wèn)存儲(chǔ)器包括縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)分離I/O(SIO)。
6.如權(quán)利要求1所述的方法,還包括基于所述被選擇的命令來(lái)發(fā)起存儲(chǔ)器訪問(wèn)操作。
7.如權(quán)利要求1所述的方法,還包括,比較所述多個(gè)存儲(chǔ)器訪問(wèn)命令的地址的至少一部分。
8.如權(quán)利要求1所述的方法,其中所述多個(gè)存儲(chǔ)器訪問(wèn)命令包括兩個(gè)命令。
9.如權(quán)利要求1所述的方法,還包括對(duì)所述隊(duì)列的輪轉(zhuǎn)服務(wù)。
10.一種設(shè)備,包括總線接口;隨機(jī)訪問(wèn)存儲(chǔ)器接口;以及電路,所述電路用于從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián);至少部分地基于由所述多個(gè)存儲(chǔ)器訪問(wèn)命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被選擇的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的一個(gè)。
11.如權(quán)利要求10所述的設(shè)備,其中,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求讀操作的存儲(chǔ)器訪問(wèn)命令的電路。
12.如權(quán)利要求11所述的設(shè)備,其中所述隨機(jī)訪問(wèn)存儲(chǔ)器包括選自由以下組成的組中的一種雙倍數(shù)據(jù)速率動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DDRDRAM)和縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)公共I/O(CIO)。
13.如權(quán)利要求10所述的設(shè)備,其中,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求寫操作的存儲(chǔ)器訪問(wèn)命令的電路。
14.如權(quán)利要求13所述的設(shè)備,其中所述隨機(jī)訪問(wèn)存儲(chǔ)器包括縮短延時(shí)動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(RLDRAM)分離I/O(SIO)。
15.如權(quán)利要求10所述的設(shè)備,還包括基于所述被選擇的命令來(lái)發(fā)起存儲(chǔ)器訪問(wèn)操作。
16.如權(quán)利要求10所述的設(shè)備,其中所述電路還包括進(jìn)行以下操作的電路比較所述存儲(chǔ)器訪問(wèn)命令的地址的至少一部分。
17.如權(quán)利要求10所述的設(shè)備,其中所述多個(gè)存儲(chǔ)器訪問(wèn)命令包括兩個(gè)命令。
18.如權(quán)利要求10所述的設(shè)備,其中所述總線接口包括到被集成在單個(gè)集成管芯上的多個(gè)可編程多線程引擎共享的總線的接口。
19.一種被設(shè)置在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,所述程序包括指令,所述指令導(dǎo)致處理器從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián);至少部分地基于由所述多個(gè)存儲(chǔ)器訪問(wèn)命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被發(fā)射的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的一個(gè)。
20.如權(quán)利要求19所述的程序,其中導(dǎo)致所述處理器選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述指令包括如果所述之前被發(fā)射的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)導(dǎo)致所述處理器選擇請(qǐng)求讀操作的存儲(chǔ)器訪問(wèn)命令的指令。
21.如權(quán)利要求19所述的程序,其中,導(dǎo)致所述處理器選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述指令包括如果所述之前被發(fā)射的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)導(dǎo)致所述處理器選擇請(qǐng)求寫操作的存儲(chǔ)器訪問(wèn)命令的指令。
22.如權(quán)利要求19所述的程序,還包括基于所述被選擇的命令來(lái)發(fā)起存儲(chǔ)器訪問(wèn)操作。
23.如權(quán)利要求19所述的程序,還包括導(dǎo)致所述處理器比較所述存儲(chǔ)器訪問(wèn)命令的地址的至少一部分的指令。
24.如權(quán)利要求19所述的程序,其中所述多個(gè)存儲(chǔ)器訪問(wèn)命令包括兩個(gè)命令。
25.如權(quán)利要求19所述的程序,還包括導(dǎo)致所述處理器以輪轉(zhuǎn)的方式服務(wù)所述隊(duì)列的指令。
26.一種處理器,包括集成在單個(gè)管芯內(nèi)的多個(gè)可編程多線程引擎;以及耦合到所述引擎的至少一些的總線;耦合到所述總線的存儲(chǔ)器控制器,所述存儲(chǔ)器控制器包括隨機(jī)訪問(wèn)存儲(chǔ)器接口;以及電路,所述電路用于從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián);至少部分地基于由所述多個(gè)存儲(chǔ)器訪問(wèn)命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被選擇的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的一個(gè)。
27.如權(quán)利要求26所述的處理器,其中選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求讀操作的存儲(chǔ)器訪問(wèn)命令的電路。
28.如權(quán)利要求26所述的處理器,其中選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求寫操作的存儲(chǔ)器訪問(wèn)命令的電路。
29.如權(quán)利要求26所述的處理器,其中所述電路還包括進(jìn)行以下操作的電路比較所述存儲(chǔ)器訪問(wèn)命令的子集的地址的至少一部分。
30.如權(quán)利要求26所述的處理器,其中所述多個(gè)存儲(chǔ)器訪問(wèn)命令包括兩個(gè)命令。
31.如權(quán)利要求26所述的處理器,還包括選自由以下組成的組中的至少一種交換結(jié)構(gòu)接口和到介質(zhì)訪問(wèn)控制設(shè)備的接口。
32.一種網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,包括交換結(jié)構(gòu);通過(guò)所述交換結(jié)構(gòu)互連的線卡,所述線卡包括至少一個(gè)網(wǎng)絡(luò)處理器,所述網(wǎng)絡(luò)處理器包括集成在單個(gè)管芯內(nèi)的多個(gè)可編程多線程引擎;以及耦合到所述引擎的至少一些的總線;耦合到所述總線的存儲(chǔ)器控制器,所述存儲(chǔ)器控制器包括隨機(jī)訪問(wèn)存儲(chǔ)器接口;以及電路,所述電路用于從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián);至少部分地基于由所述多個(gè)存儲(chǔ)器訪問(wèn)命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被選擇的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的一個(gè)。
33.如權(quán)利要求32所述的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,其中選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求讀操作的存儲(chǔ)器訪問(wèn)命令的電路。
34.如權(quán)利要求32所述的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,其中選擇所述多個(gè)存儲(chǔ)器訪問(wèn)命令中的所述一個(gè)的所述電路包括如果所述之前被選擇的存儲(chǔ)器訪問(wèn)命令是讀操作時(shí)選擇請(qǐng)求寫操作的存儲(chǔ)器訪問(wèn)命令的電路。
35.如權(quán)利要求32所述的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,其中所述電路還包括進(jìn)行以下操作的電路比較所述存儲(chǔ)器訪問(wèn)命令的子集的地址的至少一部分。
36.如權(quán)利要求32所述的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,其中所述多個(gè)存儲(chǔ)器訪問(wèn)命令包括兩個(gè)命令。
全文摘要
一般地,在一個(gè)方面,本公開(kāi)描述了從多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列中的一個(gè)訪問(wèn)多個(gè)存儲(chǔ)器訪問(wèn)命令,所述多個(gè)存儲(chǔ)器訪問(wèn)命令隊(duì)列與隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的分別的區(qū)塊相關(guān)聯(lián),以及至少部分地基于由所述命令標(biāo)識(shí)的存儲(chǔ)器訪問(wèn)操作和之前被選擇的存儲(chǔ)器訪問(wèn)命令的存儲(chǔ)器訪問(wèn)操作,選擇所述命令中的一個(gè)。
文檔編號(hào)G06F13/16GK1961302SQ200580017272
公開(kāi)日2007年5月9日 申請(qǐng)日期2005年4月8日 優(yōu)先權(quán)日2004年4月28日
發(fā)明者羅伊特·納塔拉詹, 黛布拉·伯恩斯坦, 吉爾伯特·沃爾里奇, C-M·林 申請(qǐng)人:英特爾公司