用于更新无源可变电阻式存储器中的数据的方法和装置制造方法

文档序号:6494734阅读:175来源:国知局
用于更新无源可变电阻式存储器中的数据的方法和装置制造方法
【专利摘要】提供了用于更新无源可变电阻式存储器(PVRM)中的数据的方法和装置。在一个实例中,公开了用于更新被存储在PVRM中的数据的方法。所述方法包括在没有使存储器块无效的情况下,更新高速缓存层次结构中多个存储器块的存储器块。所述更新后的存储器块可以被从所述高速缓存层次结构复制到直写缓冲器。此外,所述方法包括将所述更新后的存储器块写入到所述PVRM,从而更新所述PVRM中的数据。
【专利说明】用于更新无源可变电阻式存储器中的数据的方法和装置
[0001]公开的领域
[0002]本公开涉及用于更新被存储在存储器中的数据的方法和装置。
[0003]公开的背景
[0004]常规的计算系统被设计折中利用易失性存储器和传统非易失性存储器的不同特点,以及在易失性存储器和传统的非易失性存储器之间权衡。例如,非易失性存储器(例如DRAM, SRAM等)提供相对快存取字节的寻址能力。然而,如其名称所暗示,在断电或通电断电循环后,易失性存储器丢失其状态信息。相反,传统的非易失性存储器(例如,闪存,硬盘等)在断电或通电断电循环后保留其状态信息。然而,传统的非易失性存储器具有一些缺点。例如,传统的非易失性存储器通常需要基于块的更新。也就是说,为了更新传统非易失性存储器中的单个值,往往需要更新存储器块中的所有的值。如本领域的技术人员所理解的,这会增加等待时间和不必要地占用计算资源。
[0005]因此,常规的计算系统在易失性和传统的非易失性存储器类型两者中保存数据。例如,被CPU频繁存取的数据可以被临时存储(即,高速缓存)在易失性存储器中,所述易失性存储器往往被存储在CPU的芯片(例如,SRAM)内,用于快速存取。然而,由于易失性存储器在断电或通电断电循环后丢失其状态信息,对基于易失性存储器的高速缓存的某些更新(例如,文件系统数据)必须最终被复制在非易失性存储器(例如,硬盘、闪存等)中,用于永久性存储。对被存储在非易失性存储器中的数据的更新通常通过相对慢的基于块的接口,例如高速扩展接口(PC1-E)实现。然而,由于存取被摆在首位的传统非易失性存储器是相对慢的,PC1-E接口的使用基本上不会降低常规计算系统的整体存储器存取时间。也就是说,永久性存储已经按常规在具有相对慢的存取时间的非易失性存储器类型中实施。例如,被存储在硬盘中的数据会花费数毫秒存取,而被存储在闪存存储器中的数据会花费数微秒存取。同样,在没有明显影响性能的情况下,常规的永久性存储更新机制(即,促进更新永久性存储的硬件和/或软件)采用相应慢的接口(例如,PC1-E和其他同等慢的接口)。
[0006]然而,正出现新的存储类型,其表现出比例如硬盘和/或闪存更快的存取时间。这些新存储类型表现出字节寻址能力(与存储器类型中,例如闪存的基于块的寻址能力相比)和非易失性。因此,为了利用由这些新的存储类型提供的更快存取时间,对应采用块的永久性存储更新机制。现有的永久性存储更新机制太慢,难以利用由这些新的存储类型提供的更快存取时间,因此,不适合用于这些新的存储类型。
[0007]同时,现有的主存储器更新机制(即,促进更新主存储器的硬件和/或软件)可以给这些新的存储类型提供合适的存取时间,然而,这些更新机制不能提供回写完成的可见度的软件(例如,操作系统)。不能提供回写完成的可见度的软件会导致计算装置文件系统的不一致(例如,由操作系统实施的文件系统)。
[0008]如本领域所知,计算装置的操作系统(OS)可以实施被设计用于组织、管理和分类在计算装置的存储组件(例如,DRAM,硬盘、闪存等)上被保存为文件的数据的文件系统。文件系统负责将存储组件的物理扇区(例如,存储器的512比特物理扇区)组织成文件和目录,以及保持跟踪哪个扇区属于哪个文件,以及哪个扇区未被使用。大多数文件系统将数据定址在被称为“存储器块”的固定大小的单元中。为了保持一致性和耐久性,如本领域所知的那些术语一样,文件系统必须知道写入何时到达永久性存储,以及必须能够定义特定写入之间的排序。例如,如本领域所知,影子分页文件系统必须确保在将索引节点文件更新到新的数据文件点之前,数据文件被更新。然而,如果索引节点文件的回写在数据文件被写回之前发生,那么永久性存储将是不一致的。因此,对于硬件来说,保持由软件规定的回写的排序是很重要的。
[0009]许多现有的主存储器更新机制不向软件提供永久性存储的回写可见度。其他现有主存储器更新机制可以向软件提供回写可见度,但是过分地慢。虽然存在可以被用来提供必要的排序约束的写策略,但是这些现有的策略不足以用于上述的新的存储类型。
[0010]例如,排序约束问题的一个常规解决方案是使用回写存储器(WB)。如其名称所暗示,WB存储器仅当脏高速缓存块(dirty cache block)(即,高速缓存器中正被写入的高速缓存块)被从高速缓存层次结构中排除时,向主存储器写入。系统中的这样的高速缓存一致性协议确保所有处理器(例如,CPU和/GPU)看到WB块的一致视图,即使主存储器实际正在存储过期数据。
[0011]通过利用缓存刷新或非暂时存储指令,将数据回退主存储器,以上述方式采用WB存储器的系统可以提供必要的排序约束。例如,CFLUSH x86指令使高速缓存层次结构中所规定的高速缓存线地址的所有复制无效,以及如果块是脏的,将其写入到主存储器。同时,x86非暂时存储指令将数据写入到缓存块,接着使缓存块主存储器无效。这两种指令类型相对于其他存储器操作是弱排序的,因此,必须插入MFENCE或SFENCE指令,以便对这两种指令类型相对于其他存储器操作排序。这种解决方案相关的一个缺陷是,当CFLUSH指令被用于使高速缓存线无效时,其导致对高速缓存线的任何后续存取错失缓存和错失存取主存储器。在特定数据被更新相当频繁的情况下,这会导致明显的性能下降。如本文所使用,数据可以包括命令/指令或任何其他合适的信息。
[0012]可替代使用不可缓存(UC)存储器,而不使用WB存储器。UC存储器超过WB存储器的一个优点是UC存储器存取不被记录,以及写入直接更新主存储器。因此,UC在没有需要MFENCE指令的情况下,提供必要的排序约束。然而,不允许高速缓存要求所有UC存储器直接存取主存储器以及所有UC读取刷新写入缓冲器,否则会增加带宽需求,导致与上述的WB/CFLUSH解决方案相比更大的性能下降。
[0013]另一个解决方案包括使用写结合(WC)存储器。WC存储器类似于UC存储器,但是其允许写入被合并和彼此不按次序被执行。进一步地,WC读取被推理执行。然而,WC存储器仍然不可缓存,所有的存取必须进入主存储器,导致性能下降。
[0014]另一个解决方案包括使用直写式(WT)存储器。类似于WB存储器,WT存储器可以被高速缓存。而且,对WT存储器的写入直接写入到主存储器,从而消除对CFLUSH指令的需求。然而,WT解决方案仍然需要大量带宽,这是因为所有的WT存储器写入必须进入主存储器。总之,常规的主存储器更新机制不能利用展现的非易失性、字节寻址能力和快速存取时间的新存储器类型的许多优点。
[0015]因此,存在设计利用这些新的存储器类型的更快存取时间、字节寻址能力和非易失性的方法和装置的必要。
[0016]附图简述[0017]结合下列绘图以及所述绘图中表示类似元件的类似参考编号,在阅读下列描述后,本公开将变得更加易于理解,其中:
[0018]图1是示出根据本公开,用于更新无源可变电阻式存储器(PVRM)中的数据的装置的一个实例的框图。
[0019]图2是示出根据本公开,用于更新PVRM中的数据的装置的另一个实例的框图。
[0020]图3是示出根据本公开,用于更新PVRM中的数据的装置的另一个实例的框图。
[0021]图4是示出用于更新PVRM中的数据的一个实例的流程图。
[0022]图5是示出用于更新PVRM中的数据的另一个实例的流程图。
[0023]图6是示出用于更新PVRM中的数据的另一个实例的流程图。
[0024]图7是示出用于更新PVRM中的数据的另一个实例的流程图。
[0025]实施方案概述
[0026]本公开提供用于更新PVRM中的数据的方法和装置。在一个实例中,公开了用于更新PVRM中的数据的方法。在该实例中,所述方法包括在没有使存储器块无效的情况下,更新高速缓存层次结构中多个存储器块的存储器块。在一个实例中,多个存储器块的存储器块基于由处理器执行的去耦直写-非无效存储指令(NISIDW)被更新。更新后的存储器块可以被从高速缓存层次结构复制到直写缓冲器。所述方法进一步包括将更新后的存储器块写入到PVRM,从而更新PVRM中的数据。在一个实例中,PVRM可以是下列PVRM类型中的至少一个:相变存储器、自旋转矩转移磁阻存储器和/或忆阻存储器。
[0027]在另一个实例中,所述方法另外包括用处理器执行至少一个FENCE指令。当更新后的存储器块已经基于FENCE指令被写入到PVRM时,处理器可以被通知。在另一个实例中,高速缓存层次结构可以包括I级高速缓存、2级高速缓存和3级高速缓存中的至少一个。在另一个实例中,PVRM是字节可寻址的。
[0028]本公开还提供例如可用于完成上述方法的相关装置。在一个实例中,装置包括高速缓存层次结构,其包括多个存储器块,可操作连接到高速缓存层次结构的直写缓冲器,可操作连接到直写缓冲器的PVRM,以及可操作连接到高速缓存层次结构的处理器。在该实例中,处理器在没有使存储器块无效的情况下,可操作更新高速缓存层次结构中多个存储器块的存储器块。这可以由,例如执行至少一个NISIDW的处理器完成。继续该实例,高速缓存层次结构可操作将更新后的存储器块复制到直写缓冲器中,作为对更新存储器块的处理器的响应。直写缓冲器可操作将更新后的存储器块写入到PVRM。以这种方式,被存储在PVRM中的数据可以被更新。
[0029]在装置的一个实例中,PVRM通过片上接口,例如双数据速率接口,被可操作连接到直写缓冲器,使得直写缓冲器通过片上接口,可操作将更新后的存储器块写入到PVRM。在另一个实例中,处理器进一步可操作执行至少一个FENCE指令。当每个FENCE指令已经将更新后的存储器块写入到PVRM时,其可操作促使直写缓冲器通知处理器。在另一个实例中,装置还包括至少一个附加的处理器。在该实例中,在处理器对至少一个FENCE指令中的每个执行后,处理器和至少一个附加处理器具有PVRM中数据的一致的全局视图。
[0030]本公开还提供用于更新PVRM中的数据的另一个方法。在一个实例中,该方法包括由处理器向PVRM控制器传送控制信息,所述控制信息识别将高速缓存层次结构中多个存储器块的至少一个存储器块复制到PVRM。至少一个被识别的存储器块还可以从高速缓存层次结构被复制到PVRM,作为对控制信息的响应。以这种方式,被存储在PVRM中的数据可以被更新。
[0031]在一个实例中,将至少一个被识别的存储器块从高速缓存层次结构复制到PVRM包括通过片上接口,例如双数据速率接口复制被识别的存储器块。在一个实例中,PVRM可以是下列PVRM类型中的至少一个:相变存储器、自旋转矩转移磁阻存储器和/或忆阻存储器。
[0032]在一个实例中,方法还包括通过处理器获得完成通知信息。完成通知信息可操作通知处理器:至少一个被识别的存储器块已经被从高速缓存层次结构复制到PVRM。完成通知信息可以通过几个方式获得。在一个实例中,完成通知信息通过处理器轮询与PVRM控制器相关的状态位获得。在该实例中,状态位表示至少一个被识别的存储器块是否已经从高速缓存层次结构被复制到PVRM。在另一个实例中,完成通知信息通过处理器从PVRM控制器接收指示至少一个被识别的存储器块已经被从高速缓存层次结构复制到PVRM的处理器中断信号获得。在另一个实例中,高速缓存层次结构可以包括I级高速缓存、2级高速缓存和3级高速缓存中的至少一个。
[0033]本公开还提供例如可用于完成上述方法的相关装置。在一个实例中,装置包括高速缓存层次结构,其包括多个存储器块、PVRM、可操作连接到高速缓存层次结构和PVRM的PVRM控制器,以及可操作连接到PVRM控制器的处理器。在该实例中,处理器可操作向PVRM控制器传送控制信息,所述控制信息识别将多个存储器块的至少一个存储器块从高速缓存层次结构复制到PVRM。继续该实例,PVRM控制器可操作将至少一个被识别的存储器块从高速缓存层次结构复制到PVRM,作为对控制信息的响应。
[0034]在一个实例中,处理器可操作获得完成通知信息,所述完成通知信息可操作通知处理器至少一个被识别的存储器块已经被从高速缓存层次结构复制到PVRM。完成通知信息可以例如使用上述技术中的任意一个(例如,轮询状态位和/或经由处理器中断信号)获得。在另一个实例中,PVRM通过片上接口,例如双数据速率接口,被可操作连接到高速缓存层次结构,使得PVRM控制器通过片上接口,可操作将至少一个被识别的存储器块复制到PVRM。
[0035]除了其他优点之外,所公开的方法和装置提供新的永久性存储更新机制,其具有兼容于PVRM的存取速度和去耦直写非无效存储指令(NISIDW)。在包括新的永久性存储更新机制的计算系统中执行NISIDW提供回写完成的可见度的软件,以便保持永久性存储(例如,PVRM)的状态的一致视图。而且,在没有使更新后的存储器块无效的情况下,NISIDff能够更新高速缓存层次结构和PVRM。本领域的普通技术人员将认识到其它优点。
[0036]实施方案详述
[0037]下列实施方案的描述实质上仅仅是示例性的,并不是为了本公开及其应用和用途。图1示出根据本公开,用于更新无源可变电阻式存储器(PVRM)IOS中的数据的装置100(即,新的永久性存储更新机制)的一个实例。在一个实例中,PVRM可以包括相变存储器、自旋转矩转移磁阻存储器、忆阻存储器中的任意一个,或非易失性无源可变电阻式存储器的任何其他合适形式。装置100可以存在于,例如个人计算机(例如,桌面或便携式计算机)、个人数字助理终端(PDA)、蜂窝电话、平板电脑(例如,Apple? iPad?)、一个或多个网络计算装置(例如,服务器等,其中每个单独的计算装置实施装置100的一个或多个功能)、照相机,或任何其它合适的电子装置中。装置100包括处理器112。处理器112可以包括一个或多个微处理器、微控制器、数字信号处理器,或在被存储在存储组件的可执行指令的控制下操作的上述处理装置的组合。在一个实例中,处理器112是中央处理单元(CPU)。
[0038]PVRM是描述以电阻形式而不是电荷形式存储状态的任何存储器技术的广义术语。也就是说,与使用电荷存储位的状态的基于电荷的存储器相反,PVRM技术使用单元的电阻存储位的状态。由于PVRM不需要任何有源的半导体器件,例如晶体管起开关的作用这一事实,PVRM被称为是无源的。由于在断电或通电断电循环后,PVRM保留状态信息的这一事实,这些存储器类型被称为“非易失性”。无源可变电阻式存储器也被称为电阻式非易失性随机存取存储器(RNVRAM或RRAM)。
[0039]PVRM的实例包括但不限于,铁电RAM (FeRAM)、磁阻RAM (MRAM)、忆阻器、相变存储器(PCM),以及旋转转矩转移MRAM (STT-MRAM)0虽然这些技术中的任意一个可能适合于结合例如本文公开的装置100使用,但是PCM、忆阻器以及STT-MRAM被认为提供特别好的配合,因此,将在下面详细描述。
[0040]相变存储器(PCM)是依赖相位变化材料,通常是硫属元素化物的属性存储状态的PVRM技术。通过将电流注入到存储装置,热升温相变材料来执行写入。突然的电流切断会产生冻结在无定形状态的材料,它具有高的电阻率,而缓慢逐渐减少的电流会导致材料中晶体的形成。结晶状态比无定形状态具有更低的电阻率;因此,值I或O和单元的电阻率相对应。多样的电流下降斜率可以产生中间状态,从而允许潜在的多电平单元。PCM存储元件由加热电阻和电极之间的硫属元素化物组成,而PCM单元由存储元件和存取晶体管组成。
[0041]忆阻器通常被称为“第四电路元件”,其他三个是电阻、电容、电感。忆阻器本质上是双端的可变电阻,其电阻取决于流过端子之间的电荷量。因此,忆阻器的电阻随着流过的电流量改变,并且电阻被记忆,即使电流的流动被停止。忆阻器的一个实例被公开在标题为“ELECTRICALLY ACTUATED SWITCH”的相应美国专利申请公开N0.2008/0090337中,其全部内容通过引用并入本文。
[0042]自旋转矩转移磁阻RAM( STT-MRAM)是MRAM的第二代版本,其原版本被视为半导体国际技术路线图(ITRS)的“原型”。MRAM以磁隧道结(MTJ)形式存储信息,所述磁隧道结用薄绝缘材料将两个铁磁材料分隔。当一个层切换到对准其对口层的方向或与对口层的方向相反时,存储值改变,这随后影响结的电阻。原始的MRAM需要足够的磁场,以便引起这种改变。这既困难又低效,导致不切实际的高写入能耗。在不需要外部磁场的情况下,STT-MRAM使用自旋极化电流反转极性。因此,STT技术降低写入能耗以及消除产生可靠和足够强磁场的困难方面。然而,STT-MRAM (如PCM)需要存取晶体管,因此其单元尺寸等级取决于晶体管的尺寸等级。
[0043]在任何情况下,处理器112包括指令高速缓存122,其通过合适的通信通道,例如片上总线被可操作连接到处理器核126。指令高速缓存122可操作存储可以被处理器112的处理器核126执行的指令,例如一个或多个非易失性存储指令114和/或FENCE指令124。如本文描述的实施例所使用,FENCE指令可以包括,例如任何X86FENCE指令(例如,MFENCE、SFENCE, LFENCE等)。在一个实例中,FENCE指令可以包括新的FENCE指令(即,未被包括在X86ISA中的专属FENCE指令),所述新的FENCE指令直到直写缓冲器,例如直写缓冲器106是空的才完成。装置100还包括高速缓存层次结构102。
[0044]高速缓存层次结构102可以包括任何合适数量的缓存级。例如,在一个实施例中,高速缓存层次结构102可以仅包括I级缓存。然而,人们已经认识到高速缓存层次结构102也可包括几个不同的高速缓存级(例如,I级缓存、2级缓存,以及3级缓存)。如本领域所熟知,高速缓存层次结构102通过一个或多个片上或片下总线,被可操作连接到处理器112。高速缓存层次结构102可以包括,例如,易失性/非易失性存储器组件,例如只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EE-PROM), PVRM等的任何组合。例如,在一个实施例中,高速缓存层次结构102可以包括SRAM (静态随机存取存储器)和/或DRAM (动态随机存取存储器)。高速缓存层次结构102包括多个存储器块104,例如存储器块116 (标有“块B”)和更新后的存储器块118 (标有“块A”)。如本文描述的实施例所使用,存储器块是指永久性存储更新机制(即,装置100的组件)转移的最小毗邻字节组。对于现代的计算系统,存储器块通常是64到128字节。
[0045]装置100还包括直写缓冲器106。如本领域所熟知,直写缓冲器106通过一个或多个合适的通信通道(例如,总线、片上接口、片下接口等),被可操作连接到高速缓存层次结构102和处理器112。直写缓冲器116可以包括,例如,易失性/非易失性存储器组件,例如只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EE-PROM)、PVRM等的任何组合。最终,装置100包括PVRM108,其经由片上接口 120,例如双数据速率(DDR)接口,被可操作连接到直写缓冲器106。
[0046]PVRM108包括数据,例如表示文件、命令/指令或任何其他合适信息的数据。PVRM108可操作存储一个或多个存储器块,例如更新后的存储器块118。
[0047]在一个实例中,装置100操作如下。在处理器112上运行的存储软件(例如,存储的计算机程序)促使处理器发出去耦直写非无效存储指令114 (NISIDff)0 NISIDW114被从处理器112的指令高速缓存122传达到处理器核126,其中,NISIDW114被转换为去耦直写132的写入请求130。写入请求130可以识别例如包含要被更新的数据的存储器的地址,以及在存储器中地址的数据的新值应该被采用。接着,去耦直写132的写入请求130被发给高速缓存层次结构102。再者,高速缓存层次结构102可以包括,例如,I级缓存(例如,在处理器片上的SRAM、DRAM、PVRM等)。
[0048]如果写入请求130命中高速缓存层次结构102(即,如果要寻求更新的特定存储器块驻留在高速缓存层次结构102内),那么相应的存储器块被所期望的值更新。例如,继续参考图1,写入请求130可以更新“块A”,使得更新后的块A构成更新后的存储器块118。虽然块A被用于示出更新后的存储器块118,人们已经认识到任何数量的不同存储器块可以如所期望被更新。然而,如NISIDW这一名称所暗示,向高速缓存层次结构102的写入请求130不使被更新的存储器块无效。而是在更新后,更新后的存储器块118的拷贝被保持在高速缓存层次结构102中。以这种方式,一旦相应的存储器块被更新,写入请求130就从处理器112的角度完成。因此,向PVRM108的任何随后直写132可以被合并和相对于其他写入是无序发出的,从而允许他们被缓存在单独的直写缓冲器106中,下面将对其详细讨论。因此,这些直写132不会像现有的WT存储器直写一样,产生相同的带宽负担,其中WT存储器不能发出无序的直写。
[0049]继续上述过程,高速缓存层次结构102接着向处理器112返回指示写入操作成功完成的确认信号136。在接收确认信号136后,处理器核126继续执行指令序列中的下一个指令。在相同或大约相同时间,高速缓存层次结构102向处理器112返回信号136,高速缓存层次结构102还可以向直写缓冲器106发出去耦直写132。去耦直写132包含与写入请求130相同的数据。也就是说,去耦直写132可以识别包含要被更新的数据的存储器的地址,以及在存储器中地址的数据的新值应该被采用。参考图1,该原理被示为,更新后的存储器块118被从高速缓存层次结构102 (以及被高速缓存层次结构102)复制到直写缓冲器106。
[0050]接着,当片上接口 120能够接纳PVRM写入请求134时,直写缓冲器106可以将更新后的存储器块118写入到PVRM108 (即,转移表示更新后的存储器块118的数据)。也就是说,在一个实例中,直写缓冲器106可以包含被指定存储在PVRM108中的表示多个存储器块的数据。在这样的情况下,直写缓冲器106不能立即接纳所给出的对应于特定存储器块(例如,更新后的存储器块118)的PVRM写入请求134,这是因为其需要写入驻留在缓冲器106中的其他存储器块。人们已经认识到直写缓冲器106可以如所期望实施本领域已知的任何合适的无效方案,例如,先入先出(FIFO)无效方案或无序的无效方案。以这种方式,被存储在PVRM108中的数据可以被表征为在对给定存储器块的直写缓冲器106写入后(例如,更新后的存储器块118)已经被更新。
[0051]显而易见,直写缓冲器106通过片上接口 120被可操作连接到PVRM108。与片下接口相反的片上接口 120被用在本公开中,以便与传统的非易失性RAM相比优化PVRM108的相对快速存取时间。片上接口可以包括,例如DDR接口、DDR2接口、DDR3接口,或本领域已知的任何其他合适的片上接口。如果使用更慢(例如,片下)的接口,PVRM108的高速存取将会下降。
[0052]前述的更新PVRM108的过程可以继续所期望的许多更新,直到FENCE指令124发出。如本领域所知,FENCE指令124是促使处理器(例如,处理器112)在FENCE指令124发出之前和之后加强存储器操作(例如,读取/写入)的排序约束的指令类别。也就是说,FENCE指令124对在FENCE指令124之前发出的所有在存储器上的存储执行序列化操作(例如,写入请求130/去耦直写132)。这种序列化操作确保以程序次序在FENCE指令124之前的每个存储指令在跟随在FENCE指令124之后的任何加载/存储指令是全局可见之前是全局可见的。以这种方式,软件(例如,OS实施文件系统)知道什么操作已经全部完成,以便确定存储的状态。因此,如果发生系统崩溃,软件知道给定的操作是否成功,或是否需要进行重新进行。也就是说,本公开的FENCE指令124确保对PVRM108更新的可见度,以便保持存储状态的一致视图。以这种方式,装置100可以防止并行程序以及已知跨多线程指令的存储器操作被重新排序何时发生的装置驱动器的不可预见行为。
[0053]在装置100中,FENCE指令124在一个逻辑指令组(例如,写入请求130)结束时发出信号,以便向软件提供PVRM更新的可见度,从而保持存储状态的一致视图。当需要时(例如,在逻辑指令组结束时),FENCE指令124由处理器112向直写缓冲器106发出,请求直写缓冲器106当其空闲时(即,当其已经将其所有存储器块写入到PVRM108时),通知处理器112。当直写缓冲器106是空闲时,其向处理器112传送通知信息128。通知信息128可操作通知处理器112直写缓冲器106是空闲的。该过程是有优势的,这是因为,在接收通知信息128后,在处理器112上运行的软件会促使处理器更新例如文件系统状态,以便提醒是特定存储器块最新版本(例如,更新后的存储器块118)的其他装置组件(例如,除了处理器112以外的一个或多个其他处理器)被定位给PVRM108。以这种方式,在处理器112对至少一个FENCE指令124中的每个执行后,处理器112和每个附加处理器(未示出)具有对被存储在PVRM108中的数据普遍视图。
[0054]虽然上述讨论集中在写入请求130命中高速缓存层次结构102的情况,人们已经认识到在某些情况下,写入请求130将错过高速缓存层次结构102。在这样的情况下,高速缓存层次结构102 (例如,层次结构内的I级缓存)会发出对应于写入请求130寻求更新的存储器块的排他读请求。排他读请求对包含发出块的存储器部分做出回应(例如,另一个高速缓存和/或PVRM108自身),并准许高速缓存层次结构102 (例如,I级缓存)排他允许和块的数据。一旦排他允许已经被准许,进程像写入请求130初始命中高速缓存层次结构102一样进行。
[0055]以这种方式,在图1中示出的装置100提供PVRM108中的数据字节状的更新。包含片上接口 120的装置100的架构利用字节寻址能力的特质和与PVRM108相关的快速存取时间,而又提供软件对PVRM更新的可见度,以便保持存储状态的一致视图。
[0056]图4是示出根据本公开,用于更新PVRM中的数据的方法的一个实例的流程图。在图4中所公开的方法可以通过例如图1中示出的装置100来实现。在步骤400,在没有使存储器块无效的情况下,更新高速缓存层次结构中多个存储器块的存储器块。在一个实例中,多个存储器块的存储器块基于由处理器执行的NISIDW被更新。在步骤402,更新后的存储器块被从高速缓存层次结构复制到直写缓冲器。在步骤404,更新后的存储器块被写入到PVRM,从而更新PVRM中的数据。
[0057]图5是示出根据本公开用于更新PVRM中的数据的方法的另一个实例的流程图。在图5中所公开的方法可以由,例如在图1中示出的装置100实现。步骤400-404像上述关于图4 一样被实现。在步骤500,至少一个FENCE指令被处理器执行。在步骤502,当更新后的存储器块已经基于FENCE指令被写入到PVRM时,处理器被通知。
[0058]图2是示出根据本公开用于更新PVRM108中的数据的装置100 (B卩,新的永久性存储更新机制)的另一个实例。上述关于图1描述的装置100的组件表示实现对PVRM108中的数据字节可寻址更新所必需的组件。然而,如在下列关于图2的讨论中将变得更为清楚,装置100还可以包括用于更新PVRM108中的数据的大数据文件和/或促进批更新PVRM108中的数据的组件。换句话说,在图1中示出的组件和在图2中示出的组件可以共存于相同装置100中,以便提供细粒度的永久性存储更新机制(请参见,例如图1)和粗粒度的永久性存储更新机制(请参见,例如图2)。
[0059]在图2中示出的装置100包括处理器112,例如上述关于图1描述的处理器112。处理器112被可操作连接到高速缓存层次结构102,例如关于图1所讨论的高速缓存层次结构102。高速缓存层次结构102包括由单个存储器块116 (例如,块A、块B等)组成的多个存储器块104。单个存储器块116中的任意一个可以是更新后的存储器块118,例如上述关于图1所讨论的更新后的存储器块118。也就是说,多个存储器块104的任意一个或全部可以先前已经被写入请求130 (例如像在图1中示出的写入请求130)更新。高速缓存层次结构102通过片上接口 120 (例如上述的片上接口 120)被可操作连接到PVRM控制器200。
[0060]PVRM控制器200可以包括,例如能够管理进出PVRM108的数据流的数字电路,或本领域已知的任何合适存储器控制器的类型。在一个实例中,PVRM控制器200可以被集成在相同的微处理器片上,例如处理器112。在任何情况下,如本领域所知,PVRM控制器200可以起存储器直接存取(DMA)引擎的作用。以这种方式,PVRM控制器200可用于分担处理器112的昂贵存储器操作(例如,大容量复制或分散-聚集操作),以便处理器112能够执行其他任务。PVRM控制器200通过本领域已知的合适的通信通道(例如总线)被可操作连接到PVRM108。PVRM108根据上述提供的组件的讨论行动。
[0061]在图2中示出的装置100操作如下。处理器112可以向PVRM控制器200传送控制信息202。控制信息202识别应当从高速缓存层次结构102被复制到PVRM108的单个存储器块116。作为对接收控制信息202的响应,PVRM控制器200可操作将被识别的存储器块210从高速缓存层次结构102复制到PVRM108,从而更新PVRM108中的数据。然而,在一个实施方案中人们已经认识到,PVRM控制器200可以使到PVRM108的被识别存储器块210无效,而不是仅仅复制被识别的存储器块210。
[0062]然而,在一个实例中,PVRM控制器200可操作向高速缓存层次结构102传送指示多个存储器块104的单个存储器块116应当被复制/无效到PVRM108的一个或多个高速缓存探测208。在该实例中,作为对接收高速缓存探测208的响应,高速缓存层次结构102可操作向PVRM108传送表示被识别的存储器块210的数据。例如,继续参考图2,PVRM108被示为包括被识别的存储器块210。以这种方式,处理器112被释放以执行其他的操作,而PVRM控制器200管理一个或多个单个存储器块116从高速缓存层次结构102到PVRM108的复制/无效。
[0063]一旦被识别的存储器块210已经被传送到PVRM108中的永久性存储,处理器可以获得完成通知信息204。完成通知信息204可操作通知处理器112:至少一个被识别的存储器块210已经被从高速缓存层次结构102复制/无效到PVRM108。在一个实例中,通过轮询与PVRM控制器200相关的状态位206,处理器112可操作获得完成通知信息204。如实施方案所使用,“轮询”可以包括连续采样(例如,读取)状态位206,周期性采样状态位206,响应某个事件而采样状态位,等。无论轮询的方法,状态位206可以指示,例如,至少一个被识别的存储器块210是否已经被从高速缓存层次结构102复制/无效到PVRM108。在另一个实例中,通过从PVRM控制器200接收指示至少一个被识别的存储器块210已经被从高速缓存层次结构102复制/无效到PVRM108的处理器中断信号,处理器112可以获得完成通知信息204。以这种方式,在图2中示出的装置100的组件可以促进数据从高速缓存层次结构102到PVRM108中的长期存储的大容量转移,而同时释放处理器112,以便处理器112执行其他操作。
[0064]图3示出根据本公开,用于更新PVRM108中的数据的装置100的另一个实例。图3基本上示出图2的粗粒度更新机制,但是图3包含直写缓冲器106,例如上述关于图1的直写缓冲器106。在图3中示出的装置100的实例中,直写缓冲器106可以被用作被识别的已经被从高速缓存层次结构102复制/无效,但还没有到达PVRM108的存储器块210的临时存储。因此,直写缓冲器106可用于管理从高速缓存层次结构102到PVRM108的被识别存储器块210的流动。换句话说,直写缓冲器106可用于防止瓶颈的情形,当被预计转移到PVRM108的被识别存储器块210比片上接口 120能够接纳的更快时,会产生瓶颈的情形。
[0065]图6示出根据本公开,用于更新PVRM中的数据的方法的一个实例的流程图。在图6中所公开的方法可以由,例如在图2和/或3中示出的装置100实现。在步骤600,处理器向PVRM控制器传送控制信息。控制信息识别将高速缓存层次结构中多个存储器块的至少一个存储器块复制到PVRM。在步骤602,至少一个被识别的存储器块被从高速缓存层次结构复制到PVRM,作为对控制信息的响应,从而更新PVRM中的数据。
[0066]图7示出根据本公开,用于更新PVRM中的数据的方法的另一个实例的流程图。在图7中所公开的方法可以由,例如在图2和/或3中示出的装置100实现。步骤600-602根据上面提供的那些步骤的讨论被实现。在步骤700,处理器获得完成通知信息。完成通知信息可操作通知处理器:至少一个被识别的存储器块已经被从高速缓存层次结构复制到PVRM。
[0067]在一个实例中,每个PVRM存储器单元(例如,I位)可以是任何合适设计的忆阻器。由于忆阻器包括在两个金属触点(例如,钼丝)之间的存储器区域(例如,TiO2层),忆阻器可以被交变电流以交叉点阵列的样式(即,交叉线对)存取,非破坏性读出每个存储单元的电阻。交叉杆是可以将一个线对集合中的每个线连接到与第一集合交叉的第二线对集合中的每个线的存储器区域阵列(两个线集合通常是彼此垂直的,但这不是必要条件)。本文所公开的忆阻器可以使用范围广泛的材料沉积和处理技术构造。在标题为“ELECTRICALLYACTUATED SWITCH”的美国专利申请N0.2008/0090337中公开了一个实例。
[0068]在该实例中,下部电极使用常规技术,例如光刻法或电子束光刻,或通过更先进的技术,例如压印光刻构造。这可以是,例如交叉线对的底线。下部电极的材料可以是金属或半导体材料,优选地是钼。
[0069]在该实例中,要被构造的忆阻器的下一个组件是非共价键界面层,并且如果需要更大的机械强度,考虑到在更高施加电压时的较慢切换所花费的费用,非共价键界面层可以被省略。在这样的情况下,含有某些惰性材料的层被沉积。这可以是由朗缪尔-布洛杰特(Langmuir-Blodgett) (LB)工艺形成的单分子层,或者其可以是自组装单层(SAM)。一般说来,该界面层可以向下部电极和存储器区域的主层仅形成微弱的范德华型键合。可选地,该界面层可以是被沉积在冷却基板上的冰的薄层。形成冰的材料可以是惰性气体,例如氩,或其可以是像CO2的物种。在这样的情况下,冰可以是防止下部电极与主层之间强烈化学键合的牺牲层,并且稍后在处理序列中加热基板,使冰升华,从而从系统中失踪。本领域的技术人员可以很容易设想在下部电极与主层之间形成弱键合界面的其他方式。
[0070]下一步,主层的材料被沉积。这可以通过范围广泛的常规物理和化学技术,包括从克努森容器(Knudsen cell)的蒸发、从坩埚的电子束蒸发、从目标的喷涂或各种反应前体的化学气相或束生长形式完成。膜可以是从I到30纳米(nm)厚的范围,并且其可以在没有掺杂物的情况下生长。根据主层的厚度,膜可以是纳米晶体、纳米孔或非晶形的,以便增加离子可以在材料中漂移的速度,以便实现离子注入的掺杂或离子从主层排出的去掺杂。可选择适当的生长条件,例如沉积速度和基板温度来实现所需要的这种初始绝缘或低电导率的主层的化学成分和局部原子结构。
[0071]下一个层是用于主层的掺杂剂源层或第二层,其也可以通过上述技术中的任意一个沉积。这种材料被选择,为主层提供适当的掺杂物种。该第二层被选择化学兼容于主层,例如,两种材料应当不化学反应,并且彼此不可逆地形成第三种物质。可以被用作主层和第二层的材料对的一个实例分别是TiO2和Ti02_x。TiO2是具有大约3.2eV带隙的半导体。TiO2也是弱离子导体。TiO2薄膜产生隧道势垒,以及Ti02_x形成将TiO2掺杂,使其导电的理想氧空位源。[0072]最终,上部电极以类似于产生下部电极的方式在第二层顶部构造。这可以是,例如交叉线对的顶线。下部电极的材料可以是金属或半导体材料,优选地是钼。如果存储单元处于交叉点阵的样式,沉积的存储器区域材料消除的蚀刻工艺会是必要的,所述沉积的存储器区域材料不在顶线下面以便隔离存储器单元。然而应当理解,任何其他合适的材料沉积和处理技术可用于构造无源可变电阻式存储器的忆阻器。
[0073]除了其他优点之外,所公开的方法和装置提供新的永久性存储更新机制,其具有兼容于PVRM的存取速度和去耦直写非无效存储指令(NISIDW)。在包括新的永久性存储更新机制的计算系统中执行NISIDW提供回写完成的可见度的软件,以便保持永久性存储(例如,PVRM)的状态的一致视图。而且,在没有使更新后的存储器块无效的情况下,NISIDff能够更新高速缓存层次结构和PVRM。本领域的普通技术人员将认识到其他优点。
[0074]而且,已知的是集成电路设计系统(例如,工作站)基于被存储在计算机可读存储器,例如但不限于CD_R0M、RAM、其他ROM形式、硬盘、分布式存储器等上的可执行指令,创建集成电路。指令可以由任何合适的语言,例如但不限于硬件描述语言或任何其他合适语言表示。因此,本文的装置还可以被生产为由这样的系统创建的集成电路。例如,集成电路可以使用被存储在计算机可读介质上的指令创建,当指令被执行时,促使集成电路设计系统创建处理器可操作执行至少一个去耦直写非无效存储指令(NISIDW)的集成电路;基于NISIDW,在没有使存储器块无效的情况下,更新高速缓存层次结构中的多个存储器块的存储器块;将更新后的存储器块从高速缓存层次结构复制到直写缓冲器;以及将更新后的存储器块写入到PVRM,从而更新PVRM中的数据。具有执行本文其他操作的逻辑的集成电路也可以被适当生产。
[0075]上述详细描述和本文所述的实例仅用于陈述和说明的目的,并不是为了限制本公开的范围。因此,可以设想本公开覆盖落入本公开的基本原理和权利要求所要求的精神和范围内的所有更改、变化或等效替代。
【权利要求】
1.一种装置,其包括: 包括多个存储器块的高速缓存层次结构; 被可操作连接到所述高速缓存层次结构的直写缓冲器; 被可操作连接到所述直写缓冲器的无源可变电阻式存储器(PVRM);以及被可操作连接到所述高速缓存层次结构的处理器,所述处理器在没有使存储器块无效的情况下,可操作更新所述高速缓存层次结构中的多个存储器块的所述存储器块,其中所述高速缓存层次结构可操作将更新后的存储器块复制到所述直写缓冲器,作为对所述处理器更新所述存储器块的响应,并且其中所述直写缓冲器可操作将所述更新后的存储器块写入到所述PVRM。
2.根据权利要求1所述的装置,其中所述PVRM包括相变存储器、自旋转矩转移磁阻存储器和忆阻存储器中的至少一个。
3.根据权利要求1所述的装置,其中所述PVRM通过片上接口被可操作连接到所述直写缓冲器,并且其中所述直写缓冲器通过所述片上接口可操作将所述更新后的存储器块写入到所述PVRM。
4.根据权利要求3所述的装置,其中所述片上接口包括双数据速率接口。
5.根据权利要求1所述的装置,其中所述处理器进一步可操作执行至少一个FENCE指令,当所述直写缓冲器已经将所述更新后的存储器块写入到所述PV RM时,所述至少一个FENCE指令中的每个促使所述直写缓冲器通知所述处理器。
6.根据权利要求5所述的装置,其进一步包括至少一个附加处理器,其中在所述至少一个FENCE指令中的每个被所述处理器执行后,所述处理器和至少一个附加处理器中的每个具有所述PVRM中的数据的一致的全局视图。
7.根据权利要求1所述的装置,其中所述高速缓存层次结构包括I级高速缓存、2级高速缓存和3级高速缓存中的至少一个。
8.根据权利要求1所述的装置,其中所述PVRM是字节可寻址的。
9.一种用于更新无源可变电阻式存储器(PVRM)中的数据的方法,所述方法包括: 在没有使存储器块无效的情况下,更新高速缓存层次结构中多个存储器块的所述存储器块; 将所述更新后的存储器块从所述高速缓存层次结构复制到直写缓冲器;以及 将所述更新后的存储器块写入到所述PVRM,从而更新所述PVRM中的数据。
10.根据权利要求10所述的方法,其中所述PVRM包括相变存储器、自旋转矩转移磁阻存储器和忆阻存储器中的至少一个。
11.根据权利要求9所述的方法,其进一步包括: 由所述处理器执行至少一个FENCE指令;以及 当所述更新后的存储器块已经基于所述FENCE指令被写入到所述PVRM时,通知所述处理器。
12.根据权利要求9所述的方法,其中所述高速缓存层次结构包括I级高速缓存、2级高速缓存和3级高速缓存中的至少一个。
13.根据权利要求9所述的方法,其中所述PVRM是字节可寻址的。
14.一种装置,其包括:包括多个存储器块的高速缓存层次结构; 无源可变电阻式存储器(PVRM); 被可操作连接到所述高速缓存层次结构和PVRM的PVRM控制器;以及被可操作连接到所述PVRM控制器的处理器,所述处理器可操作将识别所述多个存储器块的至少一个存储器块从所述高速缓存层次结构复制到所述PVRM的控制信息传送到所述PVRM控制器,其中所述PVRM控制器可操作将至少一个被识别的存储器块从所述高速缓存层次结构复制到所述PVRM,作为对所述控制信息的响应。
15.根据权利要求14所述的装置,其中所述PVRM包括相变存储器、自旋转矩转移磁阻存储器和忆阻存储器中的至少一个。
16.根据权利要求14所述的装置,其中所述处理器可操作获得完成通知信息,其中所述完成通知信息可操作通知所述处理器:所述至少一个被识别的存储器块已经被从所述高速缓存层次结构复制到所述PVRM。
17.根据权利要求16所述的装置,其中所述处理器可操作通过轮询与所述PVRM控制器相关的状态位来获得 完成通知信息,所述状态位指示所述至少一个被识别的存储器块是否已经被从所述高速缓存层次结构复制到所述PVRM。
18.根据权利要求16所述的装置,其中所述处理器可操作通过从所述PVRM控制器接收处理器中断信号来获得完成通知信息,所述处理器中断信号指示所述至少一个被识别的存储器块已经被从所述高速缓存层次结构复制到所述PVRM。
19.根据权利要求14所述的装置,其中所述PVRM通过片上接口被可操作连接到所述高速缓存层次结构,并且其中所述PVRM控制器通过所述片上接口可操作将所述至少一个被识别的存储器块从所述高速缓存层次结构复制到所述PVRM。
20.根据权利要求19所述的装置,其中所述片上接口包括双数据速率接口。
21.根据权利要求14所述的装置,其中所述高速缓存层次结构包括I级高速缓存、2级高速缓存和3级高速缓存中的至少一个。
22.一种用于更新无源可变电阻式存储器(PVRM)中的数据的方法,所述方法包括: 由处理器向PVRM控制器传送控制信息,所述控制信息识别将多个存储器块的至少一个存储器块从高速缓存层次结构复制到所述PVRM ; 所述至少一个被识别的存储器块被从所述高速缓存层次结构复制到PVRM中的永久性文件,作为对所述控制信息的响应,从而更新所述PVRM中的数据。
23.根据权利要求22所述的方法,其中所述PVRM包括相变存储器、自旋转矩转移磁阻存储器和忆阻存储器中的至少一个。
24.根据权利要求22所述的方法,其进一步包括: 由所述处理器获得完成通知信息,其中所述完成通知信息可操作通知所述处理器:所述至少一个被识别的存储器块已经被从所述高速缓存层次结构复制到所述PVRM。
25.根据权利要求24所述的方法,其中所述获得完成通知消息包括下列中的至少一个: 由所述处理器轮询与所述PVRM控制器相关的状态位,其中所述状态位指示所述至少一个被识别的存储器块是否已经被从所述高速缓存层次结构复制到所述PVRM ;以及 由所述处理器从所述PVRM控制器接收处理器中断信号,所述处理器中断信号指示所述至少一个被识别的存储器块已经被从所述高速缓存层次结构复制到所述PVRM。
26.根据权利要求20所述的方法,其中所述从高速缓存层次结构复制至少一个被识别的存储器块到所述PVRM包括:通过片上接口,从所述高速缓存层次结构复制至少一个被识别的存储器块到所述PVRM。
27.根据权利要求26所述的方法,其中所述片上接口包括双数据速率接口。
28.根据权利要求22所述的方法,其中所述高速缓存层次结构包括I级高速缓存、2级高速缓存和3级高 速缓存中的至少一个。
【文档编号】G06F12/08GK103460198SQ201280015516
【公开日】2013年12月18日 申请日期:2012年4月4日 优先权日:2011年4月4日
【发明者】布拉德·贝克曼, 莉萨·徐 申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1