當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘 要: 以自行研制開(kāi)發(fā)的PCI高速總線背板為背景,系統(tǒng)地論述了PCI總線的仲裁機(jī)制、總線的缺省占用、仲裁信號(hào)協(xié)定及優(yōu)先級(jí)仲裁算法,給出了采用EPLD實(shí)現(xiàn)仲裁器功能的編程設(shè)

摘 要: 以自行研制開(kāi)發(fā)的PCI高速總線背板為背景,系統(tǒng)地論述了PCI總線的仲裁機(jī)制、總線的缺省占用、仲裁信號(hào)協(xié)定及優(yōu)先級(jí)仲裁算法,給出了采用EPLD實(shí)現(xiàn)仲裁器功能的編程設(shè)計(jì)。

關(guān)鍵詞: PCI總線 仲裁機(jī)制 總線的缺省占用 仲裁信號(hào)協(xié)定 仲裁算法

隨著VLSI/ULSI技術(shù)的發(fā)展,可編程邏輯器件EPLD/FPGA越來(lái)越受到人們的青睞,由于它具有集成度高、速度快、開(kāi)發(fā)周期短、費(fèi)用低、用戶可定義功能及可重復(fù)編程和擦寫等許多優(yōu)點(diǎn),其應(yīng)用領(lǐng)域不斷擴(kuò)大。這些器件的靈活性和通用性使得它們已成為研制和開(kāi)發(fā)復(fù)雜數(shù)字系統(tǒng)的理想選擇。

在PCI總線技術(shù)規(guī)范的基礎(chǔ)上,采用EPLD實(shí)現(xiàn)了高速PCI總線背板中多主控設(shè)備的總線仲裁。

 

1 PCI總線的仲裁機(jī)制

PCI總線仲裁是基于訪問(wèn)而不是基于時(shí)間片,也就是說(shuō),對(duì)于一個(gè)PCI總線主設(shè)備,必須為它在總線上進(jìn)行的每次訪問(wèn)提出仲裁要求。PCI總線上采用的是并行仲裁(也叫獨(dú)立請(qǐng)求仲裁)方案,其仲裁機(jī)制如圖1所示。在這種仲裁中,每個(gè)主控器各有自己獨(dú)立的總線請(qǐng)求線_REQ 和總線允許線_GNT 與總線仲裁器相連,相互間沒(méi)有任何控制關(guān)系。仲裁器直接識(shí)別所有設(shè)備的請(qǐng)求,并根據(jù)一定的優(yōu)先級(jí)仲裁算法選中一個(gè)設(shè)備Ci ,向它直接發(fā)出總線允許信號(hào)_GNTi。PCI總線的仲裁是“隱含的”,就是說(shuō)一次仲裁可以在前一次總線訪問(wèn)期間完成,這樣就使得仲裁的具體實(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)前沒(méi)有設(shè)備使用總線或請(qǐng)求總線的情況下,允許仲裁器根據(jù)一定的方式選定一個(gè)設(shè)備作為總線缺省的擁有者,并向它發(fā)出_GNT信號(hào)。選擇的方式有多種,如可為某一固定設(shè)備,也可為最后一次使用總線的設(shè)備,當(dāng)然也可以指定自己(仲裁器本身)為總線缺省的擁有者。

當(dāng)仲裁器將某一設(shè)備確定為總線的缺省擁有者時(shí)?該設(shè)備可以不通過(guò)發(fā)_REQ信號(hào)就開(kāi)始一次總線操作(只要總線空閑且_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é)定

綜上所述, PCI總線的仲裁主要是通過(guò)_REQ和_GNT兩個(gè)信號(hào)來(lái)實(shí)現(xiàn)的。前者用于某一設(shè)備要求占用總線的請(qǐng)求,后者用于允許某一設(shè)備占用總線的應(yīng)答。而對(duì)于一個(gè) PCI總線主控器,必須在它真正需要總線時(shí)才能發(fā)出_REQ信號(hào),絕不可以用_REQ信號(hào)把自己“???rdquo; 在總線上。只有總線仲裁器才可以指定誰(shuí)是總線缺省的擁有者。

當(dāng)仲裁器允許某一設(shè)備使用總線時(shí),就向該設(shè)備發(fā)出_GNT信號(hào);相反,當(dāng)仲裁器不再允許某一設(shè)備擁有總線控制權(quán)時(shí),可以在任意時(shí)鐘撤消該設(shè)備的_GNT信號(hào)。所以,每個(gè)總線主控器在開(kāi)始一次PCI總線操作時(shí),一定要確知此時(shí)它們的_GNT信號(hào)是否有效。如果_GNT信號(hào)無(wú)效,這次操作就不可以進(jìn)行。

PCI總線的仲裁信號(hào)之間必須遵循一定的協(xié)定,具體描述如下:

· 若_GNT信號(hào)撤消而_FRAME有信號(hào),當(dāng)前的總線操作是合法的,并將繼續(xù)下去;

· 若總線不是處于空閑狀態(tài),有可能一個(gè)_GNT的撤消碰巧是另一個(gè)_GNT發(fā)出的同時(shí),但如果是在空閑狀態(tài),則要求一個(gè)_GNT撤消到下一個(gè)_GNT的發(fā)出之間必須有一個(gè)時(shí)鐘周期。否則可能會(huì)在AD線和PAR線上出現(xiàn)沖突;

· 當(dāng)_FRAME無(wú)信號(hào)時(shí),_GNT可以在任意時(shí)間撤消,以便服務(wù)于另一個(gè)主設(shè)備,或者作為對(duì)相應(yīng)的_REQ撤消的響應(yīng);

· _GNT信號(hào)的每次發(fā)出,只限于相應(yīng)的總線主控器可以使用總線進(jìn)行一次總線操作。若該主控器還想做多次總線訪問(wèn)時(shí),可以保持它的_REQ信號(hào)一直有效。此時(shí),如果沒(méi)有其它請(qǐng)求,或者當(dāng)前的主控器具有最高優(yōu)先權(quán),仲裁器就會(huì)繼續(xù)批準(zhǔn)總線給當(dāng)前主控器;

·一個(gè)主控器可以在任意時(shí)刻撤消其_REQ信號(hào),但要注意,_REQ信號(hào)一旦撤消,仲裁器將認(rèn)為該設(shè)備不再請(qǐng)求使用總線,因而撤消其_GNT信號(hào)。若一個(gè)主控器只希望做一次總線傳輸,它應(yīng)當(dāng)在發(fā)出_FRAME的同一時(shí)鐘周期撤消_REQ;

·如果當(dāng)前的主控器在它的_GNT信號(hào)發(fā)出之后(_REQ也一直有效),持續(xù)16個(gè)空閑周期還沒(méi)有開(kāi)始總線操作,仲裁器就可以認(rèn)為當(dāng)前的主控器“已壞”。因而,仲裁器可以在任意時(shí)刻撤消_GNT信號(hào),以便服務(wù)于一個(gè)優(yōu)先級(jí)更高的設(shè)備。

4 優(yōu)先級(jí)仲裁算法

為了合理地控制和管理系統(tǒng)中需要占用總線的數(shù)據(jù)源,PCI仲裁器必須實(shí)現(xiàn)一個(gè)特別的優(yōu)先級(jí)仲裁算法,以便在多個(gè)設(shè)備同時(shí)提出總線占用請(qǐng)求時(shí),能依據(jù)該仲裁算法判決出哪個(gè)設(shè)備應(yīng)獲得對(duì)總線的控制權(quán)。總線仲裁可以確保任何時(shí)刻總線上最多只有一個(gè)設(shè)備發(fā)送信息,而決不會(huì)出現(xiàn)多個(gè)主控器同時(shí)占用總線的情況。

由于總線仲裁算法從根本上說(shuō)與PCI總線技術(shù)規(guī)范無(wú)關(guān),所以設(shè)計(jì)者可以根據(jù)實(shí)際需要自由地進(jìn)行選擇和修改。但要注意,設(shè)計(jì)時(shí)必須為所選用的I/O控制器及接插卡提供所要求的訪問(wèn)延遲保證。

總線優(yōu)先級(jí)仲裁算法通常有兩種,一種是固定優(yōu)先級(jí)算法,一種是循環(huán)優(yōu)先級(jí)算法。但不管是哪一種仲裁算法,都必須滿足以下三個(gè)基本要求:

· 每一時(shí)刻只能有一個(gè)設(shè)備作為總線主控器;

· 先請(qǐng)求者先響應(yīng),且在一個(gè)總線操作周期之內(nèi)不被打斷;

· 同一時(shí)刻有幾個(gè)設(shè)備發(fā)出請(qǐng)求時(shí),按優(yōu)先級(jí)排序響應(yīng)。

 

所謂固定優(yōu)先級(jí)算法,就是指PCI總線中各主控器的優(yōu)先級(jí)是事先確定好的,在仲裁器仲裁過(guò)程中固定不變;而循環(huán)優(yōu)先級(jí)算法則不同,各主控器的優(yōu)先級(jí)在仲裁器的仲裁過(guò)程中不是一成不變,而是根據(jù)一定規(guī)律發(fā)生變化的。

表1給出了采用循環(huán)優(yōu)先級(jí)算法或固定優(yōu)先級(jí)算法時(shí),PCI總線仲裁器中N個(gè)主控器的優(yōu)先級(jí)變化規(guī)律。

采用固定優(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è)總線周期動(dòng)態(tài)地改變,各個(gè)設(shè)備在總線上的身份平等,獲得總線占用權(quán)的機(jī)會(huì)均等。所以,在一定意義上來(lái)說(shuō),優(yōu)先級(jí)循環(huán)是最公平的算法。循環(huán)優(yōu)先級(jí)的缺點(diǎn)是當(dāng)處理某些設(shè)備的大批量實(shí)時(shí)數(shù)據(jù)時(shí)會(huì)造成效率的降低。正因如此,在實(shí)際中,常常將這兩種算法結(jié)合起來(lái)使用,以便構(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):無(wú)任何總線請(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、Master3、Master4用來(lái)區(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í),需要由仲裁器來(lái)指定一個(gè)缺省的總線占用者;當(dāng)總線狀態(tài)機(jī)處于WAIT_CYCLE狀態(tài),且允許該設(shè)備占用總線的時(shí)間限制已到(Timeout),這時(shí)仲裁器也將撤消對(duì)它的_GNT信號(hào),以便服務(wù)于其它的主設(shè)備。所以,若用 EnChange來(lái)代表允許仲裁器仲裁狀態(tài)發(fā)生變化的條件,則采用AHKL語(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í)處于無(wú)效狀態(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)成立,總線就處于忙碌狀態(tài);當(dāng)兩個(gè)信號(hào)都無(wú)效時(shí),總線才處于空閑狀態(tài)。所以建立_GNTi的具體編程如下:

?  !_GNTi=(GNTstate==Masteri)&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)過(guò)近兩年的實(shí)際運(yùn)行表明,仲裁器工作正常,性能穩(wěn)定可靠。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