CN113093988A - 包括存储器控制器的存储装置 - Google Patents

包括存储器控制器的存储装置 Download PDF

Info

Publication number
CN113093988A
CN113093988A CN202010880456.7A CN202010880456A CN113093988A CN 113093988 A CN113093988 A CN 113093988A CN 202010880456 A CN202010880456 A CN 202010880456A CN 113093988 A CN113093988 A CN 113093988A
Authority
CN
China
Prior art keywords
core
logical address
memory
memory device
request
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
Application number
CN202010880456.7A
Other languages
English (en)
Inventor
梁承元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113093988A publication Critical patent/CN113093988A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种具有提高的可靠性和性能的存储器控制器。该存储器控制器控制存储器装置的操作。存储器控制器包括:第一内核,用于从主机接收写入请求和与该写入请求相对应的第一逻辑地址;以及第二内核,用于将第二逻辑地址转换成表示存储器装置中包括的存储器单元的位置的物理地址。第一内核执行逻辑地址处理操作,将第一逻辑地址转换成具有与第二逻辑地址的大小相对应的大小的逻辑地址。

Description

包括存储器控制器的存储装置
相关申请的交叉引用
本专利文件要求于2019年12月23日提交的申请号为10-2019-0173295的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
所公开技术的示例性实施例总体涉及一种电子装置,并且更特别地,涉及一种包括存储器控制器的存储装置。
背景技术
存储装置指代用于永久或临时存储数据的电子组件。每个存储装置可包括一个或多个存储介质来存储数据,并且可进一步包括被配置成控制存储器装置以存储或检索数据的存储器控制器。存储器装置是一种使用诸如硅(Si)、锗(Ge)、砷化镓(GaAs)或磷化铟(InP)的半导体来实施的存储器装置。可基于存储介质的类型对存储装置进行分类。例如,硬盘驱动器(HDD)使用磁盘作为存储介质,并且固态驱动器(SSD)或存储卡使用诸如易失性存储器装置和非易失性存储器装置的半导体存储器装置作为存储介质。
易失性存储器装置是一种仅在供电时才能保留其数据的存储器装置。因此,这种易失性存储器装置会在没有电力的情况下丢失其数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等。
另一方面,非易失性存储器装置是一种即使在没有电力的情况下也能保留数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。闪速存储器通常被分类为NOR型闪速存储器和NAND型闪速存储器。
为了确保存储装置中存储的数据的可靠性,当对存储装置的电力供应异常时,在该存储装置中执行保护操作。
发明内容
所公开技术的各个实施例提供了一种性能提高的存储器控制器和包括该存储器控制器的存储装置。
根据本公开的一个方面,提供了一种存储器控制器,用于控制存储器装置的操作,该存储器控制器包括:第一内核,被配置成从主机接收请求,并且执行将第一逻辑地址转换成具有第二大小的第二逻辑地址的逻辑地址处理操作,其中所接收到的每个请求具有与从主机请求的数据相关联并且具有第一大小的相应第一逻辑地址,第二大小不同于第一大小;以及第二内核,被配置成将第二逻辑地址转换成待向其写入数据或待从其读取数据的物理地址,该物理地址表示存储器装置中包括的存储器单元的位置。
根据本公开的另一方面,提供了一种存储器控制器,用于控制存储器装置的操作,该存储器控制器包括:第一内核,被配置成从主机接收从存储器装置读取数据或将数据写入存储器装置的请求,并且检测电力小于正常电力状态的电力的异常电力状态并向第二内核通知该异常电力状态,所接收到的每个请求包括具有第一大小的相应第一逻辑地址,第一逻辑地址可转换为具有第二大小的第二逻辑地址,第二大小不同于第一大小;存储区域,被配置成存储元数据,该元数据包括物理地址与第一逻辑地址和第二逻辑地址中的至少一个之间的转换关系,该物理地址表示存储器装置中包括的存储器单元的位置;以及第二内核,被配置成响应于异常电力状态而将元数据存储在存储器装置中,使得该元数据先于与请求相关联的数据被存储。
根据本公开的另一方面,提供了一种存储装置,包括存储器装置和用于控制该存储器装置的操作的存储器控制器,该存储装置包括:存储器控制器,包括第一内核和第二内核,第一内核被配置成从主机一起接收请求,该请求具有分别对应于该请求的第一逻辑地址,并且第二内核被配置成获得对应于该第一逻辑地址的物理地址,该物理地址表示存储器装置中从其读取或向其写入与请求相关联的数据的区域的位置;缓冲存储器,被配置成存储待存储在存储器装置中或待从存储器装置中读取的数据;以及存储器装置,被配置成响应于从存储器控制器接收的命令而操作,其中,响应于检测到异常电力状态,第二内核被配置成取消正由存储器装置执行的操作,并且执行另一操作以将用于获得物理地址的映射信息存储在存储器装置中,并且第一内核被配置成确定在映射信息存储在存储器装置中的同时,是否已从主机接收到请求中具有相同第一逻辑地址的任意两个请求。
附图说明
现在将参照附图在下文中更全面地描述示例实施例;然而,示例实施例可以不同的形式来实现,并且不应被解释为限于本文所阐述的实施例。相反,提供这些实施例以使本公开将是彻底且完全的,并且将向本领域技术人员充分传达示例实施例的范围。
在附图中,为了说明清楚,尺寸可能会夸大。相同的附图标记始终指代相同的元件。
图1是示出根据所公开技术的实施例的存储装置的框图的示例。
图2是示出根据所公开技术的实施例的第一内核和第二内核的操作的框图的示例。
图3是示出根据所公开技术的实施例的第一内核和第二内核的配置的框图的示例。
图4是示出基于所公开技术的一个实施例的第一内核的操作的示图的示例。
图5是示出根据所公开技术的实施例的PLP信息的示例的示图的示例。
图6是详细示出第二内核的操作的示图的示例。
图7是示出转储控制器的操作的示图的示例。
图8是示出根据所公开技术的实施例的第一内核和第二内核的配置的框图的示例。
图9是示出第一内核执行逻辑地址处理操作和重复请求检查操作的情况的流程图的示例。
图10是示出第二内核的操作的流程图的示例。
图11是示出第一内核和第二内核的操作的流程图的示例。
图12是示出根据所公开技术的实施例的存储器装置的示图的示例。
图13是示出图1所示的存储器控制器的另一实施例的示图的示例。
图14是示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的存储卡系统的框图的示例。
图15是示例性地示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的固态驱动器(SSD)系统的框图的示例。
图16是示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的用户系统的框图的示例。
具体实施方式
本文所公开的结构或功能特征的具体示例仅是为了描述所公开技术的实施例或实施方案的目的而进行说明的。除了本文所提供的具体示例之外,所公开技术可以各种形式或配置来实施。
在下文中,将参照附图详细描述所公开技术的示例性实施例。
图1是示出根据所公开技术的实施例的存储装置的框图的示例。
参照图1,存储装置50可包括存储器装置100和被配置成控制存储器装置100的操作的存储器控制器200。存储器控制器200可包括第一内核210和第二内核220。
存储装置50可以是用于在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。
存储装置50可被实施为根据作为与主机300的通信方案的主机接口在控制下存储数据的各种适当类型的存储装置中的任意一种。在一些实施方案中,主机300可包括主机装置,该主机装置包括主机接口。在一些实施方案中,存储装置50可利用诸如以下的多种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、记忆棒等。
存储装置50可以是或具有各种封装类型中的任意一种。例如,存储装置50可被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100可在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。
存储器单元中的每一个可被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器单元阵列可包括多个存储块。存储块中的每一个可包括多个存储器单元。一个存储块可包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为便于描述,假设并描述了存储器装置100是NAND闪速存储器的情况。
存储器装置可从存储器控制器200接收命令和地址。存储器装置100访问存储器单元阵列中由所接收的地址选择的区域。访问所选择的区域可意为对所选择的区域执行与所接收的命令相对应的操作。例如,存储器装置100可执行写入(编程)操作、读取操作和擦除操作。在编程操作中,存储器装置可将数据编程在由地址选择的区域中。在读取操作中,存储器装置100可从由地址选择的区域读取数据。在擦除操作中,存储器装置100可擦除存储在由地址选择的区域中的数据。
存储器控制器200可控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可运行固件(FW)。该FW可包括接收从主机300输入的请求或者向该主机输出响应的主机接口层(HIL)、管理主机300的接口与存储器装置100的接口之间的操作的闪存转换层(FTL)以及向存储器装置100提供命令或者从存储器装置100接收响应的闪存接口层(FIL)。
在实施例中,存储器控制器200可从主机300接收数据和逻辑地址(LA),并且将该LA转换成物理地址(PA),该物理地址表示存储器装置100中包括的数据待存储的存储器单元的地址。LA可以是逻辑块地址(LBA),并且PA可以是物理块地址(PBA)。
存储器控制器200可响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可向存储器装置100提供编程命令、PBA和数据。在读取操作中,存储器控制器200可向存储器装置100提供读取命令和PBA。在擦除操作中,存储器控制器200可向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可控制存储器装置100自主地执行编程操作、读取操作或擦除操作,而不管来自主机300的任何请求。例如,存储器控制器200可控制存储器装置100执行编程操作、读取操作、擦除操作或其它操作,用于执行诸如损耗均衡、垃圾收集或读取回收的后台操作。
参照图1,存储器控制器200可包括第一内核210和第二内核220。第一内核210和第二内核220可彼此独立地执行操作。当彼此独立地执行操作时,第一内核210和第二内核220可交换关于存储器控制器200的操作的进展状态的信息。
例如,第一内核210可从主机300接收请求,或者执行与向主机输出响应的HIL相对应的操作。在一些实施方案中,第二内核220可执行与管理主机300的接口和存储器装置100的接口之间的操作的FTL相对应的操作。在一些实施方案中,第二内核220可进一步执行与向存储器装置100提供命令或者接收来自存储器装置100的响应的FIL相对应的操作。
存储装置50可从外部供应电力。在一些情况下,由于各种原因,供应到存储装置50的电力的状态可能异常。当供应到存储装置50的电力中断时,可能发生电力的异常状态。可选地,当将大小小于正常电力的大小的电力供应到存储装置50时,可能发生电力的异常状态。可将电力的异常状态定义为突然断电(在下文中,称为“SPO”)。存储器控制器200可检测SPO,并且通过在存储装置50中使用辅助电力来执行断电保护(在下文中,称为“PLP”)操作。当检测到SPO时,可在存储器控制器200和存储器装置100中执行PLP操作。PLP操作可包括取消当前正由存储器装置100执行的操作的操作或将数据存储在存储器装置100中的转储操作中的至少一种。可在供应辅助电力的同时执行转储操作以存储数据,直到完全断电为止。待存储在存储器装置100中的数据可包括从主机300接收的与其命令/请求相关联的数据和/或包括逻辑地址与物理地址之间的映射信息的元数据。在一些实施方案中,元数据可临时存储在存储装置50或存储器控制器200中包括的缓冲存储器中。元数据可包括表示LA和PA之间的转换关系的映射信息,该映射信息是将数据存储在存储器装置100中或读取存储器装置100中存储的数据所需要的,因此需要元数据的高可靠性。因此,在一些实施方案中,包括映射信息的元数据可先于与从主机300接收的写入请求相关联的数据存储在存储器装置100中。
当检测到SPO时,第一内核210和第二内核220可执行用于确保数据可靠性的操作。
在各个实施例中,第一内核210可对与从主机300接收的写入请求相关联的数据执行操作,而第二内核220可执行转储操作以将元数据存储在存储器装置100中。
例如,主机300所使用的数据的地址系统可不同于第二内核220所使用的数据的地址系统。这是因为由主机300处理的数据的逻辑块大小可能不同于由第二内核220处理的数据的逻辑块大小。第一内核210可执行逻辑地址转换操作,以将从主机300传送的LA转换成具有与待由第二内核220使用的LA的大小相对应的大小的LA。从主机300传送的LA可被称为前LA。另外,由第二内核220使用的LA可被称为主LA。而且,当从主机300接收的请求之中存在尚未处理的请求时,或者当再次接收到针对相同LA的请求时,第一内核210可将先前接收的请求确定为不必要的请求。而且,第一内核210可执行取消用于先前接收的请求的资源的重复请求检查操作。与此相关的详细内容将参考稍后将描述的附图来描述。
主机300可使用诸如以下的各种通信方式中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
图2是示出根据所公开技术的实施例的第一内核和第二内核的操作的框图。
参照图2,主机300可向存储器控制器200发送请求和与该请求相关联的数据。从主机300接收的请求可包括写入请求或读取请求中的至少一种。在下文中,描述从主机300接收的请求是写入请求的情况作为示例。响应于从主机300接收写入请求,存储器控制器200可控制存储器装置100,使得从主机300接收的与该写入请求相关联的数据被存储在存储器装置100中。
存储器控制器200可包括第一内核210、第二内核220和缓冲存储器230。参照图2,示出了缓冲存储器230包括在存储器控制器200中的情况。在各个实施例中,缓冲存储器230可位于存储装置50的内部和存储器控制器200的外部。第一内核210和第二内核220可访问缓冲存储器230,并且通过使用各种方法来将数据临时存储在缓冲存储器230中或处理临时存储的数据。
在未检测到SPO的情况下,主机300可向存储器控制器200提供写入请求和与该写入请求相关联的数据。第一内核210可接收写入请求和数据,并且控制缓冲存储器230,使得数据被临时存储在该缓冲存储器230中。另外,可将从主机300接收的写入请求添加到第一内核210的队列(未示出)中。第一内核210的队列(未示出)可顺序地或根据预定规则来存储从主机300接收到的请求。将从主机300接收的多个请求添加到该队列(未示出),从而可快速提高存储装置50的响应速度。当第一内核210正常地从主机300接收写入请求和数据时,第一内核210可向第二内核220提供请求完成信息。第二内核220可从第一内核210接收该请求完成信息,并且执行用于执行来自主机300的写入请求的操作。例如,可将待提供到存储器装置100的命令添加到第二内核220的队列(未示出)。待提供到存储器装置100的命令可包括用于执行从主机300接收的写入请求的写入命令。除了从主机300接收的写入请求之外,待提供到存储器装置100的命令可包括用于执行后台操作的命令。与响应于从主机300输入的请求而执行的一般操作相比,后台操作使用的存储装置50或存储器控制器200的资源可能更少。例如,可将从主机300接收的逻辑地址转换成表示存储器装置100的存储位置的物理地址。本文所使用的映射信息可存储在缓冲存储器230的部分区域中。除了从主机300接收的写入请求之外,在执行后台操作的同时可能会连续地更新映射信息。因为更新后的映射信息是影响存储装置50的可靠性的重要因素,所以可周期性地或在特定时间将更新的映射信息提供到存储器装置100。用于将映射信息存储在存储器装置100中的命令也可包括在第二内核220的队列(未示出)中。第二内核220可提供写入命令,使得缓冲存储器230中临时存储的数据存储在存储器装置100中。响应于第二内核220的命令,存储器装置100可将缓冲存储器230中存储的数据存储在存储器装置100中对应于PA的存储块(或页面)中。
在检测到SPO的情况下,第一内核210可检测SPO,并且将该SPO通知到第二内核220。而且,第一内核210可检查从主机300正常接收的写入请求和数据,并且将该写入请求和数据添加到第一内核210的队列(未示出)。另外,可将第一内核210的元数据进一步添加到第一内核210的队列(未示出)。第一内核210的元数据可以是关于在第一内核210的操作中使用的固件的数据。而且,第一内核210可向第二内核220提供第一内核210的队列(未示出)中包括的信息。在一些实施方案中,可将第一内核210的队列中包括的所有信息提供到第二内核220。
在实施例中,在检测到SPO之后,第一内核210可执行逻辑地址转换操作和/或重复请求检查操作。例如,第一内核210可执行逻辑地址转换操作,将从主机300接收的逻辑地址转换成大小与待由第二内核220使用的逻辑地址的大小相对应的逻辑地址。在一些实施方案中,第一内核210可执行重复请求检查操作,确定来自主机300的任意两个请求是否已经针对相同的逻辑地址做出,并且如果已经从主机300接收到的当前请求具有与先前请求的逻辑地址相同的逻辑地址,则取消用于先前请求的资源。例如,当主机300向存储器控制器200提供针对相同逻辑地址的写入请求之后,主机300向存储器控制器200提供针对特定逻辑地址的写入请求时,先前的写入请求可被认为是不必要的。因此,第一内核210可确定先前的写入请求是不必要的,并且释放针对先前的写入请求分配的资源。通过释放资源,将先前的写入请求作为无效请求处理。在这种情况下,控制缓冲存储器230,使得缓冲存储器230中被分配用于先前的写入请求以存储相关联数据的区域变得可用于与另一请求相关联的另一数据。可改变逻辑地址转换操作和重复请求检查操作的顺序。因此,可首先执行重复请求检查操作,然后可执行逻辑地址转换操作。
在实施例中,第一内核210可通知第二内核220已检测到SPO,并且第二内核220可响应于SPO的检测来执行PLP操作。在一些实施方案中,在PLP操作期间,存储器装置100可取消至少一些当前正在执行的操作。例如,假设存储器装置100当前正在执行存储从主机300接收的与写入请求相关联的数据和包括映射信息的元数据的操作。存储器装置100可取消当前操作,而不是取消将包括映射信息的元数据存储在存储器装置中的操作。存储包括映射信息的元数据的操作被称为转储操作。根据数据的量,执行转储操作所需的时间可能会延长或缩短。在实施例中,在第二内核220正执行PLP操作的同时,第一内核210可执行逻辑地址转换操作和重复请求检查操作中的至少一种。因为由第一内核210和第二内核220执行的操作彼此不同,因此第一内核210和第二内核220可同时操作,这提高了在紧急情况下的处理效率。
第一内核210可向第二内核220提供指示逻辑地址转换操作和重复请求检查操作的状态的PLP信息“PLP_Info”。第二内核220可接收PLP信息“PLP_Info”,并且基于所接收的PLP信息来确定第一内核210是否已完成逻辑地址转换操作和重复请求检查操作。当PLP信息“PLP_Info”表示第一内核210尚未完成逻辑地址转换操作和重复请求检查操作中的至少一种时,第二内核220可执行尚未完成的相应操作。随后,第二内核220可将逻辑地址转换成物理地址。而且,第二内核220可向存储器装置提供写入命令和与该写入命令相关联的数据,使得缓冲存储器230中存储的数据存储在对应于物理地址的存储块(或页面)中。
在另一实施例中,第一内核210可在第二内核220执行PLP操作的同时执行逻辑地址操作和重复请求检查操作,并且第一内核210可将逻辑地址转换成物理地址。当第一内核210将逻辑地址转换成物理地址时,第一内核210可通知第二内核220逻辑地址已转换成物理地址。
图3是示出根据所公开技术的实施例的第一内核和第二内核的配置的框图。
参照图3,第一内核210可包括SPO检测器211、第一PLP管理器212、逻辑地址处理器213、重复请求检查器214和第一内核队列215。
SPO检测器211可检测表示异常电力状态的SPO。而且,SPO检测器211可向第二内核220提供表示已通过第一PLP管理器212检测到SPO的SPO信息“SPO_detect”。
第一PLP管理器212可联接到逻辑地址处理器213和重复请求检查器214。第一PLP管理器212可控制逻辑地址处理器213的操作,并且接收表示逻辑地址转换操作是否已完成的信息。第一PLP管理器212可控制重复请求检查器214的操作,并且接收表示重复请求检查操作是否已完成的信息。第一队列215包括从主机300接收的请求,并且第一PLP管理器212可向第二内核220提供第一内核队列215中包括的请求。第一PLP管理器212可向第二内核220提供表示逻辑地址处理器213和重复请求检查器214的操作结果的PLP信息“PLP_Info”。
逻辑地址处理器213可执行逻辑地址转换操作,将从主机接收到的逻辑地址的大小转换为对应于第二内核220使用的逻辑地址的大小。而且,逻辑地址处理器213可向第一PLP管理器212提供表示逻辑地址转换操作是否已完成的信息。
重复请求检查器214可执行重复请求检查操作,确定是否已经从主机接收到具有相同逻辑地址的任意两个请求,并且如果已经从主机接收到的当前请求具有与先前请求的逻辑地址相同的逻辑地址,则释放用于先前请求的资源。而且,重复请求检查器214可向第一PLP管理器212提供表示重复请求检查操作是否已完成的信息。
第一内核队列215可包括从主机接收到的请求。可顺序地或根据预定规则将从主机接收到的请求添加到第一内核队列215。可顺序地或根据预定规则来执行被添加到第一内核队列215的请求。将从主机接收到的一个或多个请求添加到第一内核队列215,从而可快速提高存储装置50的响应速度。
第二内核220可包括转储控制器221、第二PLP管理器222、地址转换器223和第二内核队列224。
在提供辅助电力时,转储控制器221可执行将数据存储在存储器装置100中的转储操作。待存储在存储器装置100中的数据可包括与从主机接收的写入请求相关联的数据或包括映射信息的元数据。
第二PLP管理器222可从第一PLP管理器212接收SPO信息“SPO_detect”和PLP信息“PLP_Info”。第二PLP管理器222可接收SPO信息“SPO_detect”,并且控制转储控制器221的操作。第二PLP管理器222可控制地址转换器223的操作。第二PLP管理器222可向第二内核队列224添加请求,或者将请求作为无效请求来处理。例如,第二PLP管理器222响应于接收SPO信息“SPO_Info”,处理存储器装置100当前执行的请求。除了从主机接收到的请求之外,还可将用于将包括映射信息的元数据存储在存储器装置中的请求添加到第二内核队列224。另外,可将从第一内核215提供的请求添加到第二内核队列224。
图4是示出第一内核的操作的示图。
参照图4,存储器控制器200可包括第一内核210、第二内核220和缓冲存储器230。第一内核210可包括SPO检测器211、第一PLP管理器212、逻辑地址管理器213、重复请求检查器214和第一内核队列215。逻辑地址处理器213可包括块管理器216和块转换器217。第二内核220可包括第二PLP管理器222。示出了缓冲存储器230包括在存储器控制器200中的情况。在各个实施例中,缓冲存储器230可位于存储装置50的内部和存储器控制器200的外部。缓冲存储器230可以是易失性存储器。
SPO检测器211可检测表示异常电力状态的SPO。而且,SPO检测器211可向第二内核220提供表示已通过第一PLP管理器212检测到SPO的SPO信息“SPO_detect”。
第二PLP管理器222可接收SPO信息“SPO_detect”。另外,第二内核220可响应于SPO信息“SPO_detect”而执行PLP操作。PLP操作可包括取消正由存储器装置执行的操作的取消操作和将包括映射信息的元数据存储在存储器装置中的转储操作。在第二内核220执行PLP操作时,可在第一内核210中执行逻辑地址转换操作和重复请求检查操作。根据实施例,第一内核210和第二内核220可同时执行独立的操作。因此,当检测到SPO时,可在检测到SPO之后的较短时间内将元数据和与从主机接收到的写入请求相关联的数据存储在存储器装置中。根据实施例,因为在检测到SPO之后,第一内核210和第二内核220可同时执行独立的操作,所以可缩短供应辅助电力所需的时间。因此,仅使用辅助电源供应少量的辅助电力,就可确保数据的可靠性。
在一些实施方案中,第一PLP管理器212可控制逻辑地址处理器213的操作。块管理器216可确定从主机传送的逻辑地址的大小是否等于待由第二内核220使用的逻辑地址的大小。基于该确定,块管理器216控制逻辑地址处理器213是否执行逻辑地址转换操作。例如,与从主机提供的请求相对应的逻辑地址可具有512字节的大小,并且由第二内核220处理的逻辑地址可具有1千字节的大小。如示例中所描述的,当逻辑地址具有不同大小时,块管理器216可执行逻辑地址转换操作,以将从主机传送的逻辑地址转换成由第二内核220处理的相应逻辑地址。在另一示例中,从主机传送的逻辑地址的大小可等于由第二内核220处理的逻辑地址的大小。在这种情况下,可不执行逻辑地址转换操作。逻辑地址处理器213可向第一PLP管理器212提供逻辑地址块信息“blk_fin”,包括表示逻辑地址转换操作是否已完成的信息和表示逻辑地址的大小的信息中的至少一个。
第一PLP管理器212可控制重复请求检查器214的操作。重复请求检查器214可确定是否已接收到具有相同逻辑地址的请求。当确定已接收到具有相同逻辑地址的请求时,重复请求检查器214可执行重复请求检查操作,释放为先前接收的请求所分配的资源。将通过使用写入请求来更详细地描述释放资源的重复请求检查操作作为示例。当从主机输入具有相同逻辑地址的两个或更多个写入请求时,可确定先前的写入请求是不必要的。因此,可将先前的写入请求作为无效请求来处理。另外,可控制缓冲存储器230,使得其中已临时存储与先前的写入请求相对应的数据的区域可用于存储另一数据。当确定尚未从主机接收到具有相同逻辑地址的任意两个请求时,可不执行释放资源的重复请求检查操作。重复请求检查器214可向第一PLP管理器212提供表示重复请求检查操作是否已完成的重复请求信息“req_fin”。
第一PLP管理器212可向第二内核220提供SPO信息“SPO_detect”。第一PLP管理器212可向第二内核220提供第一内核队列215中包括的请求。第一PLP管理器212可向第二PLP管理器222提供PLP信息“PLP_info”。PLP信息PLP_info可包括逻辑地址块信息“blk_fin”,包括表示逻辑地址转换操作是否已完成的信息和表示逻辑地址的大小的信息中的至少一个。而且,PLP信息“PLP_info”可包括表示重复请求检查操作是否已完成的重复请求信息“req_fin”。
第二PLP管理器222可接收包括逻辑地址块信息“blk_fin”的PLP信息“PLP_info”。当PLP信息“PLP_info”中包括的逻辑地址块信息“blk_fin”表示逻辑地址转换操作已完成时,第二内核220可不执行逻辑地址转换操作。因此,第二内核220可确定第一内核210已执行了逻辑地址转换操作,并且跳过逻辑地址转换操作。同时,当PLP信息“PLP_info”中包括的逻辑地址块信息“blk_fin”表示逻辑地址转换操作尚未完成时,第二内核220可执行逻辑地址转换操作。因此,第二内核220可确定第一内核210尚未执行逻辑地址转换操作,并且执行逻辑地址转换操作。如上所述,第二内核220可首先确定从主机传送的逻辑地址的大小是否等于待由第二内核220使用的逻辑地址的大小。另外,第二内核220可执行逻辑地址转换操作,执行转换以将从主机传送的逻辑地址转换为由第二内核220处理的相应逻辑地址。当确定第一内核210尚未执行逻辑地址转换操作或者尚未完全执行逻辑地址转换操作时,第二内核220可执行逻辑地址处理器213的上述逻辑地址转换操作。
第二PLP管理器222可接收包括重复请求信息“req_fin”的PLP信息“PLP_info”。当PLP信息“PLP_info”中包括的重复请求信息“req_fin”表示重复请求检查操作已完成时,第二内核220可不执行重复请求检查操作。因此,第二内核220可确定第一内核210已执行了重复请求检查操作,并且跳过重复请求检查操作。同时,当PLP信息“PLP_info”中包括的重复请求信息req_fin表示重复请求检查操作尚未完成时,第二内核220可执行重复请求检查操作。因此,第二内核220可确定第一内核210尚未执行重复请求检查操作,并且执行重复请求检查操作。如上所述,第二内核220可首先确定是否已从主机接收到具有相同逻辑地址的任意两个或更多个请求。当确定已从主机输入了具有相同逻辑地址的任意两个或更多个请求时,第二内核220可执行重复请求检查操作,释放用于先前请求所分配的资源。如针对第一内核210的重复请求检查器214的情况所讨论的,第二内核220可将先前的写入请求作为无效请求来处理。而且,第二内核220可控制缓冲存储器230,使得其中与作为无效请求进行处理的先前的写入请求相对应的数据临时存储的区域被用于存储另一数据。当确定第一内核210尚未执行重复请求检查操作或者尚未完全执行重复请求检查操作时,第二内核220可执行重复请求检查器214的上述重复请求检查操作。
因此,第二内核220可基于确定第一内核210尚未执行或尚未完全执行逻辑地址转换操作和/或重复请求检查操作,选择性地执行逻辑地址转换操作或重复请求检查操作中的至少一种。
图5是示出根据所公开技术的实施例的PLP信息PLP_info的示例的示图。
PLP信息“PLP_info”可包括逻辑地址块信息“blk_fin”和重复请求信息“req_fin”中的至少一个
逻辑地址块信息“blk_fin”可包括表示逻辑地址转换操作是否已完成的信息和表示逻辑地址的大小的信息中的至少一个。如图5所示,第一标志“flag1”可表示逻辑地址转换操作是否已完成。例如,当第一标志“flag1”表示“0000”时,这表示逻辑地址转换操作已完成。第二内核可接收PLP信息“PLP_info”中包括的逻辑地址块信息“blk_fin”,并且确定是否执行逻辑地址转换操作。当逻辑地址块信息“blk_fin”表示第一内核尚未执行逻辑地址转换操作或尚未完全执行逻辑地址转换操作时,第二内核可执行逻辑地址转换操作。即使当逻辑地址块信息“blk_fin”表示第一内核尚未执行逻辑地址转换操作或尚未完全执行逻辑地址转换操作时,如果从主机传送的逻辑地址的大小等于待由第二内核使用的逻辑地址的大小,则第二内核可不执行逻辑地址转换操作。同时,当逻辑地址块信息“blk_fin”表示第一内核已执行逻辑地址转换操作时,第二内核不执行逻辑地址转换操作,而是可跳过逻辑地址转换操作。
重复请求信息“req_fin”可包括表示重复请求检查操作是否已完成的信息。如图5所示,第二标志“flag2”可表示重复请求检查操作是否已完成。例如,当第二标志“flag2”表示“1000”时,这可表示重复请求检查操作已完成。第二内核可接收PLP信息“PLP_info”中包括的重复请求信息“req_fin”,并且确定是否执行重复请求检查操作。当重复请求信息“req_fin”表示第一内核尚未执行重复请求检查操作或尚未完全执行重复请求检查操作时,第二内核可执行重复请求检查操作。
图6是详细示出第二内核的操作的示图。
参照图6,存储器控制器200可包括第一内核210、第二内核220和缓冲存储器230。第二内核220可包括转储控制器221、第二PLP管理器222、地址转换器223和第二内核队列224。
在一些实施方案中,第二PLP管理器222可从第一内核210接收SPO信息“SPO_detect”。第二PLP管理器222可响应于接收SPO信息“SPO_detect”而执行取消正由存储器装置100执行的操作的操作。随后,第二PLP管理器222可控制转储控制器221以执行转储操作。转储操作可包括在正供应辅助电力时和在完全中断电力之前将数据存储在存储器装置100中。待存储在存储器装置100中的数据可包括临时存储在缓冲存储器230中的元数据。该元数据可包括表示逻辑地址与物理地址之间的转换关系的映射信息。因为映射信息用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据,所以需要映射信息的高可靠性。因此,在感测或检测到SPO之后,虽然可取消正由存储器装置100执行的操作,但是可将包括映射信息的元数据存储在存储器装置100中。将元数据存储在存储器装置100中的优先级高于存储与来自主机的写入请求相关联的数据的优先级。与写入请求相关联的数据对应于已由主机请求以存储在存储器装置中的数据。当第二PLP管理器222和转储控制器221取消正由存储器装置100执行的操作使得元数据被存储在存储器装置100中时,第一内核210可执行在图4中描述的逻辑地址转换操作和重复请求检查操作中的至少一种。因此,第一内核210和第二内核220被配置成同时执行不同的操作。在一些实施方案中,第一内核210可向第二内核220提供PLP信息“PLP_info”。第二PLP管理器222可执行未通过第一内核210执行的其它操作。例如,当PLP信息“PLP_info”表示尚未执行或尚未完全执行逻辑地址转换操作时,第二PLP管理器222可执行该逻辑地址转换操作。在另一示例中,当PLP信息“PLP_info”表示尚未执行或尚未完全执行重复请求检查操作时,第二PLP管理器222可执行该重复请求检查操作。
当PLP信息“PLP_info”表示已执行了逻辑地址转换操作和重复请求检查操作两者时,第二PLP管理器222可控制地址转换器223将逻辑地址转换成物理地址。地址转换器223可通过使用缓冲存储器230中临时存储的映射信息来获取对应于逻辑地址的物理地址。而且,第二PLP管理器222可从第一内核210接收请求,并且将所接收到的请求添加到第二内核队列224。
在供应辅助电力的同时,转储控制器221可执行将数据存储在存储器装置100中的转储操作。包括映射信息的元数据可能已存储在存储器装置100中。在这种情况下,可执行存储与第二内核队列224中包括的请求相对应的数据的转储操作。因为逻辑地址转换操作和重复请求检查操作已完成,所以可快速执行转储操作。具体地,第二PLP管理器222和转储控制器221可执行与第二内核队列224中包括的请求相对应的操作。假设写入请求包括在第二内核队列224中的情况。转储控制器221可生成与写入请求相对应的写入命令。而且,转储控制器221可向存储器装置100提供写入命令和与该写入请求相关联并被临时存储在缓冲存储器230中的数据。另外,可将由地址转换器223转换的物理地址提供到存储器装置100。存储器装置100可接收写入命令、与写入请求相关联的数据和物理地址。存储器装置100可将数据存储在与物理地址相对应的存储块(或页面)中包括的存储器单元中。
图7是示出转储控制器的操作的示图。
参照图7,当转储控制器221接收到SPO的通知时,转储控制器221可生成取消命令使得存储器装置取消正在执行的操作,并且将所生成的取消命令提供到存储器装置。存储器装置接收到取消命令并挂起当前正在执行的操作。转储控制器221可生成写入命令使得元数据在与写入请求相关联的数据存储之前被存储在存储器装置中,并且将所生成的写入命令提供到存储器装置。存储器装置可接收写入命令和元数据,并且存储元数据。当存储器装置取消正在执行的操作并存储元数据时,图6所示的第一内核210可执行逻辑地址转换操作或重复请求检查操作。在元数据被存储之后,转储控制器221可生成表示元数据的存储已经完成的完成信息“meta_fin”。可将该完成信息“meta_fin”提供到图6所示的第一内核210。第一内核210可接收完成信息“meta_fin”,并且生成PLP信息“PLP_info”。第一内核210可接收完成信息“meta_fin”,并且生成表示逻辑地址转换操作或重复请求检查操作是否已完成的信息。
图8是示出根据所公开技术的实施例的第一内核和第二内核的配置的框图。
在图8中,省略了与图3中描述的内容相同或相应的内容,并且将主要描述与图3中描述的不同的部分。
参照图8,第一内核210可包括SPO检测器211、第一PLP管理器212、逻辑地址处理器213和第一内核队列215。第二内核220可包括转储控制器221、第二PLP管理器222、重复请求检查器214、地址转换器223和第二内核队列224。与图3中描述的部分不同的是,第一内核210中包括的重复请求检查器214在图8所示的实施例中包括在第二内核220中。
第一内核210中包括的逻辑地址处理器213可执行逻辑地址转换操作,将从主机传送的逻辑地址转换成大小与待由第二内核220使用的逻辑地址的大小相对应的逻辑地址。第二内核220可通知第一内核210将元数据存储在存储器装置中的转储操作已经完成。第一内核210可处于正在执行逻辑地址转换操作并且尚未执行重复请求检查操作的状态。第一内核210可向第二内核220提供表示正在执行逻辑地址转换操作并且尚未执行重复请求检查操作的PLP信息“PLP_info”。第二内核220可接收PLP信息“PLP_info”,并且检查到尚未执行重复请求检查操作。另外,第二内核220中包括的重复请求检查器214可执行重复请求检查操作。因此,第二内核220可执行重复请求检查操作,而第一内核210执行逻辑地址转换操作。根据实施例,第一内核210和第二内核220同时执行操作,因此在SPO发生后的较短时间内可将数据安全地存储在存储器装置中。
参照图8,示出第一内核210执行逻辑地址转换操作并且第二内核220执行重复请求检查操作的情况,但是可执行逻辑地址转换操作和重复请求检查操作,而不考虑它们的顺序。因此,第一内核210可包括重复请求检查器214,并且优先执行重复请求检查操作。因此,第二内核220可包括逻辑地址处理器213,并且执行逻辑地址转换操作。
图9是示出第一内核执行逻辑地址转换操作和重复请求检查操作的情况的流程图。
在步骤S910中,第一内核可检测SPO。第一内核可通知第二内核已检测到SPO。
在步骤S920中,第一内核可检查从主机正常接收的请求,并且将正常接收的请求添加到第一内核的队列。正常接收的请求可以是在检测到SPO之前接收到的请求。而且,第一内核可将第一内核的元数据添加到第一内核的队列。第一内核的元数据可包括关于用于第一内核的操作的固件的数据。
在步骤S930中,第一内核可确定主机的逻辑块大小和第二内核的逻辑块大小是否相同。也就是说,第一内核可确定主机使用的数据的地址系统和第二内核使用的数据的地址系统是否相同。当逻辑块大小不同时,第一内核可进行至步骤S940。当逻辑块大小相同时,第一内核可进行至步骤S950。
在步骤S940中,第一内核可转换逻辑块大小。也就是说,第一内核可执行逻辑地址转换操作,将从主机传送的逻辑地址转换成大小与待由第二内核使用的逻辑地址的大小相对应的逻辑地址。
在步骤S950中,第一内核可确定是否已从主机接收到具有相同逻辑地址的请求。第一内核可确定是否已从主机接收到具有相同逻辑地址的两个或更多个请求。当存在重复请求时,第一内核可进行至步骤S960。当不存在重复请求时,可不执行重复请求检查操作。
在步骤S960中,当已从主机接收到具有相同逻辑地址的两个或更多个请求时,第一内核可释放针对先前请求所分配的资源。在这种情况下,先前请求被认为是不必要的,并且作为无效请求进行处理。而且,控制缓冲存储器使得临时存储与作为无效请求处理的先前请求相对应的数据的区域被用于存储另一数据。
如上所述,步骤S930和S940可对应于逻辑地址转换操作。另外,步骤S950和S960可对应于重复请求检查操作。可改变逻辑地址转换操作和重复请求检查操作的顺序。因此,可在步骤S930和940之前执行步骤S950和S960。
图10是示出第二内核的操作的流程图。
在步骤S1010中,第二内核可从第一内核接收表示已检测到SPO的SPO信息。
在步骤S1020中,第二内核可取消当前正由存储器装置执行的操作。
在步骤S1030中,第二内核可向存储器装置提供元数据,使得元数据被存储在存储器装置中。元数据包括对存储器装置的操作至关重要的数据,并且需要确保元数据的可靠性。例如,元数据可包括映射信息。因为映射信息对存储器装置的操作至关重要,所以映射信息先于包括与来自主机的请求相关联的数据的其它数据存储在存储器装置中。因此,在步骤S1030中,可将包括映射信息的元数据提供到存储器装置。
在步骤S1040中,第二内核可从第一内核接收PLP信息“PLP_info”。PLP信息“PLP_info”可包括关于第一内核是否已执行逻辑地址转换操作或重复请求检查操作的信息。假设所接收到的PLP信息“PLP_info”表示第一内核已执行逻辑地址转换操作和重复请求检查操作二者的情况。
在步骤S1050中,第二内核可将从主机接收到的逻辑地址转换成相应的物理地址。物理地址可表示存储器装置中包括的存储器单元的位置。
在步骤S1060中,第二内核可将从第一内核接收到的请求添加到第二内核的队列。第二内核可响应于所添加的请求而控制存储器装置。例如,当所添加的请求是写入请求时,第二内核可向存储器装置提供写入命令、待存储的数据和物理地址。存储器装置可将数据存储在对应于物理地址的存储器单元中。
图11是示出第一内核和第二内核的操作的流程图。
在步骤S1101中,第一内核可检测SPO。
在步骤S1102中,第一内核可通知第二内核已检测到SPO。在一些实施方案中,第一内核可向第二内核提供表示已检测到SPO的信息。
在步骤S1103中,第一内核可将从主机接收的请求以及元数据添加到第一内核的队列。元数据可包括关于第一内核的固件的数据。
在步骤S1104中,第一内核可将从主机接收到的块大小转换为对应于第二内核使用的块大小。第一内核可转换逻辑地址大小,使得主机使用的逻辑地址的大小与第二内核使用的逻辑地址的大小相同。在一些其它实施例中,可由第二内核执行步骤S1104。
在步骤S1105中,第一内核可检查是否已从主机接收到具有相同逻辑地址的两个或更多个请求,并且如果存在具有相同逻辑地址的两个或更多个请求,则释放分配给先前请求的资源。第一内核可将先前请求作为无效请求来处理,并且控制缓冲存储器,使得临时存储与先前请求相对应的数据的区域用于存储另一数据。在一些其它实施例中,可由第二内核执行步骤S1105。
在步骤S1106中,第二内核可取消正由存储器装置执行的操作。
在步骤S1107中,第二内核可向存储器装置提供写入命令,以存储包括映射信息的元数据。
在步骤S1108中,第一内核可向第二内核提供PLP信息“PLP_info”。PLP信息“PLP_info”可包括关于是否已执行步骤S1104和S1105的信息。
在步骤S1109中,第一内核可向第二内核提供第一内核的队列中包括的请求。
在步骤S1110中,第二内核可从第一内核接收请求,并且将所接收到的请求添加到第二内核的队列。
图12是示出根据所公开技术的实施例的存储器装置100的示图。
参照图12,存储器装置100可包括存储器单元阵列100、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到行解码器121。多个存储块BLK1至BLKz通过位线BL1至BLn联接到页面缓冲器组123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。联接到相同字线的存储器单元可被定义为一个页面。也就是说,存储器单元阵列110由多个物理页面来配置。因此,一个存储块可包括多个页面。
存储器单元阵列110中包括的存储器单元中的每一个可被配制为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
外围电路120可在控制逻辑130的控制下对存储器单元阵列110中所选择的区域执行编程操作、读取操作或擦除操作。外围电路120可驱动存储器单元阵列110。例如,外围电路120可在控制逻辑130的控制下将各种操作电压施加到行线RL和位线BL1至BLn或者将所施加的电压进行放电。
外围电路120可包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125及感测电路126。
外围电路120驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。
行解码器121通过行线RL联接到存储器单元阵列110。行线RL可包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可包括正常字线和虚设字线。在实施例中,行线RL可进一步包括管道选择线。
行解码器121在控制逻辑130的控制下操作。行解码器121从控制逻辑130接收行地址RADD。
行解码器121对行地址RADD进行解码。行解码器121根据经解码的地址来在存储块BLK1至BLKz之中选择至少一个存储块。而且,行解码器121可根据经解码的地址,选择所选择的存储块的至少一个字线,以将由电压生成器122生成的电压施加到该至少一个字线WL。
例如,在编程操作中,行解码器121可将编程电压施加到所选择的字线,并将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作中,行解码器121可将验证电压施加到所选择的字线,并将电平高于验证电压的电平的验证通过电压施加到未选择的字线。在读取操作中,行解码器121可将读取电压施加到所选择的字线,并将电平高于读取电压的电平的读取通过电压施加到未选择的字线。
在实施例中,以存储块为单位执行存储器装置100的擦除操作。在擦除操作中,行解码器121可根据经解码的地址来选择一个存储块。在擦除操作中,行解码器121可将接地电压施加到与所选择的存储块联接的字线。
电压生成器122在控制逻辑130的控制下操作。电压生成器122通过使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压生成器可响应于操作信号OPSIG而生成在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,在控制逻辑130的控制下,电压生成器122可生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122可通过使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可包括用于接收内部电源电压的多个泵浦(pumping)电容器,并且可在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个电压。
多个所生成的电压可通过行解码器121供应到存储器单元阵列110。
页面缓冲器组123包括第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn分别通过第一至第n位线BL1至BLn联接到存储器单元阵列110。第一至第n位线BL1至BLn在控制逻辑130的控制下操作。具体地,第一至第n位线BL1至BLn可响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作中,第一至第n页面缓冲器PB1至PBn可临时存储通过第一至第n位线BL1至BLn接收的数据,或者可感测位线BL1至BLn的电压或电流。
具体地,在编程操作中,当编程脉冲被施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可通过第一至第n位线BL1至BLn将通过输入/输出电路125所接收到的数据DATA传送到所选择的存储器单元。根据所传送的数据DATA对所选择页面的存储器单元进行编程。联接到施加了编程允许电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。联接到施加了编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作中,第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn从所选择的存储器单元读取页面数据。
在读取操作中,第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn从所选择页面的存储器单元读取数据DATA,并且在列解码器124的控制下将所读取的数据DATA输出到数据输入/输出电路125。
在擦除操作中,第一至第n页面缓冲器PB1至PBn可使第一至第n位线BL1至BLn浮置。
列解码器124可响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间通信数据。例如,列解码器124可通过数据线DL与第一至第n页面缓冲器PB1至PBn通信数据,或者通过列线CL与输入/输出电路125通信数据。
输入/输出电路125可将从参照图1描述的存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑130,或者与列解码器124交换数据DATA。
在读取操作或验证操作中,感测电路126可响应于允许位VRYBIT信号而生成参考电流,并且通过将从页面缓冲器组123接收的感测电压VPB与由参考电流产生的参考电压进行比较来输出通过信号或失败信号PASS/FAIL。
控制逻辑130可响应于命令CMD和地址ADDR,通过输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRYBIT来控制外围电路120。而且,控制逻辑130可响应于通过信号或失败信号PASS/FAIL来确定验证操作是已经通过还是失败。
图13是示出图1所示的存储器控制器的另一实施例的示图。
参照图13,存储器控制器1000联接到主机和存储器装置。存储器控制器1000可响应于从主机接收到的请求而访问存储器装置。
存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可被配置成提供存储器控制器1000的组件之间的通道。
处理器1010可控制存储器控制器1000的全部操作,并且执行逻辑运算。处理器1010可通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。而且,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来使从主机接收的数据随机化。将经随机化的数据作为待存储的数据提供到存储器装置,以被编程在存储器单元阵列中。
在读取操作中,处理器1010可使从存储器装置接收的数据去随机化。例如,处理器1010可使用去随机化种子使从存储器装置接收的数据去随机化。经去随机化的数据可输出到主机。
在实施例中,处理器1010可通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
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被配置成在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置通信命令、地址和数据。
在示例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。
在示例中,处理器1010可通过使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在示例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传输数据,控制总线可被配置成在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分开,并且不会彼此干扰或影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图14是示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的存储卡系统的框图。
参照图14,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。存储器控制器2100可与参照图1描述的存储器控制器200相同地进行实施。
在示例中,存储器控制器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可以诸如以下的方式进行封装以被设置为单个半导体封装:堆叠式封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、窝伏尔组件中的管芯、晶片形式的管芯、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)或晶圆级处理堆叠封装(WSP)。可选地,存储器装置2200可包括多个非易失性存储器芯片,并且该多个非易失性存储器芯片可基于上述封装方式进行封装,以被设置为单个半导体封装。
在示例中,存储器控制器2100和存储器装置2200可被集成为单个半导体装置。在示例中,存储器控制器2100和存储器装置2200可被集成为单个半导体装置以构成固态驱动器(SSD)。存储器控制器2100和存储器装置2200可被集成为单个半导体装置以构成存储卡。例如,存储器控制器2100和存储器装置2200可被集成为单个半导体装置以构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)和通用闪存(UFS)。
在示例中,存储器装置2200可以是参照图1描述的存储器装置100。
图15是示例性地示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的固态驱动器(SSD)系统的框图。
参照图15,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的非易失性存储器。
在示例中,闪速存储器3221至322n可构成参照图1描述的存储器装置100。
图16是示出根据所公开技术的实施例的应用了包括存储器装置的存储装置的用户系统的框图。
参照图16,用户系统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(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。在示例中,存储模块4400可被设置为可移动驱动器,诸如用户系统4000的存储卡或外部驱动器。
在示例中,存储模块4400可包括多个非易失性存储器装置,并且多个非易失性存储器装置可构成参照图1描述的存储器装置100。
用户接口4500可包括用于将数据或命令输入到应用处理器4100或将数据输出到外部装置的接口。在示例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据所公开的技术,可提供一种性能提高的存储器控制器和包括该存储器控制器的存储装置。
虽然已参照所公开技术的某些示例性实施例示出和描述了所公开技术,但本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案限定的所公开技术的精神和范围的情况下,可进行形式和细节上的各种改变。因此,所公开技术的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求而且由其等同方案来确定。
在上述实施例中,可选择性地执行所有步骤或可省略部分步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可被重新排列。本说明书和附图中公开的实施例仅是帮助理解所公开的技术的示例,并且所公开的技术不限于此。也就是说,对于本领域技术的人员应显而易见的是,可基于所公开技术的技术范围进行各种修改。
同时,已在附图和说明书中描述了所公开技术的示例性实施例。虽然本文中使用了特定的术语,但这些术语仅用于说明所公开的技术的实施例。因此,所公开技术不限于上述实施例,并且在所公开技术的精神和范围内可进行许多变型。对于本领域技术人员应显而易见的是,除本文公开的实施例之外,还可基于所公开技术的技术范围进行各种修改。

Claims (20)

1.一种存储器控制器,控制存储器装置的操作,所述存储器控制器包括:
第一内核,从主机接收请求,并且执行将第一逻辑地址转换成具有第二大小的第二逻辑地址的逻辑地址处理操作,其中所接收到的每个请求具有与从所述主机请求的数据相关联并且具有第一大小的相应第一逻辑地址,所述第二大小不同于所述第一大小;以及
第二内核,将所述第二逻辑地址转换成待向其写入数据或从其读取数据的物理地址,所述物理地址表示所述存储器装置中包括的存储器单元的位置。
2.根据权利要求1所述的存储器控制器,其中所述第一内核包括:
逻辑地址处理器,将所述第一逻辑地址转换成所述第二逻辑地址;以及
第一内核队列,存储所述请求和相应的第二逻辑地址。
3.根据权利要求1所述的存储器控制器,其中所述第一内核包括:
第一内核队列,存储写入请求和所述第一逻辑地址;以及
重复请求检查器,执行重复请求检查操作,以确定是否已接收到所述请求中具有相同第一逻辑地址的任意两个请求,并且将所接收到的请求中的具有所述相同第一逻辑地址的任意两个请求中的一个请求作为无效请求来处理。
4.根据权利要求3所述的存储器控制器,其中已顺序地接收所接收的请求中具有所述相同第一逻辑地址的任意两个请求,并且重复请求检查器基于何时从所述主机接收到一个请求来确定被作为无效请求处理的该一个请求。
5.根据权利要求3所述的存储器控制器,其中所述第一内核包括检测器,所述检测器检测异常电力状态,并且响应于检测所述异常电力状态而生成异常电力状态信息。
6.根据权利要求5所述的存储器控制器,其中所述第一内核进一步包括第一断电保护管理器即第一PLP管理器,所述第一PLP管理器生成关于所述第一逻辑地址与所述第二逻辑地址之间的逻辑地址转换或所述重复请求检查操作中的至少一种的电力保护信息。
7.根据权利要求6所述的存储器控制器,其中所述第一内核向所述第二内核提供所述异常电力状态信息。
8.根据权利要求6所述的存储器控制器,其中所述电力保护信息表示已执行所述逻辑地址转换或所述重复请求检查操作中的至少一种的完成状态。
9.根据权利要求5所述的存储器控制器,其中所述第二内核取消正由所述存储器装置执行的操作,并且执行另一操作以将表示所述物理地址与所述第二逻辑地址之间的转换关系的映射信息存储在所述存储器装置中。
10.根据权利要求9所述的存储器控制器,其中所述第二内核包括地址转换器,所述地址转换器将所述第二逻辑地址转换成所述物理地址。
11.根据权利要求1所述的存储器控制器,其中所述第一内核和所述第二内核两者都可操作以执行从所述第一逻辑地址到所述第二逻辑地址的转换,其中当所述第一内核未完成所述转换时,所述第二内核可操作以执行并完成从所述第一逻辑地址到所述第二逻辑地址的所述转换。
12.一种存储器控制器,控制存储器装置的操作,所述存储器控制器包括:
第一内核,从主机接收从所述存储器装置读取数据或将数据写入所述存储器装置的请求,并且检测电力小于正常电力状态的电力的异常电力状态并向第二内核通知所述异常电力状态,所接收到的每个请求包括具有第一大小的相应第一逻辑地址,第一逻辑地址可转换为具有第二大小的第二逻辑地址,所述第二大小不同于所述第一大小;
存储区域,存储元数据,所述元数据包括物理地址与所述第一逻辑地址和所述第二逻辑地址中的至少一个之间的转换关系,所述物理地址表示所述存储器装置中包括的存储器单元的位置;以及
所述第二内核,响应于所述异常电力状态而将所述元数据存储在所述存储器装置中,使得所述元数据先于与所述请求相关联的数据被存储。
13.根据权利要求12所述的存储器控制器,其中,在重复请求检查操作中,重复请求检查器基于何时从所述主机接收到所述请求中的任意两个请求中的一个请求,将该一个请求作为无效请求来处理。
14.根据权利要求13所述的存储器控制器,其中所述第二内核取消正由所述存储器装置执行的操作。
15.根据权利要求14所述的存储器控制器,其中所述第一内核执行逻辑地址转换,以将所述第一逻辑地址转换成所述第二逻辑地址。
16.一种存储装置,包括存储器装置和用于控制所述存储器装置的操作的存储器控制器,所述存储装置包括:
所述存储器控制器,包括第一内核和第二内核,所述第一内核从主机接收请求,所述请求具有分别对应于所述请求的第一逻辑地址,并且所述第二内核获得对应于所述第一逻辑地址的物理地址,所述物理地址表示所述存储器装置中从其读取或向其写入与所述请求相关联的数据的区域的位置;
缓冲存储器,存储待存储在所述存储器装置中或从所述存储器装置中读取的数据;以及
所述存储器装置,响应于从所述存储器控制器接收的命令而操作,
其中响应于检测到异常电力状态,所述第二内核取消正由所述存储器装置执行的操作,并且执行另一操作以将用于获得所述物理地址的映射信息存储在所述存储器装置中,并且
所述第一内核确定在所述映射信息存储在所述存储器装置中的同时,是否已从所述主机接收到所述请求中具有相同第一逻辑地址的任意两个请求。
17.根据权利要求16所述的存储装置,其中响应于确定已从所述主机接收到所述请求中具有相同第一逻辑地址的任意两个请求,所述第一内核将所述请求中的所述任意两个请求中的一个请求作为无效请求来处理,并且执行重复请求检查操作,使用所述缓冲存储器的区域来存储除先前对应于所述请求的数据之外的其它数据。
18.根据权利要求17所述的存储装置,其中所述第一内核向所述第二内核提供表示所述重复请求检查操作是否已完成的信息。
19.根据权利要求16所述的存储装置,其中所述第一内核向所述第二内核提供表示所述第一逻辑地址和所述第二逻辑地址之间的逻辑地址转换是否已完成的信息。
20.根据权利要求19所述的存储装置,其中,响应于接收表示尚未完成所述逻辑地址转换的信息,所述第二内核执行所述逻辑地址转换。
CN202010880456.7A 2019-12-23 2020-08-27 包括存储器控制器的存储装置 Pending CN113093988A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0173295 2019-12-23
KR1020190173295A KR20210081088A (ko) 2019-12-23 2019-12-23 메모리 컨트롤러를 포함하는 스토리지 장치

Publications (1)

Publication Number Publication Date
CN113093988A true CN113093988A (zh) 2021-07-09

Family

ID=76438402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010880456.7A Pending CN113093988A (zh) 2019-12-23 2020-08-27 包括存储器控制器的存储装置

Country Status (3)

Country Link
US (1) US11461226B2 (zh)
KR (1) KR20210081088A (zh)
CN (1) CN113093988A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997086B1 (en) * 2020-03-03 2021-05-04 Intel Corporation Systems and methods in a graphics environment for providing shared virtual memory addressing support for a host system
US11522358B2 (en) * 2020-05-18 2022-12-06 Schweitzer Engineering Laboratories, Inc. Isolation of protective functions in electrical power systems
JP2022123696A (ja) * 2021-02-12 2022-08-24 キオクシア株式会社 メモリシステム
US11888938B2 (en) * 2021-07-29 2024-01-30 Elasticflash, Inc. Systems and methods for optimizing distributed computing systems including server architectures and client drivers
US20240111456A1 (en) * 2022-10-02 2024-04-04 Silicon Motion, Inc. Storage device controller and method capable of allowing incoming out-of-sequence write command signals

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900022A (en) * 1994-02-22 1999-05-04 Advanced Micro Devices, Inc. Apparatus and method for reducing the cache miss penalty in a virtual addressed memory system by using a speculative address generator and an accurate address generator
US20020144081A1 (en) * 2001-03-30 2002-10-03 Willis Thomas E. Method and apparatus including heuristic for sharing TLB entries
US20050185472A1 (en) * 2004-02-05 2005-08-25 Research In Motion Limited Memory controller interface
US20090157950A1 (en) * 2007-12-14 2009-06-18 Robert David Selinger NAND flash module replacement for DRAM module
US20130031296A1 (en) * 2011-04-27 2013-01-31 Seagate Technology Llc System and method for managing address mapping information due to abnormal power events
US20190004869A1 (en) * 2017-06-30 2019-01-03 Samsung Electronics Co., Ltd. Storage device capable of managing jobs without intervention of a processor
US20190146927A1 (en) * 2017-11-16 2019-05-16 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069578B1 (en) * 2000-02-04 2006-06-27 Scientific-Atlanta, Inc. Settop cable television control device and method including bootloader software and code version table for maintaining and updating settop receiver operating system software
US20030110205A1 (en) * 2001-12-07 2003-06-12 Leith Johnson Virtualized resources in a partitionable server
KR101878200B1 (ko) 2012-01-09 2018-07-16 삼성전자 주식회사 서든 파워 오프 발생 시 메모리 시스템을 제어하는 방법
KR20140034333A (ko) 2012-08-16 2014-03-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치
KR102320864B1 (ko) * 2015-03-24 2021-11-03 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR102509986B1 (ko) * 2016-03-28 2023-03-14 삼성전자주식회사 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법
US10969992B2 (en) * 2018-12-29 2021-04-06 Intel Corporation Address translation for scalable linked devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900022A (en) * 1994-02-22 1999-05-04 Advanced Micro Devices, Inc. Apparatus and method for reducing the cache miss penalty in a virtual addressed memory system by using a speculative address generator and an accurate address generator
US20020144081A1 (en) * 2001-03-30 2002-10-03 Willis Thomas E. Method and apparatus including heuristic for sharing TLB entries
US20050185472A1 (en) * 2004-02-05 2005-08-25 Research In Motion Limited Memory controller interface
US20090157950A1 (en) * 2007-12-14 2009-06-18 Robert David Selinger NAND flash module replacement for DRAM module
US20130031296A1 (en) * 2011-04-27 2013-01-31 Seagate Technology Llc System and method for managing address mapping information due to abnormal power events
US20190004869A1 (en) * 2017-06-30 2019-01-03 Samsung Electronics Co., Ltd. Storage device capable of managing jobs without intervention of a processor
US20190146927A1 (en) * 2017-11-16 2019-05-16 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices

Also Published As

Publication number Publication date
US20210191854A1 (en) 2021-06-24
US11461226B2 (en) 2022-10-04
KR20210081088A (ko) 2021-07-01

Similar Documents

Publication Publication Date Title
US11461226B2 (en) Storage device including memory controller
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US11216332B2 (en) Memory controller and method of operating the same
US11599268B2 (en) Storage device and method of operating the same
CN112540721A (zh) 存储器控制器及其操作方法
US11508454B2 (en) Data storage device and method of operating the same
US20210200469A1 (en) Memory controller having data compressor and method of operating the same
CN111338995B (zh) 数据存储装置及操作数据存储装置的方法
US11880274B2 (en) Host device, memory controller, and computing system including the same
US11593023B2 (en) Memory controller and method of operating the same
US11269767B2 (en) Memory controller and operating method thereof
CN112783431A (zh) 存储装置及其操作方法
US11599275B2 (en) Memory controller for controlling power loss recovery and method of operating the same
US11500768B2 (en) Storage device performing garbage collection and method of operating the same
US20230305741A1 (en) Storage device and operating method thereof
US11281512B2 (en) Storage device providing device-to-host information to host and operating method thereof
US20230103797A1 (en) Memory controller and method of operating the same
US20230020521A1 (en) Memory controller, operating method thereof, and computing system including the same
CN115454325A (zh) 存储器控制器及其操作方法
CN115509966A (zh) 存储器控制器及包括存储器控制器的存储器系统
CN115705859A (zh) 存储器装置及其操作方法
CN117519577A (zh) 存储装置、包括存储装置的电子装置及其操作方法
CN116931820A (zh) 存储器控制器及其操作方法
CN112783434A (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