Patents by Inventor Craig C. Hansen

Craig C. Hansen 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: 7509366
    Abstract: A multiplier array processing system which improves the utilization of the multiplier and adder array for lower-precision arithmetic is described. New instructions are defined which provide for the deployment of additional multiply and add operations as a result of a single instruction, and for the deployment of greater multiply and add operands as the symbol size is decreased.
    Type: Grant
    Filed: April 18, 2003
    Date of Patent: March 24, 2009
    Assignee: Microunity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Publication number: 20040015533
    Abstract: A multiplier array processing system which improves the utilization of the multiplier and adder array for lower-precision arithmetic is described. New instructions are defined which provide for the deployment of additional multiply and add operations as a result of a single instruction, and for the deployment of greater multiply and add operands as the symbol size is decreased.
    Type: Application
    Filed: April 18, 2003
    Publication date: January 22, 2004
    Applicant: MicroUnity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, Alexia Massalin
  • Patent number: 6584482
    Abstract: A multiplier array processing system which improves the utilization of the multiplier and adder array for lower-precision arithmetic is described. New instructions are defined which provide for the deployment of additional multiply and add operations as a result of a single instruction, and for the deployment of greater multiply and add operands as the symbol size is decreased.
    Type: Grant
    Filed: August 19, 1999
    Date of Patent: June 24, 2003
    Assignee: Microunity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, Henry Massalin
  • Patent number: 6427190
    Abstract: A virtual memory system including a local-to-global virtual address translator for translating local virtual addresses having associated task specific address spaces into global virtual addresses corresponding to an address space associated with multiple tasks, and a global virtual-to-physical address translator for translating global virtual addresses to physical addresses. Protection information is provided by each of the local virtual-to-global virtual address translator, the global virtual-to-physical address translator, the cache tag storage, or a protection information buffer depending on whether a cache hit or miss occurs during a given data or instruction access. The cache is configurable such that it can be configured into a buffer portion or a cache portion for faster cache accesses.
    Type: Grant
    Filed: May 12, 2000
    Date of Patent: July 30, 2002
    Assignee: MicroUnity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 6269136
    Abstract: A digital differential analyzer data synchronizer receives data at a first clock rate and synchronizes the data to a second clock rate. The two clock rates are related by a ratio of two integers, but have a variable phase relationship. The synchronizer places incoming data into a series of registers at the first clock rate. A digital differential analyzer functions to generate a synchronization signal having a frequency proportional to a ratio of the first clock rate and the second clock rate. A multiplexer is utilized for sequentially reading the plurality of registers at a rate corresponding to the frequency of the synchronization signal.
    Type: Grant
    Filed: February 2, 1998
    Date of Patent: July 31, 2001
    Assignee: Microunity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, Timothy B. Robinson
  • Patent number: 6256715
    Abstract: A virtual memory system including a local-to-global virtual address translator for translating local virtual addresses having associated task specific address spaces into global virtual addresses corresponding to an address space associated with multiple tasks, and a global virtual-to-physical address translator for translating global virtual addresses to physical addresses. Protection information is provided by each of the local virtual-to-global virtual address translator, the global virtual-to-physical address translator, the cache tag storage, or a protection information buffer depending on whether a cache hit or miss occurs during a given data or instruction access. Memory area priority protection is achieved by employing a gateway instruction which includes a gateway register pointer and the priority level of the instruction. The gateway register holds a pointer to a specific entry point within a high priority area within memory at which the lower priority gateway instruction may enter it.
    Type: Grant
    Filed: May 12, 2000
    Date of Patent: July 3, 2001
    Assignee: Micro Unity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 6101590
    Abstract: A virtual memory system including a local-to-global virtual address translator for translating local virtual addresses having associated task specific address spaces into global virtual addresses corresponding to an address space associated with multiple tasks, and a global virtual-to-physical address translator for translating global virtual addresses to physical addresses. Local-to-global virtual translation is performed by either mapping local virtual addresses to a single global virtual address space or to multiple global virtual address spaces. The local-to-global virtual translator includes a cell which corresponds to each local address space for performing the translations. In a memory system in which both data and instruction address accesses are performed, separate cache and tag structures are employed for handling each of the data and instruction memory accesses. In addition, the cache is configurable such that it can be configured into a buffer portion or a cache portion for faster cache accesses.
    Type: Grant
    Filed: October 10, 1995
    Date of Patent: August 8, 2000
    Assignee: Micro Unity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 6006318
    Abstract: A general purpose, programmable media processor for processing and transmitting a media data stream of audio, video, radio, graphics, encryption, authentication, and networking information in real-time. The media processor incorporates an execution unit that maintains substantially peak data throughout of media data streams. The execution unit includes a dynamically partionable multi-precision arithmetic unit, programmable switch and programmable extended mathematical element. A high bandwidth external interface supplies media data streams at substantially peak rates to a general purpose register file and the multi-precision execution unit. A memory management unit, and instruction and data cache/buffers are also provided. High bandwidth memory controllers are linked in series to provide a memory channel to the general purpose, programmable media processor.
    Type: Grant
    Filed: October 13, 1998
    Date of Patent: December 21, 1999
    Assignee: MicroUnity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, John Moussouris
  • Patent number: 5968165
    Abstract: A dynamic word size processing system which determines for each instruction the number of cycles required by a data path to compute the result. Values in a register file are augmented with additional information which permits a determination of the number of cycles required based on the values in the register file which are referenced by each instruction. A control path combines the information for each register file operand, and computes a value for the additional information to be stored with the result of the instruction.
    Type: Grant
    Filed: May 8, 1997
    Date of Patent: October 19, 1999
    Assignee: Microunity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 5953241
    Abstract: A multiplier array processing system which improves the utilization of the multiplier and adder array for lower-precision arithmetic is described. New instructions are defined which provide for the deployment of additional multiply and add operations as a result of a single instruction, and for the deployment of greater multiply and add operands as the symbol size is decreased.
    Type: Grant
    Filed: May 16, 1997
    Date of Patent: September 14, 1999
    Assignee: Microunity Engeering Systems, Inc.
    Inventors: Craig C. Hansen, Henry Massalin
  • Patent number: 5940312
    Abstract: A method and apparatus for implementing a binary logarithm of most significant bit instruction that operates on an input signed binary number. The input signed binary number includes a fixed number of successive bits with an input most significant bit and a plurality of input lower significant bits. The method individually performs an exclusive-or operation on each of the input lower significant bits with the input most significant bit. The method then inputs an output unsigned binary number to an execute unsigned logarithm of most significant bit instruction, wherein the output unsigned binary number includes a fixed number of successive bits with a zero as an output most significant bit and the result of each of the exclusive-or operations as successive output lower significant bits.
    Type: Grant
    Filed: October 10, 1996
    Date of Patent: August 17, 1999
    Assignee: Microunity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 5819117
    Abstract: A method and data processing system for transferring data between the system and a memory system using more than one byte ordering convention by incorporating byte order information into instruction codes. The byte order information is coupled to a control unit along with other information characterizing the data transfer operation. In response to the byte order information and the data transfer operation information, the control unit generates a control signal that is coupled to a BPU. The control signal causes the BPU to rearrange the order of bytes in the data being transferred when the byte order information indicates a first byte ordering format. When the byte order information indicates a second byte ordering format, the BPU does not change the order of the bytes in the data being transferred.
    Type: Grant
    Filed: October 10, 1995
    Date of Patent: October 6, 1998
    Assignee: Microunity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 5812439
    Abstract: A floating point system and method employing instructions where instruction have incorporated floating point information. The floating point information indicates whether an exception trap should occur and the type of rounding to be performed upon "inexact" arithmetic results. The floating point information further indicates whether other floating-point exception traps should occur. This information allows dynamic (e.g. instruction-by-instruction) modification of various operating parameters of the CPU without modifying information in status registers using special instructions or modes, thereby increasing overall CPU performance. The technique is also supported by several mechanisms for providing precise floating-point exceptions.
    Type: Grant
    Filed: October 10, 1995
    Date of Patent: September 22, 1998
    Assignee: MicroUnity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: 5778419
    Abstract: A memory chip for storage and retrieval of data transmitted as streams of data at sustained peak data transfer rates. The memory chip includes a memory device and an interface capable of achieving high bandwidth throughput. The memory device decodes, arbitrates between, and executes memory access commands, and generates memory access responses. The interface includes a data path, and a number of memory controllers. The interface receives and transmits input and output data streams, and the memory controllers control the flow of the input and output data streams within the memory chip. A packet buffer is coupled between the data path and the memory device. The packet buffer provides for temporary storage of memory access commands, response information, and forwarding data.
    Type: Grant
    Filed: February 23, 1996
    Date of Patent: July 7, 1998
    Assignee: Microunity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, Timothy B. Robinson, Alan G. Corry
  • Patent number: 5410670
    Abstract: A large burst mode memory accessing system includes N discrete sub-memories and three main I/O ports. Data is stored in the sub-memories so that the sub-memories are accessed depending on their proximity to the main I/O ports. Three parallel pipelines provide a data path to/from the main I/O ports and the sub-memories. The first pipeline functions to couple address/control signals to the memories such that adjacent sub-memories are accessed in half cycle intervals. The second pipeline functions to propagate accessed data from the sub-memories to the main I/O ports such that data is outputted from the main output port every successive clock cycle. The third pipeline propagates write data to the memories such that data presented at the input of the third pipeline on successive clock cycles is written into successive sub-memories. Redundancy circuits preserve data integrity without memory access interruption.
    Type: Grant
    Filed: June 2, 1993
    Date of Patent: April 25, 1995
    Assignee: MicroUnity Systems Engineering, Inc.
    Inventors: Craig C. Hansen, John G. Campbell, Timothy B. Robinson
  • Patent number: 5325507
    Abstract: An apparatus for temporarily disabling a translation lookaside buffer in a computer system upon the occurrence of certain predefined system conditions. Such conditions may be of a first type which have been predetermined to indicate a greater risk that two or more virtual addresses stored in the TLB will simultaneously match the incoming virtual address, and/or of a second type in which access to the TLB is not needed. An example of the first type is a reference to an unmapped segment of memory. An example of the second type is the processing of a non-memory-access instruction. The apparatus may further include failsafe circuitry to shut down the TLB if at least a given number of matches occur at any time and for any reason, the given number being greater than 1. The apparatus prevents loss of data or damage to the chip where match comparisons are performed in parallel.
    Type: Grant
    Filed: February 18, 1993
    Date of Patent: June 28, 1994
    Assignee: Silicon Graphics, Inc.
    Inventors: Danny L. Freitas, Craig C. Hansen, Christopher Rowen
  • Patent number: 5237671
    Abstract: Apparatus for temporarily disabling a translation lookaside buffer in a computer system upon the occurrence of certain predefined system conditions. Such conditions may be of a first type which have been predetermined to indicate a greater risk that two or more virtual addresses stored in the TLB will simultaneously match the incoming virtual address, and/or of a second type in which access to the TLB is not needed. An example of the first type is a reference to an unmapped segment of memory. An example of the second type is the processing of a non-memory-access instruction. The apparatus may further include failsafe circuitry to shut down the TLB if at least a given number of matches occur at any time and for any reason, the given number being greater than 1. The apparatus prevents loss of data or damage to the chip where match comparisons are performed in parallel.
    Type: Grant
    Filed: June 14, 1989
    Date of Patent: August 17, 1993
    Assignee: Silicon Graphics, Inc.
    Inventors: Danny L. Freitas, Craig C. Hansen, Christopher Rowen
  • Patent number: 4959779
    Abstract: A CPU or other function unit is disclosed which follows one data ordering scheme internally, and in which incoming and/or outgoing data pass through a data order conversion unit for adapting it to a selectable external data ordering scheme. The means for specifying the external data ordering scheme is accessible from outside the physical package(s) in which the functional unit is housed. The data order conversion unit may comprise a load aligner and/or a store aligner, one or both of which may comprise means for shifting informational units of a smaller size within informational units of a larger size. The shift amount may derive from the low order address bits and may be altered depending on the external data ordering means selected.
    Type: Grant
    Filed: November 28, 1988
    Date of Patent: September 25, 1990
    Assignee: Mips Computer Systems, Inc.
    Inventors: Larry B. Weber, Craig C. Hansen, Thomas J. Riordan, Steven A. Przybylski
  • Patent number: RE39500
    Abstract: A virtual memory system including a local-to-global virtual address translator for translating local virtual addresses having associated task specific address spaces into global virtual addresses corresponding to an address space associated with multiple tasks, and a global virtual-to-physical address translator for translating global virtual addresses to physical addresses. Protection information is provided by each of the local virtual-to-global virtual address translator, the global virtual-to-physical address translator, the cache tag storage, or a protection information buffer depending on whether a cache hit or miss occurs during a given data or instruction access. The cache is configurable such that it can be configured into a buffer portion or a cache portion for faster cache accesses.
    Type: Grant
    Filed: July 29, 2004
    Date of Patent: February 27, 2007
    Assignee: MicroUnity Systems Engineering, Inc.
    Inventor: Craig C. Hansen
  • Patent number: RE43798
    Abstract: A virtual memory system including a local-to-global virtual address translator for translating local virtual addresses having associated task specific address spaces into global virtual addresses corresponding to an address space associated with multiple tasks, and a global virtual-to-physical address translator for translating global virtual addresses to physical addresses. Protection information is provided by each of the local virtual-to-global virtual address translator, the global virtual-to-physical address translator, the cache tag storage, or a protection information buffer depending on whether a cache bit or miss occurs during a given data or instruction access. The cache is configurable such that it can be configured into a buffer portion or a cache portion for faster cache accesses.
    Type: Grant
    Filed: November 30, 2006
    Date of Patent: November 6, 2012
    Assignee: Microunity Systems Engineering, Inc.
    Inventor: Craig C. Hansen