一种实现原子操作的系统及方法与流程

文档序号:14774092发布日期:2018-06-23 02:32阅读:346来源:国知局
一种实现原子操作的系统及方法与流程

本发明涉及一种集成电路设计技术领域,尤其是涉及一种集成电路系统中多个主设备共享从设备时实现原子操作的系统及方法。



背景技术:

原子操作(Atomic Operation)是指不会被线程调度机制打断的操作。在集成电路系统中一般存在多个主设备和多个从设备,并通过总线进行相互通信。当多个主设备发起对从设备的控制命令时,可能出现多个主设备控制同一个从设备的情形。主设备对从设备的操作命令是由多次具体的寄存器访问读写命令来完成的,如简单的寄存器修改动作,主设备需要首先读取从设备寄存器的当前值,然后修改其中某些字段,并保持其他字段的值不变,然后将最终合成的数值再写回到从设备中去。此过程中包含了至少一次读操作和一次写操作。在两次操作过程中,若其他主设备也在修改这个寄存器,此时就会出现冲突,导致其中一个主设备的写操作失败。而这种操作失败并不会被主设备感知,因此会导致后续更多的错误出现。在这种情况下就需要保证主设备的这两次操作中间不能被其他主设备的操作打断,即满足原子操作的要求。

通常使用原子操作命令和锁寄存器来确保实现原子操作。在使用原子操作命令过程中,其把一个主设备一次操作中所用到的多条命令合成一条命令发送到从设备,从设备需要增加多种专用的处理逻辑来处理这些命令,增加了集成电路的设计成本。通过使用锁寄存器虽然可以允许主设备执行一系列复杂的操作命令,但是当一个主设备通过锁寄存器执行命令操作时,其会占用数据通道,导致其他主设备需等待,使得操作命令执行效率低,另外,当锁寄存器的状态变为可用时,两个或两个以上的主设备如果同时发起后续的执行操作命令,则会产生访问冲突,导致无法满足原子操作的要求。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种实现原子操作的系统及方法,在不影响系统处理效率的同时,确保每个主设备都能够正常的执行原子操作。

为实现上述目的,本发明提出如下技术方案:一种实现原子操作的系统,包括总线模块、以及通过所述总线模块相通信的N个主设备和M个从设备,在总线模块和从设备之间设置原子操作处理单元;

所述原子操作处理单元包括命令选择模块、选择记录模块,以及N个缓存模块,所述主设备发送含有主设备标识和原子操作属性标识的请求命令信号至总线模块中,所述总线模块根据主设备标识将请求命令分别存储至N个缓存模块中,所述命令选择模块根据选择记录模块中的原子操作属性标识判断是否需要满足原子操作要求,并在需要满足原子操作要求时根据主设备标识从同一缓存模块中选取请求命令并执行,同时将该请求命令中的主设备标识和原子操作属性标识记录到选择记录模块中,其中,N为大于或等于1的整数,M为大于或等于1的整数。

优选地,每个从设备上均设有一个原子操作处理单元。

优选地,所述原子操作属性标识用于标识当前操作命令与后续操作命令之间是否需满足原子操作要求,其值为0时表示当前操作命令与后续操作命令之间无需满足原子操作要求,为1时表示当前操作命令与后续操作命令之间需满足原子操作要求。

优选地,所述主设备标识用于标识不同的主设备,且每个主设备都对应一个缓存模块。

优选地,所述命令选择模块按照先入先出的顺序从缓存模块中取出请求命令。

优选地,所述原子操作处理单元还包括超时控制模块,其用于在原子操作超过预设时长或主设备发生错误时使从设备主动结束操作命令。

一种实现原子的方法,包括如下步骤:

S1,主设备发送含有主设备标识和原子操作属性标识的请求命令信号至总线模块;

S2,总线模块根据主设备标识将请求命令分别存储至与主设备一一对应的缓存模块中;

S3,命令选择模块根据选择记录模块中的原子操作属性判断是否需要满足原子操作要求,并在需要满足原子操作要求时根据主设备标识从同一缓存模块中选取请求命令并执行,同时将该请求命令中的主设备标识和原子操作属性标识记录到选择记录模块中,其中,N为大于或等于1的整数,M为大于或等于1的整数。

优选地,在步骤S3中,所述原子操作属性标识用于标识当前操作命令与后续操作命令之间是否需满足原子操作要求,其值为0时表示当前操作命令与后续操作命令之间无需满足原子操作要求,为1时表示当前操作命令与后续操作命令之间需满足原子操作要求。

优选地,在步骤S3中,所述命令选择模块按照先入先出的顺序从缓存模块中取出请求命令。

优选地,在步骤S3中,还通过超时控制模块检查原子操作是否超过预设时长,并在超过预设时长时使从设备主动结束操作命令。

本发明的有益效果是:

与现有技术相比,(1)本发明所述的实现原子操作的系统及方法通过在请求命令信号增加一带有主设备标识的信号和一带有原子操作属性标识的信号,并且在总线模块与从设备之间设有一原子操作处理单元或者在每个从设备上均设置一原子操作处理单元,在不影响系统处理效率的同时,还能够确保每个主设备都可以正常的执行原子操作;

(2)通过将从设备上的多个原子操作处理单元合并为一个原子操作处理单元,能够减少集成电路的面积,减少设计成本。

附图说明

图1是本发明的结构框图一示意图;

图2是本发明的结构框图二示意图;

图3是本发明的原子操作处理单元结构框图示意图;

图4是本发明的实现原子操作的方法流程图示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

本发明所揭示的一种实现原子操作的系统,在不影响系统处理效率的同时,确保每个主设备都能够正常的执行原子操作,尤其适用于集成电路设计中多个主设备共享从设备的情形。

结合图1和图2所示,一种实现原子操作的系统,包括N个主设备、M个从设备,以及总线模块。N个主设备通过总线模块与M个从设备相通信连接,主设备可向从设备发起操作命令,从设备执行操作命令后将产生的结果通过总线模块发送至发起该操作命令的主设备中。

主设备发起操作命令时需要发送带有原子操作特别标识信号的请求命令信号至从设备。为了确保主设备能够执行原子操作,不被其他主设备的操作命令打断,本发明通过在主设备发送至从设备的请求命令信号中增加原子操作特别标识信号,其包括两个信号:一个是带有主设备标识的信号,一个是带有原子操作属性标识的信号。其中,主设备标识用于标识不同的主设备,根据请求命令信号中的主设备标识可以确定是从哪一个主设备中发送的请求命令。原子操作属性标识用于标识当前操作命令与后续操作命令之间是否执行原子操作的要求。

优选地,主设备标识可用至少一位二进数标识,可根据主设备的数量选择适当数量的二进数来对主设备进行标识。当有四个主设备时,可使用两位二进数数标识,即00标识第一个主设备,01标识第二个主设备,10标识第三个主设备,11标识第四个主设备。

原子操作属性标识使用一位二进制数表示,当原子操作属性标识信号的值为0时,表示当前操作命令与后续操作命令之间不需要满足原子操作要求;当原子操作属性标识信号的值为1时,表示当前操作命令与后续操作命令之间需满足原子操作要求。

进一步地,总线模块与从设备之间设有一原子操作处理单元或者在每个从设备上均设置一原子操作处理单元,原子操作处理单元用于优先处理需要执行需满足原子操作要求的操作命令,暂时缓存普通的操作命令。

具体的,原子操作处理单元包括N个缓存模块、命令选择模块,以及选择记录模块。其中,N个缓存模块与N个主设备一一对应,用于存储主设备发起的请求命令。命令选择模块用于从N个缓存模块中选择一个缓存模块中的请求命令并执行。选择记录模块用于记录前一个被执行的请求命令中主设备标识和原子操作属性标识信息。

实施时,选择记录模块需要进行初始化,即将主设备标识和原子操作属性标识的值均置为0。执行操作命令时,命令选择模块首先判断选择记录模块中原子操作属性标识的值是否为1,若为1,则表示前一个被执行的操作命令需满足原子操作的要求,因此,命令选择模块根据选择记录模块中的主设备标识选择与该主设备相对应的缓存模块,并从该缓存模块中选取一个请求命令并执行,同时将该请求命令中的主设备标识和原子操作属性标识信息记录至选择记录模块中。

当原子操作属性标识的值是为0时,则表示前一个被执行的操作命令不需满足原子操作的要求,因此,命令选择模块可以从N个缓存模块中任意选择一个缓存模块中的请求命令执行。

本实施例中,缓存模块中的请求命令的取出顺序按照先入先出的顺序取出。

如图3所示,系统还包括超时控制模块,其用于检查原子操作是否超时,并在超时时结束该原子操作。具体的,主设备发起一系列需要按照原子操作要求执行的操作命令时,从设备按照顺序执行操作命令直到发起该操作命令的请求命令信号中的原子操作属性标识的值为0才结束执行原子操作。当原子操作执行时间超过预设时长时或者发起操作命令的主设备发生错误导致未将满足该原子操作需求的操作命令发送完全时,从设备通过超时控制模块来结束该原子操作,并通过总线模块将超时结果返回至相应的主设备中,进而可以确保其他操作指令的正常执行。

结合图1、图2和图4所示,一种实现原子操作的方法,包括如下步骤:

S1,主设备发送含有主设备标识和原子操作属性标识的请求命令信号至总线模块;

S2,总线模块根据主设备标识将请求命令分别存储至与主设备一一对应的缓存模块中;

S3,命令选择模块根据选择记录模块中的原子操作属性判断是否需要满足原子操作要求,并在需要满足原子操作要求时根据主设备标识从同一缓存模块中选取请求命令并执行,同时将该请求命令中的主设备标识和原子操作属性标识记录到选择记录模块中,其中,N为大于或等于1的整数,M为大于或等于1的整数。

具体的,N个主设备通过总线模块与M个从设备相通信连接,主设备发起操作命令时需要发送带有原子操作特别标识信号的请求命令信号至从设备。请求命令信号中的原子操作特别标识信号包括两个信号:一个带有主设备标识的信号和一个带有原子操作属性标识的信号。在总线模块与从设备之间设有一原子操作处理单元或者在每个从设备上均设置一原子操作处理单元,能够确保主设备正常的执行原子操作。其中,主设备标识用于标识不同的主设备,根据请求命令信号中的主设备标识信息可以确定是从哪一个主设备中发送的请求命令信号。原子操作属性标识信号用于标识当前操作命令与后续操作命令之间是否需要满足原子操作的要求;原子操作处理单元如上所述。

实施时,带有原子操作特别标识信号的请求命令信号首先被发送至总线模块,总线模块进一步根据主设备标识将请求命令分别发送至N个缓存模块中。执行操作命令时,命令选择模块首先判断选择记录模块中原子操作属性标识的值是否为1,若为1,则表示前一个被执行的操作命令需满足原子操作的要求,因此,命令选择模块根据选择记录模块中的主设备标识选择与该主设备相对应的缓存模块,并从缓存模块中选取一个请求命令并执行,同时将该请求命令中的主设备标识信息和原子操作属性标识信息记录至选择记录模块中。从设备执行操作命令后将产生的结果通过总线模块发送至发起该操作命令的主设备中。

当原子操作属性标识信号的值是为0时,则表示前一个被执行的操作命令不需满足原子操作的要求,因此,命令选择模块可以从N个缓存模块中任意选择一个缓存模块中的操作命令执行。从设备执行操作命令后将产生的结果通过总线模块发送至发起该操作命令的主设备中。

进一步地,在步骤S3中,缓存模块中的请求命令的取出顺序按照先入先出的顺序取出。

在步骤S3中,还通过超时控制模块检查原子操作是否超时,并在超时时结束该原子操作。具体的,主设备发起一系列需要按照原子操作执行的操作命令,从设备按照顺序执行操作命令直到发起该操作命令的请求命令信号中的原子操作属性标识的值为0才结束执行原子操作。当原子操作执行时间超过预设时长时或者发起操作命令的主设备发生错误导致未将该满足该原子操作需求的操作命令发送完全时,从设备通过超时控制模块来结束该原子操作,并通过总线模块将超时结果返回至相应的主设备中,进而可以确保其他操作指令的正常执行。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1