Patents by Inventor Alexander Joffe

Alexander Joffe 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: 9141438
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Grant
    Filed: February 22, 2013
    Date of Patent: September 22, 2015
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 9110714
    Abstract: In a multi-tasking pipelined processor, consecutive instructions are executed by different tasks, eliminating the need to purge an instruction execution pipeline of subsequent instructions when a previous instruction cannot be completed. The tasks do not share registers which store task-specific values, thus eliminating the need to save or load registers when a new task is scheduled for execution. If an instruction accesses an unavailable resource, the instruction becomes suspended, allowing other tasks' instructions to be executed instead until the resource becomes available. Task scheduling is performed by hardware; no operating system is needed. Simple techniques are provided to synchronize shared resource access between different tasks.
    Type: Grant
    Filed: July 16, 2009
    Date of Patent: August 18, 2015
    Inventors: Alexander Joffe, Dmitry Vyshetsky
  • Publication number: 20140245315
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Application
    Filed: February 22, 2013
    Publication date: August 28, 2014
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 8387061
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Grant
    Filed: June 30, 2011
    Date of Patent: February 26, 2013
    Inventors: Alexander Joffe, Asad Khamisy
  • Publication number: 20110265094
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Application
    Filed: June 30, 2011
    Publication date: October 27, 2011
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 8001547
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Grant
    Filed: August 29, 2008
    Date of Patent: August 16, 2011
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Publication number: 20090282408
    Abstract: In a multi-tasking pipelined processor, consecutive instructions are executed by different tasks, eliminating the need to purge an instruction execution pipeline of subsequent instructions when a previous instruction cannot be completed. The tasks do not share registers which store task-specific values, thus eliminating the need to save or load registers when a new task is scheduled for execution. If an instruction accesses an unavailable resource, the instruction becomes suspended, allowing other tasks' instructions to be executed instead until the resource becomes available. Task scheduling is performed by hardware; no operating system is needed. Simple techniques are provided to synchronize shared resource access between different tasks.
    Type: Application
    Filed: July 16, 2009
    Publication date: November 12, 2009
    Inventors: Alexander Joffe, Dmitry Vyshetsky
  • Patent number: 7590785
    Abstract: In a multi-tasking pipelined processor, consecutive instructions are executed by different tasks, eliminating the need to purge an instruction execution pipeline of subsequent instructions when a previous instruction cannot be completed. The tasks do not share registers which store task-specific values, thus eliminating the need to save or load registers when a new task is scheduled for execution. If an instruction accesses an unavailable resource, the instruction becomes suspended, allowing other tasks' instructions to be executed instead until the resource becomes available. Task scheduling is performed by hardware; no operating system is needed. Simple techniques are provided to synchronize shared resource access between different tasks.
    Type: Grant
    Filed: April 14, 2004
    Date of Patent: September 15, 2009
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Dmitry Vyshetsky
  • Publication number: 20080320485
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Application
    Filed: August 29, 2008
    Publication date: December 25, 2008
    Applicant: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 7437535
    Abstract: This disclosure relates to communications among processors, coprocessors and memory. Specifically, a method and apparatus provide a single-cycle instruction (“store-and-load”) that stores a command to a co-processor to atomically process data and that loads resultant processed data.
    Type: Grant
    Filed: November 1, 2004
    Date of Patent: October 14, 2008
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 7421693
    Abstract: Logic (also called “synchronizing logic”) in a co-processor (that provides an interface to memory) receives a signal (called a “declaration”) from each of a number of tasks, based on an initial determination of one or more paths (also called “code paths”) in an instruction stream (e.g. originating from a high-level software program or from low-level microcode) that a task is likely to follow. Once a task (also called “disabled” task) declares its lack of a future need to access a shared data, the synchronizing logic allows that shared data to be accessed by other tasks (also called “needy” tasks) that have indicated their need to access the same. Moreover, the synchronizing logic also allows the shared data to be accessed by the other needy tasks on completion of access of the shared data by a current task (assuming the current task was also a needy task).
    Type: Grant
    Filed: April 4, 2002
    Date of Patent: September 2, 2008
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Patent number: 7245616
    Abstract: Tasks are dynamically allocated to process packets. In particular, packets of data to be processed are assigned a packet identification. The packet identification includes a lane and a packet sequence number. The term “lane” as used herein refers to a port number and a direction (i.e. ingress or egress), such as Port 3 Egress. A set of resources (e.g., registers and memory buffers) are associated with each lane. The task is allowed to access resources associated with the lane. In some embodiments, a task may change the port that it services and use the resources associated with that port.
    Type: Grant
    Filed: March 20, 2002
    Date of Patent: July 17, 2007
    Assignee: Applied Micro Circuits Corporation
    Inventors: Nathan Elnathan, Alexander Joffe, Ilan Pardo
  • Publication number: 20070136778
    Abstract: A remote control device for controlling a plurality of controllable devices, and a method for controlling devices using a remote control device. The remote control device includes a processor, a display screen coupled to the processor, and memory coupled to the processor, the memory including a program module to solicit information from a user. The program module has access to information regarding the operation of the plurality of controllable devices and which controllable device performs a selected function during operation of an activity. The program module generates a screen displayable on the display screen that includes different locations for playback, and a mechanism for the user to select one of the different locations for playback. As a result of a user providing the remote control device with an indication of the selected location for playback, and an item for playback at the selected location, the remote control device causes playback of the item at the selected location.
    Type: Application
    Filed: December 7, 2006
    Publication date: June 14, 2007
    Inventors: Ari Birger, Alexander Joffe, Ilya Netchitailo
  • Patent number: 7155718
    Abstract: In a computer system including at least one microcontroller, by suspending tasks after execution of particular instructions, such as a load-register-from-external-memory instruction, or when a resource is not ready, unnecessary attempts to execute subsequent instruction can be avoided. If a processor register has not yet been loaded and the next instruction attempts to use that register, the task will suspend. A task can also be suspended by incorporating a computer instruction that suspends the task after execution. A task can also be suspended by utilizing resources that provide one or more suspend indications.
    Type: Grant
    Filed: April 4, 2002
    Date of Patent: December 26, 2006
    Assignee: Applied Micro Circuits Corp.
    Inventor: Alexander Joffe
  • Patent number: 7055151
    Abstract: In a multi-tasking pipelined processor, consecutive instructions are executed by different tasks, eliminating the need to purge an instruction execution pipeline of subsequent instructions when a previous instruction cannot be completed. The tasks do not share registers which store task-specific values, thus eliminating the need to save or load registers when a new task is scheduled for execution. If an instruction accesses an unavailable resource, the instruction becomes suspended, allowing other tasks' instructions to be executed instead until the resource becomes available. Task scheduling is performed by hardware; no operating system is needed. Simple techniques are provided to synchronize shared resource access between different tasks.
    Type: Grant
    Filed: December 9, 1999
    Date of Patent: May 30, 2006
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Dmitry Vyshetsky
  • Patent number: 6978330
    Abstract: Logic (also called “re-ordering semaphore”) issues semaphore grants to access a shared resource in an order different from the order in which semaphore requests for accessing the shared resource are received. The re-ordering semaphore needs to receive a semaphore release between any two semaphore grants. There is no limit on the duration between a semaphore grant and a semaphore release, so that a task that receives a semaphore grant can use the shared resource for any length of time. In one embodiment, each request is associated with a number indicative of the order in which grants are to be issued, and the re-ordering semaphore uses this number in deciding which request is to be granted. The number can be a sequence number that is indicative of the order of arrival of packets that generated the requests.
    Type: Grant
    Filed: April 4, 2002
    Date of Patent: December 20, 2005
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Publication number: 20050197860
    Abstract: A data management system includes a server system and a data forwarding unit for forwarding data to the server system via a public network. The server system includes a storage system for storing data, an information system for storing information on data managed by the data management system, and a plurality of interfaces for accessing the server system via the public network. When the data forwarding unit receives data, identification information on the received data is sent to the information system via one of the plurality of interfaces selected by the data forwarding unit in accordance with a set of predetermined rules. In response to receiving identification information from the data forwarding unit, the information system sends communication information for one of the plurality of interfaces selected by the information system in accordance with a set of predetermined rules.
    Type: Application
    Filed: February 23, 2004
    Publication date: September 8, 2005
    Applicant: RadEMR, Inc.
    Inventors: Alexander Joffe, Samuel Coroniti, Daniel Wilson, C. Tomlinson, Max Tomlinson
  • Patent number: 6938132
    Abstract: A co-processor (also called “memory co-processor”) provides an interface to a memory, by executing instructions on data held in the memory. The co-processor uses a specified address to fetch data from memory, performs a specified instruction (such as incrementing a counter or policing) on the data to obtain modified data, and writes the modified data back to memory at the same address. Depending on the embodiment, the memory co-processor may include a first buffer for holding instructions that may be received back to back, in successive clock cycles. Instead of or in addition to the first buffer, the memory co-processor may include a second buffer for holding data to be written to memory back to back, in successive clock cycles. In some embodiments, the memory co-processor also receives (and maintains in local storage) the identity of a task that generates the specified instruction, so that the same cask may be awakened after the instruction has been executed.
    Type: Grant
    Filed: April 4, 2002
    Date of Patent: August 30, 2005
    Assignee: Applied Micro Circuits Corporation
    Inventors: Alexander Joffe, Asad Khamisy
  • Publication number: 20050187787
    Abstract: A business method provides access to digital medical image data generated by up to a plurality of imaging facilities to a payer. The business method includes receiving digital medical image data generated by the imaging facilities using a gateway at each imaging facility. The received-digital medical image data is transmitted from the gateway to a central server via a network and stored at the central server. The payer is then provided access to the stored digital medical image data via the network for a fee.
    Type: Application
    Filed: February 23, 2004
    Publication date: August 25, 2005
    Applicants: RadEMR, Inc., Canon U.S.A. Inc.
    Inventors: Max Tomlinson, Tsuneo Imai, Stanley Shapiro, Richard Bennett, C. Tomlinson, Alexander Joffe
  • Patent number: 6820170
    Abstract: Multiple attempts are made to identify an entry in a cache. For example, a first attempt uses a RAM-based addressing structure (such as the above-described table) and a second attempt (on failure of the first attempt) uses a CAM-based addressing structure. The RAM-based addressing structure is faster than the CAM based-addressing structure, and in cases of a hit on the first attempt, cache performance is based on RAM cycle time rather than CAM cycle time. On the other hand, a miss on the first attempt does not mean that the data is not present in the cache. Instead, a second attempt using the CAM in the traditional manner finds the data if present in the cache.
    Type: Grant
    Filed: June 24, 2002
    Date of Patent: November 16, 2004
    Assignee: Applied Micro Circuits Corporation
    Inventors: Nathan Y. Elnathan, Alexander Joffe