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