CN113886104A - 多核芯片及其通信方法 - Google Patents
多核芯片及其通信方法 Download PDFInfo
- Publication number
- CN113886104A CN113886104A CN202111164225.7A CN202111164225A CN113886104A CN 113886104 A CN113886104 A CN 113886104A CN 202111164225 A CN202111164225 A CN 202111164225A CN 113886104 A CN113886104 A CN 113886104A
- Authority
- CN
- China
- Prior art keywords
- core
- inter
- memory bus
- arbitration
- working mode
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (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
本申请涉及一种多核芯片及其通信方法,该多核芯片包括至少两个内核、与内核数量对应的内核读取装置,以及共享存储装置、核间仲裁装置、核内仲裁装置和接口装置;接口装置连接核内仲裁装置和上位机;内核读取装置连接共享存储装置和对应内核;核间仲裁装置连接各内核;核内仲裁装置连接各内核、接口装置和共享存储装置。其中,核间仲裁装置用于在不同内核数据交互时,根据核间交互指令时序进行访问控制;核内仲裁装置用于在多核芯片与上位机数据交互时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路。上述多核芯片,通过不同装置的配合,可以实现共享存储空间的有序访问,有利于减小共享存储装置的大小,降低功耗。
Description
技术领域
本申请涉及多核芯片技术领域,特别是涉及一种多核芯片及其通信方法。
背景技术
多核芯片,即包含两个或两个以上内核,同一个任务可以被分解到多个内核的线程或进程上并行运行的芯片。多核芯片通常采用多核共享存储的设计方式。
传统的多核芯片,通过将共享存储中的不同地址空间分配给不同内核,并通过设置内核内部的MMU(Memory Management Unit内存管理单元),限制各内核只能访问属于自己的地址空间,以避免出现访问竞争。然而,这种独享内存分配方式,需要使用较大的共享存储空间,因此,传统的多核芯片,具有功耗大的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种多核芯片及其通信方法,降低功耗。
一种多核芯片,包括至少两个内核、与内核数量对应的内核读取装置,以及共享存储装置、核间仲裁装置、核内仲裁装置和接口装置;
所述接口装置连接所述核内仲裁装置和上位机,用于接收上位机发送的模式信息,并根据所述模式信息进行工作模式调整;所述工作模式包括下位机工作模式和常规工作模式;
所述内核读取装置连接所述共享存储装置和对应内核;当所述工作模式为常规工作模式时,由各内核分别通过对应读取装置读取所述共享存储装置中的数据;
所述核间仲裁装置连接各内核,用于当所述工作模式为常规工作模式的情况下,在不同内核之间进行数据交互时,进行核间交互指令时序仲裁,并基于仲裁结果进行核间通信控制;
所述核内仲裁装置连接各内核、所述接口装置和所述共享存储装置,用于当所述工作模式为下位机工作模式时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路;所述通信链路用于所述上位机与多核芯片进行数据交互。
在其中一个实施例中,所述多核芯片还包括多路复用装置;所述多路复用装置连接所述核内仲裁装置、所述接口装置、所述共享存储装置和各内核。
在其中一个实施例中,所述多路复用装置包括出口多路复用器、第一内存总线多路复用器和第二内存总线多路复用器;所述接口装置包括第一外围接口、第二外围接口和HPI接口;所述核内仲裁装置包括出口仲裁器、第一内存总线仲裁器和第二内存总线仲裁器;
所述出口多路复用器连接所述出口仲裁器、所述HPI接口和各内核;所述共享存储装置通过第一访问内存总线连接所述第一内存总线多路复用器,并通过第二访问内存总线连接所述第二内存总线多路复用器;所述第一内存总线多路复用器还连接所述第一外围接口、所述第一内存总线仲裁器、所述第二内存总线仲裁器、所述第二内存总线多路复用器和所述HPI接口;所述第二内存总线多路复用器还连接所述第二外围接口、所述第一内存总线仲裁器、所述第二内存总线仲裁器和所述HPI接口;
所述HPI接口用于连接所述上位机。
在其中一个实施例中,所述HPI接口包括第一HPI口、第二HPI口和HPI多路复用器;
所述HPI多路复用器连接所述第一HPI口、所述第二HPI口、所述出口多路复用器和所述上位机;所述第一HPI口连接所述第一内存总线多路复用器;所述第二HPI口连接所述第二内存总线多路复用器。
在其中一个实施例中,所述多核芯片还包括核内缓存装置,所述核内缓存装置连接所述共享存储装置和所述多路复用装置。
在其中一个实施例中,所述多核芯片还包括核间缓存装置,以及与内核数量对应的三态门;各三态门连接所述核间仲裁装置、所述核间缓存装置和对应内核。
在其中一个实施例中,所述内核读取装置包括读取控制器和缓存器;所述缓存器连接所述读取控制器和对应内核;所示读取控制器连接所述共享存储装置和对应内核。
在其中一个实施例中,所述多核芯片为DSP芯片。
一种多核芯片通信方法,基于上述的多核芯片实现,包括:
接收上位机发送的模式信息,根据所述模式信息进行工作模式调整;所述工作模式包括下位机工作模式和常规工作模式;
当所述工作模式为常规工作模式时,由各内核分别通过对应读取装置读取共享存储装置中的数据,并基于核间仲裁装置进行核间数据交互;所述核间仲裁装置用于进行核间交互指令时序仲裁,并基于仲裁结果进行核间通信控制;
当所述工作模式为下位机工作模式时,由核内仲裁装置对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路;所述通信链路用于所述上位机与多核芯片进行数据交互。
在其中一个实施例中,所述多核芯片为包含第一内核和第二内核的双核芯片;所述基于核间仲裁装置进行核间数据交互,包括:
核间仲裁装置接收第一内核发送的第一写数据使能信号,并判断此时第二写数据使能信号是否处于使能状态;所述第二写数据使能信号由第二内核发送至所述核间仲裁装置;
若所述第二写数据使能信号处于使能状态,则核间仲裁装置等待预设时间,并返回判断所述第二写数据使能信号是否处于使能状态的步骤;
若所述第二写数据使能信号处于非使能状态,则核间仲裁装置打开写数据通路,将待写数据写入所述核间缓存装置;第一写数据使能信号还用于在所述写数据通路打开时,打开第二三态门,以便所述第二内核读取所述核间缓存装置中的数据。
在其中一个实施例中,所述上位机与多核芯片之间的数据交互,包括上位机与共享存储装置之间的数据交互,以及上位机与各内核之间的数据交互,所述当所述工作模式为下位机工作模式时,由核内仲裁装置对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路,包括:
当所述工作模式为下位机工作模式时,由第一内存总线仲裁器和第二内存总线仲裁器分别对对应的访问内存总线和HPI口的相关指令的时序进行仲裁,确定对应访问内存总线和HPI口的繁忙状态,并基于所述繁忙状态确定第一通信链路;所述第一通信链路用于所述上位机与共享存储装置进行数据交互;
当所述工作模式为下位机工作模式时,由出口仲裁器对各内核进行仲裁,确定不同内核对应指令的时序,并基于所述时序确定通信内核;由第一内存总线仲裁器和第二内存总线仲裁器分别对对应接口的相关指令的时序进行仲裁,基于仲裁结果确定通信接口;基于所述通信内核和所述通信接口确定第二通信链路;所述第二通信链路用于所述上位机与通信内核进行数据交互。
上述多核芯片,配置内核读取装置,用于不同内核读取共享存储装置中的数据;配置核间仲裁装置在不同内核数据交互时,根据核间交互指令时序进行访问控制;并配置核内仲裁装置在多核芯片与上位机数据交互时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路。也即,通过不同装置的配合,可以实现共享存储空间的有序访问,有利于减小共享存储装置的大小,降低功耗。
附图说明
图1为一实施例中多核芯片的组成框图;
图2为另一实施例中多核芯片的组成框图;
图3为一实施例中多核芯片在下位机工作模式下的结构原理图;
图4为一实施例中多核芯片在常规工作模式下的结构原理图;
图5为一实施例中多核芯片通信方法的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。例如,“第一内存总线多路复用器”和“第二内存总线多路复用器”均为内存总线多路复用器,但不是同一内存总线多路复用器。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
随着集成电路的发展和我国工业化的需求,市场所需要的芯片的性能越来越强。为了在提升芯片性能的同时减少芯片的面积和功耗,多核共享存储的芯片设计思路应运而生。但是多核共享数据的情况就会出现多核读写寄存器竞争,以DSP(Digital SignalProcess,数字芯片处理)芯片为例,其采用的是改进型哈弗总线架构,访问共享存储空间时需要额外关注程序总线上的读写访问冲突,基于冯诺依曼架构的多核访问控制方法并不适用。基于此,本申请提出一种多核芯片及其通信方法,可以实现共享存储空间的有序访问,有利于减小共享存储装置的大小,降低功耗。
本申请第一方面,提供了一种多核芯片。在一个实施例中,如图1所示,该多核芯片包括至少两个内核100、与内核数量对应的内核读取装置200,以及共享存储装置300、核间仲裁装置400、核内仲裁装置500和接口装置600。接口装置600连接核内仲裁装置500和上位机,用于接收上位机发送的模式信息,并根据模式信息进行工作模式调整;该工作模式包括下位机工作模式和常规工作模式。内核读取装置200连接共享存储装置300和对应内核100;当工作模式为常规工作模式时,由各内核分别通过对应读取装置读取共享存储装置300中的数据。核间仲裁装置400连接各内核,用于当工作模式为常规工作模式的情况下,在不同内核之间进行数据交互时,进行核间交互指令时序仲裁,并基于仲裁结果进行核间通信控制。核内仲裁装置500连接各内核、共享存储装置300和接口装置600,用于当工作模式为下位机工作模式时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路;该通信链路用于上位机与多核芯片进行数据交互。
其中,多核芯片的类型并不唯一,例如可以是FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)芯片或DSP芯片。内核100的数量,可以是两个或两个以上。内核读取装置200的数量与内核100的数量一致。为便于理解,下面均以内核100的数量为两个的情况进行说明。如图1中,内核100包括第一内核110和第二内核120,内核读取装置200包括第一内核读取装置210和第二内核读取装置220。第一内核110连接第一内核读取装置210,第二内核120连接第二内核读取装置220。
进一步的,内核100为具备逻辑运算功能的硬件模块,例如可以是CPU(CentralProcessing Unit,中央处理器)或COP(Co-Processor,协处理器)。各内核可以是结构性能完全相同,能互为备用;也可以是结构性能不完全相同,不互为备用,而是负责不同的功能。在一个实施例中,多核芯片为DSP芯片,第一内核110为负责定点数据运算的CPU,第二内核120为负责浮点数据运算的COP。此外,共享存储装置300的具体组成并不唯一,例如可以包括只读存储器、静态随机存储器和快闪存储器中的一种或多种。
具体的,上位机通过接口装置600向多核芯片发送模式信息,接口装置600接收模式信息,并根据模式信息进行工作模式调整。进一步的,接口装置根据模式信息进行工作模式调整的方式并不唯一,例如可以通过控制接口装置本身的电平状态改变多核芯片可支持的通信类型,进而改变多核芯片的工作模式。
当工作模式为下位机模式时,支持上位机与多核芯片进行数据交互,包括上位机与共享存储装置300之间的数据交互,以及上位机与各内核之间的数据交互。此时,会存在多种与交互关联的相关指令,例如,来自上位机的读写指令,或者来自内核以及共享存储装置300的读写指令。这些相关指令,到达核内仲裁装置500后,由核内仲裁装置500对相关指令的时序进行仲裁,确定各相关指令的时序,按时序对相关指令进行排序,判断各通信链路上指令的时序,进而确定各通信链路的繁忙状态,将相对空闲的通信链路确定为待用通信链路。
当工作模式为常规工作模式时,多核芯片进行内部的数据交互,包括各内核与共享存储装置300之间的数据交互,以及各内核之间的数据交互。此时,由各内核分别通过对应读取装置读取共享存储装置300中的数据;并由核间仲裁装置400在不同内核之间进行数据交互时,进行核间交互指令时序仲裁,确定各核间交互指令的时序,按时序对核间交互指令进行排序,按照时序的先后顺序处理核间交互指令,进行核间通信控制。
上述多核芯片,配置内核读取装置200,用于不同内核读取共享存储装置中的数据;配置核间仲裁装置400在不同内核数据交互时,根据核间交互指令时序进行访问控制;并配置核内仲裁装置500在多核芯片与上位机数据交互时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路。也即,通过不同装置的配合,可以实现共享存储空间的有序访问,有利于减小共享存储装置300的大小,降低功耗。
在一个实施例中,如图2所示,多核芯片还包括多路复用装置700;该多路复用装置700连接核内仲裁装置500、接口装置600、共享存储装置300和各内核。
其中,多路复用装置700是可以使用一个信道同时传输多路信号的装置。该多路复用装置700可以是频分复用装置、波分复用装置或时分复用装置。总之,本申请对多路复用装置700的具体类型不作限定。具体的,多路复用装置700连接核内仲裁装置500、接口装置600、共享存储装置300和各内核,用于支持上位机与各内核之间,以及上位机与共享存储装置300之间多种数据交互,不仅可以满足多路信号的传输,有利于节约传输线缆的安装和维护成本,还可以提高数据传输速率。
在一个实施例中,请继续参考图2,多核芯片还包括核内缓存装置800,该核内缓存装置800连接共享存储装置300和多路复用装置700。
其中,缓存装置是指可以进行高速数据交换的存储器。具体的,在共享存储装置300和多路复用装置700之间配置核内缓存装置800,在上位机与共享存储装置300进行数据交互时,先由共享存储装置300将对应数据写入核内缓存装置800,再由上位机通过接口装置600和多路复用装置700读取核内缓存装置800中的数据,进而实现上位机与共享存储装置300之间的数据交互。
上述实施例中,在共享存储装置300和多路复用装置700之间配置核内缓存装置800,可以提高上位机与共享存储装置300之间的数据传输效率。
在一个实施例中,如图3所示,多路复用装置700包括出口多路复用器710、第一内存总线多路复用器720和第二内存总线多路复用器730;接口装置400包括第一外围接口610、第二外围接口620和HPI(Host Port Interface,主机接口)接口630;核内仲裁装置500包括出口仲裁器510、第一内存总线仲裁器520和第二内存总线仲裁器530。出口多路复用器710连接出口仲裁器510、HPI接口630和各内核;共享存储装置300通过第一访问内存总线M1连接第一内存总线多路复用器720,并通过第二访问内存总线M2连接第二内存总线多路复用器730。第一内存总线多路复用器720还连接第一外围接口610、第一内存总线仲裁器520、第二内存总线仲裁器530、第二内存总线多路复用器730和HPI接口630;第二内存总线多路复用器730还连接第二外围接口620、第一内存总线仲裁器520、第二内存总线仲裁器530和HPI接口630。HPI接口630用于连接上位机。
在使用过程中,多核芯片会被封装为一个提供了多个引脚或引线的半导体器件,这些引脚或引线用于芯片与外部设备的连接。本申请中,第一外围接口610、第二外围接口620和HPI接口630用于连接外部设备,如上位机。其中,第一外围接口610和第二外围接口620包括一个或者多个串行通信接口,这些外围接口可由内核配置为高速、全双工、双缓冲串行通信并支持与现有串行协议直接连接,每个串行接口均支持128个信道的多通道发送和接收。进一步的,各内存总线多路复用器通过对应的访问内存总线连接核内缓存装置800,再通过核内缓存装置800建立与共享存储装置200的连接。核内缓存装置800配置为先进先出的工作模式,上位机可以通过第一访问内存总线M1和第二访问内存总线M2对核内缓存装置800进行读写,即可以实现通过第一访问内存总线M1将数据写入核内缓存装置800的同时,通过第二访问内存总线M2读取核内缓存装置800中的数据,以提高数据交互效率。
如图3所示,上位机向HPI接口630发送MODE信号,将多核芯片作为内存映射设备进行访问。具体的,先由第一内存总线仲裁器520和第二内存总线仲裁器530通过对应的多路复用器对第一访问内存总线M1和第二访问内存总线M2上的相关指令的时序进行仲裁,并基于仲裁结果确定各内存总线的繁忙程度,进而确定通信链路。
当上位机解除MODE信号时,由内核发起外部访问。具体的,如图3所示,先由出口仲裁器基于各内核发出的相关指令的时序,进行仲裁,确定先处理哪个内核发出的指令,对出口多路复用器710进行设置,再由各内存总线仲裁器对对应接口进行仲裁,判断对应接口的繁忙程度,最终确定用于内核与上位机交互的接口,进而确定通信链路。
可以理解,当各访问内存总线均处于繁忙状态时,由HPI接口630向上位机反馈繁忙信号,提示上位机停止访问。
进一步的,当多核芯片处于下位机工作模式时,上位机可以通过HPI接口630直接访问内核中自带的核心寄存器。具体的,上位机发送地址至HPI接口630,由HPI接口630从核心寄存器中读取地址对应的需求信息,并将需求信息反馈至上位机。此外,在一个实施例中,接口模块600还包括扫描模式接口,用于控制多核芯片内部的扫描寄存器。
在一个实施例中,请继续参考图3,HPI接口630包括第一HPI口631、第二HPI口632和HPI多路复用器633。HPI多路复用器633连接第一HPI口631、第二HPI口632、出口多路复用器710和上位机。第一HPI口631连接第一内存总线多路复用器720;第二HPI口632连接第二内存总线多路复用器730。
具体的,上位机向HPI多路复用器633发送模式信息,由HPI多路复用器633根据模式信息进行工作模式调整。上位机与共享存储装置300进行数据交互的通信链路包括:HPI多路复用器633-第一HPI口631-第一内存总线多路复用器720-核内缓存装置800-共享存储装置200,或HPI多路复用器633-第二HPI口632-第二内存总线多路复用器730-核内缓存装置800-共享存储装置200。内核读取上位机的数据链路包括:第一外围接口610-第一内存总线多路复用器720-第一HPI口631-HPI多路复用器633-出口多路复用器710-内核,或第二外围接口620-第二内存总线多路复用器730第二HPI口632-HPI多路复用器633-出口多路复用器710-内核。
此外,在其他实施例中,也可以配置两个以上的内存总线多路复用器和内存总线仲裁器,各内存总线多路复用器通过对应的访问内存总线连接共享存储装置,并配置对应数量的HPI口连接各内存总线多路复用器。由各内存总线仲裁器基于各访问内存总线和HPI口的繁忙程度,确定相对空闲的访问内存总线和HPI口作为通信总线和通信接口,进而确定通信链路。
上述实施例中,即是提供了下位机工作模式下,用于与上位机通信的多核芯片的具体器件构成,采用上述结构,可以实现多种类型的数据交互,有利于提升多核芯片与上位机的通信效率。
在一个实施例中,多核芯片还包括核间缓存装置,以及与内核数量对应的三态门;各三态门连接核间仲裁装置400、核间缓存装置和对应内核。
其中,核间缓存装置与上文中的核内缓存装置800类似,是可以进行高速数据交换的存储装置。该核间缓存装置的容量并不唯一,例如可以是128bit或256bit。三态门又称三态输出电路,可提供三种不同的输出值:逻辑“0”,逻辑“1”和高阻态。
以内核数量为两个的多核芯片为例。如图4所示,两个内核分别为第一内核110和第二内核120。核间仲裁装置400连接第一内核110、第二内核120和核间缓存装置900。第一三态门1010的使能端连接第二内核120,输入端连接核间缓存装置900,输出端连接第一内核110;第二三态门1020的使能端连接第一内核110,输入端连接核间缓存装置900,输出端连接第二内核120。
具体的,第一内核110向第二内核120写入数据的具体过程为:核间仲裁装置400接收第一内核110发送的第一写数据使能信号EN1,并判断此时第二写数据使能信号EN2是否处于使能状态;该第二写数据使能信号EN2由第二内核120发送至核间仲裁装置400;若第二写数据使能信号EN2处于使能状态,则核间仲裁装置400等待预设时间,并返回判断第二写数据使能信号EN2是否处于使能状态的步骤;若第二写数据使能信号EN2处于非使能状态,则核间仲裁装置400打开写数据通路,将待写数据写入核间缓存装置900;第一写数据使能信号EN1还用于在写数据通路打开时,打开第二三态门1020,以便第二内核120读取核间缓存装置900中的数据。第二内核120向第一内核110写入数据的具体过程与上述第一内核110向第二内核120写入数据的过程类似,此处不再赘述。
上述实施例中,即是提供了常规工作模式下,用于内核之间通信的具体器件构成,基于上述结构,采用类似于乒乓机制的方式进行内核之间的数据交互,有利于提升多核芯片的核间通信效率。
在一个实施例中,内核读取装置200包括读取控制器和缓存器;缓存器连接读取控制器和对应内核;读取控制器连接共享存储装置300和对应内核。
其中,缓存器与上文中的核间缓存装置类似,是可以进行高速数据交换的存储装置。具体的,以内核数量为两个的多核芯片为例。如图4所示,第一内核读取装置210包括第一读取控制器211和第一缓存器212,第一缓存器212连接第一读取控制器211和第一内核110;第一读取控制器211连接共享存储装置300和第一内核110。第二内核读取装置220包括第二读取控制器221和第二缓存器222,第二缓存器222连接第二读取控制器221和第二内核120;第二读取控制器221连接共享存储装置300和第二内核120。
当第一内核110需要读取共享存储装置300中的数据时,先向第一读取控制器211发送读取指令,由第一读取控制器211从共享存储装置300中读取相应数据,并存储至第一缓存器212,再由第一内核110从第一缓存器212中提取所需数据。同样的,当第二内核120需要读取共享存储装置300中的数据时,先向第二读取控制器221发送读取指令,由第二读取控制器221从共享存储装置300中读取相应数据,并存储至第二缓存器222,再由第二内核120从第二缓存器222中提取所需数据。
进一步的,上述缓存器的容量能满足存储至少两个时钟周期的指令的要求。例如,当每个时钟周期内核读取的共享存储装置300中的指令数据为32位时,缓存器的容量可以是128bit或256bit。由于缓存器中可以存储至少两个个时钟周期的指令数据,内核在执行当前时钟周期指令时不会发生冲突。
上述实施例中,配置缓存器用于内核与共享存储装置的数据交互,可以提高内核的数据读取效率,进而提升多核芯片的运行效率。
本申请第二方面,提供了一种多核芯片通信方法,基于上述的多核芯片实现,如图5所示,该方法包括步骤S200至步骤S600。
步骤S200:接收上位机发送的模式信息,根据模式信息进行工作模式调整。
其中,工作模式包括下位机工作模式和常规工作模式。当工作模式为下位机模式时,支持上位机与多核芯片进行数据交互,包括上位机与共享存储装置之间的数据交互,以及上位机与各内核之间的数据交互。当工作模式为常规工作模式时,多核芯片进行内部的数据交互,包括各内核与共享存储装置之间的数据交互,以及各内核之间的数据交互。
具体的,由接口装置接收上位机发送的模式信息,根据模式信息进行工作模式调整。进一步的,接口装置根据模式信息进行工作模式调整的方式并不唯一,例如可以通过控制接口装置本身的电平状态改变多核芯片可支持的通信类型,进而改变多核芯片的工作模式。
步骤S400:当工作模式为常规工作模式时,由各内核分别通过对应读取装置读取共享存储装置中的数据,并基于核间仲裁装置进行核间数据交互。
具体的,如上文所述,当工作模式为常规工作模式时,多核芯片进行内部的数据交互,包括各内核与共享存储装置之间的数据交互,以及各内核之间的数据交互。此时,由各内核分别通过对应读取装置读取共享存储装置中的数据;并由核间仲裁装置在不同内核之间进行数据交互时,进行核间交互指令时序仲裁,确定各核间交互指令的时序,按时序对核间交互指令进行排序,按照时序的先后顺序处理核间交互指令,进行核间通信控制。
在一个实施例中,多核芯片为包含第一内核和第二内核的双核芯片。基于核间仲裁装置进行核间数据交互,包括:核间仲裁装置接收第一内核发送的第一写数据使能信号,并判断此时第二写数据使能信号是否处于使能状态;该第二写数据使能信号由第二内核发送至核间仲裁装置。若第二写数据使能信号处于使能状态,则核间仲裁装置等待预设时间,并返回判断第二写数据使能信号是否处于使能状态的步骤;若第二写数据使能信号处于非使能状态,则核间仲裁装置打开写数据通路,将待写数据写入核间缓存装置;第一写数据使能信号还用于在写数据通路打开时,打开第二三态门,以便第二内核读取核间缓存装置中的数据。
步骤S600:当工作模式为下位机工作模式时,由核内仲裁装置对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路。
其中,通信链路为上位机与多核芯片进行数据交互的数据传输路径。具体的,当工作模式为下位机工作模式时,支持上位机与多核芯片进行数据交互,包括上位机与共享存储装置之间的数据交互,以及上位机与各内核之间的数据交互。此时,会存在多种与交互关联的相关指令,例如,来自上位机的读写指令,或者来自内核以及共享存储装置的读写指令。这些相关指令,到达核内仲裁装置后,由核内仲裁装置对相关指令的时序进行仲裁,确定各相关指令的时序,按时序对相关指令进行排序,判断各通信链路上指令的时序,进而确定各通信链路的繁忙状态,将相对空闲的通信链路确定为待用通信链路。
在一个实施例中,上位机与多核芯片之间的数据交互,包括上位机与共享存储装置之间的数据交互,以及上位机与各内核之间的数据交互,步骤S600具体包括:
当工作模式为下位机工作模式时,由第一内存总线仲裁器和第二内存总线仲裁器分别对对应的访问内存总线和HPI口的相关指令的时序进行仲裁,确定对应访问内存总线和HPI口的繁忙状态,并基于所述繁忙状态确定第一通信链路;该第一通信链路用于上位机与共享存储装置进行数据交互;
当工作模式为下位机工作模式时,由出口仲裁器对各内核进行仲裁,确定不同内核对应指令的时序,并基于该时序确定通信内核;由第一内存总线仲裁器和第二内存总线仲裁器分别对对应通信接口的相关指令的时序进行仲裁,基于仲裁结果确定通信接口;;最后基于通信内核和通信接口确定第二通信链路;该第二通信链路用于上位机与通信内核进行数据交互。
具体的,如图3所示,上位机与共享存储装置300进行数据交互的通信链路包括:HPI多路复用器633-第一HPI口631-第一内存总线多路复用器720-核内缓存装置800-共享存储装置200,或HPI多路复用器633-第二HPI口632-第二内存总线多路复用器730-核内缓存装置800-共享存储装置200。内核读取上位机的数据链路包括:第一外围接口610-第一内存总线多路复用器720-第一HPI口631-HPI多路复用器633-出口多路复用器710-内核,或第二外围接口620-第二内存总线多路复用器730第二HPI口632-HPI多路复用器633-出口多路复用器710-内核。
关于多核芯片通信方法的具体限定可以参见上文中对于多核芯片的限定,在此不再赘述。上述多核芯片通信方法,配置内核读取装置,用于不同内核读取共享存储装置中的数据;配置核间仲裁装置在不同内核数据交互时,根据核间交互指令时序进行访问控制;并配置核内仲裁装置在多核芯片与上位机数据交互时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路。也即,通过不同装置的配合,可以实现共享存储空间的有序访问,有利于减小共享存储装置的大小,降低功耗。
应该理解的是,虽然上述实施例中涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例中涉及的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上该实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种多核芯片,其特征在于,包括至少两个内核、与内核数量对应的内核读取装置,以及共享存储装置、核间仲裁装置、核内仲裁装置和接口装置;
所述接口装置连接所述核内仲裁装置和上位机,用于接收上位机发送的模式信息,并根据所述模式信息进行工作模式调整;所述工作模式包括下位机工作模式和常规工作模式;
所述内核读取装置连接所述共享存储装置和对应内核;当所述工作模式为常规工作模式时,由各内核分别通过对应读取装置读取所述共享存储装置中的数据;
所述核间仲裁装置连接各内核,用于当所述工作模式为常规工作模式的情况下,在不同内核之间进行数据交互时,进行核间交互指令时序仲裁,并基于仲裁结果进行核间通信控制;
所述核内仲裁装置连接各内核、所述接口装置和所述共享存储装置,用于当所述工作模式为下位机工作模式时,对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路;所述通信链路用于所述上位机与多核芯片进行数据交互。
2.根据权利要求1所述的多核芯片,其特征在于,还包括多路复用装置;所述多路复用装置连接所述核内仲裁装置、所述接口装置、所述共享存储装置和各内核。
3.根据权利要求2所述的多核芯片,其特征在于,所述多路复用装置包括出口多路复用器、第一内存总线多路复用器和第二内存总线多路复用器;所述接口装置包括第一外围接口、第二外围接口和HPI接口;所述核内仲裁装置包括出口仲裁器、第一内存总线仲裁器和第二内存总线仲裁器;
所述出口多路复用器连接所述出口仲裁器、所述HPI接口和各内核;所述共享存储装置通过第一访问内存总线连接所述第一内存总线多路复用器,并通过第二访问内存总线连接所述第二内存总线多路复用器;所述第一内存总线多路复用器还连接所述第一外围接口、所述第一内存总线仲裁器、所述第二内存总线仲裁器、所述第二内存总线多路复用器和所述HPI接口;所述第二内存总线多路复用器还连接所述第二外围接口、所述第一内存总线仲裁器、所述第二内存总线仲裁器和所述HPI接口;
所述HPI接口用于连接所述上位机。
4.根据权利要求3所述的多核芯片,其特征在于,所述HPI接口包括第一HPI口、第二HPI口和HPI多路复用器;
所述HPI多路复用器连接所述第一HPI口、所述第二HPI口、所述出口多路复用器和所述上位机;所述第一HPI口连接所述第一内存总线多路复用器;所述第二HPI口连接所述第二内存总线多路复用器。
5.根据权利要求2所述的多核芯片,其特征在于,还包括核内缓存装置,所述核内缓存装置连接所述共享存储装置和所述多路复用装置。
6.根据权利要求1至5中任意一项所述的多核芯片,其特征在于,还包括核间缓存装置,以及与内核数量对应的三态门;各三态门连接所述核间仲裁装置、所述核间缓存装置和对应内核。
7.根据权利要求1至5中任意一项所述的多核芯片,其特征在于,所述内核读取装置包括读取控制器和缓存器;所述缓存器连接所述读取控制器和对应内核;所示读取控制器连接所述共享存储装置和对应内核。
8.一种多核芯片通信方法,其特征在于,基于如权利要求1至7中任意一项所述的多核芯片实现,包括:
接收上位机发送的模式信息,根据所述模式信息进行工作模式调整;所述工作模式包括下位机工作模式和常规工作模式;
当所述工作模式为常规工作模式时,由各内核分别通过对应读取装置读取共享存储装置中的数据,并基于核间仲裁装置进行核间数据交互;所述核间仲裁装置用于进行核间交互指令时序仲裁,并基于仲裁结果进行核间通信控制;
当所述工作模式为下位机工作模式时,由核内仲裁装置对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路;所述通信链路用于所述上位机与多核芯片进行数据交互。
9.根据权利要求8所述的多核芯片通信方法,其特征在于,所述多核芯片为包含第一内核和第二内核的双核芯片;所述基于核间仲裁装置进行核间数据交互,包括:
核间仲裁装置接收第一内核发送的第一写数据使能信号,并判断此时第二写数据使能信号是否处于使能状态;所述第二写数据使能信号由第二内核发送至所述核间仲裁装置;
若所述第二写数据使能信号处于使能状态,则核间仲裁装置等待预设时间,并返回判断所述第二写数据使能信号是否处于使能状态的步骤;
若所述第二写数据使能信号处于非使能状态,则核间仲裁装置打开写数据通路,将待写数据写入所述核间缓存装置;第一写数据使能信号还用于在所述写数据通路打开时,打开第二三态门,以便所述第二内核读取所述核间缓存装置中的数据。
10.根据权利要求8所述的多核芯片通信方法,其特征在于,所述上位机与多核芯片之间的数据交互,包括上位机与共享存储装置之间的数据交互,以及上位机与各内核之间的数据交互,所述当所述工作模式为下位机工作模式时,由核内仲裁装置对相关指令的时序进行仲裁,并基于仲裁结果确定通信链路,包括:
当所述工作模式为下位机工作模式时,由第一内存总线仲裁器和第二内存总线仲裁器分别对对应的访问内存总线和HPI口的相关指令的时序进行仲裁,确定对应访问内存总线和HPI口的繁忙状态,并基于所述繁忙状态确定第一通信链路;所述第一通信链路用于所述上位机与共享存储装置进行数据交互;
当所述工作模式为下位机工作模式时,由出口仲裁器对各内核进行仲裁,确定不同内核对应指令的时序,并基于所述时序确定通信内核;由第一内存总线仲裁器和第二内存总线仲裁器分别对对应接口的相关指令的时序进行仲裁,基于仲裁结果确定通信接口;基于所述通信内核和所述通信接口确定第二通信链路;所述第二通信链路用于所述上位机与通信内核进行数据交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111164225.7A CN113886104A (zh) | 2021-09-30 | 2021-09-30 | 多核芯片及其通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111164225.7A CN113886104A (zh) | 2021-09-30 | 2021-09-30 | 多核芯片及其通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113886104A true CN113886104A (zh) | 2022-01-04 |
Family
ID=79004862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111164225.7A Pending CN113886104A (zh) | 2021-09-30 | 2021-09-30 | 多核芯片及其通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886104A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237475A (zh) * | 2022-06-23 | 2022-10-25 | 云南大学 | 一种Forth多核堆栈处理器及指令集 |
-
2021
- 2021-09-30 CN CN202111164225.7A patent/CN113886104A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237475A (zh) * | 2022-06-23 | 2022-10-25 | 云南大学 | 一种Forth多核堆栈处理器及指令集 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6769046B2 (en) | System-resource router | |
EP1239374B1 (en) | Shared program memory for use in multicore DSP devices | |
US7650453B2 (en) | Information processing apparatus having multiple processing units sharing multiple resources | |
CN108121672A (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
US7797467B2 (en) | Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features | |
US5119480A (en) | Bus master interface circuit with transparent preemption of a data transfer operation | |
US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
US7007111B2 (en) | DMA port sharing bandwidth balancing logic | |
US11182110B1 (en) | On-chip memory block circuit | |
CN106776458B (zh) | 基于fpga和hpi的dsp间的通信装置及通信方法 | |
CN114746853A (zh) | 存储器与分布式计算阵列之间的数据传输 | |
CN113886104A (zh) | 多核芯片及其通信方法 | |
EP1059586B1 (en) | Shared memory with programmable size | |
US6647465B2 (en) | Realtime parallel processor system for transferring common information among parallel processors to a cache memory system | |
US5933613A (en) | Computer system and inter-bus control circuit | |
CN114281751B (zh) | 芯片系统 | |
US7006521B2 (en) | External bus arbitration technique for multicore DSP device | |
US6360305B1 (en) | Method and apparatus for optimizing memory performance with opportunistic pre-charging | |
US7774513B2 (en) | DMA circuit and computer system | |
US20090240896A1 (en) | Microprocessor coupled to multi-port memory | |
CN109271333B (zh) | 一种sram控制方法及控制器、控制系统 | |
CN118114615B (zh) | 一种控制与计算分离的系统芯片结构 | |
CN117312210B (zh) | 一种通用扩展risc-v处理器性能的方法 | |
US5862408A (en) | Microprocessor system having multiplexor disposed in first and second read paths between memory CPU and DMA for selecting data from either read path | |
CN108182164B (zh) | 一种数据地址自适应转换的SoC接口电路及访问方法 |
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 |