亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種寄存器配置方法和裝置的制作方法

文檔序號:6466513閱讀:278來源:國知局
專利名稱:一種寄存器配置方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種寄存器配置方法和裝置。
背景技術(shù)
隨著芯片復雜度的提高,芯片的功能也越來越豐富,為了支持更多功能, 芯片中需要添加許多用來支持這些功能的寄存器。寄存器的增加提高了芯片 的性能,但也對軟件電路的設計提出了更高的要求,如降低軟件和硬件的復 雜度,并盡量減少配置的時間等。
針對傳統(tǒng)的寄存器配置方法中,寄存器數(shù)量多,刷新頻率高時,每次請
求數(shù)據(jù)都需要CPU ( Central Processing Unit,中央處理器)參與,從而大量占 用CPU資源的缺點,現(xiàn)有技術(shù)將鏈表結(jié)構(gòu)引入到寄存器配置中。根據(jù)需求, 每個鏈表可以設置N個節(jié)點,每個節(jié)點包括下一節(jié)點地址和功能模塊中所有 的寄存器所要配置的數(shù)值。
如圖1所示,為現(xiàn)有技術(shù)中的寄存器配置方法流程圖,包括以下步驟
步驟IOI,創(chuàng)建執(zhí)行寄存器配置功能的鏈表。
步驟102,配置鏈表首地址寄存器。
步驟103,根據(jù)鏈表首地址寄存器自動讀取鏈表節(jié)點,完成本節(jié)點的操作。 本節(jié)點的操作包括三部分將下一節(jié)點的地址保存在鏈表首地址寄存器
中;更新所有寄存器;完成本節(jié)點指示的功能處理。
步驟104,根據(jù)更新后的鏈表首地址寄存器完成節(jié)點的操作,直到鏈表的
最后一個節(jié)點。
下一節(jié)點地址數(shù)據(jù)為零來指示此節(jié)點為鏈表的最后一個節(jié)點。 步驟105,發(fā)送中斷通知CPU可以進行新的鏈表操作。 發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題鏈表 每一個節(jié)點包括所有的寄存器數(shù)據(jù),每讀取一個節(jié)點,不論某些寄存器是否
需要保留原值,所有寄存器都將更新,造成了讀取寄存器周期較長,且不需 要更新的寄存器數(shù)據(jù)也要存儲在存儲器中,浪費了存儲器空間。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種寄存器配置方法和裝置,減少了寄存器配置時對 存儲器空間的占用。
本發(fā)明實施例一方面提出一種寄存器配置方法,包括以下步驟 根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù)據(jù)量,所
述更新標識用于指示所述節(jié)點中的各個寄存器是否需要更新;
根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息,所述當前節(jié)點信
息包括需要更新的寄存器的配置值;
根據(jù)當前節(jié)點信息更新所述節(jié)點中需要更新的寄存器。 另一方面,本發(fā)明實施例還提出一種寄存器配置裝置,包括 運算模塊,用于根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀
取的數(shù)據(jù)量,所述更新標識用于指示所述節(jié)點中的各個寄存器是否需要更新; 讀取模塊,用于根據(jù)所述運算模塊得到的當前節(jié)點中需要讀取的數(shù)據(jù)量
獲得當前節(jié)點信息,所述當前節(jié)點信息包括需要更新的寄存器的配置值; 更新模塊,用于根據(jù)所述讀取模塊獲取的所述當前節(jié)點信息更新所述節(jié)
點中需要更新的寄存器。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入
了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法,
對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,從而,減少了對存
儲器空間的占用。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,
在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中的寄存器配置方法流程圖2為本發(fā)明實施例中的寄存器配置方法流程圖3為本發(fā)明實施例中寄存器配置的一種具體實現(xiàn)方式流程圖4為本發(fā)明實施例中的一種鏈表結(jié)構(gòu)示意圖5為本發(fā)明實施例中寄存器配置的另一種具體實現(xiàn)方式流程圖6為本發(fā)明實施例中的另一種鏈表結(jié)構(gòu)示意圖7為本發(fā)明實施例中的寄存器配置裝置結(jié)構(gòu)圖8為本發(fā)明實施例中寄存器配置裝置的一種具體結(jié)構(gòu)圖9為本發(fā)明實施例中寄存器配置裝置的另一種具體結(jié)構(gòu)圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行 清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而 不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作 出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖2所示,為本發(fā)明實施例中的寄存器配置方法流程圖,包括以下步

步驟201,根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù) 據(jù)量。
更新標識用于指示節(jié)點中的各個寄存器是否需要更新。更新標識可以是 由0和1組成的N位序列,0代表寄存器不需要更新,1代表寄存器需要更新。 更新標識中的N位序列的累加值,就等于當前節(jié)點需要更新的寄存器數(shù)量, 也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。
鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下
n - bit
+bit[l]+bit[2〗+bit[3]+……十bit[n]
其中,bit[N]表示當前節(jié)點的更新標識的第N位值。
步驟202,根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息。
根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量,可以獲得當前節(jié)點的信息,當前節(jié) 點信息包括需要更新的寄存器的配置值。
步驟203,根據(jù)當前節(jié)點信息更新節(jié)點中需要更新的寄存器。 根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。當前節(jié)點信息中還包括鏈表下一節(jié)點的地址, 完成當前節(jié)點的操作后,可以根據(jù)下一節(jié)點的地址讀取下一節(jié)點的信息,進 行與當前節(jié)點相同的操作。如此反復, 一直讀取到鏈表的最后一個節(jié)點,完 成最后一個節(jié)點指示的數(shù)據(jù)配置和功能處理。鏈表最后一個節(jié)點中的下一節(jié) 點地址為零,用于指示此節(jié)點為鏈表的最后一個節(jié)點。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入 了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法, 對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空 間的占用。
如圖3所示,為本發(fā)明實施例中寄存器配置的一種具體實現(xiàn)方式流程圖, 該具體實現(xiàn)方式適用于寄存器配置任務已知的情況,即在獲得鏈表當前節(jié)點 信息之前,已經(jīng)獲取了當前節(jié)點的更新標識,當前節(jié)點信息中包括下一節(jié)點 的更新標識。該具體實現(xiàn)方式包括以下步驟
步驟301,創(chuàng)建執(zhí)行寄存器配置功能的鏈表。
執(zhí)行寄存器配置功能的鏈表由若干個節(jié)點構(gòu)成,如圖4所示,為本發(fā)明 實施例中的一種鏈表結(jié)構(gòu)示意圖,鏈表節(jié)點包括三個部分下一節(jié)點地址 401、下一節(jié)點的更新標識402和寄存器陣列中需要更新的寄存器的配置值 403。
步驟302,通過CPU配置鏈表的首地址和鏈表首個節(jié)點的更新標識。 鏈表的首地址可以由CPU完成配置,存儲在首地址寄存器中。鏈表節(jié)點 的更新標識對寄存器陣列中的每個寄存器都有相應的標識,指示其是否需要 更新。鏈表首個節(jié)點的更新標識可以由CPU完成配置,存儲在更新標識寄存 器中。
值得說明的是,鏈表也可以事先創(chuàng)建并配置好首個節(jié)點的信息,這樣的
話,步驟301、 302就不是必須的了。
步驟303,根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù)據(jù)量。
更新標識可以是由0和1組成的N位序列,O代表寄存器不需要更新,1 代表寄存器需要更新。更新標識中的N位序列的累加值,就等于當前節(jié)點需 要更新的寄存器數(shù)量,也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。 鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下 n = bit
+bit[l]+bit[2]+bit[3]+……十bit[n] 其中,bit[N]表示當前節(jié)點的更新標識的第N位值。 步驟304,根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息。 根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量,可以獲得當前節(jié)點的信息,當前節(jié) 點信息包括需要更新的寄存器的配置值。
步驟305,根據(jù)當前節(jié)點信息更新節(jié)點中需要更新的寄存器。 根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。
步驟306,獲得下一節(jié)點的更新標識。
鏈表的每個節(jié)點中都包括下一節(jié)點的更新標識。讀取鏈表的一個節(jié)點后, 將該節(jié)點中的下一節(jié)點的更新標識存儲到更新標識寄存器中,以讀取鏈表的 下一節(jié)點。
步驟307,根據(jù)下一節(jié)點的更新標識計算下一節(jié)點中需要讀取的數(shù)據(jù)量。 鏈表下一節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下 n = bit
+bit[l]+bit[2]+bit[3]+……十bit[n] bit[N]表示鏈表下一節(jié)點的更新標識的第N位值。
步驟308,根據(jù)下一節(jié)點中需要讀取的數(shù)據(jù)量讀取鏈表的下一節(jié)點信息。 鏈表當前節(jié)點信息中還包括鏈表下一節(jié)點的地址,可以根據(jù)下一節(jié)點中 需要讀取的數(shù)據(jù)量和下一節(jié)點的地址讀取下一節(jié)點的信息。
步驟309,根據(jù)鏈表的下一節(jié)點信息更新下一節(jié)點需要更新的寄存器。 根據(jù)鏈表下一節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的
寄存器的值,更新為下一節(jié)點信息中的配置值,并進行下一節(jié)點指示的功能處理。
每讀取鏈表的一個節(jié)點的信息后,都會進行與讀取鏈表首個節(jié)點的信息 后相同的操作,即存儲鏈表下一節(jié)點地址和鏈表下一節(jié)點的更新標識,計算 下一節(jié)點需要讀取的數(shù)據(jù)量,完成本節(jié)點指示的數(shù)據(jù)配置和功能處理。
如此反復, 一直讀取到鏈表的最后一個節(jié)點,完成最后一個節(jié)點指示的 數(shù)據(jù)配置和功能處理。最后一個節(jié)點中的下一節(jié)點地址為零,用于指示此節(jié) 點為鏈表的最后一個節(jié)點。
在完成本鏈表的操作后,可以向CPU發(fā)送中斷信號,通知CPU可以進行 新的鏈表操作。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入 了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法, 對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空 間的占用。
如圖5所示,為本發(fā)明實施例中寄存器配置的另一種具體實現(xiàn)方式流程 圖,該具體實現(xiàn)方式適用于寄存器配置任務未知的情況,即只有在獲得鏈表 當前節(jié)點信息之后,才能獲取當前節(jié)點的更新標識,當前節(jié)點信息中包括當 前節(jié)點的更新標識,但不包括下一節(jié)點的更新標識。該具體實現(xiàn)方式包括以 下步驟
步驟501,創(chuàng)建執(zhí)行寄存器配置功能的鏈表。
如圖6所示,為本發(fā)明實施例中的另一種鏈表結(jié)構(gòu)示意圖,執(zhí)行寄存器 配置功能的鏈表由若干個節(jié)點構(gòu)成,鏈表節(jié)點包括三個部分下一節(jié)點地 址601、當前節(jié)點的更新標識602和寄存器陣列中需要更新的寄存器的配置 值603。當前節(jié)點的更新標識602對寄存器陣列中的每個寄存器都有相應的標 識,指示其是否需要更新。
步驟502,通過CPU配置鏈表的首地址。
鏈表的首地址可以由CPU完成配置,存儲在首地址寄存器中。
值得說明的是,鏈表也可以事先創(chuàng)建并配置好首個節(jié)點的信息,這樣的
話,步驟501、 502就不是必須的了。
步驟503,獲得當前節(jié)點的預測讀取數(shù)據(jù)量。
鏈表節(jié)點的預測讀取數(shù)據(jù)量,是在下一個配置任務的處理方法未知的情 況下,對鏈表節(jié)點需要讀取的數(shù)據(jù)量的預測。鏈表首個節(jié)點的預測讀取數(shù)據(jù) 量可以由CPU完成配置。
步驟504,根據(jù)當前節(jié)點的預測讀取數(shù)據(jù)量讀取當前節(jié)點信息,并從當前 節(jié)點信息中獲得當前節(jié)點的更新標識。
步驟505,根據(jù)步驟504讀取的當前節(jié)點信息中的更新標識計算當前節(jié)點 需要讀取的數(shù)據(jù)量。
根據(jù)當前節(jié)點的預測讀取數(shù)據(jù)量讀取的當前節(jié)點信息中包括當前節(jié)點的 更新標識,更新標識可以是由0和1組成的N位序列,0代表寄存器不需要 更新,1代表寄存器需要更新。更新標識中的N位序列的累加值,就等于當 前節(jié)點需要更新的寄存器數(shù)量,也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。
鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下
n = bit
+bit[l]+bit[2]+bit[3]+......十bit[n]
其中,bit[N]表示當前節(jié)點的更新標識的第N位值。
步驟506,比較當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀取數(shù)據(jù)量 之間的大小關(guān)系,如果當前節(jié)點需要讀取的數(shù)據(jù)量大于當前節(jié)點的預測讀取 數(shù)據(jù)量,則執(zhí)行步驟507;如果當前節(jié)點需要讀取的數(shù)據(jù)量小于當前節(jié)點的預 測讀取數(shù)據(jù)量,則執(zhí)行步驟508。
步驟507,讀取當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀取數(shù)據(jù)量 之間的差值數(shù)據(jù),獲得當前節(jié)點信息。
當前節(jié)點信息中包括預測讀取數(shù)據(jù)量,還有當前節(jié)點需要讀取的數(shù)據(jù)量 與當前節(jié)點的預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù)。這里的差值數(shù)據(jù)表示,如果 預測的數(shù)據(jù)量比實際需要的數(shù)據(jù)量小的話,說明步驟504獲得的預測數(shù)據(jù)量 還不夠,需要再獲取缺少的部分數(shù)據(jù),也就是當前節(jié)點需要讀取的數(shù)據(jù)量與
當前節(jié)點的預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù)。
步驟508,丟棄當前節(jié)點需要讀取的數(shù)據(jù)量與首個節(jié)點預測讀取數(shù)據(jù)量之 間的差值數(shù)據(jù),得到實際需要的當前節(jié)點信息。
與步驟507不同的是,這個步驟中,在得知步驟504獲得的預測數(shù)據(jù)量 多于實際需要的數(shù)據(jù)量時,需要把多出來的部分舍棄,即丟棄當前節(jié)點需要 讀取的數(shù)據(jù)量與首個節(jié)點預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),得到實際需要的 當前節(jié)點信息。同理,當前節(jié)點信息中包括需要更新的寄存器的配置值,用 于更新對應的寄存器。
步驟509,根據(jù)步驟507或步驟508獲取的實際的當前節(jié)點信息更新節(jié)點 中需要更新的寄存器。
根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。
步驟510,獲得下一節(jié)點的預測讀取數(shù)據(jù)量并根據(jù)下一節(jié)點的預測讀取數(shù) 據(jù)量讀取下一節(jié)點信息,再根據(jù)下一節(jié)點信息完成下一節(jié)點的操作。
寄存器配置裝置每讀取鏈表的一個節(jié)點的信息后,都會進行與讀取鏈表 首個節(jié)點的信息后相同的操作,即計算當前節(jié)點需要讀取的數(shù)據(jù)量,比較預 測讀取數(shù)據(jù)量與需要讀取的數(shù)據(jù)量之間的大小關(guān)系,根據(jù)大小關(guān)系決定繼續(xù) 讀取鏈表數(shù)據(jù)還是丟棄部分鏈表數(shù)據(jù),根據(jù)讀取的鏈表信息完成本節(jié)點指示 的數(shù)據(jù)配置和功能處理。
如此反復, 一直讀取到鏈表的最后一個節(jié)點,完成最后一個節(jié)點指示的 數(shù)據(jù)配置和功能處理。最后一個節(jié)點中的下一節(jié)點地址為零,用于指示此節(jié) 點為鏈表的最后一個節(jié)點。
在完成本鏈表的操作后,可以向CPU發(fā)送中斷信號,通知CPU可以進行 新的鏈表操作。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入 了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法, 對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空
間的占用。
如圖7所示,為本發(fā)明實施例中的寄存器配置裝置結(jié)構(gòu)圖,包括 運算模塊701 ,用于根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要 讀取的數(shù)據(jù)量。
更新標識用于指示節(jié)點中的各個寄存器是否需要更新。更新標識可以是 由0和1組成的N位序列,O代表寄存器不需要更新,1代表寄存器需要更新。 更新標識中的N位序列的累加值,就等于當前節(jié)點需要更新的寄存器數(shù)量, 也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。
鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下
n = bit
+bit[l]+bit[2]+bit[3]+……+bit[n]
其中,bit[N]表示當前節(jié)點的更新標識的第N位值。
讀取模塊702,用于根據(jù)運算模塊701得到的當前節(jié)點中需要讀取的數(shù)據(jù) 量獲得當前節(jié)點信息。
根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量,可以獲得當前節(jié)點的信息,當前節(jié) 點信息包括需要更新的寄存器的配置值。
更新模塊703,用于根據(jù)讀取模塊702獲取的當前節(jié)點信息更新節(jié)點中需 要更新的寄存器。
根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。當前節(jié)點信息中還包括鏈表下一節(jié)點的地址, 完成當前節(jié)點的操作后,可以根據(jù)下一節(jié)點的地址讀取下一節(jié)點的信息,進 行與當前節(jié)點相同的操作。如此反復, 一直讀取到鏈表的最后一個節(jié)點,完 成最后一個節(jié)點指示的數(shù)據(jù)配置和功能處理。鏈表最后一個節(jié)點中的下一節(jié) 點地址為零,用于指示此節(jié)點為鏈表的最后一個節(jié)點。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入 了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法, 對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空 間的占用。
如圖8所示,為本發(fā)明實施例中寄存器配置裝置的一種具體結(jié)構(gòu)圖,該 裝置適用于寄存器配置任務已知的情況,即在獲得鏈表當前節(jié)點信息之前, 已經(jīng)獲取了當前節(jié)點的更新標識,當前節(jié)點信息中包括下一節(jié)點的更新標識。 該裝置包括
運算模塊801,用于根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要 讀取的數(shù)據(jù)量。
更新標識用于指示節(jié)點中的各個寄存器是否需要更新。更新標識可以是 由0和1組成的N位序列,0代表寄存器不需要更新,1代表寄存器需要更新。 更新標識中的N位序列的累加值,就等于當前節(jié)點需要更新的寄存器數(shù)量, 也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。
鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下
n = bit
+bit[l]+bit[2]+bit[3]+……十bit[n]
其中,bit[N]表示當前節(jié)點的更新標識的第N位值。
讀取模塊802,用于根據(jù)運算模塊801得到的當前節(jié)點中需要讀取的數(shù)據(jù) 量獲得當前節(jié)點信息。
根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量,可以獲得當前節(jié)點的信息,當前節(jié) 點信息包括需要更新的寄存器的配置值。
更新模塊803,用于根據(jù)讀取模塊802獲取的當前節(jié)點信息更新節(jié)點中需 要更新的寄存器。
根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。
該裝置還可以包括
獲取;f莫塊804,用于獲得下一節(jié)點的更新標識。
當前節(jié)點信息還包括鏈表中的下一節(jié)點的更新標識,獲和漠塊804用于 獲得該下一節(jié)點的更新標識。
運算模塊801,還用于根據(jù)獲取模塊804獲得的下一節(jié)點的更新標識計算 所述下一節(jié)點中需要讀取的數(shù)據(jù)量;讀取模塊802,還用于根據(jù)運算模塊801
得到的下一節(jié)點中需要讀取的數(shù)據(jù)量讀取鏈表的下一節(jié)點信息;更新模塊
803,還用于根據(jù)讀取模塊802讀取的鏈表的下一節(jié)點信息更新下一節(jié)點需要 更新的寄存器。
當前節(jié)點信息中還包括鏈表下一節(jié)點的地址,完成當前節(jié)點的操作后, 可以根據(jù)下一節(jié)點的地址讀取下一節(jié)點的信息,進行與當前節(jié)點相同的操作。 如此反復, 一直讀取到鏈表的最后一個節(jié)點,完成最后一個節(jié)點指示的數(shù)據(jù) 配置和功能處理。鏈表最后一個節(jié)點中的下一節(jié)點地址為零,用于指示此節(jié) 點為鏈表的最后一個節(jié)點。
進一步地,該裝置還可以包括
通知模塊805,用于通知CPU可以進行新的鏈表操作。
在更新模塊803完成本鏈表的操作后,通知模塊805可以向CPU發(fā)送中
斷信號,通知CPU可以進行新的鏈表操作。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入
了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法,
對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空
間的占用。
如圖9所示,為本發(fā)明實施例中寄存器配置裝置的另一種具體結(jié)構(gòu)圖, 該裝置適用于寄存器配置任務未知的情況,即只有在獲得鏈表當前節(jié)點信息 之后,才能獲取當前節(jié)點的更新標識,當前節(jié)點信息中包括當前節(jié)點的更新 標識,但不包括下一節(jié)點的更新標識。該裝置包括
運算模塊910,用于根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要 讀取的數(shù)據(jù)量。
更新標識用于指示節(jié)點中的各個寄存器是否需要更新。更新標識可以是 由0和1組成的N位序列,0代表寄存器不需要更新,1代表寄存器需要更新。 更新標識中的N位序列的累加值,就等于當前節(jié)點需要更新的寄存器數(shù)量, 也就是當前節(jié)點中需要讀取的數(shù)據(jù)量。
鏈表的當前節(jié)點中需要讀取的數(shù)據(jù)n的計算方法如下
n - bit
+bit[l]+bit[2]+bit[3]十......十bit[n]其中,bit[N]表示當前節(jié)點的更新標識的第N位值。
讀取模塊920,用于根據(jù)運算模塊910得到的當前節(jié)點中需要讀取的數(shù)據(jù) 量獲得當前節(jié)點信息。
根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量,可以獲得當前節(jié)點的信息,當前節(jié) 點信息包括需要更新的寄存器的配置值。
更新模塊930,用于根據(jù)讀取模塊920獲取的當前節(jié)點信息更新節(jié)點中需 要更新的寄存器。
根據(jù)鏈表當前節(jié)點信息可以實現(xiàn)對寄存器的配置,將節(jié)點中需要更新的 寄存器的值,更新為當前節(jié)點信息中的配置值,并進行當前節(jié)點指示的功能 處理,完成當前節(jié)點的操作。
該裝置還可以包括
預測模塊940,用于獲得當前節(jié)點的預測讀取數(shù)據(jù)量。
鏈表節(jié)點的預測讀取數(shù)據(jù)量,是在下一個配置任務的處理方法未知的情 況下,對鏈表節(jié)點需要讀取的數(shù)據(jù)量的預測。鏈表首個節(jié)點的預測讀取數(shù)據(jù) 量可以由CPU完成配置。
預讀模塊950,用于根據(jù)預測模塊940獲得的當前節(jié)點的預測讀取數(shù)據(jù)量 讀取當前節(jié)點信息,并從當前節(jié)點信息中獲得當前節(jié)點的更新標識。
預讀模塊950讀取的當前節(jié)點信息包括當前節(jié)點的更新標識,更新標識 用于指示節(jié)點中的各個寄存器是否需要更新,供運算模塊910使用。
讀取模塊920包括
比較單元921,用于比較當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀 取數(shù)據(jù)量之間的大小關(guān)系。
獲取單元922,用于在比較模塊921比較當前節(jié)點需要讀取的數(shù)據(jù)量大于 當前節(jié)點的預測讀取數(shù)據(jù)量后,讀取當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點 的預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),獲得當前節(jié)點信息。當前節(jié)點信息包括 預測讀取數(shù)據(jù)量,還有當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀取數(shù) 據(jù)量之間的差值數(shù)據(jù),以及需要更新的寄存器的配置值。這里的差值數(shù)據(jù)表 示,如果預測的數(shù)據(jù)量比實際需要的數(shù)據(jù)量小的話,說明預讀模塊950獲得
的預測數(shù)據(jù)量還不夠,需要再獲取缺少的部分數(shù)據(jù),也就是當前節(jié)點需要讀 取的數(shù)據(jù)量與當前節(jié)點的預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù)。
獲取單元922,還可以用于在比較單元921比較當前節(jié)點需要讀取的數(shù)據(jù) 量小于所述節(jié)點的預測讀取數(shù)據(jù)量后,丟棄當前節(jié)點需要讀取的數(shù)據(jù)量與首 個節(jié)點預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),得到實際需要的當前節(jié)點信息。
在比較單元921比較獲得的預測數(shù)據(jù)量多于實際需要的數(shù)據(jù)量后,需要 由獲取單元922把多出來的部分舍棄,即丟棄當前節(jié)點需要讀取的數(shù)據(jù)量與 首個節(jié)點預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),得到實際需要的當前節(jié)點信息。 同理,當前節(jié)點信息中包括需要更新的寄存器的配置值,用于更新對應的寄 存器。
當前節(jié)點信息中還包括鏈表下一節(jié)點的地址,完成當前節(jié)點的操作后, 可以根據(jù)下一節(jié)點的地址讀取下一節(jié)點的信息,進行與當前節(jié)點相同的操作。 如此反復, 一直讀取到鏈表的最后一個節(jié)點,完成最后一個節(jié)點指示的數(shù)據(jù) 配置和功能處理。鏈表最后一個節(jié)點中的下一節(jié)點地址為零,用于指示此節(jié) 點為鏈表的最后一個節(jié)點。
進一步地,該裝置還可以包括
通知模塊960,用于通知CPU可以進行新的鏈表操作。
在更新模塊930完成本鏈表的操作后,通知模塊960可以向CPU發(fā)送中
斷信號,通知CPU可以進行新的M操作。
本發(fā)明實施例的技術(shù)方案具有以下優(yōu)點,因為在寄存器配置鏈表中引入
了更新標識,刪減了不需要更新的寄存器數(shù)據(jù),優(yōu)化了寄存器配置的方法,
對于不需要更新的寄存器,不再存儲數(shù)據(jù)和重復讀取,減少了對存儲器空
間的占用。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本 發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬 件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技
術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體 現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使
得一臺終端設備(可以是手機,個人計算機,服務器,或者網(wǎng)絡設備等) 執(zhí)行本發(fā)明各個實施例所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的 普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進 和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。
權(quán)利要求
1、一種寄存器配置方法,其特征在于,包括以下步驟根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù)據(jù)量,所述更新標識用于指示所述節(jié)點中的各個寄存器是否需要更新;根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息,所述當前節(jié)點信息包括需要更新的寄存器的配置值;根據(jù)當前節(jié)點信息更新所述節(jié)點中需要更新的寄存器。
2、 如權(quán)利要求1所述寄存器配置方法,其特征在于,在配置寄存器之前, 通過中央處理器CPU配置鏈表中首個節(jié)點的更新標識。
3、 如權(quán)利要求1所述寄存器配置方法,其特征在于,所述當前節(jié)點信息還包括所述鏈表中的下 一節(jié)點的更新標識。
4、 如權(quán)利要求3所述寄存器配置方法,其特征在于,還包括 獲得所述下一節(jié)點的更新標識;根據(jù)所述下一節(jié)點的更新標識計算所述下一節(jié)點中需要讀取的數(shù)據(jù)量; 根據(jù)所述下一節(jié)點中需要讀取的數(shù)據(jù)量讀取所述鏈表的下一節(jié)點信息, 并根據(jù)所述鏈表的下一節(jié)點信息更新所述下一節(jié)點需要更新的寄存器。
5、 如權(quán)利要求1所述寄存器配置方法,其特征在于, 所述當前節(jié)點信息還包括所述當前節(jié)點的更新標識,所述根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù)據(jù)量之前,還包括 獲得當前節(jié)點的預測讀取數(shù)據(jù)量;根據(jù)當前節(jié)點的預測讀取數(shù)據(jù)量讀取當前節(jié)點信息,并從所述當前節(jié)點 信息中獲得當前節(jié)點的更新標識。
6、 如權(quán)利要求5所述寄存器配置方法,其特征在于,所述根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息,具體包括比較當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀取數(shù)據(jù)量之間的大 小關(guān)系,如果當前節(jié)點需要讀取的數(shù)據(jù)量大于所述當前節(jié)點的預測讀取數(shù)據(jù) 量,則讀取當前節(jié)點需要讀取的數(shù)據(jù)量與所述當前節(jié)點的預測讀取數(shù)據(jù)量之 間的差值數(shù)據(jù),所述當前節(jié)點信息包括所述預測讀取數(shù)據(jù)量和差值數(shù)據(jù)。
7、 如權(quán)利要求6所述寄存器配置方法,其特征在于, 如果當前節(jié)點需要讀取的數(shù)據(jù)量小于所述當前節(jié)點的預測讀取數(shù)據(jù)量,則丟棄當前節(jié)點需要讀取的數(shù)據(jù)量與所述首個節(jié)點預測讀取數(shù)據(jù)量之間的差 值數(shù)據(jù),得到實際需要的當前節(jié)點信息。
8、 一種寄存器配置裝置,其特征在于,包括運算模塊,用于根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀 取的數(shù)據(jù)量,所述更新標識用于指示所述節(jié)點中的各個寄存器是否需要更新;讀取模塊,用于根據(jù)所述運算模塊得到的當前節(jié)點中需要讀取的數(shù)據(jù)量 獲得當前節(jié)點信息,所述當前節(jié)點信息包括需要更新的寄存器的配置值;更新模塊,用于根據(jù)所述讀取模塊獲取的所述當前節(jié)點信息更新所述節(jié) 點中需要更新的寄存器。
9、 如權(quán)利要求8所述寄存器配置裝置,其特征在于,所述當前節(jié)點信息還包括所述鏈表中的下 一 節(jié)點的更新標識。
10、 如權(quán)利要求9所述寄存器配置裝置,其特征在于,還包括 獲取溪塊,用于獲得所述下一節(jié)點的更新標識。
11、 如權(quán)利要求9所述寄存器配置裝置,其特征在于, 所述運算模塊,還用于根據(jù)所述下一節(jié)點的更新標識計算所述下一節(jié)點中需要讀取的數(shù)據(jù)量;所述讀取模塊,還用于根據(jù)所述下一節(jié)點中需要讀取的數(shù)據(jù)量讀取所述 鏈表的下一節(jié)點信息;所述更新模塊,還用于根據(jù)所述鏈表的下一節(jié)點信息更新所述下一節(jié)點 需要更新的寄存器。
12、 如權(quán)利要求8所述寄存器配置裝置,其特征在于,所述當前節(jié)點信 息還包括所述當前節(jié)點的更新標識。
13、 如權(quán)利要求12所述寄存器配置裝置,其特征在于,還包括 預測模塊,用于獲得當前節(jié)點的預測讀取數(shù)據(jù)量;預讀模塊,用于根據(jù)所述預測模塊獲得的當前節(jié)點的預測讀取數(shù)據(jù)量讀 取所述當前節(jié)點信息,并從所述當前節(jié)點信息中獲得當前節(jié)點的更新標識。
14、如權(quán)利要求13所述寄存器配置裝置,其特征在于,所述讀^f莫塊包括比較單元,用于比較當前節(jié)點需要讀取的數(shù)據(jù)量與當前節(jié)點的預測讀取 數(shù)據(jù)量之間的大小關(guān)系;獲取單元,用于在所述比較單元比較所述當前節(jié)點需要讀取的數(shù)據(jù)量大 于所述當前節(jié)點的預測讀取數(shù)據(jù)量后,讀取當前節(jié)點需要讀取的數(shù)據(jù)量與所 述當前節(jié)點的預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),所述當前節(jié)點信息包括所述 預測讀取數(shù)據(jù)量和差值數(shù)據(jù);或用于在所述比較單元比較所述當前節(jié)點需要讀取的數(shù)據(jù)量小于所述當前 節(jié)點的預測讀取數(shù)據(jù)量后,丟棄當前節(jié)點需要讀取的數(shù)據(jù)量與所述首個節(jié)點 預測讀取數(shù)據(jù)量之間的差值數(shù)據(jù),得到實際需要的當前節(jié)點信息。
全文摘要
本發(fā)明實施例公開了一種寄存器配置方法,包括以下步驟根據(jù)鏈表中當前節(jié)點的更新標識計算當前節(jié)點中需要讀取的數(shù)據(jù)量,所述更新標識用于指示所述節(jié)點中的各個寄存器是否需要更新;根據(jù)當前節(jié)點中需要讀取的數(shù)據(jù)量獲得當前節(jié)點信息,所述當前節(jié)點信息包括需要更新的寄存器的配置值;根據(jù)當前節(jié)點信息更新所述節(jié)點中需要更新的寄存器。本發(fā)明實施例優(yōu)化了寄存器配置的方法,減少了對CPU資源和寄存器空間的占用。
文檔編號G06F15/78GK101339545SQ20081014724
公開日2009年1月7日 申請日期2008年8月22日 優(yōu)先權(quán)日2008年8月22日
發(fā)明者孫興國, 萌 李, 浩 汪, 王曉娟, 簡紅清, 喆 黃 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1