專利名稱:一種固態(tài)硬盤的結構及其加速初始化的方法
技術領域:
本發(fā)明涉及固態(tài)硬盤及其初始化領域,尤其是一種固態(tài)硬盤的結構及其加速初始^ft的方法。
背景技術:
固態(tài)硬盤初始化是指固態(tài)硬盤第一次上電后所必須執(zhí)行的開機過程,之后固態(tài)硬盤才能被正常使用,執(zhí)行數據讀寫操作。即固態(tài)硬盤在進行開機上電或復位操作后,就需要進行一輪初始化過程,之后才能正常讀寫固態(tài)硬盤。由于固態(tài)硬盤多采用閃存存儲器做為其用戶數據存儲的介質,因此需要描述數據塊來對其存儲的原始數據塊進行描述。
如圖l所示,現有固態(tài)硬盤包括總線、內存、軟件代碼存儲器、處理器、
ATA/SATA控制器、閃存控制器和閃存,其結構是所述總線并列可逆連接內存、軟件代碼存儲器和處理器;所述總線并列可逆連接ATA/SATA控制器和閃存控制器,閃存控制器通過輸入/輸出串口可逆連接閃存。其在操作時需要從閃存存儲器的第一個塊地址讀取并判斷所讀取的塊是否為描述數據塊,如果是則存入內存,如果不是則為原始數據塊不存入內存,然后繼續(xù)下一個(n+l)塊的讀取和判斷,依次反復以上工作,直到讀取該閃存存儲器中最后一個描述數據塊的地址為止。如果一個閃存儲儲器有1024個塊,其中只有兩塊是數據描述塊,且有一塊描述數據塊的地址為1024塊,這需要執(zhí)行以上步驟1024次。
如圖2所示,其初始化流程為
步驟S201:開機上電或復位;
步驟S202:處理器從軟件代碼儲存器讀取代碼;
步驟S203:執(zhí)行軟件代碼驅動閃存控制器,從第一塊數據開始讀?。?br>
步驟S204:通過閃存控制器,逐塊讀取閃存存儲器上的數據;
步驟S205:判定所讀取的數據是否為描述數據塊,如不是則為原始數據塊不存入內存并進行下一個塊的讀取和判斷,如是則存入內存; 步驟S206:將此數據塊存入內存;
步驟S207:存入內存中的數據塊是否為最后一塊描述數據,如不是則為 原始數據塊不存入內存并進行下一個塊的讀取和判斷,如是則存入內存;
步驟S208:將此數據塊存入內存;
步驟S209:初始化結束。
由于,在每次存儲描述數據塊之前,位于固態(tài)硬盤中的軟件都需要計算出 一個最佳存儲塊地址范圍,用于存儲描述數據塊,因此每次存儲的描述數據塊 的位置都是隨機的。這導致每次固態(tài)硬盤初始化的時候,都需要讀取整個閃存 存儲器的全部塊數據,這些數據既包含描述數據塊也包括原始數據塊。只有將 全部的描述數據塊存入內存中才能完成固態(tài)硬盤的初始化過程。
這使得其固態(tài)硬盤初始化速度慢、效率低,增加了用戶等待的時間,降低 了計算機性能,如果其固態(tài)硬盤存儲容量巨大,耗時更多,可能會導致整個計 算機系統(tǒng)啟動過于緩慢。
同時,由于閃存存儲器的存儲介質的特性及其有限的壽命,每次對固態(tài)硬 盤進行寫操作時都需要進行塊地址轉換并更新寫入和搽除塊的狀態(tài)標志,以實 現延長其壽命并提高寫效率,其塊地址轉換及狀態(tài)等數據均屬于描述數據塊中 的數據,這些數據也要原始數據塊存入于閃存存儲器。而描述數據塊不能存儲 于閃存的固定的地址塊,這樣會使該地址塊加速老化而失效,導致整個固態(tài)硬 盤無法使用,極大地降低了固態(tài)硬盤的使用壽命,在一定程度上提高了其綜合 使用成本,不符合人們需求。
發(fā)明內容
本發(fā)明的目的是提供一種固態(tài)硬盤的結構及其加速初始化的方法,以克服 現有技術固態(tài)硬盤初始化速度慢、效率低,及使用壽命短的缺點。
本發(fā)明的目的是通過以下技術方案來實現一種固態(tài)硬盤的結構,包括總線、內存、索引數據存儲器、軟件代碼存儲
器、處理器、ATA/SATA控制器、閃存控制器和閃存,所述總線并列可逆連接 內存、索引數據存儲器、軟件代碼存儲器和處理器,所述的索引數據存儲器是 用以保存固態(tài)硬盤加速初始化時所必須的數據,索引數據存儲器的初始化數據 可以在每次描述數據塊位置變更時讀取數據、替換數據和保存數據;所述總線 并列可逆連接ATA/SATA控制器和閃存控制器,閃存控制器通過輸X/輸出端口 可逆連接閃存。
所述的索引數據存儲器可以是一獨立于其它目的的專用索引數據儲存器, 也可以與用于存儲軟件代碼等其它目的存儲器共享同一存儲器空間。
一種固態(tài)硬盤加速初始化的方法,通過固態(tài)硬盤上的索引數據存儲器,將 一個或多個描述數據塊原始位置的數據保存變化后的初始化數據存儲到索引數 據存儲器中,在處理器從軟件代碼儲存器讀取代碼時,通過索引數據存儲器中 的初始化數據中存儲的數據,使得處理器直接獲得每個描述數據塊位于閃存存 儲器的存儲地址,最后根據從索引數據存儲器中獲得的每個描述數據塊的地址, 通過閃存控制器直接將閃存存儲器上的數據塊存入內存,從而完成了固態(tài)硬盤 的力口速初始^f匕。
其初始4匕;充禾呈為
步驟S401:開機上電或復位。
步驟S402:處理器從軟件代碼儲存器讀取代碼。
步驟S403:執(zhí)行軟件代碼驅動閃存控制器。
步驟S404:通過索引數據存儲器,獲得各個描述數據塊位于閃存存儲器的 存儲地址。
步驟S405:根據獲得的地址,通過閃存控制器直接將閃存存儲器上的描述 數據塊存入內存。步驟S406:初始化結束。
所述的索引數據存儲器在初始化數據讀取與保存的方式是向閃存寫入某 個描述數據塊的數據后,索引數據存儲器記錄該描述數據塊被寫在閃存中的位 置,當描述數據塊因需要進行新的改變并存儲在新的閃存的位置上時,需要從 索引數據存儲器上重新讀取初始化數據,獲得該^皮變更的描述數據塊原先存在 于閃存的位置,將原有的位于初始化數據之中該描述數據塊位于閃存的位置信 息替換成新的現有的寫入位置,描述數據塊^H務改重新存入閃存后,新變更的 位置反應并存儲于索引數據存儲器的初始化數據中。
所述的在從索引數據存儲器中讀取初始化數據,獲得該被變更的描述數據 塊原先存在于閃存的位置之后,可從閃存刪除該描述數據塊原始位置的數據。
其流程為
步驟S501:向閃存寫入某一個或多個描述數據塊的數據。 步驟S502:記錄該描述數據塊凈皮寫在閃存中的位置。
步驟S503:從索引數據存儲器中讀取初始化數據,查找寫入的描述數據塊 的原始位置。
步驟S504:從閃存刪除該描述數據塊原始位置的數據,該步驟為非必須步驟。
步驟S505:將描述數據塊的原始位置替換成新寫入閃存的描述數據塊的寫 入位置。
步驟S506:保存變化后的初始化數據到索引數據存儲器。 步驟S507:結束。
本發(fā)明所述的固態(tài)硬盤的結構及其加速初始化的方法的有益效果為大幅度提高固態(tài)硬盤的初始化速度,減少用戶等待時間;通過索引數據存儲器,使 得每一次描述數據塊被修改重新存入閃存后,新變更的位置均反應在存儲于索 引數據存儲器的初始化數據中。極大地提高了固態(tài)硬盤初始化的速度并釋放更 多的處理器資源,從而提高寫效率,很大程度上抑制了地址塊的加速老化,避 免其失效,延長了固態(tài)硬盤的使用壽命,滿;LvU門使用需求,有利于產品的推 廣。
圖l是現有技術中固態(tài)硬盤的結構示意圖2是現有技術中固態(tài)硬盤初始化的一實施例的流程圖3是本發(fā)明實施例所述的固態(tài)硬盤的結構示意圖4是本發(fā)明實施例所述的固態(tài)硬盤加速初始化的流程示意程圖6是本發(fā)明實施例所述的固態(tài)硬盤加速初始化的第一實施例的流程圖; 圖7是本發(fā)明實施例所述的固態(tài)硬盤加速初始化的第二實施例的流程圖。 圖中
1、總線;2、內存;3、索引數據存儲器;4、軟件代碼存儲器;5、處理器; 6、 ATA/SATA控制器;7、閃存控制器;8、閃存;9、輸入/輸出端口。
具體實施例方式
如圖3所示,本發(fā)明實施例所述的固態(tài)硬盤的結構,包括總線l、內存2、 索引數據存儲器3、軟件代碼存儲器4、處理器5、 ATA/SATA控制器6、閃存 控制器7和閃存8,所述總線1并列可逆連接內存2、索引數據存儲器3、軟件
8代碼存儲器4和處理器5,所述的索引數據存儲器3是用以保存固態(tài)硬盤加速初始化時所必須的數據,處理器5讀取并執(zhí)行軟件代碼存儲器4中的代碼,索引數據存儲器3的初始化數據可以在每次描述數據塊位置變更時讀取數據、替換數據和保存數據,索引數據存儲器3用于協(xié)助處理器5中運行的軟件(驅動程序)來完成固態(tài)硬盤初始化的操作,提高固態(tài)硬盤初始化的速度并釋放更多的處理器5資源;所述總線1并列可逆連接ATA/SATA控制器6和閃存控制器7,閃存控制器7通過輸入/輸出端口 9可逆連接閃存8。
所述的索引數據存儲器3可以是一獨立的專用索引^t據儲存器3,也可以與用于軟件代碼存儲器4等共享同一存儲器空間。
所述的內存2又叫易失性存儲器,使用時讀寫速度較快,掉電后其內存儲的數據等即刻消失。
所述的索引數據存儲器3是用以保存固態(tài)硬盤加速初始化時所必須的數據。
所述的軟件代碼存儲器4就是存儲指令的地方。
所述的處理器5也稱中央處理器,是專門負責執(zhí)行軟件指令的硬件單元,其工作就是從軟件代碼存儲器4中找到指令,并執(zhí)行每個^喿作,完成這些工作后就通知軟件代碼存儲器4送來下一條指令。
所述的ATA/SATA控制器6連接固態(tài)硬盤及計算機接口的硬件模塊計算機通過其硬盤接口通過該模塊讀取固態(tài)硬盤中相應的數據。
所述的閃存控制器7由運行于處理器中的軟件所控制的獨立于處理器5的專用集成電路所實現讀取閃存存儲器的硬件模塊。
所述的閃存8又叫非易失性存儲器,使用時讀寫速度相對較慢,掉電后其內存儲的數據等能夠持續(xù)保存較長時間。
所述的輸入/輸出端口 9用以連接閃存控制器7和閃存8的可逆串行接口 。所述的描述數據塊包含壞塊表、地址映射/轉換表、擦除次數計數器等 固態(tài)硬盤初始化以及進行讀寫數據時所必須的數據集合, 一般存儲以一塊多塊 數據的形式存儲于固態(tài)硬盤的固態(tài)存儲器上。
所述的固態(tài)硬盤初始化是指固態(tài)硬盤第一次上電后所必須執(zhí)行的開機過 程,之后固態(tài)硬盤才能被正常使用,執(zhí)行數據讀寫才喿作。
如圖4所示,本發(fā)明實施例所述的固態(tài)硬盤加速初始化的方法是,通過固 態(tài)硬盤上的索引數據存儲器3,將一個或多個描述數據塊原始位置的數據保存 變化后的初始化數據存儲到索引數據存儲器3中,在處理器5從軟件代碼儲存 器4讀取代碼時,通過索引數據存儲器3中的初始化數據中存儲的數據,使得 處理器5直接獲得每個描述數據塊位于閃存存儲器的存儲地址,最后根據從索 引數據存儲器3中獲得的每個描述數據塊的地址,通過閃存控制器7直接將閃 存存儲器上的數據塊存入內存2,從而完成了固態(tài)硬盤的加速初始化。
其初始化流程為
步驟S401:開機上電或復位。
步驟S402:處理器5從軟件代碼儲存器4讀取代碼。 步驟S403:執(zhí)行軟件代碼驅動閃存控制器7。
步驟S404:通過索引數據存儲器3,獲得各個描述數據塊位于閃存存儲器 的存儲地址。如果閃存存儲器只有一塊描述數據塊,則直接從索引數據存儲器 3中記錄的該描述數據塊在閃存存儲器中的存儲地址即可;如果閃存存儲器有 多塊描述數據塊,則分別將描述數據塊從索引數據存儲器3中記錄的相應描述 數據塊在閃存存儲器中的存儲地址即可。此外,位于索引數據存儲器3的初始 化數據可以在每次描述數據塊位置變更時讀取數據、替換數據和保存數據,也 可以在第一次上電后一直保存在內存2中,只需要在替換數據后進行保存,以 便提高效率,這樣讀取索引數據存儲器3只需要一次。步驟S405:根據獲得的地址,通過閃存控制器7直接將閃存存儲器上的描 述數據塊存入內存2。如果閃存存儲器只有一塊描述數據塊,則直接將其讀出 并存入內存2中即可;如果閃存存儲器有多塊描述數據塊,則從第一塊開始將 其讀出并存入內存28中,之后讀取第一塊描述數據塊并存入內存2中,依次操 作直到將閃存存儲器中所有的描述數據塊全部讀出并存入內存2中為止。
步驟S406:初始化結束。
如圖5所示,本發(fā)明實施例所述的固態(tài)硬盤加速初始化的方法,所述的索 引數據存儲器3在初始化數據讀取與保存的方式是向閃存8寫入某個描述數 據塊的數據后,索引數據存儲器3記錄該描述數據塊被寫在閃存8中的位置, 當描述數據塊因需要進行新的改變并存儲在新的閃存8的位置上時,需要從索 引數據存儲器3上重新讀取初始化數據,獲得該凈皮變更的描述數據塊原先存在 于閃存8的位置,將原有的位于初始化數據之中該描述數據塊位于閃存8的位 置信息替換成新的現有的寫入位置,描述數據塊被修改重新存入閃存8后,新 變更的位置反應并存儲于索引數據存儲器3的初始化數據中。
所述的在從索引數據存儲器3中讀取初始化數據,獲得該被變更的描述數 據塊原先存在于閃存8的位置之后,可從閃存刪除該描述數據塊原始位置的數 據。
其流程為
步驟S501:向閃存8寫入某一個或多個描述數據塊的數據。
步驟S502:記錄該描述數據塊被寫在閃存8中的位置。
步驟S503:從索引數據存儲器3中讀取初始化數據,查找寫入的描述數據 塊的原始位置;位于索引數據存儲器3的初始化數據可以在每次描述數據塊位 置變更時讀取數據、替換數據和保存數據,也可以在第一次上電后一直保存在 內存中,只需要在替換數據后進行保存,以便提高效率,這樣讀取索引數據存 儲器3只需要一次。步驟S504:從閃存8刪除該描述數據塊原始位置的數據,該步驟為非必須 步驟。
步驟S505:將描述數據塊的原始位置替換成新寫入閃存8的描述數據塊的 寫入位置;將原有的位于初始化數據之中該描述數據塊位于閃存8的位置信息 替換成新的現有的寫入位置,并將其保存回索引數據存儲器3之中,以便下次 初始化時〗吏用。
步驟S506:保存變化后的初始化數據到索引數據存儲器3;驅動閃存控制 器7直接將索引數據存儲器3所述的塊地址的數據讀出并存入內存2中。
步驟S507:結束;索引數據存儲器3的初始化數據保存與讀取完成。
如圖6所示,以閃存存儲器中有兩塊是數據描述塊為例,其初始化的流程
為
步驟S601:開機上電后復位操作。
步驟S602:處理器5從軟件存儲器4中讀取代碼。
步驟S603:執(zhí)行軟件代碼驅動閃存控制器7。
步驟S604:通過索引^t據存儲器3獲得第一塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S605:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。
步驟S606:通過索引數據存儲器3獲得第二塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S607:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。步驟S608:固態(tài)石更盤初始化結束。
如圖7所示,以閃存存儲器中有五塊是數據描述塊為例,其初始化的流程
為
步驟S701:開機上電后復位操作。
步驟S702:處理器5從軟件存儲器4中讀取代碼。
步驟S703:執(zhí)行軟件代碼驅動閃存控制器7。
步驟S704:通過索引數據存儲器3獲得第一塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S705:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。
步驟S706:通過索引數據存儲器3獲得第二塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S707:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。
步驟S708:通過索引數據存儲器3獲得第三塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S709:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。
步驟S710:通過索引數據存儲器3獲得第四塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S711:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。步驟S712:通過索引數據存儲器3獲得第五塊描述數據塊位于閃存存儲器 的存儲地址。
步驟S713:根據獲得的存儲地址通過閃存控制器7直接將閃存存儲器上的 數據塊存入內存2。
步驟S714:固態(tài)硬盤初始化結束。
以上所述實施例,只是本發(fā)明較優(yōu)選的具體實施方式
,對于本技術領域的 專業(yè)人員來說,對本發(fā)明實施例所做出的任何改進或變更都不會超出本發(fā)明所 附權利要求的保護范圍。
權利要求
1、一種固態(tài)硬盤的結構,包括總線、內存、索引數據存儲器、軟件代碼存儲器、處理器、ATA/SATA控制器、閃存控制器和閃存,所述總線并列可逆連接內存、軟件代碼存儲器、處理器、ATA/SATA控制器和閃存控制器,閃存控制器通過輸入/輸出端口可逆連接閃存,其特征在于總線可逆連接索引數據存儲器。
2、 根據權利要求1所述的固態(tài)硬盤的結構,其特征在于索引數據存儲器 的初始化數據在每次描述數據塊位置變更時讀取數據、替換數據和保存數據。
3、 根據權利要求l所述的固態(tài)硬盤的結構,其特征在于索引數據存儲器 是一獨立于其它目的的專用索引數據儲存器。
4、 根據權利要求l所述的固態(tài)硬盤的結構,其特征在于索引數據存儲器 與軟件代碼存儲器共享同一存儲器空間。
5、 一種固態(tài)硬盤加速初始化的方法,其特征在于通過固態(tài)硬盤上的索引 數據存儲器,將一個或多個描述數據塊原始位置的數據保存變化后的初始化數 據存儲到索引數據存儲器中,在處理器從軟件代碼儲存器讀取代碼時,通過索 引數據存儲器中的初始化數據中存儲的數據,使得處理器直接獲得每個描述數 據塊位于閃存存儲器的存儲地址,最后根據從索引數據存儲器中獲得的每個描 述數據塊的地址,通過閃存控制器直接將閃存存儲器上的數據塊存入內存,從 而完成了固態(tài)硬盤的加速初始化。其初始化流程為步驟S401:開機上電或復位。步驟S402:處理器從軟件代碼儲存器讀取代碼。步驟S403:執(zhí)行軟件代碼驅動閃存控制器。步驟S404:通過索引數據存儲器,獲得各個描述數據塊位于閃存存儲器的 存儲地址。步驟S405:根據獲得的地址,通過閃存控制器直接將閃存存儲器上的描述 數據塊存入內存。步驟S406:初始化結束。
6、 根據權利要求5所述的固態(tài)硬盤加速初始化的方法,其特征在于所述 的索引數據存儲器在初始化數據讀取與保存的方式是向閃存寫入某個描述數 據塊的數據后,索引數據存儲器記錄該描述數據塊被寫在閃存中的位置,當描 述數據塊因需要進行新的改變并存儲在新的閃存的位置上時,需要從索引數據 存儲器上重新讀取初始化數據,獲得該被變更的描述數據塊原先存在于閃存的 位置,將原有的位于初始化數據之中該描述數據塊位于閃存的位置信息替換成 新的現有的寫入位置,描述數據塊^皮-f務改重新存入閃存后,新變更的位置反應 并存儲于索引數據存儲器的初始化數據中。
7、 根據權利要求5和6所述的固態(tài)硬盤加速初始化的方法,其特征在于 所述的在從索引數據存儲器中讀取初始化數據,獲得該被變更的描述數據塊原 先存在于閃存的位置之后,從閃存刪除該描述數據塊原始位置的數據。
8、 根據權利要求6和7所述的固態(tài)硬盤加速初始化的方法,其特征在于 固態(tài)》更盤加速初始化的方法的流程為步驟S501:向閃存寫入某一個或多個描述數據塊的數據。步驟S502:記錄該描述數據塊被寫在閃存中的位置。步驟S503:從索引數據存儲器中讀取初始化數據,查找寫入的描述數據塊 的原始位置。步驟S504:從閃存刪除該描述數據塊原始位置的數據。步驟S505:將描述數據塊的原始位置替換成新寫入閃存的描述數據塊的寫 入位置。步驟S506:保存變化后的初始化數據到索引數據存儲器。 步驟S507:結束。
全文摘要
本發(fā)明涉及一種固態(tài)硬盤的結構,包括總線和其上并列可逆連接內存、軟件代碼存儲器、處理器、ATA/SATA控制器和閃存控制器,總線可逆連接索引數據存儲器;固態(tài)硬盤加速初始化的方法通過固態(tài)硬盤上的索引數據存儲器,使得處理器直接獲得每個描述數據塊位于閃存存儲器的存儲地址,并通過閃存控制器直接將閃存存儲器上的數據塊存入內存,從而完成了固態(tài)硬盤的加速初始化。本發(fā)明有益效果為大幅度提高固態(tài)硬盤的初始化速度,減少用戶等待時間;釋放更多的處理器資源,從而提高寫效率,很大程度上抑制了地址塊的加速老化,避免其失效,延長了固態(tài)硬盤的使用壽命,滿足人們使用需求,有利于產品的廣泛應用。
文檔編號G11C7/10GK101676872SQ200810211330
公開日2010年3月24日 申請日期2008年9月19日 優(yōu)先權日2008年9月19日
發(fā)明者杰 劉 申請人:杰 劉