CN116643892B - 内存管理方法、装置、芯片及交通设备 - Google Patents
内存管理方法、装置、芯片及交通设备 Download PDFInfo
- Publication number
- CN116643892B CN116643892B CN202310919253.8A CN202310919253A CN116643892B CN 116643892 B CN116643892 B CN 116643892B CN 202310919253 A CN202310919253 A CN 202310919253A CN 116643892 B CN116643892 B CN 116643892B
- Authority
- CN
- China
- Prior art keywords
- memory
- operating system
- priority
- processor
- target
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 536
- 238000007726 management method Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000006854 communication Effects 0.000 claims abstract description 31
- 238000004891 communication Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
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)
- Multi Processors (AREA)
Abstract
本申请提供了一种内存管理方法、装置、芯片及交通设备;方法包括:第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存管理方法、装置、芯片及交通设备。
背景技术
系统级芯片(System on Chip,SoC)可以是由不同类型的多个单核心或多核心处理器构成多核异构芯片,多核异构芯片可以包括多个硬件域,每个硬件域运行一个操作系统,各操作系统均有内存带宽需求。因此,如何为各操作系统分配内存带宽,以提高内存带宽的利用率是计算机技术领域、尤其是车规芯片领域需要解决的问题。
发明内容
本申请实施例提供一种内存管理方法、装置、芯片及交通设备,能够提高内存带宽的利用率。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种内存管理方法,所述方法包括:第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;
所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;
所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;
其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上。
在一些可选实施例中,所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级,包括:
所述第一操作系统根据所述内存调度请求,确定所述第二处理器的候选内存优先级;
所述第一操作系统查询所述第二处理器的内存优先级范围;
所述第一操作系统基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级。
在一些可选实施例中,所述第一操作系统基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级包括:
若所述候选内存优先级在所述内存优先级范围内,则所述第一操作系统确定所述候选内存优先级为所述第二处理器的目标内存优先级;
若所述候选内存优先级不在所述内存优先级范围内,则所述第一操作系统确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。
在一些可选实施例中,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第二操作系统发送的内存调度请求对应至少两个第二处理器,按照目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
若所述所需的内存带宽大于可分配的内存带宽,则所述第一操作系统将所述一个第二处理器的第一目标内存优先级调整为第二目标优先级;
按照调整后的目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽;
其中,所述第二目标优先级低于所述第一目标内存优先级。
在一些可选实施例中,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第一操作系统通过内存寄存器配置每个所述第二操作系统的内存带宽。
在一些可选实施例中,所述方法还包括:
所述第一操作系统将内存寄存器中所述第二处理器的内存优先级,配置为对应的目标内存优先级。
在一些可选实施例中,所述方法还包括:
所述第一操作系统通过所述核间通信通道接收至少一个所述第二操作系统发送的内存释放请求;
所述第一操作系统基于所述内存释放请求,释放对应的内存带宽。
在一些可选实施例中,所述方法还包括:所述第一操作系统确定所述第一操作系统对应的第一处理器的目标内存优先级。
在一些可选实施例中,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第一操作系统按照所述第二处理器的目标内存优先级、以及所述第一处理器的目标内存优先级由高到低的顺序,依次分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,所述方法还包括:
所述第一操作系统确定所述第一操作系统对应的全部第一处理器的内存带宽之和,为所述第一操作系统的内存带宽。
第二方面,本申请实施例提供一种内存管理装置,所述内存管理装置包括:
接收模块,用于通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;
确定模块,用于基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;
分配模块,用于基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;
其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上。
在一些可选实施例中,确定模块,用于根据所述内存调度请求,确定所述第二处理器的候选内存优先级;
查询所述第二处理器的内存优先级范围;
基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级。
在一些可选实施例中,若所述候选内存优先级在所述内存优先级范围内,则确定模块用于确定所述候选内存优先级为所述第二处理器的目标内存优先级;
若所述候选内存优先级不在所述内存优先级范围内,则确定模块用于确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。
在一些可选实施例中,第二操作系统发送的内存调度请求对应至少两个第二处理器,分配模块用于按照目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,分配模块用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,若所述所需的内存带宽大于可分配的内存带宽,则分配模块用于将所述一个第二处理器的第一目标内存优先级调整为第二目标优先级;
按照调整后的目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,分配模块用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽;
其中,所述第二目标优先级低于所述第一目标内存优先级。
在一些可选实施例中,分配模块,用于通过内存寄存器配置每个所述第二操作系统的内存带宽。
在一些可选实施例中,所述装置还包括配置模块,用于将内存寄存器中所述第二处理器的内存优先级,配置为对应的目标内存优先级。
在一些可选实施例中,所述装置还包括处理模块,用于通过所述核间通信通道接收至少一个所述第二操作系统发送的内存释放请求;
基于所述内存释放请求,释放对应的内存带宽。
在一些可选实施例中,确定模块,还用于确定所述第一操作系统对应的第一处理器的目标内存优先级。
在一些可选实施例中,分配模块,用于按照所述第二处理器的目标内存优先级、以及所述第一处理器的目标内存优先级由高到低的顺序,依次分配内存带宽;
针对每个所述第二操作系统,分配模块用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,确定模块,还用于确定所述第一操作系统对应的全部第一处理器的内存带宽之和,为所述第一操作系统的内存带宽。
第三方面,本申请实施例提供一种芯片,所述芯片包括:处理器、存储器和总线;所述存储器存储可执行指令;
所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现上述的内存管理方法。
第四方面,本申请实施例提供一种交通设备上的部件,所述部件包括芯片,所述芯片能够实现上述的内存管理方法。
第五方面,本申请实施例提供一种交通设备,所述交通设备包括芯片,所述芯片能够实现上述的内存管理方法。
第六方面,本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的内存管理方法。
本申请实施例提供的内存管理方法包括:第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求;所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽。如此,第一操作系统根据第二操作系统发送的内存调度请求确定第二操作系统对应的第二处理器的目标内存优先级,并基于目标内存优先级为第二处理器分配内存带宽,实现根据第二处理器的需求为第二处理器分配内存带宽,避免内存带宽的浪费,提高了内存带宽的利用率。
附图说明
图1是本申请实施例提供的内存管理方法的一种可选处理流程示意图;
图2是本申请实施例提供的第一操作系统基于内存调度请求确定每个第二操作系统对应的第二处理器的目标内存优先级的处理流程示意图;
图3是本申请实施例提供的内存管理方法的另一种可选处理流程示意图;
图4是本申请实施例提供的内存管理方法的一种应用场景示意图;
图5是本申请实施例提供的内存管理装置的组成结构示意图;
图6是本申请实施例提供的芯片的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
应理解,在本申请的各种实施例中,各实施过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)多核异构芯片,是指在单颗芯片内集成有两个或两个以上处理器核的芯片,每个处理器核可以作为一个独立的处理器,独立运行该处理器核对应的存储器上存储的指令。多核异构芯片能带来性能、成本、功耗、尺寸等更多的组合优势,不同架构间各司其职,各自发挥原本架构独特的优势。
本申请实施例中的多核异构芯片可应用于交通设备中,交通设备包括但不限于平衡车、小汽车、公共汽车、地铁、火车和飞机等。
2)硬件域,是一组硬件集合,该硬件集合可以包括处理器核、中断控制器、时钟控制器和存储器等硬件资源;硬件集合中处理器核的数量可以是一个或多个;一个硬件域运行一个操作系统,不同的硬件域可以运行不同的操作系统。
每个硬件域内的IP核有大核与小核之分,大核适合运行性能强的操作系统,小核适合运行性能低,速度快且更加安全的操作系统;不同的硬件域之间通过核间通信通道传输信息。
3)核间通信,不同的硬件域之间也有信息通信需求,该通信方式被称为核间通信;核间通信相比芯片和芯片之间的通信具备更多优势,如不需要将数据传输至芯片外,使得数据传输的安全性和速度都有较大提升。核间通信有多种形式,如适合传输指令的Mailbox机制,以及适合共享数据的共享内存机制。
Mailbox是一种用于不同处理核之间进行通信的机制或数据结构。它可以用于在不同的处理器、核心或硬件模块之间传递消息和触发事件。
Mailbox可以被看作是一个共享的、双向的通信接口,其中包含一个或多个寄存器用于存储消息或控制信息。发送方可以将消息写入Mailbox的寄存器,而接收方可以读取这些消息并进行相应的处理,即发送方可以通过在Mailbox的寄存器内写入消息或控制信息,达到对接收方的控制,或者指示接收方执行相应操作的目的。
在半导体芯片中,Mailbox通常用于处理器之间的通信,例如在多核处理器、SoC或多个独立的功能模块之间。通过Mailbox机制,不同的处理单元可以协同工作,共享数据、同步操作以及进行事件触发,从而实现更高效的系统协作和资源共享。
需要注意的是,Mailbox的实现方式可能因芯片架构、通信协议或设计需求而有所不同,但总体而言,它都是为了实现处理单元之间的可靠、高效的通信和数据交换而存在的。
共享内存是一种在多个进程(进程可以在不同的处理器中运行)之间共享数据的机制,允许不同的进程访问相同的内存区域,从而实现数据的快速传递和共享。
本申请实施例提供的内存管理方法的一种可选处理流程示意图,如图1所示,至少包括以下步骤:
步骤S101,第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求。
在一些实施例中,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽。其中,第二操作系统请求获取的内存带宽,可以是第二操作系统独享的内存带宽,也可以是第一操作系统与第二操作系统均可以使用的共享内存带宽。若第二操作系统请求获取的内存带宽为第一操作系统与第二操作系统均可以使用的共享内存带宽,则该内存带宽能够分配给第一操作系统和第二操作系统中的一个操作系统使用。
在一些实施例中,每个操作系统均被配置为运行在系统级芯片的一组硬件集合上,也可以称为每个操作系统对应一个硬件域。
在一些实施例中,第一操作系统可以是运行在任意一个硬件域上的操作系统。第一操作系统的启动速度也可以小于第二操作系统的启动速度,在该场景下,第一操作系统可以称为小系统,第二操作系统可以称为大系统;作为示例,第一操作系统为RTOS系统,第二操作系统为Android系统或Linux系统。
在一些实施例中,第一操作系统可以基于Mailbox机制接收第二操作系统发送的内存调度请求。内存调度请求中可以包括第二操作系统对应的各个第二处理器希望获取的目标内存优先级,内存调度请求中也可以包括第二操作系统对应的各个第二处理器希望获取的内存带宽的大小。具体的,系统级芯片中预先配置内存优先级与内存带宽之间的映射关系,每个内存优先级对应一个内存带宽,内存优先级越高,其对应的内存带宽越大;作为示例,最高的内存优先级是1级,对应的内存带宽是300MB,可以将300MB的内存带宽分配给内存优先级是1级的处理器;最低的内存优先级是9级,对应的内存带宽是20MB,可以将300MB的内存带宽分配给内存优先级是1级的处理器。
步骤S102,第一操作系统基于内存调度请求确定每个第二操作系统对应的第二处理器的目标内存优先级。
在一些实施例中,第一操作系统基于内存调度请求确定每个第二操作系统对应的第二处理器的目标内存优先级的具体实现过程,如图2所示,至少可以包括以下步骤:
步骤S102a,第一操作系统根据内存调度请求,确定第二处理器的候选内存优先级。
在一些实施例中,若内存调度请求中携带第二处理器希望获取的内存优先级,则第一操作系统将内存调度请求中携带的内存优先级确定为第二处理器的候选内存优先级。
步骤S102b,第一操作系统查询第二处理器的内存优先级范围。
在一些实施例中,在系统级芯片内预先配置第二处理器对应的内存优先级范围。作为示例,可以通过配置文件配置第二处理器对应的内存优先级范围,该配置文件可以存储于一内存寄存器内。
具体的,配置文件中至少可以包括第二处理器所属的硬件域的名称、第二处理器所属的硬件域的序号、第二处理器的名称和第二处理器的内存优先级范围或第二处理器的内存优先级。作为示例,第二处理器为中央处理器(Central Processing Unit,CPU),第二处理器所属的硬件域的名称为智能座舱域,第二处理器所属的硬件域的序号为1,第二处理器的内存优先级范围为1-2;内存优先级为1,对应的内存带宽为300MB;内存优先级为2,对应的内存带宽为200MB。
在一些实施例中,在系统级芯片启动时,第一操作系统可以先根据配置文件中的信息为第二处理器分配内存带宽。具体的,若配置文件中包括第二处理器的内存优先级范围,则可以从内存优先级范围中随机选择一个内存优先级,根据所选择的内存优先级为第二处理器分配内存带宽;或者,根据可分配内存带宽的大小以及各个第二处理器所请求的内存带宽的大小为第二处理器分配内存带宽。第一操作系统在接收到第二操作系统发送的内存调度请求之后,根据内存调度请求为第二处理器重新分配内存带宽。
步骤S102c,第一操作系统基于候选内存优先级和内存优先级范围,确定第二处理器的目标内存优先级。
在一些实施例中,若所述候选内存优先级在所述内存优先级范围内,则所述第一操作系统确定所述候选内存优先级为所述第二处理器的目标内存优先级。作为示例,若第二处理器的内存优先级范围为1-2,候选内存优先级为1,则第一操作系统确定第二处理器的目标内存优先级为1。
在另一些实施例中,若所述候选内存优先级不在所述内存优先级范围内,则所述第一操作系统确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。作为示例,若第二处理器的内存优先级范围为3-4,候选内存优先级为2,由于候选内存优先级与内存优先级范围中的“3”更接近,所以第一操作系统确定第二处理器的目标内存优先级为3。
图2所示的实施例是以第二处理器不能够预先确定自身的内存优先级范围为例,对第一操作系统确定第二处理器的目标内存优先级的处理过程进行说明。在具体实施时,还可以预先将第二处理器所对应的内存优先级范围发送至第二操作系统;第二操作系统可以根据第二处理器所对应的内存优先级范围发送内存调度请求,该内存调度请求中携带的内存优先级在第二处理器所对应的内存优先级范围内。如此,第一操作系统可以直接将内存调度请求中携带的内存优先级为目标内存优先级。
在一些实施例中,第一操作系统可以在内存寄存器中配置第二处理器的目标内存优先级。
步骤S103,第一操作系统基于第二处理器的目标内存优先级为第二操作系统分配内存带宽。
本申请实施例中,第二操作系统可以有多个,每个第二操作系统对应一个或多个第二处理器。
在一些实施例中,若全部第二处理器所需的内存带宽小于可分配的内存带宽,则第一操作系统可以按照目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在另一些实施例中,若全部第二处理器所需的内存带宽大于可分配的内存带宽,则所述第一操作系统将一个第二处理器的第一目标内存优先级调整为第二目标优先级,所述第二目标优先级低于所述第一目标内存优先级;按照调整后的目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽。若将一个第二处理器的目标内存优先级降低后,全部第二处理器所需的内存带宽仍大于可分配的内存带宽,则继续降低一个或多个第二处理器的目标内存优先级。
举例来说,有第二处理器1和第二处理器2共两个第二处理器向第一操作系统请求分配内存带宽,第二处理器1的内存优先级为1,第二处理器2的内存优先级为2;内存优先级为1对应的内存带宽为300MB,内存优先级为2对应的内存带宽为200MB;第一操作系统当前可分配的内存带宽为400MB,则第一操作系统将第二处理器1的内存优先级修改为2,并基于修改后的内存优先级为第二处理器1和第二处理器2分配内存带宽。第一操作系统在内存寄存器中更新修改后的第二处理器1的内存优先级。
在具体实施时,第一操作系统可以通过内存寄存器配置每个第二操作系统中每个第二处理器的内存带宽。
上述仅以一个或多个第二操作系统存在内存带宽分配需求为例,对本申请实施例提供的内存管理方法进行说明。在具体实施时,还存在第一操作系统和第二操作系统均有内存带宽分配需求的场景,在该场景下,第一操作系统首先确定第一操作系统对应的第一处理器的目标内存优先级;再按照所述第二处理器的目标内存优先级、以及所述第一处理器的目标内存优先级由高到低的顺序,依次分配内存带宽。其中,针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
需要说明的是,本申请实施例中的第二处理器可以是CPU、图像处理器(GraphicsProcessing Unit,GPU)、视频处理单元(Video Processing Unit,VPU)或接口连接的摄像头模块(Camera Serial Interface,CSI)等。针对不同的应用场景,所应用的第二处理器可能不同;作为示例,针对仪表显示的应用场景,所应用的第二处理器包括GPU、CPU和显示端口(DisplayPort,DP);针对视频播放的应用场景,所应用的第二处理器包括GPU、CPU、VPU和DP。
本申请实施例能够根据不同的应用场景,为每个应用场景所需的处理器分配所需的内存带宽。与相关技术中为一个操作系统或一个处理器分配固定大小的内存带宽相比,本申请实施例提供的内存管理方法能够根据处理器的需要有效地分配内存带宽,提高内存带宽的利用率。
本申请实施例中,若第一操作系统为启动速度快的小系统,则本申请实施例利用带宽消耗较小的第一操作系统为第二操作系统分配内存带宽,能够实现对各个应用场景的快速响应。
本申请实施例提供的内存管理方法的另一种可选处理流程示意图,如图3所示,至少包括以下步骤:
步骤S201,第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求。
步骤S202,第一操作系统基于内存调度请求确定每个第二操作系统对应的第二处理器的目标内存优先级。
步骤S203,第一操作系统基于第二处理器的目标内存优先级为第二操作系统分配内存带宽。
步骤S204,第一操作系统通过所述核间通信通道接收至少一个所述第二操作系统发送的内存释放请求。
在一些实施例中,若第二操作系统不需要运行某一应用,则第二操作系统通过向第一操作系统发送内存释放请求的方式,请求释放该应用(也可以称为应用场景)对应的内存带宽。
在具体实施时,内存释放请求中可以携带处理器的名称和处理器对应的内存带宽的大小等信息。
步骤S205,第一操作系统基于内存释放请求释放对应的内存带宽。
在一些实施例中,第一操作系统根据内存释放请求中携带的信息,释放对应的内存带宽。与相关技术中为操作系统或处理器分配固定大小的内存带宽相比,本申请实施例能够在操作系统或处理器不需要内存带宽时,释放对应的内存带宽,以便第一操作系统将释放出的内存带宽分配至需要内存资源的操作系统或处理器,实现内存带宽的有效利用。
本申请实施例提供的内存管理方法的一种应用场景示意图,如图4所示,系统级芯片至少包括第一硬件域、第二硬件域和第三硬件域;其中,第一硬件域上运行有第一操作系统,第二硬件域和第三硬件域有内存带宽需求时,通过核间通信机制(也可以称为核间通信通道)向第一硬件域发送内存调度请求。其中,内存带宽可以来源于系统级芯片外接的动态随机访问内存(Dynamic Random Access Memory,DRAM)。具体的,第二硬件域和第三硬件域中均包括内存优先级管理模块,每个硬件域内的内存优先级管理模块用于管理自身所在的硬件域的内存带宽,如内存优先级管理模块向第一硬件域发送内存调度请求或内存释放请求,以请求为第二硬件域内的第二处理器或第三硬件域内的第三处理器分配内存带宽。第一硬件域中也包括内存优先级管理模块,第一硬件域中的内存优先级管理模块用于接收其他硬件域发送的内存调度请求或内存释放请求;并根据接收到的内存调度请求或内存释放请求为第二硬件域或第三硬件域分配内存带宽或释放内存带宽。第一硬件域内的内存优先级管理模块也用于对第一硬件域内的第一处理器进行内存管理。在具体实施时,第一硬件域中的内存优先级管理模块触发带宽优先级控制器为第二硬件域或第三硬件域分配内存带宽或释放内存带宽。
本申请实施例还提供一种内存管理装置,内存管理装置上运行有第一操作系统,内存管理装置的组成结构示意图,如图5所示,至少包括:
接收模块501,用于通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;
确定模块502,用于基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;
分配模块503,用于基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;
其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上。
在一些可选实施例中,确定模块502,用于根据所述内存调度请求,确定所述第二处理器的候选内存优先级;
查询所述第二处理器的内存优先级范围;
基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级。
在一些可选实施例中,若所述候选内存优先级在所述内存优先级范围内,则确定模块502用于确定所述候选内存优先级为所述第二处理器的目标内存优先级;
若所述候选内存优先级不在所述内存优先级范围内,则确定模块502用于确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。
在一些可选实施例中,第二操作系统发送的内存调度请求对应至少两个第二处理器,分配模块503用于按照目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,分配模块503用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,若所述所需的内存带宽大于可分配的内存带宽,则分配模块用于将所述一个第二处理器的第一目标内存优先级调整为第二目标优先级;
按照调整后的目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,分配模块503用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽;
其中,所述第二目标优先级低于所述第一目标内存优先级。
在一些可选实施例中,分配模块503,用于通过内存寄存器配置每个所述第二操作系统的内存带宽。
在一些可选实施例中,所述装置还包括配置模块(图5中未示出),用于将内存寄存器中所述第二处理器的内存优先级,配置为对应的目标内存优先级。
在一些可选实施例中,所述装置还包括处理模块(图5中未示出),用于通过所述核间通信通道接收至少一个所述第二操作系统发送的内存释放请求;
基于所述内存释放请求,释放对应的内存带宽。
在一些可选实施例中,确定模块502,还用于确定所述第一操作系统对应的第一处理器的目标内存优先级。
在一些可选实施例中,分配模块503,用于按照所述第二处理器的目标内存优先级、以及所述第一处理器的目标内存优先级由高到低的顺序,依次分配内存带宽;
针对每个所述第二操作系统,分配模块503用于确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
在一些可选实施例中,确定模块502,还用于确定所述第一操作系统对应的全部第一处理器的内存带宽之和,为所述第一操作系统的内存带宽。
本申请实施例还提供一种芯片,芯片的结构示意图,如图6所示,包括:一个处理器410、存储器450和总线440;芯片中的各个模块通过总线440耦合在一起。可理解,总线440用于实现这些模块之间的连接通信。总线440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线440。
处理器410具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,DigitalSignal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件模型等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器450中存储有用于实现本申请实施例提供的内存管理方法的可执行指令,内存管理方法可由图5所示的内存管理装置中的接收模块501、确定模块502和分配模块503实现;存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集。
在一些实施例中,芯片还可以包括:
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
本申请实施例还提供一种交通设备上的部件,所述部件包括芯片,所述芯片能够执行上述车辆内的内存管理方法。
在一些可选实施例中,所述部件可以是电路板级的部件,也可以是汽车电气系统级的部件,还可以是汽车总成部件。作为示例,部件可以是车辆的发动机、底盘、车身和电气电子设备。其中,车辆的电气电子设备可以包括用于照明的大灯,控制发动机的管理设备,接收广播、导航、听音乐、娱乐等的中控设备等。
本申请实施例还提供一种交通设备,所述交通设备包括芯片,所述芯片能够执行上述内存管理方法。其中,所述芯片可以为多核异构芯片,所述交通设备包括但不限于平衡车、小汽车、公共汽车、火车或飞机等。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将触发处理器执行本申请实施例提供的内存管理方法,例如,如图1至图4示出的内存管理方法。
在一些实施例中,计算机可读存储介质可以是铁电随机存取存储器(Ferroelectric RAM,FRAM)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程的只读存储器(ErasableProgrammable ROM,EPROM)、电可擦可编程序只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、模型、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本申请所述的内存管理方法。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种内存管理方法,其特征在于,所述方法包括:
第一操作系统通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;
所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;
所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;
其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上;
所述第一操作系统基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级,包括:所述第一操作系统根据所述内存调度请求,确定所述第二处理器的候选内存优先级;所述第一操作系统查询所述第二处理器的内存优先级范围;所述第一操作系统基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级;
所述第一操作系统基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级包括:若所述候选内存优先级在所述内存优先级范围内,则所述第一操作系统确定所述候选内存优先级为所述第二处理器的目标内存优先级;若所述候选内存优先级不在所述内存优先级范围内,则所述第一操作系统确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。
2.根据权利要求1所述的方法,其特征在于,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第二操作系统发送的内存调度请求对应至少两个第二处理器,按照目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
3.根据权利要求1所述的方法,其特征在于,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
若所述所需的内存带宽大于可分配的内存带宽,则所述第一操作系统将一个第二处理器的第一目标内存优先级调整为第二目标优先级;
按照调整后的目标内存优先级由高到低的顺序,依次为每个第二处理器分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽;
其中,所述第二目标优先级低于所述第一目标内存优先级。
4.根据权利要求2或3所述的方法,其特征在于,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第一操作系统通过内存寄存器配置每个所述第二操作系统的内存带宽。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第一操作系统将内存寄存器中所述第二处理器的内存优先级,配置为对应的目标内存优先级。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第一操作系统通过所述核间通信通道接收至少一个所述第二操作系统发送的内存释放请求;
所述第一操作系统基于所述内存释放请求,释放对应的内存带宽。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第一操作系统确定所述第一操作系统对应的第一处理器的目标内存优先级。
8.根据权利要求7所述的方法,其特征在于,所述第一操作系统基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽,包括:
所述第一操作系统按照所述第二处理器的目标内存优先级、以及所述第一处理器的目标内存优先级由高到低的顺序,依次分配内存带宽;
针对每个所述第二操作系统,确定所述第二操作系统对应的全部第二处理器的内存带宽之和,为所述第二操作系统的内存带宽。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述第一操作系统确定所述第一操作系统对应的全部第一处理器的内存带宽之和,为所述第一操作系统的内存带宽。
10.一种内存管理装置,其特征在于,所述装置上运行有第一操作系统,所述装置包括:
接收模块,用于通过核间通信通道接收至少一个第二操作系统发送的内存调度请求,所述内存调度请求用于请求获取所述第二操作系统所需的内存带宽;
确定模块,用于基于所述内存调度请求确定每个所述第二操作系统对应的第二处理器的目标内存优先级;
分配模块,用于基于所述第二处理器的目标内存优先级为所述第二操作系统分配内存带宽;
其中,每个操作系统被配置为运行在系统级芯片的一组硬件集合上;
所述确定模块,具体用于根据所述内存调度请求,确定所述第二处理器的候选内存优先级;查询所述第二处理器的内存优先级范围;基于所述候选内存优先级和所述内存优先级范围,确定所述第二处理器的目标内存优先级;
若所述候选内存优先级在所述内存优先级范围内,则确定模块具体用于确定所述候选内存优先级为所述第二处理器的目标内存优先级;
若所述候选内存优先级不在所述内存优先级范围内,则确定模块具体用于确定所述内存优先级范围中,与所述候选内存优先级之差最小的内存优先级为所述第二处理器的目标内存优先级。
11.一种芯片,其特征在于,所述芯片包括:处理器、存储器和总线;
所述存储器存储可执行指令;
所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项所述的内存管理方法。
12.一种交通设备上的部件,其特征在于,所述部件包括芯片,所述芯片能够实现权利要求1至9任一项所述的内存管理方法。
13.一种交通设备,其特征在于,所述交通设备包括芯片,所述芯片能够实现权利要求1至9任一项所述的内存管理方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至9任一项所述的内存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919253.8A CN116643892B (zh) | 2023-07-25 | 2023-07-25 | 内存管理方法、装置、芯片及交通设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919253.8A CN116643892B (zh) | 2023-07-25 | 2023-07-25 | 内存管理方法、装置、芯片及交通设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116643892A CN116643892A (zh) | 2023-08-25 |
CN116643892B true CN116643892B (zh) | 2023-10-27 |
Family
ID=87643800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310919253.8A Active CN116643892B (zh) | 2023-07-25 | 2023-07-25 | 内存管理方法、装置、芯片及交通设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116643892B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775085B (zh) * | 2023-08-17 | 2023-11-14 | 北京芯驰半导体科技有限公司 | 多核异构片上系统更新方法、装置、芯片及交通设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10101910B1 (en) * | 2015-09-15 | 2018-10-16 | Amazon Technologies, Inc. | Adaptive maximum limit for out-of-memory-protected web browser processes on systems using a low memory manager |
CN111459648A (zh) * | 2020-06-17 | 2020-07-28 | 北京机电工程研究所 | 面向应用程序的异构多核平台资源优化方法和装置 |
CN115086438A (zh) * | 2022-08-19 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 任务处理方法、视频处理单元、部件及交通设备 |
CN116450328A (zh) * | 2022-01-06 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
-
2023
- 2023-07-25 CN CN202310919253.8A patent/CN116643892B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10101910B1 (en) * | 2015-09-15 | 2018-10-16 | Amazon Technologies, Inc. | Adaptive maximum limit for out-of-memory-protected web browser processes on systems using a low memory manager |
CN111459648A (zh) * | 2020-06-17 | 2020-07-28 | 北京机电工程研究所 | 面向应用程序的异构多核平台资源优化方法和装置 |
CN116450328A (zh) * | 2022-01-06 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
CN115086438A (zh) * | 2022-08-19 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 任务处理方法、视频处理单元、部件及交通设备 |
Non-Patent Citations (1)
Title |
---|
Android3.0内存管理机制分析;余成锋;李代平;毛永华;;计算机应用与软件(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116643892A (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B9 (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN116643892B (zh) | 内存管理方法、装置、芯片及交通设备 | |
CN116302617B (zh) | 共享内存的方法、通信方法、嵌入式系统以及电子设备 | |
CN114302040B (zh) | 多应用共享单一摄像头的方法及相关产品 | |
CN115086438B (zh) | 任务处理方法、视频处理单元、部件及交通设备 | |
KR20160056382A (ko) | 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법 | |
CN116775085B (zh) | 多核异构片上系统更新方法、装置、芯片及交通设备 | |
CN112887401B (zh) | 一种基于多个操作系统的网络访问方法及车机系统 | |
CN113296926B (zh) | 一种资源分配方法、计算设备及存储介质 | |
CN114138422A (zh) | 可扩展性的NVMe存储虚拟化方法和系统 | |
CN114691037A (zh) | 卸载卡命名空间管理、输入输出请求处理系统和方法 | |
US10346209B2 (en) | Data processing system for effectively managing shared resources | |
CN114253704A (zh) | 一种分配资源的方法及装置 | |
CN116841731A (zh) | 一种fpga虚拟化资源调度系统及方法 | |
US11580060B2 (en) | Policy driven latency control applied to a vehicular real time network apparatus | |
CN118409883B (zh) | 跨硬件域的共享内存管理方法、装置、芯片及电子设备 | |
US11467880B2 (en) | Method for accessing shared resources of a computer platform, associated computer program and computer platform | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN108228496B (zh) | 一种直接内存访问内存管理方法、装置和主控设备 | |
CN110362523B (zh) | 一种基于virtio协议的接口及数据处理方法 | |
CN118409883A (zh) | 跨硬件域的共享内存管理方法、装置、芯片及电子设备 | |
CN118796752A (zh) | 核间通信方法、装置、芯片及电子设备 | |
JP2008009926A (ja) | 情報処理装置、情報処理システムおよびアドレス変換方法 | |
CN114244878B (zh) | 一种异构多核环境下的设备分布式访问系统及方法 | |
CN118113496B (zh) | 一种基于多核异构soc的进程间通信方法、系统及芯片 |
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 |