TW202238391A - 資料平行寫入方法與資料儲存系統 - Google Patents
資料平行寫入方法與資料儲存系統 Download PDFInfo
- Publication number
- TW202238391A TW202238391A TW110110890A TW110110890A TW202238391A TW 202238391 A TW202238391 A TW 202238391A TW 110110890 A TW110110890 A TW 110110890A TW 110110890 A TW110110890 A TW 110110890A TW 202238391 A TW202238391 A TW 202238391A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory device
- writing
- unit
- write
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0653—Monitoring storage devices or 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/0661—Format or protocol conversion 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料平行寫入方法與資料儲存系統。所述方法包括:評估第一記憶體裝置與第二記憶體裝置的資料寫入效能;根據所述資料寫入效能決定所述第一記憶體裝置的第一單位寫入資料量與所述第二記憶體裝置的第二單位寫入資料量,其中所述第一單位寫入資料量不同於所述第二單位寫入資料量;以及根據所述第一單位寫入資料量與所述第二單位寫入資料量指示所述第一記憶體裝置與所述第二記憶體裝置執行平行資料寫入。
Description
本發明是有關於一種記憶體裝置的資料平行寫入技術,且特別是有關於一種資料平行寫入方法與資料儲存系統。
隨著科技的進步,記憶體裝置的類型與版本也不斷推陳出新。當使用者將不同型號或版本的記憶體裝置安裝於同一個主機板上同時使用時,即便各個記憶體裝置個別的資料寫入效能都很不錯,但仍可能因記憶體裝置之間運作上的不協調而導致此些記憶體裝置的平行資料寫入效能無法提升,甚至可能略為下降。
本發明提供一種資料平行寫入方法與資料儲存系統,可提高包含多個記憶體裝置的資料儲存系統的平行資料寫入效能。
本發明的實施例提供一種資料平行寫入方法,其用於資料儲存系統。所述資料儲存系統包括第一記憶體裝置與第二記憶體裝置。所述資料平行寫入方法包括:評估所述第一記憶體裝置與所述第二記憶體裝置的資料寫入效能;根據所述資料寫入效能決定所述第一記憶體裝置的第一單位寫入資料量與所述第二記憶體裝置的第二單位寫入資料量,其中所述第一單位寫入資料量不同於所述第二單位寫入資料量;以及根據所述第一單位寫入資料量與所述第二單位寫入資料量指示所述第一記憶體裝置與所述第二記憶體裝置執行平行資料寫入。
本發明的實施例另提供一種資料儲存系統,其包括主機系統、第一記憶體裝置及第二記憶體裝置。所述第一記憶體裝置經由第一連接介面連接至所述主機系統。所述第二記憶體裝置經由第二連接介面連接至所述主機系統。所述主機系統用以評估所述第一記憶體裝置與所述第二記憶體裝置的資料寫入效能。所述主機系統更用以根據所述資料寫入效能決定所述第一記憶體裝置的第一單位寫入資料量與所述第二記憶體裝置的第二單位寫入資料量。所述第一單位寫入資料量不同於所述第二單位寫入資料量。所述主機系統更用以根據所述第一單位寫入資料量與所述第二單位寫入資料量指示所述第一記憶體裝置與所述第二記憶體裝置執行平行資料寫入。
基於上述,在即時評估資料儲存系統中的第一記憶體裝置與第二記憶體裝置個別的資料寫入效能後,第一記憶體裝置的第一單位寫入資料量與第二記憶體裝置的第二單位寫入資料量可被決定,且第一單位寫入資料量不同於第二單位寫入資料量。爾後,根據所述第一單位寫入資料量與所述第二單位寫入資料量來指示第一記憶體裝置與第二記憶體裝置執行平行資料寫入,可提高包含多個記憶體裝置的資料儲存系統的平行資料寫入效能。
圖1是根據本發明的一實施例所繪示的資料儲存系統的示意圖。請參照圖1,資料儲存系統10包括主機系統11與記憶體儲存系統12。主機系統11可將資料儲存至記憶體儲存系統12中,或從記憶體儲存系統12中讀取資料。例如,主機系統11為可實質地與記憶體儲存系統12配合以儲存資料的任意系統,例如,電腦系統、數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等,而記憶體儲存系統12則可為隨身碟、記憶卡、固態硬碟(Solid State Drive, SSD)、安全數位(Secure Digital, SD)卡、小型快閃(Compact Flash, CF)卡或嵌入式儲存裝置等各式非揮發性記憶體裝置。
在一實施例中,主機系統11可包括處理器111、連接介面112(1)、連接介面112(2)及輸入/輸出(I/O)裝置113。處理器111電性連接至連接介面112(1)、連接介面112(2)及輸入/輸出(I/O)裝置113。處理器111可負責主機系統11的整體或部分運作。例如,處理器111可包括中央處理單元(CPU)或是其他可程式化之一般用途或特殊用途的微處理器、數位訊號處理器(Digital Signal Processor, DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits, ASIC)、可程式化邏輯裝置(Programmable Logic Device, PLD)或其他類似裝置或這些裝置的組合。
連接介面112(1)與112(2)用以將主機系統11連接至記憶體儲存系統12。例如,連接介面112(1)與112(2)可分別經由通道101與102電性連接至記憶體儲存系統12。處理器111可經由連接介面112(1)與112(2)(或通道101與102)存取記憶體儲存系統12。輸入/輸出(I/O)裝置113可包含任何實務上所需的輸出/輸出介面,例如網路介面卡、鍵盤(或觸控板)、螢幕及/或揚聲器等等。
在一實施例中,連接介面112(1)與112(2)符合高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)等連接介面標準。此外,連接介面112(1)與112(2)亦符合NVM Express (NVMe)之規範。
在一實施例中,記憶體儲存系統12包括記憶體裝置121與122。記憶體裝置121亦稱為第一記憶體裝置。記憶體裝置122亦稱為第二記憶體裝置。記憶體裝置121經由通道101電性連接至連接介面112(1)。記憶體裝置122經由通道102電性連接至連接介面112(2)。須注意的是,在一實施例中,記憶體儲存系統12亦可包括更多記憶體裝置。此外,在一實施例中,記憶體儲存系統12亦稱為容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)儲存系統。
在一實施例中,記憶體裝置121包括記憶體模組(未繪示)與記憶體控制器(未繪示)。記憶體模組用以儲存主機系統11所寫入之資料。記憶體控制器電性連接至記憶體模組並用以根據來自主機系統11的指令存取記憶體模組,例如,對記憶體模組執行資料讀取、寫入或抹除。
在一實施例中,記憶體裝置121中的記憶體模組可包括單階胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞可儲存1個位元的快閃記憶體模組)、多階胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞可儲存2個位元的快閃記憶體模組)、三階胞(Triple Level Cell, TLC)NAND型快閃記憶體模組(即,一個記憶胞可儲存3個位元的快閃記憶體模組)及/或四階胞(Quad Level Cell, QLC)NAND型快閃記憶體模組(即,一個記憶胞可儲存4個位元的快閃記憶體模組)。
在一實施例中,所述記憶體模組中的記憶胞是以臨界電壓的改變來儲存資料。例如,所述記憶體模組中可包括多個實體單元。每一個實體單元可包括多個記憶胞。例如,一個實體單元可包括一或多個實體頁、一或多個實體區塊或者一或多個其他的記憶胞管理單元。屬於同一個實體頁的記憶胞可以被同時程式化以儲存資料。屬於同一個實體區塊的記憶胞可被同時抹除以清除資料。在一實施例中,記憶體模組亦稱為快閃記憶體模組,及/或記憶體控制器亦稱為快閃記憶體控制器。此外,記憶體裝置122可相同或相似於記憶體裝置121,在此便不贅述。
在一實施例中,記憶體裝置121與122皆支援NVMe存取操作。處理器111可經由通道101與102下達控制指令以平行存取記憶體裝置121與122。例如,當欲儲存資料時,處理器111可經由通道101與102分別下達寫入指令至記憶體裝置121與122,以指示記憶體裝置121與122執行平行資料寫入。在平行資料寫入中,記憶體裝置121與122可將來自主機系統11的資料平行地儲存至記憶體裝置121與122各自的記憶體模組中。或者,當欲讀取資料時,處理器111可經由通道101與102分別下達讀取指令至記憶體裝置121與122,以指示記憶體裝置121與122執行平行資料讀取。在平行資料讀取中,記憶體裝置121與122可將資料平行地從記憶體裝置121與122各自的記憶體模組中讀取出來並傳送給主機系統11。在一實施例中,處理器111亦可經由一控制介面或一驅動介面來存取記憶體裝置121與122。
在一實施例中,處理器111可評估記憶體裝置121與122各自的資料寫入效能。此資料寫入效能可反映記憶體裝置121與122各別在儲存來自主機系統11的資料時的資料寫入速度。處理器111可根據所評估的資料寫入效能來決定記憶體裝置121的單位寫入資料量(亦稱為第一單位寫入資料量)與記憶體裝置122的單位寫入資料量(亦稱為第二單位寫入資料量)。須注意的是,第一單位寫入資料量可不同於第二單位寫入資料量。爾後,處理器111可根據第一單位寫入資料量與第二單位寫入資料量來指示記憶體裝置121與122執行平行資料寫入。
在一實施例中,處理器111可即時量測記憶體裝置121的資料寫入頻寬(亦稱為第一資料寫入頻寬)與記憶體裝置122的資料寫入頻寬(亦稱為第二資料寫入頻寬)。然後,處理器111可根據第一資料寫入頻寬與第二資料寫入頻寬評估記憶體裝置121與122各自的資料寫入效能。例如,第一資料寫入頻寬與第二資料寫入頻寬可分別反映且正相關於記憶體裝置121與122各別的資料寫入速度。
圖2A與圖2B是根據本發明的一實施例所繪示的評估第一記憶體裝置的資料寫入效能的示意圖。請參照圖2A,在一實施例中,處理器111可經由通道101發送測試訊號TS(1)至記憶體裝置121。測試訊號TS(1)帶有一測試寫入指令(亦稱為第一測試寫入指令)。記憶體裝置121可接收測試訊號TS(1)並根據測試訊號TS(1)執行一資料寫入操作以儲存第一測試寫入指令所指示儲存的資料。在完成此資料寫入操作後,記憶體裝置121可經由通道101回覆回應訊號RS(1)。回應訊號RS(1)可用以通知處理器111對應於測試訊號TS(1)(或第一測試寫入指令)的寫入操作已經完成。
請參照圖2B,假設處理器111在時間點T1(1)發送測試訊號TS(1)且在稍後的時間點T1(2)接收到回應訊號RS(1)。處理器111可根據時間點T1(1)與T1(2)之間的時間差ΔTR(1)獲得記憶體裝置121針對測試訊號TS(1)(或第一測試寫入指令)的回應時間(亦稱為第一回應時間)。處理器111可根據第一回應時間(或ΔTR(1))來量測記憶體裝置121的資料寫入頻寬及/或記憶體裝置121的資料寫入效能。例如,若第一回應時間(或ΔTR(1))越短,則處理器111可判定記憶體裝置121的資料寫入頻寬越大及/或記憶體裝置121的資料寫入效能越好。在一實施例中,處理器111也可根據第一回應時間(或ΔTR(1))來實際計算記憶體裝置121的資料寫入頻寬。
圖3A與圖3B是根據本發明的一實施例所繪示的評估第二記憶體裝置的資料寫入效能的示意圖。請參照圖3A,在一實施例中,處理器111可經由通道102發送測試訊號TS(2)至記憶體裝置122。測試訊號TS(2)帶有一測試寫入指令(亦稱為第二測試寫入指令)。記憶體裝置122可接收測試訊號TS(2)並根據測試訊號TS(2)執行一資料寫入操作以儲存第二測試寫入指令所指示儲存的資料。在完成此資料寫入操作後,記憶體裝置122可經由通道102回覆回應訊號RS(2)。回應訊號RS(2)可用以通知處理器111對應於測試訊號TS(2)(或第二測試寫入指令)的寫入操作已經完成。
請參照圖3B,假設處理器111在時間點T2(1)發送測試訊號TS(2)且在稍後的時間點T2(2)接收到回應訊號RS(2)。處理器111可根據時間點T2(1)與T2(2)之間的時間差ΔTR(2)獲得記憶體裝置122針對測試訊號TS(2)(或第二測試寫入指令)的回應時間(亦稱為第二回應時間)。處理器111可根據第二回應時間(或ΔTR(2))來量測記憶體裝置122的資料寫入頻寬及/或記憶體裝置122的資料寫入效能。例如,若第二回應時間(或ΔTR(2))越短,則處理器111可判定記憶體裝置122的資料寫入頻寬越大及/或記憶體裝置122的資料寫入效能越好。在一實施例中,處理器111也可根據第二回應時間(或ΔTR(2))來實際計算記憶體裝置122的資料寫入頻寬。
在一實施例中,是假設連接介面112(1)(或記憶體裝置121)符合PCIe Gen 4之規範,且連接介面112(2)(或記憶體裝置122)符合PCIe Gen 3之規範。因此,在一實施例中,第一回應時間(或ΔTR(1))短於第二回應時間(或ΔTR(2))、記憶體裝置121的資料寫入頻寬大於記憶體裝置122的資料寫入頻寬、及/或記憶體裝置121的資料寫入效能高於記憶體裝置122的資料寫入效能。然而,在另一實施例中,連接介面112(1)與112(2)還可符合其他連接介面標準,本發明不加以限制。
在一實施例中,處理器111可根據第一資料寫入頻寬與第二資料寫入頻寬的比值決定第一單位寫入資料量與第二單位寫入資料量。例如,假設經量測的第一資料寫入頻寬與第二資料寫入頻寬分別為5000MB/s與3000MB/s。處理器111可獲得第一資料寫入頻寬與第二資料寫入頻寬的比值約為1.67。在一實施例中,第一資料寫入頻寬與第二資料寫入頻寬的比值也可以用第一回應時間(或ΔTR(1))與第二回應時間(或ΔTR(2))的比值來取代。處理器111可根據此比值決定第一單位寫入資料量與第二單位寫入資料量。例如,在將第一資料寫入頻寬與第二資料寫入頻寬的比值(例如1.67)輸入至一方程式或查找表後,根據此方程式或查找表的輸出,處理器111可將第一單位寫入資料量決定為128K並將第二單位寫入資料量決定為64K。爾後,處理器111可根據第一單位寫入資料量(例如128K)與第二單位寫入資料量(例如6K)來指示記憶體裝置121與122執行平行資料寫入。
圖4是根據本發明的一實施例所繪示的第一記憶體裝置與第二記憶體裝置基於預設的單位寫入資料量執行平行資料寫入的示意圖。請參照圖4,在一實施例中,在未動態調整第一單位寫入資料量與第二單位寫入資料量的狀態下,第一單位寫入資料量與第二單位寫入資料量皆為一預設值。例如,此預設值可為64K。當記憶體裝置121與122執行平行資料寫入時,在時間點T3(0)至T3(2)之間,資料DATA(1)與DATA(2)可被平行寫入至記憶體裝置121與122中。其中,資料DATA(1)的資料量符合第一單位寫入資料量,DATA(2)的資料量符合第二單位寫入資料量,且第一單位寫入資料量與第二單位寫入資料量皆為64K。
須注意的是,假設記憶體裝置121的資料寫入效能高於記憶體裝置122的資料寫入效能(例如記憶體裝置121的資料寫入頻寬約為記憶體裝置122的資料寫入頻寬的1.67倍)。因此,在圖4的實施例中,基於預設的單位寫入資料量,記憶體裝置122對於64K的資料DATA(2)的寫入約在時間點T3(2)完成,而記憶體裝置121對於資料DATA(1)的寫入則可提早在時間點T3(1)完成。在時間點T3(1)與T3(2)之間的時間範圍ΔT(idle)內,資料寫入效能較高的記憶體裝置121會處於閒置狀態。換言之,在時間範圍ΔT(idle)內,資料寫入效能較高的記憶體裝置121的頻寬資源將被浪費。
在時間點T3(2)之後,記憶體裝置121與122可接續執行下一個平行資料寫入。例如,在時間點T3(2)至T3(4)之間,符合預設的單位寫入資料量(例如64K)的資料DATA(3)與DATA(4)可被平行寫入至記憶體裝置121與122中,依此類推。須注意的是,在某些情況下,若長時間基於預設的單位寫入資料量來執行如圖4的平行資料寫入,則除了無法達到理想的多個記憶體裝置的平行資料寫入效能外,甚至有可能拖慢部分記憶體裝置個別的資料寫入效能。
圖5是根據本發明的一實施例所繪示的第一記憶體裝置與第二記憶體裝置根據動態決定的單位寫入資料量執行平行資料寫入的示意圖。請參照圖5,在一實施例中,第一單位寫入資料量與第二單位寫入資料量可根據第一資料寫入頻寬與第二資料寫入頻寬而被動態決定。例如,假設第一資料寫入頻寬與第二資料寫入頻寬的比值約為1.67,則第一單位寫入資料量與第二單位寫入資料量可分別被配置為128K與64K。須注意的是,第一單位寫入資料量與第二單位寫入資料量可根據實務需求調整,本發明不加以限制。
根據動態配置的第一單位寫入資料量與第二單位寫入資料量,當記憶體裝置121與122執行平行資料寫入時,在時間點T4(0)至T4(2)之間,資料DATA(1)(亦稱為第一資料)與DATA(2)(亦稱為第二資料)可被平行寫入至記憶體裝置121與122中。其中,資料DATA(1)的資料量符合第一單位寫入資料量(例如128K),且DATA(2)的資料量符合第二單位寫入資料量(例如64K)。
相較於圖4的實施例,在記憶體裝置122於時間點T4(2)完成資料DATA(2)的寫入之前,雖然記憶體裝置121仍可能提早於時間點T4(1)完成資料DATA(1)的寫入,但時間點T4(1)與T4(2)之間的時間範圍ΔT(idle)’的時間長度可明顯少於圖4的時間點T3(1)與T3(2)之間的時間範圍ΔT(idle)。
此外,在時間點T4(2)之後,記憶體裝置121與122可接續執行下一個平行資料寫入。例如,在時間點T4(2)至T4(4)之間,符合不同的單位寫入資料量的資料DATA(3)與DATA(4)可被平行寫入至記憶體裝置121與122中,依此類推。
換言之,在圖5的實施例中,透過讓資料寫入效能較高的記憶體裝置121在單次的平行資料寫入中寫入更多資料(即第一單位寫入資料量大於第二單位寫入資料量),可有效減少記憶體裝置121處於閒置狀態的時間(即ΔT(idle)’小於ΔT(idle))。藉此,亦可提高記憶體裝置122的頻寬資源利用率及/或提高整個資料儲存系統的系統效能。
在一實施例中,在記憶體裝置121與122根據動態配置的第一單位寫入資料量與第二單位寫入資料量執行至少一次的平行資料寫入後,被儲存至記憶體裝置121的資料的資料量會多於被儲存至記憶體裝置122的資料的資料量。以圖5為例,在每一次平行資料寫入中,被寫入至記憶體裝置121的資料的資料量可能為被寫入至記憶體裝置122的資料的資料量的2倍或者其他倍數。因此,在一實施例中,在記憶體裝置121及/或122處於閒置狀態時,處理器111可指示記憶體裝置121與122執行資料搬移操作,以平衡記憶體裝置121與122雙方的資料量。
在一實施例中,在記憶體裝置121與122根據動態配置的第一單位寫入資料量與第二單位寫入資料量執行至少一次的平行資料寫入後,處理器111可指示記憶體裝置121與122執行資料搬移操作,以將記憶體裝置121中的部分資料(亦稱為第三資料)複製到記憶體裝置122中進行儲存,並移除記憶體裝置121中的第三資料。
在一實施例中,在所述資料搬移操作中,處理器111可經由通道101發送讀取指令至記憶體裝置121,以指示記憶體裝置121將第三資料讀取出來並傳送給主機系統11。然後,處理器111可經由通道102發送寫入指令至記憶體裝置122,以指示記憶體裝置122將先前從記憶體裝置121讀取出來的第三資料儲存至記憶體裝置122中。此外,處理器111可經由通道101發送刪除指令至記憶體裝置121,以指示記憶體裝置121將已複製到記憶體裝置122中的第三資料刪除。
在一實施例中,響應於所述資料搬移操作,處理器111可修改快閃記憶體轉換層(Flash Translation Layer, FTL)表格或類似的管理表格。修改後的FTL表格或類似的管理表格可反映第三資料已從記憶體裝置121搬移到記憶體裝置122中(例如從原先位於記憶體裝置121中的至少一儲存位址搬移到記憶體裝置122中的至少一儲存位址)。爾後,處理器111可根據此FTL表格或類似的管理表格來從記憶體裝置122中正常存取搬移後的第三資料。
圖6是根據本發明的一實施例所繪示的資料平行寫入方法的流程圖。請參照圖6,在步驟S601中,評估第一記憶體裝置與第二記憶體裝置的資料寫入效能。在步驟S602中,根據所述資料寫入效能決定所述第一記憶體裝置的第一單位寫入資料量與所述第二記憶體裝置的第二單位寫入資料量。第一單位寫入資料量不同於第二單位寫入資料量。在步驟S603中,根據所述第一單位寫入資料量與所述第二單位寫入資料量指示所述第一記憶體裝置與所述第二記憶體裝置執行平行資料寫入。
然而,圖6中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖6中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖6的方法可以搭配以上範例實施例使用,也可以單獨使用,本發明不加以限制。
綜上所述,本發明的實施例提出可根據同一個資料儲存系統(或RAID儲存系統)中的多個記憶體裝置的資料寫入效能之差異,來動態為不同的記憶體裝置配置合適的單位寫入資料量。藉此,可提高所述資料儲存系統(或RAID儲存系統)的平行資料寫入效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10:資料儲存系統
11:主機系統
111:處理器
112(1), 112(2):連接介面
113:輸入/輸出裝置
12:記憶體儲存系統
121, 122:記憶體裝置
101, 102:通道
S601~S603:步驟
圖1是根據本發明的一實施例所繪示的資料儲存系統的示意圖。
圖2A與圖2B是根據本發明的一實施例所繪示的評估第一記憶體裝置的資料寫入效能的示意圖。
圖3A與圖3B是根據本發明的一實施例所繪示的評估第二記憶體裝置的資料寫入效能的示意圖。
圖4是根據本發明的一實施例所繪示的第一記憶體裝置與第二記憶體裝置基於預設的單位寫入資料量執行平行資料寫入的示意圖。
圖5是根據本發明的一實施例所繪示的第一記憶體裝置與第二記憶體裝置根據動態決定的單位寫入資料量執行平行資料寫入的示意圖。
圖6是根據本發明的一實施例所繪示的資料平行寫入方法的流程圖。
S601~S603:步驟
Claims (10)
- 一種資料平行寫入方法,用於一資料儲存系統,該資料儲存系統包括一第一記憶體裝置與一第二記憶體裝置,且該資料平行寫入方法包括: 評估該第一記憶體裝置與該第二記憶體裝置的一資料寫入效能; 根據該資料寫入效能決定該第一記憶體裝置的一第一單位寫入資料量與該第二記憶體裝置的一第二單位寫入資料量,其中該第一單位寫入資料量不同於該第二單位寫入資料量;以及 根據該第一單位寫入資料量與該第二單位寫入資料量指示該第一記憶體裝置與該第二記憶體裝置執行一平行資料寫入。
- 如請求項1所述的資料平行寫入方法,其中評估該第一記憶體裝置與該第二記憶體裝置的該資料寫入效能的步驟包括: 量測該第一記憶體裝置的一第一資料寫入頻寬與該第二記憶體裝置的一第二資料寫入頻寬;以及 根據該第一資料寫入頻寬與該第二資料寫入頻寬評估該第一記憶體裝置與該第二記憶體裝置的該資料寫入效能。
- 如請求項2所述的資料平行寫入方法,其中量測該第一記憶體裝置的該第一資料寫入頻寬與該第二記憶體裝置的該第二資料寫入頻寬的步驟包括: 發送一第一測試寫入指令至該第一記憶體裝置; 根據該第一記憶體裝置針對該第一測試寫入指令的一第一回應時間量測該第一記憶體裝置的該第一資料寫入頻寬; 發送一第二測試寫入指令至該第二記憶體裝置;以及 根據該第二記憶體裝置針對該第二測試寫入指令的一第二回應時間量測該第二記憶體裝置的該第二資料寫入頻寬。
- 如請求項2所述的資料平行寫入方法,其中根據該資料寫入效能決定該第一記憶體裝置的該第一單位寫入資料量與該第二記憶體裝置的該第二單位寫入資料量的步驟包括: 根據該第一資料寫入頻寬與該第二資料寫入頻寬的一比值決定該第一單位寫入資料量與該第二單位寫入資料量。
- 如請求項1所述的資料平行寫入方法,其中在該平行資料寫入中,一第一資料與一第二資料被平行寫入至該第一記憶體裝置與該第二記憶體裝置中,該第一資料的資料量符合該第一單位寫入資料量,且該第二資料的資料量符合該第二單位寫入資料量。
- 如請求項1所述的資料平行寫入方法,更包括: 在執行該平行資料寫入後,指示該第一記憶體裝置與該第二記憶體裝置執行一資料搬移操作,以將該第一記憶體裝置中的一第三資料複製到該第二記憶體裝置中進行儲存,並移除該第一記憶體裝置中的該第三資料。
- 一種資料儲存系統,包括: 一主機系統; 一第一記憶體裝置,經由一第一連接介面連接至該主機系統;以及 一第二記憶體裝置,經由一第二連接介面連接至該主機系統, 其中該主機系統用以評估該第一記憶體裝置與該第二記憶體裝置的一資料寫入效能, 該主機系統更用以根據該資料寫入效能決定該第一記憶體裝置的一第一單位寫入資料量與該第二記憶體裝置的一第二單位寫入資料量,其中該第一單位寫入資料量不同於該第二單位寫入資料量,並且 該主機系統更用以根據該第一單位寫入資料量與該第二單位寫入資料量指示該第一記憶體裝置與該第二記憶體裝置執行一平行資料寫入。
- 如請求項7所述的資料儲存系統,其中評估該第一記憶體裝置與該第二記憶體裝置的該資料寫入效能的操作包括: 量測該第一記憶體裝置的一第一資料寫入頻寬與該第二記憶體裝置的一第二資料寫入頻寬;以及 根據該第一資料寫入頻寬與該第二資料寫入頻寬評估該第一記憶體裝置與該第二記憶體裝置的該資料寫入效能。
- 如請求項7所述的資料儲存系統,其中在該平行資料寫入中,一第一資料與一第二資料被平行寫入至該第一記憶體裝置與該第二記憶體裝置中,該第一資料的資料量符合該第一單位寫入資料量,且該第二資料的資料量符合該第二單位寫入資料量。
- 如請求項7所述的資料儲存系統,其中該第一連接介面符合PCIe Gen 4之規範,且該第二連接介面符合PCIe Gen 3之規範。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110110890A TW202238391A (zh) | 2021-03-25 | 2021-03-25 | 資料平行寫入方法與資料儲存系統 |
US17/317,907 US20220308793A1 (en) | 2021-03-25 | 2021-05-12 | Method for writing data in parallel and data storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110110890A TW202238391A (zh) | 2021-03-25 | 2021-03-25 | 資料平行寫入方法與資料儲存系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202238391A true TW202238391A (zh) | 2022-10-01 |
Family
ID=83364542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110110890A TW202238391A (zh) | 2021-03-25 | 2021-03-25 | 資料平行寫入方法與資料儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220308793A1 (zh) |
TW (1) | TW202238391A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006006118A2 (en) * | 2004-07-07 | 2006-01-19 | Koninklijke Philips Electronics N.V. | Method of distributing data files and memory system for storing data files |
US10251303B2 (en) * | 2017-05-05 | 2019-04-02 | Dell Products, Lp | Server display for displaying server component information |
US20190171387A1 (en) * | 2019-01-31 | 2019-06-06 | Thomas Willhalm | Direct memory addresses for address swapping between inline memory modules |
-
2021
- 2021-03-25 TW TW110110890A patent/TW202238391A/zh unknown
- 2021-05-12 US US17/317,907 patent/US20220308793A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20220308793A1 (en) | 2022-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6345210B2 (ja) | 軟判定復号のための物理アドレスの相互関連付け | |
KR101431205B1 (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
US11550678B2 (en) | Memory management | |
TW201917576A (zh) | 記憶體系統及其操作方法 | |
US11567685B2 (en) | Storage controller and storage device including the same | |
US20200319815A1 (en) | Communication of data relocation information by storage device to host to improve system performance | |
US20230266884A1 (en) | Operating method for storage controller and storage system including same | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
TWI717751B (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
KR102330394B1 (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
KR20230023483A (ko) | 메모리 장치 및 그 동작 방법 | |
TW202143047A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US12008249B2 (en) | Memory system and method of performing background operation | |
TW202238391A (zh) | 資料平行寫入方法與資料儲存系統 | |
TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
KR20190041082A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN115691615A (zh) | 存储装置和存储控制器的操作方法 | |
KR20220032816A (ko) | 메모리 시스템에서 데이터 통신을 보정하는 장치 및 방법 | |
CN115202562A (zh) | 数据平行写入方法与数据存储*** | |
KR20200142698A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI818370B (zh) | 資料儲存分配方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI804308B (zh) | 基於寫入行為預測的寫入控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI825551B (zh) | 多通道記憶體儲存裝置、控制電路單元及其資料讀取方法 | |
TWI829103B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |