TWI817502B - 固態硬碟系統 - Google Patents
固態硬碟系統 Download PDFInfo
- Publication number
- TWI817502B TWI817502B TW111117957A TW111117957A TWI817502B TW I817502 B TWI817502 B TW I817502B TW 111117957 A TW111117957 A TW 111117957A TW 111117957 A TW111117957 A TW 111117957A TW I817502 B TWI817502 B TW I817502B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- solid state
- state drive
- drive system
- image file
- Prior art date
Links
- 239000007787 solid Substances 0.000 title claims abstract description 44
- 238000013507 mapping Methods 0.000 claims abstract description 37
- 230000002159 abnormal effect Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Crystals, And After-Treatments Of Crystals (AREA)
- Valve Device For Special Equipments (AREA)
- Vending Machines For Individual Products (AREA)
Abstract
一種固態硬碟系統,包含資料磁區、隱藏磁區、映射表、控制器以及韌體。資料磁區儲存有使用者資料。隱藏磁區儲存有至少一磁碟映像檔。映射表用以管理資料磁區及隱藏磁區。當控制器的啟動程式載入韌體後,韌體發生異常情況時,控制器根據隱藏磁區的至少一磁碟映像檔更新韌體。
Description
本發明係關於一種固態硬碟系統,特別是指一種能自動更新韌體的固態硬碟系統。
韌體是指設備內部儲存的設備驅動程式。通過韌體,作業系統才能按照標準實現特定機器的運作。在固態硬碟中,韌體位於固態硬碟資料磁區之外的儲存空間,可由使用者通過特定的程式進行升級。韌體儲存有固態硬碟最基礎的參數,進而提供底層且直接的硬體控制。固態硬碟通電後,需先透過載入韌體來完成對硬碟的初始化,例如重建映射表,使電腦系統能夠正確辨別固態硬碟,並使固態硬碟能依據韌體參數正確運作。在固態硬碟工作過程中,電腦系統需要不斷讀取與寫入韌體區參數,如果此時固態硬碟斷電或發生讀寫錯誤,就可能導致韌體區故障。韌體故障原因主要有:壞軌導致韌體區損壞,以及意外斷電導致韌體區損壞。
韌體損壞為固態硬碟最常見的故障之一。這種損壞通常能夠以更新固態硬碟韌體的方式來修復。然而當使用者使用固態硬碟作為系統碟且韌體需要更新時,容易出現以下情況:系統與更新程式不相容,系統無法正常開啟及執行更新程式,使用者欲使用外接開機碟更新但無外接孔,或使用者不會操作。因此需要一種解決方案是可以不用透過主作業系統或其它外接裝置來更新韌體,且該方案可以全程自動化更新。
本發明實施例提供一種固態硬碟系統,包含資料磁區、隱藏磁區、映射表(mapping table)、控制器以及韌體。資料磁區儲存有使用者資料。隱藏磁區儲存有至少一磁碟映像檔(binary disc file)。映射表用以管理資料磁區及隱藏磁區。其中當控制器的啟動程式載入韌體後,韌體發生異常情況時,控制器根據隱藏磁區的至少一磁碟映像檔更新韌體。
本發明實施例另提供一種固態硬碟系統,包含資料磁區、第一映射表、第一韌體、隱藏磁區、第二映射表、第二韌體以及控制器。資料磁區儲存有使用者資料。第一映射表用以管理對應資料磁區之存取位置。隱藏磁區儲存有至少一磁碟映像檔。第二映射表用以管理對應隱藏磁區之存取位置。當控制器中之啟動程式無法載入第一韌體時,啟動程式係載入第二韌體,由第二韌體啟動隱藏磁區,並且根據隱藏磁區的至少磁碟映像檔更新第一韌體。
100,200:電腦系統
110,210:固態硬碟系統
120,220:主機系統
102,202:資料磁區
104,204:隱藏磁區
106,203,206:映射表
109,205,207:韌體
108,208:控制器
500:方法
S502~S510:步驟
圖1係本發明實施例之電腦系統的示意圖。
圖2~4係圖1之固態硬碟系統自動更新韌體的示意圖。
圖5係韌體更新程式選擇磁碟映像檔對固態硬碟系統更新韌體的方法流程圖。
圖6係本發明另一實施例之電腦系統的示意圖。
圖7~9係圖6之固態硬碟系統自動更新第一韌體的示意圖。
圖示的架構、元件數量、層數、位置分佈、比例等僅為舉例,以助
說明及理解實施例,而非用以限制實施例的樣態與範圍。本文中若有提及第一、第二等序數,僅為用以區隔相異元件,而非限制先後或重要性。
本公開通篇說明書與權利要求中會使用某些詞彙來指稱特定元件。本領域技術人員應理解,製造商可能會以不同的名稱來指稱相同的元件。本文並不意在區分那些功能相同但名稱不同的元件。在說明書與權利要求書中,「具有」與「包括」等詞為開放式詞語,因此其應被解釋為「包括但不限定為…」之意。
圖1係本發明實施例之電腦系統100的示意圖。電腦系統100包含固態硬碟系統110以及主機系統120。固態硬碟系統110包含資料磁區102、隱藏磁區104、映射表106、控制器108以及韌體109。資料磁區102儲存有使用者資料。隱藏磁區104儲存有磁碟映像檔(binary disc file)。映射表106可用以管理資料磁區102及隱藏磁區104,其係提供儲存邏輯位址(Logical address)至實體位址(Physical address)之間的轉換,其中此邏輯位址係供主機系統120使用,而實體位址則包含了資料磁區102及隱藏磁區104中的存取位址,透過此映射表106,固態硬碟系統110內所儲存的資料可以有效地被存取。主機系統120包含開機管理系統,例如,基本輸入輸出系統(Basic Input Output System,BIOS)或統一可延伸韌體介面(Unified Extensible Firmware Interface,UEFI)。
圖2至圖4係圖1之固態硬碟系統110之自動更新韌體109的示意圖。請參考圖2。在本實施例中,使用者可在資料磁區102安裝作業系統,例如Windows或Mac OS。而隱藏磁區104則可於出廠前即安裝簡易作業系統,例如Linux,以及磁碟映像檔,可用以更新韌體109。在正常的運作下,以Windows
作業系統為例,電腦系統100開機時,控制器108的啟動程式會載入韌體109,在固態硬碟系統110初始化時,韌體109會重建映射表106,並且開機管理系統(BIOS或UEFI)會透過映射表106讀取資料磁區102中的啟動磁區(Master Boot Record,MBR),主機系統120會透過啟動磁區載入Windows,值得一提的是,本實施例在正常運作的情形下,隱藏磁區104將無法被主機系統120進行任何存取之作動。
請參考圖3。電腦系統100開機時,當控制器108的啟動程式載入韌體109後若發生停用邏輯(firmware assert)的或防寫入保護(write protection)等錯誤導致無法進入Windows,此時電腦系統100將會嘗試進行重新啟動之作動,此時若在一定時間內控制器108的啟動程式載入韌體109時並連續發生錯誤,而導致連續重新啟動的情況時(例如5分鐘內重啟3次),控制器108將會判斷進行觸發啟動隱藏磁區104的Linux作業系統。接著,當電腦系統100重啟後,主機系統120要讀取啟動磁區時,韌體109即透過映射表106使主機系統120讀取隱藏磁區104的啟動磁區,如此主機系統120即可載入隱藏磁區104的Linux。
請參考圖4。隱藏磁區104還儲存有包含更新韌體的磁碟映像檔,以及韌體更新程式。隱藏磁區104啟動後,韌體更新程式可自動在Linux的環境下執行,並執行更新韌體的磁碟映像檔來對固態硬碟系統110更新韌體109。在韌體109更新完成後,Linux作業系統可自動重啟電腦系統100,控制器108的啟動程式會載入更新後的韌體109,此時韌體109會重建映射表106,並且開機管理系統會透過映射表106讀取資料磁區102中的啟動磁區,主機系統120會透過啟動磁區載入Windows,而讓主機系統120恢復正常的運作。透過上述的方法即可簡化韌體修復流程,解決因韌體109載入時發生錯誤而造成無法正常開機的情
形。
圖5係韌體更新程式選擇磁碟映像檔對固態硬碟系統110更新韌體109的方法500流程圖。在本實施例中,隱藏磁區104可儲存四種版本的映像檔:原始版映像檔,其內包含固態硬碟系統110出廠時所使用的韌體;穩定版映像檔,其內包含固態硬碟系統110出廠前最新之穩定版韌體;測試版映像檔,其內包含固態硬碟系統110出廠前最新測試版韌體;及除錯版映像檔,其內包含除錯版韌體,除錯版韌體用以產生固態硬碟系統110的除錯訊息,可提供給固態硬碟系統110的製造商做除錯訊息分析。在特殊情況下,若以原始版映像檔更新韌體109仍無法解決韌體109發生錯誤的情況,電腦系統100會再次重啟,控制器108會記錄重啟次數,韌體更新程式可根據一定時間內(例如5分鐘內)的重啟次數來選擇其他的映像檔,如方法500所述。詳細而言,方法500包含以下步驟:
S502:判斷電腦系統100的重新啟動次數;
S504:重新啟動次數是否為1次?若是,執行步驟S505;若否,執行步驟S506;
S505:選擇原始版映像檔來更新韌體109;結束更新流程。
S506:重新啟動次數是否為2次?若是,執行步驟S507;若否,執行步驟S508;
S507:選擇穩定版映像檔來更新韌體109;結束更新流程。
S508:重新啟動次數是否為3次?若是,執行步驟S507;若否,執行步驟S510;
S509:選擇測試版映像檔來更新韌體109;結束更新流程。
S510:選擇除錯版映像檔來更新韌體109;結束更新流程。
提供多個版本的映像檔可增加解決韌體發生錯誤的機率,因為即使最終韌體的錯誤仍無法解決,除錯版韌體可產生固態硬碟系統110的除錯訊息給製造商做分析,作為以日後升級韌體之用。
圖6係本發明另一實施例之電腦系統200的示意圖。電腦系統200包含固態硬碟系統210以及主機系統220。固態硬碟系統210包含資料磁區202、第一映射表203、第一韌體205、隱藏磁區204、第二映射表206、第二韌體207以及控制器208。資料磁區202儲存有使用者資料。第一映射表203用以管理對應資料磁區202之存取位置。隱藏磁區204儲存有磁碟映像檔。第二映射表206用以管理對應隱藏磁區204之存取位置。第一映射表203及第二映射表206提供儲存邏輯位址(Logical address)至實體位址(Physical address)之間的轉換,其中此邏輯位址係供主機系統220使用,而第一映射表203的實體位址則包含了資料磁區202的存取位址,第二映射表206的實體位址則包含了隱藏磁區204中的存取位址。透過第一映射表203及第二映射表206,固態硬碟系統210內所儲存的資料可以有效地被存取。主機系統220包含開機管理系統,例如,基本輸入輸出系統(Basic Input Output System,BIOS)或統一可延伸韌體介面(Unified Extensible Firmware Interface,UEFI)。
圖7至圖9係圖6之固態硬碟系統210自動更新第一韌體205的示意圖。請參考圖7。使用者可在資料磁區202安裝作業系統,例如Windows或Mac OS。而隱藏磁區204則可於出廠前即安裝簡易作業系統,例如Linux,以及磁碟映像檔可用來更新第一韌體205。以Windows作業系統為例,一般在電腦系統200開機時,控制器208的啟動程式會載入第一韌體205,第一韌體205會重建第一映射表203,並且開機管理系統(BIOS或UEFI)會透過第一映射表203讀取資
料磁區202中的啟動磁區(Master Boot Record,MBR),主機系統220會透過啟動磁區載入Windows。為防止隱藏磁區204遭到修改,主機系統220在此時無法存取隱藏磁區204。
請參考圖8。電腦系統200開機時,當控制器208的啟動程式無法載入第一韌體205時(例如因第一韌體205毀損),會開機後導致無法進入Windows。在本實施例中,因為第一韌體205毀損將導致第一映射表203無法重建,也將使主機系統220無法存取資料磁區202,這時電腦系統200將會重新啟動。同樣情況也適用於當控制器208的啟動程式載入第一韌體205後發生停用邏輯(firmware assert)的或防寫入保護(write protection)錯誤導致無法進入Windows,這時電腦系統200也將會重新啟動。若在一定時間內控制器208的啟動程式無法載入第一韌體205,或是載入第一韌體205後發生錯誤而導致連續重新啟動(例如5分鐘內重啟3次),控制器208會觸發啟動隱藏磁區204的Linux作業系統。接著,當電腦系統200重啟後,主機系統220讀取啟動磁區時,控制器208的啟動程式會載入第二韌體207。第二韌體207可透過第二映射表206使主機系統220讀取隱藏磁區204的啟動磁區,如此主機系統220即可載入隱藏磁區204的Linux。
請參考圖9。隱藏磁區204還儲存有包含更新韌體的磁碟映像檔以及韌體更新程式。隱藏磁區204啟動後,Linux中的韌體更新程式將自動執行更新韌體的磁碟映像檔,以對固態硬碟系統210更新第一韌體205。在第一韌體205更新完成後,Linux會重啟電腦系統200,控制器208的啟動程式會載入更新後的第一韌體205,再由第一韌體205重建第一映射表203,開機管理系統可透過第一映射表203讀取資料磁區202中的啟動磁區,主機系統220即可透過啟動磁
區載入Windows。上述方法即可簡化韌體修復流程,解決因第一韌體205毀損而造成無法正常開機的情形。
隱藏磁區204可儲存四種版本的映像檔:原始版映像檔,包含固態硬碟系統210出廠時所使用的韌體;穩定版映像檔,包含固態硬碟系統210出廠前最新之穩定版韌體;測試版映像檔,包含固態硬碟系統210出廠前最新測試版韌體;及除錯版映像檔,包含除錯版韌體,除錯版韌體用以產生固態硬碟系統210的除錯訊息,可以提供給固態硬碟系統210的製造商做除錯訊息分析。韌體更新程式選擇磁碟映像檔對固態硬碟系統210更新第一韌體205的方法與方法500相同,在此不贅述。
特別要說明的是,第一韌體205及第二韌體207存放於固態硬碟中之作法。一般而言,固態硬碟製造商可使用固態硬碟中的通道(例如,Channel 0及Channel 1)的前四個區塊(例如,Block 0~Block 3)來存放韌體及其備份。啟動程式預設會將Channel 0的Block 0中存放的韌體載入,若是韌體損毀無法正確載入,則啟動程式會選取Channel 0的Block 1中存放的韌體載入,若仍異常損毀,則依此類推選取下一個區塊。若Channel 0所有區塊中的韌體及其備份皆無法使用,則往下一個通道Channel 1選取,依此類推。而在本實施例中,各通道中的最後一個用來存放韌體的區塊可存放第二韌體207。當各通道前面區塊儲存的第一韌體205都無法被啟動程式載入時,啟動程式則會載入第二韌體207。實施例以此方式來實現當第一韌體205損毀時,開啟第二韌體207以管理隱藏磁區204,進而更新毀損的第一韌體205。
綜上所述,本發明實施例提供了一種固態硬碟方案是不用透過主作
業系統或其它外接裝置來全程自動化更新韌體,以解決當使用者使用固態硬碟作為系統碟且韌體需要更新時,容易出現系統與更新程式不相容,系統無法正常開啟及執行更新程式,使用者欲使用開機碟更新韌體但無外接孔,或使用者不會操作等問題。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200:電腦系統
210:固態硬碟系統
220:主機系統
202:資料磁區
204:隱藏磁區
203,206:映射表
205,207:韌體
208:控制器
Claims (4)
- 一種固態硬碟系統,包含:一資料磁區,儲存有使用者資料;一第一映射表,用以管理對應該資料磁區之存取位置;一第一韌體;一隱藏磁區,儲存有至少一磁碟映像檔;一第二映射表,用以管理對應該隱藏磁區之存取位置;一第二韌體;及一控制器;其中:當該控制器中之一啟動程式無法載入(load)該第一韌體時,該啟動程式係載入該第二韌體,由該第二韌體啟動該隱藏磁區,並且根據該隱藏磁區的該至少一磁碟映像檔更新該第一韌體。
- 如請求項1所述之固態硬碟系統,其中該隱藏磁區係包含一小型作業系統以存放該至少一磁碟映像檔。
- 如請求項2所述之固態硬碟系統,其中當該第二韌體啟動該隱藏磁區時,該小型作業系統係執行該至少一磁碟映像檔以更新該第一韌體。
- 如請求項1所述之固態硬碟系統,其中該至少一磁碟映像檔包含:一原始版映像檔,包含該固態硬碟系統出廠時所使用的一韌體; 一穩定版映像檔,包含該固態硬碟系統出廠前最新之一穩定版韌體;一測試版映像檔,包含該固態硬碟系統出廠前最新之一測試版韌體;及一除錯版映像檔,包含一除錯版韌體,該除錯版韌體用以產生該固態硬碟系統的一除錯訊息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111117957A TWI817502B (zh) | 2022-05-13 | 2022-05-13 | 固態硬碟系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111117957A TWI817502B (zh) | 2022-05-13 | 2022-05-13 | 固態硬碟系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI817502B true TWI817502B (zh) | 2023-10-01 |
TW202344990A TW202344990A (zh) | 2023-11-16 |
Family
ID=89720326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111117957A TWI817502B (zh) | 2022-05-13 | 2022-05-13 | 固態硬碟系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI817502B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI381274B (zh) * | 2008-07-10 | 2013-01-01 | Phison Electronics Corp | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 |
CN105740094A (zh) * | 2014-12-26 | 2016-07-06 | 京瓷办公信息系统株式会社 | 电子设备和固件修复方法 |
US20160293274A1 (en) * | 2011-11-14 | 2016-10-06 | Seagate Technology Llc | Storage Device Firmware and Manufacturing Software |
CN111597066A (zh) * | 2020-05-14 | 2020-08-28 | 深圳忆联信息系统有限公司 | Ssd修复方法、装置、计算机设备及存储介质 |
TWI715926B (zh) * | 2018-02-08 | 2021-01-11 | 美商美光科技公司 | 在一儲存備份記憶體封裝中之韌體更新 |
TW202107277A (zh) * | 2019-08-09 | 2021-02-16 | 日商鎧俠股份有限公司 | 儲存裝置 |
-
2022
- 2022-05-13 TW TW111117957A patent/TWI817502B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI381274B (zh) * | 2008-07-10 | 2013-01-01 | Phison Electronics Corp | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 |
US20160293274A1 (en) * | 2011-11-14 | 2016-10-06 | Seagate Technology Llc | Storage Device Firmware and Manufacturing Software |
CN105740094A (zh) * | 2014-12-26 | 2016-07-06 | 京瓷办公信息系统株式会社 | 电子设备和固件修复方法 |
TWI715926B (zh) * | 2018-02-08 | 2021-01-11 | 美商美光科技公司 | 在一儲存備份記憶體封裝中之韌體更新 |
TW202107277A (zh) * | 2019-08-09 | 2021-02-16 | 日商鎧俠股份有限公司 | 儲存裝置 |
CN111597066A (zh) * | 2020-05-14 | 2020-08-28 | 深圳忆联信息系统有限公司 | Ssd修复方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202344990A (zh) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5909264B2 (ja) | セキュア・リカバリ装置及び方法 | |
US7340638B2 (en) | Operating system update and boot failure recovery | |
US9424022B2 (en) | Method for updating firmware of an electronic device within a computer | |
US7743224B2 (en) | Method and apparatus for virtual load regions in storage system controllers | |
US20120079474A1 (en) | Reimaging a multi-node storage system | |
JP2006527423A (ja) | コンピュータオペレーションシステムの修復方法 | |
TWI404054B (zh) | 處理微碼程式更新錯誤的裝置及其方法 | |
US20090217024A1 (en) | Recovering from Hard Disk Errors that Corrupt One or More Critical System Boot Files | |
TW201715387A (zh) | 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法 | |
US20100064127A1 (en) | Method for updating basic input/output system and method for repairing thereof | |
US6665778B1 (en) | System and method for storage of device performance data | |
JP2004520651A (ja) | コンピュータオペレーティングシステム保護方法及び装置 | |
US20040088697A1 (en) | Software loading system and method | |
US20060224874A1 (en) | Method for updating system management basic input output system (SMBIOS) data | |
US9619340B1 (en) | Disaster recovery on dissimilar hardware | |
CN113934471A (zh) | 计算机系统的基板管理控制器和启动方法 | |
US20090013167A1 (en) | Computer device, method for booting the same, and booting module for the same | |
US6745324B1 (en) | Dynamic firmware image creation from an object file stored in a reserved area of a data storage device of a redundant array of independent disks (RAID) system | |
TWI817502B (zh) | 固態硬碟系統 | |
KR100853941B1 (ko) | 멀티미디어 저장장치와 데이터 복구방법 | |
CA2746602C (en) | Partial fault tolerance in an embedded appliance | |
US20190138407A1 (en) | Systems and methods of deploying an operating system from a resilient virtual drive | |
US20120151257A1 (en) | Hardware turnkey mobiltity | |
CN117093239A (zh) | 固态硬盘系统 | |
JP6911591B2 (ja) | 情報処理装置、制御装置および情報処理装置の制御方法 |