CN102779110A - 基于远端代码调用和数据访问的多核心系统及其控制方法 - Google Patents
基于远端代码调用和数据访问的多核心系统及其控制方法 Download PDFInfo
- Publication number
- CN102779110A CN102779110A CN2011101212386A CN201110121238A CN102779110A CN 102779110 A CN102779110 A CN 102779110A CN 2011101212386 A CN2011101212386 A CN 2011101212386A CN 201110121238 A CN201110121238 A CN 201110121238A CN 102779110 A CN102779110 A CN 102779110A
- Authority
- CN
- China
- Prior art keywords
- core
- communication node
- speed cache
- message
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
提供一种基于远端代码调用和数据访问的多核心系统及其控制方法。特别是一种对称/非对称多核心系统及控制方法。多核心系统分离了其多个处理单元的本地地址空间,通过其多个处理单元的通信节点,实现高速非本地代码调用和数据访问。通讯节点与核心共享本地高速缓存,本地高速缓存只缓存本地地址空间的数据,本地核心只执行本地地址空间的代码。核心访问非本地数据时,核心委托本地通讯节点发送数据访问消息至远端通讯节点直接访问远端缓存。核心调用非本地代码时,核心通过本地通讯节点发送调用消息至远端节点,远端节点向远端核心发送调用中断,待远端核心调用完成通过远端通讯节点返回消息至本地通讯节点,本地通讯节点向本地核心发送返回中断。
Description
技术领域
本发明是关于一种多核心系统,且特别是关于一种避免高速缓存一致性问题的可高效互操作的对称或非对称多核心系统,具体的讲是关于基于远端代码调用和数据访问的多核心系统及其控制方法。
背景技术
多核中央处理器是在单一芯片上集成两个以上的处理器单元,可同时调度执行多个程序,大幅提高处理器的性能。相比提升频率和集成度,具有难度小和功耗低的优势。
流行的多核处理器多数是共享内存的对称多核处理器,代码/数据可同时存在多个高速缓存,一般使用监听协议、目录协议解决数据缓存一致性问题。流式处理机一般采用指定共享空间的方式。
发明内容
本发明提供一种多核心系统及其控制方法,每个处理单元的本地高速缓存只能存储本地代码和数据,非本地代码调用和数据访问须通过通讯节点发送消息至远端来进行。此多核心系统由于同一数据只存于单个高速缓存,从而避免了缓存一致性问题。本发明提供了一种基于高效远端代码调用和数据访问的核心互操作新方式。
上述的多核心系统包括第一处理单元、第二处理单元以及内部总线。第一处理单元包括第一核心、第一通信节点以及第一高速缓存。第二处理单元包括第二核心、第二通信节点以及第二高速缓存。第一核心用以执行第一地址空间的代码,并打包其地址属于第二地址空间的消息。第一通信节点耦接于第一核心,用以接收及传递消息。第一高速缓存耦接于第一核心及第一通信节点,用以缓存第一地址空间的代码和数据。第二核心用以执行第二地址空间的代码,并打包其地址属于第一地址空间的消息。第二通信节点耦接于第二核心,用以接收及传递消息。第二高速缓存耦接于第二核心及第二通信节点,用以缓存第二地址空间的代码和数据。内部总线耦接于第一通信节点及第二通信节点之间,用以将该第一核心所打包的消息传送至该第二通信节点,并将该第二核心所打包的消息传送至该第一通信节点。第一高速缓存可被第一核心和第一通讯节点同时访问,而第二高速缓存可被第二核心和第二通讯节点同时访问。
上述的控制方法包括利用第一核心执行第一地址空间的代码,并打包其地址属于第二地址空间的消息。上述的控制方法并包括利用第二核心执行第二地址空间的代码,并打包其地址属于第一地址空间的消息。上述的控制方法更包括利用第一高速缓存缓存第一地址空间的代码和数据。上述的控制方法更包括利用第二高速缓存缓存第二地址空间的代码和数据。上述的控制方法更包括利用内部总线,将第一核心所打包的消息传送至第二通信节点,并将第二核心所打包的消息传送至第一通信节点。上述的控制方法更包括允许第一高速缓存可被第一核心和第一通讯节点同时访问,并允许第二高速缓存可被第二核心和第二通讯节点同时访问。
在本发明的一实施例中,当第一高速缓存被第一核心和第一通讯节点同时访问时,第一核心和第一通讯节同时自第一高速缓存读取数据,而当第二高速缓存被第二核心和第二通讯节点同时访问时,第二核心和第二通讯节同时自第二高速缓存读取数据。
在本发明的一实施例中,第一核心更包括两个寄存器,分别用以定义第一地址空间的开始地址和结束地址,而第二核心更包括另两个寄存器,分别用以定义第二地址空间的开始地址和结束地址。
在本发明的一实施例中,第一核心更包括一个核心编号寄存器,用以定义第一地址空间的高位数值,而第二核心更包括另一个核心编号寄存器,用以定义第二地址空间的高位数值。
在本发明的一实施例中,在第一处理单元调用第二地址空间的第一函数的期间,第一核心先将第一调用消息打包并通过第一通信节点传送第一调用消息至第二通信节点,然后第一核心可执行其他的线程,而第二通信节点再将第一调用消息传送至第二核心,并产生调用中断以令第二核心执行第一函数。当第二核心执行完成第一函数后,第二核心产生第一返回消息,并通过第二通信节点、内部总线及第一通信节点将第一返回消息传送至第一核心,第一通信节点并产生返回中断以使第一核心继续运行原有线程。
在本发明的一实施例中,在第二处理单元调用第一地址空间的第二函数的期间,第二核心先将第二调用消息打包,并通过第二通信节点传送第二调用消息至第一通信节点,然后第二核心可执行其他的线程,而第一通信节点再将第二调用消息传送至第一核心,并产生调用中断以令第一核心执行第二函数。当第一核心执行完成第二函数后,产生第二返回消息,并通过第一通信节点、内部总线及第二通信节点将第二返回消息传送至第二核心,第二通信节点并产生另一返回中断以使第二核心继续运行原有线程。
在本发明的一实施例中,在第一核心访问第二高速缓存的一特定数据的期间,第一核心经由第一通信节点及内部总线,令第二通信节点从第二高速缓存读取特定数据,之后所读取的特定数据通过第二通信节点、内部总线及第一通信节点被传送至第一核心。
在本发明的一实施例中,在第一核心存取第二高速缓存的一特定数据的期间,第一核心经由第一通信节点及内部总线,令第二通信节点将特定数据写入至第二高速缓存。
在本发明的一实施例中,上述的多核心系统是建构在一单一芯片中。
基于上述,本发明的多核心系统每个处理单元有独立的本地地址空间,并通过其多个处理单元的通信节点,将非本地访问消息传送至相应的通信节点,以完成远端代码调用及/或数据访问。如此,所有地址空间的数据只会存在于一个高速缓存中,从而避免对称多核心系统中的缓存一致性问题。另外,由于非对称的多核心系统某些代码只适合在某个核心执行,而非共享内存的多核心系统某些代码只存在于本地内存,本发明提供的远端调用机制可以在非对称/非共享内存的多核心系统高效实现对这些代码的调用。
附图说明
图1为本发明一实施例的多核心系统的功能方块图。
图2为图1多核心系统在处理非本地指令消息时的流程图。
附图标号:
100:多核心系统
110A、110B、110C:处理单元
120A、120B、120C:核心
130A、130B、130C:高速缓存
132A、132B、132C:消息缓存
140A、140B、140C:通信节点
150:内部总线
S202~S250:本发明的一实施例的多核心系统在处理非本地访问时的各步骤
具体实施方式
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
请参照图1,图1为本发明一实施例的多核心系统100的功能方块图。多核心系统100包括多个处理单元110A、110B及110C。需注意地,虽然在本实施例中是以多核心系统100包括三个处理单元来说明,但本发明并不以此为限,可以包含两个或三个以上的处理单元。此外,在本发明一实施例中,多核心系统100是建构在单一芯片中。
每一个处理单元110A、110B及110C包括核心、高速缓存以及通信节点。以处理单元110A为例,处理单元110A包括核心120A、高速缓存130A以及通信节点140A。相似地,处理单元110B包括核心120B、高速缓存130B以及通信节点140B;而处理单元110C包括核心120C、高速缓存130C以及通信节点140C。多核心系统100另包括内部总线150,其耦接于各处理单元110A、110B及110C的通信节点140A、140B及140C。上述多个核心120A、120B及120C用以执行代码,并可平行地执行多个线程。每一通信节点140A、140B及140C分别耦接于相应的核心120A、120B及120C,用以接收及传递消息。每一高速缓存130A、130B及130C则耦接于相应的核心120A、120B或120C以及相应的通信节点140A、140B或140C,用以缓存相应的核心120A、120B或120C的本地代码和数据。每一高速缓存130A、130B及130C包含有相应的消息缓存132A、132B及132C,用以缓存由相应的通信节点140A、140B或140C所接收的消息。
当每一核心120A、120B或120C执行指令时,该核心会依据指令所在的地址及访存指令产生的数据地址,来区分其地址是本地地址或远端地址(即非本地地址)。详细地来说,每个核心配有两个寄存器指定其本地地址范围的开始地址和结束地址,或者每个核心配有一个核编号寄存器。其中每一核心120A、120B或120C的指令及数据的地址如果在该核心的本地地址范围之内,或者每一核心120A、120B或120C的指令及数据的地址高位所指示的核编号与该核心的核编号相等时,则上述指令及数据的地址视为该核心的本地地址,否则视为该核心的远端地址。此外,具有本地地址的代码和指令分别称为“本地代码”和“本地指令”,而具有远端地址的代码和指令分别称为“非本地代码”和“非本地指令”。再者,对于本地地址的数据访问称为“本地访问”,而对于远端地址的数据访问称为“远端访问”。
以每个核心配有两个寄存器的编址方式为例,每个核心配有两个寄存器指定其本地地址范围的开始地址和结束地址。其中,核心120A所配有的两个寄存器分别指定核心120A的本地地址范围的开始地址和结束地址分别为A1、A2;核心120B所配有的两个寄存器分别指定核心120B的本地地址范围的开始地址和结束地址分别为A3、A4:而核心120C所配有的两个寄存器分别指定核心120C的本地地址范围的开始地址和结束地址分别为A5、A6。地址落在地址范围A1~A2的地址对核心120A来说是本地地址,但对核心120B和120C来说则是远端地址。同理,地址落在地址范围A3~A4的地址对核心120B来说是本地地址,但对核心120A和120C来说则是远端地址;而地址落在地址范围A5~A6的地址对核心120C来说是本地地址,但对核心120A和120B来说则是远端地址。
此外,以地址高位是核编号的编址方式为例,核心120A、120B及120C的核编号分别为C01、C02和C03。当核心120A执行到其地址高位所指示的核编号为C01的指令时,此一指令则由核心120A执行,其中此一由核心120A所执行的指令的地址对核心120A来说是本地地址,但对核心120B及120C来说则是远端地址。此外,当核心120A执行至其地址高位所指示的核编号为C02的指令时,核心120A将产生调用消息,并通过通信节点140A、内部总线150及通信节点140A将调用消息传送至核心120B执行。其中,上述调用消息所对应的地址对核心120B来说是本地地址,但对核心120A及120C来说则是远端地址。相似地,当核心120A执行至其地址高位所指示的核编号为C03的指令时,核心120A将产生调用消息,并通过通信节点140A、内部总线150及通信节点140C将调用消息传送至核心120C执行。其中,此一调用消息所对应的地址对核心120C来说是本地地址,但对核心120A及120B来说则是远端地址。至于其他核心120B及120C也相似,亦即核心120B及120C会依据指令的地址高位所指示的的核编号来将代码配置给相应的核心执行。
请参照图2,图2为图1多核心系统100在处理非本地访问时的流程图。在此一实施例中,为方便说明,将产生远端访问的处理单元称为第一处理单元,并将最终执行上述访问的处理单元称为第二处理单元。举例来说,当核心120A产生其地址属于核心120B的本地地址范围的指令时,则此一指令会被视为非本地指令,而处理单元110A则被视为第一处理单元,处理单元110B则为第二处理单元。相似地,当核心120A产生其地址属于核心120C的本地地址范围的指令消息时,则对此一指令而言,处理单元110A为第一处理单元,而处理单元110C则为第二处理单元。类似地,当核心120B或核心120C产生指令时,而此一指令的地址非属于该核心的本地地址范围时,则该处理单元为第一处理单元,而相应核编号的处理单元则为第二处理单元。
此外,为方便说明,上述的第一处理单元的核心、快速缓存及通信节点分别称为第一核心、第一快速缓存及第一通信节点,而上述的第二处理单元的核心、快速缓存及通信节点分别称为第二核心、第二快速缓存及第二通信节点。举例来说,倘若处理单元110B和110C分别为第一处理单元和第二处理单元,则上述的第一核心、第一快速缓存及第一通信节点分别为核心120B、快速缓存130B及通信节点140B,而上述的第二核心、第二快速缓存及第二通信节点分别为核心120C、快速缓存130C及通信节点140C。
此外,第一高速缓存可被第一核心和第一通讯节点同时访问,而第二高速缓存可被第二核心和第二通讯节点同时访问。再者,第一核心的本地地址范围称为第一地址空间,而第二核心的本地地址范围称为第二地址空间。在此定义下,第一高速缓存即是用以缓存上述第一地址空间的代码和数据,而第二高速缓存则是用以缓存上述第二地址空间的代码和数据。当第一高速缓存被第一核心和第一通讯节点同时访问时,第一核心和第一通讯节同时自第一高速缓存读取数据,而当第二高速缓存被第二核心和第二通讯节点同时访问时,第二核心和第二通讯节同时自第二高速缓存读取数据。此外,第一核心还用以打包其地址属于第二地址空间的消息,而第二核心还用以打包其地址属于第一地址空间的消息。
请再参考图2。在步骤S202,第一执行单元的第一核心产生指令。在步骤S203中,第一核心会判断所产生的指令的地址是否为本地地址。倘若指令的地址为本地地址,则所产生的指令会由第一核心执行。反之,倘若指令的地址为非本地地址,则进行步骤S204,此时第一核心会将进入消息打包流程。上述的消息打包流程,举例来说,包括建立函数参数及指针参数指向的子结构。之后,在步骤S206中,第一处理单元会通过第一通信节点将打包后的消息发送至与指令的地址相符的第二核心。之后,在步骤S208,第一核心会将其线程切换至别的线程,以执行其他的代码。在步骤S210中,当第二处理单元的第二通信节点接收到来自第一通信节点的消息时,第二通信节点会判断此一消息是否为外核函数调用的指令远端调用消息。若是,则在后续的步骤S212中,第二通信节点会将此一指令远端调用消息写入至第二快速缓存中的消息缓存。之后,在步骤S214中,第二通信节点会产生调用中断,以通知第二核心。之后,在步骤S216中,当第二核心接收到第二通信节点所传送的上述调用中断后,第二核心会将储存于第二快速缓存中的消息缓存的指令远端调用消息解包。之后,在步骤S218中,第二核心依据解包后的消息,执行第一核心所要调用的函数。之后,在步骤S220中,第二核心依据执行调用函数的结果,产生返回消息。而在步骤S222中,第二执行单元通过第二通信节点将上述的返回消息传送至第一执行单元的第一通信节点。
当第一处理单元的第一通信节点接收来自第二通信节点的返回消息后,在步骤S224中,第一通信节点会将返回消息写入至第一消息缓存。之后,在步骤S226中,第一通信节点会产生返回中断,并将所产生的返回中断传送至第一核心,以通知第一核心。之后,在步骤S228中,当第一核心接收到第一通讯节点所传送的返回中断后,第一核心会处理储存于第一快速缓存中的消息缓存的返回消息。之后,在步骤S230中,第一核心切换回原本的线程,以完成外核函数调用。
此外,在步骤S210中,倘若第二通信节点判断来自第一通信节点的消息并非指令远端调用消息时,则第二通信节点在步骤S240中会判断此一消息是否为读数据消息。倘若此一消息为读数据消息,则在步骤S242中,第二通信节点会从第二高速缓存中读取相应的数据,并将所读取的数据通过第二通信节点及内部总线150传送至第一通信节点。换言之,在第一核心访问第二高速缓存的一特定数据的期间,第一核心经由第一通信节点及内部总线,令第二通信节点从第二高速缓存读取上述的特定数据,之后所读取的特定数据通过第二通信节点、内部总线及第一通信节点被传送至第一核心。
此外,在步骤S240中,倘若第二通信节点判断来自第一通信节点的消息并非为读数据消息时,则第二通信节点在步骤S250中会判断此一消息是否为写数据消息。倘若此一消息为写消息,则在步骤S252中,第二通信节点会将此一消息中所配置的写入数据写至第二高速缓存。换言之,在第一核心存取第二高速缓存的一特定数据的期间,第一核心经由第一通信节点及内部总线,令第二通信节点将上述的特定数据写入至第二高速缓存。
换言之,在第一处理单元调用第二地址空间的第一函数的期间,第一核心先将第一调用消息打包并通过第一通信节点传送第一调用消息至第二通信节点,然后第一核心可执行其他的线程,而第二通信节点再将第一调用消息传送至第二核心,并产生调用中断以令第二核心执行第一函数。其中,当第二核心执行完成第一函数后,第二核心产生第一返回消息,并通过第二通信节点、内部总线及第一通信节点将第一返回消息传送至第一核心,第一通信节点并产生返回中断以使第一核心继续运行原有线程。
相对于上述第一核心调用第二核心的函数,第二核心亦可调用第一核心的函数。为方便说明,第一核心在步骤S202所产生的消息称为第一调用消息,所调用的函数称为第一函数,而第二核心在步骤S220所产生的返回消息称为第一返回消息。相较之下,第二核心用以调用第一核心的函数的消息则称为第二调用消息,所调用的函数称为第二函数,而第一核心完成调用第二函数后所产生的返回消息则称为第二返回消息。当第二核心调用第一核心的第二函数的期间,第二通信节点传送第二调用消息至第一通信节点,而第一通信节点再将第二调用消息传送至第一核心,并产生调用中断,以令第一核心执行第二函数。当第一核心执行完成第二函数后,第一核心会产生第二返回消息,并通过第一通信节点、内部总线及第二通信节点将第二返回消息传送至第二核心。之后,第二核心依据第二返回消息更新第二高速缓存,第二通信节点并产生另一返回中断以使第二核心继续运行原有线程。
换言之,在第二处理单元调用第一地址空间的第二函数的期间,第二核心先将第二调用消息打包,并通过第二通信节点传送第二调用消息至第一通信节点,然后第二核心可执行其他的线程,而第一通信节点再将第二调用消息传送至第一核心,并产生调用中断以令第一核心执行第二函数。其中当第一核心执行完成第二函数后,第一核心产生第二返回消息,并通过第一通信节点、内部总线及第二通信节点将第二返回消息传送至第二核心,第二通信节点并产生另一返回中断以使第二核心继续运行原有线程。
在本发明一实施例中,揭露了一种控制图1的多核心系统100的方法。详言之,上述的控制方法包括利用第一核心执行第一地址空间的代码,并打包其地址属于第二地址空间的消息。上述的控制方法并包括利用第二核心执行第二地址空间的代码,并打包其地址属于第一地址空间的消息。上述的控制方法更包括利用第一高速缓存缓存第一地址空间的代码和数据。上述的控制方法更包括利用第二高速缓存缓存第二地址空间的代码和数据。上述的控制方法更包括利用内部总线,将第一核心所打包的消息传送至第二通信节点,并将第二核心所打包的消息传送至第一通信节点。上述的控制方法更包括允许第一高速缓存可被第一核心和第一通讯节点同时访问,并允许第二高速缓存可被第二核心和第二通讯节点同时访问。
综上所述,上述实施例的多核心系统分离了其多个处理单元的地址空间,并通过其多个处理单元的通信节点,传送相应消息传送至相应的处理单元核心,以完成远端函数调用及/或数据访问。当相应的处理单元处理完消息后,会将其结果通过返回消息传送回本地的处理单元。如此一来,既保证了数据缓存的唯一性从而避免缓存不一致的问题,也使得本地直接调用异地代码成为可能。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当以权利要求所界定范围为准。
Claims (18)
1.一种多核心系统,其特征在于,所述多核心系统包括:
一第一处理单元,包括:
一第一核心,用以执行一第一地址空间的代码,并打包其地址属于一第二地址空间的消息;
一第一通信节点,耦接于所述第一核心,用以接收及传递消息;以及
一第一高速缓存,耦接于所述第一核心及所述第一通信节点,用以缓存所述第一地址空间的代码和数据;
一第二处理单元,包括:
一第二核心,用以执行所述第二地址空间的代码,并打包其地址属于所述第一地址空间的消息;
一第二通信节点,耦接于所述第二核心,用以接收及传递消息;以及
一第二高速缓存,耦接于所述第二核心及所述第二通信节点,用以缓存所述第二地址空间的代码和数据;以及
一内部总线,耦接于所述第一通信节点及所述第二通信节点之间,用以将所述第一核心所打包的消息传送至所述第二通信节点,并将所述第二核心所打包的消息传送至所述第一通信节点;
其中所述第一高速缓存可被所述第一核心和所述第一通讯节点同时访问,所述第二高速缓存可被所述第二核心和所述第二通讯节点同时访问。
2.如权利要求1所述的多核心系统,其特征在于,当所述第一高速缓存被所述第一核心和所述第一通讯节点同时访问时,所述第一核心和所述第一通讯节同时自所述第一高速缓存读取数据,而当所述第二高速缓存被所述第二核心和所述第二通讯节点同时访问时,所述第二核心和所述第二通讯节同时自所述第二高速缓存读取数据。
3.如权利要求1所述的多核心系统,其特征在于,所述第一核心更包括两个寄存器,分别用以定义所述第一地址空间的开始地址和结束地址,而所述第二核心更包括另两个寄存器,分别用以定义所述第二地址空间的开始地址和结束地址。
4.如权利要求1所述的多核心系统,其特征在于,所述第一核心更包括一个核心编号寄存器,用以定义所述第一地址空间的高位数值,而所述第二核心更包括另一个核心编号寄存器,用以定义所述第二地址空间的高位数值。
5.如权利要求1所述的多核心系统,其特征在于,在所述第一处理单元调用所述第二地址空间的第一函数的期间,所述第一核心先将第一调用消息打包并通过所述第一通信节点传送所述第一调用消息至所述第二通信节点,然后所述第一核心可执行其他的线程,而所述第二通信节点再将所述第一调用消息传送至所述第二核心,并产生调用中断以令所述第二核心执行所述第一函数;
其中当所述第二核心执行完成所述第一函数后,所述第二核心产生第一返回消息,并通过所述第二通信节点、所述内部总线及所述第一通信节点将所述第一返回消息传送至所述第一核心,所述第一通信节点并产生返回中断以使所述第一核心继续运行原有线程。
6.如权利要求5所述的多核心系统,其特征在于,在所述第二处理单元调用所述第一地址空间的第二函数的期间,所述第二核心先将第二调用消息打包,并通过所述第二通信节点传送所述第二调用消息至所述第一通信节点,然后所述第二核心可执行其他的线程,而所述第一通信节点再将所述第二调用消息传送至所述第一核心,并产生调用中断以令所述第一核心执行所述第二函数;
其中当所述第一核心执行完成所述第二函数后,产生一第二返回消息,并通过所述第一通信节点、所述内部总线及所述第二通信节点将所述第二返回消息传送至所述第二核心,所述第二通信节点并产生另一返回中断以使所述第二核心继续运行原有线程。
7.如权利要求1所述的多核心系统,其特征在于,在所述第一核心访问所述第二高速缓存的一特定数据的期间,所述第一核心经由所述第一通信节点及所述内部总线,令第二通信节点从所述第二高速缓存读取所述特定数据,之后所读取的所述特定数据通过所述第二通信节点、所述内部总线及所述第一通信节点被传送至所述第一核心。
8.如权利要求1所述的多核心系统,其特征在于,在所述第一核心存取所述第二高速缓存的一特定数据的期间,所述第一核心经由所述第一通信节点及所述内部总线,令所述第二通信节点将所述特定数据写入至所述第二高速缓存。
9.如权利要求1所述的多核心系统,其特征在于,所述多核心系统是建构在一单一芯片中。
10.一种多核心系统的控制方法,其特征在于,所述多核心系统包括一第一处理单元、一第二处理单元以及一内部总线,所述第一处理单元包括一第一核心、一第一通信节点以及一第一高速缓存,所述第二处理单元包括一第二核心、一第二通信节点以及一第二高速缓存,所述第一高速缓存耦接于所述第一核心及所述第一通信节点,所述第二高速缓存耦接于所述第二核心及所述第二通信节点,所述控制方法包括:
利用所述第一核心执行一第一地址空间的代码,并打包其地址属于一第二地址空间的消息;
利用所述第二核心执行所述第二地址空间的代码,并打包其地址属于所述第一地址空间的消息;
利用所述第一高速缓存缓存所述第一地址空间的代码和数据;
利用所述第二高速缓存缓存所述第二地址空间的代码和数据;
利用所述内部总线,将所述第一核心所打包的消息传送至所述第二通信节点,并将所述第二核心所打包的消息传送至所述第一通信节点;以及
允许所述第一高速缓存可被所述第一核心和所述第一通讯节点同时访问,并允许所述第二高速缓存可被所述第二核心和所述第二通讯节点同时访问。
11.如权利要求10所述的控制方法,其特征在于,当所述第一高速缓存被所述第一核心和所述第一通讯节点同时访问时,所述第一核心和所述第一通讯节同时自所述第一高速缓存读取数据,而当所述第二高速缓存被所述第二核心和所述第二通讯节点同时访问时,所述第二核心和所述第二通讯节同时自所述第二高速缓存读取数据。
12.如权利要求10所述的控制方法,其特征在于,所述第一核心及所述所述第二核心分别更包括两个寄存器,而所述控制方法更包括:
利用所述第一核心的所述两个寄存器分别定义所述第一地址空间的开始地址和结束地址;以及
利用所述第二核心的所述两个寄存器分别定义所述第二地址空间的开始地址和结束地址。
13.如权利要求10所述的控制方法,其特征在于,所述第一核心及所述第二核心分别更包括一个核心编号寄存器,而所述控制方法更包括:
利用所述第一核心的所述核心编号寄存器,定义所述第一地址空间的高位数值;以及
利用所述第二核心的所述核心编号寄存器,定义所述第二地址空间的高位数值。
14.如权利要求10所述的控制方法,其特征在于,所述控制方法更包括:
在所述第一处理单元调用所述第二地址空间的第一函数的期间,利用所述第一核心先将第一调用消息打包并通过所述第一通信节点传送所述第一调用消息至所述第二通信节点,然后允许所述第一核心执行其他的线程,并利用所述第二通信节点再将所述第一调用消息传送至所述第二核心,并产生调用中断以令所述第二核心执行所述第一函数;以及
其中当所述第二核心执行完成所述第一函数后,利用所述第二核心产生第一返回消息,并通过所述第二通信节点、所述内部总线及所述第一通信节点将所述第一返回消息传送至所述第一核心,并利用所述第一通信节点产生返回中断以使所述第一核心继续运行原有线程。
15.如权利要求14所述的控制方法,其特征在于,所述控制方法更包括:
在所述第二处理单元调用所述第一地址空间的第二函数的期间,利用所述第二核心先将第二调用消息打包,并通过所述第二通信节点传送所述第二调用消息至所述第一通信节点,然后允许第二核心可执行其他的线程,并利用所述第一通信节点再将所述第二调用消息传送至所述第一核心,并产生调用中断以令所述第一核心执行所述第二函数;以及
当所述第一核心执行完成所述第二函数后,利用所述第一核心产生一第二返回消息,并通过所述第一通信节点、所述内部总线及所述第二通信节点将所述第二返回消息传送至所述第二核心,并利用所述第二通信节点产生另一返回中断以使所述第二核心继续运行原有线程。
16.如权利要求10所述的控制方法,其特征在于,所述控制方法更包括:
在所述第一核心访问所述第二高速缓存的一特定数据的期间,所述第一核心经由所述第一通信节点及所述内部总线,令第二通信节点从所述第二高速缓存读取所述特定数据,之后所读取的所述特定数据通过所述第二通信节点、所述内部总线及所述第一通信节点被传送至所述第一核心。
17.如权利要求10所述的控制方法,其特征在于,所述控制方法更包括:
在所述第一核心存取所述第二高速缓存的一特定数据的期间,所述第一核心经由所述第一通信节点及所述内部总线,令所述第二通信节点将所述特定数据写入至所述第二高速缓存。
18.如权利要求10所述的控制方法,其特征在于,所述多核心系统是建构在一单一芯片中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110121238.6A CN102779110B (zh) | 2011-05-11 | 2011-05-11 | 基于远端代码调用和数据访问的多核心系统及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110121238.6A CN102779110B (zh) | 2011-05-11 | 2011-05-11 | 基于远端代码调用和数据访问的多核心系统及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779110A true CN102779110A (zh) | 2012-11-14 |
CN102779110B CN102779110B (zh) | 2014-08-06 |
Family
ID=47124027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110121238.6A Active CN102779110B (zh) | 2011-05-11 | 2011-05-11 | 基于远端代码调用和数据访问的多核心系统及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779110B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014082421A1 (zh) * | 2012-11-30 | 2014-06-05 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
CN105893320A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN110046050A (zh) * | 2018-01-16 | 2019-07-23 | 华为技术有限公司 | 一种核间数据传输的装置和方法 |
CN112559432A (zh) * | 2020-12-22 | 2021-03-26 | 上海金卓科技有限公司 | 一种多核通讯系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081615A1 (en) * | 2001-10-22 | 2003-05-01 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US20070186054A1 (en) * | 2006-02-06 | 2007-08-09 | Kruckemyer David A | Distributed Cache Coherence at Scalable Requestor Filter Pipes that Accumulate Invalidation Acknowledgements from other Requestor Filter Pipes Using Ordering Messages from Central Snoop Tag |
CN101158936A (zh) * | 2007-11-21 | 2008-04-09 | 中国科学院计算技术研究所 | 一种节点之间的数据传输系统和装置及方法 |
CN101266557A (zh) * | 2007-03-16 | 2008-09-17 | Sap股份公司 | 在客户机-服务器或主机环境中计算作业的多目标分配 |
US20090157981A1 (en) * | 2007-12-12 | 2009-06-18 | Mips Technologies, Inc. | Coherent instruction cache utilizing cache-op execution resources |
CN101739241A (zh) * | 2008-11-12 | 2010-06-16 | 中国科学院微电子研究所 | 一种片上多核dsp簇和应用扩展方法 |
-
2011
- 2011-05-11 CN CN201110121238.6A patent/CN102779110B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081615A1 (en) * | 2001-10-22 | 2003-05-01 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US20070186054A1 (en) * | 2006-02-06 | 2007-08-09 | Kruckemyer David A | Distributed Cache Coherence at Scalable Requestor Filter Pipes that Accumulate Invalidation Acknowledgements from other Requestor Filter Pipes Using Ordering Messages from Central Snoop Tag |
CN101266557A (zh) * | 2007-03-16 | 2008-09-17 | Sap股份公司 | 在客户机-服务器或主机环境中计算作业的多目标分配 |
CN101158936A (zh) * | 2007-11-21 | 2008-04-09 | 中国科学院计算技术研究所 | 一种节点之间的数据传输系统和装置及方法 |
US20090157981A1 (en) * | 2007-12-12 | 2009-06-18 | Mips Technologies, Inc. | Coherent instruction cache utilizing cache-op execution resources |
CN101739241A (zh) * | 2008-11-12 | 2010-06-16 | 中国科学院微电子研究所 | 一种片上多核dsp簇和应用扩展方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014082421A1 (zh) * | 2012-11-30 | 2014-06-05 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
CN103853620A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
CN103853620B (zh) * | 2012-11-30 | 2017-06-09 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
US9678813B2 (en) | 2012-11-30 | 2017-06-13 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for mutual communication between processes of many-core processor |
CN105893320A (zh) * | 2016-03-29 | 2016-08-24 | 浙江大学 | 一种面向多核处理器的远程任务函数调用方法 |
CN110046050A (zh) * | 2018-01-16 | 2019-07-23 | 华为技术有限公司 | 一种核间数据传输的装置和方法 |
WO2019141157A1 (zh) * | 2018-01-16 | 2019-07-25 | 华为技术有限公司 | 一种核间数据传输的装置和方法 |
CN110046050B (zh) * | 2018-01-16 | 2024-03-01 | 华为技术有限公司 | 一种核间数据传输的装置和方法 |
CN112559432A (zh) * | 2020-12-22 | 2021-03-26 | 上海金卓科技有限公司 | 一种多核通讯系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102779110B (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3920034B1 (en) | Systems and methods for scalable and coherent memory devices | |
EP3060993B1 (en) | Final level cache system and corresponding method | |
CN103246616A (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN1311348C (zh) | 数据处理系统 | |
CN102855214B (zh) | 实现数据一致性的方法和一种多核系统 | |
CN101727414A (zh) | 用于在计算机系统中传递中断的技术 | |
CN1320458C (zh) | 数据处理系统 | |
US11436146B2 (en) | Storage control apparatus, processing apparatus, computer system, and storage control method | |
CN102779110B (zh) | 基于远端代码调用和数据访问的多核心系统及其控制方法 | |
CN114328306A (zh) | 智能存储装置 | |
CN115098412B (zh) | 外设访问控制器、数据访问装置及对应方法、介质和芯片 | |
CN107924343B (zh) | 低等待时间节点间通信 | |
CN103455371A (zh) | 用于优化的管芯内小节点间消息通信的方法和系统 | |
CN103412829B (zh) | 扩大mcu程序地址空间的方法及装置 | |
CN117377943A (zh) | 存算一体化并行处理系统和方法 | |
CN102129396B (zh) | 一种实时快速的线程间数据交换方法 | |
CN108959149A (zh) | 一种基于共享内存的多核处理器交互总线设计方法 | |
CN110781107A (zh) | 基于dram接口的低延迟融合io控制方法和装置 | |
CN102540953A (zh) | 可编程逻辑控制器的数据处理方法及可编程逻辑控制器 | |
CN110990169B (zh) | 一种利用共享内存进行进程间字节流通信的结构及方法 | |
CN109840241B (zh) | 一种异构双核处理器核间通讯电路 | |
US20180176664A1 (en) | Declarative iot data control | |
CN116301627A (zh) | 一种NVMe控制器及其初始化、数据读写方法 | |
CN102646071A (zh) | 单周期执行高速缓存写命中操作的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |