CN102037448B - 主机数据处理设备内的装置仿真支持 - Google Patents
主机数据处理设备内的装置仿真支持 Download PDFInfo
- Publication number
- CN102037448B CN102037448B CN200980118763.3A CN200980118763A CN102037448B CN 102037448 B CN102037448 B CN 102037448B CN 200980118763 A CN200980118763 A CN 200980118763A CN 102037448 B CN102037448 B CN 102037448B
- Authority
- CN
- China
- Prior art keywords
- data
- storer
- memory access
- instruction
- ended
- 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
- 230000015654 memory Effects 0.000 claims abstract description 192
- 238000003860 storage Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 22
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 206010000210 abortion Diseases 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 14
- 230000007257 malfunction Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 239000003550 marker Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 208000011580 syndromic disease Diseases 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 231100000176 abortion Toxicity 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003319 supportive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
Abstract
一种数据处理设备(12)配备有触发存储器中止的存储器管理单元(24)。当存储器中止发生时,表征该存储器中止的数据被写入到故障状态寄存器28(存储器中止寄存器)中。表征存储器中止的数据包括识别与引起存储器中止的存储器存取相关联的寄存器编号的数据。该寄存器识别数据被用来仿真存储器存取指令的动作而不必读取导致存储器中止的程序指令。这在提供对虚拟数据处理设备(2)的虚拟化支持时有用。
Description
技术领域
本发明涉及数据处理系统。更特别地,本发明涉及支持数据处理设备的虚拟化(virtualisation)的数据处理系统。
背景技术
提供支持数据处理系统的虚拟化的主机(host)数据处理系统是已知的。主机数据处理系统和虚拟数据处理系统之间的差异的尺度可明显地变化。在一些实例中,虚拟数据处理系统可以是具有与主机数据处理设备相同的基本处理器架构的数据处理设备的稍微不同版本或实施。在另一实例中,虚拟数据处理设备可能与主机数据处理设备(例如由RISC或CISC主机数据处理设备仿真(emulate)的基于堆栈的Java虚拟机)完全不同。
在虚拟化的此领域内,经常会需要支持虚拟装置以将真实硬件装置的幻影(illusion)给予客户操作系统或程序。这些虚拟装置实际上由管理程序(hypervisor)软件提供。支持装置(真实和虚拟两者)的便利方法为它们是存储器映射的(memory mapped),且以加载或存储到存储器映射地址的形式来存取(access)该装置。当支持虚拟数据处理设备的虚拟装置时,有必要将对在这些存储器映射地址处的虚拟装置的存取路由到用于处理的管理程序软件。已知技术是通过将包含存储器映射虚拟装置的对应存储器区设定成“无效”或“不能存取”来截获(trap)对这些存储器位置的存取,且布置要被路由到管理程序的所产生的异常(exception)。
利用该方法的问题是需要将试图存取虚拟装置以仿真该存取的指令解码。通常地将触发该异常的存储器管理单元(MMU)通常也将提供与经受该异常的存取相关联的地址以及读/写信息(或触发该地址以及读/写信息的供给)。在真实环境内,这通常足以提供与存储器存取相关联的异常的高率处理。
发明内容
从本发明的一个方面来看,其提供了一种利用主机数据处理设备支持虚拟数据处理设备的虚拟化的方法,所述方法包括以下步骤:
利用所述主机数据处理设备执行程序指令流,以仿真所述虚拟数据处理设备的处理;
利用检测电路检测试图对与所述虚拟数据处理设备的存储器映射装置相对应的存储器地址执行存储器存取操作的存储器存取指令的尝试执行;
利用存储器中止(memory-abort)电路将表征所述存储器存取操作的存储器中止数据写入到存储器中止寄存器,所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的数据;以及
通过由所述主机数据处理设备执行存储器中止处理程序指令来触发存储器中止异常来:
(i)从所述存储器中止寄存器读取所述存储器中止数据;
(ii)使用所述存储器中止数据来仿真所述存储器存取操作,其中所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的所述数据;以及
(iii)返回到所述程序指令流的执行;其中
所述存储器中止数据包括有效性数据,该有效性数据指示所述存储器中止数据对于触发所述存储器中止异常的所述存储器存取指令是否有效,且如果所述存储器中止处理程序指令根据所述有效性数据确定表征所述存储器中止的所述数据对于所述存储器中止异常是无效的,则所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于仿真所述存储器存取操作的一个或多个参数。
本技术认识到,当支持虚拟数据处理设备的虚拟化时,需要关于引起中止的存储器存取的附加信息以便可以仿真该存储器存取且该附加信息的获得是不利地慢。特别地,利用已知机构,引起存储器中止的指令需要被识别并被解码以识别哪个CPU寄存器正在被加载或存储中以便可以继续进行仿真。此识别典型地具有许多费时步骤。首先,指令本身需要被定位;当异常发生时所提供的指令的地址通常是客户操作系统地址空间中的虚拟地址,其必须被转化(通常经由二个或三个转化步骤)成然后可以被读取的管理程序地址空间中的虚拟地址。一旦已确定中止指令的地址,该指令就可以被读取。在具有分开数据和指令高速缓存的系统(Harvard)中,这通常将造成数据丢失且需要用于补偿数据丢失的许多周期(cycle)。然后该指令需要被解码。在许多数据处理设备上,该指令可以以各种不同方式存取存储器,并且会存在与解码已接收到的指令相关联的相当程度的复杂性,以便识别源/目的地寄存器和存储器存取的其它特性以使得可以继续进行仿真。
本技术以硬件高效方式辨识并克服这些困难。在大多数情况中,对虚拟装置的存取的仿真所需的信息是利用存储器存取操作存取的一个或多个寄存器的识别(不论其是源寄存器还是目的地寄存器),并且本技术扩展该存储器中止电路以将该数据写入到存储器中止寄存器中。实际上,识别数据的该寄存器将通常已存在,因为这是存储器存取指令的正常操作所需的,且所需的附加机构朝向存储器中止寄存器引导(marshal)该信息,当发生对虚拟数据处理设备的存储器映射装置的存取时将所述信息存储到所述存储器中止寄存器。中止处理程序指令接着可以从存储器中止寄存器直接地读取该寄存器识别信息,且使用它来以相对较高速度仿真存储器存取操作,并且无须读取引起该存储器存取的指令以便能识别出(一个或多个)寄存器。该技术因此提供对虚拟数据处理设备的虚拟化的硬件支持,以及使用该硬件支持来更有效地再现虚拟装置的虚拟化的技术。
该存储器中止数据可另外包括指示存储器中止数据对于触发存储器中止的存储器存取指令是否有效的有效性数据。如果存储器中止数据是无效的,则存储器中止处理程序指令可以从有效性数据确定这些,并且回复到从存储器读取引起存储器中止的存储器存取指令,且直接根据因此读取的指令确定存储器存取指令参数。硬件设计者可以以这种方式选择足够简单的那些指令来为其提供校验子(syndrome)数据,并且选择较复杂且对于增加硬件方面的支持不值得硬件开销的那些指令。
应了解到,存储器中止数据可以包含在指示利用存储器存取操作存取的一个或多个寄存器的数据之外的另外信息。指示一个或多个寄存器的数据将最常见的情况下允许已支持的虚拟装置存取,且在存储器中止寄存器内存储的数据的扩展将扩展所支持的存取类型。存储器中止数据可以被扩展成包括指示经受所述存储器存取操作的数据字的大小的数据、关于该操作是读取操作还是写入操作的数据,指示源寄存器或目的地寄存器的数据,指示该数据字是否经受作为该存储器存取的一部分的符号扩展的数据,和指示该存储器存取指令的指令大小的数据。
一些存储器存取指令使用基址寄存器(base register),其存储指示要存取的存储器地址的地址值,且该指令指定要在与存储器存取指令的执行(如前或后索引)相关联的该值上进行的更新。可以结合这些指令使用有效性数据以指示表征存储器存取的数据对于更新基址寄存器值的这些指令是无效,且在这些情况下可以从存储器读取指令本身并且解码以便确定要被执行的更新的性质。
可以使用有效性数据来指示表征存储器存取的数据无效的另一种指令是加载/存储多个指令,如由ARM处理器所提供的哪些。预期这些类型的指令将极少用来存取装置,且就这一点来说为它们提供校验子寄存器所需的大量硬件开销将不会产生要被证实的足够优点。有效数据可以用来指示表征这种类型的存储器存取的数据没有被有效地提供。
在可替代实施例中,可以提供更新寄存器,并且可以将更新数据写入到所述更新寄存器中,所述更新数据表征要在与引起存储器中止的存储器存取指令的执行相关联的基址寄存器内所存储的地址值上执行的更新。该更新寄存器可以由存储器中止处理程序指令读取,并且用来对存储于基址寄存器内的地址值执行所需更新作为仿真存取虚拟装置的一部分。
虽然可以各种不同方式来支持虚拟化,但是实施例充分适合于本技术,在所述实施例中其执行且包括可引起存储器中止的存储器存取指令的程序指令流是在客户操作系统的控制下,其中虚拟数据处理设备本身对该客户操作系统的执行由在管理程序的控制下的主机数据处理设备仿真。本领域技术人员将会熟悉虚拟化的这种分层形式,并且所述分层形式是一种经受本技术所解决的缓慢虚拟装置仿真的问题的类型。
用于检测对虚拟数据处理设备的存储器映射装置的存储器存取的检测电路可以采取使用页表(page table)数据来控制对存储器内的存储器地址的存取的存储器管理单元的形式。典型地针对其它原因提供这种存储器管理单元,并且其可以被再使用以提供对虚拟存储器映射装置的存储器存取的截获。由存储器映射装置使用的页表数据可以利用在存储器存取指令试图对虚拟存储器映射装置执行存储器存取操作时触发中止的值来编程。
从本发明的另一方面来看,其提供用于处理数据的设备,所述设备对虚拟数据处理设备的虚拟化提供支持,所述用于处理数据的设备包括:
检测电路,其响应于存储器存取指令的尝试执行,试图对与所述虚拟数据处理设备的存储器映射装置相对应的存储器地址执行存储器存取操作以触发存储器中止;以及
存储器中止电路,其响应于所述存储器中止来将表征所述存储器存取操作的存储器中止数据写入到存储器中止寄存器,所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的数据;其中
所述存储器中止数据包括有效性数据,其指示所述存储器中止数据对于触发所述存储器中止异常的所述存储器存取指令是否有效,所述存储器中止由用于处理数据的所述设备执行的存储器中止处理程序指令来处理,且如果所述存储器中止处理程序指令根据所述有效性数据确定表征所述存储器中止的所述数据对于所述存储器中止异常是无效的,则所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于仿真所述存储器存取操作的一个或多个参数。
从本发明的又一方面来看,其提供用于处理数据的设备,所述设备对虚拟数据处理设备的虚拟化提供支持,所述用于处理数据的设备包括:
检测装置,其响应于存储器存取指令的尝试执行,试图对与所述虚拟数据处理设备的存储器映射装置相对应的存储器地址执行存储器存取操作以触发存储器中止;以及
存储器中止装置,其响应于所述存储器中止来将表征所述存储器存取操作的存储器中止数据写入到存储器中止寄存器,所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的数据;其中
所述存储器中止数据包括有效性数据,其指示所述存储器中止数据对于触发所述存储器中止异常的所述存储器存取指令是否有效,所述存储器中止由用于处理数据的所述设备执行的存储器中止处理程序指令来处理,且如果所述存储器中止处理程序指令根据所述有效性数据确定表征所述存储器中止的所述数据对于所述存储器中止异常是无效的,则所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于仿真所述存储器存取操作的一个或多个参数。
附图说明
现在将参考附图仅以实例的方式来描述本发明的实施例,在所述附图中:
图1示意性说明包括虚拟存储器映射装置的虚拟数据处理设备;
图2示意性说明包括用于支持虚拟化的硬件机构的主机数据处理设备;
图3示意性说明可以用来提供表征引起存储器中止的存储器存取操作的数据的存储器中止寄存器和更新寄存器的实例内容;以及
图4是示意性说明用于支持对虚拟存储器映射装置的存储器存取操作的仿真的技术的流程图。
具体实施方式
图1说明虚拟数据处理设备2,其可以被看作提供执行存储在存储器6内的程序指令流的虚拟核心(core)4。存储器6内的这些指令是虚拟数据处理设备2的本地(native)指令,且将在客户操作系统(其执行也被仿真)的控制下执行。虚拟数据处理设备2包括虚拟存储器映射装置8、10,其典型地被用来提供与附接到该虚拟数据处理设备2的装置的接口。虚拟存储器映射装置可以是诸如DMA引擎等等之类的装置的输入/输出端口。
在虚拟化领域内已知,通过截获对相关联的存储器地址的存储器存取且然后仿真这些存储器存取,来支持这种存储器映射装置8、10。这种操作通常需要读取存储器存取程序指令,所述存储器存取程序指令由数据处理设备2来执行以便从该程序指令识别仿真可以被准确执行的足够信息。程序指令的该读取和解码可以是一种明显降低虚拟化操作的速度的缓慢且无效过程。
图2示意性说明执行管理程序14的主机数据处理设备12,其本身仿真(或至少支持)引起有关图1所讨论的存储器存取的客户程序指令和客户操作系统程序16的执行。主机数据处理设备12的架构可类似于虚拟数据处理设备2的架构(在该情况下虚拟化支持将倾向于快速及高效),或者可替换地该虚拟数据处理设备2可以具有极不同的架构(在该情况下虚拟化支持需要将更广泛并且将倾向于较缓慢且效率不高)。
主机数据处理设备12包括用于执行程序指令的处理器核心18。提供高速缓冲存储器20(其可以是统一的(unified)或Harvard)来以传统方式存储来自主存储器22内的数据和指令的本地副本。存储器管理单元24响应于页表数据26监视由处理器核心18执行的存储器存取操作,来识别应该引起存储器中止的任何那些。当执行数据处理设备2的仿真时,页表数据26被编程以标记为“无效”或“不存取”存储器地址区,其对应于虚拟数据处理设备2的存储器地址空间内的虚拟存储器映射装置8、10。因此,存储器管理单元24用作检测电路,其用于检测对存储器地址的存储器存取操作,所述存储器地址对应于在处理器核心18执行程序指令流期间产生的虚拟数据处理设备的存储器映射装置,所述处理器核心18仿真由虚拟数据处理设备执行的处理。由存储器管理单元24生成的存储器中止信号被供应给故障状态寄存器(存储器中止寄存器)28,所述故障状态寄存器响应于此来存储由处理器核心18供应给故障状态寄存器28的中止信息。该中止信息包括表征引起存储器中止的存储器存取操作的信息的各种不同片段。存储器中止还触发中断服务例程的处理,该例程用于存储器中止处理程序指令,其读取故障状态寄存器28且接着用于仿真对虚拟存储器映射装置执行的存储器存取操作。写入故障状态寄存器28的存储器中止数据包括与引起中止的存储器存取相关联的(一个或多个)核心寄存器编号(例如,用于ARM架构核心的R0至R15中的一个或多个)。存储器存取可以是读取操作或写入操作,并且相应地寄存器编号可以是目的地寄存器编号或源寄存器编号。
图3示意性说明可以被写入故障状态寄存器28的存储器中止数据。该存储器中止数据包括:识别中止类型的数据,指示存储器存取是读取操作还是写入操作的标志,指示存储器中止数据是否应被存储器中止处理程序指令视为有效的标志,识别与存储器存取相关联的寄存器的寄存器编号的数据,识别与存储器存取相关联的数据存取大小的数据,识别经受异常的存储器存取指令的指令大小的数据,以及识别数据是否要被符号扩展的数据。应了解到,可以另外或可替换地提供不同类型的存储器中止数据。在图3中还说明的是在一些实施例中可选地提供的更新寄存器30。
如本技术领域人员将会了解的那样,一些存储器存取指令利用用于存储地址值的基址寄存器,从所述地址值得到该存储器存取的存储器地址。作为存储器存取操作的一部分,还可以更新在基址寄存器内存储的值。举例来说,在ARM架构内,支持前和后索引(pre and postindexing)存储器存取指令,其中在执行所涉及的存储器存取程序指令之前或之后应用对存储器地址值的增量。当这样的存储器存取指令异常并且要被仿真时,重要的是仿真还再现了对基址寄存器值的副作用(side-effect)。虽然更新基址寄存器值的这些副作用在存取虚拟存储器映射装置的指令内不普遍,但它们确实发生并且相应地需要支持。一种方式是可以在故障状态寄存器28内供应有效标志,并且如果它没有被设定成指示该存储器中止数据是有效的,则可以读取引起该存储器中止的程序指令,并且可以从该程序指令的解码来确定更新基址寄存器值的副作用。故障状态寄存器28内的有效标志将不会由处理器核心18针对指令而设置,在此处当这样的指令触发中止时,存在对基址寄存器值的副作用。未针对其设定有效标志的指令的另一实例是加载/存储多个指令。关于哪个存储器中止数据是有效的,有效标志将会针对指令设定。作为一个替代方式,可以提供当发生存储器中止时识别需要对基址寄存器值执行的任何更新的数据可以被写入到其中的更新寄存器30。该更新数据可以包括存储基址地址值的基址寄存器的识别(如寄存器编号),以及指示要存储于其内的新值的数据,或要应用于其的改变。应了解到,更新寄存器30的供应是可选地,并且有效标志的使用将允许使用存储器中止寄存器(FSR28)内的有效数据来处理在虚拟化支持期间产生的大多数存储器中止,其中仅极少情况是无效的。
允许每个特定实施判定哪些指令提供存储器中止数据,以及哪些仅将有效标志设定成零的方法,允许每个实施挑选适当指令集用于该特定实施,且该软件也将被自动地调整(即仅当硬件不提供数据时才查找该指令)。与指定必须在架构中提供数据的指令的子集且需要所有实施来在这些情况中提供数据的可替换方式相比,这是明显的优点。
图4是示意性说明上述技术的流程图。在步骤32和34处,处理器核心18执行用于在客户操作程序16的控制下仿真在虚拟数据处理设备2上执行的程序的程序指令流,该客户操作程序16本身由管理程序14仿真(或支持)。当存储器中止发生时,处理继续进行到步骤36。在步骤36处,存储器中止数据被处理器核心18写入到故障状态寄存器28。步骤38开始中断服务例程的执行,所述中断服务例程用作仿真对虚拟存储器映射装置的存储器存取的存储器中止处理程序指令。步骤40确定是否在存储于故障状态寄存器28内的存储器中止数据内设定有效标志。如果未设定有效标志,则处理继续进行到步骤41(在该步骤41处确定引起存储器中止的指令的地址),且接着继续进行到步骤42(在该步骤42处引起存储器中止的指令是经由地址转化和有可能如以前所述的那样高速缓存丢失的多个等级从主存储器22读取)。步骤43接着解码从存储器读取的指令且步骤44使用在步骤42处从程序指令的读取得到的数据来仿真对虚拟存储器映射装置的装置存取。
如果有效标志指示在故障状态寄存器28内存储的存储器中止数据是有效的,则步骤40直接处理到步骤46,在该步骤46中存储器中止数据是从故障状态寄存器28读取的,且由步骤44使用以仿真对虚拟存储器映射装置的存储器存取。存储器中止数据包括诸如在图3中所说明的数据之类的数据,其包括源/目的地寄存器编号,数据存取大小,指令大小,符号扩展信息,读取/写入信息和中止类型,以及可选的更新地址信息,其可以被存储在更新寄存器30内且被单独读取为存储器中止处理程序指令的执行的一部分。完成对虚拟存储器映射装置的存储器存取的仿真通常将以在其中产生存储器中止的程序流的执行的返回来结束。
Claims (18)
1.一种利用主机数据处理设备支持虚拟数据处理设备的虚拟化的方法,所述方法包括以下步骤:
利用所述主机数据处理设备执行程序指令流,以仿真所述虚拟数据处理设备的处理;
利用检测电路检测试图对与所述虚拟数据处理设备的存储器映射装置相对应的存储器地址执行存储器存取操作的存储器存取指令的尝试执行;
利用存储器中止电路将表征所述存储器存取操作的存储器中止数据写入到存储器中止寄存器,所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的数据;以及
通过由所述主机数据处理设备执行存储器中止处理程序指令来触发存储器中止异常来:
(i)从所述存储器中止寄存器读取所述存储器中止数据;
(ii)使用所述存储器中止数据来仿真所述存储器存取操作,其中所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的所述数据;以及
(iii)返回到所述程序指令流的执行;其中
所述存储器中止数据包括有效性数据,该有效性数据指示所述存储器中止数据对于触发所述存储器中止异常的所述存储器存取指令是否有效,且如果所述存储器中止处理程序指令根据所述有效性数据确定表征所述存储器中止的所述数据对于所述存储器中止异常是无效的,则所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于仿真所述存储器存取操作的一个或多个参数。
2.如权利要求1所述的方法,其中所述存储器中止数据包括以下各项中的一个或多个:
指示经受所述存储器存取操作的数据字的大小的数据;
所述存储器存取操作是读取操作还是写入操作的数据;
指示用于所述存储器存取操作的一个或多个源寄存器的数据;
指示用于所述存储器存取操作的一个或多个目的地寄存器的所述数据;以及
指示经受所述存储器存取操作的数据字是否被符号扩展的数据;以及
指示所述存储器存取指令的指令大小的数据。
3.如前述权利要求中的任一项所述的方法,其中当所述存储器存取指令指定存储指示所述存储器地址的地址值的基址寄存器以及要对与所述存储器存取指令的所述执行相关联的所述地址值执行的更新时,所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于对所述基址寄存器内的所述地址值执行所述更新的一个或多个参数。
4.如权利要求3所述的方法,其中所述有效性数据指示表征所述存储器中止的所述数据对于更新存储在所述基址寄存器中的所述地址值的存储器存取指令是无效的。
5.如权利要求1和2中任一项所述的方法,其中当所述存储器存取指令指定存储指示所述存储器地址的地址值的基址寄存器以及要对与所述存储器存取指令的所述执行相关联的所述地址值执行的更新时,所述方法还包括利用所述存储器中止电路将表征要对所述地址值执行的所述更新的更新数据写入到更新寄存器。
6.如权利要求5所述的方法,其中所述存储器中止处理程序指令从所述更新寄存器读取所述更新数据,一个或多个参数,用于对所述基址寄存器内的所述地址值执行所述更新。
7.如权利要求1所述的方法,其中所述程序指令流是在客户操作系统的控制下执行的,由在管理程序的控制下的所述主机数据处理设备仿真由所述虚拟数据处理设备对所述客户操作系统的执行。
8.如权利要求1所述的方法,其中所述检测电路是存储器管理单元,该存储器管理单元使用页表数据来控制对所述存储器内的存储器地址的存取。
9.如权利要求8所述的方法,其中当所述存储器存取指令试图执行所述存储器存取操作时,所述页表数据利用触发中止的值标记对应于所述存储器映射装置的所述存储器地址。
10.一种用于对虚拟数据处理设备的虚拟化提供支持的、处理数据的设备,所述处理数据的设备包括:
检测电路,响应于试图对与所述虚拟数据处理设备的存储器映射装置相对应的存储器地址执行存储器存取操作以触发存储器中止的存储器存取指令的尝试执行;以及
存储器中止电路,响应于所述存储器中止来将表征所述存储器存取操作的存储器中止数据写入到存储器中止寄存器,所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的数据;其中
所述存储器中止数据包括有效性数据,该有效性数据指示所述存储器中止数据对于触发所述存储器中止异常的所述存储器存取指令是否有效,所述存储器中止由所述处理数据的设备执行的存储器中止处理程序指令来处理来:(i)从所述存储器中止寄存器读取所述存储器中止数据,(ii)使用所述存储器中止数据来仿真所述存储器存取操作,其中所述存储器中止数据包括指示利用所述存储器存取操作存取的一个或多个寄存器的所述数据,以及(iii)返回到程序指令流的执行;并且
如果所述存储器中止处理程序指令根据所述有效性数据确定表征所述存储器中止的所述数据对于所述存储器中止异常是无效的,则所述存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于仿真所述存储器存取操作的一个或多个参数。
11.如权利要求10所述的设备,其中所述存储器中止数据包括以下各项中的一个或多个:
指示经受所述存储器存取操作的数据字的大小的数据;
所述存储器存取操作是读取操作还是写入操作的数据;
指示用于所述存储器存取操作的一个或多个源寄存器的数据;
指示利用所述存储器存取操作存取的一个或多个寄存器的数据;以及
指示经受所述存储器存取操作的数据字是否被符号扩展的数据;以及
指示所述存储器存取指令的指令大小的数据。
12.如权利要求10和11中任一项所述的设备,其中当所述存储器存取指令指定存储指示所述存储器地址的地址值的基址寄存器以及要对与所述存储器存取指令的所述执行相关联的所述地址值执行的更新时,存储器中止处理程序指令从指令存储器读取所述存储器存取指令,并且根据所述存储器存取指令确定用于对所述基址寄存器内的所述地址值执行所述更新的一个或多个参数。
13.如权利要求12所述的设备,其中所述有效性数据指示表征所述存储器中止的所述数据对于更新存储在所述基址寄存器中的所述地址值的存储器存取指令是无效的。
14.如权利要求10和11中任一项所述的设备,其中当所述存储器存取指令指定存储指示所述存储器地址的地址值的基址寄存器以及要对与所述存储器存取指令的所述执行相关联的所述地址值执行的更新时,所述存储器中止电路响应于所述存储器中止以将表征要对所述地址值执行的所述更新的更新数据写入到更新寄存器。
15.如权利要求14所述的设备,其中存储器中止处理程序指令从所述更新寄存器读取所述更新数据,一个或多个参数,用于对所述基址寄存器内的所述地址值执行所述更新。
16.如权利要求10所述的设备,其中程序指令流是在客户操作系统的控制下执行的,由在管理程序的控制下的所述处理数据的设备仿真由所述虚拟数据处理设备对所述客户操作系统的执行。
17.如权利要求10所述的设备,其中所述检测电路是存储器管理单元,该存储器管理单元使用页表数据来控制对所述存储器内的存储器地址的存取。
18.如权利要求17所述的设备,其中当所述存储器存取指令试图执行所述存储器存取操作时,所述页表数据利用触发中止的值标记对应于所述存储器映射装置的所述存储器地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0809492A GB2460280A (en) | 2008-05-23 | 2008-05-23 | Using a memory-abort register in the emulation of memory access operations |
GB0809492.2 | 2008-05-23 | ||
PCT/GB2009/000771 WO2009141574A1 (en) | 2008-05-23 | 2009-03-23 | Device emulation support within a host data processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102037448A CN102037448A (zh) | 2011-04-27 |
CN102037448B true CN102037448B (zh) | 2014-04-02 |
Family
ID=39616061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980118763.3A Active CN102037448B (zh) | 2008-05-23 | 2009-03-23 | 主机数据处理设备内的装置仿真支持 |
Country Status (11)
Country | Link |
---|---|
US (1) | US8180980B2 (zh) |
EP (1) | EP2281237B1 (zh) |
JP (1) | JP5318197B2 (zh) |
KR (1) | KR101533224B1 (zh) |
CN (1) | CN102037448B (zh) |
AT (1) | ATE523842T1 (zh) |
GB (1) | GB2460280A (zh) |
IL (1) | IL206725A (zh) |
MY (1) | MY152358A (zh) |
TW (1) | TWI437428B (zh) |
WO (1) | WO2009141574A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301849B2 (en) * | 2009-12-23 | 2012-10-30 | Intel Corporation | Transactional memory in out-of-order processors with XABORT having immediate argument |
US9619345B2 (en) | 2012-09-13 | 2017-04-11 | International Business Machines Corporation | Apparatus for determining failure context in hardware transactional memories |
US9268598B2 (en) | 2012-09-13 | 2016-02-23 | International Business Machines Corporation | Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories |
GB2543306B (en) * | 2015-10-14 | 2019-05-01 | Advanced Risc Mach Ltd | Exception handling |
EP3279796B1 (en) * | 2016-08-02 | 2020-07-15 | NXP USA, Inc. | Resource access management component and method therefor |
TWI666901B (zh) * | 2018-03-27 | 2019-07-21 | 緯穎科技服務股份有限公司 | 資料傳輸方法與使用此方法的主機系統 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0098172B1 (en) * | 1982-06-30 | 1989-05-10 | Fujitsu Limited | Register control processing system |
CN1484787A (zh) * | 2000-10-05 | 2004-03-24 | Arm | 处理器流水线中的硬件指令翻译 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907708A (en) * | 1996-06-03 | 1999-05-25 | Sun Microsystems, Inc. | System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof |
US5968119A (en) | 1996-12-09 | 1999-10-19 | Wall Data Incorporated | Method of accessing information of an SNA host computer from a client computer using a specific terminal emulation |
US6081887A (en) * | 1998-05-13 | 2000-06-27 | Compaq Computer Corporation | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction |
US20020004897A1 (en) | 2000-07-05 | 2002-01-10 | Min-Cheng Kao | Data processing apparatus for executing multiple instruction sets |
US6732241B2 (en) * | 2001-09-07 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Technique for migrating data between storage devices for reduced power consumption |
US6952754B2 (en) | 2003-01-03 | 2005-10-04 | Intel Corporation | Predecode apparatus, systems, and methods |
US7146474B2 (en) * | 2003-03-12 | 2006-12-05 | International Business Machines Corporation | System, method and computer program product to automatically select target volumes for a fast copy to optimize performance and availability |
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 |
US20050246453A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
US7356456B1 (en) * | 2004-11-12 | 2008-04-08 | Paravirtual Corporation | Computer storage exception handing apparatus and method for virtual hardware system |
US20060168485A1 (en) * | 2005-01-26 | 2006-07-27 | Via Technologies, Inc | Updating instruction fault status register |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US7769983B2 (en) | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US9354927B2 (en) * | 2006-12-21 | 2016-05-31 | Vmware, Inc. | Securing virtual machine data |
US7711927B2 (en) | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US7886115B2 (en) * | 2007-07-13 | 2011-02-08 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for implementing virtual storage devices |
-
2008
- 2008-05-23 GB GB0809492A patent/GB2460280A/en not_active Withdrawn
-
2009
- 2009-03-23 WO PCT/GB2009/000771 patent/WO2009141574A1/en active Application Filing
- 2009-03-23 JP JP2011510036A patent/JP5318197B2/ja active Active
- 2009-03-23 EP EP09750052A patent/EP2281237B1/en active Active
- 2009-03-23 KR KR1020107028671A patent/KR101533224B1/ko active IP Right Grant
- 2009-03-23 AT AT09750052T patent/ATE523842T1/de not_active IP Right Cessation
- 2009-03-23 CN CN200980118763.3A patent/CN102037448B/zh active Active
- 2009-03-23 MY MYPI20103029 patent/MY152358A/en unknown
- 2009-04-21 TW TW098113237A patent/TWI437428B/zh active
- 2009-05-22 US US12/453,806 patent/US8180980B2/en active Active
-
2010
- 2010-06-30 IL IL206725A patent/IL206725A/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0098172B1 (en) * | 1982-06-30 | 1989-05-10 | Fujitsu Limited | Register control processing system |
CN1484787A (zh) * | 2000-10-05 | 2004-03-24 | Arm | 处理器流水线中的硬件指令翻译 |
Non-Patent Citations (2)
Title |
---|
论虚拟化的存储技术及智能化的发展趋势;顾绮芳;《文教资料》;20070125(第03期);211-213 * |
顾绮芳.论虚拟化的存储技术及智能化的发展趋势.《文教资料》.2007,(第03期),211-213. |
Also Published As
Publication number | Publication date |
---|---|
GB0809492D0 (en) | 2008-07-02 |
KR101533224B1 (ko) | 2015-07-02 |
ATE523842T1 (de) | 2011-09-15 |
IL206725A (en) | 2014-04-30 |
EP2281237A1 (en) | 2011-02-09 |
IL206725A0 (en) | 2010-12-30 |
KR20110019750A (ko) | 2011-02-28 |
JP5318197B2 (ja) | 2013-10-16 |
TWI437428B (zh) | 2014-05-11 |
US8180980B2 (en) | 2012-05-15 |
CN102037448A (zh) | 2011-04-27 |
MY152358A (en) | 2014-09-15 |
TW200949535A (en) | 2009-12-01 |
EP2281237B1 (en) | 2011-09-07 |
WO2009141574A1 (en) | 2009-11-26 |
US20100094613A1 (en) | 2010-04-15 |
GB2460280A (en) | 2009-11-25 |
JP2011523741A (ja) | 2011-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7783867B2 (en) | Controlling instruction execution in a processing environment | |
CN102236541B (zh) | 预加载指令控制 | |
CN102037448B (zh) | 主机数据处理设备内的装置仿真支持 | |
US9753730B2 (en) | Decoding instructions from multiple instructions sets | |
KR101924821B1 (ko) | 정렬 제어 | |
US8438340B2 (en) | Executing atomic store disjoint instructions | |
CN115309499A (zh) | 虚拟机中数组处理方法、装置、电子设备及可读存储介质 | |
US7685381B2 (en) | Employing a data structure of readily accessible units of memory to facilitate memory access | |
EP2115574B1 (en) | Employing a buffer to facilitate instruction execution | |
US11636048B2 (en) | Handling guard tag loss | |
US5822607A (en) | Method for fast validation checking for code and data segment descriptor loads | |
US20210034503A1 (en) | A method of accessing metadata when debugging a program to be executed on processing circuitry | |
JP2980327B2 (ja) | 命令処理装置 | |
CN116171432A (zh) | 监控存储器位置以识别存储在存储器位置处的数据是否已经被修改 | |
JPH0658647B2 (ja) | 計算機におけるページフォルトテスト方式 |
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 |