CN107977232B - 一种数据处理方法、数据处理电路和网络设备 - Google Patents
一种数据处理方法、数据处理电路和网络设备 Download PDFInfo
- Publication number
- CN107977232B CN107977232B CN201711001602.9A CN201711001602A CN107977232B CN 107977232 B CN107977232 B CN 107977232B CN 201711001602 A CN201711001602 A CN 201711001602A CN 107977232 B CN107977232 B CN 107977232B
- Authority
- CN
- China
- Prior art keywords
- channel
- data
- operand
- command
- determining
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 44
- 238000003672 processing method Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000004891 communication Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Computer And Data Communications (AREA)
Abstract
一种数据处理方法,包括:接收处理器核心发送的指令,指令包括操作数;根据指令获取操作码;将操作码存入命令通道,将操作数存入数据通道;从命令通道读取操作码,从数据通道读取操作数;根据操作码和操作数在存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。本申请能够利用排队机制和原子操作解决数据竞争问题,提高网络设备的数据处理性能。本申请还提供一种能够实现上述方法的数据处理电路和网络设备。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据处理方法、数据处理电路和网络设备。
背景技术
原子操作是指一个独立不可分割的操作。现有处理器可以是具有单个处理器核心(core)的单核处理器,或具有多个core的多核处理器。在单核系统中,单个机器指令可以看成是原子操作。在多核设备中多指令流是并行的,一个核在执行一个指令时,其他核同时执行的指令有可能操作同一存储单元,从而出现数据竞争现象。
在多核设备中,通常使用锁机制来解决数据竞争问题。多核对同一个存储空间的操作方法大致如下:假设多核设备包括4个core,分别为core1、core2、core3和core4。core1处理存储空间A的数据时,首先查询存储空间A的锁状态,若锁空闲,则抢占存储空间A的锁,从存储空间A读取数据,读取完成后释放锁。而其他处理核心(如core2、core3或core4)在此期间如果要访问存储空间A,需要等待core1释放锁后才能竞争锁。若不空闲,则循环查询锁状态,直至锁空闲,才能抢占锁,执行后续操作。
当锁被一个core占用时,其他core循环判断锁状态,而不能执行其他操作,以至于core的数据处理能力没有得到合理利用,导致多核设备的数据处理效率很低。
发明内容
有鉴于此,本申请提供一种数据处理方法、数据处理电路和网络设备,能够利用排队机制和原子操作解决数据竞争问题,从而提高多核网络设备的数据处理性能。
第一方面提供一种数据处理方法,包括:接收处理器核心发送的指令,根据指令获取操作码;将操作码存入命令通道,将指令包括的操作数存入数据通道;从命令通道读取操作码,从数据通道读取操作数;根据操作码和操作数执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。
依此实施,数据处理电路能够将多个core下发的指令,存储在命令通道和数据通道中,然后按照指令顺序执行,以及通过硬件实现原子操作代替锁机制,从而解决多个指令同时执行时形成的数据竞争,避免了其他core循环抢锁造成的数据处理能力的浪费。
在一种可能的实现方式中,在指令包括目标地址的情况下,根据指令获取操作码具体为:根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与操作码的对应关系和目标地址段,获取操作码。依此实施,只需要向数据处理电路提供地址,就能快速确定地址对应的操作码。这样无需在程序的指令中写入操作码,能够统一操作接口,可以避免因错误操作码导致的程序故障,提高了程序的可靠性。
在另一种可能的实现方式中,在命令通道的数量为多个,数据通道的数量为多个的情况下,在将操作码存入命令通道,将操作数存入数据通道之前,确定操作码对应的命令通道,以及,确定操作数对应的数据通道。依此实施,在多个命令通道和数据通道的情况下,可以为操作码和操作数选择命令通道和数据通道进行存储。这样通过多通道和排队机制执行大量指令,可以避免一个core占用存储空间时,其他core循环判断造成的数据处理能力的浪费。
在另一种可能的实现方式中,在指令包括目标地址的情况下,确定操作码对应的命令通道具体为:根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系,确定目标地址段对应的命令通道为操作码对应的命令通道;确定操作数对应的数据通道具体为:根据预设的地址段与数据通道的对应关系,确定目标地址段对应的数据通道为操作数对应的数据通道。依此实施,数据处理电路获取指令包括的地址后,可以根据地址所属的地址段将操作码存入相应的命令通道,以及将操作数存入相应的数据通道。这样提供了一种将操作码和操作数存入通道的方法。
在另一种可能的实现方式中,确定操作码对应的命令通道具体为:根据预设的数据块大小与通道号的对应关系,确定操作数对应的通道号;根据通道号,确定操作码对应的命令通道;确定操作数对应的数据通道具体为:根据通道号,确定操作数对应的数据通道。依此实施,数据处理电路能根据数据块大小,将操作码存入相应的命令通道,以及将操作数存入相应的数据通道。这样能够提供了另外一种存储方式,方案实施更具灵活性。
在另一种可能的实现方式中,在指令包括目标地址的情况下,确定操作码对应的命令通道具体为:将目标地址进行哈希运算得到哈希值,将哈希值与命令通道的通道数进行取模运算得到通道号,根据通道号确定操作码对应的命令通道;确定操作数对应的数据通道具体为:根据通道号确定操作数对应的数据通道。这样提供了另外一种存储方式,方案实施更具灵活性。
第二方面提供一种数据处理电路,包括:通信接口、控制器、命令通道、数据通道、存储器和状态机,控制器分别通过电路与通信接口、命令通道、数据通道、存储器和状态机相连;通信接口接收处理器核心发送的指令后,控制器根据指令获取操作码;将操作码存入命令通道,将指令包括的操作数存入数据通道;然后,从命令通道读取操作码,从数据通道读取操作数;根据操作码和操作数在存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。其中,命令通道用于存储操作码;数据通道用于存储操作数。控制器是指组合逻辑控制器,又称硬布线控制器。
在一种可能的实现方式中,在指令包括目标地址的情况下,控制器具体用于根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系和目标地址段,获取操作码。
在另一种可能的实现方式中,在命令通道的数量为多个,数据通道的数量为多个的情况下,控制器还用于确定操作码对应的命令通道,以及,确定操作数对应的数据通道。
在另一种可能的实现方式中,在指令包括目标地址的情况下,控制器具体用于根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系,确定目标地址段对应的命令通道为操作码对应的命令通道;根据预设的地址段与数据通道的对应关系,确定目标地址段对应的数据通道为操作数对应的数据通道。
在另一种可能的实现方式中,控制器具体用于根据预设的数据块大小与通道号的对应关系,确定操作数对应的通道号;根据通道号,确定操作码对应的命令通道;根据通道号,确定操作数对应的数据通道。
在另一种可能的实现方式中,在指令包括目标地址的情况下,控制器具体用于将目标地址进行哈希运算得到哈希值,将哈希值与命令通道的通道数进行取模运算得到通道号,根据通道号确定操作码对应的命令通道;根据通道号确定操作数对应的数据通道。
第三方面提供一种芯片系统,该芯片系统包括多个处理器核心,用于支持网络设备实现上述方面中所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上实施例可以看出,接收处理器核心发送的指令,根据指令获取操作码;将操作码存入命令通道,将指令包括的操作数存入数据通道;从命令通道读取操作码,从数据通道读取操作数;根据操作码和操作数执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。在多个core下发指令的情况下,各core下发的指令存储在通道中,然后依次读取指令执行,这样可避免多个core循环查询锁状态的开销,在此期间可以执行其他操作,从而提升多核设备的数据处理性能。并且,数据处理电路可以通过控制状态机的状态,维护原子操作状态,通过硬件实现原子操作,以使得多个指令能够分开执行,从而解决多指令并行时产生的数据竞争。
附图说明
图1为本申请实施例中数据处理电路的一个示意图;
图2为本申请实施例中数据处理方法的一个示意图;
图3为本申请实施例中数据处理方法的另一个示意图;
图4为本申请实施例中网络设备的一个示意图。
具体实施方式
首先对本申请应用的数据处理电路进行介绍,请参阅图1,本申请提供的数据处理电路100的一个实施例包括:
通信接口101、控制器102、命令通道103、数据通道104、存储器105和状态机106,控制器102分别通过电路与通信接口101、命令通道103、数据通道104、存储器105和状态机106相连;
通信接口101,用于接收处理器核心发送的指令,指令包括操作数;
控制器102,用于根据指令获取操作码;确定操作码对应的命令通道,以及,确定操作数对应的数据通道;将操作码存入命令通道,将操作数存入数据通道;
命令通道103,用于存储操作码;
数据通道104,用于存储操作数;
控制器102,还用于从命令通道103读取操作码,从数据通道104读取操作数;根据操作码和操作数在存储器105中执行原子操作,以及在原子操作期间将状态机106的状态设为不可打断状态。
其中,控制器是指组合逻辑控制器,又称硬布线控制器。
其中,控制器102可以将处理器核心发送的指令转换成实际执行的操作指令,操作指令包括操作码和操作数,操作码表示操作指令对应的操作类型。操作数表示执行操作所需要数据的来源。操作数可以是立即数或者地址。
命令通道和数据通道均为由硬件实现的先入先出队列(First Input FirstOutput,FIFO)通道。先入先出是指按照先后顺序,存取命令通道的操作码,以及存取数据通道的操作数。命令通道和数据通道的数量相同且对应。例如在操作指令中,操作码为add,操作数为2,则操作码add进入命令通道1,操作数2进入数据通道1。操作码和操作数分别按照指令顺序入队和出队,一个操作指令的操作码入队和操作数入队是同步的,一个操作指令的操作码出队和操作数出队也是同步的,这样就可以保证一个操作指令的完整性。
基于以上提供的数据处理电路,下面对本申请的数据处理方法进行介绍。请参阅图2,本申请提供的数据处理方法的一个实施例包括:
步骤201、接收处理器核心发送的指令。
步骤202、根据指令获取操作码。
步骤203、将操作码存入命令通道。
步骤204、将操作数存入数据通道。
本实施例中,指令可以包括操作码和操作数,或者指令包括目标地址和操作数。
在指令包括操作码和操作数的情况下,直接获取指令的操作码,将指令包括的操作码直接存入命令通道,将操作数直接存入数据通道。
在指令包括目标地址和操作数的情况下,可以根据目标地址获取操作码。然后执行步骤203和步骤204。
步骤205、从命令通道读取操作码。
步骤206、从数据通道读取操作数。
需要说明的是,操作码和操作数的存取是同步的,即同时存入一个指令对应的操作码和操作数,同时读取一个指令对应的操作码和操作数。
步骤207、根据操作码和操作数在存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。
其中,操作码可以包括多种类型,例如加法操作、减法操作和存储操作。相应的原子操作也包括多种类型,例如原子加法操作、原子减法操作和原子存储操作。在原子操作期间,将状态机的状态设为不可打断状态。这样能够保证一个原子操作不被打断,以使得不同指令分开独立执行。
当原子操作结束后,将状态机设为空闲状态。这样控制器可以分别从命令通道中读取下一个操作码,从数据通道中读取下一个操作数,然后根据读取的操作码和操作数执行下一个原子操作。
本实施例中,以通道存储指令后,按照指令顺序执行指令,避免了多core循环抢锁造成的数据处理能力的浪费。
其次,用命令通道存储操作码,用数据通道存储操作数,通过硬件实现原子操作,使不同指令能够分开独立执行,从而解决多核下发指令时产生的数据竞争。并且,以硬件实现原子操作可以加快指令执行效率。
在一个可选实施例中,指令包括目标地址;
步骤202具体为:根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与操作码的对应关系和目标地址段,获取操作码。
具体的,控制器存有地址段与操作码的对应关系。
举例来说,地址段与操作码的对应关系可以如表1所示:
地址段 | 起始地址 | 终点地址 | 操作码 | 说明 |
第一地址段 | 0x2FD80000 | 0x2FEDFFFF | add | 加法操作 |
第二地址段 | 0x2FE00000 | 0x2FE5FFFF | sub | 减法操作 |
… | … | … | … | … |
第八地址段 | 0x2FF00000 | 0x2FF5FFFF | write/read | 存储操作 |
表1
若指令包括的地址为0x2FD80100,控制器确定其属于第一地址段,根据地址段与操作码的对应关系可以确定其对应的操作码为加法操作。然后将加法操作存入命令通道,以及将操作数存入数据通道。可以理解的是,地址段与操作码的对应关系不限于以上举例。
这样只需要向数据处理电路提供地址,数据处理电路的控制器就能快速确定地址对应的操作码。这样无需用户在程序的指令中写入各种操作码,能够统一操作接口,可以避免因错误操作码导致的程序故障,提高了程序的可靠性。
在实际应用中可以设置多个命令通道和数据通道,以存储多个core下发的大量指令。下面对指令存储在通道的方法进行详细介绍。请参阅图3,本申请提供的数据处理方法的另一个实施例包括:
步骤301、接收处理器核心发送的指令。
步骤302、根据指令获取操作码。
步骤303、确定操作码对应的命令通道。
步骤304、确定操作数对应的数据通道。
步骤305、将操作码存入命令通道。
步骤306、将操作数存入数据通道。
步骤307、从命令通道读取操作码。
步骤308、从数据通道读取操作数。
需要说明的是,本实施例采用操作码和操作数同步存取,即同时存入一个指令对应的操作码和操作数,同时读取一个指令对应的操作码和操作数。
步骤309、根据操作码和操作数在存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。
具体的,步骤301至步骤302与图2所示实施例中步骤201至步骤202相似,步骤305至步骤309与图2所示实施例中步骤203至步骤207相似。
本实施例中,数据处理电路包括多个命令通道和多个数据通道。将多个操作码存入多个命令通道,以及,将多个操作数存入多个数据通道有多种方式。请参阅以下实施例:
在一个可选实施例中,指令包括目标地址;
步骤303具体为:根据预设的地址与地址段的对应关系,确定目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系,确定目标地址段对应的命令通道为操作码对应的命令通道;
步骤304具体为:根据预设的地址段与数据通道的对应关系,确定目标地址段对应的数据通道为操作数对应的数据通道。
具体的,控制器存有地址段与命令通道和数据通道的对应关系。
举例来说,地址段与命令通道,和地址段与数据通道的对应关系可以如表2所示:
地址段 | 起始地址 | 终点地址 | 命令通道 | 数据通道 |
第一地址段 | 0x2FD80000 | 0x2FEDFFFF | 命令通道1 | 数据通道1 |
第二地址段 | 0x2FE00000 | 0x2FE5FFFF | 命令通道2 | 数据通道2 |
… | … | … | … | … |
第八地址段 | 0x2FF00000 | 0x2FF5FFFF | 命令通道8 | 数据通道8 |
表2
若指令包括的地址为0x2FD80100,控制器确定其属于第一地址段,进而确定操作码对应的命令通道为命令通道1,操作数对应的数据通道为数据通道1。可以理解的是,地址段与命令通道的对应关系,或者地址段与数据通道的对应关系不限于以上举例。
在另一个可选实施例中,
步骤303具体为:根据预设的数据块大小与通道号的对应关系,确定操作数对应的通道号;根据通道号,确定操作码对应的命令通道;
步骤304具体为:根据通道号,确定操作数对应的数据通道。
具体的,控制器存有数据块大小与命令通道和数据通道的对应关系。
举例来说,数据块大小与命令通道,和数据块大小与数据通道的对应关系可以如表3所示:
数据块大小 | 命令通道 | 数据通道 |
16 | 命令通道1 | 数据通道1 |
32 | 命令通道2 | 数据通道2 |
64 | 命令通道3 | 数据通道3 |
表3
本实施例中,若操作数的数据块大小为32,则控制器确定其对应的命令通道为命令通道2,其对应的数据通道为数据通道2。
可以理解的是,除了按照数据块大小存取操作码和操作数之外,还可以采用间插模式将操作码和操作数存入对应的通道。数据块大小与命令通道的对应关系,或者数据块大小与数据通道的对应关系不限于以上举例。
在另一个可选实施例中,指令包括目标地址;
步骤303具体为:将目标地址进行哈希运算得到哈希值,将哈希值与命令通道的通道数进行取模运算得到通道号,根据通道号确定操作码对应的命令通道;
步骤304具体为:根据通道号确定操作数对应的数据通道。
具体的,命令通道的通道数和数据通道的通道数相同。哈希运算采用的算法可以是CRC32,或者,消息摘要算法(Message Digest Algorithm),如MD2、MD4、MD5,或者,安全哈希算法(Secure Hash Algorithm),如SHA1。
举例来说,命令通道包括命令通道1,命令通道2,…,命令通道8,数据通道包括数据通道1,数据通道2,…,数据通道8。设将目标地址进行哈希运算,再和8进行取模运算得到的通道号为3,则确定操作码对应的命令通道为命令通道3,操作数对应的数据通道为数据通道3。
为便于理解,下面以一个具体应用场景对本申请实施例中的数据处理方法进行介绍:
网络设备包括的8个core为core1,core2,…,core8。假设core1和core2下发指令1和指令2,指令1和指令2对应的统计项均为报文数量;在指令1中,地址为0x2FD80100,立即数为1。在指令2中,地址为0x2FD80100,立即数为2。
预设的地址段和操作码的对应关系如表1所示,地址段与通道的对应关系如表2所示,则数据处理电路确定该地址属于第一地址段,其对应的操作码为加法操作,其对应的命令通道为命令通道1,其对应的数据通道为数据通道1。
控制器先将指令1对应的“add”存入命令通道1,将指令1对应的“1”存入数据通道1。然后,将指令2对应的“add”存入命令通道1,将指令2对应的“2”存入数据通道1。再先根据指令1对应的“add”和“1”,执行原子操作,指令1执行完成得到的第一报文数量为1。在此期间将状态机的状态设为不可打断状态。当指令1执行完成后,将状态机时段的状态设为空闲状态。然后,从命令通道1读取指令2对应的“add”,从数据通道1读取指令2对应的“2”,执行原子操作得到的第二报文数量为3,即第二报文数量等于第一报文数量+2,。在此期间将状态机的状态设为不可打断状态。
可以理解的是,若有后续指令对应的统计项也是报文数量,且操作码为加法操作,则在前一指令执行完成得到的报文数量上执行加法操作。
在指令1的执行期间,core2将指令发送给数据处理电路后,core2无需循环抢锁,可以执行其他操作,从而提高网络设备的数据处理能力。同时,用命令通道存储操作码,用数据通道存储操作数,通过硬件实现原子操作,这样能够使指令1和指令2分开独立执行,从而解决多核系统中多指令并行时的数据竞争问题。
以上对本申请的数据处理电路和数据处理方法进行了介绍,下面对本申请的网络设备进行介绍。请参阅图4,本申请提供的网络设备400的一个实施例包括:
多核处理器401和数据处理电路402;
多核处理器401包括多个处理器核心4011。
数据处理电路402如图1所示实施例或可选实施例中的数据处理电路。
其中,数据处理电路402可以执行以上实施例提供的数据处理方法。
本申请的网络设备可以是用户设备、接入网设备或核心网设备等。用户设备是指手机、平板电脑、个人数字助理、车载电脑、可穿戴设备等。接入网设备是指基站、演进型基站或接入点等。核心网设备是指移动交换中心(Mobile Switching Center,MSC)、路由器或交换机等。
以上所述并不用以限制本发明,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
接收处理器核心发送的指令,所述指令包括操作数;
根据所述指令获取操作码;
将所述操作码存入命令通道,将所述操作数存入数据通道;
从所述命令通道读取所述操作码,从所述数据通道读取所述操作数;
根据所述操作码和所述操作数在存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。
2.根据权利要求1所述的方法,其特征在于,所述指令还包括目标地址;
所述根据所述指令获取操作码包括:
根据预设的地址与地址段的对应关系,确定所述目标地址对应的目标地址段;
根据预设的地址段与操作码的对应关系和所述目标地址段,获取操作码。
3.根据权利要求1所述的方法,其特征在于,所述命令通道的数量为多个,所述数据通道的数量为多个;
在所述将所述操作码存入所述命令通道,将所述操作数存入所述数据通道之前,所述方法还包括:
确定所述操作码对应的命令通道,以及,确定所述操作数对应的数据通道。
4.根据权利要求3所述的方法,其特征在于,所述指令还包括目标地址,
所述确定所述操作码对应的命令通道包括:根据预设的地址与地址段的对应关系,确定所述目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系,确定所述目标地址段对应的命令通道为所述操作码对应的命令通道;
所述确定所述操作数对应的数据通道包括:根据预设的地址段与数据通道的对应关系,确定所述目标地址段对应的数据通道为所述操作数对应的数据通道。
5.根据权利要求3所述的方法,其特征在于,
所述确定所述操作码对应的命令通道包括:根据预设的数据块大小与通道号的对应关系,确定所述操作数对应的通道号;根据所述通道号,确定所述操作码对应的命令通道;
所述确定所述操作数对应的数据通道包括:根据所述通道号,确定所述操作数对应的数据通道。
6.根据权利要求3所述的方法,其特征在于,所述指令还包括目标地址,
所述确定所述操作码对应的命令通道包括:将所述目标地址进行哈希运算得到哈希值,将所述哈希值与所述命令通道的通道数进行取模运算得到通道号,根据所述通道号确定所述操作码对应的命令通道;
所述确定所述操作数对应的数据通道包括:根据所述通道号确定所述操作数对应的数据通道。
7.一种数据处理电路,其特征在于,包括:
通信接口、控制器、命令通道、数据通道、存储器和状态机,所述控制器分别通过电路与所述通信接口、命令通道、数据通道、存储器和状态机相连;
通信接口,用于接收处理器核心发送的指令,所述指令包括操作数;
控制器,用于根据所述指令获取操作码;将所述操作码存入所述命令通道,将所述操作数存入所述数据通道;
所述命令通道,用于存储所述操作码;
所述数据通道,用于存储所述操作数;
所述控制器,还用于从所述命令通道读取所述操作码,从所述数据通道读取所述操作数;根据所述操作码和所述操作数在所述存储器中执行原子操作,以及在原子操作期间将状态机的状态设为不可打断状态。
8.根据权利要求7所述的数据处理电路,其特征在于,所述指令还包括目标地址;
所述控制器具体用于根据预设的地址与地址段的对应关系,确定所述目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系和所述目标地址段,获取操作码。
9.根据权利要求7所述的数据处理电路,其特征在于,所述命令通道的数量为多个,所述数据通道的数量为多个;
所述控制器还用于确定所述操作码对应的命令通道,以及,确定所述操作数对应的数据通道。
10.根据权利要求9所述的数据处理电路,其特征在于,所述指令还包括目标地址;
所述控制器具体用于根据预设的地址与地址段的对应关系,确定所述目标地址对应的目标地址段;根据预设的地址段与命令通道的对应关系,确定所述目标地址段对应的命令通道为所述操作码对应的命令通道;根据预设的地址段与数据通道的对应关系,确定所述目标地址段对应的数据通道为所述操作数对应的数据通道。
11.根据权利要求9所述的数据处理电路,其特征在于,
所述控制器具体用于根据预设的数据块大小与通道号的对应关系,确定所述操作数对应的通道号;根据所述通道号,确定所述操作码对应的命令通道;根据所述通道号,确定所述操作数对应的数据通道。
12.根据权利要求9所述的数据处理电路,其特征在于,所述指令还包括目标地址;
所述控制器具体用于将所述目标地址进行哈希运算得到哈希值,将所述哈希值与所述命令通道的通道数进行取模运算得到通道号,根据所述通道号确定所述操作码对应的命令通道;根据所述通道号确定所述操作数对应的数据通道。
13.一种网络设备,其特征在于,包括:
多个处理器核心和数据处理电路;
所述处理器核心,用于向所述数据处理电路发送指令;
所述数据处理电路为权利要求7至12中任一项所述的数据处理电路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711001602.9A CN107977232B (zh) | 2017-10-24 | 2017-10-24 | 一种数据处理方法、数据处理电路和网络设备 |
PCT/CN2018/111557 WO2019080852A1 (zh) | 2017-10-24 | 2018-10-24 | 一种数据处理方法、数据处理电路和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711001602.9A CN107977232B (zh) | 2017-10-24 | 2017-10-24 | 一种数据处理方法、数据处理电路和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977232A CN107977232A (zh) | 2018-05-01 |
CN107977232B true CN107977232B (zh) | 2020-05-08 |
Family
ID=62012643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711001602.9A Active CN107977232B (zh) | 2017-10-24 | 2017-10-24 | 一种数据处理方法、数据处理电路和网络设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107977232B (zh) |
WO (1) | WO2019080852A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977232B (zh) * | 2017-10-24 | 2020-05-08 | 上海华为技术有限公司 | 一种数据处理方法、数据处理电路和网络设备 |
CN111258635B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258770B (zh) * | 2018-11-30 | 2023-10-10 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN113141235B (zh) * | 2020-01-20 | 2022-07-22 | 华为技术有限公司 | 处理数据的方法和相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185672A1 (en) * | 2011-01-18 | 2012-07-19 | International Business Machines Corporation | Local-only synchronizing operations |
CN102750257B (zh) * | 2012-06-21 | 2014-08-20 | 西安电子科技大学 | 基于访问信息调度的片上多核共享存储控制器 |
CN102929686A (zh) * | 2012-09-28 | 2013-02-13 | 杭州中天微系统有限公司 | 一种片上多核处理器功能验证方法 |
CN107977232B (zh) * | 2017-10-24 | 2020-05-08 | 上海华为技术有限公司 | 一种数据处理方法、数据处理电路和网络设备 |
-
2017
- 2017-10-24 CN CN201711001602.9A patent/CN107977232B/zh active Active
-
2018
- 2018-10-24 WO PCT/CN2018/111557 patent/WO2019080852A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019080852A1 (zh) | 2019-05-02 |
CN107977232A (zh) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977232B (zh) | 一种数据处理方法、数据处理电路和网络设备 | |
US9842069B2 (en) | Hardware accelerator and chip | |
US9489200B2 (en) | Method and apparatus for asynchronous processor with fast and slow mode | |
US10693787B2 (en) | Throttling for bandwidth imbalanced data transfers | |
US20230153258A1 (en) | Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
CN105045632A (zh) | 一种多核环境下实现免锁队列的方法和设备 | |
US9319040B2 (en) | Distributing multiplexing logic to remove multiplexor latency on the output path for variable clock cycle, delayed signals | |
US20160274936A1 (en) | Multi-core system for processing data packets | |
WO2017218133A1 (en) | Technologies for coordinating access to data packets in a memory | |
KR20140096587A (ko) | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 | |
CN116521096B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN112817516A (zh) | 数据读写控制方法、装置、设备和存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
US20170212759A1 (en) | Asynchronous instruction execution apparatus and method | |
CN114327882A (zh) | 一种数据转发方法、装置及系统 | |
WO2018106392A1 (en) | Technologies for multi-core wireless network data transmission | |
US9557996B2 (en) | Digital signal processor and method for addressing a memory in a digital signal processor | |
CN105723317A (zh) | 用于与非易失性存储器通信的方法和系统 | |
CN111506530A (zh) | 中断管理系统及其管理方法 | |
CN117193979B (zh) | 基于独立中断栈的任务处理方法、装置、终端设备及介质 | |
WO2024066811A1 (zh) | 配置资源的方法及装置 | |
CN113472523A (zh) | 用户态协议栈报文处理优化方法、系统、装置及存储介质 | |
US10235225B2 (en) | Data processing system having messaging | |
US6629229B1 (en) | Message index descriptor | |
CN115454506A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |