CN110059043A - 数据处理器及用于控制数据处理器的方法 - Google Patents

数据处理器及用于控制数据处理器的方法 Download PDF

Info

Publication number
CN110059043A
CN110059043A CN201811512155.8A CN201811512155A CN110059043A CN 110059043 A CN110059043 A CN 110059043A CN 201811512155 A CN201811512155 A CN 201811512155A CN 110059043 A CN110059043 A CN 110059043A
Authority
CN
China
Prior art keywords
circuit
request data
bus
priority
data packet
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.)
Granted
Application number
CN201811512155.8A
Other languages
English (en)
Other versions
CN110059043B (zh
Inventor
小池学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN110059043A publication Critical patent/CN110059043A/zh
Application granted granted Critical
Publication of CN110059043B publication Critical patent/CN110059043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Memory System (AREA)

Abstract

本公开的实施例涉及数据处理器及用于控制数据处理器的方法。提供了一种能够在总线访问期间抑制延迟变化的数据处理器。根据一个实施例的数据处理器包括环形总线,多个中继电路被耦合为环状,这些中继电路通过该环形总线耦合至多个总线主机和多个从机。每个中继电路包括:仲裁电路,利用作为相邻中继电路的相邻请求数据包的优先级和最近总线主机的总线请求数据包的优先级来仲裁这些请求数据包,并将仲裁之后的请求数据包输出至下一中继电路;以及优先级调整电路,根据总线请求数据包在到达其目的地之前经过的中继电路的数量来调整总线请求数据包的优先级。

Description

数据处理器及用于控制数据处理器的方法
相关申请的交叉参考
2017年12月21日提交的日本专利申请第2017-244905号的公开说明书、附图和摘要的公开通过引用引入本文。
技术领域
本公开涉及一种数据处理器及用于控制数据处理器的方法,例如,本发明涉及具有环形总线的数据处理器以及用于控制数据处理器的方法。
背景技术
近年来,数据处理设备在高性能和功能方面已经越来越先进。因此,数据处理设备中包括的总线主机的数量和从机的数量趋于增加。因此,用于耦合总线主机和从机的布线数量不断增加,并且为了缓和这种问题,布线集中已成为需要解决的重要问题。例如,使用用于耦合多个总线主机和多个从机的环形总线拓扑可以比使用星形拓扑更能缓解布线集中。
专利文献1公开了一种与数据传输***相关的技术,包括:多个中继设备,耦合至环形总线;以及适配器,用于控制每个中继设备和节点之间的接口。
[专利文献]
[专利文献1]日本未审查专利申请公开第59(1984)-107664号
发明内容
如上所述,使用用于耦合总线总计和从机的环形总线拓扑比使用星形总线拓扑更能缓解布线集中。
然而,在使用环形总线拓扑来耦合总线主机和从机的情况下,与使用星形总线拓扑的情况相比,在总线访问的延迟(latency)中出现的变化更大。即,如果使用环形总线,则当每个总线主机访问每个从机时,环形总线的距离发生变化,引起总线访问的延迟变化。
本发明的其他目的和新颖特征将从本说明书和附图的描述中而变得明显。
根据一个实施例的数据处理器包括环形总线,通过该环形总线,多个中继电路被耦合为环状。当仲裁相邻请求数据包是相邻中继电路的请求数据包且总线请求数据包是最近总线主机的请求数据包时,利用相邻请求数据包的优先级和总线请求数据包的优先级,中继电路根据总线请求数据包在到达其目的地之前经过的中继电路的数量来调整总线请求数据包的优先级。
根据上述一个实施例,可以提供能够抑制总线访问的延迟的变化的数据处理器以及用于控制该数据处理器的方法。
附图说明
图1是示出根据实施例1的数据处理器的配置示例的框图;
图2是示出包括在根据实施例1的数据处理器中的中继电路的配置示例的框图;
图3是示出包括在中继电路中的仲裁部的配置示例的框图;
图4是示出包括在中继电路中的仲裁部的配置示例的框图;
图5是示出包括在优先级调整电路中的表格示例的表格;
图6示出了根据实施例1的数据处理器中使用的请求数据包的配置示例;
图7是用于解释根据实施例1的数据处理器的操作的流程图;
图8是示出根据实施例2的数据处理器的配置示例的框图;
图9是示出包括在根据实施例3的数据处理器中的缓冲电路的配置示例的框图;
图10是示出根据实施例4的数据处理器的配置示例的框图;以及
图11是示出根据实施例5的数据处理器的配置示例的框图。
具体实施方式
<实施例1>
下面,将参照附图解释实施例1。图1是示出根据实施例1的数据处理器的配置示例的框图。如图1所示,数据处理器1包括多个总线主机11_0-11_9、多个中继电路12_0-12_9以及多个从机13_0-13_9。
中继电路12_0-12_9中的每一个都耦合至总线主机11_0-11_9的每一个以及从机13_0-13_9的每一个。中继电路12_0-12_9经由环形总线15被耦合为环状。因此,总线主机11_0-11_9中的每一个都可以经由中继电路12_0-12_9中的每一个以及环形总线15访问从机13_0-13_9中的每一个。
例如,总线主机11_0-11_9中的每一个都是处理器(诸如CPU(中央处理单元)),并且能够向从机13_0-13_9中的每一个发送预定的请求数据包。例如,从机13_0-13_9中的每一个都是存储电路,诸如闪存和SRAM(静态随机存取存储器)。对应于来自总线主机11_0-11_9中的每一个的请求,从机13_0-13_9中的每一个都可以存储从总线主机发送的数据,并且还可以将存储在每个从机13_0-13_9中的数据发送给总线主机。此外,总线主机11_0-11_9和从机13_0-13_9的配置不限于上述那些配置,而是用户可以根据数据处理器1的预期用途任意地设计它们。
如此,环形总线15被配置为能够沿着一个方向(在图1中为顺时针方向)传送数据。当访问从机13_0-13_9中的每一个时,总线主机11_1向与总线主机11_1直接耦合的中继电路12_1发送通过预定总线协议描述的请求数据包41_1(以下有时简称为“请求41_1”)。中继电路12_1使用包括在请求数据包41_1中的目的地的地址向从机13_1或下一个中继电路12_2发送请求数据包。
例如,当请求数据包41_1中包含的目的地的地址指示从机13_1时,中继电路12_1向从机13_1发送请求数据包42_1。另一方面,当请求数据包41_1中包含的目的地的地址指示从机13_0和13_2-13_9中的一个时,中继电路12_1向下一个中继电路12_2发送请求数据包51_1。
例如,当总线主机11_1访问从机13_8时,即,请求数据包41_1中包含的目的地的地址指示从机13_8时,从总线主机11_1输出的请求数据包41_1经由以适当顺序耦合至环形总线15的中继电路12_1-12_8发送至从机13_8。
在从总线主机11_1接收到请求数据包时,从机13_8经由单独设置的环形总线和中继电路(图1中未示出)向总线主机11_1发送响应数据包(数据等)。
顺便提及,在本实施例中,将讨论总线主机11_0-11_9向相应的从机13_0-13_9发送请求数据包的情况。将在实施例5中讨论从机13_0-13_9将响应数据包返回到相应的总线主机11_0-11_9的情况(参见图11)。
此外,在图1所示的数据处理器1中,作为一个示例,提供了10个总线主机11_0-11_9、10个中继电路12_0-12_9和10个从机13_0-13_9。然而,根据本实施例,可以任意地确定包括在数据处理器1中的总线主机的数量、中继电路的数量和从机的数量。
在根据本实施例的数据处理器1中,除了来自总线主机11_1的请求数据包41_1之外,来自相邻中继电路12_0(即,紧接在之前的中继电路)的请求数据包51_0被提供给中继电路12_1。当作为相邻中继电路12_0的请求数据包的相邻请求数据包51_0与最近的总线主机11_1的请求数据包的总线请求数据包41_1彼此冲突时,中继电路12_1仲裁相邻请求数据包51_0和总线请求数据包41_1,并且在仲裁之后将请求数据包输出至从机13_1或下一个中继电路12_2。此时,利用相邻请求数据包51_0的优先级和总线请求数据包41_1的优先级,中继电路12_1仲裁相邻请求数据包51_0和总线请求数据包41_1。
图6示出了根据本实施例的数据处理器1中使用的请求数据包的配置示例。如图6所示,请求数据包80包括地址81、优先级82、主机ID(83)、数据包ID(84)和数据85。地址81是数据包80的目的地的地址。优先级82指示请求数据包80的优先级,即,在环形总线15内传送请求数据包80时的优先级。中继电路12_0-12_9对请求数据包给出优先级并传送优先级更高的请求数据包。主机ID(83)是用于指定发送请求数据包80的总线主机11_0-11_9的ID。数据包ID(84)是用于指定请求数据包80本身的ID。数据85可以是任何数据,诸如图像数据和音频数据。此外,在请求数据包80中,存在不包含数据85的一些请求数据包。
例如,当总线主机11_1读取存储在从机13_8(例如,闪存)中的数据时,总线主机11_1向从机13_8发送请求数据包80。数据85不包含在此时发送的请求数据包80中。另一方面,当总线主机11_1在从机13_8(例如,闪存)中存储数据时,总线主机11_1将包括数据85的请求数据包80发送至从机13_8。
接下来,将讨论中继电路12_0-12_9的配置示例。图2是示出根据本实施例的数据处理器1中包括的中继电路12_1的配置示例的框图。作为一个示例,图2示出了中继电路12_1的配置示例。然而,其它中继电路12_0和12_2-12_9具有相似的结构。
如图2所示,中继电路12_1包括地址解码器21、仲裁部22、缓冲电路23、地址解码器31、仲裁部32和缓冲电路33。
地址解码器21被配置为能够接收从总线主机11_1发送的请求数据包41_1中包含的有效信号(Mst.valid)和地址(Mst.address)。当有效信号有效时(Mst.valid=1),地址解码器21对接收到的地址(Mst.address)进行解码。然后,根据解码的地址,地址解码器21向仲裁部22或仲裁部32发送请求数据包41_1的有效信号(Mst.valid)和优先级(Mst.priority)。例如,当解码的地址指示从机13_1时,地址解码器21向仲裁部22发送请求数据包41_1的有效信号(Mst.valid)和优先级(Mst.priority)。另一方面,当解码的地址指示从机13_0和13_2-13_9中的一个时,地址解码器21向仲裁部32发送请求数据包41_1的有效信号(Mst.valid)和优先级(Mst.priority)。此外,为了方便,有时将从总线主机11_1访问中继电路12_1称为“垂直访问”。
地址解码器31被配置为能够接收包含在从相邻中继电路12_0(即,紧接在之前的中继电路)发送的请求数据包51_0中的有效信号(Adj.valid)和地址(Adj.address)。当地址解码器31具有有效信号(Adj.valid=1)时,地址解码器31对接收到的地址(Adj.address)进行解码。然后,根据如此解码的地址,地址解码器31向仲裁部22或仲裁部32发送请求数据包51_0的有效信号(Adj.valid)和优先级(Adj.priority)。例如,当解码的地址指示从机13_1时,地址解码器31向仲裁部22发送请求数据包51_0的有效信号(Adj.valid)和优先级(Adj.priority)。另一方面,当解码的地址指示从机13_2-13_9中的一个时,地址解码器31向仲裁部32发送请求数据包51_0的有效信号(Adj.valid)和优先级(Adj.priority)。此外,为了方便,有时将从相邻中继电路12_0对中继电路12_1的访问称为“水平访问”。
当针对从机13_1的请求数据包彼此冲突时,仲裁部22对这些请求数据包进行仲裁。具体地,当总线主机11_1的请求数据包41_1与相邻中继电路12_0的请求数据包51_0冲突时,仲裁部22仲裁请求数据包41_1和请求数据包51_0,并在仲裁之后将请求数据包发送至缓冲电路23。即,当从地址解码器21提供的有效信号(Mst.valid)和从地址解码器31提供的有效信号(Adj.valid)在相同的定时处变得有效时(Mst.valid=1且Adj.valid=1),仲裁部22仲裁请求数据包41_1和请求数据包51_0,并将仲裁后的请求数据包发送至缓冲电路23。此时,仲裁部22使用请求数据包41_1的优先级和请求数据包51_0的优先级来仲裁请求数据包41_1和请求数据包51_0。
在暂时保持从仲裁部22输出的请求数据包之后,缓冲电路23向从机13_1输出请求数据包42_1。例如,缓冲电路23是FIFO(先进先出)***的缓冲电路,并且可以使用多个触发器电路来配置。触发器电路与时钟信号同步操作。如上所述进行配置,缓冲电路23可以暂时保持多个请求数据包。
当缓冲电路23具有空位并且能够接收从仲裁部22输出的请求数据包时,缓冲电路23向仲裁部22发送指示关于经仲裁的请求数据包的接收能力的信号(称为“就绪”或“准予”)。另一方面,当缓冲电路23没有空位时,缓冲电路23向仲裁部22发送拒绝接受下一个请求数据包的握手信号。在这种情况下,并未建立握手,并且拒绝接收请求数据包。
此外,当接收到来自从机13_1的指示接收能力的信号(“就绪”或“准予”)时,缓冲电路23将保持在缓冲电路23中的请求数据包发送至从机13_1。
图3是示出图2所示仲裁部22的结构示例的框图。如图3所示,仲裁部22包括仲裁电路61和选择电路62。仲裁电路61被配置为能够从地址解码器21接收包含在总线主机11_1的请求数据包41_1中的有效信号(Mst.valid)和优先级(Mst.priority)。此外,仲裁电路61被配置为能够从地址解码器31接收包含在相邻中继电路12_0的请求数据包51_0中的有效信号(Adj.valid)和优先级(Adj.priority)。
当总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0彼此冲突时,仲裁电路61仲裁请求数据包41_1和请求数据包51_0,并将仲裁结果输出至选择电路62。即,当从地址解码器21提供的有效信号(Mst.valid)和从地址解码器31提供的有效信号(Adj.valid)在相同的定时处变得有效时(Mst.valid=1且Adj.valid=1),仲裁电路61仲裁请求数据包41_1和请求数据包5,并将仲裁结果输出至选择电路62。
此时,仲裁电路61使用请求数据包41_1的优先级(Mst.priority)和请求数据包51_0的优先级(Adj.priority)来仲裁请求数据包41_1和请求数据包51_0。例如,通过数值示出每个优先级(Mst.priority/Adj.priority),并且被设置为使得优先级的值越大,优先级就越高。例如,可以使用0和15之间的值来设置优先级。在这种情况下,优先级为15的请求数据包是具有最高优先级的请求数据包。
仲裁电路61将请求数据包41_1的优先级(Mst.priority)与请求数据包51_0的优先级(Adj.priority)进行比较,并且选择优先级值较大的请求数据包。关于所选请求数据包的信息被作为仲裁结果输出至选择电路62。此外,当请求数据包41_1的优先级(Mst.priority)和请求数据包51_0的优先级(Adj.priority)具有相同值时,通过使用LRU(最近最少使用)方法等,仲裁电路61选择两个访问中的一个。
选择电路62接收总线主机11_1的请求数据包(Mst.packet)41_1和相邻中继电路12_0的请求数据包(Adj.packet)51_0。然后,根据仲裁电路61的仲裁结果,选择电路62输出请求数据包(Mst.packet)41_1和请求数据包(Adj.packet)51_0中的一个作为所选择的数据包。所选择的请求数据包被输出至图2所示的缓冲电路23。
当针对下一个中继电路12_2的请求数据包相互冲突时,图2所示的仲裁部32对这些请求数据包进行仲裁。具体地,当总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0彼此冲突时,仲裁部32在请求数据包41_1和请求数据包51_0之间进行仲裁,并将仲裁之后的请求数据包发送至缓冲电路33。即,当从地址解码器21提供的有效信号(Mst.valid)和从地址解码器31提供的有效信号(Adj.valid)在相同的定时处变得有效时(Mst.valid=1且Adj.valid=1),仲裁部32仲裁请求数据包41_1和请求数据包51_0,并且将仲裁后的请求数据包发送至缓冲电路23。此时,仲裁部22使用请求数据包41_1的优先级和请求数据包51_0的优先级来仲裁请求数据包41_1和请求数据包51_0。
此外,仲裁部32包括优先级调整电路,其根据总线主机11_1的请求数据包41_1的目的地来调整请求数据包41_1的优先级。具体地,优先级调整电路根据总线主机11_1的请求数据包41_1在到达其目的地之前经过的中继电路12_0-12_9的数量来调整请求数据包41_1的优先级。稍后将描述优先级调整电路的细节。
缓冲电路33在暂时保持从仲裁部32输出的请求数据包之后将请求数据包51_1输出至下一中继电路12_2。例如,缓冲电路33包括多个触发器电路,并且触发器电路与时钟信号同步操作。通过上述配置,缓冲电路33可以暂时保持请求数据包。
当缓冲电路33具有空位并且能够接收从仲裁部32输出的请求数据包时,缓冲电路33向仲裁部32发送表明其可以接受仲裁后的请求数据包的信号(称为“就绪”或“准予”)。另一方面,当缓冲电路33不具有任何空位时,其向仲裁部32发送拒绝接收下一个请求数据包的握手信号。在这种情况下,由于没有建立握手,所以拒绝接收请求数据包。
此外,当从下一中继电路12_2接收到表示接受能力的信号(“就绪”或“准予”)时,缓冲电路33将保持在缓冲电路33中的请求数据包发送至下一中继电路12_2。
图4是示出图2所示仲裁部32的结构示例的框图。如图4所示,仲裁部32包括仲裁电路71、选择电路72和优先级调整电路73。仲裁电路71被配置为能够从地址解码器21接收包含在总线主机11_1的请求数据包41_1中的有效信号(Mst.valid)。此外,仲裁电路71被配置为能够从优先级调整电路73接收优先级调整电路73中调整的请求数据包41_1的优先级(Mod.priority)。另外,作为优先级(Mod.priority),优先级调整电路73输出与没有调整请求数据包41_1的优先级(Mst.priority)时相同的优先级(Mst.priority)。此外,仲裁电路71被配置为能够从地址解码器31接收包含在相邻中继电路12_0的请求数据包51_0中的有效信号(Adj.valid)和优先级(Adj.priority)。
当总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0相互冲突时,仲裁电路71仲裁请求数据包41_1和请求数据包51_0,并将仲裁结果输出至选择电路72。即,当从地址解码器21提供的有效信号(Mst.valid)和从地址解码器31提供的有效信号(Adj.valid)在相同的定时处变得有效时(Mst.valid=1且Adj.valid=1),仲裁电路71仲裁请求数据包41_1和请求数据包51_0,并将仲裁结果输出至选择电路72。
此时,使用在优先级调整电路73中调整的请求数据包41_1的优先级(Mod.priority)(当没有调整时为优先级(Mst.priority))和请求数据包51_0的优先级(Adj.priority),仲裁电路71对请求数据包41_1和请求数据包51_0进行仲裁。
仲裁电路71对请求数据包41_1的优先级(Mod.priority)和从优先级调整电路73提供的请求数据包51_0的优先级(Adj.priority)进行比较,并且选择优先级值较大的请求数据包。关于所选请求数据包的信息被作为仲裁结果输出至选择电路72。
选择电路72接收总线主机11_1的请求数据包(Mst.packet)41_1和相邻中继电路12_0的请求数据包(Adj.packet),并且根据仲裁电路71的仲裁结果输出请求数据包(Mst.packet)41_1和请求数据包(Adj.packet)中的一个作为所选请求数据包(所选数据包)。所选请求数据包被输出至图2所示的缓冲电路33。
接下来,将详细解释优先级调整电路73。优先级调整电路73根据总线主机11_1的请求数据包41_1在到达目的地之前经过的中继电路12_0-12_9的数量来调整请求数据包41_1的优先级。具体地,优先级调整电路73如此调整,使得当总线主机11_1的请求数据包41_1在仲裁电路71中被拒绝的次数超过预定值时,总线主机11_1的请求数据包41_1的优先级(Mst.priority)更高。此时,设置预定阈值,使得总线主机11_1的请求数据包41_1在到达目的地之前经过的中继电路12_0-12_9的数量越多,预定阈值就越小。此外,当在优先级调整电路73中不调整请求数据包41_1的优先级(Mst.priority)时,优先级调整电路73将优先级(Mst.priority)作为优先级(Mod.priority)输出至仲裁电路71。
如图4所示,优先级调整电路73包括表格75、比较电路76、加法电路77和计数器78。
表格75存储预定阈值。
图5是示出包括在优先级调整电路中的表格75的一个示例的表格,并且示出了预定阈值的设置的示例。图5示出了包括在中继电路12_1中的表格75(查找表)的一个示例以及在调整总线主机11_1的请求数据包41_1的优先级时使用的预定阈值的一个示例。
如图5所示,设置预定阈值,使得总线主机11_1的请求数据包41_1在到达其目的地之前经过的中继电路的数量越多(即,越远离目的地),预定阈值就越小。例如,当总线主机11_1的访问目的地是离总线主机11_1最近的从机13_1时,预定阈值变为最大值“9”。此外,当总线主机11_1的访问目的地是离总线主机11_1最远的从机13_0时(即,由于环形总线15顺时针地传送数据,所以从机13_0是最远的),预定阈值变为最小值“0”。此外,当总线主机11_1的访问目的地是从机13_2-13_9时,总线主机11_1的访问目的地越远(即,通过的中继电路的数量越多),预定阈值按适当顺序就变得越小,诸如8、7、…、1。
预定阈值对应于总线主机11_1的请求数据包41_1在图4中的仲裁电路71中被拒绝的允许次数(以下也称为“失败次数”)。因此,当总线主机11_1的访问目的地是离总线主机11_1最近的从机13_1时,由于访问目的地是最近的,所以允许最大次数地拒绝请求数据包41_1。另一方面,当总线主机11_1的访问目的地是离总线主机11_1最远的从机13_0时,由于访问目的地是最远的,因此总线主机的请求数据包41_1的允许失败次数变得最小。即,通过以这种方式设置预定阈值,具有远程访问目的地的请求数据包可以被优先放入环形总线15。
当提供示出总线主机11_1的请求数据包41_1的访问目的地的地址(Mst.address)(对应于访问目的地的从机的地址)时,表格75向比较电路76输出与地址(Mst.address)对应的预定阈值。此外,可以任意地设置存储在表格中的预定阈值。例如,该配置可以为使得表格75包括电阻器,并且可以通过使用CPU等来重写存储在电阻器中的预定阈值。
仲裁电路71的仲裁结果被提供给计数器78。计数器78对总线主机11_1的请求数据包41_1在仲裁电路71中被拒绝的次数(失败次数)进行计数,并将计数值输出至比较电路76。
比较电路76将从计数器78提供的计数值(即,总线主机11_1的请求数据包41_1被拒绝的次数(失败次数))与从表格75提供的预定阈值进行比较,并将比较结果输出至加法电路77。
当总线主机11_1的请求数据包41_1被拒绝的次数(失败次数)超过预定阈值时,比较电路76将加法使能信号输出至加法电路72作为比较结果。当提供加法使能信号时,加法电路77向请求数据包41_1的优先级(Mst.priority)添加预定值以调整优先级,并将调整后的优先级(Mod.priority)输出至仲裁电路71。
另一方面,当总线主机11_1的请求数据包41_1被拒绝的次数(失败次数)低于预定阈值时,比较电路76将加法禁用信号输出至加法电路77作为比较结果。当提供加法禁用信号时,加法电路77将优先级(Mst.priority)作为优先级(Mod.priority)输出至仲裁电路71,而不将预定值添加到请求数据包41_1的优先级(Mst.priority)。
在根据本实施例的数据处理器1中,优先级的值被设置为预定范围内的数值。用户可以任意地确定在加法电路77中添加的预定值。例如,在加法电路77中添加的预定值被存储在加法电路77中包括的电阻器(未示出)中,并且用户可以通过重写存储在电阻器中的值来改变将要添加的预定值。
此外,当将预定值添加到优先级时,加法电路77进行相加,使得该值可以不超过优先级的设置范围的上限。例如,当数据处理器1的优先级在值0和15之间进行设置时,加法电路77进行调整,使得调整后的优先级(Mod.priority)的值可以不超过“15”。即,加法电路77可以被配置为具有保护处理功能的加法电路。
仲裁电路71将在优先级调整电路73中调整的请求数据包41_1的优先级(Mod.priority)与请求数据包51_0的优先级(Adj.priority)进行比较,并将仲裁结果输出至选择电路72和计数器78。当总线主机11_1的请求数据包41_1在仲裁电路71中被拒绝时,计数器78在当前失败次数上加“1”。增加的失败次数(即,计数器78的计数值)被输出至比较器76。
接下来,参考图7所示的流程图,将讨论优先级调整电路73的操作。在下文描述的优先级调整电路73的操作中,将总线主机11_1向从机13_3发送请求数据包41_1的情况解释为一个示例。关于这点,每个请求数据包的优先级在“0”和“15”之间进行设置。此外,总线主机11_1的请求数据包41_1的优先级(Mst.priority)是“10”。进一步地,加法电路77一次添加的值被设置为“2”。进一步地,相邻中继电路12_0的请求数据包51_0的优先级(Adj.priority)被设置为“11”。此外,相邻中继电路12_0的请求数据包51_0的优先级(Adj.priority)根据仲裁电路71接收的请求数据包51_0而变化。然而,在下面的讨论中,为了简单,请求数据包51_0的优先级(Adj.priority)被固定为“11”。
首先,初始化图4所示的优先级调整电路73(步骤S1)。此时,计数器78的计数值(即,失败次数)被设置为“0”。
随后,当从总线主机11_1向中继电路12_1发送请求数据包41_1时,包含在请求数据包41_1中的有效信号(Mst.valid)变为有效“1”(步骤S2)。表格75向比较电路76输出与请求数据包41_1中包含的地址(Mst.address)对应的阈值(步骤S3)。在这种情况下,由于请求数据包41_1的目的地是从机13_3,所以地址(Mst.address)变为“7”(参见图5)。
随后,比较电路76将计数器78的计数值(失败次数)与从表格75提供的阈值进行比较(步骤S4)。在这种情况下,由于从表格75提供的阈值为“7”并且失败次数为“0”,所以它不满足“阈值<失败次数”(步骤S4:否)。因此,作为比较结果,比较电路76向加法电路77输出加法禁用信号。当提供加法禁用信号时,在不向请求数据包41_1的优先级(Mst.priority)添加预定值的情况下,比较电路77将优先级(Mst.priority)作为优先级(Mod.priority)输出至仲裁电路71(步骤S6)。
接下来,仲裁电路71开始请求数据包41_1的仲裁(步骤S7)。当仲裁电路71已经接收的请求数据包仅是请求数据包41_1时,仅请求数据包41_1的有效信号(Mst.valid)变为有效,并且相邻中继电路12_0的请求数据包51_0的有效信号(Adj.valid)变为无效“0”(步骤S8:是)。
由于在这种情况下没有冲突请求,所以仲裁电路71选择请求数据包41_1。关于所选请求数据包的信息作为仲裁结果输出至选择电路72。选择电路72输出总线主机11_1的请求数据包(Mst.packet)41_1作为所选请求数据包(所选数据包)。
此外,优先级调整电路73将计数器78的计数值(失败次数)重置为0(步骤S9)。
另一方面,仲裁电路71已经接收的请求数据包是总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0,除了请求数据包41_1的有效信号(Mst.valid)之外,相邻中继电路12_0的请求数据包51_0的有效信号(Adj.valid)也变为有效(步骤S8:否)。在这种情况下,由于请求数据包41_1和请求数据包51_0彼此冲突,所以仲裁电路71使用请求数据包41_1的优先级(Mod.priority)和从优先级调整电路73输出的请求数据包51_0的优先级(Adj.priority)来仲裁请求数据包41_1和请求数据包51_0。
此时,请求数据包41_1的优先级(Mod.priority)为“10”(与优先级(Mst.priority)相同),并且请求数据包51_0的优先级(Adj.priority)为“11”。因此,仲裁电路71选择相邻中继电路12_0的请求数据包51_0。该仲裁结果被输出至选择电路72和计数器78。
当在仲裁电路71中拒绝总线主机11_1的请求数据包41_1时,计数器78向当前失败次数加“1”(步骤S11)。在这种情况下,计数器的计数值(失败次数)为“1”。
此后,比较电路76返回到步骤S4,并再次将计数器78的计数值(失败次数)与从表格75提供的阈值进行比较。在这种情况下,从表格75提供的阈值为“7”并且失败次数为“1”,不满足“阈值<失败次数”(步骤S4:否)。因此,比较电路76将加法禁用信号作为比较结果输出至加法电路77。当提供加法禁用信号时,不向请求数据包41_1的优先级(Mst.priority)添加预定值,加法电路77将优先级(Mst.priority)作为优先级(Mod.priority)输出至仲裁电路71(步骤S6)。
接下来,仲裁电路71开始请求数据包41_1的仲裁(步骤S7)。当仲裁电路71已经接收的请求数据包是总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0时,除了请求数据包41_1的有效信号(Mst.valid)之外,相邻中继电路12_0的请求数据包51_0的有效信号(Adj.valid)也变为有效(步骤S8:否)。在这种情况下,请求数据包41_1和请求数据包51_0彼此冲突。因此,仲裁电路71使用请求数据包41_1的优先级(Mod.priority)和从优先级调整电路73输出的请求数据包51_0的优先级(Adj.priority)来仲裁请求数据包41_1和请求数据包51_0。
此时,请求数据包41_1的优先级(Mod.priority)为“10”(与优先级(Mst.priority)相同)。由于请求数据包51_0的优先级(Adj.priority)为“11”,所以仲裁电路71选择相邻中继电路12_0的请求数据包51_0(步骤S10:是)。该仲裁结果被输出至选择电路72和计数器78。
当在仲裁电路71中拒绝总线主机11_1的请求数据包41_1时,计数器78向当前失败次数加“1”(步骤S11)。在这种情况下,计数器的计数值(失败次数)为“2”。
在步骤S11中,继续这样的操作,直到计数器78的计数值(失败次数)变为“8”。即,在步骤S11中,当计数器78的计数值(失败次数)变为“8”时,计数器78的计数值(失败次数)“8”变得大于从表格75提供的阈值“7”。在这种情况下,在步骤S4中,由于满足“阈值<失败次数”(步骤S4:是),所以比较电路76将加法使能信号作为比较结果输出至加法电路77。
当提供加法使能信号时,加法电路77将预定值“2”添加至请求数据包41_1的优先级(Mst.priority),并将加法后的优先级作为优先级(Mod.priority)输出至仲裁电路71(步骤S5)。
接下来,仲裁电路71开始请求数据包41_1的仲裁(步骤S7)。当仲裁电路71已经接收的请求数据包是总线主机11_1的请求数据包41_1和相邻中继电路12_0的请求数据包51_0时,除了请求数据包41_1的有效信号(Mst.valid)之外,相邻中继电路12_0的请求数据包51_0的有效信号(Adj.valid)也变得有效(步骤S8:否)。在这种情况下,由于请求数据包41_1和请求数据包51_0彼此冲突,所以仲裁电路71使用请求数据包41_1的优先级(Mod.priority)和从优先级调整电路73输出的请求数据包51_0的优先级(Adj.priority)来仲裁请求数据包41_1和请求数据包51_0。
由于此时请求数据包41_1的优先级(Mod.priority)为“12”且请求数据包51_0的优先级(Adj.priority)为“11”,所以仲裁电路71选择总线主机11_1的请求数据包41_1(步骤S10:否)。该仲裁结果被输出至选择电路72和计数器78。选择电路72输出总线主机11_1的请求数据包(Mst.packet)41_1作为所选请求数据包(所选数据包)。
此外,优先级调整电路73将计数器78的计数值(失败次数)重置为“0”(步骤S9)。
根据上述操作,优先级调整电路73可以根据总线主机11_1的请求数据包41_1在到达目的地之前经过的中继电路12_0-12_9的数量来调整请求数据包41_1的优先级。具体地,优先级调整电路73可以如此调整,以当总线主机11_1的请求数据包41_1在仲裁电路71中被拒绝的次数超过预定阈值时,允许总线主机11_1的请求数据包41_1的优先级(Mst.priority)更高。如上所述,设置预定阈值,使得总线主机11_1的请求数据包41_1在到达其目的地之前通过的中继电路12_0-12_9的数量越多,预定阈值就越小。
在上文的示例中,在步骤S5中,已给出在通过加法电路77将预定值添加至请求数据包41_1的优先级(Mst.priority)之后立即在仲裁电路71中选择请求数据包41_1的优先级(Mod.priority)的情况的解释。然而,根据与请求数据包41_1冲突的请求数据包51_0的优先级(Adj.priority),即使将预定值添加至请求数据包41_1的优先级(Mst.priority),也可以不选择(可能失败)请求数据包41_1。
在这种情况下,在加法电路77中,可以进一步添加预定值。例如,当在加法电路77中进行两次加法时,调整后的请求数据包41_1的优先级(Mod.priority)变为“14(=10+2+2)”。
此外,代替在加法电路77中进一步添加预定值,可以重复仲裁电路71中的仲裁,直到冲突请求数据包51_0的优先级(Adj.priority)降低。
此外,当在将预定值添加至请求数据包41_1的优先级(Mst.priority)之后没有选择请求数据包41_1时,可以如下仲裁请求数据包41_1。即,当请求数据包41_1的优先级较高且不希望请求数据包41_1停滞(即,希望请求数据包41_1被优先放入环形总线15)时,可以在下一仲裁中得添加之后的优先级为最大(15)。
如背景技术部分所述,当使用环形总线拓扑来耦合总线主机与从机时,与使用星形总线拓扑时相比,可以更加缓解布线集中度。
然而,使用环形总线拓扑耦合总线主机和从机的情况比使用星形总线拓扑的情况在总线访问的延迟方面引起更多的变化。即,环形总线的使用引起每个总线主机在访问每个从机时所行进的环形总线的距离的变化,从而引起总线访问的延迟的变化。
另一方面,本实施例的数据处理器1设置有优先级调整电路,该优先级调整电路根据总线主机的请求数据包在到达其目的地之前经过的中继电路的数量来调整总线主机的请求数据包的优先级。因此,变得可以提供能够抑制总线访问的延迟变化的数据处理器以及控制数据处理器的方法。
即,在本实施例的数据处理器1中进行调整,使得当总线主机的请求数据包在仲裁电路中被拒绝的次数超过预定阈值时,总线主机的请求数据包的优先级可以变高。关于这点,设置预定阈值,使得总线主机的请求数据包在到达其目的地之前经过的中继电路的数量越多,预定阈值就变得越小。换言之,设置预定阈值,使得总线主机的请求数据包的目的地越远,阈值就变得越小。
该预定阈值对应于总线主机的请求数据包被拒绝的允许次数(失败次数)。因此,当总线主机的访问目的地是靠近总线主机的从机(即,要经过的中继电路很少)时,由于访问目的地接近,所以允许多次拒绝总线主机的请求数据包。另一方面,当总线主机的访问目的地是远离总线主机的从机(即,要经过许多中继电路)时,由于访问目的地很远,因此总线主机的请求数据包的允许失败次数变少。即,通过以这种方式设置预定阈值,变得可以优选地将具有远程访问目的地(要经过许多中继电路)的请求数据包放入环形总线中。此外,变得可以提高具有远程访问目的地的请求数据包占据环形总线中的区域的可能性。从而,变得可以提供能够抑制总线访问的延迟变化的数据处理器和用于控制数据处理器的方法。
例如,当具有总线主机的电路被配置为使得通过保持在从机中的引导数据开始处理时,具有总线主机的电路将处于待机状态,直到其接收到引导数据。例如,当对环形总线中的步数(对应于要经过的中继电路的数目)小的总线主机的请求给予优先级时,或者当所有总线主机的请求的优先级相等时,具有较大步数的总线主机的请求的待机时间的比率变得大于具有较少步数的总线主机的请求的待机时间的比率。在这种情况下,当具有少量步数的总线主机完成其处理时,开始较晚的具有较多步数的总线主机的处理尚未完成,并且具有较多步数的总线主机必须继续其操作。
在通过总线主机的所有处理完成而获得最终结果的***中,总线主机的性能变化会导致最终性能劣化。在根据本实施例的数据处理器中,变得可以均匀地平衡总线主机的性能并抑制整个数据处理器的处理性能的劣化。此外,当存在用户想要提前完成的处理时,可以通过改变总线主机的设置来进行调整。
在上文的描述中,描述了将图4所示的仲裁部32应用于图2所示的仲裁部32的情况。然而,在根据本实施例的数据处理器中,图4所示的仲裁部可以应用于图2所示的仲裁部22。即,即使当总线主机访问最近的从机时,也可以应用根据本实施例的技术。
<实施例2>
接下来,将讨论实施例2。图8是示出根据实施例2的数据处理器的配置示例的框图。图8所示的数据处理器2与实施例1中解释的数据处理器(参照图1)的不同之处在于:数据处理器2包括监控器电路90和限制电路91_0-91_9。由于配置和操作的其他部分与实施例1中的数据处理器1的那些部分相同,所以在相同的部件上附加相同的符号,并且省略对其的描述。
如图8所示,数据处理器2包括:多个总线主机11_0-11_9、多个中继电路12_0-12_9、多个从机13_0-13_9、监控器电路90以及多个限制电路91_0-91_9。
监控器电路90监控环形总线15中的请求数据包的数量。具体地,中继电路12_0-12_9中的每一个向监控器电路90提供关于每个中继电路12_0-12_9所保持的请求数据包的量的信息93。基于由每个中继电路12_0-12_9提供的信息93,监控器电路90掌握在每个中继电路12_0-12_9中保持的请求数据包的数量,并监控环形总线15中的请求数据包的数量。
例如,监控器电路90可以通过监控图2所示缓冲电路33中保持的请求数据包的量来监控环形总线15中的请求数据包的量。例如,当从中继电路12_1向下一中继电路12_2给出请求数据包时,除非接收中继电路12_2准备接收,否则请求数据包依然保持在中继电路12_1的缓冲电路33中(处于待机状态)。因此,监控器电路90可以通过掌握每个中继电路12_0-12_9中的缓冲电路33中处于待机状态的请求数据包的数量来监控整个环形总线15的请求数据包的量。
每个限制电路91_0-91_9被设置在每个总线主机11_0-11_9和每个中继电路12_0-12_9之间。每个限制电路91_0-91_9具有限制从每个总线主机11_0-11_9访问每个中继电路12_0-12_9的功能。具体地,每个限制电路91_0-91_9具有拒绝总线主机11_0-11_9的请求数据包被发送到中继电路12_0-12_9的功能。例如,限制电路91_0-91_9可以通过禁用总线主机11_0-11_9的请求数据包的有效信号(Mst.valid=0)来拒绝请求数据包被发送至中继电路12_0-12_9。
从监控器电路90将控制信号94提供给每个限制电路91_0-91_9。根据控制信号94,每个限制电路91_0-91_9限制从每个总线主机11_0-11_9对每个中继电路12_0-12_9的访问。具体地,监控器电路90根据环形总线15中的请求数据包的量来控制每个限制电路91_0-91_9,并且限制从总线主机11_0-11_9提供给中继电路12_0-12_9的请求数据包。
例如,当在中继电路12_0-12_9的至少一个缓冲电路33中没有空位时,监控器电路90可以限制从总线主机11_0-11_9向中继电路12_0-12_9提供的请求数据包。此外,可以通过用户任意地确定监控器电路90限制总线主机的请求的标准。
此外,当限制访问时,每个限制电路91_0-91_9可以限制所有总线主机11_0-11_9的访问,或者限制特定总线主机的访问。例如,每个限制电路91_0-91_9均可以限制总线主机对中继电路12_0-12_9中缓冲电路33没有空位的中继电路的访问。
因此,本实施例的数据处理器2使用监控器电路90监控环形总线15中的请求数据包的量,并且根据监控结果,限制电路限制从总线主机11_0-11_9向中继电路12_0-12_9发送新的请求数据包。因此,可以限制环形总线15中的请求数据包的量,防止环形总线15的流动性丢失。换句话说,变得可以抑制请求数据包在环形总线15中停滞。从而,变得可以优选地允许具有真正高优先级的请求数据包在环形总线15中通过。
在根据实施例1的数据处理器中,通过考虑请求数据包通过其中的中继电路的数量(即,与总线主机进行访问的从机的距离)调整请求数据包的优先级,可以优选地将具有高优先级的请求数据包放入环形总线。然而,即使优选地将具有高优先级的请求数据包放入环形总线,当请求数据包在前面的中继电路中停滞时,放入环形总线的请求数据包的效果也会降低。在根据本实施例的数据处理器2中,预先抑制请求数据包在环形总线的缓冲电路中停滞的发生。以这种方式,通过调整优选地将请求数据包放入环形总线的优先级,可以抑制在实施例1的数据处理器中获得的效果的降低。
<实施例3>
接下来,将讨论实施例3。实施例3的数据处理器与实施例1和2的数据处理器1和2的不同之处在于:中继电路的缓冲电路配置不同。由于配置和操作的其他部分与实施例1和2中解释的数据处理器1和2的那些部分相同,所以在相同的部件上附加相同的符号,并且省略对其的描述。
图9是示出根据本实施例的数据处理器中包括的缓冲电路的配置示例的框图。图9所示的缓冲电路110对应于图2所示的缓冲电路23和33。此外,图2所示两个缓冲电路23和33中只有一个可通过图9所示的缓冲电路110实现。当考虑环形总线15的流动性时,优选地,至少图2所示缓冲电路33通过图9所示缓冲电路110实现。
图9所示的缓冲电路110被配置为使得根据请求数据包的优先级,可以改变要输出至下一目的地(中继电路或从机)的请求数据包的顺序。如图9所示,缓冲电路110包括:保持电路111和112、比较电路113以及选择电路114。
保持电路111被配置为能够保持请求数据包(所选数据包)。保持电路112紧接在保持电路111之后设置,并且被配置为能够临时保持从保持电路111发送的请求数据包。保持电路111和112可以包括分别与时钟信号同步操作的触发器电路。
比较电路113对保持电路111中保持的请求数据包的优先级和保持电路112中保持的请求数据包的优先级进行比较,并将比较结果输出至选择电路114。
选择电路114根据比较电路113提供的比较结果,选择并输出保持电路111中保持的请求数据包和保持电路112中保持的请求数据包中的一个。此时,选择电路114从保持电路111中保持的请求数据包和保持电路112中保持的请求数据包中选择并输出具有较高优先级的请求数据包。
接下来,将解释缓冲电路110的具体操作。当请求数据包仅被保持在保持电路111中时,只有从保持电路111提供给比较电路113的有效信号(Rtb1.valid)变得有效。在这种情况下,比较电路113将能够选择保持电路111中保持的请求数据包的选择信号输出至选择电路114。随后,选择电路114输出保持电路111中保持的请求数据包。
此外,在请求数据包仅被保持在保持电路111中的状态下,当缓冲电路110的下一目的地不能接受请求数据包并且请求数据包被新提供给缓冲电路110时,保持电路111中保持的请求数据包移动到保持电路112,并且请求数据包被新保持在保持电路111中。
进一步地,当在保持电路111和112中保持请求数据包时,从保持电路111和112提供给比较电路113的有效信号(Rtb1.valid、Rtb2.valid)变得有效。在这种情况下,比较电路113对保持电路111中保持的请求数据包的优先级(Rtb1.priority)和保持电路112中保持的请求数据包的优先级(Rtb2.priority)进行比较,并将能够选择具有较高优先级的请求数据包的选择信号输出至选择电路114。
选择电路114从保持电路111中保持的请求数据包和保持电路112中保持的请求数据包中选择并输出具有更高优先级的请求数据包。例如,当保持电路111中保持的请求数据包的优先级(Rtb1.priority)高于保持电路112中保持的请求数据包的优先级(Rtb2.priority)时,选择电路114选择并输出保持电路111中保持的请求数据包。因此,保持电路111中保持的请求数据包可以超过保持电路112中保持的请求数据包。
本实施例的数据处理器中包括的缓冲电路110被配置为能够根据请求数据包的优先级重新排序要输出到下一目的地(中继电路或从机)的请求数据包。因此,变得可以优选地传送具有高优先级的总线数据包。这种功能在环形总线15内的区域增加的情况或者特定从机暂时不能接受访问并且局部出现停滞的请求数据包的情况下特别有效。
例如,如在根据实施例1的数据处理器中,即使根据请求数据包通过的中继电路的数量来确定阈值(参见图5)并且调整优先级,也存在请求数据包在缓冲电路中停滞的情况。在这种情况下,通过根据缓冲电路中的优先级对要输出的请求数据包进行重新排序(重新排序),可以有效地抑制总线访问的延迟变化。
<实施例4>
接下来,将讨论实施例4。图10是示出根据实施例4的数据处理器的配置示例的框图。根据实施例4的数据处理器与实施例1至3中解释的数据处理器的不同之处在于:除了能够在两个方向上传送数据的环形总线,即,环形总线能够顺时针传送数据,其还包括能够逆时针传送数据的环形总线。由于配置和操作的其他部分与实施例1-3中解释的数据处理器的那些部分相同,所以相同的部件附加相同的符号,并且省略对其的描述。
如图10所示,数据处理器3包括:多个总线主机11_0-11_9、多个中继电路121_0-121_9、122_0-122_9、以及多个从机13_0-13_9。
每个中继电路121_0-121_9都与每个总线主机11_0-11_9以及每个中继电路122_0-122_9耦合。中继电路121_0-121_9经由能够顺时针传送数据的环形总线125而被耦合为环形。
每个中继电路122_0-122_9均与每个从机13_0-13_9以及每个中继电路121_0-121_9耦合。中继电路122_0-122_9经由能够逆时针传送数据的环形总线126而被耦合为环形。
每个总线主机11_0-11_9可以经由中继电路121_0-121_9、122_0-122_9中的每一个以及环形总线125和126访问每个从机13_0-13_9。
例如,当总线主机11_1向从机13_4传输总线数据包时,其经由顺序的中继电路121_1、121_2、121_3和121_4并且还经由中继电路122_4向从机13_4传输总线数据包。
每个中继电路121_0-121_9和122_0-122_9均具有与图2所示中继电路12_1相同的配置。因此,中继电路121_0-121_9和122_0-122_9中的每一个均可以使用每个请求数据包的优先级来仲裁冲突的请求数据包。
例如,除了来自总线主机11_1的请求数据包之外,来自相邻中继电路121_0(即,紧接之前的中继电路)的请求数据包被提供给中继电路121_1。当相邻中继电路121_0的请求数据包与最近的总线主机11_1的请求数据包相互冲突时,中继电路121_1对这些请求数据包进行仲裁,并在仲裁之后将请求数据包发送给环形总线126的中继电路122_1或下一中继电路121_2。此时,中继电路121_1使用每个请求数据包的优先级来仲裁每个请求数据包。
此外,例如,来自环形总线125的中继电路121_1的请求数据包和来自相邻中继电路122_2(即,紧接之前的中继电路)的请求数据包被提供给中继电路122_1。当来自中继电路121_1的请求数据包与来自中继电路122_2的请求数据包相互冲突时,中继电路122_1在这些请求数据包之间进行仲裁,并在仲裁之后将请求数据包发送给下一中继电路122_0或从机13_1。此时,中继电路122_1使用相应请求数据包的优先级来仲裁请求数据包。
此外,每个中继电路121_0-121_9均包括优先级调整电路,优先级调整电路根据每个总线主机11_0-11_9的请求数据包在到达其目的地之前经过的中继电路的数量来调整请求数据包的优先级。由于优先级调整电路与图4的优先级调整电路73相同,因此省略对其的描述。
此外,根据本实施例,基于考虑顺时针环形总线125和逆时针环形总线126的路由,确定存储在优先级调整电路73中包括的表格75中的预定阈值。例如,如果基于总线主机11_1,从机13_6变为离总线主机11_1最远的访问目的地(即,经过的中继电路的数量最大)。此外,例如,从机13_5和从机13_7成为与总线主机11_1相同距离的访问目的地。进一步地,从机13_1成为离总线主机11_1最近的访问目的地(即,经过的中继电路最少)。
根据本实施例的数据处理器3包括可以顺时针传送数据的环形总线125和可以逆时针传送数据的环形总线126。因此,可以缩短每个总线主机11_0-11_9向每个从机13_0-13_9发送请求数据包的路径。
此外,当经过顺时针环形总线时,即使必须将表格中定义的阈值(参见图5)设置得很小,如果可以使用逆时针环形总线,可以将表格中定义的阈值设置为较大值(即,阈值不是必须无益地变小)。因此,可以使优先级非常高的请求易于传送。
<实施例5>
接下来,将讨论实施例5。图11是示出根据实施例5的数据处理器的配置示例的框图。根据实施例5的数据处理器4与实施例1至4中解释的数据处理器的不同之处在于:每个从机13_0-13_9均向每个总线主机11_0-11_9返回响应数据包。由于配置和操作的其他部分与实施例1至4中解释的数据处理器的那些部分相同,所以相同的部件附加相同的符号,并且省略对其的描述。
如图11所示,数据处理器4包括:总线主机11_0-11_9、中继电路131_0-131_9和从机13_0-13_9。
中继电路131_0-131_9是用于响应的中继电路,并且与总线主机11_0-11_9和从机13_0-13_9耦合。中继电路131_0-131_9通过用于响应的环形总线135以环形耦合。因此,从机13_0-13_9可以经由中继电路131_0-131_9和环形总线135向总线主机11_0-11_9返回响应数据包。环形总线135被配置为能够沿着一个方向(图11中的顺时针)传送数据。此外,响应数据包基本配置为与图6所示的请求数据包80相似。然而,“主机ID”被“从机IS”替代。
例如,当从机13_1向总线主机11_8返回响应数据包时,即,当响应数据包中的目的地的地址指示总线主机11_8时,从从机13_1输出的响应数据包按适当顺序经由耦合至环形总线135的中继电路131_1发送至总线主机11_8。
作为一个示例,在图11所示的数据处理器4中,具有十个总线主机11_0-11_9,十个中继电路131_0-131_9以及十个从机13_0-13_9。然而,根据本实施例,可以任意确定包括在实施例1中的总线主机、中继电路和从机的数量。
在本实施例的数据处理器1中,除了来自从机13_1的响应数据包之外,来自相邻中继电路131_0(即,紧接之前的中继电路)的响应数据包被提供给中继电路131_1。当相邻中继电路131_0的响应数据包与最近从机13_1的响应数据包相互冲突时,中继电路131_1允许对这些响应数据包进行仲裁,并将仲裁后的响应数据包发送至总线主机11_1或下一中继电路131_2。此时,中继电路131_1使用响应数据包的优先级来仲裁响应数据包。
本实施例的数据处理器4中包括的每个中继电路131_0-131_9的配置基本与图2和图3所示的中继电路12_1的配置相同。然而,图2至图4中的总线主机的请求数据包用从机的响应数据包代替。即,总线主机的地址(Mst.address)、有效信号(Mst.valid)、优先级(Mst.priority)和总线主机的数据包(Mst.priority)分别被从机的地址(Slv.address)、有效信号(Slv.valid)、优先级(Slv.priority)和数据包(Slv.packet)替换。
在根据本实施例的数据处理器4中,每个中继电路131_0-131_9也设置有优先级调整电路(参见图4的优先级调整电路73),优先级调整电路根据从机的响应数据包在到达其目的地之前经过的中继电路的数量调整响应数据包的优先级。例如,优先级调整电路73根据从机13_1的响应数据包的目的地来调整响应数据包的优先级。具体地,优先级调整电路73如此调整,以在从机13_1的响应数据包在仲裁电路71中被拒绝的次数超过预定阈值时,允许从机11_1的响应数据包的优先级(Slv.priority)更高。此时,设置预定阈值,使得从机13_1的响应数据包在到达其目的地之前经过的中继电路131_0-131_9的数量越多,预定阈值就变得越小。此外,当在优先级调整电路73中没有调整响应数据包的优先级(Slv.priority)时,优先级调整电路73将优先级(Slv.priority)作为优先级(Mod.priority)输出至仲裁电路71。
由于优先级调整电路根据从机的响应数据包的目的地来调整响应数据包的优先级的操作与实施例1中解释的操作相同,因此省略了对其的描述。在根据本实施例的数据处理器中,当从设备访问总线主机时,也可以抑制延迟的变化。
例如,在实施例1中解释的请求数据包的仲裁中,当通过从计数器78(参见图4)的值中减去表格75中定义的阈值而获得的值为正时,这意味着该值的次数(计数器值-阈值)表示超过失败次数的允许值。当该值较大时,意味着请求侧的失败次数较多,并且进行访问需要时间。从而,需要提高响应侧的响应数据包的优先级。因此,如果将上述值添加到请求数据包中,则可以根据该值设置响应数据包的优先级和阈值,并且可以在响应侧反映请求侧的访问状态。因此,变得可以综合考虑往返访问时间来调整访问延迟。
顺便提及,在数据处理器中,重复总线主机向从机发送请求数据包以及从机向总线主机返回响应数据包的操作。因此,优选地,数据处理器包括实施例1中讨论的配置(请求侧的配置)和实施例5中讨论的配置(响应侧的配置)。
然而,优先级调整电路可以单独设置在数据处理器的请求侧(实施例1中的配置),或者优先级调整电路可以单独设置在数据处理器的响应侧(实施例5中的配置)。
虽然上面已经基于优选实施例具体描述了发明人做出的本发明,但是本发明不限于上述实施例。不需要说,在不背离其要点的范围内,可以对进行各种改变。

Claims (13)

1.一种数据处理器,包括:
多个总线主机;
多个从机,所述总线主机能够对所述多个从机进行访问;
多个中继电路,每个中继电路均耦合至所述总线主机中的每个总线主机和所述从机中的每个从机;以及
环形总线,所述中继电路通过所述环形总线被耦合为环状,
其中所述中继电路包括:
仲裁电路,利用作为相邻中继电路的请求数据包的相邻请求数据包的优先级和作为最近总线主机的请求数据包的总线请求数据包的优先级,仲裁所述相邻请求数据包和所述总线请求数据包,并将仲裁之后的请求数据包输出至下一中继电路;以及
优先级调整电路,根据所述总线请求数据包在到达其目的地之前经过的中继电路的数量来调整所述总线请求数据包的优先级。
2.根据权利要求1所述的数据处理器,
其中所述优先级调整电路被配置为进行调整,使得当所述总线请求数据包在所述仲裁电路中被拒绝的次数超过预定阈值时,所述总线请求数据包的优先级变得更高;以及
其中设置所述预定阈值,使得所述总线请求数据包在到达其目的地之前经过的中继电路的数量越多,所述预定阈值越小。
3.根据权利要求2所述的数据处理器,
其中所述优先级调整电路包括:
表格,其中存储所述预定阈值;
计数器,对所述总线请求数据包在所述仲裁电路中被拒绝的次数进行计数;
比较电路,将所述总线请求数据包在所述仲裁电路中被拒绝的次数与所述预定阈值进行比较;以及
加法电路,当所述总线请求数据包被拒绝的次数超过所述预定阈值时,将预定值添加至所述总线请求数据包的优先级。
4.根据权利要求3所述的数据处理器,其中在向所述总线请求数据包添加所述预定值之后,所述加法电路还在所述总线请求数据包在所述仲裁电路中被拒绝时再次向所述总线请求数据包的优先级添加预定值。
5.根据权利要求1所述的数据处理器,还包括:监控器电路,监控所述环形总线中的请求数据包的量,
其中所述监控器电路根据所述环形总线中的请求数据包的量来限制将要从所述总线主机发送至所述中继电路的请求数据包。
6.根据权利要求5所述的数据处理器,
其中所述中继电路包括缓冲电路,所述缓冲电路临时地保持从所述仲裁电路输出的请求数据包,并且
其中所述监控器电路通过监控所述缓冲电路中保持的请求数据包的量来监控所述环形总线中的请求数据包的量。
7.根据权利要求6所述的数据处理器,
其中当在相应中继电路中包括的至少一个所述缓冲电路中没有空位时,所述监控器电路限制将要从每个所述总线主机向每个所述中继电路提供的请求数据包。
8.根据权利要求1所述的数据处理器,
其中所述中继电路包括缓冲电路,所述缓冲电路临时地保持从所述仲裁电路输出的请求数据包,并且
其中所述缓冲电路被配置为能够根据所述请求数据包的优先级来改变将要被输出至下一目的地的请求数据包的顺序。
9.根据权利要求8所述的数据处理器,
其中所述缓冲电路包括:
第一保持电路,能够保持第一请求数据包;
第二保持电路,设置在紧跟在所述第一保持电路之后,并且能够保持第二请求数据包;以及
选择电路,选择保持在所述第一保持电路中的所述第一请求数据包和保持在所述第二保持电路中的所述第二请求数据包中的一个,并且
其中所述选择电路选择并输出所述第一请求数据包和所述第二请求数据包中具有更高优先级的请求数据包。
10.根据权利要求1所述的数据处理器,
其中所述环形总线包括:
第一环形总线,在第一方向上传送请求数据包;以及
第二环形总线,在与所述第一方向相反的第二方向上传送请求数据包,并且
其中所述中继电路被设置在所述第一环形总线和所述第二环形总线中的每个环形总线中。
11.根据权利要求1所述的数据处理器,还包括:
用于响应的中继电路,耦合至每个所述总线主机和每个所述从机;以及
用于响应的环形总线,所述用于响应的中继电路通过所述用于响应的环形总线被耦合为环状,
其中所述用于响应的中继电路包括:
用于响应的仲裁电路,利用作为相邻中继电路的响应数据包的相邻响应数据包的优先级和作为最近从机的响应数据包的从机响应数据包的优先级,仲裁所述相邻响应数据包和所述从机响应数据包,并且将仲裁之后的响应数据包输出至下一中继电路;以及
用于响应的优先级调整电路,根据所述从机响应数据包在到达其目的地之前经过的所述用于响应的中继电路的数量来调整所述从机响应数据包的优先级。
12.一种数据处理器,包括:
多个总线主机;
多个从机,所述总线主机能够对所述多个从机进行访问;
多个中继电路,每个中继电路均耦合至所述总线主机中的每个总线主机和所述从机中的每个从机;以及
环形总线,所述中继电路通过所述环形总线被耦合为环状,
其中所述中继电路包括:
仲裁电路,利用作为相邻中继电路的响应数据包的相邻响应数据包的优先级和作为最近从机的响应数据包的从机响应数据包的优先级,仲裁所述相邻响应数据包和所述从机响应数据包,并且将仲裁之后的响应数据包输出至下一中继电路;以及
优先级调整电路,根据所述从机响应数据包在到达其目的地之前经过的所述中继电路的数量来调整所述从机响应数据包的优先级。
13.一种用于控制数据处理器的方法,所述数据处理器包括:
多个总线主机;
多个从机,所述总线主机对所述多个从机进行访问;
多个中继电路,每个中继电路均耦合至所述总线主机中的每个总线主机和所述从机中的每个从机;以及
环形总线,所述中继电路通过所述环形总线被耦合为环状,
其中当利用作为相邻中继电路的请求数据包的相邻请求数据包的优先级和作为最近总线主机的请求数据包的总线请求数据包的优先级来仲裁所述相邻请求数据包和所述总线请求数据包时,所述中继电路根据所述总线请求数据包在到达其目的地之前经过的所述中继电路的数量来调整所述总线请求数据包的优先级。
CN201811512155.8A 2017-12-21 2018-12-11 数据处理器及用于控制数据处理器的方法 Active CN110059043B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017244905A JP2019113917A (ja) 2017-12-21 2017-12-21 データ処理装置、及びデータ処理装置の制御方法
JP2017-244905 2017-12-21

Publications (2)

Publication Number Publication Date
CN110059043A true CN110059043A (zh) 2019-07-26
CN110059043B CN110059043B (zh) 2024-05-28

Family

ID=64661059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811512155.8A Active CN110059043B (zh) 2017-12-21 2018-12-11 数据处理器及用于控制数据处理器的方法

Country Status (5)

Country Link
US (3) US10628360B2 (zh)
EP (2) EP3502910B1 (zh)
JP (1) JP2019113917A (zh)
CN (1) CN110059043B (zh)
TW (1) TWI791066B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090600A (zh) * 2019-12-09 2020-05-01 苏州浪潮智能科技有限公司 一种总线共享的方法
CN114911727A (zh) * 2022-05-26 2022-08-16 上海美仁半导体有限公司 总线仲裁方法和装置、计算机可读存储介质及主控芯片
CN115378762A (zh) * 2022-10-25 2022-11-22 芯动微电子科技(珠海)有限公司 一种总线传输性能动态调度方法及装置
WO2024016646A1 (zh) * 2022-07-19 2024-01-25 声龙(新加坡)私人有限公司 轮询仲裁器及其轮询仲裁方法和芯片

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019113917A (ja) * 2017-12-21 2019-07-11 ルネサスエレクトロニクス株式会社 データ処理装置、及びデータ処理装置の制御方法
DE102018105007B4 (de) * 2018-03-05 2019-10-17 Volkswagen Aktiengesellschaft Verfahren zur Übertragung von Daten über einen Kommunikationskanal, entsprechend ausgelegte Vorrichtung und Kommunikationsschnittstelle sowie entsprechend ausgelegtes Computerprogramm
JP2022129555A (ja) * 2021-02-25 2022-09-06 セイコーエプソン株式会社 回路装置及び電子機器
US20230222081A1 (en) * 2022-01-13 2023-07-13 Infineon Technologies Ag Daisy chain configuration using priority values

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
CN1346579A (zh) * 1998-12-23 2002-04-24 高通股份有限公司 在集群通信***中提供公平接入的方法和装置
JP2005316609A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
WO2008008220A1 (en) * 2006-07-11 2008-01-17 Ati Technologies, U.L.C. Memory controller with ring bus for interconnecting memory clients to memory devices
CN102546342A (zh) * 2010-12-28 2012-07-04 株式会社东芝 双环网络***、双环网络发送次序决定方法及传送站装置
WO2013038589A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 資源要求調停装置、資源要求調停システム、資源要求調停方法、集積回路およびプログラム
US20140310444A1 (en) * 2013-04-12 2014-10-16 Texas Instruments Incorporated Dynamic balancing of bus bandwidth across multiple routes
US20140372646A1 (en) * 2013-06-14 2014-12-18 Arm Limited Receiver based communication permission token allocation
CN105740178A (zh) * 2014-12-09 2016-07-06 扬智科技股份有限公司 芯片网络***以及其形成方法
US20170075838A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Quality of service in interconnects with multi-stage arbitration

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59107664A (ja) 1982-12-10 1984-06-21 Fujitsu Ltd リングバスにおけるプライオリテイ制御方式
US4646232A (en) * 1984-01-03 1987-02-24 Texas Instruments Incorporated Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
JP2642332B2 (ja) * 1985-04-15 1997-08-20 株式会社日立製作所 優先レベル更新制御方法
US4726018A (en) * 1986-08-25 1988-02-16 International Business Machines Corporation Method of providing priority access to a transmission communication ring
AU1061892A (en) * 1991-02-06 1992-08-13 Fmc Corporation Access to transmit on a message priority basis
US7174374B2 (en) * 2002-05-13 2007-02-06 Industrial Technology Research Institute Multi-priority media access control method for multi-channel slotted ring networks
US20080091866A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Maintaining forward progress in a shared L2 by detecting and breaking up requestor starvation
US7574547B1 (en) * 2007-07-17 2009-08-11 Sun Microsystems, Inc. Ring counter based starvation free weighted priority encoded arbiter
US9265665B2 (en) * 2010-07-19 2016-02-23 Kci Licensing, Inc. Inflatable off-loading wound dressing assemblies, systems, and methods
JP5702255B2 (ja) * 2011-09-27 2015-04-15 株式会社日立製作所 アドホックネットワーク通信端末およびアドホックネットワーク通信端末の制御方法
JP2019113917A (ja) * 2017-12-21 2019-07-11 ルネサスエレクトロニクス株式会社 データ処理装置、及びデータ処理装置の制御方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
CN1346579A (zh) * 1998-12-23 2002-04-24 高通股份有限公司 在集群通信***中提供公平接入的方法和装置
JP2005316609A (ja) * 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
WO2008008220A1 (en) * 2006-07-11 2008-01-17 Ati Technologies, U.L.C. Memory controller with ring bus for interconnecting memory clients to memory devices
CN102546342A (zh) * 2010-12-28 2012-07-04 株式会社东芝 双环网络***、双环网络发送次序决定方法及传送站装置
WO2013038589A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 資源要求調停装置、資源要求調停システム、資源要求調停方法、集積回路およびプログラム
US20140310444A1 (en) * 2013-04-12 2014-10-16 Texas Instruments Incorporated Dynamic balancing of bus bandwidth across multiple routes
US20140372646A1 (en) * 2013-06-14 2014-12-18 Arm Limited Receiver based communication permission token allocation
CN105740178A (zh) * 2014-12-09 2016-07-06 扬智科技股份有限公司 芯片网络***以及其形成方法
US20170075838A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Quality of service in interconnects with multi-stage arbitration

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090600A (zh) * 2019-12-09 2020-05-01 苏州浪潮智能科技有限公司 一种总线共享的方法
CN114911727A (zh) * 2022-05-26 2022-08-16 上海美仁半导体有限公司 总线仲裁方法和装置、计算机可读存储介质及主控芯片
WO2024016646A1 (zh) * 2022-07-19 2024-01-25 声龙(新加坡)私人有限公司 轮询仲裁器及其轮询仲裁方法和芯片
CN115378762A (zh) * 2022-10-25 2022-11-22 芯动微电子科技(珠海)有限公司 一种总线传输性能动态调度方法及装置

Also Published As

Publication number Publication date
US11494327B2 (en) 2022-11-08
US10628360B2 (en) 2020-04-21
EP3910486A1 (en) 2021-11-17
US10949369B2 (en) 2021-03-16
EP3502910B1 (en) 2021-06-23
US20190196998A1 (en) 2019-06-27
US20210165754A1 (en) 2021-06-03
JP2019113917A (ja) 2019-07-11
US20200242060A1 (en) 2020-07-30
EP3910486B1 (en) 2023-09-06
TWI791066B (zh) 2023-02-01
EP3502910A3 (en) 2019-09-11
EP3502910A2 (en) 2019-06-26
TW201929501A (zh) 2019-07-16
CN110059043B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
CN110059043A (zh) 数据处理器及用于控制数据处理器的方法
US8327057B1 (en) Ordering write bursts to memory
US9325637B2 (en) System for performing distributed data cut-through
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US9703732B2 (en) Interface apparatus and memory bus system
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
WO2015027924A1 (zh) 一种流表更新的控制方法、装置及控制器
WO2015079933A1 (ja) 情報管理装置、ローカルネットワークシステム、情報管理方法および情報管理プログラム
US9893992B2 (en) Communication apparatus, information processing apparatus, and method of controlling communication apparatus
WO2014022424A1 (en) Phase-based packet prioritization
US20220385582A1 (en) Nonlinear traffic shaper with automatically adjustable cost parameters
US10404602B2 (en) Transmission apparatus and transmission processing method
US9847949B1 (en) Arbitrating data packets
CN113542152A (zh) 网络设备中处理报文的方法和相关设备
US11144457B2 (en) Enhanced page locality in network-on-chip (NoC) architectures
CN117596217A (zh) 一种用于数据包限流的数据处理方法及装置
KR20210126978A (ko) 분리 메모리 디바이스 및 분리 메모리 디바이스의 동작 방법
WO2015120699A1 (zh) 一种报文转发方法、装置及网络转发设备
JP2021145182A (ja) 通信装置、通信装置の制御方法、および集積回路
JP2005210400A (ja) 通信帯域制限装置
JPH07210525A (ja) データ転送制御方式
JP2013114609A (ja) 情報処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant