数据存储装置及其操作方法与流程

文档序号:33506022发布日期:2023-03-18 00:41阅读:61来源:国知局
数据存储装置及其操作方法与流程
数据存储装置及其操作方法
1.相关申请的交叉引用
2.本专利申请文件要求于2021年9月15日提交的、申请号为10-2021-0123328的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
3.所公开的技术总体上涉及一种电子装置,并且更具体地,涉及一种数据存储装置及其操作方法。


背景技术:

4.数据存储装置是由诸如计算机或智能手机的主机装置用来存储数据的装置。数据存储装置可以包括用于存储数据的存储器装置和用于控制存储器装置的存储器控制器。存储器装置被分类为易失性存储器装置和非易失性存储器装置。
5.易失性存储器装置仅在装置通电时保留其数据,而在断电时丢失其数据。易失性存储器装置的示例可以包括静态随机存取存储器(sram)和动态随机存取存储器(dram)。
6.非易失性存储器装置即使在没有供电的情况下也可以保留所存储的数据,因此在断电时不会丢失其数据。非易失性存储器装置的示例可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)以及电可擦除rom(eerom)、闪速存储器。


技术实现要素:

7.所公开的技术可以在一些实施例中实施以提供一种可以改进引导(booting)操作的数据存储装置和该数据存储装置的操作方法。
8.在所公开技术的一方面,提供了一种存储装置,包括:存储器装置,包括一个或多个引导分区(boot partition),该一个或多个引导分区被配置为存储用于运行操作系统的引导数据;以及存储器控制器,联接到存储器装置,并且被配置为在接收到电力时执行重建操作以恢复包括活动(active)引导分区信息的第一系统数据并将活动引导分区信息提供到主机,该活动引导分区信息与一个或多个引导分区之中的被激活的引导分区相关联,其中,当存储器控制器从主机接收到基于活动引导分区信息的引导分区读取请求时,存储器控制器将存储在与活动引导分区信息相对应的引导分区中的引导数据传输到主机。
9.在所公开技术的另一方面,提供了一种操作存储装置的方法,该存储装置包括一个或多个引导分区,该一个或多个引导分区被配置为存储用于运行操作系统的引导数据,该方法包括:在接收到电力时执行重建操作以恢复包括活动引导分区信息的第一系统数据,该活动引导分区信息与一个或多个引导分区之中的被激活的引导分区相关联;在第一系统数据被恢复时,将活动引导分区信息传输到主机;以及响应于从主机接收到基于活动引导分区信息的引导分区读取请求,将存储在与活动引导分区信息相对应的引导分区中的引导数据传输到主机。
10.在所公开技术的另一方面,提供了一种系统,包括:存储器装置,包括一个或多个
引导分区,该一个或多个引导分区被配置为存储用于运行操作系统的引导数据;存储器控制器,联接到存储器装置,并且被配置为在接收到电力时执行重建操作以恢复包括活动引导分区信息的第一系统数据,该活动引导分区信息与一个或多个引导分区之中的被激活的引导分区相关联;以及主机,与存储器控制器通信,并且被配置为检查来自存储器控制器的第一系统数据,并将基于活动引导分区信息的引导分区读取请求传输到存储器控制器,其中,在存储器控制器处接收到引导分区读取请求时,存储器控制器将存储在与活动引导分区信息相对应的引导分区中的引导数据传输到主机。
附图说明
11.图1是示出基于所公开技术的实施例的存储装置的示例的示图。
12.图2是示出基于所公开技术的实施例的存储器装置的示例的框图。
13.图3是示出基于所公开技术的实施例的将数据存储在引导分区中的示例的示图。
14.图4是示出基于所公开技术的实施例的读取存储在引导分区中的数据的示例的示图。
15.图5是示出基于所公开技术的实施例的在存储装置和主机之间执行的操作的示图。
16.图6是示出基于所公开技术的实施例的存储器控制器的示例的示图。
17.图7是示出基于所公开技术的实施例的存储装置的操作方法的示例的示图。
18.图8是示出基于所公开技术的另一实施例的存储器控制器的示例的示图。
19.图9是示出基于所公开技术的实施例的固态驱动器(ssd)的示例的示图。
具体实施方式
20.所公开技术的实施例涉及一种可以执行有效引导操作的数据存储装置。
21.图1是示出基于所公开技术的实施例的存储装置的示例的示图。
22.参照图1,存储装置1000可以包括存储器装置100和存储器控制器200。存储装置1000可以是在诸如以下的主机2000的控制下存储数据的装置:移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、显示装置、平板pc或车载信息娱乐系统。在本技术专利文件中,术语“存储装置”用于指示数据存储装置。
23.根据作为与主机2000的通信方案的主机接口,存储装置1000可以被制造为各种类型的存储装置中的任何一种。例如,存储装置1000可以利用诸如以下的各种类型的存储装置中的任何一种来实施:固态驱动器(ssd)、多媒体卡(mmc)、嵌入式mmc(emmc)、尺寸减小的mmc(rs-mmc)、微型mmc(micro-mmc)、安全数字(sd)卡、迷你sd卡、微型sd卡、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡(smc)、记忆棒等。
24.存储装置1000可以被实施为各种封装类型中的任何一种。例如,存储装置1000可以被实施为诸如以下的各种封装类型中的任意一种:堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)和晶圆级堆叠封装(wsp)。
25.存储器装置100可以存储数据或读取所存储的数据。具体地,存储器装置100在存储器控制器200的控制下进行操作。此外,存储器装置100可以包括多个存储器管芯,并且多
个存储器管芯中的每一个可以包括存储器单元阵列,存储器单元阵列包括用于存储数据的多个存储器单元。
26.存储器单元中的每一个可以被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或存储四个数据位的四层单元(qlc)。
27.存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元,并且一个存储块可以包括多个页面。页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
28.存储器装置100可以被实施为双倍数据速率同步动态随机存取存储器(ddr sdram)、第4代低功率双倍数据速率(lpddr4)sdram、图形双倍数据速率(gddr)sram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand闪速存储器、nor闪速存储器、电阻式随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻式随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移扭矩随机存取存储器(stt-ram)等。在本说明书中,为了便于描述,假设并描述了存储器装置100是nand闪速存储器的情况。
29.存储器装置100可以从存储器控制器200接收命令和地址。存储器装置100可以访问存储器单元阵列中由接收到的地址所选择的区域。存储器装置100访问所选择的区域可以表示存储器装置100对所选择的区域执行与接收到的命令相对应的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。编程操作可以是存储器装置100将数据记录在由地址所选择的区域中的操作。读取操作可以表示存储器装置100从由地址所选择的区域读取数据的操作。擦除操作可以表示存储器装置100擦除由地址所选择的区域中存储的数据的操作。
30.存储器控制器200可以控制存储装置1000的全部操作。
31.当向存储装置1000施加电力时,存储器控制器200可以运行固件(fw)。fw可以包括:主机接口层(hil),接收从主机2000输入的请求或向主机2000输出响应;闪存转换层(ftl),管理主机2000的接口与存储器装置100的接口之间的操作;以及闪存接口层(fil),向存储器装置100提供命令或从存储器装置100接收响应。
32.存储器控制器200可以从主机2000接收数据和逻辑地址(la),并且将la转换为物理地址(pa),该pa指示存储器装置100中包括的、待存储数据的存储器单元的地址。la可以是逻辑块地址(lba),并且pa可以是物理块地址(pba)。
33.存储器控制器200可以响应于来自主机2000的请求而控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以将编程命令、pba和数据提供到存储器装置100。在读取操作中,存储器控制器200可以将读取命令和pba提供到存储器装置100。在擦除操作中,存储器控制器200可以将擦除命令和pba提供到存储器装置100。
34.存储器控制器200可以控制存储器装置100自主地执行编程操作、读取操作或擦除操作,而不管来自主机2000的任何请求。例如,存储器控制器200可以控制存储器装置100执行用于执行诸如损耗均衡、垃圾收集或读取回收的后台操作的编程操作、读取操作或擦除操作。具体地,存储器控制器200可以不管来自主机2000的任何请求而自主地生成命令、地址和数据,并将所生成的命令、所生成的地址和所生成的数据传输到存储器装置100。即,存
储器控制器200可以向存储器装置100提供命令、地址和数据,这些命令、地址和数据用于执行诸如损耗均衡、垃圾收集或读取回收的后台操作。
35.在实施例中,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制存储器装置,从而提高操作性能。交错方案可以是用于将对至少两个存储器装置100的操作控制为彼此重叠的方案。
36.在所公开技术的实施例中,存储器控制器200可以执行重建操作以恢复存储在存储器装置100中的系统数据。在一些实施方案中,引导操作可以包括重建操作。在一个示例中,重建操作包括为主机2000准备初始设置以运行操作系统(os),使得存储装置1000可以处理从主机2000接收的请求。
37.在一些实施方案中,当向存储装置1000供电(上电)时,存储器控制器200可以将存储在存储器装置100中的系统数据加载到存储器控制器200中的另一个存储器,例如缓冲存储器。系统数据可以包括存储器控制器200控制存储装置1000所需的设置信息。例如,系统数据可以包括用于存储器控制器200的固件(fw)的操作的设置数据。在另一个实施方案中,系统数据可以包括设置信息或数据,该设置信息或数据包括用于根据来自主机2000的请求(例如,读取请求、写入请求或擦除请求)来执行内部操作(例如,读取操作、写入操作或擦除操作)的参数。例如,系统数据可以包括关于存储器装置100中包括的多个存储块之中的坏块的信息。作为另一个示例,系统数据可以包括用于指示从主机2000提供的逻辑地址与存储器装置100中包括的存储器单元的物理地址之间的映射关系的映射数据。系统数据还可以包括用于指示存储在存储器装置100中包括的页面中的数据是否为有效数据的有效页面表数据。另外,系统数据可以包括指示对存储器装置100中包括的存储块执行的读取操作的次数的读取计数数据、指示存储器装置100中包括的被擦除的存储块的数量的循环数据、指示存储器装置100中包括的页面中存储的数据是冷数据还是热数据的热/冷数据以及指示映射数据的内容的变化的日志数据。在一些实施方案中,系统数据可以包括存储空间信息、关于读取/编程的失败信息、用于系统安全和加密的安全信息等。
38.在所公开技术的实施例中,存储装置1000可以支持引导分区功能。引导分区功能可以包括提供待对主机2000的rom运行的引导加载程序(boot loader)。具体地,存储器装置100可以包括引导分区111。在一个示例中,引导分区111可以通过主机2000使用存储器控制器200的队列进行访问。在另一个示例中,主机2000可以在不使用存储器控制器200的队列或者不对存储器控制器200执行初始化的情况下访问引导分区111。在实施例中,存储在引导分区111中的引导数据包括可以用于运行os的系统数据。此外,引导分区111可以被分配给存储器装置100中包括的存储块中的一些存储块。
39.引导分区111可以通过与用于访问存储器装置100中包括的其他存储块(例如,存储用户数据的存储块)的命令不同的命令来访问。即,主机2000可以通过使用用于访问引导分区111的专用命令来访问引导分区111。
40.在实施例中,主机2000可以将辅助os存储在引导分区111中,并在必要时加载辅助os。即,可以提供引导分区111以及存储在引导分区111中的引导数据作为允许主机2000在新的引导环境中引导的手段。
41.在实施例中,用于访问引导分区111的专用命令可以用于使引导加载程序通过辅助os来进行引导。即,引导分区111可以允许主机2000通过仅使用存储在引导分区111中的
引导数据来利用空闲os或另一个可用os进行引导,而无需将存储在存储装置1000中的引导映像(image)存储在另一存储区域中。
42.在实施例中,存储器控制器200可以将数据存储在引导分区111中或者将存储在引导分区111中的数据提供到主机2000。此外,存储器控制器200可以根据主机2000的请求来访问引导分区111。
43.在实施例中,在向存储装置供电时,即使是在没有接收到来自主机2000的任何请求的情况下,存储器控制器200也可以控制存储器装置100读取存储在引导分区111中的引导数据。即,存储器控制器200可以在接收到来自主机2000的请求之前控制存储器装置100预先读取存储在引导分区111中的引导数据。
44.主机2000可以使用诸如以下的各种通信方式中的至少一种与存储装置1000通信:通用串行总线(usb)、串行at附件(sata)、高速芯片间(hsic)、小型计算机系统接口(scsi)、火线、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)和负载减少的dimm(lrdimm)。
45.在所公开技术的实施例中,存储装置1000可以将关于激活状态下的引导分区111的活动引导分区信息,诸如活动引导分区id(abpid),快速地传送到主机2000,并且主机2000可以通过使用存储在引导分区111中的引导数据来快速地执行引导操作。在所公开技术的实施例中,存储装置1000可以执行重建操作以恢复包括关于被激活的引导分区111的信息的系统数据,并实施比现有引导操作更快的引导操作。
46.在所公开技术的实施例中,存储装置1000可以包括系统数据块112。系统数据块112可以存储包括诸如活动引导分区信息(例如,abpid)的关于被激活的引导分区111的信息的系统数据。系统数据可以包括存储器控制器200控制存储装置1000所需的设置信息。例如,系统数据可以包括用于存储器控制器200的fw的操作的设置数据。在另一个实施方案中,系统数据可以包括设置信息或数据,该设置信息或数据包括根据来自主机2000的请求(例如,读取请求、写入请求或擦除请求)来执行存储器装置100的内部操作(例如,读取操作、写入操作或擦除操作)所需的参数。在另一个实施方案中,系统数据可以包括元数据,该元数据包括存储器装置100中包括的多个存储块的地址的映射信息。例如,系统数据可以包括坏块数据和映射数据,该坏块数据是关于存储器装置100中包括的多个存储块之中的坏块的信息,该映射数据指示从主机2000提供的逻辑地址与存储器装置100中包括的存储器单元的物理地址之间的映射关系。系统数据还可以包括指示存储在存储器装置100中包括的页面中的数据是否为有效数据的有效页面表数据。另外,系统数据可以包括指示对存储器装置100中包括的存储块执行的读取操作的次数的读取计数数据、指示存储器装置100中包括的存储块被擦除的次数的循环数据、指示存储器装置100中包括的页面中存储的数据是冷数据还是热数据的热/冷数据以及指示映射数据的内容的变化的日志数据。在一些实施方案中,系统数据可以包括存储空间信息、关于读取/编程的失败信息、用于系统安全和加密的安全信息等。
47.图2是示出基于所公开技术的实施例的存储器装置的示例的框图。
48.参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
49.存储器单元阵列110包括多个存储块blk1至blkz。存储块blk1至blkz通过行线rl连接到行解码器121。行线rl可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。存储块blk1至blkz通过位线bl1至bln连接到页面缓冲器组123。存储块blk1至blkz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。连接到相同字线的存储器单元可以被定义为一个页面。因此,一个存储块可以包括多个页面。
50.存储器单元阵列110中包括的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(slc)、存储两个数据位的多层单元(mlc)、存储三个数据位的三层单元(tlc)或存储四个数据位的四层单元(qlc)。
51.外围电路120可以被配置为在控制逻辑130的控制下对存储器单元阵列110的所选择区域执行编程操作、读取操作或擦除操作。即,外围电路120可以在控制逻辑130的控制下激活存储器单元阵列110。例如,外围电路120可以在控制逻辑130的控制下将各种操作电压施加到行线rl和位线bl1至bln或使所施加的电压放电。
52.具体地,外围电路120可以包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
53.行解码器121可以通过行线rl连接到存储器单元阵列110。行线rl可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可以包括正常字线和虚设(dummy)字线。在实施例中,行线rl可以进一步包括管道选择线。
54.行解码器121可以在控制逻辑130的控制下操作。行解码器121可以从控制逻辑130接收行地址radd。具体地,行解码器121可以对行地址radd进行解码。行解码器121可以根据解码后的地址选择存储块blk1至blkz之中的至少一个存储块。此外,行解码器121可以根据解码后的地址来选择所选择的存储块的至少一个字线,以将电压生成器122所生成的电压施加到该至少一个字线wl。
55.例如,在编程操作中,行解码器121可以将编程电压施加到所选择的字线,并将电平比编程电压的电平低的编程通过电压施加到未选择的字线。在编程验证操作中,行解码器121可以将验证电压施加到所选择的字线,并将高于验证电压的验证通过电压施加到未选择的字线。在读取操作中,行解码器121可以将读取电压施加到所选择的字线,并将高于读取电压的读取通过电压施加到未选择的字线。
56.在实施例中,可以以存储块为单位执行存储器装置100的擦除操作。在擦除操作中,行解码器121可以根据解码后的地址选择一个存储块。在擦除操作中,行解码器121可以将接地电压施加到连接到所选择的存储块的字线。
57.电压生成器122可以在控制逻辑130的控制下操作。具体地,电压生成器122可以在控制逻辑130的控制下,通过使用供应到存储器装置100的外部电源电压来生成多个电压。例如,电压生成器122可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、读取电压、擦除电压等。即,电压生成器122可以响应于操作信号opsig而生成用于编程操作、读取操作和擦除操作的各种操作电压vop。
58.在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。电压生成器122生成的内部电源电压可以用作存储器单元阵列110的操作电压。
59.在实施例中,电压生成器122可以通过使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器122可以包括用于接收内部电源电压的多个泵浦电容器,并且
在控制逻辑130的控制下通过选择性地激活多个泵浦电容器来生成多个电压。另外,多个所生成的电压可以由行解码器121供应到存储器单元阵列110。
60.页面缓冲器组123可以包括第一页面缓冲器pb1至第n页面缓冲器pbn。第一页面缓冲器pb1至第n页面缓冲器pbn可以分别通过第一位线bl1至第n位线bln连接到存储器单元阵列110。此外,第一位线bl1至第n位线bln可以在控制逻辑130的控制下操作。具体地,第一位线bl1至第n位线bln可以响应于页面缓冲器控制信号pbsignals而操作。例如,第一页面缓冲器pb1至第n页面缓冲器pbn可以临时存储通过第一位线bl1至第n位线bln接收的数据,或者在读取操作或验证操作中感测第一位线bl1至第n位线bln的电压或电流。
61.具体地,在编程操作中,当将编程电压施加到所选择的字线时,第一页面缓冲器pb1至第n页面缓冲器pbn可以通过第一位线bl1至第n位线bln将通过输入/输出电路125接收的数据data传送到所选择的存储器单元。可以根据所传送的数据data对所选择的页面的存储器单元进行编程。连接到被施加编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。连接到被施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以保持不变。
62.在编程验证操作中,第一页面缓冲器pb1至第n页面缓冲器pbn可以通过第一位线bl1至第n位线bln从所选择的存储器单元读取页面数据。
63.在读取操作中,第一页面缓冲器pb1至第n页面缓冲器pbn可以通过第一位线bl1至第n位线bln从所选择的页面的存储器单元读取数据data,并且在列解码器124的控制下将读取数据data输出到输入/输出电路125。
64.在擦除操作中,第一页面缓冲器pb1至第n页面缓冲器pbn可以使第一位线bl1至第n位线bln浮置。
65.列解码器124可以响应于列地址cadd而在输入/输出电路125和页面缓冲器组123之间进行数据通信。例如,列解码器124可以通过数据线dl与第一页面缓冲器pb1至第n页面缓冲器pbn进行数据通信,或者通过列线cl与输入/输出电路125进行数据通信。
66.输入/输出电路125可以将从存储器控制器200接收的命令cmd和地址addr传送到控制逻辑130,或者与列解码器124交换数据data。
67.在读取操作或验证操作中,感测电路126可以响应于允许位vrybit信号而生成参考电流,并且通过将从页面缓冲器组123接收的感测电压vpb与参考电流所生成的参考电压进行比较来输出通过信号pass或失败信号fail。
68.控制逻辑130可以响应于命令cmd和地址addr,通过输出操作信号opsig、行地址radd、页面缓冲器控制信号pbsignals和允许位vrybit而控制外围电路120。此外,控制逻辑130可以响应于通过信号pass或失败信号fail而确定验证操作已经通过还是失败。此外,控制逻辑130可以控制页面缓冲器组123将包括通过信号pass或失败信号fail的验证信息临时存储在页面缓冲器组123中。
69.在所公开技术的实施例中,存储器装置100可以包括引导分区111。在一个示例中,引导分区111可以被分配给存储器单元阵列110中包括的多个存储块中的一些。在实施例中,引导分区111可以通过与用于访问存储器装置100中包括的其他存储块(例如,存储用户数据的存储块)的命令不同的命令来访问。
70.在实施例中,存储器单元阵列110可以包括存储系统数据的系统块。系统块可以被
实施为具有与存储从主机2000传输的用户数据的存储块相同的结构。
71.在实施例中,存储在系统块中的系统数据可以通过重建操作从存储器装置100传输到存储器控制器200。重建操作是引导操作的一部分,并且可以包括为主机2000准备初始设置以运行操作系统(os),使得存储装置1000可以处理从主机2000接收的请求。
72.图3是示出基于所公开技术的实施例的将数据存储在引导分区中的示例的示图。
73.参照图3,引导分区111可以包括第一引导分区111-1和第二引导分区111-2。另外,第一引导分区111-1和第二引导分区111-2可以具有大小相同的存储装置。例如,一个引导分区(例如,111-1或111-2)的大小可以为32mb。在实施例中,一个引导分区(例如,111-1或111-2)的大小可以小于存储器装置100中包括的一个存储块的大小。在各个实施例中,引导分区可以具有大小不同的存储装置。
74.在所公开技术的实施例中,第一引导分区111-1和第二引导分区111-2是相互独立的区域,并且存储不同的引导数据。在另一个实施方案中,出于备份和安全的原因,第一引导分区111-1和第二引导分区111-2可以存储相同的数据。
75.主机2000可以通过使用专用命令将数据存储在引导分区111中。例如,主机2000可以通过使用固件映像下载命令和固件提交命令将数据存储在引导分区111中。在各个实施例中,引导分区111可以仅在通过认证密钥执行认证时被访问。
76.具体地,主机2000可以向存储器控制器200发出固件映像下载命令fid cmd,以向存储器控制器200提供待存储在引导分区111中的引导分区映像bpi。在实施例中,待由主机2000提供到引导分区111的引导分区映像bpi可以包括多个部分。因此,各个部分的偏移量可以包括在固件映像下载命令中。另外,主机2000可以将待存储在引导分区111中的引导分区映像bpi提供到存储器控制器200。在实施例中,存储器控制器200和主机2000可以认证对引导分区111的访问并将引导分区111设置为处于解锁状态,以便将数据存储在引导分区111中。
77.随后,主机2000可以提供固件提交命令fc cmd以指示存储器控制器利用所提供的引导分区映像bpi来替换或更新引导分区111的内容。在实施例中,固件提交命令fc cmd可以包括关于待替换的引导分区id bpid的信息。另外,存储器控制器200可以基于从主机2000提供的关于引导分区id bpid的信息,利用引导分区映像bpi来替换引导分区111的内容。例如,主机2000可以向存储器控制器200发出固件提交命令fc cmd,使得固件提交命令fc cmd包括关于第一引导分区111-1的id bpid的信息,并且存储器控制器200可以根据固件提交命令fc cmd,利用新的引导分区映像bpi来替换存储在第一引导分区111-1中的数据。
78.图4是示出基于所公开技术的实施例的读取存储在引导分区中的数据的示例的示图。
79.参照图4,主机2000可以包括主机存储器2100。主机存储器2100是缓冲存储器,并且可以是易失性存储器装置。例如,主机存储器2100可以是动态随机存取存储器(dram)或静态随机存取存储器(sram)。
80.主机2000可以在主机存储器2100中分配引导分区存储缓冲区(boot partition memory buffer),使得存储器控制器200可以复制引导分区111中存储的数据。具体地,主机2000可以初始化引导分区存储缓冲区的基地址。此外,主机2000可以设置所分配的引导分
区存储缓冲区的地址、待读取的引导分区id、读取大小和读取偏移量。此外,主机2000可以基于所分配的引导分区存储缓冲区的地址、待读取的引导分区id、读取大小和/或读取偏移量向存储器控制器200提供读取请求。存储器控制器200可以顺序地读取主机2000请求的存储在引导分区111中的数据,并将所读取的数据提供到主机存储器2100。
81.图5是示出基于所公开技术的实施例的在存储装置和主机之间执行的操作的示图。
82.参照图5,根据时间的推移示出了主机2000、存储器装置100和存储器控制器200的操作。
83.首先,可以向主机2000、存储器装置100和存储器控制器200供电。另外,主机2000、存储器装置100和存储器控制器200中的每一个可以执行引导操作。引导操作可以包括准备初始化设置,使得在供电之后,主机2000可以运行操作系统并且存储装置1000可以处理从主机2000接收的请求。
84.另外,主机2000和存储器控制器200可以通过使用标志、消息包等来执行传输同步,或者执行包括连接请求信号的发送/接收等的握手(s61)。主机2000和存储器控制器200可以通过握手来检查另一侧的通信准备和恢复程度。
85.另外,存储器控制器200可以执行重建操作以恢复存储在存储器装置100中的系统数据(s62)。重建操作是引导操作的一部分,并且可以包括在供电之后恢复到正常状态。在实施例中,存储器控制器200可以执行重建操作以恢复包括诸如活动引导分区id(abpid)的活动引导分区信息的系统数据,该活动引导分区信息包括关于存储器装置100中包括的引导分区之中的被激活的引导分区的信息。存储器控制器200可以在重建操作期间加载存储在存储器装置100中的系统数据(s63)。在实施例中,也可以在存储器控制器200执行重建操作时在存储器装置100中执行重建操作。在实施例中,存储器装置100和存储器控制器200可以执行重建操作而不管是否有来自主机2000的任何请求或指令。在实施例中,存储器控制器200可以通过恢复包括引导分区的状态信息的系统数据来生成abpid。将参照图7详细描述生成abpid的方法。在实施例中,存储器控制器200可以恢复根据来自主机2000的读取请求、写入请求或擦除请求执行存储器装置100和存储器控制器200的内部操作(例如,读取操作、写入操作或擦除操作)所需的系统数据以及abpid。
86.另外,当存储包括abpid的系统数据时,存储器控制器200可以将abpid提供到主机2000(s64)。此外,在将abpid提供到主机2000之后,存储器控制器200可以继续后续的重建操作以恢复其他系统数据。在实施例中,可以在随后的重建操作中恢复执行存储器装置100和存储器控制器200的后台操作所需的系统数据。
87.在实施例中,为了使主机2000执行有效的引导操作,在abpid被传输到主机2000之后,存储器控制器200可以预先执行用于执行与abpid相对应的引导分区读取请求的操作一段时间tpre,直到接收到该引导分区读取请求。具体地,存储器控制器200可以在从主机2000接收到引导分区读取请求之前执行用于传输存储在引导分区中的数据的重建操作。可选地,存储器控制器200可以控制存储器装置100读取存储在与abpid相对应的引导分区中的数据,以减少引导时间。
88.当从主机2000接收到引导分区读取请求(s65)时,存储器控制器200可以控制存储器装置100执行引导分区读取操作。具体地,存储器控制器200可以控制存储器装置100读取
与引导分区读取请求相对应的引导分区,并且存储器装置100可以在存储器控制器200的控制下执行引导分区读取操作(s66)。
89.另外,存储器控制器200可以向主机2000提供通过执行引导分区读取操作而获得的结果。具体地,存储器控制器200可以向主机2000提供存储在引导分区中的引导数据(s67)。引导数据是一种系统数据,并且可以是用于运行操作系统(os)的数据。
90.另外,主机2000可以通过使用引导数据来运行os(s68)。主机2000和存储装置1000可以恢复用于运行os的引导数据以及包括引导参数的系统数据,从而可以快速地执行引导操作。在一个示例中,引导数据的恢复具有高于其他操作的最高优先级。即,即使在运行os之后,存储装置1000和主机2000也可以继续重建操作以恢复数据。
91.图6是示出基于所公开技术的实施例的存储器控制器的示例的示图。
92.参照图6,存储器控制器200可以包括引导分区控制器210和引导分区状态寄存器220。
93.引导分区控制器210可以根据主机2000的请求将引导数据存储在引导分区111中。在实施例中,引导数据可以用于运行主机2000的操作系统(os)。即,引导数据可以包括与主机2000的引导相关联的数据。在实施例中,引导分区控制器210可以在主机2000的控制下控制存储器装置100将数据存储在引导分区中或者读取存储在引导分区中的数据。即,引导分区控制器210可以将引导分区111的锁定状态设置为锁定或解锁,并且在相应的引导分区被解锁的状态下将数据存储在该相应的引导分区111中。
94.在所公开技术的实施例中,引导分区控制器210可以激活或停用(deactivate)引导分区111。指示引导分区111处于激活状态的状态信息可以被存储在引导分区状态寄存器220中。
95.在实施例中,引导分区控制器210可以基于存储在引导分区状态寄存器220中的状态信息来生成活动引导分区id(abpid)。由于引导分区控制器210从引导分区状态寄存器220获取状态信息,因此引导分区控制器210可以基于状态信息生成abpid以指示被激活的引导分区。
96.在实施例中,引导分区状态寄存器220可以存储引导分区111的状态信息。具体地,引导分区状态寄存器220可以存储关于引导分区111是否被激活、引导分区111的id和/或引导分区111是否被锁定的信息。即,引导分区111的状态信息可以包括引导分区id、表示引导分区111是否被激活的激活信息以及表示存储在引导分区111中的数据是否被保护的锁定信息中的至少一项。
97.引导分区id可以是用于标识多个引导分区中的每一个的特定编号。激活信息可以指示引导分区是否可用。可选地,激活信息可以用于指示存储在引导分区111中的数据是否可靠。处于活动状态的激活信息可以指示引导分区信息的全部或部分是否已经被正常存储。例如,当引导分区111中的第一引导分区处于激活状态时,存储在第一引导分区中的数据是可靠的。可选地,当第二引导分区处于停用状态时,即使当特定数据被存储在第二引导分区中,该特定数据也是不可靠的。因此,存储在第二引导分区中的数据不可用。
98.锁定信息可以指示存储在引导分区111中的数据是否受保护。具体地,当引导分区111处于锁定状态时,主机2000或存储器控制器200可以将数据存储在处于锁定状态的引导分区111中。由于存储在处于锁定状态的引导分区111中的数据是不可靠的,因此当数据被
存储在处于锁定状态的相应引导分区111中时,相应引导分区111可能被停用。另外,主机2000可以在数据被存储在引导分区111之前,通过认证将引导分区111的锁定状态设置成解锁状态。主机200可以在数据被存储在处于解锁状态的引导分区111中之后,将引导分区111的解锁状态设置成锁定状态。
99.图7是示出基于所公开技术的实施例的存储装置的操作方法的示例的示图。
100.参照图7,存储装置1000可以包括存储器装置100和存储器控制器200,并且存储器装置100可以包括存储用于运行操作系统的引导数据的引导分区。
101.当向存储装置1000供电(s810)时,存储装置1000可以恢复包括活动引导分区id(abpid)的第一系统数据(s820)。具体地,存储装置1000可以执行重建操作以恢复包括abpid的第一系统数据,该abpid表示关于引导分区之中的被激活的引导分区的信息。在实施例中,第一系统数据可以用于根据来自主机2000的读取请求、写入请求或擦除请求来执行存储装置1000的内部操作。在实施例中,当恢复第一系统数据时,存储装置1000可以恢复引导分区的状态信息。此外,存储装置1000可以基于状态信息生成abpid。状态信息可以包括引导分区是否被激活、引导分区的id以及引导分区是否被锁定中的至少一项。存储装置1000可以将abpid传输到主机2000(s830)。
102.此外,存储装置1000可以将与abpid相对应的引导数据传输到主机2000(s840)。具体地,当从存储装置1000接收到基于abpid的引导分区读取请求时,存储装置1000可以将存储在与abpid相对应的引导分区中的引导数据传输到主机2000。在各个实施例中,存储装置1000可以在从主机2000接收到引导分区读取请求之前,读取存储在与abpid相对应的引导分区中的引导数据。
103.在实施例中,在第一系统数据被恢复之后,存储装置1000可以恢复包括执行存储装置1000的后台操作所需的系统数据的第二系统数据。
104.图8是示出基于所公开技术的另一实施例的存储器控制器的示例的示图。
105.参照图8,示出了存储器控制器1300的配置。在所公开技术的实施例中,存储器控制器1300可以执行恢复存储在存储器装置100中的系统数据的重建操作。即,图8所示的存储器控制器1300可以是图1所示的存储器控制器200的实施例。存储器控制器1300可以包括处理器1310、ram 1320和ecc电路1330、rom 1360、主机接口1370和闪存接口1380。
106.处理器1310可以通过使用主机接口1370与主机2000通信,并且执行逻辑运算以控制存储器控制器1300的操作。例如,处理器1310可以基于从主机2000或外部装置接收的请求加载程序命令、数据文件、数据结构等,并且执行各种操作或生成命令和地址。例如,处理器1310可以生成编程操作、读取操作、擦除操作、挂起操作和参数设置操作所需的各种命令。
107.此外,处理器1310可以执行闪存转换层(ftl)的功能。处理器250可以通过ftl将主机2000提供的逻辑块地址(lba)转换为物理块地址(pba)。ftl可以通过使用映射表来接收lba,以将lba转换为pba。根据映射单位,存在ftl的几种地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
108.此外,处理器1310可以在没有来自主机2000的请求的情况下生成命令。例如,处理器1310可以生成用于诸如存储器装置100的损耗均衡操作以及存储器装置100的垃圾收集操作的后台操作的命令。
109.ram 1320可以用作处理器1310的缓冲存储器、工作存储器或高速缓存存储器。此外,ram 1320可以存储处理器1310运行的代码和命令。ram 1320可以存储处理器1310处理的数据。此外,ram 1320可以被实施为包括静态ram(sram)或动态ram(dram)。
110.ecc电路1330可以在编程操作或读取操作中检测错误,并且对检测到的错误进行校正。具体地,ecc电路1330可以根据错误校正码(ecc)执行错误校正操作。此外,ecc电路1330可以基于待写入存储器装置100的数据执行ecc编码。可以通过闪存接口1380将执行ecc编码的数据传送到存储器装置100。此外,ecc电路1330可以对通过闪存接口1380从存储器装置100接收的数据执行ecc解码。
111.rom 1360可以用作存储存储器控制器1300的操作所需的各种信息的存储单元。具体地,rom 1360可以包括映射表,并且物理-逻辑地址信息和逻辑-物理地址信息可以被存储在映射表中。此外,rom 1360可以由处理器1310控制。
112.主机接口1370可以包括用于在主机2000和存储器控制器1300之间交换数据的协议。具体地,主机接口1370可以通过诸如以下的各种接口协议中的至少一种与主机2000通信:通用串行总线(usb)协议、多媒体卡(mmc)协议、外围组件互连(pci)协议、高速pci(pcie)协议、高级技术附件(ata)协议、串行ata协议、并行ata协议、小型计算机系统接口(scsi)协议、增强型小型磁盘接口(esdi)协议、电子集成驱动器(ide)协议和专用协议。
113.闪存接口1380可以在处理器1310的控制下,通过使用通信协议与存储器装置100通信。具体地,闪存接口1380可以通过通道与存储器装置100进行命令、地址和数据的通信。例如,闪存接口1380可以包括nand接口。
114.图9是示出基于所公开技术的实施例的固态驱动器(ssd)的示例的示图。
115.参照图9,ssd系统4000包括主机4100和ssd 4200。ssd 4200通过信号连接器4001与主机4100交换信号sig,并且通过电源连接器4002接收电力pwr。ssd 4200包括ssd控制器4210、多个闪速存储器4221至422n、辅助电源4230和缓冲存储器4240。
116.根据所公开技术的实施例,ssd 4200可以支持参照图1描述的存储装置1000的功能。具体地,ssd控制器4210可以用作参照图1描述的存储器控制器200。ssd控制器4210可以执行恢复存储在多个闪速存储器4221至422n中的系统数据的重建操作。重建操作是引导操作的一部分,并且可以指准备初始设置使得主机4100可以运行操作系统(os)并且ssd 4200可以处理从主机4100接收的请求的操作。
117.ssd控制器4210可以响应于从主机4100接收的信号sig而控制多个闪速存储器4221至422n。示例性地,信号sig可以是基于主机4100和ssd 4200之间的接口的信号。例如,信号sig可以是由诸如以下的接口中的至少一种定义的信号:通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、高速pci(pcie)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、小型计算机系统接口(scsi)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、火线、通用闪存(ufs)、wi-fi、蓝牙和nvme。
118.辅助电源4230可以通过电源连接器4002连接到主机4100。辅助电源4230可以接收从主机4100输入的电力pwr,并且利用电力pwr进行充电。当来自主机4100的电力供应不平稳时,辅助电源4230可以为ssd 4200提供电力。示例性地,辅助电源4230可以位于ssd 4200中,或者位于ssd 4200的外部。例如,辅助电源4230可以位于主板上,并且向ssd 4200提供辅助电力。
119.缓冲存储器4240可以作为ssd 4200的缓冲存储器进行操作。例如,缓冲存储器4240可以临时存储从主机4100接收的数据或从多个闪速存储器4221至422n接收的数据,或者临时存储闪速存储器4221至422n的元数据(例如,映射表)。缓冲存储器4240可以包括诸如dram、sdram、ddr sdram、lpddr sdram和gram的易失性存储器,或者诸如fram、reram、stt-mram和pram的非易失性存储器。
120.在所公开技术的一些实施例中,提供了一种可以改进引导操作的数据存储装置以及数据存储装置的操作方法。
121.虽然本专利文件包含许多细节,但是这些细节不应被解释为对任何所公开技术或可以要求保护的内容的范围的限制,而应被解释为对特定公开技术的特定实施例进行的特定的特征描述。本专利文件中单独的实施例的上下文中描述的某些特征也可以在单个实施例中以组合的形式实施。相反,在单个实施例的上下文中描述的各种特征也可以单独地在多个实施例中实施,或者以任何适用的子组合来实施。此外,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中排除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变形。
122.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为为了实现理想的效果需要以所示的特定顺序或以连续的顺序执行这些操作,或者需要执行所有示出的操作。此外,本专利文件中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都需要这种分开。
123.以上公开的实施例和实施方案仅仅是示例,并且可以基于本专利文件中描述和说明的内容对所公开的实施例和实施方案以及其他实施例和实施方案进行改进和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1