本申請(qǐng)涉及通信領(lǐng)域,并且更具體地,涉及通信領(lǐng)域中的數(shù)據(jù)處理裝置和終端。
背景技術(shù):
數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)交換是通信設(shè)備中一項(xiàng)核心技術(shù),目前常見(jiàn)的交換網(wǎng)為N×N交換網(wǎng),包括N×N的輸入交換模塊,N個(gè)數(shù)據(jù)緩存和N×N的輸出交換模塊,交換網(wǎng)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和讀取的過(guò)程為:在存儲(chǔ)時(shí),通過(guò)輸入交換模塊的N個(gè)輸入端接收交換網(wǎng)輸入端口輸入的數(shù)據(jù),將該N個(gè)輸入端接收到的數(shù)據(jù)按照負(fù)載均衡的方法存儲(chǔ)在與每個(gè)輸入端對(duì)應(yīng)的數(shù)據(jù)緩存中,在讀取時(shí),通過(guò)N×N的輸出交換模塊從該N個(gè)數(shù)據(jù)緩存中讀取數(shù)據(jù),再將數(shù)據(jù)交換到目標(biāo)輸出端口,進(jìn)行數(shù)據(jù)輸出。
然而,在現(xiàn)有的交換網(wǎng)中,輸出交換模塊需要對(duì)N×N的數(shù)據(jù)進(jìn)行交換,當(dāng)N較大的時(shí)候,輸出交換模塊進(jìn)行數(shù)據(jù)交換的計(jì)算復(fù)雜度較大,因此讀取數(shù)據(jù)的速度較慢。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)處理裝置,能夠降低輸出數(shù)據(jù)的計(jì)算復(fù)雜度,從而提高數(shù)據(jù)讀取速度。
第一方面,本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括:N個(gè)裝置輸入端、輸入交換模塊、K個(gè)緩存區(qū)、第一輸出交換模塊、第二輸出交換模塊和M個(gè)裝置輸出端,N和M均為大于1的整數(shù),其中,
該輸入交換模塊的N個(gè)輸入端與該N個(gè)裝置輸入端連接,該輸入交換模塊的K個(gè)輸出端與該K個(gè)緩存區(qū)對(duì)應(yīng);
該第一輸出交換模塊的K1個(gè)輸入端與該K個(gè)緩存區(qū)中的K1個(gè)緩存區(qū)對(duì)應(yīng),該第一輸出交換模塊的M個(gè)輸出端與該M個(gè)裝置輸出端連接,K1大于或等于1;
該第二輸出交換模塊的K2個(gè)輸入端與該K個(gè)緩存區(qū)中除該K1個(gè)緩存區(qū)外的K2個(gè)緩存區(qū)對(duì)應(yīng),該第二輸出交換模塊的M個(gè)輸出端與該M個(gè)裝置輸出端連接,K2大于或等于1。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,通過(guò)一個(gè)K1×M的第一輸出交換模塊和一個(gè)K2×M的第二輸出交換模塊共同完成K×M的輸出數(shù)據(jù)的計(jì)算,相比于通過(guò)一個(gè)K×M的輸出交換模塊進(jìn)行輸出數(shù)據(jù)的計(jì)算來(lái)說(shuō),能夠降低輸出數(shù)據(jù)的計(jì)算復(fù)雜度,從而提高數(shù)據(jù)讀取的速度。
應(yīng)理解,本申請(qǐng)實(shí)施例對(duì)K、M和N的大小關(guān)系不作限定。
可選地,K可以大于或等于M或N,更進(jìn)一步地,K1可以大于或等于M或N,K2可以大于或等于M或N。
當(dāng)K大于或等于N時(shí),數(shù)據(jù)處理裝置的N個(gè)裝置輸入端通過(guò)輸入交換模塊與K個(gè)緩存區(qū)對(duì)應(yīng),這樣輸入交換模塊每次最大可以將N個(gè)裝置輸入端傳入的數(shù)據(jù)存儲(chǔ)至K個(gè)緩存區(qū)中的任一個(gè)或多個(gè)緩存區(qū)中,相比于當(dāng)K小于N時(shí),每次只能將N個(gè)裝置輸入端中的K個(gè)裝置輸入端傳入的數(shù)據(jù)存儲(chǔ)至K個(gè)緩存區(qū),能夠提高緩存單元的利用率,并且最大限度地保證N個(gè)裝置輸入端傳入的數(shù)據(jù)能夠同時(shí)進(jìn)行存儲(chǔ)。
當(dāng)K大于M時(shí),該數(shù)據(jù)處理裝置通過(guò)第一輸出交換模塊和第二輸出交換模塊,每次最大可以同時(shí)從K個(gè)緩存區(qū)中同時(shí)讀取數(shù)據(jù),經(jīng)過(guò)合并后輸出至M個(gè)裝置輸出端,相比于當(dāng)K小于或等于M時(shí),通過(guò)一個(gè)輸出交換模塊,每次最大只能從M個(gè)緩存區(qū)中同時(shí)讀取數(shù)據(jù)并輸出至M個(gè)裝置輸出端,在提高數(shù)據(jù)的讀取速度的前提下,還能夠提高數(shù)據(jù)的讀取帶寬。
在一種可能的實(shí)現(xiàn)方式中,該輸入交換模塊用于獲取該N個(gè)裝置輸入端傳輸?shù)臄?shù)據(jù);該數(shù)據(jù)處理裝置還包括:寫仲裁模塊和讀仲裁模塊;該寫仲裁模塊的控制端與該輸入交換模塊的控制端連接,該寫仲裁模塊用于控制該輸入交換模塊將獲取到的數(shù)據(jù)均勻存儲(chǔ)至該K個(gè)緩存區(qū)中;該讀仲裁模塊的第一控制端與該第一輸出交換模塊的控制端連接,該讀仲裁模塊的第二控制端與該第二輸出交換模塊的控制端連接,該讀仲裁模塊用于控制該第一輸出交換模塊從該K1個(gè)緩存區(qū)中讀取數(shù)據(jù),控制該第二輸出交換模塊從該K2個(gè)緩存區(qū)中讀取數(shù)據(jù),并控制該第一輸出交換模塊和該第二輸出交換模塊將讀取到的數(shù)據(jù)傳輸至該M個(gè)裝置輸出端。
可選地,該寫仲裁可以采用負(fù)載均衡算法或者最小負(fù)載優(yōu)先算法等負(fù)載分擔(dān)算法,使得M個(gè)緩存區(qū)的達(dá)到負(fù)載均衡,本申請(qǐng)實(shí)施例對(duì)此不作限定。
在另一種可能的實(shí)現(xiàn)方式中,該數(shù)據(jù)處理裝置還包括:緩存管理模塊,該緩存管理模塊的第一地址端與該讀仲裁模塊的第一地址端連接,該緩存管理模塊的第二地址端與該寫仲裁模塊的第一地址端連接;該寫仲裁模塊用于從該緩存管理模塊獲取該K個(gè)緩存區(qū)中的第一緩存區(qū)的地址,控制該輸入交換模塊將獲取到的第一數(shù)據(jù)存儲(chǔ)至該第一緩存區(qū)中;該讀仲裁模塊用于控制該第一輸出交換模塊讀取該K1個(gè)緩存區(qū)中的第二緩存區(qū)的地址中存儲(chǔ)的第二數(shù)據(jù),將該第二緩存區(qū)的地址發(fā)送給該緩存管理模塊,并將該第二數(shù)據(jù)傳輸至該M個(gè)裝置輸出端中的第一裝置輸出端,其中該第一裝置輸出端為該第二數(shù)據(jù)的目的端口。
可選地,該第一數(shù)據(jù)與該第二數(shù)據(jù)可以相同,也可以不同,本申請(qǐng)實(shí)施例對(duì)此不作限定。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,緩存管理模塊能夠單獨(dú)管理M個(gè)緩存區(qū),寫仲裁模塊控制輸入交換模塊輸入的數(shù)據(jù)都是寫在從緩存管理模塊獲取的地址的存儲(chǔ)空間中,讀仲裁模塊從緩存區(qū)讀出數(shù)據(jù)后,會(huì)將讀取的數(shù)據(jù)的存儲(chǔ)地址發(fā)送給緩存管理模塊,這樣緩存管理模塊能夠知道每個(gè)緩存區(qū)的存儲(chǔ)空間狀態(tài),實(shí)現(xiàn)對(duì)每個(gè)緩存區(qū)的地址的管理,從而能夠避免寫仲裁模塊將數(shù)據(jù)存儲(chǔ)至不存在空閑存儲(chǔ)空間的緩存區(qū),或者避免讀仲裁模塊從未存有數(shù)據(jù)的緩存區(qū)中讀取數(shù)據(jù)。
在又一種可能的實(shí)現(xiàn)方式中,該第一緩存區(qū)與該第二緩存區(qū)相同,該第一緩存區(qū)包括多個(gè)單端口的緩存單元,該寫仲裁模塊用于從該緩存管理模塊獲取該第一緩存區(qū)包括的多個(gè)緩存單元中第一緩存單元的地址,控制該輸入交換模塊將該第一數(shù)據(jù)存儲(chǔ)至該第一緩存單元的地址中;該讀仲裁模塊用于控制該第一輸出交換模塊讀取該多個(gè)緩存單元中除該第一緩存單元以外的第二緩存單元的地址中存儲(chǔ)的該第二數(shù)據(jù),將該第二緩存單元的地址發(fā)送給該緩存管理模塊,并將該第二數(shù)據(jù)傳輸至該第一裝置輸出端。
應(yīng)理解,本申請(qǐng)實(shí)施例中的緩存區(qū)可以為多個(gè)單端口緩存或者一個(gè)雙端口緩存,其中,單端口緩存表示不允許同時(shí)執(zhí)行讀取和寫入操作,即一次數(shù)據(jù)處理只能為讀取數(shù)據(jù)或者寫入數(shù)據(jù);雙端口緩存表示允許同時(shí)執(zhí)行讀取和寫入操作,即一次數(shù)據(jù)處理可以同時(shí)執(zhí)行讀取數(shù)據(jù)和寫入數(shù)據(jù)。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,緩存區(qū)為雙端口緩存能夠提高數(shù)據(jù)處理裝置的并行處理能力,緩存區(qū)為多個(gè)單端口緩存能夠降低數(shù)據(jù)處理裝置的成本開(kāi)銷。
在又一種可能的實(shí)現(xiàn)方式中,若該寫仲裁模塊存儲(chǔ)數(shù)據(jù)的優(yōu)先級(jí)高于該讀仲裁模塊讀取數(shù)據(jù)的優(yōu)先級(jí);該寫仲裁模塊用于統(tǒng)計(jì)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),根據(jù)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),將該多個(gè)緩存單元中數(shù)據(jù)存儲(chǔ)量小于第一閾值緩存單元作為該第一緩存單元,并向該緩存管理模塊發(fā)送用于請(qǐng)求該第一緩存單元的地址的第一請(qǐng)求信息;該緩存管理模塊用于根據(jù)該第一請(qǐng)求信息向該寫仲裁模塊發(fā)送該第一緩存單元的寫地址,該第一緩存單元的寫地址為該第一緩存單元中空閑存儲(chǔ)空間的地址;該寫仲裁模塊還用于獲取該緩存管理模塊傳輸?shù)脑搶懙刂?,控制該輸入交換模塊將該第一數(shù)據(jù)存儲(chǔ)至該寫地址中。
應(yīng)理解,數(shù)據(jù)處理裝置進(jìn)行數(shù)據(jù)處理的方式可以為分為讀優(yōu)先和寫優(yōu)先兩種方式,在讀優(yōu)先的方式下,讀取數(shù)據(jù)操作的優(yōu)先級(jí)高于寫入(存儲(chǔ))數(shù)據(jù)操作的優(yōu)先級(jí);在寫優(yōu)先的方式下,寫入數(shù)據(jù)操作的優(yōu)先級(jí)高于讀取數(shù)據(jù)操作的優(yōu)先級(jí)。
讀優(yōu)先方式,表示數(shù)據(jù)處理裝置在進(jìn)行數(shù)據(jù)處理的過(guò)程中,首先保證能夠從存儲(chǔ)有數(shù)據(jù)的緩存區(qū)中讀取數(shù)據(jù)并輸出到裝置輸出端,其次完成數(shù)據(jù)寫入到具有空閑存儲(chǔ)空間的緩存區(qū)中。
寫優(yōu)先方式,表示數(shù)據(jù)處理裝置在進(jìn)行數(shù)據(jù)處理的過(guò)程中,首先保證數(shù)據(jù)能夠存儲(chǔ)至具有空閑存儲(chǔ)空間的緩存區(qū),其次完成從存儲(chǔ)有數(shù)據(jù)的緩存區(qū)中讀取數(shù)據(jù)。
在又一種可能的實(shí)現(xiàn)方式中,該寫仲裁模塊的反饋端與該讀仲裁模塊的反饋端連接;該寫仲裁模塊還用于向該讀仲裁模塊發(fā)送用于反饋該第一緩存單元當(dāng)前正在存儲(chǔ)數(shù)據(jù)的第一反饋信息;該讀仲裁模塊還用于根據(jù)該第一反饋信息,將該多個(gè)緩存單元中除該第一緩存單元以外、且數(shù)據(jù)存儲(chǔ)量大于第二閾值的緩存單元作為該第二緩存單元,控制該第一輸出交換模塊讀取該第二緩存單元中存儲(chǔ)的該第二數(shù)據(jù),將該第二緩存單元的地址發(fā)送給該緩存管理模塊,并將該第二數(shù)據(jù)傳輸至該第一裝置輸出端。
在又一種可能的實(shí)現(xiàn)方式中,若該讀仲裁模塊讀取數(shù)據(jù)的優(yōu)先級(jí)高于該寫仲裁模塊存儲(chǔ)數(shù)據(jù)的優(yōu)先級(jí);該讀仲裁模塊用于統(tǒng)計(jì)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),根據(jù)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),將該多個(gè)緩存單元中數(shù)據(jù)存儲(chǔ)量大于第三閾值的緩存單元作為該第二緩存單元,并向該緩存管理模塊發(fā)送用于請(qǐng)求該第二緩存單元的地址的第二請(qǐng)求信息該緩存管理模塊用于根據(jù)該第二請(qǐng)求信息向該讀仲裁模塊發(fā)送該第二緩存單元的讀地址,該第二緩存單元的讀地址為該第二緩存單元中存儲(chǔ)該第二數(shù)據(jù)的存儲(chǔ)空間的地址;該讀仲裁模塊還用于獲取該緩存管理模塊傳輸?shù)脑撟x地址,控制該第一輸出交換模塊從該讀地址中讀取該第二數(shù)據(jù)。
在又一種可能的實(shí)現(xiàn)方式中,該寫仲裁模塊的反饋端與該讀仲裁模塊的反饋端連接;該讀仲裁模塊還用于向該寫仲裁模塊發(fā)送用于反饋該第二緩存單元當(dāng)前正在讀取數(shù)據(jù)的第二反饋信息;該寫仲裁模塊還用于根據(jù)該第二反饋信息,將該多個(gè)緩存單元中除該第二緩存外、且數(shù)據(jù)存儲(chǔ)量小于第四閾值的緩存單元作為該第一緩存單元,控制該輸入交換模塊將該第一數(shù)據(jù)存儲(chǔ)至該第一緩存單元的地址中。
在又一種可能的實(shí)現(xiàn)方式中,該讀仲裁模塊還用于控制該第二輸出交換模塊讀取該K2個(gè)緩存區(qū)中的第三緩存區(qū)中存儲(chǔ)的第三數(shù)據(jù),將該第三數(shù)據(jù)傳輸至該M個(gè)裝置輸出端的第二裝置輸出端,并將該第三緩存區(qū)的地址發(fā)送給該緩存管理模塊,該第二裝置輸出端為該第三數(shù)據(jù)的目的端口。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,讀仲裁模塊與寫仲裁模塊可以及時(shí)反饋?zhàn)x取或?qū)懭氩僮鞯男畔ⅲ⒃谶M(jìn)行讀取或?qū)懭氩僮骱?,通知緩存管理模塊更新數(shù)據(jù)存儲(chǔ)狀態(tài),能夠提高數(shù)據(jù)處理裝置的處理效率。
在又一種可能的實(shí)現(xiàn)方式中,該數(shù)據(jù)處理裝置還包括:第一重排模塊和第二重排模塊,其中:該第一輸出交換模塊的M個(gè)輸出端與該第一重排模塊的M個(gè)輸入端連接,該第二輸出交換模塊的M個(gè)輸出端與該第二重排模塊的M個(gè)輸入端連接;該第一重排模塊的M個(gè)輸出端與該M個(gè)裝置輸出端連接,該第二重排模塊的M個(gè)輸出端與該M個(gè)裝置輸出端連接;該讀仲裁模塊還用于控制該第一輸出交換模塊將讀取到的數(shù)據(jù)傳輸至該第一重排模塊,以及控制該第二輸出交換模塊將讀取到的數(shù)據(jù)傳輸至該第二重排模塊;該第一重排模塊用于獲取該第一輸出交換模塊傳輸?shù)臄?shù)據(jù),對(duì)從相同的裝置輸出端輸出的數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果將數(shù)據(jù)傳輸至相應(yīng)的裝置輸出端;該第二重排模塊用于獲取該第二輸出交換模塊讀取的數(shù)據(jù),對(duì)從相同的裝置輸出端輸出的數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果將數(shù)據(jù)傳輸至相應(yīng)的裝置輸出端。
可選地,第一重排模塊和第二重排模塊對(duì)數(shù)據(jù)進(jìn)行排序可以為按照先入先出的原則進(jìn)行排序,即同一個(gè)裝置輸出端的數(shù)據(jù)按照在緩存區(qū)中緩存時(shí)間的先后順序進(jìn)行。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,通過(guò)重排模塊對(duì)輸出數(shù)據(jù)進(jìn)行排序,先到的數(shù)據(jù)可以優(yōu)先輸出,能夠提高減少重排模塊的緩存占用時(shí)延。
在又一個(gè)可能的實(shí)現(xiàn)方式中,該數(shù)據(jù)處理裝置還包括隊(duì)列管理模塊,該隊(duì)列管理模塊的第一地址端與該寫仲裁模塊的第二地址端連接,該隊(duì)列管理模塊的第二地址端與該讀仲裁的第二地址端連接;該隊(duì)列管理模塊用于獲取該寫仲裁模塊傳輸?shù)臄?shù)據(jù)信息,該數(shù)據(jù)信息包括該寫仲裁模塊獲取到的數(shù)據(jù)的源端口、目的端口和存儲(chǔ)該數(shù)據(jù)的存儲(chǔ)地址,根據(jù)該數(shù)據(jù)信息生成信源描述符CD,并將該CD加入輸出隊(duì)列,通過(guò)該輸出隊(duì)列將該CD輸出給讀仲裁模塊,該輸出隊(duì)列的源端口為該數(shù)據(jù)的源端口,該輸出隊(duì)列的目的端口為該數(shù)據(jù)的目的端口,該N個(gè)裝置輸入端包括該數(shù)據(jù)的源端口,該N個(gè)裝置輸出端包括該數(shù)據(jù)的目的端口;該讀仲裁模塊用于獲取隊(duì)列管理模塊傳輸?shù)脑揅D,根據(jù)該CD控制該輸出交換模塊讀取該存儲(chǔ)地址中存儲(chǔ)的該數(shù)據(jù),并將該存儲(chǔ)地址發(fā)送給該緩存管理模塊,控制與該存儲(chǔ)地址對(duì)應(yīng)的輸出交換模塊將該數(shù)據(jù)輸出到該數(shù)據(jù)的目的端口。
第二方面,本申請(qǐng)?zhí)峁┝艘环N終端,該終端包括如上述第一方面或其各種實(shí)現(xiàn)方式所述的數(shù)據(jù)處理裝置。
附圖說(shuō)明
圖1是本申請(qǐng)實(shí)施例的數(shù)據(jù)處理裝置的示意性框圖;
圖2是本申請(qǐng)實(shí)施例的另一數(shù)據(jù)處理裝置的示意性框圖;
圖3是本申請(qǐng)實(shí)施例的又一數(shù)據(jù)處理裝置的示意性框圖;
圖4是本申請(qǐng)實(shí)施例的又一數(shù)據(jù)處理裝置的示意性框圖;
圖5是本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法的示意性流程圖。
具體實(shí)施方式
下面將結(jié)合附圖,對(duì)本申請(qǐng)中的技術(shù)方案進(jìn)行描述。
圖1示出了本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,如圖1所示,該數(shù)據(jù)處理裝置包括:N個(gè)裝置輸入端(如圖1中所示的裝置輸入端1011至101N)、輸入交換模塊110、K個(gè)緩存區(qū)(如圖1中所示的緩存區(qū)1201至120K)、第一輸出交換模塊131、第二輸出交換模塊132和M個(gè)裝置輸出端(如圖1中所示的裝置輸出端1021至102M),N和M均為大于1的整數(shù)。
該輸入交換模塊110包括N個(gè)輸入端(如圖1中所示的輸入端1111至111N)和K個(gè)輸出端(如圖1中所示的輸出端1121至112K)。該輸入交換模塊的輸入端1111至111N與裝置輸入端1011至101N連接,該輸入交換模塊的輸出端1121至112K分別與該K個(gè)緩存區(qū)對(duì)應(yīng)。
該第一輸出交換模塊131包括K1個(gè)輸入端(如圖1中所示的輸入端1311至131K1)和M個(gè)輸出端(如圖1中所示的1321至132M)。該第一輸出交換模塊的輸入端1311至131K1分別與該K個(gè)緩存區(qū)中的K1個(gè)緩存區(qū)(如圖1中所示的緩存區(qū)1201至120K1)對(duì)應(yīng),該第一輸出交換模塊的輸出端1321至132M與該裝置輸出端1021至102M連接,K1大于或等于1。
該第二輸出交換模塊132包括K2個(gè)輸入端(如圖1中所示的輸入端1331至133K2)和M個(gè)輸出端(如圖1中所示的1341至134M)。該第二輸出交換模塊的輸入端1331至133K2分別與該K個(gè)緩存區(qū)中的K2個(gè)緩存區(qū)對(duì)應(yīng),該K2緩存區(qū)可以理解為該K個(gè)緩存區(qū)中除與第一輸出交換模塊對(duì)應(yīng)的K1個(gè)緩存區(qū)以外的緩存區(qū)(如圖1中所示的緩存區(qū)120(K1+1)至120K),該第二輸出交換模塊的輸出端1341至134M與該裝置輸出端1021至102M連接,K2大于或等于1。
可選地,該第一輸出交換模塊和該第二輸出交換模塊各自獲取到的傳輸至相同裝置輸出端的數(shù)據(jù)可以進(jìn)行合并后,傳輸?shù)较鄳?yīng)的裝置輸出端,本申請(qǐng)實(shí)施例對(duì)此不作限定。
還應(yīng)理解,本申請(qǐng)實(shí)施例僅以將緩存區(qū)劃分為兩組緩存區(qū),每組緩存區(qū)對(duì)應(yīng)于一個(gè)輸出交換模塊,即包括兩個(gè)輸出交換模塊為例進(jìn)行說(shuō)明,本發(fā)明實(shí)施例還可以將緩存區(qū)劃分為多組緩存區(qū),每組緩存區(qū)對(duì)應(yīng)于一個(gè)輸出交換模塊,即包括多個(gè)輸出交換模塊,本申請(qǐng)實(shí)施例對(duì)此不作限定。
作為一個(gè)可選實(shí)施例,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置可以包括N個(gè)裝置輸入端(如圖1中所示的裝置輸入端1011至101N)、輸入交換模塊110、多個(gè)處理模塊(圖1中示出了第一處理模塊和第二處理模塊)和M個(gè)裝置輸出端(如圖1中所示的裝置輸出端1021至102M),N和M均為大于1的整數(shù),其中,第一處理模塊包括K1個(gè)緩存區(qū)(圖1中示出了緩存區(qū)1201至120K1)和第一輸出交換模塊131,第二處理模塊包括K2個(gè)緩存區(qū)(圖1中示出了緩存區(qū)120(K1+1)至緩存區(qū)120K)和第二輸出交換模塊132。在圖1中,第一組緩存區(qū)中的緩存與第一輸出交換模塊131對(duì)應(yīng),第二組緩存區(qū)與第二輸出交換模塊132對(duì)應(yīng)。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,通過(guò)一個(gè)K1×M的第一輸出交換模塊和一個(gè)K2×M的第二輸出交換模塊共同完成K×M的輸出數(shù)據(jù)的計(jì)算,相比于通過(guò)一個(gè)K×M的輸出交換模塊進(jìn)行輸出數(shù)據(jù)的計(jì)算來(lái)說(shuō),能夠降低輸出數(shù)據(jù)的計(jì)算復(fù)雜度,從而提高數(shù)據(jù)的讀取速度。
應(yīng)理解,本申請(qǐng)實(shí)施例對(duì)K、M和N的大小關(guān)系不作限定。
可選地,K可以大于或等于M或N,更進(jìn)一步地,K1可以大于或等于M或N,K2可以大于或等于M或N。
當(dāng)K大于或等于N時(shí),數(shù)據(jù)處理裝置的N個(gè)裝置輸入端通過(guò)輸入交換模塊與K個(gè)緩存區(qū)對(duì)應(yīng),這樣輸入交換模塊每次可以將N個(gè)裝置輸入端傳入的數(shù)據(jù)存儲(chǔ)至K個(gè)緩存區(qū)中的任一個(gè)或多個(gè)緩存區(qū)中,相比于當(dāng)K小于N時(shí),每次最多只能將N個(gè)裝置輸入端中的K個(gè)裝置輸入端傳入的數(shù)據(jù)存儲(chǔ)至K個(gè)緩存區(qū),能夠提高緩存單元的利用率,并且最大限度地保證N個(gè)裝置輸入端傳入的數(shù)據(jù)能夠同時(shí)進(jìn)行存儲(chǔ)。
當(dāng)K大于M時(shí),該數(shù)據(jù)處理裝置通過(guò)第一輸出交換模塊和第二輸出交換模塊,每次最大可以同時(shí)從K個(gè)緩存區(qū)中同時(shí)讀取數(shù)據(jù),經(jīng)過(guò)合并后輸出至M個(gè)裝置輸出端,相比于當(dāng)K小于或等于M時(shí),通過(guò)一個(gè)輸出交換模塊,每次最大只能從M個(gè)緩存區(qū)中同時(shí)讀取數(shù)據(jù)并輸出至M個(gè)裝置輸出端,在提高數(shù)據(jù)的讀取速度的前提下,還能夠提高數(shù)據(jù)的讀取帶寬。
可選地,上述輸入交換模塊、第一輸出交換模塊和第二輸出交換模塊的輸入端均可以為虛擬的端口。
作為一個(gè)可選實(shí)施例,該輸入交換模塊的K個(gè)輸出端與該K個(gè)緩存區(qū)一一對(duì)應(yīng),可以理解為該輸入交換模塊的輸出端1121至輸出端112K分別與緩存區(qū)1201至緩存區(qū)120K連接,即輸入交換模塊的輸出端可以向與該輸出端對(duì)應(yīng)的緩存區(qū)中寫入數(shù)據(jù)。
作為另一個(gè)可選實(shí)施例,該第一輸出交換模塊的K1個(gè)輸入端與該K1個(gè)緩存區(qū)一一對(duì)應(yīng),可以理解為該第一輸出交換模塊的輸入端1311至輸入端131K1分別與緩存區(qū)1201至緩存區(qū)120K1連接,即該第一輸出交換模塊的輸入端可以從該K1個(gè)緩存區(qū)中與該輸入端對(duì)應(yīng)的緩存區(qū)中讀取數(shù)據(jù);該第二輸出交換模塊的K2個(gè)輸入端與該K2個(gè)緩存區(qū)一一對(duì)應(yīng),可以理解為該第二輸出交換模塊的輸入端1331至輸入端133K2分別與緩存區(qū)120(K1+1)至緩存區(qū)120K連接,即該第二輸出交換模塊的輸入端可以從該K2個(gè)緩存區(qū)中與該輸入端對(duì)應(yīng)的緩存區(qū)中讀取數(shù)據(jù)。
作為又一個(gè)可選實(shí)施例,該第一輸出交換模塊的輸出端1321至132M與該第二輸出交換模塊的輸出端1341至134M均分別與該裝置輸出端1021至102M連接,可以理解為對(duì)于每個(gè)裝置輸出端,與其連接的第一輸出交換模塊的輸出端輸出的數(shù)據(jù)和第二輸出交換模塊的輸出端輸出的數(shù)據(jù),需要先進(jìn)行數(shù)據(jù)合路處理,然后再通過(guò)該裝置輸出端輸出,本申請(qǐng)實(shí)施例對(duì)此不許限定。
可選地,該輸入交換模塊110可以為輸入交換開(kāi)關(guān)(Input Cross-Bar,IXB),其中,該IXB可以包括N個(gè)K選1的選擇器(例如:輸入交換模塊包括10個(gè)輸入端,16個(gè)輸出端,則IXB包括10個(gè)16選1的選擇器)。第一輸出交換模塊和該第二輸出交換模塊可以是輸出交換開(kāi)關(guān)(Output Cross Bar,OXB),其中,該第一輸出交換模塊可以包括K1個(gè)M選1的選擇器(例如:輸出交換模塊包括8個(gè)輸入端,12個(gè)輸出端,則OXB1包括8個(gè)12選1的選擇器),該第二輸出交換模塊可以包括K2個(gè)M選1的選擇器(例如:輸入交換模塊包括8個(gè)輸入端,12個(gè)輸出端,則OXB2包括8個(gè)12選1的選擇器),本申請(qǐng)實(shí)施例對(duì)此不作限定。
應(yīng)理解,緩存可以包括只讀存儲(chǔ)記憶體(read-only memory,ROM),或者隨機(jī)存取存儲(chǔ)器(random access memory,RAM)。另外,緩存分為雙端口緩存和單端口緩存,雙端口緩存允許同時(shí)對(duì)其進(jìn)行寫數(shù)據(jù)和讀數(shù)據(jù)的操作,單端口緩存在同一時(shí)刻僅允許對(duì)其進(jìn)行寫數(shù)據(jù)或讀數(shù)據(jù)的操作。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,緩存區(qū)采用雙端口緩存能夠提高數(shù)據(jù)處理的并行度。
可選地,如圖2所示,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置還可以包括寫仲裁模塊140和讀仲裁模塊150,該寫仲裁模塊的控制端1411與輸入交換模塊的控制端1131連接,該讀仲裁模塊的控制端1511與輸入交換模塊的控制端1351連接。
該輸入交換模塊110用于獲取該N個(gè)裝置輸入端傳輸?shù)臄?shù)據(jù)。
該寫仲裁模塊140用于控制該輸入交換模塊110將獲取到的數(shù)據(jù)均勻存儲(chǔ)至該K個(gè)緩存區(qū)中。
該讀仲裁模塊150用于控制該第一輸出交換模塊131從該K1個(gè)緩存區(qū)中讀取數(shù)據(jù),控制該第二輸出交換模塊132從該K2個(gè)緩存區(qū)中讀取數(shù)據(jù),并控制該第一輸出交換模塊131和該第二輸出交換模塊132將讀取到的數(shù)據(jù)傳輸至該M個(gè)裝置輸出端。
可選地,如圖2所示,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置還可以包括第一重排模塊161和第二重排模塊162,該第一輸出交換模塊的輸出端1321至輸出端132M與該第一重排模塊的輸入端1611至輸入端161M一一連接,該第二輸出交換模塊的輸出端1341至輸出端134M與該第二重排模塊的輸入端1631至輸入端163M一一連接,該第一重排模塊的輸出端1621至輸出端162M與裝置輸出端一一連接,該第二重排模塊的輸出端1641至輸出端164M與裝置輸出端一一連接。
該讀仲裁模塊150還用于控制該第一輸出交換模塊131將讀取到的數(shù)據(jù)傳輸至該第一重排模塊161,以及控制該第二輸出交換模塊132將讀取到的數(shù)據(jù)傳輸至該第二重排模塊162。
該第一重排模塊161用于獲取該第一輸出交換模塊131傳輸?shù)臄?shù)據(jù),當(dāng)具有相同目的端口的數(shù)據(jù)為多個(gè)時(shí),對(duì)具有相同目的端口的數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果傳輸至相應(yīng)的裝置輸出端;
該第二重排模塊162用于獲取該第二輸出交換模塊132讀取的數(shù)據(jù),當(dāng)具有相同目的端口的數(shù)據(jù)為多個(gè)時(shí),對(duì)具有相同目的端口的數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果傳輸至相應(yīng)的裝置輸出端。
作為一個(gè)可選實(shí)施例,該輸入交換模塊可以獲取目標(biāo)裝置輸入端輸入的目標(biāo)數(shù)據(jù),該寫仲裁模塊可以控制該輸入交換模塊將該目標(biāo)數(shù)據(jù)存儲(chǔ)至目標(biāo)緩存區(qū)中,其中,該目標(biāo)數(shù)據(jù)可以為一個(gè)或多個(gè)數(shù)據(jù),本申請(qǐng)實(shí)施例對(duì)此不作限定。
作為另一個(gè)可選實(shí)施例,該讀仲裁模塊可以控制該第一輸出交換模塊從該K1個(gè)緩存區(qū)中包括的目標(biāo)緩存區(qū)中讀取目標(biāo)數(shù)據(jù),以及控制該第二輸出交換模塊從該K2個(gè)緩存區(qū)中包括的目標(biāo)緩存區(qū)中讀取目標(biāo)數(shù)據(jù),并控制該第一輸出交換模塊將讀取到的目標(biāo)數(shù)據(jù)傳輸至第一重排模塊的目標(biāo)輸入端,以及控制該第二輸出交換模塊將讀取到的目標(biāo)數(shù)據(jù)傳輸至第二重排模塊的目標(biāo)輸入端。
應(yīng)理解,第一重排模塊的目標(biāo)輸入端為該第一重排模塊中用于將目標(biāo)數(shù)據(jù)傳輸至該第一重排模塊的目標(biāo)輸出端的輸入端,該目標(biāo)輸出端為該第一重排模塊中與該數(shù)據(jù)的目的端口連接的輸出端,該數(shù)據(jù)的目的端口為該數(shù)據(jù)處理裝置的一個(gè)或多個(gè)輸出端,第二輸出交換模塊的目標(biāo)輸入端和目標(biāo)輸出端與第一重排模塊類似,此處不再贅述。
作為一個(gè)可選實(shí)施例,該第一重排模塊可以獲取第一輸出交換模塊傳輸?shù)哪繕?biāo)數(shù)據(jù),當(dāng)該第一重排模塊的存儲(chǔ)空間中存在目的端口與該目標(biāo)數(shù)據(jù)的目的端口相同的數(shù)據(jù)為多個(gè)時(shí),對(duì)目的端口相同的數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果將該目的端口相同的數(shù)據(jù)傳輸至該目的端口,其中,該M個(gè)裝置輸出端包括該目的端口,第二輸出交換模塊的處理方法與第一重排模塊的處理方法類似,此處不再贅述。
作為另一個(gè)可選實(shí)施例,該第一重排模塊可以獲取第一輸出交換模塊傳輸?shù)哪繕?biāo)數(shù)據(jù),當(dāng)該第一重排模塊的存儲(chǔ)空間中存在目的端口與該目標(biāo)數(shù)據(jù)的目的端口相同的數(shù)據(jù)為一個(gè)時(shí),例如,除了目標(biāo)數(shù)據(jù)之外,不存在與目標(biāo)數(shù)據(jù)的目的端口相同的其他數(shù)據(jù),且目標(biāo)數(shù)據(jù)為一個(gè)數(shù)據(jù),將該目標(biāo)數(shù)據(jù)傳輸至目的端口,其中,該M個(gè)裝置輸出端包括該目的端口,第二輸出交換模塊的處理方法與第一重排模塊的處理方法類似,此處不再贅述。
可選地,第一重排模塊和第二重重排模塊可以為重排緩沖器,重排緩沖器的每個(gè)輸入端可以單獨(dú)對(duì)應(yīng)一個(gè)重排緩沖器內(nèi)的存儲(chǔ)空間,且該輸入端對(duì)應(yīng)的存儲(chǔ)空間還對(duì)應(yīng)序號(hào)與該輸入端序號(hào)相同的輸出端,例如,如圖2所示,第一重排模塊161的輸入端1611對(duì)應(yīng)存儲(chǔ)空間1,輸出端1621也對(duì)應(yīng)存儲(chǔ)空間1,即輸入端1611接收到的數(shù)據(jù)存儲(chǔ)空間1,輸出端1621再對(duì)存儲(chǔ)空間1的數(shù)據(jù)進(jìn)行輸出。上述存儲(chǔ)空間可以為緩存空間。為方便說(shuō)明,輸入端對(duì)應(yīng)的存儲(chǔ)空間可以理解為序號(hào)為與該輸入端序號(hào)相同的輸出端的存儲(chǔ)空間,通過(guò)上述方式可以實(shí)現(xiàn)每個(gè)存儲(chǔ)空間所存儲(chǔ)的數(shù)據(jù)為同一目的端口的數(shù)據(jù),本申請(qǐng)實(shí)施例對(duì)此不作限定。
可選地,上述目標(biāo)數(shù)據(jù)可以指一個(gè)數(shù)據(jù)或者多個(gè)數(shù)據(jù),當(dāng)目標(biāo)數(shù)據(jù)為一個(gè)數(shù)據(jù)時(shí),上述數(shù)據(jù)處理裝置的目標(biāo)輸入端可以為一個(gè)裝置輸入端;上述目標(biāo)緩存區(qū)可以為一個(gè)緩存區(qū);上述第一重排模塊或第二重排模塊的目標(biāo)輸入端可以為一個(gè)輸入端,上述第一重排模塊或第二重排模塊的目標(biāo)輸出端可以為一個(gè)輸出端。這樣只需要第一重排模塊或第二重排模塊的存儲(chǔ)空間包括目標(biāo)數(shù)據(jù),以及包括另一個(gè)或多個(gè)目的端口與目標(biāo)數(shù)據(jù)的目的端口相同的數(shù)據(jù)時(shí),該第一重排模塊或該第二重排模塊可以對(duì)這些數(shù)據(jù)進(jìn)行排序,然后按照排序結(jié)果將這些數(shù)據(jù)輸出至該目的端口。其中,排序可以是按照先入先出的原則進(jìn)行排序,即同一個(gè)目的端口的數(shù)據(jù)按照在緩存單元中緩存時(shí)間的先后順序進(jìn)行輸出。
另外,當(dāng)上述目標(biāo)數(shù)據(jù)為多個(gè)數(shù)據(jù)時(shí),上述目標(biāo)裝置輸入端可以為該N個(gè)裝置輸入端中的一個(gè)或多個(gè),例如,一個(gè)裝置輸入端輸入多個(gè)數(shù)據(jù),或者多個(gè)裝置輸入端各輸入一個(gè)數(shù)據(jù);上述目標(biāo)緩存區(qū)可以為一個(gè)或多個(gè)緩存區(qū),例如,一個(gè)緩存區(qū)存儲(chǔ)多個(gè)數(shù)據(jù),或者多個(gè)緩存區(qū)各存儲(chǔ)一個(gè)數(shù)據(jù);上述第一重排模塊或第二重排模塊的目標(biāo)輸入端可以為一個(gè)輸入端,例如,上述目標(biāo)數(shù)據(jù)分別存儲(chǔ)至第一重排模塊和第二重排模塊,且該目標(biāo)數(shù)據(jù)包括的多個(gè)數(shù)據(jù)的目的端口相同時(shí),第一重排模塊和第二重排模塊可以分別對(duì)存儲(chǔ)空間中的數(shù)據(jù)進(jìn)行排序,分別按照排序結(jié)果輸出至該目的端口,或者當(dāng)上述目標(biāo)數(shù)據(jù)包括的多個(gè)數(shù)據(jù)的目的端口不相同時(shí),第一重排模塊和第二重排模塊可以查看各自的存儲(chǔ)空間中是否還存在其它與目標(biāo)數(shù)據(jù)的目的端口相同的數(shù)據(jù),若有,則分別對(duì)不同目的端口的數(shù)據(jù)進(jìn)行排序,然后按照排序結(jié)果進(jìn)行輸出。
還應(yīng)理解,該讀仲裁模塊讀取的數(shù)據(jù)與該寫仲裁模塊存入的數(shù)據(jù)可以相同,也可以不同,當(dāng)讀仲裁模塊讀取的數(shù)據(jù)為寫仲裁模塊寫入的目標(biāo)數(shù)據(jù)時(shí),可以理解為該數(shù)據(jù)處理裝置對(duì)目標(biāo)數(shù)據(jù)從輸入到輸出的處理過(guò)程,當(dāng)讀仲裁模塊讀取的數(shù)據(jù)與寫仲裁模塊寫入的目標(biāo)數(shù)據(jù)不同時(shí),可以理解為在寫仲裁模塊控制輸入交換模塊將目標(biāo)數(shù)據(jù)寫入目標(biāo)緩存的同時(shí),讀仲裁模塊控制第一輸出交換模塊和第二輸出交換模塊本輪從各自對(duì)應(yīng)的緩存區(qū)中讀取在上一輪已經(jīng)存儲(chǔ)的其他目標(biāo)數(shù)據(jù),本申請(qǐng)實(shí)施例對(duì)此不作限定。
例如,上述輸入交換模塊110通過(guò)輸入端1111接收裝置輸入端1011傳輸?shù)哪繕?biāo)數(shù)據(jù),寫仲裁模塊140控制該輸入交換模塊110將該目標(biāo)數(shù)據(jù)存儲(chǔ)至緩存區(qū)120K1(例如緩存區(qū)120K1中存儲(chǔ)的數(shù)據(jù)量最小),即輸入交換模塊110將輸入端1111接收到的目標(biāo)數(shù)據(jù)從輸出端112K1輸出至緩存區(qū)120K1,讀仲裁模塊150可以控制第一輸出交換模塊131的輸入端131K1從緩存區(qū)120K1中讀取該目標(biāo)數(shù)據(jù),同時(shí),讀仲裁模塊150得知該目標(biāo)數(shù)據(jù)的目的端口為裝置輸出端1022時(shí),該讀仲裁模塊150將該目標(biāo)數(shù)據(jù)從輸出端1322傳輸至第一重排模塊161的輸入端1612,當(dāng)?shù)谝恢嘏拍K161的存儲(chǔ)空間還包括另外一個(gè)或多個(gè)目的端口與該目標(biāo)數(shù)據(jù)相同的數(shù)據(jù)時(shí),第一重排模塊161可對(duì)這些目的端口為裝置輸出端1022的多個(gè)數(shù)據(jù)進(jìn)行排序,再按照排序結(jié)果將這些數(shù)據(jù)通過(guò)第一重排模塊的輸出端1622傳輸至裝置輸出端1022。
又例如,例如,上述輸入交換模塊110通過(guò)輸入端1111和輸入端1113分別接收裝置輸入端1011和裝置輸入端1013傳輸?shù)牡谝粩?shù)據(jù)和第二數(shù)據(jù),寫仲裁模塊140控制該輸入交換模塊110將該第一數(shù)據(jù)存儲(chǔ)至緩存區(qū)120K1(例如緩存區(qū)120K1中存儲(chǔ)的數(shù)據(jù)量最小),將該第二數(shù)據(jù)存儲(chǔ)至緩存區(qū)120(K1+1)(例如緩存區(qū)120(K1+1)中存儲(chǔ)的數(shù)據(jù)量最小),即輸入交換模塊110將輸入端1111接收到的第一數(shù)據(jù)從輸出端112K1輸出至緩存區(qū)120K1,將輸入端1113接收到的第二數(shù)據(jù)從輸出端112(K1+1)輸出至緩存區(qū)120(K1+1),讀仲裁模塊150可以控制第一輸出交換模塊131的輸入端131K1從緩存區(qū)120K1中讀取該第一數(shù)據(jù),控制第二輸出交換模塊132的輸入端1331從緩存區(qū)120(K1+1)中讀取該第二數(shù)據(jù),同時(shí),讀仲裁模塊150得知該第一數(shù)據(jù)的目的端口為裝置輸出端1022,該第二數(shù)據(jù)的目的端口為裝置輸出端1023時(shí),該讀仲裁模塊150可以將該第一數(shù)據(jù)從第一輸出交換模塊131的輸出端1322傳輸至第一重排模塊161的輸入端1612,當(dāng)?shù)谝恢嘏拍K161的輸入端1612對(duì)應(yīng)的存儲(chǔ)空間包括多個(gè)數(shù)據(jù)時(shí),即第一重排模塊161的存儲(chǔ)空間包括多個(gè)目的端口為裝置輸出端1022時(shí),該第一重排模塊161對(duì)這些目的端口為裝置輸出端1022的多個(gè)數(shù)據(jù)進(jìn)行排序,并按照排序結(jié)果將這些數(shù)據(jù)通過(guò)第一重排模塊161的輸出端1622傳輸至裝置輸出端1022;該讀仲裁模塊150還可以將該第二數(shù)據(jù)從第二輸出交換模塊132的輸出端1343傳輸?shù)诙嘏拍K162的輸入端1633,當(dāng)?shù)诙嘏拍K162的輸入端1633對(duì)應(yīng)的存儲(chǔ)空間包括多個(gè)數(shù)據(jù)時(shí),即第二重排模塊162的存儲(chǔ)空間包括多個(gè)目的端口為裝置輸出端1023時(shí),該第二重排模塊162對(duì)這些目的端口為裝置輸出端1023的多個(gè)數(shù)據(jù)進(jìn)行排序,并按照排序結(jié)果將這些數(shù)據(jù)通過(guò)第二重排模塊162的輸出端1643傳輸至裝置輸出端1023。
可選地,該第一數(shù)據(jù)的目的端口與該第二數(shù)據(jù)的目的端口可以相同,若該第一數(shù)據(jù)與給第二數(shù)據(jù)的目的端口均為裝置輸出端1022,則該讀仲裁模塊150可以將從第一輸出交換模塊131的輸出端1322經(jīng)過(guò)第一重排模塊161排序后傳輸?shù)牡谝粩?shù)據(jù),和從第二輸出交換模塊132的輸出端1343經(jīng)過(guò)第二重排模塊162排序后傳輸?shù)牡诙?shù)據(jù),經(jīng)過(guò)合并以后傳輸至裝置輸出端1022,本申請(qǐng)實(shí)施例對(duì)此不作限定。
綜上所述,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置可以實(shí)現(xiàn)通過(guò)多個(gè)輸出交換模塊對(duì)輸出數(shù)據(jù)進(jìn)行輸出交換的計(jì)算,能夠簡(jiǎn)化輸出交換模塊的復(fù)雜度,從而提高數(shù)據(jù)處理效率。
此外,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置能夠通過(guò)多個(gè)重排模塊同時(shí)從K個(gè)緩存區(qū)中讀取數(shù)據(jù)并輸出至相應(yīng)的裝置輸出端,通過(guò)緩存管理以及輸出交換模塊從緩存區(qū)中讀取數(shù)據(jù)和重排模塊向裝置輸出端輸出數(shù)據(jù)的速度匹配,能夠提高數(shù)據(jù)讀取的帶寬。
可選地,如圖3所示,該數(shù)據(jù)處理裝置還可以包括緩存管理模塊170,該緩存管理模塊的地址端1711與該讀仲裁模塊的地址端1421連接,該緩存管理模塊的地址端1721與該寫仲裁模塊的地址端1521連接。
該寫仲裁模塊140用于從該緩存管理模塊170獲取該K個(gè)緩存區(qū)中的第一緩存區(qū)的地址,控制該輸入交換模塊110將獲取到的第一數(shù)據(jù)存儲(chǔ)至該第一緩存區(qū)中。
該讀仲裁模塊150用于控制該第一輸出交換模塊131讀取該K1個(gè)緩存區(qū)中的第二緩存區(qū)的地址中存儲(chǔ)的第二數(shù)據(jù),將該第二緩存區(qū)的地址發(fā)送給該緩存管理模塊,并控制該第一輸出交換模塊通過(guò)該第一重排模塊將該第二數(shù)據(jù)傳輸至該M個(gè)裝置輸出端中的第一裝置輸出端,其中該第一裝置輸出端為該第二數(shù)據(jù)的目的端口。
可選地,第一緩存區(qū)可以為該K個(gè)緩存區(qū)中的任意一個(gè)或多個(gè)緩存區(qū),例如,該第一緩存區(qū)可以為目標(biāo)數(shù)據(jù)的目標(biāo)緩存區(qū)。
可選地,該第一數(shù)據(jù)或第二數(shù)據(jù)可以為該輸入交換模塊獲取到的目標(biāo)數(shù)據(jù)的全部或部分,本申請(qǐng)實(shí)施例對(duì)此不作限定。
可選地,該第一緩存區(qū)與該第二緩存區(qū)可以相同或不同,該第一數(shù)據(jù)與該第二數(shù)據(jù)也可以相同或者不同,本申請(qǐng)實(shí)施例對(duì)此不作限定。
作為一個(gè)可選實(shí)施例,若第一緩存區(qū)與第二緩存區(qū)相同,且第一數(shù)據(jù)與第二數(shù)據(jù)相同,即在同一輪數(shù)據(jù)處理中,讀仲裁模塊讀取的數(shù)據(jù)為寫仲裁模塊寫入的目標(biāo)數(shù)據(jù),該寫仲裁模塊可以獲取該K個(gè)緩存區(qū)中的目標(biāo)緩存區(qū)的地址,控制該輸入交換模塊將獲取到的目標(biāo)數(shù)據(jù)存儲(chǔ)至目標(biāo)緩存區(qū)中,該讀仲裁模塊可以控制第一輸出交換模塊和/或第二輸出交換模塊分別從各自對(duì)應(yīng)的緩存區(qū)中的目標(biāo)緩存區(qū)中讀取目標(biāo)數(shù)據(jù),并分別通過(guò)各自對(duì)應(yīng)的重排模塊將目標(biāo)數(shù)據(jù)輸出至目標(biāo)數(shù)據(jù)相應(yīng)的目的端口。
作為另一個(gè)可選實(shí)施例,若第一緩存區(qū)與第二緩存區(qū)不相同,且第一數(shù)據(jù)與第二數(shù)據(jù)不相同,即在同一輪數(shù)據(jù)處理中,讀仲裁模塊讀取的數(shù)據(jù)與寫仲裁模塊寫入的數(shù)據(jù)不同,該寫仲裁模塊可以獲取該K個(gè)緩存區(qū)中的第一緩存區(qū)的地址,控制該輸入交換模塊將獲取到的第一數(shù)據(jù)存儲(chǔ)至第一緩存區(qū)中,該讀仲裁模塊可以控制第一輸出交換模塊從其對(duì)應(yīng)的緩存區(qū)中讀取第二數(shù)據(jù),和/或控制第二輸出交換模塊從其對(duì)應(yīng)的緩存區(qū)中讀取第三數(shù)據(jù),并通過(guò)與第一輸出交換模塊對(duì)應(yīng)的第一重排模塊將第二數(shù)據(jù)輸出至第二數(shù)據(jù)相應(yīng)的目的端口,和/或通過(guò)與第二輸出交換模塊對(duì)應(yīng)的第二重排模塊將第三數(shù)據(jù)輸出至第三數(shù)據(jù)相應(yīng)的目的端口。
可選地,如圖3所示,若該第一緩存區(qū)與該第二緩存區(qū)相同(如圖3所示,第一緩存區(qū)與第二緩存區(qū)均為緩存區(qū)1201)且該第一緩存區(qū)包括多個(gè)單端口的緩存單元(如圖3所示,緩存區(qū)1201包括單端口的緩存單元A與緩存單元B)。
該寫仲裁模塊140可以從該緩存管理模塊170獲取該第一緩存區(qū)包括的多個(gè)緩存單元中第一緩存單元的地址,控制該輸入交換模塊110將該第一數(shù)據(jù)存儲(chǔ)至該第一緩存單元的地址中。
該讀仲裁模塊150可以控制該第一輸出交換模塊131讀取該多個(gè)緩存單元中除該第一緩存單元以外的第二緩存單元的地址中存儲(chǔ)的該第二數(shù)據(jù),將該第二緩存單元的地址發(fā)送給該緩存管理模塊170,并將該第二數(shù)據(jù)傳輸至該第一裝置輸出端,該第一裝置輸出端為該第二數(shù)據(jù)的目的端口。
應(yīng)理解,由于單端口緩存在同一時(shí)刻只能允許讀操作或者寫操作,因此,當(dāng)寫仲裁模塊在對(duì)緩存單元A進(jìn)行寫操作時(shí),讀仲裁模塊就不能同時(shí)對(duì)該緩存單元A進(jìn)行讀操作。
還應(yīng)理解,如果緩存區(qū)為雙端口單元,緩存管理模塊單獨(dú)管理各個(gè)緩存區(qū)的地址,由于寫仲裁模塊控制輸入交換模塊輸入的數(shù)據(jù)是寫在從緩存管理模塊獲取的地址的存儲(chǔ)空間中,而讀仲裁模塊從緩存管理模塊讀取數(shù)據(jù)后,會(huì)將讀取的數(shù)據(jù)的存儲(chǔ)地址發(fā)送給緩存管理模塊中,這樣緩存管理模塊就可以知道各個(gè)緩存區(qū)中哪些地址存儲(chǔ)了數(shù)據(jù),哪些地址沒(méi)有存儲(chǔ)數(shù)據(jù),從而實(shí)現(xiàn)對(duì)各個(gè)緩存區(qū)的地址的管理。
另外,如果緩存區(qū)包括多個(gè)單端口單元,緩存管理模塊單獨(dú)管理各個(gè)緩存區(qū)中緩存單元的地址,由于寫仲裁模塊控制輸入交換模塊輸入的數(shù)據(jù)是寫在從緩存管理模塊獲取的地址的存儲(chǔ)空間中,而讀仲裁模塊從緩存管理模塊讀取數(shù)據(jù)后,會(huì)將讀取的數(shù)據(jù)的存儲(chǔ)地址發(fā)送給緩存管理模塊中,這樣緩存管理模塊就可以知道各個(gè)緩存區(qū)中各個(gè)緩存單元的哪些地址存儲(chǔ)了數(shù)據(jù),哪些地址沒(méi)有存儲(chǔ)數(shù)據(jù),從而實(shí)現(xiàn)對(duì)各個(gè)緩存單元的地址的管理。
可選地,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置可以預(yù)先設(shè)置讀仲裁模塊和寫仲裁模塊的操作優(yōu)先級(jí),并根據(jù)該讀仲裁模塊和該寫仲裁模塊各自的優(yōu)先級(jí),管理緩存區(qū)的讀操作和寫操作。
作為一個(gè)可選實(shí)施例,若該寫仲裁模塊存儲(chǔ)數(shù)據(jù)的優(yōu)先級(jí)高于該讀仲裁模塊讀取數(shù)據(jù)的優(yōu)先級(jí);該寫仲裁模塊可以統(tǒng)計(jì)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),根據(jù)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),將該多個(gè)緩存單元中數(shù)據(jù)存儲(chǔ)量小于第一閾值緩存單元作為該第一緩存單元,并向該緩存管理模塊發(fā)送用于請(qǐng)求該第一緩存單元的地址的第一請(qǐng)求信息;該緩存管理模塊可以根據(jù)該第一請(qǐng)求信息向該寫仲裁模塊發(fā)送該第一緩存單元的寫地址,該第一緩存單元的寫地址為該第一緩存單元中空閑存儲(chǔ)空間的地址;該寫仲裁模塊可以獲取該緩存管理模塊傳輸?shù)脑搶懙刂?,控制該輸入交換模塊將該第一數(shù)據(jù)存儲(chǔ)至該寫地址中。
可選地,由于寫仲裁模塊從K個(gè)緩存區(qū)中選擇第一緩存區(qū)中的第一緩存單元作為目標(biāo)緩存單元,將第一數(shù)據(jù)存儲(chǔ)至第一緩存單元,這樣可以避免將第一數(shù)據(jù)存儲(chǔ)至不存才空閑存儲(chǔ)空間的緩存單元。另外,寫仲裁模塊可以通過(guò)負(fù)載均衡算法或者最小負(fù)載優(yōu)先算法等算法從K個(gè)緩存區(qū)中選擇存在空閑存儲(chǔ)空間的第一緩存區(qū),并從第一緩存區(qū)中確定存在空閑存儲(chǔ)空間的第一緩存單元存儲(chǔ)第一數(shù)據(jù)。
其中,上述采用負(fù)載均衡算法或者最小負(fù)載優(yōu)先算法可以是從上述K個(gè)緩存區(qū)中選擇數(shù)據(jù)存儲(chǔ)量最少的緩存單元作為上述第一緩存區(qū),或者從上述K個(gè)緩存區(qū)中,按照數(shù)據(jù)存儲(chǔ)量從多至少排序中最后一個(gè)緩存區(qū)作為第一緩存區(qū),上述采用負(fù)載均衡算法或者最小負(fù)載優(yōu)先算法可以是從上述第一緩存區(qū)中包括的多個(gè)緩存單元中選擇數(shù)據(jù)存儲(chǔ)量最少的緩存單元作為上述第一緩存單元,或者從上述第一緩存區(qū)中包括的多個(gè)緩存單元中,按照數(shù)據(jù)存儲(chǔ)量從多至少排序中最后一個(gè)緩存單元作為第一緩存單元,本申請(qǐng)實(shí)施例從對(duì)此不作限定。
可選地,如圖3所示,若該寫仲裁模塊140的反饋端1431與該讀仲裁模塊的反饋端1531連接,則該寫仲裁模塊140還用于向該讀仲裁模塊150發(fā)送用于反饋該第一緩存單元當(dāng)前正在存儲(chǔ)數(shù)據(jù)的第一反饋信息。
該讀仲裁模塊150還用于根據(jù)該第一反饋信息,將該多個(gè)緩存單元中除該第一緩存單元以外、且數(shù)據(jù)存儲(chǔ)量大于第二閾值的緩存單元作為該第二緩存單元,控制該第一輸出交換模塊讀取該第二緩存單元中存儲(chǔ)的該第二數(shù)據(jù),將該第二緩存單元的地址發(fā)送給該緩存管理模塊170,并將該第二數(shù)據(jù)傳輸至該第一裝置輸出端,該第一裝置輸出端為該第二數(shù)據(jù)的目的端口。
作為另一個(gè)可選實(shí)施例,若該讀仲裁模塊讀取數(shù)據(jù)的優(yōu)先級(jí)高于該寫仲裁模塊存儲(chǔ)數(shù)據(jù)的優(yōu)先級(jí);該讀仲裁模塊可以統(tǒng)計(jì)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),根據(jù)該多個(gè)緩存單元中每個(gè)緩存單元的數(shù)據(jù)存儲(chǔ)狀態(tài),將該多個(gè)緩存單元中數(shù)據(jù)存儲(chǔ)量大于第三閾值的緩存單元作為該第二緩存單元,并向該緩存管理模塊發(fā)送用于請(qǐng)求該第二緩存單元的地址的第二請(qǐng)求信息;該緩存管理模塊可以根據(jù)該第二請(qǐng)求信息向該讀仲裁模塊發(fā)送該第二緩存單元的讀地址,該第二緩存單元的讀地址為該第二緩存單元中存儲(chǔ)該第二數(shù)據(jù)的存儲(chǔ)空間的地址;該讀仲裁模塊可以獲取該緩存管理模塊傳輸?shù)脑撟x地址,控制該第一輸出交換模塊從該讀地址中讀取該第二數(shù)據(jù)。
可選地,如圖3所示,若該寫仲裁模塊140的反饋端1431與該讀仲裁模塊的反饋端1531連接,則該讀仲裁模塊150還用于向該寫仲裁模塊140發(fā)送用于反饋該第二緩存單元當(dāng)前正在讀取數(shù)據(jù)的第二反饋信息。
該寫仲裁模塊140還用于根據(jù)該第二反饋信息,將該多個(gè)緩存單元中除該第二緩存外、且數(shù)據(jù)存儲(chǔ)量小于第四閾值的緩存單元作為該第一緩存單元,控制該輸入交換模塊110將該第一數(shù)據(jù)存儲(chǔ)至該第一緩存單元的地址中。
可選地,該讀仲裁模塊150還用于控制該第二輸出交換模塊162讀取該K2個(gè)緩存區(qū)中的第三緩存區(qū)中存儲(chǔ)的第三數(shù)據(jù),將該第三數(shù)據(jù)傳輸至該M個(gè)裝置輸出端的第二裝置輸出端,并將該第三緩存區(qū)的地址發(fā)送給該緩存管理模塊170,該第二裝置輸出端為該第三數(shù)據(jù)的目的端口。
可選地,如圖4所示,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置還包括隊(duì)列管理模塊180,該隊(duì)列管理模塊的地址端1811與該寫仲裁模塊的地址端1441連接,該隊(duì)列管理模塊的地址端1821與該讀仲裁的地址端1521連接;
該隊(duì)列管理模塊用于獲取該寫仲裁模塊傳輸?shù)臄?shù)據(jù)信息,該數(shù)據(jù)信息包括該寫仲裁模塊獲取到的數(shù)據(jù)的源端口、目的端口和存儲(chǔ)該數(shù)據(jù)的存儲(chǔ)地址,根據(jù)該數(shù)據(jù)信息生成信源描述符CD,并將該CD加入輸出隊(duì)列,通過(guò)該輸出隊(duì)列將該CD輸出給讀仲裁模塊,該輸出隊(duì)列的源端口為該數(shù)據(jù)的源端口,該輸出隊(duì)列的目的端口為該數(shù)據(jù)的目的端口,該N個(gè)裝置輸入端包括該數(shù)據(jù)的源端口,該N個(gè)裝置輸出端包括該數(shù)據(jù)的目的端口;
該讀仲裁模塊用于獲取隊(duì)列管理模塊傳輸?shù)脑揅D,根據(jù)該CD控制該輸出交換模塊讀取該存儲(chǔ)地址中存儲(chǔ)的該數(shù)據(jù),并將該存儲(chǔ)地址發(fā)送給該緩存管理模塊,控制與該存儲(chǔ)地址對(duì)應(yīng)的輸出交換模塊將該數(shù)據(jù)輸出到該數(shù)據(jù)的目的端口。
可選地,當(dāng)寫仲裁模塊獲取到的數(shù)據(jù)為多個(gè)時(shí),寫仲裁模塊可以為每個(gè)數(shù)據(jù)發(fā)送上述數(shù)據(jù)信息,這樣隊(duì)列管理模塊可以為每個(gè)數(shù)據(jù)生成CD。例如,若寫仲裁模塊獲取到裝置輸入端1013輸入的第一數(shù)據(jù)和裝置輸入端1014輸入的第二數(shù)據(jù),其中,第一數(shù)據(jù)的目的端口為裝置輸出端1022,第二數(shù)據(jù)的目的端口為裝置輸出端1023時(shí),隊(duì)列管理模塊可以將第一數(shù)據(jù)的CD加入第二輸出隊(duì)列,其中,第二輸出隊(duì)列的輸入端為裝置輸入端1013,第二輸出隊(duì)列的輸出端為裝置輸出端1022,隊(duì)列管理模塊可以將第二數(shù)據(jù)的CD加入第三輸出隊(duì)列,其中,第三輸出隊(duì)列的輸入端為裝置輸入端1014,第三輸出隊(duì)列的輸出端為裝置輸出端1023。
可選地,隊(duì)列管理模塊管理的隊(duì)列可以按照先入先出的原則進(jìn)行管理,另外隊(duì)列管理模塊可以包括N乘以M個(gè)輸出隊(duì)列,例如,包括源端口為裝置輸入端1011,目的端口為裝置輸出端1021的輸出隊(duì)列,包括源端口為裝置輸入端1011,目的端口為裝置輸出端1022的輸出隊(duì)列,包括源端口為裝置輸入端1012,目的端口為裝置輸出端1022的輸出隊(duì)列,包括源端口為裝置輸入端1012,目的端口為裝置輸出端1022的輸出隊(duì)列,等輸出隊(duì)列,此處不一一列舉。當(dāng)然這些輸出隊(duì)列可以預(yù)先設(shè)置,也可以是當(dāng)任何一個(gè)輸出隊(duì)列對(duì)應(yīng)的第一個(gè)數(shù)據(jù)到來(lái),設(shè)置的輸出隊(duì)列,本申請(qǐng)實(shí)施例對(duì)此不作限定。
圖5示出了本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理方法100的示意性流程圖,該方法100例如可以本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置執(zhí)行。
S101,接收目標(biāo)數(shù)據(jù);
S102,寫仲裁模塊發(fā)送目標(biāo)數(shù)據(jù)寫入請(qǐng)求;
S103,寫仲裁模塊從K個(gè)緩存區(qū)中選擇目標(biāo)緩存區(qū),并向緩存管理模塊獲取目標(biāo)緩存區(qū)的地址;
S104,寫仲裁模塊控制輸入交換模塊將目標(biāo)數(shù)據(jù)寫入目標(biāo)緩存區(qū);
S105,寫仲裁模塊將目標(biāo)數(shù)據(jù)的源端口、目的端口和地址信息發(fā)送給隊(duì)列管理模塊;
S106,隊(duì)列管理模塊生成目標(biāo)數(shù)據(jù)的CD,并將該CD加入相應(yīng)的輸出隊(duì)列;
S107,隊(duì)列管理模塊向讀仲裁模塊輸出上述CD;
S108,讀仲裁模塊向第一輸出交換模塊和/或第二輸出交換模塊發(fā)送目標(biāo)數(shù)據(jù)的讀取請(qǐng)求;
S109,第一輸出交換模塊和/或第二輸出交換模塊讀取目標(biāo)緩存區(qū)中的目標(biāo)數(shù)據(jù),并傳輸至相應(yīng)的重排模塊進(jìn)行排序;
S110,讀仲裁模塊將上述地址信息發(fā)送給緩存管理模塊;
S111,第一重排模塊和/或第二重排模塊完成排序后,將目標(biāo)數(shù)據(jù)從相應(yīng)的目的端口輸出。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請(qǐng)的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(read-only memory,ROM)、隨機(jī)存取存儲(chǔ)器(random access memory,RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本申請(qǐng)的具體實(shí)施方式,但本申請(qǐng)的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本申請(qǐng)揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本申請(qǐng)的保護(hù)范圍之內(nèi)。因此,本申請(qǐng)的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。