TWI517047B - 用於更快速開機之釘選開機資料 - Google Patents

用於更快速開機之釘選開機資料 Download PDF

Info

Publication number
TWI517047B
TWI517047B TW102134876A TW102134876A TWI517047B TW I517047 B TWI517047 B TW I517047B TW 102134876 A TW102134876 A TW 102134876A TW 102134876 A TW102134876 A TW 102134876A TW I517047 B TWI517047 B TW I517047B
Authority
TW
Taiwan
Prior art keywords
data
storage device
boot
solid state
state storage
Prior art date
Application number
TW102134876A
Other languages
English (en)
Other versions
TW201423596A (zh
Inventor
多利 布萊恩K 提爾斯
Original Assignee
蘋果公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 蘋果公司 filed Critical 蘋果公司
Publication of TW201423596A publication Critical patent/TW201423596A/zh
Application granted granted Critical
Publication of TWI517047B publication Critical patent/TWI517047B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

用於更快速開機之釘選開機資料
本發明大體而言係關於電腦系統中之資料儲存及擷取。更特定而言,本實施例係關於自複合儲存器件使電腦系統開機,該等複合儲存器件為具有不同效能特性之不同類型之儲存媒體的混合體。
當啟動(例如,通電)電腦系統時,被稱為「開機」之程序將程式碼指令(諸如,作業系統影像)載入至系統之記憶體中,以使得系統可開始操作。可自儲存器件(諸如磁碟機(「HDD」)、固態磁碟(「SSD」)、唯讀記憶體等等)載入程式碼指令。固態磁碟將資料儲存在諸如無移動部分且實質上比硬磁碟更快速地存取之快閃記憶體晶片之器件中,且使用SSD之系統通常比使用HDD之類似系統更快速地及回應地執行操作,該等使用HDD之類似系統具有移動部分並將資料儲存在藉由移動機械機構存取之實體位置處。然而,固態磁碟(SSD)儲存器比硬磁碟(HDD)儲存器更昂貴,因此HDD可儲存比同樣價格之SSD多得多的資料。因此,當決定使用SSD抑或HDD時,在效能與成本之間存在取捨。
本申請案描述關於使用複合資料儲存器件之電腦系統中之開機程序的各種實施例,該等複合資料儲存器件具有具不同容量及效能特性之多個類型之儲存器。
在一或多項實施例中,電腦系統可自複合磁碟開機,該複合磁碟為具有不同效能特性之兩個或兩個以上之儲存器件之混合體。舉例而言,複合磁碟可包括諸如硬磁碟(HDD)之較慢器件及諸如固態磁碟(SSD)之較快器件。可藉由識別當系統第一次開機時自HDD載入之開機資料及將經識別之資料儲存在SSD上來減少系統開機時間,使得當系統隨後開機時,以比自HDD載入資料時更快之速率自SSD讀取經儲存之資料。開機資料可為(例如)作業系統且可包括作業系統之可執行程式碼及資料部分。
一旦開機程序完成且系統正在執行,便在適當時間執行移轉程序以找到儲存在SSD上之很少使用之資料且將很少使用之資料自SSD移動至HDD。在系統正執行時通常不存取開機資料,且開機資料因而藉由移轉程序經受移動至較慢之HDD。因此,為了支援儲存在HDD上之開機資料而移除SSD開機資料之移轉程序的一般行為有可能導致比資料保留在SSD上時更慢(亦即,花費更多時間)的系統的後續重開機。為解決此問題,可在開機程序期間識別開機資料及「釘選」至SSD,從而防止移轉程序將開機資料移動至HDD。在一個態樣中,釘選操作在一個開機循環內有效,因此在先前開機中釘選但在後續開機中不再需要釘選之資料未保持在SSD上。提供釘選操作以將資料釘選至SSD。當執行釘選操作時,若經釘選資料不存在於SSD上,則將經釘選資料自HDD移動至SSD。否則,若經釘選資料存在於SSD上,則不需要作為釘選程序之部分而儲存該經釘選資料。在一項實例中,釘選操作將資料標記為經釘選。可將看來不常使用之資料自SSD移動至HDD之移轉程序及其他程序不移動標記為經釘選之資料。
在一項實施例中,描述一種用於使電腦系統開機之方法。電腦系統具有包括磁性儲存器件及固態儲存器件之複合儲存器件,且該方法包括:藉由電腦系統在初始開機程序期間識別自磁性儲存器件讀取 之開機資料;藉由電腦系統將開機資料釘選至固態儲存器件,其中釘選使在不常使用之資料自固態儲存器件移動至磁性儲存器件期間開機資料保留在固態儲存器件上;及藉由電腦系統在後續開機程序期間自固態儲存器件讀取開機資料。
實施例可包括以下特徵中之一或多者。該方法可進一步包括:藉由電腦系統將不常存取之資料自固態儲存器件移動至磁性儲存器件;及藉由電腦系統將開機資料保留在固態儲存器件上。在初始開機程序期間識別自磁性儲存器件讀取之開機資料可包括:藉由電腦系統在系統開機期間接收複數個讀取操作,其中開機資料包含在完成啟動複數個應用程式前由複數個讀取操作讀取之資料,當使用者登入系統時啟動該複數個應用程式。
將開機資料釘選在固態儲存器件上可包括:藉由電腦系統確保開機資料儲存在固態儲存器件上;及藉由電腦系統使釘選值與開機資料相關聯,該釘選值指示開機資料將保留在固態儲存器件上。釘選開機資料可包括:藉由電腦系統調用儲存介面之釘選操作,其中釘選操作將開機資料釘選至固態儲存器件;及藉由電腦系統向釘選操作提供開機資料之位置,其中移轉程序經組態以自固態儲存器件移除很少使用之資料,除非很少使用之資料經釘選至固態儲存器件。開機資料可包括複數個資料區塊,且在初始開機程序期間識別自磁性儲存器件讀取之開機資料可包括:藉由電腦系統在系統開機期間接收複數個讀取操作,其中該複數個讀取操作包括複數個區塊位址及相關聯之區塊長度;及藉由電腦系統將複數個區塊位址及相關聯之區塊長度儲存在電腦系統之記憶體中。
將開機資料釘選至固態儲存器件可包括:藉由電腦系統自電腦系統之記憶體擷取複數個區塊位址及相關聯之區塊長度;藉由電腦系統調用儲存介面之釘選操作;藉由電腦系統向釘選操作提供複數個區 塊位址及相關聯之區塊長度,其中釘選操作經組態以防止自固態儲存器件移除開機資料。將開機資料釘選在固態儲存器件上可包括:確保複數個資料區塊儲存在固態儲存器件上;及防止後續自固態儲存器件移除資料區塊。
在另一實施例中,描述一種系統。該系統包括:複合儲存器件,其包括磁性儲存器件及固態儲存器件;及處理器,其經組態以:在初始開機程序期間識別自磁性儲存器件讀取之開機資料;將開機資料儲存在固態儲存器件上;將不常存取之資料自固態儲存器件移動至磁性儲存器件;至少在執行後續開機程序之前將開機資料保留在固態儲存器件上;及在後續開機程序期間自固態儲存器件讀取開機資料。
實施例可包括以下特徵中之一或多者。處理器可經進一步組態以將開機資料釘選至固態儲存器件,其中釘選使在不常使用之資料自固態儲存器件移動至磁性儲存器件期間開機資料保留在固態儲存器件上。為在初始開機程序期間識別自磁性儲存器件讀取之開機資料,處理器可經組態以在系統開機期間攔截讀取操作,其中開機資料包含在系統開機期間藉由讀取操作讀取之資料。開機資料可包括在完成啟動複數個應用程式前藉由讀取操作讀取之資料,當使用者登入系統時啟動該複數個應用程式。
為將開機資料釘選在固態儲存器件上,處理器可經組態以:判定開機資料是否儲存在SSD上;回應於判定開機資料未儲存在SSD上,將開機資料儲存在SSD上;及防止開機資料自固態儲存器件移轉至磁性儲存器件。為釘選開機資料,處理器亦可經組態以:以開機資料之位置作為參數而調用儲存介面之釘選操作,其中釘選操作經組態以確保開機資料儲存在固態儲存器件上,且將資料標記為經釘選,且將資料標記為經釘選防止移轉程序將資料自固態儲存器件移動至磁性儲存器件。
開機資料可包括複數個資料區塊,且為在初始開機程序期間識別自磁性儲存器件讀取之開機資料,處理器可經組態以:在系統開機期間接收複數個讀取操作,其中該複數個讀取操作包括複數個區塊位址及相關聯之區塊長度;及將複數個區塊位址及相關聯之區塊長度儲存在電腦系統之記憶體中。
為將開機資料釘選至固態儲存器件,處理器可經組態以:自電腦系統之記憶體擷取複數個區塊位址及相關聯之區塊長度;調用儲存介面之釘選操作;及向釘選操作提供複數個區塊位址及相關聯之區塊長度,其中釘選操作經組態以防止自固態儲存器件移除開機資料。為釘選開機資料,處理器可經進一步組態以:將資料標記為經釘選,且移轉程序可經組態以自固態儲存器件移除很少使用之資料,除非很少使用之資料標記為經釘選至固態儲存器件。
在另一實施例中,描述一種用於電腦系統之非暫時性電腦可讀媒體。該非暫時性電腦可讀媒體具有儲存在其上之可由處理器執行之電腦程式碼,電腦系統包含包括磁性儲存器件及固態儲存器件之複合儲存器件,該電腦程式碼包含使處理器執行以下操作之電腦程式碼:在初始開機程序期間識別自磁性儲存器件讀取之開機資料;將該開機資料釘選至固態儲存器件;至少在執行後續開機程序之前將釘選之開機資料保留在固態儲存器件上;及在後續開機程序期間自固態儲存器件讀取開機資料。
實施例可包括以下特徵中之一或多者。使處理器釘選開機資料之電腦程式碼可:包括使處理器調用儲存介面之釘選操作之電腦程式碼;及使處理器向釘選操作提供開機資料之位置之電腦程式碼,其中該位置包括開機資料之位址及長度。使處理器釘選開機資料之電腦程式碼可包括使處理器以開機資料之位置作為參數而調用儲存介面之釘選操作的電腦程式碼,其中釘選操作經組態以確保開機資料儲存在固 態儲存器件上,且將資料標記為經釘選,其中將資料標記為經釘選防止移轉程序將資料自固態儲存器件移動至磁性儲存器件。
102‧‧‧電腦系統
104‧‧‧複合磁碟
106‧‧‧開機讀取器
108‧‧‧移轉程序
110‧‧‧磁性儲存器件(HDD)
112‧‧‧HDD區塊
114‧‧‧HDD區塊1
116‧‧‧HDD開機區塊
118‧‧‧HDD區塊N
120‧‧‧固態儲存器件(SSD)
122‧‧‧SSD區塊
124‧‧‧SSD區塊1
126‧‧‧SSD開機區塊
128‧‧‧SSD區塊M
130‧‧‧區塊後設資料
132‧‧‧區塊後設資料
133‧‧‧SSD資料區塊
134‧‧‧區塊後設資料
136‧‧‧虛擬位置
138‧‧‧虛擬位址
140‧‧‧長度
142‧‧‧實體位址
144‧‧‧釘選旗標
154‧‧‧釘選旗標
160‧‧‧儲存應用程式設計介面(API)
162‧‧‧釘選API
164‧‧‧釘選程序
170‧‧‧開機快取記憶體
172‧‧‧初始讀取操作
174‧‧‧後續讀取操作
180‧‧‧開機區塊陣列
182‧‧‧開機區塊項目
184‧‧‧虛擬位址
186‧‧‧長度
200‧‧‧系統開機資料讀取路徑
204‧‧‧輸入/輸出(I/O)讀取操作
206‧‧‧開機快取記憶體讀取操作
208‧‧‧釘選程序
210‧‧‧記錄區塊之位置
212‧‧‧釘選操作
214‧‧‧讀取操作
216‧‧‧區塊是否在SSD上?
218‧‧‧自SSD讀取區塊
220‧‧‧自HDD讀取區塊
222‧‧‧釘選操作
400‧‧‧電腦系統
402‧‧‧中央處理器
404‧‧‧系統記憶體
406‧‧‧固定儲存器
408‧‧‧可移除式儲存器
410‧‧‧網路介面
所包括之圖式用於說明性目的且僅用以提供所揭示之用於提供攜帶型計算器件之發明性裝置及方法的可能結構及配置的實例。該等圖式決不限制熟習此項技術者在不脫離本發明之精神及範疇之情況下可對本發明做出之任何形式及細節之變化。將結合附隨圖式藉由以下詳細描述容易地理解實施例,其中相同之參考數字指示相同之結構元件,且其中:圖1為展示根據一或多項實施例之具有複合磁碟之電腦系統之代表性方塊圖,開機資料可釘選在該複合磁碟上。
圖2展示根據一或多項實施例之系統開機資料讀取路徑之代表性方塊圖。
圖3展示根據一或多項實施例之開機資料釘選程序之代表性流程圖。
圖4展示用以執行實施例之軟體之電腦系統之系統方塊圖。
在此章節中提供根據目前所述之實施例之裝置及方法的代表性應用。僅提供該等實例來添加上下文及幫助理解所述之實施例。因此,熟習此項技術者顯而易見,可在無一些或全部該等特定細節的情況下實踐目前所述之實施例。在其他情況下,未詳細描述熟知程序步驟以避免不必要地模糊目前所述之實施例。其他應用係可能的,使得以下實例不應被視為限制性的。詳言之,以下詳細描述通常指代使用術語硬磁碟(HDD)及固態磁碟(SSD)之具有不同效能特性之儲存器件,但應瞭解,此使用僅為使熟習此項技術者能夠實踐所述實施例的實例。應進一步瞭解,此實例不限於SSD及/或HDD器件,使得可使 用其他實施例,並可在不脫離所述實施例之精神及範疇之情況下做出改變。
在一或多項實施例中,電腦系統可自複合磁碟開機,該複合磁碟為具有不同效能特性之兩個或兩個以上之儲存器件之混合體。舉例而言,複合磁碟可包括諸如硬磁碟(HDD)之較慢器件及諸如固態磁碟(SSD)之具有相對較小儲存容量之較快器件。較快器件可具有相對較大之儲存容量,且較慢器件可具有相對較小之儲存容量。可藉由識別當系統第一次開機時自HDD載入之開機資料及將經識別之資料儲存在SSD上來減少系統開機時間,使得當隨後使系統開機時,以比自HDD載入資料時更快之速率自SSD讀取儲存之資料。開機資料可為(例如)作業系統且可包括作業系統之可執行程式碼及資料部分。
一旦開機程序完成且系統執行,便在適當時間執行移轉程序以找到儲存在SSD上之很少使用之資料且將很少使用之資料自SSD移動至HDD。相反,例如,可藉由移轉程序將頻繁存取之資料自HDD移動至SSD。在系統正執行時通常不存取開機資料,且開機資料因而藉由移轉程序而移動至較慢之HDD。因此,為了支援儲存在HDD上之開機資料而移除SSD開機資料之移轉程序的一般行為有可能導致比資料保留在SSD上時更慢(亦即,花費更多時間)的系統的後續重開機。為解決此問題,可在開機程序期間識別開機資料及「釘選」至SSD,從而防止移轉程序將開機資料移動至HDD。提供釘選操作以將資料釘選至SSD。當執行釘選操作時,若釘選資料不存在於SSD上,則將釘選資料自HDD移動至SSD。否則,若釘選資料存在於SSD上,則不需要作為釘選程序之部分而儲存該釘選資料。在一項實例中,釘選操作將資料標記為經釘選。可將看起來不常使用之資料自SSD移動至HDD之移轉程序及其他程序不移動標記為經釘選之資料。
圖1為展示根據一或多項實施例之具有複合磁碟104之電腦系統 102之代表性方塊圖,開機資料可釘選在該複合磁碟104上。電腦系統102為(例如)桌上型電腦、膝上型電腦、迷你筆記型電腦等等。電腦系統102包括資料儲存器件,在本文中該等資料儲存器件被稱為「磁碟」或「磁碟機」,即使其不一定具有實體磁碟。
在一或多項實施例中,電腦系統102可具有複合磁碟104,該複合磁碟104包括具有不同效能特性之兩個或兩個以上儲存器件。在圖1之實例中,複合磁碟104包括HDD 110及SSD 120。SSD 120為相對快之器件,且HDD 110為具有比SSD 120更大之儲存容量及更低之成本的相對慢的器件。因此,藉由複合磁碟104儲存之一些資料可儲存在HDD 110上,且一些資料可儲存在SSD 120上。複合磁碟104經設計以提供HDD 110及SSD 120兩者之益處。複合磁碟可提供接近SSD之效能之高效能,且具有HDD之較大容量及較低成本。複合磁碟藉由利用許多磁碟操作之重複性及多數磁碟操作存取儲存在磁碟上之相對小子集之資料的事實來達成該等益處。
可在HDD與SSD之間移動儲存在複合磁碟上之資料,其目標係將達成較快系統效能及回應時間所需之資料儲存在SSD上並將其他資料儲存在HDD上。SSD之儲存容量通常比HDD之容量小,因此藉由作業系統或電腦系統之其他組件(諸如,儲存應用程式設計介面(API)160(例如,來自Apple,Inc.的Mac OS XTM中的磁心儲存系統等等))來執行移轉程序108。移轉程序108使用儲存API 160在HDD與SSD之間移動資料,從而使電腦軟體應用程式及使用者能夠在未意識到存在兩個不同器件(亦即,HDD 110及SSD 120)之情況下作為單一儲存器件來存取複合磁碟104。換言之,HDD 110及SSD 120經由複合磁碟104作為單一磁碟呈現給使用者,且使用者通常不對資料是儲存在HDD 110上抑或儲存在SSD 120上進行控制。
在一或多項實施例中,在開機期間,當將存取資料之請求發送 至複合磁碟104(例如,藉由開機讀取器106發送之初始讀取操作172)時,由開機快取記憶體170接收資料,開機快取記憶體170調用釘選程序164以將開機資料釘選至SSD 120,如下文所述。開機快取記憶體170將存取請求轉發至儲存API 160,儲存API 160判定將該請求路由至HDD 110抑或SSD 120。如下文所述,儲存API亦將虛擬磁碟位址映射至實體磁碟位址且經由釘選API 162處置釘選操作。釘選API 162具有指示儲存API 160確保起始於給定虛擬區塊位址及持續給定數目個位元組之資料儲存且保持儲存在給定線上儲存卷(諸如,SSD 120)上之「釘選」操作。舉例而言,釘選操作將區塊之後設資料132之釘選旗標144設定為真以指示已將區塊釘選至SSD。又,若藉由給定位址識別之區塊不在SSD 120上,則儲存API 160將區塊移動至SSD 120。
因為SSD較快但具有比HDD小之儲存容量,故需要將常存取之資料(諸如,對於維持電腦系統之回應性重要的資料)儲存在SSD上,且需要將很少存取之資料儲存在HDD上。資料分別儲存在作為一組HDD區塊112及一組SSD區塊122之HDD 110及SSD 120上。每一區塊含有儲存之資料之一部分。本文中使用之術語「資料」包括程式碼以及程式碼使用之資料,此係因為程式碼指令表示為電腦系統中之資料。在一或多項實施例中,儲存在HDD 110及SSD 120上之資料區塊包括資料值,該等資料區塊儲存在器件上之特定位址處且具有相關聯之長度(例如,以位元組為單位)。HDD區塊112包括HDD區塊1 114、眾多HDD開機區塊116(若全部開機區塊已移動至SSD則不存在)及HDD區塊N 118,該HDD區塊N 118指示可存在眾多(N個)HDD區塊112。SSD區塊122包括SSD區塊1 124、眾多SSD開機區塊126(若全部開機區塊駐留於HDD上則不存在)及SSD區塊M 128,該SSD區塊M 128指示可存在眾多(M個)SSD區塊。
在一或多項實施例中,複合磁碟104包括區塊後設資料130(包括 區塊1後設資料及區塊N後設資料134),該區塊後設資料130為描述對應HDD區塊112及SSD區塊122之性質之資訊。每一資料區塊之區塊後設資料132包括區塊之虛擬(亦即,邏輯)位置136。當指代HDD區塊112及SSD區塊122時,包括釘選API 162之儲存API 160使用虛擬位址。虛擬位置136包括資料區塊之虛擬位址138及長度140。虛擬位置映射至實體位址142,該實體位址142識別資料區塊儲存在HDD 110或SSD 120上之位置。區塊後設資料132亦包括釘選旗標144,該釘選旗標144在對應SSD區塊(例如,SSD區塊1 124)釘選至SSD 120時設定為真,如下文所述。
為提供將常存取之資料儲存在SSD上之複合磁碟之特徵,移轉程序108基於諸如資料之過去存取模式及SSD上之空間之可用性的因素來在HDD與SSD之間移動HDD區塊112及SSD區塊122。移轉程序108可持續地或週期性地執行,且(例如)藉由將不常存取之SSD區塊122複製至HDD 110及自SSD 120刪除該等不常存取之SSD區塊122來將位於SSD 120上之一或多個不常存取之SSD區塊122移動至HDD 110。移轉程序108亦可將一或多個頻繁存取之HDD區塊112自HDD 110移動至SSD 120以改善效能。
在一或多項實施例中,當使電腦系統102開機時,開機讀取器106在讀取操作172、174中自其各自之一或多個磁碟讀取開機資料,例如,HDD開機區塊116及/或SSD開機區塊126。開機資料包括程式碼及電腦通電時載入至電腦系統102中之資料,例如開機讀取器106、作業系統影像或控制電腦系統102之其他程式碼指令。
在一或多項實施例中,當使電腦系統102開機時,可識別開機資料且藉由記錄於在開機程序期間發生之磁碟操作(例如,讀取)而將開機資料記錄在開機區塊陣列180中。舉例而言,電腦系統102第一次開機時,開機讀取器106執行初始開機讀取操作172,其自HDD 110讀取 HDD開機區塊116(例如,作業系統影像)。在自HDD讀取HDD開機區塊116中之每一者時,釘選程序164攔截(例如,被通知)讀取操作172且將關於開機區塊陣列180中之區塊之資訊記錄在電腦系統102之記憶體中。在收到讀取請求172後可由(例如)開機快取記憶體170調用釘選程序164。對每一開機區塊讀取而言,釘選程序164記錄開機區塊項目182,該開機區塊項目182包括區塊之虛擬位址184(自區塊後設資料130之虛擬位址138複製)及區塊之長度186(自區塊後設資料130之長度140複製)。
當釘選程序164判定開機程序完成時(例如,當在登入時或在登入前啟動之應用程式已完成啟動時),或當已讀取全部HDD開機區塊116時,或當偵測到某一其他情況時,釘選程序164則藉由調用釘選API 162之釘選操作來將開機資料釘選至SSD 120,其中每一記錄之開機區塊項目182之虛擬位址184及長度186以及複合磁碟104之識別符作為引數。釘選操作確保自HDD 110讀取之區塊作為SSD開機區塊126儲存在SSD 120上,且將與SSD開機區塊126相關聯之區塊後設資料130之釘選旗標144設定為真。
在其他實施例中,釘選程序164可在讀取區塊時調用每一區塊之釘選操作,使得區塊不需要儲存在開機區塊陣列180中。因此,亦可釘選未記錄之資料。對是否使用開機區塊陣列180來在批量操作中記錄區塊之選擇為一設計決策,可基於諸如兩個替代方案之效能及資源利用之因素來做出該設計決策。
在一或多項實施例中,在電腦系統102之後續開機(亦即,重開機)中,開機讀取器106發出後續讀取操作174。因為SSD開機區塊126儲存在SSD 120上,故後續讀取操作174自SSD 120讀取SSD開機區塊126。因此,後續讀取操作174比在初始開機中(在將SSD開機區塊126釘選至SSD 120前)執行之初始讀取操作172更快,此係因為SSD讀取 操作比HDD讀取操作更快。一些後續讀取操作174可自HDD讀取HDD開機區塊116是可能的,此係因為一些資料可在每次重開機電腦系統102時變化。
在一或多項實施例中,在後續開機中,上文所述之釘選程序在系統之後續開機(亦即,重開機)中執行。亦即,每當使電腦系統102開機時,將在開機時刻自HDD 110及/或SSD 120讀取之HDD開機區塊116及SSD開機區塊126釘選(或若已釘選則重新釘選)至SSD 120。將在每一開機期間自HDD讀取之任何HDD開機區塊116移動至SSD 120以作為釘選程序之部分。如上文所述,在後續重開機時自SSD 120讀取經釘選區塊。因而,將經釘選資料維持為將在下一開機期間讀取之資料之極近似表達。另外,在一或多項實施例中,釘選操作在一個開機循環內有效,因此在先前開機中釘選但不再需要在後續開機中釘選之資料不保持在SSD 120上。
在一或多項實施例中,儲存在SSD 120上之SSD開機區塊126藉由移轉程序108而經受移除,除非SSD開機區塊126經釘選至SSD。移轉程序108識別不大可能得益於SSD之較高存取速度之儲存在SSD 120上之資料,且將經識別之資料自SSD移動至HDD,從而使空間可用於由更頻繁存取之其他資料使用。然而,含有在電腦開機時自磁碟載入記憶體之作業系統影像(程式碼及資料)的HDD開機區塊116及SSD開機區塊126在完成開機程序後不常存取,且因此,一旦電腦系統102已完成開機程序且正在執行,開機資料便可能藉由移轉程序108而自SSD移動至HDD。由於HDD之較慢本質,將開機資料自SSD移動至HDD導致開機時間更長。
由釘選程序164執行之釘選操作確保SSD開機區塊126不藉由移轉程序或某一其他程序而自SSD移除。釘選程序164設定儲存在與HDD開機區塊116、SSD開機區塊126相關聯之區塊後設資料132、134中之 設定釘選旗標144、154為真,以防止移轉程序108或電腦系統102之其他組件將SSD開機區塊126自SSD 120移動至HDD 110。移轉程序108(及電腦系統102上之其他程序)檢查釘選旗標144、154之值,且在對應於SSD資料區塊133之釘選旗標144、154為真時不將SSD資料區塊133自SSD 120移動至HDD 110。因此,釘選操作(例如,針對待釘選之區塊設定區塊後設資料130中之釘選旗標(其亦被稱為將資料釘選至SSD))防止將區塊自SSD移動至HDD。
圖2展示根據一或多項實施例之系統開機資料讀取路徑200之代表性方塊圖。開機操作開始於輸入/輸出(I/O)讀取操作204以自儲存器件讀取開機資料。I/O讀取操作204執行開機快取記憶體讀取操作206以檢查先前可能已儲存之經快取開機資料。在此情況下,不存在經快取開機資料,因此開機快取記憶體讀取操作206執行磁心儲存器讀取操作214以自儲存器件讀取開機資料。讀取操作214可由(例如)圖1之儲存API 160提供。讀取操作214判定(在216處)待讀取之區塊位於SSD上抑或HDD上。若區塊位於SSD上,則自SSD讀取區塊(218)。否則,自HDD讀取區塊(220)。開機快取記憶體讀取操作206亦執行釘選程序208以將在讀取操作214中接收之開機資料釘選至SSD。釘選程序208記錄藉由讀取操作214讀取之區塊之位置,且執行釘選操作212以將記錄之區塊位置釘選至SSD,使得對應區塊將不自SSD移動至HDD。藉由(例如)執行圖1之釘選API 162之磁心儲存器釘選操作而在222處執行釘選操作,該釘選操作可將與區塊相關聯之釘選旗標144設定為真以指示區塊經釘選至SSD。在一項實例中,在初始系統開機期間(在此期間,資料先前未明確地釘選至SSD),讀取操作214在218處自SSD讀取約50%之區塊,且在220處自HDD讀取區塊之剩餘部分。在於222處已藉由釘選程序208執行釘選操作及電腦系統重開機後,在218處自SSD讀取95%之區塊,且在220處自HDD讀取僅5%,因而導致開機時 間的顯著減少。
圖3展示根據一或多項實施例之開機資料釘選程序300之代表性流程圖。程序300可表示圖1之釘選程序164,且可經實施為(例如)在電腦可讀媒體上編碼且可由電腦系統之處理器執行之電腦程式碼。程序300可由圖1之開機快取記憶體170或開機讀取器106調用。程序在區塊302處開始,當電腦系統正在開機時,區塊302攔截讀取資料區塊之讀取操作172。可藉由以下方式來攔截讀取操作172:例如,修改作業系統讀取系統呼叫或功能以在執行讀取操作172前或後調用程序300;或藉由以其他方式暫存及接收由作業系統執行之開機時間資料讀取操作之通知。區塊304記錄區塊之陣列中之資料區塊之位址及長度,該區塊之陣列在本文中被稱為「區塊」陣列且對應於圖1之開機區塊陣列180。
區塊306判定是否完成開機程序,例如,是否已完成起動操作,諸如,啟動在登入時請求之應用程式。若開機程序尚未完成,則控制返回區塊302,區塊302攔截另一讀取操作以接收另一資料區塊,且區塊304儲存區塊陣列中之資料區塊之位址及長度。若區塊306判定開機程序完成(例如,因為當使用者登入時啟動之應用程式已完成啟動(亦即,初始化),或因為不再有可用於讀取之開機資料),或某一其他條件,則指示開機資料之結束。在一項實例中,已啟動之應用程式所讀取之資料區塊不包括在開機資料中,此係因為該等資料區塊可能相對較多。
區塊308自區塊陣列擷取先前讀取之區塊中之一者之區塊位址及長度。區塊310判定在308處識別之區塊是否在SSD上。若不在,則區塊314將區塊自HDD移動至SSD,此可包括自HDD刪除區塊。另外,區塊312(例如)藉由調用釘選API 162而設定區塊之釘選旗標為真。區塊316判定區塊陣列中是否存在於區塊308處仍未擷取之另一區塊。若 存在,則控制轉移至區塊308,且針對彼區塊重複釘選操作。否則,一旦已釘選陣列中之區塊,程序便結束。
圖4展示用以執行實施例之軟體之電腦系統400的系統方塊圖。電腦系統400包括子系統,諸如中央處理器402、系統記憶體404、固定儲存器406(例如,硬碟機)、可移除式儲存器408(例如,快閃儲存器)及網路介面410。中央處理器402(例如)可執行電腦程式碼(例如,作業系統)以實施本發明。作業系統在其執行期間通常(但不必)駐留於系統記憶體404中。適用於本發明之其他電腦系統可包括額外或更少之子系統。舉例而言,另一電腦系統可能包括一個以上之中央處理器402(亦即,多處理器系統)或快取記憶體。
儘管已為清晰及理解之目的藉由說明及實例詳細描述前述發明,但將認識到,在不脫離本發明之精神或本質特性的情況下,上述發明可在眾多其他特定變體及實施例中得以體現。可實踐某些變化及修改,且應瞭解,本發明不受限於前述細節,而是由所附申請專利範圍之範疇界定。
200‧‧‧系統開機資料讀取路徑
204‧‧‧輸入/輸出(I/O)讀取操作
206‧‧‧開機快取記憶體讀取操作
208‧‧‧釘選程序
210‧‧‧記錄區塊之位置
212‧‧‧釘選操作
214‧‧‧讀取操作
216‧‧‧區塊是否在SSD上?
218‧‧‧自SSD讀取區塊
220‧‧‧自HDD讀取區塊
222‧‧‧釘選操作

Claims (18)

  1. 一種用於使一電腦系統開機之方法,該電腦系統具有包括一磁性儲存器件及一固態儲存器件之一複合儲存器件,該方法包含藉由該電腦系統:在一初始開機程序期間:識別自該磁性儲存器件讀取之開機資料;及執行一第一釘選操作以將該開機資料釘選至該固態儲存器件,其中該第一釘選操作包含:確保該開機資料儲存在該固態儲存器件上;及使一釘選值與該開機資料相關聯,該釘選值指示該開機資料將保留在該固態儲存器件上;當該初始開機程序完成時:起始一移轉程序,其中該移轉程序:識別儲存在該固態儲存器件上不常使用之資料,該不常使用之資料包含該開機資料及其他資料;自該固態儲存器件移動該其他資料至該磁性儲存器件,而保留該開機資料在該固態儲存器件上;及基於與該開機資料相關聯之該釘選值而保留該開機資料;及在一後續開機程序期間:讀取已經保留在該固態儲存器件上之該開機資料;及當自該磁性儲存器件讀取額外開機資料時,執行一第二釘選操作以將該額外開機資料釘選至該固態儲存器件。
  2. 如請求項1之方法,其中在該初始開機程序期間識別自該磁性儲存器件讀取之開機資料包含: 藉由該電腦系統在系統開機期間接收複數個讀取操作,其中該開機資料包含在完成啟動複數個應用程式前由該複數個讀取操作讀取之資料,當一使用者登入該電腦系統時啟動該複數個應用程式。
  3. 如請求項1之方法,其中執行該第一釘選操作包含:藉由該電腦系統:調用一儲存介面之該第一釘選操作;及向該第一釘選操作提供該開機資料之一位置。
  4. 如請求項1之方法,其中該開機資料包含複數個資料區塊,且在該初始開機程序期間識別自該磁性儲存器件讀取之開機資料包含:藉由該電腦系統:在系統開機期間接收複數個讀取操作,其中該複數個讀取操作包括複數個區塊位址及相關聯之區塊長度;及將該複數個區塊位址及相關聯之區塊長度儲存在該電腦系統之一記憶體中。
  5. 如請求項4之方法,其中執行該第一釘選操作包含:藉由該電腦系統:自該電腦系統之該記憶體擷取該複數個區塊位址及相關聯之區塊長度;調用一儲存介面之該第一釘選操作;及向該第一釘選操作提供該複數個區塊位址及相關聯之區塊長度,其中該第一釘選操作經組態以藉由該移轉程序防止自該固態儲存器件移除該開機資料。
  6. 如請求項4之方法,其中執行該第一釘選操作包含:確保該複數個資料區塊儲存在該固態儲存器件上,及 藉由該移轉程序防止後續自該固態儲存器件移除該複數個資料區塊。
  7. 一種系統,其包含:一複合儲存器件,其包括一磁性儲存器件及一固態儲存器件;及一處理器,其經組態以:在一初始開機程序期間:藉由攔截一或多個讀取操作而識別自該磁性儲存器件讀取之開機資料,其中該開機資料包含藉由該一或多個讀取操作讀取之資料;執行一第一釘選操作以將該開機資料釘選至該固態儲存器件,其中該第一釘選操作包含確保該開機資料儲存在該固態儲存器件上;當該初始開機程序完成時:起始一移轉程序,其中該移轉程序:識別儲存在該固態儲存器件上不常使用之資料,該不常使用之資料包含該開機資料及其他資料;自該固態儲存器件將該其他資料移動至該磁性儲存器件;及至少在執行一後續開機程序之前將該開機資料保留在該固態儲存器件上;及在該後續開機程序期間:讀取已經保留在該固態儲存器件上之該開機資料;及當自該磁性儲存器件讀取額外開機資料時,執行一第二釘選操作以將該額外開機資料釘選至該固態儲存器件。
  8. 如請求項7之系統,其中該第一釘選操作使在該其他資料自該固 態儲存器件移動至該磁性儲存器件期間該開機資料保留在該固態儲存器件上。
  9. 如請求項7之系統,其中該開機資料包含在完成啟動複數個應用程式前藉由該一或多個讀取操作讀取之資料,當一使用者登入該系統時啟動該複數個應用程式。
  10. 如請求項7之系統,其中為將該開機資料釘選至該固態儲存器件,該處理器經組態以:判定該開機資料是否存在該固態儲存器件上;回應於判定該開機資料未儲存在該固態儲存器件上,將該開機資料儲存在該固態儲存器件上;及防止該開機資料自該固態儲存器件移轉至該磁性儲存器件。
  11. 如請求項7之系統,其中為釘選該開機資料,該處理器經組態以:以該開機資料之一位置作為一參數而調用一儲存介面之該第一釘選操作,其中該第一釘選操作經組態以將該開機資料標記為經釘選,及其中將開機資料標記為經釘選防止該移轉程序將該開機資料自該固態儲存器件移動至該磁性儲存器件。
  12. 如請求項7之系統,其中該開機資料包含複數個資料區塊,且為在該初始開機程序期間識別自該磁性儲存器件讀取之開機資料,該處理器經組態以:在系統開機期間接收該一或多個讀取操作,其中該一或多個讀取操作包括複數個區塊位址及相關聯之區塊長度;及將該複數個區塊位址及相關聯之區塊長度儲存在該系統之一記憶體中。
  13. 如請求項12之系統,其中為將該開機資料釘選至該固態儲存器件,該處理器經組態以:自該系統之該記憶體擷取該複數個區塊位址及相關聯之區塊長度;調用一儲存介面之該第一釘選操作;及向該第一釘選操作提供該複數個區塊位址及相關聯之區塊長度,其中該第一釘選操作經組態以防止自該固態儲存器件移除該開機資料。
  14. 如請求項11之系統,其中為釘選該開機資料,該處理器經進一步組態以將該開機資料標記為經釘選,且該移轉程序經組態以自該固態儲存器件移除很少使用之開機資料,除非該很少使用之開機資料標記為經釘選至該固態儲存器件。
  15. 如請求項7之系統,其中該處理器進一步經組態以:調用攔截該一或多個讀取操作之每一讀取操作之該第一釘選操作,其中該第一釘選操作將由該一或多個讀取操作讀取之該開機資料釘選至該該固態儲存器件,及在執行該讀取操作之前或之後調用該第一釘選操作。
  16. 如請求項15之系統,其中在該後續開機程序期間,該第二釘選操作攔截一或多個後續讀取操作,且藉由該一或多個後續讀取操作讀取保留在該固態儲存器件上之該開機資料及自該磁性儲存器件之該額外開機資料。
  17. 一種用於一電腦系統之非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體具有儲存在其上之可由一處理器執行之電腦程式碼,該電腦系統包含包括一磁性儲存器件及一固態儲存器件之一複合儲存器件,該電腦程式碼經組態以使該處理器以: 在一初始開機程序期間:識別自該磁性儲存器件讀取之開機資料;調用一儲存介面之一第一釘選操作;向該第一釘選操作提供該開機資料之一位置,其中該位置包含一位址及該開機資料之一長度;及將該開機資料釘選至該固態儲存器件;當該初始開機程序完成時:起始一移轉程序,其中該移轉程序:識別儲存在該固態儲存器件上不常使用之資料,該不常使用之資料包含該開機資料及其他資料;自該固態儲存器件移動該其他資料至該磁性儲存器件,而保留該開機資料在該固態儲存器件上;及至少在執行一後續開機程序之前將該開機資料保留在該固態儲存器件上;及在該後續開機程序期間:自該固態儲存器件讀取該開機資料;及當自該磁性儲存器件讀取額外開機資料時,執行一第二釘選操作以將該額外開機資料釘選至該固態儲存器件。
  18. 如請求項17之非暫時性電腦可讀媒體,其進一步包含電腦程式碼,該電腦程式碼經組態以使該處理器:該開機資料之該位置作為一參數而調用該儲存介面之該第一釘選操作,其中該第一釘選操作經組態以確保該開機資料儲存在該固態儲存器件上,且將該開機資料標記為經釘選,及其中將該開機資料標記為經釘選防止該移轉程序將該開機資料自該固態儲存器件移動至該磁性儲存器件。
TW102134876A 2012-09-30 2013-09-26 用於更快速開機之釘選開機資料 TWI517047B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/632,086 US8984267B2 (en) 2012-09-30 2012-09-30 Pinning boot data for faster boot

Publications (2)

Publication Number Publication Date
TW201423596A TW201423596A (zh) 2014-06-16
TWI517047B true TWI517047B (zh) 2016-01-11

Family

ID=50386399

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102134876A TWI517047B (zh) 2012-09-30 2013-09-26 用於更快速開機之釘選開機資料

Country Status (5)

Country Link
US (1) US8984267B2 (zh)
CN (1) CN104685443B (zh)
DE (1) DE112013004788T5 (zh)
TW (1) TWI517047B (zh)
WO (1) WO2014052093A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110677B2 (en) * 2013-03-14 2015-08-18 Sandisk Technologies Inc. System and method for predicting and improving boot-up sequence
US9952967B2 (en) * 2015-03-10 2018-04-24 Toshiba Memory Corporation Method for controlling nonvolatile memory and storage medium storing program
CN106469075A (zh) * 2015-08-20 2017-03-01 瑞昱半导体股份有限公司 储存装置、加快启动程序的方法与储存控制器
US10628051B2 (en) 2018-07-13 2020-04-21 Seagate Technology Llc Reducing a data storage device boot time
TWI710957B (zh) * 2019-05-20 2020-11-21 宏碁股份有限公司 加速開機系統及加速開機方法
CN112612417B (zh) * 2020-12-24 2023-08-08 深圳市科力锐科技有限公司 数据迁移方法、装置、设备及存储介质
US12019884B2 (en) * 2022-02-15 2024-06-25 Micron Technology, Inc. Identification and storage of boot information at a memory system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920533B2 (en) * 2001-06-27 2005-07-19 Intel Corporation System boot time reduction method
US20030135729A1 (en) 2001-12-14 2003-07-17 I/O Integrity, Inc. Apparatus and meta data caching method for optimizing server startup performance
US7475186B2 (en) 2003-10-31 2009-01-06 Superspeed Software System and method for persistent RAM disk
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
CN100593774C (zh) * 2005-06-24 2010-03-10 索尼株式会社 快速引导辅助操作系统的系统和方法
US8296521B2 (en) 2006-06-30 2012-10-23 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
US9207876B2 (en) 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
US20100088459A1 (en) * 2008-10-06 2010-04-08 Siamak Arya Improved Hybrid Drive
KR101583002B1 (ko) 2009-02-23 2016-01-21 삼성전자주식회사 컴퓨팅 시스템, 그것의 부팅 방법, 및 코드 데이터 피닝 방법
US8438334B2 (en) 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
JP4988007B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
CN102591686A (zh) * 2011-12-30 2012-07-18 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法及固态硬盘

Also Published As

Publication number Publication date
CN104685443A (zh) 2015-06-03
CN104685443B (zh) 2018-12-14
US8984267B2 (en) 2015-03-17
TW201423596A (zh) 2014-06-16
DE112013004788T5 (de) 2015-07-16
US20140095856A1 (en) 2014-04-03
WO2014052093A1 (en) 2014-04-03

Similar Documents

Publication Publication Date Title
TWI517047B (zh) 用於更快速開機之釘選開機資料
KR101595043B1 (ko) 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
JP5816198B2 (ja) 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法
US20170124345A1 (en) Reducing Resource Consumption Associated with Storage and Operation of Containers
JP7057435B2 (ja) ハイブリッドメモリシステム
US11755315B2 (en) Boot ROM update method and boot-up method of embedded system
TWI696188B (zh) 混合式記憶體系統
KR101846612B1 (ko) 부트 데이터 로드
US8990486B2 (en) Hardware and file system agnostic mechanism for achieving capsule support
JP2010250822A (ja) 先読み技術を利用して行われる、システムのオペレーティングシステムのブート
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
JP7038227B2 (ja) ハイブリッドメモリシステム
US20190250926A1 (en) Capturing pre-fetch blocks of an operating system to improve boot performance in a cloud environment
JP7355876B2 (ja) プログラム起動方法及び機器、記憶媒体
KR101120956B1 (ko) 휴대용 멀티-플랫폼 부팅시스템과 아키텍쳐
JP7522775B2 (ja) 不揮発性記憶区画識別子
AU2015100549A4 (en) Pinning boot data for faster boot
US9760661B2 (en) Providing virtual optical disk drive
US20220066784A1 (en) Disabling software persistence
US8060685B2 (en) Electronic device data access system and method
TWI499978B (zh) A method of transferring data between a working system and a basic input / output system, a recording medium, and a computer program product