Patents by Inventor Amir Michaeli

Amir Michaeli 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: 7627870
    Abstract: Systems and methods are disclosed for implementing and using data structures comprised of a hierarchy of queues or linked list data structures. A queue or linked list typically comprises a distributor, a plurality of sub-queues or sub-linked lists, and a receiver. The distributor distributes a plurality of items to be added to the queue or linked list to the plurality of sub-queues or sub-linked lists in an order, and the receiver receives the items from these elements in the same order. Entries for the queues and/or linked lists may be stored in a common memory. Stages of selectors may be used to select a current queue or linked list and a particular sub-queue or linked list. The number of queues/linked lists and sub-queues/sub-linked lists is unbounded and can be sized according to the needs of the system, such as to overcome a memory access speed limitation.
    Type: Grant
    Filed: April 28, 2001
    Date of Patent: December 1, 2009
    Assignee: Cisco Technology, Inc.
    Inventors: Amir Michaeli, Vitaly Sukonik
  • Patent number: 7499941
    Abstract: Regular expression matching is performed on a sequence of characters using a pipeline architecture of regular expression matching stages. Multiple regular expression matching stages are connected together in a pipeline manner, with each of these regular expression matching stages corresponding to a different portions of the regular expression. These stages are response to indications from their immediately preceding stages (if they have a preceding stage) of whether or not a progressive match was determined. If all preceding stages matched for corresponding characters of the sequence of characters, then a stage will identify whether or not the current character matches its programmed portion of the regular expression to a next stage or to another device (e.g., the final stage may indicate to a packet processor whether or not the regular expression is matched).
    Type: Grant
    Filed: September 5, 2005
    Date of Patent: March 3, 2009
    Assignee: Cisco Technology, Inc.
    Inventors: Amir Michaeli, Niv Margalit, Ofer Bardan, Meir Schreiber
  • Patent number: 7212535
    Abstract: Disclosed are, inter alia, methods, apparatus, data structures, computer-readable media, and mechanisms, for scheduling items in a system, such as, but not limited to a computer or communications system. For example, in one implementation, each of the items in a set of items has an associated deficit and mini-deficit. A next particular item is selected from the set of items currently having enough deficit to process the particular item. One or more entities associated with the particular item is processed a commensurate amount corresponding to the mini-deficit associated with the particular item. This processing is repeatedly performed until there are no more entities associated with the particular item or until the deficit associated with the particular item does not allow any further processing at the current time.
    Type: Grant
    Filed: March 31, 2006
    Date of Patent: May 1, 2007
    Assignee: Cisco Technology, Inc.
    Inventors: Doron Shoham, Amir Michaeli, David J. Tsiang, Chandrashekhar Appanna
  • Publication number: 20070055664
    Abstract: Regular expression matching is performed on a sequence of characters using a pipeline architecture of regular expression matching stages. Multiple regular expression matching stages are connected together in a pipeline manner, with each of these regular expression matching stages corresponding to a different portions of the regular expression. These stages are response to indications from their immediately preceding stages (if they have a preceding stage) of whether or not a progressive match was determined. If all preceding stages matched for corresponding characters of the sequence of characters, then a stage will identify whether or not the current character matches its programmed portion of the regular expression to a next stage or to another device (e.g., the final stage may indicate to a packet processor whether or not the regular expression is matched).
    Type: Application
    Filed: September 5, 2005
    Publication date: March 8, 2007
    Applicant: Cisco Technology, Inc.
    Inventors: Amir Michaeli, Niv Margalit, Ofer Bardan, Meir Schreiber
  • Publication number: 20060176883
    Abstract: Disclosed are, inter alia, methods, apparatus, data structures, computer-readable media, and mechanisms, for scheduling items in a system, such as, but not limited to a computer or communications system. For example, in one implementation, each of the items in a set of items has an associated deficit and mini-deficit. A next particular item is selected from the set of items currently having enough deficit to process the particular item. One or more entities associated with the particular item is processed a commensurate amount corresponding to the mini-deficit associated with the particular item. This processing is repeatedly performed until there are no more entities associated with the particular item or until the deficit associated with the particular item does not allow any further processing at the current time.
    Type: Application
    Filed: March 31, 2006
    Publication date: August 10, 2006
    Applicant: CISCO TECHNOLOGY, INC.
    Inventors: Doron Shoham, Amir Michaeli, David Tsiang, Chandrashekhar Appanna
  • Patent number: 7075940
    Abstract: Methods and apparatus are disclosed for dynamically mapping between sets of entities. In one implementation, queues corresponding to a particular output are mapped into a sequential set of renamed queue identifiers. In transmitting an item, a particular renamed queue identifier is selected, and then the particular item is communicated from the actual queue to the particular output. In one implementation, groups corresponding to a particular output are mapped into a sequential set of renamed group identifiers, and queues corresponding to a particular renamed group are mapped into a sequential set of renamed queue identifiers. In transmitting an item, a particular renamed group identifier is selected, and then a particular renamed queue identifier from within is selected. In one implementation, a second set of mappings is generated while the system uses a first set of mappings, and then the system switches in real-time to the second set of mappings.
    Type: Grant
    Filed: May 6, 2002
    Date of Patent: July 11, 2006
    Assignee: Cisco Technology, Inc.
    Inventors: Ehud Finkelstein, Sarig Livne, Doron Shoham, Amir Michaeli
  • Patent number: 7065091
    Abstract: Methods and apparatus are disclosed for scheduling items (e.g., packets, processes, etc.) in a system, such as, but not limited to a computer or communications system (e.g., router, switch, etc.) In one implementation, multiple sets of items requiring processing to be performed are maintained. A current set of the multiple sets of items is identified. Each of the items in the current set is processed. In one implementation, this processing includes identifying a particular item in the current set, adding a quantum to a deficit of the particular item, processing an entity corresponding to the particular item, decreasing the deficit of the particular item by a value, determining if the deficit allows the particular item to be further processed, and moving the particular item from the current set to another of the multiple sets of items after said determining if deficit allows the particular item to be further processed.
    Type: Grant
    Filed: March 21, 2002
    Date of Patent: June 20, 2006
    Assignee: Cisco Technology, Inc.
    Inventors: Doron Shoham, Amir Michaeli, David J. Tsiang, Chandrashekhar Appanna
  • Publication number: 20030214964
    Abstract: Methods and apparatus are disclosed for scheduling items (e.g., packets, processes, etc.) in a system, such as, but not limited to a computer or communications system (e.g., router, switch, etc.) In one implementation, multiple sets of items requiring processing to be performed are maintained. A current set of the multiple sets of items is identified. Each of the items in the current set is processed. In one implementation, this processing includes identifying a particular item in the current set, adding a quantum to a deficit of the particular item, processing an entity corresponding to the particular item, decreasing the deficit of the particular item by a value, determining if the deficit allows the particular item to be further processed, and moving the particular item from the current set to another of the multiple sets of items after said determining if deficit allows the particular item to be further processed.
    Type: Application
    Filed: March 21, 2002
    Publication date: November 20, 2003
    Inventors: Doron Shoham, Amir Michaeli, David J. Tsiang, Chandrashekhar Appanna