TWI754206B - 資料儲存系統、資料儲存裝置及其管理方法 - Google Patents
資料儲存系統、資料儲存裝置及其管理方法 Download PDFInfo
- Publication number
- TWI754206B TWI754206B TW109100918A TW109100918A TWI754206B TW I754206 B TWI754206 B TW I754206B TW 109100918 A TW109100918 A TW 109100918A TW 109100918 A TW109100918 A TW 109100918A TW I754206 B TWI754206 B TW I754206B
- Authority
- TW
- Taiwan
- Prior art keywords
- data storage
- look
- correlation
- lookup table
- rules
- Prior art date
Links
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
-
- 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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本發明提出一種資料儲存裝置的管理方法,包括以下步驟:根據多個先前存取指令獲得多個相關性規則;依據這些相關性規則建立多個查找表;接收當前存取指令,並且判斷當前存取指令是否對應這些查找表的至少其中之一以從對應的查找表獲得當前存取指令的實體位址;根據這些相關性規則預測後續存取指令所需要對應的查找表,並預先建立這些被預測的查找表。本發明還提出一種資料儲存系統與資料儲存裝置,可實施上述的管理方法。
Description
本發明是有關於一種資料存取技術,且特別是有關於一種資料儲存系統、資料儲存裝置及其管理方法。
近年來,各式配備儲存裝置的電子裝置已被消費者普遍應用在日常生活中,而且隨著儲存容量的需求增加,快速且大容量可供讀寫的非揮發性記憶體成為十分受歡迎的產品,這些產品大多以快閃記憶體來儲存資料。
由於快閃記憶體的讀寫特性,快閃記憶體會具有邏輯-實體位址查找表,其用來紀錄邏輯區塊位址(Logical Block Address,LBA)與實體區塊地址(Physical Block Address,PBA)之間的映射關係。通過查找表找出存取指令的邏輯位址實際在快閃記憶體中的區塊位址,才有辦法正確地存取資料。然而,因為儲存容量與成本的限制無法將所有的PBA與LBA的映射關係都記錄下來。如果存取指令的目標不在查找表所記錄的範圍內,系統需要移除現有的查找表並且根據目標的存取位址重新建立查找表,因此降低快閃記憶體的存取效率。
本發明提供一種資料儲存系統、資料儲存裝置及其管理方法,能夠減少重建資料儲存裝置所需要的邏輯-實體位址查找表次數,增加資料儲存裝置所需要的邏輯-實體位址查找表的命中率,進而提升資料儲存裝置的效能。
本發明的實施例提出一種資料儲存裝置,包括記憶體陣列、預測單元以及查找表管理單元。預測單元用以根據多個先前存取指令進行相關性規則分析後而獲得多個存取位置之間的多個相關性規則。查找表管理單元用以根據這些相關性規則管理多個查找表,其中查找表管理單元判斷當前存取指令是否對應這些查找表的至少其中之一以從對應的查找表獲得當前存取指令在記憶體陣列的實體位址,若不存在可對應的查找表則需建立可對應的查找表,並且根據這些相關性規則預測後續存取指令所對應的查找表,以及預先建立這些查找表。
本發明的實施例提出一種資料儲存系統,包括主機與資料儲存裝置。主機包括運算裝置,其中運算裝置根據多個先前存取指令進行相關性規則分析後獲得多個相關性規則。資料儲存裝置電性連接主機且包括輸入輸出介面、記憶體陣列與查找表管理單元。資料儲存裝置通過輸入輸出介面從主機接收這些相關性規則以及當前存取指令。查找表管理單元用以根據這些相關性規則管理多個查找表,其中查找表管理單元判斷當前存取指令是否對應這些查找表的至少其中之一以從對應的查找表獲得當前存取指令在記憶體陣列的實體位址,若不存在可對應的查找表則需建立可對應的查找表,並且根據這些相關性規則預測後續存取指令所對應的查找表,以及預先建立這些查找表。
本發明的實施例提出一種資料儲存裝置的管理方法,包括以下步驟:根據多個先前存取指令獲得多個相關性規則;依據這些相關性規則建立多個查找表;接收當前存取指令,並且判斷當前存取指令是否對應這些查找表的至少其中之一以從對應的查找表獲得當前存取指令的實體位址;若不存在可對應的查找表則需建立可對應的查找表,並且根據這些相關性規則預測後續存取指令所對應的查找表,以及預先建立這些查找表。
基於上述,本發明提供一種資料儲存系統、資料儲存裝置及其管理方法,藉由分析資料儲存裝置的存取歷史以獲得先前存取位置之間的相關性規則,並根據相關性規則建立查找表甚至進一步根據相關性規則預測接下來可能的存取位置並相應地預備好查找表,如此一來,可以提高查找表對應的命中率,減少重新建立查找表的次數,進而提升資料存取的效能。
為了使本發明之內容可以被更容易明瞭,以下特舉實施例做為本發明確實能夠據以實施的範例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟,係代表相同或類似部件。
圖1是依照本發明的一實施例的資料儲存裝置的功能方塊圖。在本實施例中,資料儲存裝置100可以是一種NAND快閃記憶體,但不限於此。資料儲存裝置100包括記憶體陣列110、記憶體控制器120、查找表管理單元130、輸入輸出介面140以及預測單元150。記憶體陣列110包括排列為矩陣狀的多個記憶體單元(memory cells)。記憶體控制器120基於來自輸入輸出介面140的存取指令而對記憶體陣列110進行資料存取動作。輸入輸出介面140例如支持SATA、USB、PCIe、或SPI等介面協議。查找表管理單元130用以管理多個查找表(look-up table,LUT)。這些查找表例如儲存在記憶體陣列110的備用區(Spare area)或快取記憶體(Cache)中。通過這些查找表,查找表管理單元130將存取目標的邏輯位址轉換成記憶體陣列110的實體位址。具體而言,查找表管理單元130包括快閃記憶體轉換層(Flash Translation Layer,FTL),可以將邏輯區塊位址(Logical Block Address,LBA)轉換為實體區塊地址(Physical Block Address,PBA)。記憶體控制器120根據查找表管理單元130提供的實體位址將資料移進或移出被選中的記憶體單元。
值得注意的是,本實施例的預測單元150可以分析資料儲存裝置100的存取歷史。預測單元150收集存取歷史中的多個存取指令(以下簡稱為先前存取指令),並且根據這些先前存取指令獲得多個相關性規則(Association Rules)。上述的相關性規反應存取目標之間的位置相關性。更具體而言,預測單元150會對這些先前存取指令進行量化(Quantization)處理以獲得多個量化資料,並且對這些量化資料進行相關性規則分析(Association Rules Analysis)以獲得這些相關性規則。查找表管理單元130根據預測單元150提供的相關性規則管理這些查找表。查找表管理單元130判斷當前存取指令是否對應這些現有的查找表的至少其中之一以從對應的查找表獲得當前存取指令在記憶體陣列110的實體位址,並且根據對應的相關性規則預測未來接收的存取指令(簡稱後續存取指令)所對應的查找表。當現有查找表中沒有任一查找表對應當前存取指令時,查找表管理單元130根據相關性規則建立對應當前存取指令的查找表以及預先建立被預測對應於後續存取指令的查找表。
在本實施例中,預測單元150以及查找表管理單元130可以藉由硬體及/或軟體的形式來實施,本發明不加以限制。在一實施例中,預測單元150或查找表管理單元130可為韌體(Firmware)的形式、中介軟體(middleware)或是應用程式(Application, APP)的形式預先儲存在資料儲存裝置100中,並且由記憶體控制器120或處理器執行。
以下將舉多個實施例以具體說明資料儲存裝置100的實施細節。
圖2是依照本發明的一實施例的資料儲存裝置的邏輯位址的分段方式示意圖,圖3是依照本發明的一實施例的相關性規則分析的過程示意圖。請參照圖2,邏輯位址範圍200以線性的方式呈現記憶體陣列110的資料儲存空間,記憶體陣列110的邏輯位址範圍200是經過量化處理後被標定區分為多個區段,如圖2顯示的區段A到區段G。詳細而言,區段A包括邏輯位址範圍200中的邏輯位址0x2000~0x2999的範圍。區段B包括邏輯位址0x3000~0x3999之間的範圍。區段C包括邏輯位址0x4000~0x4999之間的範圍。區段D包括邏輯位址0x5000~0x5999之間的範圍。區段E包括邏輯位址0x6000~0x6999之間的範圍。區段F包括邏輯位址0x7000~0x7999之間的範圍。區段G包括邏輯位址0x8000~0x8999之間的範圍。
本發明不限制記憶體陣列110的儲存空間大小、區段數目以及每個區段包括的邏輯位址範圍。另外,在本實施例中,記憶體陣列110的資料儲存空間是被等份劃分成多個區段A~G,亦即區段A~G中的每個區段的邏輯位址範圍的長度相同,但在其他實施例中,記憶體陣列110的資料儲存空間經過量化處理後,被標定為多個區段,這些區段的位址範圍的長度可以不相同。
資料儲存裝置100接收的每個存取指令包括存取目標的起始邏輯區塊位址以及扇區長度(Sector length),因此預測單元150可以根據量化處理後的區段A~G來對存取指令進行對應轉換,將存取目標的位置轉換成對應的區段。本實施例舉8個先前存取指令cmd1~cmd8為例,下列的表一記錄先前存取指令cmd1~cmd8的起始邏輯區塊位址、扇區長度以及對應的區段項目。舉例來說,先前存取指令cmd1的存取目標的位址範圍從0X2900到0X3000,對應到區段A與區段B;先前存取指令cmd2的存取目標的位址範圍從0X5200到0X7200,同時對應至區段D、區段E與區段F,以此類推,其餘先前存取指令cmd3~cmd8所對應的區段項目不再詳述。
表一
先前存取指令 | 起始LBA | 扇區長度 | 區段項目 |
cmd1 | 0X2900 | 0X0100 | AB |
cmd2 | 0X5200 | 0X2000 | DEF |
cmd3 | 0X7500 | 0X1000 | FG |
cmd4 | 0X2500 | 0X3000 | ABCD |
cmd5 | 0X2500 | 0X5000 | ABCDEF |
cmd6 | 0X6100 | 0X2000 | EFG |
cmd7 | 0X2500 | 0X4000 | ABCDE |
cmd8 | 0X4150 | 0X1000 | CD |
預測單元150計數先前存取指令cmd1~cmd8對區段A~G的存取次數,並根據區段A~G的存取次數進行相關性規則分析。請參照圖3,圖3的量化資料301紀錄先前存取指令cmd1~cmd8對區段A~G的存取次數。由表一可知,先前存取指令cmd1、cmd4、cmd5與cmd7的存取範圍都涉及區段A與區段B,區段A與區段B的存取次數都為4;先前存取指令cmd4、cmd5、cmd7與cmd8的存取範圍都涉及區段C,區段C的存取次數是4;先前存取指令cmd2、cmd4、cmd5、cmd7與cmd8的存取範圍都涉及區段D,區段D的存取次數是5;先前存取指令cmd2、cmd5、cmd6與cmd7的存取範圍都涉及區段E,區段E的存取次數是4;先前存取指令cmd2、cmd3、cmd5與cmd6的存取範圍都涉及區段F,區段F的存取次數是4;先前存取指令cmd3、cmd6的存取範圍都涉及區段G,區段G的存取次數是2。在此,每個區段的存取次數代表相關性規則分析中的支持度(support)。換句話說,量化資料301分別記錄了先前存取指令cmd1~cmd8對每個區段的支持度。預測單元150可依據最小支持度門檻來選擇有用的量化資料。在本實施例中,設定最小支持度門檻為2,如果量化資料301有某一區段的支持度小於最小支持度門檻,該區段的量化資料會被視為相關性不足而被剔除,另一方面,支持度不小於最小支持度門檻的量化資料則會被保留。量化資料301就被完全保留下來。
接著,預測單元150類推量化資料302。量化資料302記錄任二個區段組合的支持度。舉例來說,先前存取指令cmd1、cmd4、cmd5與cmd7的存取範圍同時涉及區段A與區段B,區段項目AB的支持度為4;先前存取指令cmd5與cmd7的存取範圍同時涉及區段A與區段E,區段項目AE的支持度為2;沒有任何一個先前存取指令同時涉及區段A與區段G,因此區段項目AG的支持度為0,以此類推,其餘區段組合的分析在此不再詳述。
接著,由於量化資料302有部分區段項目的支持度小於2,因此預測單元150將不合格的量化資料刪除,以保留具有一定相關性的量化資料303。
接著,預測單元150類推量化資料304。量化資料304記錄任3個區段組合的支持度。舉例來說,先前存取指令cmd4、cmd5與cmd7的存取範圍涉及區段A、區段B與區段C,區段項目ABC的支持度為3;先前存取指令cmd5與cmd7的存取範圍涉及區段A、區段B與區段E,區段項目ABE的支持度為2,以此類推。
接著,預測單元150類推量化資料305。量化資料305記錄任4個區段組合的支持度。舉例來說,先前存取指令cmd4、cmd5與cmd7的存取範圍涉及區段A、區段B、區段C與區段D,區段項目ABCD的支持度為3;先前存取指令cmd5與cmd7的存取範圍涉及區段A、區段B、區段C、與區段E,區段項目ABCE的支持度為2,以此類推。
預測單元150繼續產生量化資料306。量化資料305記錄任5個區段組合的支持度。至此,量化資料306只包括一個支持度為2的區段項目ABCDE。預測單元150會類推所有區段組合的支持度。
預測單元150進一步計算各區段或各區段組合之間的可信度(confidence),並且依據最小可信度門檻決定一或多個相關性規則,以使查找表管理單元130依據上述的相關性規則預測後續存取指令所對應的查找表。可信度是各區段或與區段組合之間的支持度比值,當可信度大於或等於最小可信度門檻時,該相關性規則才會成立。
請參照上述圖3的多個量化資料301~306,在此,設定最小可信度門檻為0.75。以下舉數個範例作為說明。以區段組合ABCD與區段D為例,兩者之間的可信度為1,大於最小可信度門檻,因此預測單元150建立區段組成ABC與區段D之間的相關性規則。換句話說,當資料儲存裝置100目前接收的存取指令(又稱為當前存取指令)的存取範圍涉及區段A、區段B與區段C時,預測單元150預測下個可能的存取範圍落在區段D內。以區段A以及區段組合ABCD之間的相關性為例,可信度為0.75,剛好通過最小可信度門檻,預測單元150建立區段A與區段組合ABC之間的相關性規則。如果當前存取指令的存取範圍落在區段A內,預測單元150預測接下來可能的存取範圍涉及區段A、區段B與區段C三者。以區段B以及區段組合BCDE之間的相關性為例,可信度為0.5,未超過最小可信度門檻,預測單元150不會建立區段B與區段組合CDE之間的相關性規則。如果當前存取指令的存取範圍落在區段B內,預測單元150預測接下來可能的存取範圍不會同時涉及區段C、區段D與區段E三者。
查找表管理單元130根據預測單元150提供的相關性規則建立與當前存取指令具有相關性的多個查找表。具體來說,每一個查找表的映射(mapping)範圍可以等於至少一區段的邏輯位址範圍。在本實施例中,每一個查找表的映射範圍等於區段A~G的其中之一的邏輯位址範圍。在另一實施例中,查找表的映射範圍也可以包括複數個區段的邏輯位址範圍。本發明並不限制查找表的映射範圍。
以當前存取指令的存取目標落在區段A內為例,查找表管理單元130判斷當前存取指令是否命中(Hit)現有的查找表。如果命中,查找表管理單元130提供當前存取指令的實體位址給記憶體控制器120,並且根據區段A的相關性規則預測接下來可能的存取目標的位置是落在0x2000~0x4999的範圍內(區段A至區段C)。查找表管理單元130進一步預備映射此存取範圍的查找表。查找表管理單元130還可以更進一步根據區段BCD的相關性規則或是根據區段A的其他相關性規則,預測接下來其他可能的存取位置,並且預備好查找表,以此類推。簡言之,查找表管理單元130會依序準備跟區段A具有相關性或間接相關性的查找表,因此這些查找表彼此之間都具有相關性規則關係。
如果當前存取指令沒有命中(Miss)現有的查找表,查找表管理單元130會建立可對應當前存取指令的查找表,還會根據相關性規則重新建立與當前存取指令具有相關性的多個查找表,新建立的多個查找表會包括被預測接下來會用到的查找表。簡言之,在當前存取指令沒有對應現有多個查找表的任一時,查找表管理單元130會根據相關性規則建立當前存取指令的所對應的查找表以及預先建立被預測對應於後續存取指令的查找表。
在本實施例中,當查找表的儲存空間不足時,查找表管理單元130會根據相關性規則優先移除對應最小支持度的查找表或是與當前存取指令相關性最低的查找表。在一實施例中,區段G的支持度最小,或者,當前存取指令的存取範圍同時涉及區段B與區段C,而區段G與組合區段BC的相關性最低(甚至是不相關),查找表管理單元130選擇移除對應區段G的查找表。
在本實施例中,預測單元150藉由分析存取歷史的多個先前存取指令獲得存取位置之間相關性規則,查找表管理單元130根據相關性規則來管理查找表,甚至預備對應未來可能的存取位置的查找表,以提升資料儲存裝置100的存取效率。其中,本實施例還通過量化處理的方式來減輕相關性規則分析的運算負擔。
圖4是依照本發明的另一實施例的資料儲存系統的功能方塊圖。資料儲存系統40包括主機H與資料儲存裝置400。資料儲存裝置400可以是一種NAND快閃記憶體,但不限於此。資料儲存裝置400與資料儲存裝置100相似,但可以不包括預測單元150。資料儲存裝置400通過輸入輸出介面140電性連接主機H,其中主機H包括運算裝置402。
主機H發送存取指令至資料儲存裝置400以寫入或讀取資料,並且記錄先前發送的存取指令。運算裝置402可以執行如資料儲存裝置100的預測單元150的動作,根據多個先前存取指令獲得多個相關性規則。運算裝置402可以是中央處理單元(Central Processing Unit,CPU)、微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似裝置或這些裝置的組合,藉由執行韌體或軟體來進行相關性規則分析。
資料儲存裝置400通過輸入輸出介面140從主機H接收這些相關性規則以及當前存取指令。查找表管理單元130會根據所接收的相關性規則管理多個查找表。查找表管理單元130可以判斷當前存取指令是否對應現有查找表的至少其中之一以從對應的查找表獲得當前存取指令在記憶體陣列110的實體位址,並且根據相關性規則預測後續存取指令所對應的查找表。關於運算裝置402如何獲得存取位置之間的相關性規則以及查找表管理單元130如何管理查找表的實施細節可以參照上述實施例的說明,在此不再加以贅述。
在本實施例中,將相關性規則分析的執行動作交付給主機H的運算裝置402,如此一來,可以降低資料儲存裝置400的運算需求。藉由從主機H接收相關性規則,資料儲存裝置400還是具有預測未來可能用到的查找表並且提升存取命中率的效果。
圖5是依照本發明的一實施例的資料儲存裝置的管理方法的流程圖。管理方法500可適用於上述的資料儲存裝置100以及資料儲存系統40。以下搭配上述實施例的元件符號說明管理方法500的步驟。
在步驟S510中,通過預測單元150或運算裝置402來根據多個先前存取指令獲得多個相關性規則。這些相關性規則會被提供至查找表管理單元130。接著,在步驟S520中,通過查找表管理單元130依據這些相關性規則建立多個查找表。接著,在步驟S530中,資料儲存裝置100或資料儲存裝置400接收當前存取指令。在步驟S540中,由查找表管理單元130判斷當前存取指令是否對應現有查找表的至少其中之一。如果當前存取指令命中現有查找表,則進行步驟S550,查找表管理單元130根據相關性規則預測後續存取指令所對應的查找表。另外,進行步驟S570,由查找表管理單元130從對應的查找表獲得當前存取指令的實體位址,並且由記憶體控制器120根據當前存取指令的實體位址執行存取動作。如果當前存取指令未命中現有查找表,進行步驟S560,根據這些相關性規則建立對應當前存取指令的查找表以及預先建立被預測對應於後續存取指令的查找表。接著,在執行步驟S570,由查找表管理單元130從新建立的查找表獲得當前存取指令的實體位址,並且由記憶體控制器120根據當前存取指令的實體位址執行存取動作。
管理方法500的實施細節可由圖1至圖4的實施例獲致足夠的建議、教示或說明,在此不再贅述。
圖6是依照本發明的另一實施例的資料儲存裝置的管理方法的流程圖。管理方法600可適用於上述的資料儲存裝置100以及資料儲存系統40。以下搭配上述實施例的元件符號說明管理方法600的步驟。
資料儲存裝置100或資料儲存裝置400裝設在一電子裝置上,以圖4的主機H為例。在步驟S610中,主機H開機。在步驟S620中,確認是否存在至少一相關性規則。當主機H或資料儲存裝置100或400內已儲存至少一相關性規則時,進行步驟S630,查找表管理單元130根據相關性規則優先建立對應最高支持度的查找表作為初始查找表,並根據相關性規則建立與初始查找表具有相關性的其他多個查找表。當多個查找表建立完成後,進行上述的步驟S540至步驟S570。當確認目前尚未建立任何相關性規則後,執行步驟S640,查找表管理單元130根據預設規則建立這些查找表並且由預測單元150開始記錄資料儲存裝置100的存取歷史或是由主機H開始記錄資料儲存裝置400的存取歷史,接續上述的步驟S570,直到收集到足夠的先前存取指令,運算裝置402或預測單元150根據存取歷史的先前存取指令獲得相關性規則。預設規則可以是出廠時的設定或者依照邏輯區塊位址的順序依序建立,本發明並不限制預設規則的制訂方式。
關於S540至步驟S570的實施細節可參照上述的說明,在此不再贅述。
綜上所述,本發明的上述實施例提出一種資料儲存系統、一種資料儲存裝置以及一種資料儲存裝置的管理方法。通過分析資料儲存裝置的存取歷史來獲得先前的存取位置之間的相關性規則,並且根據相關性規則來建立查找表甚至預測接下來的存取範圍以準備需要的查找表。如此一來,資料儲存裝置能夠根據熱資料來適應性的準備查找表,提升查找表可被對應的命中率,減少重建查找表的次數,進而提升儲存裝置的存取效能。
40:資料儲存系統
100、400:資料儲存裝置
110:記憶體陣列
120:記憶體控制器
130:查找表管理單元
140:輸入輸出介面
150:預測單元
200:邏輯位址範圍
301~306:量化資料
402:運算裝置
500、600:管理方法
A~G:區段
H:主機
S510~S570、S610~S640:步驟
圖1是依照本發明的一實施例的資料儲存裝置的功能方塊圖。
圖2是依照本發明的一實施例的資料儲存裝置的邏輯位址的分段方式示意圖。
圖3是依照本發明的一實施例的相關性規則分析的過程示意圖。
圖4是依照本發明的另一實施例的資料儲存系統的功能方塊圖。
圖5是依照本發明的一實施例的資料儲存裝置的管理方法的流程圖。
圖6是依照本發明的另一實施例的資料儲存裝置的管理方法的流程圖。
500:管理方法
S510~S570:步驟
Claims (22)
- 一種資料儲存裝置,包括: 一記憶體陣列; 一預測單元,用以根據多個先前存取指令獲得多個存取位置之間的多個相關性規則;以及 一查找表管理單元,用以根據該些相關性規則管理多個查找表,其中該查找表管理單元判斷一當前存取指令是否對應該些查找表的至少其中之一以從對應的該查找表獲得該當前存取指令在該記憶體陣列的一實體位址,並且根據該些相關性規則預測一後續存取指令所對應的查找表。
- 如申請專利範圍第1項所述的資料儲存裝置,其中該預測單元對該些先前存取指令進行一量化處理以獲得多個量化資料,並且對該些量化資料進行一相關性規則分析以獲得該些相關性規則。
- 如申請專利範圍第2項所述的資料儲存裝置,其中該記憶體陣列的邏輯位址範圍經該量化處理後被標定區分為多個區段,該預測單元計數該些先前存取指令對該些區段的存取次數,並根據該些區段的存取次數進行該相關性規則分析。
- 如申請專利範圍第3項所述的資料儲存裝置,其中各該查找表的映射範圍等於至少一該區段的邏輯位址範圍。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,當該當前存取指令沒有對應該些查找表的任一時,該查找表管理單元根據該些相關性規則建立對應該當前存取指令的查找表以及預先建立被預測對應於該後續存取指令的查找表。
- 如申請專利範圍第1項所述的資料儲存裝置,其中,該查找表管理單元根據該些相關性規則建立與該當前存取指令具有相關性的該些查找表。
- 如申請專利範圍第1項所述的資料儲存裝置,其中該查找表管理單元根據該些相關性規則優先移除對應一最小支持度的該查找表或是與該當前存取指令相關性最低的該查找表。
- 一種資料儲存系統,包括: 一主機,包括一運算裝置,其中該運算裝置根據多個先前存取指令獲得多個相關性規則;以及 一資料儲存裝置,電性連接該主機且包括: 一輸入輸出介面,其中該資料儲存裝置通過該輸入輸出介面從該主機接收該些相關性規則以及一當前存取指令; 一記憶體陣列;以及 一查找表管理單元,用以根據該些相關性規則管理多個查找表,其中該查找表管理單元判斷該當前存取指令是否對應該些查找表的至少其中之一以從對應的該查找表獲得該當前存取指令在該記憶體陣列的一實體位址,並且根據該些相關性規則預測一後續存取指令所對應的查找表。
- 如申請專利範圍第8項所述的資料儲存系統,其中該運算裝置對該些先前存取指令進行一量化處理以獲得多個量化資料,並且對該些量化資料進行一相關性規則分析以獲得該些相關性規則。
- 如申請專利範圍第9項所述的資料儲存系統,其中該記憶體陣列的邏輯位址範圍被標定區分為多個區段,該運算裝置計數該些先前存取指令對該些區段的存取次數,並根據該些區段的存取次數進行該相關性規則分析。
- 如申請專利範圍第10項所述的資料儲存系統,其中各該查找表的映射範圍等於至少一該區段的邏輯位址範圍。
- 如申請專利範圍第8項所述的資料儲存系統,其中,當該當前存取指令沒有對應該些查找表的任一時,該查找表管理單元根據該些相關性規則建立對應該當前存取指令的查找表以及預先建立被預測對應於該後續存取指令的查找表。
- 如申請專利範圍第8項所述的資料儲存系統,其中,該查找表管理單元根據該些相關性規則建立與該當前存取指令具有相關性的該些查找表。
- 如申請專利範圍第8項所述的資料儲存系統,其中該查找表管理單元根據該些相關性規則優先移除對應一最小支持度的該查找表或是與該當前存取指令相關性最低的該查找表。
- 一種資料儲存裝置的管理方法,包括: 根據多個先前存取指令獲得多個相關性規則; 依據該些相關性規則建立多個查找表; 接收一當前存取指令,並且判斷該當前存取指令是否對應該些查找表的至少其中之一以從對應的該查找表獲得該當前存取指令的一實體位址;以及 根據該些相關性規則預測一後續存取指令所對應的查找表。
- 如申請專利範圍第15項所述的管理方法,其中根據該些先前存取指令獲得該些相關性規則的步驟包括: 對該些先前存取指令進行一量化處理以獲得多個量化資料,並且對該些量化資料進行一相關性規則分析以獲得該些相關性規則。
- 如申請專利範圍第16項所述的管理方法,其中對該些先前存取指令進行該量化處理以獲得該些量化資料,並且對該些量化資料進行該相關性規則分析的步驟包括: 將該資料儲存裝置的一記憶體陣列的邏輯位址範圍標定區分為多個區段; 計數該些先前存取指令對該些區段的存取次數;以及 根據該些區段的存取次數進行該相關性規則分析。
- 如申請專利範圍第17項所述的管理方法,其中各該查找表的映射範圍等於至少一該區段的邏輯位址範圍。
- 如申請專利範圍第15項所述的管理方法,其中,判斷該當前存取指令是否對應該些查找表的至少其中之一的步驟包括: 當該當前存取指令沒有對應該些查找表的任一時,根據該些相關性規則建立對應該當前存取指令的查找表以及預先建立被預測對應於該後續存取指令的查找表。
- 如申請專利範圍第15項所述的管理方法,還包括: 根據該些相關性規則優先移除對應一最小支持度的該查找表或是與該當前存取指令相關性最低的該查找表。
- 如申請專利範圍第15項所述的管理方法,其中,依據該些相關性規則建立該些查找表的步驟包括: 確認是否存在該些相關性規則; 當該些相關性規則不存在時,根據一預設規則建立該些查找表並且開始記錄該資料儲存裝置的一存取歷史,直到根據該存取歷史的該些先前存取指令獲得該些相關性規則;以及 當該些相關性規則存在時,根據該些相關性規則建立與該當前存取指令具有相關性的該些查找表。
- 如申請專利範圍第21項所述的管理方法,其中,開始依據該些相關性規則建立該些查找表的步驟包括: 根據該些相關性規則優先建立對應一最高支持度的查找表作為一初始查找表,並根據該些相關性規則建立與該初始查找表具有相關性的其他該些查找表。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100918A TWI754206B (zh) | 2020-01-10 | 2020-01-10 | 資料儲存系統、資料儲存裝置及其管理方法 |
US16/792,857 US10990521B1 (en) | 2020-01-10 | 2020-02-17 | Data storage system, data storage device and management method thereof |
CN202010110442.7A CN113110797B (zh) | 2020-01-10 | 2020-02-21 | 数据存储系统、数据存储装置及其管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109100918A TWI754206B (zh) | 2020-01-10 | 2020-01-10 | 資料儲存系統、資料儲存裝置及其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202127259A TW202127259A (zh) | 2021-07-16 |
TWI754206B true TWI754206B (zh) | 2022-02-01 |
Family
ID=75587553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109100918A TWI754206B (zh) | 2020-01-10 | 2020-01-10 | 資料儲存系統、資料儲存裝置及其管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10990521B1 (zh) |
TW (1) | TWI754206B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200745850A (en) * | 2005-10-26 | 2007-12-16 | Analog Devices Inc | Lookup table addressing system and method |
US20140365719A1 (en) * | 2013-01-28 | 2014-12-11 | Radian Memory Systems, LLC | Memory controller that provides addresses to host for memory location matching state tracked by memory controller |
TW201741880A (zh) * | 2016-05-20 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
TWI615709B (zh) * | 2016-03-30 | 2018-02-21 | 凌陽科技股份有限公司 | 記憶體內容自動搬移方法以及使用其之微處理系統 |
CN109189693A (zh) * | 2018-07-18 | 2019-01-11 | 深圳大普微电子科技有限公司 | 一种对lba信息进行预测的方法及ssd |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2169962A4 (en) * | 2007-07-17 | 2012-04-11 | Nippon Telegraph & Telephone | VIDEO CODING DEVICE AND METHOD, VIDEO CODING PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM |
TWI379197B (en) | 2008-05-28 | 2012-12-11 | Genesys Logic Inc | Flash memory storage management system and related method |
EP2592784B1 (en) * | 2011-11-14 | 2013-09-18 | Alcatel Lucent | Apparatus, method and computer program for routing data packets |
KR102210961B1 (ko) | 2013-06-12 | 2021-02-03 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법 |
TWI609263B (zh) | 2013-08-16 | 2017-12-21 | 司固科技公司 | 可變大小快閃轉變層 |
US10120817B2 (en) * | 2015-09-30 | 2018-11-06 | Toshiba Memory Corporation | Device and method for scheduling commands in a solid state drive to reduce peak power consumption levels |
TWI633434B (zh) | 2017-07-12 | 2018-08-21 | 宏碁股份有限公司 | 管理固態硬碟之方法、系統及電腦可讀取媒體 |
-
2020
- 2020-01-10 TW TW109100918A patent/TWI754206B/zh active
- 2020-02-17 US US16/792,857 patent/US10990521B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200745850A (en) * | 2005-10-26 | 2007-12-16 | Analog Devices Inc | Lookup table addressing system and method |
US20140365719A1 (en) * | 2013-01-28 | 2014-12-11 | Radian Memory Systems, LLC | Memory controller that provides addresses to host for memory location matching state tracked by memory controller |
TWI615709B (zh) * | 2016-03-30 | 2018-02-21 | 凌陽科技股份有限公司 | 記憶體內容自動搬移方法以及使用其之微處理系統 |
TW201741880A (zh) * | 2016-05-20 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
CN109189693A (zh) * | 2018-07-18 | 2019-01-11 | 深圳大普微电子科技有限公司 | 一种对lba信息进行预测的方法及ssd |
Also Published As
Publication number | Publication date |
---|---|
US10990521B1 (en) | 2021-04-27 |
CN113110797A (zh) | 2021-07-13 |
TW202127259A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10564853B2 (en) | System and method for locality detection to identify read or write streams in a memory device | |
US8918580B2 (en) | Storage device with buffer memory including non-volatile RAM and volatile RAM | |
KR101522402B1 (ko) | 반도체 디스크 장치 및 그것의 데이터 관리 방법 | |
US10782915B2 (en) | Device controller that schedules memory access to a host memory, and storage device including the same | |
US20100217920A1 (en) | Memory system and address allocating method of flash translation layer thereof | |
US8825946B2 (en) | Memory system and data writing method | |
US20100011156A1 (en) | Memory device and management method of memory device | |
CN105393228B (zh) | 读写闪存中数据的方法、装置及用户设备 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
JP7308025B2 (ja) | 集積回路装置及びストレージ装置 | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI796882B (zh) | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9990311B2 (en) | Peripheral interface circuit | |
TW202109299A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110088722B (zh) | 用于存储器设备中位置检测的系统和方法 | |
TWI755168B (zh) | 用來產生基於主機的快取資訊或基於快閃記憶體的快取資訊以建立及最佳化二元樹的快閃記憶體控制器、方法及記憶裝置 | |
TWI754206B (zh) | 資料儲存系統、資料儲存裝置及其管理方法 | |
CN113110797B (zh) | 数据存储系统、数据存储装置及其管理方法 | |
TWI757216B (zh) | 溫度控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112445417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
JP2022046413A (ja) | 記憶デバイスのための改良された先読み能力 | |
TWI810719B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI726541B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |