Patents by Inventor Farhad Shafai

Farhad Shafai 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: 8762760
    Abstract: An apparatus consisting of a digital communication channel comprised of a multiplicity of lanes where data is striped across the lanes in a predefined sequence. Each lane has the ability to be powered down or powered up in response to the amount of data being held in a transmit buffer at one end of the communication channel. The method consists of monitoring the amount of data being held in the transmit buffer; making the decision of how many lanes are required based on the amount of data; sending signals to cause the required number of lanes to be powered down or powered up; and performing the required power down or power up action at the particular transmitter and receiver.
    Type: Grant
    Filed: September 14, 2010
    Date of Patent: June 24, 2014
    Assignees: Xilinx, Inc., Cisco Systems, Cortina Systems, Inc.
    Inventors: Farhad Shafai, Fredrik Olsson, Mark Andrew Gustlin
  • Patent number: 8649398
    Abstract: A packet network interface apparatus includes a media access control (MAC) module for constructing a packet for transmission over a packet network and a physical coding sublayer (PCS) module for encoding the packet for transmission over a physical interface. An inter packet gap module located between the MAC module and the PCS module directly transfers data to the PCS module while maintaining a certain inter packet gap by deleting or inserting idle characters. The inter packet gap module has at least one memory module for temporary storage of packet data. The modules preferably operate in a common time domain.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: February 11, 2014
    Assignee: Xilinx, Inc.
    Inventors: Farhad Shafai, Jason Coppens
  • Patent number: 8443256
    Abstract: A method of creatine a CRC (Cyclic Redundancy Check) code for a data message in a data communications system includes sequentially placing portions of the data message on a bus of width W bits consisting of an integral number N of segments of width S. An initial portion of the message fills n complete segments, where n<N. The method further includes processing the initial portion of the message placed on the bus to compute a CRC while compensating for any data on the bus preceding the initial portion, and subsequently processing one or more following portions of the message placed on the bus to update the CRC. A final portion of the message is processed to update the CRC by separately processing complete segments that do not fill the bus and any bytes that do not completely fill the last segment.
    Type: Grant
    Filed: January 24, 2011
    Date of Patent: May 14, 2013
    Assignee: Xilinx, Inc.
    Inventors: Farhad Shafai, Kelvin Spencer, Jason Coppens
  • Patent number: 8380921
    Abstract: A method includes searching a content addressable memory based on a comparand. The comparand includes a collection of bits. A modified comparand is generated by modifying the comparand. The modified comparand is based at least in part on a comparand overlay data value. The content addressable memory is also searched with the modified comparand.
    Type: Grant
    Filed: January 24, 2012
    Date of Patent: February 19, 2013
    Assignee: Core Networks L.L.C.
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Publication number: 20120236878
    Abstract: A packet network interface apparatus includes a media access control (MAC) module for constructing a packet for transmission over a packet network and a physical coding sublayer (PCS) module for encoding the packet for transmission over a physical interface. An inter packet gap module located between the MAC module and the PCS module directly transfers data to the PCS module while maintaining a certain inter packet gap by deleting or inserting idle characters. The inter packet gap module has at least one memory module for temporary storage of packet data. The modules preferably operate in a common time domain.
    Type: Application
    Filed: March 14, 2011
    Publication date: September 20, 2012
    Applicant: SARANCE TECHNOLOGIES INC.
    Inventors: Farhad Shafai, Jason Coppens
  • Publication number: 20120192044
    Abstract: A CRC (Cyclic Redundancy Check) code for a data message is created by placing an initial portion of the data message on a bus of width W bits consisting of an integral number N of segments of width S such that the initial portion of the message fills n complete segments, where n?N. A known bit pattern is placed on any segments preceding a start of the message as determined by a start indicator. A first intermediate CRC code is computed for the n segments of the initial portion by applying the W bits of the bus forming an input word to a CRC full processing circuit using a compensating constant to compensate for any known bit pattern preceding the initial portion of the message. Subsequent portions of the message width W are placed on the bus during subsequent bus cycles, and in each case a new first intermediate CRC code is computed on the W bits of the bus as input words using the current first intermediate CRC code as a seed input.
    Type: Application
    Filed: January 24, 2011
    Publication date: July 26, 2012
    Applicant: SARANCE TECHNOLOGIES INC.
    Inventors: Farhad Shafai, Kelvin Spencer, Jason Coppens
  • Publication number: 20120124283
    Abstract: A method includes searching a content addressable memory based on a comparand. The comparand includes a collection of bits. A modified comparand is generated by modifying the comparand. The modified comparand is based at least in part on a comparand overlay data value. The content addressable memory is also searched with the modified comparand.
    Type: Application
    Filed: January 24, 2012
    Publication date: May 17, 2012
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Publication number: 20120066531
    Abstract: An apparatus consisting of a digital communication channel comprised of a multiplicity of lanes where data is striped across the lanes in a predefined sequence. Each lane has the ability to be powered down or powered up in response to the amount of data being held in a transmit buffer at one end of the communication channel. The method consists of monitoring the amount of data being held in the transmit buffer; making the decision of how many lanes are required based on the amount of data; sending signals to cause the required number of lanes to be powered down or powered up; and performing the required power down or power up action at the particular transmitter and receiver.
    Type: Application
    Filed: September 14, 2010
    Publication date: March 15, 2012
    Applicants: Sarance Technologies, Inc., Cortina Systems Inc., Cisco Systems, Inc.
    Inventors: Farhad Shafai, Fredrik Olsson, Mark Andrew Gustlin
  • Patent number: 8117384
    Abstract: A method includes searching a content addressable memory based on a comparand. The comparand includes a collection of bits. A modified comparand is generated by modifying the comparand. The modified comparand is based at least in part on a comparand overlay data value. The content addressable memory is also searched with the modified comparand.
    Type: Grant
    Filed: October 27, 2010
    Date of Patent: February 14, 2012
    Assignee: Core Networks LLC
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Publication number: 20120030438
    Abstract: Serial data streams received on multiple data lanes, wherein each data stream is in the form of a series of blocks including a data block preceded by a synchronization block, are deskewed by setting a detection flag in response to the valid detection of one or more synchronization blocks in each data stream, writing received data following the setting of said detection flag for that data stream to memory, and reading data sequentially from each memory under the control of a common output clock in response to the setting of the flag in respect at least a group of the data streams.
    Type: Application
    Filed: July 29, 2010
    Publication date: February 2, 2012
    Applicant: SARANCE TECHNOLOGIES INC.
    Inventors: Farhad Shafai, Kelvin Spencer
  • Publication number: 20110047327
    Abstract: A method includes searching a content addressable memory based on a comparand. The comparand includes a collection of bits. A modified comparand is generated by modifying the comparand. The modified comparand is based at least in part on a comparand overlay data value. The content addressable memory is also searched with the modified comparand.
    Type: Application
    Filed: October 27, 2010
    Publication date: February 24, 2011
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Patent number: 7873780
    Abstract: A device for performing searches includes a comparand data register configured to store a comparand received from a host processor where the comparand includes a collection of bits. The device also includes logic configured to generate a modified comparand corresponding to the comparand and based at least in part on a comparand overlay data value. The logic is also configured to search the CAM with the modified comparand.
    Type: Grant
    Filed: August 31, 2006
    Date of Patent: January 18, 2011
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Patent number: 7401181
    Abstract: An invention is provided for using a comparand provided to a CAM for multiple CAM operations without requiring the comparand to be reloaded from a host processor for each CAM operation. The invention includes a comparand data register that is capable of storing a comparand. Associated with the comparand data register, is a plurality of result registers. In operation, the comparand is provided as input data to the CAM for a plurality of search operations. For each search operation, the result is stored in one of the plurality of result registers. In this manner, the comparand stored in the data register can be reused for multiple search operations, with each result stored in a separate result register.
    Type: Grant
    Filed: May 29, 2003
    Date of Patent: July 15, 2008
    Assignee: Core Networks LLC
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Publication number: 20080059696
    Abstract: An invention is provided for using a comparand provided to a CAM for multiple CAM operations without requiring the comparand to be reloaded from a host processor for each CAM operation. The invention includes a comparand data register that is capable of storing a comparand. Associated with the comparand data register, is a plurality of result registers. In operation, the comparand is provided as input data to the CAM for a plurality of search operations. For each search operation, the result is stored in one of the plurality of result registers. In this manner, the comparand stored in the comparand data register can be reused for multiple search operations, with each result stored in a separate result register.
    Type: Application
    Filed: August 31, 2006
    Publication date: March 6, 2008
    Applicant: SiberCore Technologies, Inc.
    Inventors: Kelvin Spencer, Farhad Shafai, Gregory F. Soprovich
  • Publication number: 20040003170
    Abstract: Variable width Content Addressable Memory (CAM) devices for searching data of variable widths, are disclosed. The CAM device includes a plurality of CAM blocks and a plurality of dual-mode first encoders. The plurality of CAM blocks is configured to store a plurality of data of variable widths with each data having one or more data portions of one or more predetermined widths. Each CAM block is configured to store a predetermined width portion of the data such that each data is stored in one or more CAM blocks. The CAM blocks receive a search data having a specified number of search data portions with each search data portion having one or more predetermined widths. Each CAM block receives a search data portion of the search data for searching the search data in the CAM blocks. The plurality of dual mode first encoders is configured for concatenating the specified number of the CAM blocks to generate one or more search results.
    Type: Application
    Filed: April 2, 2003
    Publication date: January 1, 2004
    Applicant: SiberCore Technologies Incorporated
    Inventors: G.F. Randall Gibson, Farhad Shafai
  • Patent number: 6553453
    Abstract: Variable width Content Addressable Memory (CAM) devices for searching data of variable widths, are disclosed. The CAM devices include, a plurality of CAM blocks and a plurality of dual-mode first encoders. The plurality of CAM blocks is configured to store a plurality of data of variable widths with each data having one or more data portions of one or more predetermined widths. Each CAM block is configured to store a predetermined width portion of the data such that each data is stored in one or more CAM blocks. The CAM blocks receive a search data having a specified number of search data portions with each search data portion having one or more predetermined widths. Each CAM block receives a search data portion of the search data for searching the search data in the CAM blocks. The plurality of dual mode first encoders is configured for concatenating the specified number of the CAM blocks to generate one or more search results.
    Type: Grant
    Filed: September 1, 2000
    Date of Patent: April 22, 2003
    Assignee: SiberCore Technologies, Inc.
    Inventors: G. F. Randall Gibson, Farhad Shafai
  • Patent number: 6362990
    Abstract: A three-port content addressable memory (CAM) device and method thereof are provided. The three-port CAM device includes a CAM, a search control block, and a maintenance control block. The CAM is configured to store data. The search control block is arranged to receive search data and search control signals via a first port for searching the search data in the CAM. The search control block is further configured to perform search operations by accessing the CAM. The search operations are performed within search cycles with each search operation being performed over multiple clock cycles. In this configuration, more than one search operations are capable of being performed simultaneously over one or more clock cycles. Search results of the search operations are output via a second port. The maintenance control block is configured to perform read/write operations by reading or writing specified data in the CAM via a third port.
    Type: Grant
    Filed: September 1, 2000
    Date of Patent: March 26, 2002
    Assignee: SiberCore Technologies
    Inventors: G. F. Randall Gibson, Farhad Shafai, Kenneth J. Schultz
  • Patent number: 6301636
    Abstract: A system includes cascaded content addressable memory (CAM) chips connected to a common bus. Each CAM chip includes a CAM array, a self-timed signal generator and hit propagation and match address transfer circuits. Each CAM array including an array of core cells provides, through its encoder, hit and match address signals resulting from a search operation in response to a clock signal. Each match address transfer circuit transfers the match address signal to the common bus, in response to a self-timed signal, the hit signal and a propagation-in hit signal provided from an upstream CAM chip, so that more than one CAM chip is prevented from providing the match address signal to the common bus simultaneously. Each hit propagation circuit provides a propagation-out hit signal to a downstream CAM chip, in response to the self-timed signal, the hit signal and the propagation-in hit signal from the upstream CAM chip, so that a hit signal is propagated from an upstream CAM chip to a downstream CAM chip.
    Type: Grant
    Filed: May 18, 2000
    Date of Patent: October 9, 2001
    Assignee: Nortel Networks Limited
    Inventors: Kenneth James Schultz, Farhad Shafai, Garnet Frederick Randall Gibson
  • Patent number: 6275406
    Abstract: The present invention provides a CAM circuit having a redundant array and method for implementing the same. The circuit includes a first CAM array, a redundant CAM array, one or more storage devices, a first encoder, and a redundant encoder. The first CAM array stores data and has a plurality of first entries. Each first entry has a plurality of first memory cells, wherein any first entry that includes one or more defective first memory cells is defective. The redundant CAM array has one or more redundant entries of redundant memory cells. Each of the one or more redundant entries has a redundant address and is associated with a defective first entry, wherein each redundant entry is configured store data for the associated first entry. The one or more storage devices associate each of the defective first entries with a redundant entry.
    Type: Grant
    Filed: August 29, 2000
    Date of Patent: August 14, 2001
    Assignee: SiberCore Technologies, Inc.
    Inventors: G. F. Randall Gibson, Farhad Shafai, Jason E. Podaima
  • Patent number: 6230236
    Abstract: A system includes a plurality of content addressable memory (CAM) chips which are cascaded and connected to a common bus. Each of the CAM chips provides search results (hit, match address and multiple match). A hit signal and a multiple match signal are propagated from chip to chip. A system hit result is given from the furthest down stream CAM chip. The match address result of the system is given from the common bus, where on-chip self-timed signals guarantee that there is no driving contention on the bus. An example of the CAM chip includes an extra row including a model match line and modified core cells to provide a model miss signal. The self-timed signal is provided in response to the model match line. In another example of the CAM chip, each word is divided into two halves. The match lines of the two halves of the word are coupled by a NAND circuit, the output of which is coupled to an encoder of the chip. The CAM chip includes an extra row including a chain of model match lines.
    Type: Grant
    Filed: August 28, 1997
    Date of Patent: May 8, 2001
    Assignee: Nortel Networks Corporation
    Inventors: Kenneth James Schultz, Farhad Shafai, Garnet Frederick Randall Gibson