CN1936871A - 嵌入式系统以及仲裁方法 - Google Patents

嵌入式系统以及仲裁方法 Download PDF

Info

Publication number
CN1936871A
CN1936871A CNA2006101416768A CN200610141676A CN1936871A CN 1936871 A CN1936871 A CN 1936871A CN A2006101416768 A CNA2006101416768 A CN A2006101416768A CN 200610141676 A CN200610141676 A CN 200610141676A CN 1936871 A CN1936871 A CN 1936871A
Authority
CN
China
Prior art keywords
bus
time value
death time
data
embedded system
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
Application number
CNA2006101416768A
Other languages
English (en)
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1936871A publication Critical patent/CN1936871A/zh
Pending legal-status Critical Current

Links

Images

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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

一种仲裁方法,应用于一嵌入式系统。该仲裁方法包含有:送出多个请求信号给一仲裁器;依据多个死亡时间值选择一个装置来通过一总线去存取数据,其中被选择的装置拥有一最小死亡时间值;当被选择的装置通过该总线存取数据时,增加被选择装置的该死亡时间值;以及当另一装置的该死亡时间值变成最小时,选择另一装置来通过该总线去存取数据。每一死亡时间值用来纪录其对应缓存器的目前状态。

Description

嵌入式系统以及仲裁方法
技术领域
本发明涉及一种嵌入式系统及其方法,特别涉及一种嵌入式系统及其仲裁方法。
背景技术
请参阅图1,图1显示一现有总线共享系统的功能方块图。总线共享系统100包含有一仲裁器(arbiter)110、多个总线主控装置(bus-masterdevice)(例如CPU)122、124、126、128、一总线附属装置(bus-slave device)(例如内存)130、以及一总线(bus)140。多个总线主控装置可以通过总线140来传送数据给总线附属装置130。然而,如果同一时间有超过二个总线主控装置想要通过总线140来存取数据,则最后仅有一个总线主控装置能够允许在总线140上存取数据。当某一个总线主控装置想要存取数据时,就会送出一请求信号给仲裁器110,要求获得使用总线140的权利。仲裁器110会依据多个相对应的请求信号,从多个总线主控装置中,选出一个合适的总线主控装置以通过总线140存取数据,其中,关于仲裁器110的进一步说明如下。
请参阅图2,图2显示仲裁器110处理多个请求信号的示意图。举例来说,当总线主控装置122想要存取数据时,即送出请求信号REQ_1;当总线主控装置124想要存取数据时,即送出请求信号REQ_2;当总线主控装置126想要存取数据时,即送出请求信号REQ_3;当总线主控装置128想要存取数据时,即送出请求信号REQ_4。若是仲裁器110选择总线主控装置122当作目前唯一可以存取数据的装置,则产生同意信号GNT_1。同样地,若是仲裁器110选择其它总线主控装置当作目前唯一可以存取数据的装置,则产生其对应的同意信号(GNT_2、GNT_3、GNT_4)。关于仲裁器110的仲裁过程进一步说明如下。
请同时参阅第3A以及图3B。图3A显示多个请求以及同意信号的第一现有仲裁的时序图,图3B显示每一个总线主控装置的优先权。在时间T0时,由于只有送出请求信号REQ_1(以高准位为例),仲裁器110产生同意信号GNT_1授权对应的总线主控装置122来使用总线去存取数据。接着,在时间T01、T02、T03、时,总线主控装置128、126、124分别送出请求信号REQ_4、REQ_3、REQ_2。在时间T1时,总线主控装置122停止请求信号REQ_1,仲裁器110接下来停止对应的同意信号GNT_1。然后,仲裁器110产生同意信号REQ_2授权对应的总线主控装置124利用总线去存取数据。请参阅图3B,由此图得知,总线主控装置122、124、126、128的优先权顺位永远是最高、次高、次低、以及最低。在时间T1时,仲裁器110产生同意信号GNT_2。在时间T11时,拥有最高优先权的总线主控装置122再度送出请求信号REQ_1但是由于请求信号REQ_2尚未停止,故可以使用总线的权利仍然在总线主控装置124上。在时间T2时,请求信号REQ_2被停止且仲裁器110产生另一同意信号。这次由于拥有最高的优先权,同意信号GNT_1就会产生。同样地,同意信号GNT_3以及GNT_4在时间T3以及T4时会被个别产生。另一种现有仲裁器110的仲裁过程说明如下。
请同时参阅图4A以及图4B。图4A显示多个请求以及同意信号的第二现有仲裁的时序图,图4B显示每一个总线主控装置的优先权。请注意,每一个总线主控装置的优先权顺序将随着时间漂移而产生不同的变化。原本,总线主控装置122拥有最高的优先权顺序,但是,随着时间漂移,总线主控装置124反而拥有最高优先权顺序,此时总线主控装置122的优先权顺序变成最低。
所以由图4A得知,在时间T0时,由于只有送出请求信号REQ_1(以高准位为例),仲裁器110产生同意信号GNT_1以授权对应的总线主控装置122利用总线去存取数据。接着,在时间T01、T02、T03时,总线主控装置128、126、124分别送出请求信号REQ_4、REQ_3、以及REQ_2。因此在时间T1时,总线主控装置122停止请求信号REQ_1且仲裁器110接着停止对应的同意信号GNT_1。
请参阅图4B,当仲裁器110产生同意信号REQ_2以授权对应的总线主控装置124利用总线去存取数据时,在时间T1时,优先权的顺序发生变化且此时总线主控装置124拥有最高的优先权。因此,同意信号REQ_2随即产生。在时间T11时,拥有最低优先权的总线主控装置122再度送出了请求信号,然而由于请求信号REQ_2尚未被停止,总线的控制权利仍然在总线主控装置124。在时间T2时,请求信号REQ_2被停止并且仲裁器110产生另一同意信号。这次由于总线主控装置126拥有最高的优先权,是故随即产生同意信号GNT_3。同样地,同意信号GNT_4在时间T3时产生。
然而,第一以及第二现有仲裁方式,在某些情况下并不是最好的仲裁方式。在第一现有仲裁方式中(图3),总线主控装置122、124、126、128的优先权顺序永远是最高、次高、次低、以及最低。换句话说,每一个总线主控装置的优先权顺序永远不会改变。因此拥有较低优先权的总线主控装置在与拥有较高优先权的总线主控装置竞争时,将永远得不到总线主控权。在第二现有仲裁方式中(图4),优先权的顺序则是随着时间漂移,规律改变,每一个总线主控装置都有机会得到最高的优先权,相较于第一现有仲裁方式,第二现有仲裁方式似乎较公平。然而,在实施的配置上,第二现有仲裁方式仍不是最有效率且最符合实际使用情况的仲裁方式。
发明内容
有鉴于此,本发明提供一种嵌入式系统及其仲裁方法,以解决上述问题。
本发明提供一种仲裁方法,应用于一嵌入式系统。该嵌入式系统系通过一媒体与其它系统沟通。该嵌入式系统包含有多个装置、一总线、以及一仲裁器。每一个装置包含有一缓存器以及一死亡时间值(time-to-deathvalue.)。该仲裁器依据多个死亡时间值选择一个装置来通过该总线去存取数据。该仲裁方法包含有:送出多个请求信号给该仲裁器;依据多个死亡时间值选择一个装置来通过该总线去存取数据,其中,被选择的装置拥有一最小死亡时间值;当被选择的装置通过该总线存取数据时,增加被选择装置的该死亡时间值;以及当另一装置的该死亡时间值变成最小时,选择另一装置来通过该总线去存取数据。每一死亡时间值用来纪录其对应缓存器的目前状态。
本发明另提供一种嵌入式系统。该嵌入式系统通过一媒体与其它系统沟通。该嵌入式系统包含有多个装置、一总线、以及一仲裁器。每一个装置包含有一缓存器以及一死亡时间值。该仲裁器依据多个死亡时间值选择一个装置来通过该总线去存取数据。该嵌入式系统包含有:一第一装置,用来送出多个请求信号给该仲裁器;一第二装置,用来依据多个死亡时间值选择一个装置来通过该总线去存取数据,其中被选择的装置拥有一最小死亡时间值;一第三装置,用来当被选择的装置通过该总线存取数据时,增加被选择装置的该死亡时间值;以及一第四装置,用来当另一装置的该死亡时间值变成最小时,选择另一装置来通过该总线去存取数据。每一死亡时间值用来纪录其对应缓存器的目前状态。
附图说明
图1显示一现有总线共享系统的功能方块图。
图2显示仲裁器处理多个请求信号的示意图。
图3A显示多个请求以及同意信号的第一现有仲裁的时序图。
图3B显示每一个总线主控装置的优先权。
图4A显示多个请求以及同意信号的第二现有仲裁的时序图。
图4B显示每一个总线主控装置的优先权。
图5显示本发明嵌入式系统一实施例的功能方块图。
图6显示图5总线主控装置的一功能方块图。
图7显示仲裁器处理多个具有死亡时间值的请求信号的示意图。
图8显示传送端缓存器大小以及死亡时间值关系的示意图。
图9显示所有装置内多个传送端先进先出队列的时序示意图。
图10显示死亡时间值以及传送端先进先出队列变化关系的示意图。
图11是本发明传送端先进先出队列运作方法的流程图的一实施例。
图12是本发明传送端先进先出队列运作方法内TTD变化情形的流程图的一实施例。
图13显示接收端缓存器大小以及死亡时间值关系的示意图。
图14显示死亡时间值以及接收端先进先出队列变化关系的示意图。
图15是本发明接收端先进先出队列运作方法的流程图的一实施例。
图16是本发明接收端先进先出队列运作方法内TTD变化情形的流程图的一实施例。
附图符号说明
总线共享系统    100
仲裁器         110、510
总线主控装置    122、124、126、128、522、524、526、528
总线附属装置    130、530
总线           140、540
嵌入式系统      500
传送端缓存器    610
接收端缓存器    620
具体实施方式
请参阅图5,图5显示本发明嵌入式系统500一实施例的功能方块图。嵌入式系统500包含有一仲裁器510、多个总线主控装置(例如Ethernet MAC或是CPU)522、524、526以及528、一总线附属装置(例如DDR SDRAM)530、以及一总线(例如AHB总线)540。多个总线主控装置522-528可以通过总线540来传送数据给总线附属装置530。如果同时有超过二个以上的总线主控装置想要通过总线540存取数据,最后仅能允许一个总线主控装置通过总线540存取数据。当某一总线主控装置想要存取数据时,就会送出带有死亡时间值(time-to-death value,TTD value)的请求信号给仲裁器510以使用总线540。仲裁器510则依据多个对应的请求信号以及死亡时间值,从多个总线主控装置中,选出一个合适的总线主控装置以存取数据。关于总线主控装置的进一步说明如下。
请参阅图6,图6显示图5总线主控装置的一功能方块图。总线主控装置包含有一传送端缓存器(transmitted buffer)610(例如传送端先进先出队列,TX FIFO)以及一接收端缓存器(例如接收端先进先出队列,RX FIFO)620。传送端缓存器610能自总线540接收数据并且传送数据到媒体(例如电波),而接收端缓存器620能自媒体接收数据(例如空气)并且传送数据给总线540。关于仲裁器510的进一步说明如下。
请参阅图7,图7显示仲裁器510处理多个具有死亡时间值的请求信号的示意图。举例来说,当总线主控装置522想要存取数据时,即送出请求信号REQ_1以及死亡时间值TTD_1;当总线主控装置524想要存取数据时,即送出请求信号REQ_2以及死亡时间值TTD_2;当总线主控装置526想要存取数据时,即送出请求信号REQ_3以及死亡时间值TTD_3;当总线主控装置528想要存取数据时,即送出请求信号REQ_4以及死亡时间值TTD_4。若是仲裁器510选择总线主控装置522当作目前唯一可以存取数据的装置,则产生同意信号GNT_1。同样地,若是仲裁器510选择其它总线主控装置当作目前唯一可以存取数据的装置,则产生其对应的同意信号(GNT_2、GNT_3、GNT_4)。关于缓存器大小以及死亡时间值关系的进一步说明如下。
请参阅图8,图8显示传送端缓存器大小(传送端先进先出队列)以及死亡时间值关系的示意图。假设先进先出队列容量以及最大的死亡时间值分别为64(字节)以及255。另外,临界区段的长度设为8(字节)。在第一个先进先出队列中(最上面的先进先出队列),临界区段以及传送端先进先出队列都是满的(填满了72字节的数据)。请注意,在临界区段内的数据被传送到媒体后(临界区段变成空的),对应的总线主控装置就可以用来请求将传送端先进先出队列再度填入数据。当传送端先进先出队列内的数据被传送到媒体后,死亡时间值也会被对应地减少。当数据再度填流传送端先进先出队列时,死亡时间值则会被对应地增加。在第二个先进先出队列中,临界区段是空的,但传送端先进先出队列则是满的(其内有64字节的数据)且开始要送到媒体,则此时的死亡时间值达到最大值(255)。在第三个先进先出队列中,传送端先进先出队列剩下48单位的数据(字节),此时死亡时间值即为192(字节)。在第四个先进先出队列中,传送端先进先出队列已经变成空的,此时死亡时间值即为零。死亡时间值的计算依据公式如下:
TTD-TX=DR/DC
其中,TTD-TX为传送端先进先出队列的死亡时间值、DR代表传送端先进先出队列内所剩下的数据量、DC则为数据的消耗(输出)到媒体的速度。
数据消耗率是一个预定的常数。在图8中,假设数据消耗率的值为0.25。在第二个先进先出队列中剩下的数据量为64(字节);在第三个先进先出队列中剩下的数据量为48(字节);在第四个先进先出队列中剩下的数据量为0(字节)。通过上述的公式,可计算出第二个先进先出队列中死亡时间值为255(64/0.25)、第三个先进先出队列中死亡时间值为192(48/0.25)、第四个先进先出队列中死亡时间值为0(0/0.25)。关于仲裁器510的进一步说明如下。
在图9中,是以传送端先进先出队列为例。图9显示在装置522-528内多个传送端先进先出队列的时序示意图。死亡时间值则和目前的传送端先进先出队列容量成正比。若是传送端先进先出队列是满的,则死亡时间值会变成最大值。若是传送端先进先出队列是空的,死亡时间值会变成最小值。另外,仲裁器510会选择拥有最小死亡时间值的装置来当作目前可以使用总线540的唯一装置。在时间T0时,所有的传送端先进先出队列都是满的并且对应的死亡时间值都被设为最大值(例如4)。在时间T1时,装置522被授权可以使用总线540来接受数据,而其它的装置仍然可以通过媒体(例如空气)来传送数据到另一个系统(未显示)。在其它的装置524-526将传送端先进先出队列内的数据通过媒体传送出去后,每一个先进先出队列的剩下的数据都变少了,故对应的死亡时间值TTD_2、TTD_3、TTD_4都会跟着减少(例如TTD变成3)。在时间T2时,假设装置524被授权可以使用总线540来接收数据并且其它的装置522、526、528仍然可以通过媒体(例如空气)来传送数据到另一个系统(未显示)。在装置524自总线540接收数据后,其传送端先进先出队列内的数据量即增加,并且对应的死亡时间值TTD_2也跟着增加。在此同时,其它的装置522、526、以及528通过媒体将数据传送到其它系统,故对应的死亡时间值TTD_1、TTD_3、TTD_4跟着减少。同样地,在时间T3时(假设装置526被授权可以使用总线540),死亡时间值TTD_3增加并且其它的死亡时间值TTD_1、TTD_2、TTD_4跟着增加;在时间T4时(假设装置528被授权可以使用总线540),死亡时间值TTD_4增加并且其它的死亡时间值TTD_1、TTD_2、TTD_3跟着增加。关于死亡时间值以及传送端先进先出队列变化的关系进一步说明如下。
请参阅图10,图10显示死亡时间值以及传送端先进先出队列变化关系的示意图。假设最大死亡时间值是255。在时间T0时,传送端先进先出队列是空的,因此对应的死亡时间值为零。在时间T1时,由总线540接收进来的数据将传送端先进先出队列填到半满,此时死亡时间值增加到最大死亡时间值的一半(127)。在时间T3时,先进先出队列已被填满并且开始传送数据到媒体(例如空气),对应的TTD则同时变为最大值(255)。在时段T3到T5内,传送端先进先出队列尚未被授权来使用总线540,所以它只能传送数据到媒体。另外,在时段T3到T5内,再度送出请求信号请求得到授权来使用总线540。在时段T6到T7内,先进先出队列再度得到授权来传送部分的数据到媒体,其它的数据则可同时自总线接收之。一般来说,接收速度通常比传送速度快,所以死亡时间值会一直被增加直到先进先出队列满了为止。在时间T8时,传送端先进先出队列失去了授权,变成只能传送数据到媒体。因此死亡时间值再度随着传送数据而减少。在一段时间后,在时间T9时传输的工作完成,此时死亡时间值变成零。
请参阅图11,图11是本发明传送端先进先出队列运作方法的流程图的一实施例。进一步说明如下。
步骤1102:总线主控装置(bus-master device)内的传送端先进先出队列(TX FIFO)处于空闲状态(idle)
步骤1104:当传送端事件(TX event)触发后,请求获得总线的控制权
步骤1106:当收到同意信号后,开始将数据送到传送端先进先出队列
步骤1108:一旦填满了传送端先进先出队列,即释出总线请求权
步骤1110:开始由传送端先进先出队列送数据至外部媒体
步骤1112:继续传送数据
步骤1114:传送端先进先出队列是否清空(empty)?若是,则回到步骤1102;否则,进入步骤1116
步骤1116:仍在内存内的数据是否需要传送到外部媒体?若是,则进入步骤1118;否则,回到步骤1112
步骤1118:继续请求得到总线的控制权
步骤1120:当收到同意信号后,再度将数据填入传送端先进先出队列
步骤1122:若是传送端先进先出队列已满则释出(de-assert)对总线的请求,否则继续送出请求
请参阅图12,图12是本发明传送端先进先出队列运作方法内TTD变化情形的流程图的一实施例。卷标TTDIU代表死亡时间值每次增加的单位。假设最大的死亡时间值是255,传送端先进先出队列输出速率为每个时钟周期一数据单位,而传送端先进先出队列输入速率为每个时钟周期十数据单位。换句话说,每当数据送到媒体时,死亡时间值即增加一单位;每当自总线接收到数据时,死亡时间值即增加十单位。进一步说明如下。
步骤1202:将死亡时间值(TTD)的初始值设为零
步骤1204:将死亡时间值增加一单位TTDIU(TTD=TTD+TTDIU)
步骤1206:传送端先进先出队列是否被填满?若是,则进入步骤1208;否则,回到步骤1204
步骤1208:将死亡时间值(TTD)设为最大值(TTD=255)
步骤1210:每传送一单位的数据至媒体时,即减去一单位的死亡时间值(TTD=TTD-1)
步骤1212:死亡时间值是否为零?若是,则回到步骤1202;否则,进入步骤1214
步骤1214:再度将数据自总线填入传送端先进先出队列
步骤1216:重设死亡时间值(TTD=TTD-1+TTDIU)
步骤1218:若是传送端先进先出队列已被填满(或是总线同意权已遗失)时则进入步骤1210,否则进入步骤1216
请参阅图13,图13显示接收端缓存器大小(接收端先进先出队列)以及死亡时间值关系的示意图。假设先进先出队列容量以及最大的死亡时间值分别为64(字节)以及255。另外,临界区段的长度设为8(字节)。在第一个先进先出队列中(最上面的先进先出队列),临界区段以及接收端先进先出队列都是空的。请注意,在临界区段内的数据自到媒体接收进来后(临界区段变成满的),对应的总线主控装置就可以用来请求接收来自接收端先进先出队列内的数据。当接收端先进先出队列内的数据被传送到总线后,死亡时间值也会被对应地增加。当数据再度填满接收端先进先出队列时,死亡时间值则会被对应地减少。在第二个先进先出队列中,临界区段是满的,但接收端先进先出队列则是空的且开始要接收来自媒体的数据,则此时的死亡时间值达到最大值(255)。在第三个先进先出队列中,接收端先进先出队列还有48单位的数据(字节)未被填满,此时死亡时间值即为192(字节)。在第四个先进先出队列中,接收端先进先出队列已经变成满的,此时死亡时间值即为零。死亡时间值的计算依据公式如下:
TTD-RX=DS/DA
其中,TTD-RX为接收端先进先出队列内的死亡时间值,DS则为接收端先进先出队列的数据空余量,DA则为到媒体的媒体抵达率。
数据抵达率为一预定的常数值。在图13,假设数据消耗率等于0.25。在第二个先进先出队列中数据空余量为64(字节),在第三个先进先出队列中数据空余量为48(字节),在第四个先进先出队列中数据空余量为0(字节),通过上述公式可计算出第二个先进先出队列中的死亡时间值为255(64/0.25)、第三个先进先出队列中的死亡时间值为192(48/0.25)、第四个先进先出队列中的死亡时间值为0(0/0.25)。
请参阅图14,图14显示死亡时间值以及接收端先进先出队列变化关系的示意图。假设最大死亡时间值为255。死亡时间值和目前传送端先进先出队列的容量成反比。若是传送端先进先出队列是空的,则死亡时间值变成最大值。若是传送端先进先出队列是满的,死亡时间值变成最小值。另外,仲裁器会选择有最小死亡时间值的装置当作可以用来通过总线传送数据的装置。在时间T0时,接收端先进先出队列是空的,因此死亡时间值为最大值(死亡时间值=255)。在时间T1时,数据自媒体(例如空气)接受进来并填满接收端先进先出队列,因此死亡时间值减少(死亡时间值=192)。在时段T1到T3内,接收端先进先出队列无法得到授权来利用总线,故仅能自媒体接受数据。另外,请求信号在时段T1-T3时再度发出。在时段T4-T5时,接收端先进先出队列再度被授权并且部份的数据可以自媒体接受,同时其它的数据可以通过总线传送。在时间T6时,接收端先进先出队列再度失去授权并且仅能自媒体接收数据。因此死亡时间值再度变小。在一段时间后,在时间T8时接收工作完成(接收端先进先出队列是空的)并且死亡时间值重设为255。
请参阅图15,图15是本发明接收端先进先出队列运作方法的流程图的一实施例。进一步说明如下。
步骤1402:总线主控装置内的接收端先进先出队列(RX FIFO)处于空闲状态
步骤1404:当接收端事件(RX event)触发后,开始自外部媒体接收数据至接收端先进先出队列
步骤1406:继续自外部媒体接收数据
步骤1408:送出请求总线的信号来请求获得总线的控制权
步骤1410:将接收端先进先出队列内的数据通过总线来传送到另一内存
步骤1412:接收端先进先出队列是否清空(empty)?若是,则进入步骤1414;否则,进入步骤1416
步骤1414:自外部媒体将数据接收至接收端先进先出队列
步骤1416:若是接收端先进先出队列已清空则释出(de-assert)对总线的控制请求,否则继续送出请求
请参阅图16,图16是本发明接收端先进先出队列运作方法内TTD变化情形的流程图的一实施例。卷标TTDIU代表死亡时间值每次增加的单位。假设最大的死亡时间值是255,接收端先进先出队列输入速率为每个时钟周期一数据单位,而接收端先进先出队列输出速率为每个时钟周期十数据单位。换句话说,每当自媒体接收到数据时,死亡时间值即增加一单位;每当数据传送到总线时,死亡时间值即减少十单位(TTDIU=10)。进一步说明如下。
步骤1502:将死亡时间值TTD的初始值设为最大值(TTD=255)
步骤1504:每自媒体接收一单位的数据至接收端先进先出队列,即减去一单位的死亡时间值(TTD=TTD-1)
步骤1506:将数据自接收端先进先出队列传送到总线
步骤1508:死亡时间值是否达到最大值?若是,则进入步骤1510;否则,进入步骤1512
步骤1510:是否还有数据尚未自媒体接收进来?若是,则进入步骤1512;否则,回到步骤1502
步骤1512:重设死亡时间值(TTD=TTD-1+TTDIU)
步骤1514:若是接收端先进先出队列已清空(或是总线同意权已遗失)时则回到步骤1504,否则回到步骤1512
相较于现有技术,在总线主控装置的优先权顺位会动态改变的情况下,本发明仲裁方法会更公平地分配总线的使用。相较于第二现有技术,藉由死亡时间值的帮助,本发明仲裁方法在分配上不但更有效率,且更切合当时所有总线主控装置实施的使用需求。

Claims (10)

1.一种仲裁方法,其应用于一嵌入式系统,该嵌入式系统通过一媒体与其它系统沟通,该嵌入式系统包含有多个装置、一总线以及一仲裁器,每一个装置包含有一缓存器以及一死亡时间值,该仲裁方法包含有:
送出多个请求信号给该仲裁器,其中,该等请求信号含有相对应的多个死亡时间值;
依据该等死亡时间值由一被选择的装置来通过该总线去存取数据,其中,该被选择的装置拥有一最小死亡时间值;
当该被选择的装置通过该总线存取数据时,增加该最小死亡时间值;以及
当一另一装置的死亡时间值变成最小时,选择该另一装置来通过该总线去存取数据;
其中,每一死亡时间值用来纪录其对应缓存器的目前状态。
2.如权利要求1所述的仲裁方法另包含有:计算每一个装置的该死亡时间值。
3.如权利要求2所述的仲裁方法,其中,该死亡时间值依据公式计算如下:
TTD-TX=DR/DC
其中,在该嵌入式系统内每一缓存器是一传送端缓存器,用来自该总线接收数据并且自该媒体传送数据,TTD-TX是对应该传送端缓存器的该死亡时间值,DR是该传送端缓存器内一剩余数据量,以及DC是数据消耗到媒体的一速度。
4.如权利要求2所述的仲裁方法,其中,该死亡时间值依据公式计算如下:
TTD-RX=DS/DA
其中,该嵌入式系统内每一缓存器是一接收端缓存器,用来自该总线传送数据并且自该媒体接收数据,TTD-RX是对应该接收端缓存器的该死亡时间值,DS是该接收端先进先出队列的一数据空余量,DA是该数据到媒体的媒体抵达率。
5.如权利要求1所述的仲裁方法,其中,一信息留存后转送机制用来存取数据。
6.一种嵌入式系统,该嵌入式系统通过一媒体与其它系统沟通,该嵌入式系统包含有多个装置、一总线以及一仲裁器,每一个装置包含有一缓存器以及一死亡时间值,该仲裁器依据多个死亡时间值选择一个装置来通过该总线去存取数据,该嵌入式系统包含有:
一第一装置,用来送出多个请求信号给该仲裁器;
一第二装置,用来依据多个死亡时间值选择一个装置来通过该总线去存取数据,其中,被选择的装置拥有一最小死亡时间值;
一第三装置,用来当被选择的装置通过该总线存取数据时,增加被选择装置的该死亡时间值;以及
一第四装置,用来当另一装置的该死亡时间值变成最小时,选择另一装置来通过该总线去存取数据;
其中,每一死亡时间值用来纪录其对应缓存器的目前状态。
7.如权利要求6所述的嵌入式系统,另包含有:
一第五装置,用来计算每一个装置的该死亡时间值。
8.如权利要求7所述的嵌入式系统,其中,该死亡时间值依据公式计算如下:
TTD-TX=DR/DC
其中,在该嵌入式系统内每一缓存器是一传送端缓存器,用来自该总线接收数据并且自该媒体传送数据,TTD-TX是对应该传送端缓存器发该死亡时间值,DR是该传送端缓存器内一剩余数据量,以及DC是数据消耗到媒体发一速度。
9.如权利要求7所述的嵌入式系统,其中,该死亡时间值依据公式计算如下:
TTD-RX=DS/DA
其中,该嵌入式系统内每一缓存器是一接收端缓存器,用来自该总线传送数据并且自该媒体接收数据,TTD-RX是对应该接收端缓存器的该死亡时间值,DS是该接收端先进先出队列的一数据空余量,DA是该数据到媒体的媒体抵达率。
10.如权利要求6所述的嵌入式系统,其中,该总线是一AHB总线。
CNA2006101416768A 2006-02-17 2006-10-09 嵌入式系统以及仲裁方法 Pending CN1936871A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/357,572 US20070198730A1 (en) 2006-02-17 2006-02-17 Embedded system with a bus and arbitration method for same
US11/357,572 2006-02-17

Publications (1)

Publication Number Publication Date
CN1936871A true CN1936871A (zh) 2007-03-28

Family

ID=37954379

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101416768A Pending CN1936871A (zh) 2006-02-17 2006-10-09 嵌入式系统以及仲裁方法

Country Status (3)

Country Link
US (1) US20070198730A1 (zh)
CN (1) CN1936871A (zh)
TW (1) TW200732920A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI324305B (en) * 2006-06-14 2010-05-01 Via Tech Inc Embedded system and related buffer size determining method thereof
JP6310260B2 (ja) * 2014-01-20 2018-04-11 株式会社荏原製作所 基板処理装置内の複数の処理ユニットを調整するための調整装置、および該調整装置を備えた基板処理装置
KR102106541B1 (ko) * 2015-03-18 2020-05-04 삼성전자주식회사 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0718773A1 (en) * 1994-12-19 1996-06-26 Advanced Micro Devices, Inc. Bus access arbiter
US5953335A (en) * 1997-02-14 1999-09-14 Advanced Micro Devices, Inc. Method and apparatus for selectively discarding packets for blocked output queues in the network switch
US6098124A (en) * 1998-04-09 2000-08-01 National Instruments Corporation Arbiter for transferring largest accumulated data block output from data buffers over serial bus
US7207041B2 (en) * 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
KR100480605B1 (ko) * 2002-07-25 2005-04-06 삼성전자주식회사 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US7000045B2 (en) * 2002-08-28 2006-02-14 Lsi Logic Corporation Byte-enabled transfer for a data bus having fixed-byte data transfer

