CN100595743C - 用于虚拟机环境中直接输入输出的方法和设备 - Google Patents
用于虚拟机环境中直接输入输出的方法和设备 Download PDFInfo
- Publication number
- CN100595743C CN100595743C CN200610088634A CN200610088634A CN100595743C CN 100595743 C CN100595743 C CN 100595743C CN 200610088634 A CN200610088634 A CN 200610088634A CN 200610088634 A CN200610088634 A CN 200610088634A CN 100595743 C CN100595743 C CN 100595743C
- Authority
- CN
- China
- Prior art keywords
- access
- dma
- direct memory
- unit
- memory access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Abstract
允许直接存储器存取单元(225)对虚拟地址空间进行存取的方法和装置,通过接收来自直接存储器存取设备(225)的对存储器存取(5)请求;根据接收到的对存储器存取请求确定设备标识符(10);根据所确定的设备标识符来确定存储器保护模式(15);以及根据所确定的存储器保护模式来授权直接存储器存取单元对存储器(20)的存取来实现。
Description
相关申请
本申请要求Cowan等人2005年3月21日申请的,美国临时申请序列号60/664219题目为“用于虚拟机环境中直接输入输出的方法和设备”的申请的优先权。
技术领域
本发明涉及一种用于虚拟机环境中直接输入输出的方法和设备。
背景技术
现今,计算机系统通常在单机环境中支持多操作系统。典型地,机器环境由主操作系统控制。该主操作系统创建一个或多个虚拟机环境,它们都服从于由主操作系统维持的环境。在特定的虚拟机环境中,客户操作系统能够操作并产生独立的用户任务。从任意独立的用户任务角度观察,客户操作系统看来是虚拟机环境中唯一的并且是全能的控制因素。事实上,在虚拟机环境中执行的独立的用户任务通常并不知道其并不在独立的计算环境中运行。为了实现目的和意图,虚拟机环境至少从用户任务角度看起来与专用计算环境没有什么区别。在大部分实例中,为客户操作系统提供的虚拟机环境对客户操作系统来说基本上是透明的。同样,在虚拟机环境中执行的客户操作系统,在很多情况下,也不知道其不在专用计算环境中执行。
为了提供这种透明级,建立虚拟机环境的主操作系统安装适当的服务程序使得客户操作系统不知道其在虚拟环境中执行。典型地,这意味着客户操作系统实际上在与主操作系统提供的服务相交互。由此,客户操作系统没有对连在虚拟机环境存在的真实计算环境中的任意外围设备直接存取。
通过建立用于与输入和输出设备交互的服务,主操作系统必须通过定义与输入和输出设备相交互,并且必须抑制由任意其他执行进程进行这种交互,即使执行进程是在虚拟机环境中执行的客户操作系统也是如此。结果,客户操作系统仅认为其在控制输入输出设备。实际上,客户操作系统在使用由主操作系统提供的服务。这对驻留一个或多个虚拟机环境的主计算环境所表现出来的性能造成破坏性影响。
由主操作系统执行的输入或输出交互的一个通常形式是控制直接存储器存取设备。直接存储器存取单元通常负责将信息从输入设备移动至系统存储器或者从系统存储器移动至输出设备。为了给客户操作系统提供透明的服务,主操作系统必须直接控制该直接存储器存取设备。这个控制典型地包括管理存储器中的输入和输出缓冲器并且指引直接存储器存取单元使用预定的缓冲器。这些交互全部根据通常由主操作系统管理的特定的存储器存取保护模式完成。附属存储器存取保护模式可以实际存在于虚拟机环境中,但是该存储器保护模式通常不处理物理设备,例如连接在由主操作系统管理的真实计算环境上的输入以及输出外围设备。
附图说明
下面将结合附图和图表说明一些可选实施例,其中相同的数字代表相同的部件,其中:
图1是描述用于允许直接存储器存取单元存取虚拟地址空间的一个示例方法的流程图;
图2是描述用于确定设备标识符符的可选示例方法的流程图;
图3是描述用于确定存储器保护模式的一些可选示例方法的流程图;
图4是描述用于授权对存储器存取的可选示例方法的流程图;
图5是描述用于允许直接存储器存取单元存取虚拟地址空间的一个可选示例方法的流程图;
图6是描述用于允许第二直接存储器存取单元存取虚拟地址空间的一个可选示例方法的流程图;
图7是描述用于使第二直接存储器存取设备能够对第二虚拟地址空间存取的可选示例方法的流程图;
图8是描述用于允许直接存储器存取单元对虚拟地址空间存取的一个可选示例方法的流程图;
图9是描述用于抑制直接存储器存取设备的可选示例方法的流程图;
图10是描述用于响应由直接存储器存取设备示出的非重大错误的可选方法的流程图;
图11是描述用于响应由直接存储器存取设备示出的重大错误的可选方法的流程图;
图12是描述用于通过直接存储器存取设备提供对存储器的直接存取的系统的多个示例实施例的框图;
图13是描述仲裁器的一个示例可选实施例的框图;
图14是描述存取实施器的多个可选实施例的框图;
图15是描述用于提供直接存储器存取单元对虚拟地址空间进行存取的系统的详细操作性特征的框图;
图16是描述分层的系统结构的框图,其中直接存储器存取单元被允许对虚拟地址空间进行存取;
图17是使直接存储器存取控制器能够获得对虚拟地址空间的存取的系统的一个示例实施例的框图;及
图18是描述允许直接存储器存取单元对虚拟地址空间进行存取的系统的几个可选示例实施例的内部操作的数据流图。
具体实施方式
图1是描述用于允许直接存储器存取单元存取虚拟地址空间的一个示例方法的流程图。根据这个示例方法,主机系统通过首先从直接存储器存取单元接收对存储器存取的请求,允许直接存储器存取单元对虚拟地址空间的存取(步骤5)。为了允许存取,本方法规定为请求对包含在虚拟地址空间内的存储器进行存取的直接存储器存取单元确定请求者标识符(步骤10)。应该理解,直接存储器存取单元包括连接在具有直接存取存储器资源的能力的外围总线上的任意物理或功能上的设备。因而,这个术语不会与直接存储器存取控制器相混淆,直接存储器存取控制器包括通常通过提供存储器地址并协调数据转移至存储器中提供的地址来控制从外围单元至存储器的数据流的设备。
根据本方法的一个变化,根据从直接存储器存取单元中接收的存取存储器的请求确定请求者标识符。应该理解,根据本方法的一个变化,特定的直接存储器存取单元实际上可以由多于一个控制真实计算环境的主操作系统控制。例如,根据一个说明的使用情况,直接存储器存取单元由客户操作系统控制。在这种情况下,存储器保护模式通常根据请求者标识符来确定(步骤15)。该确定的存储器保护模式典型地与特定的虚拟地址空间相关联。一旦确定了存储器保护模式,该直接存储器存取单元被授权根据存储器保护模式对存储器进行存取(步骤20)。
图2是描述用于确定请求者标识符的可选示例方法的流程图。根据一个可选示例方法,直接存储器存取单元的请求者标识符通过确定总线标识符而确定(步骤28)。典型地,总线标识符包括与请求者物理连接于其上的特定外围总线相关联的标识符。根据另一个示例可选方法,确定请求对存储器存取的直接存储器存取单元的请求者标识符通过确定设备标识符完成。设备标识符标识连接在特定外围总线上的物理设备。根据本方法的另一个可选示例变化,确定直接存储器存取单元的请求者标识符包括确定功能标识符(步骤35)。功能标识符典型地指示连接在特定外围总线上的物理设备中所包括的特定功能。这里给出用于确定特定请求者标识符的方法的各种变体,只是为了说明用于确定请求者标识符的多个可选方法,而并不是为了限定后面权利要求的范围。
图3是描述用于确定存储器保护模式的一些可选示例方法的流程图。由此,本方法的一个示例变体规定基于单个请求者标识符来识别存储器保护模式(步骤40)。应该理解,单个请求者标识符,如此前在本方法的可选变体中说明的,包括-但不限于总线标识符、设备标识符及功能标识符中的至少一个。应该理解,通常与虚拟地址空间相关联的特定的存储器保护模式,可以被多个不同的直接存储器存取单元使用。在这种情况下,本方法的一个变体规定为一组请求者标识符识别存储器保护模式(步骤45)。根据本方法的另一示例变化,基于请求者标识符域来识别存储器保护模式(步骤50)。在本方法的这些示例变化中的任意一个中,随后根据识别的存储器保护模式选择存储器保护模式(步骤55)。根据一个可选示例方法,请求者标识符包括-但不仅限于总线标识符,设备标识符及功能标识符。
图4是描述用于授权对存储器的存取的可选示例方法的流程图。一旦根据所确定的请求者标识符确定了存储器保护模式,请求对存储器进行存取的直接存储器存取单元被授权对存储器进行存取。应该理解,根据一个说明性的用例,直接存储器存取单元可以请求对系统存储器或外围存储器进行存取。根据一个说明性的用例,外围存储器包括但不仅限于包括在第二直接存储器存取设备中的存储器。因此,本方法的一个示例变体规定授权请求的直接存储器存取单元对系统存储器进行存取(步骤60)。根据本方法的另一示例变化,授权对存储器的存取包括授权直接存储器存取单元对外围存储器进行存取(步骤65)。
图5是描述用于允许直接存储器存取单元存取虚拟地址空间的一个可选示例方法的流程图。应该理解,为了确定存储器保护模式,直接存储器存取单元提供请求者标识符,其用作选择特定存储器保护模式的基础。根据至少一个说明性的用例,直接存储器存取单元被具体化为外围部件互连(PCI)兼容设备。在另一个说明性的用例,直接存储器存取单元被具体化为外围部件互连快速(PCIe)兼容设备。根据这些说明性的用例,连接在外围组件互连外围总线上的装置通常由主机系统识别。根据本方法,请求者标识符被分配给当被连接在外围总线上时被系统识别的直接存储器存取单元(步骤70)。应该理解,根据本方法,可以支持任意类型的外围总线。因此,这里说明的用例并非意为限制后面权利要求的范围。
一旦将请求者标识符分配给直接存储器存取单元,虚拟地址空间则与请求者标识符相关联(步骤75)。照此,通常由客户操作系统管理的虚拟地址空间,与直接存储器存取单元相关联。因此,一旦确立了虚拟地址空间的保护模式,就允许直接存储器存取单元对虚拟地址空间进行存取(步骤80)。还应该理解,根据本方法的一个变化,允许多于一个直接存储器存取单元对特定虚拟地址空间进行存取。例如,根据本方法的一个示例性变化,如上所述根据单个请求者标识符、一组请求者标识符及请求者标识符的范围其中至少之一,完成对存储器保护模式的识别。
图6是描述用于允许第二直接存储器存取单元存取虚拟地址空间的一个可选示例方法的流程图。如上所述,根据一个说明的用例,允许多个直接存储器存取单元对特定虚拟地址空间进行存取。根据本方法的一个示例性的变化,一旦根据这里的方法配置了第一直接存储器存取单元,将第二请求者标识符分配给第二直接存储器存取单元(步骤85)。随后第二请求者标识符被与之前已经与第一请求者标识符关联的虚拟地址空间相关联(步骤90)。根据本方法的这个示例性的变化,至少两个直接存储器存取单元与单虚拟地址空间相关联。
图7是描述用于使第二直接存储器存取设备能够对第二虚拟地址空间存取的可选示例方法的流程图。应该理解,根据一个说明性的用例,多于一个虚拟地址空间被提供在一个实际机器环境中。因此,本方法的一个示例变化规定为第二直接存储器存取单元分配请求者标识符(步骤95)。第二虚拟地址空间然后被与分配给第二直接存储器存取单元的请求者标识符相关联(步骤100)。随后为第二虚拟地址空间确立存储器保护模式(步骤105)。应该理解,根据一个说明性的用例,第二直接存储器存取设备由在第二虚拟环境中执行的第二客户操作系统管理。因而,第二虚拟环境具有与其相关联的第二虚拟地址空间。本方法的这个例子变化规定允许多个直接存储器存取单元实现对不同虚拟地址空间的存取,这些虚拟地址空间与由控制真实计算环境的主操作系统管理或维护的不同的虚拟环境相关联。
图8是描述用于允许直接存储器存取单元对虚拟地址空间存取的一个可选示例方法的流程图。应该理解,根据本方法的这个变化,当存储器保护模式被违反时,必定有一些响应的形式。因此,一旦根据存储器保护模式授权对一个直接存储器存取单元进行存取,方法的这个示例变化规定响应于对虚拟地址空间的非授权的试图存取而抑制侵入的请求单元。根据这个可选示例方法,当违反了存储器保护模式时(步骤110),抑制直接存储器存取单元(步骤115)。
图9是描述用于抑制直接存储器存取设备的可选示例方法的流程图。应该理解,当直接存储器存取单元违反存储器保护模式时,可以应用各种响应。因此,这里的示例打算说明本方法的一些示例变化,而不意为限制后面权利要求的范围。
根据一个说明性的用例,直接存储器存取单元可以试图将中断消息送往包括在虚拟地址空间中的特定地址。因而,本方法的一个示例变化规定:当检测到这样的中断消息,并且其被寻址到的特定虚拟地址空间违反所选择的存储器保护模式时,丢弃该中断消息(步骤120)。应该理解,中断消息通常被外围单元用作手段以通知另一装置(例如处理器):特定操作已经完成。这种类型的中断消息(又名“信号消息”)通常用来代替直接中断连接。也应该理解,当外围单元,例如直接存储器存取单元,向存储器中特定位置发出单一中断消息时,并且该信号消息违反选定的存储器存取保护模式,在系统级简单地忽略该中断消息可能是有利的。任何其他的响应可能引起其他不期望的系统级混乱,例如如果不当或恶意地编程的直接存储器存取设备以高速率产生中断消息,系统可能因试图服务中断而被压制。
根据另一说明性的用例,直接存储器存取单元可能试图向特定虚拟地址空间写入数据。因此,本方法的另一示例变化规定,当写请求指向的虚拟地址违反所确定的存储器保护模式时丢弃该写请求(步骤125)。应该理解,当直接存储器存取单元试图向虚拟地址空间中的特定位置写入时,丢弃写请求可能是最合适的响应。否则,在特定虚拟地址空间中的信息可能被破坏,导致损坏在虚拟环境中或驻留在该虚拟环境的真实计算环境中执行的其它进程。
在另一说明性的用例中,直接存储器存取单元可能试图违反存储器保护模式从某位置中读取。在这种情况下,本方法的一个示例变化规定以出错响应读请求(步骤130)。在这种情况下,应该理解,当直接存储器存取单元试图从特定虚拟地址空间中的存储器位置中读取信息时,必须通知直接存储器存取单元已经出错。否则,该直接存储器存取单元可能会被允许继续并可能对已经发生的任意错误完全没有发觉。
在一些情况下,直接存储器存取单元可能试图向包含在虚拟地址空间中的外围设备中写入。当检测到这样的外围写请求并且该外围写请求违反确定的存储器保护模式时,本方法的可选示例变化规定丢弃该外围写请求(步骤135)。通常就是这样,对于对虚拟地址空间中包括的位置的任何写请求,一个合适的响应是简单地忽略该写请求。在该写请求是非虚假的情况下,违反存储器保护模式的设备可能显示出另外的异常行为。在这种情况下,该后来的异常行为可以用于唤起校正动作。
根据另一说明性的用例,直接存储器存取单元可能试图从包含在虚拟地址空间中的外围设备中读取。在这种情况下,本方法的一个变化规定以预先确定的值响应该外围读请求(步骤140)。通过以预先确定的值响应外围读请求,可以利用以意外的或非法的值响应,而通知直接存储器存取单元出错。根据本方法的另一变化,当来自直接存储器存取单元的外围读请求被确定为违反确定的存储器保护模式时,产生处理器异常(步骤145)。在这种情况下,强加一个异常,使处理器响应已经被授权对虚拟地址空间进行存取的直接存储器存取单元所表现出来的行为。
图10是描述用于响应由直接存储器存取设备表现出的非重大错误的可选方法的流程图。应该理解,根据一个说明性的用例,已经被授权对虚拟地址空间进行存取的直接存储器存取单元可以自己确定错误已经发生。在这种情况下,直接存储器存取单元通常将报告非重大错误。当非重大错误被识别(步骤150),直接存储器存取单元被抑制(步骤155)。应该理解:直接存储器存取单元以与符合这里所讲授的内容一致的方式被抑制。
图11是描述用于响应由直接存储器存取设备所表现出的重大错误的可选方法的流程图。应该理解,根据一个说明性的用例,已经被授权对存储器存取的直接存储器存取单元可以报告重大错误状况。在这种情况下,整体层次可能已经遭遇异常状态。因此,本方法的这个变化规定抑制包含在与报告重大错误的直接存储器存取单元相关的层次中的多个设备(步骤165)。因此,这种抑制在直接存储器存取单元报告重大错误时(步骤160)进行。分级的一个示例是连接在特定外围总线上的所有物理设备的分级。因而,连接在总线上的每个物理设备的全部功能都可以被抑制。
图11A是描述在外围读出错情况下触发抑制的一个方法的流程图。在本方法的一个示例变化中,当外围读返回错误时(步骤152),直接存储器存取单元也被抑制(步骤157)。例如,当处理器试图从外围模式的直接存储器存取单元中读出数据时或当直接存储器存取单元试图从第二直接存储器存取单元执行外围读时,若该尝试结果为出错状态,直接存储器存取单元被抑制。
图11B是描述由于通过外设部件互连快速(PCIE)兼容总线接收的请求的数据部分损坏而触发抑制的一个方法的流程图。在这种情况下,当请求的数据部分被损坏时(步骤162)抑制是请求源的直接存储器存取单元(步骤167)。
图12是描述由提供直接存储器存取单元对虚拟地址空间进行存取的的系统的多个示例实施例的框图。根据一个示例实施例,用于提供直接存储器存取单元对虚拟地址空间存取的系统包括存储器210、第一直接存储器存取单元225、系统互连205、仲裁器215及存取实施器220。根据一个可选示例实施例,存储器包括系统存储器210。根据另一可选示例实施例,存储器包括外围存储器235。应该理解,根据一个说明性的用例,外围存储器235被包括在连接在系统互连205上的外围中。包括外围存储器235的外围的一个示例是第二直接存储器存取单元230。应该理解,根据一个可选示例实施例,系统互连205包括外设部件互连总线。在另一示例实施例中,系统互连205包括外设部件互连快速总线。应该理解,这里示出的系统互连的这些可选示例实施例仅为了说明而并非意为对后面权利要求的范围进行限定。
操作中,存储器(210或235)能够存储信息。第一直接存储器存取单元225能够与存储器(210或235)交互。系统互连205使第一直接存储器存取单元225能够与存储器(例如,系统存储器210或外围存储器235)交互。为了获取对存储器的存取,第一直接存储器存取单元225将向仲裁器215发出请求。作为响应,仲裁器215确定存储器是否是可用的。在存储器是可用的情况下,仲裁器215为第一直接存储器存取单元225确定请求者标识符。基于该为第一直接存储器存取单元225确定的请求者标识符,仲裁器215生成请求者标识符信号260。存取实施器220接收请求者标识符信号260并根据该请求者标识符信号260选择存取保护模式。一旦存取实施器220选择了存取保护模式,存取实施器在系统互连205中发生数据转移事务的过程中实施选择的存取保护模式。
图13是描述仲裁器的一个示例可选实施例的框图。根据该示例可选实施例,仲裁器215包括请求者标识符寄存器240。根据该可选示例实施例,请求者标识符寄存器240接收总线标识符245、设备标识符250及功能标识符255中的至少一个。应该理解,总线标识符245典型地从请求对虚拟地址空间存取的第一存储器存取设备225(又名“请求者”)中接收。也应该理解,根据一个说明性的用例,直接存储器存取单元根据系统互连205向直接存储器存取单元提供的信息确定总线标识符(标识其连接到哪条总线)。典型地,系统互连205向每个连接在其上的外设提供总线标识信号。这些总线标识信号使连接在系统互连205上的设备能够确定其被连接在包含多个系统互连的系统中的哪个总线上。
根据一个说明性的用例,每个连接在系统互连205上的物理设备通过设备标识符与连接在同一系统互连205上的其他物理设备相区别。当控制器识别一设备已经连接在特定系统互连上时,典型地由系统控制器222将设备标识符植入该设备中。根据另一说明性的用例,请求者标识符包括功能标识符。功能标识符也典型地由系统控制器222植入包括在连接在系统互连205之上的物理设备的特定功能中。应该理解,请求者标识符寄存器240进一步包括将总线标识符245、设备标识符250及功能标识符255中的至少一个转换成请求者标识符信号260的转换机制。
图14是描述存取实施器的多个可选实施例的框图。应该理解,根据一个可选示例实施例,存取实施器220包括请求者识别单元265。一个可选示例实施例的请求者识别单元265包括请求者标识符寄存器270。请求者标识符寄存器270被用于存储单请求者标识符。在操作中,单请求者标识符被提供295给包括在存取实施器220的该示例实施例中的比较器320。该比较器320还包括虚拟地址空间表,一旦由请求者标识符寄存器270提供的单请求者标识符295和从仲裁器215中接收的请求者标识符信号260代表的请求者标识符之间的比较成功,则比较器320根据提供给比较器320的请求者标识符生成虚拟地址空间选择信号335。
根据另一可选示例实施例,请求者识别单元265包括请求者标识符匹配组275。该匹配组275包括一个或多个寄存器,每个能够存储请求者标识符。该一个或多个存储在包含在匹配组275中的寄存器中的请求者标识符被提供300给包含在存取实施器220的可选示例实施例中的比较器325。该比较器325然后将由从仲裁器215中接收的请求者标识符信号260代表的值与从请求者标识符匹配组275中接收的一个或多个请求者标识符300相比较。当成功比较发生时,也包含虚拟地址空间表的比较器325,根据从仲裁器215中接收的请求者标识符信号260生成基于虚拟地址的选择器信号335。
根据另一可选示例实施例,请求者识别单元265包括请求者标识符域组290。该请求者标识符域组290,根据该可选示例实施例,包括开始寄存器280及结束寄存器285。在操作中,开始寄存器280提供开始值305,而结束值310由结束寄存器285提供。该开始值305和结束值310都被发送给包含在存取实施器220的这个可选示例实施例中的比较器330。根据该可选示例实施例,比较器330将从仲裁器215中接收的请求者标识符信号260表示的值与从请求者标识符域组290接收到的开始值305和结束值310相比较。当该比较器发现由接收到的请求者标识符信号260代表的值位于由开始值305和结束值310规定的域之间时,也包括虚拟地址空间表的比较器330,生成虚拟地址空间选择器335。应该理解,虚拟地址空间选择器335根据从仲裁器215中接收到的请求者标识符信号260而生成。
图15是描述用于提供直接存储器存取单元对虚拟地址空间存取的一个示例系统的详细操作性特征的框图。应该理解,根据一个可选示例实施例,仲裁器215接收来自第一直接存储器存取(DMA)单元225的请求者标识符400。还应该理解根据一个说明性的用例,第一直接存储器存取单元225,可能并不关注存取系统存储器210。因此,仲裁器215必须确定第一存储器存取单元225正试图存取哪个存储器资源。因而,仲裁器215的一个可选示例实施例接收来自第一直接存储器存取单元225的资源标识符405。应该理解,依照在此所讲授的内容,资源标识符405典型地与对存储器存取的请求相关联地被接收。
根据一个说明的示例实施例,图12进一步说明用于为直接存储器存取单元提供直接存取虚拟地址空间的系统,进一步包括系统控制器222。根据这个可选的示例实施例,该系统控制器222使用系统互连205将系统保护模式存储在存取实施器220中。一个可选示例实施例的系统控制器222也使用系统互连205来分配请求者标识符给第一直接存储器存取单元225。应该理解,存储在存取实施器中的存储器保护模式是与分配给第一直接存储器存取单元225的请求者标识符相关联地存储的。
根据另一可选说明的实施例中,系统控制器222将第二请求者标识符分配给第二直接存储器存取单元230。应该理解,根据这个可选示例实施例,系统控制器222规划存取实施器220去将与第一请求者标识符相关联地存储的存储器保护模式和与与第二请求者标识符相关联地存储的存储器保护模式关联起来。因而,第一直接存储器存取单元225和第二直接存储器存取单元230都将与共同的存储器保护模式相关联。
根据另一可选示例实施例,系统控制器222将第二请求者标识符分配给第二直接存储器存取单元230。根据这个可选示例实施例,该系统控制器222将第二存储器保护模式存储在存取实施器220中。在这种情况下,第二保护模式被与第二请求者标识符相关联地存储。根据一个说明性的用例,系统控制器222规划存取实施器220以使第二直接存储器存取单元230能够与第二存储器保护模式相关联。应该理解,根据这个说明性的用例,系统控制器222还规划存取实施器220去将第一存储器保护模式与第一请求者标识符(与第一直接存储器存取单元225相关联)相关联。
根据一个可选示例实施例,图15也说明当存储器保护模式已经被违反时,存取实施器220抑制第一直接存储器存取单元225。根据一个可选示例实施例,存取实施器220从系统互连235接收周期类型指示符430和存取地址425中的至少一个。在一个可选示例实施例中,存取实施器220通过检查从系统互连205中接收到的周期类型信号430中表示的值,确定第一直接存储器存取单元225正在试图发出信号消息。根据这个可选示例实施例,存取实施器220通过阻止完成事务来抑制该第一直接存储器存取单元225。在一个可选示例实施例中,存取实施器220将错误信号435发送回系统互连205,由此防止信号消息的完成。
根据另一可选示例相实施例,当检测出读请求时存取实施器220通过强加一事务错误来抑制直接存储器存取单元225。因此,存取实施器220通过检查出现在周期类型信号430中的值确定读请求在系统互连205上挂起。当以这种方式检测到读请求时,存取实施器220将一错误信号435发送回系统互连205。
在另一示例可选实施例中,存取实施器220通过阻止外围写请求的完成来抑制直接存储器存取单元225。应该理解,这个可选示例实施例的存取实施器220通过检查从系统互连上接收到的周期类型信号430的状态来确定外围写请求何时在系统互连205上执行。根据一个可选示例实施例,存取实施器220通过将错误信号435写回至系统互连205来阻止外围写请求的完成。
根据另一可选示例实施例,当检测出外围读请求时,存取实施器220通过替换响应值来抑制该第一直接存储器存取单元225。在这种状况下,存取实施器220通过感测从系统互连205中接收到的周期类型信号430的状态检测外围读。当外围读以这种方式被检测出来时,存取实施器220将替换值445发回至系统互连205。而根据另一可选示例实施例,检测到外围读请求时,存取实施器220生成处理器异常440,从而将处理器异常发回至系统互连205。
图15进一步说明了,根据一个可选示例实施例,第一直接存储器存取单元225能够发出重大错误信号450和非重大错误信号455中的至少一个。应该理解,第一直接存储器存取单元225典型地能够检测其何时已经经历了意外形式的操作。在一些情况下,意外操作被确定为属于局部化的范围。因此,第一直接存储器存取单元225,在这种情况下,发出非重大错误信号445至系统互连205。在一个可选实施例中,系统互连470包括外设部件互连快速总线,并且当系统互连报告传送请求的数据部分受损时,抑制第一直接存储器存取单元225。
图16是描述分层的系统结构的框图,其中直接存储器存取单元被允许对虚拟地址空间进行存取。根据这个示例实施例,第一直接存储器存取单元475被包含在通过互连桥465连接在第一系统互连205上的层次490中。根据一个可选示例实施例,互连桥465使第一系统互连205和也包括在这个可选示例实施例中的第二系统互连470之间的通信能够进行。该第一直接存储器存取单元475由此连接在第二系统互连470上。根据一个说明性的用例,其他设备(480、485)也连接在第二系统互连470上。该第一直接存储器存取单元475和通过第二系统互连470相互通信关联的其他设备(480、485)共同构成计算环境中的层次490。
如已经说明的,在操作时,第一直接存储器存取单元475可以确定其已经经历异常状况。在第一直接存储器存取单元475确定特定异常状况不能局部化在第一直接存储器存取单元475自身内时,该第一直接存储器存取单元475将报告重大错误。根据这个示例实施例,该重大错误被传回给存取实施器220,存取实施器220然后抑制包含这个第一直接存储器存取单元475的层次490。根据一个可选示例实施例,存取实施器220使系统互连205中断互连桥465上的操作,以便抑制其中包含有第一直接存储器存取单元475的层次490。应该理解,一旦互连桥465被禁止,连接在第二互连470上的任何单元都被抑制,包含例如,用于将第二系统互连470桥接至第三系统互连第二互连桥等。
图17是使直接存储器存取控制器便于获得对虚拟地址空间的存取的系统的一个示例实施例的框图。根据这个示例实施例,系统包括存取实施器220和包括处理器500、系统接口505及存储器515的控制器222。在这个示例实施例中,处理器500、系统接口505及存储器515通过总线520相互通信地关联。应该理解,在操作上,系统接口505使处理器500能够与系统互连205通信,该系统互连205也包含在这个便于直接存储器存取单元获取对虚拟地址空间的存取的系统的示例实施例中。
同样包含在系统的不同示例可选实施例中的是一个或多个功能性的模块。功能性的模块通常被实现为指令序列。根据一个可选实施例,实现功能性模块的指令序列被存储在存储器515中。读者请注意:术语“最低限度地使处理器”及其派生说法意思是当其执行特定功能性模块时(即,指令序列),处理器500执行的功能可以做无限制的扩充。因而,特定功能模块使处理器500执行除了后面权利要求中定义的那些功能外的其他功能的实施例也包括在后面权利要求的保护范围内。
根据一个可选实施例,上述依照本发明方法管理直接存储器存取单元的功能性模块(即,它们相应的指令序列),被附于计算机可读介质上。这种介质的例子包括但不限于随机存取存储器、只读存储器(ROM)、光盘ROM(CDROM)、软磁盘、硬盘驱动器、磁带及数字化通用光盘(DVD)。该单独或组合构成独立的产品的计算机可读介质,可以被用于将通用目的的计算平台转换为能够允许直接存储器存取单元根据这里的技术和教导对虚拟地址空间进行存取的设备。因此,后面的权利要求包括这样的计算机可读介质,其上附于能够执行本发明的方法和这里所述的精神的指令序列。
根据一个可选示例实施例,存储器515被用于存储主操作系统525。根据一个可选实施例,主操作系统525包括虚拟地址空间(VAS)建立模块530。根据另一可选示例实施例,主操作系统525包括请求者识别模块540。
图18是说明允许直接存储器存取单元对虚拟地址空间进行存取的系统的多个可选示例实施例的内部操作的数据流程图。根据一个示例可选实施例,主操作系统525被包括在存储器515中并由处理器500执行。当由处理器执行时,主操作系统最低限度地使处理器500识别连接在系统互连205上的直接存储器存取单元。一旦识别出直接存储器存取单元,主操作系统525还最低限度地使处理器500将所识别的直接存储器存取单元与虚拟地址空间相关联。因此,将存储器保护模式发送给存取实施器220。应该理解,发送给存取实施器220的存储器保护模式与特定虚拟地址空间相关联。同样应该理解,如在此以前说明的,该虚拟地址空间与连接在系统互连205上的特定设备相关联。
在一个可选示例实施例中,主操作系统515包括请求者识别模块540。该请求者识别模块540,当由处理器500执行时,最低限度地使处理器识别特定的连接在系统互连205上的请求者。典型地,请求者识别模块540最低限度地使处理器识别直接存储器存取设备。根据一个可选示例实施例,请求者识别模块540通过最低限度地使处理器500从连接在系统互连205上的直接存储器存取单元中接收总线位置标识符,来最低限度地使处理器500识别连接在系统互连205上的请求者。根据另一示例可选实施例,请求者识别模块540通过最低限度地使处理器500接收来自连接在系统互连205上的直接存储器存取单元中的设备类型标识符,来使处理器500识别连接在系统互连205上的设备。另一示例实施例中,请求者识别模块540通过最低限度地使处理器500接收来自连接在系统互连205上的直接存储器存取单元的设备功能标识符,使处理器500识别连接在系统互连205上的设备。应该理解,请求者识别模块540还最低限度使处理器500将识别的设备的标识符存储在保存在存储器515中的请求者列表545中。
根据另一可选示例实施例,处理器500执行虚拟地址空间(VAS)建立模块530。该虚拟地址空间建立模块530最低限度地使处理器从保存在存储器515中的请求者列表545中检索请求者标识符。基于请求者标识符,该虚拟地址空间建立模块530使处理器确定应该与从请求者列表545中检索出的请求者标识符相关联的特定虚拟地址空间。而在另一可选示例实施例中,虚拟地址空间建立模块530进一步最低限度使处理器500将该虚拟地址空间的存储器保护模式指向存取实施器220。典型地,虚拟地址空间建立模块530最低限度地使处理器将存储器保护模式指向包含在存取实施器220中的保护模式表340中。应该理解,系统互连205由处理器用来使存储器保护模式转移到包含在存取实施器220中的保护模式表340中。
根据另一可选示例实施例,虚拟地址空间建立模块530最低限度使处理器500将存储器保护模式连同请求者标识符一起发送到存取实施器220。该请求者标识符被存储在包含在存取实施器220中的请求者标识符识别单元272中。根据一个可选示例实施例,单设备标识符被发送给设备标识符识别单元272。在另一可选示例实施例中,一组请求者标识符被发送给请求者标识符识别单元272。在另一可选示例实施例中,域指示符被发送给请求者标识符识别单元272。应该理解,依照这里所述的技术和教导,存取实施器220将把存储在保护模式表340中的特定保护模式与存储在请求者标识符识别单元272中的特定请求者标识符相关联。
尽管已经以一些可选的示例实施例的形式说明了本方法和装置,但是本领域技术人员在阅读了本说明书和附图后,其替换、修改、置换及等价物将变得显而易见。因此后面的权利要求的实际精神和范围包括所有这样的替换、修改、置换以及等效物。
Claims (10)
1.一种允许直接存储器存取单元对虚拟地址空间进行存取的方法,包括:
接收来自虚拟机环境下客户操作系统控制的直接存储器存取单元的对虚拟存储器存取(5)的请求;
根据接收到的对存储器存取的请求来确定请求者标识符(10);
根据确定的请求者标识符来确定存储器保护模式(15);及
根据确定的存储器保护模式来授权直接存储器存取单元(20)对虚拟地址空间中的存储器的存取。
2.如权利要求1的方法,其中,确定请求者标识符包括确定总线标识符(28)、设备标识符(30)、及功能标识符(35)中的至少一个。
3.如权利要求1的方法,其中,确定存储器保护模式包括:
识别与单个请求者标识符(40)、一组请求者标识符(45)及请求者标识符域(50)中的至少一个相关联的存储器保护模式;及
选择所识别的存储器保护模式(55)作为确定的存储器保护模式。
4.如权利要求1的方法,其中授权直接存储器存取单元对虚拟地址空间中的存储器的存取包括:根据所确定的存储器保护模式,来授权直接存储器存取单元对系统存储器(60)及外围存储器(65)中的至少一个的存取。
5.如权利要求1的方法,进一步包括:当存储器保护模式被违反时(110),抑制(115)直接存储器存取单元。
6.一种用于提供直接存储器存取单元对虚拟地址空间进行直接存取的计算系统,包括:
包含客户操作系统的虚拟机环境;
能够存储信息的存储器(210),其中所述存储器处于虚拟机环境下客户操作系统所管理的虚拟地址空间中;
能够与存储器(210)交互的第一直接存储器存取单元(225),其中所述第一直接存储器存取单元由客户操作系统来控制;
能够将存储器(210)与第一直接存储器存取单元(225)通信地相关联的系统互连(205);
仲裁器(215),能够接收来自第一直接存储器存取单元(225)的对虚拟存储器存取的请求,并进一步能够为第一直接存储器存取单元(225)确定请求者标识符,并根据确定的请求者标识符来生成请求者标识符信号(260);及
存取实施器(220),能够根据请求者标识符信号(260)选择存取保护模式,并且进一步能够在系统互连(205)中发生数据转移事务期间实施所选择的存取保护模式。
7.如权利要求6的系统,其中仲裁器(215)包括请求者标识符寄存器(240),所述请求者标识符寄存器能够接收用于第一直接存储器存取单元(225)的总线标识符(245)、设备标识符(250)、及功能标识符(255)中的至少一个。
8.如权利要求6的系统,其中存取实施器包括:
请求者识别单元(272),能够通过将请求者标识符信号与单个请求者标识符(270)、一组请求者标识符(275)及请求者标识符域(290)中的至少一个匹配,来生成虚拟地址空间信号(335);及
包括多个保护模式记录的保护模式表(340),能够存储多个存储器保护模式并且进一步能够根据所选择的保护模式记录的内容来生成存储器保护定义,其中保护模式记录根据虚拟地址空间信号来选择。
9.如权利要求6的系统,进一步包括系统控制器(222),能够将请求者标识符分配给第一直接存储器存取单元(225),并进一步能够将存储器保护模式与分配的请求者标识符相关联地存储在存取实施器(220)中。
10.如权利要求6的系统,其中当存取保护模式被违反时,存取实施器(220)抑制第一直接存储器存取单元(225)。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66421905P | 2005-03-21 | 2005-03-21 | |
US60/664219 | 2005-03-21 | ||
US11/378852 | 2006-03-16 | ||
US11/378,852 US7451249B2 (en) | 2005-03-21 | 2006-03-16 | Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1881192A CN1881192A (zh) | 2006-12-20 |
CN100595743C true CN100595743C (zh) | 2010-03-24 |
Family
ID=36685783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610088634A Active CN100595743C (zh) | 2005-03-21 | 2006-03-21 | 用于虚拟机环境中直接输入输出的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7451249B2 (zh) |
EP (1) | EP1708090B1 (zh) |
CN (1) | CN100595743C (zh) |
DE (1) | DE602006012567D1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101326501B (zh) * | 2006-04-06 | 2010-12-15 | 索尼株式会社 | 电桥、处理器单元、信息处理装置以及存取控制方法 |
CN100464295C (zh) * | 2006-05-17 | 2009-02-25 | 联想(北京)有限公司 | 一种基于虚拟机的安全输入方法 |
US8095513B2 (en) * | 2006-06-05 | 2012-01-10 | Microsoft Corporation | Safe buffer |
US20070283117A1 (en) * | 2006-06-05 | 2007-12-06 | Microsoft Corporation | Unmanaged memory accessor |
US7886115B2 (en) * | 2007-07-13 | 2011-02-08 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for implementing virtual storage devices |
US8271700B1 (en) * | 2007-11-23 | 2012-09-18 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US8230155B2 (en) | 2008-06-26 | 2012-07-24 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US8151032B2 (en) * | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
JP4766498B2 (ja) * | 2008-12-24 | 2011-09-07 | 株式会社ソニー・コンピュータエンタテインメント | ユーザレベルdmaとメモリアクセス管理を提供する方法と装置 |
JP5578713B2 (ja) * | 2010-06-28 | 2014-08-27 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US8682639B2 (en) * | 2010-09-21 | 2014-03-25 | Texas Instruments Incorporated | Dedicated memory window for emulation address |
KR101867336B1 (ko) * | 2011-07-11 | 2018-06-15 | 삼성전자주식회사 | 다중 프로세서를 지원하는 인터럽트 발생을 위한 장치 및 방법 |
US9201828B2 (en) | 2012-10-23 | 2015-12-01 | Analog Devices, Inc. | Memory interconnect network architecture for vector processor |
US9342306B2 (en) | 2012-10-23 | 2016-05-17 | Analog Devices Global | Predicate counter |
US9092429B2 (en) * | 2012-10-23 | 2015-07-28 | Analog Devices Global | DMA vector buffer |
US9092647B2 (en) | 2013-03-07 | 2015-07-28 | Freescale Semiconductor, Inc. | Programmable direct memory access channels |
US10673811B2 (en) * | 2016-07-25 | 2020-06-02 | ColorTokens, Inc. | Updating address mapping for local and network resources |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519645B2 (en) * | 1999-02-19 | 2003-02-11 | International Business Machine Corporation | Method and apparatus for providing configuration information using a queued direct input-output device |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6775750B2 (en) | 2001-06-29 | 2004-08-10 | Texas Instruments Incorporated | System protection map |
US20050076186A1 (en) * | 2003-10-03 | 2005-04-07 | Microsoft Corporation | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements |
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
-
2006
- 2006-03-16 US US11/378,852 patent/US7451249B2/en active Active
- 2006-03-20 EP EP06111395A patent/EP1708090B1/en active Active
- 2006-03-20 DE DE602006012567T patent/DE602006012567D1/de active Active
- 2006-03-21 CN CN200610088634A patent/CN100595743C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP1708090A2 (en) | 2006-10-04 |
US20060271752A1 (en) | 2006-11-30 |
US7451249B2 (en) | 2008-11-11 |
EP1708090A3 (en) | 2008-02-06 |
CN1881192A (zh) | 2006-12-20 |
EP1708090B1 (en) | 2010-03-03 |
DE602006012567D1 (de) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100595743C (zh) | 用于虚拟机环境中直接输入输出的方法和设备 | |
US7743194B2 (en) | Driver transparent message signaled interrupts | |
CN101405666B (zh) | 用于验证安全通信部件安装位置的方法及控制和数据传送系统 | |
CN105980998B (zh) | 每功能下行端口控制 | |
JP2597456B2 (ja) | 直接アクセス記憶装置へのアクセス調整システム及び方法 | |
KR100327652B1 (ko) | 버스 접속 유닛 id에 대해 메모리로의 액세스를선택적으로 제한하는 시스템 및 방법 | |
CN101384985A (zh) | Sas区域组权限表版本标识符 | |
US9141463B2 (en) | Error location specification method, error location specification apparatus and computer-readable recording medium in which error location specification program is recorded | |
CN101438230B (zh) | 寻址不同地址空间的不同寻址格式兼容的方法及系统 | |
US9830295B2 (en) | Resource domain partioning in a data processing system | |
CN106254170A (zh) | 服务器联机状态检测及通知的方法及系统 | |
CN105468548A (zh) | 串行外围接口的通信 | |
US6138253A (en) | Method and apparatus for reporting errors in a computer system | |
CN103345439A (zh) | 一种信息系统全链路健康状态监控方法及装置 | |
CN104391755A (zh) | 嵌入式多媒体卡eMMC芯片异常的处理方法和装置 | |
CN103679068A (zh) | U盘的安全处理方法及装置、系统 | |
JP4076174B2 (ja) | プロセッサの分散型ノード・システムにおけるノード・アドレス障害の処理 | |
CN115061641B (zh) | 一种磁盘故障处理方法、装置、设备以及存储介质 | |
CN101098211B (zh) | 发送控制装置、接收控制装置、以及通信系统 | |
GB2399917A (en) | Computer system having two or more processing sets | |
US6016506A (en) | Non-intrusive SCSI status sensing system | |
CN101443772B (zh) | 管理安全数据的设备和方法 | |
US20060136611A1 (en) | Chipset feature detection and configuration by an I/O device | |
US6021431A (en) | Method of retrieving and storing computer peripheral data | |
CN100549904C (zh) | 软件的使用限制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170207 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: HP Development Co., Ltd. |
|
TR01 | Transfer of patent right |