CN109101439B - 一种报文处理的方法及装置 - Google Patents
一种报文处理的方法及装置 Download PDFInfo
- Publication number
- CN109101439B CN109101439B CN201710475363.4A CN201710475363A CN109101439B CN 109101439 B CN109101439 B CN 109101439B CN 201710475363 A CN201710475363 A CN 201710475363A CN 109101439 B CN109101439 B CN 109101439B
- Authority
- CN
- China
- Prior art keywords
- consistency
- cpu
- corresponding data
- accelerator
- bus unit
- 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
- 238000003672 processing method Methods 0.000 title description 10
- 238000012545 processing Methods 0.000 claims abstract description 130
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000001427 coherent effect Effects 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 29
- 238000013507 mapping Methods 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims 2
- 239000000523 sample Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文公布了一种报文处理的方法及装置,包括:加速器向一致性***互联总线单元发送一致性写请求;所述一致性***互联总线单元确认所述一致性写请求的相应数据是否在所述CPU的缓存,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理;在完成所述一致性处理后,所述CPU从内存读取相应数据。本申请能够节省CPU维护cache一致性的开销,有效提高报文处理的速度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种报文处理的方法及装置。
背景技术
目前,在一个片上***(SOC,System On Chip)中,通常外设或加速器会有自己维护的缓存空间,即不需要与CPU进行交互操作,这部分空间只需要软件在内存管理时分配,并把信息提供给加速器,由加速器自行管理。另一部分,则需要以共享内存的方式与CPU实现交互,即外设或加速器将描述符和报文写入内存,然后中断通知CPU处理。或者,CPU初始化描述符和报文,写入内存,通知外设或加速器读取。而在一个高性能的SOC中,CPU会使能缓存(cache),这就使得每次CPU处理报文时,都需要考虑内存一致性问题。此外,CPU从内存读取加速器写入的报文前,需先无效对应的高速缓存块(cacheline),然后才能获得内存里面最新的数据;同样,CPU将初始化的报文写入cache后,需将对应的高速缓存块清除(cacheline clean)到内存,这就使得CPU处理报文的性能受到限制。
针对相关技术中,CPU处理报文时需要维护cache一致性的开销,报文处理慢的技术问题,目前尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,本发明实施例提供了一种对报文加速处理的实现装置及方法,能够在不影响原有加速器管理自己缓存的同时解决CPU处理报文开销大、速度慢的问题。
本发明实施例提供了:
一种报文处理的方法,包括:
加速器向一致性***互联总线单元发送一致性写请求;
所述一致性***互联总线单元确认所述一致性写请求的相应数据是否在所述CPU的缓存,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理;
在完成所述一致性处理后,所述CPU从内存读取相应数据。
其中,所述加速器向一致性***互联总线单元发送一致性写请求,包括:根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性写请求。
其中,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理,包括:确认所述一致性写请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性写请求,所述CPU通过一致性***互联总线单元将所述缓存中的相应数据回写入内存,之后所述一致性***互联总线单元将所述加速器发过来的相应数据写入内存。
其中,所述加速器向一致性***互联总线单元发送一致性写请求之后、所述CPU从内存读取相应数据之前,还包括:确认所述一致性写请求的相应数据不在所述CPU的缓存时,所述一致性互联总线直接将加速器发过来的相应数据写入内存。
其中,所述一致性写请求的相应数据为报文和描述符。
一种报文处理的方法,包括:
加速器向一致性***互联总线单元发送一致性读请求;
所述一致性***互联总线单元确认所述一致性读请求的相应数据是否在所述CPU的缓存,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理;
在完成所述一致性处理后,加速器获取相应数据。
其中,所述加速器向一致性***互联总线单元发送一致性读请求,包括:根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性读请求。
其中,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理,包括:确认所述一致性读请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性读请求,所述CPU将所述缓存中的相应数据通过所述一致性***互联总线单元返回给加速器。
其中,所述加速器向一致性***互联总线单元发送一致性读请求之后、所述加速器获取相应数据之前,还包括:确认所述一致性读请求的相应数据不在所述CPU的缓存时,所述一致性互联总线将所述加速器发过来的一致性读请求发送给内存,加速器从所述内存中获取相应数据。
其中,所述一致性读请求为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,所述一致性读请求为报文的一致性读请求,所述一致性读请求的相应数据为报文。
其中,在所述加速器获取的相应数据为描述符时,所述加速器再根据所述描述符内提供的***报文地址,继续发送相应报文的一致性读请求并获取相应报文。
一种报文处理的装置,包括:加速器、一致性***互联总线单元、CPU;
所述加速器,包括一致性请求控制单元和写读数据控制单元,所述一致性请求控制单元用于向一致性***互联总线单元发送一致性写请求;或者,用于向一致性***互联总线单元发送一致性读请求;所述写读数据控制单元,用于获取所述一致性读请求的相应数据;
所述一致性***互联总线单元,用于确认所述一致性写请求的相应数据是否在所述CPU的缓存,在所述一致性写请求的相应数据在所述CPU的缓存时与所述CPU共同执行一致性处理;或者,用于确认所述一致性读请求的相应数据是否在所述CPU的缓存时,在所述一致性读请求的相应数据在所述CPU的缓存时与所述CPU共同执行一致性处理;
所述CPU,用于在完成所述一致性处理后,从内存读取所述一致性写请求的相应数据。
其中,所述加速器,还包括:队列号内存属性映射寄存器表,所述队列号内存属性映射寄存器表保存有所述数据的内存属性;所述一致性请求控制单元,具体用于根据所述队列号内存属性映射寄存器表中所述数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性写请求或一致性读请求。
其中,所述一致性***互联总线单元,具体用于确认所述一致性写请求的相应数据存在于所述CPU的缓存时,向所述CPU发送一致性写请求,将来自所述CPU缓存的相应数据回写入内存,之后再将所述加速器发过来的相应数据写入内存;
所述CPU,还用于在收到所述一致性***互联总线单元发送的一致性写请求时,将缓存中所述一致性写请求的相应数据发送给所述一致性***互联总线单元,以便回写入内存;
所述写读数据控制单元,还用于将所述一致性写请求的相应数据发送给所述一致性***互联总线单元,以便写入内存。
其中,所述一致性***互联总线单元,还用于在确认所述一致性写请求的相应数据不在所述CPU的缓存时,直接将加速器发过来的相应数据写入内存。
其中,所述一致性***互联总线单元,具体用于确认所述一致性读请求的相应数据在所述CPU的缓存时,向所述CPU发送一致性读请求,接收所述CPU发送的相应数据并返回给加速器;
所述CPU,还用于在收到所述一致性***互联总线单元发送的一致性读请求时,将缓存中所述一致性读请求的相应数据发送给所述一致性***互联总线单元,以便所述一致性***互联总线单元返回给加速器;
所述加速器的写读数据控制单元,具体用于接收所述一致性***互联总线单元发送的所述相应数据。
其中,所述一致性***互联总线单元,具体用于确认所述一致性读请求的相应数据不在所述CPU的缓存时,直接将所述加速器发过来的一致性读请求发送给内存,并将来自所述内存的、所述一致性读请求的相应数据返回给加速器;所述写读数据控制单元,具体用于接收所述一致性***互联总线单元发送的所述相应数据。
其中,所述一致性读请求为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,所述一致性读请求为报文的一致性读请求,所述一致性读请求的相应数据为报文。
本发明实施例中,可通过加速器、CPU以及一致性***互联总线单元来共同完成相应的一致性处理,相较于相关技术中的处理报文流程,可以达到透明处理报文的效果,节省了CPU维护cache一致性的开销,有效提高报文处理的速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例一中报文处理方法的流程示意图;
图2为本发明实施例二中报文处理方法的流程示意图;
图3为本发明实施例三中报文处理装置的结构示意图;
图4为实例1中报文处理装置的示例性结构框图;
图5为实例3中示例性报文处理流程的示意图;
图6为实例4中示例性报文处理流程的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
本实施例提供一种报文处理的方法,如图1所示,包括:
步骤101,加速器向一致性***互联总线单元发送一致性写请求;
步骤102,所述一致性***互联总线单元确认所述一致性写请求的相应数据是否在所述CPU的缓存,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理;
步骤103,在完成所述一致性处理后,所述CPU从内存读取相应数据。
本实施例中,在CPU从内存读取数据时通过加速器、CPU以及一致性***互联总线单元来共同完成相应的一致性处理,相较于相关技术中的处理报文流程,可以达到透明处理报文的效果,节省了CPU维护cache一致性的开销,有效提高报文处理的速度。
本实施例中,可以预先设定CPU中存储器管理单元(MMU,Memory ManagementUnit)的内存属性,该内存属性可以设定为:加速器和CPU有数据交互的共享内存缓冲区(比如,cache或内存中的区域)设定为可共享(shareable)(表示CPU与加速器都可访问该区域)或可缓冲(cacheable)(表示CPU可通过cache缓冲内存数据)。同时,设定加速器中描述符队列、报文的内存属性与所述MMU里面设定的一致。如此,可确保cache和DDR中至少部分区域是加速器和CPU都能够访问的。
本实施例中,可以根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性写请求。
此外,还可以根据报文的类型、长度等信息在加速器中设定其报文匹配规则,以便在加速器可以根据该报文匹配规则确定相应报文是否支持与CPU共享(如,CPU通过加速器提取数据,或者CPU向加速器***数据等)。也就是说,加速器可以预先根据报文的描述符判断该报文是否符合上述报文匹配规则,在符合上述报文匹配规则的情况下再本实施例的上述报文处理方法。
一种实现方式中,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理,可以包括:确认所述一致性写请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性写请求,所述CPU通过一致性***互联总线单元将所述缓存中的相应数据回写入内存,之后所述一致性***互联总线单元将所述加速器发过来的相应数据写入内存。如此,可在需要执行一致性处理时,由一致性***互联总线单元、CPU以及加速器等共同完成一致性处理,从而有效减少CPU维护cache一致性的开销,大幅提升报文处理的速度。
一种实现方式中,所述加速器向一致性***互联总线单元发送一致性写请求之后、所述CPU从内存读取相应数据之前,还可以在确认所述一致性写请求的相应数据不在所述CPU的缓存时,所述一致性互联总线直接将加速器发过来的相应数据写入内存。
本实施例中,上述一致性写请求的相应数据为报文。
本实施例中,一致性***互联总线单元确认所述一致性写请求的相应数据是否在所述CPU的cache的方式可以有很多种。例如,一致性***互联总线单元可以通过自身内部的Snoop filter查询相应数据是否在CPU的cache中。其中,Snoop filter用于记录CPUcache中的数据状态,可通过查询CPU cache中的数据状态确认相应数据是否在CPU的cache中。当然,在其他实现方式中,一致性***互联总线单元可通过其他方式确认相应数据是否在所述CPU的cache,具体的确认过程和确认方式可根据实际场景的不同进行调整。
实际应用中,本实施例的上述报文处理方法可通过计算设备实现。该计算设备可以是用于执行本实施例上述方法步骤的任何类型的设备,该计算至少包括上述的CPU、内存、加速器、支持一致性处理的***总线。比如,该计算设备可以被体现为(但不限于)集成电路有线终端,例如,可以体现为ONU、交换机、WIFI路由器等。
实施例二
一种报文处理的方法,如图2所示,可以包括:
步骤201,加速器向一致性***互联总线单元发送一致性读请求;
步骤202,所述一致性***互联总线单元确认所述一致性读请求的相应数据是否在所述CPU的缓存,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理;
步骤203,在完成所述一致性处理后,加速器获取相应数据。
本实施例中,加速器需要将本地数据传输给外部设备(也就是CPU需要向加速器***数据时),可通过CPU和一致性***互联总线单元来共同完成相应的一致性处理,相较于相关技术中的处理报文流程,可以达到透明处理报文的效果,节省了CPU维护cache一致性的开销,有效提高报文处理的速度。
本实施例中,可以预先设定CPU中存储器管理单元(MMU,Memory ManagementUnit)的内存属性,该内存属性可以设定为:加速器和CPU有数据交互的共享内存缓冲区(比如,cache或内存中的区域)设定为可共享(shareable)(表示CPU与加速器都可访问该区域)或可缓冲(cacheable)(表示CPU可通过cache缓冲内存数据)。同时,设定加速器中描述符队列、报文的内存属性与所述MMU里面设定的一致。如此,可确保cache和DDR中至少部分区域是加速器和CPU都能够访问的。
本实施例中,可以根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,加速器向一致性***互联总线单元发送一致性读请求。
一种实现方式中,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理,可以包括:确认所述一致性读请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性读请求,所述CPU将所述缓存中的相应数据通过所述一致性***互联总线单元返回给加速器。如此,可在需要执行一致性处理时,由一致性***互联总线单元、CPU以及加速器等共同完成一致性处理,从而有效减少CPU维护cache一致性的开销,大幅提升报文处理的速度。
另一种实现方式中,所述加速器向一致性***互联总线单元发送一致性读请求之后、所述加速器获取相应数据之前,确认所述一致性读请求的相应数据不在所述CPU的缓存时,所述一致性互联总线可以将所述加速器发过来的一致性读请求发送给内存,加速器从所述内存中获取相应数据。
本实施例中,所述一致性读请求可以为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,所述一致性读请求可以为报文的一致性读请求,所述一致性读请求的相应数据为报文。这里,在所述加速器获取的相应数据为描述符时,所述加速器再根据所述描述符内提供的***报文地址,继续发送相应报文的一致性读请求并获取相应报文。
实际应用中,CPU可以主动将队列号、描述符偏移量等提供给加速器,加速器根据这两个信息就可以获取到描述符,然后根据描述符获取到报文。加速器获取描述符和报文的过程即为本实施例上述方法的实现过程。
实际应用中,本实施例的上述报文处理方法可通过计算设备实现。该计算设备可以是用于执行本实施例上述方法步骤的任何类型的设备,该计算至少包括上述的CPU、内存、加速器、支持一致性处理的***总线。该计算至少包括上述的CPU、内存、加速器、支持一致性处理的***总线。比如,该计算设备可以被体现为(但不限于)集成电路有线终端,例如,可以体现为ONU、交换机、WIFI路由器等。实施例三
一种报文处理的装置,如图3所示,包括:加速器31、一致性***互联总线单元32、CPU33;其中,
所述加速器31,包括一致性请求控制单元311和写读数据控制单元312,所述一致性请求控制单元311用于向一致性***互联总线单元32发送一致性写请求;或者,用于向一致性***互联总线单元32发送一致性读请求;所述写读数据控制单元312,用于获取所述一致性读请求的相应数据;
所述一致性***互联总线单元32,用于确认所述一致性写请求的相应数据是否在所述CPU 33的缓存,在所述一致性写请求的相应数据在所述CPU的缓存时与所述CPU 33共同执行一致性处理;或者,用于确认所述一致性读请求的相应数据是否在所述CPU 33的缓存时,在所述一致性读请求的相应数据在所述CPU 33的缓存时与所述CPU 33共同执行一致性处理;
所述CPU 33,用于在完成所述一致性处理后,从内存读取所述一致性写请求的相应数据。
一种实现方式中,加速器31,还可以包括:队列号内存属性映射寄存器表,所述队列号内存属性映射寄存器表保存有所述数据的内存属性;所述一致性请求控制单元311,具体可用于根据所述队列号内存属性映射寄存器表中所述数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元32发送一致性写请求或一致性读请求。
一种实现方式中,所述一致性***互联总线单元32,具体可用于确认所述一致性写请求的相应数据存在于所述CPU 33的缓存时,向所述CPU 33发送一致性写请求,将来自所述CPU 33缓存的相应数据回写入内存,之后再将所述加速器发过来的相应数据写入内存;所述CPU 33,还可用于在收到所述一致性***互联总线单元32发送的一致性写请求时,将缓存中所述一致性写请求的相应数据发送给所述一致性***互联总线单元32,以便回写入内存;所述写读数据控制单元312,还可用于将所述一致性写请求的相应数据发送给所述一致性***互联总线单元32,以便写入内存。
这里,所述一致性***互联总线单元32,还可用于在确认所述一致性写请求的相应数据不在所述CPU 33的缓存时,直接将加速器31发过来的相应数据写入内存。
另一种实现方式中,所述一致性***互联总线单元32,具体可用于确认所述一致性读请求的相应数据在所述CPU 33的缓存时,向所述CPU 33发送一致性读请求,接收所述CPU 33发送的相应数据并返回给加速器31;所述CPU 33,还可用于在收到所述一致性***互联总线单元32发送的一致性读请求时,将缓存中所述一致性读请求的相应数据发送给所述一致性***互联总线单元32,以便所述一致性***互联总线单元32返回给加速器31;所述加速器31的写读数据控制单元312,具体可用于接收所述一致性***互联总线单元32发送的所述相应数据。
这里,所述一致性***互联总线单元32,具体可用于确认所述一致性读请求的相应数据不在所述CPU的缓存时,直接将所述加速器31发过来的一致性读请求发送给内存,并将来自所述内存的、所述一致性读请求的相应数据返回给加速器31;所述写读数据控制单元312,具体可用于接收所述一致性***互联总线单元32发送的所述相应数据。
本实施例中,所述一致性读请求为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,所述一致性读请求为报文的一致性读请求,所述一致性读请求的相应数据为报文。所述一致性写请求的相应数据可以为报文和描述符。
本实施例的上述报文处理装置可实现实施例一和实施例二所述方法的所有细节。本实施例的上述报文处理装置可以通过加速器、CPU以及一致性***互联总线单元来共同完成相应的一致性处理,可以达到透明处理报文的效果,节省了CPU维护cache一致性的开销,有效提高报文处理的速度。
实际应用中,本实施例的上述报文处理装置可以设置于计算设备中,或者可以体现为所述计算设备,该计算设备可以是用于执行本实施例上述功能的任何类型的设备。比如,该计算设备可以被体现为(但不限于)集成电路有线终端,例如,可以体现为ONU、交换机、WIFI路由器等。
下面提供了本文公开技术的示例性实例。需要说明的是,下文所述实例的实现方式可任意组合,也都可以单独执行。
实例1
本实例是上文所述报文处理装置的一种示例性结构,该示例性结构是上文实施例三中报文处理装置的一种示例性实现方式。实际应用中,可根据实际需要或具体应用场景的不同调整报文处理装置的一种硬件结构或软件配置。例如,可以在本实例所示结构的CPU、加速器、一致性***互联总线单元、DDR中增加其他的功能单元,也可以在本示例所示结构中增加其他硬件,例如,可以增加协处理器、存储器等,该存储器可配置存储所述处理器可读的计算机程序,该协处理器与所述处理器、存储器连接,协处理器可协同处理器执行一些处理。
如图4所示,本实例中,报文处理装置包括:CPU、DDR、加速器以及一致性***互联总线单元,其中,CPU、DDR以及加速器通过所述一致性***互联总线单元连接,CPU中包含cache。
本实例中,加速器可以是能够执行本文上述实施例所述功能的任何类型的加速器。该加速器的作用包括但不限于将来自外部设备的数据(如报文)写入内存、从本地的CPUcache或DDR中读取数据(如报文和描述符)并传输给外部设备。实际应用中,该加速器可通过多种形式实现。比如,加速器可以体现为ONU设备的报文处理单元,WIFI处理单元等。
如图4所示,加速器可以包括:寄存器(图中未示)、***总线接口控制模块、队列管理单元、报文先入先出队列(FIFO)、描述符FIFO等。其中,寄存器中保存有队列号内存属性映射寄存器表。***总线接口控制模块包括:一致性请求控制单元和写读数据控制单元。一致性请求控制单元负责实现一致性处理相关的功能,写读数据控制单元负责实现数据的写读,例如,将需要传输给外部设备的报文***报文FIFO、或者需要写入DDR的报文从报文FIFO中读出。其中,报文FIFO包括两路,一路是需要传输给外部设备的报文,另一路是需要写入DDR的报文。队列管理单元用于基于输入的报文描述符、其他请求或***报文请求计算描述符队列号、队内偏移量等,并将待处理的描述符放入描述符FIFO。
本实例中,一致性***互联总线单元可以为能够执行本文上述功能的任何类型的总线,也就是说,是支持一致性处理的***总线。比如,一种实现方式中,可以是支持一致性处理的ACE总线。当然,在其他实现方式中还可采用其他类型的总线。这里,一致性处理功能是指能够完成本文上述实施例中与一致性处理相关步骤的功能。
本实例中,一致性***互联总线单元可以包括:监听过滤器(Snoop filter)。Snoop filter用于记录CPU cache中的数据状态,并可用于查询一个或多个报文或描述符是否在CPU的cache中。比如,Snoop filter可以通过tag line记录各个cacheline的状态,tag line中标记有cacheline是否空闲、及其报文信息(如报文的内存地址等)。
本实例中,处理器可以是能够执行本文上述实施例所述功能的任何类型的处理器。例如,处理器可以为单一或多核处理器、数字信号处理器、微处理器、或其他处理器或处理/控制电路。在一些实现方式中,报文处理装置可以包括一个或一个以上的处理器。
本实例中,内存(DDR)中通过不同队列存储数据(报文及其描述符)。如图3所示,内存(DDR)中包含队列0、队列1、……、队列N,Desc_0、Desc_1、……、Desc_n-1、Desc_n为描述符字段,Databuf_0、Databuf_1、……、Databuf_n-1、Databuf_n表示报文内容。描述符中包含Databuf的基本信息,如地址,长度等信息。
本实例中,内存(DDR)可以是随机存取存储器(RAM)、动态随机存取存储器(DRAM)等形式。
实例2
本实例是上文实施例一所述报文处理处理方法的一种示例性实现过程。本实例通过实例1中的报文处理装置来实现。
本实例中,在图4所示的报文处理装置中,通过软件的方式可预先设定CPU中存储器管理单元(MMU,Memory Management Unit)的内存属性,该内存属性可以设定为:加速器和CPU有数据交互的共享内存缓冲区(比如,内存中的区域)设定为可共享(shareable)(表示CPU与加速器都可访问该区域)或可缓冲(cacheable)(表示CPU可通过cache缓冲内存数据)。此外,还可通过软件的方式同理设定加速器中寄存器的队列号内存属性映射寄存器表,即设定描述符队列、报文的内存属性与所述MMU里面设定的一致。根据报文的类型,长度等信息设定报文匹配规则,提取出符合规则的报文。如此,可确保DDR中至少部分区域是加速器和CPU都能够访问的。
实际应用中,还可以通过软件的方式根据报文的类型、长度等信息在所述队列号内存属性映射寄存器表中设定其报文匹配规则,以便加速器可以根据该报文匹配规则识别报文是否需要CPU处理,需要CPU处理时将其加入到对应的队列(通过分配队列号将其加入队列)。
对于需要提交给CPU处理的报文,报文描述符经过加速器的队列管理单元,加速器的队列管理单元分配描述符队列号、描述符的队内偏移量以及报文缓冲区地址等信息并加入描述符。在加速器的***总线接口控制模块,根据队列号内存属性映射表控制一致性请求控制单元,通过队列号和队内偏移量计算描述符的内存地址,根据描述符提供的报文缓冲区地址得到报文的内存地址,***总线接口控制模块向***总线(即,一致性***互联总线单元)发出一致性写请求。如图1中路径a所示,一致性***互联总线单元首先向内部的监听过滤器(Snoop filter)(用于记录CPU cache中数据状态)发起查询,确认所述一致性写请求所对应地址的数据是否在CPU cache中。如果所述一致性写请求所对应地址的数据是在CPU cache中,如图1中路径b所示,一致性***互联总线单元继续向CPU发起一致性写请求,执行如图1中路径c和路径d所示流程:CPU(如,CPU中用于维护一致性的功能单元(图3中未示出))通过一致性***互联总线单元将cache中的相应数据(如,报文)回写到DDR,然后,如图1中路径e所示,一致性***互联总线单元将加速器(如,加速器的写读数据控制单元)发过来的写数据写到DDR中;如果所述一致性写请求所对应地址的数据不是在CPU cache中,一致性互联总线将加速器发过来的写数据直接写到内存(DDR)中。这个过程中,完成了内存一致性处理。加速器中断通知CPU处理报文,此时,CPU的软件可以直接通过一致性***互联总线单元从DDR中读取所述描述符和报文并进行处理。
实例3
本实例是上文实施例二所述报文处理处理方法的一种示例性实现过程。本实例通过实例1中的报文处理装置来实现。
本实例中,在图4所示的报文处理装置中,通过软件的方式可预先设定CPU中存储器管理单元(MMU,Memory Management Unit)的内存属性,该内存属性可以设定为:加速器和CPU有数据交互的共享内存缓冲区(比如,cache或内存中的区域)设定为可共享(shareable)(表示CPU与加速器都可访问该区域)或可缓冲(cacheable)(表示CPU可通过cache缓冲内存数据)。此外,还可通过软件的方式同理设定加速器中寄存器的队列号内存属性映射寄存器表,即设定描述符队列、报文的内存属性与所述MMU里面设定的一致。
CPU需要***数据到加速器时,CPU的软件将要***的描述符和报文写到cache中,将***的描述符队列号,队内偏移量通知加速器来读取。加速器根据队列号内存属性映射寄存器表控制***总线接口控制模块中的一致性请求控制单元,通过队列号和队内偏移量计算描述符的内存地址,***总线接口控制模块向***总线(即,一致性***互联总线单元)发出一致性读描述符请求。一致性***互联总线单元首先向内部的Snoop filter发起查询,确认所述一致性读描述符请求所请求的描述符是否在CPU的cache中。
如果所述描述符是在CPU的cache中,则一致性***互联总线单元继续向CPU发起一致性读描述符请求(该请求的类型可以是snoop请求),CPU(比如,CPU中用于维护一致性的功能单元)将cache中的描述符返回给一致性***互联总线单元,由一致性***互联总线单元再将描述符返回给加速器。
如果所述一致性读描述符请求所请求的描述符不在CPU的cache中,则一致性***互联总线单元将加速器发过来的一致性描述符报文请求直接发送给DDR,从DDR中获取所述描述符。
加速器获取描述符后,根据所述描述符内提供的***报文地址,继续向***总线(即,一致性***互联总线单元)发出一致性读报文请求,一致性***互联总线单元首先向内部的Snoop filter发起查询,确认所述一致性读报文请求所请求的报文是否在CPU的cache中,如果所述报文是在CPU的cache中,则一致性***互联总线单元继续向CPU发起一致性读报文请求(该请求的类型可以是snoop请求),CPU(比如,CPU中用于维护一致性的功能单元)将cache中的相应报文返回给一致性***互联总线单元,由一致性***互联总线单元再将所述报文返回给加速器(例如,加速器的写读数据控制单元)。也就是说,加速器从CPU cache中获取报文。
如果所述一致性读报文请求所请求的报文不在CPU的cache中,则一致性***互联总线单元将加速器发过来的一致性读报文请求直接发送给DDR,DDR将相应报文返回给一致性***互联总线单元,由一致性***互联总线单元再将所述报文返回给加速器(例如,加速器的写读数据控制单元),也就是说,加速器从DDR中获取报文。
上述过程中,完成了内存一致性处理。内存一致性处理完成之后,加速器的***总线接口控制模块把从总线(如,一致性***互联总线单元)上获取的报文送给内部报文FIFO,完成报文***操作。
实例4
本实例包括CPU需要提取数据时的报文处理流程,该流程是上文实施例一中报文处理方法的一种示例性实现方式。实际应用中,还可以采用其他实施方式。例如,可以在本实例流程中增加其他步骤,或者根据实际需要或具体应用场景的不同调整本流程中某些步骤的执行顺序。
如图5所示,本实例中CPU需要提取数据时的报文处理流程,可以包括:
步骤401,CPU提供需提取报文的描述符,加速器将该报文的描述符输入自身;
步骤402,加速器的队列管理单元为所述报文的描述符分配队列ID、队内偏移量、报文缓冲区地址等;
步骤403,队列管理模块把描述符压入描述符FIFO;
步骤404,加速器的***总线接口控制模块根据队列ID获得内存属性,根据队内偏移量获得描述符的内存地址;
步骤405,加速器将描述符写入内存;
具体的,加速器中***总线接口控制模块的写读数据控制单元通过一致性***互联总线单元将所述描述符写入内存。
步骤406,根据描述符里面的报文缓冲区地址,加速器向一致性***互联总线单元请求将报文FIFO中的报文写入内存;
具体的,加速器中***总线接口控制模块的一致性请求控制单元向所述一致性***互联总线单元发送所述报文的一致性写请求。
步骤407,一致性***总线根据加速器的一致性写请求判断是否需要一致性处理,并在需要时执行一致性处理;
具体的,一致性***互联总线单元确认所述报文是否在CPU的cache中;如果所述报文在CPU的cache中,一致性***互联总线单元向CPU发送所述描述符的一致性写请求,CPU通过一致性***互联总线单元将cache中的报文回写入内存,然后进入步骤408,一致性***互联总线单元再将加速器提供的所述报文写入内存,如此,在内存中将CPU cache中的报文用加速器新提供的报文覆盖,使得内存中的报文为最新值,同时CPU cache中所述报文的相应cacheline被无效,变为空闲状态,从而完成一致性处理。如果所述描述符不在CPU的cache中,则不需要执行一致性处理,直接进入步骤408,一致性***互联总线单元可以直接将加速器提供的报文写入内存。
实际应用中,对于不需要CPU处理的报文,缓冲到DDR时,相应请求如果是非一致性的,那么该非一致性的请求是不需要snoopfilter查询的。也就是说,针对非一致性的请求可以不执行本步骤,如此,可避免因频繁的查询而降低***总线的性能,进而避免降低CPU的性能。
步骤408,将加速器报文FIFO中的报文写入内存;
步骤409,加速器中断通知CPU处理报文;
步骤410,CPU的软件在中断服务程序中处理,完成报文提取。
实际应用中,加速器通过中断通知CPU处理,CPU收到中断通知后,执行对应的中断服务程序,在中断服务程序里完成对应事件的处理。
实例5
本实例包括CPU需要提取数据时的报文处理流程,该流程是上文实施例一中报文处理方法的一种示例性实现方式。实际应用中,还可以采用其他实施方式。例如,可以在本实例流程中增加其他步骤,或者根据实际需要或具体应用场景的不同调整本流程中某些步骤的执行顺序。
如图6所示,本实例中报文处理流程可以包括:
步骤501,CPU的软件将描述符和报文写入cache;
步骤502,CPU的软件通知加速器***报文请求,包括要***报文的队列ID、队内偏移量;
步骤503,加速器的队列管理单元将所述描述符***FIFO;
步骤504,队列管理模块把描述符压入描述符FIFO;
步骤505,在加速器的***总线接口控制模块根据队列ID获得内存属性,根据队内偏移量获得描述符的内存地址;
步骤506,加速器的一致性请求控制单元向一致性***互联总线单元请求读取描述符;
具体的,加速器的一致性请求控制单元向一致性***互联总线单元发送描述符的一致性读请求;一致性***互联总线单元确认所述描述符是否在CPU的cache中;如果所述描述符在CPU的cache中,一致性***互联总线单元向CPU发送所述描述符的一致性读请求,由CPU将cache中的描述符通过一致性***互联总线单元发送给加速器;如果所述描述符不在CPU的cache中,一致性***互联总线单元向内存发送所述描述符的一致性读请求,由内存将所述描述符通过一致性***互联总线单元发送给加速器。
从步骤507,根据读回的描述符里面的报文缓冲地址,继续向一致性***互联总线单元请求读取报文;
具体的,加速器中***总线接口控制模块的一致性请求控制单元根据读回的描述符里面的报文缓冲地址,继续向一致性***互联总线单元发送报文的一致性读请求。
步骤508,一致性***互联总线单元根据加速器的一致性读请求判断是否需要一致性处理,并在需要时执行一致性处理;
步骤509,一致性处理完成后,加速器的写读数据控制单元从cache或内存中读取到报文;
步骤508和步骤509中,一致性***互联总线单元确认所述报文是否在CPU的cache中,如果所述报文在CPU的cache中,一致性***互联总线单元向CPU发送所述报文的一致性读请求,由CPU将cache中的所述报文通过一致性***互联总线单元发送给加速器。如果所述报文不在CPU的cache中,一致性***互联总线单元向内存发送所述报文的一致性读请求,由内存将所述报文通过一致性***互联总线单元发送给加速器。
步骤510,加速器的写读数据控制单元将报文返回给加速器的报文FIFO;
步骤511,加速器完成报文***。
实例6
本申请可应用于光网络单元(ONU,Optical Network Unit)或其他类似的设备。
实际应用中,可以将上文所述装置设置于ONU中,通过多个加速器可以加速完成ONU部分协议报文(比如,以太网的桥管理地址协议(GMVP);地址解析协议(ARP);Internet控制报文协议(ICMP)等)的处理,以及WIFI报文(比如,802.11a/b/g/n/11ac协议报文)与以太网报文(比如,802.3协议报文)转换的效率。
一种实现方式中,上文中各实施例及各实例可应用于ONU协议报文处理。通过加速器可使CPU在此类场景下处理报文的过程更快,同时也更少的占用CPU资源。比如,ONU的报文处理单元通过加速器单元将硬件无法处理的协议报文送给CPU,CPU处理后再***到报文处理单元。
一种实现方式中,上文中各实施例及各实例可应用于ONU WIFI转发业务。加速器可使CPU在此类场景下处理报文的过程更快,同时也更少的占用CPU资源。比如,ONU的以太网报文处理单元通过加速器将转发给WIFI处理单元的报文写入内存,CPU对协议转换处理后,WIFI处理单元通过加速器单元读取报文;或者,WIFI处理单元通过加速器单元将发给以太网报文处理单元的报文写入内存,CPU对协议转换处理后,以太网报文处理单元通过加速器单元读取报文。
需要说明的是,上述各个实例中,对于加速器自己管理的内存缓冲区,可以通过软件方式设定相应MMU的内存属性为不可共享(unshareable)、不可缓存(uncacheable);软件设定加速器内部描述符队列和报文的内存属性与MMU里面设定的一致。对于加速器自己管理的队列读写请求,加速器的***总线接口控制模块根据读写队列的内存属性,向***总线(如,一致性***互联总线单元)发出普通的读写请求,一致性***互联总线单元将接收到的读写请求直接传递给DDR,完成读写操作。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (17)
1.一种报文处理的方法,包括:
加速器向一致性***互联总线单元发送一致性写请求;
所述一致性***互联总线单元确认所述一致性写请求的相应数据是否在CPU的缓存,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理,包括:确认所述一致性写请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性写请求,所述CPU通过一致性***互联总线单元将所述缓存中的相应数据回写入内存,之后所述一致性***互联总线单元将所述加速器发过来的相应数据写入内存;
在完成所述一致性处理后,所述CPU从内存读取相应数据。
2.根据权利要求1所述的方法,其特征在于,
所述加速器向一致性***互联总线单元发送一致性写请求,包括:根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性写请求。
3.根据权利要求1所述的方法,其特征在于,所述加速器向一致性***互联总线单元发送一致性写请求之后、所述CPU从内存读取相应数据之前,还包括:
确认所述一致性写请求的相应数据不在所述CPU的缓存时,所述一致性互联总线直接将加速器发过来的相应数据写入内存。
4.根据权利要求1至3任一项所述的方法,其特征在于,
所述一致性写请求的相应数据为报文和描述符。
5.一种报文处理的方法,包括:
加速器向一致性***互联总线单元发送一致性读请求;
所述一致性***互联总线单元确认所述一致性读请求的相应数据是否在CPU的缓存,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理;
在完成所述一致性处理后,加速器获取相应数据,其中,
所述一致性***互联总线单元确认所述一致性读请求的相应数据是否在所述CPU的缓存,包括:所述一致性***互联总线单元通过自身内部的snoop filter查询相应数据是否在CPU的cache中。
6.根据权利要求5所述的方法,其特征在于,
所述加速器向一致性***互联总线单元发送一致性读请求,包括:根据相应数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性读请求。
7.根据权利要求5所述的方法,其特征在于,所述一致性读请求的相应数据在所述CPU的缓存时执行一致性处理,包括:
确认所述一致性读请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性读请求,所述CPU将所述缓存中的相应数据通过所述一致性***互联总线单元返回给加速器。
8.根据权利要求5所述的方法,其特征在于,所述加速器向一致性***互联总线单元发送一致性读请求之后、所述加速器获取相应数据之前,还包括:
确认所述一致性读请求的相应数据不在所述CPU的缓存时,所述一致性互联总线将所述加速器发过来的一致性读请求发送给内存,加速器从所述内存中获取相应数据。
9.根据权利要求5至8任一项所述的方法,其特征在于,
所述一致性读请求为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,
所述一致性读请求为报文的一致性读请求,所述一致性读请求的相应数据为报文。
10.根据权利要求9所述的方法,其特征在于,
在所述加速器获取的相应数据为描述符时,所述加速器再根据所述描述符内提供的***报文地址,继续发送相应报文的一致性读请求并获取相应报文。
11.一种报文处理的装置,其特征在于,包括:加速器、一致性***互联总线单元、CPU;
所述加速器,包括一致性请求控制单元和写读数据控制单元,所述一致性请求控制单元用于向一致性***互联总线单元发送一致性写请求;或者,用于向一致性***互联总线单元发送一致性读请求;所述写读数据控制单元,用于获取所述一致性读请求的相应数据;
所述一致性***互联总线单元,用于确认所述一致性写请求的相应数据是否在所述CPU的缓存,在所述一致性写请求的相应数据在所述CPU的缓存时与所述CPU共同执行一致性处理;或者,用于确认所述一致性读请求的相应数据是否在所述CPU的缓存时,在所述一致性读请求的相应数据在所述CPU的缓存时与所述CPU共同执行一致性处理;其中,所述一致性写请求的相应数据在所述CPU的缓存时执行一致性处理,包括:确认所述一致性写请求的相应数据在所述CPU的缓存时,一致性***互联总线单元向所述CPU发送一致性写请求,所述CPU通过一致性***互联总线单元将所述缓存中的相应数据回写入内存,之后所述一致性***互联总线单元将所述加速器发过来的相应数据写入内存;
所述CPU,用于在完成所述一致性处理后,从内存读取所述一致性写请求的相应数据。
12.根据权利要求11所述的装置,其特征在于,
所述加速器,还包括:队列号内存属性映射寄存器表,所述队列号内存属性映射寄存器表保存有所述数据的内存属性;
所述一致性请求控制单元,具体用于根据所述队列号内存属性映射寄存器表中所述数据的内存属性,判断是否需要执行一致性处理;在需要执行一致性处理时,向一致性***互联总线单元发送一致性写请求或一致性读请求。
13.根据权利要求11所述的装置,其特征在于,
所述一致性***互联总线单元,具体用于确认所述一致性写请求的相应数据存在于所述CPU的缓存时,向所述CPU发送一致性写请求,将来自所述CPU缓存的相应数据回写入内存,之后再将所述加速器发过来的相应数据写入内存;
所述CPU,还用于在收到所述一致性***互联总线单元发送的一致性写请求时,将缓存中所述一致性写请求的相应数据发送给所述一致性***互联总线单元,以便回写入内存;
所述写读数据控制单元,还用于将所述一致性写请求的相应数据发送给所述一致性***互联总线单元,以便写入内存。
14.根据权利要求11或13所述的装置,其特征在于,
所述一致性***互联总线单元,还用于在确认所述一致性写请求的相应数据不在所述CPU的缓存时,直接将加速器发过来的相应数据写入内存。
15.根据权利要求11所述的装置,其特征在于,
所述一致性***互联总线单元,具体用于确认所述一致性读请求的相应数据在所述CPU的缓存时,向所述CPU发送一致性读请求,接收所述CPU发送的相应数据并返回给加速器;
所述CPU,还用于在收到所述一致性***互联总线单元发送的一致性读请求时,将缓存中所述一致性读请求的相应数据发送给所述一致性***互联总线单元,以便所述一致性***互联总线单元返回给加速器;
所述加速器的写读数据控制单元,具体用于接收所述一致性***互联总线单元发送的所述相应数据。
16.根据权利要求11所述的装置,其特征在于,
所述一致性***互联总线单元,具体用于确认所述一致性读请求的相应数据不在所述CPU的缓存时,直接将所述加速器发过来的一致性读请求发送给内存,并将来自所述内存的、所述一致性读请求的相应数据返回给加速器;
所述写读数据控制单元,具体用于接收所述一致性***互联总线单元发送的所述相应数据。
17.根据权利要求11、15或16所述的装置,其特征在于,
所述一致性读请求为描述符的一致性读请求,所述一致性读请求的相应数据为描述符;和/或,
所述一致性读请求为报文的一致性读请求,所述一致性读请求的相应数据为报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475363.4A CN109101439B (zh) | 2017-06-21 | 2017-06-21 | 一种报文处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475363.4A CN109101439B (zh) | 2017-06-21 | 2017-06-21 | 一种报文处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101439A CN109101439A (zh) | 2018-12-28 |
CN109101439B true CN109101439B (zh) | 2024-01-09 |
Family
ID=64796226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710475363.4A Active CN109101439B (zh) | 2017-06-21 | 2017-06-21 | 一种报文处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101439B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003792B (zh) * | 2020-07-23 | 2022-04-15 | 烽火通信科技股份有限公司 | 一种软硬件协同的报文加速方法和装置 |
CN111935020A (zh) * | 2020-09-22 | 2020-11-13 | 四川科道芯国智能技术股份有限公司 | 报文生成方法及电路及存储介质 |
CN117785489B (zh) * | 2024-02-27 | 2024-05-10 | 苏州元脑智能科技有限公司 | 一种服务器及一种任务执行方法、装置和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0428149A2 (en) * | 1989-11-13 | 1991-05-22 | Matra Design Semiconductor, Inc. | Cache controller |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5155824A (en) * | 1989-05-15 | 1992-10-13 | Motorola, Inc. | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address |
JP2001147858A (ja) * | 1999-10-01 | 2001-05-29 | Stmicroelectronics Inc | ハイブリッドコヒーレンスプロトコル |
CN1564139A (zh) * | 2004-03-25 | 2005-01-12 | 威盛电子股份有限公司 | 数据撷取方法及*** |
CN101042679A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 维护存储器一致性的方法和*** |
CN101617298A (zh) * | 2004-06-08 | 2009-12-30 | 飞思卡尔半导体公司 | 用于dma、任务终止和同步操作的缓存一致保持 |
CN102165424A (zh) * | 2008-09-24 | 2011-08-24 | 松下电器产业株式会社 | 高速缓冲存储器、存储器***及其控制方法 |
CN103186492A (zh) * | 2011-12-28 | 2013-07-03 | 联芯科技有限公司 | 基于axi总线的数据一致性保护方法及其*** |
CN104462007A (zh) * | 2013-09-22 | 2015-03-25 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN106681949A (zh) * | 2016-12-29 | 2017-05-17 | 北京四方继保自动化股份有限公司 | 基于一致性加速接口的直接内存操作实现方法 |
-
2017
- 2017-06-21 CN CN201710475363.4A patent/CN109101439B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5155824A (en) * | 1989-05-15 | 1992-10-13 | Motorola, Inc. | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address |
EP0428149A2 (en) * | 1989-11-13 | 1991-05-22 | Matra Design Semiconductor, Inc. | Cache controller |
JP2001147858A (ja) * | 1999-10-01 | 2001-05-29 | Stmicroelectronics Inc | ハイブリッドコヒーレンスプロトコル |
CN1564139A (zh) * | 2004-03-25 | 2005-01-12 | 威盛电子股份有限公司 | 数据撷取方法及*** |
CN101617298A (zh) * | 2004-06-08 | 2009-12-30 | 飞思卡尔半导体公司 | 用于dma、任务终止和同步操作的缓存一致保持 |
CN101042679A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 维护存储器一致性的方法和*** |
CN102165424A (zh) * | 2008-09-24 | 2011-08-24 | 松下电器产业株式会社 | 高速缓冲存储器、存储器***及其控制方法 |
CN103186492A (zh) * | 2011-12-28 | 2013-07-03 | 联芯科技有限公司 | 基于axi总线的数据一致性保护方法及其*** |
CN104462007A (zh) * | 2013-09-22 | 2015-03-25 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN106681949A (zh) * | 2016-12-29 | 2017-05-17 | 北京四方继保自动化股份有限公司 | 基于一致性加速接口的直接内存操作实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109101439A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500689B2 (en) | Communication method and apparatus | |
US11755203B2 (en) | Multicore shared cache operation engine | |
CN111431757B (zh) | 虚拟网络的流量采集方法及装置 | |
US8799584B2 (en) | Method and apparatus for implementing multi-processor memory coherency | |
TW201539196A (zh) | 用於處理多個交易之資料處理系統及方法 | |
CN109101439B (zh) | 一种报文处理的方法及装置 | |
CN111143244A (zh) | 计算机设备的内存访问方法和计算机设备 | |
US8443148B2 (en) | System-wide quiescence and per-thread transaction fence in a distributed caching agent | |
US20200241777A1 (en) | Method, device, and computer readable storage medium for managing storage | |
KR101087811B1 (ko) | 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치 | |
WO2017027840A1 (en) | Register files for i/o packet compression | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
US9158692B2 (en) | Cache injection directing technique | |
CN104239270A (zh) | 一种高速缓存同步的方法及装置 | |
CN113495854A (zh) | 主机-设备***中实现或管理缓存一致性的方法和*** | |
CN117555836A (zh) | 一种数据处理装置、***及电子设备 | |
CN115174673B (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
JPH04313126A (ja) | 分散ファイルシステムのファイル入出力方式 | |
KR100978082B1 (ko) | 공유 메모리형 멀티 프로세서에 있어서의 비동기 원격 절차 호출 방법 및 비동기 원격 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
US20210349840A1 (en) | System, Apparatus And Methods For Handling Consistent Memory Transactions According To A CXL Protocol | |
CN112559434B (zh) | 一种多核处理器及核间数据转发方法 | |
US20210397560A1 (en) | Cache stashing system | |
US20230195662A1 (en) | Coherent block read fulfillment | |
KR101233109B1 (ko) | 캐쉬 일관성을 맞추기 위해 멀티 코어들 간에 발생하는 통신량을 감소시키는 시스템 및 방법 | |
US11327890B1 (en) | Partitioning in a processor cache |
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 |