Mixed execution stack and exception handling
    1.
    再颁专利
    Mixed execution stack and exception handling 有权
    混合执行堆栈和异常处理

    公开(公告)号:USRE39519E1

    公开(公告)日:2007-03-13

    申请号:US10884826

    申请日:2004-07-01

    IPC分类号: G06F9/40

    摘要: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.

    摘要翻译: 提供了用于实现用于以多种编程语言编写的功能来存储帧的执行堆栈的系统和方法。 以不同编程语言编写的函数的帧可以在相同的执行堆栈上进行交织。 可以利用执行堆栈上的数据块通过将堆栈指针和帧指针存储到前一帧来遍历帧周围的执行堆栈。 另外,异常可以传播,如果需要,通过转换,通过使用不同编程语言编写的执行堆栈上的帧。

    Interpreting functions utilizing a hybrid of virtual and native machine instructions

    公开(公告)号:US06513156B2

    公开(公告)日:2003-01-28

    申请号:US08884856

    申请日:1997-06-30

    IPC分类号: G06F945

    CPC分类号: G06F9/30174 G06F9/45516

    摘要: Systems and methods for increasing the execution speed of virtual machine instructions for a function are provided. A portion of the virtual machine instructions of the function are compiled into native machine instructions so that the function includes both virtual and native machine instructions. Execution of the native machine instructions may be accomplished by overwriting a virtual machine instruction of the function with a virtual machine instruction that specifies execution of the native machine instructions. Additionally, the original virtual machine instruction may be stored so that the original virtual machine instructions can be regenerated.

    Method and apparatus for speculatively locking objects in an object-based system
    3.
    发明授权
    Method and apparatus for speculatively locking objects in an object-based system 有权
    用于在基于对象的系统中推测性地锁定对象的方法和装置

    公开(公告)号:US06487652B1

    公开(公告)日:2002-11-26

    申请号:US09409932

    申请日:1999-09-30

    IPC分类号: G06F1730

    CPC分类号: G06F9/52

    摘要: Methods and apparatus for speculatively locking an object are disclosed. According to one aspect of the present invention, a method for acquiring use of an object using a current thread includes a determination of whether a first bit included in the object is set to indicate that the object is speculatively owned by a speculative owner thread. When the object is speculatively owned, the speculative owner thread is allowed to use the object without locking the object. The method also includes checking a stored identifier that is associated with the object and identifies the speculative owner thread, as well as determining whether the stored identifier identifies the current thread. When the stored identifier identifies the current thread, the current thread already has use of the object; i.e., the current thread is the speculative owner thread. Finally, the method includes locking the object using the speculative owner thread when it is determined that the stored identifier does not identify the current thread. In one embodiment, as for example when substantially all objects in a computing system are known to be suitable for speculative ownership, the stored identifier is checked before determining when the first bit associated with the object is set to indicate that the object is associated with the speculative owner thread.

    摘要翻译: 公开了用于推测性地锁定物体的方法和装置。 根据本发明的一个方面,一种用于使用当前线程获取对象的使用的方法包括确定包括在对象中的第一位是否被设置为指示该对象由投机所有者线程推测地拥有。 当对象被推测拥有时,推测所有者线程被允许使用对象而不锁定该对象。 该方法还包括检查与对象相关联的存储的标识符并识别推测所有者线程,以及确定所存储的标识符是否识别当前线程。 当存储的标识符识别当前线程时,当前线程已经使用该对象; 即当前线程是推测所有者线程。 最后,该方法包括当确定存储的标识符不标识当前线程时,使用推测所有者线程来锁定该对象。 在一个实施例中,例如当已知计算系统中的基本上所有对象都适合于推测所有权时,在确定何时将与对象相关联的第一位设置为指示该对象与该对象相关联的情况下,检查所存储的标识符 投机所有者线程。

    Mixed execution stack and exception handling
    4.
    发明授权
    Mixed execution stack and exception handling 有权
    混合执行堆栈和异常处理

    公开(公告)号:US06415381B1

    公开(公告)日:2002-07-02

    申请号:US09416373

    申请日:1999-10-12

    IPC分类号: G06F940

    摘要: Systems and methods for implementing an execution stack which stores frames for functions written in multiple programming languages are provided. The frames for functions written in different programming languages may be interleaved on the same execution stack. A data block on the execution stack may be utilized to traverse the execution stack around a frame by storing a stack pointer and frame pointer to a previous frame. Additionally, exceptions may be propagated, with conversion if necessary, through frames on the execution stack that are written in different programming languages.

    摘要翻译: 提供了用于实现用于以多种编程语言编写的功能来存储帧的执行堆栈的系统和方法。 以不同编程语言编写的函数的帧可以在相同的执行堆栈上进行交织。 可以利用执行堆栈上的数据块通过将堆栈指针和帧指针存储到前一帧来遍历帧周围的执行堆栈。 另外,异常可以传播,如果需要,通过转换,通过使用不同编程语言编写的执行堆栈上的帧。

    Method and apparatus for performing byte-code optimization during pauses
    5.
    发明授权
    Method and apparatus for performing byte-code optimization during pauses 有权
    在暂停期间执行字节码优化的方法和装置

    公开(公告)号:US06240548B1

    公开(公告)日:2001-05-29

    申请号:US09353124

    申请日:1999-07-14

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F71705

    CPC分类号: G06F8/48 G06F9/45516

    摘要: Methods and apparatus for dynamically compiling byte codes associated with methods during idle periods in the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. In some embodiments, methods to be dynamically compiled are referenced in one or more lists. The lists may be prioritized to facilitate the compilation of the highest priority methods first. In one embodiment, a pair of compilation lists are provided with a first one of the compilation lists being created prior to processing the computer program while the other is created during the processing of the computer program.

    摘要翻译: 公开了在执行计算机程序期间动态地编译与空闲期间中的方法相关联的字节码的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 在一些实施例中,要被动态编译的方法在一个或多个列表中被引用。 可以优先列出列表以便于首先编译最高优先级的方法。 在一个实施例中,提供一对编译列表,其中编译列表中的第一个在处理计算机程序之前被创建,而另一个在计算机程序的处理期间被创建。

    Method and apparatus for thread synchronization in an object-based system
    6.
    发明授权
    Method and apparatus for thread synchronization in an object-based system 失效
    基于对象的系统中线程同步的方法和装置

    公开(公告)号:US06212608B1

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

    申请号:US09102980

    申请日:1998-06-22

    申请人: Lars Bak

    发明人: Lars Bak

    IPC分类号: G06F1214

    摘要: Methods and apparatus which enable threads to lock and to unlock objects disclosed. According to one aspect of the present invention, a method for associating an object with a first thread includes obtaining the contents of the object header field of the object. The contents obtained from the object header field are then stored into a first location within a stack which is associated with the first thread. A reference indicator, which identifies the stack in which the contents obtained from the object header field are stored, is then stored in the object header field. In one embodiment, the method further includes updating a status indicator associated with the object to essentially show that the reference indicator is stored in the object header field. In such an embodiment, the contents of the object header may include a header value, and the status indicator may be updated to indicate that the object is accessible to the first thread.

    摘要翻译: 允许螺纹锁定和解锁所揭露物体的方法和设备。 根据本发明的一个方面,用于将对象与第一线程相关联的方法包括获得对象的对象头字段的内容。 然后将从对象头字段获得的内容存储到与第一线程相关联的堆栈内的第一位置。 标识从存储对象头字段获得的内容的堆栈的参考指示符然后存储在对象头字段中。 在一个实施例中,该方法还包括更新与对象相关联的状态指示符,以基本上示出参考指示符存储在对象头字段中。 在这样的实施例中,对象头部的内容可以包括头部值,并且可以更新状态指示符以指示该对象可访问第一线程。

    Thread synchronization in a computer controlled by an object-based
program
    7.
    发明授权
    Thread synchronization in a computer controlled by an object-based program 失效
    由基于对象的程序控制的计算机中的线程同步

    公开(公告)号:US6134627A

    公开(公告)日:2000-10-17

    申请号:US743484

    申请日:1996-11-04

    申请人: Lars Bak

    发明人: Lars Bak

    CPC分类号: G06F9/52 G06F9/4428

    摘要: A method for synchronizing threads in a computer operating under control of a program written in an object-based computer programming language provides for a first thread to lock an object by moving the object header to a stack address and replacing the header with the stack address. The first thread unlocks the object by returning the header to its associated memory location. Second and subsequent threads attempting to access a locked object detect the presence of the stack address in the header memory location and suspend their attempts to access the object. When using aligned stacks, all stack addresses will be even, and all object-headers will be odd. Threads efficiently check the status of the object by testing the least significant bit. A preferred method is implemented in a "JAVA" just-in-time compiler of a "JAVA" virtual machine.

    摘要翻译: 一种用于在基于对象的计算机编程语言编写的程序的控制下操作的计算机中的线程同步的方法提供了通过将对象头移动到堆栈地址并用堆栈地址替换头部来锁定对象的第一线程。 第一个线程通过将标题返回到其关联的存储器位置来解锁对象。 尝试访问锁定对象的第二个和后续线程检测到头部存储器位置中堆栈地址的存在并暂停他们访问该对象的尝试。 当使用对齐的堆栈时,所有堆栈地址将是均匀的,所有对象头都将是奇数。 线程通过测试最低有效位来有效地检查对象的状态。 优选的方法在“JAVA”即时编译器“JAVA”虚拟机中实现。

    Using map objects to access object properties in a dynamic object-oriented programming language
    8.
    发明授权
    Using map objects to access object properties in a dynamic object-oriented programming language 有权
    使用地图对象以动态面向对象编程语言访问对象属性

    公开(公告)号:US08244775B1

    公开(公告)日:2012-08-14

    申请号:US12120067

    申请日:2008-05-13

    IPC分类号: G06F17/30

    CPC分类号: G06F8/315 G06F9/4488

    摘要: One embodiment of the present invention provides a system that uses map objects to access object properties for a program written in a dynamic object-oriented programming language, thereby facilitating property access for languages that allow additional properties to be defined for objects at runtime. During operation, the system receives an object of an object type. This object is associated with a memory region and a given map object (from a set of map objects associated with the given object type) that describes how properties of the object are mapped to fields in the memory region. When receiving a request to access a property of the object, the system determines whether the given map object includes a field mapping for the property. If so, the system accesses a field in the memory region associated with the property using the field mapping.

    摘要翻译: 本发明的一个实施例提供一种系统,其使用地图对象来访问以动态面向对象的编程语言编写的程序的对象属性,由此促进允许在运行时为对象定义附加属性的语言的属性访问。 在操作期间,系统接收对象类型的对象。 该对象与描述如何将对象的属性映射到内存区域中的字段的内存区域和给定的映射对象(从与给定对象类型相关联的一组映射对象)关联。 当接收到访问对象的属性的请求时,系统确定给定的地图对象是否包括属性的字段映射。 如果是这样,系统使用字段映射来访问与属性关联的存储器区域中的一个字段。

    Method and apparatus for facilitating compact object headers
    9.
    发明授权
    Method and apparatus for facilitating compact object headers 有权
    用于促进紧凑型物体头部的方法和装置

    公开(公告)号:US07028287B2

    公开(公告)日:2006-04-11

    申请号:US10122071

    申请日:2002-04-12

    IPC分类号: G06F9/44

    CPC分类号: G06F9/526 G06F9/4488

    摘要: A system that associates an identifier with an instance defined within an object-oriented programming system. The system generates an identifier for the instance and associates a new near object with the instance, wherein the new near object points to a class specifying behavior for the object. The system stores the identifier in the new near object, and sets a class pointer located within a header of the instance to point to the new near object. In this way, the class pointer indirectly points to the class for the object through the new near object. The system can lock the instance to facilitate exclusive access to the instance by copying a near object associated with the instance to a method activation on the execution stack, and setting the class pointer of the instance to point to the copy of the near object on the execution stack.

    摘要翻译: 将标识符与面向对象编程系统中定义的实例相关联的系统。 该系统生成实例的标识符,并将新近的对象与实例相关联,其中新的近物体指向指定对象的行为的类。 系统将标识符存储在新近的对象中,并且设置位于实例的头部内的指针指向新近的对象的类指针。 以这种方式,类指针通过新的near对象间接指向对象的类。 系统可以锁定实例以便于通过将与实例相关联的近似对象复制到执行堆栈上的方法激活来实现对实例的独占访问,并将实例的类指针设置为指向近似对象的副本 执行堆栈

    Method and apparatus for performing byte-code optimization during pauses
    10.
    发明授权
    Method and apparatus for performing byte-code optimization during pauses 有权
    在暂停期间执行字节码优化的方法和装置

    公开(公告)号:US06865734B2

    公开(公告)日:2005-03-08

    申请号:US09836916

    申请日:2001-04-17

    申请人: Urs Hölzle Lars Bak

    发明人: Urs Hölzle Lars Bak

    IPC分类号: G06F9/45

    摘要: Methods and apparatus for dynamically compiling byte codes associated with methods during idle periods in the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. In some embodiments, methods to be dynamically compiled are referenced in one or more lists. The lists may be prioritized to facilitate the compilation of the highest priority methods first. In one embodiment, a pair of compilation lists are provided with a first one of the compilation lists being created prior to processing the computer program while the other is created during the processing of the computer program.

    摘要翻译: 公开了在执行计算机程序期间动态地编译与空闲期间中的方法相关联的字节码的方法和装置。 所描述的方法特别适用于被布置为执行解释和编译的字节码的计算机系统。 在一些实施例中,要被动态编译的方法在一个或多个列表中被引用。 可以优先列出列表以便于首先编译最高优先级的方法。 在一个实施例中,提供一对编译列表,其中编译列表中的第一个在处理计算机程序之前被创建,而另一个在计算机程序的处理期间被创建。