CN111506515A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111506515A CN111506515A CN201910975922.7A CN201910975922A CN111506515A CN 111506515 A CN111506515 A CN 111506515A CN 201910975922 A CN201910975922 A CN 201910975922A CN 111506515 A CN111506515 A CN 111506515A
- Authority
- CN
- China
- Prior art keywords
- mapping
- logical block
- requested logical
- req
- entry
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 334
- 238000011017 operating method Methods 0.000 title description 5
- 238000013507 mapping Methods 0.000 claims abstract description 1067
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims abstract description 13
- 239000000872 buffer Substances 0.000 claims description 89
- 238000000034 method Methods 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 40
- 239000010410 layer Substances 0.000 description 17
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 7
- 102100036285 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Human genes 0.000 description 4
- 101000875403 Homo sapiens 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Proteins 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000005684 electric field Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009413 insulation Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- 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
- 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/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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器控制器,该存储器控制器响应于来自主机的请求而控制存储器装置,该存储器控制器具有提高的操作速度。该存储器控制器包括:处理器,用于驱动固件以控制主机与存储器装置之间的通信;映射数据接收器,用于在处理器的控制下,从存储器装置接收映射数据以用于待对存储器装置执行的操作,该映射数据包括多个映射条目,该映射条目包括物理块地址;以及映射数据控制器,用于检测从映射数据接收器接收的对应于请求的映射条目,窥探所检测到的映射条目并且将所检测到的映射条目输出到处理器。
Description
相关申请的交叉引用
本申请要求于2019年1月31日提交的申请号为10-2019-0012845的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开总体涉及一种电子装置,并且更特别地,涉及一种存储器控制器及其操作方法。
背景技术
存储装置通常在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置可以是将数据存储在磁盘上的装置,诸如硬盘驱动器(HDD),并且可以是被配置成将数据存储在半导体存储器,即非易失性存储器上的装置,诸如固态驱动器(SSD)或存储卡。
存储装置可包括被配置成存储数据的存储器装置,以及被配置成控制存储器装置的存储器控制器。存储器装置分为易失性存储器装置和非易失性存储器装置。非易失性存储器装置包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)以及铁电RAM(FRAM)等。
发明内容
实施例提供了一种具有提高的操作速度的存储器控制器及其操作方法。
根据本公开的一个方面,提供了一种响应于来自主机的请求而控制存储器装置的存储器控制器,该存储器控制器包括:处理器,被配置成驱动固件以控制主机与存储器装置之间的通信;映射数据接收器,被配置成在处理器的控制下,从存储器装置接收映射数据以用于待对存储器装置执行的操作,该映射数据包括多个映射条目,该映射条目包括物理块地址;以及映射数据控制器,被配置成检测从映射数据接收器接收的对应于请求的映射条目,窥探所检测到的映射条目并且将所检测到的映射条目输出到处理器。
根据本公开的另一方面,提供了一种操作存储器控制器的方法,该存储器控制器响应于来自主机的请求而控制存储器装置,该方法包括:从存储器装置接收映射数据以用于待对存储器装置执行的操作,该映射数据包括多个映射条目,该映射条目包括物理块地址;检测多个映射条目之中的对应于请求的映射条目;窥探所检测到的映射条目并且将所检测到的映射条目输出到存储器控制器中包括的处理器。
根据本公开的另一方面,提供了一种操作存储器控制器的方法,该存储器控制器响应于来自主机的请求而控制存储器装置,该方法包括:高速缓存从存储器装置提供的多个映射条目,每个映射条目表示逻辑地址与物理地址之间的映射关系;在高速缓存期间,窥探被高速缓存的映射条目;在高速缓存期间,检测所窥探的映射条目之中的、具有从主机提供的被请求逻辑地址的映射条目;并且响应于与被请求逻辑地址一起从主机提供的请求,控制存储器装置以根据所检测到的映射条目来执行操作。
附图说明
现在将参照附图在下文中更全面地描述示例性实施例;然而,这些示例可以不同的形式来实施,并且不应被解释为限于本文阐述的实施例。相反地,提供这些实施例以便使本公开彻底且充分,并且将示例性实施例的范围全面地传达给本领域的技术人员。
在附图中,为了说明清楚,可放大尺寸。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出存储装置的框图。
图2是示出图1所示的存储器控制器的配置和操作的示图。
图3是示出图2所示的映射数据控制器的配置和操作的示图。
图4是示出搜索映射条目的方法的示图。
图5是示出从被请求逻辑地址存储装置输出多个目标条目的方法的示图。
图6是示出当输出目标条目时输出与图5所示的目标条目相对应的映射条目的方法的示图。
图7是示出当多个目标条目是连续的时显示连续的目标条目的方法的示图。
图8是示出当图7所示的目标条目是连续的时从映射条目存储装置输出映射条目的方法的示图。
图9是示出图2所示的存储器控制器的操作时间的示图。
图10是示出图1所示的存储器装置的结构的框图。
图11是示出图10所示的存储器单元阵列的实施例的示图。
图12是示出存储块之中的任意一个存储块的电路图。
图13是示出存储块中的一个存储块的另一实施例的电路图。
图14是示出根据本公开的实施例的存储器控制器的操作的示图。
图15是示出根据本公开的实施例的存储器控制器的操作的示图。
图16是示出根据本公开的实施例的存储器控制器的操作的示图。
图17是示出图1所示的存储器控制器的另一实施例的示图。
图18是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
图19是示意性地示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
图20是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
出于描述根据本公开概念的技术方案的实施例的目的,本文中公开的具体结构或功能描述仅是说明性的。根据本公开概念的技术方案的实施例可以各种形式实施,并且不能被解释为限于本文阐述的实施例。
根据本公开概念的实施例可进行各种修改并具有各种形状。因此,这些实施例在附图中示出,并且旨在在本文中被详细描述。然而,根据本公开概念的实施例不被解释为限于特定公开,并且包括不脱离本公开的精神和技术范围的所有改变、等同方案或替代方案。
虽然诸如“第一”和“第二”的术语可用于描述各个组件,但这些组件不应被理解为限于上述术语。上述术语仅用于将一个组件与另一个组件区分开。例如,在不脱离本公开的权利范围的情况下,第一组件可被称为第二组件,同样,第二组件也可被称为第一组件。
将理解的是,当一个元件被称为“连接”或“联接”到另一元件时,它可直接连接或联接到其它元件,或者也可存在中间元件。相反地,当元件被称为“直接连接”或“直接联接”到另一元件时,不存在中间元件。同时,可类似地来解释诸如“在……之间”、“直接在……之间”或“与……相邻”和“直接与……相邻”的描述组件之间关系的其它表述。
本申请中使用的术语仅用于描述特定实施例,并不旨在限制本公开。除非上下文另有明确说明,否则本公开中的单数形式也旨在包括复数形式。将进一步理解的是,诸如“包括”或“具有”等术语旨在指示本说明书中公开的特征、数字、操作、动作、组件、部件或其组合的存在,并且不旨在排除可能存在或可能添加一个或多个其它特征、数字、操作、动作、组件、部件或其组合的可能性。
只要没有进行不同的定义,则本文所使用的包括技术或科学术语的所有术语都具有本公开所属领域的技术人员通常理解的含义。具有字典中限定的定义的术语应当被理解为这些术语具有与相关技术的背景一致的含义。只要本申请中没有明确定义,不应以理想化或过于形式化的方式理解术语。
在描述这些实施例时,将省略对本公开所属领域公知的并且与本公开没有直接关联的技术的描述。本公开通过省略不必要的描述旨在更清楚地公开本公开的主旨。
在下文中,将参照附图详细地描述本公开的示例性实施例,以便本领域技术人员能够容易地实施本公开的技术方案。
图1是示出存储装置的框图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。
存储装置50可以是用于在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板电脑或车载信息娱乐系统的主机300的控制下存储数据的装置。
根据作为与主机300的通信方案的主机接口,存储装置50可被制造成各种类型的存储装置中的任意一种。例如,存储装置50可利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、嵌入式多媒体卡(eMMC)、尺寸减小的多媒体卡(RS-MMC)和微型多媒体卡(微型MMC)型的多媒体卡(MMC),安全数字(SD)、迷你安全数字(迷你-SD)和微型安全数字(微型SD)型的安全数字(SD)卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型的存储装置,外围组件互连(PCI)卡型的存储装置,高速PCI(PCIe)卡型的存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可被制造为各种封装类型中的任意一种。例如,存储装置50可被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。存储器单元阵列可包括多个平面。每个平面可包括多个存储块BLK1至BLKz。每个存储块可包括多个存储器单元。一个存储块可包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。在实施例中,存储器装置100可以是:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为便于描述,描述了存储器装置100是NAND闪速存储器的情况。
在实施例中,存储器装置100可以三维阵列结构来实施。本公开不仅可应用于其中电荷存储层被配置有浮栅(FG)的闪速存储器装置,而且可应用于其中电荷存储层被配置有绝缘层的电荷撷取闪存(CTF)。
在实施例中,存储器装置100中包括的存储器单元中的每一个可被配置成存储一个数据位的单层单元(SLC)。而且,存储器装置100中包括的存储器单元中的每一个可被配置成存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的由地址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器装置100可将数据编程到由地址选择的区域中。在读取操作中,存储器装置100可从由地址选择的区域读取数据。在擦除操作中,存储器装置100可擦除存储在由地址选择的区域中的数据。
存储器装置100可在存储器控制器200的控制下,通过使用设定操作电压来执行编程操作或擦除操作。
在实施例中,存储器装置100可包括映射数据存储装置126。当存储器装置100执行编程操作时,映射数据存储装置126可从存储器控制器200接收映射数据MAP_DATA。映射数据MAP_DATA可以是存储在存储器控制器200中的闪存转换层(FTL)中的数据。映射数据MAP_DATA可建立逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系。而且,映射数据MAP_DATA可配置有多个映射条目Mapping_ENT。
具体地,映射数据存储装置126可存储映射数据MAP_DATA。也就是说,映射数据存储装置126可存储映射数据MAP_DATA中包括的映射条目Mapping_ENT。可从存储器控制器200中的FTL接收映射数据MAP_DATA。存储器装置100可响应于来自存储器控制器200的请求而向映射数据接收器210输出映射数据MAP_DATA。
存储器控制器200可控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可执行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可执行诸如FTL的FW,以控制主机300与存储器装置100之间的通信。
在实施例中,存储器控制器200可从主机300接收数据和LBA,并且将LBA转换为PBA,该PBA表示存储器装置100中包括的、待存储数据的存储器单元的地址。而且,存储器控制器200可将逻辑-物理地址映射信息存储在缓冲存储器220中,该逻辑-物理地址映射信息建立LBA和PBA之间的映射关系。
存储器控制器200可响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作、擦除操作等。也就是说,存储器控制器200可响应于来自主机300的请求来控制存储器装置100。
在实施例中,在编程操作中,存储器控制器200可向存储器装置100提供编程命令、PBA和数据。在读取操作中,存储器控制器200可向存储器装置100提供读取命令和PBA。在擦除操作中,存储器控制器200可向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可在没有来自主机300的任何请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
在实施例中,存储器控制器200可包括映射数据接收器210。映射数据接收器210可从存储器装置100接收映射数据MAP_DATA。映射数据MAP_DATA可包括映射条目Mapping_ENT。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。映射数据接收器210可将从存储器装置100接收的映射数据MAP_DATA输出到映射数据控制器230和/或缓冲存储器220。
映射数据接收器210可在处理器240的控制下从存储器装置100接收映射数据MAP_DATA,该映射数据MAP_DATA包括关于存储器装置100的多个映射条目。也就是说,当处理器240从主机300接收请求消息REQ_MSG时,处理器240可控制映射数据接收器210以从存储器装置100接收映射数据MAP_DATA。
在实施例中,存储器控制器200可包括缓冲存储器220。缓冲存储器220可从映射数据接收器210接收映射数据MAP_DATA。具体地,缓冲存储器220可存储映射数据MAP_DATA中包括的、数量对应于缓冲存储器220的容量的映射条目Mapping_ENT。
当映射数据MAP_DATA被存储在缓冲存储器220中时,缓冲存储器220可在映射数据MAP_DATA中包括的映射条目Mapping_ENT之中搜索与被请求逻辑块地址REQ_LBA相对应的映射条目。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。缓冲存储器220可向处理器240输出具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
在实施例中,存储器控制器200可包括映射数据控制器230。映射数据控制器230可从映射数据接收器210顺序地接收映射数据MAP_DATA中包括的映射条目Mapping_ENT。而且,映射数据控制器230可从处理器240接收被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。
映射数据控制器230可基于映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA来将映射条目Mapping_ENT输出到处理器240。因此,当映射条目Mapping_ENT包括被请求逻辑块地址REQ_LBA时,映射数据控制器230可将从映射数据接收器210接收的映射条目Mapping_ENT输出到处理器240。
在实施例中,存储器控制器200可包括处理器240。处理器240可驱动软件或固件。固件可控制主机300与存储器装置100之间的通信。处理器240可驱动固件。
处理器240可从主机300接收请求消息REQ_MSG以及被请求逻辑地址REQ_LBA。处理器240可将被请求逻辑块地址REQ_LBA输出到映射数据控制器230和/或缓冲存储器220,以执行与从主机300接收的请求消息REQ_MSG相对应的操作。处理器240可从映射数据控制器230和/或缓冲存储器220接收具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
当处理器240从映射数据控制器230和/或缓冲存储器220接收映射条目Mapping_ENT时,处理器240可生成并输出操作数据OP_DATA,以用于执行与从主机300接收的请求消息REQ_MSG相对应的操作。操作数据OP_DATA可包括用于允许待在存储器装置中执行操作的命令、地址和数据。存储器装置100可基于操作数据OP_DATA来执行与从主机300接收的请求消息REQ_MSG相对应的操作。
在实施例中,存储器控制器200可控制至少两个存储器装置100。存储器控制器200可根据交错(interleave)方案控制存储器装置,以便提高操作性能。
主机300可使用诸如以下的各种通信接口中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
图2是示出图1所示的存储器控制器的配置和操作的示图。
参照图2,存储器控制器200可包括映射数据接收器210、缓冲存储器220、映射数据控制器230和处理器240。存储器控制器200可不包括缓冲存储器220。当存储器控制器200不包括缓冲存储器220时,存储器控制器200可配置有映射数据接收器210、映射数据控制器230和处理器240。
映射数据接收器210可被包括在存储器接口中。也就是说,映射数据接收器210可从存储器装置100接收映射数据MAP_DATA,并且输出所接收的映射数据MAP_DATA。映射数据MAP_DATA可包括映射条目Mapping_ENT。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。映射数据接收器210可将从存储器装置100接收的映射数据MAP_DATA输出到映射数据控制器230和/或缓冲存储器220。具体地,映射数据接收器210可将映射数据MAP_DATA中包括的映射条目Mapping_ENT输出到映射数据控制器230和/或缓冲存储器220。
映射数据接收器210可在处理器240的控制下从存储器装置100接收映射数据MAP_DATA,该映射数据MAP_DATA包括关于存储器装置100的多个映射条目。也就是说,当处理器240从主机300接收请求消息REQ_MSG时,处理器240可控制映射数据接收器210以从存储器装置100接收映射数据MAP_DATA。
缓冲存储器220可从映射数据接收器210接收映射数据MAP_DATA。具体地,缓冲存储器220可存储与缓冲存储器220的容量相对应的映射数据MAP_DATA。也就是说,缓冲存储器220可存储从映射数据接收器210接收的映射数据MAP_DATA中包括的、数量对应于缓冲存储器220的容量的映射条目。
而且,缓冲存储器220可从处理器240接收被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。
在实施例中,当将映射条目Mapping_ENT存储在缓冲存储器220中时,缓冲存储器220可在映射数据MAP_DATA中包括的映射条目Mapping_ENT之中搜索具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。缓冲存储器220可向处理器240输出具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
在实施例中,映射数据接收器210和缓冲存储器220可通过通道联接。映射数据接收器210可通过通道将映射数据MAP_DATA传送到缓冲存储器220。映射数据控制器230可接收通过通道传送的映射数据,以检测与来自主机300的请求相对应的映射条目。
映射数据控制器230可从映射数据接收器210中顺序地接收映射数据MAP_DATA中包括的映射条目Mapping_ENT。而且,映射数据控制器230可从处理器240接收被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。
也就是说,映射数据控制器230可基于被请求逻辑块地址REQ_LBA,来在从映射数据接收器210接收的多个映射条目之中检测对应于请求消息REQ_MSG的映射条目。另外,映射数据控制器230可向处理器240输出从映射数据接收器210接收的多个映射条目之中的、与从主机300接收的请求消息REQ_MSG相对应的映射条目。
具体地,映射数据控制器230可确定映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA。可从处理器240接收至少一个被请求逻辑块地址REQ_LBA。
映射数据控制器230可基于映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA来将映射条目Mapping_ENT输出到处理器240。
因此,当映射条目Mapping_ENT包括被请求逻辑块地址REQ_LBA时,映射数据控制器230可将从映射数据接收器210接收的映射条目Mapping_ENT输出到处理器240。
映射数据控制器230可从处理器240接收多个被请求逻辑块地址REQ_LBA。映射数据控制器230可确定从映射数据接收器210接收的映射条目是否具有多个被请求逻辑块地址REQ_LBA中的任意一个。映射数据控制器230可基于映射条目Mapping_ENT是否具有多个被请求逻辑块地址REQ_LBA中的任意一个来向处理器240输出映射条目Mapping_ENT。映射数据控制器230可向处理器240输出具有多个被请求逻辑块地址REQ_LBA中的任意一个的映射条目Mapping_ENT。随后,映射数据控制器230可从处理器240接收除了对应于映射条目Mapping_ENT的目标条目之外的目标条目。映射数据控制器230基于新接收的映射条目Mapping_ENT是否对应于所接收的目标条目来输出该映射条目Mapping_ENT。其中,被请求逻辑块地址REQ_LBA也可被称为目标条目。
处理器240可控制存储器控制器200的全部操作并且执行逻辑计算。处理器240可通过主机接口与外部主机通信,并且通过存储器接口与存储器装置100通信。处理器240可与映射数据控制器230和/或缓冲存储器220通信。
处理器240可从主机300接收请求消息REQ_MSG。处理器240可将被请求逻辑块地址REQ_LBA输出到映射数据控制器230和/或缓冲存储器220,以执行与从主机300接收的请求消息REQ_MSG相对应的操作。可以一个或多个来提供被请求逻辑块地址REQ_LBA。处理器240可从映射数据控制器230和/或缓冲存储器220接收具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
处理器240可从映射数据控制器230和/或缓冲存储器220接收映射条目Mapping_ENT,以将映射条目Mapping_ENT中包括的PBA输出到存储器装置100。也就是说,处理器240可执行FTL的功能。因此,处理器240可向存储器装置100输出PBA,以用于执行与从主机300接收的请求消息REQ_MSG相对应的操作。
处理器240可从映射数据控制器230和/或缓冲存储器220接收具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。当处理器240接收具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT时,处理器240可生成并输出操作数据OP_DATA,以用于执行与从主机300接收的请求消息REQ_MSG相对应的操作。操作数据OP_DATA可包括用于允许待在存储器装置中执行的操作的命令、地址和数据。存储器装置100可基于操作数据OP_DATA来执行与从主机300接收的请求消息REQ_MSG相对应的操作。
处理器240使从主机300接收的数据随机化。例如,处理器240可通过使用随机化种子来使从主机300接收的数据随机化。将经随机化的数据作为待存储的数据提供到存储器装置100,以被编程在存储器单元阵列中。
在读取操作中,处理器240使从存储器装置100接收的数据去随机化。例如,处理器240可通过使用去随机化种子来使从存储器装置100接收的数据去随机化。经去随机化的数据可被输出到主机300。
在实施例中,处理器240可通过驱动软件或固件来执行随机化和去随机化。
图3是示出图2所示的映射数据控制器的配置和操作的示图。
参照图3,映射数据控制器230可配置有映射条目存储装置231、被请求逻辑地址存储装置233和比较器235。映射条目存储装置231可存储从映射数据接收器210接收的映射条目Mapping_ENT。被请求逻辑地址存储装置233可存储从处理器240接收的被请求逻辑块地址REQ_LBA。其中,被请求逻辑地址存储装置233也可被称为被请求逻辑块地址存储装置。比较器235可对从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。
映射条目Mapping_ENT可表示一个LBA与一个PBA之间的映射关系。
映射条目Mapping_ENT可对应于被请求逻辑块地址REQ_LBA。具体地,映射条目Mapping_ENT是否对应于被请求逻辑块地址REQ_LBA可表示映射条目Mapping_ENT是否包括被请求逻辑块地址REQ_LBA。
映射条目存储装置231可存储从映射数据接收器210接收的映射条目Mapping_ENT。映射条目Mapping_ENT可以是被包括在映射数据MAP_DATA中的条目。映射数据MAP_DATA可包括多个映射条目Mapping_ENT。映射条目存储装置231可顺序地存储映射数据MAP_DATA中包括的映射条目Mapping_ENT。因此,映射条目存储装置231可存储映射数据MAP_DATA中包括的多个映射条目。
映射条目存储装置231可将所存储的映射条目Mapping_ENT顺序地逐个输出到比较器235。当映射条目存储装置231输出映射条目Mapping_ENT时,映射数据MAP_DATA中包括的下一映射条目Mapping_ENT可存储在映射条目存储装置231中。
被请求逻辑地址存储装置233可存储从处理器240接收的被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可以多个的形式来提供被请求逻辑块地址REQ_LBA。
被请求逻辑地址存储装置233可存储从处理器240接收的至少一个被请求逻辑块地址REQ_LBA。被请求逻辑地址存储装置233可将所存储的至少一个被请求逻辑块地址REQ_LBA输出到比较器235。可以将从被请求逻辑地址存储装置233输出的至少一个被请求逻辑块地址REQ_LBA与从映射条目存储装置231输出的映射条目Mapping_ENT进行比较。
在实施例中,当映射条目Mapping_ENT对应于从被请求逻辑地址存储装置233输出的至少一个被请求逻辑块地址REQ_LBA时,被请求逻辑地址存储装置233可接收中断信号INT_SIG。被请求逻辑地址存储装置233可设置对应于中断信号INT_SIG的被请求逻辑块地址REQ_LBA的标记值。当被请求逻辑地址存储装置233接收中断信号INT_SIG时,被请求逻辑地址存储装置233可基于被请求逻辑块地址REQ_LBA的标记值来确定待输出的被请求逻辑块地址REQ_LBA。也就是说,被请求逻辑地址存储装置233可向比较器235输出除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的至少一个被请求逻辑块地址REQ_LBA。
当从映射条目存储装置231中接收的所有映射条目Mapping_ENT都不对应于从处理器240接收的至少一个被请求逻辑块地址REQ_LBA时,被请求逻辑地址存储装置233可接收中断信号INT_SIG。中断信号INT_SIG可表示不存在与至少一个被请求逻辑块地址REQ_LBA相对应的映射条目Mapping_ENT。
比较器235可从被请求逻辑地址存储装置233接收被请求逻辑块地址REQ_LBA。而且,比较器235可从映射条目存储装置231接收映射条目Mapping_ENT。比较器235可将被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT进行比较。比较器235可基于映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA来确定映射条目Mapping_ENT的输出和中断信号INT_SIG的输出。
因此,当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可将映射条目Mapping_ENT输出到处理器240。而且,当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可将中断信号INT_SIG输出到被请求逻辑地址存储装置233。即使不存在具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT,比较器235也可将中断信号INT_SIG输出到被请求逻辑地址存储装置233。
比较器235可从被请求逻辑地址存储装置233接收多个被请求逻辑块地址REQ_LBA。当多个被请求逻辑块地址REQ_LBA与请求消息REQ_MSG一起提供时,比较器235可将映射条目Mapping_ENT与多个被请求逻辑块地址REQ_LBA进行比较。也就是说,比较器235可将映射条目Mapping_ENT与从被请求逻辑地址存储装置233接收的多个被请求逻辑块地址REQ_LBA中的任意一个进行比较。比较器235可将映射条目Mapping_ENT与多个被请求逻辑块地址REQ_LBA中的所有被请求逻辑块地址进行比较,然后从映射条目存储装置231接收新的映射条目Mapping_ENT。
当映射条目Mapping_ENT对应于从被请求逻辑地址存储装置233接收的多个被请求逻辑块地址REQ_LBA中的任意一个时,比较器235可将该映射条目Mapping_ENT输出到处理器240。也就是说,比较器235可将从映射条目存储装置231接收的多个映射条目之中的、与被请求逻辑块地址REQ_LBA相对应的映射条目作为对应于来自主机的请求的映射条目输出。
而且,比较器235可向被请求逻辑地址存储装置233输出中断信号INT_SIG。中断信号INT_SIG可表示已输出具有相应被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。被请求逻辑地址存储装置233可通过接收中断信号INT_SIG来输出对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA。
在比较器235向处理器240输出映射条目Mapping_ENT之后,比较器235可从被请求逻辑地址存储装置233接收除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的被请求逻辑块地址REQ_LBA。而且,比较器235可接收映射条目存储装置231中存储的下一映射条目Mapping_ENT。比较器235可从映射数据接收器210接收下一映射条目Mapping_ENT,直到多个被请求逻辑块地址REQ_LBA对应于输入到比较器235中的所有映射条目Mapping_ENT。
比较器235可将从映射条目存储装置231接收的下一映射条目Mapping_ENT与从被请求逻辑地址存储装置233中接收的被请求逻辑块地址REQ_LBA进行比较。比较器235可从被请求逻辑地址存储装置233中接收被请求逻辑块地址REQ_LBA,直到所有被请求逻辑块地址REQ_LBA对应于映射条目Mapping_ENT。可选地,比较器235可从被请求逻辑地址存储装置233接收被请求逻辑块地址REQ_LBA,直到比较器235将被请求逻辑地址存储装置233中存储的被请求逻辑块地址REQ_LBA与映射条目存储装置231中存储的最后的映射数据中包括的最后的映射条目Mapping_ENT进行比较。
即使不存在对应于被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT,比较器235也可向处理器240输出中断信号INT_SIG。也就是说,当被请求逻辑地址存储装置233中存储的被请求逻辑块地址REQ_LBA中的任意一个都不对应于映射条目存储装置231中存储的所有映射条目Mapping_ENT时,比较器235可通过中断信号INT_SIG表示不存在相应的映射条目Mapping_ENT。
当提供多个被请求逻辑块地址REQ_LBA时,比较器235可存储与多个被请求逻辑块地址REQ_LBA中的任意一个相对应的映射条目Mapping_ENT。也就是说,当映射条目Mapping_ENT对应于多个被请求逻辑块地址REQ_LBA中的任意一个时,比较器235可不立即输出该映射条目Mapping_ENT。因此,比较器235可在其中存储该映射条目Mapping_ENT,然后将该映射条目Mapping_ENT输出到处理器240。
因此,当对应于多个被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT全部都被存储在比较器235中时,比较器235可将比较器235中存储的映射条目Mapping_ENT中的至少一个输出到处理器240。
当提供多个连续的被请求逻辑块地址REQ_LBA时,比较器235可输出与该连续的被请求逻辑块地址REQ_LBA之中的第一个被请求逻辑块地址REQ_LBA相对应的映射条目Mapping_ENT。可对第一个被请求逻辑块地址REQ_LBA记录连续目标条目的数量,即连续值。
在实施例中,当比较器235输出对应于第一个被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT时,比较器235可输出与对第一个被请求逻辑块地址REQ_LBA记录的连续值一样多的映射条目Mapping_ENT。也就是说,在比较器235输出映射条目Mapping_ENT之后,比较器235可输出与连续的被请求逻辑块地址REQ_LBA的数量一样多的连续的映射条目Mapping_ENT。因此,可以在不确定映射条目Mapping_ENT是否包括连续的被请求逻辑块地址REQ_LBA的情况下输出映射条目Mapping_ENT。
图4是示出搜索映射条目的方法的示图。
参照图4,图4示出了映射数据接收器210从存储器装置100接收的映射数据MAP_DATA之中的第一映射数据MAP_DATA1。映射数据MAP_DATA可包括一个、两个或更多个映射条目Mapping_ENT。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。
在图4中,示出了第一映射数据MAP_DATA1包括第十一至第十四映射条目Mapping_ENT11至Mapping_ENT14的情况。而且,示出了从处理器240接收到一个被请求逻辑块地址REQ_LBA的情况。而且,示出了从处理器240接收的被请求逻辑块地址REQ_LBA包括第三LBALBA3的情况。
第一映射数据MAP_DATA1可包括第十一至第十四映射条目Mapping_ENT11至Mapping_ENT14。四个映射条目Mapping_ENT中的每一个可建立LBA与PBA之间的映射关系。也就是说,第十一映射条目Mapping_ENT11可建立第一LBA LBA1与第一PBA PBA1之间的映射关系。第十二映射条目Mapping_ENT12可建立第二LBA LBA2与第二PBA PBA2之间的映射关系。第十三映射条目Mapping_ENT13可建立第三LBA LBA3与第三PBA PBA3之间的映射关系。第十四映射条目Mapping_ENT14可建立第四LBA LBA4与第四PBA PBA4之间的映射关系。
映射条目存储装置231可从映射数据接收器210顺序地接收映射数据MAP_DATA中包括的映射条目Mapping_ENT,并且存储映射条目Mapping_ENT。因此,映射条目存储装置231可顺序地从第十一映射条目Mapping_ENT11至第十四映射条目Mapping_ENT14来接收映射条目Mapping_ENT,其中第十一映射条目Mapping_ENT11至第十四映射条目Mapping_ENT14包括在第一映射数据MAP_DATA1中。映射条目存储装置231可存储顺序接收的映射条目Mapping_ENT11至Mapping_ENT14。
被请求逻辑地址存储装置233可从处理器240接收被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可从处理器240接收一个、两个或更多个被请求逻辑块地址REQ_LBA。被请求逻辑地址存储装置233可存储所接收的被请求逻辑块地址REQ_LBA。
在图4中,示出了从处理器240接收的被请求逻辑块地址REQ_LBA包括第三LABLAB3的情况。
比较器235可对从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。也就是说,比较器235可对被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT中包括的LBA进行比较。因此,因为第十一映射条目Mapping_ENT11建立了第一LBA LBA1和第一PBA PBA1之间的映射关系,所以被请求逻辑块地址REQ_LBA与第十一映射条目Mapping_ENT11可能不彼此对应。
在比较器235将被请求逻辑块地址REQ_LBA和第十一映射条目Mapping_ENT11进行比较之后,比较器235可从映射条目存储装置231接收第十二映射条目Mapping_ENT12。在比较器235接收第十二映射条目Mapping_ENT12之后,比较器235可将被请求逻辑块地址REQ_LBA与第十二映射条目Mapping_ENT12进行比较。也就是说,比较器235可将被请求逻辑块地址REQ_LBA中包括的第三LBA LBA3和第十二映射条目Mapping_ENT12中包括的第二LBALBA2进行比较。
被请求逻辑块地址REQ_LBA中包括的第三LBA LBA3和第十二映射条目Mapping_ENT12中包括的第二LBA LBA2可能彼此不同。因此,在比较器235将被请求逻辑块地址REQ_LBA与第十二映射条目Mapping_ENT12进行比较之后,比较器235可接收第十三映射条目Mapping_ENT13。比较器235可将被请求逻辑块地址REQ_LBA与第十三映射条目Mapping_ENT13进行比较。也就是说,比较器235可将被请求逻辑块地址REQ_LBA中包括的第三LBALBA3与第十三映射条目Mapping_ENT13中包括的第三LBA LBA3进行比较。
因为第三LBA LBA3被包括在第十三映射条目Mapping_ENT13中,所以比较器235可将第十三映射条目Mapping_ENT13输出到处理器240。也就是说,被请求逻辑块地址REQ_LBA和第十三映射条目Mapping_ENT13可彼此对应。因此,比较器235可向处理器240输出对应于被请求逻辑块地址REQ_LBA的第十三映射条目Mapping_ENT13。
而且,比较器235可生成并输出中断信号INT_SIG,以表示已输出了对应于被请求逻辑块地址REQ_LBA的第十三映射条目Mapping_ENT13。
因为提供了一个被请求逻辑块地址REQ_LBA,所以映射数据控制器230可不再从映射数据接收器210接收任何映射条目Mapping_ENT。因此,可在没有接收第十四映射条目Mapping_ENT14的情况下,完成映射数据控制器230的操作。
图5是示出从被请求逻辑地址存储装置输出多个目标条目的方法的示图。
参照图5,被请求逻辑地址存储装置233可存储第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及相应的标记值。每个标记值可表示是否将输出具有相应被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可以多个的形式来提供被请求逻辑块地址REQ_LBA。因此,多个被请求逻辑块地址REQ_LBA可存储在被请求逻辑地址存储装置233中。
在图5中,示出了标记值“0”表示尚未输出具有相应的被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT的情况。而且,示出了标记值“1”表示已输出具有相应的被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT的情况。在另一实施例中,标记值“0”可表示已输出具有相应的被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。而且,标记值“1”可表示尚未输出具有相应的被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
被请求逻辑地址存储装置233可存储从处理器240接收的多个被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。
在一个实施例中,被请求逻辑地址存储装置233可存储从处理器240接收的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3。被请求逻辑地址存储装置233可将所存储的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3输出到比较器235。被请求逻辑地址存储装置233可基于与第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3相对应的标记值,来输出第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3。
S501的标记值列可表示当从处理器240接收到被请求逻辑块地址REQ_LBA时的标记值。也就是说,S501的标记值列可表示尚未输出与第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3相对应的映射条目Mapping_ENT时的标记值。因此,当第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3和映射条目Mapping_ENT之间的比较结束时,被请求逻辑地址存储装置233可将标记值“0”的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3重新输出到比较器235。
当第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3被输出到比较器235时,比较器235可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。也就是说,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3中的每一个和映射条目Mapping_ENT中包括的LBA可彼此进行比较。
当从映射条目存储装置231接收的映射条目Mapping_ENT不对应于第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3时,可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与下一接收的映射条目Mapping_ENT进行比较。
当映射条目Mapping_ENT对应于第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3中的任意一个时,被请求逻辑地址存储装置233可从比较器235接收中断信号INT_SIG。被请求逻辑地址存储装置233可设置与中断信号INT_SIG相对应的被请求逻辑块地址REQ_LBA的标记值。因此,当第一被请求逻辑块地址REQ_LBA1和映射条目Mapping_ENT中包括的LBA彼此对应时,被请求逻辑地址存储装置233可基于中断信号INT_SIG来将第一被请求逻辑块地址REQ_LBA1的标记值从“0”改变为“1”。
当被请求逻辑地址存储装置233接收到中断信号INT_SIG时,被请求逻辑地址存储装置233可基于被请求逻辑块地址REQ_LBA的标记值来确定待输出的被请求逻辑块地址REQ_LBA2和REQ_LBA3。也就是说,被请求逻辑地址存储装置233可输出标记值为“0”的被请求逻辑块地址REQ_LBA。
因此,被请求逻辑地址存储装置233可向比较器235输出除了对应于映射条目Mapping_ENT的第一被请求逻辑块地址REQ_LBA1之外的第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3。当第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3被输出到比较器235时,比较器235可将下一接收的映射条目Mapping_ENT与第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3进行比较。比较器235可基于下一接收的映射条目Mapping_ENT与第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3之间的比较结果,来确定是否输出映射条目Mapping_ENT或者中断信号INT_SIG。
比较器235可从映射数据接收器210接收下一映射条目Mapping_ENT,直到第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3对应于被输入到比较器235的各个映射条目Mapping_ENT。
图6是示出当输出目标被请求逻辑块地址时输出与图5所示的被请求逻辑块地址相对应的映射条目的方法的示图。
参照图5和图6,示出了被请求逻辑地址存储装置233存储第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3的情况。示出了第一被请求逻辑块地址REQ_LBA1是第三LBALBA3,第二被请求逻辑块地址REQ_LBA2是第五LBA LBA5,以及第三被请求逻辑块地址REQ_LBA3是第九LBA LBA9的情况。
映射数据接收器210可从存储器装置100接收映射数据MAP_DATA。在实施例中,映射数据接收器210可从存储器装置100接收第一至第三映射数据MAP_DATA1至MAP_DATA3。第一映射数据MAP_DATA1可包括第十一至第十四映射条目Mapping_ENT11至Mapping_ENT14。第二映射数据MAP_DATA2可包括第二十一至第二十四映射条目Mapping_ENT21至Mapping_ENT24。第三映射数据MAP_DATA3可包括第三十一至第三十四映射条目Mapping_ENT31至Mapping_ENT34。
映射数据接收器210可向映射数据控制器230输出映射数据MAP_DATA中包括的映射条目。也就是说,映射条目存储装置231可从映射数据接收器210顺序地接收第一至第三映射数据MAP_DATA1至MAP_DATA3中包括的第十一至第三十四映射条目Mapping_ENT11至Mapping_ENT34。比较器235可顺序地接收映射条目存储装置231中存储的映射条目Mapping_ENT。也就是说,当比较器235接收的被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT之间的比较结束时,比较器235可接收映射条目存储装置231中存储的下一映射条目Mapping_ENT。
比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十一映射条目Mapping_ENT11。因此,比较器235可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与第十一映射条目Mapping_ENT11进行比较。
具体地,比较器235可确定逻辑块地址LBA3、LBA5和LBA9(即,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3)是否对应于第十一映射条目Mapping_ENT11中包括的第一LBA LBA1。当逻辑块地址LBA3、LBA5和LBA9(即,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3)不对应于第十一映射条目Mapping_ENT11中包括的第一LBA LBA1时,可不输出第十一映射条目Mapping_ENT11和中断信号INT_SIG。因此,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3的标记值可保持为“0”。
随后,比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十二映射条目Mapping_ENT12。因此,比较器235可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与第十二映射条目Mapping_ENT12进行比较。具体地,比较器235可确定逻辑块地址LBA3、LBA5和LBA9(即,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3)是否对应于第十二映射条目Mapping_ENT12中包括的第二LBALBA2。当逻辑块地址LBA3、LBA5和LBA9(即,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3)不对应于第十二映射条目Mapping_ENT12中包括的第二LBA LBA2时,可不输出第十二映射条目Mapping_ENT12和中断信号INT_SIG。因此,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3的标记值可保持为“0”。
随后,比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十三映射条目Mapping_ENT13。因此,比较器235可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与第十三映射条目Mapping_ENT13进行比较。具体地,比较器235可确定逻辑块地址LBA3、LBA5和LBA9(即,第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3)是否对应于第十三映射条目Mapping_ENT13中包括的第三LBALBA3。
在实施例中,因为第一被请求逻辑块地址REQ_LBA1是第三LBA LBA3,所以第一被请求逻辑块地址REQ_LBA1与第十三映射条目Mapping_ENT13中包括的LBA可以是相同的。因此,比较器235可向处理器240输出第十三映射条目Mapping_ENT13。而且,比较器235可输出表示已输出包括第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)的第十三映射条目Mapping_ENT13的中断信号INT_SIG。
被请求逻辑地址存储装置233可从比较器235接收中断信号INT_SIG。被请求逻辑地址存储装置233可基于中断信号INT_SIG来将第一被请求逻辑块地址REQ_LBA1的标记值从“0”改变为“1”。
随后,因为已输出包括第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)的第十三映射条目Mapping_ENT13,所以被请求逻辑地址存储装置233可向比较器235输出除了第一被请求逻辑块地址REQ_LBA1之外的第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3。另外,映射条目存储装置231可将第十四映射条目Mapping_ENT14作为下一映射条目输出到比较器235。比较器235可将第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3与第十四映射条目Mapping_ENT14进行比较。
具体地,比较器235可确定逻辑块地址LBA5和LBA9(即,第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3)是否对应于第十四映射条目Mapping_ENT14中包括的第四LBALBA4。当逻辑块地址LBA5和LBA9(即,第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3)不对应于第十四映射条目Mapping_ENT14中包括的第四LBA LBA4时,可不输出第十四映射条目Mapping_ENT14和中断信号INT_SIG。因此,第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3的标记值可保持为“0”。
随后,比较器235可接收第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3以及第二映射数据MAP_DATA2中包括的第二十一映射条目Mapping_ENT21。因此,比较器235可将第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3与第二十一映射条目Mapping_ENT21进行比较。具体地,比较器235可确定逻辑块地址LBA5和LBA9(即,第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3)是否对应于第二十一映射条目Mapping_ENT21中包括的第五LBALBA5。
在实施例中,因为第二被请求逻辑块地址REQ_LBA2是第五逻辑块地址LBA5,所以第二被请求逻辑块地址REQ_LBA2与第二十一映射条目Mapping_ENT21中包括的LBA可以是相同的。因此,比较器235可向处理器240输出第二十一映射条目Mapping_ENT21。而且,比较器235可输出表示已输出包括第二被请求逻辑块地址REQ_LBA2的第二十一映射条目Mapping_ENT21的中断信号INT_SIG。
被请求逻辑地址存储装置233可从比较器235接收中断信号INT_SIG。被请求逻辑地址存储装置233可基于中断信号INT_SIG来将第二被请求逻辑块地址REQ_LBA2的标记值从“0”改变为“1”。
随后,因为已输出包括第一和第二被请求逻辑块地址REQ_LBA1和REQ_LBA2的第十三和第二十一映射条目Mapping_ENT13和Mapping_ENT21,所以被请求逻辑地址存储装置233可向比较器235输出除了第一和第二被请求逻辑块地址REQ_LBA1和REQ_LBA2之外的第三被请求逻辑块地址REQ_LBA3。另外,映射条目存储装置231可将第二十二映射条目Mapping_ENT22作为下一映射条目输出到比较器235。比较器235可将第三被请求逻辑块地址REQ_LBA3与第二十二映射条目Mapping_ENT22进行比较。具体地,比较器235可确定第三被请求逻辑块地址REQ_LBA3是否对应于第二十二映射条目Mapping_ENT22中包括的LBA。当第三被请求逻辑块地址REQ_LBA3不对应于第二十二映射条目Mapping_ENT22中包括的LBA时,可不输出第二十二映射条目Mapping_ENT22和中断信号INT_SIG。因此,第三被请求逻辑块地址REQ_LBA3的标记值可保持为“0”。
以上述方式,映射条目存储装置231可向比较器235输出第二映射数据MAP_DAT2中包括的第二十三和第二十四映射条目Mapping_ENT23和Mapping_ENT24。被请求逻辑地址存储装置233可输出第三被请求逻辑块地址REQ_LBA3。比较器235可将第三被请求逻辑块地址REQ_LBA3与从映射条目存储装置231顺序接收的第二十三和第二十四映射条目Mapping_ENT23和Mapping_ENT24进行比较。
在比较器235将第三被请求逻辑块地址REQ_LBA3与第二十三和第二十四映射条目Mapping_ENT23和Mapping_ENT24进行比较之后,比较器235可接收第三被请求逻辑块地址REQ_LBA3和第三十一映射条目Mapping_ENT31。因此,比较器235可将第三被请求逻辑块地址REQ_LBA3与第三十一映射条目Mapping_ENT31进行比较。具体地,比较器235可确定第三被请求逻辑块地址REQ_LBA3是否对应于第三十一映射条目Mapping_ENT31中包括的LBA。
在实施例中,因为第三被请求逻辑块地址REQ_LBA3是第九逻辑块地址LBA9,所以第三被请求逻辑块地址REQ_LBA3与第三十一映射条目Mapping_ENT31中包括的LBA可以是相同的。因此,比较器235可向处理器240输出第三十一映射条目Mapping_ENT31。而且,比较器235可输出表示已输出包括第三被请求逻辑块地址REQ_LBA3的第三十一映射条目Mapping_ENT31的中断信号INT_SIG。
被请求逻辑地址存储装置233可从比较器235接收中断信号INT_SIG。被请求逻辑地址存储装置233可基于中断信号INT_SIG来将第三被请求逻辑块地址REQ_LBA3的标记值从“0”改变为“1”。
因为被请求逻辑地址存储装置233中存储的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3的所有标记值都是“1”,所以被请求逻辑地址存储装置233可不再输出任何被请求逻辑块地址REQ_LBA。另外,映射条目存储装置231可不再输出任何映射条目Mapping_ENT。因此,可不向比较器235输出第三映射数据MAP_DATA3中包括的第三十二至第三十四映射条目Mapping_ENT32至Mapping_ENT34。
图7是示出当多个目标条目是连续的时用于显示连续的目标条目的方法的示图。
参照图7,被请求逻辑地址存储装置233可存储第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3。当第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的时,被请求逻辑地址存储装置233可使连续的被请求逻辑块地址REQ_LBA1至REQ_LBA3之中的第一个被请求逻辑块地址REQ_LBA对应于连续值。该连续值可表示连续的被请求逻辑块地址REQ_LBA的数量。
在图7中,示出了第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的情况。也就是说,三个被请求逻辑块地址REQ_LBA1至REQ_LBA3可以是连续的。假设以下情况:连续的被请求逻辑块地址REQ_LBA1至REQ_LBA3之中的第一被请求逻辑块地址REQ_LBA1是被请求逻辑块地址的起始LBA。因此,第一被请求逻辑块地址REQ_LBA1可对应于作为连续值的“3”。
可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可以多个的形式来提供被请求逻辑块地址REQ_LBA。因此,多个被请求逻辑块地址REQ_LBA可存储在被请求逻辑地址存储装置233中。
被请求逻辑地址存储装置233可存储从处理器240接收的多个被请求逻辑块地址REQ_LBA1至REQ_LBA3。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA1至REQ_LBA3。
在一个实施例中,被请求逻辑地址存储装置233可存储从处理器240接收的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3。被请求逻辑地址存储装置233可将所存储的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3输出到比较器235。
当第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3被输出到比较器235时,比较器235可将第一被请求逻辑块地址REQ_LBA1与从映射条目存储装置231接收的映射条目Mapping_ENT中包括的逻辑块地址LBA进行比较。也就是说,比较器235可将第一被请求逻辑块地址REQ_LBA1与映射条目Mapping_ENT中包括的LBA进行比较。因为第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的,所以比较器235可仅将第一被请求逻辑块地址REQ_LBA1与映射条目Mapping_ENT中包括的LBA进行比较。
当从映射条目存储装置231接收的映射条目Mapping_ENT不对应于第一被请求逻辑块地址REQ_LBA1时,可将第一被请求逻辑块地址REQ_LBA1与下一接收的映射条目Mapping_ENT进行比较。
当映射条目Mapping_ENT对应于第一被请求逻辑块地址REQ_LBA1时,比较器235可向处理器240输出相应的映射条目Mapping_ENT。因为第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的,所以在比较器235向处理器240输出相应的映射条目Mapping_ENT之后,被请求逻辑地址存储装置231可不向比较器235输出第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3。比较器235不将第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3与映射条目Mapping_ENT进行比较,而是可向处理器240输出映射条目Mapping_ENT。
具体地,比较器235可输出在比较器235向处理器240输出相应的映射条目Mapping_ENT之后输入的映射条目Mapping_ENT。也就是说,比较器235可输出与第一被请求逻辑块地址REQ_LBA1的连续值一样多的映射条目Mapping_ENT。比较器235可检查第一被请求逻辑块地址REQ_LBA1的连续值。因此,比较器235可输出与第一被请求逻辑块地址REQ_LBA1的连续值一样多的映射条目Mapping_ENT。也就是说,在比较器235输出对应于第一被请求逻辑块地址REQ_LBA1的映射条目Mapping_ENT之后,比较器235可输出两个连续输入的映射条目Mapping_ENT。该两个映射条目Mapping_ENT可在不与第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3进行比较的情况下被输出。
图8是示出当图7所示的目标条目是连续的时从映射条目存储装置输出映射条目的方法的示图。
参照图7和图8,示出了被请求逻辑地址存储装置233存储第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3的情况。示出了第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的情况。也就是说,示出了第一被请求逻辑块地址REQ_LBA1是第三逻辑块地址LBA3、第二被请求逻辑块地址REQ_LBA2是第四逻辑块地址LBA4并且第三被请求逻辑块地址REQ_LBA3是第五逻辑块地址LBA5的情况。而且,示出了第一被请求逻辑块地址REQ_LBA1对应于作为连续值的“3”情况。
映射数据接收器210可从存储器装置100接收映射数据MAP_DATA。在实施例中,映射数据接收器210可从存储器装置100接收第一和第二映射数据MAP_DATA1和MAP_DATA2。第一映射数据MAP_DATA1可包括第十一至第十四映射条目Mapping_ENT11至Mapping_ENT14。第二映射数据MAP_DATA2可包括第二十一至第二十四映射条目Mapping_ENT21至Mapping_ENT24。
映射数据接收器210可向映射数据控制器230输出映射数据MAP_DATA中包括的映射条目Mapping_ENT。也就是说,映射条目存储装置231可从映射数据接收器210顺序地接收第一和第二映射数据MAP_DATA1和MAP_DATA2中包括的第十一至第二十四映射条目Mapping_ENT11至Mapping_ENT24。比较器235可顺序地接收映射条目存储装置231中存储的映射条目Mapping_ENT。也就是说,当比较器235接收的被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT之间的比较结束时,比较器235可接收映射条目存储装置231中存储的下一映射条目Mapping_ENT。
比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十一映射条目Mapping_ENT11。因此,比较器235可将第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3与第十一映射条目Mapping_ENT11进行比较。然而,因为第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的,并且第一被请求逻辑块地址REQ_LBA1是被请求LBA中的起始LBA,所以比较器235可仅将第一被请求逻辑块地址REQ_LBA1与第十一映射条目Mapping_ENT11进行比较。
具体地,比较器235可确定第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)是否对应于第十一映射条目Mapping_ENT11中包括的第一LBA LBA1。当第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)不对应于第十一映射条目Mapping_ENT11中包括的第一LBALBA1时,可不输出第十一映射条目Mapping_ENT11和中断信号INT_SIG。
随后,比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十二映射条目Mapping_ENT12。因此,比较器235可将第一被请求逻辑块地址REQ_LBA1与第十二映射条目Mapping_ENT12进行比较。
具体地,比较器235可确定第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)是否对应于第十二映射条目Mapping_ENT12中包括的第二LBA LBA2。当第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)不对应于第十二映射条目Mapping_ENT12中包括的第二LBALBA2时,可不输出第十二映射条目Mapping_ENT12和中断信号INT_SIG。
随后,比较器235可接收第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3以及第一映射数据MAP_DATA1中包括的第十三映射条目Mapping_ENT13。因此,比较器235可将第一被请求逻辑块地址REQ_LBA1与第十三映射条目Mapping_ENT13进行比较。具体地,比较器235可确定第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)是否对应于第十三映射条目Mapping_ENT13中包括的LBA。
在实施例中,因为第一被请求逻辑块地址REQ_LBA1是第三LBA LBA3,该第三LBALBA3(即,第一被请求逻辑块地址REQ_LBA1)与第十三映射条目Mapping_ENT13中包括的LBA可以是相同的。因此,比较器235可向处理器240输出第十三映射条目Mapping_ENT13。而且,比较器235可输出表示已输出包括第三LBA LBA3(即,第一被请求逻辑块地址REQ_LBA1)的第十三映射条目Mapping_ENT13的中断信号INT_SIG。
因为第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3是连续的,所以在比较器235向处理器240输出第十三映射条目Mapping_ENT13之后,被请求逻辑地址存储装置231可不向比较器235输出第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3。比较器235可在没有将第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3与映射条目Mapping_ENT进行比较的情况下,向处理器240输出映射条目Mapping_ENT。
具体地,比较器235可输出在比较器235向处理器240输出第十三映射条目Mapping_ENT13之后输入的第十四和第十五映射条目Mapping_ENT14和Mapping_ENT15。也就是说,比较器235可输出第十三至第十五映射条目Mapping_ENT13至Mapping_ENT15,以便输出与第一被请求逻辑块地址REQ_LBA1的连续值一样多的映射条目Mapping_ENT。
比较器235可检查第一被请求逻辑块地址REQ_LBA1的连续值(3)。因此,比较器235可输出与第一被请求逻辑块地址REQ_LBA1的连续值(3)一样多的映射条目Mapping_ENT。也就是说,在比较器235输出对应于第一被请求逻辑块地址REQ_LBA1的第十三映射条目Mapping_ENT13之后,比较器235可输出作为两个连续输入的映射条目的第十四和第十五映射条目Mapping_ENT14和Mapping_ENT15。可在没有与第二和第三被请求逻辑块地址REQ_LBA2和REQ_LBA3进行比较的情况下,输出第十四和第十五映射条目Mapping_ENT14和Mapping_ENT15。
因为所有的第一至第三被请求逻辑块地址REQ_LBA1至REQ_LBA3对应于输入到比较器235中的映射条目Mapping_ENT,所以比较器235可不接收来自从映射数据接收器210接收的映射数据中的映射条目Mapping_ENT。具体地,因为已输出第十三至第十五映射条目Mapping_ENT13至Mapping_ENT15,所以比较器235可不再接收任何映射条目Mapping_ENT。因此,可不向比较器235输出第二映射数据MAP_DATA2中包括的第二十二至第二十四映射条目Mapping_ENT22至Mapping_ENT24。
图9是示出图2所示的存储器控制器的操作时间的示图。
参照图9,(a)示出当将映射条目Mapping_ENT存储(即,高速缓存)在缓冲存储器220中以及在缓冲存储器220中存储的映射条目Mapping_ENT中搜索具有被请求逻辑块地址REQ_LBA的映射条目的存储器控制器200的操作时间。(b)示出将映射条目Mapping_ENT存储在缓冲存储器220中的同时,在映射条目Mapping_ENT中搜索具有被请求逻辑块地址REQ_LBA的映射条目的存储器控制器200的操作时间。
在图9所示的(a)中,缓冲存储器220可从映射数据接收器210接收映射数据MAP_DATA。具体地,缓冲存储器220可存储映射数据MAP_DATA中包括的、数量对应于缓冲存储器220的容量的映射条目Mapping_ENT。缓冲存储器220存储映射条目Mapping_ENT的时间可以是第一时间Time1。
当将映射数据MAP_DATA存储在缓冲存储器220中时,缓冲存储器220可在所存储(即,所高速缓存)的映射数据MAP_DATA中包括的映射条目Mapping_ENT中,搜索具有被请求逻辑块地址REQ_LBA的映射条目。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。缓冲存储器220搜索具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT的时间可以是第二时间Time2。第二时间Time2可以是可变的。
因此,当在缓冲存储器220中存储的映射条目Mapping_ENT之中搜索到具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT时,存储器控制器200的操作时间可以是缓冲存储器220存储映射条目Mapping_ENT的第一时间Time1与缓冲存储器220搜索具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT的第二时间Time2的总和。
在图9所示的(b)中,映射数据控制器230可从映射数据接收器210顺序地接收映射数据MAP_DATA中包括的映射条目Mapping_ENT。可在将映射条目Mapping_ENT高速缓存在缓冲存储器220中的同时,将映射条目Mapping_ENT提供到映射数据控制器230。因为映射数据控制器230不使用来自缓冲存储器220的已完成高速缓存的映射条目Mapping_ENT,而是使用正在高速缓存的映射条目Mapping_ENT,所以存储器控制器200的操作时间可减少用于将映射条目Mapping_ENT存储(即,高速缓存)到缓冲存储器220中的时间。
因此,当在正在从映射数据接收器210高速缓存到缓冲存储器220中的映射条目Mapping_ENT中搜索到具有被请求逻辑块地址REQ_LBA的映射条目时,存储器控制器200的操作时间可仅包括第三时间Time3,即搜索映射条目的时间。因此,存储器控制器200的操作时间可以是除去存储映射条目Mapping_ENT的时间的时间。第三时间Time3可以是可变的。
图10是示出图1所示的存储器装置的结构的框图。
参照图10,存储器装置100包括存储器单元阵列110、外围电路120和控制逻辑125。
存储器单元阵列110可包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121,并且通过位线BL1至BLm联接到读取/写入电路123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元为非易失性存储器单元。
存储器单元阵列中包括的多个存储器单元可根据其用途而被划分成多个块。诸如控制存储器装置100所需的各种设置信息的系统信息可存储在多个块中。
第一至第z存储块BLK1至BLKz中的每一个包括多个单元串。第一至第m单元串分别联接到第一至第m位线BL1至BLm。第一至第m单元串中的每一个包括漏极选择晶体管、多个串联联接的存储器单元和源极选择晶体管。漏极选择晶体管联接到漏极选择线。第一至第n存储器单元联接到第一至第n字线。源极选择晶体管联接到源极选择线。漏极选择晶体管的漏极侧联接到相应的位线。第一至第m单元串的漏极选择晶体管分别联接到第一至第m位线BL1至BLm。源极选择晶体管的源极侧联接到共源线。在实施例中,共源线可共同联接到第一至第z存储块BLK1至BLKz。行线RL中包括漏极选择线DSL、第一至第n字线以及源极选择线。由地址解码器121控制漏极选择线DSL、第一至第n字线以及源极选择线。由控制逻辑125控制共源线。由读取/写入电路123控制第一至第m位线BL1至BLm。
外围电路120包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124以及控制逻辑125。
地址解码器121通过行线RL联接到存储器单元阵列110。地址解码器121被配置成在控制逻辑125的控制下操作。地址解码器121通过控制逻辑125接收地址ADDR。
在实施例中,以页面为单位来执行对存储器装置100的编程操作和读取操作。
在编程操作和读取操作中,由控制逻辑125接收的地址ADDR可包括块地址和行地址。地址解码器121被配置成对接收到的地址ADDR中的块地址进行解码。地址解码器121根据经解码的块地址来在存储块BLK1至BLKz之中选择一个存储块。
地址解码器121被配置成对接收到的地址ADDR中的行地址进行解码。地址解码器121根据经解码的行地址,通过将从电压生成器122提供的电压施加到行线RL来选择所选择的存储块的一个字线。
在擦除操作中,地址ADDR包括块地址。地址解码器121对块地址进行解码,并根据经解码的块地址来选择一个存储块。可对一个存储块的整体或部分执行擦除操作。
在部分擦除操作中,地址ADDR可包括块地址和行地址。地址解码器121根据块地址来在存储块BLK1至BLKz之中选择一个存储块。
地址解码器121被配置成对接收到的地址ADDR中的行地址进行解码。地址解码器121根据经解码的行地址,通过将从电压生成器122提供的电压施加到行线RL来选择所选择的存储块的至少一个字线。
在实施例中,地址解码器121可包括块解码器、字线解码器、地址缓冲器等。
电压生成器122使用供应到存储器装置100的外部电源电压来生成多个电压。电压生成器122在控制逻辑125的控制下操作。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。将通过电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122可使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可包括用于接收内部电源电压的多个泵浦(pumping)电容器,并且可在控制逻辑130的控制下通过选择性地激活多个泵浦电容器来生成多个电压。将多个所生成的电压施加到由地址解码器121选择的字线。
在编程操作中,电压生成器122可生成高电压编程脉冲和低于该编程脉冲的通过脉冲。在读取操作中,电压生成器122可生成读取电压和高于该读取电压的通过电压。在擦除操作中,电压生成器122可生成擦除电压。
读取/写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm通过第一至第m位线BL1至BLm分别联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑125的控制下操作。
第一至第m页面缓冲器PB1至PBm与数据输入/输出电路124通信数据。在编程操作中,第一至第m页面缓冲器PB1至PBm可通过数据输入/输出电路124和数据线DL接收待被存储的数据DATA。
在编程操作中,当编程脉冲被施加到所选择的字线时,第一页面缓冲器PB1至第m页面缓冲器PBm可通过位线BL1至BLm来将通过数据输入/输出电路124接收到的数据DATA传送到所选择的存储器单元。根据所传送的数据DATA对所选择的页面中的存储器单元进行编程。联接到被施加编程允许电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。联接到被施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作中,第一至第m页面缓冲器PB1至PBm通过位线BL1至BLm从所选择的存储器单元读取页面数据。
在读取操作中,读取/写入电路123通过位线BL从所选择的页面中的存储器单元读取数据DATA,并且将所读取的数据DATA输出到数据输入/输出电路124。在擦除操作中,读取/写入电路123可使位线BL浮置。
在实施例中,读取/写入电路123可包括列选择电路。
数据输入/输出电路124通过数据线DL而联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑125的控制下操作。在编程操作中,数据输入/输出电路124从外部控制器(未示出)接收待被存储的数据DATA。
控制逻辑125联接到地址解码器121、电压生成器122、读取/写入电路123以及数据输入/输出电路124。控制逻辑125可控制存储器装置100的全部操作。控制逻辑125接收命令CMD和地址ADDR。控制逻辑125响应于命令CMD来控制地址解码器121、电压生成器122、读取/写入电路123以及数据输入/输出电路124。
图11是示出图10所示的存储器单元阵列的实施例的示图。
参照图11,存储器单元阵列110可包括多个存储块BLK1至BLKz。每个存储块可具有三维结构。每个存储块可包括堆叠在衬底上的多个存储器单元(未示出)。多个存储器单元可沿+X、+Y和+Z方向布置。将参照图12和图13更详细地描述每个存储块的结构。
图12是示出存储块BLK1至BLKz之中的任意一个存储块BLKa的电路图。
参照图12,存储块BLKa可包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”形。在存储块BLKa中,m个单元串被布置在行方向(即,+X方向)上。图12示出在列方向(即,+Y方向)上布置的两个单元串。然而,这是为了便于描述,将理解的是,三个单元串可布置在列方向上。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可具有彼此相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可在每个单元串中设置用于提供沟道层的柱。在实施例中,可在每个单元串中设置用于提供沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图12中,第一行上的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行上的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在另一实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp与第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在与+Z方向相反的方向上,并且串联联接在源极选择晶体管SST和管道晶体管PT之间。第(p+1)至第n存储器单元MCp+1至MCn顺序地布置在+Z方向上,并且串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn通过管道晶体管PT联接。每个单元串的第一至第n存储器单元MC1至MCn的栅电极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MCp+1至MCn之间。布置在行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图12中,第一列的单元串CS11和CS21联接到第一位线BL1。第m列的单元串CS1m和CS2m联接到第m位线BLm。
在布置在行方向的单元串中的联接到相同字线的存储器单元构成一个页面。例如,在第一行上的单元串CS11至CS1m中,联接到第一字线WL1的存储器单元构成一个页面。在第二行上的单元串CS21至CS2m中,联接到第一字线WL1的存储器单元构成另一页面。当选择了漏极选择线DSL1和DSL2中的任意一个时,可选择布置在一个行方向上的单元串。当选择了字线WL1至WLn中的任意一个时,可在所选择的单元串中选择一个页面。
在另一实施例中,可设置偶数位线和奇数位线代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中的偶数编号的单元串可分别联接到偶数位线,在行方向上布置的单元串CS11至CS1m或CS21至CS2m之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。例如,可设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚设存储器单元的数量增加时,存储块BLKa的操作的可靠性提高。另一方面,存储块BLKa的大小增大。当虚设存储器单元的数量减少时,存储块BLKa的大小减小。另一方面,可能使存储块BLKa的操作的可靠性劣化。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元可具有所需的阈值电压。在存储块BLKa的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在执行了编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到联接到各个虚设存储器单元的虚设字线的电压,使得虚设存储器单元可以具有所需的阈值电压。
图13是示出存储块BLK1至BLKz之中的一个存储块的另一实施例BLKb的电路图。
参照图13,存储块BLKb可包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括在存储块BLKb下方的衬底(未示出)上堆叠的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行上的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行上的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在另一实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行的单元串CS11'至CS1m'的漏极选择晶体管联接到第一漏极选择线DSL1。第二行的单元串CS21'至CS2m'的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除了从图13的每个单元串中排除管道晶体管PT之外,图13的存储块BLKb具有与图12的存储块BLKa的电路相似的电路。
在另一实施例中,可设置偶数位线和奇数位线代替第一至第m位线BL1至BLm。另外,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可分别联接到偶数位线,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可用作虚设存储器单元。例如,可设置至少一个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,可设置至少一个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。当虚设存储器单元的数量增加时,存储块BLKb的操作的可靠性提高。另一方面,存储块BLKb的大小增大。当虚设存储器单元的数量减少时,存储块BLKb的大小减小。另一方面,可能使存储块BLKb的操作的可靠性劣化。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元可具有所需的阈值电压。在存储块BLKb的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在执行了编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到联接到各个虚设存储器单元的虚设字线的电压,使得虚设存储器单元可以具有所需的阈值电压。
图14是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图14,在步骤S1401中,映射数据接收器210可从存储器装置100接收映射数据MAP_DATA。映射数据MAP_DATA可以是存储在存储器装置100中的映射数据存储器125中的数据。而且,映射数据MAP_DATA可配置有多个映射条目Mapping_ENT。每个映射条目Mapping_ENT可表示逻辑块地址LBA与物理块地址PBA之间的映射关系。
在步骤S1403中,映射数据接收器210可输出从存储器装置100接收的映射数据MAP_DATA中包括的映射条目Mapping_ENT。映射数据控制器230可顺序地接收从映射数据接收器210输出的映射条目Mapping_ENT。映射条目Mapping_ENT可存储在映射数据控制器230中包括的映射条目存储装置231中。
在步骤S1405中,比较器235可对从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。因此,比较器235可对被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT中包括的LBA进行比较。
在步骤S1407中,可检查从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA和从映射条目存储装置231接收的映射条目Mapping_ENT是否彼此对应。映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA可表示映射条目Mapping_ENT是否对应于被请求逻辑块地址REQ_LBA。具体地,映射条目Mapping_ENT是否对应于被请求逻辑块地址REQ_LBA可表示映射条目Mapping_ENT是否包括被请求逻辑块地址REQ_LBA。
当映射条目Mapping_ENT具有被请求逻辑块地址REQ_LBA时,操作进行到S1409。当被请求逻辑块地址REQ_LBA和映射条目Mapping_ENT彼此不对应时,操作进行到步骤S1401。因此,当被请求逻辑块地址REQ_LBA和映射条目Mapping_ENT彼此不对应时,比较器235可接收映射数据MAP_DATA。具体地,比较器235可从映射条目存储装置231接收新的映射条目Mapping_ENT。
在步骤S1409中,比较器235可输出映射条目Mapping_ENT和中断信号INT_SIG。具体地,当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可输出映射条目Mapping_ENT和中断信号INT_SIG。当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可向处理器240输出映射条目Mapping_ENT。而且,比较器235可向被请求逻辑地址存储装置233输出中断信号INT_SIG。
被请求逻辑地址存储装置233可设置对应于中断信号INT_SIG的被请求逻辑块地址REQ_LBA的标记值。在被请求逻辑地址存储装置233接收中断信号INT_SIG之后,被请求逻辑地址存储装置233可基于被请求逻辑块地址REQ_LBA的标记值来确定待输出的被请求逻辑块地址REQ_LBA。也就是说,被请求逻辑地址存储装置233可向比较器235输出除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的至少一个被请求逻辑块地址REQ_LBA。
图15是示出根据本公开的实施例的存储器控制器的操作的示图。
在图15中,示出了提供多个被请求逻辑块地址REQ_LBA的情况。
参照图15,在步骤S1501中,比较器235可接收映射数据MAP_DATA中包括的映射条目Mapping_ENT。具体地,比较器235可顺序地接收映射条目存储装置231中存储的映射条目Mapping_ENT。映射条目Mapping_ENT可以是包括在映射数据中的条目。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。
在实施例中,比较器235不仅可接收映射条目Mapping_ENT,还可接收被请求逻辑块地址REQ_LBA。具体地,比较器235可从被请求逻辑地址存储装置233接收至少一个被请求逻辑块地址REQ_LBA。
可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可以多个的形式来提供被请求逻辑块地址REQ_LBA。
在步骤S1503中,比较器235可将从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT之间的比较可表示被请求逻辑块地址REQ_LBA中的每一个与映射条目Mapping_ENT中包括的LBA之间的比较。
在步骤S1505中,比较器235可确定从被请求逻辑地址存储装置233接收的被请求逻辑块地址REQ_LBA中的任意一个是否对应于映射条目Mapping_ENT。具体地,被请求逻辑块地址REQ_LBA中的任意一个是否对应于映射条目Mapping_ENT可表示映射条目Mapping_ENT是否对应于被请求逻辑块地址REQ_LBA中的任意一个。比较器235可确定被请求逻辑块地址REQ_LBA中的每一个是否与映射条目Mapping_ENT中包括的LBA彼此对应。
当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA中的任意一个时,操作进行到步骤S1511。当映射条目Mapping_ENT不对应于被请求逻辑块地址REQ_LBA中的任意一个时,操作进行到步骤S1507。
在步骤S1507中,比较器235可确定输入到比较器235的映射条目Mapping_ENT是否是最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT。当比较器235接收到最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT时,比较器235可不再接收任何映射条目Mapping_ENT。
当映射条目Mapping_ENT是最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT时,操作进行到步骤S1509。当映射条目Mapping_ENT不是最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT时,操作进行到步骤S1501,并且比较器235可接收映射数据MAP_DATA中包括的下一映射条目Mapping_ENT。
在步骤S1509中,比较器235可向被请求逻辑地址存储装置233输出中断信号INT_SIG。当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,或者当比较器235接收的映射条目Mapping_ENT是最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT时,比较器235可输出中断信号INT_SIG。具体地,比较器235可通过中断信号INT_SIG表示,最后的映射数据MAP_DATA中包括的最后的映射条目Mapping_ENT不对应于被请求逻辑块地址REQ_LBA,并且不存在待接收的映射条目Mapping_ENT。通过接收中断信号INT_SIG,被请求逻辑地址存储装置233可不输出被请求逻辑地址存储装置233中存储的被请求逻辑块地址REQ_LBA。
在步骤S1511中,比较器235可输出映射条目Mapping_ENT和中断信号INT_SIG。具体地,当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可将映射条目Mapping_ENT输出到处理器240。而且,当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA时,比较器235可将中断信号INT_SIG输出到被请求逻辑地址存储装置233。
被请求逻辑地址存储装置233可接收中断信号INT_SIG。被请求逻辑地址存储装置233可设置对应于中断信号INT_SIG的被请求逻辑块地址REQ_LBA的标记值。在被请求逻辑地址存储装置233接收中断信号INT_SIG之后,被请求逻辑地址存储装置233可基于被请求逻辑块地址REQ_LBA的标记值来确定待输出的被请求逻辑块地址REQ_LBA。也就是说,被请求逻辑地址存储装置233可向比较器235输出除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的至少一个被请求逻辑块地址REQ_LBA。
在步骤S1513中,可确定从被请求逻辑地址存储装置233接收的所有的目标条目是否都对应于映射条目Mapping_ENT。所有的目标条目是否都对应于映射条目Mapping_ENT可表示已输出与所有的被请求逻辑块地址REQ_LBA相对应的映射条目Mapping_ENT。也就是说,可确定是否已将对应于被请求逻辑块地址REQ_LBA的所有映射条目Mapping_ENT都输出到处理器,以便执行对应于来自主机300的请求消息REQ_MSG的操作。当所有的被请求逻辑块地址REQ_LBA没有都对应于映射条目Mapping_ENT时,操作进行到步骤S1515。
在步骤S1515中,比较器235可接收除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的被请求逻辑块地址REQ_LBA。也就是说,比较器235可接收除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的被请求逻辑块地址REQ_LBA。具体地,在比较器235向处理器240输出映射条目Mapping_ENT之后,比较器235可从被请求逻辑地址存储装置233接收除了对应于映射条目Mapping_ENT的被请求逻辑块地址REQ_LBA之外的被请求逻辑块地址REQ_LBA。而且,比较器235可接收映射条目存储装置231中存储的下一映射条目Mapping_ENT(参见S1501)。因此,比较器235可将被请求逻辑块地址REQ_LBA与下一映射条目Mapping_ENT进行比较。
比较器235可从映射条目存储装置231接收下一映射条目Mapping_ENT,直到输入到比较器235的映射条目Mapping_ENT对应于多个被请求逻辑块地址REQ_LBA。
图16是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图16,在步骤S1601中,比较器235可接收连续的被请求逻辑块地址REQ_LBA。具体地,比较器235可接收被请求逻辑地址存储装置231中存储的连续的被请求逻辑块地址REQ_LBA。可与请求消息REQ_MSG一起从主机300提供被请求逻辑块地址REQ_LBA。可以多个的形式来提供被请求逻辑块地址REQ_LBA。
在实施例中,比较器235不仅可接收连续的被请求逻辑块地址REQ_LBA,还可接收映射条目Mapping_ENT。具体地,比较器235可从映射条目存储装置231顺序地接收映射条目Mapping_ENT。映射条目Mapping_ENT可以是包括在映射数据中的条目。映射条目Mapping_ENT可表示一个LBA与一个PBA之间的映射关系。
在步骤S1603中,比较器235可将从被请求逻辑地址存储装置233接收的连续的被请求逻辑块地址REQ_LBA与从映射条目存储装置231接收的映射条目Mapping_ENT进行比较。连续的被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT之间的比较可表示连续的被请求逻辑块地址REQ_LBA之中的起始LBA与映射条目Mapping_ENT之间的比较。具体地,连续的被请求逻辑块地址REQ_LBA与映射条目Mapping_ENT之间的比较可表示被请求逻辑块地址REQ_LBA的起始LBA与映射条目Mapping_ENT中包括的LBA之间的比较。
在步骤S1605中,可确定被请求逻辑块地址REQ_LBA中的任意一个与映射条目Mapping_ENT是否彼此对应。也就是说,可确定映射条目Mapping_ENT是否对应于被请求逻辑块地址REQ_LBA中的任意一个。具体地,因为被请求逻辑块地址REQ_LBA是连续的,所以可确定映射条目Mapping_ENT是否对应于连续的被请求逻辑块地址REQ_LBA之中的起始LBA。因此,可确定被请求逻辑块地址REQ_LBA的起始LBA和映射条目Mapping_ENT中包括的LBA是否彼此对应。
当映射条目Mapping_ENT对应于被请求逻辑块地址REQ_LBA中的任意一个时,操作进行到步骤S1607。
在步骤S1607中,在比较器235输出相应的映射条目Mapping_ENT之后,比较器235可输出被输入到比较器235中的映射条目Mapping_ENT。也就是说,比较器235可输出在比较器235输出具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT之后输入的映射条目Mapping_ENT。
具体地,比较器235可输出与连续的被请求逻辑块地址REQ_LBA之中的起始LBA的连续值一样多的映射条目Mapping_ENT。比较器235可检查被请求逻辑块地址REQ_LBA的起始LBA的连续值。因此,比较器235可输出与被请求逻辑块地址REQ_LBA的起始LBA的连续值一样多的映射条目Mapping_ENT。
也就是说,在比较器235输出与连续的被请求逻辑块地址REQ_LBA的起始LBA相对应的映射条目Mapping_ENT之后,比较器235可输出连续输入的映射条目Mapping_ENT。所输出的映射条目可以在没有与目标条目进行比较的情况下被输出。
图17是示出图1所示的存储器控制器的另一实施例的示图。
存储器控制器1000联接到主机和存储器装置。存储器控制器1000被配置成响应于从主机接收的请求来访问存储器装置。例如,存储器控制器1000被配置成控制存储器装置的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000被配置成提供存储器装置与主机之间的接口。存储器控制器1000被配置成驱动固件以用于控制存储器装置。
参照图17,存储器控制器1000可包括处理器1010、缓冲存储器1020、错误校正码(ECC)电路1030、主机接口1040、映射数据控制电路1050、存储器接口1060和总线1070。
总线1070可被配置成在存储器控制器1000的组件之间提供通道。
处理器1010可控制存储器控制器1000的全部操作并且执行逻辑操作。处理器1010可通过主机接口1040与主机通信,并且通过存储器接口1060与存储器装置通信。而且,处理器1010可与映射数据控制电路1050和缓冲存储器1020通信。处理器1010可通过将缓冲存储器1020用作工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可接收待使用映射表而被转换为PBA的LBA。根据映射单位,存在多个FTL地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可从主机接收请求消息REQ_MSG。处理器1010可将被请求逻辑块地址REQ_LBA输出到映射数据控制电路1050和/或缓冲存储器1020,以便执行与从主机接收的请求消息REQ_MSG相对应的操作。可与请求消息REQ_MSG一起从主机提供被请求逻辑块地址REQ_LBA。
处理器1010可从映射数据控制电路1050和/或缓冲存储器1020接收具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。因此,处理器1010接收的映射条目Mapping_ENT可包括一个LBA与一个PBA之间的映射关系。
因此,处理器1010可从映射数据控制电路1050和/或缓冲存储器1020接收映射条目Mapping_ENT,并且将映射条目Mapping_ENT中包括的LBA输出到存储器装置。存储器装置可通过接收所接收的LBA来执行与来自主机的请求消息REQ_MSG相对应的操作。
处理器1010被配置成使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来使从主机接收的数据随机化。将经随机化的数据作为待存储的数据提供到存储器装置,以被编程在存储器单元阵列中。
在读取操作中,处理器1010被配置成使从存储器装置接收的数据去随机化。例如,处理器1010可使用去随机化种子使从存储器装置接收的数据去随机化。经去随机化的数据可被输出到主机。
在实施例中,处理器1010可通过驱动软件或固件来执行随机化和去随机化。
缓冲存储器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。缓冲存储器1020可存储由处理器1010执行的代码和命令。缓冲存储器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
缓冲存储器1020可存储从映射数据接收器210接收的映射数据MAP_DATA中包括的、数量对应于缓冲存储器1020的容量的映射条目Mapping_ENT。而且,缓冲存储器1020可从处理器1010接收被请求逻辑块地址REQ_LBA。
当将映射条目Mapping_ENT存储在缓冲存储器1020中时,缓冲存储器1020可在映射条目Mapping_ENT之中搜索具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA可表示映射条目Mapping_ENT是否包括被请求逻辑块地址REQ_LBA。缓冲存储器1020可向处理器1010输出具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
ECC电路1030可执行ECC操作。ECC电路1030可对待通过存储器接口1060而被写入存储器装置中的数据执行ECC编码。经ECC编码的数据可通过存储器接口1060而传送到存储器装置。ECC电路1030可对通过存储器接口1060而从存储器装置接收的数据执行ECC解码。在示例中,ECC电路1030可作为存储器接口1060的组件而包括在存储器接口1060中。
主机接口1040可在处理器1010的控制下与主机通信。主机接口1040可使用诸如以下的各种通信方法中的至少一种来与主机通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
映射数据控制电路1050可接收被请求逻辑块地址REQ_LBA。在处理器1010的控制下,映射数据控制电路1050可在映射条目Mapping_ENT之中搜索具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。映射条目Mapping_ENT是否具有被请求逻辑块地址REQ_LBA可表示映射条目Mapping_ENT是否包括被请求逻辑块地址REQ_LBA。映射数据控制电路1050可向处理器1010输出具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT。
存储器接口1060在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置通信命令、地址和数据。存储器接口1060可包括映射数据接收器210。也就是说,映射数据接收器210可从存储器装置接收映射数据MAP_DATA,并且输出所接收的映射数据MAP_DATA。映射数据MAP_DATA可包括映射条目Mapping_ENT。映射条目Mapping_ENT可建立一个LBA与一个PBA之间的映射关系。
映射数据接收器210可将从存储器装置接收的映射数据MAP_DATA输出到映射数据控制电路1050和/或缓冲存储器1020。具体地,映射数据接收器210可将映射数据MAP_DATA中包括的映射条目Mapping_ENT输出到映射数据控制电路1050和/或缓冲存储器1020。
在示例中,存储器控制器1000可不包括缓冲存储器1020。
当存储器控制器1000不包括缓冲存储器1020时,存储器控制器1000不存储映射条目Mapping_ENT,但可执行搜索具有相应的被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT的操作。因此,因为映射条目Mapping_ENT未存储在缓冲存储器1020中,所以存储器控制器1000的操作时间可减少用于存储映射条目Mapping_ENT的时间。
因此,当在映射数据MAP_DATA中包括的映射条目Mapping_ENT之中搜索到具有被请求逻辑块地址REQ_LBA的映射条目Mapping_ENT时,存储器控制器1000的操作时间可仅包括用于搜索该映射条目的时间。因此,存储器控制器1000的操作时间可以是除去存储映射条目Mapping_ENT的时间的时间。因为存储器控制器1000的操作时间是用于搜索映射条目的时间,所以存储器控制器1000的操作时间可以是可变的。
在示例中,处理器1010可通过使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在示例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传送数据,控制总线可被配置成在存储器控制器1000中传送诸如命令和地址的控制信息。数据总线和控制总线彼此分离,并且不会彼此干扰或影响。数据总线可联接到主机接口1040、映射数据控制电路1050、ECC电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、映射数据控制电路1050、缓冲存储器1020和存储器接口1060。
图18是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
参照图18,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成驱动固件以用于控制存储器装置2200。存储器装置2200可与参照图10描述的存储器装置100相同地实施。
在示例中,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可根据特定通信协议与外部装置(例如,主机)通信。在示例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
在示例中,存储器装置2200可利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以构成存储卡。例如,存储器控制器2100和存储器装置2200可构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图19是示意性地示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
参照图19,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可用作参照图1描述的存储器控制器200。
SSD控制器3210可响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在示例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种来限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
辅助电源3230通过电源连接器3002联接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可提供SSD 3200的电力。在示例中,辅助电源3230可位于SSD 3200中,或者位于SSD 3200的外部。例如,辅助电源3230可位于主板上,并且向SSD 3200提供辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器操作。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图20是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
参照图20,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可驱动包括在用户系统4000中的组件、操作系统(OS)、用户程序等。在示例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器操作。存储器模块4200可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。在示例中,应用处理器4100和存储器模块4200可通过基于堆叠封装(PoP)进行封装而被设置为一个半导体封装。
网络模块4300可与外部装置通信。在示例中,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和Wi-Fi的无线通信。在示例中,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将所存储的数据传送到应用处理器4100。在示例中,存储模块4400可利用诸如以下的非易失性半导体存储器装置实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。在示例中,存储模块4400可被设置为可移动驱动器,诸如用户系统4000的存储卡或外部驱动器。
在示例中,存储模块4400可包括多个非易失性存储器装置,并且多个非易失性存储器装置可与参照图9描述的存储器装置相同地操作。存储模块4400可与参照图1描述的存储装置50相同地操作。
用户接口4500可包括用于向应用处理器4100输入数据或命令,或用于将数据输出到外部装置的接口。在示例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,可提供一种具有提高的操作速度的存储器控制器及其操作方法。
虽然已参照本公开的某些示例性实施例示出和描述了本公开,但本领域技术人员将理解的是,在不脱离由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可在形式和细节上进行各种改变。因此,本公开的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求确定,而且还应当由所附权利要求的等同方案确定。
在上述实施例中,可选择性地执行所有步骤或可省略步骤中的部分。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可重新进行排列。本说明书和附图中公开的实施例仅是帮助理解本公开的示例,并且本公开不限于此。也就是说,对于本领域技术人员显而易见的是,可基于本公开的技术范围进行各种修改。
同时,已在附图和说明书中描述了本公开的示例性实施例。虽然此处使用了特定的术语,但这些术语仅用于描述本公开的实施例。因此,本公开不限于上述实施例,并且在本公开的实质和范围内可进行许多变化。对于本领域技术人员显而易见的是,除本文公开的实施例之外,还可基于本公开的技术范围进行各种修改。
应当理解的是,本文描述的基本发明构思的许多变化和修改将仍然落入所附权利要求及其等同方案所限定的本公开的精神和范围内。
Claims (20)
1.一种存储器控制器,所述存储器控制器响应于来自主机的请求而控制存储器装置,所述存储器控制器包括:
处理器,驱动固件以控制所述主机与所述存储器装置之间的通信;
映射数据接收器,在所述处理器的控制下,从所述存储器装置接收映射数据以用于待对所述存储器装置执行的操作,所述映射数据包括多个映射条目,所述映射条目包括物理块地址;以及
映射数据控制器,检测从所述映射数据接收器接收的对应于所述请求的映射条目,窥探所检测到的映射条目并且将所检测到的映射条目输出到所述处理器。
2.根据权利要求1所述的存储器控制器,进一步包括缓冲存储器,所述缓冲存储器存储从所述映射数据接收器接收的所述映射数据。
3.根据权利要求1所述的存储器控制器,其中所述映射数据控制器包括:
映射条目存储装置,存储从所述映射数据接收器接收的所述多个映射条目;
被请求逻辑块地址存储装置,存储被请求逻辑块地址;以及
比较器,将所述被请求逻辑块地址与所述多个映射条目进行比较,以检测对应于所述请求的映射条目。
4.根据权利要求3所述的存储器控制器,其中所述比较器将所述多个映射条目之中的对应于所述被请求逻辑块地址的映射条目作为对应于所述请求的映射条目输出到所述处理器。
5.根据权利要求3所述的存储器控制器,其中当以多个的形式提供所述被请求逻辑块地址时,所述比较器将所述多个被请求逻辑块地址中的每个与所述多个映射条目中的每个进行比较。
6.根据权利要求5所述的存储器控制器,其中所述比较器从所述映射条目存储装置接收新映射条目,直到接收到对应于所述多个被请求逻辑块地址的所有映射条目。
7.根据权利要求5所述的存储器控制器,其中所述比较器:
向所述处理器输出所述多个映射条目之中的、与所述多个被请求逻辑块地址中的任意一个相对应的任意一个映射条目;并且
向所述被请求逻辑块地址存储装置输出中断信号,所述中断信号表示已输出所述多个映射条目之中的、与所述多个被请求逻辑块地址中的任意一个相对应的任意一个映射条目。
8.根据权利要求7所述的存储器控制器,其中所述被请求逻辑块地址存储装置向所述比较器输出所述多个被请求逻辑块地址之中的、除了对应于所述中断信号的被请求逻辑块地址之外的其它被请求逻辑块地址。
9.根据权利要求5所述的存储器控制器,其中当所述多个映射条目之中的任意一个映射条目对应于所述多个被请求逻辑块地址之中的任意一个被请求逻辑块地址时,所述比较器存储所述多个映射条目之中的所述一个映射条目。
10.根据权利要求9所述的存储器控制器,其中所述比较器存储与所述多个映射条目之中的对应于所述多个被请求逻辑块地址中的每个的任意一个映射条目相对应的所有映射条目,并且向所述处理器输出与所述多个映射条目之中的所述一个映射条目相对应的映射条目。
11.根据权利要求5所述的存储器控制器,其中当所述多个被请求逻辑块地址是连续条目,并且所述连续条目之中的第一条目对应于所述多个映射条目之中的任意一个映射条目时,所述比较器输出所述多个映射条目之中的所述一个映射条目,然后连续输出数量对应于所述多个被请求逻辑块地址的数量的映射条目。
12.根据权利要求2所述的存储器控制器,
进一步包括通道,所述映射数据接收器和所述缓冲存储器通过所述通道彼此联接,
其中所述映射数据接收器通过所述通道将所述映射数据传送到所述缓冲存储器,并且
其中所述映射数据控制器接收通过所述通道传送的所述映射数据,以检测对应于所述请求的映射条目。
13.一种操作存储器控制器的方法,所述存储器控制器响应于来自主机的请求而控制存储器装置,所述方法包括:
从所述存储器装置接收映射数据以用于待对所述存储器装置执行的操作,所述映射数据包括多个映射条目,所述映射条目包括物理块地址;
检测所述多个映射条目之中的对应于所述请求的映射条目;并且
窥探所检测到的映射条目并且将所检测到的映射条目输出到所述存储器控制器中包括的处理器。
14.根据权利要求13所述的方法,其中在输出所述映射条目中,将所述多个映射条目之中的对应于被请求逻辑块地址的映射条目作为对应于所述请求的映射条目输出。
15.根据权利要求13所述的方法,其中输出所述映射条目包括:当以多个的形式提供所述被请求逻辑块地址时,将所述多个被请求逻辑块地址中的每个与所述多个映射条目中的每个进行比较。
16.根据权利要求15所述的方法,进一步包括输出中断信号,所述中断信号表示已输出对应于一个被请求逻辑块地址的映射条目。
17.根据权利要求16所述的方法,进一步包括:
将所述多个被请求逻辑块地址与所述多个映射条目之中的任意一个映射条目进行比较,然后接收所述多个映射条目之中的新映射条目;并且
接收所述多个被请求逻辑块地址之中的、除了对应于所述中断信号的所述一个被请求逻辑块地址之外的其它被请求逻辑块地址。
18.根据权利要求15所述的方法,进一步包括:当一个映射条目对应于所述多个被请求逻辑块地址之中的任意一个被请求逻辑块地址时,存储相应的映射条目。
19.根据权利要求18所述的方法,进一步包括:当存储了分别对应于所述多个被请求逻辑块地址的所有映射条目时,输出相应的映射条目。
20.一种存储器控制器的操作方法,所述操作方法包括:
高速缓存从存储器装置提供的多个映射条目,每个映射条目表示逻辑地址与物理地址之间的映射关系;
在所述高速缓存期间,窥探被高速缓存的所述映射条目;
在所述高速缓存期间,检测所窥探的映射条目之中的、具有从主机提供的被请求逻辑地址的映射条目;并且
响应于与所述被请求逻辑地址一起从所述主机提供的请求,控制所述存储器装置以根据所检测到的映射条目来执行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0012845 | 2019-01-31 | ||
KR1020190012845A KR20200095130A (ko) | 2019-01-31 | 2019-01-31 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506515A true CN111506515A (zh) | 2020-08-07 |
CN111506515B CN111506515B (zh) | 2023-11-03 |
Family
ID=71836558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910975922.7A Active CN111506515B (zh) | 2019-01-31 | 2019-10-15 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11886361B2 (zh) |
KR (1) | KR20200095130A (zh) |
CN (1) | CN111506515B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200095130A (ko) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11307771B2 (en) | 2020-07-10 | 2022-04-19 | Micron Technology, Inc. | Configurable link interfaces for a memory device |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070813A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
US20140047210A1 (en) * | 2012-08-08 | 2014-02-13 | Lsi Corporation | Trim mechanism using multi-level mapping in a solid-state media |
CN106294215A (zh) * | 2015-06-24 | 2017-01-04 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
US20170024127A1 (en) * | 2015-07-24 | 2017-01-26 | Sandisk Technologies Inc. | Optimistic read operation |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
CN108701086A (zh) * | 2016-03-02 | 2018-10-23 | 英特尔公司 | 用于通过重新映射地址空间来提供连续可寻址存储器区域的方法和设备 |
CN108780423A (zh) * | 2016-03-22 | 2018-11-09 | 英特尔公司 | 多级存储器管理 |
CN108804023A (zh) * | 2017-04-28 | 2018-11-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109074228A (zh) * | 2016-04-14 | 2018-12-21 | 桑迪士克科技有限责任公司 | 用于对在主机存储器缓冲区中损坏的数据进行恢复的存储系统和方法 |
CN109213705A (zh) * | 2017-07-07 | 2019-01-15 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
KR20150015764A (ko) | 2013-08-01 | 2015-02-11 | 삼성전자주식회사 | 스토리지 디바이스 및 이를 포함하는 스토리지 시스템 |
KR20180049338A (ko) | 2016-10-31 | 2018-05-11 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
TWI700635B (zh) * | 2018-04-26 | 2020-08-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US10922017B2 (en) * | 2018-08-07 | 2021-02-16 | Micron Technology, Inc. | Memories for reading data corresponding to multiple addresses associated with a read command |
KR20200095130A (ko) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2019
- 2019-01-31 KR KR1020190012845A patent/KR20200095130A/ko unknown
- 2019-09-09 US US16/564,898 patent/US11886361B2/en active Active
- 2019-10-15 CN CN201910975922.7A patent/CN111506515B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070813A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
US20140047210A1 (en) * | 2012-08-08 | 2014-02-13 | Lsi Corporation | Trim mechanism using multi-level mapping in a solid-state media |
CN106294215A (zh) * | 2015-06-24 | 2017-01-04 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
US20170024127A1 (en) * | 2015-07-24 | 2017-01-26 | Sandisk Technologies Inc. | Optimistic read operation |
CN108701086A (zh) * | 2016-03-02 | 2018-10-23 | 英特尔公司 | 用于通过重新映射地址空间来提供连续可寻址存储器区域的方法和设备 |
CN108780423A (zh) * | 2016-03-22 | 2018-11-09 | 英特尔公司 | 多级存储器管理 |
CN109074228A (zh) * | 2016-04-14 | 2018-12-21 | 桑迪士克科技有限责任公司 | 用于对在主机存储器缓冲区中损坏的数据进行恢复的存储系统和方法 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
CN108804023A (zh) * | 2017-04-28 | 2018-11-13 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109213705A (zh) * | 2017-07-07 | 2019-01-15 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
Non-Patent Citations (2)
Title |
---|
AWAD A: "Silent shredder: Zero-cost shredding for secure non-volatile main memory controllers", 《ACM SIGPLAN NOTICES》, pages 263 - 276 * |
彭灿灿: "SDN控制器集群下分布式缓存系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 12, pages 138 - 351 * |
Also Published As
Publication number | Publication date |
---|---|
CN111506515B (zh) | 2023-11-03 |
KR20200095130A (ko) | 2020-08-10 |
US11886361B2 (en) | 2024-01-30 |
US20200250113A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11137912B2 (en) | Memory controller and method of operating the same | |
US11256614B2 (en) | Memory controller for allocating logical address and method of operating the same | |
CN110287130B (zh) | 存储装置及其操作方法 | |
US10910045B2 (en) | Storage device having improved cache performance and method of operating the same | |
CN114267392A (zh) | 存储器控制器、存储装置及其操作方法 | |
CN111435289A (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN111444115A (zh) | 存储装置及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN111208937B (zh) | 存储器控制器及其操作方法 | |
CN112783432A (zh) | 存储装置和其操作方法 | |
CN110827873B (zh) | 存储器控制器 | |
CN111338979A (zh) | 存储器控制器及其操作方法 | |
CN111258931A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN114115708A (zh) | 存储装置及其操作方法 | |
CN111312305A (zh) | 存储装置及其操作方法 | |
CN111210862A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
US20220122670A1 (en) | Memory device and method of operating the same | |
KR20190125859A (ko) | 저장 장치 및 그 동작 방법 | |
CN110648698A (zh) | 储存装置、存储器件及操作该存储器件的方法 | |
US11688464B2 (en) | Storage device and method of operating the same | |
CN111580743B (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 |