TW202013194A - Method for performing adaptive locking range management, and associated data storage device and controller thereof - Google Patents

Method for performing adaptive locking range management, and associated data storage device and controller thereof Download PDF

Info

Publication number
TW202013194A
TW202013194A TW108109171A TW108109171A TW202013194A TW 202013194 A TW202013194 A TW 202013194A TW 108109171 A TW108109171 A TW 108109171A TW 108109171 A TW108109171 A TW 108109171A TW 202013194 A TW202013194 A TW 202013194A
Authority
TW
Taiwan
Prior art keywords
range
new
logical block
block address
old
Prior art date
Application number
TW108109171A
Other languages
Chinese (zh)
Other versions
TWI684865B (en
Inventor
林志宇
潘泓廷
許頌伶
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to US16/503,591 priority Critical patent/US10884954B2/en
Priority to CN201910756356.0A priority patent/CN110908597B/en
Application granted granted Critical
Publication of TWI684865B publication Critical patent/TWI684865B/en
Publication of TW202013194A publication Critical patent/TW202013194A/en
Priority to US17/106,206 priority patent/US11360912B2/en

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Memory System (AREA)

Abstract

A method for performing adaptive locking range management, an associated data storage device and the controller thereof are provided. The method may include:receiving a security command from outside of the data storage device, wherein the security command is related to changing an old locking range into a new locking range; obtaining a start Logical Block Address (LBA) and a length value of the new locking range according to the security command; determining whether the start LBA of the new locking range is less than an end LBA of the old locking range, and determining whether the end LBA of the new locking range is greater than a start LBA of the old locking range; and in response to both determination results being true, performing data trimming on any respective non-overlapped portions of the new locking range and the old locking range.

Description

用來進行適應性鎖定範圍管理之方法以及資料儲存裝置及其控制器Method and data storage device and controller for adaptive lock range management

本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來進行適應性鎖定範圍管理(adaptive locking range management)之方法以及相關之資料儲存裝置及其控制器。The present invention relates to the access of flash memory, especially a method for adaptive locking range management and related data storage device and its controller.

快閃記憶體可廣泛地應用於各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell,SLC)、多階細胞(multiple level cell,MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的資料儲存裝置產品可採用三階細胞(triple level cell,TLC)快閃記憶體,甚至四階細胞(quadruple level cell,QLC)快閃記憶體。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。Flash memory can be widely used in various portable or non-portable data storage devices (for example: memory cards that comply with SD/MMC, CF, MS, XD or UFS standards; for example: solid-state hard drives; for example : Embedded storage devices that meet UFS or EMMC specifications). In terms of commonly used NAND flash memory, there are initially single-level cells (SLC), multiple-level cells (MLC) and other types of flash memory. Due to the continuous development of memory technology, newer data storage device products can use triple level cell (TLC) flash memory, or even quadruple level cell (QLC) flash memory. In order to ensure that the data storage device's access control to the flash memory can meet the relevant specifications, the controller of the flash memory is usually equipped with certain management mechanisms to properly manage its internal operations.

依據相關技術,有了這些管理機制的資料儲存裝置還是有不足之處。舉例來說,當製造商嘗試將資料儲存裝置實施成符合關於資料加密的某些規範時,相關操作可能需要被修改,這可導致這些管理機制中的某些部分變得更複雜。於是,資料儲存裝置之整體效能可能降低。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有可靠的管理機制之資料儲存裝置。According to related technologies, the data storage devices with these management mechanisms still have deficiencies. For example, when a manufacturer attempts to implement a data storage device to comply with certain specifications regarding data encryption, related operations may need to be modified, which may cause some parts of these management mechanisms to become more complicated. As a result, the overall performance of the data storage device may be reduced. Therefore, there is a need for a novel method and related architecture to implement a data storage device with a reliable management mechanism without side effects or less likely to cause side effects.

本發明之一目的在於提供一種用來進行適應性鎖定範圍管理之方法以及相關之資料儲存裝置及其控制器,以解決上述問題。An object of the present invention is to provide a method for adaptive lock range management and related data storage device and its controller to solve the above problems.

本發明之另一目的在於提供一種用來進行適應性鎖定範圍管理之方法以及相關之資料儲存裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下將可靠的管理機制賦予資料儲存裝置。Another object of the present invention is to provide a method for adaptive lock range management and related data storage devices and their controllers to confer reliable management mechanisms without side effects or less likely to cause side effects Data storage device.

本發明之至少一實施例提供一種用來進行適應性鎖定範圍管理之方法,其中該方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。該方法可包含:從該資料儲存裝置之外接收一安全(Security)指令,其中該安全指令是關於將一舊鎖定範圍(Locking Range)變更為一新鎖定範圍;依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(Logical Block Address,LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪(Data Trimming)。At least one embodiment of the present invention provides a method for adaptive lock range management, wherein the method is applied to a data storage device including a non-volatile memory (NV memory ), and the non-volatile memory includes at least one non-volatile memory element (NV memory element). The method may include: receiving a security command from outside the data storage device, wherein the security command is about changing an old locking range (Locking Range) to a new locking range; obtaining the new lock according to the security command A starting logical block address (LBA) and a length value of the range, where an ending logical block address of the new locked range is the starting logical block address of the new locked range and the The sum of the length values; determine whether the start logical block address of the new lock range is less than an end logical block address of the old lock range, and determine whether the end logical block address of the new lock range is greater than A starting logical block address of the old locking range; and the starting logical block address corresponding to the new locking range is smaller than the ending logical block address of the old locking range and the ending logic of the new locking range The block address is greater than a starting logical block address of the old lock range, and data trimming is performed on the new lock range and the portion of the old lock range that does not overlap.

本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作。該控制器可包含一處理電路,而該處理電路可依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收一安全指令,其中該安全指令是關於將一舊鎖定範圍變更為一新鎖定範圍;該控制器依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,該控制器對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪。At least one embodiment of the present invention provides a data storage device, which may include: a non-volatile memory for storing information, wherein the non-volatile memory includes at least one non-volatile memory element; and a controller, The non-volatile memory is coupled to control the operation of the data storage device. The controller may include a processing circuit, and the processing circuit may control the controller according to a plurality of host commands from a host device to allow the host to access the non-volatile memory through the controller body. For example: the controller receives a security command from the host, where the security command is about changing an old lock range to a new lock range; the controller obtains a starting logical block bit of the new lock range according to the security command Address (LBA) and a length value, where an end logical block address of the new lock range is the sum of the start logical block address of the new lock range and the length value; the controller determines the new lock Whether the starting logical block address of the range is less than an ending logical block address of the old locking range, and it is determined whether the ending logical block address of the new locking range is greater than a starting logical area of the old locking range Block address; and the starting logical block address corresponding to the new locked range is less than the ending logical block address of the old locking range and the ending logical block address of the new locking range is greater than the old locking range A starting logical block address, the controller performs data pruning on the new locked range and the portion of the old locked range that does not overlap.

本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收一安全指令,其中該安全指令是關於將一舊鎖定範圍變更為一新鎖定範圍;該控制器依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,該控制器對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪。At least one embodiment of the present invention provides a controller for a data storage device, wherein the data storage device includes the controller and a non-volatile memory, and the non-volatile memory includes at least one non-volatile memory element. The controller may include a processing circuit, and the processing circuit may control the controller according to a plurality of host commands from a host to allow the host to access the non-volatile memory through the controller. For example: the controller receives a security command from the host, where the security command is about changing an old lock range to a new lock range; the controller obtains a starting logical block bit of the new lock range according to the security command Address (LBA) and a length value, where an end logical block address of the new lock range is the sum of the start logical block address of the new lock range and the length value; the controller determines the new lock Whether the starting logical block address of the range is less than an ending logical block address of the old locking range, and it is determined whether the ending logical block address of the new locking range is greater than a starting logical area of the old locking range Block address; and the starting logical block address corresponding to the new locked range is less than the ending logical block address of the old locking range and the ending logical block address of the new locking range is greater than the old locking range A starting logical block address, the controller performs data pruning on the new locked range and the portion of the old locked range that does not overlap.

本發明的好處之一是,透過仔細設計之管理機制,本發明能針對該控制器的運作進行妥善的控制,尤其,能在不降低整體效能之狀況下實現符合某些規範之資料加密架構。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於傳統架構,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。One of the advantages of the present invention is that, through a carefully designed management mechanism, the present invention can properly control the operation of the controller, and in particular, can implement a data encryption architecture that meets certain specifications without degrading the overall performance. In addition, implementation according to the embodiments of the present invention does not increase many additional costs. Therefore, the problems of the related art can be solved without increasing the overall cost much. Compared with the traditional architecture, the present invention can achieve the optimized performance of the data storage device without side effects or less likely to cause side effects.

請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(host device)50的示意圖。例如:資料儲存裝置100可為固態硬碟(Solid State Drive,SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory,NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。Please refer to FIG. 1, which is a schematic diagram of a data storage device 100 and a host device 50 according to a first embodiment of the present invention. For example, the data storage device 100 may be a solid state drive (SSD). In addition, examples of the host 50 may include (but are not limited to): multifunctional mobile phones, tablet computers, and personal computers such as desktop computers and laptop computers. According to this embodiment, the data storage device 100 may include a controller such as a memory controller 110, and may further include a non-volatile memory (NV memory) 120, wherein the controller is used to store The non-volatile memory 120 is accessed, and the non-volatile memory 120 is used to store information.

非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、…與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、…與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明並不限於此。此外,資料儲存裝置100可更包括一揮發性記憶體元件以緩存資料,其中,該揮發性記憶體元件較佳為動態隨機存取記憶體(Dynamic Random Access Memory,簡稱DRAM)。揮發性記憶體元件可提供適當的資料暫存空間以緩存資料,或是僅提供小量的資料暫存空間以緩存小量資料。The non-volatile memory 120 may include a plurality of non-volatile memory elements (NV memory elements) 122-1, 122-2, ..., and 122-N, where the symbol "N" may represent a positive integer greater than one. For example, the non-volatile memory 120 may be a flash memory, and the non-volatile memory elements 122-1, 122-2, ..., and 122-N may be a plurality of flash memory chips, respectively. (Flash memory chip; may be referred to as flash chip) or a plurality of flash memory die (Flash memory die; may be referred to as flash die), but the invention is not limited thereto. In addition, the data storage device 100 may further include a volatile memory element to cache data, wherein the volatile memory element is preferably a dynamic random access memory (Dynamic Random Access Memory, DRAM for short). Volatile memory components can provide appropriate data temporary storage space to cache data, or only provide a small amount of data temporary storage space to cache small amounts of data.

記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116較佳為靜態隨機存取記憶體(Static Random Access Memory,簡稱SRAM)。舉例來說,如果資料儲存裝置100更配置有隨機存取記憶體(Dynamic Random Access Memory,簡稱DRAM),則記憶體控制器110可利用緩衝記憶體116作為第一層快取(Cache),並利用DRAM作為第二層快取。DRAM的資料儲存量較佳大於緩衝記憶體116的資料儲存量,且DRAM所緩存的資料來自於緩衝記憶體116或非揮發性記憶體120。The memory controller 110 may include a processing circuit such as a microprocessor 112, a storage such as a read-only memory (Read Only Memory, ROM) 112M, a control logic circuit 114, a buffer memory 116, and a transmission interface circuit 118, of which The components can be coupled to each other through a bus bar. The buffer memory 116 is preferably a static random access memory (Static Random Access Memory, SRAM for short). For example, if the data storage device 100 is further configured with dynamic random access memory (Dynamic Random Access Memory, DRAM for short), the memory controller 110 may use the buffer memory 116 as a first-level cache, and Use DRAM as the second layer cache. The data storage capacity of the DRAM is preferably greater than the data storage capacity of the buffer memory 116, and the data buffered by the DRAM comes from the buffer memory 116 or the non-volatile memory 120.

本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一錯誤更正碼電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準)且可依據該特定通訊標準進行通訊。The read-only memory 112M of this embodiment is used to store a code 112C, and the microprocessor 112 is used to execute the code 112C to control access to the non-volatile memory 120. Please note that the code 112C must also be stored in the buffer memory 116 or any form of memory. In addition, the control logic circuit 114 may include an error correction code circuit (not shown) to protect data and/or perform error correction, and the transmission interface circuit 118 may comply with a specific communication standard (such as Serial Advanced Technology Attachment (Serial Advanced Technology Attachment) Technology Attachment (SATA) standard, Peripheral Component Interconnect Express (PCIE) standard or Non-Volatile Memory Express (NVME) standard) and can communicate according to the specific communication standard.

於本實施例中,主機50可藉由傳送複數個主機指令(Host Command)至資料儲存裝置100以透過記憶體控制器110於非揮發性記憶體120中存取(例如讀取或寫入)資料,尤其,存取資料儲存裝置100中非揮發性記憶體120所儲存的資料(或稱為使用者資料),主機指令包括邏輯位址,例如:邏輯區塊位址(Logical Block Address,簡稱LBA)。記憶體控制器110接收主機指令並將主機指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之頁面(Page)。記憶體控制器110將資料的邏輯位址與實體位址之間的映射關係記錄於邏輯對實體位址映射表(Logical-to-Physical Address Mapping Table,簡稱「L2P表」),其中,實體位址可由通道(Channel)編號、邏輯單元編號(Logical Unit Number,LUN)、平面(Plane)編號、區塊編號、頁面編號以及偏移量(Offset)所組成。於某些實施例中,實體位址的實施可予以變化。例如,實體位址可包含通道編號、邏輯單元編號、平面編號、區塊編號、頁面編號、及/或偏移量。In this embodiment, the host 50 can access the non-volatile memory 120 (eg, read or write) by sending a plurality of host commands to the data storage device 100 through the memory controller 110 For data, in particular, to access data (or user data) stored in the non-volatile memory 120 in the data storage device 100, the host command includes a logical address, such as a logical block address (Logical Block Address, abbreviated as LBA). The memory controller 110 receives host commands and translates the host commands into memory operation commands (abbreviated as operation commands), and then controls the non-volatile memory 120 with the operation commands to read, write/program A page with a specific physical address in the volatile memory 120. The memory controller 110 records the mapping relationship between the logical address of the data and the physical address in a logical-to-physical address mapping table ("L2P table" for short), where the physical bit The address can be composed of channel (Channel) number, logical unit number (Logical Unit Number, LUN), plane (Plane) number, block number, page number, and offset (Offset). In some embodiments, the implementation of the physical address may be changed. For example, the physical address may include channel number, logical unit number, plane number, block number, page number, and/or offset.

L2P表可儲存於非揮發性記憶體120中之一管理表中,且可分割成多個群組(Group),而記憶體控制器110可依緩衝記憶體116的容量大小而將該多個群組中之一個群組或全部群組從非揮發性記憶體120載入緩衝記憶體116中作為一暫時L2P表,以供快速參考,但本發明不限於此。當使用者資料更新時,記憶體控制器110可依據使用者資料的最新映射關係來更新該暫時L2P表、及/或該管理表中的L2P表。L2P表的一個群組的大小較佳等於非揮發性記憶體元件122-n的一個頁面(Page)的大小,例如16KB,其中符號「n」可代表區間[1, N]中之任一整數。又例如,該管理表中的該L2P表的一個群組的大小可等於多個非揮發性記憶體元件122的一個頁面(Page)的大小,例如在N = 4的情況下,4個非揮發性記憶體元件122的一個頁面(Page)的大小,即64KB,其中這4個非揮發性記憶體元件122的頁面(Page)亦可稱為超級頁面(Super Page)。The L2P table can be stored in one of the management tables in the non-volatile memory 120, and can be divided into multiple groups (Group), and the memory controller 110 can divide the multiple according to the size of the buffer memory 116 One or all of the groups are loaded from the non-volatile memory 120 into the buffer memory 116 as a temporary L2P table for quick reference, but the invention is not limited thereto. When the user data is updated, the memory controller 110 may update the temporary L2P table and/or the L2P table in the management table according to the latest mapping relationship of the user data. The size of one group of the L2P table is preferably equal to the size of one page of the non-volatile memory element 122-n, for example 16KB, where the symbol "n" can represent any integer in the interval [1, N] . For another example, the size of one group of the L2P table in the management table may be equal to the size of one page of multiple non-volatile memory elements 122, for example, in the case of N=4, four non-volatile The size of one page of the sexual memory element 122 is 64KB, and the pages of the four non-volatile memory elements 122 may also be referred to as super pages.

對主機50而言,於資料儲存裝置100中可用的儲存空間可透過一系列LBA來存取。為了便於理解,假設主機50於資料儲存裝置100中寫滿資料。此情況下,每一筆資料都有一個獨一無二的LBA。例如,該系列LBA可包含一預定數量的LBA,而這些LBA的值落入從LBA#0到LBA#Max之範圍,其中Max為正整數。從LBA#0到LBA#Max之範圍可稱為全球範圍(Global Range)。主機50可設定全球範圍的存取權限的類別,例如,正常、讀取鎖定(Read-Locked)、寫入鎖定(Write-Locked)等等。另外,LBA的值可為連續的或不連續的,LBA的起始值可為0或任一正整數。For the host 50, the storage space available in the data storage device 100 can be accessed through a series of LBAs. For ease of understanding, it is assumed that the host 50 is full of data in the data storage device 100. In this case, each document has a unique LBA. For example, the series of LBAs may contain a predetermined number of LBAs, and the values of these LBAs fall within the range from LBA#0 to LBA#Max, where Max is a positive integer. The range from LBA#0 to LBA#Max can be called the Global Range. The host 50 can set the types of global access rights, for example, normal, read-locked (Read-Locked), write-locked (Write-Locked), and so on. In addition, the value of LBA may be continuous or discontinuous, and the starting value of LBA may be 0 or any positive integer.

資料可區分成可存取資料以及限制存取資料。針對限制存取資料,主機50可在全球範圍中建立一或多個鎖定範圍(Locking Range)並設定該一或多個鎖定範圍的存取權限的類別,例如,正常、讀取鎖定(Read-Locked)、寫入鎖定(Write-Locked)等等。例如,該一或多個鎖定範圍可包含複數個鎖定範圍,諸如第2圖所示之鎖定範圍#0、鎖定範圍#1與鎖定範圍#2。之後,主機50可依據使用者相關資訊(諸如使用者身份、使用者群組等)來設定使用者對於限制存取資料的存取權限。Data can be divided into accessible data and restricted access data. For restricting access to data, the host 50 may create one or more locking ranges (Locking Range) in the global range and set the types of access rights for the one or more locking ranges, for example, normal, read-lock (Read- Locked), Write-Locked, etc. For example, the one or more locking ranges may include a plurality of locking ranges, such as locking range #0, locking range #1, and locking range #2 shown in FIG. 2. After that, the host 50 can set the user's access right to restrict access to the data according to the user-related information (such as user identity, user group, etc.).

針對鎖定範圍的資料,主機50較佳命令資料儲存裝置100使用金鑰將資料加密成密文(Ciphertext),亦可使用金鑰而直接將資料加密成密文後,再將密文儲存至資料儲存裝置100。假設全球範圍的存取權限為正常,鎖定範圍#0的資料以金鑰#0加密,存取權限為讀取鎖定。當未授權的使用者欲藉由主機50而讀取鎖定範圍#0的資料時,資料儲存裝置100乃回傳一回傳訊息(諸如資料存取錯誤或資料保護)至主機50。鎖定範圍#1的資料較佳以金鑰#1加密,或仍以金鑰#0加密,存取權限為寫入鎖定。當未授權的使用者欲藉由主機50而更新或寫入鎖定範圍#1的資料時,資料儲存裝置100乃回傳一回傳訊息(諸如資料存取錯誤或資料保護)至主機50。另外,金鑰#0與金鑰#1較佳以金鑰#2加密成密文,以保護金鑰#0與金鑰#1。另外,加密或解密較佳由資料儲存裝置100的記憶體控制器110所執行。For the data in the locked range, the host 50 preferably instructs the data storage device 100 to encrypt the data into a ciphertext (Ciphertext) using a key, or directly encrypt the data into a ciphertext using the key, and then store the ciphertext to the data存装置100。 Storage device 100. Assuming that the global access authority is normal, the data in the lock scope #0 is encrypted with the key #0, and the access authority is read lock. When an unauthorized user wants to read the data in the locked range #0 through the host 50, the data storage device 100 returns a return message (such as data access error or data protection) to the host 50. The data in the lock range #1 is preferably encrypted with the key #1, or still encrypted with the key #0, and the access authority is write lock. When an unauthorized user wants to update or write data in the locked range #1 through the host 50, the data storage device 100 returns a return message (such as data access error or data protection) to the host 50. In addition, the key #0 and the key #1 are preferably encrypted with the key #2 into a ciphertext to protect the key #0 and the key #1. In addition, encryption or decryption is preferably performed by the memory controller 110 of the data storage device 100.

主機50可輸出安全(Security)指令或信任(Trusted)指令至資料儲存裝置100(尤其,記憶體控制器110)以調整或設定鎖定範圍。當鎖定範圍變更後,不在(新)鎖定範圍內的資料必需執行資料修剪(Trim),以保護原鎖定範圍內資料的機密性,而新增的鎖定範圍內的資料也需執行資料修剪。由於鎖定範圍會影響使用者存取資料的權利,因此,當鎖定範圍被調整或設定之後,如何快速地讓(新)鎖定範圍生效,並快速地完成資料修剪已成為技術上的一門重要課題。The host 50 can output a security command or a trusted command to the data storage device 100 (especially, the memory controller 110) to adjust or set the lock range. When the lock range is changed, the data that is not in the (new) lock range must be trimmed (Trim) to protect the confidentiality of the data in the original lock range, and the data in the new lock range must also be trimmed. Since the lock range affects the user's right to access data, after the lock range is adjusted or set, how to quickly make the (new) lock range take effect and quickly complete data trimming has become an important technical issue.

本發明至少一實施例揭露一種用來進行適應性鎖定範圍管理之方法,此方法可應用於資料儲存裝置100,並由資料儲存裝置100的記憶體控制器110所執行,且可快速地讓(新)鎖定範圍生效,例如透過其高效率的工作流程,如第3圖所示。另外,為簡述說明,全球範圍的存取權限假設為正常,且資料儲存裝置100已有(舊)鎖定範圍#0~#2,例如:(舊)鎖定範圍#0具有一起始LBA諸如LBA#A,且具有一結束LBA諸如LBA#B,並且其存取權限為讀取鎖定;(舊)鎖定範圍#1具有一起始LBA諸如LBA#C,且具有一結束LBA諸如LBA#D,並且其存取權限為寫入鎖定;以及(舊)鎖定範圍#2具有一起始LBA諸如LBA#E,且具有一結束LBA諸如LBA#F,存取權限為讀取鎖定。At least one embodiment of the present invention discloses a method for adaptive lock range management. This method can be applied to the data storage device 100 and is executed by the memory controller 110 of the data storage device 100, and can be quickly enabled ( New) The locking scope is in effect, for example, through its efficient workflow, as shown in Figure 3. In addition, for the sake of brief description, the global access rights are assumed to be normal, and the data storage device 100 already has (old) lock range #0~#2, for example: (old) lock range #0 has a starting LBA such as LBA #A, and has an end LBA such as LBA#B, and its access authority is read lock; (old) lock range #1 has a start LBA such as LBA#C, and has an end LBA such as LBA#D, and Its access right is write lock; and (old) lock range #2 has a start LBA such as LBA#E and an end LBA such as LBA#F, and the access right is read lock.

於步驟S12中,記憶體控制器110接收來自外部的一安全指令。依據本實施例,記憶體控制器110可從資料儲存裝置100之外接收多個安全指令(諸如主機50所傳送之安全指令),而第3圖所示之工作流程可執行多次以分別針對該多個安全指令進行對應的操作,其中這些安全指令可指出主機50要求記憶體控制器110更新或變更該複數個鎖定範圍中之對應的鎖定範圍。上述對應的鎖定範圍可包含第2圖所示之鎖定範圍#0、鎖定範圍#1與鎖定範圍#2。記憶體控制器110可依據這些安全指令變更鎖定範圍#0、鎖定範圍#1與鎖定範圍#2,尤其,從鎖定範圍#0、鎖定範圍#1與鎖定範圍#2之各自的原始版本或舊版本(於第4圖中標示為「(舊)」)變更為鎖定範圍#0、鎖定範圍#1與鎖定範圍#2之各自的新版本(於第4圖中標示為「(新)」)。In step S12, the memory controller 110 receives a security command from the outside. According to this embodiment, the memory controller 110 can receive multiple security commands (such as those transmitted by the host 50) from outside the data storage device 100, and the workflow shown in FIG. 3 can be executed multiple times to target The multiple security commands perform corresponding operations, where the security commands may indicate that the host 50 requires the memory controller 110 to update or change the corresponding lock range of the plurality of lock ranges. The corresponding lock range may include lock range #0, lock range #1, and lock range #2 shown in FIG. 2. The memory controller 110 can change the lock range #0, the lock range #1 and the lock range #2 according to these security instructions, in particular, from the original version or the old version of the lock range #0, the lock range #1 and the lock range #2 The version (marked as "(old)" in Figure 4) is changed to the new version of lock range #0, lock range #1, and lock range #2 (marked as "(new)" in Figure 4) .

於步驟S14中,記憶體控制器110依據該安全指令而取得(新)鎖定範圍的鎖定範圍編號、起始LBA以及長度值,該安全指令可更包括(新)鎖定範圍的存取權限。例如,在該多個安全指令中,第一個安全指令指出:針對(新)鎖定範圍#0,起始LBA為LBA#A’,結束LBA為LBA#B’,且存取權限為讀取鎖定。第二個安全指令指出:針對(新)鎖定範圍#1,起始LBA為LBA#C’,結束LBA為LBA#D’,且存取權限為寫入鎖定。第三個安全指令指出:針對(新)鎖定範圍#2,起始LBA為LBA#E’,結束LBA為LBA#F’,且存取權限為讀取鎖定,如第4圖所示。針對這些鎖定範圍中之任一鎖定範圍,記憶體控制器110可依據其起始LBA與長度值決定其結束LBA,其中,結束LBA的值為起始LBA的值加上長度值。記憶體控制器110可利用起始LBA與長度值之總和作為結束LBA。In step S14, the memory controller 110 obtains the lock range number, starting LBA, and length value of the (new) lock range according to the security command. The security command may further include the access permission of the (new) lock range. For example, among the multiple security instructions, the first security instruction states that for (new) lock range #0, the start LBA is LBA#A', the end LBA is LBA#B', and the access authority is read locking. The second security instruction states that for (new) lock range #1, the start LBA is LBA#C’, the end LBA is LBA#D’, and the access authority is write lock. The third security instruction states that for (new) lock range #2, the start LBA is LBA#E’ and the end LBA is LBA#F’, and the access authority is read lock, as shown in Figure 4. For any of these locking ranges, the memory controller 110 may determine the ending LBA according to its starting LBA and length value, where the ending LBA value is the starting LBA value plus the length value. The memory controller 110 may use the sum of the start LBA and the length value as the end LBA.

於步驟S16中,記憶體控制器110判斷(新)鎖定範圍的起始LBA是否小於(舊)鎖定範圍的結束LBA?如果正確(即判斷結果為「真」(True)),則執行步驟S18,如果不正確(即判斷結果為「偽」(False)),則執行步驟S20。當判斷(新)鎖定範圍#0時,由於LBA#A’小於LBA#B,所以執行步驟S18;當判斷(新)鎖定範圍#1時,由於LBA#C’小於LBA#D,所以執行步驟S18;當判斷(新)鎖定範圍#2時,由於LBA#E’小於LBA#F,所以執行步驟S18。In step S16, the memory controller 110 determines whether the start LBA of the (new) lock range is smaller than the end LBA of the (old) lock range? If it is correct (that is, the judgment result is "True"), then step S18 is performed, if it is not correct (that is, the judgment result is "False"), then step S20 is performed. When judging (new) lock range #0, since LBA#A' is smaller than LBA#B, execute step S18; when judging (new) lock range #1, since LBA#C' is smaller than LBA#D, execute step S18; when it is judged that the (new) lock range #2, since LBA#E' is smaller than LBA#F, step S18 is executed.

於步驟S18中,記憶體控制器110判斷(新)鎖定範圍的結束LBA是否大於(舊)鎖定範圍的起始LBA?如果正確(即判斷結果為「真」),則執行步驟S22,如果不正確(即判斷結果為「偽」),則執行步驟S20。當判斷(新)鎖定範圍#0時,由於LBA#B’大於LBA#A,這表示(舊)鎖定範圍#0與(新)鎖定範圍#0有部分鎖定範圍為重疊(Overlap),所以執行步驟S22;當判斷(新)鎖定範圍#1時,由於LBA#D’大於LBA#C,這表示(舊)鎖定範圍#1與(新)鎖定範圍#1有部分鎖定範圍為重疊,所以執行步驟S22;當判斷(新)鎖定範圍#2時,由於LBA#F’小於LBA#E,這表示(舊)鎖定範圍#2與(新)鎖定範圍#2完全不重疊,所以執行步驟S20。In step S18, the memory controller 110 determines whether the end LBA of the (new) lock range is greater than the start LBA of the (old) lock range? If it is correct (that is, the judgment result is "true"), then step S22 is executed, if it is not correct (that is, the judgment result is "false"), then step S20 is executed. When judging (new) locking range #0, since LBA#B' is greater than LBA#A, it means that (old) locking range #0 and (new) locking range #0 have some overlapping overlapping ranges, so execute Step S22; when it is judged that the (new) lock range #1, since LBA#D' is greater than LBA#C, it means that the (old) lock range #1 and the (new) lock range #1 overlap partially, so execute Step S22; when it is judged that (new) lock range #2, since LBA#F' is less than LBA#E, it means that (old) lock range #2 and (new) lock range #2 do not overlap at all, so step S20 is executed.

於步驟S20中,記憶體控制器110分別對(新)鎖定範圍以及(舊)鎖定範圍執行資料修剪。以鎖定範圍#2為例,由於(新)鎖定範圍#2以及(舊)鎖定範圍#2完全不重疊,所以,記憶體控制器110對(新)鎖定範圍#2,即LBA#E’~F’,以及(舊)鎖定範圍#2,即LBA#E~F,分別執行資料修剪。In step S20, the memory controller 110 performs data trimming on the (new) locked range and the (old) locked range, respectively. Taking lock range #2 as an example, since (new) lock range #2 and (old) lock range #2 do not overlap at all, memory controller 110 pairs (new) lock range #2, that is, LBA#E'~ F', and (old) lock range #2, namely LBA#E~F, perform data pruning separately.

於步驟S22中,記憶體控制器110對(新)鎖定範圍以及(舊)鎖定範圍未重疊的部分執行資料修剪,其中上述未重疊的部分包含(新)鎖定範圍之未被(舊)鎖定範圍重疊之任何部分以及(舊)鎖定範圍之未被(新)鎖定範圍重疊之任何部分。以鎖定範圍#0為例,未重疊的部分為LBA#A至LBA#A’以及LBA#B’至LBA#B,其中,由於LBA#A的值小於LBA#A’,且LBA#B’ 的值小於LBA#B,因此,記憶體控制器110分別對LBA#A~A’以及LBA#B’~B執行資料修剪。以鎖定範圍#1為例,未重疊的部分為LBA#C’至LBA#C以及LBA#D’至LBA#D,其中,由於LBA#C’的值小於LBA#C,且LBA#D’ 的值小於LBA#D,因此,記憶體控制器110分別對LBA#C’~C以及LBA#D’~D執行資料修剪。In step S22, the memory controller 110 performs data pruning on the (new) locked range and the portion of the (old) non-overlapping locking range, where the non-overlapping part includes the (new) locked range of the (new) locked range Any part of the overlap and any part of the (old) locked range that is not overlapped by the (new) locked range. Taking lock range #0 as an example, the non-overlapping parts are LBA#A to LBA#A' and LBA#B' to LBA#B, where the value of LBA#A is less than LBA#A' and LBA#B' Is smaller than LBA#B, therefore, the memory controller 110 performs data pruning on LBA#A~A' and LBA#B'~B, respectively. Taking lock range #1 as an example, the non-overlapping parts are LBA#C' to LBA#C and LBA#D' to LBA#D, where the value of LBA#C' is less than LBA#C and LBA#D' The value of is smaller than LBA#D, therefore, the memory controller 110 performs data pruning on LBA#C'~C and LBA#D'~D, respectively.

為了更好地理解,該方法可用第3圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第3圖所示之工作流程中增加、刪除或修改。舉例來說,對於步驟S16與步驟S18中之任一步驟而言,若判斷結果為「偽」,則執行步驟S20,這表示:於第3圖所示之工作流程中,執行步驟S16與步驟S18的順序可以對調,而不影響執行步驟S20或步驟S22之正確性。依據一實施例,可採納這樣的改變。尤其,於執行步驟S14之後,執行步驟S18;若步驟S18的判斷結果為「真」,則執行步驟S16;若步驟S18的判斷結果為「偽」,則執行步驟S20;若步驟S16的判斷結果為「真」,則執行步驟S22;以及若步驟S16的判斷結果為「偽」,則執行步驟S20。為了簡明起見,該實施例與前述實施例相仿的內容在此不重複贅述。For a better understanding, the method can be illustrated by the workflow shown in FIG. 3, but the present invention is not limited to this. According to some embodiments, one or more steps may be added, deleted, or modified in the workflow shown in FIG. 3. For example, for any of step S16 and step S18, if the judgment result is "false", then step S20 is executed, which means that in the workflow shown in FIG. 3, step S16 and step are executed The order of S18 can be reversed without affecting the correctness of performing step S20 or step S22. According to an embodiment, such a change may be adopted. In particular, after step S14 is performed, step S18 is performed; if the judgment result of step S18 is "true", then step S16 is performed; if the judgment result of step S18 is "false", then step S20 is performed; if the judgment result of step S16 If it is "true", then step S22 is executed; and if the judgment result of step S16 is "false", then step S20 is executed. For the sake of simplicity, the content of this embodiment that is similar to the foregoing embodiment will not be repeated here.

第5圖為依據本發明一實施例之一種適應性鎖定範圍管理方法的示意圖,其中第5圖可視為第3圖的簡化版本,可用以說明本發明之適應性鎖定範圍管理方法的優點。首先,記憶體控制器110先判斷(新)鎖定範圍以及(舊)鎖定範圍是否重疊,如步驟S16~S18所示。如果判斷的結果為未重疊,則分別對(新)鎖定範圍以及(舊)鎖定範圍執行資料修剪,如步驟S20所示。如果判斷的結果為有重疊,則僅對未重疊的部分執行資料修剪,如步驟S22所示。由於本發明之適應性鎖定範圍管理方法容易執行,因此,鎖定範圍的變更可快速地執行及生效,達到本發明的目的。FIG. 5 is a schematic diagram of an adaptive locking range management method according to an embodiment of the present invention. FIG. 5 can be regarded as a simplified version of FIG. 3 and can be used to illustrate the advantages of the adaptive locking range management method of the present invention. First, the memory controller 110 first determines whether the (new) lock range and the (old) lock range overlap, as shown in steps S16 to S18. If the result of the judgment is that there is no overlap, data pruning is performed on the (new) lock range and the (old) lock range, as shown in step S20. If the result of the judgment is that there is overlap, data trimming is performed only on the non-overlapped parts, as shown in step S22. Since the adaptive locking range management method of the present invention is easy to implement, the change of the locking range can be quickly implemented and effective, and the purpose of the present invention is achieved.

另外,主機50在設定鎖定範圍時,如果不同鎖定範圍編號的鎖定範圍有重疊的話,則記憶體控制器110直接回傳一回傳訊息諸如無效指令回主機50,不會執行資料修剪;如果不同存取權限的鎖定範圍有重疊的話,則記憶體控制器110也會直接回傳一回傳訊息諸如無效指令回主機50。In addition, when the host 50 sets the lock range, if the lock ranges of different lock range numbers overlap, the memory controller 110 directly returns a return message such as an invalid command back to the host 50 without data trimming; if different If the lock ranges of the access rights overlap, the memory controller 110 will also directly return a return message such as an invalid command to the host 50.

在主機50輸出安全指令且記憶體控制器110完成本發明用來進行適應性鎖定範圍管理之方法之後,鎖定範圍的更新已經完成。之後,主機50可輸出主機指令以存取資料儲存裝置100的資料,如果欲存取的資料的LBA未在鎖定範圍內,則資料儲存裝置100可回傳資料至主機50;如果欲存取的資料的LBA置於任何鎖定範圍時,資料儲存裝置100可回傳一回傳訊息(諸如資料存取錯誤或資料保護)至主機50。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。After the host 50 outputs a security command and the memory controller 110 completes the method for adaptive lock range management of the present invention, the update of the lock range has been completed. After that, the host 50 can output a host command to access the data of the data storage device 100. If the LBA of the data to be accessed is not within the lock range, the data storage device 100 can return the data to the host 50; if the When the LBA of the data is placed in any locking range, the data storage device 100 can return a return message (such as data access error or data protection) to the host 50. The above are only the preferred embodiments of the present invention, and all changes and modifications made in accordance with the scope of the patent application of the present invention shall fall within the scope of the present invention.

50:主機 100:資料儲存裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯電路 116:緩衝記憶體 118:傳輸介面電路 120:非揮發性記憶體 122、122-1、122-2、…、122-N:非揮發性記憶體元件 LBA#0、LBA#Max、LBA#A、LBA#B、LBA#C、LBA#D、LBA#E、LBA#F、LBA#A’、LBA#B’、LBA#C’、LBA#D’、LBA#E’、LBA#F’:邏輯區塊位址 S12、S14、S16、S18、S20、S22:步驟50: host 100: data storage device 110: memory controller 112: Microprocessor 112C: Code 112M: read-only memory 114: control logic circuit 116: Buffer memory 118: Transmission interface circuit 120: Non-volatile memory 122, 122-1, 122-2, ..., 122-N: non-volatile memory device LBA#0, LBA#Max, LBA#A, LBA#B, LBA#C, LBA#D, LBA#E, LBA#F, LBA#A', LBA#B', LBA#C', LBA#D ', LBA#E', LBA#F': logical block address S12, S14, S16, S18, S20, S22: steps

第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。 第2圖繪示一全球範圍(Global Range)以及多個鎖定範圍(Locking Range)的例子。 第3圖為依據本發明一實施例之一種用來進行適應性鎖定範圍管理之方法的工作流程。 第4圖繪示依據本發明一實施例之該方法之一鎖定範圍更新方案。 第5圖為依據本發明一實施例之一種適應性鎖定範圍管理方法的示意圖。FIG. 1 is a schematic diagram of a data storage device and a host device according to an embodiment of the invention. Figure 2 shows an example of a global range (Global Range) and multiple locking ranges (Locking Range). FIG. 3 is a workflow of a method for adaptive lock range management according to an embodiment of the invention. FIG. 4 illustrates a locking range update scheme of the method according to an embodiment of the invention. FIG. 5 is a schematic diagram of an adaptive locking range management method according to an embodiment of the present invention.

S12、S14、S16、S18、S20、S22:步驟 S12, S14, S16, S18, S20, S22: steps

Claims (20)

一種用來進行適應性鎖定範圍管理之方法,該方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含有: 從該資料儲存裝置之外接收一安全(Security)指令,其中該安全指令是關於將一舊鎖定範圍(Locking Range)變更為一新鎖定範圍; 依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(Logical Block Address,LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及 因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪(Data Trimming)。A method for adaptive lock range management, the method is applied to a data storage device, the data storage device includes a non-volatile memory (non-volatile memory (NV memory), the non-volatile memory includes at least A non-volatile memory element (NV memory element), the method includes: Receive a security command from outside the data storage device, where the security command is about changing an old locking range (Locking Range) to a new locking range; Obtain a starting logical block address (LBA) and a length value of the new locking range according to the security command, wherein an ending logical block address of the new locking range is the starting of the new locking range The sum of the starting logical block address and the length value; Determine whether the start logical block address of the new lock range is less than an end logical block address of the old lock range, and determine whether the end logical block address of the new lock range is greater than the old lock range A starting logical block address; and The starting logical block address corresponding to the new locking range is smaller than the ending logical block address of the old locking range and the ending logical block address of the new locking range is greater than a starting logical area of the old locking range Block address, perform data trimming (Data Trimming) on the new locked range and the part of the old locked range that does not overlap. 如申請專利範圍第1項所述之高效能垃圾收集方法,其另包含: 從該資料儲存裝置之外接收另一安全指令,其中該另一安全指令是關於將另一舊鎖定範圍變更為另一新鎖定範圍; 依據該另一安全指令取得該另一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該另一新鎖定範圍的一結束邏輯區塊位址為該另一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 判斷該另一新鎖定範圍的該起始邏輯區塊位址是否小於該另一舊鎖定範圍的一結束邏輯區塊位址; 因應該另一新鎖定範圍的該起始邏輯區塊位址小於該另一舊鎖定範圍的該結束邏輯區塊位址,判斷該另一新鎖定範圍的該結束邏輯區塊位址是否大於該另一舊鎖定範圍的一起始邏輯區塊位址;以及 因應該另一新鎖定範圍的該結束邏輯區塊位址不大於該另一舊鎖定範圍的一起始邏輯區塊位址,分別對該另一新鎖定範圍以及該另一舊鎖定範圍執行資料修剪。The high-efficiency garbage collection method as described in item 1 of the patent application scope, which additionally includes Receiving another security command from outside the data storage device, where the other security command is about changing another old lock range to another new lock range; Obtaining a starting logical block address and a length value of the other new locking range according to the another security command, wherein an ending logical block address of the other new locking range is the other of the new locking range The sum of the starting logical block address and the length value; Determine whether the address of the starting logical block of the other new locked range is less than the address of an end logical block of the other old locked range; In response to the start logical block address of another new locked range being smaller than the end logical block address of the other old locked range, it is determined whether the end logical block address of the other new locked range is greater than the A starting logical block address of another old locked range; and In response to that the end logical block address of another new locked range is not greater than the start logical block address of the other old locked range, data pruning is performed on the other new locked range and the other old locked range, respectively . 如申請專利範圍第2項所述之高效能垃圾收集方法,其另包含: 從該資料儲存裝置之外接收又一安全指令,其中該又一安全指令是關於將又一舊鎖定範圍變更為又一新鎖定範圍; 依據該又一安全指令取得該又一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該又一新鎖定範圍的一結束邏輯區塊位址為該又一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 判斷該又一新鎖定範圍的該起始邏輯區塊位址是否小於該又一舊鎖定範圍的一結束邏輯區塊位址;以及 因應該又一新鎖定範圍的該起始邏輯區塊位址不小於該又一舊鎖定範圍的該結束邏輯區塊位址,分別對該又一新鎖定範圍以及該又一舊鎖定範圍執行資料修剪。The high-efficiency garbage collection method as described in item 2 of the scope of patent application, which additionally includes: Receiving another security command from outside the data storage device, wherein the further security command is about changing another old lock range to another new lock range; Obtaining a starting logical block address and a length value of the further new locking range according to the further security command, wherein an ending logical block address of the further new locking range is the The sum of the starting logical block address and the length value; Judging whether the address of the starting logical block of the further new locked range is smaller than the address of an ending logical block of the further old locking range; and Since the address of the starting logical block of the new lock range is not less than the address of the ending logical block of the old lock range, the data is executed for the new lock range and the old lock range respectively prune. 如申請專利範圍第3項所述之高效能垃圾收集方法,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊,以及該又一新鎖定範圍以及該又一舊鎖定範圍完全不重疊。The high-efficiency garbage collection method as described in item 3 of the patent application scope, wherein the old lock range overlaps with the new lock range, and the other new lock range and the other old lock range do not overlap at all, And the another new lock range and the another old lock range do not overlap at all. 如申請專利範圍第2項所述之高效能垃圾收集方法,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,以及該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊。A high-efficiency garbage collection method as described in item 2 of the patent application scope, wherein the old lock range overlaps with the new lock range, and the other new lock range and the other old lock range do not overlap at all . 如申請專利範圍第1項所述之高效能垃圾收集方法,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊。The high-efficiency garbage collection method as described in item 1 of the patent application scope, in which the old lock scope overlaps with the new lock scope. 如申請專利範圍第1項所述之高效能垃圾收集方法,其另包含: 從該資料儲存裝置之外接收另一安全指令,其中該另一安全指令是關於將另一舊鎖定範圍變更為另一新鎖定範圍; 依據該另一安全指令取得該另一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該另一新鎖定範圍的一結束邏輯區塊位址為該另一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 判斷該另一新鎖定範圍的該起始邏輯區塊位址是否小於該另一舊鎖定範圍的一結束邏輯區塊位址;以及 因應該另一新鎖定範圍的該起始邏輯區塊位址不小於該另一舊鎖定範圍的該結束邏輯區塊位址,分別對該另一新鎖定範圍以及該另一舊鎖定範圍執行資料修剪。The high-efficiency garbage collection method as described in item 1 of the patent application scope, which additionally includes Receiving another security command from outside the data storage device, where the other security command is about changing another old lock range to another new lock range; Obtaining a starting logical block address and a length value of the other new locking range according to the another security command, wherein an ending logical block address of the other new locking range is the other of the new locking range The sum of the starting logical block address and the length value; Determining whether the starting logical block address of the other new locked range is less than the ending logical block address of the other old locked range; and In response to the start logical block address of another new locked range being not less than the end logical block address of the other old locked range, data is executed for the other new locked range and the other old locked range respectively prune. 如申請專利範圍第7項所述之高效能垃圾收集方法,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,以及該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊。A high-efficiency garbage collection method as described in item 7 of the patent application scope, in which the old lock range overlaps with the new lock range, and the other new lock range and the other old lock range do not overlap at all . 一種資料儲存裝置,包含有: 一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作,其中該控制器包含: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一安全(Security)指令,其中該安全指令是關於將一舊鎖定範圍(Locking Range)變更為一新鎖定範圍; 該控制器依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(Logical Block Address,LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 該控制器判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及 因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,該控制器對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪(Data Trimming)。A data storage device, including: A non-volatile memory (NV memory) for storing information, wherein the non-volatile memory includes at least one non-volatile memory element (NV memory element); and A controller, coupled to the non-volatile memory, is used to control the operation of the data storage device. The controller includes: A processing circuit for controlling the controller according to a plurality of host commands from a host device to allow the host to access the non-volatile memory through the controller, wherein: The controller receives a security command from the host, where the security command is about changing an old locking range (Locking Range) to a new locking range; The controller obtains a starting logical block address (LBA) and a length value of the new locking range according to the safety command, wherein an ending logical block address of the new locking range is the new locking range The sum of the starting logical block address and the length value; The controller determines whether the start logical block address of the new locked range is less than an end logical block address of the old locked range, and determines whether the end logical block address of the new locked range is greater than the old A starting logical block address of the locked range; and The starting logical block address corresponding to the new locking range is smaller than the ending logical block address of the old locking range and the ending logical block address of the new locking range is greater than a starting logical area of the old locking range Block address, the controller performs data trimming (Data Trimming) on the new lock range and the part of the old lock range that does not overlap. 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器從該資料儲存裝置之外接收另一安全指令,其中該另一安全指令是關於將另一舊鎖定範圍變更為另一新鎖定範圍;該控制器依據該另一安全指令取得該另一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該另一新鎖定範圍的一結束邏輯區塊位址為該另一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該另一新鎖定範圍的該起始邏輯區塊位址是否小於該另一舊鎖定範圍的一結束邏輯區塊位址;因應該另一新鎖定範圍的該起始邏輯區塊位址小於該另一舊鎖定範圍的該結束邏輯區塊位址,該控制器判斷該另一新鎖定範圍的該結束邏輯區塊位址是否大於該另一舊鎖定範圍的一起始邏輯區塊位址;以及因應該另一新鎖定範圍的該結束邏輯區塊位址不大於該另一舊鎖定範圍的一起始邏輯區塊位址,該控制器分別對該另一新鎖定範圍以及該另一舊鎖定範圍執行資料修剪。A data storage device as described in item 9 of the patent application scope, wherein the controller receives another security command from outside the data storage device, wherein the other security command is about changing another old lock range to another new Lock range; the controller obtains a start logical block address and a length value of the other new lock range according to the another security command, wherein an end logical block address of the other new lock range is the other The sum of the starting logical block address of a new locked range and the length value; the controller determines whether the starting logical block address of the other new locked range is less than an end of the other old locked range Logical block address; as the start logical block address of another new locked range is less than the end logical block address of the other old locked range, the controller determines the Whether the end logical block address is greater than a start logical block address of the other old locked range; and the end logical block address corresponding to another new locked range is not greater than a start of the other old locked range For logical block addresses, the controller performs data pruning on the other new locked range and the other old locked range, respectively. 如申請專利範圍第10項所述之資料儲存裝置,其中該控制器從該資料儲存裝置之外接收又一安全指令,其中該又一安全指令是關於將又一舊鎖定範圍變更為又一新鎖定範圍;該控制器依據該又一安全指令取得該又一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該又一新鎖定範圍的一結束邏輯區塊位址為該又一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該又一新鎖定範圍的該起始邏輯區塊位址是否小於該又一舊鎖定範圍的一結束邏輯區塊位址;以及因應該又一新鎖定範圍的該起始邏輯區塊位址不小於該又一舊鎖定範圍的該結束邏輯區塊位址,該控制器分別對該又一新鎖定範圍以及該又一舊鎖定範圍執行資料修剪。A data storage device as described in item 10 of the patent application scope, wherein the controller receives another security command from outside the data storage device, wherein the further security command is about changing another old lock range to another new Lock range; the controller obtains a starting logical block address and a length value of the further new locking range according to the further safety command, wherein an ending logical block address of the further new locking range is the The sum of the start logical block address of a new lock range and the length value; the controller determines whether the start logical block address of the further new lock range is less than an end of the further old lock range Logical block address; and the address of the starting logical block corresponding to another new locking range is not less than the ending logical block address of the further old locking range, the controller respectively locks the new block The range and the another old locked range perform data pruning. 如申請專利範圍第11項所述之資料儲存裝置,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊,以及該又一新鎖定範圍以及該又一舊鎖定範圍完全不重疊。The data storage device as described in item 11 of the patent application scope, in which the old lock range overlaps with the new lock range in part, the other new lock range and the other old lock range do not overlap at all, and the The new lock range and the old lock range do not overlap at all. 如申請專利範圍第10項所述之資料儲存裝置,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,以及該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊。The data storage device as described in item 10 of the patent application scope, wherein the old lock range overlaps with the new lock range, and the other new lock range and the other old lock range do not overlap at all. 如申請專利範圍第9項所述之資料儲存裝置,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊。The data storage device as described in item 9 of the patent application scope, in which the old lock scope and the new lock scope partially overlap. 如申請專利範圍第9項所述之資料儲存裝置,其中該控制器從該資料儲存裝置之外接收另一安全指令,其中該另一安全指令是關於將另一舊鎖定範圍變更為另一新鎖定範圍;該控制器依據該另一安全指令取得該另一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該另一新鎖定範圍的一結束邏輯區塊位址為該另一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該另一新鎖定範圍的該起始邏輯區塊位址是否小於該另一舊鎖定範圍的一結束邏輯區塊位址;以及因應該另一新鎖定範圍的該起始邏輯區塊位址不小於該另一舊鎖定範圍的該結束邏輯區塊位址,該控制器分別對該另一新鎖定範圍以及該另一舊鎖定範圍執行資料修剪。A data storage device as described in item 9 of the patent application scope, wherein the controller receives another security command from outside the data storage device, wherein the other security command is about changing another old lock range to another new Lock range; the controller obtains a start logical block address and a length value of the other new lock range according to the another security command, wherein an end logical block address of the other new lock range is the other The sum of the starting logical block address of a new locked range and the length value; the controller determines whether the starting logical block address of the other new locked range is less than an end of the other old locked range The logical block address; and in response to the start logical block address of another new lock range being not less than the end logical block address of the other old lock range, the controller respectively locks the other new block Data pruning is performed on the scope and the other old locked scope. 如申請專利範圍第15項所述之資料儲存裝置,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,以及該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊。The data storage device as described in item 15 of the patent application scope, wherein the old lock range overlaps with the new lock range, and the other new lock range and the other old lock range do not overlap at all. 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一安全(Security)指令,其中該安全指令是關於將一舊鎖定範圍(Locking Range)變更為一新鎖定範圍; 該控制器依據該安全指令取得該新鎖定範圍的一起始邏輯區塊位址(Logical Block Address,LBA)以及一長度值,其中該新鎖定範圍的一結束邏輯區塊位址為該新鎖定範圍的該起始邏輯區塊位址與該長度值之總和; 該控制器判斷該新鎖定範圍的該起始邏輯區塊位址是否小於該舊鎖定範圍的一結束邏輯區塊位址,且判斷該新鎖定範圍的該結束邏輯區塊位址是否大於該舊鎖定範圍的一起始邏輯區塊位址;以及 因應該新鎖定範圍的該起始邏輯區塊位址小於該舊鎖定範圍的該結束邏輯區塊位址以及該新鎖定範圍的該結束邏輯區塊位址大於該舊鎖定範圍的一起始邏輯區塊位址,該控制器對該新鎖定範圍以及該舊鎖定範圍未重疊的部分執行資料修剪(Data Trimming)。A controller for a data storage device includes the controller and a non-volatile memory (NV memory), the non-volatile memory includes at least one non-volatile memory element (NV memory element), the controller contains: A processing circuit for controlling the controller according to a plurality of host commands from a host device to allow the host to access the non-volatile memory through the controller, wherein: The controller receives a security command from the host, where the security command is about changing an old locking range (Locking Range) to a new locking range; The controller obtains a starting logical block address (LBA) and a length value of the new locking range according to the safety command, wherein an ending logical block address of the new locking range is the new locking range The sum of the starting logical block address and the length value; The controller determines whether the start logical block address of the new locked range is less than an end logical block address of the old locked range, and determines whether the end logical block address of the new locked range is greater than the old A starting logical block address of the locked range; and The starting logical block address corresponding to the new locking range is smaller than the ending logical block address of the old locking range and the ending logical block address of the new locking range is greater than a starting logical area of the old locking range Block address, the controller performs data trimming (Data Trimming) on the new lock range and the part of the old lock range that does not overlap. 如申請專利範圍第17項所述之控制器,其中該控制器從該資料儲存裝置之外接收另一安全指令,其中該另一安全指令是關於將另一舊鎖定範圍變更為另一新鎖定範圍;該控制器依據該另一安全指令取得該另一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該另一新鎖定範圍的一結束邏輯區塊位址為該另一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該另一新鎖定範圍的該起始邏輯區塊位址是否小於該另一舊鎖定範圍的一結束邏輯區塊位址;因應該另一新鎖定範圍的該起始邏輯區塊位址小於該另一舊鎖定範圍的該結束邏輯區塊位址,該控制器判斷該另一新鎖定範圍的該結束邏輯區塊位址是否大於該另一舊鎖定範圍的一起始邏輯區塊位址;以及因應該另一新鎖定範圍的該結束邏輯區塊位址不大於該另一舊鎖定範圍的一起始邏輯區塊位址,該控制器分別對該另一新鎖定範圍以及該另一舊鎖定範圍執行資料修剪。A controller as described in item 17 of the patent application scope, wherein the controller receives another security command from outside the data storage device, wherein the other security command is about changing another old lock range to another new lock Range; the controller obtains a start logical block address and a length value of the another new locked range according to the another security command, wherein an end logical block address of the other new locked range is the other The sum of the start logical block address of the new lock range and the length value; the controller determines whether the start logical block address of the other new lock range is less than an end logic of the other old lock range Block address; in response to the start logical block address of another new locked range being less than the end logical block address of the other old locked range, the controller determines the end of the other new locked range Whether the logical block address is greater than a starting logical block address of the other old locked range; and the starting logical block address corresponding to another new locked range is not greater than a starting logic of the other old locked range For the block address, the controller performs data pruning on the other new locked range and the other old locked range, respectively. 如申請專利範圍第18項所述之控制器,其中該控制器從該資料儲存裝置之外接收又一安全指令,其中該又一安全指令是關於將又一舊鎖定範圍變更為又一新鎖定範圍;該控制器依據該又一安全指令取得該又一新鎖定範圍的一起始邏輯區塊位址以及一長度值,其中該又一新鎖定範圍的一結束邏輯區塊位址為該又一新鎖定範圍的該起始邏輯區塊位址與該長度值之總和;該控制器判斷該又一新鎖定範圍的該起始邏輯區塊位址是否小於該又一舊鎖定範圍的一結束邏輯區塊位址;以及因應該又一新鎖定範圍的該起始邏輯區塊位址不小於該又一舊鎖定範圍的該結束邏輯區塊位址,該控制器分別對該又一新鎖定範圍以及該又一舊鎖定範圍執行資料修剪。The controller as described in item 18 of the patent application scope, wherein the controller receives another security command from outside the data storage device, wherein the further security command is about changing another old lock range to another new lock Range; the controller obtains a starting logical block address and a length value of the further new locking range according to the further safety command, wherein an ending logical block address of the further new locking range is the further The sum of the start logical block address of the new lock range and the length value; the controller determines whether the start logical block address of the further new lock range is less than an end logic of the further old lock range Block address; and the address of the starting logical block corresponding to another new lock range is not less than the end logical block address of the another old lock range, the controller respectively responds to the new lock range And that another old lock range performs data trimming. 如申請專利範圍第19項所述之控制器,其中該舊鎖定範圍與該新鎖定範圍有部分鎖定範圍為重疊,該另一新鎖定範圍以及該另一舊鎖定範圍完全不重疊,以及該又一新鎖定範圍以及該又一舊鎖定範圍完全不重疊。The controller as described in item 19 of the patent application scope, wherein the old lock range and the new lock range partially overlap the lock range, the other new lock range and the other old lock range do not overlap at all, and the The new lock range and the another old lock range do not overlap at all.
TW108109171A 2018-09-17 2019-03-18 Method for performing adaptive locking range management, and associated data storage device and controller thereof TWI684865B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/503,591 US10884954B2 (en) 2018-09-17 2019-07-04 Method for performing adaptive locking range management, associated data storage device and controller thereof
CN201910756356.0A CN110908597B (en) 2018-09-17 2019-08-16 Adaptive locking range management method, data storage device and controller thereof
US17/106,206 US11360912B2 (en) 2018-09-17 2020-11-30 Method for performing adaptive locking range management, associated data storage device and controller thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862731993P 2018-09-17 2018-09-17
US62/731,993 2018-09-17

Publications (2)

Publication Number Publication Date
TWI684865B TWI684865B (en) 2020-02-11
TW202013194A true TW202013194A (en) 2020-04-01

Family

ID=70413522

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108102004A TWI721365B (en) 2018-09-17 2019-01-18 High efficiency garbage collection method, and associated data storage device and controller thereof
TW108109171A TWI684865B (en) 2018-09-17 2019-03-18 Method for performing adaptive locking range management, and associated data storage device and controller thereof

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW108102004A TWI721365B (en) 2018-09-17 2019-01-18 High efficiency garbage collection method, and associated data storage device and controller thereof

Country Status (1)

Country Link
TW (2) TWI721365B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756854B (en) * 2020-04-27 2022-03-01 慧榮科技股份有限公司 Method and apparatus and computer program product for managing data storage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
US8386537B2 (en) * 2009-12-15 2013-02-26 Intel Corporation Method for trimming data on non-volatile flash media
US8949512B2 (en) * 2012-02-17 2015-02-03 Apple Inc. Trim token journaling
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
TWI524183B (en) * 2014-01-09 2016-03-01 群聯電子股份有限公司 Data writing method, memory control circuit unit and memory storage apparatus
US9703699B2 (en) * 2014-09-17 2017-07-11 Kabushiki Kaisha Toshiba Hybrid-HDD policy for what host-R/W data goes into NAND
US10185658B2 (en) * 2016-02-23 2019-01-22 Sandisk Technologies Llc Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
TWI622923B (en) * 2016-05-04 2018-05-01 群聯電子股份有限公司 Trim commands processing method, memory control circuit unit and memory storage apparatus
TWI619018B (en) * 2016-11-10 2018-03-21 慧榮科技股份有限公司 Garbage collection method for data storage device
CN108701084B (en) * 2017-01-23 2022-08-12 美光科技公司 Partial write block processing
TWI653533B (en) * 2017-03-07 2019-03-11 慧榮科技股份有限公司 Data storage device and method of operation thereof
TWI634424B (en) * 2017-05-08 2018-09-01 慧榮科技股份有限公司 Data storage device and operating method therefor
US10025534B1 (en) * 2017-12-20 2018-07-17 Seagate Technology Llc Shingled magnetic recording trim operation

Also Published As

Publication number Publication date
TW202013183A (en) 2020-04-01
TWI684865B (en) 2020-02-11
TWI721365B (en) 2021-03-11

Similar Documents

Publication Publication Date Title
TWI720588B (en) Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
US20200364159A1 (en) Storage system and method for performing and authenticating write-protection thereof
US10331457B2 (en) Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
TWI667590B (en) Data storage devices and methods for encrypting and updating firmware thereof
EP2997459B1 (en) System and method for high performance and low cost flash translation layer
AU2013242802B2 (en) Security management unit, host controller interface including the same, method for operating host controller interface, and devices including host controller interface
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
US20220091760A1 (en) Storage device, host device, electronic device including storage device and host device, and method of operating the same
US11868624B2 (en) Computing system and operating method thereof
US12039175B2 (en) Apparatus including data storage device and method of operating the same
US11360912B2 (en) Method for performing adaptive locking range management, associated data storage device and controller thereof
TWI684865B (en) Method for performing adaptive locking range management, and associated data storage device and controller thereof
US20230134534A1 (en) Memory controller and storage device
US20240184931A1 (en) Storage device, operating method thereof, and system for providing safe storage space between application and storage device on application-by-application basis
US20230136229A1 (en) Storage device, computing system, and method of operating the same
KR20230064538A (en) Memory controller and storage device
TW202429281A (en) Method for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update, memory controller of memory device, memory device, and electronic device
TW202429282A (en) Method for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table regions, memory controller of memory device, memory device, and electronic device
TW202416133A (en) Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding