專利名稱:總線控制器及數(shù)據(jù)緩沖空間分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種總線控制器及數(shù)據(jù)緩沖空間分配方法,尤指涉及一種應(yīng)用于一總線上的總線控制器及數(shù)據(jù)緩沖空間分配方法。
背景技術(shù):
請(qǐng)參見圖1,其是一外圍組件連接接口總線(Peripheral ComponentInterconnect Bus,簡稱PCI Bus)的功能方框連接示意圖,其中主要是有主控裝置10與目標(biāo)裝置11連接在外圍組件連接接口總線1之上,而主控裝置10可通過外圍組件連接接口總線1向目標(biāo)裝置11發(fā)出一數(shù)據(jù)讀取的請(qǐng)求,用以使目標(biāo)裝置11準(zhǔn)備好相對(duì)應(yīng)的數(shù)據(jù),再通過外圍組件連接接口總線1將相對(duì)應(yīng)的數(shù)據(jù)傳回給主控裝置10進(jìn)行接收。但在傳統(tǒng)的數(shù)據(jù)讀取請(qǐng)求規(guī)格中,并未記載有主控裝置10所需數(shù)據(jù)的總長度,因此目標(biāo)裝置11在此次任務(wù)中,并不知道主控裝置10到底要讀取多長的雙字組(Double Word,簡稱DW),而且目標(biāo)裝置11抓取相對(duì)應(yīng)的數(shù)據(jù)時(shí)通常都會(huì)有時(shí)間上的延遲(latency),因此為了能達(dá)到消除延遲(latency)以達(dá)到連續(xù)傳輸?shù)哪康?,預(yù)抓取方法(pre-fetch method)便應(yīng)運(yùn)而生。
預(yù)抓取方法(pre-fetch method)主要精神在于目標(biāo)裝置11會(huì)事先多抓取一些數(shù)據(jù)并暫時(shí)存放在總線控制器12中的數(shù)據(jù)緩沖器120中,進(jìn)而應(yīng)付主控裝置10后續(xù)的數(shù)據(jù)讀取的請(qǐng)求。舉例來說,假如外圍組件連接接口總線1的規(guī)格可供4個(gè)總線組件裝置(如圖中所示的主控裝置10)進(jìn)行連接,而數(shù)據(jù)緩沖器120中提供8個(gè)籃位(basket)來存放數(shù)據(jù),每個(gè)籃位的容量為8個(gè)四字組(Quadruple Word,簡稱QW)。而為了防止4個(gè)總線組件裝置搶奪數(shù)據(jù)緩沖器120的空間,最簡單的常用作法便是將8個(gè)籃位平均分配給4個(gè)總線組件裝置使用。但是這將導(dǎo)致一個(gè)問題,那就是當(dāng)讀取數(shù)據(jù)的延遲時(shí)間(從主控裝置10發(fā)出一請(qǐng)求“FRAME#”到數(shù)據(jù)傳回“DATAR”)過長,而某一個(gè)主控裝置分配到的存放預(yù)抓取數(shù)據(jù)的空間不敷使用時(shí),該主控裝置就必須停止占用總線而等待清空后才可繼續(xù)抓取新數(shù)據(jù)填入。而這在外圍組件連接接口總線1上同時(shí)連接有三個(gè)或四個(gè)主控裝置時(shí),即使第一個(gè)主控裝置因緩沖空間不足而停止占用總線,仍有后續(xù)排隊(duì)等候的第二個(gè)或第三個(gè)主控裝置來接著使用總線的機(jī)率頗大,因此總線的利用率將可維持在一定水準(zhǔn)。但是,當(dāng)外圍組件連接接口總線1上僅連接有兩個(gè)或一個(gè)主控裝置時(shí),每個(gè)主控裝置仍然僅固定分配到2個(gè)籃位,而當(dāng)有一個(gè)主控裝置因緩沖空間不足而停止占用總線時(shí),僅剩的另一個(gè)主控裝置(甚至沒有另一個(gè)總線組件裝置)正要排隊(duì)等候使用總線的機(jī)率當(dāng)然較上述多個(gè)主控裝置搶用總線的情況要小,而常用手段在此時(shí)只能不知變通地將總線處于待機(jī)(idle)狀態(tài)而使總線利用率大幅下降,嚴(yán)重影響整體系統(tǒng)的效能。而如何改善此一常用手段的缺陷,為發(fā)展本申請(qǐng)的主要目的。
發(fā)明內(nèi)容
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種數(shù)據(jù)緩沖空間分配方法,應(yīng)用于一總線控制器,該總線控制器包含有一數(shù)據(jù)緩沖單元,用以提供數(shù)據(jù)緩沖空間,該數(shù)據(jù)緩沖單元供預(yù)抓取數(shù)據(jù)進(jìn)行存放,該方法包含下列步驟檢測連接于該總線上的總線主控裝置的數(shù)量;若總線主控裝置的數(shù)量大于一默認(rèn)值時(shí)而使總線控制器進(jìn)入一第一分配狀態(tài);若總線主控裝置的數(shù)量不大于默認(rèn)值時(shí),使得總線控制器進(jìn)入一第二分配狀態(tài),而其中第二分配狀態(tài)中每個(gè)總線主控裝置所分配到的數(shù)據(jù)緩沖空間大于該第一分配狀態(tài)中每個(gè)總線主控裝置所分配到的數(shù)據(jù)緩沖空間。
本發(fā)明還提供一種總線控制器,該控制器包含一數(shù)據(jù)緩沖單元,提供存放要傳輸?shù)娇偩€主控裝置的數(shù)據(jù)的緩沖空間;以及一數(shù)據(jù)緩沖控制邏輯電路,連接于數(shù)據(jù)緩沖單元,當(dāng)檢測到連接于總線上的總線主控裝置的數(shù)目大于一默認(rèn)值時(shí),則總線控制器進(jìn)入一第一分配狀態(tài);若連接于總線上的總線主控裝置的數(shù)目不大于一默認(rèn)值時(shí),則總線控制器進(jìn)入一第一分配狀態(tài)。其中第二分配狀態(tài)下每個(gè)總線主控裝置所分配到的數(shù)據(jù)緩沖空間大于該第一分配狀態(tài)下每個(gè)總線主控裝置所分配到的數(shù)據(jù)緩沖空間。
圖1是一外圍組件連接接口總線的功能方框連接示意圖。
圖2是運(yùn)用本申請(qǐng)較佳實(shí)施例方法的一外圍組件連接接口總線的功能方框示意圖。
圖3是本申請(qǐng)的較佳實(shí)施例方法流程圖。
圖4是本申請(qǐng)總線控制器內(nèi)部的一功能方框?qū)嵗疽鈭D。
其中,附圖標(biāo)記說明如下1 外圍組件連接接口總線10 主控裝置11 目標(biāo)裝置12 總線控制器120 數(shù)據(jù)緩沖器2 總線22 總線控制器200 第一主控裝置201 第二主控裝置202 第三主控裝置203 第四主控裝置21 目標(biāo)裝置220 數(shù)據(jù)緩沖單元221 數(shù)據(jù)緩沖控制邏輯電路0 緩沖器1 緩沖器 2 緩沖器3 緩沖器 4 緩沖器5 緩沖器 6 緩沖器7 緩沖器 222 第一多任務(wù)器223 第二多任務(wù)器224 第三多任務(wù)器具體實(shí)施方式
而為能改善上述常用手段的缺陷,本申請(qǐng)發(fā)展出一數(shù)據(jù)緩沖空間分配方法,主要可應(yīng)用如圖2所示的外圍組件連接接口總線功能方框示意圖之中。
總線2與總線控制器22上可提供多個(gè)總線主控裝置來進(jìn)行連接,本例的圖中是以最多數(shù)量-四個(gè)主控裝置(第一主控裝置200、第二主控裝置201、第三主控裝置202以及第四主控裝置203)以及一個(gè)目標(biāo)裝置21來進(jìn)行說明,而該總線控制器22中數(shù)據(jù)緩沖單元220包含有8個(gè)緩沖器,每個(gè)緩沖器的容量為8個(gè)四字組,而分別編號(hào)為籃位0、籃位1、籃位2、籃位3、籃位4、籃位5、籃位6以及籃位7,所述緩沖器存放目標(biāo)裝置21進(jìn)行預(yù)抓取所得的數(shù)據(jù)。
本申請(qǐng)的較佳實(shí)施例方法流程圖則如圖3所示。首先,在計(jì)算機(jī)系統(tǒng)的開機(jī)程序中借助其操作系統(tǒng)對(duì)其總線架構(gòu)進(jìn)行連接組件掃描時(shí),檢測出總線2實(shí)際上連接了幾個(gè)總線主控裝置,然后將檢測到的主控裝置數(shù)量傳送到總線控制器22進(jìn)行比較與后續(xù)處理。當(dāng)檢測到實(shí)際連接的總線主控裝置數(shù)量大于一默認(rèn)值時(shí),便使得總線控制器22進(jìn)入一第一分配狀態(tài),而當(dāng)檢測到實(shí)際連接的總線組件裝置數(shù)量不大于默認(rèn)值時(shí),便使得總線控制器22進(jìn)入一第二分配狀態(tài)。
舉例來說,假設(shè)默認(rèn)值為2時(shí),則如果實(shí)際連接到總線的主控裝置數(shù)目超過2個(gè)的時(shí)候,則總線控制器22進(jìn)入第一分配狀態(tài),反之如果檢測到實(shí)際連接到總線的主控裝置數(shù)目不超過2個(gè)的時(shí)候,則總線控制器22進(jìn)入第二分配狀態(tài)。
而第一分配狀態(tài)下每個(gè)主控裝置所分配到的數(shù)據(jù)緩沖空間小于第二分配狀態(tài)下每個(gè)主控裝置所分配到的數(shù)據(jù)緩沖空間。亦即在第一分配狀態(tài)下每個(gè)主控裝置所分配到的緩沖器數(shù)目比在第二分配狀態(tài)下每個(gè)主控裝置所分配到的緩沖器數(shù)目少。
以本例而言,在第一分配狀態(tài)時(shí),8個(gè)緩沖器是以兩個(gè)一組來分配給4個(gè)主控裝置,而在第二分配狀態(tài)時(shí),8個(gè)緩沖器是以4個(gè)一組來分配給兩個(gè)主控裝置。
如此一來,當(dāng)總線上僅接有兩個(gè)或兩個(gè)以下的主控裝置時(shí),原本閑置的數(shù)據(jù)緩沖空間便可彈性地進(jìn)行重新分配,使得每個(gè)主控裝置可分配到較多的數(shù)據(jù)緩沖空間,如此將可讓外圍組件連接接口總線上僅連接有兩個(gè)或一個(gè)主控裝置時(shí),總線利用率仍可有效維持,進(jìn)而提升整體系統(tǒng)的效能,有效改善常用手段的缺陷,達(dá)成發(fā)展本申請(qǐng)的主要目的。
再請(qǐng)參見圖4,其是上述總線控制器22內(nèi)部的一功能方框?qū)嵗疽鈭D,其主要由一數(shù)據(jù)緩沖控制邏輯電路221、數(shù)據(jù)緩沖單元220(本例包含有8個(gè)緩沖器,每個(gè)緩沖器的容量為8個(gè)四字組分別編號(hào)為籃位0、籃位1、籃位2、籃位3、籃位4、籃位5、籃位6以及籃位7)、第一多任務(wù)器222、第二多任務(wù)器223以及第三多任務(wù)器224所組成。其中該數(shù)據(jù)緩沖控制邏輯電路221便可響應(yīng)操作系統(tǒng)對(duì)其總線架構(gòu)進(jìn)行連接組件掃描時(shí)所檢測出總線2實(shí)際上連接的總線組件裝置的數(shù)量來決定進(jìn)入第一分配狀態(tài)或第二分配狀態(tài)。
在本發(fā)明中,假設(shè)可連接的主控裝置數(shù)量最多為4,而當(dāng)檢測到實(shí)際連接到總線的主控裝置數(shù)量大于2時(shí),使得總線控制器22進(jìn)入第一分配狀態(tài),即8個(gè)緩沖器是以兩個(gè)一組來分配給最多4個(gè)主控裝置(圖中即表示出籃位0、籃位1為第一組,籃位2、籃位3為第二組,籃位4、籃位5為第三組,籃位6以及籃位7為第四組)。而當(dāng)檢測到實(shí)際連接到總線的主控裝置數(shù)量不大于2時(shí),使得總線控制器22進(jìn)入第二分配狀態(tài),即8個(gè)緩沖器是以4個(gè)一組(圖中即表示出籃位0、籃位1、籃位2、籃位3為第一組,籃位4、籃位5、籃位6以及籃位7為第二組)來分配給最多兩個(gè)主控裝置。
本發(fā)明第一實(shí)施例中假設(shè)有四個(gè)總線組件裝置第一主控裝置200、第二主控裝置201、第三主控裝置202以及第四主控裝置203連接至總線2時(shí),根據(jù)本發(fā)明上述的方法,總線控制器22進(jìn)入第一分配狀態(tài)。
當(dāng)處在第一分配狀態(tài)時(shí),第一主控裝置200被分配到籃位(0,1),第二主控裝置201被分配到籃位(2,3),第三主控裝置202被分配到籃位(4,5),第四主控裝置203被分配到籃位(6,7)。因此數(shù)據(jù)緩沖控制邏輯電路221對(duì)第一多任務(wù)器222與第二多任務(wù)器223所分別發(fā)出的第一選擇信號(hào)與第二選擇信號(hào)都維持在低電壓電平(以邏輯“0”代表)。
而數(shù)據(jù)緩沖控制邏輯電路221對(duì)第三多任務(wù)器224發(fā)出第三選擇信號(hào),是用以選擇哪一個(gè)主控裝置擁有總線的使用權(quán)。在本實(shí)施例中,假設(shè)當(dāng)?shù)谌x擇信號(hào)為00則表示第一主控裝置200擁有總線的使用權(quán),當(dāng)?shù)谌x擇信號(hào)為01則表示第二主控裝置201擁有總線的使用權(quán);當(dāng)?shù)谌x擇信號(hào)為10則表示第三主控裝置202擁有總線的使用權(quán);當(dāng)?shù)谌x擇信號(hào)為11則表示第四主控裝置203擁有總線的使用權(quán)。
如此一來,第一主控裝置200、第二主控裝置201、第三主控裝置202以及第四主控裝置203將平均分配到籃位(0,1)、籃位(2,3)、籃位(4,5)以及籃位(6,7)的緩沖器。
在本發(fā)明實(shí)施例中,若是連接有三個(gè)主控裝置時(shí),將僅會(huì)有兩個(gè)緩沖器被閑置,但若連接有兩個(gè)主控裝置或一個(gè)主控裝置時(shí),本例將進(jìn)入第二分配狀態(tài)。
本發(fā)明第二實(shí)施例中假設(shè)只有二個(gè)主控裝置第一主控裝置200以及第二主控裝置201連接至總線2時(shí),根據(jù)本發(fā)明上述的方法,數(shù)據(jù)緩沖控制邏輯電路221使得總線控制器22進(jìn)入第二分配狀態(tài)。
當(dāng)處在第二分配狀態(tài)時(shí),第一主控裝置200被分配到籃位(0,1)以及籃位(4,5),而第二主控裝置201被分配到籃位(2,3)以及籃位(6,7)。因此數(shù)據(jù)緩沖控制邏輯電路221分別發(fā)出第一選擇信號(hào)與第二選擇信號(hào)至第一多任務(wù)器222與第二多任務(wù)器223。假設(shè)第一選擇信號(hào)為“0”時(shí),便將籃位(0,1)中的數(shù)據(jù)送到第一主控裝置200;第一選擇信號(hào)為“1”時(shí),將籃位(4,5)中的數(shù)據(jù)送到第一主控裝置200。第二選擇信號(hào)為“0”時(shí),將籃位(2,3)中的數(shù)據(jù)送到第二主控裝置201;第二選擇信號(hào)為“1”時(shí),則將籃位(6,7)中的數(shù)據(jù)送到第二主控裝置201。
另外在本實(shí)施例中,假設(shè)當(dāng)?shù)谌x擇信號(hào)為00則表示第一主控裝置200擁有總線的使用權(quán),當(dāng)?shù)谌x擇信號(hào)為01則表示第二主控裝置201擁有總線的使用權(quán)。
如此一來,第一主控裝置200以及第二主控裝置201將平均分配到籃位,亦即第一主控裝置200可使用籃位(0,1)以及籃位(4,5)的緩沖器,而第二主控裝置201可使用籃位(2,3)、籃位(6,7)的緩沖器。
在本發(fā)明中該緩沖器的數(shù)目為可連接至該總線的該主控裝置最大數(shù)目的整數(shù)倍。
當(dāng)然,上述例子僅是為清楚說明本申請(qǐng)的技術(shù)手段,因此并不限定其主控裝置與緩沖空間單位的數(shù)目,但所述緩沖空間單位的數(shù)量通常為該總線上可連接的總線組件裝置的最大數(shù)量的整數(shù)倍。而也不一定是要分成兩種分配狀態(tài),三個(gè)或更多也是可行的,只需增加多任務(wù)器數(shù)目及選擇信號(hào)的變化即可,故在此不與贅述。
綜上所述可知,本申請(qǐng)可有效增加總線利用率,進(jìn)而達(dá)成發(fā)展本申請(qǐng)的主要目的。因此凡其它未脫離本發(fā)明所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在本申請(qǐng)的中請(qǐng)專利范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)緩沖空間的分配方法,用以分配連接到一外圍裝置連接接口總線上的主控裝置所可以使用的緩沖空間,該方法包含有檢測連接至該外圍裝置連接接口總線上的主控裝置的數(shù)目;其中若所述主控裝置的數(shù)目大于一默認(rèn)值,則使用一第一分配狀態(tài)配置該數(shù)據(jù)緩沖空間給所述主控裝置;若所述主控裝置的數(shù)目不大于該默認(rèn)值,則使用一第二分配狀態(tài)配置該數(shù)據(jù)緩沖空間給所述主控裝置。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩沖空間的分配方法,其中使用第一分配狀態(tài)時(shí)所述主控裝置可以使用的數(shù)據(jù)緩沖空間小于使用第二分配狀態(tài)時(shí)所述主控裝置可以使用的數(shù)據(jù)緩沖空間。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩沖空間的分配方法,其中可以于計(jì)算機(jī)系統(tǒng)開機(jī)時(shí)由操作系統(tǒng)檢測連接至該外圍裝置連接接口總線的主控裝置的數(shù)目。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)緩沖空間的分配方法,其中該方法可以用于一總線控制器中。
5.一種總線控制裝置,用以動(dòng)態(tài)分配數(shù)據(jù)緩沖空間給連接至一外圍裝置連接接口總線上的所有主控裝置,該總線控制包含有一數(shù)據(jù)緩沖單元,用以提供數(shù)據(jù)緩沖空間;一數(shù)據(jù)緩沖控制邏輯電路,連接至該數(shù)據(jù)緩沖單元,用以根據(jù)連接至該外圍裝置連接接口總線的主控裝置數(shù)目決定該總線控制裝置為一第一分配狀態(tài)或一第二分配狀態(tài),其中當(dāng)連接至該外圍裝置連接接口總線的主控裝置數(shù)目超過一默認(rèn)值時(shí),則使用該第一分配狀態(tài)分配數(shù)據(jù)緩沖空間;其中當(dāng)連接至該外圍裝置連接接口總線的主控裝置數(shù)目不超過該默認(rèn)值時(shí),則使用該第二分配狀態(tài)分配數(shù)據(jù)緩沖空間。
6.根據(jù)權(quán)利要求5所述的總線控制裝置,其中該數(shù)據(jù)緩沖單元包含有多個(gè)緩沖器,該數(shù)據(jù)緩沖控制邏輯電路根據(jù)連接至該外圍裝置連接接口總線上的主控裝置的數(shù)目,將所述多個(gè)緩沖器分配給所述主控裝置。
7.根據(jù)權(quán)利要求6所述的總線控制裝置,其中該總線控制器還包含有多個(gè)多任務(wù)器,其連接至該數(shù)據(jù)緩沖單元,該數(shù)據(jù)緩沖控制邏輯電路分別對(duì)所述多個(gè)多任務(wù)器發(fā)出選擇信號(hào),用以選擇所述主控裝置所可以使用的緩沖器,并分配該數(shù)據(jù)緩沖空間給連接至該外圍裝置連接接口總線的主控裝置。
8.根據(jù)權(quán)利要求6所述的總線控制裝置,其中所述主控裝置于該第一分配狀態(tài)下所分配到的緩沖器數(shù)目小于該第二分配狀態(tài)下所可以分配到的緩沖器數(shù)目。
9.根據(jù)權(quán)利要求6所述的總線控制裝置,其中所述緩沖器的數(shù)目為可以連接至該總線的主控裝置最大數(shù)目的整數(shù)倍。
10.根據(jù)權(quán)利要求6所述的總線控制裝置,其中可以于計(jì)算機(jī)系統(tǒng)開機(jī)時(shí)由操作系統(tǒng)檢測連接至該總線的主控裝置的數(shù)目。
全文摘要
本發(fā)明涉及一種總線控制器及數(shù)據(jù)緩沖空間分配方法,其應(yīng)用于控制一總線,該總線可供多個(gè)主控裝置進(jìn)行信號(hào)連接,該控制器包含一數(shù)據(jù)緩沖單元以及一數(shù)據(jù)緩沖控制邏輯電路。而該方法包含檢測連接于該總線上的總線主控裝置的數(shù)量,若主控裝置的數(shù)量大于一默認(rèn)值時(shí),則數(shù)據(jù)緩沖控制邏輯電路使總線控制器進(jìn)入一第一分配狀態(tài);反之若主控裝置的數(shù)量不大于一默認(rèn)值時(shí),則數(shù)據(jù)緩沖控制邏輯電路使總線控制器進(jìn)入一第二分配狀態(tài)。其中第二分配狀態(tài)中每個(gè)主控裝置所分配到的數(shù)據(jù)緩沖空間大于第一分配狀態(tài)中每個(gè)主控裝置所分配到的數(shù)據(jù)緩沖空間。
文檔編號(hào)G06F12/08GK1744060SQ200510113758
公開日2006年3月8日 申請(qǐng)日期2005年10月14日 優(yōu)先權(quán)日2005年10月14日
發(fā)明者賴瑾, 蘇俊源, 鄭淵綜 申請(qǐng)人:威盛電子股份有限公司