[发明专利]处理多处理器系统中事务缓冲器溢出的方法和系统有效
申请号: | 200710196184.3 | 申请日: | 2007-11-29 |
公开(公告)号: | CN101452400A | 公开(公告)日: | 2009-06-10 |
发明(设计)人: | 沈晓卫;王华勇;王鲲 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;张亚非 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 处理器 系统 事务 缓冲器 溢出 方法 | ||
技术领域
本发明涉及计算机领域,具体涉及多处理器系统中的并发控制,更具 体涉及一种用于处理多处理器系统中的事务缓冲器溢出的方法和装置,以 及一种多处理器系统中的事务存储器系统。本发明还涉及一种在多处理器 环境中,由一个处理器修改其他一个或多个处理器的状态的方法和装置。
背景技术
事务(transaction)是一个在计算机领域中被广泛使用的概念。一个 事务通常是指多条指令以看似原子的方式执行,在执行期间没有其他操作 介于其中。例如,如果一个事务访问了某个存储器地址上的数据,则直到 该事务结束,该地址上的数据不应该被该事务以外的操作修改。
事务可以直接在硬件层面实现,比如修改处理器体系结构。从体系结 构级别上支持事务的硬件组件称为事务存储器(Transactional Memory, 简称TM)系统。采用事务存储器系统,在编写并行程序时程序员无需使 用锁,因此可以提高软件生产效率。
下面的示例从程序员的角度说明了事务的含义。图1示出了一动态平 衡二叉树。对该树的操作有读取、写入、删除和插入。如果有多个线程并 行地访问该树,则程序员通常使用一全局锁来保护整个树。这种粗粒度的 方法简单,但它迫使对树的访问串行化。因此,该方法不能有好的性能。 细粒度的锁可解决这个问题。例如,给予该树中的每个节点一个锁。然而, 这样的话,程序将很难编写。当插入或删除一节点时,相邻节点必须旋转 以保持树的平衡。为正确起见,必须获得多个锁。这会带来新的问题,例 如死锁。如果使用细粒度锁来编写程序,则程序员必须掌握高超的并行编 程技能。因此,生产率很低。
使用事务存储器则可以解决这个问题。程序员仅需要使用新定义的指 令transaction_start和transaction_end,在代码中标出事务的边界。在事 务内部,用和往常相同的方式编写代码,但是完全不需要考虑锁。硬件将 保证该事务以看似原子的方式执行,不会有其他操作介于其间。以下示例 代码示出了使用事务存储器对该动态平衡二叉树进行的操作,例如插入或 删除节点。
transaction_start{
p=root;
while(TRUE){
if(x<p->key){
p=p->left;
}else if(x>p->key){
p=p->right;
}else{break;}
}
do read/write/deletion/insertion here;
}transaction_end;
图2示出了目前一般的事务存储器系统。如图所示,在体系结构的级 别上,事务访问的所有数据(推测性数据)将被临时地存储在一事务缓冲 器中,而不是写入到存储器中。如果两个事务访问相同的地址,并且其中 至少一个修改该地址上的数据,则其中一个事务必须回滚(roll back)并 重新执行,而另一个事务继续。这种情况被称为冲突(conflict)。如果没 有冲突,事务结束时临时存储的数据将被写入到存储器。该操作称为提交 (commit)。
在上述示例中,如果该树很大,则两个线程访问同一个节点的概率是 很低的。这意味着不同事务很可能是并行执行的。因此,虽然利用事务存 储器系统编程时采用了粗粒度的编程风格,但是程序运行时的性能却可以 与细粒度的锁相比。
如上所述,为实现事务存储系统,需要添加用于临时存储的片上缓冲 器。然而,硬件缓冲器只能具有有限的大小。例如,Power4/Power5的每 个处理器核具有32KB一级数据高速缓存。临时缓冲器位于关键路径上, 因此,它几乎不可能大于一级高速缓存(事实上,由于面积限制,它应当 远小于一级高速缓存)。另一方面,程序员又很难精确估计一事务将使用 多少存储空间。因此,一种可能的情况是事务所占用的存储空间大于硬件 缓冲器的大小。这种情况称为溢出(overflow)。
为保证程序的正确性,溢出必须得到处理。由于溢出是一种罕见的事 件,溢出处理方法的速度对于整体性能来讲并不是很关键,而实现该方法 所要求的硬件复杂性是需要关注的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710196184.3/2.html,转载请声明来源钻瓜专利网。