Content-Addressable Memory Keyword Search Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing semiconductor devices face a trade-off between increasing search throughput and increasing memory capacity, manufacturing cost, footprint, and power consumption when using content-addressable memory for high-speed keyword searches.

Innovation Solution

A semiconductor device configuration that includes a first content-addressable memory for partial keyword searches and a second content-addressable memory for full-text searches, allowing for efficient keyword detection with reduced overall memory capacity and power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of bytes to be shifted is increased to achieve higher search throughput, then search speed is improved, but memory capacity, manufacturing cost, footprint, and power consumption increase

Engineering Contradiction:
Improvesearch throughputVSAvoidmemory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the keyword search function into two separate content-addressable memories: one storing the full keyword and another storing shifted versions of the keyword. This segmentation allows the system to perform parallel searches at multiple shift positions simultaneously, achieving high search throughput without requiring a single large-capacity memory to store all possible shifted versions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial action by storing only the necessary number of shifted keyword versions in the second content-addressable memory, rather than storing all possible shifts. The control circuit selectively activates searches based on the input data, performing only the necessary comparisons needed to find the keyword, thus reducing the effective memory capacity required while maintaining high search throughput.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If the memory capacity of content-addressable memory is increased to enable higher search throughput, then search speed is improved, but manufacturing cost increases

Engineering Contradiction:
Improvesearch throughputVSAvoidmanufacturing cost
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent segments the memory storage function into two separate content-addressable memories with specialized roles. The first CAM stores the complete keyword, while the second CAM stores only the shifted versions. This segmentation reduces the total memory capacity required compared to a single large CAM that would need to store all possible shifted versions, thereby reducing manufacturing cost while maintaining high search throughput.

Inventive Principle:
Principle #1Segmentation

3Productivity

If the memory capacity of content-addressable memory is increased to enable higher search throughput, then search speed is improved, but power consumption increases

Engineering Contradiction:
Improvesearch throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent divides the search function into two separate content-addressable memories, each performing a specific search task. This segmentation allows the system to distribute the search workload and reduce the memory capacity required in each unit, thereby reducing overall power consumption while maintaining high search throughput through parallel operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs partial searches by only activating the second CAM for shifted keyword comparisons when needed, rather than continuously powering all memory operations. The control circuit selectively enables search operations based on the input data requirements, reducing power consumption while maintaining high search throughput when actually performing searches.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If the memory capacity of content-addressable memory is increased to enable higher search throughput, then search speed is improved, but footprint increases

Engineering Contradiction:
Improvesearch throughputVSAvoidfootprint
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent segments the memory storage into two separate content-addressable memories with specialized functions. The first CAM stores the complete keyword, and the second CAM stores shifted versions. This segmentation reduces the total memory capacity required compared to a single large CAM, thereby reducing the chip footprint while maintaining high search throughput through parallel search operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10121541B2Semiconductor device and information processing system
Publication Date: 2018.11.06 RENESAS ELECTRONICS CORP
  • US10121541B2 patent drawing
  • US10121541B2 patent drawing
  • US10121541B2 patent drawing

AI summary

The present invention makes it possible to form a circuit configuration that is capable of executing a keyword search at an increased speed while suppressing an increase in the memory capacity of a content-addressable memory. A semiconductor device according to an aspect of the present invention searches an input data string for a predesignated keyword, and includes a first content-addressable memory that stores a partial keyword corresponding to a predetermined number of data beginning with the first data of the keyword, a second content-addressable memory that stores the entirety of the keyword, and a control circuit that is coupled to the first content-addressable memory and to the second content-addressable memory. When a portion matching the partial keyword is detected in the input data string by a search in the first content-addressable memory, the second content-addressable memory executes a search on search data extracted from the input data string.