專利名稱:判定存儲(chǔ)單元存取請(qǐng)求順序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種判定存儲(chǔ)單元存取請(qǐng)求順序的方法,特別是一種在流水線式(pipeline)結(jié)構(gòu)中判定存儲(chǔ)單元存取請(qǐng)求順序的方法,其為可彈性處理數(shù)據(jù),達(dá)到減少流水線閑置及擁塞現(xiàn)象。
在目前的集成電路設(shè)計(jì)中,流水線式的結(jié)構(gòu)設(shè)計(jì)已經(jīng)是一種常見的設(shè)計(jì)方式,借由流水線式的結(jié)構(gòu),可將信號(hào)的處理流程分成數(shù)級(jí),每一級(jí)都重復(fù)固定的動(dòng)作,此種方法可將好幾個(gè)動(dòng)作分開執(zhí)行,使中央處理器不必為了等待數(shù)據(jù)的讀取、解碼而浪費(fèi)時(shí)間,這樣,可大大提高中央處理器的效能。
以三維(3D)圖像的數(shù)字?jǐn)?shù)據(jù)處理而言,產(chǎn)生三維圖像的處理程序需要相當(dāng)多的步驟,大致來說,一般是先經(jīng)由影像拾取后再進(jìn)行選擇,此稱為布局階段,然后再進(jìn)入幾何化階段,這時(shí)的工作是影像旋轉(zhuǎn),然后,再進(jìn)入?yún)^(qū)別明暗,三角形變?yōu)閽呙杈€段的構(gòu)成階段,最后再進(jìn)入影像再現(xiàn)階段,由于在處理上述流程時(shí),常需大量的像素?cái)?shù)據(jù)搬移及運(yùn)算處理,為創(chuàng)造一個(gè)理想化的數(shù)據(jù)存取方式,以增進(jìn)存儲(chǔ)單元在下載時(shí)的順暢度,目前的三維加速器也使用流水線結(jié)構(gòu),如圖1所示,其為一個(gè)n級(jí)流水線式的三維引擎的方塊示意圖,其包括一個(gè)n級(jí)三維引擎10、一個(gè)控制器11、一個(gè)仲裁器110及一個(gè)存儲(chǔ)單元12,存儲(chǔ)單元12存有多筆數(shù)據(jù),這些數(shù)據(jù)包含顏色像素值(R、G、B),透明像素或阿爾發(fā)數(shù)值(alphavalue),深度數(shù)值(Z),網(wǎng)紋影像數(shù)據(jù)等,一般說來以上數(shù)據(jù)在下列情況時(shí)會(huì)被控制器11讀出并提取執(zhí)行,并在需要時(shí)再寫回存儲(chǔ)單元12內(nèi)(1)由于每一級(jí)處理或運(yùn)算的內(nèi)容不盡相同,因此,有些級(jí)的處理會(huì)需要讀取存儲(chǔ)單元12中的影像數(shù)據(jù)(如有一級(jí)需要提取深度數(shù)值(Z)做一比對(duì)時(shí),就會(huì)讀取存在存儲(chǔ)單元中的深度數(shù)值(Z)的數(shù)據(jù)),一般而言,為求運(yùn)作時(shí)的順暢度,一般皆會(huì)在此級(jí)及前二級(jí)(不一定是前二級(jí),可視需要而定)各配置一個(gè)數(shù)據(jù)讀取緩沖器130以及一個(gè)數(shù)據(jù)請(qǐng)求緩沖器131,并在一或二級(jí)(不一定是前二級(jí),可視需要而定)前就發(fā)出一個(gè)數(shù)據(jù)讀取請(qǐng)求指令,并先儲(chǔ)存在數(shù)據(jù)請(qǐng)求緩沖器131中,以可使控制器11去存儲(chǔ)單元12中提取所欲讀取的數(shù)據(jù),并將提取的數(shù)據(jù)先儲(chǔ)存在數(shù)據(jù)讀取緩沖器13中,當(dāng)此級(jí)在運(yùn)作時(shí)需要讀取該筆數(shù)據(jù)時(shí),就不用再花時(shí)間去存儲(chǔ)單元中讀取,這種做法可增進(jìn)引擎10在運(yùn)作時(shí)的順暢度。以圖1而言,在此流水線中的第4級(jí)及第n-2級(jí)就各配置有一個(gè)數(shù)據(jù)讀取緩沖器13,并各在前二級(jí)(第2級(jí))及前一級(jí)(第n-3級(jí))時(shí)就先發(fā)出一個(gè)讀取請(qǐng)求指令,并先預(yù)存在數(shù)據(jù)請(qǐng)求緩沖器131中,并在適當(dāng)時(shí)間傳入仲裁器110中,再由控制器11去存儲(chǔ)單元12中提取所欲讀取的數(shù)據(jù),并將該筆數(shù)據(jù)先儲(chǔ)存在數(shù)據(jù)讀取緩沖器13中。
(2)有些級(jí)需要將數(shù)據(jù)存入存儲(chǔ)單元中,如圖1所示,第n級(jí)必須將運(yùn)算的結(jié)果寫入,并存至存儲(chǔ)單元12中,可是有時(shí)存儲(chǔ)單元12仍在進(jìn)行其他運(yùn)作,無法馬上接受寫入的數(shù)據(jù),因此,為求運(yùn)作順暢,一般也會(huì)在此級(jí)配置一個(gè)數(shù)據(jù)寫入緩沖器14,以將要寫入的數(shù)據(jù)先存至此數(shù)據(jù)寫入緩沖器14中,這樣,引擎10就可繼續(xù)運(yùn)作而不會(huì)因無法將數(shù)據(jù)傳出而發(fā)生延遲的現(xiàn)象。
另外,有時(shí)當(dāng)兩級(jí)間的運(yùn)算相對(duì)速度相差太多時(shí),也會(huì)在兩級(jí)間設(shè)一個(gè)緩沖器,以圖1為例,有時(shí)第二級(jí)的運(yùn)算速度高出第三級(jí)的運(yùn)算速度很多(或是第三級(jí)的運(yùn)算速度高出第二級(jí)的運(yùn)算速度很多),為防在運(yùn)作時(shí)第二級(jí)運(yùn)算完畢時(shí)要將運(yùn)算結(jié)果數(shù)據(jù)輸出至第三級(jí)時(shí),第三級(jí)因運(yùn)作速度較慢,無法馬上接收第二級(jí)的輸出數(shù)據(jù),進(jìn)而導(dǎo)致第二級(jí)發(fā)生擁塞狀況,因此,在第二級(jí)及第三級(jí)之間也會(huì)設(shè)置一個(gè)像素緩沖器15,以儲(chǔ)存由第二級(jí)所輸出的像素?cái)?shù)據(jù),這樣,可以繼續(xù)動(dòng)作,而不至發(fā)生擁塞情形。
由上述可知,一個(gè)完整的三維引擎(流水線)10大致都會(huì)設(shè)有一個(gè)以上的緩沖器,且這些緩沖器的動(dòng)作是由控制器11所控制,這些緩沖器中的數(shù)據(jù)將被處理的順序則由控制器11中的一仲裁器110決定,因此,當(dāng)一個(gè)引擎10中設(shè)有多個(gè)緩沖器130、131、14、15,且有一個(gè)以上的緩沖器對(duì)控制器11發(fā)出數(shù)據(jù)存取的請(qǐng)求時(shí),以往仲裁器110的做法是優(yōu)先處理位于較大級(jí)數(shù)緩沖器中的請(qǐng)求(也稱為下游的緩沖器),再處理位于較小級(jí)數(shù)緩沖器的請(qǐng)求(上游的緩沖器),但是此種做法存在下列問題1.若此時(shí)存儲(chǔ)單元12正處于較忙碌狀態(tài),存儲(chǔ)單元的頻寬有限,無法一次處理多級(jí)的存取請(qǐng)求,若依以往仲裁器110的做法是會(huì)先處理較下游緩沖器14的數(shù)據(jù),再處理較上游緩沖器131、15中的數(shù)據(jù),而不考慮每一個(gè)緩沖器中的數(shù)據(jù)數(shù)量,因?yàn)槊恳粋€(gè)緩沖器所儲(chǔ)存的數(shù)據(jù)數(shù)量不一定相同,且通常不同緩沖器的數(shù)據(jù)儲(chǔ)存在不同的頁面(頁面為存儲(chǔ)單元的單位,通常一個(gè)頁面為4K比特)中,因此,現(xiàn)有的做法有可能使存儲(chǔ)單元在忙碌時(shí)仍將時(shí)間浪費(fèi)在轉(zhuǎn)換頁面的操作上(此種轉(zhuǎn)換頁面的操作一般稱為頁面失誤),而非完全使用在存取數(shù)據(jù)上,使存儲(chǔ)單元在忙碌時(shí)仍浪費(fèi)在往返于各個(gè)緩沖器及控制器之間路徑的時(shí)間也相對(duì)較多,這樣,會(huì)使存儲(chǔ)體的利用效能較低,在存儲(chǔ)體頻寬有限的狀態(tài)下效率較低,會(huì)發(fā)生擁塞的問題。2.由于仲裁器110處理的順序是固定的,也就是先處理較下游的緩沖器再處理較上游的緩沖器,此種順序主要是考慮到若較下游的數(shù)據(jù)尚未清掉,而先清除上游的數(shù)據(jù),同樣會(huì)引起流水線擁塞現(xiàn)象,但是,若較上游的緩沖器是空的時(shí),而較下游的緩沖器是滿的,此時(shí)就會(huì)使兩緩沖器之間產(chǎn)生泡沫現(xiàn)象,以圖1為例,若此時(shí)第n-2級(jí)的數(shù)據(jù)讀取緩沖器13是空的,而第n級(jí)的數(shù)據(jù)寫入緩沖器14中尚存有數(shù)據(jù)時(shí),按照仲裁器110現(xiàn)有仲裁處理的順序必會(huì)先處理第n級(jí)數(shù)據(jù)寫入緩沖器14中的數(shù)據(jù)直到將需寫入緩沖器14中的數(shù)據(jù)都清空為止。此時(shí),因?yàn)榈趎-2級(jí)的數(shù)據(jù)讀取緩沖器13是空的,第n-2級(jí)就會(huì)產(chǎn)生閑置現(xiàn)象,連帶過一段時(shí)間后,第n-1級(jí)及第n級(jí)也因第n-2級(jí)因閑置無輸出而無法繼續(xù)工作,連帶也會(huì)產(chǎn)生閑置狀態(tài)。
本發(fā)明的主要目的在于提供一種彈性地處理數(shù)據(jù)的判定存儲(chǔ)單元存取請(qǐng)求順序的方法,進(jìn)而達(dá)到減少存儲(chǔ)單元擁塞狀況。
為達(dá)到上述目的,本發(fā)明采取如下技術(shù)措施本發(fā)明的一種判定存儲(chǔ)單元存取請(qǐng)求順序的方法,包括下列步驟a、首先,仲裁器檢測(cè)目前存儲(chǔ)單元的運(yùn)作狀態(tài);b、依據(jù)該存儲(chǔ)單元的運(yùn)作狀態(tài),將該等待處理的緩沖器分為高優(yōu)先處理群及低優(yōu)先處理群;c、仲裁器首先處理高優(yōu)先處理群的緩沖器,再處理低優(yōu)先處理群的緩沖器。
其中在所述步驟b中,當(dāng)仲裁器檢測(cè)此時(shí)存儲(chǔ)單元是處于忙碌狀態(tài)時(shí),先分別檢視每一數(shù)據(jù)請(qǐng)求緩沖器及數(shù)據(jù)寫入緩沖器中的數(shù)據(jù)數(shù)量,若數(shù)據(jù)數(shù)量超過設(shè)定的第一設(shè)定值,仲裁器即將這些超過第一設(shè)定值的緩沖器歸類至高優(yōu)先處理群中,未超過第一設(shè)定值的緩沖器則歸類在低優(yōu)先處理群中。
其中在所述步驟b中,當(dāng)仲裁器檢測(cè)此時(shí)存儲(chǔ)單元并不忙碌,接下來仲裁器即分別檢視所有待處理的數(shù)據(jù)請(qǐng)求緩沖器及數(shù)據(jù)寫入緩沖器中,檢視每一個(gè)緩沖器的數(shù)據(jù)是否超過我們所設(shè)定的等待時(shí)間,若超過,則將此緩沖器歸類在高優(yōu)先處理群中,若沒有超過,則檢查像素緩沖器的像素?cái)?shù)目是否超過設(shè)定的第二設(shè)定值,若超過,則將此一緩沖器歸類在高優(yōu)先處理群中,若沒超過,則將此緩沖器歸類在低優(yōu)先處理群中。
其中在所述步驟c中,當(dāng)將所有的數(shù)據(jù)都分類完畢后,首先,仲裁器會(huì)先檢測(cè)是否有任何高優(yōu)先處理的緩沖器,若答案為是,仲裁器就先檢查此第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一緩沖器,并檢查是否有分頁失誤的情形發(fā)生,若有,亦輪替到處理下一緩沖器,若不會(huì)發(fā)生頁面失誤的情形,則繼續(xù)處理,直到處理完畢為止。
其中若該答案為否,仲裁器就處理歸類為低優(yōu)先處理的緩沖器,首先,先檢查第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一緩沖器,直到處理完畢為止。
其中在所述步驟c中,當(dāng)將緩沖器都分類完畢后,仲裁器會(huì)先檢測(cè)是否有任何高優(yōu)先處理的緩沖器,若答案為是,仲裁器就先檢查此第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一個(gè)緩沖器,直到處理完畢為止。
其中若所述答案為否,仲裁器就處理歸類為低優(yōu)先處理的緩沖器,首先,先檢查第一個(gè)待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一個(gè)緩沖器,直到處理完畢為止。
其中在處理下一緩沖器的數(shù)據(jù)之前,所述仲裁器即會(huì)進(jìn)行更新動(dòng)作,以檢查緩沖器的分類是否有改變。
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明
圖1是一種具有n級(jí)的三維引擎加速器的方塊示意圖。
圖2是本發(fā)明實(shí)施例的流程示意圖。
圖3是本發(fā)明實(shí)施例中當(dāng)存儲(chǔ)單元處于忙碌狀態(tài)時(shí)仲裁器的處理流程圖。
圖4是本發(fā)明實(shí)施例中當(dāng)存儲(chǔ)單元并不處于忙碌狀態(tài)時(shí)仲裁器的處理流程圖。
圖5是本發(fā)明實(shí)施例中當(dāng)存儲(chǔ)單元并不處于忙碌狀態(tài)時(shí),在多個(gè)流水線狀態(tài)下,仲裁器的處理流程圖。
如圖2至圖4所示,其為本發(fā)明一實(shí)施例的流程示意圖,其大部結(jié)構(gòu)同如圖1所示,圖2中,本發(fā)明實(shí)施例的流程包括如下步驟首先,進(jìn)行步驟20,仲裁器110先測(cè)試目前存儲(chǔ)單元12的運(yùn)作狀態(tài),檢測(cè)此時(shí)存儲(chǔ)單元12是否忙碌,即步驟21。
若答案為是,代表此時(shí)存儲(chǔ)單元12處于忙碌狀態(tài),若此時(shí)有數(shù)個(gè)數(shù)據(jù)請(qǐng)求緩沖器131以及數(shù)據(jù)寫入緩沖器14的數(shù)據(jù)等待處理,此時(shí)進(jìn)行步驟22,先分別檢視這些數(shù)據(jù)請(qǐng)求緩沖器131及數(shù)據(jù)寫入緩沖器14中的數(shù)據(jù)數(shù)量,若數(shù)據(jù)數(shù)量超過所設(shè)定的第一設(shè)定值,即步驟23,即將這些超過第一設(shè)定值的數(shù)據(jù)請(qǐng)求緩沖器131或數(shù)據(jù)寫入緩沖器14歸類至高優(yōu)先處理群中,步驟24;未超過第一設(shè)定值的數(shù)據(jù)請(qǐng)求緩沖器131或數(shù)據(jù)寫入緩沖器14則歸類在低優(yōu)先處理群中,即步驟25。
若答案為否,代表此時(shí)存儲(chǔ)單元12并不忙碌,也就是說此時(shí)存儲(chǔ)單元12內(nèi)有較大的頻寬可以運(yùn)用,接下來進(jìn)行步驟26,仲裁器110就先分別檢視這些數(shù)據(jù)請(qǐng)求緩沖器131及數(shù)據(jù)寫入緩沖器14其等待處理的時(shí)間,并檢視是否已超過所設(shè)定的等待時(shí)間(步驟27),若超過,表示此一數(shù)據(jù)請(qǐng)求緩沖器131或數(shù)據(jù)寫入緩沖器14可能已經(jīng)等待處理較長(zhǎng)時(shí)間,所以應(yīng)先處理掉,因此,我們將此數(shù)據(jù)請(qǐng)求緩沖器131或數(shù)據(jù)寫入緩沖器14歸類在高優(yōu)先處理群中(步驟24),若沒有超過,表示可能等待的時(shí)間還不至造成延遲,接著就再檢查像素緩沖器15中等待處理的像素?cái)?shù)目(步驟28)是否超過我們所設(shè)定的第二設(shè)定值(步驟29),若超過,則將此像素緩沖器15歸類在高優(yōu)先處理群中(步驟24),若沒超過,則將此像素緩沖器15歸類在低優(yōu)先處理群中(步驟25)。
如圖3所示,本實(shí)施例中當(dāng)圖2中存儲(chǔ)單元12處于忙碌狀態(tài)時(shí)仲裁器110的處理流程圖,當(dāng)將所有的待處理的緩沖器131、14都分類完畢后,首先,仲裁器110會(huì)先檢測(cè)是否有任何歸類至高優(yōu)先處理的緩沖器(步驟30),若答案為是,代表有至少一高優(yōu)先處理的緩沖器待處理,仲裁器110就先檢查第一個(gè)待處理緩沖器中的數(shù)據(jù)(步驟300)(即最早被歸類為高優(yōu)先處理的緩沖器)中是否為空的(步驟31),若是空的,就輪替到處理下一緩沖器中的數(shù)據(jù)(步驟32),若不是空的,就通知控制器11開始處理此一緩沖器(步驟33)內(nèi)的第一個(gè)請(qǐng)求,當(dāng)處理完此一請(qǐng)求后,在處理此一緩沖器下一請(qǐng)求前,仲裁器110會(huì)檢查是否有頁面失誤的情形發(fā)生,然后再檢查是否有頁面失誤的情形發(fā)生(步驟34),若有,即輪替到處理下一緩沖器131中的數(shù)據(jù)(步驟32),若沒有發(fā)生頁面失誤的情形,則繼續(xù)處理此一緩沖器中的數(shù)據(jù),直到處理完畢為止,再輪替到處理下一緩沖器中的數(shù)據(jù)(步驟32),在處理完下一緩沖器的數(shù)據(jù)之前,仲裁器110即會(huì)進(jìn)行更新的動(dòng)作(步驟35),以檢查緩沖器的分類是否有改變,例如有些緩沖器原來為高優(yōu)先處理群,但在更新時(shí)更改為低優(yōu)先處理群。
若答案為否,代表此時(shí)并無高優(yōu)先處理的緩沖器待處理,接下來就處理歸類為低優(yōu)先處理的緩沖器,首先檢查第一個(gè)待處理的緩沖器(即最早被歸類為低優(yōu)先處理的緩沖器)中是否為空的(步驟36),若是空的,就輪替到處理下一個(gè)緩沖器(步驟37),若不是空的,就開始處理此一緩沖器(步驟38),并檢查是否有頁面失誤的情形發(fā)生(步驟39),若有頁面失誤的情形發(fā)生,亦輪替到處理下一筆數(shù)據(jù)(步驟37),若不會(huì)發(fā)生頁面失誤的情形,則繼續(xù)處理,直到處理完畢為止,再處理下一緩沖器中的數(shù)據(jù)(步驟37),在處理下一緩沖器的數(shù)據(jù)之前,仲裁器110即會(huì)進(jìn)行更新的動(dòng)作(步驟40),以檢查緩沖器的分類是否有改變。
如圖4所示,是在圖2中當(dāng)存儲(chǔ)單元12并不處于忙碌狀態(tài)時(shí)仲裁器110的處理流程圖,當(dāng)將所有待處理的緩沖器131、14、15都分類完畢后,首先,仲裁器110會(huì)先檢測(cè)是否有任何高優(yōu)先處理的緩沖器(步驟41),若答案為是,代表有至少一個(gè)的高優(yōu)先處理的緩沖器待處理,仲裁器110首先會(huì)先處理第一待處理緩沖器(即最早被歸類為高優(yōu)先處理的緩沖器)的,并檢查緩沖器的數(shù)據(jù)是否為空的(步驟42),若是空的,就輪替到處理下一個(gè)緩沖器(步驟43),若不是空的,就開始處理此一緩沖器內(nèi)的第一個(gè)請(qǐng)求(步驟44),當(dāng)處理完一個(gè)緩沖器就輪替處理下一緩沖器(步驟46),直到處理完畢為止,在處理下一緩沖器的數(shù)據(jù)之前,仲裁器110即會(huì)進(jìn)行更新的動(dòng)作,以檢查的緩沖器的分類是否有改變。
若答案為否,代表此時(shí)并無高優(yōu)先處理的緩沖器待處理,接下來就處理歸類為低優(yōu)先處理的緩沖器,首先,先處理第一個(gè)待處理的緩沖器(即最早被歸類為低優(yōu)先處理的緩沖器)(步驟411),并檢查此緩沖器中的數(shù)據(jù)是否為空的(步驟45),若是空的,就輪替到處理下一個(gè)緩沖器(步驟46),若不是空的,就開始處理此一個(gè)緩沖器,直到處理完畢為止(步驟47)再輪替處理下一個(gè)緩沖器(46),直到處理完畢為止,在處理下一緩沖器的數(shù)據(jù)之前,仲裁器110即會(huì)進(jìn)行更新的動(dòng)作(步驟49),以檢查緩沖器的分類是否有改變。
值得一提的是,如圖5所示,當(dāng)控制器同時(shí)在處理多條流水線時(shí),其控制器大致的控制流程和圖4相同,在此不再多述,不同的是,當(dāng)控制器處理完緩沖器中的一個(gè)請(qǐng)求后(步驟44),控制器就會(huì)檢查這些流水線的處理速度是否相近,若為相近(又稱為平衡狀態(tài)(步驟49)),緩沖器就會(huì)繼續(xù)處理,若不平衡,就會(huì)輪替處理下一緩沖器的請(qǐng)求(步驟43)。
藉由上述說明,本發(fā)明具有如下效果1、若當(dāng)存儲(chǔ)體忙碌時(shí),仲裁器要判斷多級(jí)緩沖器中的存取數(shù)據(jù)順序時(shí),此時(shí)即可藉由上述流程,優(yōu)先處理數(shù)量較多(即超過第一設(shè)定值)的緩沖器的數(shù)據(jù),再處理數(shù)量較少的緩沖器數(shù)據(jù),減少頁面失誤以及往返于各個(gè)緩沖器及控制器之間路徑的時(shí)間浪費(fèi),使處理的效能提高,較不易發(fā)生延遲的問題。
2.再來,優(yōu)先處理等待時(shí)間較長(zhǎng)的緩沖器數(shù)據(jù),再處理像素?cái)?shù)量較多的數(shù)據(jù),如此也可解決現(xiàn)有設(shè)計(jì)所遇到的問題,以圖1為例,若此時(shí)第n-2級(jí)的數(shù)據(jù)讀取緩沖器13是空的,而第n級(jí)的數(shù)據(jù)寫入緩沖器14中尚存有數(shù)據(jù)時(shí),按照仲裁器110以往的做法是會(huì)引發(fā)流水線擁塞的問題的,但依照本發(fā)明的處理方式,若第n-2級(jí)的等待時(shí)間較第n級(jí)久,因此就先處理第n-2級(jí)的請(qǐng)求再處理第n級(jí)的請(qǐng)求,解決了現(xiàn)有技術(shù)中存在的問題。
權(quán)利要求
1.一種判定存儲(chǔ)單元存取請(qǐng)求順序的方法,其特征在于,包括下列步驟a、首先,仲裁器檢測(cè)目前存儲(chǔ)單元的運(yùn)作狀態(tài);b、依據(jù)該存儲(chǔ)單元的運(yùn)作狀態(tài),將該等待處理的緩沖器分為高優(yōu)先處理群及低優(yōu)先處理群;c、仲裁器首先處理高優(yōu)先處理群的緩沖器,再處理低優(yōu)先處理群的緩沖器。
2.如權(quán)利要求1所述的方法,其特征在于在所述步驟b中,當(dāng)仲裁器檢測(cè)此時(shí)存儲(chǔ)單元是處于忙碌狀態(tài)時(shí),先分別檢視每一數(shù)據(jù)請(qǐng)求緩沖器及數(shù)據(jù)寫入緩沖器中的數(shù)據(jù)數(shù)量,若數(shù)據(jù)數(shù)量超過設(shè)定的第一設(shè)定值,仲裁器即將這些超過第一設(shè)定值的緩沖器歸類至高優(yōu)先處理群中,未超過第一設(shè)定值的緩沖器則歸類在低優(yōu)先處理群中。
3.如權(quán)利要求1所述的方法,其特征在于在所述步驟b中,當(dāng)仲裁器檢測(cè)此時(shí)存儲(chǔ)單元并不忙碌,接下來仲裁器即分別檢視所有待處理的數(shù)據(jù)請(qǐng)求緩沖器及數(shù)據(jù)寫入緩沖器中,檢視每一個(gè)緩沖器的數(shù)據(jù)是否超過我們所設(shè)定的等待時(shí)間,若超過,則將此緩沖器歸類在高優(yōu)先處理群中,若沒有超過,則檢查像素緩沖器的像素?cái)?shù)目是否超過設(shè)定的第二設(shè)定值,若超過,則將此一緩沖器歸類在高優(yōu)先處理群中,若沒超過,則將此緩沖器歸類在低優(yōu)先處理群中。
4.如權(quán)利要求2所述的方法,其特征在于在所述步驟c中,當(dāng)將所有的數(shù)據(jù)都分類完畢后,首先,仲裁器會(huì)先檢測(cè)是否有任何高優(yōu)先處理的緩沖器,若答案為是,仲裁器就先檢查此第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一緩沖器,并檢查是否有分頁失誤的情形發(fā)生,若有,亦輪替到處理下一緩沖器,若不會(huì)發(fā)生頁面失誤的情形,則繼續(xù)處理,直到處理完畢為止。
5.如權(quán)利要求4所述的在一流水線式結(jié)構(gòu)中判定存儲(chǔ)單元存取請(qǐng)求順序的方法,其特征在于若該答案為否,仲裁器就處理歸類為低優(yōu)先處理的緩沖器,首先,先檢查第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一緩沖器,直到處理完畢為止。
6.如權(quán)利要求3所述的方法,其特征在于在所述步驟c中,當(dāng)將緩沖器都分類完畢后,仲裁器會(huì)先檢測(cè)是否有任何高優(yōu)先處理的緩沖器,若答案為是,仲裁器就先檢查此第一筆待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一個(gè)緩沖器,直到處理完畢為止。
7.如權(quán)利要求6所述的方法,其特征在于若所述答案為否,仲裁器就處理歸類為低優(yōu)先處理的緩沖器,首先,先檢查第一個(gè)待處理的緩沖器中是否為空的,若是空的,就輪替到處理下一個(gè)緩沖器,若不是空的,就開始處理此一個(gè)緩沖器,直到處理完畢為止。
8.如權(quán)利要求4或5或6或7中任一項(xiàng)所述的方法,其特征在于在處理下一緩沖器的數(shù)據(jù)之前,所述仲裁器即會(huì)進(jìn)行更新動(dòng)作,以檢查緩沖器的分類是否有改變。
全文摘要
一種判定存儲(chǔ)單元存取請(qǐng)求順序的方法,包括下列步驟:a、仲裁器檢測(cè)目前存儲(chǔ)單元的運(yùn)作狀態(tài);b、依據(jù)該存儲(chǔ)單元的運(yùn)作狀態(tài),將該等待處理的緩沖器分為高優(yōu)先處理群及低優(yōu)先處理群;c、仲裁器首先處理高優(yōu)先處理群的緩沖器,再處理低優(yōu)先處理群的緩沖器,根據(jù)上述步驟;本方法可彈性地處理緩沖器數(shù)據(jù),達(dá)到減少存儲(chǔ)單元擁塞現(xiàn)象,以使存儲(chǔ)單元的頻寬能有效利用。
文檔編號(hào)G06F12/08GK1380609SQ0111057
公開日2002年11月20日 申請(qǐng)日期2001年4月11日 優(yōu)先權(quán)日2001年4月11日
發(fā)明者廖明豪, 白宏達(dá) 申請(qǐng)人:矽統(tǒng)科技股份有限公司