CN107273100B - 一种数据实时处理及存储装置 - Google Patents
一种数据实时处理及存储装置 Download PDFInfo
- Publication number
- CN107273100B CN107273100B CN201710454253.XA CN201710454253A CN107273100B CN 107273100 B CN107273100 B CN 107273100B CN 201710454253 A CN201710454253 A CN 201710454253A CN 107273100 B CN107273100 B CN 107273100B
- Authority
- CN
- China
- Prior art keywords
- stream
- data
- cache
- target
- memory
- 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 104
- 230000015654 memory Effects 0.000 claims abstract description 128
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000005206 flow analysis Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 abstract description 23
- 238000004904 shortening Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 238000013500 data storage Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种流处理器,用于缩短流处理器的流处理周期,提升流处理器对强实时性业务的处理能力。本申请实施例方法包括:先入先出存储器FIFO,运算单元,高速缓冲存储器cache;所述FIFO接收当前流信息,其中,所述当前流信息中携带有目标流号和目标数据;当所述FIFO接收到读有效信号时,所述FIFO将所述目标流号和所述目标数据发送给所述运算单元,并将所述目标流号发送至所述cache;所述cache根据所述目标流号获取所述目标流号对应的旧数据,并将所述目标流号对应的旧数据发送至所述运算单元;所述运算单元根据所述目标数据对所述目标流号对应的旧数据进行运算得到新数据,并将所述新数据发送至所述cache。
Description
技术领域
本申请涉及数据处理及数据存储领域,尤其涉及一种数据实时处理及存储装置。
背景技术
近年来,随着大数据、虚拟现实(virtual reality,VR)、增强现实(augmentedreality,AR)、无人驾驶、移动互联网和物联网(internet of things,IOT)等新业务的迅速发展,100/400GE(Gigabit Ethernet,千兆以太网)等网络之间互连协议(internetprotocol,IP)接口向以100400GE为代表的超高带宽(ultra-high-bandwith,UHB)以太网接口方向发展,在UHB技术快速演进过程中,流处理器对海量数据流进行处理的强实时性要求不断提高,同时,在如此高速过程中,对数据存储的及时可靠性要求也较高。
在现有数据流处理技术中,流处理器的数据流处理为对外部存储器进行访问,并对流处理器中的存储数据执行读-修改-写操作(即首先读取出外部存储器的数据,其次,流处理器对该数据进行修改,最后,流处理器将修改后的数据写入外部存储器中存储),流处理器的流处理周期实质上是访问外部存储器的读-修改-写延迟时长(即流处理器的数据读取时长,数据修改时长,和数据写入时长之和)。
在上述现有数据流处理技术中,流处理器的流处理周期为对外部存储器执行读-修改-写操作过程中的总时长,对流处理器延迟时长要求小于上述读-修改-写延迟时长的强实时性操作或业务而言,此类处理器的流处理周期较长,无法满足该类强实时性操作或业务的数据流处理要求。
发明内容
本申请实施例提供了一种流处理器,用于缩短流处理器的流处理周期,提升流处理器对强实时性业务的处理能力。
第一方面,本申请实施例提供了一种流处理器,包括:先入先出存储器(firstinput first output,FIFO),运算单元,高速缓冲存储器cache;其中,首先,FIFO接收当前流信息,其中,该当前流信息中携带有目标流号和目标数据;其次,当FIFO接收到读有效信号时,FIFO将目标流号和目标数据发送给运算单元,同时,将目标流号发送至cache;再次,cache根据其接收到的目标流号获取到该目标流号对应的旧数据,并将该旧数据发送至运算单元;最后,在运算单元获知目标流号对应的旧数据和目标数据之后,运算单元根据该目标数据对该目标流号对应的旧数据进行运算得到新数据,并且,运算单元将该新数据发送至该cache中进行缓存,这样,流处理器就完成了对当前流信息的流处理操作。
从以上技术方案可以看出,本申请实施例具有以下优点:由于流处理器中包括FIFO和cache,一方面,由于FIFO具有先进先出的特性,并且可以存储一定数量的流信息,这样,当流处理器获取目标流号对应的旧数据时,其他流信息依然可以进入到FIFO中进行存储,各流信息不用排队等待,缩短流处理周期;另一方面,cache既可以缓存旧数据,因此,在某种情况下可以直接为运算单元直接提供旧数据支持,加快流处理速度;此外,cache也可以缓存新数据,在流处理过程中便可以不必将新数据写入外部存储器中,可以理解缓存速度远高于外部存储器的数据写入速度,也从一定程度上缩短了流处理器的流处理周期。基于以上两方面,本申请中流处理器可以将流处理器的流处理周期从对数据的读-修改-写延迟时长减小约至数据的修改延迟时长(即运算单元由旧数据计算得到新数据所需的时长),因此,本申请可以有效地缩短流处理器的流处理周期,提高流处理速度,从而提升流处理器对强实时性业务的处理能力,处理对实时性要求更高的业务。
在一种可能的设计中,第一方面的第一种可能的实现方式,cache包括地址处理模块,其中,该地址处理模块用于将cache接收到的报文流号进行存储,并且只存储预设时长,超过该预设时长的报文流号将被删除,并且按照报文流号大小依次顺序映射外部存储器中相应的偏移地址,当前,报文流号包括目标流号。
其次,该第一方面的第一种可能的实现方式中,cache中包括地址处理模块中报文流号直接映射外部存储器中的地址,这样,一旦收到报文流号,便能快速地确定报文流号对应的数据存储在外部存储器的地址,方便快捷。
在一种可能的设计中,第一方面的第二种可能的实现方式,cache还包括时间处理模块,该时间处理模块用于对上述预设时长进行管理,每一个报文流号对应一个预设时长,各预设时长可以相等,也可以不相等。
其次,在该第一方面的第二种可能的实现方式中,设有时间处理模块来管理预设时长,这样可以使得每个报文流号对应的预设时长具有多样性,能使得每个报文流号对应的预设时长可以各不相同,并且还可以根据不同的流信息适当调整预设时长。
在一种可能的设计中,第一方面的第三种可能的实现方式,cache还包括数据处理模块,该数据处理模块用于存储并管理报文流号对应的旧数据,并且与上述地址处理模块之间存在一定的映射关系,报文流号对应的旧数据为运算单元对上一条报文流号相同的流信息进行计算后得到的数据。
其次,在该第一方面的第三种可能的实现方式中,使用数据处理模块存储并管理旧数据,更加便于数据读取操作,可减少存储器寻址时间。
在一种可能的设计中,第一方面的第四种可能的实现方式,cache还包括选择器,该选择器用于选择将cache中缓存的报文流号对应的旧数据发送至运算单元,或选择将存储控制器中的报文流号对应的旧数据发送至运算单元,可以理解的是,存储控制器中的旧数据是存储控制器从外部存储器中读取到的。
其次,在该第一方面的第四种可能的实现方式中,根据不同实际应用场景,由于选择器的选择功能可以避免输入错误的旧数据进行运算,从而提高检测误检率。
在一种可能的设计中,第一方面的第五种可能的实现方式,cache还用于:当cache接收到两个相同的报文流号的时间间隔小于等于预设时长时,cache将缓存于该cache中的旧数据发送至运算单元;或,
当cache接收到不同的报文流号,或接收到两个相同的报文流号的时间间隔大于预设时长时,cache将由存储控制器发送至cache中的旧数据发送至运算单元。
其次,在该第一方面的第五种可能的实现方式中,该cache可以有效地避免相同报文流号之间的竞争冒险现象。
在一种可能的设计中,第一方面的第六种可能的实现方式,运算单元具体用于:根据旁路转发流水线机制,并使用目标数据对目标流号对应的旧数据进行计算得到新数据,其中,可以包括强实时性操作对应的计算,也可以是弱实时性操作对应的计算,对此本申请实施例不做任何限制。
其次,在该第一方面的第六种可能的实现方式中,使用旁路转发流水线机制可以有效地提高对流信息的处理速度。
在一种可能的实现方式中,第一方面的第七种可能的实现方式,FIFO还包括解析模块;其中,当FIFO接收到当前流信息时,解析模块对当前流信息进行解析,并在解析之后得到当前流信息中携带的报文流号(即作为目标流号)和目标数据。
其次,在第一方面的第七种可能的实现方式中,FIFO不但对目标流号和目标数据进行分发,还通过解析模块解析当前流信息得到对目标流号和目标数据。
在一种可能的实现方式中,第一方面的第八种可能的实现方式,流处理器还包括:存储控制器,其中,该存储控制器用于将上述新数据写入到外部存储器的目标地址中,上述新数据和上述目标地址均与上述目标流号对应,由cache发送至存储控制器,可以理解,外部存储器是指位于流处理器之外的存储器,通常流处理器通过芯片实现,也可以理解为外部存储器是不在该芯片上的存储器。
其次,在第一方面的第八种可能的实现方式中,将新数据写入到外部存储器中可以进行长期保存,以弥补使用cache进行缓存的不足之处。
在一种可能的设计中,第一方面的第九种可能的实现方式,存储控制器还用于:将目标流号对应的旧数据发送至cache,并且,向FIFO发送读有效信号,以使得该FIFO将当前流信息写入到运算单元中。
其次,在该第一方面的第九种可能的实现方式中,一方面,cache可以获得外部存储器中的旧数据,另一方面,向FIFO发送读有效信号,可以同步运算单元和外部存储器之间读取数据的延时时长。
在一种可能的设计中,第一方面的第十种可能的实现方式,上述外部存储器包括片外随机寻址存储器。
其次,在第一方面的第十种可能的实现方式中,使用片外随机寻址存储器作为外部存储器具有可以随时访问,速度快的优点,进一步提高流处理器的流处理速度。
在一种可能的设计中,第一方面的第十一种可能的实现方式,流处理器还包括:流分析模块,其中,该流分析模块用于对网络流量进行分析,并将解析后得到的当前流信息发送至FIFO,同时,在解析完成后,向存储控制器发送数据读取命令,以使得存储控制器从外部存储器中读取目标报文对应的旧数据。
其次,在该第一方面的第十一种可能的实现方式中,流处理器可以实现对网络流量的分析,使得流处理器的功能更加全面,拓宽了该流处理器的应用范围。
在一种可能的设计中,第一方面的第十二中可能的实现方式,流处理器还包括:数据上传模块,其中,该数据上传模块用于根据预设规则通过存储控制器读取外部存储器中所存储的数据,以为企业业务应用提供数据支持。
其次,在该第一方面的第十二种可能的实现方式中,可以充分利用外部存储器,不仅可以为流处理器提供数据支持,还能为其他业务提供数据支持。
附图说明
图1为本申请实施例中流处理器的一个应用场景示意图;
图2为本申请实施例中流处理器的另一个应用场景示意图;
图3为本申请实施例中流处理器的另一个应用场景示意图;
图4(a)为本申请实施例中流处理器的一个结构示意图;
图4(b)为本申请实施例中流处理器的一个时序示意图;
图5为本申请实施例中cache S6的一个结构示意图;
图6为本申请实施例中地址处理模块S61,时间处理模块S62和数据处理模块S63之间的映射关系图;
图7为本申请实施例中地址处理模块S61与外部随机寻址存储器S4之间的映射关系图;
图8(a)为本申请实施例中时间滑动窗口机制下的一个时序示意图;
图8(b)为未使用旁路流水线转发机制时,数据RAW竞争冒险的流水线时空图;
图9为使用旁路流水线转发机制时的一个流水线时空图;
图10为使用旁路流水线转发机制时的另一个流水线时空图;
图11为使用旁路流水线转发机制时的又一个流水线时空图。
具体实施方式
本申请实施例提供了一种流处理器,用于实现随机流的满线速处理和存储,从而可以对随机流进行强实时性操作。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示为本申请实施例中流处理器的一个应用场景示意图,包括:机顶盒交换机(top of rack,TOR)网络开关、中央处理器、流处理器和主存储器,其中,中央处理器、流处理器和主存储器等构成服务器。TOR网络开关通过将网络流量注入至中央处理器,从而将网络流量传输至服务器中,由中央处理器对网络流量进行分析,在分析完成后将得到的流报文发送给流处理器,流处理器通过读取主存储器中的相关数据对流报文进行处理之后,流处理器将处理后的信息写入主存储器中存储,也可以根据需要将处理后的信息发送至中央处理器为其他应用提供数据支持。此外,主存储器可以是片外随机寻址存储器,用于存储强实时性操作对应的随机流信息。
该应用场景对应的硬件架构可以是一个服务器机框,该机框里面包括块服务器单板作为接收主机,用于接收来自TOR网络开关的网络流量,其次,该服务器单板上安装有中央处理器、流处理器和主存储器等芯片,用于UHB\流式计算等,实现在线海量随机流硬件加速的功能;流处理器也可以是一个芯片如现场可编程门阵列(field-programmable gatearray,FPGA)和特定用途集成电路(application specific integrated circuit,ASIC)等,通过对该流处理器芯片进行编程来完成中央处理器的读写请求,并对其控制的存储芯片如主存储器进行各种访问及控制;中央处理器、流处理器和主存储器等芯片可以设置在一个印制电路板(printed circuit board,PCB)上,通过PCB走线相连,最后呈现的形状是一个服务器单板。
需要说明的是,上述服务器单板上也可以包括内存芯片等其他功能的芯片,对此本申请不做任何限制。
如图2所示为流处理器的另一个应用场景示意图,与图1所示的应用场景不同在于,流处理器可以完成网络流量分析功能,TOR网络开关直接将网络流量注入流处理器中进行分析,因此流处理器和中央处理器之间为单向通信,其余操作与图1对应的应用场景类似,对此此处不再赘述。
如图3所示为本申请实施例中又一个应用场景图,与图1所示的应用场景不同在于,图2中包括两个主存储器(主存储器1和主存储器2),其中,一个用于存储强实时性操作(如流报文的抖动统计)对应的随机流信息,另一个用于存储弱实时性操作(如接收报文流统计)的随机流信息,其余部分的描述与上述两个应用场景类似,对此此处不再赘述。
还需要说明的是,本申请实施例中流处理器旨在解决海量随机流基于读-修改-写模式的实时处理和存储问题,该流处理器不仅仅可以用于IP网络UHB产品、网络性能测试仪、流式硬件加速处理平台等,还可以应用于其他高新能流式处理产品中,如无人驾驶、5G通信、大数据流式硬件加速等领域的产品中为各类强实时性应用提供了基础缓存处理技术;此外,当所需用户流量进一步提升时,可结合双倍速率同步动态随机存储器(doubledata rate static random-access memory,DDR SDRAM)扩容,满足业务平滑演进。本申请对业务类型不做限制,如高级测序等强实时性操作,以及接收报文流统计等弱实时性操作。
为了更便于理解本申请实施例中流处理器,下面将结合流处理器的具体结构对本申请实施例中流处理器进行说明,其中需要说明的是,以下实施例中,外部存储器以片外随机寻址存储器为例进行说明,同时,报文流号为识别不同类型或业务流信息的标识,可以是流ID,也可以是其他标识,对此本申请不做任何限制。
如图4(a)所示为流处理器的一个结构示意图,流处理器包括:流分析模块S1,先入先出(first input first output,FIFO)存储器S2,存储控制器S3,运算单元S5,高速缓冲存储器cache S6,数据上传模块S7;此外,图4(a)中还包括了一个片外随机寻址存储器S4作为主存储器用于存储数据。
该流处理器的工作原理及过程如下,包括:
步骤1:可选地,流分析模块S1对网络随机流量进行解析,并将解析得到的当前流信息(如当前流报文)发送给FIFO S2,并且根据解析得到的该当前流信息对应的存储地址,向存储控制器S3发起数据读取命令,该数据读取命令用于指示存储控制器S3从片外随机寻址存储器S4中读取上述存储地址中存储的旧数据;
需要说明的是,如上述应用场景一样,对于网络随机流量的流量分析可以由流分析模块S1完成,也可以由流处理器之外的芯片如中央处理器等完成网络随机流量的流量分析,对此本申请不做任何限制。
步骤2:FIFO S2接收到流分析模块S1发送的当前流信息(如当前流报文),其中,当前流信息中携带有目标流号和目标数据,先对当前流信息进行存储,并等待存储控制器返回读有效信号,该读有效信号用于指示FIFO S2将当前流信息(包括目标流号和目标数据)发送给运算单元S5,并将上述目标流号发送至cache S6,其中目标流号为当前流信息对应的报文流号;
可选地,当FIFO S2接收到流分析模块S1发送的当前流信息时,FIFO S2中的解析模块对所述当前流信息即当前报文进行解析,并得到上述目标流号和目标数据。
从流分析模块S1向存储控制器S3发起数据读取命令之后,存储控制器S3根据该数据读取命令的指示向片外随机寻址存储器S4中对应的存储地址读取旧数据,其次,在存储控制器S3读取到上述旧数据之后,存储控制器S3便向FIFO S2发送读有效信号,并在同一时刻,存储控制器S3将读取到的旧数据发送至cache S6,可以理解的是,假设流分析模块S1向存储控制器S3发起数据读取命令的时刻为T1,片外随机寻址存储器S4将读取出的旧数据发送至存储控制器S3的时刻为T2,存储控制器S3向FIFO S2发送读有效信号的时刻为T3,那么外部随机寻址存储器S4的读时长为T2-T1,流处理器的读时长是T3-T1。
通过上述操作,可以实现流处理器内,与流处理器外片外随机寻址存储器S4之间的信息同步,从而解决片外随机寻址存储器S4和流处理器内存储控制器S3读时延过大的问题。
根据FIFO深度等于RL/Tclk可以知道,此时RL/Tclk很小,因此该方案中FIFO S2的深度很小,可以有效地降低每端口资源消耗(例如,FIFO S2的位宽为512bit,深度为64的话,那么FIFO S2占用的端口资源只有32Kbit,远低于其他常见方案)。其中,RL为流处理器的读时长(或读延时);Tclk为流处理器芯片(如FPGA芯片)运行的时钟周期。
步骤3:运算单元S5接收到FIFO S2发送的目标流号和目标数据之后,运算单元S5从cache S6中读取出该目标流号对应的旧数据,并根据目标数据对上述旧数据进行计算得到新数据。
可选地,运算单元S5从cache S6中读取出该随机流信息对应的旧数据,其中,cache S6具有选择功能,因此,该旧数据可以是来自cache S6自身缓存的,也可以是存储控制器S3发送给cache S6。具体选择方式包括:
当cache S6接收到两个相同的报文流号的时间间隔小于等于预设时长时,cacheS6选择将缓存在cache S6中的旧数据发送至运算单元S5;或,
当cache S6接收到不同的报文流号,或接收到两个相同报文流号的时间间隔大于预设时长时,cache S6选择将存储控制器S3发送至cache S6中的旧数据发送至运算单元S5。
应理解,由于cache S6会将运算单元S5每次运算后得到的新数据进行缓存预设时长,并将该新数据写入存储控制器S3,以使得存储控制器S3将该新数据写回片外随机寻址存储器S4中进行存储,以作为下一次相同报文流号的随机流到来时的旧数据使用。由于处理的是随机流,在该预设时长内相同报文流号的随机流还可能到来,因此,cache S6要对旧数据进行筛选以确保每次计算时使用的是最近更新过的旧数据进行计算,从而避免出现错误检测。
此外,如图4(b)所示为流处理和外部随机寻址存储器S3的时序示意图,时序1、时序2和时序3为流处理器对随机流的处理时序;时序4和时序5为对外部随机寻址存储器S3的数据读写时序。
其中,时序1表示流分析模块S1向存储控制器S3发送数据读取命令对应的时序,存储控制器S3从时序1中第一个下降沿开始读取存储控制器S3中存储的旧数据;时序2表示存储控制器S3向FIFO S2发起读有效信号的时序,其中,运算单元S5在时序2中的下降沿处开始对旧数据进行修改;时序3表示cache S6将修改后的新数据写入片外随机寻址寻址存储器S4中的时序,cache S6在时序3中的下降沿开始通过存储控制器S3将新数据写入片外随机寻址存储器S4中。
再次,时序4表示片外随机寻址存储器S4将旧数据写入到存储控制器S3中的时序,时序4中的下降沿为写入操作的开始时刻;时序5表示存储控制器S3将新数据写入片外随机寻址存储器S4中的时序,时序5中下降沿为开始时刻。
可以理解的是,时序1中第一个下降沿至时序2中下降沿之间的时长为流处理器对当前随机流对应的旧数据的读取周期,用RL表示;时序2中下降沿至时序3中下降沿之间的时长为对当前随机流对应的旧数据的修改周期,用ML表示;时序3中下降沿至时序5中下降沿之间的时长为在片外随机寻址存储器S4不出现读写冲突情况下的新数据写入周期,用WL表示,此外,对于片外随机寻址存储器S4不出现读写冲突情况包括:片外随机寻址存储器支持相同地址重复寻址,以及片外随机寻址存储器不支持相同地址重复寻址并且出现对相同地址重复寻址两种情况,当然,对于其他可能出现读写冲突的情况此处不做任何限制。
还需要说明的是,从时序1中第一个下降沿至时序4中下降沿为存储控制器S3对片外随机寻址存储器S4的数据读取周期,用RL’表示,应理解,一方面,在时序1中第二个下降沿之后流处理器开始处理下一条随机流即流分析模块S1将再次发起数据读取命令,也就是说,将对片外随机寻址存储器S4执行下一次数据读取,另一方面,由于读取需要一定时长,应理解,时序3中下降沿至时序1中第二个下降沿为cache S6对存储控制器S3的写入时长,在时序1中第二个下降沿至时序5中下降沿之间的时长为存储控制器S3对片外随机寻址存储器S4的写入时长,此时长等于RL’,因此,在时序1中第二个下降沿之后的RL’时长内,可能会存在对相同地址的重复寻址,从而出现读写冲突打破读写平衡而出现读写错误。
因此,Trd表示不出现读写冲突情况下流处理器的最小流处理周期,Trmw为流处理器的读-修改-写周期。其中,Trmw=RL+ML+WL,Trd=RL+ML+WL-RL’;不难看出:Trd=Trmw-RL’。
此外,可以通过设置时间滑动窗口解决上述读写冲突情况,对于读写冲突及时间滑动窗口的进一步描述可参阅对图8(a)、图8(b)、图9、图10和图11的相关描述部分,对此此处不再赘述。
cache S6一种可能的结构如图5所示,cache S6包括:地址处理模块S61,时间处理模块S62,数据处理模块S63和选择器S64,其中,地址处理模块S61包括地址存储器和地址存储控制单元,地址存储控制单元控制地址存储器,读取该地址存储器中的地址数据或将地址数据写入至该地址存储器中;时间处理模块S62包括时间存储器和时间管理单元,时间管理单元对时间存储器中存储的预设时长进行管理;数据处理模块S63包括数据存储器和数据存储控制单元,数据存储控制单元的功能上述地址存储控制单元,数据存储控制单元控制数据存储器,并对数据存储器执行数据读取和写入操作;此外,选择器S64,用于选择从数据存储器中或通过存储控制器S3获取报文流号对应的旧数据并写入运算单元S5,可以理解,通过存储控制器S3获取的旧数据实际上是来自片外随机寻址存储器S4中的。
如图5所示,cache S6的工作过程为:
当地址处理模块S61接收到FIFO S2发送的报文流号时,地址存储控制单元判断地址存储器中是否存在已经存储了相同的报文流号,若地址存储器中没有存储有相同的报文流号,地址存储控制单元向时间处理模块S62发送一个置位set信号,向选择器S64发送一个命中hit信号,同时向数据处理模块S63发送一个槽位号,其中,槽位号为根据地址存储控制单元将地址存储器中的存储单元按照一定大小划分而成的不同存储空间的标号,同时,槽位号也可以标识出地址存储器中不同存储地址在数据存储器中对应的数据存储空间;此外,当地址处理模块S61接收到时间处理模块S62发送的槽位号标识时,地址存储控制单元控制存储控制器将该槽位号标识对应的槽位清零(即将地址存储器中与槽位号标识对应的地址删除);
当时间处理模块S62接收到地址处理模块S61发送的置位set信号时,对应报文流号地址的计数器置位到最大数值并开始减计数,当计数器计数到0时,数据处理模块S63将报文流号地址对应的数据存储空间内的数据信息;当计数器溢出时,时间管理单元将溢出计数器对应的槽位号标识发送给地址处理模块;
当数据处理模块S63收到地址处理模块S61发送的槽位号后,数据存储控制单元控制数据存储器将报文流号对应的数据信息写入到该槽位号对应的存储地址中进行存储;此外,当存在数据存储器中存储时间超过预设时长的数据信息时,数据存储控制单元控制数据存储器将存储时间超过预设时长(即上述计数器从最大值减计时到0的这段时长)的数据信息通过存储控制器S3写入到片外随机寻址存储器S4中,其中,对于预设时长,数据存储控制器可以预选设置并获知,对此本申请不做任何限制;例外,数据存储控制单元还控制数据存储器将运算单元S5发送的数据信息存储到相应的存储地址中;
当选择器S64接收到地址存储器发送的命中hit信号时,选择器S64根据该命中hit信号确定当前命中的报文流号,若选择器S64接收到上述命中hit信号与上一次接收到的命中hit信号之间的时间间隔大于上述预设时长,或在上述预设时长内(小于等于上述预设时长),选择器S64接收到命中不同报文流号的命中hit信号,则选择器S64选择通过存储控制器S3从外部随机寻址存储器S4读取的报文流号的数据信息(即旧数据),并发送至运算单元S5;若在上述预设时长内(小于等于上述预设时长),选择器S64接收到命中相同报文流号的命中hit信号,则选择器S64选择数据处理模块S63中数据存储器存储的报文流号的数据信息(即旧数据),并发送至运算单元S5中。
此外,当运算单元S5每完成一条流信息的计算时,运算单元都会将计算后得到的数据信息(即新数据)写入到数据处理模块S63中的数据存储器中进行缓存。
首先,需要说明的是,旧数据和新数据是一种相对的说法,实质上均是运算单元S5根据当前流中的数据信息进行计算后得到的数据信息,数据的新或旧是相对于每一次运算单元S5的计算而言的,在当前流信息到来之前数据处理模块S63中数据存储器缓存的,或片外随机寻址存储器S4中存储的各报文流号对应的数据信息均可以理解为旧数据,当当前流信息到来之后,经运算单元S5根据其中携带的数据信息进行计算后得到的数据信息,可以理解为新数据。应理解,当报文流号对应的流信息第一次到来时,可以认为没有旧数据,或者将未计算需要而预先设置的初始化数据作为旧数据。
其次,还需要说明的是,由于cache S6具有缓存作用,因此,对于片外随机寻址存储器S4同一地址而言,在该地址没有被读取的空闲时间内,cache S6可以通过存储控制器S3将数据信息写入片外随机寻址存储器S4中,可以理解的是,这样,就可以实现在同一时刻对片外随机寻址存储器S4所有存储空间进行访问(读取或写入),即实现对片外随机寻址存储器S4的满带宽随机寻址访问;同时,还可以理解的是,由于cache S6的缓存作用,对于片外随机寻址存储器S4同一地址而言,可以使得读取操作和写入操作不会在同一时刻进行,从而避免了读写冲突,保持读写平衡,从而也就解决读并写(read and write,RAW)竞争冒险问题。
再次,地址处理模块S61,时间处理模块S62和数据处理模块S63既可以采用随机访问存储器(random-access memory,RAM)实现,也可以使用寄存器实现如内容寻址寄存器(content addressable memory,CAM)
可选地,在一种可能的设计中,以Addr CAM代指地址处理模块S61,以Timer Mem代指时间处理模块S62,以Data Mem代指数据处理模块S63,cache S6中三种处理模块中存储器(地址存储器,时间存储器和数据存储器)的深度相同,记为N,则上述三种寄存器之间的映射关系如图6所示,地址处理模块S61(即Addr CAM)中地址存储器与外部随机寻址存储器S4之间的映射关系如图7所示,其中,图中片外随机寻址存储器S4以本地存储器LocalMemory表示。
其中,如图6所示,Addr CAM S61存储的是预设时长内进入cache S6的报文流号对应在片外随机寻址存储器S4地址中的地址,相当于一种cache注册机制,Addr CAM S61中存储的是报文流号,按照流号大小依次顺序映射为片外随机寻址存储器S4中相应的偏移地址,而Addr CAM S61本身地址则对应cache中其他存储器地址;
Timer Mem S62存储的是cache S6每个报文流号对应的流表项的生命周期即预设时长,Timer Mem S62每个槽位(即地址存储器中的存储单元)生命周期采用独立的减计数器实现,流表项每占用一次Timer Mem S62槽位,则该槽位计数器复位一次到设定最大值,直到计数值减到设定的最小值,则清除该槽位流表项;
Data Mem S63存储的是cache S6每个流表项具体数据信息内容,为片外随机寻址存储器S4中内容的镜像,其中,未占用的槽位存储内容为空(即NULL)。
可以理解的是,该cache S6采用一种cache淘汰算法:时间滑动窗口机制(slidingtime-based expiration,STBE)。该机制给cache中每个槽位提供一个生命时钟,槽位命中或更新或生命时钟本身溢出时,该槽位生命周期复位。因此该生命时钟相当于一个根据报文命中情况的时间滑动窗口。若时间滑动窗口内有相同流号的报文请求读-修改-写片外随机可读存储器S4,则该条随机流只有第一个报文读片外随机可读存储器S4,而后续报文则依次读该条随机流前一次生成的缓存结果,每个报文结果依次写入片外随机可读存储器S4。
如图8(a)为cache S6时间滑动窗口机制下的时序图,new/hit、get data和modify三个信号均为运算单元S5中对旧数据进行修改得到新数据的时序,其中,slide windowmin为最小时间滑动窗口对应的时长,slide window max为最大时间滑动窗口对应的时长;rd_emd信号、rd_vld信号、wr_emd信号、rd_cmd’信号和wr_cmd’信号分别与上述图4(b)中时序1、时序2、时序3、时序4和时序5相类似,其相关描述可以参阅图4(b)对应的相关描述,对此此处不再赘述。此外,图8(a)中mem和cache分别与图4(a)中的片外随机寻址存储器S4和cache S6相对应,strm0表示一个任务的随机流,与后文描述中task类似,invld表示rd_vld信号输入至FIFO S2中对应的时刻。最后,对于图8(a)中的其他相关描述还可以参阅上述图4(a)和图5的相关描述,对此此处也不再赘述。
需要说明的是,使用该时间滑动窗口机制后,该系统能解决(ML-Tclk)~Trd时间内片外随机寻址存储器S4的RAW竞争冒险问题,也即时间滑动窗口检测范围为(ML-Tclk)~Trd
极限情况下,每个时钟周期都会有报文到达,而存储器控制器S3端到端操作时延相对时钟周期可能非常大,如无特殊处理,就会导致下一个同流号报文从片外随机寻址存储器S4读取的结果并非上次更新过的结果,导致RAM竞争冒险。而引入该时间滑动窗口机制后,则可保证当前报文到达后的Trd时间内同流号报文在不读片外随机寻址存储器S4的情况下能正确运算并写回片外随机寻址存储器S4。
在图8(a)的示例中,在cache S6尚空的情况下,两条寻址地址相同的流相隔ML-Tclk时间到来,第一条流没有命中cache S6,因此占用一个cache槽位,读取的旧数据为片外随机寻址存储器S4中数据;而第二条流到来时,第一条流则处在第二条流往前(ML-Tclk)~Trd的时间窗口内,因此会被命中,读取的旧数据为第一条流生成并缓存至cache S6中的数据。
在运算单元S5一种可能的计算方式为:运算单元S5根据旁路转发流水线机制对目标流号对应的旧数据进行运算得到新数据。如图8(b)所示为,未采用旁路转发流水线机制时,数据RAW竞争冒险时的流水线时空图,图9、图10和图11分别为采用旁路转发流水线机制时的流水线时空图。
如图8(b)所示,未使用旁路转发流水线机制时,task0为当前周期正在处理的任务,task1为刚到来的下一周期任务,当task1在task0的读-修改-写周期中任一个周期(读周期RD0,修改周期MF0,写周期WR0)到来时,运算单元S5不能同时处理task0和task1,便会出现拥堵,如图8所示,当task1在task0在task0的MF0周期内到达时,将会出现两个周期(MF0和WR0)的拥堵。
如图9所示,使用旁路转发流水线机制之后的一种工作状态,图9表示相邻任务数据RAW冒险,task1到来时,task0处在task1往前1周期的最小时间滑动窗口内,task1的运算输入级直接从task0的运算输出级获取数据,也可以理解为,在最小时间窗口内(如预设时长内)有两个相邻且报文流号相同的随机流相继进入运算单元S5,此时,直接将先来随机流的缓存于cache S6中新数据直接作为后来随机流的旧数据进行再次计算,类似选择器S64的选择功能,此处不再赘述。
如图10所示,使用旁路转发流水线机制之后的另一种工作状态,图10表示间隔任务书数据RAW竞争冒险,task1到来时,其时间滑动窗口内无片外随机寻址存储器S4的重复寻址,而当task2到来时,task0处在task2往前2周期的最大时间滑动窗口内,此时,直接将task2的运算输入级直接从task0的运算输出级获取数据,另一种理解看参阅图9中相应的描述,此处不再赘述。
如图11所示,使用旁路转发流水线机制之后的又一种工作状态,图11表示时间滑动窗口内任务之间无数据RAW冒险,task1和task2相继到来时,各任务往前的时间滑动窗口内均无对片外随机寻址存储器S4的重复寻址,因此,各任务均从外部随机寻址存储器中获取数据。
可选地,在一种可能的实现方式中,在使用旁路流水线转发机制时,还可以结合多副本运算技术进一步降低实现旁路流水线转发机制的难度,当然,此方法不是唯一的降低实现难度的方式,对于其他可以达到相似技术效果的方案本申请也不做任何限制。
可以理解的是,从FIFO S2接收到读有效信号开始至运算单元S5对旧数据进行运算得到新数据的这段时长,为对旧数据的修改时长,在此过程中,实现了对旧数据的修改。
步骤4:运算单元S5将计算得到的新数据写入cache S6中进行缓存,其次,cacheS6将该新数据写入存储控制器S3中,以使得存储控制器S3将该新数据写回片外随机寻址存储器S4中进行存储,以作为下一次相同报文流号的随机流到来时的旧数据使用。
可选地,在一种可能的实现方式中,运算单元S5将计算得到的新数据写入cacheS6中的数据存储器S63中,cache S6根据图7所示的映射关系确定目标地址(片外随机寻址存储器中的地址),并将新数据和目标地址写入存储控制器S3中,最终,由存储控制器S3将新数据写入片外随机寻址存储器中的目标地址中进行存储。
可以理解的是,步骤4为新数据的写入过程,因此,实现了对新数据的写入功能。
步骤5:可选地,数据上传模块S7根据预设规则通过存储控制器读取片外随机寻址存储器S4中存储的数据,以为其他应用提供数据支持。
还需要说明的是,本申请实施例中运算单元S5对旧数据的运算可以是强实时性业务的计算操作,也可以是弱实时性业务的计算操作,本申请实施例对此不做任何限制。
最后,需要说明的是,本申请流处理器中的各模块可以是基于ASIC和/或FPGA基础之上实现各模块功能的电路,对此本申请不做任何限制。
本申请实施例中,由于流处理器中包括FIFO和cache,一方面,由于FIFO具有先进先出的特性,并且可以存储一定数量的流信息,这样,当流处理器获取目标流号对应的旧数据时,其他流信息依然可以进入到FIFO中进行存储,各流信息不用排队等待,缩短流处理周期;另一方面,cache既可以缓存旧数据,因此,在某种情况下可以直接为运算单元直接提供旧数据支持,加快流处理速度,也可以缓存新数据,在流处理过程中便可以不必将新数据写入外部存储器中,可以理解缓存速度远高于外部存储器的数据写入速度,也从一定程度上缩短了流处理器的流处理周期。基于以上两方面,本申请中流处理器可以将流处理器的流处理周期从对数据的读-修改-写延迟时长减小约至数据的修改延迟时长(即运算单元由旧数据计算得到新数据所需的时长),因此,本申请可以有效地缩短流处理器的流处理周期,提高流处理速度,从而提升流处理器对强实时性业务的处理能力,处理对实时性要求更高的业务。
进一步地,通过以上步骤可以实现线速随机流100%命中、报文处理无遗漏,显著提升在100GE/400GE超宽带IP、流式计算硬件加速等领域的强实时性处理和存储能力。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种流处理器,其特征在于,包括:
先入先出存储器FIFO,运算单元,高速缓冲存储器cache;
所述FIFO接收当前流信息,其中,所述当前流信息中携带有目标流号和目标数据;
当所述FIFO接收到读有效信号时,所述FIFO将所述目标流号和所述目标数据发送给所述运算单元,并将所述目标流号发送至所述cache;
所述cache根据所述目标流号获取所述目标流号对应的旧数据,并将所述目标流号对应的旧数据发送至所述运算单元;
所述运算单元根据所述目标数据对所述目标流号对应的旧数据进行运算得到新数据,并将所述新数据发送至所述cache;
所述cache还用于:
当所述cache接收到两个相同的报文流号的时间间隔小于等于预设时长时,所述cache将缓存于所述cache中的所述旧数据发送至所述运算单元;或,
当所述cache接收到不同的报文流号,或接收到两个相同的报文流号的时间间隔大于所述预设时长时,所述cache将存储控制器发送至所述cache中的所述旧数据发送至所述运算单元;
其中,所述报文流号与外部存储器中的地址相对应,所述报文流号包括所述目标流号。
2.根据权利要求1所述的流处理器,其特征在于,所述cache包括地址处理模块,所述地址处理模块用于将所述cache接收到的报文流号存储预设时长,并删除超过所述预设时长的报文流号。
3.根据权利要求2所述的流处理器,其特征在于,所述cache还包括:时间处理模块,所述时间处理模块用于对预设时长进行管理。
4.根据权利要求2所述的流处理器,其特征在于,所述cache还包括:数据处理模块,所述数据处理模块用于存储并管理所述报文流号对应的旧数据,所述报文流号对应的旧数据为所述运算单元对上一条报文流号相同的流信息进行计算后得到的数据。
5.根据权利要求2所述的流处理器,其特征在于,所述cache还包括:选择器,所述选择器用于选择从所述cache中或存储控制器中获取所述报文流号对应的旧数据并发送至所述运算单元。
6.根据权利要求1所述的流处理器,其特征在于,所述运算单元具体用于:
根据旁路转发流水线机制,并使用所述目标数据对所述目标流号对应的旧数据进行运算得到新数据。
7.根据权利要求6所述的流处理器,其特征在于,所述FIFO还包括解析模块;
所述解析模块,用于当所述FIFO接收到所述当前流信息时,解析所述当前流信息得到所述目标流号和所述目标数据。
8.根据权利要求7所述的流处理器,其特征在于,所述流处理器还包括:存储控制器;
所述存储控制器用于将所述新数据写入到外部存储器的目标地址中,其中,所述新数据和所述目标地址由所述cache发送至所述存储控制器,所述外部存储器为位于所述流处理器之外的存储器。
9.根据权利要求8所述的流处理器,其特征在于,所述存储控制器还用于:
将所述目标流号对应的旧数据发送至所述cache,并且,向所述FIFO发送所述读有效信号。
10.根据权利要求8所述的流处理器,其特征在于,所述外部存储器包括片外随机寻址存储器。
11.根据权利要求1至10中任一项所述的流处理器,其特征在于,所述流处理器还包括:流分析模块;
所述流分析模块对网络流量进行解析,将解析后得到的所述当前流信息发送至所述FIFO,并且,向所述存储控制器发送数据读取命令。
12.根据权利要求1至10中任一项所述的流处理器,其特征在于,所述流处理器还包括:数据上传模块;
所述数据上传模块,用于根据预设规则通过所述存储控制器读取所述外部存储器中存储的数据,以为其他应用提供数据支持。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710454253.XA CN107273100B (zh) | 2017-06-15 | 2017-06-15 | 一种数据实时处理及存储装置 |
EP18817257.1A EP3627316B1 (en) | 2017-06-15 | 2018-06-14 | Real-time data processing and storage apparatus |
PCT/CN2018/091340 WO2018228493A1 (zh) | 2017-06-15 | 2018-06-14 | 一种数据实时处理及存储装置 |
US16/713,882 US11178077B2 (en) | 2017-06-15 | 2019-12-13 | Real-time data processing and storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710454253.XA CN107273100B (zh) | 2017-06-15 | 2017-06-15 | 一种数据实时处理及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273100A CN107273100A (zh) | 2017-10-20 |
CN107273100B true CN107273100B (zh) | 2021-06-08 |
Family
ID=60066291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710454253.XA Active CN107273100B (zh) | 2017-06-15 | 2017-06-15 | 一种数据实时处理及存储装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11178077B2 (zh) |
EP (1) | EP3627316B1 (zh) |
CN (1) | CN107273100B (zh) |
WO (1) | WO2018228493A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273100B (zh) | 2017-06-15 | 2021-06-08 | 华为技术有限公司 | 一种数据实时处理及存储装置 |
CN114461407B (zh) * | 2022-04-13 | 2022-08-26 | 杭州涂鸦信息技术有限公司 | 数据处理方法、装置、分发服务器、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446890A (zh) * | 2007-11-29 | 2009-06-03 | 株式会社瑞萨科技 | 流处理装置、流处理方法和数据处理系统 |
CN104469845A (zh) * | 2013-09-18 | 2015-03-25 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
CN104580025A (zh) * | 2013-10-18 | 2015-04-29 | 华为技术有限公司 | 用于开放流网络中建立带内连接的方法和交换机 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887146A (en) * | 1995-08-14 | 1999-03-23 | Data General Corporation | Symmetric multiprocessing computer with non-uniform memory access architecture |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
WO1999064954A2 (en) * | 1998-06-08 | 1999-12-16 | Koninklijke Philips Electronics N.V. | Processor with memory and data prefetch unit |
JP2001216194A (ja) * | 2000-01-28 | 2001-08-10 | Sony Corp | 演算処理装置 |
US7362772B1 (en) * | 2002-12-13 | 2008-04-22 | Nvidia Corporation | Network processing pipeline chipset for routing and host packet processing |
US7188250B1 (en) * | 2002-12-13 | 2007-03-06 | Nvidia Corporation | Method and apparatus for performing network processing functions |
US7397797B2 (en) * | 2002-12-13 | 2008-07-08 | Nvidia Corporation | Method and apparatus for performing network processing functions |
US7424571B2 (en) * | 2004-07-27 | 2008-09-09 | Gigafin Networks, Inc. | Array machine context data memory |
US7398356B2 (en) * | 2004-07-22 | 2008-07-08 | Mistletoe Technologies, Inc. | Contextual memory interface for network processor |
US7451268B2 (en) * | 2004-07-27 | 2008-11-11 | Gigafin Networks, Inc. | Arbiter for array machine context data memory |
CN1310498C (zh) * | 2004-07-30 | 2007-04-11 | 联合信源数字音视频技术(北京)有限公司 | 数字视音频解码器 |
EP1647894A3 (en) * | 2004-10-12 | 2007-11-21 | NEC Electronics Corporation | Information processing apparatus with parallel DMA processes |
US8521955B2 (en) * | 2005-09-13 | 2013-08-27 | Lsi Corporation | Aligned data storage for network attached media streaming systems |
US7783869B2 (en) * | 2006-12-19 | 2010-08-24 | Arm Limited | Accessing branch predictions ahead of instruction fetching |
CN101039323B (zh) * | 2007-04-27 | 2010-05-19 | 华中科技大学 | 多速率多协议比特流处理器 |
US8407707B2 (en) * | 2009-05-18 | 2013-03-26 | Lsi Corporation | Task queuing in a network communications processor architecture |
US8886878B1 (en) | 2012-11-21 | 2014-11-11 | Ciena Corporation | Counter management algorithm systems and methods for high bandwidth systems |
US20140201458A1 (en) | 2013-01-17 | 2014-07-17 | Spirent Communications, Inc. | Reducing cache memory requirements for recording statistics from testing with a multiplicity of flows |
US10209904B2 (en) * | 2013-04-09 | 2019-02-19 | EMC IP Holding Company LLC | Multiprocessor system with independent direct access to bulk solid state memory resources |
CN107273100B (zh) * | 2017-06-15 | 2021-06-08 | 华为技术有限公司 | 一种数据实时处理及存储装置 |
-
2017
- 2017-06-15 CN CN201710454253.XA patent/CN107273100B/zh active Active
-
2018
- 2018-06-14 EP EP18817257.1A patent/EP3627316B1/en active Active
- 2018-06-14 WO PCT/CN2018/091340 patent/WO2018228493A1/zh unknown
-
2019
- 2019-12-13 US US16/713,882 patent/US11178077B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446890A (zh) * | 2007-11-29 | 2009-06-03 | 株式会社瑞萨科技 | 流处理装置、流处理方法和数据处理系统 |
CN104469845A (zh) * | 2013-09-18 | 2015-03-25 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
CN104580025A (zh) * | 2013-10-18 | 2015-04-29 | 华为技术有限公司 | 用于开放流网络中建立带内连接的方法和交换机 |
Also Published As
Publication number | Publication date |
---|---|
US11178077B2 (en) | 2021-11-16 |
EP3627316B1 (en) | 2022-10-26 |
WO2018228493A1 (zh) | 2018-12-20 |
US20200120045A1 (en) | 2020-04-16 |
EP3627316A4 (en) | 2020-04-22 |
CN107273100A (zh) | 2017-10-20 |
EP3627316A1 (en) | 2020-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216408B2 (en) | Time sensitive networking device | |
US9690705B1 (en) | Systems and methods for processing data sets according to an instructed order | |
CN107204198B (zh) | 高速访问双倍速率同步动态随机存储器的控制方法及装置 | |
US7277982B2 (en) | DRAM access command queuing structure | |
KR101172103B1 (ko) | 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 | |
US10248350B2 (en) | Queue management method and apparatus | |
US9529622B1 (en) | Systems and methods for automatic generation of task-splitting code | |
US7904677B2 (en) | Memory control device | |
CN107783727B (zh) | 一种内存设备的访问方法、装置和系统 | |
US9594688B1 (en) | Systems and methods for executing actions using cached data | |
CN108334460B (zh) | 数据缓存方法及装置 | |
JP3678412B2 (ja) | ネットワーク・プロセッサのためのdramデータ記憶及び移動 | |
US9690713B1 (en) | Systems and methods for effectively interacting with a flash memory | |
US7783823B2 (en) | Hardware device data buffer | |
CN103077132A (zh) | 一种高速缓存处理方法及协议处理器高速缓存控制单元 | |
CN107273100B (zh) | 一种数据实时处理及存储装置 | |
US9639473B1 (en) | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location | |
US9436403B1 (en) | Memory controller with on-chip linked list memory | |
CN104573135A (zh) | 基于反射内存网与中间件技术的实时数据采集方法及装置 | |
CN117707991B (zh) | 一种数据读写方法、系统、设备及存储介质 | |
CN116257191B (zh) | 存储器的控制器、组件、电子设备及命令调度方法 | |
CN114301564B (zh) | 一种tsn节点、节点的时间确定性方法、装置和介质 | |
JP6142783B2 (ja) | メモリコントローラ,情報処理装置及びメモリコントローラの制御方法 | |
CN101145139A (zh) | 资源管理装置 | |
CN109324982B (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 |