專利名稱:用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的存儲器控制器和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的存儲器控制器 和方法。
背景技術(shù):
高級移動和便攜設(shè)備的復(fù)雜性不斷增長。對此類設(shè)備的要求日益 嚴(yán)格的應(yīng)用的需求,對復(fù)雜性、靈活性和可編程性的需求加強了設(shè)備 內(nèi)部的數(shù)據(jù)交換。實現(xiàn)此類應(yīng)用的設(shè)備通常包括多個功能或處理模塊,
此處稱為子系統(tǒng)。典型地,用獨立的ic實現(xiàn)這些子系統(tǒng),每個IC具有
不同的內(nèi)部體系結(jié)構(gòu),包括本地處理器、總線和存儲器等。或者,可
以把各個子系統(tǒng)集成在一個ic上。在系統(tǒng)級,這些子系統(tǒng)通過上層
(top-level)互連相互通信,上層互連提供了通常支持實時的特定業(yè) 務(wù)。作為移動電話體系結(jié)構(gòu)中的子系統(tǒng)的示例,尤其可以包括基帶處 理器、顯示器、媒體處理器或存儲元件。PCIExpress網(wǎng)絡(luò)是系統(tǒng)級互 聯(lián)的示例,提供了像同步數(shù)據(jù)傳輸?shù)臉I(yè)務(wù)和流量控制。為了支持多媒 體應(yīng)用,這些子系統(tǒng)以流方式交換大部分?jǐn)?shù)據(jù)。作為數(shù)據(jù)流的示例, 可參考由媒體處理器從本地存儲器中讀出MP3編碼的音頻文件,并把解 碼后的流發(fā)送至揚聲器。此通信可被描述成經(jīng)FIFO緩沖器連接的過程 的圖,通常稱其為Kahn過程網(wǎng)絡(luò)。下面的文獻(xiàn)中描述了可以把Kahn過 程網(wǎng)絡(luò)映射到系統(tǒng)體系結(jié)構(gòu)E. A. de Kock et al. , "YAPI: Application modeling for signal processing systems ,, .In Proc. of the 37th. Design Automation Conference, Los Angeles, CA, June 2000, pages402-405. IEEE, 2000。在該體系結(jié)構(gòu)中,過程被映射到子系 統(tǒng),F(xiàn)IF0緩沖器被映射到存儲器,而通信被映射到系統(tǒng)級互連。
對于正確支持所涉及的過程間的數(shù)據(jù)流而言,緩沖是必要的。對 流采用FIF0緩沖器是十分自然的,且符合流應(yīng)用的(有界)Kahn過程
網(wǎng)絡(luò)模型。隨著可同時運行的多媒體應(yīng)用的數(shù)量的增加,過程數(shù)、實
時流以及相關(guān)聯(lián)的FIFO的數(shù)量也充分增長。
在許多片上系統(tǒng)(SoC)和微處理器系統(tǒng)中,使用后臺存儲器 (DRAM)對數(shù)據(jù)進(jìn)行緩沖。當(dāng)以流方式傳送數(shù)據(jù),且數(shù)據(jù)作為流在存 儲器中被緩沖時,可以采用預(yù)取(pre-fetch)緩沖。這意味著事先讀 取SDRMd中的數(shù)據(jù),并將其保持在特定(預(yù)取)緩沖器中。當(dāng)讀請求出 現(xiàn)時,就可以從通常實現(xiàn)于片上SRAM中的本地預(yù)取緩沖器中進(jìn)行使用, 而不會出現(xiàn)由后臺存儲器(DRAM)引起的等待時間。這與已知的針對 處理器的隨機(jī)數(shù)據(jù)高速緩存技術(shù)類似。對于流,在預(yù)取緩沖器中采用 連續(xù)(或最好稱為可預(yù)測)數(shù)據(jù)尋址,而不是高速緩存中使用的隨機(jī) 地址。參考J丄Hennessy and D. A. Patterson, " Computer Architecture - A Quantitative Approach"。
另一方面,由于DRAM技術(shù),最好以突發(fā)方式訪問(讀或?qū)?DRAM。 因此,通常實現(xiàn)回寫緩沖器,其把多個單獨的數(shù)據(jù)訪問匯集成具有一 定大小的訪問突發(fā)。 一旦完成了針對第一DRAM訪問的初始處理,就可 以針對指定數(shù)目的訪問(2/4/8/整頁)以無任何額外延遲(在l存儲器 周期內(nèi))地存儲或檢索在每個下一存儲器周期內(nèi)訪問的、地址與前一 地址有某種聯(lián)系的每個下一數(shù)據(jù)字(例如,下、前,取決于突發(fā)策略)。 因此,對于存儲器的流訪問,當(dāng)每次訪問的地址都以相同的方式增大 或減小時(如連續(xù)尋址),突發(fā)訪問以最低功耗提供了最佳性能。關(guān)于 DRAM存儲器原理的更多信息,請參考Micon的128兆比特DDRRAM規(guī)范, http://download, raicron. com/pdf/datasheets/dram/ddr/128MbDDRx 4x8xl6.pdf,將其在此并入作為參考。
發(fā)明內(nèi)容
本發(fā)明的目標(biāo)是提供一種用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的存儲 器控制器,以及一種用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的方法,它們和存 儲器一起改進(jìn)了網(wǎng)絡(luò)和存儲器之間的通信的可預(yù)測行為。
此目標(biāo)通過根據(jù)權(quán)利要求l所述的存儲器控制器和根據(jù)權(quán)利要求 6所述的用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的方法而實現(xiàn)。
因此,提供了一種用于將存儲器耦合至網(wǎng)絡(luò)的存儲器控制器。所 述存儲器控制器包括用于將所述存儲器控制器連接至所述網(wǎng)絡(luò)的第一 接口。所述第一接口被設(shè)置用于接收和發(fā)送數(shù)據(jù)流。流存儲器單元耦 合至第一接口,用于控制所述網(wǎng)絡(luò)和所述存儲器之間的數(shù)據(jù)流。所述 流存儲器單元包括緩沖器,用于臨時儲存數(shù)據(jù)流的至少一部分。提供 緩沖器管理單元,用于在第一和第二工作模式下管理數(shù)據(jù)流在所述緩 沖器中的臨時存儲。在第一工作模式下,將待存儲于所述存儲器的數(shù) 據(jù)流中的數(shù)據(jù)臨時存儲在所述緩沖器中,直到緩沖器的一部分被占據(jù) 為止。在第二工作模式下,在緩沖器的一部分被占據(jù)之后,緩沖器管 理單元將緩沖器分為預(yù)取緩沖器和回寫緩沖器,前者用于緩沖來自存 儲器的預(yù)取數(shù)據(jù),后者用于緩沖待回寫至存儲器的數(shù)據(jù)。
因此,可以利用該存儲器控制器動態(tài)地配置緩沖管理和緩沖器。 當(dāng)數(shù)據(jù)沒有存儲在后臺存儲器中而是在流存儲器控制器中被緩沖時, 只有一個緩沖器用于讀和寫訪問并實現(xiàn)預(yù)取和回寫緩沖。另一方面, 當(dāng)數(shù)據(jù)存儲于后臺存儲器中時,這個單一的存儲器在運行期間動態(tài)地 被劃分為兩部分,即預(yù)取和回寫部分。從而,使緩沖器管理更加簡單, 存儲器得到更好的利用。
根據(jù)本發(fā)明的一方面,用PCI-Express接口實現(xiàn)第一接口。利用 該接口,可以將存儲器控制器耦合至PC工-Express網(wǎng)絡(luò)。
根據(jù)本發(fā)明的另一方面,第二接口耦合至流存儲器單元,用于將 存儲器控制器連接至存儲器,并以突發(fā)方式和存儲器交換數(shù)據(jù)。因此, 提供另一接口使得控制器能夠與以突發(fā)方式工作的任何存儲器(像 DRAM)交換數(shù)據(jù)。
根據(jù)本發(fā)明的又一方面,在第一工作模式下,緩沖器管理單元包 括起始地址寄存器,用于存儲緩沖器的起始地址;結(jié)束地址寄存器, 用于存儲緩沖器的結(jié)束地址;讀指針寄存器,用于存儲緩沖器的讀指 針;以及寫指針寄存器,用于存儲緩沖器的寫指針。在第二工作模式 下,緩沖器管理單元包括起始地址寄存器,用于存儲緩沖器的起始 地址;結(jié)束地址寄存器,用于存儲結(jié)束地址;預(yù)取起始地址寄存器, 用于存儲預(yù)取起始地址;預(yù)取結(jié)束地址寄存器,用于存儲預(yù)取結(jié)束地址;預(yù)取讀指針寄存器,用于存儲預(yù)取讀指針;預(yù)取寫指針寄存器, 用于存儲預(yù)取寫指針;回寫讀指針寄存器,用于存儲回寫讀指針;以 及回寫寫指針寄存器,用于存儲回寫寫指針。因此,可以通過在第一 工作模式下提供四個指針,在第二工作模式下提供八個指針來實現(xiàn)存 儲器控制器內(nèi)的緩沖,從而提供了一種緩沖器管理的簡便實現(xiàn)。
本發(fā)明還涉及一種用于對網(wǎng)絡(luò)和存儲器進(jìn)行耦合的方法。通過將 存儲器控制器連接至網(wǎng)絡(luò)的第一接口接收并發(fā)送數(shù)據(jù)流。利用流存儲 器單元控制網(wǎng)絡(luò)和存儲器之間的數(shù)據(jù)流。將數(shù)據(jù)流的至少一部分臨行 存儲在緩沖器中。在第一和第二工作模式下,管理數(shù)據(jù)流在緩沖器中 的臨時存儲。在第一工作模式下,臨時存儲待存儲于存儲器中的數(shù)據(jù) 流中的數(shù)據(jù),直到緩沖器的一部分被占據(jù)為止。在第二工作模式下, 在緩沖器的一部分被占據(jù)之后,緩沖器被劃分為預(yù)取緩沖器和回寫緩 沖器,前者用于緩沖來自存儲器的預(yù)取數(shù)據(jù),后者用于緩沖待回寫至 存儲器的數(shù)據(jù)。
本發(fā)明的其他方面由從屬權(quán)利要求限定。
參考附圖和以下說明的實施例,本發(fā)明的上述和其他方面會更加 明顯并得以闡述。
圖l示出了依照本發(fā)明的片上系統(tǒng)的基本體系結(jié)構(gòu)的方框圖; 圖2示出了依照第一實施例的流存儲器控制器的方框圖; 圖3示出了圖2中的流存儲器單元的方框圖; 圖4示出了第一工作模式期間圖3的SRAM緩沖器中的內(nèi)容; 圖5示出了第二工作模式期間圖3的SR認(rèn)緩沖器中的內(nèi)容;以及 圖6示出了圖2中的緩沖器管理單元的狀態(tài)圖。
具體實施例方式
圖l示出了依照本發(fā)明的片上系統(tǒng)的基本體系結(jié)構(gòu)的方框圖。片上
系統(tǒng)包括至少一個處理單元P (請注意圖l中只示出了一個處理單元) 或子系統(tǒng);互連裝置頂,用于耦合處理單元P和任意外部設(shè)備??蓪⑻?br>
理單元P和互連裝置IM看作網(wǎng)絡(luò)N?;蛘?,可將互連裝置IM看作網(wǎng)絡(luò)N。 以流方式執(zhí)行互連裝置IM上和處理單元P間的通信。外部存儲器MEM通 過存儲器控制器SMC耦合至互連裝置IM或網(wǎng)絡(luò)N。外部存儲器可用SDRAM 實現(xiàn)。存儲器控制器MC用于將互連裝置IM或網(wǎng)絡(luò)的數(shù)據(jù)格式和地址格 式轉(zhuǎn)換為存儲器MEM的數(shù)據(jù)格式和地址格式。
為了實現(xiàn)基于流的通信,提供緩沖器。緩沖器可以置于存儲器MEM 附近的存儲器控制器SMC中。然而,緩沖器也可以置于互連基礎(chǔ)結(jié)構(gòu)中 (如仲裁器或橋BR中),或者甚至是子系統(tǒng)P的附近,可以用對存儲器 MEM進(jìn)行訪問的專用ASIC或微處理器而實現(xiàn)。優(yōu)選地,以SRAM來實現(xiàn)緩 沖器B。優(yōu)選地,采用FIF0 (先入先出)原理來組織通過緩沖器的數(shù)據(jù) 流的數(shù)據(jù)流量(flow)。此外,可以在系統(tǒng)中實現(xiàn)多于一個的緩沖器。 這樣做的原因之一是多個流間存在差別,因此為每個單獨的流實現(xiàn)一 個緩沖器。
優(yōu)選地,該網(wǎng)絡(luò)構(gòu)成PCI-Express網(wǎng)絡(luò)。"PCI Express Base Specification, Revision 1. 0" , PCI-SIG, July 2002, www. pcisig. org 中描述了PCI-Express網(wǎng)絡(luò)的基本概念。
圖2示出了依照第一實施例的流存儲器控制器SMC的方框圖。流存 儲器控制器SMC包括PCI-Express接口PI、流存儲器單元SMU和另一接 口MI,該接口充當(dāng)與外部SDRAM存儲器的接口。流存儲器單元SMU包括 緩沖器管理器單元BMU和緩沖器B,后者可以SRAM存儲器來實現(xiàn)。實現(xiàn) 了SRAM中的緩沖的流存儲器單元SMU和緩沖器管理器BMU—起用于對經(jīng) 由PCI-Express接口來自網(wǎng)絡(luò)N對SDIUM的訪問進(jìn)行緩沖。緩沖器管理器 單元BMU用于響應(yīng)來自PCI-Express接口的對SDR扁的讀或?qū)懺L問,管理 緩沖器(更新指針寄存器)并將數(shù)據(jù)從緩沖器(SRAM)中繼至SDRAM 或從SDRAM中繼至緩沖器(SRAM)。
依照第一實施例,將原先分別存儲在預(yù)取和回寫緩沖器中的數(shù)據(jù) 一起存儲在一個輸入-輸出緩沖器中。這個單一的輸入/輸出緩沖器與 包括位于獨立寄存器中的四個或八個指針的組相關(guān)聯(lián),這些指針用于 指向輸入-輸出緩沖器的讀和寫地址。包括4/8指針/地址寄存器的這個 單一的緩沖器實現(xiàn)了共享的回寫和預(yù)取緩沖,該緩沖在其他情況下被看作是完全獨立的。
可以對依照第一實施例的緩沖管理和緩沖器(在運行時)動態(tài)地 進(jìn)行配置。當(dāng)數(shù)據(jù)沒有存儲在后臺存儲器中時,僅有一個緩沖器用于 讀和寫訪問并實現(xiàn)預(yù)取和回寫緩沖。另一方面,當(dāng)數(shù)據(jù)存儲在后臺存 儲器中時,這個單一的緩沖器在運行期間被動態(tài)地劃分為兩部分,即 預(yù)取和回寫部分。這種方案的優(yōu)點在于更為簡單的緩沖器管理和更好 的存儲器利用。
換句話說,在兩種工作模式下執(zhí)行緩沖管理。在第一工作模式10M 下,提供了單一的輸入/輸出緩沖器。在第一工作模式10M下,基于存 儲于緩沖器管理單元BMU內(nèi)的四個指針而執(zhí)行對這個單一的緩沖器的 緩沖器管理,即緩沖器管理單元BMU包括起始地址寄存器SAR、結(jié)束 地址寄存器EAR以及讀指針寄存器RP和寫指針寄存器WP。
在第二工作模式20M下,單一的輸入/輸出緩沖器B被分為預(yù)取緩 沖器PFB和回寫緩沖器WBB。緩沖器管理器BMU基于八個指針而執(zhí)行緩沖 器管理,即緩沖器管理單元BMU包括起始地址寄存器SAR、結(jié)束地址 寄存器EAR、預(yù)取起始寄存器PFSR、預(yù)取結(jié)束寄存器PFER、預(yù)取讀指針 PFRP、預(yù)取寫指針PFWP、回寫讀指針寄存器WBRP和回寫寫指針寄存器 WBWP。
在流存儲器控制器SMC中進(jìn)行緩沖,以形成突發(fā)并啟用對DRAM的 突發(fā)模式訪問。因此,在SRAM (即緩沖器B)中提供并實現(xiàn)了讀/寫緩 沖器。這些緩沖器積累分組并形成突發(fā)。最初,在單一緩沖器中實現(xiàn) 這些讀和寫緩沖器,且該緩沖器本身作為FIFO緩沖器并把外部DRAM旁 路。當(dāng)這個緩沖器變滿時,它就被分為獨立的讀和寫緩沖器。接著, 讀請求被預(yù)取到該緩沖器中,以便讀請求在等待時間限度內(nèi)得到服務(wù)。 寫緩沖器積累分組,直到積累了一整頁為止。這些寫緩沖器形成突發(fā), 并向DRAM傳送數(shù)據(jù),即利用突發(fā)模式訪問的回寫。
圖3示出了圖2中的流存儲器單元SMU的方框圖。此處,示出了多 流(multi-stream)緩沖的邏輯視圖。流ST1-ST4中的每一個都與單獨 的緩沖器相關(guān)聯(lián)。當(dāng)需要面向外部SDRAM的數(shù)據(jù)訪問時,這些緩沖器被 分為兩部分。由于每次只有一個流可以訪問外部SDRAM,因此提供了仲
裁器ARB,其與復(fù)用器MUX執(zhí)行仲裁。
圖4示出了在第一工作模式10M期間圖3的SRAM緩沖器中的內(nèi)容。 在初始化期間,緩沖器管理器單元BMU將為緩沖器分配一定量的存儲器 空間。此處,緩沖器可以包含14個字。緩沖器B也將在獨立的寄存器(2 個配置寄存器,即起始地址寄存器SAR和結(jié)束地址寄存器EAR)中寫入 該緩沖器的起始和結(jié)束地址SA、 EA。緩沖器管理器BMU還維護(hù)兩個計數(shù) 器,讀計數(shù)器(讀指針寄存器RR)和寫計數(shù)器(寫指針寄存器WP)。通 過與緩沖器的字長相乘,這些讀和寫計數(shù)器或寄存器用作偏移量,這 個偏移量將與緩沖器的起始地址SA相加,以獲得待訪問的數(shù)據(jù)在存儲 器中的地址。因此,緩沖器需要4個指針,分別存儲于起始地址寄存器 SAR和結(jié)束地址寄存器EAR的緩沖器起始和緩沖器結(jié)束地址,以及讀和 寫地址或讀指針RP和寫指針WP,以實現(xiàn)緩沖器管理。此處,數(shù)據(jù)只在 緩沖器B而不在后臺存儲器(如SDRAM)中緩沖。因此,對緩沖器管理 器單元函U的讀和寫訪問將使讀和寫指針動態(tài)地改變(增大),在緩沖 器結(jié)尾處回繞(wrapping)(復(fù)位至緩沖器的開始)。
圖5示出了在第二工作模式20M期間圖3的SRAM緩沖器中的內(nèi)容。 如果由于例如緩沖器已滿或幾乎已滿而需要把數(shù)據(jù)存儲到外部SDRAM, 則緩沖器將被分為兩部分,即預(yù)取和回寫部分PFB、 WBB。這可以在任 意時刻發(fā)生。動態(tài)地分配這兩部分,每部分大小相同,但不必與緩沖 器邊界對齊。在圖5的情況下,需要8個指針(寄存器),即每個子部分 4個指針。
所需指針或寄存器是起始地址寄存器SAR,用于存儲緩沖器B的 起始地址DA;結(jié)束地址寄存器EAR,用于存儲緩沖器B的結(jié)束地址EA; 預(yù)取起始地址寄存器PFSR,用于存儲預(yù)取起始地址PFSA;預(yù)取結(jié)束地 址寄存器PFER,用于存儲預(yù)取結(jié)束地址PFEA;預(yù)取讀指針寄存器PFRP, 用于存儲預(yù)取讀指針PFR;預(yù)取寫指針寄存器PFWP,用于存儲預(yù)取寫指 針PFW;回寫讀指針寄存器WBRP,用于存儲回寫讀指針WBR;以及回寫 寫指針寄存器WBWP,用于存儲回寫寫指針WBW。
緩沖器管理器單元BMU被設(shè)計用于關(guān)聯(lián)緩沖器(joint-buffer) 管理。讀和寫計數(shù)器是"模N"計數(shù)器,即計數(shù)到N后再從O重新開始,
N=(EA-SA)/Buffer一Word size。
對于緩沖器的寫請求,數(shù)據(jù)被寫到地址 =SA+(WP*Buffer—Word—size)
對于緩沖器的讀請求,數(shù)據(jù)從以下地址取出 =SA+(RP*Buffer—Word—size)
當(dāng)
(WP-RP)二O
時,緩沖器B為空,且針對緩沖器B的讀取受阻(blocked)。 當(dāng)
(WP-RP) mod N=N-1 時,緩沖器B為滿,且針對緩沖器B的寫入受阻。
圖6示出了尤其針對多緩沖器的緩沖器管理器B簡的有限狀態(tài)機(jī) (FSM)中的不同狀態(tài)的圖。此處,用不同的S值表示不同狀態(tài),狀態(tài) 轉(zhuǎn)移或條件用C標(biāo)注。在緩沖器保持在相同狀態(tài)的情況下(即,針對單 個請求的多次訪問),狀態(tài)圖中需要有自循環(huán),然而這并沒有在圖6中 示出,以便簡化該圖。狀態(tài)S^0對應(yīng)于復(fù)位狀態(tài)。狀態(tài)S4涉及具有針 對任意緩沖器的請求的狀態(tài)。此處,將確定該請求的類型。狀態(tài)S二2 涉及SRAM緩沖器未被劃分為讀和寫緩沖器時的讀SRAM請求。狀態(tài)S二3 涉及SRAM緩沖器未被劃分為讀和寫緩沖器時的寫SRAM請求。狀態(tài)S二4 涉及SRAM緩沖器已經(jīng)被劃分為讀/寫緩沖器時的讀SRAM請求。狀態(tài)S二5 涉及SRAM緩沖器已經(jīng)被劃分為讀/寫緩沖器時的寫SRAM請求。狀態(tài)S二6 涉及從SRAM緩沖器的寫緩沖器向外部SDRAM寫入數(shù)據(jù)。狀態(tài)S二7涉及從 外部SDRAM讀取數(shù)據(jù),并將該數(shù)據(jù)寫入SRAM讀(預(yù)取)緩沖器。狀態(tài)S二8 涉及完成寫存儲器前的等待狀態(tài)(此處,等待一個時鐘周期)。狀態(tài)S二9 涉及其他請求正在進(jìn)行時的仲裁(此處等待多個時鐘周期)。
從一狀態(tài)到另一狀態(tài)轉(zhuǎn)移的發(fā)生將取決于當(dāng)前狀態(tài)和流存儲器 控制器SMC的輸入。條件O0涉及狀態(tài)結(jié)束后的無條件轉(zhuǎn)移。條件C4 涉及事務(wù)處理(可能執(zhí)行多次存儲器訪問)結(jié)束后的條件轉(zhuǎn)移。條件 02/3/4/5/6/7涉及適當(dāng)?shù)拇鎯ζ髟L問的執(zhí)行(是指S二2/3/4/5/6/7)。
條件C二8涉及當(dāng)處理某一請求時出現(xiàn)另一請求的情況。
例如,對條件C二0,發(fā)生從S^到S二1的狀態(tài)轉(zhuǎn)移。對條件C二2,發(fā)生 從S4到S々的狀態(tài)轉(zhuǎn)移。對條件C二1,發(fā)生從S3到S4的狀態(tài)轉(zhuǎn)移。對 條件0=3,發(fā)生從S二1到S二3的狀態(tài)轉(zhuǎn)移。對條件C二1,發(fā)生從S3到S二8的 狀態(tài)轉(zhuǎn)移。對條件C二4,發(fā)生從S^到Sz4的狀態(tài)轉(zhuǎn)移。對條件Ol,發(fā)生 從S二4到S4的狀態(tài)轉(zhuǎn)移。對條件C二5,發(fā)生從S4到S^5的狀態(tài)轉(zhuǎn)移。對 條件C二1,發(fā)生從S二5到S二8的狀態(tài)轉(zhuǎn)移。對條件〔=7,發(fā)生從S二1到S二7的 狀態(tài)轉(zhuǎn)移。對條件C4,發(fā)生從S二7到S4的狀態(tài)轉(zhuǎn)移。對條件0=0,發(fā)生 從S二8到S二1的狀態(tài)轉(zhuǎn)移。對條件08,發(fā)生從S4到S:8的狀態(tài)轉(zhuǎn)移。對 條件C二0,發(fā)生從S二9到S二1的狀態(tài)轉(zhuǎn)移。
應(yīng)注意,上面提到的實施例闡述而不是限制本發(fā)明,因此所屬領(lǐng) 域的技術(shù)人員將能夠在不背離所附權(quán)利要求范圍的前提下,設(shè)計出許 多備選實施例。在權(quán)利要求中,不應(yīng)將位于圓括號間的任何附圖標(biāo)記 解釋為對權(quán)利要求的限制。詞語"包括"不排除除列于權(quán)利要求中的 元件或步驟外的其他元件或步驟的存在。元件前的詞語"一"不排除 多個該元件的存在。在設(shè)備權(quán)利要求中列舉多個裝置時,可以用同一 項硬件體現(xiàn)若干個所列裝置。起碼的事實是,互不相同的從屬權(quán)利要 求中列舉的特定措施并不指示這些措施的組合不能產(chǎn)生有益效果。
此外,權(quán)利要求中的任何附圖標(biāo)記都不應(yīng)構(gòu)成對權(quán)利要求范圍的 限制。
權(quán)利要求
1.一種存儲器控制器(SMC),用于將存儲器(MEM)耦合至網(wǎng)絡(luò)(N;IM),所述存儲器控制器(SMC)包括-第一接口(PI),用于將所述存儲器控制器(SMC)連接至所述網(wǎng)絡(luò)(N;IM),所述第一接口(PI)被設(shè)置用于接收和發(fā)送數(shù)據(jù)流(ST1-ST4);以及-耦合至所述第一接口(PI)的流存儲器單元(SMU),用于控制所述網(wǎng)絡(luò)(N;IM)和所述存儲器(MEM)之間的數(shù)據(jù)流(ST1-ST4),所述流存儲器單元(SMU)包括緩沖器(B),用于臨時存儲所述數(shù)據(jù)流(ST1-ST4)中至少一部分;以及緩沖器管理單元(BMU),用于在第一和第二工作模式(10M,20M)下管理所述數(shù)據(jù)流(ST1-ST4)在所述緩沖器(B)中的臨時存儲;其中,在第一工作模式(10M)下,把待存儲于所述存儲器(MEM)中的數(shù)據(jù)流(ST1-ST4)中的數(shù)據(jù)臨時存儲在所述緩沖器(B)中,直到所述緩沖器(B)的一部分被占據(jù)為止;其中,在第二工作模式(20M)下,在所述緩沖器(B)的一部分被占據(jù)之后,所述緩沖器管理單元(BMU)將所述緩沖器(B)分為預(yù)取緩沖器(PFB)和回寫緩沖器(WBB),所述預(yù)取存儲器(PFB)用于緩沖來自所述存儲器(MEM)的預(yù)取數(shù)據(jù),所述回寫緩沖器(WBB)用于緩沖待回寫至所述存儲器(MEM)的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求l所述的存儲器控制器,其中,所述第一接口 (PI) 是PCI express接口。
3. 根據(jù)權(quán)利要求1或2所述的存儲器控制器,還包括- 耦合至流存儲器單元(SMU)的第二接口 (MI),用于將所述存 儲器控制器(SMC)連接至所述存儲器(MEM),并以突發(fā)方式和所述存 儲器(MEM)交換數(shù)據(jù)。
4. 根據(jù)權(quán)利要求l、 2或3所述的存儲器控制器,其中- 在第一工作模式(10M)下,所述緩沖器管理單元(BMU)包括起始地址寄存器(SAR),用于存儲所述緩沖器(B)的起始地址(SA); 結(jié)束地址寄存器(EAR),用于存儲所述緩沖器(B)的結(jié)束地址(EA); 讀指針寄存器(RP),用于存儲所述緩沖器的讀指針(RP);以及寫指 針寄存器(WP),用于存儲所述緩沖器(B)的寫指針(WP);以及- 在第二工作模式(20M)下,所述緩沖器管理單元(BMU)包括: 起始地址寄存器(SAR),用于存儲所述緩沖器(B)的起始地址(SA); 結(jié)束地址寄存器(EAR),用于存儲所述緩沖器(B)的結(jié)束地址(EA); 預(yù)取起始地址寄存器(PFSR),用于存儲預(yù)取起始地址(PFSA);預(yù)取 結(jié)束地址寄存器(PFER),用于存儲預(yù)取結(jié)束地址(PFEA);預(yù)取讀指 針寄存器(PFRP),用于存儲預(yù)取讀指針(PFR);預(yù)取寫指針寄存器(PFWP),用于存儲預(yù)取寫指針(PFW);回寫讀指針寄存器(WBRP), 用于存儲回寫讀指針(WBR);以及回寫寫指針寄存器(WBW),用于存 儲回寫寫指針(WBW)。
5. 根據(jù)權(quán)利要求l所述的存儲器控制器,其中- 所述緩沖器管理單元(BMU)適于動態(tài)地確定從第一到第二工作 模式(10M,20M)的轉(zhuǎn)變。
6. —種用于將存儲器(MEM)耦合至網(wǎng)絡(luò)(N; IM)的方法,包括 如下步驟- 通過第一接口 (PI)接收和發(fā)送數(shù)據(jù)流,所述第一接口 (PI) 用于將存儲器控制器(SMC)連接至所述網(wǎng)絡(luò)(N; IM);- 通過流存儲器單元(SMU)來控制所述網(wǎng)絡(luò)(N; IM)和所述存 儲器(MEM)之間的數(shù)據(jù)流;- 在緩沖器(B)中臨時存儲數(shù)據(jù)流(ST1-ST4)的至少一部分;- 在第一和第二工作模式(10M,20M)下,管理所述數(shù)據(jù)流 (ST1-ST4)在緩沖器中的臨時存儲;- 在第一工作模式下(10M),臨時存儲待存儲于所述存儲器(MEM) 的數(shù)據(jù)流(Sn-ST4)中的數(shù)據(jù),直到所述緩沖器(B)的一部分被占 據(jù)為止;- 在第二工作模式(20M)下,在所述緩沖器的一部分被占據(jù)之后, 將所述緩沖器(B)分為預(yù)取緩沖器(PFB)和回寫緩沖器(WBB),所述預(yù)取緩沖器(PFB)用于緩沖來自所述存儲器(MEM)的預(yù)取數(shù)據(jù), 所述回寫緩沖器(WBB)用于緩沖待回寫至所述存儲器(MEM)的數(shù)據(jù)。
7. —種數(shù)據(jù)處理系統(tǒng),包括具有處理單元(P)的網(wǎng)絡(luò)(N)和用 于耦合所述處理單元(P)的互連裝置(IM),以及 - 根據(jù)權(quán)利要求1至5之一所述的存儲器控制器(SMC)。
全文摘要
提供了一種用于將存儲器(MEM)耦合至網(wǎng)絡(luò)(N;IM)的存儲器控制器(SMC)。該存儲器控制器(SMC)包括用于將存儲器控制器(SMC)連接至網(wǎng)絡(luò)(N;IM)的第一接口(PI)。第一接口(PI)被設(shè)置用于接收和發(fā)送數(shù)據(jù)流(ST1-ST4)。流存儲器單元(SMU)耦合至第一接口(PI),用于控制網(wǎng)絡(luò)(N;IM)和存儲器(MEM)之間的數(shù)據(jù)流(ST1-ST4)。所述流存儲器單元(SMU)包括緩沖器(B),用于臨時存儲數(shù)據(jù)流(ST1-ST4)的至少一部分。提供了一種緩沖器管理單元(BMU),用于在第一和第二工作模式(10M;20M)下管理數(shù)據(jù)流(ST1-ST4)在緩沖器(B)中的臨時存儲。在第一工作模式(10M)下,將待存儲于存儲器(MEM)數(shù)據(jù)流(ST1-ST4)中的數(shù)據(jù)臨時存儲于緩沖器(B),直到緩沖器(B)的一部分被占據(jù)為止。在第二工作模式(20M)下,在緩沖器(B)的一部分被占據(jù)之后,緩沖器管理單元(BMU)將緩沖器(B)分為預(yù)取緩沖器(PFB)和回寫緩沖器(WBB),預(yù)取存儲器(PFB)用于緩沖來自所述存儲器(MEM)的預(yù)取數(shù)據(jù),回寫緩沖器(WBB)用于緩沖待回寫至所述存儲器(MEM)的數(shù)據(jù)。
文檔編號G06F13/16GK101194241SQ200680020140
公開日2008年6月4日 申請日期2006年6月9日 優(yōu)先權(quán)日2005年6月9日
發(fā)明者埃瓦·赫克斯特拉-諾瓦卡, 阿圖爾·伯查德, 阿特爾·P·S·昭漢 申請人:Nxp股份有限公司