CN115934243A - 用于控制对物理地址空间的访问的系统及方法 - Google Patents

用于控制对物理地址空间的访问的系统及方法 Download PDF

Info

Publication number
CN115934243A
CN115934243A CN202210980411.6A CN202210980411A CN115934243A CN 115934243 A CN115934243 A CN 115934243A CN 202210980411 A CN202210980411 A CN 202210980411A CN 115934243 A CN115934243 A CN 115934243A
Authority
CN
China
Prior art keywords
physical address
access
address space
memory management
management unit
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
CN202210980411.6A
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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
Priority claimed from US17/883,541 external-priority patent/US20220382577A1/en
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN115934243A publication Critical patent/CN115934243A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种用于控制对物理地址(PA)空间的访问的系统及方法,其中该系统包括:执行多个虚拟机的多个处理电路,该物理地址空间的一给定区域专用于寻址该多个虚拟机;由该物理地址空间寻址的多个系统资源;耦接于相应的处理电路的多个存储器管理单元(MMU),给定MMU用于根据该给定MMU的配置设置将访问请求中指示的虚拟地址转换为被请求的物理地址;以及多个存储器保护单元(MPU),给定MPU用于根据许可过滤器中指示请求VM是否可访问该被请求的物理地址的信息允许或拒绝该访问请求。实施本发明实施例可提供一种低复杂度的访问控制方案。

Description

用于控制对物理地址空间的访问的系统及方法
技术领域
本发明涉及对计算系统的存储器进行保护的计算系统,更进一步地涉及用于控制对物理地址空间的访问的系统及方。
背景技术
虚拟机监视器(hypervisor)使多个操作系统能够在单个物理机器上并行运行。这些操作系统,称为“客户(guest)操作系统”,可以包括操作系统的多个实例以及不同的操作系统。多个虚拟机(Virtual Machine,VM)可以在虚拟机监视器上运行。每一个VM运行一个客户操作系统来管理对VM的资源分配。虚拟机监视器通常使用存储器管理单元(MemoryManagement Unit,MMU)来支持VM的地址转换和存储器保护。在多处理器系统中,每一个处理器核(core)都可以有自己的MMU。
MMU负责将虚拟地址转换为物理地址。MMU可以包括一个或多个转换后备缓冲器(Translation Look-aside Buffer,TLB)以存储虚拟地址与其对应的物理地址之间的映射。一些MMU提供两级(two stage)存储器转换机制。来自运行在VM上的应用程序的每次存储器访问都在MMU中进行两级转换。客户操作系统配置将虚拟地址映射到中间物理地址的第一级转换表。虚拟机监视器配置将中间物理地址映射到物理地址的第二级转换表。因此,两级转换使虚拟机监视器能够控制客户对存储器的视角并限制客户可以访问的物理存储器。
MMU硬件可能是复杂且昂贵的。MMU的管理通常需要高度复杂的软件,并对存储器的使用和性能造成负面影响。此外,在多个设备可以访问同一存储器位置的共享存储器环境中,复杂性大大增加,安全性可能会受到影响。因此,需要为虚拟机系统开发一种低复杂度和低开销的存储器保护方案。
发明内容
本发明提供用于控制对物理地址空间的访问的系统及方法,可提供一种低复杂度的访问控制方案。
在一个实施例中,本发明提供一种用于控制对物理地址(PA)空间的访问的系统,包括:执行多个虚拟机的多个处理电路,其中该物理地址空间的一给定区域专用于寻址该多个虚拟机;由该物理地址空间寻址的多个系统资源;耦接于相应的处理电路的多个存储器管理单元(MMU),其中给定MMU用于根据该给定MMU的配置设置将来自请求处理电路的访问请求中指示的虚拟地址转换为被请求的物理地址;以及多个存储器保护单元(MPU),其中耦接于分配有该被请求的物理地址的目标系统资源的给定MPU用于根据许可过滤器中指示该请求处理电路上运行的请求VM是否可访问该被请求的物理地址的信息允许或拒绝该访问请求。
在另一个实施例中,一种用于控制对物理地址(PA)空间的访问的方法,由包括多个处理电路和多个系统资源的系统执行,该方法包括:从请求处理电路接收访问虚拟地址的请求,其中该请求处理电路执行请求虚拟机,其中该物理地址空间的一给定区域专用于寻址该系统中执行的多个虚拟机;由耦接于该请求处理电路的给定存储器管理单元(MMU)根据该给定MMU的配置设置将该虚拟地址转换为该请求处理电路可访问的被请求的物理地址;以及由耦接于分配有该被请求的物理地址的目标系统资源的给定MPU根据许可过滤器中指示该请求处理电路上运行的请求VM是否可访问该被请求的物理地址的信息允许或拒绝该请求。
附图说明
图1是图标根据一个实施例的系统100的框图。
图2是图示根据一个实施例的过程200的图。
图3是图示根据一个实施例的管理存储器保护的图。
图4是图示根据一个实施例的用于第二级MMU管理器241和硬件VM管理器251的配置450的图。
图5是图示根据一个实施例的VM和PA空间之间的地址映射的图。
图6是图示根据一个实施例的VM存储器保护的图。
图7是图示根据一个实施例的用于控制对PA空间的访问的方法700的流程图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属技术领域具有通常知识者应可理解,硬件制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”及“包括”为一开放式的用语,故应解释成“包含但不限定于”。“大体上”或“大约”是指在可接受的误差范围内,所属技术领域具有通常知识者能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”或“耦合”一词在此包含任何直接及间接的电性连接手段。因此,若文中描述一第一装置耦接在一第二装置,则代表该第一装置可直接电性连接于该第二装置,或通过其它装置或连接手段间接地电性连接至该第二装置。以下所述为实施本发明的较佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当视之后附的权利要求书所界定者为准。
接下面的描述为本发明预期的最优实施例。这些描述用于阐述本发明的大致原则而不应用于限制本发明。本发明的保护范围应在参考本发明的权利要求书的基础上进行认定。
本发明的实施例提供访问控制机制,该访问控制机制使用两级MMU和存储器保护单元(Memory Protection Unit,MPU)的组合来控制对物理地址(Physical Address,PA)空间的访问。该系统使用诸如寄存器之类的硬件来配置预定数量的虚拟机(VM)和专用于寻址VM的给定(given)PA空间区域。这些VM在本文中被称之为硬件VM或简单地被称为VM。每一个VM被分配有特定的PA块(PA block)或段(segment)并可被配置特定的域(domain)许可(permission)。VM为传统的MMU执行的访问控制提供了一种低复杂度的替代方案或补充。VM还合并MMU执行的主机侧(master-side)访问控制和MPU执行的目标侧(target-side)访问控制的优点。
在一个实施例中,MMU管理器管理第二级MMU的配置;例如,配置主机对物理地址的访问权限(也即,配置哪个主机有权限访问哪一个物理地址)。此外,硬件VM管理器管理MPU(更具体地,相应的许可过滤器(filter))的配置;例如,配置VM对物理地址的访问权限(也即,配置哪个VM有权限访问哪一个物理地址)。在一个实施例中,对第二级MMU或MPU的访问控制中的任意之一可被启用(enabled)或被禁用(disabled)。
图1是图标根据一个实施例的系统100的框图。系统100包括多个主机(master),例如110a,110b,110c等,它们统称为主机。在本文中,主机是发起访问目标系统资源请求(诸如存储器、外围设备等)的硬件组件。主机的示例包括但不限于以下处理电路中的一个或多个:中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics ProcessingUnit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、多媒体处理器、人工智能(Artificial Intelligence,AI)处理单元(Artificial intelligence Processing Unit,APU)、直接存储器访问(Direct Memory Access,DMA)控制,和/或其他通用和/或专用处理电路。
在一个实施例中,主机可以是片上系统(System-on-a-Chip,SoC)平台的一部分。可以理解,图1的实施例为了说明的目的而被简化。具体实现中,可以包括额外的硬件组件,并且可以省略图1中所示的一些组件。
在一个实施例中,主机具有访问目标系统资源(例如,存储器120)的权限。存储器120可以是系统存储器或系统100的主存储器。存储器120可以包括随机存取存储器(RandomAccess Memory,RAM)装置,例如动态随机存取存储器(Dynamic Random Access Memory,DRAM)装置、闪存装置和/或其他易失性或非易失性存储器。主机可以通过总线180或其他形式的互连访问存储器120。对存储器120的访问是在存储器接口控制器125的控制下执行的。在一个实施例中,主机用于执行存储在存储器120中的指令以运行应用程序并执行系统活动。
在一个实施例中,主机具有访问目标系统资源(例如,外围设备140)的权限,外围设备140还可被称之为输入/输出(I/O)设备,例如键盘、扬声器、麦克风、显示器、相机等。可在外围接口控制器145的控制下通过总线180或其他形式的互连访问外围设备140。外围设备140可以包括I/O设备并且可以是存储器映射的。例如,外围接口控制器145可以包括或控制映射到物理地址范围的设备控制器,在该物理地址范围内I/O数据速度、格式等在主机和设备控制器之间传递。
在一个实施例中,每一个主机使用存储器管理单元(MMU)执行两级地址转换。MMU中的一部分可被称之为系统SMMU。因此,应当理解,本文所示或描述的MMU可包括一个或多个SMMU。
第一级MMU115将虚拟地址(Virtual Address,VA)空间转换为中间物理地址(Intermediate Physical Address,IPA)空间,且第二级MMU116将IPA空间转换为所有系统资源(例如,存储器120和外围设备140)均可被寻址的物理地址(Physical Address,PA)空间。VA空间到IPA空间的映射(也即,第一级MMU115)受控于VM(例如,VM130a,130b,130c等)上运行的客户操作系统,且IPA空间到PA空间的映射(也即,第二级MMU116)受控于用于管理系统100的硬件资源的虚拟机监视器240或主机操作系统。虚拟机监视器240可在主机操作系统上运行。或者,虚拟机监视器240可为主机操作系统的一部分。在一个实施例中,多个主机可共享相同的MMU,例如,多个DMA控制可共享相同的SMMU来执行系统100中的设备之间的数据传输。
在一个实施例中,每一个第二级MMU116根据可配置的设置(setting)提供主机侧访问控制,该设置指定主机对PA空间中的页(例如,4K-byte块)的访问权限,也即设定哪个主机可访问PA空间中的哪个页。可配置的设置由虚拟机监视器240中的第二级MMU管理器241管理。在一个实施例中,虚拟机监视器240包括PA检验器242,其验证访问请求中被请求的PA的有效性。如果被请求的PA验证通过,则访问请求被传递到目标侧访问控制。
目标侧访问控制由MPU执行,例如图1中的MPU127和MPU147。存储器接口控制125包括MPU127,其是包括本地存储器的硬件电路,用于存储每一个VM(关于PA空间)的访问权限信息。访问权限信息可以存储在称为许可过滤器126的数据结构中。MPU127还可以存储VM和主机之间的映射关系(例如,分配关系)。不同的主机可被映射到相同的VM(也即,共享的VM)或不同的VM。在一个实施例中,许可过滤器126存储指示,该指示为对应的VM和主机指示一个或多个地址范围,其中一个或多个地址范围包含VM和分配有VM的主机可访问的物理地址。对于每一个地址范围,许可过滤器126可指示访问的权限,例如,读,写,执行等。地址范围可以是固定大小的地址块或可配置大小的地址段。MPU127基于存储在对应的许可过滤器126中的信息来准许或拒绝对物理地址的访问请求。
在一个实施例中,外围接口控制器145包括MPU147,MPU147执行与MPU127类似的功能。MPU147使用许可过滤器146存储VM和主机的访问权限信息,访问权限是关于分配给外围设备140的控制器的PA空间中的区域。MPU127和147连同许可过滤器126和127通过限制VM可访问的物理存储器和存储器映射的资源来提供目标侧保护。该基于硬件的存储器保护机制具有低的复杂性和低的开销。MPU127和147以及许可过滤器126和127可由虚拟机监视器240中的硬件VM管理器251配置。在一个实施例中,每一个VM和对应的PA区域、块或段之间的映射关系存储在硬件VM设置252中。例如,在图5的示例中,分配给VM的虚拟地址被映射到扩展的PA区域520(例如,分配给VM0的虚拟地址被映射到扩展的PA区域520中的R0),寻址系统资源(例如,存储器120,外围设备140等)的地址位于物理地址空间510中,因此硬件VM设置252通过存储扩展的PA区域520与物理地址空间510中的块/段之间的映射关系来存储VM和PA块/段之间的映射关系。
图2是图示根据一个实施例的过程200的图,过程200包括响应于访问请求的多级地址映射。开始时,通过主机标识(Master_ID)标识的主机向它的MMU发送访问请求,该访问请求标识一个被请求的虚拟地址(VA)。如结合图1所述,第一级MMU115将VA转换为中间物理地址(IPA)(步骤201),且第二级MMU116将IPA转换为物理地址(PA)(例如,将IPA转换为图5中物理地址空间510中的物理地址)(步骤202)。PA检验器242验证主机允许访问PA(步骤203)。虚拟机监视器240从硬件VM设置252(图1)为分配有该PA的VM识别VM_ID,并且将标识PA、Master_ID和VM_ID的访问请求传递到MPU 127(步骤204),例如在步骤204,虚拟监视器240可从硬件VM设置252中存储的VM和对应的PA区域、块或段之间的映射关系找到第二级MMU116转换后的物理地址对应的VM及对应的VM的VM_ID。MPU127基于许可过滤器126中存储的信息允许或拒绝访问请求(步骤205)。
图3是图示根据一个实施例的管理存储器保护的图。在该实施例中,第二级MMU管理器241管理和配置由第二级MMU116和PA检查器242执行的关于允许每一个主机访问的PA地址的地址转换。在本实施例中,主机包括但不限于CPU、GPU、APU以及多媒体处理器。每一个主机执行一个VM,且不同的主机执行不同的VM。可进一步通过硬件VM管理器251增强由第二级MMU116和PA检查器242提供的存储器保护,硬件VM管理器251管理并配置硬件VM设置252、MPU 127和许可过滤器126。硬件VM管理器251还管理系统中的任何额外的MPU和许可过滤器,为了简化说明,它们在图3和图4的示例中未示出。MPU(以及相应的许可过滤器)提供基于硬件的存储器隔离来阻止每一个主机访问被分配给其他主机的VM。在一个实施例中,MMU和MPU均用于提供基于硬件的存储器隔离来进一步增强系统的安全性。
硬件VM设置252存储VM和PA块/段之间的映射。硬件VM设置252还存储主机和VM之间的映射。因此,在PA检验器242验证一个请求主机(例如,CPU)被允许访问访问请求中的PA后,MPU127执行进一步的验证且许可过滤器126确定运行在请求主机(例如,CPU VM)上的VM是否被允许访问该PA。
在一个实施例中,每一个VM中的PA块大小(block size)(例如,扩展的PA区域520中的PA块大小)大于第二级MMU 116使用的页大小(page size)。例如,PA块大小可以被配置为2兆字节(2MB)、1吉字节(1GB)等。第二级MMU 116使用的页大小可以是4千字节(4KB)。具有小的页大小(例如4KB)的管理访问控制会产生大量开销并降低系统性能。因此,在一些实施例中,可以禁用由第二级MMU 116执行的访问控制以提高系统性能。在这些实施例中,存储器保护可以由MPU和许可过滤器提供。
图4是图示根据一个实施例的用于第二级MMU管理器241和硬件VM管理器251的配置450的图。图4将配置450添加到图3的图表中。虚拟机监视器240可使用配置450来指示第二级MMU管理器241启动或禁用由第二级MMU116执行的主机侧访问控制。类似地,虚拟机监视器240可使用配置450来指示硬件VM管理器251启动或禁用由MPU127和许可过滤器116执行的目标侧访问控制。因此,就访问控制而言,存在三种备选方案。(1)禁用第二级MMU 116,启用MPU 127和许可过滤器126。(2)启用第二级MMU 116,禁用MPU 127和许可过滤器126。(3)启用第二级MMU 116、MPU 127和许可过滤器126。例如,当系统以低性能运行并且MPU127使用的PA块大小大于第二级MMU 116使用的4KB大小时,虚拟机监视器240可以禁用由第二级MMU 116执行的访问控制,以提高系统性能。
在一个实施例中,虚拟机监视器240分析被请求的PA地址来识别访问模式(accesspattern)。例如,当来自主机的所有的被请求的PA地址落入限制的地址访问内,虚拟机监视器240可以启用相应的MPU和许可过滤器来限制对该地址范围的访问。该限制的地址访问可被配置为被单个主机使用,在同一时间由多个主机共享或被多个主机以时分复用的方式使用。
再次参考图1,主机100支持多个VM130。每一个VM130运行用于管理VA空间和管理应用程序的IPA空间分配的客户操作系统。虚拟机监视器240管理VM130,例如,管理VM130的硬件资源的排程。虚拟机监视器240管理IPA空间和用于VM130的扩展的(extended)PA空间之间的映射。如在图5中所示,扩展的PA空间550为寻址系统资源(例如,存储器120,外围设备140等)的PA空间510加上分配给VM130的扩展的PA区域520。扩展的PA区域520被重新映射到(remapped)到专用于寻址VM130的连续的PA地址空间(位于PA空间510中)。
图5是图示根据一个实施例的VM和PA空间之间的地址映射的图。在第二级MMU转换中,分配给VM的虚拟地址被映射到扩展的PA区域520(也即,扩展的PA区域520中的物理地址被用作VM的虚拟地址)。例如,分配给VM0的虚拟地址被映射到R0(为分配给VM0的扩展的PA区域520)。在包括四个VM的示例中,每一个VM分配一个扩展的PA区域,不同的VM分配不同的扩展的PA区域。所有的扩展的PA区域520都是不重叠的并且具有相同的大小。扩展的PA区域520在PA空间510之外;PA空间510和扩展的PA区域520统称为扩展的PA空间550。可以理解,这里描述的存储器保护机制适用于任何数量的VM。
所有的扩展的PA区域520都被重新映射到PA空间510中的重新映射的PA区域530。重新映射的PA区域530专用于寻址VM。重新映射由硬件实施。在一个实施例中,不同的扩展的PA区域520相较于重新映射的PA区域530具有不同的偏移值。偏移值也称之为基地址偏移。例如,分配给VM0的扩展的PA区域(R0)相较于重新映射的PA区域有一个偏移量(S0);更具体地,R0的基地址从重映射的PA区域530的基地址偏移S0。分配给VM1的扩展的PA区域相较于重新映射的PA区域530有偏移量(S1),其中S1=S0+R0的大小。可以类似地计算分配给VM2和VM3的扩展的PA区域的偏移量。以R0为例,将R0重新映射到重新映射的PA区域530为将R0中的每一个地址移位S0。可以类似地计算其他扩展的PA区域的重新映射。
在一个实施例中,分配给VM的扩展的PA区域520可不立即与PA空间510相邻;或者,分配给VM的扩展的PA区域520可立即与PA空间510相邻。如图5所示,在一个实施例中,分配给不同的VM的扩展的PA区域520可在扩展的PA空间550中连续;或者,分配给不同的VM的扩展的PA区域520可在扩展的PA空间550中不连续。在一个实施例中,每一个扩展的PA区域520的基地址和/或大小可以是可配置的。
将扩展的PA区域520分配给VM使得系统可对客户操作系统和主机操作系统使用不同的页大小(或块大小)。假设VM0-VM3在计算系统中的客户操作系统的多个实例之上运行。客户操作系统可使用第一页大小用于虚拟存储器管理。计算器系统的主机操作系统可使用比第一页大小更大的第二页大小(或块大小)用于虚拟存储器管理。较大的页大小可减小主机系统操作的开销。换言之,较小的页大小可能更适用于VM操作。每一个处理器的MMU可通过使用用于主机系统操作的第二页大小和用于VM操作的第一页大小来执行地址转换。
图6是图示根据一个实施例的VM存储器保护的图。在该实施例中,四个VM(VM0-VM3)分配有扩展的PA区域(例如,分别为R0、R1、R2和R3)。四个扩展的PA区域具有相同的大小(例如,K个字节)并且不重叠。四个VM的基地址偏移量分别表示为S0、S1、S2和S3。所有的四个扩展的PA区域都映射到一个重新映射的PA区域。
在每一个扩展的PA区域内,虚拟机监视器或主机操作系统可以将一个或多个地址块和/或地址段(位于物理地址空间510中)分配给对应的VM。块的大小可以是固定的(例如,每一个块的大小为2MB),而地址段可以是可配置的。在图6的实施例中,VM0分配地址块D0,VM1分配地址块D11和D12,VM2分配地址块D2,VM3分配地址段D3。当R0-R3被映射到重新映射的PA区域时,所有被分配的地址块或段彼此不重叠。在一个实施例中,每一个地址段可以单独打开(switched on)(即,激活(activated))或关闭(switched off)(即,停用(deactivated))以进行分配。
同时参考图1,存储器接口控制器125可从请求VM(例如,VM0)接收请求以用于访问PA空间中的一个被请求的地址(也即,物理地址空间510中的一个或多个地址块和/或地址段)。根据请求和硬件VM设置252,请求VM的域ID(也称为VM ID)被识别为VM0。MPU127检验识别出的VM ID的许可过滤器126来确定该请求是否应该被允许或被拒绝。许可过滤器126将VM0与允许或拒绝VM0访问的地址块和/或地址段的列表相关联。许可过滤器126还可以将VM0与运行VM0的主机相关联。结合图5和图6的描述适用于关于图1中的存储器120和外围设备140的访问控制。
图7是图示根据一个实施例的用于控制对PA空间的访问的方法700的流程图。在一个实施例中,方法700可以由系统(例如,图1中的系统100)来执行,该系统包括多个处理电路和可在PA空间(例如,PA空间510)内寻址的多个系统资源。处理电路可以包括一个或多个处理器和一个或多个直接存储器访问(DMA)控制器。系统资源可以包括系统一个或多个存储器设备和一个或多个外围设备。
方法700从步骤710开始,在该步骤中,系统从请求处理电路接收用于访问虚拟地址的请求。请求处理电路执行请求VM,其中PA空间(例如,PA空间510)中的给定区域(例如,530)专用于寻址该系统中执行的VM。在步骤720,耦接于请求处理电路的给定MMU根据该给定MMU的可配置的设置将虚拟地址转换为请求处理电路可访问的被请求的PA。在步骤730,耦接于分配有被请求的PA的目标系统资源的给定MPU基于许可过滤器中的信息准许或拒绝请求,该许可过滤器指示被请求的PA是否可被在请求处理电路上执行的请求VM访问。
在一个实施例中,系统包括多个MMU和多个MPU。每一个MMU包括第一级MMU和第二级MMU。第二级MMU用于对相应的处理电路进行主机侧访问控制,并可配置为禁用。每一个MPU用于对相应的系统资源进行目标侧访问控制,并可配置为禁用。第二级MMU使用一个页大小执行主机侧访问控制,MPU使用大于一个页大小的块大小执行目标侧访问控制。
在一个实施例中,给定MPU使用的许可过滤器中的信息将请求VM与请求VM可访问的PA空间的给定区域中的地址相关联。该地址可以由具有相同块大小的一个或多个地址块、具有可配置大小的一个或多个地址段、或一个或多个地址块与一个或多个地址段的组合来指示。
在一个实施例中,给定MPU使用的许可过滤器中的信息可配置为仅包括请求处理电路被授权访问的地址。在一个实施例中,系统配置为执行多个VM,其中VM的总数和PA空间中的给定区域在硬件中预先被配置。
已经参照图1的示例性实施例描述了图7的流程图的操作。然而,应当理解,图7的流程图的操作可以由图1的实施例之外的本发明的其他实施例执行,且图1的实施例可以执行与参考流程图讨论的那些不同的操作。虽然图7的流程图显示了由本发明的某些实施例执行的操作的特定顺序,但应该理解这种顺序是示例性的(例如,替代实施例可以以不同的顺序执行操作、组合某些操作、重叠某些操作等)。
本文已经描述了各种功能组件或块。如所属技术领域具有通常知识者将理解的,功能块将优选地通过电路(专用电路或通用电路,其在一个或多个处理器和编码指令的控制下操作)实现,所述电路通常包括被配置为根据本文描述的功能和操作来控制电路的操作的晶体管。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何所属技术领域具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。

Claims (20)

1.一种用于控制对物理地址空间的访问的系统,其特征在于,包括:
执行多个虚拟机的多个处理电路,其中该物理地址空间的一给定区域专用于寻址该多个虚拟机;
由该物理地址空间寻址的多个系统资源;
耦接于相应的处理电路的多个存储器管理单元,其中给定存储器管理单元用于根据该给定存储器管理单元的配置设置将来自请求处理电路的访问请求中指示的虚拟地址转换为被请求的物理地址;以及
多个存储器保护单元,其中耦接于分配有该被请求的物理地址的目标系统资源的给定存储器保护单元用于根据许可过滤器中指示该请求处理电路上运行的请求虚拟机是否可访问该被请求的物理地址的信息允许或拒绝该访问请求。
2.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,每一个存储器管理单元包括第一级存储器管理单元和第二级存储器管理单元,该第二级存储器管理单元用于对相应的处理电路执行主机侧访问控制,且该第二存储器管理单元可选择性被禁用。
3.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,每一个存储器保护单元用于对相应的系统资源执行目标侧访问控制,且每一个该存储器保护单元可选择性被禁用。
4.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,由该给定存储器保护单元使用的该许可过滤器中的该信息将该请求虚拟机与该物理地址空间中可被该请求虚拟机访问的给定区域的地址相关联。
5.如权利要求4所述的用于控制对物理地址空间的访问的系统,其特征在于,该地址由具有相同块大小的一个或多个地址块、具有可配置大小的一个或多个地址段、或一个或多个地址块与一个或多个地址段的组合来指示。
6.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,由该给定存储器保护单元使用的该许可过滤器中的该信息被配置为仅包括该请求处理电路被授权访问的地址。
7.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,虚拟机的总数和该物理地址空间中的该给定区域在硬件中预先配置。
8.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,每一个存储器管理单元包括第一级存储器管理单元和第二级存储器管理单元,该第二级存储器管理单元用于使用页尺寸执行主机侧访问控制,该给定存储器保护单元使用大于该页尺寸的块尺寸执行目标侧访问控制。
9.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,该多个处理电路包括一个或多个处理器和一个或多个直接存储器访问控制器。
10.如权利要求1所述的用于控制对物理地址空间的访问的系统,其特征在于,该一个或多个系统资源包括一个或多个存储器和一个或多个外围设备。
11.一种用于控制对物理地址空间的访问的方法,由包括多个处理电路和多个系统资源的系统执行,其特征在于,该方法包括:
从请求处理电路接收访问虚拟地址的请求,其中该请求处理电路执行请求虚拟机,其中该物理地址空间的一给定区域专用于寻址该系统中执行的多个虚拟机;
由耦接于该请求处理电路的给定存储器管理单元根据该给定存储器管理单元的配置设置将该虚拟地址转换为该请求处理电路可访问的被请求的物理地址;以及
由耦接于分配有该被请求的物理地址的目标系统资源的给定存储器保护单元根据许可过滤器中指示该请求处理电路上运行的请求虚拟机是否可访问该被请求的物理地址的信息允许或拒绝该请求。
12.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,每一个存储器管理单元包括第一级存储器管理单元和第二级存储器管理单元,该方法进一步包括:
启用或禁用第二级存储器管理单元对该请求处理电路执行的主机侧访问控制。
13.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,进一步包括:
启用或禁用该给定存储器保护单元对该系统资源执行的目标侧访问控制。
14.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,由该给定存储器保护单元使用的该许可过滤器中的该信息将该请求虚拟机与该物理地址空间中可被该请求虚拟机访问的给定区域的地址相关联。
15.如权利要求14所述的用于控制对物理地址空间的访问的方法,其特征在于,该地址由具有相同块大小的一个或多个地址块、具有可配置大小的一个或多个地址段、或一个或多个地址块与一个或多个地址段的组合来指示。
16.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,由该给定存储器保护单元使用的该许可过滤器中的该信息被配置为仅包括该请求处理电路被授权访问的地址。
17.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,虚拟机的总数和该物理地址空间中的该给定区域在硬件中预先配置。
18.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,每一个存储器管理单元包括第一级存储器管理单元和第二级存储器管理单元,该第二级存储器管理单元用于使用页尺寸执行主机侧访问控制,该给定存储器保护单元使用大于该页尺寸的块尺寸执行目标侧访问控制。
19.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,该多个处理电路包括一个或多个处理器和一个或多个直接存储器访问控制器。
20.如权利要求11所述的用于控制对物理地址空间的访问的方法,其特征在于,该一个或多个系统资源包括一个或多个存储器和一个或多个外围设备。
CN202210980411.6A 2021-10-06 2022-08-16 用于控制对物理地址空间的访问的系统及方法 Pending CN115934243A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163252637P 2021-10-06 2021-10-06
US63/252,637 2021-10-06
US17/883,541 2022-08-08
US17/883,541 US20220382577A1 (en) 2020-12-09 2022-08-08 Hardware Virtual Machine for Controlling Access to Physical Memory Space

Publications (1)

Publication Number Publication Date
CN115934243A true CN115934243A (zh) 2023-04-07

Family

ID=86551117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210980411.6A Pending CN115934243A (zh) 2021-10-06 2022-08-16 用于控制对物理地址空间的访问的系统及方法

Country Status (1)

Country Link
CN (1) CN115934243A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117421096A (zh) * 2023-12-19 2024-01-19 麒麟软件有限公司 基于jailhouse虚拟机监控器SMMU使用方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117421096A (zh) * 2023-12-19 2024-01-19 麒麟软件有限公司 基于jailhouse虚拟机监控器SMMU使用方法
CN117421096B (zh) * 2023-12-19 2024-04-05 麒麟软件有限公司 基于jailhouse虚拟机监控器SMMU使用方法

Also Published As

Publication number Publication date
TW202316275A (zh) 2023-04-16

Similar Documents

Publication Publication Date Title
US8392628B2 (en) Sharing memory spaces for access by hardware and software in a virtual machine environment
KR101179341B1 (ko) 메모리 액세스 데이터 구조에 기초하는 직접 캐시 액세스트랜잭션의 수행
KR101950000B1 (ko) 게스트 가상 머신 내 가상 입/출력 메모리 관리 유닛
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
US8386745B2 (en) I/O memory management unit including multilevel address translation for I/O and computation offload
JP5914145B2 (ja) メモリ保護回路、処理装置、およびメモリ保護方法
US8190839B2 (en) Using domains for physical address management in a multiprocessor system
AMD et al. Technology (IOMMU) specification
KR20080089002A (ko) 메모리 접근 제어 방법
US9875132B2 (en) Input output memory management unit based zero copy virtual machine to virtual machine communication
US20160188251A1 (en) Techniques for Creating a Notion of Privileged Data Access in a Unified Virtual Memory System
KR20220050171A (ko) 네트워크화된 입력/출력 메모리 관리 유닛
CN115934243A (zh) 用于控制对物理地址空间的访问的系统及方法
US11494092B2 (en) Address space access control
TWI844963B (zh) 用於控制對物理地址空間的訪問的系統及方法
US20220382577A1 (en) Hardware Virtual Machine for Controlling Access to Physical Memory Space
US20220179677A1 (en) Memory protection for virtual machines
US11009841B2 (en) Initialising control data for a device
CN117120988A (zh) 分区标识符空间选择
KR100455116B1 (ko) 내장시스템의메모리액세스방법

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