信用分配方法和交换的制造方法

文档序号:7818983阅读:172来源:国知局
信用分配方法和交换的制造方法
【专利摘要】本发明适用于交换机领域,提供了一种信用分配方法和交换机;在所述交换机中添加共享信用池;从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定;统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。这样,在交换机中增加该共享信用池之后,能够将该共享信用池中的信用与多个端口信用池共享,保证每个端口信用池都持续有足够的信用来持续存储TLP。
【专利说明】信用分配方法和交换机

【技术领域】
[0001]本发明属于交换机领域,尤其涉及一种信用分配方法和交换机。

【背景技术】
[0002]计算机系统中,总线是计算机内部组件或计算机之间进行数据传输的子系统。与点对点连接不同,总线可以通过同一组传输线与多个外设建立逻辑连接;具体是将每个总线定义一组连接器,与插拔设备、插卡或线缆物理定义在一起。
[0003]目前,业界已经开发出大量不同的计算机接口(Input/Output,I/O)互连标准。近些年最流行的是PCI标准,对PCI总线定义了桥的概念,将本地处理器总线与外设隔离开,允许CPU以更快的速度运行。
[0004]近年,PCIe逐渐流行起来。PCIe提供了更高的性能,为下一代系统增强了灵活性和可扩展性,同时与当前的PCI应用保持了软件兼容性。与传统PCI相比,PCIe协议更加复杂,包括三层:事务层、数据链路层和物理层。
[0005]PCIe采用点对点的系统构架。在PCIe系统中,根复合体将处理器和存储器子系统连接到同一 PCIe交换机。根复合体类似于PCI系统中的一个主桥,代表处理器产生事务请求。处理器与根复合体之间通过一个本地I/O互连线进行互连。根复合体可以独立实现,也可以与处理器集成在一起。一个根复合体可能包含多个PCIe端口,这样多个PCIe交换机才能够连接到根复合体的端口上。
[0006]PCIe协议采用基于信用的流控制机制。随着数据速率的增加,信用的使用量在增多,信用使用的速率也在加快。但与此同时,现有的交换机仍仅通过端口信用池提供信用,容易耗尽端口信用池提供的信用。


【发明内容】

[0007]本发明的目的在于提供一种信用分配方法和交换机,以解决现有技术仅通过端口信用池提供信用,在进行大数据量的事务层包传输时容易耗尽该端口信用池提供的信用这一问题。
[0008]第一方面,本发明提供一种信用分配方法,应用于具有多个端口的交换机,所述信用分配方法包括:
[0009]步骤All,在所述交换机中添加共享信用池;
[0010]步骤A12,从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定;
[0011]步骤A13,统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。
[0012]第二方面,本发明提供一种交换机,所述交换机具有多个端口 ;所述交换机包括共享信用池,还包括与所述端口关联的端口信用池;
[0013]所述交换机还包括控制模块,所述控制模块包括减去单元和共享单元;
[0014]所述减去单元用于:从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定;
[0015]所述共享单元用于:统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。
[0016]本发明的有益效果:如果从某个端口接收的TLP已消耗与该端口关联的端口信用池中的大部分信用,为保证能够继续从该端口接收TLP并在该端口信用池中存储,在该端口信用池中剩余的信用的个数小于第一阈值时将共享信用池中的信用分配给该端口信用池;这样,在交换机中增加该共享信用池之后,能够将该共享信用池中的信用与多个端口信用池共享,保证每个端口信用池都持续有足够的信用来持续存储TLP。

【专利附图】

【附图说明】
[0017]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是本发明实施例提供的信用分配方法的工作流程图;
[0019]图2是本发明实施例提供的信用分配方法的一种优化工作流程图;
[0020]图3是本发明实施例提供的信用分配方法的又一种优化工作流程图;
[0021]图4是本发明实施例提供的交换机的组成结构;
[0022]图5是本发明实施例提供的交换机的一种优化组成结构;
[0023]图6是本发明实施例提供的交换机的又一种优化组成结构。

【具体实施方式】
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0025]本发明实施例所述的交换机,至少可用于事务层包(Transact1n Lay Packet,TLP)的传输。但本发明实施例支持多种不同协议的TLP传输;例如支持基于I/O互连标准而定义的协议;具体例如,支持最新的总线和接口标准(PC1-Express,PCIe)的TLP的传输。
[0026]本发明实施例为解决现有技术仅通过端口信用池提供的信用进行TLP的传输所带来的信用耗尽这一局限,创新性地在交换机中添加了共享信用池,当与某个端口关联的端口信用池所剩余的信用较少时,将该共享信用池所包含的信用对该端口信用池分享,以增加该端口信用池中剩余的、可用的信用的个数。
[0027]值得说明的是,本发明实施例所述的信用可以是用于存储TLP的存储空间。
[0028]本发明实施例在添加共享信用池的基础上,提供了信用分配方法;为便于描述本发明实施例提供的所述信用分配方法,图1示出了本发明实施例提供的信用分配方法的工作流程,但图1仅示出了与本发明实施例相关的部分。具体地,本发明实施例提供的信用分配方法应用于具有多个端口的交换机,如图1所示,所述信用分配方法包括的基础步骤为三步:步骤All、步骤A12和步骤A13。
[0029]步骤All,在所述交换机中添加共享信用池。
[0030]具体地,在现有技术已提供为交换机的端口关联了端口信用池的基础上,本发明实施例还另外添加了共享信用池;与所述端口信用池一样,共享信用池也由多个信用组成。其中,每个信用与一个或多个存储空间对应;因此,每个信用都可以用来存储TLP;值得说明的是,根据TLP的数据量,可能是由一个信用存储一个TLP,也可能是由多个信用来存储一个TLP ;还可能是,由一个信用存储一个TLP的头字段,也可能是由多个信用来存储一个TLP的头字段;还可能是,由一个信用存储一个TLP的载荷字段,也可能是由多个信用来存储一个TLP的载荷字段。需说明的是,本发明实施例对信用代表的存储空间的大小,在此不做限定;通常情况下,端口信用池中的信用所指向的存储空间的大小与共享信用池中的信用所指向的存储空间的大小是一样大的。
[0031]作为交换机中的端口与端口信用池的一关联方式,对于交换机中的每个端口,一个端口与一个端口信用池关联;从而,每个端口都有对应关联的端口信用池。当从某个端口接收到TLP时,仅从与该端口关联的端口信用池中获取信用,在获取到的信用中存储该TLP。
[0032]作为交换机中的端口与端口信用池的一关联方式,对于交换机中的每个端口,多个端口可同时与一个端口信用池关联。当从某个端口接收到TLP时,仅从与该端口关联的端口信用池中获取信用,在获取到的信用中存储该TLP。
[0033]另需说明的是,本发明实施例所述的交换机,对于该交换机的一个或多个端口,一个端口可外接一个外部设备;在本发明实施例中,该外部设备为采用TLP进行数据传输的设备,但本发明实施例对该外部设备具体为哪种设备在此不做限定,例如该外部设备可以是其它的交换机、路由器或者终端。
[0034]步骤A12,从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定。
[0035]在本发明实施例中,交换机的端口与外部设备连接之后,在该外部设备向该端口发送TLP时,以端口信用池中的信用指定的存储空间对该TLP进行存储。根据该TLP的大小(及该TLP的数据量)确定需要多少个信用才能对该TLP进行完整存储,在本发明实施例中,将根据该TLP的数据量确定出的所需的信用个数作为第一个数。
[0036]在本发明实施例中,每从某个端口接收到TLP,都需采用与该端口关联的端口信用池中的信用所指定的存储空间来对应存储该TLP。
[0037]步骤A13,统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。其中,所述第一阈值为预先根据实验数据设定的阈值,设定该第一阈值是为了实时保证:所述端口信用池中剩余的信用的个数能够不间断支持对再次从该端口接收到的TLP的存储。
[0038]在本发明实施例中,每次从端口接收到TLP,并在与该端口关联的端口信用池中的信用所指定的存储空间完成对该TLP的存储之后,统计一次所述端口信用池中剩余的信用的个数。
[0039]如果统计出的个数小于第一阈值,代表再次从该端口接收到TLP时,与该端口关联的端口信用池所剩余的信用可能不能完整存储再次接收到的TLP。对此情况,现有技术无能为力,不能从该端口继续接收TLP。而本发明实施例在这种情况下,将所述共享信用池中的信用分配给该端口信用池,增加该端口信用池中剩余的信用的个数,使得该端口信用池能够继续从该端口接收新到达的TLP。
[0040]值得说明的是,所述第二个数为:在步骤A13统计出的个数小于第一阈值时,从所述共享信用池中的信用向该端口信用池分配的信用的个数。但本发明实施例对所述第二个数的具体数值不做限定。并且所述第一个数与所述第二个数可以为同一数值,也可以为不同数值。
[0041]作为本发明一优选实施方式,所述第一个数与所述第二个数的差值属于预设数值范围;当然,可通过程序更改或人为更改该预设数值范围;优选地,在更改该预设数值范围时,根据以往的实验数据来设定,以往的实验数据包括:从所述共享信用池中向该端口信用池分配的第二个数的信用之后,该端口信用池关联是否还能完整存储再次接收到的TLP。
[0042]需说明的是,由于交换机具有多个端口,可以同时从至少两个端口分别接收不同的TLP,并以对应关联的端口信用池中的信用指定的存储空间对该不同的TLP进行对应存储。相应地,可同时控制该共享信用池向多个该端口信用池分配信用,实现该共享信用池中的信用与多个端口信用池共享。
[0043]作为本发明实施例一实施方式,对于从某个端口接收到的TLP并已使用与该端口关联的端口信用池中的信用存储该TLP,如果交换机丢弃该TLP,则在该端口信用池中恢复已减去的该第一个数的信用,并将所述端口信用池从所述共享信用池获取到的信用返还所述共享信用池;优选地,如果交换机丢弃该TLP,则在该端口信用池中恢复已减去的该第一个数的信用,并将所述端口信用池从所述共享信用池获取到的所述第二个数的信用全部返还所述共享信用池,使得共享信用池具有更多的信用与每个端口信用池共享。
[0044]图2示出了本发明实施例提供的信用分配方法的一种优化流程,为了便于描述,仅不出了与本发明实施例相关的部分。
[0045]作为本发明实施例一实施方式,如图2所示,与所述端口关联的端口信用池包括端口头信用池和端口载荷信用池。
[0046]其中,所述端口头信用池用于:存储TLP的头字段中的数据。其中,TLP的头字段包括:TLP的格式的字段;例如,TLP头所占的字段;再例如,TLP中哪些字节代表什么含义的字段。另外,TLP的头字段还包括:传输所需的字段;例如,传输该TLP所需经过的地址,包括:需经过的路由器的IP地址,需经过的其它交换机的IP地址。
[0047]其中,所述端口载荷信用池用于:存储TLP的载荷字段中的数据。其中,TLP的载荷字段包括:两个外部设备在至少经过交换机以TLP进行数据通信时,两个外部设备之间需要传输的数据;即添加到TLP中,以通过TLP来实现该两个外部设备之间交互的数据。
[0048]在如图2所示的流程中,所述步骤A12具体包括步骤A121。
[0049]步骤A121,从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第三个数的信用,在与所述端口关联的端口载荷信用池中减去第四个数的信用,所述第三个数由所述TLP的头字段的数据量确定,所述第四个数由所述TLP的载荷字段的数据量确定。
[0050]在本实施方式中,交换机的端口与外部设备连接之后,在该外部设备向该端口发送TLP时,以端口头信用池中的信用所指定的存储空间存储该TLP的头字段,以端口载荷信用池中的信用所指定的存储空间存储该TLP的载荷字段。
[0051]其中,根据该TLP的头字段的数据大小(及该TLP的头字段的数据量)确定需要多少个信用才能对该TLP的头字段进行完整存储,在本发明实施例中,将根据该TLP的头字段的数据量确定出的所需的信用个数作为第三个数。
[0052]其中,根据该TLP的载荷字段的数据大小(及该TLP的载荷字段的数据量)确定需要多少个信用才能对该TLP的载荷字段进行完整存储,在本实施方式中,将根据该TLP的载荷字段的数据量确定出的所需的信用个数作为第四个数。
[0053]在如图2所示的流程中,所述步骤A13具体包括步骤A131和步骤A132。
[0054]步骤A131,统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第二阈值,则从所述共享信用池分配第五个数的信用至所述端口头信用池。其中,所述第二阈值为预先根据实验数据设定的阈值,设定该第二阈值是为了实时保证:所述端口头信用池中剩余的信用的个数能够不间断支持对再次从该端口接收到的TLP的头字段的存储。
[0055]在本实施方式中,每次从端口接收到TLP,并在与该端口关联的端口头信用池中的信用所指定的存储空间完成对该TLP的头字段的存储之后,统计一次所述端口头信用池中剩余的信用的个数。
[0056]如果统计出的个数小于第二阈值,代表再次从该端口接收到TLP时,与该端口关联的端口头信用池所剩余的信用可能不能完整存储再次接收到的TLP的头字段,因此不能再次从该端口接收TLP。对此情况,现有技术无能为力。而本发明实施例在这种情况下,将所述共享信用池中的信用分配给该端口头信用池,增加该端口头信用池中剩余的信用的个数,使得该端口头信用池能够继续从该端口接收新到达的TLP的头字段。
[0057]步骤A132,统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第三阈值,则从所述共享信用池分配第六个数的信用至所述端口载荷信用池。其中,所述第三阈值为预先根据实验数据设定的阈值,设定该第三阈值是为了实时保证:所述端口载荷信用池中剩余的信用的个数能够不间断支持对再次从该端口接收到的TLP的载荷字段的存储。
[0058]在本实施方式中,每次从端口接收到TLP,并在与该端口关联的端口载荷信用池中的信用所指定的存储空间完成对该TLP的载荷字段的存储之后,统计一次所述端口载荷信用池中剩余的信用的个数。
[0059]如果统计出的个数小于第三阈值,代表再次从该端口接收到TLP时,与该端口关联的端口载荷信用池所剩余的信用可能不能完整存储再次接收到的TLP的载荷字段,因此不能再次从该端口继续接收TLP。对此情况,现有技术无能为力。而本发明实施例在这种情况下,将所述共享信用池中的信用分配给该端口载荷信用池,增加该端口载荷信用池中剩余的信用的个数,使得该端口载荷信用池能够继续从该端口接收新到达的TLP的载荷字段。
[0060]需说明的是,本实施方式所述的第五个数和第六个数,均与上述的第二个数的作用类似,均为根据实验数据预先设定的数值,并且第一个数、第二个数、第三个数、第四个数、第五个数和第六个数通常为不同数值,但在特殊情况下也可以是相同数值,在此不再赘述。
[0061]作为本发明实施例一实施方式,对图2所示的流程进一步优化,所述步骤A131这一步骤之前,所述步骤A13还包括:基于所述TLP的头字段的数据量以第一算法确定所述第五个数。
[0062]在本实施方式中,为保持交换机的端口能够持续接收TLP,必须保证端口头信用池中拥有足够的信用以能够完整地存储下次接收到的TLP的头字段;从而必须在端口头信用池中剩余的信用小于第二阈值时,立即从共享信用池向所述端口头信用池分配第五个数的信用。
[0063]如果第五个数的数值过大,该端口头信用池中剩余的信用会存储冗余,共享信用池中的信用会快速耗尽,导致其它端口信用池没有从共享信用池分配到足够的信用,影响其它端口信用池对大数据量的TLP的头字段的存储;如果第五个数的数值过小,端口头信用池中剩余的信用不足以存储下次接收到的TLP。因此为了折中,本实施方式采用第一算法确定该第五个数,但对第一算法不做限定。在建模出第一算法时,至少以需考虑的参数包括:步骤A131统计出的、每个端口头信用池中剩余的信用的个数。
[0064]类似地,作为本发明实施例一实施方式,对图2所示的流程进一步优化,所述步骤A132这一步骤之前,所述步骤A13还包括:基于所述TLP的载荷字段的数据量以第二算法确定所述第六个数。
[0065]在本实施方式中,为保持交换机的端口能够持续接收TLP,必须保证端口载荷信用池中拥有足够的信用以能够完整地存储下次接收到的TLP的载荷字段;从而必须在端口载荷信用池中剩余的信用小于第三阈值时,立即从共享信用池向所述端口载荷信用池分配第六个数的信用。
[0066]如果第六个数的数值过大,该端口载荷信用池中剩余的信用会存储冗余,共享信用池中的信用会快速耗尽,导致其它端口信用池没有从共享信用池分配到足够的信用,影响其它端口信用池对大数据量的TLP的载荷字段的存储;如果第六个数的数值过小,端口载荷信用池中剩余的信用不足以存储下次接收到的TLP。因此为了折中,本实施方式采用第二算法确定该第六个数,但对第二算法不做限定。在建模出第二算法时,至少以需考虑的参数包括:步骤A132统计出的、每个端口载荷信用池中剩余的信用的个数。
[0067]作为本发明实施例一实施方式,对于从某个端口接收到的TLP,并已使用与该端口关联的端口头信用池中的信用存储该TLP的头字段,并已使用与该端口关联的端口头信用池中的信用存储该TLP的头字段;如果交换机丢弃该TLP,则在该端口头信用池中恢复已减去的该第三个数的信用,并将所述端口头信用池从所述共享信用池获取到的信用返还所述共享信用池;优选地,如果交换机丢弃该TLP,则在该端口头信用池中恢复已减去的该第三个数的信用,将所述端口头信用池从所述共享信用池获取到的所述第五个数的信用全部返还所述共享信用池,使得共享信用池具有更多的信用与每个端口信用池(包括端口头信用池和端口载荷信用池)共享。
[0068]作为本发明实施例一实施方式,对于从某个端口接收到的TLP,并已使用与该端口关联的端口载荷信用池中的信用存储该TLP的载荷字段,并已使用与该端口关联的端口载荷信用池中的信用存储该TLP的载荷字段;如果交换机丢弃该TLP,则在该端口载荷信用池中恢复已减去的该第四个数的信用,并将所述端口载荷信用池从所述共享信用池获取到的信用返还所述共享信用池;优选地,如果交换机丢弃该TLP,则在该端口载荷信用池中恢复已减去的该第四个数的信用,将所述端口载荷信用池从所述共享信用池获取到的所述第六个数的信用全部返还所述共享信用池,使得共享信用池具有更多的信用与每个端口信用池(包括端口头信用池和端口载荷信用池)共享。
[0069]图3示出了本发明实施例提供的信用分配方法的一种优化流程,为了便于描述,仅不出了与本发明实施例相关的部分。
[0070]作为本发明实施例一实施方式,如图3所示,所述端口信用池包括端口头信用池和端口载荷信用池;所述共享信用池包括共享头信用池和共享载荷信用池。
[0071]其中,共享头信用池用于:向多个所述端口头信用池共享其具有的信用。具体地,当所述端口头信用池中剩余的信用的个数小于第四阈值时,以该共享头信用池具有的信用向所述端口头信用池分配。
[0072]其中,共享载荷信用池用于:向多个所述端口载荷信用池共享其具有的信用。具体地,当所述端口载荷信用池中剩余的信用的个数小于第五阈值时,以该共享载荷信用池具有的信用向所述端口载荷信用池分配。
[0073]在如图3所示的流程中,所述步骤A12具体包括步骤A122。
[0074]步骤A122,从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第七个数的信用,在与所述端口关联的端口载荷信用池中减去第八个数的信用,所述第七个数由所述TLP的头字段的数据量确定,所述第八个数由所述TLP的载荷字段的数据量确定。
[0075]在本实施方式中,交换机的端口与外部设备连接之后,在该外部设备向该端口发送TLP时,以端口头信用池中的信用所指定的存储空间存储该TLP的头字段,以端口载荷信用池中的信用所指定的存储空间存储该TLP的载荷字段。
[0076]其中,根据该TLP的头字段的数据大小(及该TLP的头字段的数据量)确定需要多少个信用才能对该TLP的头字段进行完整存储,在本发明实施例中,将根据该TLP的头字段的数据量确定出的所需的信用个数作为第七个数。
[0077]其中,根据该TLP的载荷字段的数据大小(及该TLP的载荷字段的数据量)确定需要多少个信用才能对该TLP的载荷字段进行完整存储,在本发明实施例中,将根据该TLP的载荷字段的数据量确定出的所需的信用个数作为第八个数。
[0078]在如图3所示的流程中,所述步骤A13具体包括步骤A133和步骤A134。
[0079]所述步骤A133,统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第四阈值,则从所述共享头信用池中分配第九个数的信用至所述端口头信用池。
[0080]在本实施方式中,每次从端口接收到TLP,并在与该端口关联的端口头信用池中的信用所指定的存储空间完成对该TLP的头字段的存储之后,统计一次所述端口头信用池中剩余的信用的个数。
[0081 ] 如果统计出的个数小于第四阈值,代表再次从该端口接收到TLP时,与该端口关联的端口头信用池所剩余的信用可能不能完整存储再次接收到的TLP的头字段,因此不能再次同该端口接收TLP。对此情况,现有技术无能为力。而本发明实施例在这种情况下,将所述共享头信用池中的信用分配给该端口头信用池,增加该端口头信用池中剩余的信用的个数,使得该端口头信用池能够继续从该端口接收新到达的TLP的头字段。
[0082]所述步骤A134,统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第五阈值,则从所述共享载荷信用池中分配第十个数的信用至所述端口载荷信用池。
[0083]在本实施方式中,每次从端口接收到TLP,并在与该端口关联的端口载荷信用池中的信用所指定的存储空间完成对该TLP的载荷字段的存储之后,统计一次所述端口载荷信用池中剩余的信用的个数。
[0084]如果统计出的个数小于第五阈值,代表再次从该端口接收到TLP时,与该端口关联的端口载荷信用池所剩余的信用可能不能完整存储再次接收到的TLP的载荷字段,因此不能再次同该端口继续接收TLP。对此情况,现有技术无能为力。而本发明实施例在这种情况下,将所述共享载荷信用池中的信用分配给该端口载荷信用池,增加该端口载荷信用池中剩余的信用的个数,使得该端口载荷信用池能够继续从该端口接收新到达的TLP的载荷字段。
[0085]需说明的是,本实施方式所述的第九个数和第十个数,均与上述的第二个数的作用类似,均为根据实验数据预先设定的数值,并且第一个数、第二个数、第三个数、第四个数、第五个数、第六个数、第七个数、第八个数、第九个数和第十个数通常为不同数值,但在特殊情况下也可以是相同数值,在此不再赘述。
[0086]作为本发明实施例一实施方式,对图3所示的流程进一步优化,所述步骤A133这一步骤之前,所述步骤A13还包括:基于所述TLP的头字段的数据量以第三算法确定所述第九个数。
[0087]在本实施方式中,为保持交换机的端口能够持续接收TLP,必须保证端口头信用池中拥有足够的信用以能够完整地存储下次接收到的TLP的头字段;从而必须在端口头信用池中剩余的信用小于第四阈值时,立即从共享头信用池向所述端口头信用池分配第九个数的信用。
[0088]如果第九个数的数值过大,该端口头信用池中剩余的信用会存储冗余,共享头信用池中的信用会快速耗尽,导致其它端口信用池没有从共享头信用池分配到足够的信用,影响其它端口信用池对大数据量的TLP的头字段的存储;如果第九个数的数值过小,端口头信用池中剩余的信用不足以存储下次接收到的TLP。因此为了折中,本实施方式采用第三算法确定该第九个数,但对第三算法不做限定。在建模出第三算法时,至少以需考虑的参数包括:步骤A133统计出的、每个端口头信用池中剩余的信用的个数。
[0089]作为本发明实施例一实施方式,对图3所示的流程进一步优化,所述步骤A134这一步骤之前,所述步骤A13还包括:基于所述TLP的载荷字段的数据量以第四算法确定所述第十个数。
[0090]在本实施方式中,为保持交换机的端口能够持续接收TLP,必须保证端口载荷信用池中拥有足够的信用以能够完整地存储下次接收到的TLP的载荷字段;从而必须在端口载荷信用池中剩余的信用小于第五阈值时,立即从共享载荷信用池向所述端口载荷信用池分配第十个数的信用。
[0091]如果第十个数的数值过大,该端口载荷信用池中剩余的信用会存储冗余,共享载荷信用池中的信用会快速耗尽,导致其它端口信用池没有从共享载荷信用池分配到足够的信用,影响其它端口信用池对大数据量的TLP的载荷字段的存储;如果第十个数的数值过小,端口载荷信用池中剩余的信用不足以存储下次接收到的TLP。因此为了折中,本实施方式采用第四算法确定该第十个数,但对第四算法不做限定。在建模出第四算法时,至少以需考虑的参数包括:步骤A134统计出的、每个端口载荷信用池中剩余的信用的个数。
[0092]作为本发明实施例一实施方式,对于从某个端口接收到的TLP,并已使用与该端口关联的端口头信用池中的信用存储该TLP的头字段,并已使用与该端口关联的端口头信用池中的信用存储该TLP的头字段;如果交换机丢弃该TLP,则在该端口头信用池中恢复已减去的该第七个数的信用,并将所述端口头信用池从所述共享头信用池获取到的信用返还所述共享头信用池;优选地,如果交换机丢弃该TLP,则在该端口头信用池中恢复已减去的该第七个数的信用,将所述端口头信用池从所述共享头信用池获取到的所述第九个数的信用全部返还所述共享头信用池,使得共享头信用池具有更多的信用与每个端口头信用池共享。
[0093]作为本发明实施例一实施方式,对于从某个端口接收到的TLP,并已使用与该端口关联的端口载荷信用池中的信用存储该TLP的载荷字段,并已使用与该端口关联的端口载荷信用池中的信用存储该TLP的载荷字段;如果交换机丢弃该TLP,则在该端口载荷信用池中恢复已减去的该第八个数的信用,并将所述端口载荷信用池从所述共享载荷信用池获取到的信用返还所述共享载荷信用池;优选地,如果交换机丢弃该TLP,则在该端口载荷信用池中恢复已减去的该第八个数的信用,将所述端口载荷信用池从所述共享载荷信用池获取到的所述第十个数的信用全部返还所述共享载荷信用池,使得共享载荷信用池具有更多的信用与每个端口载荷信用池共享。
[0094]本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令和相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括R0M/RAM、磁盘、光盘等。
[0095]需要说明的是,本发明实施例提供的交换机与本发明实施例提供的信用分配方法相互适用。
[0096]图4示出了本发明实施例提供的交换机的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分。
[0097]本实施例提供的交换机,如图4所示,所述交换机具有多个端口 61 ;所述交换机包括共享信用池62,还包括与所述端口 61关联的端口信用池63 ;
[0098]所述交换机还包括控制模块64,所述控制模块64包括减去单元641和共享单元642 ;
[0099]所述减去单元641用于:从所述端口 61接收到事务层包TLP时,在与所述端口 61关联的端口信用池63中减去第一个数的信用,所述第一个数由所述TLP的数据量确定;
[0100]所述共享单元642用于:统计所述端口信用池63中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池62分配第二个数的信用至所述端口信用池63。
[0101]图5示出了本发明实施例提供的交换机的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分。
[0102]作为本发明实施例一【具体实施方式】,如图5所示,所述端口信用池63包括端口头信用池631和端口载荷信用池632 ;
[0103]所述减去单元641具体用于:从所述端口 61接收到所述TLP时,在与所述端口 61关联的端口头信用池631中减去第三个数的信用,在与所述端口 61关联的端口载荷信用池632中减去第四个数的信用,所述第三个数由所述TLP的头字段的数据量确定,所述第四个数由所述TLP的载荷字段的数据量确定;
[0104]所述共享单元642具体用于:统计所述端口头信用池631中剩余的信用的个数,如果统计出的个数小于第二阈值,则从所述共享信用池62分配第五个数的信用至所述端口头信用池631 ;
[0105]所述共享单元642还具体用于:统计所述端口载荷信用池632中剩余的信用的个数,如果统计出的个数小于第三阈值,则从所述共享信用池62分配第六个数的信用至所述端口载荷信用池632。
[0106]作为本发明实施例一【具体实施方式】,如图5所示,所述共享单元642还具体用于:
[0107]基于所述TLP的头字段的数据量以第一算法确定所述第五个数;
[0108]基于所述TLP的载荷字段的数据量以第二算法确定所述第六个数。
[0109]图6示出了本发明实施例提供的交换机的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分。
[0110]作为本发明实施例一【具体实施方式】,如图6所示,所述端口信用池63包括端口头信用池631和端口载荷信用池632 ;所述共享信用池62包括共享头信用池621和共享载荷信用池622 ;
[0111]所述减去单元641具体用于:从所述端口 61接收到所述TLP时,在与所述端口 61关联的端口头信用池631中减去第七个数的信用,在与所述端口 61关联的端口载荷信用池632中减去第八个数的信用,所述第七个数由所述TLP的头字段的数据量确定,所述第八个数由所述TLP的载荷字段的数据量确定;
[0112]所述共享单元642具体用于:统计所述端口头信用池631中剩余的信用的个数,如果统计出的个数小于第四阈值,则从所述共享头信用池621中分配第九个数的信用至所述端口头信用池631 ;
[0113]所述共享单元642还具体用于:统计所述端口载荷信用池632中剩余的信用的个数,如果统计出的个数小于第五阈值,则从所述共享载荷信用池622中分配第十个数的信用至所述端口载荷信用池632。
[0114]作为本发明实施例一【具体实施方式】,如图6所示,所述共享单元642还具体用于:
[0115]基于所述TLP的头字段的数据量以第三算法确定所述第九个数;
[0116]基于所述TLP的载荷字段的数据量以第四算法确定所述第十个数。
[0117]本领域技术人员可以理解为本发明实施例提供的交换机所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另夕卜,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0118]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
【权利要求】
1.一种信用分配方法,其特征在于,应用于具有多个端口的交换机,所述信用分配方法包括: 步骤All,在所述交换机中添加共享信用池; 步骤A12,从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定; 步骤A13,统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。
2.如权利要求1所述的信用分配方法,其特征在于,所述端口信用池包括端口头信用池和端口载荷信用池; 所述步骤A12具体包括:从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第三个数的信用,在与所述端口关联的端口载荷信用池中减去第四个数的信用,所述第三个数由所述TLP的头字段的数据量确定,所述第四个数由所述TLP的载荷字段的数据量确定; 所述步骤A13具体包括: 步骤A131,统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第二阈值,则从所述共享信用池分配第五个数的信用至所述端口头信用池; 步骤A132,统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第三阈值,则从所述共享信用池分配第六个数的信用至所述端口载荷信用池。
3.如权利要求2所述的信用分配方法,其特征在于, 所述步骤A131这一步骤之前,所述步骤A13还包括:基于所述TLP的头字段的数据量以第一算法确定所述第五个数; 所述步骤A132这一步骤之前,所述步骤A13还包括:基于所述TLP的载荷字段的数据量以第二算法确定所述第六个数。
4.如权利要求1所述的信用分配方法,其特征在于,所述端口信用池包括端口头信用池和端口载荷信用池;所述共享信用池包括共享头信用池和共享载荷信用池; 所述步骤A12具体包括:从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第七个数的信用,在与所述端口关联的端口载荷信用池中减去第八个数的信用,所述第七个数由所述TLP的头字段的数据量确定,所述第八个数由所述TLP的载荷字段的数据量确定; 所述步骤A13具体包括: 所述步骤A133,统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第四阈值,则从所述共享头信用池中分配第九个数的信用至所述端口头信用池; 所述步骤A134,统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第五阈值,则从所述共享载荷信用池中分配第十个数的信用至所述端口载荷信用池。
5.如权利要求4所述的信用分配方法,其特征在于, 所述步骤A133这一步骤之前,所述步骤A13还包括:基于所述TLP的头字段的数据量以第三算法确定所述第九个数; 所述步骤A134这一步骤之前,所述步骤A13还包括:基于所述TLP的载荷字段的数据量以第四算法确定所述第十个数。
6.一种交换机,其特征在于,所述交换机具有多个端口 ;所述交换机包括共享信用池,还包括与所述端口关联的端口信用池; 所述交换机还包括控制模块,所述控制模块包括减去单元和共享单元; 所述减去单元用于:从所述端口接收到事务层包TLP时,在与所述端口关联的端口信用池中减去第一个数的信用,所述第一个数由所述TLP的数据量确定; 所述共享单元用于:统计所述端口信用池中剩余的信用的个数,如果统计出的个数小于第一阈值,则从所述共享信用池分配第二个数的信用至所述端口信用池。
7.如权利要求6所述的交换机,其特征在于,所述端口信用池包括端口头信用池和端口载荷信用池; 所述减去单元具体用于:从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第三个数的信用,在与所述端口关联的端口载荷信用池中减去第四个数的信用,所述第三个数由所述TLP的头字段的数据量确定,所述第四个数由所述TLP的载荷字段的数据量确定; 所述共享单元具体用于:统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第二阈值,则从所述共享信用池分配第五个数的信用至所述端口头信用池; 所述共享单元还具体用于:统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第三阈值,则从所述共享信用池分配第六个数的信用至所述端口载荷信用池。
8.如权利要求7所述的交换机,其特征在于,所述共享单元还具体用于: 基于所述TLP的头字段的数据量以第一算法确定所述第五个数; 基于所述TLP的载荷字段的数据量以第二算法确定所述第六个数。
9.如权利要求6所述的交换机,其特征在于,所述端口信用池包括端口头信用池和端口载荷信用池;所述共享信用池包括共享头信用池和共享载荷信用池; 所述减去单元具体用于:从所述端口接收到所述TLP时,在与所述端口关联的端口头信用池中减去第七个数的信用,在与所述端口关联的端口载荷信用池中减去第八个数的信用,所述第七个数由所述TLP的头字段的数据量确定,所述第八个数由所述TLP的载荷字段的数据量确定; 所述共享单元具体用于:统计所述端口头信用池中剩余的信用的个数,如果统计出的个数小于第四阈值,则从所述共享头信用池中分配第九个数的信用至所述端口头信用池; 所述共享单元还具体用于:统计所述端口载荷信用池中剩余的信用的个数,如果统计出的个数小于第五阈值,则从所述共享载荷信用池中分配第十个数的信用至所述端口载荷信用池。
10.如权利要求9所述的交换机,其特征在于,所述共享单元还具体用于: 基于所述TLP的头字段的数据量以第三算法确定所述第九个数; 基于所述TLP的载荷字段的数据量以第四算法确定所述第十个数。
【文档编号】H04L12/937GK104394100SQ201410624595
【公开日】2015年3月4日 申请日期:2014年11月7日 优先权日:2014年11月7日
【发明者】高昌垒, 殷中云, 温海珊, 朱喜, 蒋兴国 申请人:深圳市国微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1