IP Library › Granted Patent US 9,177,646
Granted Patent B2
US 9,177,646 · App. 13/888,108 · Granted Nov 3, 2015

Implementing computational memory from content-addressable memory

Inventor: Igor Arsovski (Williston, VT)
Assignee: International Business Machines Corporation
G11C15/04G06F17/30982G11C11/5642G11C15/043G06F11/1064G06F12/1027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,177,646
App. No.
13/888,108
Granted
Nov 3, 2015
Kind
B2
Abstract

A content-addressable memory (CAM) with computational capability is described. The CAM includes an array of CAM cells arranged in rows and columns with a pair of search lines associated with each column of the array and a match line associated with each row of the array. The array of CAM cells is configured to implement, for a given cycle, either a read operation of data contained in a single selected column, or one of a plurality of different bitwise logical operations on data contained in multiple selected columns. All of the pairs of search lines in the columns of the array are configured to a certain state to implement the read operation or one of the plurality of different bitwise logical operations. A result of the read operation or one of the plurality of different bitwise logical operations is outputted onto all of the match lines in the array.

Claims (39)

1. A computational memory device, comprising:

an array of content addressable memory (CAM) cells arranged in rows and columns;

a pair of search lines associated with each column of the array; and

a match line associated with each row of the array;

wherein the array is configured to implement, for a given cycle, either a read operation of data contained in a single selected column, or one of a plurality of different bitwise logical operations on data contained in multiple selected columns, all of the pairs of search lines in the columns of the array configured to a certain state to implement the read operation or the one of the plurality of different bitwise logical operations, a result of the read operation or the one of the plurality of different bitwise logical operations outputted onto all of the match lines in the array, wherein the configuring comprises a data bit and a bit enable assignable to each pair of search lines associated with the columns in the array of the CAM, the data bit determining whether each search line in the pair of search lines is activated or deactivated, and the bit enable determining whether the column in the array of the CAM is masked from performing the read operation or the one of the plurality of different bitwise operations.

2. The computational memory device of claim 1 , wherein the plurality of different bitwise logical operations implementable by the array for a given cycle include OR operations, NAND operations, and combinations thereof.

3. The computational memory device according to claim 2 , wherein for the OR operation of data contained in multiple selected columns in the array of the CAM cells, a first search line of each of the multiple selected columns is activated, a second search line of each of the multiple selected columns is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

4. The computational memory device according to claim 2 , wherein for the NAND operation of data contained in multiple selected columns in the array of the CAM cells, the second search line of each of the multiple selected columns is activated, the first search line of each of the multiple selected columns is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

5. The computational memory device according to claim 2 , wherein for the combination of OR and NAND operations of data contained in multiple selected columns in the array of the CAM cells, either the first search line or the second search line of each of the multiple selected columns is activated, and the first and second search lines of all other non-selected columns are deactivated.

6. The computational memory device according to claim 1 , wherein for the read operation of data contained in a single selected column in the array of the CAM cells, a first search line of the selected column is activated, a second search line of the selected column is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

7. The computational memory device according to claim 1 , wherein each of the CAM cells comprise:

a pair of SRAM storage elements each configured to store a data bit therein;

a first NFET stack associated with one of the SRAM storage elements in the pair of SRAM storage elements and one of the search lines in the pair of search lines corresponding to the column of the cell in the array; and

a second NFET stack associated with another of the SRAM storage elements in the pair of SRAM storage elements and another of the search lines in the pair of search lines corresponding to the column of the cell in the array;

wherein both the first and second NFET stacks are configured to discharge a precharged match line associated with a corresponding row of the cell in the array, depending upon a state of the associated match line and data in the SRAM storage elements.

8. The computational memory device according to claim 1 , wherein CAM cells in some of the rows and columns of the array are arranged with don't care bits.

9. A system, comprising:

a computational memory including an array of ternary content addressable memory (TCAM) cells arranged in rows and columns, a pair of search lines associated with each column of the array, a match line associated with each row of the array; and

