Patents by Inventor Bernd J.W. Mathiske

Bernd J.W. Mathiske has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9152456
    Abstract: Some embodiments of the present invention provide a system that implements a safepoint for a thread, which includes a compiler and a runtime environment. During compilation of an application to be executed by the thread, the compiler obtains a register to be associated with the thread and inserts safepoint code into the application, wherein the safepoint code includes an indirect load from a memory location stored in the register to the register. During execution of the application by the thread, the runtime environment writes a thread-specific value for the thread to the register, wherein the thread-specific value corresponds to an enabled value, a triggered value, or a disabled value. In these embodiments, executing the indirect load by the thread causes the thread to trap if the thread-specific value corresponds to the triggered value.
    Type: Grant
    Filed: January 23, 2009
    Date of Patent: October 6, 2015
    Assignee: ORACLE AMERICA, INC.
    Inventors: Benjamin L. Titzer, Bernd J. W. Mathiske, Karthikeyan Manivannan
  • Patent number: 8296745
    Abstract: Method and apparatus for automatically generating intermediate-level interfaces between program methods written in a platform-independent language and program methods written in a native language. A portable stub generator generates stubs in an intermediate, tokenized internal representation. The stub generator is portable across platforms as the stubs it generates are not platform-specific. In addition, the generated stubs are available to the compiler at intermediate compilation stages rather than at the backend compilation stage, and thus may be optimized together with the rest of the platform-independent code, and also may be inlined. The portable stub generator may be directed at virtual machine environments. An exemplary virtual machine environment in which the stub generator may be implemented is the Java™ Virtual Machine (JVM). In JVMs, Java™ is the platform-independent language, and Java™ bytecode the tokenized internal representation.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: October 23, 2012
    Assignee: Oracle America, Inc.
    Inventors: Douglas N. Simon, Bernd J. W. Mathiske
  • Patent number: 7925640
    Abstract: In the described embodiments, a computer constructs a dispatch data structure for a holder by first determining a set of member holders from which the holder inherits. The computer then constructs an “i-table” that includes holder addressor regions that each contains addressors for an associated set of members. Each of the holder addressor regions is associated with an i-table index. The computer next collects a set of identification numbers for the set of member holders and, from these, constructs an “m-table.” The size of the m-table is selected to perfectly hash the set of identification numbers by the m-table size. The computer then computes an m-table index for each of the set of identification numbers modulo the m-table size and uses the m-table index to populate the m-table. The computer next stores the i-table index in the m-table in accordance with the m-table index.
    Type: Grant
    Filed: February 14, 2008
    Date of Patent: April 12, 2011
    Assignee: Oracle America, Inc.
    Inventors: Bernd J.W. Mathiske, Laurent P. Daynes, Gregory M. Wright
  • Patent number: 7814290
    Abstract: One embodiment of the present invention provides a method and a system for synchronous detection and signaling of memory quota violations for sequential memory allocation in a shared heap. The system detects a potential quota violation if a check of approximate memory usage indicates that an attempt to allocate memory may violate a task's memory quota. Upon detecting such a potential quota violation, the system proceeds to reconcile the task's exact memory usage. If the task's exact memory usage violates the task's memory quota, the system signals a synchronous quota violation at the time of the violation. Synchronously signaling quota violations in this manner provides accurate quota violation detection and signaling without reducing the performance of sequential memory allocation. The method also improves the accuracy of approximate per-task memory usage tracking by reconciling exact memory usage when an estimate of the task's memory usage exceeds the task's memory quota.
    Type: Grant
    Filed: November 3, 2005
    Date of Patent: October 12, 2010
    Assignee: Oracle America, Inc.
    Inventors: Oleg A. Pliss, Bernd J. W. Mathiske
  • Publication number: 20100192139
    Abstract: Some embodiments of the present invention provide a system that implements a safepoint for a thread, which includes a compiler and a runtime environment. During compilation of an application to be executed by the thread, the compiler obtains a register to be associated with the thread and inserts safepoint code into the application, wherein the safepoint code includes an indirect load from a memory location stored in the register to the register. During execution of the application by the thread, the runtime environment writes a thread-specific value for the thread to the register, wherein the thread-specific value corresponds to an enabled value, a triggered value, or a disabled value. In these embodiments, executing the indirect load by the thread causes the thread to trap if the thread-specific value corresponds to the triggered value.
    Type: Application
    Filed: January 23, 2009
    Publication date: July 29, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Benjamin L. Titzer, Bernd J. W. Mathiske, Karthikeyan Manivannan
  • Publication number: 20090210379
    Abstract: Apparatus, methods, and computer program products are disclosed for constructing and using member dispatch tables for Object-Oriented programming environments.
    Type: Application
    Filed: February 14, 2008
    Publication date: August 20, 2009
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Bernd J. W. Mathiske, Laurent P. Daynes, Gregory M. Wright
  • Patent number: 7574705
    Abstract: One embodiment of the present invention provides a system that facilitates efficiently resolving symbolic references in a virtual machine to support in-place execution. During operation, the system loads an in-place executable file into the virtual machine, and receives a pointer that points to an unresolved symbol value in the in-place executable file. This unresolved symbol value includes an offset value that points to a subsequent unresolved symbol value in a chain of unresolved symbol values within the in-place executable file, and a token value that can be used to look up a corresponding resolved reference value in an unresolved symbol table. The system then uses the token value to look up the corresponding resolved reference in the unresolved symbol table, and replaces the unresolved symbol value with the corresponding resolved reference.
    Type: Grant
    Filed: June 29, 2004
    Date of Patent: August 11, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Antero K. P. Taivalsaari, William F. Pittore, Bernd J. W. Mathiske
  • Publication number: 20090172652
    Abstract: Method and apparatus for automatically generating intermediate-level interfaces between program methods written in a platform-independent language and program methods written in a native language. A portable stub generator generates stubs in an intermediate, tokenized internal representation. The stub generator is portable across platforms as the stubs it generates are not platform-specific. In addition, the generated stubs are available to the compiler at intermediate compilation stages rather than at the backend compilation stage, and thus may be optimized together with the rest of the platform-independent code, and also may be inlined. The portable stub generator may be directed at virtual machine environments. An exemplary virtual machine environment in which the stub generator may be implemented is the Java™ Virtual Machine (JVM). In JVMs, Java™ is the platform-independent language, and Java™ bytecode the tokenized internal representation.
    Type: Application
    Filed: December 31, 2007
    Publication date: July 2, 2009
    Inventors: Douglas N. Simon, Bernd J.W. Mathiske
  • Patent number: 7424589
    Abstract: One embodiment of the present invention provides a method and a system for tracking memory usage of tasks in a shared heap. The system performs a full garbage-collection operation on the shared heap, during which a base memory usage is determined for each task. The system then periodically samples task state during execution to generate an estimate of newly allocated memory for each task. The base memory usage and the estimate of newly allocated memory for each task are combined to produce an estimate of current memory usage for each task. This estimate of current memory usage is used to determine whether a task is likely to be violating a memory quota. If so, the system triggers a remedial action, which can include: a full garbage-collection operation; a generational garbage-collection operation; or generation of a signal which indicates that a memory quota violation has occurred.
    Type: Grant
    Filed: June 24, 2005
    Date of Patent: September 9, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Oleg A. Pliss, Bernd J. W. Mathiske
  • Patent number: 7412693
    Abstract: One embodiment of the present invention provides a system that facilitates determining a frequency of execution of compiled methods within a virtual machine. The system starts by determining if a compiled method is executing. If so, the system sets a flag corresponding to the compiled method to indicate that the compiled method is executing. Periodically, the system scans the flag and increments the value of a corresponding counter if the flag is set, and then resets the flag. Finally, the system analyzes the value of the counter to determine a frequency of execution of the compiled method.
    Type: Grant
    Filed: October 15, 2004
    Date of Patent: August 12, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernd J. W. Mathiske, Oleg A. Pliss
  • Publication number: 20080127072
    Abstract: In general, in one aspect, the invention relates to a computer readable medium comprising executable instructions for verifying generation of an intermediate representation (IR). The generation of the IR is verified by generating the IR from source code and interpreting the IR to obtain an interpretation result. Interpreting the IR includes encountering a method call in the IR, locating an execution unit corresponding to the method call, executing the execution unit to obtain an execution result, replacing a portion of the IR with the execution result to obtain a reduced IR, and obtaining the interpretation result from the reduced IR. Finally, the interpretation result is compared to an expected result of the source code, wherein the generation of the IR is verified if the interpretation result equals the expected result.
    Type: Application
    Filed: September 7, 2006
    Publication date: May 29, 2008
    Applicant: Sun Microsystems, Inc.
    Inventors: Bernd J.W. Mathiske, David M. Ungar, Mario I. Wolczko, Gregory M. Wright, Matthew L. Seidl
  • Patent number: 7296044
    Abstract: One embodiment of the present invention provides a system that facilitates keeping track of memory usage of tasks in a shared heap. The system operates by performing a garbage collection operation on the shared heap, wherein the garbage collection operation is a compacting garbage collection operation which preserves the ordering of objects within the shared heap. The system determines a memory usage for each task in the shared heap by adding the memory usage for intervals containing objects for each task in the shared heap to the memory usage count for each task to produce an actual memory usage for each task. This garbage collection may or may not be a generational garbage collection operation.
    Type: Grant
    Filed: December 22, 2004
    Date of Patent: November 13, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Oleg A. Pliss, Bernd J. W. Mathiske, Kinsley Wong
  • Patent number: 7231523
    Abstract: One embodiment of the present invention provides a method for facilitating secure extension of an application. The method operates by first establishing an agreement between an owner of the application and a third party to allow the third party to incorporate an extension into the application. Once an agreement has been established, the system causes the extension to be digitally signed with a private key associated with the owner of the application, whereby the resulting digital signature can be verified with a corresponding public key to confirm that the extension is authorized to be used by the application. The system also configures the application to operate with extensions signed with the private key. In a variation on this embodiment, causing the extension to be digitally signed involves receiving the extension from the third party and signing the extension with the private key belonging to the owner of the application.
    Type: Grant
    Filed: September 2, 2003
    Date of Patent: June 12, 2007
    Assignee: Sun Microsystems, Inc.
    Inventor: Bernd J. W. Mathiske
  • Patent number: 7100015
    Abstract: One embodiment of the present invention provides a system that facilitates redirecting external memory allocation operations, generated during calls by an application to external library functions, to an internal memory manager within the application. The system starts by encountering a call to an external library function during execution of the application. The system then determines if the external library function can call an internal memory allocation function, and if so, redirects the call to an internal memory allocation function within the application.
    Type: Grant
    Filed: September 15, 2003
    Date of Patent: August 29, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernd J. W. Mathiske, Teck Yang Lee
  • Patent number: 7051323
    Abstract: One embodiment of the present invention provides a system that initializes system classes for a virtual machine during build time for the virtual machine, so that portions of the system classes can be stored in Read Only Memory (ROM). During virtual machine build time, the system loads system classes for the virtual machine. Next, the system identifies which of the system classes can be initialized at build time and then initializes the identified system classes. The system then stores portions of the system classes in a ROM image, so that the portions of the system classes can be accessed from the ROM image during subsequent run-time execution of the virtual machine. In this way, this embodiment of the present invention reduces the amount of time required to initialize system classes during run-time execution of the virtual machine.
    Type: Grant
    Filed: October 8, 2002
    Date of Patent: May 23, 2006
    Assignee: SUN Microsystems, Inc.
    Inventors: Ioi K. Lam, Bernd J. W. Mathiske
  • Patent number: 7036112
    Abstract: One embodiment of the present invention provides a system that facilitates implementing multi-mode specification-driven disassembler. During operation, the disassembler receives a machine-code version of a computer program. In order to disassemble a specific machine-code instruction from this machine-code version, the system compares the machine-code instruction against a set of instruction templates for assembly code instructions to identify a set of matching templates. Next, the system selects a matching template from the set of matching templates based on the state of a mode variable, which indicates a specificity mode for the disassembler. The system then disassembles the machine-code instruction using the operand fields defined by the matching template to produce a corresponding assembly code instruction.
    Type: Grant
    Filed: August 16, 2002
    Date of Patent: April 25, 2006
    Assignee: SUN Microsystems, Inc.
    Inventors: David M. Ungar, Mario I. Wolczko, Bernd J. W. Mathiske
  • Patent number: 6865738
    Abstract: One embodiment of the present invention provides a system that facilitates performing independent asynchronous I/O operations within a platform-independent virtual machine. Upon encountering an I/O operation, a language thread within the system marshals parameters for the I/O operation into a parameter space located outside of an object heap of the platform-independent virtual machine. Next, the language thread causes an associated operating system thread (OS-thread) to perform the I/O operation, wherein the OS-thread accesses the parameters from the parameter space. In this way, the OS-thread does not access the parameters in the object heap directly while performing the I/O operation.
    Type: Grant
    Filed: October 8, 2002
    Date of Patent: March 8, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernd J.W. Mathiske, Saul G. Wold, Ioi K. Lam
  • Patent number: 6829686
    Abstract: A method for providing a remembered set involves maintaining the remembered set as a bag, identifying when an event occurs, and transforming the remembered set into a set when the event occurs. The step of transforming includes obtaining a plurality of thread local store buffers and flushing the thread local store buffers to a global store buffer.
    Type: Grant
    Filed: February 8, 2001
    Date of Patent: December 7, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernd J. W. Mathiske, Ross C. Knippel
  • Patent number: 6772296
    Abstract: One embodiment of the present invention provides a system that facilitates storage of objects in a persistent memory with asymmetric access characteristics. The system operates by receiving an access to an object. If the access is a read access, the system looks up the object through an indirectory. This indirectory includes an entry that points to a location of the object within the persistent memory if updates to the object have been recorded in the persistent memory. Otherwise, the indirectory entry points to a location of the object within a volatile memory. If the object is located in the volatile memory, the system reads the object from the volatile memory. Otherwise, if the object is located in the persistent memory, the system reads the object from the persistent memory directly without first copying the object into the volatile memory. In one embodiment of the present invention, if the access is a write access, the system looks up the object through the indirectory.
    Type: Grant
    Filed: August 10, 2000
    Date of Patent: August 3, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Bernd J. W. Mathiske
  • Patent number: 6738926
    Abstract: One embodiment of the present invention provides a system for recovering a process that is multi-threaded from checkpoint information that was previously stored for the process. During a recovery operation, the system first retrieves the checkpoint information for the process. Next, the system extracts an identifier for a program being run by the process as well as parameters of the program from the checkpoint information. The system also extracts thread identifiers for threads associated with the process from the checkpoint information. Next, the system modifies the program so that executing the program will cause threads associated with the process to be restored. The system then creates a replacement process to replace the process, and causes the replacement process to execute the modified program so that the threads are reconstituted within the replacement process.
    Type: Grant
    Filed: June 15, 2001
    Date of Patent: May 18, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Bernd J. W. Mathiske, Glenn C. Skinner