Restricting memory access to protect data when sharing a common address space

    公开(公告)号:US07277999B1

    公开(公告)日:2007-10-02

    申请号:US10918044

    申请日:2004-08-12

    IPC分类号: G06F12/00

    摘要: A first software entity occupies a portion of a linear address space of a second software entity and prevents the second software entity from accessing the memory of the first software entity. For example, in one embodiment of the invention, the first software entity is a virtual machine monitor (VMM), which supports a virtual machine (VM), the second software entity. The VMM sometimes directly executes guest instructions from the VM and, at other times, the VMM executes binary translated instructions derived from guest instructions. When executing binary translated instructions, the VMM uses memory segmentation to protect its memory. When directly executing guest instructions, the VMM may use either memory segmentation or a memory paging mechanism to protect its memory. When the memory paging mechanism is active during direct execution, the protection from the memory segmentation mechanism may be selectively deactivated to improve the efficiency of the virtual computer system.

    Maintaining coherency of derived data in a computer system
    32.
    发明授权
    Maintaining coherency of derived data in a computer system 有权
    维护计算机系统中派生数据的一致性

    公开(公告)号:US07222221B1

    公开(公告)日:2007-05-22

    申请号:US10774095

    申请日:2004-02-06

    IPC分类号: G06F12/00

    摘要: A computer system has secondary data that is derived from primary data, such as entries in a TLB being derived from entries in a page table. When an actor changes the primary data, a producer indicates the change in a set data structure, such as a data array, in memory that is shared by the producer and a consumer. There may be multiple producers and multiple consumers and each producer/consumer pair has a separate channel. At coherency events, at which incoherencies between the primary data and the secondary data should be removed, consumers read the channels to determine the changes, and update the secondary data accordingly. The system may be a multiprocessor virtual computer system, the actor may be a guest operating system, and the producers and consumers may be subsystems within a virtual machine monitor, wherein each subsystem exports a separate virtual central processing unit.

    摘要翻译: 计算机系统具有从主数据导出的辅助数据,诸如从页表中的条目导出的TLB中的条目。 当演员改变主要数据时,制片人指示在生产者和消费者共享的存储器中的设置数据结构(例如数据阵列)中的改变。 可能有多个生产者和多个消费者,每个生产者/消费者对都有一个单独的渠道。 在一致性事件中,应删除主数据和辅助数据之间的货币,消费者读取通道以确定更改,并相应地更新次要数据。 该系统可以是多处理器虚拟计算机系统,该演员可以是客户操作系统,并且生产者和消费者可以是虚拟机监视器内的子系统,其中每个子系统导出单独的虚拟中央处理单元。

    System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
    33.
    发明授权
    System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems 有权
    用于检测对共享结构的访问并维护虚拟化多处理器系统中派生结构的一致性的系统和方法

    公开(公告)号:US07149843B1

    公开(公告)日:2006-12-12

    申请号:US11185151

    申请日:2005-07-19

    IPC分类号: G06F13/00

    CPC分类号: G06F9/45537 G06F9/4812

    摘要: A computer system includes at least one virtual machine that has a plurality of virtual processors all running on an underlying hardware platform. A software interface layer such as a virtual machine monitor establishes traces on primary structures located in a common memory space as needed for the different virtual processors. Whenever any one of the virtual processors generates a trace event, such as accessing a traced structure, then a notification is sent to at least the other virtual processors that have a trace on the accessed primary structure. In some applications, the VMM derives and maintains secondary structures corresponding to the primary structures, such as where the VMM converts, through binary translation, original code intended to run on a virtual processor into code that can be run on an underlying physical processor of the hardware platform. In these applications, the VMM may rederive or invalidate the secondary structures as needed upon receipt of the notification of the trace event. Different semantics are provided for the notification, providing different choices of performance versus guaranteed consistency between primary and secondary structures. In the preferred embodiment of the invention, a dedicated sub-system is included within the VMM for each virtual processor; each sub-system establishes traces, senses trace events, issues the notification, and performs other operations relating specifically to its respective virtual processor.

    摘要翻译: 计算机系统包括至少一个具有在底层硬件平台上运行的多个虚拟处理器的虚拟机。 诸如虚拟机监视器之类的软件接口层根据不同虚拟处理器的需要,在位于公共存储器空间中的主结构上建立迹线。 无论何时任何一个虚拟处理器生成跟踪事件(例如访问跟踪结构),则向至少在所访问的主要结构上具有跟踪的其他虚拟处理器发送通知。 在某些应用中,VMM导出和维护对应于主要结构的二级结构,例如VMM通过二进制转换将旨在在虚拟处理器上运行的原始代码转换为可以在底层物理处理器上运行的代码 硬件平台。 在这些应用中,VMM可以在接收到跟踪事件的通知时根据需要重新激活或使二级结构无效。 为通知提供不同的语义,提供不同的性能选择与主要和次要结构之间的一致性保证。 在本发明的优选实施例中,专用子系统包括在每个虚拟处理器的VMM内; 每个子系统建立跟踪,感测跟踪事件,发出通知,并执行与其各自的虚拟处理器专门相关的其他操作。

    Work stealing queues for parallel garbage collection
    34.
    发明申请
    Work stealing queues for parallel garbage collection 有权
    并行垃圾收集工作窃取队列

    公开(公告)号:US20050132374A1

    公开(公告)日:2005-06-16

    申请号:US10996508

    申请日:2004-11-23

    IPC分类号: G06F9/46 G06F12/02 G06F17/30

    摘要: A multiprocessor, multi-program, stop-the-world garbage collection program is described. The system initially over partitions the root sources, and then iteratively employs static and dynamic work balancing. Garbage collection threads compete dynamically for the initial partitions. Work stealing double-ended queues, where contention is reduced, are described to provide dynamic load balancing among the threads. Contention is resolved by using atomic instructions. The heap is broken into a young and an old generation where parallel semi-space copying is used to collect the young generation and parallel mark-compacting the old generation. Speed and efficiency of collection is enhanced by use of card tables and linking objects, and overflow conditions are efficiently handled by linking using class pointers. A garbage collection termination employs a global status word.

    摘要翻译: 描述了一个多处理器,多程序,停止世界的垃圾收集程序。 系统最初对根源进行分区,然后迭代地采用静态和动态的工作平衡。 垃圾收集线程可以动态竞争初始分区。 被描述为在线程之间提供动态负载平衡的工作窃取双端队列,其中争用减少。 竞争通过使用原子指令来解决。 堆被打破成一个年轻和老一代,平行的半空间复制用于收集年轻一代和平行的标记压实老一代。 通过使用卡表和链接对象来增强收集的速度和效率,并且通过使用类指针进行链接来有效地处理溢出条件。 垃圾收集终端采用全局状态字。

    Dynamic adaptive tenuring of objects
    35.
    发明授权
    Dynamic adaptive tenuring of objects 有权
    物体的动态适应性固定

    公开(公告)号:US06839725B2

    公开(公告)日:2005-01-04

    申请号:US09855453

    申请日:2001-05-15

    IPC分类号: G06F12/02 G06F12/00

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: Run time sampling techniques have been developed whereby representative object lifetime statistics may be obtained and employed to adaptively affect tenuring decisions, memory object promotion and/or storage location selection. In some realizations, object allocation functionality is dynamically varied to achieve desired behavior on an object category-by-category basis. In some realizations, phase behavior affects sampled lifetimes e.g., for objects allocated at different phases of program execution, and the dynamic facilities described herein provide phase-specific adaptation tenuring decisions, memory object promotion and/or storage location selection. In some realizations, reversal of such decisions is provided.

    Object sampling technique for runtime observations of representative instances thereof
    36.
    发明授权
    Object sampling technique for runtime observations of representative instances thereof 有权
    用于其代表性实例的运行时间观测的对象采样技术

    公开(公告)号:US06799191B2

    公开(公告)日:2004-09-28

    申请号:US09855454

    申请日:2001-05-15

    IPC分类号: G06F1200

    摘要: With better knowledge of the behavior of objects in a running application, it is possible to improve execution environment decisions that affect management of such objects. For example, if available, object lifetime statistics could be employed in decisions that affect how and where objects are placed, e.g., on allocation or during operation of automatic dynamic memory management facilities such as a garbage collector. Typically, instrumenting all objects to sample lifetimes or other characteristics would impose an impractical level of overhead. We present a technique for dynamic sampling of a subset of allocated objects that incurs low runtime overheads. Coupled with automatic memory management or collection facilities, this technique allows us to improve the efficiency of a collector by segregating objects, sampled and non-sampled alike, based on observed characteristics such as object lifetime. The sampling techniques facilitate tracking of many kinds of object information. For purposes of illustration, an exemplary implementation is described in which such sampling techniques are exploited to improve performance of generational garbage collectors.

    摘要翻译: 通过更好地了解正在运行的应用程序中对象的行为,可以改进影响这些对象管理的执行环境决策。 例如,如果可用,则可以在影响如何以及在何处放置对象的决策中使用对象生命周期统计,例如在诸如垃圾收集器的自动动态存储器管理设备的分配或操作期间。 通常,将所有对象检测到样本生命周期或其他特征将会产生不切实际的开销级别。 我们提出了一种用于动态采样分配对象的子集的技术,从而导致低运行时开销。 结合自动记忆管理或收集设备,这种技术使我们能够根据诸如对象寿命等观察特征,通过分离对象,采样和非抽样等来提高收集器的效率。 采样技术有助于跟踪多种物体信息。 为了说明的目的,描述了一种示例性实现,其中利用这种采样技术来改善代代垃圾收集器的性能。

    Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts
    37.
    发明授权
    Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts 有权
    方法,设备和产品,用于通过删除参考冲突来改善内存系统中的垃圾收集

    公开(公告)号:US06192517B1

    公开(公告)日:2001-02-20

    申请号:US09436636

    申请日:1999-11-09

    IPC分类号: G06F945

    摘要: In accordance with the present invention a method for modifying a sequence of instructions to improve memory management within a storage device during execution of the instructions, comprises the steps, performed by a processor, of (a) analyzing the sequence of instructions for a conflict indicating an undeterminable variable type, (b) determining the type of conflict, and (c) modifying the sequence of instructions to eliminate the conflict based on the determination.

    摘要翻译: 根据本发明,一种用于在执行指令期间修改指令序列以改善存储设备内的存储器管理的方法包括由处理器执行的步骤(a)分析用于冲突的冲突指令序列 不确定的变量类型,(b)确定冲突的类型,以及(c)根据确定修改消除冲突的指令序列。

    Prediction mechanism for subroutine returns in binary translation sub-systems of computers

    公开(公告)号:US09836292B2

    公开(公告)日:2017-12-05

    申请号:US12485679

    申请日:2009-06-16

    申请人: Ole Agesen

    发明人: Ole Agesen

    IPC分类号: G06F9/45

    CPC分类号: G06F8/52

    摘要: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.

    Method and system for enabling checkpointing fault tolerance across remote virtual machines
    39.
    发明授权
    Method and system for enabling checkpointing fault tolerance across remote virtual machines 有权
    远程虚拟机启用检查点容错功能的方法和系统

    公开(公告)号:US08898518B2

    公开(公告)日:2014-11-25

    申请号:US13450249

    申请日:2012-04-18

    IPC分类号: G06F11/00 G06F11/20

    摘要: A checkpointing fault tolerance network architecture enables a backup computer system to be remotely located from a primary computer system. An intermediary computer system is situated between the primary computer system and the backup computer system to manage the transmission of checkpoint information to the backup VM in an efficient manner. The intermediary computer system is networked to the primary VM through a first connection and is networked to the backup VM through a second connection. The intermediary computer system identifies updated data corresponding to memory pages that have been least recently modified by the primary VM and transmits such updated data to the backup VM through the first connection. In such manner, the intermediary computer system holds back updated data corresponding to more recently modified memory pages, since such memory pages may be more likely to be updated again in the future.

    摘要翻译: 检查点容错网络架构使备份计算机系统能够远离主计算机系统。 中间计算机系统位于主计算机系统和备用计算机系统之间,以有效的方式管理检查点信息传输到备份虚拟机。 中间计算机系统通过第一连接与主虚拟机联网,并通过第二连接与备用虚拟机联网。 中间计算机系统识别对应于由主VM最近最近修改的存储器页面的更新数据,并通过第一连接将这种更新的数据发送到备份VM。 以这样的方式,中间计算机系统保持对应于最近修改的存储器页面的更新数据,因为这样的存储器页面将来可能再次被更新。

    Large-page optimization in virtual memory paging systems
    40.
    发明授权
    Large-page optimization in virtual memory paging systems 有权
    虚拟内存寻呼系统中的大页面优化

    公开(公告)号:US08352705B2

    公开(公告)日:2013-01-08

    申请号:US12014544

    申请日:2008-01-15

    申请人: Ole Agesen

    发明人: Ole Agesen

    IPC分类号: G06F12/02

    摘要: A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.

    摘要翻译: 通过对物理存储器的虚拟存储器访问进行编程的计算机系统使用与其页表条目相关联的多位计数器。 当页面访问者访问页表项时,与该页表项相关联的多位计数器增加1。 计算机操作系统使用不同页表项的多位计数器中的计数来确定可以有效部署大页面的位置。 在具有嵌套寻呼系统的虚拟化计算机系统中,使用与其主页表条目及其嵌套页表项相关联的多位计数器。 这些多位计数器在嵌套页面散播期间递增。 随后,客户操作系统和虚拟机监视器使用适当的多位计数器中的计数来确定可以有效部署大页面的位置。