,該BID釋放FIFO控制子模塊再?gòu)腂ID釋放FIFO中讀出一個(gè)BID,和該釋放請(qǐng)求的其它信息一起返回給釋放應(yīng)答分發(fā)模塊。BID申請(qǐng)F(tuán)IFO控制子模塊與BID釋放FIFO控制子模塊之間的應(yīng)急通道:當(dāng)BID申請(qǐng)請(qǐng)求處理模塊中對(duì)應(yīng)網(wǎng)絡(luò)包大小的BID申請(qǐng)請(qǐng)求處理子模塊中的預(yù)申請(qǐng)BID隊(duì)列為空時(shí),該大小的BID申請(qǐng)請(qǐng)求處理子模塊就會(huì)向?qū)?yīng)大小的BID釋放請(qǐng)求處理子模塊發(fā)起B(yǎng)ID應(yīng)急申請(qǐng)請(qǐng)求,該大小的BID釋放請(qǐng)求處理子模塊收到該請(qǐng)求后就會(huì)從自身的待釋放BID隊(duì)列里讀出BID反饋給BID申請(qǐng)請(qǐng)求處理子模塊;BID申請(qǐng)F(tuán)IFO控制子模塊在預(yù)申請(qǐng)緩存空間ID隊(duì)列為空時(shí)從相同網(wǎng)絡(luò)報(bào)文長(zhǎng)度對(duì)應(yīng)的待釋放緩存空間ID隊(duì)列中申請(qǐng)一個(gè)緩存空間ID,BID申請(qǐng)F(tuán)IFO控制子模塊將申請(qǐng)的緩存空間ID連同該申請(qǐng)請(qǐng)求的其它信息一起輸出給申請(qǐng)應(yīng)答分發(fā)模塊。
[0080]BID申請(qǐng)F(tuán)IFO控制子模塊通過(guò)申請(qǐng)BID讀接口控制模塊讀取掛在AXI總線上的片外DDR3SDRAM中的緩存空間ID,BID釋放FIFO控制子模塊通過(guò)釋放BID寫接口控制模塊寫入緩存空間ID到掛在AXI總線上的片外DDR3SDRAM中,在芯片上電復(fù)位時(shí)根據(jù)網(wǎng)絡(luò)報(bào)文長(zhǎng)度將DDR3SDRAM存儲(chǔ)顆粒中存儲(chǔ)區(qū)域劃分不同固定大小的緩存空間及對(duì)應(yīng)的緩存空間ID標(biāo)簽區(qū),采用兩級(jí)FIFO加速方法對(duì)各大小BID標(biāo)簽區(qū)間進(jìn)行管理,兩級(jí)FIFO加速方法的原理和圖和實(shí)現(xiàn)圖如圖4、圖5所示。
[0081]申請(qǐng)BID讀接口控制模塊,該模塊通過(guò)上級(jí)各個(gè)大小的BID申請(qǐng)F(tuán)IFO控制子模塊和AXI總線的讀接口對(duì)各個(gè)大小的BID申請(qǐng)F(tuán)IFO進(jìn)行寫操作。該模塊根據(jù)預(yù)定的優(yōu)先級(jí)來(lái)接收上級(jí)各個(gè)大小的BID申請(qǐng)F(tuán)IFO控制子模塊的請(qǐng)求。BID被存在DDR3SDRAM中指定的區(qū)間內(nèi),該區(qū)間根據(jù)網(wǎng)絡(luò)報(bào)文長(zhǎng)度劃分為16KB BID區(qū)間、8KB BID區(qū)間、4KB BID區(qū)間、2KBBID區(qū)間、IKB BID區(qū)間、512B BID區(qū)間、256B BID區(qū)間、128B BID區(qū)間、64B BID區(qū)間,每個(gè)大小的BID區(qū)間的起始地址和區(qū)間長(zhǎng)度都可以由CPU進(jìn)行配置。該模塊采用FIFO的存儲(chǔ)機(jī)制對(duì)各個(gè)大小的BID區(qū)間進(jìn)行管理,根據(jù)上級(jí)模塊的請(qǐng)求實(shí)時(shí)地更新讀指針,結(jié)合對(duì)應(yīng)大小的BID釋放請(qǐng)求處理子模塊的寫指針就可以算出DDR3SDRAM對(duì)應(yīng)大小區(qū)間中剩余BID的數(shù)量,根據(jù)BID余量來(lái)設(shè)定總線Burst Length、Burst Size,進(jìn)一步提高從DDR3SDRAM中讀取BID的效率。這以16KB BID申請(qǐng)F(tuán)IFO子模塊來(lái)說(shuō)明,在16KB BID申請(qǐng)F(tuán)IFO子模塊需申請(qǐng)BID時(shí),從16KB預(yù)緩存空間ID隊(duì)列中讀出BID,具體步驟如下:
[0082]A.16KB BID申請(qǐng)F(tuán)IFO控制子模塊中BID的數(shù)量已經(jīng)低于低閾值線時(shí),16KB BID申請(qǐng)F(tuán)IFO控制子模塊向申請(qǐng)BID讀接口控制模塊發(fā)起從DDR3SDRAM中讀出BID的請(qǐng)求;
[0083]B.申請(qǐng)BID讀接口控制模塊收到請(qǐng)求后向AXI總線上的DDR3SDRAM讀發(fā)起B(yǎng)urst讀操作;
[0084]C.Burst讀回的數(shù)據(jù)會(huì)根據(jù)申請(qǐng)請(qǐng)求的UID分發(fā)給相應(yīng)大小的BID申請(qǐng)F(tuán)IFO控制子模塊,16KB BID申請(qǐng)F(tuán)IFO控制子模塊將讀回的BID寫入到對(duì)應(yīng)網(wǎng)絡(luò)報(bào)文長(zhǎng)度的預(yù)申請(qǐng)緩存空間ID隊(duì)列中。
[0085]釋放BID寫接口控制模塊,該模塊通過(guò)上級(jí)各個(gè)大小的BID釋放FIFO控制子模塊和AXI總線的寫接口對(duì)各個(gè)大小的BID釋放FIFO進(jìn)行讀操作。該模塊根據(jù)預(yù)定的優(yōu)先級(jí)來(lái)接收上級(jí)各個(gè)大小的BID釋放FIFO控制子模塊的請(qǐng)求。BID被存在DDR3SDRAM中指定的區(qū)間內(nèi),該區(qū)間根據(jù)網(wǎng)絡(luò)報(bào)文長(zhǎng)度劃分為16KB BID區(qū)間、8KB BID區(qū)間、4KB BID區(qū)間、2KBBID區(qū)間、IKB BID區(qū)間、512B BID區(qū)間、256B BID區(qū)間、128B BID區(qū)間、64B BID區(qū)間,每個(gè)大小的BID區(qū)間的起始地址和區(qū)間長(zhǎng)度都可以由CPU進(jìn)行配置。該模塊采用FIFO的存儲(chǔ)機(jī)制對(duì)各個(gè)大小的BID區(qū)間進(jìn)行管理,根據(jù)上級(jí)模塊的請(qǐng)求實(shí)時(shí)地更新寫指針,結(jié)合BID申請(qǐng)請(qǐng)求處理子模塊的讀指針就可以算出DDR3SDRAM對(duì)應(yīng)大小區(qū)間中剩余BID的數(shù)量,根據(jù)BID余量來(lái)設(shè)定總線Burst Length、Burst Size,進(jìn)一步提高將BID寫入到DDR3SDRAM中的效率;這以16KB BID釋放FIFO來(lái)說(shuō)明,在16KB BID釋放FIFO子模塊需申請(qǐng)BID時(shí),向16KB待釋放緩存空間ID隊(duì)列中寫入BID,具體步驟如下:
[0086]A.16KB BID釋放請(qǐng)求FIFO子模塊中BID的數(shù)量已經(jīng)高于高閾值線時(shí),16KB BID釋放FIFO控制子模塊向BID寫接口控制模塊發(fā)起寫B(tài)ID到DDR3SDRAM中的請(qǐng)求;
[0087]B.BID寫接口控制模塊收到請(qǐng)求后向掛在AXI總線上的DDR3SDRAM發(fā)起B(yǎng)urst寫操作;
[0088]C.16KB BID釋放請(qǐng)求FIFO子模塊把需釋放的緩存空間ID批量寫入到對(duì)應(yīng)網(wǎng)絡(luò)報(bào)文長(zhǎng)度的緩存空間ID標(biāo)簽區(qū)。
[0089]申請(qǐng)BID讀接口控制模塊包括申請(qǐng)BID輪詢仲裁子模塊,申請(qǐng)BID輪詢仲裁子模塊采用輪詢仲裁算法確定批量預(yù)申請(qǐng)BID的BID申請(qǐng)請(qǐng)求處理子模塊,釋放BID寫接口控制模塊包括釋放BID輪詢仲裁子模塊,釋放BID輪詢仲裁子模塊采用輪詢仲裁算法確定批量寫回BID的BID釋放請(qǐng)求處理子模塊。各大小的BID申請(qǐng)F(tuán)IFO控制子模塊、BID釋放FIFO控制子模塊與片外DDR3SDRAM三者協(xié)調(diào)的操作形成了兩級(jí)FIFO加速處理方法。
[0090]申請(qǐng)應(yīng)答分發(fā)模塊如圖7所示,該模塊主要功能是接收來(lái)自各個(gè)大小的BID申請(qǐng)請(qǐng)求處理子模塊的申請(qǐng)BID的應(yīng)答信息,根據(jù)應(yīng)答信息中的部件ID分發(fā)到相應(yīng)的外部部件。
[0091]釋放應(yīng)答分發(fā)模塊如圖7所示,該模塊主要功能是接收來(lái)自各個(gè)大小的BID釋放請(qǐng)求處理子模塊的釋放BID的應(yīng)答信息,根據(jù)應(yīng)答信息中的部件ID分發(fā)到相應(yīng)的外部部件。
[0092]綜上所述,本發(fā)明具有以下有益效果:
[0093](I)緩存空間ID的申請(qǐng)通道與釋放通道分離,結(jié)合并行兼顧優(yōu)先級(jí)的思想采用FIFO方式和交叉互連方式,并行執(zhí)行BID申請(qǐng)、BID釋放,提高了處理速度;
[0094](2)各部件對(duì)應(yīng)的BID申請(qǐng)/釋放FIFO子模塊與BID申請(qǐng)/釋放請(qǐng)求控制子模塊一一對(duì)應(yīng)但邏輯上互補(bǔ)交叉,采用交叉互連的方式實(shí)現(xiàn)各部件對(duì)不同大小BID請(qǐng)求的并行處理,比每次只仲裁出一個(gè)部件進(jìn)行申請(qǐng)/釋放BID操作要更高效;
[0095](3)將整個(gè)緩存空間根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包長(zhǎng)度的差異性劃分為16KB、8KB、4KB、2KB、IKB、512B、256B、128B、64B大小的區(qū)間,每種大小的區(qū)間基地址和區(qū)間長(zhǎng)度都可由CPU根據(jù)實(shí)際需求進(jìn)行實(shí)時(shí)配置變更,既緩解了緩存空間浪費(fèi)的問(wèn)題,又增強(qiáng)了區(qū)間規(guī)劃的靈活性;
[0096](4)采用簡(jiǎn)單的FIFO存儲(chǔ)機(jī)制實(shí)現(xiàn)對(duì)整個(gè)緩存ID的亂序管理,結(jié)構(gòu)簡(jiǎn)單,硬件易實(shí)現(xiàn),采用兩級(jí)FIFO加速處理方法,讓BID以FIFO的形式存在DDR3SDRAM中,結(jié)合Burst操作進(jìn)一步提高了 BID申請(qǐng)、釋放的效率;
[0097](5)當(dāng)預(yù)申請(qǐng)緩存空間ID隊(duì)列中BID被申請(qǐng)空,而此時(shí)待釋放緩存空間ID隊(duì)列中的BID未達(dá)到高閾值線不足以寫入DDR3SDRAM中時(shí),預(yù)申請(qǐng)緩存空間ID隊(duì)列與待釋放緩存空間ID隊(duì)列之間的應(yīng)急通道可以充分利用完剩余未被申請(qǐng)的BID。
[0098]通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案實(shí)質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明的實(shí)施例或?qū)嵤├哪承┎糠炙龅姆椒ā?br>【主權(quán)項(xiàng)】
1.網(wǎng)絡(luò)數(shù)據(jù)包緩存空間ID管理單元,其特征在于,包括:部件請(qǐng)求預(yù)處理模塊、BID申請(qǐng)請(qǐng)求FIFO模塊、BID釋放請(qǐng)求FIFO模塊、BID申請(qǐng)請(qǐng)求處理模塊、BID釋放請(qǐng)求處理模塊、申請(qǐng)BID讀接口控制模塊、釋放BID寫接口控制模塊、申請(qǐng)應(yīng)答分發(fā)模塊、釋放應(yīng)答分發(fā)豐吳塊; 部件請(qǐng)求預(yù)處理模塊:請(qǐng)求輸入端接外部對(duì)應(yīng)部件的請(qǐng)求輸出端,申請(qǐng)請(qǐng)求輸出端接BID申請(qǐng)請(qǐng)求FIFO模塊的申請(qǐng)請(qǐng)求輸入端,釋放請(qǐng)求輸出端接BID釋放請(qǐng)求FIFO模塊的釋放請(qǐng)求輸入端, BID申請(qǐng)請(qǐng)求FIFO模塊:申請(qǐng)請(qǐng)求輸出端接BID申請(qǐng)請(qǐng)求處理模塊的輸入端, BID申請(qǐng)請(qǐng)求處理模塊:應(yīng)答輸出端接申請(qǐng)應(yīng)答分發(fā)模塊輸入端,BID應(yīng)急申請(qǐng)請(qǐng)求輸出端接BID釋放請(qǐng)求處理模塊的BID應(yīng)急申請(qǐng)請(qǐng)求輸入端,總線讀請(qǐng)求輸出端接申請(qǐng)BID讀接口控制模塊輸入端, BID釋放請(qǐng)求FIFO模塊:釋放請(qǐng)求輸出端接BID釋放請(qǐng)求處理模塊的輸入端, BID釋放請(qǐng)求處理模塊:應(yīng)答輸出端接釋放應(yīng)答分發(fā)模塊輸入端,應(yīng)急申請(qǐng)BID輸