資源描述:
《PCI總線仲裁器的設(shè)計與實(shí)現(xiàn).docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、PCI總線仲裁器的設(shè)計與實(shí)現(xiàn) 摘要基于的器件的總線仲裁器設(shè)計,實(shí)現(xiàn)仲裁器的編程,并結(jié)合仿真結(jié)果對總線的仲裁進(jìn)行了論述?! £P(guān)鍵詞仲裁器,,仿真總線仲裁器通常是集成在芯片組中。 隨著計算機(jī)應(yīng)用的深入,尤其是嵌入式系統(tǒng)的不斷發(fā)展,集成的仲裁器難以滿足某些場合的應(yīng)用?! 《捎眉夹g(shù)實(shí)現(xiàn)的獨(dú)立的總線仲裁器,則較好的適應(yīng)了這方面的需求?! ∫哗p總線仲裁機(jī)制的仲裁是基于設(shè)備訪問,而不是基于時間分配的?! ≡谌我粫r刻,總線上的一個主設(shè)備要想獲得對總線的控制權(quán),就必須發(fā)出它的請求信號,如果此刻該設(shè)備有權(quán)控制總線,總線仲裁器就使該設(shè)備的總線占用允許信號有效,進(jìn)而獲得總線
2、的使用權(quán)?! ‘?dāng)有多個主設(shè)備同時發(fā)出總線控制請求時,就必須由仲裁器根據(jù)一定的算法判定,當(dāng)前應(yīng)該由哪個主設(shè)備獲得控制權(quán)?! 《?、仲裁算法常用的仲裁算法有公平算法、循環(huán)算法等。 本仲裁器設(shè)計采用的是循環(huán)算法,設(shè)備的優(yōu)先級預(yù)先設(shè)定?! ∧壳暗脑O(shè)計實(shí)現(xiàn)對四個設(shè)備請求的仲裁,各設(shè)備優(yōu)先級由高到低安排為設(shè)備0>設(shè)備1>設(shè)備2>設(shè)備3?! ∠到y(tǒng)啟動伊始,沒有設(shè)備使用總線,也沒有設(shè)備請求使用總線,仲裁器總是設(shè)定設(shè)備0擁有總線控制權(quán),即將總線??坑谠O(shè)備0?! 〈藭r設(shè)備0的是有效的?! 《诖酥?,仲裁器總是指定總線的最后一個使用者為總線的??吭O(shè)備。 當(dāng)有一個或多個設(shè)備提
3、出擁有總線使用權(quán)的請求時,仲裁器將按照事先安排的設(shè)備優(yōu)先級順序逐一查詢。 對于只有一個設(shè)備請求的情況,該設(shè)備的請求將會馬上得到響應(yīng);如果多個設(shè)備同時發(fā)出請求時,仲裁器裁定首先響應(yīng)優(yōu)先等級高的設(shè)備的請求,當(dāng)此設(shè)備完成數(shù)據(jù)傳輸交出總線使用權(quán)后,再由優(yōu)先等級低的設(shè)備使用總線。 示意框圖見圖2?! ∪绻粋€設(shè)備已獲得總線使用權(quán)并且正在進(jìn)行地址、數(shù)據(jù)傳輸時,比它優(yōu)先級別高的設(shè)備也發(fā)出了占用請求,仲裁器將會撤銷優(yōu)先級別低的設(shè)備的總線占用信號,并把總線使用權(quán)交給優(yōu)先級別高的設(shè)備,同時還要確保在任一時刻不會出現(xiàn)多個設(shè)備同時占用總線的情況?! 【唧w見仿真分析。 三、編
4、程設(shè)計與實(shí)現(xiàn)本設(shè)計使用語言,在100上編譯通過,并進(jìn)行了仿真?! ?仲裁器信號定義_--輸入--時鐘_--復(fù)位信號[30]--總線占用請求信號--數(shù)據(jù)交易的啟動或開始,主設(shè)備發(fā)出--交易數(shù)據(jù)準(zhǔn)備好,主設(shè)備發(fā)出--輸出& ;[30]--總線占用允許信號和決定了總線的狀態(tài),只要兩個信號中的一個有效,就表明總線上有數(shù)據(jù)通過,總線處于忙狀態(tài);當(dāng)兩個信號都無效時,則總線處于空閑狀態(tài)?! ?仲裁器狀態(tài)機(jī)定義_2,1,0_0=0,--0#有效,設(shè)備0擁有總線使用權(quán),總線空閑_0=1,--0#有效,數(shù)據(jù)在總線上傳輸,總線處于忙狀態(tài)_1=2,--以下類同_1=3,_2=4
5、,_2=5,_3=6,_3=7;3仲裁的實(shí)現(xiàn)由于采用循環(huán)算法,對每一個設(shè)備而言狀態(tài)的變換都是相同的,下面僅以設(shè)備0的狀態(tài)轉(zhuǎn)換為例__0=>!#!#&&4!11=;_=_1;!22=;_=_2;!33=;_=_3;0=;& ;_=_0;0=;_=_0;;_0=>0=;&_=_0;_=_0;;為了避免線上和線上出現(xiàn)時序競爭,一個設(shè)備的信號有效和另一個設(shè)備的的撤銷,如果不是在總線空閑狀態(tài),則兩者之間至少要有一個時鐘的延遲?! ≡O(shè)計中,將每個設(shè)備占用總線的狀態(tài)分為兩部分,_總線空閑和_總線忙;狀態(tài)機(jī)不能從一個設(shè)備的_狀態(tài)直接轉(zhuǎn)到另一個設(shè)備的_狀態(tài),中間必須經(jīng)過至
6、少一個時鐘的_狀態(tài)的銜接,這樣就避免了總線上競爭的出現(xiàn)?! 〈a中,為一5位計數(shù)器,對時鐘個數(shù)進(jìn)行計數(shù),用來判別設(shè)備發(fā)出請求信號后是否在規(guī)定時間內(nèi)16個時鐘,即[40]=10000占據(jù)了總線,啟動了數(shù)據(jù)的傳輸;如果超時,則撤銷該設(shè)備的請求信號,并按預(yù)設(shè)的優(yōu)先級順序,對其余設(shè)備總線使用權(quán)進(jìn)行新一輪的裁定?! ∮嫈?shù)器的編程實(shí)現(xiàn)4#0&1&2&3[]=0;&[]=[]+1;[]=0;;四、仿真分析1單一設(shè)備總線請求情況系統(tǒng)初始化后自動將總線??坑谠O(shè)備0上,總線處于空閑狀態(tài),、均為高電平?! ⌒枰獜?qiáng)調(diào)的一點(diǎn)是,仲裁所用的控制信號均在時鐘信號的上升沿采樣而得?! ∪?/p>
7、圖3所示,設(shè)備2發(fā)出總線占用信號,仲裁器在時鐘上升沿處采樣到該信號,并開始啟動計數(shù),此時的、為高電平,設(shè)備0仍然擁有總線使用權(quán);隨后設(shè)備2驅(qū)動使得和有效,在時鐘上升沿處,仲裁器采樣到和,計數(shù)器清零,使設(shè)備2的2信號有效,從而占用總線,設(shè)備把地址、數(shù)據(jù)驅(qū)動到總線上,總線處于忙狀態(tài)?! ≈?,設(shè)備2撤銷其2信號,放棄對總線的占用;接著、信號相繼無效,表明數(shù)據(jù)傳輸?shù)耐瓿?,總線變?yōu)榭臻e,仲裁器在處采樣后,將總線停靠在設(shè)備2上?! ?多個設(shè)備同時請求總線使用權(quán)以兩個設(shè)備為例設(shè)備3首先發(fā)出請求信號,仲裁器在時鐘處采樣后,計數(shù)器開始計數(shù),此時總線仍然為設(shè)備0占用著;在時
8、鐘處的采樣,檢測到有效,表明數(shù)據(jù)傳輸?shù)拈_始,仲裁器使得3信號有效,