專利名稱:一種pci以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機和通信領(lǐng)域,特別涉及一種PCI以太網(wǎng)媒體訪問控制器(MediaAccess Control,MAC)傳輸數(shù)據(jù)的方法。
背景技術(shù):
目前,在計算機和通信技術(shù)領(lǐng)域中,外圍部件互連(Peripheral ComponentInterconnect,PCI)以太網(wǎng)MAC控制器是一種常見的通信設(shè)備。通常在PCI以太網(wǎng)MAC控制器中選用PCI總線接口作為以太網(wǎng)MAC與主機的通信接口。PCI總線是一種高速的32位或64位多地址多數(shù)據(jù)外圍部件互連局部總線,工作頻率為33MHz時,最大數(shù)據(jù)傳輸速率為132MB/s(32位)和266MB/s(64位)。從創(chuàng)立PCI總線規(guī)范至今,PCI總線已經(jīng)成為事實上計算機的標準總線。在許多計算機系統(tǒng)或通訊系統(tǒng)中,外部擴展設(shè)備(例如子卡或接口板)與CPU之間都是通過PCI總線連接。
在以太網(wǎng)MAC子層中主要定義了數(shù)據(jù)幀的封裝、解封,以及數(shù)據(jù)幀發(fā)送與接收的介質(zhì)訪問控制方法。PCI總線允許以太網(wǎng)MAC控制器快速訪問系統(tǒng)存儲器。PCI總線的讀寫操作可以通過突發(fā)(Burst)方式進行。主機在發(fā)送數(shù)據(jù)幀之前,先將數(shù)據(jù)存放在數(shù)據(jù)緩沖區(qū)中等待MAC讀??;MAC接收到的數(shù)據(jù)幀也要存放在數(shù)據(jù)緩沖區(qū)中等待主機的處理。
目前,在主機中大多采用如下的數(shù)據(jù)緩沖區(qū)管理方式如圖1所示,在主機的內(nèi)存(例如,同步動態(tài)隨機存儲器SDRAM)中劃分出兩個緩沖區(qū),一個存放要發(fā)送的數(shù)據(jù),稱為發(fā)送緩沖區(qū)(TX-BUFFER);另一個存放接收到的數(shù)據(jù)幀,稱為接收緩沖區(qū)(RX-BUFFER)。每個緩沖區(qū)又劃分為n個小的數(shù)據(jù)緩沖區(qū)(Buffer),即Buffer_1~Buffer_n。每個小的數(shù)據(jù)緩沖區(qū)僅用于存放一個數(shù)據(jù)幀。每一個存放數(shù)據(jù)幀的緩沖區(qū)都有對應(yīng)的緩沖區(qū)描述符(BufferDescriptors,BD)與之對應(yīng)。各個小的數(shù)據(jù)緩沖區(qū)Buffer和與其相應(yīng)的緩沖區(qū)描述符是分開的。這樣接收緩沖區(qū)就有一個按接收順序排列的接收緩沖描述符(Rx Buffer Descriptors)隊列與之對應(yīng);發(fā)送緩沖區(qū)就有一個按發(fā)送順序排列的發(fā)送緩沖區(qū)描述符(Tx Buffer Descriptors,Tx-BD)隊列與之對應(yīng),數(shù)據(jù)的發(fā)送和接收過程都是通過緩沖區(qū)描述符進行的。
緩沖區(qū)描述符的格式大都采用如下表形式
其中狀態(tài)域(Status),指示數(shù)據(jù)幀的狀態(tài),如果Own=1表示此數(shù)據(jù)緩存區(qū)描述符中有數(shù)據(jù)幀;如果Own=0,表示此數(shù)據(jù)緩存區(qū)描述符中沒有數(shù)據(jù)幀;其它位指示數(shù)據(jù)幀的各種狀態(tài);長度(Length),指示該幀數(shù)據(jù)的長度;緩沖區(qū)的起始地址(BufferAddress),指示該幀數(shù)據(jù)緩沖區(qū)的起始地址。
如圖2所示,為現(xiàn)有的緩沖區(qū)描述符BD隊列的示意圖,該緩沖區(qū)描述符隊列是一個環(huán)形結(jié)構(gòu),當最后一個緩沖區(qū)描述符被使用后又將從第一個緩沖區(qū)描述符開始。
數(shù)據(jù)幀的接收過程系統(tǒng)復(fù)位初始化后,主機首先將第一個接收緩沖區(qū)描述符的地址通過PCI配置上行(接收)起始地址;當MAC接收到一幀完整的數(shù)據(jù)并將其存放到主機的內(nèi)存中以前,需要先將該數(shù)據(jù)存放在MAC的接收先入先出模塊(First InFirst Out,F(xiàn)IFO)中;MAC通過PCI開始從讀緩沖區(qū)描述符Rx-BD隊列的起始地址讀相應(yīng)的緩沖區(qū)描述符Rx-BD,并檢測該Rx-BD的狀態(tài)域,如果Own=0,則將接收到的數(shù)據(jù)幀通過PCI突發(fā)模式寫到該Rx-BD所指向的該幀數(shù)據(jù)的緩沖區(qū)中,一幀數(shù)據(jù)接收完畢后更新該Rx-BD,指示其已經(jīng)存放了有效的數(shù)據(jù)幀,主機就可以通過這個標志位來處理這幀數(shù)據(jù),如果Own=1,則掃描下一幀數(shù)據(jù)的Rx-BD,依次類推,取到最后一幀數(shù)據(jù)的Rx-BD后,就又轉(zhuǎn)到第一幀數(shù)據(jù)的Rx-BD。如果所有的Rx-BD的Own=1時,則說明緩沖區(qū)已滿,這時MAC將用中斷通知主機需要及時騰空接收區(qū)緩沖區(qū)或進行流量控制。
數(shù)據(jù)幀的發(fā)送過程系統(tǒng)復(fù)位初始化后,主機首先將第一個發(fā)送緩沖區(qū)描述符的地址通過PCI配置下行(發(fā)送)起始地址;主機在發(fā)送數(shù)據(jù)時,先將一幀或多幀數(shù)據(jù)存放在發(fā)送數(shù)據(jù)緩沖區(qū),并通過PCI總線向MAC發(fā)出啟動發(fā)送命令;MAC檢測到發(fā)送命令后,將通知PCI發(fā)送控制模塊向主機申請PCI總線;獲得PCI總線后,根據(jù)MAC中的發(fā)送緩沖區(qū)描述符(Tx-BD)隊列的起始地址讀入PCI發(fā)送控制模塊中,并檢測該幀數(shù)據(jù)的Tx-BD的狀態(tài)域,如Own=1,則將Tx-BD所指向的該幀數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)通過PCI突發(fā)模式傳輸?shù)組AC的Tx-FIFO中。當Tx-FIFO中的數(shù)據(jù)滿時,MAC將Tx-FIFO中的數(shù)據(jù)發(fā)送出去。一幀數(shù)據(jù)發(fā)送完畢后,PCI發(fā)送控制模塊將通過PCI總線將該幀數(shù)據(jù)緩沖區(qū)中的狀態(tài)域更新(將Own置0),指示該幀數(shù)據(jù)已經(jīng)發(fā)送,以便主機再次使用該Tx-BD。這樣一次發(fā)送過程完畢PCI發(fā)送控制模塊接著讀入第二幀數(shù)據(jù)的Tx-BD,檢測該Tx-BD的狀態(tài)域,如果Own=1,則開始第二數(shù)據(jù)幀的發(fā)送,依此類推,直到所讀的Tx-BD的狀態(tài)域顯示Own=0。
通過分析一幀數(shù)據(jù)的接收和發(fā)送過程,可以看到接收和發(fā)送一幀有效的數(shù)據(jù)中需要3次PCI總線操作,即對于接收1、讀取接收到的某一幀數(shù)據(jù)的Rx-BD,并檢測其狀態(tài)域;2、MAC將接收到的該幀數(shù)據(jù)寫入到該Rx-BD所指向的緩沖區(qū);3、更新該幀數(shù)據(jù)的Rx-BD。
對于發(fā)送1、讀取要發(fā)送的某一幀數(shù)據(jù)的Tx-BD,并檢測其狀態(tài)域;2、MAC將要發(fā)送的該幀數(shù)據(jù)的Tx-BD所指向的緩沖區(qū)的數(shù)據(jù)讀到MAC的FIFO中;3、更新該幀數(shù)據(jù)的Tx-BD。
對于以上的PCI的操作,每次使用PCI總線之前必須先請求總線,經(jīng)過仲裁器的仲裁,在獲得授權(quán)后開始數(shù)據(jù)傳送。所以,對于處理網(wǎng)絡(luò)數(shù)據(jù)小包的情況下,PCI總線成為數(shù)據(jù)傳輸?shù)钠款i,PCI的帶寬顯的尤為寶貴。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法,能夠減少PCI總線的操作次數(shù),提高了PCI的利用率。
本發(fā)明的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,包括下列步驟步驟AMAC在準備向主機端傳送數(shù)據(jù)幀時,通過PCI總線從主機端當前緩沖區(qū)描述符隊列的起始地址開始讀取相應(yīng)的緩沖區(qū)描述符,并檢測所述緩沖區(qū)描述符中是否包含數(shù)據(jù)幀,如果否,則向主機端的緩沖區(qū)發(fā)起寫數(shù)據(jù)操作,并執(zhí)行步驟B;否則,檢測下一緩沖區(qū)描述符,并返回步驟A;步驟B所述MAC將準備向主機端傳送的數(shù)據(jù)幀同下一幀的緩沖區(qū)描述符地址一起通過PCI總線寫到主機端相應(yīng)的緩沖區(qū)描述符中,并在該幀數(shù)據(jù)接收完畢后標識所述緩沖區(qū)描述符為包含數(shù)據(jù)幀狀態(tài)。
其中,所述主機端的緩沖區(qū)描述符和MAC中的緩沖區(qū)描述符包括狀態(tài)域、長度、下一個緩沖區(qū)描述符的起始地址,以及當前數(shù)據(jù)幀的內(nèi)容。
其中,在所述步驟A之前,進一步包括下列步驟當系統(tǒng)復(fù)位初始化后,主機首先將第一個緩沖區(qū)描述符的起始地址通過PCI總線配置上行起始地址。
此外,在所述步驟A中,通過檢測所述緩沖區(qū)描述符的狀態(tài)域判斷其是否包含數(shù)據(jù)幀,如果所述狀態(tài)域中的標識Own為1,則表示所述緩沖區(qū)描述符中有數(shù)據(jù)幀;如果所述狀態(tài)域中的標識Own為0,則表示所述緩沖區(qū)描述符中沒有數(shù)據(jù)幀。
其中,在所述步驟B中,所述MAC準備向主機端傳送數(shù)據(jù)幀之前,將所述數(shù)據(jù)幀存儲在其接收先入先出RX-FIFO模塊中。
本發(fā)明的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,包括下列步驟步驟A’MAC在準備從主機端讀取數(shù)據(jù)幀時,通過PCI總線從主機端當前緩沖區(qū)描述符隊列的起始地址開始讀取相應(yīng)的緩沖區(qū)描述符,并保存下一緩沖區(qū)描述符的起始地址,然后檢測當前所述緩沖區(qū)描述符中是否包含數(shù)據(jù)幀,如果是,則執(zhí)行步驟B’;否則,則檢測下一緩沖區(qū)描述符,并返回步驟A’;步驟B’將主機端當前緩沖區(qū)描述符中的數(shù)據(jù)幀通過PCI總線傳送至MAC,并在該幀數(shù)據(jù)接收完畢后標識所述緩沖區(qū)描述符為未包含數(shù)據(jù)幀狀態(tài)。
其中,所述主機端的緩沖區(qū)描述符和MAC中的緩沖區(qū)描述符包括狀態(tài)域、長度、下一個緩沖區(qū)描述符的起始地址,以及當前數(shù)據(jù)幀的內(nèi)容。
其中,在所述步驟A’之前,進一步包括下列步驟當系統(tǒng)復(fù)位初始化后,主機首先將第一個緩沖區(qū)描述符的起始地址通過PCI總線配置下行起始地址。
此外,在所述步驟A’中,通過檢測所述緩沖區(qū)描述符的狀態(tài)域判斷其是否包含數(shù)據(jù)幀,如果所述狀態(tài)域中的標識Own為1,則表示所述緩沖區(qū)描述符中有數(shù)據(jù)幀;如果所述狀態(tài)域中的標識Own為0,則表示所述緩沖區(qū)描述符中沒有數(shù)據(jù)幀。
其中,在所述步驟B’中,所述MAC從主機端讀取數(shù)據(jù)幀之后,將所述數(shù)據(jù)幀存儲在其發(fā)送先入先出TX-FIFO模塊中。
本發(fā)明的有益效果是依照本發(fā)明的PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法,通過將緩沖區(qū)描述符(BD)和與之對應(yīng)的數(shù)據(jù)緩沖區(qū)(Buffer)放在連續(xù)的地址,PCI傳輸和發(fā)送一個有效數(shù)據(jù)幀只需要2次PCI總線操作,能夠減少PCI總線的操作次數(shù),提高了PCI的利用率。
圖1為主機通過PCI總線接口與以太網(wǎng)MAC通信的示意圖;圖2為現(xiàn)有的緩沖區(qū)描述符隊列示意圖;圖3為本發(fā)明的緩沖區(qū)描述符隊列示意圖。
具體實施例方式
以下,參考附圖1~3詳細描述本發(fā)明的PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法。
在本發(fā)明的PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法中,緩沖區(qū)描述符的采用BD+B模式,具體地,如下表所示
其中,狀態(tài)域(Status),指示當前數(shù)據(jù)幀的狀態(tài),如果Own=1表示當前數(shù)據(jù)緩存區(qū)描述符中有數(shù)據(jù)幀;如果Own=0,表示當前數(shù)據(jù)緩存區(qū)描述符中沒有數(shù)據(jù)幀;其它的位指示數(shù)據(jù)幀的各種狀態(tài);
長度(Length),指示當前幀數(shù)據(jù)的長度;Next Buffer Descriptor Address,為下一個緩沖區(qū)描述符的起始地址;Buffer,指示當前數(shù)據(jù)幀的內(nèi)容。
當系統(tǒng)復(fù)位初始化后,主機首先將第一個Rx-BD+B的起始地址通過PCI總線配置上行起始地址。當MAC接收到一幀完整的數(shù)據(jù)并存儲在MAC的接收FIFO中時,MAC需要將這幀數(shù)據(jù)存放到主機的內(nèi)存中,為此,本發(fā)明的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法需要執(zhí)行下列步驟步驟100MAC通過PCI總線從主機端Rx-BD+B的起始地址讀相應(yīng)的Rx-BD,并檢測該Rx-BD+B的狀態(tài)域,如果是Own=0,則執(zhí)行步驟200;否則,繼續(xù)檢測下一緩沖區(qū)描述符,依次類推,直到Own=0。
其中,在步驟100中,當取到最后一幀數(shù)據(jù)的Rx-BD+B后,就又轉(zhuǎn)到第一幀數(shù)據(jù)的Rx-BD+B。
步驟200MAC將下一幀的緩沖區(qū)描述符的地址保存,并將準備向主機端傳送的該數(shù)據(jù)幀同下一幀的緩沖區(qū)描述符地址一起通過PCI總線突發(fā)模式寫到主機端相應(yīng)的該幀數(shù)據(jù)的Rx-BD+B中。
其中,在主機端的緩沖區(qū)中存儲了完整的緩沖區(qū)描述符隊列,而在MAC的緩沖區(qū)中存儲的是當前數(shù)據(jù)幀的緩沖區(qū)描述符。
其中,在MAC中需要檢測PCI總線中的錯誤,出現(xiàn)錯誤則重新傳送數(shù)據(jù),以保證數(shù)據(jù)幀能正確地寫到Rx-BD+B中。
當系統(tǒng)復(fù)位初始化后,主機首先將第一幀數(shù)據(jù)的緩沖區(qū)描述符與緩沖區(qū)Rx-BD+B起始地址通過PCI配置下行起始地址。主機在發(fā)送數(shù)據(jù)時,先將一幀或多幀數(shù)據(jù)存放在發(fā)送數(shù)據(jù)緩沖區(qū),并通過PCI總線向以太網(wǎng)MAC的命令寄存器發(fā)出啟動發(fā)送命令,為此,本發(fā)明的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法需要執(zhí)行下列步驟步驟100’MAC檢測到發(fā)送命令后,將通知PCI發(fā)送控制模塊,PCI發(fā)送控制模塊通過PCI主控(Master)模式申請PCI總線;步驟200’獲得PCI總線后發(fā)起一個PCI burst讀操作,根據(jù)MAC獲得的下行起始地址讀取主機端發(fā)送緩沖區(qū)描述符Tx-BD,并保存下一個緩沖區(qū)描述符的起始地址,同時在不終止PCI總線的情況下檢測該Tx-BD的狀態(tài)域,如果該Tx-BD為非空,則執(zhí)行步驟300’;步驟300’將主機端該Tx-BD+B的Buffer中的數(shù)據(jù)幀通過PCI burst模式傳輸?shù)組AC的發(fā)送先入先出單元Tx-FIFO中;步驟400’繼續(xù)讀取下一個Tx-BD,如果Tx-BD未包含有效的數(shù)據(jù)幀,則終止本次PCI burst操作,依此類推,直到所讀的Tx-BD的狀態(tài)域顯示該發(fā)送緩沖區(qū)為空。
基于如上所述,PCI在傳輸數(shù)據(jù)時是地址自增長方式,可以看出在本發(fā)明的PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法中,緩沖區(qū)描述符BD隊列也是一個環(huán)形結(jié)構(gòu),且通過本發(fā)明可以接收和發(fā)送一個有效數(shù)據(jù)幀只需要2次PCI總線操作。
對于接收1、讀取Rx-BD+B中的Rx-BD,并檢測狀態(tài)域;2、MAC將更新后的Rx-BD和接收到的數(shù)據(jù)幀寫入Rx-BD+B中。
對于發(fā)送1、讀取Tx-BD+B中的Tx-BD,并同時檢測狀態(tài)域,如果Own=1,則繼續(xù)讀取Buffer,如果Own=0,則結(jié)束本次PCI總線操作。
2、更新Tx-BD+B中的Tx-BD。
綜上所述,依照本發(fā)明的PCI以太網(wǎng)媒體訪問控制器傳輸數(shù)據(jù)的方法,通過將緩沖區(qū)描述符(BD)和與之對應(yīng)的數(shù)據(jù)緩沖區(qū)(Buffer)放在連續(xù)的地址,PCI傳輸和發(fā)送一個有效數(shù)據(jù)幀只需要2次PCI總線操作,能夠減少PCI總線的操作次數(shù),提高了PCI的利用率;尤其對于處理網(wǎng)絡(luò)數(shù)據(jù)小包的情況下,對于提高數(shù)據(jù)傳輸?shù)男视泻芎玫男Ч?br>
以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對本發(fā)明所進行的詳細描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其它的變化和修改,這些變化和修改均在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,包括下列步驟步驟AMAC在準備向主機端傳送數(shù)據(jù)幀時,通過PCI總線從主機端當前緩沖區(qū)描述符隊列的起始地址開始讀取相應(yīng)的緩沖區(qū)描述符,并檢測所述緩沖區(qū)描述符中是否包含數(shù)據(jù)幀,如果否,則向主機端的緩沖區(qū)發(fā)起寫數(shù)據(jù)操作,并執(zhí)行步驟B;否則,檢測下一緩沖區(qū)描述符,并返回步驟A;步驟B所述MAC將準備向主機端傳送的數(shù)據(jù)幀同下一幀的緩沖區(qū)描述符地址一起通過PCI總線寫到主機端相應(yīng)的緩沖區(qū)描述符中,并在該幀數(shù)據(jù)接收完畢后標識所述緩沖區(qū)描述符為包含數(shù)據(jù)幀狀態(tài)。
2.如權(quán)利要求1所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,所述主機端的緩沖區(qū)描述符和MAC中的緩沖區(qū)描述符包括狀態(tài)域、長度、下一個緩沖區(qū)描述符的起始地址,以及當前數(shù)據(jù)幀的內(nèi)容。
3.如權(quán)利要求1或2所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟A之前,進一步包括下列步驟當系統(tǒng)復(fù)位初始化后,主機首先將第一個緩沖區(qū)描述符的起始地址通過PCI總線配置上行起始地址。
4.如權(quán)利要求1或2所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟A中,通過檢測所述緩沖區(qū)描述符的狀態(tài)域判斷其是否包含數(shù)據(jù)幀,如果所述狀態(tài)域中的標識Own為1,則表示所述緩沖區(qū)描述符中有數(shù)據(jù)幀;如果所述狀態(tài)域中的標識Own為0,則表示所述緩沖區(qū)描述符中沒有數(shù)據(jù)幀。
5.如權(quán)利要求1或2所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟B中,所述MAC準備向主機端傳送數(shù)據(jù)幀之前,將所述數(shù)據(jù)幀存儲在其接收先入先出RX-FIFO模塊中。
6.一種PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,包括下列步驟步驟A’MAC在準備從主機端讀取數(shù)據(jù)幀時,通過PCI總線從主機端當前緩沖區(qū)描述符隊列的起始地址開始讀取相應(yīng)的緩沖區(qū)描述符,并保存下一緩沖區(qū)描述符的起始地址,然后檢測當前所述緩沖區(qū)描述符中是否包含數(shù)據(jù)幀,如果是,則執(zhí)行步驟B’;否則,則檢測下一緩沖區(qū)描述符,并返回步驟A’;步驟B’將主機端當前緩沖區(qū)描述符中的數(shù)據(jù)幀通過PCI總線傳送至MAC,并在該幀數(shù)據(jù)接收完畢后標識所述緩沖區(qū)描述符為未包含數(shù)據(jù)幀狀態(tài)。
7.如權(quán)利要求6所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,所述主機端的緩沖區(qū)描述符和MAC中的緩沖區(qū)描述符包括狀態(tài)域、長度、下一個緩沖區(qū)描述符的起始地址,以及當前數(shù)據(jù)幀的內(nèi)容。
8.如權(quán)利要求6或7所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟A’之前,進一步包括下列步驟當系統(tǒng)復(fù)位初始化后,主機首先將第一個緩沖區(qū)描述符的起始地址通過PCI總線配置下行起始地址。
9.如權(quán)利要求6或7所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟A’中,通過檢測所述緩沖區(qū)描述符的狀態(tài)域判斷其是否包含數(shù)據(jù)幀,如果所述狀態(tài)域中的標識Own為1,則表示所述緩沖區(qū)描述符中有數(shù)據(jù)幀;如果所述狀態(tài)域中的標識Own為0,則表示所述緩沖區(qū)描述符中沒有數(shù)據(jù)幀。
10.如權(quán)利要求6或7所述的PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,其特征在于,在所述步驟B’中,所述MAC從主機端讀取數(shù)據(jù)幀之后,將所述數(shù)據(jù)幀存儲在其發(fā)送先入先出TX-FIFO模塊中。
全文摘要
本發(fā)明提供一種PCI以太網(wǎng)媒體訪問控制器MAC傳輸數(shù)據(jù)的方法,包括下列步驟步驟AMAC在準備向主機端傳送數(shù)據(jù)幀時,通過PCI總線從主機端當前緩沖區(qū)描述符隊列的起始地址開始讀取相應(yīng)的緩沖區(qū)描述符,并檢測緩沖區(qū)描述符中是否包含數(shù)據(jù)幀,如果否,則向主機端的緩沖區(qū)發(fā)起寫數(shù)據(jù)操作,并執(zhí)行步驟B;否則,檢測下一緩沖區(qū)描述符,并返回步驟A;步驟BMAC將準備向主機端傳送的數(shù)據(jù)幀同下一幀的緩沖區(qū)描述符地址一起通過PCI總線寫到主機端相應(yīng)的緩沖區(qū)描述符中,并在該幀數(shù)據(jù)接收完畢后標識所述緩沖區(qū)描述符為包含數(shù)據(jù)幀狀態(tài)。本發(fā)明能夠減少PCI總線的操作次數(shù),提高PCI的利用率。
文檔編號H04L12/40GK101056316SQ20071012341
公開日2007年10月17日 申請日期2007年6月22日 優(yōu)先權(quán)日2007年6月22日
發(fā)明者謝小龍, 王志忠 申請人:中興通訊股份有限公司