Content Addressable Memory (cam) Patents (Class 711/108)
  • Publication number: 20140122791
    Abstract: An example method includes partitioning a memory element of a router into a plurality of segments having one or more rows, where at least a portion of the one or more rows is encoded with a value mask (VM) list having a plurality of values and masks. The VM list is identified by a label, and the label is mapped to a base row number and a specific number of bits corresponding to the portion encoding the VM list. Another example method includes partitioning a prefix into a plurality of blocks, indexing to a hash table using a value of a specific block, where a bucket of the hash table corresponds to a segment of a ternary content addressable memory of a router, and storing the prefix in a row of the segment.
    Type: Application
    Filed: October 26, 2012
    Publication date: May 1, 2014
    Applicant: CISCO TECHNOLOGY, INC.
    Inventors: John Andrew Fingerhut, Balamurugan Ramaraj
  • Publication number: 20140115249
    Abstract: A thread priority control mechanism is provided which uses the completion event of the preceding transaction to raise the priority of the next transaction in the order of execution when the transaction status has been changed from speculative to non-speculative. In one aspect of the present invention, a thread-level speculation mechanism is provided which has content-addressable memory, an address register and a comparator for recording transaction footprints, and a control logic circuit for supporting memory synchronization instructions. This supports hardware transaction memory in detecting transaction conflicts. This thread-level speculation mechanism includes a priority up bit for recording an attribute operand in a memory synchronization instruction, a means for generating a priority up event when a thread wake-up event has occurred and the priority up bit is 1, and a means for preventing the CAM from storing the load/store address when the instruction is a non-transaction instruction.
    Type: Application
    Filed: October 24, 2013
    Publication date: April 24, 2014
    Applicant: International Business Machines Corporation
    Inventors: Christian Jacobi, Marcel Mitran, Moriyoshi Ohara
  • Publication number: 20140108718
    Abstract: The present invention discloses a method and an apparatus for setting a TCAM entry and relates to the field of communications, which are used to achieve an objective of improving utilization of a TCAM. The method for setting a TCAM entry includes: acquiring a number set formed by values of same fields in preset packets, where the packets are packets on which a same action needs to be performed, and the number set includes at least two numbers; acquiring a longest continuous mask of the number set; obtaining an acquisition result according to the longest continuous mask of the number set; and storing the acquisition result in a ternary content-addressable memory TCAM entry corresponding to the action. The solutions disclosed in the present invention are applicable to a scenario of setting a TCAM entry.
    Type: Application
    Filed: December 18, 2013
    Publication date: April 17, 2014
    Applicant: Huawei Technologies Co., Ltd.
    Inventors: Zhiwei CHEN, Tao CHEN
  • Publication number: 20140108717
    Abstract: A method and system enable tape back-up of objects stored to an object storage platform and also enable efficient backup to a secondary storage device data objects. An offline-replica bit within a metadata of an object being stored is set to a first value, indicating that the stored object is available for secondary storage to a second storage device. In response to receiving a request for backup of one or more objects from the object storage platform: the storage controller: identifies which objects have an offline-replica bit value that is the first value; and provides only those objects requested that have their offline-replica bit value equal to the first value. An external backup tracking mechanism identifies which objects have been backed-up to the secondary storage, and only those objects that have not previously been backed up are backed up during a subsequent backup request.
    Type: Application
    Filed: October 16, 2012
    Publication date: April 17, 2014
    Applicant: DELL PRODUCTS L.P.
    Inventors: Xiaoyang Tian, Srikanth Nandigam, Wendy Chen
  • Patent number: 8694754
    Abstract: A non-volatile solid state memory-based mass storage device having at least one non-volatile memory component and methods of operating the storage device. In one aspect of the invention, the one or more memory components define a memory space partitioned into user memory and over-provisioning pools based on a P/E cycle count stored in a block information record. The storage device transfers the P/E cycle count of erased blocks to a host and the host stores the P/E cycle count in a content addressable memory. During a host write to the storage device, the host issues a low P/E cycle count number as a primary address to the content addressable memory, which returns available block addresses of blocks within the over-provisioning pool as a first dimension in a multidimensional address space. Changed files are preferably updated in append mode and the previous version can be maintained for version control.
    Type: Grant
    Filed: October 3, 2011
    Date of Patent: April 8, 2014
    Assignee: OCZ Technology Group, Inc.
    Inventors: Franz Michael Schuette, William Ward Clawson
  • Publication number: 20140095783
    Abstract: Techniques for reducing a number of physical counters are provided. Logical counters may be associated with physical counters. The number of logical counters may be less than the number of physical counters. It may be determined if an association of a logical counter to a physical counter exists already. If not, a new association may be created. The physical counter associated with the logical counter may then be updated.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Applicant: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
    Inventor: Steven Glen Jorgensen
  • Publication number: 20140095782
    Abstract: Various exemplary embodiments relate to a method and related network node including one or more of the following: determining that a first search value is associated with a first range field; determining a first bitmap associated with the first search value, wherein the first bitmap indicates at least one range encompassing the first search value; generating a search key based on the first bitmap; and accessing the ternary content addressable memory based on the search key.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Inventors: Toby J. Koktan, Andre Poulin, Michel Rochon
  • Publication number: 20140095784
    Abstract: A technique for operating a processor includes translating, using an associated transaction lookaside buffer, a first virtual address into a first physical address through a first entry number in the transaction lookaside buffer. The technique also includes translating, using the transaction lookaside buffer, a second virtual address into a second physical address through a second entry number in the translation lookaside buffer. The technique further includes, in response to the first entry number being the same as the second entry number, determining that the first and second virtual addresses point to the same physical address in memory and reference the same data.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Inventors: Thang M. Tran, Edmund J. Gieske
  • Publication number: 20140095785
    Abstract: A memory architecture power savings system includes a first memory module configured to provide data corresponding to a stored address from among a plurality of stored addresses by comparing the plurality of stored addresses to a search key in response to a control signal. A second memory module is configured to store a plurality of data entries corresponding to truncated portions of the plurality of stored addresses, and to generate the control signal by comparing the plurality of data entries to a truncated portion of the search key.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Applicant: Broadcom Corporation
    Inventor: Bindiganavale NATARAJ
  • Patent number: 8688962
    Abstract: Apparatuses and methods to perform gather instructions are presented. In one embodiment, an apparatus comprises a gather logic module which includes a gather logic unit to identify locality of data elements in response to a gather instruction. The apparatus includes memory comprising a plurality of memory rows including a memory row associated with the gather instruction. The apparatus further includes memory structure to store data element addresses accessed in response to the gather instruction.
    Type: Grant
    Filed: April 1, 2011
    Date of Patent: April 1, 2014
    Assignee: Intel Corporation
    Inventors: Shlomo Raikin, Robert Valentine
  • Patent number: 8688902
    Abstract: A method includes receiving input data comprising a plurality of bits and processing an access control list into an ESOP expression comprising a plurality of product terms. The method also includes storing a plurality of bits associated with the plurality of product terms in a TCAM comprising a plurality of rows and comparing the plurality of bits associated with the input data to the plurality of bits associated with the product terms stored in each row of the plurality of rows, such that each row of the TCAM outputs a plurality of signals, such that each of the plurality of signals indicate a match or no match for each bit stored in the selected row. The method includes receiving the plurality of signals from the plurality of rows by an ESOP evaluator and outputting an address associated with a selected row from the plurality of rows of the TCAM.
    Type: Grant
    Filed: August 6, 2009
    Date of Patent: April 1, 2014
    Assignee: Fujitsu Limited
    Inventors: Stergios Stergiou, Jawahar Jain
  • Patent number: 8688903
    Abstract: An associative list processing unit and method comprising employing a plurality of prioritized cell blocks and permitting inserts to occur in a single clock cycle if all of the cell blocks are not full.
    Type: Grant
    Filed: December 13, 2012
    Date of Patent: April 1, 2014
    Assignee: Sandia Corporation
    Inventors: Karl Scott Hemmert, Keith D. Underwood
  • Publication number: 20140089578
    Abstract: A control unit of a least recently used (LRU) mechanism for a ternary content addressable memory (TCAM) stores counts indicating a time sequence with resources in entries of the TCAM. The control unit receives an access request with a mask defining related resources. The TCAM is searched to find partial matches based on the mask. The control unit increases the counts for entries corresponding to partial matches, preserving an order of the counts. If the control unit also finds an exact match, its count is updated to be greater than the other increased counts. After each access request, the control unit searches the TCAM to find the entry having the lowest count, and writes the resource of that entry to an LRU register. In this manner, the system software can instantly identify the LRU entry by reading the value in the LRU register.
    Type: Application
    Filed: December 2, 2013
    Publication date: March 27, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Noriaki Asamoto
  • Patent number: 8683177
    Abstract: A content addressable memory (CAM) (100) can include a CAM memory array (102) having both a data field (102-0) and a mask field (102-1). A multiplexer (MUX) (108) can selectively load data from either a register (104) or an external data input (106) to one or both fields (102-0 and 102-1) of CAM memory array (102).
    Type: Grant
    Filed: August 28, 2012
    Date of Patent: March 25, 2014
    Assignee: NetLogic Microsystems, Inc.
    Inventor: Scott Smith
  • Publication number: 20140082273
    Abstract: A CAS data storage system replicates data on a non-CAS storage device. The CAS storage device recognizes duplicate data and stores the data only once, whereas the non-CAS device does not recognize duplication of data and requires full storage of the data. The CAS data storage device saves on redundant data transfer by transferring, in the case of duplicate data, the address of a primary location at which the data is stored and the address of the current duplication. The CAS data storage system includes a hash?address table for this purpose. The non-CAS storage device then copies its own data from the primary location into the current location.
    Type: Application
    Filed: September 20, 2012
    Publication date: March 20, 2014
    Applicant: XtremlO Ltd.
    Inventor: Yaron SEGEV
  • Publication number: 20140075108
    Abstract: Various systems and methods for implementing efficient TCAM resource sharing are described herein. Entries are allocated across a plurality of ternary content addressable memories (TCAMs), with the plurality of TCAMs including a primary TCAM and a secondary TCAM, where the entries are allocated by sequentially accessing a plurality of groups of value-mask-result (VMR) entries, with each group having at least one VMR entry associated with the group, and iteratively analyzing the VMR entries associated with each group to determine a result set of VMR entries, with the result set being a subset of VMR entries from the plurality of groups of VMR entries, and the result set to be stored in the primary TCAM.
    Type: Application
    Filed: September 7, 2012
    Publication date: March 13, 2014
    Applicant: Cisco Technology, Inc.
    Inventors: Xuanming Dong, Vijaya Kumar Kulkarni, Cesare Cantú
  • Publication number: 20140068173
    Abstract: A digital system may utilize a serial content-addressable memory (CAM), capable of performing greater than, less than and/or equal comparisons between its contents and serially inputted data records according to a type of each data record, to select software routine addresses and associated parameters. The system may also include a scheduler, which may select one or more available processors to execute the software routines on the data records.
    Type: Application
    Filed: August 28, 2012
    Publication date: March 6, 2014
    Inventor: Laurence H. COOKE
  • Publication number: 20140068175
    Abstract: A method is provided for dispatching a load operation to a processing device and determining that the operation is the oldest load operation. The method also includes executing the operation in response to determining the operation is the oldest load operation. Computer readable storage media for performing the method are also provided. An apparatus is provided that includes a translation look-aside buffer (TLB) content addressable memory (CAM), and includes an oldest operation storage buffer operationally coupled to the TLB CAM. The apparatus also includes an output multiplexor operationally coupled to the TLB CAM and to the oldest operation storage buffer. Computer readable storage media for adapting a fabrication facility to manufacture the apparatus are also provided.
    Type: Application
    Filed: August 30, 2012
    Publication date: March 6, 2014
    Inventors: David Kaplan, John M. King
  • Publication number: 20140068174
    Abstract: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a base address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). A selecting circuit within the TM uses the starting bit position and the mask size to select a first portion of the IV. The first portion of the IV and the base address value are summed to generate a memory address. The memory address is used to read a word containing multiple result values and multiple reference values from memory. A second portion of the IV is compared with each reference value using a comparator circuit. A result value associated with the matching reference value is selected using a multiplexing circuit and a select value generated by the comparator circuit. The TM sends the selected result value to the processor.
    Type: Application
    Filed: August 29, 2012
    Publication date: March 6, 2014
    Applicant: Netronome Systems, Inc.
    Inventor: Gavin J. Stark
  • Publication number: 20140068176
    Abstract: Described embodiments provide a lookup engine that receives lookup requests including a requested key and a speculative add requestor. Iteratively, for each one of the lookup requests, the lookup engine searches each entry of a lookup table for an entry having a key matching the requested key of the lookup request. If the lookup table does not include an entry having a key matching the requested key, the lookup engine sends a miss indication corresponding to the lookup request to the control processor. If the speculative add requestor is set, the lookup engine speculatively adds the requested key to a free entry in the lookup table. Speculatively added keys are searchable in the lookup table for subsequent lookup requests to maintain coherency of the lookup table without creating duplicate key entries, comparing missed keys with each other or stalling the lookup engine to insert missed keys.
    Type: Application
    Filed: August 31, 2012
    Publication date: March 6, 2014
    Inventors: Leonid Baryudin, Earl T. Cohen, Kent Wayne Wendorf
  • Publication number: 20140068177
    Abstract: Methods and structure are provided for representing ports of a Serial Attached SCSI (SAS) expander circuit within routing memory. The SAS expander includes a plurality of PHYs and a routing memory. The routing memory includes entries that each indicate a set of PHYs available for initiating a connection with a SAS address, and also includes an entry that represents a SAS port with a start tag indicating a first PHY of the port and a length tag indicating a number of PHYs in the port. The SAS expander also includes a Content Addressable Memory (CAM) including entries that each associate a SAS address with an entry in the routing memory. Further, the SAS expander includes a controller that receives a request for a SAS address, uses the CAM to determine a corresponding routing memory entry for the requested SAS address, and selects the port indicated by the corresponding routing memory entry.
    Type: Application
    Filed: September 4, 2012
    Publication date: March 6, 2014
    Applicant: LSI CORPORATION
    Inventor: Ramprasad Raghavan
  • Publication number: 20140059289
    Abstract: In one embodiment, multiple content-addressable memory entries are associated with each other to effectively form a batch content-addressable memory entry that spans multiple physical entries of the content-addressable memory device. To match against this content-addressable memory entry, multiple lookup operations are required—i.e., one lookup operation for each combined physical entry. Further, one embodiment provides that a batch content-addressable memory entry can span one, two, three, or more physical content-addressable memory entries, and batch content-addressable memory entries of varying sizes could be programmed into a single content-addressable memory device. Thus, a lookup operation might take two lookup iterations on the physical entries of the content-addressable memory device, with a next lookup operation taking a different number of lookup iterations (e.g., one, three or more).
    Type: Application
    Filed: August 26, 2012
    Publication date: February 27, 2014
    Applicant: Cisco Technology, Inc. a corporation of California
    Inventors: Doron Shoham, Ilan Lisha, Yossi Socoletzky
  • Publication number: 20140059288
    Abstract: In one embodiment, batch entries include multiple content-addressable memory (CAM) entries, and CAM entries are allowed to be shared among different batch entries. For example, two or more batch entries might have a common set of bits (e.g., representing an address, an address prefix, etc.). Rather than consuming bits of multiple CAM entries, a single CAM entry can be programmed with this common information. Other CAM entries associated with different batch entries are programmed with the distinguishing/different values. A batch lookup operation on a batch entry of two or more CAM entries requires multiple lookup operations on the CAM entries. One embodiment uses a batch mask vector to provide information to decode what CAM entries are shared among which batch entries during a series of lookup operations, which can be performed in one or both directions through the CAM entries.
    Type: Application
    Filed: August 26, 2012
    Publication date: February 27, 2014
    Applicant: Cisco Technology, Inc. a corporation of California
    Inventors: Doron Shoham, Shimon Listman
  • Patent number: 8645621
    Abstract: A method of mapping logical block select signals to physical blocks can include receiving at least one signal for each of n+1 logical blocks, where n is an integer greater than one, that each map to one of m+1 physical blocks, where n<m. The method also includes mapping the at least one signal for each logical block to physical block from a corresponding a set of r+1 physical blocks, each set of r+1 physical blocks being different from one another.
    Type: Grant
    Filed: July 23, 2012
    Date of Patent: February 4, 2014
    Assignee: NetLogic Microsystems
    Inventor: Dinesh Maheshwari
  • Patent number: 8645620
    Abstract: An interfacing apparatus and related method is provided for configuring to couple a plurality of memory devices being addressable by means of an address space to a processing unit. In one embodiment, the apparatus comprises a first memory access unit being adapted for receiving a memory address from said processing unit and for accessing said memory devices accordingly based on the address provided. It also comprises a second memory access unit being adapted for receiving content data from the processing unit and for controlling a search or update function accordingly for the received content data in one or more of the memory devices. In addition, an allocation unit is also provided for allocating a first part of the address space of the memory devices to said first memory access unit and allocating a second part of the address space of said memory devices to the second memory access unit, each of the memory access units being assigned to corresponding memory devices of the plurality of memory devices.
    Type: Grant
    Filed: June 23, 2008
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Peter Buchmann, Martin Leo Schmatz, Jan Van Lunteren
  • Patent number: 8645404
    Abstract: A split data word including a portion of each of two word-aligned data words stored at two word-aligned address boundaries within a memory is read from a displaced-read memory address relative to the word-aligned address boundaries within the memory. The portions of each of the two word-aligned data words within the split data word are compared with corresponding portions of a word-aligned search pattern. A determination is made that a potential complete match for the word-aligned search pattern exists within at least one of the two word-aligned data words based upon an identified match of at least one of the portions of the two word-aligned data words within the split data word with a corresponding at least one portion of the word-aligned search pattern.
    Type: Grant
    Filed: October 21, 2011
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: K. S. Sadananda Aithal, Ajay K. Sami
  • Publication number: 20140032831
    Abstract: A control unit of a least recently used (LRU) mechanism for a ternary content addressable memory (TCAM) stores counts indicating a time sequence with resources in entries of the TCAM. The control unit receives an access request with a mask defining related resources. The TCAM is searched to find partial matches based on the mask. The control unit increases the counts for entries corresponding to partial matches, preserving an order of the counts. If the control unit also finds an exact match, its count is updated to be greater than the other increased counts. After each access request, the control unit searches the TCAM to find the entry having the lowest count, and writes the resource of that entry to an LRU register. In this manner, the system software can instantly identify the LRU entry by reading the value in the LRU register.
    Type: Application
    Filed: July 27, 2012
    Publication date: January 30, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Noriaki Asamoto
  • Publication number: 20140032832
    Abstract: An apparatus includes a range determination module that determines a search range of TCAM content values and a search criteria module that creates a TCAM search value from a search range by combining common higher order bits with don't care lower order bits that change within the search range. A match module searches the TCAM using the search value to determine a match count. A division module creates upper and lower sub-ranges by creating upper and lower midpoint content values within the search range. The upper sub-range is between an upper content value and the upper midpoint content value and the lower sub-range is between the lower midpoint content value and a lower content value. The upper midpoint content value includes changing a most significant don't care bit to a 1 and remaining don't care bits to 0. The lower midpoint content value includes changing a most significant don't care bit to 0 and remaining don't care bits to 1.
    Type: Application
    Filed: July 27, 2012
    Publication date: January 30, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Noriaki Asamoto
  • Patent number: 8639875
    Abstract: A CAM-based search engine is disclosed that reduces power consumption during a plurality of different search operations concurrently performed in a plurality of device pipelines by selectively applying one of a number of different power reduction techniques for each pipeline in response to configuration data indicating the type of search operation that is being performed in the pipeline.
    Type: Grant
    Filed: September 6, 2011
    Date of Patent: January 28, 2014
    Assignee: Netlogic Microsystems, Inc.
    Inventor: Cristian Estan
  • Patent number: 8638583
    Abstract: An entry including multiple bits of unit cells each storing data bit is coupled to a match line. The match line is supplied with a charging current having a restricted current value smaller than a match line current flowing in a one-bit miss state in one entry, but larger than a match line current flowing in an all-bit match state in one entry. A precharge voltage level of a match line is restricted to a voltage level of half a power supply voltage or smaller. Power consumption in a search cycle of a content addressable memory can be reduced, and a search operation speed can be increased.
    Type: Grant
    Filed: September 15, 2012
    Date of Patent: January 28, 2014
    Assignee: Renesas Electronics Corporation
    Inventors: Naoya Watanabe, Isamu Hayashi, Teruhiko Amano, Fukashi Morishita, Kenji Yoshinaga, Mihoko Akiyama, Shinya Miyazaki, Masakazu Ishibashi, Katsumi Dosaka
  • Publication number: 20140025883
    Abstract: A method, apparatus, program and system is provided for storing a desired address in a device of a control system in which at least one device of a first type and one or more devices of a second type are connected to one another via a communication medium for the purpose of interchanging data. An index value and a unique address of a device of the second type are associated to one another and stored in the device of the first type. The association can be automatically retrieved when a device of the second type is replaced with a replacement device, and the new address of the replacement device can be automatically determined based on the association.
    Type: Application
    Filed: July 17, 2013
    Publication date: January 23, 2014
    Inventor: Andreas PATZELT
  • Publication number: 20140025881
    Abstract: Associative index extended (AIX) caches can be functionally implemented through a reconfigurable decoder that employs programmable line decoding. The reconfigurable decoder features scalability in the number of lines, the number of index extension bits, and the number of banks. The reconfigurable decoder can switch between pure direct mapped (DM) mode and direct mapped-associative index extended (DM-AIX) mode of operation. For banked configurations, the reconfigurable decoder provides the ability to run some banks in DM mode and some other banks in DM-AIX mode. A cache employing this reconfigurable decoder can provide a comparable level of latency as a DM cache with minimal modifications to a DM cache circuitry of an additional logic circuit on a critical signal path, while providing low power operation at low area overhead with SA cache-like miss rates. Address masking and most-recently-used-save replacement policy can be employed with a single bit overhead per line.
    Type: Application
    Filed: July 17, 2012
    Publication date: January 23, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Rajiv V. Joshi, Ajay N. Bhoj
  • Publication number: 20140025882
    Abstract: There is provided a transmission device including an associative memory in which, when data is specified, contents of the memory are searched for the data and an address of a location in which the data has been found is read out; a detector configured to detect an access rate to the associative memory; an estimation unit configured to estimate a temperature of the associative memory, based on the access rate to the associative memory; a prediction unit configured to predict a time period until the temperature of the associative memory reaches a specified temperature, based on the temperature estimated by the estimation unit; and an access controller configured to control an access to the associative memory, based on the time period predicted by the prediction unit.
    Type: Application
    Filed: May 14, 2013
    Publication date: January 23, 2014
    Applicant: FUJITSU LIMITED
    Inventor: Michio KURAMOTO
  • Patent number: 8635402
    Abstract: A system has a data structure in which a value can be obtained from a key. In a write access, a first pair <Key,Hash(Value)> and a second pair <Hash(Value),Value> are stored respectively in a volatile storage device. The first pair <Key,Hash(Value)> is saved in a nonvolatile storage device before returning a response, and the second pair <Hash(Value),Value> is saved in the first storage device at any time with the second pair saved in the volatile storage device. In a read access in which a value is obtained from a key, it is determined that data is not stored normally if the second pair is not found in processing in which after obtaining the hash value of the value from the first pair, the second pair is read.
    Type: Grant
    Filed: March 31, 2010
    Date of Patent: January 21, 2014
    Assignee: NEC Corporation
    Inventor: Takashi Torii
  • Patent number: 8631209
    Abstract: Techniques are described for using chunk stores as building blocks to construct larger chunk stores. A chunk store constructed of other chunk stores (a composite chunk store) may have any number and type of building block chunk stores. Further, the building block chunk stores within a composite chunk store may be arranged in any manner, resulting in any number of levels within the composite chunk store. The building block chunk stores expose a common interface, and apply the same hash function to content of chunks to produce the access key for the chunks. Because the access key is based on content, all copies of the same chunk will have the same access key, regardless of the chunk store that is managing the copy. In addition, no other chunk will have that same access key.
    Type: Grant
    Filed: January 26, 2012
    Date of Patent: January 14, 2014
    Assignee: upthere, Inc.
    Inventors: Bertrand Serlet, Roger Bodamer
  • Patent number: 8631195
    Abstract: A search system for detecting whether one or more overlapping sequences of input characters match a regular expression including a prefix string preceding an intermediate expression having a quantified number m of characters belonging to a specified character class is disclosed. The search system includes a CAM array for storing the regular expression, a shift register for counting sequences of input characters that match the character class, and a control circuit that enables the shift register in response to a prefix match and increments the shift register in response to character class matches.
    Type: Grant
    Filed: June 3, 2008
    Date of Patent: January 14, 2014
    Assignee: NetLogic Microsystems, Inc.
    Inventors: Sandeep Khanna, Maheshwaran Srinivasan, Mark Birman
  • Patent number: 8626781
    Abstract: A priority hash index provides efficient lookup of posting lists for search query terms. The priority hash index is a data structure in which hash values for terms are distributed across multiple storage devices based on importance of the terms and access speeds of the storage devices. Terms are grouped into search lists with each search list including a storage location on each storage device. When a search query is received, a term is identified and hashed to a location on the first storage device and to generate a unique hash value for the term. The locations on the storage device for the term's search list are sequentially read until the hash value for the term is located to access the posting list for the term.
    Type: Grant
    Filed: December 29, 2010
    Date of Patent: January 7, 2014
    Assignee: Microsoft Corporation
    Inventors: Knut Magne Risvik, Michael Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi, Hui Shen
  • Patent number: 8626688
    Abstract: Provided is a pattern matching device comprising memories. On each of the combinations of the values of an N number (N: a natural number) of pattern detection signals outputted from a circuited NFA (Non-deterministic Finite Automaton), the memories store both identifiers indicating patterns corresponding to effective patterns of the N number of pattern detection signals and flags indicating the definitions of the combinations, individually in addresses set according to the combinations. Further comprised are an address creating unit for determining the address of the memory corresponding to the combination of the values of the pattern detection signals, by using the combination of the values of the pattern detection signals outputted from the circuited NFA, and a read control unit for reading the identifiers and the flags stored in the address from the memories while incrementing the addresses determined by the address creating unit, until the flags take a specific value.
    Type: Grant
    Filed: November 6, 2007
    Date of Patent: January 7, 2014
    Assignee: NEC Corporation
    Inventor: Kiyohisa Ichino
  • Publication number: 20140006706
    Abstract: A method of packet classification implemented by a network router, the method comprising obtaining a packet whose header comprises a plurality of dimensional fields specified by a set of rules, matching one or more bits in at least two of the dimensional fields with a corresponding entry stored in a ternary content-addressable memory (TCAM), generating a hash key based on data associated with the corresponding entry in the TCAM, wherein the associated data is stored in at least one non-TCAM memory, searching, using the hash key, a multi-dimensional trie stored in the at least one non-TCAM memory, and mapping the packet to one or more of the set of rules based on the search.
    Type: Application
    Filed: June 25, 2013
    Publication date: January 2, 2014
    Inventor: Zixiong Wang
  • Patent number: 8619790
    Abstract: Certain embodiments of the invention may be found in a method and system for an adaptive cache for caching context and for adapting to collisions in session lookup table. A network processor chip may comprise an on-chip cache that stores transport control blocks (TCB) from a TCB array in external memory to reduce latency in active transmission control protocol/Internet protocol (TCP/IP) sessions. The on-chip cache may comprise a tag portion implemented using a content addressable memory (CAM) and a data portion implemented using a random access memory (RAM). When a session collision occurs the context of a subsequent network connection may be stored in a data overflow portion of an overflow table in the on-chip cache. A search key associated with the subsequent network connection that comprises network connection parameters may be stored in a tag overflow portion of the overflow table.
    Type: Grant
    Filed: September 16, 2005
    Date of Patent: December 31, 2013
    Assignee: Broadcom Corporation
    Inventor: Fong Pong
  • Patent number: 8621326
    Abstract: An error correction circuit 1 in accordance with an aspect of the invention includes an associative memory 20, a logic circuit 10 disposed in parallel with the associative memory 20, and selection unit 30 that receives an output signal from the associative memory 20 and an output signal from the logic circuit 10 as an input. The associative memory 20 includes a table that handles an input signal as a word and holds an output signal related to the word and an error correction code used to correct the output signal as data. The associative memory 20 further includes error correction unit that outputs a signal in which an error was corrected based on data related to a word corresponding to an input signal. The selection unit 30 selects and outputs one of an output signal from the associative memory 20 and an output signal from the logic circuit 10.
    Type: Grant
    Filed: June 29, 2010
    Date of Patent: December 31, 2013
    Assignee: NEC Corporation
    Inventor: Shusaku Uchibori
  • Publication number: 20130339597
    Abstract: Embodiments of a Content Addressable Memory (CAM) enabling high-speed search and invalidate operations and methods of operation thereof are disclosed. In one embodiment, the CAM includes a CAM cell array including a number of CAM cells and a valid bit cell configured to generate a match indicator, and blocking circuitry configured to block an output of the valid bit cell from altering the match indicator during an invalidate process of a search and invalidate operation. Preferably, the output of the valid bit cell is blocked from affecting the match indicator for the CAM cell array beginning at a start of the invalidate process and continuing until an end of the search and invalidate operation.
    Type: Application
    Filed: August 19, 2013
    Publication date: December 19, 2013
    Applicant: QUALCOMM Incorporated
    Inventors: Manju Rathna Varma, David Paul Hoff, Jason Philip Martzloff
  • Publication number: 20130339596
    Abstract: Embodiments of the disclosure include selectively powering up a cache set of a multi-set associative cache by receiving an instruction fetch address and determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory. Based on determining that the instruction fetch address corresponds to one of a plurality of entries of a content addressable memory a cache set of the multi-set associative cache that contains a cache line referenced by the instruction fetch address is identified and only powering up a subset of cache. Based on the identified cache set not being powered up, selectively powering up the identified cache set of the multi-set associative cache and transmitting one or more instructions stored in the cache line referenced by the instruction fetch address to a processor.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Brian R. Prasky, Anthony Saporito, Aaron Tsai
  • Patent number: 8612673
    Abstract: Improved memory management is provided according to a Hierarchical Immutable Content Addressable Memory Processor (HICAMP) architecture. In HICAMP, physical memory is organized as two or more physical memory blocks, each physical memory block having a fixed storage capacity. An indication of which of the physical memory blocks is active at any point in time is provided. A memory controller provides a non-duplicating write capability, where data to be written to the physical memory is compared to contents of all active physical memory blocks at the time of writing, to ensure that no two active memory blocks have the same data after completion of the non-duplicating write.
    Type: Grant
    Filed: June 26, 2012
    Date of Patent: December 17, 2013
    Assignee: Hicamp Systems, Inc.
    Inventor: David R. Cheriton
  • Publication number: 20130332671
    Abstract: A system including an associative memory including a plurality of data and a plurality of associations among the plurality of data. The plurality of data is collected into associated groups. The associative memory is configured to be queried based on at least indirect relationships among the plurality of data. The system also includes an input device in communication with the associative memory, the input device configured to receive an input criteria. The system also includes an optimizer in communication with the input device and the associative memory. The optimizer is configured to generate, using the associative memory, a multi-dimensional criteria file from the input criteria. The optimizer converts the input criteria to numerical representations associated with expert weights and generates the multi-dimensional criteria file to include an optimized plurality of criteria relevant to the input criteria.
    Type: Application
    Filed: June 12, 2012
    Publication date: December 12, 2013
    Applicant: THE BOEING COMPANY
    Inventor: John Whelan
  • Publication number: 20130332672
    Abstract: Embodiments of the invention relate to process identifier (PID) based cache information transfer. An aspect of the invention includes sending, by a first core of a processor, a PID associated with a cache miss in a first local cache of the first core to a second cache of the processor. Another aspect of the invention includes determining that the PID associated with the cache miss is listed in a PID table of the second cache. Yet another aspect of the invention includes based on the PID being listed in the PID table of the second cache, determining a plurality of entries in a cache directory of the second cache that are associated with the PID. Yet another aspect of the invention includes pushing cache information associated with each of the determined plurality of entries in the cache directory from the second cache to the first local cache.
    Type: Application
    Filed: March 4, 2013
    Publication date: December 12, 2013
    Applicant: International Business Machines Corporation
    Inventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, Brian R. Prasky, Chung-Lung K. Shum
  • Publication number: 20130332670
    Abstract: Embodiments of the invention relate to process identifier (PID) based cache information transfer. An aspect of the invention includes sending, by a first core of a processor, a PID associated with a cache miss in a first local cache of the first core to a second cache of the processor. Another aspect of the invention includes determining that the PID associated with the cache miss is listed in a PID table of the second cache. Yet another aspect of the invention includes based on the PID being listed in the PID table of the second cache, determining a plurality of entries in a cache directory of the second cache that are associated with the PID. Yet another aspect of the invention includes pushing cache information associated with each of the determined plurality of entries in the cache directory from the second cache to the first local cache.
    Type: Application
    Filed: June 11, 2012
    Publication date: December 12, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES INCORPORATED
    Inventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, Brian R. Prasky, Chung-Lung K. Shum
  • Publication number: 20130326111
    Abstract: Circuits and methods for performing search operations in a content addressable memory (CAM) array are provided. A system for searching a CAM includes a circuit that selectively activates a main-search of a two stage CAM search while a pre-search of the two stage CAM search is still active.
    Type: Application
    Filed: May 29, 2012
    Publication date: December 5, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Igor ARSOVSKI, Daniel A. DOBSON, Travis R. HEBIG, Reid A. WISTORT
  • Publication number: 20130326133
    Abstract: The present disclosure relates to a local caching device, system and method for providing a content caching service. The local caching device receives, from a content provider, at least one part of content requested by a user terminal and then, based on the received part of the requested content, determines whether the requested content is stored in a storage unit. If the requested content is stored, the local caching device registers flow information of the requested content in the storage unit. When content having the same flow information as the registered flow information is requested, the local caching device determines based on content address information whether the requested content is stored.
    Type: Application
    Filed: June 3, 2013
    Publication date: December 5, 2013
    Inventors: Jong Min LEE, Kyung Jun LEE, A Rum KWON, Young Jae SHIM
  • Patent number: 8601205
    Abstract: A Dynamic Random Access Memory (DRAM) controller. The DRAM controller includes receiving a plurality of access requests from a plurality of user interfaces to access one or more DRAM devices. Further, the DRAM controller includes storing the plurality of access requests in a Content Addressable Memory (CAM). Furthermore, the DRAM controller includes updating at least one access request of the plurality of access requests to a Next Access Table. In addition, the DRAM controller includes determining at least one paramount access request of the plurality of access requests by a CAM based decision controller for employing a bypass operation in the CAM based decision controller, based on a plurality of pre-defined conditions. Further, the DRAM controller includes issuing the plurality of access requests to the one or more DRAM devices.
    Type: Grant
    Filed: December 31, 2008
    Date of Patent: December 3, 2013
    Assignee: Synopsys, Inc.
    Inventors: Raghavan Menon, Raj Mahajan