CN102857443A - 一种数据写入的方法、装置及系统 - Google Patents

一种数据写入的方法、装置及系统 Download PDF

Info

Publication number
CN102857443A
CN102857443A CN2012102934774A CN201210293477A CN102857443A CN 102857443 A CN102857443 A CN 102857443A CN 2012102934774 A CN2012102934774 A CN 2012102934774A CN 201210293477 A CN201210293477 A CN 201210293477A CN 102857443 A CN102857443 A CN 102857443A
Authority
CN
China
Prior art keywords
buffer memory
input port
current time
time slots
data
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.)
Granted
Application number
CN2012102934774A
Other languages
English (en)
Other versions
CN102857443B (zh
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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
HUNAN HECHUANG MAGNETIC TECHNOLOGY CO.,LTD.
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210293477.4A priority Critical patent/CN102857443B/zh
Publication of CN102857443A publication Critical patent/CN102857443A/zh
Application granted granted Critical
Publication of CN102857443B publication Critical patent/CN102857443B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明实施例公开了一种数据写入的方法、装置及系统。本发明涉及通信领域,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,进而提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧的均匀程度,从而减少数据帧丢失和读出冲突的概率。本发明实施例提供的方法包括:获取当前时隙内有数据传输需求的输入端口发送的请求信息;在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。

Description

一种数据写入的方法、装置及系统
技术领域
本发明涉及通讯领域,尤其涉及一种数据写入的方法、装置及系统。
背景技术
分布式共享缓存交换(Distributed Shared Memory Switch,简称SMS)架构是一种网络交换架构,一般用于交换机和路由器中,主要由多个输入端口、第一级交换网络、多个中间缓存、第二级交换网络以及多个输出端口五部分组成。其中,第一级交换网络用于将输入端口的数据送到中间缓存中,第二级交换网络用于将中间缓存中的数据送到相应的输出端口,第一、第二级交换网络可共享多个中间缓存。
SMS架构采用共享中间缓存的方式,因此能够节省硬件实现中的存储资源和布线资源,同时利于交换架构的扩展。但是,由于SMS架构应用于多端口的交换机或路由器,在第一级交换网络中,当多个输入端口同时有数据需要发送到同一个中间缓存时会出现该缓存先接收哪个输入端口的数据的问题,即缓存的写入冲突;同理,在第二级交换网络中,当多个输出端口要从同一个中间缓存中读取数据时会出现哪个输出端口先读取该缓存中的数据的问题,即缓存的读出冲突。因此如何解决SMS架构的缓存读写冲突成为使用该架构的重要前提。
现有技术中,基于SMS架构中的一种写入数据的方式采用的算法如下:当前时隙内每个未匹配的中间缓存随机选择向一个需要传送数据的输入端口发送请求信息,该输入端口随机选择一个向其发送请求信号的未匹配的中间缓存进行数据缓存,并同时对其他未匹配的中间缓存发送一个已匹配的信号。
在实现上述数据写入的过程中,发明人发现现有技术中至少存在如下问题:上述方法采用随机匹配的方式,造成每个输入端口传输数据的机会不公平,以及相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失、以及读出冲突概率高的问题。
发明内容
本发明实施例提供一种数据写入的方法、装置及系统,根据每个时隙内输入端口发送的请求信息和预设的双轮询规则为输入端口分配中间缓存,从而提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,进而减少数据帧丢失和读出冲突出现的概率。
为达到上述目的,本发明实施例采用的技术方案是,
第一方面,提供了一种数据写入的方法,该方法包括:
获取当前时隙内有数据传输需求的输入端口发送的请求信息;
在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的地址信息将数据写入所述第一中间缓存。
在第一种可能的实现方式中,根据第一方面,在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,具体实现为:
在当前时隙内根据第一轮询规则获取所述第一输入端口,其中,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;
在当前时隙内根据第二轮循规则获取所述第一中间缓存,其中,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写。
将所述第一中间缓存分配给所述第一输入端口。
在第二种可能的实现方式中,结合第一种可能的实现方式,优选的,所述中间缓存包含至少两个缓存区间,相应的,
在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,包括:在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存中任意一个未满未写的缓存区间;
所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
在第三种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式任一项,该方法还包括:
若在当前时隙内未获取到所述输入端口发送的请求信息,则在当前时隙内不进行所述中间缓存的分配。
第二方面,提供了一种数据写入的方法,该方法包括:
有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
所述第一输入端口接收所述第一中间缓存的标识信息;
所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
在第一种可能的实现方式中,根据第二方面,所述有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,具体实现为:
所述输入端口在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,该方法还包括:
所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
第三方面,提供了一种数据写入的装置,该数据写入装置包括:
获取单元,用于获取当前时隙内有数据传输需求的输入端口发送的请求信息,以及将所述请求信息发送给分配单元;
分配单元,用于从所述获取单元接收所述请求信息,以及在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,以及将分配结果传输给发送单元;
发送单元,用于从所述分配单元接收所述分配结果,以及将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
在第一种可能的实现方式中,结合第三方面,分配单元具体实现为:
第一选择模块,用于在当前时隙内根据第一轮询规则选择所述第一输入端口,其中,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;
第二选择模块,用于在当前时隙内根据第二轮循规则选择所述第一中间缓存,其中,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;
分配模块,用于将所述第一中间缓存分配给所述第一输入端口。
在第二种可能的实现方式中,结合第一种可能的实现方式,优选的,所述中间缓存包含至少两个缓存区间,相应的,所述分配单元还用于:
在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存中任意一个未满未写的缓存区间;
所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
在第三种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式,分配单元还用于:
若在当前时隙内未接收到所述获取单元获取的所述输入端口发送的请求信息,则在当前时隙内不进行所述中间缓存的分配。
第四方面,提供了一种输入端口,该输入端口包括:
第一发送单元,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存,
接收单元,用于接收所述第一中间缓存的标识信息;
写入单元,用于根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
在第一种可能的实现方式中,结合第四方面,发送单元还用于:在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
在第二种可能的实现方式中,结合第四方面或第一种可能的实现方式,优选的,所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括:
所述第一中间缓存的标识以及为所述输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
第五方面,提供了一种输入端口,该输入端口包括:输入端口缓存,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存,接收所述第一中间缓存的标识信息,根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
在第一种可能的实现方式中,结合第五方面,输入端口缓存还用于:
在当前时隙内检测到到达所述输入端口缓存的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
在第二种可能的实现方式中,结合第五方面或第一种可能的实现方式,优选的,所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括:
所述第一中间缓存的标识以及为所述输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
第六方面,提供了一种数据写入系统,该数据写入系统包括:上述任一项所述的数据写入的装置,和上述任一项所述的输入端口。
本发明实施例提供一种数据写入的方法、装置及系统,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据写入的方法的流程示意图;
图2为本发明实施例提供的另一种数据写入的方法的流程示意图;
图3为本发明实施例提供的另一种数据写入的方法的流程示意图;
图4为本发明实施例提供的一种双轮询匹配示意图;
图5为本发明实施例提供的一种数据写入的装置的结构图;
图6为本发明实施例提供的另一种数据写入的装置的结构图;
图7为本发明实施例提供的一种双轮询器的结构图;
图8为本发明实施例提供的另一种双轮询器的结构图;
图9为本发明实施例提供的一种输入端口的结构图;
图10为本发明实施例提供的另一种输入端口的结构图;
图11为本发明实施例提供的一种数据写入的系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例可应用于基于SMS架构的交换机的数据写入的调度,也可应用于基于SMS架构的路由器的数据写入的调度,其原理和实现过程相同,本发明实施例以应用于基于SMS架构的光纤通道(Fibre Channel,简称FC)交换机的数据写入的调度为例进行说明。
本发明实施例分别从双轮询器侧和输入端口侧进行说明,并同时对二者的配合实施例进行说明,但这并不意味着二者必须配合实施,实际上,当双轮询器与输入端口分开实施时,其也解决了分别在双轮询器侧、输入端口侧上存在的问题,只是二者结合使用时,会获得更好的技术效果。
参见图1,为双轮询器侧的数据写入的方法流程示意图,如图所示,可以包括以下步骤:
101:获取当前时隙内有数据传输需求的输入端口发送的请求信息;
102:在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
示例性的,在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,可以包括:
在当前时隙内根据第一轮询规则选择所述第一输入端口,其中,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;
在当前时隙内根据第二轮循规则选择所述第一中间缓存,其中,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;
将所述第一中间缓存分配给所述第一输入端口。
103:将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的地址信息将数据写入所述第一中间缓存。
本发明实施例提供一种数据写入的方法,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
参见图2,为输入端口侧的数据写入的方法流程示意图,如图所示,可以包括以下步骤:
201:有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
示例性的,所述有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,可以包括:所述输入端口在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
202:所述第一输入端口接收所述第一中间缓存的标识信息;
203:所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
本实施例提供的数据写入的方法,输入端口通过向双轮询器发送请求信息,使得双轮询器根据所述请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
下面通过具体实施例对上述方法实施例进行说明,参见图3,包括:
301:当前时隙内所有有数据传输需求的输入端口分别向双轮询器发送请求信息;
示例性的,每个输入端口都包括一个输入端口缓存,例如,该输入端口缓存可以为先进先出(First In First Out,简称FIFO,)缓存,数据帧进入输入端口后,首先存储在该输入端口对应的输入端口缓存中,当该输入端口缓存检测到数据帧的头部信息后,会立即向双轮询器发送数据传输的请求信息;。
例如:假设一共有N个输入端口,当前时隙内有n个输入端口缓存检测到对应的n个输入端口有数据需要传输,那么,当前时隙内,该n个输入端口缓存分别向双轮询器发送一个请求信息。
302:双轮询器根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
参见图4,为双轮询器根据请求信息和预设的双轮询规则为输入端口分配中间缓存的示意图,双轮询器可以包括第一轮询器A和第二轮询器B。
示例性的,双轮询器为输入端口分配中间缓存的过程,可以包括以下步骤:
1、第一轮询器A在当前时隙内根据第一轮询规则选择第一输入端口;
示例性的,第一轮询规则可以为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;第一轮询器A根据第一轮询规则对有数据传输需求的输入端口进行轮询,使得在多次调度中对每个输入端口传输数据的机会是公平的,避免了随机选择输入端口时可能造成输入端口的数据等待时间过长而丢失或损坏。下面结合图4对该过程进行详细说明。
例如:假设一共有N个输入端口,所有输入端口预设的排序为从1到N,参见图4,第一轮询器A将所有输入端口预设的排序构成一个循环,其中,输入端口预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据输入端口的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中N个输入端口的排序方式为1、2、3......N、1、2、3......N......,当然排序方式在根据实际需要发生变化后,第一轮询器A可以将排序方式进行更新后再根据新的排序方式进行轮询。第一轮询器A可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第一轮询器A可以选用指针或者其他形式来指示当前时隙被选中的输入端口,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针指向输入端口1,在当前时隙内双轮询器接收到输入端口3、5、7发送的请求信息,那么,双轮询器将以输入端1的下一个输入端口(即输入端口2)作为起点,按照逆时针方向对该三个输入端口进行轮询,选择排序最靠前的发送请求信息的输入端口作为第一输入端口,即选择输入端口3作为第一输入端口,并将指针指向输入端口3。同理,进入下一个时隙后,第一轮询器A选择下一时隙内以输入端口4起点,排序最靠前的发送请求信息的输入端口作为第一输入端口。
优选的,若在当前时隙内没有输入端口发送请求信息,则在当前时隙内不进行中间缓存的分配,也即第一轮询器A的指针不发生改变。
2、第二轮询器B在当前时隙内根据第二轮循规则选择所述第一中间缓存;
示例性的,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;第二轮询器B根据第二轮询规则对中间缓存进行轮询,使得在相邻时隙内到达的数据均匀分散在不同的中间缓存中,从而使得每个中间缓存的数据量是趋于均匀的,避免了随机选择中间缓存时可能造成每个中间缓存的数据不均匀而使数据丢失或发生读出冲突。下面结合图4对该过程进行详细说明。
例如:假设一共有M个中间缓存,所有预设的排序为从1到M,参见图4,第二轮询器B将所有中间缓存预设的排序构成一个循环,同理,中间缓存预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据中间缓存的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中M个中间缓存的排序方式为1、2、3......M、1、2、3......M......,当然排序方式在根据实际需要发生变化后,第二轮询器B可以将排序方式进行更新后再根据新的排序方式进行轮询。第二轮询器B可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第二轮询器B也可以选用指针或者其他形式来指示当前时隙被选中的中间缓存,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针所指的方向是中间缓存1,当前时隙内共有三个中间缓存未满未写,分别为中间缓存4、5、7,那么,第二轮询器B将以中间缓存1的下一个中间缓存(即中间缓存2)作为起点,按照逆时针方向对该三个中间缓存进行轮询,选择排序最靠前的未满未写的中间缓存作为第一中间缓存,即选择4中间缓存作为第一中间缓存,并将指针指向中间缓存4。同理,进入下一个时隙后,第二轮询器B选择下一时隙内以中间缓存5为起点,排序最靠前的未满未写的中间缓存作为第一中间缓存。
3、将所述第一中间缓存分配给所述第一输入端口。
303、双轮询器将第一中间缓存的标识信息发送给第一输入端口;
例如,假设当前时隙内双轮询器选择的输入端口3作为第一输入端口,选择的中间缓存4作为第一中间缓存,那么,双轮询器将第一中间缓存的标识信息发送给第一输入端口,例如,第一中间缓存的标识信息可以用4或者第一输入端口的其他可识别的信息表示。
优选的,中间缓存可以包含至少两个缓存区间,其中每个区间可存一个最大帧。由于在光纤通道交换机中,流控策略采用信用值和回复RDY的方式,不容许丢帧且能够交换变长帧,因此中间缓存所能存储最大帧总数要和对应的端口信用值总数相同,这样才能够保证不丢帧,所以,中间缓存和缓存区间设定的个数可以根据对应的端口信用值总数设定。例如,本实施例中设定有N输入端口,每个输入端口分配信用值为8(每个输入端口最多可同时占用其中的8个缓存区间,即缓存8个帧),设定每个中间缓存划分为四个缓存区间,每个缓存区间可存一个最大帧,则N个输入端口需要(N×8)/4=2N个中间缓存,优选的,本实施例采用双端口中间缓存,可以实现在对中间缓存中的某个缓存区间进行写操作的同时可以对该中间缓存中的另一个缓存区间进行读操作,从而提高了吞吐率。
优选的,第二轮询器B根据第二轮循规则选择第一中间缓存时,可以同时选择第一中间缓存中的任意一个未满未写的缓存区间并分配给第一输入端口。例如,假设当前时隙内双轮询器选择的输入端口3作为第一输入端口,选择的中间缓存4作为第一中间缓存,该中间缓存中可用的缓存区间分别为缓存区间2和缓存区间4,双轮询器可以任意选择第一中间缓存中的缓存区间2和缓存区间4分配给第一输入端口。
优选的,第一中间缓存的标识信息可以包括第一中间缓存的标识以及为第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
例如,假设双轮询器选择第一中间缓存4中的缓存区间2分配给第一输入端口,那么,双轮询器将该中间缓存4和缓存区间2的标识信息发送给第一输入端口,例如,标识信息可以用“4(中间缓存号)+2(缓存区间号)”的形式或者该中间缓存4和缓存区间2的其他可识别信息表示。
304:第一输入端口根据第一中间缓存发送的第一中间缓存的标识信息将数据写入所述第一中间缓存;
优选的,第一输入端口还可以将第一中间缓存的标识信息写入第一中间缓存,第一中间缓存的标识信息可以包括第一中间缓存的标识以及为第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
优选的,第一输入端口可以将第一中间缓存的标识信息与待发送的数据同时写入第一中间缓存。
305:第一中间缓存将第一中间缓存的标识信息发送给对应的输出端口,以使得所述输出端口根据所述第一中间缓存的标识信息读取所述第一输入端口写入所述第一中间缓存中的数据。
示例性的,每个输入端口内都有帧信息,其中,该帧信息包括:组播帧信息和单播帧信息,经解析后用于获得该输入端口的数据要发送的输出端口的端口号信息,每个输入端口的帧信息可以根据交换机内设置的路由表信息获取。
示例性的,在接收到第一输入端口发送的第一中间缓存的标识信息后,第一中间缓存通过对该信息的解析获知第一输入端口数据存入的存储在所述第一中间缓存号以及存入的缓存区间号,再根据第一输入端口的帧信息解析出第一输入端口的数据要发送的输出端口号,并将第一中间缓存的标识信息发送给对应的输出端口,例如,可以将第一输入端口数据存入的中间缓存号以及存入的缓存区间号存入对应的输出端口的描述符队列中。
例如,输入端口1与中间缓存2匹配,并将数据存入中间缓存2的缓存区间3,且它的数据帧要去往输出端口4。中间缓存2会将中间缓存2及其缓存区间3的数据发送给输出端口4,例如,可以采用将数据“2(表示中间缓存号)+3(表示缓存区间号)”的形式存入到输出端口4的描述符信息FIFO队列中,当然也可以采用其他数据形式表示。
其中,每个输出端口有N个帧信息FIFO,可以表示为1号帧信息FIFO、2号帧信息FIFO、...、N号帧信息FIFO,它们分别对应N个输入端口,该N个FIFO中所存入的帧信息,分别表明输入端口的数据将要去往该输出端口。例如输入端口1来的数据,存入队列的1号帧信息FIFO,表示输入端口1提出请求有数据去往输出端口4。
示例性的,完成数据的写入后,各输出端口根据各自的描述符信息FIFO完成输出调度。其中,每个缓存在每个时隙内只能有一个数据帧被对应的输出端口读取,若同一个中间缓存中包含至少两个帧,且该至少两个帧来自不同的输入端口又去往不同的输出端口,那么输出端口调度时可能会出现读出冲突,此时需要对各输出端口进行读出冲突仲裁。可以采用随机、轮询或其他的方式进行读出冲突仲裁。例如,本实施例的每个中间缓存能够存4个最大帧,可能出现读出冲突,本实施例采用轮询的方式对输出调度进行仲裁,该方式可以保证在减小冲突的同时对交换架构的吞吐率影响较小。
本实施例提供的数据写入的方法,输入端口通过向双轮询器发送请求信息,使得双轮询器根据所述请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
另一方面,本发明实施例提供了一种数据写入的装置50,该数据写入的装置50可以配置于基于SMS架构的交换机内,应用于基于SMS架构的交换机的数据写入,也可配置于基于SMS架构的路由器内,应用于基于SMS架构的路由器的数据写入。参见图5-图6,该装置50可以包括:
获取单元501,用于获取当前时隙内有数据传输需求的输入端口发送的请求信息,以及将所述请求信息发送给分配单元502;
例如:假设一共有N个输入端口,当前时隙内有有数据需要传输需求的输入端口的个数为n个,输入端口缓存检测到对应的n个输入端口有数据需要传输,那么,当前时隙内获取单元501获取该n个输入端口分别发送的请求信息。
分配单元502,用于从所述获取单元501接收所述请求信息,以及在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,以及将分配结果传输给发送单元503;
进一步的,参见图6,分配单元502可以包括:
第一选择模块5021,用于在当前时隙内根据第一轮询规则选择所述第一输入端口;
示例性的,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;第一选择模块5021根据第一轮询规则对有数据传输需求的输入端口进行轮询,使得在多次调度中对每个输入端口传输数据的机会是公平的,避免了随机选择输入端口时可能造成输入端口的数据等待时间过长而丢失或损坏。下面结合图4对该过程进行详细说明。
例如:假设一共有N个输入端口,所有输入端口预设的排序为从1到N,参见图4,第一选择模块5021将所有输入端口预设的排序构成一个循环,其中,输入端口预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据输入端口的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中N个输入端口的排序方式为1、2、3......N、1、2、3......N......,当然排序方式在根据实际需要发生变化后,第一选择模块5021可以将排序方式进行更新后再根据新的排序方式进行轮询。第一选择模块5021可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第一选择模块5021可以选用指针或者其他形式来指示当前时隙被选中的输入端口,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针指向输入端口1,在当前时隙内双轮询器接收到输入端口3、5、7发送的请求信息,那么,双轮询器将以输入端1的下一个输入端口(即输入端口2)作为起点,按照逆时针方向对该三个输入端口进行轮询,选择排序最靠前的发送请求信息的输入端口作为第一输入端口,即选择输入端口3作为第一输入端口,并将指针指向输入端口3。同理,进入下一个时隙后,第一选择模块5021选择下一时隙内以输入端口4为起点,排序最靠前的发送请求信息的输入端口作为第一输入端口。
优选的,若在当前时隙内没有输入端口发送请求信息,则在当前时隙内不进行中间缓存的分配,也即第一选择模块5021的指针不发生改变。
第二选择模块5022,用于在当前时隙内根据第二轮循规则选择所述第一中间缓存;
示例性的,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;第二选择模块5022根据第二轮询规则对中间缓存进行轮询,使得在相邻时隙内到达的数据均匀分散在不同的中间缓存中,从而使得每个中间缓存的数据量是趋于均匀的,避免了随机选择中间缓存时可能造成每个中间缓存的数据不均匀而使数据丢失或发生读出冲突。下面结合图4对该过程进行详细说明。
例如:假设一共有M个中间缓存,所有预设的排序为从1到M,参见图4,第二选择模块5022将所有中间缓存预设的排序构成一个循环,同理,中间缓存预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据中间缓存的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中M个中间缓存的排序方式为1、2、3......M、1、2、3......M......,当然排序方式在根据实际需要发生变化后,第二选择模块5022可以将排序方式进行更新后再根据新的排序方式进行轮询。第二选择模块5022可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第二选择模块5022也可以选用指针或者其他形式来指示当前时隙被选中的中间缓存,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针所指的方向是中间缓存1,当前时隙内共有三个中间缓存未满未写,分别为中间缓存4、5、7,那么,第二选择模块5022将以中间缓存1的下一个中间缓存(即中间缓存2)作为起点,按照逆时针方向对该三个中间缓存进行轮询,选择排序最靠前的未满未写的中间缓存作为第一中间缓存,即选择中间缓存4作为第一中间缓存,并将指针指向中间缓存4。同理,进入下一个时隙后,第二选择模块5022选择下一时隙内以中间缓存5为起点,排序最靠前的未满未写的中间缓存作为第一中间缓存。
分配模块5023,用于将所述第一中间缓存分配给所述第一输入端口。
优选的,所述中间缓存包含至少两个缓存区间,其中每个区间可存一个最大帧。由于在光纤通道交换机中,流控策略采用信用值和回复RDY的方式,不容许丢帧且能够交换变长帧,因此中间缓存所能存储最大帧总数要和对应的端口信用值总数相同,这样才能够保证不丢帧,所以,中间缓存和缓存区间设定的个数可以根据对应的端口信用值总数设定。例如,本实施例中设定有N输入端口,每个输入端口分配信用值为8(每个输入端口最多可同时占用其中的8个缓存区间,即缓存8个帧),设定每个中间缓存划分为四个缓存区间,每个缓存区间可存一个最大帧,则N个输入端口需要(N×8)/4=2N个中间缓存,优选的,本实施例采用双端口中间缓存,可以实现在对中间缓存中的某个缓存区间进行写操作的同时可以对该中间缓存中的另一个缓存区间进行读操作,从而提高了吞吐率。
优选的,第二选择模块5022根据第二轮循规则选择第一中间缓存时,可以同时选择第一中间缓存中的任意一个未满未写的缓存区间并分配给第一输入端口。例如,假设当前时隙内装置40选择的输入端口3作为第一输入端口,选择的中间缓存4作为第一中间缓存,该中间缓存中可用的缓存区间分别为缓存区间2和缓存区间4,该装置40可以任意选择第一中间缓存中的缓存区间2和缓存区间4分配给第一输入端口。
发送单元503,用于从所述分配单元502接收所述分配结果,以及将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
示例性的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
例如,假设该装置50选择第一中间缓存4中的缓存区间2分配给第一输入端口,那么,该装置40将该中间缓存4的标识信息和缓存区间2的标识信息发送给第一输入端口。
本发明实施例提供的一种数据写入的装置50,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
图7-图8描述了本发明实施例提供的一种双轮询器70,该双轮询器70对应于由上述实施例提供的数据写入的装置50,该双轮询器70可以配置于基于SMS架构的交换机内,应用于基于SMS架构的交换机的数据写入,也可配置于基于SMS架构的路由器内,应用于基于SMS架构的路由器的数据写入。具体的,该双轮询器70包括:
接收器701,用于获取当前时隙内有数据传输需求的输入端口发送的请求信息,以及将所述请求信息发送给轮询器;
例如:假设一共有N个输入端口,当前时隙内有有数据需要传输需求的输入端口的个数为n个,输入端口缓存检测到对应的n个输入端口有数据需要传输,那么,当前时隙内接收器501获取该n个输入端口分别发送的请求信息。
轮询器702,用于从所述接收器接收所述请求信息,以及在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,以及将分配结果传输给发送器;
进一步的,参见图8,轮询器702可以包括:
第一轮询器7021,用于在当前时隙内根据第一轮询规则选择所述第一输入端口;
示例性的,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;第一轮询器7021根据第一轮询规则对有数据传输需求的输入端口进行轮询,使得在多次调度中对每个输入端口传输数据的机会是公平的,避免了随机选择输入端口时可能造成输入端口的数据等待时间过长而丢失或损坏。下面结合图4对该过程进行详细说明。
例如:假设一共有N个输入端口,所有输入端口预设的排序为从1到N,参见图4,第一轮询器7021将所有输入端口预设的排序构成一个循环,其中,输入端口预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据输入端口的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中N个输入端口的排序方式为1、2、3......N、1、2、3......N......,当然排序方式在根据实际需要发生变化后,第一轮询器7021可以将排序方式进行更新后再根据新的排序方式进行轮询。第一轮询器7021可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第一轮询器7021可以选用指针或者其他形式来指示当前时隙被选中的输入端口,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针指向输入端口1,在当前时隙内双轮询器接收到输入端口3、5、7发送的请求信息,那么,双轮询器将以输入端口1的下一个输入端口(即1输入端口2)作为起点,按照逆时针方向对该三个输入端口进行轮询,选择排序最靠前的发送请求信息的输入端口作为第一输入端口,即选择输入端口3作为第一输入端口,并将指针指向输入端口3。同理,进入下一个时隙后,第一轮询器7021选择下一时隙内以输入端口4为起点,排序最靠前的发送请求信息的输入端口作为第一输入端口。
优选的,若在当前时隙内没有输入端口发送请求信息,则在当前时隙内不进行中间缓存的分配,也即第一轮询器7021的指针不发生改变。
第二轮询器7022,用于在当前时隙内根据第二轮循规则选择所述第一中间缓存;
示例性的,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;第二轮询器7022根据第二轮询规则对中间缓存进行轮询,使得在相邻时隙内到达的数据均匀分散在不同的中间缓存中,从而使得每个中间缓存的数据量是趋于均匀的,避免了随机选择中间缓存时可能造成每个中间缓存的数据不均匀而使数据丢失或发生读出冲突。下面结合图4对该过程进行详细说明。
例如:假设一共有M个中间缓存,所有预设的排序为从1到M,参见图5,第二轮询器7022将所有中间缓存预设的排序构成一个循环,同理,中间缓存预设的排序可以由多种方式确定,在此不进行限定,例如可以随机进行排序,也可以根据中间缓存的地址进行排序,不论选定哪种方式,确定后的排序方式在轮询过程中不变,例如,本实施例中M个中间缓存的排序方式为1、2、3......M、1、2、3......M......,当然排序方式在根据实际需要发生变化后,第二轮询器7022可以将排序方式进行更新后再根据新的排序方式进行轮询。第二轮询器7022可以采用圆循环的方式或者其他形式的循环方式,循环方向可以是逆时针方向或者顺时针方向,本实施例以圆形逆时针方向循环方式为例进行说明。
第二轮询器7022也可以选用指针或者其他形式来指示当前时隙被选中的中间缓存,本实施例以指针为例进行说明。
假设当前时隙的上一相邻时隙指针所指的方向是中间缓存1,当前时隙内共有三个中间缓存未满未写,分别为:中间缓存4、中间缓存5、中间缓存7,那么,第二轮询器7022将以中间缓存1的下一个中间缓存(即中间缓存2)作为起点,按照逆时针方向对该三个中间缓存进行轮询,选择排序最靠前的未满未写的中间缓存作为第一中间缓存,即选择中间缓存4作为第一中间缓存,并将指针指向中间缓存4。同理,进入下一个时隙后,第二轮询器7022选择下一时隙内以中间缓存5为起点,排序最靠前的未满未写的中间缓存作为第一中间缓存。
处理器7023,用于将所述第一中间缓存分配给所述第一输入端口。
优选的,所述中间缓存包含至少两个缓存区间,其中每个区间可存一个最大帧。由于在光纤通道交换机中,流控策略采用信用值和回复RDY(Ready)的方式,不容许丢帧且能够交换变长帧,因此中间缓存所能存储最大帧总数要和对应的端口信用值总数相同,这样才能够保证不丢帧,所以,中间缓存和缓存区间设定的个数可以根据对应的端口信用值总数设定。例如,本实施例中设定有N输入端口,每个输入端口分配信用值为8(每个输入端口最多可同时占用其中的8个缓存区间,即缓存8个帧),设定每个中间缓存划分为四个缓存区间,每个缓存区间可存一个最大帧,则N个输入端口需要(N×8)/4=2N个中间缓存,优选的,本实施例采用双端口中间缓存,可以实现在对中间缓存中的某个缓存区间进行写操作的同时可以对该中间缓存中的另一个缓存区间进行读操作,从而提高了吞吐率。
优选的,第二轮询器7022根据第二轮循规则选择第一中间缓存时,可以同时选择第一中间缓存中的任意一个未满未写的缓存区间并分配给第一输入端口。例如,假设当前时隙内轮询器70选择输入端口3作为第一输入端口,选择中间缓存4作为第一中间缓存,该中间缓存中可用的缓存区间分别为缓存区间2和缓存区间4,该轮询器70可以任意选择第一中间缓存中的缓存区间2或缓存区间4分配给输入端口3。
发送器703,用于从所述轮询器702接收所述分配结果,以及将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
示例性的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
例如,假设该双轮询器70选择第一中间缓存4中的缓存区间2分配给第一输入端口,那么,该双轮询器70将该第一中间缓存的标号4和缓存区间的标号2发送给第一输入端口。
本发明实施例提供的双轮询器70,,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
本发明实施例提供了一种输入端口90,该输入端口90可以配置于基于SMS架构的交换机内,应用于基于SMS架构的交换机的数据写入,也可配置于基于SMS架构的路由器内,应用于基于SMS架构的路由器的数据写入。参见图9,该输入端口90可以包括:
发送单元901,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存;
示例性的,第一发送单元901在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
接收单元902,用于接收所述第一中间缓存的标识信息;
优选的,中间缓存可以包含至少两个缓存区间,其中每个区间可存一个最大帧。则第一中间缓存的标识信息可以包括第一中间缓存的标识以及为第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
写入单元903,用于根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
本实施例提供的一种输入端口90,通过向双轮询器发送请求信息,使得双轮询器根据所述请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
本发明实施例提供了另一种输入端口100,该输入端口100对应于由上述实施例提供的输入端口90,该输入端口100可以配置于基于SMS架构的交换机内,应用于基于SMS架构的交换机的数据写入,也可配置于基于SMS架构的路由器内,应用于基于SMS架构的路由器的数据写入。参见图10,该输入端口包括:
输入端口缓存1001,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存,接收所述第一中间缓存的标识信息,根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
示例性的,每个输入端口都包括一个输入端口缓存,例如,该输入端口缓存可以为FIFO。
示例性的,数据帧进入输入端口后,首先存储在该输入端口对应的输入端口缓存中,输入端口缓存701在当前时隙内检测到到达输入端口缓存的数据帧的帧头部信息后,向双轮询器发送请求信息。
优选的,所述中间缓存包含至少两个缓存区间,其中每个区间可存一个最大帧,第一中间缓存的标识信息可以包括第一中间缓存的标识以及为第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
本实施例提供的一种输入端口100,通过向双轮询器发送请求信息,使得双轮询器根据所述请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
再一方面,本实施例提供了一种数据写入系统,该数据写入系统可以为基于SMS架构的交换机,也可以为基于SMS架构的路由器。参见图11,该系统包括:上述实施例所述的任何一种数据写入装置或双轮询器,以及上述实施例所述的至少一个输入端口。
本发明实施例提供的一种数据写入的系统,根据输入端口发送的请求信息和预设的双轮询规则,为输入端口分配中间缓存,提高了每个输入端口传输数据的公平程度和相邻时隙内到达各中间缓存的数据帧均匀程度,从而减少数据帧丢失和读出冲突的概率,解决了现有技术中相邻时隙内到达各中间缓存的数据帧不均匀,从而造成数据帧丢失和读出冲突概率高的问题。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种数据写入的方法,其特征在于,包括:
获取当前时隙内有数据传输需求的输入端口发送的请求信息;
在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
2.根据权利要求1所述的数据写入的方法,其特征在于,所述双轮询规则包括第一轮询规则和第二轮询规则,所述在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存包括:
在当前时隙内根据第一轮询规则选择所述第一输入端口,其中,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;
在当前时隙内根据第二轮循规则选择所述第一中间缓存,其中,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;
将所述第一中间缓存分配给所述第一输入端口。
3.根据权利要求2所述的数据写入的方法,其特征在于:所述中间缓存包含至少两个缓存区间,相应的,
在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,包括:在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存中任意一个未满未写的缓存区间;
所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
4.根据权利要求1-3任一项所述的数据写入的方法,其特征在于:还包括:
若在当前时隙内未获取到所述输入端口发送的请求信息,则在当前时隙内不进行所述中间缓存的分配。
5.一种数据写入的方法,其特征在于,包括:
有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存;
所述第一输入端口接收所述第一中间缓存的标识信息;
所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
6.根据权利要求5所述的数据写入的方法,其特征在于,所述有数据传输需求的输入端口在当前时隙内向双轮询器发送请求信息,包括:
所述输入端口在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
7.根据权利要求5或6所述的数据写入的方法,其特征在于,所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
8.一种数据写入的装置,其特征在于,包括:
获取单元,用于获取当前时隙内有数据传输需求的输入端口发送的请求信息,以及将所述请求信息发送给分配单元;
分配单元,用于从所述获取单元接收所述请求信息,以及在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存,以及将分配结果传输给发送单元;
发送单元,用于从所述分配单元接收所述分配结果,以及将所述第一中间缓存的标识信息发送给所述第一输入端口,以使得所述第一输入端口根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
9.根据权利要求8所述的数据写入的装置,其特征在于,所述分配单元,包括:
第一选择模块,用于在当前时隙内根据第一轮询规则选择所述第一输入端口,其中,所述第一轮询规则为:在所有输入端口预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的输入端口的下一个输入端口作为起点,选择当前时隙内排序最靠前的发送请求信息的输入端口作为第一输入端口;
第二选择模块,用于在当前时隙内根据第二轮循规则选择所述第一中间缓存,其中,所述第二轮询规则为:在所有中间缓存预设的排序的循环方向上,在每个时隙内以上一相邻时隙选定的中间缓存的下一个中间缓存作为起点,选择当前时隙内排序最靠前的可用的中间缓存作为第一中间缓存,所述可用的中间缓存指所述中间缓存未满未写;
分配模块,用于将所述第一中间缓存分配给所述第一输入端口。
10.根据权利要求9所述的数据写入的装置,其特征在于,所述中间缓存包含至少两个缓存区间,相应的,
所述分配单元还用于:在当前时隙内根据所述请求信息和预设的双轮询规则为第一输入端口分配第一中间缓存中任意一个未满未写的缓存区间;
所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述第一输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
11.根据权利要求8-10任一项所述的数据写入的装置,其特征在于,
所述分配单元还用于:若在当前时隙内未接收到所述获取单元获取的所述输入端口发送的请求信息,则在当前时隙内不进行所述中间缓存的分配。
12.一种输入端口,其特征在于,包括:
第一发送单元,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存;
接收单元,用于接收所述第一中间缓存的标识信息;
写入单元,用于根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
13.根据权利要求12所述的输入端口,其特征在于,所述第一发送单元还用于:在当前时隙内检测到到达所述输入端口的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
14.根据权利要求12或13所述的输入端口,其特征在于,所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
15.一种输入端口,其特征在于,包括:
输入端口缓存,用于在当前时隙内向双轮询器发送数据传输的请求信息,以使得双轮询器在当前时隙内根据所述请求信息和预设的双轮询规则为所述输入端口分配第一中间缓存,接收所述第一中间缓存的标识信息,根据所述第一中间缓存的标识信息将数据写入所述第一中间缓存。
16.根据权利要求15所述的输入端口,其特征在于,所述输入端口缓存还用于:在当前时隙内检测到到达所述输入端口缓存的数据帧的帧头部信息后,向所述双轮询器发送所述请求信息。
17.根据权利要求15或16所述的输入端口,其特征在于,所述中间缓存包含至少两个缓存区间,相应的,所述第一中间缓存的标识信息包括所述第一中间缓存的标识以及为所述输入端口分配的第一中间缓存中任意一个未满未写的缓存区间的标识。
18.一种数据写入系统,其特征在于,包括:如权利要求8-11任一项所述的数据写入的装置,和如权利要求12-14任一项所述的输入端口。
CN201210293477.4A 2012-08-17 2012-08-17 一种数据写入的方法、装置及系统 Expired - Fee Related CN102857443B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210293477.4A CN102857443B (zh) 2012-08-17 2012-08-17 一种数据写入的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210293477.4A CN102857443B (zh) 2012-08-17 2012-08-17 一种数据写入的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102857443A true CN102857443A (zh) 2013-01-02
CN102857443B CN102857443B (zh) 2014-12-24

Family

ID=47403645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210293477.4A Expired - Fee Related CN102857443B (zh) 2012-08-17 2012-08-17 一种数据写入的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN102857443B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391088A (zh) * 2017-07-24 2017-11-24 郑州云海信息技术有限公司 一种数据信息排序方法、cpu端、fpga端及系统
CN108829618A (zh) * 2018-09-14 2018-11-16 河南中光学集团有限公司 一种高速数据实时交换处理装置
CN110034988A (zh) * 2019-03-26 2019-07-19 北京龙鼎源科技股份有限公司 数据传输方法及装置、存储介质、处理器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161169A (en) * 1997-08-22 2000-12-12 Ncr Corporation Method and apparatus for asynchronously reading and writing data streams into a storage device using shared memory buffers and semaphores to synchronize interprocess communications
JP2007304663A (ja) * 2006-05-08 2007-11-22 Univ Nagoya プロセッサ及びそのデータ処理方法
CN101729407A (zh) * 2009-12-04 2010-06-09 西安电子科技大学 基于单多播区分处理的低时延抖动交换方法及设备
CN101753246A (zh) * 2008-11-28 2010-06-23 华为技术有限公司 轮询的方法和装置
CN101778389A (zh) * 2010-01-29 2010-07-14 华为技术有限公司 多制式数据处理方法及装置
CN102427426A (zh) * 2011-12-05 2012-04-25 西安电子科技大学 同时支持afdx与普通以太网交换的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161169A (en) * 1997-08-22 2000-12-12 Ncr Corporation Method and apparatus for asynchronously reading and writing data streams into a storage device using shared memory buffers and semaphores to synchronize interprocess communications
JP2007304663A (ja) * 2006-05-08 2007-11-22 Univ Nagoya プロセッサ及びそのデータ処理方法
CN101753246A (zh) * 2008-11-28 2010-06-23 华为技术有限公司 轮询的方法和装置
CN101729407A (zh) * 2009-12-04 2010-06-09 西安电子科技大学 基于单多播区分处理的低时延抖动交换方法及设备
CN101778389A (zh) * 2010-01-29 2010-07-14 华为技术有限公司 多制式数据处理方法及装置
CN102427426A (zh) * 2011-12-05 2012-04-25 西安电子科技大学 同时支持afdx与普通以太网交换的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391088A (zh) * 2017-07-24 2017-11-24 郑州云海信息技术有限公司 一种数据信息排序方法、cpu端、fpga端及系统
CN107391088B (zh) * 2017-07-24 2021-03-02 苏州浪潮智能科技有限公司 一种数据信息排序方法、cpu端、fpga端及系统
CN108829618A (zh) * 2018-09-14 2018-11-16 河南中光学集团有限公司 一种高速数据实时交换处理装置
CN108829618B (zh) * 2018-09-14 2023-09-29 河南中光学集团有限公司 一种高速数据实时交换处理装置
CN110034988A (zh) * 2019-03-26 2019-07-19 北京龙鼎源科技股份有限公司 数据传输方法及装置、存储介质、处理器
CN110034988B (zh) * 2019-03-26 2021-08-24 西安抟微科技有限公司 数据传输方法及装置、存储介质、处理器

Also Published As

Publication number Publication date
CN102857443B (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
US7330927B1 (en) Apparatus and methodology for a pointer manager
CN101616083B (zh) 一种报文转发方法和装置
US8718065B2 (en) Transmission using multiple physical interface
EP0551242B1 (en) Multiprocessor buffer system
US5528584A (en) High performance path allocation system and method with fairness insurance mechanism for a fiber optic switch
CN110083461A (zh) 一种基于fpga的多任务处理系统及方法
NL8300033A (nl) Werkwijze voor het overdragen van digitale informatie over een transmissiering.
CN105812287A (zh) 分组交换网络中的有效电路
CN102012876A (zh) 大位宽数据的写入、读取方法及控制器
CN103955436A (zh) 一种数据处理装置和终端
CN101729423A (zh) 通用公共无线接口cpri端口间数据传输的方法及装置
CN101917231A (zh) 一种光纤通道交换机的数据缓存方法
CN102857443A (zh) 一种数据写入的方法、装置及系统
CN104717160A (zh) 交换机及调度算法
CN101459615A (zh) 一种传输报文的方法、端口和系统
CN102857446A (zh) 以太网交换芯片的缓存管理方法及装置
CN103220230B (zh) 支持报文交叉存储的动态共享缓冲方法
CN103106177B (zh) 多核网络处理器的片上互联结构及其方法
CN102143053A (zh) 传输数据的方法、装置和系统
CN101753580A (zh) 包处理芯片及其数据存储、转发方法
CN103442091A (zh) 一种数据传输方法及装置
CN101459598A (zh) 实现分组交换的方法及其系统
KR20020027638A (ko) 데이터베이스용 메시지 연쇄 전송 처리 및 시스템
CN117015764A (zh) 集成计算设备之间的消息通信
CN101895470A (zh) 流控信息传递方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Xiaowenchang

Inventor before: Tu Xiaodong

Inventor before: Liu Linjun

Inventor before: Zhang Qingwei

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170512

Address after: 414000 Zhongke Industrial Park, Yueyang Road, Yueyang economic and Technological Development Zone, Hunan

Patentee after: HUNAN HECHUANG MAGNETIC TECHNOLOGY CO.,LTD.

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20170510

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141224

Termination date: 20170817