Patents Assigned to Sun Microsystems
  • Patent number: 6684299
    Abstract: A multi-level cache and method for operation of a multi-level cache generating multiple cache system accesses simultaneously. Each access request includes an address identifying a memory location having data that is a target of the access. A insertion pointer inserts each access request into an entry in a memory scheduling window. Each entry is marked as valid when that entry is ready to be applied to a first cache level. A picker picks valid entries from the memory scheduling window by pointing to the picked entry and applying the address therein to the first cache level. The picking occurs in a free-running mode regardless of whether the accesses hit in the first cache level. A second cache level, receives accesses that have missed in the first cache level. A resource monitor in the second cache level determines when a predetermined number of resources are committed to servicing the accesses that have missed in the first cache level.
    Type: Grant
    Filed: February 28, 2001
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Thomas M. Wicki
  • Patent number: 6684398
    Abstract: One embodiment of the present invention provides a system that facilitates entering and exiting a critical section of code for a speculative thread. The system supports a head thread that executes program instructions, and the speculative thread that speculatively executes program instructions in advance of the head thread. During an entry into the critical section by the speculative thread, the system increments a variable containing a number of virtual locks held by the speculative thread. Note that a virtual lock held by the speculative thread is associated with the critical section and is used to keep track of the fact that the speculative thread has entered the critical section. Also note that this virtual lock does not prevent the speculative thread or other threads from entering the critical section. During an exit from the critical section by the speculative thread, the system decrements the variable containing the number of virtual locks held by the speculative thread.
    Type: Grant
    Filed: January 16, 2001
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay
  • Patent number: 6683372
    Abstract: A memory expansion module with stacked memory packages. A memory module is implemented using stacked memory packages. Each of the stacked memory packages contains multiple memory chips, typically DRAMs (dynamic random access memory). The memory may be organized into multiple banks, wherein a given memory chip within a stacked memory package is part of one bank, while another memory chip in the same package is part of another bank. The memory module also includes a clock driver chip and a storage unit. The storage unit is configured to store module identification information, such as a serial number. The storage unit is also configured to store information correlating electrical contact pads on the module with individual signal pins on the stacked memory packages. This may allow an error to be quickly traced to a specific pin on a stacked memory package when an error is detected on the memory bus by an error correction subsystem.
    Type: Grant
    Filed: November 18, 1999
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Tayung Wong, John Carrillo, Jay Robinson, Clement Fang, David Jeffrey, Nikhil Vaidya, Nagaraj Mitty
  • Patent number: 6683626
    Abstract: Scrolling through one or more focusable and/or non-focusable items may be accomplished by: scrolling the display a set number of pixels in said direction if the cursor location is on a non-focusable item and an end border in said direction of said non-focusable item is not currently shown on the display; moving the cursor location to a next focusable item in said direction and scrolling the display enough in said direction to display said next focusable item if the cursor location is on a non-focusable item and an end border in said direction of said non-focusable item is currently shown on the display or if the cursor location is on a focusable item and a next item in said direction is a focusable item or if the cursor location is on a focusable item, the next item in said direction is a non-focusable item, and an end border in said direction of said non-focusable item is currently shown on the display; and moving the cursor location to a next non-focusable item and scrolling the display in said direction if
    Type: Grant
    Filed: October 4, 2000
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Suzanne L. Abellera
  • Patent number: 6683794
    Abstract: An electronics assembly may include a frame (1) and a motherboard module (18) have cooperating temporary supporting elements (50, 54, 60, 62) that can be engaged to support one edge of the motherboard module until some of the securing elements have been engaged to secure the motherboard module to the frame or after the securing elements have been released. The provision of temporary supporting elements enables a service engineer to support the motherboard module with a single hand while securing it in position with the other hand.
    Type: Grant
    Filed: June 10, 2002
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: John David Schnabel, Andrew John Yair
  • Publication number: 20040015850
    Abstract: The present invention pertains to techniques for creating and maintaining objects in object-oriented environments. The techniques are especially well suited for Java programming environments. In accordance with one aspect of the invention, specialized Java heaps are disclosed. In contrast to conventional heaps, the specialized Java heap is designated for storing Java objects with similar traits in the same memory portion. As such, objects with similar traits can be allocated and maintained in a designated memory portion. Another aspect of the invention provides methods for allocating objects in the heap memory. These methods can be used to create and associate objects with similar traits in a specialized heap. As will be appreciated, objects can be created and maintained more efficiently in this manner. As a result, the performance of virtual machines, especially those operating with relatively limited resources (e.g., embedded systems), is improved.
    Type: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040015855
    Abstract: Improved techniques for accessing Java class files are disclosed. The techniques provide a mechanism that will generally improve the efficiency of virtual machines by providing a directory for Java class files. The directory can be implemented as an attribute in the attribute portion of the Java class files. Various components of the Java class file can be accessed efficiently by using the directory. In addition, techniques for accessing various components of Java class files using directories are disclosed. The techniques utilize the directory to allow efficient access to the class file. Thus, unlike conventional techniques, there is no need to perform sequential reads in order to locate various components of the Java class file. This allows for better use of resources. As a result, the invention can improve the performance of virtual machines, especially those that operate with limited resources (e.g., embedded systems).
    Type: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20040013215
    Abstract: An apparatus and method for distributing multiple clock signals to multiple devices using an encoded clock signal is provided. A source clock signal can be encoded to result in an encoded system clock. The encoded system clock can be distributed to multiple devices in a computer system. The devices can decode the encoded system clock signal to generate a system clock signal and a global clock signal. The system clock signal and the global clock signal can then be distributed to their respective clock loads on each device. In certain embodiments, additional information, such as state information, can be encoded into the encoded system clock. A device can be configured to decode the additional information and can alter its state accordingly.
    Type: Application
    Filed: July 17, 2003
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventor: Drew G. Doblar
  • Publication number: 20040015798
    Abstract: A testbench for an integrated circuit (IC) design including a chain of scan circuits having a memory characteristic is verified by: (a) dividing the chain of scan circuits and creating a plurality of partitions, each partition including at least one logic cone output, each scan circuit belonging to one of the partition as a logic cone output; (b) generating a partitioned netlist for each partition from a full netlist for the IC design, the partitioned netlist including at least one logic cone, the logic cone extending from the logic cone output to at least one logic cone input; (c) generating a partitioned testbench for each partition from the full testbench based on the partitioned netlists; and (d) performing verification for the testbench by simulating the partitioned testbenches on the corresponding partitioned netlists.
    Type: Application
    Filed: July 22, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventors: Scott Davidson, Ramesh C. Tekumalla
  • Publication number: 20040015976
    Abstract: A method allocates computing resources from a resource pool. Each job request includes attributes and a unique identifier. A digital signature is generated for each job request based on the combination of the attributes. The identifier is associated with the digital signature. Job requests having identical attributes are grouped together.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventor: Wah Lam
  • Publication number: 20040015642
    Abstract: We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. An interesting feature of our obstruction-free STM implementation is its ability to use of modular contention managers to ensure progress in practice.
    Type: Application
    Filed: July 16, 2003
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
  • Publication number: 20040015622
    Abstract: Speculative prefetching during DMA reads in a message-passing, queue-oriented bus system is controlled by creating a special data structure, called a “DMA scoreboard”, for each work queue entry associated with a DMA read. The DMA scoreboard tracks the completion of DMA writes and reads by monitoring acknowledgements received from DMA writes and data tags received from DMA read responses. The DMA scoreboard also contains a section that indicates the current PCI address, and size and number of prefetches to be performed. After a DMA read has completed, the PCI current address is incremented to obtain a new PCI address for the first prefetch request. A new work queue entry is then created from the information in the DMA scoreboard to perform the prefetch.
    Type: Application
    Filed: July 9, 2003
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventor: James M. Avery
  • Publication number: 20040015647
    Abstract: An existing neutral operating system (OS) signal is utilized to notify a virtual machine (VM) about a change to its execution parameters. The signal is predefined to indicate that an execution parameter should be changed, and upon receipt, the VM may look up a file in a predefined location, the file containing the new command line parameters. The VM may then modify its parameters to match the file, and continue with its execution, thus providing a mechanism for altering VM execution parameters at runtime.
    Type: Application
    Filed: July 17, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventor: Mikhail A. Dmitriev
  • Publication number: 20040015974
    Abstract: A method, apparatus and system arranged to provide a contract between an application server and a resource adapter that allows the resource adapter to do work (monitor network endpoints, call application components, etc) by submitting work instances to an application server for execution. In the described embodiment, the application server dispatches threads to execute submitted work instances thereby allowing the requesting resource adapter to avoid creating or managing threads directly. In this way, a mechanism for the resource adapter to do its work is provided as well as allowing the application server to efficiently pool threads and have more control over its runtime environment.
    Type: Application
    Filed: March 25, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventor: Thulasiraman Jeyaraman
  • Publication number: 20040012939
    Abstract: A shielding apparatus for containing electromagnetic energy is disclosed. In one embodiment, a shield includes a plurality of sides, each side having a top and a bottom. A flange may extend from the top of the sides. A plurality of tabs extend from the flanges. The tabs include a first, second, and third portions. The first portion extends directly from the flange. The second portion extends at an angle from the first portion relative to the plane of the first portion and the flange. The longitudinal axis of the second portion is parallel to its associated flange or side. A third portion extends from the second portion, at an angle relative, to the second portion. A heat sink coated with an electrically conductive material may be mounted such that a bottom side of the heat sink is in contact with the plurality of tabs.
    Type: Application
    Filed: April 14, 2003
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Peter Cuong Dac Ta, Vernon P. Bollesen, Sergiu Radu
  • Publication number: 20040015510
    Abstract: We introduce obstruction-freedom—a new non-blocking condition for shared data structures that weakens the progress requirements of traditional nonblocking conditions, and as a result admits solutions that are significantly simpler and more efficient in the typical case of low contention. We demonstrate the merits of obstruction-freedom by showing how to implement an obstruction-free double-ended queue that has better properties than any previous nonblocking deque implementation of which we are aware. The beauty of obstruction-freedom is that we can modify and experiment with the contention management mechanisms without needing to modify (and therefore reverify) the underlying non-blocking algorithm. In contrast, work on different mechanisms for guaranteeing progress in the context of lock-free and wait-free algorithms has been hampered by the fact that modifications to the “helping” mechanisms has generally required the proofs for the entire algorithm to be done again.
    Type: Application
    Filed: July 16, 2003
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
  • Publication number: 20040015975
    Abstract: An interface for a distributed processing framework (DPF) is disclosed. The distributed processing framework (DPF) can manage the execution of a process utilizing cross-platform dynamically networked distributed computer system. The interface to the distributed processing framework (DPF) can be implemented as a graphical user interface. The graphical user interface allows users to conveniently communicate with the distributed processing framework. The graphical user interface can provide users with customized menus. Accordingly, the user can conveniently make selections and submit a request for processing.
    Type: Application
    Filed: April 17, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Murali K. Nandigama, Uday S. Dhanikonda, Madhava Avvari, Philip Chin
  • Publication number: 20040015534
    Abstract: A method for a plus one operation includes dividing a binary number into bit sets including a least significant bit set, incrementing the least significant bit set, and, for each bit set other than the least significant bit set, incrementing the bit set unless any less significant bit sets comprises a zero. The bit sets are increment in one of two ways. If all bits of the bit set equal one, e.g., the bit set is 1111, then all bits of the bit set are simply complemented, sometimes called inverted, and set to zero. In all other instances, the least significant zero of the bit set is identified, and the least significant zero and all less significant bits, i.e., everything to the right of the least significant zero, is (are) complemented.
    Type: Application
    Filed: July 17, 2002
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Ken L. Motoyama, Sudhendra V. Parampalli
  • Publication number: 20040015935
    Abstract: Improved techniques for loading class files into virtual computing machines are disclosed. These techniques provide a mechanism that will generally improve the efficiency of virtual machines by selectively loading information into a virtual machine. As will be appreciated, this allows a better use of the resources of the virtual machine. This is especially effective in virtual machines that operate with limited memory resources (e.g., embedded systems). In one embodiment, class files suitable for loading into a virtual machine are initially loaded into a memory portion (e.g., heap memory). Then, information that is needed to be loaded into the virtual machine is selected. Finally, only the selected information is loaded into the virtual machine.
    Type: Application
    Filed: March 26, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040015873
    Abstract: An enhanced Java Bytecode verifier suitable for operation in a Java computing environment is disclosed. The enhanced Java Bytecode verifier operates to determine whether one or more Java conventional Bytecode commands within a stream of Bytecodes are likely to place a reference to a Java object on the execution stack. In one embodiment, the conventional Java Bytecode commands identified as such are translated by the enhanced Java Bytecode verifier into one or more corresponding Java commands. When a corresponding command is executed, the reference associated with the conventional Java command is placed on a reference stack as well as the execution stack.
    Type: Application
    Filed: May 8, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman