Patents by Inventor William A. Huffman

William A. Huffman 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).

  • Publication number: 20070250683
    Abstract: The present invention provides alignment and ordering of vector elements for SIMD processing. In the alignment of vector elements for SIMD processing, one vector is loaded from a memory unit into a first register and another vector is loaded from the memory unit into a second register. The first vector contains a first byte of an aligned vector to be generated. Then, a starting byte specifying the first byte of an aligned vector is determined. Next, a vector is extracted from the first register and the second register beginning from the first bit in the first byte of the first register continuing through the bits in the second register. Finally, the extracted vector is replicated into a third register such that the third register contains a plurality of elements aligned for SIMD processing. In the ordering of vector elements for SIMD processing, a first vector is loaded from a memory unit into a first register and a second vector is loaded from the memory unit into a second register.
    Type: Application
    Filed: February 6, 2007
    Publication date: October 25, 2007
    Applicant: MIPS Technologies, Inc.
    Inventors: Timothy Van Hook, Peter Hsu, William Huffman, Henry Moreton, Earl Killian
  • Patent number: 7219212
    Abstract: A processor can achieve high code density while allowing higher performance than existing architectures, particularly for Digital Signal Processing (DSP) applications. In accordance with one aspect, the processor supports three possible instruction sizes while maintaining the simplicity of programming and allowing efficient physical implementation. Most of the application code can be encoded using two sets of narrow size instructions to achieve high code density. Adding a third (and larger, i.e. VLIW) instruction size allows the architecture to encode multiple operations per instruction for the performance critical section of the code. Further, each operation of the VLIW format instruction can optionally be a SIMD operation that operates upon vector data. A scheme for the optimal utilization (highest achievable performance for the given amount of hardware) of multiply-accumulate (MAC) hardware is also provided.
    Type: Grant
    Filed: February 25, 2005
    Date of Patent: May 15, 2007
    Assignee: Tensilica, Inc.
    Inventors: Himanshu A. Sanghavi, Earl A. Killian, James Robert Kennedy, Darin S. Petkov, Peng Tu, William A. Huffman
  • Patent number: 7197625
    Abstract: The present invention provides alignment and ordering of vector elements for SIMD processing. In the alignment of vector elements for SIMD processing, one vector is loaded from a memory unit into a first register and another vector is loaded from the memory unit into a second register. The first vector contains a first byte of an aligned vector to be generated. Then, a starting byte specifying the first byte of an aligned vector is determined. Next, a vector is extracted from the first register and the second register beginning from the first bit in the first byte of the first register continuing through the bits in the second register. Finally, the extracted vector is replicated into a third register such that the third register contains a plurality of elements aligned for SIMD processing. In the ordering of vector elements for SIMD processing, a first vector is loaded from a memory unit into a first register and a second vector is loaded from the memory unit into a second register.
    Type: Grant
    Filed: September 15, 2000
    Date of Patent: March 27, 2007
    Assignee: MIPS Technologies, Inc.
    Inventors: Timothy J. van Hook, Peter Hsu, William A. Huffman, Henry P. Moreton, Earl A. Killian
  • Patent number: 7159100
    Abstract: The present invention provides extended precision in SIMD arithmetic operations in a processor having a register file and an accumulator. A first set of data elements and a second set of data elements are loaded into a first vector register and a second vector register, respectively. Each data element comprises N bits. Next, an arithmetic instruction is fetched from memory. The arithmetic instruction is decoded. Then, a first vector register and a second vector register are read from the register file. The present invention then executes the arithmetic instruction on corresponding data elements in the first and second vector registers. The result of the execution is then written into the accumulator. Then, each element in the accumulator is transformed into an N-bit width element and stored into the memory.
    Type: Grant
    Filed: December 30, 1998
    Date of Patent: January 2, 2007
    Assignee: MIPS Technologies, Inc.
    Inventors: Timothy van Hook, Peter Hsu, William A. Huffman, Henry P. Moreton, Earl A. Killian
  • Patent number: 7069306
    Abstract: A method and system for managing memory in a multiprocessor system includes defining the plurality of processor coherence domains within a system coherence domain of the multiprocessor system. The processor coherence domains each include a plurality of processors and a processor memory. Shared access to data in the processor memory of each processor coherence domain is provided only to elements of the multiprocessor system within the processor coherence domain. Non-shared access to data in the processor memory of each processor coherence domain is provided to elements of the multiprocessor system within and outside of the processor coherence domain.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: June 27, 2006
    Assignee: Silicon Graphics, Inc.
    Inventors: Daniel E. Lenoski, Jeffrey S. Kuskin, William A. Huffman, Michael S Woodacre
  • Publication number: 20060129787
    Abstract: The present invention provides extended precision in SIMD arithmetic operations in a processor having a register file and an accumulator. A first set of data elements and a second set of data elements are loaded into first and second vector registers, respectively. Each data element comprises N bits. Next, an arithmetic instruction is fetched from memory. The arithmetic instruction is decoded. Then, the first vector register and the second vector register are read from the register file. The present invention executes the arithmetic instruction on corresponding data elements in the first and second vector registers. The resulting element of the execution is then written into the accumulator. Then, the resulting element is transformed into an N-bit width element and written into a third register for further operation or storage in memory. The transformation of the resulting element can include, for example, rounding, clamping, and/or shifting the element.
    Type: Application
    Filed: January 24, 2006
    Publication date: June 15, 2006
    Applicant: MIPS Technologies, Inc.
    Inventors: Timothy Hook, Peter Hsu, William Huffman, Henry Moreton, Earl Killian
  • Publication number: 20060116394
    Abstract: Compounds are disclosed which are Fab I inhibitors and are useful in the treatment bacterial infections.
    Type: Application
    Filed: November 22, 2005
    Publication date: June 1, 2006
    Inventors: Walter Burgess, Dalia Jakas, William Huffman, William Miller, Kenneth Newlander, Mark Seefeld, Irene Uzinskas
  • Patent number: 7007097
    Abstract: A method and system for communicating to a sender an availability of receiving a new message includes providing buffers having at least one corresponding slot for storing a message and providing a credit signal that communicates to the sender only when all of the buffers have at least one of the corresponding slot available for storing a new message. Each of the buffers is monitored for whether at least one of the corresponding slots is available for storing the new message. A corresponding receiver counter is provided for each of the buffers. Each receiver counter is decremented when all of the buffers have at least one corresponding slot available for storing the new message. Each of the buffers is configured to receive a corresponding particular message type. The particular message type of the new message is determined. The new message is loaded into the corresponding slot of one of the buffers which is configured for receiving the particular message type of the new message.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: February 28, 2006
    Assignee: Silicon Graphics, Inc.
    Inventors: William A. Huffman, Michael L. Anderson, Gregory M. Thorson, Susan Garcia, Daniel L. Kunkel
  • 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: 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: 6873811
    Abstract: A printer with an imaging components protection architecture includes a main housing and a protective housing that is pivotally coupled to the main housing. The protective housing is formed to receive an intermediate transfer belt (ITB) positioned between the protective housing and a print cartridge that is also positioned within the protective housing.
    Type: Grant
    Filed: April 28, 2003
    Date of Patent: March 29, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: John William Huffman, David M. Payne
  • Patent number: 6859863
    Abstract: A multiprocessor system and method includes a processing sub-system including a plurality of processors and a processor memory system. A 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 operable to couple a peripheral device to the multiprocessor system. The I/O interfaces each include a local memory operable to store a copy of data from the processor memory system for use by a corresponding peripheral device and to delete the copy at a first time event. A directory for the processor is operable to identify the data as owned upon providing the copy to the I/O sub-system and to identify the data as unowned at a second time event.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: February 22, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven C. Miller, Jeffrey S. Kuskin, William A. Huffman
  • Patent number: 6839820
    Abstract: A method and system for controlling an access to a first memory arrangement and a second memory arrangement. The method and system are adapted for controlling access to the first memory arrangement and to the second memory arrangement. A token is passed from a device associated with the first memory arrangement if the access to at least one portion of the first memory arrangement is completed, and the access to the portion of the memory arrangement is disabled. Then, upon a receipt of the token, the access to at least one portion of the second memory arrangement is enabled.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: January 4, 2005
    Assignee: Silicon Graphics, Inc.
    Inventors: William A. Huffman, Randal S. Passint
  • Patent number: 6816947
    Abstract: A memory access arbitration scheme is provided where transactions to a Shared memory are stored in an arbitration queue. Prior to arbitration, the transactions are compared against the contents of cache memory, to determine which transactions will hit in cache, which will miss and which will be victims. Also prior to arbitration, the entries in the arbitration queue are grouped according to a transaction parameter, such as DRAM bank, Write to Bank, Read to Bank, etc. Arbitration is the performed among those groups which are ready for service. From the group winning arbitration, the oldest transaction is selected for servicing. Preferably, a collapsible queuing structure and method is used, such that once a transaction is serviced, higher order entries ripple down in the queue to make room for new entries while maintaining an oldest to newest relationship among the queue entries.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: November 9, 2004
    Assignee: Silicon Graphics, Inc.
    Inventor: William A. Huffman
  • Publication number: 20040213599
    Abstract: A printer with an imaging components protection architecture includes a main housing and a protective housing that is pivotally coupled to the main housing. The protective housing is formed to receive an intermediate transfer belt (ITB) positioned between the protective housing and a print cartridge that is also positioned within the protective housing.
    Type: Application
    Filed: April 28, 2003
    Publication date: October 28, 2004
    Inventors: John William Huffman, David M. Payne
  • Patent number: 6795900
    Abstract: A multiprocessor system and method includes a processing sub-system including a plurality of processors in a processor memory system. A 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 operable to couple a peripheral device to the multiprocessor system. The I/O interfaces each include a local memory operable to store exclusive read-only copies of data from the processor memory system for use by a corresponding peripheral device.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: September 21, 2004
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven C. Miller, Jeffrey S. Kuskin, William A. Huffman, Gregory M. Thorson
  • Patent number: 6775742
    Abstract: A memory device and method which provide at least one memory segment. The memory segment includes at least one first portion which is configured to store data. The memory segment also includes at least one second portion associated with the first portion, and which is configured to store directory information for at least one cache line thereon.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: August 10, 2004
    Assignee: Silicon Graphics, Inc.
    Inventors: William A. Huffman, Jeffrey S. Kuskin
  • Patent number: 6718442
    Abstract: A multiprocessor computer system includes a method and system of handling invalidation requests to a plurality of alias processors not sharing a line of memory in a computer system. A memory directory interface unit receives an invalidation request for a shared line of memory shared in a plurality of sharing processors. A superset of processors in the computer system that includes each of the sharing processors is determined that includes at least one alias processor not sharing the shared line of memory. An invalidation message is transmitted to each processor in the superset of processors. The number Na of alias processors in the superset of processors is determined and a superacknowledgement message is provided that is equivalent to acknowledging receipt of Na invalidation messages.
    Type: Grant
    Filed: July 20, 2001
    Date of Patent: April 6, 2004
    Assignee: Silicon Graphics, Inc.
    Inventors: William A. Huffman, Jeffrey S. Kuskin
  • Patent number: D554423
    Type: Grant
    Filed: April 4, 2006
    Date of Patent: November 6, 2007
    Inventor: Paul William Huffman