CN103262053A - 具有共享的输入/输出的安全分区 - Google Patents

具有共享的输入/输出的安全分区 Download PDF

Info

Publication number
CN103262053A
CN103262053A CN201180060890XA CN201180060890A CN103262053A CN 103262053 A CN103262053 A CN 103262053A CN 201180060890X A CN201180060890X A CN 201180060890XA CN 201180060890 A CN201180060890 A CN 201180060890A CN 103262053 A CN103262053 A CN 103262053A
Authority
CN
China
Prior art keywords
address
storage
iosp
code
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.)
Pending
Application number
CN201180060890XA
Other languages
English (en)
Inventor
D·A·科尔什内尔
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.)
Unisys Corp
Original Assignee
Unisys Corp
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 Unisys Corp filed Critical Unisys Corp
Publication of CN103262053A publication Critical patent/CN103262053A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于允许多个虚拟系统环境在单个平台上执行的软分区系统可包含I/O服务分区(IOSP)。在单独的虚拟存储器中操作的IOSP在平台上分隔开并服务来自多个客户的盘和网络请求。IOSP提供从虚拟地址向物理地址的转换,使得,从客户的视点看,由客户使用的虚拟地址看起来为物理地址。可在Linux核中实现IOSP。IOSP的地址空间可扩展以包含DMA存储器部分,使得Linux核不包含所有的客户的存储器。IOSP可在支持或不支持用于引导的I/O的虚拟化技术的硬件上操作。

Description

具有共享的输入/输出的安全分区
(对相关申请的交叉引用)
本申请与在2010年10月29日提交的发明名称为“SecurePartitioning with Shared Input/Output”的美国临时申请系列No.61/408025有关,在此加入其公开作为参考。
技术领域
本公开涉及虚拟系统环境。更特别地,本公开涉及虚拟系统环境中的共享输入/输出装置。
背景技术
在常规的虚拟系统环境中,多个客户共享由输入/输出地址映射的物理装置。输入/输出(I/O)访问由I/O服务分区中的装置执行并被复制到客户平台的存储器。作为结果,数据的至少两个复制会占据存储器。另外,一个客户可能能够看到另一客户的数据。因此,常规的虚拟系统环境消耗过量的资源并且缺少较强的安全特征。
发明内容
根据一个实施例,装置包括客户分区。装置还包含通过控制信道与客户分区耦合的输入/输出服务分区(“IOSP”)。装置还包括与IOSP耦合的存储器管理单元(“MMU”)。装置还包括与MMU耦合的平台存储器。
根据另一实施例,方法包括在IOSP上接收来自客户的输入/输出(I/O)请求。方法还包括将I/O请求的客户物理地址转换成IOSP相对物理地址。方法还包括访问与IOSP相对物理地址对应的物理装置。方法还包括通过物理装置访问客户的共享存储器。
根据又一实施例,方法包括分配存储器地址的第一多个位以存储地址。方法还包括分配存储器地址的第二多个位以存储信息。
根据另一实施例,方法包括接收用于输入/输出(“I/O”)请求的存储器地址。方法还包括将存储器地址转换成IOSP地址。方法还包括设定指示已转换存储器地址的存储器地址的转换器位。方法还包括将存储器地址传送到操作系统。
根据另一实施例,计算机程序产品包含具有分配存储器地址的第一多个位以存储地址的代码的计算机可读介质。介质还包括分配存储器地址的第二多个位以存储信息的代码。
根据又一实施例,计算机程序产品包含具有接收用于I/O请求的存储器地址的代码的计算机可读介质。介质还包括将存储器地址转换成IOSP地址的代码。介质还包括设定指示已转换存储器地址的存储器地址的转换器位的代码。介质还包括将存储器地址传送到操作系统的代码。
根据另一实施例,计算机程序产品包含具有接收来自客户的I/O请求的代码的计算机可读介质。介质还包含将I/O请求的客户物理地址转换成IOSP相对物理地址的代码。介质还包含访问与IOSP相对物理地址对应的物理装置的代码。介质还包括访问客户的共享存储器的代码。
为了能够更好地理解以下的系统环境的详细描述,以上相当广泛地概括了公开的系统环境的特征和技术优点。以下描述形成本申请的权利要求的主题的系统环境的附加的特征和优点。本领域技术人员可以理解,作为用于修改或设计用于实施系统环境的相同的目的的其它结构的基础,可以很容易地利用该概念和公开的特定的实施例。本领域技术人员还可以理解,这些等同的结构不背离在所附的权利要求中阐述的本公开的精神和范围。结合附图考虑以下的描述,可以更好地理解关于组织和操作的方法被视为系统环境的特征的新颖的特征以及其它的目标和优点。但是,应当清楚地理解,提供附图中的每一个仅是为了解释和描述,不是为了限定要求权利的本发明。
附图说明
为了更完整地理解公开的系统和方法,现在参照结合附图给出的以下的描述。
图1是示出根据本公开的一个实施例的用于提供虚拟系统环境的系统的框图。
图2是示出根据本公开的一个实施例的用于提供虚拟系统环境的计算机系统的框图。
图3是示出根据本公开的一个实施例的虚拟系统环境的框图。
图4是示出根据本公开的一个实施例的使用计算机地址以在非VT-d系统中传输信息的流程图。
图5是示出根据本公开的一个实施例的方法的流程图。
图6是示出根据本公开的另一实施例的方法的流程图。
图7是示出根据本公开的又一实施例的方法的流程图。
具体实施方式
图1示出用于运行虚拟系统的系统100的实施例。系统100可包括服务器102、数据存储装置106、网络108和用户界面装置110。服务器102可以或者可以不支持用于引导的I/O的虚拟化技术(“VD-d”)。在另一实施例中,系统100可包含被配置为管理数据存储装置106与服务器102或与网络108通信的其它部件之间的数据通信的存储控制器104或存储服务器。在替代性的实施例中,存储控制器104可与网络108耦合。
在一些实施例中,用户界面装置110是广义的,并且要包括适当的基于处理器的装置,诸如但不限于台式计算机、膝上型计算机、个人数字助理(“PDA”)、平板计算机、智能电话或其它固定或移动通信装置或能够访问网络108的组织装置。在其它的实施例中,用户界面装置110可访问因特网或其它广域或局部网络以访问由服务器102托管的网络应用或网络服务,并提供用于使得用户能够键入或接收信息的用户界面。
网络108可有利于服务器102与用户界面装置110之间的数据的通信。网络108可包含任意类型的通信网络,包含但不限于直接PC到PC连接、局部网络(LAN)、广域网络(“WAN”)、调制解调器到调制解调器连接、因特网、以上方面的组合或者在允许两个或更多个计算机或其它的用户界面装置相互通信的网络化领域中现在已知或者以后开发的任何其它通信网络。
服务器可通过存储区域网络(“SAN”)连接、LAN或数据总线等访问存储于数据存储装置106中的数据。数据存储装置106可包含:硬盘,包含以独立盘冗余阵列(“RAID”)阵列配置的硬盘;包含磁带数据存储装置的带存储驱动;光学存储装置;等等。数据可配置于数据库中,并且可通过结构化查询语言(“SQL”)查询或其它的数据库查询语言或操作被访问。
图2示出根据服务器102和/或用户界面装置110的某些实施例适配的计算机系统200。中央处理单元(“CPU”)202与系统总线204耦合。CPU202可以是通用的CPU或微处理器、图形处理单元(“GPU”)或微控制器等。只要CPU202支持这里描述的模块和操作,不管是以直接的方式还是以间接的方式,本实施例都不被CPU202的结构限制。根据本实施例,CPU202可执行各种逻辑指令。
计算机系统200还可包含可以是SRAM、DRAM或SDRAM等的随机存取存储器(“RAM”)208。计算机系统200可利用RAM208以存储由用于运行虚拟系统环境的软件应用使用的各种数据结构。计算机系统200还可包含可以是PROM、EPROM、EEPROM或光学存储等的只读存储器(“ROM”)206。ROM可存储用于启动计算机系统200的配置信息。RAM208和ROM206保持用户和系统数据。计算机系统200还可包含输入/输出(I/O)适配器210、通信适配器214、用户界面适配器216和显示器适配器222。
I/O适配器210可连接诸如硬盘驱动、光盘(CD)驱动、软盘驱动和带驱动中的一个或多个的一个或多个存储装置212与计算机系统200。通信适配器214可适于耦合计算机系统200与可以是LAN、WAN和/或因特网中的一个或多个的网络108。用户界面适配器216耦合诸如键盘220和指示装置218的用户输入装置与计算机系统200。显示器适配器222可由CPU202驱动以控制显示装置224上的显示。
本公开的应用不限于计算机系统200的结构。而是,作为可适于执行服务器102和/或用户界面装置110的功能的一种类型的计算装置的例子,提供计算机系统200。例如,可以利用任何适当的基于处理器的装置,包括但不限于个人数据助理(“PDA”)、台式计算机、智能电话、计算机游戏控制台和多处理器服务器。并且,可在应用特定集成电路(“ASIC”)、非常大规模集成(“VLSI”)电路或其它电路上实现本公开的系统和方法。事实上,本领域技术人员可利用能够执行根据描述的实施例的逻辑操作的任意数量的适当的结构。
图3是示出根据本公开的一个实施例的虚拟系统环境的框图。系统300包括大量的客户分区320a、320b、320c。客户分区320a可执行创建对于客户物理地址的I/O请求的用户应用322a。I/O请求被传送到与客户物理地址对应的虚拟装置316,该虚拟装置316可通过I/O控制信道与服务驱动器314耦合。I/O控制信道可处于共享的存储器(未示出)中。服务驱动器314是IOSP312的一部分,该IOSP312将I/O请求从客户物理地址转换成IOSP相对物理地址。根据一个实施例,IOSP312是在系统300上的单独的虚拟存储器空间中运行的分区环境。转换的I/O请求访问物理装置310,该物理装置310将客户物理地址传送到I/O存储器管理单元(“IOMMU”)304。IOMMU304可将客户物理地址转换成主机物理地址以访问平台存储器302。
当I/O请求从客户320a传送到IOSP312时,IOSP312负责执行I/O请求。例如,IOSP312可访问盘或网络装置。可在具有用于VT-d的支持的支持芯片集上操作的IOMMU304可将客户物理地址转换成用于访问物理存储器的主机物理地址。IOSP312可同时支持多个客户320a、320b、320c。根据一个实施例,在Linux核中实现IOSP312。在一些实施例中,IOSP312的地址空间可扩展以包含非访问的存储器部分。根据另一实施例,IOSP312可实现为通过将客户物理地址转换成用于硬件DMA访问的主机物理地址支持不具有VT-d的硬件。
根据一些实施例,平台中的固件实现为作为对于IOSP的非访问段提供对于IOSP的客户存储器,原因是这种实现可提高共享存储性能。在这些实施例中,固件可被修改以包含一个或多个关键变化。第一个这种变化可包含更新以允许如果段类型具有IORAM属性,则管理存储器段分配的控制模块中的ComputerPages算法仅更新MMUIO。当ClientRam段被添加到IOSP分区时,可通过SendCreateAlias向IOSP的MMUIO添加条目。可以添加可在从IOSP去除ClientRam段时被调用的新的SendDetachAlias方法。根据一个实施例,可以保持用于分区的段(分配给分区的存储器管理的单位)的状态。也可添加用于ClientRam段类型的支持。第二个这种变化可包含重新规定MMU信道的尺寸的更新。第三个这种变化可包含添加/去除客户机RAM段的更新。
作为例子而不是限制,当适配固件时,第一实现变化可包含在段管理方法中向ClientRam段添加IORAM段属性。第一实现变化还可包含在段属性结构中用IORAM替代地址属性。第一变化还可包含用IORAM替代地址属性并向列举的段角色类型添加IOMMU和其它的段角色。第一变化还可包含设定用于从服务分区模块分配的客户物理地址的标记并调用新的SendCreateAlias方法以保持段的状态。第一变化还可包含当分区不再访问段或分区时向信道语境模块添加SendDetachAlias方法。第一变化还可包含添加ClientRam唯一引导,以帮助识别分配给ClientRam段的段。第一变化还可包含用于分析来自XML配置文件的IORAM段属性的方法改善。如果段具有IORAM属性,那么第一变化还可包含诸如设定VTD_READ和VTD_WRITEI/O允许的对于资源分配数据库模块(“ControlDb”)的修改。
进一步基于以上提供的例子,三个变化中的第二个可包含更新固件以重新规定MMU信道的尺寸。第二个变化可重新规定共享的IOSP中的MMUIO、MMUMAP、MMUROOT、MMUEPT(扩展页表)和MMUSHADOW表的尺寸。发现的存储器的量可存储于ControlDb的MaxMemoryMb变量中。MMUMAP、MMUROOT、MMUEPT和MMUSHADOW表扩展以容纳由MMUIO表使用的附加的存储器。
例如,当采用平台固件时,第二变化可包含对于低级平台固件文件的修改,诸如但不限于:增加分配给MMUIO的4K页的量以容纳发现的存储器和增加分配给MMUMAP和MMUROOT的4K页的量以容纳所有的MMUIO存储器。第二变化还可包含对于发现的每4MB增加ControlDb的MaxMemoryMB的值。第二变化还可包含通过使ControlDb的MaxMemoryMB增加(PoolSize*4)修改ControlDb初始化功能,这里,PoolSize是4MB的增量。第二变化还可包含在MMU_MAP_CHANNEL共享存储器结构中减少页的阴影和可扩展页表ept缺省数量。第二变化还可包含通过从ClientRam段类型去除IODEV并通过向用于GenericDevice段类型.While spe的CommandUsage命令添加ATTACH修改存储器段配置文件。
三种变化中的第三个可包含更新平台固件以更新用于添加和/或去除客户机RAM段的命令。第三变化对于IOSP的客户机创建的每个VirtualRam段向IOSP分区添加ClientRam段。因此,IOSP的MMUIO可包含由IOSP的客户机使用的所有存储器的地址。可通过选择信道存储器、请求控制分区以创建信道并使其与相关的服务器信道链接的AssignChannels方法添加段。用于创建和/或去除客户机ram段的请求可被放在IOSP的工作人员线程队列中。
例如,当适配平台固件时,第三变化可包含修改分区语境处理代码以调用RequestCreateClientRamSegemnts以在AssignChannels中将请求放在IOSP的工作人员线程队列中、调用RequestCreateClientRamSegemnts以在UnAssgnMemory方法中将请求放在IOSP的工作人员线程队列中并添加创建客户机ram并去除对于主处理部的客户机ram。第三变化还可包含修改服务分区处理代码以添加RequestCreateClientRamSegemnts方法以将创建客户机ram段请求放在IOSP的工作人员线程队列上、添加RequestCreateClientRamSegemnts以将去除客户机ram段请求放在IOSP的工作人员线程队列上、添加AddClientRamSegemnts方法以从IOSP去除客户机ram alias段、以及添加GetFirstPages方法以通过特定的段类型索引返回包含IOSP分区中的所有信道的FirstPages的散列表。GetFirstPages方法可提供安全净得,以确保不添加具有重叠的地址的ClentRam段。第三变化还可包含修改I/O特定服务分区模块,以添加RequestCreateClientRamSegemnts以将创建客户机ram段请求放在IOSP的工作人员线程队列上并添加RequestCreateClientRamSegemnts以去除IOSP的工作人员线程队列上的客户机ram段请求。第三变化还可包含向分区工作项模块添加工作项以创建客户机ram请求并去除客户机ram请求。
在一些实施例中,功能可被模仿以允许最终用户视点保持不变。通过在IOMMU结构的顶部上运行的IOSP,可在IOSP内以不同的方式转换地址。可借助于描述地址的附加数据或元数据转换地址。可在I/O请求的地址的未使用的位中固定元数据。例如,如果操作系统仅支持40个位但64位地址是可用的,那么可以使用附加的24位以承载关于地址或I/O请求的元数据。根据一个实施例,元数据可以是用于识别进行I/O请求的客户的数据。
对于没有TV-d支持的系统,不存在可用于转换客户物理地址的IOMMU,因此,可以使用代码以通过遍历MMU表直接将客户物理地址转换成主机物理地址。然后,地址可被传送到Linux核。地址中的一个位,诸如位40,可被用作其它代码的标识符以获知地址已被调整。
图4是示出根据一个实施例的使用存储器地址以在非VT-d系统中传输信息的流程图。方法400从接收供使用的数据地址的块402开始。在块404中,确定地址为客户地址。如果地址不是客户地址,那么方法400前进到块410。如果地址是客户地址,那么方法400前进到块406以寻找客户地址对于IOSP地址空间的转换。在块408中,在指向客户缓冲器的物理地址中设定位408(或另一适当的位)。在块410中,地址是要被传送到Linux核/I/O请求中的地址。
在方法400的块412中,通过可调用直接存储器存取(“DMA”)例程的Linux核处理I/O请求。在块414中,处理DMA地址。在处理DMA地址时,用于访问客户数据缓冲器的地址和用于访问IOSP存储器缓冲器的地址被区分。在块416中,确定是否在块408中设定位40(或另一适当的位)。如果位被设定,那么方法400前进到块418以清除位并通过前面转换的地址的剩余部分。如果位不被设定,那么方法400前进到块420以将IOSP客户物理地址转换成主机物理地址。在块422中,地址准备用于具有主机物理地址的DMA散收集列表。
在一些实施例中,可以适配用于修改I/O存储驱动器以使用驱动器堆栈的顶部上的4K页转换的操作系统。可在专有实现的开放源和变化的大量的补丁中实现适配。第一补丁可修订诸如Linux核的操作系统,以支持对于客户的存储器空间的DMA。当在客户的存储器中执行DMA时,IOSP可能不能缓冲反弹任何I/O请求。如果IOSP要尝试缓冲回弹,那么第一补丁可修改mm/bounce.c以放置BUG_ON。另外,pci-nommu_64.c文件可被更新以输出用于客户的4KPageTranslate功能不是IOSP。对于非VT-d系统,可以使用2TB偏移以意味着客户地址已被转换。对于具有VT-d的系统,客户存储器是映射到IOSP的MMUIO表的硬件物理身份。第一补丁还可允许与ClientRam段外面的存储器访问一起使用GuestToGuestCopy机制。
第二补丁可适配前面的对于操作系统的修改,以从用于盘存取的数据路径以及从网络的传送路径去除GuestToGuest复制调用。在到来的SCSI命令的处理中,可以将客户物理页的列表转换成IOSP相对pfns,并可用IOSP相关地址创建散收集列表。散收集列表可被传送到scsi_execute_async。
第三变化可适配固件以清楚地在BUS_DESTROY中从IOMMU去除项目。变化可添加控制虚拟机消息(“ControlVmm”)调用以使VTD高速缓存器无效。变化还可创建和/或破坏ClientRam段并在创建/破坏ClientRam段时发送新的无效VTD高速缓存器消息。
例如,当适配平台固件时,可以通过添加CONTROLVMM_INVALIDATE_VTD_CACHE Id并通过添加ContrlVmm invalidateVtdCache消息结构,修改controlvmmchannel.h文件。可通过添加CONTROLVMM_INVALIDATE_VTD_CACHE并错过ID并通过添加ControlVmmCmdVmmInvalidateVtdCache消息结构更新ControlVmm结构。分区语境代码可被更新:修改DoVmmWork以接收CONTROLVMM_INVALIDATE_VTD_CACHE事件、添加VtdCacheInvalidated方法以操作接收的CONTROLVMM_INVALIDATE_VTD_CACHE事件、修改UnAssignMemory以发送新的CONTROLVMM_INVALIDATE_VTD_CACHE请求。Resource Root和IResource Root代码可被修改以添加SendInvalidateVtdCacheToBoot方法以找到启动分区,并通过启动分区发送CONTROLVMM_INVALIDATE_VTD_CACHE请求。Resource Root和IResource Root代码也可被修改以具有更新的ProcessControlVmmEvent以接收CONTROLVMM_INVALIDATE_VTD_CACHE事件。SystemPartition和ISystem Partition代码可被更新以添加用于发送CONTROLVMM_INVALIDATE_VTD_CACHE请求的SendInvalidateVtdCache方法。Partion Work Items代码文件可被修改以添加WiVmmInvalidateVtdCache类。Control Db Vmm代码可被修改:包含用于CB VirtToRootVirt调用的Control Db Pages API的界面、包含用于单元结构基准的CellDataChannel、更新ControlDbPrepareControlVmmMessage以包含CONTROLVMM_INVALIDATE_VTD_CACHE作为有效标识符;更新ControlDbApplyControlVmmMessage以对于各DMA重新映射单元描述符插入CONTROLVMM_INVALIDATE_VTD_CACHE请求。Control Virtual Machine Message代码可被更新以包含新的ControlVmm CONTROLVMM_INVALIDATE_VTD_CACHE消息。Virtual Maching Call代码可被更新以包含新的ControlVmm消息以使得VmCall请求不必要。
第四变化可包含去除无效化VT-d高速缓存VMCALLS的变化。第四变化可对于不再使用的VMCALL_CONTROL_INVALIDATE_VTD_CACHE去除所有基准。第五变化可包含进一步去除无效化的VT-d高速缓存VMCALLs的变化。第五变化可对于不再使用的VMCALL_CONTROL_INVALIDATE_VTD_CACHE去除基准。
图5是示出根据本公开的一些实施例的方法的流程图。方法500从在IOSP上接收来自客户的I/O请求的块502开始。在块504中,I/O请求的客户物理地址被转换成IOSP相对物理地址。在块506中,访问与IOSP相对物理地址对应的物理装置。在块508中,可通过物理装置访问客户的共享存储器。
图6是示出根据本公开的另一实施例的方法的流程图。方法600从分配第一多个位以存储地址的块602开始。在块604中,第二多个位被分配以存储元数据信息。
图7是示出根据本公开的又一实施例的方法的流程图。方法700从接收用于I/O请求的存储器地址的块702开始。在块704中,存储器地址被转换成IOSP地址。在块706中,设定指示存储器地址已被转换的存储器地址的转换器位。在块708中,存储器地址被传送到操作系统。
如上面讨论的那样,软分区系统可允许在单个平台上执行的多个虚拟系统环境可包含IOSP。在单独的虚拟存储器中操作的IOSP在平台上分隔开并服务来自多个客户的盘和网络请求。因此,提供安全和有效的系统。IOSP提供从虚拟地址向物理地址的转换,使得,从客户的视点,被客户使用的虚拟地址看起来是物理地址。可以在Linux核中实现IOSP。IOSP的地址空间可扩展以包含DMA存储器部分,使得Linux核不包含所有的客户的存储器。IOSP可在支持或者不支持用于引导I/O的虚拟化技术的硬件上操作。
虽然详细描述了本公开及其优点,但应理解,在不背离由附的权利要求限定的本公开的精神和范围的情况下,可在这里提出各种变化、替代和修改。并且,本申请的范围不是要限于在说明书中描述的物质、手段、方法和步骤的处理、机器、制造和成分。从本公开,本领域技术人员很容易理解,根据本公开,可以利用当前存在或者以后开发的执行与这里描述的相应的实施例基本上相同的功能或者实现基本上相同的结果的物质、手段、方法或步骤的公开、机器、制造和成分。因此,所附的权利要求要在它们的范围内包含物质、手段、方法或步骤的这种处理、机器、制造、成分。

Claims (15)

1.一种方法,包括:
分配存储器地址的第一多个位以存储地址;和
分配存储器地址的第二多个位以存储信息。
2.根据权利要求1的方法,其中,存储器地址作为I/O服务分区IOSP上的输入/输出I/O请求的一部分被接收。
3.根据权利要求1的方法,其中,第二多个位存储识别请求对于存储器地址的输入/输出I/O访问的客户的信息。
4.一种方法,包括:
接收用于输入/输出I/O请求的存储器地址;
将存储器地址转换成I/O服务分区IOSP地址;
设定指示已转换存储器地址的存储器地址的转换器位;和
将存储器地址传送到操作系统。
5.根据权利要求4的方法,其中,存储器地址被转换,并且,如果存储器地址不是内部地址,那么执行转换器位的设定。
6.根据权利要求5的方法,还包括处理直接存储器访问地址。
7.根据权利要求6的方法,还包括:
当转换器位被设定时,清除转换器位并传送通过转换的地址;和
当转换器位不被设定时,将存储器地址转换成主机物理地址。
8.根据权利要求4的方法,其中,将存储器地址传送到操作系统包含将存储器地址传送到Linux核。
9.一种计算机程序产品,包括:
计算机可读介质,包含:
用于接收用于输入/输出I/O请求的存储器地址的代码;
用于将存储器地址转换成I/O服务分区IOSP地址的代码;
用于设定指示已转换存储器地址的存储器地址的转换器位的代码;和
用于将存储器地址传送到操作系统的代码。
10.根据权利要求9的计算机程序产品,其中,存储器地址被转换,并且,如果存储器地址不是内部地址,那么执行转换器位的设定。
11.根据权利要求10的计算机程序产品,还包括用于处理直接存储器访问地址的代码。
12.根据权利要求11的计算机程序产品,其中,该介质还包括:
用于在转换器位被设定时清除转换器位并传送通过转换的地址的代码;和
用于在转换器位不被设定时将存储器地址转换成主机物理地址的代码。
13.一种计算机程序产品,包括:
计算机可读介质,包含:
用于分配存储器地址的第一多个位以存储地址的代码;和
用于分配存储器地址的第二多个位以存储信息的代码。
14.根据权利要求13的计算机程序产品,其中,该介质还包括接收作为I/O服务分区IOSP上的输入/输出I/O请求的一部分的存储器地址的代码。
15.根据权利要求13的方法,其中,第二多个位存储识别请求对于存储器地址的输入/输出I/O访问的客户的信息。
CN201180060890XA 2010-10-29 2011-10-27 具有共享的输入/输出的安全分区 Pending CN103262053A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US40802510P 2010-10-29 2010-10-29
US61/408,025 2010-10-29
US12/955,138 US20120110297A1 (en) 2010-10-29 2010-11-29 Secure partitioning with shared input/output
US12/955,138 2010-11-29
PCT/US2011/057994 WO2012058371A2 (en) 2010-10-29 2011-10-27 Secure partitioning with shared input/output

Publications (1)

Publication Number Publication Date
CN103262053A true CN103262053A (zh) 2013-08-21

Family

ID=45994737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180060890XA Pending CN103262053A (zh) 2010-10-29 2011-10-27 具有共享的输入/输出的安全分区

Country Status (6)

Country Link
US (1) US20120110297A1 (zh)
EP (1) EP2633412A4 (zh)
CN (1) CN103262053A (zh)
AU (1) AU2011319821A1 (zh)
CA (1) CA2816441A1 (zh)
WO (1) WO2012058371A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112801856A (zh) * 2021-02-04 2021-05-14 西安万像电子科技有限公司 数据处理方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170050A (zh) * 2017-12-21 2018-06-15 黑龙江惠达科技发展有限公司 一种基于Linux系统的高性能陀螺仪数据采集方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560686B1 (en) * 1999-04-01 2003-05-06 Fourie, Inc. Memory device with variable bank partition architecture
US20080091855A1 (en) * 2006-10-17 2008-04-17 Moertl Daniel F Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations
US20100077397A1 (en) * 2006-09-26 2010-03-25 Giap Yong Ooi Input/output (I/O) device virtualization using hardware
CN101741831A (zh) * 2008-11-10 2010-06-16 国际商业机器公司 动态物理和虚拟多路径输入/输出的方法、系统和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
US20070061441A1 (en) * 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US7673116B2 (en) * 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US8176501B2 (en) * 2006-06-23 2012-05-08 Dell Products L.P. Enabling efficient input/output (I/O) virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560686B1 (en) * 1999-04-01 2003-05-06 Fourie, Inc. Memory device with variable bank partition architecture
US20100077397A1 (en) * 2006-09-26 2010-03-25 Giap Yong Ooi Input/output (I/O) device virtualization using hardware
US20080091855A1 (en) * 2006-10-17 2008-04-17 Moertl Daniel F Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations
CN101741831A (zh) * 2008-11-10 2010-06-16 国际商业机器公司 动态物理和虚拟多路径输入/输出的方法、系统和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112801856A (zh) * 2021-02-04 2021-05-14 西安万像电子科技有限公司 数据处理方法和装置

Also Published As

Publication number Publication date
WO2012058371A2 (en) 2012-05-03
WO2012058371A3 (en) 2012-07-19
EP2633412A2 (en) 2013-09-04
AU2011319821A1 (en) 2013-05-30
CA2816441A1 (en) 2012-05-03
US20120110297A1 (en) 2012-05-03
EP2633412A4 (en) 2013-11-13

Similar Documents

Publication Publication Date Title
JP6190045B2 (ja) 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
US10339056B2 (en) Systems, methods and apparatus for cache transfers
CN102473139B (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
US9612966B2 (en) Systems, methods and apparatus for a virtual machine cache
KR102423713B1 (ko) 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
JP2012532381A (ja) 凝集された小さいページを用いて拡張されたページサイズ
MX2012014534A (es) Espacios de multiples direcciones por adaptador.
CN103052945B (zh) 管理计算机存储器的方法及数据存储设备
CN109901909B (zh) 用于虚拟化系统的方法及虚拟化系统
KR101893966B1 (ko) 메모리 관리 방법 및 장치, 및 메모리 컨트롤러
US11836087B2 (en) Per-process re-configurable caches
CN103262052A (zh) 具有共享的输入/输出的安全分区
TWI785320B (zh) 裝置內標記資料移動系統、資訊處置系統及用於提供裝置內標記資料移動之方法
CN103262053A (zh) 具有共享的输入/输出的安全分区
US10936219B2 (en) Controller-based inter-device notational data movement system
KR102544401B1 (ko) 어드레스 트랜슬레이션 캐시 및 이를 포함하는 시스템
US11281612B2 (en) Switch-based inter-device notational data movement system
TW202324107A (zh) 位址轉譯快取及包括其的處理器系統
KR20210043001A (ko) 하이브리드 메모리 시스템 인터페이스

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130821