输入/输出电路以及数据传输控制方法

文档序号:9750741阅读:499来源:国知局
输入/输出电路以及数据传输控制方法
【技术领域】
[0001]本发明涉及一种输入/输出电路以及数据传输控制方法,特别涉及一种根据数据封装所对应的权重、封装大小以及各个缓冲器的等待时间决定缓冲器的传输优先权的输入/输出电路以及数据传输控制方法。
【背景技术】
[0002]随着科技的进步,计算机系统的复杂度也随之越来越高。而在此情况下,计算机系统的处理效率是与数据封装的传输速度以及传输效率有紧密的关联性。一般而言,于传输多个信道的数据封装时,主要的处理方式为将数据封装统一集中再经由一仲裁设备进行传输。举例来说,当仲裁设备接收到数据封装的普通传输请求后,轮流地将传输优先权给予每个缓冲器,使得每个缓冲器皆可公平地取得传输数据封装的机会。然而,尽管前述的仲裁方式是公平地将机会给予每个缓冲器,但也因此带来缺少灵活性的缺点,进而降低数据传输的效率。此外,由于前述的仲裁方式并未考虑到数据封装的大小,因此在数据封装大小差异很大的情况下,对传输数据封装较小的缓冲器而言则较不公平。因此,如何有效且公平地将传输优先权分配给缓冲器为目前所需解决的问题。

【发明内容】

[0003]为解决所述问题,本发明一实施例提供一种输入/输出电路,适用于计算机系统,包括多个缓冲器、储存模块、多个计数器、多个计时器以及仲裁器。缓冲器分别对应于多个虚拟通道的其中一个,分别具有令牌桶且根据令牌桶的令牌数量以及计数信号输出普通传输请求。储存模块储存查找表。计数器,分别根据所对应的其中一个缓冲器的权重累计所输出的数据量并输出计数信号。计时器,分别在所对应的其中一个缓冲器输出普通传输请求后开始累计等待时间。当等待时间超过预定时间时,输出超时的传输请求。仲裁器接收超时的传输请求、普通传输请求,以及根据超时的传输请求以及普通传输请求选择其中一个缓冲器。
[0004]本发明另一实施例提供一种数据传输控制方法,步骤包括:判断多个缓冲器中是否有待输出的数据封装;多个计数器分别累计所述缓冲器的每一个所输出的数据量,并根据所累计的所述数据量分别输出计数信号,所述多个计数器分别对应于所述缓冲器的其中一个;所述缓冲器的每一个分别根据所对应的令牌桶中令牌的数量以及所述计数信号输出普通传输请求;多个计时器分别在所述缓冲器的每一个输出所述普通传输请求后开始累计等待时间,当所述等待时间超过预定时间时输出超时的传输请求,所述多个计时器分别对应于所述缓冲器的其中一个;仲裁器接收超时的传输请求、普通传输请求;仲裁器根据超时的传输请求以及普通传输请求选择其中一个缓冲器,其中权重储存于储存模块的查找表中;以及通过被选择的缓冲器的其中一个输出数据封装。
[0005]通过使用本发明的输入/输出电路以及数据传输控制方法能够获得更加灵活的仲裁机制,使数据封装传输的效率和速度大大提高。
【附图说明】
[0006]图1为根据本发明一个实施例所述的输入/输出电路的示意图;以及
[0007]图2为根据本发明一个实施例所述的数据传输控制方法的流程图。
【具体实施方式】
[0008]有关本发明的输入/输出电路以及数据传输控制方法适用的其它范围将于接下来所提供的详述中清楚易见。必须了解的是下列的详述以及具体的实施例,当提出有关输入/输出电路以及数据传输控制方法的示范实施例时,仅作为描述的目的以及并非用以限制本发明的范围。
[0009]图1为显示根据本发明一个实施例所述的输入/输出电路的示意图。如图1所示,输入/输出电路100包括多个缓冲器I1a?110η、多个令牌桶(token bucket) 11 Ia?Illn、多个计数器112a?112η、多个计时器113a?113η、储存模块120以及仲裁器(arbiter) 130。其中,每个缓冲器IlOa?IlOn皆配置有一个令牌桶、一个计数器以及一个计时器。令牌桶Illa?Illn用以储存令牌。计数器112a?112η分别累计所对应的缓冲器IlOa?IlOn所输出的数据量,并根据所累计的数据量输出计数信号Sa。当缓冲器IlOa?IlOn有数据封装需要输出时,缓冲器I 1a?11On分别根据令牌桶11 Ia?11 In中令牌的数量以及计数器112a?112n所输出的计数信号Sa输出普通传输请求Sr。计时器112a?112η分别于每个缓冲器IlOa?IlOn输出普通传输请求S r后开始累计等待时间。当等待时间超过预定时间时,计时器112 a?112n分别输出超时的传输请求St ο储存模块120储存查找表。其中,储存模块120可为动态随机存取存储器(DRAM)。查找表具有对应于不同类型的数据的多个权重。仲裁器130接收超时的传输请求St以及普通传输请求Sr,并根据超时的传输请求St以及普通传输请求Sr选择缓冲器IlOa?IlOn的其中一个,而被选择到的缓冲器IlOa?IlOn的其中一个输出储存于其中的数据封装。其中,输入/输出电路100可为片上系统(System-on-Chip,SoC)的一部分,而仲裁器130可与主处理器,例如中央处理器CPU,连接,以将数据封装传输至其中。
[0010]根据本发明一个实施例,缓冲器IlOa?IlOc分别用以传输控制指令、纯数据包以及突发信息。对于处理器而言,由于控制指令的重要性较纯数据包以及突发信息高,故控制指令对应至最低的权重,例如于此实施例中设定为I,而纯数据包的重要性次高,故其对应的权重大于控制指令所对应的权重,例如于此实施例中设定为10,以及由于突发信息的重要性为最低,故其对应的权重为最大例如于此实施例中设定为20。然而,当缓冲器I 1a?IlOc有封装要输出时,首先判断所对应的令牌桶Illa?Illc中令牌的数量是否足够。其中,传输数据封装时所需的令牌数量与数据封装的数据类型以及数据量有关,例如,所需令牌数量=权重*数据量。
[0011]举例来说,当缓冲器IlOa要传输一个数据量为10个单位的控制指令封装时,缓冲器IlOa首先判断令牌桶Illa中是否具有10个令牌。当令牌桶Illa中的令牌数超过或等于10个时,缓冲器IlOa输出普通传输请求Sr至仲裁器130。而仲裁器130于接收到缓冲器IlOa的普通传输请求Sr后,将数据封装的传输优先权给予缓冲器110a。
[0012]此外,由于要传输的数据的类型以及数据封装的大小不同,因此缓冲器IlOa?I 1c所分别对应的令牌桶11 Ia?11 Ic也具有不同的大小。举例来说,缓冲器I 1a传输数据封装所需的令牌数量为10,以及缓冲器IlOc传输数据封装所需的令牌数量为100。由于缓冲器IlOa所传输的数据封装的类型较为重要,故可将令牌桶IlOa的大小设定为100。由于缓冲器IlOc所传输的数据封装的类型较不重要,故可将令牌桶IlOc的大小设定为200。在令牌桶充满令牌的情况下,缓冲器IlOa所能传输数据封装的次数为10次,而缓冲器IlOc所能传输数据封装的次数仅为2次。相较之下,缓冲器IlOa可传输的次数较多,即其传输数据封装的机会也较高。值得住意的是,令牌桶的大小可根据使用者的需求进行调整,以控制输出数据封装的机会。
[0013]根据本发明另一个实施例,使用者可根据数据的重要性、封装大小以及此类型累计占用传输资源的状况调整给予令牌的数量。举例来说,每隔η秒令牌桶Illa补充20个令牌,而令牌桶11 Ic补充50个令牌。由于缓冲器传输数据封装会减少令牌的数量,故也可以在令牌数量减少后,适当地控制令牌桶的补充数量以间接地控制传输数据封装的机会。
[0014]根据本发明一个实施例,当仲裁器130同时接收到多个普通传输请求Sr时,仲裁器130则根据普通传输请求Sr所分别对应的权重选择缓冲器。举例来说,当仲裁器130同时接收到缓冲器IlOb以及缓冲器IlOc的普通传输请求Sr时,由于缓冲器IlOb所对应的纯数据包的重要性大于缓冲器IlOc所对应的突发信息的重要性,故仲裁器130将优先权配置给缓冲器IlOb以传输数据封装。
[0015]根据本发明另一个实施例,为了避免传输重要性较低的数据封装的缓冲器等待时间过长,因此当缓冲器IlOa?IlOc输出普通传输请求Sr后,其所分别对应的计时器113a?113c开始累计等待的时间。当一个缓冲器在预定时间内都未被仲裁器130选择时,该缓冲器输出超时的传输请求St以提醒仲裁器130。仲
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1