CN116931820A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN116931820A CN116931820A CN202310141750.XA CN202310141750A CN116931820A CN 116931820 A CN116931820 A CN 116931820A CN 202310141750 A CN202310141750 A CN 202310141750A CN 116931820 A CN116931820 A CN 116931820A
- Authority
- CN
- China
- Prior art keywords
- phase
- host
- memory
- reset
- power
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 240
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000004044 response Effects 0.000 claims description 19
- 238000011084 recovery Methods 0.000 claims description 15
- 239000000872 buffer Substances 0.000 description 36
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 14
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 239000010410 layer Substances 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 101150013423 dsl-1 gene Proteins 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101150064834 ssl1 gene Proteins 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 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
- 238000004590 computer program Methods 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
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/266—Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
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)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本文提供了一种存储器控制器及其操作方法。操作存储器控制器的方法可以包括基于与主机的多个启动阶段相关的启动工作负载信息来确定从主机接收到的复位请求是否有效,并且根据该复位请求是否有效,对存储器设备执行复位操作。
Description
相关申请的交叉引用
本申请要求于2022年4月21日提交的韩国专利申请号10-2022-0049331的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开的各种实施例总体上涉及一种电子设备,并且更具体地涉及一种存储器控制器和操作该存储器控制器的方法。
背景技术
存储设备是在诸如计算机或智能电话之类的主机设备的控制下存储数据的设备。该存储设备可以包括存储有数据的存储器设备和控制该存储器设备的存储器控制器。存储器设备被分类为易失性存储器设备和非易失性存储器设备。
易失性存储器设备是仅在电源被供应时在其中存储数据,并且在电源供应被中断时在其中存储的数据丢失的存储器设备。易失性存储器设备的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器设备可以是即使在电源供应被中断时在其中存储的数据也被保留的存储器设备。非易失性存储器设备的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和快闪存储器。
存储设备可以根据主机进入的启动阶段而从主机接收复位请求。存储设备可以执行冷启动,该冷启动响应于复位请求而关闭存储器设备的电源并且再次开启其电源。存储设备可以执行用于恢复被冷启动的存储器设备中的数据的突然断电恢复操作。
发明内容
本公开的各种实施例涉及一种用于跳过来自主机的不必要的复位请求的存储器控制器,以及操作该存储器控制器的方法。
本公开的一个实施例可以提供一种操作存储器控制器的方法。该方法可以包括基于与主机的多个启动阶段相关的启动工作负载信息来确定从主机接收到的复位请求是否有效,并且根据该复位请求是否有效,对存储器设备执行复位操作。
本公开的一个实施例可以提供一种存储器控制器。存储器控制器可以包括启动工作负载信息存储部和复位控制器。启动工作负载信息存储部可以被配置为存储与主机的多个启动阶段相关的启动工作负载信息。复位控制器可以被配置为基于启动工作负载信息来确定从主机接收到的复位请求是否有效,并且当确定复位请求有效时,对存储器设备执行复位操作。
本公开的一个实施例可以提供一种操作控制器的方法。该方法可以包括响应于有效复位请求来复位存储器设备,并且忽略无效复位请求。有效复位请求是在上电阶段或操作***内核恢复阶段期间提供的复位请求。无效复位请求是在只读存储器(ROM)读取阶段、启动加载程序加载阶段或操作***内核加载阶段之后提供的复位请求。各阶段与提供复位请求的主机的启动操作相关。
附图说明
图1是图示了根据本公开的一个实施例的存储设备的图。
图2是图示了根据本公开的一个实施例的图1的存储器设备的结构的图。
图3是图示了根据本公开的一个实施例的图2的存储器单元阵列的图。
图4是图示了根据本公开的一个实施例的存储器控制器的配置和操作的图。
图5是图示了根据本公开的一个实施例的根据主机的启动顺序和来自主机的复位请求的存储设备的操作的流程图。
图6是图示了根据本公开的一个实施例的相应阶段中的关于是否要执行从主机接收到的复位请求的信息和启动工作负载信息的图。
图7是图示了根据本公开的一个实施例的存储器控制器的操作的流程图。
图8是图示了根据本公开的一个实施例的图1的存储器控制器的图。
图9是图示了应用有根据本公开的一个实施例的存储设备的存储器卡***的框图。
图10是图示了应用根据本公开的一个实施例的存储设备的固态驱动器(SSD)***的框图。
图11是图示了应用有根据本公开的一个实施例的存储设备的用户***的框图。
具体实施方式
在本说明书中介绍的本公开的实施例中的具体结构或功能说明是作为示例而被提供的,以描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式实践,并且不应被解释为限于说明书中描述的实施例。
图1是图示了根据本公开的一个实施例的存储设备的图。
参考图1,存储设备50可以包括存储器设备100和控制该存储器设备100的操作的存储器控制器200。存储设备50可以是在主机300的控制下存储数据的设备,主机300诸如是移动电话、智能电话、MP3播放器、笔记本计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐***。
存储设备50可以根据作为用于与主机300通信的方案的主机接口而被制造为各种类型的存储设备中的任何一种。例如,存储设备50可以被实现为各种类型的存储设备中的任何一种,例如,固态盘(SSD)、多媒体卡(诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或micro-MMC)、安全数字卡(诸如SD、mini-SD或micro-SD)、通用串行总线(USB)存储设备、通用快闪存储(UFS)设备、个人计算机存储器卡国际协会(PCMCIA)卡式存储设备、***组件互连(PCI)卡型存储设备、PCI快速(PCI-e或PCIe)卡型存储设备、紧凑型快闪(CF)卡、智能媒体卡和记忆棒。
存储设备50可以以各种类型的封装形式中的任何一种来制造。例如,存储设备50可以以各种类型的封装形式中的任何一种来制造,封装形式诸如是叠层封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶片级制造封装(WFP)和晶片级堆叠封装(WSP)。
存储器设备100可以存储数据。存储器设备100可以在存储器控制器200的控制下进行操作。存储器设备100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
每个存储器单元可以被实现为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个存储器单元。一个存储器块可以包括多个页。在一个实施例中,页可以是在存储器设备100中存储数据的单位或者读取在存储器设备100中存储的数据的单位。
存储器块可以是擦除数据的单位。在一个实施例中,存储器设备100可以采用许多替代形式,诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率***(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND快闪存储器、垂直NAND快闪存储器、NOR快闪存储器设备、电阻式RAM(RRAM)、相变式RAM(PRAM)、磁阻式RAM(MRAM)、铁电式RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,为了便于说明,以存储器设备100是NAND快闪存储器的情况来进行说明。
存储器设备100可以从存储器控制器200接收命令和地址,并且可以访问由地址选择的存储器单元阵列的区域。也就是说,存储器设备100可以对由地址选择的区域执行由命令所指示的操作。例如,存储器设备100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器设备100可以将数据编程到由地址选择的区域。在读取操作期间,存储器设备100可以从由地址选择的区域读取数据。在擦除操作期间,存储器设备100可以擦除存储在由地址选择的区域中的数据。
存储器控制器200控制存储设备50的整体操作。
当将电源施加到存储设备50时,存储器控制器200可以运行固件(FW)。当存储器设备100是快闪存储器设备时,存储器控制器200可以运行诸如快闪转换层(FTL)之类的固件以用于控制主机300和存储器设备100之间的通信。
在一个实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换成物理块地址(PBA),该物理块地址(PBA)指示包括在存储器设备100中并且要在其中存储数据的存储器单元的地址。
存储器控制器200可以控制存储器设备100,以便响应于从主机300接收到的请求来执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器设备100提供写入命令、物理块地址和数据。在读取操作期间,存储器控制器200可以向存储器设备100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可以向存储器设备100提供擦除命令和物理块地址。
在一个实施例中,存储器控制器200可以与是否接收到来自主机300的请求无关地在内部生成命令、地址和数据,并且可以将它们发送到存储器设备100。例如,存储器控制器200可以向存储器设备100提供命令、地址和数据以执行后台操作(诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作)。
在一个实施例中,存储器控制器200可以控制两个或更多个存储器设备100。在这种情况下,存储器控制器200可以根据交错方案来控制存储器设备100以提高操作性能。交错方案可以是使两个或更多个存储器设备100的操作周期彼此重叠的操作方式。
存储器控制器200可以控制通过一个或多个通道而彼此耦合的多个存储器设备100。每个存储器设备100可以包括一个或多个平面。每个平面可以包括多个存储器块。
存储器控制器200可以存储与主机300的多个启动阶段相关的启动工作负载信息。多个启动阶段可以包括由主机300执行的上电阶段、ROM读取阶段、启动加载程序加载阶段和操作***(OS)内核加载阶段。
存储器控制器200可以基于启动工作负载信息来确定从主机300接收到的复位请求是否有效。
例如,存储器控制器200可以确定在主机300已经执行ROM读取阶段、启动加载程序加载阶段或OS内核加载阶段之后接收到的复位请求是无效的。存储器控制器200可以忽略被确定为无效的复位请求。
存储器控制器200可以确定在上电阶段之后或在内核恢复阶段中接收到的复位请求是有效的。存储器控制器200可以响应于被确定为有效的复位请求而对存储器设备100执行复位操作。复位操作可以包括:冷启动操作,关闭存储器设备100的电源并且再次开启其电源;以及突然断电恢复操作,恢复被冷启动的存储器设备100中的数据。
主机300可以在每个启动阶段中向存储器控制器200提供复位请求。主机300可以在上电阶段、ROM读取阶段、启动加载程序加载阶段、OS内核加载阶段和OS内核恢复阶段中的每一个之后向存储器控制器200提供复位请求。
根据本公开的一个实施例,存储器控制器200在从主机300接收到的复位请求之中忽略与存储器设备100的操作无关的复位请求,所以不必要的复位操作的数量可以被减少,并且总启动时间可以被缩短,从而延长存储器设备100的寿命。
主机300可以使用各种通信标准或接口中的至少一种来与存储设备50通信,通信标准或接口诸如是通用串行总线(USB)、串行AT附件(SATA)、串行附接SCSI(SAS)、高速互连芯片(HSIC)、小型计算机***接口(SCSI)、***组件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用快闪存储(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
图2是图示了根据本公开的一个实施例的图1的存储器设备的结构的图。
参考图2,存储器设备100可以包括存储器单元阵列110、***电路120和控制逻辑130。
存储器单元阵列110包括多个存储器块BLK1至BLKz。多个存储器块BLK1至BLKz可以通过行线RL而被耦合到地址解码器121。存储器块BLK1至BLKz通过位线BL1至BLm而被耦合到读取和写入电路123。存储器块BLK1至BLKz中的每一个可以包括多个存储器单元。在一个实施例中,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中耦合到相同字线的存储器单元被定义为一个物理页。也就是说,存储器单元阵列110可以包括多个物理页。在本公开的一个实施例中,存储器单元阵列110中包括的存储器块BLK1至BLKz中的每一个可以包括多个虚设单元。关于虚设单元,一个或多个虚设单元可以串联耦合在漏极选择晶体管和存储器单元之间,以及源极选择晶体管和存储器单元之间。
存储器设备100的每个存储器单元可以被实现为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。
***电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。
***电路120可以驱动存储器单元阵列110。例如,***电路120可以驱动存储器单元阵列110以执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL而被耦合到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的一个实施例,字线可以包括普通字线和虚设字线。根据本公开的一个实施例,行线RL还可以包括管道选择线。
地址解码器121可以在控制逻辑130的控制下进行操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以对接收到的地址ADDR之中的块地址进行解码。地址解码器121可以根据所解码的块地址而选择存储器块BLK1至BLKz中的至少一个。地址解码器121可以对接收到的地址ADDR之中的行地址进行解码。地址解码器121可以根据经解码的行地址选择被选择的存储器块的至少一条字线。地址解码器121可以将从电压生成器122供应的操作电压Vop施加到被选择的字线。
在编程操作期间,地址解码器121可以将编程电压施加到被选择的字线,并且将具有比编程电压的电平更低的电平的通过电压施加到未被选择的字线。在编程验证操作期间,地址解码器121可以将验证电压施加到被选择的字线,并且将具有比验证电压的电平更高的电平的验证通过电压施加到未被选择的字线。
在读取操作期间,地址解码器121可以将读取电压施加到被选择的字线,并且将具有比读取电压的电平更高的电平的读取通过电压施加到未被选择的字线。
根据本公开的一个实施例,存储器设备100的擦除操作以存储器块为基础来执行。在擦除操作期间,输入到存储器设备100的地址ADDR包括块地址。地址解码器121可以对块地址进行解码,并根据被解码的块地址选择至少一个存储器块。在擦除操作期间,地址解码器121可以将接地电压施加到耦合到被选择的存储器块的字线。
根据本公开的一个实施例,地址解码器121可以对接收到的地址ADDR之中的列地址进行解码。经解码的列地址可以被传送到读取和写入电路123。在一个实施例中,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器之类的组件。
电压生成器122可以使用被供应给存储器设备100的外部电源电压来生成多个操作电压Vop。电压生成器122可以在控制逻辑130的控制下进行操作。
在一个实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器设备100的操作电压。
在一个实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可以生成存储器设备100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器122可以包括用于接收内部电源电压以生成具有各种电压电平的多个操作电压Vop的多个泵浦电容器,并且可以通过在控制逻辑130的控制下选择性地启用多个泵浦电容器来生成多个操作电压Vop。所生成的操作电压Vop可以通过地址解码器121而被供应给存储器单元阵列110。
读取和写入电路123包括第一至第m页缓冲器PB1至PBm。第一至第m页缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm而被耦合到存储器单元阵列110。第一至第m页缓冲器PB1至PBm在控制逻辑130的控制下进行操作。
第一至第m页缓冲器PB1至PBm可以向/从数据输入/输出电路124发送/接收数据DATA。在编程操作期间,第一至第m页缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收要被存储的数据DATA。
在编程操作期间,当将编程电压施加到被选择的字线时,第一至第m页缓冲器PB1至PBm可以将通过数据输入/输出电路124接收到的要被存储的数据DATA通过位线BL1至BLm传送到被选择的存储器单元。基于接收到的数据DATA来对被选择的页中的存储器单元进行编程。耦合到被施加编程使能电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。耦合到被施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被维持。在编程验证操作期间,第一至第m页缓冲器PB1至PBm通过位线BL1至BLm而从被选择的存储器单元读取存储在被选择的存储器单元中的数据DATA。
在读取操作期间,读取和写入电路123可以通过位线BL从被选择的页中的存储器单元读取数据DATA,并且可以将所读取的数据DATA存储在第一至第m页缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路123可以允许位线BL浮置。在一个实施例中,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL耦合到第一至第m页缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑130的控制下进行操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未图示)。在编程操作期间,数据输入/输出电路124从外部控制器(未图示)接收要被存储的数据DATA。在读取操作期间,数据输入/输出电路124向外部控制器输出从读取和写入电路123中包括的第一至第m页缓冲器PB1至PBm接收到的数据DATA。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT来生成参考电流,并且可以通过将从读取和写入电路123接收到的感测电压VPB与由参考电流生成的参考电压进行比较来向控制逻辑130输出通过信号或失败信号。
控制逻辑130可以耦合到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器设备100的整体操作。控制逻辑130可以响应于从外部设备传送来的命令CMD而进行操作。
控制电路130可以通过响应于命令CMD和地址ADDR生成各种类型的信号来控制***电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR来生成操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS和使能位信号VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将地址ADDR输出到地址解码器121,将读取和写入电路控制信号PBSIGNALS输出到读取和写入电路123,并将使能位信号VRYBIT输出到感测电路125。此外,控制逻辑130可以响应于从感测电路125输出的通过或失败信号PASS或FAIL来确定验证操作是通过还是失败。
图3是图示了根据本公开的一个实施例的图2的存储器单元阵列的图。
参考图3,第一至第z存储器块BLK1至BLKz共同耦合到第一至第m位线BL1至BLm。在图3中,为了便于说明,图示了多个存储器块BLK1至BLKz之中的第一存储器块BLK1中包括的元件,而省略了其余存储器块BLK2至BLKz中的每一个中包括的元件的图示。应当理解,其余存储器块BLK2至BLKz中的每一个具有与第一存储器块BLK1相同的配置。
存储器块BLK1可以包括多个单元串CS1_1至CS1_m,其中m是正整数。第一至第m单元串CS1_1至CS1_m分别耦合到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个包括漏极选择晶体管DST、彼此串联耦合的多个存储器单元MC1至MCn(其中n是正整数)以及源极选择晶体管SST。
第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极选择晶体管DST的栅极端子耦合到漏极选择线DSL1。第一至第m单元串CS1_1至CS1_m中的每一个中包括的第一至第n存储器单元MC1至MCn的栅极端子分别耦合到第一至第n字线WL1至WLn。第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极选择晶体管SST的栅极端子耦合到源极选择线SSL1。
为了便于说明,将基于多个单元串CS1_1至CS1_m之中的第一单元串CS1_1来描述每个单元串的结构。然而,应当理解,其余单元串CS1_2至CS1_m中的每一个可以以与第一单元串CS1_1相同的方式配置。
第一单元串CS1_1中包括的漏极选择晶体管DST的漏极端子耦合到第一位线BL1。第一单元串CS1_1中包括的漏极选择晶体管DST的源极端子耦合到第一单元串CS1_1中包括的第一存储器单元MC1的漏极端子。第一至第n存储器单元MC1至MCn可以彼此串联耦合。第一单元串CS1_1中包括的源极选择晶体管SST的漏极端子耦合到第一单元串CS1_1中包括的第n存储器单元MCn的源极端子。第一单元串CS1_1中包括的源极选择晶体管SST的源极端子耦合到公共源极线CSL。在一个实施例中,公共源极线CSL可以共同耦合到第一至第z存储器块BLK1至BLKz。
漏极选择线DSL1、第一至第n字线WL1至WLn和源极选择线SSL1被包括在图2的行线RL中。漏极选择线DSL1、第一至第n字线WL1至WLn和源极选择线SSL1由地址解码器121进行控制。公共源极线CSL由控制逻辑130进行控制。第一至第m位线BL1至BLm由读取和写入电路123进行控制。
图4是图示了根据本公开的一个实施例的存储器控制器的配置和操作的图。
参考图4,存储器控制器200可以包括启动工作负载信息存储部210和复位控制器220。
启动工作负载信息存储部210可以存储与主机300的多个启动阶段相关的启动工作负载信息BW_INF。多个启动阶段可以包括由主机300执行的上电阶段、ROM读取阶段、启动加载程序加载阶段以及操作***(OS)内核加载阶段。
启动工作负载信息BW_INF可以包括从主机300接收到的写入请求和读取请求的历史。启动工作负载信息BW_INF可以包括与从主机300接收的写入请求和读取请求相对应的数据量的历史。启动工作负载信息BW_INF可以包括将对从主机300接收到的停电命令的响应发送到主机300的历史。停电命令可以是用于查询存储器设备的电源是否能够正常关闭的命令。启动工作负载信息BW_INF可以包括指示在主机300上运行的操作***的内核已经进入恢复模式的通知消息的接收历史。
复位控制器220可以基于从启动工作负载信息存储部210接收到的启动工作负载信息BW_INF来确定从主机300接收到的复位请求HW Reset REQ是否有效。
复位控制器220可以基于启动工作负载信息BW_INF而在多个启动阶段之中确定主机300进入的目标阶段。
例如,当向主机300发送对停电命令的响应的历史被包括在启动工作负载信息BW_INF中时,复位控制器220可以确定目标阶段是上电阶段。当从主机300接收读取请求或写入请求的历史未被包括在启动工作负载信息BW_INF中时,复位控制器220可以确定目标阶段是ROM读取阶段。当启动工作负载信息BW_INF中与从主机300接收到的读取请求和写入请求相对应的数据量等于或大于参考值时,复位控制器220可以确定目标阶段是启动加载程序加载阶段。当指示在启动加载程序加载阶段之后内核已经进入恢复模式的通知消息的接收历史未被包括在启动工作负载信息BW_INF中时,复位控制器220可以确定目标阶段是内核加载阶段。当指示在启动加载程序加载阶段之后内核已经进入恢复模式的通知消息的接收历史被包括在启动工作负载信息BW_INF中时,复位控制器220可以确定目标阶段是内核恢复阶段。
当目标阶段是ROM读取阶段、启动加载程序加载阶段或OS内核加载阶段时,复位控制器220可以确定在由主机300执行目标阶段之后接收到的复位请求HW Reset REQ是无效的。当确定复位请求HW Reset REQ无效时,复位控制器220可以忽略复位请求HW ResetREQ。
当目标阶段是上电阶段时,复位控制器220可以确定在由主机300执行目标阶段之后接收到的复位请求HW Reset REQ是有效的。复位控制器220可以确定在内核恢复阶段中接收到的复位请求HW Reset REQ是有效的。当确定复位请求HW Reset REQ有效时,复位控制器220可以对存储器设备100执行复位操作。
复位操作可以包括:冷启动操作,关闭存储器设备100的电源并且再次开启其电源;以及突然断电恢复操作,恢复被冷启动的存储器设备100中的数据。
主机300可以包括主机处理器310和主机存储器320。主机处理器310可以在每个启动阶段中向存储器控制器200提供复位请求HW Reset REQ。当电源被开启时,主机处理器310可以向存储器控制器200提供复位请求HW Reset REQ。当ROM中存储的数据被读取到主存储器320中时,主机处理器310可以向存储器控制器200提供复位请求HW Reset REQ。当启动加载程序被加载到主机存储器320中时,主机处理器310可以向存储器控制器200提供复位请求HW Reset REQ。当操作***的内核被加载到主机存储器320中时,主机处理器310可以向存储器控制器200提供复位请求HW Reset REQ。当主机300处于内核恢复阶段中时,主机处理器310可以向存储器控制器200提供复位请求HW Reset REQ。
根据本公开的一个实施例,在主机300的启动阶段中从主机300接收到的复位请求HW Reset REQ之中,与存储器设备100的操作无关的复位请求HW Reset REQ可以被忽略,由此,不必要的复位操作的数量可以被减少,总启动时间可以被缩短,并且存储器设备100的寿命可以被延长。
图5是图示了根据主机的启动顺序和来自主机的复位请求的存储设备的操作的流程图。
参考图5,主机可以在操作S501处被上电。主机在被上电之后可以向存储设备提供复位请求HW Reset REQ。
在操作S503处,存储设备可以确定从主机接收到的复位请求HW Reset REQ是有效的,并且可以执行复位操作。复位操作可以包括:冷启动操作,关闭存储器设备的电源并且再次开启其电源;以及突然断电恢复操作,恢复被冷启动的存储器设备中的数据。
在操作S505处,主机可以读取存储在ROM中的基本输入/输出***(BIOS)。在ROM中存储的BIOS被读取到主机存储器中之后,主机可以向存储设备提供复位请求HW ResetREQ。存储设备可以确定在执行ROM读取阶段之后从主机接收到的复位请求HW Reset REQ是无效的,并且可以忽略该复位请求。
在操作S507处,主机可以将启动加载程序加载到主机存储器中。在启动加载程序被加载到主机存储器中之后,主机可以向存储设备提供复位请求HW Reset REQ。启动加载程序可以是用于准备操作***的内核的执行以运行操作***的计算机程序。存储设备可以确定在执行启动加载程序加载阶段之后从主机接收到的复位请求HW Reset REQ是无效的,并且可以忽略该复位请求。
在启动加载程序加载阶段之后,当通知消息的接收历史指示内核已经进入恢复模式时,可以执行操作S511。否则,可以执行操作S509。
在操作S509处,主机可以将操作***的内核加载到主机存储器中。在内核被加载到主机存储器中之后,主机可以向存储设备提供复位请求HW Reset REQ。作为操作***的核的内核可以是用于管理安全与***资源之间,以及软件与硬件之间的通信的程序。存储设备可以确定在执行内核加载阶段之后从主机接收到的复位请求HW Reset REQ是无效的,并且可以忽略该复位请求。
在操作S511处,主机可以向存储设备提供复位请求HW Reset REQ。存储设备可以确定在内核恢复阶段中从主机接收到的复位请求HW Reset REQ是有效的,并且可以执行复位操作。
图6是图示了根据本公开的一个实施例的相应阶段中的关于是否要执行从主机接收到的复位请求的信息和启动工作负载信息的图。
参考图6,主机的各阶段可以包括上电/断电阶段、ROM读取阶段、启动加载程序加载阶段、内核加载阶段和内核恢复阶段。
启动工作负载信息BW_INF可以包括从主机接收到的停电命令的历史。停电命令可以是用于查询存储器设备的电源是否能够正常关闭的命令。启动工作负载信息BW_INF可以包括从主机接收到的请求的历史和对应于该请求的数据量。启动工作负载信息BW_INF可以包括指示在主机上运行的操作***的内核已经进入恢复模式的通知消息的接收历史。
主机的每个阶段可以基于启动工作负载信息BW_INF来确定。
例如,可以基于停电命令的历史来确定上电/断电阶段。当向主机发送对停电命令的响应的历史被包括在启动工作负载信息BW_INF中时,可以确定主机的阶段是上电/断电阶段。
ROM读取阶段和启动加载程序加载阶段可以基于从主机接收到的请求的历史和对应于该请求的数据量来确定。当接收从主机接收到的读取请求或写入请求的历史未被包括在启动工作负载信息BW_INF中时,主机的阶段可以被确定为ROM读取阶段。当启动工作负载信息BW_INF中对应于从主机接收到的读取请求和写入请求的数据量等于或大于参考值时,主机的阶段可以被确定为启动加载程序加载阶段。
内核加载阶段和内核恢复阶段可以基于指示在主机上运行的操作***的内核已经进入恢复模式的通知消息的接收历史来确定。
当指示在启动加载程序加载阶段之后内核已经进入恢复模式的通知消息的接收历史未被包括在启动工作负载信息BW_INF中时,主机的阶段可以被确定为内核加载阶段。当指示在启动加载程序加载阶段之后内核已经进入恢复模式的通知消息的接收历史未被包括在启动工作负载信息BW_INF中时,主机的阶段可以被确定为内核恢复阶段。
在图6中,在主机的上电/断电阶段和主机内核恢复阶段中从主机接收到的复位请求可以被接受。在主机的ROM读取阶段、启动加载程序加载阶段和内核加载阶段中从主机接收到的复位请求可以被忽略。
图7是图示了根据本公开的一个实施例的存储器控制器的操作的流程图。
参考图7,在操作S701处,存储器控制器可以从主机接收复位请求。
在操作S703处,存储器控制器可以基于启动工作负载信息来确定复位请求是否有效。上面已经参考图4至图6描述了存储器控制器基于启动工作负载信息确定复位请求是否有效的过程的细节,并且因此在这里将省略其详细说明。作为确定的结果,当复位请求有效时,过程进行到操作S705,而当复位请求无效时,过程进行到操作S707。
在操作S705处,存储器控制器可以对存储器设备执行硬件复位操作。该复位操作可以包括冷启动操作和突然断电恢复操作。
在操作S707处,存储器控制器可以忽略复位请求。
图8是图示了根据本公开的一个实施例的图1的存储器控制器的图。
参考图8,存储器控制器1000耦合到主机和存储器设备。响应于来自主机的请求,存储器控制器1000可以访问存储器设备。例如,存储器控制器1000可以控制存储器设备的读取、写入、擦除和后台操作。存储器控制器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可以通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可以接收逻辑块地址(LBA)并使用映射表将LBA转换成物理块地址(PBA)。通过FTL执行的地址映射方法的示例可以包括根据映射单元的各种方法。代表性的地址映射方法包括页映射方法、块映射方法和混合映射方法。
处理器1010可以对从主机接收到的数据进行随机化。例如,处理器1010可以使用随机化种子对从主机接收到的数据进行随机化。被随机化的数据可以被提供为要被存储到存储器设备的数据,并且可以被编程到存储器单元阵列。
处理器1010可以在读取操作期间对从存储器设备接收到的数据进行去随机化。例如,处理器1010可以使用去随机化种子对从存储器设备接收到的数据进行去随机化。被去随机化的数据可以被输出到主机。
在一个实施例中,处理器1010可以运行软件或固件来执行随机化或去随机化操作。
存储器缓冲器1020可以被用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010执行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行纠错。ECC电路1030可以基于要通过存储器接口1060被写入到存储器设备的数据来执行纠错码(ECC)编码。经ECC编码的数据可以通过存储器接口1060而被传送到存储器设备。ECC电路1030可以基于通过存储器接口1060从存储器设备接收到的数据来执行ECC解码。在一个示例中,ECC电路1030可以作为存储器接口1060的组件而被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用各种通信标准或接口中的至少一种来执行通信,通信标准或接口诸如是通用串行总线(USB)、串行AT附件(SATA)、串行附接SCSI(SAS)、高速互连芯片(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。
图9是图示了应用有根据本公开的一个实施例的存储设备的存储器卡***的框图。
参考图9,存储器卡***2000可以包括存储器控制器2100、存储器设备2200和连接器2300。
存储器控制器2100耦合到存储器设备2200。存储器控制器2100可以访问存储器设备2200。例如,存储器控制器2100可以控制存储器设备2200的读取、写入、擦除和后台操作。存储器控制器2100可以提供存储器设备2200和主机之间的接口。存储器控制器2100可以运行用于控制存储器设备2200的固件。存储器控制器2100可以以与上面参考图1所描述的存储器控制器200相同的方式实现。
在一个实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和ECC电路之类的组件。
存储器控制器2100可以通过连接器2300与外部设备通信。存储器控制器2100可以基于特定通信标准与外部设备(例如,主机)通信。在一个实施例中,存储器控制器2100可以通过各种通信标准或接口中的至少一种来与外部设备通信,通信标准或接口诸如是通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、PCI快速(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用快闪存储(UFS)、WiFi、蓝牙和非易失性存储器快速(NVMe)。在一个实施例中,连接器2300可以由上述各种通信标准或接口中的至少一种来定义。
在一个实施例中,存储器设备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、MMCmicro或eMMC)、SD卡(SD、miniSD、microSD或SDHC)或通用快闪存储(UFS)。
图10是图示了应用根据本公开的一个实施例的存储设备的固态驱动器(SSD)***的框图。
参考图10,SSD***3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器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快速(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型盘接口(ESDI)、集成驱动电子设备(IDE)、火线、通用快闪存储(UFS)、WiFi、蓝牙和非易失性存储器快速(NVMe)通信标准或接口。
辅助电源3230可以通过电源连接器3002而耦合到主机3100。辅助电源3230可以由主机3100的电源PWR供应,并且可以被充电。当来自主机3100的电源供应没有被顺利执行时,辅助电源3230可以向SSD 3200供应电源。在一个实施例中,辅助电源3230可以位于SSD3200内部或位于SSD 3200外部。例如,辅助电源3230可以位于主板中,并且还可以向SSD3200提供辅助电源。
缓冲存储器3240可以起到SSD 3200的缓冲存储器的作用。例如,缓冲存储器3240可以临时存储从主机3100接收到的数据或从多个快闪存储器3221至322n接收到的数据,或者可以临时存储快闪存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM之类的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM之类的非易失性存储器。
图11是图示了应用有根据本公开的一个实施例的存储设备的用户***的框图。
参考图11,用户***4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以执行用户***4000、操作***(OS)、用户程序等中包括的组件。在一个实施例中,应用处理器4100可以包括用于控制用户***4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上***(SoC)的形式。
存储器模块4200可以起到用户***4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器的作用。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在一个实施例中,应用处理器4100和存储器模块4200可以基于叠层封装(POP)进行封装,然后可以被提供为单个半导体封装。
网络模块4300可以与外部设备通信。在一个实施例中,网络模块4300可以支持无线通信,无线通信诸如是码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、无线LAN(WLAN)、UWB、蓝牙或WiFi。在一个实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收到的数据。替代地,存储模块4400可以将存储在存储模块4400中的数据发送到应用处理器4100。在一个实施例中,存储模块4400可以被实现为非易失性半导体存储器设备,非易失性半导体存储器设备诸如是相变式RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND快闪存储器、NOR快闪存储器或具有3D结构的NAND闪存。在一个实施例中,存储模块4400可以被提供为可移动存储介质(可移动驱动器),诸如用户***4000的存储器卡或外部驱动器。
在一个实施例中,存储模块4400可以包括多个非易失性存储器设备,每个非易失性存储器设备可以以与上面参考图1所描述的存储器设备100相同的方式来操作。存储模块4400可以以与上面参考图1所描述的存储设备50相同的方式来操作。
用户接口4500可以包括向应用处理器4100输入数据或指令或者向外部设备输出数据的接口。在一个实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器和监视器。
根据本公开,提供了一种用于跳过来自主机的不必要的复位请求的存储器控制器,以及操作该存储器控制器的方法。
虽然本发明已经关于具体实施例进行了描述,但是对于本领域技术人员来说显而易见的是,在不背离如所附权利要求中所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。此外,可以对实施例进行组合以形成附加的实施例。
Claims (22)
1.一种操作存储器控制器的方法,包括:
基于与主机的多个启动阶段相关的启动工作负载信息来确定从所述主机接收到的复位请求是否有效;以及
根据所述复位请求是否有效,对存储器设备执行复位操作。
2.根据权利要求1所述的方法,其中所述多个启动阶段包括由所述主机执行的上电阶段、只读存储器ROM读取阶段、启动加载程序加载阶段、操作***内核加载阶段以及内核恢复阶段。
3.根据权利要求2所述的方法,其中确定所述复位请求是否有效包括:基于所述启动工作负载信息来确定所述主机在所述多个启动阶段之中进入的目标阶段;以及
基于所述主机在其中向所述存储器控制器提供所述复位请求的所述目标阶段来确定所述复位请求是否有效。
4.根据权利要求3所述的方法,其中:
确定所述目标阶段包括:当所述启动工作负载信息包括发送对从所述主机接收到的停电命令的响应的历史时,将所述上电阶段确定为所述目标阶段,所述响应被发送到所述主机,以及
所述停电命令是查询所述存储器设备的电源是否能够被正常关闭的命令。
5.根据权利要求3所述的方法,其中确定所述目标阶段包括:当所述启动工作负载信息不包括从所述主机接收读取请求或写入请求的历史时,将所述ROM读取阶段确定为所述目标阶段。
6.根据权利要求3所述的方法,其中确定所述目标阶段包括:当与从所述主机接收到的读取请求和写入请求相对应的数据量等于或大于参考值时,将所述启动加载程序加载阶段确定为所述目标阶段,所述启动工作负载信息包括所述数据量的信息。
7.根据权利要求3所述的方法,其中确定所述目标阶段包括:当所述启动工作负载信息不包括指示在所述启动加载程序加载阶段之后所述内核已经进入恢复模式的通知消息的接收历史时,将所述操作***内核加载阶段确定为所述目标阶段。
8.根据权利要求2所述的方法,其中确定所述复位请求是否有效包括:将在所述ROM读取阶段、所述启动加载程序加载阶段或所述操作***内核加载阶段之后接收到的所述复位请求确定为无效。
9.根据权利要求2所述的方法,其中确定所述复位请求是否有效包括:将在所述上电阶段或所述内核恢复阶段中接收到的所述复位请求确定为有效。
10.根据权利要求1所述的方法,其中:
当所述复位请求有效时,所述复位操作被执行,以及
所述复位操作包括:
执行关闭所述存储器设备的电源并且再次开启所述电源的冷启动,以及
对所述存储器设备的突然断电恢复操作。
11.根据权利要求1所述的方法,还包括:当所述复位请求无效时,忽略所述复位请求。
12.一种存储器控制器,包括:
启动工作负载信息存储部,被配置为存储与主机的多个启动阶段相关的启动工作负载信息;以及
复位控制器,被配置为:
基于所述启动工作负载信息来确定从所述主机接收到的复位请求是否有效,以及
当确定所述复位请求有效时,对所述存储器设备执行复位操作。
13.根据权利要求12所述的存储器控制器,其中所述多个启动阶段包括由所述主机执行的上电阶段、只读存储器ROM读取阶段、启动加载程序加载阶段和操作***内核加载阶段。
14.根据权利要求13所述的存储器控制器,其中所述复位控制器基于所述启动工作负载信息来确定所述主机在所述多个启动阶段之中进入的目标阶段,并且基于所述主机在其中向所述存储器控制器提供所述复位请求的所述目标阶段来确定所述复位请求是否有效。
15.根据权利要求14所述的存储器控制器,其中:
所述复位控制器被配置为当所述启动工作负载信息包括发送对从所述主机接收到的停电命令的响应的历史时,将所述上电阶段确定为所述目标阶段,所述响应被发送到所述主机,以及
所述停电命令是查询所述存储器设备的电源是否能够被正常关闭的命令。
16.根据权利要求14所述的存储器控制器,其中所述复位控制器被配置为当所述启动工作负载信息不包括从所述主机接收读取请求或写入请求的历史时,将所述ROM读取阶段确定为所述目标阶段。
17.根据权利要求14所述的存储器控制器,其中所述复位控制器被配置为当与从所述主机接收到的读取请求和写入请求相对应的数据量等于或大于参考值时,将所述启动加载程序加载阶段确定为所述目标阶段,所述启动工作负载信息包括所述数据量的信息。
18.根据权利要求14所述的存储器控制器,其中所述复位控制器被配置为当所述启动工作负载信息不包括指示在所述启动加载程序加载阶段之后所述内核已经进入恢复模式的通知消息的接收历史时,将所述操作***内核加载阶段确定为所述目标阶段。
19.根据权利要求13所述的存储器控制器,
其中所述复位控制器被配置为将在所述ROM读取阶段、所述启动加载程序加载阶段或所述操作***内核加载阶段之后接收到的所述复位请求确定为无效,以及
其中所述复位控制器还被配置为忽略被确定为无效的所述复位请求。
20.根据权利要求13所述的存储器控制器,
其中所述复位控制器被配置为将在所述上电阶段或所述内核的恢复模式中接收到的所述复位请求确定为有效,以及
其中所述复位操作包括:
关闭所述存储器设备的电源并且再次开启所述电源的冷启动,以及
对所述存储器设备的突然断电恢复操作。
21.一种控制器的操作方法,所述方法包括:
响应于有效复位请求来复位存储器设备;以及
忽略无效复位请求,
其中所述有效复位请求是在上电阶段或操作***内核恢复阶段期间被提供的复位请求,
其中所述无效复位请求是在只读存储器ROM读取阶段、启动加载程序加载阶段或操作***内核加载阶段之后被提供的复位请求,以及
其中所述多个阶段包括所述上电阶段、所述ROM读取阶段、所述启动加载程序加载阶段、所述操作***内核加载阶段以及所述操作***内核恢复阶段,所述多个阶段与提供所述复位请求的主机的启动操作相关。
22.根据权利要求21所述的方法,
还包括:基于被存储在所述控制器中并且与相应阶段相关的信息来将所述多个阶段中的一个阶段标识为所述主机的当前阶段,
其中所述多个阶段具有所述上电阶段、所述ROM读取阶段、所述启动加载程序加载阶段、所述操作***内核加载阶段以及然后所述操作***内核恢复阶段的顺序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220049331A KR20230149967A (ko) | 2022-04-21 | 2022-04-21 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2022-0049331 | 2022-04-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116931820A true CN116931820A (zh) | 2023-10-24 |
Family
ID=88385251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310141750.XA Pending CN116931820A (zh) | 2022-04-21 | 2023-02-21 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12039174B2 (zh) |
KR (1) | KR20230149967A (zh) |
CN (1) | CN116931820A (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262178B2 (en) | 2012-01-30 | 2016-02-16 | Intel Corporation | Method for reducing platform boot times by providing lazy input/output abstractions |
US9489299B2 (en) * | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9117520B2 (en) * | 2013-06-19 | 2015-08-25 | Sandisk Technologies Inc. | Data encoding for non-volatile memory |
US9489294B2 (en) * | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9489300B2 (en) * | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9117514B2 (en) * | 2013-06-19 | 2015-08-25 | Sandisk Technologies Inc. | Data encoding for non-volatile memory |
US9390008B2 (en) * | 2013-12-11 | 2016-07-12 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
KR20170139730A (ko) | 2016-06-09 | 2017-12-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2022
- 2022-04-21 KR KR1020220049331A patent/KR20230149967A/ko unknown
- 2022-10-14 US US17/966,487 patent/US12039174B2/en active Active
-
2023
- 2023-02-21 CN CN202310141750.XA patent/CN116931820A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230149967A (ko) | 2023-10-30 |
US20230342040A1 (en) | 2023-10-26 |
US12039174B2 (en) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11449417B2 (en) | Memory controller performing host-aware performance booster mode and method of operating the same | |
US11853202B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
US11481272B2 (en) | Memory controller and method of operating the same | |
US11237766B2 (en) | Storage device and method of operating of the storage device | |
US11422739B2 (en) | Memory controller and method of operating the same | |
US10996881B2 (en) | Storage device and method of operating the same | |
US20210303476A1 (en) | Memory controller and method of operating the same | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
US11960765B2 (en) | Storage device and method of operating the same | |
US11449277B2 (en) | Memory controller and method of operating the same | |
US11281512B2 (en) | Storage device providing device-to-host information to host and operating method thereof | |
US11481135B2 (en) | Storage device and method of operating the storage device | |
US11003392B2 (en) | Memory controller and method of operating the memory controller | |
US11294596B2 (en) | Memory controller and operating method thereof | |
US12039174B2 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US12032850B2 (en) | Memory controller performing booting operation and method of operating the same | |
US11467745B2 (en) | Storage device and method of operating the same | |
CN114546252B (zh) | 存储设备及其操作方法 | |
US20220334760A1 (en) | Storage device and method of operating the same | |
CN116804909A (zh) | 存储装置及其操作方法 | |
CN114546252A (zh) | 存储设备及其操作方法 | |
CN114446357A (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 |