Patents by Inventor Kent D. Moat

Kent D. Moat 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: 7945768
    Abstract: A method and apparatus for executing a nested program loop on a vector processor, the loop comprising outer-pre, inner and outer-post portions. An input stream unit of the vector processor provides a data value to a data path and sets an associated data validity tag to ‘valid’ once per outer loop iteration, as indicated by an inner counter of the input stream unit. The tag is set to ‘invalid’ in other iterations. Functional units of the vector processor operate on data values in the data path, each functional unit producing a valid result if the data validity tags associated with inputs data values are set to ‘valid’. An output stream unit of the vector processor sinks a data value from the data path once per outer loop iteration if an associated data validity tag indicates that the data value is valid.
    Type: Grant
    Filed: June 5, 2008
    Date of Patent: May 17, 2011
    Assignee: Motorola Mobility, Inc.
    Inventors: Raymond B. Essick, IV, Kent D. Moat, Michael A. Schuette
  • Patent number: 7801079
    Abstract: A method and apparatus that allocates bandwidth among wireless sensor nodes in wireless sensor groups in a wireless sensor network (WSN) is disclosed.
    Type: Grant
    Filed: March 2, 2007
    Date of Patent: September 21, 2010
    Assignee: Motorola, Inc.
    Inventors: Ali Saidi, Silviu Chiricescu, Philip E. May, Kent D. Moat
  • Publication number: 20090307472
    Abstract: A method and apparatus for executing a nested program loop on a vector processor, the loop comprising outer-pre, inner and outer-post portions. An input stream unit of the vector processor provides a data value to a data path and sets an associated data validity tag to ‘valid’ once per outer loop iteration, as indicated by an inner counter of the input stream unit. The tag is set to ‘invalid’ in other iterations. Functional units of the vector processor operate on data values in the data path, each functional unit producing a valid result if the data validity tags associated with inputs data values are set to ‘valid’. An output stream unit of the vector processor sinks a data value from the data path once per outer loop iteration if an associated data validity tag indicates that the data value is valid.
    Type: Application
    Filed: June 5, 2008
    Publication date: December 10, 2009
    Applicant: MOTOROLA, INC.
    Inventors: Raymond B. Essick IV, Kent D. Moat, Michael A. Schuette
  • Patent number: 7502909
    Abstract: A method for generating a sequence of memory addresses for a multi-dimensional data structure and an address generation unit are disclosed. The address generation unit includes an ADDRESS register, a STRIDE register, and a plurality skip generators, each having SKIP, SPAN and COUNT registers. An address value is initialized to a first address and each COUNT register is initialized. For each address of the sequence an address value is output and a stride value is added to the address value. For each dimension of the data structure the COUNT register associated with the dimension is updated as each address is generated. For all dimensions, when the COUNT register value becomes zero, the skip value associated with the dimension is added to the address value and its COUNT register is reset to a specified value.
    Type: Grant
    Filed: October 11, 2005
    Date of Patent: March 10, 2009
    Assignee: Motorola, Inc.
    Inventors: Kent D. Moat, Raymond B. Essick, Michael A. Schuette
  • Publication number: 20080250499
    Abstract: Buffer overflow exploits in a computer are reduced by encoding linkage information associated with a subroutine, following a call to the subroutine from an application executing on the computer. The encoded linkage information is stored at a first address in a run-time stack in a memory of the computer. Upon exit from the subroutine, the value stored at the first address in the run-time stack is retrieved and decoded to obtain decoded linkage information. Execution of the application continues in accordance with the decoded linkage information. Subroutine data written to the stack is not encoded.
    Type: Application
    Filed: March 30, 2007
    Publication date: October 9, 2008
    Applicant: Motorola, Inc.
    Inventors: Kent D. Moat, Ronald F. Buskey, Brian G. Lucas
  • Publication number: 20080211666
    Abstract: A method and apparatus that allocates bandwidth among wireless sensor nodes in wireless sensor groups in a wireless sensor network (WSN) is disclosed.
    Type: Application
    Filed: March 2, 2007
    Publication date: September 4, 2008
    Applicant: Motorola, Inc.
    Inventors: Ali Saidi, Silviu Chiricescu, Philip E. May, Kent D. Moat
  • Patent number: 7415601
    Abstract: A method and apparatus for the elimination of prolog and epilog instructions in a vector processor. To eliminate the prolog, a functional unit of the vector processor has at least one input for receiving an input data value tagged with a data validity tag and an output for outputting an intermediate result tagged with a data validity tag. The data validity tags indicate the validity of the data. Before a loop is executed, the data validity tags are set to indicate that the associated data values are invalid. During execution of the loop body a functional unit checks the validity of input data. If all of the input data values are valid the functional operation is performed, the corresponding data validity tag set to indicate that the result is valid. If any of the input data values is invalid, the data validity tag of the result is set to indicate that the result is invalid. To eliminate the epilog, an iteration counter is associated with each sink unit of the vector processor.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: August 19, 2008
    Assignee: Motorola, Inc.
    Inventors: Philip E. May, Raymond B. Essick, IV, Brian G. Lucas, Kent D. Moat, James M. Norris
  • Patent number: 7290122
    Abstract: A method and apparatus for power reduction in a processor controlled by multiple-instruction control words. A multiple-instruction control word comprises a number of ordered fields, with each ordered field containing an instruction for an element of the processor. The sequence of instructions for a loop is compressed by identifying a set of aligned fields that contain NOP instructions in all of the control words of the sequence. The sequence of control words is then modified by removing the fields of the identified aligned set containing NOP instructions and adding an identifier that identifies the set of fields removed. The sequence of control words is processed by fetching the identifier at the start the loop, then, for each control word in the sequence, fetching a control word and reconstructing the corresponding uncompressed control word by inserting NOP instructions into the compressed control word as indicated by the identifier.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: October 30, 2007
    Assignee: Motorola, Inc.
    Inventors: Philip E. May, Brian G. Lucas, Kent D. Moat
  • Patent number: 7289528
    Abstract: A communication signal for transmitting a sequence of tokens over an interconnection having three wires in which each of the three wire transmits a signal corresponding to one bit of a 3-bit symbol. The tokens are determined by the transitions between the symbols. In one embodiment, RF emission is minimized and self-clocking is achieved by changing exactly one bit of a symbol at each transition. A receiver detects a transition in the signal on one of the three wires, identifies the transition from the previous and current 3-bit symbols and determines the information token associated with the transition.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: October 30, 2007
    Assignee: Motorola, Inc.
    Inventors: Kent D. Moat, Brian G. Lucas
  • Patent number: 7246203
    Abstract: A cache for storing data elements is disclosed. The cache includes a cache memory having one or more lines and one or more cache line counters, each associated with a line of the cache memory. In operation, a cache line counter of the one or more of cache line counters is incremented when a request is received to prefetch a data element into the cache memory and is decremented when the data element is consumed. Optionally, one or more reference queues may be used to store the locations of data elements in the cache memory. In one embodiment, data cannot be evicted from cache lines unless the associated cache line counters indicate that the prefetched data has been consumed.
    Type: Grant
    Filed: November 19, 2004
    Date of Patent: July 17, 2007
    Assignee: Motorola, Inc.
    Inventors: Kent D. Moat, Raymond B. Essick, IV, Philip E. May, James M. Norris
  • Patent number: 7219209
    Abstract: A bus filter includes a first bus interface connected to a system bus for receiving a virtual memory address and a second interface connected to the system bus for transmitting a physical memory address. In operation, an address translation unit, such as a translation lookaside buffer, determines the physical memory address from the virtual memory address. The bus filter may be used to couple a processing device, such as an accelerator, to a system having a core processor and an external memory unit coupled by a bus.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: May 15, 2007
    Assignee: Motorola, Inc.
    Inventors: Raymond B. Essick, IV, Kent D. Moat
  • Patent number: 7100019
    Abstract: A system and method for calculating memory addresses in a partitioned memory in a processing system having a processing unit, input and output units, a program sequencer and an external interface. An address calculator includes a set of storage elements, such as registers, and an arithmetic unit for calculating a memory address of a vector element dependent upon values stored in the storage elements and the address of a previous vector element. The storage elements hold STRIDE, SKIP and SPAN values and optionally a TYPE value, relating to the spacing between elements in the same partition, the spacing between elements in the consecutive partitions, the number of elements in a partition and the size of a vector element, respectively.
    Type: Grant
    Filed: September 8, 2003
    Date of Patent: August 29, 2006
    Assignee: Motorola, Inc.
    Inventors: James M. Norris, Philip E. May, Kent D. Moat, Raymond B. Essick, IV, Brian G. Lucas
  • Publication number: 20040128473
    Abstract: A method and apparatus for the elimination of prolog and epilog instructions in a vector processor. To eliminate the prolog, a functional unit of the vector processor has at least one input for receiving an input data value tagged with a data validity tag and an output for outputting an intermediate result tagged with a data validity tag. The data validity tags indicate the validity of the data. Before a loop is executed, the data validity tags are set to indicate that the associated data values are invalid. During execution of the loop body a functional unit checks the validity of input data. If all of the input data values are valid the functional operation is performed, the corresponding data validity tag set to indicate that the result is valid. If any of the input data values is invalid, the data validity tag of the result is set to indicate that the result is invalid. To eliminate the epilog, an iteration counter is associated with each sink unit of the vector processor.
    Type: Application
    Filed: August 29, 2003
    Publication date: July 1, 2004
    Inventors: Philip E. May, Raymond B. Essick, Brian G. Lucas, Kent D. Moat, James M. Norris
  • Publication number: 20040117595
    Abstract: A system and method for calculating memory addresses in a partitioned memory in a processing system having a processing unit, input and output units, a program sequencer and an external interface. An address calculator includes a set of storage elements, such as registers, and an arithmetic unit for calculating a memory address of a vector element dependent upon values stored in the storage elements and the address of a previous vector element. The storage elements hold STRIDE, SKIP and SPAN values and optionally a TYPE value, relating to the spacing between elements in the same partition, the spacing between elements in the consecutive partitions, the number of elements in a partition and the size of a vector element, respectively.
    Type: Application
    Filed: September 8, 2003
    Publication date: June 17, 2004
    Inventors: James M. Norris, Philip E. May, Kent D. Moat, Raymond B. Essick, Brian G. Lucas