利用无数据事务获得全局促进工具的方法、设备和系统技术方案

技术编号:2872020 阅读:196 留言:0更新日期:2012-04-11 18:40
数据处理系统内的数据处理方法,所述数据处理系统具有全局促进工具和通过互连耦接的若干处理器,所述方法包括:    响应所述若干处理器内第一处理器执行的获得指令,在至少排除所述若干处理器内的第二处理器的同时,在互连上传送唯地址操作,从而获得全局促进工具内的促进位字段;和    响应对所述唯地址操作的组合响应的接收,所述第一处理器通过参考所述组合响应,确定所述促进位字段的获得是否成功,所述组合响应代表所述若干处理器中的其它处理器对所述唯地址操作的集体响应。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据处理,更具体地说,涉及在数据处理系统内分配和访问资源。在至少一个实施例中,本专利技术还特别涉及在数据处理系统中,有效分配和访问促进工具(promotion facility),例如锁(lock)的方法和系统。
技术介绍
在共享存储器多处理器(MP)数据处理系统中,系统中的多个处理器中的每一个都可访问并修改保存在共享存储器中的数据。为了在多个存储器之间使对存储器的特定区组(granule)(例如,高速缓存界线(cache line))的访问同步,编程模型通常要求处理器在修改区组之前,获得与该区组相关的锁,并在所述修改之后释放所述锁。在多处理器计算机系统中,多个处理器可独立尝试获得相同的锁。在争取锁的某一处理器成功获得所述锁的情况下,通过系统总线从系统存储器或者另一处理器的高速缓冲存储器体系传送包含所述锁的高速缓存界线,并载入该处理器的高速缓冲存储器体系(hierarchy)。从而,常规数据处理系统中锁的获得和释放可表征为各个处理器的数据高速缓冲存储器之间专有高速缓存界线的移动。通常利用称为“装入预约”(load-reserve)和“有条件保存”(store-conditional)指令的特殊存储器存取指令简化锁的获得和释放。在支持装入预约和有条件保存指令的共享存储器MP数据处理系统中,系统内的每个处理器配有预约寄存器(reservationregister)。当处理器对某一存储器区组执行装入预约时,处理器把该存储器区组的一些或全部内容载入该处理器的内部寄存器之一中,并把存储器区组的地址载入该处理器的预约寄存器中。从而认为请求方处理器预约了该存储器区组。该处理器随后可利用有条件保存指令,对预约的存储器区组进行原子更新(atomic update)。当处理器对其预约的存储器区组进行有条件存储(store-conditional)时,处理器把指定寄存器的内容保存到该存储器区组中,随后清除预约。如果处理器不具有对存储器区组的预约,那么有条件保存指令失败,不进行存储器更新。一般来说,如果远程处理器请求独占访问存储器区组,以便修改该存储器区组(使共享总线上的所有处理器能够看到该请求),或者预约处理器执行有条件保存指令,那么处理器的预约被清除。如果每个处理器只许可一个预约,那么如果处理器对另一存储器区组执行装入预约,该处理器的当前预约也将被清除。利用装入预约(lwarx)和有条件保存(stwcx)指令获得和释放锁的典型指令序列如下A load X !读锁(lock)的值cmpi!比较,以确定锁是否可用bc A!如果锁不可用,返回B lwarx X !尝试获得锁的预约cmpi!确定是否获得锁的预约bc A!如果未获得预约,返回C stwcx X !试图把锁设置成“已锁”状态bc A!如果有条件保存失败,那么返回…!处理由锁使对它的访问同步的共享数据store X !通过重置为“未锁”状态,释放锁如上所示,典型的指令序列包括至少两个独立的分支“循环”一个以通过成功执行装入预约指令,处理器获得有效的锁预约为条件(用标为“B”),另一个以在处理器具有有效预约的同时,通过执行有条件保存指令,处理器成功地把锁更新为“已锁”状态为条件(标为“C”)。锁的获得序列可以可选地包括第三分支循环(标为“A”识别),其中在试图预约锁之前,处理器确定锁是否可用。不仅因为其长度,而且因为预约的有条件性,这种常规的锁的获得指令导致较高的开销。即,如果第二处理器先获得该锁的所有权,那么第一处理器在成功获得该锁(通过执行有条件保存指令)之前,会失去对该锁的预约。从而,如果对锁有激烈的竞争,那么在通过执行有条件保存指令成功获得锁之前,处理器可能预约该锁并多次失去预约。至少一个处理器制造商已试图通过实现“强制”解决方案解决该问题,在“强制”解决方案中,准许执行装入预约指令的处理器独占访问互连。即,当该处理器持有该预约时,只允许执行装入预约指令的处理器控制互连上的操作,所有其它处理器被封锁,不仅不能访问特定的数据区组,而且不能启动互连上的任何操作。从而,尽管持有预约,被封锁在互连之外的处理器会因缺乏数据而停止。显然,这种解决方案不能很好地缩放(scale),尤其是对于运行对锁有激烈的竞争的代码的系统来说,更是如此。
技术实现思路
本专利技术认识到如上所述的常规的获得和释放锁的方法虽然在使多个处理器对共享数据的访问同步方面有效,但是存在若干附随缺陷。首先,采用装入预约和有条件保存指令的常规的锁的获得和释放序列需要在每个处理器内包括专用预约寄存器和预约管理电路,不合需要地增大了处理器大小和复杂性。其次,如上所述,由于预约的有条件性,因此典型的锁的获得和释放序列固有地存在效率低的缺陷。如果对锁有激烈的竞争,那么在允许任何处理器获得一个锁,把该锁更新为“已锁状态”和处理由锁保护的数据之前,多个处理器可能多次获得和失去对该锁的预约。从而,整体系统性能下降。第三,上述的锁的获得和释放方法不能很好地缩放。例如,在常规的锁的获得指令序列中,获得锁定而引起的开销随着数据处理系统的规模而增大。从而,虽然在具有许多处理器的大规模数据处理系统中,最好采用细粒度锁(fine grain lock)(即大量的分别保护相当小的数据区组的锁)以增强并行性,但是,随着系统规模的增大,不断升高的锁的获得开销会迫使采用更粗颗粒的锁,以便降低锁的获得开销所占用的处理时间的百分比。这种设计上的折衷(虽然认为是必要的)显著减少了可在多个处理器间有效分布的有用功的量。第四,由于锁变量通常被看作是可高速缓存的操作数数据,锁的获得序列内的每个装入型和保存型操作触发数据高速缓存目录窥探(directory snoop),系统总线上的相关性消息通信和由数据处理系统实现的高速缓存相关性协议指示的其它常规操作。本专利技术认识到耗费有限的系统资源比如数据高速缓存窥探队列、总线带宽等的这些以数据为中心的高速缓存相关性操作是不必要的,因为在对受锁保护的数据区组进行处理的过程中,锁本身的数据值并不需要或者无用。鉴于在数据处理系统中获得并释放锁的常规技术,更一般地说,组件间协调和访问存储映像资源的技术的上述及其它缺陷,本专利技术尤其引入了分配和访问存储映像资源比如全局促进工具的新方法和设备,所述全局促进工具最好被用作锁定工具(但是并不局限于此)。根据本专利技术,一个多处理器处理系统包括与互连以及与存储器耦接的若干处理器,所述存储器包括至少包含一个促进位字段的促进工具。所述若干处理器中的第一处理器执行装入型指令,以便获得全局促进工具内的排除所述若干处理器内的至少一个第二处理器的一个促进位字段。响应装入型指令的执行,第一处理器的寄存器接收寄存器位字段,所述寄存器位字段指出是否通过执行装入型指令获得了促进位字段。当第一处理器持有排除第二处理器的促进位时,允许第二处理器在互连上启动一个请求。在下述详细说明中,本专利技术的所有目的、特征和优点将变得显而易见。附图说明附加权利要求中陈述了本专利技术特有的新特征。但是,结合附图,参考例证实施例的下述详细说明,能够更好地理解专利技术本身,以及专利技术的优选应用模式、其它目的和优点,其中图1描述了根据本专利技术一个实施例的多处理器数据处理系统的例证实施例;图2A和2B是根据本专利技术的处理器核心的两本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:瑞威·K·艾瑞米利德里克·E·威廉斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

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