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: 9141438Abstract: 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: GrantFiled: February 22, 2013Date of Patent: September 22, 2015Inventors: Alexander Joffe, Asad Khamisy
-
Patent number: 9110714Abstract: 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: GrantFiled: July 16, 2009Date of Patent: August 18, 2015Inventors: Alexander Joffe, Dmitry Vyshetsky
-
Publication number: 20140245315Abstract: 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: ApplicationFiled: February 22, 2013Publication date: August 28, 2014Inventors: Alexander Joffe, Asad Khamisy
-
Patent number: 8387061Abstract: 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: GrantFiled: June 30, 2011Date of Patent: February 26, 2013Inventors: Alexander Joffe, Asad Khamisy
-
Publication number: 20110265094Abstract: 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: ApplicationFiled: June 30, 2011Publication date: October 27, 2011Inventors: Alexander Joffe, Asad Khamisy
-
Patent number: 8001547Abstract: 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: GrantFiled: August 29, 2008Date of Patent: August 16, 2011Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Publication number: 20090282408Abstract: 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: ApplicationFiled: July 16, 2009Publication date: November 12, 2009Inventors: Alexander Joffe, Dmitry Vyshetsky
-
Patent number: 7590785Abstract: 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: GrantFiled: April 14, 2004Date of Patent: September 15, 2009Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Dmitry Vyshetsky
-
Publication number: 20080320485Abstract: 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: ApplicationFiled: August 29, 2008Publication date: December 25, 2008Applicant: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Patent number: 7437535Abstract: 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: GrantFiled: November 1, 2004Date of Patent: October 14, 2008Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Patent number: 7421693Abstract: 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: GrantFiled: April 4, 2002Date of Patent: September 2, 2008Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Patent number: 7245616Abstract: 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: GrantFiled: March 20, 2002Date of Patent: July 17, 2007Assignee: Applied Micro Circuits CorporationInventors: Nathan Elnathan, Alexander Joffe, Ilan Pardo
-
Publication number: 20070136778Abstract: 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: ApplicationFiled: December 7, 2006Publication date: June 14, 2007Inventors: Ari Birger, Alexander Joffe, Ilya Netchitailo
-
Patent number: 7155718Abstract: 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: GrantFiled: April 4, 2002Date of Patent: December 26, 2006Assignee: Applied Micro Circuits Corp.Inventor: Alexander Joffe
-
Patent number: 7055151Abstract: 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: GrantFiled: December 9, 1999Date of Patent: May 30, 2006Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Dmitry Vyshetsky
-
Patent number: 6978330Abstract: 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: GrantFiled: April 4, 2002Date of Patent: December 20, 2005Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Publication number: 20050197860Abstract: 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: ApplicationFiled: February 23, 2004Publication date: September 8, 2005Applicant: RadEMR, Inc.Inventors: Alexander Joffe, Samuel Coroniti, Daniel Wilson, C. Tomlinson, Max Tomlinson
-
Patent number: 6938132Abstract: 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: GrantFiled: April 4, 2002Date of Patent: August 30, 2005Assignee: Applied Micro Circuits CorporationInventors: Alexander Joffe, Asad Khamisy
-
Publication number: 20050187787Abstract: 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: ApplicationFiled: February 23, 2004Publication date: August 25, 2005Applicants: RadEMR, Inc., Canon U.S.A. Inc.Inventors: Max Tomlinson, Tsuneo Imai, Stanley Shapiro, Richard Bennett, C. Tomlinson, Alexander Joffe
-
Patent number: 6820170Abstract: 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: GrantFiled: June 24, 2002Date of Patent: November 16, 2004Assignee: Applied Micro Circuits CorporationInventors: Nathan Y. Elnathan, Alexander Joffe