專利名稱:報(bào)文轉(zhuǎn)換方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種報(bào)文轉(zhuǎn)換方法、系統(tǒng)及裝置。
背景技術(shù):
系統(tǒng)包交換接口4(SPI-4)是一種高速信號(hào)傳輸接口,用于物理層(PHY)器件和鏈路層(LINK)器件間包和信元的傳送,可支持高達(dá)10Gb/s的數(shù)據(jù)傳輸速率。快速周邊元件擴(kuò)展接口(PCI-E)是一種點(diǎn)到點(diǎn)串行架構(gòu)的互連總線,能夠大大提高總線互連性能、減少系統(tǒng)成本。
在某些應(yīng)用場(chǎng)合,有時(shí)需要將具有SPI-4接口的設(shè)備(簡(jiǎn)稱SPI-4設(shè)備)與具有PCI-E接口的設(shè)備(簡(jiǎn)稱PCI-E設(shè)備)互連,進(jìn)行數(shù)據(jù)通信。但是,由于SPI-4接口不涉及地址,而PCI-E接口涉及地址,二者的報(bào)文格式互不相同,因此,為了支持SPI-4接口與PCI-E接口的互連,需要通過(guò)一個(gè)轉(zhuǎn)換設(shè)備來(lái)對(duì)SPI-4報(bào)文和PCI-E傳輸層協(xié)議(TLP)報(bào)文進(jìn)行相互轉(zhuǎn)換。
圖1示出了現(xiàn)有技術(shù)中SPI-4報(bào)文(Packet)與PCI-E TLP報(bào)文的轉(zhuǎn)換過(guò)程示意圖。參見(jiàn)圖1所示,SPI-4報(bào)文一般包括控制(Control)字段和靜荷(Payload)兩部分;TLP報(bào)文包括頭部(Header)和Payload兩部分。當(dāng)SPI-4設(shè)備向PCI-E設(shè)備發(fā)送數(shù)據(jù)時(shí),SPI-4設(shè)備首先要構(gòu)造完整的TLP報(bào)文,將要發(fā)送的數(shù)據(jù)放在TLP報(bào)文的靜荷部分,將PCI-E操作地址信息放在TLP報(bào)文的頭部,然后再將構(gòu)造好的TLP報(bào)文放到SPI-4報(bào)文的靜荷部分發(fā)送出去;轉(zhuǎn)換設(shè)備收到SPI-4側(cè)發(fā)送來(lái)的報(bào)文后,剝離SPI-4報(bào)文的控制字段,并將剝離了控制字段后所剩下的TLP報(bào)文透?jìng)鹘oPCI-E設(shè)備。對(duì)于PCI-E設(shè)備發(fā)往SPI-4設(shè)備的報(bào)文,轉(zhuǎn)換設(shè)備收到后直接將收到的來(lái)自PCI-E側(cè)的TLP報(bào)文封裝到SPI-4靜荷中,然后將封裝好的SPI-4報(bào)文發(fā)送給SPI-4設(shè)備;SPI-4設(shè)備收到轉(zhuǎn)換設(shè)備發(fā)送來(lái)的報(bào)文后,需要對(duì)收到的報(bào)文進(jìn)行拆解,剝離SPI-4靜荷中TLP報(bào)文的頭部,獲取TLP靜荷數(shù)據(jù)。
可見(jiàn),在現(xiàn)有的SPI-4報(bào)文與PCI-E TLP報(bào)文的轉(zhuǎn)換過(guò)程中,具有與地址無(wú)關(guān)的接口即SPI-4接口的SPI-4設(shè)備需要進(jìn)行TLP報(bào)文的構(gòu)造和拆解操作,這樣會(huì)增加SPI-4設(shè)備的實(shí)現(xiàn)難度,降低SPI-4設(shè)備的報(bào)文處理效率。另外,在其它的具有與地址無(wú)關(guān)的接口的設(shè)備和具有與地址相關(guān)的接口的設(shè)備之間的報(bào)文轉(zhuǎn)換過(guò)程中,同樣也存在上述問(wèn)題。比如,在SPI-2設(shè)備和PCI-E設(shè)備、SPI-3設(shè)備和PCI-E設(shè)備、以及以太網(wǎng)設(shè)備和PCI-E設(shè)備的報(bào)文轉(zhuǎn)換過(guò)程中,SPI-2設(shè)備、SPI-3設(shè)備和PCI-E設(shè)備等這些具有與地址無(wú)關(guān)的接口的設(shè)備同樣需要進(jìn)行TLP報(bào)文的構(gòu)造和拆解,從而導(dǎo)致具有與地址無(wú)關(guān)的接口的設(shè)備的實(shí)現(xiàn)難度較高,報(bào)文處理效率低下。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種報(bào)文轉(zhuǎn)換方法、系統(tǒng)及裝置,降低具有與地址無(wú)關(guān)的接口的設(shè)備的實(shí)現(xiàn)難度。
為達(dá)到上述目的,本發(fā)明提供了一種報(bào)文轉(zhuǎn)換方法,適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,該方法包括第一設(shè)備將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分發(fā)送出去;轉(zhuǎn)換設(shè)備收到第一設(shè)備發(fā)出的第一報(bào)文后,將收到的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式,并將轉(zhuǎn)換得到的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
所述第一報(bào)文的頭部攜帶數(shù)據(jù)操作起始地址信息;所述轉(zhuǎn)換設(shè)備將收到的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式的過(guò)程包括轉(zhuǎn)換設(shè)備根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部,封裝成第二報(bào)文格式,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和。
該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備。
所述將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備的過(guò)程包括轉(zhuǎn)換設(shè)備逐個(gè)緩存收到的第二報(bào)文,確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文,將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,并釋放構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程還包括對(duì)于收到的第一個(gè)第二報(bào)文,轉(zhuǎn)換設(shè)備判斷該報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定該報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定所述當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
所述第一設(shè)備為具有SPI-2接口的設(shè)備、或者為具有SPI-3接口的設(shè)備、或者為具有SPI-4接口的設(shè)備;所述第二設(shè)備為具有PCI-E接口的設(shè)備。
本發(fā)明還提供了另一種報(bào)文轉(zhuǎn)換方法,適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,該方法包括轉(zhuǎn)換設(shè)備收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備;其中,所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
所述將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備的過(guò)程包括轉(zhuǎn)換設(shè)備逐個(gè)緩存收到的第二報(bào)文,確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文,將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,并釋放構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程還包括對(duì)于收到的第一個(gè)第二報(bào)文,轉(zhuǎn)換設(shè)備判斷該報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定該報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定所述當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
所述第一設(shè)備為具有SPI-2接口的設(shè)備、或者為具有SPI-3接口的設(shè)備、或者為具有SPI-4接口的設(shè)備;所述第二設(shè)備為具有PCI-E接口的設(shè)備。
本發(fā)明還提供了一種報(bào)文轉(zhuǎn)換系統(tǒng),包括具有與地址無(wú)關(guān)的接口的第一設(shè)備、具有與地址相關(guān)的接口的第二設(shè)備以及轉(zhuǎn)換設(shè)備,其中,第一設(shè)備,用于將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分,并將數(shù)據(jù)操作起始地址封裝在第一報(bào)文的頭部發(fā)送出去;轉(zhuǎn)換設(shè)備,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給第二設(shè)備,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
其中,所述轉(zhuǎn)換設(shè)備進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備。
另外,本發(fā)明還提供了一種轉(zhuǎn)換設(shè)備,包括報(bào)文封裝單元和報(bào)文發(fā)送單元,其中,報(bào)文封裝單元,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給報(bào)文發(fā)送單元,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;報(bào)文發(fā)送單元,用于將報(bào)文封裝單元發(fā)送來(lái)的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一設(shè)備為具有與地址無(wú)關(guān)的接口的設(shè)備;所述第二設(shè)備為具有與地址相關(guān)的接口的設(shè)備;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,其靜荷部分封裝第一設(shè)備要發(fā)往第二設(shè)備的數(shù)據(jù),頭部攜帶數(shù)據(jù)操作起始地址;所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
所述報(bào)文封裝單元進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元;所述報(bào)文發(fā)送單元進(jìn)一步用于,將報(bào)文封裝單元發(fā)送來(lái)的第一報(bào)文發(fā)送給第一設(shè)備。
所述報(bào)文封裝單元包括尾部確定單元、靜荷組裝單元和緩存單元,其中,尾部確定單元,用于將第二設(shè)備發(fā)出的第二報(bào)文逐個(gè)緩存到緩存單元中,并在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文;并在確定了構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文后,將該最后一個(gè)第二報(bào)文的信息發(fā)送給靜荷組裝單元;靜荷組裝單元,用于將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元,并釋放緩存單元中構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
所述尾部確定單元進(jìn)一步用于在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
由此可見(jiàn),本發(fā)明具有以下有益效果1)對(duì)于具有與地址無(wú)關(guān)的接口的第一設(shè)備發(fā)往具有與地址相關(guān)的接口的第二設(shè)備的數(shù)據(jù),第一設(shè)備不需要為該數(shù)據(jù)添加頭部構(gòu)造成第二報(bào)文的格式,而只需將需要發(fā)送的數(shù)據(jù)直接封裝在第一報(bào)文的靜荷部分發(fā)送出去即可,從而降低了具有與地址無(wú)關(guān)的接口的第一設(shè)備的實(shí)現(xiàn)難度,提高了第一設(shè)備的報(bào)文處理效率。
2)對(duì)于來(lái)自第二設(shè)備的第二報(bào)文,轉(zhuǎn)換設(shè)備僅將第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,而不是將整個(gè)第二報(bào)文封裝在第一報(bào)文中發(fā)送給第一設(shè)備。這樣,第一設(shè)備收到后,無(wú)需進(jìn)行第二報(bào)文的拆解就可獲得需要的數(shù)據(jù),從而降低了第一設(shè)備的實(shí)現(xiàn)難度,提高了第一設(shè)備的報(bào)文處理效率。
圖1為現(xiàn)有技術(shù)中SPI-4報(bào)文與PCI-E TLP報(bào)文的轉(zhuǎn)換過(guò)程示意圖。
圖2為本發(fā)明實(shí)施例中SPI-4側(cè)到PCI-E側(cè)的報(bào)文轉(zhuǎn)換過(guò)程示意圖。
圖3為本發(fā)明實(shí)施例中PCI-E側(cè)到SPI-4側(cè)的報(bào)文轉(zhuǎn)換過(guò)程示意圖。
圖4為本發(fā)明實(shí)施例中的報(bào)文轉(zhuǎn)換系統(tǒng)結(jié)構(gòu)示意圖。
圖5為本發(fā)明實(shí)施例中的轉(zhuǎn)換設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
為了解決現(xiàn)有技術(shù)中具有與地址無(wú)關(guān)的接口的設(shè)備的實(shí)現(xiàn)難度較高的問(wèn)題,本發(fā)明提供了一種報(bào)文轉(zhuǎn)換方法,其適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,該方法包括對(duì)于第一設(shè)備到第二設(shè)備方向,第一設(shè)備直接將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分發(fā)送出去,然后由轉(zhuǎn)換設(shè)備將第一設(shè)備發(fā)出的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式發(fā)送給第二設(shè)備,而第一設(shè)備無(wú)需進(jìn)行第二報(bào)文的構(gòu)造;對(duì)于第二設(shè)備到第一設(shè)備方向,轉(zhuǎn)換設(shè)備收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,而不是將完整的第二報(bào)文封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,這樣,第一設(shè)備就無(wú)需進(jìn)行第二報(bào)文的拆解。
其中,第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。所述第一設(shè)備為具有SPI-2接口的設(shè)備、或者為具有SPI-3接口的設(shè)備、或者為具有SPI-4接口的設(shè)備;所述第二設(shè)備為具有PCI-E接口的設(shè)備。
為便于理解,下面以第一設(shè)備為SPI-4設(shè)備、第二設(shè)備為PCI-E設(shè)備、第一報(bào)文為SPI-4報(bào)文、第二報(bào)文為PCI-E報(bào)文為例,對(duì)本發(fā)明提供的報(bào)文轉(zhuǎn)換方法進(jìn)行詳細(xì)闡述。
由背景技術(shù)描述可見(jiàn),在現(xiàn)有的報(bào)文轉(zhuǎn)換過(guò)程中,SPI-4設(shè)備需要進(jìn)行TLP報(bào)文的構(gòu)造和拆解等操作,從而導(dǎo)致SPI-4設(shè)備實(shí)現(xiàn)難度的增加及報(bào)文處理效率的降低。為了克服上述問(wèn)題,本發(fā)明提供的報(bào)文轉(zhuǎn)換方法的基本思想如下對(duì)于SPI-4側(cè)到PCI-E側(cè)方向,SPI-4設(shè)備直接將發(fā)往PCI-E設(shè)備的數(shù)據(jù)封裝在SPI-4報(bào)文的靜荷部分發(fā)送出去,然后由轉(zhuǎn)換設(shè)備將SPI-4設(shè)備發(fā)出的SPI-4報(bào)文封裝成TLP報(bào)文格式發(fā)送給PCI-E設(shè)備,而SPI-4設(shè)備無(wú)需進(jìn)行TLP報(bào)文的構(gòu)造;對(duì)于PCI-E側(cè)到SPI-4側(cè)方向,轉(zhuǎn)換設(shè)備收到來(lái)自PCI-E設(shè)備的TLP報(bào)文后,將收到的TLP報(bào)文的靜荷封裝到SPI-4報(bào)文靜荷中發(fā)送給SPI-4設(shè)備,而不是將整個(gè)TLP報(bào)文封裝在SPI-4報(bào)文中發(fā)送給SPI-4設(shè)備,這樣可以避免SPI-4側(cè)的TLP報(bào)文拆解操作。
為更加清楚起見(jiàn),下面分別對(duì)SPI-4側(cè)到PCI-E側(cè)的報(bào)文轉(zhuǎn)換過(guò)程以及PCI-E側(cè)到SPI-4側(cè)的報(bào)文轉(zhuǎn)換過(guò)程進(jìn)行詳細(xì)說(shuō)明。
一、SPI-4側(cè)到PCI-E側(cè)的報(bào)文轉(zhuǎn)換圖2所示為本發(fā)明實(shí)施例中SPI-4側(cè)到PCI-E側(cè)的報(bào)文轉(zhuǎn)換過(guò)程示意圖。其中,圖2左側(cè)為SPI-4設(shè)備發(fā)出的SPI-4報(bào)文,SPI-4報(bào)文的靜荷部分為需要發(fā)往PCI-E側(cè)的數(shù)據(jù),相當(dāng)于現(xiàn)有技術(shù)中構(gòu)成SPI-4報(bào)文的各個(gè)TLP報(bào)文的靜荷部分,而不是完整的TLP報(bào)文。鑒于通常情況下構(gòu)成同一SPI-4報(bào)文的各個(gè)TLP報(bào)文的地址都是連續(xù)的特性,這里,SPI-4設(shè)備僅需將PCI-E操作的起始地址Addr攜帶在SPI-4報(bào)文的頭部發(fā)送出去即可。比如,當(dāng)SPI-4設(shè)備向PCI-E設(shè)備寫(xiě)數(shù)據(jù)時(shí),SPI-4報(bào)文頭部的地址字段填寫(xiě)的即為執(zhí)行寫(xiě)數(shù)據(jù)操作的起始地址。
轉(zhuǎn)換設(shè)備收到SPI-4設(shè)備發(fā)出的SPI-4報(bào)文后,根據(jù)TLP報(bào)文的最大靜荷長(zhǎng)度對(duì)SPI-4報(bào)文進(jìn)行分片。假設(shè)TLP報(bào)文的最大靜荷長(zhǎng)度為M,SPI-4設(shè)備發(fā)出的SPI-4報(bào)文的靜荷長(zhǎng)度為L(zhǎng),則SPI-4報(bào)文將被分成 片,其中, 表示上取整。在圖2中,L為M的整數(shù)倍即L=(n+1)M,故SPI-4報(bào)文被分成(n+1)片。
分片操作完畢后,轉(zhuǎn)換設(shè)備為每個(gè)分片都安裝一個(gè)TLP Header,封裝成TLP報(bào)文的格式,然后再將封裝完畢的TLP報(bào)文發(fā)送給PCI-E設(shè)備。TLPHeader中包括很多字段,如地址字段、長(zhǎng)度字段等。其中,第一個(gè)分片的地址與SPI-4報(bào)文攜帶的地址相同,為PCI-E操作的起始地址Addr;第二個(gè)分片的地址是在第一個(gè)分片的地址上累加第一個(gè)分片的長(zhǎng)度;第三個(gè)分片的地址是在第二個(gè)分片的地址上累加第二個(gè)分片的長(zhǎng)度;后續(xù)分片的地址照此規(guī)則依次類推,為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和。關(guān)于TLPHeader中其它字段的填寫(xiě)視具體應(yīng)用而定,這里不再贅述。
可見(jiàn),在圖2中,SPI-4設(shè)備不需要將發(fā)往PCI-E側(cè)的數(shù)據(jù)構(gòu)造成TLP報(bào)文的格式,而只需將需要發(fā)送的數(shù)據(jù)直接封裝在SPI-4報(bào)文的靜荷部分發(fā)送出去即可,從而降低了SPI-4設(shè)備的實(shí)現(xiàn)難度,提高了SPI-4設(shè)備的報(bào)文處理效率。
二、PCI-E側(cè)到SPI-4側(cè)的報(bào)文轉(zhuǎn)換圖3所示為本發(fā)明實(shí)施例中PCI-E側(cè)到SPI-4側(cè)的報(bào)文轉(zhuǎn)換過(guò)程示意圖。由圖3可見(jiàn),對(duì)于PCI-E設(shè)備發(fā)送過(guò)來(lái)的TLP報(bào)文,轉(zhuǎn)換設(shè)備僅將收到的TLP報(bào)文的靜荷封裝在SPI-4報(bào)文的靜荷部分發(fā)送給SPI-4設(shè)備,而不是將整個(gè)TLP報(bào)文都封裝在SPI-4報(bào)文中發(fā)送給SPI-4設(shè)備。這樣,SPI-4設(shè)備收到后,無(wú)需進(jìn)行TLP報(bào)文的拆解就可獲得需要的數(shù)據(jù),從而降低了SPI-4設(shè)備的實(shí)現(xiàn)難度,提高了SPI-4設(shè)備的報(bào)文處理效率。
在將收到的TLP報(bào)文的靜荷封裝在SPI-4報(bào)文的靜荷部分發(fā)送給SPI-4設(shè)備的過(guò)程中,轉(zhuǎn)換設(shè)備需要確定哪些TLP報(bào)文構(gòu)成一個(gè)SPI-4報(bào)文,也就是說(shuō),需要確定哪一個(gè)TLP報(bào)文是構(gòu)成一個(gè)SPI-4報(bào)文的最后一個(gè)TLP報(bào)文。其確定過(guò)程具體可通過(guò)以下方式實(shí)現(xiàn)轉(zhuǎn)換設(shè)備逐個(gè)緩存收到的TLP報(bào)文,并在每收到一個(gè)TLP報(bào)文后,都判斷當(dāng)前收到的TLP報(bào)文的地址是否與前一次收到的TLP報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的TLP報(bào)文為構(gòu)成SPI-4報(bào)文的最后一個(gè)TLP報(bào)文;如果連續(xù),則進(jìn)一步判斷當(dāng)前收到的TLP報(bào)文的靜荷長(zhǎng)度是否小于TLP報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的TLP報(bào)文為構(gòu)成SPI-4報(bào)文的最后一個(gè)TLP報(bào)文;如果不小于,則等待接收下一個(gè)TLP報(bào)文。
對(duì)于收到的第一個(gè)TLP報(bào)文,轉(zhuǎn)換設(shè)備直接判斷該報(bào)文的靜荷長(zhǎng)度是否小于TLP報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定該報(bào)文為構(gòu)成SPI-4報(bào)文的最后一個(gè)TLP報(bào)文;如果不小于,則等待接收下一個(gè)TLP報(bào)文。
另外,轉(zhuǎn)換設(shè)備還可進(jìn)一步在每收到一個(gè)TLP報(bào)文后,啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)TLP報(bào)文,則確定所述當(dāng)前收到的TLP報(bào)文為構(gòu)成SPI-4報(bào)文的最后一個(gè)TLP報(bào)文。
在確定了構(gòu)成SPI-4報(bào)文的最后一個(gè)TLP報(bào)文后,轉(zhuǎn)換設(shè)備則將該最后一個(gè)TLP報(bào)文的靜荷以及在該報(bào)文之前緩存的所有TLP報(bào)文的靜荷封裝在同一個(gè)SPI-4報(bào)文的靜荷部分發(fā)送給SPI-4設(shè)備,并且釋放構(gòu)成該SPI-4報(bào)文的所有TLP報(bào)文的緩存。
比如,假設(shè)轉(zhuǎn)換設(shè)備已經(jīng)連續(xù)收到并緩存了5個(gè)地址連續(xù)的TLP報(bào)文,當(dāng)?shù)?個(gè)TLP報(bào)文到來(lái)時(shí),轉(zhuǎn)換設(shè)備首先進(jìn)行緩存,并判斷第6個(gè)TLP報(bào)文的地址與第5個(gè)TLP報(bào)文的地址是否連續(xù),如果第6個(gè)TLP報(bào)文的地址與第5個(gè)TLP報(bào)文的地址不連續(xù),則認(rèn)為第6個(gè)TLP報(bào)文與前5個(gè)TLP報(bào)文屬于不同的SPI-4報(bào)文,轉(zhuǎn)換設(shè)備遂將前5個(gè)TLP報(bào)文的靜荷封裝在同一個(gè)SPI-4報(bào)文中發(fā)送給SPI-4設(shè)備,并釋放前5個(gè)TLP報(bào)文的緩存。如果轉(zhuǎn)換設(shè)備發(fā)現(xiàn)第6個(gè)TLP報(bào)文的地址與第5個(gè)TLP報(bào)文的地址連續(xù),并且第6個(gè)TLP報(bào)文的靜荷長(zhǎng)度小于TLP報(bào)文最大靜荷長(zhǎng)度,那么,則認(rèn)為第6個(gè)TLP報(bào)文為構(gòu)成同一個(gè)SPI-4報(bào)文的最后一個(gè)TLP報(bào)文,轉(zhuǎn)換設(shè)備將這6個(gè)TLP報(bào)文的靜荷封裝在同一個(gè)SPI-4報(bào)文中發(fā)送給SPI-4設(shè)備,并釋放這6個(gè)TLP報(bào)文的緩存。另外,轉(zhuǎn)換設(shè)備也可在每收到一個(gè)TLP報(bào)文后啟動(dòng)一個(gè)定時(shí)器。對(duì)于收到的第6個(gè)報(bào)文,如果其地址與第5個(gè)TLP報(bào)文的地址連續(xù),其靜荷長(zhǎng)度不小于TLP報(bào)文最大靜荷長(zhǎng)度,并且在收到第6個(gè)TLP報(bào)文后所啟動(dòng)的定時(shí)器超時(shí)后,轉(zhuǎn)換設(shè)備仍未收到下一個(gè)TLP報(bào)文,則認(rèn)為第6個(gè)TLP報(bào)文為構(gòu)成同一個(gè)SPI-4報(bào)文的最后一個(gè)TLP報(bào)文,轉(zhuǎn)換設(shè)備將這6個(gè)TLP報(bào)文的靜荷封裝在同一個(gè)SPI-4報(bào)文中發(fā)送給SPI-4設(shè)備,并釋放這6個(gè)TLP報(bào)文的緩存。
另外,如果構(gòu)成同一個(gè)SPI-4報(bào)文的任一個(gè)TLP報(bào)文出錯(cuò),轉(zhuǎn)換設(shè)備則可以選擇丟棄整個(gè)SPI-4報(bào)文不予轉(zhuǎn)發(fā),以節(jié)省SPI-4設(shè)備的報(bào)文處理資源。
需要說(shuō)明的是,本發(fā)明適用于所有不涉及地址的接口與涉及地址的接口之間的報(bào)文轉(zhuǎn)換。以上僅以SPI-4與PCI-E為例進(jìn)行說(shuō)明,對(duì)于其它的不涉及地址的接口與涉及地址的接口之間的報(bào)文轉(zhuǎn)換本發(fā)明同樣適用,如SPI-2與PCI-E、SPI-3與PCI-E、以太網(wǎng)與PCI-E等,這里不再一一贅述。
相應(yīng)地,本發(fā)明還提供了一種報(bào)文轉(zhuǎn)換系統(tǒng),其結(jié)構(gòu)參見(jiàn)圖4所示,主要包括具有與地址無(wú)關(guān)的接口的第一設(shè)備、具有與地址相關(guān)的接口的第二設(shè)備以及轉(zhuǎn)換設(shè)備,其中,第一設(shè)備,用于將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分,并將數(shù)據(jù)操作起始地址封裝在第一報(bào)文的頭部發(fā)送出去;轉(zhuǎn)換設(shè)備,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給第二設(shè)備,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
所述轉(zhuǎn)換設(shè)備還可進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備。
另外,本發(fā)明還提供了一種轉(zhuǎn)換設(shè)備,其結(jié)構(gòu)參見(jiàn)圖5所示,主要包括報(bào)文封裝單元和報(bào)文發(fā)送單元,其中,報(bào)文封裝單元,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給報(bào)文發(fā)送單元,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;報(bào)文發(fā)送單元,用于將報(bào)文封裝單元發(fā)送來(lái)的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一設(shè)備為具有與地址無(wú)關(guān)的接口的設(shè)備;所述第二設(shè)備為具有與地址相關(guān)的接口的設(shè)備;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,其靜荷部分封裝第一設(shè)備要發(fā)往第二設(shè)備的數(shù)據(jù),頭部攜帶數(shù)據(jù)操作起始地址;所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
所述報(bào)文封裝單元可進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元;所述報(bào)文發(fā)送單元進(jìn)一步用于將報(bào)文封裝單元發(fā)送來(lái)的第一報(bào)文發(fā)送給第一設(shè)備。
其中,所述報(bào)文封裝單元具體可包括尾部確定單元、靜荷組裝單元和緩存單元,其中,尾部確定單元,用于將第二設(shè)備發(fā)出的第二報(bào)文逐個(gè)緩存到緩存單元中,并在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文;并在確定了構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文后,將該最后一個(gè)第二報(bào)文的信息發(fā)送給靜荷組裝單元;靜荷組裝單元,用于將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元,并釋放緩存單元中構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
所述尾部確定單元還可進(jìn)一步用于在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
以上所述對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步的詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報(bào)文轉(zhuǎn)換方法,適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,其特征在于,該方法包括第一設(shè)備將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分發(fā)送出去;轉(zhuǎn)換設(shè)備收到第一設(shè)備發(fā)出的第一報(bào)文后,將收到的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式,并將轉(zhuǎn)換得到的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一報(bào)文的頭部攜帶數(shù)據(jù)操作起始地址信息;所述轉(zhuǎn)換設(shè)備將收到的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式的過(guò)程包括轉(zhuǎn)換設(shè)備根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部,封裝成第二報(bào)文格式,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備的過(guò)程包括轉(zhuǎn)換設(shè)備逐個(gè)緩存收到的第二報(bào)文,確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文,將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,并釋放構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程還包括對(duì)于收到的第一個(gè)第二報(bào)文,轉(zhuǎn)換設(shè)備判斷該報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定該報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定所述當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一設(shè)備為具有SPI-2接口的設(shè)備、或者為具有SPI-3接口的設(shè)備、或者為具有SPI-4接口的設(shè)備;所述第二設(shè)備為具有PCI-E接口的設(shè)備。
9.一種報(bào)文轉(zhuǎn)換方法,適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,其特征在于,該方法包括轉(zhuǎn)換設(shè)備收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備;其中,所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備的過(guò)程包括轉(zhuǎn)換設(shè)備逐個(gè)緩存收到的第二報(bào)文,確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文,將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備,并釋放構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述確定構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文的過(guò)程還包括對(duì)于收到的第一個(gè)第二報(bào)文,轉(zhuǎn)換設(shè)備判斷該報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定該報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文。
13.根據(jù)權(quán)利要求11或12所述的方法,其特征在于,該方法進(jìn)一步包括轉(zhuǎn)換設(shè)備在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定所述當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
14.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述第一設(shè)備為具有SPI-2接口的設(shè)備、或者為具有SPI-3接口的設(shè)備、或者為具有SPI-4接口的設(shè)備;所述第二設(shè)備為具有PCI-E接口的設(shè)備。
15.一種報(bào)文轉(zhuǎn)換系統(tǒng),其特征在于,包括具有與地址無(wú)關(guān)的接口的第一設(shè)備、具有與地址相關(guān)的接口的第二設(shè)備以及轉(zhuǎn)換設(shè)備,其中,第一設(shè)備,用于將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分,并將數(shù)據(jù)操作起始地址封裝在第一報(bào)文的頭部發(fā)送出去;轉(zhuǎn)換設(shè)備,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給第二設(shè)備,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述轉(zhuǎn)換設(shè)備進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給第一設(shè)備。
17.一種轉(zhuǎn)換設(shè)備,其特征在于,包括報(bào)文封裝單元和報(bào)文發(fā)送單元,其中,報(bào)文封裝單元,用于在收到第一設(shè)備發(fā)出的第一報(bào)文后,根據(jù)第二報(bào)文的最大靜荷長(zhǎng)度對(duì)第一報(bào)文的靜荷進(jìn)行分片,并分別為各個(gè)分片添加包括地址信息的第二報(bào)文頭部封裝成第二報(bào)文格式,然后將得到的第二報(bào)文發(fā)送給報(bào)文發(fā)送單元,其中,第一個(gè)分片的地址為第一報(bào)文攜帶的數(shù)據(jù)操作起始地址,后續(xù)分片的地址依次為前一個(gè)分片的地址與前一個(gè)分片的長(zhǎng)度之和;報(bào)文發(fā)送單元,用于將報(bào)文封裝單元發(fā)送來(lái)的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一設(shè)備為具有與地址無(wú)關(guān)的接口的設(shè)備;所述第二設(shè)備為具有與地址相關(guān)的接口的設(shè)備;所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,其靜荷部分封裝第一設(shè)備要發(fā)往第二設(shè)備的數(shù)據(jù),頭部攜帶數(shù)據(jù)操作起始地址;所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其特征在于,所述報(bào)文封裝單元進(jìn)一步用于在收到第二設(shè)備發(fā)出的第二報(bào)文后,將收到的第二報(bào)文的靜荷封裝在第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元;所述報(bào)文發(fā)送單元進(jìn)一步用于,將報(bào)文封裝單元發(fā)送來(lái)的第一報(bào)文發(fā)送給第一設(shè)備。
19.根據(jù)權(quán)利要求18所述的設(shè)備,其特征在于,所述報(bào)文封裝單元包括尾部確定單元、靜荷組裝單元和緩存單元,其中,尾部確定單元,用于將第二設(shè)備發(fā)出的第二報(bào)文逐個(gè)緩存到緩存單元中,并在每收到一個(gè)第二報(bào)文后,判斷當(dāng)前收到的第二報(bào)文的地址是否與前一次收到的第二報(bào)文的地址連續(xù),如果不連續(xù),則確定前一次收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果連續(xù),則判斷當(dāng)前收到的第二報(bào)文的靜荷長(zhǎng)度是否小于第二報(bào)文的最大靜荷長(zhǎng)度,如果小于,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文;如果不小于,則等待接收下一個(gè)第二報(bào)文;并在確定了構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文后,將該最后一個(gè)第二報(bào)文的信息發(fā)送給靜荷組裝單元;靜荷組裝單元,用于將所述最后一個(gè)第二報(bào)文的靜荷以及在該報(bào)文之前緩存的所有第二報(bào)文的靜荷封裝在同一個(gè)第一報(bào)文的靜荷部分發(fā)送給報(bào)文發(fā)送單元,并釋放緩存單元中構(gòu)成該第一報(bào)文的所有第二報(bào)文的緩存。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其特征在于,所述尾部確定單元進(jìn)一步用于在每收到一個(gè)第二報(bào)文后啟動(dòng)一個(gè)定時(shí)器,如果定時(shí)器超時(shí)后仍未收到下一個(gè)第二報(bào)文,則確定當(dāng)前收到的第二報(bào)文為構(gòu)成第一報(bào)文的最后一個(gè)第二報(bào)文。
全文摘要
本發(fā)明提供了一種報(bào)文轉(zhuǎn)換方法,適用于具有與地址無(wú)關(guān)的接口的第一設(shè)備和具有與地址相關(guān)的接口的第二設(shè)備之間的報(bào)文轉(zhuǎn)換,該方法包括第一設(shè)備將發(fā)往第二設(shè)備的數(shù)據(jù)封裝在第一報(bào)文的靜荷部分發(fā)送出去;轉(zhuǎn)換設(shè)備收到第一設(shè)備發(fā)出的第一報(bào)文后,將收到的第一報(bào)文轉(zhuǎn)換成第二報(bào)文格式,并將轉(zhuǎn)換得到的第二報(bào)文發(fā)送給第二設(shè)備;其中,所述第一報(bào)文為采用所述與地址無(wú)關(guān)的接口協(xié)議的報(bào)文,所述第二報(bào)文為采用所述與地址相關(guān)的接口協(xié)議的報(bào)文。另外,本發(fā)明還提供了另一種報(bào)文轉(zhuǎn)換方法、一種報(bào)文轉(zhuǎn)換系統(tǒng)以及一種轉(zhuǎn)換設(shè)備。利用本發(fā)明所提供的技術(shù)方案,能夠降低具有與地址無(wú)關(guān)的接口的設(shè)備的實(shí)現(xiàn)難度,提高該設(shè)備的報(bào)文處理效率。
文檔編號(hào)H04L29/06GK101079815SQ20071011825
公開(kāi)日2007年11月28日 申請(qǐng)日期2007年7月3日 優(yōu)先權(quán)日2007年7月3日
發(fā)明者劉玉印, 易莉, 張國(guó)良, 余永飛, 張耀, 向邦柱 申請(qǐng)人:杭州華三通信技術(shù)有限公司