Also Published As

Publication number Publication date
US20070198730A1 (en) 2007-08-23
TW200732920A (en) 2007-09-01

Similar Documents

Publication Publication Date Title
US7275119B2 (en) Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus
US5687316A (en) Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US9798686B2 (en) Slave side bus arbitration
CN102841869B (zh) 一种基于fpga的多通道i2c控制器
CN108959136B (zh) 基于spi的数据传输加速装置、系统及数据传输方法
US6970962B2 (en) Transfer request pipeline throttling
KR101537034B1 (ko) 스트림 트랜잭션(들)에 관련된 정보에 기초한 스트림 트랜잭션들의 중재
CN110188059A (zh) 数据有效位统一配置的流控式fifo缓存结构及方法
CA2527428A1 (en) System for allocating minimum and maximum bandwidths
KR20160047484A (ko) 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법
US20070156937A1 (en) Data transfer in multiprocessor system
US7543093B2 (en) Method and system for stream burst data transfer
Somkuarnpanit et al. Fpga-based multi protocol data acquisition system with high speed usb interface
CN1936871A (zh) 嵌入式系统以及仲裁方法
TW201731272A (zh) 具有自動從屬選擇產生之串列週邊介面
US7039750B1 (en) On-chip switch fabric
US10489319B2 (en) Automatic transmission of dummy bits in bus master
CN101154204A (zh) Dma传输控制装置和半导体集成电路装置
US20080270668A1 (en) Method to Hide or Reduce Access Latency of a Slow Peripheral in a Pipelined Direct Memory Access System
US8397006B2 (en) Arbitration scheme for accessing a shared resource
US7668996B2 (en) Method of piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US8510482B2 (en) Data processing system having peripheral-paced DMA transfer and method therefor
EP0987635A2 (en) Apparatus and method for limit -based arbitration scheme
RU2601833C1 (ru) Прибор приема-передачи информационных массивов
US7747806B2 (en) Resource use management device, resource use management system, and control method for a resource use management device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication