專利名稱:實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)技術(shù),尤其涉及第4級系統(tǒng)包級接口(SPI4)與周邊元件擴(kuò)展接口(PCI Express)互連的實現(xiàn)技術(shù)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,高速信號的傳輸在網(wǎng)絡(luò)設(shè)計中的應(yīng)用越來越普遍,當(dāng)前所使用的高速信號的傳輸接口之一就是SPI4。
SPI4是物理層器件與鏈路層器件之間的數(shù)據(jù)包或信元傳送接口,其可支持高達(dá)16Gb/s的數(shù)據(jù)傳輸速率。
而PCI Express同樣也是一種芯片互連技術(shù)。它作為一種點到點的串行架構(gòu)的互連總線,極大的提高了總線互連的性能,減少了系統(tǒng)的成本。
然而,上述兩種互連技術(shù)也存在著很大的差異,其中,作為物理層與數(shù)據(jù)鏈路層互連的SPI4接口,其協(xié)議本身并不需要涉及到更高層應(yīng)用中需要的地址概念,只是負(fù)責(zé)提供一條高速可靠的連接通路。而一般被劃分為處理層、數(shù)據(jù)鏈路層和物理層的PCI Express協(xié)議,則要比SPI4接口協(xié)議多了一個處理層的協(xié)議內(nèi)容,這個處理層的協(xié)議內(nèi)容就包含了對地址的相應(yīng)解析和處理。因此,SPI4接口與PCI Express接口的應(yīng)用場合通常也就各有不同。
但是在某些設(shè)計場合中,出于特定的考慮,我們也需要將SPI4設(shè)備與PCI Express設(shè)備進(jìn)行互連,特別是需要實現(xiàn)兩種設(shè)備間的高速數(shù)據(jù)收發(fā),然而,由于SPI4接口只涉及物理層及數(shù)據(jù)鏈路層的內(nèi)容,而PCI Express接口相對于SPI4接口多了一個處理層協(xié)議,所以,到目前為止,還沒有一種技術(shù)方案能夠解決SPI4接口與PCI Express接口互連的問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種實現(xiàn)SPI4設(shè)備與PCIExpress設(shè)備互連的系統(tǒng),該系統(tǒng)能夠解決SPI4接口與PCI Express接口互連的問題。
本發(fā)明提供了一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),其包括SPI4設(shè)備及PCI Express設(shè)備;以及連接在SPI4設(shè)備及PCIExpress設(shè)備之間的轉(zhuǎn)換單元,用于將接收到的數(shù)據(jù)進(jìn)行解析,并將所述數(shù)據(jù)轉(zhuǎn)換為SPI4報文或PCI Express處理層協(xié)議內(nèi)容,發(fā)送給所述SPI4設(shè)備或所述PCI Express設(shè)備。
所述系統(tǒng)還可包括與所述轉(zhuǎn)換單元相連的中斷單元,用于接收和處理中斷請求或錯誤消息,并將處理結(jié)果上報給內(nèi)置或外接于所述SPI4設(shè)備的中央處理器CPU。
所述系統(tǒng)還可包括分別與所述轉(zhuǎn)換單元、所述中斷單元及所述中央處理器CPU相連的中央處理器CPU接口單元,用于接收或轉(zhuǎn)發(fā)所述中央處理器CPU與所述轉(zhuǎn)換單元、所述中斷單元之間傳輸?shù)臄?shù)據(jù),并且解析由所述中央處理器CPU發(fā)出的配置信息。
此外,所述轉(zhuǎn)換單元與所述SPI4設(shè)備之間具有數(shù)據(jù)通道和控制通道,所述數(shù)據(jù)通道用于數(shù)據(jù)報文的傳輸,所述控制通道用于控制報文的傳輸。
本發(fā)明還提供了一種利用權(quán)利要求1所述的系統(tǒng)實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,包括SPI4設(shè)備或PCI Express設(shè)備向轉(zhuǎn)換單元發(fā)送數(shù)據(jù);所述轉(zhuǎn)換單元將所述數(shù)據(jù)轉(zhuǎn)換為PCI Express處理層協(xié)議內(nèi)容或SPI4報文,發(fā)送給所述PCI Express設(shè)備或所述SPI4設(shè)備。
其中,所述轉(zhuǎn)換單元在接收到所有的數(shù)據(jù)后,判斷所述數(shù)據(jù)的內(nèi)容類型,當(dāng)所述內(nèi)容類型為配置內(nèi)容類型時,所述轉(zhuǎn)換單元將所述中央處理器CPU通過所述中央處理器CPU接口單元或所述SPI4設(shè)備發(fā)送的所述配置內(nèi)容封裝成PCI Express的處理層協(xié)議包,發(fā)送給所述PCI Express設(shè)備。
當(dāng)所述內(nèi)容類型為中斷和消息內(nèi)容類型時,所述轉(zhuǎn)換單元將所述中斷和消息內(nèi)容發(fā)送給所述中斷單元處理。
所述中斷單元接收到所述中斷和消息內(nèi)容后進(jìn)行如下處理將所有非錯誤消息內(nèi)部終結(jié);將中斷消息和錯誤消息解析后,通過消息信令中斷MSI或直接上報給所述中央處理器CPU。
當(dāng)所述內(nèi)容類型為數(shù)據(jù)內(nèi)容類型時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容轉(zhuǎn)換為SPI4報文發(fā)送給所述SPI4設(shè)備,或者所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容封裝成PCI Express的處理層協(xié)議包發(fā)送給所述PCI Express設(shè)備。
當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用分塊存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分分為兩個SPI4報文,并將所述兩個SPI4報文連續(xù)發(fā)送給所述SPI4設(shè)備。
當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用鏈表管理的存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分組成一個SPI4報文,并將所述SPI4報文發(fā)送給所述SPI4設(shè)備。
由于本發(fā)明提供的系統(tǒng)設(shè)置有轉(zhuǎn)換單元,所述轉(zhuǎn)換單元可以對SPI4設(shè)備發(fā)送的數(shù)據(jù)或PCI Express設(shè)備發(fā)送的數(shù)據(jù)進(jìn)行解析,并進(jìn)行格式的轉(zhuǎn)換,以使轉(zhuǎn)換后的數(shù)據(jù)格式符合PCI Express處理層協(xié)議包或SPI4報文的格式,有效的解決了SPI4設(shè)備與PCI Express設(shè)備互連的問題。
本發(fā)明提供的系統(tǒng)還設(shè)置了中斷單元和CPU接口單元,中斷用于接收和處理中斷請求和錯誤消息,并將處理結(jié)果上報給CPU,CPU接口單元是連接CPU與中斷單元、轉(zhuǎn)換單元之間的橋梁,利用這個橋梁可以使CPU對PCI Express設(shè)備的配置信息通過轉(zhuǎn)換單元發(fā)送到PCIExpress設(shè)備,所以,本發(fā)明還能有效的解決中斷請求的處理和對PCIExpress設(shè)備進(jìn)行配置的問題。
由于本發(fā)明的轉(zhuǎn)換單元可對接收到的數(shù)據(jù)進(jìn)行分類,進(jìn)而發(fā)送到不同的處理單元進(jìn)行處理,可以說,是對完整的PCI Express協(xié)議內(nèi)容進(jìn)行了可定制的裁減,這種方法極大的降低了設(shè)計難度和成本。
本發(fā)明的轉(zhuǎn)換單元配合SPI4設(shè)備的分塊緩存和緩存鏈表管理兩種方式,分別進(jìn)行了不同的報文轉(zhuǎn)換,最大限度的保證了數(shù)據(jù)互連、處理的效率。
此外,本發(fā)明的轉(zhuǎn)換單元與SPI4設(shè)備分別用數(shù)據(jù)通道和控制通道這兩個獨立的通道傳輸數(shù)據(jù)報文和控制報文,避免了兩種報文共用一個通道而互相干擾,有效的提高了傳輸效率。
圖1為本發(fā)明系統(tǒng)的第一實施例的系統(tǒng)結(jié)構(gòu)示意圖。
圖2為本發(fā)明系統(tǒng)的第一優(yōu)選實施例的系統(tǒng)結(jié)構(gòu)示意圖。
圖3為PCI Express報文分拆模式的示意圖。
圖4為SPI4設(shè)備的緩存采用分塊存儲方式的示意圖。
圖5為PCI Express報文的TLP頭與載荷部分組成一個SPI4報文的示意圖。
圖6為SPI4設(shè)備的緩存采用鏈表管理存儲方式的示意圖。
圖7為本發(fā)明系統(tǒng)的第二優(yōu)選實施例的系統(tǒng)結(jié)構(gòu)示意圖。
圖8為本發(fā)明方法的實施例的流程圖。
具體實施例方式
下面我們將結(jié)合附圖,對本發(fā)明的最佳實施方案進(jìn)行詳細(xì)描述。首先要指出的是,本發(fā)明中用到的術(shù)語、字詞及權(quán)利要求的含義不能僅僅限于其字面和普通的含義去理解,還包括進(jìn)而與本發(fā)明的技術(shù)相符的含義和概念,這是因為我們作為發(fā)明者,要適當(dāng)?shù)亟o出術(shù)語的定義,以便對我們的發(fā)明進(jìn)行最恰當(dāng)?shù)拿枋觥R虼?,本說明和附圖中給出的配置,只是本發(fā)明的首選實施方案,而不是要列舉本發(fā)明的所有技術(shù)特性。我們要認(rèn)識到,還有各種各樣的可以取代我們方案的同等方案或修改方案。
首先,結(jié)合圖1,對本發(fā)明的第一實施例進(jìn)行介紹。
如圖1所示,本發(fā)明提供的互連系統(tǒng)包括SPI4設(shè)備101及PCIExpress設(shè)備102,以及連接在SPI4設(shè)備101及PCI Express設(shè)備102之間的轉(zhuǎn)換單元103,這個轉(zhuǎn)換單元103可以從SPI4設(shè)備101及PCIExpress設(shè)備102接收數(shù)據(jù)并將數(shù)據(jù)的格式進(jìn)行轉(zhuǎn)換。如果SPI4設(shè)備101向PCI Express設(shè)備102發(fā)送數(shù)據(jù),則這個數(shù)據(jù)從SPI4設(shè)備101發(fā)出時是SPI4報文,轉(zhuǎn)換單元103接收到SPI4報文時,首先進(jìn)行解析,例如解析這個報文的目的地址等,之后將這個SPI4報文封裝成PCI Express處理層協(xié)議包,再發(fā)送給PCI Express設(shè)備102。相反,如果PCI Express設(shè)備102向SPI4設(shè)備101發(fā)送數(shù)據(jù),則這個數(shù)據(jù)從PCI Express設(shè)備102發(fā)出時是PCI Express處理層協(xié)議包,轉(zhuǎn)換單元103接收到PCI Express處理層協(xié)議包時,也要先進(jìn)行解析,例如解析這個PCI Express處理層協(xié)議包的目的地址等,之后將這個PCI Express處理層協(xié)議包轉(zhuǎn)換為SPI4報文,再發(fā)送給SPI4設(shè)備101。
圖1所示的系統(tǒng)所包含的各個設(shè)備或單元是實現(xiàn)本發(fā)明所必要的部分。但是,為了增強(qiáng)系統(tǒng)的功能,維護(hù)系統(tǒng)的穩(wěn)定,本發(fā)明還提供了一個最佳實施例。
圖2為本發(fā)明第一優(yōu)選實施例的系統(tǒng)示意圖。如圖2所示,此系統(tǒng)包括SPI4設(shè)備201及PCI Express設(shè)備202,連接在SPI4設(shè)備201及PCI Express設(shè)備202之間的轉(zhuǎn)換單元203,與轉(zhuǎn)換單元203相連的中斷單元204,分別與轉(zhuǎn)換單元203及中斷單元204相連的CPU接口單元205,與SPI4設(shè)備201、中斷單元204及CPU接口單元205相連的CPU206。
在圖2中,中斷單元204用于接收和處理中斷請求或錯誤消息,并將處理結(jié)果上報給CPU206。中斷單元204在接收到中斷和消息后,可以進(jìn)行如下處理對于所有非錯誤消息都要內(nèi)部終結(jié),內(nèi)部終結(jié)可以理解為對此類消息不處理;對于所有錯誤消息和中斷消息,都要上報給CPU206,上報的方式可以很靈活,例如,可以通過CPU接口單元205或SPI4設(shè)備201上報,也可以通過硬件直接上報給CPU206。
在圖2中,CPU接口單元205用于接收或轉(zhuǎn)發(fā)CPU206與轉(zhuǎn)換單元203、中斷單元204之間傳輸?shù)臄?shù)據(jù),可以說,CPU接口單元205就是轉(zhuǎn)換單元203或中斷單元204與CPU206連接的橋梁,CPU206與轉(zhuǎn)換單元203或中斷單元204之間的數(shù)據(jù)傳輸可以通過CPU接口單元205完成,而不是一定通過SPI4設(shè)備201完成。在本發(fā)明中,CPU接口單元205能夠?qū)崿F(xiàn)的功能可以歸納為如下幾點實現(xiàn)CPU206對控制或狀態(tài)寄存器的訪問,本發(fā)明的控制或狀態(tài)寄存器主要集中在轉(zhuǎn)換單元203中;實現(xiàn)CPU206對中斷寄存器的訪問,這里主要是指中斷單元204中的中斷寄存器;實現(xiàn)CPU206對PCI Express設(shè)備202的配置;在調(diào)試過程中,實現(xiàn)例如收發(fā)包的調(diào)試功能。
無論是圖1或者圖2的轉(zhuǎn)換單元都可以對接收到的數(shù)據(jù)進(jìn)行解析并分類。以圖2的系統(tǒng)結(jié)構(gòu)為例,轉(zhuǎn)換單元203可以對從任何來源接收到的任何數(shù)據(jù)進(jìn)行解析并分類,一般都將數(shù)據(jù)分為三類,即配置內(nèi)容、中斷和消息內(nèi)容及數(shù)據(jù)內(nèi)容。
這里的配置內(nèi)容主要是指CPU206向PCI Express設(shè)備202發(fā)送的配置信息。CPU206可以通過CPU接口單元205或者SPI4設(shè)備201向轉(zhuǎn)換單元203發(fā)送配置信息,至于選擇通過CPU接口單元205還是SPI4設(shè)備201發(fā)送要根據(jù)實際情況而定,例如,如果SPI4設(shè)備201與PCI Express設(shè)備202之間的數(shù)據(jù)傳輸量非常大時,為了減輕SPI4設(shè)備201的負(fù)擔(dān),可以選擇通過CPU接口單元205來發(fā)送配置信息,轉(zhuǎn)換單元203在對配置信息解析后,發(fā)現(xiàn)這個信息是配置內(nèi)容,就將配置信息封裝成PCI Express處理層協(xié)議內(nèi)容,發(fā)送給PCI Express設(shè)備202處理,PCI Express設(shè)備202可以按照配置信息的內(nèi)容進(jìn)行軟件升級或者參數(shù)修改等操作。
需要說明的是,配置信息不僅可以由轉(zhuǎn)換單元203解析,也可以由CPU接口單元205先進(jìn)行解析,之后發(fā)送給轉(zhuǎn)換單元203,轉(zhuǎn)換單元203可以不再對配置信息解析,而只將配置信息轉(zhuǎn)換為PCI Express處理層協(xié)議內(nèi)容,并發(fā)送給PCI Express設(shè)備202。
中斷和消息內(nèi)容可以包括PCI Express設(shè)備202發(fā)出的中斷請求及系統(tǒng)內(nèi)部產(chǎn)生的各種消息,其中消息還可以分為非錯誤消息和錯誤消息,對于中斷和消息內(nèi)容的處理主要是由中斷單元204完成的。以PCI Express設(shè)備202向CPU206發(fā)送中斷請求為例,PCI Express設(shè)備202首先向轉(zhuǎn)換單元203發(fā)送中斷請求消息,轉(zhuǎn)換單元203對中斷請求消息進(jìn)行解析,如果中斷單元204可以識別PCI Express處理層協(xié)議內(nèi)容,則可直接將中斷請求消息發(fā)送到PCI Express設(shè)備202,如果中斷單元204不能識別PCI Express處理層協(xié)議內(nèi)容,則轉(zhuǎn)換單元203要將PCI Express處理層協(xié)議格式的中斷請求消息轉(zhuǎn)換為中斷單元204能夠識別的中斷請求消息,之后發(fā)送到中斷單元204進(jìn)行處理,中斷單元204可以通過兩個途徑將處理結(jié)果上報給CPU206,一種是通過CPU接口單元205上報,另一種是通過硬件直接上報給CPU206,具體選擇哪一種方式要根據(jù)實際情況決定。
作為數(shù)據(jù)內(nèi)容的數(shù)據(jù)是SPI4設(shè)備201與PCI Express設(shè)備202之間傳輸量最大的數(shù)據(jù)。以存儲器讀寫操作指令Memory讀寫的報文內(nèi)容為例,在轉(zhuǎn)換單元203與SPI4設(shè)備201之間可用數(shù)據(jù)和控制兩個獨立的通道傳輸數(shù)據(jù),對于例如Memory讀請求、設(shè)備寄存器讀寫的請求與回應(yīng)以及MSI報文等小流量、小長度的報文可以在控制通道內(nèi)傳輸,而涉及到存儲器讀寫的大流量大長度的報文,例如Memory寫請求、Memory讀回應(yīng)等內(nèi)容則可在數(shù)據(jù)通道內(nèi)進(jìn)行。采用數(shù)據(jù)和控制兩個獨立的通道傳輸數(shù)據(jù)的方式,可以避免數(shù)據(jù)報文與控制報文共用一個通道而造成的相互干擾,有效的提高了傳輸效率。
以PCI Express設(shè)備202從SPI4設(shè)備201讀數(shù)據(jù)為例,對數(shù)據(jù)內(nèi)容的傳輸過程進(jìn)行說明。CPU206在緩存或寄存器中準(zhǔn)備操作信息隊列等待PCI Express設(shè)備202讀取,操作信息隊列完成后,CPU206向PCI Express設(shè)備202發(fā)送要求讀數(shù)據(jù)請求,PCI Express設(shè)備202以讀操作的形式讀取操作信息隊列的內(nèi)容,以獲得有關(guān)操作的內(nèi)容,例如操作類型、地址、長度等。PCI Express設(shè)備202根據(jù)地址和長度,連續(xù)發(fā)起讀指令,主動從SPI4設(shè)備201讀數(shù)據(jù)。當(dāng)PCI Express設(shè)備202讀完需要的數(shù)據(jù)后,向CPU206發(fā)起MSI中斷以通知CPU206操作已完成。PCI Express設(shè)備202向SPI4設(shè)備201寫數(shù)據(jù)的過程與上述過程類似,只是CPU206向PCI Express設(shè)備202發(fā)送的是要求寫數(shù)據(jù)請求,PCI Express設(shè)備202主動向SPI4設(shè)備201寫入數(shù)據(jù)。其中,要求讀數(shù)據(jù)請求和讀取操作信息隊列內(nèi)容的報文可以通過SPI4設(shè)備201與轉(zhuǎn)換單元203之間的控制通道傳輸,大流量的數(shù)據(jù)傳輸用數(shù)據(jù)通道傳輸,無論是要求讀數(shù)據(jù)請求、讀取操作信息隊列內(nèi)容的報文還是大流量的數(shù)據(jù),CPU206都是先以SPI4報文方式發(fā)送到轉(zhuǎn)換單元203,經(jīng)過格式轉(zhuǎn)換后,以PCI Express處理層協(xié)議內(nèi)容發(fā)送到PCIExpress設(shè)備202。
為了盡可能的降低CPU的工作負(fù)荷,提高數(shù)據(jù)處理的效率,保證較高的帶寬性能,轉(zhuǎn)換單元203對于數(shù)據(jù)報文的處理,需要與SPI4設(shè)備201的工作方式相匹配。
當(dāng)SPI4設(shè)備201對于接收的SPI4報文數(shù)據(jù)全部采用分塊存儲的方式存儲,或者說,SPI4設(shè)備201接收的SPI4報文由SPI4設(shè)備201的接口單元(圖中未繪示)存放在CPU206指定的SPI4設(shè)備201的緩存(圖中未繪示)的某個連續(xù)塊中,則轉(zhuǎn)換單元203在解析PCI Express報文之后,可以提取報文頭中的有用信息,例如TLP(PCI Express中的處理層包協(xié)議)中的讀寫地址和某些用戶自定義的字段,并與后續(xù)載荷分開為兩個SPI4報文連續(xù)發(fā)送給SPI4設(shè)備201,SPI4設(shè)備201在處理SPI4報文時,可以借助前次接收的地址(控制)信息,來指定后續(xù)數(shù)據(jù)報文內(nèi)容的存放地址,從而避免了大量數(shù)據(jù)的內(nèi)存拷貝與搬移,特別要強(qiáng)調(diào)的是,在采用這種方式時,由于CPU206改變SPI4設(shè)備201的接口單元的搬移指針與接口單元硬件進(jìn)行報文數(shù)據(jù)的動作是同時進(jìn)行的,所以,轉(zhuǎn)換單元203在發(fā)送數(shù)據(jù)和地址報文時,需要將地址報文提前一輪發(fā)送,以保證接口單元當(dāng)前配置的地址指針確實是當(dāng)前接收數(shù)據(jù)報文的對應(yīng)指針,與這種發(fā)送方式對應(yīng)的是,在報文發(fā)送的初始和結(jié)束,也就存在著一輪的非報文內(nèi)容數(shù)據(jù)和一輪非報文內(nèi)容地址。如圖3所示,TLP報文可以分為地址和數(shù)據(jù)兩個部分,在發(fā)送順序上,首先發(fā)送的是當(dāng)前地址,接著發(fā)送的是前一個地址對應(yīng)的數(shù)據(jù),再發(fā)送的是下一個地址,之后發(fā)送的是當(dāng)前地址對應(yīng)的數(shù)據(jù),以此類推,例如,地址1與數(shù)據(jù)1之間相隔數(shù)據(jù)0和地址2兩個報文,相應(yīng)的,在報文發(fā)送的初始和結(jié)束,就存在著非報文內(nèi)容數(shù)據(jù)和非報文內(nèi)容地址,這兩個報文的內(nèi)容可以為空。這種方式對于PCI Express報文中地址相鄰的數(shù)據(jù)內(nèi)容,是在SPI4設(shè)備201的緩存中確切指定相鄰地址來存放的,最終的結(jié)果是各個攜帶的PCI Express地址相鄰的SPI4報文載荷被存放在一個連續(xù)的地址塊中,如圖4所示,數(shù)據(jù)0與數(shù)據(jù)1在SPI4設(shè)備201的緩存中被存放在連續(xù)的地址中。
正是因為當(dāng)前地址與當(dāng)前數(shù)據(jù)之間相隔兩個其他報文,CPU206就可以有相對充足的時間完成對當(dāng)前地址的解析,并有寬裕的時間通知硬件將指針指向當(dāng)前地址,在完成這些動作之后,恰好接收到當(dāng)前數(shù)據(jù),并將當(dāng)前數(shù)據(jù)即時存儲在指針指向的當(dāng)前地址,所以,這種處理方式相對于現(xiàn)有技術(shù)中SPI4設(shè)備201將接收到的報文先全部接收、之后再將數(shù)據(jù)重新存放在對應(yīng)的地址中的方式,避免了內(nèi)存拷貝和搬移數(shù)據(jù),明顯可以提高SPI4設(shè)備201的存儲效率。
當(dāng)SPI設(shè)備201采用鏈表的方式管理數(shù)據(jù)的存放時,轉(zhuǎn)換單元203在解析TLP頭之后,不需要拆包,而是把需要發(fā)送的自定義頭信息,例如包括了地址和用戶定義信息,與載荷數(shù)據(jù)組成一個SPI4報文直接發(fā)送給SPI4設(shè)備201,如圖5所示,地址0與數(shù)據(jù)0組成一個SPI4報文,SPI4設(shè)備201的接口單元在解析SPI4報文后,將SPI4報文存放到緩存中,需要說明的是,數(shù)據(jù)對應(yīng)的地址可以是任意的,或者說,數(shù)據(jù)存放的位置不需要是連續(xù)的,可以由CPU來管理存放鏈表的指針偏移實現(xiàn)實際上的報文連續(xù)存放的效果。如圖6所示,CPU206具有一個鏈表,鏈表中具有多個指針,例如指針1、指針2等,各個指針對應(yīng)各個數(shù)據(jù),例如指針1對應(yīng)數(shù)據(jù)1,采用這種方式時,CPU206仍然是需要對各個數(shù)據(jù)對應(yīng)的地址進(jìn)行解析,但由于指針已經(jīng)對應(yīng)到SPI4設(shè)備201的緩存中,所以SPI4設(shè)備201在接收到報文后,無需進(jìn)行任何存儲處理,只需交由CPU206即時解析即時存儲即可。
在本發(fā)明的圖2中,SPI4設(shè)備201外接了一個CPU206,需要說明的是,SPI4設(shè)備還可以將CPU內(nèi)置。如圖7所示,SPI4設(shè)備701內(nèi)置有CPU706,CPU706分別與CPU接口單元705及中斷和消息終結(jié)處理單元704相連,其他連接方式及工作方式均與圖2相同。
此外,為了整個系統(tǒng)能夠獲得較高的集成度,轉(zhuǎn)換單元、中斷單元及CPU接口單元可以集成為一個橋接設(shè)備,如此一來,這個橋接設(shè)備就具有數(shù)據(jù)解析、格式轉(zhuǎn)換、中斷請求和消息處理及與CPU直接通信的多重功能。
本發(fā)明不但提供了一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),還提供了一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法。
現(xiàn)在結(jié)合圖8,對本發(fā)明方法的實施例進(jìn)行說明。如圖8所示,在步驟S801中,SPI4設(shè)備或PCI Express設(shè)備向轉(zhuǎn)換單元發(fā)送數(shù)據(jù),由SPI4設(shè)備發(fā)出的數(shù)據(jù)應(yīng)該為SPI4報文,而由PCI Express設(shè)備發(fā)出的數(shù)據(jù)應(yīng)該為PCI Express處理層協(xié)議內(nèi)容。進(jìn)入步驟S802,所述轉(zhuǎn)換單元將所述數(shù)據(jù)轉(zhuǎn)換為PCI Express處理層協(xié)議內(nèi)容或SPI4報文,發(fā)送給所述PCI Express設(shè)備或所述SPI4設(shè)備,如果轉(zhuǎn)換單元接收的是由SPI4設(shè)備發(fā)出的SPI4報文,則需要將SPI4報文轉(zhuǎn)換為PCIExpress處理層協(xié)議內(nèi)容,再發(fā)送到PCI Express設(shè)備,相反的,如果轉(zhuǎn)換單元接收的是由PCI Express設(shè)備發(fā)出的PCI Express處理層協(xié)議內(nèi)容,則需要將PCI Express處理層協(xié)議內(nèi)容轉(zhuǎn)換為SPI4報文,再發(fā)送到SPI4設(shè)備。
所述轉(zhuǎn)換單元在接收到所有的數(shù)據(jù)后,可以識別數(shù)據(jù)的內(nèi)容類型,以進(jìn)行相應(yīng)的操作。
當(dāng)確定所述數(shù)據(jù)的內(nèi)容類型為配置內(nèi)容類型時,所述轉(zhuǎn)換單元將內(nèi)置或外接于所述SPI4設(shè)備的中央處理器CPU通過中央處理器CPU接口單元或所述SPI4設(shè)備發(fā)送的所述配置內(nèi)容封裝成PCI Express的處理層協(xié)議包,發(fā)送給所述PCI Express設(shè)備。
當(dāng)所述數(shù)據(jù)的內(nèi)容類型為中斷和消息內(nèi)容類型時,所述轉(zhuǎn)換單元將所述中斷和消息內(nèi)容發(fā)送給所述中斷單元處理。所述中斷單元接收到所述中斷和消息內(nèi)容后進(jìn)行如下處理將所有非錯誤消息內(nèi)部終結(jié);將中斷消息和錯誤消息解析后,通過消息信令中斷MSI或直接上報給所述中央處理器CPU。
當(dāng)所述數(shù)據(jù)的內(nèi)容類型為數(shù)據(jù)內(nèi)容類型時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容轉(zhuǎn)換為SPI4報文發(fā)送給所述SPI4設(shè)備,或者所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容封裝成PCI Express的處理層協(xié)議包發(fā)送給所述PCIExpress設(shè)備。
當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用分塊存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分分為兩個SPI4報文,并將所述兩個SPI4報文連續(xù)發(fā)送給所述SPI4設(shè)備。
當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用鏈表管理的存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分組成一個SPI4報文,并將所述SPI4報文發(fā)送給所述SPI4設(shè)備。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),其特征在于包括SPI4設(shè)備及PCI Express設(shè)備;以及連接在SPI4設(shè)備及PCI Express設(shè)備之間的轉(zhuǎn)換單元,用于將接收到的數(shù)據(jù)進(jìn)行解析,并將所述數(shù)據(jù)轉(zhuǎn)換為SPI4報文或PCI Express處理層協(xié)議內(nèi)容,發(fā)送給所述SPI4設(shè)備或所述PCI Express設(shè)備。
2.如權(quán)利要求1所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),其特征在于還包括與所述轉(zhuǎn)換單元相連的中斷單元,用于接收和處理中斷請求或錯誤消息,并將處理結(jié)果上報給內(nèi)置或外接于所述SPI4設(shè)備的中央處理器CPU。
3.如權(quán)利要求2所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),其特征在于還包括分別與所述轉(zhuǎn)換單元、所述中斷單元及所述中央處理器CPU相連的中央處理器CPU接口單元,用于接收或轉(zhuǎn)發(fā)所述中央處理器CPU與所述轉(zhuǎn)換單元、所述中斷單元之間傳輸?shù)臄?shù)據(jù),并且解析由所述中央處理器CPU發(fā)出的配置信息。
4.如權(quán)利要求1所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),其特征在于所述轉(zhuǎn)換單元與所述SPI4設(shè)備之間具有數(shù)據(jù)通道和控制通道,所述數(shù)據(jù)通道用于數(shù)據(jù)報文的傳輸,所述控制通道用于控制報文的傳輸。
5.一種利用權(quán)利要求1所述的系統(tǒng)實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于包括SPI4設(shè)備或PCI Express設(shè)備向轉(zhuǎn)換單元發(fā)送數(shù)據(jù);所述轉(zhuǎn)換單元將所述數(shù)據(jù)轉(zhuǎn)換為PCI Express處理層協(xié)議內(nèi)容或SPI4報文,發(fā)送給所述PCI Express設(shè)備或所述SPI4設(shè)備。
6.如權(quán)利要求5所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于還包括所述轉(zhuǎn)換單元在接收到所有的數(shù)據(jù)后,確定所述數(shù)據(jù)的內(nèi)容類型為配置內(nèi)容類型時,所述轉(zhuǎn)換單元將內(nèi)置或外接于所述SPI4設(shè)備的中央處理器CPU通過中央處理器CPU接口單元或所述SPI4設(shè)備發(fā)送的所述配置內(nèi)容封裝成PCI Express的處理層協(xié)議包,發(fā)送給所述PCI Express設(shè)備。
7.如權(quán)利要求5所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于還包括所述轉(zhuǎn)換單元在接收到所有的數(shù)據(jù)后,確定所述數(shù)據(jù)的內(nèi)容類型為中斷和消息內(nèi)容類型時,所述轉(zhuǎn)換單元將所述中斷和消息內(nèi)容發(fā)送給所述中斷單元處理。
8.如權(quán)利要求7所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于所述中斷單元接收到所述中斷和消息內(nèi)容后進(jìn)行如下處理將所有非錯誤消息內(nèi)部終結(jié);將中斷消息和錯誤消息解析后,通過消息信令中斷MSI或直接上報給所述中央處理器CPU。
9.如權(quán)利要求5所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于所述轉(zhuǎn)換單元在接收到所有的數(shù)據(jù)后,確定所述數(shù)據(jù)的內(nèi)容類型為數(shù)據(jù)內(nèi)容類型時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容轉(zhuǎn)換為SPI4報文發(fā)送給所述SPI4設(shè)備,或者所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容封裝成PCI Express的處理層協(xié)議包發(fā)送給所述PCI Express設(shè)備。
10.如權(quán)利要求9所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用分塊存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分分為兩個SPI4報文,并將所述兩個SPI4報文連續(xù)發(fā)送給所述SPI4設(shè)備。
11.如權(quán)利要求9所述的實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法,其特征在于當(dāng)所述SPI4設(shè)備對于接收的數(shù)據(jù)采用鏈表管理的存儲方式時,所述轉(zhuǎn)換單元將所述數(shù)據(jù)內(nèi)容的報文頭與所述數(shù)據(jù)內(nèi)容的載荷部分組成一個SPI4報文,并將所述SPI4報文發(fā)送給所述SPI4設(shè)備。
全文摘要
本發(fā)明公開了一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的系統(tǒng),所述系統(tǒng)包括SPI4設(shè)備及PCI Express設(shè)備;以及連接在SPI4設(shè)備及PCI Express設(shè)備之間的轉(zhuǎn)換單元,用于將接收到的數(shù)據(jù)進(jìn)行解析,并將所述數(shù)據(jù)轉(zhuǎn)換為SPI4報文或PCI Express處理層協(xié)議內(nèi)容,發(fā)送給SPI4設(shè)備或PCI Express設(shè)備。所述系統(tǒng)還可包括中斷單元及中央處理器CPU接口單元。轉(zhuǎn)換單元可以對SPI4設(shè)備發(fā)送的數(shù)據(jù)或PCIExpress設(shè)備發(fā)送的數(shù)據(jù)進(jìn)行解析,并進(jìn)行格式的轉(zhuǎn)換,以使轉(zhuǎn)換后的數(shù)據(jù)格式符合PCI Express處理層協(xié)議包或SPI4報文的格式,有效的解決了SPI4設(shè)備與PCI Express設(shè)備互連的問題。本發(fā)明還提供了一種實現(xiàn)SPI4設(shè)備與PCI Express設(shè)備互連的方法。
文檔編號H04L29/06GK1832488SQ20061006662
公開日2006年9月13日 申請日期2006年4月13日 優(yōu)先權(quán)日2006年4月13日
發(fā)明者肖亮, 陳科, 瞿凱, 朱根俊, 郭峰, 解葉軍, 王書劍 申請人:杭州華為三康技術(shù)有限公司