基于EPLD的 PCI總線仲裁器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于EPLD的 PCI總線仲裁器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于EPLD的 PCI總線仲裁器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于EPLD的 PCI總線仲裁器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于EPLD的 PCI總線仲裁器的設(shè)計(jì)與實(shí)現(xiàn)史美萍 竇文華 時(shí)間:2009年03月09日 字 體: 大 中 小關(guān)鍵詞:摘要:關(guān)鍵詞: PCI總線 仲裁機(jī)制 總線的缺省占用 仲裁信號(hào)協(xié)定 仲裁算法1 PCI總線的仲裁機(jī)制PCI總線仲裁是基于訪問而不是基于時(shí)間片,也就是說,對(duì)于一個(gè)PCI總線主設(shè)備,必須為它在總線上進(jìn)行的每次訪問提出仲裁要求。PCI總線上采用的是并行仲裁(也叫獨(dú)立請(qǐng)求仲裁)方案,其仲裁機(jī)制如圖1所示。在這種仲裁中,每個(gè)主控器各有自己獨(dú)立的總線請(qǐng)求線_REQ 和總線允許線_GNT 與總線仲裁器相連,相互間沒有任何控制關(guān)系。仲裁器直接識(shí)別所有設(shè)備的請(qǐng)求,并根據(jù)一定的優(yōu)先級(jí)仲裁算法選中一

2、個(gè)設(shè)備Ci ,向它直接發(fā)出總線允許信號(hào)_GNTi。PCI總線的仲裁是“隱含的”,就是說一次仲裁可以在前一次總線訪問期間完成,這樣就使得仲裁的具體實(shí)現(xiàn)不必占用PCI總線周期。當(dāng)然在總線空閑時(shí)除外。在實(shí)際的PCI總線仲裁電路中,與仲裁直接有關(guān)的控制線除_REQ和_GNT外,還有_FRAME、_IRDY。此外,為了保證總線交換的同步,還應(yīng)有一根總線時(shí)鐘信號(hào)PCIclk和一根總線復(fù)位信號(hào)_PCIrst,如圖1虛線所示。2 總線的缺省占用所謂總線的缺省占用,就是指在當(dāng)前沒有設(shè)備使用總線或請(qǐng)求總線的情況下,允許仲裁器根據(jù)一定的方式選定一個(gè)設(shè)備作為總線缺省的擁有者,并向它發(fā)出_GNT信號(hào)。選擇的方式有多種,

3、如可為某一固定設(shè)備,也可為最后一次使用總線的設(shè)備,當(dāng)然也可以指定自己(仲裁器本身)為總線缺省的擁有者。當(dāng)仲裁器將某一設(shè)備確定為總線的缺省擁有者時(shí),該設(shè)備可以不通過發(fā)_REQ信號(hào)就開始一次總線操作(只要總線空閑且_GNT信號(hào)有效)。但要注意的是:如果該設(shè)備需要做多次的數(shù)據(jù)傳輸,它就應(yīng)當(dāng)發(fā)出_REQ信號(hào),以便向仲裁器提出多次操作的請(qǐng)求;而如果該設(shè)備只要求做一次總線操作,它就不應(yīng)當(dāng)發(fā)出_REQ信號(hào),否則仲裁器可能在它不需要使用總線的情況下又給它發(fā)出_GNT信號(hào)。3 仲裁信號(hào)協(xié)定4 優(yōu)先級(jí)仲裁算法為了合理地控制和管理系統(tǒng)中需要占用總線的數(shù)據(jù)源,PCI仲裁器必須實(shí)現(xiàn)一個(gè)特別的優(yōu)先級(jí)仲裁算法,以便在多個(gè)設(shè)

4、備同時(shí)提出總線占用請(qǐng)求時(shí),能依據(jù)該仲裁算法判決出哪個(gè)設(shè)備應(yīng)獲得對(duì)總線的控制權(quán)??偩€仲裁可以確保任何時(shí)刻總線上最多只有一個(gè)設(shè)備發(fā)送信息,而決不會(huì)出現(xiàn)多個(gè)主控器同時(shí)占用總線的情況。采用固定優(yōu)先級(jí)算法,可以對(duì)那些有重要數(shù)據(jù)傳輸、或有大量實(shí)時(shí)數(shù)據(jù)傳輸以及經(jīng)常需要占用總線的主設(shè)備賦予較高的優(yōu)先權(quán),以便有效地利用PCI總線周期。固定優(yōu)先級(jí)算法的缺點(diǎn)是,它將規(guī)定每個(gè)PCI插槽的優(yōu)先級(jí),這也就規(guī)定了接插卡的插放次序,從而造成了使用上的不便。另外,固定優(yōu)先級(jí)算法有時(shí)還會(huì)出現(xiàn)總線設(shè)備“撐死”和“餓死”的現(xiàn)象。相反,采用循環(huán)優(yōu)先級(jí)算法則可以克服這種“飽餓”不均的弊端。在循環(huán)優(yōu)先級(jí)算法中,由于其優(yōu)先級(jí)隨著每個(gè)總線周期

