TWI564802B - 初始化週邊裝置之方法與使用此方法之電子裝置 - Google Patents
初始化週邊裝置之方法與使用此方法之電子裝置 Download PDFInfo
- Publication number
- TWI564802B TWI564802B TW104141902A TW104141902A TWI564802B TW I564802 B TWI564802 B TW I564802B TW 104141902 A TW104141902 A TW 104141902A TW 104141902 A TW104141902 A TW 104141902A TW I564802 B TWI564802 B TW I564802B
- Authority
- TW
- Taiwan
- Prior art keywords
- hardware
- peripheral devices
- electronic device
- settings
- serialized
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Description
本發明係關於一種快速開機技術,特別是指一種初始化週邊裝置之方法與使用此方法之電子裝置。
在如智慧型手機、智慧型家電、穿戴式裝置或物聯網裝置等電子裝置中,快速開機功能讓數位資訊變得更加唾手可得,並使電子裝置能「即開即用」,但大部分的電子裝置在關機時係處於待機(standby)模式,而非真正的關機模式。雖然待機模式可有效縮短電子裝置之開機時間,但電子裝置整體上依然持續的消耗電力而保持高耗電狀態,以致大幅增加地球之二氧化碳排放量。
因此,具有休眠式或喚醒式開機功能之電子裝置為了降低消耗電力,宜在休眠關機時將電子裝置進行斷電,以使電子裝置處於真正的關機模式或休眠模式而保持低耗電狀態,並在開機時以休眠開機技術將電子裝置進行冷開機,如下列第1圖及第2圖所示。
第1圖繪示一般技術中具有休眠式或喚醒式開機功能之電子裝置之關機流程圖。如圖所示,在步驟S01中,執
行電子裝置之休眠前準備,即凍結(Freeze)程序。在步驟S02中,建立電子裝置中有關應用程式之第一快照映像檔(snapshot image)。在步驟S03中,中止(suspend)電子裝置之一或多個週邊裝置。
接著,在步驟S04中,建立電子裝置中有關作業系統之核心(kernel)之第二快照映像檔。在步驟S05中,寫入第一快照映像檔與第二快照映像檔至電子裝置之永久儲存裝置中。在步驟S06中,將電子裝置進行斷電(power off)。
第2圖繪示一般技術中具有休眠式或喚醒式開機功能之電子裝置之冷開機流程圖。如圖所示,在步驟S11中,將電子裝置進行冷開機。在步驟S12中,執行電子裝置之啟動載入器程式(boot-loader)(大約1秒)。在步驟S13中,初始化核心與週邊裝置(大約2.8秒),包括步驟S131中執行一或多個週邊裝置之多個軟體設定(記憶體內)、與步驟S132中執行多個硬體之暫存器設定(週邊裝置內)。
然後,在步驟S14中,自永久儲存裝置中載入第二快照映像檔(大約0.8秒),包括步驟S141中回復(resume)休眠前一或多個週邊裝置之軟體設定。在步驟S15中,回復一或多個週邊裝置(大約2.4秒),包括步驟S151中回復休眠前多個硬體之暫存器設定。在步驟S16中,自永久儲存裝置中載入第一快照映像檔(大約3.0秒)。在步驟S17中,執行電子裝置之喚醒程序(thaw process)。
由上可知,在第2圖之電子裝置大約10秒之冷開機程序中,步驟S13中初始化核心與週邊裝置需耗費2.8秒,
加上步驟S15中回復一或多個週邊裝置需耗費2.4秒,總共耗費5.2秒。此乃因步驟S13中初始化一或多個週邊裝置時,需同時執行「步驟S131中多個軟體設定」與「步驟S132中多個硬體之暫存器設定」,因而延長一或多個週邊裝置之初始化時間與回復時間,以致電子裝置之開機時間較為緩慢。
因此,如何克服上述先前技術之問題,實已成目前亟欲解決之課題。
本發明所揭露之一實施例,係提供一種初始化週邊裝置之方法與使用此方法之電子裝置,其可簡化週邊裝置之初始化程序以縮短電子裝置之開機時間。
本發明之電子裝置之一實施例係具有休眠式或喚醒式開機功能,並包括:一或多個週邊裝置,係具有一或多個暫存器;一記憶體,係具有一資料儲存模組;以及一指令擷取模組,當電子裝置進行非休眠回復或非喚醒冷開機以執行一或多個週邊裝置之初始化程序時,指令擷取模組自一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫存器設定及其相關資訊,以將多個硬體之暫存器設定及其相關資訊儲存於資料儲存模組中,進而排序或串接資料儲存模組中多個硬體之暫存器設定以形成一序列化硬體之暫存器設定;其中,當電子裝置因休眠回復或喚醒再次進行冷開機以執行一或多個週邊裝置之初始化程序時,藉由該序列化硬體之暫存器設定初始化一或多個週邊裝置。
本發明之初始化週邊裝置之方法之一實施例係包括:提供一具有休眠式或喚醒式開機功能之電子裝置,其中,電子裝置係包括一或多個週邊裝置與一記憶體,一或多個週邊裝置係具有一或多個暫存器,且記憶體係具有一資料儲存模組;當電子裝置進行非休眠回復或非喚醒冷開機以執行一或多個週邊裝置之初始化程序時,自一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫存器設定及其相關資訊,以將多個硬體之暫存器設定及其相關資訊儲存於資料儲存模組中,進而排序或串接資料儲存模組中多個硬體之暫存器設定以形成一序列化硬體之暫存器設定;以及當電子裝置因休眠回復或喚醒再次進行冷開機以執行一或多個週邊裝置之初始化程序時,藉由該序列化硬體之暫存器設定初始化一或多個週邊裝置。
在本發明之初始化週邊裝置之方法與使用此方法之電子裝置一實施例中,可包括依據優化演算法優化該序列化硬體之暫存器設定之存取順序,以形成一優化後之序列化硬體之暫存器設定。當電子裝置因休眠回復或喚醒再次進行冷開機以執行一或多個週邊裝置之初始化程序時,藉由該優化後之序列化硬體之暫存器設定初始化一或多個週邊裝置。
本發明之初始化週邊裝置之方法與使用此方法之電子裝置一實施例中,係可在電子裝置進行非休眠回復或非喚醒之第一次冷開機以初始化一或多個週邊裝置時,自一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫
存器設定(硬體指令)及其相關資訊(如硬體指令之執行時間或指令間隔)以儲存於資料儲存模組(如樹狀結構)中,並排序或串接多個硬體之暫存器設定以形成一序列化硬體之暫存器設定(序列化硬體指令),亦可進一步優化該序列化硬體之暫存器設定(序列化硬體指令)以形成一優化後之序列化硬體指令(優化後之序列化硬體指令)。
本發明可簡化一或多個週邊裝置之初始化程序,並在電子裝置因休眠回復或喚醒而再次進行冷開機時,僅需執行該序列化硬體之暫存器設定(序列化硬體指令)、或優化後之序列化硬體之暫存器設定(優化後之序列化硬體指令)以初始化一或多個週邊裝置,從而縮短一或多個週邊裝置之初始化時間與電子裝置之開機時間。
1‧‧‧電子裝置
2‧‧‧週邊裝置
21‧‧‧暫存器
3‧‧‧記憶體
31‧‧‧資料結構
32、33‧‧‧資料結構之程式碼
4‧‧‧作業系統
40‧‧‧核心
41‧‧‧資料儲存模組
42、42'‧‧‧指令擷取模組
43‧‧‧優化序列模組
44‧‧‧驅動程式
441‧‧‧硬體指令
442‧‧‧軟體指令
45‧‧‧記憶體管理模組
451‧‧‧映射表
452‧‧‧頁面錯誤處理單元
46‧‧‧第一頁面
47‧‧‧第二頁面
5‧‧‧匯流排
A1至A6、B1至B5、C1至C6‧‧‧硬體指令
DP‧‧‧週邊裝置之執行程序
H1至H7‧‧‧硬體設定(硬體之暫存器設定)
idle‧‧‧閒置時間
L11、L12、L13、L21、L22、L23、L31‧‧‧週邊裝置
N1至N8‧‧‧節點
S1至S7‧‧‧軟體設定
S01至S06‧‧‧步驟
S11至S17、S131、S132、S141、S151‧‧‧步驟
S21至S27、S231、S241、S251‧‧‧步驟
S31至S34‧‧‧步驟
S41至S46、S441至444‧‧‧步驟
S51至S57‧‧‧步驟
T1至Tn‧‧‧硬體指令之執行時間
T1'至Tn'‧‧‧硬體指令之下達時間
Ta‧‧‧驅動程式之原始之執行時間
Tb‧‧‧驅動程式經序列化後之執行時間
Tc‧‧‧驅動程式之縮短之執行時間
Td‧‧‧匯流排之縮短之執行時間
Tm1‧‧‧序列化硬體指令之時間分佈
Tm2‧‧‧序列化硬體指令於匯流排中之時間分佈
Tm3‧‧‧優化後之序列化硬體指令之時間分佈
第1圖繪示一般技術中具有休眠式或喚醒式開機功能之電子裝置之關機流程圖;第2圖繪示一般技術中具有休眠式或喚醒式開機功能之電子裝置之冷開機流程圖;第3圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置一實施例方塊圖;第4圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置之冷開機之一實施例流程圖;第5圖繪示一或多個週邊裝置之初始化程序一實施例示意圖;第6圖繪示本發明中將一或多個週邊裝置之驅動程式
形成一序列化硬體之暫存器設定(序列化硬體指令)之一實施例示意圖;第7圖繪示本發明中將一或多個週邊裝置之驅動程式形成一序列化硬體之暫存器設定(序列化硬體指令)之另一實施例示意圖;第8圖繪示本發明中以優化演算法優化一序列化硬體指令(序列化硬體之暫存器設定)以形成一優化後之序列化硬體指令(優化後之硬體之暫存器設定)之一實施例示意圖;第9A圖繪示本發明中資料結構(以樹狀結構為例)及其一或多個節點以代表一或多個週邊裝置之示意圖;第9B圖繪示本發明第9A圖中多個週邊裝置之執行程序一實施例示意圖;第10圖繪示本發明中一資料結構之程式碼一實施例示意圖;第11圖繪示本發明中透過頁面錯誤處理方式監控週邊裝置之暫存器以擷取硬體之暫存器設定(硬體指令)之一實施例示意圖;第12A圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置進行非休眠回復或非喚醒冷開機之流程圖;第12B圖繪示本發明中初始化週邊裝置之方法一實施例流程圖;以及第13圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置因休眠回復或喚醒再次進行冷開機之一實施例
流程圖。
以下藉由特定的具體實施形態說明本發明之可實施方式,熟悉此技術之人士可由本說明書所揭示之內容輕易地了解本發明之其他優點與功效,亦可藉由其他不同的具體實施形態加以施行或應用。而本文中所謂的「一或多個」一般亦代表「至少一」。
第3圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置1之一實施例方塊圖。如圖所示,電子裝置1係具有休眠式或喚醒式開機功能,並包括一或多個具有暫存器21之週邊裝置2、一具有資料儲存模組41之記憶體3、一具有核心(kernel)40之作業系統4、一指令擷取模組42(或指令擷取模組42')、一優化序列模組43、一或多個具有硬體指令441與軟體指令442之驅動程式44、一具有映射表451與頁面錯誤處理單元452之記憶體管理模組45、以及一匯流排5。
當電子裝置1進行非休眠回復或非喚醒冷開機(如第一次冷開機)以執行一或多個週邊裝置2之初始化程序時,指令擷取模組42自一或多個週邊裝置2之驅動程式44之執行過程擷取出多個硬體之暫存器設定(硬體指令441)及其相關資訊(如硬體指令之執行時間或指令間隔),而未擷取多個軟體設定(軟體指令442)。同時,指令擷取模組42將多個硬體之暫存器設定(硬體指令441)及其相關資訊儲存於資料儲存模組41中,進而排序或串接資料儲存模組
41中多個硬體之暫存器設定(硬體指令441)以形成一序列化硬體之暫存器設定(序列化硬體指令)。
之後,當電子裝置1因休眠回復或喚醒再次進行冷開機(如第二次冷開機等等)以執行一或多個週邊裝置2之初始化程序時,即可藉由該序列化硬體之暫存器設定(序列化硬體指令)初始化一或多個週邊裝置2。
電子裝置1可為智慧型手機、智慧型家電、穿戴式裝置或物聯網裝置等,記憶體3可為揮發性記憶體或非揮發性記憶體等,資料儲存模組41可為一資料結構或一陣列等,資料結構可為一樹狀(TREE)結構或一串接(LIST)結構等,陣列可為一指令陣列等,匯流排5可為系統匯流排或子匯流排等,但不以此為限。
作業系統4及其核心40可位於記憶體3中,資料儲存模組41、指令擷取模組42、優化序列模組43與記憶體管理模組45可位於核心40中,資料儲存模組41、指令擷取模組42與優化序列模組43三者之程式碼可為作業系統4內單一位置之集中程式碼組合、或多個位置之分散程式碼組合。
第4圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置1之冷開機之一實施例流程圖。如第4圖與上述第3圖之實施例所示,在步驟S21中,將電子裝置1進行冷開機。在步驟S22中,執行電子裝置1之啟動載入器程式。在步驟S23中,初始化核心40與一或多個週邊裝置2,包括步驟S231中執行該序列化硬體之暫存器設定(硬體指
令441)。
然後,在步驟S24中,自電子裝置之永久儲存裝置(圖中未繪示)中載入第二快照映像檔,包括步驟S241中回復休眠前一或多個週邊裝置2之軟體設定(軟體指令442)。在步驟S25中,回復一或多個週邊裝置2,包括步驟S251中回復休眠前多個硬體之暫存器設定(硬體指令441)。在步驟S26中,自永久儲存裝置中載入第一快照映像檔。在步驟S27中,執行電子裝置1之喚醒程序。
由上可知,在上述一般技術第2圖之步驟S13「初始化一或多個週邊裝置」中,需在步驟S131與步驟S132中分別執行「多個軟體設定」與「多個硬體之暫存器設定」,以致延長一或多個週邊裝置之初始化時間與電子裝置之開機時間。相對地,本發明第4圖之步驟S23「初始化一或多個週邊裝置2」中,僅需在步驟S231中執行「一序列化硬體之暫存器設定(序列化硬體指令)」,故可簡化一或多個週邊裝置2之初始化程序,進而縮短一或多個週邊裝置2之初始化時間與電子裝置1之開機時間。
要說明的是,本發明之電子裝置1之關機流程之一實施例可相同或相似於上述一般技術第1圖之關機流程,故不再重覆敘述。
第5圖繪示一或多個週邊裝置2之初始化程序一實施例示意圖。以第5圖與上述第3圖之一實施例為例,當電子裝置1分別進行非休眠回復或非喚醒第一次冷開機、與其後每次休眠回復或喚醒冷開機時,在一或多個週邊裝置
2之初始化程序均相同(固定)之情況下,假設初始化程序為交錯執行驅動程式44之多個硬體設定H1至H4(硬體指令441)與多個軟體設定S1至S3(軟體指令442),則一或多個週邊裝置2之第一次初始化後之狀態、與其後每次休眠回復或喚醒初始化後之狀態應相同,表示一或多個具有相同之初始狀態之週邊裝置2經過相同之初始化程序會得到相同之初始化後之狀態。
第6圖繪示本發明中將一或多個週邊裝置2之驅動程式44形成一序列化硬體之暫存器設定(序列化硬體指令)之一實施例示意圖。如第6圖與上述第3圖之實施例所示,在一或多個週邊裝置2之驅動程式均固定之情況下,一或多個具有相同之初始狀態之週邊裝置2經過多個硬體之暫存器設定H(如H1至H4)或硬體指令441會得到相同之狀態,亦即只有多個硬體之暫存器設定H(如H1至H4)或硬體指令441會影響一或多個週邊裝置2之狀態,而多個軟體設定S(如S1至S3)或軟體指令442則不會影響一或多個週邊裝置2之狀態。
因此,依據上述原理,本發明可自一或多個週邊裝置2之驅動程式44之執行過程擷取出多個硬體之暫存器設定H(如H1至H4)或硬體指令441,並排序或串接多個硬體之暫存器設定H(如H1至H4)或硬體指令441以形成一序列化硬體之暫存器設定或一序列化硬體指令。
第7圖繪示本發明中將一或多個週邊裝置2之驅動程式44形成一序列化硬體之暫存器設定(序列化硬體指令)之
另一實施例示意圖。如第7圖與上述第3圖之實施例所示,假設一或多個週邊裝置2之原始之初始化程序為交錯執行一或多個驅動程式44之多個軟體設定S1至S7(軟體指令442)與多個硬體之暫存器設定H1至H7(硬體指令441),則驅動程式44之原始之執行時間為Ta。
因本發明係自一或多個驅動程式44之執行過程擷取出多個硬體之暫存器設定H1至H7(硬體指令441),並排序或串接多個硬體之暫存器設定H1至H7(硬體指令441)以形成一序列化硬體之暫存器設定(序列化硬體指令),故一或多個驅動程式4經序列化之執行時間為Tb。所以,本發明可免除一或多個驅動程式44之多個軟體設定S1至S7所需時間,從而得到一或多個驅動程式44之縮短之執行時間為Tc(即Ta-Tb)。
第8圖繪示本發明中以優化演算法優化一序列化硬體指令(見Tm1)或序列化硬體之暫存器設定,以形成一優化後之序列化硬體指令(見Tm3)或優化後之硬體之暫存器設定之一實施例示意圖。
如第8圖與上述第3圖之實施例所示,假設三週邊裝置2A至2C之序列化硬體指令(見Tm1)係排序或串接成多個硬體指令441(如硬體指令A1至A6、B1至B5、C1至C6),序列化硬體指令之時間分佈Tm1為多個硬體指令441(如A1至A6、B1至B5、C1至C6)之執行時間T1至Tn,序列化硬體指令(見Tm2)於匯流排5中之時間分佈Tm2為多個硬體指令441之下達時間T1'至Tn',且多個硬體指令441(如
A3、A5、B3、B4、B5)於匯流排5中具有一或多個閒置時間idle(見Tm2)。一或多個閒置時間idle可為一或多個硬體指令441(如A3、A5、B3、B4、B5)於匯流排5中之等待時間、或超出一或多個硬體指令441之下達時間之部分。
因此,本發明可以優化序列模組43之優化演算法優化該序列化硬體指令(見Tm1)或序列化硬體之暫存器設定之存取順序,以形成一優化後之序列化硬體指令(見Tm3)或優化後之序列化硬體之暫存器設定。例如,優化序列模組43之優化演算法可將多個硬體指令441(如B1至B4、C1至C6)陸續***一或多個閒置時間idle(見Tm2)中,藉此形成一優化後之序列化硬體指令(見Tm3)或優化後之序列化硬體之暫存器設定。然後,當電子裝置1再次進行冷開機(如第二次冷開機等等)以執行一或多個週邊裝置2之初始化程序時,即可藉由該優化後之序列化硬體指令(見Tm3)或優化後之序列化硬體之暫存器設定初始化一或多個週邊裝置2。
在本實施例中,優化演算法可透過匯流排5將序列化硬體指令(如時間分佈Tm1中A1至A6、B1至B5、C1至C6)排序或串接成該優化後之序列化硬體指令(如時間分佈Tm3中A1、A2、A3、B1、…、C6),該優化後之序列化硬體指令之時間分佈Tm3為多個下達時間T1'、T2'、T3'、T7'、…、Tn'),且多個下達時間T1'至Tn'可相等或不相等。藉此,本發明可得到匯流排5之縮短之執行時間為Td。
第9A圖繪示本發明中資料結構31(以樹狀結構為例)
及其一或多個節點N(如N2至N8)以代表一或多個週邊裝置2(如L11至L13、L21至L23、L31)之一實施例示意圖,第9B圖繪示本發明第9A圖中一或多個週邊裝置2(如L11至L13、L21至L23、L31)之執行程序之一實施例示意圖。本揭露之資料結構31係以樹狀結構舉例說明之,但不限於此類型之結構。
如第9A圖與上述第3圖之實施例所示,資料儲存模組41係為如樹狀結構之資料結構31並具有一或多個節點N(如N1至N8),且一或多個節點N(如N2至N8)具有一或多個緩衝區(圖中未繪示)以儲存多個硬體之暫存器設定(硬體指令441)及其執行時間。
一或多個節點N(如N2至N8)分別代表一或多個週邊裝置2(如L11至L13、L21至L23、L31),且多個節點N(如N2至N8)之關係表示多個週邊裝置2(如L11至L13、L21至L23、L31)之相依性。例如,節點N2至N4係位於同一層(如兄弟關係),表示週邊裝置L11至L13彼此獨立而無相依性。又,節點N2及N5係位於上下層(如父子關係),表示週邊裝置L11及L21非彼此獨立而有相似性。
如第9B圖與上述第3圖之實施例所示,本發明可依據第9A圖中多個節點N(如N2至N8)之關係,即多個週邊裝置2(如L11至L13、L21至L23、L31)係彼此獨立(無相依性)或非彼此獨立(有相依性),進一步建構多個週邊裝置2(如L11至L13、L21至L23、L31)之執行程序DP。
例如,多個週邊裝置2之執行程序DP為依序執行:(1)
節點N1(根節點)、(2)節點N2(子節點)之週邊裝置L11、(3)節點N3之週邊裝置L12、(4)節點N4之週邊裝置L13、(5)節點N3之週邊裝置L12、(6)節點N5之週邊裝置L21、(7)節點N6之週邊裝置L22、(8)節點N5之週邊裝置L21、(9)節點N7之週邊裝置L23、(10)節點N6之週邊裝置L22、(11)節點N8之週邊裝置L31。
第10圖繪示本發明中一資料結構之程式碼一實施例示意圖。如圖所示,資料結構之程式碼係為Linux中device之資料結構之程式碼,本發明可在device之資料結構之程式碼32中建置「用以儲存該序列化硬體之暫存器設定(序列化硬體指令)之資料結構之程式碼33」,藉此在device之資料結構中增加「用以儲存該序列化硬體之暫存器設定(序列化硬體指令)之資料結構」。
第11圖繪示本發明中透過頁面錯誤(page fault)處理方式監控週邊裝置2之暫存器21以擷取硬體之暫存器設定(硬體指令)之一實施例示意圖。如第11圖與上述第3圖之實施例所示,指令擷取模組42可為軟體之監控程式碼,並可透過頁面錯誤處理方式監控一或多個暫存器21以擷取多個硬體之暫存器設定(硬體指令)。
詳言之,如第11圖與第3圖所示,當一或多個驅動程式44初始化一或多個週邊裝置2以對一或多個暫存器21進行記憶體3之第一段映射與第二段映射時,記憶體3提供一可讀寫之虛擬位址(第一頁面46)與一不可讀寫之虛擬位址(第二頁面47)、以及一具有第一頁面46與第二頁面
47之映射表451。
同時,當一或多個驅動程式44以第二頁面47之虛擬位址對一或多個暫存器21進行讀寫時(步驟S31),因第二頁面47之虛擬位址為不可讀寫以致產生頁面錯誤而進入一頁面錯誤處理單元452(步驟S32),頁面錯誤處理單元452記錄一或多個暫存器21之讀寫之實體位址及資料內容於資料儲存模組41中(步驟S33),並使驅動程式44藉由第一頁面46之虛擬位址真正對一或多個暫存器21進行讀寫(步驟S34)。指令擷取模組42可監控一或多個驅動程式44、記憶體3、暫存器21與頁面錯誤處理單元452之間的讀寫行為以擷取出多個硬體之暫存器設定(硬體指令),其中讀寫行為可為設定行為、輸入輸出(1/0)行為或存取行為等。
另外,如上述第3圖所示,電子裝置1亦包括系統匯流排(見匯流排5)。指令擷取模組42'可為硬體之匯流排監控器(bus monitor),並透過系統匯流排監控一或多個暫存器21之存取行為以擷取多個硬體之暫存器設定(硬體指令)。本發明中,匯流排5可表示系統匯流排或子匯流排。
又,如上述第3圖所示,電子裝置1也可包括子匯流排(見匯流排5)。指令擷取模組42可為軟體之監控程式碼,並透過子匯流排之資料傳輸介面監控一或多個暫存器21以擷取多個硬體之暫存器設定(硬體指令),其中資料傳輸介面可為PCI介面、USB介面或其他介面等。
第12A圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置1進行非休眠回復或非喚醒冷開機之一實施例
流程圖,第12B圖繪示本發明第12A圖之步驟S44中初始化週邊裝置2之方法一實施例流程圖。
如第12A圖與上述第3圖之實施例所示,在步驟S41中,將電子裝置1進行第一次冷開機。在步驟S42中,執行電子裝置1之啟動載入器程式。在步驟S43中,初始化作業系統4之核心40。在步驟S44中,初始化電子裝置1之一或多個週邊裝置2,如第12B圖與上述第3圖之實施例所示,以步驟S441至步驟S444執行本發明中初始化一或多個週邊裝置2之方法。
例如,在步驟S441中,令電子裝置13之記憶體3提供或建立一資料儲存模組41,如資料結構(樹狀結構、串接結構)或陣列(指令陣列)等。在步驟S442中,自一或多個週邊裝置2之驅動程式44之執行過程擷取出多個硬體之暫存器設定(硬體指令441)及其相關資訊(如硬體指令之執行時間或指令間隔),以將多個硬體之暫存器設定(硬體指令441)及其相關資訊儲存於資料儲存模組41中。在步驟S443中,排序或串接資料儲存模組41中多個硬體之暫存器設定(硬體指令441),以形成一序列化硬體之暫存器設定(序列化硬體指令)。
繼之,可選擇執行或不執行步驟S444。在步驟S444中,優化該序列化硬體之暫存器設定(序列化硬體指令)之存取順序,以形成一優化後之序列化硬體之暫存器設定(優化後之序列化硬體指令)。此外,因本發明中初始化一或多個週邊裝置2之方法已詳述於上述第3圖至第11圖中,故
不再重覆敘述。
然後,如第12A圖與上述第3圖所示,在步驟S45中,初始化應用程式。在步驟S46中,初始化完成。
第13圖繪示本發明中具有休眠式或喚醒式開機功能之電子裝置1因休眠回復或喚醒再次進行冷開機之一實施例流程圖。如第13圖與上述第3圖所示,在步驟S51中,電子裝置1因休眠回復或喚醒再次進行冷開機。在步驟S52中,執行啟動載入器程式。在步驟S53中,初始化作業系統4之核心40。
接著,在步驟S54中,以該序列化硬體之暫存器設定(序列化硬體指令)、或優化後之序列化硬體之暫存器設定(優化後之序列化硬體指令)初始化一或多個週邊裝置2。在步驟S55中,載入休眠檔(hibernate file)。在步驟S56中,回復一或多個週邊裝置2。在步驟S57中,執行電子裝置1之喚醒程序。
由上述內容可知,本發明之初始化週邊裝置之方法與使用該方法之電子裝置中,主要係在電子裝置之非休眠回復或非喚醒第一次冷開機以初始化一或多個週邊裝置時,自一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫存器設定(硬體指令)以儲存於資料儲存模組(如樹狀結構)中,並排序或串接多個硬體之暫存器設定以形成一序列化硬體之暫存器設定(序列化硬體指令),亦可進一步優化該序列化硬體之暫存器設定(序列化硬體指令)以形成一優化後之序列化硬體指令(優化後之序列化硬體指令)。
本發明可簡化一或多個週邊裝置之初始化程序,並在電子裝置進行休眠回復或喚醒之再次冷開機時,僅需執行該序列化硬體之暫存器設定(序列化硬體指令)、或該優化後之序列化硬體之暫存器設定(優化後之序列化硬體指令)以初始化一或多個週邊裝置,從而縮短一或多個週邊裝置之初始化時間與電子裝置之開機時間。
上述實施形態僅例示性說明本發明之原理、特點及其功效,並非用以限制本發明之可實施範疇,任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。任何運用本發明所揭示內容而完成之等效改變及修飾,均仍應為下述之申請專利範圍所涵蓋。因此,本發明之權利保護範圍,應如申請專利範圍所列。
1‧‧‧電子裝置
2‧‧‧週邊裝置
21‧‧‧暫存器
3‧‧‧記憶體
4‧‧‧作業系統
40‧‧‧核心
41‧‧‧資料儲存模組
42、42'‧‧‧指令擷取模組
43‧‧‧優化序列模組
44‧‧‧驅動程式
441‧‧‧硬體指令
442‧‧‧軟體指令
45‧‧‧記憶體管理模組
451‧‧‧映射表
452‧‧‧頁面錯誤處理單元
5‧‧‧匯流排
Claims (16)
- 一種電子裝置,係具有休眠式或喚醒式開機功能,包括:一或多個週邊裝置,係具有一或多個暫存器;一非揮發性記憶體,係具有一資料儲存模組;以及一指令擷取模組,當該電子裝置進行非休眠回復或非喚醒冷開機以執行該一或多個週邊裝置之初始化程序時,該指令擷取模組自該一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫存器設定,以將該多個硬體之暫存器設定儲存於該資料儲存模組中,進而排序或串接該資料儲存模組中該多個硬體之暫存器設定以形成一序列化硬體之暫存器設定;其中,當該電子裝置經斷電後,因休眠回復或喚醒再次進行冷開機以執行該一或多個週邊裝置之初始化程序時,藉由該序列化硬體之暫存器設定初始化該一或多個週邊裝置。
- 如申請專利範圍第1項所述之電子裝置,其中,該資料儲存模組係為一資料結構或一陣列,該多個硬體之暫存器設定係為多個硬體指令,該序列化硬體之暫存器設定係為一序列化硬體指令。
- 如申請專利範圍第1項所述之電子裝置,其中,該資料儲存模組係具有一或多個節點以分別代表該一或多 個週邊裝置,該多個節點之關係表示該多個週邊裝置之相依性,且該一或多個節點具有一或多個緩衝區以儲存該多個硬體之暫存器設定及其執行時間。
- 如申請專利範圍第1項所述之電子裝置,其中,該指令擷取模組係為軟體之監控程式碼,並透過頁面錯誤處理方式監控該一或多個暫存器以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第1項所述之電子裝置,更包括子匯流排,該指令擷取模組係為軟體之監控程式碼,並透過該子匯流排之資料傳輸介面監控該一或多個暫存器以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第1項所述之電子裝置,更包括系統匯流排,該指令擷取模組係為硬體之匯流排監控器,並透過該系統匯流排監控該一或多個暫存器之存取行為以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第1項所述之電子裝置,更包括一優化序列模組,係依據優化演算法優化該序列化硬體之暫存器設定之存取順序,以形成一優化後之序列化硬體之暫存器設定。
- 如申請專利範圍第7項所述之電子裝置,其中,當該電子裝置因該休眠回復或喚醒再次進行冷開機以執行該一或多個週邊裝置之初始化程序時,藉由該優化後之序列化硬體之暫存器設定初始化該一或多個週邊裝置。
- 一種初始化週邊裝置之方法,其包括下列步驟:提供一具有休眠式或喚醒式開機功能之電子裝置,其中,該電子裝置係包括一或多個週邊裝置與一非揮發性記憶體,該一或多個週邊裝置係具有一或多個暫存器,且該非揮發性記憶體係具有一資料儲存模組;當該電子裝置進行非休眠回復或非喚醒冷開機以執行該一或多個週邊裝置之初始化程序時,自該一或多個週邊裝置之驅動程式之執行過程擷取出多個硬體之暫存器設定,以將該多個硬體之暫存器設定儲存於該資料儲存模組中,進而排序或串接該資料儲存模組中該多個硬體之暫存器設定以形成一序列化硬體之暫存器設定;以及當該電子裝置經斷電後,因休眠回復或喚醒再次進行冷開機以執行該一或多個週邊裝置之初始化程序時,藉由該序列化硬體之暫存器設定初始化該一或多個週邊裝置。
- 如申請專利範圍第9項所述之方法,其中,該資料儲存模組係為一資料結構或一陣列,該多個硬體之暫存器設定係為多個硬體指令,該序列化硬體之暫存器設定係為一序列化硬體指令。
- 如申請專利範圍第9項所述之方法,其中,該資料儲存模組係具有一或多個節點以分別代表該一或多個週邊裝置,該多個節點之關係表示該多個週邊裝置之相 依性,且該一或多個節點具有一或多個緩衝區以儲存該多個硬體之暫存器設定及其執行時間。
- 如申請專利範圍第9項所述之方法,更包括令軟體之監控程式碼透過頁面錯誤處理方式監控該一或多個暫存器以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第9項所述之方法,更包括令軟體之監控程式碼透過該電子裝置之子匯流排之資料傳輸介面監控該一或多個暫存器以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第9項所述之方法,更包括令硬體之匯流排監控器透過該電子裝置之系統匯流排監控該一或多個暫存器之存取行為以擷取該多個硬體之暫存器設定。
- 如申請專利範圍第9項所述之方法,更包括依據優化演算法優化該序列化硬體之暫存器設定之存取順序,以形成一優化後之序列化硬體之暫存器設定。
- 如申請專利範圍第15項所述之方法,其中,當該電子裝置因該休眠回復或喚醒再次進行冷開機以執行該一或多個週邊裝置之初始化程序時,藉由該優化後之序列化硬體之暫存器設定初始化該一或多個週邊裝置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141902A TWI564802B (zh) | 2015-12-14 | 2015-12-14 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
CN201510992159.0A CN106873954B (zh) | 2015-12-14 | 2015-12-25 | 初始化周边装置的方法与使用此方法的电子装置 |
US15/093,546 US20170168852A1 (en) | 2015-12-14 | 2016-04-07 | Method for initializing peripheral devices and electronic device using the same |
JP2016106206A JP6194391B2 (ja) | 2015-12-14 | 2016-05-27 | 周辺機器の初期化方法およびそれを用いる電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141902A TWI564802B (zh) | 2015-12-14 | 2015-12-14 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI564802B true TWI564802B (zh) | 2017-01-01 |
TW201721414A TW201721414A (zh) | 2017-06-16 |
Family
ID=58408025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104141902A TWI564802B (zh) | 2015-12-14 | 2015-12-14 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170168852A1 (zh) |
JP (1) | JP6194391B2 (zh) |
CN (1) | CN106873954B (zh) |
TW (1) | TWI564802B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019087294A1 (ja) * | 2017-10-31 | 2019-05-09 | 三菱重工機械システム株式会社 | 情報処理システム、情報処理方法及びプログラム |
GB2581719B (en) * | 2017-11-17 | 2022-03-09 | Mitsubishi Heavy Ind Mach Systems Ltd | Information processing system and information processing method to be executed by information processing system |
CN111221403B (zh) * | 2019-12-27 | 2021-05-04 | 中国农业大学 | 一种可调配休眠模式控制的SoC***及方法 |
CN113127068A (zh) * | 2019-12-30 | 2021-07-16 | 瑞昱半导体股份有限公司 | 硬件设定装置及其硬件设定方法 |
CN111813464B (zh) * | 2020-08-31 | 2020-12-11 | 新华三半导体技术有限公司 | 一种芯片配置方法、监测模块及芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201245961A (en) * | 2011-03-24 | 2012-11-16 | Nvidia Corp | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
TW201303849A (zh) * | 2011-03-31 | 2013-01-16 | Nvidia Corp | 支援耦接至圖形控制器的自更新顯示器的方法和裝置 |
TW201525867A (zh) * | 2013-12-27 | 2015-07-01 | Ind Tech Res Inst | 休眠喚醒方法及電子裝置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0139985B1 (ko) * | 1995-01-06 | 1998-07-01 | 김광호 | 옵션 카드의 하이버네이션 시스템 |
US7480791B2 (en) * | 2005-09-15 | 2009-01-20 | Intel Corporation | Method and apparatus for quick resumption where the system may forego initialization of at least one memory range identified in the resume descriptor |
US7624260B2 (en) * | 2006-05-04 | 2009-11-24 | Qnx Software Systems Gmbh & Co. Kg | System executing a fast boot wake-up |
TWI375912B (en) * | 2008-10-17 | 2012-11-01 | Asrock Inc | Method for reducing time of booting and computer system |
KR101641241B1 (ko) * | 2010-01-13 | 2016-07-20 | 엘지전자 주식회사 | 이동단말기의 호처리 방법 |
US20130036300A1 (en) * | 2010-02-26 | 2013-02-07 | Samsung Electronics Co., Ltd | Method of fixing error of boot image for fast booting and image forming apparatus for performing the method |
US20130042097A1 (en) * | 2010-02-26 | 2013-02-14 | Samsung Electronics Co., Ltd. | Method of updating boot image for fast booting and image forming apparatus for performing the method |
US8464040B2 (en) * | 2010-04-28 | 2013-06-11 | GM Global Technology Operations LLC | Systems and methods to control multiple peripherals with a single-peripheral application code |
CN102929674B (zh) * | 2012-11-02 | 2016-02-10 | 威盛电子股份有限公司 | 电子装置以及开机方法 |
KR101959359B1 (ko) * | 2012-11-06 | 2019-03-18 | 에이치피프린팅코리아 유한회사 | 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 |
JP6399916B2 (ja) * | 2014-01-20 | 2018-10-03 | キヤノン株式会社 | 情報処理装置およびその制御方法 |
-
2015
- 2015-12-14 TW TW104141902A patent/TWI564802B/zh active
- 2015-12-25 CN CN201510992159.0A patent/CN106873954B/zh active Active
-
2016
- 2016-04-07 US US15/093,546 patent/US20170168852A1/en not_active Abandoned
- 2016-05-27 JP JP2016106206A patent/JP6194391B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201245961A (en) * | 2011-03-24 | 2012-11-16 | Nvidia Corp | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
TW201303849A (zh) * | 2011-03-31 | 2013-01-16 | Nvidia Corp | 支援耦接至圖形控制器的自更新顯示器的方法和裝置 |
TW201525867A (zh) * | 2013-12-27 | 2015-07-01 | Ind Tech Res Inst | 休眠喚醒方法及電子裝置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
US10817213B2 (en) | 2017-03-06 | 2020-10-27 | Silicon Motion, Inc. | Data storage device and operating method for data storage device |
Also Published As
Publication number | Publication date |
---|---|
CN106873954A (zh) | 2017-06-20 |
CN106873954B (zh) | 2020-03-20 |
JP2017111788A (ja) | 2017-06-22 |
US20170168852A1 (en) | 2017-06-15 |
TW201721414A (zh) | 2017-06-16 |
JP6194391B2 (ja) | 2017-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI564802B (zh) | 初始化週邊裝置之方法與使用此方法之電子裝置 | |
US20210096840A1 (en) | Soc-assisted resilient boot | |
CN104412224B (zh) | 在从低电力状态恢复时处理***从易失性存储器的重新初始化 | |
CN106462520B (zh) | 用于与非易失性双列直插式存储器模块的控制器通信的技术 | |
US9037812B2 (en) | Method, apparatus and system for memory validation | |
US7757060B2 (en) | Reducing wake latency time for power conserving state transition | |
US9189248B2 (en) | Specialized boot path for speeding up resume from sleep state | |
US11429546B2 (en) | Addressing read and write registers in an event slot of a communications interface with a single address by a host system and individually addressable by a state machine | |
US8468334B1 (en) | Efficient initial RAM disk creation | |
CN109997118A (zh) | 在永久存储器***中以超高速一致地存储大量数据的方法 | |
US11768691B2 (en) | Boot process for early display initialization and visualization | |
US8356168B2 (en) | Non-blocking UEFI I/O channel enhancements | |
US11416442B2 (en) | Circuit architecture mapping signals to functions for state machine execution | |
CN115686558A (zh) | 固件更新 | |
TWI515553B (zh) | 包括可組配最大處理器電流之用於能源效率及節能之方法、裝置及系統 | |
US20130179672A1 (en) | Computer and quick booting method thereof | |
US20140095859A1 (en) | Apparatus and method for managing register information in a processing system | |
WO2016160222A1 (en) | Boot operations in storage devices | |
US20230195517A1 (en) | Multi-Cycle Scheduler with Speculative Picking of Micro-Operations | |
US20230004461A1 (en) | Systems and methods for using pattern-based bit flips for faster write and consistent error recovery | |
EP4260186A1 (en) | Accurate timestamp or derived counter value generation on a complex cpu |