CN102170401B - 一种数据的处理方法和设备 - Google Patents

一种数据的处理方法和设备 Download PDF

Info

Publication number
CN102170401B
CN102170401B CN201110139996.0A CN201110139996A CN102170401B CN 102170401 B CN102170401 B CN 102170401B CN 201110139996 A CN201110139996 A CN 201110139996A CN 102170401 B CN102170401 B CN 102170401B
Authority
CN
China
Prior art keywords
interface information
data
output interface
input interface
information
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.)
Active
Application number
CN201110139996.0A
Other languages
English (en)
Other versions
CN102170401A (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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201110139996.0A priority Critical patent/CN102170401B/zh
Publication of CN102170401A publication Critical patent/CN102170401A/zh
Application granted granted Critical
Publication of CN102170401B publication Critical patent/CN102170401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据的处理方法和设备,该方法包括:数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。本发明中,节省了芯片的资源,提高了缓存空间利用率。

Description

一种数据的处理方法和设备
技术领域
本发明涉及通信技术领域,特别是涉及一种数据的处理方法和设备。
背景技术
在数据交换系统中,会出现多通道数据交换的情况,如图1所示,为一种多通道数据交换框图,IN为输入接口、RX为接收模块、IQ为输入队列、SCHEDULED为调度模块、OQ为输出队列、TX为发送模块、OUT为输出接口。在图1中,有n个输入接口和n个输出接口,每个输入接口的数据可能发送至任何一个输出接口,所有通道间没有优先级区分,各个通道间的调度为公平轮询调度,即依次调度IN1-INn的数据。
现有技术中,数据交换系统一般为信元交换系统,基于图1所示的多通道数据交换框图,由于信元(由信头串和信息串组成的固定长度的比特串)大小固定,则交换延时相对稳定,因此基于信元交换系统的QoS(Quality ofService,服务质量)特性比较好。
通过分析图1所示的多通道数据交换框图,则会发现上述多通道数据交换过程中会出现队头堵塞情况,假设IN1通往OUT1的一个数据被堵在IQ1中,则接下来IN1通往IN2~INn的所有数据均被堵在IQ1中无法发送出去。
为了解决上述队头堵塞问题,如图2所示,可在数据交换系统内部增加多个虚拟输出队列,即将IN1接口通往所有输出接口的数据分为n个队列,在接收到IN1的数据后,根据该数据的输出接口归类到不同的VOQ(VirtualOutput Queue,虚拟输出队列),假设IN1通往OUT1的一个数据被堵在VOQ1_1中,则接下来IN1通往IN2~INn的数据可通过其他VOQ(如VOQ1_2等)队列进行发送,不会被堵在VOQ1_1中,因此不会出现上述队头堵塞问题。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
随着产品的升级,需要交换的输入接口、输出接口越来越多,如果要实现更多输入接口、输出接口的数据交换,则需要耗费的资源过多,并可能出现整个芯片资源消耗完也无法实现更多输入接口、输出接口的交换功能。
发明内容
本发明提供一种数据的处理方法和设备,以节省芯片资源。
为了达到上述目的,本发明提供一种数据交换设备,应用于包括所述数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,所述数据交换设备包括:
接收模块,用于从输入接口接收数据;
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中,可使用较少的资源实现多通道的数据公平交换,从而节省芯片的资源,并实现对数据的缓存资源的共享,提高缓存空间利用率。
附图说明
图1是现有技术中的一种多通道数据交换框图;
图2是现有技术中的解决出现队头堵塞情况的示意图;
图3是本发明提出的一种数据交换设备的结构图;
图4是本发明提供的一种数据的处理方法流程图。
具体实施方式
现有技术中,在逻辑器件内部直接对每个接收通道(即输出接口对应的通道)做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盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (11)

1.一种数据交换设备,应用于包括所述数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,其特征在于,所述数据交换设备包括:
接收模块,用于从输入接口接收数据;还用于在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;
Buffer管理模块,用于获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;
队列调度模块,用于在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;
发送模块,用于通过所述输出接口信息对应的输出接口发送读取的数据;
队列管理模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从用于指示读取数据的存储地址的ReadPoint中获取所述数据的存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息通知给所述队列调度模块。
2.如权利要求1所述的数据交换设备,其特征在于,所述队列管理模块,具体包括:
入队子模块,用于从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,并将所述输入接口信息和输出接口信息通知给出队子模块;
出队子模块,用于按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息,按照数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址,并将所述输入接口信息、输出接口信息和存储地址信息写入到所述队列调度模块的Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口。
3.如权利要求2所述的数据交换设备,其特征在于,
所述出队子模块,具体用于在接收到所述输入接口信息和输出接口信息的通知后,查询所述输入接口信息和输出接口信息对应的标记位;
如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;
如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列。
4.如权利要求3所述的数据交换设备,其特征在于,
所述入队子模块,还用于在获取到所述输入接口信息和输出接口信息后,按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;
所述出队子模块,还用于从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
5.如权利要求4所述的数据交换设备,其特征在于,所述队列调度模块,包括:
调度子模块,用于按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
6.如权利要求2所述的数据交换设备,其特征在于,所述队列调度模块,包括:
RR子模块,用于当所述Sub_SchQ队列对应的OutputQ队列还可接收数据时,从所述Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;
调度子模块,用于从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
7.一种数据的处理方法,应用于包括数据交换设备、多个输入接口和多个输出接口的数据交换系统中,所述数据交换设备用于通过输出接口发送从输入接口接收到的数据,其特征在于,该方法包括以下步骤:
所述数据交换设备从输入接口接收数据,获取所述数据的输入接口信息和输出接口信息,并按照所述输入接口信息和输出接口信息将所述数据存储到数据Buffer中;
所述数据交换设备在调度数据时,获取待调度数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据;其中,所述数据交换设备获取待调度数据的输入接口信息、输出接口信息和存储地址信息,包括:所述数据交换设备在接收到数据后,将所述数据的输出接口信息写入到UnitCellQ信息队列,每个UnitCellQ信息队列对应一个输入接口;所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,按照所述输入接口信息和输出接口信息从ReadPoint的当前数据读取地址中获取所述数据的存储地址信息;
所述数据交换设备通过所述输出接口信息对应的输出接口发送所述读取的数据。
8.如权利要求7所述的方法,其特征在于,所述按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,包括:
所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的ReadPoint的下一个数据读取地址;
所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列中,每个Sub_SchQ队列对应一个输出接口;
当所述Sub_SchQ队列对应的OutputQ队列还可接收数据时,所述数据交换设备从所述Sub_SchQ队列中读出输入接口信息、输出接口信息和存储地址信息,并将所述输入接口信息、输出接口信息和存储地址信息写入到QueueQ队列中;
所述数据交换设备从所述QueueQ队列中读取数据的输入接口信息、输出接口信息和存储地址信息,并按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据。
9.如权利要求8所述的方法,其特征在于,所述数据交换设备将所述输入接口信息、输出接口信息和存储地址信息写入到Sub_SchQ队列,之前还包括:
所述数据交换设备查询所述输入接口信息和输出接口信息对应的标记位;如果标记位为指定第一标识,则将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列,并将标记位设置为指定第二标识;如果标记位为指定第二标识,则不将所述输入接口信息、输出接口信息和存储地址信息写入到所述Sub_SchQ队列。
10.如权利要求9所述的方法,其特征在于,所述数据交换设备从所述UnitCellQ信息队列中获取所述数据的输入接口信息和输出接口信息,之后还包括:所述数据交换设备按照所述数据在所述数据Buffer中的存储地址更新所述输入接口信息和输出接口信息对应的用于指示写入数据的存储地址的WritePoint的下一个数据写入地址;
所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同;
如果输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址相同,则将所述输入接口信息和输出接口信息对应的标记位设置为所述指定第一标识。
11.如权利要求10所述的方法,其特征在于,所述数据交换设备从FeedBackQ队列中获取输入接口信息和输出接口信息,并比较所述输入接口信息和输出接口信息对应的WritePoint的下一个数据写入地址和ReadPoint的下一个数据读取地址是否相同,之前还包括:
所述数据交换设备在按照所述输入接口信息、输出接口信息和存储地址信息从所述数据Buffer中读取相应的数据,并在发送读取的数据后,将发送的数据的输入接口信息和输出接口信息写入到FeedBackQ队列。
CN201110139996.0A 2011-05-27 2011-05-27 一种数据的处理方法和设备 Active CN102170401B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110139996.0A CN102170401B (zh) 2011-05-27 2011-05-27 一种数据的处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110139996.0A CN102170401B (zh) 2011-05-27 2011-05-27 一种数据的处理方法和设备

Publications (2)

Publication Number Publication Date
CN102170401A CN102170401A (zh) 2011-08-31
CN102170401B true CN102170401B (zh) 2014-04-09

Family

ID=44491384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110139996.0A Active CN102170401B (zh) 2011-05-27 2011-05-27 一种数据的处理方法和设备

Country Status (1)

Country Link
CN (1) CN102170401B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506585B (zh) * 2014-12-08 2017-11-07 中国运载火箭技术研究院 一种车载多通道实时电子数据交换设备及数据交换方法
CN109416530B (zh) * 2017-07-26 2021-07-09 深圳配天智能技术研究院有限公司 一种从设备的输入输出控制方法、主控设备以及数控系统
CN108200024A (zh) * 2017-12-26 2018-06-22 盛科网络(苏州)有限公司 一种以太网报文编辑装置及方法
CN113259264B (zh) * 2021-07-07 2021-11-09 北京国科天迅科技有限公司 数据传输方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020064156A1 (en) * 2000-04-20 2002-05-30 Cyriel Minkenberg Switching arrangement and method
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1816009A (zh) * 2005-02-04 2006-08-09 华为技术有限公司 一种数据帧组播复制的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020064156A1 (en) * 2000-04-20 2002-05-30 Cyriel Minkenberg Switching arrangement and method
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1816009A (zh) * 2005-02-04 2006-08-09 华为技术有限公司 一种数据帧组播复制的方法及系统

Also Published As

Publication number Publication date
CN102170401A (zh) 2011-08-31

Similar Documents

Publication Publication Date Title
US8155134B2 (en) System-on-chip communication manager
KR102532173B1 (ko) 메모리 액세스 기술 및 컴퓨터 시스템
US9602436B2 (en) Switching device
US7995472B2 (en) Flexible network processor scheduler and data flow
US20120324160A1 (en) Method for data access, message receiving parser and system
US10146468B2 (en) Addressless merge command with data item identifier
CN102170401B (zh) 一种数据的处理方法和设备
JP2021501491A (ja) バッファ状態報告方法、端末及びコンピュータ記憶媒体
CN112835695B (zh) Pod间通信的方法和分布式计算系统
CN103986585A (zh) 报文预处理方法及其装置
CN101902390B (zh) 一种单播和多播集成调度装置、交换系统及方法
CN113127171A (zh) 用于任务分配系统中的行为配对的技术
CN112035898A (zh) 多节点多通道高速并行处理方法及系统
CN111181874B (zh) 一种报文处理方法、装置及存储介质
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
CN102098215B (zh) 一种多应用收包的优先级管理方法
CN112114982B (zh) 基于VxWorks系统的多任务间共享内存的管理方法
CN102404183B (zh) 仲裁方法和仲裁器
CN107911317B (zh) 一种报文调度方法及装置
US20160085701A1 (en) Chained cpp command
CN102055671A (zh) 一种多应用发包的优先级管理方法
US9338219B2 (en) Direct push operations and gather operations
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
CN112804166B (zh) 一种报文收发方法、装置及存储介质
CN109862044B (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
ASS Succession or assignment of patent right

Owner name: ZHEJIANG UNIVIEW TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: HUASAN COMMUNICATION TECHNOLOGY CO., LTD.

Effective date: 20120217

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120217

Address after: Hangzhou City, Zhejiang province 310053 Binjiang District Dongxin Road No. 66 building two or three layer A C

Applicant after: Zhejiang Uniview Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Applicant before: Huasan Communication Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant