当前位置: 首页 > 专利查询>英特尔公司专利>正文

阵列比较和交换操作制造技术

技术编号:2915797 阅读:189 留言:0更新日期:2012-04-11 18:40
尝试为软件事务存储器(STM)系统的一组存储单元中的每个存储单元获得通过所述STM的实现而提供的写入锁定;如果为所述一组存储单元中的每个存储单元获得了写入锁定,则将所述一组存储单元中的每个存储单元中的值与对应的预期值进行比较;以及如果对于所述一组存储单元中的每个存储单元,所述比较产生相同的预定结果,则将对应的新值存储在每个存储单元中。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
软件事务存储器(STM)系统是本领域中众所周知的系统。一般来说,这些系统提供对于并行编程和其它应用有用的原语以便允许程序指定一组动作作为事务,因为事务内的动作是自动执行的。通常,原语包括开始事务、正常终止事务、以及异常中止事务并回滚(rollback)所中止的事务的所有效果的命令或调用。已存在多种已知的STM系统的实现。STM系统在软件中实现,因此可以与基于硬件的事务存储器(HTM)系统有所区分。用于并行程序的有用原语有原子多字比较和交换(MCAS)。该原语自动执行。它将存储器的一组存储单元中的值与所提供的一组对应值进行比较。如果所提供的每个值与存储器中的对应值匹配,则MCAS原语将所提供的一组新值存储到这组存储单元中,并返回指示成功的完成代码;否则,不对存储器做任何改变,并且MCAS返回指示失败的完成代码。诸如Fraser的Practical Lock Freedom(见KeirFraser的博士论文Practical Lock Freedom)的现有的MCAS实现利用指针值以及对更新的日志记录或缓冲(在MCAS操作期间)来确保原子性。该缓冲或日志记录会使这些MCAS增加开销。附图说明图1描绘一个实施例中的基于处理器的系统。图2描绘一个实施例中的处理流程。具体实施方式参照图1,如图所示的基于处理器的系统可以包括耦合到总线110的一个或多个处理器105。或者,该系统可以具有一个为多核处理器-->的处理器,或在其它情况下,可以具有多个多核处理器。在一些实施例中,处理器可以超线程化,或者能够以多核处理器的方式执行(尽管只有单个核)。在一个简单的实例中,总线110可以耦合到系统存储器115、诸如磁盘驱动器或其它存储设备的存储设备120、外围设备145。存储设备120可以存储各种软件或数据。该系统可以经由一个或多个总线系统连接到各种外围设备145。众所周知,这些外围设备可以包括显示器和打印系统等。图1中的系统只是一个实例,本专利技术不限于任何特定的体系结构。具有其它体系结构的系统中的特定组件可以包括以下变化:在一些情况下,增加事务存储器作为系统的一个或多个处理器的组件;而在其它情况下,增加的事务存储器可以是总线上连接到处理器的独立组件。在其它实施例中,系统可以具有用于管理无锁定事务的额外指令。在其它实施例中,指令的实际形式或格式可以有所不同。可以存在额外的存储器或存储组件。还可以有大量的其它变化。在一个实施例中,可以利用为支持通用软件事务存储器(STM)实现而提供的功能性来提供MCAS操作,这种MCAS操作作为系统(例如,如图1中描绘的系统)的软件的一部分。具体来说,MCAS操作可以利用由STM保持的读取器-写入器锁定来实现事务所需的基本的并行性控制。下面将从高层次描述在该实施例中使用的STM系统的一个实例的一些特征。该STM实现保持读取器-写入器锁定阵列(an array ofreader-writer lock)。读取器-写入器锁定是这样一种锁定:它允许多个读取器获得对该锁定的访问权,然后读取存储单元;但只允许单个写入器获得对该锁定的访问权,然后写入到该存储单元。STM所用的每个存储单元(memory location)映射到唯一的读取器-写入器锁定。STM保持的唯一读取器-写入器锁定的数量取决于映射函数。在一个实例中,实现可以利用屏蔽一个地址的较低位(如6个位)的散列函数作为映射函数来获得对应于该地址处的存储单元的高速缓存行地址。然-->后,可以利用该高速缓存行地址作为对读取器-写入器锁定阵列的索引。因此,例如,如果处理器正在执行的程序试图利用STM的服务来从地址A处的存储单元进行事务读取,则STM系统首先计算该存储单元的地址的散列。然后,STM系统计算对应于该散列的读取器-写入器锁定L。接着,系统试图获得L上的读取锁定。如果STM系统成功,则STM系统返回位置A处的值并将STM系统已经获得L上的读取锁定的指示存储到本地事务读集合中。类似地,如果程序试图利用STM的服务来进行到地址A处的存储单元的事务写入,则STM如同之前一样计算读取器-写入器锁定L,然后尝试获得L上的独占写入锁定。如果STM系统成功,则STM系统更新存储单元A并在日志中保留A的旧值的副本,以防必须回滚该事务。此外,STM系统也将STM系统已经获得L上的写入锁定的指示存储到本地事务写集合中。如果在该实现中通过STM系统的事务实现未能获得读取器或写入器锁定,则STM系统在放弃一段时间之后重新尝试,这段时间可以是随机确定的时间周期。允许重新尝试固定次数,在这之后,STM系统中止事务并解除所有锁定。在一些实施例中,可以使用计数器来跟踪重新尝试的次数。也可以基于STM系统为该事务保持的日志来将在该事务开始之后经过修改的任何存储单元返回到它们的原始值。这种中止机制用于防止死锁。如果事务成功地获得所有必需的锁定并完成处理,则STM系统解除所有锁定,并丢弃所有记入日志的值。这标志着在该STM系统中成功提交了事务。如前所述,MCAS原语为程序提供了这样一种原子方法,该方法用于测试存储器中的一组值是否与作为参数提供给MCAS函数的一组预定值匹配,并且如果比较得到肯定的结果,即,所述一组预定值与所述存储器中的一组值相同,则用作为参数传入的一组替换值换出所述存储器中的一组值。在一个实施例中,MCAS原语可以通过一种-->同样提供STM的系统利用用于实现该STM系统的基本机制来实现。在下文中,在一个实施例中,假定具有读取器-写入器锁定的STM系统(例如,上文描述的STM系统)支持(underlie)MCAS实现。该实施例的一个特征在于,MCAS实现利用与STM机制所用的读取器-写入器锁定相同的读取器-写入器。该实施例中的实现具有几个特征。首先,该实施例包括MCAS的一般化实现,因为该实施例涉及的实现可以扩展到任意大小的一组单元。其次,该实施例的MCAS实现不存在与现有MCAS实现关联的、由于在执行的中间阶段进行日志记录或缓冲而引起的过度开销。最后,该MCAS实现与基本的STM不干扰地共存,这是因为利用了为STM提供并行控制和同步的相同的锁定机制来实现MCAS,因此,STM事务与MCAS操作之间不太可能出现干扰。图2中的流程图从高层次描绘该实施例中的利用STM机制的MCAS实现。该图描绘了一种MCAS原语的实现,该MCA本文档来自技高网...

