Dynamic verification of validity of executable code
    51.
    发明授权
    Dynamic verification of validity of executable code 有权
    动态验证可执行代码的有效性

    公开(公告)号:US07984304B1

    公开(公告)日:2011-07-19

    申请号:US10791602

    申请日:2004-03-02

    IPC分类号: G06F11/30 G06F12/14

    CPC分类号: G06F21/565

    摘要: Computer-executable instructions in a computer are verified dynamically, after they have been identified for submission for execution, but before they are actually executed. In particular, for at least one current instruction that has been identified for submission to the processor for execution, an identifying value, for example, a hash value, is determined for a current memory block that contains the current instruction. The identifying value of the current memory block is then compared with a set of reference values. If the identifying value satisfies a validation condition, then execution of the current instruction by the processor is allowed. If the validation condition is not satisfied, then a response is generated: In the common case, execution of the current instruction is not allowed, or some other predetermined measure is taken.

    摘要翻译: 计算机中的计算机可执行指令在被识别为提交执行之后但在实际执行之前被动态地验证。 特别地,对于已被识别用于提交给处理器以执行的至少一个当前指令,为包含当前指令的当前存储块确定标识值,例如哈希值。 然后将当前存储器块的识别值与一组参考值进行比较。 如果识别值满足验证条件,则允许由处理器执行当前指令。 如果验证条件不满足,则产生响应:在常见情况下,不允许执行当前指令,或者采取其他一些预定措施。

    Efficient virtualization of input/output completions for a virtual device
    52.
    发明授权
    Efficient virtualization of input/output completions for a virtual device 有权
    虚拟设备的输入/输出完成的高效虚拟化

    公开(公告)号:US07853960B1

    公开(公告)日:2010-12-14

    申请号:US11066363

    申请日:2005-02-25

    IPC分类号: G06F9/46 G06F9/455

    摘要: Completion interrupts corresponding to I/O requests issued by a virtual machine guest, which runs on a host platform, are virtualized in such a way that I/O completion interrupts to the requesting guest are delivered no faster than it can stably handle them, but, when possible, faster than the nominal speed of a virtual device to which a virtual machine addresses the I/O request. In general, completion events received from the host platform in response to guest I/O requests are examined with respect to time. If enough time has passed that the virtual device would normally have completed the I/O request, then the completion interrupt is delivered to the guest. If the nominal time has not elapsed, however, the invention enqueues and time-stamps the event and delivers it at the earliest of a) the normal maturity time, or b) at a safepoint.

    摘要翻译: 在主机平台上运行的虚拟机访客发出的I / O请求相应的完成中断被虚拟化,使得对请求的客户端的I / O完成中断的传送速度不会比可以稳定地处理它们的速度更快,而是 在可能的情况下,虚拟机对于I / O请求所对应的虚拟设备的标称速度更快。 一般来说,根据客户端I / O请求从主机平台接收到的完成事件将相对于时间进行检查。 如果虚拟设备通常已经完成了I / O请求的足够的时间,则完成中断将传递给客户端。 然而,如果没有经过标称时间,本发明会在a)正常到期时间的最早时间排队和时间戳,并且b)在一个安全点。

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

    公开(公告)号:US07783838B1

    公开(公告)日:2010-08-24

    申请号:US11752193

    申请日:2007-05-22

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

    Large-Page Optimization in Virtual Memory Paging Systems
    54.
    发明申请
    Large-Page Optimization in Virtual Memory Paging Systems 有权
    虚拟内存寻呼系统中的大页面优化

    公开(公告)号:US20090182976A1

    公开(公告)日:2009-07-16

    申请号:US12014544

    申请日:2008-01-15

    申请人: Ole Agesen

    发明人: Ole Agesen

    IPC分类号: G06F12/10

    摘要: 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。 计算机操作系统使用不同页表项的多位计数器中的计数来确定可以有效部署大页面的位置。 在具有嵌套寻呼系统的虚拟化计算机系统中,使用与其主页表条目及其嵌套页表项相关联的多位计数器。 这些多位计数器在嵌套页面散播期间递增。 随后,客户操作系统和虚拟机监视器使用适当的多位计数器中的计数来确定可以有效部署大页面的位置。

    Restricting memory access to protect data when sharing a common address space
    55.
    发明授权
    Restricting memory access to protect data when sharing a common address space 有权
    限制内存访问以在共享公共地址空间时保护数据

    公开(公告)号:US07506122B1

    公开(公告)日:2009-03-17

    申请号:US11865641

    申请日:2007-10-01

    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.

    摘要翻译: 第一软件实体占用第二软件实体的线性地址空间的一部分,并且防止第二软件实体访问第一软件实体的存储器。 例如,在本发明的一个实施例中,第一软件实体是支持虚拟机(VM)的第二软件实体的虚拟机监视器(VMM)。 VMM有时直接从VM执行访客指令,而在其他时候,VMM执行从访客指令导出的二进制翻译指令。 当执行二进制转换指令时,VMM使用存储器分段来保护其内存。 当直接执行访客指令时,VMM可以使用存储器分段或存储器寻呼机制来保护其存储器。 当存储器分页机制在直接执行期间有效时,可以选择性地停止对存储器分段机制的保护,以提高虚拟计算机系统的效率。

    Composite lock for computer systems with multiple domains
    56.
    发明授权
    Composite lock for computer systems with multiple domains 有权
    具有多个域的计算机系统的复合锁

    公开(公告)号:US07117481B1

    公开(公告)日:2006-10-03

    申请号:US10289728

    申请日:2002-11-06

    IPC分类号: G06F9/45

    CPC分类号: G06F9/526

    摘要: In a multi-domain computer system in which several processes are running, a composite lock provides mutually exclusive access to a resource. The composite lock has a back-end component and a front-end component. The back-end component is platform-dependent and operates as a semaphore, with Wait and Signal functions. The front-end component conditionally calls the Wait and Signal functions depending on whether the lock is currently contested when a new process wishes to acquire the lock, and on whether any process is currently suspended, waiting to acquire the lock. The front-end and back-end components may execute in different domains. In the uncontested case, the invention avoids costly domain crossings. The front-end component may also include a spinning feature to further reduce the need to invoke the back-end component and cause a domain crossing. The composite lock is particularly advantageous in computer systems that include a virtual machine.

    摘要翻译: 在其中运行多个进程的多域计算机系统中,复合锁为资源提供互斥访问。 复合锁具有后端组件和前端组件。 后端组件与平台相关,并作为信号量运行,具有等待和信号功能。 前端组件有条件地调用等待和信号功能,具体取决于当新进程希望获取锁定时当前是否有争议,以及当前是否暂停任何进程,等待获取锁定。 前端和后端组件可以在不同的域中执行。 在无争议的情况下,本发明避免了昂贵的域交叉。 前端组件还可以包括旋转特征,以进一步减少调用后端组件并引起域跨越的需要。 复合锁在包括虚拟机的计算机系统中是特别有利的。

    Platform independent double compare and swap operation
    57.
    发明授权
    Platform independent double compare and swap operation 失效
    平台独立的双重比较和互换操作

    公开(公告)号:US06223335B1

    公开(公告)日:2001-04-24

    申请号:US09207940

    申请日:1998-12-09

    IPC分类号: G06F945

    CPC分类号: G06F8/31 G06F9/4488

    摘要: A system for providing a double compare and swap operation is disclosed. In the disclosed system, a first single compare and swap operation is performed. If a contents of a first variable is equal to an old value for the first variable, then the first compare and swap operation writes a value to the first variable indicating that the variable is not accessible and indicates success. A second single compare and swap operation is executed in the event that the first single compare and swap operation indicates success. If a contents of a second variable is equal to an old value for the second variable, then the second single compare and swap operation writes a new value for the second variable into the second variable and indicates success. If the second single compare and swap operation indicates success, a new value for the first variable is written to the first variable. Reads and writes on the first variable are prevented while the first variable contains the value indicating that the variable is inaccessible. The disclosed double compare and swap operation writes the old value for the first variable into the first variable if the second single compare and swap operation fails.

    摘要翻译: 公开了一种用于提供双重比较和交换操作的系统。 在所公开的系统中,执行第一单个比较和交换操作。 如果第一个变量的内容等于第一个变量的旧值,则第一个比较和交换操作将一个值写入第一个变量,指示该变量不可访问并指示成功。 在第一次单次比较和交换操作指示成功的情况下,执行第二次单次比较和交换操作。 如果第二个变量的内容等于第二个变量的旧值,则第二个单一的比较和交换操作会将第二个变量的新值写入第二个变量,并指示成功。 如果第二次单次比较和交换操作指示成功,则将第一个变量的新值写入第一个变量。 第一个变量的读取和写入被阻止,而第一个变量包含指示变量不可访问的值。 如果第二次单次比较和交换操作失败,则披露的双重比较和交换操作将第一个变量的旧值写入第一个变量。

    Method and apparatus for managing stored objects
    58.
    发明授权
    Method and apparatus for managing stored objects 失效
    用于管理存储对象的方法和装置

    公开(公告)号:US6105040A

    公开(公告)日:2000-08-15

    申请号:US885561

    申请日:1997-06-30

    申请人: Ole Agesen

    发明人: Ole Agesen

    IPC分类号: G06F12/02 G06F17/30

    CPC分类号: G06F12/0253 Y10S707/99957

    摘要: In accordance with the present invention a method is provided for managing objects during a garbage collection operation. The process comprises the steps of compacting objects in a memory, allocating an available memory location for a surviving object and a corresponding hash field, storing the surviving object in the available memory location by copying the surviving object from a previous memory location to the available memory location, and storing a hash value for the surviving object in the hash field. The hash value includes a memory address for the previous memory location. In accordance with another aspect of the present invention, a method is provided for managing objects stored in memory. The method comprises the steps of receiving an instruction to allocate an object, locating space in a memory for the object, storing the object at the located space, and including in the stored object a header portion reflecting a hash status. The hash status is used to indicate (i) whether the object has been hashed and (ii) whether the object has a hash field.

    摘要翻译: 根据本发明,提供了一种用于在垃圾回收操作期间管理对象的方法。 该过程包括以下步骤:压缩存储器中的对象,为幸存对象分配可用存储器位置和相应的散列字段,通过将幸存对象从先前存储器位置复制到可用存储器来将存活对象存储在可用存储器位置中 位置,并在散列字段中存储幸存对象的哈希值。 散列值包括先前存储器位置的存储器地址。 根据本发明的另一方面,提供一种用于管理存储在存储器中的对象的方法。 该方法包括以下步骤:接收用于分配对象的指令,在对象的存储器中定位空间,将对象存储在所定位的空间中,并且在存储对象中包括反映散列状态的报头部分。 哈希状态用于表示(i)对象是否已被哈希,以及(ii)对象是否具有哈希字段。

    Bounded-pause time garbage collection system and method including read
and write barriers associated with an instance of a partially relocated
object
    59.
    发明授权
    Bounded-pause time garbage collection system and method including read and write barriers associated with an instance of a partially relocated object 失效
    有界暂停时间垃圾收集系统和方法,包括与部分重定位对象的实例相关联的读写障碍

    公开(公告)号:US5857210A

    公开(公告)日:1999-01-05

    申请号:US882801

    申请日:1997-06-26

    IPC分类号: G06F12/00 G06F9/44 G06F12/02

    摘要: A partially relocated object identifier store including "copy from" and "copy to" identifier storage accessible to write and read barrier logic allows the write and read barrier logic to selectively direct store- and load-oriented accesses to an appropriate FromSpace or ToSpace instance of a partially relocated memory object, in accordance with the memory object's partial relocation state. In some embodiments, the barriers trap to a partially relocated object trap handler. In other embodiments, the write barrier itself directs accesses without software trap handler overheads. Optional "how far" indication storage facilitates differentiation by the barrier logic, or by the partially relocated object trap handler, between a copied portion and an uncopied portion of the partially relocated memory object.

    摘要翻译: 包含从写入和读取屏障逻辑访问的“复制到”和“复制到”标识符存储器的部分重新定位的对象标识符存储允许写入和读取屏障逻辑选择性地将存储和负载导向的访问定向到适当的FromSpace或ToSpace实例 根据存储器对象的部分重定位状态,部分重新定位的存储器对象。 在一些实施例中,障碍物捕获到部分重定位的对象陷阱处理器。 在其他实施例中,写入屏障本身引导访问而不需要软件陷阱处理程序开销。 可选的“多远”指示存储有助于通过屏障逻辑或部分重新定位的对象陷阱处理器在部分重新定位的存储器对象的复制部分和未覆盖部分之间进行区分。