專利名稱:存儲(chǔ)器訪問的仲裁方法、系統(tǒng)、設(shè)備以及存儲(chǔ)控制設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)技術(shù),具體涉及存儲(chǔ)器訪問的仲裁方法、仲裁系統(tǒng)、仲 裁設(shè)備以及存儲(chǔ)控制設(shè)備。
背景技術(shù):
在芯片設(shè)計(jì)中,為了充分利用存儲(chǔ)器,通常出現(xiàn)多個(gè)存儲(chǔ)控制單元需要 訪問一個(gè)存儲(chǔ)器的情況。這時(shí)就需要仲裁單元來決定哪個(gè)控制單元獲得訪問 權(quán)限。圖1為現(xiàn)有的存儲(chǔ)器訪問仲裁系統(tǒng)的結(jié)構(gòu)示意圖,如圖l所示,該系
統(tǒng)包括4個(gè)存儲(chǔ)控制單元110、 1個(gè)仲裁單元120和3個(gè)存儲(chǔ)器130。其中, 4個(gè)存儲(chǔ)控制單元110可以訪問3個(gè)存儲(chǔ)器130中的任何一個(gè)。當(dāng)多個(gè)存儲(chǔ) 控制單元110申請?jiān)L問一個(gè)存儲(chǔ)器130時(shí),向仲裁單元120發(fā)送訪問請求, 仲裁單元120根據(jù)自身保存的仲裁策略決定能夠獲得訪問權(quán)限的存儲(chǔ)控制 單元120,并將仲裁結(jié)果通知給被請求的存儲(chǔ)器130。
目前,仲裁策略種類繁多,常用的仲裁策略包括以下兩種
仲裁策略一
該仲裁策略根據(jù)優(yōu)先級決定訪問順序且不支持中斷。仲裁單元120在接 收到存儲(chǔ)控制單元IIO對存儲(chǔ)器發(fā)起的訪問請求后,根據(jù)以下仲裁策略決定 被授予訪問權(quán)限的存儲(chǔ)控制單元
1) 如果被請求的存儲(chǔ)器空閑,即沒有正在被訪問,且當(dāng)前只有一個(gè)存 儲(chǔ)控制單元對該存儲(chǔ)器提出訪問請求,將訪問權(quán)限授予提出訪問請求的存儲(chǔ) 控制單元,即響應(yīng)該訪問請求;
2) 如果被請求的存儲(chǔ)器空閑,且當(dāng)前有至少2個(gè)存儲(chǔ)控制單元對該存 儲(chǔ)器提出訪問請求,則將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中優(yōu)先
級最高的存儲(chǔ)控制單元;
3)如果被請求的存儲(chǔ)器正在被訪問,則訪問請求不能被響應(yīng),等到存 儲(chǔ)器空閑后,再根據(jù)上述第1)和2)條策略確定被授予訪問權(quán)限的存儲(chǔ)控 制單元。
這種仲裁策略的缺點(diǎn)在于某存儲(chǔ)控制單元一旦獲得訪問權(quán)限,其他存 儲(chǔ)控制單元只能等到該存儲(chǔ)器再次空閑后,才能獲得對該存儲(chǔ)器的訪問權(quán) 限。
對于從存儲(chǔ)器130讀數(shù)據(jù)的情況,如果存儲(chǔ)控制單元IIO等待的時(shí)間過 長,與存儲(chǔ)控制單元IIO連接的應(yīng)用側(cè)設(shè)備將無法按時(shí)獲取數(shù)據(jù),那么存儲(chǔ) 控制單元IIO與應(yīng)用側(cè)設(shè)備之間將出現(xiàn)數(shù)據(jù)斷流。其中,應(yīng)用側(cè)設(shè)備是指需 要從存儲(chǔ)器130讀取數(shù)據(jù)和/或需要向存儲(chǔ)器130寫入數(shù)據(jù)的設(shè)備,例如液 晶顯示器(LCD, Liquid Crystal Display)。圖2為采用圖1示出的存儲(chǔ)器 訪問仲裁系統(tǒng)為LCD提供顯示數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖。如圖2所示,該系 統(tǒng)包括存儲(chǔ)控制單元110、仲裁單元120、存儲(chǔ)器130以及LCD140。其中, 存儲(chǔ)控制單元110與作為應(yīng)用側(cè)設(shè)備的LCD140相連,向LCD140提供顯示 數(shù)據(jù)。存儲(chǔ)控制單元110包括控制模塊111和先進(jìn)先出(FIFO, First In First Out)援存模塊112,簡稱FIF0112??刂颇K111將請求訪問存儲(chǔ)器130 的訪問請求發(fā)送給仲裁單元120。當(dāng)訪問請求:故響應(yīng)后,在控制才莫塊lll的 控制下,通過存儲(chǔ)控制單元110與存儲(chǔ)器130之間的總線1 (BUSl)將讀取 的數(shù)據(jù)緩存到FIF0112中。在FIF0112中有數(shù)據(jù)時(shí),LCD140通過總線2 (BUS2)不斷從FIF0112中讀取數(shù)據(jù),并進(jìn)行顯示,當(dāng)FIF0112中沒有數(shù) 據(jù)時(shí),BUS2上出現(xiàn)數(shù)據(jù)斷流,LCD140讀取不到數(shù)據(jù),其現(xiàn)象是LCD140 閃爍或圖像停滯。通常,BUS1的帶寬大于BUS2的帶寬,例如,BUS1與 BUS2帶寬之比為4:1。那么,在相同時(shí)間內(nèi),BUS1上傳輸?shù)臄?shù)據(jù)量是BUS2 的4倍。如果存儲(chǔ)控制單元IICM人存儲(chǔ)器130中一次讀取16個(gè)Clk(Clk為 BUS1的時(shí)鐘周期)的數(shù)據(jù)并緩存在FIF0112中,那么LCD140需要64個(gè) Clk才能讀取完FIF0112中緩存的數(shù)據(jù)。因此存儲(chǔ)控制單元110只能等待64
個(gè)Clk, 64個(gè)Clk后,F(xiàn)IF0112中的數(shù)據(jù)被讀完,如果此時(shí)向存儲(chǔ)器130發(fā) 起的訪問請求還沒有得到響應(yīng),那么BUS2上產(chǎn)生斷流,并造成LCD140的 閃爍或圖像停滯。 仲裁策略二
該仲裁策略根據(jù)優(yōu)先級決定訪問順序且支持中斷。由于可以中斷當(dāng)前服 務(wù),轉(zhuǎn)向?yàn)槠渌鎯?chǔ)控制單元服務(wù),令存儲(chǔ)控制單元不必等待太長的時(shí)間, 因此能夠避免仲裁策略一可能導(dǎo)致的數(shù)據(jù)斷流。具體而言,仲裁單元120在 接收到存儲(chǔ)控制單元IIO存儲(chǔ)器130發(fā)起的訪問請求后,根據(jù)以下仲裁策略 決定被授予訪問權(quán)限的存儲(chǔ)控制單元
1) 如果被請求的存儲(chǔ)器空閑,且當(dāng)前只有一個(gè)存儲(chǔ)控制單元對該存儲(chǔ) 器提出訪問請求,則將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元;
2) 如果被請求的存儲(chǔ)器空閑,且當(dāng)前有至少2個(gè)存儲(chǔ)控制單元對該存 儲(chǔ)器提出訪問請求,則首先將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中 優(yōu)先級最高的存儲(chǔ)控制單元;然后在以后的服務(wù)時(shí)間中,多個(gè)提出訪問請求 的存儲(chǔ)控制單元按優(yōu)先級順序被輪流服務(wù),每個(gè)存儲(chǔ)控制單元被服務(wù)的時(shí)間 由仲裁單元根據(jù)預(yù)設(shè)的服務(wù)時(shí)間確定。當(dāng)前被服務(wù)的存儲(chǔ)控制單元的被服務(wù) 時(shí)長達(dá)到仲裁單元120的服務(wù)時(shí)間時(shí),仲裁單元將訪問權(quán)限分配給下一個(gè)存 儲(chǔ)控制單元110。
例如,設(shè)置一種訪問場景l(fā),存儲(chǔ)控制單元A、 B和C的優(yōu)先級順序?yàn)?A>B>C,需要傳輸?shù)臄?shù)據(jù)分別需要20、 15和10個(gè)Clk完成,且仲裁單元的 服務(wù)時(shí)間為10Clk。當(dāng)A、 B和C同時(shí)提出訪問請求時(shí),在仲裁策略二下, 各存儲(chǔ)控制單元被服務(wù)的時(shí)間為A ( 10Clk) — B ( 10Clk) — C ( 10Clk) —A ( 10Clk) — B ( 5Clk)。
3) 如果被請求的存儲(chǔ)器正在被訪問,則等待本次服務(wù)時(shí)間超時(shí)后,再 根據(jù)本策略中的第1)和2)條策略確定被授予訪問權(quán)限的存儲(chǔ)控制單元。
仲裁策略二提供了 一種中斷原服務(wù)的可能,令提出訪問請求的存儲(chǔ)控制 單元110能夠被及時(shí)響應(yīng),避免了因無法按時(shí)獲取數(shù)據(jù)而造成的數(shù)據(jù)斷流。
但是其缺點(diǎn)在于,在沒有傳輸完數(shù)據(jù)的情況下,原服務(wù)會(huì)被頻繁中斷。存儲(chǔ)
器的結(jié)構(gòu)多釆用如圖3示出的行(ROW)結(jié)構(gòu),每個(gè)ROW都對應(yīng)一個(gè)存儲(chǔ) 控制單元。如圖3所示,在上述訪問場景l(fā)中,將存儲(chǔ)控制單元A、 B和C 的數(shù)據(jù)分別保存在ROW1 、 ROW2和ROW3中。在獲得存儲(chǔ)器的訪問權(quán)限 進(jìn)入服務(wù)時(shí),需要占用長度為3個(gè)Clk的打開時(shí)間打開相應(yīng)的ROW,當(dāng)退 出服務(wù)時(shí),還需要占用長度為3個(gè)Clk的關(guān)閉時(shí)間關(guān)閉相應(yīng)的ROW,那么, 一次服務(wù)的切換將占用6個(gè)Clk的時(shí)間??梢姡l繁的中斷服務(wù)會(huì)額外增加 很多退出和進(jìn)入服務(wù)的時(shí)間,這些額外增加的時(shí)間并非用于存儲(chǔ)器的訪問, 因此是額外時(shí)間開銷??梢?,額外的時(shí)間開銷降低了存儲(chǔ)器的訪問效率。
綜上所述,現(xiàn)有的存儲(chǔ)器訪問仲裁方案不能在避免數(shù)據(jù)斷流的同時(shí),提 高存儲(chǔ)器的訪問效率。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種存儲(chǔ)器訪問的仲裁方法,能夠在避免數(shù)據(jù) 斷流的同時(shí),提高存儲(chǔ)器的訪問效率。 該方法包括
在接收到存儲(chǔ)控制單元對存儲(chǔ)器的訪問請求后,確定提出所述訪問請求的 存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間;
在所述存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪 問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
較佳地,所述確定提出所述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間之 后,進(jìn)一步包括在所述存儲(chǔ)器正在被訪問時(shí),確定所述存儲(chǔ)器的還需服務(wù) 時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于提出訪問請求的存儲(chǔ)控制單元 的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷該存儲(chǔ) 器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的 存儲(chǔ)控制單元,并授予訪問權(quán)限。
其中,所述確定存儲(chǔ)器的還需服務(wù)時(shí)間為確定當(dāng)前擁有訪問權(quán)限的存儲(chǔ)
控制單元中的待傳輸剩余數(shù)據(jù)量,將傳輸該剩余數(shù)據(jù)量的時(shí)間確定為所述存儲(chǔ) 器的還需服務(wù)時(shí)間。
其中,所述從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存
儲(chǔ)控制單元包括判斷是否只有1個(gè)存儲(chǔ)控制單元提出所述訪問請求,如杲是, 則將提出訪問請求的存儲(chǔ)控制單元確定為被授予訪問權(quán)限的存儲(chǔ)控制單元;否
則,將提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者確定為被授予訪問 權(quán)限的存儲(chǔ)控制單元。
較佳地,該方法進(jìn)一步包括預(yù)先為每個(gè)存+者控制單元設(shè)置用于計(jì)算最遲 響應(yīng)時(shí)間的計(jì)數(shù)器;
所述中斷存儲(chǔ)器當(dāng)前服務(wù)之后,進(jìn)一步包括重新確定被中斷服務(wù)的存儲(chǔ) 控制單元的最遲響應(yīng)時(shí)間初始值,將重新確定的最遲響應(yīng)時(shí)間初始值賦值給被 中斷服務(wù)的存儲(chǔ)控制單元對應(yīng)的計(jì)數(shù)器,并令4皮賦值計(jì)數(shù)器遞減計(jì)數(shù)。
較佳地,該方法進(jìn)一步包括預(yù)先為每個(gè)存儲(chǔ)控制單元設(shè)置用于計(jì)算最遲 響應(yīng)時(shí)間的計(jì)數(shù)器;在存儲(chǔ)控制單元提出訪問請求的同時(shí),確定提出訪問請求 的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始值,賦值給與提出訪問請求的存儲(chǔ)控制單 元對應(yīng)的計(jì)數(shù)器,并令纟皮賦值的計(jì)數(shù)器遞減計(jì)數(shù);
確定提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間為將提出訪問請求的 存儲(chǔ)控制單元對應(yīng)的計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值作為存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。
其中,所述為每個(gè)存儲(chǔ)控制單元設(shè)置的用于計(jì)算最遲響應(yīng)時(shí)間的計(jì)數(shù)器設(shè) 置于對應(yīng)的存儲(chǔ)控制單元中,或者設(shè)置于仲裁單元中。
較佳地,預(yù)先為每個(gè)存儲(chǔ)控制單元設(shè)置至少2個(gè)最遲響應(yīng)時(shí)間初始值;所 述確定存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始值為才艮據(jù)需確定最遲響應(yīng)時(shí)間的存 儲(chǔ)控制單元中的剩余緩存數(shù)據(jù)量,從預(yù)先設(shè)置的至少2個(gè)最遲響應(yīng)時(shí)間初始值 中選擇與當(dāng)前剩余緩存數(shù)據(jù)量對應(yīng)的一個(gè),作為賦值給計(jì)數(shù)器的最遲響應(yīng)時(shí)間
其中,所述在接收到存儲(chǔ)控制單元對存儲(chǔ)器的訪問請求后,進(jìn)一步包括 在判定被請求的存儲(chǔ)器空閑且只有1個(gè)存儲(chǔ)控制單元提出所述訪問請求時(shí),將
訪問權(quán)限授予該提出訪問請求的存儲(chǔ)控制單元。
其中,所述將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間
最短者為當(dāng)判定有至少2個(gè)訪問請求的最遲響應(yīng)時(shí)間為最短,確定響應(yīng)最遲
響應(yīng)時(shí)間最短的存儲(chǔ)控制單元所需的時(shí)間,將訪問權(quán)限授予所需時(shí)間最短的存 儲(chǔ)控制單元。
較佳地,所述將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)
時(shí)間最短者之后,進(jìn)一步包括存儲(chǔ)器當(dāng)前服務(wù)結(jié)束之后,在判定當(dāng)前存在 等待響應(yīng)的存儲(chǔ)控制單元時(shí),將訪問權(quán)限授予等待響應(yīng)的存儲(chǔ)控制單元中最 遲響應(yīng)時(shí)間最短者。
本發(fā)明還提供了 一種存儲(chǔ)器訪問的仲裁方法,在避免數(shù)據(jù)斷流的同時(shí), 能夠提高存儲(chǔ)器的訪問效率。
該方法包括
在接收到對存儲(chǔ)器的訪問請求后,確定提出訪問請求的存儲(chǔ)控制單元的最 遲響應(yīng)時(shí)間;
在所述存儲(chǔ)器正在被訪問時(shí),確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所 述還需服務(wù)的時(shí)間是否小于或等于提出訪問請求的存儲(chǔ)控制單元的最遲響 應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷該存儲(chǔ)器當(dāng)前的 服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制 單元,并授予訪問權(quán)限。
本發(fā)明還提供了一種存儲(chǔ)器訪問的仲裁設(shè)備,能夠在避免數(shù)據(jù)斷流的同 時(shí),提高存儲(chǔ)器的訪問效率。
該設(shè)備包括最遲響應(yīng)時(shí)間確定模塊和仲裁模塊;其中,
所述最遲響應(yīng)時(shí)間確定模塊,用于接收對存儲(chǔ)器的訪問請求,確定提出所 述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間和所接 收的訪問請求發(fā)送給仲裁模塊;
所述仲裁模塊,用于接收所述最遲響應(yīng)時(shí)間和訪問請求,在被請求的存 儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán)限授予提
出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
本發(fā)明還提供了 一種存儲(chǔ)器訪問的仲裁設(shè)備,能夠在避免數(shù)據(jù)斷流的同 時(shí),提高存儲(chǔ)器的訪問效率。
該設(shè)備包括最遲響應(yīng)時(shí)間確定模塊和仲裁模塊;其中, 所述最遲響應(yīng)時(shí)間確定模塊,用于接收對存儲(chǔ)器的訪問請求,確定提出所
述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給
仲裁模塊;
所述仲裁模塊,用于接收所述最遲響應(yīng)時(shí)間,所述存儲(chǔ)器正在被訪問時(shí), 確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于提 出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前 的服務(wù);否則,中斷該存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元 中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限。
本發(fā)明還提供了一種存儲(chǔ)控制設(shè)備,能夠在避免數(shù)據(jù)斷流的同時(shí),提高 存儲(chǔ)器的訪問效率。
該存儲(chǔ)控制設(shè)備包括控制模塊和緩存模塊,其中,緩存單元用于緩存待處 理數(shù)據(jù);其特征在于,該設(shè)備還包括最遲響應(yīng)時(shí)間提供模塊;
所述控制模塊,用于在向仲裁單元發(fā)送訪問請求時(shí),通知最遲響應(yīng)時(shí)間提 供模塊;
所述最遲響應(yīng)時(shí)間提供模塊,用于在接收來自控制模塊的通知后,確定 最遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元。
本發(fā)明提供了 一種存儲(chǔ)器訪問的仲裁系統(tǒng),能夠在避免數(shù)據(jù)斷流的同 時(shí),提高存儲(chǔ)器的訪問效率。
該系統(tǒng)包括至少2個(gè)存儲(chǔ)控制單元和仲裁單元;
所述存儲(chǔ)控制單元,用于在向仲裁單元發(fā)送訪問請求時(shí),確定最遲響應(yīng)時(shí) 間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元;
所述仲裁單元,接收各存儲(chǔ)控制單元發(fā)送的訪問請求和各存儲(chǔ)控制單元 的最遲響應(yīng)時(shí)間,在被請求的存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為
至少2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間 最短者。
本發(fā)明又提供了 一種存儲(chǔ)器訪問的仲裁系統(tǒng),能夠在避免數(shù)據(jù)斷流的同 時(shí),提高存儲(chǔ)器的訪問效率。
該系統(tǒng)包括至少2個(gè)存儲(chǔ)控制單元和仲裁單元;
所述存儲(chǔ)控制單元,用于在向仲裁單元發(fā)送訪問請求時(shí),確定最遲響應(yīng)時(shí) 間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元;
所述仲裁單元,接收各存儲(chǔ)控制單元發(fā)送的訪問請求和各存儲(chǔ)控制單元 的最遲響應(yīng)時(shí)間,在被請求的存儲(chǔ)器正在被訪問時(shí),確定所述存儲(chǔ)器的還需 服務(wù)時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于各存儲(chǔ)控制單元的最遲響 應(yīng)時(shí)間,如果是,則繼續(xù)存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷存儲(chǔ)器當(dāng)前的服務(wù), 從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元, 并授予訪問權(quán)限。
根據(jù)以上技術(shù)方案可見,應(yīng)用本發(fā)明能夠在避免數(shù)據(jù)斷流的同時(shí),提高 存儲(chǔ)器的訪問效率。具體來說,具有如下有益效果
1、 當(dāng)多個(gè)存儲(chǔ)控制單元向同一存儲(chǔ)器發(fā)出訪問請求后,根據(jù)各存儲(chǔ)控 制單元的最遲響應(yīng)時(shí)間決定應(yīng)該被授予訪問權(quán)限的存儲(chǔ)控制單元。由于最遲 響應(yīng)時(shí)間為存儲(chǔ)控制單元在無數(shù)據(jù)斷流的情況下還能夠等待的最長時(shí)間,因 此,在存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間到達(dá)之前授予該存儲(chǔ)控制單元訪問權(quán) 限,可以保證該存儲(chǔ)控制單元不出現(xiàn)數(shù)據(jù)斷流。同時(shí),由于沒有在仲裁單元 中設(shè)置服務(wù)時(shí)間,因此在沒有新訪問請求的情況下,獲得訪問權(quán)限的存儲(chǔ)控 制單元可以將數(shù)據(jù)傳輸完,避免了現(xiàn)有的每隔一個(gè)服務(wù)時(shí)間被服務(wù)的存儲(chǔ)控 制單元被中斷而造成的服務(wù)被頻繁中斷的缺陷,因此提高了存儲(chǔ)器的訪問效
率。 .
2、 該方案允許原服務(wù)被中斷,但是在中斷之前,根據(jù)存儲(chǔ)器的還需服 務(wù)時(shí)間以及發(fā)起新訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間確定是否要執(zhí) 行中斷,在新訪問請求能夠等待一段時(shí)間的情況下,不會(huì)中斷存儲(chǔ)器當(dāng)前的
服務(wù),極大程度的降低了中斷頻率,減少了服務(wù)退出和進(jìn)入的時(shí)間,從而進(jìn) 一步提高了對存儲(chǔ)器的訪問效率。
其次,本發(fā)明通過設(shè)置對應(yīng)于存儲(chǔ)控制單元的計(jì)數(shù)器,在提出訪問請求 或服務(wù)被中斷時(shí),將計(jì)數(shù)器賦值為最遲響應(yīng)時(shí)間的初始值,并在被授予訪問 權(quán)限之前的等待期間,令計(jì)數(shù)器遞減計(jì)數(shù)。那么,該可以方便的提供存儲(chǔ)控 制單元在不出現(xiàn)數(shù)據(jù)斷流的情況下還能夠等待的最長時(shí)間,使得本方案實(shí)現(xiàn) 簡單。而且,計(jì)數(shù)器可以設(shè)置在各存儲(chǔ)控制單元中,或統(tǒng)一設(shè)置在仲裁單元 中,因此提高了提供最遲響應(yīng)時(shí)間的靈活性。
另外,本發(fā)明根據(jù)存儲(chǔ)控制單元中的剩余緩存數(shù)據(jù)量來確定最遲響應(yīng)時(shí) 間的初始值,提高了所確定最遲響應(yīng)時(shí)間的準(zhǔn)確程度,進(jìn)一步保證了不出現(xiàn) 數(shù)據(jù)斷流的情況。
圖1為現(xiàn)有的存儲(chǔ)器訪問的仲裁系統(tǒng)的結(jié)構(gòu)示意圖。
圖2為采用圖1示出的存儲(chǔ)器訪問仲裁系統(tǒng)為LCD提供顯示數(shù)據(jù)的系
統(tǒng)結(jié)構(gòu)示意圖。
圖3為現(xiàn)有存儲(chǔ)器的結(jié)構(gòu)示意圖。
圖4為本發(fā)明實(shí)施例中存儲(chǔ)器訪問仲裁方法的流程圖。
圖5為本發(fā)明另一實(shí)施例中存儲(chǔ)器訪問的仲裁方法流程圖。
圖6為在訪問場景1中應(yīng)用本發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。
圖7為在訪問場景2中應(yīng)用本發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。
圖8為在訪問場景3中應(yīng)用本發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。
圖9為本發(fā)明實(shí)施例中存儲(chǔ)器訪問的仲裁系統(tǒng)的結(jié)構(gòu)示意圖。 圖IO為圖9中仲裁單元920的結(jié)構(gòu)示意圖。
圖11為圖9中仲裁單元920的另一種結(jié)構(gòu)示意圖。 圖12為圖9中存儲(chǔ)控制單元910的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖并舉實(shí)施例,對本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明為一種存儲(chǔ)器訪問仲裁方案,其基本思想為在接收到對存儲(chǔ)器 的訪問請求后,確定提出該訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,在被 請求的存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán) 限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。采用本發(fā)明能 夠在避免數(shù)據(jù)斷流的情況下,提高存儲(chǔ)器的訪問效率。
此外,如果仲裁單元判定存儲(chǔ)器正在被訪問,則確定所述存儲(chǔ)器的還需 服務(wù)時(shí)間,判斷該還需服務(wù)時(shí)間是否小于或等于提出訪問請求的各存儲(chǔ)控制 單元的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)當(dāng)前服務(wù);否則,中斷當(dāng)前服務(wù),將 訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中的一個(gè)。可見,本發(fā)明存儲(chǔ)器 訪問仲裁方案提供了中斷服務(wù)的可能,但在中斷之前根據(jù)還需服務(wù)時(shí)間以及 提出新訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間確定是否要執(zhí)行中斷,在新 訪問請求能夠等待一段時(shí)間的情況下,不會(huì)中斷存儲(chǔ)器當(dāng)前的服務(wù),極大程 度的降低了中斷頻率,減少了服務(wù)退出和進(jìn)入的時(shí)間,從而進(jìn)一步提高了對 存儲(chǔ)器的訪問效率。
圖4為本發(fā)明實(shí)施例中存儲(chǔ)器訪問仲裁方法的流程圖,如圖4所示,該 方法包括以下步驟
步驟401:仲裁單元在接收到對存儲(chǔ)器的訪問請求后,確定提出所述訪 問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。
步驟402:判斷被請求的存儲(chǔ)器是否正在被訪問,如果是,則執(zhí)行步驟 403;否則執(zhí)行步驟407。
步驟403:確定被請求的存儲(chǔ)器的還需服務(wù)時(shí)間。
步驟404:判斷所確定的還需服務(wù)時(shí)間是否小于或等于提出訪問請求的
存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,如果是,則執(zhí)行步驟406;否則,執(zhí)行步驟 405。
步驟405:中斷存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中 確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限,本流程結(jié)束。
本步驟中,如果只有一個(gè)存儲(chǔ)控制單元提出訪問請求,那么將訪問權(quán)限 授予提出訪問請求的存儲(chǔ)控制單元;如果有至少2個(gè)存儲(chǔ)控制單元同時(shí)提出 了訪問請求,那么確定這些存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最小的一個(gè),并授 予訪問權(quán)限。
步驟406:繼續(xù)存儲(chǔ)器當(dāng)前的服務(wù),本流程結(jié)束。
步驟407:將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí) 間最短的一個(gè)。
本步驟中,如果只有一個(gè)存儲(chǔ)控制單元提出訪問請求,那么直接將訪問 權(quán)限授予該存儲(chǔ)控制單元即可。
以上流程中,最遲響應(yīng)時(shí)間是指提出訪問請求的存儲(chǔ)控制單元在無數(shù)據(jù) 斷流的情況下還能夠等待的最長時(shí)間,該最長時(shí)間與存儲(chǔ)控制單元和存儲(chǔ)器 之間總線BUS 1的帶寬以及存儲(chǔ)控制單元和其所連接的應(yīng)用側(cè)設(shè)備之間的總 線BUS2的帶寬有關(guān),還與存儲(chǔ)控制單元中FIFO的剩余緩存數(shù)據(jù)量有關(guān)。 如圖2所示的典型應(yīng)用,假設(shè)BUS1的帶寬與BUS2的帶寬之比為8:1,那 么存儲(chǔ)控制單元110在16個(gè)Clk內(nèi)從存儲(chǔ)器130中讀取的數(shù)據(jù)可以供 LCD140使用128個(gè)Clk,那么,存儲(chǔ)控制單元110即使每隔64個(gè)Clk讀取 一次,也不會(huì)造成數(shù)據(jù)斷流。因此,可以設(shè)置64Clk作為該存儲(chǔ)控制單元110 的最遲響應(yīng)時(shí)間。但是,如果在發(fā)送訪問請求時(shí),存儲(chǔ)控制FIF0112中的數(shù) 據(jù)量已經(jīng)不夠供LCD140使用64個(gè)Clk,那么為了準(zhǔn)確的計(jì)算出最遲響應(yīng)時(shí) 間,可以根據(jù)FIF0112中的剩余數(shù)據(jù)量來調(diào)整當(dāng)前最遲響應(yīng)時(shí)間。例如,此 時(shí)FIF0112中的剩余緩存數(shù)據(jù)量為32個(gè)字(WORD),對于BUS1來說, 每個(gè)字的傳輸時(shí)間為1個(gè)Clk,那么對于BUS2來說每個(gè)字的傳輸時(shí)間為8 個(gè)Clk。那么,F(xiàn)IFOl 12中的32個(gè)字可以供LCD140讀取32 x 8 = 256個(gè)Clk,
則將最遲響應(yīng)時(shí)間設(shè)為256Clk。為了確保在從存儲(chǔ)器荻取數(shù)據(jù)的時(shí)間內(nèi)不發(fā) 生斷流,給存儲(chǔ)控制單元留出一段從存儲(chǔ)器讀取數(shù)據(jù)的時(shí)間,可以適當(dāng)減少 最遲響應(yīng)時(shí)間,例如對于8:1的帶寬之比,選擇32x (8-1) ^224Clk作 為最遲響應(yīng)時(shí)間。當(dāng)然,也可以根據(jù)實(shí)際情況或其他需要采用預(yù)先設(shè)置其他 數(shù)值作為最遲響應(yīng)時(shí)間,只要保證在該最遲響應(yīng)時(shí)間到達(dá)之前,應(yīng)用側(cè)設(shè)備 不會(huì)產(chǎn)生數(shù)據(jù)斷流即可。
本流程結(jié)束后,如果當(dāng)前服務(wù)結(jié)束,且判定還存在正在等待響應(yīng)的存儲(chǔ) 控制單元,那么將訪問權(quán)限授予等待響應(yīng)的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最 短的存儲(chǔ)控制單元。
根據(jù)上述流程,采用圖4的仲裁方法,當(dāng)存儲(chǔ)控制單元向同一存儲(chǔ)器發(fā) 出訪問請求后,根據(jù)各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間決定應(yīng)該被授予訪問權(quán) 限的存儲(chǔ)控制單元。由于最遲響應(yīng)時(shí)間為存儲(chǔ)控制單元在無數(shù)據(jù)斷流的情況 下還能夠等待的最長時(shí)間,因此,在存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間到達(dá)之前 授予該存儲(chǔ)控制單元訪問權(quán)限,可以保證該存儲(chǔ)控制單元不出現(xiàn)數(shù)據(jù)斷流。 同時(shí),該方案允許原服務(wù)被中斷,但是在中斷之前,根據(jù)還需服務(wù)時(shí)間以及 發(fā)起新訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間確定是否要執(zhí)行中斷,在新 訪問請求能夠等待一段時(shí)間的情況下,不會(huì)中斷存儲(chǔ)器當(dāng)前的服務(wù),極大程 度的降低了中斷頻率,減少了服務(wù)退出和進(jìn)入的時(shí)間,從而提高了對存儲(chǔ)器 的i方問j丈率。
圖5為本發(fā)明另 一實(shí)施例中存儲(chǔ)器訪問仲裁方法的流程圖。如圖5所示, 該方法包括以下步驟
步驟500:仲裁單元接收存儲(chǔ)控制單元發(fā)起訪問請求。 步驟501:確定提出訪問請求的各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。 本步驟中,最遲響應(yīng)時(shí)間可以由存儲(chǔ)控制單元提供。各存儲(chǔ)控制單元在 發(fā)起訪問請求時(shí),確定最遲響應(yīng)時(shí)間并提供給仲裁單元。在發(fā)起訪問請求時(shí) 提供的最遲響應(yīng)時(shí)間并不是固定不變的,如果訪問請求在一段時(shí)間內(nèi)沒有被 響應(yīng),那么最遲響應(yīng)時(shí)間也隨時(shí)間減少。為了保i正最遲響應(yīng)時(shí)間的準(zhǔn)確性,
在提出的訪問請求沒有被響應(yīng)的等待期間,存儲(chǔ)控制單元按等待時(shí)間遞減最 遲響應(yīng)時(shí)間,并實(shí)時(shí)提供給仲裁單元。因此,在發(fā)起訪問請求時(shí)確定的最遲 響應(yīng)時(shí)間為最遲響應(yīng)時(shí)間的初始值。
實(shí)際中,也可以由仲裁單元提供各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。在存 儲(chǔ)控制單元提出訪問請求后,仲裁單元從自身獲取提出訪問請求的存儲(chǔ)控制 單元的最遲響應(yīng)時(shí)間的初始值,并在該存儲(chǔ)控制單元提出的訪問請求沒有被 響應(yīng)的等待期間,按等待時(shí)間遞減最遲響應(yīng)時(shí)間。
步驟502:仲裁單元判斷被請求的存儲(chǔ)器是否正在被訪問,如果是,則 執(zhí)行步驟503,否則,執(zhí)行步驟510。
步驟503:確定該存儲(chǔ)器的還需服務(wù)時(shí)間。
本步驟中,首先確定當(dāng)前獲得訪問權(quán)限的存儲(chǔ)控制單元中的待傳輸剩余 數(shù)據(jù)量,將傳輸該剩余數(shù)據(jù)量的時(shí)間確定為所述存儲(chǔ)器的還需服務(wù)時(shí)間。例 如,存儲(chǔ)器當(dāng)前服務(wù)的對象是存儲(chǔ)控制單元N,該存儲(chǔ)控制單元N還有16 個(gè)Clk的數(shù)據(jù)還未傳輸,那么該存儲(chǔ)器的還需服務(wù)時(shí)間為16Clk。
步驟504:判斷步驟503確定的還需服務(wù)時(shí)間是否小于或等于各存儲(chǔ)控 制單元的最遲響應(yīng)時(shí)間;如果是,則執(zhí)行步驟511;否則,執(zhí)行步驟505。
步驟505:中斷存儲(chǔ)器當(dāng)前服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確 定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限,然后開始當(dāng)前服務(wù)。
本步驟中,從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的 存儲(chǔ)控制單元的步驟具體為判斷當(dāng)前提出訪問請求的存儲(chǔ)控制單元是否為 一個(gè),如果是,則直接將該存儲(chǔ)控制單元確定為被授予訪問權(quán)限的存儲(chǔ)控制 單元;否則,將當(dāng)前提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最小的一 個(gè)確定為被授予訪問權(quán)限的存儲(chǔ)控制單元。
本步驟中,如果有至少兩個(gè)最遲響應(yīng)時(shí)間相同且均為最小的存儲(chǔ)控制單 元,那么確定最遲響應(yīng)時(shí)間為最小的各存儲(chǔ)控制單元所需服務(wù)時(shí)間,并將訪 問權(quán)限授予所需服務(wù)時(shí)間最小的存儲(chǔ)控制單元。這里,所需服務(wù)時(shí)間是根據(jù) 存儲(chǔ)控制單元所需處理的待傳輸數(shù)據(jù)量而定。待傳輸數(shù)據(jù)量小,則所需服務(wù)
時(shí)間少;反之,所需服務(wù)時(shí)間多。
對于被中斷的服務(wù),將其訪問請求轉(zhuǎn)入等待響應(yīng)的狀態(tài)。此時(shí),重新確 定該存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,并在后續(xù)等待響應(yīng)期間按時(shí)間遞減該最
遲響應(yīng)時(shí)間。本步驟中最遲響應(yīng)時(shí)間的確定方式與步驟501相同。在由存儲(chǔ)
控制單元提供最遲響應(yīng)時(shí)間的情況下,中斷存儲(chǔ)器當(dāng)前服務(wù)后,仲裁單元將 中斷事件通知給被中斷服務(wù)的存儲(chǔ)控制單元,并接收被中斷服務(wù)的存儲(chǔ)控制 單元重新確定的最遲響應(yīng)時(shí)間。
步驟506:遞減等待響應(yīng)的各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。
步驟507:判斷當(dāng)前服務(wù)是否結(jié)束;如果是,則執(zhí)行步驟508;否則, 繼續(xù)當(dāng)前服務(wù),并執(zhí)行步驟506。
步驟508:在仍存在等待響應(yīng)的存儲(chǔ)控制單元的情況下,將訪問權(quán)限授 予等待響應(yīng)的各存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最小的一個(gè),返回步驟506。 如果不存在等待響應(yīng)的存儲(chǔ)控制單元,那么結(jié)束本流程,存儲(chǔ)器空閑。
步驟510:根據(jù)步驟501所確定的最遲響應(yīng)時(shí)間,從提出訪問請求的存 儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,授予訪問權(quán)限,并開 始服務(wù),執(zhí)行步驟506。
本步驟510中,首先判斷是否只有一個(gè)存儲(chǔ)控制單元提出訪問請求,如 果是,則將訪問權(quán)限授予該存儲(chǔ)控制單元,否則,將訪問權(quán)限授予提出訪問 請求的最遲響應(yīng)時(shí)間最小的存儲(chǔ)控制單元。如果有至少兩個(gè)最遲響應(yīng)時(shí)間相 同且均為最小的存儲(chǔ)控制單元,與前述步驟505相同,將訪問權(quán)限授予具有 最小最遲響應(yīng)時(shí)間的存儲(chǔ)控制單元中所需服務(wù)時(shí)間最小的 一個(gè)。
步驟511:繼續(xù)當(dāng)前服務(wù),并執(zhí)行步驟506。
至此,本流程結(jié)束。
在實(shí)際中,也可以在步驟501之前就判斷是否只有一個(gè)存儲(chǔ)控制單元提 出訪問請求并且被請求的存儲(chǔ)器為空閑,如果判斷為是,則直接將訪問權(quán)限 授予該訪問控制單元,然后轉(zhuǎn)向執(zhí)行步驟507;否則,執(zhí)行步驟501。
在以上兩個(gè)實(shí)施例中,各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間都可以由存儲(chǔ)控
制單元或仲裁單元提供。采用存儲(chǔ)控制單元提供最遲響應(yīng)時(shí)間的方式實(shí)現(xiàn)比 較簡單,只需要在每個(gè)存儲(chǔ)控制單元中設(shè)置一個(gè)用于計(jì)算最遲響應(yīng)時(shí)間的遞 減計(jì)數(shù)器,并將遞減計(jì)數(shù)器的值實(shí)時(shí)發(fā)送給仲裁單元即可,減輕了仲裁單元 的負(fù)擔(dān)。在這種方式下,當(dāng)存儲(chǔ)控制單元提出新的訪問請求時(shí),將該存儲(chǔ)控 制單元中的遞減計(jì)數(shù)器賦值為最遲響應(yīng)時(shí)間的初始值并隨訪問請求發(fā)送給 仲裁單元。在等待被響應(yīng)期間,存儲(chǔ)控制單元令遞減計(jì)數(shù)器遞減計(jì)數(shù)同時(shí)實(shí) 時(shí)的發(fā)送給仲裁單元。等待時(shí)間越長,遞減計(jì)數(shù)器的值越小,表明最遲響應(yīng) 時(shí)間越短。當(dāng)某個(gè)存儲(chǔ)控制單元的服務(wù)被中斷,被中斷服務(wù)的存儲(chǔ)控制單元 也會(huì)重新確定最遲響應(yīng)時(shí)間的初始值,然后賦值給遞減計(jì)數(shù)器,并開始向仲 裁單元提供遞減計(jì)數(shù)器的值。在等待響應(yīng)期間,令遞減計(jì)數(shù)器遞減計(jì)數(shù)。當(dāng) 訪問請求被響應(yīng)后,存儲(chǔ)控制單元停止計(jì)數(shù)器的計(jì)數(shù)并停止發(fā)送計(jì)數(shù)器的 值。
最遲響應(yīng)時(shí)間的初始值是預(yù)先設(shè)置并保存在存儲(chǔ)控制單元中的,在確定 最遲響應(yīng)時(shí)間的初始值時(shí)可以直接使用預(yù)先設(shè)置好的數(shù)值。存儲(chǔ)控制單元能 夠等待的最長時(shí)間還與存儲(chǔ)控制單元中的剩余緩存有關(guān),剩余緩存越少,最
遲響應(yīng)時(shí)間越短。例如,最遲響應(yīng)時(shí)間的初始值是64Clk , FIFO中可以緩存 64個(gè)Clk的數(shù)據(jù),如果FIFO已滿,那么可以等待64Clk,如果FIFO半滿, 當(dāng)?shù)却?2Clk之后就會(huì)出現(xiàn)數(shù)據(jù)斷流。那么,在確定最遲響應(yīng)時(shí)間的初始值 時(shí),還需要根據(jù)FIFO中的剩余緩存數(shù)據(jù)量確定最遲響應(yīng)時(shí)間的初始值。在 這種情況下,可以針對FIFO中剩余緩存數(shù)據(jù)量的不同,預(yù)先設(shè)置多個(gè)最遲 響應(yīng)時(shí)間的初始值,在需要確定最遲響應(yīng)時(shí)間的初始值時(shí),乂人多個(gè)初始值中 選擇與當(dāng)前剩余緩存數(shù)據(jù)量對應(yīng)的一個(gè),作為最遲響應(yīng)時(shí)間的初始值,并賦
值給遞減計(jì)數(shù)器。其中,剩余緩存數(shù)據(jù)量可以采用剩余緩存數(shù)據(jù)量占總緩存 數(shù)據(jù)量的比例表示。
下面舉一個(gè)存儲(chǔ)控制單元確定最遲響應(yīng)時(shí)間的實(shí)例。設(shè)最遲響應(yīng)時(shí)間為 do,剩余緩存數(shù)據(jù)量長度為Fifo.denth, Fifo.denth采用剩余緩存數(shù)據(jù)量占緩 存總數(shù)據(jù)量的比例表示,當(dāng)FIFO為全滿時(shí)dc = 60Clk。
當(dāng)存儲(chǔ)控制單元發(fā)起一個(gè)新的訪問請求時(shí),需要確定do,如果
Fifo.denth>0.75,則d0 = 60Clk;如果0.5^Fifo.denth>0.75,則d。 = 40Clk;如 果0.25^Fifo.denth>0.5,則d0 = 20Clk;如果0.25^Fifo.denth〉0,則d0-0Clk。 當(dāng)存儲(chǔ)控制單元等待被響應(yīng)期間,令d(^d()-l。
當(dāng)存儲(chǔ)控制單元已經(jīng)獲得的服務(wù)被中斷,重新根據(jù)Fifo.denth以及上述 策略重新確定do,并在等待被響應(yīng)期間,令do-d。-l。
存儲(chǔ)控制單元會(huì)實(shí)時(shí)的將其確定的d。發(fā)送給仲裁單元。
以上所描述的是存儲(chǔ)控制單元確定最遲響應(yīng)時(shí)間并提供給仲裁單元的 方式。在采用仲裁單元提供最遲響應(yīng)時(shí)間時(shí),需要預(yù)先在仲裁單元中保存每 個(gè)存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始值,并為每個(gè)存儲(chǔ)控制單元設(shè)置一個(gè)遞 減計(jì)數(shù)器。這種方式下,當(dāng)仲裁單元接收到某個(gè)存儲(chǔ)控制單元提出的訪問請 求時(shí),由仲裁單元從自身獲取預(yù)設(shè)的該存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始值 并賦值給對應(yīng)的遞減計(jì)數(shù)器,并在該存儲(chǔ)控制單元被授予訪問權(quán)限之前,令 遞減計(jì)數(shù)器遞減計(jì)數(shù)。當(dāng)某個(gè)存儲(chǔ)控制單元的服務(wù)被中斷,此時(shí)仲裁單元也 會(huì)重新確定被中斷服務(wù)的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間的初始值,為遞減計(jì) 數(shù)器賦值,并在等待響應(yīng)期間內(nèi)令遞減計(jì)數(shù)器遞減計(jì)數(shù)。當(dāng)訪問請求被響應(yīng) 后,仲裁單元停止被響應(yīng)的存儲(chǔ)控制單元中遞減計(jì)數(shù)器計(jì)數(shù)。
該仲裁單元確定最遲響應(yīng)時(shí)間初始值的方式與前述存儲(chǔ)控制單元確定 最遲響應(yīng)時(shí)間初始值的方式相同。如果在確定最遲響應(yīng)時(shí)間時(shí)考慮到存儲(chǔ)控 制單元的FIFO剩余緩存數(shù)據(jù)量,那么還需要從相應(yīng)的存儲(chǔ)控制單元中獲取 其FIFO的剩余援存數(shù)據(jù)量。
這種仲裁單元提供最遲響應(yīng)時(shí)間的方式,不用修改現(xiàn)有的存儲(chǔ)控制單 元,因此可以利用現(xiàn)有的存儲(chǔ)控制單元實(shí)現(xiàn)本發(fā)明的存儲(chǔ)器訪問仲裁方案。
基于以上兩個(gè)實(shí)施例所描述的技術(shù)方案,以下舉多個(gè)實(shí)例來說明使用本 發(fā)明存儲(chǔ)器訪問仲裁方法的效果。
首先仍以背景技術(shù)中的訪問場景1為例,對采用本發(fā)明的存儲(chǔ)器訪問仲 裁方法進(jìn)行說明。在訪問場景1中,存儲(chǔ)控制單元A、 B和C需要傳輸?shù)臄?shù)
據(jù)分別需要20、 15和10個(gè)Clk完成,存儲(chǔ)控制單元A、 B和C的最遲響應(yīng) 時(shí)間分別為d0A = 60Clk、 d0B = 50Clk和doc = 20Clk。圖6為在訪問場景1中 應(yīng)用本發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。如圖6所示,當(dāng)A、 B 和C同時(shí)提出訪問請求時(shí),采用本發(fā)明的仲裁方案,首先將訪問權(quán)限授予最 遲響應(yīng)時(shí)間最短的存儲(chǔ)控制單元C,并開始服務(wù)。在服務(wù)C的時(shí)間段內(nèi),存 儲(chǔ)控制單元A和B等待響應(yīng),其各自的最遲響應(yīng)時(shí)間隨等待時(shí)間的增加而 減少。當(dāng)存儲(chǔ)控制單元C的10個(gè)Clk的數(shù)據(jù)傳輸完成后,doA-60- 10 = 50Clk、 d0B = 50- 10 = 40Clk;此時(shí),將訪問權(quán)限授予最遲響應(yīng)時(shí)間較短的存 儲(chǔ)控制單元B,并開始服務(wù)。在服務(wù)B的時(shí)間段內(nèi),存儲(chǔ)控制單元A等待 響應(yīng),其各自的最遲響應(yīng)時(shí)間隨等待時(shí)間的增加而減少。當(dāng)存儲(chǔ)控制單元B 的15個(gè)Clk的數(shù)據(jù)傳輸完成后,doA = 50 - 15 = 35Clk,此時(shí)將訪問權(quán)限授予 存儲(chǔ)控制單元A,并開始服務(wù),直到數(shù)據(jù)傳輸完畢??梢姡趫鼍發(fā)中,各 存儲(chǔ)控制單元被服務(wù)的時(shí)間為C (10Clk) — B (15Clk) — A (20Clk), 沒有出現(xiàn)數(shù)據(jù)斷流且服務(wù)沒有被中斷。在相同訪問場景下,如果采用背景技 術(shù)中的仲裁策略二,各存儲(chǔ)控制單元被服務(wù)的時(shí)間為A( 10Clk) —B( 10Clk) —C(10Clk) —A(10Clk) —B(5Clk)??梢?,采用本發(fā)明實(shí)施例的存儲(chǔ) 器訪問仲裁方法,能夠有效地減少服務(wù)被中斷的次數(shù),從而提高了存儲(chǔ)器的 訪問效率。如果采用背景技術(shù)中的仲裁策略一,在A的優(yōu)先級為最高的情 況下,會(huì)先服務(wù)A,那么當(dāng)A退出服務(wù)時(shí)開始服務(wù)B,此時(shí)C已經(jīng)發(fā)生了 數(shù)據(jù)斷流??梢?,采用本發(fā)明實(shí)施例的存儲(chǔ)器訪問仲裁方法,由于各訪問請 求被響應(yīng)的時(shí)刻都沒有超過最遲響應(yīng)時(shí)間,因此不會(huì)造成應(yīng)用側(cè)設(shè)備的數(shù)據(jù) 斷流。
下面以訪問場景2為例,對采用本發(fā)明的存儲(chǔ)器訪問仲裁方法進(jìn)行說 明。假設(shè),在訪問場景2中,存儲(chǔ)控制單元A、 B和C需要傳輸?shù)臄?shù)據(jù)分別 需要20、 15和10個(gè)Clk完成,存儲(chǔ)控制單元A、 B和C的最遲響應(yīng)時(shí)間分 別為d。A = 60Clk、 d。B = 50Clk和doc = 20Clk。圖7為在訪問場景2中應(yīng)用本 發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。如圖7所示,當(dāng)A和B同時(shí)
向空閑的存儲(chǔ)器提出訪問請求時(shí),將訪問權(quán)限授予最遲響應(yīng)時(shí)間較小的存儲(chǔ)
控制單元B,并開始服務(wù)。10個(gè)Clk后,存儲(chǔ)控制單元C提出訪問請求, 此時(shí),d。A= 60- 10= 50Clk, dQC = 20Clk,存儲(chǔ)器還需服務(wù)存儲(chǔ)控制單元B 的時(shí)間為5Clk,那么根據(jù)本發(fā)明的仲裁方法,繼續(xù)當(dāng)前服務(wù),存儲(chǔ)控制單元 A和C等待。當(dāng)存儲(chǔ)控制單元B的剩余5個(gè)Clk的數(shù)據(jù)傳輸完成后,d0A = 50- 5 = 45Clk, d0C = 20-5-15Clk;此時(shí),將訪問權(quán)限授予最遲響應(yīng)時(shí)間較 短的存儲(chǔ)控制單元C,并開始服務(wù)。在服務(wù)C的時(shí)間段內(nèi),存儲(chǔ)控制單元A 等待響應(yīng),其最遲響應(yīng)時(shí)間隨等待時(shí)間的增加而減少。當(dāng)存儲(chǔ)控制單元C 的10個(gè)Clk的數(shù)據(jù)傳輸完成后,doA = 45 - 10 = 35Clk,此時(shí)將訪問權(quán)限授予 存儲(chǔ)控制單元A,并開始服務(wù),直到數(shù)據(jù)傳輸完畢??梢姡谠L問場景2中, 各存儲(chǔ)控制單元被服務(wù)的時(shí)間為B ( 15Clk) — C ( 10Clk) — A (20Clk), 沒有出現(xiàn)數(shù)據(jù)斷流且服務(wù)沒有被中斷。在相同訪問場景下,如果采用背景技 術(shù)中的仲裁策略二,各存儲(chǔ)控制單元被服務(wù)的時(shí)間為B( 10Clk) —A( 10Clk) —B(5Clk) —C(10Clk) — A(10Clk) , A和B的服務(wù)都被中斷??梢姴?用本發(fā)明實(shí)施例的存儲(chǔ)器訪問仲裁方法,能夠有效地減少服務(wù)被中斷的次 數(shù),從而提高了存儲(chǔ)器的訪問效率。如果采用背景技術(shù)中的仲裁策略一,在 A的優(yōu)先級為最高的情況下,各存儲(chǔ)控制單元被服務(wù)的時(shí)間為B(15Clk) —A(20Clk) —C(10Clk) , C會(huì)發(fā)生數(shù)據(jù)斷流??梢姡捎帽景l(fā)明實(shí)施例 的存儲(chǔ)器訪問仲裁方法,由于各訪問請求被響應(yīng)的時(shí)刻都沒有超過最遲響應(yīng) 時(shí)間,因此不會(huì)造成應(yīng)用側(cè)設(shè)備的數(shù)據(jù)斷流。
下面以訪問場景3為例,對采用本發(fā)明的存儲(chǔ)器訪問仲裁方法進(jìn)行說 明。假設(shè),在訪問場景3中,存儲(chǔ)控制單元A、 B和C需要傳輸?shù)臄?shù)據(jù)分別 需要35、 15和10個(gè)Clk完成,存儲(chǔ)控制單元A、 B和C的最遲響應(yīng)時(shí)間分 別為d。A = 60Clk、 d。B = 50Clk和doc = 20Clk。圖8為在訪問場景3中應(yīng)用本 發(fā)明存儲(chǔ)器訪問仲裁方法的訪問過程示意圖。如圖8所示,當(dāng)A向空閑的 存儲(chǔ)器提出訪問請求時(shí),獲得訪問權(quán)限并開始傳輸數(shù)據(jù)。10個(gè)Clk后,存儲(chǔ) 控制單元B和C同時(shí)提出訪問請求,且d0B = 50Clk, doc = 20Clk,存儲(chǔ)器還
需服務(wù)存儲(chǔ)控制單元A的時(shí)間為35 - 10 = 25Clk,那么根據(jù)本發(fā)明的仲裁方 法,中斷當(dāng)前服務(wù),授予存儲(chǔ)控制單元C訪問權(quán)限并開始服務(wù)。在服務(wù)C 的時(shí)間段內(nèi),存儲(chǔ)控制單元A和B等待響應(yīng),存儲(chǔ)控制單元A的最遲響應(yīng) 時(shí)間從重新確定的初始值開始并隨等待時(shí)間的增加而減少,例如根據(jù)前述最 遲響應(yīng)時(shí)間的初始值確定方法確定出doA= 60Clk,則/人60開始遞減,存儲(chǔ) 控制單元B的最遲響應(yīng)時(shí)間從doB- 50Clk開始并隨等待時(shí)間的增加而減少。 當(dāng)存儲(chǔ)控制單元C的10個(gè)Clk的數(shù)據(jù)傳輸完成后,d。A = 60 - 10 = 50Clk, d0B = 50 - 10 = 40Clk,則將訪問權(quán)限授予最遲響應(yīng)時(shí)間較短的存儲(chǔ)控制單元 B,并開始服務(wù)。在服務(wù)B的時(shí)間段內(nèi),存儲(chǔ)控制單元A等待響應(yīng),其最遲 響應(yīng)時(shí)間從d0A=50開始隨等待時(shí)間的增加而減少。當(dāng)存儲(chǔ)控制單元B的 15個(gè)Clk的數(shù)據(jù)傳輸完成后,doA= 50- 15 = 35Clk,此時(shí)將訪問4又限授予存 儲(chǔ)控制單元A,并開始服務(wù),直到數(shù)據(jù)傳輸完畢??梢?,在訪問場景3中, 各存儲(chǔ)控制單元被服務(wù)的時(shí)間為A(10Clk) —C(10Clk) —B(15Clk) —A(25Clk)。在相同訪問場景下,如果采用背景技術(shù)中的仲裁策略二,各 存儲(chǔ)控制單元被服務(wù)的時(shí)間為A ( lOClk) —B ( lOClk) —C ( lOClk) —A (lOClk) — B(5Clk) — A(15Clk) , A的服務(wù)被中斷2次,B的服務(wù)被中 斷1次??梢?,采用本發(fā)明實(shí)施例的存儲(chǔ)器訪問仲裁方法,雖然A的服務(wù) 被中斷了一次,但相較于采用現(xiàn)有技術(shù)服務(wù)被頻繁中斷的情況來說,釆用本 發(fā)明方案依然能夠有效的減少服務(wù)被中斷的次數(shù),從而提高存儲(chǔ)器被訪問的 效率。如果采用背景技術(shù)中的仲裁策略一,在A的優(yōu)先級為最高的情況下, 各存儲(chǔ)控制單元被服務(wù)的時(shí)間為A (35Clk) — B ( 15Clk) — C ( 10Clk), C會(huì)發(fā)生數(shù)據(jù)斷流??梢?,采用本發(fā)明實(shí)施例的存儲(chǔ)器訪問仲裁方法,由于 各訪問請求被響應(yīng)的時(shí)刻都沒有超過最遲響應(yīng)時(shí)間,因此不會(huì)造成應(yīng)用側(cè)設(shè) 備的數(shù)據(jù)斷流。
從以上3個(gè)實(shí)例可見,本發(fā)明的存儲(chǔ)器訪問仲裁方法確實(shí)能夠在避免數(shù) 據(jù)斷流的同時(shí),有效的提高存儲(chǔ)器的訪問效率。
為實(shí)現(xiàn)本發(fā)明的存儲(chǔ)器訪問仲裁方法,本發(fā)明還提供了 一種存儲(chǔ)器訪問
仲裁系統(tǒng)。圖9為本發(fā)明實(shí)施例中存儲(chǔ)器訪問仲裁系統(tǒng)的結(jié)構(gòu)示意圖。如圖
9所示,該系統(tǒng)包括仲裁單元920和至少2個(gè)存儲(chǔ)控制單元910;其中,
各存儲(chǔ)控制單元910,將請求訪問存儲(chǔ)器的訪問請求發(fā)送給仲裁單元
920。
仲裁單元920,接收來自各存儲(chǔ)控制單元910的訪問請求,確定發(fā)起訪 問請求的存儲(chǔ)控制單元910的最遲響應(yīng)時(shí)間,在被請求的存儲(chǔ)器空閑且提出 訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存 儲(chǔ)控制單元910中最遲響應(yīng)時(shí)間最短的存儲(chǔ)控制單元910。如果被請求的存 儲(chǔ)器正在被訪問,確定該存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所確定的還需服務(wù)時(shí) 間是否小于或等于提出訪問請求的各存儲(chǔ)控制單元910的最遲響應(yīng)時(shí)間,如 果是,則繼續(xù)存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷存儲(chǔ)器當(dāng)前的服務(wù),從提出訪 問請求的存儲(chǔ)控制單元910中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授 權(quán)訪問權(quán)限。
該仲裁單元920可以從自身獲取預(yù)設(shè)的各存儲(chǔ)控制單元910的最遲響應(yīng) 時(shí)間;也可以根據(jù)從各存儲(chǔ)控制單元910獲取其提供的最遲響應(yīng)時(shí)間。采用 后者方式,各存儲(chǔ)控制單元910需要在發(fā)起的訪問請求的同時(shí)向仲裁單元 920發(fā)送其最遲響應(yīng)時(shí)間,并在訪問請求被響應(yīng)之前持續(xù)發(fā)送。
圖10為圖9中仲裁單元920的結(jié)構(gòu)示意圖。如圖IO所示,該仲裁單元 920包括最遲響應(yīng)時(shí)間確定模塊921、仲裁模塊922和執(zhí)行模塊923。其中,
最遲響應(yīng)時(shí)間確定模塊921,用于接收來自各存儲(chǔ)控制單元910的對存 儲(chǔ)器的訪問請求,確定提出訪問請求的各存儲(chǔ)控制單元910的最遲響應(yīng)時(shí) 間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁模塊922。
該最遲響應(yīng)時(shí)間確定模塊921具體包括接收子模塊9211和確定子模塊 9212。其中,接收子模塊9211用于接收來自各存儲(chǔ)控制單元910訪問請求 以及各存儲(chǔ)控制控制單元910提供的最遲響應(yīng)時(shí)間,將接收的最遲響應(yīng)時(shí)間 發(fā)送給確定子模塊9212;確定子模塊9212將接收到的最遲響應(yīng)時(shí)間確定為 存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。
仲裁模塊922,用于接收來自確定子模塊9212的最遲響應(yīng)時(shí)間,根據(jù) 提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,判斷授予哪個(gè)存儲(chǔ)控制單元 訪問權(quán)限,并將仲裁結(jié)果發(fā)送給執(zhí)行模塊923。該仲裁模塊922具體包括判 斷子模塊9221和授權(quán)子模塊9222。其中,判斷子模塊9221判斷被請求的 存儲(chǔ)器是否空閑,如果判定被請求的存儲(chǔ)器正在被訪問,還需要進(jìn)一步確定 當(dāng)前提出訪問的存儲(chǔ)控制單元的個(gè)數(shù),將判斷結(jié)果發(fā)送給授權(quán)子模塊9222。
授權(quán)子模塊9222根據(jù)所接收的判斷結(jié)果進(jìn)行相應(yīng)的授權(quán)操作。具體而 言,當(dāng)判斷結(jié)果指示被請求的存儲(chǔ)器空閑且當(dāng)前提出訪問請求的存儲(chǔ)控制單 元910的個(gè)數(shù)為l個(gè)時(shí),將訪問權(quán)限授予該提出訪問的存儲(chǔ)控制單元910; 當(dāng)判斷結(jié)果指示被請求的存儲(chǔ)器空閑且當(dāng)前提出訪問的存儲(chǔ)控制單元910 的個(gè)數(shù)為至少2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元910中 最遲響應(yīng)時(shí)間最短者;當(dāng)判斷結(jié)果指示被請求的存儲(chǔ)器正在被訪問時(shí),確定 被請求的存儲(chǔ)器的還需服務(wù)時(shí)間,判斷該還需服務(wù)時(shí)間是否小于或等于各存 儲(chǔ)控制單元910的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)存儲(chǔ)器當(dāng)前的服務(wù);否則, 中斷存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪 問權(quán)限的存儲(chǔ)控制單元910,并授予訪問權(quán)限。該授權(quán)子模塊9222還將以 上仲裁結(jié)果發(fā)送給執(zhí)行模塊923。
執(zhí)行模塊923,用于根據(jù)接收到的仲裁結(jié)果執(zhí)行相應(yīng)操作。具體而言, 當(dāng)某個(gè)存儲(chǔ)控制單元910被授予訪問權(quán)限時(shí),該執(zhí)行模塊923將被授予權(quán)限 的存儲(chǔ)控制單元910通知給相應(yīng)的存儲(chǔ)器;當(dāng)當(dāng)前服務(wù)被中斷并將訪問權(quán)限 授予某個(gè)存儲(chǔ)控制單元910時(shí),該執(zhí)行模塊923將中斷事件通知給被中斷服 務(wù)的存儲(chǔ)控制單元910,那么,被中斷服務(wù)的存儲(chǔ)控制單元910可以根據(jù)中 斷事件通知,重新確定最遲響應(yīng)時(shí)間,并提供給仲裁單元920中的最遲響應(yīng) 時(shí)間確定模塊921。
如前所述,仲裁單元920還可以從自身獲取預(yù)設(shè)的最遲響應(yīng)時(shí)間的初始 值。在這種方式下,采用圖11示出的仲裁單元920的結(jié)構(gòu)示意圖。如圖11 所示,該仲裁單元920仍然包括最遲響應(yīng)時(shí)間確定才莫塊921、仲裁模塊922
和執(zhí)行模塊923。與圖0示出的仲裁單元不同之處在于,圖ll示出的仲裁 單元920中的最遲響應(yīng)時(shí)間確定模塊921包括存儲(chǔ)子模塊1101和確定子模 塊1102。其中,存儲(chǔ)子模塊1101用于保存各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間 初始值;確定子模塊1102用于接收各存儲(chǔ)控制單元提供的訪問請求,從存 儲(chǔ)子模塊iioi中獲取提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始 值,并將確定的最遲響應(yīng)時(shí)間初始值提供給仲裁模塊922。在提出訪問請求 的存儲(chǔ)控制單元等待響應(yīng)期間,將該存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間從其初始 值開始遞減,并實(shí)時(shí)提供給仲裁模塊922。
在這種情況下,仲裁模塊922與圖10中仲裁模塊922的功能和組成相 同。執(zhí)行模塊923與圖10中執(zhí)行模塊923的功能相似,不同之處在于,當(dāng) 接收的仲裁結(jié)果指示中斷存儲(chǔ)器當(dāng)前的服務(wù)時(shí),將中斷事件通知給確定子模 塊1102,使得確定子模塊1102重新確定最遲響應(yīng)時(shí)間的初始值,并在被中 斷服務(wù)的存儲(chǔ)控制單元等待響應(yīng)期間,從初始值開始遞減。
當(dāng)最遲響應(yīng)時(shí)間由仲裁單元920提供時(shí),圖9中的存儲(chǔ)控制單元910可 以采用現(xiàn)有的設(shè)備。當(dāng)最遲響應(yīng)時(shí)間由存儲(chǔ)控制單元910提供時(shí),需要采用 本發(fā)明提出的存儲(chǔ)控制單元。以下對本發(fā)明提出的存儲(chǔ)控制單元進(jìn)行詳細(xì)描 述。
圖12為圖9中存儲(chǔ)控制單元910的結(jié)構(gòu)示意圖。如圖12所示,該存儲(chǔ) 控制單元910包括控制模塊911和緩存模塊912,還包括最遲響應(yīng)時(shí)間提供 模塊913。其中,
控制模塊911,用于在向仲裁單元920發(fā)送訪問請求的同時(shí),將發(fā)起訪 問請求事件通知給最遲響應(yīng)時(shí)間提供模塊913。在接收到仲裁單元920發(fā)送 的中斷事件后,將中斷事件通知給最遲響應(yīng)時(shí)間提供模塊913。
緩存模塊912用于緩存數(shù)據(jù)。
最遲響應(yīng)時(shí)間提供模塊913,在控制模塊911的通知下,確定最遲響應(yīng) 時(shí)間,并發(fā)送給仲裁單元920。
最遲響應(yīng)時(shí)間提供模塊913具體包括設(shè)置子模塊9131和遞減計(jì)數(shù)器
9132。
設(shè)置子模塊9131在接收到來自控制模塊911的發(fā)起訪問請求的通知后, 從所述緩存模塊912中獲取剩余緩存數(shù)據(jù)量,根據(jù)所獲取的剩余緩存it據(jù)量 從預(yù)先設(shè)置的至少2個(gè)最遲響應(yīng)時(shí)間初始值中選擇與當(dāng)前剩余緩存數(shù)據(jù)量 對應(yīng)的一個(gè),將所選擇的初始值賦值給遞減計(jì)凄t器9132,并啟動(dòng)該遞減計(jì) 數(shù)器9132。在訪問請求被響應(yīng)之前,不斷將遞減計(jì)數(shù)器9132的值發(fā)送給仲 裁單元920。在接收到來自控制模塊911的中斷事件通知后,重新確定最遲 響應(yīng)時(shí)間的初始值,并賦值給遞減計(jì)數(shù)器9132,然后啟動(dòng)該遞減計(jì)數(shù)器 9132,在訪問請求被再次響應(yīng)之前,不斷將遞減計(jì)數(shù)器9132的值發(fā)送給仲 裁單元920。
由以上所述可以看出,本發(fā)明所提供的存儲(chǔ)器訪問仲裁方案,能夠在不 造成數(shù)據(jù)斷流的情況下,提高存儲(chǔ)器的訪問效率。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的 保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種存儲(chǔ)器訪問仲裁方法,其特征在于,該方法包括在接收到存儲(chǔ)控制單元對存儲(chǔ)器的訪問請求后,確定提出所述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間;在所述存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
2、 如權(quán)利要求l所述的方法,其特征在于,所述確定提出所述訪問請求的 存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間之后,進(jìn)一步包括在所述存儲(chǔ)器正在被訪問時(shí), 確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于提出 訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服 務(wù);否則,中斷該存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定 出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限。
3、 如權(quán)利要求2所述的方法,其特征在于,所述確定存儲(chǔ)器的還需服務(wù)時(shí) 間為確定當(dāng)前擁有訪問權(quán)限的存儲(chǔ)控制單元中的待傳輸剩余數(shù)據(jù)量,將傳輸 該剩余數(shù)據(jù)量的時(shí)間確定為所述存儲(chǔ)器的還需服務(wù)時(shí)間。
4、 如權(quán)利要求2所述的方法,其特征在于,所述從提出訪問請求的存儲(chǔ)控 制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元包括判斷是否只有一個(gè)存儲(chǔ) 控制單元提出所述訪問請求,如果是,則將提出訪問請求的存儲(chǔ)控制單元確定 為被授予訪問權(quán)限的存儲(chǔ)控制單元;否則,將提出訪問請求的存儲(chǔ)控制單元中 最遲響應(yīng)時(shí)間最短者確定為被授予訪問權(quán)限的存儲(chǔ)控制單元。
5、 如權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先為每 個(gè)存儲(chǔ)控制單元設(shè)置用于計(jì)算最遲響應(yīng)時(shí)間的計(jì)數(shù)器;所述中斷存儲(chǔ)器當(dāng)前服務(wù)之后,進(jìn)一步包括重新確定被中斷服務(wù)的存儲(chǔ) 控制單元的最遲響應(yīng)時(shí)間初始值,將重新確定的最遲響應(yīng)時(shí)間初始值賦值給祐: 中斷服務(wù)的存儲(chǔ)控制單元對應(yīng)的計(jì)數(shù)器,并令被賦值計(jì)數(shù)器遞減計(jì)數(shù)。
6、 如權(quán)利要求l所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先為每 個(gè)存儲(chǔ)控制單元設(shè)置用于計(jì)算最遲響應(yīng)時(shí)間的計(jì)數(shù)器;在存儲(chǔ)控制單元提出訪問請求的同時(shí),確定提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初始值,賦 值給與提出訪問請求的存儲(chǔ)控制單元對應(yīng)的計(jì)數(shù)器,并令被賦值的計(jì)數(shù)器遞減計(jì)數(shù);確定提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間為將提出訪問請求的 存儲(chǔ)控制單元對應(yīng)的計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值作為存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間。
7、 如權(quán)利要求5或6所述的方法,其特征在于,所述為每個(gè)存儲(chǔ)控制單元 設(shè)置的用于計(jì)算最遲響應(yīng)時(shí)間的計(jì)數(shù)器設(shè)置于對應(yīng)的存儲(chǔ)控制單元中,或者設(shè) 置于仲裁單元中。
8、 如權(quán)利要求5或6所述的方法,其特征在于,預(yù)先為每個(gè)存儲(chǔ)控制單元 設(shè)置至少2個(gè)最遲響應(yīng)時(shí)間初始值;所述確定存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間初 始值為根據(jù)需確定最遲響應(yīng)時(shí)間的存儲(chǔ)控制單元中的剩余緩存數(shù)據(jù)量,從預(yù) 先設(shè)置的至少2個(gè)最遲響應(yīng)時(shí)間初始值中選擇與當(dāng)前剩余緩存數(shù)據(jù)量對應(yīng)的一 個(gè),作為賦值給計(jì)數(shù)器的最遲響應(yīng)時(shí)間初始值。
9、 如權(quán)利要求l所述的方法,其特征在于,所述在接收到存儲(chǔ)控制單元對 存儲(chǔ)器的訪問請求后,進(jìn)一步包括在判定被請求的存儲(chǔ)器空閑且只有1個(gè)存 儲(chǔ)控制單元提出所述訪問請求時(shí),將訪問權(quán)PMt予該提出訪問請求的存儲(chǔ)控制 單元。
10、 如權(quán)利要求1所述的方法,其特征在于,所述將訪問權(quán)限授予提出訪 問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者為當(dāng)判定有至少2個(gè)訪問請求 的最遲響應(yīng)時(shí)間為最短,確定響應(yīng)最遲響應(yīng)時(shí)間最短的存儲(chǔ)控制單元所需的時(shí) 間,將訪問權(quán)限授予所需時(shí)間最短的存儲(chǔ)控制單元。
11、 如權(quán)利要求1所述的方法,其特征在于,所述將訪問權(quán)限授予提出訪 問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者之后,進(jìn)一步包括存儲(chǔ)器當(dāng)前 服務(wù)結(jié)束之后,在判定當(dāng)前存在等待響應(yīng)的存儲(chǔ)控制單元時(shí),將訪問權(quán)限授予 等待響應(yīng)的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
12、 一種存儲(chǔ)器訪問仲裁方法,其特征在于,該方法包括 在接收到對存儲(chǔ)器的訪問請求后,確定提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間;在所述存儲(chǔ)器正在被訪問時(shí),確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所述 還需服務(wù)的時(shí)間是否小于或等于提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí) 間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷該存儲(chǔ)器當(dāng)前的服務(wù), 從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并 授予訪問權(quán)限。
13、 如權(quán)利要求12所述的方法,其特征在于,所述從提出訪問請求的存儲(chǔ) 控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元包括判斷是否只有1個(gè)存 儲(chǔ)控制單元提出所述訪問請求,如果是,則將提出訪問請求的存儲(chǔ)控制單元確 定為被授予訪問權(quán)限的存儲(chǔ)控制單元;否則,將提出訪問請求的存儲(chǔ)控制單元 中最遲響應(yīng)時(shí)間最短者確定為被授予訪問權(quán)限的存儲(chǔ)控制單元。
14、 如權(quán)利要求12所述的方法,其特征在于,所述確定提出訪問請求的存 儲(chǔ)控制單元的最遲響應(yīng)時(shí)間之后,進(jìn)一步包括在所述存儲(chǔ)器空閑且至少有2 個(gè)存儲(chǔ)控制單元提出訪問請求時(shí),將訪問權(quán)限授予提出訪問請求的最遲響應(yīng)時(shí) 間最短的存儲(chǔ)控制單元。
15、 一種存儲(chǔ)器訪問仲裁設(shè)備,其特征在于,該設(shè)備包括最遲響應(yīng)時(shí)間 確定模塊和仲裁模塊;其中,所述最遲響應(yīng)時(shí)間確定模塊,用于接收對存儲(chǔ)器的訪問請求,確定提出所 述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間和所接 收的訪問請求發(fā)送給仲裁模塊;所述仲裁模塊,用于接收所述最遲響應(yīng)時(shí)間和訪問請求,在被請求的存儲(chǔ) 器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán)限授予提出訪 問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
16、 如權(quán)利要求15所述的設(shè)備,其特征在于,所述仲裁模塊包括判斷子模 塊和授權(quán)子模塊;所述判斷子模塊,用于接收所述最遲響應(yīng)時(shí)間和訪問請求,判斷被請求的 存儲(chǔ)器是否空閑,確定當(dāng)前提出訪問請求的存儲(chǔ)控制單元的個(gè)數(shù),將空閑與否以及所確定的個(gè)數(shù)作為判斷結(jié)果發(fā)送給授權(quán)子模塊;所述授權(quán)子模塊,用于在所接收的判斷結(jié)果指示被請求的存儲(chǔ)器空閑且當(dāng) 前提出訪問請求的存儲(chǔ)控制單元的個(gè)數(shù)為1個(gè)時(shí),將訪問權(quán)限授予該提出訪問 的存儲(chǔ)控制單元;在所述判斷結(jié)果指示被請求的存儲(chǔ)器空閑且當(dāng)前提出訪問的 存儲(chǔ)控制單元的個(gè)數(shù)為至少2個(gè)時(shí),將所述訪問權(quán)限授予提出訪問請求的存儲(chǔ) 控制單元中最遲響應(yīng)時(shí)間最短者;在所述判斷結(jié)果指示被請求的存儲(chǔ)器正在被 訪問時(shí),確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或 等于各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服務(wù), 否則,中斷該存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定出被 授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限。
17、 如權(quán)利要求15所述的設(shè)備,其特征在于,所述最遲響應(yīng)時(shí)間確定模塊 包括接收子模塊和確定子模塊;所述接收子模塊,用于接收來自存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,并發(fā)送給 所述確定子模塊;確定子模塊,用于將接收自接收子模塊的最遲響應(yīng)時(shí)間確定為所述存儲(chǔ)控 制單元的最遲響應(yīng)時(shí)間。
18、 如權(quán)利要求17所述的設(shè)備,其特征在于,該設(shè)備進(jìn)一步包括執(zhí)行模塊, 用于接收仲裁模塊發(fā)送的仲裁結(jié)果,當(dāng)所述仲裁結(jié)果指示中斷存儲(chǔ)器當(dāng)前的服 務(wù)時(shí),將中斷事件通知給被中斷服務(wù)的存儲(chǔ)控制單元;所述仲裁模塊將其仲裁結(jié)果發(fā)送給所述執(zhí)行模塊。
19、 如權(quán)利要求15所述的設(shè)備,其特征在于,所述最遲響應(yīng)時(shí)間確定模塊 包括存儲(chǔ)子模塊和確定子模塊;所述存儲(chǔ)子模塊,用于保存各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間的初始值; 確定子模塊,用于接收來自存儲(chǔ)控制單元的訪問請求,從所述存儲(chǔ)子模塊 中獲取提出所述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間的初始值,根據(jù)該最 遲響應(yīng)時(shí)間的初始值以及等待響應(yīng)的時(shí)間,確定發(fā)起訪問請求的存儲(chǔ)控制單元 的最遲響應(yīng)時(shí)間。
20、 如權(quán)利要求19所述的設(shè)備,其特征在于,該設(shè)備進(jìn)一步包括執(zhí)行模塊,用于接收仲裁模塊發(fā)送的仲裁結(jié)果,當(dāng)所述仲裁結(jié)果指示中斷存儲(chǔ)器當(dāng)前的服務(wù)時(shí),將中斷事件通知給所述確定子模塊;所述確定子^t塊在接收到中斷事件通知后,重新確定#1中斷服務(wù)的存儲(chǔ)控 制單元的最遲響應(yīng)時(shí)間的初始值,并在所述4皮中斷的存儲(chǔ)控制單元重新被授予 訪問權(quán)限之前,令其最遲響應(yīng)時(shí)間從初始值遞減;所述仲裁模塊將其仲裁結(jié)果發(fā)送給所述執(zhí)行模塊。
21、 一種存儲(chǔ)器訪問仲裁設(shè)備,其特征在于,該設(shè)備包括最遲響應(yīng)時(shí)間 確定模塊和仲裁模塊;其中,所述最遲響應(yīng)時(shí)間確定模塊,用于接收對存儲(chǔ)器的訪問請求,確定提出所 述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給 仲裁模塊;所述仲裁模塊,用于接收所述最遲響應(yīng)時(shí)間,所述存儲(chǔ)器正在被訪問時(shí), 確定所述存儲(chǔ)器的還需服務(wù)時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于提出 訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間,如果是,則繼續(xù)該存儲(chǔ)器當(dāng)前的服 務(wù);否則,中斷該存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定 出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限。
22、 一種存儲(chǔ)控制設(shè)備,包括控制模塊和緩存模塊,其中,緩存單元用于 緩存待處理數(shù)據(jù);其特征在于,該設(shè)備還包括最遲響應(yīng)時(shí)間提供模塊;所述控制模塊,用于在向仲裁單元發(fā)送訪問請求時(shí),通知最遲響應(yīng)時(shí)間提 供模塊;所述最遲響應(yīng)時(shí)間提供模塊,用于在接收來自控制模塊的通知后,確定最 遲響應(yīng)時(shí)間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元。
23、 如權(quán)利要求22所述的設(shè)備,其特征在于,所述控制模塊進(jìn)一步在接收 到通知其所在存儲(chǔ)控制設(shè)備的當(dāng)前服務(wù)^f皮中斷時(shí),通知所述最遲響應(yīng)時(shí)間提供 模塊重新確定最遲響應(yīng)時(shí)間。
24、 如權(quán)利要求22或23所述的設(shè)備,其特征在于,所述最遲響應(yīng)時(shí)間提 供模塊包括設(shè)置子模塊和計(jì)數(shù)器;設(shè)置子模塊,用于在接收到通知后,將預(yù)設(shè)的最遲響應(yīng)時(shí)間的初始值賦值 給所述計(jì)數(shù)器,并在所在存儲(chǔ)控制單元被授予訪問權(quán)限之前令所述計(jì)數(shù)器遞減 計(jì)數(shù)。
25、 如權(quán)利要求24所述的設(shè)備,其特征在于,所述設(shè)置子模塊在將預(yù)設(shè)的 最遲響應(yīng)時(shí)間的初始值賦值給所述計(jì)數(shù)器之前,進(jìn)一步從所述緩存模塊中獲取 剩余緩存數(shù)據(jù)量,根據(jù)所獲取的剩余緩存數(shù)據(jù)量從預(yù)先設(shè)置的至少2個(gè)最遲響 應(yīng)時(shí)間初始值中選擇與當(dāng)前剩余緩存數(shù)據(jù)量對應(yīng)的一個(gè),并作為賦值給計(jì)數(shù)器 的最遲響應(yīng)時(shí)間的初始值。
26、 一種存儲(chǔ)器訪問仲裁系統(tǒng),其特征在于,該系統(tǒng)包括至少2個(gè)存儲(chǔ)控 制單元和仲裁單元;所述存儲(chǔ)控制單元,用于在向仲裁單元發(fā)送訪問請求時(shí),確定最遲響應(yīng)時(shí) 間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元;所述仲裁單元,接收各存儲(chǔ)控制單元發(fā)送的訪問請求和各存儲(chǔ)控制單元的 最遲響應(yīng)時(shí)間,在被請求的存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少 2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。
27、 一種存儲(chǔ)器訪問仲裁系統(tǒng),其特征在于,該系統(tǒng)包括至少2個(gè)存儲(chǔ)控 制單元和仲裁單元;所述存儲(chǔ)控制單元,用于在向仲裁單元發(fā)送訪問請求時(shí),確定最遲響應(yīng)時(shí) 間,將所確定的最遲響應(yīng)時(shí)間發(fā)送給仲裁單元;所述仲裁單元,接收各存儲(chǔ)控制單元發(fā)送的訪問請求和各存儲(chǔ)控制單元的 最遲響應(yīng)時(shí)間,在被請求的存儲(chǔ)器正在被訪問時(shí),確定所述存儲(chǔ)器的還需服務(wù) 時(shí)間,判斷所述還需服務(wù)時(shí)間是否小于或等于各存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間, 如果是,則繼續(xù)存儲(chǔ)器當(dāng)前的服務(wù);否則,中斷存儲(chǔ)器當(dāng)前的服務(wù),從提出訪 問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問 權(quán)限。
全文摘要
本發(fā)明公開了一種存儲(chǔ)器訪問仲裁方法,包括在接收到存儲(chǔ)控制單元對存儲(chǔ)器的訪問請求后,確定提出所述訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間;在所述存儲(chǔ)器空閑且提出訪問請求的存儲(chǔ)控制單元為至少2個(gè)時(shí),將訪問權(quán)限授予提出訪問請求的存儲(chǔ)控制單元中最遲響應(yīng)時(shí)間最短者。在所述存儲(chǔ)器正在被訪問時(shí),確定該存儲(chǔ)器的還需服務(wù)時(shí)間,當(dāng)判定還需服務(wù)的時(shí)間是否大于提出訪問請求的存儲(chǔ)控制單元的最遲響應(yīng)時(shí)間時(shí),中斷存儲(chǔ)器當(dāng)前的服務(wù),從提出訪問請求的存儲(chǔ)控制單元中確定出被授予訪問權(quán)限的存儲(chǔ)控制單元,并授予訪問權(quán)限。本發(fā)明還公開了存儲(chǔ)器訪問的仲裁系統(tǒng)和設(shè)備以及存儲(chǔ)控制設(shè)備。使用本發(fā)明能夠在避免數(shù)據(jù)斷流的同時(shí),提高存儲(chǔ)器的訪問效率。
文檔編號G06F13/16GK101110063SQ200710121338
公開日2008年1月23日 申請日期2007年9月4日 優(yōu)先權(quán)日2007年9月4日
發(fā)明者楊作興 申請人:北京中星微電子有限公司