CN111831579A - 控制器及其操作方法和包括控制器的存储器系统 - Google Patents
控制器及其操作方法和包括控制器的存储器系统 Download PDFInfo
- Publication number
- CN111831579A CN111831579A CN202010020457.4A CN202010020457A CN111831579A CN 111831579 A CN111831579 A CN 111831579A CN 202010020457 A CN202010020457 A CN 202010020457A CN 111831579 A CN111831579 A CN 111831579A
- Authority
- CN
- China
- Prior art keywords
- hmb
- memory
- sub
- controller
- host
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/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/0658—Controller construction 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/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
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
公开了控制器及其操作方法和包括控制器的存储器系统。控制器包括用于根据来自具有主机存储器的主机的请求来控制非易失性存储器装置的控制器。控制器包括:地址单元,被配置为对主机存储器的被分配作为主机存储器缓冲器(HMB)的区域进行划分,以生成多个子HMB区域,确定多个子HMB区域的索引值,并且通过将虚拟地址映射到索引值来生成HMB映射表;以及存储器控制模块,被配置为基于HMB映射表来访问多个子HMB区域之中的至少一个。虚拟地址可以被设置为关于多个子HMB区域的连续值。
Description
相关申请的交叉引用
本申请要求于2019年4月16日提交的韩国申请号10-2019-0044455的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例一般地涉及半导体装置,并且更具体地涉及控制器及其操作方法和包括控制器的存储器系统。
背景技术
近年来,计算机环境的范例已变为可以随时随地使用计算机系统的普适计算。结果,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用迅速增加。通常,这样的便携式电子装置使用采用存储器装置的存储器系统。存储器系统可以用于存储便携式电子装置中使用的数据。
使用存储器装置的存储器系统不具有机械驱动单元,并且因此表现出良好的稳定性和耐用性、快速的信息访问速率以及低功耗。这样的存储器系统可以包括通用串行总线(USB)存储器装置、具有各种接口的存储器卡、通用闪存(UFS)装置、固态驱动器(SSD)等。
发明内容
针对能够改进使用主机存储器的存储器系统的性能的技术提供了实施例。
在本公开的实施例中,一种用于根据来自具有主机存储器的主机的请求来控制非易失性存储器装置的控制器,控制器可以包括:地址单元,被配置为对主机存储器的被分配作为主机存储器缓冲器(HMB)的区域进行划分,以生成多个子HMB区域,确定多个子HMB区域的索引值,并且通过将虚拟地址映射到索引值来生成HMB映射表;以及存储器控制模块,被配置为基于HMB映射表来访问多个子HMB区域之中的至少一个。虚拟地址可以被设置为关于多个子HMB区域的连续值。
在本公开的实施例中,一种用于根据来自具有主机存储器的主机的请求来控制非易失性存储器装置的控制器的操作方法,该方法可以包括:对主机存储器的被分配作为主机存储器缓冲器(HMB)的区域进行划分,以生成多个子HMB区域;确定针对多个子HMB区域的地址的索引值;以及通过将虚拟地址映射到所确定的索引值来生成HMB映射表。虚拟地址可以被设置为关于多个子HMB区域的连续值。
在本公开的实施例中,一种包括非易失性存储器装置和控制器的存储器系统,控制器被配置为根据来自具有主机存储器的主机的请求来控制非易失性存储器装置。控制器可以对主机存储器的被分配作为主机存储器缓冲器(HMB)的区域进行划分,以生成多个子HMB区域,确定针对多个子HMB区域的地址的偏移值,并且通过将虚拟地址映射到偏移值来生成HMB映射表。
根据本公开的实施例,可以改进使用主机存储器的存储器系统的性能。
附图说明
根据结合附图进行的以下详细描述,将更清楚地理解本公开的主题的上述方面和其他方面、特征以及优点,在附图中:
图1是图示根据本公开的实施例的存储器系统的图;
图2和图3是描述根据本公开的实施例的存储器系统的操作方法的图;
图4和图5是描述根据本公开的实施例的存储器系统的操作方法的图;
图6是图示根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统的图;
图7是图示根据本公开的实施例的图6所示的控制器的配置的图;
图8是图示根据本公开的实施例的包括存储器系统的数据处理系统的图;
图9是图示根据本公开的实施例的包括存储器系统的数据处理系统的图;
图10是图示根据本公开的实施例的包括存储器系统的网络系统的图;以及
图11是图示根据本公开的实施例的存储器系统中包括的非易失性存储器装置的框图。
具体实施方式
将参考附图更详细地描述本发明的各种实施例。附图是本发明的各种实施例的简化示意图。如此,为了避免混淆本公开,可以省略对于理解本发明不是必需的众所周知的元件。因此,所描述的实施例不应被解释为限于在本文中图示的特定配置,而是可以包括在不脱离所附权利要求所限定的本发明的精神和范围的配置中的差异。
此外,尽管仅描述了本发明的一些实施例,但是本领域普通技术人员将理解,在不脱离本发明的范围和精神的情况下,可以做出许多其他实施例及其改变。
图1是图示根据本公开的实施例的存储器系统10的图。
参考图1,存储器系统10可以存储待被主机20(诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、车载信息娱乐系统等)访问的数据。主机20可以包括主机存储器21。
存储器系统10可以根据耦合到主机20的接口协议来形成各种类型的存储装置。例如,存储器系统10可以由各种类型的存储装置(诸如固态驱动器(SSD);MMC、eMMC、RS-MMC和micro-MMC形式的多媒体卡;SD、mini-SD和micro-SD形式的安全数字卡;通用串行总线(USB)存储装置;通用闪存(UFS)装置;个人计算机存储器卡国际协会(PCMCIA)卡类型存储装置;外围部件互连(PCI)卡类型存储装置;PCI-快速(PCI-E)卡类型的存储装置;紧凑型闪存(CF)卡;智能媒体卡;记忆棒等)中的一个进行配置。
存储器系统10可以被实现为各种类型的封装(诸如层叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板载芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP))中的一个。
存储器系统10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以作为存储器系统10的存储介质进行操作。根据构成非易失性存储器装置的存储器单元的类型,非易失性存储器装置100可以被实现为各种非易失性存储器装置(诸如NAND闪存装置、NOR闪存装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧穿磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)、以及使用过渡金属化合物的电阻式随机存取存储器(ReRAM))中的一个。
尽管已在图1中图示存储器系统10包括单个非易失性存储器装置100,但是存储器系统10可以包括多个非易失性存储器装置100。
非易失性存储器装置100可以包括存储器单元阵列110(参见图11),存储器单元阵列110包括布置在多个字线WL1至WLm和多个位线BL1至BLn彼此交叉的区域中的多个存储器单元MC。存储器单元阵列110可以包括多个存储器块,并且多个存储器块中的每一个均可以包括多个页。
例如,存储器单元阵列中的每个存储器单元可以是能够存储单个位数据(例如,1位数据)的单级单元(SLC)或者是能够存储2位或更多位数据的多级单元(MLC)。MLC可以存储2位数据、3位数据、4位数据等。通常,能够存储2位数据的存储器单元可以被称为MLC,能够存储3位数据的存储器单元可以被称为三级单元(TLC),并且能够存储4位数据的存储器单元可以被称为四级单元(QLC)。然而,为了清楚起见,在所公开的实施例中,可以将存储2位或更多位数据的存储器单元统称为MLC。
存储器单元阵列110可以包括SLC和MLC类型中的至少一个或多个存储器单元。存储器单元阵列110可以包括以二维(2D)(例如,水平)结构布置的存储器单元或以3D(例如,垂直)结构布置的存储器单元。稍后参考图11详细描述非易失性存储器装置100。
控制器200可以包括主机接口210、处理器220、存储器230、存储器接口240、存储器控制模块250和地址单元260。控制器200可以通过驱动加载到存储器230中的固件或软件来控制存储器系统10的整体操作。控制器200可以对基于代码的指令或算法(诸如固件或软件)进行解码和驱动。控制器200可以利用硬件或硬件和软件的组合来实现。
尽管未在图1中示出,但是控制器200可以进一步包括例如诸如纠错码(ECC)引擎的其他众所周知的电路,纠错码引擎通过对从主机20提供的写入数据执行ECC编码来生成奇偶校验并且使用奇偶校验来对从非易失性存储器装置100读取的读取数据执行ECC解码。控制器200中包括的所有元件可以通过通常由双箭头指示的内部总线彼此耦合。
主机接口210可以根据主机20的协议将存储器系统10与主机20对接。例如,主机接口210可以通过USB协议、UFS协议、MMC协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串行连接的SCSI(SAS)协议、PCI协议和PCI-E协议中的任何一个协议与主机20通信。主机接口210可以通过主机通道耦合到主机20。通过主机通道,主机20可以将命令(或请求或指令)CMD、地址ADRR传送到存储器系统10,并且向/从存储器系统10发送/接收数据DATA。
处理器220可以包括微控制单元(MCU)和/或中央处理单元(CPU)。处理器220可以对从主机20发送的请求进行处理。为了对从主机20发送的请求进行处理,处理器220可以驱动加载到存储器230中的基于代码的指令或算法(例如,固件)并且控制内部功能块(诸如主机接口210、存储器230、存储器接口240和非易失性存储器装置100)。
处理器220可以基于从主机20发送的请求来生成用于控制非易失性存储器装置100的操作的控制信号,并且通过存储器接口240将所生成的控制信号提供给非易失性存储器装置100。
存储器230可以包括诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的随机存取存储器(RAM)。存储器230可以存储通过处理器220驱动的固件。存储器230还可以存储驱动固件所需的数据(例如,元数据)。例如,存储器230可以作为处理器220的工作存储器进行操作。
在实施例中,存储器230可以包括用于各种目的的区域(诸如存储闪存转换层(FTL)的区域、用作用于对与从主机20提供的请求相对应的命令进行排队的命令队列(CMDQ)的区域、用作待临时存储写入数据的写入数据缓冲器的区域、用作待临时存储读取数据的读取数据缓冲器的区域、以及用作将映射数据高速缓存的映射高速缓存缓冲器的区域)。
存储器接口240可以在处理器220的控制下控制非易失性存储器装置100。存储器接口240也可以称为存储器控制器。存储器接口240可以通过通道CH将控制信号提供给非易失性存储器装置100。控制信号可以包括用于控制非易失性存储器装置100的命令、地址、操作控制信号等。存储器接口240可以将数据缓冲器中存储的数据提供给非易失性存储器装置100或将从非易失性存储器装置100发送的数据存储在数据缓冲器中。
存储器控制模块250可以根据来自处理器220的命令来访问存储器230和主机存储器21,以进行数据处理。
例如,当来自处理器220的命令中包括的访问地址是存储器230的地址时,存储器控制模块250可以通过访问存储器230来处理数据。此外,当来自处理器220的命令中包括的访问地址是主机存储器21的地址时,存储器控制模块250可以通过访问主机存储器21来处理数据。
来自处理器220的命令中包括的主机存储器21的地址可以是通过地址单元260管理的主机存储器缓冲器(HMB)映射表的虚拟地址。例如,存储器控制模块250可以通过地址单元260将虚拟地址转换为主机存储器21的地址,以及然后基于主机存储器的地址来访问主机存储器21。
地址单元260可以将虚拟地址转换为主机存储器21的地址,使得存储器控制模块250可以访问主机存储器21。地址单元260可以可操作地设置在存储器控制模块250和主机接口210之间,如图5所示。在实施例中,地址单元260可以物理地位于存储器控制模块250和主机接口210之间,如图5所示。
图1中的控制器的配置仅作为示例图示,并且控制器200可以被实现为包括除了控制器200中包括的部件之外的其他部件。
图2和图3是描述图1所示的存储器系统10的操作方法的图。
参考图2,在步骤S210,主机20可以分配主机存储器21的部分区域以通过存储器系统10被使用。在下文中,所分配的主机存储器区域可以被称为HMB。例如,HMB可以表示主机存储器21的被主机20设置为允许控制器访问主机存储器21的部分区域。如图3中(a)所示,主机20可以将主机存储器21中包括的主机存储器区域Region_0至Region_11之中的部分主机存储器区域Region_2、Region_4、Region_6、Region_8和Region_10(以下称为HMB_0、HMB_1、HMB_2、HMB_3和HMB_4)分配为HMB区域。
在实施例中,所分配的主机存储器区域(即,HMB区域)可以具有彼此不同的大小。例如,如图3中(a)所示,HMB区域HMB_0和HMB_1可以具有彼此不同的大小。
在实施例中,所分配的主机存储器区域可以非连续地布置。例如,如图3中(a)所示,未分配的主机存储器区域Region_3可以布置在所分配的主机存储器区域HMB_0和HMB_1之间。
在步骤S220,存储器系统10可以将HMB按预设大小进行划分,如图3中(b)所示。例如,如图3中(b)所示,地址单元260可以通过将包括HMB区域HMB_0至HMB_4的HMB按预设大小划分来生成多个子主机存储器区域sub_0至sub_10(即,子HMB区域)。
在实施例中,预设大小可以对应于通过控制器200处理的数据的单位。
在步骤S230,存储器系统10可以针对多个子主机存储器区域sub_0至sub_10(即,子HMB区域)指定(或确定)索引值。例如,地址单元260可以基于基地址来针对多个子主机存储器区域sub_0至sub_10的物理地址指定索引值,如图3中(b)所示。
在实施例中,基地址可以是构成HMB的多个HMB区域HMB_0至HMB_4之中具有最小物理地址值的HMB区域(例如,HMB_0)的地址、或者多个子主机存储器区域sub_0至sub_10(即,子HMB区域)之中具有最小物理地址值的子主机存储器区域(例如,sub_0)的地址。
在步骤S240,存储器系统10可以针对多个子主机存储器区域sub_0至sub_10指定虚拟地址。地址单元260可以按递增的索引顺序将偏移索引分配给多个子主机存储器区域sub_0至sub_10。例如,如图3中(c)所示,地址单元260可以将偏移索引分配给在多个子主机存储器区域之中从具有最低索引值的子主机存储器区域(例如,sub_0)到具有最高索引值的子主机存储器区域(例如,sub_10)的多个子主机存储器区域sub_0至sub_10。
在实施例中,多个子主机存储器区域sub_0至sub_10的虚拟地址可以是作为经连续分配的地址的线性地址。
在步骤S250,存储器系统10可以生成HMB映射表。例如,地址单元260可以生成HMB映射表,其中多个子主机存储器区域sub_0至sub_10的索引值和虚拟地址被映射,如图3中(d)所示。即使当主机20可以将主机存储器21的主机存储器区域(作为构成HMB的HMB区域)不连续地分配给存储器系统10时,存储器控制模块250也可以使用HMB映射表中的顺序地映射到多个子主机存储器区域的虚拟地址(即,线性地址)来访问HMB,并且因此存储器控制模块250可以识别出HMB作为单独的存储器(诸如单个SRAM)存在。
在实施例中,地址单元260可以存储所生成的HMB映射表。
图4和图5是描述图1所示的存储器系统10的操作方法的图。
参考图4,在步骤S410,存储器系统10可以接收数据处理命令。例如,控制器200可以从主机20接收用于数据处理操作(诸如数据读取、数据写入等)的命令。
在步骤S420,存储器系统10可以确定是访问主机20中包括的主机存储器21还是访问控制器200中包括的存储器230。例如,控制器200可以确定待访问的存储器区域的地址是HMB的地址还是存储器230的地址。即,当存储器区域的地址是HMB映射表中包括的虚拟地址时,控制器200可以确定待访问HMB。
在步骤S430,当存储器区域的地址是虚拟地址时(即,在步骤S420处为“是”的情况下),存储器系统10可以将虚拟地址转换为主机存储器21的物理地址。例如,如图5所示,存储器控制模块250可以将包括多个虚拟地址之中的目标虚拟地址(例如,虚拟地址3)的访问请求发送到地址单元260以进行数据处理(①)。地址单元260可以基于HMB映射表来将访问请求中包括的目标虚拟地址(例如,虚拟地址3)改变为目标索引值(例如,索引4),目标索引值是映射到目标虚拟地址的索引值(②)。地址单元260可以最终将映射到索引4的虚拟地址转换为主机存储器21的物理地址。例如,地址单元260可以将其中与索引4相对应的地址值被添加到子HMB区域sub_0的物理地址的地址确定为将由控制器200访问的主机存储器21的物理地址。
在步骤S440,存储器系统10可以访问主机存储器21。例如,如图5所示,当待被访问以进行数据处理的存储器区域的地址是HMB的地址时,存储器控制模块250可以访问(即,在其中存储数据或从中读取所存储的数据)主机存储器21的地址之中与目标偏移值相对应的子HMB区域(例如,sub_4)(③)。
在步骤S450,在步骤S420处为“否”的情况下,存储器系统10可以访问控制器200的存储器230。例如,当待被访问以进行数据处理的存储器区域的地址是控制器200的存储器230的地址时,存储器控制模块250可以访问控制器200的存储器230(例如,在存储器230中存储数据或从存储器230读取所存储的数据)。
因此,即使当主机存储器21中包括的多个主机存储器区域之中的部分主机存储器区域被不连续地分配为HMB区域时,存储器系统10也可以使用HMB映射表来管理HMB,在HMB映射表中,虚拟地址作为线性地址被映射到不连续地分配的主机存储器区域,并且因此可以确保用于访问主机存储器21的地址的线性度。
图6是图示根据本公开的实施例的包括固态驱动器(SSD)2200的数据处理系统2000的框图。参考图6,数据处理系统2000可以包括主机2100和SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和功率连接器2260。
控制器2210可以控制SSD 2200的整体操作。
缓冲存储器2220可以临时存储待存储在非易失性存储器装置2231至223n中的数据。此外,缓冲存储器2220可以临时存储从非易失性存储器装置2231至223n读出的数据。根据控制器2210的控制,可以将临时存储在缓冲存储器2220中的数据发送到主机2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以分别通过多个通道CH1至CHn与控制器2210耦合。一个或多个非易失性存储器装置可以耦合到一个通道。耦合到一个通道的非易失性存储器装置可以耦合到相同的信号总线和数据总线。
电源2240可以将通过功率连接器2260输入的功率PWR提供给SSD 2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以提供功率,以允许在发生突然断电(SPO)时SSD 2200正常地终止。辅助电源2241可以包括能够对功率PWR充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机2100和SSD2200之间的接口方案,信号连接器2250可以由各种类型的连接器进行配置。
图7是图示如图6所示的控制器2210的框图。参考图7,控制器2210可以包括主机接口(H/I)单元2211、控制单元2212、随机存取存储器(RAM)2213、纠错码(ECC)单元2214和存储器接口(M/I)2215单元。
主机接口单元2211可以根据主机2100的协议在主机2100和SSD2200之间提供对接。例如,主机接口单元2211可以通过SD、USB、MMC、嵌入式MMC(eMMC)、PCMCIA、PATA、SATA、SCSI、SAS、PCI、PCI-E和UFS协议中的任一个与主机2100通信。另外,主机接口单元2211可以执行磁盘仿真功能,支持主机2100将SSD2200识别为通用存储器系统,例如硬盘驱动器(HDD)。
控制单元2212可以对从主机2100输入的信号SGL进行分析和处理。控制单元2212可以根据用于驱动SSD 2200的固件或软件来控制内部功能块的操作。随机存取存储器2213可以用作用于驱动这样的固件或软件的工作存储器。
ECC单元2214可以生成待发送到非易失性存储器装置2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以连同数据存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n读出的数据的错误。当所检测的错误在可纠正范围内时,ECC单元2214可以纠正所检测的错误。
存储器接口单元2215可以根据控制单元2212的控制而将诸如命令和地址的控制信号提供给非易失性存储器装置2231至223n。存储器接口单元2215可以根据控制单元2212的控制而与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可以将缓冲存储器2220中存储的数据提供给非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读出的数据提供给缓冲存储器2220。
图8是图示根据本公开的实施例的包括存储器系统3200的数据处理系统3000的图。参考图8,数据处理系统3000可以包括主机3100和存储器系统3200。
主机3100可以以诸如印刷电路板的板的形式进行配置。尽管未在图8中示出,但是主机3100可以包括用于执行主机的功能的内部功能块。
主机3100可以包括诸如插座、插槽或连接器的连接端子3110。存储器系统3200可以安装在连接端子3110上。
存储器系统3200可以以诸如印刷电路板的板的形式进行配置。存储器系统3200可以是存储器模块或存储器卡。存储器系统3200可以包括控制器3210、缓冲存储器3220、非易失性存储器装置3231和3232、功率管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制存储器系统3200的整体操作。控制器3210可以以与图7中所示的控制器2210相同的方式配置。
缓冲存储器3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。此外,缓冲存储器3220可以临时存储从非易失性存储器装置3231和3232中读出的数据。根据控制器3210的控制,临时存储在缓冲存储器3220中的数据可以发送到主机3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作存储器系统3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的功率提供给存储器系统3200的内部。PMIC 3240可以根据控制器3210的控制来管理存储器系统3200的功率。
连接端子3250可以耦合到主机3100的连接端子3110。通过连接端子3250,诸如命令、地址和数据的信号以及功率可以在主机3100和存储器系统3200之间传送。连接端子3250可以根据主机3100和存储器系统3200之间的接口方案被配置为各种类型。连接端子3250可以设置在存储器系统3200的任一侧上。
图9是图示根据本公开的实施例的包括存储器系统4200的数据处理系统4000的框图。参考图9,数据处理系统4000可以包括主机4100和存储器系统4200。
主机4100可以以诸如印刷电路板(PCB)的板的形式进行配置。尽管在图9中未示出,但是主机4100可以包括用于执行主机的功能的内部功能块。
存储器系统4200可以以表面安装型封装的形式进行配置。存储器系统4200可以通过焊球4250安装在主机4100上。存储器系统4200可以包括控制器4230、缓冲存储器4220和非易失性存储器装置4210。
控制器4230可以控制存储器系统4200的整体操作。控制器4230可以以与图7中所示的控制器2210相同的方式进行配置。
缓冲存储器4220可以临时存储待存储在非易失性存储器装置4210中的数据。此外,缓冲存储器4220可以临时存储从非易失性存储器装置4210中读出的数据。临时存储在缓冲存储器4220中的数据可以根据控制器4230的控制而发送到主机4100或非易失性存储器装置4210。
非易失性存储器装置4210可以用作存储器系统4200的存储介质。
图10是图示根据本公开的实施例的包括存储器系统5200的网络系统5000的图。参考图10,网络系统5000可以包括通过网络5500彼此耦合的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于来自多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。服务器系统5300可以向多个客户端系统5410至5430提供数据。
服务器系统5300可以包括主机5100和存储器系统5200。存储器系统5200可以由图1所示的存储器系统10、图6所示的存储器系统2200、图8所示的存储器系统3200或图9所示的存储器系统4200配置。
图11是图1所示的存储器系统10中包括的非易失性存储器装置100的详细图。参考图11,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、数据读取/写入(R/W)块130、列解码器140、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域中的存储器单元MC。
行解码器120可以通过字线WL1至WLm与存储器单元阵列110耦合。行解码器120可以根据控制逻辑160的控制来操作。行解码器120可以对从外部装置(未示出)提供的地址进行解码。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以将从电压发生器150提供的字线电压提供给字线WL1至WLm。
数据读取/写入块130可以通过位线BL1至BLn与存储器单元阵列110耦合。数据读取/写入块130可以包括与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制来操作。数据读取/写入块130可以根据操作模式来作为写入驱动器或感测放大器进行操作。例如,数据读取/写入块130可以在写入操作中用作在存储器单元阵列110中存储从外部装置提供的数据的写入驱动器。在另一示例中,数据读取/写入块130可以在读取操作中用作从存储器单元阵列110读出数据的感测放大器。
列解码器140可以根据控制逻辑160的控制来操作。列解码器140可以对从外部装置提供的地址进行解码。列解码器140可以基于解码结果,将数据输入/输出线(或数据输入/输出缓冲器)与数据读取/写入块130的分别对应于位线BL1至BLn的读取/写入电路RW1至RWn耦合。
电压发生器150可以生成在非易失性存储器装置100的内部操作中使用的电压。由电压发生器150生成的电压可以施加到存储器单元阵列110的存储器单元MC。例如,在编程操作中生成的编程电压可以施加到待在其上执行编程操作的存储器单元的字线。在另一示例中,在擦除操作中生成的擦除电压可以施加到待在其上执行擦除操作的存储器单元的阱区。在又一示例中,在读取操作中生成的读取电压可以施加到将在其上执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部装置提供的控制信号来控制非易失性存储器装置100的整体操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取、写入和擦除操作。
本发明的上述实施例旨在图示而不是限制本发明。各种备选方案和等效方案是可能的。本发明不受本文描述的实施例的限制。本发明也不限于任何特定类型的半导体装置。鉴于本公开,其他添加、减少或修改是显而易见的,并且旨在落入所附权利要求的范围内。
Claims (18)
1.一种用于根据来自具有主机存储器的主机的请求来控制非易失性存储器装置的控制器,所述控制器包括:
地址单元,被配置为对所述主机存储器的被分配作为主机存储器缓冲器HMB的区域进行划分,以生成多个子HMB区域,确定所述多个子HMB区域的索引值,并且通过将虚拟地址映射到所述索引值来生成HMB映射表;以及
存储器控制模块,被配置为基于所述HMB映射表来访问所述多个子HMB区域之中的至少一个,
其中所述虚拟地址被设置为关于所述多个子HMB区域的连续值。
2.根据权利要求1所述的控制器,其中所述地址单元基于所述多个子HMB区域的物理地址之中与最小地址值相对应的子HMB区域的物理地址来确定所述索引值。
3.根据权利要求1所述的控制器,其中所述地址单元从所述索引值之中的最小索引值以升序顺序地将所述虚拟地址映射到所述索引值。
4.根据权利要求1所述的控制器,其中当所述存储器控制模块请求利用虚拟地址来访问所述主机存储器时,所述地址单元基于所述HMB映射表将所述虚拟地址转换为映射到所述虚拟地址的索引值,并且根据经转换的索引值来确定所述主机存储器的物理地址。
5.根据权利要求1所述的控制器,其中所述地址单元通过所述控制器中处理的数据的单位来对所述主机存储器的多个区域进行划分。
6.根据权利要求1所述的控制器,其中在所述主机存储器的多个区域之中,被分配作为所述HMB的多个区域被设置为由所述控制器访问。
7.根据权利要求1所述的控制器,其中被分配作为所述HMB的所述多个区域包括具有与其他区域的大小不同的大小的至少一个区域。
8.根据权利要求1所述的控制器,其中所述多个子HMB区域之中的至少一个子HMB区域的物理地址与其他子HMB区域的物理地址不连续。
9.一种用于根据来自具有主机存储器的主机的请求来控制非易失性存储器装置的控制器的操作方法,所述方法包括:
对所述主机存储器的被分配作为主机存储器缓冲器HMB的区域进行划分,以生成多个子HMB区域;
确定针对所述多个子HMB区域的地址的索引值;以及
通过将虚拟地址映射到所确定的索引值来生成HMB映射表,
其中所述虚拟地址被设置为关于所述多个子HMB区域的连续值。
10.根据权利要求9所述的操作方法,其中确定所述索引值包括:基于所述多个子HMB区域的物理地址之中与最小地址值相对应的子HMB区域的物理地址来确定所述索引值。
11.根据权利要求9所述的操作方法,其中生成所述HMB映射表包括:将所述虚拟地址从所述索引值之中的最小索引值以升序顺序地映射到所述索引值。
12.根据权利要求9所述的操作方法,进一步包括:
基于所述HMB映射表,将虚拟地址转换为映射到所述虚拟地址的索引值;以及
根据经转换的索引值,访问所述主机存储器的物理地址。
13.根据权利要求9所述的操作方法,其中所述主机存储器的多个区域通过所述控制器中处理的数据的单位来被划分。
14.根据权利要求9所述的操作方法,其中在所述主机存储器的多个区域之中,被分配作为所述HMB的多个区域被设置为由所述控制器访问。
15.根据权利要求9所述的操作方法,其中被分配作为所述HMB的所述多个区域包括具有与其他区域的大小不同的大小的至少一个区域。
16.根据权利要求9所述的操作方法,其中所述多个子HMB区域之中的至少一个子HMB区域的物理地址与其他子HMB区域的物理地址不连续。
17.一种存储器系统,包括:
非易失性存储器装置;以及
控制器,被配置为根据来自具有主机存储器的主机的请求来控制所述非易失性存储器装置,
其中控制器对所述主机存储器的被分配作为主机存储器缓冲器HMB的区域进行划分,以生成多个子HMB区域,确定针对所述多个子HMB区域的地址的偏移值,并且通过将虚拟地址映射到所述偏移值来生成HMB映射表。
18.根据权利要求17所述的存储器系统,其中所述控制器通过基于所述HMB映射表将所述虚拟地址之中的至少一个目标虚拟地址转换为映射到所述目标虚拟地址的偏移值,来访问所述多个子HMB区域中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0044455 | 2019-04-16 | ||
KR1020190044455A KR20200121645A (ko) | 2019-04-16 | 2019-04-16 | 컨트롤러 및 그것의 동작 방법과 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831579A true CN111831579A (zh) | 2020-10-27 |
Family
ID=72832447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010020457.4A Pending CN111831579A (zh) | 2019-04-16 | 2020-01-09 | 控制器及其操作方法和包括控制器的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11036640B2 (zh) |
KR (1) | KR20200121645A (zh) |
CN (1) | CN111831579A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590506A (zh) * | 2021-08-02 | 2021-11-02 | 联芸科技(杭州)有限公司 | Hmb的表项管理方法及固态硬盘的控制系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210011198A (ko) * | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
KR20220049215A (ko) * | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 메모리 장치, 호스트 장치 및 이들을 포함하는 메모리 시스템 |
CN114461536A (zh) * | 2020-11-10 | 2022-05-10 | 瑞昱半导体股份有限公司 | 查找表建立及内存地址查询方法 |
US11625189B2 (en) | 2021-06-28 | 2023-04-11 | Western Digital Technologies, Inc. | Systems and methods for fragmentation management in host buffers |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102157668B1 (ko) | 2014-04-03 | 2020-09-22 | 에스케이하이닉스 주식회사 | 호스트와 통신하는 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 컴퓨팅 시스템 |
KR102330389B1 (ko) | 2014-07-24 | 2021-11-24 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
KR102667430B1 (ko) * | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
KR20200046264A (ko) * | 2018-10-24 | 2020-05-07 | 삼성전자주식회사 | 호스트 메모리 버퍼를 이용하는 데이터 스토리지 장치 및 그 동작 방법 |
KR102599188B1 (ko) * | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
KR20200056533A (ko) * | 2018-11-14 | 2020-05-25 | 삼성전자주식회사 | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 |
-
2019
- 2019-04-16 KR KR1020190044455A patent/KR20200121645A/ko active Search and Examination
- 2019-12-17 US US16/717,932 patent/US11036640B2/en active Active
-
2020
- 2020-01-09 CN CN202010020457.4A patent/CN111831579A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590506A (zh) * | 2021-08-02 | 2021-11-02 | 联芸科技(杭州)有限公司 | Hmb的表项管理方法及固态硬盘的控制系统 |
Also Published As
Publication number | Publication date |
---|---|
US11036640B2 (en) | 2021-06-15 |
KR20200121645A (ko) | 2020-10-26 |
US20200334159A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664409B2 (en) | Data storage apparatus utilizing sequential map entry for responding to read request and operating method thereof | |
US11216362B2 (en) | Data storage device and operating method thereof | |
US10789161B2 (en) | Data storage device to identify and process a sequential read request and operating method thereof | |
US10949105B2 (en) | Data storage device and operating method of the data storage device | |
US10769066B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
US11036640B2 (en) | Controller, operating method thereof, and memory system including the same | |
US10922000B2 (en) | Controller, operating method thereof, and memory system including the same | |
CN111414313B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
CN112445732A (zh) | 存储装置及其操作方法 | |
US10929289B2 (en) | Controller, memory system and operating method thereof | |
US11526439B2 (en) | Storage device and operating method thereof | |
US20210397364A1 (en) | Storage device and operating method thereof | |
US11379363B2 (en) | Controller, memory system, and operating methods thereof | |
CN113885782A (zh) | 存储装置及其操作方法 | |
CN112286444B (zh) | 控制器以及包括控制器的存储器系统 | |
US20210397558A1 (en) | Storage device and operating method thereof | |
US11429612B2 (en) | Address search circuit and method of semiconductor memory apparatus and controller therefor | |
US11036629B2 (en) | Controller, memory system and operating method thereof | |
US20200409848A1 (en) | Controller, memory system, and operating methods thereof | |
US20200250082A1 (en) | Controller, memory system, and operating method thereof | |
US11144246B2 (en) | Memory system using available bad block based on data storage reliability and operating method thereof | |
US11157214B2 (en) | Controller, memory system and operating method thereof |
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 |