[发明专利]一种应用于PCI‑E的流量控制方法、设备及系统有效
申请号: | 201310356787.0 | 申请日: | 2013-08-15 |
公开(公告)号: | CN104375967B | 公开(公告)日: | 2017-09-05 |
发明(设计)人: | 王曦爽;侯锐;李晔 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F13/38 | 分类号: | G06F13/38;G06F13/42 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用于 pci 流量 控制 方法 设备 系统 | ||
技术领域
本发明涉及数据传输技术领域,尤其涉及一种应用于PCI-E的流量控制方法、设备及系统。
背景技术
快捷外设互联标准(PCI-E,Peripheral Component Interconnect Express)是计算机内部总线外设互联标准(PCI,Peripheral Component Interconnect)的一种。在PCI-E总线上,数据以报文形式进行传输,PCI-E的各级节点中设置缓存存放报文。当缓存满载后,本级节点将直接丢弃上级节点后续发送的报文,而上级节点则会择机重发被丢弃的报文,直到报文成功到达本级节点。这种重发机制大大降低了数据链路的利用率。
目前,PCI-E总线上使用基于额度(Credit-Based)的流量控制(Flow Control)机制协调节点间的报文收发:报文到达缓存时被分解为报文头(Header)和报文数据(Data)两部分,对应地,缓存包括报文头缓存和报文数据缓存两部分;本级节点根据本地缓存计算额度(Credit),额度用于指示本地缓存能够存放的报文数量,本级节点将额度上报上级节点,上级节点根据该额度向本级节点发送报文,从而提高数据链路的利用率。
但是,在上述技术方案中,报文头缓存和报文数据缓存的容量是固定的,报文头的长度也是固定的,而报文数据的长度并不是固定的,因此无法保证报文头缓存存放报文头的额度与报文数据缓存存放报文数据的额度相同,造成缓存资源的浪费。
发明内容
为了解决上述问题,本发明实施例提供了一种应用于PCI-E的流量控制方法、设备及系统,用于解决缓存资源浪费的问题,提高缓存空间的利用率。
本发明第一方面提供了一种流量控制方法,应用于PCI-E系统中,上述PCI-E系统中的节点包含至少一个全局缓存池,其中,上述流量控制方法,包括:
获取上述节点的上级节点当前需要传输的传输层数据报文的报文信息;
根据上述传输层数据报文的报文信息以及上述全局缓存池中用于缓存上述传输层数据报文的剩余缓存空间,获取上述传输层数据报文的报文头缓存额度量和报文数据缓存额度量,其中,上述剩余缓存空间包括:用于缓存上述传输层数据报文的报文头的剩余报文头缓存空间,以及用于缓存上述传输层数据报文的报文数据的剩余报文数据缓存空间,上述报文头缓存额度量用于指示上述剩余报文头缓存空间能够缓存上述报文头的数量,上述报文数据缓存额度量用于指示上述剩余报文数据缓存空间能够缓存上述报文数据的数量;
若上述传输层数据报文的报文头缓存额度量与上述报文数据缓存额度量不相等,则:
根据上述传输层数据报文的报文信息和上述全局缓存池的全部剩余缓存空间,获取上述传输层数据报文的额度,其中,上述额度用于指示当前上述全局缓存池中能够存放的上述传输层数据报文的报文数量;
向上述上级节点反馈上述传输层数据报文的额度,以便上述上级节点在上述额度指示的报文数量范围内向上述节点传输上述传输层数据报文。
基于本发明第一方面,在第一种可能的实现方式中,上述报文信息包括:报文头长度和报文数据长度;
上述获取上述传输层数据报文的报文头缓存额度量和报文数据缓存额度量,包括:
将上述剩余报文头缓存空间除以上述传输层数据报文的报文头长度,获得上述传输层数据报文的报文头缓存额度量;
将上述剩余报文数据缓存空间除以上述传输层数据报文的报文数据长度,获得上述传输层数据报文的报文数据缓存额度量。
基于本发明第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述获取上述传输层数据报文的额度,包括:
将上述全局缓存池的全部剩余缓存空间除以上述传输层数据报文的报文长度,获得上述传输层数据报文的额度,其中,上述传输层数据报文的报文长度等于上述传输层数据报文的报文头长度和报文数据长度之和。
基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第三种可能的实现方式中,上述获取上述传输层数据报文的额度之后,还包括:
根据上述传输层数据报文的报文信息和上述传输层数据报文的额度,将上述全局缓存池的全部剩余缓存空间划分为上述传输层数据报文的报文头缓存空间和报文数据缓存空间,其中,上述传输层数据报文的报文头缓存空间和报文数据缓存空间分别用于存储上述传输层数据报文的报文头和报文数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310356787.0/2.html,转载请声明来源钻瓜专利网。