向非易失性存储器的写操作的制作方法

文档序号:11160906阅读:655来源:国知局
向非易失性存储器的写操作的制造方法与工艺

本公开涉及数据处理装置。更具体地,本公开涉及具有回写缓存的数据处理装置。



背景技术:

已知提供了具有对非易失性存储器的访问的数据处理装置,在非易失性存储器中存储了该数据处理装置对其执行数据处理操作的数据项。作为非易失性存储器,在数据处理系统的供电无论由于受控的重启还是由于突发事件而被中断并恢复后,该非易失性存储器的内容将是持久的。

还已知提供了具有回写缓存的数据处理装置,该回写缓存与该数据处理装置的处理器相关联,从存储器取回并被写出到存储器的数据项的本地副本被临时地存储在该回写缓存中。由于缓存具有回写配置,存储在缓存中并且经修改的数据项仅当必需被写出到存储器时(例如,因为保存该数据项的缓存线被从缓存驱逐)才被写出到存储器。

但是,同时提供回写缓存和对非易失性存储器的访问可能存在困难。本文所描述的技术改进了包括回写缓存和非易失性存储器的装置。



技术实现要素:

根据第一示例配置,提供了一种数据处理装置,包括:处理器核,该处理器核能响应于指令序列执行数据处理操作,其中数据处理操作包括从存储器取回数据项的读操作和向存储器写数据项的写操作,其中所述存储器是非易失性存储器;回写缓存,该回写缓存能在运行指令序列时存储处理器核从存储器取回和向存储器写的数据项的本地副本;以及存储单元,该存储单元能存储对由处理器核发起的写操作的指示,并且处理器核能通过以下过程来对指令序列中的结束指令作出响应:使作为处理器核的下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中对所述写操作的指示已被存储到所述存储单元;以及将存储单元中存储的对写操作的指示清除。

根据第二示例配置,提供了一种数据处理方法,包括以下步骤:响应于指令序列执行数据处理操作,其中数据处理操作包括从存储器取回数据项的读操作和向存储器写数据项的写操作,其中所述存储器是非易失性存储器;运行指令序列时在回写缓存中存储从存储器取回和向存储器写的数据项的本地副本;存储对在执行数据处理操作步骤时发起的写操作的指示;以及通过以下过程来对指令序列中的结束指令作出响应:使作为下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中在存储本地副本的步骤中已存储了对所述写操作的指示;以及将在存储指示的步骤中存储的对所述写操作的指示清除。

根据第三示例配置,提供了一种数据处理设备,包括:用于响应于指令序列执行数据处理操作的装置,其中数据处理操作包括从存储器取回数据项的读操作和向所述存储器写数据项的写操作,其中存储器是非易失性存储器;用于运行指令序列时存储从存储器取回和向存储器写的数据项的本地副本的装置,其中用于存储的装置具有对于存储器的回写配置;用于存储对由用于执行数据处理操作的装置发起的写操作的指示的装置;以及用于通过以下过程来对指令序列中的结束指令作出响应的装置:使作为下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中用于存储本地副本的装置已存储了对所述写操作的指示;以及将在用于存储指示的装置中存储的对写操作的指示清除。

附图说明

将参照在附图中示出的本技术的实施例来仅通过示例的方式进一步描述本技术,其中:

图1示意性地示出了一个实施例中的包括数据处理装置的数据处理系统;

图2示意性地示出了一个实施例中的数据处理装置用于确定虚拟到物理地址转换的页表;

图3示意性地示出了一个实施例的处理器核中所提供的FIFO存储单元;

图4示意性地示出了一个实施例中的一级缓存;

图5示出了一个实施例的数据处理装置可以执行的示例指令序列;

图6示出了一个实施例中的对两条指令的每条指令中的控制信息的编码;

图7到图10示出了在一个实施例的数据处理装置中执行的一系列步骤;以及

图11示意性地示出了一个实施例中的在数据处理装置中发生的一系列步骤。

具体实施方式

至少一些实施例提供了一种数据处理装置,包括:处理器核,该处理器核能响应于指令序列执行数据处理操作,其中数据处理操作包括从存储器取回数据项的读操作和向存储器写数据项的写操作,其中所述存储器是非易失性存储器;回写缓存,该回写缓存能在运行指令序列时存储处理器核从存储器取回和向存储器写的数据项的本地副本;以及存储单元,该存储单元能存储对由处理器核发起的写操作的指示,并且处理器核能通过以下过程来对指令序列中的结束指令作出响应:使作为处理器核的下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中对所述写操作的指示已被存储到所述存储单元;以及将存储单元中存储的对写操作的指示清除。

本技术解决了处理器核寻求从非易失性存储器读取数据项和将那些(修改后的)数据项写到非易失性存储器产生的上述问题,其中将数据项写到非易失性存储器是经由回写缓存居间实现的。具体而言,该装置包括存储单元,该存储单元能存储对由处理器核发起的对非易失性存储器的写操作的指示。与提供该存储单元相关联地,指令被添加到处理器核执行其数据处理操作期间能响应的指令范围,并且响应于该指令(“结束指令”),处理器核使回写缓存中的下述条目被从回写缓存清理到非易失性存储器,对于这些条目对由处理器核发起的写操作的相应指示当前已被存储在存储单元中。这里从回写缓存到非易失性存储器的数据项的“清理(clean)”应当理解为指,存储在回写缓存中的数据项的修改后副本被用来更新存储在非易失性存储器中的原始数据项。存储单元的内容然后也被清除。因此,在数据处理装置的编程者希望保证(通过运行写指令发起的)对非易失性存储装置的写操作按特定排序发生时,可以通过增加结束指令到该编程者给出的指令序列中来定义该装置应当执行的数据处理操作来实现。

在一些实施例中,非易失性存储器是按字节寻址的。但是,也可以设想其它类型的可寻址能力,依据其自身非易失性存储器可以是按字寻址的、按缓存线寻址的,等等。

在一些实施例中,处理器核还能使在指令序列中的开始指令之后,对处理器核发起的写操作的指示被存储到存储单元中。因此,进一步的指令可以被添加到处理器核响应的指令集,这使得系统程序员能封装写操作的“写集合”(以开始指令开始,以结束指令终止)。按照回写缓存的操作而不是处理器核的操作(由于调度原因,处理器核的操作可能会改变特定指令运行的顺序),可以保证在非易失性存储器的内容中,程序员期望的(该写集合相当于其它写操作的)写顺序将得到重视。

在一些实施例中,处理器核能如果指定存储器的预定部分的未决写指令在开始指令后且在结束指令前,则仅能执行对存储器的预定部分的写操作。类似地,在一些实施例中,处理器核能如果指定所述存储器的预定部分的未决写指令不是在开始指令后且在结束指令前,则防止执行对存储器的预定部分的写操作。这使得处理器核能访问的存储器地址空间的特定部分(例如可以是非易失性存储器提供的部分)能得到保护,因为该部分不能被写入,除非寻求写该部分的写指令在开始指令之后且在结束指令之前。这保护了该存储器部分,例如非易失性存储器,免遭“误写”(例如,由于程序中的缺陷)使其出错。

可以以多种方式布置处理器核,来在识别出结束指令(可能还有开始指令)的存在时处理处理器核运行的指令序列中的其它指令。例如,在一些实施例中,处理器核能通过以下过程来对结束指令和指令序列中的后续开始指令作出响应:使指令序列中的后续开始指令暂停,直到结束指令完成。程序员可用开始指令来定义下一个写集合的开始,从而当处理器核遇到结束指令后的后续开始指令时,通过使后续开始指令暂停直到结束指令完成(即,从处理器核流水线排干),从而能够保证该下一写集合不被处理,直到已处理了前一个写集合。

在一些实施例中,处理器核能通过以下过程来对结束指令和指令序列中的后续存储器操作指令作出响应:使指令序列中的后续存储器操作指令暂停,直到结束指令完成。因此,当(响应于指令序列中的一个或多个存储器操作指令将被执行的)一个或多个存储器操作接着指令序列中的结束指令时,可以使这些存储器操作暂停,从而保证这些存储器操作的结果不会在非易失性存储器中生效,直到预先定义的结束指令完成,这对以结束指令终止的写集合提供了更高级保护。

实际上,在一些实施例中,处理器核能通过以下过程来对结束指令和指令序列中的后续指令作出响应:使指令序列中的后续指令暂停,直到结束指令完成。因此,对以结束指令终止的写集合提供了又一级保护,因为可以使指令序列中的任何后续指令暂停,直到结束指令完成。

对由处理器核发起的对非易失性存储器的写操作的指示存储在其中的存储单元可以采用多种形式,但是在一些实施例中,该存储单元是先进先出(FIFO)存储单元。可以在该装置的多个不同位置中提供该FIFO结构,只要是对处理器核可访问的,但是在一些实施例中,处理器核包括该先进先出存储单元。这便于处理器核对该FIFO结构的访问和维护。

作为替换,在一些实施例中,存储单元是由回写缓存提供的,并且对由处理器核发起的写操作的指示被作为与回写缓存中存储的缓存线相关联的标记存储,其中对这些标记中的一个标记的设置指示形成缓存线中的一条缓存线的至少一部分的数据项的本地副本是否是处理器核的写操作的操作对象。因此,当数据项被存储在回写缓存的每条缓存线中时,标记(例如,可以被设置或清除的位)可以被存储在该缓存线中,对该标记的设置指示该缓存线中的至少一个数据项是处理器核对非易失性存储器的写操作的操作对象。尤其是由于所需信息的直接可用性(即,不参考该装置中的分离的结构),这便于实现以与标识这种数据项相关的多种方式对回写缓存进行配置。

在一些实施例中,存储单元能将由处理器核发起的写操作的至少部分存储器地址作为指示存储。同样也可以存储完整的存储器地址,但是显然需要更大的存储容量,部分存储器地址就足够了,只要其使得能够标识出回写缓存的缓存线中的相应条目。

在一些实施例中,存储在存储单元中的指示指示回写缓存中存储了与写操作相对应的数据项的至少一个缓存块。这尤其便于联合对同一缓存块的写,因为如果前一写操作已对与缓存中的同一缓存块相关的存储单元进行了写,那么没有必要存储对该存储单元的后续写操作的额外指示,这是因为从回写缓存到非易失性存储器的清理通常逐缓存块发生,因此针对前一写操作存储的指示将保证后续写操作的清理也将发生。

在一些实施例中,处理器核还能参考页表来确定虚拟地址到物理地址存储器地址映射,该页表中的每一条目包括指示该条目是否与预定存储器地址空间相对应的标志,并且处理器核能使对由所述处理器核发起的对预定存储器地址空间的写操作的指示存储到存储单元中。处理器核能访问非易失性存储器之外的其它存储器设备,页表中存储的额外信息可以标识出非易失性存储器提供的完整可访问地址空间的区域,并且使得处理器核能使存储单元仅被填充有与对非易失性存储器的写操作相关的信息。

取决于特定系统需求,对于对回写缓存中存储的数据项的本地副本到非易失性存储器的清理,可能要求不同级别的密级。这样,在一些实施例中,处理器核能响应于开始指令中的编码来暂停结束指令之后的任何指令,直到存储器中的控制器确认接收到提交从回写缓存向存储器清理的数据项的本地副本的命令。因此,通过确认缓存的数据项到存储器的提交,可以保证非易失性存储器的存储器控制器已处理了由开始指令和结束指令封装的写集合。

