Patents by Inventor Rami Zemach

Rami Zemach 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: 7565496
    Abstract: Memory is shared among multiple information channels, which may be of particular use for storing streams of packets. Memory allocation information is maintained which can be used to identify the current number of memory segments (e.g., some definable amount of memory) allocated for each of the multiple channels as well as the available number of shared memory segments. Items, such as, but not limited to data, packets, etc., are received and stored in the memory according to the memory allocation information. After a first processing stage for an item, the memory allocation information is updated to reflect an expected number of available memory segments to become available for the respective channel after a subsequent second processing stage. After the second processing stage is completed for an item, its number of memory segments are de-allocated based on the expected available data. In one embodiment, these memory segments are de-allocated one at a time.
    Type: Grant
    Filed: January 22, 2005
    Date of Patent: July 21, 2009
    Assignee: Cisco Technology, Inc.
    Inventors: Doron Shoham, Rami Zemach, John J. Williams, Jr.
  • Patent number: 7561589
    Abstract: A virtual address storage system, which may be of particular used in generating fragmented packets, is implemented using a linked list of data segments. Multiple storage segments linked together in a linked list data structure are maintained to represent a virtual contiguous block of storage to be accessed based on a virtual address. Virtual address to corresponding data segment pointer associations are maintained for identifying a data segment corresponding to a particular address within the address space. In response to an identified address in the address space, a particular closest dynamic recently used association is identified and used to traverse to the desired data segment (e.g. rather than traversing from the beginning of the linked list), and one of the dynamic recently used associations is updated. A packet can be stored in this address space along with newly generated packet headers and tails for the multiple fragmented packets.
    Type: Grant
    Filed: February 23, 2005
    Date of Patent: July 14, 2009
    Assignee: Cisco Technology, Inc
    Inventors: Doron Shoham, Rami Zemach, Alon Ratinsky, Sarig Livne
  • Patent number: 7404015
    Abstract: Methods and apparatus are disclosed for processing packets, for example, using a high performance massively parallel packet processing architecture, distributing packets or subsets thereof to individual packet processors and gathering the processed packet or subsets and forwarding the resultant modified or otherwise processed packets, accessing packet processing resources across a shared resource network, accessing packet processing resources using direct memory access techniques, and/or storing one overlapping portion of a packet in a global packet memory while providing a second overlapping portion to a packet processor. In one implementation, the processing of the packet includes accessing one or more processing resources across a resource network shared by multiple packet processing engines. In one implementation, a global packet memory is one of these resources. In one implementation, these resources are accessed using direct memory access (DMA) techniques.
    Type: Grant
    Filed: August 24, 2002
    Date of Patent: July 22, 2008
    Assignee: Cisco Technology, Inc.
    Inventors: Rami Zemach, Vitaly Sukonik, William N. Eatherton, John H. W. Bettink, Moshe Voloshin
  • Publication number: 20070286075
    Abstract: A method for controlling data transmission includes setting a respective rate criterion for each of a plurality of interfaces of a network element. Upon conveying a first data packet of a first size via a given interface of the network element at a first time, a time-stamp value is computed based on the first time, the first size and the respective rate criterion that is set for the given interface. A disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, is determined responsively to the time-stamp value.
    Type: Application
    Filed: June 12, 2006
    Publication date: December 13, 2007
    Inventors: Doron Shoham, Rami Zemach
  • Patent number: 7304999
    Abstract: Methods and apparatus are disclosed for processing packets, for example, using a high performance massively parallel packet processing architecture, distributing packets or subsets thereof to individual packet processors and gathering the processed packet or subsets and forwarding the resultant modified or otherwise processed packets, accessing packet processing resources across a shared resource network, accessing packet processing resources using direct memory access techniques, and/or storing one overlapping portion of a packet in a global packet memory while providing a second overlapping portion to a packet processor. In one implementation, a packet of multiple streams of packets is received. A subset of bytes of the packet are distributed to the next packet processor determined based on a distribution pattern. The subset of the packet is processed to generate a modified subset, which is gathered in turn based on the distribution pattern; and a modified packet including the modified subset is forwarded.
    Type: Grant
    Filed: August 24, 2002
    Date of Patent: December 4, 2007
    Assignee: Cisco Technology Inc.
    Inventors: Vitaly Sukonik, Michael Laor, Michael B. Galles, Moshe Voloshin, William N. Eatherton, Rami Zemach, John H. W. Bettink
  • Publication number: 20060221823
    Abstract: Disclosed are, inter alia, methods, apparatus, data structures, computer-readable media, and mechanisms, for matching items with resources, such as, but not limited to packet processing contexts, output links, memory, storage, specialized hardware or software, compute cycles, or any other entity. One implementation includes means for maintaining distribution groups of items, means for maintaining differently aged resources queues, and means for matching resources identified as being at the head of the plurality of differently aged resources queues and as being primarily and secondarily associated with said distribution groups based on a set of predetermined criteria.
    Type: Application
    Filed: April 5, 2005
    Publication date: October 5, 2006
    Applicant: CISCO TECHNOLOGY, INC., A CALIFORNIA CORPORATION
    Inventors: Doron Shoham, Rami Zemach, Moshe Voloshin, Alon Ratinsky, Sarig Livne, John Williams
  • Publication number: 20060209862
    Abstract: A virtual address storage system, which may be of particular used in generating fragmented packets, is implemented using a linked list of data segments. Multiple storage segments linked together in a linked list data structure are maintained to represent a virtual contiguous block of storage to be accessed based on a virtual address. Virtual address to corresponding data segment pointer associations are maintained for identifying a data segment corresponding to a particular address within the address space. In response to an identified address in the address space, a particular closest dynamic recently used association is identified and used to traverse to the desired data segment (e.g. rather than traversing from the beginning of the linked list), and one of the dynamic recently used associations is updated. A packet can be stored in this address space along with newly generated packet headers and tails for the multiple fragmented packets.
    Type: Application
    Filed: February 23, 2005
    Publication date: September 21, 2006
    Applicant: CISCO TECHNOLOGY, INC., A CALIFORNIA CORPORATION
    Inventors: Doron Shoham, Rami Zemach, Alon Ratinsky, Sarig Livne
  • Publication number: 20060168405
    Abstract: Memory is shared among multiple information channels, which may be of particular use for storing streams of packets. Memory allocation information is maintained which can be used to identify the current number of memory segments (e.g., some definable amount of memory) allocated for each of the multiple channels as well as the available number of shared memory segments. Items, such as, but not limited to data, packets, etc., are received and stored in the memory according to the memory allocation information. After a first processing stage for an item, the memory allocation information is updated to reflect an expected number of available memory segments to become available for the respective channel after a subsequent second processing stage. After the second processing stage is completed for an item, its number of memory segments are de-allocated based on the expected available data. In one embodiment, these memory segments are de-allocated one at a time.
    Type: Application
    Filed: January 22, 2005
    Publication date: July 27, 2006
    Inventors: Doron Shoham, Rami Zemach, John Williams
  • Publication number: 20040037322
    Abstract: Methods and apparatus are disclosed for processing packets, for example, using a high performance massively parallel packet processing architecture, distributing packets or subsets thereof to individual packet processors and gathering the processed packet or subsets and forwarding the resultant modified or otherwise processed packets, accessing packet processing resources across a shared resource network, accessing packet processing resources using direct memory access techniques, and/or storing one overlapping portion of a packet in a global packet memory while providing a second overlapping portion to a packet processor. In one implementation, a packet of multiple streams of packets is received. A subset of bytes of the packet are distributed to the next packet processor determined based on a distribution pattern. The subset of the packet is processed to generate a modified subset, which is gathered in turn based on the distribution pattern; and a modified packet including the modified subset is forwarded.
    Type: Application
    Filed: August 24, 2002
    Publication date: February 26, 2004
    Inventors: Vitaly Sukonik, Michael Laor, Michael B. Galles, Moshe Voloshin, William N. Eatherton, Rami Zemach, John H. W. Bettink
  • Publication number: 20040039787
    Abstract: Methods and apparatus are disclosed for processing packets, for example, using a high performance massively parallel packet processing architecture, distributing packets or subsets thereof to individual packet processors and gathering the processed packet or subsets and forwarding the resultant modified or otherwise processed packets, accessing packet processing resources across a shared resource network, accessing packet processing resources using direct memory access techniques, and/or storing one overlapping portion of a packet in a global packet memory while providing a second overlapping portion to a packet processor. In one implementation, the processing of the packet includes accessing one or more processing resources across a resource network shared by multiple packet processing engines. In one implementation, a global packet memory is one of these resources. In one implementation, these resources are accessed using direct memory access (DMA) techniques.
    Type: Application
    Filed: August 24, 2002
    Publication date: February 26, 2004
    Inventors: Rami Zemach, Vitaly Sukonik, William N. Eatherton, John H. W. Bettink, Moshe Voloshin
  • Patent number: 6507899
    Abstract: An interface circuit for coupling a data handling unit with a memory unit having control inputs, an address signal input, a data signal input, and a data signal output is described. The interface circuit comprises an address buffer having an input and an output, said input receiving an address signal from said data handling unit, a first multiplexer which couples said memory unit with either said output of said address buffer or with said address signal, a data buffer having an input and an output, said input receiving a data signal from said data handling unit and said output being coupled with said memory data input, a second multiplexer for selecting either said memory data signal output or said data buffer output, and a comparator for comparing said address signal with the signal from said address buffer output, generating a control signal which controls said second multiplexer.
    Type: Grant
    Filed: December 13, 1999
    Date of Patent: January 14, 2003
    Assignee: Infineon Technologies North American Corp.
    Inventors: Klaus Oberlaender, Sabeen Randhawa, Yannick Martelloni, Manfred Henftling, Rami Zemach, Zohar Peleg, Christian Wiedholz, Gigy Baror, Doron Shoham, Oded Trainin, Niv Margalit