a search line controller, operatively coupled to the computational memory, that is configured to provide an instruction code set to the array that selectively activates certain search lines in the array to perform a read operation of data contained in a single column in the array or one of a plurality of different bitwise logical operations between data in different columns of the array, wherein the instruction code set comprises a data bit and a bit enable assignable to each pair of search lines associated with the columns in the array of the TCAM, the data bit determining whether each search line in the pair of search lines is activated or deactivated, and the bit enable determining whether the column in the array of the TCAM is masked from performing the read operation or the one of the plurality of different bitwise operations.

10. The system according to claim 9 , wherein a result of the read operation or the plurality of different bitwise logical operations is outputted onto all of the match lines in the array of the TCAM.

11. The system according to claim 9 , wherein each of the TCAM cells comprise:

a pair of SRAM storage elements each configured to store a data bit therein;

a first NFET stack associated with one of the SRAM storage elements in the pair of SRAM storage elements and one of the search lines in the pair of search lines corresponding to the column of the cell in the array; and

a second NFET stack associated with another of the SRAM storage elements in the pair of SRAM storage elements and another of the search lines in the pair of search lines corresponding to the column of the cell in the array;

wherein both the first and second NFET stacks are configured to discharge a precharged match line associated with a corresponding row of the cell in the array, depending upon a state of the associated match line and data in the SRAM storage elements.

12. A method, comprising:

obtaining a matrix of data;

transposing the matrix of data;

writing the transposed matrix of data into a ternary content addressable memory (TCAM) having a plurality of TCAM cells arranged in an array of rows and columns, a pair of search lines associated with each column in the array, and a match line associated with each row of the array; and

selectively activating certain search lines in the array of the TCAM to perform a read operation of data contained in a single column in the array or one of a plurality of different bitwise logical operations between data in different columns in the array, wherein the selectively activating comprises a data bit and a bit enable assignable to each pair of search lines associated with the columns in the array of the TCAM, the data bit determining whether each search line in the pair of search lines is activated or deactivated, and the bit enable determining whether the column in the array of the TCAM is masked from performing the read operation.

13. The method according to claim 12 , wherein the transposing of the matrix of data and the writing of the transposed matrix of data into the TCAM comprises:

loading the matrix of data into a first TCAM having a plurality of TCAM cells arranged in an array of rows and columns, each row of the matrix of data loaded into a row of the first TCAM; and

transferring data in the rows and columns of the first TCAM to a second TCAM having a plurality of TCAM cells arranged in an array of rows and columns, the data transferred by reading data in the columns of the first TCAM and writing the data in the columns of the first TCAM into the rows of the second TCAM, each column of data in the first TCAM loaded into the rows of the second TCAM, effectively transposing the matrix of data.

14. The method according to claim 12 , further comprising assigning TCAM cells in rows and columns of the array in the TCAM that are empty after writing the transposed matrix of data into the TCAM with don't care bits.

15. The method according to claim 12 , wherein the plurality of different bitwise logical operations implementable by selectively activating certain search lines in the array of the TCAM include OR operations, NAND operations, and combinations thereof.

16. The method according to claim 15 , wherein for the OR operation of data contained in multiple selected columns in the array of the TCAM, a first search line of each of the multiple selected columns is activated, a second search line of each of the multiple selected columns is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

17. The method according to claim 15 , wherein for the NAND operation of data contained in multiple selected columns in the array of the TCAM, the second search line of each of the multiple selected columns is activated, the first search line of each of the multiple selected columns is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

18. The method according to claim 15 , wherein for the combination of OR and NAND operations of data contained in multiple selected columns in the array of the TCAM, either the first search line or the second search line of each of the multiple selected columns is activated, and the first and second search lines of all other non-selected columns are deactivated.

19. The method according to claim 15 , wherein for the read operation of data contained in a single selected column in the array of the TCAM, a first search line of the selected column is activated, a second search line of the selected column is deactivated, and the first and second search lines of all other non-selected columns are deactivated.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: GLOBALFOUNDRIES U.S. INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051070/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2019
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 050122/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2013
From: ARSOVSKI, IGOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030362/0268 →
Continuity (1)
Related Publication 20140328103A1 · Nov 6, 2014