Patents Assigned to Silicon Graphics, Inc.
  • Patent number: 6993523
    Abstract: The present invention is a system and method that facilitates consistency maintenance and recovery from a system or process crash with valid data. A data consistency maintenance and recovery system and method of the present invention utilizes a dual page configuration and locking process to store and track data. A primary page is utilized as the primary data storage location and a mirror page operates as copy of the primary page except during certain stages of data manipulation (e.g., a write operation). In one embodiment of the present invention, a process can not perform a read operation if the page is locked or a write operation if the process did not lock the page. Read operations read information from unlocked primary pages. Write operations access, lock and update a mirror page, then access, lock and update a primary page. Page accesses are tracked (e.g., counted). Then a write process unlocks and syncs the primary page to disk as well as the mirror page.
    Type: Grant
    Filed: December 5, 2000
    Date of Patent: January 31, 2006
    Assignee: Silicon Graphics, Inc.
    Inventor: Robert G. Mende, Jr.
  • Patent number: 6985149
    Abstract: A system and method for generating a image, where the image comprises both a graphical user interface (GUI) and a subject graphics image. A first graphics pipeline renders the subject graphics image. A second graphics pipeline renders the GUI graphics data. A compositor then composites together the rendered subject graphics data that is produced by the first graphics pipeline, and the rendered GUI graphics data that is produced by the second graphics pipeline.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: January 10, 2006
    Assignee: Silicon Graphics, Inc.
    Inventors: Mark Peercy, Alex Chalfin, Alpana Kaulgud
  • Patent number: 6985484
    Abstract: A switched router for transmitting packetized data concurrently between a plurality of devices coupled to the switched router. The devices are coupled to the I/O ports of the switched router. The switched router is then programmed to route packets of data from various source ports to several destination ports. Different packets may be transmitted concurrently through the switched router. The packets are comprised of a command word containing information corresponding to packet routing, data format, size, and transaction identification. Furthermore, the command word may include a destination identification number for routing the packet to a destination device, a source identification number used by a destination device to send back responses, a transaction number to tag requests that require a response, and a packet type value indicating a particular type of packet.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: January 10, 2006
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven C. Miller, James E. Tornes
  • Patent number: 6986001
    Abstract: A system for approximating a least recently used (LRU) algorithm for memory replacement in a cache memory. In one system example, the cache memory comprises memory blocks allocated into sets of N memory blocks. The N memory blocks are allocated as M super-ways of N/M memory blocks where N is greater than M. An index identifies the set of N memory blocks. A super-way hit/replacement tracking state machine tracks hits and replacements to each super-way and maintains state corresponding to an order of hits and replacements for each super-way where the super-ways are ordered from the MRU to the LRU. Storage for the state bits is associated with each index entry where the state bits include code bits associated with a memory block to be replaced within a LRU super-way. LRU logic is coupled to the super-way hit/replacement tracking state machine to select an LRU super-way as a function of the super-way hit and replacement history.
    Type: Grant
    Filed: October 21, 2002
    Date of Patent: January 10, 2006
    Assignee: Silicon Graphics, Inc.
    Inventor: David X. Zhang
  • Patent number: 6982682
    Abstract: A system and method for managing graphics applications include the capability to receive graphics data from an unaware graphics application and convey the graphics data to at least one of a plurality of graphics pipes having different display directions. The system and method further include the capability to modify the graphics data to account for non-planar display of the graphics data.
    Type: Grant
    Filed: July 29, 2002
    Date of Patent: January 3, 2006
    Assignee: Silicon Graphics, Inc.
    Inventors: Alpana R. Kaulgud, Christophe Winkler
  • Patent number: 6981101
    Abstract: A multiprocessor system and method includes a processing sub-system having a plurality of processors and a processor memory system. A scalable network is operable to couple the processing sub-system to an input/output (I/O) sub-system. The I/O sub-system includes a plurality of I/O interfaces. Each I/O interface has a local cache and is operable to couple a peripheral device to the multiprocessor system and to store copies of data from the processor memory system in the local cache for use by the peripheral device. A coherence domain for the multiprocessor system includes the processors and processor memory system of the processing sub-system and the local caches of the I/O sub-system.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: December 27, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven C. Miller, Daniel E. Lenoski, Kevin Knecht, George Hopkins, Michael S. Woodacre
  • Patent number: 6973559
    Abstract: A system and method for interconnecting a plurality of processing element nodes within a scalable multiprocessor system is provided. Each processing element node includes at least one processor and memory. A scalable interconnect network includes physical communication links interconnecting the processing element nodes in a cluster. A first set of routers in the scalable interconnect network route messages between the plurality of processing element nodes. One or more metarouters in the scalable interconnect network route messages between the first set of routers so that each one of the routers in a first cluster is connected to all other clusters through one or more metarouters.
    Type: Grant
    Filed: September 29, 1999
    Date of Patent: December 6, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Martin M. Deneroff, Gregory M. Thorson, Randal S. Passint
  • Patent number: 6971086
    Abstract: A toolkit for developing user-interfaces for a system administration program. The toolkit has a server-side application-programming interface (API). The server-side has task-registry files that each describe a task group. The toolkit also has a client-side API. A developer can customize product-specific properties files for a specific product and write code that calls the server-side and client-side APIs to create a graphical user interface for the specific product.
    Type: Grant
    Filed: March 16, 2001
    Date of Patent: November 29, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Kirthiga Reddy, Wesley Scott Smith, John Michael Relph, Rebecca Underwood, Jenny Leung, James B. Orosz, Roger Chickering, Christiaan Willem Beekhuis, Elizabeth Caroline Zeller, Sandeep Jain, Delle Maxwell
  • Patent number: 6950833
    Abstract: A cluster of computer system nodes share direct read/write access to storage devices via a storage area network using a cluster filesystem. Version information about subsystems is acquired by a leader node when forming a cluster membership and distributed to all nodes in the cluster to enable proper messaging during operation. Access to files on the storage devices is arbitrated by the cluster filesystem using tokens. Upon detection of a change in location of the metadata server, client nodes waiting for a token are interrupted to check on the status of at least one of data and node availability. The cluster operating system maintains consistency of a mirrored data volume by automatically ensuring replication of a mirror leg while continuing to accept access requests to the mirrored data volume.
    Type: Grant
    Filed: June 5, 2002
    Date of Patent: September 27, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Laurie Costello, Eric Mowat, James Leong
  • Patent number: 6938128
    Abstract: A processor (500) issues a read request for data. A processor interface (24) initiates a local search for the requested data and also forwards the read request to a memory directory (24) for processing. While the read request is processing, the processor interface (24) can determine if the data is available locally. If so, the data is transferred to the processor (500) for its use. The memory directory (24) processes the read request and generates a read response therefrom. The processor interface (24) receives the read response and determines whether the data was available locally. If so, the read response is discarded. If the data was not available locally, the processor interface (24) provides the read response to the processor (500).
    Type: Grant
    Filed: December 2, 2003
    Date of Patent: August 30, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Jeffrey S. Kuskin, William A. Huffman
  • Patent number: 6925547
    Abstract: A method of performing remote address translation in a multiprocessor system includes determining a connection descriptor and a virtual address at a local node, accessing a local connection table at the local node using the connection descriptor to produce a system node identifier for a remote node and a remote address space number, communicating the virtual address and remote address space number to the remote node, and translating the virtual address to a physical address at the remote node (qualified by the remote address space number). A user process running at the local node provides the connection descriptor and virtual address. The translation is performed by matching the virtual address and remote address space number with an entry of a translation-lookaside buffer (TLB) at the remote node. Performing the translation at the remote node reduces the amount of translation information needed at the local node for remote memory accesses.
    Type: Grant
    Filed: December 14, 2001
    Date of Patent: August 2, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven L. Scott, Chris Dickson, Eric C. Fromm, Michael L. Anderson
  • Patent number: 6924805
    Abstract: Methods and systems for animating with proxy surfaces are provided. A method for animating includes preprocessing an object to form proxy surfaces of part(s) and/or joint(s), and rendering the proxy surfaces to be animated. In an embodiment, preprocessing includes dividing an object to be animated into parts that can move independently without changing shape, forming a proxy surface for each of the parts corresponding to an initial viewing direction, and obtaining a set of view textures for each of the proxy surfaces. Each part proxy surface is then rendered at a new viewing direction. The new viewing direction is function of an object transformation, part transformation, and an initial viewing direction. The object is then animated by repeating the rendering steps. In another embodiment, the object to be animated is divided into parts and at least one joint that can change shape.
    Type: Grant
    Filed: October 21, 2003
    Date of Patent: August 2, 2005
    Assignee: Silicon Graphics, Inc.
    Inventor: Radomir Mech
  • Patent number: 6920526
    Abstract: The present invention comprises a dual bank FIFO memory buffer operable to buffer read data from memory and thereby compensate for specific timing problems in certain computerized systems. One embodiment of the invention includes a dual bank FIFO that comprises a first bank of memory elements operable to buffer memory data and a second bank of memory elements operable to buffer memory data. Write control address logic is operable to store selected memory data in memory elements with selected addresses within a bank of memory elements, and write control timing logic is operable to selectively grant write access to the banks of memory elements at predetermined time. Also, read control logic operable to read data stored in the first and second banks.
    Type: Grant
    Filed: July 20, 2000
    Date of Patent: July 19, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Mark Ronald Sikkink, Nan Ma
  • Patent number: 6918010
    Abstract: In prefetching cache lines from a main memory to a cache memory, an array of memory locations to be prefetched is determined and a base address indicating a highest address in the array is identified as well as a loop index used to point to the first address in the array. A prefetch index, which is the loop index plus a latency/transfer value, is used to prefetch memory locations as the array is processed. After a memory location is prefetched and initialized, the loop index and the prefetch index are incremented. The prefetch index is compared to a threshold value. If the prefetch index is less than the threshold value, then the next memory location in the array is prefetched and the prefetch index is again incremented and compared to the threshold value. If the prefetch index is equal to or greater than the threshold value, then the prefetch instruction is converted to a no operation instruction to prevent memory locations outside of the array from being prefetched during the processing of the array.
    Type: Grant
    Filed: October 16, 2002
    Date of Patent: July 12, 2005
    Assignee: Silicon Graphics, Inc.
    Inventor: Kenneth C. Yeager
  • Publication number: 20050146522
    Abstract: An original mesh is provided with a bounding surface and a convex hull surface. A first tessellation links the convex hull to the original mesh, and a second tessellation links the bounding surface to the convex hull. Using the tessellations to find a first intersection between a ray and the original mesh by finding a first intersected polygon of the bounding surface, and then traversing adjacent intersected polygons starting from the first intersection until the intersection is found. When the ray is moved, a second ray-surface intersection can be found by finding a polygon locally near the first intersection and containing a first intersection with the moved ray, traversing out from the local polygon through adjacent polygons intersected by the moved ray, and determining whether traversed polygons are unoccluded based on whether they are part of the convex hull surface.
    Type: Application
    Filed: December 31, 2003
    Publication date: July 7, 2005
    Applicant: Silicon Graphics Inc.
    Inventor: Jerome Maillot
  • Patent number: 6915388
    Abstract: A multiprocessor computer system includes a plurality of processor nodes, a memory, and an interconnect network connecting the plurality of processor nodes to the memory. The memory includes a plurality of lines and a cache coherence directory structure. The plurality of lines includes a first line. The cache coherence directory structure includes a plurality of directory structure entries. Each directory structure entry includes processor pointer information indicating the processor nodes that have cached copies of the first line. The processor pointer information includes a plurality n of bit vectors, where n is an integer greater than one. The n bit vectors define a matrix having a number of locations equal to the product of the number of bits in each of the n bit vectors.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: July 5, 2005
    Assignee: Silicon Graphics, Inc.
    Inventor: William A. Huffman
  • Patent number: 6915387
    Abstract: A processor (100) in a distributed shared memory computer system (10) receives ownership of data and initiates an initial update to memory request. A front side bus processor interface (24) forwards the initial update to memory request to a memory directory interface unit (22). The front side processor interface (24) may receive subsequent update to memory requests for the data from processors co-located on the same local bus. Front side bus processor interface (24) maintains a most recent subsequent update to memory in a queue (102). Once the data has been updated in its home memory (17), the memory directory interface unit (22) sends a writeback acknowledge to the front side bus processor interface (24). The most recent subsequent update to memory request in the queue (102) is then forwarded by the front side bus processor interface (24) to the memory directory interface unit (24) for processing.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: July 5, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: William A. Huffman, Jeffrey S. Kuskin
  • Patent number: 6904501
    Abstract: A cache memory includes a plurality of data memory blocks and a code memory block. Each data memory block has a plurality of storage locations and has a particular storage location identified by a same index value. The code memory block has a plurality of code values with a particular code value being associated with the same index value. The particular code value is operable to identify which ones of the particular storage locations associated with the same index value are locked to prevent alteration of contents therein. The particular code value is also operable to identify which particular storage location has been most recently used and which particular storage location has been least recently used of the particular storage locations associated with the same index value.
    Type: Grant
    Filed: June 17, 2002
    Date of Patent: June 7, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: David X. Zhang, Kenneth C. Yeager
  • Patent number: 6900818
    Abstract: A method and apparatus for processing a primitive for potential display on a display device (having a plurality of pixels) determines if the primitive intersects at least a predetermined number of pixel fragments on the display device. The predetermined number is no less than one. The method and apparatus then cull the primitive as a function of whether the primitive intersects at least the predetermined number of pixel fragments. If it is culled, the primitive is not raster processed (i.e., not subjected to raster processing, whether or not complete).
    Type: Grant
    Filed: November 18, 2003
    Date of Patent: May 31, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Stephen Moffitt, Eng Lim Goh
  • Patent number: 6901500
    Abstract: A system for prefetching information from a computer storage includes a central processing unit operable to transmit to a transfer bus a memory transfer request containing a desired memory address. The system also includes a system controller operable to receive the memory transfer request from the transfer bus and to retrieve a prefetch block of data from the computer storage in response to determining that a stream buffer local to the system controller does not contain a copy of data stored at the desired memory address. The system controller is further operable to retrieve the data from the stream buffer and communicate the data to the central processing unit in response to determining that the stream buffer contains a copy of the data stored at the desired memory address.
    Type: Grant
    Filed: July 28, 2000
    Date of Patent: May 31, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Zahid S. Hussain, Tim J. Millet