CN108874300B - 数据储存装置以及其操作方法 - Google Patents
数据储存装置以及其操作方法 Download PDFInfo
- Publication number
- CN108874300B CN108874300B CN201710485129.XA CN201710485129A CN108874300B CN 108874300 B CN108874300 B CN 108874300B CN 201710485129 A CN201710485129 A CN 201710485129A CN 108874300 B CN108874300 B CN 108874300B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- flash memory
- flag
- storage device
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 83
- 238000013507 mapping Methods 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000009966 trimming Methods 0.000 abstract description 19
- 238000012937 correction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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
-
- 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/7202—Allocation control and policies
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据储存装置以及其操作方法,包括快闪存储器、数据处理模组、以及快闪存储器控制器。快闪存储器控制器在一主机操作下,配置快闪存储器以储存数据,并储存一映射表以记录主机的逻辑地址与快闪存储器之间的映射资讯。当主机传送一空间修整指令使映射表中的一特定部分为无效,并且主机要读取特定部分所映射的数据时,快闪存储器控制器将数据的一旗标设定为开启,使数据不经由数据处理模组的处理而被传送至主机。
Description
技术领域
本发明有关于数据储存装置,特别有关于非挥发式存储器的空间修整(trim)。
背景技术
数据储存装置所采用的非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
数据储存装置的效能受限于非挥发式存储器的操作特性。本领域一项重要议题为提升数据储存装置的效能。
发明内容
本发明揭示一种整合型空间修整技术,使得当主机要读取经过空间修整(Trim)后的无效数据时,数据储存装置能够透过不同的数据传输路径,传送固定的相同数据至主机。
本发明提供一种数据储存装置,包括快闪存储器、数据处理模组、以及快闪存储器控制器。快闪存储器控制器在一主机操作下,配置快闪存储器以储存数据,并储存一映射表以记录主机的逻辑地址与快闪存储器之间的映射资讯。当主机传送一空间修整指令使映射表中的一特定部分为无效,并且主机要读取特定部分所映射的数据时,快闪存储器控制器将数据的一旗标设定为开启,使数据不经由数据处理模组的处理而被传送至主机。
本发明提供一种数据储存装置操作方法,用以操作一数据储存装置。数据储存装置包括一快闪存储器、一数据处理器以及一快闪存储器控制器。数据储存装置操作方法包括:在一主机操作下,配置快闪存储器储存数据;储存一映射表以记录主机的逻辑地址与快闪存储器之间的映射资讯;以及当主机传送一空间修整指令使映射表中的一特定部分为无效,并且主机要读取特定部分所映射的数据时,将数据的一旗标设定为开启,使数据不经由数据处理模组的处理而被传送至主机。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1A以及图1B根据本发明一种实施方式图解一快闪存储器120的物理空间规划;
图2示意以逻辑地址(如,逻辑区块地址LBA或全域主机页GHP)为索引的映射表H2F;
图3举例说明一空间修整指令(trim command);
图4A以方块图图解根据本发明一种实施方式实现的一数据储存装置100;
图4B以示意图图解根据本发明一种实施方式实现的一数据;
图4C以示意图图解根据本发明一种实施方式实现的一数据正确栏位;
图5以方块图图解根据本发明另一种实施方式实现的一数据储存装置100;
图6为流程图,根据本发明一种实施方式描述配合空间修整指令的数据储存方法。
符号说明
100~数据储存装置;
102~控制器;
110~微处理器;
111~数据处理模组;
112~加密器;
114~校正器;
116~随机产生器;
122~快闪存储器控制器;
120~快闪存储器;
130~挥发性存储器;
10A~原始数据;
10DIF~数据正确栏位;
10D1~防护领域;
10D2~应用标签;
10D3~参考标签;
(BLK#,U#)~(物理区块编号,储存单元编号);
BE~后端;
BLK#1、BLK#2、BLK#Z~物理区块;
FE~前端;
H#3、H#4、H#5、H#6、H#7、H#H、H#K、H#L、H#M、H#N~主机区块;
H2F~映射表;
H2F_H#1、H2F_H#2、H2F_H#N~主机区块映射表;
R1、R2~路径;
S602…S618~步骤;
U#i、U#(i+1)、U#(i+2)、U#(i+3)~储存单元。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。
非挥发式存储器可以是快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等具有长时间数据保存的存储器装置。以下特别以快闪存储器(flash memory)为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,常用来实现记忆卡(memorycard)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD、NVME、M.2、U.2)…等产品。有一种应用是采多芯片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的中央处理单元(CPU)可视为操作所述数据储存装置的一主机。
图1A以及图1B根据本发明一种实施方式图解一快闪存储器120的物理空间规划。如图1A所示,快闪存储器120的储存空间划分为多个区块(或称物理区块,physicalblocks)BLK#1、BLK#2…BLK#Z等,Z为正整数。各物理区块包括多物理页(physical pages),例如:256个物理页。
图1B详解物理页结构。每一物理页包括一数据区域(data area)DA、以及一备用区域(spare area)SA。数据区域DA可划分为多个储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3),经配置后,对应逻辑地址储存数据。逻辑地址有多种形式,例如,以逻辑区块地址(LogicalBlock Address,简称LBA)、或全域主机页(Global Host Page,简称GHP)编排。一种实施方式中,数据区域DA的尺寸为16KB,储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3)各为4KB。各4KB储存单元对应8个逻辑区块地址(如LBA#0~LBA#7之类)、或一个全域主机页。备用区域SA是用来储存元数据(metadata),包括该物理页各储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3)所储存的数据的逻辑地址…等。
然而,备用区域SA纪录的储存单元至逻辑地址映射关系并非一直有效。快闪存储器120有一种特殊的物理特性:其中数据的更新并非对同样空间作复写,而是将更新数据储存在闲置空间,且原空间的储存内容将转为无效。因应之,快闪存储器120的映射资讯需动态整理成映射表(如,显示逻辑地址至物理空间映射的映射表H2F)。
图2示意以逻辑地址(如,逻辑区块地址LBA或全域主机页GHP)为索引的映射表H2F,其中记录不同逻辑地址的数据是被储存至快闪存储器120哪一物理区块BLK#的哪一储存单元U#。因应庞大的储存空间,映射表H2F可更以主机区块(hostblock)为单位,对应主机区块H#1、H#2…H#Z细分为主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z,Z为正整数。
一种实施方式中,一主机区块映射表的长度为64KB(可储存于4个连续物理页中),用以记录8K个数据的映射关系。一主机区块映射表涉及的逻辑地址可为GPH#0~#8191、GPH#8192~#16383、GPH#16384~#24575、GPH#24576~#32767、或GPH#32768~#40959之类。该些主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z于更新后,可依序储存至特定的物理区块中,例如系统资讯区块。一种实施方式中,为了加速主机区块映射表H2F_H的读取,主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z可以一指标列表管理,或以一高阶映射表(high-levelmapping table)来记录主机区块映射表H2F_H的编号以及主机区块映射表H2F_H所储存的物理地址的映射资讯。映射表H2F是数据储存装置操控快闪存储器120运作的重要依据。
空间修整指令(trim command)为一种增加数据储存装置的效能且符合快闪存储器120运作特性的指令。主机可发出空间修整指令至数据储存装置以通知某一或多个逻辑地址(下文中称为目标逻辑地址)可移除(即目标逻辑地址的数据已不再有效),数据储存装置可自行将某一或多目标逻辑地址的记录自映射表H2F中删除或修改。日后,这些目标逻辑地址的无效数据的物理空间可于垃圾回收(garbage collection)操作时回收、再利用。
图3举例说明一空间修整指令。一空间修整指令可有高达500笔的修整要求。图3所示实施例更示意每笔修整要求所对应的主机区块,依序涉及主机区块H#5、H#6、H#7、H#3、H#4、H#5、H#6、H#7、H#3、H#4…等。每一笔修整要求可指示一长度以及一起始逻辑地址,或是起始逻辑地址以及终点逻辑地址,以对应一逻辑地址段。映射表H2F中,修整要求所指示的逻辑地址段的映射资讯可移除,或者逻辑地址段所对应的物理地址被修改为一特定值,例如:0xFFFF或0x0000,以打断或移除该逻辑地址段中所有逻辑地址至该快闪存储器120的映射。
图4A以方块图图解根据本发明一种实施方式实现的一数据储存装置100。数据储存装置100包括控制器102、快闪存储器120、以及挥发性存储器130。控制器102包括微处理器110、数据处理模组111、快闪存储器控制器122。数据处理模组111包括加密器112、校正器114、以及随机产生器(randomizer)116。详细而言,微处理器110、加密器112、校正器114、以及随机产生器116配置于控制器102的前端FE(front end),快闪存储器控制器122配置于控制器102的后端BE(back end)。
前端FE负责数据储存装置100与主机200的沟通。后端BE负责控制快闪存储器120之运作,使得主机200可以对快闪存储器120进行数据的写入或读取。如此两阶层架构使得主机200以及数据储存装置之间的数据通讯被专责进行(前端FE),主机200与数据储存装置100之间的数据吞吐量(throughput)因而显著提升,更可降低前端FE以及后端BE除错的复杂度。
此外,主机200可透过一总线介面连接数据储存装置100A。主机200下达的符合NVMe规范的指令(以下称为外部指令)将由微处理器110排程,再交由后端BE处理。换言之,微处理器110藉由总线介面与主机200进行沟通,接收主机200所传送的数据10或外部指令。挥发性存储器130可用以暂存上述数据10或外部指令。微处理器110依优先权的设定或接收的先后顺序来对外部指令或是数据进行排程。微处理器110除了是符合NVMe规范之外,亦可以符合ATA(advanced technology attachment,先进技术附件)、PATA(Parallel ATA)、SATA(Serial ATA),SCSI(Small Computer System Interface,小型电脑系统介面SCSI)、eMMC或UFS等规范。
数据写入的流程为微处理器110经由数据处理模组111而传送数据10至快闪存储器控制器122。详细而言,数据处理模组111的加密器112会对数据10进行加密。举例而言,上述加密机制包括进阶加密标准(Advanced Encryption Standard,AES)、或是RSA加密演算法。然后,校正器114依加密后的数据10产生额外的校正码,此校正码可以提供加密后的数据10数据正确性的保护。上述校正机制包括CRC校正机制或是ECC校正机制。再者,随机产生器116打散含校正码的数据10,使随机处理后的数据10之值(即"0"或"1")的分布可更平均。然后,随机产生器116传送随机处理后的数据10至快闪存储器控制器122。最后,快闪存储器控制器122随机处理后的数据10写入至快闪存储器120,并将随机处理后的数据10的逻辑地址以及物理地址储存至映射表H2F或主机区块映射表H2F_H中。反之,数据读取的流程为快闪存储器控制器122经由数据处理模组111而传送数据10至微处理器110。
在一实施例中,快闪存储器控制器122可用以储存映射表H2F。主机200可发出空间修整指令至数据储存装置100以指示移除某一或多目标逻辑地址,则数据储存装置100的快闪存储器控制器122直接或间接地将某一或多目标逻辑地址自映射表H2F中移除或将目标逻辑地址所对应的目标物理地址修改成特定值,例如0xFFFF,以完成空间修整指令的执行。映射表H2F系对应主机200地空间修整指令可即时且动态地更新。
图4B以示意图图解根据本发明一种实施方式实现的一数据10。如图所示,数据10包括原始数据10A以及数据正确栏位10DIF(Data Integrity Field,DIF)。数据正确栏位10DIF相关于原始数据10A,并且用以保护原始数据10A。数据正确栏位10DIF可插置于原始数据10A的前端或是后端,本发明并不加以限制。
图4C以示意图图解根据本发明一种实施方式实现的一数据正确栏位10DIF。数据正确栏位10DIF包括防护栏位(Guard)10D1、应用标签(Application field)10D2、以及参考标签(Reference Tag)10D3。在一实施例中,数据正确栏位10DIF的大小为8位元组(byte),其中防护栏位10D1为2位元组、应用标签10D2为2位元组、参考标签10D3为4位元组。
图5以方块图图解根据本发明另一种实施方式实现的一数据储存装置100。此实施例用以说明数据储存装置100的数据处理流程,用以回应主机200的数据读取指令,其中,数据处理流程会产生数据10或数据10',数据10与数据10'的主要差别在于防护栏位10D1的最后一个位元(亦即第15个位元)可被设定为旗标(flag)。上述旗标的设定仅作为例示之用,而非用以限制本发明。举例而言,旗标可设定为防护栏位10D1的其他位元,或是设定为应用标签10D2或参考标签10D3的某个位元。数据储存装置100的快闪存储器控制器122建立及维护映射表H2F或主机区块映射表H2F_H,并规划了二种不同的数据处理流程,可用以回应主机200的数据读取的指令。
在图5的实施例中,如果当主机200传送一空间修整指令至数据储存装置100以移除一目标逻辑地址,例如LBA#1000,快闪存储器控制器122将映射表H2F或主机区块映射表H2F_H中LBA#1000的映射资讯移除或修改。之后,主机200输出包含此目标逻辑地址的数据读取指令至数据储存装置100时,由于此目标逻辑地址不存在于映射表H2F或主机区块映射表H2F_H中,或是此目标逻辑地址所对应的目标物理地址乃是特定值,所以快闪存储器控制器122产生数据10',并给予数据10'的原始数据10A一个预设值,例如:0x0000或0xFFFF,并将数据正确栏位10DIF的防护栏位10D1的一旗标设定为开启,再传送数据10'至随机产生器116。随机产生器116收到数据10'时会判断防护栏位10D1的旗标设定是否为开启,如果为是,则随机产生器116不对数据10'进行反随机处理,而直接将数据10'传送至微处理器110,此数据处理流程如标号R2所示。再者,快闪存储器控制器122可将该旗标以外的部分全都设定为0或是1。总而言之,当主机200所存取的目标逻辑地址已自映射表H2F或主机区块映射表H2F_H中移除或欲存取的目标逻辑地址所对应的目标物理地址已修改成特定值,则随机产生器116判断旗标设定是否为开启,如果是,则选择路径R2来传送数据10'给微处理器110;如果否,则选择路径R1来传送数据10给微处理器110。其中,路径R1与路径R2的差别乃在于,路径R2会绕过数据处理模组111,直接连接至微处理器110,而路径R1则是会通过数据处理模组111,再连接至微处理器110。
此外,上述旗标为防护领域10D1的最后一个位元,当旗标为1时则表示开启、0则表示关闭。在其他实施例中,当旗标为0时则表示开启、1则表示关闭,本发明并不加以限制。在一实施例中,当主机200所欲存取的目标逻辑地址已自映射表H2F或主机区块映射表H2F_H中移除,或欲存取的目标逻辑地址所对应的目标物理地址已修改成特定值时,快闪存储器控制器122将旗标设定为1,并且将该旗标以外的部分全都设定为0。在其他实施例中,该旗标以外的部分全都设定为1,本发明并不加以限制。
由于旗标设定为1,因此数据10'透过路径R2直接传送至微处理器110。然后,微处理器110可解除旗标的设定,然后把解除旗标设定的数据10'传送至主机200。如此一来,主机200所接收的数据10'为预设值。藉由本发明所提出的数据处理方法,每当主机200欲存取的目标逻辑地址已自映射表H2F或主机区块映射表H2F_H中移除,或欲存取的目标逻辑地址所对应的目标物理地址已修改成特定值,数据储存装置100都会传送预设值至主机200,符合区别性空间修整(Deterministic Trim,DRAT)的规范。
如果主机200欲欲存取的目标逻辑地址存在映射表H2F或主机区块映射表H2F_H中且目标物理地址不是特定值,则快闪存储器控制器122读取目标逻辑地址所对应的目标物理地址以取得数据10,并将数据10传送至随机产生器116,随机产生器116藉由路径R1传送数据10,使数据10经由数据处理模组111的处理而被传送至微处理器110,再传送至主机200。如果数据10'也经由路径R1传送至微处理器110,则数据10'经过数据处理模组111的处理后,数据10'的内容反而会成为无意义之值,令主机200产生错误。因此,本发明数据处理流程提出数据分流处理(亦即透过两个不同的路径R1与R2),不但使数据储存装置100符合区别性空间修整(Deterministic Trim,DRAT)的规范,且在不改变原有的数据处理流程(即路径R1)下的提供一个最佳且最经济的解决方案。
详细而言,数据处理装置100的随机产生器116会判断来自快闪存储器控制器122的数据的旗标为开启或关闭。当随机产生器116判断该旗标为开启时,则采取路径R2,则随机产生器116、校正器114、以及加密器113不对数据10'进行处理。当随机产生器116判断旗标为关闭时,则采取路径R2,随机产生器116、校正器114、以及加密器113对数据10进行处理。在其他实施例中,旗标为开启或关闭亦可由快闪存储器控制器122判断,本发明并不加以限制。
图6为流程图,根据本发明一种实施方式描述数据处理方法。在步骤S602,快闪存储器控制器122维护一映射表H2F以记录主机200的逻辑地址与快闪存储器120的物理地址间的映射资讯,其中,映射表H2F可细分成多主机区块映射表H2F_H,映射表H2F或数个主机区块映射表H2F_H可暂时性地储存于挥发性存储器130中。步骤S604,快闪存储器控制器122依据该空间修整指令更新映射表H2F,其中,更新表示删除或修改映射表H2F或主机区块映射表H2F_H的记录。步骤S606,接收数据读取指令,此读取指令包括一目标逻辑地址,例如:LBA#1000。然后,在步骤S608中,快闪存储器控制器122判断此目标逻辑地址在映射表H2F中是否已被更新。
如果结果为是,则执行步骤S610,快闪存储器控制器122产生数据10',数据10'的值为预设值且数据10'旗标设定为开启。然后,在步骤S612,传送数据10'至微处理器110。如果结果为否,则执行步骤S614,快闪存储器控制器122依据映射表H2F或主机区块映射表H2F_H而取得目标逻辑地址所对应的目标物理地址。之后,步骤S616,自目标物理地址取得数据10,并传送数据10至数据处理模组111。
其他采用上述整合型空间修整概念实现的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及数据储存装置操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (18)
1.一种数据储存装置,包括:
一快闪存储器;
一数据处理模组;以及
一快闪存储器控制器,在一主机操作下,配置该快闪存储器储存数据,并储存一映射表以记录该主机的逻辑地址与该快闪存储器之间的映射资讯;
其中:
当该主机传送一空间修整(Trim)指令使该映射表中的一特定部分为无效,并且该主机要读取该特定部分所映射的数据时,该快闪存储器控制器将该数据的一旗标设定为开启,使该数据不经由该数据处理模组的处理而被传送至该主机,该数据包括:一原始数据和用于保护该原始数据的一数据正确栏位(Data Integrity Field,DIF),其中该数据正确栏位包括防护领域(Guard)、应用标签(Application field)、以及参考标签(Reference Tag)。
2.如权利要求1所 述的数据储存装置,其特征在于:
该旗标为该防护领域的最后一个位元(bit)。
3.如权利要求1所述的数据储存装置,其特征在于:
当该主机要读取该特定部分所映射的数据时,该快闪存储器控制器将该旗标设定为开启,并且将该旗标以外的部分全都设定为0或是1,以符合区别性空间修整(DeterministicTrim,DRAT)的规范。
4.如权利要求1所述的数据储存装置,其特征在于:
该数据处理模组包括一随机产生器(randomizer),耦接该快闪存储器控制器,用以打散该数据使该数据的电压为平均分布。
5.如权利要求4所述的数据储存装置,其特征在于:
该数据处理模组包括一校正器,耦接该随机产生器,用以校正该数据。
6.如权利要求5所述的数据储存装置,其特征在于:
该数据处理模组包括一加密器,耦接该校正器,用以对该数据进行加密。
7.如权利要求6所述的数据储存装置,其特征在于:
该数据储存装置包括一微处理器,耦接于该主机,用以接收来自该主机的指令,以及处理该主机与该数据储存装置之间的数据传输。
8.如权利要求7所述的数据储存装置,其特征在于:
该随机产生器更用以判断来自该快闪存储器控制器的该数据的该旗标为开启或关闭,其中:
当该旗标为开启时,则该随机产生器、该校正器、以及该加密器不对该数据进行处理,该快闪存储器控制器直接将该数据传送至该微处理器;
当该旗标为关闭时,则该随机产生器、该校正器、以及该加密器对该数据进行处理。
9.如权利要求8所述的数据储存装置,其特征在于:
当该旗标为开启并且在该微处理器接收该数据之后,该微处理器将该旗标调整为关闭,使得该数据全都为0或是1,并且将调整后的该数据传送至该主机。
10.一种数据储存装置操作方法,用以操作一数据储存装置,该数据储存装置包括一快闪存储器、一数据处理器以及一快闪存储器控制器,该数据储存装置操作方法包括:
在一主机操作下,配置该快闪存储器储存数据;
储存一映射表以记录该主机的逻辑地址与该快闪存储器之间的映射资讯;以及
当该主机传送一空间修整(Trim)指令使该映射表中的一特定部分为无效,并且该主机要读取该特定部分所映射的数据时,将该数据的一旗标设定为开启,使该数据不经由该数据处理模组的处理而被传送至该主机,该数据包括:一原始数据和用于保护该原始数据的一数据正确栏位(Data Integrity Field,DIF),其中该数据正确栏位包括防护领域(Guard)、应用标签(Application field)、以及参考标签(Reference Tag)。
11.如权利要求10所述的数据储存装置操作方法,其特征在于:
该旗标为该防护领域的最后一个位元(bit)。
12.如权利要求10所述的数据储存装置操作方法,其特征在于:
当该主机要读取该特定部分所映射的数据时,将该旗标设定为开启,并且将该旗标以外的部分全都设定为0或是1,以符合区别性空间修整(Deterministic Trim,DRAT)的规范。
13.如权利要求10所述的数据储存装置操作方法,其特征在于,还包括:
藉由该数据处理模组之的随机产生器(randomizer),打散该数据使该数据的电压为平均分布。
14.如权利要求13所述的数据储存装置操作方法,其特征在于,还包括:
藉由该数据处理模组的一校正器,校正该数据。
15.如权利要求14所述的数据储存装置操作方法,其特征在于,还包括:
藉由该数据处理模组的一加密器,对该数据进行加密。
16.如权利要求15所述的数据储存装置操作方法,其特征在于,还包括:
藉由该数据储存装置的一微处理器,接收来自该主机的指令,以及处理该主机与该数据储存装置之间的数据传输。
17.如权利要求16所述的数据储存装置操作方法,其特征在于,还包括:
藉由该随机产生器判断来自该快闪存储器控制器的该数据的该旗标为开启或关闭,其中:
当该旗标为开启时,则该随机产生器、该校正器、以及该加密器不对该数据进行处理,该快闪存储器控制器直接将该数据传送至该微处理器;
当该旗标为关闭时,则该随机产生器、该校正器、以及该加密器对该数据进行处理。
18.如权利要求17所述的数据储存装置操作方法,其特征在于:
当该旗标为开启并且在该微处理器接收该数据之后,藉由该微处理器将该旗标调整为关闭,使得该数据全都为0或是1,并且将调整后的该数据传送至该主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106115909 | 2017-05-11 | ||
TW106115909A TWI639918B (zh) | 2017-05-11 | 2017-05-11 | 資料儲存裝置以及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874300A CN108874300A (zh) | 2018-11-23 |
CN108874300B true CN108874300B (zh) | 2021-08-10 |
Family
ID=64097739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710485129.XA Active CN108874300B (zh) | 2017-05-11 | 2017-06-23 | 数据储存装置以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10409717B2 (zh) |
CN (1) | CN108874300B (zh) |
TW (1) | TWI639918B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2578924B (en) * | 2018-11-14 | 2021-09-29 | Advanced Risc Mach Ltd | An apparatus and method for controlling memory accesses |
TWI745986B (zh) * | 2019-11-29 | 2021-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN112882650B (zh) | 2019-11-29 | 2024-04-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11748023B2 (en) | 2019-11-29 | 2023-09-05 | Silicon Motion, Inc. | Data storage device and non-volatile memory control method |
CN112882649B (zh) * | 2019-11-29 | 2024-04-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11861022B2 (en) | 2020-05-20 | 2024-01-02 | Silicon Motion, Inc. | Method and computer program product and apparatus for encrypting and decrypting physical-address information |
TWI747351B (zh) * | 2020-05-20 | 2021-11-21 | 慧榮科技股份有限公司 | 加密和解密實體位址資訊的方法及裝置 |
CN112765051B (zh) * | 2021-01-22 | 2022-12-20 | 珠海妙存科技有限公司 | 降低闪存设备trim消耗的方法、装置及介质 |
KR20230000690A (ko) | 2021-06-25 | 2023-01-03 | 삼성전자주식회사 | 적응적인 기록/독출 제어를 수행하는 스토리지 장치 및 스토리지 장치의 동작방법 |
TWI835027B (zh) * | 2021-11-23 | 2024-03-11 | 慧榮科技股份有限公司 | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 |
US11947818B2 (en) | 2022-04-20 | 2024-04-02 | Silicon Motion, Inc. | Method for accessing flash memory module and associated flash memory controller and electronic device |
TWI830608B (zh) * | 2023-02-22 | 2024-01-21 | 神雲科技股份有限公司 | 通用介面系統及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239229A (zh) * | 2013-06-20 | 2014-12-24 | 慧荣科技股份有限公司 | 数据储存装置及用于快闪存储器的数据读取方法 |
CN104572481A (zh) * | 2013-10-22 | 2015-04-29 | 瑞萨电子株式会社 | 数据存储闪速存储器管理方法和程序 |
CN104750431A (zh) * | 2014-06-05 | 2015-07-01 | 株式会社Genusion | 存储装置及存储装置系统、以及信息终端 |
CN106201774A (zh) * | 2016-06-28 | 2016-12-07 | 中国人民解放军61660部队 | 一种nand flash存储芯片数据存储结构分析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8195912B2 (en) * | 2007-12-06 | 2012-06-05 | Fusion-io, Inc | Apparatus, system, and method for efficient mapping of virtual and physical addresses |
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
TWI475385B (zh) * | 2012-03-14 | 2015-03-01 | Phison Electronics Corp | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
TWI516921B (zh) * | 2013-10-02 | 2016-01-11 | 群聯電子股份有限公司 | 資料處理方法、記憶體儲存裝置與記憶體控制電路單元 |
JP6378111B2 (ja) * | 2014-12-29 | 2018-08-22 | 東芝メモリ株式会社 | 情報処理装置及びプログラム |
CN105843551B (zh) * | 2015-01-29 | 2020-09-15 | 爱思开海力士有限公司 | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 |
KR20170040466A (ko) * | 2015-10-05 | 2017-04-13 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 |
-
2017
- 2017-05-11 TW TW106115909A patent/TWI639918B/zh active
- 2017-06-23 CN CN201710485129.XA patent/CN108874300B/zh active Active
- 2017-12-22 US US15/853,210 patent/US10409717B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239229A (zh) * | 2013-06-20 | 2014-12-24 | 慧荣科技股份有限公司 | 数据储存装置及用于快闪存储器的数据读取方法 |
CN104572481A (zh) * | 2013-10-22 | 2015-04-29 | 瑞萨电子株式会社 | 数据存储闪速存储器管理方法和程序 |
CN104750431A (zh) * | 2014-06-05 | 2015-07-01 | 株式会社Genusion | 存储装置及存储装置系统、以及信息终端 |
CN106201774A (zh) * | 2016-06-28 | 2016-12-07 | 中国人民解放军61660部队 | 一种nand flash存储芯片数据存储结构分析方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI639918B (zh) | 2018-11-01 |
US20180329816A1 (en) | 2018-11-15 |
US10409717B2 (en) | 2019-09-10 |
CN108874300A (zh) | 2018-11-23 |
TW201901432A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874300B (zh) | 数据储存装置以及其操作方法 | |
US10437737B2 (en) | Data storage device | |
US11368313B2 (en) | Data storage devices and methods for encrypting a firmware file thereof | |
US9548108B2 (en) | Virtual memory device (VMD) application/driver for enhanced flash endurance | |
US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
US8954654B2 (en) | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance | |
US10120752B2 (en) | Data storage device and data access-method | |
US9946661B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
US9779022B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
KR101813786B1 (ko) | Ssd 상의 기록-시-복사를 위한 시스템 및 방법 | |
US20180321883A1 (en) | Data storage device and method for operating data storage device | |
US9959218B2 (en) | Method and apparatus to generate zero content over garbage data when encryption parameters are changed | |
US9069978B2 (en) | Data storage device and data protection method | |
TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20100325524A1 (en) | Control circuit capable of identifying error data in flash memory and storage system and method thereof | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
CN112130750B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN117850663A (zh) | 一种管理数据的方法及相关产品 | |
CN112948288A (zh) | 使用经修饰地址空间的存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |