本申請涉及計算機,特別涉及一種設備寄存器的訪問方法及訪問裝置。
背景技術:
1、寄存器是中央處理器(cpu)的核心組成部分,它是高速存儲部件,用來暫存指令、數(shù)據(jù)和地址。處理器在執(zhí)行指令時可以將指令對應的數(shù)據(jù)存儲在寄存器中,寄存器的存在大大加快了計算及內(nèi)存訪問效率。
2、計算機體系中會存在一些如i2c/smbus這樣的慢速總線來管理一些設備。用戶可以通過對位于這些總線下的設備的寄存器進行編程或者配置的方式來操作這些設備。從具體的設備功能來看,對寄存器的配置往往具有比較固定的模式:比如使能設備的某個功能時,需要按照固定的順序配置一組固定的寄存器;禁用設備的某個功能時,也會按照固定的順序配置一組固定的寄存器。寄存器大致可分為兩種類型,一種是僅包括一個寄存單元的寄存器,該寄存單元獨占寄存器的地址;另一種是其寄存空間被劃分成多個寄存單元的寄存器,這些寄存單元共享寄存器的地址。對包括多個寄存單元的寄存器而言,在對設備的某些功能進行批量操作的場景中,這類寄存器可能會被頻繁地配置。
3、由于是慢速總線,在訪問這些總線下的設備(后面統(tǒng)稱為低速設備)時,系統(tǒng)總體的性能會受到較大影響。當執(zhí)行某些批量的功能操作時,一些被劃分為多個寄存單元的寄存器會被頻繁的訪問,這會進一步的影響到系統(tǒng)的性能。
4、本部分旨在為權利要求書中陳述的本申請的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是已被公開的現(xiàn)有技術。
技術實現(xiàn)思路
1、本申請的目的在于提供一種設備寄存器的訪問方法及訪問裝置,以減少低速設備的訪問次數(shù),提升系統(tǒng)的性能。
2、本申請公開了一種設備寄存器的訪問方法,所述設備經(jīng)由總線連接至cpu,所述設備包括多個寄存器,每個寄存器分別對應不同的地址,所述寄存器包括一個或多個寄存單元,所述一個或多個寄存單元共享所述寄存器的地址,所述訪問方法包括:
3、創(chuàng)建用于訪問所述設備的指令集;
4、響應于所述cpu對所述設備的操作請求,從所述指令集中選擇對應的指令,以生成對應于所述操作請求的最小執(zhí)行粒度的執(zhí)行單元;
5、對所述執(zhí)行單元進行檢測,在檢測到存在對應同一種操作請求的多個執(zhí)行單元且所述多個執(zhí)行單元包括對應于同一寄存器地址的多個相同類型的指令時,對所述多個執(zhí)行單元進行合并優(yōu)化并生成一個經(jīng)優(yōu)化的執(zhí)行單元并將所述經(jīng)優(yōu)化的執(zhí)行單元發(fā)送至所述總線。
6、在一個優(yōu)選例中,所述方法還包括:檢測所述多個相同類型的指令所對應的寄存器地址是否被標記為可優(yōu)化地址,并在確定所述寄存器地址為可優(yōu)化地址時,對所述多個執(zhí)行單元進行合并優(yōu)化。
7、在一個優(yōu)選例中,所述對所述多個執(zhí)行單元進行合并優(yōu)化包括:將所述多個執(zhí)行單元中的對應于同一寄存器地址的多個相同類型的指令合并并生成一個經(jīng)優(yōu)化的指令。
8、在一個優(yōu)選例中,所述對所述多個執(zhí)行單元進行合并優(yōu)化包括:將所述多個執(zhí)行單元中除對應于同一地址的多個相同類型的指令之外的指令和所述經(jīng)優(yōu)化的指令進行排序,使得經(jīng)優(yōu)化的執(zhí)行單元中任意兩個指令之間的相對順序,與其在優(yōu)化前的執(zhí)行單元中的相對順序相同。
9、在一個優(yōu)選例中,所述指令集中的指令包括操作字段、地址字段和數(shù)據(jù)字段。
10、在一個優(yōu)選例中,所述多個相同類型的指令中的操作字段、地址字段相同,所述數(shù)據(jù)字段分別對應所述寄存器的不同寄存單元。
11、在一個優(yōu)選例中,所述將對應于同一寄存器地址的多個相同類型的指令合并包括:根據(jù)所述對應于同一寄存器地址的多個相同類型的指令的操作字段,對所述多個相同類型的指令中數(shù)據(jù)字段中的數(shù)據(jù)進行計算,得到經(jīng)優(yōu)化的指令中的數(shù)據(jù)字段中的數(shù)據(jù),所述經(jīng)優(yōu)化的指令中的操作字段和地址字段分別與所述多個相同類型的指令中的操作字段和地址字段相同。
12、在一個優(yōu)選例中,所述多個相同類型的指令為相同類型的位操作指令。
13、在一個優(yōu)選例中,以領域特定語言的方式創(chuàng)建所述指令集。
14、本申請還公開了一種設備寄存器的訪問裝置,所述設備經(jīng)由總線連接至cpu,所述設備包括多個寄存器,每個寄存器分別對應不同的地址,所述寄存器包括一個或多個寄存單元,所述一個或多個寄存單元共享所述寄存器的地址,所述訪問裝置包括:
15、指令創(chuàng)建模塊,創(chuàng)建用于訪問所述設備的指令集;
16、執(zhí)行單元生成模塊,響應于所述cpu對所述設備的操作請求,從所述指令集中選擇對應的指令,以生成對應于所述操作請求的最小執(zhí)行粒度的執(zhí)行單元;
17、解釋器模塊,對所述執(zhí)行單元進行檢測,在檢測到存在對應同一種操作請求的多個執(zhí)行單元且所述多個執(zhí)行單元包括對應于同一寄存器地址的多個相同類型的指令時,對所述多個執(zhí)行單元進行合并優(yōu)化并生成一個經(jīng)優(yōu)化的執(zhí)行單元并將所述經(jīng)優(yōu)化的執(zhí)行單元發(fā)送至所述總線。
18、本申請實施方式中,創(chuàng)建訪問設備的指令集,當對設備進行操作時,從指令集中選擇對應的指令并生成對應于操作請求的最小執(zhí)行粒度的執(zhí)行單元,在檢測到存在對應同一種操作請求的多個執(zhí)行單元且多個執(zhí)行單元包括對應于同一寄存器地址的多個相同類型的指令時,對多個執(zhí)行單元進行合并優(yōu)化并生成一個經(jīng)優(yōu)化的執(zhí)行單元發(fā)送至總線,這樣可以減少低速設備訪問的次數(shù),提升系統(tǒng)的性能。
19、本申請的說明書中記載了大量的技術特征,分布在各個技術方案中,如果要羅列出本申請所有可能的技術特征的組合(即技術方案)的話,會使得說明書過于冗長。為了避免這個問題,本申請上述
技術實現(xiàn)要素:
中公開的各個技術特征、在下文各個實施方式和例子中公開的各技術特征、以及附圖中公開的各個技術特征,都可以自由地互相組合,從而構成各種新的技術方案(這些技術方案均應該視為在本說明書中已經(jīng)記載),除非這種技術特征的組合在技術上是不可行的。例如,在一個例子中公開了特征a+b+c,在另一個例子中公開了特征a+b+d+e,而特征c和d是起到相同作用的等同技術手段,技術上只要擇一使用即可,不可能同時采用,特征e技術上可以與特征c相組合,則,a+b+c+d的方案因技術不可行而應當不被視為已經(jīng)記載,而a+b+c+e的方案應當視為已經(jīng)被記載。
1.一種設備寄存器的訪問方法,其特征在于,所述設備經(jīng)由總線連接至cpu,所述設備包括多個寄存器,每個寄存器分別對應不同的地址,所述寄存器包括一個或多個寄存單元,所述一個或多個寄存單元共享所述寄存器的地址,所述訪問方法包括:
2.根據(jù)權利要求1所述的訪問方法,其特征在于,所述方法還包括:檢測所述多個相同類型的指令所對應的寄存器地址是否被標記為可優(yōu)化地址,并在確定所述寄存器地址為可優(yōu)化地址時,對所述多個執(zhí)行單元進行合并優(yōu)化。
3.根據(jù)權利要求1所述的訪問方法,其特征在于,所述對所述多個執(zhí)行單元進行合并優(yōu)化包括:將所述多個執(zhí)行單元中的對應于同一寄存器地址的多個相同類型的指令合并并生成一個經(jīng)優(yōu)化的指令。
4.根據(jù)權利要求3所述的訪問方法,其特征在于,所述對所述多個執(zhí)行單元進行合并優(yōu)化包括:將所述多個執(zhí)行單元中除對應于同一地址的多個相同類型的指令之外的指令和所述經(jīng)優(yōu)化的指令進行排序,使得經(jīng)優(yōu)化的執(zhí)行單元中任意兩個指令之間的相對順序,與其在優(yōu)化前的執(zhí)行單元中的相對順序相同。
5.根據(jù)權利要求3所述的訪問方法,其特征在于,所述指令集中的指令包括操作字段、地址字段和數(shù)據(jù)字段。
6.根據(jù)權利要求5所述的訪問方法,其特征在于,所述多個相同類型的指令中的操作字段、地址字段相同,所述數(shù)據(jù)字段分別對應所述寄存器的不同寄存單元。
7.根據(jù)權利要求5所述的訪問方法,其特征在于,所述將對應于同一寄存器地址的多個相同類型的指令合并包括:根據(jù)所述對應于同一寄存器地址的多個相同類型的指令的操作字段,對所述多個相同類型的指令中數(shù)據(jù)字段中的數(shù)據(jù)進行計算,得到經(jīng)優(yōu)化的指令中的數(shù)據(jù)字段中的數(shù)據(jù),所述經(jīng)優(yōu)化的指令中的操作字段和地址字段分別與所述多個相同類型的指令中的操作字段和地址字段相同。
8.根據(jù)權利要求7所述的訪問方法,其特征在于,所述多個相同類型的指令為相同類型的位操作指令。
9.根據(jù)權利要求1所述的訪問方法,其特征在于,以領域特定語言的方式創(chuàng)建所述指令集。
10.一種設備寄存器的訪問裝置,其特征在于,所述設備經(jīng)由總線連接至cpu,所述設備包括多個寄存器,每個寄存器分別對應不同的地址,所述寄存器包括一個或多個寄存單元,所述一個或多個寄存單元共享所述寄存器的地址,所述訪問裝置包括: