CN116185938A - 多核异构系统及其交互方法 - Google Patents
多核异构系统及其交互方法 Download PDFInfo
- Publication number
- CN116185938A CN116185938A CN202310102452.XA CN202310102452A CN116185938A CN 116185938 A CN116185938 A CN 116185938A CN 202310102452 A CN202310102452 A CN 202310102452A CN 116185938 A CN116185938 A CN 116185938A
- Authority
- CN
- China
- Prior art keywords
- target
- circuit
- processors
- interaction
- processor
- 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
- 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种多核异构系统及其交互方法,该方法中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号。由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
Description
技术领域
本申请涉及计算机领域,具体涉及一种多核异构系统及其交互方法。
背景技术
随着计算机技术的发展,芯片设计水平的提高以及应用需求的提升,多核异构系统越来越广泛的被应用到产品中。
相关技术中,多核异构系统可以包括多个处理器和现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA),该多个处理器与FPGA之间可以进行交互。
但是,在多个处理器同时与FPGA交互的过程中,该FPGA对多个处理器发送的请求处理的效率较低,从而导致多核异构系统交互的效率较低。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的一个目的在于提出一种多核异构系统及其交互方法,该方法中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号,由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
第一方面,提供了一种多核异构系统的交互方法,应用于多核异构系统中的控制器,多核异构系统还包括:多个处理器和可编程逻辑器件,可编程逻辑器件包括多个电路;方法包括:
接收多个处理器中多个第一处理器发送的多个第一交互信号,多个第一交互信号与多个第一处理器一一对应;
确定多个第一交互信号待访问的多个目标电路,多个目标电路中的每个目标电路与至少一个目标第一交互信号对应;
向每个目标电路发送对应的至少一个目标第一交互信号,以使目标电路执行至少一个目标第一交互信号。
可选的,向每个目标电路发送对应的至少一个目标第一交互信号,包括:
确定每个目标电路的状态;
若目标电路的状态为可交互状态,则向目标电路发送至少一个目标第一交互信号;
若目标电路的状态为不可交互状态,则存储至少一个目标第一交互信号,并在目标电路的状态由不可交互状态更新为可交互状态后,向目标电路发送至少一个目标第一交互信号。
可选的,至少一个目标第一交互信号的个数为多个;向目标电路发送至少一个目标第一交互信号,还包括:
基于多个目标第一处理器的优先级,依次向目标电路发送多个目标第一交互信号;
其中,多个目标第一交互信号与多个目标第一处理器一一对应。
可选的,在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,方法还包括:
确定多个处理器中配置处理器的优先级为最高优先级,配置处理器为向可编程逻辑器件发送配置信息的处理器;
确定多个处理器中除配置处理器之外的其他处理器的优先级;
在基于多个目标第一处理器的优先级,依次向目标电路发送多个目标第一交互信号之前,方法还包括:
基于多个处理器的优先级确定多个目标第一处理器的优先级。
可选的,在基于多个目标第一处理器的优先级,依次向目标电路发送多个目标第一交互信号之后,方法还包括:
更新多个处理器的优先级。
可选的,在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,方法还包括:
接收多个处理器中第一配置处理器发送的第一配置信息;
向可编程逻辑器件发送第一配置信息,以使可编程逻辑器件基于第一配置信息生成多个电路。
可选的,在向每个目标电路发送对应的至少一个目标第一交互信号之后,方法还包括:
接收多个处理器中第二配置处理器发送的第二配置信息;
向可编程逻辑器件发送第二配置信息,以使可编程逻辑器件基于第二配置信息更新多个电路。
可选的,多核异构系统还包括:直接存储器访问(direct memory access,DMA)和存储器,在向每个目标电路发送对应的至少一个目标第一交互信号之后,方法还包括:
接收目标电路发送的第一响应数据,第一响应数据是目标电路执行一个目标第一交互信号所生成的;
若第一响应数据的类型为第一预设类型,则向对应的处理器发送第一响应数据;
若第一响应数据的类型为第二预设类型,则向DMA发送第一响应数据,以使DMA将第一响应数据存储至存储器。
可选的,方法还包括:
接收多个处理器中第二处理器发送的第二交互信号,第二交互信号用于指示DMA从存储器中获取第二响应数据;
向DMA发送第二交互信号,以使DMA基于第二交互信号从存储器中获取第二响应数据,并发送第二响应数据;
向第二处理器发送第二响应数据。
第二方面,提供了一种多核异构系统,多核异构系统包括:控制器、多个处理器和可编程逻辑器件,可编程逻辑器件包括多个电路;控制器,用于:
接收多个处理器中多个第一处理器发送的多个第一交互信号,多个第一交互信号与多个第一处理器一一对应;
确定多个第一交互信号待访问的多个目标电路,多个目标电路中的每个目标电路与至少一个目标第一交互信号对应;
向每个目标电路发送对应的至少一个目标第一交互信号,以使目标电路执行至少一个目标第一交互信号。
可选的,控制器包括:控制电路和高级高性能总线(advanced high performancebus,AHB)矩阵;
控制电路分别与可编程逻辑器件和AHB矩阵连接,控制电路用于获取可编程逻辑器件中多个电路的状态;
AHB矩阵还与多个处理器连接,AHB矩阵用于:
从控制电路获取每个目标电路的状态;
若目标电路的状态为可交互状态,则通过控制电路向目标电路发送至少一个目标第一交互信号;
若目标电路的状态为不可交互状态,则存储至少一个目标第一交互信号,并在目标电路的状态由不可交互状态更新为可交互状态后,通过控制电路向目标电路发送至少一个目标第一交互信号。
可选的,至少一个目标第一交互信号的个数为多个;AHB矩阵,还用于:
基于多个目标第一处理器的优先级,依次向控制电路发送多个目标第一交互信号,多个目标第一交互信号与多个目标第一处理器一一对应;
控制电路用于向目标电路的输入端口发送目标第一交互信号。
可选的,AHB矩阵,还用于:
在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,确定多个处理器中配置处理器的优先级为最高优先级,配置处理器为向可编程逻辑器件发送配置信息的处理器;
确定多个处理器中除配置处理器之外的其他处理器的优先级;
在基于多个目标第一处理器的优先级,依次向控制电路发送多个目标第一交互信号之前,基于多个处理器的优先级确定多个目标第一处理器的优先级。
可选的,AHB矩阵,还用于:
在基于多个目标第一处理器的优先级,依次向控制电路发送多个目标第一交互信号之后,更新多个处理器的优先级。
可选的,控制器包括:控制电路和AHB矩阵;AHB矩阵,还用于:
在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,接收多个处理器中第一配置处理器发送的第一配置信息,并向控制电路发送第一配置信息;
控制电路,还用于向可编程逻辑器件发送第一配置信息;
可编程逻辑器件用于基于第一配置信息生成多个电路。
可选的,AHB矩阵,还用于接收多个处理器中第二配置处理器发送的第二配置信息,并向控制电路发送第二配置信息;
控制电路还用于向可编程逻辑器件发送第二配置信息;
可编程逻辑器件还用于基于第二配置信息更新多个电路。
可选的,控制电路包括:第一控制子电路、第二控制子电路、配置子电路和时钟子电路;
其中,第一控制子电路分别与AHB矩阵、第二控制子电路、配置子电路和时钟子电路连接,第二控制子电路和配置子电路还均分别与时钟子电路、可编程逻辑器件和AHB矩阵连接;
第一控制子电路用于若接收到AHB矩阵发送的目标第一交互信号,则通过时钟子电路控制配置子电路处于断开状态,并通过时钟子电路控制第二控制子电路处于开启状态;若接收到配置信息,则通过时钟子电路控制配置子电路处于开启状态,并通过时钟子电路控制第二控制子电路处于断开状态;
第二控制子电路用于接收AHB矩阵发送的目标第一交互信号,并向对应的目标电路发送目标第一交互信号;
配置子电路用于接收AHB矩阵发送的配置信息,并向可编程逻辑器件发送配置信息。
可选的,多核异构系统还包括:DMA和存储器,AHB矩阵分别与DMA和存储器连接;
控制电路,还用于:
接收目标电路发送的第一响应数据,并将第一响应数据发送至AHB矩阵,第一响应数据是目标电路执行一个目标第一交互信号生成的;
若第一响应数据的类型为第一预设类型,则通过AHB矩阵向对应的第一处理器发送第一响应数据;
若第一响应数据的类型为第二预设类型,则通过AHB矩阵向DMA发送第一响应数据;
DMA用于将第一响应数据存储至存储器。
可选的,AHB矩阵,还用于接收多个处理器中第二处理器发送的第二交互信号,并向DMA发送第二交互信号,第二交互信号用于指示DMA从存储器中获取第二响应数据;
DMA用于响应于第二交互信号从存储器中获取第二响应数据,并将第二响应数据发送至AHB矩阵;
AHB矩阵还用于将第二响应数据发送至第二处理器。
第三方面,提供了一种芯片,芯片包括:上述方面所述的多核异构系统。
第四方面,提供了一种计算机设备,计算机设备包括:至少一个上述方面所述的芯片。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1是本申请实施例提供的一种多核异构系统的结构示意图;
图2是本申请实施例提供的一种多核异构系统的交互方法的流程图;
图3是本申请实施例提供的另一种多核异构系统的交互方法的流程图;
图4是本申请实施例提供的另一种多核异构系统的局部结构示意图;
图5是本申请实施例提供的又一种多核异构系统的局部结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
图1是本申请实施例提供的一种多核异构系统的结构示意图,如图1所示,该多核异构系统可以包括控制器10、多个处理器和可编程逻辑器件20,该可编程逻辑器件可以包括多个电路。该多个电路所实现的功能均可以不同,或者多个电路所实现的功能均可以相同,或者多个电路中部分电路所实现的功能也相同,另一部分电路所实现的功能不同,本申请实施例对此不做限定。
其中,该可编程逻辑器件20可以为FPGA、嵌入式FPGA(embedded FPGA)或者(complex programmable logic device,CPLD)等。
在本申请实施例中,嵌入了eFPGA的芯片相比于普通的片上系统,可以将集成电路(ASIC)的高性能与FPGA的可重复编程的这一灵活特性结合在同一块芯片上。并且,eFPGA与FPGA相比不再需要大型可编程输入/输出缓冲,接口延迟更低,性能更高,可大幅节省功耗和芯片面积。
图1示出了该多个处理器可以包括第一处理器C1、第二处理器C2和第三处理器C3,该可编程逻辑器件20可以包括第一电路21至第五电路25。
图2是本申请实施例提供的一种多核异构系统的交互方法的流程图,该方法可以应用于图1所示的多核异构系统中的控制器10。如图2所示,该方法包括:
步骤201、接收多个处理器中多个第一处理器发送的多个第一交互信号。
在本申请实施例中,该控制器可以接收多个处理器中多个第一处理器发送的多个第一交互信号,其中,该多个第一交互信号与多个第一处理器一一对应。
步骤202、确定多个第一交互信号待访问的多个目标电路。
控制器在接收多个第一交互信号后,可以确定多个第一交互信号待访问的多个目标电路。其中,该多个目标电路中的每个目标电路与多个第一交互信号中的至少一个目标第一交互信号对应。
若多个目标电路的个数与多个第一交互信号的个数可以相同,则每个目标电路对应一个目标第一交互信号。若多个目标电路的个数小于多个第一交互信号的个数,则部分目标电路对应多个目标第一交互信号。
步骤203、向每个目标电路发送对应的至少一个目标第一交互信号。
控制器在确定多个目标电路之后,可以同时向每个目标电路发送对应的至少一个目标第一交互信号,以使该目标电路执行该至少一个目标第一交互信号。
综上所述,本申请实施例提供了一种多核异构系统的交互方法,该方法中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号,由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
在本申请实施例中,通过将可编程逻辑器件中的多个电路充当多个从设备,控制器通过执行本申请实施例提供的方法使得多个处理器和多个电路能够进行低延时的并行通信,提高了多核异构系统交互的灵活性和效率,降低了多核异构系统的功耗,且提高了带宽和资源利用率。
图3是本申请实施例提供的另一种多核异构系统的交互方法的流程图,该方法可以应用于图1所示的多核异构系统中的控制器10。如图3所示,该方法包括:
步骤301、接收多个处理器中第一配置处理器发送的第一配置信息,并向可编程逻辑器件发送第一配置信息。
在本申请实施例中,控制器可以接收多个处理器中第一配置处理器发送的第一配置信息,并向可编程逻辑器件发送该第一配置信息,以使可编程逻辑器件基于第一配置信息生成多个电路,例如,图1所示的第一电路21至第五电路25。
其中,该第一配置处理器可以为多个处理器中的任一处理器,该第一配置处理器中可以预先存储该第一配置信息,该第一配置信息可以为码流数据。
该码流数据可以是将采用C语言设计并编译的可执行文件进行转化,所得到的指令流(bitstream)。示例的,码流数据的大小可以为256兆(MB)。
在本申请实施例中,参考图1,该多核异构系统还可以包括与每个处理器连接的闪存(flash),每个闪存的大小大于码流数据的大小。图1示出了第一闪存F1至第五闪存F5共五个闪存。与第一配置处理器连接的闪存还用于与外接设备连接,该外接设备可以将第一配置信息通过该闪存发送至第一配置处理器。
示例的,参考图1,若第二处理器C2为第一配置处理器,则与第二处理器C2连接的第二闪存F2用于将外接设备发送的第一配置信息发送至第二处理器C2。
在本申请实施例中,控制器在接收第一配置处理器发送的第一配置信息之后,还可以确定多个处理器中第一配置处理器的优先级为最高优先级,并确定多个处理器中除第一配置处理器之外的其他处理器的优先级。
可选的,控制器可以基于其他处理器的标号确定其他处理器的优先级。其中,控制器中可以预先存储多个处理器的标号,若其他处理器的个数为多个,则多个其他处理器的优先级的高低与多个其他处理器的标号的大小可以负相关,或者也可以正相关,本申请实施例以多个其他处理器的优先级的高低与多个其他处理器的标号的大小负相关为例进行说明。
示例的,若第一处理器的标号为1,第二处理器的标号为2,第三处理器的标号为3,且第二处理器为第一配置处理器。由于第二处理器为第一配置处理器,且第一处理器的标号1小于第三处理器的标号3,那么控制器可以确定第二处理器的优先级为最高优先级,第一处理器的优先级高于第三处理器的优先级,且低于第二处理器的优先级。
步骤302、接收多个处理器中多个第一处理器发送的多个第一交互信号。
控制器在将第一配置信息发送至可编程逻辑器件之后,还可以接收多个处理器中多个第一处理器发送的多个第一交互信号,其中,多个第一处理器的个数可以小于或等于多个处理器的个数,该多个第一交互信号与多个第一处理器一一对应。
示例的,参考图1,多个第一处理器可以包括第一处理器C1、第二处理器C2和第三处理器C3。
步骤303、确定多个第一交互信号待访问的多个目标电路。
控制器在接收到多个第一交互信号后,可以确定多个第一交互信号待访问的多个目标电路。其中,该多个目标电路中的每个目标电路与多个第一交互信号中的至少一个目标第一交互信号对应。
若多个目标电路的个数与多个第一交互信号的个数可以相同,则每个目标电路对应一个目标第一交互信号。若多个目标电路的个数小于多个第一交互信号的个数,则多个目标电路中的部分目标电路对应多个目标第一交互信号。
对于每个目标电路,若目标电路与一个目标第一交互信号对应,则表明一个第一处理器访问该目标电路。若目标电路与多个目标第一交互信号对应,则表明多个第一处理器同时访问该目标电路。
示例的,若多个第一交互信号包括第一处理器、第二处理器和第三处理器发送的三个第一交互信号,第一处理器和第二处理器发送的第一交互信号待访问的目标电路均为第一电路,第三处理器发送的第一交互信号待访问的目标电路为第二电路。那么第一电路对应两个目标第一交互信号,第二电路对应一个目标第一交互信号。
在本申请实施例中,每个第一交互信号中可以携带待访问的目标电路的地址,对于每个第一交互信号,控制器可以基于第一交互信号携带的地址确定第一交互信号待访问的目标电路。
步骤304、确定每个目标电路的状态。
在本申请实施例中,控制器可以周期性或者实时获取可编程逻辑器件中每个电路的状态,由此可以获取到每个目标电路的状态。其中,每个电路的状态可以包括可交互状态和不可交互状态,可交互状态指的是该电路能够接收并执行指示信号(例如,该指示信号可以为第一交互信号),不可交互状态指的是电路无法执行指示信号。若该电路处于忙碌状态(如电路在执行其他指示信号),则该电路处于不可交互状态。
步骤305、检测目标电路的状态是否为可交互状态。
对于每个目标电路,控制器可以检测目标电路的状态是否为可交互状态。若该目标电路的状态为可交互状态,则控制器可以执行下述步骤306。若该目标电路的状态为不可交互状态,则控制器可以执行步骤307。
步骤306、向目标电路发送对应的至少一个目标第一交互信号。
控制器若确定目标电路的状态为可交互状态,则可以向该目标电路发送对应的至少一个目标第一交互信号,以使目标电路执行至少一个目标第一交互信号。
若该至少一个目标第一交互信号的个数为一个,则控制器可以向该目标电路发送该一个目标第一交互信号。
若该至少一个目标第一交互信号的个数为多个,该多个目标第一交互信号与多个第一处理器中的多个目标第一处理器一一对应,则控制器可以按照多个目标第一处理器的优先级,依次向目标电路发送多个目标第一交互信号。
可选的,控制器可以按照多个目标第一处理器的优先级由高到低的顺序,依次向目标电路发送该多个目标第一交互信号。或者按照多个目标第一处理器的优先级由低到高的顺序,依次向目标电路发送该多个目标第一交互信号,本申请实施例在此不做限定。
可以理解的是,目标电路在接收到控制器发送的一个目标第一交互信号后,其状态由可交互状态更新为不可交互状态,在执行完该一个目标第一交互信号后,其状态由不可交互状态再次更新为可交互状态。因此控制器可以在确定目标电路的状态由不可交互状态更新为可交互状态后,向目标电路发送下一个目标第一交互信号。
在本申请实施例中,控制器可以基于多个处理器的优先级,确定多个目标第一处理器的优先级。
示例的,若多个处理器包括第一处理器至第三处理器,且第二处理器的优先级高于第一处理器的优先级,第一处理器的优先级高于第三处理器的优先级。多个目标第一处理器包括第一处理器和第二处理器,则控制器可以确定第二处理器的优先级高于第一处理器的优先级,因此可以先向目标电路发送第二处理器对应的目标第一交互信号,之后再向目标电路发送第一处理器对应的目标第一交互信号。
在本申请实施例中,控制器在基于多个目标第一处理器的优先级,依次向目标电路发送多个目标第一交互信号之后,还可以更新多个处理器的优先级。可选的,控制器可以采用轮询仲裁的方式更新多个处理器的优先级,即更新多个处理器中位于第一参考处理器之后的处理器的优先级,高于位于第一参考处理器之前的处理器的优先级。第一参考处理器为多个目标第一处理器中优先级最低的处理器。
示例的,若多个处理器包括第一处理器至第六处理器,第一处理器至第六处理器的优先级依次降低,若目标第一处理器包括第二处理器、第三处理器和第五处理器,则控制器在采用轮询仲裁的方式更新多个处理器的优先级之后,第六处理器的优先级最高,第一处理器的优先级低于第六处理器的优先级,且第一处理器至第五处理器的优先级依次降低。
步骤307、存储与目标电路对应的至少一个目标第一交互信号。
在本申请实施例中,控制器若确定目标电路的状态为不可交互状态,则可以存储与该目标电路对应的至少一个目标第一交互信号,并继续执行步骤305,在该目标电路的状态由不可交互状态更新为可交互状态后,执行步骤306。
参考图1,该多核异构系统还可以包括DMA 30和存储器40,该DMA 30和存储器40均与控制器10连接。其中,该存储器40的大小可以为64千字节(KB)。
控制器在向目标电路发送至少一个目标第一交互信号后,还可以接收目标电路发送的第一响应数据,若第一响应数据的类型为第一预设类型,则可以向对应的第一处理器发送第一响应数据。若第一响应数据的类型为第二预设类型,则可以向DMA发送第一响应数据,以使得DMA将该第一响应数据存储至存储器中。
其中,该第一响应数据是目标电路执行至少一个目标第一交互信号中的一个目标第一交互信号生成的。示例的,该第一响应数据可以是人脸识别数据或加密结果等数据。该对应的第一处理器即为发送该一个目标第一交互信号的处理器。控制器中可以预先存储该第一预设类型和第二预设类型。该第二预设类型与第一预设类型不同。
可选的,若第一响应数据的应用时长小于预设时长,则该第一响应数据的的类型为第一预设类型。其中,应用时长指的是从控制器接收该第一响应数据至第一处理器使用该第一响应数据的时长,也即是第一处理器在较短的时间内要使用该第一响应数据。若第一响应数据的应用时长大于或等于预设时长,则该第一响应数据的类型为第二预设类型,也即是,第一处理器在较短的时间内不会使用该第一响应数据。
示例的,若第一响应数据为加密结果,则该第一响应数据的类型为第一预设类型。若该第一响应数据为人脸识别数据,则该第一响应数据的类型为第二预设类型。
在本申请实施例中,控制器中可以预先存储响应数据与预设类型的对应关系,控制器在接收到第一响应数据之后,可以从该对应关系中确定与该第一响应数据对应的预设类型。
在本申请实施例中,控制器还可以接收多个处理器中第二处理器发送的第二交互信号,并向DMA发送该第二交互信号。
其中,该第二交互信号用于指示DMA从存储器中获取第二响应数据,DMA在接收到该第二交互信号后,可以响应于第二交互信号从存储器中获取第二响应数据,并将获取的第二响应数据发送至控制器。
控制器在接收到DMA发送的第二响应数据之后,可以向第二处理器发送第二响应数据。
在本申请实施例中,若第二处理器的个数可以为多个,则控制器可以按照多个第二处理器的优先级,依次向DMA发送多个第二交互信号,该多个第二交互信号与该多个第二处理器一一对应。
可选的,控制器可以基于多个处理器的优先级确定多个第二处理器的优先级。并且,控制器在向DMA发送多个第二交互信号后,还可以采用轮询仲裁的方式更新多个处理器的优先级,即更新多个处理器中位于第二参考处理器之后的处理器的优先级,高于位于第二参考处理器之前的处理器的优先级。第二参考处理器为多个第二处理器中优先级最低的处理器。
在本申请实施例中,控制器可以在执行上述步骤306之后,接收第二处理器发送的第二交互信号,或者,控制器可以在接收多个第一交互信号的同时,接收第二处理器发送的第二交互信号,并同时处理多个第一交互信号和第二交互信号。或者控制器可以在向第二处理器发送第二响应数据之后,执行步骤302,本申请实施例对此不做限定。
在本申请实施例中,控制器在向每个目标电路发送对应的至少一个目标第一交互信号之后,还可以接收第二配置处理器发送的第二配置信息,并向可编程逻辑器件发送第二配置信息,以使可编程逻辑器件基于第二配置信息更新多个电路,由此重新配置可编程逻辑器件,实现对可编程逻辑器件的二次重构。
并且,控制器在接收到第二配置信息后,还可以基于第二配置处理器更新多个处理器的优先级,即更新多个处理器中第二配置处理器以及位于第二配置处理器之后的处理器的优先级,高于位于第二配置处理器之前的处理器的优先级。
在本申请实施例中,通过将可编程逻辑器件中的多个电路充当多个从设备,控制器通过执行本申请实施例提供的方法使得多个处理器和多个电路能够进行低延时的并行通信,提高了多核异构系统交互的灵活性和效率,优化了多核异构系统的性能,降低了多核异构系统的功耗,且提高了资源利用率。并且,在终端用户需求变化时可以更新可编程逻辑器件中的多个电路。
综上所述,本申请实施例提供了一种多核异构系统的交互方法,该方法中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号。由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
本申请实施例提供了一种多核异构系统,参考图1,该多核异构系统中的控制器10,用于:
接收多个处理器中多个第一处理器发送的多个第一交互信号,其中,该多个第一交互信号与多个第一处理器一一对应。
确定多个第一交互信号待访问的多个目标电路,该多个目标电路中的每个目标电路与至少一个目标第一交互信号对应。
向每个目标电路发送对应的至少一个目标第一交互信号,以使目标电路执行至少一个目标第一交互信号。
综上所述,本申请实施例提供了一种多核异构系统,该多核异构系统中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号。由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
参考图1,控制器10可以包括:AHB矩阵11和控制电路12。
其中,该AHB矩阵11分别与多个处理器和控制电路12连接,AHB矩阵11用于接收多个处理器中多个第一处理器发送的多个第一交互信号,并确定多个第一交互信号待访问的多个目标电路。
控制电路12还与可编程逻辑器件20连接,该控制电路12用于向目标电路发送对应的至少一个目标第一交互信号。
可选的,每个第一交互信号可以包括待访问的目标电路的地址,对于每个第一交互信号,AHB矩阵11可以基于第一交互信号中的地址确定第一交互信号待访问的目标电路。
参考图4,该AHB矩阵11可以包括:第一输入输出模块111和控制模块112。
其中,该第一输入输出模块111分别与多个处理器和控制模块112连接,第一输入输出模块111用于接收多个处理器中多个第一处理器发送的多个第一交互信号,并将该多个第一交互信号发送至控制模块112。
控制模块112用于确定多个第一交互信号待访问的多个目标电路。
参考图4,该控制模块112可以包括地址译码模块112a和仲裁模块112b。
地址译码模块112用于接收多个第一交互信号,对每个第一交互信号进行译码,并将译码后的第一交互信号发送至仲裁模块112b。其中,该第一交互信号可以为二进制数据。地址译码模块112用于将该二进制数据转换为能够识别的信号。
仲裁模块112b用于基于译码后的第一交互信号,确定多个第一交互信号待访问的多个目标电路。
在本申请实施例中,控制电路12用于获取可编程逻辑器件20中多个电路的状态。可选的,控制电路12可以周期性或者实时获取多个电路的状态。其中,每个电路的状态可以包括可交互状态和不可交互状态。
AHB矩阵11,还用于从控制电路12获取每个目标电路的状态,若该目标电路的状态为可交互状态,则可以通过控制电路12向目标电路发送对应的至少一个目标第一交互信号。若目标电路的状态为不可交互状态,则可以存储至少一个目标第一交互信号,并在目标电路的状态由不可交互状态更新为可交互状态后,通过控制电路12向目标电路发送对应的至少一个目标第一交互信号。
可选的,若该目标电路的状态为可交互状态,且至少一个目标第一交互信号的个数为一个,则AHB矩阵11可以向控制电路12发送该一个目标交互信号,进而控制电路12可以向目标电路发送该一个目标交互信号。
若该目标电路的状态为可交互状态,且至少一个目标第一交互信号的个数为多个,则AHB矩阵11可以按照多个目标第一处理器的优先级,依次向控制电路12发送该多个目标第一交互信号,由此使得控制电路12依次向目标电路的输入端口发送该多个目标第一交互信号。其中,该多个目标第一处理器与多个目标第一交互信号一一对应。
参考图4,若该目标电路的状态为可交互状态,且至少一个目标第一交互信号的个数为一个,则仲裁模块112b可以向控制电路12发送该一个目标交互信号。
若该目标电路的状态为可交互状态,且至少一个目标第一交互信号的个数为多个,则仲裁模块112b可以按照多个目标第一处理器的优先级,依次向控制电路12发送该多个目标第一交互信号。
参考图4,该AHB矩阵11还可以包括第二输入输出模块113,该仲裁模块112b可以通过第二输入输出模块113向控制电路12发送至少一个目标第一交互信号。
控制模块112还可以包括信号寄存模块112c,仲裁模块112b在按照多个目标第一处理器的优先级,依次向控制电路12发送该多个目标第一交互信号的过程中,可以将待发送的目标第一交互信号存储至信号寄存模块112c中。在确定目标电路的状态由不可交互状态更新为可交互状态后,从信号寄存模块112c中获取下一个目标第一交互信号。
在本申请实施例中,AHB矩阵11,还用于:
在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,确定多个处理器中配置处理器的优先级为最高优先级,并确定多个处理器中除配置处理器之外的其他处理器的优先级。其中,该配置处理器可以为向可编程逻辑器件发送配置信息的处理器,该可编程逻辑器件用于基于该配置信息生成多个电路。
其中,确定多个处理器的优先级的过程可以由仲裁模块112b执行,且具体实现过程可以参考上述方法实施例,本申请实施例在此不再赘述。
AHB矩阵11,还用于在基于多个目标第一处理器的优先级,依次向控制电路发送多个目标第一交互信号之前,基于多个处理器的优先级确定多个目标第一处理器的优先级。其中,确定多个目标第一处理器的优先级的过程可以由仲裁模块112b执行,且具体实现过程可以参考上述方法实施例,本申请实施例在此不再赘述。
AHB矩阵11在基于多个目标第一处理器的优先级,依次向控制电路12发送多个目标第一交互信号之后,还可以更新多个处理器的优先级。可选的,AHB矩阵11可以采用轮询仲裁的方式更新多个处理器的优先级。
其中,更新多个处理器的优先级的过程可以由仲裁模块112b执行,且具体实现过程可以参考上述方法实施例,本申请实施例在此不再赘述。
在本申请实施例中,AHB矩阵11,还用于在接收多个处理器中多个第一处理器发送的多个第一交互信号之前,接收多个处理器中第一配置处理器发送的第一配置信息,并向控制电路12发送第一配置信息。其中,该过程可以由仲裁模块112b执行,该仲裁模块112b用于通过第二输入输出模块113向控制电路12发送第一配置信息。
控制电路12,还用于向可编程逻辑器件20的配置端口发送第一配置信息。
可编程逻辑器件20用于基于该第一配置信息生成多个电路,例如,可编程逻辑器件20可以基于第一配置信息生成图1所示的第一电路21至第五电路25。
可以理解的是,在可编程逻辑器件20未设置电路时,该可编程逻辑器件20处于闲置状态。AHB矩阵11可以通过控制电路12获取可编程逻辑器件20的状态,并在该可编程逻辑器件20处于闲置状态时,向控制电路12发送第一配置信息。
在本申请实施例中,AHB矩阵11,还用于在向每个目标电路发送至少一个目标第一交互信号后,接收第二配置处理器发送的第二配置信息,并向控制电路12发送第二配置信息。其中,该过程可以由仲裁模块112b执行,该仲裁模块112b用于通过第二输入输出模块113向控制电路12发送第二配置信息。
控制电路12还用于向可编程逻辑器件20的配置端口发送第二配置信息,该可编程逻辑器件20用于基于第二配置信息更新多个电路,由此实现对可编程逻辑器件20的二次重构。
参考图5,控制电路12可以包括第一控制子电路121、第二控制子电路122、配置子电路123和时钟子电路124。
其中,第一控制子电路121分别与AHB矩阵11、第二控制子电路122、配置子电路123和时钟子电路124连接,第二控制子电路122和配置子电路123还均与时钟子电路124和可编程逻辑器件20连接。
该第二控制子电路122分别与多个电路的输入端口和输出端口连接,该配置子电路123与可编程逻辑器件20的配置端口连接。
第一控制子电路121用于若接收到AHB矩阵11发送的目标第一交互信号,则可以通过时钟子电路124控制配置子电路123处于断开状态,并通过时钟子电路124控制第二控制子电路122处于开启状态。若接收到AHB矩阵11发送的配置信息,则可以通过时钟子电路124控制配置子电路123处于开启状态,并通过时钟子电路124控制第二控制子电路122处于断开状态。
第二控制子电路122用于接收AHB矩阵11发送的目标第一交互信号,并向对应的目标电路的输入端口发送该目标第一交互信号。
配置子电路123用于接收AHB矩阵11发送的配置信息,并向可编程逻辑器件20的配置端口发送配置信息。
时钟子电路124还与多个电路的时钟端连接,该时钟子电路124还用于为第二控制子电路122、配置子电路123和多个电路提供时钟信号。
可选的,时钟子电路124可以停止为第二控制子电路122(或配置子电路123)提供时钟信号,以使第二控制子电路122(或配置子电路123)处于断开状态。时钟子电路124可以为第二控制子电路122(或配置子电路123)提供时钟信号,以使第二控制子电路122(或配置子电路123)处于开启状态。
在本申请实施例中,第一控制子电路121与第二输入输出模块113连接,第一控制子电路121用于接收第二输入输出模块113发送的目标第一交互信号和配置信息。
该第二控制子电路122还与第二输入输出模块113连接,该第二控制子电路122用于接收第二输入输出模块113发送的目标第一交互信号,并向对应的目标电路的输入端口发送该目标第一交互信号。
该第二控制子电路122还用于获取多个电路中每个电路的状态,并将该每个电路的状态通过第一控制子电路121和第二输入输出模块113发送至仲裁模块112b。
配置子电路123还与第二输入输出模块113连接,该配置子电路123用于接收第二输入输出模块113发送的配置信息。
配置子电路123可以采用串行外设接口(serial peripheral interface,SPI)协议串行读取第一配置信息,并将该第一配置信息输入到可编程逻辑器件20的配置端口。
参考图1,该AHB矩阵11分别与DMA 30和存储器40连接。控制电路12,还用于:
从目标电路的输出端口获取目标电路发送的第一响应数据,并将第一响应数据发送至AHB矩阵11,其中,该第一响应数据是目标电路执行一个目标第一交互信号生成的。
若第一响应数据的类型为第一预设类型,则可以通过AHB矩阵11向对应的处理器发送第一响应数据。若第一响应数据的类型为第二预设类型,则可以通过AHB矩阵11向DMA30发送第一响应数据。
DMA 30用于将第一响应数据存储至存储器40。
参考图4,该第二控制子电路122,用于从目标电路的输出端口获取目标电路发送的第一响应数据,若第一响应数据的类型为第一预设类型,则可以通过第二输入输出模块113向仲裁模块112b发送控制信号。该仲裁模块112b用于响应于该控制信号,通过地址译码模块112a向对应的处理器发送第一响应数据。若第一响应数据的类型为第二预设类型,则可以通过第二输入输出模块113将第一响应数据发送至DMA 30。该DMA 30可以通过第二输入输出模块113将第一响应数据存储至存储器40。
参考图5,该控制电路12还可以包括与第二控制子电路122连接的约束子电路125,该约束子电路125中预先存储每个电路的输入端口号。第二控制子电路122在接收到目标第一交互信号后,可以从约束子电路125中获取目标电路的输入端口号,并基于该输入端口号将该目标第一交互信号发送至目标电路的输入端口。
其中,约束子电路125中预先存储电路的地址与输入端口号的第二对应关系,第二控制子电路122可以基于目标第一交互信号确定目标电路的地址,并向约束子电路125发送目标电路的地址。约束子电路125在接收到目标电路的地址后,可以基于该目标电路的地址,从第二对应关系中确定与目标电路的地址对应的输入端口号,并向第二控制子电路122发送目标电路的输入端口号。
可选的,AHB矩阵11,还用于接收多个处理器中第二处理器发送的第二交互信号,并向DMA 30发送第二交互信号,该第二交互信号用于指示DMA 30从存储器40中获取第二响应数据。
DMA 30用于响应于第二交互信号从存储器40中获取第二响应数据,并将第二响应数据发送至AHB矩阵11。
AHB矩阵11还用于将该第二响应数据发送至第二处理器。
参考图4和图5,第二输入输出模块111用于接收第二处理器发送的第二交互信号,并向地址译码模块112a发送该第二交互信号。
地址译码模块112a用于对第二交互信号进行译码,之后向仲裁模块112b发送第二交互信号。该仲裁模块112b通过第二输入输出模块113向DMA 30发送第二交互信号。
若第二交互信号的个数为多个,则仲裁模块112b向DMA 30发送多个第二交互信号的过程可以参考上述方法实施例。
在本申请实施例中,在更新可编程逻辑器件中的多个电路后,由于存储器中存储有更新前的多个电路生成的响应数据,因此更新后的多个电路在执行交互信号的过程中,若需使用存储器中的响应数据,则可以通过控制电路12从存储器中获取相关的数据。
控制电路12在接收到目标第一交互信号后,若确定目标第一交互信号为错误信号,则可以通过AHB矩阵11向第一处理器发送重传信号,以使得第一处理器重新发送第一交互信号。示例的,控制电路12若确定目标第一交互信号中的地址错误,则可以确定目标第一交互信号为错误信号。
参考图4,控制模块112还可以包括状态控制模块112d,该状态控制模块112d用于获取多个处理器的状态,该状态可以包括空闲、错误、传输、等待以及结束5个状态,空闲状态表示此时没有访问的请求,错误表示此时访问的地址不对,传输表示正在进行数据传输,等待表示此时访问的电路正忙需要等待,结束状态表示访问结束,中止数据交互。
综上所述,本申请实施例提供了一种多核异构系统,该系统中控制器在接收到多个第一处理器发送的多个第一交互信号后,能够向多个目标电路中的每个目标电路发送对应的至少一个目标第一交互信号,由此使得多个目标电路并行处理接收到的目标第一交互信号,从而提高了多核异构系统交互的效率。
本申请实施例提供了一种芯片,该芯片可以包括上述实施例所述的多核异构系统。可选的,该芯片可以是系统级芯片(system on chip,SOC)。
本申请实施例提供了一种计算机设备,该计算机设备可以包括:至少一个上述芯片。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“可选的”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,本申请实施例中所使用的“第一”、“第二”等术语,仅用于描述目的,而不可以理解为指示或者暗示相对重要性,或者隐含指明本实施例中所指示的技术特征数量。由此,本申请实施例中限定有“第一”、“第二”等术语的特征,可以明确或者隐含地表示该实施例中包括至少一个该特征。在本申请的描述中,词语“多个”的含义是至少两个或者两个及以上,例如两个、三个、四个等,除非实施例中另有明确具体的限定。
在本申请中,除非实施例中另有明确的相关规定或者限定,否则实施例中出现的术语“安装”、“相连”、“连接”和“固定”等应做广义理解,例如,连接可以是固定连接,也可以是可拆卸连接,或成一体,可以理解的,也可以是机械连接、电连接等;当然,还可以是直接相连,或者通过中间媒介进行间接连接,或者可以是两个元件内部的连通,或者两个元件的相互作用关系。对于本领域的普通技术人员而言,能够根据具体的实施情况理解上述术语在本申请中的具体含义。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (21)
1.一种多核异构系统的交互方法,其特征在于,应用于多核异构系统中的控制器,所述多核异构系统还包括:多个处理器和可编程逻辑器件,所述可编程逻辑器件包括多个电路;所述方法包括:
接收所述多个处理器中多个第一处理器发送的多个第一交互信号,所述多个第一交互信号与所述多个第一处理器一一对应;
确定所述多个第一交互信号待访问的多个目标电路,所述多个目标电路中的每个目标电路与至少一个目标第一交互信号对应;
向每个所述目标电路发送对应的至少一个目标第一交互信号,以使所述目标电路执行所述至少一个目标第一交互信号。
2.根据权利要求1所述的方法,其特征在于,所述向每个所述目标电路发送对应的至少一个目标第一交互信号,包括:
确定每个所述目标电路的状态;
若所述目标电路的状态为可交互状态,则向所述目标电路发送所述至少一个目标第一交互信号;
若所述目标电路的状态为不可交互状态,则存储所述至少一个目标第一交互信号,并在所述目标电路的状态由所述不可交互状态更新为所述可交互状态后,向所述目标电路发送所述至少一个目标第一交互信号。
3.根据权利要求2所述的方法,其特征在于,所述至少一个目标第一交互信号的个数为多个;所述向所述目标电路发送所述至少一个目标第一交互信号,还包括:
基于多个目标第一处理器的优先级,依次向所述目标电路发送多个目标第一交互信号;
其中,所述多个目标第一交互信号与所述多个目标第一处理器一一对应。
4.根据权利要求3所述的方法,其特征在于,在所述接收所述多个处理器中多个第一处理器发送的多个第一交互信号之前,所述方法还包括:
确定所述多个处理器中配置处理器的优先级为最高优先级,所述配置处理器为向所述可编程逻辑器件发送配置信息的处理器;
确定所述多个处理器中除所述配置处理器之外的其他处理器的优先级;
在所述基于多个目标第一处理器的优先级,依次向所述目标电路发送所述多个目标第一交互信号之前,所述方法还包括:
基于所述多个处理器的优先级确定所述多个目标第一处理器的优先级。
5.根据权利要求4所述的方法,其特征在于,在所述基于多个目标第一处理器的优先级,依次向所述目标电路发送所述多个目标第一交互信号之后,所述方法还包括:
更新所述多个处理器的优先级。
6.根据权利要求1至5任一所述的方法,其特征在于,在所述接收所述多个处理器中多个第一处理器发送的多个第一交互信号之前,所述方法还包括:
接收所述多个处理器中第一配置处理器发送的第一配置信息;
向所述可编程逻辑器件发送所述第一配置信息,以使所述可编程逻辑器件基于所述第一配置信息生成所述多个电路。
7.根据权利要求6所述的方法,其特征在于,在所述向每个所述目标电路发送对应的至少一个目标第一交互信号之后,所述方法还包括:
接收所述多个处理器中第二配置处理器发送的第二配置信息;
向所述可编程逻辑器件发送所述第二配置信息,以使所述可编程逻辑器件基于所述第二配置信息更新所述多个电路。
8.根据权利要求1至5任一所述的方法,其特征在于,所述多核异构系统还包括:直接存储器访问DMA和存储器,在所述向每个所述目标电路发送对应的至少一个目标第一交互信号之后,所述方法还包括:
接收所述目标电路发送的第一响应数据,所述第一响应数据是所述目标电路执行所述一个目标第一交互信号所生成的;
若所述第一响应数据的类型为第一预设类型,则向对应的第一处理器发送所述第一响应数据;
若所述第一响应数据的类型为第二预设类型,则向DMA发送所述第一响应数据,以使所述DMA将所述第一响应数据存储至所述存储器。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述多个处理器中第二处理器发送的第二交互信号,所述第二交互信号用于指示所述DMA从所述存储器中获取第二响应数据;
向所述DMA发送所述第二交互信号,以使所述DMA基于所述第二交互信号从所述存储器中获取所述第二响应数据,并发送所述第二响应数据;
向所述第二处理器发送所述第二响应数据。
10.一种多核异构系统,其特征在于,所述多核异构系统包括:控制器、多个处理器和可编程逻辑器件,所述可编程逻辑器件包括多个电路;所述控制器,用于:
接收所述多个处理器中多个第一处理器发送的多个第一交互信号,所述多个第一交互信号与所述多个第一处理器一一对应;
确定所述多个第一交互信号待访问的多个目标电路,所述多个目标电路中的每个目标电路与至少一个目标第一交互信号对应;
向每个所述目标电路发送对应的至少一个目标第一交互信号,以使所述目标电路执行所述至少一个目标第一交互信号。
11.根据权利要求10所述的多核异构系统,其特征在于,所述控制器包括:控制电路和高级高性能总线AHB矩阵;
所述控制电路分别与所述可编程逻辑器件和AHB矩阵连接,所述控制电路用于获取所述可编程逻辑器件中多个电路的状态;
所述AHB矩阵还与所述多个处理器连接,所述AHB矩阵用于:
从所述控制电路获取每个所述目标电路的状态;
若所述目标电路的状态为可交互状态,则通过所述控制电路向所述目标电路发送所述至少一个目标第一交互信号;
若所述目标电路的状态为不可交互状态,则存储所述至少一个目标第一交互信号,并在所述目标电路的状态由所述不可交互状态更新为所述可交互状态后,通过所述控制电路向所述目标电路发送所述至少一个目标第一交互信号。
12.根据权利要求11所述的多核异构系统,其特征在于,所述至少一个目标第一交互信号的个数为多个;所述AHB矩阵,还用于:
基于多个目标第一处理器的优先级,依次向所述控制电路发送多个目标第一交互信号,所述多个目标第一交互信号与所述多个目标第一处理器一一对应;
所述控制电路用于向所述目标电路发送所述目标第一交互信号。
13.根据权利要求12所述的多核异构系统,其特征在于,所述AHB矩阵,还用于:
在所述接收所述多个处理器中多个第一处理器发送的多个第一交互信号之前,确定所述多个处理器中配置处理器的优先级为最高优先级,所述配置处理器为向所述可编程逻辑器件发送配置信息的处理器;
确定所述多个处理器中除所述配置处理器之外的其他处理器的优先级;
在所述基于多个目标第一处理器的优先级,依次向所述控制电路发送多个目标第一交互信号之前,基于所述多个处理器的优先级确定所述多个目标第一处理器的优先级。
14.根据权利要求13所述的多核异构系统,其特征在于,所述AHB矩阵,还用于:
在所述基于多个目标第一处理器的优先级,依次向所述控制电路发送多个目标第一交互信号之后,更新所述多个处理器的优先级。
15.根据权利要求10至14任一所述的多核异构系统,其特征在于,所述控制器包括:控制电路和AHB矩阵;所述AHB矩阵,还用于:
在所述接收所述多个处理器中多个第一处理器发送的多个第一交互信号之前,接收所述多个处理器中第一配置处理器发送的第一配置信息,并向所述控制电路发送所述第一配置信息;
所述控制电路,还用于向所述可编程逻辑器件发送所述第一配置信息;
所述可编程逻辑器件用于基于所述第一配置信息生成所述多个电路。
16.根据权利要求15所述的多核异构系统,其特征在于,所述AHB矩阵,还用于接收所述多个处理器中第二配置处理器发送的第二配置信息,并向所述控制电路发送所述第二配置信息;
所述控制电路还用于向所述可编程逻辑器件发送所述第二配置信息;
所述可编程逻辑器件还用于基于所述第二配置信息更新所述多个电路。
17.根据权利要求15所述的多核异构系统,其特征在于,所述控制电路包括:第一控制子电路、第二控制子电路、配置子电路和时钟子电路;
其中,所述第一控制子电路分别与所述AHB矩阵、所述第二控制子电路、配置子电路和时钟子电路连接,所述第二控制子电路和所述配置子电路还均分别与所述时钟子电路、所述可编程逻辑器件和所述AHB矩阵连接;
所述第一控制子电路用于若接收到所述AHB矩阵发送的目标第一交互信号,则通过所述时钟子电路控制所述配置子电路处于断开状态,并通过所述时钟子电路控制所述第二控制子电路处于开启状态;若接收到配置信息,则通过所述时钟子电路控制所述配置子电路处于所述开启状态,并通过所述时钟子电路控制所述第二控制子电路处于所述断开状态;
所述第二控制子电路用于接收所述AHB矩阵发送的目标第一交互信号,并向对应的目标电路发送所述目标第一交互信号;
所述配置子电路用于接收所述AHB矩阵发送的配置信息,并向所述可编程逻辑器件发送所述配置信息。
18.根据权利要求11至14任一所述的多核异构系统,其特征在于,所述多核异构系统还包括:DMA和存储器,所述AHB矩阵分别与所述DMA和所述存储器连接;
所述控制电路,还用于:
接收所述目标电路发送的第一响应数据,并将所述第一响应数据发送至所述AHB矩阵,所述第一响应数据是所述目标电路执行一个目标第一交互信号所生成的;
若所述第一响应数据的类型为第一预设类型,则通过所述AHB矩阵向对应的第一处理器发送所述第一响应数据;
若所述第一响应数据的类型为第二预设类型,则通过所述AHB矩阵向所述DMA发送所述第一响应数据;
所述DMA用于将所述第一响应数据存储至所述存储器。
19.根据权利要求18所述的多核异构系统,其特征在于,所述AHB矩阵,还用于接收所述多个处理器中第二处理器发送的第二交互信号,并向所述DMA发送所述第二交互信号,所述第二交互信号用于指示所述DMA从所述存储器中获取第二响应数据;
所述DMA用于响应于所述第二交互信号从所述存储器中获取所述第二响应数据,并将所述第二响应数据发送至所述AHB矩阵;
所述AHB矩阵还用于将所述第二响应数据发送至所述第二处理器。
20.一种芯片,其特征在于,所述芯片包括:权利要求10至19任一所述的多核异构系统。
21.一种计算机设备,其特征在于,所述计算机设备包括:至少一个权利要求20所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310102452.XA CN116185938A (zh) | 2023-01-28 | 2023-01-28 | 多核异构系统及其交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310102452.XA CN116185938A (zh) | 2023-01-28 | 2023-01-28 | 多核异构系统及其交互方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185938A true CN116185938A (zh) | 2023-05-30 |
Family
ID=86443907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310102452.XA Pending CN116185938A (zh) | 2023-01-28 | 2023-01-28 | 多核异构系统及其交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185938A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896776A (zh) * | 2024-03-11 | 2024-04-16 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
-
2023
- 2023-01-28 CN CN202310102452.XA patent/CN116185938A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117896776A (zh) * | 2024-03-11 | 2024-04-16 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
CN117896776B (zh) * | 2024-03-11 | 2024-05-28 | 深圳市兴恺科技有限公司 | 无线自组网的数据自动重传方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
US11880329B2 (en) | Arbitration based machine learning data processor | |
US20040073697A1 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
US20110307639A1 (en) | Virtual serial port management system and method | |
US20070074214A1 (en) | Event processing method in a computer system | |
US6601165B2 (en) | Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors | |
CN116541227B (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
CN116185938A (zh) | 多核异构系统及其交互方法 | |
CN109062834B (zh) | 基于dma的spi通讯方法、电子设备、存储介质、装置 | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
US8943238B2 (en) | Operations using direct memory access | |
WO2010096635A1 (en) | Methods and apparatus for resource sharing in a programmable interrupt controller | |
CN111143068B (zh) | 文件操作方法、装置及嵌入式控制器 | |
CN111209244A (zh) | 数据处理装置及相关产品 | |
US7428600B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
CN116032746B (zh) | 资源池的信息处理方法及装置、存储介质及电子装置 | |
EP0353249A1 (en) | Parallel networking architecture | |
GB2423165A (en) | Host controller interface for packet-based timeshared bus | |
US8806082B2 (en) | Direct memory access device for multi-core system and operating method of the same | |
CN106803816B (zh) | 一种可配置自适应负载平衡系统及方法 | |
CN117033276B (zh) | 总线通信方法、系统、电子设备及存储介质 | |
CN112241380B (zh) | 应用于pcie对异质设备的中断处理系统与方法 | |
CN117435534B (zh) | 基于外围总线的数据传输电路、方法及处理器 | |
EP2609505A1 (en) | Interrupt-based command processing | |
CN111061674B (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 |