專利名稱:一種寄存器多源訪問控制裝置和方法
技術領域:
本發(fā)明涉及存儲訪問技術領域,特別是涉及一種寄存器多源訪問控制裝置 和方法。
背景技術:
寄存器是CPU內(nèi)部重要的數(shù)據(jù)存儲資源,其功能主要包括執(zhí)行寄存器內(nèi)
數(shù)據(jù)的算術及邏輯運算、尋址和讀寫數(shù)據(jù)到周邊設備。寄存器擁有非常高的讀 寫速度, 一般用來保存程序的中間結果,為隨后的指令快速提供操作數(shù),從而 避免把中間結果存入內(nèi)存,再讀取內(nèi)存的操作。因為寄存器操作避免了內(nèi)存地
址計算,訪問速度快,因而成為CPU的主要構成組件之一。
隨著計算機技術的發(fā)展,為了提高系統(tǒng)的工作效率,加快數(shù)據(jù)處理速度, 出現(xiàn)了 一個系統(tǒng)之中存在著多個可以訪問寄存器的訪問源,如在系統(tǒng)級芯片
SOC(SOC, System-On-Chip )中,可能會有多個8051單片機,而且有的SOC 還可能設有基本頻帶(Baseband)接口,這些訪問源都可以訪問寄存器,但是, 它們在通過訪問寄存器以實現(xiàn)高效快速的數(shù)據(jù)操作時,有可能同時對寄存器進 行訪問,從而造成沖突的發(fā)生。
為了盡量避免訪問寄存器沖突的發(fā)生,現(xiàn)有技術通過設置標志位對多個訪 問源訪問寄存器進行控制。每一個訪問源在訪問寄存器進行讀寫數(shù)據(jù)的時候必 須先查詢標志位,如果有訪問源將標志位置為高,則等待直到標記位為低后再 進行訪問;否則,將自己的標志位置高,然后控制寄存器進行讀寫訪問,控制 工作結束后清除自己的標志。這種辦法雖然有效防止了多訪問源同時訪問寄存 器時發(fā)生沖突,但同時也存在著一些問題。首先,每個訪問源只能根據(jù)系統(tǒng)調(diào) 度,依次單獨訪問寄存器,而不能并發(fā)訪問,從而造成了時間上的浪費;其次, 在對寄存器進行訪問時,必須查詢和控制訪問標志位,從而消耗了額外的時間, 造成訪問速度比較慢,工作效率低;然后,對于現(xiàn)有技術中不支持等待寄存器也不允許沖突的那些訪問源來說,每次對寄存器的訪問都采用獨占方式, 一直 占用寄存器直到訪問完畢,從而導致訪問時間長、訪問效率低。
總之,需要本領域技術人員迫切解決的一個技術問題就是如何能夠使多 個訪問源高效、快速地共同訪問寄存器,且能夠有效避免訪問沖突,提高訪問 速度。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種寄存器多源訪問控制裝置和方法, 能夠使多個訪問源高效、快速地共同訪問寄存器,且能夠有效避免訪問沖突, 提高訪問速度。
為了解決上述問題,本發(fā)明實施例提供了 一種寄存器多源訪問控制裝置, 包括
讀控制單元,用于仲裁和控制讀請求; 寫控制單元,用于仲裁和控制寫請求; 判斷單元,用于判斷多個讀/寫請求;
正常訪問單元,用于若所述多個讀/寫請求之間未發(fā)生沖突,則啟動所述 讀/寫控制單元,進行正常讀/寫訪問;
沖突訪問單元,用于若所述多個讀/寫請求之間發(fā)生沖突,則啟動所述讀/ 寫控制單元,先處理其中一個讀/寫請求,利用訪問間隙處理其它的讀/寫請求。
優(yōu)選的,所述沖突訪問單元進一步包括
優(yōu)先級控制子單元,用于在所述先處理其中一個讀/寫請求前,沒置所述 多個讀/寫請求的優(yōu)先級,所述其中一個讀/寫請求為設置優(yōu)先級后的多個讀/
寫請求中優(yōu)先級最高的讀/寫請求。
優(yōu)選的,所述沖突訪問單元利用訪問間隙處理其它的讀/寫請求為利用訪 問間隙依照優(yōu)先級處理其它的讀/寫請求。
優(yōu)選的,所述讀請求優(yōu)先級高于寫請求。
優(yōu)選的,所述沖突訪問單元還包括
沖突通知子單元,用于若所述多個讀/寫請求之間發(fā)生沖突為讀請求沖突,則在先處理其中 一個讀請求時,通知其它讀請求發(fā)生訪問沖突。
優(yōu)選的,所述沖突通知子單元通過一個預置的特定數(shù)值通知其它讀請求發(fā) 生訪問沖突。
本發(fā)明另 一 實施例還提供了 一種寄存器多源訪問控制方法,包括以下步
驟
判斷多個讀/寫請求;
若所述多個讀/寫請求之間未發(fā)生沖突,則進行正常讀/寫訪問;
若所述多個讀/寫請求之間發(fā)生沖突,則先處理其中一個讀/寫請求,利用 訪問間隙處理其它的讀/寫請求。
優(yōu)選的,所述寄存器多源訪問控制方法還包括,在所述先處理其中一個讀 /寫請求前,設置所述多個讀/寫請求的優(yōu)先級,所述其中一個讀/寫請求為設置 優(yōu)先級后的多個讀/寫請求中優(yōu)先級最高的讀/寫請求。
優(yōu)選的,所述利用訪問間隙處理其它的讀/寫請求為利用訪問間隙依照優(yōu) 先級處理其它的讀/寫請求。
優(yōu)選的,所述讀請求優(yōu)先級高于寫請求。
優(yōu)選的,所述寄存器多源訪問控制方法還包括若所述多個讀/寫請求之 間發(fā)生沖突為讀請求沖突,則在先處理其中一個讀請求時,通知其它讀請求發(fā) 生訪問沖突。
優(yōu)選的,所述通知其它讀請求發(fā)生訪問沖突為通過一個預置的特定tt值通知。
與現(xiàn)有^l支術相比,本發(fā)明一實施例具有以下優(yōu)點
首先,本發(fā)明使用優(yōu)先級控制多個寄存器訪問源的訪問級別,使得多個訪 問源可以在訪問寄存器時無需查詢控制標志位,節(jié)省了現(xiàn)有方法因查詢和控制 標志位而造成的時間開銷,加快了訪問速度。
其次,本發(fā)明的沖突訪問源利用寄存器的訪問間隙進行訪問,將現(xiàn)有技術 中訪問寄存器的閑置時間充分利用起來, 一方面消除了訪問沖突,另一方面節(jié)省了訪問時間,提高了訪問速度。
圖1是本發(fā)明的一種寄存器多源訪問控制裝置實施例的結構框圖; 圖2是本發(fā)明應用圖1所示裝置實施例進行多源訪問控制的步驟流程圖; 圖3是本發(fā)明的一種寄存器多源訪問控制方法實施例1的步驟流程圖; 圖4是本發(fā)明的一種寄存器多源訪問控制方法實施例2的步驟流程圖。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。
本發(fā)明的核心構思之一在于,使用優(yōu)先級控制訪問請求的訪問級別,使得 多個訪問源可以在訪問寄存器時無需查詢控制標志位;當發(fā)生訪問沖突時,在 優(yōu)先處理高優(yōu)先級的訪問請求的同時,利用訪問間隙處理其它低優(yōu)先級訪問請 求。本發(fā)明在多訪問源對寄存器進行訪問時,無需查詢和控制標志位,且將訪 問寄存器的閑置時間充分利用起來,有效地節(jié)省了訪問時間,加快了訪問速度。
參照圖1,示出了本發(fā)明的一種寄存器多源訪問控制裝置實施例的結構框 圖,具體可以包括
讀控制單元l'Ol,用于仲裁和控制讀請求; 寫控制單元102,用于仲裁和控制寫請求; 判斷單元103,用于判斷多個讀/寫請求;
正常訪問單元104,用于若所述多個讀/寫請求之間未發(fā)生沖突,則啟動所 述讀/寫控制單元,進行正常讀/寫訪問;
沖突訪問單元105,用于若所述多個讀/寫請求之間發(fā)生沖突,則啟動所述 讀/寫控制單元,先處理其中一個讀/寫請求,利用訪問間隙處理其它的讀/寫請 求。
優(yōu)選的是,所述讀請求優(yōu)先級高于寫請求。優(yōu)選的是,所述沖突訪問單元105還可以進一步包括 優(yōu)先級控制子單元1051,用于在所述先處理其中一個讀/寫請求前,設置
所述多個讀/寫請求的優(yōu)先級,所述其中一個讀/寫請求為設置優(yōu)先級后的多個
讀/寫請求中優(yōu)先級最高的讀/寫請求。
優(yōu)選的是,所述沖突訪問單元利用訪問間隙處理其它的讀/寫請求為利用 訪問間隙依照優(yōu)先級處理其它的讀/寫請求。
優(yōu)選的是,所述沖突訪問單元105還可以進一步包括
沖突通知子單元1052,用于若所述多個讀/寫請求之間發(fā)生沖突為讀請求 沖突,則在先處理其中一個讀請求時,通知其它讀請求發(fā)生訪問沖突。
優(yōu)選的是,所述沖突通知子單元1052可以通過一個預置的特定數(shù)值通知其 它讀請求發(fā)生訪問沖突。
參照圖2,示出了本發(fā)明應用圖1所示的裝置實施例進行多源訪問控制的 步驟流程圖,具體可以包括以下步驟
步驟201:判斷單元判斷多個讀/寫請求之間是否發(fā)生沖突,若否,則啟動 正常訪問單元,進行步驟202;若是,則啟動沖突訪問單元,進行步驟203;
訪問源對寄存器進行訪問時,發(fā)送讀或寫請求,判斷單元判斷是否有多個 訪問源同時要求訪問寄存器,有無沖突。
步驟202:正常訪問單元啟動讀/寫控制單元,進行正常讀/寫訪問,結束 本流程;
如果沒有訪問沖突,則正常訪問單元根據(jù)訪問請求類型即訪問請求為讀請 求或寫請求,啟動相應的讀控制單元或寫控制單元,進行正常的讀或寫訪問操 作。
步驟203:沖突訪問單元的優(yōu)先級控制子單元設置所述多個讀/寫請求的優(yōu) 先級;
其中,讀請求的優(yōu)先級高于寫請求。這是因為,在實際應用中,讀請求的 頻率以及發(fā)生讀請求沖突的概率要遠高于寫請求,讀請求優(yōu)先級高于寫請求, 可以使讀訪問請求優(yōu)先得到處理,提高系統(tǒng)的處理能力,節(jié)省沖突處理時間。本實施例中,當發(fā)生讀、寫請求沖突時,因為讀請求優(yōu)先級比寫請求高, 所以首先對讀請求進行處理,寄存器先允許讀,將寫請求存起來,等讀完后利 用間隙寫入。如果是讀請求之間或寫請求之間發(fā)生沖突,則優(yōu)先級控制子單元 根據(jù)訪問源的優(yōu)先級設置訪問請求的優(yōu)先級,高優(yōu)先級的訪問源擁有著高的訪 問級別,其發(fā)起的讀/寫請求也有著高的優(yōu)先級,在讀寫控制仲裁的時候擺在 優(yōu)先位置,優(yōu)先級高的讀或寫請求先得到處理。
使用優(yōu)先級控制多個寄存器訪問源的訪問級別,使得多個訪問源可以在訪 問寄存器時無需查詢控制標志位,節(jié)省了因查詢和控制標志位而造成的時間開 銷,加快了訪問速度。先處理優(yōu)先級最高的訪問請求,使得最重要的或最急迫
的訪問最先處理;其它訪問請求依照優(yōu)先級按重要或急迫程度依次處理。
步驟204:沖突訪問單元啟動所述讀/寫控制單元,先處理優(yōu)先級最高的讀
/寫請求,并利用訪問間隙依照優(yōu)先級處理其它的讀/寫請求;
當訪問沖突為讀請求沖突時,沖突訪問單元啟動讀控制單元,首先處理優(yōu)
先級最高的讀請求,同時,沖突訪問單元的沖突通知子單元向其它讀訪問源發(fā) 送一個預置的特定數(shù)值以通知其它讀請求發(fā)生了訪問沖突。其它讀訪問源在得
知發(fā)生讀沖突后,利用訪問間隙依照優(yōu)先級進行重試。所述預置的特定數(shù)值為 寄存器在實際使用中不會用到的值,如一個遠遠大于寄存器地址的值,應用中, 本領域才支術人員可以根據(jù)情況自行設置。
在處理讀請求訪問沖突時,利用通知的形式對優(yōu)先級低的訪問請求進行提 示,使得低優(yōu)先級訪問源可以利用訪問間隙重試,而不必等待和查詢標志位, 從而提高了訪問效率。使用預置的特定數(shù)值進行通知,解決了不支持等待寄存 器也不允許沖突的訪問源的訪問獨占問題,使得其訪問間隙也可以被有效利 用,節(jié)省了訪問時間,提高了訪問效率。
此外,本領域技術人員可根據(jù)應用中是否存在不支持等待寄存器也不允許 沖突的訪問源來采用不同的通知方式。如可統(tǒng)一采用預置的特定數(shù)值的方式通 知;也可以對不支持等待寄存器也不允許沖突的訪問源采用預置的特定數(shù)值, 而其它訪問源采用寄存器總線發(fā)送忙信號的方式,等等??傊?,本領域技術人 員可以根據(jù)實際應用采用任意適合的方式,本發(fā)明無須對此作出限制。當訪問沖突為寫請求沖突時,沖突訪問單元啟動寫控制單元,首先處理優(yōu) 先級最高的寫請求,并將其它的寫請求存起來,利用間歇按優(yōu)先級逐個寫入。
如優(yōu)先級最高的寫請求在二次寄存器訪問之間有二個時鐘周期的訪問間隙, 在它利用第一個時鐘周期進行寫入4喿作后,利用第四個時鐘周期再次進行寫入 操作前,由其它寫請求利用其第二和第三個時鐘周期的間隙依照優(yōu)先級順序逐 個寫入。
由于多個寄存器訪問源在進行寄存器訪問時,實際上每個訪問源都有一些 閑置的空隙時間,本實施例將這些空隙時間充分利用起來,可以節(jié)省大量訪問 時間,提高訪問效率。
需要說明的是,本領域技術人員應該知悉,說明書中所描述的實施例 均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。其 次,對于上述實施例中的某些步驟可以采用其他順序或者同時進行,本發(fā) 明并不受所描述的動作順序的限制。
參照圖3,示出了本發(fā)明的一種寄存器多源訪問控制方法實施例1的步驟 流程圖,具體可以包括以下步驟
步驟301:判斷多個讀/寫請求之間是否發(fā)生沖突,如果否,執(zhí)行步驟302; 如果是,執(zhí)行步驟303;
本步驟判斷多個訪問源有無對寄存器同時發(fā)起訪問請求。
步驟302:進行正常讀/寫訪問,結束本流程;
如果所述多個讀/寫請求之間未發(fā)生沖突,則根據(jù)訪問請求為讀請求或寫 請求,進行相應的讀或寫訪問。
步驟303:先處理其中一個讀/寫請求,利用訪問間隙處理其它的讀/寫請求。 如果所述多個讀/寫請求之間發(fā)生沖突,則先挑選其中的一個進行處理, 并利用訪問間隙處理其它的訪問請求。例如,可以根據(jù)請求的時間或者請求等 待的時間,優(yōu)選的是,還可以按照優(yōu)先級進行挑選。當發(fā)生訪問沖突時,先根 據(jù)訪問源的訪問優(yōu)先級設置訪問請求的優(yōu)先級,然后選擇優(yōu)先級最高的優(yōu)先處 理,其它的按照優(yōu)先級利用訪問間隙處理。參照圖4,示出了本發(fā)明的一種寄存器多源訪問控制方法實施例2的步驟 流程圖,具體可以包括以下步驟
步驟401:判斷多個讀/寫請求之間是否發(fā)生沖突,如果否,執(zhí)行步驟402; 如果是,執(zhí)行步驟403;
本步驟判斷多個訪問源有無對寄存器同時發(fā)起訪問請求。
步驟402:進行正常讀/寫訪問,結束本流程;
如果所述多個讀/寫請求之間未發(fā)生沖突,則根據(jù)訪問請求為讀請求或寫 請求,進行相應的讀/寫訪問。
步驟403:設置所述多個讀/寫請求的優(yōu)先級;
根據(jù)訪問源的優(yōu)先級設置訪問請求的優(yōu)先級,高優(yōu)先級的訪問請求在讀寫 控制仲裁的時候擺在優(yōu)先位置。設置優(yōu)先級可以使重要的或急迫的訪問請求得 到優(yōu)先處理,本實施例中,讀請求優(yōu)先級高于寫請求,以便使發(fā)生頻率較高的 讀請求可以先處理,提高寄存器訪問效率。當讀請求之間或寫請求之間發(fā)生沖 突時,則根據(jù)訪問源的優(yōu)先級設置其發(fā)起的訪問請求的優(yōu)先級。
步驟404:先處理優(yōu)先級最高的讀/寫請求,并利用訪問間隙依照優(yōu)先級處 理其它的讀/寫請求;
當發(fā)生讀請求沖突時,首先處理優(yōu)先級最高的讀請求,同時,向其它讀訪 問源發(fā)送一個預置的特定數(shù)值以通知其它讀請求發(fā)生了寄存器訪問沖突。其它 讀訪問源在得知發(fā)生讀沖突后,利用訪問間隙依照優(yōu)先級進行重試。所述預置 的特定數(shù)值為寄存器在實際使用中不會用到的值,應用中,本領域技術人員可 以根據(jù)實際情況自行設置。
此外,本領域技術人員可根據(jù)應用中是否存在不支持等待寄存器也不允許 沖突的訪問源來采用不同的通知方式,如采用預置的特定數(shù)值通知或寄存器總 線發(fā)送忙信號通知的方式,本發(fā)明無須對此作出限制。
當發(fā)生寫請求沖突時,首先處理優(yōu)先級最高的寫請求,并將其它的寫請求 存起來,利用間歇按優(yōu)先級逐個寫入。
由于圖3、圖4所示的實施例可以對應適用于圖2所示的實施例中,所以描述4交為筒略,未詳盡之處可以參見本說明書前面相應部分的描述。
需要說明的是,對于上述的方法實施例,為了簡單描述,故將其都表 述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所 描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以釆用其他順序或 者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施 例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的 都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即 可。
以上對本發(fā)明所提供的一種寄存器多源訪問控制方法和裝置進行了詳細
上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本 領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會 有改變之處,只要根據(jù)本發(fā)明的權利要求書所作的等效變化與修飾,均仍屬于 本發(fā)明所涵蓋的范圍內(nèi)。綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1、一種寄存器多源訪問控制裝置,其特征在于,包括讀控制單元,用于仲裁和控制讀請求;寫控制單元,用于仲裁和控制寫請求;判斷單元,用于判斷多個讀/寫請求;正常訪問單元,用于若所述多個讀/寫請求之間未發(fā)生沖突,則啟動所述讀/寫控制單元,進行正常讀/寫訪問;沖突訪問單元,用于若所述多個讀/寫請求之間發(fā)生沖突,則啟動所述讀/寫控制單元,先處理其中一個讀/寫請求,利用訪問間隙處理其它的讀/寫請求。
2、 根據(jù)權利要求l所述的裝置,其特征在于,所述沖突訪問單元進一步包括優(yōu)先級控制子單元,用于在所述先處理其中一個讀/寫請求前,設置所述 多個讀/寫請求的優(yōu)先級,所述其中一個讀/寫請求為設置優(yōu)先級后的多個讀/寫請求中優(yōu)先級最高的讀/寫請求。
3、 根據(jù)權利要求2所述的裝置,其特征在于,所述沖突訪問單元利用訪問 間隙處理其它的讀/寫請求為利用訪問間隙依照優(yōu)先級處理其它的讀/寫請求。
4、 根據(jù)權利要求l、 2或3所述的裝置,其特征在于,所述讀請求優(yōu)先級高 于寫請求。
5、 根據(jù)權利要求l、 2或3所述的裝置,其特征在于,所述沖突訪問單元 還包括沖突通知子單元,用于若所述多個讀/寫請求之間發(fā)生沖突為讀請求沖突, 則在先處理其中 一個讀請求時,通知其它讀請求發(fā)生訪問沖突。
6、 根據(jù)權利要求5所述的裝置,其特征在于,所述沖突通知子單元通過一 個預置的特定數(shù)值通知其它讀請求發(fā)生訪問沖突。
7、 一種寄存器多源訪問控制方法,其特征在于,包括以下步驟 判斷多個讀/寫請求;若所述多個讀/寫請求之間未發(fā)生沖突,則進行正常讀/寫訪問; 若所述多個讀/寫請求之間發(fā)生沖突,則先處理其中一個讀/寫請求,利用 訪問間隙處理其它的讀/寫請求。
8、 根據(jù)權利要求7所述的方法,其特征在于,還包括,在所述先處理其中 一個讀/寫請求前,設置所述多個讀/寫請求的優(yōu)先級,所述其中一個讀/寫請求 為設置優(yōu)先級后的多個讀/寫請求中優(yōu)先級最高的讀/寫請求。
9、 根據(jù)權利要求8所述的方法,其特征在于,所述利用訪問間隙處理其它 的讀/寫請求為利用訪問間隙依照優(yōu)先級處理其它的讀/寫請求。
10、 根據(jù)權利要求7、 8或9所述的方法,其特征在于,所述讀請求優(yōu)先級 高于寫i青求。
11、 根據(jù)權利要求7、 8或9所述的方法,其特征在于,還包括若所述多 個讀/寫請求之間發(fā)生沖突為讀請求沖突,則在先處理其中一個讀請求時,通 知其它讀請求發(fā)生訪問沖突。
12、 根據(jù)權利要求ll所述的方法,其特征在于,所述通知其它讀請求發(fā)生 訪問沖突為通過一個預置的特定數(shù)值通知。
全文摘要
本發(fā)明提供了一種寄存器多源訪問控制方法和裝置,涉及存儲訪問技術領域。所述寄存器多源訪問控制方法包括判斷多個讀/寫請求;若所述多個讀/寫請求之間未發(fā)生沖突,則進行正常讀/寫訪問;若所述多個讀/寫請求之間發(fā)生沖突,則先處理其中一個讀/寫請求,利用訪問間隙處理其它的讀/寫請求。本發(fā)明在多訪問源對寄存器進行訪問時,無需查詢和控制標志位;且當發(fā)生訪問沖突時,利用訪問間隙處理發(fā)生沖突的訪問請求,有效節(jié)省了訪問時間,加快了訪問速度,提高了訪問效率。
文檔編號G06F13/16GK101441608SQ200810238908
公開日2009年5月27日 申請日期2008年12月4日 優(yōu)先權日2008年12月4日
發(fā)明者浩 張 申請人:北京中星微電子有限公司