專利名稱:嵌入式系統(tǒng)以及仲裁方法
技術領域:
本發(fā)明涉及一種嵌入式系統(tǒng)及其方法,特別涉及一種嵌入式系統(tǒng)及其仲裁方法。
背景技術:
請參閱圖1,圖1顯示一現(xiàn)有總線共享系統(tǒng)的功能方塊圖??偩€共享系統(tǒng)100包含有一仲裁器(arbiter)110、多個總線主控裝置(bus-masterdevice)(例如CPU)122、124、126、128、一總線附屬裝置(bus-slave device)(例如內存)130、以及一總線(bus)140。多個總線主控裝置可以通過總線140來傳送數(shù)據(jù)給總線附屬裝置130。然而,如果同一時間有超過二個總線主控裝置想要通過總線140來存取數(shù)據(jù),則最后僅有一個總線主控裝置能夠允許在總線140上存取數(shù)據(jù)。當某一個總線主控裝置想要存取數(shù)據(jù)時,就會送出一請求信號給仲裁器110,要求獲得使用總線140的權利。仲裁器110會依據(jù)多個相對應的請求信號,從多個總線主控裝置中,選出一個合適的總線主控裝置以通過總線140存取數(shù)據(jù),其中,關于仲裁器110的進一步說明如下。
請參閱圖2,圖2顯示仲裁器110處理多個請求信號的示意圖。舉例來說,當總線主控裝置122想要存取數(shù)據(jù)時,即送出請求信號REQ_1;當總線主控裝置124想要存取數(shù)據(jù)時,即送出請求信號REQ_2;當總線主控裝置126想要存取數(shù)據(jù)時,即送出請求信號REQ_3;當總線主控裝置128想要存取數(shù)據(jù)時,即送出請求信號REQ_4。若是仲裁器110選擇總線主控裝置122當作目前唯一可以存取數(shù)據(jù)的裝置,則產生同意信號GNT_1。同樣地,若是仲裁器110選擇其它總線主控裝置當作目前唯一可以存取數(shù)據(jù)的裝置,則產生其對應的同意信號(GNT_2、GNT_3、GNT_4)。關于仲裁器110的仲裁過程進一步說明如下。
請同時參閱第3A以及圖3B。圖3A顯示多個請求以及同意信號的第一現(xiàn)有仲裁的時序圖,圖3B顯示每一個總線主控裝置的優(yōu)先權。在時間T0時,由于只有送出請求信號REQ_1(以高準位為例),仲裁器110產生同意信號GNT_1授權對應的總線主控裝置122來使用總線去存取數(shù)據(jù)。接著,在時間T01、T02、T03、時,總線主控裝置128、126、124分別送出請求信號REQ_4、REQ_3、REQ_2。在時間T1時,總線主控裝置122停止請求信號REQ_1,仲裁器110接下來停止對應的同意信號GNT_1。然后,仲裁器110產生同意信號REQ_2授權對應的總線主控裝置124利用總線去存取數(shù)據(jù)。請參閱圖3B,由此圖得知,總線主控裝置122、124、126、128的優(yōu)先權順位永遠是最高、次高、次低、以及最低。在時間T1時,仲裁器110產生同意信號GNT_2。在時間T11時,擁有最高優(yōu)先權的總線主控裝置122再度送出請求信號REQ_1但是由于請求信號REQ_2尚未停止,故可以使用總線的權利仍然在總線主控裝置124上。在時間T2時,請求信號REQ_2被停止且仲裁器110產生另一同意信號。這次由于擁有最高的優(yōu)先權,同意信號GNT_1就會產生。同樣地,同意信號GNT_3以及GNT_4在時間T3以及T4時會被個別產生。另一種現(xiàn)有仲裁器110的仲裁過程說明如下。
請同時參閱圖4A以及圖4B。圖4A顯示多個請求以及同意信號的第二現(xiàn)有仲裁的時序圖,圖4B顯示每一個總線主控裝置的優(yōu)先權。請注意,每一個總線主控裝置的優(yōu)先權順序將隨著時間漂移而產生不同的變化。原本,總線主控裝置122擁有最高的優(yōu)先權順序,但是,隨著時間漂移,總線主控裝置124反而擁有最高優(yōu)先權順序,此時總線主控裝置122的優(yōu)先權順序變成最低。
所以由圖4A得知,在時間T0時,由于只有送出請求信號REQ_1(以高準位為例),仲裁器110產生同意信號GNT_1以授權對應的總線主控裝置122利用總線去存取數(shù)據(jù)。接著,在時間T01、T02、T03時,總線主控裝置128、126、124分別送出請求信號REQ_4、REQ_3、以及REQ_2。因此在時間T1時,總線主控裝置122停止請求信號REQ_1且仲裁器110接著停止對應的同意信號GNT_1。
請參閱圖4B,當仲裁器110產生同意信號REQ_2以授權對應的總線主控裝置124利用總線去存取數(shù)據(jù)時,在時間T1時,優(yōu)先權的順序發(fā)生變化且此時總線主控裝置124擁有最高的優(yōu)先權。因此,同意信號REQ_2隨即產生。在時間T11時,擁有最低優(yōu)先權的總線主控裝置122再度送出了請求信號,然而由于請求信號REQ_2尚未被停止,總線的控制權利仍然在總線主控裝置124。在時間T2時,請求信號REQ_2被停止并且仲裁器110產生另一同意信號。這次由于總線主控裝置126擁有最高的優(yōu)先權,是故隨即產生同意信號GNT_3。同樣地,同意信號GNT_4在時間T3時產生。
然而,第一以及第二現(xiàn)有仲裁方式,在某些情況下并不是最好的仲裁方式。在第一現(xiàn)有仲裁方式中(圖3),總線主控裝置122、124、126、128的優(yōu)先權順序永遠是最高、次高、次低、以及最低。換句話說,每一個總線主控裝置的優(yōu)先權順序永遠不會改變。因此擁有較低優(yōu)先權的總線主控裝置在與擁有較高優(yōu)先權的總線主控裝置競爭時,將永遠得不到總線主控權。在第二現(xiàn)有仲裁方式中(圖4),優(yōu)先權的順序則是隨著時間漂移,規(guī)律改變,每一個總線主控裝置都有機會得到最高的優(yōu)先權,相較于第一現(xiàn)有仲裁方式,第二現(xiàn)有仲裁方式似乎較公平。然而,在實施的配置上,第二現(xiàn)有仲裁方式仍不是最有效率且最符合實際使用情況的仲裁方式。
發(fā)明內容
有鑒于此,本發(fā)明提供一種嵌入式系統(tǒng)及其仲裁方法,以解決上述問題。
本發(fā)明提供一種仲裁方法,應用于一嵌入式系統(tǒng)。該嵌入式系統(tǒng)系通過一媒體與其它系統(tǒng)溝通。該嵌入式系統(tǒng)包含有多個裝置、一總線、以及一仲裁器。每一個裝置包含有一緩存器以及一死亡時間值(time-to-deathvalue.)。該仲裁器依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù)。該仲裁方法包含有送出多個請求信號給該仲裁器;依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù),其中,被選擇的裝置擁有一最小死亡時間值;當被選擇的裝置通過該總線存取數(shù)據(jù)時,增加被選擇裝置的該死亡時間值;以及當另一裝置的該死亡時間值變成最小時,選擇另一裝置來通過該總線去存取數(shù)據(jù)。每一死亡時間值用來紀錄其對應緩存器的目前狀態(tài)。
本發(fā)明另提供一種嵌入式系統(tǒng)。該嵌入式系統(tǒng)通過一媒體與其它系統(tǒng)溝通。該嵌入式系統(tǒng)包含有多個裝置、一總線、以及一仲裁器。每一個裝置包含有一緩存器以及一死亡時間值。該仲裁器依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù)。該嵌入式系統(tǒng)包含有一第一裝置,用來送出多個請求信號給該仲裁器;一第二裝置,用來依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù),其中被選擇的裝置擁有一最小死亡時間值;一第三裝置,用來當被選擇的裝置通過該總線存取數(shù)據(jù)時,增加被選擇裝置的該死亡時間值;以及一第四裝置,用來當另一裝置的該死亡時間值變成最小時,選擇另一裝置來通過該總線去存取數(shù)據(jù)。每一死亡時間值用來紀錄其對應緩存器的目前狀態(tài)。
圖1顯示一現(xiàn)有總線共享系統(tǒng)的功能方塊圖。
圖2顯示仲裁器處理多個請求信號的示意圖。
圖3A顯示多個請求以及同意信號的第一現(xiàn)有仲裁的時序圖。
圖3B顯示每一個總線主控裝置的優(yōu)先權。
圖4A顯示多個請求以及同意信號的第二現(xiàn)有仲裁的時序圖。
圖4B顯示每一個總線主控裝置的優(yōu)先權。
圖5顯示本發(fā)明嵌入式系統(tǒng)一實施例的功能方塊圖。
圖6顯示圖5總線主控裝置的一功能方塊圖。
圖7顯示仲裁器處理多個具有死亡時間值的請求信號的示意圖。
圖8顯示傳送端緩存器大小以及死亡時間值關系的示意圖。
圖9顯示所有裝置內多個傳送端先進先出隊列的時序示意圖。
圖10顯示死亡時間值以及傳送端先進先出隊列變化關系的示意圖。
圖11是本發(fā)明傳送端先進先出隊列運作方法的流程圖的一實施例。
圖12是本發(fā)明傳送端先進先出隊列運作方法內TTD變化情形的流程圖的一實施例。
圖13顯示接收端緩存器大小以及死亡時間值關系的示意圖。
圖14顯示死亡時間值以及接收端先進先出隊列變化關系的示意圖。
圖15是本發(fā)明接收端先進先出隊列運作方法的流程圖的一實施例。
圖16是本發(fā)明接收端先進先出隊列運作方法內TTD變化情形的流程圖的一實施例。
附圖符號說明總線共享系統(tǒng)100仲裁器 110、510總線主控裝置122、124、126、128、522、524、526、528總線附屬裝置130、530
總線 140、540嵌入式系統(tǒng) 500傳送端緩存器610接收端緩存器620具體實施方式
請參閱圖5,圖5顯示本發(fā)明嵌入式系統(tǒng)500一實施例的功能方塊圖。嵌入式系統(tǒng)500包含有一仲裁器510、多個總線主控裝置(例如Ethernet MAC或是CPU)522、524、526以及528、一總線附屬裝置(例如DDR SDRAM)530、以及一總線(例如AHB總線)540。多個總線主控裝置522-528可以通過總線540來傳送數(shù)據(jù)給總線附屬裝置530。如果同時有超過二個以上的總線主控裝置想要通過總線540存取數(shù)據(jù),最后僅能允許一個總線主控裝置通過總線540存取數(shù)據(jù)。當某一總線主控裝置想要存取數(shù)據(jù)時,就會送出帶有死亡時間值(time-to-death value,TTD value)的請求信號給仲裁器510以使用總線540。仲裁器510則依據(jù)多個對應的請求信號以及死亡時間值,從多個總線主控裝置中,選出一個合適的總線主控裝置以存取數(shù)據(jù)。關于總線主控裝置的進一步說明如下。
請參閱圖6,圖6顯示圖5總線主控裝置的一功能方塊圖??偩€主控裝置包含有一傳送端緩存器(transmitted buffer)610(例如傳送端先進先出隊列,TX FIFO)以及一接收端緩存器(例如接收端先進先出隊列,RX FIFO)620。傳送端緩存器610能自總線540接收數(shù)據(jù)并且傳送數(shù)據(jù)到媒體(例如電波),而接收端緩存器620能自媒體接收數(shù)據(jù)(例如空氣)并且傳送數(shù)據(jù)給總線540。關于仲裁器510的進一步說明如下。
請參閱圖7,圖7顯示仲裁器510處理多個具有死亡時間值的請求信號的示意圖。舉例來說,當總線主控裝置522想要存取數(shù)據(jù)時,即送出請求信號REQ_1以及死亡時間值TTD_1;當總線主控裝置524想要存取數(shù)據(jù)時,即送出請求信號REQ_2以及死亡時間值TTD_2;當總線主控裝置526想要存取數(shù)據(jù)時,即送出請求信號REQ_3以及死亡時間值TTD_3;當總線主控裝置528想要存取數(shù)據(jù)時,即送出請求信號REQ_4以及死亡時間值TTD_4。若是仲裁器510選擇總線主控裝置522當作目前唯一可以存取數(shù)據(jù)的裝置,則產生同意信號GNT_1。同樣地,若是仲裁器510選擇其它總線主控裝置當作目前唯一可以存取數(shù)據(jù)的裝置,則產生其對應的同意信號(GNT_2、GNT_3、GNT_4)。關于緩存器大小以及死亡時間值關系的進一步說明如下。
請參閱圖8,圖8顯示傳送端緩存器大小(傳送端先進先出隊列)以及死亡時間值關系的示意圖。假設先進先出隊列容量以及最大的死亡時間值分別為64(字節(jié))以及255。另外,臨界區(qū)段的長度設為8(字節(jié))。在第一個先進先出隊列中(最上面的先進先出隊列),臨界區(qū)段以及傳送端先進先出隊列都是滿的(填滿了72字節(jié)的數(shù)據(jù))。請注意,在臨界區(qū)段內的數(shù)據(jù)被傳送到媒體后(臨界區(qū)段變成空的),對應的總線主控裝置就可以用來請求將傳送端先進先出隊列再度填入數(shù)據(jù)。當傳送端先進先出隊列內的數(shù)據(jù)被傳送到媒體后,死亡時間值也會被對應地減少。當數(shù)據(jù)再度填流傳送端先進先出隊列時,死亡時間值則會被對應地增加。在第二個先進先出隊列中,臨界區(qū)段是空的,但傳送端先進先出隊列則是滿的(其內有64字節(jié)的數(shù)據(jù))且開始要送到媒體,則此時的死亡時間值達到最大值(255)。在第三個先進先出隊列中,傳送端先進先出隊列剩下48單位的數(shù)據(jù)(字節(jié)),此時死亡時間值即為192(字節(jié))。在第四個先進先出隊列中,傳送端先進先出隊列已經變成空的,此時死亡時間值即為零。死亡時間值的計算依據(jù)公式如下TTD-TX=DR/DC其中,TTD-TX為傳送端先進先出隊列的死亡時間值、DR代表傳送端先進先出隊列內所剩下的數(shù)據(jù)量、DC則為數(shù)據(jù)的消耗(輸出)到媒體的速度。
數(shù)據(jù)消耗率是一個預定的常數(shù)。在圖8中,假設數(shù)據(jù)消耗率的值為0.25。在第二個先進先出隊列中剩下的數(shù)據(jù)量為64(字節(jié));在第三個先進先出隊列中剩下的數(shù)據(jù)量為48(字節(jié));在第四個先進先出隊列中剩下的數(shù)據(jù)量為0(字節(jié))。通過上述的公式,可計算出第二個先進先出隊列中死亡時間值為255(64/0.25)、第三個先進先出隊列中死亡時間值為192(48/0.25)、第四個先進先出隊列中死亡時間值為0(0/0.25)。關于仲裁器510的進一步說明如下。
在圖9中,是以傳送端先進先出隊列為例。圖9顯示在裝置522-528內多個傳送端先進先出隊列的時序示意圖。死亡時間值則和目前的傳送端先進先出隊列容量成正比。若是傳送端先進先出隊列是滿的,則死亡時間值會變成最大值。若是傳送端先進先出隊列是空的,死亡時間值會變成最小值。另外,仲裁器510會選擇擁有最小死亡時間值的裝置來當作目前可以使用總線540的唯一裝置。在時間T0時,所有的傳送端先進先出隊列都是滿的并且對應的死亡時間值都被設為最大值(例如4)。在時間T1時,裝置522被授權可以使用總線540來接受數(shù)據(jù),而其它的裝置仍然可以通過媒體(例如空氣)來傳送數(shù)據(jù)到另一個系統(tǒng)(未顯示)。在其它的裝置524-526將傳送端先進先出隊列內的數(shù)據(jù)通過媒體傳送出去后,每一個先進先出隊列的剩下的數(shù)據(jù)都變少了,故對應的死亡時間值TTD_2、TTD_3、TTD_4都會跟著減少(例如TTD變成3)。在時間T2時,假設裝置524被授權可以使用總線540來接收數(shù)據(jù)并且其它的裝置522、526、528仍然可以通過媒體(例如空氣)來傳送數(shù)據(jù)到另一個系統(tǒng)(未顯示)。在裝置524自總線540接收數(shù)據(jù)后,其傳送端先進先出隊列內的數(shù)據(jù)量即增加,并且對應的死亡時間值TTD_2也跟著增加。在此同時,其它的裝置522、526、以及528通過媒體將數(shù)據(jù)傳送到其它系統(tǒng),故對應的死亡時間值TTD_1、TTD_3、TTD_4跟著減少。同樣地,在時間T3時(假設裝置526被授權可以使用總線540),死亡時間值TTD_3增加并且其它的死亡時間值TTD_1、TTD_2、TTD_4跟著增加;在時間T4時(假設裝置528被授權可以使用總線540),死亡時間值TTD_4增加并且其它的死亡時間值TTD_1、TTD_2、TTD_3跟著增加。關于死亡時間值以及傳送端先進先出隊列變化的關系進一步說明如下。
請參閱圖10,圖10顯示死亡時間值以及傳送端先進先出隊列變化關系的示意圖。假設最大死亡時間值是255。在時間T0時,傳送端先進先出隊列是空的,因此對應的死亡時間值為零。在時間T1時,由總線540接收進來的數(shù)據(jù)將傳送端先進先出隊列填到半滿,此時死亡時間值增加到最大死亡時間值的一半(127)。在時間T3時,先進先出隊列已被填滿并且開始傳送數(shù)據(jù)到媒體(例如空氣),對應的TTD則同時變?yōu)樽畲笾?255)。在時段T3到T5內,傳送端先進先出隊列尚未被授權來使用總線540,所以它只能傳送數(shù)據(jù)到媒體。另外,在時段T3到T5內,再度送出請求信號請求得到授權來使用總線540。在時段T6到T7內,先進先出隊列再度得到授權來傳送部分的數(shù)據(jù)到媒體,其它的數(shù)據(jù)則可同時自總線接收之。一般來說,接收速度通常比傳送速度快,所以死亡時間值會一直被增加直到先進先出隊列滿了為止。在時間T8時,傳送端先進先出隊列失去了授權,變成只能傳送數(shù)據(jù)到媒體。因此死亡時間值再度隨著傳送數(shù)據(jù)而減少。在一段時間后,在時間T9時傳輸?shù)墓ぷ魍瓿桑藭r死亡時間值變成零。
請參閱圖11,圖11是本發(fā)明傳送端先進先出隊列運作方法的流程圖的一實施例。進一步說明如下。
步驟1102總線主控裝置(bus-master device)內的傳送端先進先出隊列(TX FIFO)處于空閑狀態(tài)(idle)步驟1104當傳送端事件(TX event)觸發(fā)后,請求獲得總線的控制權步驟1106當收到同意信號后,開始將數(shù)據(jù)送到傳送端先進先出隊列步驟1108一旦填滿了傳送端先進先出隊列,即釋出總線請求權步驟1110開始由傳送端先進先出隊列送數(shù)據(jù)至外部媒體步驟1112繼續(xù)傳送數(shù)據(jù)步驟1114傳送端先進先出隊列是否清空(empty)?若是,則回到步驟1102;否則,進入步驟1116步驟1116仍在內存內的數(shù)據(jù)是否需要傳送到外部媒體?若是,則進入步驟1118;否則,回到步驟1112步驟1118繼續(xù)請求得到總線的控制權步驟1120當收到同意信號后,再度將數(shù)據(jù)填入傳送端先進先出隊列步驟1122若是傳送端先進先出隊列已滿則釋出(de-assert)對總線的請求,否則繼續(xù)送出請求請參閱圖12,圖12是本發(fā)明傳送端先進先出隊列運作方法內TTD變化情形的流程圖的一實施例。卷標TTDIU代表死亡時間值每次增加的單位。假設最大的死亡時間值是255,傳送端先進先出隊列輸出速率為每個時鐘周期一數(shù)據(jù)單位,而傳送端先進先出隊列輸入速率為每個時鐘周期十數(shù)據(jù)單位。換句話說,每當數(shù)據(jù)送到媒體時,死亡時間值即增加一單位;每當自總線接收到數(shù)據(jù)時,死亡時間值即增加十單位。進一步說明如下。
步驟1202將死亡時間值(TTD)的初始值設為零步驟1204將死亡時間值增加一單位TTDIU(TTD=TTD+TTDIU)步驟1206傳送端先進先出隊列是否被填滿?若是,則進入步驟1208;否則,回到步驟1204步驟1208將死亡時間值(TTD)設為最大值(TTD=255)步驟1210每傳送一單位的數(shù)據(jù)至媒體時,即減去一單位的死亡時間值(TTD=TTD-1)步驟1212死亡時間值是否為零?若是,則回到步驟1202;否則,進入步驟1214步驟1214再度將數(shù)據(jù)自總線填入傳送端先進先出隊列步驟1216重設死亡時間值(TTD=TTD-1+TTDIU)步驟1218若是傳送端先進先出隊列已被填滿(或是總線同意權已遺失)時則進入步驟1210,否則進入步驟1216請參閱圖13,圖13顯示接收端緩存器大小(接收端先進先出隊列)以及死亡時間值關系的示意圖。假設先進先出隊列容量以及最大的死亡時間值分別為64(字節(jié))以及255。另外,臨界區(qū)段的長度設為8(字節(jié))。在第一個先進先出隊列中(最上面的先進先出隊列),臨界區(qū)段以及接收端先進先出隊列都是空的。請注意,在臨界區(qū)段內的數(shù)據(jù)自到媒體接收進來后(臨界區(qū)段變成滿的),對應的總線主控裝置就可以用來請求接收來自接收端先進先出隊列內的數(shù)據(jù)。當接收端先進先出隊列內的數(shù)據(jù)被傳送到總線后,死亡時間值也會被對應地增加。當數(shù)據(jù)再度填滿接收端先進先出隊列時,死亡時間值則會被對應地減少。在第二個先進先出隊列中,臨界區(qū)段是滿的,但接收端先進先出隊列則是空的且開始要接收來自媒體的數(shù)據(jù),則此時的死亡時間值達到最大值(255)。在第三個先進先出隊列中,接收端先進先出隊列還有48單位的數(shù)據(jù)(字節(jié))未被填滿,此時死亡時間值即為192(字節(jié))。在第四個先進先出隊列中,接收端先進先出隊列已經變成滿的,此時死亡時間值即為零。死亡時間值的計算依據(jù)公式如下TTD-RX=DS/DA其中,TTD-RX為接收端先進先出隊列內的死亡時間值,DS則為接收端先進先出隊列的數(shù)據(jù)空余量,DA則為到媒體的媒體抵達率。
數(shù)據(jù)抵達率為一預定的常數(shù)值。在圖13,假設數(shù)據(jù)消耗率等于0.25。在第二個先進先出隊列中數(shù)據(jù)空余量為64(字節(jié)),在第三個先進先出隊列中數(shù)據(jù)空余量為48(字節(jié)),在第四個先進先出隊列中數(shù)據(jù)空余量為0(字節(jié)),通過上述公式可計算出第二個先進先出隊列中的死亡時間值為255(64/0.25)、第三個先進先出隊列中的死亡時間值為192(48/0.25)、第四個先進先出隊列中的死亡時間值為0(0/0.25)。
請參閱圖14,圖14顯示死亡時間值以及接收端先進先出隊列變化關系的示意圖。假設最大死亡時間值為255。死亡時間值和目前傳送端先進先出隊列的容量成反比。若是傳送端先進先出隊列是空的,則死亡時間值變成最大值。若是傳送端先進先出隊列是滿的,死亡時間值變成最小值。另外,仲裁器會選擇有最小死亡時間值的裝置當作可以用來通過總線傳送數(shù)據(jù)的裝置。在時間T0時,接收端先進先出隊列是空的,因此死亡時間值為最大值(死亡時間值=255)。在時間T1時,數(shù)據(jù)自媒體(例如空氣)接受進來并填滿接收端先進先出隊列,因此死亡時間值減少(死亡時間值=192)。在時段T1到T3內,接收端先進先出隊列無法得到授權來利用總線,故僅能自媒體接受數(shù)據(jù)。另外,請求信號在時段T1-T3時再度發(fā)出。在時段T4-T5時,接收端先進先出隊列再度被授權并且部份的數(shù)據(jù)可以自媒體接受,同時其它的數(shù)據(jù)可以通過總線傳送。在時間T6時,接收端先進先出隊列再度失去授權并且僅能自媒體接收數(shù)據(jù)。因此死亡時間值再度變小。在一段時間后,在時間T8時接收工作完成(接收端先進先出隊列是空的)并且死亡時間值重設為255。
請參閱圖15,圖15是本發(fā)明接收端先進先出隊列運作方法的流程圖的一實施例。進一步說明如下。
步驟1402總線主控裝置內的接收端先進先出隊列(RX FIFO)處于空閑狀態(tài)步驟1404當接收端事件(RX event)觸發(fā)后,開始自外部媒體接收數(shù)據(jù)至接收端先進先出隊列步驟1406繼續(xù)自外部媒體接收數(shù)據(jù)步驟1408送出請求總線的信號來請求獲得總線的控制權步驟1410將接收端先進先出隊列內的數(shù)據(jù)通過總線來傳送到另一內存步驟1412接收端先進先出隊列是否清空(empty)?若是,則進入步驟1414;否則,進入步驟1416步驟1414自外部媒體將數(shù)據(jù)接收至接收端先進先出隊列步驟1416若是接收端先進先出隊列已清空則釋出(de-assert)對總線的控制請求,否則繼續(xù)送出請求請參閱圖16,圖16是本發(fā)明接收端先進先出隊列運作方法內TTD變化情形的流程圖的一實施例。卷標TTDIU代表死亡時間值每次增加的單位。假設最大的死亡時間值是255,接收端先進先出隊列輸入速率為每個時鐘周期一數(shù)據(jù)單位,而接收端先進先出隊列輸出速率為每個時鐘周期十數(shù)據(jù)單位。換句話說,每當自媒體接收到數(shù)據(jù)時,死亡時間值即增加一單位;每當數(shù)據(jù)傳送到總線時,死亡時間值即減少十單位(TTDIU=10)。進一步說明如下。
步驟1502將死亡時間值TTD的初始值設為最大值(TTD=255)步驟1504每自媒體接收一單位的數(shù)據(jù)至接收端先進先出隊列,即減去一單位的死亡時間值(TTD=TTD-1)步驟1506將數(shù)據(jù)自接收端先進先出隊列傳送到總線步驟1508死亡時間值是否達到最大值?若是,則進入步驟1510;否則,進入步驟1512步驟1510是否還有數(shù)據(jù)尚未自媒體接收進來?若是,則進入步驟1512;否則,回到步驟1502步驟1512重設死亡時間值(TTD=TTD-1+TTDIU)步驟1514若是接收端先進先出隊列已清空(或是總線同意權已遺失)時則回到步驟1504,否則回到步驟1512相較于現(xiàn)有技術,在總線主控裝置的優(yōu)先權順位會動態(tài)改變的情況下,本發(fā)明仲裁方法會更公平地分配總線的使用。相較于第二現(xiàn)有技術,藉由死亡時間值的幫助,本發(fā)明仲裁方法在分配上不但更有效率,且更切合當時所有總線主控裝置實施的使用需求。
權利要求
1.一種仲裁方法,其應用于一嵌入式系統(tǒng),該嵌入式系統(tǒng)通過一媒體與其它系統(tǒng)溝通,該嵌入式系統(tǒng)包含有多個裝置、一總線以及一仲裁器,每一個裝置包含有一緩存器以及一死亡時間值,該仲裁方法包含有送出多個請求信號給該仲裁器,其中,該等請求信號含有相對應的多個死亡時間值;依據(jù)該等死亡時間值由一被選擇的裝置來通過該總線去存取數(shù)據(jù),其中,該被選擇的裝置擁有一最小死亡時間值;當該被選擇的裝置通過該總線存取數(shù)據(jù)時,增加該最小死亡時間值;以及當一另一裝置的死亡時間值變成最小時,選擇該另一裝置來通過該總線去存取數(shù)據(jù);其中,每一死亡時間值用來紀錄其對應緩存器的目前狀態(tài)。
2.如權利要求1所述的仲裁方法另包含有計算每一個裝置的該死亡時間值。
3.如權利要求2所述的仲裁方法,其中,該死亡時間值依據(jù)公式計算如下TTD-TX=DR/DC其中,在該嵌入式系統(tǒng)內每一緩存器是一傳送端緩存器,用來自該總線接收數(shù)據(jù)并且自該媒體傳送數(shù)據(jù),TTD-TX是對應該傳送端緩存器的該死亡時間值,DR是該傳送端緩存器內一剩余數(shù)據(jù)量,以及DC是數(shù)據(jù)消耗到媒體的一速度。
4.如權利要求2所述的仲裁方法,其中,該死亡時間值依據(jù)公式計算如下TTD-RX=DS/DA其中,該嵌入式系統(tǒng)內每一緩存器是一接收端緩存器,用來自該總線傳送數(shù)據(jù)并且自該媒體接收數(shù)據(jù),TTD-RX是對應該接收端緩存器的該死亡時間值,DS是該接收端先進先出隊列的一數(shù)據(jù)空余量,DA是該數(shù)據(jù)到媒體的媒體抵達率。
5.如權利要求1所述的仲裁方法,其中,一信息留存后轉送機制用來存取數(shù)據(jù)。
6.一種嵌入式系統(tǒng),該嵌入式系統(tǒng)通過一媒體與其它系統(tǒng)溝通,該嵌入式系統(tǒng)包含有多個裝置、一總線以及一仲裁器,每一個裝置包含有一緩存器以及一死亡時間值,該仲裁器依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù),該嵌入式系統(tǒng)包含有一第一裝置,用來送出多個請求信號給該仲裁器;一第二裝置,用來依據(jù)多個死亡時間值選擇一個裝置來通過該總線去存取數(shù)據(jù),其中,被選擇的裝置擁有一最小死亡時間值;一第三裝置,用來當被選擇的裝置通過該總線存取數(shù)據(jù)時,增加被選擇裝置的該死亡時間值;以及一第四裝置,用來當另一裝置的該死亡時間值變成最小時,選擇另一裝置來通過該總線去存取數(shù)據(jù);其中,每一死亡時間值用來紀錄其對應緩存器的目前狀態(tài)。
7.如權利要求6所述的嵌入式系統(tǒng),另包含有一第五裝置,用來計算每一個裝置的該死亡時間值。
8.如權利要求7所述的嵌入式系統(tǒng),其中,該死亡時間值依據(jù)公式計算如下TTD-TX=DR/DC其中,在該嵌入式系統(tǒng)內每一緩存器是一傳送端緩存器,用來自該總線接收數(shù)據(jù)并且自該媒體傳送數(shù)據(jù),TTD-TX是對應該傳送端緩存器發(fā)該死亡時間值,DR是該傳送端緩存器內一剩余數(shù)據(jù)量,以及DC是數(shù)據(jù)消耗到媒體發(fā)一速度。
9.如權利要求7所述的嵌入式系統(tǒng),其中,該死亡時間值依據(jù)公式計算如下TTD-RX=DS/DA其中,該嵌入式系統(tǒng)內每一緩存器是一接收端緩存器,用來自該總線傳送數(shù)據(jù)并且自該媒體接收數(shù)據(jù),TTD-RX是對應該接收端緩存器的該死亡時間值,DS是該接收端先進先出隊列的一數(shù)據(jù)空余量,DA是該數(shù)據(jù)到媒體的媒體抵達率。
10.如權利要求6所述的嵌入式系統(tǒng),其中,該總線是一AHB總線。
全文摘要
一種仲裁方法,應用于一嵌入式系統(tǒng)。該仲裁方法包含有送出多個請求信號給一仲裁器;依據(jù)多個死亡時間值選擇一個裝置來通過一總線去存取數(shù)據(jù),其中被選擇的裝置擁有一最小死亡時間值;當被選擇的裝置通過該總線存取數(shù)據(jù)時,增加被選擇裝置的該死亡時間值;以及當另一裝置的該死亡時間值變成最小時,選擇另一裝置來通過該總線去存取數(shù)據(jù)。每一死亡時間值用來紀錄其對應緩存器的目前狀態(tài)。
文檔編號G06F13/36GK1936871SQ20061014167
公開日2007年3月28日 申請日期2006年10月9日 優(yōu)先權日2006年2月17日
發(fā)明者蔡文宗, 徐榮燦 申請人:威盛電子股份有限公司