CN114968903B - 一种众核芯片的外部控制电路 - Google Patents
一种众核芯片的外部控制电路 Download PDFInfo
- Publication number
- CN114968903B CN114968903B CN202210426268.6A CN202210426268A CN114968903B CN 114968903 B CN114968903 B CN 114968903B CN 202210426268 A CN202210426268 A CN 202210426268A CN 114968903 B CN114968903 B CN 114968903B
- Authority
- CN
- China
- Prior art keywords
- data
- many
- module
- core chip
- chip
- 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
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims description 15
- 238000011144 upstream manufacturing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 20
- 230000003993 interaction Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000005856 abnormality Effects 0.000 description 6
- 210000004556 brain Anatomy 0.000 description 5
- 239000012528 membrane Substances 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 4
- 210000003050 axon Anatomy 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 3
- 210000005056 cell body Anatomy 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 210000001787 dendrite Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
Abstract
本公开涉及一种众核芯片的外部控制电路,所述外部控制电路包括下行数据逻辑模块、上行数据逻辑模块、状态寄存器以及触发控制器;所述下行数据逻辑模块用于控制第一数据的传输,所述第一数据表示外部芯片向所述众核芯片发送的数据;所述上行数据逻辑模块用于控制第二数据的传输,所述第二数据表示向所述外部芯片返回的数据;所述状态寄存器用于配置所述外部控制电路的模式信息;所述触发控制器,用于确定所述众核芯片的工作模式,并控制所述众核芯片在对所述第一数据进行运算时以所述工作模式运行。本公开实施例可实现众核芯片与外部芯片之间高通量的数据通信。
Description
技术领域
本公开涉及数字电路技术领域,尤其涉及一种众核芯片的外部控制电路。
背景技术
随着人工智能算法和非冯诺依曼硬件架构研究深入,出现了诸多新型硬件及系统,例如迅速迭代发展的图像处理器(Graphics Processing Unit,GPU)、多核芯片、众核芯片、深度学习加速器、神经形态芯片以及通用类脑计算芯片等。区别于传统的中央处理器(Central Processing Unit,CPU)、GPU等具有中心化特征的通用处理器,以众核架构为特点的神经形态芯片具有典型的去中心化特征。这使得神经形态芯片在用于脑仿真、神经工程学建模与神经网络加速时具有重要的优势。
为了充分发挥神经形态芯片的处理能力,除了在神经形态芯片内部要保证高通量的数据传输,神经形态芯片在同其他通用处理器芯片进行数据交互时,也要保证交互数据能够尽可能高效且正确地被传输。由于相关技术中神经形态芯片的外部控制电路很难与众核处理器的高通量特征相适配,因此外部控制电路成为了限制神经形态芯片与通用处理器之间数据传输的带宽瓶颈。
发明内容
本公开提出了一种众核芯片的外部控制电路。
根据本公开的一方面,提供了一种众核芯片的外部控制电路,包括:下行数据逻辑模块、上行数据逻辑模块、状态寄存器以及触发控制器;其中,所述下行数据逻辑模块用于控制第一数据的传输,所述第一数据表示外部芯片向所述众核芯片发送的数据;所述上行数据逻辑模块用于控制第二数据的传输,所述第二数据表示向所述外部芯片返回的数据,所述第二数据中包括所述众核芯片对所述第一数据进行运算得到的运算结果;所述状态寄存器用于配置所述外部控制电路的模式信息,所述模式信息用于确定所述第一数据在所述下行数据逻辑模块中的传输路径;所述触发控制器,用于确定所述众核芯片的工作模式,并控制所述众核芯片在对所述第一数据进行运算时以所述工作模式运行。
在一种可能的实现方式中,所述模式信息用于指示所述外部控制电路处于配置模式还是数据传输模式,所述下行数据逻辑模块包括存储模块、状态控制模块、仲裁控制器模块和配置包通路模块;在所述外部控制电路处于数据传输模式的情况下,所述第一数据在所述下行数据逻辑模块中的传输路径由存储模块、状态控制模块和所述仲裁控制器模块构成;在所述外部控制电路处于配置模式的情况下,所述第一数据在所述下行数据逻辑模块中的传输路径由所述配置包通路模块构成。
在一种可能的实现方式中,所述存储模块用于缓存所述第一数据;所述状态控制模块用于确定所述第一数据包括的各个数据包的业务类型;所述仲裁控制器模块用于基于所述各个数据包的业务类型向所述众核芯片发送所述各个数据包;所述配置包通路模块用于在接收到所述第一数据后,直接将所述第一数据发送至所述众核芯片。
在一种可能的实现方式中,所述存储模块包括先入先出队列和乒乓缓存;其中,所述先入先出队列用于缓存所述外部芯片发送的所述第一数据;所述乒乓缓存用于从所述先入先出队列中读取所述第一数据包括的各个数据包,以及通过所述仲裁控制器向所述众核芯片发送所述第一数据包括的各个数据包。
在一种可能的实现方式中,所述数据包中包括控制命令和业务数据。
在一种可能的实现方式中,所述状态控制模块还用于对所述数据包进行译码,获得所述数据包中包括的控制命令,并根据所述控制命令确定所述数据包的业务类型。
在一种可能的实现方式中,所述状态控制模块还用于丢弃译码错误的数据包以及不可处理的数据包。
在一种可能的实现方式中,所述上行数据逻辑模块包括结果回传模块和异常响应模块;其中,所述结果回传模块用于将所述众核芯片对所述第一数据进行运算得到的运算结果发送至所述外部芯片;所述异常响应模块用于收集所述外部控制电路的异常信息以及所述众核芯片的异常信息,并将收集到的异常信息回传至所述外部芯片。
在一种可能的实现方式中,每个业务类型对应一个运算结果,所述上行数据逻辑模块还包括上行仲裁器;其中,所述上行仲裁器用于控制各业务类型对应的运算结果以及收集到的异常信息共享一个上行信道。
在一种可能的实现方式中,所述触发控制器还用于根据所述众核芯片的运行状态调整所述众核芯片的工作模式。
根据本公开的一方面,提供了一种电子设备,包括:众核芯片;所述众核芯片的外部控制电路;其中,所述众核芯片的外部控制电路的结构如以上外部控制电路所述。
在本公开实施例中,通过设置下行数据逻辑模块、上行数据逻辑模块可实现众核芯片与外部芯片进行通信时的高通量数据传输控制与结果反馈;通过设置状态寄存器可以实现多种众核芯片与外部芯片的交互方式;通过设置触发控制器,可以控制众核芯片的工作模式,提高众核芯片的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出本公开实施例的处理器的示意图;
图2示出了本公开实施例提供的众核芯片的外部控制电路的结构示意图;
图3示出了本公开实施例提供的下行数据逻辑模块的结构示意图;
图4示出了本公开实施例提供的上行数据逻辑模块的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出本公开实施例的处理器的示意图。所述处理器包括多个计算核。
在一种可能的实现方式中,如图1所示,所述计算核包括处理部件及存储部件。所述处理部件包括树突单元、轴突单元、胞体单元、路由单元。所述存储部件包括多个存储单元。
在一种可能的实现方式中,多个处理器可以集成在一个类脑计算芯片中,类脑计算芯片即存算一体的神经形态电路,以大脑的处理模式为参考,通过模拟大脑中神经元对信息的传递与处理,提升处理效率并降低功耗。每个处理器可包括多个计算核,计算核之间可独立处理不同的任务,或并行处理同一任务,以提升处理效率。计算核之间可通过计算核内的路由单元进行核间信息传输。
在计算核之内,可以设置有处理部件和存储部件。处理部件可以包括树突单元、轴突单元、胞体单元和路由单元。处理部件可以模拟大脑的神经元对信息的处理模式,其中,树突单元用于接收信号,轴突单元用于发送尖峰信号,胞体单元用于信号的集成变换,路由单元用于同其它计算核进行信息传输。计算核内的处理部件可以对存储部件的多个存储单元进行读写访问,以与计算核内的存储部件进行数据交互,并可分别承担各自的数据处理任务和/或数据传输任务,以获得数据处理结果,或者与其他计算核进行通信。其中,与其他计算核进行通信包括与本处理器内的其他计算核进行通信,以及与其他处理器内的计算核通信。
在一种可能的实现方式中,膜电位(Membrane Potential)为以膜相隔的两溶液之间产生的电位差。利用膜电位可以在神经细胞间通讯。类脑计算芯片内的各个计算核,可以模拟大脑中神经细胞利用膜电位对信息传递与处理的模式。
在一种可能的实现方式中,存储单元可以为静态随机存取存储器(StaticRandomAccess Memory,SRAM)。例如,可以包括读写宽度为16B,容量为12KB的SRAM。其中,第三存储单元MEM2可以接收胞体单元读取运算参数以进行非线性运算,或者可接收路由单元读取路由表,以进行数据通信。本公开对存储单元的读写宽度和容量不做限制。
众核芯片即以众核架构为特点的神经形态芯片(例如图1所示的类脑计算芯片)具有去中心化特征。为了充分发挥众核芯片的处理能力,除了在众核芯片内部要保证高通量的数据传输,众核芯片在与其他芯片进行数据交互时,也要保证交互数据能够尽可能高效且正确地被传输。相关技术中,众核芯片的外部控制电路与众核芯片的高通量特征不适配,从而使得众核芯片的外部控制电路成为限制众核芯片与外部芯片之间数据传输的带宽瓶颈。同时,相关技术中的,众核芯片也没有考虑对多任务的支持。因此,相关技术中,众核芯片的外部控制电路并不能有效地应用于具有多任务、高通量需求的数据通信场景。
本公开实施例提供了一种众核芯片的外部控制电路,能够有效地应用于具有多任务、高通量需求的数据通信场景。图2示出了本公开实施例提供的众核芯片的外部控制电路的结构示意图。如图2所示,外部芯片100在与众核芯片200进行数据通信时,需要经过众核芯片200的外部控制电路300。外部控制电路300可以包括下行数据逻辑模块310、上行数据逻辑模块320、状态寄存器330和触发控制器340。
下行数据逻辑模块310可以用于控制第一数据的传输。其中,第一数据表示外部芯片100向众核芯片200发送的数据。在本公开实施例中,第一数据中包括多个数据包,也就是说第一数据是以数据包的形式送入众核芯片200中进行运算的。
上行数据逻辑模块320可以用于控制第二数据的传输。其中,第二数据表示向外部芯片100反馈的数据。第二数据中包括众核芯片200对第一数据进行运算得到的运算结果。第二数据中还包括外部控制电路300的异常信息和众核芯片200的异常信息。
状态寄存器330用于配置外部控制电路300的模式信息。其中,模式信息用于确定第一数据在下行数据逻辑模块310中的传输路径。
在一种可能的实现方式中,模式信息用于指示外部控制电路300处于配置模式还是数据传输模式。在外部控制电路300处于配置模式的情况下,表明外部芯片100和众核芯片200之间的交互模式为控制模式,外部芯片100向众核芯片200发送的第一数据实际上是配置命令,用于配置众核芯片的工作模式。举例来说,工作模式包括但不限于连续运行和单次运行等。在外部控制电路300处于数据传输模式的情况下,表明外部芯片100和众核芯片200之间的交互模式为业务处理模式,外部芯片100向众核芯片200发送的第一数据实际上为业务数据。
通过状态寄存器为外部控制电路配置多样化的模式,可以增加外部控制电路功能的灵活性。可以理解的是,在本公开实施例中,还可以为外部控制电路增加其他的模式,例如暂停工作模式等,由状态寄存器进行指定即可。
图3示出了本公开实施例提供的下行数据逻辑模块的结构示意图。如图3所示,下行数据逻辑模块310可以包括存储模块311、状态控制模块312、仲裁控制器模块313和配置包通路模块314。
在外部控制电路300处于数据传输模式的情况下,第一数据在下行数据逻辑模块310中的传输路径由存储模块311、状态控制模块312和仲裁控制器模块313构成。具体的,外部芯片100向外部控制电路300发送第一数据。第一数据进入下行数据逻辑模块310后,依次经由存储模块311、状态控制模块312和仲裁控制器模块313后,进入众核芯片200。
存储模块311可以用于缓存第一数据。在一种可能的实现方式中,存储模块311包括先入先出队列(First In First Out Buffer,FIFO Buffer)和乒乓缓存(Ping-PongBuffer)。
其中,先入先出队列用于缓存外部芯片发送的第一数据。乒乓缓存用于从先入先出队列中读取第一数据包括的各个数据包,以及通过仲裁控制器模块313向众核芯片200发送第一数据包括的各个数据包。
在第一数据为业务数据时,第一数据的数量较大,第一数据进入外部控制电路300时,首先进入先入缓存,可以实现对上游数据的缓冲,便于大容量乒乓缓存的读写管理。乒乓缓存可以从先入相处缓存中读取第一数据。在乒乓缓存中缓存的内容(即从先入先出队列中读取的第一数据)以128比特的数据包为单位进行存储。也就是说,在乒乓缓存中第一数据以数据包的形式进行存储,且第一数据包括多个数据包。其中,数据包中包括控制命令和业务数据。根据控制命令可以确定数据包的业务类型,根据业务数据可以得到运算结果。
状态控制模块312可以用于确定第一数据包括的各个数据包的业务类型。具体的,针对任意一个数据包,状态控制模块312用于对数据包进行译码,获得所述数据包中包括的控制命令,并根据所述控制命令确定所述数据包的业务类型。在一种可能的实现方式中,业务类型可以代表高层功能信息,例如,业务类型可以为特征提取、卷积运算或者特征融合等。本公开实施例中,对数据包的编码方式以及译码方式不做限制。
在一种可能的实现方式中,状态控制模块312还用于丢弃译码错误的数据包以及不可处理的数据包。这样,可以保证下发给众核芯片200的数据包的正确性以及可处理性,提高众核芯片的可靠性。
仲裁控制器模块313可以用于基于各个数据包的业务类型向众核芯片200发送各个数据包。在一种可能的实现方式中,仲裁控制器模块313可以基于各个数据包的业务类型将各个数据进行分组,使得每个组中的数据包对应一个业务类型。然后,发完一个组的数据包再发另一个组的数据包。这样,可以应对多任务运行状态下高效数据传输需求。在一种可能的实现方式中,仲裁控制器模块313还可以基于各个数据包的业务类型确定共享数据包,即多个业务类型的业务都会用到的数据包,在传输这多个业务类型的中任意一个业务类型对应的数据包组时,也同时传输该共享数据包,以提高传输效率。
在外部控制电路300处于配置模式的情况下,第一数据在下行数据逻辑模块310中的传输路径由配置包通路模块314构成。具体的,外部芯片100向外部控制电路300发送第一数据。第一数据进入下行数据逻辑模块310后,经由配置包通路模块314后,进入众核芯片200。此时,第一数据为配置命令,可以用于配置众核芯片200的工作模式,举例来说,工作模式包括但不限于连续运行或者单次运行等。这里,配置命令可以绕过整个外部控制电路300中对于数据包的管理,提供了一个直接对众核芯片的工作模式进行配置的通道,增加了灵活性,提升了便捷性。
在一种可能的实现方式中,如图3所示,下行数据逻辑模块310还可以包括完整性控制模块315。完整性控制模块315可以用于对进入下行数据逻辑模块310的第一数据进行完整性校验,例如奇偶校验、纵向冗余校验(Longitudinal Redundancy Check,LRC)、循环冗余校验(Cyclic Redundancy Check,CRC)或者摘要算法等。本公开实施例,对完整性校验算法不做限制。这样,可以避免因外部芯片100向外部控制电路300传输过程中数据出现错误而造成的运算结果不准确的问题,通过校验保证数据传输的正确性,从而提升通讯的鲁棒性。
在本公开实施例中,存储模块可以实现第一数据各数据包的存储;状态控制模块可以实现存储模块存储的数据包的收发、扫描和丢弃等处理;仲裁控制模块可以实现与众核芯片异步多任务场景的适配;配置包通路模块可以为众核芯片提供独立的配置信道,提高灵活性。
触发控制器340可以用于确定众核芯片200的工作模式,并控制众核芯片200在对第一数据进行运算时以所述工作模式运行。
在一种可能的实现方式,触发控制器340可以基于第一数据确定众核芯片200的工作模式。例如,可以基于第一数据包括的各数据包的业务类型或者第一数据的数据量确定众核芯片200的工作模式。举例来说,在单一业务类型(即第一数据包括的各数据包的业务类型相同)的场景下,可以将众核芯片200的工作模式设置为单次运行;在多业务类型(即第一数据包括的各数据包的业务类型不同)的场景下,可以将众核芯片200的工作模式设置为连续运行。或者,在第一数据的数据量小于一定阈值时,将众核芯片200的工作模式设置为单次运行;在第一数据的数据量大于或者等于一定阈值时,将众核芯片200的工作模式设置为连续运行。其中,第一阈值可以根据需要进行设置,例如可以为100M或者10G等,对此本公开实施例不做限制。
在一种可能的实现方式中,触发控制器340还用于根据众核芯片200的运行状态调整众核芯片的工作模式。之后,触发控制器340可以控制众核芯片200后续进行运算时以调整后的工作模式运行。这样,通过实时调整众核芯片的工作模式,可以有效提高众核芯片的工作效率。
在一种可能的实现方式中,触发控制器340可以有选择的对众核芯片200的部分计算核进行控制,也可以对众核芯片200中的计算核进行分组控制,使每组计算核中各计算核的工作模式相同,而不同组中的计算核之间的工作模式可以不同。这样,可以提高灵活性。
图4示出了本公开实施例提供的上行数据逻辑模块的结构示意图。如图4所示,上行数据逻辑模块320可以包括结果回传模块321和异常响应模块322。
其中,结果回传模块321用于将众核芯片200对第一数据进行运算得到的运算结果发送至外部芯片100。
异常响应模块322用于收集外部控制电路300的异常信息以及众核芯片200的异常信息,并将收集到的异常信息回传至外部芯片100。其中,异常信息包括但不限于运行错误信息、超负荷信息、报警信息或者工作中断信息等,对此本公开实施例不做限制。
在一种可能的实现方式中,如图4所示,上行数据逻辑模块320还可以包括上行仲裁器323。
考虑到下行数据逻辑模块310在向众核芯片200发送第一数据包括的各个数据包时,是以业务类型为基础进行分组发送的,因此,众核芯片200对第一数据进行运算得到的运算结果实际包括了多个运算结果,每个运算结果对应一个业务类型。上行仲裁器323可以确定各个业务类型对应的运算结果的发送顺序,从而使得各个业务类型对应的运算结果共享一个上行信道。
由于下行数据逻辑模块310在向众核芯片200发送数据包时已经保证了流量的控制,因此理论上上行信道不会发生拥塞,在上行数据逻辑模块320中不需要消耗大量存储资源来缓存上行数据,设置上行仲裁器323对上行数据的发送顺序进行控制即可。
另外,由于运算结果的数据量相对较小、众核芯片200获得运算结果的速度有限,相应的,运算结果占用的上行信道资源也比较少,因此,上行仲裁器323还可以控制各个业务类型对应的运算结果和收集到的异常信息共享一个上行信道。
在一种可能的实现方式中,可以通过运算结果对应的数据包中的控制位对不同业务类型的运算结果进行区分,以及通过异常信息对应的数据包中的控制位实现异常信息与运算结果之间的区分。
在本公开实施例中,通过反馈运算结果和异常信息,可以规避通信错误导致的盲目等待。
在一种可能的实现方式中,外部控制电路300还包括通信接口(图2未示出)。该通信接口包括网络接口和芯片接口,其中,网络接口用于与外部芯片100进行数据交互,芯片接口用于与众核芯片200进行数据交互。本公开实施例中,对网络接口和芯片接口采用的网路协议不做限制,例如可以为以太网接口等。
需要说明的是,在实际应用场景中,收发模块和完整性校验模块的替换和使用具有很强的机动性,本公开实施例中不做限制,也不做过多介绍。
在一种可能的实现方式中,本公开实施例提供的外部控制电路可以部署在现场可编程门阵列(Field Programmable Gate Array,FPGA)上。
在本公开实施例中,通过设置下行数据逻辑模块、上行数据逻辑模块可实现众核芯片与外部芯片进行通信时的高通量数据传输控制与结果反馈;通过设置状态计算器可以实现多种众核芯片与外部芯片的交互方式;通过设置触发控制器,可以控制众核芯片的工作模式,提高众核芯片的效率。因此,本公开实施例提供的外部控制电路可以实现众核芯片与外部芯片通信时的高通量数据传输控制,在保证众核芯片运行稳定的基础上,优化实时数据传输效率。
本公开实施例提供的外部控制电路可以适应于高动态、低延迟需求的场景。另外,本公开实施例中,可以将外部控制电路封装为众核芯片的硬件通信接口,面向外部芯片抽象化众核芯片的硬件设计机制,降低众核芯片同外部芯片交互所需的编程开发成本。进一步的,外部控制电路(基于配置包通路模块和触发控制器)可以作为众核芯片工作模式的外部指导,便捷化众核芯片的调试和运行,在一定程度上提供了软硬件协同设计的硬件支持。
本公开实施例还提出一种电子设备,包括:众核芯片和如上所述的众核芯片的外部控制电路。该电子设备可以被提供为终端、服务器或其它形态的设备。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (5)
1.一种众核芯片的外部控制电路,其特征在于,所述外部控制电路包括下行数据逻辑模块、上行数据逻辑模块、状态寄存器以及触发控制器;其中,
所述下行数据逻辑模块用于控制第一数据的传输,所述第一数据表示外部芯片向所述众核芯片发送的数据;
所述上行数据逻辑模块用于控制第二数据的传输,所述第二数据表示向所述外部芯片返回的数据,所述第二数据中包括所述众核芯片对所述第一数据进行运算得到的运算结果;
所述状态寄存器用于配置所述外部控制电路的模式信息,所述模式信息用于确定所述第一数据在所述下行数据逻辑模块中的传输路径;
所述触发控制器,用于确定所述众核芯片的工作模式,并控制所述众核芯片在对所述第一数据进行运算时以所述工作模式运行;
所述模式信息用于指示所述外部控制电路处于配置模式还是数据传输模式,所述下行数据逻辑模块包括存储模块、状态控制模块、仲裁控制器模块和配置包通路模块;
在所述外部控制电路处于数据传输模式的情况下,所述第一数据在所述下行数据逻辑模块中的传输路径由存储模块、状态控制模块和所述仲裁控制器模块构成;
在所述外部控制电路处于配置模式的情况下,所述第一数据在所述下行数据逻辑模块中的传输路径由所述配置包通路模块构成;
所述存储模块用于缓存所述第一数据;
所述状态控制模块用于确定所述第一数据包括的各个数据包的业务类型;
所述仲裁控制器模块用于基于所述各个数据包的业务类型向所述众核芯片发送所述各个数据包;
所述配置包通路模块用于在接收到所述第一数据后,直接将所述第一数据发送至所述众核芯片;
所述存储模块包括先入先出队列和乒乓缓存;其中,
所述先入先出队列用于缓存所述外部芯片发送的所述第一数据;
所述乒乓缓存用于从所述先入先出队列中读取所述第一数据包括的各个数据包,以及通过所述仲裁控制器向所述众核芯片发送所述第一数据包括的各个数据包;
所述数据包中包括控制命令和业务数据;
所述状态控制模块还用于对所述数据包进行译码,获得所述数据包中包括的控制命令,并根据所述控制命令确定所述数据包的业务类型;
所述状态控制模块还用于丢弃译码错误的数据包以及不可处理的数据包。
2.根据权利要求1所述的外部控制电路,其特征在于,所述上行数据逻辑模块包括结果回传模块和异常响应模块;其中,
所述结果回传模块用于将所述众核芯片对所述第一数据进行运算得到的运算结果发送至所述外部芯片;
所述异常响应模块用于收集所述外部控制电路的异常信息以及所述众核芯片的异常信息,并将收集到的异常信息回传至所述外部芯片。
3.根据权利要求2所述的外部控制电路,其特征在于,每个业务类型对应一个运算结果,所述上行数据逻辑模块还包括上行仲裁器;其中,
所述上行仲裁器用于控制各业务类型对应的运算结果以及收集到的异常信息共享一个上行信道。
4.根据权利要求1所述的外部控制电路,其特征在于,所述触发控制器还用于根据所述众核芯片的运行状态调整所述众核芯片的工作模式。
5.一种电子设备,其特征在于,包括:
众核芯片;
所述众核芯片的外部控制电路;
其中,所述众核芯片的外部控制电路的结构如权利要求1至4中任意一项所述的控制电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426268.6A CN114968903B (zh) | 2022-04-21 | 2022-04-21 | 一种众核芯片的外部控制电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426268.6A CN114968903B (zh) | 2022-04-21 | 2022-04-21 | 一种众核芯片的外部控制电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968903A CN114968903A (zh) | 2022-08-30 |
CN114968903B true CN114968903B (zh) | 2024-04-19 |
Family
ID=82978389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210426268.6A Active CN114968903B (zh) | 2022-04-21 | 2022-04-21 | 一种众核芯片的外部控制电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968903B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN108631934A (zh) * | 2017-03-24 | 2018-10-09 | 华为技术有限公司 | 一种数据传输方法、终端设备及基站系统 |
CN112925739A (zh) * | 2021-03-19 | 2021-06-08 | 清华大学 | 应用于众核芯片的通信方法、众核芯片及存储介质 |
WO2021147721A1 (zh) * | 2020-01-20 | 2021-07-29 | 北京灵汐科技有限公司 | 众核系统的片上网络互联结构、数据传输方法、板卡、电子设备、计算机可读存储介质 |
CN114363246A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
-
2022
- 2022-04-21 CN CN202210426268.6A patent/CN114968903B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541804A (zh) * | 2011-12-26 | 2012-07-04 | 中国人民解放军信息工程大学 | 一种异构系统中多gpu互连体系结构 |
CN108631934A (zh) * | 2017-03-24 | 2018-10-09 | 华为技术有限公司 | 一种数据传输方法、终端设备及基站系统 |
WO2021147721A1 (zh) * | 2020-01-20 | 2021-07-29 | 北京灵汐科技有限公司 | 众核系统的片上网络互联结构、数据传输方法、板卡、电子设备、计算机可读存储介质 |
CN114363246A (zh) * | 2020-09-30 | 2022-04-15 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN112925739A (zh) * | 2021-03-19 | 2021-06-08 | 清华大学 | 应用于众核芯片的通信方法、众核芯片及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114968903A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057318B1 (en) | Distributed artificial intelligence extension modules for network switches | |
US11099902B1 (en) | Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications | |
US10931588B1 (en) | Network switch with integrated compute subsystem for distributed artificial intelligence and other applications | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
US11715040B1 (en) | Network switch with integrated gradient aggregation for distributed machine learning | |
EP3762830B1 (en) | Debug controller circuit | |
Plana et al. | A GALS infrastructure for a massively parallel multiprocessor | |
US5020020A (en) | Computer interconnect system with transmit-abort function | |
CN101873253B (zh) | 带缓冲的纵横式交换机系统 | |
CN114026829B (zh) | 同步网络 | |
US20200081850A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
CN112866148B (zh) | 一种面向类脑计算芯片的芯片间数据传输系统及实现方法 | |
CN112729395B (zh) | 一种面向复杂SoC可靠性监测的片上传感器读出系统 | |
US7506081B2 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
US10896119B1 (en) | Common input/output interface for application and debug circuitry | |
CN110888824B (zh) | 多级存储器层级结构 | |
CN114968903B (zh) | 一种众核芯片的外部控制电路 | |
US6208645B1 (en) | Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems | |
CN116383114B (zh) | 芯片、芯片互联系统、数据传输方法、电子设备和介质 | |
RU159583U1 (ru) | Многопроцессорный модуль цифровой обработки сигналов | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
CN110297785A (zh) | 一种基于fpga的金融数据流控装置和流控方法 | |
CN105262659A (zh) | 基于fpga芯片的hdlc协议控制器 | |
Scott | The SCX channel: A new, supercomputer-class system interconnect | |
CN116057907A (zh) | 片上路由器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |