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

每個(gè)周期具有多個(gè)讀取端口和多個(gè)寫(xiě)入端口的多條存儲(chǔ)器的制作方法

文檔序號(hào):11864269閱讀:161來(lái)源:國(guó)知局
每個(gè)周期具有多個(gè)讀取端口和多個(gè)寫(xiě)入端口的多條存儲(chǔ)器的制作方法與工藝

本申請(qǐng)要求于2015年5月7日提交的美國(guó)臨時(shí)專(zhuān)利申請(qǐng)62/158,094的權(quán)益,其公開(kāi)內(nèi)容通過(guò)引用合并于此。

技術(shù)領(lǐng)域

本公開(kāi)總體上涉及存儲(chǔ)器設(shè)備,并且具體地涉及多端口存儲(chǔ)器系統(tǒng)。



背景技術(shù):

現(xiàn)有技術(shù)中已知各種用于使得能夠同時(shí)訪(fǎng)問(wèn)存儲(chǔ)器的技術(shù)。例如,其公開(kāi)通過(guò)引用合并于此的美國(guó)專(zhuān)利8,514,651描述了一種具有用以存儲(chǔ)內(nèi)容數(shù)據(jù)的一組存儲(chǔ)器條的存儲(chǔ)器設(shè)備。在單個(gè)時(shí)鐘周期期間接收在第一存儲(chǔ)器條中執(zhí)行相應(yīng)讀取存儲(chǔ)器操作的至少兩個(gè)請(qǐng)求。至少兩個(gè)請(qǐng)求中的一個(gè)或多個(gè)請(qǐng)求被阻止訪(fǎng)問(wèn)第一存儲(chǔ)器條,并且響應(yīng)于此:訪(fǎng)問(wèn)與第一存儲(chǔ)器條相關(guān)聯(lián)并且不同于其中所存儲(chǔ)的內(nèi)容數(shù)據(jù)的冗余數(shù)據(jù),并且在沒(méi)有訪(fǎng)問(wèn)第一存儲(chǔ)器條的情況下,基于相關(guān)聯(lián)的冗余數(shù)據(jù)來(lái)重構(gòu)第一存儲(chǔ)器條中所存儲(chǔ)的內(nèi)容數(shù)據(jù)的至少一部分。使用第一存儲(chǔ)器條中所存儲(chǔ)的內(nèi)容數(shù)據(jù)來(lái)執(zhí)行第一存儲(chǔ)器讀取操作,并且使用i)在沒(méi)有訪(fǎng)問(wèn)第一存儲(chǔ)器條的情況下并且ii)基于相關(guān)聯(lián)的冗余數(shù)據(jù)重構(gòu)的內(nèi)容數(shù)據(jù)來(lái)執(zhí)行第二存儲(chǔ)器讀取操作。

呈現(xiàn)以上描述作為本領(lǐng)域現(xiàn)有技術(shù)的一般綜述,而不應(yīng)當(dāng)將其理解為承認(rèn)其所包含的任何信息構(gòu)成本專(zhuān)利申請(qǐng)的現(xiàn)有技術(shù)。



技術(shù)實(shí)現(xiàn)要素:

本文中所描述的實(shí)施例提供了一種用于數(shù)據(jù)存儲(chǔ)的方法。方法包括接收用于在同一時(shí)鐘周期中在存儲(chǔ)器陣列中執(zhí)行的一個(gè)或多個(gè)讀取命令以及一個(gè)或多個(gè)寫(xiě)入命令,該存儲(chǔ)器陣列包括被分為組的多個(gè)單端口存儲(chǔ)器條。寫(xiě)入命令提供數(shù)據(jù)用于存儲(chǔ)但是沒(méi)有規(guī)定要存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置。選擇組中沒(méi)有被讀取命令在同一時(shí)鐘周期內(nèi)訪(fǎng)問(wèn)的一個(gè)或多個(gè)組。針對(duì)寫(xiě)入命令在所選擇的一個(gè)或多個(gè)組中的單端口存儲(chǔ)器條中挑選可用存儲(chǔ)位置。在同一時(shí)鐘周期期間,將在寫(xiě)入命令中提供的數(shù)據(jù)存儲(chǔ)在所挑選的存儲(chǔ)位置,并且檢索讀取命令請(qǐng)求的數(shù)據(jù)。通過(guò)報(bào)告所挑選的存儲(chǔ)位置來(lái)確認(rèn)寫(xiě)入命令的執(zhí)行。

在一些實(shí)施例中,組包括保持組中的存儲(chǔ)器條中的可用存儲(chǔ)位置的列表的相應(yīng)緩沖器,并且挑選可用存儲(chǔ)位置包括查找所選擇的組的緩沖器。在實(shí)施例中,執(zhí)行選擇組并且挑選存儲(chǔ)位置而不需要邏輯到虛擬地址轉(zhuǎn)換。

在一些實(shí)施例中,每個(gè)組還包括保持在組中的單端口存儲(chǔ)器條中的數(shù)據(jù)字上計(jì)算的冗余信息的冗余存儲(chǔ)器條,并且方法包括:響應(yīng)于檢測(cè)到讀取命令從也被另一讀取命令訪(fǎng)問(wèn)的組中的單端口存儲(chǔ)器條請(qǐng)求數(shù)據(jù),根據(jù)組中的其他單端口存儲(chǔ)器條并且根據(jù)組的所述冗余存儲(chǔ)器條中的冗余信息針對(duì)讀取命令重構(gòu)數(shù)據(jù)。

在實(shí)施例中,組還包括高速緩存存儲(chǔ)器,并且其中存儲(chǔ)在寫(xiě)入命令中發(fā)送的數(shù)據(jù)包括基于在寫(xiě)入命令中發(fā)送的數(shù)據(jù)來(lái)計(jì)算已更新冗余信息,將已更新冗余信息高速緩存在高速緩存存儲(chǔ)器中,并且在隨后的時(shí)鐘周期中將已更新冗余信息存儲(chǔ)在冗余存儲(chǔ)器條中。在所公開(kāi)的實(shí)施例中,選擇組包括挑選具有最大量的可用存儲(chǔ)位置的一個(gè)或多個(gè)組。

根據(jù)本文中所描述的實(shí)施例,還提供了一種包括存儲(chǔ)器陣列和控制邏輯的存儲(chǔ)器系統(tǒng)。存儲(chǔ)器陣列包括被分為多個(gè)組的多個(gè)單端口存儲(chǔ)器條。控制邏輯被配置成接收用于在同一時(shí)鐘周期中在存儲(chǔ)器陣列中執(zhí)行的一個(gè)或多個(gè)讀取命令以及一個(gè)或多個(gè)寫(xiě)入命令,其中寫(xiě)入命令提供數(shù)據(jù)用于存儲(chǔ)但是沒(méi)有規(guī)定要存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置,以選擇組中沒(méi)有被讀取命令在同一時(shí)鐘周期中訪(fǎng)問(wèn)的一個(gè)或多個(gè)組,以針對(duì)寫(xiě)入命令在所選擇的一個(gè)或多個(gè)組中的單端口存儲(chǔ)器條中挑選可用存儲(chǔ)位置,以將在寫(xiě)入命令中提供的數(shù)據(jù)存儲(chǔ)在所挑選的存儲(chǔ)位置并且檢索讀取命令在同一時(shí)鐘周期中請(qǐng)求的數(shù)據(jù),并且通過(guò)報(bào)告所挑選的存儲(chǔ)位置來(lái)確認(rèn)寫(xiě)入命令的執(zhí)行。

在一些實(shí)施例中,一種網(wǎng)絡(luò)元件包括所公開(kāi)的存儲(chǔ)器系統(tǒng)。

附圖說(shuō)明

將根據(jù)結(jié)合附圖給出的其實(shí)施例的以下詳細(xì)描述來(lái)更全面地理解本公開(kāi),在附圖中:

圖1是示意性地圖示根據(jù)本文中所描述的實(shí)施例的網(wǎng)絡(luò)元件的框圖;

圖2是示意性地圖示根據(jù)本文中所描述的實(shí)施例的適合用在圖1的網(wǎng)絡(luò)元件中的存儲(chǔ)器系統(tǒng)的框圖;以及

圖3是示意性地圖示根據(jù)本文中所描述的實(shí)施例的用于在同一時(shí)鐘周期中執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令的方法的流程圖。

具體實(shí)施方式

本文中所描述的實(shí)施例提供一種改進(jìn)的系統(tǒng)和相關(guān)聯(lián)的方法。在所公開(kāi)的實(shí)施例中,存儲(chǔ)器系統(tǒng)使用多個(gè)單端口存儲(chǔ)器條來(lái)實(shí)現(xiàn)。雖然每個(gè)單個(gè)存儲(chǔ)器條在每個(gè)時(shí)鐘周期中能夠執(zhí)行單個(gè)命令(讀取或?qū)懭?,然而存儲(chǔ)器系統(tǒng)作為整體被設(shè)計(jì)成每個(gè)時(shí)鐘周期執(zhí)行多個(gè)讀取命令和多個(gè)寫(xiě)入命令。為了清楚,本文中所描述的實(shí)施例涉及每個(gè)時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令。

在一些實(shí)施例中,存儲(chǔ)器條被分為組。每個(gè)組包括N個(gè)存儲(chǔ)器條(也稱(chēng)為功能存儲(chǔ)器條)以及冗余存儲(chǔ)器條(也稱(chēng)為XOR條)每個(gè)功能存儲(chǔ)器條存儲(chǔ)大量數(shù)據(jù)字。冗余存儲(chǔ)器條存儲(chǔ)每個(gè)在來(lái)自N個(gè)功能存儲(chǔ)器組的N個(gè)相應(yīng)數(shù)據(jù)字上計(jì)算的冗余字。

存儲(chǔ)器系統(tǒng)包括控制邏輯,控制邏輯從一個(gè)或多個(gè)客戶(hù)端接收讀取和寫(xiě)入命令并且在功能存儲(chǔ)器條中執(zhí)行命令。不同于傳統(tǒng)的存儲(chǔ)方案,每個(gè)寫(xiě)入命令提供數(shù)據(jù)字用于存儲(chǔ),但是沒(méi)有規(guī)定存儲(chǔ)器系統(tǒng)中藥存儲(chǔ)數(shù)據(jù)字的存儲(chǔ)位置或地址。

實(shí)際上,在處理寫(xiě)入命令時(shí),控制單元在功能存儲(chǔ)器條之一中挑選適當(dāng)?shù)拇鎯?chǔ)位置,將數(shù)據(jù)字存儲(chǔ)在所挑選的存儲(chǔ)位置,并且向客戶(hù)端報(bào)告存儲(chǔ)位置的標(biāo)識(shí)符。被稱(chēng)為物理標(biāo)識(shí)符(PID)的標(biāo)識(shí)符由客戶(hù)端在隨后的讀取命令中用于檢索數(shù)據(jù)字。每組功能存儲(chǔ)器條通常包括保持組中的空閑PID的列表的空閑條目FIFO(FIFO)緩沖器。

在一些實(shí)施例中,由于存儲(chǔ)器系統(tǒng)由單端口存儲(chǔ)器組構(gòu)成,所以控制單元如下在同一時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令:

■如果兩個(gè)讀取命令規(guī)定屬于不同功能存儲(chǔ)器條的PID,則通過(guò)從所規(guī)定的功能存儲(chǔ)器條(即根據(jù)命令中規(guī)定的PID)讀取數(shù)據(jù)字來(lái)執(zhí)行每個(gè)讀取命令。

■另一方面,如果兩個(gè)讀取命令規(guī)定屬于同一功能存儲(chǔ)器條的PID,則在規(guī)定的功能存儲(chǔ)器條中執(zhí)行一個(gè)讀取命令。不從所規(guī)定的功能存儲(chǔ)器條讀取第二讀取命令所請(qǐng)求的數(shù)據(jù)字,而是使用其他功能存儲(chǔ)器條以及行的冗余條來(lái)重構(gòu)第二讀取命令所請(qǐng)求的數(shù)據(jù)字。在任何情況下,兩個(gè)讀取命令在同一時(shí)鐘周期中執(zhí)行,即使它們都訪(fǎng)問(wèn)同一單端口存儲(chǔ)器條。

■在沒(méi)有被讀取命令訪(fǎng)問(wèn)的兩個(gè)不同的組中挑選針對(duì)兩個(gè)寫(xiě)入命令的兩個(gè)存儲(chǔ)位置。為了在同一時(shí)鐘周期中執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令,最小數(shù)目四個(gè)組是足夠的??刂茊卧ǔMㄟ^(guò)查找所選擇的組的FEF中的可用PID的列表來(lái)挑選存儲(chǔ)位置。

■按照每個(gè)寫(xiě)入命令,更新受命令影響的冗余字,并且將其高速緩存在組中的小高速緩存存儲(chǔ)器中。在具有到同一組的寫(xiě)入的下一時(shí)鐘周期將所高速緩存的冗余字拷貝到組中的冗余條。需要這種高速緩存的原因在于,冗余條已經(jīng)在當(dāng)前時(shí)鐘周期中被寫(xiě)入,以更新來(lái)自高速緩存存儲(chǔ)器的先前計(jì)算的高速緩存字。

所公開(kāi)的存儲(chǔ)器系統(tǒng)使得能夠每個(gè)時(shí)鐘周期執(zhí)行多個(gè)命令,即使?jié)撛诘拇鎯?chǔ)器設(shè)備包括單端口存儲(chǔ)器。這樣,所公開(kāi)的技術(shù)提供了快速和并行存儲(chǔ),而同時(shí)保持了低的時(shí)鐘速率、低的成本、小的尺寸以及低的功耗。

另外,所公開(kāi)的技術(shù)沒(méi)有涉及任何種類(lèi)的邏輯到物理地址轉(zhuǎn)換。存儲(chǔ)器系統(tǒng)和客戶(hù)端僅使用由多個(gè)PID值形成的單個(gè)地址空間,而非不同的邏輯和物理地址空間。這樣,消除了管理邏輯到物理地址轉(zhuǎn)換的復(fù)雜性以及存儲(chǔ)邏輯到物理映射表格所需要的晶片區(qū)域。