【技术保护点】
一种方法,包括: 尝试为软件事务存储器(STM)系统的一组存储单元中的每个存储单元获得通过所述STM的实现而提供的写入锁定; 如果为所述一组存储单元中的每个存储单元获得了写入锁定,则将所述一组存储单元中的每个存储单元中的值与对应的预期值进行比较;以及 如果对于所述一组存储单元中的每个存储单元,所述比较产生相同的预定结果,则将对应的新值存储在每个存储单元中。

【技术特征摘要】
【国外来华专利技术】US 2006-3-31 11/395,4101.一种方法,包括:
尝试为软件事务存储器(STM)系统的一组存储单元中的每个存
储单元获得通过所述STM的实现而提供的写入锁定;
如果为所述一组存储单元中的每个存储单元获得了写入锁定,则
将所述一组存储单元中的每个存储单元中的值与对应的预期值进行
比较;以及
如果对于所述一组存储单元中的每个存储单元,所述比较产生相
同的预定结果,则将对应的新值存储在每个存储单元中。
2.如权利要求1所述的方法,其中:
所述比较还包括检查所述一组存储单元中的每个存储单元中的
值是否等于所述对应的预期值;以及
所述比较的预定结果为真。
3.如权利要求1所述的方法,其中尝试为所述一组存储单元中的
每个存储单元获得写入锁定还包括:
如果没有为所述一组存储单元中的每个存储单元获得写入锁定,
则递增失败尝试次数的计数器;
如果在等待一段时间之后所述计数器不大于预定值,则重复为所
述一组存储单元中的每个存储单元获得写入锁定所做的所述尝试;以

如果所述计数器大于所述预定值,则中止为获得所述写入锁定所
做的所述尝试。
4.如权利要求1所述的方法,还包括:
如果对于所述一组存储单元中的每个存储单元,所述比较未能获
得相同的预定结果,则解除所获得的写入锁定。
5.如权利要求1所述的方法,其中尝试为所述一组存储单元中的
每个存储单元获得写入锁定还包括:至少部分地基于相应存储单元的
地址来计算对所述一组存储单元中的每个存储单元的唯一读取器-写
入器锁定的引用。
6.如权利要求5所述的方法,其中计算所述引用还包括:至少部
分地基于相应存储单元的地址来计算散列值;至少部分地利用所述散
列值来获得对应于所述存储单元的高速缓存行地址;以及至少部分地
利用所述高速缓存行地址来计算对读取器-写入器锁定阵列的索引。
7.如权利要求1所述的方法,其中将对应的新值存储在每个存储
单元中还包括:存储所述新值而不在日志和/或缓冲器中保存和/或记
录存储在所述存储单元中的先前值。
8.如权利要求7所述的方法,其中尝试为所述一组存储单元中的
每个存储单元获得所述STM系统的写入锁定还包括:
至少部分地基于所述一组存储单元中的每个存储单元的地址来
计算散列值;
至少部分地利用所述散列值来获得对应于所述一组存储单元中
的每个存储单元的高速缓存行地址;以及
至少部分地利用所述高速缓存行地址来计算对所述STM的读取
器-写入器锁定阵列的索引。
9.一种其上存储有数据的有形机器可读介质,所述数据在被机器
访问时使所述机器执行一种方法,所述方法包括:
尝试为软件事务存储器(STM)系统的一组存储单元中的每个存
储单元获得通过所述STM的实现而提供的写入锁定;
如果为所述一组存储单元中的每个存储单元获得了写入锁定,则
将所述一组存储单元中的每个存储单元中的值与对应的预期值进行
比较;以及
如果对于所述一组存储单元中的每个存储单元,所述比较产生相
同的预定结果,则将对应的新值存储在每个存储单元中。
10.如权利要求9所述的机器可读介质,其中:
所述比较还包括检查所述一组存储单元中的每个存储单元中的
值是否等于所述对应的预期值;以及
所述比较的预定结果为真。
1...

【专利技术属性】
技术研发人员:B萨哈AR阿德尔塔巴塔拜
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利