CN111611180B - 一种支持多协议的动态共享缓冲区 - Google Patents

一种支持多协议的动态共享缓冲区 Download PDF

Info

Publication number
CN111611180B
CN111611180B CN202010605648.7A CN202010605648A CN111611180B CN 111611180 B CN111611180 B CN 111611180B CN 202010605648 A CN202010605648 A CN 202010605648A CN 111611180 B CN111611180 B CN 111611180B
Authority
CN
China
Prior art keywords
address
data
write
read
buffer
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
CN202010605648.7A
Other languages
English (en)
Other versions
CN111611180A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010605648.7A priority Critical patent/CN111611180B/zh
Publication of CN111611180A publication Critical patent/CN111611180A/zh
Application granted granted Critical
Publication of CN111611180B publication Critical patent/CN111611180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

针对现有互连芯片输入缓冲DAMQ无法同时支持多协议的问题,本发明提供了一种支持多协议的动态共享缓冲区,包括:报文拆分逻辑、控制码组合逻辑、第一数据仲裁器、第二数据仲裁器、P个控制DAMQ、第一多路选择器、第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器、数据缓冲区、一个报文输入端口、一个读请求输入端口和一个报文数据输出端口;其中,P为数据通道数,每个数据通道存储一种协议的数据。本发明可以提供多个相互独立、深度可配置的数据通道,每个数据通道用于存储一种协议的报文数据,进而使得互连芯片同时支持多协议,在一套网络中支持多套网络协议,降低网络硬件实现开销。

Description

一种支持多协议的动态共享缓冲区
技术领域
本发明涉及超级计算机高速互连网络交换机输入端口的输入缓冲技术,具体涉及一种支持多协议的动态共享缓冲区。
背景技术
互连网络是超级计算机的关键部件,用于实现超级计算机中的计算节点、输入输出节点、服务节点之间的高速数据传输与交换。
交换机是高速互连网络的核心设备,一般采用交叉开关来实现。交换机的内部结构主要包括数据缓冲区和交叉开关,数据缓冲区用于缓存不能及时处理的数据,交叉开关用于在不同的网络端口之间交换数据。交换机常用的数据缓冲方式有:输入缓冲,输出缓冲,输入输出联合缓冲,交叉点缓冲等。由于输入缓冲实现简单,成为交叉开关普遍采用的缓冲方式。随着交换机端口数目的增加,交换机采用多级交换结构,每一个输入端口和每一级交换的输入端口都需要缓冲区缓存报文,导致交换机中缓冲区的数目急剧增加。为了减小缓冲区占用的芯片面积,降低实现缓冲区的存储器带来的功耗开销,交换机中采用动态分配共享缓冲区管理方法,提高缓冲区利用率,减小缓冲区深度。具体做法是,为交换机每个输入端口设置一个缓冲区,由所有虚信道(Virtual Channel,VC)共享,输入端口接收到的数据被随机地缓存在共享缓冲区中,通过地址管理保证数据能够被正确的写入和读出。采用动态分配共享缓冲区可以提高缓冲区利用率,只要缓冲区中有空闲空间就可以接收任何一个VC的数据。我们将这种缓冲区称作多VC动态共享缓冲区。为了提高链路利用率,互连网络中的物理链路被划分为多个虚信道。在交换机的输入缓冲区中,设置与VC数目相同的虚拟数据队列,相同VC的数据被组织为虚拟链表,存取方式为先进先出(First In FirstOut,FIFO)。在有些交换机中,为了消除头部阻塞问题,设置与交换机输出端口数目相同的虚拟队列,输出到同一个输出端口的数据被保存在一个队列中,组织为链表方式,存取方式也为FIFO。
随着超级计算机***峰值性能的快速提高,需要提高***组装密度以避免***中机柜数的***式增长,要求互连网络中的交换芯片集成更多的网络端口。导致交换芯片中顶部缓冲区使用的寄存器消耗巨大,对后端的布局布线造成极大困难。为了降低高数据位宽DAMQ在后端物理设计复杂性,申请号为201910520343.3的中国发明专利申请提供了一种互连芯片动态共享缓冲区,通过将报文中的控制信息与数据分离,大幅降低DAMQ所需的寄存器数量,降低后端布局布线困难,并降低物理设计成本。下面对申请号为201910520343.3的中国发明专利申请记载的互连芯片动态共享缓冲区进行详细介绍。
如图1所示,申请号为201910520343.3的中国发明专利申请记载的互连芯片动态共享缓冲区包括:报文拆分逻辑、控制码组合逻辑、数据DAMQ和控制DAMQ;记控制DAMQ为DAMQ_CTRL,数据DAMQ为DAMQ_DATA,具有一个数据输入端口、一个读请求输入端口和一个数据输出端口。报文拆分逻辑与数据输入端口、控制码组合逻辑、DAMQ_DATA相连,从数据输入端口接收报文,将报文拆分成报文数据和报文控制信息,然后,将报文数据输出给DAMQ_DATA,将报文控制信息输出给控制码组合逻辑。控制码组合逻辑与报文拆分逻辑、DAMQ_DATA、DAMQ_CTRL相连,从报文拆分逻辑接收报文控制信息即报文中的控制位,从DAMQ_DATA接收报文数据存储在DAMQ_DATA中的地址即写缓冲地址,将报文控制信息和写缓冲地址组合成控制码,并将控制码输出给DAMQ_CTRL。DAMQ_DATA与报文拆分逻辑、报文组合逻辑、DAMQ_CTRL以及数据输出端相连。DAMA_DATA从报文拆分逻辑接收报文数据,将报文数据缓存至DAMQ_DATA,将报文数据在DAMQ_DATA中的存放地址记为写缓冲地址wt_addr,然后,将写缓冲地址wt_addr发送给控制码组合逻辑;DAMQ_DATA从DAMQ_CTRL接收控制码中的地址位即读缓冲地址,通过读缓冲地址从DAMQ_DATA读出报文数据,通过报文输出端口将报文数据输出。由于DAMQ_CTRL保证了整个DAMQ对于每个VC的数据都是先进先出,因此DAMQ_DATA仅需管理空闲地址,无需管理已经分配出去的存储空间,这相对于传统的DAMQ_NVC节省了N套队列管理逻辑;而且DAMQ_CTRL中存储的是报文的控制信息以及报文数据存储在DAMQ_DATA中的地址,因此,DAMQ_CTRL中第一数据缓冲区的宽度由现有技术中的报文切片宽度减小为报文的控制信息以及报文数据存储在DAMQ_DATA中的地址位宽;(2)VC0到VCN-1顶部缓冲区的宽度与第一数据缓冲区相同,也由报文切片宽度减小为报文的控制信息以及报文数据存储在DAMQ_DATA中的地址位宽,大幅降低后端布局布线困难。
但随着计算机高速发展,当前HPC中存在多套网络,包括专用***高速互连网络、存储网络、以太网络、监控管理网络,相关功能存在一定重复建设、叠床架屋。下一代互连网络应尽可能实现多网络协议融合设计,在单套网络中实现现有的专用通信网络、以太网络、存储网络及监控网络的高效融合,简化HPC中的网络设计。而申请号为201910520343.3的中国发明专利申请中记载的互连芯片动态共享缓冲区只有一个DAMQ_CTRL,只支持单端口动态共享缓冲,无法支持多协议融合设计。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持多协议的动态共享缓冲区,本发明针对现有互连芯片输入缓冲DAMQ设计无法同时支持多协议的问题,可提供多个相互独立、深度可配置的数据通道,每个数据通道用于存储一种协议的报文数据。
为了解决上述技术问题,本发明采用的技术方案为:
一种支持多协议的动态共享缓冲区,包括报文拆分逻辑、控制码组合逻辑、控制DAMQ单元和数据DAMQ单元,所述控制DAMQ单元包括第一数据仲裁器、DAMQ_CTRL1~DAMQ_CTRLP一共P个控制DAMQ、第二数据仲裁器、第一多路选择器,所述第一数据仲裁器用于将来自控制码组合逻辑的控制码仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,所述第二数据仲裁器用于将来自外部的读请求仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,所述第一多路选择器用于从DAMQ_CTRL1~DAMQ_CTRLP中选择一路输出到数据DAMQ单元;所述控制DAMQ单元包括第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器和数据缓冲区,第二多路选择器用于从第一~第P空闲地址管理器接收P个端口的空闲地址缓冲区头指针,从报文拆分逻辑接收写数据通道号,然后将写数据通道号所对应第i数据通道的空闲地址缓冲区头指针Headi转换成写缓冲区地址wt_addr,作为报文数据在数据缓冲区的存放地址,然后将写缓冲区地址wt_addr发送到数据缓冲区和控制码组合逻辑;第一~第P空闲地址管理器中的任意第i空闲地址管理器与第i空闲地址缓冲区和第二多路选择器相连;P个空闲地址缓冲区和P个空闲地址管理器中任意第i空闲地址管理器通过头尾指针及第i空闲地址缓冲区把数据缓冲区中第i数据通道的空闲地址串成链表;当外部模块通过第i数据通道向数据缓冲区写数据时,第i空闲地址管理器将第i空闲地址缓冲区的头指针Headi,经过第二多路选择器仲裁后提供给数据缓冲区,作为数据缓冲区存储报文数据的地址;当第i数据通道从数据缓冲区读出一个数据时,该数据在据缓冲区中的地址被返还给第i空闲地址管理器的空闲地址链;第i空闲地址缓冲区与第i空闲地址管理器相连;第i数据通道在数据缓冲区的空闲地址通过地址链表构成虚拟队列,构成第i空闲地址缓冲区,所述数据缓冲区用于存储P个数据通道的报文数据。
可选地,所述报文拆分逻辑与报文输入端口、控制码组合逻辑、第二多路选择器、数据缓冲区相连;所述报文拆分逻辑用于从报文输入端口接收报文,将报文拆分成报文控制信息、报文数据和写数据通道号;然后将报文控制信息输出给控制码组合逻辑,将报文数据输出给数据缓冲区,将写数据通道号输出给第二多路选择器。
可选地,所述控制码组合逻辑与报文拆分逻辑、第二多路选择器、第一数据仲裁器相连;所述控制码组合逻辑用于从报文拆分逻辑接收报文控制信息,从第二多路选择器接收报文数据存储在数据缓冲区中的地址作为写缓冲地址,将报文控制信息和写缓冲地址组合成控制码,并将控制码输出给第一数据仲裁器。
可选地,所述数据缓冲区中存储的P个数据通道的报文数据占用不同的连续地址空间,且任意第i数据通道在数据缓冲区的地址空间范围为:
Figure BDA0002561001070000041
上式中,port_depi表示第i数据通道在数据缓冲区占用的存储单元数,port_depk表示第k数据通道在数据缓冲区占用的存储单元数,P为数据缓冲区存储报文数据的数据通道数量;将报文数据存放在数据缓冲区中的地址记为写缓冲地址wt_addr,所述数据缓冲区从第二多路选择器接收写缓冲地址wt_addr,从报文拆分逻辑接收报文数据,然后将报文数据缓存在数据缓冲区中写缓冲地址wt_addr所指向的地址;所述数据缓冲区从第一多路选择器中接收对应数据通道控制码中的地址位即读缓冲区地址,通过读缓冲区地址从数据缓冲区中读出报文数据,然后通过报文数据输出端口将报文数据输出。
可选地,所述P个控制DAMQ结构完全相同,且任意控制DAMQ的结构包括VC号识别模块、读写地址管理模块VC0~VCN-1、第一写请求与写地址选择模块、第一读请求与读地址选择模块、第二写请求与写数据选择模块、第二读请求选择模块、第三数据缓冲区、地址缓冲区、空闲地址缓冲区、第二读写地址管理模块、第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP以及N选1多路选择器;其中:VC号识别模块用于从数据输入端口输入的控制码中提取该控制码的VC号j,生成VCj写请求,发送到VCj读写地址管理模块,0≤j≤N-1,j为整数;读写地址管理模块VC0~VCN-1用于从VC号识别模块接收VCj写请求,生成读空闲地址缓冲区的VCj第二读请求,发送到第二读请求选择模块;VCj读写地址管理模块接收从空闲地址缓冲区读出的空闲地址,将该地址保存为VCj写地址,生成VCj第一写请求,将VCj第一写请求与写地址发送到第一写请求与写地址选择模块;VCj读写地址管理模块从VCj FIFO_TOP接收对VCj的读请求,将VCj的读请求和读地址作为VCj第一读请求与读地址发送到第一读请求与读地址选择模块;生成VCj第二写请求,将VCj的读地址作为写数据,送给第二写请求与写数据选择模块;VCj读写地址管理模块接收从地址缓冲区读出的地址,将VCj的读地址更新为该地址;第一写请求与写地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一写请求与写地址,选择有效的写请求及其写地址分别生成第一写请求和第一写地址,发送给第三数据缓冲区和地址缓冲区;第一读请求与读地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一读请求与读地址,选择有效的读请求及其读地址分别生成第一读请求和第一读地址,发送给第三数据缓冲区和地址缓冲区;第二写请求与写数据选择模块用于串行接收VCj读写地址管理模块发送的第二写请求与写数据,选择有效的写请求,生成第二写请求,发送到第二读写地址管理模块和空闲地址缓冲区,选择有效的写数据作为写入的空闲地址写入到空闲地址缓冲区;第二读请求选择模块用于串行接收VCj读写地址管理模块发送的第二读请求,选择有效的读请求作为第二读请求发送到第二读写地址管理模块和空闲地址缓冲区;第三数据缓冲区为具有独立的读写端口的双端口静态随机访问存储器SRAM,用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从数据输入端口接收控制码并将其写入到第一写地址指向的存储器空间;第三数据缓冲区接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据到第二VC0到VCN-1顶部缓冲区;地址缓冲区用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从空闲地址缓冲区接收空闲地址并将其写入到第一写地址指向的存储器空间;接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据作为读出的地址,发送到VC0到VCN-1读写地址管理模块;空闲地址缓冲区为具有独立的读写端口的双端口SRAM或者寄存器组,用于接收第二写请求,将写入的空闲地址写到第二写地址指向的位置;空闲地址缓冲区接收第二读请求,从第二读地址指向的位置输出数据作为读出的空闲地址,发送到地址缓冲区和VC0到VCN-1读写地址管理模块;第二读写地址管理模块用于接收第二写请求与写数据选择模块发送的第二写请求,将第二写地址加一,发送到空闲地址缓冲区;第二读写地址管理模块接收第二读请求选择模块发送的第二读请求,将第二读地址加一,发送到空闲地址缓冲区;第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP分别用于从读请求输入端口接收到VCj读请求输入,将数据从第二VCj FIFO_TOP读出输出给N选1多路选择器,然后,向VCj读写地址管理模块发出VCj读请求;第二VCj FIFO_TOP从第三数据缓冲区接收数据,缓存至第二VCj FIFO_TOP;N选1多路选择器用于从第二VC0到VCN-1顶部缓冲区相连接收VC0到VCN-1读出数据,得到控制码,然后选择其中一个数据通过数据输出端口输出给第一多路选择器。
可选地,所述第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP的深度为3,其中的存储单元分别标识为FIFO_TOP0,FIFO_TOP1,FIFO_TOP2;每个存储单元的装填为下述三种状态之一:(1)没有有效数据、而且没有预约第三数据缓冲区中的数据;(2)没有有效数据,但是已经预约了第三数据缓冲区中的数据;(3)有有效数据。
可选地,所述数据缓冲区的存储单元宽度与所有协议中最长宽度的报文切片的宽度相同,数据缓冲区的深度是第一~第P空闲地址缓冲区深度之和;第i空闲地址缓冲区的深度与对应的第i个控制DAMQ的第三数据缓冲区的深度相同。
可选地,所述P个空闲地址缓冲区采用寄存器阵列实现,其深度与第i个控制DAMQ的第三数据缓冲区深度相同。
此外,本发明还提供一种网络交换机,该网络交换机的互连芯片中包含所述的支持多协议的动态共享缓冲区。
此外,本发明还提供一种计算机设备,该计算机设备的互连芯片中包含所述的支持多协议的动态共享缓冲区。
和现有技术相比,本发明具有下述优点:针对现有互连芯片输入缓冲DAMQ设计无法同时支持多协议的问题,本发明包含改进的控制DAMQ单元和数据DAMQ单元,控制DAMQ单元包括第一数据仲裁器、DAMQ_CTRL1~DAMQ_CTRLP一共P个控制DAMQ、第二数据仲裁器、第一多路选择器,控制DAMQ单元包括第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器和数据缓冲区,通过上述结构,可提供P个相互独立、深度可配置的数据通道,每个数据通道用于存储一种协议的报文数据,进而使得互连芯片同时支持多协议,在一套网络中支持多套网络协议,降低网络硬件实现开销。
附图说明
图1是背景技术互连芯片动态共享缓冲区总体结构。
图2是本发明支持多协议的动态共享缓冲区总体结构。
图3是本发明每个控制DAMQ的逻辑结构图。
具体实施方式
如图2所示,本实施例支持多协议的动态共享缓冲区包括报文拆分逻辑、控制码组合逻辑、控制DAMQ单元和数据DAMQ单元,与图1所示现有缓冲装置相同,本实施例支持多协议的动态共享缓冲区针对控制DAMQ单元和数据DAMQ单元进行了改进以实现支持多协议。
如图2所示,控制DAMQ单元包括第一数据仲裁器、DAMQ_CTRL1~DAMQ_CTRLP一共P个控制DAMQ(任意第i个记为DAMQ_CTRLi,1≤i≤P,i为整数,P为数据通道数)、第二数据仲裁器、第一多路选择器,第一数据仲裁器用于将来自控制码组合逻辑的控制码仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,第二数据仲裁器用于将来自外部的读请求仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,第一多路选择器用于从DAMQ_CTRL1~DAMQ_CTRLP中选择一路输出到数据DAMQ单元;
如图2所示,控制DAMQ单元包括第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器和数据缓冲区,第二多路选择器用于从第一~第P空闲地址管理器接收P个端口的空闲地址缓冲区头指针,从报文拆分逻辑接收写数据通道号,然后将写数据通道号所对应第i数据通道的空闲地址缓冲区头指针Headi转换成写缓冲区地址wt_addr,作为报文数据在数据缓冲区的存放地址,然后将写缓冲区地址wt_addr发送到数据缓冲区和控制码组合逻辑;第一~第P空闲地址管理器中的任意第i空闲地址管理器与第i空闲地址缓冲区和第二多路选择器相连;P个空闲地址缓冲区和P个空闲地址管理器中任意第i空闲地址管理器通过头尾指针及第i空闲地址缓冲区把数据缓冲区中第i数据通道的空闲地址串成链表;当外部模块通过第i数据通道向数据缓冲区写数据时,第i空闲地址管理器将第i空闲地址缓冲区的头指针Headi,经过第二多路选择器仲裁后提供给数据缓冲区,作为数据缓冲区存储报文数据的地址;当第i数据通道从数据缓冲区读出一个数据时,该数据在据缓冲区中的地址被返还给第i空闲地址管理器的空闲地址链;第i空闲地址缓冲区与第i空闲地址管理器相连;第i数据通道在数据缓冲区的空闲地址通过地址链表构成虚拟队列,构成第i空闲地址缓冲区,数据缓冲区用于存储P个数据通道的报文数据。
如图2所示,报文拆分逻辑与报文输入端口、控制码组合逻辑、第二多路选择器、数据缓冲区相连;报文拆分逻辑用于从报文输入端口接收报文,将报文拆分成报文控制信息、报文数据和写数据通道号;然后将报文控制信息输出给控制码组合逻辑,将报文数据输出给数据缓冲区,将写数据通道号输出给第二多路选择器。
如图2所示,控制码组合逻辑与报文拆分逻辑、第二多路选择器、第一数据仲裁器相连;控制码组合逻辑用于从报文拆分逻辑接收报文控制信息,从第二多路选择器接收报文数据存储在数据缓冲区中的地址作为写缓冲地址,将报文控制信息和写缓冲地址组合成控制码,并将控制码输出给第一数据仲裁器。
数据缓冲区用于存储P个数据通道的报文数据,数据缓冲区与报文拆分逻辑、第二多路选择器、第一多路选择器及报文数据输出端口相连。
本实施例中,数据缓冲区中存储的P个数据通道的报文数据占用不同的连续地址空间,且任意第i数据通道在数据缓冲区的地址空间范围为:
Figure BDA0002561001070000071
上式中,port_depi表示第i数据通道在数据缓冲区占用的存储单元数,port_depk表示第k数据通道在数据缓冲区占用的存储单元数,P为数据缓冲区存储报文数据的数据通道数量;将报文数据存放在数据缓冲区中的地址记为写缓冲地址wt_addr,数据缓冲区从第二多路选择器接收写缓冲地址wt_addr,从报文拆分逻辑接收报文数据,然后将报文数据缓存在数据缓冲区中写缓冲地址wt_addr所指向的地址;数据缓冲区从第一多路选择器中接收对应数据通道控制码中的地址位即读缓冲区地址,通过读缓冲区地址从数据缓冲区中读出报文数据,然后通过报文数据输出端口将报文数据输出。
参见图2,第二多路选择器与第一~第P空闲地址管理器、数据缓冲区以及控制码组合逻辑相连;第二多路选择器从第一~第P空闲地址管理器接收P个端口的空闲地址缓冲区头指针,从报文拆分逻辑接收写数据通道号,然后,将写数据通道号所对应第i数据通道的空闲地址缓冲区头指针Headi转换成写缓冲区地址wt_addr,作为报文数据在数据缓冲区的存放地址,然后将写缓冲区地址wt_addr发送到数据缓冲区和控制码组合逻辑。
参见图2,第一~第P空闲地址管理器中的任意第i空闲地址管理器与第i空闲地址缓冲区和第二多路选择器相连;第i空闲地址管理器通过头尾指针及第i空闲地址缓冲区把数据缓冲区中第i数据通道的空闲地址串成链表;当外部模块通过第i数据通道向数据缓冲区写数据时,第i空闲地址管理器将第i空闲地址缓冲区的头指针Headi,经过第二多路选择器仲裁后提供给数据缓冲区,作为数据缓冲区存储报文数据的地址;当第i数据通道从数据缓冲区读出一个数据时,该数据在据缓冲区中的地址被返还给第i空闲地址管理器的空闲地址链;第i空闲地址缓冲区与第i空闲地址管理器相连;第i数据通道在数据缓冲区的空闲地址通过地址链表构成虚拟队列,构成第i空闲地址缓冲区;
参见图2,第一数据仲裁器与第一~第P控制DAMQ及控制码组合逻辑相连;第一数据仲裁器从控制码组合逻辑接收控制码,然后根据控制码中的端口号将控制码写入对应数据通道的控制DAMQ。
参见图2,第二数据仲裁器与第一~第P控制DAMQ、第一多路选择器及读请求输入端口相连;第二数据仲裁器接收来自读请求输入端口的读请求,然后根据其中的数据通道号将读请求发送到对应数据通道的控制DAMQ。
参见图2,第一多路选择器与第一~第P控制DAMQ、数据缓冲区和读请求输入端口相连;第一多路选择器从第一~第P控制DAMQ接收P个端口的控制码信息,从读请求输入端口接收读数据通道号;然后,将读数据通道号所对应第i数据通道的控制码信息转换成读缓冲区地址rd_addr,并将读缓冲区地址rd_addr发送到数据缓冲区。
本实施例中,P个控制DAMQ构成的控制DAMQ阵列与第一数据仲裁器、第二数据仲裁器及第一多路选择器相连;控制DAMQ阵列包含P个DAMQ_CTRL1~DAMQ_CTRLp,P个控制DAMQ结构完全相同,控制DAMQ用于存储一个端口的数据,P个控制DAMQ之间完全独立;控制DAMQ从第一数据仲裁器接收控制码,对N个VC的控制码动态共享存储,从第二数据仲裁器接收到读请求,根据控制码得到读缓冲区地址,然后将读缓冲区地址发送给第一多路选择器,VC为虚信道,N为虚信道数。
如图3所示,P个控制DAMQ结构完全相同,且任意控制DAMQ的结构包括VC号识别模块、读写地址管理模块VC0~VCN-1、第一写请求与写地址选择模块、第一读请求与读地址选择模块、第二写请求与写数据选择模块、第二读请求选择模块、第三数据缓冲区、地址缓冲区、空闲地址缓冲区、第二读写地址管理模块、第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP以及N选1多路选择器;其中:
VC号识别模块用于从数据输入端口输入的控制码中提取该控制码的VC号j,生成VCj写请求,发送到VCj读写地址管理模块,0≤j≤N-1,j为整数;
读写地址管理模块VC0~VCN-1用于从VC号识别模块接收VCj写请求,生成读空闲地址缓冲区的VCj第二读请求,发送到第二读请求选择模块;VCj读写地址管理模块接收从空闲地址缓冲区读出的空闲地址,将该地址保存为VCj写地址,生成VCj第一写请求,将VCj第一写请求与写地址发送到第一写请求与写地址选择模块;
VCj读写地址管理模块从VCj FIFO_TOP接收对VCj的读请求,将VCj的读请求和读地址作为VCj第一读请求与读地址发送到第一读请求与读地址选择模块;生成VCj第二写请求,将VCj的读地址作为写数据,送给第二写请求与写数据选择模块;VCj读写地址管理模块接收从地址缓冲区读出的地址,将VCj的读地址更新为该地址;
第一写请求与写地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一写请求与写地址,选择有效的写请求及其写地址分别生成第一写请求和第一写地址,发送给第三数据缓冲区和地址缓冲区;
第一读请求与读地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一读请求与读地址,选择有效的读请求及其读地址分别生成第一读请求和第一读地址,发送给第三数据缓冲区和地址缓冲区;
第二写请求与写数据选择模块用于串行接收VCj读写地址管理模块发送的第二写请求与写数据,选择有效的写请求,生成第二写请求,发送到第二读写地址管理模块和空闲地址缓冲区,选择有效的写数据作为写入的空闲地址写入到空闲地址缓冲区;
第二读请求选择模块用于串行接收VCj读写地址管理模块发送的第二读请求,选择有效的读请求作为第二读请求发送到第二读写地址管理模块和空闲地址缓冲区;
第三数据缓冲区为具有独立的读写端口的双端口静态随机访问存储器SRAM,用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从数据输入端口接收控制码并将其写入到第一写地址指向的存储器空间;第三数据缓冲区接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据到第二VC0到VCN-1顶部缓冲区;
地址缓冲区用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从空闲地址缓冲区接收空闲地址并将其写入到第一写地址指向的存储器空间;接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据作为读出的地址,发送到VC0到VCN-1读写地址管理模块;
空闲地址缓冲区为具有独立的读写端口的双端口SRAM或者寄存器组,用于接收第二写请求,将写入的空闲地址写到第二写地址指向的位置;空闲地址缓冲区接收第二读请求,从第二读地址指向的位置输出数据作为读出的空闲地址,发送到地址缓冲区和VC0到VCN-1读写地址管理模块;第二读写地址管理模块用于接收第二写请求与写数据选择模块发送的第二写请求,将第二写地址加一,发送到空闲地址缓冲区;第二读写地址管理模块接收第二读请求选择模块发送的第二读请求,将第二读地址加一,发送到空闲地址缓冲区;
第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP分别用于从读请求输入端口接收到VCj读请求输入,将数据从第二VCj FIFO_TOP读出输出给N选1多路选择器,然后,向VCj读写地址管理模块发出VCj读请求;第二VCj FIFO_TOP从第三数据缓冲区接收数据,缓存至第二VCj FIFO_TOP;
N选1多路选择器用于从第二VC0到VCN-1顶部缓冲区相连接收VC0到VCN-1读出数据,得到控制码,然后选择其中一个数据通过数据输出端口输出给第一多路选择器。
参见图3,控制DAMQ包含有1个数据输入端口,一个读请求输入端口,和1个数据输出端口;数据输入端口与VC号识别模块、第三数据缓冲区、第二VC0到VCN-1FIFO-TOP相连,控制DAMQ通过数据输入端口将从控制码组合逻辑接收的控制码输入到VC号识别模块,同时,如果第二VC0到VCN-1的顶部缓冲区可以接收旁路数据,将控制码直接旁路写入第二VC0到VCN-1的顶部缓冲区;否则,将控制码写入第三数据缓冲区。
参见图3,VC号识别模块与数据输入端口、VC0到VCN-1读写地址管理模块相连,从数据输入端口输入的控制码中提取该控制码的VC号j,生成VCj写请求,发送到VCj读写地址管理模块,0≤j≤N-1,j为整数。
参见图3,VCj读写地址管理模块与VC号识别模块、VCj顶部缓冲区VCj FIFO_TOP、第一写请求与写地址选择模块、第一读请求与读地址选择模块、第二写请求与写数据选择模块、第二读请求选择模块、地址缓冲区和空闲地址缓冲区相连,从VC号识别模块接收VCj写请求,生成读空闲地址缓冲区的VCj第二读请求,发送到第二读请求选择模块;VCj读写地址管理模块接收从空闲地址缓冲区读出的空闲地址,将该地址保存为VCj写地址,生成VCj第一写请求,将VCj第一写请求与写地址发送到第一写请求与写地址选择模块;VCj读写地址管理模块从VCj FIFO_TOP接收对VCj的读请求,将VCj的读请求和读地址作为VCj第一读请求与读地址发送到第一读请求与读地址选择模块;生成VCj第二写请求,将VCj的读地址作为写数据,送给第二写请求与写数据选择模块;VCj读写地址管理模块接收从地址缓冲区读出的地址,将VCj的读地址更新为该地址。
参见图3,第一写请求与写地址选择模块与VC1到VCN读写地址管理模块、数据缓冲区和地址缓冲区相连,串行接收VCj读写地址管理模块发出的VCj第一写请求与写地址,选择有效的写请求及其写地址分别生成第一写请求和第一写地址,发送给第三数据缓冲区和地址缓冲区。
参见图3,第一读请求与读地址选择模块与VC0到VCN-1读写地址管理模块、第三数据缓冲区和地址缓冲区相连,串行接收VCj读写地址管理模块发出的VCj第一读请求与读地址,选择有效的读请求及其读地址分别生成第一读请求和第一读地址,发送给第三数据缓冲区和地址缓冲区。
参见图3,第三数据缓冲区是具有独立的读写端口的双端口静态随机访问存储器SRAM,与数据输入端口、第一写请求与写地址选择模块、第一读请求与读地址选择模块、第二VC0到VCN-1顶部缓冲区相连,接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从数据输入端口接收控制码并将其写入到第一写地址指向的存储器空间;第三数据缓冲区接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据到第二VC0到VCN-1顶部缓冲区。
参见图3,地址缓冲区是具有独立的读写端口的双端口SRAM或者寄存器组,与第一写请求与写地址选择模块、第一读请求与读地址选择模块、VC0到VCN-1读写地址管理模块、空闲地址缓冲区相连,接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从空闲地址缓冲区接收空闲地址并将其写入到第一写地址指向的存储器空间;接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据作为读出的地址,发送到VC0到VCN-1读写地址管理模块。
参见图3,第二写请求与写数据选择模块与VC0到VCN-1读写地址管理模块、第二读写地址管理模块、空闲地址缓冲区相连,串行接收VCj读写地址管理模块发送的第二写请求与写数据,选择有效的写请求,生成第二写请求,发送到第二读写地址管理模块和空闲地址缓冲区,选择有效的写数据作为写入的空闲地址写入到空闲地址缓冲区。
参见图3,第二读请求选择模块与VC0到VCN-1读写地址管理模块、第二读写地址管理模块、空闲地址缓冲区相连,串行接收VCj读写地址管理模块发送的第二读请求,选择有效的读请求作为第二读请求发送到第二读写地址管理模块和空闲地址缓冲区。
参见图3,第二读写地址管理模块与第二写请求与写数据选择模块、第二读请求选择模块、空闲地址缓冲区相连,接收第二写请求与写数据选择模块发送的第二写请求,将第二写地址加一,发送到空闲地址缓冲区;第二读写地址管理模块接收第二读请求选择模块发送的第二读请求,将第二读地址加一,发送到空闲地址缓冲区。
参见图3,空闲地址缓冲区是具有独立的读写端口的双端口SRAM或者寄存器组,与第二写请求与写数据选择模块、第二读请求选择模块、第二读写地址管理模块相连,接收第二写请求,将写入的空闲地址写到第二写地址指向的位置;空闲地址缓冲区接收第二读请求,从第二读地址指向的位置输出数据作为读出的空闲地址,发送到地址缓冲区和VC0到VCN-1读写地址管理模块;
参见图3,第二VCj FIFO_TOP由寄存器组组成;第二VCj FIFO_TOP与数据输入端口、第三数据缓冲区、VCj读写地址管理模块、N选1多路选择器、读请求输入端口相连,如果第二VCj FIFO_TOP可以接收旁路数据,将数据输入端口的控制码直接旁路写入第二VCj FIFO_TOP;从读请求输入端口接收到VCj读请求输入,将数据从第二VCj FIFO_TOP读出输出给N选1多路选择器,然后,向VCj读写地址管理模块发出VCj读请求;第二VCj FIFO_TOP从第三数据缓冲区接收数据,缓存至第二VCj FIFO_TOP。
参见图3,N选1多路选择器与第二VC0到VCN-1顶部缓冲区以及外部DAMQ_DATA相连,从第二VC0到VCN-1顶部缓冲区相连接收VC0到VCN-1读出数据,即控制码,然后选择其中一个数据通过数据输出端口输出给第一多路选择器。
本实施例中,第二VC顶部缓冲区VC0FIFO_TOP~VCN-1FIFO_TOP的深度为3,其中的存储单元分别标识为FIFO_TOP0,FIFO_TOP1,FIFO_TOP2;每个存储单元的装填为下述三种状态之一:(1)没有有效数据、而且没有预约第三数据缓冲区中的数据;(2)没有有效数据,但是已经预约了第三数据缓冲区中的数据;(3)有有效数据。
本实施例中,数据缓冲区的存储单元宽度与所有协议中最长宽度的报文切片的宽度相同,数据缓冲区的深度是第一~第P空闲地址缓冲区深度之和;第i空闲地址缓冲区的深度与对应的第i个控制DAMQ的第三数据缓冲区的深度相同。
本实施例中,P个空闲地址缓冲区采用寄存器阵列实现,其深度与第i个控制DAMQ的第三数据缓冲区深度相同。
综上所述,针对现有互连芯片输入缓冲DAMQ设计无法同时支持多协议的问题,本实施例提供了一种支持多协议的动态共享缓冲区,包括:报文拆分逻辑、控制码组合逻辑、第一数据仲裁器、第二数据仲裁器、P个控制DAMQ、第一多路选择器、第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器、数据缓冲区、一个报文输入端口、一个读请求输入端口和一个报文数据输出端口;其中,P为数据通道数,每个数据通道存储一种协议的数据。本发明可以提供多个相互独立、深度可配置的数据通道,每个数据通道用于存储一种协议的报文数据,进而使得互连芯片同时支持多协议,在一套网络中支持多套网络协议,降低网络硬件实现开销。
此外,本实施例还提供一种网络交换机,该网络交换机的互连芯片中包含前述的支持多协议的动态共享缓冲区。
此外,本实施例还提供一种计算机设备,该计算机设备的互连芯片中包含前述的支持多协议的动态共享缓冲区。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种支持多协议的动态共享缓冲区,包括报文拆分逻辑模块、控制码组合逻辑模块、控制DAMQ单元和数据DAMQ单元,其特征在于,所述控制DAMQ单元包括第一数据仲裁器、DAMQ_CTRL1~DAMQ_CTRLP一共P个控制DAMQ、第二数据仲裁器、第一多路选择器,所述第一数据仲裁器用于将来自控制码组合逻辑模块的控制码仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,所述第二数据仲裁器用于将来自外部的读请求仲裁后输出给DAMQ_CTRL1~DAMQ_CTRLP中的一者,所述第一多路选择器用于从DAMQ_CTRL1~DAMQ_CTRLP中选择一路输出到数据DAMQ单元;所述控制DAMQ单元包括第二多路选择器、P个空闲地址缓冲区、P个空闲地址管理器和数据缓冲区,第二多路选择器用于从第一~第P空闲地址管理器接收P个端口的空闲地址缓冲区头指针,从报文拆分逻辑模块接收写数据通道号,然后将写数据通道号所对应第i数据通道的空闲地址缓冲区头指针Headi转换成写缓冲区地址wt_addr,作为报文数据在数据缓冲区的存放地址,然后将写缓冲区地址wt_addr发送到数据缓冲区和控制码组合逻辑模块;第一~第P空闲地址管理器中的任意第i空闲地址管理器与第i空闲地址缓冲区和第二多路选择器相连;P个空闲地址缓冲区和P个空闲地址管理器中任意第i空闲地址管理器通过头尾指针及第i空闲地址缓冲区把数据缓冲区中第i数据通道的空闲地址串成链表;当外部模块通过第i数据通道向数据缓冲区写数据时,第i空闲地址管理器将第i空闲地址缓冲区的头指针Headi,经过第二多路选择器仲裁后提供给数据缓冲区,作为数据缓冲区存储报文数据的地址;当第i数据通道从数据缓冲区读出一个数据时,该数据在据缓冲区中的地址被返还给第i空闲地址管理器的空闲地址链;第i空闲地址缓冲区与第i空闲地址管理器相连;第i数据通道在数据缓冲区的空闲地址通过地址链表构成虚拟队列,构成第i空闲地址缓冲区,所述数据缓冲区用于存储P个数据通道的报文数据。
2.根据权利要求1所述的支持多协议的动态共享缓冲区,其特征在于,所述报文拆分逻辑模块与报文输入端口、控制码组合逻辑模块、第二多路选择器、数据缓冲区相连;所述报文拆分逻辑模块用于从报文输入端口接收报文,将报文拆分成报文控制信息、报文数据和写数据通道号;然后将报文控制信息输出给控制码组合逻辑模块,将报文数据输出给数据缓冲区,将写数据通道号输出给第二多路选择器。
3.根据权利要求1所述的支持多协议的动态共享缓冲区,其特征在于,所述控制码组合逻辑模块与报文拆分逻辑模块、第二多路选择器、第一数据仲裁器相连;所述控制码组合逻辑模块用于从报文拆分逻辑模块接收报文控制信息,从第二多路选择器接收报文数据存储在数据缓冲区中的地址作为写缓冲地址,将报文控制信息和写缓冲地址组合成控制码,并将控制码输出给第一数据仲裁器。
4.根据权利要求1所述的支持多协议的动态共享缓冲区,其特征在于,所述数据缓冲区中存储的P个数据通道的报文数据占用不同的连续地址空间,且任意第i数据通道在数据缓冲区的地址空间范围为:
Figure QLYQS_1
上式中,port_depi表示第i数据通道在数据缓冲区占用的存储单元数,port_depk表示第k数据通道在数据缓冲区占用的存储单元数,P为数据缓冲区存储报文数据的数据通道数量;将报文数据存放在数据缓冲区中的地址记为写缓冲地址wt_addr,所述数据缓冲区从第二多路选择器接收写缓冲地址wt_addr,从报文拆分逻辑模块接收报文数据,然后将报文数据缓存在数据缓冲区中写缓冲地址wt_addr所指向的地址;所述数据缓冲区从第一多路选择器中接收对应数据通道控制码中的地址位即读缓冲区地址,通过读缓冲区地址从数据缓冲区中读出报文数据,然后通过报文数据输出端口将报文数据输出。
5. 根据权利要求1所述的支持多协议的动态共享缓冲区,其特征在于,所述P个控制DAMQ的结构完全相同,且任意控制DAMQ的结构包括VC号识别模块、读写地址管理模块VC0~VCN-1、第一写请求与写地址选择模块、第一读请求与读地址选择模块、第二写请求与写数据选择模块、第二读请求选择模块、第三数据缓冲区、地址缓冲区、空闲地址缓冲区、第二读写地址管理模块、第二VC顶部缓冲区VC0 FIFO_TOP~VCN-1 FIFO_TOP以及N选1多路选择器;其中:VC号识别模块用于从数据输入端口输入的控制码中提取该控制码的VC号j,生成VCj写请求,发送到VCj读写地址管理模块,0≤j≤N-1,j为整数;读写地址管理模块VC0~VCN-1用于从VC号识别模块接收VCj写请求,生成读空闲地址缓冲区的VCj第二读请求,发送到第二读请求选择模块;VCj读写地址管理模块接收从空闲地址缓冲区读出的空闲地址,将该地址保存为VCj写地址,生成VCj第一写请求,将VCj第一写请求与写地址发送到第一写请求与写地址选择模块;VCj读写地址管理模块从VCj FIFO_TOP接收对VCj的读请求,将VCj的读请求和读地址作为VCj第一读请求与读地址发送到第一读请求与读地址选择模块;生成VCj第二写请求,将VCj的读地址作为写数据,送给第二写请求与写数据选择模块;VCj读写地址管理模块接收从地址缓冲区读出的地址,将VCj的读地址更新为该地址;第一写请求与写地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一写请求与写地址,选择有效的写请求及其写地址分别生成第一写请求和第一写地址,发送给第三数据缓冲区和地址缓冲区;第一读请求与读地址选择模块用于串行接收VCj读写地址管理模块发出的VCj第一读请求与读地址,选择有效的读请求及其读地址分别生成第一读请求和第一读地址,发送给第三数据缓冲区和地址缓冲区;第二写请求与写数据选择模块用于串行接收VCj读写地址管理模块发送的第二写请求与写数据,选择有效的写请求,生成第二写请求,发送到第二读写地址管理模块和空闲地址缓冲区,选择有效的写数据作为写入的空闲地址写入到空闲地址缓冲区;第二读请求选择模块用于串行接收VCj读写地址管理模块发送的第二读请求,选择有效的读请求作为第二读请求发送到第二读写地址管理模块和空闲地址缓冲区;第三数据缓冲区为具有独立的读写端口的双端口静态随机访问存储器SRAM,用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从数据输入端口接收控制码并将其写入到第一写地址指向的存储器空间;第三数据缓冲区接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据到第二VC0到VCN-1顶部缓冲区;地址缓冲区用于接收第一写请求与写地址选择模块发送的第一写请求和第一写地址,从空闲地址缓冲区接收空闲地址并将其写入到第一写地址指向的存储器空间;接收第一读请求与读地址选择模块发送的第一读请求和第一读地址,从第一读地址指向的存储器空间输出数据作为读出的地址,发送到VC0到VCN-1读写地址管理模块;空闲地址缓冲区为具有独立的读写端口的双端口SRAM或者寄存器组,用于接收第二写请求,将写入的空闲地址写到第二写地址指向的位置;空闲地址缓冲区接收第二读请求,从第二读地址指向的位置输出数据作为读出的空闲地址,发送到地址缓冲区和VC0到VCN-1读写地址管理模块;第二读写地址管理模块用于接收第二写请求与写数据选择模块发送的第二写请求,将第二写地址加一,发送到空闲地址缓冲区;第二读写地址管理模块接收第二读请求选择模块发送的第二读请求,将第二读地址加一,发送到空闲地址缓冲区;第二VC顶部缓冲区VC0 FIFO_TOP~VCN-1 FIFO_TOP分别用于从读请求输入端口接收到VCj读请求输入,将数据从第二VCj FIFO_TOP读出输出给N选1多路选择器,然后,向VCj读写地址管理模块发出VCj读请求;第二VCj FIFO_TOP从第三数据缓冲区接收数据,缓存至第二VCj FIFO_TOP;N选1多路选择器用于从第二VC0到VCN-1顶部缓冲区相连接收VC0到VCN-1读出数据,得到控制码,然后选择其中一个数据通过数据输出端口输出给第一多路选择器,其中VC号是指虚信道的编号,VC表示虚信道。
6. 根据权利要求5所述的支持多协议的动态共享缓冲区,其特征在于,所述第二VC顶部缓冲区VC0 FIFO_TOP~VCN-1 FIFO_TOP的深度为3,其中的存储单元分别标识为FIFO_TOP0,FIFO_TOP1,FIFO_TOP2;每个存储单元的装填为下述三种状态之一:(1)没有有效数据、而且没有预约第三数据缓冲区中的数据;(2)没有有效数据,但是已经预约了第三数据缓冲区中的数据;(3)有有效数据。
7.根据权利要求1所述的支持多协议的动态共享缓冲区,其特征在于,所述数据缓冲区的存储单元宽度与所有协议中最长宽度的报文切片的宽度相同,数据缓冲区的深度是第一~第P空闲地址缓冲区深度之和;第i空闲地址缓冲区的深度与对应的第i个控制DAMQ的第三数据缓冲区的深度相同。
8.根据权利要求7所述的支持多协议的动态共享缓冲区,其特征在于,所述P个空闲地址缓冲区采用寄存器阵列实现,其深度与第i个控制DAMQ的第三数据缓冲区深度相同。
9.一种网络交换机,其特征在于,该网络交换机的互连芯片中包含权利要求1~8中任意一项所述的支持多协议的动态共享缓冲区。
10.一种计算机设备,其特征在于,该计算机设备的互连芯片中包含权利要求1~8中任意一项所述的支持多协议的动态共享缓冲区。
CN202010605648.7A 2020-06-29 2020-06-29 一种支持多协议的动态共享缓冲区 Active CN111611180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010605648.7A CN111611180B (zh) 2020-06-29 2020-06-29 一种支持多协议的动态共享缓冲区

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010605648.7A CN111611180B (zh) 2020-06-29 2020-06-29 一种支持多协议的动态共享缓冲区