圖1是示意性地圖示根據(jù)本文中所描述的實(shí)施例的網(wǎng)絡(luò)元件20的框圖。在本示例中,網(wǎng)絡(luò)元件20包括在通信網(wǎng)絡(luò)中轉(zhuǎn)發(fā)通信數(shù)據(jù)包的網(wǎng)絡(luò)交換機(jī)。在備選實(shí)施例中,網(wǎng)絡(luò)元件20包括任何其他合適類(lèi)型的網(wǎng)絡(luò)元件,諸如路由器或者橋接器。

在圖1的實(shí)施例中,網(wǎng)絡(luò)元件20包括用于接收和傳輸數(shù)據(jù)包的多個(gè)端口24以及用于處理數(shù)據(jù)包(例如用于高速緩存數(shù)據(jù)包并且用于從一個(gè)端口向另一端口轉(zhuǎn)發(fā)數(shù)據(jù)包)的合適的電路系統(tǒng)。在本示例中,上述電路系統(tǒng)包括一個(gè)或多個(gè)客戶(hù)端28以及存儲(chǔ)用于客戶(hù)端28的數(shù)據(jù)的存儲(chǔ)器系統(tǒng)32??蛻?hù)端28通常包括網(wǎng)絡(luò)元件20的各種處理單元或處理核,例如CPU或者被配置成執(zhí)行數(shù)據(jù)包數(shù)據(jù)操作以處理經(jīng)由端口24接收和傳輸?shù)臄?shù)據(jù)包的多個(gè)ASIC處理引擎,但是通常可以包括存儲(chǔ)和檢索數(shù)據(jù)的任意合適的模塊。

圖2是示意性地圖示根據(jù)本文中所描述的實(shí)施例的存儲(chǔ)器系統(tǒng)32的內(nèi)部結(jié)構(gòu)的框圖。在一些實(shí)施例中,存儲(chǔ)器系統(tǒng)32包括本文中稱(chēng)為存儲(chǔ)器條或功能存儲(chǔ)器條的多個(gè)存儲(chǔ)器單元36。每個(gè)功能存儲(chǔ)器條36包括多個(gè)物理存儲(chǔ)位置,例如在幾千個(gè)的數(shù)量級(jí)。每個(gè)存儲(chǔ)位置被配置成存儲(chǔ)相應(yīng)數(shù)據(jù)字。術(shù)語(yǔ)“數(shù)據(jù)字”指代任意合適大小的任意合適的數(shù)據(jù)項(xiàng)。

通常,在實(shí)施例中,每個(gè)存儲(chǔ)器條36包括單端口存儲(chǔ)器,這表示其能夠每個(gè)時(shí)鐘周期執(zhí)行單個(gè)命令,例如一個(gè)讀取命令或者一個(gè)寫(xiě)入命令。所討論的時(shí)鐘周期是鐘控存儲(chǔ)器條36的時(shí)鐘信號(hào)的時(shí)鐘周期。在本上下文中,時(shí)鐘周期在本文中也稱(chēng)為存儲(chǔ)器訪(fǎng)問(wèn)周期,并且這兩個(gè)術(shù)語(yǔ)可互換地使用。在本示例中,每個(gè)存儲(chǔ)器條36包括單端口靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)。然而,備選地,存儲(chǔ)器條36使用任何其他合適類(lèi)型的存儲(chǔ)器來(lái)實(shí)現(xiàn),例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。

雖然每個(gè)存儲(chǔ)器條36每個(gè)時(shí)鐘周期能夠執(zhí)行不多于單個(gè)讀取命令或者單個(gè)寫(xiě)入命令,然而在實(shí)施例中,存儲(chǔ)器系統(tǒng)32作為整體被設(shè)計(jì)成每個(gè)時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令。下面進(jìn)一步處理被設(shè)計(jì)成每個(gè)時(shí)鐘周期執(zhí)行更大數(shù)目的讀取和/或?qū)懭朊畹膫溥x配置。

在一些實(shí)施例中,存儲(chǔ)器條36被分為多個(gè)組。為了清楚,這些組在本文中也稱(chēng)為行,并且每個(gè)組在圖2中被圖示為單獨(dú)的行。然而,術(shù)語(yǔ)“行”的使用并不意味著存儲(chǔ)器條36的任何具體的空間方位。在圖2的實(shí)施例中,存儲(chǔ)器條36布置成被表示為38A、38B、38C和38D的四個(gè)行。

在實(shí)施例中,存儲(chǔ)器系統(tǒng)32還包括分別與行38A-38D相關(guān)聯(lián)的冗余存儲(chǔ)器條40A-40D。冗余存儲(chǔ)器條40A-40D也稱(chēng)為XOR條。XOR條40A-40D通常包括單端口存儲(chǔ)器,例如單端口SRAM,類(lèi)似于功能存儲(chǔ)器條36。給定行中的XOR條存儲(chǔ)在該行中的功能存儲(chǔ)器條36中存儲(chǔ)的數(shù)據(jù)上計(jì)算的冗余信息(例如校驗(yàn)信息)。

在示例實(shí)施例中,每個(gè)行具有N個(gè)功能存儲(chǔ)器條36。每個(gè)行的XOR條存儲(chǔ)XOR字,每個(gè)XOR字等于行中的相應(yīng)N個(gè)功能存儲(chǔ)器條中存儲(chǔ)的N個(gè)數(shù)據(jù)字的集合的逐比特XOR。N個(gè)數(shù)據(jù)字的每個(gè)集合和對(duì)應(yīng)XOR字被稱(chēng)為條帶。存儲(chǔ)在給定功能存儲(chǔ)器條36中的給定數(shù)據(jù)字可以根據(jù)條帶中的其他N-1個(gè)數(shù)據(jù)字(存儲(chǔ)在其他N-1個(gè)功能存儲(chǔ)器條上)以及條帶的XOR字來(lái)重構(gòu)。

在實(shí)施例中,存儲(chǔ)器系統(tǒng)32還包括分別與行38A-38D相關(guān)聯(lián)的高速緩存存儲(chǔ)器44A-44D以及先入先出(FIFO)存儲(chǔ)器48A-48D。每個(gè)FIFO保持行中的功能存儲(chǔ)器條36中的空閑PID的列表。FIFO48A-48D因此也稱(chēng)為空閑條目FIFO(FEF)。高速緩存存儲(chǔ)器44A-44D中的每個(gè)通常具有單個(gè)數(shù)據(jù)字的大小。FEF 48A-48D通常使用單端口存儲(chǔ)器(例如單端口SRAM)來(lái)實(shí)現(xiàn)。下面詳細(xì)解釋高速緩存存儲(chǔ)器44A-44D以及FEF 48A-48D的角色。存儲(chǔ)器系統(tǒng)32還包括控制單元50,控制單元50在本文中也稱(chēng)為控制邏輯,控制單元50管理數(shù)據(jù)在存儲(chǔ)器條26中的存儲(chǔ)并且與客戶(hù)端38通信。

圖1和圖2所示的網(wǎng)絡(luò)元件20和存儲(chǔ)器系統(tǒng)32的配置是示例配置,其僅出于清楚的目的而被描繪。在備選實(shí)施例中,也可以使用任何其他合適的網(wǎng)絡(luò)元件和/或存儲(chǔ)器系統(tǒng)。例如,存儲(chǔ)器條36可以分為任何其他合適數(shù)目的組,每個(gè)組包括任何其他合適數(shù)目的存儲(chǔ)器條。在一個(gè)實(shí)施例中,功能存儲(chǔ)器條的組是列而不是行。

另外,雖然圖2的實(shí)施例涉及每個(gè)時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令,然而在備選實(shí)施例中,可以使用所公開(kāi)的技術(shù)設(shè)計(jì)存儲(chǔ)器系統(tǒng)32,加上必要的變更,用于每個(gè)周期執(zhí)行任何其他合適數(shù)目的讀取命令以及任何其他合適數(shù)目的寫(xiě)入命令。例如2015年12月9日提交的美國(guó)專(zhuān)利申請(qǐng)14/964,219中解決了存儲(chǔ)器命令的并行執(zhí)行的另外的方面,其被受讓給本專(zhuān)利申請(qǐng)的受讓人并且其公開(kāi)通過(guò)引用合并于此。

網(wǎng)絡(luò)元件20和存儲(chǔ)器系統(tǒng)32的不同元件通常使用專(zhuān)用硬件來(lái)實(shí)現(xiàn),諸如使用一個(gè)或多個(gè)專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和/或RF集成電路(RFIC)來(lái)實(shí)現(xiàn)。備選地,網(wǎng)絡(luò)元件20和/或存儲(chǔ)器系統(tǒng)32的一些元件(例如控制單元50(也稱(chēng)為控制邏輯)或其部分)可以使用在可編程硬件上執(zhí)行的軟件或者使用硬件和軟件元素的組合來(lái)實(shí)現(xiàn)。為了清楚而從附圖中省略了對(duì)于理解所公開(kāi)的技術(shù)而言并非強(qiáng)制的網(wǎng)絡(luò)元件20和存儲(chǔ)器系統(tǒng)的元件

雖然本文中所描述的實(shí)施例主要涉及網(wǎng)絡(luò)元件的上下文中的數(shù)據(jù)存儲(chǔ),然而所公開(kāi)的技術(shù)不限于這樣的應(yīng)用。本文中所描述的方法和系統(tǒng)適用于涉及數(shù)據(jù)存儲(chǔ)的各種備選應(yīng)用。

