一種寄存器的配置方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及芯片設(shè)計領(lǐng)域,尤其涉及一種寄存器的配置方法及裝置。
【背景技術(shù)】
[0002]目前Soc芯片設(shè)計,寄存器是由運行在CPU上驅(qū)動程序來進(jìn)行配置。比如控制器A希望將Soc芯片的某個GP1A管腳設(shè)置為高電平,則由控制器A的驅(qū)動程序,將GP1A管腳設(shè)置為高電平的機(jī)器指令進(jìn)行運行,那么CPU則執(zhí)行該指令,去訪問GP1A管腳所屬的寄存器對其進(jìn)行配置。因此,對于GP1A管腳的配置是屬于無保護(hù)的,也就是意味著任何控制器如果希望控制GP1A管腳,都可以讓CPU去對其進(jìn)行操作;那么這里就產(chǎn)生了一個問題,如果控制器B誤操作將GP1A設(shè)置為低,從而影響了控制器A的行為,導(dǎo)致系統(tǒng)異常,此時我們雖然能夠通過技術(shù)手段有可能排查到GP1A管腳的電平的異常,但是很難追述到是控制器B的行為所致。在嵌入式系統(tǒng)設(shè)計的規(guī)模如此龐大的今天,對應(yīng)此類問題的排查方法是非常困難的。當(dāng)前技術(shù)中,難以直接對應(yīng)排查寄存器收到的指令來源,還有其他比如時鐘模塊,電壓模塊等等都是都有可能產(chǎn)生上述的問題。那么本例設(shè)計出一種可糾錯的寄存器配置方法,用以解決寄存器無法追蹤指令來源的問題。
【發(fā)明內(nèi)容】
[0003]為此,需要提供一種寄存器配置方法及裝置,解決上述寄存器無法追蹤指令來源的問題。
[0004]為實現(xiàn)上述目的,發(fā)明人提供了一種寄存器配置方法,包括如下步驟:寄存器接收第一控制器的第一身份信息、第一控制指令,所述寄存器存儲第一身份信息、第一控制指令。
[0005]具體地,還包括步驟,寄存器接收并存儲第一控制類型信息,所述第一控制類型包括獨占類型、非獨占類型。
[0006]進(jìn)一步地,還包括步驟:接收第二控制器的第二身份信息和第二控制指令,將第一身份信息與第二身份信息進(jìn)行對比,若一致則允許寫入第二控制指令;否則判斷第一控制類型信息是否為獨占類型,若為獨占控制類型則不允許寫入控制指令,若為非獨占類型則允許寫入第二控制指令。
[0007]進(jìn)一步地,還包括步驟,若第一身份信息與第二身份信息不一致,則向第一控制器發(fā)送提示中斷信號。
[0008]進(jìn)一步地,還包括步驟,若判斷第一控制類型信息為獨占控制類型,則向第二控制器發(fā)送錯誤中斷信號。
[0009]一種寄存器配置裝置,包括如下模塊:接收模塊、存儲模塊;所述接收模塊用于接收第一控制器的第一身份信息、第一控制指令,所述存儲模塊用于所述寄存器存儲第一身份信息、第一控制指令。
[0010]具體地,所述接收模塊還用于接收第一控制類型信息,所述存儲模塊還用于存儲第一控制類型信息,所述第一控制類型包括獨占類型、非獨占類型。
[0011]進(jìn)一步地,所述接收模塊還用于接收第二控制器的第二身份信息和第二控制指令;
[0012]還包括對比判斷模塊,所述對比判斷模塊用于將第一身份信息與第二身份信息進(jìn)行對比,若一致則允許寫入第二控制指令;所述對比判斷模塊還用于判斷第一控制類型信息是否為獨占類型,若為獨占控制類型則不允許寫入控制指令,若為非獨占類型則允許寫入第二控制指令。
[0013]進(jìn)一步地,還包括中斷發(fā)送模塊,所述中斷發(fā)送模塊用于在第一身份信息與第二身份信息不一致時向第一控制器發(fā)送提示中斷信號。
[0014]進(jìn)一步地,所述中斷發(fā)送模塊還用于在檢索第一控制類型信息為獨占控制類型時向第二控制器發(fā)送錯誤中斷信號。
[0015]區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案通過接收并存儲第一身份信息、第一控制指令,解決了寄存器無法追蹤指令來源的問題。
【附圖說明】
[0016]圖1為本發(fā)明某實施例所述方法流程示意圖;
[0017]圖2為本發(fā)明某實施例所述裝置模塊示意圖;
[0018]圖3為本發(fā)明某實施例所述裝置功能交互示意圖。
[0019]附圖標(biāo)記說明:
[0020]200、接收模塊;
[0021]202、存儲模塊;
[0022]204、對比判斷模塊;
[0023]206、發(fā)送模塊。
【具體實施方式】
[0024]為詳細(xì)說明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合具體實施例并配合附圖詳予說明。
[0025]請參閱圖1,為本發(fā)明一種寄存器配置方法,可運行于如圖2所示的寄存器配置裝置中,在某些實施例中,裝置進(jìn)行步驟SlOO:寄存器接收第一控制器的第一身份信息、第一控制指令,還進(jìn)行步驟S102:寄存器存儲第一身份信息、第一控制指令。其中,控制指令可以是指令、地址或數(shù)據(jù);寄存器為用于暫存數(shù)據(jù)、指令或地址的存貯部件,包括通用寄存器、專用寄存器、控制寄存器和其他寄存器,這些暫存的數(shù)據(jù)及指令可以被其他進(jìn)程、系統(tǒng)調(diào)用;控制器為用于向寄存器發(fā)送操作指令的控制部件,包括組合邏輯控制器、微程序控制器、CPU、LED控制器等等。在控制器向寄存器發(fā)送操作指令的同時,控制器還需發(fā)送身份信息,所述身份信息為系統(tǒng)中控制器對應(yīng)的識別代號,可以是識別碼、控制器編號或控制器地址。例如控制器地址作為身份信息的情況下,寄存器對第一控制器發(fā)送的控制器地址和控制指令進(jìn)行存儲,存儲位置可以在內(nèi)存中開辟一個對應(yīng)區(qū)塊,也可以存儲在寄存器自身。具體地,當(dāng)控制器A需要對寄存器寫入控制指令時,控制器A將其自身的控制器地址發(fā)送給該寄存器。該寄存器馬上發(fā)送自己的識別代號到內(nèi)存控制器,內(nèi)存控制器檢查識別代號合法后允許該寄存器訪問內(nèi)存中之前已開辟的存儲位置。該寄存器就將控制器A的控制器地址寫入該寄存器對應(yīng)的存儲位置中,優(yōu)選的,一個控制器地址分配的存儲空間約為7bit。
[0026]裝置還進(jìn)行步驟:當(dāng)寄存器中的第一控制指令被調(diào)用時,向調(diào)用者發(fā)送第一身份信息,調(diào)用者可以是調(diào)用控制指令的進(jìn)程、系統(tǒng)等。當(dāng)系統(tǒng)由于執(zhí)行控制指令而產(chǎn)生異常時,便可以通過追溯第一身份信息找到上述第一控制器,便可以了解到是第一控制器的行為導(dǎo)致了異常。通過上述步驟,能夠?qū)γ恳淮渭拇嫫鞔鎯Φ牡谝豢刂浦噶钸M(jìn)行存儲。通過接收并保存第一控制器的身份信息和控制指令,可以將控制指令與控制器對應(yīng)起來,寄存器可以在系統(tǒng)將要執(zhí)行所述控制指令時,發(fā)送反饋信息,提示系統(tǒng)所述控制指令的來源控制器。通過接收并存儲第一身份信息、第一控制指令,解決了寄存器無法追蹤指令來源的問題。
[0027]具體地,還包括步驟,寄存器接收并存儲第一控制類型信息,所述第一控制類型包括獨占類型、非獨占類型。在某些實施例中,寄存器存儲第一身份信息和第一控制指令時還接收控制器的第一控制類型信息,所述第一控制類型信息用于表示控制器對寄存器的操作權(quán)限,例如分為獨占類型和非獨占類型;在某些優(yōu)選的實施例中用Ibit存儲控制類型信息,分別用I和O即可表示獨占與非獨占的兩種狀態(tài)。非獨占類型表明控制器對寄存器的控制指令輸入權(quán)限沒有要求,任何其他控制器都可以對該存儲位置的控制指令進(jìn)行覆蓋寫入,當(dāng)控制類型信息為獨占型的時候,則任何其他控制器都無法對該存儲位置的控制指令進(jìn)行重新寫入。通過設(shè)定獨占類型、非獨占類型的控制類型信息,避免了沒有權(quán)限的控制器對寄存器進(jìn)行誤操作、冗余操作等等,因此也避免了寄存器中控制指令被多次修改,使得寄存器易于追蹤控制指令的來源,更好的解決了寄存器無法追蹤指令來源的問題。
[0028]進(jìn)一步地,還包括步驟S104接收第二控制器的第二身份信息和第二控制指令,步驟S105將第一身份信息與第二身份信息進(jìn)行對比,若一致則進(jìn)行步驟SllO允許寫入第二控制指令;否則進(jìn)行判斷步驟S108判斷第一控制類型信息是否為獨占類型,若為獨占控制類型則步驟S104不允許寫入控制指令,若為非獨占類型則進(jìn)入步驟SllO允許寫入第二控制指令。圖3為一種裝置功能交互示意圖,在圖3所述的某些實施例中,訪客ID即前述控制器地址,主ID為前述寄存器識別代號。寄存器在內(nèi)存中開辟存儲位置,并通過主ID驗證實現(xiàn)訪問,在圖3中,寄存器中第一指令位置(即bitl)存儲有第一控制指令,第一指令位置在內(nèi)存中對應(yīng)的存儲位置大小為一個字節(jié),其中Ibit存儲控制類型信息,7bit存儲控制器A的訪客ID信息,說明寄存器中第一指令位置存儲的第一控制指令來源為控制器A,且控制權(quán)限僅為控制器A獨占。當(dāng)另一個控制器,例如控制器B需要訪問第一指令位置時,寄存器接收控制器B的訪客ID,即第二身份信息,還有控制器B發(fā)送的第二控制指令;隨后寄存器將主ID發(fā)送給內(nèi)存控制器驗證,獲取第一指令位置對應(yīng)存儲位置的訪問權(quán)限,讀取其中存儲的第一身份信息,即控制器A的訪客ID信息。當(dāng)?shù)诙矸菪畔⑴c第一身份信息不符時,再比對控制類型信息,此時發(fā)現(xiàn)控制類型信息為獨占類型,則寄存器不允許控制器B對第一指令位置(bitl)進(jìn)行操作配置。只有某些第一控制器的第一控制類型信息為非獨占時,寄存器才允許控制器B進(jìn)行操作配置;在另一些實施例中,當(dāng)控制器A再次訪問寄存器的第一指令位置時,第二身份信息為控制器A的訪客ID,寄存器調(diào)取第一身份信息進(jìn)行比對相符,則控制器A作為第二控制器,再次訪問該寄存器時能夠通過上述比對判斷步驟,實現(xiàn)對寄存器的操作配置。通過進(jìn)行身份信息和控制類型信息的比對判斷步驟,使得第一控制器對寄存器中存儲的控制指令能夠根據(jù)自身需要設(shè)置,并提供保護(hù),限制其他控制器的訪問,避免了寄存器中的數(shù)據(jù)被頻繁修改導(dǎo)致的難以追蹤控制指令來源。達(dá)到了更好的解決寄存器無法追蹤指令來源的問題。同時也達(dá)到了防止控制