專利名稱:復位方法及其裝置的制作方法
技術領域:
本發(fā)明涉及片上系統(tǒng)領域,尤其涉及一種復位方法及其裝置。
背景技術:
隨著集成電路生產(chǎn)制造工藝的不斷發(fā)展,片上系統(tǒng)(System On Chip, S0C)中同樣面積大小的單顆芯片上可以集成越來越多的復雜電路邏輯。在SOC出現(xiàn)異常時,為了防止SOC掛死,會觸發(fā)異常復位,從而使得SOC中的電路邏輯自動恢復到確定的初始狀態(tài)。目前,在SOC中,一旦SOC發(fā)生異常,會觸發(fā)整 個SOC全局復位,即SOC中所有的電路邏輯和寄存器都恢復到SOC的上電復位初始狀態(tài),因此,缺少有效的方法對SOC異常復位問題進行定位。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種復位方法及其裝置,可以提供SOC異常復位發(fā)生時的現(xiàn)場信息,方便異常復位問題的定位。為解決上述技術問題,本發(fā)明的實施例采用如下技術方案一種復位方法,包括根據(jù)復位源選擇復位方式,所述復位源包括上電復位和異常復位;當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止所述SOC掛死,并使所述SOC內(nèi)的其他模塊的寄存器保持所述異常復位發(fā)生時的值不變;讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存;觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作。一種復位裝置,包括復位選擇單元,用于根據(jù)復位源選擇復位方式,所述復位源包括上電復位和異常復位;第一復位單元,用于當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止所述SOC掛死,并使所述SOC內(nèi)的其他模塊的寄存器保持所述異常復位發(fā)生時的值不變;保存單元,用于讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存;第二復位單元,用于觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作。本發(fā)明實施例提供的復位方法及其裝置,與現(xiàn)有技術中異常復位發(fā)生時觸發(fā)全局復位相比,保存SOC異常復位發(fā)生時的現(xiàn)場信息,方便了 SOC異常復位問題的定位。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實施例提供中一種復位方法的流程圖;圖2為本發(fā)明實施例提供中另一種復位方法的流程圖;圖3為本發(fā)明實施例提供中另一種復位方法的流程圖;圖4為本發(fā)明實施例提供中一種復位裝置的結(jié)構(gòu)框圖;圖5為本發(fā)明實施例提供中另一種復位裝置的結(jié)構(gòu)框圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖I所示,本發(fā)明實施例提供了一種SOC的復位方法,包括步驟101、根據(jù)復位源選擇復位方式,復位源包括上電復位和異常復位;具體地,上電復位是由外接電源管理單元(Power Management Unit, PMU)輸出到SOC上電復位管腳的電平跳變觸發(fā),而異常復位是由SOC內(nèi)部的看門狗(Watchdog)功能模塊或其他功能模塊觸發(fā)。通過讀取SOC中復位狀態(tài)寄存器的值,可以獲取上述復位源信息,因此可以根據(jù)復位源信息對復位方式進行選擇。步驟102、當復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止SOC掛死,并使SOC內(nèi)的其他模塊的寄存器保持異常復位發(fā)生時的值不變;具體地,處理器內(nèi)核復位即使處理器內(nèi)核的電路邏輯恢復到確定的初始狀態(tài),可以防止整個SOC掛死,同時除了處理器內(nèi)核之外其他模塊中寄存器未復位,從而使未復位的模塊中寄存器的值保持不變。步驟103、讀取上述其他模塊的寄存器在異常復位發(fā)生時的值并保存;具體地,上述其他模塊的寄存器在SOC異常復位發(fā)生時的值能夠作為SOC異常發(fā)生時的現(xiàn)場信息,從而反映導致SOC發(fā)生異常的原因,因此可以在未復位時通過處理器內(nèi)核讀取上述其他模塊的寄存器的值并保存起來。步驟104、觸發(fā)全局軟復位使SOC恢復到確定的初始狀態(tài),以使SOC能夠正常工作。具體地,在獲得SOC發(fā)生異常時的現(xiàn)場信息之后,觸發(fā)SOC全局軟復位,全局軟復位具體是使SOC內(nèi)部的電路邏輯和寄存器都恢復到確定的初始狀態(tài),從而確保SOC進入正常工作狀態(tài)。在SOC進入正常工作狀態(tài)后,可以讀取之前保存的各模塊的寄存器在異常復位發(fā)生時的值,從而根據(jù)異常復位發(fā)生時的現(xiàn)場信息,在不影響SOC正常工作的同時,對異常復位問題進行定位分析。根據(jù)以上描述,本發(fā)明實施例提供的復位方法,與現(xiàn)有技術中異常復位發(fā)生時觸發(fā)全局復位相比,保存SOC異常復位發(fā)生時的現(xiàn)場信息,方便了 SOC異常復位問題的定位。如圖2所示,進一步地,在觸發(fā)全局軟復位使SOC恢復到確定的初始狀態(tài),以使SOC能夠正常工作的步驟之后,還包括
步驟105、讀取上述其他模塊的寄存器在SOC異常復位發(fā)生時的值,以便于對異常復位發(fā)生的原因進行定位分析。具體地,由于SOC此時已經(jīng)恢復正常的工作狀態(tài),因此可以根據(jù)異常復位發(fā)生時的現(xiàn)場信息,在不影響SOC正常工作的同時,對異常復位問題進行定位分析。進一步地,還包括步驟106、當復位源為上電復位時,觸發(fā)全局軟復位以使SOC正常啟動。具體地,在根據(jù)復位源選擇復位方式之后,若判斷復位源為上電復位,則進入SOC的正常啟動流程即可。具體地,上述步驟103、讀取上述其他模塊的寄存器在異常復位發(fā)生時的值并保存的步驟包括
步驟1031、讀取上述其他模塊的寄存器在異常復位發(fā)生時的值,并保存到不受全局軟復位控制的存儲空間。具體地,上述不受全局軟復位控制的存儲空間可以是非易失性存儲器或者硬盤、存儲卡等。如圖3所示,進一步地,在步驟103、讀取上述其他模塊的寄存器在異常復位發(fā)生時的值并保存的步驟之前,還可以包括步驟1021、觸發(fā)用于使處理器內(nèi)核訪問上述其他模塊的互聯(lián)總線復位,以防止互聯(lián)總線掛死。具體地,可以在觸發(fā)處理器內(nèi)核復位的同時觸發(fā)互聯(lián)總線復位,以防止互聯(lián)總線掛死,從而使處理器內(nèi)核無法訪問上述其他模塊并讀取和保存寄存器的值。除了直接觸發(fā)互聯(lián)總線復位,還可以根據(jù)互聯(lián)總線是否掛死來決定是否復位互聯(lián)總線。需要說明的是,若SOC中包括調(diào)試專用邏輯電路,則無需觸發(fā)互聯(lián)總線復位,處理器內(nèi)核通過調(diào)試專用邏輯電路訪問上述各模塊并讀取和保存寄存器的值即可。調(diào)試專用邏輯電路在SOC正常工作模式下不作用,用于為處理器內(nèi)核提供后門式的訪問通路。其他具體的復位方法與上述實施例相同,在此不再贅述,本發(fā)明實施例提供的復位方法,與現(xiàn)有技術中異常復位發(fā)生時觸發(fā)全局復位相比,可以在不影響SOC正常工作的同時,保存SOC異常復位發(fā)生時的現(xiàn)場信息,方便了 SOC異常復位問題的定位。如圖4所示,本發(fā)明實施例還提供一種SOC的復位裝置,包括復位選擇單元1,用于根據(jù)復位源選擇復位方式,復位源包括上電復位和異常復位;第一復位單元2,用于當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止SOC掛死,并使SOC內(nèi)的其他模塊的寄存器保持異常復位發(fā)生時的值不變;保存單元3,用于讀取上述其他模塊的寄存器在異常復位發(fā)生時的值并保存;第二復位單元4,用于觸發(fā)全局軟復位使SOC恢復到確定的初始狀態(tài),以使SOC能夠正常工作。具體的復位方法與上述實施例相同,在此不再贅述,在SOC進入正常工作狀態(tài)后,可以讀取之前保存的各模塊的寄存器在異常復位發(fā)生時的值,從而根據(jù)異常復位發(fā)生時的現(xiàn)場信息,在不影響SOC正常工作的同時,對異常復位問題進行定位分析。
根據(jù)以上描述,本發(fā)明實施例提供的復位裝置,與現(xiàn)有技術中異常復位發(fā)生時觸發(fā)全局復位相比,保存SOC異常復位發(fā)生時的現(xiàn)場信息,方便了 SOC異常復位問題的定位。進一步地,第一復位單元2還可以用于,在讀取上述其他模塊的寄存器在異常復位發(fā)生時的值并保存的步驟之前,觸發(fā)用于使處理器內(nèi)核訪問上述其他模塊的互聯(lián)總線復位,以防止互聯(lián)總線掛死。進一步地,保存單元3具體用于,讀取上述其他模塊的寄存器在異常復位發(fā)生時的值,并保存到不受所述全局軟復位控制的存儲空間如圖5所示,上述復位裝置還包括讀取單元5,用于讀取上述其他模塊的寄存器在SOC異常復位發(fā)生時的值,以便于對異常復位發(fā)生的原因進行定位分析。進一步地,第二復位單元4還用于,當復位源為上電復位時,觸發(fā)全局軟復位以使SOC正常啟動。進一步地,不受全局軟復位控制的存儲空間為非易失性存儲器。具體的復位方法與上述實施例相同,在此不再贅述,本發(fā)明實施例提供的復位裝置,與現(xiàn)有技術中異常復位發(fā)生時觸發(fā)全局復位相比,可以在不影響SOC正常工作的同時,保存SOC異常復位發(fā)生時的現(xiàn)場信息,方便了 SOC異常復位問題的定位。通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。權利要求
1.一種復位方法,其特征在于,包括 根據(jù)復位源選擇復位方式,所述復位源包括上電復位和異常復位; 當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止所述SOC掛死,并使所述SOC內(nèi)的其他模塊的寄存器保持所述異常復位發(fā)生時的值不變; 讀取所述其他模塊的寄存器在 所述異常復位發(fā)生時的值并保存; 觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作。
2.根據(jù)權利要求I所述的復位方法,其特征在干, 在讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存的步驟之前,還包括 觸發(fā)用于使所述處理器內(nèi)核訪問所述其他模塊的互聯(lián)總線復位,以防止所述互聯(lián)總線掛死。
3.根據(jù)權利要求I或2所述的復位方法,其特征在干, 所述讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存的步驟包括讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值,并保存到不受所述全局軟復位控制的存儲空間。
4.根據(jù)權利要求3所述的復位方法,其特征在于,在所述觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作的步驟之后,還包括 讀取所述其他模塊的寄存器在所述SOC異常復位發(fā)生時的值,以便于對所述異常復位發(fā)生的原因進行定位分析。
5.根據(jù)權利要求3所述的復位方法,其特征在干, 所述不受所述全局軟復位控制的存儲空間為非易失性存儲器。
6.根據(jù)權利要求I至5任一所述的復位方法,其特征在于,還包括 當復位源為上電復位時,觸發(fā)全局軟復位以使所述SOC正常啟動。
7.一種復位裝置,其特征在于,包括 復位選擇單元,用于根據(jù)復位源選擇復位方式,所述復位源包括上電復位和異常復位; 第一復位單元,用于當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止所述SOC掛死,并使所述SOC內(nèi)的其他模塊的寄存器保持所述異常復位發(fā)生時的值不變; 保存単元,用于讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存; 第二復位單元,用于觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作。
8.根據(jù)權利要求7所述的復位裝置,其特征在干, 所述第一復位單元還用于,在讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存的步驟之前,觸發(fā)用于使所述處理器內(nèi)核訪問所述其他模塊的互聯(lián)總線復位,以防止所述互聯(lián)總線掛死。
9.根據(jù)權利要求7或8所述的復位裝置,其特征在干, 所述保存単元具體用于,讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值,并保存到不受所述全局軟復位控制的存儲空間。
10.根據(jù)權利要求9所述的復位裝置,其特征在于,還包括 讀取單元,用于讀取所述其他模塊的寄存器在所述SOC異常復位發(fā)生時的值,以便于對所述異常復位發(fā)生的原因進行定位分析。
11.根據(jù)權利要求9所述的復位裝置,其特征在干, 所述不受所述全局軟復位控制的存儲空間為非易失性存儲器。
12.根據(jù)權利要求7至11任一所述的復位裝置,其特征在干, 所述第二復位單元還用于,當復位源為上電復位時,觸發(fā)全局軟復位以使所述SOC正常啟動。
全文摘要
本發(fā)明公開了一種復位方法及其裝置,涉及片上系統(tǒng)領域,可以提供SOC異常復位發(fā)生時的現(xiàn)場信息,方便異常復位問題的定位。該復位方法包括根據(jù)復位源選擇復位方式,所述復位源包括上電復位和異常復位;當所述復位源為異常復位時,觸發(fā)片上系統(tǒng)SOC內(nèi)的處理器內(nèi)核復位,以防止所述SOC掛死,并使所述SOC內(nèi)的其他模塊的寄存器保持所述異常復位發(fā)生時的值不變;讀取所述其他模塊的寄存器在所述異常復位發(fā)生時的值并保存;觸發(fā)全局軟復位使所述SOC恢復到確定的初始狀態(tài),以使所述SOC能夠正常工作。
文檔編號G06F11/00GK102736957SQ20121016512
公開日2012年10月17日 申請日期2012年5月25日 優(yōu)先權日2012年5月25日
發(fā)明者余劍鋒, 盧華 申請人:華為技術有限公司