CN101271438A - 用于在消息之间进行仲裁的数据处理装置和方法 - Google Patents
用于在消息之间进行仲裁的数据处理装置和方法 Download PDFInfo
- Publication number
- CN101271438A CN101271438A CNA2008100873750A CN200810087375A CN101271438A CN 101271438 A CN101271438 A CN 101271438A CN A2008100873750 A CNA2008100873750 A CN A2008100873750A CN 200810087375 A CN200810087375 A CN 200810087375A CN 101271438 A CN101271438 A CN 101271438A
- Authority
- CN
- China
- Prior art keywords
- real
- time
- data
- communication channel
- processing equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 343
- 238000004891 communication Methods 0.000 title claims abstract description 96
- 230000008569 process Effects 0.000 claims abstract description 287
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000012913 prioritisation Methods 0.000 claims abstract description 47
- 238000007726 management method Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 7
- 238000010977 unit operation Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000000644 propagated effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 244000287680 Garcinia dulcis Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40084—Bus arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种用于在消息之间进行仲裁的数据处理装置和方法。提供用于在通过通信信道路由的消息之间进行仲裁的数据处理装置和方法。数据处理装置包括:多个处理元件;在处理元件之间共享的通信信道,消息通过通信信道路由。仲裁电路执行仲裁过程。每个处理元件发出在其上运行的进程的进度数据,进度数据指示进程的等待时间暗示。仲裁控制电路则响应进度数据,在考虑了进度数据指示的各进程的等待时间暗示的情况下执行优先级排序过程以生成优先级排序数据。然后将优先级排序数据输出给仲裁电路以控制仲裁过程。这使服务质量能够被自动确定并在各个进程之间分配,而无需预先知道进程的要求,并且优先化机制动态适应进程之间的通信的变化。
Description
技术领域
本发明涉及用于在通过通信信道路由(route)的消息之间进行仲裁的数据处理装置和方法,特别是涉及用于通过在多个处理元件之间共享的通信信道路由的消息之间进行仲裁的数据处理装置和方法。
背景技术
存在多个处理元件之中共享通信信道的许多系统,其中的各个处理元件通过通信信道向接收元件发出消息。通信信道可采取用于将多个主装置与芯片中的多个从装置、如芯片上系统(SoC)装置连接、或者连接多芯片模块中的各个芯片或者实际上互连印刷电路板结构中的各个模块的总线互连电路的形式。在更大规模上,通信信道可通过互连多个计算机的网络或者用于互连多个装置的共享无线电链路来构成。
对于任何通信信道,存在对那个信道的信息承载(carry)容量的限制,并且还存在与通信信道相关联的等待时间。存在使信道容量和等待时间能够改变的体系结构选择,例如使用并行化技术和增加的工作频率。但是,这类技术具有复杂度、功率和区域方面的费用,它们需要对于所需性能进行折衷。
在通信信道在多个处理元件之间共享的任何系统中,其中那些处理元件需要在运行进程时通过通信信道发出消息,通信信道被共享的事实迫使进行关于通过通信信道处理消息的顺序的判定,并且这个判定通过使用仲裁技术来进行。考虑SoC的实例,消息可采取主装置在事务期间发出的信号的形式,具体来说,主装置通常通过将指定与事务关联的从装置的访问请求发布到通信信道上,来发起事务。在这个特定领域中已知的是,事务的某种排序产生比其它排序更低的总等待时间,这是装置、如存储控制器通常专用的区域。但是,仲裁判定必然增加其消息因仲裁判定而被阻止的进程所遇到的等待时间。因此,进行这个仲裁判定的方式对系统的整体性能具有显著影响。
基本仲裁方案使用采取固定优先级或循环(公平共享)技术的算法。这类方案限制到逐个消息进行仲裁判定,并且有限地考虑以前进行的选择。循环方案的例外情况是当前优先级取决于先前的优先级。但是,两种方案都遇到问题:它们基于逐个消息而不是在发出消息的各个进程之间分配通过通信信道所产生的附加等待时间。因此,在通信信道中具有高访问等级的消息因通信信道中进行的仲裁判定而经历高等级的附加等待时间。
主要为网络开发的备选技术是服务质量(QoS)技术,它通过设法确保进程具有所需带宽和可控等待时间特性来进行基于时间的观测。因此,这类QoS方案考虑每个进程,并将通信信道的一部分带宽分配给那个进程,其中具有对施加到各事务或消息的等待时间的某种控制。但是,已知QoS方案的限制在于,每个进程的特性被假定为在运行那些进程时发生的实际数据流量之前是已知的,并且还需要某种高级协议来管理那种信息。因此,这类QoS方案对于带宽和等待时间特性的变化是不灵活的,需要预先知道这些特征,并且需要高级协议来配置通信信道的操作以便向进程提供必要的特性。因此,现有QoS方案以通信信道提供性能的假设开始,并按照来自进程的预定要求来分配这个性能。这可能使具有比预计更低的带宽要求的进程得到不公平性能,而超过其预定特性的其它进程则缺乏性能。
虽然这些已知QoS方案的一部分可在网络环境中的工作是可接受的,但是,在其它类型的系统、如SoC中,通过共享通信信道发生的数据流量可能是随机的(例如从高速缓存未命中等产生)并且动态可变的,因此不适合于现有QoS方案。
因此,希望提供一种用于在通过共享通信信道路由的消息之间进行仲裁的改进技术。
发明内容
从第一方面来看,本发明提供一种用于在通过通信信道路由的消息之间进行仲裁的数据处理装置,包括:多个处理元件,各处理元件用于运行需要向接收元件发出消息的进程;在多个处理元件之间共享的通信信道,通过所述信道路由消息;仲裁电路,用于执行在通过通信信道路由的多个消息之间进行仲裁的仲裁过程;各处理元件设置成发出在那个处理元件上运行的进程的进度(progress)数据,进度数据指示进程的等待时间暗示(implication);以及仲裁控制电路,响应来自各处理元件的进度数据,在考虑了进度数据所指示的各进程的等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据,并将优先级排序数据输出到仲裁电路,以便控制仲裁过程。
根据本发明,每个处理元件设置成发出在那个处理元件上运行的进程的进度数据,其中的进度数据指示该进程的等待时间暗示。最后,当等待时间增加到特定等级时,将导致进程停止(stall),但这不会立即发生,因为可存在充分的缓冲或者可首先运行的其它计算。另外,停止对进程的影响根据那个进程而改变,在一些情况下可能是灾难性的,而对于其它进程,停止的影响可能不那么重要,并且可能只是延长完成进程所需的时间。因此,大家会理解,等待时间的暗示根据进程而改变,因此,相对于各运行进程发出的进度数据指示那个进程特定的等待时间暗示。
此外,根据本发明提供仲裁控制电路,它响应来自各处理元件的进度数据而在考虑了进度数据所指示的等待时间暗示的情况下执行优先级排序过程。由于这个过程,生成优先级排序数据,以及这个优先级排序数据输出到数据处理装置所提供的仲裁电路,以便控制那个仲裁电路所执行的仲裁过程。
仲裁电路的设置取决于通信信道的结构。在通信信道中通常存在需要执行仲裁的多个点,因此,仲裁电路分布于通信信道,以便使仲裁能够在那些点的每一个上执行。在每个这样的点上,仲裁控制电路输出的优先级排序数据用于在通信信道的那个点上出现的多个消息之间进行仲裁。
通过利用本发明,可在考虑了各个进程的要求时执行仲裁,因此采用QoS样式的仲裁,但与已知QoS方案相反,该QoS在进程之间自动确定和分配,因而消除了预先知道这些要求的需要。另外,本发明的QoS机制动态适合于进程之间的通信的变化。具体来说,当来自各个进程的进度数据改变时,这将影响仲裁控制电路所产生的优先级排序数据,它转而影响数据处理装置的仲裁电路所执行的仲裁。
共享通信信道的处理元件可采取各种形式。但是,在一个实施例中,每个处理元件是连接到通信信道的主装置。通过通信信道向接收元件发送消息的装置通常是从装置,以及各个事务由主装置在其中运行进程时发出,以便使多个读或写传输在主装置与从装置之间经由通信信道发生。在这类实施例中,每个消息可采取主装置之一发出的访问请求以便发起事务的形式。但是,消息的准确形式取决于通信信道上使用的协议。对于例如ARM Limited(Cambridge,United Kingdom)开发的AXI(高级可扩展接口)协议等总线协议,读和写数据构成事务所指定的地址转换(transfer)中描述的消息的一部分,而在分包系统中,请求和数据可构成组成消息的单个分组的一部分。
各个处理元件运行的各个进程可采取各种形式。但是,在一个实施例中,各进程是程序线程,以及各处理元件运行单个程序线程。在这类实施例中,逐个线程地提供进度数据。
在一个备选实施例中,至少一个处理元件包括多个处理单元,其中各处理单元运行一个程序线程。在这个实施例中,处理元件是多核处理器,以及进度数据对其发出的“进程”由那个处理元件的各个处理单元上运行的所有各种程序线程组成。配置这样一种多核处理器的另一种方式是将多核处理器中的各个处理单元设置成分别被看作处理元件,使得多核处理器中的各处理单元输出它自己的、与那个处理单元上运行的程序线程相关的进度数据。
数据处理装置可采取各种形式,但在一个实施例中采取SoC的形式。本发明的技术在SoC装置中极为有益,因为通过通信信道发生的各种数据流可能是随机并且动态可变的。当各种进程的要求改变时,本发明的实施例的技术足够灵活地管理各种进程的带宽和等待时间。
进度数据可采取各种形式。在一个实施例中,进度数据确定关联进程是实时进程还是非实时进程,对于实时进程,进度数据还确定指示处理那个实时进程发出的消息剩余的时间的至少一个松弛(slack)值,对于非实时进程,进度数据还确定指示对于预定时间与那个进程关联的等待时间的至少一个等待时间值。
为了便于进行描述,实时进程可看作是停止对那个进程的影响被认为是灾难性、因而是不可接受的任何进程。一个实例可能是正生成用于在屏幕上显示的视频的进程,其中,所显示视频的中断可被认为是不可接受的。相反,本申请的上下文中的非实时进程表示停止可能是可接受的、因而停止的影响不是那么重要但引起完成进程所需的时间延长的任何进程。除了关于进程是实时进程还是非实时进程的指示之外,对于实时进程,进度数据还确定指示用于处理那个实时进程发出的消息剩余的时间(在进程停止之前还有多少时间)的松弛值。相反,对于非实时进程,进度数据还确定指示对于预定时间与那个进程关联的等待时间的至少一个等待时间值。预定时间是可根据实现进行改变的设计参数。预定时间越长,则在产生等待时间值时要考虑的历史信息量越大,而预定时间越短,则等待时间值更快地响应最近变化而改变,因此,仲裁控制电路生成的优先级排序数据更快地应来自特定进程的需求的最近变化。
通过将上述信息结合到进度数据中,仲裁控制电路可确保充分优先地考虑实时进程,以确保它们不会停止,但在与实时进程关联的松弛值允许的情况下,为了减小那个非实时进程遇到的等待时间,非实时进程可优先于实时进程。通过将对于每个非实时进程所确定的等待时间值设置成指示在预定时间上与那个进程相关联的等待时间,这使整体等待时间能够在非实时进程之间公平分配。
提供用于产生与每个非实时进程关联的等待时间值的电路可采取各种形式。例如,对于各进程,可保存带符号二进制值,其中,负值指示可增加而不会停止进程的等待时间,而正值则计算已经对进程增加的等待时间。在对传送(transfer)增加等待时间的每一个周期,这个二进制计数器可递增,以及当二进制值为正时,这指示线程已经停止。这个停止时间则可在积分器中累计(因为积分器值随时间变为无穷大,可提供定期从所有积分器中减去某个值的机制)。因此,积分器输出的等待时间值提供关于可由仲裁控制电路在生成优先级排序数据时使用的线程之间的停止时间的差异的信息。作为使用积分器的一个备选方案,滤波器电路可与运行非实时进程的各处理元件相关联,其中的滤波器电路产生每个单位时间的等待时间的形式的等待时间值。因此,在这类实施例中,简单的低通滤波器可用来跟踪累计停止时间,以及来自各滤波器的输出与平均停止率、即线程停止的周期数量对于形成参考时间段的预定时间成正比。
在一个实施例中,可公平处理所有非实时进程,其中,在进度数据中包含的等待时间值用于设法在非实时进程之间均匀分配等待时间的影响。但是,在一个备选实施例中,至少一个非实时进程具有与其关联的加权,并且在产生那个非实时进程的等待时间值时考虑那个加权。每个这样的进程的加权可在设计时固定,或者可能是可编程的,但通常不会动态改变。在使用滤波器电路的实施例中,每个非实时进程的加权可通过将不同的加权应用于这种滤波器电路所应用的滤波算法来实现。因此,高加权可应用于某些非实时进程,而低加权则应用于其它实时进程,使得在优先级排序过程由仲裁控制电路执行时,某些非实时进程(即具有较高加权的非实时进程)可优选其它非实时进程。作为一个实例,如果由于那个进程的停止而令音频极偶然被中断是可接受的,则这可允许产生音频流的进程被认为是非实时进程,但是为了然后相对那个进程应用高加权,使得相对那个进程输出的等待时间值与其它较不重要的非实时进程相比更为迅速地增加,因而在仲裁控制电路中执行优先级排序过程时,使那个音频流进程优先于较低优先级的非实时进程。
在一个实施例中,数据处理装置还包括与运行实时进程的各处理元件关联的计数器电路,计数器电路产生所述松弛值。因此,在一个实施例中,当消息由那个进程输出(例如事务开始)时,计数器电路可将计数器设置为特定值,其中,那个计数器值然后在每个时钟周期递减,使得松弛值随时间减小。当松弛值较高时,仲裁控制电路执行的优先级排序过程可以使某些非实时进程优先于实时进程,但是,存在松弛值下降到低于某个等级的点,使得优先级排序过程然后使实时进程优先于这类非实时进程。
在一个实施例中,对于非实时进程,进度数据还确定用于确定那个进程是否停止的停止值。在一个具体实施例中,这可采取单个位值的形式,其中,一个值指示进程被停止,而另一个值则指示进程没有停止。在一个具体实施例中,这个停止值还可用作对用于产生等待时间值的滤波器电路的输入。
在一个实施例中,对于非实时进程,进度数据还确定指示用于在进程停止之前处理那个进程发出的消息剩余的时间的松弛值。因此,在非实时进程提前发起事务(即进程在需要那个事务的结果之前仍然能够继续进行某个时间段)的情况下,松弛值可包含在进度数据中确定进程停止之前剩余的时间,并且这个信息可由仲裁控制电路在执行优先级排序过程时进行考虑。
优先级排序过程可通过各种方式来设置。但是,在一个实施例中,如果某个实时进程的松弛值指示用于处理由那个实时进程发出的消息剩余的时间大于预定阈值,则优先级排序过程对非实时进程提供优先于那个实时进程的优先级。因此,在实时进程的松弛允许时,非实时进程可优先于实时进程,以便减少那些非实时进程遇到的等待时间,并且没有对实时进程的任何实际影响。
在一个实施例中,优先级排序过程对具有较高等待时间值的非实时进程提供比具有较低等待时间值的非实时进程高的优先级。因为这些等待时间值指示在预定时间上与进程关联的等待时间,所以这实现对于非实时进程的等待时间的公平分配。
在一个实施例中,对于具有不同停止值的两个非实时进程,优先级排序过程比将优先级提供给具有较高等待时间值的进程更优先地将优先级提供给停止值指示那个进程被停止的非实时进程。因此,这种方法试图减少停止任何非实时进程的时间。
在一个实施例中,对于具有不同松弛值的两个非实时进程,优先级排序过程比将优先级提供给具有较高等待时间值的进程更优先地将优先级提供给具有最小松弛的非实时进程。这种方法试图在可能的情况下降低非实时进程停止的可能性。
虽然各处理元件所产生的进度数据的主要目标是使服务质量考虑因素能够由仲裁控制电路在执行优先级排序过程时进行考虑,但是还发现,进度数据的一部分可在数据处理装置的其它部分中再使用。例如,已知的是提供一种数据处理装置,其中具有能量管理电路来控制装置的各种组件进行操作的性能等级(level)。这种数据处理装置通常可在运行时在不同工作性能之间转换。在运行轻工作负荷时选择较低性能等级,以便节省能量(功耗),而对于处理更为密集的工作负荷则选择较高性能等级。当数据处理装置中的处理元件通过互补金属氧化物半导体(CMOS)技术来实现时,较低的性能等级表示较低的频率和工作电压设定。
在数据处理装置包括这种能量管理电路的一个实施例中,能量管理电路设置成在确定一个或多个处理元件的工作性能等级时,考虑那些处理元件发出的进度数据的至少一部分。在一个具体实施例中,能量管理电路考虑运行非实时进程的一个或多个处理元件输出的等待时间值。
从第二方面来看,本发明提供一种在通过具有多个处理元件的数据处理装置的通信信道路由的消息之间进行仲裁的方法,其中各处理元件运行需要向接收元件发出消息的进程,以及通信信道在多个处理元件之间共享,消息通过通信信道路由,该方法包括:从各处理元件发出在那个处理元件上运行的进程的进度数据,进度数据指示进程的等待时间暗示;响应来自各处理元件的进度数据,在考虑了由进度数据所指示的各进程的等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据;以及执行在通过通信信道路由的多个消息之间进行仲裁的仲裁过程,优先级排序数据用来控制仲裁过程。
从第三方面来看,本发明提供用于数据处理装置的仲裁控制电路,数据处理装置包括:多个处理元件,各处理元件运行需要向接收元件发出消息的进程;在多个处理元件之间共享的通信信道,消息通过通信信道路由;以及仲裁电路,用于执行在通过通信信道路由的多个消息之间进行仲裁的仲裁过程,仲裁电路包括:输入接口,用于从各处理元件接收在那个处理元件上运行的进程的进度数据,进度数据指示进程的等待时间暗示;优先级排序电路,响应来自各处理元件的进度数据,在考虑了由进度数据所指示的各进程的等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据;以及输出接口,用于向仲裁电路输出优先级排序数据,以便控制仲裁过程。
附图说明
仅作为实例、参照附图所示的本发明的实施例来进一步描述本发明,附图包括:
图1是根据本发明的一个实施例的数据处理装置的框图;
图2A是示出一种用于在图1的数据处理装置中提供多核处理器的方法的框图;
图2B是示出在图1的数据处理装置中提供多核处理器的一种备选方式的框图;
图3A是示意性说明不同类型的非实时进程的等待时间成本相对时间的图表;
图3B是示出对于图3A所示的三个不同进程、根据本发明的一个实施例发出的停止位的值的图表;
图4是示出实时进程的等待时间成本相对于时间的图表;
图5示出根据本发明的一个实施例、由每个主装置向图1的仲裁控制电路发出的进度信息的各种部分(component);
图6示出根据本发明的一个实施例、可在图1的仲裁控制电路中保存的数据结构;
图7示意性说明根据本发明的一个实施例、由图1的仲裁控制电路对于两个线程所应用的排序过程;
图8是示出根据本发明的一个实施例、由图1的仲裁控制电路所应用的优先级排序过程的流程图;
图9是更详细地表示根据本发明的一个实施例、对所选线程对应用排序过程所执行的步骤的流程图;以及
图10是示出还可如何将图1的各种主装置发出的进度数据的至少一部分路由到数据处理装置中的能量管理控制电路的框图。
具体实施方式
图1是根据本发明的一个实施例的数据处理装置的框图。在这个实施例中,数据处理装置采取SoC的形式,其中包括经由通信信道40与多个从装置50、60、70耦合的多个主装置10、20、30。虽然为了论述本发明的一个实施例而考虑这样一种SoC装置,但是本领域的技术人员会理解,本发明的实施例的技术可适用于在多个处理元件之间共享通信信道的大量不同系统。
考虑图1的SoC实例,通信信道40通常采取互连块的形式,其中包括多个互连总线,为SoC中的多个总线主装置10、20、30和总线从装置50、60、70的互连提供连接矩阵。
组成通信信道的总线通常按照规定的总线协议进行操作,因而例如可按照ARM Limited开发的“高级微控制器总线体系结构”(AMBA)规范进行操作。
因此大家会理解,通信信道40由各个主装置与从装置之间的互连的复杂布置组成。在通信信道中的各个点上,需要提供在争用特定通路的多个消息之间进行仲裁的仲裁电路。
主装置10、20、30的每一个通常运行进程,在此期间通过通信信道40发起各种事务。这类事务使数据能够从主装置路由到从装置(在写事务的情况下)或者自从装置路由到主装置(在读事务的情况下),其中各事务通过主装置将访问请求发布到通信信道上发起。各访问请求可被认为是组成消息,以及通信信道中的仲裁电路需要在总线基础设施中多个消息可争用特定通路的任何点上执行仲裁。
因此,仲裁电路可被认为是由散布于通信信道上的多个仲裁元件组成,其中的每个这样的仲裁元件执行在多个消息之间进行仲裁的仲裁过程。根据本发明的实施例,各仲裁元件所执行的仲裁过程由仲裁控制电路80来确定,仲裁控制电路80设置成在输入接口82上接收各个主装置10、20、30分别通过相应通路12、22、32输出的进度信息。稍后更详细地进行描述,这个进度数据指示每个主装置上运行的进程的等待时间暗示,并且将那个进度数据转发给仲裁控制电路中的优先级排序电路84,其中,在考虑了那个进度数据的情况下执行优先级排序过程,以便生成优先级排序数据。那个优先级排序数据则经由输出接口86作为进程的优先级排序列表输出,其中将那个列表路由到通信信道中的所有仲裁元件(本文中又称作仲裁器)。存在可传播这个优先级排序列表的各种方式。在一个实施例中,这个排序列表可通过与用于路由消息相同的通路来传播,而在一个备选实施例中,它可通过单独的专用总线结构来传播。每个仲裁则根据所提供的优先级排序列表来执行仲裁过程。
仲裁控制电路80可设置成以预定间隔更新这个优先级排序列表。一般来说,每当对仲裁控制电路的任何输入改变时,应当更新优先级排序列表。这通常引起在每个时钟周期更新该列表,除非有极少或者没有事务正在进行。
图2A是示出一种可在图1的数据处理装置中提供多核处理器100的方法的框图。多核心处理器100具有经由处理器100中的内部通信信道150互连的多个处理器核心110、120、130、140。多核处理器100则连接到外部通信信道160,经由外部通信信道160可与各个从装置50、60、70进行通信。在一个实施例中,图1的通信信道40可被认为包含多核处理器10的内部通信信道150以及多核处理器外部的通信信道160,使得处理器核心110、120、130、140的每一个实际上可被认为组成独立的主装置,其中的每一个向仲裁控制电路80发出它们自己的进度信息。在一个实施例中,各个这样的核心110、120、130、140运行独立的程序线程,因此,从任何特定核心输出的进度信息指示关联线程的等待时间暗示。
在一个备选实施例中,如图2B所示,多核处理器的内部构件对仲裁控制电路隐藏,而多核处理器的整体看作是单个主装置,在这个实例中为主装置10。因此,在主装置10是多核处理器的情况下,通过通路12输出到仲裁控制电路的进度信息提供多核处理器所执行的“进程”的总体等待时间暗示,因此没有直接提供各个单独核心110、120、130、140运行的各个单独线程的等待时间暗示。
图3A是示出各种类型的非实时进程的等待时间成本相对时间的图表。线条“a”200示出当处理元件运行在需要时请求数据的进程时发生的等待时间成本的形式,但是在通过通信信道40发出任何访问请求之前发生内部延迟。例如,这可能是主装置是具有内部高速缓存、黑盒系统等处理器的情况。考虑具有高速缓存的处理器的实例,当访问请求由处理器发出时,首先在高速缓存中执行查找,以便判定访问请求的对象的数据是否在高速缓存中。如果不是,则发生高速缓存未命中,以及访问请求然后通过通信信道40出现。如图3A中与线条200关联的虚线所示,非实时进程观测到的等待时间在任何访问请求出现于通信信道40之前已经增加,使得在时间零,访问请求出现在通信信道上,等待时间成本已经处于正值。
相比之下,线条“b”210示出对于其进程在需要时请求数据的处理元件所观测的线条类型,并且请求立即出现在通信信道40上。这样一个处理元件的实例例如可以是直接存储器存取(DMA)控制器。
线条“c”220示出对于其进程提前请求数据的处理元件所观测的线条类型。因此,在这个实例中,请求在时间零出现于通信信道40,但在到达时间t1之前,不存在正的等待时间成本,因为该进程能够进行其它有效工作。因此,仅在时间t1,进程才实际停止。相比之下,对于与线条210关联的进程,该进程在时间零停止,以及对于与线条200关联的进程,该进程甚至在请求在时间零出现于通信信道40之前停止。
因此可以看到,与线条200和210关联的进程没有松弛时间,但是与线条220关联的进程具有某个松弛时间,在该松弛时间中,可处理由那个进程发布到通信信道40上的消息,而那个进程不会停止。
根据本发明的一个实施例,由运行非实时进程的任何主装置发出的进度信息的一部分是停止位,它在进程被停止时设置,而在进程没有被停止时重置。图3B示出图3A的三个示例线条的这个停止位的剖面。在这个实例中,假定设置条件由逻辑值一表示,而重置条件则由逻辑值零表示。从图3B可以看到,与线条a关联的进程在点205停止,因此在那个点设置停止位。类似地,与线条b关联的进程在点215停止,以及与线条c关联的进程在点225停止,因此停止位分别在点215、225转变。
考虑与线条a关联的进程,有可能的是,可在处理元件中内部为请求提供服务,而无需通过通信信道40发出请求。例如,考虑前面所述的具有高速缓存的处理器的实例,如果高速缓存命中发生,则相对于高速缓存继续进行访问,而无需将访问请求通过通信信道40传播。因此,如虚线207所示,在这类情况下,停止位在205转变为逻辑值一,但在已经为访问请求提供服务时,又转变为逻辑零电平。在一个实施例中,不管是否将任何特定访问请求发布到通信信道40,停止位仍然作为进度信息的一部分被输出,以及在一个实施例中实际上用作对于用来生成那个进程的等待时间信息的滤波器的输入。因此,这为仲裁控制电路80提供与任何特定主装置的进程被停止的时间比率(proportion)有关的信息,而不管那个停止的原因,具体来说,不是仅限于由于通过通信信道40所引起的等待时间而发生停止的情况。
图4是与图3A相似的简图,但示出实时进程的等待时间成本。如前面所述,为了便于说明本申请,实时进程是“停止”对于那个进程是不可接受的进程,与进程的某种停止是可接受的非实时进程相反。因此,假若不允许实时进程停止,则实时进程通常提前请求数据,因此,虽然曲线沿着通路250,但存在与那个实时进程关联的松弛时间。但是,在这种情况下,松弛时间指示用于处理那个实时进程发出的消息剩余的时间,以及如果松弛时间耗尽,则等待时间成本变为无穷大,如垂直线260所示。
图5示出根据本发明的一个实施例、由主装置10、20、30发出的进度信息的各种部分。具体来说,在图5的实例中,假定主装置10正运行非实时线程,主装置20正运行非实时线程,但主装置30正运行实时线程。在一个实施例中,运行非实时线程的每个主装置设置成发出四个部分以构成进度信息。具体来说,实时位信号通过通路200、220发出,确定该进程是非实时线程。在这个实例中,这通过将实时位设置为零来表示。此外,松弛值通过通路205、225输出,确定与非实时线程关联的任何松弛时间。对于图3A的等待时间成本图表,大家会理解,这个松弛值可通过任何负等待时间成本值来表示。具体来说,考虑线条c 220,可以看到,负等待时间成本的幅度在时间零以特定值开始,然后在与那个进程相关联的松弛时间中逐渐减小到零,使得它在时间t1达到零值。
此外,在图5所示的实施例中,停止位通过通路210、230输出,确定关联进程在当前时间是否停止。这个停止位还输入到低通滤波器215、235,以便使等待时间值被生成并通过通路220、240输出,这个等待时间值表示每个单位时间的延迟。在一个实施例中,每个低通滤波器215、235是跟踪累计停止时间的简单的单极低通滤波器。具体来说,在一个实施例中,低通滤波器可实现以下等式以便产生等待时间值y:
yk=α.yk-1+xk(1-α)
式中,y是等待时间值,α是所选常数,k是时间点,以及x是停止位值。
因此,等待时间值y与平均停止率、即对于参考时间段停止线程的周期数量成正比,其中,那个参考时间段取决于常数α的选择。
对于实时线程,进度信息同样包含通过通路250输出的实时位,在这个情况下实时位设置为逻辑值一,以指示线程是实时线程,并且还包含通过通路260从计数器255输出的松弛值。具体来说,当实时线程输出访问请求时,计数器255设置成表示允许响应那个访问请求的时钟周期数量的某个预定值,然后随着每个时钟周期的过去,计数器递减,由此使松弛值随时间减少。
根据图5所示的各种进度信息,一个实施例的仲裁控制电路80则保存各线程的数据结构的表300,如图6所示。对于在字段305输入的线程ID所表示的每个线程,实时位、停止位的值、滤波器输出和松弛值分别存储在字段310、315、320、325中。如果对于特定线程仅提供信息的子集,则字段的一个或多个保留为空。例如,考虑实时线程,不存在停止位或滤波器输出。
仲裁控制电路80则使用优先级排序电路84、在考虑了与各线程相关联的数据结构的情况下生成进程的优先级排序列表。本领域的技术人员会理解,存在许多已知技术用于在被提供一系列数据结构时形成排序列表,并且这些进程往往包含迭代执行所选数据结构对的比较过程。一种这样的机制是公知的“冒泡排序”机制,它通过重复对于要排序的列表进行步进(stepping)、在某个时间比较两个数据结构并在它们处于错误顺序时进行交换来进行工作。通过列表的传递(pass)步骤重复进行,直到不需要交换为止,这表示列表被排序。
图7示意表示如何比较所选线程对(这里标记为线程X和Y)的数据结构,以便判定哪一个线程具有优先于另一个的优先级。因此,如图7所示,如果对于两个线程设置了实时位(即两个线程均为实时线程),则将优先级提供给具有最小松弛的线程,即,将优先级提供给具有最早截止期限的线程,这样一种优先化技术往往称作“最早截止期限优先”的优先化。但是,如果线程X是非实时线程而线程Y是实时线程,则如图7的右上角所示,如果线程Y的松弛时间大于预定值N,则将优先级提供给线程X。因此,大家会看到,不是将优先级自动提供给实时线程,而是在实时线程的松弛时间比较大时,将优先级提供给非实时线程,以便设法减少那个非实时线程的等待时间。这对于实时线程没有不利影响,因为只要在松弛时间到期之前为实时线程提供服务,就不会出现不利结果。
类似地,如果线程Y是非实时线程而线程X是实时线程,则如图7的左下侧所示,如果线程X的松弛时间大于预定值N,则将优先级提供给线程Y。
如果两个线程均为非实时线程,则判定过程如图7的右下侧所示。具体来说,首先考虑两个实时线程的停止位。如果两个线程的停止位均为零,指示没有停止任一个线程,则将优先级提供给具有最小松弛的线程,即提供给最快停止的线程。如果一个线程设置了停止位,而另一个没有设置,则将优先级提供给设置了停止位的线程,即,将优先级提供给已经停止的线程。最后,如果两个线程都设置了停止位,则将优先级提供给具有最高滤波器输出的线程,即对于参考时间段具有较高平均停止率的线程。
在一些实施例中,不需要让前面参照图5所述的进度信息的所有项全部出现。例如,在一些实施例中,松弛值对于非实时线程可能不可用。在那种情况下,如果考虑两个非实时线程,并且两个非实时线程都将停止位设置为等于零,则将优先级提供给具有最高滤波器输出的线程,即,如两个线程都将停止位设置为等于一时所应用的那样应用相同的优先化。
在一个实施例中,如果某些线程没有提供停止位,则假定设置了停止位,即具有逻辑值一。
图8示出根据一个实施例、由图1的仲裁控制电路80所执行的产生优先级排序列表的一般过程。在步骤400,准备线程的初始排序。在第一迭代中,这可以是任意排序,但是对于后续迭代,则初始排序很可能是该过程所产生的前一个排序。此后,该过程进入步骤405,在其中,选择一对线程,此后在步骤410,应用排序过程,稍后参照图9更详细地进行描述。排序过程实现前面参照图7示意表示的优先化方案。
此后,在步骤415,根据排序过程的结果来修正线程的排序,此后在步骤420,判定是否存在应当应用排序过程的更多线程对。在通过该过程的第一迭代中,情况通常是,线程对的每一个组合都需要经过排序过程。但是,在后续迭代中,根据进度信息的哪些特征已经改变以及哪些线程的进度信息已经改变,可以仅需要对所有可能的线程对的子集应用排序过程。如果在步骤420判定存在至少还有一对线程需要应用排序过程,则该过程返回到步骤405,而如果判定没有更多对需要经过排序过程,则该过程进入步骤425,在其中,将线程的修正排序作为优先级排序列表输出到通信信道40中的所有仲裁器。
应当注意,虽然为了便于说明而依次示出步骤405、410、415和420,但是,这些步骤实际上可并行执行,使得确定需要经过排序过程的所有对,然后并行应用排序过程,以便产生线程的修正排序。
图9是示出根据本发明的一个实施例、在图8的步骤410所执行的步骤的流程图。在步骤500,确定两个线程是否为实时线程,如果是,则在步骤505按照最早截止期限优先的原则对线程确定优先顺序。
如果在步骤500确定两个线程均不是实时的,则在步骤410确定线程之一是否为实时线程,以及如果是,则过程进入步骤515,在其中,如果实时线程的松弛大于预定值N,则将优先级提供给非实时线程。否则,实时线程优先。
如果在步骤510确定没有任一个线程是实时线程,则该过程进入步骤520,在其中,确定两个线程的停止位是否等于零,即,两个线程是否仍然剩余某个松弛。假定两个线程仍然具有某个松弛,则该过程进入步骤525,在其中,确定松弛值是否可用,如果是,则该过程进入步骤530,在其中,按照最早截止期限优先的原则对线程确定优先顺序,即,将优先级提供给具有最小松弛的线程。但是,如果在步骤525确定松弛值不可用,则该过程进入步骤535,在其中,将优先级提供给具有最高滤波器输出的线程。
如果在步骤520确定两个线程的停止位不等于零,则在步骤540确定线程之一的停止位是否等于零,即一个线程具有松弛。如果是,则该过程进入步骤545,在其中,将优先级提供给没有松弛的线程(即停止位等于一的线程)。
如果在步骤540确定没有任一个松弛值设置为零,即两个线程均被停止,则该过程进入步骤550,在其中,将优先级提供给具有最高滤波器输出的线程。
从图9的以上描述中,大家会看到,图9的过程实现图7示意性说明的选择标准。
在一个实施例中,通过将不同加权分配(attribute)给某些非实时线程,可优先于其它非实时线程来处理那些线程。实际上,可由对于运行非实时线程的各处理元件所提供的关联低通滤波器215、235来应用这些加权。因此,对于具有较高加权的进程,每当设置了停止位时,来自关联低通滤波器的输出等待时间值将比对于较低加权进程的情况增加更大数量。因此,如果在应用参照图7示意性说明的选择标准时,确定应当将优先级提供给具有最高滤波器输出的线程,则所有方面都相等,具有较高加权的线程将具有较高滤波器输出,并且优先于具有较低加权的线程。因此,通过对来自滤波器的输出进行加权,这提供了用于处理各种非实时线程的优先级的另一个灵活性。
大家会理解,本发明的实施例的上述技术设法减少施加到运行于主装置的各个线程的最大等待时间。这又成比例地增加各进程可进行有效工作的有用时钟周期的数量。因此,如果这提供比实际所需的更好的性能,则通过降低主装置或者由那些主装置共享的通信信道的工作性能等级,就有可能增加总等待时间。
具体来说,许多现代系统提供能量管理技术,它们通常通过改变系统中某些组件的频率和/或工作电压,可改变那些组件的性能等级。这种性能等级设定通常由系统中的能量管理控制器执行。
给定上述观测,在本发明的一个实施例中,各个主装置输出的进度数据的某些方面还作为输入被路由到这种能量管理控制器。图10示意表示这样一种实施例,并且从图10可看到,通过通路12、22、32输出的进度数据一部分还可作为输入分别通过通路602、604、606被路由到能量管理控制器600。在一个具体实施例中,将任何非实时线程输出的等待时间值路由到能量管理控制器600。可通过各种方式来使用这种信息。
例如,如果特定主装置的工作频率为每毫秒一千个周期,则等待时间值指示每毫秒存在一百个停止周期,则这表示主装置具有每毫秒九百个有效周期。如果那个主装置实际上仅需要每毫秒六百个有效周期就能符合要求地运行其进程,则提供给那个主装置的频率和/或工作电压可减小以节省能量,同时仍然提供那个主装置所需的每毫秒六百个有效周期。根据可改变性能等级的粒度,这个过程可单独对于每个主装置依次执行。
作为备选或附加的方案,如果通信信道40的性能等级可由能量管理控制器来改变,则能量管理控制器600可选择从各个主装置接收的最高等待时间值,并且在已经考虑那个最高值的情况下调整通信信道的性能等级。例如,这可使通信信道的工作频率能够减小,同时仍然确保在各个主装置上运行的进程可继续符合要求地工作。本质上,能量管理控制器可调整通信信道的时钟速度,以便力求达到系统以及其中运行的应用程序可接受的参考线程停止率。
本发明的上述实施例使QoS能够被自动确定并在线程之间分配,从而消除了预先知道要求的需要,其中的QoS动态适应线程之间的通信的变化。
本发明的实施例的QoS方案还可用于为通信信道实现提供参考性能等级。具体来说,它允许在组件、如存储控制器的体系结构中进行比较,其中,添加流水线级(stage)以实现这种类型的仲裁方案的成本可与访问存储控制器的所有线程的等待时间的附加周期的成本进行比较。
虽然本文描述了一个具体实施例,但是大家会理解,本发明不限于此,而且在本发明的范围之内可对它进行许多修改和添加。例如,可在不背离本发明的范围的前提下,进行以下从属权利要求的特征与独立权利要求的特征的各种组合。
Claims (20)
1.一种用于在通过通信信道路由的消息之间进行仲裁的数据处理装置,包括:
多个处理元件,每个处理元件用于运行需要向接收元件发出消息的进程;
在所述多个处理元件之间共享的通信信道,所述消息通过所述通信信道路由;
仲裁电路,用于执行在通过所述通信信道路由的多个消息之间进行仲裁的仲裁过程;
每个处理元件设置成发出在那个处理元件上运行的所述进程的进度数据,所述进度数据指示所述进程的等待时间暗示;以及
仲裁控制电路,响应来自每个处理元件的所述进度数据,在考虑了所述进度数据所指示的各进程的所述等待时间暗示的情况下执行优先级排序过程以便生成优先级排序数据,并将所述优先级排序数据输出给所述仲裁电路,以便控制所述仲裁过程。
2.如权利要求1所述的数据处理装置,其中,每个处理元件是连接到所述通信信道的主装置。
3.如权利要求2所述的数据处理装置,其中,每个消息是所述主装置其中之一发出的访问请求。
4.如权利要求1所述的数据处理装置,其中,各进程是程序线程,以及各处理元件运行单个程序线程。
5.如权利要求1所述的数据处理装置,其中,至少一个处理元件包括多个处理单元,每个处理单元运行一个程序线程。
6.如权利要求1所述的数据处理装置,其中,所述数据处理装置是芯片上系统。
7.如权利要求1所述的数据处理装置,其中,所述进度数据确定所述关联进程是实时进程还是非实时进程,对于实时进程,所述进度数据还确定指示处理那个实时进程发出的消息剩余的时间的至少一个松弛值,对于非实时进程,所述进度数据还确定指示对于预定时间与那个进程关联的等待时间的至少一个等待时间值。
8.如权利要求7所述的数据处理装置,还包括与运行非实时进程的各处理元件相关联的滤波器电路,所述滤波器电路以每个单位时间的等待时间的形式产生所述等待时间值。
9.如权利要求7所述的数据处理装置,其中,至少一个非实时进程具有与其关联的加权,并且在产生那个非实时进程的所述等待时间值时考虑那个加权。
10.如权利要求7所述的数据处理装置,还包括与运行实时进程的各处理元件关联的计数器电路,所述计数器电路产生所述松弛值。
11.如权利要求7所述的数据处理装置,其中,对于非实时进程,所述进度数据还确定用于确定那个进程是否停止的停止值。
12.如权利要求7所述的数据处理装置,其中,对于非实时进程,所述进度数据还确定指示用于在所述进程停止之前处理由那个进程发出的消息剩余的时间的松弛值。
13.如权利要求7所述的数据处理装置,其中,如果某个实时进程的所述松弛值指示用于处理由那个实时进程发出的消息剩余的时间大于预定阈值,则所述优先级排序过程对非实时进程提供优先于那个实时进程的优先级。
14.如权利要求7所述的数据处理装置,其中,所述优先级排序过程对具有较高等待时间值的非实时进程提供比具有较低等待时间值的非实时进程高的优先级。
15.如权利要求14所述的数据处理装置,其中,对于非实时进程,所述进度数据还确定用于确定那个进程是否停止的停止值,其中,对于具有不同停止值的两个非实时进程,所述优先级排序过程比将优先级提供给具有较高等待时间值的所述进程更优先地将优先级提供给停止值指示那个进程被停止的所述非实时进程。
16.如权利要求14所述的数据处理装置,其中,对于非实时进程,所述进度数据还确定指示用于在所述进程停止之前处理由那个进程发出的消息剩余的时间的松弛值,其中,对于具有不同松弛值的两个非实时进程,所述优先级排序过程比将优先级提供给具有较高等待时间值的所述进程更优先地将优先级提供给具有最小松弛的所述非实时进程。
17.如权利要求1所述的数据处理装置,还包括:
能量管理电路,用于控制所述多个处理元件的一个或多个处理元件的工作性能等级,所述能量管理电路可用于在确定所述工作性能等级时考虑那一个或多个处理元件发出的所述进度数据的至少一部分。
18.如权利要求17所述的数据处理装置,其中,所述进度数据确定所述关联进程是实时进程还是非实时进程,对于实时进程,所述进度数据还确定指示处理由那个实时进程发出的消息剩余的时间的至少一个松弛值,对于非实时进程,所述进度数据还确定指示对于预定时间与那个进程关联的等待时间的至少一个等待时间值,其中,所述进度数据的至少一部分包括由运行非实时进程的一个或多个处理元件输出的所述等待时间值。
19.一种在通过具有多个处理元件的数据处理装置的通信信道路由的消息之间进行仲裁的方法,各处理元件运行需要向接收元件发出消息的进程,以及所述通信信道在所述多个处理元件之间共享,所述消息通过所述通信信道路由,所述方法包括:
从每个处理元件发出在那个处理元件上运行的所述进程的进度数据,所述进度数据指示所述进程的等待时间暗示;
响应来自各处理元件的所述进度数据,在考虑了所述进度数据所指示的各进程的所述等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据;以及
执行在通过所述通信信道路由的多个消息之间进行仲裁的仲裁过程,所述优先级排序数据用来控制所述仲裁过程。
20.一种用于数据处理装置的仲裁控制电路,所述数据处理装置包括:多个处理元件,各处理元件运行需要向接收元件发出消息的进程;在所述多个处理元件之间共享的通信信道,所述消息通过所述通信信道路由;以及仲裁电路,用于执行在通过所述通信信道路由的多个消息之间进行仲裁的仲裁过程,所述仲裁电路包括:
输入接口,用于从每个处理元件接收在那个处理元件上运行的所述进程的进度数据,所述进度数据指示所述进程的等待时间暗示;
优先级排序电路,响应来自各处理元件的所述进度数据,在考虑了所述进度数据所指示的各进程的所述等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据;以及
输出接口,用于将所述优先级排序数据输出给所述仲裁电路,以便控制所述仲裁过程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0705519A GB2447688B (en) | 2007-03-22 | 2007-03-22 | A data processing apparatus and method for arbitrating between messages routed over a communication channel |
GB0705519.7 | 2007-03-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101271438A true CN101271438A (zh) | 2008-09-24 |
Family
ID=38024647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100873750A Pending CN101271438A (zh) | 2007-03-22 | 2008-03-20 | 用于在消息之间进行仲裁的数据处理装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7769936B2 (zh) |
JP (1) | JP2008234659A (zh) |
CN (1) | CN101271438A (zh) |
GB (1) | GB2447688B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165408A (zh) * | 2008-09-29 | 2011-08-24 | 国际商业机器公司 | 用于确定数据的再调用顺序的装置、方法以及程序 |
CN102812447A (zh) * | 2010-03-24 | 2012-12-05 | 富士通株式会社 | 数据传输装置以及数据传输方法 |
CN103218327A (zh) * | 2013-04-28 | 2013-07-24 | 惠州市德赛西威汽车电子有限公司 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452907B2 (en) | 2007-03-27 | 2013-05-28 | Arm Limited | Data processing apparatus and method for arbitrating access to a shared resource |
FR2935056A1 (fr) * | 2008-08-14 | 2010-02-19 | St Microelectronics Rousset | Systeme de traitement de donnees disposant de moyens de traitement repartis pour exploiter des latences intrinseques du systeme |
JP2012128627A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | データ転送システム |
KR101855399B1 (ko) * | 2011-03-24 | 2018-05-09 | 삼성전자주식회사 | 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 |
US8490107B2 (en) | 2011-08-08 | 2013-07-16 | Arm Limited | Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels |
US9189050B1 (en) * | 2011-08-19 | 2015-11-17 | Cadence Design Systems, Inc. | Method and apparatus for memory power reduction |
US9367498B2 (en) * | 2011-09-14 | 2016-06-14 | Panasonic Intellectual Property Management Co., Ltd. | Resource request arbitration device, resource request arbitration system, resource request arbitration method, integrated circuit, and program |
US9396146B1 (en) * | 2012-06-18 | 2016-07-19 | Marvell International Ltd. | Timing-budget-based quality-of-service control for a system-on-chip |
US8848577B2 (en) | 2012-09-24 | 2014-09-30 | Apple Inc. | Bandwidth management |
CN103729329B (zh) * | 2012-10-12 | 2018-01-19 | 深圳市中兴微电子技术有限公司 | 核间通信装置及方法 |
JP6201591B2 (ja) * | 2013-09-30 | 2017-09-27 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
CN104951414B (zh) * | 2014-03-24 | 2018-10-12 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
US9740513B2 (en) * | 2014-06-05 | 2017-08-22 | Futurewei Technologies, Inc. | System and method for real time virtualization |
CN108200149B (zh) * | 2017-12-29 | 2021-01-05 | 神华集团有限责任公司 | 机车图像仲裁装置 |
JP7114515B2 (ja) * | 2019-03-14 | 2022-08-08 | 国立大学法人東海国立大学機構 | 通信装置、通信システム及びメッセージ調停方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03252241A (ja) * | 1990-03-01 | 1991-11-11 | Toshiba Corp | パケット交換網における呼接続制御法 |
US5956493A (en) * | 1996-03-08 | 1999-09-21 | Advanced Micro Devices, Inc. | Bus arbiter including programmable request latency counters for varying arbitration priority |
US5802330A (en) * | 1996-05-01 | 1998-09-01 | Advanced Micro Devices, Inc. | Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms |
US6006303A (en) * | 1997-08-28 | 1999-12-21 | Oki Electric Industry Co., Inc. | Priority encoding and decoding for memory architecture |
JP2000148668A (ja) * | 1998-11-11 | 2000-05-30 | Nec Niigata Ltd | バス調停システム |
US6701397B1 (en) * | 2000-03-21 | 2004-03-02 | International Business Machines Corporation | Pre-arbitration request limiter for an integrated multi-master bus system |
EP1170669B1 (en) * | 2000-07-05 | 2006-03-29 | STMicroelectronics S.r.l. | Arbitration method and circuit architecture therefor |
US20050144401A1 (en) * | 2003-12-30 | 2005-06-30 | Pantalone Brett A. | Multiprocessor mobile terminal with shared memory arbitration |
US7227847B2 (en) * | 2004-03-11 | 2007-06-05 | Ixi Mobile (R&D) Ltd. | Power management system and method for a wireless communications device |
JP4689257B2 (ja) * | 2004-12-13 | 2011-05-25 | 三菱電機株式会社 | バス制御装置および情報処理システム |
US7263566B2 (en) * | 2004-12-30 | 2007-08-28 | Qualcomm Incorporated | Method and apparatus of reducing transfer latency in an SOC interconnect |
KR100784385B1 (ko) * | 2005-08-10 | 2007-12-11 | 삼성전자주식회사 | 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법 |
-
2007
- 2007-03-22 GB GB0705519A patent/GB2447688B/en active Active
-
2008
- 2008-03-05 US US12/073,403 patent/US7769936B2/en active Active
- 2008-03-20 CN CNA2008100873750A patent/CN101271438A/zh active Pending
- 2008-03-21 JP JP2008073156A patent/JP2008234659A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102165408A (zh) * | 2008-09-29 | 2011-08-24 | 国际商业机器公司 | 用于确定数据的再调用顺序的装置、方法以及程序 |
US8732393B2 (en) | 2008-09-29 | 2014-05-20 | International Business Machines Corporation | Apparatus, method and program product for determining the data recall order |
US9104318B2 (en) | 2008-09-29 | 2015-08-11 | International Business Machines Corporation | Apparatus, method and program product for determining the data recall order |
US9477411B2 (en) | 2008-09-29 | 2016-10-25 | International Business Machines Corporation | Apparatus, method and program product for determining the data recall order |
CN102812447A (zh) * | 2010-03-24 | 2012-12-05 | 富士通株式会社 | 数据传输装置以及数据传输方法 |
US9015369B2 (en) | 2010-03-24 | 2015-04-21 | Fujitsu Limited | Data transferring apparatus and data transferring method |
CN102812447B (zh) * | 2010-03-24 | 2016-04-27 | 富士通株式会社 | 数据传输装置以及数据传输方法 |
CN103218327A (zh) * | 2013-04-28 | 2013-07-24 | 惠州市德赛西威汽车电子有限公司 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
CN103218327B (zh) * | 2013-04-28 | 2016-08-10 | 惠州市德赛西威汽车电子股份有限公司 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
Also Published As
Publication number | Publication date |
---|---|
GB0705519D0 (en) | 2007-05-02 |
GB2447688B (en) | 2011-05-18 |
US20080235423A1 (en) | 2008-09-25 |
JP2008234659A (ja) | 2008-10-02 |
US7769936B2 (en) | 2010-08-03 |
GB2447688A (en) | 2008-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101271438A (zh) | 用于在消息之间进行仲裁的数据处理装置和方法 | |
CN102823214B (zh) | 知晓性能和话务的异类性互联网络 | |
CN102023890B (zh) | 一种用于设置事务优先级的数据处理装置和方法 | |
US10291416B2 (en) | Network traffic tuning | |
US8817619B2 (en) | Network system with quality of service management and associated management method | |
JP5552196B2 (ja) | 中継装置、中継装置の制御方法、およびコンピュータプログラム | |
US7394808B2 (en) | Method and apparatus for implementing scheduling algorithms in a network element | |
CN109743144A (zh) | 基于时间触发以太网的静态调度表生成方法、航电系统 | |
CN105468546B (zh) | 互连电路的数据处理装置和方法 | |
Shi et al. | Real-time communication analysis with a priority share policy in on-chip networks | |
US10983910B2 (en) | Bandwidth weighting mechanism based network-on-chip (NoC) configuration | |
KR100905802B1 (ko) | 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘 | |
Chen et al. | ArSMART: An improved SMART NoC design supporting arbitrary-turn transmission | |
Sharifi et al. | Feedback control for providing QoS in NoC based multicores | |
JP2009080853A (ja) | システム電源モード制御のためのパケット交換 | |
US8811387B2 (en) | Dynamically reconfigurable hybrid circuit-switched and packet-switched network architecture | |
Sahoo et al. | Deterministic dynamic network-based just-in-time delivery for distributed edge computing | |
Murray et al. | Dual-level DVFS-enabled millimeter-wave wireless NoC architectures | |
US9323703B2 (en) | Facilitating resource use in multicyle arbitration for single cycle data transfer | |
US20230236651A1 (en) | Performance level control in a data processing apparatus | |
JP4684031B2 (ja) | バス・システム、バス管理装置、ノード装置、およびバス管理装置用のプログラム | |
Kostrzewa et al. | Supporting dynamic voltage and frequency scaling in networks-on-chip for hard real-time systems | |
US20240056400A1 (en) | Time synchronized collective communication | |
Tobuschat et al. | Selective congestion control for mixed-critical networks-on-chip | |
JP2007164713A (ja) | リソース管理装置及びリソース管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080924 |