US9529669B2 - Error detection and correction in binary content addressable memory (BCAM) - Google Patents
Error detection and correction in binary content addressable memory (BCAM) Download PDFInfo
- Publication number
- US9529669B2 US9529669B2 US14/502,966 US201414502966A US9529669B2 US 9529669 B2 US9529669 B2 US 9529669B2 US 201414502966 A US201414502966 A US 201414502966A US 9529669 B2 US9529669 B2 US 9529669B2
- Authority
- US
- United States
- Prior art keywords
- data
- bcam
- data entry
- match
- signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000012937 correction Methods 0.000 title claims description 17
- 238000001514 detection method Methods 0.000 title description 6
- 238000013479 data entry Methods 0.000 claims abstract description 118
- 238000000034 method Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 230000005865 ionizing radiation Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 102100026413 Branched-chain-amino-acid aminotransferase, mitochondrial Human genes 0.000 description 5
- 101000935638 Homo sapiens Basal cell adhesion molecule Proteins 0.000 description 5
- 101000766294 Homo sapiens Branched-chain-amino-acid aminotransferase, mitochondrial Proteins 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000011897 real-time detection Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Definitions
- This invention relates generally to content addressable memory (CAM). More particularly, it relates to real-time error detection and correction in binary content addressable memory (BCAM).
- CAM content addressable memory
- BCAM binary content addressable memory
- Content addressable memory is a type of memory unit in which the data stored is addressable by its content.
- the CAM compares an input word with the words stored in the CAM.
- the CAM determines whether each entry is a match or a mismatch to the input word. If a match to the input word is found, the CAM may return a list of one or more storage addresses of the entries that matched the input word and/or one or more data words associated with the entries that matched the input word.
- a binary CAM is a type of CAM in which matching is based on matching all of the bits in the data entry. That is, none of the bits are masked or don't care, as might be the case in a ternary content addressable memory.
- Errors may be introduced into entries in a BCAM (e.g., by ionizing radiation).
- the soft error rates (SER) in BCAMs can exceed acceptable limits for many applications given the large number of bits stored by BCAMs.
- the present invention overcomes the limitations of the prior art by providing data signature circuitry, (e.g., error correction circuitry) and/or duplicate entries to entries in a BCAM.
- data signature circuitry e.g., error correction circuitry
- duplicate entries When performing a compare operation in a BCAM, the data signatures of the input word and the data entry being considered may also be analyzed to determine whether an error has occurred.
- duplicate entries When duplicate entries are used, the results of the compare operation of an entry can be compared to the results of the compare operation of the corresponding duplicate entry to determine whether an error has occurred.
- error correction circuitry it can be used to correct errors in an entry of the BCAM.
- error correcting code used by the BCAM, single bit errors or multiple bit errors may be detected and/or corrected without the need of retrieving the data to be corrected from an external source.
- FIG. 1A is a block diagram of a binary content addressable memory (BCAM) with data signatures, according to one embodiment of the invention.
- BCAM binary content addressable memory
- FIG. 1B is a flow chart showing steps for determining in real-time, whether an entry in a BCAM is corrupted, according to one embodiment of the invention.
- FIG. 2 is a block diagram of a BCAM with sub-divided data entries, according to another embodiment of the invention.
- FIG. 3A is a block diagram of a BCAM with duplicate entries, according to one embodiment of the invention.
- FIG. 3B is a flow chart showing steps for determining in real-time, whether an entry in a BCAM is corrupted, according to one embodiment of the invention.
- FIG. 4 is a block diagram of another BCAM, according to one embodiment of the invention.
- FIG. 1A is a block diagram of a BCAM with data signatures, according to one embodiment of the invention.
- the BCAM of FIG. 1A includes a memory array 100 , auxiliary logic circuitry 150 and an interface 140 .
- the memory array 100 contains data organized as words (which are shown as rows in FIG. 1A ).
- the interface 140 provides an interface for communication between the BCAM and other components.
- the BCAM is used to store 144-bit data words. These data entries 110 are denoted as A0, A1, etc. in FIG. 1A .
- the BCAM also stores a corresponding data signature 210 for the data entries 110 .
- the data signatures 210 are 9-bit Hamming codes (which are error correcting codes), denoted by ECCA0, ECCA1, etc.
- the logic circuitry 150 includes read/write circuitry 160 , a data match module 165 , XOR circuitry 170 (or other compare circuitry), a error correction code priority encoder (ECC PE) 180 , and error correction circuitry 190 (or other data signature circuitry).
- the read/write circuitry 160 reads data from the memory array 100 and writes data to the memory array 100 , via the interface 140 .
- the read/write circuitry 160 may also read and write data not shown in FIG. 1A .
- data entry 110 may be an index to other data words.
- the read/write circuitry 160 may also read and write those other data words.
- the ECC circuitry 190 calculates the corresponding EEC data 210 which is also stored in the memory array. For example, when the 144 bits of row A0 are written to the memory array 100 , the ECC circuitry 190 calculates the 9 bit Hamming code which is written as ECCA0 to the memory array.
- Reading the data stored in data entry 110 would also require one cycle.
- the ECC code 210 can also be checked as part of readout. For example, upon readout of row A0, that data may be checked by the ECC circuitry 190 against ECCA0 to confirm the integrity of the data. If an error is indicated, the ECC circuitry 190 may be able to correct the error (e.g., in the case of 1-bit errors for the Hamming code example) or may simply flag the error for correction elsewhere.
- the content comparison function of the BCAM is performed by the data match module 165 .
- the data match module 165 compares the data entries 110 to an input word.
- the data match module 165 compares an input word to every data entry 110 of the BCAM in parallel and generates a match output for every data entry 110 indicating whether the input word matched the data entry.
- the data signatures 210 can be used to facilitate the real-time detection of errors in the memory array 100 , as shown in FIG. 1B . This might occur, for example, if bits are flipped due to ionizing radiation.
- input word D is received by the BCAM. It is compared 153 to a data entry (A0, for example).
- the data signature for input word D is also calculated 151 and that is compared 155 to the data signature (ECCA0) for the data entry.
- the data match module 165 performs both of these comparisons 153 , 155 .
- the outputs of the two compare operations 153 , 155 are compared 156 by the XOR 170 to determine whether the two match operations 153 , 155 produced the same result.
- Table 1 below is a truth table listing the possible results.
- the ECC PE 180 may determine 158 the address of the mismatch. That is, ECC PE 180 determines the address of A0 so that the possible error can be resolved. In one approach, the address determined by the ECC PE 180 is used to correct 159 the detected error. For example, uncorrupted data may be retrieved from an external data source and reloaded to the data entry 110 . The BCAM content compare can then be run again against the good data entries. Alternately, the ECC circuitry 190 may perform a scrub operation to correct or detect the error.
- data entry A0 may be checked by the ECC circuitry 190 against the corresponding error code ECCA0 to correct and/or identify errors. If the encoding/decoding of error bits takes a long time, this operation may also be pipelined.
- the BCAM can be designed so that flagging 157 a possible error occurs as part of the BCAM content comparison function. In this way, possible errors are flagged early, which leads to earlier correction of those errors. This in turn reduces the delay in completing the BCAM content comparison function.
- the XOR mismatch has two possibilities. In one case, the input data word D matches data entry A0, but the corresponding ECC codes do not match. This is not possible without an error somewhere. If D and A0 are the same, then their ECC codes must also be the same. In the other case, the input data word D does not match data entry A0, but the corresponding ECC codes do match. This is not necessarily an error. It is possible for two different 144-bit words D and A0 to have the same 9-bit ECC code.
- the ECC circuitry 190 may apply the data signature (ECCA0) to the data entry A0 to determine whether the data entry A0 contains an error and/or correct an error present in data entry A0. For instance, if ECC circuitry 190 determines that data entry A0 has a correctable error (e.g., a 1-bit error), ECC circuitry 190 corrects the data entry A0 using the data signature ECCA0.
- a correctable error e.g., a 1-bit error
- ECC circuitry 190 may flag the data entry A0 as containing a non-correctable error or may output an error signal indicating that the data entry A0 has a non-correctable error. Alternatively, ECC circuitry 190 may retrieve the data word that was stored in data entry A0 from an external source.
- a non-correctable error e.g., a 2-bit error
- the TCAM may perform a scrub operation to identify and fix possible single-bit errors that may be present in the TCAM before they become a two-bit error.
- the entries of the BCAM may be divided into multiple segments, as shown in FIG. 2 .
- each data entry is divided into two sub-entries, each associated with its own ECC data.
- the old data entry A0 is divided into sub-entries A0x and A0y.
- the ECC code for A0x is stored as ECCA0x
- the ECC code for A0y is stored as ECCA0y.
- the BCAM is able to correct single bit errors and detect double bit errors in each sub-entry.
- the bits of the data rows and/or sub-entries may be physically placed in locations that reduce the likelihood of double bit errors.
- FIGS. 1-2 use error correction (specifically, Hamming code) as an example, but that is not required. Other error correcting codes that are capable of detecting and/or correcting one or more bit errors may be used.
- the data signatures 210 can be other types of data signatures which do not have error correction features.
- the data signatures 210 could be one-way hashes of the corresponding data entries 110 .
- FIG. 3A is a block diagram of a BCAM with duplicate entries, according to one embodiment of the invention.
- the BCAM of FIG. 3A is similar to the one in FIG. 1A , except that this BCAM does not have ECC circuitry (and does not store signature data 210 ). However, it does store duplicate data entries 120 .
- the duplicate entries are denoted by the ′ symbol. Thus, A0′ is a duplicate entry of A0, A1′ is a duplicate entry of A1, and so on.
- FIG. 3A shows a logical arrangement of the memory array. Different physical layouts are possible.
- the duplicate entry 120 is physically separated from the corresponding base entry 110 by at least a minimum spacing (e.g., separated by at least four data entries).
- the duplicate data entries can be used to facilitate the real-time detection of errors in the memory array 100 , as shown in FIG. 3B . This might occur, for example, if bits are flipped due to ionizing radiation.
- input word D is received by the BCAM. It is compared 353 to a data entry (A0, for example) and also compared 355 to its corresponding duplicate data entry (A0′).
- the outputs of the two compare operations 353 , 355 are compared 356 by the XOR 170 to determine whether the two match operations 353 , 355 produced the same result. Since the data entry 110 and corresponding duplicate data entry 120 should be the same, the outputs of their compare operations to the input word should also be the same. If XOR determines that this is the case, then the BCAM can operate as normal since the data entries are good. Otherwise, if the XOR 170 determines that there is a mismatch between the outputs of the two compare operations, a flag may be set 157 indicating the presence of an error in either the data entry 110 or in the corresponding duplicate data entry 120 . As in FIG. 1A , the ECC PE 180 may determine 158 the address of the inconsistent compare operation result, in order to correct 159 the detected error.
- FIG. 4 is a block diagram of a BCAM that uses both.
- the data entries 110 and their duplicates 120 are stored in the same row.
- a single ECC data 210 is used for both.
- ECCA0 is the 9-bit Hamming code for the 144-bits A0. Since A0′ is a duplicate of A0 (at least initially, upon writing to the BCAM), the same 9-bit ECCA0 is also the Hamming code for A0′.
- A0 and A0′ are treated as a single 288-bit word and ECCA0 is the Hamming code for the 288-bit word.
- Other implementations may use other arrangements of duplicate data entries and/or data signatures internal to the BCAM.
- Certain implementations advantageously enable the real-time detection of errors in entries of a BCAM.
- the use of duplicate data entries 120 allow the detection of errors that otherwise would not be detected in real-time.
- the storage of data signatures 210 within the BCAM enable local correction and/or detection of errors without the need to retrieve the uncorrupted data from an external source.
- the error correction and detection features are self contained in a BCAM module without the need of external modules or components.
- One advantage of implementing the duplicate data entries 120 and/or the ECC data 210 and associated logic circuitry internally to the BCAM is that operations can be done internally within the BCAM, without the overhead of having to cross the interface 140 .
- BCAMs may be provided as macro blocks for inclusion into larger chip designs.
- one company may be designing a chip that requires BCAMs. Instead of designing the BCAMs itself, the company (customer) licenses BCAM macro blocks from an IP vendor.
- the IP vendor may provide a BCAM macro block that already provides for the duplicate data entries 120 and/or the signature data 210 and associated logic circuitry. This will save the customer time because he does not have to design these components or integrate them with a BCAM that does not have them.
- the IP vendor may also be able to come up with better overall designs since he may be able to better integrate the duplicate data entries 120 and/or the signature data 210 with the rest of the BCAM.
- the IP vendor may provide a BCAM compiler to generate the design of a BCAM based on parameters specified by the customer. For instance, the customer may specify the number of bits per word, the number of entries or words in the BCAM, etc. The customer may also specify if error detection and/or correction is desired.
- the memory compiler then generates the data entries 110 , the duplicate data entries 120 and/or the ECC data 210 and associated logic circuitry.
- certain logic components may be implemented as macro blocks, which typically are laid out by hand and provided by the IP vendor.
- Other components may be implemented as a wrapper, which typically is synthesized from RTL and may be provided by either the IP vendor or the customer.
- the read/write circuitry 160 , the data match module 165 , and the XOR 170 may be included as part of a BCAM macro block, while the ECC PE 180 may be included as part of the wrapper.
- the ECC 190 may also be included in the wrapper.
- the read/write circuitry 160 , the data match module 165 , the XOR 170 , the ECC PE 180 , and the ECC 190 are all included in the BCAM macro block.
- the BCAM compiler may generate a single word to store the data entry 110 , 120 and the ECC data 210 . For instance, if the data entry 110 , 120 is 144-bits long, and the ECC data 210 is 9-bits long, the BCAM compiler may generate a 153-bits long row to store both the data entry 110 , 120 and the ECC data 210 .
- the ECC data 210 may be stored in a word that is separate from the data entries 110 , 120 . For instance, two memory arrays, one 144-bits wide and another 9-bits wide may be included to store the data entries 110 , 120 and the ECC data 210 respectively.
- the BCAM compiler may generate a single word to store the data entry 110 , the duplicate data entry 120 , and the ECC data 210 . For instance, if the data entry 110 and duplicate data entry 120 are 144-bits long, and the ECC data 210 is 9-bits long, the BCAM compiler may generate a 297-bits long row to store the data entry 110 , the duplicate data entry 120 , and the ECC data 210 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Computer Security & Cryptography (AREA)
Abstract
Description
TABLE 1 |
Comparison of match outputs |
Content | ECC | ||
match | match | ||
output | output | XOR | Action. Notes. |
1 | 1 | 0 | Normal BCAM operation for content match. |
Input data word D matches data entry A0, and | |||
corresponding ECC codes also match. | |||
0 | 0 | 0 | Normal BCAM operation for content |
mismatch. Input data word D does not match | |||
data entry A0, and corresponding ECC codes | |||
also do not match. | |||
1 | 0 | 1 | Error. Input data word D matches data entry |
A0, but corresponding ECC codes do not | |||
match. | |||
0 | 1 | 1 | Possible Error. Input data word D does not |
match data entry A0, but corresponding ECC | |||
codes do match. | |||
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/502,966 US9529669B2 (en) | 2013-09-30 | 2014-09-30 | Error detection and correction in binary content addressable memory (BCAM) |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361884694P | 2013-09-30 | 2013-09-30 | |
US14/502,966 US9529669B2 (en) | 2013-09-30 | 2014-09-30 | Error detection and correction in binary content addressable memory (BCAM) |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150095740A1 US20150095740A1 (en) | 2015-04-02 |
US9529669B2 true US9529669B2 (en) | 2016-12-27 |
Family
ID=52741403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/502,966 Active 2034-12-16 US9529669B2 (en) | 2013-09-30 | 2014-09-30 | Error detection and correction in binary content addressable memory (BCAM) |
Country Status (1)
Country | Link |
---|---|
US (1) | US9529669B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529669B2 (en) | 2013-09-30 | 2016-12-27 | Esilicon Corporation | Error detection and correction in binary content addressable memory (BCAM) |
US9762261B2 (en) * | 2013-09-30 | 2017-09-12 | Esilicon Corporation | Error detection and correction in ternary content addressable memory (TCAM) |
US11194477B2 (en) * | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
US10884853B2 (en) * | 2019-01-16 | 2021-01-05 | Intel Corporation | Fast search of error correction code (ECC) protected data in a memory |
US11262913B2 (en) * | 2019-03-28 | 2022-03-01 | Intel Corporation | Technologies for efficient stochastic associative search operations with error-correcting code |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030007408A1 (en) * | 2001-02-08 | 2003-01-09 | Integrated Device Technology, Inc. | Cam circuit with error correction |
US7170769B1 (en) | 2005-10-03 | 2007-01-30 | Texas Instruments Incorporated | High performance and reduced area architecture for a fully parallel search of a TCAM cell |
US20070061692A1 (en) | 2005-08-18 | 2007-03-15 | John Wickeraad | Parallel parity checking for content addressable memory and ternary content addressable memory |
US20070061693A1 (en) | 2005-08-26 | 2007-03-15 | John Wickeraad | Parity error checking and compare using shared logic circuitry in a ternary content addressable memory |
US7254748B1 (en) | 2003-10-14 | 2007-08-07 | Netlogic Microsystems, Inc. | Error correcting content addressable memory |
US7257763B1 (en) * | 2001-08-03 | 2007-08-14 | Netlogic Microsystems, Inc. | Content addressable memory with error signaling |
US7260673B1 (en) * | 2001-07-20 | 2007-08-21 | Cisco Technology, Inc. | Method and apparatus for verifying the integrity of a content-addressable memory result |
US7304874B2 (en) | 2005-03-08 | 2007-12-04 | Lsi Corporation | Compact ternary and binary CAM bitcell architecture with no enclosed diffusion areas |
US7570503B1 (en) | 2005-05-20 | 2009-08-04 | Netlogic Microsystems, Inc. | Ternary content addressable memory (TCAM) cells with low signal line numbers |
US20120110411A1 (en) * | 2010-10-29 | 2012-05-03 | Brocade Communications Systems, Inc. | Content Addressable Memory (CAM) Parity And Error Correction Code (ECC) Protection |
US20150095740A1 (en) | 2013-09-30 | 2015-04-02 | Esilicon Corporation | Error Detection and Correction in Binary Content Addressable Memory (BCAM) |
-
2014
- 2014-09-30 US US14/502,966 patent/US9529669B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030007408A1 (en) * | 2001-02-08 | 2003-01-09 | Integrated Device Technology, Inc. | Cam circuit with error correction |
US7260673B1 (en) * | 2001-07-20 | 2007-08-21 | Cisco Technology, Inc. | Method and apparatus for verifying the integrity of a content-addressable memory result |
US7257763B1 (en) * | 2001-08-03 | 2007-08-14 | Netlogic Microsystems, Inc. | Content addressable memory with error signaling |
US7254748B1 (en) | 2003-10-14 | 2007-08-07 | Netlogic Microsystems, Inc. | Error correcting content addressable memory |
US7304874B2 (en) | 2005-03-08 | 2007-12-04 | Lsi Corporation | Compact ternary and binary CAM bitcell architecture with no enclosed diffusion areas |
US7570503B1 (en) | 2005-05-20 | 2009-08-04 | Netlogic Microsystems, Inc. | Ternary content addressable memory (TCAM) cells with low signal line numbers |
US20070061692A1 (en) | 2005-08-18 | 2007-03-15 | John Wickeraad | Parallel parity checking for content addressable memory and ternary content addressable memory |
US20070061693A1 (en) | 2005-08-26 | 2007-03-15 | John Wickeraad | Parity error checking and compare using shared logic circuitry in a ternary content addressable memory |
US7170769B1 (en) | 2005-10-03 | 2007-01-30 | Texas Instruments Incorporated | High performance and reduced area architecture for a fully parallel search of a TCAM cell |
US20120110411A1 (en) * | 2010-10-29 | 2012-05-03 | Brocade Communications Systems, Inc. | Content Addressable Memory (CAM) Parity And Error Correction Code (ECC) Protection |
US20150095740A1 (en) | 2013-09-30 | 2015-04-02 | Esilicon Corporation | Error Detection and Correction in Binary Content Addressable Memory (BCAM) |
Also Published As
Publication number | Publication date |
---|---|
US20150095740A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734106B2 (en) | Memory repair method and apparatus based on error code tracking | |
US9762261B2 (en) | Error detection and correction in ternary content addressable memory (TCAM) | |
US9703633B2 (en) | Circuits, apparatuses, and methods for correcting data errors | |
US5164944A (en) | Method and apparatus for effecting multiple error correction in a computer memory | |
US9529669B2 (en) | Error detection and correction in binary content addressable memory (BCAM) | |
US10795763B2 (en) | Memory system and error correcting method thereof | |
US20080148130A1 (en) | Method and apparatus of cache assisted error detection and correction in memory | |
US6650561B2 (en) | High reliability content-addressable memory using shadow content-addressable memory | |
US8977944B2 (en) | DRAM address protection | |
JP2005202957A (en) | Data partitioning for error correction | |
JPH03248251A (en) | Information processor | |
US10481973B2 (en) | Memory module with dedicated repair devices | |
US9626242B2 (en) | Memory device error history bit | |
US10884853B2 (en) | Fast search of error correction code (ECC) protected data in a memory | |
US7757152B2 (en) | Data corruption scrubbing for content addressable memory and ternary content addressable memory | |
US10817370B2 (en) | Self correcting memory device | |
US11962327B2 (en) | Iterative decoding technique for correcting DRAM device failures | |
US8028221B2 (en) | Error correction and error detection method for reading of stored information data and a storage control unit for the same | |
US10250279B2 (en) | Circuits and methods for writing and reading data | |
US7904789B1 (en) | Techniques for detecting and correcting errors in a memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ESILICON CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZAMPAGLIONE, MICHAEL;WIK, THOMAS;REEL/FRAME:033857/0457 Effective date: 20140929 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: RUNWAY GROWTH CREDIT FUND INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:ESILICON CORPORATION;REEL/FRAME:043334/0521 Effective date: 20170731 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:ESILICON CORPORATION;REEL/FRAME:043669/0832 Effective date: 20170905 |
|
AS | Assignment |
Owner name: ESILICON CORPORATION, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:049558/0449 Effective date: 20190620 |
|
AS | Assignment |
Owner name: SYNOPSYS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ESILICON CORPORATION;REEL/FRAME:051716/0487 Effective date: 20200110 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |