CN102118304B - 一种信元交换方法和装置 - Google Patents

一种信元交换方法和装置 Download PDF

Info

Publication number
CN102118304B
CN102118304B CN201010001602.0A CN201010001602A CN102118304B CN 102118304 B CN102118304 B CN 102118304B CN 201010001602 A CN201010001602 A CN 201010001602A CN 102118304 B CN102118304 B CN 102118304B
Authority
CN
China
Prior art keywords
cell
ram
output port
group
time slot
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
CN201010001602.0A
Other languages
English (en)
Other versions
CN102118304A (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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010001602.0A priority Critical patent/CN102118304B/zh
Publication of CN102118304A publication Critical patent/CN102118304A/zh
Application granted granted Critical
Publication of CN102118304B publication Critical patent/CN102118304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明公开了一种信元交换方法和装置,涉及数据通信技术,本发明实施例通过在每个输入端口增加fifo,缓存对应的输入端口所输入的信元,并将各个fifo中缓存的信元拆分为多个数据块写入共享缓存,再由输出端口通过不同的时隙读出信元,并输出,完成交换,由于增加了fifo对信元进行了缓存,进而可以使得各个不同端口需要对同一缓存进行读写时,各端口分别在不同的时隙进行读写,避免了冲突且容易调度。

Description

一种信元交换方法和装置
技术领域
本发明涉及数据通信技术,尤其涉及数据通信技术中的一种信元交换方法和装置。
背景技术
目前的交换装置中,交换芯片一般采用两种架构来实现,一种是crossbar(交叉开关矩阵)架构,另一种是shared-memory(共享内存)架构。
采用crossbar架构进行信元交换需要考虑数据输入输出的两级调度问题,在输入输出之间需要进行匹配,即输入端和输出端需要根据自身的空闲情况进行匹配和调度,再与对方进行协商。调度算法的复杂性随着输入输出端口的增加而成指数增加,在输入输出端口较多时,调度算法的复杂度极大。
在这种crossbar架构的基础上进一步发展出来的带交叉点缓存的crossbar结构在每个交叉点都增加了缓存,虽然不再需要匹配算法,但是需要的交叉点缓存数量为输入输出端口数的平方倍,在端口数量较多的情况下,交叉点缓存数量达到不可实现的程度。
采用share-memory架构使用了共享缓存,相对于crossbar架构减少了对缓存资源的消耗,但是在向多个共享缓存中写入信元时,由于是按照各个缓存的深度轮流写入的,以使得各个缓存的深度均匀,但是这就有可能使得不同的输出端口在同一时间从同一缓存中读数据,造成冲突。如果增大共享缓存的带宽,允许更多的输出端口同时读取数据,可以降低这种冲突发生的概率,但同时多个输出端口需要在统一缓存中读数据时的调度复杂度也增加了,在端口数量较多的时候,很难解决冲突的问题。
发明内容
本发明实施例提供一种信元交换方法和装置,以实现在较简单的调度下无冲突的进行信元交换。
一种信元交换方法,包括:
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
根据信元中的目的地址信息或目的端口信息,确定所述信元的输出端口;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,所述从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,具体包括:
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中;
通过所述输出端口输出所述第二fifo中缓存的信元。
较佳的,所述将第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中具体为:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
一种信元交换装置,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
确定单元,用于根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口;
第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
输入控制单元,用于按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入所述第一RAM组中的各RAM中;
输出控制单元,用于根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,装置中还包括:
与输出端口数量相同的第二fifo,用于缓存对应的输出端口从所述第一RAM组中读出的数据;
所述输出控制单元具体用于,根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述第二fifo中缓存的信元。
进一步,所述输出控制单元具体用于:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
一种信元交换方法,包括:
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量,并且大于或等于L;
根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中,所述第二RAM组的位宽与所述信元长度相等。
将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中,所述第三RAM组的位宽与所述第一RAM组相同,所述第三RAM组中包括的RAM个数大于或等于L个;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,所述从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,具体包括:
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中,以及通过所述输出端口输出所述第二fifo中缓存的信元。
较佳的,所述每个分组中输入端口或输出端口的个数不超过L个。
进一步,所述将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述所述第一RAM组中的信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
进一步,所述将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述所述第一RAM组中的信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
较佳的,所述将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中具体包括:
轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
进一步将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中,具体为:
将所述第二RAM组中的信元拆分为L个数据块,并根据所述信元的输出端口,分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中对应所述输出端口的区域。
一种信元交换装置,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
确定单元,用于根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
与输入端口分组数量相等的第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
M个第二RAM组,位宽与所述信元长度相等,用于缓存所述信元,其中M为输入端口的分组数与输出端口的分组数的乘积;
与输出端口分组数量相等的第三RAM组,包括不少于L个RAM,用于缓存所述信元,位宽与所述第一RAM组相同;
第一控制单元,用于按照所述第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,其中,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量;
第二控制单元,用于根据所述确定单元确定的所述信元的输出端口所属的分组,将所述第一RAM组中的信元写入所述信元的输出端口所属的分组对应的第二RAM组中;
第三控制单元,用于将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中;
第四控制单元,用于从为所述信元的输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,装置中还包括:
与输出端口数量相同的第二fifo,用于缓存对应的输出端口从所述第三RAM组中读出的数据;
所述第四控制单元具体用于,根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述第二fifo中缓存的信元。
进一步,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
进一步,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
较佳的,所述第三控制单元具体用于,轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
进一步,所述第三控制单元具体用于,将所述第二RAM组中的信元拆分为L个数据块,并根据所述信元的输出端口,分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中对应所述输出端口的区域。
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
根据信元中的目的地址信息或目的端口信息,确定所述信元的输出端口;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L;
通过所述输出端口输出所述第二fifo中缓存的信元。
进一步,所述将第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中具体为:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
一种信元交换装置,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
与输出端口数量相同的第二fifo,用于缓存从所述第一RAM组中读出的数据;
输入控制单元,用于按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入所述第一RAM组中的各RAM中;
输出控制单元,用于根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述信元,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,所述第一控制单元具体用于:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
一种信元交换方法,包括:
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量,并且大于或等于L;
根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中,所述第二RAM组的位宽与所述信元长度相等。
将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中,所述第三RAM组的位宽与所述第一RAM组相同,所述第三RAM组中包括的RAM个数大于或等于L个;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L;
通过所述输出端口输出所述第二fifo中缓存的信元。
较佳的,所述每个分组中输入端口或输出端口的个数不超过L个。
进一步,所述将信元写入所述信元的输出端口所属的分组所对应的第三RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
或者,所述将信元写入所述信元的输出端口所属的分组所对应的第三RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
进一步,所述将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中具体包括:
轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
较佳的,所述将信元写入第三RAM组中,具体为:
根据所述信元的输出端口,将所述信元写入所述第三RAM中对应所述输出端口的区域。
一种信元交换装置,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
确定单元,用于根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
与输入端口分组数量相等的第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
M个第二RAM组,位宽与所述信元长度相等,用于缓存所述信元,其中M为输入端口的分组数与输出端口的分组数的乘积;
与输出端口分组数量相等的第三RAM组,包括不少于L个RAM,用于缓存所述信元,位宽与所述第一RAM组相同;
与输出端口数量相同的第二fifo,用于存储从所述第三RAM组中读出的信元;
第一控制单元,用于按照所述第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,其中,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量;
第二控制单元,用于根据所述确定单元确定的所述信元的输出端口所属的分组,将所述第一RAM组中的信元写入所述信元的输出端口所属的分组对应的第二RAM组中;
第三控制单元,用于将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中;
第四控制单元,用于从为所述信元的输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述信元,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
或者,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
进一步,所述第三控制单元具体用于,轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
较佳的,所述第三控制单元具体用于,将所述第二RAM组中的信元拆分为L个数据块,并根据所述信元的输出端口,分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中对应所述输出端口的区域。
本发明实施例提供一种信元交换方法和装置,通过在每个输入端口增加fifo,缓存对应的输入端口所输入的信元,并将各个fifo中缓存的信元拆分为多个数据块写入共享缓存,再由输出端口通过不同的时隙读出信元,并输出,完成交换,由于增加了fifo对信元进行了缓存,进而可以使得各个不同端口需要对同一缓存进行读写时,各端口分别在不同的时隙进行读写,避免了冲突且容易调度。
附图说明
图1为本发明实施例中按照时隙向RAM组中写入信元的示意图;
图2为本发明实施例中按照时隙从RAM组中读出信元的示意图;
图3为本发明实施例提供的信元交换方法流程图之一;
图4为本发明实施例提供的信元交换装置结构示意图之一;
图5为本发明实施例提供的信元交换方法流程图之二;
图6为本发明实施例提供的信元交换装置结构示意图之二;
图7为本发明实施例提供的一种具体的信元交换装置结构示意图;
图8为本发明实施例提供的从第二RAM组中轮询读取信元的示意图。
具体实施方式
本发明实施例提供一种信元交换方法和装置,在每个输入输出端口都增加了一个对应的fifo来缓存所输入输出的信元,并为每个输入输出端口分配写入或读出缓存的起始时隙,各端口从各自的起始时隙开始,通过一个周期中的L个时隙写入或读出缓存中的信元,其中,L=信元长度/第一RAM的位宽,在每个端口都需要进行写入或读取时,每个时隙都有且只有一个端口对一个RAM进行读取或写入,从而避免了缓存读写的冲突。
以576位的信元和位宽为16位的RAM组为例:
在进行写入时,如图1所示,每个输入端口都通过36个时隙分别对RAM组中的36个RAM进行写入,每次写入一个RAM的位宽的长度,36个时隙刚好可以将一个信元全部写入到该RAM组中,由于每个输入端口的起始时隙都不同,比前一个端口晚一个时隙,并且都是从RAM组的第一个RAM开始一次写入,避免了输入端口间写入的冲突,且在进行一个周期以后,每个输入端口都处于全速写的状态,没有对带宽造成浪费。
同样,在进行读出时,如图2所示,每个输出端口都通过36个时隙分别从RAM组中的36个RAM读出,每次读出一个RAM的位宽的长度,36个时隙刚好可以将一个信元从该RAM组中全部读出,由于每个输出端口的起始时隙都不同,比前一个端口晚一个时隙,并且都是从RAM组的第一个RAM开始一次读取,避免了输出端口间读取缓存的冲突,且在进行一个周期以后,每个输入端口都处于全速读的状态,没有对带宽造成浪费。
根据端口的数量,设置的缓存数量的不同,本发明实施例具体提供如下几种实施方式:
实施例一、
仅在信元交换装置中设置一个RAM组。
如图3所示,本发明实施例提供的信元交换方法包括:
步骤S301、将从输入端口接收的信元缓存在输入端口对应的第一fifo中;
步骤S302、根据信元中的目的地址信息或目的端口信息,确定信元的输出端口;
步骤S303、按照第一RAM组的位宽,将第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中,第一RAM组中至少包括L个RAM,L=信元长度/第一RAM的位宽;
步骤S304、从为该输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从第一RAM组的L个RAM中依次读出该信元的各数据块,并通过该信元的输出端口输出。
进一步,在步骤S304中,还可以将从第一RAM组的L个RAM中依次读出该信元的各数据块存储到与该信元的输出端口对应的第二fifo中,待该信元的所有数据块全部读出后,再从第二fifo中输出该信元。
为防止写入时造成缓存冲突,在步骤S303中,同样也是按照时隙顺序写入,即,按照第一RAM组的位宽,将第一fifo中的信元拆分成L个数据块,从预先为输入端口分配的起始时隙开始,通过L个时隙将L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
以输出端口从第一RAM组中写数据为例,由于给不同的输出端口分配的起始时隙不同,而各个输出端口从起始时隙开始,都从第一RAM组的第一个RAM开始读取数据,所以各个输出端口错开了读取时间,对于缓存来讲,每个时隙都有输出端口在进行读取,并没有位宽的浪费。
在写入时,也是同样,由于给不同的输入端口分配的时隙不同,在每个时隙中,各个输入端口都对第一RAM中不同的RAM进行写入操作,避免了冲突。
为保证每个输出端口都能够分到不同的时隙,一个周期中所包含的时隙数目要大于或者等于输出端口的数量,当然,为保证对于每个RAM来讲,能够达到每个时隙都有输出端口在读取数据,一个周期中的时隙数目应该等于输出端口的数量。当输入端口数量和输出端口数量不同时,一个周期中所包含的时隙数目要大于或等于较多的一个,即,如果输入端口数量大于输出端口数量,一个周期中所包含的时隙数目要大于或等于输入端口数量,反之,则一个周期中所包含的时隙数目要大于或等于输出端口数量。
同时,一个周期中所包含的时隙数目还要大于或等于L,这样才能够保证在一个周期内将一个信元完整的写入到第一RAM组中去。
当第一RAM组中包括的RAM数目大于L时,只有前L个RAM中会被写入数据。
较佳的情况是,第一RAM组中包括L个RAM,一个周期所包含的时隙数目刚好等于输出端口数量和L中较大的一个,这样既保证了数据读取的顺利进行,又没有浪费缓存资源。
当第一RAM组中包括L个RAM时,每个RAM中存储该信元的一个数据块,L个RAM刚好存储一个信元,即利用第一RAM组每个RAM的相同地址来存储一个信元。
进一步,第一RAM组中的RAM容量越大越好,当多个输入端口向同一个输出端口发送信元时,可以存储在第一RAM组中,由该输出端口依次读出,实现了缓冲,且调度较简单。
如图4所示,该信元交换装置中包括:第一fifo401、确定单元402、第一RAM组403、输入控制单元405和输出控制单元406,其中:
第一fifo401的数量与输入端口相同,并且每个第一fifo对应一个输入端口,用于存储从与之对应的输入端口接收的信元;
确定单元402,用于根据第一fifo401中所存储的信元中的目的地址信息或目的端口信息,确定该信元的输出端口;
第一RAM组403,包括不少于L个RAM,用于缓存信元,其中,L=信元长度/第一RAM组的位宽;
输入控制单元405,用于按照第一RAM组403的位宽,将第一fifo401中的信元拆分为L个数据块,每个数据块的大小即为第一RAM组403中RAM的位宽,并将L个数据块分别写入第一RAM组403中的各RAM中;
在写入时,可以从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
输出控制单元406,用于根据确定单元402确定的信元的输出端口,从为该输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从第一RAM组403的L个RAM中依次读出信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
或者,信元交换装置中也可以进一步包括第二fifo404,第二fifo404的数量与输出端口相同,并且每个第二fifo404对应一个输出端口,用于缓存从第一RAM组中读取出的数据,此时,输出控制单元406具体用于,根据确定单元402确定的信元的输出端口,从为该输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从第一RAM组403的L个RAM中依次读出信元的各数据块,并缓存在该输出端口对应的第二fifo404中,并在一个信元读取完毕后,从对应的输出端口输出第二fifo404中缓存的信元。
下面以具体的实例来说明该实施方式:
若交换装置中的输入输出端口各有36个,一个信元的长度为576位,第一RAM组的位宽为16,那么L为36,刚好等于输入输出端口的数量,此时,信元交换装置中的第一RAM组中需要包括至少36个RAM,当第一RAM组中包括36个RAM、每个周期包括36个时隙时较佳。如从该信元交换装置的第15个输入端口输入一个信元,需要输出至第20个输出端口时,该第15个输入端口所对应的第一fifo首先缓存该信元,确定单元根据第一fifo中缓存的信元中的目的地址信息或目的端口信息确定该信元的输出端口为第20个输出端口。输入控制单元从预先分配的第15个时隙开始,向第一RAM组中写入该信元,在时隙15时向第一RAM组中的第一个RAM中写入该信元的第一个16位,在时隙16时向第一RAM组中的第二个RAM中写入该信元的下一个16位,当下一个周期的第14个时隙时,即可将该信元的最后一个16位写入第一RAM组中的最后一个RAM中,完成了向第一RAM组中写入该信元。输出控制单元从预先分配给第20个输出端口的第20个时隙开始,从第一RAM组中读出该信元,在时隙20时向第一RAM组中的第一个RAM中读出该信元的第一个16位,在时隙21时向第一RAM组中的第一个RAM中读出该信元的下一个16位,直到下一个周期的第19个时隙时,即可从第一RAM组中的最后一个RAM中读出该信元的最后一个16位,所读出的数据都存储在第20个输出端口所对应的第二fifo中,当该信元读取完毕后,将该第二fifo中存储的信元从第20个输出端口输出,完成了对该信元的交换。
若该信元交换装置有37个输入端口或者37个输出端口,将一个周期所包括的时隙数目设置为37个即可实现信元的交换。
实施例二、
在信元交换装置中设置了多个缓存,较适用于输入输出端口较多的情况。
此时,如图5所示,进行信元交换的方法中包括:
步骤S501、将从输入端口接收的信元缓存在输入端口对应的第一fifo中;
步骤S502、按照第一RAM组的位宽,将第一fifo中的信元拆分成L个数据块,从预先为输入端口分配的起始时隙开始,通过一个周期中的L个时隙将L个数据块依次写入输入端口所属的分组对应的第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块;
不同输入端口分配的起始时隙不同,为保证能够将一个信元的各个数据块写入到第一RAM组各个RAM的相同地址中,第一RAM组中包括的RAM个数要大于或等于L个,其中,L=信元长度/第一RAM组的位宽,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量;
步骤S503、根据信元中的目的地址信息或目的端口信息,确定信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
步骤S504、将第一RAM组中的信元写入信元的输出端口所属的分组所对应的第二RAM组中,第二RAM组的位宽与信元长度相等。
步骤S505、将第二RAM组中的信元拆分为L个数据块,并分别写入输出端口所属分组对应的第三RAM组中的各RAM中,第三RAM组的位宽与第一RAM组相同,第三RAM组中包括的RAM个数大于或等于L个;
步骤S506、从为输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从第三RAM组的L个RAM中依次读出信元的各数据块,并输出。
同样,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于第一RAM组中RAM的数量;
进一步,还可以为每个输出端口设置一个第二fifo,将从第三RAM组的L个RAM中读出信元的各数据块缓存在信元的输出端口所对应的第二fifo中,在一个信元读取完毕后,再通过输出端口输出第二fifo中缓存的信元。
如图6所示,此时,该信元交换装置中包括:第一fifo601、确定单元602、第一RAM组603、第二RAM组604、第三RAM组605、第一控制单元607、第二控制单元608、第三控制单元609和第四控制单元610,其中:
第一fifo601的数量与输入端口相同,并且每个第一fifo601对应一个输入端口,用于存储从与之对应的输入端口接收的信元;
确定单元602,用于根据第二RAM组604中所存储的信元中的目的地址信息或目的端口信息,确定该信元的输出端口和该输出端口所属的分组;
第一RAM组603,数量与输入端口的分组数量相同,每个第一RAM组603都包括不少于L个RAM,用于缓存接收的信元,其中,L=信元长度/第一RAM组的位宽;
第二RAM组604,至少包括M个,M为输入端口的分组数与输出端口的分组数的乘积,用于缓存信元,第二RAM组604的位宽与信元长度相等,可以在一个时隙完成一个信元的写入或读出;
第三RAM组605,数量与输出端口的分组数量相同,每个第三RAM组605都包括不少于L个RAM,用于缓存信元,第三RAM组605的位宽和第一RAM组603的位宽相同;
第一控制单元607,用于按照第一RAM组603的位宽,将第一fifo601中的信元拆分成L个数据块,从预先为输入端口分配的起始时隙开始,通过一个周期中的L个时隙将L个数据块依次写入输入端口所属的分组对应的第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,其中,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量;
第二控制单元608,用于根据确定单元602确定的信元的输出端口所属的分组,将第一RAM组603中的信元写入该信元的输出端口所属的分组对应的第二RAM组604中;
第三控制单元609,用于将第二RAM组604中的信元拆分为L个数据块,并分别写入该信元的输出端口所属分组对应的第三RAM组605中的各RAM中;
第四控制单元610,用于从为信元的输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从第三RAM组605的L个RAM中依次读出该信元的各数据块,并输出,其中,预先为不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
进一步,信元交换装置中还可以包括数量与输出端口的数量相同的第二fifo606,与输出端口一一对应,用于存储从第三RAM组605中读出的信元,此时,第四控制单元在从第三RAM组605的L个RAM中依次读出该信元的各数据块时,将各个数据块缓存在该信元的输出端口所对应的第二fifo606中,并在一个信元读取完毕后,从对应的输出端口输出第二fifo606中缓存的信元。
下面举例说明本发明实施例较佳的实施方式:
如图7所示,为具有96个输入端口和输出端口的信元交换装置的结构示意图,由于信元长度为576,第一RAM组和第三RAM组中RAM的位宽为16,所以L值为36,为充分利用时间,避免端口的等待情况,一个周期的时隙数目设置为36,所以输入端口和输出端口各被分成了三组,1-36端口为第一组,37-72端口为第二组,73-96端口为第三组,每个分组中各个端口编号由小到大分别对应的起始时隙为1-36。
当信元交换装置从第1个输入端口接收到一个信元后,将该信元存储在第1个输入端口对应的第一fifo中,并在下一个周期的第一个时隙将该信元的前16位写入到第一RAM组的第一个RAM中,在该周期的第二个时隙将该信元的下一个16位写入到第一RAM组的第二个RAM中,直至该周期结束时,将该信元的第36个16位写入到第一RAM组的第36个RAM中,完成了对该信元的展宽。
若同时信元交换装置的第2个输入端口也接收到一个信元,则该信元存储在与第2个输入端口对应的第一fifo中,并在这个周期的第二个时隙向第一RAM组的第一个RAM中写入第一fifo中所存储的信元的前16位,在第三个时隙向第一RAM组的第二个RAM中写入该信元的下一个16位,依次类推,刚好与第1个端口的写入操作错开一个时隙。
如果该分组的36个输入端口都不停的接收信元,那么每个时隙中,36个输入端口都分别向该分组中的第一RAM组的不同RAM中写入数据。
确定单元获取各个分组的第一RAM组中所存储的信元中的目的地址信息或目的端口信息,确定各个信元的输出端口以及各个信元的输出端口所属的分组。可以为每个分组的第一RAM组分别设置一个确定单元,也可以各个分组共用一个确定单元。
读出第一RAM组中存储的信元,并写入到对应该信元的输出端口所在分组的第二RAM组中。由于第二RAM组中各RAM的位宽与信元长度相等,为576位,所以用一个时隙从第一RAM组中读出并写入到第二RAM组中即可,这样,在一个周期的36个时隙中,就可以将该组的36个端口在一个周期内所写入的36个信元全部读出并写入到各信元相应的第二RAM组中。
由于每个输入端口组和输出端口组的组合都有一个对应的第二RAM组,在将第一RAM组中的信元写入到第二RAM组中的时候,可以根据该信元的输入端口组和输出端口组,将该信元写入到对应的第二RAM组中,即,仍以图7中的信元交换装置为例,若从第1个输入端口输入一个信元去往第73个输出端口,则将该信元写入到第一组输入端口和第三组输出端口共同对应的第二RAM组中。
进一步,为使得信元在等待写入到第三RAM组中的时候更加有序,便于调度,可以在将信元写入到第二RAM组中时,将信元写入到第二RAM组中与该信元的输出端口所对应的RAM中,例如从第1个输入端口输入一个信元去往第73个输出端口,则将该信元写入到第一组输入端口和第三组输出端口共同对应的第二RAM组对应第73个输出端口的第一个RAM中。
更进一步,为了避免各个输入端口分组中去往同一个输出端口的信元数量不均衡,导致同一个输出端口对应的三个第二RAM组中的RAM利用率不均衡,可以在将信元写入到第二RAM组中时,选择该信元的输出端口所属的分组所对应的三个第二RAM组中,该输出端口对应的三个RAM中数据量最少的一个。如果在一个时隙中,只有一个输入端口分组的一个信元去往该输出端口,则将该信元写入到该输出端口对应的三个第二RAM组的三个RAM中最浅的一个,如果有两个输入端口分组各有一个信元去往该输出端口,则分别将这两个信元写入到该输出端口对应的三个第二RAM组的三个RAM中较浅的两个,如果三个输入端口分组都有一个信元去往该输出端口,则分别将三个信元写入到该输出端口对应的三个第二RAM组的三个RAM中,此时,可以采用链表的方式来记录各个信元的写入顺序。
或者,在第二RAM组中,还可以采用链表的方式来表征一个信元的输出端口,这时就不需要将信元写入第二RAM组中固定的对应该信元的输出端口的RAM中了,在读出时,如图8所示,只要轮询三个输入端口分组到该输出端口分别生成的三个链表即可。
从第二RAM组中读出信元并写入第三RAM组中也只需要一个时隙就可以完成,这样,通过一个周期的36个时隙,刚好可以向第三RAM组中为该组36个输出端口各写入一个信元。在为一个输出端口写入信元时,第三控制单元轮询该输出端口所对应的三个RAM或者三个链表,每次读出一个信元写入到第三RAM组中。
第三RAM组的深度可以为该组输出端口数量的二倍,每个输出端口对应两个地址,这样,刚好在一个周期内,第三控制单元在这个周期的一个时隙中向一个地址写入信元,第四控制单元在这个周期中从另一个地址读出信元,实现了对缓存的充分利用。
本发明实施例提供一种信元交换方法和装置,通过在每个端口增加fifo,缓存对应的输入端口所输入的信元,并将各个fifo中缓存的信元在不同的时隙中写入共享缓存,再由输出端口通过不同的时隙读出信元,并缓存在输出端口处增加的fifo中,再通过输出端口输出,完成交换,由于增加了fifo对信元进行了缓存,进而可以使得各个不同端口需要对同一缓存进行读写时,各端口分别在不同的时隙进行读写,避免了冲突且容易调度。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (19)

1.一种信元交换方法,其特征在于,包括:
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
根据信元中的目的地址信息或目的端口信息,确定所述信元的输出端口;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
2.如权利要求1所述的方法,其特征在于,所述从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,具体包括:
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中;
通过所述输出端口输出所述第二fifo中缓存的信元。
3.如权利要求1或2所述的方法,其特征在于,所述将所述第一fifo中的信元拆分为L个数据块,并分别写入第一RAM组中的各RAM中具体为:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
4.一种信元交换装置,其特征在于,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
确定单元,用于根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口;
第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
输入控制单元,用于按照第一RAM组的位宽,将所述第一fifo中的信元拆分为L个数据块,并分别写入所述第一RAM组中的各RAM中;
输出控制单元,用于根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
5.如权利要求4所述的装置,其特征在于,还包括:
与输出端口数量相同的第二fifo,用于缓存对应的输出端口从所述第一RAM组中读出的数据;
所述输出控制单元具体用于,根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第一RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述第二fifo中缓存的信元。
6.如权利要求4或5所述的装置,其特征在于,所述输出控制单元具体用于:
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过L个时隙将所述L个数据块依次写入第一RAM组中,每个时隙向第一RAM组中的相应RAM中写入一个数据块。
7.一种信元交换方法,其特征在于,包括:
将从输入端口接收的信元缓存在所述输入端口对应的第一fifo中;
按照第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,所述第一RAM组中包括的RAM个数大于或等于L个,其中,L=信元长度/第一RAM组的位宽,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量,并且大于或等于L;
根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中,所述第二RAM组的位宽与所述信元长度相等;
将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中,所述第三RAM组的位宽与所述第一RAM组相同,所述第三RAM组中包括的RAM个数大于或等于L个;
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
8.如权利要求7所述的方法,其特征在于,所述从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,具体包括:
从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述信元的输出端口所对应的第二fifo中,以及通过所述输出端口输出所述第二fifo中缓存的信元。
9.如权利要求7所述的方法,其特征在于,所述每个分组中输入端口或输出端口的个数不超过L个。
10.如权利要求7所述的方法,其特征在于,所述将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述第一RAM组中的信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
11.如权利要求7所述的方法,其特征在于,所述将所述第一RAM组中的信元写入所述信元的输出端口所属的分组所对应的第二RAM组中与所述信元输出端口对应的RAM中,具体为:
将所述第一RAM组中的信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
12.如权利要求7-11任一所述的方法,其特征在于,所述将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中具体包括:
轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
13.如权利要求7所述的方法,其特征在于,将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中,具体为:
将所述第二RAM组中的信元拆分为L个数据块,并根据所述信元的输出端口,分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中对应所述输出端口的区域。
14.一种信元交换装置,其特征在于,包括:
与输入端口数量相同的第一fifo,用于存储从与之对应的输入端口接收的信元;
确定单元,用于根据所述信元中的目的地址信息或目的端口信息,确定所述信元的输出端口和该输出端口所属的分组,每组的输出端口数小于或等于一个周期中时隙的个数;
与输入端口分组数量相等的第一RAM组,包括不少于L个RAM,用于缓存所述信元,其中,L=信元长度/第一RAM组的位宽;
M个第二RAM组,位宽与所述信元长度相等,用于缓存所述信元,其中M为输入端口的分组数与输出端口的分组数的乘积;
与输出端口分组数量相等的第三RAM组,包括不少于L个RAM,用于缓存所述信元,位宽与所述第一RAM组相同;
第一控制单元,用于按照所述第一RAM组的位宽,将所述第一fifo中的信元拆分成L个数据块,从预先为所述输入端口分配的起始时隙开始,通过一个周期中的L个时隙将所述L个数据块依次写入所述输入端口所属的分组对应的第一RAM组中,每个时隙向所述第一RAM组中的相应RAM中写入一个数据块,不同输入端口分配的起始时隙不同,其中,一个周期包括的时隙数大于或等于一个分组中所包括的输入端口数量;
第二控制单元,用于根据所述确定单元确定的所述信元的输出端口所属的分组,将所述第一RAM组中的信元写入所述信元的输出端口所属的分组对应的第二RAM组中;
第三控制单元,用于将所述第二RAM组中的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中;
第四控制单元,用于从为所述信元的输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并输出,其中,不同输出端口分配的起始时隙不同,一个周期中包括的时隙数大于或等于输出端口的数量,并大于或等于L。
15.如权利要求14所述的装置,其特征在于,还包括:
与输出端口数量相同的第二fifo,用于缓存对应的输出端口从所述第三RAM组中读出的数据;
所述第四控制单元具体用于,根据所述确定单元确定的所述信元的输出端口,从为所述输出端口分配的起始时隙开始,通过一个周期中的L个时隙分别从所述第三RAM组的L个RAM中依次读出所述信元的各数据块,并缓存在所述输出端口所对应的第二fifo中,并在一个信元读取完毕后,从对应的输出端口输出所述第二fifo中缓存的信元。
16.如权利要求14所述的装置,其特征在于,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组和所述信元的输入端口所属的分组共同对应的第二RAM组中的与所述信元输出端口对应的RAM中。
17.如权利要求14所述的装置,其特征在于,所述第二控制单元具体用于,根据所述确定单元确定的所述信元的输出端口所属的分组,将所述信元写入所述信元的输出端口所属的分组对应的各第二RAM组中数据量较少的一个对应所述输出端口的RAM中。
18.如权利要求14-17任一所述的装置,其特征在于,所述第三控制单元具体用于,轮流将对应同一第三RAM组的各第二RAM组中较早存储的信元拆分为L个数据块,并分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中。
19.如权利要求14所述的装置,其特征在于,所述第三控制单元具体用于,将所述第二RAM组中的信元拆分为L个数据块,并根据所述信元的输出端口,分别写入所述输出端口所属分组对应的第三RAM组中的各RAM中对应所述输出端口的区域。
CN201010001602.0A 2010-01-05 2010-01-05 一种信元交换方法和装置 Active CN102118304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010001602.0A CN102118304B (zh) 2010-01-05 2010-01-05 一种信元交换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010001602.0A CN102118304B (zh) 2010-01-05 2010-01-05 一种信元交换方法和装置

Publications (2)

Publication Number Publication Date
CN102118304A CN102118304A (zh) 2011-07-06
CN102118304B true CN102118304B (zh) 2014-03-12

Family

ID=44216907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010001602.0A Active CN102118304B (zh) 2010-01-05 2010-01-05 一种信元交换方法和装置

Country Status (1)

Country Link
CN (1) CN102118304B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200111B (zh) * 2013-03-29 2016-08-24 华为技术有限公司 一种信元交换方法及装置
CN107133407B (zh) * 2017-05-11 2020-07-10 成都欧飞凌通讯技术有限公司 一种高带宽下提高ddr ram接口带宽的fpga实现方法
CN113986792B (zh) * 2021-10-26 2024-05-24 新华三信息安全技术有限公司 一种数据位宽转换方法及通信设备
CN116893983B (zh) * 2023-09-11 2023-12-12 中移(苏州)软件技术有限公司 数据缓存方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450549A (en) * 1992-04-09 1995-09-12 International Business Machines Corporation Multi-channel image array buffer and switching network
CN1878132A (zh) * 2005-10-31 2006-12-13 华为技术有限公司 一种实现变长分组包交换的方法及系统
CN1972239A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 以太网交换缓存及调度的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE0001814D0 (sv) * 2000-05-17 2000-05-17 Net Insight Ab Metod att styra resurser i ett kommunikationsnät

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450549A (en) * 1992-04-09 1995-09-12 International Business Machines Corporation Multi-channel image array buffer and switching network
CN1878132A (zh) * 2005-10-31 2006-12-13 华为技术有限公司 一种实现变长分组包交换的方法及系统
CN1972239A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 以太网交换缓存及调度的方法和装置

Also Published As

Publication number Publication date
CN102118304A (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
CN102377682B (zh) 基于定长单元存储变长分组的队列管理方法及设备
CN101594299B (zh) 基于链表的交换网络中队列缓冲管理方法
US9690507B2 (en) System and method for enabling high read rates to data element lists
CN101916227B (zh) 一种rldram sio存储器访问控制方法和装置
CN102118304B (zh) 一种信元交换方法和装置
CN105656807B (zh) 一种网络芯片多通道数据传输方法及传输装置
CN103279309A (zh) 基于fpga的ddr控制装置及方法
CN102841869A (zh) 一种基于fpga的多通道i2c控制器
US9785367B2 (en) System and method for enabling high read rates to data element lists
CN103677655A (zh) 一种二维数组数据流在存储器上的读写方法及装置
US10055365B2 (en) Shared buffer arbitration for packet-based switching
CN102541769B (zh) 一种存储器接口访问控制方法及装置
CN103858393A (zh) 网络包的并行处理
CN109858622B (zh) 深度学习神经网络的数据搬运电路和方法
CN101825997A (zh) 一种异步先入先出存储器
CN104407992B (zh) 一种基于双端口寄存器阵列的四端口存储器
CN104468156A (zh) 一种利用时隙仲裁节省资源开销的方法和设备
CN103927125B (zh) 分时缓冲器存取系统及存储器控制器
CN104409098A (zh) 容量翻倍的芯片内部表项及其实现方法
CN103365791A (zh) 一种nand闪存
CN101996142B (zh) 一种访问存储器的方法及装置
CN1191530C (zh) 多命令部件共用主控器的pci主桥
CN209514612U (zh) 一种通信系统
WO2013139363A1 (en) Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size
CN105511807A (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
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110706

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2015440020319

Denomination of invention: Cell switching method and cell switching device

Granted publication date: 20140312

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221121

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.