使用高效的原子操作的方法和装置的制造方法

文档序号:8532113阅读:367来源:国知局
使用高效的原子操作的方法和装置的制造方法
【技术领域】
[0001]概括地说,本申请的实施例涉及数据通信,更具体地说,本申请的实施例涉及提供用于对数据进行缓冲的流控制的方法和装置。
【背景技术】
[0002]原子操作经常用于多核处理器架构中。通常,原子操作是操作的集合,这些操作被组合以便它们对于系统的其余部分而言表现为仅具有两种可能的结果(成功或失败)的单个操作。
[0003]使用原子操作的两种常规方法包括相应的“锁定”和“独占”方案。锁定操作通常一次仅允许一个主设备访问总线。对于使用共享变量的多核应用来说,锁定方案可能是效率低下的,这是因为其它主设备需要一直等待,直到活动的主设备结束对总线的使用为止。
[0004]独占方案允许多个主设备在操作期间共享总线。这对于可以由多个处理线程共享的信号量变量来说尤其有用。一般来说,独占操作涉及执行对存储器的读访问的第一主设备。然后由同一个主设备进行对相同位置的写访问。如果位置地址自从读访问以来没有发生变化,那么写访问成功。第二主设备可以在第一主设备的读周期和写周期之间的间隔期间发起读操作。在出现失败的情况下,第二主设备通过发送请求来对共享资源进行轮询,直到该资源是可用的为止。一旦可用,则重复对该资源的独占访问的请求。
[0005]虽然独占方案适用于其目标应用,但是确定资源的可用性的重复的轮询增加了总线业务和上下文切换,相应地减少了沿总线的可用信令带宽,并且增加了系统延迟。

【发明内容】

[0006]公开了一种控制多个主设备之间对共享资源的访问的方法。所述方法包括:从第一主设备接收对共享资源进行访问的请求,以及确定所述共享资源的可用性。如果所述共享资源是可用的,则向所述第一主设备返回成功响应,以建立所述第一主设备对所述共享资源的访问。如果所述共享资源是不可用的,则向所述第一主设备返回失败响应。在所述资源的不可用期间,针对所述共享资源何时变得可用来自动地监测所述共享资源。一旦所述共享资源变得可用,就自动地通知所述第一主设备。
【附图说明】
[0007]本申请的实施例是通过举例的方式来说明的,并不旨在由附图中的图所限制,其中:
[0008]图1示出了多处理器系统的一个实施例;
[0009]图2示出了使用图1的系统来实现原子操作的高级命令和操作流;
[0010]图3从主设备的角度示出了包括与图2的命令和操作流的一个实施例相对应的详细步骤的流程图;
[0011]图4A从从设备的角度示出了包括与对应于图2的命令和操作流的方法的一个实施例相对应的详细步骤的流程图的一部分;以及
[0012]图4B示出了与图4A类似的流程图的一部分。
【具体实施方式】
[0013]根据本申请的实施例,公开了一种控制多个主设备之间对共享资源的访问的方法。该方法包括:从第一主设备接收对共享资源进行访问的请求,以及确定该共享资源的可用性。如果该共享资源是可用的,则向第一主设备返回成功响应,以建立第一主设备对该共享资源的独占访问。如果该共享资源是不可用的,则向第一主设备返回失败响应。在该资源的不可用期间,针对该共享资源何时可用来自动地监测该共享资源。一旦可用,则自动地通知第一主设备。通过提供自动监测和通知,可以显著地减少来自主设备的轮询和相关的上下文切换,从而改善系统性能。
[0014]在下面的描述中,阐述了大量的具体细节(例如,具体部件、电路和过程的例子)以提供对本公开内容的透彻理解。另外,在下面的描述中以及出于解释的目的,阐述了特定的术语,以提供对本申请的实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以不需要这些具体细节来实现本申请的实施例。在其它实例中,为了避免模糊本公开内容,以框图形式示出了公知的电路和设备。如本文中所使用的术语“耦合”意指直接连接到一个或多个中间部件或电路或者通过一个或多个中间部件或电路来连接。可以将本文中描述的各个总线上提供的信号中的任何一个与其它信号进行时间复用,并且通过一个或多个公共总线来提供。另外,可以将电路单元或软件框之间的互连示为总线或单个信号线。这些总线中的每一个还可以是单个信号线,并且这些单个信号线中的每一个还可以是总线,并且单个线或总线可以表示用于部件之间的通信的各种物理或逻辑机制中的任何一个或多个。本申请的实施例并非被解释为受限于本文中描述的特定例子,而是将由所附的权利要求书限定的所有实施例包括在它们的范围内。
[0015]更具体地说,并且通常参照图1,多主设备信令系统100使用经由共享总线106互连到从设备104的多个主设备102A-102N。在一个实施例中,主设备102A-102N体现为可以设置在一个或多个集成电路芯片上的集成电路处理器。在一个实施例中,从设备104体现为存储器系统,该存储器系统使用存储器控制器108来仲裁对一个或多个存储器设备110的访问。为了在维持高利用率和效率的同时允许对存储器的共享访问,支持用于信号量类型和非信号量类型的原子操作的新方案(下面更全面描述的)。
[0016]进一步参照图1,每个主设备(例如,设备102A)包括使用请求/响应逻辑单元114和待命队列116的调度器112。请求/响应逻辑单元114生成并接收具有命令或请求/响应形式的消息,这些消息在主设备102A与从设备104之间被派发,以对用于执行操作的独占访问进行协调。主设备102A中的核心电路118提供用于生成和或处理数据的计算资源,所述数据是作为独占访问的结果而写入从设备104中的或从从设备104取得的。在能够保障主设备与从设备之间的独占访问之前,待命队列116暂时地对用于给定的原子事务的命令和数据进行存储。
[0017]继续参照图1,从设备104包括调度接口 120,其中,调度接口 120与多个主设备102A-102N进行通信,以在不同的时刻协调独占事务。调度接口 120包括请求队列122 (例如,缓冲器),其中,请求队列122用于接收并存储来自各个主设备的请求(例如,基于先进先出)。响应逻辑单元124耦合到请求队列122,以检测从设备104对于独占访问的可用性。在一个实施例中,响应逻辑单元124包括计数器,其中,该计数器在存储器可用于访问时呈现第一值(例如,I),并且在存储器系统104在主设备中的一个主设备的操作中被锁定时呈现第二减小的值(例如,O)。如下面更全面描述的,控制器108还包括响应生成器126,其用于生成消息并向各个主设备发送这些消息。
[0018]进一步参照图1,调度接口 120耦合到核心逻辑单元128,其中,核心逻辑单元128提供用于跟踪和处理进行中的和/或排队等待由控制器108处理的各种操作的处理资源。如上所述,在一个实施例中,由主设备中的每个主设备轮流进行独占访问的共享资源是存储器。因此,提供存储器接口 130,以在控制器108与一个或多个存储器设备110之间执行访问。在一些实施例中,控制器108和存储器设备110体现为单独的集成电路设备。在其它实施例中,控制器功能可以作为电路来分布并包括在主设备102A-102N中的每个主设备中。
[0019]图2描绘了示出多个主设备与共享从设备之间的一系列操作的流程图。对共享资源的独占访问是通过对信号量类型的原子操作的使用来仲裁的,其中,该原子操作涉及用于执行单个事务的一系列命令。原子操作减少了来自不具有对共享资源的独占访问的主设备的轮询。因此,减少的轮询和相关联的上下文切换改善了互连的信令带宽,从而改善了系统性能。
[0020]进一步参照图2,并且将存储器系统上下文用作一个例子,在202处,期望对共享从设备(例如,存储器)进行独占访问的第一主设备(例如,处理器)向该从设备发出第一请求“ACQUIRE ACCESS (获得访问)”。如果在204处从设备可用于另一个主设备的独占操作,那么在206处,从从设备向第一主设备发出“SUCCEED (成功)”信号。这建立了这两个设备之间的锁定情况,以用于执行第一主设备与从设备之间的一系列读和/或写数据事务。
[0021]继续参照图2,假如在208处,第二主设备向从设备发出了独占访问请求,而第一主设备具有独占访问,那么与第一主设备的锁定情况导致在210处从设备利用“FAIL(失败)”响应来对第二主设备进行响应。然后在存储器是可用的之前,第二主设备进入操作的待命模式以执行操作。在212处,当第一主设备发出“RELEASE (释放)”命令时,可用性发生。在214处,响应于RELEASE命令,将从设备从第一主设备释放,并且在216处,自动地生成“WAKE (觉醒)”命令并向第二主设备发出该命令(假设先前失败的请求是从设备队列中的最高优先级操作)。一旦第二主设备接收到WAKE命令,则在218处,发出新的ACQUIRE (获得)请求以建立与从设备的锁定状态,在220处,由从设备发出对应的SUCCEED命令以确认独占性。此
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1