平码五不中公式规律
  • / 20
  • 下载费用:30 金币  

向非易失性存储器的写操作.pdf

关 键 ?#21097;?/dt>
非易失性存储器 操作
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580042098.X

申请日:

2015.06.23

公开号:

CN106663057A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 12/0804申请日:20150623|||公开
IPC分类号: G06F12/0804(2016.01)I; G06F12/0815(2016.01)I 主分类号: G06F12/0804
申请人: ARM 有限公司
发明人: 阿里·格哈森·赛迪; 理查德·罗伊·格里森思?#31243;?
地址: 英国剑桥
优?#28909;ǎ?/td> 2014.08.04 GB 1413772.3
专利代理机构: ?#26412;?#19996;方亿思知识产权代理有限责任公司 11258 代理人: 林强
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580042098.X

授权公告号:

|||

法律状态公告日:

2017.08.25|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

提供了处理数据的装置和数据处理方法。该装置中的处理器核响应于包括将数据项写到非易失性存储器的写操作的指令序列而执行数据处理操作。回写缓存存储处理器核从存储器取回和向存储器写的数据项的本地副本。提供了存储对由处理器核发起的写操作的指示的存储单元,并且处理器核被配置为通过使作为处理器核的下述写操作的操作对象的数据项的本地副本被从回写缓存清理到存储器来对结束指令作出响应,其中对所述写操作的指示已被存储到存储单元。?#32531;?#23558;存储单元中存储的对所述写操作的指示清除。

权利要求书

1.一种处理数据的装置,包括:
处理器核,能响应于指令序列执行数据处理操作,其中所述数据处理操作包括从存储
器取回数据项的读操作和向所述存储器写数据项的写操作,其中所述存储器是非易失性存
储器;
回写缓存,能在运行指令序列时存储所述处理器核从所述存储器取回和向所述存储器
写的数据项的本地副本;以及
存储单元,能存储对由所述处理器核发起的写操作的指示,并且
所述处理器核能通过以下过程来对所述指令序列中的结束指令作出响应:
使作为所述处理器核的下述写操作的操作对象的数据项的本地副本被从所述回写缓
存清理到所述存储器,其中对所述写操作的指示已被存储到所述存储单元;以及
将所述存储单元中存储的对所述写操作的指示清除。
2.如权利要求1所述的装置,其中所述非易失性存储器是按?#32440;?#23547;址的。
3.如前述?#25105;?#26435;利要求所述的装置,其中,所述处理器核还能使在所述指令序列中的
开始指令之后对所述处理器核发起的写操作的指示被存储到所述存储单元中。
4.如权利要求3所述的装置,其中,所述处理器核能,如果指定所述存储器的预定部分
的未决写指令在所述开始指令后且在所述结束指令前,则仅执行对所述存储器的预定部分
的写操作。
5.如权利要求3所述的装置,其中,所述处理器核能,如果指定所述存储器的预定部分
的未决写指令不是在所述开始指令后且在所述结束指令前,则防止执行对所述存储器的预
定部分的写操作。
6.如权利要求3所述的装置,其中,所述处理器核能通过以下过程来对所述结束指令和
所述指令序列中的后续开始指令作出响应:
使所述指令序列中的后续开始指令暂停,直到所述结束指令完成。
7.如权利要求3所述的装置,其中,所述处理器核能通过以下过程来对所述结束指令和
所述指令序列中的后续存储器操作指令作出响应:
使所述指令序列中的后续存储器操作指令暂停,直到所述结束指令完成。
8.如前述?#25105;?#26435;利要求所述的装置,其中,所述处理器核能通过以下过程来对所述结
束指令和所述指令序列中的后续指令作出响应:
使所述指令序列中的后续指令暂停,直到所述结束指令完成。
9.如权利要求1-8?#25105;?#26435;利要求所述的装置,其中,所述存储单元是先进先出存储单
元。
10.如权利要求9所述的装置,其中,所述处理器核包括所述先进先出存储单元。
11.如权利要求1-8?#25105;?#26435;利要求所述的装置,其中,所述存储单元是由所述回写缓存
提供的,并且对由所述处理器核发起的写操作的指示被作为与所述回写缓存中存储的缓存
线相关联的标记存储,其中对所述标记中的一个标记的设置指示形成所述缓存线中的一条
缓存线的至少一部分的数据项的本地副本是否是所述处理器核的写操作的操作对象。
12.如权利要求1-10?#25105;?#26435;利要求所述的装置,其中,所述存储单元能将由所述处理器
核发起的写操作的至少部分存储器地址作为所述指示存储。
13.如权利要求1-10?#25105;?#26435;利要求所述的装置,其中,存储在所述存储单元中的指示指
示所述回写缓存中的存储与所述写操作相对应的数据项的至少一个缓存块。
14.如前述?#25105;?#26435;利要求所述的装置,其中,所述处理器核还能参考页表来确定虚拟地
址到物理地址存储器地址?#25104;洌?#25152;述页表中的每一条目包括指示该条目是否与预定存储器
地址空间相对应的标志,并且所述处理器核能使对由所述处理器核发起的对预定存储器地
址空间的写操作的指示存储到所述存储单元中。
15.如权利要求3所述、或者如?#24065;?#29992;权利要求3时权利要求4-14?#25105;?#26435;利要求所述的
装置,其中,所述处理器核能响应于所述开始指令中的编码来暂停所述结束指令之后的任
何指令,直到所述存储器中的控制器确认接收到提交从所述回写缓存向所述存储器清理的
数据项的本地副本的命令。
16.如权利要求3所述、或者如?#24065;?#29992;权利要求3时权利要求4-15?#25105;?#26435;利要求所述的
装置,其中,所述处理器核能响应于所述开始指令中的编码来暂停所述结束指令之后的任
何指令,直到所述存储器中的控制器指示从所述回写缓存向所述存储器清理的数据项的本
地副本已被提交给所述存储器。
17.如前述?#25105;?#26435;利要求所述的装置,还能响应于清理条件,使所述回写缓存中存储的
本地副本中的下述至少一个本地副本被从所述回写缓存清理到所述存储器,并且清除所述
存储单元中存储的对所述至少一个写操作的至少一个相应指示,其中,所述至少一个本地
副本是所述处理核的、对其的指示已被存储到所述存储单元中的至少一个写操作的操作对
象。
18.如权利要求17所述的装置,其中,当所述存储单元满时,所述清理条件得到满足。
19.如权利要求17所述的装置,其中,当所述回写缓存中存储的本地副本被驱逐到所述
存储器时,所述清理条件得到满足。
20.如权利要求17所述的装置,其中,当所述回写缓存中存储的本地副本被缓存一致性
机制侦测到并且对其的指示被存储到所述存储单元时,所述清理条件得到满足。
21.如权利要求20所述的装置,其中,所述回写缓存能存储与所述回写缓存中存储的缓
存线相关联的侦测则清理标记,其中对侦测则清理标记的设置指示相应的指示被存储在所
述存储单元中。
22.如权利要求1-21?#25105;?#26435;利要求所述的装置,其中,所述存储单元是内容寻址存储单
元。
23.一种数据处理方法,包括以下步骤:
响应于指令序列执行数据处理操作,其中所述数据处理操作包括从存储器取回数据项
的读操作和向所述存储器写数据项的写操作,其中所述存储器是非易失性存储器;
运行指令序列时在回写缓存中存储从所述存储器取回和向所述存储器写的数据项的
本地副本;
存储对在执行数据处理操作步骤时发起的写操作的指示;以及
通过以下过程来对所述指令序列中的结束指令作出响应:
使作为下述写操作的操作对象的数据项的本地副本被从所述回写缓存清理到所述存
储器,其?#24615;?#23384;储本地副本的步骤中已存储了对所述写操作的指示;以及
将在存储指示的步骤中存储的对所述写操作的指示清除。
24.一种数据处理设备,包括:
用于响应于指令序列执行数据处理操作的装置,其中所述数据处理操作包括从存储器
取回数据项的读操作和向所述存储器写数据项的写操作,其中所述存储器是非易失性存储
器;
用于运行指令序列时存储从所述存储器取回和向所述存储器写的数据项的本地副本
的装置,其中用于存储的装置具有对于所述存储器的回写配置;
用于存储对由用于执行数据处理操作的装置发起的写操作的指示的装置;以及
用于通过以下过程来对所述指令序列中的结束指令作出响应的装置:
使作为下述写操作的操作对象的数据项的本地副本被从所述回写缓存清理到所述存
储器,其中用于存储本地副本的装置已存储了对所述写操作的指示;以及
将在用于存储指示的装置中存储的对所述写操作的指示清除。

说明书

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

技术领域

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

背景技术

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

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

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

发明内容

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

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

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

附图说明

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

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

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

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

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

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

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

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

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

具体实施方式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

然而,当遇到与非易失性存储器有关的写指令并且该写指令被?#24615;趎vba_开始指
令和nvba_结束指令之间时,处理器核30向FIFO控制器48和L1缓存32指示,对响应于该写指
令将被执行的写操作的指示应当被添加到FIFO存储装置50。图3?#24615;?#31034;例配置中示出了
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缓存中的相应的条目?#32531;?#34987;迅速地写回
到非易失性存储器18,并且FIFO 46的内容被清除。

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

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

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

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

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

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

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

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

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

关于本文
本文标题:向非易失性存储器的写操作.pdf
链接地址:http://www.pqiex.tw/p-6091828.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 有水果拉霸的棋牌游戏 念念不忘思赚钱 灯谜 时时彩倍投方案 三肖六码3肖6码网站 免费 广东快乐十分预测结果 官方pk10赛车彩走势规律 浙江快乐12开奖走势图 中顺捕鱼大冒险3d红包 网上玩龙虎怎么看路子 pk10免费滚雪球计划APP