一种旗标寄存器和避免多进程间资源访问冲突的方法技术

技术编号:2860730 阅读:298 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种旗标寄存器,该旗标寄存器的每一位都包括初始化单元、判断比较及数值刷新单元、旗标值存储单元和结果输出单元。本发明专利技术同时还公开了一种避免多进程间资源访问冲突的方法,包括以下步骤:当前要操作公共资源的进程发出设置旗标寄存器中旗标位为预先设定的被占用值的指令,并判断设置是否成功,是就执行下一步,否则进程挂起,下次激活的时候再返回;发出指令的进程操作资源;发出指令的进程设置该旗标位为预先设定的释放值。本发明专利技术通过把旗标寄存器和进程挂起机制相结合的方式可以高效率地避免多进程访问时存在的多资源访问冲突问题。

【技术实现步骤摘要】

本专利技术涉及多进程技术,特别是。
技术介绍
在多进程运行环境下,一个需要重点考虑的问题是如何在多进程运行环境下,避免不同进程间在访问相同资源时的资源冲突,另外一个需要考虑的问题是在存在资源冲突时和资源冲突解除时如何快速地完成进程间状态的切换。很多实时系统,例如网络处理器和电信交换机系统等都普遍存在着这些和多进程间资源访问冲突有关的问题。网络处理器是一种专门用来处理数据包的特殊处理器。这种处理器是专门为优化数据包的处理而设计的,它将端口送过来的包快速处理后以线速率送到下一个节点。如同通用处理器一样,网络处理器一般采用多级流水线结构,保证每个时钟周期完成一条指令。为简化设计及降低功耗,网络处理器一般采用了精简指令集(RISC)方案。另一方面,为提供极高的速度和较高级的编程界面,网络处理器一般提供了多进程运行环境,在数据包的层次上给予多级流水线支持,即同一时刻可以有多个数据流经受处理。网络处理器在多进程运行环境下,需要重点考虑如何避免多进程运行环境下不同进程间在访问相同资源时存在资源冲突的问题,另外一个要考虑的因素是在存在资源冲突时和资源冲突解除时如何快速地完成进程间状态的切换。除了网络处理器中存在这种多进程间资源访问冲突的问题,在很多其它实时系统中也存在同样的问题。比如在一个电信交换机系统中,不同的电话线路需要获取系统中话音存储单元的使用权,而交换芯片的话音存储单元是有限的。电信交换机系统中新接入的线路终端是连续不断和随机的,为了保证不同的线路终端能不重复地占用相同的话音存储单元,交换机系统也需要解决这种资源冲突的问题。为了避免不同进程间出现资源访问冲突的问题,现有技术中通常采用软件实现的方式。例如现有的网络处理器中避免多进程间资源访问冲突的基本思想为当网络处理器不同进程间存在访问相同资源的可能时,首先在不同进程都能访问到的一个通用寄存器中选定一个特殊的位作为旗标位,然后约定好资源占用时或释放时该旗标位具体的值,例如可以约定1表示资源占用,而0表示资源释放,这样当某个进程访问这个资源时,它首先设置这个旗标位为1,表示拥有这个资源的使用权,然后再对资源进行操作,当操作完毕后,再重新设置该旗标位为0,表示释放了对这个资源的使用权。当别的进程需要操作这个资源时,它首先要检查这个旗标位是否为1,如果不为1,那么它就操作这个资源,否则,这个进程就需要进入挂起状态,一直等到旗标位被别的进程释放。如图1所示,现有技术中网络处理器避免多进程间资源访问冲突的流程如下步骤101读取通用寄存器中已选定的旗标位;步骤102判断该通用寄存器中已选定旗标位的值是否与预先约定的被占用值相等,如果是则挂起进程,并等到下次激活的时候返回步骤101,如果不是则执行步骤103;步骤103设置该通用寄存器中已选定旗标位的值为预先约定的被占用值;步骤104进程操作资源;步骤105设置旗标位为预先约定的释放值。这种现有技术的实现方式因所使用的指令较多而存在效率低的缺点。例如在网络处理器设计中,为了保证数据包能够以线速进行转发,提高网络处理器的效率,每个数据包能够获得的指令周期应该越少越好,因此需要重点考虑如何尽量减少微码指令和减少处理每个数据包的硬件周期,而现有技术通过软件方式设定旗标位,所使用的指令较多,从而应用现有技术就大大降低了网络处理器的转发效率。
技术实现思路
有鉴于此,本专利技术的主要目的是提出一种旗标寄存器,通过硬件的方式高效率地避免多进程访问时存在的多资源访问冲突问题。本专利技术的另一目的是提出一种避免多进程间资源访问冲突的方法,采用旗标寄存器和进程挂起机制相结合的方法,高效率地避免多进程访问时存在的多资源访问冲突问题。为实现上述目的,本专利技术的技术方案是这样的一种旗标寄存器,由不少于1个旗标位组成,每一旗标位至少包括初始化单元、判断比较及数值刷新单元、旗标值存储单元和结果输出单元;其中,初始化单元用于对旗标值存储单元初始赋值,判断比较及数值刷新单元用于比较旗标值存储单元中已保存的旗标值和要设置的旗标值,将更新后的旗标值输出给旗标值存储单元并将比较结果输出给结果输出单元,旗标值存储单元用于保存旗标值,结果输出单元用于根据所述比较结果输出进程挂起控制信号。旗标值存储单元进一步连接有监控输出单元,监控输出单元用于读取旗标值存储单元所保存的旗标值。判断比较及数值刷新单元进一步连接有旁路单元,旁路单元进一步与旗标值存储单元连接,旁路单元用于保证判断比较及数值刷新单元所获取的旗标值存储单元的值与正要写入到旗标值存储单元的值相等。旗标值存储单元为D触发器、或随机存储器RAM。判断比较及数值刷新单元为D触发器、或随机存储器RAM。监控输出单元为选择器MUX0。旁路单元包括选择器MUX1和与门AND0,与门AND0的输出端连接选择器MUX1的输入端。结果输出单元包括非门NOT1和与门AND2,非门NOT1的输出端连接与门AND2的输入端。判断比较及数值刷新单元包括D寄存器D1、D寄存器D2、D寄存器D3、非门NOT0、与门AND1、选择器MUX2、选择器MUX3和异或门XOR0,D寄存器D1输出端连接非门NOT0输入端和异或门XOR0第一输入端,非门NOT0输出端连接选择器MUX3第一输入端,选择器MUX3输出端连接旗标值存储单元,D寄存器D2输出端连接异或门XOR0第二输入端,异或门XOR0输出端连接与门AND1第一输入端和非门NOT1输入端,D寄存器D3输出端连接与门AND1第二输入端,与门AND1输出端连接选择器MUX2第一输入端。初始化单元包括选择器MUX2和选择器MUX3,选择器MUX2输出端连接旗标值存储单元,选择器MUX3输出端连接旗标值存储单元。一种避免多进程间资源访问冲突的方法,至少包括以下步骤A1、当前要操作公共资源的进程发出设置旗标寄存器中旗标位的值为预先约定的被占用值的指令,并判断设置是否成功,如果成功则执行步骤A2,否则挂起当前发出指令的进程,等到下次激活时候返回步骤A1;A2、步骤A1所述的发出指令的进程操作公共资源;A3、步骤A1所述的发出指令的进程设置步骤A1所述的该旗标位的值为预先约定的释放值。根据步骤A1所述当前要操作公共资源的进程发出的指令,进一步生成步骤A1所述旗标位的读片选信号和该旗标位所设置的数据。从以上的技术方案可以看出,本专利技术提供了一种旗标寄存器,这种旗标寄存器由不少于1个旗标位组成,其中每一旗标位都实现了在写入旗标值的操作时,首先把要写入的旗标值与该旗标位原来保存的旗标值进行比较,然后把更新的旗标值保存到旗标位,同时根据比较结果输出相应的进程挂起控制信号,从而本专利技术通过增加硬件旗标寄存器的方式实现了对资源访问的控制,然后通过输出的进程挂起控制信号来控制相应的进程是继续执行还是挂起,因此本专利技术利用旗标寄存器和进程挂起机制相结合的方法避免了多进程间访问相同资源存在的冲突。同时,因为在现有技术中需要执行读回通用寄存器中设定旗标位的值、判断该旗标位是否与预先约定的被占用值相等、设置通用寄存器中设定旗标位为预先预定的被占用值这三条指令来实现对资源的访问控制,而本专利技术只需要用一条指令来执行,即执行设置旗标寄存器的旗标位为预先设定的被占用值,其中如果旗标寄存器中旗标位的值为预先约定的释放值,则设置成功,流程正常本文档来自技高网
...

【技术保护点】
一种旗标寄存器,其特征在于,由不少于1个旗标位组成,每一旗标位至少包括初始化单元、判断比较及数值刷新单元、旗标值存储单元和结果输出单元;其中,初始化单元用于对旗标值存储单元初始赋值,判断比较及数值刷新单元用于比较旗标值存储单元中已保存的旗标值和要设置的旗标值,将更新后的旗标值输出给旗标值存储单元并将比较结果输出给结果输出单元,旗标值存储单元用于保存旗标值,结果输出单元用于根据所述比较结果输出进程挂起控制信号。

【技术特征摘要】
1.一种旗标寄存器,其特征在于,由不少于1个旗标位组成,每一旗标位至少包括初始化单元、判断比较及数值刷新单元、旗标值存储单元和结果输出单元;其中,初始化单元用于对旗标值存储单元初始赋值,判断比较及数值刷新单元用于比较旗标值存储单元中已保存的旗标值和要设置的旗标值,将更新后的旗标值输出给旗标值存储单元并将比较结果输出给结果输出单元,旗标值存储单元用于保存旗标值,结果输出单元用于根据所述比较结果输出进程挂起控制信号。2.根据权利要求1所述的旗标寄存器,其特征在于,所述的旗标值存储单元进一步连接有监控输出单元,所述监控输出单元用于读取旗标值存储单元所保存的旗标值。3.根据权利要求1所述的旗标寄存器,其特征在于,所述的判断比较及数值刷新单元进一步连接有旁路单元,旁路单元进一步与旗标值存储单元连接,所述旁路单元用于保证判断比较及数值刷新单元所获取的旗标值存储单元的值与正要写入到旗标值存储单元的值相等。4.根据权利要求1所述的旗标寄存器,其特征在于,所述的旗标值存储单元为D触发器、或随机存储器RAM。5.根据权利要求1所述的旗标寄存器,其特征在于,所述的判断比较及数值刷新单元为D触发器、或随机存储器RAM。6.根据权利要求2所述的旗标寄存器,其特征在于,所述的监控输出单元为选择器MUX0。7.根据权利要求3所述的旗标寄存器,其特征在于,所述的旁路单元包括选择器MUX1和与门AND0,所述与门AND0的输出端连接选择器MUX1的输入端。8.根据权利要求1所述的旗标寄存器,其特征在于,所述的结果输出单元包括非门NOT1和与门AND2,所述非门NOT1的输出端连接与门...

【专利技术属性】
技术研发人员:孙文华李敏秋刘义盛春明安辉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1