CN109783397A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN109783397A CN109783397A CN201810871446.XA CN201810871446A CN109783397A CN 109783397 A CN109783397 A CN 109783397A CN 201810871446 A CN201810871446 A CN 201810871446A CN 109783397 A CN109783397 A CN 109783397A
- Authority
- CN
- China
- Prior art keywords
- host
- address
- data
- buffer
- storage
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/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)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器系统及其操作方法。存储器系统包括:控制器缓冲存储器;主机接口,其被配置为从主机接收非线性主机物理地址和写入数据;主机地址转换部,其被配置为将非线性主机物理地址映射到线性虚拟地址;以及主机控制部,其被配置为根据线性虚拟地址将写入数据缓冲在控制器缓冲存储器中。
Description
相关申请的交叉引用
本申请要求于2017年11月13日提交的申请号为10-2017-0150660的韩国专利申请的优先权,其全部公开通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统及其操作方法。特别地,实施例涉及一种能够将非线性主机物理地址转换为线性虚拟地址并且将存储在主机缓冲存储器中的数据缓冲到控制器缓冲存储器中的存储器系统及其操作方法。
背景技术
非易失性存储器装置可以包括多个存储块。另外,存储块中的每一个可以包括多个存储器单元,并且可以对一个存储块中的存储器单元同时执行擦除操作。
当存储器系统从主机接收写入命令和逻辑地址时,存储器系统可以分配对应于逻辑地址的物理地址,并且将数据写入对应于物理地址的存储器区域中。
存储器系统可以将地址映射信息临时存储在缓冲存储器中,并且将存储在缓冲存储器中的地址映射信息清除(flush)到非易失性存储器装置。另外,当电源接通时,存储器系统可以将存储在非易失性存储器装置中的地址映射信息加载到缓冲存储器。
发明内容
各个实施例涉及一种通过将非线性主机物理地址转换为线性虚拟地址来高效地执行写入操作和读取操作的存储器系统及其操作方法。
根据实施例,一种存储器系统,其可以包括:控制器缓冲存储器;主机接口,其被配置为从主机接收非线性主机物理地址和写入数据;主机地址转换部,其被配置为将非线性主机物理地址映射到线性虚拟地址;以及主机控制部,其被配置为根据线性虚拟地址将写入数据缓冲在控制器缓冲存储器中。
根据另一实施例,一种存储器系统,其可以包括:控制器缓冲存储器,其包括被配置为缓冲数据的多个控制器缓冲器单元;主机地址转换部,其被配置为生成物理-虚拟地址映射表;以及主机控制部,其被配置为根据物理-虚拟地址映射表,将缓冲在控制器缓冲存储器中的数据输出到主机的主机缓冲存储器,其中物理-虚拟地址映射表包括与主机缓冲存储器中的多个主机缓冲器单元相对应的多个非线性主机缓冲器ID和与多个控制器缓冲器单元相对应的多个线性虚拟缓冲器ID。
根据另一实施例,一种存储器系统的操作方法,其可以包括:从主机接收包括非线性主机物理地址的写入命令;使用地址转换部,将非线性主机物理地址映射到线性虚拟地址;根据非线性主机物理地址,从主机的主机缓冲存储器中获取写入数据;以及根据线性虚拟地址,将写入数据缓冲在控制器缓冲存储器中。
根据另一实施例,一种存储器系统,其可以包括:存储器装置;以及控制器,其被配置为:将非顺序缓冲器地址转换为顺序缓冲器地址;将逻辑地址转换为物理地址;根据顺序缓冲器地址以顺序方式缓冲数据;以及根据物理地址,控制存储器装置对数据执行操作,其中非顺序缓冲器地址表示主机中的以非顺序方式为数据分配的缓冲器空间,以及其中从缓冲空间提供数据以用于缓冲操作。
附图说明
图1是示出根据实施例的存储器系统的示图;
图2是示出图1中所示的存储器控制器的示图;
图3是示出根据实施例的存储器系统的示图;
图4是示出图1所示的非易失性存储器装置的示图;
图5是示出图4所示的存储块的示图;
图6是根据实施例的主机缓冲存储器的操作的详细示图;
图7是示出根据实施例的控制器缓冲存储器的操作的示图;
图8是示出根据实施例的存储器控制器的示图;
图9是示出根据实施例的地址映射方法的示图;
图10是示出根据实施例的通过线性虚拟地址映射的数据写入和读取方法的示图;
图11是示出根据实施例的为输入/输出进程分配主机缓冲器单元的方法的示图;
图12是示出根据实施例的为输入/输出进程分配虚拟地址的方法的示图;
图13是根据实施例的描述写入操作的流程图;
图14是根据实施例的描述读取操作的流程图;
图15至图18是示出根据本发明的一个或多个实施例的存储器系统的各种示例的示图。
具体实施方式
将参照附图详细地描述各个实施例。注意到,对“实施例”的参考不一定仅仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。在附图中,为清楚起见,可能夸大部件的厚度和长度。在以下描述中,为了简明起见,可以省略对已知技术的详细描述,以免不必要地模糊本发明。在整个说明书和附图中,相同的附图标记表示相同的元件。
还应注意的是,在本说明书中,“连接/联接”指一个部件不仅直接联接另一部件,而且还通过一个或多个中间部件间接联接另一部件。另外,在整个说明书中,当阐述某个部件“包含”某个元件时,这并不排除其它元件;相反,除非另有说明或上下文需要,否则某个部件可以进一步包括一个或多个附加元件。
本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。
如本文使用的,单数形式可以包括复数形式并且反之亦然,除非上下文另有清楚地说明。
将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述的元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
在下文中,将参照附图详细地描述本发明的各个实施例。
图1是示出根据实施例的存储器系统1000的示图。
参照图1,存储器系统1000可以包括即使在电力供应不足的情况下也不丢失存储的数据的非易失性存储器装置1100、用于临时存储数据的缓冲存储器装置1300以及响应于主机2000的控制来控制非易失性存储器装置1100和缓冲存储器装置1300的存储器控制器1200。
主机2000可以使用诸如以下的各种通信方法中的至少一种与存储器系统1000通信:通用串行总线(USB)通信方法、串行AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速片间(HSIC)通信方法、小型计算机系统接口(SCSI)通信方法、外围组件互联(PCI)通信方法、高速PCI(PCIe)通信方法、高速非易失性存储器(NVMe)通信方法、通用闪速存储器(UFS)通信方法、安全数字(SD)通信方法、多媒体卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、双列直插式存储器模块(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法和负载减少的DIMM(LRDIMM)通信方法。
存储器控制器1200可以控制存储器系统1000的总体操作,并且控制主机2000和非易失性存储器装置1100之间的数据交换。例如,存储器控制器1200可以响应于来自主机2000的请求而控制非易失性存储器装置1100编程或读取数据。另外,存储器控制器1200可以存储关于非易失性存储器装置1100中的主存储块和子存储块的信息并且可以根据为编程操作加载的数据量,选择非易失性存储器装置1100对主存储块或子存储块执行编程操作。根据实施例,非易失性存储器装置1100可以包括闪速存储器。
存储器控制器1200可以控制主机2000与缓冲存储器装置1300之间的数据交换,或者可以将用于控制非易失性存储器装置1100的系统数据临时存储在缓冲存储器装置1300中。存储器缓冲器1300可以用作存储器控制器1200的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1300可以存储由存储器控制器1200执行的代码和命令。存储器缓冲器1300可以存储待由存储器控制器1200处理的数据。
存储器控制器1200可以临时存储从主机2000输入的数据,并且将临时存储在缓冲存储器装置1300中的数据传输到非易失性存储器装置1100以存储数据。另外,存储器控制器1200可以接收来自主机2000的数据和逻辑地址,并且将逻辑地址转换为指示实际存储数据的区域的物理地址。另外,存储器控制器1200可以将配置逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射表存储在缓冲存储器装置1300中。
根据实施例,缓冲存储器装置1300可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功耗双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、或者Rambus动态随机存取存储器(RDRAM)。
虽然图1示出包括在存储器系统1000中的缓冲存储器装置1300,但是本公开不限于此。即,存储器系统1000可以不包括缓冲存储器装置1300。相反,缓冲存储器装置1300可以被设置在存储器系统1000的外部。
主机2000可以包括主机缓冲存储器2100。例如,对于PCIe SSD,主机2000可以定义以特定形式设置的命令以描述操作。例如,读取命令可以被配置为包括主机地址、逻辑地址LA和数据大小。在另一示例中,写入命令可以被配置为包括主机地址、逻辑地址LA和数据大小。包括在写入命令中的主机地址可以指示待写入的数据被存储在主机缓冲存储器2100中的存储器空间的位置。另外,包括在读取命令中的主机地址可以指示读取数据被存储在主机缓冲存储器中的存储器空间的物理位置。主机地址可以被称为主机物理地址。
主机2000可以通过逻辑地址LA指定待被写入或读取的数据的数据存储空间的位置,并且同时可以确定待被写入或读取的数据的大小。待被写入或读取的数据的最小单位可以是例如512B或4KB。在制造存储器系统1000之后,可以固定最小单元。数据大小可以限定为最小单位的N倍,其中N是自然数。例如,当最小单位是4KB时,数据大小可以被表示为一个4KB数据、两个4KB数据、四个4KB数据等。例如,128KB可以被表示为32个4KB数据。换言之,对于写入命令,当数据的逻辑地址LA是‘100’并且数据大小是最小单位,例如4KB时,数据大小可以被表示为‘写入(主机地址,0x100,0)’。在另一示例中,对于写入命令,当数据的逻辑地址LA是‘100’并且数据大小是最小单位的32倍时,例如128KB时,数据大小可以被表示为‘写入(主机地址,0x100,31)’。
图2是示出图1中所示的存储器控制器1200的示图。
参照图2,存储器控制器1200可以包括处理器710、存储器缓冲器720、错误校正码(ECC)块730、主机接口740、缓冲器控制电路750、非易失性闪存接口760、数据随机化发生器770、缓冲存储器接口780和总线790。
总线790可以提供存储器控制器1200的部件之间的通道。
处理器710可以控制存储器控制器1200的全部操作并且可以执行逻辑操作。处理器710可以通过主机接口740与外部主机2000通信,并且还可以通过闪存接口760与非易失性存储器装置1100通信。进一步地,处理器710可以通过缓冲存储器接口780与缓冲存储器装置1300通信。进一步地,处理器710可以通过缓冲器控制电路750控制存储器缓冲器720。处理器710可以通过使用存储器缓冲器720作为操作存储器、高速缓冲存储器或缓冲存储器来控制存储器系统1000的操作。
处理器710可以排队从主机2000输入的多个命令。该操作被称为多队列。处理器710可以将多个排队命令顺序地传递到非易失性存储器装置1100。
存储器缓冲器720可以用作处理器710的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器720可以存储由处理器710执行的代码和命令。存储器缓冲器720可以存储由处理器710处理的数据。存储器缓冲器720可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC块730可以执行错误校正。ECC块730可以基于通过闪存接口760而待被写入到非易失性存储器装置1100的数据来执行ECC编码。经ECC编码的数据可以通过闪存接口760而被传递到非易失性存储器装置1100。ECC块730可以基于通过闪存接口760而从非易失性存储器装置1100接收的数据来执行ECC解码。例如,ECC块730可以作为闪存接口760的部件而被包括在闪存接口760中。
主机接口740可以响应于处理器710的控制而与外部主机2000通信。主机接口740可以使用诸如以下的各种通信方法中的至少一种执行通信:通用串行总线(USB)通信方法、串行AT附件(SATA)通信方法、串列SCSI(SAS)通信方法、高速片间(HSIC)通信方法、小型计算机系统接口(SCSI)通信方法、外围组件互联(PCI)通信方法、高速PCI(PCIe)通信方法、高速非易失性存储器(NVMe)通信方法、通用闪存(UFS)通信方法、安全数字(SD)通信方法、多媒体卡(MMC)通信方法、嵌入式MMC(eMMC)通信方法、双列直插式存储器模块(DIMM)通信方法、寄存式DIMM(RDIMM)通信方法和负载减少的DIMM(LRDIMM)通信方法。
缓冲器控制电路750可以在处理器710的控制下控制存储器缓冲器720。
闪存接口760可以在处理器710的控制下与非易失性存储器装置1100通信。闪存接口760可以通过通道将命令、地址和数据传输到非易失性存储器装置1100/从非易失性存储器装置1100接收命令、地址和数据。
虽然图2示出包括在存储器控制器1200中的存储器缓冲器720和缓冲器控制电路750,但是本公开不限于此。即,存储器控制器1200可以不包括存储器缓冲器720和缓冲器控制电路750。根据系统设计,可以单独提供这些部件中的一个或两个。
处理器710可以使用代码来控制存储器控制器1200的操作。处理器710可以从设置在存储器控制器1200中的非易失性存储器装置(例如,只读存储器)加载代码。例如,处理器710可以通过闪存接口760从非易失性存储器装置1100加载代码。
数据随机化发生器770可以使数据随机化或者使随机化的数据去随机化。数据随机化发生器770可以对通过闪存接口760而待被写入至非易失性存储器装置1100中的数据执行数据随机化操作。经ECC编码的数据可以通过闪存接口760被传递到非易失性存储器装置1100。数据随机化发生器770可以对通过闪存接口760而从非易失性存储器装置1100接收的数据执行数据去随机化。例如,数据随机化发生器770可以作为闪存接口760的部件。
存储器控制器1200的总线790可以被划分成控制总线和数据总线。数据总线可以被配置成在存储器控制器1200中传输数据,并且控制总线可以被配置成在存储器控制器1200中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此隔离,以便既不彼此干扰也不彼此影响。数据总线可以联接到主机接口740、缓冲器控制电路750、ECC块730、闪存接口760和缓冲存储器接口780。控制总线可以联接到主机接口740、处理器710、缓冲器控制电路750、闪存接口760和缓冲存储器接口780。虽然图2示出包括在存储器控制器1200中的缓冲存储器装置,但是本公开不限于此。即,存储器控制器1200可以不包括缓冲存储器装置780,其可以被单独设置。
缓冲存储器接口780可以在处理器710的控制下与缓冲存储器装置1300通信。缓冲存储器装置780可以通过通道将命令、地址和数据传输到缓冲存储器装置1300/从缓冲存储器装置1300接收命令、地址和数据。
存储器系统1000可以从主机2000接收写入命令、写入数据和逻辑地址。存储器控制器1200可以响应于写入命令来分配存储写入数据的非易失性存储器装置1100的物理存储空间,即,存储块110或页面。换言之,响应于写入命令,存储器控制器1200可以映射对应于逻辑地址的物理地址。物理地址可以被称为闪存逻辑地址,使得物理地址可以与主机物理地址区分开。主机物理地址可以对应于非易失性存储器装置1100的物理存储空间,其中从主机2000接收的写入数据被存储在该物理存储空间。
存储器系统1000可以将逻辑地址和物理地址之间的上述映射信息,即逻辑-物理地址映射信息,存储在非易失性存储器装置1100的存储块110中。存储逻辑-物理地址映射信息的存储块110可以被称为系统块。
当存储器系统1000被启动时,存储在非易失性存储器装置1100中的逻辑-物理地址映射信息可以被加载到缓冲存储器装置1300或存储器缓冲器720。另外,存储器系统1000可以从非易失性存储器装置1100读取逻辑-物理地址映射信息,并将读取的信息存储在缓冲存储器装置1300或存储器缓冲器720中,以检查存储在非易失性存储器装置1100中的逻辑-物理地址映射信息。缓冲存储器装置1300和/或存储器缓冲器720可以单独地或统称为“控制器缓冲存储器”。
在另一示例中,当存储器系统1000从主机2000接收写入命令、写入数据和逻辑地址时,存储器控制器1200可以响应于写入命令来分配其中存储写入数据的非易失性存储器装置1100的物理存储空间。换言之,响应于写入命令,存储器控制器1200可以映射对应于逻辑地址的物理地址并且利用新生成的逻辑地址和物理地址之间的映射信息,即,逻辑-物理地址映射信息,来更新缓冲存储器装置1300或存储器缓冲器720。如上所述,指示非易失性存储器装置1100中的数据存储空间的物理地址可以被称为闪存逻辑地址。
存储器系统1000可以从主机2000接收读取命令和逻辑地址。存储器系统1000可以响应于读取命令,从存储在非易失性存储器装置1100中的逻辑-物理地址映射信息检查对应于逻辑地址的物理地址,读取存储在与检查到的物理地址相对应的存储器区域中的数据,并且将读取的数据输出到主机2000。
处理器710可以包括主机控制部711、闪存控制部712和闪存转换部713。
主机控制部711可以控制主机2000与主机接口740和控制器缓冲存储器(即,存储器缓冲器720或缓冲存储器装置1300)之间的数据传递。例如,主机控制部711可以控制将通过主机接口740从主机2000输入的数据缓冲在存储器缓冲器720或缓冲存储器装置1300中。在另一示例中,主机控制部711可以控制将缓冲在存储器缓冲器720或缓冲存储器装置1300中的数据通过主机接口740输出到主机2000。
例如,主机控制部711可以控制获取存储在主机2000的主机缓冲存储器2100中的数据,并且将获取的数据缓冲在控制器缓冲存储器中。另外,主机控制部711可以控制将缓冲在控制器缓冲存储器中的数据输出到主机2000的主机缓冲存储器2100。
在写入操作期间,闪存控制部712可以控制将缓冲在存储器缓冲器720或缓冲存储器装置1300中的数据传递到非易失性存储器装置1100的操作。在另一示例中,在读取操作期间,闪存控制部712可以控制将从非易失性存储器装置1100读取和输出的数据缓冲到存储器缓冲器720或缓冲存储器装置1300中。
在数据写入操作期间,闪存转换部713可以映射与从主机2000输入的逻辑地址相对应的物理地址。数据可以被写入至非易失性存储器装置1100中的与映射的物理地址相对应的存储空间中。闪存转换部713可以在数据写入操作期间检查映射到从主机2000输入的逻辑地址的物理地址,并且可以将该物理地址传递到闪存控制部712。闪存控制部712可以从非易失性存储器装置1100中的与物理地址相对应的存储空间读取数据。指示非易失性存储器装置1100中的存储空间的物理地址可以被称为闪存物理地址,其与主机物理地址不同。
图3是示出根据实施例的存储器系统1000的示图。更具体地,图3示出包括存储器控制器1200和通过多个通道CH1至CHk联接到存储器控制器1200的多个非易失性存储器装置1100的存储器系统1000。
参照图3,存储器控制器1200可以通过多个通道CH1至CHk与多个非易失性存储器装置1100通信。存储器控制器1200可以包括多个通道接口1201,并且通道CH1至CHk中的每一个可以联接到通道接口1201中的一个。例如,第一通道CH1可以联接到第一通道接口1201,第二通道CH2可以联接到第二通道接口1201,并且第k通道CHk可以联接到第k通道接口1201。通道CH1至CHk中的每一个可以联接到一个或多个非易失性存储器装置1100。另外,联接到不同通道的非易失性存储器装置1100可以彼此独立地操作。换言之,联接到第一通道CH1的非易失性存储器装置1100和联接到第二通道CH2的非易失性存储器装置1100可以彼此独立地操作。例如,存储器控制器1200可以在通过CH1与联接到第一通道CH1的非易失性存储器装置1100交换数据或命令的同时,通过CH2与联接到第二通道CH2的非易失性存储器装置1100交换数据或命令。
通道CH1至CHk中的每一个可以联接到一个或多个非易失性存储器装置1100。联接到单个通道的多个非易失性存储器装置1100可以分别构成不同的路径。例如,N个非易失性存储器装置1100可以联接到单个通道,并且各个非易失性存储器装置1100可以配置成N个不同的路径。即,第一至第N存储器装置1100可以联接到第一通道CH1。第一存储器装置1100可以配置第一路径Way1,第二存储器装置1100可以配置第二路径Way2,并且第N存储器装置1100可以配置第N路径WayN。可选地,联接到相同通道的两个或更多个非易失性存储器装置1100可以构成单个路径。
由于联接到CH1的第一到第N非易失性存储器装置1100共享CH1,因此这些存储器装置可以与存储器控制器1200顺序地,但不能同时并行地交换数据或命令。换言之,当存储器控制器1200通过CH1将数据传输到CH1的配置第一路径Way1的第一非易失性存储器装置1100时,CH1的配置第二路径Way2至第N路径WayN的第二至第N非易失性存储器装置1100可不通过CH1与存储器控制器1200交换数据或命令。即,当共享CH1的第一至第N非易失性存储器装置1100中的一个占用CH1时,与CH1联接的其它非易失性存储器装置1100可不使用CH1。
然而,CH1的配置Way1的第一非易失性存储器装置1100和CH2的配置Way1的第一非易失性存储器装置1100可以彼此独立地与存储器控制器1200通信。换言之,在CH1的配置Way1的第一非易失性存储器装置1100通过CH1和第一通道接口1201两者与存储器控制器1200交换数据的同时,存储器控制器1200可以通过CH2和第二通道接口1201两者与CH2的配置Way1的第一非易失性存储器装置1100交换数据。
图4是示出图1所示的非易失性存储器装置1100的示图。
参照图4,非易失性存储器装置1100可以包括其中存储数据的存储器单元阵列100。非易失性存储器装置1100可以包括外围电路200,外围电路200被配置为执行将数据存储在存储器单元阵列100中的编程操作、用于输出存储的数据的读取操作以及用于擦除存储的数据的擦除操作。非易失性存储器装置1100可以包括控制逻辑300,控制逻辑300响应于图1所示的存储器控制器1200的控制来控制外围电路200。
存储器单元阵列100可以包括多个存储块BLK1至BLKm 110,其中m是正整数。局部线LL和位线BL1至BLn可以联接到存储块BLK1至BLKm110中的每一个,其中n是正整数。例如,局部线LL可以包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。另外,局部线LL可以包括布置在第一选择线和字线之间和第二选择线和字线之间的虚拟(dummy)线。第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线LL可以包括字线、漏极选择线和源极选择线以及源极线。例如,局部线LL可以进一步包括虚拟线。例如,局部线LL可以进一步包括管线。局部线LL可以分别联接到存储块BLK1至BLKm 110,并且位线BL1到BLn可以共同联接到存储块BLK1到BLKm 110。存储块BLK1至BLKm 110可以具有二维(2D)结构或三维(3D)结构。例如,在2D存储块110中,存储器单元可以布置为与衬底平行。例如,在3D存储块110中,存储器单元可以在与衬底垂直的方向上堆叠。
外围电路200可以响应于控制逻辑300的控制,对被选择的存储块110执行编程操作、读取操作或擦除操作。例如,控制逻辑300可以控制外围电路200将验证电压和通过电压供给到第一选择线、第二选择线和字线,可以选择性地使第一选择线、第二选择线和字线放电,并且可以验证联接到字线之中的被选择的字线的存储器单元。例如,外围电路200可以包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压生成电路210可以响应于操作信号OP_CMD而生成用于执行编程操作、读取操作及擦除操作的各种操作电压Vop。另外,电压生成电路210可以响应于操作信号OP_CMD而选择性地使局部线LL放电。例如,控制逻辑300可以控制电压生成电路210生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压。
行解码器220可以响应于行地址RADD而将操作电压Vop传递到与被选择的存储块110联接的局部线LL。
页面缓冲器组230可以包括联接到位线BL1至BLn的多个页面缓冲器PB1至PBn231。页面缓冲器PB1至PBn 231可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作中,页面缓冲器PB1至PBn 231可以临时存储分别通过位线BL1至BLn接收的数据,或者可以感测位线BL1至BLn的电压或电流。
列解码器240可以响应于列地址CADD而在输入/输出电路250和页面缓冲器组230之间传输数据。例如,列解码器240可以通过数据线DL与页面缓冲器231交换数据,或者可以通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可以将来自如图1所示的存储器控制器1200的命令CMD或地址ADD传递到控制逻辑300,或者可以与列解码器240交换数据DATA。
在读取操作或验证操作期间,感测电路260可以响应于可允许位VRY_BIT<#>生成参考电流,并且可以将从页面缓冲器组230接收的感测电压VPB与由参考电流生成的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
响应于命令CMD和地址ADD,控制逻辑300可以输出操作信号OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>以控制外围电路200。另外,控制逻辑300可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
对于非易失性存储器装置1100的操作,每个存储块110可以是擦除操作的单位。换言之,在单个存储块110中的多个存储器单元可以被同时擦除,但是不可以被选择性擦除。
图5是示出图4所示的多个存储块BLK1至BLKm 110之中的存储块110的示图。
参照图5,存储块110可以被配置为使得并行布置的多个字线可以联接在第一选择线和第二选择线之间。第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块110可以包括联接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn中的每一个可以联接到串ST中的每一个,并且源极线SL可以共同联接到串ST。由于串ST可以具有相同的配置,因此作为示例将详细描述联接到第一位线BL1的串ST。
串ST可以包括在源极线SL和第一位线BL1之间串联联接的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。如图5所示,单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可以包括比存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可以联接到源极线SL,并且漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元F1至F16可以串联地联接在源极选择晶体管SST和漏极选择晶体管DST之间。在不同串ST中的源极选择晶体管SST的栅极可以联接到源极选择线SSL,漏极选择晶体管DST的栅极可以联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以联接到多个字线WL1至WL16。不同串ST中的存储器单元之中的、联接到相同字线的一组存储器单元可以被称为物理页面PPG。因此,存储块110可以包括与字线WL1至WL16的数量一样多的物理页面PPG。
单个存储器单元可以存储一位数据。这种存储器单元通常被称为单层单元(SLC)。其单个物理页面PPG可以存储与单个逻辑页面LPG相对应的数据。与单个逻辑页面LPG相对应的数据可以包括与在单个物理页面PPG中的单元的数量一样多的数据位。此外,单个存储器单元MC可以存储两位或更多位数据。这种单元通常被称为“多层单元(MLC)”。其单个物理页面PPG可以存储与两个或更多个逻辑页面LPG相对应的数据。
当存储器单元存储2位数据时,单个物理页面PPG可以包括两个页面PG。一个页面PG可以存储一个逻辑页面LPG的数据。根据数据,一个存储器单元可以包括多个阈值电压中的一个,并且一个物理页面PPG中的多个页面PG可以表示阈值电压的差异。
在一个物理页面PPG中的多个存储器单元可以同时被编程。换言之,非易失性存储器装置1100可以对每个物理页面PPG执行编程操作。在单个存储块中的多个存储器单元可以被同时擦除。换言之,非易失性存储器装置1100可以对每个存储块110执行擦除操作。例如,为了更新存储在一个存储块110中的数据的部分,可以读取存储在存储块110中的全部数据,可以改变待被更新的数据的部分,并且可以将全部数据编程至另一存储块110。
图6是示出根据实施例的图1中所示的主机缓冲存储器2100的操作的详细示图。
参照图6,主机缓冲存储器2100可以包括多个主机缓冲器单元2101。例如,主机缓冲器单元2101可以具有能够存储512字节或4KB的存储器大小。例如,主机缓冲存储器2100可以形成为DRAM。
物理缓冲器ID PBID可以被提供至主机缓冲存储器2100中的多个主机缓冲器单元2101中的每一个。例如,当主机缓冲存储器2100包括32个主机缓冲器单元2101时,32个主机缓冲器单元2101可以分别被提供1至32物理缓冲器ID PBID。物理缓冲器ID PBID可以是通过使用简单的自然数来表示的主机物理地址HPA。
主机2000可以定义以特定形式设置的命令以描述操作。例如,读取命令可以被配置为包括主机地址、逻辑地址LA和数据大小。读取命令的主机地址可以指示将存储通过存储器系统1000的读取操作输出的数据的主机缓冲存储器2100中的主机缓冲器单元2101。主机地址可以指示存储了数据的主机缓冲存储器2100的物理存储器空间,或者将存储数据的物理存储器空间。主机地址可以被称为主机物理地址HPA。
在另一示例中,写入命令可以被配置为包括主机地址、逻辑地址LA和数据大小。写入命令的主机地址可以指示存储了待被写入到存储器系统1000中的数据的主机缓冲存储器2100中的主机缓冲器单元2101。
主机2000可能无法执行单个大数据传输,即,单个主机地址可能不代表单个命令中的多个顺序地址。主机2000可以以下这种方式管理主机缓冲存储器2100:将主机缓冲存储器2100分成多个主机缓冲器单元2101,并且分配多个主机缓冲器单元2101以用于以单个主机缓冲器单元2101为单位存储或提取数据。换言之,单个主机地址可以对应于单个主机缓冲器单元2101。即,单个输入/输出进程可以对应于单个主机缓冲器单元2101。
例如,当主机缓冲器单元2101具有4KB的大小时,为了表达用于128KB数据的顺序读取命令或用于128KB数据的顺序写入命令,主机2000可以通过使用与总共32个主机缓冲器单元2101相对应的主机地址来表达相应的命令。主机缓冲器单元2101中的每一个可以包括关于主机缓冲存储器2100的非线性地址,即,不连续和分散的地址。在该示例中,为了表达用于128KB数据的顺序读取命令或用于128KB数据的顺序写入命令,可以将32个主机缓冲器单元2101的指针(pointer)添加到命令。这可以被称为物理区域页面(PRP)方法。当存储器系统1000直接使用指示主机2000的主机缓冲存储器2100中的物理存储空间的主机地址时,除了上述PRP方法之外,可以通过使用分散-收集列表(SGL)方法将关于主机2000的地址传递到存储器系统1000。
例如,在读取命令或写入命令中,为了表达读取命令或写入命令的128KB顺序数据,指示PRP列表的32个指针可以被指定为主机地址字段(field),其中PRP列表包括用于32个主机缓冲器单元2101的物理区域页面(PRP),其中32个主机缓冲器单元2101中的每一个对应于128KB中的4KB数据。当存储器系统1000处理相应的命令时,存储器系统1000可以基于主机地址获取PRP列表,并单独地管理32个物理区域页面PRP,即主机缓冲器单元2101的地址。
由于32个主机缓冲器单元2101的地址被表达为关于单个命令的列表,因此存储器系统1000可以分析一个PRP地址,即,用于传递存储在每个主机缓冲器单元2101中的4KB数据的主机物理地址HPA。对于写入命令,该PRP地址可以用作源地址。另外,存储器系统1000可以分析一个PRP地址,以便传递待被存储在主机缓冲器单元2101中的每一个中的4KB数据。对于读取命令,该PRP地址可以用作目标地址。对于主机2000,4KB的随机地址可能使得难以在存储器系统1000中线性地分配地址。作为结果,存储器系统1000可能必须计算每个地址,这可能降低性能。
图7是根据实施例的控制器缓冲存储器的详细示图。
参照图7,控制器缓冲存储器,即,缓冲存储器装置1300和/或存储器缓冲器720,可以包括多个控制器缓冲器单元1301。控制器缓冲器单元1301中的每一个可以包括存储器空间,该存储器空间存储与主机缓冲器单元2101相同大小的数据。一个输入/输出进程可以对应于一个主机缓冲器单元2101,并且类似地,一个输入/输出进程可以对应于一个控制器缓冲器单元1301。
虚拟缓冲器ID VBID可以被提供至控制器缓冲存储器中的多个控制器缓冲器单元1301中的每一个。例如,当控制器缓冲存储器包括64个控制器缓冲单元1301时,1至64虚拟缓冲器ID VBID可以分别被提供至64个控制器缓冲器单元1301。虚拟缓冲器ID VBID可以表示虚拟地址VA,该虚拟地址VA通过使用简单自然数指示控制器缓冲存储器中的多个控制器缓冲器单元1301。
图8是示出根据实施例的存储器控制器1200的示图。另外,图9是示出根据实施例的地址映射方法的示图。
参照图8和图9,除了图2中描述的存储器控制器1200所包括的部件之外,存储器控制器1200可以进一步包括主机地址转换部741。主机地址转换部741可以将由主机2000提供的非线性主机物理地址映射到线性虚拟地址。非线性主机物理地址可以指不连续和分散的主机物理地址。线性虚拟地址可以指连续和顺序增加的虚拟地址。
如上所述,当主机地址转换部741将非线性主机物理地址映射到线性虚拟地址时,可以由起始地址和数据的大小来指定对应于数据的线性地址,并且主机2000可以不单独地执行分段存储(fragmentation)。另外,在管理主机缓冲器单元2101时,即,在可以例如4KB为单位管理数据时,可以不单独地管理多个描述符或链表。因此,可以防止存储器系统1000的性能降级。
例如,存储器控制器1200可以包括主机地址转换部741,并且主机2000的主机缓冲存储器2100可以包括N个主机缓冲器单元2101,其中N是2或更大的自然数。主机缓冲存储器2100的N个主机缓冲器单元2101中的每一个可以由主机物理地址HPA识别。主机物理地址HPA可以指主机缓冲存储器2100的N个主机缓冲器单元2101中的每一个的物理地址。
N个主机缓冲器单元2101中的每一个可以在发出命令时被指定,被占用预定时间,并且响应于处理命令的完成而被释放。换言之,根据主机物理地址HPA,主机缓冲器单元2101中的每一个的请求和释放可以完全随机地执行。
当可以利用连续地址和用作起始地址的一个主机物理地址HPA来表示128KB数据时,可以非常高效地执行存储器控制器1200的写入操作和读取操作。对与连续地址相对应的大量数据执行写入操作或读取操作的速率可以高于对由与随机地址相对应的小数据组成的数据执行写入操作或读取操作的速率。换言之,当根据主机物理地址HPA的列表的配置,将数据表示为连续地址时,可以非常高效地执行存储器控制器1200的写入操作和读取操作。
主机地址转换部741可以将主机物理地址HPA转换为虚拟地址VA。主机接口740从主机2000接收的命令可以包括主机物理地址HPA,并且主机地址转换部741可以从命令来检测主机物理地址HPA。另外,主机地址转换部741可以为主机物理地址HPA分配虚拟地址VA,并将分配的虚拟地址VA传递到处理器710。可以为从主机2000输入的命令分配起始虚拟地址VA。主机地址转换部741可以将虚拟地址VA中的每一个分配给主机物理地址HPA中的相应一个。主机物理地址HPA可以是非线性的,即不连续的分散地址,并且虚拟地址VA可以是线性地址,即,连续且顺序增加的地址。例如,利用简单自然数表示虚拟地址的虚拟缓冲器IDVBID可以从‘1’开始并且针对物理区域页面PRP的每个地址增加1。当虚拟缓冲器ID VBID到达最后的虚拟地址VA时,虚拟缓冲器ID VBID可以回滚到‘1’。换言之,主机地址转换部741可以将从主机2000输入的非线性主机物理地址HPA映射到线性虚拟地址VA。
当对4KB数据单位的写入操作排序时,其中每个4KB数据对应于一个主机缓冲器单元2101,主机物理地址HPA可以是用于形成主机2000的主机缓冲存储器2100的多个主机缓冲器单元2101的随机物理地址。然而,存储在实际主机缓冲存储器2100中的多个4KB数据单元可以具有语义(semantic)或固有顺序,其可以由虚拟地址VA表示。
例如,在写入操作期间,当主机接口740从主机2000接收写入命令并且响应于写入命令时,主机接口740可以将存储在主机缓冲存储器2100中的待写入的写入数据加载到存储器缓冲器720或缓冲存储器装置1300。当从主机2000输入的写入数据具有32KB的大小时,可以为写入数据分配主机缓冲存储器2100中的32KB的存储器空间,即,八个4KB的主机缓冲器单元2101,并且这些主机缓冲器单元可以对应于八个物理缓冲器ID PBID。当在主机缓冲存储器2100中分配的主机2000的八个物理区域页面PRP,即,八个主机缓冲器单元2101是{4KBx7,4Kbx0,4Kbx1,4Kbx4,4Kbx2,4Kbx6,4Kbx5,4KBx3}时,八个物理缓冲器ID PBID可以被表达为{0x7,0x0,0x1,0x4,0x2,0x6,0x5,0x3}。例如,对应于八个物理缓冲器ID PBID的主机物理地址HPA可以是‘E000’,‘0’,‘2000’,‘8000’,‘4000’,‘C000’,‘A000’,‘6000’。
当针对相应的写入命令顺序地对八个主机缓冲器单元2101进行编号时,写入命令可以被定义为由从具有值7*4K的PRP开始的N个序列组成的操作。换言之,具有值7*4K的PRP可以对应于写入命令的第一序列,具有值0*4K的PRP可以对应于写入命令的第二序列,并且具有值1*4K的PRP可以对应于写入命令的第三序列。当根据每个序列来顺序地对每个PRP编号时,可以在存储器缓冲器720或缓冲存储器装置1300中指定连续的缓冲空间。该序列编号可以是虚拟地址VA或虚拟地址ID VBID。因此,主机地址转换部741可以生成和管理虚拟-物理地址映射表。例如,与具有值2的虚拟缓冲器ID VBID相对应的虚拟地址VA可以是‘2000’。
如上所述,针对从主机接口740传递的写入命令,主机地址转换部741可以排序和管理序列。当利用这些序列来检测存储器缓冲器720和缓冲存储器装置1300中的缓冲空间时,如果针对写入命令,仅共享了关于存储器缓冲器720或缓冲存储器装置1300中的第一缓冲空间的信息,则主机接口740和处理器710可以获得关于整个缓冲空间的信息。
参照图9,在非线性主机物理地址HPA被映射到线性虚拟地址VA的表中,主机2000的主机缓冲存储器2100可以包括八个主机缓冲器单元2101。针对第一到第八主机缓冲器单元2101,物理缓冲器ID PBID可以对应于主机物理地址HPA,并且虚拟缓冲器ID VBID可以具有从1至16的值。当在时间t0处分配具有值8的物理缓冲器ID PBID时,可以分配具有值1的虚拟缓冲器ID VBID。当在时间t1处分配具有值1的物理缓冲器ID PBID时,可以分配具有值2的虚拟缓冲器ID VBID。主机物理地址HPA可以指示表示主机缓冲存储器2100中的实际物理缓冲空间的物理地址。另外,虚拟地址VA可以指示表示存储器缓冲器720或缓冲存储器装置1300中的实际物理缓冲空间的物理地址。
如上所述,通过将关于主机缓冲存储器2100的非线性主机物理地址HPA映射到关于存储器缓冲器720或缓冲存储器装置1300的线性虚拟地址VA,可以在存储器系统1000中高效地执行写入操作。换言之,存储器系统1000可以通过使用顺序编程算法,利用缓冲在存储器缓冲器720或缓冲存储器装置1300中的写入数据,对非易失性存储器装置1100中的由连续地址表示的页面进行编程。因此,可以改善编程操作的执行。
图10是示出根据实施例的通过映射线性虚拟地址的数据写入和读取方法的示图。
参照图10,写入数据可以以分散的方式存储在主机缓冲存储器2100的多个主机缓冲器单元2101中。当主机2000向存储器系统1000输入写入命令时,与存储写入数据的主机缓冲器单元2101相对应的主机物理地址HPA可以是非线性地址。例如,主机缓冲器单元2101中的每一个可以包括存储4KB数据的存储器空间,并且写入数据可以是128KB。例如,128KB写入数据可以以分散的方式被存储在与具有值2、3、5、8、11、13、16、18、20、22、23、26、28、29、31和32的物理缓冲器ID PBID相对应的主机缓冲器单元2101中。
存储器控制器1200的主机地址转换部741可以将非线性主机物理地址HPA映射到线性虚拟地址VA。换言之,主机地址转换部741可以将与存储写入数据的主机缓冲器单元2101相对应的不连续且分散的物理缓冲器ID PBID映射到连续的虚拟缓冲器ID VBID,并且可以生成或更新虚拟-物理地址映射表。
然后,存储器控制器1200的主机控制部711可以基于非线性主机物理地址HPA或物理缓冲器ID PBID,来获取存储在主机缓冲存储器2100的主机缓冲器单元2101中的写入数据,并且可以基于线性虚拟地址VA或虚拟缓冲器ID VBID,将获取的写入数据缓冲在控制器缓冲存储器(即,存储器缓冲器720和/或缓冲存储器装置1300)的控制器缓冲器单元1301中。由于虚拟地址VA是线性地址,因此写入数据可以缓冲在与顺序的虚拟缓冲器ID VBID相对应的控制器缓冲器单元1301中。例如,以分散的方式存储在与具有不连续且分散的值2、3、5、8、11、13、16、18、20、22、23、26、28、29、31和32的物理缓冲器ID PBID相对应的主机缓冲器单元2101中的写入数据可以被缓冲在与具有连续的值1至16的虚拟缓冲器ID VBID相对应的十六个控制器缓冲器单元1301中。
存储器系统1000可以利用存储在控制器缓冲存储器的控制器缓冲器单元1301中的写入数据,对非易失性存储器装置1100的存储块110执行编程操作。闪存转换部713可以将从主机2000接收的逻辑地址映射到闪存物理地址,并且可以生成或更新逻辑-物理地址映射表。
闪存控制部712可以将存储在控制器缓冲存储器中的写入数据编程到非易失性存储器装置1100中的、与映射到从主机2000接收的逻辑地址的闪存物理地址相对应的页面。由于存储在控制器缓冲存储器中的写入数据是与连续地址相对应的大量数据,因此闪存控制部712可以通过使用顺序编程算法,将写入数据编程在非易失性存储器装置1100中的、由顺序地址表示的页面中。例如,与具有值1至4的VBID相对应的16KB写入数据可以被存储在第一页面Page-1中,与具有值5至8的VBID相对应的16KB写入数据可以被存储在第二页面Page-2中,与具有值9至12的VBID相对应的16KB写入数据可以被存储在第三页面Page-3中,并且与具有值13至16的VBID相对应的16KB写入数据可以被存储在第四页面Page-4中。
存储器系统1000可以从主机2000接收用于读取存储在非易失性存储器装置1100的第一页面至第四页面(Page1至Page4)中的数据的读取命令。存储器控制器1200的闪存转换部713可以检查映射到从主机2000输入的逻辑地址的闪存物理地址,并且确认读取数据被存储在非易失性存储器装置1100的Page1至Page4中。
闪存控制部712可以基于逻辑-物理地址映射信息从非易失性存储器装置1100的Page1至Page4读取读取数据,并且可以将读取的数据缓冲在控制器缓冲存储器中。闪存控制部712可以基于虚拟-物理地址映射表,在控制器缓冲存储器中为读取的数据分配16个控制器缓冲器单元1301。由于存储在非易失性存储器装置1100中的读取数据是对应于顺序地址的大量数据,因此闪存控制部712可以通过使用顺序读取算法从非易失性存储器装置1100读取读取数据,并且可以将读取的数据缓冲在与顺序虚拟缓冲器ID VBID相对应的16个控制器缓冲器单元1301中。
主机控制部711可以将读取的数据从与顺序虚拟缓冲器ID VBID相对应的16个控制器缓冲单元1301输出到主机缓冲存储器2100中的与分散地址相对应的主机缓冲器单元2101。
如上所述,通过将关于主机缓冲存储器2100的非线性主机物理地址HPA映射到关于存储器缓冲器720或缓冲存储器装置1300的线性虚拟地址VA,可以在存储器系统1000中高效地执行写入操作。换言之,存储器系统1000可以通过使用顺序编程算法,利用缓冲在存储器缓冲器720或缓冲存储器装置1300中的写入数据,对非易失性存储器装置1100中的、与连续地址相对应的页面执行编程操作。因此,可以提供编程操作的执行。另外,存储器系统1000可以通过使用顺序读取算法,从非易失性存储器装置1100中的、与顺序地址相对应的页面读取数据,使得可以提高读取操作的执行。
图11是示出根据实施例的为输入/输出进程分配主机缓冲器单元的方法的示图。图12是示出根据实施例的为输入/输出进程分配虚拟地址的方法的示图。
参照图11,当生成多个输入/输出(IO)进程(IOP)时,主机2000可以为IO进程中的各个IO进程分配主机缓冲存储器2100中的多个主机缓冲器单元2101中的一个。例如,当主机缓冲器单元2101中的每一个是4KB时,一个IO进程可以是关于4KB数据的单个写入操作。在另一示例中,一个IO进程可以是关于4KB数据的单个读取操作。
例如,主机缓冲存储器2100可以具有32KB的大小,并且主机缓冲器单元2101可以具有4KB的大小。在该示例中,当进行用于32KB数据的请求,即,用于八个IO进程IOP#0到IOP#7的请求时,可以分别为八个IO进程分配八个主机缓冲器单元2101。分配的八个主机缓冲器单元2101可以用于八个IO进程,其可以是写入或读取操作,并且然后在完成八个IO进程IOP#0到IOP#7之后释放八个主机缓冲器单元2101。换言之,与具有值1至8的物理缓冲器ID PBID相对应的八个主机缓冲器单元2101可以被分配用于八个IO进程,并且然后在八个IO进程IOP#0至IOP#7完成之后被释放。
当在完成先前八个IO进程IOP#0至IOP#7之后,进行用于16KB数据的新请求,即用于四个IO进程IOP#8至IOP#11的请求时,可以分别为四个IO进程分配四个主机缓冲器单元2101。由于用于先前八个IO进程IOP#0至IOP#7的先前分配的八个主机缓冲器单元2101在先前八个IO进程IOP#0到IOP#7完成之后被释放,所以可为当前四个IO进程IOP#8至IOP#11重新分配这八个主机缓冲器单元2101中的四个。例如,与具有值4、1、3和6的物理缓冲器IDPBID相对应的四个主机缓冲器单元2101可以被分配,并且然后在完成四个IO进程IOP#8到IOP#11之后被再次释放。
例如,用于32KB数据的主机缓冲存储器2100的物理地址可以是{E000,0,2000,8000,4000,C000,A000,6000},其可以被表示为{0x7,0,1,4,2,6,5,3}作为物理缓冲器IDPBID。
参照图12,将通过虚拟地址分配来描述上述操作。先前生成的八个IO进程可以被表达为一个起始虚拟地址或具有值1的一个起始虚拟缓冲器ID VBID以及顺序跟随起始虚拟地址或起始虚拟缓冲器ID VBID的七个虚拟地址或具有值2至8的七个虚拟缓冲器IDVBID。换言之,先前生成的八个IO进程可以被处理为一个IO进程IOP#0。换言之,与先前生成的八个IO进程相对应的一个IO进程IOP#0可以被表示为一个起始虚拟地址或具有值1的一个起始虚拟缓冲器ID VBID以及七个虚拟地址或具有值2至8的七个虚拟缓冲器ID VBID。另外,存储器缓冲器720或缓冲存储器装置1300中的与IO进程IOP#0相对应的物理缓冲空间可以是{0,2000,4000,6000,8000,A000,C000,E000}。例如,存储器缓冲器720和缓冲存储器装置1300可以具有64KB的大小。
随后生成的四个IO进程可以被表达为一个起始虚拟地址或具有值9的一个起始虚拟缓冲器ID VBID以及顺序跟随起始虚拟地址或起始虚拟缓冲器ID VBID的三个虚拟地址或具有值10至12的三个虚拟缓冲器ID VBID。换言之,随后生成的四个IO进程可以被处理为一个IO进程IOP#1。换言之,与随后生成的四个IO进程相对应的一个IO进程IOP#1可以被表示为一个起始虚拟地址或具有值9的一个起始虚拟缓冲器ID VBID以及三个虚拟地址或具有值10至12的三个虚拟缓冲器ID VBID。另外,存储器缓冲器720或缓冲存储器装置1300中的与IO进程IOP#1相对应的物理缓冲空间可以是{10000,12000,14000,16000}。
如上所述,多个IO进程可以被表达为一个起始虚拟地址或一个起始虚拟缓冲器IDVBID以及数个虚拟地址或数个虚拟缓冲器ID VBID,使得可以高效地生成或处理命令。
图13是根据实施例的描述写入操作的流程图。
参照图13,在写入操作期间,在步骤S1301处,可以从主机2000接收包括非线性主机物理地址HPA、逻辑地址和写入数据的大小的写入命令。可以由存储器控制器1200的主机接口740执行步骤S1301。随后,在步骤S1302处,主机地址转换部741可以将非线性主机物理地址HPA转换为线性虚拟地址VA。线性虚拟地址VA可以被表达为起始虚拟地址VA和写入数据的大小(即,与非线性主机物理地址HPA相对应的主机缓冲器单元2101的数量)。
在步骤S1302之后,在步骤S1303处,可以基于非线性主机物理地址HPA从主机2000的主机缓冲存储器2100中的主机缓冲器单元2101获取写入数据。可以由存储器控制器1200的主机控制部711执行步骤S1303。随后,在步骤S1304处,基于线性虚拟地址VA,可以将获取的写入数据缓冲在控制器缓冲存储器中的控制器缓冲器单元1301中。可以由存储器控制器1200的主机控制部711执行步骤S1304。
在步骤S1305处,主机地址转换部741可以生成或更新虚拟-物理地址映射表。可以在步骤S1302之后执行步骤S1305。例如,可以在步骤S1303和步骤S1304之前或与步骤S1303和步骤S1304并行地执行步骤S1305。虚拟-物理地址映射表可以包括非线性主机物理地址HPA与线性虚拟地址VA之间的映射信息。
在步骤S1304之后,在步骤S1306处,主机2000可以释放存储写入数据的主机缓冲存储器2100中的主机缓冲器单元2101。可以在步骤S1304之后执行步骤S1306。例如,可以在步骤S1307至步骤S1310之前或之后执行步骤S1306,或者在另一示例中,可以与步骤S1307至步骤S1310并行地执行步骤S1306。
在步骤S1304之后,在步骤S1307处,可以将逻辑地址映射到闪存物理地址。可以由存储器控制器1200的闪存转换部713执行步骤S1307。另外,在步骤S1308处,闪存转换部713可以生成或更新逻辑-物理地址映射表。逻辑-物理地址映射表可以包括闪存物理地址和从主机2000接收的逻辑地址之间的映射信息。
在步骤S1307之后,在步骤S1309处,可以通过使用顺序编程算法,基于闪存物理地址,将缓冲在控制器缓冲存储器1301中的写入数据写入到非易失性存储器装置1100。可以由闪存控制部712控制步骤S1309。顺序编程算法可以是被设置为当待被编程的数据具有顺序地址时,能够实现比随机编程更高效的操作的算法。
在步骤S1309之后,在缓冲在控制器缓冲存储器1301中的写入数据被加载到非易失性存储器装置1100的页面缓冲器组230之后,可以在步骤S1310处,释放控制器缓冲存储器中的存储写入数据的控制器缓冲器单元1301。可以由闪存控制部712控制步骤S1310。随后,写入操作可以终止。
如上所述,通过将关于主机缓冲存储器2100的非线性主机物理地址HPA映射到关于存储器缓冲器720或缓冲存储器装置1300的线性虚拟地址VA,可以在存储器系统1000中高效地执行写入操作。换言之,存储器系统1000可以通过使用顺序编程算法,利用缓冲在存储器缓冲器720或缓冲存储器装置1300中的写入数据,对非易失性存储器装置1100中的与连续地址相对应的页面执行编程操作。因此,可以提高编程操作的执行。
图14是描述根据实施例的读取操作的流程图。
参照图14,在读取操作期间,在步骤S1401处,可以从主机2000接收包括非线性主机物理地址HPA、逻辑地址和读取数据的大小的读取命令。可以由存储器控制器1200的主机接口740执行步骤S1401。在步骤S1401之后,在步骤S1402处,可以检查基于逻辑-物理地址映射表而映射到从主机2000输入的逻辑地址的闪存物理地址。可以由闪存转换部713控制步骤S1402。逻辑-物理地址映射表可以包括在从主机2000接收的逻辑地址与指示非易失性存储器装置1100中的存储读取数据的存储空间的闪存物理地址之间的映射信息。
在步骤S1402之后,在步骤S1403处,可以通过使用顺序读取算法,基于闪存物理地址,读取存储在非易失性存储器装置1100中的读取数据。可以由闪存控制部712控制步骤S1403。顺序读取算法可以是被设置为当待被读取的数据具有顺序地址时,能够实现比随机读取更高效的读取的算法。
在步骤S1404处,可以检查基于虚拟-物理地址映射表而映射到非线性主机物理地址HPA的虚拟地址VA。可以由主机地址转换部741控制步骤S1404。可以在步骤S1402和步骤S1403之前或与步骤S1402和步骤S1403并行地执行步骤S1404。
在步骤S1403和步骤S1404之后,在步骤S1405处,基于虚拟地址VA,从非易失性存储器装置1100读取的读取数据可以被缓冲在控制器缓冲存储器中的控制器缓冲器单元1301中。可以由闪存控制部712控制步骤S1405。
在步骤S1405之后,可以基于虚拟-物理地址映射表,将缓冲在控制器缓冲存储器中的控制器缓冲器单元1301中的读取数据输出到主机缓冲存储器2100的主机缓冲器单元2101。可以由主机控制部711控制步骤S1406。
如上所述,由主机地址转换部741生成或更新的虚拟-物理地址映射表可以被传递到主机控制部711或闪存控制部712。另外,关于由闪存转换部713生成或更新的逻辑-物理地址映射表的信息可以被传递到主机控制部711或闪存控制部712。
如上所述,通过将关于主机缓冲存储器2100的非线性主机物理地址HPA映射到关于存储器缓冲器720或缓冲存储器装置1300的线性虚拟地址VA,可以在存储器系统1000中高效地执行读取操作。换言之,通过使用顺序读取算法,存储器系统1000可以读取存储在非易失性存储器装置1100中的与顺序地址相对应的页面中的数据,使得可以提高读取操作的执行。
图15是示出存储器系统30000的实施例的示图。
参照图15,存储器系统30000可以被实现为蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信装置。存储器系统30000可以包括非易失性存储器装置1100和控制非易失性存储器装置1100的操作的存储器控制器1200。响应于处理器3100的控制,存储器控制器1200可以控制非易失性存储器装置1100的数据访问操作,例如,编程操作、擦除操作或读取操作。
存储器控制器1200可以控制通过显示器3200输出被编程到非易失性存储器装置1100中的数据。
无线电收发器3300可以通过天线ANT交换无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并且将处理的信号传递到存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号编程到非易失性存储器装置1100中。另外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将无线电信号输出到外部装置。用于控制处理器3100的操作或待由处理器3100处理的数据的控制信号可以由输入装置3400输入,并且输入装置3400可以包括诸如触摸板和计算机鼠标的点击装置、小键盘或键盘。处理器3100可以控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可以形成为处理器3100的部分,或者可以形成为独立于处理器3100的芯片。进一步地,存储器控制器1200可以根据图2中示出的存储器控制器1200来配置。
图16是示出存储器系统40000的实施例的示图。
参照图16,存储器系统40000可以被实施为个人计算机(PC)、平板PC、电子书、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
存储器系统40000可以包括非易失性存储器装置1100和控制非易失性存储器装置1100的操作的存储器控制器1200。
处理器4100可以根据通过输入装置4200输入的数据,通过显示器4300输出存储在非易失性存储器装置1100中的数据。输入装置4200的示例可以包括诸如触摸板或计算机鼠标的点击装置、小键盘或键盘。
处理器4100可以控制存储器系统40000的一般操作并且控制存储器控制器1200的操作。根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可以形成为处理器4100的部分,或者可以形成为独立于处理器4100的芯片。进一步地,存储器控制器1200可以根据图2中示出的存储器控制器1200来配置。
图17是示出存储器系统50000的实施例的示图。
参照图17,存储器系统50000可以被设置为图像处理装置,例如数码相机,或者诸如移动电话、智能电话或平板PC的具有或能够附着到数码相机的装置。
存储器系统50000可以包括非易失性存储器装置1100和控制非易失性存储器装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200。
存储器系统50000的图像传感器5200可以将光学图像转换成数字信号,并且转换后的数字信号可以被传递到处理器5100或存储器控制器1200。响应于处理器5100的控制,转换后的数字信号可以通过显示器5300输出或通过存储器控制器1200存储在半导体非易失性存储器装置1100中。另外,处理器5100或存储器控制器1200可以控制通过显示器5300输出存储在非易失性存储器装置1100中的数据。
根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可以形成为处理器5100的部分,或者可以形成为独立于处理器5100的芯片。进一步地,存储器控制器1200可以根据图2中示出的存储器控制器1200来配置。
图18是示出存储器系统70000的实施例的示图。
参照图18,存储器系统70000可以包括存储卡或智能卡。存储器系统70000可以包括非易失性存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可以控制半导体非易失性存储器装置1100和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是但不限于安全数字(SD)卡接口或多媒体卡(MMC)接口。进一步地,存储器控制器1200可以根据图2中示出的存储器控制器1200来配置。
卡接口7100可以根据主机60000的协议来接口连接主机60000和存储器控制器1200之间的数据交换。根据实施例,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口可以指能够支持由主机60000使用的协议的硬件、安装在硬件中的软件或者信号传输方法。
当存储器系统70000连接到诸如PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制下,通过卡接口7100和存储器控制器1200执行与非易失性存储器装置1100的数据通信。
根据本公开的实施例,其与存储器系统的操作相关联,通过将非线性主机物理地址转换为线性虚拟地址,可以提高写入操作和读取操作的执行。
对于本领域技术人员显而易见的是,在不脱离本发明的精神或范围的情况下,可以对本发明的上述实施例进行各种变型。因此,本发明旨在覆盖所附权利要求及其等同物的范围内的所有这样的变型。
Claims (20)
1.一种存储器系统,其包括:
控制器缓冲存储器;
主机接口,从主机接收非线性主机物理地址和写入数据;
主机地址转换部,将所述非线性主机物理地址映射到线性虚拟地址;以及
主机控制部,根据所述线性虚拟地址将所述写入数据缓冲在所述控制器缓冲存储器中。
2.根据权利要求1所述的存储器系统,其中所述主机包括主机缓冲存储器,所述主机缓冲存储器包括存储所述写入数据的多个主机缓冲器单元,以及
所述非线性主机物理地址中的每一个对应于所述多个主机缓冲器单元中的一个。
3.根据权利要求2所述的存储器系统,进一步包括:
非易失性存储器装置;
闪存转换部,将从所述主机接收的逻辑地址转换为闪存物理地址;以及
闪存控制部,根据所述闪存物理地址,控制将缓冲在所述控制器缓冲存储器中的写入数据写入到所述非易失性存储器装置。
4.根据权利要求3所述的存储器系统,其中所述闪存控制部根据顺序编程算法,将缓冲在所述控制器缓冲存储器中的写入数据写入到所述非易失性存储器装置。
5.根据权利要求2所述的存储器系统,其中当最后的线性虚拟地址被映射后,所述主机地址转换部返回到第一线性虚拟地址。
6.根据权利要求2所述的存储器系统,其中所述多个主机缓冲器单元中的每一个对应于单个输入/输出进程。
7.根据权利要求6所述的存储器系统,其中所述主机地址转换部在所述线性虚拟地址中生成与多个输入/输出进程相对应的起始线性虚拟地址和一个或多个线性虚拟地址,以及
所述主机控制部根据所述起始线性虚拟地址和所述一个或多个线性虚拟地址,将所述写入数据缓冲在所述控制器缓冲存储器中。
8.根据权利要求3所述的存储器系统,其中所述主机接口从所述主机接收写入命令,以及
所述写入命令包括所述非线性主机物理地址、所述逻辑地址和所述写入数据的大小信息。
9.根据权利要求2所述的存储器系统,其中所述多个主机缓冲器单元中的每一个具有与所述控制器缓冲存储器中的控制器缓冲器单元相同的大小。
10.一种存储器系统,其包括:
控制器缓冲存储器,其包括缓冲数据的多个控制器缓冲器单元;
主机地址转换部,其生成物理-虚拟地址映射表;以及
主机控制部,其根据所述物理-虚拟地址映射表,将缓冲在所述控制器缓冲存储器中的数据输出到主机的主机缓冲存储器,
其中所述物理-虚拟地址映射表包括与所述主机缓冲存储器中的多个主机缓冲器单元相对应的多个非线性主机缓冲器ID和与所述多个控制器缓冲器单元相对应的多个线性虚拟缓冲器ID。
11.根据权利要求10所述的存储器系统,其中所述主机地址转换部在所述线性虚拟缓冲器ID中生成与多个输入/输出进程相对应的起始线性虚拟缓冲器ID和一个或多个线性虚拟缓冲器ID,以及
所述主机控制部根据所述起始线性虚拟缓冲器ID和所述一个或多个线性虚拟缓冲器ID,控制输出缓冲在所述控制器缓冲存储器中的数据。
12.根据权利要求10所述的存储器系统,其中主机接口从主机接收读取命令,以及
所述读取命令包括主机物理地址、逻辑地址和所述数据的大小信息。
13.根据权利要求12所述的存储器系统,其进一步包括:
非易失性存储器装置,存储所述数据;以及
闪存控制部,控制根据顺序读取算法从所述非易失性存储器装置读取所述数据并且将所述数据缓冲在所述控制器缓冲存储器中。
14.根据权利要求13所述的存储器系统,进一步包括闪存转换部,所述闪存转换部将所述逻辑地址转换为闪存物理地址,以及
所述闪存控制部基于所述闪存物理地址从所述非易失性存储器装置读取所述数据。
15.根据权利要求10所述的存储器系统,其中所述多个主机缓冲器单元中的每一个和所述多个控制器缓冲器单元中的每一个具有相同的大小。
16.一种存储器系统的操作方法,所述方法包括:
从主机接收包括非线性主机物理地址的写入命令;
使用地址转换部,将所述非线性主机物理地址映射到线性虚拟地址;
根据所述非线性主机物理地址,从所述主机的主机缓冲存储器中获取写入数据;并且
根据所述线性虚拟地址,将所述写入数据缓冲在控制器缓冲存储器中。
17.根据权利要求16所述的方法,其中所述主机缓冲存储器包括存储所述写入数据的多个主机缓冲器单元,并且
所述多个主机缓冲器单元中的每一个对应于所述非线性主机物理地址中的一个。
18.根据权利要求17所述的方法,进一步包括:
在输入/输出进程中处理了存储在所述多个主机缓冲器单元中的写入数据之后,释放所述多个主机缓冲器单元;并且
重新分配所释放的多个主机缓冲器单元以用于新的输入/输出进程。
19.根据权利要求16所述的方法,其进一步包括根据顺序编程算法,将缓冲在所述控制器缓冲存储器中的数据写入到非易失性存储器装置。
20.根据权利要求17所述的方法,其中所述多个主机缓冲器单元中的每一个对应于单个输入/输出进程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170150660A KR102565895B1 (ko) | 2017-11-13 | 2017-11-13 | 메모리 시스템 및 그것의 동작 방법 |
KR10-2017-0150660 | 2017-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783397A true CN109783397A (zh) | 2019-05-21 |
CN109783397B CN109783397B (zh) | 2023-06-13 |
Family
ID=66432742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810871446.XA Active CN109783397B (zh) | 2017-11-13 | 2018-08-02 | 存储器系统及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10678476B2 (zh) |
KR (1) | KR102565895B1 (zh) |
CN (1) | CN109783397B (zh) |
TW (1) | TWI770218B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716886A (zh) * | 2019-09-29 | 2020-01-21 | Tcl移动通信科技(宁波)有限公司 | 数据处理的方法、装置、存储介质以及终端 |
WO2022261836A1 (zh) * | 2021-06-15 | 2022-12-22 | 华为技术有限公司 | 存储控制方法及装置、存储方法及装置、电子设备及介质 |
TWI813455B (zh) * | 2022-09-28 | 2023-08-21 | 瑞昱半導體股份有限公司 | 位址轉換系統及位址轉換方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI668569B (zh) * | 2018-03-14 | 2019-08-11 | 群聯電子股份有限公司 | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
KR20210011198A (ko) * | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
US11157212B2 (en) * | 2019-12-19 | 2021-10-26 | Seagate Technology, Llc | Virtual controller memory buffer |
US11347648B2 (en) * | 2020-06-26 | 2022-05-31 | Micron Technology, Inc. | Direct cache hit and transfer in a memory sub-system that programs sequentially |
US11782824B2 (en) * | 2022-02-08 | 2023-10-10 | Macronix International Co., Ltd. | Universal data path architecture for different data array |
US20240086071A1 (en) * | 2022-09-12 | 2024-03-14 | Western Digital Technologies, Inc. | Ssd use of host memory buffer for improved performance |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20110082967A1 (en) * | 2009-10-05 | 2011-04-07 | Deshkar Shekhar S | Data Caching In Non-Volatile Memory |
US20130138867A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System |
US20140164676A1 (en) * | 2012-12-10 | 2014-06-12 | Google Inc. | Using a virtual to physical map for direct user space communication with a data storage device |
US20140289451A1 (en) * | 2013-03-20 | 2014-09-25 | Phison Electronics Corp. | Method of recording mapping information, and memory controller and memory storage apparatus using the same |
US20160335195A1 (en) * | 2014-01-29 | 2016-11-17 | Hitachi, Ltd. | Storage device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734858A (en) | 1994-10-24 | 1998-03-31 | Microsoft Corporation | Method and apparatus for simulating banked memory as a linear address space |
US7941799B2 (en) * | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
KR101301840B1 (ko) | 2010-12-08 | 2013-08-29 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 처리 방법 |
-
2017
- 2017-11-13 KR KR1020170150660A patent/KR102565895B1/ko active IP Right Grant
-
2018
- 2018-07-05 TW TW107123295A patent/TWI770218B/zh active
- 2018-07-06 US US16/028,605 patent/US10678476B2/en active Active
- 2018-08-02 CN CN201810871446.XA patent/CN109783397B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005529A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US20110082967A1 (en) * | 2009-10-05 | 2011-04-07 | Deshkar Shekhar S | Data Caching In Non-Volatile Memory |
US20130138867A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System |
US20140164676A1 (en) * | 2012-12-10 | 2014-06-12 | Google Inc. | Using a virtual to physical map for direct user space communication with a data storage device |
US20140289451A1 (en) * | 2013-03-20 | 2014-09-25 | Phison Electronics Corp. | Method of recording mapping information, and memory controller and memory storage apparatus using the same |
US20160335195A1 (en) * | 2014-01-29 | 2016-11-17 | Hitachi, Ltd. | Storage device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716886A (zh) * | 2019-09-29 | 2020-01-21 | Tcl移动通信科技(宁波)有限公司 | 数据处理的方法、装置、存储介质以及终端 |
CN110716886B (zh) * | 2019-09-29 | 2022-12-13 | 惠州市仲恺Tcl智融科技小额贷款股份有限公司 | 数据处理的方法、装置、存储介质以及终端 |
WO2022261836A1 (zh) * | 2021-06-15 | 2022-12-22 | 华为技术有限公司 | 存储控制方法及装置、存储方法及装置、电子设备及介质 |
TWI813455B (zh) * | 2022-09-28 | 2023-08-21 | 瑞昱半導體股份有限公司 | 位址轉換系統及位址轉換方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI770218B (zh) | 2022-07-11 |
KR102565895B1 (ko) | 2023-08-11 |
US20190146712A1 (en) | 2019-05-16 |
TW201918882A (zh) | 2019-05-16 |
US10678476B2 (en) | 2020-06-09 |
KR20190054426A (ko) | 2019-05-22 |
CN109783397B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783397A (zh) | 存储器系统及其操作方法 | |
KR102457564B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN109992537A (zh) | 存储系统及其操作方法 | |
CN109753232A (zh) | 存储器系统及存储器系统的操作方法 | |
CN109783009A (zh) | 存储器系统及其操作方法 | |
CN109697024B (zh) | 存储器系统及其操作方法 | |
CN110389720B (zh) | 存储装置及其操作方法 | |
CN109521945A (zh) | 存储器装置、存储器系统及其操作方法 | |
CN111078582B (zh) | 基于模式调整映射段的存储器系统及其操作方法 | |
KR102518884B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US11036632B2 (en) | Memory controller and operating method thereof | |
CN110275673A (zh) | 存储装置及其操作方法 | |
CN109683805A (zh) | 存储器系统及其操作方法 | |
CN106681652B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110321070A (zh) | 存储器控制器及其操作方法 | |
CN109947361A (zh) | 存储器系统及其操作方法 | |
CN109725845A (zh) | 存储系统及其操作方法 | |
CN114138682A (zh) | 使用子块模式的分区命名空间限制缓解 | |
CN109684230A (zh) | 存储器系统及其操作方法 | |
CN110245097A (zh) | 存储器控制器及具有存储器控制器的存储器系统 | |
CN110175132A (zh) | 存储装置及其操作方法 | |
CN110489360A (zh) | 存储器控制器及该存储器控制器的操作方法 | |
CN109656470A (zh) | 存储器系统及其操作方法 | |
CN112416809A (zh) | 用于可扩展存储区域的分配模式 | |
CN111352854A (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 |