处理器及其中处理锁事务的方法技术

技术编号:2822930 阅读:187 留言:0更新日期:2012-04-11 18:40
公开了一种处理器,包括:至少一个处理核心,所述至少一个处理核心中的每个处理核心被配置成响应特定指令的执行向地址仲裁器提交与所述特定指令相应的锁事务请求,所述锁事务请求包括在地址总线上声明的锁变量地址;开关装置,分别与地址仲裁器和锁控制器连接,用于识别所述锁事务请求并将所述锁事务请求通知锁控制器;锁控制器,用于响应所述锁事务请求而进行锁事务处理,并将处理结果通知给发出所述请求的处理核心。

【技术实现步骤摘要】

本专利技术一般涉及多核心处理器中共享存储器的锁机制,尤其涉及 多核心处理器中基于地址仲裁器的共享存储器的锁机制。
技术介绍
随着半导体技术的不断进步,多核心处理器(例如单元处理器Cell Processor)已经迅速得到普及。多核心处理器中的核心上运行的多线 程程序必须控制对共享存储器区的并发访问。常见的控制方式是通过 锁/信号灯来同步线程。因此锁/信号灯的效率是多线程平台的关键因 素。锁的实现不仅会影响同步搮作的开销,而且会影响等待锁释放的 线程的阻塞时间。对于采用多核心多线程作为充分利用小片面积的重 要技术的当前处理器而言,这是非常关键的。加锁/解锁操作通常被实现为硬件支持的共享存储器和原子同步 原语(例如测试-设置(T&S),比较-交换(C&S)和加载-链接/存储 -条件(LL/SC))的组合。这些硬件支持共享存储器系统提供当原子 原语正在进行时阻塞全局存储器访问/通信的机制,例如x86处理器中的总线锁。这对于传统共享存储器多处理器平台是适用的,因为存储 器接口 /总线是处理器执行全局通信的唯一途径。然而对于当前和将来 的多核心处理器,这种机制在两个方面降低了系统性能1. 所有加锁/解锁操作汇集到存储器接口以消除潜在的争用。芯 片外存储器接口本来就是系统的瓶颈,这不仅因为其带宽,而且因为 其时延(大约为芯片上高速緩存时延的数百或数千倍)。即使在共享 的芯片上L2/L3高速緩存中能够消除访问冲突,操作开销仍然高出一 个数量级。2. 越来越多的网络拓朴被用作多核心芯片中的全局互连,以支持并发数据事务/通信。例如在单元处理器中存在环网络。图l示出了单元处理器中的这种环网络的示例。如图1所示,PPE、 SPE0-SPE7、 MIC、 IOIF1和BIF/IOIF0是单元处理器中的处理核心。 这些处理核心访问环网络(如图1中串联成环的带箭头实线所示)。 各个处理核心通过总线接口 (如图1中细长条所示)与地址仲裁器 (DataArb)相连。当处理核心需要访问网络以进行数据事务时,它 首先请求地址仲裁器对其数据事务所涉及的地址进行仲裁,并在获得 许可的情况下访问网络以进行数据事务。有关图l所示单元处理器更 进一步的内容请参见 http:〃www-128.ibm.com/developerworks/power/library/pa-fpfeib/。图l所示的网络能够同时支持多达6路并发数据传送。如果一个 处理核心的原子操作必须阻塞全局总线/网络,这会导致严重的性能下 降。因此,需要提供一种新的用于多核心芯片的锁机制,以提供更好 的锁性能。
技术实现思路
本专利技术的目的在于提供一种,能 够提供更好的锁性能。本专利技术提供了一种处理器,包括至少一个处理核心,所述至少一个处理 核心中的每个处理核心被配置成响应特定指令的执行向地址仲裁器提交与所 述特定指令相应的锁事务请求,所述锁事务请求包括在地址总线上声明的锁 变量地址;开关装置,分别与地址仲裁器和锁控制器连接,用于识别所述锁 事务请求并将所述锁事务请求通知锁控制器;锁控制器,用于响应所述锁事 务请求而进行锁事务处理,并将处理结果通知给发出所述请求的处理核心。本专利技术还提供了一种处理器中处理锁亊务的方法,包括当处理核心# 行特定指令时,向地址仲裁器提交与所述特定指令相应的锁亊务请求,其中 在地址总线上声明锁变量地址;识别所述锁事务请求;进行锁亊务处理,并 将处理结果通知所述处理核心。根据本专利技术,能够将地址总线仲裁(包含高速緩存一致性检查, 网络路由等等)与数据事务分离。在地址总线事务中实现原子锁操作。根据本专利技术,能够在地址仲裁器中提供针对最近访问的锁的快速 查找表,系统存储器层次结构是整个查找表的存储区。本专利技术具有若干优点,例如能够获得多核心平台中加锁/解锁操作 的高性能实现,锁事务与系统总线的分离使得能够更加高效地利用多 核心芯片的芯片上网络,对当前多核心实现的修改较少,不需要修改 软件。而且,这个机制能够与其它分布式锁方法配合以提供大规模多 线程系统的可伸缩解决方案。附图说明被说明书引用并且构成说明书组成部分的附解了本专利技术的实 施例,并且和前面的概括说明、下面针对实施例的详细描述一起被用来说明本专利技术的原理,其中图l示出了单元处理器中的一种示例性网络拓朴。图2示出了基于本专利技术一个实施例、具有快速锁机制的多核心处理器的示例性结构。图3示出了图2所示的处理单元与地址仲裁器和锁控制器之间的示例性信号连接。图4示出了图2所示的地址仲裁器和锁控制器的示例性结构。 图5示出了图2所示的地址仲裁器和锁控制器中的锁查找表的示例性结构。图6是说明测试&设置0 (锁获得)的操作过程的流程图。 具体实施例方式在下面的描述中,将参考图l示出的单元处理器的结构来描述本 专利技术的实施例。然而本领域技术人员明白,图l所示单元处理器的细 节只是为了说明本专利技术而提供的,不应被解释为对本专利技术的限制。另外,由于信号灯的核心机制与锁相类似,只是在应用方面有差异,如果能够实现锁,也自然也能够实现信号灯,因而下面仅针对锁 机制对本专利技术进行说明。图2示出了基于本专利技术一个实施例、具有快速锁机制的多核心处 理器10的结构。如图2所示,处理器10包括地址仲裁器和锁控制器 (AALC)101,多个处理单元PU102、 103、 104,数据事务网络105 和共享高速緩存106。数据事务网络的拓朴可基于图l所示的环网络, 例如PU 102、 103、 104可对应于图1中的SPE,地址仲裁器和锁控 制器IOI可对应于图1中的地址仲裁器Data Arb。PU102、 103、 104是运行应用程序线程的处理核心。单个PU可 运行单个线程,或同时运行多个线程。如同图l中的环网络那样,数 据事务网络105是连接PU和共享高速緩存的互连网络,其在PU和 高速緩存之间传递数据事务消息。如同图1中的地址仲裁器DataArb 那样,地址仲裁器和锁控制器101从PU接收数据请求,并且安排事 务的调度和路由。如后面将会描述的,地址仲裁器和锁控制器101也 从PU得到锁请求,检查/修改该锁请求所对应的、其负责维护的锁变 量的状态,并且向请求方PU返回锁请求的处理结果。优选地,地址 仲裁器和锁控制器IOI可以在其中只保留部分的锁变量,而整个锁变 量集合被映射到系统存储器,并且当需要时可以通过芯片上高速緩存 106载入到地址仲裁器和锁控制器101中。这样可更灵活地适应锁变 量集合的规模,即提高锁机制的可伸缩性-图4示出了图2所示的地址仲裁器和锁控制器101的示例性结构。 图4所示,地址仲裁器和锁控制器101包括地址仲裁器201,快速锁 查找表202,锁控制器203和总线接口 204。地址仲裁器201类似于图 1所示的地址仲裁器Data Arb。在数据事务方面,总线接口 204类似 于图1中的总线接口。图3示出了图2所示的处理单元与地址仲裁器和锁控制器101的 总线接口 204之间的信号连接。如图3所示,信号线"数据长度","请 求","同意/拒绝","其它"和"保持"是用于数据传送请求的信号,这 与图l所示总线接口类似。根据本专利技术的实施例,总线接口 204还具有用于锁操作的信号线, 即"锁"信号,"获得/释放"信号和"锁本文档来自技高网
...

【技术保护点】
一种处理器,包括:至少一个处理核心,所述至少一个处理核心中的每个处理核心被配置成响应特定指令的执行向地址仲裁器提交与所述特定指令相应的锁事务请求,所述锁事务请求包括在地址总线上声明的锁变量地址;开关装置,分别与地址仲裁器和锁控制器连接,用于识别所述锁事务请求并将所述锁事务请求通知锁控制器;锁控制器,用于响应所述锁事务请求而进行锁事务处理,并将处理结果通知给发出所述请求的处理核心。

【技术特征摘要】

【专利技术属性】
技术研发人员:戈弋沈文博邵鹏别晓媛梁志勇
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[]

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

1