CN114816666A - 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 - Google Patents

虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 Download PDF

Info

Publication number
CN114816666A
CN114816666A CN202210442327.9A CN202210442327A CN114816666A CN 114816666 A CN114816666 A CN 114816666A CN 202210442327 A CN202210442327 A CN 202210442327A CN 114816666 A CN114816666 A CN 114816666A
Authority
CN
China
Prior art keywords
tlb
data
address
entries
memory
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
CN202210442327.9A
Other languages
English (en)
Other versions
CN114816666B (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.)
Kedong Guangzhou Software Technology Co Ltd
Original Assignee
Kedong Guangzhou Software 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 Kedong Guangzhou Software Technology Co Ltd filed Critical Kedong Guangzhou Software Technology Co Ltd
Priority to CN202210442327.9A priority Critical patent/CN114816666B/zh
Publication of CN114816666A publication Critical patent/CN114816666A/zh
Application granted granted Critical
Publication of CN114816666B publication Critical patent/CN114816666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开虚拟机管理器的配置方法、用于虚拟机管理器的TLB管理方法、嵌入式实时操作系统、电子设备及计算机可读存储介质。该配置方法,包括:配置用于存放关键数据的第一内存段;将所述关键数据存储到所述第一内存段;将确定的所述关键数据的虚拟地址到物理地址的映射关系存储到地址转换后援缓冲器TLB的第一组表项内。该管理方法,包括:根据被访问数据的虚拟地址,获取所述被访问数据的虚拟地址到物理地址的静态映射关系,其中,所述被访问数据为所述关键数据,所述静态映射关系存储在所述第一组表项内,所述被访问数据的物理地址位于所述第一内存段。如此,对TLB进行了资源优化管理,提高了虚拟机管理器的实时性。

Description