5、動(dòng)態(tài)地改變,各個(gè)設(shè)備在總線上的身份平等,獲得總線占用權(quán)的機(jī)會(huì)均等。所以,在一定意義上來說,優(yōu)先級(jí)循環(huán)是最公平的算法。循環(huán)優(yōu)先級(jí)的缺點(diǎn)是當(dāng)處理某些設(shè)備的大批量實(shí)時(shí)數(shù)據(jù)時(shí)會(huì)造成效率的降低。正因如此,在實(shí)際中,常常將這兩種算法結(jié)合起來使用,以便構(gòu)成更為靈活的仲裁機(jī)構(gòu)。5 仲裁器的EPLD編程設(shè)計(jì)下面以支持5個(gè)總線主控器的PCI總線仲裁器為例,給出采用Altera公司的EPLD進(jìn)行功能實(shí)現(xiàn)的主要設(shè)計(jì)思路,其中,所用編程語(yǔ)言為Altera公司的AHDL語(yǔ)言。該仲裁器采用循環(huán)優(yōu)先級(jí)仲裁算法,且總線的缺省擁有者指定為最后一次使用總線的主設(shè)備。5.1 PCI總線的狀態(tài)機(jī)PCI總線的狀態(tài)機(jī)包括三種基本狀態(tài):無任

6、何總線請(qǐng)求(NO_REQ)、等待周期(WAIT_CYCLE)和幀信號(hào)_FRAME的撤消(FRAMED)。其中,_FRAME信號(hào)的撤消,意味著當(dāng)前的總線操作將進(jìn)入最后一個(gè)數(shù)據(jù)傳輸周期,此時(shí),_IRDY有效,一旦 _TRDY也有效,最后一個(gè)數(shù)據(jù)傳輸周期就可完成。而判斷_FRAME是否撤消的具體方法就是判斷_FRAME是否出現(xiàn)從低到高的上跳變。圖2所示即為PCI總線的狀態(tài)機(jī)。圖中,TIME_OUT為從_GNT發(fā)出到_FRAME變?yōu)橛行试S的PCI總線周期數(shù)。5.2 PCI總線仲裁器的狀態(tài)機(jī)由于此仲裁器最大支持5個(gè)PCI總線主控器,所以,需定義5個(gè)狀態(tài)Master0、Master1、Master2、

7、Master3、Master4用來區(qū)分當(dāng)前是哪一個(gè)主控器占用總線。至于仲裁器的仲裁狀態(tài)什么時(shí)候應(yīng)該發(fā)生變化則由總線狀態(tài)機(jī)的狀態(tài)決定,具體如下:當(dāng)總線狀態(tài)機(jī)處于FRAMED狀態(tài),表明在最后一個(gè)數(shù)據(jù)傳輸周期結(jié)束后,它將釋放PCI總線,此時(shí),仲裁器便可撤消對(duì)它的_GNT信號(hào),以便去服務(wù)于另一個(gè)主控器;當(dāng)總線狀態(tài)機(jī)處于NO_REQ狀態(tài),此時(shí),需要由仲裁器來指定一個(gè)缺省的總線占用者;當(dāng)總線狀態(tài)機(jī)處于WAIT_CYCLE狀態(tài),且允許該設(shè)備占用總線的時(shí)間限制已到(Timeout),這時(shí)仲裁器也將撤消對(duì)它的_GNT信號(hào),以便服務(wù)于其它的主設(shè)備。所以,若用EnChange來代表允許仲裁器仲裁狀態(tài)發(fā)生變化的條件,

8、則采用AHDL語(yǔ)言的具體編程如下:EnChange (EnCHstate FRAMED) # (EnCHstate NO_REQ) # (TimeOut TIME_OUT)該仲裁器中,由于采用循環(huán)優(yōu)先級(jí)算法,仲裁器從每一種仲裁狀態(tài)轉(zhuǎn)換到其它仲裁狀態(tài)的方法都是一樣的,所以,下面只給出了仲裁器的仲裁狀態(tài)為主控器1時(shí)向其它仲裁狀態(tài)的轉(zhuǎn)換機(jī)理(如圖3所示)。另外,若仲裁器在剛啟動(dòng)時(shí)處于無效狀態(tài),則強(qiáng)制狀態(tài)機(jī)在下一個(gè)時(shí)鐘轉(zhuǎn)換到Master0態(tài)。5.3 總線允許信號(hào)_GNTi(低電平有效)的建立在PCI對(duì)話中,由于_FRAME 和 _IRDY決定著總線的忙/閑狀態(tài)。兩者之中只要有一個(gè)信號(hào)成立,總線就處于忙

9、碌狀態(tài);當(dāng)兩個(gè)信號(hào)都無效時(shí),總線才處于空閑狀態(tài)。所以建立_GNTi的具體編程如下:!_GNTi(GNTstateMasteri)&GLOBAL(_PCIrst)& !MaskGNT;%式中,MaskGNT _FRAME & _IRDY %總之,本文介紹的PCI總線仲裁器,由于采用單片EPLD即可實(shí)現(xiàn),所以它具有系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成本低、可靠性高、在線修改方便及升級(jí)容易等特點(diǎn)。目前,采用該仲裁器的PCI高速總線背板已應(yīng)用在我們研發(fā)的總線型高性能網(wǎng)絡(luò)交換機(jī)系列中。經(jīng)過近兩年的實(shí)際運(yùn)行表明,仲裁器工作正常,性能穩(wěn)定可靠。參考文獻(xiàn)1 PCI Local Bus Specification (Rev 2.1).6/1/19952 Altera. MAX+PLUSProgrammable Logic Development System AHDL.19973 Altera. M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論