CN109992537B - 存储系统及其操作方法 - Google Patents
存储系统及其操作方法 Download PDFInfo
- Publication number
- CN109992537B CN109992537B CN201811082229.9A CN201811082229A CN109992537B CN 109992537 B CN109992537 B CN 109992537B CN 201811082229 A CN201811082229 A CN 201811082229A CN 109992537 B CN109992537 B CN 109992537B
- Authority
- CN
- China
- Prior art keywords
- logical
- physical address
- memory device
- memory
- mapping information
- 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
Images
Classifications
-
- 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/1064—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 cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
一种存储系统可以包括:非易失性存储器件;缓冲存储器件,被配置为储存逻辑‑物理地址映射信息;存储器控制器,被配置为控制非易失性存储器件和缓冲存储器件的操作,其中,存储器控制器包括:高速缓冲存储器;主机控制电路,被配置为从主机接收读取命令和读取逻辑地址,从缓冲存储器件读取与读取逻辑地址相对应的映射信息,以及将映射信息高速缓存在高速缓冲存储器中,所述映射信息对应于储存在缓冲存储器件中的逻辑‑物理地址映射信息;闪存转换部,被配置为从高速缓存在高速缓冲存储器中的映射信息来读取映射到读取逻辑地址的读取物理地址;以及闪存控制电路,被配置为基于读取物理地址从非易失性存储器件读取与读取命令相对应的数据。
Description
相关申请的交叉引用
本申请要求2018年1月2日提交的申请号为10-2018-0000363的韩国专利申请的优先权,其全部内容通过引用合并于本文中。
技术领域
本公开的各种实施例涉及一种存储系统及其操作方法,更具体地,涉及一种能够利用高速缓冲存储器以高速读取储存在缓冲存储器件中的数据的存储系统及其操作方法。
背景技术
非易失性存储器件可以包括多个存储块。每个存储块可以包括多个存储单元。可以对单个存储块中包括的多个存储单元同时执行用于非易失性存储器件的擦除操作。也就是,可以基于存储块执行非易失性存储器件的擦除操作。
当包括非易失性存储器件的存储系统从主机接收写入命令和逻辑地址时,存储系统可以分配与逻辑地址相对应的物理地址并且将数据写入非易失性存储器件的与物理地址相对应的存储区域中。
存储系统可以将逻辑-物理地址映射信息储存在缓冲存储器件中,所述物理-逻辑地址映射信息表示逻辑地址和物理地址之间的映射关系。之后,当存储系统从主机接收到读取命令时,存储系统可以利用储存在缓冲存储器件中的逻辑-物理地址映射信息来读取储存在非易失性存储器件中的数据,并且将读取的数据输出至主机。
发明内容
本公开的各种实施例针对一种能够利用高速缓冲存储器以高速读取储存在缓冲存储器件中的数据的存储系统及其操作方法。
根据一个实施例,一种存储系统可以包括:非易失性存储器件;缓冲存储器件,其被配置为储存逻辑-物理地址映射信息;以及存储器控制器,其被配置为控制非易失性存储器件和缓冲存储器件的操作,其中,所述存储器控制器包括高速缓冲存储器;主机控制电路,其被配置为从主机接收读取命令和读取逻辑地址,从所述缓冲存储器件读取与所述读取逻辑地址相对应的映射信息,并且将所述映射信息高速缓存在所述高速缓冲存储器中,所述映射信息与储存在所述缓冲存储器件中的逻辑-物理地址映射信息相对应;闪存转换部,其被配置为从高速缓存在所述高速缓冲存储器件中的所述映射信息来读取映射到所述读取逻辑地址的读取物理地址,以及闪存控制电路,其被配置为基于所述读取物理地址从所述非易失性存储器件读取与所述读取命令相对应的数据。
根据另一个实施例,一种存储系统可以包括:非易失性存储器件;缓冲存储器件,其被配置为储存逻辑-物理地址映射信息;以及存储器控制器,其中,所述存储器控制器包括:高速缓冲存储器,其耦接在所述缓冲存储器件和总线之间;主机控制电路,其耦接在主机和所述总线之间,所述主机控制电路被配置为从所述主机接收逻辑地址,从所述缓冲存储器件读取映射到所述逻辑地址的物理地址,并且将所述物理地址高速缓存在所述高速缓冲存储器中;闪存转换部,其被配置为经由所述总线从所述高速缓冲存储器接收所述物理地址;以及闪存控制电路,其被配置为基于所述物理地址控制所述非易失性存储器件的操作。
根据另一个实施例,一种操作存储系统的方法可以包括:从主机接收读取命令和逻辑地址,基于所述读取命令生成第一命令,响应于所述第一命令而从缓冲存储器件读取与所述逻辑地址相对应的逻辑-物理地址映射信息,响应于所述第一命令而将所述逻辑-物理地址映射信息高速缓存在高速缓冲存储器中,生成第二命令,响应于所述第二命令而从高速缓存在所述高速缓冲存储器中的所述逻辑-物理地址映射信息读取与所述逻辑地址相对应的物理地址,以及基于所述物理地址从非易失性存储器件对读取数据进行读取。
附图说明
图1是图示了根据一个实施例的存储系统的图;
图2是图示了根据一个实施例的非易失性存储器件的图;
图3是图示了根据一个实施例的存储块的图;
图4是图示了根据一个实施例的缓冲存储器件的图;
图5是图示了根据一个实施例的存储器控制器的图;
图6是图示了根据一个实施例的缓冲存储器件的数据和奇偶校验存储区域的图;
图7是图示了根据一个实施例的缓冲存储器件的数据写入方法的流程图;
图8是图示了根据一个实施例的缓冲存储器件的数据读取方法的流程图;
图9是图示了根据一个实施例的读取操作的流程图;
图10是图示了根据另一个实施例的读取操作的流程图;
图11是图示了根据一个实施例的存储系统的图;
图12是图示了根据一个实施例的存储系统的图;
图13是图示了根据一个实施例的存储系统的图;以及
图14是图示了根据一个实施例的存储系统的图。
具体实施方式
在下文中将参考附图更全面地描述示例性实施例。然而,这些实施例可以采用不同的形式呈现,并且不应该被解释为限于本文中所阐述的实施例。确切地说,提供这些实施例是为了使本公开充分和完整,并且将示例性实施例的范围完全地传达给本领域技术人员。
应当理解的是,当一个元件被称为“耦接”或“连接”到某个元件时,其可以直接耦接或连接到某个元件,或者可以间接耦接或连接到某个元件,其之间存在中间元件。在说明书中,当一个元件被称为“包括”或“包含”一个组件时,它不排除其他组件,而是可以进一步包括其他组件,除非在上下文中具体指出相反的描述。
图1是图示了根据一个实施例的存储系统1000的图。
参见图1,存储系统1000可以包括:非易失性存储器件1100、缓冲存储器件1300和存储器控制器1200。非易失性存储器件1100即使在电源被切断或中断时也不会丢失储存的数据。缓冲存储器件1300暂时储存数据。存储器控制器1200基于来自主机2000的命令控制非易失性存储器件1100和缓冲存储器件1300。
主机2000可以利用如下的各种通信方法中的至少一种与存储系统1000通信,例如通用串行总线(USB)、串行高级技术AT附件(SATA)、串行附接SCSI(SAS)、高速芯片间互连(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、PCI Express(PCIe)、非易失性存储器Express(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册的DIMM(RDIMM)和负载减少的DIMM(LRDIMM)通信方法。
存储器控制器1200可以控制存储系统1000的总体操作,以及可以控制主机2000与非易失性存储器件1100之间的数据交换。例如,存储器控制器1200可以响应于来自主机2000的命令而控制非易失性存储器件1100以编程或读取数据。另外,存储器控制器1200可以储存关于非易失性存储器件1100中包括的主存储块和子存储块的信息,并且可以根据要在编程操作中加载的数据量,控制非易失性存储器件1100以对主存储块或子存储块执行编程操作。根据一个实施例,非易失性存储器件1100可以包括闪存(flash memory)。
存储器控制器1200还可以控制主机2000与缓冲存储器件1300之间的数据交换,以及将用于控制非易失性存储器件1100的系统数据暂时地储存在缓冲存储器件1300中。缓冲存储器件1300可以用作存储器控制器1200的操作存储器、高速缓冲存储器(cache memory)或缓冲存储器(buffer memory)。缓冲存储器件1300可以储存由存储器控制器1200执行的代码和命令。另外,缓冲存储器件1300可以储存由存储器控制器1200处理的数据。
存储器控制器1200可以将由主机2000提供的数据暂时地储存在缓冲存储器件1300中,并且可以将暂时储存在缓冲存储器件1300中的数据传送至非易失性存储器件1100,使得非易失性存储器件1100储存传送的数据。存储器控制器1200还可以接收与来自主机2000的数据一起的逻辑地址,并且将逻辑地址转换为物理地址,所述物理地址指示非易失性存储器件1100的要储存数据的存储区域。另外,存储器控制器1200可以将逻辑-物理地址映射信息储存在缓冲存储器件1300中,所述逻辑-物理地址映射信息配置逻辑地址与物理地址之间的映射关系。
根据一个实施例,缓冲存储器件1300可以包括:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、DDR4SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)等。
根据另一个实施例,存储系统1000可以不包括缓冲存储器件1300。
在一个实施例中,存储系统1000可以包括固态驱动器、存储卡等。
图2是图示了根据一个实施例的图1中所示的非易失性存储器件1100的图。
参见图2,非易失性存储器件1100可以包括其中储存数据的存储单元阵列100。非易失性存储器件1100还可以包括外围电路200,其被配置为执行用于将数据储存在存储单元阵列100中的编程操作,用于输出储存的数据的读取操作,以及用于擦除储存的数据的擦除操作。非易失性存储器件1100还可以包括控制逻辑300,其响应于来自图1所示的存储器控制器1200的命令而控制外围电路200。
存储单元阵列100可包括多个存储块110,例如BLK1到BLKm,其中m是正整数。局部线LL和位线BL1至BLn可以耦接至存储块BLK1至BLKm中的每一个,其中n是正整数。
例如,局部线LL可以包括第一选择线、第二选择线以及布置在第一选择线与第二选择线之间的多个字线。另外,局部线LL可以包括布置在第一选择线与字线之间以及第二选择线与字线之间的虚设线(dummy line)。第一选择线可以是源极选择线,第二选择线可以是漏极选择线。局部线LL还可以包括源极线。局部线LL还可包括管道线(pipe line)。
局部线LL可以耦接至存储块BLK1到BLKm中的每一个,位线BL1到BLn中的每一个可以共同耦接至存储块BLK1到BLKm。存储块BLK1至BLKm中的每一个可以具有二维(2D)或三维(3D)结构。例如,在2D存储块110中,存储单元可以布置在与衬底的上表面平行的平面上。例如,在3D存储块110中,存储单元可以在与衬底的上表面垂直的竖直方向上层叠。
外围电路200可以响应于由控制逻辑300提供的控制信号而对选中的存储块110执行编程、读取和擦除操作。例如,控制逻辑300可以控制外围电路200,使得外围电路200将验证电压和通过电压供应至局部线LL、诸如第一选择线、第二选择线和字线,选择性地对第一选择线、第二选择线和字线放电,以及验证耦接至字线之中的选中的字线的存储单元。在图2所示的实施例中,外围电路200可以包括:电压发生电路210、行解码器220、页缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压发生电路210可以响应于来自控制逻辑300的操作控制信号OP_CMD而生成各种操作电压Vop,所述操作电压Vop用于对存储单元阵列100执行编程、读取和擦除操作。另外,电压发生电路210可以响应于操作控制信号OP_CMD而选择性地对局部线LL放电。例如,操作电压Vop包括:编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。
行解码器220可以基于行地址RADD来将操作电压Vop传送至与选中的存储块110耦接的局部线LL。
页缓冲器组230可以包括多个页缓冲器231,例如分别耦接至位线BL1至BLn的PB1至PBn。页缓冲器PB1至PBn可以响应于页缓冲器控制信号PBSIGNALS而操作。例如,页缓冲器PB1至PBn可以在读取操作或验证操作期间暂时地储存经由位线BL1至BLn提供的数据,或者感测位线BL1至BLn中的电压或电流。
列解码器240可以基于列地址CADD在输入/输出电路250与页缓冲器组230之间传送数据。例如,列解码器240可以经由数据线DL与页缓冲器231交换数据,或者可以经由列线CL与输入/输出电路250交换数据。
输入/输出电路250可以将命令CMD和地址ADD从图1中所示的存储器控制器1200传送至控制逻辑300,或者可以与列解码器240交换数据DATA。例如,在非易失性存储器件1100与诸如存储器控制器1200的外部器件之间、经由输入/输出电路250交换诸如读取数据或写入数据的数据DATA。
在读取操作或验证操作期间,感测电路260可以响应于可允许比特VRY_BIT<#>而生成参考电流,并且将来自页缓冲器组230的感测电压VPB与从参考电流生成的参考电压进行比较,由此输出通过信号PASS或者失败信号FAIL。感测电压VPB是通过感测耦接至选中的存储单元的位线上的电压来确定的。
控制逻辑300可以基于从存储器控制器1200提供的命令CMD和地址ADD来输出操作控制信号OP_CMD、行地址RADD、列地址CADD、页缓冲器控制信号PBSIGNALS和可允许比特VRY_BIT<#>,由此控制外围电路200。另外,控制逻辑300可以基于通过信号PASS或失败信号FAIL来确定对选中的存储单元执行的验证操作是成功还是不成功。
在非易失性存储器件1100的操作中,可以基于存储块来执行擦除操作。换言之,储存在单个存储块110所包括的多个存储单元中的数据可以被同时擦除,但是不可被选择性地擦除。
图3是图示了根据一个实施例的图2中所示的存储块110的图。
参见图3,存储块110可以耦接至多个字线、第一选择线和第二选择线。所述多个字线可以彼此平行布置并且设置在第一选择线与第二选择线之间。第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。更具体地,存储块110可以包括耦接在位线BL1至BLn与源极线SL之间的多个存储串ST。位线BL1至BLn中的每一个可以耦接至存储串ST中的对应的一个,源极线SL可以共同耦接至存储串ST。由于存储串ST可以具有相同的配置,因此将详细地描述耦接至第一位线BL1的第一存储串ST作为示例。
在图3中所示的实施例中,第一存储串ST包括:源极选择晶体管SST、多个存储单元F1至F16、以及漏极选择晶体管DST,它们串联耦接在源极线SL与第一位线BL1之间。在其它的实施例中,单个存储串ST可以包括两个或更多个源极选择晶体管SST和两个或更多个漏极选择晶体管DST,并且可以包括比图3中所示的存储单元F1至F16更多的存储单元。
源极选择晶体管SST的源极可以耦接至源极线SL,漏极选择晶体管DST的漏极可以耦接至第一位线BL1。存储单元F1至F16可以串联耦接在源极选择晶体管SST与漏极选择晶体管DST之间。多个存储串ST中包括的源极选择晶体管SST的栅极可以耦接至源极选择线SSL,多个存储串ST中包括的漏极选择晶体管DST的栅极可以耦接至漏极选择线DSL。第一存储串ST中的存储单元F1至F16的栅极可以分别耦接至多个字线WL1至WL16。类似于第一存储串ST中的存储单元F1至F16,存储块110的另一个存储串ST中包括的多个存储单元可以分别耦接至多个字线WL1至WL16。在多个存储串ST包括的存储单元之中,耦接至相同的字线的一组存储单元可以被称为物理页PPG。因此,图3中所示的存储块110可以包括与字线WL1至WL16一样多的物理页PPG。
单个存储单元可以储存一比特的数据。这种存储单元通常称为“单级单元(SLC)”。单个物理页PPG可以储存与单个逻辑页LPG相对应的数据。与单个逻辑页LPG相对应的数据可以包括与单个物理页PPG所包括的存储单元一样多的数据比特。此外,单个存储单元可以储存两比特或更多比特的数据。这种存储单元通常被称为“多级单元(MLC)”。当单个存储单元可以储存两比特或更多比特的数据时,单个物理页PPG可以储存与两个或更多个逻辑页LPG相对应的数据。
当存储单元储存2比特的数据时,单个物理页PPG可包括两个页PG。每个页PG可以对应于单个逻辑页LPG并且储存单个逻辑页LPG的数据。储存两比特或更多比特的数据的单个存储单元可以包括取决于储存在其中的数据的多个阈值电压中的一个,因此单个物理页PPG中包括的多个页PG可以通过它们的阈值电压的差异来彼此区分。
单个物理页PPG中包括的多个存储单元可以同时被编程。换言之,非易失性存储器件1100可以基于物理页来执行编程操作。单个存储块中包括的多个存储单元可以同时被擦除。换言之,非易失性存储器件1100可以基于存储块来执行擦除操作。
在一个实施例中,为了更新储存在第一存储块中的数据的一部分,可以读取储存在第一存储块中的整个数据,并且可以改变数据的所述一部分。之后,可以在第二存储块中编程包括更新部分的整个数据。也就是,当在存储器件1100中基于存储块来执行擦除操作时,由于不可能仅擦除储存在第一存储块中的数据的一部分、然后利用新数据对第一存储块编程,所以将包括更新部分的整个数据储存在第二存储块中。
图4是图示了根据一个实施例的图1中所示的缓冲存储器件1300的图。
参见图4,缓冲存储器件1300可以包括至少一个DRAM 1305。DRAM 1305可以包括:存储单元阵列510、行解码器520、感测放大器电路530、列解码器540、控制逻辑550、命令解码器560、模式寄存器组(mode register set)电路570、地址缓冲器580、数据输入/输出电路590和刷新电路500。
存储单元阵列510是可以在行方向和列方向上布置多个存储单元的数据存储空间。存储单元阵列510可以包括多个DRAM存储单元,当电源关断时,储存在DRAM存储单元中的数据可能丢失。感测放大器电路530可以检测并放大因为储存在选中的存储单元中的电荷的分配而出现的位线对的电压上的差异,由此读取储存在存储单元阵列510的选中的存储单元中的数据。
经由数据输入/输出电路590输入的写入数据DATA可以基于地址信号ADD而被写入至存储单元阵列510中,或者基于地址信号ADD从存储单元阵列510读取的读取数据DATA可以经由数据输入/输出电路590输出至外部设备。地址信号ADD可以输入到地址缓冲器580,以指定对写入数据DATA进行写入或对读取数据DATA进行读取的选中存储单元。地址缓冲器580可以暂时地储存从外部设备提供的地址信号ADD。
数据输入/输出电路590也可以从外部设备接收参考电压VREF_M。当写入数据DATA输入至DRAM 1305时,写入数据DATA是具有逻辑高电平还是低电平可以基于参考电压VREF_M来确定。
行解码器520可以将从地址缓冲器580传送的地址信号ADD中的行地址解码,以指定耦接至选中的存储单元的选中的字线。换言之,在数据写入模式或数据读取模式中,行解码器520可以将从地址缓冲器580传送的行地址解码以将选中的字线使能。
列解码器540可以将从地址缓冲器580传送的地址信号ADD中的列地址解码,以指定耦接至选中的存储单元的选中的位线。
命令解码器560可以接收外部施加的命令信号CMD,并且可以将命令信号CMD解码以生成内部命令信号。模式寄存器组电路570可以响应于模式寄存器组(MRS)命令和地址信号ADD而设置内部模式寄存器,由此指定DRAM 1305的操作模式。控制逻辑550可以响应于从命令解码器560输出的内部命令信号而控制DRAM 1305的操作。
刷新电路500可以控制DRAM 1305的刷新操作。在刷新操作中,读出储存在存储单元阵列510中的数据,然后将其再次写入存储单元阵列510,以防止在存储单元阵列510所包括的每个DRAM存储单元的电容器中累积的电荷丢失。
尽管在图4中未示出,但是DRAM 1305还可以包括时钟电路以生成时钟信号,以及电源电路以基于外部施加的电源电压生成要被DRAM 1305使用的内部电压。
图5是图示了根据一个实施例的图1的存储器控制器1200的图。
参见图5,存储器控制器1200可以包括:处理器710、高速缓冲存储器720、主机控制电路740、缓冲存储器控制电路750、闪存控制电路(flash control circuit)760和总线790。处理器710可以包括闪存转换部(flash translation section)(或闪存转换层,flashtranslation layer)711,主机控制电路740可以包括主机接口741。闪存控制电路760可以包括闪存接口761和闪存错误校正电路762。缓冲存储器控制电路750可以包括缓冲存储器接口751和缓冲错误校正电路752。
总线790可以在存储器控制器1200的组件之间提供通道。
例如,存储器控制器1200的总线790可以分为控制总线和数据总线。数据总线可以在存储器控制器1200中传送数据,控制总线可以在存储器控制器1200中传送诸如命令或地址的控制信息。数据总线和控制总线可以彼此隔离,并且可以不相互干扰也不相互影响。在一个实施例中,数据总线仅专用于数据传输,控制总线仅专用于控制信息传输。总线790可以耦接至处理器710、高速缓冲存储器720、主机控制电路740和闪存控制电路760。在另一个示例中,数据总线和控制总线可以共享总线线路,并且数据和控制信息可以经由总线线路传送。
主机控制电路740中的主机接口741可以与图1中所示的外部主机2000通信。主机接口741可以利用如下各种通信方法中的至少一种来执行通信,诸如通用串行总线(USB)、串行AT附件(SATA)、串行附接SCSI(SAS)、高速芯片间互连(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、PCI Express(PCIe)、非易失性存储器Express(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册的DIMM(RDIMM)和负载减少的DIMM(LRDIMM)通信方法。
主机控制电路740可以耦接在外部主机2000与总线790之间,并且可以经由总线790与处理器710的闪存转换部711和高速缓冲存储器720通信。主机控制电路740可以经由主机接口741从主机2000接收命令、逻辑地址和数据。主机控制电路740可以经由总线790将逻辑地址传送至闪存转换部711,并且可以经由总线790将数据传送至高速缓冲存储器720或图1中所示的缓冲存储器件1300。数据可以经由高速缓冲存储器720传送至缓冲存储器件1300或经由另一个数据连接路径(未示出)从总线790传送至缓冲存储器件1300。
处理器710可以控制存储器控制器1200的整体操作,并且可以执行逻辑操作。处理器710可以对从主机2000提供的多个命令进行排队。该排队操作被称为“多排队(multi-queuing)”。处理器710可以顺序地将多个排队命令经由闪存接口761传送至图1中所示的非易失性存储器件1100。
在一个实施例中,处理器710可以利用代码来控制存储器控制器1200的操作。处理器710可以存取储存在存储器件(未示出)中的、从非易失性存储器件(未示出)或非易失性存储器件1100加载的代码。在另一个实施例中,处理器710可以经由与非易失性存储器件1100通信的闪存接口761从非易失性存储器件1100加载代码。
处理器710的闪存转换部711可以将从主机控制电路740提供的逻辑地址映射到物理地址,并且将物理地址传送至闪存控制电路760。物理地址可以是指定非易失性存储器件1100中的数据存储空间的地址。闪存转换部711可以经由总线790与高速缓冲存储器720通信。
闪存控制电路760可以耦接在总线790与图1中所示的非易失性存储器件1100之间。闪存控制电路760可以控制非易失性存储器件1100的整体操作。另外,闪存控制电路760可以经由总线790与闪存转换部711通信。例如,闪存控制电路760可以基于来自闪存转换部711的物理地址将来自主机2000的数据编程到非易失性存储器件1100中。在另一个示例中,闪存控制电路760可以基于从闪存转换部711传送的物理地址来读取储存在非易失性存储器件1100中的数据。闪存控制电路760还可以经由总线790与高速缓冲存储器720通信。
闪存控制电路760可以包括闪存接口761和闪存错误校正电路762。闪存接口761可以用于与非易失性存储器件1100通信。例如,闪存接口761可以利用基于触发接口的通信方法与非易失性存储器件1100通信。
闪存错误校正电路762可以执行错误校正操作。闪存错误校正电路762可以对要写入非易失性存储器件1100的写入数据执行错误校正码(ECC)编码操作。ECC编码数据可以经由闪存接口761传送至非易失性存储器件1100。另外,闪存错误校正电路762可以接收从非易失性存储器件1100输出的读取数据,并且对读取数据执行ECC解码操作。
缓冲存储器控制电路750可以控制图1中所示的缓冲存储器件1300的整体操作。例如,缓冲存储器控制电路750可以响应于从主机控制电路740传送的内部写入命令,而将从主机2000提供的写入数据储存在缓冲存储器件1300中。在另一个示例中,缓冲存储器控制电路750可以响应于从闪存控制电路760传送的内部读取命令,而将从非易失性存储器件1100输出的读取数据储存在缓冲存储器件1300中。缓冲存储器件1300可以暂时地储存写入数据和读取数据。
缓冲存储器控制电路750可以响应于从主机控制电路740或从闪存转换部711传送的命令,而读出储存在缓冲存储器件1300中的数据并且将读出的数据高速缓存(cache)在高速缓冲存储器720中。缓冲存储器控制电路750可以耦接在缓冲存储器件1300与高速缓冲存储器720之间。如以上参照图4所述,缓冲存储器件1300可以包括DRAM,缓冲存储器控制电路750可以控制DRAM的刷新操作。
缓冲存储器控制电路750可以包括缓冲存储器接口751和缓冲错误校正电路752。缓冲存储器控制电路750可以经由缓冲存储器接口751与缓冲存储器件1300通信,以将命令传送至缓冲存储器件1300并且与缓冲存储器件1300交换数据。例如,缓冲存储器接口751可以利用基于DDR接口的通信方法与缓冲存储器件1300通信。
缓冲错误校正电路752可以对数据执行错误校正操作。缓冲错误校正电路752可以对要写入缓冲存储器件1300的数据执行ECC编码操作。ECC编码数据可以经由缓冲存储器接口751传送至缓冲存储器件1300。缓冲错误校正电路752可以接收从缓冲存储器件1300输出的数据,并且对接收的数据执行ECC解码操作。
高速缓冲存储器720可以高速缓存从缓冲存储器件1300读取(或输出)的数据。另外,高速缓冲存储器720可以将要写入的数据高速缓存到缓冲存储器件1300。高速缓冲存储器720可以耦接在总线790与缓冲存储器控制电路750之间。
例如,当主机控制电路740经由主机接口741从主机2000接收写入命令、写入数据和逻辑地址时,即,当存储系统1000执行编程操作时,处理器710的闪存转换部711可以响应于写入命令,而在非易失性存储器件1100中分配要储存写入数据的物理存储空间,例如存储块或页。换言之,闪存转换部711可以响应于写入命令而将物理地址映射到逻辑地址。物理地址可以指定非易失性存储器件1100中的要储存从主机2000接收的写入数据的物理存储空间。
图1的存储系统1000可以将逻辑地址与物理地址之间的映射信息、即逻辑-物理地址映射信息储存在非易失性存储器件1100的存储块110中。储存逻辑-物理地址映射信息的存储块110可以被称为“系统块”。
在一个实施例中,当存储系统1000的主机控制电路740经由主机接口741接收来自主机2000的写入命令、写入数据和逻辑地址时,主机控制电路740可以将写入命令和逻辑地址传送至处理器710。处理器710的闪存转换部711可以响应于写入命令而分配非易失性存储器件1100中的要储存写入数据的物理存储空间。换言之,闪存转换部711可以响应于写入命令而将物理地址映射到逻辑地址,并且可以将逻辑地址与物理地址之间新生成的映射信息、即新的逻辑-物理地址映射信息储存在缓冲存储器件1300中。换言之,闪存转换部711可以基于新映射的物理地址来更新储存在缓冲存储器件1300中的之前的逻辑-物理地址映射信息。
当电源接通时,存储器控制器1200可以读取储存在非易失性存储器件1100中的逻辑-物理地址映射信息,并且将读取的逻辑-物理地址映射信息加载到缓冲存储器件1300。另外,存储器控制器1200可以将储存在缓冲存储器件1300中的逻辑-物理地址映射信息刷新(flush)到非易失性存储器件1100。在一个实施例中,在电源关断之前逻辑-物理地址映射信息被刷新到非易失性存储器件1100,以防止储存在缓冲存储器件中的逻辑-物理地址映射信息丢失。
当主机控制电路740可以经由主机接口741从主机2000接收读取命令和逻辑地址时,即,当存储系统1000执行读取操作时,主机控制电路740可以将读取命令和逻辑地址传送至处理器710。处理器710的闪存转换部711可以响应于读取命令而发出内部读取命令,该内部读取命令用于读取基于逻辑地址数据结构的、储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息。缓冲存储器控制电路750可以响应于从闪存转换部711传送的内部读取命令,而从缓冲存储器件1300中读出与逻辑地址相对应的逻辑-物理地址映射信息,并且将读出的逻辑-物理地址映射信息高速缓存在高速缓冲存储器720中。
随后,闪存转换部711可以从高速缓存的逻辑-物理地址映射信息中提取与逻辑地址相对应的物理地址,并且将提取的物理地址传送至闪存控制电路760。闪存控制电路760可以读取储存在非易失性存储器件1100中的对应于从闪存转换部711传送的物理地址的存储空间中的数据。从非易失性存储器件1100读取的数据可以被缓冲在缓冲存储器件1300中。随后,缓冲存储器件1300中的缓冲数据可以输出至主机2000。
当从主机2000提供读取命令和逻辑地址时,闪存转换部711可以发出内部读取命令,该内部读取命令如上所述用于读取储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息,并且,响应于由闪存转换部711发出的内部读取命令,缓冲存储器控制电路750可以从缓冲存储器件1300读出逻辑-物理地址映射信息,并且将逻辑-物理地址映射信息高速缓存在高速缓冲存储器720中。然而,当缓冲存储器件1300包括如图4中所示的DRAM时,从DRAM读出逻辑-物理地址映射信息的操作可能降低存储系统1000的读取性能。
然而,在一个实施例中,如果在闪存转换部711发出用于读取储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息的内部读取命令之前,将关于与从主机2000输入的逻辑地址相对应的物理地址的信息高速缓存在高速缓冲存储器720中,则闪存转换部711可以直接参考来自高速缓冲存储器720的逻辑-物理地址映射信息,并且获取关于物理地址的信息。结果,可以改善存储系统1000的读取性能。
在一个实施例中,高速缓冲存储器720可以包括静态随机存取存储器(SRAM)。
在一个实施例中,存储系统1000可以管理用于读取操作的逻辑-物理地址映射信息和在写入操作期间生成的逻辑-物理地址映射信息,作为一种集成的信息类型或单独的信息类型。
在一个实施例中,可以优化用于读取操作的逻辑-物理地址映射信息用以搜索与特定逻辑地址相对应的物理地址。结果,在读取操作期间,优化的逻辑-物理地址映射信息可以有效地用于搜索映射到从主机2000提供的逻辑地址的物理地址。
在一个实施例中,可以针对写入操作优化在写入操作期间生成的逻辑-物理地址映射信息。当闪存转换部711从主机2000接收到写入命令、写入数据和逻辑地址时,存储器控制器1200的闪存转换部711可以在非易失性存储器件1100中快速地分配要储存写入数据的存储空间。为了快速地分配存储空间,缓冲存储器件1300可以储存与非易失性存储器件1100中的可以新分配的存储空间相对应的物理地址的列表。当闪存转换部711从主机2000接收到写入命令、写入数据和逻辑地址时,闪存转换部711可以搜索列表并且将与要储存写入数据的存储空间相对应的物理地址映射到逻辑地址,并且可以将写入数据储存在与物理地址相对应的存储空间中。可以生成用于写入操作的逻辑-物理地址映射信息并且将其暂时地储存在缓冲存储器件1300中。随后,可以将储存在缓冲存储器件1300中的逻辑-物理地址映射信息刷新到非易失性存储器件1100中,以更新储存在非易失性存储器件1100中的逻辑-物理地址映射信息,并且防止储存在缓冲存储器件1300中的逻辑-物理地址映射信息在电源关断时丢失。
换言之,在缓冲存储器件1300中,可以分别管理用于读取操作的逻辑-物理地址映射信息和在写入操作期间生成或更新的逻辑-物理地址映射信息。然而,在将储存在缓冲存储器件1300中的逻辑-物理地址映射信息刷新到非易失性存储器件1100中之后,可以在非易失性存储器件1100中集成和管理两种类型的逻辑-物理地址映射信息。
在另一个实施例中,主机控制电路740可以经由主机接口741从主机2000接收读取命令和逻辑地址。主机控制电路740可以发出第一内部读取命令,所述第一内部读取命令用于读取储存在缓冲存储器件1300中的、基于逻辑地址数据结构的与逻辑地址相对应的逻辑-物理地址映射信息。缓冲存储器控制电路750可以响应于从主机控制电路740传送的第一内部读取命令,而读取储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息,并且可以将逻辑-物理地址映射信息高速缓存到高速缓冲存储器720中。随后,主机控制电路740可以将从主机2000接收到的读取命令和逻辑地址传送至处理器710。
存储器控制器1200的闪存转换部711可以响应于读取命令而发出第二内部读取命令,所述第二内部读取命令用于读取基于逻辑地址数据结构的、储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息。此时,由于逻辑-物理地址映射信息已经高速缓存在高速缓冲存储器720中,因此闪存转换部711可以直接参考来自高速缓冲存储器720的逻辑-物理地址映射信息,并且从已经高速缓存在高速缓冲存储器720中的逻辑-物理地址映射信息中获取关于与逻辑地址相对应的物理地址的信息。
闪存转换部711可以将关于与逻辑地址相对应的物理地址的信息经由总线790传送至闪存控制电路760。闪存控制电路760可以基于从闪存转换部711传送的物理地址来读取储存在非易失性存储器件1100的存储空间中的数据。从非易失性存储器件1100读取的数据可以被缓冲在缓冲存储器件1300中。随后,被缓冲在缓冲存储器件1300中的数据可以输出至主机2000。
如上所述,在主机控制电路740将关于逻辑地址的信息传送至闪存转换部711之前,主机控制电路740可以发出第一内部读取命令,所述第一内部读取命令用于读取基于逻辑地址数据结构的、储存在缓冲存储器件1300中的与逻辑地址相对应的逻辑-物理地址映射信息。结果,在闪存转换部711发出用于读取逻辑-物理地址映射信息的第二内部读取命令之前,可以将储存在缓冲存储器件1300中的逻辑-物理地址映射信息高速缓存到高速缓冲存储器720,然后闪存转换部711可以从高速缓存在高速缓冲存储器720中的逻辑-物理地址映射信息中读出与逻辑地址相对应的物理地址。因此,在该实施例中,相比于上述实施例、即其中响应于由闪存转换部711发出的内部读取命令而读出储存在缓冲存储器件1300中的逻辑-物理地址映射信息并且将其高速缓存在高速缓冲存储器720中,即使缓冲存储器件1300包括DRAM,存储系统1000也可以以更高的速度读出与逻辑地址相对应的物理地址。结果,可以改善存储系统1000的读取性能。
换言之,可以通过主机控制电路740来执行从缓冲存储器件1300读取关于与逻辑地址相对应的物理地址的信息、并且将关于物理地址的信息高速缓存在高速缓冲存储器720中的操作,然后,闪存转换部711可以通过参考高速缓冲存储器720而不是参考缓冲存储器件1300,来检查映射到逻辑地址的物理地址。结果,可以在更短的时间内执行物理地址检查操作,因此可以改善存储系统1000的读取性能。
图6是图示了根据一个实施例的图1中所示的缓冲存储器件1300的数据和奇偶校验存储区域的图。将参考图4和图5来描述图6中所示的缓冲存储器件1300。
参见图6,缓冲存储器件1300可以储存基于逻辑地址数据结构的逻辑-物理地址映射信息。图4中所示的缓冲存储器件1300的存储单元阵列510可以包括第一块(chunk)区域810和第二块区域820以及第一奇偶校验区域811和第二奇偶校验区域821。另外,第一块区域810和第二块区域820中的每一个可以包括第一区段801至第n区段80n,n是正整数。
第一块区域810可以储存块数据,第一奇偶校验区域811可以储存作为对要储存在第一块区域810中的块数据执行ECC编码操作的结果而生成的奇偶校验数据,其中,ECC编码操作由图5中所示的缓冲错误校正电路752执行。块数据可以是用于非易失性存储器件1100的逻辑-物理地址映射信息。另外,第二块区域820可以储存块数据,第二奇偶校验区域821可以储存作为对要储存在第二块区域820中的块数据执行ECC编码操作的结果而生成的奇偶校验数据,其中,ECC编码操作由缓冲错误校正电路752执行。换言之,储存在第一块区域810和第二块区域820的每一个中的块数据可以是ECC编码或ECC解码操作的单位。
例如,储存在第一块区域810和第二块区域820中的每一个中的块数据可以具有128字节的数据。与128字节的块数据相对应的奇偶校验数据可以具有2字节的数据。换言之,缓冲错误校正电路752可以通过对128字节的块数据执行ECC编码操作来生成2字节的奇偶校验数据。
在一个实施例中,当由处理器710生成在缓冲存储器件1300的第一块区域810中写入数据的写入请求时,图5中所示的处理器710可以将数据暂时高速缓存在高速缓冲存储器720中。缓冲错误校正电路752可以对高速缓存在高速缓冲存储器720中的数据执行ECC编码操作,并且将ECC编码数据传送至缓冲存储器件1300。换言之,当由处理器710生成在缓冲存储器件1300的第一块区域810中写入数据的写入请求时,处理器710可以控制高速缓冲存储器720以暂时储存数据,并且缓冲错误校正电路752可以在处理器710的控制下,对高速缓存在高速缓冲存储器720中的数据执行ECC编码操作。
ECC编码数据可以包括块数据和奇偶校验数据。处理器710可以将块数据写入缓冲存储器件1300的第一块区域810中,并且可以将奇偶校验数据写入缓冲存储器件1300的第一奇偶校验区域811中。
例如,当生成在缓冲存储器件1300的第一块区域810的第一区段801中写入区段数据的写入请求时,处理器710可以读取储存在第一块区域810中的块数据和储存在第一奇偶校验区域811中的奇偶校验数据,并且可以控制缓冲错误校正电路752以分别对从第一块区域810和第一奇偶校验区域811读取的块数据和奇偶校验数据执行ECC解码操作。作为ECC解码操作的结果,输出ECC解码块数据。另外,处理器710可以将ECC解码块数据高速缓存在高速缓冲存储器720中。
随后,处理器710可以利用区段数据来修改高速缓存在高速缓冲存储器720中的ECC解码块数据之中的与第一区段801相对应的数据,从而输出修改的ECC解码块数据,其中与第一区段801相对应的数据利用区段数据而被修改。之后,处理器710可以控制缓冲错误校正电路752以对修改的ECC解码块数据执行ECC编码操作,并且输出修改的ECC编码块数据。处理器710可以分别将修改的ECC编码块数据和对应的奇偶校验数据写入缓冲存储器件1300的第一块区域810和第一奇偶校验区域811。例如,当储存在第一区段801至第n区段80n的每一个中的数据具有2字节的数据时,处理器710可以按照2字节的数据对缓冲存储器件1300执行写入或读取操作。如上所述,当处理器710在缓冲存储器件1300中写入具有比ECC编码或ECC解码的单位、例如128字节的块数据更小尺寸的数据时,可以经由上述的读取-修改-写入操作执行写入操作。
当生成读取储存在缓冲存储器件1300的第一块区域810的第一区段801中的区段数据的读取请求时,处理器710可以读取储存在第一块区域810中的块数据和储存在第一奇偶校验区域811中的奇偶校验数据,并且可以控制缓冲错误校正电路752以对块数据和奇偶校验数据执行ECC解码操作,从而生成ECC解码块数据。换言之,缓冲错误校正电路752可以在处理器710的控制下,对块数据和奇偶校验数据执行ECC解码操作。
另外,处理器710可以将ECC解码块数据高速缓存在高速缓冲存储器720中。高速缓冲存储器720可以在处理器710的控制下,输出ECC解码块数据中包括的与第一区段801相对应的区段数据。
例如,单个块数据中包括的多个区段数据可以分别对应于单个逻辑地址与单个物理地址之间的映射信息。例如,单个块数据中包括的多个区段数据可以包括用于多个连续的逻辑地址的映射信息。
图7是图示了根据一个实施例的图1中所示的缓冲存储器件1300的数据写入方法的流程图。将参照图1、图5和图6来描述图7中所示的数据写入方法。
参见图7,例如,可以由处理器710的闪存转换部711生成在缓冲存储器件1300的区段、例如第一块区域810的第一区段801中写入区段数据的写入请求(步骤S801)。例如,当图1中所示的存储系统1000从主机2000接收到写入命令和逻辑地址时,处理器710的闪存转换部711可以将物理地址映射到逻辑地址。另外,闪存转换部711可以基于映射结果来修改储存在缓冲存储器件1300中的逻辑-物理地址映射信息。为了修改储存在缓冲存储器件1300中的逻辑-物理地址映射信息,闪存转换部711可以生成写入请求以将区段数据写入缓冲存储器件1300中。例如,可以将单个逻辑地址与单个物理地址之间的映射信息作为区段数据储存在缓冲存储器件1300的单个区段中。
为了在缓冲存储器件1300的第一块区域810的第一区段801中写入区段数据,处理器710可以基于写入请求而读取储存在缓冲存储器件1300的第一块区域810中的块数据和储存在缓冲存储器件1300的第一奇偶校验区域811中的奇偶校验数据(步骤S802)。
此后,缓冲错误校正电路752可以在处理器710的控制下,对从第一块区域810读取的块数据和从第一奇偶校验区域811读取的奇偶校验数据执行ECC解码操作(步骤S803)。高速缓冲存储器720可以在处理器710的控制下,高速缓存ECC解码块数据(步骤S804)。
随后,处理器710可以利用区段数据来修改高速缓存在高速缓冲存储器720中的ECC解码块数据之中的与第一区段801相对应的数据(步骤S805)。缓冲错误校正电路752可以在处理器710的控制下对包括区段数据的修改的块数据执行ECC编码操作(步骤S806)。ECC编码数据可以包括修改的块数据和用于修改的块数据的奇偶校验数据。
随后,缓冲存储器件1300可以在处理器710的控制下,分别将ECC编码块数据和奇偶校验数据储存在缓冲存储器件1300的第一块区域810和缓冲存储器件1300的第一奇偶校验区域811中(步骤S807)。
如上所述,当生成写入请求以写入具有比ECC编码的单位更小尺寸的数据时,可以经由图7中描述的读取-修改-写入操作来执行该写入请求。所述具有更小尺寸的数据可以对应于要储存在缓冲存储器件1300的块区域的单个区段中的区段数据。
图8是图示了根据一个实施例的图1中所示的缓冲存储器件1300的数据读取方法的流程图。将参照图1、图5和图6来描述图8中所示的数据读取方法。
参见图8,例如,可以生成用以读取储存在缓冲存储器件1300的第一块区域810的第一区段801中的区段数据的读取请求(步骤S901)。例如,当图1中所示的存储系统1000从主机2000接收到读取命令和逻辑地址时,闪存转换部711或主机控制电路740可以发出内部读取命令至缓冲存储器件1300,该内部读取命令用于读取映射到逻辑地址的物理地址。此时,可以生成用于读取储存在缓冲存储器件1300中的区段数据的读取请求。例如,单个逻辑地址与单个物理地址之间的映射信息可以作为区段数据储存在缓冲存储器件1300的单个区段中。
当从主机2000输入用于非易失性存储器件1100的读取命令时,可以生成读取请求。当存储系统1000从主机2000接收到用于非易失性存储器件1100的读取命令和逻辑地址时,存储系统1000可以响应于读取命令而读取储存在缓冲存储器件1300中的区段数据,以检查与逻辑地址相对应的物理地址。储存在缓冲存储器件1300中的区段数据可以包括关于映射到逻辑地址的物理地址的信息,即逻辑地址和物理地址之间的逻辑-物理地址映射信息。在一个实施例中,可以通过处理器710生成从缓冲存储器件1300读取包括逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射信息的读取请求。在另一个实施例中,可以由主机控制电路740或处理器710生成读取请求。
处理器710可以响应于读取请求而读取储存在缓冲存储器件1300的第一块区域810中的块数据,和储存在缓冲存储器件1300的第一奇偶校验区域811中的奇偶校验数据(步骤S902)。
在步骤S902之后,缓冲错误校正电路752可以在处理器710的控制下,分别对从缓冲存储器件1300的第一块区域810和第一奇偶校验区域811读取的块数据和奇偶校验数据执行ECC解码操作(步骤S903)。高速缓冲存储器720可以在闪存转换部711或主机控制电路740的控制下高速缓存ECC解码块数据(步骤S904)。
随后,可以将已经高速缓存在高速缓冲存储器720中的ECC解码块数据所包括的区段数据输出至处理器710(步骤S905)。
图9是图示了根据一个实施例的图1中所示的存储系统1000的读取操作的流程图。将参照图1、图5和图6来描述图9中所示的读取操作。
参见图9,存储系统1000的主机控制电路740可以经由主机接口741从主机2000接收读取命令和逻辑地址(步骤S1001)。
随后,主机控制电路740可以将从主机2000输入的逻辑地址传送至闪存转换部711(步骤S1002)。
闪存转换部711可以发出内部读取命令,所述内部读取命令用于读取包括映射到逻辑地址的物理地址的逻辑-物理地址映射信息(步骤S1003)。
确定是否存在高速缓存命中(步骤S1004)。当包括物理地址的逻辑-物理地址映射信息未被高速缓存在高速缓冲存储器720中时,也就是,当没有高速缓存命中时,缓冲存储器控制电路750可以从缓冲存储器件1300读取逻辑-物理地址映射信息,并且将逻辑-物理地址映射信息高速缓存在高速缓冲存储器720中(步骤S1005)。
随后,可以将与逻辑地址相对应的物理地址从高速缓冲存储器720传送至闪存转换部711(步骤S1006)。
闪存转换部711可以将关于物理地址的信息传送至闪存控制电路760,并且闪存控制电路760可以基于物理地址从非易失性存储器件1100读取数据(步骤S1007)。
可以将从非易失性存储器件1100输出的数据缓冲在缓冲存储器件1300中(步骤S1008)。
随后,可以将被缓冲在缓冲存储器件1300中的数据输出至主机2000(步骤S1009)。
在步骤S1004,当确定存在高速缓存命中时,即,当包括映射到逻辑地址的物理地址的逻辑-物理地址映射信息已经被高速缓存在高速缓冲存储器720中时,读取操作直接进入步骤S1006而不执行步骤S1005,使得高速缓冲存储器720中高速缓存的物理地址从高速缓冲存储器720传送至闪存转换部711。因此,与执行步骤S1005的情况相比,存储系统1000的读取潜伏时间可以减少。图10是图示了根据一个实施例的图1中所示的存储系统1000的读取操作的流程图。将参照图1、图5和图6来描述图10中所示的读取操作。
参见图10,存储系统1000的主机控制电路740可以经由主机接口741从主机2000接收读取命令和逻辑地址(步骤S1101)。
主机控制电路740可以发出命令(例如,第一命令)以从缓冲存储器件1300读取逻辑-物理地址映射信息,该逻辑-物理地址映射信息基于逻辑地址数据结构、包括映射到逻辑地址的物理地址(步骤S1102)。
随后,可以将响应于第一命令而从缓冲存储器件1300读取的逻辑-物理地址映射信息高速缓存在高速缓冲存储器720中(步骤S1103)。
随后,主机控制电路740可以将逻辑地址传送至闪存转换部711(步骤S1104)。
闪存转换部711可以发出命令(例如,第二命令)以读取包括映射到逻辑地址的物理地址的逻辑-物理地址映射信息(步骤S1105)。
可以响应于第二命令从高速缓冲存储器720读取与逻辑地址相对应的物理地址,并且将其直接从高速缓冲存储器720传送至闪存转换部711(步骤S1106)。因为响应于主机控制电路740发出的第一命令、逻辑-物理地址映射信息已经被高速缓存在高速缓冲存储器720中,所以可以跳过从缓冲存储器件1300读取逻辑-物理地址映射信息的操作,从而加快了读取过程。
闪存转换部711可以将关于物理地址的信息传送至闪存控制电路760,并且闪存控制电路760可以基于物理地址从非易失性存储器件1100读取数据(步骤S1107)。
可以将从非易失性存储器件1100输出的数据(或者读取数据)缓冲在缓冲存储器件1300中(步骤S1108)。随后,可以将被缓冲在缓冲存储器件1300中的数据输出至主机2000(步骤S1109)。
图11是图示了根据一个实施例的存储系统30000的图。
参见图11,存储系统30000可以在蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信设备中实施。存储系统30000可以包括非易失性存储器件1100和控制非易失性存储器件1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制非易失性存储器件1100的数据存取操作,诸如编程操作、擦除操作或者读取操作。
存储器控制器1200可以控制被编程到非易失性存储器件1100中的数据,以经由显示器3200输出。
无线电收发器3300可以经由天线ANT来发送或接收无线电信号。例如,无线电收发器3300可以将经由天线ANT接收的无线电信号改变为能够由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并且将处理的信号传送至存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号编程到非易失性存储器件1100中。另外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且将无线电信号经由天线ANT输出至外部设备。可以经由输入设备3400来输入用于控制处理器3100的操作的控制信号或者要由处理器3100处理的数据。输入设备3400可以包括定点设备,诸如触摸板或计算机鼠标、小键盘、键盘等。处理器3100可以控制显示器3200的操作,使得由存储器控制器1200提供的数据、由无线电收发器3300提供的数据、或者由输入设备3400提供的数据可以经由显示器3200输出。
根据一个实施例,控制非易失性存储器件1100的操作的存储器控制器1200可以在处理器3100中实施,或者在与处理器3100分开的芯片中实施。图11的存储器控制器1200可以利用图2中所示的存储器控制器1200来实施。
图12是图示了根据一个实施例的存储系统40000的图。
参见图12,存储系统40000可以设置在个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、MP4播放器等中。
存储系统40000可以包括非易失性存储器件1100和控制非易失性存储器件1100的数据处理操作的存储器控制器1200。
处理器4100可以根据经由输入设备4200输入的数据,通过显示器4300来输出储存在非易失性存储器件1100中的数据。输入设备4200可以包括定点设备,诸如触摸板或计算机鼠标、小键盘、键盘等。
处理器4100可以控制存储系统40000的总体操作并且控制存储器控制器1200的操作。根据一个实施例,控制非易失性存储器件1100的操作的存储器控制器1200可以在处理器4100中实施,或者在与处理器4100分开的芯片中实施。图12的存储器控制器1200可以利用图2中所示的存储器控制器1200来实施。
图13是图示了根据一个实施例的存储系统50000的图。
参见图13,存储系统50000可以设置在诸如数码相机的图像处理设备中,或者附接有数码相机的电子设备、诸如移动电话、智能电话、平板PC等中。
存储系统50000可以包括非易失性存储器件1100和控制非易失性存储器件1100的数据处理操作、诸如编程操作、擦除操作和读取操作的存储器控制器1200。
存储系统50000的图像传感器5200可以将光学图像转换为数字信号,并且可以将数字信号传送至处理器5100或存储器控制器1200。在处理器5100的控制下,数字信号可以经由显示器5300输出或经由存储器控制器1200储存在非易失性存储器件1100中。另外,处理器5100或存储器控制器1200可以控制储存在非易失性存储器件1100中的数据,以经由显示器5300输出。
根据一个实施例,控制非易失性存储器件1100的操作的存储器控制器1200可以在处理器5100中实施,或者在与处理器5100分开的芯片中实施。图13的存储器控制器1200可以利用图2中所示的存储器控制器1200来实施。
图14是图示了根据一个实施例的存储系统70000的图。
参见图14,存储系统70000可以包括存储卡或智能卡。存储系统70000可以包括:非易失性存储器件1100、存储器控制器1200和卡接口7100。
存储器控制器1200可以控制非易失性存储器件1100与卡接口7100之间的数据交换。在一个实施例中,卡接口7100可以是但不限于安全数字(SD)卡接口或多媒体卡(MMC)接口。图14的存储器控制器1200可以利用图2中所示的存储器控制器1200来实施。
卡接口7100可以根据主机60000的协议在主机60000与存储器控制器1200之间执行数据交换。根据一个实施例,卡接口7100可以支持通用串行总线(USB)协议和芯片间互联(IC)-USB协议中的任何一种。卡接口7100可以指能够支持主机60000使用的协议的硬件、安装在硬件中的软件、或者信号传送方法。
当存储系统70000连接到主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制下,经由卡接口7100和存储器控制器1200与非易失性存储器件1100执行数据通信。主机60000可以包括PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件和数字机顶盒中的任何一种。
如上所述,根据本公开的实施例,存储系统可以通过将逻辑-物理地址映射信息高速缓存在高速缓冲存储器中,来减少读取储存在缓冲存储器件中的数据所需的时间。
对于本领域技术人员明显的是,在不脱离本发明的精神或范围的情况下,可以对本公开的上述实施例进行各种修改。在一个实施例中,存储系统(或SSD)包括非易失性存储器件;缓冲存储器件,其被配置为储存逻辑-物理地址映射信息;以及存储器控制器(或SSD控制器),其包括耦接在缓冲存储器件与总线之间的高速缓冲存储器。因此,本发明旨在覆盖落入所附权利要求及其等同形式的范围内的所有这些修改。
Claims (18)
1.一种存储系统,包括:
非易失性存储器件;
缓冲存储器件,其被配置为储存逻辑-物理地址映射信息;以及
存储器控制器,其被配置为控制所述非易失性存储器件和所述缓冲存储器件的操作,
其中,所述存储器控制器包括:
高速缓冲存储器;
主机控制电路,其被配置为:从主机接收读取命令和读取逻辑地址,从所述缓冲存储器件读取与所述读取逻辑地址相对应的映射信息,以及将所述映射信息高速缓存在所述高速缓冲存储器中,所述映射信息与储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息相对应;
闪存转换部,其被配置为从高速缓存在所述高速缓冲存储器中的所述映射信息来读取映射到所述读取逻辑地址的读取物理地址;以及
闪存控制电路,其被配置为基于所述读取物理地址从所述非易失性存储器件读取与所述读取命令相对应的数据,
其中,所述缓冲存储器件包括DRAM,以及所述高速缓冲存储器包括SRAM。
2.根据权利要求1所述的存储系统,其中,所述存储器控制器还包括:耦接在所述缓冲存储器件与所述高速缓冲存储器之间的错误校正电路,
其中,所述错误校正电路被配置为对从所述缓冲存储器件输出的所述映射信息执行ECC解码操作,并且生成ECC解码映射信息,以及
其中,所述高速缓冲存储器高速缓存所述ECC解码映射信息。
3.根据权利要求1所述的存储系统,其中,所述缓冲存储器件被配置为缓冲从所述非易失性存储器件读取的数据。
4.根据权利要求1所述的存储系统,其中,在电源关断之前,储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息被加载到所述非易失性存储器件中,以及当电源接通时,所述存储器控制器将已经加载到所述非易失性存储器件的所述逻辑-物理地址映射信息重新加载到所述缓冲存储器件。
5.根据权利要求1所述的存储系统,其中,当所述主机控制电路从所述主机接收写入命令、写入逻辑地址和写入数据时,所述闪存转换部将写入物理地址映射到所述写入逻辑地址,利用映射到所述写入逻辑地址的所述写入物理地址来更新储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息,并且所述闪存控制电路基于所述写入物理地址将所述写入数据编程到所述非易失性存储器件中。
6.根据权利要求5所述的存储系统,其中,所述存储器控制器被配置为将储存在所述缓冲存储器件中的更新的逻辑-物理地址映射信息刷新到所述非易失性存储器件。
7.根据权利要求5所述的存储系统,其中,闪存转换电路通过从所述缓冲存储器件读取与所述写入逻辑地址相对应的块数据来更新所述逻辑-物理地址映射信息,修改所述块数据中包括的与所述写入物理地址相对应的区段数据,并且将包括修改的区段数据的修改的块数据写入所述缓冲存储器件。
8.根据权利要求1所述的存储系统,其中,所述主机控制电路、所述闪存转换部和所述闪存控制电路经由总线彼此通信,以及
其中,所述高速缓冲存储器耦接在所述缓冲存储器件和所述总线之间。
9.一种存储系统,包括:
非易失性存储器件;
缓冲存储器件,其被配置为储存逻辑-物理地址映射信息;以及
存储器控制器,
其中,所述存储器控制器包括:
高速缓冲存储器,其耦接在所述缓冲存储器件和总线之间;
主机控制电路,其耦接在主机和所述总线之间,所述主机控制电路被配置为:
从所述主机接收逻辑地址,从所述缓冲存储器件读取映射到所述逻辑地址的物理地址,以及将所述物理地址高速缓存在所述高速缓冲存储器中;
闪存转换部,其被配置为经由所述总线从所述高速缓冲存储器接收所述物理地址;以及
闪存控制电路,其被配置为基于所述物理地址来控制所述非易失性存储器件的操作,其中,所述缓冲存储器件包括DRAM,以及所述高速缓冲存储器包括SRAM。
10.根据权利要求9所述的存储系统,其中,所述闪存控制电路耦接在所述非易失性存储器件与所述总线之间。
11.根据权利要求9所述的存储系统,其中,所述存储器控制器包括错误校正电路,所述错误校正电路耦接在所述缓冲存储器件与所述高速缓冲存储器之间,以及
其中,所述错误校正电路对从所述缓冲存储器件输出的、映射到所述逻辑地址的所述物理地址执行ECC解码操作,并且将ECC解码物理地址传送至所述高速缓冲存储器。
12.根据权利要求9所述的存储系统,其中,在电源关断之前,储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息被加载到所述非易失性存储器件中,以及当电源接通时,所述存储器控制器将已经加载到所述非易失性存储器件中的所述逻辑-物理地址映射信息重新加载到所述缓冲存储器件。
13.根据权利要求12所述的存储系统,其中,当所述主机控制电路从所述主机接收写入命令、写入逻辑地址和写入数据时,所述闪存转换部将写入物理地址映射到所述写入逻辑地址,利用映射到所述写入逻辑地址的所述写入物理地址来更新储存在所述缓冲存储器件中的逻辑-物理地址映射信息,并且所述闪存控制电路基于所述写入物理地址将所述写入数据编程到所述非易失性存储器件中。
14.一种操作存储系统的方法,所述方法包括:
从主机接收读取命令和逻辑地址;
基于所述读取命令来生成第一命令;
响应于所述第一命令,从缓冲存储器件读取与所述逻辑地址相对应的逻辑-物理地址映射信息;
响应于所述第一命令,将所述逻辑-物理地址映射信息高速缓存在高速缓冲存储器中;
生成第二命令;
响应于所述第二命令,从高速缓存在所述高速缓冲存储器中的所述逻辑-物理地址映射信息来读取与所述逻辑地址相对应的物理地址;以及
基于所述物理地址从非易失性存储器件对读取数据进行读取,
其中,所述缓冲存储器件包括DRAM,以及所述高速缓冲存储器包括SRAM。
15.根据权利要求14所述的方法,其中,高速缓存步骤包括:
从所述缓冲存储器件读取所述逻辑-物理地址映射信息;
对所述逻辑-物理地址映射信息执行ECC解码操作,以生成ECC解码逻辑-物理地址映射信息;以及
将所述ECC解码逻辑-物理地址映射信息高速缓存在所述高速缓冲存储器中。
16.根据权利要求14所述的方法,还包括:
在电源关断之前,将储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息加载到所述非易失性存储器件中;以及
当电源接通时,将已经加载到所述非易失性存储器件中的所述逻辑-物理地址映射信息重新加载到所述缓冲存储器件。
17.根据权利要求14所述的方法,还包括:
从所述主机接收写入命令、写入逻辑地址和写入数据;
将写入物理地址映射到所述写入逻辑地址;
利用所述写入物理地址来更新储存在所述缓冲存储器件中的所述逻辑-物理地址映射信息;以及
基于所述写入物理地址将所述写入数据编程到所述非易失性存储器件中。
18.根据权利要求14所述的方法,其中,所述第一命令由耦接在所述主机和总线之间的主机控制电路生成,以及
其中,所述第二命令由闪存转换部生成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0000363 | 2018-01-02 | ||
KR1020180000363A KR102421149B1 (ko) | 2018-01-02 | 2018-01-02 | 메모리 시스템 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992537A CN109992537A (zh) | 2019-07-09 |
CN109992537B true CN109992537B (zh) | 2023-02-24 |
Family
ID=67057736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811082229.9A Active CN109992537B (zh) | 2018-01-02 | 2018-09-17 | 存储系统及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11068408B2 (zh) |
KR (1) | KR102421149B1 (zh) |
CN (1) | CN109992537B (zh) |
TW (1) | TW201931363A (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
JP2019057074A (ja) * | 2017-09-20 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム |
KR20200104601A (ko) | 2019-02-27 | 2020-09-04 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
KR102456173B1 (ko) | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20210015086A (ko) * | 2019-07-31 | 2021-02-10 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
DE102019128331A1 (de) * | 2019-08-29 | 2021-03-04 | Taiwan Semiconductor Manufacturing Co., Ltd. | Gemeinsam genutzter decodiererschaltkreis und verfahren |
KR20210034711A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법 |
JP2021056550A (ja) * | 2019-09-26 | 2021-04-08 | キオクシア株式会社 | メモリシステム、メモリシステムの制御方法、および情報処理システム |
CN110990302B (zh) * | 2019-11-22 | 2021-11-02 | 北京云宽志业网络技术有限公司 | 数据缓存方法、装置、电子设备及存储介质 |
KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11573891B2 (en) | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
KR20210068699A (ko) * | 2019-12-02 | 2021-06-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
US11907572B2 (en) * | 2019-12-30 | 2024-02-20 | Micron Technology, Inc. | Interface read after write |
US11294824B2 (en) * | 2020-01-03 | 2022-04-05 | Western Digital Technologies, Inc. | System and method for reduced latency of read-modify-write operations |
US20210233585A1 (en) * | 2020-01-29 | 2021-07-29 | Micron Technology, Inc. | Multichip memory package with internal channel |
KR102495910B1 (ko) | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11755476B2 (en) | 2020-04-13 | 2023-09-12 | SK Hynix Inc. | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device |
KR102435253B1 (ko) | 2020-06-30 | 2022-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102406449B1 (ko) | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20210132806A (ko) * | 2020-04-28 | 2021-11-05 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
KR20210143387A (ko) * | 2020-05-20 | 2021-11-29 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
KR20210151372A (ko) * | 2020-06-05 | 2021-12-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11087858B1 (en) * | 2020-07-24 | 2021-08-10 | Macronix International Co., Ltd. | In-place refresh operation in flash memory |
JP2022050016A (ja) * | 2020-09-17 | 2022-03-30 | キオクシア株式会社 | メモリシステム |
KR20220058224A (ko) * | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
KR102365312B1 (ko) * | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 |
CN115407946B (zh) * | 2022-11-02 | 2023-03-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与控制系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2862948B2 (ja) | 1990-04-13 | 1999-03-03 | 三菱電機株式会社 | 半導体記憶装置 |
US5353425A (en) | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature |
US5604753A (en) | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for performing error correction on data from an external memory |
US6725333B1 (en) | 1999-04-22 | 2004-04-20 | International Business Machines Corporation | System and method for managing cachable entities |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US8046551B1 (en) | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
US20150010143A1 (en) | 2009-04-30 | 2015-01-08 | HGST Netherlands B.V. | Systems and methods for signature computation in a content locality based cache |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8166258B2 (en) | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
KR101711945B1 (ko) | 2010-01-06 | 2017-03-03 | 주식회사 태진인포텍 | 멀티 레벨 버퍼 캐시 관리 정책에 따른 메모리 관리 방법 |
DE112011102487T5 (de) * | 2010-07-27 | 2013-05-29 | International Business Machines Corporation | Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8656454B2 (en) | 2010-12-01 | 2014-02-18 | Microsoft Corporation | Data store including a file location attribute |
US8909860B2 (en) | 2012-08-23 | 2014-12-09 | Cisco Technology, Inc. | Executing parallel operations to increase data access performance |
KR101993704B1 (ko) * | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
CN102937967B (zh) | 2012-10-11 | 2018-02-27 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
US9116824B2 (en) * | 2013-03-15 | 2015-08-25 | Sandisk Technologies Inc. | System and method to reduce read latency of a data storage device |
KR20140117994A (ko) | 2013-03-27 | 2014-10-08 | 한국전자통신연구원 | 복제 파일 중복 제거 방법 및 장치 |
WO2014191966A1 (en) | 2013-05-31 | 2014-12-04 | Stmicroelectronics S.R.L. | Communication interface for interfacing a transmission circuit with an interconnection network, and corresponding system and integrated circuit |
KR102308777B1 (ko) * | 2014-06-02 | 2021-10-05 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법 |
GB2526849B (en) | 2014-06-05 | 2021-04-14 | Advanced Risc Mach Ltd | Dynamic cache allocation policy adaptation in a data processing apparatus |
JP6166476B2 (ja) * | 2014-07-09 | 2017-07-19 | 株式会社日立製作所 | メモリモジュールおよび情報処理システム |
KR102344834B1 (ko) | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
US20160162416A1 (en) * | 2014-12-08 | 2016-06-09 | Intel Corporation | Apparatus and Method for Reducing Latency Between Host and a Storage Device |
JP2016177478A (ja) | 2015-03-19 | 2016-10-06 | 株式会社リコー | 信号転送装置、情報処理装置、及び信号転送方法 |
US10007446B2 (en) * | 2015-05-05 | 2018-06-26 | Macronix International Co., Ltd. | Method, apparatus, and storage medium for writing data into persistent storage device |
KR102491624B1 (ko) * | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
KR20170015708A (ko) | 2015-07-30 | 2017-02-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
JP2017138852A (ja) | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置、記憶装置およびプログラム |
KR102533389B1 (ko) * | 2016-02-24 | 2023-05-17 | 삼성전자주식회사 | 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 |
US10037298B2 (en) | 2016-06-29 | 2018-07-31 | Amazon Technologies, Inc. | Network-accessible data volume modification |
US10469405B2 (en) | 2016-06-29 | 2019-11-05 | Amazon Technologies, Inc. | Network-accessible data volume modification |
KR20180051272A (ko) | 2016-11-08 | 2018-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP2018147231A (ja) * | 2017-03-06 | 2018-09-20 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
US10236070B2 (en) * | 2017-06-27 | 2019-03-19 | Western Digital Technologies, Inc. | Read level tracking and optimization |
US10503656B2 (en) | 2017-09-20 | 2019-12-10 | Qualcomm Incorporated | Performance by retaining high locality data in higher level cache memory |
JP2019079448A (ja) | 2017-10-27 | 2019-05-23 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
US11086526B2 (en) | 2018-06-07 | 2021-08-10 | Micron Technology, Inc. | Adaptive line width cache systems and methods |
-
2018
- 2018-01-02 KR KR1020180000363A patent/KR102421149B1/ko active IP Right Grant
- 2018-08-23 US US16/111,044 patent/US11068408B2/en active Active
- 2018-08-23 TW TW107129418A patent/TW201931363A/zh unknown
- 2018-09-17 CN CN201811082229.9A patent/CN109992537B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11068408B2 (en) | 2021-07-20 |
TW201931363A (zh) | 2019-08-01 |
KR102421149B1 (ko) | 2022-07-14 |
KR20190082584A (ko) | 2019-07-10 |
CN109992537A (zh) | 2019-07-09 |
US20190205257A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992537B (zh) | 存储系统及其操作方法 | |
US10997065B2 (en) | Memory system and operating method thereof | |
US11334448B2 (en) | Memory system and operating method thereof | |
US11194520B2 (en) | Memory system and operating method thereof | |
US10678476B2 (en) | Memory system with host address translation capability and operating method thereof | |
US10606758B2 (en) | Memory system and method of operating the same | |
CN110321068B (zh) | 存储器控制器及操作存储器控制器的方法 | |
KR102516547B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US20190121727A1 (en) | Memory system and method for operating the same | |
US20190138440A1 (en) | Memory system and operating method thereof | |
KR102479483B1 (ko) | 메모리 시스템 및 이의 동작 방법 | |
KR20190092941A (ko) | 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11269769B2 (en) | Memory system and method of operating the same | |
CN109902031B (zh) | 存储系统及其操作方法 | |
US10977144B2 (en) | Memory system and method of operating the same | |
US20200176048A1 (en) | Controller, memory system including the same, and method of operating the memory system | |
US20210232343A1 (en) | Memory controller, memory system, and operating method thereof | |
US10942675B2 (en) | Memory system and operating method thereof | |
US20240118813A1 (en) | Semiconductor memory device and operating method of the semiconductor memory device |
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 |