虚拟机管理器的配置方法、TLB管理方法及嵌入式实时操作 系统
技术领域
本申请涉及嵌入式实时操作系统设计技术领域,具体涉及虚拟机管理器的配置方法、用于虚拟机管理器的TLB管理方法、嵌入式实时操作系统。
背景技术
如图1所示,工业服务器大多提供虚拟化的多核(Core)处理器(CentralProcessing Unit,CPU),如,将芯片(包括CPU20、存储设备、网络接口、总线等)进行虚拟化分区并实现多核,如核(Core)201、202、...、20n,并由虚拟机管理器101统一地对各核进行管理。并在各虚拟化分区内,或采用虚拟机21运行实时操作系统(Real Time OperatingSystem,RTOS)211,或采用虚拟机22运行RTOS221,或采用虚拟机2n运行非实时操作系统2n1,如微软操作系统Windows,由此,多核(Core)处理器运行异构操作系统。由此,部分虚拟化分区内运行实时操作系统,如,RTOS,并在其上运行用户定义的实时应用程序,如212或222,部分虚拟机分区内运行非实时操作系统,如Windows,并在其上运行用户定义的非实时应用程序,如2n2。
这时,芯片上运行嵌入式实时操作系统10,包括虚拟机管理器101和作为基本操作系统的内核(Kernel)102。虚拟机管理器101和作为基本操作系统的内核(Kernel)102均运行在核心态,各虚拟机(如21、22、2n)运行在核心态。虚拟机内部运行的操作系统在用户态运行,不管是实时操作系或非实时操作系统;实时操作系统上运行的实时应用程序(如212或222)或非实时操作系统上运行的非实时应用程序(如2n2)也均运行在用户态。
在一些应用场景下,工业服务器在核心态下运行的应用程序较少,但用户态对某些核心态数据的访问频次高,因此要求内核102趋于轻量化及强实时性。
发明内容
鉴于现有技术的以上问题,本申请提供虚拟机管理器的配置方法、用于虚拟机管理器的TLB管理方法、嵌入式实时操作系统、电子设备及计算机可读存储介质,以提升嵌入式实时操作系统内核的实时性。
第一方面,本申请提供一种虚拟机管理器的配置方法,包括:配置用于存放关键数据的第一内存段;将关键数据存储到第一内存段;将确定的关键数据的虚拟地址到物理地址的映射关系存储到地址转换后援缓冲器TLB的第一组表项内。
在一些实施例中,关键数据包括以下任一项或多项:核间中断产生的数据、虚拟机管理器生成的管理数据、外部中断产生的数据、TICK中断产生的数据、异常管理的数据。
在一些实施例中,第一组表项包括索引的数值依次增加的多个表项;或第一内存段包括物理地址依次增加的内存空间。
在一些实施例中,还包括:获取TLB的表项的数量、TLB管理的页面的大小;确定关键数据的容量;根据关键数据的容量、TLB管理的页面的大小、TLB的表项的数量,确定第一组表项内的表项的数量。
本申请提供的虚拟机管理器的配置方法,通过配置用于存放关键数据的第一内存段,并将关键数据存储到第一内存段,以及将确定的关键数据的虚拟地址到物理地址的映射关系存储到地址转换后援缓冲器TLB的第一组表项内,实现了将关键数据的虚拟地址到物理地址的映射关系设定为静态映射,在虚拟机管理器运行期间,可以实现访问TLB获取关键数据的虚拟地址到物理地址的映射关系的零脱靶,进而提高了虚拟机管理器的实时性。
第二方面,本申请提供一种用于虚拟机管理器的TLB管理方法,虚拟机管理器根据第一方面任一项的配置方法配置;管理方法包括:根据被访问数据的虚拟地址,获取被访问数据的虚拟地址到物理地址的静态映射关系,其中,被访问数据为关键数据,静态映射关系存储在第一组表项内,被访问数据的物理地址位于第一内存段。
在一些实施例中,还包括:根据被访问数据的虚拟地址,获取被访问数据的虚拟地址到物理地址的动态映射关系,其中,被访问数据为非关键数据,动态映射关系存储在TLB的第二组表项内,其中,第一组表项与第二组表项不重叠;非关键数据的物理地址位于第二内存段,第一内存段与第二内存段不重叠。
在一些实施例中,还包括:根据被访问数据的虚拟地址,确定TLB脱靶;获取被访问数据的虚拟地址到物理地址的动态映射关系;将确定的被访问数据的虚拟地址到物理地址的动态映射关系存储到TLB的第二组表项内;其中,被访问数据为非关键数据,第一组表项与第二组表项不重叠;非关键数据的物理地址位于第二内存段,第一内存段与第二内存段不重叠。
本申请提供的用于虚拟机管理器的TLB管理方法,在虚拟机管理器运行期间,可以实现访问TLB获取关键数据的虚拟地址到物理地址的映射关系的零脱靶,以及可以实现访问TLB获取非关键数据的虚拟地址到物理地址的映射关系的命中率大致与现有的管理方法一致,进而整体上提高了访问TLB获取数据的虚拟地址到物理地址的映射关系的命中率,进而提高了虚拟机管理器的实时性。如此,通过TLB管理,实现了关键数据和非关键数据分别针对TLB表项的不同使用方法,对TLB进行了资源优化管理,提高了针对核心态数据的处理能力,进而提高了虚拟机管理器的实时性。
第三方面,本申请提供一种嵌入式实时操作系统,运行在处理器上,嵌入式实时操作系统包括虚拟机管理器,虚拟机管理器根据第一方面任一项的配置方法配置;虚拟机管理器用于执行第二方面任一项的TLB管理方法。
第四方面,本申请提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,根据第一方面任一项的配置方法配置;
处理器,用于执行存储器上所存储的程序时,实现如第二方面任一项的TLB管理方法。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项的配置方法或如第二方面任一项的TLB管理方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
以下参照附图来进一步说明本申请的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1为本申请实施例的嵌入式实时操作系统及其处理器的架构示意图;
图2为本申请实施例的虚拟机管理器的配置方法的流程示意图;
图3为本申请实施例的用于虚拟机管理器的TLB管理方法的流程示意图;
图4为本申请实施例的电子设备的示意图。
具体实施方式
说明书和权利要求书中的词语“第一、第二、第三等”等用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本申请所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本申请中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
应理解,本申请实施例提供的强实时混合TLB差分管理的技术方案,包括虚拟机管理器的配置方法、用于虚拟机管理器的TLB管理方法、嵌入式实时操作系统、电子设备及计算机可读存储介质及计算机程序产品。由于这些技术方案解决问题的原理相同或相似,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本申请,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义。
随着科技的发展,计算机、手机、平板电脑等电子设备的应用范围越来越广泛。这些电子设备中应用的CPU通常可以运行在用户态和核心态上。
通常,操作系统包括壳层(Shell)和内核(Kernel)。壳层是介于用户定义的应用程序(以下称使用者)和操作系统的内核之间的一个接口。可以认为,壳层是操作系统最外面的一层。壳层管理使用者与操作系统之间的交互,等待使用者的输入,向操作系统解释使用者的输入,并且处理操作系统的输出结果。内核由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成,直接与硬件交互。操作系统的内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等。
嵌入式实时操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统,是一种应用广泛的系统软件,具有高实时性、专用性强、操作方便简单等优点。嵌入式实时操作系统运行在处理器CPU上,处理器通常设置有内存控制器(MemoryController,MC),用于建立二级或三级映射表对内存进行管理。内存管理器(MemoryManagement Unit,MMU)或内存控制器按需将虚拟(内存)地址与物理(内存)地址进行映射,建立二级或三级映射表对内存进行管理。
参考图1所示,本申请实施例的技术方案应用于支持多个实时操作系统(如RTOS221、211)的基本操作系统的内核102,及虚拟机管理器101。
如图1所示,本申请实施例的嵌入式实时操作系统10,运行在CPU20上,嵌入式实时操作系统10包括作为基本操作系统的内核102、虚拟机管理器101,虚拟机管理器101根据下述步骤S11至S16说明的虚拟机管理器的配置方法配置;虚拟机管理器101用于执行下述步骤S21至S23说明的TLB管理方法。
通常,图1示出的多个实时操作系统RTOS,如RTOS 211、221会复用虚拟地址,也即,多虚拟机在用户空间使用同一虚拟地址的应用场景。基本操作系统的内核(Kernel)通常将物理地址空间划分出核心空间和用户空间,并将核心态使用的虚拟地址,如核心态数据310,与核心态使用的物理地址,也即核心空间进行映射;而用户态使用的虚拟地址,如用户态数据320,则按用户的应用程序分配的物理空间,也即用户空间进行映射。
处理器通常还设置有内存管理器(Memory Management Unit,MMU),用于完成虚拟地址到物理地址的映射,也即地址解映射。通常,处理器还设置有地址转换后援缓冲器(又称旁路转换缓冲、转址旁路缓存、页表缓冲)(Translation Look-aside Buffer,TLB),作为主存或内存页表的Cache,存储了当前最可能被访问到的页表项、页表文件(如,虚拟地址到物理地址的转换表)。
处理器CPU或核心态访问数据时,如果TLB中存放着所需的页表项,则称为TLB命中(TLB Hit);如果TLB中没有所需的页表,则称为TLB失败或脱靶(TLB Miss),也即TLB无法完成地址解映射。TLB作为一种高速缓存,可以改善虚拟地址到物理地址的转换速度。使用TLB,CPU可以快速地找到虚拟地址指向的物理地址,而不需要请求RAM内存获取虚拟地址到物理地址的映射关系,如此可以减少页表查询导致的处理器性能下降,提高内核的实时性。另外,在TLB无法完成地址解映射时,MMU或CPU会到内存中查询页表。
综上,MMU硬件用于实现被访问数据的虚拟地址到物理地址之间的解映射。MMU访问TLB,TLB命中(Hit),或者TLB脱靶(Miss)。MMU访问TLB脱靶后,MMU通过访问内存控制器MC,实现虚拟地址到物理地址之间的解映射。针对MMU访问内存控制器MC后提取到的被访问数据的虚拟地址到物理地址之间的映射关系,还会回填TLB。回填时,包括确定被访问数据的虚拟地址对应的表项索引、虚拟地址的偏移地址等步骤,不再赘述。
参照前述说明,TLB作为页目录、页表缓存使用。如,第一级表称为页目录(PageDirectory)。在某型芯片中,TLB具有2^10(1K)个4B长度的表项,可以存储页页面大小为4K的页目录。
当产生TLB脱靶时,进行TLB单项或多项重填。这种TLB脱靶后随机填充的机制,会使得核心态数据中的关键数据在TLB中的映射关系被覆盖,从而影响系统处理中断的能力或系统对异常的处理能力,影响系统的实时性。因此,针对图1所示的硬件CPU上运行的基本操作系统的内核102,或虚拟机管理器101而言,目前的TLB管理方法实现的TLB命中率不能满足内核的强实时性需求。
如图2所示,本申请实施例的虚拟机管理器的配置方法,包括:
S11:配置用于存放关键数据的第一内存段;
S12:将关键数据存储到第一内存段;
S13:将确定的关键数据的虚拟地址到物理地址的映射关系存储到地址转换后援缓冲器TLB的第一组表项内。
以上步骤S11中的关键数据包括以下任一项或多项:核间中断产生的数据、虚拟机管理器生成的管理数据、外部中断产生的数据、TICK中断产生的数据、异常管理的数据。这里的外部中断指操作系统的外部,如各种硬件资源导致的中断。
以上步骤S13中的第一组表项包括索引的数值依次增加的多个表项。第一组表项构成下述的TLB静态集,作为从TLB条目中划分出来的条目的集合,用于实施内存页的静态映射关系,系统在运行期间,对静态集不进行二次填充。
以上步骤S13中的第一内存段包括物理地址依次增加的内存空间,这里物理地址依次增加,是指第一内存段对应的物理地址的索引值依次增加。
如图2所示,本申请实施例的虚拟机管理器的配置方法,还包括:
S14:获取TLB的表项的数量、TLB管理的页面的大小;
S15:确定关键数据的容量;
S16:根据关键数据的容量、TLB管理的页面的大小、TLB的表项的数量,确定第一组表项内的表项的数量。
在一些实施例中,步骤S14和步骤S15可以并行执行,还可以互换顺序执行。步骤S15中确定关键数据的容量之后,前述步骤S11可以从前述的划分出的核心空间的物理地址中配置用于存放关键数据的第一内存段。
以上步骤S16中,根据关键数据的容量、TLB管理的页面的大小、TLB的表项的数量,确定的第一组表项内的表项的数量与TLB管理的页面的大小的乘积不小于关键数据的容量。
如图3所示,本申请实施例的用于虚拟机管理器的TLB管理方法,虚拟机管理器根据前述的虚拟机管理器的配置方法配置;管理方法包括:
S21:根据被访问数据的虚拟地址,控制MMU访问TLB,并获取被访问数据的虚拟地址到物理地址的静态映射关系,其中,被访问数据为关键数据,静态映射关系存储在第一组表项内,被访问数据的物理地址位于第一内存段。
S22:根据被访问数据的虚拟地址,如,控制MMU访问TLB,并获取被访问数据的虚拟地址到物理地址的动态映射关系,其中,被访问数据为非关键数据,动态映射关系存储在TLB的第二组表项内,其中,第一组表项与第二组表项不重叠;非关键数据的物理地址位于第二内存段,第一内存段与第二内存段不重叠。
以上的第二组表项构成下述的TLB动态集,是所有TLB条目在排除TLB静态集后剩余的条目的集合,其功能与传统的TLB一致,用于页目录、页表项缓存,并实时地进行随机回填或动态刷新。
S23:根据被访问数据的虚拟地址,控制MMU访问TLB,并确定TLB脱靶;控制MMU访问MC,并获取被访问数据的虚拟地址到物理地址的动态映射关系;将确定的被访问数据的虚拟地址到物理地址的动态映射关系存储到TLB的第二组表项内;其中,被访问数据为非关键数据,第一组表项与第二组表项不重叠;非关键数据的物理地址位于第二内存段,第一内存段与第二内存段不重叠。
以上步骤S21、步骤S21、步骤S21分别是内核102根据被访问数据的虚拟地址,确定被访问数据的虚拟地址到物理地址的映射关系的3种情形。其中,步骤S21实现访问TLB获取关键数据的虚拟地址到物理地址的映射关系,为零脱靶;步骤S22实现访问TLB获取非关键数据的虚拟地址到物理地址的映射关系,其命中率与现有技术中的管理方式大致相同;步骤S23实现访问TLB失败后,通过MC获取非关键数据的虚拟地址到物理地址的映射关系并回填TLB,以动态刷新TLB的第二组表项。
本申请实施例的电子设备包括处理器、运行在该处理器上的基本操作系统,在开发该基本操作系统的内核时,首先确定高频访问、实时性要求高的核心态数据作为关键数据,确定关键数据的清单及待占用的内存空间的大小。这些核心态会高频访问、实时性要求高的关键数据包括:核间中断产生的数据、虚拟机管理器生成的管理数据、外部中断产生的数据、TICK中断产生的数据、异常管理的数据。
本申请实施例的电子设备包括处理器、运行在该处理器上的基本操作系统,在开发该基本操作系统的内核(Kernel)时,根据关键数据待占用的内存空间的大小,在内存空间中配置对应的内存段,以存放前述的关键数据。
如,针对某型处理器,在GCC内,利用该处理器支持的指令指定某段内存空间。以及,在生成二进制时,在链接脚本中针对指定的该段内存空间,使用特定的段名,如.kerndata来标识该内存段。
如此,后续可以使用这段物理内存地址作为关键数据的存放位置,将关键数据放置到.kerndata段,使得核心针对关键数据访问的实时响应能力进一步提升。
参照前述说明,本申请实施例的内核趋向轻量化强实时性,因此,在物理内存的一个较小的位域内,就可以存储该虚拟机管理器运行时所使用的核心态数据,包括关键数据和非关键数据。并且,这些核心态数据,并不会开放给各虚拟机上运行的用户应用程序来显式调用,也即,用户的应用程序运行时,所访问的用户态数据不包括前述的核心态数据。
本申请实施例的电子设备包括处理器、运行在该处理器上的基本操作系统,在开发该基本操作系统的内核时,将关键数据分配到前述指定的某段内存空间,以存放该关键数据。如,针对某型处理器,在GCC内,在为关键数据分配内存空间时,使用编译器支持的函数,如__attribute__((__section__(".kerndata")))将关键数据划分到前述的具有.kerndata标识的内存段,也即,指定//配置关键数据在内存段中的物理地址。在GCC中,section是命令__attribute__的编译属性之一,用于改变所声明或定义的函数或数据的特性。
参照前述说明,关键数据存放的物理地址与关键数据的虚拟地址之间的映射关系,由MC确定。以及,可能存在的非关键数据存放的物理地址与关键数据的虚拟地址之间的映射关系,也由MC确定。
本申请实施例的电子设备上电运行后,在系统初始化时,该基本操作系统的内核访问内存控制器确定关键数据的虚拟地址到物理地址的静态映射关系,利用该处理器支持的指令将静态映射关系写入到TLB的第一组表项内。在初始化时,还可以利用该处理器支持的指令将TLB的第二组表项清空(Flush)。
以上,内核在初始化时,将关键数据的虚拟地址到物理地址的静态映射关系存储在TLB的第一组表项内;将可能存在的非关键数据的虚拟地址到物理地址的映射关系存储在TLB的第二组表项内。如此,可以利用MMU直接访问TLB这个机制,来实现TLB针对关键数据的访问零脱靶。以及,利用MMU直接访问TLB这个机制,来实现TLB针对非关键数据的访问的脱靶率与目前的管理机制大致相同。
这时,第一组表项与第二组表项不重叠,如此,实现针对第一组表项与第二组表项,分别采取不同的管理方法,实现混合差分管理。
本申请实施例的电子设备上电运行时,运行在该处理器上的基本操作系统的内核,采用下述的步骤获取关键数据的虚拟地址到物理地址的映射关系:
MMU访问TLB,从第一组表项内获取被访问数据的虚拟地址到物理地址的静态映射关系;其中,被访问数据为关键数据,被访问数据的物理地址位于预先指定的第一内存段。
以上,第一组表项内记载的关键数据的虚拟地址到物理地址的映射关系在整个内核运行期间,保持不变,为静态映射关系。也即,关键数据的数量保持不变,各关键数据存储的物理地址保持不变,以及关键数据被访问的次数可以不低于预先设定的阈值。
本申请实施例的电子设备上电运行时,运行在该处理器上的基本操作系统的内核,采用下述的步骤获取非关键数据的虚拟地址到物理地址的动态映射关系:
MMU访问TLB,从第二组表项内获取被访问数据的虚拟地址到物理地址的动态映射关系;其中,被访问数据为非关键数据,被访问数据的物理地址位于预先指定的第二内存段,第二内存段与第一内存段不重叠;或
MMU访问TLB,从第二组表项内搜索不到被访问数据的虚拟地址,并从内存控制器中获取被访问数据的虚拟地址到物理地址的动态映射关系,并将动态映射关系利用该处理器支持的指令关系写入到TLB的第二组表项内的任一表项(随机填充,或全部Flush之后填充)或指定表项内(只填充空表项)。
以上,第二组表项内记载的非关键数据(也是核心态访问的数据)的虚拟地址到物理地址的映射关系在整个内核运行期间动态变化,为动态映射关系。也即,非关键数据的数量动态变化,各非关键数据存储的物理地址动态变化,以及非关键数据被访问的次数随机变化。
参照前述说明,非关键数据保存在指定的第二段内存中;非关键数据是在内核运行过程中动态生成的,通常不能也没有必要在开发阶段预先确定。
以上,利用该处理器支持的指令关系将非关键数据的虚拟地址到物理地址的映射关系写入到TLB的第二组表项内时,可以通过引用TLB的表项的索引(Index),来避免将非关键数据的虚拟地址到物理地址的映射关系写入到TLB的第一组表项内,也即TLB的第一组表项内记载的关键数据的虚拟地址到物理地址的映射关系不会被错误地覆盖。如,在TLB的表项的数量为64时,可以采用6bit的一个二进制的变量,来指定表项的索引(Index)。
记第一组表项的数量为A,记第二组表项的数量为B,目前的管理方式下,TLB针对数据访问的命中率为C,其中,C小于100%。采用前述的强实时混合TLB差分管理方法,第一组表项的命中率为100%,这时,具有(A+B)个表项的TLB的命中率为:(A*100%+B*C)/(A+B)=(A*C+B*C+A*(100%-C))/(A+B)>C,也即,大于目前的管理方式下,TLB针对数据访问的命中率C。
如此,将关键数据的虚拟地址到物理地址的静态映射关系存储的TLB的第一组表项内,有利于提高内核、虚拟机管理器及嵌入式实时操作系统的实时性。
在一些实施例中,本申请实施例的TLB管理方法集成在前述的虚拟机管理器中,由虚拟机管理器控制MMU,通过访问TLB或MC,来获取核心态的关键数据或非关键数据的物理地址。
本申请实施例的电子设备,包括:设置有处理器、MMU及TLB的芯片,针对该芯片进行二次开发生成的内核。也即,本申请实施例的电子设备针对特定领域,提供可实施前述的强实时混合TLB差分管理方法的嵌入式实时操作系统的内核,该内核运行在硬件CPU上,为基本操作系统。因该内核轻量级化且高实时性,又称为内核。
在针对该芯片二次开发前述的内核时,利用各芯片二次开发支持的编译器,如基于Linux的GCC来配置该内核,并协调该内核及虚拟机管理器执行芯片支持的TLB指令,实施前述的强实时混合TLB差分管理方法。
如图1所示,本发明实施例的电子设备在配置内核时,利用运行有GCC编译器的宿主机2000对目标机1000上运行的实时操作系统进行配置。
本申请实施例的TLB管理方法作为一种强实时混合TLB差分管理方法,基于转址旁路缓存TLB的随机填充特性,将TLB条目划分为静态集和动态集,针对静态集和动态集的刷新方法进行差异化管理,通过静态集使系统核心高频数据的映射关系零重填,从而提升系统的实时性及核心空间的处理能力。
以上,将TLB条目划分为静态集和动态集,TLB静态集负责核心高频关键性数据零脱靶,TLB动态集负责核心空间和用户空间常规性页目录页表缓冲。当系统产生TLB脱靶,进行TLB条目更新时不会覆盖TLB静态集,有利于提升实时内核对中断、异常的处理能力,强化系统实时性能。
在一些芯片中,TLB具备64个条目。这时,通常分配8个条目给TLB静态集,如,TLB条目中的前8个,则剩余的56个条目给TLB动态集。该分配规则既能满足实时系统的核心态数据内存使用需求,又能兼顾整体TLB命中率和用户态程序的运行效率。
以4K内存分页为例,参照前述说明,具备8个条目的TLB静态集,最多可以支持32K内存的静态映射,也即提供32K的关键数据的容量。如果32K内存空间不满足使用需求,可以尝试调整单个内存页的大小,或调整TLB静态集的条目的数量,以使TLB静态集映射更宽的物理内存空间。
在一些实施例中,使用该段内存空间,生成二进制时,在链接脚本中使用特定的段名,如.kerndata来标识该内存段;在分配内存空间时,使用编译器支持的函数,如__attribute__((__section__(".kerndata")))将核心态的高频关键性数据数据划分到前述的具有.kerndata标识的内存段。如,系统将外部中断、TICK中断、核间中断和异常管理数据,以及虚拟机管理数据放置到具有.kerndata标识的内存段。至此,实现了将核心态的关键数据将存放在具有.kerndata标识的内存段。如此,使得系统核心响应能力进一步提升。
在一些实施例中,系统内核通过虚拟地址访问该段内存空间。由于具备TLB静态映射关系,将实现TLB静态集零脱靶,提升地址转换效率。
在一些实施例中,全部的非.kerndata段空间映射关系共同使用TLB动态集。可以通过操作指定索引的TLB条目,使TLB动态集中部分条目参与随机填充。如此,当面临TLB脱靶时,可以主动保护TLB静态集中的内容不被刷新或覆盖。
以上,依据转址旁路缓存TLB使用特性,将物理硬件、物理核心的TLB条目预先划分为静态集和动态集,使得静态集用于映射核心态数据,使得动态集用于映射用户态数据,如此,通过静态集使系统核心高频数据的映射关系实现零重填,通过以上针对TLB条目的差分管理方法,提升内核及虚拟机管理器的实时性和核心内存空间的处理能力。
如此,针对TLB动态集,内核保持TLB单项或多项重填的机制不变。针对TLB静态集,内核不会触发TLB单项或多项重填。进而避免发生TLB中静态集记载的关键的空间地址映射关系的页表项被覆盖,支持系统中断、异常处理能力,实现系统的实时性。
在一些实施例中,针对具备64个条目(编号或索引为0~63)TLB的某CPU,将编号或索引为n+0~n+7的8个条目配置为TLB静态集,并向静态集内写入静态映射关系;系统在运行期间,采用前述的方法管理TLB。将剩余的56个条目,如,编号或索引为n+0~n+7的条目配置为TLB动态集,以向动态集内写入动态映射关系;系统在运行期间,采用前述的方法管理及使用。
以转址旁路缓存TLB具有64条目为例。TLB结构划分如表1所示:
Figure BDA0003614457500000091
向静态集内写入静态映射关系时,以4K内存分页为例,具备8个条目的TLB静态集,可以支持32K内存静态映射。在初始化时,MMU或者其他执行主体将硬件地址空间划分出指定地址范围的32K空间,将其虚拟地址与物理地址进行映射,并将映射关系填充到TLB静态集中。
本发明实施例提供的应用于嵌入式实时操作系统的TLB管理方法可以应用在设置有TLB的单核或多核的处理器(如龙芯系列处理器、进阶精简指令集机器(Advanced RISCMachine,Arm)、80X86处理器、基于无互锁流水线级的微处理器(Million InstructionsPer Second,MIPS)的CPU等)的电子设备中。该处理器可以应用在服务器中,也可以应用在终端上。终端可以是用户设备(User Equipment,UE)、具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(MobileStation,MS)等。
如图4所示,本申请实施例的电子设备,包括处理器910、通信接口930、存储器920和通信总线,其中,处理器910、通信接口930、存储器920通过通信总线完成相互间的通信;存储器920,用于存放计算机程序;处理器910,根据前述的配置方法配置;处理器910,用于执行存储器上所存储的程序时,实现如前述的TLB管理方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由于上述实施例中的电子设备的各器件解决问题的实施方式以及有益效果可以参见图2或图3所示的实施例中的各步骤来实现,因此,本发明实施例提供的电子设备的具体工作过程和有益效果,在此不复赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的方法。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。

Claims (10)

1.一种虚拟机管理器的配置方法,其特征在于,包括:
配置用于存放关键数据的第一内存段;
将所述关键数据存储到所述第一内存段;
将确定的所述关键数据的虚拟地址到物理地址的映射关系存储到地址转换后援缓冲器TLB的第一组表项内。
2.根据权利要求1所述的配置方法,其特征在于,
所述关键数据包括以下任一项或多项:核间中断产生的数据、虚拟机管理器生成的管理数据、外部中断产生的数据、TICK中断产生的数据、异常管理的数据。
3.根据权利要求1所述的配置方法,其特征在于,
所述第一组表项包括索引的数值依次增加的多个表项;
或所述第一内存段包括物理地址依次增加的内存空间。
4.根据权利要求1所述的配置方法,其特征在于,还包括:
获取所述TLB的表项的数量、所述TLB管理的页面的大小;
确定所述关键数据的容量;
根据所述关键数据的容量、所述TLB管理的页面的大小、所述TLB的表项的数量,确定所述第一组表项内的表项的数量。
5.一种用于虚拟机管理器的TLB管理方法,其特征在于,
所述虚拟机管理器根据权利要求1至4中任一项所述的配置方法配置;
所述管理方法,包括:
根据被访问数据的虚拟地址,获取所述被访问数据的虚拟地址到物理地址的静态映射关系,其中,所述被访问数据为关键数据,所述静态映射关系存储在第一组表项内,所述被访问数据的物理地址位于所述第一内存段。
6.根据权利要求5所述的管理方法,其特征在于,还包括:
根据被访问数据的虚拟地址,获取所述被访问数据的虚拟地址到物理地址的动态映射关系,其中,所述被访问数据为非关键数据,所述动态映射关系存储在所述TLB的第二组表项内,其中,所述第一组表项与所述第二组表项不重叠;所述非关键数据的物理地址位于第二内存段,所述第一内存段与所述第二内存段不重叠。
7.根据权利要求5所述的管理方法,其特征在于,还包括:
根据被访问数据的虚拟地址,确定TLB脱靶;
获取所述被访问数据的虚拟地址到物理地址的动态映射关系;
将确定的所述被访问数据的虚拟地址到物理地址的动态映射关系存储到所述TLB的第二组表项内;其中,所述被访问数据为非关键数据,所述第一组表项与所述第二组表项不重叠;所述非关键数据的物理地址位于第二内存段,所述第一内存段与所述第二内存段不重叠。
8.一种嵌入式实时操作系统,其特征在于,运行在处理器上,
所述嵌入式实时操作系统包括虚拟机管理器,
所述虚拟机管理器根据权利要求1至4中任一项所述的配置方法配置;
所述虚拟机管理器用于执行如权利要求5至7中任一项所述的TLB管理方法。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,根据权利要求1至4中任一项所述的配置方法配置;
所述处理器,用于执行存储器上所存储的程序时,实现如权利要求5至7中任一项所述的TLB管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的配置方法或如权利要求5至7中任一项所述的TLB管理方法。
CN202210442327.9A 2022-04-25 2022-04-25 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 Active CN114816666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210442327.9A CN114816666B (zh) 2022-04-25 2022-04-25 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210442327.9A CN114816666B (zh) 2022-04-25 2022-04-25 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统

