发明内容
基于此,有必要针对上述技术问题,提供一种多核芯片、协处理器的软件运行方法。
第一方面,本申请提供了一种多核芯片,所述芯片包括虚拟寄存器组、连接所述虚拟寄存器组的第一内核和第二内核,其中:
所述虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;
所述第一内核用于将所述协处理器配置数据写入所述虚拟寄存器组,并轮询读取所述协处理器状态数据;
所述第二内核用于根据所述协处理器配置数据,执行相应的协处理器功能,并反馈所述协处理器状态数据。
在其中一个实施例中,所述芯片还包括连接所述虚拟寄存器组的共享存储器;所述共享存储器配置有所述虚拟寄存器组对应的存储地址空间。
在其中一个实施例中,所述虚拟寄存器组为基于所述芯片的外设IP核进行实现。
第二方面,本申请还提供了一种协处理器的软件运行方法,应用于上述芯片中的所述第二内核,所述方法包括:
响应于来自所述第一内核的协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
响应于来自所述第一内核的功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
在其中一个实施例中,所述方法还包括:在确定所述相应的协处理器功能已执行完毕的情况下,向所述第一内核发送包含中断类型参数的向量中断请求;所述向量中断请求用于提供中断服务程序的入口地址;所述中断类型参数用于表征所述向量中断请求对应的中断事件类型;所述中断事件类型包括异常中断事件、全部执行完成中断事件、部分执行完成中断事件、以及主动上报信息中断事件。
在其中一个实施例中,所述方法还包括:部署协处理器的运行环境;基于所述协处理器的目标任务,获取所述协处理器的功能代码,并定义所述虚拟寄存器组的运行参数和访问操作方式;将所述第二内核中的各个固件进行打包,得到所述第二内核对应的固件包;所述固件包用于在所述第二内核中执行所述目标任务。
第三方面,本申请还提供了一种协处理器的软件运行装置,应用于上述芯片中的第二内核,所述装置包括:
协处理器初始化模块,用于响应于协处理器初始化指令,读取所述虚拟寄存器组中的所述协处理器配置数据;
协处理器运行配置模块,用于基于所述协处理器配置数据,确定目标工作模式和目标输入数据;
协处理器功能执行模块,用于响应于功能调用指令,根据所述目标工作模式和所述目标输入数据,执行相应的协处理器功能;
协处理器状态反馈模块,用于基于所述相应的协处理器功能的执行情况,反馈所述协处理器状态数据。
第四方面,本申请还提供了一种计算机设备,包括存储器,以及上述的芯片;所述存储器存储有计算机程序;
所述芯片执行所述计算机程序时实现上述方法的步骤。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
上述协处理器的软件运行方法,首先,响应于来自第一内核的协处理器初始化指令,读取虚拟寄存器组中的协处理器配置数据。然后,基于协处理器配置数据,确定目标工作模式和目标输入数据。接着,响应于来自第一内核的功能调用指令,根据目标工作模式和目标输入数据,执行相应的协处理器功能。最后,基于相应的协处理器功能的执行情况,反馈协处理器状态数据。本申请通过在多核芯片中的从核上运行协处理器程序,使得多核芯片中的从核能够具备现有技术需要采用硬件协处理器的方能实现的协处理器功能,不仅能够有效扩展协处理器可适配的应用场景,提升协处理器的应用灵活度,还能够有效降低协处理器的开发成本。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
在一个实施例中,提供了一种多核芯片,该芯片包括虚拟寄存器组、连接虚拟寄存器组的第一内核和第二内核,其中:
虚拟寄存器组用于存储协处理器配置数据和协处理器状态数据;
第一内核用于将上述协处理器配置数据写入虚拟寄存器组,并轮询读取上述协处理器状态数据;
第二内核用于根据上述协处理器配置数据,执行相应的协处理器功能,并反馈上述协处理器状态数据。
具体而言,上述芯片中的第一内核,是指上述芯片中的主核;上述芯片中的第二内核,是指上述芯片中的从核;上述芯片中的第一内核,可以在上述芯片中的第二内核执行相应的协处理器功能的过程中,随时按需轮询上述芯片中的第二内核向上述芯片中的虚拟寄存器组反馈的协处理器状态数据,以便上述芯片中的第一内核能够及时获知上述芯片中的第二内核的协处理器功能的执行情况。
需要说明的是,虚拟寄存器组还可以用于存储第二内核执行相应的协处理器功能之后,向其反馈的输出数据;基于核间通信机制,能够使得上述芯片中的第一内核和上述芯片中的第二内核均具备上述芯片中的虚拟寄存器组的访问权限,且可以针对上述芯片中的第一内核和上述芯片中的第二内核之间的共享数据(即协处理器配置数据、协处理器状态数据、以及输出数据)的访问过程,进行互斥保护;具体而言,上述芯片中的第一内核,可以从上述芯片中的虚拟寄存器组中,读取上述芯片中的第二内核反馈的协处理器状态数据和输出数据,并向上述芯片中的虚拟寄存器组中,写入协处理器配置数据,上述芯片中的第二内核,可以从上述芯片中的虚拟寄存器组中,读取上述芯片中的第一内核写入的协处理器配置数据,并向上述芯片中的虚拟寄存器组,反馈协处理器状态数据和输出数据。
上述多核芯片,通过在多核芯片中的从核上,实现现有技术需要采用硬件协处理器的方能实现的协处理器功能,不仅能够降低多核芯片中的主核在运行过程中的运算负荷,减少多核芯片中的主核在运行过程中的等待时间,还能够有效提高在多核芯片中执行协处理器功能的过程中的数据实时性。
在一个实施例中,上述芯片还包括连接上述虚拟寄存器组的共享存储器;前述共享存储器配置有上述虚拟寄存器组对应的存储地址空间。
具体而言,共享存储器,是指用于提供上述芯片的共享内存的共享存储器,该共享内存的具体表现形式,可以是静态随机存取存储器(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)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。