專利名稱:基于PCI總線的串行Rapid IO協(xié)議控制器的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及計算機通信技術(shù)領(lǐng)域,特別涉及通信協(xié)議控制器技術(shù)領(lǐng)域,具體是指一種基于PCI總線的串行Rapid IO協(xié)議控制器。
背景技術(shù):
自1992年創(chuàng)制規(guī)范以來,PCI總線是目前在計算機領(lǐng)域使用最廣泛的一種總線。Rapid 10(快速輸入輸出)是近年來迅速發(fā)展的一種新型的高速數(shù)據(jù)互聯(lián)總線。串行RapidIO (SerialRapid 10)由于使用高速串行技術(shù),并且可以將多個處理器互聯(lián),使計算機集群化、云計算化、內(nèi)存共享等特點,被廣泛適用于嵌入式計算機的芯片間、板間通信互聯(lián)。目前,在嵌入式計算機領(lǐng)域及通信技術(shù)領(lǐng)域,Rapid IO已成為新型多計算機、多處理器、多DSP的互聯(lián)的首要選擇,而對于諸多只有PCI為外部總線的計算機來說,就無法接入Rapid IO網(wǎng)絡(luò)。這些計算機就需要一個PCI/Rapid IO的橋接來接入到Rapid IO網(wǎng)絡(luò)。Rapid IO協(xié)議中考慮了 RapidIO對PCI的透明支持。該支持必須要把PCI地址空間映射到Rapid IO地址空間、PCI事務(wù)映射到Rapid IO事務(wù)。地址空間映射需要在PCI地址空間中為每個Rapid IO節(jié)點或部分節(jié)點分配一定的內(nèi)存空間。訪問該內(nèi)存空間的事務(wù),會通過地址映射和轉(zhuǎn)換函數(shù)AMT將事務(wù)的PCI地址轉(zhuǎn)換出相應(yīng)的目標(biāo)器件ID和相應(yīng)的偏移地址,然后轉(zhuǎn)換為正確的Rapid IO事務(wù)。但對于使用32位地址4G空間的PCI系統(tǒng)來說,為每個RapidIO節(jié)點分配足夠的空間稍顯吃力。更甚者,若轉(zhuǎn)接橋接收到PCI讀內(nèi)存事務(wù)時,轉(zhuǎn)接橋需要發(fā)送一個RIO Nread事務(wù)包到RapidIO網(wǎng)絡(luò),由于讀返回包返回需要一定時間,PCI主設(shè)備(PCI Master)會經(jīng)過無數(shù)次重試等待最多才能得到256B數(shù)據(jù)。如果PCI主設(shè)備需更多數(shù)據(jù),那么轉(zhuǎn)接橋必須再次發(fā)送一個RIONread事務(wù)包,才能得到另外256B數(shù)據(jù)??梢娺@種非流水式的PCI總線轉(zhuǎn)接流水式Rapid IO總線時,帶寬利用率甚為低下。另外PCI計算機還無法使用MSG與Doorbell (門鈴)事務(wù),更無法使用Maintenance (維護(hù))事務(wù)對Rapid IO網(wǎng)絡(luò)進(jìn)行維護(hù)。
實用新型內(nèi)容本實用新型的目的是克服了上述現(xiàn)有技術(shù)中的缺點,提供一種為PCI計算機提供訪問Rapid IO網(wǎng)絡(luò)的各項事務(wù)的支持,解決PCI端事務(wù)與Rapid IO事務(wù)的不匹配,以及非流水式總線轉(zhuǎn)接流水式總線造成帶寬流失的問題,從而使普通PCI總線計算機能夠高效接A Rapid IO網(wǎng)絡(luò),且結(jié)構(gòu)簡單,成本低廉,應(yīng)用范圍較為廣泛的基于PCI總線的串行RapidIO協(xié)議控制器。為了實現(xiàn)上述的目的,本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器具有如下構(gòu)成:該基于PCI總線的串行Rapid IO協(xié)議控制器包括PCI主模塊、PCI從模塊、直接內(nèi)存操作單元組、接收消息控制器、中斷控制器、寄存器配置總線、PCI主仲裁器、讀事務(wù)PCI地址記錄器、Rapid IO從應(yīng)模塊、Rapid IO從請求主應(yīng)答模塊、Rapid IO主請求器和RapidIO協(xié)議控制器。其中,PCI主模塊連接PCI總線,還連接接收消息控制器、PCI主仲裁器和中斷控制器;PCI從模塊連接PCI總線,還連接有寄存器配置總線,并通過該寄存器配置總線分別連接直接內(nèi)存操作單元組和中斷控制器;直接內(nèi)存操作單元組包括多個并聯(lián)的直接內(nèi)存操作單元;中斷控制器分別連接所述的直接內(nèi)存操作單元組和PCI總線;PCI主仲裁器與所述的PCI主模塊、所述的直接內(nèi)存操作單元組、讀事務(wù)PCI地址記錄器、Rapid IO從應(yīng)模塊和Rapid IO從請求主應(yīng)答模塊相連接;所述的直接內(nèi)存操作單元組還分別連接讀事務(wù)PCI地址記錄器和Rapid IO主請求器;Rapid IO協(xié)議控制器分別連接所述的Rapid IO主請求器、Rapid IO從應(yīng)模塊、Rapid IO從請求主應(yīng)答模塊和Rapid IO總線。該基于PCI總線的串行Rapid IO協(xié)議控制器中,所述的直接內(nèi)存操作單元組包括至少兩個直接內(nèi)存操作單元、狀態(tài)機、數(shù)據(jù)FIFO、事務(wù)ID定時器、事務(wù)ID管理器、直接內(nèi)存操作單元頭信息仲裁器和事務(wù)ID選擇器,所述的至少兩個直接內(nèi)存操作單元、數(shù)據(jù)FIFO、事務(wù)ID定時器、事務(wù)ID管理器和事務(wù)ID選擇器均連接所述的直接內(nèi)存操作單元頭信息仲裁器,該直接內(nèi)存操作單元頭信息仲裁器還連接所述的讀事務(wù)PCI地址記錄器、Rapid IO主請求器;所述的狀態(tài)機分別連接所述的中斷控制器和PCI主仲裁器,所述的PCI主仲裁器還連接所述的事務(wù)ID管理器。該基于PCI總線的串行Rapid IO協(xié)議控制器中,直接內(nèi)存操作單元包括PCI地址寄存器、Rapid IO地址寄存器、字節(jié)數(shù)寄存器、Doorbell與消息信息寄存器、模式寄存器、狀態(tài)寄存器、鏈模式當(dāng)前指針寄存器和鏈模式最后指針寄存器;所述的PCI地址寄存器和Rapid IO地址寄存器均分別連接所述的字節(jié)數(shù)寄存器、Doorbell與消息信息寄存器、模式寄存器、狀態(tài)寄存器、鏈模式當(dāng)前指針寄存器和鏈模式最后指針寄存器,所述的PCI地址寄存器;所述的PCI地址寄存器和Rapid 10地址寄存器還分別連接所述的直接內(nèi)存操作單元頭信息仲裁器。該基于PCI總線的串行Rapid 10協(xié)議控制器中,所述的Rapid 10從請求主應(yīng)答模塊包括:Rapid 10從請求主應(yīng)答器,連接于所述的Rapid 10協(xié)議控制器;以及從請求數(shù)據(jù)FIFO及從請求頭信息FIF0,分別連接所述的Rapid 10從請求主應(yīng)答器,并均連接所述的PCI主仲裁器。該基于PCI總線的串行Rapid 10協(xié)議控制器中,所述的Rapid 10從應(yīng)答模塊包括:Rapid10從應(yīng)答器,連接于所述的Rapid 10協(xié)議控制器;以及從應(yīng)答數(shù)據(jù)FIFO和從應(yīng)答頭信息FIF0,分別連接所述的Rapid 10從應(yīng)答器,并均連接所述的PCI主仲裁器。該基于PCI總線的串行Rapid 10協(xié)議控制器中,所述的Rapid 10主請求模塊包括:Rapid10從請求主應(yīng)答器,連接于所述的Rapid 10協(xié)議控制器;以及主請求數(shù)據(jù)FIFO和主請求頭信息FIF0,分別連接所述的Rapid 10從請求主應(yīng)答器,并均連接所述的直接內(nèi)存操作單元組。該基于PCI總線的串行Rapid 10協(xié)議控制器中,所述的接收消息控制器包括:至少I個(優(yōu)選為16個)消息信息單元、與該消息信息單元數(shù)量對應(yīng)的消息定時單元、與該消息信息單元數(shù)量對應(yīng)的消息狀態(tài)單元、與該消息信息單元數(shù)量對應(yīng)的消息地址單元和消息地址選擇器單元,所述的各個消息信息單元、各個消息定時單元、各個消息狀態(tài)單元、各個消息地址單元和消息地址選擇器單元均連接所述的PCI主仲裁器。該基于PCI總線的串行Rapid IO協(xié)議控制器中,所述的中斷控制器包括:中斷仲裁器,分別連接所述的直接內(nèi)存操作單元組、PCI主模塊和接收消息控制器;以及中斷狀態(tài)機和中斷FIFO,均連接所述的中斷仲裁器。采用了該實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器,由于其包括PCI主模塊、PCI從模塊、直接內(nèi)存操作單元組、接收消息控制器、中斷控制器、寄存器配置總線、PCI主仲裁器、讀事務(wù)PCI地址記錄器、Rapid IO從應(yīng)模塊、Rapid IO從請求主應(yīng)答模塊、RapidIO主請求器和Rapid IO協(xié)議控制器,從而能夠利用配置直接內(nèi)存操作單元組中的各直接內(nèi)存操作單元,產(chǎn)生Rapid IO事務(wù)包,提供訪問Rapid IO網(wǎng)絡(luò)的各項事務(wù)的支持,解決現(xiàn)有技術(shù)中PCI端事務(wù)與Rapid IO事務(wù)的不匹配,以及非流水式總線轉(zhuǎn)接流水式總線造成帶寬流失的問題,使普通PCI總線計算機能夠高效接入Rapid IO網(wǎng)絡(luò),且本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器,其結(jié)構(gòu)簡單,在FPGA上實現(xiàn)并不占用太多邏輯資源,應(yīng)用范圍也較為廣泛。
圖1為本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器的硬件結(jié)構(gòu)示意圖。圖2為本實用新型中的直接內(nèi)存操作單元組的硬件結(jié)構(gòu)示意圖。圖3為本實用新型中的Rapid IO從請求主應(yīng)答模塊的硬件結(jié)構(gòu)示意圖。圖4為本實用新型中的Rapid IO從應(yīng)答模塊的硬件結(jié)構(gòu)示意圖。圖5為本實用新型中的Rapid IO主請求模塊的硬件結(jié)構(gòu)示意圖。圖6為本實用新型中的接收消息控制器的硬件結(jié)構(gòu)示意圖。圖7為本實用新型中的中斷控制器的硬件結(jié)構(gòu)示意圖。圖8為本實用新型中的直接內(nèi)存操作單元的寄存器定義圖。
具體實施方式
為了能夠更清楚地理解本實用新型的技術(shù)內(nèi)容,特舉以下實施例詳細(xì)說明。請參閱圖1所示,為本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器的硬件結(jié)構(gòu)示意圖。在一種實施方式中,該基于PCI總線的串行Rapid IO協(xié)議控制器包括PCI主模塊108,PCI從模塊103、直接內(nèi)存操作單元組104、接收消息控制器110、中斷控制器109、寄存器配置總線115、PCI主仲裁器111、讀事務(wù)PCI地址記錄器105、Rapid IO從應(yīng)模塊113、RapidIO從請求主應(yīng)答模塊112、Rapid IO主請求器106和Rapid IO協(xié)議控制器107。其中:PCI主模塊108連接PCI總線,還連接接收消息控制器110、PCI主仲裁器111和中斷控制器109 ;[0034]PCI從模塊103連接PCI總線,還連接有寄存器配置總線115,并通過該寄存器配置總線115分別連接直接內(nèi)存操作單元組104和中斷控制器109 ;直接內(nèi)存操作單元組104包括多個并聯(lián)的直接內(nèi)存操作單元;中斷控制器109分別連接所述的直接內(nèi)存操作單元組104和PCI總線;PCI主仲裁器111與所述的PCI主模塊108、所述的直接內(nèi)存操作單元組104、讀事務(wù)PCI地址記錄器105、Rapid IO從應(yīng)模塊113和Rapid IO從請求主應(yīng)答模塊112相連接;所述的直接內(nèi)存操作單元組104還分別連接讀事務(wù)PCI地址記錄器105和RapidIO主請求器106 ;Rapid IO協(xié)議控制器107分別連接所述的Rapid IO主請求器106、Rapid IO從應(yīng)模塊113、Rapid IO從請求主應(yīng)答模塊112和Rapid IO總線。在一種較優(yōu)選的實施方式中,如圖2所示,所述的直接內(nèi)存操作單元組104包括至少兩個直接內(nèi)存操作單元、狀態(tài)機201、數(shù)據(jù)FIF0202、事務(wù)ID定時器203、事務(wù)ID管理器204、直接內(nèi)存操作單元頭信息仲裁器205和事務(wù)ID選擇器206,所述的至少兩個直接內(nèi)存操作單元、數(shù)據(jù)FIF0202、事務(wù)ID定時器203、事務(wù)ID管理器204和事務(wù)ID選擇器206均連接所述的直接內(nèi)存操作單元頭信息仲裁器205,該直接內(nèi)存操作單元頭信息仲裁器205還連接所述的讀事務(wù)PCI地址記錄器105Rapid IO主請求器106 ;所述的狀態(tài)機201分別連接所述的中斷控制器109和PCI主仲裁器111,所述的PCI主仲裁器111還連接所述的事務(wù)ID管理器204。在本實用新型進(jìn)一步優(yōu)選的實施方式中,如圖8所示,直接內(nèi)存操作單元包括PCI地址寄存器801、Rapid10地址寄存器802、字節(jié)數(shù)寄存器803、Doorbell與消息信息寄存器804、模式寄存器805、狀態(tài)寄存器806、鏈模式當(dāng)前指針寄存器807和鏈模式最后指針寄存器808 ;所述的PCI地址寄存器801和Rapid IO地址寄存器802均分別連接所述的字節(jié)數(shù)寄存器803、Doorbell與消息信息寄存器804、模式寄存器805、狀態(tài)寄存器806、鏈模式當(dāng)前指針寄存器807和鏈模式最后指針寄存器808,所述的PCI地址寄存器801 ;所述的PCI地址寄存器801和RapidIO地址寄存器802還分別連接所述的直接內(nèi)存操作單元頭信息仲裁器205。在本實用新型較優(yōu)選的實施方式中,如圖3所示,所述的Rapid IO從請求主應(yīng)答模塊112包括:Rapid IO從請求主應(yīng)答器303,連接于所述的Rapid IO協(xié)議控制器107;以及從請求數(shù)據(jù)FIF0301及從請求頭信息FIF0302,分別連接所述的RapidIO從請求主應(yīng)答器303,并均連接所述的PCI主仲裁器111。在本實用新型較優(yōu)選的實施方式中,如圖4所示,所述的Rapid IO從應(yīng)答模塊113包括:Rapid IO從應(yīng)答器403,連接于所述的Rapid IO協(xié)議控制器107 ;以及從應(yīng)答數(shù)據(jù)FIF0401和從應(yīng)答頭信息FIF0402,分別連接所述的Rapid IO從應(yīng)答器403,并均連接所述的PCI主仲裁器111。在本實用新型較優(yōu)選的實施方式中,如圖5所示,所述的Rapid IO主請求模塊106包括:Rapid IO從請求主應(yīng)答器503,連接于所述的Rapid IO協(xié)議控制器107 ;以及主請求數(shù)據(jù)FIF0501和主請求頭信息FIF0502,分別連接所述的Rapid IO從請求主應(yīng)答器503,并均連接所述的直接內(nèi)存操作單元組104。[0045]在本實用新型進(jìn)一步優(yōu)選的實施方式中,如圖6所示,所述的接收消息控制器110包括:至少I個消息信息單元601、與該消息信息單元601數(shù)量對應(yīng)的消息定時單元602、與該消息信息單元601數(shù)量對應(yīng)的消息狀態(tài)單元603、與該消息信息單元601數(shù)量對應(yīng)的消息地址單元604和消息地址選擇器單元605,所述的各個消息信息單元601、各個消息定時單元602、16個消息狀態(tài)單元603、各個消息地址單元604和消息地址選擇器單元605均連接所述的PCI主仲裁器111。作為最優(yōu)實施方式,所述的接收消息控制器110包括:16個消息信息單元601、16個消息定時單元602、16個消息狀態(tài)單元603、16個消息地址單元604和消息地址選擇器單元605,所述的16個消息信息單元601、16個消息定時單元602、16個消息狀態(tài)單元603、16個消息地址單元604和消息地址選擇器單元605均連接所述的PCI主仲裁器111。在一種更優(yōu)選的實施方式中,如圖7所示,所述的中斷控制器109包括:中斷仲裁器703,分別連接所述的直接內(nèi)存操作單元組104、PCI主模塊108和接收消息控制器110 ;以及中斷狀態(tài)機701和中斷FIF0702,均連接所述的中斷仲裁器703。在本實用新型的實際應(yīng)用中,該基于PCI總線的串行Rapid IO協(xié)議控制器中,PCI從模塊103產(chǎn)生寄存器配置總線115與DMA狀態(tài)機201、中斷控制器109連接;PCI主模塊仲裁器111與PCI主模塊108、DMA狀態(tài)機201、讀事務(wù)PCI地址記錄器105、從請求數(shù)據(jù)Fifo301、從請求頭信息Fifo302、中斷仲裁器703連接;DMA頭信息仲裁器205與DMA狀態(tài)機201、事務(wù)ID選擇器206、主請求數(shù)據(jù)Fifo501、主請求頭信息Fifo502連接;Rapid IO主請求器503與主請求數(shù)據(jù)Fifo501、主請求頭信息Fifo502、Rapid IO協(xié)議控制器107連接;Rapid IO從應(yīng)答器403與從應(yīng)答數(shù)據(jù)Fifo401、從應(yīng)答頭信息Fifo402、Rapid IO協(xié)議控制器107連接;Rapid IO從請求主應(yīng)答器303與從請求數(shù)據(jù)Fifo301、從請求頭信息Fifo302、Rapid IO協(xié)議控制器107連接;讀事務(wù)PCI地址記錄器105與Dma頭信息仲裁器205、PCI主模塊仲裁器111連接。當(dāng)CPU 101欲發(fā)起Rapid IO事務(wù)時,相應(yīng)原理與流程如下:1、驅(qū)動程序首先獲取其中一個DMA使用權(quán)的信號量;2、獲得使用權(quán)信號量后,配置DMA寄存器:PCI內(nèi)存地址801、Rapid IO地址寄存器802、字節(jié)數(shù)寄存器803、Doorbell與Msg信息寄存器804、模式寄存器805、鏈模式當(dāng)前指針寄存器807、鏈模式最后指針寄存器808 ;3、當(dāng)驅(qū)動程序配置好DMA相應(yīng)寄存器后,DMA根據(jù)模式寄存器中的配置發(fā)起相應(yīng)的Rapid IO事務(wù),而驅(qū)動程序?qū)⒃俅潍@取一個DMA完成信號量;4、若DMA模式寄存器805被配置成Rapid IO Nread事務(wù)或Config Read事務(wù),DMA狀態(tài)機201將向Dma頭信息仲裁器205申請發(fā)送Nread頭信息;a) Dma頭信息仲裁器205得到DMA發(fā)送請求后,向事務(wù)ID選擇器206申請一個TID ;b)事務(wù)ID選擇器206得到Dma頭信息仲裁器205模塊申請請求,從空閑的TID中分配一個TID給Dma頭信息仲裁器205模塊,并將PCI端內(nèi)存地址寫入讀事務(wù)PCI地址記錄器105中對應(yīng)TID的RAM地址空間;c)Dma頭信息仲裁器205模塊得到TID信息,將TID信息通知DMA事務(wù)ID管理者204,并將DMA狀態(tài)機201的Nread頭信息寫入主請求頭信息FIF0502 ;[0057]d)DMA事務(wù)ID管理者204將對該對TID做占用標(biāo)志,若DMA字節(jié)數(shù)寄存器803不空,還需要發(fā)送數(shù)據(jù)包,則再次向Dma頭信息仲裁器205申請發(fā)送Nread頭信息,隨后將再次執(zhí)行a流程,直到DMA字節(jié)數(shù)寄存器803為0,不需要發(fā)送Nread事務(wù)包為止,這時DMA狀態(tài)機201進(jìn)入等待TID返回的狀態(tài),等待發(fā)送的各個TID讀數(shù)據(jù)事務(wù)包全部返回;e)與此同時,當(dāng)Rapid IO主請求器503發(fā)現(xiàn)主請求頭信息FIF0502不空,取出數(shù)據(jù),交給Rapid IO協(xié)議控制器107 ;f) Rapid IO協(xié)議控制器107將Nread事務(wù)包發(fā)送至Rapid IO網(wǎng)絡(luò);g)當(dāng)Nread的Response包返回,Rapid IO協(xié)議控制器107將該包交給Rapid IO從請求主應(yīng)答控制器303 ;h) Rapid IO從請求主應(yīng)答控制器303將數(shù)據(jù)寫入從請求數(shù)據(jù)Fifo301,將頭信息寫入從請求頭信息FIF0302 ;i) 一旦PCI主仲裁模塊111發(fā)現(xiàn)從請求頭信息FIF0302不空,將根據(jù)頭信息中的TID向讀事務(wù)PCI地址記錄器105查找相應(yīng)PCI端的內(nèi)存地址;j )PCI主仲裁模塊111結(jié)合PCI地址與從請求頭信息FIF0302信息向PCI主模塊108申請寫內(nèi)存事務(wù)請求;k)PCI主模塊108得到寫事務(wù)請求,讀取從請求FIFO中的數(shù)據(jù)大小,操作類型,并發(fā)現(xiàn)該事務(wù)為PCI寫事務(wù),則開始發(fā)起PCI寫事務(wù),將從請求數(shù)據(jù)FIFO寫入PCI端內(nèi)存空間;I) PCI寫數(shù)據(jù)完成,PCI主仲裁模塊111將向DMA事務(wù)ID管理者204通知該TID事務(wù)完成操作;m)事務(wù)ID管理者204清除TID標(biāo)志;n)當(dāng)DMA狀態(tài)機701中的所有TID狀態(tài)被清除,或收到錯誤、重試返回包后,向中斷仲裁器703申請寫中斷FIFO請求;0)由中斷仲裁器703仲裁后,將DMA中斷信息寫入中斷FIF0702 ;p)中斷狀態(tài)機124發(fā)現(xiàn)中斷FIF0702不空,將拉低PCI總線INT_n,發(fā)起中斷;5、若 DMA 模式寄存器 805 被配置成 Rapid IO Nwrite 事務(wù)、Nwrite-R、Swrite 事務(wù)、Msg事務(wù)、config Wr事務(wù)時,DMA狀態(tài)機701將向PCI主仲裁模塊111模塊申請數(shù)據(jù);a) PCI主仲裁模塊111發(fā)現(xiàn)DMA狀態(tài)機701請求后,向PCI主模塊108申請讀內(nèi)存事務(wù)請求;b)通過PCI主模塊108發(fā)起PCI內(nèi)存讀事務(wù)。c)當(dāng)PCI總線返回數(shù)據(jù),并存入DMA數(shù)據(jù)FIF0202中;d)當(dāng)數(shù)據(jù)FIF0202數(shù)據(jù)個數(shù)滿足發(fā)送一個Rapid 10寫事務(wù)包條件時,DMA狀態(tài)機701將向Dma頭信息仲裁器205模塊申請發(fā)送頭信息;e)Dma頭信息仲裁器205模塊得到DMA狀態(tài)機701發(fā)送請求后,向事務(wù)ID選擇器206申請一個TID ;f )事務(wù)ID選擇器206得到Dma頭信息仲裁器205模塊申請請求,從空閑的TID中分配一個TID給Dma頭信息仲裁器205模塊;g)Dma頭信息仲裁器205模塊得到TID信息,將TID信息通知DMA事務(wù)ID管理者204,并將事務(wù)的頭信息寫入主請求頭信息FIF0502,數(shù)據(jù)信息寫入主請求數(shù)據(jù)FIF0501 ;[0078]h)DMA中的事務(wù)ID管理者204將對該對TID做占用標(biāo)志,若DMA字節(jié)數(shù)寄存器803不空,還需要發(fā)送數(shù)據(jù)包,則再次向PCI主仲裁模塊111申請數(shù)據(jù),隨后將再次執(zhí)行a流程,直到DMA字節(jié)數(shù)寄存器為0,不需要發(fā)送寫事務(wù)包為止,這時DMA進(jìn)入等待所有TID標(biāo)志為0狀態(tài),除了 NWRITE與SWRITE事務(wù)不需要等待TID返回外,其他事務(wù)均需等待發(fā)送的各個TID寫數(shù)據(jù)事務(wù)包全部返回;i)若為NWRITE事務(wù)或SWRITE事務(wù),DMA不需要等待TID寫數(shù)據(jù)事務(wù)包全部返回,這時DMA狀態(tài)機701就向中斷仲裁器703申請寫中斷FIF0702請求;j)若為Nwrite-R、Msg事務(wù)、config Wr事務(wù)則DMA需要等待事務(wù)返回包,并檢測返回包狀態(tài);k)事務(wù)返回包返回后,經(jīng)Rapid IO協(xié)議控制器107模塊進(jìn)入Rapid IO從請求主應(yīng)答控制器303,之后寫入從請求頭信息FIF0302 ;I) PCI主仲裁模塊111將向DMA中事務(wù)ID管理者204通知TID事務(wù)完成操作;m)事務(wù)ID管理者204清除TID標(biāo)志;n)當(dāng)DMA狀態(tài)機701中的所有TID狀態(tài)被清除后,向中斷仲裁器703申請寫中斷FIF0702 請求;6、若DMA模式寄存器805被配置成Doorbell事務(wù)時,DMA將向Dma頭信息仲裁器205模塊申請發(fā)送Doorbell頭信息;a)Dma頭信息仲裁器205模塊得到DMA發(fā)送請求后,向事務(wù)ID選擇器206申請一個 TID ;b)事務(wù)ID選擇器206得到Dma頭信息仲裁器205申請請求,從空閑的TID中分配一個TID給Dma頭信息仲裁器205 ;c) Dma頭信息仲裁器205得到TID信息,將TID信息通知DMA狀態(tài)機701中的事務(wù)ID管理者204,并將DMA狀態(tài)機701的Doorbell頭信息寫入從請求頭信息FIF0302 ;d) DMA中的事務(wù)ID管理者204將對該對TID做占用標(biāo)志后,DMA狀態(tài)機701進(jìn)入等待TID標(biāo)志為0狀態(tài),等待Doorbell的事務(wù)RESPONSE包返回;e)與此同時,當(dāng)Rapid 10主請求器503發(fā)現(xiàn)從請求頭信息FIF0302模塊不空,取出數(shù)據(jù),交給Rapid 10協(xié)議控制器107 ;f) Rapid 10協(xié)議控制器107將Doorbell事務(wù)包發(fā)送至Rapid 10網(wǎng)絡(luò);g) Doorbell事務(wù)返回包返回后,經(jīng)Rapid 10協(xié)議控制器107模塊進(jìn)入Rapid 10從請求主應(yīng)答控制器303,之后寫入從請求頭信息FIF0302 ;h)PCI主仲裁模塊111將向DMA中事務(wù)ID管理者204通知TID事務(wù)完成操作,事務(wù)ID管理者204便清除TID標(biāo)志;i)當(dāng)DMA狀態(tài)機701中的TID狀態(tài)被清除后,向中斷仲裁器703申請寫中斷FIF0702 請求;7、中斷狀態(tài)機701發(fā)現(xiàn)中斷FIF0702不空,將拉低PCI總線INT_n,發(fā)起中斷;8、中斷服務(wù)程序執(zhí)行中斷程序,通過PCI總線,經(jīng)過PCI從模塊103轉(zhuǎn)變,后查看到中斷FIF0702信息,得到執(zhí)行狀態(tài);9、中斷服務(wù)程序發(fā)現(xiàn)為DMA中斷,釋放相應(yīng)DMA完成信號量;10、驅(qū)動程序獲得相應(yīng)DMA完成信號量,返回執(zhí)行狀態(tài)。[0099]當(dāng)控制器收到RapidIO請求事務(wù)時,相應(yīng)原理與流程如下:1、從請求事務(wù)包(Doorbell、Nwrite、nwrite-R、Swrite、Msg、NREAD),經(jīng) Rapid IO協(xié)議控制器107模塊進(jìn)入Rapid IO從請求主應(yīng)答控制器303,之后頭信息寫入從請求頭信息FIF0302,數(shù)據(jù)進(jìn)入從請求數(shù)據(jù)FIF0301 ;2、PCI主仲裁模塊111發(fā)現(xiàn)從請求頭信息FIF0302不空,將向PCI主模塊108申請內(nèi)存事務(wù)請求;3、PCI主模塊108得到事務(wù)請求,讀取從請求FIFO中的數(shù)據(jù)大小與操作類型,并根據(jù)事務(wù)類型發(fā)起不同的PCI操作;4、若事務(wù)類型為NREAD操作,那么PCI主模塊108根據(jù)從請求頭信息FIF0302中的地址信息、字節(jié)大小,發(fā)起PCI總線的內(nèi)存讀操作;a) PCI主模塊108將返回后的數(shù)據(jù)寫入從應(yīng)答數(shù)據(jù)FIF0401 ;b)PCI主模塊108申請完數(shù)據(jù)后,將數(shù)據(jù)申請狀態(tài)、源ID等信息寫入從應(yīng)答頭信息 FIF0402 ;5、若事務(wù)類型為NWRITE,那么PCI主模塊108根據(jù)從請求頭信息FIF0302中的地址信息、字節(jié)大小,發(fā)起PCI總線的內(nèi)存寫操作;6、若事務(wù)類型為NWRITE-R,那么PCI主模塊108根據(jù)從請求頭信息FIF0302中的地址信息、字節(jié)大小,發(fā)起PCI總線的內(nèi)存寫操作;a) PCI主模塊108寫完數(shù)據(jù)后,將數(shù)據(jù)申請狀態(tài)、源ID等信息寫入從應(yīng)答頭信息FIF0402 ;7、若事務(wù)類型為DOORBELL,那么PCI主模塊108將向中斷仲裁器703發(fā)起寫中斷FIF0702 請求;a) PCI 主模塊 108 將 DOORBELL INFO、Source ID 寫入中斷 FIF0702 后,將數(shù)據(jù)申請狀態(tài)、源ID等信息寫入從應(yīng)答頭信息FIF0402 ;8、若事務(wù)類型為MESSAGE,那么PCI主模塊108首先向接收消息控制器110發(fā)起消息地址請求。a)消息地址選擇器605根據(jù)PCI主模塊108提供的源ID、msglen、mbox、letter>ssize信息與16個消息信息601進(jìn)行匹配;b)如果正在被占用的消息信息601中,未有匹配消息信息,那么任務(wù)收到的消息為新消息,為其分配一個新的消息信息601,以便與收到之后的消息段進(jìn)行匹配,同時從消息地址604中選出對應(yīng)的地址返回給消息地址選擇器605 ;c)如果正在被占用的消息信息601中,存在匹配消息,那么消息地址選擇器605從消息地址604中選出對應(yīng)的地址返回給消息地址選擇器605 ;d)消息地址選擇器605根據(jù)msgSegdsize計算出該消息段需要存儲的數(shù)據(jù)地址,返回給PCI主模塊108 ;e) PCI主模塊108根據(jù)消息接收控制器110返回的地址發(fā)起PCI內(nèi)存寫事務(wù);f)數(shù)據(jù)寫完后,向中斷仲裁器703申請寫中斷FIF0702請求,中斷狀態(tài)機701發(fā)現(xiàn)中斷FIF0702不空,將拉低PCI總線INT_n,發(fā)起中斷;g)當(dāng)PCI主模塊108寫完中斷FIF0702后,PCI主模塊108將PCI寫數(shù)據(jù)狀態(tài)、源ID等信息寫入從應(yīng)答頭信息FIF0402 ;[0119]9,Rapid IO從應(yīng)答器112發(fā)現(xiàn)從應(yīng)答頭信息FIF0402不空,取出數(shù)據(jù),交給RapidIO協(xié)議控制器107。本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器的技術(shù)方案中,其中所包括的各個功能模塊和模塊單元均能夠?qū)?yīng)于集成電路結(jié)構(gòu)中的具體硬件電路,因此這些模塊和單元僅利用硬件電路結(jié)構(gòu)就可以實現(xiàn),不需要輔助以特定的控制軟件即可以自動實現(xiàn)相應(yīng)功能。采用了該實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器,由于其包括PCI主模塊、PCI從模塊、直接內(nèi)存操作單元組、接收消息控制器、中斷控制器、寄存器配置總線、PCI主仲裁器、讀事務(wù)PCI地址記錄器、Rapid IO從應(yīng)模塊、Rapid IO從請求主應(yīng)答模塊、RapidIO主請求器和Rapid IO協(xié)議控制器,從而能夠利用配置直接內(nèi)存操作單元組中的各直接內(nèi)存操作單元,產(chǎn)生Rapid IO事務(wù)包,提供訪問Rapid IO網(wǎng)絡(luò)的各項事務(wù)的支持,解決現(xiàn)有技術(shù)中PCI端事務(wù)與Rapid IO事務(wù)的不匹配,以及非流水式總線轉(zhuǎn)接流水式總線造成帶寬流失的問題,使普通PCI總線計算機能夠高效接入Rapid IO網(wǎng)絡(luò),且本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器,其結(jié)構(gòu)簡單,在FPGA上實現(xiàn)并不占用太多邏輯資源,應(yīng)用范圍也較為廣泛。在此說明書中,本實用新型已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本實用新型的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求1.一種基于PCI總線的串行Rapid IO協(xié)議控制器,其特征在于,所述的控制器包括: PCI主模塊(108),連接PCI總線,還連接接收消息控制器(110)、PCI主仲裁器(111)和中斷控制器(109); PCI從模塊(103),連接PCI總線,還連接有寄存器配置總線(115),并通過該寄存器配置總線(115)分別連接直接內(nèi)存操作單元組(104)和中斷控制器(109); 直接內(nèi)存操作單元組(104),包括多個并聯(lián)的直接內(nèi)存操作單元; 中斷控制器(109),分別連接所述的直接內(nèi)存操作單元組(104)和PCI總線; PCI主仲裁器(111),與所述的PCI主模塊(108)、所述的直接內(nèi)存操作單元組(104)、讀事務(wù)PCI地址記錄器(105)、Rapid IO從應(yīng)模塊(113)和Rapid IO從請求主應(yīng)答模塊(112)相連接; 所述的直接內(nèi)存操作單元組(104),還分別連接讀事務(wù)PCI地址記錄器(105)和RapidIO 主請求器(106); Rapid IO協(xié)議控制器(107),分別連接所述的Rapid IO主請求器(106)、Rapid IO從應(yīng)模塊(I 13)、RapidIO從請求主應(yīng)答模塊(112)和RapidIO總線。
2.根據(jù)權(quán)利要求1所述的基于PCI總線的串行RapidIO協(xié)議控制器,其特征在于,所述的直接內(nèi)存操作單元組(104)包括至少兩個直接內(nèi)存操作單元、狀態(tài)機(201)、數(shù)據(jù)FIFO(202)、事務(wù)ID定時器(203)、事務(wù)ID管理器(204)、直接內(nèi)存操作單元頭信息仲裁器(205)和事務(wù)ID選擇器(206),所述的至少兩個直接內(nèi)存操作單元、數(shù)據(jù)FIFO (202)、事務(wù)ID定時器(203 )、事務(wù)ID管理器(204 )和事務(wù)ID選擇器(206 )均連接所述的直接內(nèi)存操作單元頭信息仲裁器(205 ),該直接內(nèi)存操作單元頭信息仲裁器(205 )還連接所述的讀事務(wù)PCI地址記錄器(105)、Rapid IO主請求器(106);所述的狀態(tài)機(201)分別連接所述的中斷控制器(109)和PCI主仲裁器(111),所述的PCI主仲裁器(111)還連接所述的事務(wù)ID管理器(204)。
3.根據(jù)權(quán)利要求1所述的基于PCI總線的串行RapidIO協(xié)議控制器,其特征在于,直接內(nèi)存操作單元包括PCI地址寄存器(801)、Rapid IO地址寄存器(802)、字節(jié)數(shù)寄存器(803)、Doorbell與消息信息寄存器(804)、模式寄存器(805)、狀態(tài)寄存器(806)、鏈模式當(dāng)前指針寄存器(807)和鏈模式最后指針寄存器(808);所述的PCI地址寄存器(801)和RapidIO地址寄存器(802)均分別連接所述的字節(jié)數(shù)寄存器(803)、Doorbell與消息信息寄存器(804)、模式寄存器(805)、狀態(tài)寄存器(806)、鏈模式當(dāng)前指針寄存器(807)和鏈模式最后指針寄存器(808),所述的PCI地址寄存器(801);所述的PCI地址寄存器(801)和Rapid 10地址寄存器(802)還分別連接所述的直接內(nèi)存操作單元頭信息仲裁器(205)。
4.根據(jù)權(quán)利要求1所述的基于PCI總線的串行Rapid10協(xié)議控制器,其特征在于,所述的Rapid 10從請求主應(yīng)答模塊(I 12)包括: Rapid 10從請求主應(yīng)答器(303),連接于所述的Rapid 10協(xié)議控制器(107);以及從請求數(shù)據(jù)FIFO (301)及從請求頭信息FIFO (302),分別連接所述的Rapid 10從請求主應(yīng)答器(303),并均連接所述的PCI主仲裁器(111)。
5.根據(jù)權(quán)利要求1所述的基于PCI總線的串行Rapid10協(xié)議控制器,其特征在于,所述的Rapid 10從應(yīng)答模塊(I 13)包括: Rapid 10從應(yīng)答器(403),連接于所述的Rapid 10協(xié)議控制器(107);以及從應(yīng)答數(shù)據(jù)FIFO (401)和從應(yīng)答頭信息FIFO (402),分別連接所述的Rapid IO從應(yīng)答器(403 ),并均連接所述的PCI主仲裁器(111)。
6.根據(jù)權(quán)利要求1所述的基于PCI總線的串行RapidIO協(xié)議控制器,其特征在于,所述的Rapid IO主請求模塊(106)包括: Rapid IO從請求主應(yīng)答器(503),連接于所述的Rapid IO協(xié)議控制器(107);以及 主請求數(shù)據(jù)FIFO (501)和主請求頭信息FIFO (502),分別連接所述的Rapid IO從請求主應(yīng)答器(503),并均連接所述的直接內(nèi)存操作單元組(104)。
7.根據(jù)權(quán)利要求1所述的基于PCI總線的串行RapidIO協(xié)議控制器,其特征在于,所述的接收消息控制器(110)包括:至少I個消息信息單元(601)、與該消息信息單元(6 OI)數(shù)量對應(yīng)的消息定時單元(6 O 2 )、與該消息信息單元(6 OI)數(shù)量對應(yīng)的消息狀態(tài)單元(603)、與該消息信息單元(601)數(shù)量對應(yīng)的消息地址單元(604)和消息地址選擇器單元(605),所述的各個消息信息單元(601)、各個消息定時單元(602)、16個消息狀態(tài)單元(603)、各個消息地址單元(604)和消息地址選擇器單元(605)均連接所述的PCI主仲裁器(111)。
8.根據(jù)權(quán)利要求1所述的基于PCI總線的串行RapidIO協(xié)議控制器,其特征在于,所述的中斷控制器(109)包括: 中斷仲裁器(703),分別連接所述的直接內(nèi)存操作單元組(104)、PCI主模塊(108)和接收消息控制器(110);以及 中斷狀態(tài)機(701)和中斷FIFO (702),均連接所述的中斷仲裁器(703)。
專利摘要本實用新型涉及一種基于PCI總線的串行Rapid IO協(xié)議控制器,屬于計算機通信技術(shù)領(lǐng)域。該控制器包括PCI主模塊、PCI從模塊、直接內(nèi)存操作單元組、接收消息控制器、中斷控制器、寄存器配置總線、PCI主仲裁器、讀事務(wù)PCI地址記錄器、Rapid IO從應(yīng)模塊、RapidIO從請求主應(yīng)答模塊、Rapid IO主請求器和Rapid IO協(xié)議控制器,從而能夠利用配置直接內(nèi)存操作單元組中的各直接內(nèi)存操作單元,產(chǎn)生Rapid IO事務(wù)包,提供訪問Rapid IO網(wǎng)絡(luò)的各項事務(wù)的支持,解決現(xiàn)有技術(shù)中PCI端事務(wù)與Rapid IO事務(wù)的不匹配,以及非流水式總線轉(zhuǎn)接流水式總線造成帶寬流失的問題,使普通PCI總線計算機能夠高效接入Rapid IO網(wǎng)絡(luò),且本實用新型的基于PCI總線的串行Rapid IO協(xié)議控制器,其結(jié)構(gòu)簡單,在FPGA上實現(xiàn)并不占用太多邏輯資源,應(yīng)用范圍也較為廣泛。
文檔編號G06F13/42GK202948447SQ20122052736
公開日2013年5月22日 申請日期2012年10月15日 優(yōu)先權(quán)日2012年10月15日
發(fā)明者馬克杰, 聶新義, 奚軍 申請人:中國電子科技集團(tuán)公司第三十二研究所