CN116088999A - 存储器管理***和用于管理存储器的方法 - Google Patents

存储器管理***和用于管理存储器的方法 Download PDF

Info

Publication number
CN116088999A
CN116088999A CN202211357857.XA CN202211357857A CN116088999A CN 116088999 A CN116088999 A CN 116088999A CN 202211357857 A CN202211357857 A CN 202211357857A CN 116088999 A CN116088999 A CN 116088999A
Authority
CN
China
Prior art keywords
virtual machine
imdi
memory
task
region
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
CN202211357857.XA
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN116088999A publication Critical patent/CN116088999A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • 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/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

提供了存储器管理***和用于管理存储器的方法。所述存储器管理***包括:第一虚拟机、第二虚拟机和管理程序,管理程序被配置为:管理第一虚拟机和第二虚拟机在存储器中访问的区域,控制第一虚拟机访问存储器中的第一区域和共享区域,控制第二虚拟机访问存储器中的共享区域和与第一区域不同的第二区域,并且响应于第一虚拟机的请求,将存储器内数据隔离(IMDI)表存储在存储器中,IMDI表指示第一虚拟机的任务访问并且第二虚拟机的任务不访问的IMDI区域。

Description

存储器管理***和用于管理存储器的方法
本申请基于并要求于2021年11月5日在韩国知识产权局提交的第10-2021-0151190号韩国专利申请的优先权,所述韩国专利申请的全部公开通过引用包含于此。
技术领域
公开总体涉及存储器管理***和用于管理存储器的方法。
背景技术
在其中不同用户或不同进程划分地(或分开地)使用存储器的存储器***被使用。在这样的存储器***的情况下,当存储器分隔中的隔离不明显时,存在由于恶意攻击者对存储在存储器中的数据进行调整的风险。因此,正在进行改善这个问题的研究。
发明内容
提供了具有改进的安全可靠性的存储器管理***和用于管理存储器的方法。
附加方面将在以下描述中部分阐述,并且部分根据描述将是清楚的,或者可通过实践呈现的实施例而得知。
根据示例实施例的一个方面,一种存储器管理***可包括:第一虚拟机;第二虚拟机;和管理程序,被配置为:管理第一虚拟机和第二虚拟机在存储器中访问的区域,控制第一虚拟机访问存储器中的第一区域和共享区域,控制第二虚拟机访问存储器中的共享区域和与第一区域不同的第二区域,并且响应于第一虚拟机的请求,将存储器内数据隔离(IMDI)表存储在存储器中,IMDI表指示第一虚拟机的任务访问并且第二虚拟机的任务不访问的IMDI区域。
根据示例实施例的一个方面,一种存储器管理***可包括:虚拟机,在其上执行内核级任务;和IMDI电路,被配置为:从虚拟机的内核级任务接收对存储器的IMDI区域的访问请求,并且基于参考存储在存储器中并且指示IMDI区域的IMDI表的虚拟机ID和任务ID,确定是否允许虚拟机的内核级任务访问IMDI区域。
根据示例实施例的一个方面,一种方法可包括:提供存储器,存储器包括第一虚拟机访问并且第二虚拟机不访问的第一区域、第一虚拟机不访问并且第二虚拟机访问的第二区域、以及第一虚拟机和第二虚拟机访问的共享区域;和响应于来自第一虚拟机的第一任务的请求,管理程序将IMDI表存储在存储器中,IMDI表指示第一虚拟机的第一任务访问并且第一虚拟机的第二任务不访问的IMDI区域。
根据示例实施例的一个方面,一种方法可包括:提供存储器,存储器包括第一虚拟机访问并且第二虚拟机不访问的第一区域、第一虚拟机不访问并且第二虚拟机访问的第二区域、第一虚拟机和第二虚拟机访问的共享区域、第一虚拟机的第一任务访问并且第一虚拟机的第二任务不访问的IMDI区域、以及指示IMDI区域的IMDI表;和响应于来自第一虚拟机的第一任务或第二任务中的任意一个对IMDI区域的访问请求,IMDI电路基于参考IMDI表来确定第一虚拟机的第一任务和第二任务中的任意一个是否访问IMDI区域。
然而,本发明的各个方面不限于在此阐述的方面。通过参考下面给出的本发明的具体实施方式,本发明的以上和其他方面对于本发明所属领域的普通技术人员将变得更加清楚。
附图说明
根据以下结合附图的描述,本公开的某些实施例的上面和其他方面、特征和优点将更加清楚,其中:
图1是根据示例实施例的存储器管理***的框图;
图2是根据示例实施例的图1的管理程序的存储器管理操作的示图;
图3是根据示例实施例的图1的管理程序生成存储器内数据隔离(IMDI)表的操作的示图;
图4是根据示例实施例的图3的IMDI表的示图;
图5是根据示例实施例的第一虚拟机的第一任务访问IMDI区域的操作的示图;
图6A是根据示例实施例的第二虚拟机的任务访问IMDI区域的操作的示图;
图6B是根据示例实施例的第一虚拟机的第二任务访问IMDI区域的操作的示图;
图7是根据示例实施例的图1的IMDI电路的操作的示图;
图8是根据示例实施例的存储器管理***的框图;
图9是根据示例实施例的配备有存储器管理***的车辆的示图;以及
图10是根据示例实施例的图9的存储器管理***的框图。
具体实施方式
在下文中,将参照附图描述本公开的实施例。在此描述的实施例是示例性实施例,因此,公开不限于此,并且可以以各种其他形式实现。如在此所使用,诸如,“……中的至少一个”的表述当在一列元素前面时,修饰整列元素,而不是修饰列的单个元素。例如,表述“a、b和c中的至少一个”应被理解为:仅包括a、仅包括b、仅包括c、包括a和b两者、包括a和c两者、包括b和c两者或包括全部的a、b和c。
图1是根据示例实施例的存储器管理***的框图。
参照图1,存储器管理***(MMS)1可包括虚拟机10(VM1)和虚拟机20(VM2)、管理程序30、处理器40和存储器内数据隔离(IMDI)电路50。尽管附图示出存在两个虚拟机10和20的示例,但是可尽可能地修改虚拟机10和虚拟机20的数量。
在一些实施例中,存储器管理***1可被配置为还包括存储器60。
存储器管理***1可管理存储器60。例如,存储器管理***1可在存储器60中划分地(或分开地)管理虚拟机10可访问的区域和虚拟机20可访问的区域。
虚拟机10可由客户操作***(OS)12(客户OS1)驱动。客户OS 12可处理由用户请求的进程或通过虚拟机10连接的用户进程。
虚拟机20可由客户OS 22(客户OS2)驱动。客户OS 22可处理由用户请求的进程或通过虚拟机20连接的用户进程。
在一些实施例中,客户OS 12和客户OS 22可以是彼此不同的操作***。例如,客户OS 12可以是android操作***,并且客户OS 22可以是Linux操作***。此外,在一些实施例中,客户OS 12和客户OS 22可以是彼此相同的操作***。
管理程序30可在存储器60中划分地管理虚拟机10可访问的区域和虚拟机20可访问的区域。
在一些实施例中,存储器60可包括动态随机存取存储器(DRAM)。在一些实施例中,存储器60可包括双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插式存储器模块(DIMM)、傲腾(optane)DIMM或非易失性DIMM(NVMDIMM)。
此外,在一些实施例中,存储器60可包括非易失性存储器(诸如,NAND闪存、磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)和电阻式存储器(电阻式RAM))。
管理程序30的二级地址转换(SLAT)模块32可执行二级地址转换,以在存储器60中划分地管理虚拟机10可访问的区域和虚拟机20可访问的区域。这里,客户OS 12和客户OS22可执行一级地址转换。下面将提供其更具体的解释。
处理器40可执行存储器管理***1中必要的处理。处理器40可包括多个存储器管理单元(MMU)42(MMU1)和44(MMU2)。根据实施例,MMU 42和MMU 44的数量可与示出的那些不同地进行修改。
MMU 42可用于客户OS 12和客户OS 22执行一级地址转换。客户OS 12和客户OS 22可使用MMU 42将提供给虚拟机10和虚拟机20的虚拟地址转换为第一物理地址。
MMU 44可用于SLAT模块32执行二级地址转换。SLAT模块32可使用MMU 44将从虚拟机10和虚拟机20提供的第一物理地址转换为第二物理地址。
在一些实施例中,第一物理地址和第二物理地址可以是彼此不同的物理地址。此外,在一些实施例中,第一物理地址和第二物理地址可以是彼此相同的物理地址。
IMDI电路50可确定是否允许虚拟机10和虚拟机20访问在存储器60中定义的IMDI区域。例如,IMDI电路50可确定是否允许虚拟机10和虚拟机20的每个任务访问在存储器60中定义的IMDI区域。下面还将提供其更具体的解释。
尽管附图示出单独地实现MMU 44和IMDI电路50的示例,但是在一些实施例中,IMDI电路50可被实现为包括在MMU 44中。
在一些实施例中,虚拟机10和虚拟机20以及管理程序30被实现为软件,并且处理器40和IMDI电路50可被实现为硬件。然而,实施例不限于此,并且实施例可根据需要被改变。
图2是根据示例实施例的图1的管理程序的存储器管理操作的示图。
参照图2,存储器60可包括仅虚拟机10可访问的第一区域R1、仅虚拟机20可访问的第二区域R2、以及虚拟机10和虚拟机20二者都可访问的共享区域SR。此外,存储器60可包括存储在管理程序区域HV中的SLAT表ST,虚拟机10和虚拟机20不可访问该SLAT表ST,并且只有管理程序30可访问该SLAT表ST。
SLAT表ST可以是用于SLAT模块32执行二级地址转换的表。
参照图2,在操作S10中,虚拟机10使用MMU(图1的42)将虚拟地址转换为第一物理地址,并且向管理程序30请求访问第一区域R1。
响应于此,在操作S11中,管理程序30的SLAT模块32使用MMU(图1的44)和SLAT表ST将第一物理地址转换为第二物理地址,并且管理程序30检查虚拟机10是否具有对第一区域R1的访问权限。
在操作S12中,当管理程序30允许访问时,虚拟机10可访问第一区域R1,以写入数据或读取存储的数据。
接下来,在操作S20中,虚拟机10使用MMU(图1的42)将虚拟地址转换为第一物理地址,并且向管理程序30请求访问共享区域R1。
响应于此,在操作S21中,管理程序30的SLAT模块32使用MMU(图1的44)和SLAT表ST将第一物理地址转换为第二物理地址,并且管理程序30检查虚拟机10是否具有对共享区域SR的访问权限。
在操作S22中,当管理程序30允许访问时,虚拟机10可访问共享区域SR,以写入数据或读取存储的数据。
接下来,在操作S30中,虚拟机20使用MMU(图1的42)将虚拟地址转换为第一物理地址,并且向管理程序30请求访问第二区域R2。
响应于此,在操作S31中,管理程序30的SLAT模块32使用MMU(图1的44)和SLAT表ST将第一物理地址转换为第二物理地址,并且管理程序30检查虚拟机20是否具有对第二区域R2的访问权限。
在操作S32中,当管理程序30允许访问时,虚拟机20可访问第二区域R2,以写入数据或读取存储的数据。
另一方面,尽管未在附图中详细示出,但是当虚拟机10使用MMU(图1的42)将虚拟地址转换为第一物理地址并且向管理程序30请求访问第二区域R2时,管理程序30使用MMU(图1的44)和SLAT表ST检查出虚拟机10不具有对第二区域R2的访问权限,然后可阻止虚拟机10对第二区域R2的访问。
类似地,当虚拟机20使用MMU(图1的42)将虚拟地址转换为第一物理地址并且向管理程序30请求访问第一区域R1时,管理程序30使用MMU(图1的44)和SLAT表ST检查出虚拟机20不具有对第一区域R1的访问权限,然后可阻止虚拟机20对第一区域R1的访问。
参照图2,可在虚拟机10和虚拟机20上执行多个任务。这样的多个任务可包括用户级任务U1至用户级任务U4和内核级任务K1至内核级任务K4。用户级任务U1至用户级任务U4是存在于虚拟机10和虚拟机20的用户空间中的任务,并且内核级任务K1至内核级任务K4是存在于虚拟机10和虚拟机20的内核空间中的任务。
用户级任务U1至用户级任务U4由客户OS控制,并且具有比虚拟机10和虚拟机20的权限更少的权限。也就是说,虚拟机10具有对存储器60的第一区域R1和共享区域SR的访问权限,但是用户级任务U1和用户级任务U3由客户OS控制,并且不具有与虚拟机10的访问权限相同的权限。此外,虚拟机20具有对存储器60的第二区域R2和共享区域SR的访问权限,但是用户级任务U2和用户级任务U4由客户OS控制,并且不具有与虚拟机20的访问权限相同的权限。
另一方面,内核级任务K1至内核级任务K4具有与上述虚拟机10和虚拟机20的访问权限相同的访问权限。也就是说,当虚拟机10具有对存储器60的第一区域R1和共享区域SR的访问权限时,内核级任务K1和内核级任务K3也具有与虚拟机10的访问权限相同的权限。当虚拟机20具有对存储器60的第二区域R2和共享区域SR的访问权限时,内核级任务K2和内核级任务K4也可具有与虚拟机20的访问权限相同的权限。
在虚拟机10的内核级任务K1和虚拟机20的内核级任务K2在存储器60的共享区域SR中执行共享任务的情况下,当虚拟机10的内核级任务K3被恶意掌控时,恶意攻击者可使用内核级任务K3任意地改变存储在存储器60的共享区域SR中的数据。
因此,可需要用于防止这种情况的配置,并且可使用本实施例的管理程序30和IMDI电路(图1的50)来防止这样的攻击。在下文中,这将被更具体地描述。
图3是根据示例实施例的图1的管理程序生成IMDI表的操作的示图。图4是根据示例实施例的图3的IMDI表的示图。
参照图3,在操作S100中,虚拟机10的内核级任务K1请求管理程序30指定内核级任务K1可访问的IMDI区域IR。
在一些实施例中,可使用由管理程序30提供的管理程序调用来作出这样的请求。也就是说,根据本实施例的管理程序30可以是准虚拟化(para-virtualized)管理程序。
接下来,在操作S110中,响应于该请求,管理程序30将指示IMDI区域IR的IMDI表IT存储在存储器60的管理程序区域HV中。
参照图3和图4,这样的IMDI表IT可包括虚拟机标识符(ID)(VMID)、任务ID(TUID)、IMDI区域IR的起始地址和IMDI区域IR的大小。
图4示出IMDI表IT的示例,其中,虚拟机10的内核级任务K1具有访问权限并且从起始地址a开始的大小为b的IMDI区域IR被指示。可根据IMDI表IT的存储内容来定义与存储器60对应的IMDI区域IR。
这样的IMDI区域IR可被定义在管理程序区域HV中。也就是说,在本实施例中,SLAT表ST和IMDI表IT可被存储在存储器60的管理程序区域HV中,并且IMDI区域IR可被定义在管理程序区域HV中。
接下来,在操作S120中,管理程序30将IMDI表IT存储在存储器60中,然后可将关于生成的IMDI区域IR的信息发送到虚拟机10。
图5是根据示例实施例的第一虚拟机的第一任务(例如,内核级任务K1)访问IMDI区域的操作的示图。
参照图5,在操作S200中,虚拟机10的内核级任务K1向管理程序30的SLAT模块32请求访问IMDI区域IR。
响应于此,在操作S210中,SLAT模块32参考存储器60的SLAT表ST。
当基于SLAT表ST的存储内容作出确定时,由于由虚拟机10的内核级任务K1请求访问的区域不是允许虚拟机10访问的第一区域(图2的R1)或共享区域(图2的SR),因此SLAT模块32将确定虚拟机10的内核级任务K1不能访问IMDI区域IR。
然而,在操作S220中,SLAT模块32不对虚拟机10的不可访问性直接进行响应,并且在IMDI电路50中检查虚拟机10的内核级任务K1是否能访问IMDI区域IR。
响应于此,在操作S230中,IMDI电路50检查IMDI表IT。
此外,如果确定虚拟机10的内核级任务K1需要访问的区域在图4中示出的区域内,则IMDI电路50允许访问。如果确定虚拟机10的内核级任务K1需要访问的区域在图4中示出的区域之外,则IMDI电路50可拒绝访问。
当IMDI电路50允许访问时,虚拟机10的内核级任务K1可访问IMDI区域IR,以写入数据或读取存储的数据(S240)。
图6A是根据示例实施例的第二虚拟机的任务访问IMDI区域的操作的示图。
参照图6A,在操作S300中,虚拟机20的内核级任务K2向管理程序30的SLAT模块32请求访问IMDI区域IR。
响应于此,在操作S310中,SLAT模块32参考存储器60的SLAT表ST。
当基于SLAT表ST的存储内容作出确定时,由于由虚拟机20的内核级任务K2请求访问的区域不是允许虚拟机20访问的第二区域(图2的R2)或共享区域(图2的SR),因此SLAT模块32将确定虚拟机20的内核级任务K2不能访问IMDI区域IR。
然而,在操作S320中,SLAT模块32对虚拟机20的不可访问性直接进行响应,并且在IMDI电路50中检查虚拟机20的内核级任务K2是否能访问IMDI区域IR。
响应于此,在操作S330中,IMDI电路50检查IMDI表IT。
在图4中示出的IMDI表IT中,由于允许虚拟机20的内核级任务K2访问的IMDI区域IR不存在,因此IMDI电路50不允许访问。结果,在操作S340中,虚拟机20的内核级任务K2不能访问IMDI区域IR。
图6B是根据示例实施例的第一虚拟机的第二任务(例如,内核级任务K3)访问IMDI区域的操作的示图。
参照图6B,在操作S400中,虚拟机10的内核级任务K3向管理程序30的SLAT模块32请求访问IMDI区域IR。
响应于此,在操作S410中,SLAT模块32参考存储器60的SLAT表ST。
当基于SLAT表ST的存储内容作出确定时,由于由虚拟机10的内核级任务K3请求访问的区域不是允许虚拟机10访问的第一区域(图2的R1)或共享区域(图2的SR),因此SLAT模块32将确定虚拟机10的内核级任务K3不能访问IMDI区域IR。
然而,在操作S420中,SLAT模块32不对虚拟机10的不可访问性直接进行响应,并且在IMDI电路50中检查虚拟机10的内核级任务K3是否能访问IMDI区域IR。
响应于此,在操作S430中,IMDI电路50检查IMDI表IT。
在图4中示出的IMDI表IT中,虚拟机10的内核级任务K1被允许访问IMDI区域IR,但是虚拟机10的内核级任务K3不被允许访问IMDI区域IR。因此,IMDI电路50不允许访问。结果,在操作S440中,虚拟机10的内核级任务K3不能访问IMDI区域IR。
图7是用于说明图1的IMDI电路的操作的示图。
参照图7,从虚拟机的任务提供包括访问目标区域的地址信息GPA、访问目标区域的大小SIZE、虚拟机的ID VMID和任务ID TUID的访问请求,并且在操作S500中,IMDI电路50通过二级地址转换SLAT检查对由虚拟机的任务请求访问的存储器区域的访问权限。
在一些实施例中,访问目标区域的地址信息GPA可以是例如上述第一物理地址,但是实施例不限于此。
此外,在操作S510中,IMDI电路50确定是否可通过二级地址转换来访问由虚拟机的任务请求访问的存储器区域。
如果确定能通过二级地址转换SLAT访问由虚拟机的任务请求访问的存储器区域(操作S510-是),则允许访问该区域。
如果确定不能通过二级地址转换访问由虚拟机的任务请求访问的存储器区域(操作S510-否),则在操作S520中,确定由虚拟机的任务请求访问的存储器区域是否与通过IMDI表设置的IMDI区域对应。
如果由虚拟机的任务请求访问的存储器区域不与通过IMDI表设置的IMDI区域(操作S520-否)对应,则向虚拟机的任务通知不可访问性。
如果由虚拟机的任务请求访问的存储器区域与通过IMDI表设置的IMDI区域(操作S520-是)对应,则在操作S530中,确定请求的虚拟机的虚拟机ID是否是在IMDI表的IMDI区域中注册的虚拟机ID。
如果请求的虚拟机的虚拟机ID不是在IMDI表的IMDI区域中注册的虚拟机ID(操作S530-否),则向虚拟机的任务通知不可访问性。
如果请求的虚拟机的虚拟机ID是在IMDI表的IMDI区域中注册的虚拟机ID(操作S530-是),则在操作S540中,确定请求的虚拟机的任务ID是否是在IMDI表的IMDI区域中注册的任务ID。
如果请求的虚拟机的任务ID不是在IMDI表的IMDI区域中注册的任务ID(操作S540-否),则向虚拟机的任务通知不可访问性。
如果请求的虚拟机的任务ID是在IMDI表的IMDI区域中注册的任务ID(操作S540-是),则允许访问该区域。
在本实施例中,通过定义向虚拟机的每个任务授予对存储器的访问权限的IMDI区域并且使用IMDI表管理IMDI区域,存储器管理***的安全可靠性可被提高。
图8是根据示例实施例的存储器管理***的框图。在下文中,将主要描述与上述实施例的不同之处。
参照图8,存储器管理***2可包括虚拟机110(VM1)、虚拟机120(VM2)以及管理程序130。尽管未详细示出,但是存储器管理***2可包括图1中示出的处理器40和IMDI电路50。
存储器管理***2可以是例如支持多租户***的存储器管理***。虚拟机110可连接到第一用户US1以执行第一用户US1的请求,并且虚拟机120可连接到第二用户US2以执行第二用户US2的请求。
在一些实施例中,第一用户US1和第二用户US2可以是彼此不同的用户。此外,在一些实施例中,第一用户US1和第二用户US2可以是一个用户的不同用户进程。此外,在一些其他实施例中,第一用户US1和第二用户US2可以是不同用户的不同用户进程。
图9是根据示例实施例的配备有存储器管理***的车辆的示图。图10是根据示例实施例的图9的存储器管理***的框图。
车辆200可包括多个电子控制单元(ECU)210、存储器管理***270和存储器220。
多个电子控制单元210中的每个电子控制单元电气地、机械地和通信地连接到设置在车辆200中的多个装置中的至少一个,并且可基于任何一个功能执行命令来控制至少一个装置的操作。
这里,多个装置可包括获取执行至少一个功能所需的信息的获取装置230和执行至少一个功能的驱动单元240。
例如,获取装置230可包括各种检测单元和图像获取单元。驱动单元240可包括空调的风扇和压缩机、通风装置的风扇、动力装置的发动机和电机、转向装置的电机、制动装置的电机和阀、门或尾门的打开/关闭装置等。
多个电子控制单元210可使用例如以太网、低压差分信号(LVDS)通信和本地互连网络(LIN)通信中的至少一个与获取装置230和驱动单元240进行通信。
多个电子控制单元210基于通过获取装置230获取的信息来确定是否需要执行功能,并且当确定需要执行功能时,多个电子控制单元210控制执行功能的驱动单元240的操作,并且可基于获取的信息来控制操作量(amount of operation)。此时,多个电子控制单元210可将获取的信息存储在存储器220中,或者可读取和使用存储在存储器220中的信息。存储器管理***270可接收多个电子控制单元210将信息存储在存储器220中的请求,或者将存储在存储器220中的信息提供给多个电子控制单元210。
参照图9和图10,存储器管理***270可包括虚拟机271(VM1)、虚拟机272(VM2)以及管理程序273。尽管未详细示出,但是存储器管理***270可包括图1中示出的处理器40和IMDI电路50。
虚拟机271可连接到第一电子控制单元210a以执行第一电子控制单元210a的请求,并且虚拟机272可连接到第二电子控制单元210b以执行第二电子控制单元210b的请求。
在一些实施例中,第一电子控制单元210a是收集和处理来自获取装置230的信息的装置,并且第二电子控制单元210b可以是控制驱动单元240的操作的装置。在一些实施例中,第一电子控制单元210a可以是处理信息娱乐(infotainment)的装置,并且第二电子控制单元210b可以是处理车辆的操作信息的装置。然而,实施例不限于此。
参照图9,多个电子控制单元210能够基于通过输入单元250输入的功能执行命令来控制执行功能的驱动单元240的操作,并且还能够检查与通过输入单元250输入的信息对应的设置量(setting amount),并且基于检查的设置量来控制执行功能的驱动单元240的操作。
每个电子控制单元210可独立地控制任何一个功能,或者可与其他电子控制单元协作控制任何一个功能。
例如,当通过距离检测单元检测的至障碍物的距离在参考距离内时,防撞装置的电子控制单元可通过扬声器输出关于与障碍物碰撞的警告声。
自主驾驶控制装置的电子控制单元可与车辆终端的电子控制单元、图像获取单元的电子控制单元和防撞装置的电子控制单元协作接收导航信息、道路图像信息和至障碍物的距离信息,并且使用接收到的信息控制动力装置、制动装置和转向装置,从而执行自主驾驶。
连接控制单元(CCU)260电气地、机械地和通信地连接到多个电子控制单元210中的每个,并且与多个电子控制单元210中的每个进行通信。
也就是说,连接控制单元260能够与设置在车辆内部的多个电子控制单元210进行直接通信,能够与外部服务器进行通信,并且还能够通过接口与外部终端进行通信。
这里,连接控制单元260可使用天线(未示出)和射频(RF)通信与多个电子控制单元210进行通信,并且可与服务器310进行通信。
此外,连接控制单元260可通过无线通信与服务器310进行通信。此时,除了WiFi模块和无线宽带模块之外,还可通过各种无线通信方法(诸如,全球移动通信***(GSM)、码分多址(CDMA)、宽带CDMA(WCDMA)、通用移动电信***(UMTS)、时分多址(TDMA)和长期演进(LTE))来执行连接控制单元260与服务器310之间的无线通信。
由附图(诸如,图1、图2和图8至图10)中的框表示的组件、元件、模块和单元(在本段中统称为“组件”)中的至少一个可被实现为执行上述相应功能的各种数量的硬件、软件和/或固件结构。这些组件中的至少一个可使用直接电路结构(诸如,存储器、处理器、逻辑电路、查找表等),直接电路结构可通过一个或多个微处理器或其他控制设备的控制来执行相应的功能。此外,这些组件中的至少一个可由模块、程序或代码的一部分具体实现,模块、程序或代码的一部分包含用于执行指定逻辑功能的一个或多个可执行指令,并且由一个或多个微处理器或其他控制装置执行。此外,这些组件中的至少一个可包括处理器(诸如,执行相应功能的中央处理器(CPU)、微处理器等)或可由处理器实现。这些组件中的两个或更多个可组合成一个执行组合的两个或更多个组件的所有操作或功能的单个组件。此外,这些组件中的至少一个的功能的至少一部分可由这些组件中的另一个执行。上面示例实施例的功能方面可以以在一个或多个处理器上执行的算法实现。此外,由块或处理步骤表示的组件可采用用于电子配置、信号处理和/或控制、数据处理等的任何数量的现有技术。
虽然上面已经参照附图描述了本公开的实施例,但是本公开不限于此,并且可以以各种不同的形式实现。本领域普通技术人员将理解,在不脱离本公开的技术精神或基本特征的情况下,本公开可以以其他特定形式被实施。因此,应理解,上述实施例在所有方面仅是示例,而不是限制性的。

Claims (20)

1.一种存储器管理***,包括:
第一虚拟机;
第二虚拟机;和
管理程序,被配置为:
管理第一虚拟机和第二虚拟机在存储器中访问的区域,
控制第一虚拟机访问存储器中的第一区域和共享区域,并且不访问存储器中的与第一区域不同的第二区域,
控制第二虚拟机访问存储器中的共享区域和第二区域,并且不访问存储器中的第一区域,并且
响应于第一虚拟机的请求,将存储器内数据隔离IMDI表存储在存储器中,IMDI表指示第一虚拟机的任务访问并且第二虚拟机的任务不访问的IMDI区域。
2.根据权利要求1所述的存储器管理***,其中,第一虚拟机的任务包括:第一任务和第二任务,并且
其中,第一任务访问IMDI区域,并且第二任务不访问IMDI区域。
3.根据权利要求2所述的存储器管理***,其中,第一任务和第二任务是第一虚拟机的内核级任务。
4.根据权利要求1所述的存储器管理***,其中,第一虚拟机被配置为:使用管理程序调用来请求管理程序指定IMDI区域。
5.根据权利要求1所述的存储器管理***,其中,IMDI表被存储在存储器的管理程序访问并且第一虚拟机和第二虚拟机不访问的区域中。
6.根据权利要求5所述的存储器管理***,其中,IMDI表包括与第一虚拟机相关的虚拟机标识符ID和与第一虚拟机的任务相关的任务ID。
7.根据权利要求6所述的存储器管理***,其中,IMDI表包括IMDI区域的起始地址和IMDI区域的大小。
8.根据权利要求1至7中的任意一项所述的存储器管理***,还包括:
IMDI电路,被配置为基于参考IMDI表来确定是否允许访问IMDI区域。
9.根据权利要求8所述的存储器管理***,其中,IMDI电路与管理程序不同。
10.一种存储器管理***,包括:
虚拟机,在其上执行内核级任务;和
存储器内数据隔离IMDI电路,被配置为:
从虚拟机的内核级任务接收对存储器的IMDI区域的访问请求,并且
基于参考存储在存储器中并且指示IMDI区域的IMDI表的虚拟机ID和任务ID,确定是否允许虚拟机的内核级任务访问IMDI区域。
11.根据权利要求10所述的存储器管理***,其中,虚拟机包括第一虚拟机和第二虚拟机,
其中,存储器包括第一虚拟机访问并且第二虚拟机不访问的第一区域、第一虚拟机不访问并且第二虚拟机访问的第二区域、第一虚拟机和第二虚拟机访问的共享区域、以及第一虚拟机和第二虚拟机不访问的二级地址转换SLAT表,并且
其中,IMDI表与SLAT表不同。
12.根据权利要求10或权利要求11所述的存储器管理***,还包括:
管理程序,被配置为基于参考SLAT表来管理第一虚拟机和第二虚拟机在存储器中访问的区域。
13.根据权利要求12所述的存储器管理***,其中,IMDI表被存储在存储器的管理程序访问并且虚拟机不访问的区域中。
14.根据权利要求12所述的存储器管理***,其中,虚拟机的内核级任务使用管理程序调用来请求管理程序指定IMDI区域。
15.根据权利要求14所述的存储器管理***,其中,管理程序被配置为:响应于虚拟机的内核级任务的请求,将指示IMDI区域的IMDI表存储在存储器中。
16.根据权利要求10至15中的任意一项所述的存储器管理***,还包括:
管理程序,被配置为管理虚拟机在存储器中访问的区域,
其中,IMDI电路与管理程序不同。
17.一种用于管理存储器的方法,包括:
提供存储器,存储器包括第一虚拟机访问并且第二虚拟机不访问的第一区域、第一虚拟机不访问并且第二虚拟机访问的第二区域、以及第一虚拟机和第二虚拟机访问的共享区域;和
响应于来自第一虚拟机的第一任务的请求,管理程序将存储器内数据隔离IMDI表存储在存储器中,IMDI表指示第一虚拟机的第一任务访问并且第一虚拟机的第二任务不访问的IMDI区域。
18.根据权利要求17所述的方法,其中,第一任务和第二任务是第一虚拟机的内核级任务。
19.根据权利要求17所述的方法,还包括:
响应于来自第一虚拟机的第一任务和第二任务中的任意一个对IMDI区域的访问请求,IMDI电路基于参考IMDI表来确定第一虚拟机的第一任务和第二任务中的任意一个是否访问IMDI区域。
20.根据权利要求17所述的方法,其中,第一虚拟机的第一任务使用管理程序调用来请求管理程序指定IMDI区域。
CN202211357857.XA 2021-11-05 2022-11-01 存储器管理***和用于管理存储器的方法 Pending CN116088999A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210151190A KR20230065526A (ko) 2021-11-05 2021-11-05 메모리 관리 시스템 및 메모리 관리 방법
KR10-2021-0151190 2021-11-05

Publications (1)

Publication Number Publication Date
CN116088999A true CN116088999A (zh) 2023-05-09

Family

ID=82458608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211357857.XA Pending CN116088999A (zh) 2021-11-05 2022-11-01 存储器管理***和用于管理存储器的方法

Country Status (4)

Country Link
US (1) US20230141225A1 (zh)
EP (1) EP4177761A1 (zh)
KR (1) KR20230065526A (zh)
CN (1) CN116088999A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9117081B2 (en) * 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US20180341529A1 (en) * 2017-05-26 2018-11-29 Microsoft Technology Licensing, Llc Hypervisor-based secure container
US20200409740A1 (en) * 2019-06-27 2020-12-31 Shih-Wei Li Systems, methods, and media for trusted hypervisors

Also Published As

Publication number Publication date
EP4177761A1 (en) 2023-05-10
US20230141225A1 (en) 2023-05-11
KR20230065526A (ko) 2023-05-12

Similar Documents

Publication Publication Date Title
US9384153B2 (en) Virtualized local storage
US11941259B2 (en) Communication method, apparatus, computer-readable storage medium, and chip
US10055361B2 (en) Memory controller for providing a plurality of defined areas of a mass storage medium as independent mass memories to a master operating system core for exclusive provision to virtual machines
CN110442425B (zh) 一种虚拟化地址空间隔离***及方法
JP4980464B2 (ja) 書込プロテクトされたメモリ管理ユニット・レジスタを備える論理デバイス
EP3714393B1 (en) Memory protective apparatus for indirect access memory controller
US10037170B2 (en) Motherboard and a method for boot-up
US9262318B1 (en) Serial flash XIP with caching mechanism for fast program execution in embedded systems
US20180121125A1 (en) Method and apparatus for managing resource access control hardware in a system-on-chip device
US20090271861A1 (en) Data processing apparatus and access control method therefor
US10310759B2 (en) Use efficiency of platform memory resources through firmware managed I/O translation table paging
JP7201686B2 (ja) 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
EP2865164B1 (en) Dynamic memory access management
EP3620914A1 (en) Apparatus for providing update of vehicle and computer-readable storage medium
EP4177761A1 (en) Memory management system and method for managing memory
US10958472B2 (en) Direct access to bus signals in a motor vehicle
US9892055B2 (en) Embedded device and memory management method thereof
CN113806251B (zh) 一种共享内存管理单元的***及搭建方法、内存访问方法
CN110574343A (zh) 用于保护车辆安全***的操作***的方法和半导体电路
US10862861B2 (en) Use of a network address by a network accessory
CN114444141A (zh) 固态硬盘和固态硬盘数据保护方法、装置及设备
US10635309B2 (en) Method for protecting user data of a storage device, and electronic computing system
US20240020229A1 (en) Flash memory access method and apparatus
KR102283739B1 (ko) 파티션 간 데이터 공유장치 및 공유방법
EP4083837A1 (en) Safety isolation method and apparatus, and computer system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication