嵌入式系统及其缓冲器尺寸决定方法

文档序号:7972210阅读:274来源:国知局
专利名称:嵌入式系统及其缓冲器尺寸决定方法
技术领域
本发明是有关于一种缓冲器尺寸决定方法,特别是有关于一种嵌入式系统及其装置的缓冲器尺寸决定方法。
背景技术
嵌入式系统为目前非常普遍的设计方式。嵌入式系统中数个装置,例如中央处理器(CPU)、桥接器以及媒体存取控制器(medium access control,MAC)等等可能共享同一总线(bus),且同一时间只能有其中一个装置拥有总线使用权(bus ownership)。因此,通常有一个仲裁器(arbiter)来根据一些仲裁法则,如轮循或优先权,来管理总线的使用权(bus ownership)。当系统中的某一装置想要使用总线时,会对仲裁器发出使用要求(request),要求拥有总线使用权。仲裁器便根据仲裁法则判断目前总线的状态以及所有发出要求的装置的优先等级,决定将总线使用权交付于其中一个装置。当仲裁器选定一装置后,便会回复一个确认信号给此装置。收到确认信号的装置就获得总线使用权,可以开始使用总线,例如通过总线来接收数据。其它未被选取的装置则继续等待仲裁器分配总线使用权。
对嵌入式系统中的某些装置,如网络芯片中的MAC控制器,当数据开始传输时,需要将一整笔数据(封包)无间断地传送到如物理层(physical layer,PHY)的传输媒体(media)上,因此通常会设置有一个缓冲器(buffer)以暂存部分的数据。传输时,数据会不断地从缓冲器中送到传输媒体。若缓冲器尺寸不够大,无法及时于缓冲器内数据被清空前重新充填(re-fill)数据进入缓冲器内,使得传输媒体于传输中无法及时取得数据,造成封包损坏情形,则需要重传整个封包。缓冲器内数据被清空的状态称为缓冲器失效(buffer underrun)。如果缓冲器失效的情形经常发生,将使得系统整体的效能大幅降低。
图1显示传统MAC控制器的操作流程示意图。如图所示,当MAC控制器要开始传输封包时,先向仲裁器要求总线的使用权,获得使用权后就开始将总线的数据填入其缓冲器内,直到缓冲器填满。填满后开始将数据送出给媒体并释回总线使用权。传输过程中,若缓冲器不够大,使得传输未完成,但缓冲器内的数据来不及补充,已经被清空了,就会发生缓冲器失效,必须将此笔数据全部重传。
因此,为了避免发生缓冲器失效,设计上的缓冲器的尺寸通常等于规格中的最大封包尺寸(Maximum packet size,MPS)。举例来说,对以太网络的MAC控制器而言,最大封包尺寸约等于1.536K字节,因此,若应用上需要有4个MAC控制器,则每个MAC控制器须配置1个1.536K字节大小的缓冲器,总共须配置4个1.536K字节。如此配置使得制造成本大幅提高。因此,需要一种可有效缩小缓冲器尺寸,同时不会造成缓冲器失效的缓冲器设计方式与制造方法,进而提升系统的效能。

发明内容
有鉴于此,本发明的目的之一即在于提供一种有效决定缓冲器尺寸的方法,并应用本发明的总线仲裁法则,可以有效缩小缓冲器尺寸,同时避免上述缓冲器失效情形的发生。
基于上述目的,本发明提供一种缓冲器尺寸决定方法,用于嵌入式系统,此方法包含以下步骤。首先,测量缓冲器充填时间(buffer fillt ime,BFT)与反应延迟时间(request response time,RRT),其中,此缓冲器充填时间为每次将总线数据送到缓冲器中所需的时间,且此缓冲器发出要求信号,而此反应延迟时间为响应此要求信号的反应时间,且此反应时间包含装置反应、仲裁器(arbiter)切换此总线的使用权以及通过桥接器将此总线数据前传所需的延迟时间;接着,计算媒体数据率(media data rate,MDR)以及多个装置的数目(number of bus master,NBM),此媒体数据率为在每个存取周期中,将此缓冲器的数据送出到传输媒体的最大数据传输速率;最后,依据此缓冲器充填时间、此反应延迟时间、此媒体数据率、与此等装置的数目以决定此等装置中,每一缓冲器的尺寸。
本发明还提供一种嵌入式系统,包含一总线、多个装置以及一仲裁器。每一装置包含缓冲器以及存活值,用来记录相应的缓冲器的目前状态。其中,每一装置的缓冲器的尺寸是依据相应此嵌入式系统的缓冲器充填时间、反应延迟时间、媒体数据率、与此等装置的数目所决定。仲裁器接收由每一装置所传送的多个要求信号,在存取周期中依据每一装置的存活值选择装置中的其中一者来通过此总线存取数据。其中,被选取的装置具有最小的存活值。
为使本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。


图1是显示示范性的码相位及载频所组成的搜寻样本示意图。
图2是显示依据本发明实施例的嵌入式系统示意图。
图3是显示缓冲器状态与存活值TTD的对应关系示意图。
图4是显示依据本发明实施例的缓冲器尺寸决定方法示意图。
图5是显示依据本发明实施例的装置的存活值与总线使用权每个存取周期的变化关系示意图。
图6是显示依据本发明实施例的总线使用权优先级示意图。
图7是显示依据本发明实施例的装置存活值TTD每个存取周期的变化情形。
20~仲裁器;22、24、26、28~装置;29~总线;TTD、TTD1、TTD2、TTD3、TTD4~存活值;T~存取周期;BFT~缓冲器充填时间;RRT~反应延迟时间;MDR~媒体数据率;NBM~装置数目;MBS~缓冲器的尺寸;S410-S420~步骤;BDR~总线最小频宽要求;RBR~总线数据传输速率;S510-S530~步骤;MTTD~存活值的最大值;MAC1-MAC4~MAC装置。
具体实施例方式
图2显示依据本发明实施例的嵌入式系统示意图。嵌入式系统2中至少包含了一个仲裁器20、装置22、装置24、装置26、装置28以及总线29。装置22、装置24、装置26、装置28共享总线29,用以通过总线29传送及接收数据。其中,这些装置可以是任一种通讯装置,如有线或无线网络的MAC控制器等等,也可以是任何需要连续传输/接收的装置,其中,每个装置都各具有一个缓冲器以及一个存活值(TTD)。所以,装置22、24、26及28的存活值可分别表示为TDD1、TDD2、TDD3及TDD4。
在本发明中,缓冲器用来暂存传输过程所需的数据,存活值则用来记录缓冲器的目前状态,亦即表示将缓冲器所剩的所有数据完全清空(empty)所需花费的时间。因此,存活值以存取周期(T)表示。举例来说,若存活值TTD为20T,表示再经过20个存取周期后,缓冲器里的数据就会清空,也就是缓冲器里的数据还可再提供20个存取周期的使用。因此,若缓冲器的数据为全满状态(full),则其对应的存活值TTD为最大值,若缓冲器的数据已被清空,则存活值TTD则为0。
举例来说,如图3所示的缓冲器状态与存活值TTD的对应关系示意图,若以8个位来表示存活值TTD的范围,亦即存活值TTD的范围可为0~255T,则缓冲器的数据为全满状态时,TTD=255T,缓冲器的数据被完全清空状态时,TTD=0T,而表示其它缓冲器状态的TTD的值,则依照每一缓冲器的数据存量的多寡,对应至不同的值,如图中的TDD=63T或127T。换言之,愈小的存活值表示缓冲器的数据愈快被清空,因此也必须尽快在TTD变为0之前进行补充。当发生TDD=0T的状态时,就表示发生缓冲器失效。
值得注意的是,存活值TTD的范围可依据实际使用上的系统规格及考虑来动态调整,以应用于各种不同领域中。此外,存活值TTD也可依据不同的使用需求来做变化,以反应缓冲器的真实变化情形。因此,存活值TTD的变化乃由缓冲器所在的装置来控制。举例来说,于本实施例中,当总线29的数据传入装置22的缓冲器时,装置22可将其对应的存活值TTD1增加,而当装置22的缓冲器数据送出给传输媒体时,可将其对应的存活值TTD1减少。
如图2及图3所示,仲裁器20的工作在于管理总线的使用权,所以当任一装置欲取得总线使用权时,会对仲裁器20发出要求信号,仲裁器20便接收由每一装置所传送的要求信号,所有要求信号中皆会包含每一装置的存活值。接着,仲裁器20在每一段存取周期中,给予具有最小存活值的装置使用权,使其通过总线存取数据。当被选取的装置开始通过总线存取数据时,由于缓冲器的数据增加了,其对应的存活值将被增加。不管是选取或未选取的装置,由于传输过程中装置会一直把缓冲器的数据送出给传输媒体,其对应的存活值将会随着存取周期持续地减少。
此外,仲裁器20会持续检测所有要求信号中的存活值,当装置中任一者的存活值变成最小时,仲裁器会在另一存取周期中选取当时具有最小值存活值的装置来通过总线存取数据。举例来说,若于某一存取周期时,装置22与装置24同时向仲裁器20发出要求信号,且其存活值分别为TTD1=2T与TTD2=5T。当仲裁器20收到这两个要求信号时,由于TTD1的值为最小,因此总线使用权将会分配给存活值TTD1对应的装置22。
当经过数个存取周期后,由于装置24持续地把缓冲器的数据送出给媒体,使得其对应的存活值TTD2减少,而装置22则因为获得总线上的数据而使得其对应的存活值TTD1增加,假设分别变成TTD1=10T与TTD2=1T。当仲裁器20再次检测时,发现此时TTD2的值为最小,因此总线使用权将会分配给存活值TTD2对应的装置24。如此一来,仲裁器20便可通过检测每个装置所发出的要求信号的存活值大小,有效反应每个装置的缓冲器使用状态以分配总线使用权,并且具有愈小的存活值的装置将愈快拥有总线使用权。
尽管将缓冲器尺寸缩小一直是设计上努力的目标,但是,如何在避免发生缓冲器失效的情况下,而能将缓冲器缩小到最小尺寸,却一直是个极待思考并解决的问题。一般而言,嵌入式系统如系统单芯片(SOC)内的系统配置及参数,例如使用何种处理器、有几个装置、有几条总线以及总线的数据传输速率(data rate)等等.......,所有规格均于设计时已事先知道,不会再任意改变。因此,可以利用这些已知的系统配置及参数来决定装置所需的缓冲器尺寸。
图4显示依据本发明实施例的缓冲器尺寸决定方法示意图。首先,于步骤S410,提供装置的下列参数缓冲器充填时间(bus fill time,BFT)、反应延迟时间(request response time,RRT)、媒体数据率(media data rate,MDR)以及装置数目(number of bus master,NBM)。接着,如步骤S420,再根据上述的参数BFT、RRT、MDR以及NBM算出每一装置中缓冲器的尺寸(minimum buffer size,MBS),其中,缓冲器充填时间BFT表示每次将总线数据送到发出要求缓冲器中所需的时间;反应延迟时间RRT表示响应要求信号的反应时间,包含装置反应、仲裁器切换总线使用权以及通过桥接器将数据前传所需的延迟时间;媒体数据率MDR表示在每个存取周期中,将缓冲器的数据送出到传输媒体的最大数据传输速率;以及装置数目NBM则表示系统中,有实时频宽考虑的装置数目,其中,若系统中,包含某些只要曾被执行即可的装置,这些装置对频宽的索求极低,无需要求时效性的连续传输,所以可不列入装置数目的考虑。因此,实作上,能将这些装置的存活值TTD设为最大值,如此一来,当上述有实时频宽考虑的装置全部处理完毕后,再对这些装置进行处理即可。
缓冲器的尺寸MBS则可依据下列公式决定
MBS=[(BFT+RRT)*NBM]*MDR (1)举例来说,如果NBM为4、MDR为1字节/T而BFT与RRT分别为2T及3T时,缓冲器的尺寸MBS可经由公式(1)算出MBS=[(BFT+RRT)*NBM]*MDR=[(2+3)*4]*1=20(字节)因此,对此配置的系统,每个装置的缓冲器尺寸仅需配置20字节的缓冲器即可。
另外,若以总线最小频宽BDR(bus data rate)表示总线的最小频宽要求,则可知BDR=MBS/BFT (2)以上例而言,其总线最小频宽BDR等于10字节/T,亦即每个存取周期总线将会传送10字节的数据到取得总线使用权的装置的缓冲器中。所以,通过总线最小频宽BDR即能判断是否满足系统的规格要求。一般而言,总线最小频宽BDR如果小于系统规格的系统总线频宽,就不致于发生缓冲器失效的情形。
由公式(1)所算出的缓冲器的尺寸MBS,配合上述利用存活值TTD的仲裁法则,可避免缓冲器失效的情况发生,达到有效的总线频宽管理。
图5显示依据本发明实施例的某一装置,在每个存取周期的存活值与总线使用权的关系示意图。如图所示,在步骤S510中,此装置先判断是否取得总线使用权。假设本实施例中,将总线输入数据至缓冲器中的速率以系统总线频宽要求RBR表示,当取得总线使用权时,总线将输入数据至缓冲器中,同时,装置也会将缓冲器的数据持续输出至媒体,此时,每个周期的存活值TTD可表示为TTD=TTD’+(RBR)-1(如步骤S520),其中,TTD’为取得总线使用权之前的数据剩余量。如果没有取得总线使用权,无法使用总线送数据进入到缓冲器中,装置将缓冲器的数据持续送出给媒体,此时每个周期的存活值的变化可表示为TTD=TTD’-1,其中,TTD’为取得总线使用权之前的数据剩余量(如步骤S530)。
举例来说,假设对一个有4个MAC控制器MAC1-MAC4的嵌入式系统,其参数分别如下NBM=4,MDR=1(字节/T),BFT=2T,RRT=3T根据上述公式(1)及(2)可求得所需缓冲器的尺寸MBS为MBS=[(BFT+RRT)*NBM]*MDR=[(2+3)*4]*1=20(字节)此时,总线最小频宽要求BDR为BDR=MBS/BFT=20/2=10(字节/T)另外,存活值TTD的最大值MTTD可以依照下述公式决定MTTD=MBS/MDR(3)其中,MBS为缓冲器的尺寸,且MDR为媒体数据率,存活值TTD的范围介于0与MTTD之间。存活值TTD的最大值MTTD表示将缓冲器充满所需的最大存取周期。通过适当选择MTTD,可更有效地掌握缓冲器的状态。因此,可以得知存活值TTD的最大值MTTD=MBS/MDR=20/1=20T亦即存活值的范围为0T~20T。
以上例而言,当所有装置的存活值皆相同时,其总线使用权的顺序可以定义为MAC1、MAC2、MAC3,最后是MAC4。假设于最差的情况下(worst case),4个装置都为全速运作时,总线使用权亦可依一定顺序轮流提供给每个装置。
图6显示依据本发明实施例的总线使用权优先级示意图。如图所示,若有一个装置没有提出要求,则总线使用权将转给下一个顺位的装置。图7则显示依据本发明实施例的装置存活值在每个存取周期的变化情形。如图所示,当装置于一存取周期取得总线使用权时,此存取周期的存活值TTD变为TTD+10-1。没有取得总线使用权时的存取周期的存活值TTD则为TTD-1。举例来说,若MAC1至MAC4的存活值分别表示为TDD1至TTD4,且假设TDD1至TTD4的值皆为3T,当装置MAC1取得总线使用权后,下一个存取周期时,MAC1至MAC 4的存活值TDD1至TTD4则分别变为12T、2T、2T以及2T。
假设上例中的每个装置MAC1至MAC4都是一个快速以太网络用的MAC控制器,并且总线的频宽为100百万赫兹(MHz)、符合AMBA的先进高性能总线(AHB),且其总线宽度为32位。若每个存取周期(T)为10奈秒(ns),缓冲器充填时间BFT与反应延迟时间RRT均为8T,则根据公式(1)及(2)可推算得到下列结果MDR=100M位/秒=1位/10奈秒
=1位/T=0.125字节/TMBS=[(BFT+RRT)*NBM]*MDR=[(8+8)*4]*0.125=8字节此时,总线最小频宽BDR为BDR=MBS/BFT=8/8=1字节/T又,AHB总线的频宽为4字节/T。总线最小频宽BDR为1字节/T,小于AHB总线所要求的频宽,所以即使在MAC1至MAC4都全速传送数据的情况下,只要每个装置皆配置8字节的缓冲器尺寸,并搭配上述存活值TTD仲裁法则,即可确保在存活值TTD变为0之前,可及时取得总线使用权,将数据重新充填到缓冲器中,不会造成缓冲器失效情形的发生。相较于传统设计上需要配置1.536K字节的缓冲器尺寸给每个装置,依据本发明的缓冲器尺寸明显地降低了许多,所以制造成本也可大幅地降低。
上述说明提供数种不同实施例或应用本发明的不同特性的实施例。实例中的特定装置、公式以及方法是用以帮助阐释本发明的主要精神及目的,当然本发明不限于此。对于任何系统配置为已知的系统,尤其是系统单芯片(SOC)的应用,可根据不同的系统规格及复杂度,适当地调整上述公式,配合本发明的存活值TTD仲裁法则以达到缩小缓冲器尺寸的目的。
因此,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
权利要求
1.一种缓冲器尺寸决定方法,用于嵌入式系统,该方法包含测量缓冲器充填时间与反应延迟时间,其中,缓冲器发出要求信号,而该反应延迟时间为响应该要求信号的反应时间;计算媒体数据率以及多个装置的数目;以及依据该缓冲器充填时间、该反应延迟时间、该媒体数据率、与该等装置的数目以决定该等装置中,每一缓冲器的尺寸。
2.根据权利要求1所述的缓冲器尺寸决定方法,其中,该缓冲器充填时间为每次将总线数据送到该缓冲器中所需的时间。
3.根据权利要求1所述的缓冲器尺寸决定方法,其中,该反应时间包含装置反应、仲裁器切换总线的使用权以及通过桥接器将该总线的数据前传所需的延迟时间。
4.根据权利要求1所述的缓冲器尺寸决定方法,其中,该媒体数据率为在每个存取周期中,将该缓冲器的数据送出到传输媒体的最大数据传输速率。
5.根据权利要求1所述的缓冲器尺寸决定方法,其中还包含将相对应该等装置的多个要求信号传送到该仲裁器中;以及该仲裁器在存取周期中,依据相对应该等装置的多个存活值,从该等装置中,择一选择以通过该总线存取数据;其中,被选取的装置具有最小的存活值,且当该被选取的装置通过该总线存取数据时,增加该被选取的装置所对应的该最小的存活值。
6.根据权利要求5所述的缓冲器尺寸决定方法,其中还包含将该等装置中,对应至所有未被选取装置的存活值减少。
7.根据权利要求5所述的缓冲器尺寸决定方法,其中还包含当该等装置中,某一装置的存活值变成最小时,在某一存取周期时,选取某该装置以通过该总线存取数据。
8.一种嵌入式系统,包含总线;多个装置,且在该等装置中的每一装置,皆包含缓冲器以及存活值,而该存活值被用来记录该缓冲器的目前状态,其中,该缓冲器的尺寸是依据该嵌入式系统的缓冲器充填时间、反应延迟时间、媒体数据率、与该等装置的数目所决定;以及仲裁器,接收由该等装置所传送的多个要求信号,并在每一存取周期中,依据该等装置的多个存活值,选择该等装置中,具有最小存活值的某一装置以通过该总线存取数据。
9.根据权利要求8所述的嵌入式系统,其中还包含将该等装置中,对应至所有未被选取装置的存活值减少。
10.根据权利要求8所述的嵌入式系统,其中还包含当该等装置中,某该装置的存活值变成最小时,在某一存取周期时,该仲裁器选取某该装置以通过该总线存取数据。
全文摘要
本发明提供一种缓冲器尺寸(Buffer size)决定方法,用于嵌入式系统,此方法包含以下步骤首先,测量缓冲器充填时间(buffer fill time,BFT)与反应延迟时间(request response time,RRT);接着,计算媒体数据率(media data rate,MDR)以及多个装置的数目(number of bus master,NBM);最后,依据此缓冲器充填时间、此反应延迟时间、此媒体数据率、与此等装置的数目以决定此等装置中,每一缓冲器的尺寸。
文档编号H04L12/56GK1920795SQ20061015173
公开日2007年2月28日 申请日期2006年9月8日 优先权日2006年9月8日
发明者徐荣灿, 蔡文宗 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1