CN108833308A - 数据交换方法、装置及系统 - Google Patents
数据交换方法、装置及系统 Download PDFInfo
- Publication number
- CN108833308A CN108833308A CN201810526393.8A CN201810526393A CN108833308A CN 108833308 A CN108833308 A CN 108833308A CN 201810526393 A CN201810526393 A CN 201810526393A CN 108833308 A CN108833308 A CN 108833308A
- Authority
- CN
- China
- Prior art keywords
- input
- buffer
- queue
- pointer
- directed toward
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种数据交换方法、装置及系统,方法包括:在当前调度周期中,接收多个输入缓存发送的队列发送请求,队列发送请求包括至少一个数据队列;针对每个主应答轮询指针当前指向的第一位置,根据数据队列确定与第一位置匹配的第二位置;若第一位置和第二位置匹配成功,向第二位置指向的第一目的输入缓存发送应答信息,向第一位置指向的第一目的输出缓存发送授予信息,以使第一目的输入缓存向第一目的输出缓存发送数据队列;根据数据队列更新各个主应答轮询指针的指向位置和各个主响应轮询指针的指向位置,以便在下一调度周期中使用,缓解现有技术中存在的端口之间的匹配效率低的问题,达到了提高端口之间的匹配效率的技术效果。
Description
技术领域
本发明涉及数据交换技术领域,尤其是涉及一种数据交换方法、装置及系统。
背景技术
数据交换技术是网络技术的核心,数据交换过程的实现通常包括交换缓存设计和调度算法设计。交换缓存设计和调度算法设计决定了数据交换过程中输入缓存和输出缓存的匹配效率。
现有的数据交换技术中采用的ISLIP算法,应答轮询指针和响应轮询指针的初始位置都是同步的,在输入缓存和输出缓存匹配的过程中,会增加端口冲突,降低匹配效率,而且,在一个调度周期内,采用多次迭代的尽力匹配机制,在多次迭代的过程中,增加了低效的匹配过程。因此,导致端口之间的匹配效率低的问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据交换方法、装置及系统,以缓解现有技术中存在的端口之间的匹配效率低的技术问题。
第一方面,本发明实施例提供了一种数据交换方法,方法应用于分别与多个输入缓存和多个输出缓存通信的调度器,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,所述方法包括:
在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;
针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;
若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;
根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,每个所述输入缓存还对应一个用于指向任一所述输出缓存的辅应答轮询指针,在初始状态各所述辅应答轮询指针指向的第三位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的辅响应轮询指针,在初始状态各所述辅响应轮询指针指向的第四位置不同,方法还包括:
在当前调度周期中,当确定所述第一目的输入缓存和所述第一目的输出缓存后,根据未匹配成功的所述输入缓存发送的未匹配成功数据队列,针对每个与所述辅应答轮询指针当前指向的所述第三位置,根据所述未匹配成功数据队列确定与所述第三位置匹配的所述第四位置;
若所述第三位置和所述第四位置匹配成功,向所述第四位置指向的第二目的输入缓存发送应答信息,向所述第三位置指向的第二目的输出缓存发送授予信息,以使所述第二目的输入缓存向所述第二目的输出缓存发送所述未匹配成功数据队列;
根据所述未匹配成功数据队列和预设的第二轮询方向,更新各个所述辅应答轮询指针的指向位置和各个所述辅响应轮询指针的指向位置,以便在下一调度周期中使用。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置,包括:
针对每个所述主应答轮询指针当前指向的所述第一位置,确定与所述第一位置对应的匹配输出缓存,所述第一位置根据所述数据队列确定;
若与所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置和所述主应答轮询指针对应的所述输入缓存匹配,则确定所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置为与所述第一位置匹配的所述第二位置。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用,包括:
对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置;
对于未进行匹配和未匹配成功的所述输出缓存,不改变对应的所述主响应轮询指针的所述第二位置;
对于与所述第一目的输出缓存对应的所述主响应轮询指针,按照预设的第一轮询方向,确定是否已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列;
若已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,将所述主响应轮询指针当前指向的第一位置更新到所述下一指向位置;
若未接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,则确定是否已接收到由所述主响应轮询指针下下一指向位置所对应的所述输入缓存发送的所述数据队列,直至找到已接收到由所述主响应轮询指针的指向位置所对应的所述输入缓存发送的所述数据队列;
对于与所述第一目的输入缓存对应的所述主应答轮询指针,按照所述第一轮询方向,在所述数据队列包括的目的端口中,将第一个轮询到的位置确定为输入指针更新位置,按照所述输入指针更新位置对所述第一位置进行更新。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,当所述队列发送请求中包括关键队列时,所述根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用,还包括:
当接收到存储所述关键队列的所述输入缓存发送的关键队列指示信息,且在接收到的所述数据队列中检测出关键队列标识时,确定与所述关键队列的所述目的端口对应的所述输出缓存为关键输出缓存;
按照所述第一轮询方向,将与所述关键输出缓存对应的所述主响应轮询指针的所述第二位置更新到指示所述关键队列的源端口的位置;
对于包括所述关键队列的关键输入缓存,按照所述第一轮询方向,将与所述关键输入缓存对应的所述主应答轮询指针的所述第一位置更新到所述关键队列在所述关键输入缓存的位置;
执行对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置的步骤,直至按照所述输入指针更新位置对所述第一位置进行更新。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,还包括:
若在当前调度周期结束时,所述第一目的输入缓存中的数据未发送完毕,则在下一个调度周期中,控制所述第一目的输入缓存继续向所述第一目的输出缓存发送所述数据队列,且令指向所述第一目的输入缓存的所述第一位置和指向所述第一目的输出缓存的所述第二位置不参与匹配。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述第一轮询方向和所述第二轮询方向相反。
第二方面,本发明实施例还提供一种数据交换装置,装置分别与多个输入缓存和多个输出缓存通信,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,装置包括:接收模块、确定模块、发送模块和更新模块;
所述接收模块,用于在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;
所述确定模块,用于针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;
所述发送模块,用于若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;
所述更新模块,用于根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
第三方面,本发明实施例还提供一种数据交换系统,包括:多个输入缓存、多个输出缓存和一个应用如第一方面任一所述方法的调度器。
第四方面,本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如第一方面任一所述方法。
本发明实施例带来了以下有益效果:本发明实施例提供的数据交换方法应用于分别与多个输入缓存和多个输出缓存通信的调度器,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,所述方法包括:在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
所以,在当前调度周期中,当调度器接收多个所述输入缓存发送的队列发送请求时,针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置,若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,由于在初始状态各所述主应答轮询指针指向的第一位置不同,在初始状态各所述主响应轮询指针指向的第二位置不同,避免由于现有技术中应答轮询指针和响应轮询指针的初始位置都是同步的而导致的端口冲突增加的问题,减少端口冲突,提高端口之间的匹配效率。同时,在一个调度周期中,本发明实施例只进行单次迭代,避免由于现有技术中采用的多次迭代的尽力匹配机制而导致的低效的匹配过程增加的问题,降低低效的匹配过程发生的可能性,提高端口之间的匹配效率,因此,缓解了现有技术中存在的端口之间的匹配效率低的技术问题,达到了提高端口之间的匹配效率的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据交换方法的第一种流程图;
图2为本发明实施例提供的主应答轮询指针和主响应轮询指针的初始状态图;
图3为图2中的主应答轮询指针和主响应轮询指针经过一个调度周期后的状态图;
图4为本发明实施例提供的数据交换方法的第二种流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,数据交换技术是网络技术的核心,数据交换过程的实现通常包括交换缓存设计和调度算法设计。交换缓存设计和调度算法设计决定了数据交换过程中输入缓存和输出缓存的匹配效率。
现有的数据交换技术中采用的ISLIP算法,应答轮询指针和响应轮询指针的初始位置都是同步的,在输入缓存和输出缓存匹配的过程中,会增加端口冲突,降低匹配效率,而且,在一个调度周期内,采用多次迭代的尽力匹配机制,在多次迭代的过程中,增加了低效的匹配过程。因此,导致端口之间的匹配效率低的问题,基于此,本发明实施例提供的一种数据交换方法、装置及系统,可以缓解现有技术中存在的端口之间的匹配效率低的问题,达到了提高端口之间的匹配效率的技术效果。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据交换方法进行详细介绍,方法应用于分别与多个输入缓存和多个输出缓存通信的调度器,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,如图1所示,所述数据交换方法可以包括以下步骤。
步骤S101,在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列。
示例性的,如图2所示,以所述调度器分别与四个输入缓存和四个输出缓存通信为例进行说明。四个所述输入缓存分别为:输入缓存IB1、输入缓存IB2、输入缓存IB3和输入缓存IB4。四个所述输出缓存分别为:输出缓存OB1、输出缓存OB2、输出缓存OB3和输出缓存OB4。输入缓存IB1对应一个用于指向任一所述输出缓存的主应答轮询指针21,输入缓存IB2对应一个用于指向任一所述输出缓存的主应答轮询指针22,输入缓存IB3对应一个用于指向任一所述输出缓存的主应答轮询指针23,输入缓存IB4对应一个用于指向任一所述输出缓存的主应答轮询指针24。在初始状态各所述主应答轮询指针指向的第一位置不同,主应答轮询指针21指向的第一位置为1,即指向输出缓存OB1;主应答轮询指针22指向的第一位置为2,即指向输出缓存OB2;主应答轮询指针23指向的第一位置为3,即指向输出缓存OB3;主应答轮询指针24指向的第一位置为4,即指向输出缓存OB4。
示例性的,输出缓存OB1对应一个用于指向任一所述输入缓存的主响应轮询指针25,在初始状态主响应轮询指针25指向的第二位置为1,即指向输入缓存IB1;输出缓存OB2对应一个用于指向任一所述输入缓存的主响应轮询指针26,在初始状态主响应轮询指针26指向的第二位置为2,即指向输入缓存IB2;输出缓存OB3对应一个用于指向任一所述输入缓存的主响应轮询指针27,在初始状态主响应轮询指针27指向的第二位置为3,即指向输入缓存IB3;输出缓存OB4对应一个用于指向任一所述输入缓存的主响应轮询指针28,在初始状态主响应轮询指针28指向的第二位置为4,即指向输入缓存IB4。
示例性的,如图2所示,输入缓存IB1发送的队列发送请求包括4个数据队列;输入缓存IB2发送的队列发送请求包括3个数据队列;输入缓存IB3发送的队列发送请求包括2个数据队列;输入缓存IB4发送的队列发送请求包括1个数据队列。
步骤S102,针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置。
示例性的,如图4所示,步骤S102可以包括以下步骤。
步骤S201,针对每个所述主应答轮询指针当前指向的所述第一位置,确定与所述第一位置对应的匹配输出缓存,所述第一位置根据所述数据队列确定。
示例性的,针对主应答轮询指针21当前指向的第一位置1,确定与第一位置1对应的匹配输出缓存为输出缓存OB1。
步骤S202,若与所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置和所述主应答轮询指针对应的所述输入缓存匹配,则确定所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置为与所述第一位置匹配的所述第二位置。
示例性的,与所述匹配输出缓存OB1对应的所述主响应轮询指针25当前指向的第二位置为1,即指向输入缓存IB1。所以与所述匹配输出缓存OB1对应的所述主响应轮询指针25当前指向的所述第二位置1和所述主应答轮询指针21对应的所述输入缓存IB1匹配,则确定所述匹配输出缓存OB1对应的所述主响应轮询指针25当前指向的所述第二位置1为与所述第一位置1匹配的所述第二位置。
步骤S103,若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列。
示例性的,当主应答轮询指针21当前指向的第一位置1和主响应轮询指针25当前指向的第二位置1匹配成功时,所述调度器向第二位置1指向的第一目的输入缓存IB1发送应答信息,向第一位置1指向的第一目的输出缓存OB1发送授予信息,以使第一目的输入缓存IB1向第一目的输出缓存OB1发送所述数据队列。
示例性的,假设在一个调度周期中,第一目的输入缓存内的数据队列都能够被发送出去。
步骤S104,根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
示例性的,步骤S104可以包括以下步骤。
对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置。
对于未进行匹配和未匹配成功的所述输出缓存,不改变对应的所述主响应轮询指针的所述第二位置。
对于与所述第一目的输出缓存对应的所述主响应轮询指针,按照预设的第一轮询方向,确定是否已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列。
示例性的,所述第一轮询方向可以设置为顺时针方向,也可以设置为逆时针方向。如图3所示,以所述第一轮询方向为顺时针方向为例进行说明。对于与第一目的输出缓存OB1对应的主响应轮询指针25,按照顺时针方向,确定是否已接收到由主响应轮询指针25下一指向位置2所对应的输入缓存IB2发送的所述数据队列。
若已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,将所述主响应轮询指针当前指向的第一位置更新到所述下一指向位置。
示例性的,若已接收到由主响应轮询指针25下一指向位置2所对应的输入缓存IB2发送的所述数据队列,将主响应轮询指针25当前指向的第一位置1更新到下一指向位置2。
若未接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,则确定是否已接收到由所述主响应轮询指针下下一指向位置所对应的所述输入缓存发送的所述数据队列,直至找到已接收到由所述主响应轮询指针的指向位置所对应的所述输入缓存发送的所述数据队列。
对于与所述第一目的输入缓存对应的所述主应答轮询指针,按照所述第一轮询方向,在所述数据队列包括的目的端口中,将第一个轮询到的位置确定为输入指针更新位置,按照所述输入指针更新位置对所述第一位置进行更新。
示例性的,对于与第一目的输入缓存IB1对应的主应答轮询指针21,按照顺时针方向,在所述数据队列包括的目的端口1、2、3和4中,将第一个轮询到的位置2确定为输入指针更新位置2,按照输入指针更新位置2对第一位置1进行更新。
示例性的,所述数据交换方法可以应用在FPGA上面。所述数据交换方法采用两拍实现,具有平衡的关键路径,可以应用的时钟频率较高,在一定的时间内,提高端口匹配的速度。所述数据交换方法也可以单拍实现,或者多拍实现。
本发明实施例中,本发明实施例提供的数据交换方法应用于分别与多个输入缓存和多个输出缓存通信的调度器,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,所述方法包括:在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
所以,在当前调度周期中,当调度器接收多个所述输入缓存发送的队列发送请求时,针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置,若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,由于在初始状态各所述主应答轮询指针指向的第一位置不同,在初始状态各所述主响应轮询指针指向的第二位置不同,避免由于现有技术中应答轮询指针和响应轮询指针的初始位置都是同步的而导致的端口冲突增加的问题,减少端口冲突,提高端口之间的匹配效率。同时,在一个调度周期中,本发明实施例只进行单次迭代,避免由于现有技术中采用的多次迭代的尽力匹配机制而导致的低效的匹配过程增加的问题,降低低效的匹配过程发生的可能性,提高端口之间的匹配效率,因此,缓解了现有技术中存在的端口之间的匹配效率低的技术问题,达到了提高端口之间的匹配效率的技术效果。
在本发明的又一实施例中,每个所述输入缓存还对应一个用于指向任一所述输出缓存的辅应答轮询指针,在初始状态各所述辅应答轮询指针指向的第三位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的辅响应轮询指针,在初始状态各所述辅响应轮询指针指向的第四位置不同,所述数据交换方法还可以包括以下步骤。
在当前调度周期中,当确定所述第一目的输入缓存和所述第一目的输出缓存后,根据未匹配成功的所述输入缓存发送的未匹配成功数据队列,针对每个与所述辅应答轮询指针当前指向的所述第三位置,根据所述未匹配成功数据队列确定与所述第三位置匹配的所述第四位置。
示例性的,举例说明,在当前调度周期,调度器分别与3个输入缓存和3个输出缓存通信,3个输入缓存分别为:输入缓存A、输入缓存B和输入缓存C。3个输出缓存分别为:输出缓存D、输出缓存E和输出缓存F。若输入缓存B和输出缓存E匹配成功,则未匹配成功的所述输入缓存为输入缓存A和输入缓存C。未匹配成功的所述输出缓存为输出缓存D和输出缓存F。当确定第一目的输入缓存B和第一目的输出缓存E后,采用辅助握手机制,对未匹配成功的所述输入缓存和未匹配成功的所述输出缓存进行端口匹配。
若所述第三位置和所述第四位置匹配成功,向所述第四位置指向的第二目的输入缓存发送应答信息,向所述第三位置指向的第二目的输出缓存发送授予信息,以使所述第二目的输入缓存向所述第二目的输出缓存发送所述未匹配成功数据队列。
根据所述未匹配成功数据队列和预设的第二轮询方向,更新各个所述辅应答轮询指针的指向位置和各个所述辅响应轮询指针的指向位置,以便在下一调度周期中使用。
示例性的,所述第二轮询方向可以设置为顺时针方向,也可以设置为逆时针方向。但是所述第一轮询方向和所述第二轮询方向相反。当所述第一轮询方向为顺时针方向时,所述第二轮询方向就要设置为逆时针方向;当所述第一轮询方向为逆时针方向时,所述第二轮询方向就要设置为顺时针方向。这样,在采用主握手机制和辅助握手机制相互配合进行端口匹配的过程中,可以匹配到更多的端口,提高端口匹配的效率,从而提高数据交换性能。
本发明实施例中,为了进一步提高匹配效率,对于主握手机制未匹配成功的所述输入缓存发送的未匹配成功数据队列,采用辅助握手机制同步进行端口匹配,对于输入缓存端口生成的特殊请求矩阵(如上三角矩阵或者下三角矩阵等),具备较好的匹配性能。
在实际应用中,可能存在用户比较关心的数据,这些数据一定要被发送出去,保证这些数据被发送的优先级,所以,在本发明的又一实施例中,当所述队列发送请求中包括关键队列时,所述根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用,所述数据交换方法还可以包括以下步骤:
当接收到存储所述关键队列的所述输入缓存发送的关键队列指示信息,且在接收到的所述数据队列中检测出关键队列标识时,确定与所述关键队列的所述目的端口对应的所述输出缓存为关键输出缓存。
示例性的,位于所述关键队列中的数据包括关键队列标识。
按照所述第一轮询方向,将与所述关键输出缓存对应的所述主响应轮询指针的所述第二位置更新到指示所述关键队列的源端口的位置。
对于包括所述关键队列的关键输入缓存,按照所述第一轮询方向,将与所述关键输入缓存对应的所述主应答轮询指针的所述第一位置更新到所述关键队列在所述关键输入缓存的位置。
执行对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置的步骤,直至按照所述输入指针更新位置对所述第一位置进行更新。
本发明实施例中,可以对所述输入缓存进行关键队列不可跳过的设置。根据数据流量均衡和数据流量特点,对数据流量进行调控。对于输入缓存中需要进行流控的数据队列,如果这个数据队列在某个调度周期内被其他的数据队列的通道传输阻塞,暂时不能被发送,一旦阻塞解除,这个被流控的数据队列优先得到仲裁。
在本发明的又一实施例中,所述数据交换方法还可以包括以下步骤:
若在当前调度周期结束时,所述第一目的输入缓存中的数据未发送完毕,则在下一个调度周期中,控制所述第一目的输入缓存继续向所述第一目的输出缓存发送所述数据队列,且令指向所述第一目的输入缓存的所述第一位置和指向所述第一目的输出缓存的所述第二位置不参与匹配。
示例性的,举例说明,在当前调度周期,调度器分别与3个输入缓存和3个输出缓存通信,3个输入缓存分别为:输入缓存A、输入缓存B和输入缓存C。3个输出缓存分别为:输出缓存D、输出缓存E和输出缓存F。输入缓存A和输出缓存E匹配成功。若在当前调度周期结束时,第一目的输入缓存A中的数据未发送完毕,则在下一个调度周期中,控制第一目的输入缓存A继续向第一目的输出缓存E发送所述数据队列,且令指向第一目的输入缓存A的第一位置和指向第一目的输出缓存E的第二位置不参与匹配。剩下的输入缓存B、输入缓存C、输出缓存D和输出缓存F进行端口匹配。
本发明实施例中,对数据通道进行传输控制,保证调度器能够根据数据通道间数据的传输情况进行调度控制,这样的机制使得数据通道建立和数据通道传输相分离,使得调度器可以实现更加复杂的流控。
在本发明的又一实施例中,对本发明实施例所公开的一种数据交换装置进行详细介绍,装置分别与多个输入缓存和多个输出缓存通信,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,装置包括:接收模块、确定模块、发送模块和更新模块;
所述接收模块,用于在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;
所述确定模块,用于针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;
所述发送模块,用于若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;
所述更新模块,用于根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
在本发明的又一实施例中,对本发明实施例所公开的一种数据交换系统进行详细介绍,包括:多个输入缓存、多个输出缓存和一个应用如上述实施例任一所述方法的调度器。
在本发明的又一实施例中,对本发明实施例所公开的一种具有处理器可执行的非易失的程序代码的计算机可读介质进行详细介绍,所述程序代码使所述处理器执行如上述实施例任一所述方法。
本发明实施例所提供的进行数据交换方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据交换方法,其特征在于,方法应用于分别与多个输入缓存和多个输出缓存通信的调度器,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,所述方法包括:
在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;
针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;
若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;
根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
2.根据权利要求1所述的数据交换方法,其特征在于,每个所述输入缓存还对应一个用于指向任一所述输出缓存的辅应答轮询指针,在初始状态各所述辅应答轮询指针指向的第三位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的辅响应轮询指针,在初始状态各所述辅响应轮询指针指向的第四位置不同,方法还包括:
在当前调度周期中,当确定所述第一目的输入缓存和所述第一目的输出缓存后,根据未匹配成功的所述输入缓存发送的未匹配成功数据队列,针对每个与所述辅应答轮询指针当前指向的所述第三位置,根据所述未匹配成功数据队列确定与所述第三位置匹配的所述第四位置;
若所述第三位置和所述第四位置匹配成功,向所述第四位置指向的第二目的输入缓存发送应答信息,向所述第三位置指向的第二目的输出缓存发送授予信息,以使所述第二目的输入缓存向所述第二目的输出缓存发送所述未匹配成功数据队列;
根据所述未匹配成功数据队列和预设的第二轮询方向,更新各个所述辅应答轮询指针的指向位置和各个所述辅响应轮询指针的指向位置,以便在下一调度周期中使用。
3.根据权利要求2所述的数据交换方法,其特征在于,所述针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置,包括:
针对每个所述主应答轮询指针当前指向的所述第一位置,确定与所述第一位置对应的匹配输出缓存,所述第一位置根据所述数据队列确定;
若与所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置和所述主应答轮询指针对应的所述输入缓存匹配,则确定所述匹配输出缓存对应的所述主响应轮询指针当前指向的所述第二位置为与所述第一位置匹配的所述第二位置。
4.根据权利要求3所述的数据交换方法,其特征在于,所述根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用,包括:
对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置;
对于未进行匹配和未匹配成功的所述输出缓存,不改变对应的所述主响应轮询指针的所述第二位置;
对于与所述第一目的输出缓存对应的所述主响应轮询指针,按照预设的第一轮询方向,确定是否已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列;
若已接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,将所述主响应轮询指针当前指向的第一位置更新到所述下一指向位置;
若未接收到由所述主响应轮询指针下一指向位置所对应的所述输入缓存发送的所述数据队列,则确定是否已接收到由所述主响应轮询指针下下一指向位置所对应的所述输入缓存发送的所述数据队列,直至找到已接收到由所述主响应轮询指针的指向位置所对应的所述输入缓存发送的所述数据队列;
对于与所述第一目的输入缓存对应的所述主应答轮询指针,按照所述第一轮询方向,在所述数据队列包括的目的端口中,将第一个轮询到的位置确定为输入指针更新位置,按照所述输入指针更新位置对所述第一位置进行更新。
5.根据权利要求4所述的数据交换方法,其特征在于,当所述队列发送请求中包括关键队列时,所述根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用,还包括:
当接收到存储所述关键队列的所述输入缓存发送的关键队列指示信息,且在接收到的所述数据队列中检测出关键队列标识时,确定与所述关键队列的所述目的端口对应的所述输出缓存为关键输出缓存;
按照所述第一轮询方向,将与所述关键输出缓存对应的所述主响应轮询指针的所述第二位置更新到指示所述关键队列的源端口的位置;
对于包括所述关键队列的关键输入缓存,按照所述第一轮询方向,将与所述关键输入缓存对应的所述主应答轮询指针的所述第一位置更新到所述关键队列在所述关键输入缓存的位置;
执行对于未进行匹配和未匹配成功的所述输入缓存,不改变对应的所述主应答轮询指针的所述第一位置的步骤,直至按照所述输入指针更新位置对所述第一位置进行更新。
6.根据权利要求5所述的数据交换方法,其特征在于,还包括:
若在当前调度周期结束时,所述第一目的输入缓存中的数据未发送完毕,则在下一个调度周期中,控制所述第一目的输入缓存继续向所述第一目的输出缓存发送所述数据队列,且令指向所述第一目的输入缓存的所述第一位置和指向所述第一目的输出缓存的所述第二位置不参与匹配。
7.根据权利要求6所述的数据交换方法,其特征在于,所述第一轮询方向和所述第二轮询方向相反。
8.一种数据交换装置,其特征在于,装置分别与多个输入缓存和多个输出缓存通信,每个所述输入缓存对应一个用于指向任一所述输出缓存的主应答轮询指针,在初始状态各所述主应答轮询指针指向的第一位置不同,每个所述输出缓存对应一个用于指向任一所述输入缓存的主响应轮询指针,在初始状态各所述主响应轮询指针指向的第二位置不同,装置包括:接收模块、确定模块、发送模块和更新模块;
所述接收模块,用于在当前调度周期中,接收多个所述输入缓存发送的队列发送请求,所述队列发送请求包括至少一个数据队列;
所述确定模块,用于针对每个所述主应答轮询指针当前指向的所述第一位置,根据所述数据队列确定与所述第一位置匹配的所述第二位置;
所述发送模块,用于若所述第一位置和所述第二位置匹配成功,向所述第二位置指向的第一目的输入缓存发送应答信息,向所述第一位置指向的第一目的输出缓存发送授予信息,以使所述第一目的输入缓存向所述第一目的输出缓存发送所述数据队列;
所述更新模块,用于根据所述数据队列更新各个所述主应答轮询指针的指向位置和各个所述主响应轮询指针的指向位置,以便在下一调度周期中使用。
9.一种数据交换系统,其特征在于,包括:多个输入缓存、多个输出缓存和一个应用如权利要求1-7任一所述方法的调度器。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1-7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810526393.8A CN108833308B (zh) | 2018-05-28 | 2018-05-28 | 数据交换方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810526393.8A CN108833308B (zh) | 2018-05-28 | 2018-05-28 | 数据交换方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108833308A true CN108833308A (zh) | 2018-11-16 |
CN108833308B CN108833308B (zh) | 2020-12-01 |
Family
ID=64145856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810526393.8A Active CN108833308B (zh) | 2018-05-28 | 2018-05-28 | 数据交换方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108833308B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819523A (zh) * | 2006-02-20 | 2006-08-16 | 中国人民解放军国防科学技术大学 | 并行交换开关设计方法 |
CN104333516A (zh) * | 2014-10-20 | 2015-02-04 | 东南大学成贤学院 | 用于组合输入交叉点缓存交换结构的旋转轮训调度方法 |
US20150207747A1 (en) * | 2009-08-07 | 2015-07-23 | Zte Corporation | Queue scheduling method and apparatus |
-
2018
- 2018-05-28 CN CN201810526393.8A patent/CN108833308B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819523A (zh) * | 2006-02-20 | 2006-08-16 | 中国人民解放军国防科学技术大学 | 并行交换开关设计方法 |
US20150207747A1 (en) * | 2009-08-07 | 2015-07-23 | Zte Corporation | Queue scheduling method and apparatus |
CN104333516A (zh) * | 2014-10-20 | 2015-02-04 | 东南大学成贤学院 | 用于组合输入交叉点缓存交换结构的旋转轮训调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108833308B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062672B (zh) | 一种基于区块链智能合约的流程调度方法 | |
Qin et al. | Bandwidth-aware scheduling with sdn in hadoop: A new trend for big data | |
EP3380937B1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
CN103647807B (zh) | 一种信息缓存方法、装置和通信设备 | |
US11431645B2 (en) | Method and apparatus for handling network congestion, and system | |
US20030227932A1 (en) | Weighted fair share scheduler for large input-buffered high-speed cross-point packet/cell switches | |
CN106155814B (zh) | 一种支持多种工作模式的可重构运算单元及其工作方式 | |
CN110458468A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN102662889B (zh) | 中断处理方法、中断控制器及处理器 | |
CN108924187B (zh) | 基于机器学习的任务处理方法、装置和终端设备 | |
CN111210020B (zh) | 一种加速分布式机器学习的方法及系统 | |
CN108600299A (zh) | 分布式多用户间计算任务卸载方法及系统 | |
CN104125166A (zh) | 一种队列调度方法及计算系统 | |
Ye et al. | A new approach for resource scheduling with deep reinforcement learning | |
CN106886498A (zh) | 数据处理装置和终端 | |
Zhao et al. | Joint reducer placement and coflow bandwidth scheduling for computing clusters | |
CN109660569A (zh) | 一种多任务并发执行方法、存储介质、设备及系统 | |
CN110780985A (zh) | 一种有限时间的并行任务调度方法与装置 | |
CN107666474A (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN109871270B (zh) | 调度方案生成方法及装置 | |
CN110365786A (zh) | 作业处理系统、异步作业调度方法和计算机设备 | |
Mody et al. | Smart round robin CPU scheduling algorithm for operating systems | |
CN108833308A (zh) | 数据交换方法、装置及系统 | |
CN109636709A (zh) | 一种适用于异构平台的图计算方法 | |
CN109327367A (zh) | 一种基于offset的CAN FD总线消息调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200526 Address after: 300450 Binhai New Area, Binhai - Zhongguancun Science Park Rongsheng Plaza, No. 4 Building 702-7, Tianjin Applicant after: TIANJIN XINHAICHUANG TECHNOLOGY Co.,Ltd. Address before: 300450 Binhai New Area, Binhai - Zhongguancun Science Park Rongsheng Plaza, No. 4 Building 702-7, Tianjin Applicant before: TIANJIN XINHAICHUANG TECHNOLOGY Co.,Ltd. Applicant before: INFORMATION TECHNOLOGY INNOVATION CENTER OF TIANJIN BINHAI NEW AREA |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |