CN106886498A - 数据处理装置和终端 - Google Patents
数据处理装置和终端 Download PDFInfo
- Publication number
- CN106886498A CN106886498A CN201710112079.0A CN201710112079A CN106886498A CN 106886498 A CN106886498 A CN 106886498A CN 201710112079 A CN201710112079 A CN 201710112079A CN 106886498 A CN106886498 A CN 106886498A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- arbitration modules
- address
- input
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/112—Switch control, e.g. arbitration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/113—Arrangements for redundant switching, e.g. using parallel planes
- H04L49/118—Address processing within a device, e.g. using internal ID or tags for routing within a switch
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1507—Distribute and route fabrics, e.g. sorting-routing or Batcher-Banyan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/40—Constructional details, e.g. power supply, mechanical construction or backplane
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请提供了一种数据处理装置和终端。该数据处理装置包括:N个装置输入端、输入交换模块、K个缓存区、第一输出交换模块、第二输出交换模块和M个装置输出端,该输入交换模块的N个输入端与该N个装置输入端连接,该输入交换模块的K个输出端与该K个缓存区对应;该第一输出交换模块的K1个输入端与该K个缓存区中的K1个缓存区对应,该第一输出交换模块的M个输出端与该M个装置输出端连接;该第二输出交换模块的K2个输入端与该K个缓存区中除该K1个缓存区外的K2个缓存区对应,该第二输出交换模块的M个输出端与该M个装置输出端连接。本申请提供的数据处理装置和终端,能够降低输出数据的计算复杂度,从而提高数据读取速度。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及通信领域中的数据处理装置和终端。
背景技术
数据存储和数据交换是通信设备中一项核心技术,目前常见的交换网为N×N交换网,包括N×N的输入交换模块,N个数据缓存和N×N的输出交换模块,交换网对数据进行存储和读取的过程为:在存储时,通过输入交换模块的N个输入端接收交换网输入端口输入的数据,将该N个输入端接收到的数据按照负载均衡的方法存储在与每个输入端对应的数据缓存中,在读取时,通过N×N的输出交换模块从该N个数据缓存中读取数据,再将数据交换到目标输出端口,进行数据输出。
然而,在现有的交换网中,输出交换模块需要对N×N的数据进行交换,当N较大的时候,输出交换模块进行数据交换的计算复杂度较大,因此读取数据的速度较慢。
发明内容
本申请提供一种数据处理装置,能够降低输出数据的计算复杂度,从而提高数据读取速度。
第一方面,本申请提供了一种数据处理装置,该数据处理装置包括:N个装置输入端、输入交换模块、K个缓存区、第一输出交换模块、第二输出交换模块和M个装置输出端,N和M均为大于1的整数,其中,
该输入交换模块的N个输入端与该N个装置输入端连接,该输入交换模块的K个输出端与该K个缓存区对应;
该第一输出交换模块的K1个输入端与该K个缓存区中的K1个缓存区对应,该第一输出交换模块的M个输出端与该M个装置输出端连接,K1大于或等于1;
该第二输出交换模块的K2个输入端与该K个缓存区中除该K1个缓存区外的K2个缓存区对应,该第二输出交换模块的M个输出端与该M个装置输出端连接,K2大于或等于1。
本申请实施例提供的数据处理装置,通过一个K1×M的第一输出交换模块和一个K2×M的第二输出交换模块共同完成K×M的输出数据的计算,相比于通过一个K×M的输出交换模块进行输出数据的计算来说,能够降低输出数据的计算复杂度,从而提高数据读取的速度。
应理解,本申请实施例对K、M和N的大小关系不作限定。
可选地,K可以大于或等于M或N,更进一步地,K1可以大于或等于M或N,K2可以大于或等于M或N。
当K大于或等于N时,数据处理装置的N个装置输入端通过输入交换模块与K个缓存区对应,这样输入交换模块每次最大可以将N个装置输入端传入的数据存储至K个缓存区中的任一个或多个缓存区中,相比于当K小于N时,每次只能将N个装置输入端中的K个装置输入端传入的数据存储至K个缓存区,能够提高缓存单元的利用率,并且最大限度地保证N个装置输入端传入的数据能够同时进行存储。
当K大于M时,该数据处理装置通过第一输出交换模块和第二输出交换模块,每次最大可以同时从K个缓存区中同时读取数据,经过合并后输出至M个装置输出端,相比于当K小于或等于M时,通过一个输出交换模块,每次最大只能从M个缓存区中同时读取数据并输出至M个装置输出端,在提高数据的读取速度的前提下,还能够提高数据的读取带宽。
在一种可能的实现方式中,该输入交换模块用于获取该N个装置输入端传输的数据;该数据处理装置还包括:写仲裁模块和读仲裁模块;该写仲裁模块的控制端与该输入交换模块的控制端连接,该写仲裁模块用于控制该输入交换模块将获取到的数据均匀存储至该K个缓存区中;该读仲裁模块的第一控制端与该第一输出交换模块的控制端连接,该读仲裁模块的第二控制端与该第二输出交换模块的控制端连接,该读仲裁模块用于控制该第一输出交换模块从该K1个缓存区中读取数据,控制该第二输出交换模块从该K2个缓存区中读取数据,并控制该第一输出交换模块和该第二输出交换模块将读取到的数据传输至该M个装置输出端。
可选地,该写仲裁可以采用负载均衡算法或者最小负载优先算法等负载分担算法,使得M个缓存区的达到负载均衡,本申请实施例对此不作限定。
在另一种可能的实现方式中,该数据处理装置还包括:缓存管理模块,该缓存管理模块的第一地址端与该读仲裁模块的第一地址端连接,该缓存管理模块的第二地址端与该写仲裁模块的第一地址端连接;该写仲裁模块用于从该缓存管理模块获取该K个缓存区中的第一缓存区的地址,控制该输入交换模块将获取到的第一数据存储至该第一缓存区中;该读仲裁模块用于控制该第一输出交换模块读取该K1个缓存区中的第二缓存区的地址中存储的第二数据,将该第二缓存区的地址发送给该缓存管理模块,并将该第二数据传输至该M个装置输出端中的第一装置输出端,其中该第一装置输出端为该第二数据的目的端口。
可选地,该第一数据与该第二数据可以相同,也可以不同,本申请实施例对此不作限定。
本申请实施例提供的数据处理装置,缓存管理模块能够单独管理M个缓存区,写仲裁模块控制输入交换模块输入的数据都是写在从缓存管理模块获取的地址的存储空间中,读仲裁模块从缓存区读出数据后,会将读取的数据的存储地址发送给缓存管理模块,这样缓存管理模块能够知道每个缓存区的存储空间状态,实现对每个缓存区的地址的管理,从而能够避免写仲裁模块将数据存储至不存在空闲存储空间的缓存区,或者避免读仲裁模块从未存有数据的缓存区中读取数据。
在又一种可能的实现方式中,该第一缓存区与该第二缓存区相同,该第一缓存区包括多个单端口的缓存单元,该写仲裁模块用于从该缓存管理模块获取该第一缓存区包括的多个缓存单元中第一缓存单元的地址,控制该输入交换模块将该第一数据存储至该第一缓存单元的地址中;该读仲裁模块用于控制该第一输出交换模块读取该多个缓存单元中除该第一缓存单元以外的第二缓存单元的地址中存储的该第二数据,将该第二缓存单元的地址发送给该缓存管理模块,并将该第二数据传输至该第一装置输出端。
应理解,本申请实施例中的缓存区可以为多个单端口缓存或者一个双端口缓存,其中,单端口缓存表示不允许同时执行读取和写入操作,即一次数据处理只能为读取数据或者写入数据;双端口缓存表示允许同时执行读取和写入操作,即一次数据处理可以同时执行读取数据和写入数据。
本申请实施例提供的数据处理装置,缓存区为双端口缓存能够提高数据处理装置的并行处理能力,缓存区为多个单端口缓存能够降低数据处理装置的成本开销。
在又一种可能的实现方式中,若该写仲裁模块存储数据的优先级高于该读仲裁模块读取数据的优先级;该写仲裁模块用于统计该多个缓存单元中每个缓存单元的数据存储状态,根据该多个缓存单元中每个缓存单元的数据存储状态,将该多个缓存单元中数据存储量小于第一阈值缓存单元作为该第一缓存单元,并向该缓存管理模块发送用于请求该第一缓存单元的地址的第一请求信息;该缓存管理模块用于根据该第一请求信息向该写仲裁模块发送该第一缓存单元的写地址,该第一缓存单元的写地址为该第一缓存单元中空闲存储空间的地址;该写仲裁模块还用于获取该缓存管理模块传输的该写地址,控制该输入交换模块将该第一数据存储至该写地址中。
应理解,数据处理装置进行数据处理的方式可以为分为读优先和写优先两种方式,在读优先的方式下,读取数据操作的优先级高于写入(存储)数据操作的优先级;在写优先的方式下,写入数据操作的优先级高于读取数据操作的优先级。
读优先方式,表示数据处理装置在进行数据处理的过程中,首先保证能够从存储有数据的缓存区中读取数据并输出到装置输出端,其次完成数据写入到具有空闲存储空间的缓存区中。
写优先方式,表示数据处理装置在进行数据处理的过程中,首先保证数据能够存储至具有空闲存储空间的缓存区,其次完成从存储有数据的缓存区中读取数据。
在又一种可能的实现方式中,该写仲裁模块的反馈端与该读仲裁模块的反馈端连接;该写仲裁模块还用于向该读仲裁模块发送用于反馈该第一缓存单元当前正在存储数据的第一反馈信息;该读仲裁模块还用于根据该第一反馈信息,将该多个缓存单元中除该第一缓存单元以外、且数据存储量大于第二阈值的缓存单元作为该第二缓存单元,控制该第一输出交换模块读取该第二缓存单元中存储的该第二数据,将该第二缓存单元的地址发送给该缓存管理模块,并将该第二数据传输至该第一装置输出端。
在又一种可能的实现方式中,若该读仲裁模块读取数据的优先级高于该写仲裁模块存储数据的优先级;该读仲裁模块用于统计该多个缓存单元中每个缓存单元的数据存储状态,根据该多个缓存单元中每个缓存单元的数据存储状态,将该多个缓存单元中数据存储量大于第三阈值的缓存单元作为该第二缓存单元,并向该缓存管理模块发送用于请求该第二缓存单元的地址的第二请求信息该缓存管理模块用于根据该第二请求信息向该读仲裁模块发送该第二缓存单元的读地址,该第二缓存单元的读地址为该第二缓存单元中存储该第二数据的存储空间的地址;该读仲裁模块还用于获取该缓存管理模块传输的该读地址,控制该第一输出交换模块从该读地址中读取该第二数据。
在又一种可能的实现方式中,该写仲裁模块的反馈端与该读仲裁模块的反馈端连接;该读仲裁模块还用于向该写仲裁模块发送用于反馈该第二缓存单元当前正在读取数据的第二反馈信息;该写仲裁模块还用于根据该第二反馈信息,将该多个缓存单元中除该第二缓存外、且数据存储量小于第四阈值的缓存单元作为该第一缓存单元,控制该输入交换模块将该第一数据存储至该第一缓存单元的地址中。
在又一种可能的实现方式中,该读仲裁模块还用于控制该第二输出交换模块读取该K2个缓存区中的第三缓存区中存储的第三数据,将该第三数据传输至该M个装置输出端的第二装置输出端,并将该第三缓存区的地址发送给该缓存管理模块,该第二装置输出端为该第三数据的目的端口。
本申请实施例提供的数据处理装置,读仲裁模块与写仲裁模块可以及时反馈读取或写入操作的信息,并在进行读取或写入操作后,通知缓存管理模块更新数据存储状态,能够提高数据处理装置的处理效率。
在又一种可能的实现方式中,该数据处理装置还包括:第一重排模块和第二重排模块,其中:该第一输出交换模块的M个输出端与该第一重排模块的M个输入端连接,该第二输出交换模块的M个输出端与该第二重排模块的M个输入端连接;该第一重排模块的M个输出端与该M个装置输出端连接,该第二重排模块的M个输出端与该M个装置输出端连接;该读仲裁模块还用于控制该第一输出交换模块将读取到的数据传输至该第一重排模块,以及控制该第二输出交换模块将读取到的数据传输至该第二重排模块;该第一重排模块用于获取该第一输出交换模块传输的数据,对从相同的装置输出端输出的数据进行排序,再按照排序结果将数据传输至相应的装置输出端;该第二重排模块用于获取该第二输出交换模块读取的数据,对从相同的装置输出端输出的数据进行排序,再按照排序结果将数据传输至相应的装置输出端。
可选地,第一重排模块和第二重排模块对数据进行排序可以为按照先入先出的原则进行排序,即同一个装置输出端的数据按照在缓存区中缓存时间的先后顺序进行。
本申请实施例提供的数据处理装置,通过重排模块对输出数据进行排序,先到的数据可以优先输出,能够提高减少重排模块的缓存占用时延。
在又一个可能的实现方式中,该数据处理装置还包括队列管理模块,该队列管理模块的第一地址端与该写仲裁模块的第二地址端连接,该队列管理模块的第二地址端与该读仲裁的第二地址端连接;该队列管理模块用于获取该写仲裁模块传输的数据信息,该数据信息包括该写仲裁模块获取到的数据的源端口、目的端口和存储该数据的存储地址,根据该数据信息生成信源描述符CD,并将该CD加入输出队列,通过该输出队列将该CD输出给读仲裁模块,该输出队列的源端口为该数据的源端口,该输出队列的目的端口为该数据的目的端口,该N个装置输入端包括该数据的源端口,该N个装置输出端包括该数据的目的端口;该读仲裁模块用于获取队列管理模块传输的该CD,根据该CD控制该输出交换模块读取该存储地址中存储的该数据,并将该存储地址发送给该缓存管理模块,控制与该存储地址对应的输出交换模块将该数据输出到该数据的目的端口。
第二方面,本申请提供了一种终端,该终端包括如上述第一方面或其各种实现方式所述的数据处理装置。
附图说明
图1是本申请实施例的数据处理装置的示意性框图;
图2是本申请实施例的另一数据处理装置的示意性框图;
图3是本申请实施例的又一数据处理装置的示意性框图;
图4是本申请实施例的又一数据处理装置的示意性框图;
图5是本申请实施例的数据处理方法的示意性流程图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1示出了本申请实施例提供的数据处理装置,如图1所示,该数据处理装置包括:N个装置输入端(如图1中所示的装置输入端1011至101N)、输入交换模块110、K个缓存区(如图1中所示的缓存区1201至120K)、第一输出交换模块131、第二输出交换模块132和M个装置输出端(如图1中所示的装置输出端1021至102M),N和M均为大于1的整数。
该输入交换模块110包括N个输入端(如图1中所示的输入端1111至111N)和K个输出端(如图1中所示的输出端1121至112K)。该输入交换模块的输入端1111至111N与装置输入端1011至101N连接,该输入交换模块的输出端1121至112K分别与该K个缓存区对应。
该第一输出交换模块131包括K1个输入端(如图1中所示的输入端1311至131K1)和M个输出端(如图1中所示的1321至132M)。该第一输出交换模块的输入端1311至131K1分别与该K个缓存区中的K1个缓存区(如图1中所示的缓存区1201至120K1)对应,该第一输出交换模块的输出端1321至132M与该装置输出端1021至102M连接,K1大于或等于1。
该第二输出交换模块132包括K2个输入端(如图1中所示的输入端1331至133K2)和M个输出端(如图1中所示的1341至134M)。该第二输出交换模块的输入端1331至133K2分别与该K个缓存区中的K2个缓存区对应,该K2缓存区可以理解为该K个缓存区中除与第一输出交换模块对应的K1个缓存区以外的缓存区(如图1中所示的缓存区120(K1+1)至120K),该第二输出交换模块的输出端1341至134M与该装置输出端1021至102M连接,K2大于或等于1。
可选地,该第一输出交换模块和该第二输出交换模块各自获取到的传输至相同装置输出端的数据可以进行合并后,传输到相应的装置输出端,本申请实施例对此不作限定。
还应理解,本申请实施例仅以将缓存区划分为两组缓存区,每组缓存区对应于一个输出交换模块,即包括两个输出交换模块为例进行说明,本发明实施例还可以将缓存区划分为多组缓存区,每组缓存区对应于一个输出交换模块,即包括多个输出交换模块,本申请实施例对此不作限定。
作为一个可选实施例,本申请实施例提供的数据处理装置可以包括N个装置输入端(如图1中所示的装置输入端1011至101N)、输入交换模块110、多个处理模块(图1中示出了第一处理模块和第二处理模块)和M个装置输出端(如图1中所示的装置输出端1021至102M),N和M均为大于1的整数,其中,第一处理模块包括K1个缓存区(图1中示出了缓存区1201至120K1)和第一输出交换模块131,第二处理模块包括K2个缓存区(图1中示出了缓存区120(K1+1)至缓存区120K)和第二输出交换模块132。在图1中,第一组缓存区中的缓存与第一输出交换模块131对应,第二组缓存区与第二输出交换模块132对应。
本申请实施例提供的数据处理装置,通过一个K1×M的第一输出交换模块和一个K2×M的第二输出交换模块共同完成K×M的输出数据的计算,相比于通过一个K×M的输出交换模块进行输出数据的计算来说,能够降低输出数据的计算复杂度,从而提高数据的读取速度。
应理解,本申请实施例对K、M和N的大小关系不作限定。
可选地,K可以大于或等于M或N,更进一步地,K1可以大于或等于M或N,K2可以大于或等于M或N。
当K大于或等于N时,数据处理装置的N个装置输入端通过输入交换模块与K个缓存区对应,这样输入交换模块每次可以将N个装置输入端传入的数据存储至K个缓存区中的任一个或多个缓存区中,相比于当K小于N时,每次最多只能将N个装置输入端中的K个装置输入端传入的数据存储至K个缓存区,能够提高缓存单元的利用率,并且最大限度地保证N个装置输入端传入的数据能够同时进行存储。
当K大于M时,该数据处理装置通过第一输出交换模块和第二输出交换模块,每次最大可以同时从K个缓存区中同时读取数据,经过合并后输出至M个装置输出端,相比于当K小于或等于M时,通过一个输出交换模块,每次最大只能从M个缓存区中同时读取数据并输出至M个装置输出端,在提高数据的读取速度的前提下,还能够提高数据的读取带宽。
可选地,上述输入交换模块、第一输出交换模块和第二输出交换模块的输入端均可以为虚拟的端口。
作为一个可选实施例,该输入交换模块的K个输出端与该K个缓存区一一对应,可以理解为该输入交换模块的输出端1121至输出端112K分别与缓存区1201至缓存区120K连接,即输入交换模块的输出端可以向与该输出端对应的缓存区中写入数据。
作为另一个可选实施例,该第一输出交换模块的K1个输入端与该K1个缓存区一一对应,可以理解为该第一输出交换模块的输入端1311至输入端131K1分别与缓存区1201至缓存区120K1连接,即该第一输出交换模块的输入端可以从该K1个缓存区中与该输入端对应的缓存区中读取数据;该第二输出交换模块的K2个输入端与该K2个缓存区一一对应,可以理解为该第二输出交换模块的输入端1331至输入端133K2分别与缓存区120(K1+1)至缓存区120K连接,即该第二输出交换模块的输入端可以从该K2个缓存区中与该输入端对应的缓存区中读取数据。
作为又一个可选实施例,该第一输出交换模块的输出端1321至132M与该第二输出交换模块的输出端1341至134M均分别与该装置输出端1021至102M连接,可以理解为对于每个装置输出端,与其连接的第一输出交换模块的输出端输出的数据和第二输出交换模块的输出端输出的数据,需要先进行数据合路处理,然后再通过该装置输出端输出,本申请实施例对此不许限定。
可选地,该输入交换模块110可以为输入交换开关(Input Cross-Bar,IXB),其中,该IXB可以包括N个K选1的选择器(例如:输入交换模块包括10个输入端,16个输出端,则IXB包括10个16选1的选择器)。第一输出交换模块和该第二输出交换模块可以是输出交换开关(Output Cross Bar,OXB),其中,该第一输出交换模块可以包括K1个M选1的选择器(例如:输出交换模块包括8个输入端,12个输出端,则OXB1包括8个12选1的选择器),该第二输出交换模块可以包括K2个M选1的选择器(例如:输入交换模块包括8个输入端,12个输出端,则OXB2包括8个12选1的选择器),本申请实施例对此不作限定。
应理解,缓存可以包括只读存储记忆体(read-only memory,ROM),或者随机存取存储器(random access memory,RAM)。另外,缓存分为双端口缓存和单端口缓存,双端口缓存允许同时对其进行写数据和读数据的操作,单端口缓存在同一时刻仅允许对其进行写数据或读数据的操作。
本申请实施例提供的数据处理装置,缓存区采用双端口缓存能够提高数据处理的并行度。
可选地,如图2所示,本申请实施例提供的数据处理装置还可以包括写仲裁模块140和读仲裁模块150,该写仲裁模块的控制端1411与输入交换模块的控制端1131连接,该读仲裁模块的控制端1511与输入交换模块的控制端1351连接。
该输入交换模块110用于获取该N个装置输入端传输的数据。
该写仲裁模块140用于控制该输入交换模块110将获取到的数据均匀存储至该K个缓存区中。
该读仲裁模块150用于控制该第一输出交换模块131从该K1个缓存区中读取数据,控制该第二输出交换模块132从该K2个缓存区中读取数据,并控制该第一输出交换模块131和该第二输出交换模块132将读取到的数据传输至该M个装置输出端。
可选地,如图2所示,本申请实施例提供的数据处理装置还可以包括第一重排模块161和第二重排模块162,该第一输出交换模块的输出端1321至输出端132M与该第一重排模块的输入端1611至输入端161M一一连接,该第二输出交换模块的输出端1341至输出端134M与该第二重排模块的输入端1631至输入端163M一一连接,该第一重排模块的输出端1621至输出端162M与装置输出端一一连接,该第二重排模块的输出端1641至输出端164M与装置输出端一一连接。
该读仲裁模块150还用于控制该第一输出交换模块131将读取到的数据传输至该第一重排模块161,以及控制该第二输出交换模块132将读取到的数据传输至该第二重排模块162。
该第一重排模块161用于获取该第一输出交换模块131传输的数据,当具有相同目的端口的数据为多个时,对具有相同目的端口的数据进行排序,再按照排序结果传输至相应的装置输出端;
该第二重排模块162用于获取该第二输出交换模块132读取的数据,当具有相同目的端口的数据为多个时,对具有相同目的端口的数据进行排序,再按照排序结果传输至相应的装置输出端。
作为一个可选实施例,该输入交换模块可以获取目标装置输入端输入的目标数据,该写仲裁模块可以控制该输入交换模块将该目标数据存储至目标缓存区中,其中,该目标数据可以为一个或多个数据,本申请实施例对此不作限定。
作为另一个可选实施例,该读仲裁模块可以控制该第一输出交换模块从该K1个缓存区中包括的目标缓存区中读取目标数据,以及控制该第二输出交换模块从该K2个缓存区中包括的目标缓存区中读取目标数据,并控制该第一输出交换模块将读取到的目标数据传输至第一重排模块的目标输入端,以及控制该第二输出交换模块将读取到的目标数据传输至第二重排模块的目标输入端。
应理解,第一重排模块的目标输入端为该第一重排模块中用于将目标数据传输至该第一重排模块的目标输出端的输入端,该目标输出端为该第一重排模块中与该数据的目的端口连接的输出端,该数据的目的端口为该数据处理装置的一个或多个输出端,第二输出交换模块的目标输入端和目标输出端与第一重排模块类似,此处不再赘述。
作为一个可选实施例,该第一重排模块可以获取第一输出交换模块传输的目标数据,当该第一重排模块的存储空间中存在目的端口与该目标数据的目的端口相同的数据为多个时,对目的端口相同的数据进行排序,再按照排序结果将该目的端口相同的数据传输至该目的端口,其中,该M个装置输出端包括该目的端口,第二输出交换模块的处理方法与第一重排模块的处理方法类似,此处不再赘述。
作为另一个可选实施例,该第一重排模块可以获取第一输出交换模块传输的目标数据,当该第一重排模块的存储空间中存在目的端口与该目标数据的目的端口相同的数据为一个时,例如,除了目标数据之外,不存在与目标数据的目的端口相同的其他数据,且目标数据为一个数据,将该目标数据传输至目的端口,其中,该M个装置输出端包括该目的端口,第二输出交换模块的处理方法与第一重排模块的处理方法类似,此处不再赘述。
可选地,第一重排模块和第二重重排模块可以为重排缓冲器,重排缓冲器的每个输入端可以单独对应一个重排缓冲器内的存储空间,且该输入端对应的存储空间还对应序号与该输入端序号相同的输出端,例如,如图2所示,第一重排模块161的输入端1611对应存储空间1,输出端1621也对应存储空间1,即输入端1611接收到的数据存储空间1,输出端1621再对存储空间1的数据进行输出。上述存储空间可以为缓存空间。为方便说明,输入端对应的存储空间可以理解为序号为与该输入端序号相同的输出端的存储空间,通过上述方式可以实现每个存储空间所存储的数据为同一目的端口的数据,本申请实施例对此不作限定。
可选地,上述目标数据可以指一个数据或者多个数据,当目标数据为一个数据时,上述数据处理装置的目标输入端可以为一个装置输入端;上述目标缓存区可以为一个缓存区;上述第一重排模块或第二重排模块的目标输入端可以为一个输入端,上述第一重排模块或第二重排模块的目标输出端可以为一个输出端。这样只需要第一重排模块或第二重排模块的存储空间包括目标数据,以及包括另一个或多个目的端口与目标数据的目的端口相同的数据时,该第一重排模块或该第二重排模块可以对这些数据进行排序,然后按照排序结果将这些数据输出至该目的端口。其中,排序可以是按照先入先出的原则进行排序,即同一个目的端口的数据按照在缓存单元中缓存时间的先后顺序进行输出。
另外,当上述目标数据为多个数据时,上述目标装置输入端可以为该N个装置输入端中的一个或多个,例如,一个装置输入端输入多个数据,或者多个装置输入端各输入一个数据;上述目标缓存区可以为一个或多个缓存区,例如,一个缓存区存储多个数据,或者多个缓存区各存储一个数据;上述第一重排模块或第二重排模块的目标输入端可以为一个输入端,例如,上述目标数据分别存储至第一重排模块和第二重排模块,且该目标数据包括的多个数据的目的端口相同时,第一重排模块和第二重排模块可以分别对存储空间中的数据进行排序,分别按照排序结果输出至该目的端口,或者当上述目标数据包括的多个数据的目的端口不相同时,第一重排模块和第二重排模块可以查看各自的存储空间中是否还存在其它与目标数据的目的端口相同的数据,若有,则分别对不同目的端口的数据进行排序,然后按照排序结果进行输出。
还应理解,该读仲裁模块读取的数据与该写仲裁模块存入的数据可以相同,也可以不同,当读仲裁模块读取的数据为写仲裁模块写入的目标数据时,可以理解为该数据处理装置对目标数据从输入到输出的处理过程,当读仲裁模块读取的数据与写仲裁模块写入的目标数据不同时,可以理解为在写仲裁模块控制输入交换模块将目标数据写入目标缓存的同时,读仲裁模块控制第一输出交换模块和第二输出交换模块本轮从各自对应的缓存区中读取在上一轮已经存储的其他目标数据,本申请实施例对此不作限定。
例如,上述输入交换模块110通过输入端1111接收装置输入端1011传输的目标数据,写仲裁模块140控制该输入交换模块110将该目标数据存储至缓存区120K1(例如缓存区120K1中存储的数据量最小),即输入交换模块110将输入端1111接收到的目标数据从输出端112K1输出至缓存区120K1,读仲裁模块150可以控制第一输出交换模块131的输入端131K1从缓存区120K1中读取该目标数据,同时,读仲裁模块150得知该目标数据的目的端口为装置输出端1022时,该读仲裁模块150将该目标数据从输出端1322传输至第一重排模块161的输入端1612,当第一重排模块161的存储空间还包括另外一个或多个目的端口与该目标数据相同的数据时,第一重排模块161可对这些目的端口为装置输出端1022的多个数据进行排序,再按照排序结果将这些数据通过第一重排模块的输出端1622传输至装置输出端1022。
又例如,例如,上述输入交换模块110通过输入端1111和输入端1113分别接收装置输入端1011和装置输入端1013传输的第一数据和第二数据,写仲裁模块140控制该输入交换模块110将该第一数据存储至缓存区120K1(例如缓存区120K1中存储的数据量最小),将该第二数据存储至缓存区120(K1+1)(例如缓存区120(K1+1)中存储的数据量最小),即输入交换模块110将输入端1111接收到的第一数据从输出端112K1输出至缓存区120K1,将输入端1113接收到的第二数据从输出端112(K1+1)输出至缓存区120(K1+1),读仲裁模块150可以控制第一输出交换模块131的输入端131K1从缓存区120K1中读取该第一数据,控制第二输出交换模块132的输入端1331从缓存区120(K1+1)中读取该第二数据,同时,读仲裁模块150得知该第一数据的目的端口为装置输出端1022,该第二数据的目的端口为装置输出端1023时,该读仲裁模块150可以将该第一数据从第一输出交换模块131的输出端1322传输至第一重排模块161的输入端1612,当第一重排模块161的输入端1612对应的存储空间包括多个数据时,即第一重排模块161的存储空间包括多个目的端口为装置输出端1022时,该第一重排模块161对这些目的端口为装置输出端1022的多个数据进行排序,并按照排序结果将这些数据通过第一重排模块161的输出端1622传输至装置输出端1022;该读仲裁模块150还可以将该第二数据从第二输出交换模块132的输出端1343传输第二重排模块162的输入端1633,当第二重排模块162的输入端1633对应的存储空间包括多个数据时,即第二重排模块162的存储空间包括多个目的端口为装置输出端1023时,该第二重排模块162对这些目的端口为装置输出端1023的多个数据进行排序,并按照排序结果将这些数据通过第二重排模块162的输出端1643传输至装置输出端1023。
可选地,该第一数据的目的端口与该第二数据的目的端口可以相同,若该第一数据与给第二数据的目的端口均为装置输出端1022,则该读仲裁模块150可以将从第一输出交换模块131的输出端1322经过第一重排模块161排序后传输的第一数据,和从第二输出交换模块132的输出端1343经过第二重排模块162排序后传输的第二数据,经过合并以后传输至装置输出端1022,本申请实施例对此不作限定。
综上所述,本申请实施例提供的数据处理装置可以实现通过多个输出交换模块对输出数据进行输出交换的计算,能够简化输出交换模块的复杂度,从而提高数据处理效率。
此外,本申请实施例提供的数据处理装置能够通过多个重排模块同时从K个缓存区中读取数据并输出至相应的装置输出端,通过缓存管理以及输出交换模块从缓存区中读取数据和重排模块向装置输出端输出数据的速度匹配,能够提高数据读取的带宽。
可选地,如图3所示,该数据处理装置还可以包括缓存管理模块170,该缓存管理模块的地址端1711与该读仲裁模块的地址端1421连接,该缓存管理模块的地址端1721与该写仲裁模块的地址端1521连接。
该写仲裁模块140用于从该缓存管理模块170获取该K个缓存区中的第一缓存区的地址,控制该输入交换模块110将获取到的第一数据存储至该第一缓存区中。
该读仲裁模块150用于控制该第一输出交换模块131读取该K1个缓存区中的第二缓存区的地址中存储的第二数据,将该第二缓存区的地址发送给该缓存管理模块,并控制该第一输出交换模块通过该第一重排模块将该第二数据传输至该M个装置输出端中的第一装置输出端,其中该第一装置输出端为该第二数据的目的端口。
可选地,第一缓存区可以为该K个缓存区中的任意一个或多个缓存区,例如,该第一缓存区可以为目标数据的目标缓存区。
可选地,该第一数据或第二数据可以为该输入交换模块获取到的目标数据的全部或部分,本申请实施例对此不作限定。
可选地,该第一缓存区与该第二缓存区可以相同或不同,该第一数据与该第二数据也可以相同或者不同,本申请实施例对此不作限定。
作为一个可选实施例,若第一缓存区与第二缓存区相同,且第一数据与第二数据相同,即在同一轮数据处理中,读仲裁模块读取的数据为写仲裁模块写入的目标数据,该写仲裁模块可以获取该K个缓存区中的目标缓存区的地址,控制该输入交换模块将获取到的目标数据存储至目标缓存区中,该读仲裁模块可以控制第一输出交换模块和/或第二输出交换模块分别从各自对应的缓存区中的目标缓存区中读取目标数据,并分别通过各自对应的重排模块将目标数据输出至目标数据相应的目的端口。
作为另一个可选实施例,若第一缓存区与第二缓存区不相同,且第一数据与第二数据不相同,即在同一轮数据处理中,读仲裁模块读取的数据与写仲裁模块写入的数据不同,该写仲裁模块可以获取该K个缓存区中的第一缓存区的地址,控制该输入交换模块将获取到的第一数据存储至第一缓存区中,该读仲裁模块可以控制第一输出交换模块从其对应的缓存区中读取第二数据,和/或控制第二输出交换模块从其对应的缓存区中读取第三数据,并通过与第一输出交换模块对应的第一重排模块将第二数据输出至第二数据相应的目的端口,和/或通过与第二输出交换模块对应的第二重排模块将第三数据输出至第三数据相应的目的端口。
可选地,如图3所示,若该第一缓存区与该第二缓存区相同(如图3所示,第一缓存区与第二缓存区均为缓存区1201)且该第一缓存区包括多个单端口的缓存单元(如图3所示,缓存区1201包括单端口的缓存单元A与缓存单元B)。
该写仲裁模块140可以从该缓存管理模块170获取该第一缓存区包括的多个缓存单元中第一缓存单元的地址,控制该输入交换模块110将该第一数据存储至该第一缓存单元的地址中。
该读仲裁模块150可以控制该第一输出交换模块131读取该多个缓存单元中除该第一缓存单元以外的第二缓存单元的地址中存储的该第二数据,将该第二缓存单元的地址发送给该缓存管理模块170,并将该第二数据传输至该第一装置输出端,该第一装置输出端为该第二数据的目的端口。
应理解,由于单端口缓存在同一时刻只能允许读操作或者写操作,因此,当写仲裁模块在对缓存单元A进行写操作时,读仲裁模块就不能同时对该缓存单元A进行读操作。
还应理解,如果缓存区为双端口单元,缓存管理模块单独管理各个缓存区的地址,由于写仲裁模块控制输入交换模块输入的数据是写在从缓存管理模块获取的地址的存储空间中,而读仲裁模块从缓存管理模块读取数据后,会将读取的数据的存储地址发送给缓存管理模块中,这样缓存管理模块就可以知道各个缓存区中哪些地址存储了数据,哪些地址没有存储数据,从而实现对各个缓存区的地址的管理。
另外,如果缓存区包括多个单端口单元,缓存管理模块单独管理各个缓存区中缓存单元的地址,由于写仲裁模块控制输入交换模块输入的数据是写在从缓存管理模块获取的地址的存储空间中,而读仲裁模块从缓存管理模块读取数据后,会将读取的数据的存储地址发送给缓存管理模块中,这样缓存管理模块就可以知道各个缓存区中各个缓存单元的哪些地址存储了数据,哪些地址没有存储数据,从而实现对各个缓存单元的地址的管理。
可选地,本申请实施例提供的数据处理装置可以预先设置读仲裁模块和写仲裁模块的操作优先级,并根据该读仲裁模块和该写仲裁模块各自的优先级,管理缓存区的读操作和写操作。
作为一个可选实施例,若该写仲裁模块存储数据的优先级高于该读仲裁模块读取数据的优先级;该写仲裁模块可以统计该多个缓存单元中每个缓存单元的数据存储状态,根据该多个缓存单元中每个缓存单元的数据存储状态,将该多个缓存单元中数据存储量小于第一阈值缓存单元作为该第一缓存单元,并向该缓存管理模块发送用于请求该第一缓存单元的地址的第一请求信息;该缓存管理模块可以根据该第一请求信息向该写仲裁模块发送该第一缓存单元的写地址,该第一缓存单元的写地址为该第一缓存单元中空闲存储空间的地址;该写仲裁模块可以获取该缓存管理模块传输的该写地址,控制该输入交换模块将该第一数据存储至该写地址中。
可选地,由于写仲裁模块从K个缓存区中选择第一缓存区中的第一缓存单元作为目标缓存单元,将第一数据存储至第一缓存单元,这样可以避免将第一数据存储至不存才空闲存储空间的缓存单元。另外,写仲裁模块可以通过负载均衡算法或者最小负载优先算法等算法从K个缓存区中选择存在空闲存储空间的第一缓存区,并从第一缓存区中确定存在空闲存储空间的第一缓存单元存储第一数据。
其中,上述采用负载均衡算法或者最小负载优先算法可以是从上述K个缓存区中选择数据存储量最少的缓存单元作为上述第一缓存区,或者从上述K个缓存区中,按照数据存储量从多至少排序中最后一个缓存区作为第一缓存区,上述采用负载均衡算法或者最小负载优先算法可以是从上述第一缓存区中包括的多个缓存单元中选择数据存储量最少的缓存单元作为上述第一缓存单元,或者从上述第一缓存区中包括的多个缓存单元中,按照数据存储量从多至少排序中最后一个缓存单元作为第一缓存单元,本申请实施例从对此不作限定。
可选地,如图3所示,若该写仲裁模块140的反馈端1431与该读仲裁模块的反馈端1531连接,则该写仲裁模块140还用于向该读仲裁模块150发送用于反馈该第一缓存单元当前正在存储数据的第一反馈信息。
该读仲裁模块150还用于根据该第一反馈信息,将该多个缓存单元中除该第一缓存单元以外、且数据存储量大于第二阈值的缓存单元作为该第二缓存单元,控制该第一输出交换模块读取该第二缓存单元中存储的该第二数据,将该第二缓存单元的地址发送给该缓存管理模块170,并将该第二数据传输至该第一装置输出端,该第一装置输出端为该第二数据的目的端口。
作为另一个可选实施例,若该读仲裁模块读取数据的优先级高于该写仲裁模块存储数据的优先级;该读仲裁模块可以统计该多个缓存单元中每个缓存单元的数据存储状态,根据该多个缓存单元中每个缓存单元的数据存储状态,将该多个缓存单元中数据存储量大于第三阈值的缓存单元作为该第二缓存单元,并向该缓存管理模块发送用于请求该第二缓存单元的地址的第二请求信息;该缓存管理模块可以根据该第二请求信息向该读仲裁模块发送该第二缓存单元的读地址,该第二缓存单元的读地址为该第二缓存单元中存储该第二数据的存储空间的地址;该读仲裁模块可以获取该缓存管理模块传输的该读地址,控制该第一输出交换模块从该读地址中读取该第二数据。
可选地,如图3所示,若该写仲裁模块140的反馈端1431与该读仲裁模块的反馈端1531连接,则该读仲裁模块150还用于向该写仲裁模块140发送用于反馈该第二缓存单元当前正在读取数据的第二反馈信息。
该写仲裁模块140还用于根据该第二反馈信息,将该多个缓存单元中除该第二缓存外、且数据存储量小于第四阈值的缓存单元作为该第一缓存单元,控制该输入交换模块110将该第一数据存储至该第一缓存单元的地址中。
可选地,该读仲裁模块150还用于控制该第二输出交换模块162读取该K2个缓存区中的第三缓存区中存储的第三数据,将该第三数据传输至该M个装置输出端的第二装置输出端,并将该第三缓存区的地址发送给该缓存管理模块170,该第二装置输出端为该第三数据的目的端口。
可选地,如图4所示,本申请实施例提供的数据处理装置还包括队列管理模块180,该队列管理模块的地址端1811与该写仲裁模块的地址端1441连接,该队列管理模块的地址端1821与该读仲裁的地址端1521连接;
该队列管理模块用于获取该写仲裁模块传输的数据信息,该数据信息包括该写仲裁模块获取到的数据的源端口、目的端口和存储该数据的存储地址,根据该数据信息生成信源描述符CD,并将该CD加入输出队列,通过该输出队列将该CD输出给读仲裁模块,该输出队列的源端口为该数据的源端口,该输出队列的目的端口为该数据的目的端口,该N个装置输入端包括该数据的源端口,该N个装置输出端包括该数据的目的端口;
该读仲裁模块用于获取队列管理模块传输的该CD,根据该CD控制该输出交换模块读取该存储地址中存储的该数据,并将该存储地址发送给该缓存管理模块,控制与该存储地址对应的输出交换模块将该数据输出到该数据的目的端口。
可选地,当写仲裁模块获取到的数据为多个时,写仲裁模块可以为每个数据发送上述数据信息,这样队列管理模块可以为每个数据生成CD。例如,若写仲裁模块获取到装置输入端1013输入的第一数据和装置输入端1014输入的第二数据,其中,第一数据的目的端口为装置输出端1022,第二数据的目的端口为装置输出端1023时,队列管理模块可以将第一数据的CD加入第二输出队列,其中,第二输出队列的输入端为装置输入端1013,第二输出队列的输出端为装置输出端1022,队列管理模块可以将第二数据的CD加入第三输出队列,其中,第三输出队列的输入端为装置输入端1014,第三输出队列的输出端为装置输出端1023。
可选地,队列管理模块管理的队列可以按照先入先出的原则进行管理,另外队列管理模块可以包括N乘以M个输出队列,例如,包括源端口为装置输入端1011,目的端口为装置输出端1021的输出队列,包括源端口为装置输入端1011,目的端口为装置输出端1022的输出队列,包括源端口为装置输入端1012,目的端口为装置输出端1022的输出队列,包括源端口为装置输入端1012,目的端口为装置输出端1022的输出队列,等输出队列,此处不一一列举。当然这些输出队列可以预先设置,也可以是当任何一个输出队列对应的第一个数据到来,设置的输出队列,本申请实施例对此不作限定。
图5示出了本申请实施例提供的数据处理方法100的示意性流程图,该方法100例如可以本申请实施例提供的数据处理装置执行。
S101,接收目标数据;
S102,写仲裁模块发送目标数据写入请求;
S103,写仲裁模块从K个缓存区中选择目标缓存区,并向缓存管理模块获取目标缓存区的地址;
S104,写仲裁模块控制输入交换模块将目标数据写入目标缓存区;
S105,写仲裁模块将目标数据的源端口、目的端口和地址信息发送给队列管理模块;
S106,队列管理模块生成目标数据的CD,并将该CD加入相应的输出队列;
S107,队列管理模块向读仲裁模块输出上述CD;
S108,读仲裁模块向第一输出交换模块和/或第二输出交换模块发送目标数据的读取请求;
S109,第一输出交换模块和/或第二输出交换模块读取目标缓存区中的目标数据,并传输至相应的重排模块进行排序;
S110,读仲裁模块将上述地址信息发送给缓存管理模块;
S111,第一重排模块和/或第二重排模块完成排序后,将目标数据从相应的目的端口输出。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种数据处理装置,其特征在于,所述数据处理装置包括:N个装置输入端、输入交换模块、K个缓存区、第一输出交换模块、第二输出交换模块和M个装置输出端,N和M均为大于1的整数,其中,
所述输入交换模块的N个输入端与所述N个装置输入端一一连接,所述输入交换模块的K个输出端分别与所述K个缓存区对应;
所述第一输出交换模块的K1个输入端分别与所述K个缓存区中的K1个缓存区对应,所述第一输出交换模块的M个输出端与所述M个装置输出端一一连接,K1大于或等于1;
所述第二输出交换模块的K2个输入端分别与所述K个缓存区中除所述K1个缓存区外的K2个缓存区对应,所述第二输出交换模块的M个输出端与所述M个装置输出端一一连接,K2大于或等于1,且所述K1个缓存区不同于所述K2个缓存区。
2.根据权利要求1所述的数据处理装置,其特征在于,
所述输入交换模块用于获取所述N个装置输入端传输的数据;
所述数据处理装置还包括:写仲裁模块和读仲裁模块;
所述写仲裁模块的控制端与所述输入交换模块的控制端连接,所述写仲裁模块用于控制所述输入交换模块将获取到的数据均匀存储至所述K个缓存区中;
所述读仲裁模块的第一控制端与所述第一输出交换模块的控制端连接,所述读仲裁模块的第二控制端与所述第二输出交换模块的控制端连接,所述读仲裁模块用于控制所述第一输出交换模块从所述K1个缓存区中读取数据,控制所述第二输出交换模块从所述K2个缓存区中读取数据,并控制所述第一输出交换模块和所述第二输出交换模块分别将读取到的数据传输至所述M个装置输出端。
3.根据权利要求2所述的数据处理装置,其特征在于,所述数据处理装置还包括:缓存管理模块,所述缓存管理模块的第一地址端与所述读仲裁模块的第一地址端连接,所述缓存管理模块的第二地址端与所述写仲裁模块的第一地址端连接;
所述写仲裁模块用于从所述缓存管理模块获取所述K个缓存区中的第一缓存区的地址,控制所述输入交换模块将获取到的第一数据存储至所述第一缓存区中;
所述读仲裁模块用于控制所述第一输出交换模块读取所述K1个缓存区中的第二缓存区的地址中存储的第二数据,将所述第二缓存区的地址发送给所述缓存管理模块,并将所述第二数据传输至所述M个装置输出端中的第一装置输出端,所述第一装置输出端为所述第二数据的目的端口。
4.根据权利要求3所述的数据处理装置,其特征在于,所述第一缓存区与所述第二缓存区相同,所述第一缓存区包括多个单端口的缓存单元,
所述写仲裁模块用于从所述缓存管理模块获取所述第一缓存区包括的多个缓存单元中第一缓存单元的地址,控制所述输入交换模块将所述第一数据存储至所述第一缓存单元的地址中;
所述读仲裁模块用于控制所述第一输出交换模块读取所述多个缓存单元中除所述第一缓存单元以外的第二缓存单元的地址中存储的所述第二数据,将所述第二缓存单元的地址发送给所述缓存管理模块,并将所述第二数据传输至所述第一装置输出端。
5.根据权利要求4所述的数据处理装置,其特征在于,若所述写仲裁模块存储数据的优先级高于所述读仲裁模块读取数据的优先级;
所述写仲裁模块用于统计所述多个缓存单元中每个缓存单元的数据存储状态,根据所述多个缓存单元中每个缓存单元的数据存储状态,将所述多个缓存单元中数据存储量小于第一阈值缓存单元作为所述第一缓存单元,并向所述缓存管理模块发送用于请求所述第一缓存单元的地址的第一请求信息;
所述缓存管理模块用于根据所述第一请求信息向所述写仲裁模块发送所述第一缓存单元的写地址,所述第一缓存单元的写地址为所述第一缓存单元中空闲存储空间的地址;
所述写仲裁模块还用于获取所述缓存管理模块传输的所述写地址,控制所述输入交换模块将所述第一数据存储至所述写地址中。
6.根据权利要求5所述的数据处理装置,其特征在于,所述写仲裁模块的反馈端与所述读仲裁模块的反馈端连接;
所述写仲裁模块还用于向所述读仲裁模块发送用于反馈所述第一缓存单元当前正在存储数据的第一反馈信息;
所述读仲裁模块还用于根据所述第一反馈信息,将所述多个缓存单元中除所述第一缓存单元以外、且数据存储量大于第二阈值的缓存单元作为所述第二缓存单元,控制所述第一输出交换模块读取所述第二缓存单元中存储的所述第二数据,将所述第二缓存单元的地址发送给所述缓存管理模块,并将所述第二数据传输至所述第一装置输出端。
7.根据权利要求4所述的数据处理装置,其特征在于,若所述读仲裁模块读取数据的优先级高于所述写仲裁模块存储数据的优先级;
所述读仲裁模块用于统计所述多个缓存单元中每个缓存单元的数据存储状态,根据所述多个缓存单元中每个缓存单元的数据存储状态,将所述多个缓存单元中数据存储量大于第三阈值的缓存单元作为所述第二缓存单元,并向所述缓存管理模块发送用于请求所述第二缓存单元的地址的第二请求信息;
所述缓存管理模块用于根据所述第二请求信息向所述读仲裁模块发送所述第二缓存单元的读地址,所述第二缓存单元的读地址为所述第二缓存单元中存储所述第二数据的存储空间的地址;
所述读仲裁模块还用于获取所述缓存管理模块传输的所述读地址,控制所述第一输出交换模块从所述读地址中读取所述第二数据。
8.根据权利要求7所述的数据处理装置,其特征在于,所述写仲裁模块的反馈端与所述读仲裁模块的反馈端连接;
所述读仲裁模块还用于向所述写仲裁模块发送用于反馈所述第二缓存单元当前正在读取数据的第二反馈信息;
所述写仲裁模块还用于根据所述第二反馈信息,将所述多个缓存单元中除所述第二缓存外、且数据存储量小于第四阈值的缓存单元作为所述第一缓存单元,控制所述输入交换模块将所述第一数据存储至所述第一缓存单元的地址中。
9.根据权利要求4至8中任一项所述的数据处理装置,其特征在于,所述读仲裁模块还用于控制所述第二输出交换模块读取所述K2个缓存区中的第三缓存区中存储的第三数据,将所述第三数据传输至所述M个装置输出端的第二装置输出端,并将所述第三缓存区的地址发送给所述缓存管理模块,所述第二装置输出端为所述第三数据的目的端口。
10.根据权利要求2至9中任一项所述的数据处理装置,其特征在于,所述数据处理装置还包括:第一重排模块和第二重排模块,其中:
所述第一输出交换模块的M个输出端与所述第一重排模块的M个输入端连接,所述第二输出交换模块的M个输出端与所述第二重排模块的M个输入端连接;
所述第一重排模块的M个输出端与所述M个装置输出端连接,所述第二重排模块的M个输出端与所述M个装置输出端连接;
所述读仲裁模块还用于控制所述第一输出交换模块将读取到的数据传输至所述第一重排模块,以及控制所述第二输出交换模块将读取到的数据传输至所述第二重排模块;
所述第一重排模块用于获取所述第一输出交换模块传输的数据,当具有相同目的端口的数据为多个时,对具有相同目的端口的数据进行排序,再按照排序结果传输至相应的装置输出端;
所述第二重排模块用于获取所述第二输出交换模块读取的数据,具有相同目的端口的数据为多个时,对具有相同目的端口的数据进行排序,再按照排序结果传输至相应的装置输出端。
11.根据权利要求3至10中任一项所述的数据处理装置,其特征在于,所述数据处理装置还包括队列管理模块,所述队列管理模块的第一地址端与所述写仲裁模块的第二地址端连接,所述队列管理模块的第二地址端与所述读仲裁的第二地址端连接;
所述队列管理模块用于获取所述写仲裁模块传输的数据信息,所述数据信息包括所述写仲裁模块获取到的数据的源端口、目的端口和存储所述数据的存储地址,根据所述数据信息生成信源描述符CD,并将所述CD加入输出队列,通过所述输出队列将所述CD输出给读仲裁模块,所述输出队列的源端口为所述数据的源端口,所述输出队列的目的端口为所述数据的目的端口,所述N个装置输入端包括所述数据的源端口,所述N个装置输出端包括所述数据的目的端口;
所述读仲裁模块用于获取队列管理模块传输的所述CD,根据所述CD控制所述输出交换模块读取所述存储地址中存储的所述数据,并将所述存储地址发送给所述缓存管理模块,控制与所述存储地址对应的输出交换模块将所述数据输出到所述数据的目的端口。
12.一种终端,其特征在于,包括如权利要求1至10中任一项所述的数据处理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710112079.0A CN106886498B (zh) | 2017-02-28 | 2017-02-28 | 数据处理装置和终端 |
EP18157657.0A EP3367622B1 (en) | 2017-02-28 | 2018-02-20 | Data processing apparatus |
US15/907,993 US10917361B2 (en) | 2017-02-28 | 2018-02-28 | Data processing apparatus and terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710112079.0A CN106886498B (zh) | 2017-02-28 | 2017-02-28 | 数据处理装置和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106886498A true CN106886498A (zh) | 2017-06-23 |
CN106886498B CN106886498B (zh) | 2020-06-26 |
Family
ID=59178994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710112079.0A Active CN106886498B (zh) | 2017-02-28 | 2017-02-28 | 数据处理装置和终端 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10917361B2 (zh) |
EP (1) | EP3367622B1 (zh) |
CN (1) | CN106886498B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861895A (zh) * | 2017-10-23 | 2018-03-30 | 深圳市楠菲微电子有限公司 | 基于分布式仲裁的可编程输入输出pio写合并装置和方法 |
WO2019232694A1 (zh) * | 2018-06-05 | 2019-12-12 | 华为技术有限公司 | 队列控制方法、装置及存储介质 |
CN111813759A (zh) * | 2020-07-13 | 2020-10-23 | 北京九维数安科技有限公司 | 小包数据并行处理装置和方法 |
CN112214427A (zh) * | 2020-10-10 | 2021-01-12 | 中科声龙科技发展(北京)有限公司 | 缓存结构、工作量证明运算芯片电路及其数据调用方法 |
CN113642724A (zh) * | 2021-08-11 | 2021-11-12 | 西安微电子技术研究所 | 一种高带宽存储的cnn加速器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094691B (zh) * | 2014-05-21 | 2019-05-21 | 华为技术有限公司 | 一种数据操作的方法、设备和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152420A1 (en) * | 2001-04-13 | 2002-10-17 | Shailender Chaudhry | Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step |
CN1679281A (zh) * | 2002-08-24 | 2005-10-05 | 思科技术公司 | 分组处理引擎 |
CN103955436A (zh) * | 2014-04-30 | 2014-07-30 | 华为技术有限公司 | 一种数据处理装置和终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7095744B2 (en) * | 2000-11-22 | 2006-08-22 | Dune Networks | Method and system for switching variable sized packets |
JP3914771B2 (ja) * | 2002-01-09 | 2007-05-16 | 株式会社日立製作所 | パケット通信装置及びパケットデータ転送制御方法 |
US7304999B2 (en) * | 2002-08-24 | 2007-12-04 | Cisco Technology Inc. | Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines |
US8078906B2 (en) * | 2008-08-21 | 2011-12-13 | Infinidat, Ltd. | Grid storage system and method of operating thereof |
CN201726481U (zh) * | 2010-05-14 | 2011-01-26 | 陈华牧 | 视频信号合成或分割处理装置 |
-
2017
- 2017-02-28 CN CN201710112079.0A patent/CN106886498B/zh active Active
-
2018
- 2018-02-20 EP EP18157657.0A patent/EP3367622B1/en active Active
- 2018-02-28 US US15/907,993 patent/US10917361B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152420A1 (en) * | 2001-04-13 | 2002-10-17 | Shailender Chaudhry | Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step |
CN1679281A (zh) * | 2002-08-24 | 2005-10-05 | 思科技术公司 | 分组处理引擎 |
CN103955436A (zh) * | 2014-04-30 | 2014-07-30 | 华为技术有限公司 | 一种数据处理装置和终端 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861895A (zh) * | 2017-10-23 | 2018-03-30 | 深圳市楠菲微电子有限公司 | 基于分布式仲裁的可编程输入输出pio写合并装置和方法 |
WO2019232694A1 (zh) * | 2018-06-05 | 2019-12-12 | 华为技术有限公司 | 队列控制方法、装置及存储介质 |
CN111813759A (zh) * | 2020-07-13 | 2020-10-23 | 北京九维数安科技有限公司 | 小包数据并行处理装置和方法 |
CN112214427A (zh) * | 2020-10-10 | 2021-01-12 | 中科声龙科技发展(北京)有限公司 | 缓存结构、工作量证明运算芯片电路及其数据调用方法 |
CN112214427B (zh) * | 2020-10-10 | 2022-02-11 | 中科声龙科技发展(北京)有限公司 | 缓存结构、工作量证明运算芯片电路及其数据调用方法 |
CN113642724A (zh) * | 2021-08-11 | 2021-11-12 | 西安微电子技术研究所 | 一种高带宽存储的cnn加速器 |
CN113642724B (zh) * | 2021-08-11 | 2023-08-01 | 西安微电子技术研究所 | 一种高带宽存储的cnn加速器 |
Also Published As
Publication number | Publication date |
---|---|
EP3367622A1 (en) | 2018-08-29 |
US20180248816A1 (en) | 2018-08-30 |
CN106886498B (zh) | 2020-06-26 |
US10917361B2 (en) | 2021-02-09 |
EP3367622B1 (en) | 2019-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106886498A (zh) | 数据处理装置和终端 | |
CN101873253B (zh) | 带缓冲的纵横式交换机系统 | |
KR100933917B1 (ko) | 네트워크 스위치에서의 대역폭 보장 및 과부하 보호 방법및 장치 | |
CN103348640B (zh) | 中继装置 | |
EP1573950B1 (en) | Apparatus and method to switch packets using a switch fabric with memory | |
CN103955436B (zh) | 一种数据处理装置和终端 | |
US9602436B2 (en) | Switching device | |
WO1993007699A2 (en) | Broadband input buffered atm switch | |
US11677676B1 (en) | Shared traffic manager | |
CN101695051A (zh) | 一种用于缓冲Crossbar的队列长度均衡调度方法 | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
CN103297350B (zh) | 一种信元交换系统的实现方法和交换设备 | |
CN100421420C (zh) | 一种调度纵横式交换矩阵中变长数据包队列的方法 | |
US10021035B1 (en) | Queuing methods and apparatus in a network device | |
CN101695052B (zh) | 一种交叉点小缓存的高性能crossbar调度方法 | |
US10846225B1 (en) | Buffer read optimizations in a network device | |
JP2003069630A (ja) | データ転送方法、データ転送装置及びプログラム | |
CN106375249A (zh) | 交换芯片数据架构、其控制方法及控制系统 | |
KR102384685B1 (ko) | 비균일 트래픽을 고려한 중앙 집중형 스케줄링 장치 및 방법 | |
US10742558B1 (en) | Traffic manager resource sharing | |
CN112073336A (zh) | 基于AXI4 Stream接口协议的高性能数据交换系统及方法 | |
US7486687B2 (en) | Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots | |
US8670454B2 (en) | Dynamic assignment of data to switch-ingress buffers | |
CN105164984B (zh) | 保持并行处理网络设备中的分组顺序的方法和设备 | |
Hu et al. | Integrated uni-and multicast traffic scheduling in buffered crossbar switches |
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 |