Patents by Inventor David A. Fotland

David A. Fotland 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: 9690384
    Abstract: A user can use a finger, or other such object, to provide input to a computing device. The finger can be positioned and/or oriented at a distance from the device, and the device can determine an input that the user is attempting to provide based on a position, motion, or gesture associated with the finger. One or more cameras can capture image information, which can be analyzed to attempt to determine the location and/or orientation of the finger. If the finger is at least partially outside a field of view of the camera(s), the device can use another sensor (e.g., EMF) to determine one or more potential locations of the fingertip. The image information then can be used to determine which of the potential locations actually corresponds to the fingertip by analyzing that portion of the finger or hand represented in the image information.
    Type: Grant
    Filed: September 26, 2012
    Date of Patent: June 27, 2017
    Assignee: Amazon Technologies, Inc.
    Inventors: Isaac S. Noble, David A. Fotland
  • Patent number: 9081571
    Abstract: The amount of power and processing capacity needed to process gesture input for a computing device is reduced by splitting the management of sensors, used to detect the input, among different processing components. A relatively high power processor system can monitor the sensors and determine the presence of gestures when the device is in an active state. When the device, or at least the processor system, enters a sleep mode, sensor management is transferred to a microcontroller connected to at least a portion of the sensors, such that the microcontroller can analyze the sensor data to determine the likelihood of a wake action being performed. In response to detecting a wake action, the microcontroller can contact a component such as a power management component to place the processor system in an active state, and enable the processor system to resume management of the sensors.
    Type: Grant
    Filed: November 29, 2012
    Date of Patent: July 14, 2015
    Assignee: AMAZON TECHNOLOGIES, INC.
    Inventors: Jennifer Silva, David A. Fotland, Matthew Miller
  • Patent number: 7925869
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Grant
    Filed: December 21, 2000
    Date of Patent: April 12, 2011
    Assignee: Ubicom, Inc.
    Inventors: Nicholas J Kelsey, Christopher J Waters, Tibet Mimaroglu, David A Fotland
  • Patent number: 7822950
    Abstract: The present invention provides a computer pipeline control mechanism enabling a nonstalling pipeline despite the presence of pipeline hazards. The present invention detects the presence of predetermined pipeline hazard conditions, cancels the thread which contains the instruction encountering such pipeline hazard and then recirculates the program counter of the instruction having hazards for re-execution. The present invention guarantees the deterministic execution of threads in a computer pipeline.
    Type: Grant
    Filed: January 22, 2003
    Date of Patent: October 26, 2010
    Assignee: Ubicom, Inc.
    Inventor: David A Fotland
  • Patent number: 7546442
    Abstract: A method and system for fixed-length memory-to-memory processing of fixed-length instructions. Further, the present invention is a method and system for implementing a memory operand width independent of the ALU width. The arithmetic and register data are 32 bits, but the memory operand is variable in size. The size of the memory operand is specified by the instruction. Instructions in accordance with the present invention allow for multiple memory operands in a single fixed-length instruction. The instruction set is small and simple, so the implementation is lower cost than traditional processors. More addressing modes are provided for, thus creating a more efficient code. Semaphores are implemented using a single bit. Shift-and-merge instructions are used to access data across word boundaries.
    Type: Grant
    Filed: April 10, 2006
    Date of Patent: June 9, 2009
    Assignee: Ubicom, Inc.
    Inventors: David A Fotland, Roger D Arnold, Tibet Mimaroglu
  • Patent number: 7308686
    Abstract: A system and method for implementing high speed input and output protocols in software using hard real time threads. The processor provides both high speed and deterministic performance. The hard real time threads execute enough instructions per clock cycle of the input and output protocol to regularly transfer data.
    Type: Grant
    Filed: February 7, 2003
    Date of Patent: December 11, 2007
    Assignee: Ubicom Inc.
    Inventors: David A. Fotland, Nicholas J. Kelsey
  • Patent number: 7120783
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Grant
    Filed: June 22, 2001
    Date of Patent: October 10, 2006
    Assignee: Ubicom, Inc.
    Inventors: David A. Fotland, Tibet Mimaroglu
  • Patent number: 7082519
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Grant
    Filed: October 1, 2002
    Date of Patent: July 25, 2006
    Assignee: Ubicom, Inc.
    Inventors: Nicholas J Kelsey, Christopher J F Waters, Tibet Mimaroglu, David A Fotland
  • Patent number: 7047396
    Abstract: A method and system for fixed-length memory-to-memory processing of fixed-length instructions. Further, the present invention is a method and system for implementing a memory operand width independent of the ALU width. The arithmetic and register data are 32 bits, but the memory operand is variable in size. The size of the memory operand is specified by the instruction. Instructions in accordance with the present invention allow for multiple memory operands in a single fixed-length instruction. The instruction set is small and simple, so the implementation is lower cost than traditional processors. More addressing modes are provided for, thus creating a more efficient code. Semaphores are implemented using a single bit. Shift-and-merge instructions are used to access data across word boundaries.
    Type: Grant
    Filed: June 22, 2001
    Date of Patent: May 16, 2006
    Assignee: Ubicom, Inc.
    Inventors: David A. Fotland, Roger D. Arnold, Tibet Mimaroglu
  • Publication number: 20030037228
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Application
    Filed: October 1, 2002
    Publication date: February 20, 2003
    Inventors: Nicholas J. Kelsey, Christopher J. F. Waters, Tibet Mimaroglu, David A. Fotland
  • Patent number: 6408380
    Abstract: Method and apparatus for storing and executing an instruction to load two independent registers with two values is disclosed. In one embodiment, a computer-readable medium is encoded with an instruction including an opcode field specifying that the instruction is an instruction to load two independent registers with a first value and a second value, a source field specifying the first value and the second value, a first target register field specifying a first target register to load with the first value; a second target register field specifying a second target register to load with the second value. A system to execute the instruction is also disclosed.
    Type: Grant
    Filed: May 21, 1999
    Date of Patent: June 18, 2002
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jerome C. Huck, Glenn T. Colon-Bonet, Alan H. Karp, David A. Fotland, Dean A. Mulla
  • Publication number: 20020038416
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Application
    Filed: June 22, 2001
    Publication date: March 28, 2002
    Inventors: David A. Fotland, Tibet Mimaroglu
  • Publication number: 20020002667
    Abstract: A system and method for enabling multithreading in a embedded processor, invoking zero-time context switching in a multithreading environment, scheduling multiple threads to permit numerous hard-real time and non-real time priority levels, fetching data and instructions from multiple memory blocks in a multithreading environment, and enabling a particular thread to modify the multiple states of the multiple threads in the processor core.
    Type: Application
    Filed: December 21, 2000
    Publication date: January 3, 2002
    Inventors: Nicholas J. Kelsey, Christopher J. Waters, Tibet Mimaroglu, David A. Fotland
  • Patent number: 5987576
    Abstract: A memory controller and at least one memory module exchange data at high transfer rates by minimizing clock skew. When writing data to the memory module, the memory controller generates a clock signal that travels along a first clock line segment. The data bus carries the write data, and the electrical characteristics of the data bus and first clock line segment are matched such that incident wavefronts of the data bus and clock signal arrive at the memory module in fixed relation to one another. When reading data, the first clock line segment is looped back from the memory module to the memory controller along a second clock line segment, with a copy of the clock signal provided on the second clock line segment. The data bus carries the read data, and the electrical characteristics of the data bus and the first clock line segment are matched such that incident wavefronts of the data bus and clock signal arrive at the memory controller in fixed relationship to one another.
    Type: Grant
    Filed: February 27, 1997
    Date of Patent: November 16, 1999
    Assignee: Hewlett-Packard Company
    Inventors: Leith L. Johnson, David A. Fotland
  • Patent number: 4873627
    Abstract: In a computer device in accordance with the preferred embodiment of the invention, an instruction set which uses a two-instruction sequence to store the result of a comparison is provided. The two-instruction sequence, which uses no branch instructions, does not need to wait for condition resolution before storing conditional results. Additionally, it also is capable of implementing slightly more general operations than simply storing a zero or one value of a comparison. Basically, the instruction set in accordance with the invention compares two operands and unconditionally stores a zero, which represents a Boolean "false", into a selected destination. The instruction set then conditionally nullifies the instruction following it, thus effecting a highly efficient execution of a sequence of instructions compared to the prior art.
    Type: Grant
    Filed: December 30, 1987
    Date of Patent: October 10, 1989
    Assignee: Hewlett-Packard Company
    Inventors: Allen J. Baum, Terrence C. Miller, David A. Fotland
  • Patent number: 4747046
    Abstract: In a computer device, an instruction set which uses a two-instruction sequence to store the result of a comparison is provided. The two-instruction sequence, which uses no branch instructions, does not need to wait for condition resolution before storing conditional results. Additionally, it also is capable of implementing slightly more general operations than simply storing a zero or one value of a comparison. Basically, the instruction set in accordance with the invention compares two operands and unconditionally stores a zero, which represents a Boolean "false", into a selected destination. The instruction set then conditionally nullifies the instruction following it, thus effecting a highly efficient execution of a sequence of instructions compared to the prior art.
    Type: Grant
    Filed: June 28, 1985
    Date of Patent: May 24, 1988
    Assignee: Hewlett-Packard Company
    Inventors: Allen J. Baum, Terrence C. Miller, David A. Fotland