專(zhuān)利名稱(chēng):有效地共享網(wǎng)絡(luò)處理器中的存儲(chǔ)器帶寬的設(shè)備和方法
技術(shù)領(lǐng)域:
一般而言,本發(fā)明涉及計(jì)算機(jī)和網(wǎng)絡(luò)處理器,具體來(lái)說(shuō),涉及與所說(shuō)的計(jì)算機(jī)和網(wǎng)絡(luò)處理器一起使用的存儲(chǔ)系統(tǒng)。
背景技術(shù):
使用諸如交換機(jī)、網(wǎng)橋、計(jì)算機(jī)、網(wǎng)絡(luò)處理器等等之類(lèi)的網(wǎng)絡(luò)設(shè)備在通信網(wǎng)絡(luò)內(nèi)傳遞信息在現(xiàn)有技術(shù)中已為大家所熟知。對(duì)這些設(shè)備的要求之一是它們需要傳送常常被稱(chēng)為“帶寬”的數(shù)據(jù)。
為滿(mǎn)足高帶寬要求,給設(shè)備配備了專(zhuān)用信道。專(zhuān)用信道是帶有高帶寬,用于在一個(gè)單流中傳輸大量數(shù)據(jù)的信道,與在一個(gè)單物理鏈路上傳送多個(gè)較低的帶寬數(shù)據(jù)流的信道化鏈路相反。
為了給專(zhuān)用信道提供充足的數(shù)據(jù)供給源,需要高速存儲(chǔ)子系統(tǒng)。諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)之類(lèi)的高速存儲(chǔ)系統(tǒng)可用于滿(mǎn)足高帶寬要求。但這些存儲(chǔ)器比較昂貴,結(jié)果,增大了使用了這些存儲(chǔ)器的設(shè)備的價(jià)格。如果使用這樣的高價(jià)存儲(chǔ)器來(lái)制造計(jì)算機(jī)和網(wǎng)絡(luò)處理器的存儲(chǔ)系統(tǒng),那么,成本問(wèn)題會(huì)進(jìn)一步惡化。
除了價(jià)格昂貴之外,現(xiàn)有技術(shù)的高速度存儲(chǔ)器密度也比較低。它們只能存儲(chǔ)有限量的數(shù)據(jù)。然而,大多數(shù)的應(yīng)用,特別是那些與因特網(wǎng)及其他技術(shù)相關(guān)的應(yīng)用都需要高密度存儲(chǔ)器或存儲(chǔ)系統(tǒng)。結(jié)果,甚至現(xiàn)有技術(shù)的高速度存儲(chǔ)器也不能適用于許多應(yīng)用場(chǎng)合。
發(fā)明內(nèi)容
相應(yīng)地,本發(fā)明提供了一種優(yōu)化存儲(chǔ)器利用的方法,包括下列操作在存儲(chǔ)器判優(yōu)器中接收許多存儲(chǔ)器存取請(qǐng)求,至少一個(gè)存儲(chǔ)器存取請(qǐng)求與指定優(yōu)先級(jí)關(guān)聯(lián)(指定優(yōu)先級(jí)可以與請(qǐng)求一起到達(dá),或者在到達(dá)之后指定);由所說(shuō)的存儲(chǔ)器判優(yōu)器分析具有特定優(yōu)先級(jí)的存儲(chǔ)器存取請(qǐng)求,以判斷所需的存儲(chǔ)器帶寬的大??;如果帶有特定優(yōu)先級(jí)的存儲(chǔ)器請(qǐng)求不需要全部存儲(chǔ)器帶寬,則與至少一個(gè)另外的請(qǐng)求共享存儲(chǔ)器存取。
優(yōu)選情況下,提供了成本低而密度高的高速度存儲(chǔ)器。本文檔中使用的高速度存儲(chǔ)器優(yōu)選情況下具有大帶寬(BW),在相對(duì)比較短的時(shí)間間隔內(nèi)提供大量數(shù)據(jù)。
優(yōu)選情況下,具有特定優(yōu)先級(jí)的存儲(chǔ)器存取請(qǐng)求被允許利用全部存儲(chǔ)器帶寬,如果該存儲(chǔ)器請(qǐng)求需要全部存儲(chǔ)器帶寬的話(huà)。在一個(gè)實(shí)施例中,特定優(yōu)先級(jí)是最高的。
優(yōu)選情況下,提供了在至少一個(gè)切片中排列了多個(gè)緩沖區(qū)的存儲(chǔ)器,至少一個(gè)切片中的每個(gè)緩沖區(qū)都分區(qū)為多個(gè)四倍字長(zhǎng),其特征在于,存儲(chǔ)器請(qǐng)求從多個(gè)請(qǐng)求者中尋求對(duì)至少一個(gè)切片的存取。
優(yōu)選情況下,提供了成本低而密度高的高速度存儲(chǔ)器。本文檔中使用的高速度存儲(chǔ)器優(yōu)選情況下具有大帶寬(BW),在相對(duì)比較短的時(shí)間間隔內(nèi)提供大量數(shù)據(jù)。
優(yōu)選情況下,本發(fā)明包括使用所說(shuō)的存儲(chǔ)系統(tǒng)優(yōu)化資源對(duì)存儲(chǔ)系統(tǒng)的利用的方法。具體來(lái)說(shuō),來(lái)自多個(gè)請(qǐng)求者的請(qǐng)求、讀取或?qū)懭雰?yōu)選情況下被捆在一起,以便對(duì)于每個(gè)存儲(chǔ)器存取周期,讀取或?qū)懭胱畲笤试S的信息單位。這樣一來(lái),信息吞吐量被提高,從而可以使用用于制造計(jì)算機(jī)網(wǎng)絡(luò)處理器或類(lèi)似的設(shè)備的存儲(chǔ)器的成本相對(duì)比較低,密度高,比較慢存取的時(shí)間存儲(chǔ)器(如,DDR DRAM)。
根據(jù)優(yōu)選實(shí)施例,請(qǐng)求者(即,存儲(chǔ)器存取請(qǐng)求的請(qǐng)求者)包括網(wǎng)絡(luò)處理器或類(lèi)似的設(shè)備中的接收控制器、嵌入式處理器復(fù)合體(EPC)控制器和傳輸控制器。優(yōu)選情況下,存儲(chǔ)系統(tǒng)包括許多由DDR DRAM模塊構(gòu)成的緩沖區(qū),這些模塊被組織成為叫做“切片”的組。每個(gè)DDR DRAM優(yōu)選情況下被分區(qū)為許多緩沖區(qū)(1到N),并由DRAM控制器進(jìn)行控制。每個(gè)緩沖區(qū)優(yōu)選情況下被分區(qū)為叫做“四倍字長(zhǎng)”的部分。在一個(gè)實(shí)施例中,緩沖區(qū)被分區(qū)為四倍字長(zhǎng)A、B、C、D。緩沖區(qū)和緩沖區(qū)中的四倍字長(zhǎng)都是可尋址的。
根據(jù)優(yōu)選實(shí)施例,存儲(chǔ)器判優(yōu)器監(jiān)視來(lái)自接收控制器、EPC控制器和傳輸控制器的請(qǐng)求。存儲(chǔ)器判優(yōu)器優(yōu)選情況下使用請(qǐng)求來(lái)構(gòu)成存儲(chǔ)器的每個(gè)切片的存儲(chǔ)器存取向量。對(duì)于讀取要求,存儲(chǔ)器存取優(yōu)先級(jí)優(yōu)選情況下被給予傳輸控制器。如果來(lái)自傳輸控制器的請(qǐng)求需要全部存儲(chǔ)器帶寬,則存儲(chǔ)器存取向量?jī)?yōu)選情況下只基于傳輸控制器請(qǐng)求。如果傳輸控制器不需要全部存儲(chǔ)器帶寬,則EPC控制器的任何掛起的讀取要求優(yōu)選情況下與來(lái)自傳輸控制器的請(qǐng)求合并,以構(gòu)成每個(gè)切片的存儲(chǔ)器存取向量。響應(yīng)存儲(chǔ)器存取向量的DRAM控制器優(yōu)選情況下輸出包含傳輸控制器的數(shù)據(jù)(如果請(qǐng)求了數(shù)據(jù)的全緩沖)或者傳輸控制器和EPC的數(shù)據(jù)(如果發(fā)射器沒(méi)有請(qǐng)求全緩沖)的信息的全緩沖。實(shí)質(zhì)上,由于傳輸控制器沒(méi)有請(qǐng)求數(shù)據(jù)的全緩沖所導(dǎo)致的任何多余容量?jī)?yōu)選情況下分配給EPC控制器。
根據(jù)寫(xiě)入請(qǐng)求的優(yōu)選實(shí)施例,判優(yōu)器為接收控制器提供優(yōu)先權(quán)。同樣,接收控制器沒(méi)有請(qǐng)求全緩沖有效負(fù)載的任何寫(xiě)入請(qǐng)求優(yōu)選情況下都用來(lái)自EPC的數(shù)據(jù)增加。
結(jié)果,優(yōu)選情況下,總是在每個(gè)存儲(chǔ)器存取上寫(xiě)入或讀取數(shù)據(jù)的全緩沖。
根據(jù)另一個(gè)方面,本發(fā)明提供一種網(wǎng)絡(luò)處理器,包括用于存儲(chǔ)信息的存儲(chǔ)系統(tǒng);以及可操作地耦合到所說(shuō)的存儲(chǔ)系統(tǒng)的用于給予存取權(quán)的存儲(chǔ)器判優(yōu)器;所說(shuō)的存儲(chǔ)器判優(yōu)器包括一個(gè)或多個(gè)在其中接收存儲(chǔ)器存取請(qǐng)求的請(qǐng)求寄存器,至少一個(gè)用于存儲(chǔ)請(qǐng)求者的優(yōu)先級(jí)的優(yōu)先級(jí)寄存器,可操作地耦合到請(qǐng)求寄存器和優(yōu)先級(jí)寄存器的控制器,所說(shuō)的控制器包括電路,用于監(jiān)視請(qǐng)求和請(qǐng)求優(yōu)先級(jí)以生成存儲(chǔ)器存取向量,其中,如果優(yōu)先級(jí)最高的請(qǐng)求沒(méi)有要求全帶寬,則允許優(yōu)先級(jí)最高的請(qǐng)求至少與一個(gè)另外的存儲(chǔ)器請(qǐng)求共享存儲(chǔ)器帶寬。
根據(jù)一個(gè)實(shí)施例,提供了一種優(yōu)化存儲(chǔ)器的利用的方法,包括下列操作a)提供在至少一個(gè)切片中排列了多個(gè)緩沖區(qū)的存儲(chǔ)器,所說(shuō)的至少一個(gè)切片中的每個(gè)緩沖區(qū)都分區(qū)為多個(gè)四倍字長(zhǎng);b)在存儲(chǔ)器判優(yōu)器中從多個(gè)請(qǐng)求者接受尋求對(duì)至少一個(gè)切片的存取的多個(gè)存儲(chǔ)器請(qǐng)求;c)由所說(shuō)的存儲(chǔ)器判優(yōu)器為每一個(gè)請(qǐng)求指定預(yù)先確定的優(yōu)先級(jí);d)由所說(shuō)的存儲(chǔ)器判優(yōu)器分析優(yōu)先級(jí)最高的請(qǐng)求,以檢測(cè)所說(shuō)的優(yōu)先級(jí)最高的請(qǐng)求所需的存儲(chǔ)器帶寬的百分比;以及e)如果優(yōu)先級(jí)最高的請(qǐng)求不需要全部存儲(chǔ)器帶寬,則與優(yōu)先級(jí)較低的請(qǐng)求共享存儲(chǔ)器存取。
根據(jù)一個(gè)實(shí)施例,提供了一種優(yōu)化存儲(chǔ)器的利用的方法,包括下列操作a)提供在至少一個(gè)切片中排列了多個(gè)緩沖區(qū)的存儲(chǔ)器,所說(shuō)的至少一個(gè)切片中的每個(gè)緩沖區(qū)都分區(qū)為多個(gè)四倍字長(zhǎng);b)在存儲(chǔ)器判優(yōu)器中從多個(gè)請(qǐng)求者接受尋求對(duì)至少一個(gè)切片的存取的多個(gè)存儲(chǔ)器請(qǐng)求;c)由所說(shuō)的存儲(chǔ)器判優(yōu)器為每一個(gè)請(qǐng)求指定預(yù)先確定的優(yōu)先級(jí);以及d)由所說(shuō)的存儲(chǔ)器判優(yōu)器分析優(yōu)先級(jí)最高的請(qǐng)求,以檢測(cè)所說(shuō)的優(yōu)先級(jí)最高的請(qǐng)求所需的存儲(chǔ)器帶寬的百分比;以及e)如果優(yōu)先級(jí)最高的請(qǐng)求需要全部存儲(chǔ)器帶寬,則允許所說(shuō)的優(yōu)先級(jí)最高的請(qǐng)求利用全部存儲(chǔ)器帶寬,如果所說(shuō)的優(yōu)先級(jí)最高的請(qǐng)求沒(méi)有要求全部存儲(chǔ)器帶寬,則與優(yōu)先級(jí)較低的請(qǐng)求共享存儲(chǔ)器帶寬。
優(yōu)選情況下,多個(gè)請(qǐng)求者包括在網(wǎng)絡(luò)處理器內(nèi)在操作上耦合的接收控制器、傳輸控制器和嵌入式處理器復(fù)合體(EPC)控制器。在一個(gè)實(shí)施例中,傳輸控制器具有最高優(yōu)先級(jí)。接收控制器可以具有次最高優(yōu)先級(jí)。
在一個(gè)實(shí)施例中,EPC與傳輸控制器或接收控制器共享存儲(chǔ)器帶寬。請(qǐng)求可以包括讀取和寫(xiě)入。在一個(gè)實(shí)施例中,讀取請(qǐng)求是由傳輸控制器生成的。在一個(gè)實(shí)施例中,寫(xiě)入請(qǐng)求由接收控制器提供。讀取和寫(xiě)入請(qǐng)求也可能由EPC控制器提供。
根據(jù)一個(gè)實(shí)施例,提供了一種優(yōu)化存儲(chǔ)器利用的方法,包括下列操作在存儲(chǔ)器判優(yōu)器中接收許多存儲(chǔ)器存取請(qǐng)求;在所說(shuō)的存儲(chǔ)器判優(yōu)器中為至少一個(gè)存儲(chǔ)器存取請(qǐng)求指定優(yōu)先級(jí);由所說(shuō)的存儲(chǔ)器判優(yōu)器分析具有指定優(yōu)先級(jí)的存儲(chǔ)器存取請(qǐng)求,以判斷所需的存儲(chǔ)器帶寬的大??;以及如果帶有指定優(yōu)先級(jí)的所說(shuō)的存儲(chǔ)器請(qǐng)求需要全部存儲(chǔ)器帶寬,則允許具有指定優(yōu)先級(jí)的存儲(chǔ)器存取請(qǐng)求利用全部存儲(chǔ)器帶寬,或者,如果具有指定優(yōu)先級(jí)的所說(shuō)的存儲(chǔ)器存取請(qǐng)求沒(méi)有要求全部存儲(chǔ)器帶寬,則與其他請(qǐng)求共享存儲(chǔ)器帶寬。
優(yōu)選情況下,指定優(yōu)先級(jí)是最高的。在一個(gè)實(shí)施例中,共享進(jìn)一步包括將優(yōu)先級(jí)最高的請(qǐng)求的存儲(chǔ)器帶寬與優(yōu)先級(jí)較低的請(qǐng)求的存儲(chǔ)器帶寬合并。
根據(jù)一個(gè)實(shí)施例,提供了一種網(wǎng)絡(luò)處理器,該網(wǎng)絡(luò)處理器包括用于存儲(chǔ)信息的存儲(chǔ)系統(tǒng);以及可操作地耦合到所說(shuō)的存儲(chǔ)系統(tǒng)的給予存取權(quán)的存儲(chǔ)器判優(yōu)器;所說(shuō)的存儲(chǔ)器判優(yōu)器包括一個(gè)或多個(gè)在其中接收存儲(chǔ)器存取請(qǐng)求的請(qǐng)求寄存器,至少一個(gè)用于存儲(chǔ)請(qǐng)求者的優(yōu)先級(jí)的優(yōu)先級(jí)寄存器,可操作地耦合到請(qǐng)求寄存器和優(yōu)先級(jí)寄存器的第一控制器,所說(shuō)的控制器包括電路,用于監(jiān)視請(qǐng)求和請(qǐng)求優(yōu)先級(jí)以生成存儲(chǔ)器存取向量,其中,如果優(yōu)先級(jí)最高的請(qǐng)求要求利用全部存儲(chǔ)器帶寬,則允許所說(shuō)的優(yōu)先級(jí)最高的請(qǐng)求這樣做,或者生成存儲(chǔ)器存取請(qǐng)求,其中,優(yōu)先級(jí)最高的請(qǐng)求和優(yōu)先級(jí)較低的請(qǐng)求共享全部存儲(chǔ)器帶寬。
優(yōu)選情況下,存儲(chǔ)系統(tǒng)包括在至少一個(gè)切片中排列的許多緩沖區(qū),每個(gè)緩沖區(qū)被分區(qū)為四倍字長(zhǎng)。優(yōu)選情況下,每個(gè)切片都可操作地耦合到至少一個(gè)緩沖區(qū)控制器。優(yōu)選情況下,每個(gè)緩沖區(qū)都是64字節(jié),被分區(qū)為四個(gè)四倍字長(zhǎng),每個(gè)四倍字長(zhǎng)都是16字節(jié)。每個(gè)切片都可以由DDR DRAM制成。
優(yōu)選情況下,進(jìn)一步提供可操作地耦合到存儲(chǔ)器判優(yōu)器的接收控制器。還可以有可操作地耦合到所說(shuō)的存儲(chǔ)器判優(yōu)器的傳輸控制器。還可以有可操作地耦合到存儲(chǔ)器判優(yōu)器的嵌入式處理器復(fù)合體EPC。優(yōu)選情況下,在包括傳輸控制器的實(shí)施例中還有可操作地耦合到傳輸控制器的調(diào)度器。
在一個(gè)實(shí)施例中,第一控制器有選擇地執(zhí)行下列步驟,以構(gòu)建緩沖存儲(chǔ)器存取向量a)排除被計(jì)劃為刷新周期的切片(由每個(gè)DRAM控制器指出);b)為傳輸控制器的所有R(讀取)請(qǐng)求分配切片;c)從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充R存取;d)為全局W(寫(xiě)入)排除的切片分配給EPC的切片(例如,切片由所有切片排除規(guī)則從接收器中排除);e)從最后一個(gè)分配的切片(在上一窗口分配給接收控制器的切片)開(kāi)始在非排除的切片之間以RR(循環(huán)復(fù)用)方式向W請(qǐng)求分配切片;f)從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充W存?。灰约案鶕?jù)由權(quán)重表示的優(yōu)先級(jí)向EPC請(qǐng)求分配切片。
根據(jù)一個(gè)實(shí)施例,提供了一種設(shè)備,該設(shè)備包括分區(qū)為N個(gè)扇區(qū)的存儲(chǔ)器,N大于1;以及可操作地耦合到所說(shuō)的存儲(chǔ)器的存儲(chǔ)器判優(yōu)器控制器;所說(shuō)的存儲(chǔ)器判優(yōu)器控制器接收至少兩個(gè)存儲(chǔ)器存取請(qǐng)求,為所說(shuō)的請(qǐng)求指定存儲(chǔ)器存取優(yōu)先級(jí),分析所說(shuō)的請(qǐng)求的被選請(qǐng)求,以判斷所說(shuō)的存儲(chǔ)器請(qǐng)求的所說(shuō)的被選請(qǐng)求是否在特定的存儲(chǔ)器存取周期使用全部存儲(chǔ)器帶寬,如果請(qǐng)求了全部存儲(chǔ)器帶寬,則生成向所說(shuō)的請(qǐng)求的被選請(qǐng)求分配全部存儲(chǔ)器帶寬的存儲(chǔ)器存取向量,如果不使用全部存儲(chǔ)器帶寬,則與另一個(gè)請(qǐng)求共享存儲(chǔ)器帶寬。
根據(jù)一個(gè)實(shí)施例,提供了一種存取存儲(chǔ)器的方法,包括下列操作a)在存儲(chǔ)器判優(yōu)器中接收來(lái)自第一請(qǐng)求者的讀取請(qǐng)求,所說(shuō)的讀取請(qǐng)求包括標(biāo)識(shí)從中讀取數(shù)據(jù)的存儲(chǔ)器的一部分的信息;b)判斷要返回的數(shù)據(jù)是否使用了所有可用存儲(chǔ)器帶寬;以及c)如果第一請(qǐng)求者沒(méi)有使用全部存儲(chǔ)器帶寬,則用第二請(qǐng)求者的數(shù)據(jù)補(bǔ)充第一請(qǐng)求者的要返回的數(shù)據(jù)。
根據(jù)一個(gè)實(shí)施例,提供了一種方法,包括下列操作a)在判優(yōu)器中接收來(lái)自尋求對(duì)存儲(chǔ)器進(jìn)行存取的第一請(qǐng)求者的請(qǐng)求;b)判斷由于所說(shuō)的請(qǐng)求而將要使用多大的存儲(chǔ)器帶寬;c)如果步驟b)中的判斷指出要使用全部存儲(chǔ)器帶寬,則向第一請(qǐng)求者分配全部存儲(chǔ)器帶寬;d)如果步驟b)中的判斷指出第一請(qǐng)求者不使用全部存儲(chǔ)器帶寬,則用第二請(qǐng)求者請(qǐng)求的帶寬使用量補(bǔ)充第一請(qǐng)求者的帶寬使用量。
請(qǐng)求可以是讀取或?qū)懭?。?yōu)選情況下,第二請(qǐng)求者包括EPC(嵌入式處理器復(fù)合體)。優(yōu)選情況下,第一請(qǐng)求者包括接收控制器。
可以理解,如前所述的內(nèi)容可以作為計(jì)算機(jī)程序來(lái)實(shí)施。
下面將參考下面的附圖,只作為示例,對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行描述圖1A顯示了可以在上面使用本發(fā)明的優(yōu)選實(shí)施例的網(wǎng)絡(luò)處理器的方框圖。
圖1B顯示了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的原理的網(wǎng)絡(luò)處理器請(qǐng)求者和存儲(chǔ)系統(tǒng)的方框圖。
圖2顯示了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的原理的存儲(chǔ)器判優(yōu)器的方框圖。
圖3根據(jù)本發(fā)明的優(yōu)選實(shí)施例顯示了說(shuō)明傳輸控制器使用了全帶寬的讀取請(qǐng)求的功能方框圖。
圖4根據(jù)本發(fā)明的優(yōu)選實(shí)施例顯示了其中存取同一切片中的不同的緩沖區(qū)并分配給不同的目標(biāo)端口(TP)FIFO緩沖區(qū)的讀取請(qǐng)求的功能方框圖。該圖還可以用于說(shuō)明根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)將在相反的方向流動(dòng)的寫(xiě)入請(qǐng)求。
圖5根據(jù)本發(fā)明的優(yōu)選實(shí)施例顯示了其中存取不同的切片中的不同的緩沖區(qū)并向EPC控制器分配一個(gè)四倍字長(zhǎng)的讀取請(qǐng)求的功能方框圖。
圖6顯示了存儲(chǔ)器判優(yōu)器的另一個(gè)實(shí)施例。
圖7顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的寫(xiě)入或讀取操作中使用的算法的流程圖。
具體實(shí)施例方式
圖1A顯示了在上面實(shí)施了下面闡述的本發(fā)明的優(yōu)選實(shí)施例的網(wǎng)絡(luò)處理器(NP)的方框圖。網(wǎng)絡(luò)處理器包括入口端10和出口端12。入口端10和出口端12對(duì)稱(chēng)于假想軸AA。存取入口端10的數(shù)據(jù)流量在Flexbus 4上或WRAP傳輸線(xiàn)上進(jìn)入,并在交換機(jī)接口10′退出。同樣,進(jìn)入出口端12的數(shù)據(jù)在交換機(jī)接口12′上進(jìn)入,并在標(biāo)記為Flexbus 4′的導(dǎo)體上退出。Flexbus 4、4′和交換機(jī)接口(Int)10′、12′可以被視為分別提供10 Gbps和14 Gbps的專(zhuān)用信道。交換機(jī)接口10′通過(guò)諸如IBM開(kāi)發(fā)和銷(xiāo)售的Prizma之類(lèi)的交換機(jī)組件(未顯示)耦合到交換機(jī)接口12′。
仍參考圖1A,入口端10包括數(shù)據(jù)流芯片14、EPC芯片16、數(shù)據(jù)緩沖區(qū)18和調(diào)度器芯片20。出口端12包括數(shù)據(jù)流芯片14′、EPC芯片16′、數(shù)據(jù)緩沖區(qū)18′和調(diào)度器芯片20′。WRAP傳輸線(xiàn)將數(shù)據(jù)流芯片14′與數(shù)據(jù)流芯片14互連。帶有名稱(chēng)的組件如圖所示的那樣互連。值得注意的是,圖中的具有類(lèi)似名稱(chēng)的元件基本上是類(lèi)似的,對(duì)一個(gè)元件的描述涵蓋了對(duì)另外一個(gè)元件的描述。作為示例,EPC芯片16和EPC芯片16′基本上是相同的。同樣,具有類(lèi)似的名稱(chēng)的組件也是相同的。
圖1A所示的配置提供了雙向功能。下面將使用流經(jīng)芯片組的數(shù)據(jù)包來(lái)說(shuō)明其功能。在Flexbus 4(入口端)上接收由成幀器設(shè)備(未顯示)從Sonet/SDH流提取的HDLC幀,并轉(zhuǎn)發(fā)到數(shù)據(jù)流芯片14。來(lái)自幀的數(shù)據(jù)寫(xiě)入到數(shù)據(jù)緩沖區(qū)18。一旦一個(gè)完整的幀被寫(xiě)入數(shù)據(jù)緩沖區(qū)18,幀上下文(FCB)就進(jìn)入到一個(gè)EPC(嵌入式處理器復(fù)合體)隊(duì)列(圖1B中的G-FIFO)中。EPC芯片16讀出幀指針并在其一個(gè)微微處理器中對(duì)相應(yīng)的幀進(jìn)行處理。在幀處理期間,EPC可以發(fā)出從/向數(shù)據(jù)緩沖器讀取/寫(xiě)入幀的相應(yīng)的部分(例如,L2和L3標(biāo)頭)。在幀處理完成之后,EPC將幀上下文傳遞到數(shù)據(jù)流芯片,該芯片將幀排到調(diào)度器芯片20的隊(duì)列結(jié)構(gòu)中。調(diào)度器芯片50中的調(diào)度器從相應(yīng)的隊(duì)列中選擇幀進(jìn)行傳輸,這意味著,對(duì)應(yīng)的幀指針被傳遞到數(shù)據(jù)流芯片。傳輸?shù)膸粡臄?shù)據(jù)緩沖區(qū)中讀出,并在交換機(jī)接口10′上以PRIZMA單元的形式進(jìn)行傳輸。PRIZMA單元是傳送可變大小的幀的分段的六十四字節(jié)單元,或者是完整的異步傳輸模式(ATM)單元。單元通過(guò)交換機(jī)接 10′饋送到交叉點(diǎn)交換機(jī)(未顯示)。在優(yōu)選實(shí)施例中,交叉點(diǎn)交換機(jī)是由IBM公司制造和銷(xiāo)售的名為PRIZMA的產(chǎn)品。
仍參考圖1A,在出口端12的出口方向,在交換機(jī)接口12′上接收PRIZMA單元并轉(zhuǎn)發(fā)到數(shù)據(jù)緩沖區(qū)18′。在接收完整的幀之后,幀指針入隊(duì),以便在EFC隊(duì)列中進(jìn)行處理。出口EPC 16′從數(shù)據(jù)流芯片中檢索幀上下文,并在EPC微微處理器(未顯示)中運(yùn)行的微微代碼中處理幀標(biāo)頭。處理的結(jié)果是幀上下文,該幀上下文被傳遞到數(shù)據(jù)流芯片14′,并進(jìn)入調(diào)度器20′的相應(yīng)的隊(duì)列。調(diào)度器芯片20′中的調(diào)度器選擇要傳輸?shù)膸?,然后將其從?shù)據(jù)緩沖區(qū)18′讀出,并在數(shù)據(jù)流芯片14′的標(biāo)記為Flexbus 4′的線(xiàn)路接口上進(jìn)行傳輸。為了簡(jiǎn)便起見(jiàn),下面將只討論根據(jù)優(yōu)選實(shí)施例的與本發(fā)明有關(guān)的網(wǎng)絡(luò)處理器的那一部分。
圖1B顯示了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的原理的數(shù)據(jù)流芯片和存儲(chǔ)系統(tǒng)(Sys)21的方框圖。在標(biāo)記為Data_in的總線(xiàn)上提供進(jìn)入數(shù)據(jù)流芯片的數(shù)據(jù),芯片的輸出數(shù)據(jù)在標(biāo)記為Data_out的總線(xiàn)上進(jìn)行傳輸。如前所述,Data_in和Data_out是傳輸大量數(shù)據(jù)的專(zhuān)用信道。存儲(chǔ)系統(tǒng)21由叫做切片0到切片N的許多DDR DRAM組成。在1B顯示的實(shí)施例中,N=5。正如下面將講述的,每個(gè)切片都由許多緩沖區(qū)組成,并由單獨(dú)的總線(xiàn)0-5連接到數(shù)據(jù)流芯片中的單獨(dú)的DRAM控制器。DRAM控制器是常規(guī)DRAM控制器,并為它們所服務(wù)的切片提供寫(xiě)入、讀取、刷新及其他功能。由于DRAM控制器在當(dāng)前技術(shù)中已為大家所熟知,因此,將不對(duì)它們進(jìn)行進(jìn)一步的討論。
仍參考圖1B,數(shù)據(jù)流芯片中的功能塊包括接收控制器22、存儲(chǔ)器判優(yōu)器24、FCB判優(yōu)器26、BCB判優(yōu)器28、EPC控制器30、緩沖區(qū)接受和計(jì)帳32、調(diào)度器接口控制器34,以及傳輸控制器36。QDR SRAM 38存儲(chǔ)了存儲(chǔ)系統(tǒng)21中的一系列緩沖區(qū)。QDRSRAM 40存儲(chǔ)了有關(guān)目標(biāo)刀刃(T/B)和目標(biāo)端口(TP)隊(duì)列中的幀的信息。存儲(chǔ)器判優(yōu)器24將數(shù)據(jù)流芯片連接到存儲(chǔ)系統(tǒng)21。為此,存儲(chǔ)器判優(yōu)器從發(fā)射器、接收器和嵌入式處理器復(fù)合體(EPC)控制器22、36和38收集讀取(R)/寫(xiě)入(W)請(qǐng)求,并向單獨(dú)的數(shù)據(jù)存儲(chǔ)器切片調(diào)度存取。正如下面將講述的,每個(gè)存儲(chǔ)器切片都包括許多緩沖區(qū),每個(gè)緩沖區(qū)都是64字節(jié)。值得注意的是,也可以設(shè)計(jì)其他大小的數(shù)據(jù)帶寬。然后,將幀數(shù)據(jù)寫(xiě)入到存儲(chǔ)器的不同的切片中的不同的緩沖區(qū),以便最大限度地提高存儲(chǔ)器帶寬的利用率。當(dāng)從存儲(chǔ)器讀取數(shù)據(jù)時(shí),以64字節(jié)拉出數(shù)據(jù)。換句話(huà)說(shuō),進(jìn)入或讀出的帶寬是64字節(jié)。值得注意的是,也可以設(shè)計(jì)其他大小的數(shù)據(jù)帶寬。根據(jù)優(yōu)選實(shí)施例的存儲(chǔ)器判優(yōu)器確保,對(duì)存儲(chǔ)器的任何存取(讀取或?qū)懭?都具有64字節(jié)的有效負(fù)載。如果來(lái)自請(qǐng)求者的請(qǐng)求小于64字節(jié),則用來(lái)自另一個(gè)請(qǐng)求者的數(shù)據(jù)來(lái)增大有效負(fù)載。
仍參考圖1B,接收控制器22從標(biāo)記為Data_in的進(jìn)入總線(xiàn)接收數(shù)據(jù),并發(fā)出寫(xiě)入請(qǐng)求,以便將接收到的數(shù)據(jù)寫(xiě)入到存儲(chǔ)系統(tǒng)21中的單獨(dú)的緩沖區(qū)。同樣,傳輸控制器36發(fā)出讀取請(qǐng)求,以便在Data_out上傳輸所選幀。EPC控制器30結(jié)束來(lái)自/到EPC的不同的消息,并向數(shù)據(jù)存儲(chǔ)(存儲(chǔ)系統(tǒng)21)發(fā)出讀取/寫(xiě)入請(qǐng)求。它還在處理(G-FIFO)之前維護(hù)等待的幀的跟蹤。???緩沖區(qū)接受和計(jì)帳區(qū)塊32負(fù)責(zé)每個(gè)幀的入隊(duì)/丟棄決定。它還以TB/TP為基礎(chǔ)維護(hù)隊(duì)列填充級(jí)別,并將此信息提供到交換機(jī)接口上的交換機(jī)結(jié)構(gòu)。BCB和FCB存儲(chǔ)器判優(yōu)器為諸如鏈接/脫離FCB或BCB、租用/再租用FCB或BCB之類(lèi)的鏈接列表操作提供不同存取的調(diào)度。
圖2顯示了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的存儲(chǔ)器判優(yōu)器的功能方框圖。存儲(chǔ)器判優(yōu)器的功能是提供對(duì)存儲(chǔ)系統(tǒng)21的存取。存儲(chǔ)器判優(yōu)器接受來(lái)自接收控制器22、發(fā)射器/控制器36和EPC控制器30的請(qǐng)求。請(qǐng)求的優(yōu)先次序是這樣的,傳輸控制器36具有最高優(yōu)先級(jí),接收控制器22具有次最高優(yōu)先級(jí),EPC控制器30的優(yōu)先級(jí)最低。當(dāng)然,也可以選擇不同的順序或優(yōu)先級(jí)。在授予對(duì)存儲(chǔ)器的存取的權(quán)限時(shí),判優(yōu)器確保對(duì)于每個(gè)存儲(chǔ)器存取,利用存儲(chǔ)器所允許的最大的數(shù)據(jù)帶寬。結(jié)果,如果存儲(chǔ)器請(qǐng)求是讀取數(shù)據(jù),則該請(qǐng)求將是來(lái)自傳輸控制器36和/或EPC控制器30的讀取請(qǐng)求。存儲(chǔ)器判優(yōu)器分析來(lái)自傳輸控制器的請(qǐng)求;如果該請(qǐng)求需要全部存儲(chǔ)器帶寬,那么判優(yōu)器會(huì)生成具有每個(gè)切片部分的命令和每個(gè)區(qū)塊部分的地址的存取向量。存取向量將傳輸給相應(yīng)的存儲(chǔ)器控制器,并從存儲(chǔ)器中提取數(shù)據(jù)。
正如這里所講述的,存儲(chǔ)器中的每個(gè)緩沖區(qū)都具有64字節(jié),并分為4個(gè)四倍字長(zhǎng)A、B、C和D,每個(gè)四倍字長(zhǎng)都具有16字節(jié)。如果傳輸控制器在任何存儲(chǔ)器存取中需要不到4個(gè)四倍字長(zhǎng),則未使用的四倍字長(zhǎng)被給予EPC控制器。任何寫(xiě)入請(qǐng)求都是由接收控制器和EPC控制器發(fā)出的。與讀取請(qǐng)求一樣,所有寫(xiě)入請(qǐng)求都需要4個(gè)四倍字長(zhǎng)的信息傳輸給存儲(chǔ)器控制器。如果接收控制器寫(xiě)入不到4個(gè)四倍字長(zhǎng),則未使用的四倍字長(zhǎng)將分配給EPC控制器。結(jié)果,每個(gè)對(duì)存儲(chǔ)器的存取都寫(xiě)入或讀取4個(gè)四倍字長(zhǎng)64字節(jié)的數(shù)據(jù)。這樣一來(lái),利用了最大的存儲(chǔ)器帶寬,沒(méi)有浪費(fèi)周期。
仍參考圖2,存儲(chǔ)器判優(yōu)器包括總線(xiàn)結(jié)構(gòu)40,它將存儲(chǔ)系統(tǒng)21、傳輸控制器22、EPC控制器30和傳輸控制器36互連起來(lái)。接收控制器22將存儲(chǔ)器判優(yōu)器連接到交換機(jī)或線(xiàn)路接口。EPC控制器將判優(yōu)器連接到EPC芯片(圖1)。傳輸控制器36將存儲(chǔ)器判優(yōu)器連接到Data_out總線(xiàn)(圖1B)。判優(yōu)器包括存儲(chǔ)器判優(yōu)器控制器42,該控制器接收如圖所示的相應(yīng)的請(qǐng)求,生成存取向量,該存取向量被提供到相應(yīng)的控制器,以存取存儲(chǔ)系統(tǒng)中的單獨(dú)的切片。存儲(chǔ)器判優(yōu)器判優(yōu)在11周期窗口(一個(gè)周期等于6ns)進(jìn)行。在存取窗口的開(kāi)始,存儲(chǔ)器判優(yōu)器接收下面的輸入(請(qǐng)求),以便在下一窗口調(diào)度傳輸控制器請(qǐng)求-由要讀取的緩沖區(qū)的BCB地址表示;RF標(biāo)志表示緩沖區(qū)是否可以再租用,四倍字長(zhǎng)掩碼補(bǔ)充每個(gè)BCBA地址。表示此緩沖區(qū)內(nèi)的哪些四倍字長(zhǎng)將被實(shí)際讀取的四倍字長(zhǎng)掩碼允許存儲(chǔ)器判優(yōu)器用來(lái)自EPC的請(qǐng)求補(bǔ)充對(duì)未使用的四倍字長(zhǎng)的存取。在本發(fā)明的優(yōu)選實(shí)施例中,0、1、2或3請(qǐng)求可以由傳輸控制器在一個(gè)存儲(chǔ)器存取窗口發(fā)出。相應(yīng)的請(qǐng)求由將傳輸控制器36與存儲(chǔ)器判優(yōu)器控制器42互連的箭頭顯示。箭頭的方向表示請(qǐng)求流動(dòng)的方向。
接收控制器請(qǐng)求-由切片排除掩碼和兩個(gè)四倍字長(zhǎng)掩碼表示。兩個(gè)四倍字長(zhǎng)掩碼間接地表示每一個(gè)請(qǐng)求優(yōu)選情況下必須定位多少緩沖區(qū)(例如,如果其中一個(gè)四倍字長(zhǎng)掩碼是′000′,意味著,只分配一個(gè)緩沖區(qū)),以及在不同的緩沖區(qū)中應(yīng)該使用哪些存儲(chǔ)體(四倍字長(zhǎng))。如前所述,接收控制器22具有存取存儲(chǔ)器的第二高優(yōu)先級(jí)。允許到接收控制器的請(qǐng)求以從接收控制器發(fā)到存儲(chǔ)器判優(yōu)器控制器42的箭頭表示。
EPC控制器請(qǐng)求-由每個(gè)切片、每個(gè)操作和每個(gè)四倍字長(zhǎng)的隊(duì)列表示。存儲(chǔ)器判優(yōu)器將基于單獨(dú)的四倍字長(zhǎng)請(qǐng)求的權(quán)重分配所有剩余的切片。此權(quán)重與由6位值表示的四倍字長(zhǎng)請(qǐng)求的年齡成正比。此外,存儲(chǔ)器判優(yōu)器可以通過(guò)讀取來(lái)自EPC請(qǐng)求隊(duì)列系統(tǒng)的對(duì)應(yīng)的四倍字長(zhǎng)存取請(qǐng)求來(lái)補(bǔ)充發(fā)射器和接收器的存取。在本發(fā)明的優(yōu)選實(shí)施例中,在一個(gè)存儲(chǔ)器存取窗口中EPC可以被授予的四倍字長(zhǎng)存取的最大數(shù)量限于8個(gè)讀取和8個(gè)寫(xiě)入四倍字長(zhǎng)。單頭箭頭表示從EPC控制器和存儲(chǔ)器判優(yōu)器控制器42流出的信息流。
仍參考圖2,存儲(chǔ)器判優(yōu)器控制器42接收來(lái)自相應(yīng)的請(qǐng)求者(接收控制器22、傳輸控制器36和EPC控制器30)的請(qǐng)求,生成存取向量,該存取向量將傳輸給相應(yīng)的切片控制器(Ctrl),以便從所選切片中的緩沖區(qū)讀取信息或向其中寫(xiě)入信息。接收控制器或傳輸控制器未利用的剩余帶寬將分配給EPC控制器。結(jié)果,所有對(duì)存儲(chǔ)器的存取都利用全部存儲(chǔ)器帶寬?;趤?lái)自請(qǐng)求者的輸入,存儲(chǔ)器判優(yōu)器控制器42執(zhí)行下列切片選擇算法,以便為下一窗口構(gòu)建緩沖存儲(chǔ)器存取向量·排除被計(jì)劃為刷新周期的切片(由每個(gè)DRAM控制器指出)·為傳輸控制器的所有R(讀取)請(qǐng)求分配切片·從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充R存取·為全局W(寫(xiě)入)排除的切片分配給EPC的切片(例如,由所有切片排除規(guī)則從接收器中排除的切片)·從最后一個(gè)分配的切片(在上一窗口分配給接收控制器的切片)開(kāi)始在非排除的切片之間以循環(huán)復(fù)用(RR)方式向W請(qǐng)求分配切片·從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充EPC存取的W存取·根據(jù)由權(quán)重表示的優(yōu)先級(jí)向EPC請(qǐng)求分配切片。
切片選擇算法可以以邏輯硬件實(shí)施,也可以以在微微處理器中運(yùn)行的微代碼進(jìn)行編碼。選擇硬件邏輯或微微代碼來(lái)實(shí)施上述選擇算法是可以選擇設(shè)計(jì)的,給定了上面的算法,那些精通本技術(shù)的人可以隨便進(jìn)行設(shè)計(jì)。
暫時(shí)轉(zhuǎn)向圖6,該圖顯示了存儲(chǔ)器判優(yōu)器的另一個(gè)實(shí)施例。另一個(gè)存儲(chǔ)器判優(yōu)器包括連接到請(qǐng)求寄存器A、B、C的存儲(chǔ)器判優(yōu)器控制器(CTRL)42和優(yōu)先級(jí)表44。請(qǐng)求寄存器存儲(chǔ)來(lái)自相應(yīng)的請(qǐng)求者的請(qǐng)求。請(qǐng)求寄存器A存儲(chǔ)來(lái)自發(fā)射器(XMIT)的請(qǐng)求,請(qǐng)求寄存器B存儲(chǔ)來(lái)自接收器(RECV)控制器的請(qǐng)求,寄存器C存儲(chǔ)來(lái)自EPC控制器的請(qǐng)求。優(yōu)先級(jí)表44存儲(chǔ)為每個(gè)請(qǐng)求者指定的優(yōu)先級(jí)。因此,具有最高優(yōu)先級(jí)的傳輸控制器是1,具有次最高優(yōu)先級(jí)的接收控制器是2,具有最低優(yōu)先級(jí)的EPC控制器是3。在操作中,根據(jù)上面選擇的算法設(shè)計(jì)的存儲(chǔ)器判優(yōu)器控制器使用寄存器中的信息連同優(yōu)先級(jí)來(lái)生成存儲(chǔ)器向量。
圖3、4和5顯示了進(jìn)一步說(shuō)明根據(jù)優(yōu)選實(shí)施例的本發(fā)明的示例。在圖中,顯示了當(dāng)從存儲(chǔ)器提取或讀取數(shù)據(jù)時(shí)利用全部存儲(chǔ)器帶寬的功能。存儲(chǔ)器中的數(shù)據(jù)是在較早的寫(xiě)入周期寫(xiě)入的。
圖3顯示了說(shuō)明傳輸控制器使用了全部帶寬的讀取請(qǐng)求的功能方框圖。如前所述,傳輸控制器具有從存儲(chǔ)器讀取數(shù)據(jù)的最高的優(yōu)先級(jí)。插圖包括存儲(chǔ)器51、時(shí)間表示48、存儲(chǔ)器判優(yōu)器控制器42和準(zhǔn)備區(qū)域46。存儲(chǔ)器51包括許多在叫做切片的集合中排列的緩沖區(qū)。在該圖中,顯示了切片0、1、2、3和4。然而,這不應(yīng)該被理解為限制,因?yàn)榭梢允褂酶嗟幕蚋俚那衅?。此外,在每個(gè)切片中顯示了3緩沖區(qū)個(gè)(標(biāo)記為1、2和3)。然而,這應(yīng)該理解為一個(gè)示例,而不是限制。一個(gè)切片中使用的緩沖區(qū)的數(shù)量取決于設(shè)計(jì)人員的選擇。結(jié)果,一個(gè)切片中的緩沖區(qū)數(shù)量是N,其中N可以取決于設(shè)計(jì)人員的選擇的任何數(shù)量。如上所述,每個(gè)緩沖區(qū)都是64字節(jié),被分區(qū)為叫做四倍字長(zhǎng)A、B、C和D的扇區(qū)。每個(gè)四倍字長(zhǎng)都是16個(gè)字節(jié)。每個(gè)切片都是分區(qū)為N個(gè)緩沖區(qū)的DDR DRAM模塊制成的。緩沖區(qū)1中的數(shù)字顯示意味著,切片1緩沖區(qū)1充滿(mǎn)了包含四倍字長(zhǎng)3、4、1和2的數(shù)據(jù)。同樣,切片3、緩沖區(qū)1充滿(mǎn)了包含四倍字長(zhǎng)8、5、6和7的數(shù)據(jù)。每個(gè)四倍字長(zhǎng)都存儲(chǔ)了雙字(16字節(jié))。值得注意的是,可以選擇其他粒度。很有可能,此數(shù)據(jù)是在圖1中的接收控制器22接收到,并在較早的時(shí)間加載或?qū)懭氲酱鎯?chǔ)器51中。
仍參考圖3,48顯示了從存儲(chǔ)器刪除的并重新布置(旋轉(zhuǎn))的數(shù)據(jù)的傳輸?shù)臅r(shí)間的圖形表示。圖形表示具有四倍字長(zhǎng)A、B、C和D的空間。存儲(chǔ)器存取是大致66納秒的11周期。在每個(gè)存儲(chǔ)周期,可以同時(shí)存取不同的存儲(chǔ)器切片中的兩個(gè)緩沖區(qū)。以前討論了存儲(chǔ)器判優(yōu)器42,現(xiàn)在就不再詳細(xì)重復(fù)了。只要說(shuō)一下下面這一點(diǎn)就夠了,它獲取來(lái)自傳輸控制器和EPC的請(qǐng)求,并對(duì)它們進(jìn)行組織,以便從存儲(chǔ)器51提取所請(qǐng)求的信息。
仍參考圖3,準(zhǔn)備區(qū)域46包含應(yīng)傳輸控制器36(圖1B)的請(qǐng)求管理數(shù)據(jù),從存儲(chǔ)器刪除數(shù)據(jù)所需的資源。準(zhǔn)備區(qū)域46包括端口控制區(qū)塊(PCB)、一組標(biāo)記為T(mén)P0、TP1、TP3、TP4...TPN的目標(biāo)端口緩沖區(qū)。TP(目標(biāo)端口)緩沖區(qū)的數(shù)量取決于設(shè)計(jì)人員。因此,5的顯示不應(yīng)該被理解為限制。閉合箭頭標(biāo)記RR表示循環(huán)復(fù)用過(guò)程,其中緩沖區(qū)按順時(shí)針?lè)较蛱畛浠蚍?wù)。PCB包含準(zhǔn)備區(qū)域中的一系列緩沖區(qū)。在顯示的示例中,有64個(gè)PCB。PCB還包括將從存儲(chǔ)器提取的下面的切片。參考該圖,切片1和3將被刪除并加載到目標(biāo)端口緩沖區(qū)0。此緩沖區(qū)中的信息隨后將通過(guò)端口0傳輸?shù)絛ata_out線(xiàn)1上(圖1B)。每個(gè)目標(biāo)端口緩沖區(qū)都包含128字節(jié)(8個(gè)四倍字長(zhǎng))。
仍參考圖3,操作中,傳輸控制器向存儲(chǔ)器判優(yōu)器控制器發(fā)出請(qǐng)求,要求讀取存儲(chǔ)器的切片1、緩沖區(qū)1和切片3、緩沖區(qū)1中的信息,并加載到目標(biāo)端口緩沖區(qū)0。EPC讀取請(qǐng)求還被提供給存儲(chǔ)器判優(yōu)器控制器42。由于傳輸控制器發(fā)出的請(qǐng)求要求傳輸兩個(gè)全緩沖區(qū),在此讀取存儲(chǔ)器周期期間,沒(méi)有空間來(lái)容納來(lái)自EPC的進(jìn)行讀取操作的請(qǐng)求。值得注意的是,由于請(qǐng)求是針對(duì)切片1和3,信息可以同時(shí)讀出,在中間區(qū)域48重新布置,并傳輸?shù)絋P緩沖區(qū)0,以便通過(guò)端口0進(jìn)行隨后的傳輸。按正確的相繼次序,將中間區(qū)域48中的信息讀取到TP緩沖區(qū)0。總之,圖3描述了傳輸控制器存取存儲(chǔ)器并利用全部的帶寬的情況。在這種情況下,EPC在此存取窗口期間不能存取存儲(chǔ)器。傳輸控制器接收兩個(gè)全緩沖區(qū)(一個(gè)來(lái)自切片1,另一個(gè)來(lái)自切片3),并將此數(shù)據(jù)排列到目標(biāo)端口緩沖區(qū)0(TP0)。
對(duì)于寫(xiě)入操作,圖3中的描述同樣適用,只是對(duì)于寫(xiě)入操作,數(shù)據(jù)流的方向相反。因此,沒(méi)有給出有關(guān)寫(xiě)入操作的進(jìn)一步的描述。
圖4顯示了一個(gè)示例,其中,存取同一切片中的不同的緩沖區(qū)并分配給不同的FIFO端口緩沖區(qū)以?xún)?yōu)化存儲(chǔ)器存取。可以看出,除存儲(chǔ)在存儲(chǔ)器51中的數(shù)據(jù)模式之外,圖4的結(jié)構(gòu)基本上與以前描述的圖3相似。因此,下面只討論圖4的其他特點(diǎn)。就存儲(chǔ)器51來(lái)說(shuō),信息被加載到切片1,緩沖區(qū)1,四倍字長(zhǎng)C和D;切片1,緩沖區(qū)2,四倍字長(zhǎng)A、B、C和D;切片2,緩沖區(qū)1,四倍字長(zhǎng)A和D;以及切片2,緩沖區(qū)3,四倍字長(zhǎng)B、C和D。四倍字長(zhǎng)由相應(yīng)的編號(hào)標(biāo)識(shí)。PCB中的信息表示,切片1,緩沖區(qū)1中的數(shù)據(jù)將被加載到TP緩沖區(qū)0。同樣,切片2,緩沖區(qū)1中的數(shù)據(jù)將被加載到TP1。值得注意的是,可能需要PCB中的更多信息以便給出有關(guān)將數(shù)據(jù)從存儲(chǔ)器移動(dòng)到相應(yīng)的TP緩沖區(qū)的完整而精確的指令。為了使描述不要太復(fù)雜化,其他信息從略。但是,本說(shuō)明書(shū)足以使精通本技術(shù)的人能提供其他信息。
由于傳輸請(qǐng)求不到數(shù)據(jù)的全部存儲(chǔ)器帶寬(對(duì)于任何TP),在每個(gè)存儲(chǔ)器周期讀取全部存儲(chǔ)器帶寬四倍字長(zhǎng),并重新分發(fā)到TP。
仍參考圖4,對(duì)于緩沖區(qū)1,傳輸控制器只請(qǐng)求了切片C和D,對(duì)于TP緩沖區(qū)0,A和B未使用,并用TP2的緩沖區(qū)2的切片4和1填充。同樣,對(duì)于切片2,緩沖區(qū)1,只有四倍字長(zhǎng)A和D被傳輸控制器用于TP緩沖區(qū)1。因此,未使用的四倍字長(zhǎng)B用來(lái)自切片2,緩沖區(qū)2的標(biāo)記為“2”的數(shù)據(jù)填充,四倍字長(zhǎng)C用來(lái)自緩沖區(qū)3的標(biāo)記為“2”的數(shù)據(jù)填充。數(shù)據(jù)按如中間區(qū)域和相應(yīng)的目標(biāo)端口FIFO緩沖區(qū)中所示的編號(hào)排列。數(shù)據(jù)從存儲(chǔ)器51到相應(yīng)的TP緩沖區(qū)的移動(dòng)由相應(yīng)的單頭箭頭表示。作為示例,箭頭52表示四倍字長(zhǎng)1和2,切片1在TP0中連續(xù)排列;箭頭54表示四倍字長(zhǎng)1和2,切片2在TP1中連續(xù)放置;箭頭56顯示了四倍字長(zhǎng)1和4,切片2在TP2中連續(xù)放置;箭頭58顯示了四倍字長(zhǎng)2緩沖區(qū)2,切片2位于TP3中,箭頭60顯示了四倍字長(zhǎng)2,緩沖區(qū)2位于TP4中。
值得注意的是,即使數(shù)據(jù)被分布到不同的TP FIFO,在每個(gè)存儲(chǔ)周期中也使用全部存儲(chǔ)器帶寬。(目標(biāo)端口先進(jìn)先出)緩沖區(qū)。
轉(zhuǎn)向圖5,該示意圖顯示了這樣的情況,其特征在于,來(lái)自傳輸控制器的存儲(chǔ)器請(qǐng)求不到全部存儲(chǔ)器帶寬,切片2中的未使用的四倍字長(zhǎng)用四倍字長(zhǎng)“2”緩沖區(qū)3填充,后者以RR(循環(huán)復(fù)用)的方式通過(guò)箭頭62提供到EPC。圖5的其余部分基本上與圖4相似,以前對(duì)圖4的描述也是適用的,并在這里加以引用。
圖7顯示了用于給傳輸控制器、接收控制器或EPC授予存儲(chǔ)器存取的算法的流程圖。該算法包括標(biāo)記為步驟A到步驟G的步驟。步驟A是涉及所有切片(S=0到N,N是系統(tǒng)中的切片的總數(shù),例如,在本實(shí)施例中,S被標(biāo)記為0到5)??傊?,步驟A判斷切片是否有資格寫(xiě)入或讀取信息。如果切片不需要刷新,那么它有資格進(jìn)行分配。步驟B和C涉及由傳輸控制器執(zhí)行的讀取操作,而步驟D到G涉及由接收控制器執(zhí)行的寫(xiě)入操作。EPC可以執(zhí)行寫(xiě)入或者讀取,并可以與讀取例程或?qū)懭肜剃P(guān)聯(lián)。
仍參考圖7,步驟B給傳輸控制器授予從存儲(chǔ)器中讀取請(qǐng)求的數(shù)量的切片R。R可以是1到最大數(shù)量。在本申請(qǐng)中顯示的實(shí)施例中,R被設(shè)置為3。當(dāng)然,也可以使用R的其他值,具體情況取決于設(shè)計(jì)人員的選擇。步驟C通過(guò)在讀取請(qǐng)求中給EPC授予未使用的四倍字長(zhǎng)來(lái)補(bǔ)充讀取操作。換句話(huà)說(shuō),如果讀取請(qǐng)求不利用全部的四倍字長(zhǎng),那么,未使用的四倍字長(zhǎng)將分配給EPC。EPC可以具有多個(gè)讀取請(qǐng)求發(fā)往存儲(chǔ)器。因此,算法以循環(huán)復(fù)用的方式向EPC分配讀取請(qǐng)求。
仍參考圖7,寫(xiě)入請(qǐng)求由步驟D到G進(jìn)行控制,并由接收控制器或EPC執(zhí)行。在步驟D中,接收控制器基于這樣的原理來(lái)自同一幀的毗鄰部分的緩沖區(qū)無(wú)法寫(xiě)入到同一個(gè)切片中。這意味著,毗鄰信息是跨存儲(chǔ)器的不同的切片分布的。結(jié)果,不能向存儲(chǔ)器中的某些切片寫(xiě)入。在步驟D中,接收控制器標(biāo)識(shí)那些無(wú)法寫(xiě)入的切片。在步驟D中,切片由可以是介于1到最大值的X標(biāo)識(shí)。在步驟E中,算法授予EPC位于在步驟D而不是位于步驟B中標(biāo)識(shí)的X切片的請(qǐng)求用于寫(xiě)入的合格的切片。在步驟E中,X表示在步驟D中排除的切片,而R表示在步驟B中讀取的切片。
在步驟F中,算法以循環(huán)復(fù)用的方式授予接收控制器所請(qǐng)求的切片。循環(huán)復(fù)用分配是必需的,因?yàn)榻邮湛刂破骺梢哉?qǐng)求N數(shù)量的切片,其中N大于1。值得注意的是,接收控制器將不能請(qǐng)求在步驟D中排除的切片。此外,被授予接收控制器的切片是那些未被授予用于讀取(R)的那些切片。在步驟G中,接收控制器沒(méi)有使用的四倍字長(zhǎng)被授予EPC。授予是以循環(huán)復(fù)用的方式進(jìn)行的,因?yàn)镋PC可以發(fā)出多個(gè)寫(xiě)入請(qǐng)求。
權(quán)利要求
1.一種優(yōu)化存儲(chǔ)器利用的方法,包括下列步驟在存儲(chǔ)器判優(yōu)器中接收許多存儲(chǔ)器存取請(qǐng)求,至少一個(gè)存儲(chǔ)器存取請(qǐng)求與一個(gè)優(yōu)先級(jí)指定關(guān)聯(lián);由所述存儲(chǔ)器判優(yōu)器分析具有特定優(yōu)先級(jí)指定的存儲(chǔ)器存取請(qǐng)求,以判斷所需的存儲(chǔ)器帶寬的大??;以及如果具有特定優(yōu)先級(jí)指定的存儲(chǔ)器請(qǐng)求不需要全部存儲(chǔ)器帶寬,則與至少一個(gè)另外的請(qǐng)求共享存儲(chǔ)器存取。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括下列步驟如果具有特定優(yōu)先級(jí)指定的存儲(chǔ)器請(qǐng)求需要全部存儲(chǔ)器帶寬,則允許所述具有特定優(yōu)先級(jí)指定的存儲(chǔ)器存取請(qǐng)求利用全部存儲(chǔ)器帶寬。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,特定優(yōu)先級(jí)指定是最高的。
4.根據(jù)權(quán)利要求1、2或3所述的方法,包括提供了在至少一個(gè)切片中排列了多個(gè)緩沖區(qū)的存儲(chǔ)器,所述至少一個(gè)切片中的每個(gè)緩沖區(qū)都分區(qū)為多個(gè)四倍字長(zhǎng),并且其中,存儲(chǔ)器請(qǐng)求從多個(gè)請(qǐng)求者中尋求對(duì)至少一個(gè)切片的存取。
5.根據(jù)前面的任何一個(gè)權(quán)利要求所述的方法,其特征在于,多個(gè)請(qǐng)求者發(fā)出存儲(chǔ)器存取請(qǐng)求,所述多個(gè)請(qǐng)求者包括在網(wǎng)絡(luò)處理器內(nèi)可操作地耦合的接收控制器、傳輸控制器和嵌入式處理器復(fù)合體(EPC)控制器。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,傳輸控制器具有最高優(yōu)先級(jí),接收控制器具有次最高優(yōu)先級(jí)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,EPC控制器與傳輸控制器或接收控制器共享存儲(chǔ)器帶寬。
8.根據(jù)權(quán)利要求5到7中的任何一個(gè)權(quán)利要求所述的方法,其特征在于,請(qǐng)求包括讀取和寫(xiě)入,并且其中,至少一個(gè)讀取請(qǐng)求由傳輸控制器生成,至少一個(gè)寫(xiě)入請(qǐng)求由接收控制器提供。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,讀取和寫(xiě)入請(qǐng)求由EPC控制器提供。
10.一個(gè)網(wǎng)絡(luò)處理器,包括用于存儲(chǔ)信息的存儲(chǔ)系統(tǒng);以及可操作地耦合到所述存儲(chǔ)系統(tǒng)的用于給予存取權(quán)的存儲(chǔ)器判優(yōu)器;所述存儲(chǔ)器判優(yōu)器包括一個(gè)或多個(gè)在其中接收存儲(chǔ)器存取請(qǐng)求的請(qǐng)求寄存器,至少一個(gè)用于存儲(chǔ)請(qǐng)求者的優(yōu)先級(jí)的優(yōu)先級(jí)寄存器,和一個(gè)可操作地耦合到請(qǐng)求寄存器和優(yōu)先級(jí)寄存器的控制器,所述控制器包括電路,用于監(jiān)視請(qǐng)求和請(qǐng)求優(yōu)先級(jí)以生成存儲(chǔ)器存取矢量,其中,如果優(yōu)先級(jí)最高的請(qǐng)求要求的帶寬少于全帶寬,則允許優(yōu)先級(jí)最高的請(qǐng)求至少與一個(gè)另外的存儲(chǔ)器請(qǐng)求共享存儲(chǔ)帶寬。
11.根據(jù)權(quán)利要求10所述的網(wǎng)絡(luò)處理器,其特征在于,如果優(yōu)先級(jí)最高的請(qǐng)求要求利用全部存儲(chǔ)帶寬,則允許所述優(yōu)先級(jí)最高的請(qǐng)求這樣做。
12.根據(jù)權(quán)利要求10或11的網(wǎng)絡(luò)處理器,其特征在于,存儲(chǔ)系統(tǒng)包括在至少一個(gè)切片中排列的許多緩沖區(qū),每個(gè)緩沖區(qū)被分區(qū)為四倍字長(zhǎng)。
13.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理器,進(jìn)一步包括可操作地耦合到存儲(chǔ)器判優(yōu)器的接收控制器;可操作地耦合到所述存儲(chǔ)器判優(yōu)器的發(fā)射控制器;以及可操作地耦合到存儲(chǔ)器判優(yōu)器的嵌入式處理器復(fù)合體(EPC)控制器。
14.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)處理器,其特征在于,控制器有選擇地執(zhí)行下列步驟,以構(gòu)建緩沖存儲(chǔ)器存取向量a)排除被計(jì)劃為刷新周期的切片;b)為傳輸控制器的所有R(讀取)請(qǐng)求分配切片;c)從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充R存??;d)為全局W(寫(xiě)入)排除的切片分配給EPC的切片;e)從最后一個(gè)分配的切片(在上一窗口分配給接收控制器的切片)開(kāi)始在非排除的切片之間以RR(循環(huán)復(fù)用)方式向W請(qǐng)求分配切片;f)從對(duì)應(yīng)的EPC隊(duì)列[切片;四倍字長(zhǎng)]補(bǔ)充W存取;以及根據(jù)由權(quán)重表示的優(yōu)先級(jí)向EPC請(qǐng)求分配切片。
15.用于優(yōu)化存儲(chǔ)器利用的計(jì)算機(jī)程序,包括用于執(zhí)行權(quán)利要求1到9中的任何一個(gè)權(quán)利要求的方法的程序代碼。
全文摘要
網(wǎng)絡(luò)處理器(NP)包括允許最高限度地利用存儲(chǔ)器的控制器??刂破靼ù鎯?chǔ)器判優(yōu)器,該存儲(chǔ)器判優(yōu)器監(jiān)視來(lái)自NP中的請(qǐng)求者的存儲(chǔ)器存取請(qǐng)求,并給予優(yōu)先級(jí)高的請(qǐng)求者每個(gè)對(duì)存儲(chǔ)器的存取請(qǐng)求的全部存儲(chǔ)器帶寬。如果優(yōu)先級(jí)高的請(qǐng)求者請(qǐng)求的存儲(chǔ)器帶寬不到全部存儲(chǔ)器帶寬,則將所請(qǐng)求的帶寬和全部存儲(chǔ)器帶寬之間的差分配給優(yōu)先級(jí)較低的請(qǐng)求者。這樣一來(lái),每個(gè)存儲(chǔ)器存取都利用全部存儲(chǔ)器帶寬。
文檔編號(hào)G06F13/18GK1498374SQ02807143
公開(kāi)日2004年5月19日 申請(qǐng)日期2002年3月28日 優(yōu)先權(quán)日2001年4月3日
發(fā)明者彼得·巴里, 吉恩·卡爾維格納克, 馬可·海德斯, 約瑟夫·洛根, 亞歷克斯·內(nèi)梅格爾斯, 費(fèi)布里斯·沃普蘭肯, 麥洛斯拉夫·弗拉納, 洛根, 卡爾維格納克, 彼得 巴里, 拉夫 弗拉納, 斯 內(nèi)梅格爾斯, 斯 沃普蘭肯, 海德斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司