CN114201416A - 一种控制核mcu和计算核mpu的通信调度方法 - Google Patents

一种控制核mcu和计算核mpu的通信调度方法 Download PDF

Info

Publication number
CN114201416A
CN114201416A CN202111422991.9A CN202111422991A CN114201416A CN 114201416 A CN114201416 A CN 114201416A CN 202111422991 A CN202111422991 A CN 202111422991A CN 114201416 A CN114201416 A CN 114201416A
Authority
CN
China
Prior art keywords
application
service
agent
core
proxy
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
Application number
CN202111422991.9A
Other languages
English (en)
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.)
Zhixin Technology Co Ltd
Original Assignee
Zhixin Technology 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 Zhixin Technology Co Ltd filed Critical Zhixin Technology Co Ltd
Priority to CN202111422991.9A priority Critical patent/CN114201416A/zh
Publication of CN114201416A publication Critical patent/CN114201416A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种控制核MCU和计算核MPU的通信调度方法,利用SOC芯片的片内高速总线和片上高速缓存提升控制核MCU和计算核MPU的通信效果,并通过所述MCU核上接入CP代理,所述MPU核上接入AP代理,以控制所述MCU核上的CP应用和所述MPU核上的AP应用之间的通信;设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理的并发访问优先级;其中,所述CP代理和所述AP代理在调度中用于监听、缓存和转发所述CP应用与所述AP应用产生的服务请求和服务结果。实现提高智能网联汽车CP应用和AP应用之间通信带宽和通信可靠性,同时降低现有车身网络中的通信负载,降低通信时延。

Description

一种控制核MCU和计算核MPU的通信调度方法
技术领域
本申请涉及多核芯片控制技术领域,尤其涉及一种控制核MCU和计算核MPU的通信调度方法。
背景技术
智能网联汽车的SoC芯片中同时集成控制核MCU(Mirco Controller Unit)和计算核MPU(Micro Processor Unit),MCU和MPU各种都可以是单核或多核。其中在MCU上运行实时系统,处理CP(Classic AUTOSAR)应用功能业务;MPU上运行POSIX(Portable OperatingSystem Interface of UNIX)系统,主要处理大计算量、大数据量的AP(Adaptive AUTOSAR)应用功能业务。
目前智能网联汽车CP应用和AP应用通常是分别在独立的处理器上实现的,MPU和MCU之间通过CAN总线互联通信,或者通过增加一套CAN转以太网设备进行互联通信。采用的通信控制方法主要是基于CAN协议实现,或基于以太网协议实现,如远程过程调用等。但随着智能网联汽车智能化要求的提高,CP应用和AP应用之间通信量、时延要求越来越高。现有的基于CAN网络的通信已无法满足通信带宽的要求,而基于以太网的通信无法有效保障实时性。
发明内容
本申请的主要目的在于提供一种控制核和计算核调度方法,旨在解决现有技术中MPU和MCU之间基于CAN或以太网进行通信无法同时保障通信实时性和通信带宽的技术问题。
第一方面,本申请提供一种控制核MCU和计算核MPU的通信调度方法,所述方法包括以下步骤:
控制核MCU和计算核MPU之间通过片内高速总线和片上高速缓存执行如下调度:
所述MCU核上接入CP代理,所述MPU核上接入AP代理,以控制所述MCU核上的CP应用和所述MPU核上的AP应用之间的通信;
设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理对片上高速缓存并发访问优先级;
其中,所述CP代理和所述AP代理用于监听、缓存和转发所述CP应用与所述AP应用产生的服务请求和服务结果。
一些实施例中,若所述AP应用和所述CP应用之间的通信为所述CP应用请求与所述AP应用同步模式通信,所述包括以下步骤:
所述CP代理转发所述CP应用发出的所述CP服务请求到所述AP代理,所述AP代理监听到所述CP服务请求后查询所述CP服务请求的服务ID是否存在;
若查询到所述服务ID不存在,所述AP代理向所述CP代理返回服务失败结果,所述CP代理转发所述服务失败结果到所述CP应用;
若查询到所述服务ID存在,所述AP代理将所述CP服务请求转发给对应的AP应用,所述AP应用输出AP服务结果,所述AP代理和所述CP代理将所述AP服务结果转发给所述CP应用。
一些实施例中,所述AP应用输出AP服务结果,所述AP代理和所述CP代理将所述AP服务结果转发给所述CP,包括:
若所述AP应用确定在一个时间片内输出所述AP服务结果,所述AP应用开启同步模式服务,所述同步模式服务包括以下步骤:
所述AP代理向所述CP代理反馈服务处理中,所述CP代理等待所述AP服务结果;
所述AP应用输出所述AP服务结果到所述AP代理,所述AP代理判断所述AP服务结果的数据量是否超过第一预设阈值;
若所述AP服务结果的数据量超过所述第一预设阈值,所述AP代理将所述AP服务结果写入所述片上高速缓存,并通知所述CP代理准备接收所述AP服务结果,在所述CP代理准备好后开启生产者消费者模式将所述AP服务结果返回给所述CP代理;
若所述AP服务结果的数据量未超过所述第一预设阈值,所述AP代理直接返回所述AP服务结果到所述CP代理;
所述CP代理接收到所述AP服务结果后转发所述AP服务结果到所述CP应用。
一些实施例中,所述AP应用输出AP服务结果,由所述AP代理和所述CP代理将所述AP服务结果转发给所述CP,包括:
若所述AP应用确定在多个时间片内输出所述AP服务结果,所述AP应用开启异步模式服务,所述开启异步模式服务包括以下步骤:
所述AP代理向所述CP代理返回服务就绪中,所述CP代理返回所述服务就绪中到CP应用,所述CP应用切换处理下一进程;
所述AP应用产生所述AP服务结果后,按照所述同步模式服务将所述AP服务结果返回到所述CP应用。
一些实施例中,若所述AP应用和所述CP应用之间的通信为所述CP应用请求与所述AP应用异步模式通信时,包括以下步骤:
所述CP应用将带有截止时间的所述CP服务请求发送到所述CP代理,所述CP代理将所述CP服务请求写入所述片上高速缓存;
若所述CP服务请求写入所述片上高速缓存前,CP服务请求缓存队列为空,所述AP代理周期性休眠结束后扫描所述CP服务请求缓存队列中未处理的所述CP服务请求,并转发到所述AP应用;
若所述CP服务请求写入所述片上高速缓存前,所述CP服务请求缓存队列存在其他CP服务请求,所述AP代理依次转发所述请求截止时间最近的CP服务请求到对应的所述AP应用,且所述AP代理在转发完所述CP服务请求缓存队列中所有CP服务请求后,进入所述周期性休眠;
所述AP应用接收到所述CP服务请求输出AP服务结果,由所述AP代理和所述CP代理根据所述截止时间将所述AP服务结果转发给所述CP应用。
一些实施例中,所述AP应用接收到所述CP服务请求输出AP服务结果,由所述AP代理和所述CP代理根据所述截止时间将所述AP服务结果转发给所述CP应用,包括以下步骤:
所述AP应用输出带有时间戳的所述AP服务结果到所述AP代理,并查看所述CP服务请求的截止时间;
若所述截止时间超过所述CP代理的一个轮询周期,所述AP代理将所述AP服务结果写入所述片上高速缓存,等待所述CP代理读取;
若所述截止时间不足所述CP代理的一个轮询周期,所述AP代理唤醒所述CP代理,并转发所述AP服务结果到所述CP代理;
所述CP代理接收到所述AP服务结果后,将所述AP服务结果转发给所述CP应用。
一些实施例中,若所述AP应用和所述CP应用之间的通信为所述AP应用请求与所述CP应用通信,包括以下步骤:
所述AP应用发出AP服务请求到所述AP代理,所述AP代理判断所述AP服务请求的数据量是否超过第二预设阈值;
若所述AP服务请求的数据量超过所述第二预设阈值,所述AP代理将所述AP服务请求写入所述片上高速缓存等待所述CP代理读取;若所述AP服务请求的数据量不超过第二预设阈值,所述AP代理转发所述AP服务请求到所述CP代理;
所述CP代理接收到所述AP服务请求后向所述AP代理返回确认信号,并将所述服务指令转发给所述CP应用;
所述CP应用根据自身状态向所述CP代理输出CP服务结果或拒绝响应结果;
所述CP代理和所述AP代理依次转发所述CP服务结果或所述拒绝响应结果到所述AP应用。
一些实施例中,所述在所述MCU核上接入CP代理,在所述MPU核上接入AP代理,包括:
每个所述MCU核的每个MCU子核上分别接入不同所述CP代理,并对所述CP代理设置互斥访问控制程序;
每个所述MPU核的所有MPU子核上共同接入同一个所述AP代理,设置所述AP代理具有除init0进程以外的最高优先级。
一些实施例中,所述设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理的并发访问优先级,包括:
当所述CP应用和所述AP应用同时在所述片上高速缓存进行读操作时,所述CP应用优先级与所述AP应用的优先级相同;
当所述CP应用进行读操作所述AP应用进行写操作时,所述CP应用优先级高于所述AP应用;
当所述CP应用进行写操作所述AP应用进行读操作时,若采用生产者消费者模式,所述CP应用优先级高于所述AP应用,若不采用生产者消费者模式,所述AP应用的优先级高于所述CP应用;
当所述CP应用和所述AP应用同时进行写操作,所述CP应用的优先级高于所述AP应用;
所述CP代理的并发访问优先级与所述CP应用的优先级相同;
所述AP代理的并发访问优先级采用FIFO模型,且所述AP代理在准备好数据后进行并发访问。
第二方面,本申请芯片,所述芯片包括MCU核、MPU核、片内高速总线和片上高速缓存,其可被设置实现如上述第一方面的控制核与计算核的调度方法。
本申请提供一种控制核MCU和计算核MPU的调度方法,通过SOC芯片的片内高速总线和片上高速缓存执行控制核MCU和计算核MPU进行通信,并通过所述MCU核上接入CP代理,所述MPU核上接入AP代理,以控制所述MCU核上的CP应用和所述MPU核上的AP应用之间的通信;设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理的并发访问优先级;其中,所述CP代理和所述AP代理在调度中用于监听、缓存和转发所述CP应用与所述AP应用产生的服务请求和服务结果。实现提高智能网联汽车CP应用和AP应用之间通信带宽和通信的可靠性,同时降低现有车身网络中的通信负载,降低通信时延。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为集成控制核MCU与计算核MPU的SOC芯片结构示意图;
图2为多核MCU和多核MPU内部通信结构示意
图3为本申请实施例提供的一种控制核MCU和计算核MPU的调度方法的流程示意图;
图4为MCU核与MPU核接入代理的示意图;
图5为CP应用请求与AP应用通信的调度流程;
图6为AP应用请求与CP应用通信的调度流程。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图1和图2所示,图1为集成控制核MCU与计算核MPU的SOC芯片,其中该芯片中包括MCU核与MPU核,MCU核与MPU核与片内高速总线连接,并将可在MCU核与MPU核通信时利用片上高速缓存进行数据缓存。如图2,每个MCU核上包括M个MCU子核,每个MCU子核与核内交差互联总线相连,并且每个MCU子核上运行着一个CP应用。每个MPU核上有N个MPU子核,MPU子核利用核内二级高速缓存进行访问,并且每个MCU子核上运行着一个CP应用。
在MCU核与MPU核的通信中,共分为一下几种工况:MCU核内部各个MCU子核之间的通信、MPU核内部各个MPU子核之间的通信、MCU核与MPU核之间的通信以及MCU核与MPU核并发访问片上高速总线。而因为MCU子核上通过CP应用进行通信,MPU子核上通过AP应用进行通信,所以以上的MCU核与MPU核的通信工况也可以认为是CP应用与AP应用之间通信工况,具体为:CP应用之间的通信,AP应用之间的通信,CP应用与AP应用之间的通信以及CP应用与AP应用并发访问片上高速缓存。
具体的,如图2所示,MCU核上的各个CP应用之间的通信调度具体包括:为各个MCU子核设置MCU子核与MCU子核互相访问的优先级,MCU子核上的CP应用于MCU子核优先级相同。CP应用之间在不发生冲突的情况下相互访问时,通过MCU核内的交叉总线进行通信。如果发生访问冲突交叉总线按照MCU核的优先级进行总线仲裁,让优先级高的MCU核上的CP应用优先通信。例如可以规定MCU_Core.1具有最高优先级,按照核序号递减到,则MCU_Core.M的优先级最低,序号大的MCU核上的CP应用必须让序号小的MCU核上的CP应用先通信。同一个CP应用同时需要进行读操作和写操作时,读操作的优先级要高于写操作,并且在低优先级的MCU核上的CP应用已经产生操作时,为了保障原子性,高优先级的MCU核上的CP应用要让低优先级的MCU核上的CP应用优先通信,以保证操作不中断。
进一步的,如图2所示,MPU核上的各个AP应用之间的通信时,MPU核上的AP应用要进行大量的数据处理,当数据量不超过分配给AP应用的缓存块时,通过片上的二级缓存交换数据。当数据量超过分配给AP应用的缓存块时通过内存进行数据交换。当出现互相访问冲突时,通过MPU核优先级的和数据锁进行管理,MPU核之间的优先级同样可以规定MPU_Core.1具有最高优先级,按照核序号递减到,MPU_Core.M的优先级最低。如果低优先级的MPU核已经开始写操作,高优先级MPU核需要等待低优先级MPU核完成操作后再进行操作,以保证操作不会中断。
当MCU核与MPU核的通信中,通信工况为:CP应用与AP应用之间的通信以及CP应用与AP应用并发访问片上高速缓存。
SoC芯片包括的片内高速总线,并且SoC芯片的片上具有片上高速缓存的特性,本申请中MCU核与MPU核的通信利用片内高速总线和片上高速缓存进行,相对于现有技术通过CAN总线和以太网互联通信,从物理层面提升了读写操作的速度和信息传输速度,降低了MCU核与MPU核的通信时延,下面具体介绍MCU核与MPU核之间的通信调度方法。
图3为本申请的实施例提供的一种控制核MCU和计算核MPU的调度方法的流程示意图。
如图3所示,该方法包括步骤S1至步骤S3。
步骤S1、MCU核上接入CP代理,MPU核上接入AP代理,以控制MCU核上的CP应用和MPU核上的AP应用之间的通信。
步骤S2、设置CP应用的与AP应用对片上高速缓存的并发访问优先级,并根据CP应用的与AP应用的并发访问优先级设置CP代理与AP代理的并发访问优先级。
值得说明的是,其中,CP代理和AP代理用于监听、缓存和转发CP应用与AP应用产生的服务请求和服务结果。
因为MCU核与MPU核之间的通信实质上是核上的CP应用于AP应用之间的通信,所以一下均用CP应用于AP应用进行描述。
作为一种优选地实施方式,如图4所示,MCU核上接入CP代理时,每个MCU子核上接入CP代理,并为CP代理程序底层设置互斥访问控制管理,防止多个CP代理同时对一段缓存数据进行写操作,但是多个CP代理可以同时进行读操作。并且MCU子核,MCU子核上的CP应用与CP代理具有相同的优先级。MPU核上接入AP代理时,所有MPU子核上接入同一个AP代理,并且AP代理具有MPU上除了init0进程,也就是关机进程外最高优先级。
一些实施例中,如图5所示,当CP应用与AP应用之间的通信中为CP应用请求与AP应用同步模式通信,这种通信模式出现在MCU上的CP应用急需MPU的提供相关数据,以满足进一步执行需要,具体通信步骤包括:CP应用会产生一个数据请求,即为CP服务请求(1服务请求),CP代理转发CP应用发出的CP服务请求到AP代理(1.1转发请求),AP代理监听到CP服务请求后查询CP服务请求的服务ID是否存在(1.2服务ID查询)。若查询到服务ID不存在,AP代理向CP代理返回服务失败结果(1.2.1返回服务失败),CP代理转发服务失败结果到CP应用(1.2.1.1返回服务失败);若查询到服务ID存在,AP代理将CP服务请求转发给对应的AP应用(1.2.2转发服务请求到目标AP应用),AP应用根据CP服务请求输出AP服务结果,AP代理和CP代理将AP服务结果转发给CP应用。
进一步的,AP应用根据CP服务请求输出AP服务结果时,还包括,AP应用根据CP服务请求确定是否能够在在一个时间片内输出AP服务结果,如果能够在一个时间片内输出AP服务结果,AP应用开启同步模式服务。AP代理向CP代理反馈服务处理中(1.2.2.1请求处理中),CP代理等待AP服务结果(1.2.2.2等待),AP应用输出AP服务结果到AP代理(1.3同步服务返回结果),AP代理判断AP服务结果的数据量是否超过第一预设阈值。若AP服务结果的数据量超过第一预设阈值此时数据量较大,无法直接将AP服务结果返回到CP代理,就需要高速缓存特性,AP代理将AP服务结果写入片上高速缓存,并通知CP代理准备接收AP服务结果,在CP代理准备好后开启生产者消费者模式将AP服务结果返回给CP代理(1.3.1同步服务返回结果)。若AP服务结果的数据量未超过第一预设阈值此时数据量较小,AP代理可以直接返回AP服务结果到CP代理(1.3.1同步服务返回结果)。CP代理接收到AP服务结果后转发AP服务结果到CP应用(1.3.1.1返回结果),CP应用成功的从AP应用快速的获取到需要的数据。其中,即使CP应用要求同步通信,并不意味AP应用可以独占处理器去响应CP应用,只是CP应用在同步等待而已,即AP应用任可能是异步响应服务。
进一步的,AP应用不能够在一个时间片内输出AP服务结果,AP应用开启异步模式服务,将AP服务结果返回到CP应用。AP代理向CP代理返回服务就绪中(1.3.2异步服务服务就绪),CP代理返回服务就绪中到CP应用(1.3.2.1返回服务就绪),CP应用切换处理下一进程,不需要CP应用进行较长时间的等待,而是切换处理其他业务,有效的减少C该CP请求对CP应用的占用,提高CP应用的工作效率。AP应用产生AP服务结果后将服务结果返回到AP代理(1.4异步服务返回结果),AP代理根据同步模式服务中判断数据量是否超过第一预设阈值的方法,将AP服务结果发送到CP代理(1.4.1异步服务返回结果),CP代理转发AP服务结果到CP应用(1.4.1.1异步服务返回结果)。
作为一种优选的实施方式,当CP应用与AP应用之间的通信中为CP应用请求与AP应用异步模式通信,该情况下,MCU上的CP应用不等待MPU处理数据,以异步方式和MPU上的AP应用通信。由于CP应用与AP应用是异步的,为避免占用总线,所有服务请求和服务结果,不论数据量大小,都是通过存入片上高速缓存进行的。具体步骤包括:CP应用将带有截止时间的CP服务请求发送到CP代理,CP代理将CP服务请求写入片上高速缓存,若CP服务请求写入片上高速缓存前,CP服务请求缓存队列为空,AP代理周期性休眠结束后扫描CP服务请求缓存队列中未处理的CP服务请求,并转发到AP应,若CP服务请求写入片上高速缓存前,CP服务请求缓存队列存在其他CP服务请求,AP代理依次转发请求截止时间最近的CP服务请求到对应的AP应用,且AP代理在转发完CP服务请求缓存队列中所有CP服务请求后,进入周期性休眠。AP应用接收到CP服务请求输出AP服务结果,由AP代理和CP代理根据截止时间将AP服务结果转发给CP应用。
进一步的,AP代理扫描到CP服务请求之后,进CP服务请求发送到AP应用之前还包括:AP代理监听到CP服务请求后查询CP服务请求的服务ID是否存在。若查询到服务ID不存在,AP代理向CP代理返回服务失败结果,CP代理转发服务失败结果到CP应用,若查询到服务ID存在,AP代理将CP服务请求转发给对应的AP应用。
进一步的,AP应用接收到CP服务请求输出AP服务结果,由AP代理和CP代理根据截止时间将AP服务结果转发给CP应用,具体包括:AP应用响应CP服务请求后输出AP服务结果(1.4异步通信返回结果),并在AP服务结果上增加当前时间戳。AP代理接收到带有时间戳的AP服务结果,查看CP服务请求的截止时间。若截止时间超过CP代理的一个轮询周期,AP代理将AP服务结果写入片上高速缓存,等待CP代理读取,且后续处理方式与同步模式通信中AP应用开启异步模式服务相同(1.4异步服务返回结果),将AP服务结果返回到CP应用。若截止时间不足CP代理的一个轮询周期,AP代理唤醒CP代理,并转发AP服务结果到CP代理。CP代理接收到AP服务结果后,将AP服务结果转发给CP应用。
作为一种优选的实施方式,如图6所示,AP应用需要汽车底层状态信息做决策规划或需要向执行设备也就是CP应用发送指令。对于底层状态信息,各CP应用会定时周期性将最新数据写入共享数据区以供仪器仪表应用显示,AP应用只需到指定共享数据区读数据即可,但是AP只有读权限,并且无需通过代理AP代理来操作。根据以上场景出现了CP应用与AP应用之间的通信中为AP应用请求与CP应用异步模式通信,并且AP应用只能异步请求与CP应用通信,并异步等待CP应用返回CP服务结果,AP应用请求与CP应用异步模式通信具体步骤包括:AP应用发出AP服务请求到AP代理(2服务请求),AP代理判断AP服务请求的数据量是否超过第二预设阈值;若AP服务请求的数据量超过第二预设阈值,AP代理将AP服务请求写入片上高速缓存等待CP代理读取;若AP服务请求的数据量不超过第二预设阈值,AP代理转发AP服务请求到CP代理(2.1转发服务请求);CP代理接收到AP服务请求后向AP代理返回确认信号(2.1.1返回确认信号),并将服务指令转发给CP应用(2.1.2转发服务请求)。
进一步的,CP应用接收到AP服务请求后,根据自身状态向CP代理输出CP服务结果或拒绝响应结果(2.2拒绝或相应请求,返回结果),然后由CP代理转发CP服务结果或拒绝响应结果到AP代理(2.3返回结果)和AP代理转发CP服务结果或拒绝响应结果到AP应用(2.4返回结果)。
设置CP应用的与AP应用对片上高速缓存的并发访问优先级,并根据CP应用的与AP应用的并发访问优先级设置CP代理与AP代理的并发访问优先级。
作为一种优选的实施方式,CP应用与AP应用并发访问片上高速缓存时,通过设置CP应用与AP应用的优先级来控制对片上高速缓存的并发访问。CP应用与AP应用访问优先级具体设置为:当CP应用和AP应用同时在片上高速缓存进行读操作时,CP应用优先级与AP应用的优先级相同;当CP应用进行读操作AP应用进行写操作时,CP应用优先级高于AP应用;当CP应用进行写操作AP应用进行读操作时,若采用生产者消费者模式,CP应用优先级高于AP应用,若不采用生产者消费者模式,AP应用的优先级高于CP应用;当CP应用和AP应用同时进行写操作,CP应用的优先级高于AP应用。
进一步的,根据CP应用的与AP应用对片上高速缓存的并发访问优先级,设置CP代理与AP代理对片上高速缓存的并发访问优先级,其中CP代理的优先级与CP应用的优先级相同,AP代理的优先级采用先进先出模型FIFO(First Input First Output),并在对片上高速缓存进行写操作时必须先准备好数据。
上述实施例提供了一种适用于集成控制核MCU和计算核MPU的多核SoC芯片上的数据通信调度方法。面向智能网联汽车域控平台应用,通过定制软硬件适配的缓存访问控制、通信流程管理策略,解决传统CAN总线和ETH总线通信时无法同时保证通信的实时性和通信带宽的问题,提升智能网联汽车中MCU核上的CP应用和MPU核上的AP应用交互效率,降低MCU和MPU间通信时延和抖动,保障智能网联汽车CP应用和AP应用间通信带宽和通信的可靠性,同时降低现有车身网络中的通信负载。
如图1所示,本申请实施例还提供一种芯片,该芯片中包括MCU核、MPU核、片内高速总线和片上高速缓存,其可被设置实现如上述任一实施例中控制核MCU与计算核MPU的调度方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种控制核MCU和计算核MPU的通信调度方法,其特征在于,包括:
控制核MCU和计算核MPU之间通过片内高速总线和片上高速缓存执行如下调度:
所述MCU核上接入CP代理,所述MPU核上接入AP代理,以控制所述MCU核上的CP应用和所述MPU核上的AP应用之间的通信;
设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理对片上高速缓存并发访问优先级;
其中,所述CP代理和所述AP代理用于监听、缓存和转发所述CP应用与所述AP应用产生的服务请求和服务结果。
2.按照权利要求1所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,
若所述AP应用和所述CP应用之间的通信为所述CP应用请求与所述AP应用同步模式通信,所述包括以下步骤:
所述CP代理转发所述CP应用发出的所述CP服务请求到所述AP代理,所述AP代理监听到所述CP服务请求后查询所述CP服务请求的服务ID是否存在;
若查询到所述服务ID不存在,所述AP代理向所述CP代理返回服务失败结果,所述CP代理转发所述服务失败结果到所述CP应用;
若查询到所述服务ID存在,所述AP代理将所述CP服务请求转发给对应的AP应用,所述AP应用输出AP服务结果,所述AP代理和所述CP代理将所述AP服务结果转发给所述CP应用。
3.按照权利要求2所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,所述AP应用输出AP服务结果,所述AP代理和所述CP代理将所述AP服务结果转发给所述CP,包括:
若所述AP应用确定在一个时间片内输出所述AP服务结果,所述AP应用开启同步模式服务,所述同步模式服务包括以下步骤:
所述AP代理向所述CP代理反馈服务处理中,所述CP代理等待所述AP服务结果;
所述AP应用输出所述AP服务结果到所述AP代理,所述AP代理判断所述AP服务结果的数据量是否超过第一预设阈值;
若所述AP服务结果的数据量超过所述第一预设阈值,所述AP代理将所述AP服务结果写入所述片上高速缓存,并通知所述CP代理准备接收所述AP服务结果,在所述CP代理准备好后开启生产者消费者模式将所述AP服务结果返回给所述CP代理;
若所述AP服务结果的数据量未超过所述第一预设阈值,所述AP代理直接返回所述AP服务结果到所述CP代理;
所述CP代理接收到所述AP服务结果后转发所述AP服务结果到所述CP应用。
4.按照权利要求2所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,所述AP应用输出AP服务结果,由所述AP代理和所述CP代理将所述AP服务结果转发给所述CP,包括:
若所述AP应用确定在多个时间片内输出所述AP服务结果,所述AP应用开启异步模式服务,所述开启异步模式服务包括以下步骤:
所述AP代理向所述CP代理返回服务就绪中,所述CP代理返回所述服务就绪中到CP应用,所述CP应用切换处理下一进程;
所述AP应用产生所述AP服务结果后,按照所述同步模式服务将所述AP服务结果返回到所述CP应用。
5.按照权利要求1所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,
若所述AP应用和所述CP应用之间的通信为所述CP应用请求与所述AP应用异步模式通信时,包括以下步骤:
所述CP应用将带有截止时间的所述CP服务请求发送到所述CP代理,所述CP代理将所述CP服务请求写入所述片上高速缓存;
若所述CP服务请求写入所述片上高速缓存前,CP服务请求缓存队列为空,所述AP代理周期性休眠结束后扫描所述CP服务请求缓存队列中未处理的所述CP服务请求,并转发到所述AP应用;
若所述CP服务请求写入所述片上高速缓存前,所述CP服务请求缓存队列存在其他CP服务请求,所述AP代理依次转发所述请求截止时间最近的CP服务请求到对应的所述AP应用,且所述AP代理在转发完所述CP服务请求缓存队列中所有CP服务请求后,进入所述周期性休眠;
所述AP应用接收到所述CP服务请求输出AP服务结果,由所述AP代理和所述CP代理根据所述截止时间将所述AP服务结果转发给所述CP应用。
6.按照权利要求5所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,所述AP应用接收到所述CP服务请求输出AP服务结果,由所述AP代理和所述CP代理根据所述截止时间将所述AP服务结果转发给所述CP应用,包括以下步骤:
所述AP应用输出带有时间戳的所述AP服务结果到所述AP代理,并查看所述CP服务请求的截止时间;
若所述截止时间超过所述CP代理的一个轮询周期,所述AP代理将所述AP服务结果写入所述片上高速缓存,等待所述CP代理读取;
若所述截止时间不足所述CP代理的一个轮询周期,所述AP代理唤醒所述CP代理,并转发所述AP服务结果到所述CP代理;
所述CP代理接收到所述AP服务结果后,将所述AP服务结果转发给所述CP应用。
7.按照权利要求1所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,
若所述AP应用和所述CP应用之间的通信为所述AP应用请求与所述CP应用通信,包括以下步骤:
所述AP应用发出AP服务请求到所述AP代理,所述AP代理判断所述AP服务请求的数据量是否超过第二预设阈值;
若所述AP服务请求的数据量超过所述第二预设阈值,所述AP代理将所述AP服务请求写入所述片上高速缓存等待所述CP代理读取;若所述AP服务请求的数据量不超过第二预设阈值,所述AP代理转发所述AP服务请求到所述CP代理;
所述CP代理接收到所述AP服务请求后向所述AP代理返回确认信号,并将所述服务指令转发给所述CP应用;
所述CP应用根据自身状态向所述CP代理输出CP服务结果或拒绝响应结果;
所述CP代理和所述AP代理依次转发所述CP服务结果或所述拒绝响应结果到所述AP应用。
8.按照权利要求1所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,所述在所述MCU核上接入CP代理,在所述MPU核上接入AP代理,包括:
每个所述MCU核的每个MCU子核上分别接入不同所述CP代理,并对所述CP代理设置互斥访问控制程序;
每个所述MPU核的所有MPU子核上共同接入同一个所述AP代理,设置所述AP代理具有除init0进程以外的最高优先级。
9.按照权利要求1所述的控制核MCU和计算核MPU的通信调度方法,其特征在于,所述设置所述CP应用的与所述AP应用对所述片上高速缓存的并发访问优先级,并根据所述CP应用的与所述AP应用的并发访问优先级设置所述CP代理与所述AP代理的并发访问优先级,包括:
当所述CP应用和所述AP应用同时在所述片上高速缓存进行读操作时,所述CP应用优先级与所述AP应用的优先级相同;
当所述CP应用进行读操作所述AP应用进行写操作时,所述CP应用优先级高于所述AP应用;
当所述CP应用进行写操作所述AP应用进行读操作时,若采用生产者消费者模式,所述CP应用优先级高于所述AP应用,若不采用生产者消费者模式,所述AP应用的优先级高于所述CP应用;
当所述CP应用和所述AP应用同时进行写操作,所述CP应用的优先级高于所述AP应用;
所述CP代理的并发访问优先级与所述CP应用的优先级相同;
所述AP代理的并发访问优先级采用FIFO模型,且所述AP代理在准备好数据后进行并发访问。
10.一种芯片,其特征在于,所述芯片包括MCU核、MPU核、片内高速总线和片上高速缓存,其可被设置实现如权利要求1-9中任一项所述控制核与计算核的调度方法。
CN202111422991.9A 2021-11-26 2021-11-26 一种控制核mcu和计算核mpu的通信调度方法 Pending CN114201416A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111422991.9A CN114201416A (zh) 2021-11-26 2021-11-26 一种控制核mcu和计算核mpu的通信调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111422991.9A CN114201416A (zh) 2021-11-26 2021-11-26 一种控制核mcu和计算核mpu的通信调度方法

Publications (1)

Publication Number Publication Date
CN114201416A true CN114201416A (zh) 2022-03-18

Family

ID=80649141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111422991.9A Pending CN114201416A (zh) 2021-11-26 2021-11-26 一种控制核mcu和计算核mpu的通信调度方法

Country Status (1)

Country Link
CN (1) CN114201416A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225424A (zh) * 2022-09-21 2022-10-21 质子汽车科技有限公司 基于多核SoC的CAN总线信号解析方法、装置和系统
CN116795443A (zh) * 2023-08-25 2023-09-22 小米汽车科技有限公司 休眠唤醒控制系统、方法、车辆和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225424A (zh) * 2022-09-21 2022-10-21 质子汽车科技有限公司 基于多核SoC的CAN总线信号解析方法、装置和系统
CN116795443A (zh) * 2023-08-25 2023-09-22 小米汽车科技有限公司 休眠唤醒控制系统、方法、车辆和存储介质
CN116795443B (zh) * 2023-08-25 2023-11-28 小米汽车科技有限公司 休眠唤醒控制系统、方法、车辆和存储介质

Similar Documents

Publication Publication Date Title
JP3922070B2 (ja) 分散制御方法及び装置
CN103197968B (zh) 一种融合同步异步特点的线程池处理方法及系统
US20060101465A1 (en) Distributed control system
CN114201416A (zh) 一种控制核mcu和计算核mpu的通信调度方法
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
CN107220200B (zh) 基于动态优先级的时间触发以太网数据管理系统及方法
WO2020019743A1 (zh) 流量控制方法及装置
WO2022068697A1 (zh) 任务调度方法及装置
JP2004302837A (ja) シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
CN109117279B (zh) 电子装置及其限制进程间通信的方法、存储介质
CN112506808A (zh) 测试任务执行方法、计算设备、计算系统和存储介质
US6907606B1 (en) Method for implementing event transfer system of real time operating system
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
WO2021212965A1 (zh) 一种资源调度方法及相关装置
CN112395056B (zh) 一种嵌入式非对称实时系统及电力二次设备
Golchin et al. Tuned pipes: end-to-end throughput and delay guarantees for USB devices
CN113608845A (zh) 数据处理方法及装置
CN115562846A (zh) 一种资源调度的方法、装置及计算节点
WO2020220225A1 (zh) 资源获取方法、相关装置及计算机存储介质
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
WO2022141300A1 (zh) 一种任务调度方法及装置
CN109062706B (zh) 电子装置及其限制进程间通信的方法、存储介质
CN112328387A (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