專利名稱:緩沖區(qū)控制裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種緩沖區(qū)控制方法與緩沖區(qū)控制裝置,特別關(guān)于一種用于包總線的緩沖區(qū)控制方法與緩沖區(qū)控制裝置。
背景技術(shù):
由于計(jì)算機(jī)系統(tǒng)中的芯片處理速度與效率越來越快,連接各芯片的總線的傳輸速度也必須提升,如此方可有效提升計(jì)算機(jī)系統(tǒng)運(yùn)作的效能。以計(jì)算機(jī)系統(tǒng)中的中央處理器來說,其工作頻率已高達(dá)數(shù)GHz,為了最佳化中央處理器的效能,中央處理器與系統(tǒng)芯片組之間的前端總線必須有足夠高的數(shù)據(jù)傳輸速度,使得中央處理器有足夠多的數(shù)據(jù)來處理而經(jīng)常保持于運(yùn)算的狀態(tài)。
圖1是已知計(jì)算機(jī)系統(tǒng)1內(nèi)中央處理器11與系統(tǒng)芯片組12的一區(qū)塊圖。如圖1所示,一前端總線13是電性連接于中央處理器11與系統(tǒng)芯片組12之間以供數(shù)據(jù)傳輸之用,其中前端總線13是可為一超傳輸總線(HyperTransport Bus,HT Bus)。超傳輸總線的特點(diǎn)在于其是操作于低工作電壓并以差動(dòng)信號(hào)處理來傳輸數(shù)據(jù),且其傳輸協(xié)議是以包為基礎(chǔ),借以提供中央處理器11與系統(tǒng)芯片組12之間高速、高效能及點(diǎn)對(duì)點(diǎn)連接的功能。
包是主要分為一表頭(Header)以及一數(shù)據(jù)包(datapackage)。表頭內(nèi)具有寫入指令(write command)或是讀取回應(yīng)指令(read response command),而表頭之后是跟隨有數(shù)據(jù)包。通常,表頭與數(shù)據(jù)包的長(zhǎng)度皆為4位組的倍數(shù),其中表頭的長(zhǎng)度是為4位組(1DW)或是8位組(1QW),數(shù)據(jù)包的長(zhǎng)度是為4位組(1DW)至64位組(8QW)。由于包的格式簡(jiǎn)易且數(shù)據(jù)包并沒有伴隨著過多附加的傳輸框架,故可提升數(shù)據(jù)傳輸?shù)男省?br>
圖2為圖1的系統(tǒng)芯片組12中緩沖區(qū)120的示意圖。緩沖區(qū)120包括有指令佇存區(qū)121與數(shù)據(jù)緩沖區(qū)122,其中指令佇存區(qū)121與數(shù)據(jù)緩沖區(qū)122的欄位互相對(duì)應(yīng)。
如圖2所示,指令佇存區(qū)121具有4個(gè)用以儲(chǔ)存表頭內(nèi)的指令儲(chǔ)存欄位#11~#14。數(shù)據(jù)緩沖區(qū)122具有4個(gè)用以儲(chǔ)存數(shù)據(jù)包的儲(chǔ)存欄位#21~#24。而指令佇存區(qū)121的儲(chǔ)存欄位#11~#14分別對(duì)應(yīng)數(shù)據(jù)緩沖區(qū)122的儲(chǔ)存欄位#21~#24。數(shù)據(jù)緩沖區(qū)122的各欄位#21~#24的大小是與超傳輸總線13的最大數(shù)據(jù)包長(zhǎng)度一致,亦即為8QW(64位組),以便儲(chǔ)存超傳輸總線13傳送來的數(shù)據(jù)。
假設(shè)欄位#11~#14分別儲(chǔ)存包PAK1~PAK4的表頭,則欄位#21~#24分別儲(chǔ)存包PAK1~PAK4的數(shù)據(jù)包。
圖3是圖1的系統(tǒng)芯片組12的緩沖區(qū)控制方法的一流程圖。
如圖3所示,首先,假設(shè)緩沖區(qū)120的初始狀態(tài)為空,于步驟S01中,系統(tǒng)芯片組12輸出緩沖區(qū)釋放信息(buffer release),借以告知可以傳送包至緩沖區(qū)120。接著,于步驟S02中,系統(tǒng)芯片組12從超傳輸總線13接收到多個(gè)包,并分別將每個(gè)包的表頭與數(shù)據(jù)包儲(chǔ)存到對(duì)應(yīng)的指令佇存區(qū)121與數(shù)據(jù)緩沖區(qū)122。于步驟S03中,系統(tǒng)芯片組12將包自緩沖區(qū)120移除以進(jìn)行后續(xù)的處理。于步驟S04中,當(dāng)緩沖區(qū)120有剩余空間時(shí),系統(tǒng)芯片組12再輸出緩沖區(qū)釋放信息,借以告知可再次傳送包至緩沖區(qū)120。
以下將舉例說明上述的流程,請(qǐng)參考圖1,圖2以及圖3。
假設(shè)緩沖區(qū)120的指令佇存區(qū)121有4個(gè)欄位以及數(shù)據(jù)緩沖區(qū)有4個(gè)分別為8QW的欄位。假設(shè)初始時(shí),緩沖區(qū)120沒有儲(chǔ)存任何的包。首先,系統(tǒng)芯片組12輸出緩沖區(qū)釋放信息用以告知中央處理器11可傳送包。接著系統(tǒng)芯片組12收到由中央處理器11傳送的4組包PAK1~PAK4,并且分別將每一個(gè)包PAK1~PAK4的表頭與數(shù)據(jù)包分別儲(chǔ)存于指令佇存區(qū)121與數(shù)據(jù)緩沖區(qū)122的相應(yīng)欄位中(如圖2所示)。假設(shè)自緩沖區(qū)120中移除包PAK1以進(jìn)行后續(xù)的處理,此時(shí)系統(tǒng)芯片組12判斷緩沖區(qū)120有剩余的空間,因此會(huì)再次輸出的緩沖區(qū)釋放信息至中央處理器11以便接收下一個(gè)包。
雖然,在以上的架構(gòu)中,假設(shè)每個(gè)包的數(shù)據(jù)長(zhǎng)度皆為2QW,亦即數(shù)據(jù)緩沖區(qū)122的每一個(gè)欄位#21~#24實(shí)際上僅有2QW儲(chǔ)存有數(shù)據(jù),其剩余的6QW并沒有被利用到。由于系統(tǒng)芯片組12僅單純地判斷數(shù)據(jù)緩沖區(qū)122是否有空余欄位,導(dǎo)致其必須等待緩沖區(qū)120的包被移除之后,才能夠儲(chǔ)存后續(xù)的包。因而,傳統(tǒng)架構(gòu)中的緩沖區(qū)120的儲(chǔ)存效率較差。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠提高緩沖區(qū)的包儲(chǔ)存效率的緩沖區(qū)控制方法與緩沖區(qū)控制裝置。
本發(fā)明所述的緩沖區(qū)控制方法是用以控制一緩沖區(qū)的包儲(chǔ)存,其中該緩沖區(qū)包括有一數(shù)據(jù)緩沖區(qū)以及一指令佇存區(qū)。本發(fā)明的緩沖區(qū)控制方法包含有計(jì)算該數(shù)據(jù)緩沖區(qū)可儲(chǔ)存的包數(shù);傳送多筆該包其中之一至該緩沖區(qū),并根據(jù)該緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;以及比較該計(jì)數(shù)值與一最大數(shù)據(jù)包長(zhǎng)度,判斷是否增加該緩沖區(qū)可儲(chǔ)存的包數(shù)。
本發(fā)明所述的緩沖區(qū)控制裝置,置于一集成電路中用以控制該集成電路的包儲(chǔ)存,其包含有一緩沖區(qū)以及一緩沖區(qū)控制器。緩沖區(qū)是連接至一包總線用以接收由該包總線傳送的至少一包,其包含有一指令佇存區(qū)以及一數(shù)據(jù)緩沖區(qū)。緩沖區(qū)控制器是連接至該緩沖區(qū),計(jì)算該緩沖區(qū)可儲(chǔ)存的包數(shù),并根據(jù)該緩沖區(qū)的該包存取情形輸出一計(jì)數(shù)值。計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量。根據(jù)該計(jì)數(shù)值與一最大包數(shù)據(jù)長(zhǎng)度比較的結(jié)果,判斷是否使得該數(shù)據(jù)緩沖區(qū)可儲(chǔ)存的包數(shù)增加。
本發(fā)明所述的緩沖區(qū)控制方法是用以控制一緩沖區(qū)的包儲(chǔ)存,其包含有傳送一包至該緩沖區(qū);根據(jù)該緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;以及比較該計(jì)數(shù)值與一最大數(shù)據(jù)包長(zhǎng)度,判斷是否傳送下一筆包至該緩沖區(qū)。
本發(fā)明所述的緩沖區(qū)控制裝置及方法,可確實(shí)反應(yīng)數(shù)據(jù)緩沖區(qū)的儲(chǔ)存情況以減少數(shù)據(jù)緩沖區(qū)內(nèi)閑置的空間,達(dá)到了提升數(shù)據(jù)緩沖區(qū)的儲(chǔ)存效率的功效。
圖1是顯示已知計(jì)算機(jī)系統(tǒng)內(nèi)中央處理器與系統(tǒng)芯片組的一區(qū)塊圖;圖2是顯示已知計(jì)算機(jī)系統(tǒng)中緩沖區(qū)的一示意圖;圖3是顯示已知計(jì)算機(jī)系統(tǒng)中系統(tǒng)芯片組的緩沖區(qū)控制方法的流程圖;圖4是顯示依本發(fā)明較佳實(shí)施例的計(jì)算機(jī)系統(tǒng)的區(qū)塊圖;圖5是顯示依本發(fā)明較佳實(shí)施例的緩沖區(qū)控制裝置的緩沖區(qū)的示意圖;圖6是顯示依本發(fā)明第一實(shí)施例的緩沖區(qū)控制方法的流程圖;圖7是顯示依本發(fā)明第二實(shí)施例的緩沖區(qū)控制方法的流程圖;圖8是顯示依本發(fā)明第二實(shí)施例的緩沖區(qū)控制方法中集成電路間溝通的一示意圖;圖9是顯示依本發(fā)明第二實(shí)施例的緩沖區(qū)控制裝置的緩沖區(qū)的示意圖。
具體實(shí)施例方式
以下將參照相關(guān)圖式,說明依本發(fā)明較佳實(shí)施例的用于包總線的緩沖區(qū)控制方法與緩沖區(qū)控制裝置。
請(qǐng)參閱圖4及圖5,依本發(fā)明較佳實(shí)施例的緩沖區(qū)控制裝置(未標(biāo)號(hào))是置于一集成電路2中,其包含一緩沖區(qū)20及一緩沖區(qū)控制器21。集成電路2是透過一包總線3電性連接另一集成電路4。其中緩沖區(qū)20包含有一指令佇存區(qū)22以及一數(shù)據(jù)緩沖區(qū)23。緩沖區(qū)控制器21包含一計(jì)數(shù)器211與一比較器212。
集成電路4是透過包總線3分別傳輸包至集成電路2的緩沖區(qū)20。其中包的表頭會(huì)被儲(chǔ)存于指令佇存區(qū)22,而包的數(shù)據(jù)則會(huì)被儲(chǔ)存于數(shù)據(jù)緩沖區(qū)23。計(jì)數(shù)器211是用以計(jì)數(shù)一計(jì)數(shù)值VAL并傳送至比較器212。比較器212比較計(jì)數(shù)值VAL與包總線的最大數(shù)據(jù)包長(zhǎng)度Dmax,借以判斷數(shù)據(jù)緩沖區(qū)23是否有足夠的空間儲(chǔ)存額外的數(shù)據(jù)包,借以輸出釋放信息至包總線。
在本發(fā)明中,數(shù)據(jù)緩沖區(qū)23不分欄位并以環(huán)形緩沖區(qū)的形式依序儲(chǔ)存數(shù)據(jù)包。因此為了確保表頭以及數(shù)據(jù)包能夠完整地儲(chǔ)存于指令佇存區(qū)22以及數(shù)據(jù)緩沖區(qū)23,指令佇存區(qū)22所具有的欄位數(shù)是大于數(shù)據(jù)緩沖區(qū)的容量除以最大數(shù)據(jù)包長(zhǎng)度的商。
舉例來說,若假設(shè)數(shù)據(jù)緩沖區(qū)23的大小為32QW,而最大數(shù)據(jù)長(zhǎng)度Dmax為8QW,因此指令佇存區(qū)22的欄位必須大于4(32QW/8QW=4QW)。
在本實(shí)施例中,假設(shè)指令佇存區(qū)22是具有8個(gè)欄位#31~#38借以儲(chǔ)存表頭內(nèi)的指令,每一欄位#31~#38的大小為1QW。假設(shè)數(shù)據(jù)緩沖區(qū)23的大小為32QW,最大數(shù)據(jù)長(zhǎng)度Dmax是8QW。
圖6為本發(fā)明第一實(shí)施例的緩沖區(qū)控制方法的流程圖。緩沖區(qū)控制方法是包含下列步驟首先,緩沖區(qū)控制裝置輸出緩沖區(qū)釋放信息(buffer release)借以告知可以傳送一包至緩沖區(qū)20(步驟S601)。接著,集成電路2接收由包總線3所傳送過來的包并將包儲(chǔ)存于緩沖區(qū)20中(步驟S602)。接著,計(jì)數(shù)器211根據(jù)緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值VAL(步驟S603)。其中,計(jì)數(shù)值VAL表示數(shù)據(jù)緩沖區(qū)23的剩余存儲(chǔ)容量。之后,比較器212比較計(jì)數(shù)值VAL是否大于或等于最大數(shù)據(jù)包長(zhǎng)度Dmax(步驟S604)用以判斷是否可以傳送下一筆包到緩沖區(qū)20中。若計(jì)數(shù)值VAL小于最大數(shù)據(jù)包長(zhǎng)度Dmax,則停止接收包(步驟S605)。若計(jì)數(shù)值VAL大于或等于最大數(shù)據(jù)包長(zhǎng)度Dmax,則回步驟S601,再次輸出緩沖區(qū)釋放信息,用以告知可傳送下一筆包。
圖7為本發(fā)明第二實(shí)施例的緩沖區(qū)控制的流程圖。緩沖區(qū)控制方法是包含下列步驟首先,緩沖區(qū)控制裝置根據(jù)數(shù)據(jù)緩沖區(qū)23的容量大小,指令佇存區(qū)21的剩余欄位以及最大數(shù)據(jù)長(zhǎng)度Dmax計(jì)算緩沖區(qū)20可接收N個(gè)包PAK1~PAKN,并輸出緩沖區(qū)釋放信息(步驟S701)。傳送包PAK中的其中一筆包PAKM至緩沖區(qū)20(步驟S702)。計(jì)數(shù)器211根據(jù)緩沖區(qū)存取狀態(tài)更新一計(jì)數(shù)值VAL(步驟S703)。其中計(jì)數(shù)值表示數(shù)據(jù)緩沖區(qū)23的剩余存儲(chǔ)容量。比較器212判斷計(jì)數(shù)值VAL是否大于等于最大數(shù)據(jù)包長(zhǎng)度Dmax(步驟S704),以判斷是否增加緩沖區(qū)20可存儲(chǔ)的包數(shù)。若計(jì)數(shù)值VAL小于最大數(shù)據(jù)包長(zhǎng)度Dmax,則跳回步驟S702,繼續(xù)傳送下一筆包PAKM+1至緩沖區(qū)20。若計(jì)數(shù)值VAL大于等于最大數(shù)據(jù)包長(zhǎng)度Dmax,則判斷指令佇存區(qū)22是否還有剩余的欄位(步驟S705)。若沒有,則跳回步驟S702,繼續(xù)傳送下一筆包PAKM+1至緩沖區(qū)20。若有,則再次輸出緩沖區(qū)釋放信息,使得緩沖區(qū)20可接收的包增加,亦即緩沖區(qū)20可接收的包為PAK1~PAKN+1(步驟S706)。接著,再跳至步驟S703更新其計(jì)數(shù)值VAL。
在包總線3傳送一筆包至緩沖區(qū)20之后,計(jì)數(shù)值VAL則根據(jù)最大數(shù)據(jù)包長(zhǎng)度Dmax,所收到的包數(shù)據(jù)長(zhǎng)度DA,所移除的包數(shù)據(jù)長(zhǎng)度DA’,以及一數(shù)值CNT更新。其中若計(jì)數(shù)值VAL小于最大數(shù)據(jù)包長(zhǎng)度Dmax,則數(shù)值CNT為前一筆包的計(jì)數(shù)值VAL;若計(jì)數(shù)值VAL大于等于最大數(shù)據(jù)包長(zhǎng)度Dmax時(shí),數(shù)值CNT為前一筆包的計(jì)數(shù)值減去最大數(shù)據(jù)包長(zhǎng)度。其中,當(dāng)接收的包存儲(chǔ)至緩沖區(qū)20,且緩沖區(qū)20內(nèi)沒有包被移除時(shí),計(jì)數(shù)值VAL=Dmax-DA+CNT。當(dāng)緩沖區(qū)有一包被移除時(shí),計(jì)數(shù)值VAL=CNT+DA’。
請(qǐng)參考圖5,圖8以及圖9為例。舉例來說,假設(shè)指令佇存區(qū)22具有8個(gè)欄位#31~#38借以儲(chǔ)存表頭內(nèi)的指令,數(shù)據(jù)緩沖區(qū)23的大小為32QW,最大數(shù)據(jù)長(zhǎng)度Dmax為8QW。
假設(shè)初始狀態(tài)時(shí)緩沖區(qū)20為空,緩沖區(qū)控制裝置判斷緩沖區(qū)可接收4個(gè)包PAK1~PAK4,因此輸出緩沖區(qū)釋放信息要求集成電路4依序送出4個(gè)包。
當(dāng)收到第一個(gè)包PAK1時(shí),此時(shí)假設(shè)PAK1的數(shù)據(jù)長(zhǎng)度DA1為2QW,則計(jì)數(shù)值VAL=Dmax(8QW)-DA1(2QW)+CNT(0QW)=6QW。此時(shí)VAL(6QW)小于Dmax(8QW),所以接著傳送第二筆包PAK2。假設(shè)PAK2的數(shù)據(jù)長(zhǎng)度DA2為2QW,則計(jì)數(shù)值VAL=Dmax(8QW)-DA2(2QW)+CNT(6QW)=12QW。此時(shí)計(jì)數(shù)值VAL(12QW)大于最大數(shù)據(jù)包長(zhǎng)度Dmax(8QW),且此時(shí)指令佇存區(qū)22尚有6個(gè)欄位是空的,因此緩沖區(qū)控制裝置輸出緩沖區(qū)釋放信息,用以告知可再多傳送一個(gè)包PAK3至緩沖區(qū)20中,此時(shí)數(shù)值CNT=VAL(12QW)-Dmax(8QW)=4QW。接著傳送第三筆包PAK3到緩沖區(qū)20,假設(shè)PAK3的數(shù)據(jù)長(zhǎng)度DA3為2QW,此時(shí)計(jì)數(shù)值VAL=Dmax(8QW)-DA3(2QW)+CNT(4QW)=10QW。此時(shí)計(jì)數(shù)值VAL(10QW)大于最大數(shù)據(jù)包長(zhǎng)度Dmax(8QW),且此時(shí)指令佇存區(qū)22尚有5個(gè)欄位是空的,因此緩沖區(qū)控制裝置輸出緩沖區(qū)釋放信息,用以告知可再多傳送一個(gè)包PAK4至緩沖區(qū)20中,此時(shí)數(shù)值CNT=VAL(10QW)-Dmax(8QW)=2QW。接著傳送第四筆包PAK4到緩沖區(qū)20,假設(shè)PAK4的數(shù)據(jù)長(zhǎng)度DA4為2QW,此時(shí)計(jì)數(shù)值VAL=Dmax(8QW)-DA4(2QW)+CNT(2QW)=8QW。此時(shí)計(jì)數(shù)值VAL(8QW)等于最大數(shù)據(jù)包長(zhǎng)度Dmax(8QW),且此時(shí)指令佇存區(qū)22尚有4個(gè)欄位是空的,因此緩沖區(qū)控制裝置輸出緩沖區(qū)釋放信息,用以告知可再多傳送一個(gè)包PAK5至緩沖區(qū)20中,此時(shí)數(shù)值CNT=VAL(8QW)-Dmax(8QW)=0QW。接著傳送第五筆包PAK5到緩沖區(qū)20,假設(shè)PAK5的數(shù)據(jù)長(zhǎng)度DA5為8QW,此時(shí)計(jì)數(shù)值VAL=Dmax(8QW)-DA5(8QW)+CNT(0QW)=0QW。此時(shí)VAL(0QW)小于Dmax(8QW),所以接著傳送第六筆包PAK6。假設(shè)PAK6的數(shù)據(jù)長(zhǎng)度DA6為8QW,此時(shí)計(jì)數(shù)值VAL=Dmax(8QW)-DA6(8QW)+CNT(0QW)=0QW。此時(shí)VAL(0QW)小于Dmax(8QW),所以接著傳送第七筆包PAK7,假設(shè)PAK7的數(shù)據(jù)長(zhǎng)度DA7為2QW,則計(jì)數(shù)值VAL=Dmax(8QW)-DA7(2QW)+CNT(0QW)=6QW。若此時(shí)包PAK1自緩沖區(qū)20中移除,則計(jì)數(shù)值VAL=CNT(6QW)+DA1’(2QW)=8QW。此時(shí)計(jì)數(shù)值VAL(8QW)等于最大數(shù)據(jù)包長(zhǎng)度Dmax(8QW),且此時(shí)指令佇存區(qū)22尚有1個(gè)欄位是空的,因此緩沖區(qū)控制裝置輸出緩沖區(qū)釋放信息。詳細(xì)的緩沖區(qū)儲(chǔ)存情形如圖5以及圖9所示。
本發(fā)明中包總線3是可實(shí)現(xiàn)為超傳輸總線,其最大數(shù)據(jù)包長(zhǎng)度是為64位組。集成電路2以及集成電路4是可分別實(shí)現(xiàn)為系統(tǒng)芯片組以及中央處理器。
綜上所述,因依本發(fā)明的緩沖區(qū)控制方法與緩沖區(qū)控制裝置是判斷數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量是否足以儲(chǔ)存另一數(shù)據(jù)包以輸出緩沖區(qū)釋放信息,因而可確實(shí)反應(yīng)數(shù)據(jù)緩沖區(qū)的儲(chǔ)存情況以減少數(shù)據(jù)緩沖區(qū)內(nèi)閑置的空間,借以達(dá)到提升數(shù)據(jù)緩沖區(qū)的儲(chǔ)存效率的功效。
以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書所界定的范圍為準(zhǔn)。
附圖中符號(hào)的簡(jiǎn)單說明如下1計(jì)算機(jī)系統(tǒng)11中央處理器12系統(tǒng)芯片組120緩沖區(qū)121指令佇存區(qū)122數(shù)據(jù)緩沖區(qū)13前端總線2、4集成電路20緩沖區(qū)21緩沖區(qū)控制器211計(jì)數(shù)器212比較器22指令佇存區(qū)23數(shù)據(jù)緩沖區(qū)3包總線#11-#14、#21-#24、#31-#38儲(chǔ)存欄位PAK1-PAK7包VAL計(jì)數(shù)值S01-S04、S601-S605、S701-S706緩沖區(qū)控制方法的步驟
權(quán)利要求
1.一種緩沖區(qū)控制方法,其特征在于,該緩沖區(qū)控制方法用以控制一緩沖區(qū)的包儲(chǔ)存,其中該緩沖區(qū)包括有一數(shù)據(jù)緩沖區(qū)以及一指令佇存區(qū),該方法包含有計(jì)算該數(shù)據(jù)緩沖區(qū)可儲(chǔ)存的包數(shù);傳送多筆該包其中之一至該緩沖區(qū),并根據(jù)該緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;以及比較該計(jì)數(shù)值與一最大數(shù)據(jù)包長(zhǎng)度,判斷是否增加該緩沖區(qū)可儲(chǔ)存的包數(shù)。
2.根據(jù)權(quán)利要求1所述的緩沖區(qū)控制方法,其特征在于,輸出一緩沖區(qū)釋放信息以傳送該包至該緩沖區(qū)。
3.根據(jù)權(quán)利要求1所述的緩沖區(qū)控制方法,其特征在于,根據(jù)該數(shù)據(jù)緩沖區(qū)大小,該指令佇存區(qū)的剩余欄位數(shù)以及該最大數(shù)據(jù)長(zhǎng)度計(jì)算該緩沖區(qū)可儲(chǔ)存的包數(shù)。
4.根據(jù)權(quán)利要求1所述的緩沖區(qū)控制方法,其特征在于,若該計(jì)數(shù)值大于或等于該最大數(shù)據(jù)包長(zhǎng)度,且該指令佇存區(qū)有剩余的欄位,則使得該緩沖區(qū)可儲(chǔ)存的包數(shù)增加,并更新該計(jì)數(shù)值。
5.根據(jù)權(quán)利要求4所述的緩沖區(qū)控制方法,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包自該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該緩沖區(qū)可儲(chǔ)存的該包數(shù)增加時(shí),則該數(shù)值為前一筆包的計(jì)數(shù)值減去最大數(shù)據(jù)包長(zhǎng)度。
6.根據(jù)權(quán)利要求1所述的緩沖區(qū)控制方法,其特征在于,若該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,或該指令佇存區(qū)沒有剩余的欄位,則繼續(xù)傳送多筆該包的下一筆至該緩沖區(qū),并更新該計(jì)數(shù)值。
7.根據(jù)權(quán)利要求6所述的緩沖區(qū)控制方法,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包至該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,則該數(shù)值為前一筆包的計(jì)數(shù)值。
8.根據(jù)權(quán)利要求1所述的緩沖區(qū)控制方法,其特征在于,該指令佇存區(qū)的欄位數(shù)大于該數(shù)據(jù)緩沖區(qū)的容量除以該最大數(shù)據(jù)包長(zhǎng)度的商。
9.一種緩沖區(qū)控制裝置,其特征在于,該緩沖區(qū)控制裝置置于一集成電路中用以控制該集成電路的包儲(chǔ)存,該裝置包含有一緩沖區(qū),連接至一包總線用以接收由該包總線傳送的至少一包,其中該緩沖區(qū)包含有一指令佇存區(qū)以及一數(shù)據(jù)緩沖區(qū);以及一緩沖區(qū)控制器,連接至該緩沖區(qū),計(jì)算該緩沖區(qū)可儲(chǔ)存的包數(shù),并根據(jù)該緩沖區(qū)的該包存取情形輸出一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;其中根據(jù)該計(jì)數(shù)值與一最大包數(shù)據(jù)長(zhǎng)度比較的結(jié)果,判斷是否使得該數(shù)據(jù)緩沖區(qū)可儲(chǔ)存的包數(shù)增加。
10.根據(jù)權(quán)利要求9所述的緩沖區(qū)控制裝置,其特征在于,該緩沖控制器包含有一計(jì)數(shù)器,用以計(jì)算該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量并輸出該計(jì)數(shù)值;以及一比較器,用以比較該計(jì)數(shù)值與該最大包數(shù)據(jù)長(zhǎng)度。
11.根據(jù)權(quán)利要求9所述的緩沖區(qū)控制裝置,其特征在于,根據(jù)該數(shù)據(jù)緩沖區(qū)大小,該指令佇存區(qū)的剩余欄位數(shù)以及該最大數(shù)據(jù)長(zhǎng)度計(jì)算該緩沖區(qū)可儲(chǔ)存的包數(shù)。
12.根據(jù)權(quán)利要求9所述的緩沖區(qū)控制裝置,其特征在于,若該計(jì)數(shù)值大于或等于該最大包數(shù)據(jù)長(zhǎng)度,且該指令佇存區(qū)有剩余的欄位,則使得該緩沖區(qū)可儲(chǔ)存的包數(shù)增加,并更新該計(jì)數(shù)值。
13.根據(jù)權(quán)利要求12所述的緩沖區(qū)控制裝置,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包至該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該計(jì)數(shù)值大于或等于該最大數(shù)據(jù)包長(zhǎng)度,亦即該緩沖區(qū)可儲(chǔ)存的該包數(shù)增加時(shí),則該數(shù)值為前一筆包的計(jì)數(shù)值減去最大數(shù)據(jù)包長(zhǎng)度。
14.根據(jù)權(quán)利要求9所述的緩沖區(qū)控制裝置,其特征在于,若該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,或該指令佇存區(qū)沒有剩余的欄位,則繼續(xù)傳送多筆該包的下一筆至該緩沖區(qū),并更新該計(jì)數(shù)值。
15.根據(jù)權(quán)利要求14所述的緩沖區(qū)控制裝置,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包至該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,亦即該緩沖區(qū)可儲(chǔ)存的該包數(shù)未增加時(shí),則該數(shù)值為前一筆包的計(jì)數(shù)值。
16.根據(jù)權(quán)利要求9所述的緩沖區(qū)控制裝置,其特征在于,該指令佇存區(qū)的欄位數(shù)大于該數(shù)據(jù)緩沖區(qū)的容量除以該最大數(shù)據(jù)包長(zhǎng)度的商。
17.一種緩沖區(qū)控制方法,其特征在于,該緩沖區(qū)控制方法用以控制一緩沖區(qū)的包儲(chǔ)存,該方法包含有傳送一包至該緩沖區(qū);根據(jù)該緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;以及比較該計(jì)數(shù)值與一最大數(shù)據(jù)包長(zhǎng)度,判斷是否傳送下一筆包至該緩沖區(qū)。
18.根據(jù)權(quán)利要求17所述的緩沖區(qū)控制方法,其特征在于,輸出一緩沖區(qū)釋放信息以傳送該包至該緩沖區(qū)。
19.根據(jù)權(quán)利要求17所述的緩沖區(qū)控制方法,其特征在于,若該計(jì)數(shù)值大于或等于該最大數(shù)據(jù)包長(zhǎng)度,則傳送下一筆包至該緩沖區(qū)。
20.根據(jù)權(quán)利要求19所述的緩沖區(qū)控制方法,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包至該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該計(jì)數(shù)值大于或等于該最大數(shù)據(jù)包長(zhǎng)度,則該數(shù)值為前一筆包的計(jì)數(shù)值減去最大數(shù)據(jù)包長(zhǎng)度。
21.根據(jù)權(quán)利要求17所述的緩沖區(qū)控制方法,其特征在于,若該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,則不傳送下一筆包至該緩沖區(qū)。
22.根據(jù)權(quán)利要求21所述的緩沖區(qū)控制方法,其特征在于,當(dāng)一第一包儲(chǔ)存至該數(shù)據(jù)緩沖區(qū)時(shí),該計(jì)數(shù)值=該最大數(shù)據(jù)包長(zhǎng)度-該第一包的數(shù)據(jù)長(zhǎng)度+一數(shù)值;其中當(dāng)一第二包至該數(shù)據(jù)緩沖區(qū)移除時(shí),該計(jì)數(shù)值=該數(shù)值+該第二包的數(shù)據(jù)長(zhǎng)度;當(dāng)該計(jì)數(shù)值小于該最大數(shù)據(jù)包長(zhǎng)度,則該數(shù)值為前一筆包的計(jì)數(shù)值。
全文摘要
本發(fā)明提供一種緩沖區(qū)控制裝置及方法,用以控制一緩沖區(qū)的包儲(chǔ)存,其中該緩沖區(qū)包括有一數(shù)據(jù)緩沖區(qū)以及一指令佇存區(qū)。該方法包含有計(jì)算該數(shù)據(jù)緩沖區(qū)可儲(chǔ)存的包數(shù);傳送多筆該包其中之一至該緩沖區(qū),并根據(jù)該緩沖區(qū)的存取狀態(tài)更新一計(jì)數(shù)值,其中該計(jì)數(shù)值表示該數(shù)據(jù)緩沖區(qū)的剩余儲(chǔ)存容量;以及比較該計(jì)數(shù)值與一最大數(shù)據(jù)包長(zhǎng)度,判斷是否增加該緩沖區(qū)可儲(chǔ)存的包數(shù)。本發(fā)明所述的緩沖區(qū)控制裝置及方法,可確實(shí)反應(yīng)數(shù)據(jù)緩沖區(qū)的儲(chǔ)存情況以減少數(shù)據(jù)緩沖區(qū)內(nèi)閑置的空間,達(dá)到了提升數(shù)據(jù)緩沖區(qū)的儲(chǔ)存效率的功效。
文檔編號(hào)G06F13/42GK1971547SQ20061012731
公開日2007年5月30日 申請(qǐng)日期2006年9月13日 優(yōu)先權(quán)日2006年9月13日
發(fā)明者蘇俊源, 謝易霖 申請(qǐng)人:威盛電子股份有限公司