Publications (2)

Publication Number Publication Date
CN114816666A true CN114816666A (zh) 2022-07-29
CN114816666B CN114816666B (zh) 2023-03-31

Family

ID=82507083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210442327.9A Active CN114816666B (zh) 2022-04-25 2022-04-25 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统

Country Status (1)

Country Link
CN (1) CN114816666B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934587A (zh) * 2023-03-15 2023-04-07 瀚博半导体(上海)有限公司 内存管理单元和内存管理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7275136B1 (en) * 2002-09-06 2007-09-25 Vmware, Inc. Virtualization system for computers with a region-based memory architecture
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
CN103907099A (zh) * 2011-11-02 2014-07-02 华为技术有限公司 高速缓存一致性计算机系统中未缓存的短地址转换表
US20170249261A1 (en) * 2016-02-29 2017-08-31 Intel Corporation System for address mapping and translation protection
CN107851067A (zh) * 2015-08-14 2018-03-27 高通股份有限公司 存储器间隙的有效利用
WO2019173937A1 (en) * 2018-03-12 2019-09-19 Intel Corporation Improved memory-mapped input/output (mmio) region access
CN110348252A (zh) * 2018-04-02 2019-10-18 华为技术有限公司 基于信任区的操作系统和方法
US20190340123A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Controller for locking of selected cache regions
US20210042228A1 (en) * 2019-07-17 2021-02-11 Intel Corporation Controller for locking of selected cache regions

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7275136B1 (en) * 2002-09-06 2007-09-25 Vmware, Inc. Virtualization system for computers with a region-based memory architecture
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
CN103907099A (zh) * 2011-11-02 2014-07-02 华为技术有限公司 高速缓存一致性计算机系统中未缓存的短地址转换表
CN107851067A (zh) * 2015-08-14 2018-03-27 高通股份有限公司 存储器间隙的有效利用
US20170249261A1 (en) * 2016-02-29 2017-08-31 Intel Corporation System for address mapping and translation protection
WO2019173937A1 (en) * 2018-03-12 2019-09-19 Intel Corporation Improved memory-mapped input/output (mmio) region access
CN110348252A (zh) * 2018-04-02 2019-10-18 华为技术有限公司 基于信任区的操作系统和方法
US20190340123A1 (en) * 2019-07-17 2019-11-07 Intel Corporation Controller for locking of selected cache regions
US20210042228A1 (en) * 2019-07-17 2021-02-11 Intel Corporation Controller for locking of selected cache regions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIANNAN OUYANG 等: "Shoot4U: Using VMM Assists to Optimize TLB Operations on Preempted vCPUs", 《ACM SIGPLAN NOTICES》 *
李存 等: "基于ARM存储结构的MP3程序性能优化", 《计算机应用与软件》 *
郝继锋: "嵌入式虚拟机管理器内存虚拟化方法研究", 《航空计算技术》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934587A (zh) * 2023-03-15 2023-04-07 瀚博半导体(上海)有限公司 内存管理单元和内存管理方法

Also Published As

Publication number Publication date
CN114816666B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
US20210374069A1 (en) Method, system, and apparatus for page sizing extension
US9529611B2 (en) Cooperative memory resource management via application-level balloon
US9836409B2 (en) Seamless application access to hybrid main memory
US6789156B1 (en) Content-based, transparent sharing of memory units
US7730278B2 (en) Chunk-specific executable code for chunked java object heaps
US7716449B2 (en) Efficient chunked java object heaps
US9229878B2 (en) Memory page offloading in multi-node computer systems
US7913040B2 (en) Managing working set use of a cache via page coloring
EP3740871B1 (en) Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
WO2019133222A1 (en) Systems, methods, and apparatuses for patching pages
US20170220482A1 (en) Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations
CN114816666B (zh) 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统
US20140149674A1 (en) Performance and Energy Efficiency While Using Large Pages
US11403213B2 (en) Reducing fragmentation of computer memory
WO2023241655A1 (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
US20220327063A1 (en) Virtual memory with dynamic segmentation for multi-tenant fpgas
CN117271107A (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