然而,对于某些应用,知道写集合在非易失性存储器中已变为持久的是关键的,因此,在一些实施例中,处理器核能响应于开始指令中的编码来暂停结束指令之后的任何指令,直到存储器中的控制器指示从回写缓存向存储器清理的数据项的本地副本已被提交给存储器。因此,结束指令之后的任何指令都可以被暂停,直到明确地知道(通过来自非易失性存储器控制器的指示)回写缓存中缓存的相应数据项已实际被提交给非易失性存储器。

除了处理器核对结束指令的响应之外,回写缓存中缓存的、与非易失性存储器中存储的数据项相关的数据项的清理也可以在其它时间发生,并且在一些实施例中,该装置还能响应于清理条件,使回写缓存中存储的本地副本中的下述至少一个本地副本被从回写缓存清理到存储器,并且清除存储单元中存储的对至少一个写操作的至少一个相应指示,其中,所述至少一个本地副本是处理核的、对其的指示已被存储到存储单元中的至少一个写操作的操作对象。因此,可以定义一个或多个将使得回写缓存中的(至少部分)内容被从回写缓存清理到非易失性存储器的清理条件。

在一些实施例中,当存储单元满时,清理条件得到满足。一旦存储单元满了,就不能在其中存储其它指示,因此这是使得清理发生的合适情形。在该情形中,典型的是回写缓存中存储的、在存储单元中有相应条目的任意数据项都将被清理到非易失性存储器,尽管也可以设想仅释放存储单元的容量的一部分的部分清理。

在一些实施例中,当回写缓存中存储的本地副本被驱逐到存储器时,清理条件得到满足。当然,将该本地副本驱逐到存储器将本质上导致本地副本的清理,但是根据本技术,仅与该被驱逐的本地副本相对应的存储单元中的相应条目被清除,或者设想回写缓存中存储的所有数据项都被清理到非易失性存储器并且存储单元的所有内容都被清除的完全清理。

在一些实施例中,当回写缓存中存储的本地副本被缓存一致性机制侦测到并且对其的指示被存储到存储单元时,清理条件得到满足。可以以多种方式处理(由该装置所属的数据处理系统中的另一个缓存发起的)缓存一致性机制的这种侦测,但是清理回写缓存中存储的本地副本使得能够实现对侦测的相对简单的响应,指示出数据项现在是最新的。

在一些实施例中,回写缓存能存储与回写缓存中存储的缓存线相关联的侦测则清理标记,其中对侦测则清理标记的设置指示相应的指示被存储到存储单元中。侦测则清理标记指示存储了相应的指示(即,该缓存线包含最终将需要被清理到非易失性存储器的至少一个数据项),并且如果被侦测到则该条目应当被清理;侦测则清理标记使得回写缓存能直接对缓存一致性机制作出的侦测作出响应,而无需另外再参考存储单元来确定存储单元中是否存储了相应的指示。取决于存储单元的性质和配置,这例如可能要求存储单元是按内容寻址的,或者可能要求通过存储单元的迭代搜索。

然而,在其它实施例中,存储单元是内容寻址存储单元,这可以便于确定特定指示(即,与回写缓存中存储的特定数据项相关的)当前是否存储在存储单元中。

至少一些实施例提供了一种数据处理方法,包括以下步骤:响应于指令序列执行数据处理操作,其中数据处理操作包括从存储器取回数据项的读操作和向存储器写数据项的写操作,其中所述存储器是非易失性存储器;运行指令序列时在回写缓存中存储从存储器取回和向存储器写的数据项的本地副本;存储对在执行数据处理操作步骤时发起的写操作的指示;以及通过以下过程来对指令序列中的结束指令作出响应:使作为下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中在存储本地副本的步骤中已存储了对所述写操作的指示;以及将在存储指示的步骤中存储的对所述写操作的指示清除。

至少一些实施例提供了一种数据处理设备,包括:用于响应于指令序列执行数据处理操作的装置,其中数据处理操作包括从存储器取回数据项的读操作和向所述存储器写数据项的写操作,其中存储器是非易失性存储器;用于运行指令序列时存储从存储器取回和向存储器写的数据项的本地副本的装置,其中用于存储的装置具有对于存储器的回写配置;用于存储对由用于执行数据处理操作的装置发起的写操作的指示的装置;以及用于通过以下过程来对指令序列中的结束指令作出响应的装置:使作为下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器,其中用于存储本地副本的装置已存储了对所述写操作的指示;以及将在用于存储指示的装置中存储的对写操作的指示清除。

图1示意性地示出了数据处理系统10,数据处理系统10包括经由系统总线14耦合到DRAM存储器16和非易失性字节寻址存储器18的CPU12。该DRAM存储器包括DRAM控制器20和DRAM存储装置22。类似地,非易失性存储器18包括非易失性存储器控制器24和非易失性存储装置26。

在该示例实施例中构成片上系统设备的一部分的CPU 12包括处理器核30和两级缓存,即一级(LI)缓存32和二级(L2)缓存34。核30本身包括执行流水线36,这里纯粹为了说明的简单和清楚起见,仅示出了执行流水线36的四个级,即取回/解码/发布级38,两个执行级40、42,以及提交级44。核30内还提供了FIFO存储单元46,FIFO存储单元46包括FIFO控制器48和FIFO存储装置本身50。执行流水线36的取回/解码/发布级38被配置为识别核30从存储器(例如,DRAM 16或非易失性存储器18中的任一者)取回的指令序列中的指令,具体而言,参考本技术,指寻求将数据项写入到非易失性字节寻址(NVBA)存储器18的那些写指令。对于这些写指令,取回/解码/发布级38向FIFO 46的控制单元38发信号,通知指示该写指令正试图执行的写操作的条目应当被存储在FIFO存储装置50中。在该实施例中,这对应于写指令所指示的存储器地址的一部分,该部分足以唯一地标识在L1缓存32的缓存线中的相应条目。L1缓存32被配置为具有回写配置,根据该回写配置,L1缓存32所存储的经修改数据项不会立即更新到最初从中取回该数据项的存储器中,而是可以被保存在L1缓存32中达一过渡时期,直到例如保存该数据项的缓存线被驱逐、或者L1缓存接收到“清理”该数据项的明确命令、或者接收到L1缓存对作为缓存一致性机制的一部分的侦测的响应(L1缓存32通过清理该数据项对侦测作出响应)。

在核30内提供FIFO存储单元46以使得数据处理系统10能够特别是在面对电源故障或在系统崩溃的可能性的情况时,在非易失性存储器18中维护可靠的内容。因为非易失性存储器18是持续性的(与DRAM 16不同),在此假定,处理器核30具有使得其软件获知指向非易失性存储器18的某一写指令集的所有指令在另一写指令集开始前已被提交的机制,以确保非易失性存储器18中所存储的数据处于一致状态。例如,如果处理器核30正在执行的程序指令序列(软件)涉及向链接列表的添加,则该链接列表的新元素必须在指向该块的指针被更新并写回到非易失性存储器18之前被写回到非易失性存储器18。注意,对于诸如DRAM 16之类的易失性存储器,因为DRAM内容是非持续的,所以由处理器核30执行的壁垒(barrier)能够确保这种可靠性,但是在非易失性存储器18的情境下,壁垒是不足够的,因为这仅确保了核流水线36的指令/执行的某种排序。相比之下,L1缓存32和L2缓存34的操作对核30而言是透明的,因此当处理非易失性存储器和至少一个回写缓存(比如,在该示例中为L1缓存32)时,壁垒不能确保非易失性存储器18的内容的一致状态将一直被维持,以使得数据处理系统10中的电源故障或崩溃不会导致不一致的数据被存储于此。

图2示出了处理器核30用来将(处理器核30内部使用的)虚拟存储器地址转换为(DRAM 16和非易失性存储器18所使用的)物理存储器地址的页表。页表中的附加标记(在图中标注为NVBA-设定/非设定位)指示对应于非易失性存储器18的那些存储器地址。这种对与非易失性存储器相对应的地址转换的标注使得处理器核30能够标识它在指令序列中遇到的写指令何时将使对非易失性存储器的写操作被执行。一般而言,处理器核30然后可以被配置为在FIFO 46中填入与该写操作相对应的条目,尽管在这里所描述的具体实施例中,处理器核30的架构使得,为了允许执行对被标记为非易失性的存储器的区域的写操作,相应的写指令可以在nvba_begin指令(nvba_开始指令,用于标识与该非易失性存储器有关的写集合的开始)后,nvba_end指令(nvba_结束指令,用于标识与该非易失性存储器有关的写集合的结束)前。在遇到与被标记为NVBA的任何存储器区域有关的写指令,但是该写指令不在nvba_开始指令后且在nvba_结束指令前的情况下,处理器核30被配置为阻止该写指令所指定的写操作被执行。这种安排防止非易失性存储器遭受误写(即,处理器核30执行的指令序列中的错误),否则这种误写会破坏该非易失性存储器。

然而,当遇到与非易失性存储器有关的写指令并且该写指令被夹在nvba_开始指令和nvba_结束指令之间时,处理器核30向FIFO控制器48和L1缓存32指示,对响应于该写指令将被执行的写操作的指示应当被添加到FIFO存储装置50。图3中在示例配置中示出了FIFO 46,在该示例配置中FIFO存储装置50的四个条目当前填充有对写操作A-D的指示。如该图中所指示的,这些指示可以包括写操作的目标存储器地址(或者实际上仅部分存储器地址,如果部分存储器地址足以标识L1缓存32中的响应条目的话),或者可以替代地是示出在L1缓存32中找到相应的条目的位置的缓存块指示符。FIFO控制单元48维护对FIFO 46的整体控制,以根据需要管理对条目的添加和对条目的删除(无论单独地还是针对FIFO的整体内容)。在要求FIFO 46对来自L1缓存的、关于L1缓存中的特定数据项是否在FIFO存储装置50中具有相应的条目的查询作出响应的情况下,可以以内容可寻址的方式配置FIFO存储装置50,以提供该功能。何时这样的单独查询可以被接收的一个示例可以是在从L1缓存驱逐数据项时,响应于从L1缓存驱逐数据项,FIFO控制器48可以被配置为使得FIFO存储装置50中的相应的条目被移除。可替代地,来自L1缓存的内容查询可以响应于由L1缓存作为其在缓存一致性机制中的参与的一部分接收的侦测查询而被接收,但是如下文将参考图4进行描述的,L1缓存本身可以被配置为存储对关于相应的条目当前是否被保存在FIFO 46中的指示,以避免必须向FIFO 46提供内容寻址存储器配置,从而便于作为对核30的相对较小的添加提供FIFO 46。最后,如图3中所示,FIFO控制器48还被配置为监视FIFO存储装置50是否变得被填满(并因此将不能填充其它条目)。在FIFO存储装置50被填满的情况下,FIFO控制器48向L1缓存32发送信号来表明该事实,使得L1缓存中的相应的条目然后被迅速地写回到非易失性存储器18,并且FIFO 46的内容被清除。

图4示意性地示出了L1缓存32的某些更具体的细节,示出了该回写缓存具有控制器60和多个缓存线62。缓存控制器60监视从核30接收的控制信号和数据项,这些控制信号是从流水线36和FIFO控制器48两者接收的。缓存线62被配置为存储处理器核在其数据处理操作中使用的数据项,并且每个缓存线存储数据项自身和相关联的状态标记(按照通常方式,脏/有效等)。但是,请注意,每个缓存线的一个额外位在这里被定义为指示该缓存线包含针对NVBA存储器的写数据项的专用标记64。这可以等价地被看作是侦测则清理(clean-on-snoop)标记,其中如果接收到来自另一缓存/CPU的侦测,命中缓存线62之一,则标记64的存在使得该缓存线被清理到NVBA存储器。实际上,更一般的情况是,标记64可被用来指示下述行:当发生表示本地L1缓存32不再具有对该行的内容的独占控制的事件时,应当被清理的行。对缓存线进行驱逐仅是一个这样的示例,对此,标记64因此可被看作是驱逐即清理(clean-on-evict)标记。在所示出的配置中,缓存控制器60被配置为监视从数据处理装置10的存储器系统中的其它缓存接收的侦测,并且当接收到与缓存32的缓存线62(对于该缓存线,标记64指示该缓存线与NVBA存储器中的数据项有关)中所存储的数据项有关的、来自另一缓存的侦测时,缓存控制器60被配置为立即使得该缓存线被驱逐。发送信号向FIFO控制器48表明该事件,以使得FIFO 46中任何相应的内容可以被清除。对来自另一缓存的侦测的响应然后可以指示该侦测的数据项是有效的。

图5示出了示例指令序列,该指令序列可以被图1中所示的处理器核30执行。该序列的第一部分(标注为A)具有与访问未被存储在非易失性字节寻址存储器中的数据项的读、写和数据处理指令有关的多条指令。之后是定义第一区域(写集合)的开始的nvba_开始指令,在第一区域中读、数据处理和写指令(至少部分地)与非易失性字节寻址存储器18中所存储的数据项有关。第一区域(写集合)(标注为B)以nvba_结束指令终止。之后是与非易失性字节寻址存储器中所存储的数据项无关的第二指令集(A)。最后,(至少部分地)与非易失性字节寻址存储器18中所存储的数据项有关的读、数据处理和写指令(B)的第二区域(写集合)由第二nvba_开始指令和第二nvba_结束指令来定义。提供nvba_开始指令和nvba_结束指令使得程序员能够定义本技术可以保持其(相对于彼此)排序的写集合,即使当所访问的数据项被存储在对其访问由回写缓存来进行缓存的非易失性存储器中时也如此。

图6示出了在一个实施例中对nvba_开始指令和nvba_结束指令的示例编码。每条指令包括一个操作码,该操作码将其自定义为nvba_开始指令或nvba_结束。另外,每条指令中的编码空间被用于提供与本技术相关的控制信息。nvba_开始指令包括定义清理类型的控制信息。清理类型指定当L1缓存32将内容清理到NVBA存储器18时所要求的来自非易失性存储器控制器24的响应的类型。示出了响应的两种示例类型。在第一示例类型中,非易失性存储器控制器可以仅告知已接收到清理内容的命令。在第二示例类型中,非易失性存储器控制器可以确认清理命令已经被执行,即,该内容在非易失性存储器中已经被更新,并且因此确保是持续性的。nvba_结束指令包括定义在nvba_结束指令完成前如何处置nvba_结束指令后的指令的控制信息。可以是不对这些后面的指令施加限制,但是示出了各种示例限制级别,这些限制级别指示出可使得暂停直到nvba_结束指令完成为止的多种类型的指令。如图所示,这些指令有:全部后续nvba_开始指令;全部后续向NVBA写;全部后续存储器操作;或全部后续指令。从而可以实现对由nvba_开始指令和nvba_结束指令封装的写集合的各种程度的保护。

现在将描述为了实现本技术而在一个实施例的数据处理装置中执行的或者可替代地在一个实施例的方法中的各个步骤。图7-10示出了在支持本技术的各个特征数据处理装置中正在进行的操作和监视的不同方面。例如,图7示意性地示出了监视与NVBA存储器18有关的特定指令的一系列步骤。该流程被看作是开始于步骤70,在该步骤中数据处理装置正在执行其指令序列。在步骤72,确定是否已经遇到指向NVBA存储器的写指令,该写指令不在nvba_开始指令之后、nvba_结束指令之前。当是这种情形时,使从而识别出的这写指令不被执行(步骤74),并且流程返回到步骤70。可以采取多种形式来不执行该写指令,例如,仅抑制该指令、生成处理故障等。如果在步骤72中未识别出这样的写指令,则流程直接返回到步骤70。

图8示意性地示出了实现来支持写集合排序的一系列步骤。该流程可以被看作是开始于步骤76,在该步骤中数据处理装置正在执行其指令序列。之后,在步骤78,确定是否已经遇到nvba_开始指令,同时先前的nvba_结束指令尚待完成。换言之,已经发现指令序列中的第二写集合的开始,而先前的写集合仍在被数据处理装置处理的过程中。在此实施例中,为了严格地保证这些写集合的排序,当在步骤78中满足这样的条件时,流程进行到步骤80,在该步骤中,新nvba_开始指令被暂停,直到先前的nvba_结束指令已完成为止。之后,流程返回到步骤76。可替代地,如果在步骤78中不满足该条件,则流程也返回到步骤76。

图9示意性地示出了与L1缓存32参与的缓存一致性机制有关的一系列步骤。步骤82表示数据处理装置正在执行指令序列,可以认为这些步骤的流程开始于此。在步骤84,确定回写缓存32中的条目是已被选定为要被驱逐到存储器还是正被缓存一致性机制侦测。在这两种事件都未发生时,流程只是返回到步骤82。然而,当它们中的任一发生时,则(在步骤86)L1缓存32中的相应的条目被清理到存储器,并且L1缓存32向FIFO控制器48发信号表明FIFO 46中的相应的条目应当被清除。

图10涉及对FIFO 46本身的监管。在处理器核30执行指令序列(步骤88)的过程中,在步骤90确定FIFO存储装置50是否已变满。当并非如此时,流程只是返回到步骤88。然而,如果FIFO变满,则流程进行到步骤92,在该步骤中,回写缓存中所有在FIFO中有相应条目的条目被清理(到非易失性存储器18)并且FIFO存储装置50被清除。

图11示出了在一个实施例的方法中执行的一系列步骤。步骤100表示数据处理装置正在执行指令序列。之后,确定是否遇到指令序列中的封装了针对NVBA的存储器的写集合的nvba_开始/nvba_结束指令对。当并非如此时,流程返回到步骤100。一旦识别出这样的写集合,然后,在步骤104,根据nvba_开始指令确定对于该写集合将要求的回写清理的类型。在步骤106,根据nvba_结束指令确定处理nvba_结束指令之后的指令的方式。然后(步骤108),可以执行实质上形成该写集合的指令,并且对于被配置为引起到NVBA存储器的写操作的那些指令,在FIFO 46中添加条目并且将经修改的数据项缓存到L1缓存32。一旦nvba_结束指令本身已经被执行(步骤110),就发起对L1缓存32中的在FIFO 46中有相应条目的数据项到NVBA存储器18的清理,并且清除FIFO。然后在步骤114,确定是否已经完成所要求类型的清理(如nvba_开始中所指定的),即,NVBA存储器控制器24是否已经确认对清理命令的接收,或者(如果需要的话)已经确认清理的完成。当并非如此时,该流程经由步骤116循环,在该步骤中,使得nvba_结束指令之后的(具有nvba_结束指令中指定的类型)的指令暂停。一旦确认了清理,该流程返回到步骤100。

虽然在此已经参照附图详细描述了本发明的说明性实施例,但是应理解本发明不限于这些精确的实施例,并且本领域技术人员可以在不背离由所附权利要求限定的本发明的范围和精神的情况下实践各种改变、添加和修改。例如,可以在不脱离本发明的范围的情况下,作出独立权利要求的特征与从属权利要求的特征的各种组合。

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