[发明专利]具有硬件信号量模块的多处理器系统及其实现方法有效
申请号: | 200810102795.1 | 申请日: | 2008-03-26 |
公开(公告)号: | CN101546275A | 公开(公告)日: | 2009-09-30 |
发明(设计)人: | 刘建;陈杰;岳培培 | 申请(专利权)人: | 中国科学院微电子研究所 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 中科专利商标代理有限责任公司 | 代理人: | 周国城 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 硬件 信号量 模块 处理器 系统 及其 实现 方法 | ||
技术领域
本发明涉及多处理器系统领域,具体涉及一种获取多处理器硬件 信号量的方法。
背景技术
多处理器系统,包括片上多处理器系统,不同的处理器可以并发 访问系统的共享资源。硬件和软件一种关键的相互作用表现在对同步 操作的支持上。同步操作包含互斥、点对点事件和全局事件。不同的 多处理器系统都提供了相应的硬件原语来支持这些同步操作。硬件支 持有速度和效率的优越性,而软件实现则在灵活性和对不同情况的适 应性方面有优越性。
当某个结果取决于如何调度两个或多个进程时,相关代码就是不 正确的,我们说存在一种竞争条件。例如,当多个进程试图获取同一 个共享资源,并对其进行相应的操作时,就可能会引起竞争。由竞争 条件而引入临界区的概念。通常意义上,临界区是一段代码,在其他 的处理器能够进入临界区前,进入临界区的处理器必须全部执行完相 应的程序段代码。
在操作系统中,比如linux操作系统中,就利用了自旋锁和信号量 两种类型的处理器锁操作来确保在一个时刻只有一个进程进入临界 区。
自旋锁(spin lock)是用来在多处理器环境中工作的一种特殊的锁。 如果处理器控制路径发现自旋锁“开着”,就获取锁并继续自己的执行。 相反,如果处理器控制路径发现锁由运行在另一个CPU上的处理器控 制路径“锁着”,就在周围“旋转”,反复执行一条紧凑的循环指令, 直到锁被释放。自旋锁的循环指令表示“忙等”。即使等待的处理器控 制路径没有其它指令可以运行,它也在CPU上保持运行。
广泛使用的另一种机制是信号量(semaphore),它在单处理器系统 和多处理器系统上都有效。信号量仅仅是一个与具体资源相关的计数 器。所有处理器在试图访问这个资源之前,都要检查这个信号量。可 以把信号量看成一个对象,其组成如下:
一个整形变量;
一个等待进程的链接;
两个原子方法:down()和up()。
down()方法对信号量的值减1,如果这个新值小于0,该方法就把 正在运行的进程加入到这个信号量链表,然后阻塞该进程。up()方法对 信号量的值加1,如果这个新值大于或等于0,则激活这个信号量链表 中的一个或多个进程。
包含临界区的软件代码中,同步方法所需的自旋锁和信号量都依 赖原子操作。假定运行过程中的两个CPU试图通过执行非原子操作来 同时“读-修改-写”同一存储器单元。首先,两个CPU都试图读同一 单元,但是存储器仲裁器只允许其中的一个访问而让另一个延迟。然 后当第一个读操作完成后,延迟的CPU从相同的存储器单元读到同一 个旧值。然后两个CPU都试图向该存储器单元写入新值,总线存储器 访问再一次被存储器仲裁器串行化,最终,两个写操作都成功。但是 全局的结果是不对的,因为两个CPU写入同一新值。
避免由于“读-修改-写”引起的竞争的最容易的方法,就是确保这 样的操作在芯片级是原子的。任何一个这样的操作都必须以单个指令 执行,中间不能中断,且避免其他的CPU访问同一存储器单元。这些 很小的原子操作可以建立在其他更灵活机制的基础上以创建临界区。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种获取多处理器硬件信 号量的方法,以解决多个处理器竞争共享存储资源的问题。
(二)技术方案
为达到上述目的,本发明提供的技术方案是这样的:
一种获取多处理器硬件信号量的方法,该方法包括:
处理器对硬件信号量模块进行读操作,发送包含有不同的特定地 址的读请求到硬件信号量模块来请求硬件信号量,该不同的特定地址 代表不同的命令;
硬件信号量模块根据接收的特定地址确定要进行处理的硬件信号 量单元,该硬件信号量单元根据该特定地址解析需要进行的动作,修 改内部状态,确定返回给处理器的值,并将该值返回给处理器;以及
处理器根据接收到的值进行后续的处理;
其中,硬件信号量模块由多个对应着一段内存地址空间的具有相 同功能的硬件信号量单元构成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院微电子研究所,未经中国科学院微电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810102795.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种餐厨物料的活塞式加料装置
- 下一篇:一种自动上料系统