KR100562806B1 - 내용어드레서블메모리시스템 - Google Patents
내용어드레서블메모리시스템 Download PDFInfo
- Publication number
- KR100562806B1 KR100562806B1 KR1019980035171A KR19980035171A KR100562806B1 KR 100562806 B1 KR100562806 B1 KR 100562806B1 KR 1019980035171 A KR1019980035171 A KR 1019980035171A KR 19980035171 A KR19980035171 A KR 19980035171A KR 100562806 B1 KR100562806 B1 KR 100562806B1
- Authority
- KR
- South Korea
- Prior art keywords
- chip
- cam
- signal
- self
- timing
- Prior art date
Links
- 230000007704 transition Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 24
- 230000000630 rising effect Effects 0.000 claims description 18
- 238000003491 array Methods 0.000 claims description 9
- 238000011144 upstream manufacturing Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000001902 propagating effect Effects 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241000723353 Chrysanthemum Species 0.000 description 1
- 235000005633 Chrysanthemum balsamita Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
- G11C15/04—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 using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Static Random-Access Memory (AREA)
- Logic Circuits (AREA)
Abstract
시스템은 공통 버스에 직렬로 연결된 복수개의 내용 어드레서블 메모리(content addressable memory : CAM) 칩을 포함한다. CAM 칩의 각각은 검색 결과(히트, 정합 어드레스 및 다중 정합)를 제공한다. 히트 신호 및 다중 정합 신호는 칩에서 칩으로 전달된다. 시스템 히트 결과는 가장 먼 다운 스트림 CAM 칩으로부터 주어진다. 시스템의 정합 어드레스 결과는 온-칩의 셀프-타이밍 신호가 버스 에 대한 구동 경쟁이 존재하지 않는 것을 보장하는 공통 버스로부터 주어진다.
Description
본 발명은 복수개의 CAM 칩이 케스케이드-접속된 내용 어드레서블 메모리(content addrssable memory : CAM) 시스템에 관한 것이다.
공지된 CAM에서, 데이터는 물리적 위치보다는 내용(content)에 기초하여 선택된다. 이러한 기능은 많은 응용예, 특히 긴 식별 단어에서 보다 짧은 단어로 맵핑하기 위한 목적으로 룩업(look-up) 기능을 수행하는 경우에 유용하다. 이러한 동작은 비동기 전송 모드 어드레스 변환을 포함한, 많은 텔레콤 기능에서 필요로 한다.
종종, 시스템 저장장치의 요구사항은 단일 CAM 칩상에 기억되는 엔트리(entries)의 수를 초과한다. 이때 다중 칩이 요구되고, 그것들이 단일 엔티티(entity)로서 검색될 수 있도록 이러한 다중 칩을 케스케이드하기 위한 수단이 개발될 필요가 있다. 적절한 "사용자 친화적(user-friendly)" 케스케이드 능력은 동일 칩이 서로 다른 용량 조건을 가지는 시스템들에 사용될 수 있게 하고, 또한 용이한 확장력 및 확장성(expandability and scalability)을 가능하게 한다.
1996년 10월 22일 Kawana 등에게 허여된 미국 특허 번호 제5,568,416은 다중 CAM 칩이 케스케이드 내의 모든 칩을 통하여 결과 어드레스 및 상태를 전파함으로써 케스케이드되는 관계 메모리(associative memory)를 개시한다. 각 칩은 자신을 위한 상태 레지스터를 포함하고, 모든 업스트림 칩을 위한 또 다른 상태 레지스터를 포함한다. 상기 문헌은 또한 케스케이드 내의 최종 디바이스를 식별하는 수단과 공통의 고유한 데이터 엔트리들에 대한 별도의 기억 영역을 개시한다.
본 발명의 목적은 개선된 내용 어드레서블 메모리 시스템을 제공하는데 있다.
본 발명의 하나의 특징에 따르면, 공통 버스; 및 상기 버스에 케스케이드되어 연결되는 복수개의 내용 어드레서블 메모리(content addressable memory : CAM) 칩 - 상기 CAM 칩의 각각은 w 워드 × b 비트의 코어 셀 어레이 및 인코딩 수단을 구비하고, 상기 코어 셀은 데이터 기억 수단을 구비하며, 상기 CAM 칩은 상기 인코딩 수단을 통해 검색 동작으로부터의 결과인 히트 및 정합 어드레스 신호를 제공할 수 있슴 - 을 구비하되, 상기 CAM 칩의 각각은, 칩에서 칩으로 히트 신호를 전파하기 위한 신호; 및 상기 버스에 상기 어드레스 신호를 제공하기 위한 수단을 구비하는 시스템이 제공된다.
시스템에서, 상기 CAM 칩의 검색 동작으로부터의 결과인 시스템 히트 신호는 칩에서 칩으로 전파된다. 시스템 히트 결과는 다운 스트림 CAM 칩으로부터 주어지고 시스템 정합 어드레스 결과는 공통 버스로부터 주어진다. 시스템은 n × w 워드를 가지는 단일 다중-칩 CAM으로서 기능을 하고, n은 CAM 칩의 수이다.
CAM 칩의 각각은 버스에 정합 어드레스 신호를 제공하는 것이 허용되는 상기 CAM 칩을 결정하기 위한 구동 수단을 더 구비할 수 있다. 상기 구동 수단은 하나 이상의 CAM 칩이 상기 버스에 상기 어드레스 신호를 동시에 제공하는 것을 방지하기 위한 수단을 구비한다.
지금부터 본 발명의 실시예가 첨부하는 도면을 참조로 예로서 서술될 것이다.
바람직하게는, 단일 칩 CAM과 동일한 세 개의 간단한 결과 출력(즉, 히트(hit), 정합 어드레스(match address) 및 다중 정합(multiple match))을 갖는 다중-칩 CAM을 구현한다. 또한, 동일한 칩의 n 개의 복수의 인스턴스들만을 이용하여 하나의 칩에서 n개의 칩 시스템까지의 간편한 확장성을 가능하게 하는 것이 더 바람직하다.
Ⅰ. CAM 어레이의 개념
도 1a는 단일 CAM 어레이를 개념적으로 나타낸다. CAM 어레이(110)는 세 개의 출력: 즉, 히트 ht, 다중 정합 mt 및 정합 어드레스 sa를 가진다. 다른 온-칩 신호뿐만 아니라, 어레이 출력들은 본 명세서에서 소문자로 표시된다. (핀을 경유하여) 온 및 오프 칩을 통과하는 신호는 대문자로 표시된다. 이하, CAM 칩이 도시될 때마다, 도 1b에 도시된 바와 같이 어레이가 CAM 칩(120)상에 내장되는 것을 암시한다. 어레이 출력 및 칩 출력 사이의 가장 간단한 연결이 도 1c에 도시되어 있다.
Ⅱ. 다중 CAM 칩의 효과적인 연결 방법
본 발명의 취지는 복수개의 CAM 칩을 효과적인 방법으로 연결할 수 있도록 하는 것이다.
간단한 확장성으로 케스케이드 능력(cascadability)을 달성하기 위해서, 칩 설계시 다음과 같은 요건이 필요하다.
(1) 다중 칩은, 각각의 추가적인 칩에 대한 새로운 보드-레벨 신호(board-level signal)가 필요없도록, 가능한 한 많은 제어 신호 및 버스들을 공유할 수 있어야 한다.
(2) 다중 칩의 조합이 단일 개체(entity)로서 나타나도록 하기 위해, 복수개의 CAM 칩이 케스케이드된 시스템 내의 소정의 위치에서 전체적인 검색 결과를 알 수 있어야 한다. 만약 한 위치가 제공되면, 이것은 인코드된 정합 어드레스, 히트 지시, 및 다중 정합 지시에 적용된다. 만약 (소정의 위치에 결과를 제공하는) 이러한 능력이 있다면, 검색 결과를 결정하기 위해 다중 칩을 순차적으로 폴링(poll)할 필요가 없게 된다.
(3) 케스케이드된 모든 칩은
(a) 실제 물리적 조성
(b) 프로그램된 능력, 특히 "우선 순위"의 관점에서 동일할 필요가 있다. 칩의 우선 순위는 본질적으로 케스케이드에서의 그 위치에 의해 정의되어야 하고, 온-칩 레지스터의 프로그래밍을 필요로 해서는 안된다.
(4) 케스케이드 형태로 연결된 칩에서 칩으로 구동되는 신호의 수는 최소화되어야 한다.
(a) 인코드된 정합 어드레스는 너무 넓어서 이러한 형태로 전달할 수 없다.
(b) 칩-대-칩 "데이지-체인(daisy-chain)" 신호는 칩-대-칩 시그널링(signalling)시의 그 용도 이외에, 이상적으로 사용자에게 어떤 의미를 가져야 한다.
(5) 케스케이드의 모든 칩이 단일의 버스 상으로 그들 개개의 정합 어드레스 결과를 구동할 수 있다는 것이 상기 설계 요건으로부터 명확하다.
(a) 이러한 버스에 대한 어떠한 경쟁(contention)의 문제가 있어서는 안된다.
(b) 온-칩 회로는 어떤 칩이 버스를 구동시킬지를 결정해야 한다.; 인에이블시키기 위해 칩을 선택하는 수단을 가질 필요는 없다.
Ⅲ. 공유 신호 수의 최대화
공유 신호 수를 최대화하기 위해, 다중-칩 케스케이드된 CAM에서의 모든 칩은
(1) 기록 데이터용 공통 입력 데이터 버스.
(2) 판독 데이터용 공통 출력 데이터 버스.
(3) 랜덤하게 어드레스가능한 기록 및 판독용 공통 어드레스 버스.
(4) 전체적으로, 다중-칩 CAM에 대해 어떤 동작(기록, 판독,또는 검색)이 수행되고 있는 지를 결정하기 위한, 공통 세트의 모드 제어 신호.
(5) 검색 입력 (또는 "컴퍼런드(comparand)")용 공통 입력 버스.
(6) 검색결과, 즉 통상적으로 인코드된 정합의 어드레스를 위한 공통 출력 버스, "결과"는 또한 컴퍼런드와 함께 기억되고 그와 관련되는 데이터 항목일 수 있다. 이는 또한 다음과 같은 일련의 데이터 항목이 될 수 있다.
(a) 다중 정합의 검색 결과의 경우에, 다중 인코드된 어드레스들.
(b) 관련 데이터의 다수의 항목들.
(c) 상기의 조합
상기 버스 (1), (2), (5)는 용이하게 2중 또는 3중 사용할 수 있슴을 알 수 있다.
메모리 판독 및 기록용 버스 및 제어 신호의 공유는 널리 공지되어 있고 문헌에 기록되어 있기 때문에, 다음에는 케스케이드된 CAM의 검색 기능을 다룬다.
Ⅳ. 다중 칩 CAM 시스템의 개념
시스템 히트 및 다중 정합 결과는 다운스트림의 끝(낮은 우선 순위 끝)에서 이용 가능하다.
다중 정합 기능이 반드시 제공될 필요는 없다.
인코드된 어드레스는 공유된 결과 버스 상에서 이용 가능하다. 이는 이하를 포함한다.
(a) 상기 공통 출력 버스 설명 (6)에 의해 기술된 바와 같이, 버스를 구동시키도록 인에이블되는 특정 칩에 의해 결정되는 바와 같은 결과.
(b) 결과 및 선택된 칩을 유일하게 식별하는 인코드된 어드레스.
상기 인코드된 어드레스는 다중 칩을 통해 전파될 필요가 없다.
모든 칩은 (상기 언급된 임의의 선택적 식별 인코딩 능력과는 별도로) 동일하며, 우선 순위는 케스케이드에서 위치에 의해 결정된다. 보다 먼 업스트림이거나 또는 보다 좌측에 있을 수록 우선 순위가 더 높게 된다. 보다 높은 우선 순위 정합은 보다 낮은 우선 순위 정합이 결과 버스를 구동시키는 것을 디스에이블시킨다.
도 2에 도시된 바와 같이 히트, 다중 정합, 내부 전파 히트(propagation-in hit), 및 내부 전파 다중 정합 핀들의 연결은 "데이지 체인(daisy chaine)"을 구현한다.
주어진 히트 및 다중 정합의 쌍은 그 특정 쌍의 (좌측으로의) 전체 시스템 업스트림의 상태를 가리킨다.
Ⅴ. 다중 칩 CAM 시스템의 실시예
본 발명의 일실시예에 따른 시스템을 나타내는 도 2를 참조하면, 시스템은 케스케이드된 n개의 CAM 칩(120)을 포함하며, 그 CAM 칩(120)의 각각은 공통 공유 버스(122)에 정합 어드레스 신호 SA를 제공한다. CAM 칩(120)의 각각은 업스트림 CAM 칩(120)으로부터 히트 및 다중 정합 신호(오프-칩 신호) HTI 및 MTI를 각각 수신하기 위한 히트 및 다중 정합 입력 단자와, 하향(downstream)의 CAM 칩(120)에 히트 및 다중 정합 신호 HT 및 MT를 각각 제공하기 위한 히트 및 다중 정합 출력 단자를 가진다. 가장 상향(upstream)의 CAM 칩(120)의 히트 및 다중 정합 입력 단자는 논리 0 단자에 연결된다. CAM 칩(120)은 후에 기술될 다수의 변형을 갖는다. 시스템 히트 및 다중 정합 결과 SHT 및 SMT는 가장 우측(가장 먼 다운스트림 CAM 칩(120))에서 이용 가능하다. 클럭 발생기(124)는 CAM 칩(120)에 클럭 신호 ck를 제공한다. 검색 결과 관측 회로(126)는 버스(122) 및 가장 먼 다운스트림 CAM 칩(120)의 히트 및 다중 정합 출력 단자에 연결된다.
히트 및 다중 정합 결과 HT 및 MT가 단일 칩의 상태보다는 시스템의 모든 또는 일부의 상태에 대한 정보를 제공하기 때문에, 소정의 칩의 상태를 결정하기 위한 다른 수단이 제공되어야 한다. 상태 정보의 이용 가능한 일부는 버스(122)상으로 그 결과를 구동시킨 칩의 서열 위치(즉, 정합하는 가장 높은 우선 순위 칩)이다. 칩 서열의 이진 표현은, 하나의 가능한 방식으로는, 도 3에 도시된 논리 회로에 의해 결정될 수 있다. 이러한 방법은 히트 신호를 입력으로서 사용하여, 케스케이드를 형성하는 CAM 칩에 대해 외부의 논리 회로를 필요로 한다.
도 3은 어떤 CAM 칩이 공통 버스를 구동시키는 가를 결정하기 위한 n 개의 AND 게이트를 포함하는 외부 논리 회로를 갖는, 케스케이드된 CAM 칩을 도시한다. 도 3을 참조하면, AND 게이트(128)의 각각은 반전 및 비반전 입력 단자를 가진다. CAM 칩(120)의 히트 입력 및 출력 단자는 각 AND 게이트(128)의 반전 및 비반전 입력 단자에 연결된다. AND 게이트(128)로부터 n 출력 신호는 n 대 log2n 인코더(130)에 입력된다.
대안으로서, AND 게이트(128)는, CAM 칩(120) 상에 어떤 특정 칩이 최고-우선 순위 히트를 갖는지, 어느 특정 칩이 버스(122)를 구동하는지의 여부를 나타내도록 추가적인 핀이 제공된 집적된 온-칩일 수 있다. 또한, 검색 어드레스 결과는 온-칩의 레지스터(도시 생략)에 기억될 수 있다. 인코더(130)의 출력은 칩의 결과 레지스터가 판독되는지를 결정하는데 사용될 수 있다.
상기에서, 온-칩 회로가 공통 버스에 대한 어떠한 경쟁도 초래하지 않는다는 것을 보장해야만 한다는 것, 즉, 결코 하나 이상의 칩이 한 번에 버스(122)를 구동시키려고 시도하지 않도록 보장하여야 한다고 설계 요건 (5)에서 설명하였다. 이러한 기능의 온-칩을 구현하기 위해, 내부 셀프-타이밍 신호(self-timed signal)가 도입된다. 이러한 신호는 검색 동작을 초기화하는 클럭 신호 ck의 상승 에지 다음에 로우가 된다. 또한, 유효 데이터가 내부 어드레스 버스 상에, 그리고 내부 히트 상태 신호 ht에 나타난 후 상승한다. 그러므로, 셀프-타이밍 신호상의 천이는 히트 신호 ht상의 천이를 모델링하도록 이루어질 수 있다. 이러한 천이의 타이밍이 도 4에 도시된다.
도 4에 도시된 신호가 주어지면, 시스템 히트 상태가 전파되고 단일 칩만이 공유 결과 버스를 구동시키는 것이 보장된다. 이는 칩간 신호(inter-chip signals)들이 어떻게 발생되는지를 나타내는 도 5에 도시된 논리로 수행된다.
도 5는 칩간 신호를 발생시키기 위한 논리 회로를 갖는 CAM 어레이를 도시한다. 도 5를 참조하면, CAM 칩(120)은 CAM 어레이(110), 하나의 반전 입력을 갖는 AND 게이트(132), 전달 게이트(134), 하나의 반전 입력을 갖는 OR 게이트(136) 및 버퍼(138)를 포함한다. 오프-칩 신호 HTI로부터의 내부 전파(propagation-in) 히트 신호 hti가 AND 게이트(132)의 반전 입력 단자 및 OR-게이트(136)에 입력된다. 내부 셀프-타이밍 신호 st는 AND 게이트(132)에 및 OR-게이트(136)의 반전 입력 단자에 제공된다. CAM 어레이(110)로부터의 히트 신호 ht가 AND 게이트(132) 및 OR 게이트(136)에 입력된다. 정합 어드레스 인에이블 신호 sae는 AND 게이트(132)에서 전달 게이트(134)로 입력된다. CAM 어레이(110)로부터의 어드레스 신호 sa는 전달 게이트(134)에 입력되는데, 이로 인해 인에이블 신호 sae가 로우일 때 어드레스 신호가 게이트를 통과하는 것을 방지한다. 오프-칩 어드레스 신호 SA는 전달 게이트(134)에 의해 제공된다. OR 게이트(136)로부터의 외부 전파 히트 신호(propagation-out hit signal) hto는 오프-칩 히트 신호 HT를 제공하는 버퍼(138)에 입력된다.
시스템의 모든 칩 상에서 st=0일 때의 시간 간격 동안에는, 어떠한 칩도 버스(122)를 구동시키도록 인에이블되지 않는다. 동일 간격 동안, 케스케이드된 모든 히트 신호 HT는 st=0이므로, 논리 1에 있고, 이는 내부 전파 히트 신호 hti를 통해 SA 출력 구동기를 이중으로 디스에이블시킨다. 이러한 부분적 리던던시는 신호들의 타이밍을 재설정하고, 게이트에 대한 입력의 수를 감소시킴으로써 제거될 수 있다. 이와 같은 접근 방법으로 설계가 보다 용이하게 된다는 것을 알 수 있다.
내부 전파 히트 신호 hti의 네 가지 상이한 경우(0에서 0, 1에서 0, 0에서 1, 및 1에서 1로의 천이)에 대하여, 단일 칩 상의 모든 적절한 신호의 파형이 도 6a - 6d에 도시되어 있다. 내부 전파 히트 신호 hti는 오프-칩 신호 HTI의 온-칩 전파이다.
알 수 있는 바와 같이, 선택 해제신호가 해당 칩상에서(on-chip) 발생하고, 선택신호만이 업스트림 오프-칩 신호에 의해 게이트되기 때문에, 올바른 동작은 (a) 칩 사이의 속도 차 및 (b) 칩간의 경로 지연(routing delay)에 무관하다. 이러한 특징은 또한 시스템에 부가된 추가적인 칩들이 서로 다른 처리 조건으로, 또는 완전히 다른 제조 기술에서도 처리될 수 있으므로, 또한 확장성을 지원한다.
최악의 경우의 타이밍을 특성화 한다면, 선택신호의 가장 느린 경로는 내부 전파 히트 신호 HTI 입력이 될 것이다. 내부 전파 히트 신호 HTI 상의 하향 천이는 외부 전파 히트 신호 HT(ht=0라고 가정)로 더욱 전파할 수 있어서, 최악의 경우의 시스템 성능은 독립형의 단일 칩의 성능, (n-2) x 내부 전파 히트 신호 HTI - HT 지연, 내부 전파 히트 신호 HTI - SA 지연의 합과 같다. 시스템 성능은 다음 표현으로 특성화된다.
tCH-SAV = tCH-HTV + (n-2) × tHTIL-HTL + tHTIL-SAV
tCH-SAVSYS = tCH-HITV + (n-2) × tHITIL-HITL + tHITIL-SAV
tCH-SHTV = tCH-HTV + (n-1) × tHTIL-tHTL
tCH-HITVSYS = tCH-HITV + (n-1) × tHITIL-HITL
셀프-타이밍 신호 st 없이도, SA 드라이브를 디스에이블 및 인에이블 하는 것은 HTI 타이밍에 좌우될 수 있다는 것을 알 수 있다. 버스 경쟁은 방지하기에 어렵고, 디스에이블 타이밍은 케스케이드 내의 칩의 위치에 의존할 것이다.
케스케이드된 CAM에 MT 전파를 구현하는 논리 게이트를 도시한 도 7의 일실시예에서, 존재한다면, 다중 정합 신호 MT는 각 칩 상의 논리에 따라 유사한 방식으로 전파하여야 한다. 도 7을 참조하면, CAM 어레이(110)로부터의 히트 신호 ht 및 다중 정합 신호 mt는 AND 게이트(142) 및 OR 게이트(144)에 각각 입력된다. 내부 전파 히트 신호 hti는 AND 게이트(142)에 입력되고, 그 출력 신호는 OR 게이트(144)에 입력된다. 다중 정합 신호 mt는 OR 게이트(144)에 입력되고, 그 출력 신호는 버퍼(146)에 입력된다. 오프-칩 다중 정합 신호 MT는 버퍼(146)에 의해 제공된다.
Ⅵ. 셀프-타이밍 신호 발생기
셀프-타이밍 신호 발생기의 가능한 많은 회로들이 존재한다. 결과의 셀프-타이밍 신호 st가 상기 기술된 바와 같이 경쟁 없는 버스 공유가 가능하도록 사용된다면, 본 발명의 의도된 범위는 임의의 이와 같은 회로를 포함한다.
셀프-타이밍 신호 발생기의 예가 이하의 설명에서 개시된다. 이러한 예들은 구현 가능성의 넓은 관점을 제공하도록 의도되고, 그 설명은 본 특허 개시의 후술하는 범위를 결코 제한하지 않는다.
도 8에 도시된 셀프-타이밍 신호 발생기의 제1 예에서, 단순한 지연 라인이 히트 신호의 발생시 예상되는 지연을 모델링한다. 도 8을 참조하면, 클럭 신호 ck는 플립 플롭(152)의 리셋 입력 단자 R에 입력된다. 또한, 클럭 신호 ck는 네 개의 버퍼(154)의 체인을 통해 플립 플롭(152)의 설정된 입력 단자 S에 입력된다.
셀프-타이밍 신호 st의 하강 에지는 클럭 신호 ck의 상승 에지에 의해 발생되는 반면, 셀프-타이밍 신호 st의 상승 에지는 클럭 신호 ck의 상승 에지가 지연되어 발생된다. 본 명세서에 도시된 S/R(셋/리셋) 래치 및 후속하는 도면은 논리 기능을 표현하며, 반드시 물리적인 실현은 아니다. 클럭 신호 ck의 상승 에지로부터 셀프-타이밍 신호 st의 상승 및 하강 에지를 타이밍시키는 것은 듀티 사이클(duty cycle)의 독립성을 가져온다. 지연 체인의 지연은 클럭 신호 ck 및 히트 신호 ht의 상승 에지 사이의 지연과 동등하게 설정될 수 있다. 대안으로, 만약 클럭 신호 ck 듀티 사이클을 알고 있고 잘 제어된다면, 셀프-타이밍 신호 st의 상승 에지의 타이밍은 클럭 신호 ck의 하강 에지에 의해 제어될 수 있다. 이러한 예를 채용하기 위해서는, 히트 타이밍이 예측 가능하여야 하는데, 이는 히트 신호가 구현시마다 변화할 수도 있는 모듈러 또는 스케일러블(modular or scalable) 설계에는 적합하지 않는다는 점에 유의한다.
Ⅶ. CAM 어레이의 예
Ⅶ-1. 제1 예
도 9는 CAM 칩(220)에 구현된 CAM 어레이의 제1 예를 도시한다. CAM 어레이에서, w(=4) 워드 × b(=4) 비트의 단일 칩 CAM은 w 행 및 b 열을 가지는 어레이로서 구현된다. CAM 어레이는 w × b (=16) 코어 셀(230)을 포함하고, 각 셀은 정합 라인(232)과 한 쌍의 비트 라인(234)의 교차점에 있다. 한 쌍의 비트 라인(234)은 두 비트의 데이터보다, 단일 비트를 나타내는 차동 데이터를 전달한다. 각 코어 셀(230)은 데이터의 단일 비트를 기억하도록 동작하고, 그 비트 기억 능력이외에도, 단일 비트 비교(논리적인 배타적 NOR(XNOR)) 동작을 수행할 수 있다. 도 9에서, 주어진 워드에 해당하는 셀(230)은 논리적 NOR 유형으로 그 워드의 정합 라인에 연결된다. CAM 어레이의 구조는 공지되어 있다. 참조로서 본 명세서에 포함되는 K.J. Schultz 등의 "Architectures for Large-Capacity CAMs"(VLSI Journal, vol. 18, pp. 151-171, 1995)라는 논문을 참조하기 바란다.
차동 데이터용 비트 라인은 CAM 어레이의 내용을 로딩하고 검색 기준 워드를 위한 입력 데이터 D를 수신하는 기준 워드 기억 및 비트 라인 드라이버(236)에 연결된다. 어레이의 코어 셀(230)에 기억된 데이터는 비트 라인(234) 상에 기준 워드를 적용함으로써 검색된다.
검색 동작에서, 차동 데이터가 비트 라인 쌍(234)에 나타나면, 코어 셀(230)은 자신의 기억된 데이터 비트를 이 차동 데이터(기준 데이터 또는 단일 비트의 컴퍼런드)와 비교한다. 기억 데이터가 기준 데이터와 같지 않을 때, 코어 셀(230)은 (논리 하이 상태로 프치차지된) 정합 라인(232)을 로우 상태로 풀 다운시킨다. 기억 데이터가 기준 데이터와 같을 때, 셀(230)은 그것이 연결된 정합 라인(232)에 어떠한 영향도 미치지 않는다. 주어진 워드에서 모든 b 코어 셀(230)이 동일한 방식으로 정합 라인(232)에 연결되기 때문에, 만약 그 워드에서의 어떠한 비트도 대응하는 기준 비트와 같지 않다면(또는 부정합하다면), 정합 라인(232)은 로우로 풀(pulled)될 것이다. 정합 라인(232)은 그 워드에서의 모든 비트가 그들의 대응하는 기준 비트와 정합할 때만 논리적 하이 상태로 남는다.
CAM 어레이는 정합 라인(234)에 연결되는 인코더(238)를 포함한다. 인코더(238)는 검색 동작의 결과를 나타내는 세 가지의 출력을 생성한다. 만약 임의의 w 워드가 기준 데이터와 정합한 데이터를 기억하면, "ht" 신호가 논리 하이 상태로 나타난다. 이러한 정합 워드의 이진 어드레스는 "sa" 출력으로 인코드된다. 복수개의 워드가 기준 데이터에 정합된 경우에, 다중 정합 신호 "mt"가 논리 하이 상태로 나타난다. 이 경우에, 인코더(238)의 어드레스 sa 출력은 (a) 무효한 결과, (b) 다중 정합 중의 하나의 위치를 나타내는 어드레스, 또는 (c) 정합 워드의 각각의 위치를 나타내는 출력의 시퀀스를 생성할 수 있다. 어떤 응용예에서는 다중 정합 결과를 필요로 하지 않을 수 있고, 다중 정합 기능에 대한 모든 기준이 유용성을 잃지 않고 본 실시예로부터 삭제될 수 있다는 것을 알 수 있다.
Ⅶ-2. 제2 예
도 10은 CAM 칩(320)에 구현된 CAM 어레이의 제2 예를 도시한다. CAM 어레이에서, 워드는 두 개의 절반으로 분할되고, 각 절반 워드에 대한 정합의 결과가 조합된다. 두 개의 절반의 각각에는 4 행 × 4 열의 어레이가 제공된다. 어레이는 16개의 코어 셀(330)을 포함하고, 각각은 정합 라인(332) 및 단일 비트를 나타내는 차동 데이터를 전달하는 비트 라인 쌍(234)의 교차점에 있다. 차동 데이터용 비트 라인(334)은 CAM 어레이의 내용을 로딩하고 검색 기준 워드용 입력 데이터 D를 수신하는 기준 워드 기억 장치 및 비트 라인 구동기(336)에 연결된다. 어레이의 코어 셀(330)에 기억된 데이터는 비트 라인(334) 상의 기준 워드를 이용함으로써 검색된다.
각 코어 셀(330)은 단일 비트의 데이터를 기억하는 역할을 하고, 그 비트 기억 능력이외에도, 단일 비트 비교(논리적인 배타적 NOR(XNOR)) 연산을 수행할 수 있다. 도 10에서, 소정의 워드에 속하는 셀(330)은 논리적 NAND 방식으로 그 워드의 정합 라인에 연결된다. 각 워드의 코어 셀(330)은 각 정합 라인(332)에 연결된다. 하나의 절반의 정합 라인(332)의 각각은 인버터(338)를 통해 AND 게이트(320)에 연결되고, 그 출력 단자는 다중 정합 라인(342)을 통해 인코더(344)에 연결된다.
도 10에서, (각 절반의 워드에서의) 연결은 논리적 NAND로 되어 있다. 정합 라인(332)은 만약 절반 워드에서의 모든 비트가 기준 데이터와 같다면, 하향 천이만을 가질 것이다. 그러므로, 정합 라인(332)을 위한 접지에의 경로는 병렬보다는 직렬("정합 라인 체인")이며, 부정합보다는 정합의 경우에, 경로는 도전성(즉, "회로가 폐쇄됨")이 된다.
이러한 기술의 이점은 각 검색 동작시 천이되는 훨씬 작은 수의 정합 라인(332): 도 10에 도시된 종래 기술 회로에서 부정합당 하나에 비해, 도 10에 도시된 예에서 정합당 하나에 기인한다. 이것은 전력 손실을 상당히 감소시켜, 보다 큰 기억 용량을 실현할 수 있게 한다. 절반으로 워드를 분할하는 것은 NAND 체인의 길이를 감소시켜 속도를 증가시킨다.
도 10에 도시된 CAM 어레이의 예는 또한 다중 정합 라인(342)을 위한 코어 셀 위에 상부 금속층을 이용함으로써, 다중 워드를 물리적 행으로 배치하는 수단을 포함한다. 이것은 실현될 수 있는 기억 용량을 더욱 증가시킨다.
CAM 어레이는 검색 동작의 결과를 나타내는 세 가지의 출력 ht, sa 및 mt를 생성시키고, 이들은 모두 인코더(344)에 의해 발생될 수 있다. 만약 임의의 w 워드가 기준 데이터와 정합된 데이터를 기억하면, "ht" 신호가 논리 하이 상태로 나타난다. 이러한 정합 워드의 이진 어드레스는 "sa" 출력으로 인코드된다. 복수개의 워드가 기준 데이터와 정합되는 경우에, 다중 정합 신호 "mt"가 논리 하이 상태로 나타난다. 이 경우에, 인코더의 어드레스 (sa) 출력은 (a) 무효한 출력 (b) 다중 정합중 하나의 위치를 나타내는 어드레스 또는 (c) 정합된 워드의 각각의 위치를 나타내는 출력의 시퀀스를 생성할 수 있다.
많은 다른 가능한 CAM 어레이가 있다는 것과, 본 명세서에 기술된 발명이 임의의 이러한 예에 케스케이드화 가능성(cascadability)을 부가하는데 사용될 수 있슴을 알아야 한다.
단일 CAM 어레이의 기본 기능은, (복수개의 칩 상의) 복수개의 어레이가 단일 칩 상의 단일 어레이에 의해 실현될 수 있는 것보다 더 큰 용량을 실현하기 위해 함께 케스케이드될 때의 경우에, 상기 기술된 예의 것으로부터 변화하지 않는다.
Ⅷ-3. 제3 예
도 11은 CAM 어레이의 제3 예를 도시한다. 제3예의 CAM 어레이는 가변 히트 지연을 추적하는 "모델미스(modelmiss)" 신호를 생성하며, 전술한 (그리고 도 9에 도시된) 제1 CAM 어레이의 연장이다. 도 12는 이에 수반하는 셀프-타이밍 신호 발생기를 나타낸다.
셀프-타이밍 신호 st의 하강 에지는 클럭 신호 ck의 상승 에지에 의해 (직접적으로 또는 간접적으로) 초기화되며, 셀프-타이밍 신호 st의 상승 에지는 신호 modlemiss에 의해 초기화된다. 타이밍 정보를 발생시키기 위한 목적으로 여분의 행이 CAM 어레이에 제공된다. 이러한 행을 따르는 코어 셀들은 표준 코어 셀(410)(도 9에서 코어 셀(230)과 동일함)의 변형이다. 올웨이즈미스(always miss) 코어 셀(420)은 인코더(418)로부터 가장 먼 모델 정합 라인의 끝에 배치되는 반면, 행의 나머지는 올웨이즈-정합(always-match) 코어 셀(430)로 채워진다. 표준 NOR 정합 라인 구현에서의 가장 느린 (단일-워드) 검색 결과는 단일-비트 미스이며, 그것은 이러한 배열에 의해 모델화된다. 모델미스 신호로의 하향 천이는 유효 데이터가 히트 신호 ht에 보장되는 예와 대응한다. 이전의 타이밍 도에 도시된 히트 단일 극성을 발생시키기 위해, 히트 신호는 또한 클럭 신호 ck의 상승 에지 직후의 선조건화 천이에서 초기에 로우로 구동되어야 한다는 것을 알아야 한다.
Ⅷ-4. 제4 예
제4 예는 상기 기술된 (그리고 도 10에 도시된) 제2 CAM 어레이에 따라 구현된 CAM 어레이에서의 히트 지연을 추적하기 위한 회로를 포함한다. 이는 도 13에 도시되어 있다. 이에 수반하는 셀프-타이밍 신호 발생기는 도 14a 및 14b에 도시되어 있다. 셀프-타이밍 신호 st의 하강 에지는 클럭 신호 ck의 상승 에지에 의해 (직접적으로 또는 간접적으로) 개시되며, 셀프-타이밍 신호 st의 상승 에지는 신호 modelhit에 의해 초기화된다. 타이밍 정보를 생성하기 위한 목적으로 여분의 행이 CAM 어레이에 제공된다. 이 행을 따르는 코어 셀들은 표준 코어 셀(510)(도 10에서 코어 셀(330)과 동일함)의 변형이다. 올웨이즈-정합(always-match) 코어 셀(512)은 모델 정합 라인 체인(514)의 전체에 사용된다. 이러한 NAND 정합 라인 구현에서의 가장 느릴수 있는 (단일-워드) 검색 결과는 정합(match)이며, 그것은 이러한 구성에 의해 모델링 된다. 모델히트 신호 상의 상향의 천이는 유효 데이터가 히트 신호 ht에 있다는 것을 보장하는 인스턴스(instance)에 해당한다. 이전의 타이밍 도에 도시된 히트 신호의 극성을 발생시키기 위해, 히트 신호는 클럭 신호 ck의 상승 에지 직후의 프리컨디셔닝 천이(preconditioning transition)에서 초기에 로우(low)로 구동되어야 한다. 모델히트(modelhit)가 셀프-타이밍 신호 st와 동일한 극성을 가지기 때문에, 셀프-타이밍 구동 회로는 제거될 수 있으며, 모델히트(modelhit) 신호는 도 14b에 도시된 바와 같이, 셀프-타이밍 신호 st로서 사용될 수 있다.
Ⅷ-5. 제5 예
도 15는 제2 CAM 어레이와 동일한 정합 논리를 사용하는 복수의 워드 슬라이스들을 이용한 회로의 블록도로서, 이러한 구성의 셀프-타이밍 신호의 생성은, 모델 글로벌 데이터 라인을 채용한다.
제5 예의 셀프-타이밍 신호 발생기는, 도 15에 도시된 바와 같이, 제2 CAM 어레이에 채용되는 복수개의 수직 워드 슬라이스들을 갖는 CAM 어레이에서 히트 지연을 추적하는데 사용될 수 있다. 복수개의 워드 슬라이스는 보다 큰 용량의 실현을 가능하게 한다. 컴퍼런드(comparand) D의 모든 비트는 모든 워드 슬라이스에 버스되어야 하기 때문에, 글로벌 데이터 버스(622)가 사용된다. 타이밍 정보가 모델 글로벌 데이터 라인(624)의 형태로 글로벌 데이터 버스(622)에 내장될 수 있다. 모델 글로벌 데이터 라인(624)은 그의 제1 천이가 히트 신호 ht의 하향 천이와 거의 일치하도록 구동된다. 모델 글로벌 데이터 라인(624)은 또한 CAM 어레이에 타이밍 정보를 제공하는데 사용되어, 이러한 일치를 보장한다. 셀프-타이밍 신호 st의 하강 에지는 모델 데이터 라인의 제1 천이에 의해 개시되고, 셀프-타이밍 신호 st의 상승 에지는 신호 모델히트에 의해 개시된다. 타이밍 정보를 발생시키기 위해, 인코더로부터 가장 먼 CAM 어레이의 워드 슬라이스에 여분의 행이 제공된다. 이러한 행을 따르는 코어 셀들은 표준 코어 셀(610)(도 10에서 코어 셀(330)과 동일함)의 변형이다. 올웨이즈-정합(always-match) 코어 셀(612)은 모델 정합 라인 체인(614)의 전체에 사용된다. 이러한 NAND 정합 라인 구현에서의 가장 느린 (단일-워드) 검색 결과는 정합(match)으로서, 그것은 이러한 구성에 의해 모델링된다. modelhit 신호상의 상향 천이는 유효 데이터가 히트 신호 ht에 있다는 것을 보장하는 인스턴스에 해당한다. 이전의 타이밍 도에 도시된 히트 신호 극성을 발생시키기 위해, 히트 신호 ht는 또한 클럭 신호 ck의 상승 에지 다음의 프리컨디셔닝 천이에서 초기에 로우(low)로 구동되어야 하고, 그의 타이밍은 모델 글로벌 데이터 라인에 의해 통제된다. 이전의 두 실시예에서와 같이, 인코더를 통하는 모델히트 신호의 지연은 인코더를 통하여 히트 신호 ht의 지연을 추적하는 것을 의미한다. 인코더가 랜덤 논리로 실현된 경우, 이는 지연 체인에 의해 달성될 수 있다. 인코더가 ROM으로서 실현될 때, 지연 정합은 모델 ROM 비트 라인으로 달성될 수 있다.
NOR 정합 라인 CAM 어레이도 역시 보다 큰 용량을 달성하기 위해 워드 슬라이스 형태로 구현될 수 있다. 셀프-타이밍 신호는 도 11로부터 모델 정합 라인과 도 15로부터 모델 글로벌 데이터 라인을 조합함으로써 발생될 수 있다.
도 16은 CAM 칩이 다중 CAM 어레이를 포함하는 경우에, 셀프-타이밍 신호 st의 적절한 전체 칩의 타이밍을 구현하기 위한 논리 게이트를 나타낸다.
각 칩 상의 CAM이 다중 어레이로 구성될 때, 각 CAM 어레이(710)는 그 자신의 "htj" 및 "stj" 신호를 가지며, 개별 신호들을 히트 신호 ht로 조합하는데 있어서의 지연을 허용하도록, 셀프-타이밍 신호 st의 펄스의 지속 시간을 넓힐 필요가 있다. 도 16은 이러한 펄스-확장의 예를 도시하고, 여기서 단일 stj 신호는 동일한 stj의 지연된 버전("stm"으로서 지칭됨)을 가지는 OR 게이트(712)에 의해 논리적으로 OR되며, 상기 버전은 어레이 히트 신호 htj 내지 ht의 것과 유사한 지연을 통해 전달된다.
도 17에 도시된 또 다른 예에서는, stm 및 stj 모두를 외부 전파 히트 신호 hto 게이트로 가져온다(도 5를 참조). 도 16 및 17의 두 실시예 모두는 내부 전파 히트 신호 hti=0 이고, 히트가 stj 다음에 상향 천이를 일으킬 때, 외부 전파 히트 신호 hto 상의 하향 글리치(glitch)를 방지한다. 이러한 천이의 동일 시퀀스는 도 5의 sae 게이트에 결과로서 일어나는 것은 아니며, 도 17과 유사하게, 그것에 대한 어떠한 변화도 요구되지 않는다.
CAM 어레이는 도 9, 10, 11, 13 및 15에 도시된 것에 제한되지 않는다. 많은 변형이 존재한다. 예를 들어, CAM 어레이의 데이터 비교 기능은 코어 셀에 의해 수행되지 않으며, 코어 셀에 인접하여 배치된 별도의 비교기에 의해 수행된다. 이와 같은 CAM 어레이는 참조로 본 명세서에 포함된 미국 특허 출원 제08/748,928호 "Large-Capacity Content Addressable Memory" (K.J. Schultz, 1996년 11월 14일자 출원)에 기술되어 있다.
복수개의 CAM 칩이 본 발명의 실시예에 따라 케스케이드된 시스템에서, 상태 레지스터, 어드레스 결과 전달, 최종 디바이스 식별, 또는 공통 엔트리의 기억은 사용되지 않는다.
다른 신호 극성, 균등한 부울(Boolean) 게이트-레벨 구현, 작은 타이밍 변형 등을 포함하여, 이러한 본 발명의 개시에 의해 논리적으로 포함되는 상세한 실시예에 많은 가능할 수 있는 변형이 있다는 것을 알 수 있다.
본 발명은 케스케이드된 CAM 칩 시스템에서 복수개의 CAM 칩을 효과적인 방법으로 연결할 수 있도록 칩을 설계함으로써 보다 용이하게 확장력 및 확장성을 가능하게 하는 효과가 있다.
도 1a는 단일 CAM(content addressable memory) 어레이 및 그 출력 신호의 개념도를 도시하는 도면.
도 1b는 단일 CAM 칩 내에 CAM 어레이의 암시된 위치를 도시하는 도면.
도 1c는 칩 핀에 CAM 어레이를 가장 간단하게 연결하는 것을 도시하는 도면.
도 2는 본 발명의 실시예에 따라, 케스케이드된 복수개의 CAM 칩을 포함하는 시스템의 블럭도.
도 3은 버스 구동 CAM 칩을 결정하기 위한 회로를 갖는 시스템을 도시하는 도면.
도 4는 셀프-타이밍 신호(self-timed signal) 및 온-칩(on-chip) 검색 결과를 도시하는 타이밍 챠트.
도 5는 CAM 어레이를 케스케이드하는 것을 구현하기 위한 논리 게이트를 도시하는 도면.
도 6a는 내부 전파 히트 신호의 0에서 0으로의 천이에 응답하는 온-칩 신호의 상대적인 타이밍을 도시하는 타이밍 챠트.
도 6b는 내부 전파 히트 신호의 1에서 0으로의 천이에 응답하는 온-칩 신호의 상대적인 타이밍을 도시하는 타이밍 챠트.
도 6c는 내부 전파 히트 신호의 0에서 1로의 천이에 응답하는 온-칩 신호의 상대적인 타이밍을 도시하는 타이밍 챠트.
도 6d는 내부 전파 히트 신호의 1에서 1로의 천이에 응답하는 온-칩 신호의 상대적인 타이밍을 도시하는 타이밍 챠트.
도 7은 시스템에서 다중 정합 전파를 구현하기 위한 논리 게이트를 도시하는 도면.
도 8은 셀프-타이밍 신호 발생기의 블럭도.
도 9는 CAM 칩의 제1 예의 회로도.
도 10은 CAM 칩의 제2 예의 회로도.
도 11은 CAM 칩의 제3 예의 회로도.
도 12는 셀프-타이밍 신호 발생기를 도시하는 도면.
도 13은 CAM 칩의 제4 예의 회로도.
도 14a 및 14b는 셀프-타이밍 신호 발생기를 도시하는 도면.
도 15는 CAM 칩의 제5 예의 블럭도.
도 16은 다중 CAM 어레이에 셀프-타이밍 신호의 적절한 전체-칩 타이밍을 구현하기 위한 논리 게이트를 도시하는 도면.
도 17은 외부 전파 히트 신호를 발생시키기 위한 논리 게이트를 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
110 : CAM 어레이
120 : CAM 칩
122 : 버스
124 : 클럭 발생기
126 : 검색 결과 관측 회로
130 : 인코더
230, 330 : 코어 셀
232, 332 : 정합 라인
234, 334 : 비트 라인
Claims (22)
- 공통 버스(122);상기 버스에 케스케이드되어 연결된 복수의 내용 어드레서블 메모리(content addressable memory : CAM) 칩(120)- 상기 CAM 칩 각각은 w 워드 × b 비트의 코어 셀 어레이(230, 330) 및 인코딩 수단(238, 344, 418)을 포함하고, 상기 코어 셀 각각은 데이터 기억 수단을 포함하며, 상기 CAM 칩은 상기 인코딩 수단을 통해 검색 동작으로부터의 결과인 히트 신호 및 정합 어드레스 신호를 제공할 수 있으며, 상기 CAM 칩 각각은,칩에서 칩으로 상기 히트 신호를 전파하기 위한 수단(138); 및상기 버스에 상기 어드레스 신호를 제공하기 위한 수단(134)을 포함함 -; 및상기 케스케이드된 CAM 칩에서 보다 먼 업스트림 칩이 보다 높은 우선 순위가 되도록 상기 칩의 우선 순위를 위치에 의해 결정하기 위한 수단(128)을 포함하는 CAM 시스템.
- 제1항에 있어서,상기 CAM 칩은 어느 CAM 칩이 상기 버스에 상기 어드레스 신호를 제공하도록 허용되는지를 결정하기 위한 구동 수단(236, 336, 416)을 더 포함하는 CAM 시스템.
- 제2항에 있어서,상기 구동 수단(236, 336, 416)은 하나 이상의 CAM 칩이 상기 버스에 상기 어드레스 신호를 동시에 제공하는 것을 방지하기 위한 수단을 포함하는 CAM 시스템.
- 제2항에 있어서,상기 칩은 상기 구동 수단이 온-칩(on-chip)으로 발생된 신호에 기초하여 디스에이블되게 하고, 상기 케스케이드의 업스트림(upstream)으로부터 전파하는 신호에 의해 인에이블되도록 하기 위한 수단(238)을 포함하는 CAM 시스템.
- 제1항에 있어서,가장 먼 다운스트림 칩의 상기 히트 신호 및 상기 버스 상의 정합 어드레스 신호로부터 상기 케스케이드된 CAM 칩에 대한 검색 결과를 관측하기 위한 수단(126)을 더 포함하는 CAM 시스템.
- 제1항에 있어서,상기 CAM 칩 각각은, 상기 인코딩 수단을 통해 검색 동작에 대한 다중 정합 표시를 제공하고,상기 CAM 칩 각각은, 칩에서 칩으로 상기 다중 정합 표시를 전파하기 위한 수단(142, 144)을 더 포함하는 CAM 시스템.
- 제6항에 있어서,가장 먼 다운스트림 칩의 다중 정합 출력에서 상기 케스케이드된 CAM 칩의 다중 정합 상태를 관측하기 위한 수단(126)을 더 포함하는 CAM 시스템.
- 제1항에 있어서,상기 CAM 칩은 하나 이상의 정합 어드레스의 경우에 일련의 후속 주기들에서 상기 버스에 상기 정합 어드레스 신호를 제공하기 위한 수단(236, 336, 416)을 더 포함하는 CAM 시스템.
- 제1항에 있어서,상기 케스케이드된 다중 CAM 칩들 중에서 정합하는 가장 높은 우선 순위의 서열 위치를 인코딩하기 위한 수단(130)을 더 포함하는 CAM 시스템.
- 제9항에 있어서,상기 정합 어드레스 신호, 인코드된 서열 위치, 및/또는 관련 데이터를 제공하기 위한 수단(130)을 더 포함하는 CAM 시스템.
- 제1항에 있어서,상기 CAM 칩은 클럭 신호에 응답하여, 상기 칩의 동작에 대한 셀프-타이밍 신호를 발생시키기 위한 셀프-타이밍 수단(self-timing means)(152, 154)을 더 포함하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은 상기 클럭 신호에 응답하여 상기 셀프-타이밍 신호의 제1 천이를 수행하기 위한 수단을 더 포함하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은 온-칩의 검색 결과가 제2 천이 이전에 발생되도록 하는 시간에서 상기 셀프-타이밍 신호의 제2 천이를 수행하기 위한 수단을 포함하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은 시간 지연 체인을 포함하되, 상기 셀프-타이밍 신호의 제1 에지가 상기 클럭 신호에 의해 개시되고, 제2 에지가 지연된 클럭 신호에 의해 개시되는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은, 상기 인코딩 수단으로부터의 가장 먼 비트만이 부정합이고, 다른 모든 비트들은 정합이며, 가장 느린 정합 라인 천이가 발생되도록, 변형된 코어 셀로 구성된 모델 행을 따라 연장되는, NOR-형 CAM 어레이의 모델 정합 라인을 포함하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은 복수개의 워드 슬라이스 중 하나에, 상기 인코딩 수단을 통한 지연을 모델링하고 상기 셀프-타이밍 신호의 상승 에지를 개시하는, NOR-형 모델 행의 모델 정합 라인을 포함하되, 하강 에지는 모델 글로벌 데이터 라인(model global data line)에 의해 개시되고, 상기 모델 글로벌 데이터 라인은 또한 검색 결과 신호 상의 천이를 간접적으로 개시하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은, 모델 행을 따라 연장되며, 항상 정합하는 변형된 코어 셀을 포함하며, 천이가 정합이며, 가장 느린 정합 라인 천이를 발생시키는, NAND-형 CAM 어레이내의 적어도 하나의 모델 정합 라인 체인을 포함하는 CAM 시스템.
- 제11항에 있어서,상기 셀프-타이밍 수단(152, 154)은, 복수개의 워드 슬라이스중 하나에, 상기 인코딩 수단을 통한 지연을 모델링하고, 상기 셀프-타이밍 신호의 상승 에지를 개시하는, NAND-형 모델 행의 모델 정합 라인을 포함하되, 하강 에지는 모델 글로벌 데이터 라인(model global data line)에 의해 개시되고, 상기 모델 글로벌 데이터 라인은 검색 결과 신호 상의 천이를 간접적으로 개시하는 CAM 시스템.
- 제11항에 있어서,상기 CAM 칩(120)은 상기 공통 정합 어드레스 버스 상으로의 3-상태 구동기(tri-state drivers)를 포함하되, 상기 구동기의 인에이블은 상기 셀프-타이밍 신호, 반전된 상기 히트-전달 입력 신호, 및 상기 온-칩 히트 결과를 입력으로서 갖는 3-입력의 AND 게이트에 의해 논리적으로 제어되는 CAM 시스템.
- 제11항에 있어서,상기 CAM 칩(120)은,반전된 상기 셀프-타이밍 신호; 상기 히트 입력 신호; 및 상기 온-칩 히트 결과의 논리적 OR에 의해 논리적으로 결정되는 각 CAM 칩의 히트 출력을 결정하기 위한 수단(136)을 더 포함하는 CAM 시스템.
- 제20항에 있어서,4-입력 OR 게이트를 더 포함하되,상기 셀프-타이밍 신호는, 상기 4-입력 OR 게이트 중 두 입력으로 선택적으로 분해되며, 다수의 온-칩 CAM 어레이들 중에서의 검색 결과의 조합에 기인한 지연을 허용하기 위해 상기 셀프-타이밍 신호 펄스를 넓게 하도록 하나의 입력이 지연된 셀프-타이밍 신호인 CAM 시스템.
- 제20항에 있어서,상기 CAM 칩은 복수개의 CAM 어레이(110)를 포함하고,상기 셀프-타이밍 신호는,상기 CAM 어레이 중 하나에 의해 직접 발생된 고속 셀프-타이밍 신호; 및히트 신호 논리 회로에 의해 생긴 상기 지연을 모델링 하는 논리 회로에 의해 발생되는 저속 셀프-타이밍 신호의 논리적 OR 인 CAM 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/919,227 US6230236B1 (en) | 1997-08-28 | 1997-08-28 | Content addressable memory system with cascaded memories and self timed signals |
US8/919,227 | 1997-08-28 | ||
US08/919,227 | 1997-08-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990023987A KR19990023987A (ko) | 1999-03-25 |
KR100562806B1 true KR100562806B1 (ko) | 2006-05-25 |
Family
ID=25441738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980035171A KR100562806B1 (ko) | 1997-08-28 | 1998-08-28 | 내용어드레서블메모리시스템 |
Country Status (5)
Country | Link |
---|---|
US (2) | US6230236B1 (ko) |
EP (1) | EP0899743B1 (ko) |
JP (1) | JPH11120775A (ko) |
KR (1) | KR100562806B1 (ko) |
DE (1) | DE69827714T2 (ko) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122707A (en) * | 1997-09-04 | 2000-09-19 | Nortel Networks Corporation | Content addressable memory system with self-timed signals and cascaded memories for propagating hit signals |
US6392910B1 (en) | 1999-09-10 | 2002-05-21 | Sibercore Technologies, Inc. | Priority encoder with multiple match function for content addressable memories and methods for implementing the same |
JP4298104B2 (ja) | 2000-01-18 | 2009-07-15 | Okiセミコンダクタ株式会社 | 連想メモリ |
US6539466B1 (en) * | 2000-02-21 | 2003-03-25 | Hewlett-Packard Company | System and method for TLB buddy entry self-timing |
US6957272B2 (en) | 2000-05-24 | 2005-10-18 | Alcatel Internetworking (Pe), Inc. | Stackable lookup engines |
US6493793B1 (en) * | 2000-06-16 | 2002-12-10 | Netlogic Microsystems, Inc. | Content addressable memory device having selective cascade logic and method for selectively combining match information in a CAM device |
US6614675B1 (en) * | 2000-10-10 | 2003-09-02 | Ati International, Srl | Pipelined content addressable memory with read only element encoding scheme |
US6718432B1 (en) * | 2001-03-22 | 2004-04-06 | Netlogic Microsystems, Inc. | Method and apparatus for transparent cascading of multiple content addressable memory devices |
US6538911B1 (en) * | 2001-08-24 | 2003-03-25 | Sibercore Technologies, Inc. | Content addressable memory with block select for power management |
US6763426B1 (en) * | 2001-12-27 | 2004-07-13 | Cypress Semiconductor Corporation | Cascadable content addressable memory (CAM) device and architecture |
US7230841B1 (en) | 2002-03-29 | 2007-06-12 | Netlogic Microsystems, Inc. | Content addressable memory having dynamic match resolution |
US6661686B1 (en) | 2002-03-29 | 2003-12-09 | Netlogic Microsystems, Inc. | Content addressable memory having dynamic match resolution |
US7401181B1 (en) * | 2002-05-29 | 2008-07-15 | Core Networks Llc | System and method for comparand reuse |
US6842358B2 (en) * | 2002-08-01 | 2005-01-11 | Netlogic Microsystems, Inc. | Content addressable memory with cascaded array |
KR100455392B1 (ko) * | 2002-08-10 | 2004-11-06 | 삼성전자주식회사 | 동작속도를 향상시키고 칩 면적을 감소시킬 수 있는워드라인 드라이버 회로를 구비하는 캐쉬 메모리장치 및이의 워드라인 구동방법 |
US6775166B2 (en) * | 2002-08-30 | 2004-08-10 | Mosaid Technologies, Inc. | Content addressable memory architecture |
US6924994B1 (en) | 2003-03-10 | 2005-08-02 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices having scalable multiple match detection circuits therein |
US7043600B2 (en) * | 2003-05-12 | 2006-05-09 | Integrated Silison Solution, Inc. | Cascading content addressable memory devices with programmable input/output connections |
US7257670B2 (en) * | 2003-06-18 | 2007-08-14 | Micron Technology, Inc. | Multipurpose CAM circuit |
US6944039B1 (en) | 2003-12-12 | 2005-09-13 | Netlogic Microsystems, Inc. | Content addressable memory with mode-selectable match detect timing |
US7337267B1 (en) * | 2004-02-10 | 2008-02-26 | Netlogic Microsystems, Inc | Hierarchical, programmable-priority content addressable memory system |
US7296129B2 (en) * | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7539800B2 (en) * | 2004-07-30 | 2009-05-26 | International Business Machines Corporation | System, method and storage medium for providing segment level sparing |
US7389375B2 (en) | 2004-07-30 | 2008-06-17 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7277988B2 (en) * | 2004-10-29 | 2007-10-02 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US7441060B2 (en) | 2004-10-29 | 2008-10-21 | International Business Machines Corporation | System, method and storage medium for providing a service interface to a memory system |
US7356737B2 (en) * | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | System, method and storage medium for testing a memory module |
US7331010B2 (en) * | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7395476B2 (en) * | 2004-10-29 | 2008-07-01 | International Business Machines Corporation | System, method and storage medium for providing a high speed test interface to a memory subsystem |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7305574B2 (en) | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7486531B2 (en) * | 2004-11-09 | 2009-02-03 | Integrated Device Technology, Inc. | Low power content addressable memory array (CAM) and method of operating same |
US7196922B2 (en) | 2005-07-25 | 2007-03-27 | Stmicroelectronics, Inc. | Programmable priority encoder |
US7478259B2 (en) * | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
JP4945125B2 (ja) * | 2005-12-21 | 2012-06-06 | ラピスセミコンダクタ株式会社 | メモリ制御装置 |
US7636813B2 (en) | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7640386B2 (en) | 2006-05-24 | 2009-12-29 | International Business Machines Corporation | Systems and methods for providing memory modules with multiple hub devices |
US7594055B2 (en) | 2006-05-24 | 2009-09-22 | International Business Machines Corporation | Systems and methods for providing distributed technology independent memory controllers |
US7584336B2 (en) | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7581073B2 (en) | 2006-08-09 | 2009-08-25 | International Business Machines Corporation | Systems and methods for providing distributed autonomous power management in a memory system |
US7587559B2 (en) | 2006-08-10 | 2009-09-08 | International Business Machines Corporation | Systems and methods for memory module power management |
US7490217B2 (en) | 2006-08-15 | 2009-02-10 | International Business Machines Corporation | Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables |
US7539842B2 (en) | 2006-08-15 | 2009-05-26 | International Business Machines Corporation | Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables |
US7477522B2 (en) * | 2006-10-23 | 2009-01-13 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
US7870459B2 (en) * | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7822916B1 (en) | 2006-10-31 | 2010-10-26 | Netlogic Microsystems, Inc. | Integrated circuit search engine devices having priority sequencer circuits therein that sequentially encode multiple match signals |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US7606988B2 (en) | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
US7603526B2 (en) | 2007-01-29 | 2009-10-13 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
JP2015225675A (ja) * | 2014-05-26 | 2015-12-14 | ルネサスエレクトロニクス株式会社 | 連想メモリおよび半導体装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR870010552A (ko) * | 1986-04-23 | 1987-11-30 | 미다 가쓰시게 | 반도체 메모리장치 |
JPH06251589A (ja) * | 1993-03-02 | 1994-09-09 | Hitachi Ltd | 連想メモリ入出力制御回路 |
JPH08138384A (ja) * | 1994-03-24 | 1996-05-31 | Kawasaki Steel Corp | 連想メモリ |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4670858A (en) * | 1983-06-07 | 1987-06-02 | Tektronix, Inc. | High storage capacity associative memory |
JPH071636B2 (ja) * | 1986-03-20 | 1995-01-11 | 松下電器産業株式会社 | 変換バツフア装置 |
JPH0748309B2 (ja) * | 1987-12-16 | 1995-05-24 | 日本電気株式会社 | 記号列照合メモリおよびそのカスケード接続方式 |
US5018111A (en) * | 1988-12-27 | 1991-05-21 | Intel Corporation | Timing circuit for memory employing reset function |
JPH02308499A (ja) * | 1989-05-23 | 1990-12-21 | Toshiba Corp | 連想メモリ |
US5031141A (en) * | 1990-04-06 | 1991-07-09 | Intel Corporation | Apparatus for generating self-timing for on-chip cache |
US5440715A (en) * | 1990-06-27 | 1995-08-08 | Advanced Micro Devices, Inc. | Method and apparatus for expanding the width of a content addressable memory using a continuation bit |
US5289403A (en) * | 1991-07-08 | 1994-02-22 | Hewlett-Packard Company | Self-timed content addressable memory access mechanism with built-in margin test feature |
US5555397A (en) * | 1992-01-10 | 1996-09-10 | Kawasaki Steel Corporation | Priority encoder applicable to large capacity content addressable memory |
US5568416A (en) * | 1994-03-24 | 1996-10-22 | Kawasaki Steel Corporation | Associative memory |
US5517441A (en) * | 1994-12-14 | 1996-05-14 | International Business Machines Corporation | Content addressable memory circuitry and method of operation |
JP3703518B2 (ja) * | 1995-03-30 | 2005-10-05 | 川崎マイクロエレクトロニクス株式会社 | 連想メモリシステム |
US5828593A (en) * | 1996-07-11 | 1998-10-27 | Northern Telecom Limited | Large-capacity content addressable memory |
US5859791A (en) * | 1997-01-09 | 1999-01-12 | Northern Telecom Limited | Content addressable memory |
US6022707A (en) * | 1997-09-22 | 2000-02-08 | Incyte Pharmaceuticals, Inc. | Ras-like protein |
-
1997
- 1997-08-28 US US08/919,227 patent/US6230236B1/en not_active Expired - Lifetime
-
1998
- 1998-06-18 EP EP98202045A patent/EP0899743B1/en not_active Expired - Lifetime
- 1998-06-18 DE DE69827714T patent/DE69827714T2/de not_active Expired - Lifetime
- 1998-08-17 JP JP10230454A patent/JPH11120775A/ja active Pending
- 1998-08-28 KR KR1019980035171A patent/KR100562806B1/ko not_active IP Right Cessation
-
2000
- 2000-05-18 US US09/572,861 patent/US6301636B1/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR870010552A (ko) * | 1986-04-23 | 1987-11-30 | 미다 가쓰시게 | 반도체 메모리장치 |
JPH06251589A (ja) * | 1993-03-02 | 1994-09-09 | Hitachi Ltd | 連想メモリ入出力制御回路 |
JPH08138384A (ja) * | 1994-03-24 | 1996-05-31 | Kawasaki Steel Corp | 連想メモリ |
Non-Patent Citations (1)
Title |
---|
IEEE Journal of Solid-State Circuit Vol.27, No.12, December 1992, T. Yamagata * |
Also Published As
Publication number | Publication date |
---|---|
EP0899743A2 (en) | 1999-03-03 |
JPH11120775A (ja) | 1999-04-30 |
DE69827714D1 (de) | 2004-12-30 |
DE69827714T2 (de) | 2005-04-28 |
KR19990023987A (ko) | 1999-03-25 |
EP0899743A3 (en) | 1999-08-04 |
US6301636B1 (en) | 2001-10-09 |
US6230236B1 (en) | 2001-05-08 |
EP0899743B1 (en) | 2004-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100562806B1 (ko) | 내용어드레서블메모리시스템 | |
US5859791A (en) | Content addressable memory | |
US6148364A (en) | Method and apparatus for cascading content addressable memory devices | |
US6430088B1 (en) | Embedded static random access memory for field programmable gate array | |
US4712190A (en) | Self-timed random access memory chip | |
USRE43359E1 (en) | System and method for low power searching in content addressable memories using sampling search words to save power in compare lines | |
WO1999023664A1 (en) | Synchronous content addressable memory with single cycle operation | |
JP4603103B2 (ja) | 内容参照メモリ | |
US4831586A (en) | Content-addressed memory | |
JP2009009695A (ja) | Cam、cam内で使用するためのダミー一致線チェーン、およびコアセル | |
US4852061A (en) | High density, high performance register file having improved clocking means | |
JP4347439B2 (ja) | 内容アドレスメモリシステム | |
WO1999023663A1 (en) | Synchronous content addressable memory with single cycle operation | |
US7248491B1 (en) | Circuit for and method of implementing a content addressable memory in a programmable logic device | |
US6046931A (en) | Method and apparatus for a RAM circuit having N-nary output interface | |
US7242633B1 (en) | Memory device and method of transferring data in memory device | |
US5524226A (en) | Register file system for microcomputer including a decoding system for concurrently activating source and destination word lines | |
JP3581364B2 (ja) | ランダムアクセス比較アレイ | |
JPH05198163A (ja) | 半導体記憶装置におけるアドレスポインタ | |
EP0471932A2 (en) | Virtual multi-port ram | |
Ng et al. | A novel adiabatic register file design | |
EP0288774B1 (en) | High density, high performance register file circuit | |
US6069836A (en) | Method and apparatus for a RAM circuit having N-nary word line generation | |
KR0154737B1 (ko) | 멀티포트 레지스터 화일 | |
JPH07273640A (ja) | フィールドプログラマブルゲートアレー素子 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120228 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |