CN112559434B - 一种多核处理器及核间数据转发方法 - Google Patents

一种多核处理器及核间数据转发方法 Download PDF

Info

Publication number
CN112559434B
CN112559434B CN201910913361.8A CN201910913361A CN112559434B CN 112559434 B CN112559434 B CN 112559434B CN 201910913361 A CN201910913361 A CN 201910913361A CN 112559434 B CN112559434 B CN 112559434B
Authority
CN
China
Prior art keywords
request
core
processor
data
storage 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
Application number
CN201910913361.8A
Other languages
English (en)
Other versions
CN112559434A (zh
Inventor
项晓燕
朱涛涛
朱峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910913361.8A priority Critical patent/CN112559434B/zh
Priority to PCT/US2020/049414 priority patent/WO2021061374A1/en
Priority to US17/013,305 priority patent/US11275707B2/en
Publication of CN112559434A publication Critical patent/CN112559434A/zh
Application granted granted Critical
Publication of CN112559434B publication Critical patent/CN112559434B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种多核处理器及核间数据转发方法。多核处理器包括:包括多个处理器核和多核互联总线,多核互联总线包括:多个请求处理接口,适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元;请求存储单元,适于接收请求处理接口发送的读数据请求,并将该读数据请求转发到其他请求处理接口;请求处理接口接收请求存储单元转发的读数据请求,将该读数据请求发送到耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口;接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到耦接的处理器核。

Description

一种多核处理器及核间数据转发方法
技术领域
本发明涉及处理器领域,尤其涉及一种多核处理器及核间数据转发方法。
背景技术
多核处理器包括多核互联总线和多个处理器核。处理器核在处理访问存储器指令时,若该访问存储指令指示的是读取存储器操作,则首先访问本地缓存,如果缓存内有请求的数据,则返回数据有效信息和所请求的数据(称为有效数据);如果缓存内没有请求的数据,则返回数据缺失信息,并向多核互联总线发送读数据请求。
在本地缓存数据缺失的情况下,各处理器核可以在数据一致性协议的约束下,通过向多核互联总线发送读数据请求,以便从同个共享区域的其他处理器核获取某个共享属性地址的数据。在现有的实现方式中,多核互联总线首先会把该读数据请求存放到请求存储单元中,然后,请求存储单元再把该读数据请求转发到共享区域的其他处理器核。其他处理器核将在各自缓存内找寻该地址对应的数据。如果能找到,那么将把该地址对应的数据返回给多核互联总线的请求存储单元,然后请求存储单元在接收到数据后,再把该数据返回给发起请求的处理器核。
现有核间数据转发的实现方案的缺点在于:
①其他处理器核所返回的数据,需要先存放到多核互联总线的请求存储单元,然后再由请求存储单元将该数据返回给发起请求的处理器核,这需要较长时间才能完成。特别是多核处理器一般都是复杂处理器,时钟工作频率高,因此往往该过程持续较多个时钟周期。
②并且由于请求存储单元需要维护多个处理器核的请求接收和返回响应操作,因此可能出现传输堵塞,所请求的数据不一定能第一时间就从请求存储单元返回给发起请求的处理器核。
因此,需要一种对核间数据转发进行加速的方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多核处理器及核间数据转发方法。
根据本发明的一个方面,提供了一种多核处理器,包括:包括多个处理器核和多核互联总线,所述多核互联总线包括:
多个请求处理接口,各请求处理接口分别与所述多个处理器核中的不同处理器核耦接,适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元;
请求存储单元,适于接收请求处理接口发送的读数据请求,并将该读数据请求转发到其他请求处理接口;
其中,所述请求处理接口还适于,
接收请求存储单元转发的读数据请求,将该读数据请求发送到耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口;以及
接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到耦接的处理器核。
可选地,根据本发明的多核处理器,其中,所述请求处理接口还适于,将耦接的处理器核所返回的请求结果发送到请求存储单元;所述请求存储单元还适于,当所有请求处理接口发送过来的请求结果中均不存在有效数据时,向与其耦接的存储器发送读数据请求,并接收所述存储器返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口。
可选地,根据本发明的多核处理器,其中,所述请求处理接口还适于:若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数据发送到耦接的处理器核;若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到耦接的处理器核。
可选地,根据本发明的多核处理器,其中,所述请求处理接口还适于,在将有效数据发送到耦接的处理器核后,丢弃所接收到的其他请求结果。
可选地,根据本发明的多核处理器,其中,所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步判断请求地址是否为共享地址,若是,将该读数据请求转发到其他请求处理接口,否则,向与其耦接的存储器发送读数据请求。
可选地,根据本发明的多核处理器,其中,还包括与请求存储单元耦接的侦听过滤器;所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步访问所述侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口。
可选地,根据本发明的多核处理器,其中,所述处理器核包括:访存处理单元,适于处理访问存储器指令,如果需要向核外读取数据,则通知总线请求单元发送读数据请求到多核互联总线;总线请求单元,适于发送读数据请求到多核互联总线;转发处理单元,适于接收多核互联总线转发的读数据请求,将该读数据请求发送到缓存读写单元;缓存读写单元,适于接收到读数据请求时访问缓存,并返回请求结果到转发处理单元;其中,所述转发处理单元还适于将请求结果发送到多核互联总线;所述总线请求单元还适于接收多核互联总线发送的有效数据,并将有效数据发送到访存处理单元。
可选地,根据本发明的多核处理器,其中,所述请求处理接口包括:请求处理单元,适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元;请求转发单元,适于将请求存储单元转发的读数据请求发送到耦接的处理器核,并将处理器核返回的请求结果发送到其他请求处理接口的结果仲裁单元;结果仲裁单元,适于接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到请求处理单元;其中所述请求处理单元还适于将接收到的有效数据发送到耦接的处理器核。
可选地,根据本发明的多核处理器,其中,所述请求存储单元接收到所述存储器返回的请求结果时,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口中的结果仲裁单元;所述结果仲裁单元还适于:若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数发送到请求处理单元;若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到请求处理单元。
可选地,根据本发明的多核处理器,其中,所述结果仲裁单元还适于,在将有效数据发送到请求处理单元后,丢弃所接收到的其他请求结果。
根据本发明另一方面,提供一种多核处理器的核间数据转发方法,所述多核处理器包括多个处理器核和多核互联总线,所述多核互联总线包括请求存储单元和多个请求处理接口,各请求处理接口分别与所述多个处理器核中的不同处理器核耦接,所述方法包括:
多个处理器核中的第一处理器核向耦接的第一请求处理接口发送读数据请求;
第一请求处理接口将该读数据请求发送到请求存储单元,由请求存储单元将该读数据请求转发到其他请求处理接口;
其他请求处理接口将该读数据请求发送到耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到第一请求处理接口;以及
第一请求处理接口根据接收到的请求结果确定有效数据,并将该有效数据发送到第一处理器核。
可选地,根据本发明的方法,还包括:其他请求处理接口将请求结果发送到请求存储单元;请求存储单元在所有请求处理接口发送过来的请求结果中均不存在有效数据时,向与其耦接的存储器发送读数据请求,并接收所述存储器返回的请求结果,将该请求结果发送到第一请求处理接口。
可选地,根据本发明的方法,还包括:所述第一请求处理接口根据接收到的请求结果确定有效数据,并将该有效数据发送到第一处理器核的步骤,包括:若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数据发送到第一处理器核;若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到第一处理器核。
可选地,根据本发明的方法,还包括:所述第一请求处理接口在将有效数据发送到第一处理器核后,丢弃所接收到的其他请求结果。
可选地,根据本发明的方法,还包括:所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步判断请求地址是否为共享地址,若是,将该读数据请求转发到其他请求处理接口,否则,向与其耦接的存储器发送读数据请求。
可选地,根据本发明的方法,还包括:所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步访问侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口。
根据本发明又一方面,还提供一种片上系统,包括上述的多核处理器。
根据本发明又一方面,还提供一种智能设备,包括上述的片上系统。
根据本发明的方案,从核间通信返回的读数据请求对应的请求结果,可以直接发送给发起请求的处理器核,无需经过请求存储单元存储后再返回,从而减少了传输时延,提高了数据的核间转发速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的多核处理器100的结构示意图;
图2示出了根据本发明一个实施例的核间数据转发的方法200流程图;
图3示出了根据本发明一个实施例的计算机系统300的示意图;以及
图4示出了根据本发明的一个实施例的片上系统(SoC)400的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例的多核处理器100的结构示意图。如图1所示,多核处理器100包括多个处理器核(CPU核0~CPU核N)和多核互联总线110,多个处理器核通过多核互联总线110进行核间通信。多核互联总线110还与存储器120耦接,存储器120中存储有数据,存储器120例如为下级缓存单元(例如L2)或者内存(例如DDR)。存储器120为下级缓存单元时,该下级缓存单元可以设置在多核处理器100内部或者多核处理器100外部。每个处理器核可以包括访存处理单元、总线请求单元、转发处理单元和缓存读写单元。
访存处理单元适于处理访问存储器指令,若访问存储指令指示的是读取存储器操作,则首先访问处理器核的本地缓存,如果缓存内有请求的数据,则返回数据有效信息和所请求的数据(称为有效数据);如果缓存内没有请求的数据,则返回数据缺失信息。在数据缺失的情况下,需要向核外读取数据,则访存处理单元向多核互联总线发起读数据请求。具体地,访存处理单元可以通知总线请求单元发送该读数据请求到多核互联总线110。
总线请求单元适于接受访存处理单元的控制,向多核互联总线110发送读数据请求。另外,总线请求单元还适于接收多核互联总线110返回的针对某个请求地址的有效数据,并将该有效数据发送到访存处理单元。针对某个请求地址的有效数据,是其他处理器核所缓存的数据,或者,是存储器120所缓存的数据。
转发处理单元适于接收多核互联总线110转发的读数据请求,并将该读数据请求发送到缓存读写单元。这里,多核互联总线110转发的读数据请求是其他处理器核发送到多核互联总线110的。当缓存读写单元返回请求结果时,转发请求接收单元还适于将该请求结果发送到多核互联总线110。
缓存读写单元适于接受转发请求接发单元的控制,当接收到转发处理单元发送的读数据请求时,访问本地缓存,进行数据的读取操作。如果缓存内没有请求的数据,则返回数据缺失信息;如果缓存内有请求的数据,则返回数据有效信息和请求的数据。
多核互联总线110包括多个请求处理接口(请求处理接口0~请求处理接口N)和请求存储单元1102,各请求处理接口分别与多个请求处理接口的不同处理器核耦接,例如,请求处理接口0与CPU核0耦接,请求处理接口N与CPU核N耦接。各请求处理器接口适于接收与该处理器接口耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元1102。请求存储单元1102适于接收和存储请求处理接口发送的读数据请求,并将该读数据请求转发到其他请求处理接口。
请求处理接口在接收到请求存储单元转发的读数据请求时,将该读数据请求发送到与该请求处理接口耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口。
请求处理接口在接收其他请求处理接口发送的请求结果时,根据接收到的请求结果确定有效数据,并将该有效数据发送到耦接的处理器核。
在一些实施例中,各请求处理接口除了将与该处理器接口耦接的处理器核所返回的请求结果,发送给与发起请求的处理器核耦接的请求处理接口之外,还可以将该请求结果发送到请求存储单元1102。相应地,请求存储单元1102还适于针对存储的某个读数据请求,判断对应的请求结果中是否具有有效数据。当所有请求处理接口发送过来的请求结果中均不存在有效数据时,请求存储单元1102向与其耦接的存储器120发送读数据请求,并接收存储器120返回的请求结果,然后,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口。
在一些实施例中,请求存储单元1102在接收到请求处理接口发送的读数据请求时,除了将该读数据请求转发到其他请求处理接口外,还可以直接将该读数据请求发送到与其耦接的存储器120,并将储器120返回的请求结果发送到与发起请求的处理器核耦接的请求处理接口。
这样,与发起请求的处理器核耦接的请求处理接口会接收到多个请求结果,即多个其他处理器核发送的请求结果以及请求存储单元1102发送的请求结果,该请求处理接口还需要对多个请求结果进行仲裁。可以理解的是,如果其他处理器核中的任意一个处理器核存在有效数据,则该数据按照多核数据一致性机制,一定是是最新数据。因此,结果仲裁单元的仲裁逻辑为,若其他请求处理接口发送过来的请求结果中存在有效数据,则将任意一个请求结果中的有效数据发送到耦接的处理器核;若其他请求处理接口所发送过来的请求结果中均不存在有效数据,则将请求存储单元1102发送过来的请求结果中的有效数据发送到耦接的处理器核。
需要说明的是,由于请求存储单元1102从存储器120中获取的有效数据,有可能比其他处理器核从缓存中获取的有效数据要老,因此,在本发明实施例中,请求处理接口对多个请求结果进行仲裁时,即使请求存储单元1102发送的有效数据结果先到,也优先使用其他请求处理接口发送的有效数据。另外,请求处理接口在将有效数据发送到耦接的处理器核后,还丢弃所接收到的其他请求结果。
在一些实施例中,请求存储单元1102在接收到请求处理接口发送的读数据请求时,并不一定会将该读数据请求转发到其他请求处理接口。请求存储单元1102会先判断请求地址是否为共享地址,若是,再将该读数据请求转发到其他请求处理接口,否则,向与其耦接的存储器120发送读数据请求。
这里,对共享地址进行补充说明。在多核处理器内,每个处理器核具有内存管理单元(MMU)和转译后备缓冲器(TLB),TLB中记录有虚拟地址和物理地址的映射关系,并记录地址的各种属性,其中的一种属性为是否共享属性。共享地址属性是指CPU核0操作的地址,CPU核1~N也会对该地址进行操作,非共享地址属性是指CPU核0操作的地址,CPU核1~N不会对该地址进行操作。相应地,如果地址具有共享属性,那么在多核处理器内,同一个共享区域内的各个处理器核可能都会对同一个数据进行访问,因此需要维护数据一致性问题。数据一致性可以由多核处理器的自身机制保证,这些机制可以从相关现有技术中获取,具体采用何种机制,本发明实施例对此不做限制。
在一些实施例中,多核互联总线110还与侦听过滤器(Snoop filter)耦接,如果需要去同个共享区域其他处理器核获取数据,可以先访问侦听过滤器(Snoop filter),确定被侦听的处理器核是否缓存有有效数据。如果没有,则不需要转发该读数据请求给该处理器核,从而减少多核互联总线110的传输负担。具体地,请求存储单元1102在接收到请求处理接口发送的读数据请求时,还进一步访问所述侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口,而不需要将该数据请求转发到与不存在有效数据的处理器核耦接的请求处理接口。
在一些实施例中,每个请求处理接口可以包括请求处理单元、请求转发单元和结果仲裁单元。
请求处理单元适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元1102。请求处理单元在接收到结果仲裁单元发送的有效数据时,还会将该有效数据发送到耦接的处理器核。
请求转发单元适于将请求存储单元1102转发的读数据请求发送到耦接的处理器核,并将处理器核返回的请求结果发送到其他请求处理接口的结果仲裁单元。
结果仲裁单元适于接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到请求处理单元。
另外,请求存储单元1102若将读数据请求发送到存储器120,则在接收到存储器120返回的请求结果时,还会该请求结果发送到与发起请求的处理器核耦接的请求处理接口中的结果仲裁单元。
相应地,结果仲裁单元还会对多个请求结果进行仲裁。具体地,若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数发送到请求处理单元;若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元1102发送过来的请求结果中的有效数据发送到请求处理单元。另外,结果仲裁单元在将有效数据发送到请求处理单元后,还会丢弃所接收到的其他请求结果。
在一些实施例中,还可以在多核互联总线110中设置一寄存器,该寄存器中存储表征是否开启加速机制的开关位,请求处理接口接收到耦接的处理器核返回的请求结果时,首先从寄存器中获取开关位的值,当所述开关位指示当前加速机制开启时,会将该请求结果发送到与发起请求的处理器核耦接的请求处理接口;当所述开关位指示当前加速机制关闭时,不将该请求结果发送到与发起请求的处理器核耦接的请求处理接口,仅将该请求结果发送到请求存储单元1102。
在一些实施例中,还可以在各请求处理接口中均设置上述的寄存器,将一些处理器核的加速机制关闭,而将另一些处理器核的加速机制打开。这样,一部分处理器核的数据请求结果通过请求存储单元转发(即按照现有技术的方式处理),而另一部分处理器核的请求请求结果可以直接在请求处理接口之间传输。
图2示出了根据本发明一个实施例的核间数据转发的方法200流程图,方法200适于在上述的多核处理器中执行。参照图2,方法200始于步骤S202。在步骤S202中,多个处理器核中的一个处理器核(例如CPU核0)向核外发起读数据请求,将该读数据请求发送到与其耦接的请求处理接口(例如请求处理接口0)。具体地,CPU核0在处理访问存储器指令时,若访问存储指令指示的是读取存储器操作,则首先访问CPU核0的本地缓存,如果缓存内没有请求的数据,则向核外发起读数据请求。
在步骤S204中,请求处理接口0在接收到CPU核0发送的读数据请求时,将该读数据请求发送到请求存储单元1102。
在步骤S206中,请求存储单元1102接收到请求处理接口0发送的读数据请求时,保存该读数据请求,并可以将该读数据请求转发到请求处理接口1~请求处理接口N。
在一些实施例中,请求存储单元1102可以对读数据请求的请求地址进行解读,如果请求地址的地址属性是共享属性,则将该读数据请求转发到同个共享区域的其他所有CPU核对应的请求处理接口,例如请求处理接口1~请求处理接口N;如果请求地址的地址属性是非共享属性,则向与其耦接的存储器120发送读数据请求,并接收存储器120返回的请求结果,将该请求结果发送到请求处理接口0。
在一些实施例中,请求存储单元1102在接收到请求处理接口0发送的读数据请求时,还进一步访问侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口。
在一些实施例中,请求存储单元1102在接收到请求处理接口0发送的读数据请求时,除了将该读数据请求转发到其他请求处理接口外,还可以直接将该读数据请求发送到与其耦接的存储器120,并接收存储器120返回的请求结果,将该请求结果发送到请求处理接口0。
在步骤S208中,请求处理接口1~请求处理接口N接收到请求存储单元1102转发的读数据请求时,将该读数据请求发送到CPU核1~CPU核N。
在步骤S210中,CPU核1~CPU核N接收到请求处理接口1~请求处理接口N发送的读数据请求时,访问各自的缓存,进行数据的读取操作,并返回请求结果到请求处理接口1~请求处理接口N。如果缓存内没有请求的数据,则返回数据缺失信息;如果缓存内有请求的数据,则返回数据有效信息和请求的数据。
在步骤S212中,请求处理接口1~请求处理接口N在接收到处理器核1~处理器核N发送的请求结果时,将该请求结果发送到请求处理接口0。
在一些实施例中,请求处理接口1~请求处理接口N还将请求结果发送到请求存储单元1102。相应地,请求存储单元1102会对所有请求结果进行判断,如果所有请求结果中均不存在有效数据时,向与其耦接的存储器120发送读数据请求,并接收存储器120返回的请求结果,将该请求结果发送到请求处理接口0。
在步骤S214中,请求处理接口0根据接收到的请求结果确定有效数据,并将该有效数据发送到CPU核0。具体地,若请求处理接口1~请求处理接口N发送过来的请求结果中存在有效数据,则将该有效数据发送到处理器核0;若请求处理接口1~请求处理接口N发送过来的请求结果中均不存在有效数据,则将请求存储单元1102发送过来的请求结果中的有效数据发送到CPU核0。请求处理接口0在将有效数据发送到CPU核0后,还会丢弃所接收到的其他请求结果。
如前所述,现有的核间数据转发方案,CPU核1~CPU核N返回的数据,需要先存放到多核互联总线的请求存储单元,然后再由请求存储单元将该数据返回给处理器核0,数据的传输路径较长,造成长路径延时。
并且,请求存储单元接收到多个CPU核的读数据请求时,需要对这些读数据请求按照来源进行仲裁,来确定优先级,并按照优先级进行排队处理,即先处理优先级高的读数据请求,将响应数据发送到对应的处理器核后,再处理优先级低的读数据请求,这样,优先级低的读数据请求对应的响应数据到达请求存储单元后,就不能在第一时间立即返回给对应的处理器核。
根据本发明的上述实施例,通过将CPU核1~CPU核N返回的读取各自缓存的操作结果直接发送给请求处理接口0,然后由请求处理接口0返回给CPU核0,由于请求结果不经过请求处理单元,一方面数据的传输路径相对较短,另一方面也避免了由于请求处理单元的排队处理带来的数据不能立即返回的风险,从而实现了核间传输数据能在最小延时内提供给CPU核0的功能。
图3示出了根据本发明一个实施例的计算机系统300的示意图。图3所示的计算机系统300可以应用于膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备。本发明不受限于此,所有可以纳入本说明书中所公开的处理器和/或其它执行逻辑的系统都在本发明的保护范围之内。
如图3所示,系统300可以包括一个或多个处理器310、315。这些处理器耦接到控制器中枢320。在一个实施例中,控制器中枢320包括图形存储器控制器中枢(GMCH)390和输入/输出中枢(IOH)350(其可以在分开的芯片上)。GMCH 390包括与存储器340和协处理器345相耦接的存储器控制器和图形控制器。IOH 350将输入/输出(I/O)设备360耦接到GMCH390。做为选择,存储器控制器和图形控制器集成在处理器中,这样存储器340和协处理器345就直接耦接到处理器310,此时控制器中枢320仅仅包括IOH 350。
附加处理器315的任选性质用虚线表示在图3中。每一处理器310、315可包括本文中描述的处理核中的一个或多个,并且可以是图1所示的多核处理器100的某一版本。
存储器340可以是例如动态随机访问存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢320经由诸如前侧总线(FSB)之类的多分支总线(multi-drop bus)、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接395与处理器310、315进行通信。
在一个实施例中,协处理器345是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢320可以包括集成图形加速器。
在一个实施例中,处理器310执行控制一般类型的数据处理操作的指令。嵌入在这些指令中的可以是协处理器指令。处理器310识别如具有应当由附连的协处理器345执行的类型的这些协处理器指令。因此,处理器310在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器345。协处理器345接受并执行所接收的协处理器指令。
图4示出了根据本发明的一个实施例的片上系统(SoC)400的示意图。图4所示的片上系统包含的应用处理器410可以是图1所示的多核处理器100。如图4所示,互连单元402耦接到应用处理器410、系统代理单元510、总线控制器单元516、集成存储器控制器单元514、一个或多个协处理器420、静态随机存取存储器(SRAM)单元430、直接存储器存取(DMA)单元432以及用于耦合至一个或多个外部显示器的显示单元440。应用处理器410包括一个或多个核502A-N的集合以及共享高速缓存单元506。协处理器420包括集成图形逻辑、图像处理器、音频处理器和视频处理器。在一个实施例中,协处理器420包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
另外,上面描述的片上系统可以包含在智能设备中,以便在智能设备中实现相应的功能,包括但不限于执行相关控制程序、进行数据分析、运算和处理、网络通信、控制智能设备中的外设等。
这样的智能设备包括专门的智能设备,如移动终端和个人数字终端等,这些设备中包括根据本发明的一个或者多个片上系统来进行数据处理,或者对设备中的外设进行控制。
这样的智能设备还包括为了实现特定功能而构造的专门设备,例如智能音箱、和智能显示设备等。这些设备中包括根据本发明的片上系统来对音箱和显示设备进行控制,从而赋予音箱和显示设备额外的通信、感知和数据处理等功能。
这样的智能设备还包括各种IoT和AIoT设备。这些设备中包括根据本发明的片上系统进行数据处理,例如进行AI运算、数据通信和传输等,从而实现了更加密集且更加智能的设备分布。
这样的智能设备还可以在车辆中使用,例如可以实现为车载设备、或者可以嵌入到车辆中,从而为车辆的智能驾驶提供数据处理能力。
这样的智能设备还可以用于家庭和娱乐领域,例如可以实现为智能音箱、智能空调、智能冰箱、智能显示设备等。这些设备包括根据本发明的片上系统来进行数据处理和外设控制,从而实现了家庭和娱乐设备的智能化。
另外,这样的智能设备还可以用于工业领域,例如可以实现为工控设备、感测设备、IoT设备,AIoT设备和制动设备等。这些设备中包括根据本发明的片上系统来进行数据处理和外设控制,从而实现了工业设备的智能化。
以上对智能设备的描述仅仅是示意性的,根据本发明的智能设备不受限于此,所有可以利用根据本发明的片上系统进行数据处理的智能设备都在本发明的保护范围之内。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (18)

1.一种多核处理器,包括多个处理器核和多核互联总线,所述多核互联总线包括:
多个请求处理接口,各请求处理接口分别与所述多个处理器核中的不同处理器核耦接,适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元;
请求存储单元,适于接收请求处理接口发送的读数据请求,并将该读数据请求转发到其他请求处理接口;
其中,所述请求处理接口还适于,
接收请求存储单元转发的读数据请求,将该读数据请求发送到耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口;以及
接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到耦接的处理器核。
2.如权利要求1所述的多核处理器,其中,所述请求处理接口还适于,将耦接的处理器核所返回的请求结果发送到请求存储单元;
所述请求存储单元还适于,当所有请求处理接口发送过来的请求结果中均不存在有效数据时,向与其耦接的存储器发送读数据请求,并接收所述存储器返回的请求结果,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口。
3.如权利要求1或2所述的多核处理器,其中,所述请求处理接口还适于:
若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数据发送到耦接的处理器核;
若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到耦接的处理器核。
4.如权利要求3所述的多核处理器,其中,所述请求处理接口还适于,在将有效数据发送到耦接的处理器核后,丢弃所接收到的其他请求结果。
5.如权利要求1至4中任一项所述的多核处理器,其中,所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步判断请求地址是否为共享地址,若是,将该读数据请求转发到其他请求处理接口,否则,向与其耦接的存储器发送读数据请求。
6.如权利要求1至5中任一项所述的多核处理器,还包括与请求存储单元耦接的侦听过滤器;
所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步访问所述侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口。
7.如权利要求1至6中任一项所述的多核处理器,其中,所述处理器核包括:
访存处理单元,适于处理访问存储器指令,如果需要向核外读取数据,则通知总线请求单元发送读数据请求到多核互联总线;
总线请求单元,适于发送读数据请求到多核互联总线;
转发处理单元,适于接收多核互联总线转发的读数据请求,将该读数据请求发送到缓存读写单元;
缓存读写单元,适于接收到读数据请求时访问缓存,并返回请求结果到转发处理单元;
其中,所述转发处理单元还适于将请求结果发送到多核互联总线;
所述总线请求单元还适于接收多核互联总线发送的有效数据,并将有效数据发送到访存处理单元。
8.如权利要求1至7中任一项所述的多核处理器,其中,所述请求处理接口包括:
请求处理单元,适于接收耦接的处理器核发送的读数据请求,并将该读数据请求发送到请求存储单元;
请求转发单元,适于将请求存储单元转发的读数据请求发送到耦接的处理器核,并将处理器核返回的请求结果发送到其他请求处理接口的结果仲裁单元;
结果仲裁单元,适于接收其他请求处理接口发送的请求结果,根据接收到的请求结果确定有效数据,并将该有效数据发送到请求处理单元;
其中所述请求处理单元还适于将接收到的有效数据发送到耦接的处理器核。
9.如权利要求8所述的多核处理器,其中,所述请求存储单元接收到所述存储器返回的请求结果时,将该请求结果发送到与发起请求的处理器核耦接的请求处理接口中的结果仲裁单元;
所述结果仲裁单元还适于:
若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数发送到请求处理单元;
若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到请求处理单元。
10.如权利要求9所述的多核处理器,其中,所述结果仲裁单元还适于,在将有效数据发送到请求处理单元后,丢弃所接收到的其他请求结果。
11.一种多核处理器的核间数据转发方法,所述多核处理器包括多个处理器核和多核互联总线,所述多核互联总线包括请求存储单元和多个请求处理接口,各请求处理接口分别与所述多个处理器核中的不同处理器核耦接,所述方法包括:
多个处理器核中的第一处理器核向耦接的第一请求处理接口发送读数据请求;
第一请求处理接口将该读数据请求发送到请求存储单元,由请求存储单元将该读数据请求转发到其他请求处理接口;
其他请求处理接口将该读数据请求发送到耦接的处理器核,并接收该处理器核读取自身缓存所返回的请求结果,将该请求结果发送到第一请求处理接口;以及
第一请求处理接口根据接收到的请求结果确定有效数据,并将该有效数据发送到第一处理器核。
12.如权利要11所述的方法,还包括:
其他请求处理接口将请求结果发送到请求存储单元;
请求存储单元在所有请求处理接口发送过来的请求结果中均不存在有效数据时,向与其耦接的存储器发送读数据请求,并接收所述存储器返回的请求结果,将该请求结果发送到第一请求处理接口。
13.如权利要求11或12所述的方法,其中,所述第一请求处理接口根据接收到的请求结果确定有效数据,并将该有效数据发送到第一处理器核的步骤,包括:
若其他请求处理接口发送过来的请求结果中存在有效数据,将该有效数据发送到第一处理器核;
若其他请求处理接口所发送过来的请求结果中均不存在有效数据,将请求存储单元发送过来的请求结果中的有效数据发送到第一处理器核。
14.如权利要求13所述的方法,还包括:所述第一请求处理接口在将有效数据发送到第一处理器核后,丢弃所接收到的其他请求结果。
15.如权利要求11至14中任一项所述的方法,其中,所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步判断请求地址是否为共享地址,若是,将该读数据请求转发到其他请求处理接口,否则,向与其耦接的存储器发送读数据请求。
16.如权利要求11至15中任一项所述的方法,其中,所述请求存储单元在接收到请求处理接口发送的读数据请求时,还进一步访问侦听过滤器,以确定存在有效数据的处理器核,并将该读数据请求转发到与存在有效数据的处理器核耦接的请求处理接口。
17.一种片上系统,包括如权利要求1-9中任一项所述的多核处理器。
18.一种智能设备,包括如权利要求17所述的片上系统。
CN201910913361.8A 2019-09-25 2019-09-25 一种多核处理器及核间数据转发方法 Active CN112559434B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910913361.8A CN112559434B (zh) 2019-09-25 2019-09-25 一种多核处理器及核间数据转发方法
PCT/US2020/049414 WO2021061374A1 (en) 2019-09-25 2020-09-04 Multi-core processor and inter-core data forwarding method
US17/013,305 US11275707B2 (en) 2019-09-25 2020-09-04 Multi-core processor and inter-core data forwarding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910913361.8A CN112559434B (zh) 2019-09-25 2019-09-25 一种多核处理器及核间数据转发方法

Publications (2)

Publication Number Publication Date
CN112559434A CN112559434A (zh) 2021-03-26
CN112559434B true CN112559434B (zh) 2023-12-08

Family

ID=74880951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910913361.8A Active CN112559434B (zh) 2019-09-25 2019-09-25 一种多核处理器及核间数据转发方法

Country Status (3)

Country Link
US (1) US11275707B2 (zh)
CN (1) CN112559434B (zh)
WO (1) WO2021061374A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117370261A (zh) * 2022-06-30 2024-01-09 深圳市中兴微电子技术有限公司 数据传输的方法、多核芯片
CN118606257A (zh) * 2024-08-07 2024-09-06 湖南进芯电子科技有限公司 一种多核系统及其通信方法、控制装置和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370696A (zh) * 2010-12-09 2013-10-23 国际商业机器公司 多核系统以及核数据读取方法
CN104462007A (zh) * 2013-09-22 2015-03-25 中兴通讯股份有限公司 实现多核间缓存一致性的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691216B2 (en) * 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US20160098279A1 (en) * 2005-08-29 2016-04-07 Searete Llc Method and apparatus for segmented sequential storage
TWI348850B (en) * 2007-12-18 2011-09-11 Ind Tech Res Inst Packet forwarding apparatus and method for virtualization switch
US8473658B2 (en) * 2011-10-25 2013-06-25 Cavium, Inc. Input output bridging
US9244846B2 (en) 2012-07-06 2016-01-26 International Business Machines Corporation Ensuring causality of transactional storage accesses interacting with non-transactional storage accesses
US10540318B2 (en) * 2017-04-09 2020-01-21 Intel Corporation Graphics processing integrated circuit package
US10062429B1 (en) * 2017-04-17 2018-08-28 Intel Corporation System, apparatus and method for segmenting a memory array
US10379856B2 (en) * 2017-06-04 2019-08-13 International Business Machines Corporation Multicopy atomic store operation in a data processing system
US10970213B2 (en) * 2019-04-30 2021-04-06 Hewlett Packard Enterprise Development Lp Selective disabling of hardware-based cache coherency and enforcement of software-based cache coherency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370696A (zh) * 2010-12-09 2013-10-23 国际商业机器公司 多核系统以及核数据读取方法
CN104462007A (zh) * 2013-09-22 2015-03-25 中兴通讯股份有限公司 实现多核间缓存一致性的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
多核处理器验证中存储数据错误快速定位机制;周宏伟;邓让钰;李永进;晏小波;窦强;;国防科技大学学报(06);全文 *
片上双核数据并行采集及核间通信研究;侯志伟;安丽霞;包理群;王海涌;;计算机工程(05);全文 *

Also Published As

Publication number Publication date
US20210089487A1 (en) 2021-03-25
WO2021061374A1 (en) 2021-04-01
US11275707B2 (en) 2022-03-15
CN112559434A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
US11755203B2 (en) Multicore shared cache operation engine
EP2476051B1 (en) Systems and methods for processing memory requests
CN105900076B (zh) 用于处理多个交易的数据处理系统及方法
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US8055805B2 (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US20190384710A1 (en) System and method for managing transactions
CN112540938B (zh) 处理器核、处理器、装置和方法
JP2008503003A (ja) コヒーレント・マルチプロセッサ・プロトコルを有するシステムにおけるダイレクト・プロセッサ・キャッシュ・アクセス
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
CN112559434B (zh) 一种多核处理器及核间数据转发方法
CN115174673B (zh) 具备低延迟处理器的数据处理装置、数据处理方法及设备
CN112559433B (zh) 一种多核互联总线、核间通信方法及多核处理器
US9652560B1 (en) Non-blocking memory management unit
CN109101439A (zh) 一种报文处理的方法及装置
US7930459B2 (en) Coherent input output device
US12066960B2 (en) System direct memory access engine offload
CN117389915B (zh) 缓存系统、读命令调度方法、片上系统及电子设备
EP4453736A1 (en) System, apparatus and methods for performing shared memory operations

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