CN113010464A - 数据处理装置及设备 - Google Patents

数据处理装置及设备 Download PDF

Info

Publication number
CN113010464A
CN113010464A CN201911330284.XA CN201911330284A CN113010464A CN 113010464 A CN113010464 A CN 113010464A CN 201911330284 A CN201911330284 A CN 201911330284A CN 113010464 A CN113010464 A CN 113010464A
Authority
CN
China
Prior art keywords
target
queue
data
management module
target data
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.)
Pending
Application number
CN201911330284.XA
Other languages
English (en)
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
Sanechips Technology 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201911330284.XA priority Critical patent/CN113010464A/zh
Publication of CN113010464A publication Critical patent/CN113010464A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提出一种数据处理装置及设备,该数据处理装置包括:多个输入总线、入队管理模块、队列管理模块以及缓存模块,多个输入总线均与入队管理模块的输入端连接,入队管理模块的输出端与缓存模块的输入端连接,缓存模块的管理端与队列管理模块的输入端连接;缓存模块包括多个缓存区,多个缓存区为链表缓存区,每个缓存区设置有空闲指针池;队列管理模块中包括多个数据队列,多个数据队列均为采用链表实现的队列,多个数据队列共享多个缓存区,每个缓存区对应至少一个数据队列,每个数据队列对应一个缓存区,避免了线头阻塞问题,提高了数据处理效率,在节省缓存的基础上,实现了灵活的小粒度的通路选择调度。

Description

数据处理装置及设备
技术领域
本申请涉及计算机技术领域,具体涉及一种数据处理装置及设备。
背景技术
在网络处理引擎中,一方面需要不断提高性能指标,而另一方面又受限于芯片面积、资源以及工艺,不可能无限制提高主频或通过堆砌资源来达到满足性能需求的目的。因此在系统设计时往往通过并行总线的方式提高系统性能。可以理解为化整为零,利用多条流水线同时工作提高芯片工作效率。这种设计方式同时也能降低实现难度。但是这样做带来的一个困难就是内部数据总线的增多。内部总线的数量和接口总线的数量也通常不是匹配的,原因是它们往往工作在不同的频率,遵循不同的协议。将内外接口桥接起来存在多对多的总线交叉。
目前,可以通过交叉总线(Crossbar)方式实现输入总线与输出总线之间的桥接。
但是,上述方式,一方面,存在线头阻塞问题,即,在前面进入的数据切片还没有被输出的情况中,后进入的数据切片即使已经可以被输出,也需要等待,这导致数据处理效率较低,另一方面,通路选择不够灵活。
发明内容
本申请提供一种数据处理装置及设备,以解决目前的数据处理装置中数据处理效率较低以及通路选择不够灵活的技术问题。
本申请实施例提供一种数据处理装置,包括:
多个输入总线、入队管理模块、队列管理模块以及缓存模块,所述多个输入总线均与所述入队管理模块的输入端连接,所述入队管理模块的输出端与所述缓存模块的输入端连接,所述缓存模块的管理端与所述队列管理模块的输入端连接;所述缓存模块包括多个缓存区,所述多个缓存区为链表缓存区,所述每个缓存区设置有空闲指针池;所述队列管理模块中包括多个数据队列,所述多个数据队列均为采用链表实现的队列,所述数据队列的每个节点均包括:数据切片以及所述数据切片的下一跳的地址,所述多个数据队列共享所述多个缓存区,每个缓存区对应至少一个数据队列,每个所述数据队列对应一个缓存区;
所述入队管理模块用于确定接收到目标数据切片的目标输入总线对应的第一目标缓存区;其中,所述目标数据切片中包括所述目标数据切片所属的第一目标数据队列的标识,所述输入总线与所述缓存区一一对应;
所述缓存模块用于根据所述第一目标缓存区的目标空闲指针池,确定目标空闲指针,并将所述目标数据切片存储在所述目标空闲指针中;
所述队列管理模块用于将所述第一目标数据队列的队尾指针更新为所述目标空闲指针,以及,将所述目标数据切片入队前的队尾节点的下一跳的地址更新为所述目标空闲指针。
本申请实施例提供一种数据处理设备,包括:如本申请实施例中的任意一种数据处理装置。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为一实施例提供的一种数据处理装置的结构示意图;
图2为一实施例提供的另一种数据处理装置的结构示意图;
图3为一实施例提供的队列管理模块的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
目前的基于crossbar方式的网络处理引擎中,从同一个输入总线进入的数据切片可以形成一个队列,等待输出。由于先进先出的队列机制,首先处理的是队列中最靠前的数据切片,而这时队列后面的数据切片对应的出口缓存可能已经空闲,但因为得不到时间片,也无法被输出。一方面,这导致数据处理效率较低。另一方面,通路选择不够灵活。
为了使网络处理引擎能够适应更多的应用场景,需要将芯片内核各模块灵活桥接,以实现不同需求的业务处理,例如,内层报文解析、流量整形以及查表次数要求等。这需要芯片内具有灵活的通路选择。
本申请提供一种数据处理装置,对上述crossbar方式做出改进,旨在解决目前数据处理设备中数据处理效率较低以及通路选择不够灵活的技术问题。
图1为一实施例提供的一种数据处理装置的结构示意图。如图1所示,本实施例提供的数据处理装置包括:多个输入总线、入队管理模块11、队列管理模块13以及缓存模块12。
多个输入总线均与入队管理模块11的输入端连接,入队管理模块11的输出端与缓存模块12的输入端连接。缓存模块12的管理端与队列管理模块13的输入端连接。
缓存模块12包括多个缓存区。输入总线与缓存区一一对应。每个缓存区设置有空闲指针池。队列管理模块13中包括多个数据队列,多个数据队列共享多个缓存区。每个缓存区对应至少一个数据队列,每个数据队列对应一个缓存区。
入队管理模块11用于确定接收到目标数据切片的目标输入总线对应的第一目标缓存区。其中,目标数据切片中包括目标数据切片所属的第一目标数据队列的标识。
缓存模块12用于根据第一目标缓存区的目标空闲指针池,确定目标空闲指针,并将目标数据切片存储在目标空闲指针中。
队列管理模块13用于将第一目标数据队列的队尾指针更新为目标空闲指针。
一实施例中,本申请中的数据处理装置可以为网络处理引擎。
本实施例的数据处理装置中,输入总线与缓存区一一对应,每个缓存区对应至少一个数据队列,即,每个输入总线对应至少一个数据队列。每个数据队列对应一个缓存区意为同一个数据队列中的数据切片为同一个缓存区中存储的数据切片,也即,不同输入总线的数据切片不能进入同一个数据队列。
本实施例中,从某个输入总线输入的数据切片会存储在该输入总线对应的缓存区的指定数据队列中。这里的指定数据队列根据该数据切片中携带的数据队列的标识确定。相较于某个输入总线输入的数据切片均存储于同一个队列的方式,本实施例的数据处理装置中,相当于将从同一个输入总线输入的数据分散在不同的数据队列中,因而,可以在一个时钟周期中,使这些不同的数据队列中的队首数据切片均可以被处理,避免了线头阻塞问题,提高了数据处理效率。
本实施例中的数据切片指的是一个完整的数据包被分割后的具有预设长度的数据。一个数据包可以被切分为至少一个数据切片。
一实施例中,缓存区的数量可以大于或者等于输入总线的数量,以保证输入总线上每个时钟周期的数据切片均可以被存储缓存区中。
如图1所示,P个缓存区的缓存的深度取决于最大数据队列数Q和每个数据队列最大缓存的数据量的乘积。
以下介绍详细介绍本实施例的数据处理装置接收数据并存储的执行过程。
当目标输入总线接收到目标数据切片时,入队管理模块11确定该目标输入总线对应的第一目标缓存区。
第一种实现方式中,入队管理模块11具体根据预先确定的输入总线与缓存区的映射关系,确定目标输入总线对应的第一目标缓存区。
第二种实现方式中,该装置还包括设置于入队管理模块11中的多个选择器。选择器与缓存区一一对应。在该实现方式中,入队管理模块11还具体根据控制设备发送的输入总线与缓存区的映射关系,确定接收到目标数据切片的目标输入总线对应的第一目标缓存区,并控制与第一目标缓存区对应的选择器连通目标输入总线与第一目标缓存区。
在该实现方式中,由于设置了选择器,选择器可以实现从N个输入总线中选择一个输入总线,因此,可以通过控制设备实现灵活配置输入总线与缓存区的对应关系,扩展了该数据处理设备的应用场景。
一实施例中,目标数据切片中包括的第一目标数据队列的标识用于指示目标输入总线上的目标逻辑端口。换句话说,本实施例中的同一个数据队列中的数据切片为同一个输入总线上的同一个逻辑端口的数据切片。在该实施例中,数据队列的总数需要大于或者等于虚拟端口的总数。该实施例可以实现将同一个输入总线上的同一个逻辑端口的数据切片放置在同一个队列中,实现灵活的以虚拟端口为粒度的通路选择调度。
缓存模块12从第一目标缓存区的目标空闲指针池中,确定存储目标数据切片的目标空闲指针,并将该目标数据切片存储在该目标空闲指针中。
由于该目标数据切片属于第一目标数据队列,在将目标数据切片存储在该目标空闲指针中后,需要更新第一目标数据队列的队尾指针。
队列管理模块13将第一目标数据队列的队尾指针更新为存储目标数据切片的目标空闲指针。
以下以一个具体的例子说明上述过程。某个时钟周期中,假设从输入总线0输入了一个数据切片。该数据切片中携带数据队列1的标识。输入总线0与缓存0对应。入队管理模块11确定出输入总线0对应的缓存区为缓存0。缓存模块12从缓存0的空闲指针池中,确定出空闲指针。并将该数据切片存储在该空闲指针中。队列管理模块13将数据队列1的队尾指针更新为该空闲指针。下一个时钟周期中,假设输入总线0输入了另一个数据切片。该数据切片中携带数据队列2的标识。入队管理模块11确定出输入总线0对应的缓存区为缓存0。缓存模块12从缓存0的空闲指针池中,确定出另一个空闲指针。并将该数据切片存储在该空闲指针中。队列管理模块13将数据队列2的队尾指针更新为该空闲指针。实现了将从同一个输入总线输入的数据分散在不同的数据队列。
一实施例中,多个缓存区为链表缓存区。多个数据队列均为采用链表实现的队列。数据队列的每个节点均包括:数据切片以及该数据切片的下一跳的地址。也即,第一目标数据队列为采用链表实现的队列。第一目标数据队列的每个节点包括:数据切片以及该数据切片的下一跳的地址。在该实施例中,队列管理模块13除了更新队尾指针之外,还需要将目标数据切片入队前的队尾节点的下一跳的地址更新为目标空闲指针,以实现链表不中断。采用链表实现队列可以利用缓存区中的不连续的地址存储数据切片,提高了缓存区的利用率。进一步地,本实施例相较于单纯的链表调度,由于具有多队列,可以实现灵活选路。
一实施例中,还需要在数据队列中标识数据队列与缓存区的对应关系。若在目标数据切片进入第一目标数据队列时,第一目标数据队列为空,则队列管理模块13还用于在第一目标数据队列中标识第一目标数据队列与第一目标缓存区的对应关系。这是为了后续在数据队列发出出队请求后,能快速地从数据队列对应的缓存区中取出数据切片,提高出队效率。
本实施例提供的数据处理装置,包括:多个输入总线、入队管理模块、队列管理模块以及缓存模块,多个输入总线均与入队管理模块的输入端连接,入队管理模块的输出端与缓存模块的输入端连接,缓存模块的管理端与队列管理模块的输入端连接;缓存模块包括多个缓存区,多个缓存区为链表缓存区,每个缓存区设置有空闲指针池;队列管理模块中包括多个数据队列,多个数据队列均为采用链表实现的队列,数据队列的每个节点均包括:数据切片以及数据切片的下一跳的地址,多个数据队列共享多个缓存区,每个缓存区对应至少一个数据队列,每个数据队列对应一个缓存区,入队管理模块用于确定接收到目标数据切片的目标输入总线对应的第一目标缓存区,其中,目标数据切片中包括目标数据切片所属的第一目标数据队列的标识,输入总线与缓存区一一对应,缓存模块用于根据第一目标缓存区的目标空闲指针池,确定目标空闲指针,并将目标数据切片存储在目标空闲指针中,队列管理模块用于将第一目标数据队列的队尾指针更新为目标空闲指针,以及,将目标数据切片入队前的队尾节点的下一跳的地址更新为目标空闲指针。其具有以下技术效果:第一、由于将从同一个输入总线输入的数据分散在不同的数据队列中,因而,可以在一个时钟周期中,使这些不同的数据队列中的队首数据切片均有机会被处理,一方面,避免了线头阻塞问题,提高了数据处理效率,另一方面,实现了灵活的小粒度的通路选择调度;第二、多个缓存区为链表缓存区以及采用链表实现数据队列,节省了缓存,相较于单纯链表调度,同时还具有灵活通路选择的优势。
图2为一实施例提供的另一种数据处理装置的结构示意图。本实施例提供的数据处理装置在图1所示实施例及各种可选方案的基础上,还能实现对数据切片的出队处理。本实施例将对出队处理的具体过程进行详细说明。如图2所示,该数据处理装置还包括:多个输出总线、调度器管理模块15以及出队管理模块14。
调度器管理模块15的输入端与队列管理模块13的输出端连接。调度器管理模块15的输出端与出队管理模块14的第一输入端连接。缓存模块12的输出端与出队管理模块14的第二输入端连接,出队管理模块14的输出端与多个输出总线连接。调度器管理模块15包括多个调度器。调度器与输出总线一一对应。如图3所示,调度器和输出总线的数量均为M。
调度器管理模块15用于当接收到第二目标数据队列的出队请求时,确定与第二目标数据队列对应的目标调度器。
目标调度器根据预置的授权策略确定是否授权第二目标数据队列的队首数据切片出队。
出队管理模块14用于当确定目标调度器授权第二目标数据队列的队首数据切片出队时,从第二目标数据队列对应的第二目标缓存区中,读取第二目标数据队列的队首数据切片,并将第二目标数据队列的队首数据切片从与目标调度器对应的输出总线输出。
一种实现方式中,当第二目标数据队列不为空时,第二目标数据队列可以向调度器管理模块发出出队请求。
另一种实现方式中,队列管理模块13中还包括多个包长队列。图3为一实施例提供的队列管理模块的结构示意图。如图3所示,数据队列与包长队列一一对应。包长队列也可以为采用链表实现的队列。
在该实现方式中,缓存模块12还用于当确定目标数据切片包括目标数据切片所属的目标数据包的结束符时,确定目标数据包的数据量,并将数据量存储在目标空闲指针中。队列管理模块13还用于将第一目标数据队列对应的包长队列的队尾指针更新为目标空闲指针,并将数据量入队前的第一目标数据队列对应的包长队列的队尾节点的下一跳的地址更新为该目标空闲指针。
在该实现方式中,当第二目标数据队列确定其对应的包长队列不为空时,向调度器管理模块15发送出队请求。
在该实现方式中,在切分数据包时,会在数据包的第一个数据切片中携带包的开始符,在最后一个数据切片中携带包的结束符。每个包长队列中的节点的数量表示的是该包长队列对应的数据队列中数据切片形成的数据包的数量。
设置包长队列可以实现对数据切片所属的数据包的包长信息进行管理,以便于后续根据授权策略以及包长队列,确定是否授权第二目标数据队列的出队请求,提高授权确定过程的效率。
又一种实现方式中,当第二目标数据队列确定满足预设的出队规则时,向调度器管理模块15发送出队请求。
调度器管理模块15在接收到第二目标数据队列的出队请求时,确定与该第二目标数据队列对应的目标调度器。
需要说明的是,数据队列与调度器可以是一一对应的关系,也可以是多个数据队列对应一个调度器,还可以是一个数据队列对应多个调度器。可以根据实际需求,灵活设置。示例性地,假设一共有128个数据队列,8个调度器,则可以将数据队列分为8组,每组16个数据队列。这8组数据队列分别挂接在8个调度器上。
本实施例中预置的授权策略可以包括以下策略的任一种或者其组合:整包调度需求、队列服务类别优先级、802.3BR协议,媒体存取控制(Media Access Control,MAC)或灵活以太网技术的调度时隙、令牌桶整形等。不同调度器之间可以无耦合,不同的输出总线之间互不干扰,独立调度。不同调度器之间也可以有耦合关系,此时,根据输出总线之间所需要的调度关系决定该耦合关系,可以是优先级的关系,也可以是时隙调度的关系,还可以是整形的关系。
出队管理模块14当确定目标调度器授权第二目标数据队列的队首数据切片出队时,从第二目标数据队列对应的第二目标缓存区中,读取第二目标数据队列的队首数据切片,并将第二目标数据队列的队首数据切片从与目标调度器对应的输出总线输出。
一实施例中,若一个数据队列对应多个调度器,则可能存在调度器管理模块15确定出的第二目标数据队列对应的目标调度器为多个,且这多个目标调度器中至少2个均授权第二目标数据队列的队首数据切片出队。在该实施例中,缓存模块12用于从授权第二目标数据队列的队首数据切片出队的至少2个目标调度器中选择一个目标调度器作为最终的目标调度器。
相对应地,在将第二目标数据队列的队首数据切片从与目标调度器对应的输出总线输出的方面,出队管理模块14具体用于将第二目标数据队列的队首数据切片从与最终的目标调度器对应的输出总线输出。
该实施例中,缓存模块12可以基于公平轮询的原则,从授权第二目标数据队列的队首数据切片出队的至少2个目标调度器中选择一个目标调度器作为最终的目标调度器,以实现负载均衡。
该实施例中,可以实现缓存模块12反选最终的目标调度器,进一步提高了数据处理的灵活性。
一实施例中,在第二目标数据队列的队首数据切片从与目标调度器对应的输出总线输出后,队列管理模块13还用于将第二目标数据队列的队首指针更新为队首数据切片的下一个数据切片所在的地址。
缓存模块12还用于将队首数据切片的地址回收进第二目标缓存区的空闲指针池中。
一实施例中,第二目标数据队列为采用链表实现的队列。第二目标数据队列的每个节点包括:数据切片以及数据切片的下一跳的地址。
可以按照以下步骤设计本实施例提供的数据处理装置。
第一步:明确输入总线的数量。可以根据内部模块接口确定需要几套输入总线,以满足内部系统设计需求。
第二步:明确输出总线的数量。根据面板侧接口数量确定需要几套输出总线,以满足性能及用户接入数量的需求。
第三步:明确该装置需要提供的数据队列的数量。
第四步:每路输入总线的数据切片在进入装置时,根据携带的数据队列的标识进入指定队列等待调度。不同输入总线的数据切片不能进入同一数据队列。
第五步:每一路输出总线对应一个调度器。可定制调度策略,根据配置将数据队列挂接到期望发往的输出总线对应的调度器上。此处可以精细化配置,每个数据队列单独配置对应的输出总线。
基于上述步骤可以构造一个能满足多输入多输出任意映射,同时,可以实现总线内逻辑端口任意映射需求的数据处理装置。该数据装置实现了输入总线与输出总线的灵活桥接,以及,多虚拟通道间灵活映射,可以实现任意数量的输入总线与任意数量输出总线之间的桥接,并可共享任意数量的数据队列,实现内部任意总线的任意队列映射到输出总线的任意队列上。进而,实现了数据流的灵活调度。
本实施例提供的数据处理装置,还包括:多个输出总线、调度器管理模块以及出队管理模块,调度器管理模块的输入端与队列管理模块的输出端连接,调度器管理模块的输出端与出队管理模块的第一输入端连接,缓存模块的输出端与出队管理模块的第二输入端连接,出队管理模块的输出端与多个输出总线连接;调度器管理模块包括多个调度器,调度器与输出总线一一对应,调度器管理模块用于当接收到第二目标数据队列的出队请求时,确定与第二目标数据队列对应的目标调度器,目标调度器根据预置的授权策略确定是否授权第二目标数据队列的队首数据切片出队,出队管理模块用于当确定目标调度器授权第二目标数据队列的队首数据切片出队时,从第二目标数据队列对应的第二目标缓存区中,读取第二目标数据队列的队首数据切片,并将第二目标数据队列的队首数据切片从与目标调度器对应的输出总线输出。其具有以下技术效果:由于将从同一个输入总线输入的数据分散在不同的数据队列中,因此,在一个时钟周期中,可以有多个数据队列发出出队请求,增加了每个时钟周期可以出队的数据切片的数量,在节省缓存的基础上,进一步避免了线头阻塞问题,实现了数据流的灵活调度,提高了数据处理装置的吞吐量。
本实施例还提供一种数据处理设备,该设备包括上述任意实施例及可选的实现方式提供的数据处理装置。其实现过程和技术原理类似,此处不再赘述。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过数据处理装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和系统(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。

Claims (11)

1.一种数据处理装置,其特征在于,包括:多个输入总线、入队管理模块、队列管理模块以及缓存模块,所述多个输入总线均与所述入队管理模块的输入端连接,所述入队管理模块的输出端与所述缓存模块的输入端连接,所述缓存模块的管理端与所述队列管理模块的输入端连接;所述缓存模块包括多个缓存区,所述多个缓存区为链表缓存区,所述每个缓存区设置有空闲指针池;所述队列管理模块中包括多个数据队列,所述多个数据队列均为采用链表实现的队列,所述数据队列的每个节点均包括:数据切片以及所述数据切片的下一跳的地址,所述多个数据队列共享所述多个缓存区,每个缓存区对应至少一个数据队列,每个所述数据队列对应一个缓存区;
所述入队管理模块用于确定接收到目标数据切片的目标输入总线对应的第一目标缓存区;其中,所述目标数据切片中包括所述目标数据切片所属的第一目标数据队列的标识,所述输入总线与所述缓存区一一对应;
所述缓存模块用于根据所述第一目标缓存区的目标空闲指针池,确定目标空闲指针,并将所述目标数据切片存储在所述目标空闲指针中;
所述队列管理模块用于将所述第一目标数据队列的队尾指针更新为所述目标空闲指针,以及,将所述目标数据切片入队前的队尾节点的下一跳的地址更新为所述目标空闲指针。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:多个输出总线、调度器管理模块以及出队管理模块,所述调度器管理模块的输入端与所述队列管理模块的输出端连接,所述调度器管理模块的输出端与所述出队管理模块的第一输入端连接,所述缓存模块的输出端与所述出队管理模块的第二输入端连接,所述出队管理模块的输出端与所述多个输出总线连接;所述调度器管理模块包括多个调度器,所述调度器与所述输出总线一一对应;
所述调度器管理模块用于当接收到第二目标数据队列的出队请求时,确定与所述第二目标数据队列对应的目标调度器;
所述目标调度器根据预置的授权策略确定是否授权所述第二目标数据队列的队首数据切片出队;
所述出队管理模块用于当确定所述目标调度器授权所述第二目标数据队列的队首数据切片出队时,从所述第二目标数据队列对应的第二目标缓存区中,读取所述第二目标数据队列的队首数据切片,并将所述第二目标数据队列的队首数据切片从与所述目标调度器对应的输出总线输出。
3.根据权利要求2所述的装置,其特征在于,在所述第二目标数据队列的队首数据切片从与所述目标调度器对应的输出总线输出后,所述队列管理模块还用于将所述第二目标数据队列的队首指针更新为所述队首数据切片的下一个数据切片所在的地址;
所述缓存模块还用于将所述队首数据切片的地址回收进所述第二目标缓存区的空闲指针池中。
4.根据权利要求2或3所述的装置,其特征在于,所述队列管理模块还包括多个包长队列,所述数据队列与所述包长队列一一对应;所述包长队列为采用链表实现的队列,所述包长队列的每个节点包括:包长以及所述包长的下一跳的地址;
所述缓存模块还用于当确定所述目标数据切片包括所述目标数据切片所属的目标数据包的结束符时,确定所述目标数据包的数据量,并将所述数据量存储在所述目标空闲指针中;
所述队列管理模块还用于将所述第一目标数据队列对应的包长队列的队尾指针更新为所述目标空闲指针,并将所述数据量入队前的第一目标数据队列对应的包长队列的队尾节点的下一跳的地址更新为所述目标空闲指针。
5.根据权利要求4所述的装置,其特征在于,当所述第二目标数据队列确定其对应的包长队列不为空时,向所述调度器管理模块发送所述出队请求。
6.根据权利要求1-3任一项所述的装置,其特征在于,若在所述目标数据切片进入所述第一目标数据队列时,所述第一目标数据队列为空,则所述队列管理模块还用于在所述第一目标数据队列中标识所述第一目标数据队列与所述第一目标缓存区的对应关系。
7.根据权利要求1-3任一项所述的装置,其特征在于,所述入队管理模块具体用于根据预先确定的输入总线与缓存区的映射关系,确定接收到目标数据切片的目标输入总线对应的第一目标缓存区。
8.根据权利要求1-3任一项所述的装置,其特征在于,所述入队管理模块还包括多个选择器,所述选择器与所述缓存区一一对应;
每个所述选择器与所述多个输入总线均连接。
所述入队管理模块还具体用于根据控制设备发送的输入总线与缓存区的映射关系,确定接收到目标数据切片的目标输入总线对应的第一目标缓存区,并控制与所述第一目标缓存区对应的选择器连通所述目标输入总线与所述第一目标缓存区。
9.根据权利要求1-3任一项所述的装置,其特征在于,所述第一目标数据队列的标识用于指示所述目标输入总线上的目标逻辑端口。
10.根据权利要求2或3所述的装置,其特征在于,当所述目标调度器为多个时,且多个目标调度器中至少2个均授权所述第二目标数据队列的队首数据切片出队时,所述缓存模块用于从授权所述第二目标数据队列的队首数据切片出队的至少2个目标调度器中选择一个目标调度器作为最终的目标调度器;
在将所述第二目标数据队列的队首数据切片从与所述目标调度器对应的输出总线输出的方面,所述出队管理模块具体用于将所述第二目标数据队列的队首数据切片从与所述最终的目标调度器对应的输出总线输出。
11.一种数据处理设备,其特征在于,包括:权利要求1-10任一项所述的数据处理装置。
CN201911330284.XA 2019-12-20 2019-12-20 数据处理装置及设备 Pending CN113010464A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911330284.XA CN113010464A (zh) 2019-12-20 2019-12-20 数据处理装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911330284.XA CN113010464A (zh) 2019-12-20 2019-12-20 数据处理装置及设备

Publications (1)

Publication Number Publication Date
CN113010464A true CN113010464A (zh) 2021-06-22

Family

ID=76382184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911330284.XA Pending CN113010464A (zh) 2019-12-20 2019-12-20 数据处理装置及设备

Country Status (1)

Country Link
CN (1) CN113010464A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448917A (zh) * 2022-04-07 2022-05-06 沐曦科技(北京)有限公司 基于多维仲裁器的数据处理系统和芯片
CN114896189A (zh) * 2022-05-07 2022-08-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种高速总线数据的缓存方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448917A (zh) * 2022-04-07 2022-05-06 沐曦科技(北京)有限公司 基于多维仲裁器的数据处理系统和芯片
CN114448917B (zh) * 2022-04-07 2022-06-10 沐曦科技(北京)有限公司 基于多维仲裁器的数据处理系统和芯片
CN114896189A (zh) * 2022-05-07 2022-08-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种高速总线数据的缓存方法、装置、设备及存储介质
CN114896189B (zh) * 2022-05-07 2023-09-26 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种高速总线数据的缓存方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11188388B2 (en) Concurrent program execution optimization
US10705878B2 (en) Task allocating method and system capable of improving computational efficiency of a reconfigurable processing system
US8155134B2 (en) System-on-chip communication manager
US9426099B2 (en) Router, method for controlling router, and program
KR102082020B1 (ko) 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치
US8190801B2 (en) Interconnect logic for a data processing apparatus
RU2487401C2 (ru) Способ обработки данных, узел-маршрутизатор и носитель информации
JP2021519464A (ja) 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション
JP2006101525A (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
CN104468401A (zh) 一种报文处理方法和装置
CN113010464A (zh) 数据处理装置及设备
WO2003034249A1 (en) Tagging and arbitration mechanism in an input/output node of a computer system
US8589593B2 (en) Method and apparatus for processing protocol messages for multiple protocol instances
WO2021259321A1 (zh) 存储调度方法、设备和存储介质
GB2381412A (en) Determining transmission priority for data frames from a plurality of queues
US8976802B2 (en) Prediction-based switch allocator
CN112804166B (zh) 一种报文收发方法、装置及存储介质
US7639704B2 (en) Message switching system
US20210314185A1 (en) Priority-arbitrated access to a set of one or more computational engines
CN116686269A (zh) 一种路由器及片上系统
CN114760241A (zh) 一种用于数据流架构的计算设备中的路由方法

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