基於固態硬碟的系統啟動方法及固態硬碟的製作方法
2023-07-14 21:40:26
專利名稱:基於固態硬碟的系統啟動方法及固態硬碟的製作方法
技術領域:
本發明涉及計算機技術領域,尤其涉及一種基於固態硬碟的系統啟動方法及固態硬碟。
背景技術:
系統啟動速度是衡量系統性能的一個重要指標參數,啟動速度的提升,可以全面提高用戶體驗。系統的啟動過程,就是不斷從硬碟讀取數據到內存運行,如果提高數據讀取的速率,那麼就會節省系統啟動時間。在傳統機械硬碟上,數據的讀取速率受限於機械磁頭,數據通過磁頭的旋轉獲取。如果啟動數據隨機分布在磁碟上,磁頭就會隨機轉動,嚴重影響系統的啟動速率,如果把啟動數據順序存儲在磁碟上,磁頭就會按照一定順序轉動,這樣可以大大提升數據讀取速度。但是,此方法在固態硬碟上使用,基本不能改善系統啟動速度。原因如下固態硬碟沒有機械磁頭裝置,而是通過多通道並行從存儲介質上獲取數據,緩存到DRAM,然後通過SATA或其他接口傳輸到主機,可參見圖1所示的固態硬碟內部結構,其數據讀取原理與機械硬碟數據讀取原理完全不同。因此,順序存儲啟動數據的方法,不適用固態硬碟,固態硬碟的數據讀取速率有待提高。綜上可知,現有的固態硬碟的數據讀取方法,在實際使用上顯然存在不便與缺陷,所以有必要加以改進。
發明內容
針對上述的缺陷,本發明的目的在於提供一種基於固態硬碟的系統啟動方法及固態硬碟,其可以大大提高固態硬碟數據的讀取速率,減少系統的啟動時間。為了實現上述目的,本發明提供一種基於固態硬碟的系統啟動方法,所述系統包括主機和固態硬碟,所述固態硬碟具有用於儲存數據的Flash介質和DRAM緩存,所述Flash介質具有多個通道,所述方法包括如下步驟啟動數據處理步驟在所述系統第一次啟動時,記錄所述主機從所述固態硬碟讀取的啟動數據;預讀取步驟在所述系統啟動後,接收預讀取命令,在所述固態硬碟的空閒時間將所述Flash介質內的啟動數據傳送到所述DRAM緩存。根據本發明的基於固態硬碟的系統啟動方法,所述啟動數據處理步驟進一步包括接收啟動數據處理開始指令,開始記錄所述啟動數據的邏輯頁地址。根據本發明的基於固態硬碟的系統啟動方法,所述啟動數據處理步驟進一步包括接收啟動數據處理停止指令,停止記錄所述啟動數據的邏輯頁地址。根據本發明的基於固態硬碟的系統啟動方法,所述啟動數據處理步驟還包括
將所述啟動數據按啟動順序均勻的排列於所述Flash介質的每個通道。根據本發明的基於固態硬碟的系統啟動方法,所述固態硬碟的空閒時間包括所述固態硬碟上電初始化後的空閒時間;以及所述主機從所述DRAM緩存讀取數據到再次從所述DRAM讀取數據的時間。一種固態硬碟,連接於主機構成固態硬碟系統,所述固態硬碟具有用於儲存數據的Flash介質和DRAM緩存,所述Flash介質具有多個通道,其特徵在於,所述固態硬碟包括啟動數據處理模塊,用於在所述系統第一次啟動時,記錄所述主機從所述固態硬碟讀取的啟動數據;預讀取模塊,用於在所述系統啟動後,接收預讀取命令,在所述固態硬碟的空閒時間將所述Flash介質內的啟動數據傳送到所述DRAM緩存。根據本發明的固態硬碟,所述啟動數據處理模塊包括啟動數據記錄子模塊,用於接收啟動數據處理開始指令,開始記錄所述啟動數據的邏輯頁地址。根據本發明的固態硬碟,所述啟動數據記錄子模塊還用於接收啟動數據處理停止指令,停止記錄所述啟動數據的邏輯頁地址。根據本發明的固態硬碟,所述啟動數據處理模塊還包括排列子模塊,用於將所述啟動數據按啟動順序均勻的排列於所述Flash介質的每個通道。根據本發明的固態硬碟,所述固態硬碟的空閒時間包括所述固態硬碟上電初始化後的空閒時間;以及所述主機從所述DRAM緩存讀取數據到再次從所述DRAM讀取數據的時間。本發明通過在固態硬碟系統第一次啟動時記錄需要啟動的硬碟數據,系統在下一次啟動時可接收預讀取命令,在固態硬碟的空閒時間將其Flash介質內的啟動數據傳送到DRAM緩存。藉此充分利用固態硬碟的空閒時間提高數據讀取速率。更好的,固態硬碟還可以預先將啟動數據均勻排列於其Flash介質的各個通道上,藉此進一步提高預讀取的效率,減少系統啟動時間。
圖1是現有技術的固態硬碟系統的結構示意圖;圖2是本發明的基於固態硬碟系統的一實施例的結構示意圖;圖3是本發明一實施例的啟動數據處理模塊的結構示意圖;圖4A是現有技術的固態硬碟的工作狀態示意圖;圖4B是本發明的固態硬碟的工作狀態示意圖;圖5A是現有技術的固態硬碟Flash通道示意圖;圖5B是本發明的固態硬碟的Flash通道示意圖;圖6是本發明一實施例的系統啟動方法流程圖;圖7是本發明一實施例的啟動數據處理流程圖;圖8是本發明一實施例的預讀取的流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。參見圖2,本發明提供了一種固態硬碟10,其與主機20連接構成固態硬碟系統100。固態硬碟10具有用於儲存數據的Flash介質11和DRAM緩存12,且Flash介質具有多個用於傳送數據的通道。該實施例中,固態硬碟10還包括啟動數據處理模塊13,用於在系統100第一次啟動時,記錄主機20從所述固態硬碟10讀取的啟動數據。結合圖3,該啟動數據處理模塊13包括一啟動數據記錄子模塊131,當系統100上電啟動,固態硬碟10開始初始化,初始化結束後,由於BIOS還沒有掃描到固態硬碟10,其處於空閒狀態,如圖4A所示,當系統100啟動進入硬碟引導階段,主機20開始從固態硬碟10讀取啟動數據,同時,記錄子模塊131接收啟動數據處理開始指令,並開始記錄啟動數據的LPA (Logical Page Address,邏輯頁地址),當主機20讀取完啟動數據時,記錄子模塊131接收啟動數據處理停止指令,並停止記錄啟動數據的LPA,優選的,啟動數據的LPA與Flash介質11上的物理地址——對應。預讀取模塊14,用於在系統100啟動後,接收來自主機10的預讀取命令,並在所述固態硬碟10的空閒時間將Flash介質11內的啟動數據傳送到DRAM緩存12。前文已說明,系統100啟動後,主機10開始從硬碟20的DRAM緩存12讀取數據,且固態硬碟10在初始化完成後有段空閒時間,此時預讀取模塊14接收預讀取命令,按照系統100啟動數據的先後順序,即順序查詢被記錄邏輯頁地址LPA,提前從Flash介質11讀取部分數據到DRAM緩存12。結合圖4B,更進一步的,主機20從DRAM緩存12讀取數據到再次從DRAM緩存12讀取數據的時間也是固態硬碟10的空閒時間,這一段時間內,預讀取模塊14循環執行上述操作,即將從Flash介質11讀取部分啟動數據到DRAM緩存12。系統100啟動時,主機20從DRAM緩存讀取啟動數據,預讀取模塊14循環將Flash介質11上儲存的啟動數據讀取到DRAM緩存12,藉此提高數據讀取速率,減少系統啟動時間。更好的是,本發明的實施例中,啟動數據處理模塊13還包括一排列子模塊132,用於將所述啟動數據按啟動順序均勻的排列於所述Flash介質11的每個通道內。需要說明的是現有技術的Flash介質的通道數據排列無規律,如圖5A所示,這樣會大大影響預讀取速度。本發明將啟動數據按啟動順序儘可能的均勻排列於Flash介質11的各個通道,進而提高預讀取的效率,藉此進一步減少系統的啟動時間。圖6是本發明一實施例的基於固態硬碟的系統啟動方法流程圖,其通過如圖2或圖3所示的系統100實現,該方法包括步驟S601,系統100第一次啟動時,啟動數據處理模塊13記錄主機20從固態硬碟10讀取的啟動數據。系統100的啟動數據儲存於固態硬碟10的Flash介質11內,且每個數據具有一個LPA,其對應於Flash介質11的物理地址,系統100啟動時,記錄子模塊131也同時工作開始記錄啟動數據的LPA,直至啟動數據讀取結束。步驟S602,系統100啟動後,預讀取模塊14接收預讀取命令,並在固態硬碟10的空閒時間將Flash介質11內的啟動數據傳送到DRAM緩存12。本發明的實施例中,固態硬碟10的空閒時間包括固態硬碟10上電初始化後的空閒時間,以及主機20從DRAM緩存12讀取數據到主機20再次從DRAM緩存12讀取數據的時間。
5
圖7是本發明一實施例的啟動數據處理的流程圖,其包括步驟S701,系統100上電啟動,固態硬碟10開始初始化。當固態硬碟10完成初始化後,由於BIOS還沒有掃描到固態硬碟10,其處於空閒狀態。步驟S702,系統100啟動進入硬碟引導階段,開始準備訪問固態硬碟10。步驟S703,固態硬碟10接收到由主機20發送的啟動數據處理開始指令,記錄子模塊131記錄從此刻起主機20訪問固態硬碟10所需要的啟動數據,也就是記錄固態硬碟10的邏輯頁地址LPA,該邏輯頁地址與Flash介質物理頁地址一一對應。步驟S704,系統100啟動完成,固態硬碟10接收到由主機20發送的啟動數據處理停止指令,記錄子模塊停止記錄邏輯頁地址LPA。步驟S705,排列子模塊132將記錄啟動數據按啟動順序均勻的排列於Flash介質11的每個通道上。圖8是本發明一實施例的預讀取的流程圖,其包括步驟S801,系統100上電啟動,固態硬碟10開始初始化。當固態硬碟10完成初始化後,由於BIOS還沒有掃描到固態硬碟10,其處於空閒狀態。步驟S802,預讀取模塊14接收預讀取指令,將Flash介質11中的啟動數據讀取至DRAM緩存12中。步驟S803,系統100進入硬碟引導階段,主機20從DRAM緩存12中讀取啟動數據。步驟S804,當主機20開始讀取DRAM緩存12的數據時,預讀取模塊14從Flash介質11讀取部分系統啟動數據到DRAM緩存,直至啟動數據讀取完畢。綜上所述,本發明通過在固態硬碟系統第一次啟動時記錄需要啟動的硬碟數據,系統在下一次啟動時可接收預讀取命令,在固態硬碟的空閒時間將其Flash介質內的啟動數據傳送到DRAM緩存。藉此充分利用固態硬碟的空閒時間提高數據讀取速率。更好的,固態硬碟還可以預先將啟動數據均勻排列於其Flash介質的各個通道上,藉此進一步提高預讀取的效率,減少系統啟動時間。當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明所附的權利要求的保護範圍。
權利要求
1.一種基於固態硬碟的系統啟動方法,所述系統包括主機和固態硬碟,所述固態硬碟具有用於儲存數據的Flash介質和DRAM緩存,所述Flash介質具有多個通道,其特徵在於,所述方法包括如下步驟啟動數據處理步驟在所述系統第一次啟動時,記錄所述主機從所述固態硬碟讀取的啟動數據;預讀取步驟在所述系統啟動後,接收預讀取命令,在所述固態硬碟的空閒時間將所述Flash介質內的啟動數據傳送到所述DRAM緩存。
2.根據權利要求1所述的基於固態硬碟的系統啟動方法,其特徵在於,所述啟動數據處理步驟進一步包括接收啟動數據處理開始指令,開始記錄所述啟動數據的邏輯頁地址。
3.根據權利要求2所述的基於固態硬碟的系統啟動方法,其特徵在於,所述啟動數據處理步驟進一步包括接收啟動數據處理停止指令,停止記錄所述啟動數據的邏輯頁地址。
4.根據權利要求1所述的基於固態硬碟的系統啟動方法,其特徵在於,所述啟動數據處理步驟還包括將所述啟動數據按啟動順序均勻的排列於所述Flash介質的每個通道。
5.根據權利要求1所述的基於固態硬碟的系統啟動方法,其特徵在於,所述固態硬碟的空閒時間包括所述固態硬碟上電初始化後的空閒時間;以及所述主機從所述DRAM緩存讀取數據到再次從所述DRAM讀取數據的時間。
6.一種固態硬碟,連接於主機構成固態硬碟系統,所述固態硬碟具有用於儲存數據的Flash介質和DRAM緩存,所述Flash介質具有多個通道,其特徵在於,所述固態硬碟包括啟動數據處理模塊,用於在所述系統第一次啟動時,記錄所述主機從所述固態硬碟讀取的啟動數據;預讀取模塊,用於在所述系統啟動後,接收預讀取命令,在所述固態硬碟的空閒時間將所述Flash介質內的啟動數據傳送到所述DRAM緩存。
7.根據權利要求6所述的固態硬碟,其特徵在於,所述啟動數據處理模塊包括啟動數據記錄子模塊,用於接收啟動數據處理開始指令,開始記錄所述啟動數據的邏輯頁地址。
8.根據權利要求7所述的固態硬碟,其特徵在於,所述啟動數據記錄子模塊還用於接收啟動數據處理停止指令,停止記錄所述啟動數據的邏輯頁地址。
9.根據權利要求6所述的固態硬碟,其特徵在於,所述啟動數據處理模塊還包括排列子模塊,用於將所述啟動數據按啟動順序均勻的排列於所述Flash介質的每個通道。
10.根據權利要求6所述的固態硬碟,其特徵在於,所述固態硬碟的空閒時間包括所述固態硬碟上電初始化後的空閒時間;以及所述主機從所述DRAM緩存讀取數據到再次從所述DRAM讀取數據的時間。
全文摘要
本發明適用於計算機技術領域,提供了一種基於固態硬碟的系統啟動方法,所述系統包括主機和固態硬碟,所述固態硬碟具有用於儲存數據的Flash介質和DRAM緩存,所述Flash介質具有多個通道,所述方法包括如下步驟啟動數據處理步驟在所述系統第一次啟動時,記錄所述主機從所述固態硬碟讀取的啟動數據;預讀取步驟在所述系統啟動後,接收預讀取命令,在所述固態硬碟的空閒時間將所述Flash介質內的啟動數據傳送到所述DRAM緩存。本發明還相應的提供一種固態硬碟。藉此,本發明可以大大提高固態硬碟數據的讀取速率,從而減少系統的啟動時間。
文檔編號G06F9/445GK102591686SQ20111045426
公開日2012年7月18日 申請日期2011年12月30日 優先權日2011年12月30日
發明者吳仕雄, 廖東方, 張劉松, 曹少坤 申請人:記憶科技(深圳)有限公司