[发明专利]多处理器系统以及其中的排他控制方法有效
申请号: | 200580040025.3 | 申请日: | 2005-11-21 |
公开(公告)号: | CN101061462A | 公开(公告)日: | 2007-10-24 |
发明(设计)人: | 上田真 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F12/00;G06F13/36;G06F15/167 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 李峥;于静 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 系统 以及 其中 排他 控制 方法 | ||
技术领域
本发明涉及多处理器系统以及其中的排他控制方法,更具体地,涉及在执行排他控制之前获得锁并在执行排他控制之后释放锁的多处理器系统以及其中的排他控制方法。
背景技术
以往,作为多线程程序设计的执行环境,需要MESI(ModifiedExclusive Shared Invalid,修改、排他、共享、无效)那样的高速缓存一致性协议和支持不可分(原子)传送的总线。但是,安装有它们的CPU(Central Processing Unit,中央处理单元)以及总线将是高成本的。
目前,作为低成本的CPU,也根据Linux支持的必要性而具有TLB(Translation Look-aside Buffer,转换后援缓冲器)。在使用了这种CPU的情况下,只要安装支持原子传送的总线,就能够构筑多处理器系统。在这种情况下,即使没有总线窥探(スヌ一プ)的硬件支持,如果利用与NUMA(Non-Uniform Memory Access:非均匀存储器访问)相同的OS(Operating System:操作系统),则也可以使用TLB的支持来维持高速缓存一致性。
在此,之所以需要支持原子传送的总线,是为了可以进行CPU之间的排他控制。例如为了排他地改写各CPU的TLB,需要对锁变量原子地进行读出修改写入。但是,准备单处理器而设计的、低成本的嵌入式处理器及其总线规则,并不支持原子读出修改写入。
下面,参照图5说明原子读出修改写入的必要性。其中,将锁变量lock分配到了存储器上。
首先,CPU从存储器读出锁变量lock(S1),判断是否lock=1(S2)。只要lock=1,即锁变量成为锁定状态(在S2为是),CPU就反复读出锁变量lock(S1)。另一方面,在lock=0、即锁变量为非锁定状态的情况下(在S2为否),CPU改写为lock=1,由此获得排他控制所需要的锁(S3)。在获得锁之后,CPU执行规定的排他控制(S4)。在完成排他控制之后,CPU改写为lock=0,由此释放锁(S5)。
但是,在从读出lock=0到改写为lock=1的期间,如果其他的CPU读出lock=0,则有可能误认为能够获得锁。为了防止这种情况,必须原子地执行上述的锁变量的读出操作S1和写入操作S3。
此外,用于使CPU执行上述的原子读出修改写入的程序,由于使用在原子传送中所需要的专用命令,所以不用C那样的高级语言,而必须用汇编语言来描述。
美国专利第5175829号说明书(以下记作专利文献1)公开了将原子传送组装到CPU以及局部总线内的装置。这种多处理器系统,为了消减总线带宽,而通过采用共享总线方式并使用MESI协议而使得不能获得锁的CPU不重复无用的读访问。
美国专利第5175829号说明书(以下记作专利文献2)公开了将用于管理锁的交换寄存器内置于CPU内的装置。该装置用存储在存储器中的锁变量时刻对存储在交换寄存器中的锁变量进行交换更新,并对该交换寄存器进行用于获得锁的读访问。该装置也是以高成本并且复杂的原子读出修改写入功能的存在为前提。
美国专利第5666515号说明书(以下记作专利文献3)公开了通过发送重试信号而加锁、减轻了总线带宽的饱和的装置。该装置也是以高成本并且复杂的原子读出修改写入功能的存在为前提。
专利文献1:美国专利第5175829号说明书
专利文献2:美国专利第5535365号说明书
专利文献3:美国专利第5666515号说明书
发明内容
本发明的目的在于提供一种能够用简单的构成实现与具有锁变量的原子读出修改写入功能的高成本的系统同样的功能的多处理器系统以及其中的排他控制方法。
本发明的多处理器系统具备多个处理器和锁寄存器。处理器的各个在执行排他控制之前,为了获得锁而断言读出信号,并且在执行排他控制之后,为了释放锁而断言写入信号。锁寄存器与多个处理器连接。锁寄存器包括保存单元、锁变量输出单元和锁变量输入单元。保存单元保存锁定状态或者非锁定状态的第1锁变量。锁变量输出单元在处理器的1个断言读出信号时,输出此前保存在保存单元中的第1锁变量。锁变量输入单元在处理器的1个断言读出信号时,将锁定状态的第1锁变量设定到保存单元,并且在处理器的1个断言写入信号时,将非锁定状态的第1锁变量设定到保存单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200580040025.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:显示装置及其驱动方法
- 下一篇:等离子显示设备及其驱动方法