JP4934825B2 - 連想メモリ - Google Patents
連想メモリ Download PDFInfo
- Publication number
- JP4934825B2 JP4934825B2 JP2008510867A JP2008510867A JP4934825B2 JP 4934825 B2 JP4934825 B2 JP 4934825B2 JP 2008510867 A JP2008510867 A JP 2008510867A JP 2008510867 A JP2008510867 A JP 2008510867A JP 4934825 B2 JP4934825 B2 JP 4934825B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- cam
- output
- value
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Landscapes
- Memory System (AREA)
- Semiconductor Memories (AREA)
Description
n入力で登録データ数pのBCAMテーブルは、p個の異なる2値ベクトルを格納する。また、p個のベクトルは、アドレス1からアドレスpに順に格納されていると仮定する。また、各ベクトルのアドレスはmビットで表現可能である。mは次式(1)により表される。
f(x)は入力xと同じベクトルがBCAMテーブル中にあるとき、ベクトルxを格納するCAMのアドレス(1からpの値の何れか)を出力する。入力xと同じパターンがBCAMテーブル中に無い場合には、f(x)の値は0である。
(定義終り)
(表1)は、7個の2値ベクトルを格納するBCAMを示す。対応するBCAM関数を(表2)に示す。何れも、入力データに完全に一致したベクトルを格納するアドレスを3ビットの数(例えば、‘011’)として出力する。入力ベクトルと一致するものがBCAM中に格納されていない場合には、0を出力する。
(例終わり)
n入力で要素数pのTCAMテーブルは、p個の3値ベクトルを格納する。また、p個のベクトルは、アドレス1からアドレスpに順に格納されていると仮定する。また、各ベクトルのアドレスはmビットで表現可能である。ここで、mは上記式(1)により表される。各3値ベクトルは、0,1,又は*(ドント・ケア)から構成される。対応するTCAM関数:f:{0,1}n→{0,1}mは、以下の条件を満たす:
入力xに対して、xと一致するベクトルがTCAMテーブル中にある場合、出力f(x)は、一致したベクトル中の最小のアドレスを示す。また、xと一致するベクトルがTCAMテーブル中に無い場合には、0を出力する。
(定義終り)
(表3)に示すTCAMは、7個の3値ベクトルを格納する。対応するTCAM関数を(表4)に示す。入力x=(1,0,1,1)は、アドレス5及び6に蓄えられているパターンと一致する。5の方が小さいので、出力は(0,1,0,1)となる。
(例終わり)
〔定義3〕(分解表、基本分解表、列複雑度)
関数f(X) : Bn→Bq、及びX=(x1,x2,…,xn)が与えられているものとする。ここで、B={0,1}である。(XL, XH)をXの分割とする。fの「分解表」とは、二次元のマトリックスであって、列のラベルは、XLにBの構成要素をすべての可能な組み合わせに対して割り当てたものであり、また行のラベルは、XHにBの構成要素をすべての可能な組み合わせに対して割り当てたものである。また、対応するマトリックスの値はf(XL,XH)の値に等しい。
関数fの分解表のうちで、XL=(x1, x2, …, xnL)且つXH=(xnL+1, xnL+2, …, xn)となる分解表を「基本分解表」という。
分解表の異なる列パターンの個数を分解表の「列複雑度」という。
尚、分解表の特別な場合として、XL=Xの場合も考える。
(定義終り)
変数の順序を(x1,x2,…,xn)としたとき、論理関数fの基本分解表の列複雑度の最大値を、fの「C尺度」という。
(定義終り)
f1=x1x2∨x3x4∨x5x6のC尺度は3であるが、f2=x1x5∨x2x6∨x3x4のC尺度は8である。
(例終わり)
与えられた関数fに対して、非零出力を生ずる入力の組み合わせの個数をpとする。このとき、fのC尺度は高々p+1である。
(補題終り)
要素数pのBCAMテーブルが与えられたとき、そのBCAM関数のC尺度は高々p+1である。
(定理終り)
TCAMテーブルがp個のベクトルを格納し、各ベクトルが高々k個のドント・ケアを有するとき、対応するTCAM関数のC尺度は高々2kp+1である。
(定理終り)
CAM関数は通常のRAMでも実現可能である。例えば、上記(表1)に示した要素7のBCAM関数は、(表2)に示したように、16ワードのRAMにより実現することができる。ここで、各ワードは3ビットである。n入力のCAM関数を単一のRAMで実現する場合、RAMの大きさは、BCAMがわずか数個のベクトルしか含まない場合であっても、2nに比例して大きくなる。そこで、LUTカスケードを用いることにより、必要なメモリ量を大幅に削減することが可能となる(特許文献3参照)。
与えられた関数fに対して、XLを分解表の列に対応する変数、XHを行に対応する変数とし、μを分解表の列複雑度とする。このとき、関数fは図1に示すような回路で実現することが可能である。この場合、二つのブロックHとGの間を結ぶ信号線数(以下「レイル数」という。)は
C尺度がμの論理関数は、入力数が高々
関数fを実現するLUTカスケードを考える。いま、nを外部入力変数、sをセル数、rを最大レイル数(即ち、セル間の信号線数)、kをセルの最大入力数、μを関数fのC尺度とする。
〔3−1〕BCAM関数の設計法
BCAM関数では、真理値表において、非零出力の値が、全体の組み合わせの数2nに比べて大幅に少ない。つまり、次の(仮定1)が成立するものとする。
(1)fをBCAM関数とする。また、fにおいてCAMに登録されていないデータに対する出力値をドント・ケアとした関数をgとする。
(アルゴリズム終り)
TCAM関数の場合、TCAMテーブルは3値となるので、補助メモリ2は、m入力2n出力となる。また、一致回路3で、ドント・ケアに対応するビットは無視する。他の部分はBCAMと同じである。
本発明に係る連想メモリの構成は、入力データに対しそのデータに対応する固有のインデックスを出力する連想記憶メモリであって、
入力データに対しそのデータに対応する固有のインデックスを出力する関数(以下「CAM(Content Addressable Memory)関数」という。)fの無効出力値をドント・ケアで置き換えた関数(以下「簡略化CAM関数(reduced Content Addressable Memory function)」という。)gを表すLUT結合論理回路又はPLA(Programmable Logic Array)により構成された簡略化関数演算部と、
前記CAM関数fの逆関数f−1が記憶された補助メモリと、
前記簡略化関数演算部の出力値が、前記入力データに対するCAM関数fの出力に一致するか否かを判定し、一致する場合には前記簡略化関数演算部の出力値を出力し、それ以外の場合は無効信号を出力する一致判定手段と、
を備え、
前記簡略化関数演算部は、前記入力データに対して前記簡略化CAM関数gの演算値(以下「仮インデックス値」という。)を前記補助メモリの読み出しアドレスとして出力し、
前記補助メモリは、前記仮インデックス値が読み出しアドレスとして入力されると、その仮インデックス値に対しする逆関数f−1の値を出力し、
前記一致判定手段は、前記入力データと前記補助メモリが出力する逆関数f−1の値とを比較して、両者が一致する場合は前記簡略化関数演算部の出力値を出力し、それ以外の場合は無効信号を出力することを特徴とする。
2 補助メモリ
3 一致回路
4 エンコーダ
5 簡略化関数演算部
6 補助メモリ
7 一致判定手段
10 連想メモリ
11 入力変数レジスタ
12−1〜12−s 論理関数メモリ
13 出力変数レジスタ
21 EXNORゲート
22 ANDゲート
23 ANDゲート
31 pq素子
Claims (3)
- 入力データに対しそのデータに対応する固有のインデックスを出力する連想記憶メモリであって、
入力データに対しそのデータに対応する固有のインデックスを出力する関数(以下「CAM(Content Addressable Memory)関数」という。)fの無効出力値をドント・ケアで置き換えた関数(以下「簡略化CAM関数」という。)gを表すLUT結合論理回路又はPLAにより構成された簡略化関数演算部と、
前記CAM関数fの逆関数f−1が記憶された補助メモリと、
前記簡略化関数演算部の出力値が、前記入力データに対するCAM関数fの出力に一致するか否かを判定し、一致する場合には前記簡略化関数演算部の出力値を出力し、それ以外の場合は無効信号を出力する一致判定手段と、
を備え、
前記簡略化関数演算部は、前記入力データに対して前記簡略化CAM関数gの演算値(以下「仮インデックス値」という。)を前記補助メモリの読み出しアドレスとして出力し、
前記補助メモリは、前記仮インデックス値が読み出しアドレスとして入力されると、その仮インデックス値に対しする逆関数f−1の値を出力し、
前記一致判定手段は、前記入力データと前記補助メモリが出力する逆関数f−1の値とを比較して、両者が一致する場合は前記簡略化関数演算部の出力値を出力し、それ以外の場合は無効信号を出力すること
を特徴とする連想メモリ。 - 前記LUT結合論理回路は、LUTカスケード論理回路であることを特徴とする請求項1記載の連想メモリ。
- 前記LUT結合論理回路は、pq回路網であることを特徴とする請求項1記載の連想メモリ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008510867A JP4934825B2 (ja) | 2006-03-31 | 2007-03-27 | 連想メモリ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006101106 | 2006-03-31 | ||
JP2006101106 | 2006-03-31 | ||
JP2008510867A JP4934825B2 (ja) | 2006-03-31 | 2007-03-27 | 連想メモリ |
PCT/JP2007/056498 WO2007119540A1 (ja) | 2006-03-31 | 2007-03-27 | 連想メモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007119540A1 JPWO2007119540A1 (ja) | 2009-08-27 |
JP4934825B2 true JP4934825B2 (ja) | 2012-05-23 |
Family
ID=38609318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008510867A Active JP4934825B2 (ja) | 2006-03-31 | 2007-03-27 | 連想メモリ |
Country Status (3)
Country | Link |
---|---|
US (1) | US8352677B2 (ja) |
JP (1) | JP4934825B2 (ja) |
WO (1) | WO2007119540A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10523566B2 (en) | 2015-08-18 | 2019-12-31 | Poco-Apoco Networks Co., Ltd. | Memory device |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430735B1 (en) | 2012-02-23 | 2016-08-30 | Micron Technology, Inc. | Neural network in a memory device |
EP3160122A4 (en) * | 2014-06-20 | 2018-04-11 | SZ Zunzheng Digital Video Co., Ltd | Toning monitor, toning system and toning method |
JP6229990B2 (ja) * | 2014-08-21 | 2017-11-15 | 学校法人明治大学 | 連想記憶装置、インデックス生成器、及び登録情報更新方法 |
US11232038B2 (en) | 2019-06-05 | 2022-01-25 | Samsung Electronics Co., Ltd. | Ternary content addressable memory and operating method thereof |
CN113378009B (zh) * | 2021-06-03 | 2023-12-01 | 上海科技大学 | 基于二元决策图的二值神经网络定量分析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105770A (ja) * | 1998-09-28 | 2000-04-11 | Matsushita Electric Ind Co Ltd | ハッシュテーブル検索方法および装置 |
JP2002334114A (ja) * | 2001-05-10 | 2002-11-22 | Allied Tereshisu Kk | テーブル管理方法及び装置 |
JP2004229163A (ja) * | 2003-01-27 | 2004-08-12 | Internatl Business Mach Corp <Ibm> | 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004258799A (ja) | 2003-02-24 | 2004-09-16 | Kitakyushu Foundation For The Advancement Of Industry Science & Technology | ルックアップテーブル・カスケード論理回路 |
JP2004295967A (ja) | 2003-03-26 | 2004-10-21 | Kawasaki Microelectronics Kk | 連想メモリ |
US7243290B2 (en) * | 2003-07-11 | 2007-07-10 | Micron Technology, Inc. | Data encoding for fast CAM and TCAM access times |
KR100651743B1 (ko) * | 2005-10-26 | 2006-12-01 | 한국전자통신연구원 | Tcam 엔트리 생성 및 검색 방법과 그 장치 |
-
2007
- 2007-03-27 WO PCT/JP2007/056498 patent/WO2007119540A1/ja active Application Filing
- 2007-03-27 US US12/294,786 patent/US8352677B2/en not_active Expired - Fee Related
- 2007-03-27 JP JP2008510867A patent/JP4934825B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105770A (ja) * | 1998-09-28 | 2000-04-11 | Matsushita Electric Ind Co Ltd | ハッシュテーブル検索方法および装置 |
JP2002334114A (ja) * | 2001-05-10 | 2002-11-22 | Allied Tereshisu Kk | テーブル管理方法及び装置 |
JP2004229163A (ja) * | 2003-01-27 | 2004-08-12 | Internatl Business Mach Corp <Ibm> | 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10523566B2 (en) | 2015-08-18 | 2019-12-31 | Poco-Apoco Networks Co., Ltd. | Memory device |
Also Published As
Publication number | Publication date |
---|---|
US8352677B2 (en) | 2013-01-08 |
JPWO2007119540A1 (ja) | 2009-08-27 |
US20100228911A1 (en) | 2010-09-09 |
WO2007119540A1 (ja) | 2007-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4934825B2 (ja) | 連想メモリ | |
Sim et al. | Scalable stochastic-computing accelerator for convolutional neural networks | |
Maurya et al. | A dynamic longest prefix matching content addressable memory for IP routing | |
Jarollahi et al. | Algorithm and architecture for a low-power content-addressable memory based on sparse clustered networks | |
Ullah et al. | DURE: An energy-and resource-efficient TCAM architecture for FPGAs with dynamic updates | |
Yang et al. | A low-power ternary content addressable memory with Pai-Sigma matchlines | |
US8285922B2 (en) | Address generator using LUT cascade logic network | |
Jarollahi et al. | A low-power content-addressable memory based on clustered-sparse networks | |
CN115398545A (zh) | 模糊检索电路 | |
TWI391946B (zh) | 內容可定址記憶體 | |
Rakka et al. | Design exploration of sensing techniques in 2T-2R resistive ternary CAMs | |
JP2015225675A (ja) | 連想メモリおよび半導体装置 | |
Datti et al. | Performance evaluation of content addressable memories | |
Zhao et al. | Configurable memory with a multilevel shared structure enabling in-memory computing | |
US9021194B2 (en) | Memory management unit tag memory | |
Jarollahi et al. | Algorithm and architecture of fully-parallel associative memories based on sparse clustered networks | |
US20230185529A1 (en) | Calculation system | |
Hout et al. | In-memory multi-valued associative processor | |
US11914973B2 (en) | Performing multiple bit computation and convolution in memory | |
Adithya et al. | Full Swing 8x8 XOR Content Addressable Memory | |
Chandana et al. | Design of register file using reversible logic | |
Qian et al. | High-accuracy Low-power Reconfigurable Architectures for Decomposition-based Approximate Lookup Table | |
Laguna et al. | Algorithm/Hardware Co-Design for Few-Shot Learning at the Edge | |
Li | A new CAM based S/S/sup-1/-box look-up table in AES | |
Le et al. | A fully-parallel information detection hardware system employing Content Addressable Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090703 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |