主权项 |
一种基于多crossbar交换结构的调度方法,其采用的多crossbar交换结构由MAC、输入单元,输出单元和三条独立的crossbar构成,其中,输入单元包括m个通信端口输入单元和m个监控端口输入单元,输出单元包括m个通信端口输出单元和n个监控端口输出单元;(1)MAC负责接收来自于与之相连的节点机的数据,实现相应标准媒体访问层协议,并对数据进行封装/解析,实现数据的接收和发送;(2)输入单元接收来自于MAC的数据帧,对数据帧进行有效性检测,根据目的ID查找路由表,将数据帧放到相应的虚拟输出队列(VOQ)排队等待调度;同时检测消息ID查找表,判断该条数据帧是否需要被监控,如果需要被监控,将数据帧复制到监控端口输入单元的缓冲区中,等待调度;(3)三条crossbar独立调度,分别实现单播、多播和消息监控的转发调度;三条crossbar均采用“请求—准许—接受”的分布式调度策略,将数据帧从输入单元的缓冲区中调度到输出单元的缓冲区中;(4)输出单元负责从输出缓冲区读取数据帧,将数据帧发送到MAC,输出到与之相连的节点机;监控端口输出单元和数据通信端口输出单元的差别在于监控端口输出单元需要增加监控时标,并且需要重新进行循环冗余校验码(CRC)计算;基于所述多crossbar交换结构,实现单播crossbar调度的过程如下:单播实现采用m x m的crossbar,其中,m即通信端口的数量,n即监控端口的数量;单播crossbar采用分布式调度算法,每次调度按照“请求‑准许‑接受”的步骤进行:a.当输入单元的缓冲区中有单播帧时,输出单元发出请求信号;b.对于每个通信端口输出单元,当接收到不同通信端口输入单元的请求信号后,采用Round‑Robin算法产生准许信号;c.对于每个通信端口输入单元,当接收到不同通信端口输出单元的准许信号后,采用Round‑Robin算法产生接受信号并且开始调度;d.各个通信端口输出单元持续检测自己发出的准许信号是否被接受,如果被接受,则执行调度;基于所述多crossbar交换结构,实现多播crossbar调度的过程如下:多播实现采用m x m的交叉开关,多播crossbar采用多址调度算法实现分布式调度,多址调度算法由以下四个步骤组成:a.当某个输入单元有一个多播帧需要发送时,根据该帧的多播组ID查询到该多播组的成员,即多个目的端口,向所有目的端口发送请求信号,转到步骤b;b.输入单元在一个固定的时间窗口内等待目的端口的发送准许信号:如果所有的目的端口都回复了发送准许,立即转到步骤c;如果该时间窗口已过,则只要有任何一个目的端口回复发送准许,转到步骤c;如果在整个时间窗口内没有任何一个目的端口回复发送准许,重新发送请求;c.输入单元向发送了准许信号的目的端口发送数据帧,直至该数据帧结束,转到步骤d;d.输入单元将这些已发送了准许信号的目的端口从请求列表中删除,向剩余的目的端口发送请求信号,重复步骤b‑d,直到把该多播数据帧发送至所有目的端口,完成调度;基于所述多crossbar交换结构,实现消息监控crossba r调度的过程如下:采用m x n的crossbar,按照以下步骤进行(与多播类似的调度过程,不同点仅是启动条件不同:通过检测消息ID查找表,判断该数据帧是否被监控,以及被哪个监控端口监控;如果被监控,则向对应的监控端口发送请求信号;监控crossbar调度过程的其余步骤与多播完全相同):a.检测消息ID查找表,判断该数据帧是否被监控,以及被哪个监控端口监控;如果被监控,则向对应的监控端口发送请求信号;b.输入单元在一个固定的时间窗口内等待监控端口的发送准许信号:如果所有的监控端口都回复了发送准许,立即转到步骤c;如果该时间窗口已过,则只要有任何一个监控端口回复发送准许,转到步骤c;如果在整个时间窗口内没有任何一个监控端口回复发送准许,重新发送请求;c.输入单元向发送了准许信号的监控端口发送数据帧,直至该数据帧结束,转到步骤d;d.输入单元将这些已发送了准许信号的监控端口从请求列表中删除, 向剩余的监控端口发送请求信号,重复步骤b‑d,直到把该数据帧发送至所有监控端口,完成调度。 |