Abstract: An optimized, superscalar microprocessor architecture for supporting graphics operations in addition to the standard microprocessor integer and floating point operations. A number of specialized graphics instructions and accompanying hardware for executing them are disclosed to optimize the execution of graphics instruction with minimal additional hardware for a general purpose CPU.
Abstract: A method and apparatus for fast and reliable fencing of resources such as shared disks on a networked system. For each new configuration of nodes and resources on the system, a membership program module generates a new membership list and, based upon that, a new epoch number uniquely identifying the membership correlated with the time that it exists. A control key based upon the epoch number is generated, and is stored at each resource controller and node on the system. If a node is identified as failed, it is removed from the membership list, and a new epoch number and control key are generated. When a node sends an access request to a resource, the resource controller compares its locally stored control key with the control key stored at the node (which is transmitted with the access request). The access request is executed only if the two keys match.
Abstract: A method and system for managing control information associated with a file is disclosed. According to the method, a cache is established in a first file block for storing a second type of file control data. The cache has a cache range. In response to receiving a command to write the file, a first and second type of file control data is generated. The second type of file control data has a logical block number identifying a location in the second file block where the second type of file control data is to be stored. The first type of file control data is stored in the first file block. If the logical block number is within the cache range, then the second type of file control data is stored in the cache. If the logical block number is outside the cache range, then the cache is flushed by copying the previously stored second type of file control data in the cache to a second file block. The second type of file control data is then written into the cache.
Abstract: Methods and apparatus for dynamically determining whether portions of code should be interpreted or compiled in order to optimize a software application during run-time are disclosed. According to one aspect of the present invention, computer-implemented method for run-time processing of a computer program which includes byte-codes arranged as a plurality of methods includes invoking a first method selected from the plurality of methods. Invoking the first selected method involves interpreting the first selected method. An invocation tracker which is arranged to track the number of invocations of the first selected method is updated, and a determination is made regarding when the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value. The first selected method is compiled when it is determined that the invocation tracker indicates that the number of invocations of the first selected method exceeds a threshold value.
Type:
Grant
Filed:
October 6, 1997
Date of Patent:
November 30, 1999
Assignee:
Sun Microsystems, Inc.
Inventors:
Urs Holzle, Robert Griesemer, David Griswold
Abstract: Methods, software, and apparatus for customizing a component for use with an application builder tool are disclosed. A method for customizing a component which has at least one associated property with an associated data type involves obtaining the component, obtaining an editor that is arranged to modify the property, and adding the editor to a customizer that is associated with said component. Then, the property is modified using the editor. In one embodiment, the method further includes configuring the component by implementing the modified property. In another embodiment, the component is an instance of an associated component class, and obtaining the component involves obtaining the component class and creating the instance of the component class. In such an embodiment, each property associated with the component is identified.
Abstract: A method, apparatus, and program code visually constructs object-oriented application software to be installed on a distributed object system. The method of the invention includes the following steps. Initially, the method provides a catalog facility which contains components having references to pre-existing objects within a distributed object system. A component is selected from the catalog facility for inclusion in the application software. A part corresponding to the object referenced by the selected component is derived from the selected component. The part is then made available to an application construction environment. In this environment, the part can be linked to at least one other part that also references a pre-existing object in the distributed object system. Graphical facilities are provided within the application construction environment for selecting and defining links among parts.
Type:
Grant
Filed:
July 3, 1996
Date of Patent:
November 23, 1999
Assignee:
Sun Microsystems, Inc.
Inventors:
Brad G. Fowlow, Greg B. Nuyens, Frank Ludolph
Abstract: A circuit used to control the modification of content within memory implemented within an address translation unit. This memory includes a plurality of entries which contain virtual and physical addresses associated with an address translation. The circuit includes an update control circuit coupled to the address translation circuit. The update circuit is configured to set an entry to an invalid state or point to an entry to be loaded with a new address translation. The circuit further includes a flush control circuit that is configured to control the update control circuit. Such control includes setting an entry to an invalid state upon detecting a particular event.
Abstract: Apparatus, methods, systems and computer program products are disclosed that provide enhancements to client-side image maps in HTML based documents. These enhancements provide audio feedback to a user of a HTML capable application as to the hyperlinks associated with an area in an image. These enhancements also provide a visual representation of the areas defined by a client-side image map when the image is not available.
Abstract: A method and apparatus for printing a hyperspacial document with multiple pages. Each of the pages is composed in a markup language, and a respective printing element is included in each of the pages. The printing element for a given page is either an indicator of which of the pages is to print after the given page or an indicator that there is no page that prints next. When the header portion of a given page is transferred, it is checked to determine whether it contains a printing element. If the printing element is present, then a command to print the multiple pages is activated. The pages are printed in the order specified by the printing elements.
Abstract: A module consists of a shroud or enclosure attached to a card containing heat-emitting electronic components or to a stack of two or more vertically spaced cards; one or all of which have heat sinks in thermal contact with at least some of the electronic components. The shroud is apertured to control air flow in many directions over the components and heatsinks. A hinge member extends along one edge of the module shaped to be inserted in a slot in a panel to establish a hinge. As the shroud is pivoted about the hinge, horizontal electrical contacts on the panel and at least one card interengage and vertical contacts on one of the cards remote from the hinge simultaneously interengage. The contour of the shroud aids in installing or removing the module.
Type:
Grant
Filed:
March 31, 1998
Date of Patent:
November 23, 1999
Assignee:
Sun Microsystems, Inc.
Inventors:
David K. J. Kim, Barry Marshall, Ronald Barnes
Abstract: A logical address and a pointer entry for a file in an indirect address file system are translated into a physical address. A decision module tests a pointer flag in a present pointer entry. The pointer entry has a pointer and a pointer flag to identify whether the pointer points to a data storage area or a metadata storage area. The decision module indicates whether the pointer is a data pointer or a metadata pointer. In response to the decision module indicating the pointer is a data pointer, a set module combines the data pointer with the logical address to generate a physical address. A split module, in response to the decision module indicating the pointer is a metadata pointer, divides the logical address into a first portion as an index value and a remaining portion as an offset value. An update module then sets the logical address to the offset value. A retrieve module combines the metadata pointer with the index value to get the next pointer entry.
Abstract: Improved word accuracy of speech recognition can be achieved by providing a scheme for automatically limiting the acceptable word sequences. Speech recognition systems consistent with the present invention include a lexicon database with words and associated lexical properties. The systems receive exemplary clauses containing permissible word combinations for speech recognition, and identify additional lexical properties for selected words in the lexicon database corresponding to words in the received exemplary clauses using lexical property tests of a grammar database. Certain lexical property tests are switchable to a disabled state. To identify the additional lexical properties, the exemplary clauses are parsed with the switchable lexical property tests disabled to produce an index of the lexical properties corresponding to the exemplary clauses.
Abstract: A bus controller for a computer system. The controller comprises a monitor for monitoring request signals and response signals between a first component and a second component each connected to a bus of the computer system; and a terminator controlled by the monitor to terminate a request from one of the first and second components if a response to the request has not issued within a predetermined period of time.
Abstract: A graphics accelerator using an improved method for evaluating a power function. As part of determining realistic shading for objects in a three-dimensional scene, the Phong technique requires repeated evaluation of the power function D.sup.P, where D is a base value and P is a power value with a fractional component. In one embodiment, a hardware implementation of this function determines the logarithm log.sub.2 (D.sup.P) using a table lookup and a multiplication. An anti-logarithm function is then performed as follows. The logarithm log.sub.2 (D.sup.P) is split into three parts: an integer portion I, a five bit fractional portion F, and a remainder fractional portion R. The desired value D.sup.P is then expressible as 2.sup.I 2.sup.F 2.sup.R. The factor 2.sup.F In2 is found using a 32-entry lookup table. The factor 2.sup.R /In2 is closely approximated by adding 1/In2 to R. Multiplying these two factors and shifting by I bits advantageously produces the desired value D.sup.P.
Abstract: Methods, systems, and software for efficiently creating virtual file systems including object files which contain data are described. In one aspect of the invention, a method for creating a virtual file system includes retrieving a data file from a file system. A snapshot of the data file is created and converted into an object data file. The converted object data file is linked to at least one other object file. The data file can be concatenated with at least one other data file to create the snapshot. A set of assembly instructions for creating an object file from the snapshot is generated. The assembly instructions include instructions to reserve space within the object file for data contained in the data file. The assembly instructions are converted into an object file and the snapshot of the data file is copied into the reserved space.
Type:
Grant
Filed:
October 21, 1997
Date of Patent:
November 23, 1999
Assignee:
Sun Microsystems, Inc.
Inventors:
Dean R. E. Long, Graham Hamilton, Nedim Fresko
Abstract: In the system of the present invention, a time critical program operating in a window system environment is implemented. The application program containing time critical procedures is divided functionally into two or more processes. The first process contains all of the CPU time slice sensitive or time critical procedures. This process operates independently of the window system interface and communicates directly with the operating system. The second process implements all procedures which require the user input and output through the window system but not including time critical procedures. This process communicates with and operates through the window system interface. The processes exchange data and synchronize execution through the interprocess communication mechanisms such as shared memory such that the two or more processes operate and appear as a single process to the user while insulating the first process from suspension due to window system operations and blocking procedures.
Abstract: A bus line is provided with broadly distributed signal termination by using switched termination logic where the pull up resistance of a driver corresponds to the characteristic impedance of the line and the pull down resistance of the driver corresponds to the number of drivers coupled to the line. Accordingly, signals being transmitted over the bus suffer relatively few reflections thus advantageously producing a shortened signal settling time, thereby increasing the attainable signaling frequency.
Abstract: A method for creating a table object made up of one or more columns, where the table object can be used as a programming interface or wrapper for an underlying table component is described. The table is made up of one or more column objects that can be used in other tables with minor alterations. The column objects are created to hold data of one type. This type can be a basic data type or a specialized graphical user interface type, allowing for great flexibility in creating table data structures for holding data of a wide variety. The table object is used to facilitate the use of an underlying table component, which may contain its own search engine. The table object acts as a wrapper for the table component allowing the application developer to use columns from other tables for use with a particular underlying table component without having to recreate or rewrite computer code for that particular underlying table component.
Type:
Grant
Filed:
June 30, 1997
Date of Patent:
November 23, 1999
Assignee:
Sun Microsystems, Inc.
Inventors:
Nagendra Nagarajayya, Bangalore Madhuchandra, Xavier de Saint Girons, Vincent Vandenschrick, Thierry J. Lobel, Marc D. Moss, Fabrice Keller
Abstract: An application binary interface includes linkage structures for interfacing a binary application program to a digital computer. A function in a relocatable shared object module obtains the absolute address of a Global Offset Table (GOT) in the module using relative branch and link instructions through the computer's link register. A dynamic linker lazily constructs a Procedure Linkage Table (PLT) and a pointer table for an object module in a process memory image in which space is allocated for the PLT, but the PLT is not initially provided. The pointer table stores absolute addresses of external functions that cannot be reached by relative branching from the module. The PLT receives calls to these functions, gets the absolute addresses from the pointer table and branches to the absolute addresses of the functions. The PLT also receives calls to functions that can be reached by relative branching from the module, and causes relative branching to the functions.