TWI588824B - 加快在不連續頁面寫入資料之電腦系統及其方法 - Google Patents
加快在不連續頁面寫入資料之電腦系統及其方法 Download PDFInfo
- Publication number
- TWI588824B TWI588824B TW104141826A TW104141826A TWI588824B TW I588824 B TWI588824 B TW I588824B TW 104141826 A TW104141826 A TW 104141826A TW 104141826 A TW104141826 A TW 104141826A TW I588824 B TWI588824 B TW I588824B
- Authority
- TW
- Taiwan
- Prior art keywords
- pages
- page
- write
- data
- writing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/224—Disk storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
本發明是關於一種寫入資料之電腦系統及其方法,特別是可應用硬碟的加快在不連續頁面寫入資料之電腦系統及其方法。
隨著科技進步、電子產業的蓬勃發展,人們對資訊傳遞的需求量不斷增加,為符合人們的需求,當前電腦設備的性能也隨之提升,而電腦設備需與相關軟體相互配合才能運作,例如作業系統、遊戲軟體及影音互動軟體,而前述軟體在運作時需將資料儲存在電腦設備的硬碟(hard disk drive)中,因此,硬碟在人們的生活中扮演的舉足輕重的角色。
習知的硬碟的物理結構包含讀寫頭、碟片、主馬達、副馬達、主控晶片與排線等零件;讀寫頭在碟片表面上畫出與碟片同心的圓形磁軌,此磁軌可等分為數個弧段,此些弧段為硬碟的磁區,而讀寫頭可存取磁區中的儲存資料。在讀取或寫入時,由主馬達帶動碟片旋轉,並由副馬達帶動讀寫頭到相對應的碟片位置,此時讀寫頭的磁感線圈感應碟片表面上的磁性,從而得到磁區中的儲存資料或可將資料寫入磁區中。
然而,由於習知硬碟之讀寫頭在讀取相關磁區時必須往復移動,來往於碟片上不同的磁區,所以讀寫頭之往復會有不必要的耗時,特別是在寫入碟片上的不連續磁區位置時,讀寫頭在相關磁區之間來回往復移動造成過長的寫入時間。
有鑑於此,本發明提出一種加快在不連續頁面寫入資料之電腦系統及其方法。
在一實施例中,一種加快在不連續頁面寫入資料之電腦系統,包含硬碟、記憶體及處理器。硬碟包含讀寫頭及一磁軌,且磁軌包含至少一區塊,每一個區塊包含連續之多個第一頁面;記憶體包含多個第二頁面,此些第二頁面的寫入速度大於硬碟之第一頁面中之不連續頁面的寫入速度;處理器執行多個寫入命令,每一寫入命令包含一寫入資料及一寫入位址,寫入位址係對應於第一頁面中之一寫入頁面,處理器根據各寫入位址判斷寫入頁面是否連續,若寫入頁面不連續,處理器根據寫入位址讀取對應之區塊,以將第一頁面的每一儲存資料寫入第二頁面,且處理器根據寫入位址將每一寫入資料寫入第二頁面,於每一寫入資料寫入記憶體後,處理器將每一第二頁面的儲存資料寫入第一頁面。
在一實施例中,一種加快在不連續頁面寫入資料之方法適於一硬碟,硬碟包含讀寫頭及磁區,磁區包含至少一區塊,每一個區塊包含連續之多個第一頁面,此些第一頁面中之不連續頁面的寫入速度小於一記憶體之多個第二頁面的寫入速度,前述加快在不連續頁面寫入資料之方法包含執行多個寫入命令,每一寫入命令包含一寫入資料及一寫入位址,寫入位址對應於第一頁面中之一寫入頁面;根據寫入位址判斷寫入頁面是否連續;若寫入頁面不連續,根據寫入位址讀取區塊;將區塊中之第一頁面的儲存資料寫入記憶體的第二頁面;根據寫入位址將每一寫入資料寫入第二頁面;及將記憶體的第二頁面的儲存資料寫入硬碟的第一頁面。
綜上所述,根據本發明之加快在不連續頁面寫入資料之方法及電腦系統之一實施例,在將資料寫入硬碟中寫入頁面時,處理器可將不連續的寫入頁面所在區塊中連續的儲存資料先寫入記憶體中的第二頁面,並將每一個欲寫入硬碟之資料寫入第二頁面中對應的頁面,相較硬碟中的儲存資料,第二頁面中包含已更新或未更新的儲存資料,此時處理器再將第二頁面中全數或部分的儲存資料寫入硬碟的前述區塊中,使區塊中的頁面依其位址可被連續地寫入,如此便節省由寫入不連續頁面造成過長的延遲時間,進而提升硬碟的寫入速度。
第1圖為根據本發明之電腦系統之一實施例之功能方塊圖,第2圖為第1圖之硬碟1之一實施例之構件示意圖,請同時參照第1圖及第2圖,電腦系統包含硬碟1、處理器2及記憶體3,且處理器2耦接於硬碟1及記憶體3。如第2圖所示,硬碟1包含讀寫頭11及具磁區之磁軌12,讀寫頭11用以在磁軌12上寫入或讀取資料。磁軌12之磁區包含至少一區塊,而每一個區塊包含連續的多個頁面,以儲存資料。如第1圖所示,以硬碟1之磁區包含一個區塊121為例,區塊121包含連續的多個第一頁面121A~121J,也就是說,第一頁面121A~121J所對應的位址為連續,舉例來說,以8位元之位址為例,假設第一頁面121A對應之位址為0x00,且位址增加量(increment)為0x02,第一頁面121A~121J分別對應的位址之16進制表示法為0x00、0x02、0x04、0x06、0x08、0x0a、0x0c、0xe、0x10及0x12。
記憶體3用以儲存資料,如第1圖之示例,記憶體3包含可儲存資料之多個第二頁面31A~31J,且第二頁面31A~31J的寫入速度大於第一頁面121A~121J中之不連續頁面的寫入速度,即,將欲儲存資料寫入第二頁面31A~31J的時間小於前述欲儲存資料寫入第一頁面121A~121J中之不連續頁面的時間,因硬碟1之讀寫頭11需來回往復於第一頁面121A~121J中之不連續頁面之間。在實作上,記憶體3可為靜態隨機存取記憶體(static random-access memory;SRAM)、動態隨機存取記憶體(dynamic random-access memory;DRAM)、或快閃記憶體(flash memory)之任何寫入速度大於在硬碟1之不連續頁面寫入資料的儲存裝置。
處理器2用以執行多個寫入命令,此些寫入命令可由電性連接於處理器2之前級電路產生,或由處理器2自身產生。每一個寫入命令包含寫入位址及對應於寫入位址之寫入資料,而寫入位址係對應於硬碟1之一區塊的頁面;基此,以第1圖為例,若硬碟1接收來自處理器2之寫入位址及寫入資料,且寫入位址係對應於區塊121的第一頁面121A~121J,寫入資料即可被寫入第一頁面121A~121J中之一寫入頁面。在實作上,處理器2可藉由軟體或韌體結合應用程式介面(Application Programming Interface;API)來存取硬碟1,並以匯流排連接於處理器2與硬碟1之間,使處理器2與硬碟1得以溝通,以進行匯流排處理(bus transaction);而處理器2可為中央處理器(CPU)、微控制器(MCU)或以特殊應用IC(Application-Specific IC;ASIC)實現之控制電路。
在處理器2執行多個寫入命令時,由於硬碟1的讀寫頭11將資料寫入磁軌12之不連續頁面所需的時間大於寫入連續頁面所需的時間,處理器2先根據寫入位址判斷寫入頁面為連續或不連續,若寫入頁面為連續,處理器2將寫入資料直接寫入硬碟1中以執行寫入命令;反之,若寫入頁面為不連續,處理器2可選擇以加速模式執行寫入命令,以節省因寫入硬碟的不連續頁面造成的延遲時間。
在加速模式中,處理器2根據寫入位址讀取寫入頁面所在的區塊中的頁面,以區塊121為例,處理器2將區塊121的全部第一頁面121A~121J的儲存資料讀出並寫入記憶體3的第二頁面31A~31J中;並且,處理器2根據寫入位址一一將寫入資料寫入記憶體3的第二頁面31A~31J中的對應頁面。例如,將欲寫入第一頁面121A的寫入資料,寫入第二頁面31A中;將欲寫入第一頁面121E的寫入資料,寫入第二頁面31E中。於全部寫入資料均被寫入記憶體3之後,處理器2再將第二頁面31A~31J的儲存資料寫入硬碟1之第一頁面121A~121J中。於是,硬碟1之第一頁面121A~121J中,便存在已更新寫入之所有寫入資料。然而,因第一頁面121A~121J是連續的,因此在最後將第二頁面31A~31J的儲存資料一次寫入硬碟1之第一頁面121A~121J時,讀寫頭11無需來回往復移動,因此相對於先前技術可減少寫入時間。
在本實施例中,第一頁面121A~121J與第二頁面31A~31J之間具有一對一映射關係,處理器2根據前述一對一映射關係將第一頁面121A~121J的儲存資料讀出,並寫入第二頁面31A~31J。並且,於寫入資料寫入記憶體3之後,處理器2再根據前述一對一映射關係將第二頁面31A~31J的儲存資料寫回第一頁面121A~121J。在此,第1圖係以第二頁面31A~31J連續為例,但本發明不以此為限。
在一實施例中,第二頁面31A~31J可為不連續,也就是說,對應於第二頁面31A~31J的位址可為不連續。在此情形下,處理器2根據前述一對一映射關係將連續之第一頁面121A~121J的儲存資料讀出並寫入不連續之第二頁面31A~31J,並且,於寫入資料均寫入記憶體3之後,處理器2再根據前述一對一映射關係將不連續之第二頁面31A~31J的儲存資料讀出並寫入連續之第一頁面121A~121J。換言之,只要處理器2可以取得第一頁面121A~121J與第二頁面31A~31J之間的一對一映射關係(如透過查表方式),第二頁面31A~31J也可以分散在記憶體3之多個區域而其位址不為連續。
第3A圖至第3D圖為第1圖之第一頁面121A~121J及第二頁面31A~31J的儲存資料在處理器2以加速模式執行寫入命令時的資料更新過程之示意圖,將以六筆寫入資料為例說明。如第3A圖所示,在未執行任何動作之前,第一頁面121A~121J包含儲存資料,而第二頁面31A~31J不具有如第一頁面121A~121J之儲存資料。如第3B圖所示,在加速模式中,處理器2將第一頁面121A~121J的儲存資料一對一對應寫入第二頁面31A~31J中,使第二頁面31A~31J的儲存資料與第一頁面121A~121J的儲存資料相同。接著,如第3C圖所示,處理器2將六筆寫入資料“4”、“1”、“3”、“13”、“4”及“2”分別寫入對應於六個寫入位址之第二頁面31A、31C、31D、31H、31I及31J而覆蓋原資料。最後,如第3D圖所示,處理器2將第二頁面31A~31J的儲存資料一對一對應寫入第一頁面121A~121J,第一頁面121A、121C、121D、121H、121I及121J中的儲存資料分別被更新為“4”、“1”、“3”、“13”、“4”及“2”,而其他第一頁面121B、121E、121F、121G則維持存有原本之儲存資料。
在本實施例中,處理器2在判斷寫入頁面是否連續時,處理器2判斷寫入位址對應之寫入頁面的任二者之間是否包含任一其他第一頁面。若判斷結果為是,處理器2則判斷寫入頁面為不連續。第4A圖至第4D圖為第1圖之第一頁面121A~121J包含不連續之寫入頁面及連續之寫入頁面之四個實施例之示意圖。以寫入頁面對應至區塊121為例,其中灰色之第一頁面表示寫入頁面,如第4A圖所示,兩寫入頁面之間包含其他非欲寫入資料之第一頁面121B、121D、121F、121H。如第4B圖所示,兩寫入頁面(對應第一頁面121D、121F;對應第一頁面121H、121J)之間包含其他非欲寫入資料之第一頁面121E、121I。如第4C圖所示,兩寫入頁面(對應第一頁面121D、121F)之間包含第一頁面121E。如第4D圖所示,對應至第一頁面121C之寫入頁面與對應至第一頁面121G之寫入頁面之間未包含任何頁面。基此,由第4A圖至第4D圖之示例可以得知,只要兩個寫入頁面之間包含任一其他第一頁面即表示寫入頁面為不連續。
再者,在處理器2判斷寫入頁面是否連續之前,處理器2先根據寫入位址來判斷寫入頁面的數量是否大於或等於欲寫入區塊中的頁面的數量的二分之一。以第1圖為例,假設寫入頁面位於區塊121,則處理器2判斷位於區塊121中之寫入頁面的數量是否大於或等於第一頁面121A~121J的數量的二分之一(即五),若位於區塊121中之寫入頁面的數量大於或等於五,處理器2始判斷寫入位址之間是否連續。反之,若位於區塊121中之寫入頁面的數量小於五,不論寫入頁面為連續或不連續,處理器2將寫入資料直接寫入第一頁面121A~121J中的寫入頁面。以處理器2欲執行五個寫入命令為例,假設其中的三個寫入命令的寫入頁面位於區塊121,因寫入頁面的數量小於五,此時處理器2會直接逐個將欲寫入資料寫入前述之三個寫入頁面,而不判斷三個寫入頁面是否連續。再者,假設前述之五個寫入命令的寫入頁面均位於區塊121,因寫入頁面的數量等於五,此時處理器2再進一步判斷五個寫入頁面是否連續。
在一實施例中,寫入頁面位於第一頁面121A~121J中之兩第一頁面之範圍間,以寫入頁面位於區塊121為例,當處理器2判斷寫入頁面的數量大於或等於五且寫入頁面不連續時,處理器2讀取兩第一頁面之範圍間的儲存資料,並根據前述一對一映射關係將兩第一頁面之範圍間的儲存資料寫入第二頁面中的多個對應頁面,也就是說,處理器2可根據寫入位址動態地將區塊121中部分之第一頁面中的儲存資料寫入記憶體3。
舉例來說,以寫入位址對應於第一頁面121B、121D、121E、121G、121I為例,在此情形下,寫入頁面位於第一頁面121B與第一頁面121I之範圍間,處理器2將第一頁面121B~121I的儲存資料讀出,並根據前述一對一映射關係將第一頁面121B~121I的儲存資料寫入第二頁面31A~31J中對應的頁面,例如第二頁面31B~31I,或是分散在記憶體3之多個區域而其位址不為連續。
接著,處理器2根據寫入位址一一將寫入資料寫入記憶體3的第二頁面31B~31I中的對應頁面,例如,將欲寫入第一頁面121B的寫入資料寫入第二頁面31B中,將欲寫入第一頁面121D的寫入資料寫入第二頁面31D中。於全部寫入資料均被寫入記憶體3之後,處理器2再根據前述一對一映射關係將第二頁面31A~31J中對應於兩第一頁面121B、121I之範圍間的儲存資料寫回第一頁面121A~121J中兩第一頁面121B、121I之範圍間,即處理器2將第二頁面31B~31I的儲存資料寫回第一頁面121B~121I,例如將第二頁面31B的儲存資料寫入第一頁面121B。於是,硬碟1之第一頁面121B~121I中便存在已更新寫入之所有寫入資料。然而,因第一頁面121B~121I是連續的,因此在最後將第二頁面31B~31I的儲存資料一次寫入硬碟1之第一頁面121B~121I時,讀寫頭11無需來回往復移動,因此相對於先前技術可減少寫入時間。
第5圖為根據本發明之加快在不連續頁面寫入資料之方法之一實施例之流程圖,請同時參照第1圖及第5圖,以寫入命令包含之寫入頁面對應至區塊121為例,處理器2執行多個寫入命令,處理器2計數寫入頁面的數量(步驟S11),且處理器2判斷寫入頁面的數量是否大於或等於第一頁面121A~121J的數量的二分之一(步驟S12)以決定是否執行步驟S14,若判斷結果為否,處理器2根據寫入位址將寫入資料寫入第一頁面121A~121J中之寫入頁面(步驟S13),即處理器2不執行加速模式,若判斷結果為是,處理器2根據寫入命令的寫入位址判斷寫入頁面是否連續(步驟S14)。在執行步驟S14之後,若寫入頁面連續(即,判斷結果為是),處理器2執行步驟S13,即處理器2不執行加速模式,若寫入頁面不連續(即,判斷結果為否),處理器2根據寫入位址讀取區塊121之第一頁面121A~121J(步驟S15),以將第一頁面121A~121J的儲存資料寫入記憶體3的第二頁面31A~31J(步驟S16),於執行步驟S16之後,處理器2根據寫入位址將每一寫入資料寫入第二頁面31A~31J中(步驟S17),最後,處理器2再將第二頁面31A~31J的儲存資料寫入第一頁面121A~121J中(步驟S18)。
在步驟S14中,處理器2判斷寫入位址對應之寫入頁面的任二者之間是否包含任一其他第一頁面,若判斷結果為是,則處理器2判斷寫入頁面不連續,並執行步驟S15。
在一些實施態樣中,記憶體3之第二頁面31A~31J與第二頁面31A~31J之間具有一對一映射關係,且第二頁面31A~31J係為不連續,基此,在步驟S16中,處理器2根據前述一對一映射關係將第一頁面121A~121J的儲存資料寫入不連續之第二頁面31A~31J;在步驟S18中,處理器2亦根據相同之一對一映射關係將不連續之第二頁面31A~31J寫入第一頁面121A~121J。
在一實施例中,若寫入頁面的數量大於或等於五,且寫入頁面位於第一頁面121A~121J中之兩第一頁面121B、121I之範圍間,於步驟S15中,處理器2讀取兩第一頁面121B、121I之範圍間(即,第一頁面121B~121I)的儲存資料;於步驟S16中,處理器2根據前述一對一映射關係將兩第一頁面121B、121I之範圍間的儲存資料寫入第二頁面31A~31J中之連續或不連續的頁面中,例如第二頁面31B~31I;於步驟S18中,處理器2根據前述一對一映射關係將第二頁面31A~31J中對應於兩第一頁面121B、121I之範圍間的儲存資料寫入兩第一頁面121B~121I之範圍間而覆蓋原資料。
綜上所述,根據本發明之加快在不連續頁面寫入資料之方法及電腦系統之一實施例,在將資料寫入硬碟中寫入頁面時,處理器可將不連續的寫入頁面所在區塊中連續的儲存資料先寫入記憶體中的第二頁面,並將每一個欲寫入硬碟之資料寫入第二頁面中對應的頁面,相較硬碟中的儲存資料,第二頁面中包含已更新或未更新的儲存資料,此時處理器再將第二頁面中全數或部分的儲存資料寫入硬碟的前述區塊中,使區塊中的頁面依其位址可被連續地寫入,如此便節省由寫入不連續頁面造成過長的延遲時間,進而提升硬碟的寫入速度。
雖然本發明已以實施例揭露如上然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之專利申請範圍所界定者為準。
1 硬碟 11 讀寫頭 12 磁軌 121 區塊 121A~121J 第一頁面 2 處理器 3 記憶體 31A~31J 第二頁面 步驟S11 計數寫入頁面的數量 步驟S12 判斷寫入頁面的數量是否大於或等於第一頁面的數量的二分之一 步驟S13 根據寫入位址將寫入資料寫入第一頁面 步驟S14 根據寫入命令的寫入位址判斷寫入頁面是否連續 步驟S15 根據寫入位址讀取第一頁面 步驟S16 將第一頁面的儲存資料寫入第二頁面 步驟S17 根據寫入位址將每一寫入資料寫入第二頁面 步驟S18 將第二頁面的儲存資料寫入第一頁面
[第1圖] 為根據本發明之電腦系統之一實施例之功能方塊圖。 [第2圖] 為第1圖之硬碟之一實施例之構件示意圖。 [第3A圖] 為第1圖之第一頁面及第二頁面的儲存資料示意圖(一)。 [第3B圖] 為第1圖之第一頁面及第二頁面的儲存資料示意圖(二)。 [第3C圖] 為第1圖之第一頁面及第二頁面的儲存資料示意圖(三)。 [第3D圖] 為第1圖之第一頁面及第二頁面的儲存資料示意圖(四)。 [第4A圖] 為第1圖之第一頁面包含不連續之寫入頁面之第一實施例之示意圖。 [第4B圖] 為第1圖之第一頁面包含不連續之寫入頁面之第二實施例之示意圖。 [第4C圖] 為第1圖之第一頁面包含不連續之寫入頁面之第三實施例之示意圖。 [第4D圖] 為第1圖之第一頁面包含連續之寫入頁面之一實施例之示意圖。 [第5圖] 為根據本發明之加快在不連續頁面寫入資料之方法之一實施例之流程圖。
步驟S11 計數寫入頁面的數量 步驟S12 判斷寫入頁面的數量是否大於或等於第一頁面的數量的二分之一 步驟S13 根據寫入位址將寫入資料寫入第一頁面 步驟S14 根據寫入命令的寫入位址判斷寫入頁面是否連續 步驟S15 根據寫入位址讀取第一頁面 步驟S16 將第一頁面的儲存資料寫入第二頁面 步驟S17 根據寫入位址將每一寫入資料寫入第二頁面 步驟S18 將第二頁面的儲存資料寫入第一頁面
Claims (10)
- 一種加快在不連續頁面寫入資料之電腦系統,包含:一硬碟,包含讀寫頭及一磁軌,該磁軌包含至少一區塊,該至少一區塊包含連續之多個第一頁面;一記憶體,包含多個第二頁面,該些第二頁面的寫入速度大於該些第一頁面中之不連續頁面的寫入速度;及一處理器,用以執行多個寫入命令,每一該寫入命令包含一寫入資料及一寫入位址,該寫入位址對應於該些第一頁面中之一寫入頁面,該處理器根據該些寫入位址判斷該些寫入頁面是否連續,若該些寫入頁面不連續,該處理器根據該些寫入位址讀取該區塊,且將該區塊中之每一該第一頁面的儲存資料寫入該些第二頁面,且該處理器根據該些寫入位址將每一該寫入資料寫入該些第二頁面,於每一該寫入資料寫入至該記憶體後,該處理器將該些第二頁面的儲存資料寫入該些第一頁面。
- 如請求項1所述之加快在不連續頁面寫入資料之電腦系統,其中該處理器於判斷該些寫入頁面是否連續之前,該處理器根據該些寫入位址計數該些寫入頁面的數量,且該處理器比較該些寫入頁面的數量與該區塊之該些第一頁面的數量,當該些寫入頁面的數量大於或等於該些第一頁面的數量的二分之一,該處理器始判斷該些寫入頁面是否連續。
- 如請求項1所述之加快在不連續頁面寫入資料之電腦系統,其中該些第二頁面係為不連續,且該些第二頁面與該些第一頁面之間包含一一對一映射關係,該處理器根據該一對一映射關係將該些第一頁面自該硬碟寫入該些不連續之第二頁面,於該些寫入資料寫入該記憶體後, 該處理器根據該一對一映射關係將該些不連續之第二頁面寫入該些第一頁面。
- 如請求項1所述之加快在不連續頁面寫入資料之電腦系統,其中該處理器判斷該些寫入位址對應之該些寫入頁面的任二者之間是否包含任一其他該第一頁面,若是,則判斷該些寫入頁面不連續。
- 如請求項1所述之加快在不連續頁面寫入資料之電腦系統,其中該些第二頁面與該些第一頁面之間包含一一對一映射關係,該些寫入頁面位於該些第一頁面中之兩第一頁面之範圍間,當該些寫入頁面的數量大於或等於該些第一頁面的數量的二分之一且該些寫入頁面不連續時,該處理器讀取該兩第一頁面之範圍間的儲存資料,並根據該一對一映射關係將該兩第一頁面之範圍間的儲存資料寫入該些第二頁面,於處理器將每一該寫入資料寫入至該記憶體後,該處理器根據該一對一映射關係將該些第二頁面中對應於該兩第一頁面之範圍間的儲存資料寫入該些第一頁面中該兩第一頁面之範圍間。
- 一種加快在不連續頁面寫入資料之方法,適於一硬碟,該硬碟包含讀寫頭及一磁區,該磁區包含至少一區塊,該至少一區塊包含連續之多個第一頁面,該些第一頁面中之不連續頁面的寫入速度小於一記憶體之多個第二頁面的寫入速度,該加快在不連續頁面寫入資料之方法包含:執行多個寫入命令,每一該寫入命令包含一寫入資料及一寫入位址,該寫入位址對應於該些第一頁面中之一寫入頁面;根據該些寫入位址判斷該些寫入頁面是否連續; 若該些寫入頁面不連續,根據該些寫入位址讀取該區塊;將該區塊中之每一該第一頁面的儲存資料寫入該些第二頁面;根據該些寫入位址將每一該寫入資料寫入該些第二頁面;及將該些第二頁面的儲存資料寫入該些第一頁面。
- 如請求項6所述之加快在不連續頁面寫入資料之方法,其中,於判斷該些寫入頁面是否連續之步驟前,該加快在不連續頁面寫入資料之方法更包含:計數該些寫入頁面的數量;及判斷該些寫入頁面的數量是否大於或等於該些第一頁面的數量的二分之一以決定是否執行判斷該些寫入頁面是否連續之步驟。
- 如請求項6所述之加快在不連續頁面寫入資料之方法,其中,於根據該些寫入位址判斷該些寫入頁面是否連續之步驟中,判斷該些寫入位址對應之該些寫入頁面的任二者之間是否包含任一其他該第一頁面,若是,則判斷該些寫入頁面不連續。
- 如請求項6所述之加快在不連續頁面寫入資料之方法,其中該些第二頁面係為不連續,且該些第二頁面與該些第一頁面之間包含一一對一映射關係,於將該些第一頁面的儲存資料寫入該些第二頁面之步驟中,根據該一對一映射關係將該些第一頁面的儲存資料寫入該些不連續之第二頁面;於將該些第二頁面的儲存資料寫入該些第一頁面之步驟中,根據該一對一映射關係將該些不連續之第二頁面寫入該些第一頁面。
- 如請求項6所述之加快在不連續頁面寫入資料之方法,其中該些第二頁面與該些第一頁面之間包含一一對一映射關係,該些寫入頁 面位於該些第一頁面中之兩第一頁面之範圍間,若該些寫入頁面的數量大於或等於該些第一頁面的數量的二分之一,於根據該些寫入位址讀取該些第一頁面之步驟中,讀取該兩第一頁面之範圍間的儲存資料;於將該些第一頁面的儲存資料寫入該些第二頁面之步驟中,根據該一對一映射關係將該兩第一頁面之範圍間的儲存資料寫入該些第二頁面;於將該些第二頁面的儲存資料寫入該些第一頁面之步驟中,根據該一對一映射關係將該些第二頁面中對應於該兩第一頁面之範圍間的儲存資料寫入該些第一頁面中該兩第一頁面之範圍間。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141826A TWI588824B (zh) | 2015-12-11 | 2015-12-11 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
US15/009,897 US10956047B2 (en) | 2015-12-11 | 2016-01-29 | Accelerated computer system and method for writing data into discrete pages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141826A TWI588824B (zh) | 2015-12-11 | 2015-12-11 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201721632A TW201721632A (zh) | 2017-06-16 |
TWI588824B true TWI588824B (zh) | 2017-06-21 |
Family
ID=59020775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104141826A TWI588824B (zh) | 2015-12-11 | 2015-12-11 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10956047B2 (zh) |
TW (1) | TWI588824B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190106008A (ko) * | 2018-03-07 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
CN108804027B (zh) * | 2018-04-10 | 2021-06-08 | 四川中电昆辰科技有限公司 | 单比特定位时隙分配表的压缩存储方法 |
TWI658360B (zh) * | 2018-04-13 | 2019-05-01 | 宏碁股份有限公司 | 儲存系統及儲存方法 |
CN109062499A (zh) * | 2018-06-28 | 2018-12-21 | 平安科技(深圳)有限公司 | 写数据方法、装置、计算机装置及存储介质 |
CN113626083B (zh) * | 2020-05-08 | 2023-10-13 | 安徽寒武纪信息科技有限公司 | 数据处理装置以及相关产品 |
TWI768737B (zh) * | 2021-03-02 | 2022-06-21 | 宏碁股份有限公司 | 跳躍式資料清除方法與資料儲存系統 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5133060A (en) * | 1989-06-05 | 1992-07-21 | Compuadd Corporation | Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter |
WO1995001600A1 (en) * | 1993-07-02 | 1995-01-12 | Oakleigh Systems, Inc. | Predictive disk cache system |
CN1512353A (zh) * | 2002-12-27 | 2004-07-14 | 国际商业机器公司 | 性能改善的数据存储和方法 |
TW200604796A (en) * | 2004-02-04 | 2006-02-01 | Sandisk Corp | Mass storage accelerator |
US20080005465A1 (en) * | 2006-06-30 | 2008-01-03 | Matthews Jeanna N | Write ordering on disk cached platforms |
US20110219167A1 (en) * | 2005-09-01 | 2011-09-08 | Klein Dean A | Non-volatile hard disk drive cache system and method |
CN102566939A (zh) * | 2011-12-19 | 2012-07-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其读-修改-写操作的数据管理方法 |
US20140244914A1 (en) * | 2008-02-05 | 2014-08-28 | Spansion Llc | Mitigate flash write latency and bandwidth limitation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459842A (en) * | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
US5557770A (en) * | 1993-03-24 | 1996-09-17 | International Business Machines Corporation | Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk |
US6516380B2 (en) * | 2001-02-05 | 2003-02-04 | International Business Machines Corporation | System and method for a log-based non-volatile write cache in a storage controller |
US6944717B2 (en) * | 2001-07-27 | 2005-09-13 | Fujitsu Limited | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom |
US7328304B2 (en) * | 2004-02-27 | 2008-02-05 | Intel Corporation | Interface for a block addressable mass storage system |
US8245109B2 (en) * | 2006-03-31 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Error checking and correction (ECC) system and method |
US8521976B1 (en) * | 2009-01-07 | 2013-08-27 | Marvell International Ltd. | Method and system for improving disk drive performance |
US8195878B2 (en) * | 2009-02-19 | 2012-06-05 | Pmc-Sierra, Inc. | Hard disk drive with attached solid state drive cache |
JP4630933B2 (ja) * | 2009-05-15 | 2011-02-09 | 株式会社東芝 | ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法 |
US8832366B1 (en) * | 2010-12-15 | 2014-09-09 | Western Digital Technologies, Inc. | Disk drive to coalesce unaligned writes in write operations |
US8788742B2 (en) * | 2011-05-23 | 2014-07-22 | International Business Machines Corporation | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
US9898402B2 (en) * | 2011-07-01 | 2018-02-20 | Micron Technology, Inc. | Unaligned data coalescing |
US9152563B2 (en) * | 2013-03-04 | 2015-10-06 | Dot Hill Systems Corporation | Method and apparatus for processing slow infrequent streams |
US9317436B2 (en) * | 2013-06-21 | 2016-04-19 | Hewlett Packard Enterprise Development Lp | Cache node processing |
US9213498B2 (en) * | 2013-09-03 | 2015-12-15 | Kabushiki Kaisha Toshiba | Memory system and controller |
KR102086778B1 (ko) * | 2013-09-30 | 2020-04-14 | 삼성전자 주식회사 | 스토리지 시스템을 포함하는 컴퓨팅 시스템 및 그의 데이터 기입 방법 |
GB2519534A (en) * | 2013-10-23 | 2015-04-29 | Ibm | Persistent caching system and method for operating a persistent caching system |
JPWO2015076354A1 (ja) * | 2013-11-22 | 2017-03-16 | 日本電気株式会社 | ストレージ装置と方法並びにプログラム |
US9501412B2 (en) * | 2015-02-17 | 2016-11-22 | Gainspan Corporation | External memory tagging and stack ordering of memory tags |
JP6476969B2 (ja) * | 2015-02-17 | 2019-03-06 | 富士通株式会社 | ストレージ制御装置、制御プログラムおよび制御方法 |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
-
2015
- 2015-12-11 TW TW104141826A patent/TWI588824B/zh active
-
2016
- 2016-01-29 US US15/009,897 patent/US10956047B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5133060A (en) * | 1989-06-05 | 1992-07-21 | Compuadd Corporation | Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter |
WO1995001600A1 (en) * | 1993-07-02 | 1995-01-12 | Oakleigh Systems, Inc. | Predictive disk cache system |
CN1512353A (zh) * | 2002-12-27 | 2004-07-14 | 国际商业机器公司 | 性能改善的数据存储和方法 |
TW200604796A (en) * | 2004-02-04 | 2006-02-01 | Sandisk Corp | Mass storage accelerator |
US20110219167A1 (en) * | 2005-09-01 | 2011-09-08 | Klein Dean A | Non-volatile hard disk drive cache system and method |
US20080005465A1 (en) * | 2006-06-30 | 2008-01-03 | Matthews Jeanna N | Write ordering on disk cached platforms |
US20140244914A1 (en) * | 2008-02-05 | 2014-08-28 | Spansion Llc | Mitigate flash write latency and bandwidth limitation |
CN102566939A (zh) * | 2011-12-19 | 2012-07-11 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其读-修改-写操作的数据管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US10956047B2 (en) | 2021-03-23 |
US20170168731A1 (en) | 2017-06-15 |
TW201721632A (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI588824B (zh) | 加快在不連續頁面寫入資料之電腦系統及其方法 | |
US10339079B2 (en) | System and method of interleaving data retrieved from first and second buffers | |
US9405485B2 (en) | Method and apparatus for writing data to a flash memory | |
US20180143878A1 (en) | De-duplicated virtual machine image transfer | |
WO2017185579A1 (zh) | 一种数据存储方法及装置 | |
US10216437B2 (en) | Storage systems and aliased memory | |
US20150253992A1 (en) | Memory system and control method | |
JP2005196769A (ja) | フラッシュメモリのデータ管理装置及び方法 | |
JP2010080021A (ja) | 記録制御方法及び記録制御部、並びに記憶装置 | |
CN113625973B (zh) | 数据写入方法、装置、电子设备及计算机可读存储介质 | |
US9330737B2 (en) | Allocating memory address space between DIMMs using memory controllers | |
JP2019512794A (ja) | プロセッサベースシステムにおけるメモリ内の圧縮メモリラインの優先度ベースのアクセス | |
CN112905113A (zh) | 数据访问处理方法和装置 | |
CN106874216B (zh) | 加快在不连续页面写入数据的计算机系统及其方法 | |
WO2024113838A1 (zh) | 处理器设置方法、装置、电子设备及存储介质 | |
TWI601141B (zh) | 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置 | |
JP2003256269A (ja) | 不揮発性記憶装置の制御方法及びメモリ装置 | |
CN112463041B (zh) | 一种主机读写数据的处理方法及相关装置 | |
TWI635391B (zh) | 快閃記憶體以及其管理方法 | |
US9804968B2 (en) | Storage system and data writing method | |
US20070294468A1 (en) | Architecture for reading and writing to flash memory | |
JP2023508460A (ja) | メモリアクセス要求のステージング | |
CN1495621A (zh) | 平行输入/输出数据传输控制器 | |
US20210200694A1 (en) | Staging buffer arbitration | |
US9773293B2 (en) | Composition data dispatcher |