在使用可編程處理器上的軟件來(lái)實(shí)現(xiàn)所公開(kāi)的技術(shù)時(shí),可以將軟件通過(guò)網(wǎng)絡(luò)下載到電子形式的處理器中,或者,備選地或者另外地,可以提供和/或?qū)⑵浯鎯?chǔ)在非暫態(tài)有形介質(zhì)上,諸如磁性、光學(xué)或電子存儲(chǔ)器中。

在一些實(shí)施例中,存儲(chǔ)器系統(tǒng)32的控制單元50在每個(gè)時(shí)鐘周期從客戶(hù)端28接收最高達(dá)兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令用于執(zhí)行。每個(gè)寫(xiě)入命令向存儲(chǔ)器系統(tǒng)32提供數(shù)據(jù)字,用于存儲(chǔ)。每個(gè)讀取命令請(qǐng)求數(shù)據(jù)字的讀出。

與傳統(tǒng)的存儲(chǔ)方案相比較,在所公開(kāi)的實(shí)施例中,客戶(hù)端28沒(méi)有規(guī)定要存儲(chǔ)數(shù)據(jù)的地址。相反,由控制單元50來(lái)選擇每個(gè)數(shù)據(jù)字在存儲(chǔ)器條36中的存儲(chǔ)位置。

通常,來(lái)自客戶(hù)端28的寫(xiě)入命令僅規(guī)定要存儲(chǔ)的數(shù)據(jù)字而沒(méi)有地址。作為處理寫(xiě)入命令的部分,單元50在存儲(chǔ)器條36之一中選擇用于存儲(chǔ)數(shù)據(jù)字的可用物理存儲(chǔ)位置。所選擇的物理存儲(chǔ)位置用相應(yīng)物理標(biāo)識(shí)符(PID)來(lái)識(shí)別。如果沒(méi)有PID可用于執(zhí)行寫(xiě)入命令,則單元50通常向客戶(hù)端返回發(fā)出命令的背壓。

通常,空閑條目FIFO(FEF)48A-48D保持當(dāng)前可用于存儲(chǔ)的對(duì)應(yīng)行38A-38D中的存儲(chǔ)器條36中的PID的相應(yīng)列表??刂茊卧?0向客戶(hù)端38通知數(shù)據(jù)字已經(jīng)存儲(chǔ)在其中的PID,例如在確認(rèn)寫(xiě)入命令的成功完成的確認(rèn)消息中。當(dāng)這一數(shù)據(jù)字在稍后被檢索時(shí),客戶(hù)端28向存儲(chǔ)器系統(tǒng)32發(fā)出規(guī)定這一PID的讀取命令。

以上描述的基于PID的尋址機(jī)制例如適合用于存儲(chǔ)和檢索布置成動(dòng)態(tài)鏈接列表(DLL)的數(shù)據(jù)字,但是通常適用于任何其他類(lèi)型的數(shù)據(jù)。注意,這一尋址機(jī)制通常不涉及從虛擬或邏輯地址到物理地址的任何種類(lèi)的轉(zhuǎn)換。存儲(chǔ)器系統(tǒng)32和客戶(hù)端28僅使用由多個(gè)PID值定義的單個(gè)地址空間。

在實(shí)施例中,為了能夠在每個(gè)時(shí)鐘周期中執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令,控制單元50采用以下機(jī)制(下面進(jìn)一步詳細(xì)解釋):

■根據(jù)命令中規(guī)定的PID執(zhí)行第一讀取命令。如果第二讀取命令訪(fǎng)問(wèn)與第一讀取命令相同的存儲(chǔ)器條,則使用行的其他存儲(chǔ)器條36以及XOR條40重構(gòu)第二讀取命令的數(shù)據(jù)。

■在沒(méi)有被讀取命令訪(fǎng)問(wèn)的行中選擇用于寫(xiě)入命令的存儲(chǔ)位置。

■按照寫(xiě)入命令,更新和高速緩存適當(dāng)?shù)腦OR字,并且在具有到同一行的寫(xiě)入命令的隨后的時(shí)鐘周期中將其存儲(chǔ)在XOR條40中。

圖3是示意性地圖示根據(jù)本文中所描述的實(shí)施例的用于在同一時(shí)鐘周期中執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令的方法的流程圖。方法以控制單元50在命令輸入操作60處接收第一讀取命令和第二讀取命令以及第一寫(xiě)入命令和第二寫(xiě)入命令開(kāi)始。四個(gè)命令(兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令)全部要在同一時(shí)鐘周期中執(zhí)行。

在第一讀取執(zhí)行操作64處,控制單元50在規(guī)定的存儲(chǔ)器條36中執(zhí)行第一讀取命令。控制單元50通常從第一讀取命令提取PID,從由這一PID識(shí)別的存儲(chǔ)位置讀取數(shù)據(jù)字,并且向請(qǐng)求客戶(hù)端28提供數(shù)據(jù)字。

在沖突檢查操作68處,控制單元50檢查第二讀取命令是否與第一讀取命令訪(fǎng)問(wèn)相同的存儲(chǔ)器條36。如果第二讀取命令訪(fǎng)問(wèn)不同的存儲(chǔ)器條36,則控制單元50在正常的讀取執(zhí)行操作72處按照第二讀取命令中規(guī)定的PID在該存儲(chǔ)器條中執(zhí)行第二讀取命令??刂茊卧?0同城從第二讀取命令提取PID,從由該P(yáng)ID識(shí)別的存儲(chǔ)位置讀取數(shù)據(jù)字,并且向請(qǐng)求客戶(hù)端28提供數(shù)據(jù)字。

另一方面,如果操作68識(shí)別出第二讀取命令訪(fǎng)問(wèn)與第一存儲(chǔ)器條相同的存儲(chǔ)器條,則控制單元50不能在同一時(shí)鐘周期訪(fǎng)問(wèn)該存儲(chǔ)器條。相反控制單元50在重構(gòu)操作76處重構(gòu)第二讀取命令請(qǐng)求的數(shù)據(jù)字??刂茊卧ㄟ^(guò)計(jì)算同一條帶中的其余數(shù)據(jù)字的逐比特XOR(存儲(chǔ)在同一行中的其他存儲(chǔ)器條36上)以及條帶的XOR字(存儲(chǔ)在這一行的XOR條中)來(lái)重構(gòu)第二讀取命令請(qǐng)求的數(shù)據(jù)字??刂茊卧?0向請(qǐng)求客戶(hù)端28提供所重構(gòu)的數(shù)據(jù)字。

在行選擇操作80處,控制單元選擇分別要在其中執(zhí)行第一寫(xiě)入命令和第二寫(xiě)入命令的不同的第一行和第二行。由于存儲(chǔ)器系統(tǒng)32包括四個(gè)行38A-38D,即使第一讀取命令和第二讀取命令訪(fǎng)問(wèn)兩個(gè)不同的行,兩個(gè)行仍然可用于執(zhí)行寫(xiě)入命令。

在一些實(shí)施例中,控制單元50使用某個(gè)預(yù)定的選擇準(zhǔn)則從沒(méi)有被讀取命令訪(fǎng)問(wèn)的行中用于執(zhí)行寫(xiě)入命令的行。例如,如果兩個(gè)讀取命令訪(fǎng)問(wèn)相同的行,如果僅一個(gè)寫(xiě)入命令被接收到,或者在總共具有多與四個(gè)行的備選實(shí)現(xiàn)中,執(zhí)行選擇。在示例實(shí)施例中,控制單元50選擇具有最大數(shù)目的可用空閑存儲(chǔ)位置(即FEF 48A-48D中具有最大數(shù)目的空閑PID)的行。

在PID分配操作84處,控制單元在所選擇的行之一中的存儲(chǔ)器條36之一中分配用于第一寫(xiě)入命令的存儲(chǔ)位置以及在其他所選擇的行的存儲(chǔ)器條36之一中分配用于第二寫(xiě)入命令的存儲(chǔ)位置??刂茊卧ㄟ^(guò)查找所選擇的行的FEF中列出的可用PID來(lái)選擇存儲(chǔ)位置。

在寫(xiě)入執(zhí)行操作88處,控制單元50在所選擇的存儲(chǔ)位置寫(xiě)入第一和第二寫(xiě)入命令的數(shù)據(jù)字??刂茊卧?0向請(qǐng)求客戶(hù)端28通知針對(duì)寫(xiě)入命令選擇的PID,用于在隨后的數(shù)據(jù)字檢索時(shí)使用,并且從FEF中去除這些PID。

在XOR更新操作92處,控制單元50要向其寫(xiě)入兩個(gè)寫(xiě)入命令的條帶的XOR字。在實(shí)施例中,控制單元50通過(guò)在現(xiàn)有的XOR字與條帶的現(xiàn)有的數(shù)據(jù)字之間執(zhí)行逐比特XOR來(lái)計(jì)算已更新XOR字。在本時(shí)鐘周期,控制單元50沒(méi)有向XOR條40存儲(chǔ)已更新XOR字,因?yàn)閄OR條已經(jīng)在這一時(shí)鐘周期被寫(xiě)入用于更新在前一時(shí)鐘周期計(jì)算的高速緩存的XOR字。相反,控制單元50在行的高速緩存存儲(chǔ)器中高速緩存已更新XOR字,并且在包括到行的寫(xiě)入命令的隨后的時(shí)鐘周期中將已更新XOR字復(fù)制到XOR條。

因此,在一些實(shí)施例中,控制單元50按照三階段流水線(xiàn)過(guò)程來(lái)執(zhí)行每個(gè)寫(xiě)入命令(操作88和92):

■階段1:向所選擇的功能存儲(chǔ)器條36的所挑選的存儲(chǔ)位置寫(xiě)入在寫(xiě)入命令中提供的數(shù)據(jù)。在同一時(shí)鐘周期,讀取相同的條帶中的其他數(shù)據(jù)字(從同一行的其他功能存儲(chǔ)器條36)。另外,在同一時(shí)鐘周期,向XOR條寫(xiě)入來(lái)自高速緩存的數(shù)據(jù)(如果高速緩存中的數(shù)據(jù)有效)(來(lái)自前一寫(xiě)入命令的XOR字)。

■階段2(下一時(shí)鐘周期中):根據(jù)現(xiàn)有的數(shù)據(jù)字以及條帶的XOR字計(jì)算已更新XOR字。向行的高速緩存存儲(chǔ)器寫(xiě)入已更新XOR字。

■階段3(在具有到同一行的新的寫(xiě)入命令的某個(gè)稍后的時(shí)鐘周期):向XOR條寫(xiě)入來(lái)自高速緩存存儲(chǔ)器的已更新XOR字。

圖3的方法是僅出于清楚目的而描繪的示例方法。在備選實(shí)施例中,控制單元50可以使用任何其他合適的方法來(lái)執(zhí)行所公開(kāi)的技術(shù)。例如,圖3的流程涉及其中要在同一時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令的最差情況場(chǎng)景。如果在給定時(shí)鐘周期接收到更少命令,則省略或簡(jiǎn)化圖3的操作中的一些操作。例如,如果僅接收到一個(gè)讀取命令,則省略操作68-76。如果僅接收到一個(gè)寫(xiě)入命令,則操作80-92被簡(jiǎn)化并且僅涉及單個(gè)行。

雖然本文中所描述的實(shí)施例主要解決用于每個(gè)時(shí)鐘周期執(zhí)行兩個(gè)讀取命令和兩個(gè)寫(xiě)入命令的具有四個(gè)存儲(chǔ)器條的行的存儲(chǔ)器系統(tǒng)。然而,所公開(kāi)的技術(shù)可以用于每個(gè)時(shí)鐘周期執(zhí)行更大數(shù)目的讀取命令和/或更大數(shù)目的寫(xiě)入命令。例如,增加每個(gè)行的XOR條的數(shù)目,或者使用更復(fù)雜的冗余方案,使得能夠每個(gè)時(shí)鐘周期執(zhí)行更大數(shù)目的讀取命令,即使多個(gè)讀取命令試圖訪(fǎng)問(wèn)同一功能存儲(chǔ)器條。增加行的數(shù)目使得每個(gè)時(shí)鐘周期能夠執(zhí)行更大數(shù)目的寫(xiě)入命令。增加每個(gè)周期的讀取和/或?qū)懭朊畹臄?shù)目的另一途徑是使用具有多于單個(gè)端口的功能存儲(chǔ)器條。例如,使用雙端口功能存儲(chǔ)器條實(shí)現(xiàn)所公開(kāi)的技術(shù)使得能夠每個(gè)時(shí)鐘周期執(zhí)行四個(gè)讀取命令和四個(gè)寫(xiě)入命令。

注意,以上描述的實(shí)施例被給出作為示例,并且本發(fā)明不限于上文中特別示出和描述的內(nèi)容。相反,本發(fā)明的范圍包括上文中所描述的各種特征的組合和子組合以及本領(lǐng)域技術(shù)人員在閱讀以上描述時(shí)能夠想到并且現(xiàn)有技術(shù)中未公開(kāi)的其變型和修改。通過(guò)應(yīng)用合并在本專(zhuān)利申請(qǐng)中的文檔應(yīng)當(dāng)被認(rèn)為是本申請(qǐng)的組成部分,除非是在這些所合并的文檔中以與本說(shuō)明書(shū)中明確地或者隱含地做出的定義相沖突的方式定義有任何術(shù)語(yǔ),應(yīng)當(dāng)僅考慮本說(shuō)明書(shū)中的定義。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
沭阳县| 杭锦后旗| 息烽县| 遵义县| 蛟河市| 罗平县| 天峨县| 饶阳县| 赤水市| 高淳县| 庆云县| 从化市| 远安县| 峨眉山市| 和林格尔县| 民和| 辽宁省| 云浮市| 乐平市| 广平县| 望谟县| 东台市| 包头市| 盐山县| 宽甸| 福建省| 政和县| 济宁市| 渝中区| 西平县| 房山区| 双城市| 商水县| 栾城县| 嘉义市| 开原市| 兴安县| 九江县| 珲春市| 南靖县| 浪卡子县|