Publications (2)

Publication Number Publication Date
CN111611180A CN111611180A (zh) 2020-09-01
CN111611180B true CN111611180B (zh) 2023-06-13

Family

ID=72203164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010605648.7A Active CN111611180B (zh) 2020-06-29 2020-06-29 一种支持多协议的动态共享缓冲区

Country Status (1)

Country Link
CN (1) CN111611180B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948315B (zh) * 2021-01-29 2024-07-23 Oppo广东移动通信有限公司 存储区域共享方法、存储介质及电子设备
CN113867796B (zh) * 2021-12-02 2022-02-22 南湖实验室 利用多状态机提高读性能的协议转换桥及实现方法
CN117997852B (zh) * 2024-04-03 2024-06-11 北京数渡信息科技有限公司 一种交换芯片上的缓存控制装置、方法、芯片及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1624615B1 (en) * 2004-08-02 2008-02-20 Alcatel Lucent Shared resources in a multi manager environment
GB2414894A (en) * 2005-09-16 2005-12-07 Lan Yang Inst Of Technology Predicting state distributions and a-new-message block/loss rates of a dynamically allocated multiqueue offered extending messages
US8738863B2 (en) * 2009-09-25 2014-05-27 Intel Corporation Configurable multi-level buffering in media and pipelined processing components
CN104407992B (zh) * 2014-12-17 2017-04-05 中国人民解放军国防科学技术大学 一种基于双端口寄存器阵列的四端口存储器
US10169116B2 (en) * 2015-10-21 2019-01-01 International Business Machines Corporation Implementing temporary message queues using a shared medium
US10944694B2 (en) * 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
CN108111930B (zh) * 2017-12-15 2019-01-29 中国人民解放军国防科技大学 基于高密度存储器的多裸片高阶光交换结构
CN110247970B (zh) * 2019-06-17 2021-12-24 中国人民解放军国防科技大学 一种互连芯片动态共享缓冲装置
CN111224883B (zh) * 2019-11-26 2022-04-19 中国人民解放军国防科技大学 一种高阶路由器的瓦片结构及其构建的高阶路由器

Also Published As

Publication number Publication date
CN111611180A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
CN111611180B (zh) 一种支持多协议的动态共享缓冲区
CN110247970B (zh) 一种互连芯片动态共享缓冲装置
US6700894B1 (en) Method and apparatus for shared buffer packet switching
Tamir et al. High-performance multi-queue buffers for VLSI communications switches
US7283556B2 (en) Method and system for managing time division multiplexing (TDM) timeslots in a network switch
KR900006793B1 (ko) 패킷 스위치 다중 대기행렬 NxM 스위치 노오드 및 처리 방법
US7352766B2 (en) High-speed memory having a modular structure
US7126959B2 (en) High-speed packet memory
JPH0734183B2 (ja) 先入れ先出し式メモリ・バッファ
CN109861931B (zh) 一种高速以太网交换芯片的存储冗余***
US20210359958A1 (en) Hierarchical switching fabric and deadlock avoidance method for ultra high radix network routers
García et al. Design and implementation of high-performance memory systems for future packet buffers
Zhang et al. A multi-VC dynamically shared buffer with prefetch for network on chip
CN1221919A (zh) 在处理器单元之间交换数据的***
García-Vidal et al. A DRAM/SRAM memory scheme for fast packet buffers
Iyer et al. Techniques for fast shared memory switches
US8923315B2 (en) Packet router having a hierarchical buffer structure
JPH10285173A (ja) Atmセル処理装置
Su et al. Network-on-chip router design with buffer-stealing
US6314489B1 (en) Methods and systems for storing cell data using a bank of cell buffers
US6885591B2 (en) Packet buffer circuit and method
US6831920B1 (en) Memory vacancy management apparatus and line interface unit
CN115473862B (zh) 避免交换芯片组播包队头阻塞的方法及***
CN111585918B (zh) 一种应用于存储转发机制交换机的存储转发装置和方法
KR100641633B1 (ko) 다수의 공유 저장장소를 이용한 효율적인 스위칭 장치 및그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant