專利名稱:一種多用戶訪問緩存方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電通信技術(shù)領(lǐng)域,尤其涉及一種多用戶訪問緩存方法和系統(tǒng)。
背景技術(shù):
對(duì)于各種大小的緩存,通常有多個(gè)用戶進(jìn)行訪問,用戶可以是讀取緩存中的數(shù)據(jù),也可以是將數(shù)據(jù)寫入緩存,或者用戶同時(shí)支持讀取緩存和將數(shù)據(jù)寫入緩存兩種操作。用戶訪問緩存時(shí),用戶的時(shí)鐘域和緩存的時(shí)鐘域可能相同,也可能不相同。
在一般情況下,訪問緩存系統(tǒng)包括緩存控制器和仲裁器,緩存控制器用于緩存接口控制部分,緩存接口控制部分主要完成將單個(gè)用戶訪問接口轉(zhuǎn)換成符合緩存的讀寫時(shí)序,用來直接操作緩存。仲裁器用于用戶仲裁控制部分,用戶仲裁控制部分主要完成對(duì)多個(gè)用戶申請(qǐng)?jiān)L問緩存的仲裁,輸出單個(gè)用戶訪問接口的時(shí)序。
如圖1所示的訪問緩存系統(tǒng)結(jié)構(gòu)示意圖,包括仲裁器1和緩存控制器2,這種只是針對(duì)同步設(shè)計(jì)的,即用戶的時(shí)鐘域和緩存的時(shí)鐘域?yàn)橥疥P(guān)系,不能用于多用戶異步訪問緩存。
如果用戶的時(shí)鐘域和緩存的時(shí)鐘域?yàn)楫惒疥P(guān)系,通常情況下,如圖2所示,用戶通過異步轉(zhuǎn)換,將用戶的仲裁申請(qǐng)?zhí)崆稗D(zhuǎn)換為緩存的時(shí)鐘域;或者,在仲裁器內(nèi)部將可能存在的不同的用戶的時(shí)鐘域轉(zhuǎn)換到緩存所在的時(shí)鐘域。
該技術(shù)方案具有如下缺點(diǎn)I)這些時(shí)鐘域的轉(zhuǎn)換通常要根據(jù)實(shí)際的情況來具體考慮,處理異步時(shí)需要考慮每個(gè)用戶的時(shí)鐘和緩存控制器時(shí)鐘的關(guān)系,對(duì)于用戶和緩存的針對(duì)性要求高,設(shè)計(jì)起來比較麻煩。
II)尤其對(duì)于用戶比較多的情況下,會(huì)使處理異步的實(shí)現(xiàn)極其復(fù)雜化,也容易導(dǎo)致出錯(cuò),設(shè)計(jì)缺乏通用性。
III)由于每個(gè)用戶異步訪問緩存都要進(jìn)行異步轉(zhuǎn)換,進(jìn)行異步轉(zhuǎn)換時(shí)的開銷會(huì)對(duì)仲裁的效率產(chǎn)生影響,訪問控制器的接口設(shè)計(jì)不佳也會(huì)導(dǎo)致訪問緩存的效率降低,從而影響緩存的訪問帶寬,因此,這種設(shè)計(jì)也會(huì)影響仲裁器的仲裁效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種便于設(shè)計(jì)且仲裁效率高的多用戶訪問緩存方法和系統(tǒng),以解決現(xiàn)有技術(shù)中對(duì)于多用戶異步轉(zhuǎn)換時(shí)設(shè)計(jì)麻煩,缺乏通用性,仲裁效率低的問題。
本發(fā)明中的多用戶訪問緩存方法采用如下步驟A)在多用戶緩存訪問系統(tǒng)中,每個(gè)用戶將其訪問屬性和訪問緩存的地址寫入相應(yīng)的命令字隊(duì)列,用戶通過所述命令字隊(duì)列向仲裁器發(fā)出仲裁請(qǐng)求;B)仲裁器根據(jù)仲裁算法仲裁出用戶,向相應(yīng)端口編號(hào)的用戶傳遞仲裁響應(yīng)信號(hào);C)仲裁器由所述用戶的相應(yīng)命令字隊(duì)列選擇對(duì)應(yīng)的命令字;D)所述的命令字訪問緩存控制器。
所述的步驟A)中,所述的命令字隊(duì)列為異步先進(jìn)先出隊(duì)列。
所述的步驟B)中,所述的仲裁器采用公平仲裁或權(quán)重仲裁算法仲裁出用戶。
所述的步驟B)包括如下步驟B1)仲裁器根據(jù)仲裁算法仲裁出用戶;B2)仲裁器向緩存控制器發(fā)出相應(yīng)訪問請(qǐng)求,緩存控制器向仲裁器發(fā)送仲裁響應(yīng)信號(hào);B3)仲裁響應(yīng)信號(hào)發(fā)送至相應(yīng)端口編號(hào)的用戶。
所述的步驟B)中,仲裁器根據(jù)仲裁算法仲裁出用戶,并向相應(yīng)端口編號(hào)的用戶直接發(fā)送仲裁響應(yīng)信號(hào)。
所述的步驟D)包括如下步驟D1)所述的命令字寫入一訪問命令字隊(duì)列;D2)所述訪問命令字隊(duì)列向緩存控制器發(fā)送相應(yīng)的緩存地址和緩存請(qǐng)求;D3)緩存控制器向訪問命令字隊(duì)列發(fā)出緩存響應(yīng)信號(hào),相關(guān)的命令字訪問緩存控制器。
所述的步驟D1)之前還包括如下步驟所述的仲裁器向訪問命令字隊(duì)列發(fā)送寫信號(hào)。
這種多用戶異步訪問緩存系統(tǒng),包括仲裁器和緩存控制器,還包括對(duì)應(yīng)于各個(gè)用戶的命令字隊(duì)列,所述的命令字隊(duì)列中寫入有用戶訪問屬性和訪問緩存的地址,并向仲裁器發(fā)出仲裁請(qǐng)求;所述的仲裁器根據(jù)仲裁算法完成用戶仲裁,決定相應(yīng)端口編號(hào)的用戶,選擇對(duì)應(yīng)的命令字;所述的緩存控制器接受用戶的命令字訪問。
該系統(tǒng)還包括一訪問命令字隊(duì)列,所述的訪問命令字隊(duì)列寫入有被選中的用戶的命令字,所述的訪問命令字隊(duì)列與緩存控制器通過信號(hào)交互確認(rèn)訪問緩存的命令字。
所述的仲裁器包括仲裁模塊、復(fù)接模塊和分接模塊,其中,所述的仲裁模塊用于用戶仲裁,以及向緩存控制器發(fā)送訪問請(qǐng)求或向分接模塊發(fā)送仲裁響應(yīng)信號(hào);所述的分接模塊接收發(fā)自緩存控制器或仲裁模塊的仲裁響應(yīng)信號(hào),根據(jù)仲裁出的用戶的端口編號(hào)傳遞仲裁響應(yīng)信號(hào);所述的復(fù)接模塊根據(jù)仲裁出的用戶的端口編號(hào)選擇相應(yīng)用戶的命令字隊(duì)列中的命令字,向緩存控制器或訪問命令字隊(duì)列發(fā)送命令字。
本發(fā)明的有益效果為在本發(fā)明中,每個(gè)用戶將其訪問屬性和訪問緩存的地址寫入相應(yīng)的命令字隊(duì)列,通過命令字隊(duì)列向仲裁器發(fā)出仲裁請(qǐng)求,仲裁器根據(jù)仲裁算法仲裁出用戶,向相應(yīng)端口編號(hào)的用戶傳遞仲裁響應(yīng)信號(hào),仲裁器由所述用戶的相應(yīng)命令字隊(duì)列選擇對(duì)應(yīng)的命令字,命令字訪問緩存控制器,這樣,用戶訪問仲裁器首先通過寫入命令字到命令字隊(duì)列,使用戶的時(shí)鐘域與仲裁器的時(shí)鐘域隔離,在本發(fā)明的異步處理中,就不用考慮用戶的時(shí)鐘域,減少了設(shè)計(jì)因素,便于系統(tǒng)設(shè)計(jì),同時(shí),使得本發(fā)明對(duì)用戶的時(shí)鐘域沒有針對(duì)性,也就是說,對(duì)用戶來說,命令字隊(duì)列的使用相當(dāng)于提供了一種通用的命令字發(fā)布入口,使本發(fā)明具有通用性,通過具有一定深度的命令字隊(duì)列,可使得仲裁器盡可能地取得高效率的仲裁處理,提高仲裁器的仲裁效率,因此,本發(fā)明可方便地實(shí)現(xiàn)多個(gè)用戶端口的緩存訪問,同時(shí)支持用戶的緩存同步和異步訪問,且保證仲裁器的仲裁效率。
在本發(fā)明中,仲裁器通過將命令字寫入到一個(gè)訪問命令字隊(duì)列,從而保證訪問緩存控制器達(dá)到最高的效率,有效地利用緩存的使用帶寬。
圖1為現(xiàn)有技術(shù)系統(tǒng)結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)系統(tǒng)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例1系統(tǒng)結(jié)構(gòu)示意圖;圖4為本發(fā)明基本控制流程示意圖;圖5為本發(fā)明實(shí)施例1具體控制流程示意圖;
圖6為本發(fā)明實(shí)施例2系統(tǒng)結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例2具體控制流程示意圖。
具體實(shí)施例方式
下面根據(jù)附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明實(shí)施例1根據(jù)圖3,本發(fā)明的多用戶緩存訪問系統(tǒng)包括仲裁器1、緩存控制器2和對(duì)應(yīng)于各個(gè)用戶的命令字隊(duì)列CMD_FF,命令字隊(duì)列CMD_FF為異步先進(jìn)先出FIFO隊(duì)列。
如圖3所示,仲裁器1根據(jù)仲裁算法完成用戶仲裁,決定相應(yīng)端口編號(hào)的用戶,選擇對(duì)應(yīng)的命令字;命令字隊(duì)列CMD_FF中寫入有用戶訪問屬性和訪問緩存的地址,并向仲裁器發(fā)出仲裁請(qǐng)求;緩存控制器2接受用戶的命令字訪問。
如圖3所示,仲裁器1包括仲裁模塊11、復(fù)接模塊13和分接模塊12,其中,仲裁模塊11用于用戶仲裁,以及向緩存控制器2發(fā)送仲裁請(qǐng)求信號(hào)Req,分接模塊12接收發(fā)自緩存控制器2的仲裁響應(yīng)信號(hào)Ack,根據(jù)仲裁出的用戶的端口編號(hào)傳遞仲裁響應(yīng)信號(hào)Ack,復(fù)接模塊13根據(jù)仲裁出的用戶的端口編號(hào)選擇相應(yīng)用戶的命令字隊(duì)列CMD_FF中的命令字,向緩存控制器2發(fā)送命令字。
如圖3和圖4所示,本發(fā)明的基本控制流程如下a)每個(gè)用戶將其訪問屬性和訪問緩存的地址寫入相應(yīng)的命令字隊(duì)列CMD_FF,用戶通過命令字隊(duì)列CMD_FF向仲裁器1發(fā)出仲裁請(qǐng)求。
b)仲裁器1根據(jù)仲裁算法仲裁出用戶,向相應(yīng)端口編號(hào)的用戶傳遞仲裁響應(yīng)信號(hào)Ack,在這里,仲裁器1可采用公平仲裁算法或權(quán)重仲裁算法仲裁出用戶。
c)仲裁器1由該用戶的相應(yīng)命令字隊(duì)列CMD_FF選擇對(duì)應(yīng)的命令字;
d)被選擇的命令字訪問緩存控制器2。
如圖3和圖5所示,本實(shí)施例的具體控制流程如下a.每個(gè)用戶將其訪問屬性R/W和訪問緩存的地址Addr寫入相應(yīng)的命令字隊(duì)列CMD_FF,訪問屬性為讀出R或?qū)懭隬,如圖3所示,用戶A、B、C分別通過命令字隊(duì)列CMD_FF向仲裁器1發(fā)出仲裁請(qǐng)求信號(hào)ReqA、ReqB、ReqC。
b.仲裁模塊11采用公平仲裁算法或權(quán)重仲裁算法仲裁出用戶。
c.仲裁模塊11向緩存控制器2發(fā)出相應(yīng)仲裁請(qǐng)求信號(hào)Req,緩存控制器2向仲裁器1中的分接模塊12發(fā)送仲裁響應(yīng)信號(hào)Ack。
d.分接模塊12將仲裁響應(yīng)信號(hào)Ack發(fā)送至相應(yīng)端口編號(hào)的用戶,即向用戶返回AckA、AckB或AckC。
e.仲裁器1中的復(fù)接模塊13由被選中用戶的相應(yīng)命令字隊(duì)列CMD_FF選擇對(duì)應(yīng)的命令字。
f.復(fù)接模塊13將被選擇的命令字發(fā)送至緩存控制器2,該命令字訪問緩存控制器2。
實(shí)施例2根據(jù)圖6,本發(fā)明的多用戶緩存訪問系統(tǒng)包括仲裁器1、緩存控制器2、對(duì)應(yīng)于各個(gè)用戶的命令字隊(duì)列CMD_FF和一訪問命令字隊(duì)列AC_CMD_FF。
如圖6所示,仲裁器1根據(jù)仲裁算法完成用戶仲裁,決定相應(yīng)端口編號(hào)的用戶,選擇對(duì)應(yīng)的命令字;命令字隊(duì)列CMD_FF中寫入有用戶訪問屬性和訪問緩存的地址,并向仲裁器發(fā)出仲裁請(qǐng)求;緩存控制器2接受用戶的命令字訪問,命令字隊(duì)列CMD_FF為異步先進(jìn)先出FIFO隊(duì)列,訪問命令字隊(duì)列AC_CMD_FF寫入有被選中的用戶的命令字,所述的訪問命令字隊(duì)列AC_CMD_FF與緩存控制器2通過信號(hào)交互確認(rèn)訪問緩存的命令字。
如圖6所示,仲裁器1包括仲裁模塊11、復(fù)接模塊13和分接模塊12,其中,仲裁模塊11用于用戶仲裁,以及向分接模塊12發(fā)送仲裁響應(yīng)信號(hào)Ack,分接模塊12接收發(fā)自仲裁模塊11的仲裁響應(yīng)信號(hào)Ack,根據(jù)仲裁出的用戶的端口編號(hào)傳遞仲裁響應(yīng)信號(hào)Ack,復(fù)接模塊13根據(jù)仲裁出的用戶的端口編號(hào)選擇相應(yīng)用戶的命令字隊(duì)列中的命令字,向訪問命令字隊(duì)列AC_CMD_FF發(fā)送命令字。
如圖6和圖7所示,本實(shí)施例的具體控制流程如下1.每個(gè)用戶將其訪問屬性R/W和訪問緩存的地址Addr寫入相應(yīng)的命令字隊(duì)列CMD_FF,訪問屬性為讀出R或?qū)懭隬,如圖6所示,用戶A、B、C分別通過命令字隊(duì)列CMD_FF向仲裁器1發(fā)出仲裁請(qǐng)求信號(hào)ReqA、ReqB、ReqC。
2.仲裁模塊11采用公平仲裁算法或權(quán)重仲裁算法仲裁出用戶。
3.仲裁模塊11向分接模塊12發(fā)送仲裁響應(yīng)信號(hào)Ack。
4.分接模塊12將仲裁響應(yīng)信號(hào)Ack發(fā)送至相應(yīng)端口編號(hào)的用戶,即向用戶返回AckA、AckB或AckC。
5.仲裁器1中的復(fù)接模塊13由被選中用戶的相應(yīng)命令字隊(duì)列CMD_FF選擇對(duì)應(yīng)的命令字。
6.仲裁模塊11向訪問命令字隊(duì)列AC_CMD_FF發(fā)送寫信號(hào)Wen。
7.復(fù)接模塊13將被選擇的命令字寫入訪問命令字隊(duì)列AC_CMD_FF。
8.訪問命令字隊(duì)列AC_CMD_FF向緩存控制器2發(fā)送相應(yīng)的緩存地址Buffer_Addr和緩存請(qǐng)求Buffer_Req。
9.緩存控制器2向訪問命令字隊(duì)列AC_CMD_FF發(fā)出相應(yīng)的緩存響應(yīng)信號(hào)Buffer_Ack。
10.相關(guān)的命令字訪問緩存控制器2。
在本發(fā)明中,上述各實(shí)施例中同樣適用于多用戶的緩存同步訪問,而且,命令字隊(duì)列CMD_FF也可為同步先進(jìn)先出FIFO隊(duì)列,可支持用戶的緩存同步訪問,其控制流程與以上所述相同或相似,此處不再贅述。
權(quán)利要求
1.一種多用戶訪問緩存方法,其特征在于它采用如下步驟A)在多用戶緩存訪問系統(tǒng)中,每個(gè)用戶將其訪問屬性和訪問緩存的地址寫入相應(yīng)的命令字隊(duì)列,用戶通過所述命令字隊(duì)列向仲裁器發(fā)出仲裁請(qǐng)求;B)仲裁器根據(jù)仲裁算法仲裁出用戶,向相應(yīng)端口編號(hào)的用戶傳遞仲裁響應(yīng)信號(hào);C)仲裁器由所述用戶的相應(yīng)命令字隊(duì)列選擇對(duì)應(yīng)的命令字;D)所述的命令字訪問緩存控制器。
2.根據(jù)權(quán)利要求1所述的多用戶訪問緩存方法,其特征在于所述的步驟A)中,所述的命令字隊(duì)列為異步先進(jìn)先出隊(duì)列。
3.根據(jù)權(quán)利要求1所述的多用戶訪問緩存方法,其特征在于所述的步驟B)中,所述的仲裁器采用公平或權(quán)重仲裁算法仲裁出用戶。
4.根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的多用戶訪問緩存方法,其特征在于所述的步驟B)包括如下步驟B1)仲裁器根據(jù)仲裁算法仲裁出用戶;B2)仲裁器向緩存控制器發(fā)出相應(yīng)訪問請(qǐng)求,緩存控制器向仲裁器發(fā)送仲裁響應(yīng)信號(hào);B3)裁響應(yīng)信號(hào)發(fā)送至相應(yīng)端口編號(hào)的用戶。
5.根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的多用戶訪問緩存方法,其特征在于所述的步驟B)中,仲裁器根據(jù)仲裁算法仲裁出用戶,并向相應(yīng)端口編號(hào)的用戶直接發(fā)送仲裁響應(yīng)信號(hào)。
6.根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的多用戶訪問緩存方法,其特征在于所述的步驟D)包括如下步驟D1)所述的命令字寫入一訪問命令字隊(duì)列;D2)所述訪問命令字隊(duì)列向緩存控制器發(fā)送相應(yīng)的緩存地址和緩存請(qǐng)求;D3)緩存控制器向訪問命令字隊(duì)列發(fā)出緩存響應(yīng)信號(hào),相關(guān)的命令字訪問緩存控制器。
7.根據(jù)權(quán)利要求6所述的多用戶訪問緩存方法,其特征在于所述的步驟D1)之前還包括如下步驟所述的仲裁器向訪問命令字隊(duì)列發(fā)送寫信號(hào)。
8.一種多用戶訪問緩存系統(tǒng),包括仲裁器和緩存控制器,其特征在于還包括對(duì)應(yīng)于各個(gè)用戶的命令字隊(duì)列,所述的命令字隊(duì)列中寫入有用戶訪問屬性和訪問緩存的地址,并向仲裁器發(fā)出仲裁請(qǐng)求;所述的仲裁器根據(jù)仲裁算法完成用戶仲裁,決定相應(yīng)端口編號(hào)的用戶,選擇對(duì)應(yīng)的命令字;所述的緩存控制器接受用戶的命令字訪問。
9.根據(jù)權(quán)利要求8所述的多用戶訪問緩存系統(tǒng),其特征在于還包括一訪問命令字隊(duì)列,所述的訪問命令字隊(duì)列寫入有被選中的用戶的命令字,所述的訪問命令字隊(duì)列與緩存控制器通過信號(hào)交互確認(rèn)訪問緩存的命令字。
10.根據(jù)權(quán)利要求9所述的多用戶訪問緩存系統(tǒng),其特征在于所述的仲裁器包括仲裁模塊、復(fù)接模塊和分接模塊,其中,所述的仲裁模塊用于用戶仲裁,以及向緩存控制器發(fā)送訪問請(qǐng)求或向分接模塊發(fā)送仲裁響應(yīng)信號(hào);所述的分接模塊接收發(fā)自緩存控制器或仲裁模塊的仲裁響應(yīng)信號(hào),根據(jù)仲裁出的用戶的端口編號(hào)傳遞仲裁響應(yīng)信號(hào);所述的復(fù)接模塊根據(jù)仲裁出的用戶的端口編號(hào)選擇相應(yīng)用戶的命令字隊(duì)列中的命令字,向緩存控制器或訪問命令字隊(duì)列發(fā)送命令字。
全文摘要
一種涉及電通信技術(shù)的多用戶訪問緩存方法和系統(tǒng),采用如下步驟A)在多用戶緩存訪問系統(tǒng)中,每個(gè)用戶將其訪問屬性和訪問緩存的地址寫入相應(yīng)的命令字隊(duì)列,用戶通過所述命令字隊(duì)列向仲裁器發(fā)出仲裁請(qǐng)求,B)仲裁器根據(jù)仲裁算法仲裁出用戶,向相應(yīng)端口編號(hào)的用戶傳遞仲裁響應(yīng)信號(hào),C)仲裁器由所述用戶的相應(yīng)命令字隊(duì)列選擇對(duì)應(yīng)的命令字,D)所述的命令字訪問緩存控制器;步驟A)中,命令字隊(duì)列為異步先進(jìn)先出隊(duì)列;步驟B)包括如下步驟B1)仲裁器根據(jù)仲裁算法仲裁出用戶,B2)仲裁器向緩存控制器發(fā)出相應(yīng)訪問請(qǐng)求,緩存控制器向仲裁器發(fā)送仲裁響應(yīng)信號(hào),B3)仲裁響應(yīng)信號(hào)發(fā)送至相應(yīng)端口編號(hào)的用戶,本發(fā)明便于設(shè)計(jì)且仲裁效率高。
文檔編號(hào)G06F13/16GK1858724SQ20051010141
公開日2006年11月8日 申請(qǐng)日期2005年11月12日 優(yōu)先權(quán)日2005年11月12日
發(fā)明者張留安 申請(qǐng)人:華為技術(shù)有限公司