複合式硬碟的訪問方法與流程
2023-10-22 16:23:32 1
本發明涉及複合式硬碟,尤其涉及複合式硬碟的訪問方法。
背景技術:
於現有的電子裝置中,用戶必須藉由硬碟(hard-diskdrive,hdd)來儲存數字數據。
具體地,一般的7200轉(revolutionperminute,rpm)的磁碟硬碟於隨機存取處理下的iops(input/outputoperationspersecond)平均值約為75iops至100iops,固態硬碟(solidstatedisk,ssd)於隨機存取處理下的iops平均值約為20kiops至100kiops。由於固態硬碟的iops平均值遠高於磁碟硬碟,因此磁碟硬碟已漸漸地被市場所淘汰。
上述的固態硬碟主要是以非揮發性內存所構成,然而,揮發性內存的存取效能實更勝於非揮發性內存。以雙倍數據率同步動態隨機存取內存(doubledataratesynchronousdynamicrandomaccessmemory,ddrsdram)為例,ddrsdram於隨機存取處理下的iops平均值約為200kiops至260kiops。
有鑑於此,市場上即有人提出將固態硬碟(或磁碟硬碟)與ddrsdram整合為一體的混合式硬碟,該種混合式硬碟具有比傳統單顆固態硬碟或單顆磁碟硬碟更快的數據訪問速度。
目前所見的混合式硬碟,通常是於用戶操作時,先將數據寫入ddrsdram中,以得到快速的寫入速度。並且,於計算機主機或該混合式硬碟斷電前,再將ddrsdram中的數據寫入固態硬碟中,以確保數據不會在斷電後消失。
然而,隨著數據量的提升,常常會出現ddrsdram的容量不足的現象。於此情況下,該混合式硬碟的控制器需直接將數據寫入固態硬碟中,如此一來,將會造成數據的寫入/讀取速度大幅下降的問題,進而會帶給使用者不佳的使用體驗。
技術實現要素:
有鑑於此,本發明的主要目的,在於提供一種複合式硬碟的訪問方法,可降低主儲存裝置被主機存取的次數,同時提升複合式硬碟整體的訪問速度。
為了達成上述的目的,本發明提供一種複合式硬碟的訪問方法,該複合式硬碟包括一主儲存裝置及一快取儲存裝置,並且該訪問方法包括:
a)接收一主機的數據,其中該複合式硬碟藉由一主總線連接該主機並接收該數據;
b)將該數據寫入該快取儲存裝置,其中該快取儲存裝置以揮發性內存構成;
c)判斷該快取儲存裝置中的已儲存數據的容量是否超過一門坎容量;及
d)若該已儲存數據的容量超過該門坎容量,將超出部分的該已儲存數據同步儲存至該主儲存裝置。
如上所述,其中更包括下列步驟:
e)判斷該快取儲存裝置是否已滿;
f)若該快取儲存裝置已滿,於該快取儲存裝置中刪除部分的已同步數據;及
g)將該數據寫入刪除後的該快取儲存裝置。
如上所述,其中該快取儲存裝置以先進先出法(firstinfirstout,fifo)寫入該數據。
如上所述,其中該快取儲存裝置記錄該已同步數據的使用率,並且於該步驟f中,該快取儲存裝置保留使用率高於一設定值的該已同步數據。
如上所述,其中更包括下列步驟:
h)判斷該快取儲存裝置是否已滿;
i)於該快取儲存裝置已滿時,判斷該快取儲存裝置中的已同步數據的數量是否大於一門坎值;及
j)若該已同步數據的數量大於該門坎值,於該快取儲存裝置中刪除部分的該已同步數據,並將該數據寫入刪除後的該快取儲存裝置。
如上所述,其中更包括下列步驟:
k)該步驟i後,若該已同步數據的數量小於該門坎值,將該數據直接寫入該主儲存裝置。
如上所述,其中該主儲存裝置為固態硬碟(solidstatedisk,ssd),該快取儲存裝置由雙倍數據率同步動態隨機存取內存(doubledataratesynchronorusdynamicrandomaccessmemory,ddrsdram)構成。
如上所述,其中該門坎容量為該快取儲存裝置的總容量的一半。
如上所述,其中該複合式硬碟更包括一橋接單元及一快取控制單元,該橋接單元通過該主總線連接該主機並接收該數據,並通過二裝置總線分別連接該主儲存裝置及該快取儲存裝置,以分別將該數據寫入該主儲存裝置或該快取儲存裝置,該快取控制單元連接該快取儲存裝置,控制該快取儲存裝置將該已儲存數據同步儲存至該主儲存裝置,並刪除部分的該已同步數據。
如上所述,其中該主總線及該二裝置總線為串行高技術配置(serialadvancedtechnologyattachment,sata)總線。
本發明保留該快取儲存裝置中未超過該門坎容量的部分的數據不同步至該主儲存裝置中,藉此可降低該主儲存裝置被寫入的次數,進而延長該主儲存裝置的壽命。另外,本發明將該快取儲存裝置中已超過該門坎容量的部分的數據優先同步至該主儲存裝置中,藉此可提高該快取儲存裝置中存在已同步數據的機率(即,提高數據可被寫入該快取儲存裝置中的機率(寫入命中率)),進而提升該複合式硬碟整體的訪問速度。
附圖說明
圖1為本發明的第一具體實施例的複合式硬碟方塊圖;
圖2a為本發明的第一具體實施例的第一數據寫入示意圖;
圖2b為本發明的第一具體實施例的第二數據寫入示意圖;
圖2c為本發明的第一具體實施例的第三數據寫入示意圖;
圖2d為本發明的第一具體實施例的第四數據寫入示意圖;
圖2e為本發明的第一具體實施例的第五數據寫入示意圖;
圖3為本發明的第一具體實施例的快取儲存裝置存取流程圖;
圖4為本發明的第二具體實施例的快取儲存裝置存取流程圖;
圖5a為本發明的第二具體實施例的第一數據寫入示意圖;
圖5b為本發明的第二具體實施例的第二數據寫入示意圖。
附圖標記說明
1…主機;
10…主總線;
2…複合式硬碟;
21…橋接單元;
22…主儲存裝置;
220…裝置總線;
23…快取儲存裝置;
230…裝置總線;
231…門坎容量;
24…中央處理單元;
25…快取控制單元;
31…已儲存數據;
32…已同步數據;
s10~s20…存取步驟;
s30~s42…存取步驟。
具體實施方式
茲就本發明之一較佳實施例,配合附圖,詳細說明如後。
參閱圖1,為本發明的第一具體實施例的複合式硬碟方塊圖。本發明揭露一種複合式硬碟的訪問方法(下面簡稱為該方法),該方法運用於如圖1所示的一複合式硬碟2。
該複合式硬碟2主要包括一橋接單元21、一主儲存裝置22及一快取儲存裝置23。該主儲存裝置22主要可為磁碟硬碟(magnetichard-diskdrive,hdd)或固態硬碟(solidstatedisk,ssd),而該快取儲存裝置23是由揮發性內存所構成。更具體地,該快取儲存裝置23是由雙倍數據率同步動態隨機存取內存(doubledataratesynchronorusdynamicrandomaccessmemory,ddrsdram)所構成,但不以此為限。
該橋接單元21通過一主總線10連接外部的一主機1,並且通過二裝置總線220、230分別連接該主儲存裝置22及該快取儲存裝置23,藉以將該主機1傳輸的數據分別寫入該主機儲存裝置22或該快取儲存裝置23。本實施例中,該主總線10及該二裝置總線220、230為串行高技術配置(serialadvancedtechnologyattachments,sata)總線,但不加以限定。
該複合式硬碟2還具有一中央處理單元24及一快取控制單元25,本實施例中,該橋接單元21、該中央處理單元24及該快取控制單元25可以整合於單一集成電路(integratedcircuit,ic)中,但不加以限定。
該中央處理單元24電性連接該橋接單元21。本實施例中,該中央處理單元24將各種數據的地址告知該橋接單元21。藉此,當該橋接單元21接收該主機1經由該主總線10傳送的數據或指令時,可以判斷要將所接收的數據儲存至該主儲存裝置22或是該快取儲存裝置23,以及判斷要依據所接收的指令讀取該主儲存裝置22或是該快取儲存裝置23。
本發明中,該快取儲存裝置23的數據寫入速度遠高於該主儲存裝置22的數據寫入速度,因此,於該快取儲存裝置23尚未寫滿前,該橋接單元21會優先將數據寫入該快取儲存裝置23中,以得到最佳的寫入速度。另外,該快取儲存裝置23的數據讀取速度同樣高於該主儲存裝置22的數據讀取速度,因此,該複合式硬碟2在該快取儲存裝置23找到該主機1所需的數據的機率越高(即,命中率(hitrate)越高),則該複合式硬碟2就有最佳的讀取速度。
該快取控制單元25連接該快取儲存裝置23,用以控制該快取儲存裝置23將已儲存的數據同步儲存至該主儲存裝置22中,並且控制該快取儲存裝置23刪除部分已同步的數據(容後詳述)。
請同時參閱圖2a至圖2e,分別為本發明的第一具體實施例的第一數據寫入示意圖、第二數據寫入示意圖、第三數據寫入示意圖、第四數據寫入示意圖及第五數據寫入示意圖。
首先如圖2a所示,本發明中,該快取儲存裝置23默認有一門坎容量231。於一較佳實施例中,該門坎容量231為該快取儲存裝置23的總容量的一半,而該快取儲存裝置23的總容量較佳為該主儲存裝置22的總容量的四分之一。舉例來說,該主儲存裝置22可為256g的固態硬碟,該快取儲存裝置23可為64g的ddrsdram,而該門坎容量231可設定為32g。然而,上述僅為本發明的一個具體實施範例,不應以此為限。
如圖2b所示,當該複合式硬碟2接收該主機1寫入的數據時,該複合式硬碟2優先將該數據寫入該快取儲存裝置23,以將該數據轉變為該快取儲存裝置23中的已儲存數據31。
接著如圖2c所示,於該快取儲存裝置23被寫滿前,該複合式硬碟2會持續將該主機1要寫入的數據直接寫入該快取儲存裝置23中。而如圖2d所示,當該快取儲存裝置23中的該些已儲存數據31的容量超過該門坎容量231時,該複合式硬碟2會通過該快取控制單元25控制該快取儲存裝置23,以將超過該門坎容量231的部分的該已儲存數據31同步儲存至該主儲存裝置22中,以轉變為該快取儲存裝置23中的已同步數據32。
接著,如圖2e所示,於該快取儲存裝置23將該些已儲存數據31同步儲存至該主儲存裝置22的同時,該複合式硬碟2仍可持續接收該主機1的數據,並將該數據寫入該快取儲存裝置23。換句話說,該些已儲存數據31及該些已同步數據32的建立是可以同時進行的。
值得一提的是,本實施例中,該快取儲存裝置23僅會將超過該門坎容量231的部分的該已儲存數據31同步儲存至該主儲存裝置22,以轉變為該已同步數據32。舉例來說,若該快取儲存裝置23的總容量為64g而該門坎容量231為32g,則在該些已儲存數據31的容量還沒超過32g前,該快取儲存裝置23不會將該些已儲存數據31同步儲存至該主儲存裝置22。若該些已儲存數據31的容量為33g,則該快取儲存裝置23僅會將該些已儲存數據31中的較舊的1g數據同步儲存至該主儲存裝置22,剩餘的32g數據將不會於此時被寫入該主儲存裝置22。
本發明中,若該快取儲存裝置23已被寫滿,則由於該些已同步數據32已經存在於該主儲存裝置22中,因此該複合式硬碟2優先於該快取儲存裝置23中刪除部分的該已同步數據32,以令新的數據可被寫入該快取儲存裝置23中。
參閱圖3,為本發明的第一具體實施例的快取儲存裝置存取流程圖。本發明的該方法主要運用於圖1所揭露的該複合式硬碟2,並且具備下列步驟。
首先,該複合式硬碟2判斷該主機1是否有數據要傳輸(步驟s10),並且於該主機1有數據要傳輸時,通過該橋接單元21接收該主機1傳輸的數據(步驟s12),並且,直接將該數據寫入該快取儲存裝置23(步驟s14)。本實施例中,該橋接單元21是藉由該主總線10接收該數據,並藉由該裝置總線230將該數據寫入該快取儲存裝置23。
於該數據寫入該快取儲存裝置23的同時,該複合式硬碟2藉由該快取控制單元25判斷該快取儲存裝置23中的該些已儲存數據31的容量是否超過該門坎容量231(步驟s16)。若該些已儲存數據31的容量尚未超過該門坎容量231,則該快取控制單元25不對該快取儲存裝置23中的數據進行任何處理,並返回該步驟s10,以持續判斷該主機1是否有數據要傳輸,將傳輸的數據寫入該快取儲存裝置23中,並將該數據轉變為該些已儲存數據31的一部分。
若該些已儲存數據31的容量已超過該門坎容量231,則該快取控制單元25控制該快取儲存裝置23將超出該門坎容量231的部分的該些已儲存數據31同步儲存至該主儲存裝置22(步驟s18),以轉變為該快取儲存裝置23中的該些已同步數據32的一部分。
該步驟s18後,該複合式硬碟2藉由該快取控制單元25判斷該快取儲存裝置23中超出該門坎容量231的數據是否皆已同步完成(步驟s20)。若尚未同步完成,則返回該步驟s18,以持續進行該數據同步程序。若同步完成,則返回該步驟s10,以持續判斷該主機1是否有數據要傳輸。
值得一提的是,該快取儲存裝置23可於執行數據寫入程序的過程中,同時執行數據同步程序,直到所有超出該門坎容量231的數據皆寫入該主儲存裝置22並轉變為該些已同步數據32的一部分為止。
續請參閱圖4,為本發明的第二具體實施例的快取儲存裝置存取流程圖。與前述第一具體實施例的差異在於,本實施例進一步考慮該快取儲存裝置23被寫滿後的存取方式。
如圖4所示,首先該複合式硬碟2藉由該橋接單元21接收該主機1傳輸的數據(步驟s30),並且,先判斷該快取儲存裝置23是否已被寫滿(步驟s32)。若該快取儲存裝置23尚未被寫滿,則該橋接單元21直接將該數據寫入該快取儲存裝置23(步驟s34),以將該數據轉變為該些已儲存數據31的一部分。
值得一提的是,本發明中,該快取儲存裝置23主要採用先進先出法(firstinfirstout,fifo),因此新寫入的數據會成為該些已儲存數據31的一部分,而先前寫入的部分該已儲存數據31可能會受到該新寫入數據的推擠而超出該門坎容量231,進而被同步儲存至該主儲存裝置22,並轉變為該些已同步數據32的一部分。
若於該步驟s32中判斷該快取儲存裝置23已被寫滿,則該複合式硬碟2藉由該快取控制單元25判斷該快取儲存裝置22中的該些已同步數據32的數量是否大於一門坎值(步驟s36)。若該些已同步數據32的數量大於該門坎值,則該橋接單元21於該快取儲存裝置23中刪除部分的該已同步數據32(步驟s38),並將該數據寫入刪除後的該快取儲存裝置23(步驟s34)。
值得一提的是,該快取控制單元25可於該複合式硬碟2的使用過程中,記錄該快取儲存裝置23中的該些已同步數據32的使用率,即,該主機1讀取該些已同步數據32的次數。並且,於上述該步驟s38中,該快取控制單元25於該快取儲存裝置23中保留使用率高於一設定值的該些已同步數據32,並優先刪除使用率不高的該些已同步數據32。藉此,可提高該主機1於該快取儲存裝置23中找到所需的數據的命中率,藉此降低該主儲存裝置22被存取的次數,以延長該主儲存裝置22的壽命,同時提升該複合式硬碟2整體的數據訪問速度。
本實施例中,該橋接單元21將數據寫入該快取儲存裝置23中所需的時間與該快取儲存裝置23將數據同步寫入該主儲存裝置22中所需的時間不同。若以ddrsdram為例,該橋接單元21將數據寫入該快取儲存裝置23中的速率約為200k~260kiops。若以ssd為例,該快取儲存裝置23將數據同步寫入該主儲存裝置22中的速率約為20k~100kiops。因此,若該快取儲存裝置23同時處理該些已儲存數據31及該些已同步數據32,則將寫入數據轉變成些該已儲存數據31的速度,會比將該些已儲存數據31轉變成該些已同步數據32的速度來得快上許多。
承上所述,若該快取儲存裝置23已被寫滿,且該些已同步數據32的數量小於該門坎值,表示該快取儲存裝置23來不及將該些已儲存數據31同步儲存至該主儲存裝置22。因此,該橋接單元21會直接將該主機1傳輸的數據寫入該主儲存裝置22中(步驟s40)。藉此,令該快取儲存裝置23有足夠的緩衝時間可將該些已儲存數據31轉變成該些已同步數據32的一部分,進而令後續的數據可被寫入該快取儲存裝置23中。
值得一提的是,上述的該門坎值主要可為該主機1所傳輸的命令的最小長度。當該些已同步數據32的數量小於該主機1的命令的最小長度時,表示該快取儲存裝置23中不具有足夠的彈性空間(即,儲存已完成同步且可被刪除的該些已同步數據32的空間),因此,會將該主機1的數據直接寫入該主儲存裝置22。
最後,該複合式硬碟2判斷該主機1是否持續寫入數據(步驟s42)。若是,則回到該步驟s32,以持續將該數據寫入該快取儲存裝置23或該主儲存裝置22。若否,則結束本發明的該方法。值得一提的是,若於該步驟s42中判斷為否,但該快取儲存裝置23尚未完成該數據同步程序,則該快取控制單元25會控制該快取儲存裝置23持續執行該數據同步程序。
經本發明的發明人實驗結果,若該快取儲存裝置23中充滿了該已儲存數據31與該已同步數據32(合計使用率100%),則該主機1讀取該複合式硬碟2且在該快取儲存裝置23中得到所需數據的讀取命中率約為:快取儲存裝置總容量/主儲存裝置總容量;寫入命中率約為:(快取儲存裝置總容量/主儲存裝置總容量)+存在已同步數據的機率。
以該快取儲存裝置23的總容量為64g,該主儲存裝置22的總容量為256g為例,讀取命中率約為25%,而寫入命中率則需視該快取儲存裝置23中存在該已同步數據32的機率而定。
具體地,該快取儲存裝置23中存在該已同步數據32的機率,是與該主機1傳輸的命令的密集程度有關(即,是否連續寫入),並且與該主儲存裝置22的寫入速度與該快取儲存裝置23的寫入速度的速度差有關。也就是說,只要數據可以被寫入該快取儲存裝置23中(例如該快取儲存裝置23尚未被寫滿,或該快取儲存裝置23已被寫滿但該已同步數據32的數量大於該門坎值),都可視為寫入命中。
藉此,可進一步計算出本發明的該複合式硬碟2於隨機存取下的平均速率(iops)為:(20k~100k)*未命中率*橋接單元效率+(200k~260k)*命中率。其中,未命中率為100%-命中率;橋接單元效率為該橋接單元21所造成的速度下降的比例。
舉例來說,該主機1直接將4kbyte數據寫入該快取儲存裝置23的寫入速度約為101kiops,而該主機1透過該橋接單元21將4kbyte數據寫入該快取儲存裝置23的寫入速度約為90.5kiops。藉此,可算出該橋接單元21所造成的速度下降比例約為0.896,也就是說該橋接單元效率為0.896。
參閱圖5a及圖5b,分別為本發明的第二具體實施例的第一數據寫入示意圖及第二數據寫入示意圖。如圖5a所示,當該主機1要寫入數據時,該複合式硬碟2會優先將該數據寫入該快取儲存裝置23中。然而,當該快取儲存裝置23已被寫滿時,該複合式硬碟2即需藉由該快取控制單元25來執行上述步驟s36的判斷程序。
如圖5b所示,當該快取儲存裝置23已被寫滿,且該些已同步數據32的數量小於該門坎值時(即,該快取儲存裝置23執行該數據同步程序的速度遠低該複合式硬碟2執行該數據寫入程序的速度),該橋接單元21會直接將該主機1傳輸的數據寫入該主儲存裝置22中。
本發明藉由該門坎容量231的設置,令該快取儲存裝置23在還沒被寫滿前先將部分數據同步儲存至該主儲存裝置22,並於被寫滿後,優先刪除已同步的數據。如此一來,可增加數據可以被寫入該快取儲存裝置23中的機率。藉此,可有效降低該主儲存裝置22被該主機1存取的次數,同時提升該複合式硬碟2整體的訪問速度。
以上所述僅為本發明的較佳具體實例,並非因此即局限本發明的專利範圍,故凡是運用本發明內容所為的等效變化,均同理皆包含於本發明的範圍內,合予陳明。