一种数据的处理方法和设备的制作方法

文档序号:7678064阅读:108来源:国知局
专利名称:一种数据的处理方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种数据的处理方法和设备。
背景技术
在数据交换系统中,会出现多通道数据交换的情况,如图1所示,为一种多通道数据交换框图,IN为输入接口、RX为接收模块、IQ为输入队列、SCHEDULED为调度模块、OQ为输出队列、TX为发送模块、OUT为输出接口。在图1中,有η个输入接口和η个输出接口,每个输入接口的数据可能发送至任何一个输出接口,所有通道间没有优先级区分,各个通道间的调度为公平轮询调度,即依次调度mi-INn的数据。现有技术中,数据交换系统一般为信元交换系统,基于图1所示的多通道数据交换框图,由于信元(由信头串和信息串组成的固定长度的比特串)大小固定,则交换延时相对稳定,因此基于信元交换系统的QoS(Quality of krvice,服务质量)特性比较好。通过分析图1所示的多通道数据交换框图,则会发现上述多通道数据交换过程中会出现队头堵塞情况,假设mi通往ο τι的一个数据被堵在IQi中,则接下来mi通往 IN2 INn的所有数据均被堵在IQl中无法发送出去。为了解决上述队头堵塞问题,如图2所示,可在数据交换系统内部增加多个虚拟输出队列,即将mi接口通往所有输出接口的数据分为η个队列,在接收到mi的数据后, 根据该数据的输出接口归类到不同的V0Q(Virtual Output Queue,虚拟输出队列),假设 INl通往OUTl的一个数据被堵在V0Q1_1中,则接下来1附通往IN2 INn的数据可通过其他VOQ (如V0Q1_2等)队列进行发送,不会被堵在V0Q1_1中,因此不会出现上述队头堵塞问题。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题随着产品的升级,需要交换的输入接口、输出接口越来越多,如果要实现更多输入接口、输出接口的数据交换,则需要耗费的资源过多,并可能出现整个芯片资源消耗完也无法实现更多输入接口、输出接口的交换功能。

发明内容
本发明提供一种数据的处理方法和设备,以节省芯片资源。为了达到上述目的,本发明提供一种数据交换设备,应用于包括所述数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,所述数据交换设备包括接收模块,用于从输入接口接收数据;Buffer管理模块,用于获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;队列调度模块,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;发送模块,用于通过所述输出接口信息对应的输出接口发送读取的数据。所述数据交换设备还包括队列管理模块;所述接收模块,还用于在接收到数据后,将所述数据的输出接口信息写入到 UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口 ;所述队列管理模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从用于指示读取数据的存储地址的ReadPoint中获取所述数据的存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息通知给所述队列调度模块。所述队列管理模块,具体包括入队子模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,并将所述输入接口信息和输出接口信息通知给出队子模块;出队子模块,用于按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,并将所述输入接口信息、输出接口信息和存储地址信息写入到所述队列调度模块的SubJichQ队列中,每个Sub_SchQ队列对应一个输出接口。所述出队子模块,具体用于在接收到所述输入接口信息和输出接口信息的通知后,查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJichQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJchQ队列。所述入队子模块,还用于在获取到所述输入接口信息和输出接口信息后,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;所述出队子模块,还用于从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。所述队列调度模块,包括调度子模块,用于按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。所述队列调度模块,包括RR子模块,用于当所述SubJchQ队列对应的OutputQ队列还可接收数据时,从所述SubJichQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;调度子模块,用于从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据。一种数据的处理方法,应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据, 该方法包括以下步骤所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据;所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,包括所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到 UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口 ;所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到 Sub_SchQ队列中,每个SubJchQ队列对应一个输出接口 ;当所述SubJchQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述SubJichQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据。所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到 Sub_SchQ队列,之前还包括所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述 Sub_SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJichQ队列。所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;所述数据交换设备从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址是否相同;如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。所述数据交换设备从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址是否相同,之前还包括所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。与现有技术相比,本发明至少具有以下优点通过将数据存储到数据Buffer中,可使用较少的资源实现多通道的数据公平交换,从而节省芯片的资源,并实现对数据的缓存资源的共享,提高缓存空间利用率。


图1是现有技术中的一种多通道数据交换框图;图2是现有技术中的解决出现队头堵塞情况的示意图;图3是本发明提出的一种数据交换设备的结构图;图4是本发明提供的一种数据的处理方法流程图。
具体实施例方式现有技术中,在逻辑器件内部直接对每个接收通道(即输出接口对应的通道)做 V0Q,耗费的资源过多。例如,在有32个输入接口、32个输出接口的情况下,则所有的VOQ为 32X32 = IOM 个,即 VOQ 需要使用 IOM 个 FIFO (First Input First Output,先入先出队列)队列来实现。如果每个FIFO队列占用200个寄存器资源,则共需要200K个寄存器资源来实现 IOM个V0Q,而当前逻辑器件的寄存器资源可能没有200K,VOQ队列占用了大量的寄存器资源。1024个VOQ队列需要的RAM (Random Access Memory,随机存取存储器)资源没有进行共享,且IOM个VOQ至少需要IOM块存储器资源,逻辑器件的存储器资源可能没有 1024个,VOQ队列占用了大量的存储器资源;而且在某些情况下,会出现部分VOQ队列缓存已满,而另外的VOQ队列缓存却为空,使得整个VOQ队列的缓存利用率不高。基于上述问题,本发明提供一种数据的处理方法和设备,通过将多个VOQ队列的管理做到一个模块中,使得所有VOQ队列的缓存进行共享,提高缓存资源的利用率;而且通过将各个VOQ队列的缓存管理地址由寄存器实现修改为存储器资源实现,可大大节省芯片逻辑寄存器资源开销。
下面结合附图对本发明进行详细描述。本发明提出一种数据交换设备,该数据交换设备应用于包括数据交换设备、多个输入接口 (如INK IN2. · · INn)和多个输出接口 (0UTU0UT2. · · OUTn)的数据交换系统中, 且该数据交换设备用于通过输出接口发送从输入接口接收到的数据。本发明中的数据以信元数据为例进行说明,对于基于包级的数据的处理方式与信元数据类似,本发明中不再赘述。如图3所示,为本发明提出的数据交换设备,该数据交换设备包括接收模块(RX 模块)31、Buffer管理模块32、队列管理模块(QueueManage模块)33、队列调度模块 (QueueScheduled模块)34和发送模块(TX模块)35。其中,该队列管理模块进一步包括入队子模块(EnQueue子模块)331和出队子模块(DeQueue子模块)332 ;该队列调度模块34 进一步包括RR(轮询)子模块341和调度子模块(kheduler子模块)342。进一步的,在接收模块31和队列管理模块33之间设置有UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口 ;在出队子模块332和RR子模块341之间设置有SubJchQ队列,每个SubJchQ队列对应一个输出接口 ;在RR子模块341和调度子模块 342之间设置有QueueQ队列;在出队子模块332和调度子模块342之间设置有FeedBackQ 队列;在调度子模块342和发送模块35之间设置有OutputQ队列(输出队列)。在入队子模块331和出队子模块332之间设置有用于指示读取数据的存储地址的ReadPoint (读指针)和用于指示写入数据的存储地址的WritePoint (写指针);该 ReadPoint和WritePoint可以通过RAM实现,且ReadPoint和WritePoint是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个ReadPoint 和 WritePoint。基于上述各模块以及各队列,在该数据交换设备中接收模块31,用于从输入接口接收数据。其中,每个输入接口与一个接收模块相对应,即接收模块RXl从输入接口 mi接收数据,接收模块RX2从输入接口 IN2接收数据,以此类推。进一步的,在接收到数据后,接收模块31还用于将数据的输出接口信息(如输出接口标识)写入到UnitCellQ信息队列,而由于每个UnitCellQ信息队列对应一个输入接口,则接收模块RXl将输出接口信息写入到UnitCellQ信息队列1,接收模块RX2将输出接口信息写入到UnitCellQ信息队列2,以此类推。例如,接收模块RXl接收到需要通过输出接口 6(0UT6)发送的数据时,将输出接口 6写入到UnitCellQ信息队列1。Buffer管理模块32,用于获取数据的输入接口信息(如输入接口标识)和输出接口信息,并按照输入接口信息和输出接口信息将数据存储到数据Buffer中。具体的,在数据Buffer中,为每个输入接口信息和输出接口信息设置有对应的数据存储空间,当接收模块31接收到数据后,根据数据的输入接口信息和输出接口信息进行数据的入缓存申请,从而将数据写入到申请的入缓存(即数据存储空间)中。例如,在有8个输入接口和8个输出接口的数据交换系统中,数据Buffer中为64 种情况(如输入接口 1与输出接口 1、输入接口 1与输出接口 2、以此类推,一直到输入接口 8与输出接口 8等64种情况)所对应的数据存储空间;当接收模块RXl接收到需要通过输出接口 6发送的数据时,将该数据存储到数据Buffer中输入接口 1与输出接口 6所对应的数据存储空间。需要注意的是,针对在数据Buffer中写入的数据,可获知WritePoint和 ReadPoint中的相关地址信息,即按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应WfeitePoint的下一个数据写入地址;并按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址。下面对数据Buffer、WritePoint和ReadPoint的关系进行详细说明,Buffer、 feitePoint和ReadPoint为对应同一输入接口与输出接口(以输入接口 1与输出接口 6为例)的地址关系。例如,输入接口 1与输出接口 6所对应的数据存储空间有6个存储块时,在将数据存储到第一个存储块(地址1)后,则输入接口 1与输出接口 6对应的feitePoint的下一个数据写入地址为第二个存储块地址(地址幻,输入接口 1与输出接口 6对应的ReadPoint 的当前数据读取地址为地址1,ReadPoint的下一个数据读取地址为地址2。之后在下次写入输入接口 1与输出接口 6对应的数据时,将数据写入到 feitePoint的下一个数据写入地址(即地址2),在读取输入接口 1与输出接口 6对应的数据时,从ReadPoint的当前数据读取地址(即地址1)进行读取。在将数据存储到地址2后,则feitePoint的下一个数据写入地址为第三个存储块地址(地址幻,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的SubJchQ队列中,每个SubJchQ队列对应一个输出接口,且所有对应同一个输出接口的输入接口信息、输出接口信息和存储地址信息写入到同一个SubJichQ队列中。出队子模块332从ReadPoint的当前数据读取地址中读取到数据的存储地址信息后,由于按照数据在数据Buffer中的存储地址更新了输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,则ReadPoint中记录有输入接口信息和输出接口信息对应的下一个数据读取地址,使得出队子模块332在下一次读取时,可以将下一个数据读取地址作为当前数据读取地址,从而继续从ReadPoint中获取数据的存储地址信息,以此类推。基于来自入队子模块331的输入接口信息和输出接口信息,出队子模块332需要获取该输入接口信息和输出接口信息所对应的存储地址信息。例如,需要获取输入接口 1 与输出接口 1所对应的存储地址信息时,从ReadPoin中找到输入接口 1与输出接口 1所对应的存储地址信息,并查看已经读过的指针位置,从而确定数据的存储地址信息。本发明中,在接收到来自入队子模块331的输入接口信息和输出接口信息的通知后,出队子模块332查询输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识(如0),则将输入接口信息、输出接口信息和存储地址信息写入到SubJichQ队列, 并将标记位设置为指定第二标识(如1);如果标记位为指定第二标识,则不将输入接口信息、输出接口信息和存储地址信息写入到SubJchQ队列(即不做任何处理)。需要注意的是,Flag中的标记位是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个标记位。例如,在有8个输入接口和8个输出接口的数据交换系统中,共有64个标记位,如输入接口 1与输出接口 1对应一个标记位、 输入接口 1与输出接口 2对应一个标记位、以此类推。本发明中,在获取到输入接口信息和输出接口信息后,入队子模块331按照数据在数据Buffer中的存储地址更新输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;其中,WritePoint是基于输入接口信息和输出接口信息进行设置的,每个输入接口信息和输出接口信息对应一个feitePoint。在从ReadPoint中获取数据的存储地址信息后,出队子模块332按照数据在数据 Buffer中的存储地址更新输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址。进一步的,调度子模块342在按照输入接口信息、输出接口信息和存储地址信息从数据Buffer中读取相应的数据,并在发送读取的数据后,需要将发送的数据的输入接口信息和输出接口信息写入到i^eedBackQ队列;出队子模块332可从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较该输入接口信息和输出接口信息对应的WritePoint 的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同。如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址相同,则出队子模块332将输入接口信息和输出接口信息对应的标记位设置为指定第一标识。例如,输入接口 1和输出接口 6对应的feitePoint 的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,即ReadPoint和 WritePoint两个读写指针一致,此时没有输入接口 1和输出接口 6对应的数据需要发送,则清掉Flag中输入接口信息和输出接口信息对应的标记位,即将输入接口信息和输出接口信息对应的标记位设置为指定第一标识。队列调度模块34,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照输入接口信息、输出接口信息和存储地址信息从数据Buffer 中读取相应的数据。RR子模块341,用于当SubJchQ队列对应的OutputQ队列还可接收数据时,从 SubJchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中。由于每个SubJchQ队列与一个输出接口相对应,则SubJchQ队列中的输入接口信息、输出接口信息和存储地址信息所对应的数据需要通过同一个接口发送出去,相应的数据发送队列为OutputQ队列,即每个SubJchQ队列对应一个OutputQ队列,如果某 OutputQ队列还可接收数据,且对应的SubJchQ队列非空,则可以将对应的SubJchQ队列中的输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中,继而在后续过程中继续通过该OutputQ队列接收数据。调度子模块342,用于从QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照输入接口信息、输出接口信息和存储地址信息从数据Buffer中读取相应的数据。例如,从QueueQ队列中读取到输入接口 1、输出接口 6以及相应的存储地址信息后,则基于数据Buffer中输入接口 1与输出接口 6所对应的数据存储空间,按照相应的存储地址信息读取相应的数据。之后,调度子模块342将读取到的数据写入到输出接口对应的OutputQ队列,而且此时该输出接口对应的OutputQ队列还可接收数据。发送模块35,用于通过输出接口信息对应的输出接口发送读取的数据。例如,通过发送模块TXl将OutputQl队列中的数据发送至OUTl (即输出接口信息对应的输出接口), 并通过OUTl将数据发送出去;通过发送模块TX2将0utputQ2队列中的数据发送至0UT2, 并通过0UT2将数据发送出去。综上所述,本发明中,通过将多个VOQ队列的管理信息(如耗费芯片寄存器资源的写指针和读指针)放入芯片存储器中实现,大大节省了芯片寄存器资源,并保证方案实现的可行性。通过设置各个虚拟输出队列的入队标志位,各个虚拟输出队列在入队(Sub SchQ 队列)前先查询其标志位,保证各个虚拟输出队列最多只存在一份信息在整个调度过程中,同时芯片内部实行的是各个队列的先进先出处理,从而保证了各个虚拟输出队列的公平性。RR子模块341通过分析OutputQ队列中是否还可放下数据,如果能放下则从Sub_ SchQ队列中读出输出接口(即OutputQ队列对应的输出接口 )对应的输入接口信息、输出接口信息和存储地址信息,从而保证了流控下的各个端口内的调度的公平性,并且确保了入OutputQ队列中的队列均为有效调度队列,提高了系统调度效率。基于与上述系统和设备同样的发明构思,本发明还提出了一种数据的处理方法, 该方法应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,如图4所示,该方法包括以下步骤
12
步骤401,所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer 中。步骤402,所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。步骤403,所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。本发明中,所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据,包括所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到 UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口 ;所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到 Sub_SchQ队列中,每个SubJchQ队列对应一个输出接口 ;当所述SubJchQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述SubJichQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据。所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到 Sub_SchQ队列,之前还包括所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJichQ队列。本发明中,所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括所述数据交换设备按照所述数据在所述数据 Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;所述数据交换设备从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址是否相同;如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。本发明中,所述数据交换设备从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同,之前还包括所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种数据交换设备,应用于包括所述数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据, 其特征在于,所述数据交换设备包括接收模块,用于从输入接口接收数据;Buffer管理模块,用于获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;队列调度模块,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据;发送模块,用于通过所述输出接口信息对应的输出接口发送读取的数据。
2.如权利要求1所述的数据交换设备,其特征在于,所述数据交换设备还包括队列管理模块;所述接收模块,还用于在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ 信息队列,每个UnitCellQ信息队列对应一个输入接口 ;所述队列管理模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从用于指示读取数据的存储地址的ReadPoint中获取所述数据的存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息通知给所述队列调度模块。
3.如权利要求2所述的数据交换设备,其特征在于,所述队列管理模块,具体包括 入队子模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,并将所述输入接口信息和输出接口信息通知给出队子模块;出队子模块,用于按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,并将所述输入接口信息、输出接口信息和存储地址信息写入到所述队列调度模块的SubJichQ队列中, 每个Sub_SchQ队列对应一个输出接口。
4.如权利要求3所述的数据交换设备,其特征在于,所述出队子模块,具体用于在接收到所述输入接口信息和输出接口信息的通知后,查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJichQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJchQ队列。
5.如权利要求4所述的数据交换设备,其特征在于,所述入队子模块,还用于在获取到所述输入接口信息和输出接口信息后,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的的下一个数据写入地址;所述出队子模块,还用于从i^eedBackQ队列中获取输入接口信息和输出接口信息, 并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;如果输入接口信息和输出接口信息对应的feitePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
6.如权利要求5所述的数据交换设备,其特征在于,所述队列调度模块,包括 调度子模块,用于按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
7.如权利要求3所述的数据交换设备,其特征在于,所述队列调度模块,包括RR子模块,用于当所述SubJchQ队列对应的OutputQ队列还可接收数据时,从所述 SubJichQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;调度子模块,用于从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer 中读取相应的数据。
8.一种数据的处理方法,应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,其特征在于,该方法包括以下步骤所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据;所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。
9.如权利要求8所述的方法,其特征在于,所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,包括所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口 ;所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_ SchQ队列中,每个SubJchQ队列对应一个输出接口 ;当所述SubJichQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述 SubJichQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据 Buffer中读取相应的数据。
10.如权利要求9所述的方法,其特征在于,所述数据交换设备将所述输入接口信息、 输出接口信息和存储地址信息写入到SubJchQ队列,之前还包括所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_ SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述SubJichQ队列。
11.如权利要求10所述的方法,其特征在于,所述数据交换设备从所述UnitCeUQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;所述数据交换设备从i^eedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint 的下一个数据读取地址是否相同;如果输入接口信息和输出接口信息对应的feitePoint的下一个数据写入地址和 ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
12.如权利要求11所述的方法,其特征在于,所述数据交换设备从!^edBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的 WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同,之前还包括所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
全文摘要
本发明公开了一种数据的处理方法和设备,该方法包括数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。本发明中,节省了芯片的资源,提高了缓存空间利用率。
文档编号H04L12/56GK102170401SQ20111013999
公开日2011年8月31日 申请日期2011年5月27日 优先权日2011年5月27日
发明者刘强, 王彬 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1