《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于最小空閑時間優(yōu)先的片上總線仲裁算法
基于最小空閑時間優(yōu)先的片上總線仲裁算法
來源:電子技術(shù)應(yīng)用2010年第11期
任沛閣1,,2,,王 勇1,劉 安1,,莫遠(yuǎn)楠3
1.空軍工程大學(xué) 工程學(xué)院,陜西 西安710038,;2.空軍通信訓(xùn)練基地,,河北 保定071051;3.西安電子科技大學(xué),,陜西 西安710071
摘要: 提出一種基于搶占閾值的最小空閑時間優(yōu)先服務(wù)的總線仲裁算法,。主設(shè)備總線服務(wù)請求的空閑時間越短,獲得總線服務(wù)就越快,,引入搶占閾值降低了總線服務(wù)頻繁切換造成的顛簸現(xiàn)象,。實(shí)驗(yàn)結(jié)果表明,該算法的MDP比常見的算法平均減少了43.8%,滿足了各主設(shè)備總線服務(wù)請求的強(qiáng)實(shí)時要求,。
中圖分類號: TP311
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)11-0035-04
A least-slack-first based arbitration algorithm for on-chip bus
REN Pei Ge1,,2,WANG Yong1,,LIU An1,,MO Yuan Nan3
1.The Engineering College of Air Force Engineering University, Xi′an 710038,China,;2.Air Force Communication Training Base,Baoding 071051,,China;3.Xidian University, Xi′an 710071,,China
Abstract: In this paper, we present a preemption threshold least-slack-first(PT-LSF) based arbitration algorithm. The smaller the remaining slack time of a master request was, the sooner it should to be serviced. Preemption threshold was adopt to relieve the thrashing caused by high frequently switching of bus service. Experimental results show that PT-LSF outperforms existing arbitration algorithms on real-time requirement and the average MDP of PT-LSF decreases by 43.8%.
Key words : on-chip bus,;arbitration algorithm;least-slack-first(LSF),;preemption threshold,;missed deadline percentage

    對于包含多主設(shè)備的片上系統(tǒng),采用共享總線的結(jié)構(gòu)具有實(shí)現(xiàn)簡單和硬件開銷較少的優(yōu)勢,,已成為設(shè)計的主要手段,。在共享總線結(jié)構(gòu)中,,多個總線主設(shè)備競爭使用總線控制權(quán),不可避免地會產(chǎn)生競爭和沖突,,為有效解決沖突,,設(shè)計了總線仲裁器來決定總線上哪個主設(shè)備獲得總線的使用權(quán)。但是,,各總線主設(shè)備會有不同的實(shí)時性和帶寬的要求,,所以,總線仲裁器必須采取合理的策略和高性能的調(diào)度算法來滿足各主設(shè)備的要求,。目前,,常用的總線仲裁算法有:固定/動態(tài)優(yōu)先權(quán)算法FP/DP(Fix/Dynamic Priority)、時分復(fù)用算法TDMA(Time Division Multiple Access),、時間片輪轉(zhuǎn)算法RR(Round Robin)和彩票算法(Lottery),。文獻(xiàn)[1]-[3]已經(jīng)證明了這些傳統(tǒng)算法不能很好地滿足各主設(shè)備實(shí)時性和帶寬要求。目前,,不少學(xué)者對傳統(tǒng)算法進(jìn)行了改進(jìn),,如文獻(xiàn)[4]把Lottery算法改進(jìn)成三級總線仲裁機(jī)制;文獻(xiàn)[5]通過自適應(yīng)的動態(tài)調(diào)整“彩票”數(shù)來改進(jìn)Lottery算法,;文獻(xiàn)[6]則提出了一種基于傳輸時間精確預(yù)測的仲裁算法,。但是,這些改進(jìn)算法也都沒有考慮主設(shè)備請求總線服務(wù)的緩急程度,。因此,,本文提出一種基于搶占閾值最小空閑時間優(yōu)先PT-LSF(Preemption Threshold-Least Slack First)服務(wù)的片上總線仲裁算法。該算法在收集主設(shè)備請求(服務(wù)時間和截止時間等)特性參數(shù)和總線傳輸狀態(tài)信息的基礎(chǔ)上,,通過PT-LSF算法的調(diào)度結(jié)果,,實(shí)時動態(tài)地改變主設(shè)備優(yōu)先權(quán),以滿足主設(shè)備強(qiáng)實(shí)時性要求,。
1 基于最小空閑時間優(yōu)先的總線仲裁算法原理及實(shí)現(xiàn)
1.1 算法原理

    記空閑時間Si定義為從當(dāng)前時刻t直到其截止期di的時間與其剩余服務(wù)時間ci(t)之間的差,則最小空閑時間優(yōu)先調(diào)度算法的策略是:按照主設(shè)備的空閑時間動態(tài)地分配優(yōu)先級p,,可由式(1)確定:
    pi=pmax-Si    (1)
    空閑時間越短,,主設(shè)備的優(yōu)先級就越高,因此選擇具有最小空閑時間的主設(shè)備獲得總線的使用權(quán),。假設(shè)某個主設(shè)備Ti發(fā)出請求總線服務(wù)請求時,,總線正被具有更高優(yōu)先級的其他主設(shè)備Tj所占用,從而阻止了Ti使用總線,。隨著時間的推移,,Ti的空閑時間嚴(yán)格單調(diào)遞減直至小于正占用總線的主設(shè)備Tj的空閑時間時,按照調(diào)度策略,,總線必須切換到服務(wù)Ti,。
1.1.1 總線顛簸現(xiàn)象
    由于等待主設(shè)備的空閑時間隨時間嚴(yán)格遞減,,當(dāng)有多個任務(wù)等待主設(shè)備時,其空閑時間不斷變化,,所以會出現(xiàn)多個主設(shè)備相互交叉搶占總線服務(wù)的現(xiàn)象,。每次搶占都發(fā)生一次總線切換,造成總線服務(wù)顛簸現(xiàn)象,。由于總線服務(wù)切換的時間不可忽略,,而且會加大仲裁器的設(shè)計難度,浪費(fèi)資源,,因此必須有效地避免顛簸現(xiàn)象,。顛簸現(xiàn)象的產(chǎn)生主要是因?yàn)榈却?wù)主設(shè)備Ti的空閑時間Si一旦小于服務(wù)主設(shè)備Tj的空閑時間Sj,就馬上進(jìn)行總線服務(wù)切換,,所以選擇合適的切換時機(jī)可以有效地解決顛簸現(xiàn)象,。本文引入搶占閾值來擴(kuò)展最小空閑時間優(yōu)先服務(wù)的總線仲裁算法。
1.1.2 搶占閾值的確定
    記pi為主設(shè)備Ti的優(yōu)先級,,hi為主設(shè)備Ti的切換閾值,。根據(jù)之前的分析,主設(shè)備的優(yōu)先值越大,,其優(yōu)先級就越高,,所以主設(shè)備的切換閾值必須大于其優(yōu)先值,即hi>pi,。因?yàn)閜i的值是動態(tài)變化的,,所以hi值不能事先確定,需要隨時間進(jìn)行動態(tài)修改,??紤]到總線仲裁過程實(shí)時性要求很高,hi值的確定不宜過于復(fù)雜,,所以本文采用線性法來設(shè)計,。對于任意Ti,hi的值由式(2)確定:
 
1.2 算法流程
    算法流程如下:
    (1)算法初始化,;
    (2)檢測是否有主設(shè)備請求總線服務(wù),,有則初始化主設(shè)備(假設(shè)為Ti)的參數(shù)(優(yōu)先級pi=pmax;切換閾值hi=hmax,;空閑時間Si),,并加入等待服務(wù)主設(shè)備隊列T′中;
    (3)對T′中的每個主設(shè)備計算Si,;
    (4)判斷總線是否正在服務(wù),,是則轉(zhuǎn)(5),否則轉(zhuǎn)(7);
    (5)對T′中的所有Ti,,計算Si-Sj,,結(jié)果小于0則加入就緒服務(wù)主設(shè)備隊列T″中,轉(zhuǎn)(6),;
    (6)判斷T″是否為空,,是則轉(zhuǎn)(9),否則對T″中的每個主設(shè)備計算pi=pi-hj,,如果max(pi)>0設(shè)置Ti的優(yōu)先級最高,,減小pj,轉(zhuǎn)(7),;
    (7)對優(yōu)先級最高的Ti進(jìn)行服務(wù),,轉(zhuǎn)(8);
    (8)修改各主設(shè)備參數(shù),,按照式(1)修改pi,,式(2)修改hi;判斷T′中的主設(shè)備是否服務(wù)完,,是則轉(zhuǎn)(9),,否則轉(zhuǎn)(2);
    (9)算法結(jié)束,。
1.3 算法實(shí)現(xiàn)
    基于閾值的最小空閑時間優(yōu)先服務(wù)的片上總線仲裁算法由4個基本模塊組成:算法控制模塊,、優(yōu)先級調(diào)節(jié)器、帶寬調(diào)節(jié)器和總線傳輸控制器,。另外,,算法所需的主設(shè)備訪問總線特性參數(shù)(服務(wù)時間、截止時間等)和總線服務(wù)參數(shù)信息由信號提取模塊完成,,信號的控制和實(shí)際數(shù)據(jù)的傳輸由信號授權(quán)模塊完成,,其總體結(jié)構(gòu)如圖1所示。

    (1)優(yōu)先級調(diào)節(jié)器
    該模塊的主要作用是實(shí)現(xiàn)對主設(shè)備優(yōu)先級的動態(tài)調(diào)節(jié),以滿足主設(shè)備的實(shí)時性要求,。該模塊從信號提取模塊中獲得各個主設(shè)備實(shí)時性相關(guān)的參數(shù)(主設(shè)備請求總線服務(wù)時間,、最大截止時間、請求訪問從設(shè)備的地址及從設(shè)備傳輸響應(yīng)時間等),,然后進(jìn)行簡單的處理后,,傳入算法控制模塊,經(jīng)過算法控制模塊的運(yùn)算,,最終得到各個主設(shè)備調(diào)整后的優(yōu)先級。優(yōu)先級調(diào)節(jié)器根據(jù)該結(jié)果通過信號授權(quán)模塊動態(tài)調(diào)整各個主設(shè)備的優(yōu)先級,。
    (2)帶寬調(diào)節(jié)器
    該模塊的主要作用是監(jiān)視總線上主設(shè)備實(shí)際傳輸帶寬和由算法控制的應(yīng)該配置帶寬之間的變化,,實(shí)時反饋信息給算法控制模塊來保證帶寬精確分配。該模塊從信號提取模塊中獲得各個主設(shè)備帶寬要求相關(guān)的參數(shù)(主設(shè)備每次數(shù)據(jù)傳輸?shù)拈L度、主設(shè)備帶寬需求以及總線帶寬利用情況等),,然后進(jìn)行簡單的處理,,傳入算法控制模塊,經(jīng)過算法控制模塊的運(yùn)算,,最終得到各個主設(shè)備調(diào)整后的帶寬要求,,帶寬調(diào)節(jié)器根據(jù)該結(jié)果通過信號授權(quán)模塊動態(tài)調(diào)整各個主設(shè)備的帶寬配置。
    (3)總線傳輸控制器
    該模塊的主要作用是監(jiān)視總線帶寬的狀態(tài),,準(zhǔn)確預(yù)測出各設(shè)備請求的響應(yīng)時間,,并將該結(jié)果傳入算法控制模塊,經(jīng)過算法控制模塊的運(yùn)算,,得到新的總線帶寬分配方案,。總線傳輸控制器通過信號授權(quán)模塊來協(xié)調(diào)各個主設(shè)備使用總線,。
    (4)算法控制模塊
    算法控制模塊的硬件邏輯包括:時間片定時器,、判據(jù)寄存器組、比較邏輯和算法控制狀態(tài)機(jī),。其中,,判據(jù)寄存器組的初始值通過離線計算獲得,在總線服務(wù)過程時,,通過主設(shè)備特性參數(shù)提取模塊獲得實(shí)時參數(shù)值,,作為新的判據(jù)寄存器數(shù)據(jù)提供給算法控制狀態(tài)機(jī)。比較邏輯負(fù)責(zé)對算法運(yùn)行產(chǎn)生的新結(jié)果與判據(jù)寄存器組進(jìn)行比較,,并對判據(jù)寄存器組內(nèi)的數(shù)據(jù)進(jìn)行更新,。
    算法控制狀態(tài)機(jī)采用Mealy有限狀態(tài)機(jī)來實(shí)現(xiàn)總線仲裁算法流程,完成對各主設(shè)備的優(yōu)先級,、帶寬分配等屬性的動態(tài)調(diào)節(jié),。另外對各主設(shè)備請求使用總線服務(wù)進(jìn)行仲裁,實(shí)現(xiàn)各主設(shè)備協(xié)調(diào)使用總線所提供的服務(wù),。
2 實(shí)驗(yàn)及結(jié)果分析
    為驗(yàn)證基于閾值的最小空閑時間優(yōu)先服務(wù)總線仲裁器的性能,,本文對基于動態(tài)優(yōu)先級的仲裁器、基于時間輪轉(zhuǎn)的仲裁器和本文提出的仲裁器進(jìn)行了實(shí)驗(yàn),,并進(jìn)行了比較,。
2.1 實(shí)驗(yàn)平臺
    實(shí)驗(yàn)硬件平臺為Core 2 Duo CPU(主頻為2 GHz),內(nèi)存4 GB,,操作系統(tǒng)是Windows XP,,仿真軟件使用ModelSim6.4。在實(shí)驗(yàn)平臺上,,共實(shí)現(xiàn)了6個主設(shè)備,、1個從設(shè)備和1個總線仲裁器。6個主設(shè)備的類型和相關(guān)參數(shù)如表1所示(在表1中,R表示有實(shí)時性要求,,NR表示沒有實(shí)時性要求,;B表示有帶寬要求,NB表示沒有帶寬要求),。

2.2 實(shí)驗(yàn)結(jié)果
    首先,,定義兩種性能指標(biāo):
    (1)服務(wù)請求截止期錯失率MDP(Missed Deadline Percentage)=“所有截止期錯失的總線服務(wù)請求/所有主設(shè)備總線服務(wù)請求之和”。
    (2)服務(wù)切換次數(shù)SSN(Service Switch Num)=“從未完成的總線服務(wù)請求到搶占的總線服務(wù)請求切換次數(shù)”+“從完成總線服務(wù)請求到另一總線服務(wù)請求的切換次數(shù)”,。
    在此基礎(chǔ)上,,對表1中所示的6個主設(shè)備分別采用4種總線仲裁算法進(jìn)行仿真實(shí)驗(yàn),得到如下結(jié)果,。
    (1)對于不同總線負(fù)載ρ
    取公式(2)中的α=5,,圖2和圖3分別表示對于不同總線負(fù)載ρ(0.5≤ρ≤2.0)情況下,4種總線仲裁算法的MDP比較,。其中圖2是在每個主設(shè)備請求100個總線服務(wù)下的MDP,,圖3是每個主設(shè)備請求200個總線服務(wù)下的MDP。從圖2和圖3中可以看出,,最小空閑時間優(yōu)先總線仲裁器得到的MDP要明顯小于其他兩種總線仲裁器,。當(dāng)ρ≤1時,最小空閑時間總線仲裁器可以保證每個主設(shè)備都滿足其總線服務(wù)截止期要求,;當(dāng)ρ>1時,,會出現(xiàn)主設(shè)備部分總線服務(wù)請求不能滿足其服務(wù)截止期要求的情況,但其MDP要明顯小于其他兩種總線仲裁器,。

    (2)對于不同比例系數(shù)α
    取ρ=1.3,,圖4和圖5分別給出了在不同比例系數(shù)α時的MDP和SSN變化情況。
    從圖4中可以看出,,對于MDP的影響,,并不是搶占次數(shù)越多(比例系數(shù)α越小)調(diào)度效果就越好,,而是當(dāng)α=12時,,MDP最小,;而當(dāng)α=1時,,MDP達(dá)到最大。從圖5中可以看出,,SSN的值隨著ρ的變大而逐漸變小,,但是,當(dāng)α的值大到一定量時,,SSN的值變化不明顯,;當(dāng)α接近1時,,SSN變化顯著。究其原因,,從公式(2)中可以看出:當(dāng)α=1時,hi=pi,,即主設(shè)備的搶占閾值等于其優(yōu)先級,,則搶占閾值就沒有起到作用,即變成了完全搶占模式,,該情況下,,主設(shè)備頻繁地?fù)屨伎偩€服務(wù),造成過多的總線服務(wù)切換,,浪費(fèi)了總線帶寬資源,,從而影響總線服務(wù)的性能;當(dāng)α=16時主設(shè)備的搶占閾值為最高優(yōu)先級,,造成永遠(yuǎn)不能被其他主設(shè)備搶占的情況,,成為非搶占模式。以上兩種情況都會造成總線服務(wù)質(zhì)量的下降,,所以,,比例系數(shù)α的選擇應(yīng)當(dāng)保證MDP最小的情況下,相應(yīng)的SSN值不能太大,,結(jié)合圖4和圖5可以看出,,α=12為最優(yōu)比例系數(shù)。

2.3 試驗(yàn)結(jié)果分析
    在PT-LSF算法中,,總線仲裁器在收集主設(shè)備請求特性參數(shù)和總線傳輸狀態(tài)信息基礎(chǔ)上,,結(jié)合主設(shè)備請求總線服務(wù)的緩急程度來實(shí)時地改變主設(shè)備優(yōu)先權(quán),以滿足主設(shè)備強(qiáng)實(shí)時性要求,。通過與常用的動態(tài)優(yōu)先級算法,、時間片輪轉(zhuǎn)算法和Lottery算法的實(shí)驗(yàn)分析比較可以看出,本文提出的PT-LSF算法在服務(wù)請求截止期錯失率(MDP)上有顯著優(yōu)勢,。當(dāng)總線負(fù)載在0.5~1.0范圍內(nèi)時,,PT-LSF算法的MDP值為0;當(dāng)總線負(fù)載在1.0~2.0范圍內(nèi)時,,PT-LSF算法的MDP值比時間片輪轉(zhuǎn)算法平均減少了50.8%,,比動態(tài)優(yōu)先級算法平均減少了43.6%,比Lottery算法平均減少了36.3%,。綜合對比,,PT-LSF算法的MDP比其他算法平均減少了43.8%,能很好地滿足各主設(shè)備在各種情況下的強(qiáng)實(shí)時要求,。另外,,在PT-LSF算法中,,使總線服務(wù)達(dá)到最優(yōu)時,并不是搶占次數(shù)越多(比例系數(shù)α越大)越好,,而是取一個中間合適值,。在本文中,系統(tǒng)最大優(yōu)先級為16,,最小優(yōu)先級為1,,最優(yōu)比例系數(shù)α為12,該結(jié)果為搶占閾值比例系數(shù)?琢的確定提供了實(shí)驗(yàn)依據(jù),。
    本文提出了基于最小空閑時間優(yōu)先的總線仲裁算法,,并給出了算法的實(shí)現(xiàn)流程和組成結(jié)構(gòu)。將其與動態(tài)優(yōu)先級算法,、時間片輪轉(zhuǎn)算法和Lottery算法進(jìn)行比較,。實(shí)驗(yàn)結(jié)果顯示:該總線仲裁算法在MDP方面比其他兩種算法平均減少了43.8%,能更好地保證主設(shè)備的強(qiáng)實(shí)時要求,。該總線仲裁算法對于共享總線的片上系統(tǒng)設(shè)計具有重要的參考價值,。
參考文獻(xiàn)
[1] POLETTI F,BERTOZZI D,,BENINI L,,et al.Performance analysis of arbitration policies for SoC communication architectures[J].Journal of Design Automation for Embedded  Systems,2003(8):189-210.
[2] LISNER J C.Efficiency of dynamic arbitration in TDMA protocols[C].EDCC2005,,Berlin,,2005:91-102.
[3] ZHANG Y.Architecture and performance comparison of a statistic-based Lottery arbiter for shared bus on chip[C]. //Proceedings of Asia South Pacific Design Automation  Conference,Yokohama,,2004:1313-1316
[4] Bu-Ching Lin,,Geeng-Wei Lee,Juinn-Dar Huang,,et al.A Precise bandwidth control arbitration algorithm for hard real-time SoC buses.IEEE,,2007:165-170.
[5] 徐懿,李麗,,杜高明,,等.一款基于多處理器片上系統(tǒng)的動態(tài)自適應(yīng)仲裁器[J].計算機(jī)研究與發(fā)展,2008,,45(6):1085-1092.
[6] 孟海波,,張志敏.基于傳輸時間精確預(yù)測的片上總線仲裁算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2008,,20(7):830-837.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。