基于EPLD的PCI總線仲裁器的設(shè)計與實現(xiàn)
發(fā)布時間:2007/9/11 0:00:00 訪問次數(shù):605
摘 要: 以自行研制開發(fā)的PCI高速總線背板為背景,系統(tǒng)地論述了PCI總線的仲裁機制、總線的缺省占用、仲裁信號協(xié)定及優(yōu)先級仲裁算法,給出了采用EPLD實現(xiàn)仲裁器功能的編程設(shè)計。
關(guān)鍵詞: PCI總線 仲裁機制 總線的缺省占用 仲裁信號協(xié)定 仲裁算法
隨著VLSI/ULSI技術(shù)的發(fā)展,可編程邏輯器件EPLD/FPGA越來越受到人們的青睞,由于它具有集成度高、速度快、開發(fā)周期短、費用低、用戶可定義功能及可重復編程和擦寫等許多優(yōu)點,其應(yīng)用領(lǐng)域不斷擴大。這些器件的靈活性和通用性使得它們已成為研制和開發(fā)復雜數(shù)字系統(tǒng)的理想選擇。
在PCI總線技術(shù)規(guī)范的基礎(chǔ)上,采用EPLD實現(xiàn)了高速PCI總線背板中多主控設(shè)備的總線仲裁。
1 PCI總線的仲裁機制
PCI總線仲裁是基于訪問而不是基于時間片,也就是說,對于一個PCI總線主設(shè)備,必須為它在總線上進行的每次訪問提出仲裁要求。PCI總線上采用的是并行仲裁(也叫獨立請求仲裁)方案,其仲裁機制如圖1所示。在這種仲裁中,每個主控器各有自己獨立的總線請求線_REQ 和總線允許線_GNT 與總線仲裁器相連,相互間沒有任何控制關(guān)系。仲裁器直接識別所有設(shè)備的請求,并根據(jù)一定的優(yōu)先級仲裁算法選中一個設(shè)備Ci ,向它直接發(fā)出總線允許信號_GNTi。PCI總線的仲裁是“隱含的”,就是說一次仲裁可以在前一次總線訪問期間完成,這樣就使得仲裁的具體實現(xiàn)不必占用PCI總線周期。當然在總線空閑時除外。
在實際的PCI總線仲裁電路中,與仲裁直接有關(guān)的控制線除_REQ和_GNT外,還有_FRAME、_IRDY。此外,為了保證總線交換的同步,還應(yīng)有一根總線時鐘信號PCIclk和一根總線復位信號_PCIrst,如圖1虛線所示。
2 總線的缺省占用
所謂總線的缺省占用,就是指在當前沒有設(shè)備使用總線或請求總線的情況下,允許仲裁器根據(jù)一定的方式選定一個設(shè)備作為總線缺省的擁有者,并向它發(fā)出_GNT信號。選擇的方式有多種,如可為某一固定設(shè)備,也可為最后一次使用總線的設(shè)備,當然也可以指定自己(仲裁器本身)為總線缺省的擁有者。
當仲裁器將某一設(shè)備確定為總線的缺省擁有者時該設(shè)備可以不通過發(fā)_REQ信號就開始一次總線操作(只要總線空閑且_GNT信號有效)。但要注意的是:如果該設(shè)備需要做多次的數(shù)據(jù)傳輸,它就應(yīng)當發(fā)出_REQ信號,以便向仲裁器提出多次操作的請求;而如果該設(shè)備只要求做一次總線操作,它就不應(yīng)當發(fā)出_REQ信號,否則仲裁器可能在它不需要使用總線的情況下又給它發(fā)出_GNT信號。
3 仲裁信號協(xié)定
綜上所述, PCI總線的仲裁主要是通過_REQ和_GNT兩個信號來實現(xiàn)的。前者用于某一設(shè)備要求占用總線的請求,后者用于允許某一設(shè)備占用總線的應(yīng)答。而對于一個PCI總線主控器,必須在它真正需要總線時才能發(fā)出_REQ信號,絕不可以用_REQ信號把自己“?俊 在總線上。只有總線仲裁器才可以指定誰是總線缺省的擁有者。
當仲裁器允許某一設(shè)備使用總線時,就向該設(shè)備發(fā)出_GNT信號;相反,當仲裁器不再允許某一設(shè)備擁有總線控制權(quán)時,可以在任意時鐘撤消該設(shè)備的_GNT信號。所以,每個總線主控器在開始一次PCI總線操作時,一定要確知此時它們的_GNT信號是否有效。如果_GNT信號無效,這次操作就不可以進行。
PCI總線的仲裁信號之間必須遵循一定的協(xié)定,具體描述如下:
· 若_GNT信號撤消而_FRAME有信號,當前的總線操作是合法的,并將繼續(xù)下去;
· 若總線不是處于空閑狀態(tài),有可能一個_GNT的撤消碰巧是另一個_GNT發(fā)出的同時,但如果是在空閑狀態(tài),則要求一個_GNT撤消到下一個_GNT的發(fā)出之間必須有一個時鐘周期。否則可能會在AD線和PAR線上出現(xiàn)沖突;
· 當_FRAME無信號時,_GNT可以在任意時間撤消,以便服務(wù)于另一個主設(shè)備,或者作為對相應(yīng)的_REQ撤消的響應(yīng);
· _GNT信號的每次發(fā)出,只限于相應(yīng)的總線主控器可以使用總線進行一次總線操作。若該主控器還想做多次總線訪問時,可以保持它的_REQ信號一直有效。此時,如果沒有其它請求,或者當前的主控器具有最高優(yōu)先權(quán),仲裁器就會繼續(xù)批準總線給當前主控器;
·一個主控器可以在任意時刻撤消其_REQ信號,但要注意,_REQ信號一旦撤消,仲裁器將認為該
摘 要: 以自行研制開發(fā)的PCI高速總線背板為背景,系統(tǒng)地論述了PCI總線的仲裁機制、總線的缺省占用、仲裁信號協(xié)定及優(yōu)先級仲裁算法,給出了采用EPLD實現(xiàn)仲裁器功能的編程設(shè)計。
關(guān)鍵詞: PCI總線 仲裁機制 總線的缺省占用 仲裁信號協(xié)定 仲裁算法
隨著VLSI/ULSI技術(shù)的發(fā)展,可編程邏輯器件EPLD/FPGA越來越受到人們的青睞,由于它具有集成度高、速度快、開發(fā)周期短、費用低、用戶可定義功能及可重復編程和擦寫等許多優(yōu)點,其應(yīng)用領(lǐng)域不斷擴大。這些器件的靈活性和通用性使得它們已成為研制和開發(fā)復雜數(shù)字系統(tǒng)的理想選擇。
在PCI總線技術(shù)規(guī)范的基礎(chǔ)上,采用EPLD實現(xiàn)了高速PCI總線背板中多主控設(shè)備的總線仲裁。
1 PCI總線的仲裁機制
PCI總線仲裁是基于訪問而不是基于時間片,也就是說,對于一個PCI總線主設(shè)備,必須為它在總線上進行的每次訪問提出仲裁要求。PCI總線上采用的是并行仲裁(也叫獨立請求仲裁)方案,其仲裁機制如圖1所示。在這種仲裁中,每個主控器各有自己獨立的總線請求線_REQ 和總線允許線_GNT 與總線仲裁器相連,相互間沒有任何控制關(guān)系。仲裁器直接識別所有設(shè)備的請求,并根據(jù)一定的優(yōu)先級仲裁算法選中一個設(shè)備Ci ,向它直接發(fā)出總線允許信號_GNTi。PCI總線的仲裁是“隱含的”,就是說一次仲裁可以在前一次總線訪問期間完成,這樣就使得仲裁的具體實現(xiàn)不必占用PCI總線周期。當然在總線空閑時除外。
在實際的PCI總線仲裁電路中,與仲裁直接有關(guān)的控制線除_REQ和_GNT外,還有_FRAME、_IRDY。此外,為了保證總線交換的同步,還應(yīng)有一根總線時鐘信號PCIclk和一根總線復位信號_PCIrst,如圖1虛線所示。
2 總線的缺省占用
所謂總線的缺省占用,就是指在當前沒有設(shè)備使用總線或請求總線的情況下,允許仲裁器根據(jù)一定的方式選定一個設(shè)備作為總線缺省的擁有者,并向它發(fā)出_GNT信號。選擇的方式有多種,如可為某一固定設(shè)備,也可為最后一次使用總線的設(shè)備,當然也可以指定自己(仲裁器本身)為總線缺省的擁有者。
當仲裁器將某一設(shè)備確定為總線的缺省擁有者時該設(shè)備可以不通過發(fā)_REQ信號就開始一次總線操作(只要總線空閑且_GNT信號有效)。但要注意的是:如果該設(shè)備需要做多次的數(shù)據(jù)傳輸,它就應(yīng)當發(fā)出_REQ信號,以便向仲裁器提出多次操作的請求;而如果該設(shè)備只要求做一次總線操作,它就不應(yīng)當發(fā)出_REQ信號,否則仲裁器可能在它不需要使用總線的情況下又給它發(fā)出_GNT信號。
3 仲裁信號協(xié)定
綜上所述, PCI總線的仲裁主要是通過_REQ和_GNT兩個信號來實現(xiàn)的。前者用于某一設(shè)備要求占用總線的請求,后者用于允許某一設(shè)備占用總線的應(yīng)答。而對于一個PCI總線主控器,必須在它真正需要總線時才能發(fā)出_REQ信號,絕不可以用_REQ信號把自己“?俊 在總線上。只有總線仲裁器才可以指定誰是總線缺省的擁有者。
當仲裁器允許某一設(shè)備使用總線時,就向該設(shè)備發(fā)出_GNT信號;相反,當仲裁器不再允許某一設(shè)備擁有總線控制權(quán)時,可以在任意時鐘撤消該設(shè)備的_GNT信號。所以,每個總線主控器在開始一次PCI總線操作時,一定要確知此時它們的_GNT信號是否有效。如果_GNT信號無效,這次操作就不可以進行。
PCI總線的仲裁信號之間必須遵循一定的協(xié)定,具體描述如下:
· 若_GNT信號撤消而_FRAME有信號,當前的總線操作是合法的,并將繼續(xù)下去;
· 若總線不是處于空閑狀態(tài),有可能一個_GNT的撤消碰巧是另一個_GNT發(fā)出的同時,但如果是在空閑狀態(tài),則要求一個_GNT撤消到下一個_GNT的發(fā)出之間必須有一個時鐘周期。否則可能會在AD線和PAR線上出現(xiàn)沖突;
· 當_FRAME無信號時,_GNT可以在任意時間撤消,以便服務(wù)于另一個主設(shè)備,或者作為對相應(yīng)的_REQ撤消的響應(yīng);
· _GNT信號的每次發(fā)出,只限于相應(yīng)的總線主控器可以使用總線進行一次總線操作。若該主控器還想做多次總線訪問時,可以保持它的_REQ信號一直有效。此時,如果沒有其它請求,或者當前的主控器具有最高優(yōu)先權(quán),仲裁器就會繼續(xù)批準總線給當前主控器;
·一個主控器可以在任意時刻撤消其_REQ信號,但要注意,_REQ信號一旦撤消,仲裁器將認為該
熱門點擊
- 基于FPGA的數(shù)字音頻廣播信道編碼器的實現(xiàn)
- FPGA在多進制正交擴頻通信系統(tǒng)中的應(yīng)用
- 基于EPLD的PCI總線仲裁器的設(shè)計與實現(xiàn)
- 一種基于反饋的信元交換控制系統(tǒng)
- 用VHDL設(shè)計專用串行通信芯片
推薦技術(shù)資料
- 聲道前級設(shè)計特點
- 與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究