加速基于非易失性存储器(NVM)技术的存储器的引导时间清零的制作方法

文档序号:12287757阅读:387来源:国知局
加速基于非易失性存储器(NVM)技术的存储器的引导时间清零的制作方法与工艺

本公开一般涉及电子技术的领域。更特定地,一些实施例一般涉及加速基于非易失性存储器(NVM)技术的存储器的引导时间清零。



背景技术:

一般地,用于在计算系统中储存数据的存储器能够是易失性的(用于储存易失性信息)或非易失性的(用于储存持久信息)。被储存在易失性存储器中的易失性数据结构一般用于在程序的运行时间期间被要求用于支持程序的功能的暂时或中间信息。另一方面,被储存在非易失性存储器中的持久数据结构在超过程序的运行时间是可用的且能够被重复使用。此外,新数据在用户或程序员决定使该数据成为持久之前,通常首先被生成为易失性数据。例如,程序员或用户可引起被处理器直接可访问的易失性主存储器中易失性结构的映射(即,实例化)。另一方面,持久数据结构在非易失性储存装置(像附连到输入/输出(I/O或IO)总线的旋转(rotating)盘)上被实例化或在基于非易失性存储器的装置(像闪速存储器)上被实例化。

由于计算能力在处理器中被增强,一个关注点是存储器可被处理器访问所按照的速度。例如,为了处理数据,处理器可需要首先从存储器取数据。在数据处理的完成之后,结果可需要被储存在存储器中。因此,存储器访问速度能够对整体系统性能具有直接的影响。

另一个重要的考虑是功率消耗。例如,在依靠电池功率的移动计算装置中,降低功率消耗以允许装置在移动时操作是非常重要的。功率消耗对于非移动计算装置也是重要的,因为过度的功率消耗可增加成本(例如,由于额外的功率使用、增加的冷却要求等)、缩短组件寿命、限制装置可被用于的位置等。

硬盘驱动器提供相对低成本的储存解决方案且被使用在许多计算装置中来提供非易失性储存。然而,当与固态驱动器(包含非易失性存储器,诸如闪速存储器)对比时,盘驱动器使用非常多的功率,因为盘驱动器需要以相对高的速度来旋转它的盘并相对于旋转的盘运动盘头以读/写数据。该物理运动生成热量且增加功率消耗。而且,当与硬盘驱动器对比时,闪速驱动器在执行读和写操作时要快得多。为此,许多计算段(segment)正朝向非易失性闪速存储器装置迁移。

附图说明

详细描述参考附图被提供。在图中,引用编号的最左边数字识别该引用编号在其中首次出现的图。不同图中相同引用数字的使用指示类似或同样的项目。

图1、2、5、6以及7示出计算系统的实施例的框图,其可被利用来实现本文中讨论的各种实施例。

图3示出依据一实施例的表刷新状态表的框图。

图4示出依照一实施例的、用于执行引导和掉电(power-down)序列的方法的流程图。

具体实施方式

在以下描述中,多个具体细节被陈述,以便于提供各种实施例的完全理解。然而,各种实施例可在没有所述具体细节的情况下被实践。在其它实例中,众所周知的方法、规程、组件、以及电路已没有详细地被描述,来使得不模糊特定实施例。进一步地,实施例的各种方面可使用各种部件来执行,诸如集成半导体电路(“硬件”)、组织到一个或更多程序(“软件”)中的计算机可读指令、或硬件与软件的一些组合。对于本公开来说,对“逻辑”的引用应当指的是或硬件、软件,或其的一些组合。

如以上所讨论的,许多计算段正用非易失性存储器(NVM)去取代易失性存储器。一般地,软件应用要求易失性存储器在被OS(操作系统)分配前被清零。随着应用的存储器足迹(footprint)的增长,用于初始化存储器的时间同样增长。通常,OS在后台中初始化存储器页(page),且保持这些的池对于分配是可用的。然而,这不是跟随引导(例如,将功率应用到系统)的情况,因为所有的存储器位于未初始化状态中。用于跟随引导而清零出(zero out)足够存储器以开始应用的时间迅速增长,因为存储器容量和应用需求一直在增加。该问题在使用一定的高速NVM技术,诸如PCM(相变存储器)而不是DRAM(动态随机存取存储器)来作为主存储器时,变得特别尖锐。使用该技术的容量能够非常大,但写带宽显著低于DRAM。考虑于此,引导时间初始化能够花费若干分钟的量级,且在大型系统中成为一大问题。

为此,一些实施例提供基于NVM的系统存储器的即刻初始化。这进而允许非常大的存储器容量被支持在计算系统中。各种类型的NVM可在各种实施例中被利用,包含NAND闪速存储器、NOR闪速存储器等。此类实施例目的在于避免在引导时间清零期间到NVM的高成本写事务。代替实际清零出存储器,实施例对所有的NVM存储器使用引导“版本号”,并与该存储器的每个部分(其是被处理器执行的任何读或写操作的大小(例如,NVM中256B行))一起被储存。在每一次引导(例如,响应每个后续引导事件),该引导版本号被更新(例如,被增大)且到NVM中给定部分/行的任何写事务/操作将更新它的版本号。在读操作上,行中所储存的版本号与当前引导版本号之间的失配将引起存储器控制器逻辑返回零给数据。因此,实际清零操作可被避免,这显著地改善了性能。该技术在本文中有时被称作为“快速零”技术或功能。

相比之下,用于引导时间存储器清零的一些实现可在应用被启动之前使用零的强力写到大的地址范围。另一手段可在需求的基础上按照页级粒度执行清零。然而,这些手段在将清零的存储器交给应用之前,都依赖于到NVM的实际写。由于存储器容量随NVM增加,两种手段都将具有跟随引导的显著长的应用启动时间。

此外,本文中讨论的技术可被提供在各种计算系统(例如,包含固态驱动器和/或移动装置,其中该移动装置诸如智能电话、写字板、UMPC(超级移动个人计算机)、膝上型计算机、超级本TM计算装置、智能手表、智能眼镜等)中,诸如参考图1-7讨论的那些。更特定地,图1示出依据一实施例的计算系统100的框图。系统100包含一个或更多处理器,从102-1到102-N(本文中一般称作为“处理器102(processors 102)” 或“处理器102(processor 102)”)。处理器102可经由互连或总线104进行通信。每个处理器可包含各种组件,为了清楚,其中的一些只参考处理器102-1来讨论。相应地,其余处理器,从102-2到102-N,中的每个可包含参考处理器102-1讨论的相同或类似的组件。

在一实施例中,处理器102-1可包含一个或更多处理器核,从106-1到106-N(本文中称作为“核106(cores 106)”,或更一般地称作为“核106(core 106)”)、高速缓存108(其在各种实施例中可以是共享高速缓存或私有高速缓存)、和/或路由器110。处理器核106可实现在单个集成电路(IC)芯片上。此外,芯片可包含一个或更多共享和/或私有高速缓存(诸如高速缓存108)、总线或互连(诸如总线或互连112)、逻辑120、逻辑150、存储器控制器(诸如参考图5-7讨论的那些)、NVM(非易失性存储器)152(例如,包含闪速存储器、SSD(带有NAND存储器单元))等,或其它组件。

在一个实施例中,路由器110可被用于在系统100和/或处理器102-1的各种组件之间进行通信。此外,处理器102-1可包含多于一个路由器110。此外,路由器110的多数可相通信来实现在处理器102-1的内部或外部的各种组件之间的数据路由选择。

高速缓存108可储存数据(例如,包含指令),所述数据被处理器102-1的一个或更多组件(诸如核106)利用。例如,高速缓存108可本地高速缓存储存在易失性存储器114中的数据以用于被处理器102的组件的更快访问。如图1中所示出的,存储器114可经由互连104与处理器102相通信。在一实施例中,高速缓存108(其可被共享)可具有各种级,例如,高速缓存108可以是中间级高速缓存和/或最末级高速缓存(LLC)。而且,核106中的每个可包含1级(L1)高速缓存(116-1)(在本文中一般称作为“L1高速缓存 116”)。处理器102-1的各种组件可通过总线(例如,总线112)、和/或存储器控制器或集线器直接与高速缓存108通信。

如图1中所示出的,存储器114可通过易失性存储器控制器120被耦合到系统100的其它组件。系统100还包含NVM存储器控制器逻辑150来将NVM存储器152耦合到系统100的各种组件。在一些实施例中,存储器152包含非易失性存储器,诸如纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪速存储器、自旋扭矩传递随机存取存储器(STTRAM)、电阻式随机存取存储器、3D交叉点存储器(诸如PCM(相变存储器))、带有NAND/NOR存储器的SSD等。虽然存储器控制器150被示出耦合在互连104和存储器152之间,但逻辑150可位于系统100中的别处。例如,在各种实施例中,逻辑150(或它的部分)可被提供在处理器102、控制器120等之一内。在一实施例中,逻辑150和NVM 152被包含在SSD中。此外,正如本文中相对于各种实施例所讨论的,逻辑150控制到一个或更多NVM装置152(例如,其中在一些实施例中,所述一个或更多NVM装置被提供在相同的集成电路管芯上)的访问。

