TWI531963B - Data storage systems and their specific instruction enforcement methods - Google Patents
Data storage systems and their specific instruction enforcement methods Download PDFInfo
- Publication number
- TWI531963B TWI531963B TW104118116A TW104118116A TWI531963B TW I531963 B TWI531963 B TW I531963B TW 104118116 A TW104118116 A TW 104118116A TW 104118116 A TW104118116 A TW 104118116A TW I531963 B TWI531963 B TW I531963B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- data
- logical
- read
- physical storage
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Description
本發明有關於一種資料儲存系統及其特定指令執行方法,可應用於非揮發性記憶體、固態硬碟、隨身碟或磁碟陣列等資料儲存裝置。
按,非揮發性記憶體(non-volatile memory)由於具備有無機械結構、體積小、低噪音、抗震動、省電及讀寫速度快等特性,因此被普遍使用於各種資料儲存裝置,例如固態硬碟(Solid State Disk;SSD)、隨身碟(Flash Drive)或磁碟陣列(Redundant Array of Independent Drives;RAID)。
非揮發性記憶體之產品特性使然,於一實體區塊(Physical Block)中包括有複數個實體頁面(Physical Page),在一主機系統(例如電腦主機)通知欲將一資料寫入(write)記憶體時,係以實體頁面或更小之磁區(sector)為單位依序寫入。而已儲存有資料之實體頁面則必須先經過一抹除(Erase)程序後,才可以再度被寫入其他資料,而抹除程序之最小單位係為一實體區塊。又,非揮發性記憶體對於資料的寫入或抹除都有其使用數量限制,如果寫入或抹除之次數超過一上限值,則此記憶體不僅會降低其運行速度,甚至會造成整個記憶體毀損。
請參閱第1圖,具有實體儲存記憶體15之資料儲存系統10中包括有一記憶體管理器19,可用以將主機系統20所能溝通或存取之邏輯磁區位址(Logical Sector Address;LSA)11轉換為邏輯區塊及邏輯頁面,並且
將邏輯區塊及邏輯頁面對應指向至實體儲存記憶體15的實體區塊及實體頁面,實體頁面具有一實體儲存位址(Physical Address)13。而邏輯磁區位址11與實體儲存位址13的映射關係將被記載於一邏輯-實體位址對應表17。
當主機系統20需要將已儲存資料從一(第一個)邏輯磁區位址L_1搬移至另一(第二個)邏輯磁區位址L_4時,主機系統20必須傳送一正常指令291,例如一搬移(move)指令,至記憶體管理器19,而主機系統20及/或記憶體管理器19則會進行:(a).將第一個邏輯磁區位址L_1所對應指向之已儲存資料D_A(存放於實體儲存記憶體(B1,P0))讀取(read)複製至一記憶體緩衝區25;(b).將記憶體緩衝區25內暫存之已儲存資料D_A寫入(write)第二個邏輯磁區位址L_4所指向之另一實體儲存記憶體(B0,P2)中;及(c).將邏輯磁區位址L_1之已儲存資料(D_A)予以刪除(delete)或設為無效(Invalid)。
同樣的資料搬移指令,於具有同位元檢查(parity)功能之磁碟陣列系統,例如RAID4、RAID5或RAID6,其程序則相對複雜。主機系統20欲將一已儲存資料從一邏輯磁區位址L_A中搬移(move)至另一個邏輯磁區位址L_B時,主機系統20及/或記憶體管理器19會控制並進行:(a).將邏輯磁區位址L_A所指向之已儲存資料D_A(儲存於實體儲存位址)讀取至記憶體緩衝區25;(b).將邏輯磁區位址L_A相對應之磁碟陣列資料條(Data Stripe)S_A的同位元檢查區塊資料P_A讀取至記憶體緩衝區25;(c).將邏輯磁區位址L_B所指向之已儲存資料D_B(儲存於實體儲存位址)讀取至記憶體緩衝區25;(d).將邏輯磁區位址L_B相對應之磁碟陣列資料條S_B的同位元檢查區塊資料P_B讀取至記憶體緩衝區25;(e).藉由儲存資料D_A、同位元檢查區塊資料P_A及一空白資料,計算出(例如XOR運算)邏輯磁區位址L_A之新同位元檢查區塊資料P_A2;(f).藉由儲存資料D_B、同位元檢查區塊資料P_B及儲存資料D_A,計算出(例如XOR運算)邏輯磁區位址L_B之新同位元檢查區塊資料P_B2;(g).將暫存於記憶體緩衝區25之已儲存資料D_A寫入邏輯
磁區位址L_B中;(h).將暫存於記憶體緩衝區25之新同位元檢查資料P_B2寫入磁碟陣列資料條S_B的同位元檢查區塊中;(i).將邏輯磁區位址L_A內之儲存資料D_A予以刪除或設為無效;及(j).將暫存於記憶體緩衝區25之新同位元檢查資料P_A2寫入磁碟陣列資料條S_A的同位元檢查區塊中。
習用資料儲存系統10雖然可以執行讀取、寫入、刪除及/或搬移等指令,但每一個指令動作皆必須個別下達,如果資料搬移動作中,使用者想要檢視所搬移之儲存資料內容,就必須個別下達讀取及搬移兩個指令動作。又,習用搬移指令後,其資料儲存系統10必須進行多次之讀取或寫入動作,對資料儲存系統10之使用壽命或使用效率而言都存在有可改善的空間。
本發明即提供一種資料儲存系統及其特定指令執行方法,其特定指令可同時執行資料讀取及搬移動作,藉此不僅有效減少實體儲存記憶體之寫入次數(Write Reduction)、降低輸出入延遲(IO Latency),也可延長資料儲存系統之使用壽命及使用效律。
本發明即提供一種資料儲存系統及其特定指令執行方法,其特定指令適用於具有同位元檢查功能磁碟陣列中,藉此不僅可有效降低指令之下達次數及資料寫入次數,又可提升磁碟陣列更新資料同位元檢查之效率者。
為達成上述目的,本發明提供一種資料儲存系統,包括:一個或多個實體儲存記憶體,每一個實體儲存記憶體可區分成多個實體儲存單元,而每一實體儲存單元具有一實體儲存位址,部分實體儲存單元內儲存有一已儲存資料;多個邏輯磁區位址,部分邏輯磁區位址藉由一邏輯-實體位址對照表之而指向相對應之其中一實體儲存位址;及一記憶體管理器,電性連接一主機系統、該實體儲存記憶體及該邏輯磁區位址,可接收
來自於主機系統之一正常指令、一特定指令、或一正常指令及一特定指令,該特定指令包括有其中一第一個邏輯磁區位址、一欲讀取資料長度及一第二磁區邏輯位址;其中,該記憶體管理器可根據該特定指令而將對應於該第一個邏輯磁區位址及該欲讀取資料長度所指向之一第一個實體儲存位址內的該已儲存資料讀取複製於一記憶體緩衝區,並將原指向於該第一個邏輯磁區位址之該實體儲存位址搬移指向至該第二個邏輯磁區位址。
又,為達上述目的,本發明提供一種特定指令執行方法,適用於一資料儲存系統,該資料儲存系統包括有至少一實體儲存記憶體、多個邏輯磁區位址及一記憶體管理器,該實體儲存記憶體分成有多個實體儲存單元,而每一個實體儲存單元具有一實體儲存位址,部分實體儲存單元內則儲存有一已儲存資料,部分邏輯磁區位址可藉由一邏輯-實體位址對照表而指向相對應之一實體儲存位址,而該記憶體管理器可分別電性連接該實體儲存記憶體及該邏輯磁區位址區,該特定指令執行方法包括:記憶體管理器接收一指令,判斷該指令係一正常指令或一特定指令;若為該特定指令,則解讀該特定指令內之一第一個邏輯磁區位址、一欲讀取資料長度及一第二個邏輯磁區位址,將該第一個邏輯磁區位址所指向該實體儲存位址內的已儲存資料讀取複製於一記憶體緩衝區;及將原指向於該第一個邏輯磁區位址之實體儲存位址搬移指向至該第二個邏輯磁區位址。
又,為達上述目的,本發明提供一種特定指令執行方法,適用於一磁碟陣列系統,該磁碟陣列系統為一日誌模式或一寫時複製模式,該磁碟陣列系統包括有至少一實體儲存記憶體、多個邏輯磁區位址及一記憶體管理器,該實體儲存記憶體分成多個實體儲存單元,而每一個實體儲存單元具有一實體儲存位址,部分實體儲存單元內儲存有一已儲存資料,部分邏輯磁區位址可藉由一邏輯-實體位址對照表而指向相對應之其中一實體儲存位址,而該記憶體管理器可分別電性連接實體儲存記憶體及邏輯磁區位址區,該特定指令執行方法包括:記憶體管理器接收一指令,判斷該
指令係一正常指令或一特定指令;若為該特定指令,則解讀該特定指令內之一第一個邏輯磁區位址、一欲讀取資料長度及一第二個邏輯磁區位址,將該第一個邏輯磁區位址所指向該實體儲存位址內的該已儲存資料讀取複製於一記憶體緩衝區;將原指向於該第一個邏輯磁區位址之實體儲存位址搬移指向至該第二個邏輯磁區位址;將第二個邏輯磁區位址相對應之一第二個磁碟陣列資料條的一第二個同位元檢查區塊資料讀取至該記憶體緩衝區;藉由一空白資料、該第二個同位元檢查區塊資料及該已儲存資料,計算出第二個邏輯磁區位址之一第二個新同位元檢查區塊資料;及將該第二個新同位元檢查區塊資料寫入該第二個磁碟陣列資料條的該第二個同位元檢查區塊中。
本發明一實施例中,其中該已儲存資料搬移至該第二磁區邏輯位址係經由該記憶體管理器修改該邏輯-實體位址對照表,將儲存該已儲存資料之實體儲存位址所指向之邏輯磁區位址由該第一個邏輯磁區位址修改為該第二個邏輯磁區位址。
本發明一實施例中,其中該正常指令包括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指令識別碼、該第一個邏輯磁區位址及該第二磁區邏輯位址之組合。
本發明一實施例中,其中該正常指令包括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指令識別碼及該第一個邏輯磁區位址之組合,而該特定指令內之該第二個邏輯磁區位址則存放於該記憶體緩衝區。
本發明一實施例中,其中該特定指令係為一廠商特定指令,包括該第一個邏輯磁區位址、該欲讀取資料長度及該第二磁區邏輯位址。
本發明一實施例中,其中該記憶體緩衝區係可設於該資料儲
存系統或該主機系統。
10‧‧‧資料儲存系統
11‧‧‧邏輯磁區位址
13‧‧‧實體儲存位址
15‧‧‧實體儲存記憶體
17‧‧‧邏輯-實體位址對照表
19‧‧‧記憶體管理
20‧‧‧主機系統
25‧‧‧記憶體緩衝區
291‧‧‧正常指令
30‧‧‧資料儲存系統
31‧‧‧邏輯磁區位址
33‧‧‧實體儲存位址
35‧‧‧實體儲存記憶體
351‧‧‧實體儲存單元
37‧‧‧邏輯-實體位址對照表
39‧‧‧記憶體管理器
40‧‧‧主機系統
45‧‧‧記憶體緩衝區
491‧‧‧正常指令
495‧‧‧特定指令
4951‧‧‧欲讀取資料起始位址
4955‧‧‧欲讀取資料長度
第1圖:習用資料儲存系統與主機系統之構造示意圖。
第2圖:本發明資料儲存系統與主機系統之構造示意圖。
第3圖:本發明資料儲存系統執行指令時一實施例之動作流程圖。
第4圖:本發明資料儲存系統執行指令時又一實施例之動作流程圖。
第5圖:本發明特定指令一實施例之構造示意圖。
第6圖:本發明特定指令又一實施例之構造示意圖。
第7圖:本發明特定指令又一實施例之構造示意圖。
請參閱第2圖,為本發明資料儲存系統與一主機系統之構造示意圖。如圖所示,本發明適用於一資料儲存裝置,例如固態硬碟(Solid State Disk;SSD)、隨身碟(Flash Drive)或磁碟陣列(Redundant Array of Independent Drives;RAID)。具有實體儲存記憶體(非揮發性記憶體)35之資料儲存系統30中包括有一記憶體管理器39,電性連接一主機系統40及至少一實體儲存記憶體35,可用以將主機系統40所能溝通或存取之邏輯磁區位址(Logical Sector Address;LSA)31轉換為邏輯區塊及邏輯頁面,並且將邏輯區塊及邏輯頁面對應指向至實體儲存記憶體35的實體區塊及實體頁面,實體頁面即可構成一實體儲存單元351,每一實體儲存單元351具有一實體儲存位址(Physical Address)33。而邏輯磁區位址31與實體儲存位址33的映射關係即被記載於一邏輯-實體位址對應表37。記憶體管理器39可連接並管理邏輯磁區位址31、實體儲存位址33、實體儲存記憶體35及邏輯-
實體位址對照表37。一記憶體緩衝區45係設於主機系統40內及/或資料儲存系統30內,連接記憶體管理器39。
本發明主要係設計一新穎的特定指令495,係為一讀取-搬移指令。主機系統40可因應使用者之需求而對資料儲存系統30下達至少一正常指令491及/或一特定指令495,而正常指令491及/或特定指令495將被傳送至記憶體管理器39,記憶體管理器39即會根據所接到之指令以控制資料儲存系統30進行讀取、寫入、刪除或搬移等正常指令程序或可自動執行資料讀取及資料搬移之特定指令程序。
請參閱第3圖,係為本發明資料儲存系統執行指令時一實施例之動作流程圖。請同時參閱第2圖,當主機系統40下達至少一指令傳送給資料儲存系統30之記憶體管理器39,如步驟S301。記憶體管理器39即會判斷此下達指令是否為一特定指令495,如步驟S303,如果是特定指令495,則繼續進行步驟S305;如果不是特定指令495,而是一正常指令491,則進行步驟S315。
步驟S305,表示所接收之指令係為一讀取-搬移之特定指令495,藉由主機系統40及/或記憶體管理器39而將所欲讀取並已儲存於指定(第一個)邏輯磁區位址L_A所指向的已儲存資料D_A(儲存於實體儲存單元(B1,P40
步驟S307,將所讀取複製於記憶體緩衝區45內之已儲存資料D_A搬移至新的(第二個)邏輯磁區位址L_B。換言之,新的邏輯磁區位址L_B可指向儲存資料D_A原本儲存之實體儲存位址(B1,P0)。
步驟S309,記憶體管理器39通知主機系統40已執行完畢所下達之指令。
步驟S315,表示主機系統40所傳送之指令係為一正常指令,例如一控制、讀取、寫入、刪除或搬移指令。則主機系統40及/或記憶體管理器39即可控制資料儲存系統30進行相對應之控制、讀取、寫入、刪
除或搬移程序。而控制、讀取、寫入、刪除或搬移係為一般記憶體正常程序,在此不再贅述。
另外,請參閱第4圖,係為本發明資料儲存系統執行指令時又一實施例之動作流程圖。與前述第3圖所示實施例不同之處即在於,步驟S305將與步驟S307之次序對調。由於本發明之特定指令495係可自動執行資料讀取及資料搬移動作,並不需要個別去下達資料讀取及資料搬移兩個指令,因此資料讀取與資料搬移之先後次序並不重要。例如在此實施例中,步驟S303後,接續進行之步驟S405,係將所欲讀取之已儲存資料D_A搬移至新的邏輯磁區位址L_B。換言之,新的邏輯磁區位址L_B可指向已儲存資料D_A原本儲存之實體儲存位址(B1,P0)。接續再進行步驟S407,係將所欲讀取之已儲存資料D_A讀取複製於記憶體緩衝區25。
雖然在第2圖圖式中,只呈現出一實體儲存記憶體35,但本發明所揭露之技術亦可同時適用於多個實體儲存記憶體35,例如磁碟陣列系統。
本發明主要係設計並定義一特定指令495,可自動執行資料讀取及資料搬移動作,因此,如何讓資料儲存系統30可判斷所接收之指令是否為一特定指令495或一正常指令491即為重要。在本發明一實施例中,如第5圖所示,主要係藉由修改讀取指令中的起始位址以成為一特定指令。一般讀取指令中係包括有一欲讀取資料起始位址(4951)及一欲讀取資料長度4955。本發明可以將一特定指令識別碼(signature)、(舊)第一個邏輯磁區位址(L_A)及(新)第二個邏輯磁區(L_B)位址串接組合後,填入原本之欲讀取資料起始位址4951中,再加上原本之欲讀取資料長度4955,藉此以組合成一特定指令495。換言之,此實施例之特定指令495將包括特定指令識別碼、第一個邏輯磁區位址(L_A)、第二個邏輯磁區位址(L_B)及欲讀取資料長度4955。資料儲存系統30接收到主機系統40所下達之指令後,首先將比對欲讀取資料起始位址4951是否包括有特定指令識別碼?如果包括特定指
令識別碼,則代表係一特定指令495,必須執行資料讀取及資料搬移動作。將第一個邏輯磁區位址(L_A)及所欲讀取資料長度4955所指向實體儲存單元351內儲存之已儲存資料(D_A)讀取複製至記憶體緩衝區45,並把該已儲存資料D_A所在之實體儲存位址(B1,P0)搬移指向至第二個邏輯磁區位址(L_B)。
又,請參閱第6圖,係本發明特定指令又一實施例之構造示意圖。於此實施例中,主要係修改讀取指令的欲讀取資料起始位址4951及利用記憶體緩衝區45之部分空間,以成為一特定指令495。本發明可以將一特定指令識別碼(signature)、(第一個)舊邏輯磁區位址(L_A)串接後,填入原本讀取指令之欲讀取資料啟始位址4951中,並把(第二個)新邏輯磁區位址(L_B)填入記憶體緩衝區45的指定位置(例如第1個位址),如此即可成為一特定指令495。換言之,此實施例之特定指令495將包括特定指令識別碼、第一個邏輯磁區位址(L_A)及欲讀取資料長度4955,而第二個邏輯磁區位址(L_B)則被另外存放於記憶體緩衝區45。資料儲存系統30接收到主機系統40所下達之指令後,首先將比對欲讀取資料起始位址4951是否包括有特定指令識別碼?如果包括特定指令識別碼,則代表係一特定指令495,必須執行資料讀取及資料搬移動作。將第一個邏輯磁區位址(L_A)及所欲讀取資料長度4955所指向實體儲存單元351內儲存之已儲存資料(D_A)讀取複製至記憶體緩衝區45,並把該已儲存資料D_A所在之實體儲存位址(B1,P0)搬移指向至第二個邏輯磁區位址(L_B)。
又,請參閱第7圖,係本發明特定指令又一實施例之構造示意圖。於此實施例中,主要係創立另一個全新而不受現有記憶體指令規格限制的特定指令495,可以稱為係一廠商特定指令(Vendor Specific Command)。此廠商特定指令495直接包括有(舊)第一個邏輯磁區位址(L_A)、(新)第二個邏輯磁區位址(L_B)及所欲讀取資料長度,不會出現如先前實施例所使用之特定指令識別碼。資料儲存系統30接收到主機系統40所
下達之指令後,直接判斷出係一廠商特定指令495,則必須執行資料讀取及資料搬移動作。將第一個邏輯磁區位址(L_A)及所欲讀取資料長度4955所指向實體儲存單元351內儲存之已儲存資料(D_A)讀取複製至記憶體緩衝區45,並把該已儲存資料D_A所在之實體儲存位址(B1,P0)搬移指向至第二個邏輯磁區位址(L_B)。
由於本發明之特定指令495係可自動執行資料讀取及資料搬移程序,所以當使用者有實際需求要讀取實體儲存記憶體35內之已儲存資料(D_A),並需同時搬移已儲存資料(D_A)至另一個新的邏輯磁區位址(L_B)時,只要下達一個特定指令495即可完成。相對於習用資料儲存系統必須接收兩個單獨之讀取指令及搬移指令後,再去執行讀取與搬移兩個程序,或者是接收三個單獨之讀取、寫入及刪除指令後,再去執行讀取、寫入及刪除程序,本發明只需接收一個特定指令後,即可自動執行讀取及搬移兩個程序,因此,本發明可以減少輸出入延遲及降低資料儲存系統之寫入次數,以提高資料儲存系統之使用效率及使用壽命。
本發明資料儲存系統及其特定指令執行方法亦適用於具有同位元檢查(parity)功能之磁碟陣列系統,例如RAID4、RAID5或RAID6。當主機系統40欲讀取第一個邏輯磁區位址L_A所對應指向之已儲存資料D_A,並將已儲存資料D_A中搬移(move)至另一第二個邏輯磁區位址L_B時,只要下達本發明之讀取-搬移之特定指令495。記憶體管理器39接收到一指令實,會判斷該指令係一正常指令或一特定指令,記憶體管理器39會控制並進行:(a).特定指令495已具有第一個邏輯磁區位址L_A、欲讀取資料長度、第二個邏輯磁區位址L_B資料,因此,將已儲存資料D_A讀取複製於記憶體緩衝區45,且將原先第一個邏輯磁區位址L_A所指向之實體儲存位址(B1,P0)改由(搬移)第二個輯磁區位址L_B所指向之;(b).將第一個邏輯磁區位址L_A所對應之磁碟陣列資料條(Data Stripe)S_A的同位元檢查區塊資料P_A讀取至記憶體緩衝區45;(c).將第二個邏輯磁區位址L_B之儲存資料
D_B讀取至記憶體緩衝區45;(d).將第二個邏輯磁區位址L_B相對應之磁碟陣列資料條S_B的同位元檢查區塊資料P_B讀取至記憶體緩衝區45;(e).藉由儲存資料D_A、同位元檢查區塊資料P_A及一空白資料,計算出(例如XOR運算)第一個邏輯磁區位址L_A之新同位元檢查區塊資料P_A2;(f).藉由儲存資料D_B、同位元檢查區塊資料P_B及儲存資料D_A,計算出(例如XOR運算)邏輯磁區位址L_B之新同位元檢查區塊資料P_B2;(g).將暫存於記憶體緩衝區45之新同位元檢查資料P_B2寫入磁碟陣列資料條S_B的同位元檢查區塊中;(g).將邏輯磁區位址L_A內之儲存資料D_A予以刪除或設為無效;及(i).將暫存於記憶體緩衝區45之新同位元檢查資料P_A2寫入磁碟陣列資料條S_A的同位元檢查區塊中。
相較於習用具有同位元檢查(parity)功能之磁碟陣列系統之讀取指令及搬移指令,本發明除了可減少一次讀取指令下達外,也可以減少一次資料之寫入(D_A寫入L_B),因此,本發明可以減少輸出入延遲及降低資料儲存系統之寫入次數,以提高資料儲存系統之使用效率及使用壽命。
本發明尤其適用於磁碟陣列為植基為日誌(Log-Based)、寫時複製(Copy on Write;COW)、或一般磁碟陣列搭配日誌或寫時複製檔案系統者。這些檔案系統具有資料搬移之目的位址(第二個邏輯磁區位址L_B)係為空白區塊,且來源位址(第一個邏輯磁區位址L_A)於資料搬移後將被視無效。當主機系統40欲讀取第一個邏輯磁區位址L_A所對應之已儲存資料D_A,並將已儲存資料D_A中搬移(move)至另一第二個邏輯磁區位址L_B時,只要下達本發明之讀取-搬移之特定指令495,主機系統40及/或記憶體管理器39會控制並進行:(a).特定指令495已具有第一個邏輯磁區位址L_A、欲讀取資料長度、第二個邏輯磁區位址L_B2等資料,因此將已儲存資料D_A讀取複製於記憶體緩衝區45,且將原先第一個邏輯磁區位址L_A所指向之實體儲存位址(B1,P0)改由(搬移)第二個輯磁區位址L_B所指向;(b).將邏輯磁區
位址L_B相對應之磁碟陣列資料條S_B的同位元檢查區塊資料P_B讀取至記憶體緩衝區45;(c).藉由儲存資料D_B(空白資料)、同位元檢查區塊資料P_B及儲存資料D_A,計算出(例如XOR運算)第二個邏輯磁區位址L_B之新同位元檢查區塊資料P_B2;(d).將暫存於記憶體緩衝區45之新同位元檢查資料P_B2寫入磁碟陣列資料條S_B的同位元檢查區塊中。
相較於習用具有同位元檢查(parity)功能之磁碟陣列系統之讀取指令及搬移指令,本發明除了可減少一次讀取指令下達外,也可以不必執行以下4個動作:(b).讀取複製L_A之同位元檢查區塊資料P_A、(c).讀取複製L_B所對應資料D_B、(e).運算出L_A之新同位元檢查區塊資料P_A2、及(j).將L_A所指向之實體儲存位址設為無效。藉此可節省兩次讀取(P_A及D_B)、兩次寫入(D_A及P_A2)、一次刪除(L_A)及一次運算(P_A2)等六個步驟。因此,本發明可以減少輸出入延遲及降低資料儲存系統之寫入次數,以提高資料儲存系統之使用效率及使用壽命。
以上所述者,僅為本發明之一較佳實施例而已,並非用來限定本發明實施之範圍,即凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
S301~S309、S315‧‧‧步驟
Claims (12)
- 一種資料儲存系統,包括:一個或多個實體儲存記憶體,每一個實體儲存記憶體可區分成多個實體儲存單元,而每一實體儲存單元具有一實體儲存位址,部分實體儲存單元內儲存有一已儲存資料;多個邏輯磁區位址,部分邏輯磁區位址藉由一邏輯-實體位址對照表而指向相對應之其中一實體儲存位址;及一記憶體管理器,電性連接一主機系統、該實體儲存記憶體及該邏輯磁區位址,可接收來自於主機系統之一正常指令、一特定指令、或一正常指令及一特定指令,該特定指令包括有其中一第一個邏輯磁區位址、一欲讀取資料長度及一第二磁區邏輯位址;其中,該記憶體管理器可根據該特定指令而將對應於該第一個邏輯磁區位址及該欲讀取資料長度所指向之一第一個實體儲存位址內的該已儲存資料讀取複製於一記憶體緩衝區,並將原指向於該第一個邏輯磁區位址之該實體儲存位址搬移指向至該第二個邏輯磁區位址。
- 如申請專利範圍第1項所述之資料儲存系統,其中該已儲存資料搬移至該第二磁區邏輯位址係經由該記憶體管理器修改該邏輯-實體位址對照表,將儲存該已儲存資料之實體儲存位址所指向之邏輯磁區位址由該第一個邏輯磁區位址修改為該第二個邏輯磁區位址。
- 如申請專利範圍第1項所述之資料儲存系統,其中該正常指令包括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指令識別碼、該第一個邏輯磁區位址及該第二磁區邏輯位址之組合。
- 如申請專利範圍第1項所述之資料儲存系統,其中該正常指令包括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指 令識別碼及該第一個邏輯磁區位址之組合,而該特定指令內之該第二個邏輯磁區位址則存放於該記憶體緩衝區。
- 如申請專利範圍第1項所述之資料儲存系統,其中該特定指令係為一廠商特定指令,包括該第一個邏輯磁區位址、該欲讀取資料長度及該第二磁區邏輯位址。
- 如申請專利範圍第1項所述之資料儲存系統,其中該記憶體緩衝區係設於該資料儲存系統或該主機系統。
- 一種特定指令執行方法,適用於一資料儲存系統,該資料儲存系統包括有至少一實體儲存記憶體、多個邏輯磁區位址及一記憶體管理器,該實體儲存記憶體分成多個實體儲存單元,而每一個實體儲存單元具有一實體儲存位址,部分實體儲存單元內儲存有一已儲存資料,部分邏輯磁區位址可藉由一邏輯-實體位址對照表而指向相對應之其中一實體儲存位址,而該記憶體管理器可分別電性連接實體儲存記憶體及邏輯磁區位址區,該特定指令執行方法包括:記憶體管理器接收一指令,判斷該指令係一正常指令或一特定指令;若為該特定指令,則解讀該特定指令內之一第一個邏輯磁區位址、一欲讀取資料長度及一第二個邏輯磁區位址,將該第一個邏輯磁區位址所指向該實體儲存位址內的該已儲存資料讀取複製於一記憶體緩衝區;及將原指向於該第一個邏輯磁區位址之實體儲存位址搬移指向至該第二個邏輯磁區位址。
- 如申請專利範圍第7項所述之特定指令執行方法,其中該已儲存資料搬移至該第二磁區邏輯位址係經由該記憶體管理器修改該邏輯-實體位址對照表,將儲存該已儲存資料之實體儲存位址所指向之邏輯磁區位址由該第一個邏輯磁區位址修改為該第二個邏輯磁區位址。
- 如申請專利範圍第7項所述之特定指令執行方法,其中該正常指令包 括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指令識別碼、該第一個邏輯磁區位址及該第二磁區邏輯位址之組合。
- 如申請專利範圍第7項所述之特定指令執行方法,其中該正常指令包括有一讀取指令,讀取指令內包括有一欲讀取資料起始位址及該欲讀取資料長度,而該特定指令即是將該欲讀取資料起始位址修改為一特定指令識別碼及該第一個邏輯磁區位址之組合,而該特定指令內之該第二個邏輯磁區位址則存放於該記憶體緩衝區。
- 如申請專利範圍第7項所述之特定指令執行方法,其中該特定指令係為一廠商特定指令,包括該第一個邏輯磁區位址、該欲讀取資料長度及該第二磁區邏輯位址。
- 一種特定指令執行方法,適用於一磁碟陣列系統,該磁碟陣列系統為一日誌模式或一寫時複製模式,該磁碟陣列系統包括有至少一實體儲存記憶體、多個邏輯磁區位址及一記憶體管理器,該實體儲存記憶體分成多個實體儲存單元,而每一個實體儲存單元具有一實體儲存位址,部分實體儲存單元內儲存有一已儲存資料,部分邏輯磁區位址可藉由一邏輯-實體位址對照表而指向相對應之其中一實體儲存位址,而該記憶體管理器可分別電性連接實體儲存記憶體及邏輯磁區位址區,該特定指令執行方法包括:記憶體管理器接收一指令,判斷該指令係一正常指令或一特定指令;若為該特定指令,則解讀該特定指令內之一第一個邏輯磁區位址、一欲讀取資料長度及一第二個邏輯磁區位址,將該第一個邏輯磁區位址所指向該實體儲存位址內的該已儲存資料讀取複製於一記憶體緩衝區;將原指向於該第一個邏輯磁區位址之實體儲存位址搬移指向至該第二 個邏輯磁區位址;將第二個邏輯磁區位址相對應之一第二個磁碟陣列資料條的一第二個同位元檢查區塊資料讀取至該記憶體緩衝區;藉由一空白資料、該第二個同位元檢查區塊資料及該已儲存資料,計算出第二個邏輯磁區位址之一第二個新同位元檢查區塊資料;及將該第二個新同位元檢查區塊資料寫入該第二個磁碟陣列資料條的該第二個同位元檢查區塊中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104118116A TWI531963B (zh) | 2015-06-04 | 2015-06-04 | Data storage systems and their specific instruction enforcement methods |
US14/966,142 US9898216B2 (en) | 2015-06-04 | 2015-12-11 | Data storage system and specific command execution method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104118116A TWI531963B (zh) | 2015-06-04 | 2015-06-04 | Data storage systems and their specific instruction enforcement methods |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI531963B true TWI531963B (zh) | 2016-05-01 |
TW201643690A TW201643690A (zh) | 2016-12-16 |
Family
ID=56509199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104118116A TWI531963B (zh) | 2015-06-04 | 2015-06-04 | Data storage systems and their specific instruction enforcement methods |
Country Status (2)
Country | Link |
---|---|
US (1) | US9898216B2 (zh) |
TW (1) | TWI531963B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631505A (zh) * | 2019-10-08 | 2021-04-09 | 华邦电子股份有限公司 | 存储装置及存取方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10474528B2 (en) * | 2017-10-02 | 2019-11-12 | Western Digital Technologies, Inc. | Redundancy coding stripe based on coordinated internal address scheme across multiple devices |
US10379948B2 (en) | 2017-10-02 | 2019-08-13 | Western Digital Technologies, Inc. | Redundancy coding stripe based on internal addresses of storage devices |
CN108647110A (zh) * | 2018-03-30 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种增强型raid保护方法及ssd |
US10725941B2 (en) | 2018-06-30 | 2020-07-28 | Western Digital Technologies, Inc. | Multi-device storage system with hosted services on peer storage devices |
US10409511B1 (en) | 2018-06-30 | 2019-09-10 | Western Digital Technologies, Inc. | Multi-device storage system with distributed read/write processing |
CN109189325A (zh) * | 2018-07-20 | 2019-01-11 | 江苏华存电子科技有限公司 | 一种raid保护下提升闪存读取效能方法 |
US10592144B2 (en) | 2018-08-03 | 2020-03-17 | Western Digital Technologies, Inc. | Storage system fabric with multichannel compute complex |
CN109407993B (zh) * | 2018-10-31 | 2022-05-27 | 深圳市硅格半导体有限公司 | 数据访问方法、装置、计算机可读存储介质及系统 |
TWI708260B (zh) * | 2019-08-15 | 2020-10-21 | 華邦電子股份有限公司 | 儲存裝置及存取方法 |
CN112965853B (zh) * | 2021-02-26 | 2022-10-04 | 星汉智能科技股份有限公司 | 智能卡的数据存储及校验方法、装置及介质 |
CN113297111B (zh) * | 2021-06-11 | 2023-06-23 | 上海壁仞智能科技有限公司 | 人工智能芯片及其操作方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2257609C2 (ru) * | 1999-10-21 | 2005-07-27 | Мацусита Электрик Индастриал Ко., Лтд. | Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти |
US8180931B2 (en) * | 2004-01-20 | 2012-05-15 | Super Talent Electronics, Inc. | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch |
US8291194B2 (en) * | 2009-11-16 | 2012-10-16 | Mediatek Inc. | Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof |
CN103197985B (zh) * | 2011-11-08 | 2018-07-13 | 索尼公司 | 存储控制装置 |
US9021187B2 (en) * | 2013-01-29 | 2015-04-28 | Sandisk Technologies Inc. | Logical block address remapping |
US9690953B2 (en) * | 2013-03-14 | 2017-06-27 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
-
2015
- 2015-06-04 TW TW104118116A patent/TWI531963B/zh active
- 2015-12-11 US US14/966,142 patent/US9898216B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631505A (zh) * | 2019-10-08 | 2021-04-09 | 华邦电子股份有限公司 | 存储装置及存取方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201643690A (zh) | 2016-12-16 |
US9898216B2 (en) | 2018-02-20 |
US20160357461A1 (en) | 2016-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI531963B (zh) | Data storage systems and their specific instruction enforcement methods | |
US8850114B2 (en) | Storage array controller for flash-based storage devices | |
JP4829365B1 (ja) | データ記憶装置及びデータ書き込み方法 | |
KR101086857B1 (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 | |
US9317436B2 (en) | Cache node processing | |
US8316201B2 (en) | Methods for executing a command to write data from a source location to a destination location in a memory device | |
TWI584125B (zh) | 輸入/輸出裝置及計算主機相互運作 | |
US8130554B1 (en) | Securely erasing flash-based memory | |
KR102170539B1 (ko) | 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치 | |
US20100161932A1 (en) | Methods for writing data from a source location to a destination location in a memory device | |
US10956071B2 (en) | Container key value store for data storage devices | |
KR20110107798A (ko) | Ssd 기술에 의해 지원되는 스토리지 시스템 스냅샷 | |
US20130036256A1 (en) | Method and apparatus of sanitizing storage device | |
US8862819B2 (en) | Log structure array | |
US8433847B2 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
US20170308319A1 (en) | Semiconductor memory device and storage apparatus comprising semiconductor memory device | |
US9158478B2 (en) | Storage system and storage control method | |
US20190243758A1 (en) | Storage control device and storage control method | |
US20170017405A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
JP2020191055A (ja) | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 | |
US9170750B2 (en) | Storage apparatus and data copy control method | |
WO2014147786A1 (ja) | ストレージシステム及びデータ管理方法 | |
CN104978280B (zh) | 数据储存系统及其特定指令执行方法 | |
JP5691234B2 (ja) | ディスクアレイ装置、及び、ミラーリング制御方法 | |
WO2020052216A1 (zh) | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |