CN116541336A - 多核芯片、协处理器的软件运行方法 - Google Patents

多核芯片、协处理器的软件运行方法 Download PDF

Info

Publication number
CN116541336A
CN116541336A CN202310810468.6A CN202310810468A CN116541336A CN 116541336 A CN116541336 A CN 116541336A CN 202310810468 A CN202310810468 A CN 202310810468A CN 116541336 A CN116541336 A CN 116541336A
Authority
CN
China
Prior art keywords
coprocessor
chip
kernel
core
virtual register
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
Application number
CN202310810468.6A
Other languages
English (en)
Other versions
CN116541336B (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.)
Southern Power Grid Digital Grid Research Institute Co Ltd
Original Assignee
Southern Power Grid Digital Grid Research Institute Co 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 Southern Power Grid Digital Grid Research Institute Co Ltd filed Critical Southern Power Grid Digital Grid Research Institute Co Ltd
Priority to CN202310810468.6A priority Critical patent/CN116541336B/zh
Publication of CN116541336A publication Critical patent/CN116541336A/zh
Application granted granted Critical
Publication of CN116541336B publication Critical patent/CN116541336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

本申请涉及芯片技术领域,提供了一种多核芯片、协处理器的软件运行方法,其中,所述芯片包括虚拟寄存器组、连接所述虚拟寄存器组的第一内核和第二内核,其中:所述虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;所述第一内核用于将所述协处理器配置数据写入所述虚拟寄存器组,并轮询读取所述协处理器状态数据;所述第二内核用于根据所述协处理器配置数据,执行相应的协处理器功能,并反馈所述协处理器状态数据。

Description

多核芯片、协处理器的软件运行方法
技术领域
本申请涉及芯片技术领域,特别是涉及一种多核芯片、协处理器的软件运行方法。
背景技术
目前,现有技术主要通过在芯片中配置硬件协处理器的方式,来提高某些通用的标准化任务的执行效率,进而保障芯片的运行性能。
然而,硬件协处理器往往是为执行特定任务而专门设计的,且多数硬件协处理器在设计时,并未考虑其与不同版本的操作系统之间的兼容性,故基于现有技术实现的硬件协处理器,尚难以适配于不同的应用场景,灵活度较低。
发明内容
基于此,有必要针对上述技术问题,提供一种多核芯片、协处理器的软件运行方法。
第一方面,本申请提供了一种多核芯片,所述芯片包括虚拟寄存器组、连接所述虚拟寄存器组的第一内核和第二内核,其中:
所述虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;
所述第一内核用于将所述协处理器配置数据写入所述虚拟寄存器组,并轮询读取所述协处理器状态数据;
所述第二内核用于根据所述协处理器配置数据,执行相应的协处理器功能,并反馈所述协处理器状态数据。
在其中一个实施例中,所述芯片还包括连接所述虚拟寄存器组的共享存储器;所述共享存储器配置有所述虚拟寄存器组对应的存储地址空间。
在其中一个实施例中,所述虚拟寄存器组为基于所述芯片的外设IP核进行实现。
第二方面,本申请还提供了一种协处理器的软件运行方法,应用于上述芯片中的所述第二内核,所述方法包括:
响应于来自所述第一内核的协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
响应于来自所述第一内核的功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
在其中一个实施例中,所述方法还包括:在确定所述相应的协处理器功能已执行完毕的情况下,向所述第一内核发送包含中断类型参数的向量中断请求;所述向量中断请求用于提供中断服务程序的入口地址;所述中断类型参数用于表征所述向量中断请求对应的中断事件类型;所述中断事件类型包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件。
在其中一个实施例中,所述方法还包括:部署协处理器的运行环境;基于所述协处理器的目标任务,获取所述协处理器的功能代码,并定义所述虚拟寄存器组的运行参数和访问操作方式;将所述第二内核中的各个固件进行打包,得到所述第二内核对应的固件包;所述固件包用于在所述第二内核中执行所述目标任务。
第三方面,本申请还提供了一种协处理器的软件运行装置,应用于上述芯片中的第二内核,所述装置包括:
协处理器初始化模块,用于响应于协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
协处理器运行配置模块,用于基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
协处理器功能执行模块,用于响应于功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
协处理器状态反馈模块,用于基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
第四方面,本申请还提供了一种计算机设备,包括存储器,以及上述的芯片;所述存储器存储有计算机程序;
所述芯片执行所述计算机程序时实现上述方法的步骤。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
上述协处理器的软件运行方法,首先,响应于来自第一内核的协处理器初始化指令,读取虚拟寄存器组中的协处理器配置数据。然后,基于协处理器配置数据,确定目标工作模式和目标输入数据。接着,响应于来自第一内核的功能调用指令,根据目标工作模式和目标输入数据,执行相应的协处理器功能。最后,基于相应的协处理器功能的执行情况,反馈协处理器状态数据。本申请通过在多核芯片中的从核上运行协处理器程序,使得多核芯片中的从核能够具备现有技术需要采用硬件协处理器的方能实现的协处理器功能,不仅能够有效扩展协处理器可适配的应用场景,提升协处理器的应用灵活度,还能够有效降低协处理器的开发成本。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中提供的一种协处理器的软件运行方法的流程示意图;
图2为一个实施例中提供的一种获取协处理器固件包的具体方式的流程示意图;
图3为一个实施例中提供的一种多核芯片中的第一内核和第二内核在实际应用中的数据交互流程示意图;
图4为一个实施例中提供的一种协处理器的软件运行装置的结构框图;
图5为一个实施例中提供的一种计算机设备的内部结构图;
图6为另一个实施例中提供的一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
在一个实施例中,提供了一种多核芯片,该芯片包括虚拟寄存器组、连接虚拟寄存器组的第一内核和第二内核,其中:
虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;
第一内核用于将上述协处理器配置数据写入虚拟寄存器组,并轮询读取上述协处理器状态数据;
第二内核用于根据上述协处理器配置数据,执行相应的协处理器功能,并反馈上述协处理器状态数据。
具体而言,上述芯片中的第一内核,是指上述芯片中的主核;上述芯片中的第二内核,是指上述芯片中的从核;上述芯片中的第一内核,可以在上述芯片中的第二内核执行相应的协处理器功能的过程中,随时按需轮询上述芯片中的第二内核向上述芯片中的虚拟寄存器组反馈的协处理器状态数据,以便上述芯片中的第一内核能够及时获知上述芯片中的第二内核的协处理器功能的执行情况。
需要说明的是,虚拟寄存器组还可以用于存储第二内核执行相应的协处理器功能之后,向其反馈的输出数据;基于核间通信机制,能够使得上述芯片中的第一内核和上述芯片中的第二内核均具备上述芯片中的虚拟寄存器组的访问权限,且可以针对上述芯片中的第一内核和上述芯片中的第二内核之间的共享数据(即协处理器配置数据、协处理器状态数据、以及输出数据)的访问过程,进行互斥保护;具体而言,上述芯片中的第一内核,可以从上述芯片中的虚拟寄存器组中,读取上述芯片中的第二内核反馈的协处理器状态数据和输出数据,并向上述芯片中的虚拟寄存器组中,写入协处理器配置数据,上述芯片中的第二内核,可以从上述芯片中的虚拟寄存器组中,读取上述芯片中的第一内核写入的协处理器配置数据,并向上述芯片中的虚拟寄存器组,反馈协处理器状态数据和输出数据。
上述多核芯片,通过在多核芯片中的从核上,实现现有技术需要采用硬件协处理器的方能实现的协处理器功能,不仅能够降低多核芯片中的主核在运行过程中的运算负荷,减少多核芯片中的主核在运行过程中的等待时间,还能够有效提高在多核芯片中执行协处理器功能的过程中的数据实时性。
在一个实施例中,上述芯片还包括连接上述虚拟寄存器组的共享存储器;前述共享存储器配置有上述虚拟寄存器组对应的存储地址空间。
具体而言,共享存储器,是指用于提供上述芯片的共享内存的共享存储器,该共享内存的具体表现形式,可以是静态随机存取存储器(Static Random-Access Memory,SRAM)或者双倍速率(Double Data Rate,DDR)同步动态随机存储器(SynchronousDynamicRandom Access Memory,SDRAM);上述虚拟寄存器组对应的存储地址空间,是指在用于提供上述芯片的共享内存的共享存储器中,配置的上述虚拟寄存器组对应的存储地址空间(也称为“地址空间”)。
在一个实施例中,上述虚拟寄存器组为基于上述芯片的外设IP核进行实现。
具体而言,基于上述芯片的外设IP核,实现上述虚拟寄存器组的具体方式,可以是基于芯片外设IP核的形式,针对上述虚拟寄存器组进行定义;上述虚拟寄存器组的定义信息,可以包括虚拟寄存器组的版本、虚拟寄存器组的名称、虚拟寄存器组的地址、虚拟寄存器组的功能、虚拟寄存器组的工作模式、虚拟寄存器组的运行状态、虚拟寄存器组中的字段等类型的定义信息。
在一个实施例中,如图1所示,提供了一种协处理器的软件运行方法,应用于上述芯片中的第二内核,包括以下步骤:
步骤S110,响应于来自第一内核的协处理器初始化指令,读取虚拟寄存器组中的协处理器配置数据。
本步骤中,第一内核,即上述芯片中的第一内核;协处理器初始化指令,即来自第一内核的协处理器初始化指令,是指用于指示上述芯片中的第二内核,开始运行操作系统,并准备开始运行协处理器程序、执行协处理器功能的协处理器初始化指令;虚拟寄存器组中的协处理器配置数据,是指通过上述芯片中的第一内核,向上述芯片中的虚拟寄存器组中写入的协处理器配置数据。
步骤S120,基于协处理器配置数据,确定目标工作模式和目标输入数据。
本步骤中,协处理器配置数据,即虚拟寄存器组中的协处理器配置数据,是指通过上述芯片中的第一内核,向上述芯片中的虚拟寄存器组中写入的协处理器配置数据;目标工作模式,是指上述芯片中的第二内核,在执行协处理器功能时所处的工作模式;目标输入数据,是指上述芯片中的第二内核,在执行协处理器功能时所需的输入数据;基于协处理器配置数据,确定目标工作模式和目标输入数据的具体方式,可以是基于协处理器配置数据,分别确定上述芯片中的第二内核在执行协处理器功能时所处的工作模式、以及上述芯片中的第二内核在执行协处理器功能时所需的输入数据。
在实际应用中,确定目标工作模式的具体方式,可以是通过上述芯片中的第一内核,向上述芯片中的虚拟寄存器组中写入的表征上述芯片中的第二内核的目标工作模式的协处理器配置数据,使得上述芯片中的第二内核可以通过读取该协处理器配置数据,确定其在执行协处理器功能时所处的工作模式;确定目标输入数据的具体方式,可以是通过上述芯片中的第一内核,向上述芯片中的虚拟寄存器组中写入的表征上述芯片中的第二内核的目标输入数据的协处理器配置数据,使得上述芯片中的第二内核可以通过读取该协处理器配置数据,确定其在执行协处理器功能时所需的输入数据;在确定目标工作模式之后,上述芯片中的第二内核可以进行初始化,并进入该目标工作模式;在获取得到目标输入数据之后,上述芯片中的第二内核,可以针对上述芯片中的虚拟寄存器组进行轮询,以便随时准备接收来自上述芯片中的第一内核的、用于指示上述芯片中的第二内核执行相应的协处理器功能的功能调用指令。
步骤S130,响应于来自第一内核的功能调用指令,根据目标工作模式和目标输入数据,执行相应的协处理器功能。
本步骤中,第一内核,即上述芯片中的第一内核;功能调用指令,即来自第一内核的功能调用指令,是指用于指示上述芯片中的第二内核,执行相应的协处理器功能的功能调用指令;目标工作模式,是指上述芯片中的第二内核,在执行协处理器功能时所处的工作模式;目标输入数据,是指上述芯片中的第二内核,在执行协处理器功能时所需的输入数据;相应的协处理器功能,是指上述芯片中的第二内核,通过响应来自第一内核的功能调用指令,所需执行的相应协处理器功能。
在实际应用中,第一内核发出功能调用指令的具体方式,可以是上述芯片中的第一内核,通过写入上述芯片中的虚拟寄存器组的方式,向上述芯片中的第二内核发出用于调用上述芯片中的第二内核对应的某些功能模块的功能调用指令;根据目标工作模式和目标输入数据,执行相应的协处理器功能的具体方式,可以是上述芯片中的第二内核,在目标工作模式下,根据目标输入数据,执行相应的协处理器功能;执行相应的协处理器功能的具体方式,可以是通过调用上述芯片中的第二内核对应的某些功能模块,以使得上述芯片中的第二内核可以执行相应的协处理器功能;根据目标工作模式和目标输入数据,执行相应的协处理器功能的具体次数,既可以是单次,也可以是多次。
步骤S140,基于相应的协处理器功能的执行情况,反馈协处理器状态数据。
本步骤中,相应的协处理器功能,是指上述芯片中的第二内核,通过响应来自第一内核的功能调用指令,所需执行的相应协处理器功能;协处理器状态数据,是指由上述芯片中的第二内核反馈的、用于表征其每次执行相应的协处理器功能的执行情况的协处理器状态数据。
在实际应用中,上述芯片中的第一内核,可以在上述芯片中的第二内核执行相应的协处理器功能的过程中,随时按需轮询上述芯片中的第二内核向上述芯片中的虚拟寄存器组反馈的协处理器状态数据,以便上述芯片中的第一内核能够及时获知上述芯片中的第二内核的协处理器功能的执行情况。
上述协处理器的软件运行方法,首先,响应于来自第一内核的协处理器初始化指令,读取虚拟寄存器组中的协处理器配置数据。然后,基于协处理器配置数据,确定目标工作模式和目标输入数据。接着,响应于来自第一内核的功能调用指令,根据目标工作模式和目标输入数据,执行相应的协处理器功能。最后,基于相应的协处理器功能的执行情况,反馈协处理器状态数据。本申请通过在多核芯片中的从核上运行协处理器程序,使得多核芯片中的从核能够具备现有技术需要采用硬件协处理器的方能实现的协处理器功能,不仅能够有效扩展协处理器可适配的应用场景,提升协处理器的应用灵活度,还能够有效降低协处理器的开发成本。
对于在多核芯片中进行核间通信中断的具体方式,在一个实施例中,上述方法还包括:
在确定相应的协处理器功能已执行完毕的情况下,向第一内核发送包含中断类型参数的向量中断请求;前述向量中断请求用于提供中断服务程序的入口地址;前述中断类型参数用于表征向量中断请求对应的中断事件类型;前述中断事件类型包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件。
其中,相应的协处理器功能,是指上述芯片中的第二内核,通过响应来自第一内核的功能调用指令,所需执行的相应协处理器功能;第一内核,即上述芯片中的第一内核;向量中断请求,即包含中断类型参数的向量中断请求,是指上述芯片中的第二内核,基于核间通信机制,向上述芯片中的第一内核发送的向量中断(也称为“硬件中断”)请求;中断服务程序,是指上述芯片中的第二内核在执行完毕相应的协处理器功能之后,确定得到的中断服务程序;中断事件类型,用于表征上述芯片中的第二内核在执行完毕相应的协处理器功能之后,反馈的中断服务程序对应的中断事件类型,可以包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件等中断事件类型。
在实际应用中,中断类型参数,可以通过定义上述芯片中的虚拟寄存器组中的特定字段,来进行具体实现。例如,在核间通信机制,仅能提供一种向量中断事件的情况下,可以通过在上述芯片中的虚拟寄存器组中定义特定字段(例如,SINT字段)的方式,将一种向量中断事件分解为若干虚拟软中断事件(即基于核间通信的中断,定义上述芯片中的第二内核向上述芯片中的第一内核发送的各种类型的子中断),使得上述芯片中的第二内核,可以先配置前述特定字段的具体数值(即上述中断类型参数),然后向上述芯片中的第一内核发送向量中断请求,以便上述芯片中的第一内核,可以通过读取前述特定字段的具体数值,确定向量中断请求对应的具体中断事件类型,并向对应的中断服务程序启动相应的中断处理流程。
上述实施例通过在确定相应的协处理器功能已执行完毕的情况下,通过从核向主核发送包含中断类型参数的向量中断请求的方式,保证了在多核芯片的从核上执行协处理器功能的运行效率,进而确保了在多核芯片中执行协处理器功能的过程中的数据实时性。
对于获取协处理器固件包的具体方式,在一个实施例中,如图2所示,上述方法还包括:
步骤S210,部署协处理器的运行环境。
本步骤中,运行环境,即协处理器的运行环境,可以是裸跑环境(即不带有操作系统的运行环境)或者带有轻量级实时操作系统的运行环境;部署协处理器的运行环境的具体方式,可以是在上述多核芯片中的第二内核中,部署前述裸跑环境或者前述带有轻量级实时操作系统的运行环境,以使得上述多核芯片中的第二内核中具备运行协处理器程序、执行协处理器功能的运行环境。
步骤S220,基于协处理器的目标任务,获取协处理器的功能代码,并定义虚拟寄存器组的运行参数和访问操作方式。
本步骤中,目标任务,即协处理器的目标任务,该目标任务的具体表现形式,可以是需要通过协处理器执行的目标任务;功能代码,即协处理器的功能代码,该功能代码的具体表现形式,可以是使用汇编语言、C语言或C++语言等程序语言开发的、可用于实现特定的协处理器功能的代码;虚拟寄存器组,即上述芯片中的虚拟寄存器组;运行参数,即虚拟寄存器组的运行参数,可以包括虚拟寄存器组的名称、虚拟寄存器组的版本、虚拟寄存器组的地址、虚拟寄存器组的功能、虚拟寄存器组中的字段等类型的运行参数;定义虚拟寄存器组的运行参数和访问操作方式的具体方式,可以是首先定义虚拟寄存器组的运行参数,然后再定义虚拟寄存器组的访问操作方式;访问操作方式,即虚拟寄存器组的访问操作方式,是指在通过上述芯片中的第二内核,实现协处理器功能(包括初始化阶段和运行阶段)时,上述芯片中的第二内核对上述芯片中的虚拟寄存器组进行访问的具体操作方式。
在实际应用中,定义虚拟寄存器组的运行参数的具体方式,可以是通过上述芯片中的第二内核,在上述芯片中的共享存储器(即提供上述芯片的共享内存的共享存储器)中,定义在上述芯片中的虚拟寄存器组对应的虚拟寄存器组的名称、虚拟寄存器组的版本、虚拟寄存器组的地址、虚拟寄存器组的功能、虚拟寄存器组中的字段等运行参数。
步骤S230,将第二内核中的各个固件进行打包,得到第二内核对应的固件包;前述固件包用于在第二内核中执行目标任务。
本步骤中,第二内核,即上述芯片中的第二内核;第二内核中的各个固件,即上述芯片中的第二内核中的各个固件;将第二内核中的各个固件进行打包的具体方式,可以是将第二内核中的各个固件,打包为后缀名为“.bin”的二进制(binary)文件,基于此,第二内核对应的固件包的具体表现形式,可以是第二内核对应的二进制文件格式的固件包;目标任务,即协处理器的目标任务。
在实际应用中,可以将上述第二内核对应的二进制文件格式的固件包,命名为“co.bin”。
上述实施例通过基于预先配置的固件包,在多核芯片的从核上实现现有技术需要采用硬件协处理器的方能实现的协处理器功能的方式,使得多核芯片中的从核能够通过修改并编译所需加载的固件包,或直接替换所需加载的固件包,变更其所能执行的协处理器功能,不仅能够有效扩展协处理器可适配的应用场景,提升协处理器的应用灵活度,还能够有效降低协处理器的开发成本。
一个实施例中,上述芯片中的第一内核和上述芯片中的第二内核在实际应用中的数据交互流程,可以是如图3所示的形式。从具体实现方式上看,图3中所示的数据交互流程,实质上是在开发阶段和运行阶段,发生于上述芯片中的第一内核中的主应用程序与上述芯片中的第二内核中的协处理器程序之间的数据交互流程。
基于上述实施例中的数据交互流程,能够在多核芯片中的从核上,实现现有技术需要采用硬件协处理器的方能实现的协处理器功能,进而在有效降低多核芯片中的主核在运行过程中的运算负荷,并减少多核芯片中的主核在运行过程中的等待时间的基础上,有效提升在多核芯片中执行协处理器功能的过程中的数据实时性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的协处理器的软件运行方法的协处理器的软件运行装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个协处理器的软件运行装置实施例中的具体限定可以参见上文中对于协处理器的软件运行方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种协处理器的软件运行装置,应用于上述芯片中的第二内核,该装置包括:
协处理器初始化模块410,用于响应于协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
协处理器运行配置模块420,用于基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
协处理器功能执行模块430,用于响应于功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
协处理器状态反馈模块440,用于基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
在其中一个实施例中,向量中断请求发出模块,用于在确定所述相应的协处理器功能已执行完毕的情况下,向所述第一内核发送包含中断类型参数的向量中断请求;所述向量中断请求用于提供中断服务程序的入口地址;所述中断类型参数用于表征所述向量中断请求对应的中断事件类型;所述中断事件类型包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件。
在其中一个实施例中,协处理器固件包获取模块,用于部署协处理器的运行环境;基于所述协处理器的目标任务,获取所述协处理器的功能代码,并定义所述虚拟寄存器组的运行参数和访问操作方式;将所述第二内核中的各个固件进行打包,得到所述第二内核对应的固件包;所述固件包用于在所述第二内核中执行所述目标任务。
上述协处理器的软件运行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储协处理器的软件运行相关数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种协处理器的软件运行方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种协处理器的软件运行方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5和图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括处理器和上述芯片;存储器中存储有计算机程序;该芯片执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (9)

1.一种多核芯片,其特征在于,所述芯片包括虚拟寄存器组、连接所述虚拟寄存器组的第一内核和第二内核,其中:
所述虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;
所述第一内核用于将所述协处理器配置数据写入所述虚拟寄存器组,并轮询读取所述协处理器状态数据;
所述第二内核用于根据所述协处理器配置数据,执行相应的协处理器功能,并反馈所述协处理器状态数据。
2.根据权利要求1所述的芯片,其特征在于,所述芯片还包括连接所述虚拟寄存器组的共享存储器;所述共享存储器配置有所述虚拟寄存器组对应的存储地址空间。
3.根据权利要求1所述的芯片,其特征在于,所述虚拟寄存器组为基于所述芯片的外设IP核进行实现。
4.一种协处理器的软件运行方法,其特征在于,应用于权利要求1至3中任一项所述的芯片中的所述第二内核,所述方法包括:
响应于来自所述第一内核的协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
响应于来自所述第一内核的功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在确定所述相应的协处理器功能已执行完毕的情况下,向所述第一内核发送包含中断类型参数的向量中断请求;所述向量中断请求用于提供中断服务程序的入口地址;所述中断类型参数用于表征所述向量中断请求对应的中断事件类型;所述中断事件类型包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
部署协处理器的运行环境;
基于所述协处理器的目标任务,获取所述协处理器的功能代码,并定义所述虚拟寄存器组的运行参数和访问操作方式;
将所述第二内核中的各个固件进行打包,得到所述第二内核对应的固件包;所述固件包用于在所述第二内核中执行所述目标任务。
7.一种协处理器的软件运行装置,其特征在于,应用于权利要求1至3中任一项所述的芯片中的所述第二内核,所述装置包括:
协处理器初始化模块,用于响应于协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
协处理器运行配置模块,用于基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
协处理器功能执行模块,用于响应于功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
协处理器状态反馈模块,用于基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
8.一种计算机设备,包括存储器,以及如权利要求1至3中任一项所述的芯片;所述存储器存储有计算机程序;
所述芯片执行所述计算机程序时实现权利要求4至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求4至6中任一项所述的方法的步骤。
CN202310810468.6A 2023-07-04 2023-07-04 多核芯片、协处理器的软件运行方法 Active CN116541336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310810468.6A CN116541336B (zh) 2023-07-04 2023-07-04 多核芯片、协处理器的软件运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310810468.6A CN116541336B (zh) 2023-07-04 2023-07-04 多核芯片、协处理器的软件运行方法

Publications (2)

Publication Number Publication Date
CN116541336A true CN116541336A (zh) 2023-08-04
CN116541336B CN116541336B (zh) 2024-06-11

Family

ID=87452791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310810468.6A Active CN116541336B (zh) 2023-07-04 2023-07-04 多核芯片、协处理器的软件运行方法

Country Status (1)

Country Link
CN (1) CN116541336B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331720A (zh) * 2023-11-08 2024-01-02 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101097559A (zh) * 2006-06-28 2008-01-02 中国科学院微电子研究所 一种实现主处理器与协处理器接口与互连的系统及方法
CN103246496A (zh) * 2012-02-10 2013-08-14 上海算芯微电子有限公司 非阻塞协处理器接口方法和系统
CN103729329A (zh) * 2012-10-12 2014-04-16 深圳市中兴微电子技术有限公司 核间通信装置及方法
CN103793208A (zh) * 2014-01-22 2014-05-14 芯原微电子(上海)有限公司 矢量dsp 处理器和协处理器协同运作的数据处理系统
US20200201692A1 (en) * 2018-12-21 2020-06-25 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device
CN113193950A (zh) * 2021-07-01 2021-07-30 广东省新一代通信与网络创新研究院 数据加密方法、数据解密方法及存储介质
US20220365802A1 (en) * 2021-05-17 2022-11-17 Intel Corporation Virtualization of interprocessor interrupts

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101097559A (zh) * 2006-06-28 2008-01-02 中国科学院微电子研究所 一种实现主处理器与协处理器接口与互连的系统及方法
CN103246496A (zh) * 2012-02-10 2013-08-14 上海算芯微电子有限公司 非阻塞协处理器接口方法和系统
CN103729329A (zh) * 2012-10-12 2014-04-16 深圳市中兴微电子技术有限公司 核间通信装置及方法
CN103793208A (zh) * 2014-01-22 2014-05-14 芯原微电子(上海)有限公司 矢量dsp 处理器和协处理器协同运作的数据处理系统
US20200201692A1 (en) * 2018-12-21 2020-06-25 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device
US20220365802A1 (en) * 2021-05-17 2022-11-17 Intel Corporation Virtualization of interprocessor interrupts
CN113193950A (zh) * 2021-07-01 2021-07-30 广东省新一代通信与网络创新研究院 数据加密方法、数据解密方法及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117331720A (zh) * 2023-11-08 2024-01-02 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备
CN117331720B (zh) * 2023-11-08 2024-02-23 瀚博半导体(上海)有限公司 用于多核间通信的方法、寄存器组、芯片及计算机设备

Also Published As

Publication number Publication date
CN116541336B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN108108239A (zh) 一种业务功能的提供方法、装置及计算机可读存储介质
CN116541336B (zh) 多核芯片、协处理器的软件运行方法
CN111078323A (zh) 基于协程的数据处理方法、装置、计算机设备及存储介质
CN113934445B (zh) 设备固件升级系统、方法、装置、计算机设备和存储介质
US9513923B2 (en) System and method for context migration across CPU threads
CN112181378B (zh) 业务流程的实现方法及装置
CN114564241B (zh) 硬件设备的访问方法、装置、计算机设备和存储介质
CN112764729B (zh) 应用软件开发方法、装置、计算机设备及可读存储介质
CN115098359A (zh) 项目研发测试方法、装置、设备、存储介质和程序产品
CN114416402A (zh) 信息传输方法、终端设备及存储介质
CN114490041A (zh) 数组计算方法、装置、设备、介质和计算机程序产品
EP4426037A1 (en) Computing task scheduling apparatus, computing apparatus, computing task scheduling method and computing method
CN116032928B (zh) 数据协同计算方法、装置、系统、电子装置和存储介质
CN118012519A (zh) 数字信号处理方法、装置、用于处理数字信号的处理器
CN116303135B (zh) 任务数据的装载方法、装置和计算机设备
WO2012119380A1 (zh) 一种复位向量的代码实现方法、系统及设备
CN115454651A (zh) 运算任务处理方法、装置、存储介质及计算机设备
CN117311930A (zh) 任务调度方法、装置、设备、存储介质和程序产品
CN118840247A (zh) 算法处理方法、装置、电子设备和计算机可读存储介质
CN118708542A (zh) 文件系统的加速方法、装置、设备、存储介质及程序产品
CN116302378A (zh) 交易并行过程中数据冲突问题的解决方法及装置
CN118555180A (zh) 服务接入方法、装置、电子设备和计算机可读存储介质
CN117829955A (zh) 方案确定方法、装置、计算机设备、存储介质和产品
CN115373666A (zh) 程序文件生成方法、装置、计算机设备和存储介质
CN114020724A (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
CP03 Change of name, title or address

Address after: Room 86, room 406, No.1, Yichuang street, Zhongxin Guangzhou Knowledge City, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Southern Power Grid Digital Grid Research Institute Co.,Ltd.

Country or region after: China

Address before: Room 86, room 406, No.1, Yichuang street, Zhongxin Guangzhou Knowledge City, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: Southern Power Grid Digital Grid Research Institute Co.,Ltd.

Country or region before: China