如以上所讨论的,用于引导时间存储器清零的一些实现可在应用被启动之前使用零的强力写到大的地址范围。另一手段可在需求的基础上按照页级粒度执行清零。然而,这些手段在将清零的存储器交给应用之前,都依赖于到NVM的实际写。由于存储器容量随NVM增加,两种手段都将具有跟随引导的显著长的应用启动时间。

为此,一些实施例提供基于NVM的系统存储器的即刻初始化;因而允许非常大的存储器容量被支持在计算系统中。此类实施例目的在于避免在引导时间清零期间到NVM的高成本写事务。代替的是,一实施例对于NVM的每个部分使用引导“版本号”,其中所述部分是被处理器执行的任何读或写操作的大小(例如,NVM中的256B行)。在每一次引导(例如,响应每个后续引导事件),该引导版本号被更新(例如,增大)且到NVM中给定部分/行的任何写事务/操作将更新它的版本号。在读操作上,行中所储存的版本号和当前引导版本号之间的失配将引起存储器控制器逻辑返回零给数据。因此,实际清零事务可被避免,这显著地改善了性能。

相应地,非常大的存储器容量可被利用,而没有慢引导时间的惩罚。在每一次引导增大或以其它方式更新版本号有关的一个问题是:最终,版本号将被再循环。该状况被称作为“翻转”。为了避免不正确清零,翻转只能够在能够保证正在再循环的版本号当前未被储存在任何NVM行中时发生。确保这个的一种方式是在每次翻转发生时,采用未使用的版本号写入整个NVM。这是非常高成本的操作。非常大的版本号将使得这种翻转状况不太可能,但也将增添在NVM中储存该号的成本。正如下面进一步讨论的,小的版本号可以用翻转状况是(例如,异常地)稀有事件的这样一种方式来被使用。

图2示出依据一实施例的计算系统的部分的框图。中央处理单元(CPU)202可与参考图1和5-7讨论的处理器相同或类似。CPU 202是耦合的NVM双列直插存储器模块(DIMM)204。DIMM 204进而包含NVM存储器控制器逻辑150以及NVM 152(在图2中示出为存储器地址空间)。逻辑150以及NVM 152通过NVM通道206被耦合。

如图2中所示出的,NVM控制器逻辑150包含存储器接口(I/F)来与CPU 202通信读/写事务。如下面进一步讨论的,读/写命令和数据经由NVM通道206并基于来自刷新引擎逻辑的信息被传送到读/写(R/W)控制逻辑,以与NVM 152进行通信。如本文中进一步讨论的,控制器逻辑150还包含微控制器(uCTL)和微存储器(uCTL存储器)来储存数据。

此外,在图2的框图中,NVM 152用作实现在经由存储器接口(I/F)连接到CPU的DIMM上的存储器,例如,类似DDR。DIMM具有进而接口到NVM 152的NVM控制器逻辑150,其中NVM 152提供系统存储器地址范围到OS和应用软件。

NVM控制器逻辑150维护引导版本号,其被标记为CV(代表“当前版本”)。CV跟随每一次重引导/引导从掉电时保存在NVM(例如,在NVM DIMM 204中的uCTL存储器或另一存储器中)中的最后CV被增大。在一实施例中,CV大小是8比特。如图2中所示出的,NVM地址空间被细分成“行”。在一实施例中,行的数据大小是256B。依赖于CPU读或写访问粒度,数据部分在“子行”中可被进一步细分。在一实施例中,每行有四个64B子行。

除了数据之外,NVM地址空间的每个行也可储存一些元数据。元数据的部分被用于快速零功能。这些元素包含:(1)保存的版本号或SV(例如,8比特);以及(2)每子行一个零比特(在一实施例中四比特)。

NVM控制器逻辑150还具有刷新引擎逻辑,其连续地擦除(scrub)NVM地址空间中的每个行。刷新引擎使用Ref-Addr-Counter(引用地址计数器)来指向要被擦除的给定行。一旦行被擦除,则计数器被更新(例如,增大)。当整个地址空间被擦除时,“刷新循环”已完成。刷新引擎将然后开始下一个刷新循环。假定刷新循环不被掉电事件中断,则它通常可在预定间隔中完成。在一个实施例中,不中断的刷新循环持续期是两天。整个NVM地址范围在该时间帧中被擦除。

一般地,由刷新引擎进行的“擦除”牵涉到读行、进行任何错误更正、以及然后将行回写。刷新引擎还将具有可专用于其独自使用的刷新版本号或“RV”。在一实施例中,CV能够从不等于RV。如果刷新循环被掉电事件中断,则Ref-Addr-Cnt的状态被保存在NVM中(例如,在NVM DIMM 204中的uCTL存储器或另一存储器中)。在加电时,该状态在NVM控制器中被恢复,且刷新引擎在刷新循环停止的地方重新开始刷新循环。为了确保没有NVM地址空间的部分由于该中断被跳过,这是重要的。

CPU 202发出针对子行的读或写操作到NVM控制器逻辑150。NVM控制器150进而使用CV以及行元数据来确定要采取的动作。

下面的表1示出依照一些实施例的各种情形。

表1

跟随重引导,且在任何的CPU写操作来更新NVM行之前,任何的CPU读将遭遇其中SV≠CV的情况。对这个的异常是翻转情况,其将在下面进一步讨论。考虑到这个,CPU从所有NVM地址空间只读“零”。在重引导时CV的增大等同于即刻清零整个存储器空间。

当CPU开始写入NVM地址空间时,对于被更新的行的SV’s被修改成CV。跟随这个的任何读将读该新数据且不是仿真零。另外,对于不是跟随引导被写的任何行,刷新引擎将更新SV=RV;因而,确保所有旧版本号每刷新循环被移除一次。

参考以上提到的翻转情况,自CV最后一次被使用,在完成的刷新循环之前CV不能够被重复使用。为了跟踪这个,称为CV刷新状态表或CVRT 300的表依据一实施例示出在图3中。CVRT 300可储存在NVM(例如,在NVM DIMM 204中的uCTL存储器或另一存储器中)中。该表的大小由CV的大小来支配。因此,8比特CV将具有256条目表,等等。在一实施例中,一个条目(=RV)从不被使用。表中的每个条目具有用于给定CV的CV刷新状态。

参考图3,V比特被设置用于已经被使用至少一次的CV。当掉电发生、最后一次CV被使用之时,最后刷新地址是Ref-Addr-Cnt值。Ref状态标志是允许确定自CV最后一次被使用是否已经完成至少一个刷新循环的额外比特。在新CV被生成时的每一个引导序列,NVM控制器逻辑150检查CVRT 300,来看自该CV最后一次被使用是否发生了完成的刷新循环。如果还没有,则就是说“翻转”状况存在且快速零机制不能够被用于响应读操作生成零。

至少有两种选择来处置翻转状态。一种是使系统软件(例如,包含BIOS(基本输入输出系统))或NVM控制器逻辑150采用零数据来写整个NVM地址空间且同时更新SV=CV。另一种选择是通知系统软件(例如,OS)快速零功能已不被用于该引导循环,且OS应当退回到它的正常手段来清零出页。

此外,只要CV大小是合理的,翻转状况应当是稀有的异常。比如,对于8比特CV,为了使翻转状况发生,在正常不中断刷新循环周期内将需要有254个重引导。由于完成的刷新循环很可能在一到两天内被完成,此类情形很可能被限制于具体场合,像系统验证(validation),且不太可能在正常操作期间发生。因而,对于所有实践的目的,该快速零机制应当总是起作用的。

图4示出依照一实施例的,用于执行引导和掉电序列的方法400的流程图。在一个实施例中,参考图1-3和5-7讨论的各种组件可被利用来执行参考图4讨论的操作中的一个或更多。在一实施例中,方法400的一个或更多操作被实现在逻辑(例如,固件)中,诸如图1的逻辑150。

参考图1-4,在操作402,快速零功能引导序列被发起。在操作404,从NVM 152读操作被检测到(其触发最后CV、ref-addr-cnt、以及CVRT 300的保存)。在操作406,CV值被更新(例如,被增大)。在操作408,从CVRT 300读CV状态且保存的引用状态对照保存的ref-addr-cnt被对比。在操作410,确定(例如,基于操作408的对比)是否存在CV翻转状况。如果是这样的话,操作412清空翻转标志以指示快速零操作被完成并待继续进行;否则,操作414设置翻转标志到没有快速零功能。在操作412或414之后,在操作416刷新引擎在更新/增大的ref-addr-cnt(或ref-addr-cnt+1)开始。在操作418,CVRT被更新并储存。在操作420,快速零初始化被完成。

在操作450,掉电快速零序列被发起。在操作452,CV被保存为最后SV,以及ref-address-cnt和刷新状态。

图5示出依照本发明的一实施例的计算系统500的框图。计算系统500可包含经由互连网络(或总线)504进行通信的一个或更多中央处理单元(CPU)502或处理器。处理器502可包含一般用途处理器、网络处理器(其处理通过计算机网络503被通信的数据)、应用处理器(诸如在小区电话、智能电话等中使用的那些)、或其它类型的处理器(包含简化指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。各种类型的计算机网络503可被利用,包含有线(例如,以太网、千兆位、光纤等)或无线网络(诸如蜂窝、3G(第三代小区电话技术或第三代无线格式(UWCC))、5G、低功率嵌入(LPE)等)。此外,处理器502可具有单个或多个核设计。带有多个核设计的处理器502可集成不同类型的处理器核在相同集成电路(IC)管芯上。而且,带有多个核设计的处理器502可被实现为对称或非对称多处理器。

在一实施例中,处理器502中的一个或更多可与图1的处理器102相同或类似。例如,处理器502中的一个或更多可包含高速缓存108和/或核106中的一个或更多。而且,参考图1-4讨论的操作可被系统500的一个或更多组件执行。

芯片集506也可与互连网络504相通信。芯片集506可包含图形和存储器控制集线器(GMCH)508。GMCH 508可包含与存储器114通信的存储器控制器510(在一实施例中,其可与图1的存储器控制器120相同或类似)。系统500也可在各种位置(诸如在图5中示出的那些,但能够在系统500内的其它位置(未示出)中)中包含逻辑150(例如,耦合到NVM 152)。存储器114可储存数据,数据包含被CPU 502或包含在计算系统500中的任何其它装置执行的指令的序列。在本发明的一个实施例中,存储器114可包含一个或更多易失性储存(或存储器)装置,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、或其它类型的储存装置。非易失性存储器也可被利用,诸如硬盘、闪速、3D交叉点存储器(诸如PCM)、电阻式随机存取存储器、NAND存储器、NOR存储器以及STTRAM。额外装置,诸如多个CPU和/或多个系统存储器,可经由互连网络504来通信。

GMCH 508还可包含与图形加速器516相通信的图形接口514。在本发明的一个实施例中,图形接口514可经由加速的图形端口(AGP)或外围组件互连(PCI)(或快速PCI(PCIe)接口)来与图形加速器516相通信。在本发明的一实施例中,显示器517(诸如平板显示器、触摸屏等)可通过例如信号转换器与图形接口514通信,其中信号转换器将储存在储存装置(诸如视频存储器或系统存储器)中的图像的数字表示翻译成被显示器解释并显示的显示信号。被显示装置产生的显示信号在被显示器517解释并随后显示在显示器517上之前可穿过各种控制装置。

集线器接口518可允许GMCH 508和输入/输出控制集线器(ICH)520进行通信。ICH 520可提供接口到与计算系统500相通信的I/O装置。ICH 520可通过外围桥(或控制器)524,诸如外围组件互连(PCI)桥、通用串行总线(USB)控制器、或其它类型的外围桥或控制器,来与总线522通信。桥524可提供CPU 502和外围装置之间的数据路径。其它类型的拓扑可被利用。而且,例如通过多个桥或控制器,多个总线可与ICH 520相通信。此外,在各种实施例中,与ICH 520通信的其它外围装置可包含集成驱动器电子装置(IDE)或小计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))、或其它装置。

总线522可与音频装置526、一个或更多盘驱动器528、以及网络接口装置530(其例如经由有线或无线接口与计算机网络503相通信)相通信。如所示出的,网络接口装置530可耦合到天线531来无线地(例如,经由电气和电子工程师协会(IEEE)802.11接口(包含IEEE 802.11a/b/g/n等)、蜂窝接口、3G、5G、LPE等)与网络503通信。其它装置可经由总线522通信。而且,在一些实施例中,各种组件(诸如网络接口装置530)可与GMCH 508相通信。另外,处理器502以及GMCH 508可组合形成单个芯片。此外,在其它实施例中,图形加速器516可被包含在GMCH 508内。

此外,计算系统500可包含易失性和/或非易失性存储器(或储存装置)。例如,非易失性存储器可包含以下中的一个或更多:只读存储器(ROM)、可编程ROM(PROM)、可擦PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如,528)、软盘、压缩盘ROM(CD-ROM)、数字多用盘(DVD)、闪速存储器、磁光盘、或能够储存电子数据(例如,包含指令)的其它类型的非易失性机器可读媒体。

图6示出依据一实施例的、以点对点(PtP)配置排列的计算系统600。特定地,图6示出在其中处理器、存储器、以及输入/输出装置通过多个点对点接口被互连的系统。参考图1-5讨论的操作可被系统600的一个或更多组件执行。

如图6中所示出的,系统600可包含若干处理器,为了清楚,其中只有两个(处理器602和604)被示出。处理器602和604可各包含本地的存储器控制器集线器(MCH)606和608,以实现与存储器610和612的通信。存储器610和/或612可储存各种数据,诸如参考图1和/或5的存储器114或NVM 152讨论的那些。而且,在一些实施例中,MCH 606和608可包含图1的存储器控制器120和/或逻辑150。

在一实施例中,处理器602和604可以是参考图5讨论的处理器502之一。处理器602和604可分别使用PtP接口电路616和618经由点对点(PtP)接口614交换数据。而且,处理器602和604可使用点对点接口电路626、628、630和632经由单独的PtP接口622和624来各自与芯片集620交换数据。芯片集620可例如使用PtP接口电路637经由高性能图形接口636进一步与高性能图形电路634交换数据。如参考图5所讨论的,在一些实施例中,图形接口636可耦合到显示装置(例如,显示器517)。

如图6中所示出的,图1的高速缓存108和/或核106中的一个或更多可位于处理器602和604内。然而,其它实施例可存在于图6的系统600内的其它电路、逻辑单元、或装置中。此外,其它实施例可被分布遍及图6中示出的若干电路、逻辑单元、或装置。

芯片集620可使用PtP接口电路641与总线640通信。总线640可具有与之通信的一个或更多装置,诸如总线桥642和I/O装置643。经由总线644,总线桥642可与其它装置通信,诸如键盘/鼠标645、通信装置646(诸如调制解调器、网络接口装置、或可与计算机网络503通信的其它通信装置,正如参考网络接口装置530(例如,包含经由天线531)所讨论的)、音频I/O装置、和/或数据储存装置648。数据储存装置648可储存可被处理器602和/或604执行的代码649。

在一些实施例中,本文中讨论的组件中的一个或更多能够在芯片上系统(SOC)装置上被实施。图7示出依照一实施例的SOC封装的框图。如图7中所示出的,SOC 702包含一个或更多中央处理单元(CPU)核720、一个或更多图形处理器单元(GPU)核730、输入/输出(I/O)接口740、以及存储器控制器742。SOC封装702的各种组件可被耦合到互连或总线,诸如本文中参考其它图所讨论的。而且,SOC封装702可包含或多或少的组件,诸如本文中参考其它图所讨论的那些。进一步地,SOC封装702的每个组件可包含一个或更多其它组件,例如,正如参考本文中其它图所讨论的一样。在一个实施例中,SOC封装702(以及它的组件)被提供在一个或更多集成电路(IC)管芯上,例如被封装到单个半导体装置上的所述管芯。

如图7中所示出的,SOC封装702经由存储器控制器742耦合到存储器760(其可与本文中参考其它图讨论的存储器类似或相同)。在一实施例中,存储器760(或它的部分)能够被集成在SOC封装702上。

I/O接口740可例如经由诸如本文中参考其它图所讨论的互连和/或总线耦合到一个或更多I/O装置770。I/O装置770可包含键盘、鼠标、触摸板、显示器、图像/视频捕捉装置(诸如摄像机或可携式摄像机/视频记录器)、触摸屏、扬声器、或诸如此类中的一个或更多。此外,在一实施例中,SOC封装702可包含/集成逻辑150。备选的是,逻辑150可在SOC封装702的外部被提供(即,作为分离逻辑)。

以下示例属于进一步实施例。示例1包含一种设备,包括:储存装置,用于储存对应于非易失性存储器的部分的引导版本号;以及存储器控制器逻辑,其耦合到所述非易失性存储器,用于响应每个后续引导事件而引起所储存的引导版本号的更新,其中所述存储器控制器逻辑要响应针对所述非易失性存储器的所述部分的读操作以及在所储存的引导版本号与当前引导版本号之间的失配来返回零。示例2包含示例1的所述设备,其中所述存储器控制器逻辑要响应针对所述非易失性存储器的所述部分的所述读操作以及在所储存的引导版本号与所述当前引导版本号之间的所述失配来返回零,而不执行访问所述非易失性存储器的所述部分。示例3包含示例1的所述设备,其中所述存储器控制器逻辑要响应到所述非易失性存储器的所述部分的写操作来引起所述引导版本号的所述更新。示例4包含示例1的所述设备,其中所述当前引导版本号对应于在进行中的引导事件。示例5包含示例1的所述设备,其中所述存储器控制器逻辑要通过增大所述引导版本号来引起所述引导版本号的所述更新。示例6包含示例1的所述设备,包括刷新引擎逻辑,其基于引用地址计数器连续擦除所述非易失性存储器的每个行,其中所述引用地址计数器要指向要被擦除的所述非易失性存储器的行。示例7包含示例6的所述设备,其中所述引用地址计数器要响应所述非易失性存储器的对应行的擦除而被更新。示例8包含示例6的所述设备,其中所述刷新引擎逻辑要基于预定间隔来执行刷新循环。示例9包含示例6的所述设备,其中所述刷新引擎逻辑要基于刷新版本号来执行刷新循环。示例10包含示例1的所述设备,其中所述存储器控制器逻辑要基于储存在当前版本刷新状态表中的数据来抑制在刷新循环的完成之前使用所储存的引导版本号。示例11包含示例1的所述设备,其中所述非易失性存储器的所述部分要储存元数据,其中所述元数据要包括保存的版本号以及所述非易失性存储器的所述部分的每子部分的零比特。示例12包含示例11的所述设备,其中所述非易失性存储器的所述部分要包括存储器行,且所述子部分要包括子行。示例13包含示例12的所述设备,其中所述存储器行要包括四个子行。示例14包含示例1的所述设备,其中所述非易失性存储器要包括三维交叉点存储器。示例15包含示例14的所述设备,其中所述非易失性存储器要包括NAND闪速存储器或NOR闪速存储器。示例16包含示例1的所述设备,其中所述非易失性存储器要包括所述储存装置。示例17包含示例1的所述设备,其中一个或更多处理器核耦合到所述存储器控制器逻辑以访问储存在所述非易失性存储器中的数据。示例18包含示例1的所述设备,其中所述存储器控制器逻辑、一个或更多处理器核、所述储存装置以及所述非易失性存储器中的一个或更多位于相同的集成电路管芯上。示例19包含示例1的所述设备,其中所述非易失性存储器的所述部分要包括256字节。

示例20包含一种方法,所述方法包括:在储存装置中储存对应非易失性存储器的部分的引导版本号;以及响应每个后续引导事件而引起所储存的引导版本号的更新,其中响应针对所述非易失性存储器的所述部分的读操作和在所储存的引导版本号与当前引导版本号之间的失配来返回零。示例21包含示例20的所述方法,其中响应针对所述非易失性存储器的所述部分的所述读操作和在所储存的引导版本号与所述当前引导版本号之间的所述失配来返回零,而不执行访问所述非易失性存储器的所述部分。示例22包含示例20的所述方法,进一步包括响应到所述非易失性存储器的所述部分的写操作来引起所述引导版本号的所述更新。

示例23包含一种计算机可读媒体,所述计算机可读媒体包括一个或更多指令,所述指令在处理器上被执行时配置所述处理器执行一个或更多操作,以:在储存装置中储存对应于非易失性存储器的部分的引导版本号;以及响应每个后续引导事件引起所储存的引导版本号的更新,其中响应针对所述非易失性存储器的所述部分的读操作和在所储存的引导版本号与当前引导版本号之间的失配来返回零。示例24包含示例23的所述计算机可读媒体,进一步包括一个或更多指令,所述指令在所述处理器上被执行时配置所述处理器执行一个或更多操作,以引起响应针对所述非易失性存储器的所述部分的所述读操作和在所储存的引导版本号与所述当前引导版本号之间的所述失配来返回零,而不执行访问所述非易失性存储器的所述部分。示例25包含示例23的所述计算机可读媒体,进一步包括一个或更多指令,所述指令在所述处理器上被执行时配置所述处理器执行一个或更多操作,以响应到所述非易失性存储器的所述部分的写操作来引起所述引导版本号的所述更新。

示例26包含一种系统,所述系统包括:处理器;耦合到所述处理器的储存装置,用于储存对应于非易失性存储器的部分的引导版本号;以及耦合到所述非易失性存储器的存储器控制器逻辑,用于响应每个后续引导事件来引起所储存的引导版本号的更新,其中所述存储器控制器逻辑要响应针对所述非易失性存储器的所述部分的读操作和在所储存的引导版本号与当前引导版本号之间的失配来返回零。示例27包含示例26的所述系统,其中所述存储器控制器逻辑要响应针对所述非易失性存储器的所述部分的所述读操作和在所储存的引导版本号与所述当前引导版本号之间的所述失配来返回零,而不执行访问所述非易失性存储器的所述部分。示例28包含示例26的所述系统,其中所述存储器控制器逻辑要响应到所述非易失性存储器的所述部分的写操作来引起所述引导版本号的所述更新。示例29包含示例26的所述系统,其中所述当前引导版本号对应于在进行中的引导事件。示例30包含示例26的所述系统,其中所述存储器控制器逻辑要通过增大所述引导版本号来引起所述引导版本号的所述更新。示例31包含示例26的所述系统,包括刷新引擎逻辑,其基于引用地址计数器连续擦除所述非易失性存储器的每个行,其中所述引用地址计数器要指向要被擦除的所述非易失性存储器的行。示例32包含示例31的所述系统,其中所述引用地址计数器要响应所述非易失性存储器的对应行的擦除而被更新。示例33包含示例31的所述系统,其中所述刷新引擎逻辑要基于预定间隔来执行刷新循环。示例34包含示例31的所述系统,其中所述刷新引擎逻辑要基于刷新版本号来执行刷新循环。示例35包含示例26的所述系统,其中所述存储器控制器逻辑要基于储存在当前版本刷新状态表中的数据来抑制在刷新循环的完成之前使用所储存的引导版本号。示例36包含示例26的所述系统,其中所述非易失性存储器的所述部分要储存元数据,其中所述元数据要包括保存的版本号以及所述非易失性存储器的所述部分的每子部分的零比特。示例37包含示例36的所述系统,其中所述非易失性存储器的所述部分要包括存储器行,且所述子部分要包括子行。示例38包含示例37的所述系统,其中所述存储器行要包括四个子行。示例39包含示例26的所述系统,其中所述非易失性存储器要包括闪速存储器。示例40包含示例39的所述系统,其中所述闪速存储器要包括NAND闪速存储器或NOR闪速存储器。示例41包含示例26的所述系统,其中所述非易失性存储器要包括所述储存装置。示例42包含示例26的所述系统,其中所述处理器的一个或更多处理器核耦合到所述存储器控制器逻辑,以访问储存在所述非易失性存储器中的数据。示例43包含示例26的所述系统,其中所述存储器控制器逻辑、所述处理器的一个或更多处理器核、所述储存装置以及所述非易失性存储器中的一个或更多位于相同的集成电路管芯上。示例44包含示例26的所述系统,其中所述非易失性存储器的所述部分要包括256字节。

示例45包含一种设备,所述设备包括用于执行如任何前述示例中所陈述的方法的部件。

46. 机器可读储存装置,所述机器可读储存装置包含机器可读指令,所述指令在被执行时用于实现如任何前述权利要求中所陈述的方法或实现如任何前述权利要求中所陈述的设备。

在各种实施例中,本文中讨论的操作(例如参考图1-7)可被实现为硬件(例如,电路)、软件、固件、微代码、或其的组合,其可以被提供作为计算机程序产品,例如,包含有形(例如,非暂态的)机器可读或计算机可读媒体,在该媒体上已经储存了用于编程计算机或执行本文中讨论的过程的指令(或软件规程)。而且,术语“逻辑”可包含,举例来说,软件、硬件、或软件和硬件的组合。机器可读媒体可包含储存装置,诸如相对于图1-7讨论的那些。

另外,此类有形计算机可读媒体可作为计算机程序产品被下载,其中程序可经由通信链路(例如,总线、调制解调器、或网络连接)通过数据信号的方式(诸如在载波或其它传播媒体中)从远程计算机(例如,服务器)被传递到请求计算机(例如,客户)。

本说明书中对“一个实施例”或“一实施例”的引用指的是关于该实施例描述的特定特征、结构、或特性可被包含在至少一实现中。在本说明书中的各种地方中的短语“在一个实施例中”的出现可或可不全指代相同的实施例。

而且,在描述和权利要求中,术语“耦合”和“连接”,连同它们的衍生物,可被使用。在一些实施例中,“连接”可被用于指示两个或更多元件与彼此处于直接物理的或电的接触中。“耦合”可指的是两个或更多元件处于直接物理的或电的接触中。然而,“耦合”也可指的是两个或更多元件与彼此可不处于直接接触中,但仍然可与彼此协作或相互作用。

因而,尽管实施例已在具体到结构特征和/或方法动作的语言中被描述,但要被理解的是,要求权利的主题可不被限制于所描述的具体特征或动作。相反,所述具体特征和动作作为实现所要求权利的主题的样本形式被公开。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1