发明内容
本发明提供一种数据的处理方法和设备,以节省芯片资源。
为了达到上述目的,本发明提供一种数据交换设备,应用于包括所述数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,所述数据交换设备包括:
接收模块,用于从输入接口接收数据;
Buffer管理模块,用于获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;
队列调度模块,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;
发送模块,用于通过所述输出接口信息对应的输出接口发送读取的数据。
所述数据交换设备还包括:队列管理模块;
所述接收模块,还用于在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;
所述队列管理模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从用于指示读取数据的存储地址的ReadPoint中获取所述数据的存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息通知给所述队列调度模块。
所述队列管理模块,具体包括:
入队子模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,并将所述输入接口信息和输出接口信息通知给出队子模块;
出队子模块,用于按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,并将所述输入接口信息、输出接口信息和存储地址信息写入到所述队列调度模块的Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口。
所述出队子模块,具体用于在接收到所述输入接口信息和输出接口信息的通知后,查询所述输入接口信息和输出接口信息对应的标记位;
如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;
如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列。
所述入队子模块,还用于在获取到所述输入接口信息和输出接口信息后,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;
所述出队子模块,还用于从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
所述队列调度模块,包括:
调度子模块,用于按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
所述队列调度模块,包括:
RR子模块,用于当所述Sub_SchQ队列对应的OutputQ队列还可接收数据时,从所述Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;
调度子模块,用于从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
一种数据的处理方法,应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,该方法包括以下步骤:
所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;
所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;
所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。
所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,包括:
所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;
所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;
所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口;
当所述Sub_SchQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;
所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列,之前还包括:
所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列。
所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括:所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;
所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同,之前还包括:
所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
与现有技术相比,本发明至少具有以下优点:
通过将数据存储到数据Buffer中,可使用较少的资源实现多通道的数据公平交换,从而节省芯片的资源,并实现对数据的缓存资源的共享,提高缓存空间利用率。
具体实施方式
现有技术中,在逻辑器件内部直接对每个接收通道(即输出接口对应的通道)做VOQ,耗费的资源过多。例如,在有32个输入接口、32个输出接口的情况下,则所有的VOQ为32×32=1024个,即VOQ需要使用1024个FIFO(First Input First Output,先入先出队列)队列来实现。
如果每个FIFO队列占用200个寄存器资源,则共需要200K个寄存器资源来实现1024个VOQ,而当前逻辑器件的寄存器资源可能没有200K,VOQ队列占用了大量的寄存器资源。
1024个VOQ队列需要的RAM(Random Access Memory,随机存取存储器)资源没有进行共享,且1024个VOQ至少需要1024块存储器资源,逻辑器件的存储器资源可能没有1024个,VOQ队列占用了大量的存储器资源;而且在某些情况下,会出现部分VOQ队列缓存已满,而另外的VOQ队列缓存却为空,使得整个VOQ队列的缓存利用率不高。
基于上述问题,本发明提供一种数据的处理方法和设备,通过将多个VOQ队列的管理做到一个模块中,使得所有VOQ队列的缓存进行共享,提高缓存资源的利用率;而且通过将各个VOQ队列的缓存管理地址由寄存器实现修改为存储器资源实现,可大大节省芯片逻辑寄存器资源开销。
下面结合附图对本发明进行详细描述。
本发明提出一种数据交换设备,该数据交换设备应用于包括数据交换设备、多个输入接口(如IN1、IN2...INn)和多个输出接口(OUT1、OUT2...OUTn)的数据交换系统中,且该数据交换设备用于通过输出接口发送从输入接口接收到的数据。本发明中的数据以信元数据为例进行说明,对于基于包级的数据的处理方式与信元数据类似,本发明中不再赘述。
如图3所示,为本发明提出的数据交换设备,该数据交换设备包括接收模块(RX模块)31、Buffer管理模块32、队列管理模块(QueueManage模块)33、队列调度模块(QueueScheduled模块)34和发送模块(TX模块)35。其中,该队列管理模块进一步包括入队子模块(EnQueue子模块)331和出队子模块(DeQueue子模块)332;该队列调度模块34进一步包括RR(轮询)子模块341和调度子模块(Scheduler子模块)342。
进一步的,在接收模块31和队列管理模块33之间设置有UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;在出队子模块332和RR子模块341之间设置有Sub_SchQ队列,每个Sub_SchQ队列对应一个输出接口;在RR子模块341和调度子模块342之间设置有QueueQ队列;在出队子模块332和调度子模块342之间设置有FeedBackQ队列;在调度子模块342和发送模块35之间设置有OutputQ队列(输出队列)。
在入队子模块331和出队子模块332之间设置有用于指示读取数据的存储地址的ReadPoint(读指针)和用于指示写入数据的存储地址的WritePoint(写指针);该ReadPoint和WritePoint可以通过RAM实现,且ReadPoint和WritePoint是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个ReadPoint和WritePoint。
基于上述各模块以及各队列,在该数据交换设备中:
接收模块31,用于从输入接口接收数据。其中,每个输入接口与一个接收模块相对应,即接收模块RX1从输入接口IN1接收数据,接收模块RX2从输入接口IN2接收数据,以此类推。
进一步的,在接收到数据后,接收模块31还用于将数据的输出接口信息(如输出接口标识)写入到UnitCellQ信息队列,而由于每个UnitCellQ信息队列对应一个输入接口,则接收模块RX1将输出接口信息写入到UnitCellQ信息队列1,接收模块RX2将输出接口信息写入到UnitCellQ信息队列2,以此类推。例如,接收模块RX1接收到需要通过输出接口6(OUT6)发送的数据时,将输出接口6写入到UnitCellQ信息队列1。
Buffer管理模块32,用于获取数据的输入接口信息(如输入接口标识)和输出接口信息,并按照输入接口信息和输出接口信息将数据存储到数据Buffer中。
具体的,在数据Buffer中,为每个输入接口信息和输出接口信息设置有对应的数据存储空间,当接收模块31接收到数据后,根据数据的输入接口信息和输出接口信息进行数据的入缓存申请,从而将数据写入到申请的入缓存(即数据存储空间)中。
例如,在有8个输入接口和8个输出接口的数据交换系统中,数据Buffer中为64种情况(如输入接口1与输出接口1、输入接口1与输出接口2、以此类推,一直到输入接口8与输出接口8等64种情况)所对应的数据存储空间;当接收模块RX1接收到需要通过输出接口6发送的数据时,将该数据存储到数据Buffer中输入接口1与输出接口6所对应的数据存储空间。
需要注意的是,针对在数据Buffer中写入的数据,可获知WritePoint和ReadPoint中的相关地址信息,即按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址;并按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址。
下面对数据Buffer、WritePoint和ReadPoint的关系进行详细说明,Buffer、WritePoint和ReadPoint为对应同一输入接口与输出接口(以输入接口1与输出接口6为例)的地址关系。
例如,输入接口1与输出接口6所对应的数据存储空间有6个存储块时,在将数据存储到第一个存储块(地址1)后,则输入接口1与输出接口6对应的WritePoint的下一个数据写入地址为第二个存储块地址(地址2),输入接口1与输出接口6对应的ReadPoint的当前数据读取地址为地址1,ReadPoint的下一个数据读取地址为地址2。
之后在下次写入输入接口1与输出接口6对应的数据时,将数据写入到WritePoint的下一个数据写入地址(即地址2),在读取输入接口1与输出接口6对应的数据时,从ReadPoint的当前数据读取地址(即地址1)进行读取。
在将数据存储到地址2后,则WritePoint的下一个数据写入地址为第三个存储块地址(地址3),ReadPoint的下一个数据读取地址为地址3;以此类推,将数据依次存储到地址3、地址4、地址5和地址6,ReadPoint的当前数据读取地址依次为地址2、地址3、地址4、地址5和地址6,在此不再赘述。
需要注意的是,在数据存储空间写入到最后一个存储块地址后,从第一个存储块地址继续开始数据存储过程;同理,当WritePoint指向到最后一个数据写入地址后,从第一个数据写入地址重新开始,当ReadPoint指向到最后一个数据写入地址后,从第一个数据写入地址重新开始。
本发明中,通过使用数据Buffer存储相应的数据,可实现共享缓存的管理,将所有数据缓存放在一块缓存空间上实现,直接将整个缓存空间以信元大小为最小颗粒进行缓存划分,各个输入接口申请及输出接口释放均以最小颗粒为单位进行操作,而由于不是按照虚通道来划分大小的,因此提高了缓存空间利用率。
队列管理模块33,用于从UnitCellQ信息队列中获取数据的输入接口信息和输出接口信息,按照输入接口信息和输出接口信息从用于指示读取数据的存储地址的ReadPoint中获取数据的存储地址信息,并将输入接口信息、输出接口信息和存储地址信息通知给队列调度模块34。
入队子模块331,用于从UnitCellQ信息队列中获取数据的输入接口信息和输出接口信息,并将输入接口信息和输出接口信息通知给出队子模块332。
具体的,由于UnitCellQ信息队列用于存储输出接口信息,则入队子模块331可以从UnitCellQ信息队列中读出各输出接口信息,而且由于UnitCellQ信息队列与输入接口是相对应的,因此通过UnitCellQ信息队列,入队子模块331可直接获取到UnitCellQ信息队列对应的输入接口信息。
出队子模块332,用于按照输入接口信息和输出接口信息从ReadPoint中获取数据的存储地址信息,并将输入接口信息、输出接口信息和存储地址信息写入到队列调度模块34的Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口,且所有对应同一个输出接口的输入接口信息、输出接口信息和存储地址信息写入到同一个Sub_SchQ队列中。
出队子模块332从ReadPoint的当前数据读取地址中读取到数据的存储地址信息后,由于按照数据在数据Buffer中的存储地址更新了输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,则ReadPoint中记录有输入接口信息和输出接口信息对应的下一个数据读取地址,使得出队子模块332在下一次读取时,可以将下一个数据读取地址作为当前数据读取地址,从而继续从ReadPoint中获取数据的存储地址信息,以此类推。
基于来自入队子模块331的输入接口信息和输出接口信息,出队子模块332需要获取该输入接口信息和输出接口信息所对应的存储地址信息。例如,需要获取输入接口1与输出接口1所对应的存储地址信息时,从ReadPoin中找到输入接口1与输出接口1所对应的存储地址信息,并查看已经读过的指针位置,从而确定数据的存储地址信息。
本发明中,在接收到来自入队子模块331的输入接口信息和输出接口信息的通知后,出队子模块332查询输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识(如0),则将输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列,并将标记位设置为指定第二标识(如1);如果标记位为指定第二标识,则不将输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列(即不做任何处理)。
需要注意的是,Flag中的标记位是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个标记位。例如,在有8个输入接口和8个输出接口的数据交换系统中,共有64个标记位,如输入接口1与输出接口1对应一个标记位、输入接口1与输出接口2对应一个标记位、以此类推。
本发明中,在获取到输入接口信息和输出接口信息后,入队子模块331按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;其中,WritePoint是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个WritePoint。
在从ReadPoint中获取数据的存储地址信息后,出队子模块332按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址。
进一步的,调度子模块342在按照输入接口信息、输出接口信息和存储地址信息从数据Buffer中读取相应的数据,并在发送读取的数据后,需要将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列;出队子模块332可从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较该输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同。
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则出队子模块332将输入接口信息和输出接口信息对应的标记位设置为指定第一标识。例如,输入接口1和输出接口6对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,即ReadPoint和WritePoint两个读写指针一致,此时没有输入接口1和输出接口6对应的数据需要发送,则清掉Flag中输入接口信息和输出接口信息对应的标记位,即将输入接口信息和输出接口信息对应的标记位设置为指定第一标识。
队列调度模块34,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照输入接口信息、输出接口信息和存储地址信息从数据Buffer中读取相应的数据。
RR子模块341,用于当Sub_SchQ队列对应的OutputQ队列还可接收数据时,从Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中。
由于每个Sub_SchQ队列与一个输出接口相对应,则Sub_SchQ队列中的输入接口信息、输出接口信息和存储地址信息所对应的数据需要通过同一个接口发送出去,相应的数据发送队列为OutputQ队列,即每个Sub_SchQ队列对应一个OutputQ队列,如果某OutputQ队列还可接收数据,且对应的Sub_SchQ队列非空,则可以将对应的Sub_SchQ队列中的输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中,继而在后续过程中继续通过该OutputQ队列接收数据。
调度子模块342,用于从QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照输入接口信息、输出接口信息和存储地址信息从数据Buffer中读取相应的数据。例如,从QueueQ队列中读取到输入接口1、输出接口6以及相应的存储地址信息后,则基于数据Buffer中输入接口1与输出接口6所对应的数据存储空间,按照相应的存储地址信息读取相应的数据。
之后,调度子模块342将读取到的数据写入到输出接口对应的OutputQ队列,而且此时该输出接口对应的OutputQ队列还可接收数据。
发送模块35,用于通过输出接口信息对应的输出接口发送读取的数据。例如,通过发送模块TX1将OutputQ1队列中的数据发送至OUT1(即输出接口信息对应的输出接口),并通过OUT1将数据发送出去;通过发送模块TX2将OutputQ2队列中的数据发送至OUT2,并通过OUT2将数据发送出去。
综上所述,本发明中,通过将多个VOQ队列的管理信息(如耗费芯片寄存器资源的写指针和读指针)放入芯片存储器中实现,大大节省了芯片寄存器资源,并保证方案实现的可行性。
通过设置各个虚拟输出队列的入队标志位,各个虚拟输出队列在入队(Sub SchQ队列)前先查询其标志位,保证各个虚拟输出队列最多只存在一份信息在整个调度过程中,同时芯片内部实行的是各个队列的先进先出处理,从而保证了各个虚拟输出队列的公平性。
RR子模块341通过分析OutputQ队列中是否还可放下数据,如果能放下则从Sub_SchQ队列中读出输出接口(即OutputQ队列对应的输出接口)对应的输入接口信息、输出接口信息和存储地址信息,从而保证了流控下的各个端口内的调度的公平性,并且确保了入OutputQ队列中的队列均为有效调度队列,提高了系统调度效率。
基于与上述系统和设备同样的发明构思,本发明还提出了一种数据的处理方法,该方法应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,如图4所示,该方法包括以下步骤:
步骤401,所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中。
步骤402,所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
步骤403,所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。
本发明中,所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,包括:
所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;
所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;
所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口;
当所述Sub_SchQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;
所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列,之前还包括:所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列。
本发明中,所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括:所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;
所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
本发明中,所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同,之前还包括:
所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。