KR20150004352A - 컨텐트 주소지정가능 메모리 조기-예측 늦은-정정 단일 엔드형 감지 - Google Patents

컨텐트 주소지정가능 메모리 조기-예측 늦은-정정 단일 엔드형 감지 Download PDF

Info

Publication number
KR20150004352A
KR20150004352A KR1020147029797A KR20147029797A KR20150004352A KR 20150004352 A KR20150004352 A KR 20150004352A KR 1020147029797 A KR1020147029797 A KR 1020147029797A KR 20147029797 A KR20147029797 A KR 20147029797A KR 20150004352 A KR20150004352 A KR 20150004352A
Authority
KR
South Korea
Prior art keywords
search
cam
main
coupled
circuit
Prior art date
Application number
KR1020147029797A
Other languages
English (en)
Inventor
이고르 아르소브스키
다니엘 에이 돕슨
트래비스 알 해빅
레이드 에이 위스토트
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20150004352A publication Critical patent/KR20150004352A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • G11C15/043Digital 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 using capacitive charge storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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
    • G11C15/046Digital 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 using non-volatile storage elements

Landscapes

  • Static Random-Access Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

컨텐트 주소지정가능 메모리(content addressable memory, CAM) 어레이에서 서치 동작들(search operations)을 수행하기 위한 회로들 및 방법들이 제공된다. CAM을 서치하기 위한 시스템은 이단(two stage) CAM 서치 중 프리-서치(pre-search)(100)가 아직 활성화되어 있는(active) 동안에 상기 이단 CAM 서치 중 메인-서치(main-search)(130)를 선택적으로 활성화시키는 회로를 포함한다.

Description

컨텐트 주소지정가능 메모리 조기-예측 늦은-정정 단일 엔드형 감지{CONTENT ADDRESSABLE MEMORY EARLY-PREDICT LATE-CORRECT SINGLE ENDED SENSING}
본 발명은 컨텐트 주소지정가능 메모리(content addressable memory, CAM)와 관련되고, 더 구체적으로는, CAM 어레이에서 서치 동작들(seach operations)을 수행하기 위한 회로들 및 방법들과 관련된다.
랜덤 억세스 메모리(random access memory, RAM)와 같은 표준 컴퓨터 메모리에서, 사용자는 메모리 주소를 제공하고, RAM은 그 메모리 주소에 저장된 데이터 워드(data word)를 리턴한다. 표준 컴퓨터 메모리와는 대조적으로, 컨텐트-주소지정가능 메모리(CAM)는 단일 동작으로, 사용자로부터 데이터 워드를 받아 전체 CAM 어레이를 서치(search)하며, 그 데이터 워드가 CAM 어레이 내 어디엔가 저장되는지를 결정한다. CAM은 단일 동작으로 자신의 전체 메모리를 서치하기 때문에, 서치 어플리케이션들에서 RAM보다 훨씬 더 빠르다.
CAM에는 두 가지 유형들, 즉 바이너리 CAM 및 터너리 CAM(TCAM)이 있다. 바이너리 CAM들은, 데이터 워드를 구성하는, 바이너리 비트들, 즉 0과 1(0,1)을 저장하고 서치할 수 있도록 한다. 터너리 CAM들은 세 가지 상태들, 즉, 0, 1, "돈캐어(don't care)" 비트(0,1,X) 를 저장할 수 있도록 한다. 터너리 CAM의 "돈캐어" 비트는 데이터 워드들을 서치함에 있어서 수용량의 증가(increased accommodation)를 가능하게 한다. 예를 들어, 터너리 CAM은 데이터 워드, "11XX0"를 저장할 수 있는데, 이는 서치되는 데이터 워드들, 즉 "11000", "11010", "11100", 및 "11110" 중 어느 것과도 매치될 것이다.
CAM은 흔히 컴퓨터 네트워크 디바이스들에서 사용된다. 예를 들어, 네트워크 스위치가 자신의 포트들 중 하나로부터 데이터 프레임을 수신할 때, 그 프레임의 소스 주소 및 수신 포트의 식별자(identifier)로 내부 주소 테이블을 업데이트한다. 그런 다음, 네트워크 스위치는, 데이터 프레임을 전송받아야 하는 포트를 결정하기 위해 내부 주소 테이블에서 데이터 프레임의 목적지 주소(destination address)를 찾고, 그 포트 상의 자신의 목적지 주소로 데이터 프레임을 전송한다. 내부 주소 테이블은, 데이터 프레임이 적절한 포트로 빠르게 전송되어, 네트워크 스위치의 지연(latency)을 감소시키도록 하기 위해, 통상적으로 바이너리 CAM에 의해 구현된다.
TCAM은 네트워크 라우터들에 흔히 사용되는데, 네트워크 라우터들에서, 각각의 주소는 서브넷 환경설정(subnet configuration)에 따라 그 크기가 변하는 네트워크 주소(network address)와, 나머지 비트들을 차지하는 호스트 주소(host address)를 갖는다. 네트워크 주소와 호스트 주소는 네트워크의 서브넷 각각에 대한 네트워크 마스크(network mask)에 의해 구별된다. 네트워크에서 자신의 목적지(destination)에 대한 라우팅 정보는, 각각의 알려진 목적지 주소(destination address), 연관된 네트워크 마스크(network mask), 그리고 그 목적지 주소로 패킷들을 라우팅하는데 필요한 라우팅 정보(routing information)를 포함하는, 라우팅 테이블(routing table)을 찾기 위해, 라우터를 필요로 한다. 라우팅은 TCAM에 의해 빠르게 수행되는데, TCAM은 "돈캐어" 비트들로 그 주소의 호스트 부분을 마스크한다. 하나의 동작으로 호스트 주소를 마스크하고 목적지 주소를 비교하는, TCAM은 목적지 주소로 패킷들을 라우팅하는데 필요한 라우팅 정보를 빠르게 리트리브(retrieve)한다.
CAM(바이너리 또는 터너리)을 서치할 때, 서치 데이터(search data)는 서치 라인들(search lines) 상으로 로드되어 CAM 내에 저장된 워드들과 비교된다. 서치-및-비교 동작(search-and-compare operation) 동안, CAM은 완전한 병렬 서치(fully parallel search)를 수행하고 각각의 저장된 워드와 연관된 매치 또는 미스매치 신호 - 이는 그 서치 워드가 저장된 워드와 매치하는지 또는 그렇지 않은지를 나타냄 - 를 생성한다.
단일 서치 워드에 대한 모든 저장된 워드들 사이의 이러한 빠른 병렬 비교를 가능하게 하기 위해, 각각의 CAM 워드는 전용 서치 하드웨어(dedicated search hardware)를 포함한다. 각각의 CAM 셀은 추가 비트-비교 트랜지스터들(bit-comparison transistors) 및 스토리지 엘리먼트(storage element)를 포함하는데, 이는 일반적으로 스태틱 랜덤 억세스 메모리(Static Random Access Memory, SRAM) 셀로 구현된다. 이러한 추가되는 회로는, 각각의 CAM 워드에 대해 매치 또는 미스매치 신호를 만들어내기 위해, CAM 워드를 가로질러(accross the CAM word) 매치-라인(ML)과 결합된다. 이러한 서치 하드웨어는 CAM 어레이의 전체 컨텐츠가 단일 클럭 싸이클에서 서치될 수 있도록 한다(예컨대, 모든 저장된 CAM 워드들이 병렬로 서치된다). 따라서, 1K 워드의 메모리 서치를 완료하기 위해 일반적으로 1K 클럭 싸이클들을 필요로 하는 표준 메모리(예컨대, SRAM 및 DRAM)와는 대조적으로, CAM은 단일 클럭 싸이클에서 동시에 모든 엔트리들을 서치할 수 있는 능력을 갖는다.
불행하게도, 기술이 서브미크론 기하구조(geometries)까지 스케일링함에 따라, 랜덤 디바이스 변화(random device variation, RDV)는 더 두드러지게 나타나고 있다. 트랜지스터 길이(transistor length), 트랜지스터 폭(transistor width) 및 트랜지스트 스레쉬홀드 전압(transistor threshold voltage)과 같은, 파라미터들의 RDV는 똑같이 설계된 이웃하는 디바이스들에서 심지어 더 중요할 수 있다. RDV의 영향은 반도체 메모리들의 설계에서 특히 분명하게 드러난다. 대부분의 메모리들이 주로 용량성 어레이 라인들(capacitive array lines) 상의 작은 전압 신호들을 검출하기 위한 감지 증폭기들(sense amplifiers)에 의존하기 때문에, 감지 증폭기 디바이스들 뿐만 아니라 메모리 셀들에서의 RDV는 부정확한 결과들(incorrect results)을 만들어낼 수 있다. 신뢰성을 향상시키기 위해, 메모리 설계자들은 감지 회로들(sensing circuits)을 보수적으로 조정(tune)하고, 그에 따라 신뢰할 수 있는 동작을 위한 큰 감지 마진(sensing margin)을 유지하기 위해 성능과 트레이드 오프한다.
발전된 기술들(예컨대, 100nm 및 더 작은 게이트 기하구조)에서, RDV는 성능을 향상시킴에 있어서 주요 장애물이 되고 있다. 디바이스 변화(device variation)가 증가함에 따라, 신호 도착 및 데이터 캡쳐를 위한 타이밍 불확실성(timing uncertainty)이 증가하고, 그래서 더 큰 데이터 캡쳐 마진들을 필요로 하고, 따라서 성능을 제한한다.
단일-엔드형의 본질(single-ended nature)에 기인하여, CAM 서치 동작 동안에 수행되는 ML 감지는, SRAM 리드 회로(read circuitry)에 사용되는 차동 감지(differential sensing)보다 RDV에 훨씬 더 민감하다. 따라서, 신뢰할 수 있는 동작을 유지하기 위해, 대부분의 ML 감지 기술들(sensing schemes)은, 느리고 전력 비효율적(power-inefficient)인 풀-스윙 감지(full-swing sensing)를 채용한다.
따라서, CAM 설계 트레이드오프(design tradeoffs)는 서치 억세스 시간(search access time), 전력, 및 밀도를 포함한다. 전력 사용량을 향상시키기 위해, CAM을 서치함에 있어서 때로는 이단(two stage) 감지 기술이 사용된다. 이단 감지 기술은 프리-비교(pre-compare)(예, 프리-서치(pre-search)) 및 메인-비교(main-compare)(예, 메인-서치(main-search))를 포함한다. 프리-비교에서, 전력 집중적인(power intensive) 메인-비교를 위해 메인 ML이 프리챠지(precharge)되기 전에, 각각의 CAM 워드 내 소수의 비트들이 서치 워드 내 해당 비트들과 비교된다. 프리-비교가 특정 CAM 워드에 대해 미스(miss)를 보일 경우, 그 워드에 대해서는 메인-비교가 수행되지 않으며, 따라서 메인-비교를 수행하는 것과 관련된 전력을 절약한다.
종래의 타이밍 방법론은, 메인-비교를 시작하기 전에 프리-비교를 완료하는 것을 필요로 한다. 그러나, 이는, 프리-비교 CAM 셀 및/또는 프리-비교 감지 회로에서의 변화(variation)에 대한 마진을 둘 경우(예, 설계를 할 경우), 문제가 많아지게 된다. 특히, 가장 느린 통계상으로 관련있는(slowest statistically relevant) 프리-비교 경우에 대한 마진을 두는 것은, 대부분의 경우들에 있어서 결국 필요한 것보다 더 느린 메인-비교 시작을 초래한다. 타이밍 불확실성은 디바이스 크기들이 더 축소됨에 따른 디바이스 변화에 따라 증가하며, 그래서 프리-서치 완료에 관한 이러한 큰 타이밍 불확실성은 메인-비교의 시작을 지연시킴으로써 전체 CAM 성능에 영향을 주고 있다.
따라서, 상술한 문제점들 및 한계들을 극복할 필요가 당해 기술 분야에 존재한다.
발명의 측면에서, 컨텐트 주소지정가능 메모리(content addressable memory, CAM)를 서치(search)하기 위한 시스템이 있다. 이 시스템은, 이단(two stage) CAM 서치 중 프리-서치(pre-search)가 아직 활성화되어 있는(active) 동안에, 상기 이단 CAM 서치 중 메인-서치(main-search)를 선택적으로 활성화(activate)시키는 회로를 포함한다.
발명의 또 다른 측면에서, 컨텐트 주소지정가능 메모리(CAM)의 제1의 복수의 셀들에 연결된 프리-서치 매치 라인(pre-search match line)(PML)을 포함하는 회로가 있다. 상기 회로는 또한 상기 CAM의 제2의 복수의 셀들에 연결된 메인-서치 매치 라인(main-search match line)(MML)을 포함한다. 상기 회로는 또한, 상기 PML과 연관된 프리-서치 동작을 시작하고; 그리고 상기 프리-서치 동작의 완료에 앞서 상기 MML과 연관된 메인-서치 동작을 시작하도록, 구성(structure) 및 배열(arrange)된 디바이스들의 조합을 포함한다.
발명의 또 다른 측면에서, 낮은 스레쉬홀드, 높은 스레쉬홀드, 및 히스테리시스 값을 갖는 반전 슈미트 트리거(inverting Schmitt trigger)를 포함하는 회로가 있다. 상기 회로는 또한 상기 슈미트 트리거에 연결된 조정가능 핀(tunable pin)을 포함한다. 상기 슈미트 트리거 및 상기 조정가능 핀은, 상기 조정가능 핀에 관한 전압을 조정하는 것이, 상기 슈미트 트리거의 히스테리시스 값을 선택적으로 변화시키도록, 구성되고 배열된다.
발명의 또 다른 측면에서, 컴퓨터 메모리에서 메모리 동작을 수행하는 방법이 있다. 상기 방법은, 상기 컴퓨터 메모리에서 이단(two-stage) 메모리 동작 중 제1 단계를 시작하는 단계를 포함한다. 상기 방법은 또한, 상기 제1 단계가 아직 실행 중인 동안에 그리고 상기 제1 단계의 예비 결과들(preliminary results)에 기초하여, 상기 이단 메모리 동작 중 제2 단계를 선택적으로 시작하는 단계를 포함한다. 상기 방법은 추가로, 상기 제2 단계를 시작한 후, 상기 제1 단계의 최종 결과를 검출하는 단계를 포함한다. 상기 방법은 상기 제1 단계의 최종 결과에 기초하여, 상기 제2 단계를 중단(interrupt)하는 것 및 완료하는 것 중 하나를 수행하는 단계를 더 포함한다.
발명의 또 다른 측면에서, 컨텐트 주소지정가능 메모리(CAM)를 서치하는 방법이 있다. 상기 방법은 이단 CAM 서치 동작 중 프리-서치 동안, 프리-서치 매치 라인(PML) 상의 전압을 디벨롭(develop)하는 단계를 포함한다. 상기 방법은 또한 상기 전압이 스레쉬홀드 전압을 넘어서는 것을 검출하는 단계를 포함한다. 상기 방법은 상기 검출에 기초하여 그리고 상기 프리-서치의 완료에 앞서, 상기 이단 CAM 서치 동작 중 메인-서치(main-search)를 시작하는 단계를 더 포함한다. 상기 방법은 추가로, 상기 메인-서치를 시작한 후, 상기 전압이 상기 스레쉬홀드 레벨 아래로 강하(drop)되는 것을 검출하는 것, 및 상기 메인-서치를 중단하는 것 중 하나를 수행하는 단계, 그리고 상기 전압이 상기 스레쉬홀드 레벨보다 높은 상태로 남아 있는지를 검출하고 상기 메인-서치를 완료하는 단계를 포함한다.
본 발명은 이하의 상세한 설명에서, 도시된 복수의 도면들을 참조하여 설명되는데, 설명에서 본 발명에 관한 실시예들은 발명을 한정하려는 것이 아니라, 예들을 설명하기 위해 예시된 것이다.
도 1은 3x4 비트 바이너리 CAM의 블록도를 도시한다.
도 2는 3x4 비트 TCAM의 블록도를 도시한다.
도 3은 CAM 감지를 위해 매치-라인(ML)을 프리챠지시키는 것의 개념을 도시한다.
도 4는 이단(two-stage) CAM 감지 기술(sensing scheme)을 도시한다.
도 5는 발명의 측면들에 따른 메인-서치의 조기 활성화(early activation)를 도시한다.
도 6은 발명의 측면들에 따른 조기-예측 늦은-정정(Early-Predict Late-Correct)(EPLC) CAM 감지의 하이 레벨 블록도를 도시한다.
도 7은 발명의 측면들에 따른 EPLC 회로의 예시적인 트랜지스터-레벨의 구현을 보여준다.
도 8은 발명의 측면들에 따른 EPLC 회로의 동작에 대응하는 시뮬레이션 데이터를 보여준다.
도 9는 발명의 측면들에 따른, 느린 프로세스 코너(slow process corner) 및 빠른 프로세스 코너(fast process corner)에서의 정규화된 분포들(normalized distributions)을 보여준다.
도 10은 발명의 측면들에 따른 실리콘 어웨어 튜닝(siicon aware tuning)과 관련된 시뮬레이션 데이터를 보여준다.
도 11은 발명의 측면들에 따른 전체 프로세스 코너(full process corner)에 걸친 TCAM 하드웨어에 관한 1Gsearch/sec를 넘어서는 실리콘 측정값들(silicon measurements)을 보여준다.
도 12는 발명의 측면들에 따른 임베디드 딥-트렌치(embedded deep-trench)(DT) 디커플링 커패시터들(decoupling capacitors)을 갖는 예시적인 TCAM의 마이크로포토그래프를 보여준다.
도 13은 발명의 측면들에 따른 반도체 설계, 제조, 및/또는 테스트에 사용되는 설계 프로세스의 흐름도이다.
발명은 컨텐트 주소지정가능 메모리(CAM)와 관련되고, 더 구체적으로는 CAM에서 서치 동작들을 수행하기 위한 회로들 및 방법들과 관련된다. 발명의 측면들에 따라, 조기-예측 늦은-정정(EPLC) 감지 기술에는 이단(two-stage) CAM 서치 동작이 제공된다. 실시예들에서, EPLC 기술은, 프리-서치의 전체 완료를 기다리지 않고서, 프리-서치의 예비 결과들에 기초하여 메인-서치를 시작하여, 프리-서치와 메인-서치의 오버랩이 있도록 한다(예컨대, 조기-예측). 게다가, 메인-서치는 프리-서치의 더 늦은 결과들에 기초하여 종료될 수 있다(예컨대, 늦은-정정). 이러한 방법으로, 발명의 구현들은 더 빠른 CAM 서치 동작을 제공한다.
실시예들에서, 터너리 컨텐트 주소지정가능 메모리(TCAM)는 그것의 프리-서치 결과들에 관한 조기-예측이 후속 메인-서치 동작을 활성화시키는 이단계(two phase)의 서치 동작을 사용한다. 여기서, 상기 후속 메인-서치 동작은, 최종 프리-서치 결과들이 조기-예측과 모순(contradict)될 경우에만 더 늦게 중단된다. 이러한 조기 메인-서치 활성화는 성능을 약 30%로 향상시키는 한편, 늦은-정정(late-correct)의 낮은-확률은 무시해도 될 정도의 전력 영향(power impact)을 미친다. 예시적인 구현(이러한 구현으로 한정되는 것은 아님)에서, 발명의 측면들에 따른 EPLC 감지는, 단지 약 0.76W의 전력만을 소비하면서, 32nm 하이-케이 금속 게이트 SOI(silicon-on-insulator) 프로세스에서 구현된 고-성능 TCAM 컴파일러가 2048x640 비트 TCAM 인스턴스 상에서 1Gsearch/sec 스루풋(throughput)을 달성할 수 있도록 한다. 파워 서플라이 노이즈 감소를 위한 임베디드 딥-트렌치(Embedded Deep-Trench, DT) 커패시턴스는 약 1.56mm2의 총 TCAM 영역에 대한 약 5%의 오버헤드를 추가한다.
여기서는 CAM에 관하여 발명의 측면들이 설명된다. 그러나, 발명은 CAM에 사용하는 것으로 한정되는 것은 아니며, 여기에 설명되는 발명의 EPLC 감지 기술은, 제1 단계의 완전한 완료 후에만 제2 단계가 정상적으로 시작되는, 어떤 적절한 이단 감지 프로세스에 사용될 수 있다. 예를 들어, 발명의 구현들은, 제2 동작(제2 단계)의 결과들이 제1 동작(제1 단계)에 의존하는 어떤 이단 메모리 동작에 사용될 수 있으며, 여기서 제2 동작은 제1 동작의 예비 결과들에 기초하여 시작되고, 제2 동작이 실행되고 있는 동안 제1 동작의 최종 결과들에 기초하여 더 나중에 완료 또는 중단된다. 이러한 기술은, 예를 들어, DRAM, SRAM, 및 비휘발성 메모리들에 사용될 수 있다.
도 1은 3x4 비트 바이너리 CAM의 간략화된 블록도를 도시한다. 바이너리 CAM 셀들은 세 개의 수평 워드들 - 이들 각각은 4 비트 길이임 - 로 배열된다. 바이너리 CAM 셀들은 스토리지와 비교 회로 둘 다를 포함한다. 수직으로 쌍을 이룬 서치-라인들(SLs)은, 병렬로, 바이너리 CAM 셀들에 서치 데이터 워드의 비트들 0 또는 1을 인가(apply)한다. 수평으로 배열되어 있는 매치-라인들(MLs)은 서치 데이터 워드의 각각의 비트가 바이너리 CAM 셀들의 행(row)의 저장된 데이터 워드의 각각의 비트와 매치하는지를 비교한다. 만약 매치가 발생하면, 그 매치-라인은 매치를 나타낸다.
도 1에 도시된 예시적인 바이너리 CAM에서, CAM 셀들은, 예컨대 네 개의 셀들로 이루어진 수평 행들(rows), 1, 2, 및 3으로 배열된다. 각각의 수평 행의 각각의 CAM 셀은 ML들, 4, 5, 및 6에 결합된다. 행에서 셀들의 수는 서치될 워드의 길이에 대응하므로, 당해 기술 분야에서 통상의 기술을 가진 자들은 발명의 사상을 벗어나지 않고, 임의 개수의 셀들을 이용할 수 있다. 나아가, 설명을 위해, 단지 세 개의 행들과 ML들 4-6만이 도시된다. 또한, 당해 기술 분야에서 통상의 기술을 가진 자들은 임의 개수의 행들 및 ML들을 이용할 수 있다. 나아가, CAM 셀들은 열들(columns), 8, 9, 10, 및 11로 배열된다. 단지 네 개의 열들만이 도시되어 있으나, 열들의 수는 서치될 CAM 셀 워드 내 비트들의 수에 대응하므로, 어떤 개수의 열들도 이용될 수 있다.
서치 데이터(7), 즉 서치될 데이터 워드는 CAM 행들 1-3에 만들어진 각각의 워드와의 비교를 위해 제공된다. 병렬 서치 라인들(SLs)(12-19)은 서치 데이터(7)에 연결(couple)되며, 각각의 열에서의 각각의 CAM 셀은, 서치 데이터(7)의 데이터 비트에 대응하는 각각의 셀이 매치를 위해 서치될 수 있도록 하기 위해, 두 개의 서치 라인들에 연결된다. 따라서, 서치 데이터(7)는 병렬로 SL들(12-19)에 인가된다. 서치 결과들은 병렬로 ML들 4-6 상에서 디벨롭되고 각각의 감지 증폭기들(20-22)에 인가된다.
도 2는 3x4 비트 터너리 CAM(TCAM)의 간략화된 블록도를 도시한다. 도 1의 바이너리 CAM 셀들과 마찬가지로, 도 2의 터너리 CAM 셀들은 세 개의 수평 워드들 - 각각은 4 비트 길이를 가짐 - 로 배열된다. 이와 유사하게, 수직으로 쌍을 이룬 서치-라인들(SLs)은, 서치 데이터 워드의 비트들, 0 또는 1을 터너리 CAM 셀들에 병렬로 인가한다. 그러나, 터너리 CAM 셀들의 저장 및 비교 회로는 또한 "돈캐어" 비트, X를 저장하고, 각각의 개별 "돈캐어" 비트 X를 인가된 서치 데이터 워드의 해당 비트와 비교할 수 있다. 도 2로 나타낸 바와 같이, 세 개의 저장된 데이터 워드들 중 두 개에서 "돈캐어" 비트들 X의 존재는 세 개의 매치-라인들(MLs) 중 두 개가 활성화될 수 있도록 한다.
도 1 및 2를 참조하면, 바이너리 또는 터너리 CAM 서치는 모든 MLs을 하이(high)로 프리챠지하여, 그들 모두를 임시로 매치 상태(match state)에 두는 것으로 시작한다. 다음으로, 서치-라인 드라이버들은 SL들 상으로 서치 데이터 워드를 보낸다. 그런 다음, 각각의 CAM 셀은 자신의 저장된 비트 또는 상태를 자신의 해당 SLs 상의 비트와 비교한다. 매칭 비트들을 갖는 CAM 셀들은 ML에 영향을 미치지 않지만, 미스매치를 갖는 CAM 셀들은 ML을 접지로 풀다운(pull down)한다. X를 저장하는 터너리 CAM 셀들은 마치 매치가 발생한 것처럼 동작한다. 종합한 결과는, ML들은 적어도 하나의 개별 비트 미스매치를 갖는 어떤 서치 데이터 워드에 대해서 풀다운(pull down) 되는 것이다. 다른 모든 ML들은 활성화된 상태, 즉, 하이(high)로 남아 있다.
도 3은 CAM 감지를 위해 매치-라인(ML)을 프리챠지하는 개념을 도시한다. 특히, 도 3은 CAM 내 셀들의 행, 예컨대, 도 2에 도시된 셀들의 수평 행들 중 하나를 도시한다. 각각의 셀, 예컨대, C0, Cn, Cm, Cz는 ML에 연결된다. 나아가, 바이너리 또는 터너리 형태로 있을 수 있는 각각의 셀은 저장 엘리먼트 "m"(예컨대 SRAM 또는 DRAM)과, ML과 접지(GND) 사이에 연결된 한 쌍의 nFET들의 스택들(n-형 전계 효과 트랜지스터들)을 포함한다. 각각의 스택의 상측 nFET는 저장 엘리먼트 "m"에 연결되는 반면, 하측 nFET들은 셀 열(cell column)과 연관된 SL들의 쌍에 연결된다. 각각의 셀, 예컨대, C0, Cn, Cm, Cz는, 당해 기술 분야에서 통상의 기술을 가진 자들에게 알려진 바와 같이, 16 개의 FET들을 포함하는 SRAM-기반 TCAM 셀일 수 있다.
계속해서 도 3을 참조하면, 서치 동작을 위해, SL들(예컨대, SL0X, SL0Y, SLnX, SLnY, SLmX, SLmY, SLzX, SLzY)은 초기에 접지로 세트되고 ML은 하이(예컨대, VDD)로 프리챠지된다. 그런 다음, 서치 데이터가 SL들 상에 인가되어, 그 결과들이 ML 상에서 디벨롭되도록 한다. 각각의 셀에 대해, 스토리지 엘리먼트 "m" 내의 비트가 자신의 SLs 상의 데이터와 매치하지 않을 때(예컨대, 미스(miss)), 그 미스매치된 nFET 스택들은 ML로부터 접지(GND)로의 경로를 생성하고, 그래서 ML을 로우(low)로 끌어내린다. 한편, 셀의 스토리지 엘리먼트 "m" 내 비트가 자신의 SLs 상의 데이터와 매치될 때(예컨대, 매치), 그 셀은 ML과 접지(GND) 사이의 경로를 생성하지 않는다. 모든 셀들 내 비트들이 각각의 SLs 상의 데이터와 매치할 때, ML은 하이(high)로 유지되는 반면에, 적어도 하나의 비트가 그것의 각각의 SLs 상의 데이터와 매치되지 않을 때, ML은 로우로 내려와질 수 있다. ML 상의 신호는, ML이 VDD 또는 접지(GND)에 있는지를 구별하는 감지 증폭기(SA, sense amplifier)에 인가된다.
도 4는 이단 CAM 감지 기술을 도시한다. 특히, 도 4는 프리-서치 매치-라인(pre-search match-line)(PML)에 연결된 셀들의 제1 서브셋(50)을 프리-서치하도록 동작하는 추가 회로(additional circuity)와 함께 도 3에 도시된 셀들의 동일 행(same row)(예컨대, C0, Cn, Cm, Cz)을 보여준다. 추가 회로는 프리-서치 비트들 모두가 매치될 때에만, 셀들의 제2 서브셋(55)의 메인-서치(main-search)를 활성화시킨다. 전형적으로는, 제1 서브셋(50) 내 셀들의 수는 제2 서브셋(55) 내 셀들의 수보다 훨씬 더 작다. 예를 들어, 제1 서브셋(50)은 8 개의 셀들을 포함할 수 있고, 제2 서브셋(55)은 120 개의 셀들을 포함할 수 있다. 하지만, 제1 및 제2 서브셋들은 어떤 수의 셀들을 포함하도록 어떤 바람직한 방법으로 정의될 수 있다.
도 4에 도시된 이단 기술은 CAM 서치 동안 소모된 전력을 감소시키기에 유용하다. 예를 들어, 이단 기술은, 프리-서치에서 미스(miss)가 존재할 때 메인-서치의 셀들에 대해 메인-서치 매치-라인(MML)을 충전(charge)시키는 것을 피함으로써, 동적 서치 전력(dynamic search power)의 40%까지 절약할 수 있다. 그러나, 종래의 이단 기술은 메인-서치가 단지 프리-서치가 완료된 후에 시작되므로, CAM의 서치를 수행함에 있어서 수반되는 시간을 증가시킨다.
도 5는 발명의 측면들에 따른 메인-서치의 조기 활성화(early activation)의 개념을 도시한다. 수평 축은 이단 CAM 서치와 관련된 서치 억세스 시간(search access time)을 나타낸다. 예컨대, 도 4와 관련하여 위에서 설명된 것과 유사한, 프리-서치는 시간 t1에서 시작된다. 곡선 70은 프리-서치의 셀들 모두가 프리-서치 감지 동작을 완료했을 확률을 나타내는 분포 곡선이다. 곡선의 형태(70)는 타이밍 분석에 기초하고, 프리-서치와 관련된 회로 엘리먼트들의 디바이스 변화(device variation)(예, RDV)를 고려한다. 시간 t2는 프리-서치가 완전히 완료되는 시간을 나타낸다. 예를 들어, 시간 t2는 프리-서치 감지 동작을 완료하기 위한 5-시그마(5σ) CAM 셀에 대한 예상 시간을 나타낼 수 있다. 시간 t2는 또한 종래의 이단 기술에서 메인-서치가 시작되는 시점이다. 곡선 75는, 예컨대, 타이밍 분석 및 예상 디바이스 변화들(device variations)에 기초하여, 메인-서치의 셀들 모두가 감지 동작을 완료했을 확률을 나타내는 분포 곡선이다. 시간 t3은 메인-서치가 완전히 완료되는 시점이다.
계속해서 도 5를 참조하면, 발명의 측면들에 따라, 프리-서치가 완전히 완료되기 이전에 메인-서치가 시작된다. 예를 들어, 메인-서치는 t2보다 더 이른 시간 t2'에 시작될 수 있다. 곡선 75'은 곡선 75와 유사하지만, 시간 t2 대신에 시간 t2'에서 시작하고, 시간 t3 대신에 시간 t3'에서 종료된다. 그리하여 발명의 구현들은, 이들 전통적으로 분리된 동작들 사이의 오버랩을 허용하기 위해 이러한 낮은 확률의 메인-서치 활성화를 사용함으로써, 예를 들어, 단지 예비의 프리-서치 결과들로 메인-서치를 시작하고, 만약 그 최종 프리-서치 결과들이 조기-예측에 모순된다면, 그 메인-서치를 나중에 정정(correct)함으로써, 서치 억세스(search access)를 향상시킨다.
도 6은 발명의 측면들에 따라, 조기-예측 늦은-정정(EPLC) CAM의 고차원 블록도이다. 블록 100은 프리-서치 동작을 나타낸다. 특히, 블록 105는 프리-서치 매치 라인(PML)에 연결된 CAM 셀들의 제1 서브셋(예컨대, 도 4의 서브셋(50)과 유사함)을 나타낸다. 실시예들에서, 블록(105)은 CAM 워드의 8 개의 비트들에 대응하는 16 개의 NOR 풀-다운 스택들(예컨대, 도 3-4에 도시된 것들과 같은 것)을 포함하는 8 개의 SRAM-기반의 TCAM 셀들을 포함하지만, 발명의 범위 내에서 프리-서치 서브셋에서는 다른 개수의 셀들이 사용될 수 있다. 실시예들에서, PML은 하이 레벨로(예컨대, VDD로) 프리챠지되고, 그리하여 블록(105)에서 CAM 셀들에 저장된 비트들이 SLs 상의 대응 비트들과 매치하는 한(예컨대, 도 3-4에 도시된 것과 유사한 방법으로), 프리-서치 감지 회로(110)의 출력이 하이(high)(예, 바이너리 하이)로 남아 있도록 한다. 시작 프리-서치(Start Pre-Search, SPS) 노드(115)는 프리-서치를 시작하는 것을 컨트롤한다.
블록 130은 발명의 측면들에 따른 메인-서치 동작을 나타낸다. 특히, 블록 135는 메인-서치 매치 라인(MML)에 연결된 CAM 셀들의 제2 서브셋(예컨대, 도 4에서의 서브셋 55과 유사함)을 나타낸다. 실시예들에서, 블록 135는 CAM 워드의 120 비트들에 대응하는 240 개의 NOR 풀-다운 스택들(예컨대, 도 3-4에 도시된 것들과 같은 것)을 포함하는 120 개의 SRAM-기반 TCAM 셀들을 포함하나, 발명의 범위 내에서 메인-서치 서브세트에 다른 개수의 셀들이 사용될 수 있다.
시작 메인-서치(SMS) 노드(140)는 메인-서치를 시작하는 것을 컨트롤한다. 실시예들에서, 프리-서치 감지 회로(110)의 출력 및 SMS 노드(140)에서의 신호는 회로 145로 입력된다. 회로(145)의 출력은 메인-서치 감지 회로(150)에 연결된다. 실시예들에서, 회로(145)는 단지 노드(140) 및 프리-서치 감지 회로(110)의 출력이 하이일 때에만 메인-서치 감지 회로(150)를 활성화시키는 디바이스들의 조합을 포함한다. 메인-서치 감지 회로(150)는, 활성화될 때, 메인-서치를 위해 충전되는 메인-서치 매치 라인(MML)의 충전을 초래한다. 래치(155)는 그 서치 결과의 값을 유지하는데, 그 서치 결과의 값은 CAM 워드가 서치 워드와 매치하는지를 표시한다. 실리콘 어웨어 튜닝(Silicon aware tuniug, SAT) 회로(160)는 여기에 더 상세히 설명되는 바와 같이, 실리콘-어웨어 셀프-레퍼런스드 감지(silicon-aware self-referenced sensing)를 제공한다.
계속해서 도 6을 참조하면, 발명의 구현들의 조기-예측 측면은, 예비 프리-서치 결과들에 기초하여, 예컨대, 프리-서치가 완전히 완료되기 전에, 메인-서치가 시작된다는 사실에 있다. 실시예들에서, SMS 노드(140)는, PML이 프리-서치의 시작 이후 미리 정해진 시간 - 상기 미리 정해진 시간은 프리-서치가 완전히 완료되는 것으로 고려되는 시간의 양보다 적음 - 에서의 스레쉬홀드 레벨보다 높을 때 하이로 구동(drive)(예컨대, 턴온)된다. 이러한 방법으로, 비록 프리-서치가 나중에 결국 미스를 초래할 확률이 여전히 있음에도 불구하고, 프리-서치의 예비 결과들이 매치를 나타낼 때, 프리-서치가 아직 활성화되어 있는(active) 동안에 메인-서치가 시작된다.
발명의 구현들의 늦은-정정 측면은, 메인-서치가 이미 시작된 이후, 프리-서치의 결과들에 기초하여 메인-서치가 중단될 수 있다는 사실에 있다. 실시예들에서, PML은 메인-서치가 시작된 이후, 블록 105에서 프리-서치 셀들에서의 미스된 비트에 의해 로우(low)(예컨대, 스레쉬홀드 레벨보다 더 낮은)로 끌어내려진다. 이러한 이벤트에서, 프리-서치 감지 회로(110)의 출력은 로우로 가고, 이는 회로(145)가 메인-서치 감지 회로(150)를 턴오프시키도록 한다. 이러한 방법으로, 발명의 구현들은 후속 120 개의 비트 메인-서치 동작을 정상보다 이르게(prematurely) 활성화시키기 위해, 제1의 8-비트 프리-서치 결과들에 관한 조기-예측을 사용하고, 그런 다음, 최종 프리-서치 결과들이 그 조기-예측과 모순되는 경우에만, 메인-서치를 더 늦게 정정(later correct)(예컨대, 중단)한다.
도 7은 발명의 측면들에 따라, 단일 CAM 워드(예컨대, 도 1 또는 2에서 단일의 수평 행에 대응하는 것임)에 대한 EPLC 회로(200)의 예시적인 트랜지스터-레벨 구현을 보여준다. 도 8은 도 7의 회로에 대응하는 시뮬레이션 데이터를 보여준다. EPLC 회로(200)는 블록들(105 및 135)을 포함하며, 도 6에 관해 기술된 것과 같은 그들 각각의 NOR 풀-다운 스택들을 포함한다. EPLC 회로(200)는 또한, 도 6에 관해 위에서 설명된 것과 같이, PML, MML, SPS 노드(115), SMS 노드(140), 래치(155), 및 SAT 회로(160)를 포함한다.
EPLC 회로(200)가 바이너리 CAM 또는 TCAM과 함께 이용될 수 있다. 더욱이, CAM(또는 TCAM)의 각각의 서치가능한 워드에 EPLC 회로(200)의 일 예가 제공될 수 있다.
실시예들에서, SPS 노드(115)는 초기에 하이(예, 1)로 유지되고, SMS 노드(140)는 EPLC CAM 서치 이전에 초기에 로우(예, 0)로 유지된다. PML, MML, 및 래치(155)를 리셋하기 위해, 하이 리셋 전압이 RESET1 및 RESET2에 인가된다. EPLC CAM 서치는 블록들 105 및 135에서 모든 NOR 풀-다운 스택들 상에서 안정적인 데이터(stable data)로 시작되며, 로우-고잉 신호(low-going signal)가 RESET1, RESET2, 및 SPS 노드(115) 상에 인가된다. SPS 노드(115)를 로우로 만드는 것(driving)은 P1 - 이는 VDD와 같은, 전압 소스에 연결되어 있음 - 을 턴온시킴으로써 프리-서치 단계(pre-search phase)를 시작한다. P1 및 P2가 소스 전류로 시작함에 따라, PML 상의 전압은 미스매치된 풀-다운 스택들의 수의 펑션(function)으로 디벨롭한다. 실시예들에서, P1 및 P2는 PML을 전압 소스(VDD)에 선택적으로 연결한다는 점에서 풀-업 디바이스로서 동작하는 pFET들(p-형 전계 효과 트랜지스터들)이다.
계속해서 도 7에서 EPLC 회로(200)를 참조하면, 블록 105에서 셀들이 서치 데이터와 아무런 미스매치들을 갖지 않을 때, PML은 순수하게 용량성이고 NAND 게이트(205) 스레쉬홀드 전압(NVTH)을 가로질러 GND에서 VDD로 빠르게 램프(ramp)한다. 이 상황은 도 8에서 라인 PML0에 의해 예시된다. 한편, 블록 105에서 서치 데이터와 셀들 사이의 미스매치들에 관한 큰 수 "N"가 있을 때, PML은 "N" 액티브 풀-다운 스택들에 의해 GND에서 확고하게 유지된다. 이 경우, 프리-서치는 미스를 나타내고, 그리하여, 메인-서치가 시작되지 않도록 하며, 래치(155)가, 미스를 나타내는 값을 저장하도록 한다.
특별한 경우, 블록 105는 단일 미스매치 셀을 포함한다. 풀-업 스택(P1 및 P2)과 경쟁하는(in contention with) 단일의 미스매치된 풀-다운 스택만이 있으므로, 이는 가장 나쁜 경우의 미스매치로 고려될 수 있고, 결국 PML 상에서 중간-레벨의 전압을 초래한다. 이 상황은 도 8에서 라인 PML1W에 의해 도시되며, 여기서 PML1W에서의 "1"은 단일의 미스매치된 셀을 나타내고, "W"는 3-시그마보다 큰(>3σ) 약한 풀-다운(weak pull-down)을 나타낸다.
실시예들에서, 프리-서치 성능을 향상시키기 위해, EPLC 회로(200)는 PML0 상황에 대해서 빠른 프리-서치 평가를 허용할 뿐만 아니라, PML1W 상황이 PML0 상황으로 잘못 보이도록 하는 과대(oversized) P1 및 P2 풀-업 디바이스들을 갖는 전류-레이스 감지(current-race sensing)를 사용한다. 이러한 방법으로, NVTH를 가로지르는(cross) 통계상으로 부적절한 PML1W 상황은 거짓 매치(false match)를 조기-예측(early-predict)할 것이고, 메인-서치 동작을 활성화시키도록 진행될 것이다. 그러나, 이러한 거짓의 조기-예측은 메인-서치 실행 동안에 나중에 정정(later correct)되어, 믿을만한 EPLC 서치 결과들을 보장한다.
계속해서 도 7에서 EPLC 회로(200)를 참조하면, PML이 스레쉬홀드 레벨(예, NVTH) 위에 있고, SMS 노드(140)가 로우일 때, NAND 게이트(205)는 MS_PRE에서 하이 출력(high output)을 가지며, 이는 pFET들, P3 및 P4를 턴오프시킨다. 메인-서치는 SMS 노드(140)에 하이 신호를 인가함으로써 시작된다. PML 상에서 하이 신호와 결합된, SMS 노드(140)에서의 하이 신호는 MS-PRE를 로우로 구동(drive)되며, 이는 P3을 턴온시키고, P2를 턴오프시키며, 차례대로 PML의 프리챠지를 중지시키며 PML이 플로팅 상태로 남게 한다. 로우로 가는 MS_PRE는 또한 P4를 턴온시키고, 이는 MML의 프리챠지를 시작한다. SMS 노드(140)에서 신호는 후속적으로 로우로 만들어지는데, 이는 MML의 프리챠지를 중지시키며, 메인-서치 동작이 진행되도록 허용한다. 서치의 결과(ML_OUT)가 결국 인버터(210) 및 래치(155)로부터 획득될 때까지, 메인-서치는 미리-정해진 량의 시간 동안 계속된다.
실시예들에서, MML은 반전 슈미트 트리거(215)의 입력으로서 연결되며, 이는 당해 기술 분야에서 통상의 기술을 가진 자들이 이해하는 바와 같이, 높은 스레쉬홀드와 낮은 스레쉬홀드를 경유하여 히스테리시스 특성을 보인다. 슈미트 트리거(215)의 출력은, nFET(N3) - 이는 감지 노드(SN)와 MML 사이에 연결됨 - 의 게이트에 연결된다.
추가 실시예들에서, EPLC 회로(200)는, 도 7에 도시된 바와 같이, 슈미트 트리거(215)에 동작적으로 연결된 SAT 회로(160), 및 MS_PRE와 MML 사이에 연결된 pFET-nFET 스택을 포함하는 MML 키퍼(225)를 포함한다. SAT 회로(160) 및 MML 키퍼(225)의 동작은 도 9 및 10을 참조하여 이하에 설명되어 있다.
도 8은 위에서 이미 언급한 바와 같이, 도 7의 EPLC 회로(200)의 동작에 대응하는 시뮬레이션 데이터를 보여준다. 도 8에서 수평축은 서치 시간을 나타낸다. 영역 300은 종래의 이단 CAM 서치 회로에 대한 프리-서치 및 메인-서치 컨트롤들 신호들을 나타낸다. 영역 305는 발명의 측면들에 따른, EPLC 회로(200)에 대한, 예시적인 프리-서치 및 메인-서치 컨트롤들 신호들(예컨대, SPS 노드(155) 및 SMS 노드(140)에 인가된 신호들)을 나타낸다.
도 8의 영역 300에서 볼 수 있는 바와 같이, 종래의 회로의 시작 프리-서치(SPS) 신호는, 310에서, 하이에서 로우로 가고, 그런 다음, 315에서, 로우에서 하이로 간다. 310과 315 사이의 시간은 종래의 회로의 완전히 완료된 프리-서치를 나타낸다. 프리-서치의 완료 이후(예컨대, 315 이후), 종래의 회로는, 320에서, 시작 메인-서치(SMS) 신호를 로우에서 하이로 구동(drive)시킴으로써, 메인-서치를 시작한다. SMS 신호는 325에서 다시 계속해서 로우로 만들어지고, 그 결과는 330에서 래치로부터 리드(read)된다.
도 8의 영역 305를 참조하면, EPLC 회로(200)의 예시적인 구현들에서, SPS 신호(예컨대, 도 7에서 SPS 노드 115에서)는, 335에서 하이로부터 로우로 만들어지며, 그런 다음, 340에서 로우에서 하이로 만들어진다. 발명의 측면들에 따라, SMS 신호(예컨대, 도 7에서 SPS 노드 140에서)는 340 이전의 시간에, 345에서, 로우로부터 하이로 만들어진다. 이와 같이, 메인-서치는 프리-서치의 전체 완료 이전에 시작된다. 예컨대, 프리-서치와 메인-서치의 오버랩(overlap)(350)이 있다. 이 오버랩(350)은 발명의 조기-예측을 예시한다. SMS은 355에서 로우로 가고, 그 결과는 360에서 리드된다. 그리하여, EPLC 회로(200)는 프리-서치가 아직 활성화되어 있는(active) 동안에 메인-서치를 시작하도록 구성되는 것이 분명해진다.
영역들 300 및 305로부터 보여질 수 있는 바와 같이, 발명의 구현들은, 종래의 이단 CAM 서치와 비교할 때, 이단 CAM 서치에 더 짧은 서치 시간을 제공한다. 특히, 365에 도시된 바와 같이, 발명의 구현들의 프리-서치 시간은 종래의 회로의 프리-서치 시간보다 더 짧다. 그리고 370에 도시된 바와 같이, 발명의 구현들은 그 결과가 종래의 회로에서보다 더 빨리 리드될 수 있도록 허용한다. 예를 들어, 발명의 실시예들은, 약 1.05ns의 서치 시간을 제공할 수 있다. 이러한 방법에서, 발명의 구현들은, 종래의 이단 CAM 서치 회로와 비교할 때 더 빠른 CAM 서치 시간을 제공한다.
계속해서 도 8을 참조하면, 영역 380은 발명의 측면들에 따른, EPLC 회로(예컨대, 도 7의 회로 200)의 여러 가지 라인들에 관한 시뮬레이션된 전압들을 보여준다. 영역 380의 전압들은 영역 305에서 신호들에 대응한다. 라인들, PML0, MS_PRE0, 및 MML0은, 각각, 프리-서치에서 어떠한 미스들도 없을 때, EPLC 회로(200)의, PML, MS_PRE, 및 MML의 전압들을 나타낸다. 라인들 PML1W, MS_PRE1W, 및 MML1은, 각각, 프리-서치에서 하나의 미스(예컨대, 하나의 논-매칭 비트)가 있을 때, EPLC 회로(200)의, PML, MS_PRE, 및 MML의 전압들을 나타낸다. 점선들 385 및 390은 종래의 크기의 풀-업 디바이스들(예컨대, 도 7의 P1 및 P2보다 더 작은)을 사용하는 종래의 PML의 전압을 나타내는 반면, PML0 및 PML1W 라인들은 발명의 측면들에 따른 과대(oversized) 풀-업 디바이스들(P1 및 P2)에 대응한다.
PML0 상황에서, PML 전압은 NAND 게이트 스레쉬홀드(예, 도 7의 NVTH)보다 높은 상태에 있다. 한편, PML1W 상황에서는, PML은, 그것이 더 이상 하이로 끌어 올려지지(pull high) 않을 때(예, 도 7의 EPLC 회로(200)에서 P1 및 P2에 의해), 방전(discharge)한다. PML1W 상황에서 PML의 이러한 방전은 메인-서치가 시작된 후에 일어나고, NAND 게이트 출력을 하이(high)로 구동(drive)하며, 이는 P4를 턴오프시켜 메인-서치를 중단시킨다. 이는 발명의 늦은-정정 측면을 예시한다. 이는, MS_PRE1W가 로우(low)로 강하(drop)됨으로써 거짓 메인-서치 프리챠지를 시작하고, 그리고 하이로 리턴함으로써 더 나중에 정정(later correct)되는, 도 8에 도시되어 있다. 거짓 매치(false match)의 부분적 프리챠지(MMLF)에 의해 보여지는 바와 같이, 이러한 늦은-정정은 추가 전력을 소모하지만, >3σ의 약한 풀-다운(weak pull-down) 상에서 일어나는 단일-비트 미스의 확률은, 총 전력에 미치는 영향이 크지 않도록 한다(make total power contribution insignificant). 이러한 방법으로, EPLC 회로(200)는, PML 전압이 NVTH를 넘어선다는 것을 검출하는 것에 기초하여, 프리-서치의 완료에 앞서 메인-서치를 시작하도록, 그리고 메인-서치를 시작한 후에, PML 전압이 NVTH 아래로 강하하는 것을 검출하고 메인-서치를 중단하는 것, 또는 PML 전압이 NVTH 보다 높은 상태인 것을 검출하고 메인-서치를 완료하는 것 중 하나를 수행하도록, 구성된다.
실시예들에서, 메인-서치는 셀프 레퍼런스드 감지 기술(Self Referenced Sensing Scheme, SRSS)의 실리콘-어웨어 버젼(silicon-aware version)을 사용한다. 도 8에 도시된 바와 같이, MML0 및 MML1 상황들에서 MML 상의 프리챠지 전압은 슈미트 트리거(도 7의 슈미트 트리거 215)의 하이-스레쉬홀드로 빠르게 포화(saturate)되는 반면, 다수의 미스 MML은 하이-스레쉬홀드 아래에 머무른다. MML의 프리챠지가 완료될 때, MML 전압은 매치를 시그널링(signaling)하는 MML0 상황에서 슈미트 트리거 로우 스레쉬홀드보다 높은 상태로 남는다. 한편, MML1 상황에서, MML의 프리챠지가 완료될 때, MML 전압은 미스를 시그널링하는 슈미트 트리거의 로우 스레쉬홀드 아래로 빠르게 강하한다. SRSS 프리챠지가 감지-전압에 매우 가까워짐에 따라, 슈미트 트리거 히스테리시스는, 리크가 있는 빠른-코너(leaky fast-corner) MML0들(IOFF240을 가짐)이 결국 거짓 미스(false miss)를 초래하지 않도록 보장하는 한편, 또한 약한 늦은-코너(weak slow-corner) MML1들(ION1을 가짐)이 거짓 매치(false match)로 결과가 나오지(resolve as) 않도록 보장하도록 구성되어야 한다.
도 9는 발명의 측면에 따라, 느린 프로세서 코너(slow process corner)와 빠른 프로세스 코너(fast process corner) 둘 모두에서의 정규화된 ION1 및 IOFF240 분포들(distributions)을 통한 감지 도전과제(sensing challenge)를 도시한다. 실리콘 어웨어 감지 증폭기(Sense Amp, SA) 튜닝없이, 단일 SA는 1.5만큼 낮은 ION1/IOFF240 비(ratio)로 양 프로세스 코너들을 충족시킬 필요가 있다. 실리콘 어웨어 SA 튜닝으로, 빠른 프로세스 SA들은 높은 리키지 허용오차(high leakage tolerant)가 되도록 마진(margine)이 확보될 수 있는 반면, 느린 프로세스 SA들은 약한 신호 허용오차(weak signal tolerant)가 되도록 마진이 확보될 수 있으며, 이는 ION1/IOFF240 비를 약 60% 증가시킨다.
발명의 구현들에서, 이러한 마진닝(margining)은 슈미트 트리거(예, 슈미트 트리거 215) 상의 실리콘 어웨어 조정가능 핀(Silicon Aware Tunable pin)(예, SAT 회로(160)) 및 MLL(예, MML 키퍼 225) 상의 키퍼 스택(keeper stack)의 조합을 통해 구현된다. 빠른 프로세스 코너들에서 SAT 회로(160)를 GND로 세팅하는 것은, 약50% 향상된 리키지 허용오차(leakage tolerance)를 제공하는 슈미트 트리거(215)에서 약 60mV 부가 히스테리시스를 가능하게 한다. 느린 프로세스 코너들에서 SAT 회로(160)를 VDD로 세팅하는 것은, 히스테리시스를 제거하고 약한 신호 디벨롭먼트(development)에 대한 응답을 향상시킨다.
도 10은 발명의 측면들에 따라 종래의 프리챠지 하이 ML 감지에 비하여 SAT 회로(160)의 양(both) 세팅들에 대한 전력과 성능에서의 향상을 보여준다. 이단 EPLC 기술에 따른 실리콘-어웨어 SRSS를 사용함으로써, 발명의 예시적인 구현들(이것들로 한정되는 것은 아님)은, 단지 약 0.76W의 2048x640 경우에 대한 총 전력을 유지하면서, TCAM 1Gsearch/sec의 쓰루풋(throughput)을 가능하게 한다.
도 11은 발명의 측면들에 따라 전체 프로세스 코너에 걸쳐 TCAM 하드웨어 상의 1Gsearch/sec를 넘어서는 실리콘 측정값들(silicon measurements)을 보여준다. 도 12는 발명의 측면들에 따라, 파워 서플라이 노이즈 감소(power supply noise mitigation)를 위한 임베디드 딥-트렌치(DT) 디커플링 커패시터들의 배치(placement)를 하이라이팅하는 예시적인 컴파일된 TCAM 인스턴스 2048x640b의 마이크로포토그래프를 보여준다. 1Gsearches/sec에서, 5% DT 디캡 영역 애더(decap area adder)는, 높은 용량의 TCAM 디자인들에서 적절한 동작을 보장하는 약 50% 낮은 파워-서플라이 노이즈 압축(compression) 결과를 가져온다. 이하의 표I(TABLE I)는 발명의 측면들에 따라 예시적인 컴파일러 범위(이러한 것들로 한정되는 것은 아님) 및 TCAM 스펙들(specifications)을 도시한다.
최소 컴파일된 경우
최대 컴파일된 경우
최대 TCAM 구성(organization)
최대 뱅크 구성(Max Bank Organization)
0064 엔트리 X 012 비트들(768 비트)
2048 엔트리 X 640 비트들(1280 Kb)
16 뱅크들 X 8 필드들
128 워드들 X 128 비트들
성능(@0.90V)
전력
밀도(Density)
1.0 GHz
1.1 W
0.84 Mb/mm^2
기술(Technology) 임베디드 딥 트렌치 DECAP로의 32nm 하이-케이 SOI 프로세스
전력 보존 옵션들(Power Conservation Options) 뱅크 선택(Bank Selection)
프리-서치 활성화
노이즈 감소(Noise Reduction) DECAP의 12nF
동작 전압 범위(Operating Voltage Range)
동작 온도 범위(Operating Temperature Range)
0.70V - 1.10V
-40℃ - 125℃
표 I(TABLE I)
도 13은 반도체 설계, 제조, 및/또는 테스트에 사용되는 설계 프로세스의 흐름도이다. 도 13은, 예를 들어, 반도체 IC 로직 설계, 시뮬레이션, 테스트, 레이아웃, 및 제조에 사용되는 예시적인 설계 흐름(900)의 블록도를 보여준다. 설계 흐름(900)은, 위에서 설명되고 도 7에서 보여진 설계 구조들 및/또는 디바이스들의 등가 표현들(equivalent representations)을 논리적으로 또는 기능적으로 생성하기 위해, 설계 구조들 또는 디바이스들을 프로세싱하기 위한 프로세스들, 머신들 및/또는 메커니즘들을 포함한다. 설계 흐름(900)에 의해 프로세스 및/또는 생성된 설계 구조들은, 실행되거나 데이터 프로세싱 시스템 상에서 프로세스될 때, 논리적으로, 구조적으로, 기계적으로, 또는 기능적으로 하드웨어 컴포넌트들, 회로들, 디바이스들, 또는 시스템들의 등가 표현을 생성하는 데이터 및/또는 명령들을 포함시키기 위해, 머신-판독가능 전송(machine-readable transmission) 또는 스토리지 매체 상에 인코팅될 수 있다. 머신들은, 설계하는 것, 제조하는 것, 또는 회로, 컴포넌트, 디바이스, 또는 시스템을 시뮬레이션하는 것과 같은, IC 설계 프로세스에 사용되는 어떤 머신을 포함하나, 이러한 것으로 한정되는 것은 아니다. 예를 들어, 머신들은, 리소그래피 머신들, 마스크들을 생성하기 위한 머신들 및/또는 설비(예, e-빔 라이터들), 설계 구조들을 시뮬레이션하기 위한 컴퓨터들 또는 설비, 제조 또는 테스트 프로세스에 사용되는 어떤 장치, 또는 어떤 매체 내에 설계 구조들에 관해 기능적으로 등가인 표현들을 프로그래밍하기 위한 어떤 머신들(예, 프로그램가능 게이트 어레이를 프로그래밍하기 위한 머신)을 포함할 수 있다.
설계 흐름 900은 설계되고 있는 표현의 유형에 따라 변할 수 있다. 예를 들어, 주문형 IC(application specific IC, ASIC)를 만들기 위한 설계 흐름(900)은, 표준 컴포넌트를 설계하기 위한 설계 흐름(900)과 다를 수 있고, 또는 프로그램가능 어레이 - 예를 들어, Altera®Inc. 또는 Xilinx®Inc.에 의해 제공되는, 프로그램가능 게이트 어레이(PGA) 또는 필드 프로그램가능 게이트 어레이(FPGA) - 내로의 설계를 예시하기 위한 설계 흐름(900)과 다를 수 있다.
도 13은 설계 프로세스(910)에 의해 바람직하게 프로세스되는 입력 설계 구조(920)를 포함하는 그러한 다수의 설계 구조들을 도시한다. 설계 구조(920)는, 하드웨어 디바이스에 관한 논리적으로 등가인(equivalent) 기능적 표현을 생성하기 위해, 설계 프로세스(910)에 의해 생성되고 프로세스되는 논리적 시뮬레이션 설계 구조일 수 있다. 설계 구조(920)는 또한, 또는 다르게는, 설계 프로세스(910)에 의해 프로세스될 때, 하드웨어 디바이스의 물리적 구조의 기능적 표현을 생성하는 데이터 및/또는 프로그램 명령들을 포함할 수 있다. 기능적 및/또는 구조적 설계 특징들(features)을 표현함에 있어서, 설계 구조(920)는 코어 개발자/설계자에 의해 구현되는 것과 같은, 전자 컴퓨터-지원 설계(ECAD)를 사용하여 생성될 수 있다. 머신-판독가능 데이터 전송, 게이트 어레이, 또는 스토리지 매체 상에서 인코딩될 때, 설계 구조(920)는, 도 7에 도시된 것들과 같은 그러한, 전자 컴포넌트, 회로, 전기 또는 로직 모듈, 장치, 디바이스, 또는 시스템을 시뮬레이션하거나 또는 기능적으로 표현하기 위해, 설계 프로세스(910) 내의 하나 또는 그 이상의 하드웨어 및/또는 소프트웨어 모듈들에 의해 접근 및/또는 프로세스될 수 있다. 이와 같이, 설계 구조(920)는, 설계 또는 시뮬레이션 데이터 프로세싱 시스템에 의해 프로세스될 때, 회로들 또는 하드웨어 로직 설계의 다른 레벨들을 기능적으로 시뮬레이션하거나, 또는 표현하는, 인간 및/또는 머신-판독가능 소스 코드를 포함하는 파일들 또는 다른 데이터 구조들, 컴파일된 구조들, 및 컴퓨터-실행가능 코드 구조들을 포함할 수 있다. 이러한 데이터 구조들은, Verilog 및 VHDL과 같은 낮은 레벨의 HDL 설계 언어들, 및/또는 C 또는 C++과 같은 높은 레벨의 설계 언어들을 준수 및/또는 호환가능한 하드웨어-기술 언어(hardware-description language, HDL) 설계 엔티티들(design entities) 또는 기타 데이터 구조를 포함할 수 있다.
설계 프로세스(910)는 바람직하게는, 설계 구조(920)와 같은 설계 구조들을 포함할 수 있는 네트리스트(netlist)(980)를 생성하기 위해 도 7에 도시된 컴포넌트들, 회로들, 디바이스들, 또는 로직 구조들의 설계/시뮬레이션 기능적 등가물(functional equivalent)을 종합(synthesize), 변환(translating), 또는 프로세싱하기 위한 하드웨어 및/또는 소프트웨어 모듈들을 채용 및 편입시킨다. 네트리스트(980)는, 예를 들어, 집적 회로 설계에서 엘리먼트들 및 회로들에 대한 연결들을 설명하는, 와이어들, 별개의 컴포넌트들, 로직 게이트들, 컨트롤 회로들, I/O 디바이스들, 모델들 등을 나타내는 컴파일되거나 그렇지 않으면 처리된 데이터 구조들을 포함할 수 있다. 네트리스트(980)는, 반복적인 프로세스를 사용하여 종합(synthesize)될 수 있으며, 여기서, 네트리스트(980)는, 예를 들어, 디바이스들에 대한 설계 사양들 및 파라미터들에 따라 한 번 또는 그 이상으로 재종합(resynthesize)된다. 여기에 설명된 다른 설계 구조 유형들에서와 같이, 네트리스트(980)는 머신-판독가능 데이터 스토리지 매체 상에 기록되거나, 프로그램가능 게이트 어레이 내에 프로그램될 수 있다. 매체는, 자기 또는 광 디스크 드라이브와 같은 비휘발성 스토리지 매체, 프로그램가능 게이트 어레이, 컴팩트 플래쉬, 또는 다른 플래쉬 메모리일 수 있다. 추가로, 또는 다르게, 상기 매체는, 시스템 또는 캐시 메모리, 버퍼 스페이스(buffer space), 또는 전기적으로 또는 광학적으로 도전성인 디바이스들 및 재료들 - 이들 상에, 데이터 패킷들이 인터넷, 또는 다른 네트워킹에 적합한 수단을 통해 전송되고 중간에 저장될 수 있음 - 일 수 있다.
설계 프로세스(910)는, 네트리스트(980)를 포함하는 여러 가지 입력 데이터 구조 유형들을 프로세싱하기 위한 하드웨어 및 소프트웨어 모듈들을 포함할 수 있다. 이러한 데이터 구조 유형들은, 예를 들어, 라이브러리 엘리먼트들(930) 내에 상주할 수 있고, 주어진 제조 기술(예, 다른 기술 노드들, 32nm, 45nm, 90nm 등)에 대해, 모델들, 레이아웃들, 및 기호 표현들(symbolic representations)을 포함하여, 공통적으로 사용되는 엘리먼트들, 회로들, 및 디바이스들의 세트를 포함할 수 있다. 데이터 구조 유형들은, 설계 사양들(940), 특성 데이터(950), 검증 데이터(960), 설계 규칙들(970), 및 테스트 데이터 파일들(985) - 이것들은 입력 테스트 패턴들, 출력 테스트 결과들, 및 다른 테스팅 정보를 포함할 수 있음 - 을 더 포함할 수 있다. 설계 프로세스(910)는, 예를 들어, 스트레스 분석, 열 분석, 기계적 이벤트 시뮬레이션과 같은 표준 기계적 설계 프로세스들, 캐스팅(casting), 몰딩(molding), 및 다이 프레스 포밍(die press forming) 등과 같은 동작들을 위한 프로세스 시뮬레이션을 더 포함할 수 있다. 기계 설계 분야의 평균적인 기술자 중 한 사람은 발명의 범위 및 사상을 벗어나지 않고서, 설계 프로세스(910)에서 사용되는 가능한 기계적 설계 툴들 및 어플리케이션들의 범위를 알 수 있다. 설계 프로세스(910)는 또한, 타이밍 분석, 검증, 설계 규칙 체킹(design rule checking), 배치(place) 및 라우트(route) 동작들과 같은, 표준 회로 설계 프로세스들을 수행하기 위한 모듈들을 포함할 수 있다.
설계 프로세스(910)는, 제2 설계 구조(990)를 생성하기 위해, (만약 적용가능하다면) 어떤 추가의 기계적 설계 또는 데이터에 따라, 설명된 지원 데이터 구조들 모두 또는 일부와 함께 설계 구조(920)를 프로세스하기 위한, HDL 컴파일러들 및 시뮬레이션 모델 빌드 툴들(simulation model build tools)과 같은 로직 및 물리적 설계 툴들을 채용 및 편입시킨다.
설계 구조(990)는, 기계적 디바이스들 및 구조들의 데이터의 교환을 위해 사용된 데이터 포맷(예컨대, IGES, DXF, Parasolid XT, JT, DRG, 또는 이러한 기계적 설계 구조들을 저장 또는 렌더링(rendering)하기 위한 다른 어떤 적절한 포맷으로 저장된 정보)으로 스토리지 매체 또는 프로그램가능 게이트 어레이 상에 상주한다. 설계 구조 920과 유사하게, 설계 구조 990은 바람직하게는 하나 또는 그 이상의 파일들, 데이터 구조들, 또는 전송 또는 데이터 스토리지 매체 상에 상주하고, ECAD 시스템에 의해 프로세스될 때 도 7에 도시된 발명의 실시예들 중 하나 또는 그 이상의 논리적 또는 기능적 등가 형태(equivalent form)를 생성하는, 다른 컴퓨터-인코디드 데이터 또는 명령들을 포함한다. 일 실시예에서, 설계 구조(990)는 도 7에 도시된 디바이스들을 기능적으로 시뮬레이션하는 컴파일되고, 실행가능한 HDL 시뮬레이션 모델을 포함할 수 있다.
설계 구조(990)는 기호 데이터 포맷 및/또는 집적 회로들의 레이아웃 데이터의 교환을 위해 사용되는 데이터 포맷(예컨대, GDSII(GDS2), GL1, OASIS, 맵 파일들, 또는 그러한 설계 데이터 구조들을 저장하기 위한 다른 어떤 적절한 포맷으로 저장된 정보)도 또한 채용할 수 있다. 설계 구조(990)는, 예를 들어, 기호 데이터, 맵 파일들, 테스트 데이터 파일들, 설계 컨텐트 파일들, 제조 데이터(manufacturing data), 레이아웃 파라미터들, 와이어들, 금속의 레벨들, 비아들(vias), 형상들(shapes), 제조 라인(manufacturing line)을 통해 라우팅하기 위한 데이터, 및 위에서 설명되고 도 7에 보여지는 바와 같은 디바이스 또는 구조를 생성하기 위해 제조자(manufacturer) 또는 다른 설계자/개발자에 의해 요구되는 다른 어떤 데이터와 같은, 정보를 포함할 수 있다. 그런 다음, 설계 구조(990)는, 예를 들어, 설계 구조(990)가, 테이프-아웃(tape-out)으로 진행되고, 제조(manufacturing)로 릴리스되고, 마스크 하우스(mask house)로 릴리스되고, 또 다른 설계 하우스로 보내지고, 고객에게 다시 보내지는 것 등의 단계(995)로 진행된다.
위에서 설명되는 방법은 집적 회로 칩들의 제조에 사용된다. 그 결과의 집적 회로 칩들은, 배어 다이(bare die)와 같은, 미가공 웨이퍼 형태(raw wafer form)로(즉, 다수의 패키지되지 않은 칩들을 갖는 단일 웨이퍼로서), 또는 패키지된 형태로 제조자에 의해 배포될 수 있다. 후자의 경우, 칩은 단일 칩 패키지(마더보드 또는 다른 더 높은 레벨의 캐리어에 부착되는 리드들(leads)을 갖는, 플라스틱 캐리어와 같은 것)에, 또는 멀티칩 패키지(표면 배선들 및 매립 배선들 중 어느 하나 또는 둘 다를 갖는 세라믹 캐리어와 같은 것)에 마운트된다. 어느 경우든, 칩은 그 후, (a) 마더보드와 같은 중간 제품, 또는 (b) 최종 제품의 일부로서, 다른 칩들, 별개의 회로 소자들, 및/또는 다른 신호 처리 디바이스들과 함께 집적된다. 최종 제품은, 장난감들 및 다른 저사양 어플리케이션들(low-end applications)에서부터 디스플레이, 키보드 또는 다른 입력 디바이스 및 중앙처리장치를 갖는 고급(advanced) 컴퓨터 제품들에 이르는 집적 회로 칩들을 포함하는 어떤 제품일 수 있다.
본 발명의 여러 가지 실시예들에 관한 설명은 예시 목적으로 제공된 것이지, 모든 실시예들을 망라하려는 의도이거나, 실시예들을 한정하려는 의도는 아니다. 설명된 실시예들의 범위 및 사상을 벗어나지 않고서, 많은 변경 및 변형 예들이 있을 수 있다는 것은 당해 기술 분야에서 통상의 기술을 가진 자들에게 자명할 것이다. 여기에 사용된 용어는 실시예들의 원리들, 실제 적용 또는 시장에서 발견되는 기술들에 비교한 기술적 개량을 가장 잘 설명하기 위해, 또는 당해 기술 분야에서 통상의 기술을 가진 자들이 여기에 개시된 실시예들을 이해할 수 있도록 하기 위해, 선택되었다.

Claims (25)

  1. 컨텐트 주소지정가능 메모리(CAM)를 서치(search)하기 위한 시스템으로서,
    이단(two stage) CAM 서치 중 프리-서치(pre-search)가 아직 활성화되어 있는(active) 동안에, 상기 이단 CAM 서치 중 메인-서치(main-search)를 선택적으로 활성화(activate)시키는 회로를 포함하는, 시스템.
  2. 청구항 1에 있어서, 상기 회로는 상기 프리-서치의 예비 결과가 매치(match)를 나타내는 것에 기초하여, 상기 메인-서치를 선택적으로 활성화시키는, 시스템.
  3. 청구항 2에 있어서, 상기 회로는, 상기 프리-서치의 최종 결과들이 상기 예비 결과들과 모순될 때, 상기 메인-서치를 종료하는, 시스템.
  4. 청구항 1에 있어서, 상기 회로는, 상기 프리-서치의 완료 및 상기 메인-서치의 시작을 오버랩(overlap)시키도록 구성되는, 시스템.
  5. 청구항 1에 있어서, 상기 CAM의 각각의 저장된 워드는 상기 회로의 인스턴스(an instance)를 포함하는, 시스템.
  6. 청구항 1에 있어서, 상기 회로는, 제1의 복수의 풀-다운 스택들(pull-down stacks); 풀-업 디바이스들(pull-up devices); 및 NAND 게이트의 입력에 연결된 프리-서치 매치 라인(pre-search match line, PML)을 포함하는, 시스템.
  7. 청구항 6에 있어서, 상기 NAND 게이트의 출력은 상기 풀-업 디바이스들을 턴오프(turn off)시키는 스위치를 컨트롤하는, 시스템.
  8. 청구항 7에 있어서, 상기 메인-서치가 시작된 후 상기 NAND 게이트가 상기 스위치로 하여금 상기 풀-업 디바이스들(pull-up devices)을 턴오프시키도록 하기 위해, 시작 메인-서치 노드(start main-search)는 상기 NAND 게이트의 또 다른 입력에 연결되는, 시스템.
  9. 청구항 6에 있어서,
    상기 회로는 제2의 복수의 풀-다운 스택들에 연결된 메인-서치 매치 라인(MML)을 포함하고;
    상기 NAND 게이트의 출력은 상기 MML을 프리챠지하는 것을 컨트롤하는 스위치에 연결되는, 시스템.
  10. 청구항 9에 있어서, 상기 회로는,
    상기 NAND 게이트의 출력과 상기 MML 사이에 연결된 키퍼 스택(keeper stack);
    상기 MML에 연결된 입력 및 감지 노드(sense node)에 간접적으로(indirectly) 연결된 출력을 갖는 슈미트 트리거; 및
    상기 슈미트 트리거의 히스테리시스 값을 조정하도록 구성(structure)되고 배열(arrange)된 슈미트 트리거 상의 조정가능 핀(tunable pin)을 더 포함하는, 시스템.
  11. 청구항 1에 있어서, 상기 CAM은 터너리 CAM(TCAM)을 포함하는, 시스템.
  12. 회로로서,
    컨텐트 주소지정가능 메모리(CAM)의 제1의 복수의 셀들에 연결된 프리-서치 매치 라인(pre-search match line, PML);
    상기 CAM의 제2의 복수의 셀들에 연결된 메인-서치 매치 라인(main-search match line, MML); 및
    상기 PML과 연관된 프리-서치 동작을 시작하고, 상기 프리-서치 동작의 완료 이전에 상기 MML과 연관된 메인-서치 동작을 시작하도록 구성(structure)되고 배열(arrange)된 디바이스들의 조합을 포함하는, 회로.
  13. 청구항 12에 있어서, 디바이스들의 상기 조합은,
    전압 소스와 상기 PML 사이에 연결된 제1 pFET 및 제2 pFET를 포함하는 풀-업 스택(pull-up stack)에 연결된 시작 프리-서치 노드(start pre-search node);
    NAND 게이트의 제1 입력에 연결된 시작 메인-서치 노드(start main-search node) - 상기 PML은 상기 NAND 게이트의 제2 입력에 연결됨 - ;
    상기 NAND 게이트의 출력에 의해 컨트롤되는 제3 pFET - 상기 제3 pFET는 상기 제2 pFET를 턴오프시킴 - ; 및
    상기 NAND 게이트의 상기 출력에 의해 컨트롤되는 제4 pFET - 상기 제4 pFET는 상기 전압 소스와 상기 MML 사이에 연결됨 - 를 포함하는, 회로.
  14. 청구항 13에 있어서, 디바이스들의 상기 조합은,
    상기 제4 pFET와 상기 MML 사이에 연결된 nFET;
    상기 nFET와 상기 제4 pFET 사이의 감지 노드(sense node);
    상기 감지 노드에 연결된 인버터 및 래치; 및
    상기 MML에 연결된 입력 및 상기 nFET에 연결된 출력을 갖는 슈미트 트리거를 포함하는, 회로.
  15. 청구항 14에 있어서, 디바이스들의 상기 조합은,
    상기 슈미트 트리거의 히스테리시스 값을 조정하도록 구성(structure)되고 배열(arrange)된 상기 슈미트 트리거 상의 조정가능 핀(tunable pin); 및
    상기 NAND 게이트의 출력과 상기 MML 사이에 연결된 키퍼 스택(keeper stack)을 포함하는, 회로.
  16. 회로로서,
    낮은 스레쉬홀드(low threshold), 높은 스레쉬홀드, 및 히스테리시스 값을 갖는 반전 슈미트 트리거(inverting Schmitt trigger); 및
    상기 슈미트 트리거에 연결된 조정가능 핀(tunable pin) - 상기 슈미트 트리거 및 상기 조정가능 핀은, 상기 조정가능 핀 상의 전압을 조정하는 것이 상기 슈미트 트리거의 상기 히스테리시스 값을 선택적으로 변경하도록, 구성(structure)되고 배열(arrange)됨 - 을 포함하는, 회로.
  17. 청구항 16에 있어서,
    상기 슈미트 트리거의 상기 히스테리시스 값을 증가시키기 위해 상기 조정가능 핀 상의 상기 전압을 감소시키고;
    상기 슈미트 트리거의 상기 히스테리시스 값을 감소시키기 위해 상기 조정가능 핀 상의 상기 전압을 증가시키는, 회로.
  18. 청구항 17에 있어서,
    상기 슈미트 트리거의 입력은 컨텐트 주소지정가능 메모리(content addressable memory, CAM)의 복수의 셀들에 연결된 메인-서치 매치 라인(main-search match line, MML)에 연결되고;
    상기 슈미트 트리거의 출력은 상기 CAM의 비교 회로의 감지 노드(sense node)에 간접적으로 연결되는, 회로.
  19. 컴퓨터 메모리에서 메모리 동작을 수행하는 방법으로서,
    상기 컴퓨터 메모리에서 이단(two-stage) 메모리 동작의 제1 단계(first stage)를 시작하는 단계;
    상기 제1 단계가 아직 실행 중인 상태에서, 그리고 상기 제1 단계의 예비 결과들(preliminary results)에 기초하여, 상기 이단 메모리 동작의 제2 단계(second stage)를 선택적으로 시작하는 단계;
    상기 제2 단계를 시작하는 단계 이후, 상기 제1 단계의 최종 결과를 검출하는 단계; 및
    상기 제1 단계의 상기 최종 결과에 기초하여, 상기 제2 단계를, 중단하는 것 및 완료하는 것 중 하나를 수행하는 단계를 포함하는, 방법.
  20. 청구항 19에 있어서, 상기 메모리 동작은 서치 동작(search operation)이고 상기 제2 단계를 선택적으로 시작하는 상기 단계는 매치(match)를 나타내는 상기 제1 단계의 상기 예비 결과들에 기초하며, 상기 방법은,
    상기 제1 단계의 상기 최종 결과가 미스(miss)를 나타낼 때 상기 제2 단계를 중단하는 단계; 및
    상기 제1 단계의 상기 최종 결과가 매치를 나타낼 때 상기 제2 단계를 완료하는 단계를 더 포함하는, 방법.
  21. 청구항 19에 있어서, 상기 제2 단계를 선택적으로 시작하는 상기 단계는, 상기 제1 단계의 완료를 상기 제2 단계의 시작과 오버랩(overlap)시키는 단계를 포함하는, 방법.
  22. 청구항 19에 있어서, 상기 컴퓨터 메모리는 컨텐트 주소지정가능 메모리(content addressable memory, CAM)를 포함하는, 방법.
  23. 청구항 19에 있어서, 상기 컴퓨터 메모리는,
    다이내믹 랜덤 억세스 메모리(dynamic random access memory, DRAM), 스태틱 랜덤 억세스 메모리(static random access memory, SRAM), 및 비휘발성 메모리 중 하나를 포함하는, 방법.
  24. 컨텐트 주소지정가능 메모리(content addressable memory, CAM)를 서치(search)하는 방법으로서,
    이단(two-stage) CAM 서치 동작 중 프리-서치(pre-search) 동안, 프리 서치 매치 라인(pre-search match line, PML) 상의 전압을 디벨롭(deveolp)시키는 단계;
    상기 전압이 스레쉬홀드 레벨을 넘어섰음을 검출하는 단계;
    상기 검출하는 단계에 기초하여 그리고 상기 프리-서치의 완료에 앞서, 상기 이단 CAM 서치 동작의 메인-서치(main-search)를 시작하는 단계; 및
    상기 메인-서치를 시작하는 단계 이후에,
    상기 전압이 상기 스레쉬홀드 레벨 아래로 강하되는 것을 검출하고 상기 메인-서치를 중단하고;
    상기 전압이 상기 스레쉬홀드 레벨 위로 남아 있는 것을 검출하고 상기 메인-서치를 완료하는 것, 중 하나를 수행하는 단계를 포함하는, 방법.
  25. 청구항 24에 있어서, 상기 방법은,
    상기 메인-서치에 사용되는 슈미트 트리거의 히스테리시스 값을 조정함으로써, 상기 메인-서치의 리키지 허용오차(leakage tolerance) 및 응답 시간(response time)을 조정하는 단계를 더 포함하는, 방법.
KR1020147029797A 2012-05-29 2013-05-15 컨텐트 주소지정가능 메모리 조기-예측 늦은-정정 단일 엔드형 감지 KR20150004352A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/482,166 US9384835B2 (en) 2012-05-29 2012-05-29 Content addressable memory early-predict late-correct single ended sensing
US13/482,166 2012-05-29
PCT/US2013/041047 WO2013180950A2 (en) 2012-05-29 2013-05-15 Content addressable memory early-predict late-correct single ended sensing

Publications (1)

Publication Number Publication Date
KR20150004352A true KR20150004352A (ko) 2015-01-12

Family

ID=49671723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147029797A KR20150004352A (ko) 2012-05-29 2013-05-15 컨텐트 주소지정가능 메모리 조기-예측 늦은-정정 단일 엔드형 감지

Country Status (6)

Country Link
US (1) US9384835B2 (ko)
JP (1) JP2015523670A (ko)
KR (1) KR20150004352A (ko)
CN (1) CN104335285B (ko)
DE (1) DE112013002065B4 (ko)
WO (1) WO2013180950A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832619B2 (en) * 2013-01-28 2014-09-09 Taiwan Semiconductor Manufacturing Co., Ltd. Analytical model for predicting current mismatch in metal oxide semiconductor arrays
US9564183B2 (en) * 2014-11-26 2017-02-07 Invecas, Inc. Sense amplifier having a timing circuit for a presearch and a main search
US10761981B2 (en) 2015-07-17 2020-09-01 Hewlett Packard Enterprise Development Lp Content addressable memory
JP6592310B2 (ja) * 2015-09-01 2019-10-16 ルネサスエレクトロニクス株式会社 半導体装置
US10043578B2 (en) * 2015-11-12 2018-08-07 Mediatek Inc. Sense amplifier circuits
US9979649B2 (en) * 2015-12-04 2018-05-22 Wisconsin Alumin Research Foundation High density content addressable memory
US9640250B1 (en) * 2016-05-16 2017-05-02 Qualcomm Incorporated Efficient compare operation
JP6659486B2 (ja) * 2016-07-20 2020-03-04 ルネサスエレクトロニクス株式会社 半導体装置
US9892789B1 (en) 2017-01-16 2018-02-13 International Business Machines Corporation Content addressable memory with match hit quality indication
US10482989B1 (en) * 2018-02-23 2019-11-19 Cadence Design Systems, Inc. Dynamic diagnostics analysis for memory built-in self-test
US10930348B1 (en) * 2019-08-13 2021-02-23 Hewlett Packard Enterprise Development Lp Content addressable memory-encoded crossbar array in dot product engines
US11587617B2 (en) * 2020-08-26 2023-02-21 Macronix International Co., Ltd. Ternary content addressable memory and decision generation method for the same

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1600304A (ko) * 1968-12-31 1970-07-20
US5920886A (en) 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs
KR100215839B1 (ko) * 1997-03-20 1999-08-16 구본준 트리거 전압 조정이 가능한 슈미트 트리거 회로
KR100236058B1 (ko) * 1997-04-24 1999-12-15 김영환 트리거 전압 조정이 가능한 슈미트 트리거 회로
US6243280B1 (en) * 1999-09-09 2001-06-05 Netlogic Microsystems, Inc. Selective match line pre-charging in a partitioned content addressable memory array
JP2001357678A (ja) * 2000-06-16 2001-12-26 Hitachi Ltd 半導体集積回路装置
US6792502B1 (en) * 2000-10-12 2004-09-14 Freescale Semiconductor, Inc. Microprocessor having a content addressable memory (CAM) device as a functional unit therein and method of operation
US6373738B1 (en) * 2000-11-20 2002-04-16 International Business Machines Corporation Low power CAM match line circuit
US6512684B2 (en) * 2001-06-11 2003-01-28 International Business Machines Corporation Content addressable memory having cascaded sub-entry architecture
US6717876B2 (en) * 2001-12-28 2004-04-06 Mosaid Technologies Incorporated Matchline sensing for content addressable memories
US6584003B1 (en) * 2001-12-28 2003-06-24 Mosaid Technologies Incorporated Low power content addressable memory architecture
CN100414646C (zh) 2001-12-28 2008-08-27 莫塞德技术公司 低功耗内容可定址记忆体架构
US6768659B2 (en) * 2001-12-31 2004-07-27 Mosaid Technologies Incorporated Circuit and method for reducing power usage in a content addressable memory
US6760242B1 (en) * 2002-04-10 2004-07-06 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having speed adjustable match line signal repeaters therein
US6642749B1 (en) * 2002-09-27 2003-11-04 Lsi Logic Corporation Latching sense amplifier with tri-state output
US7365661B2 (en) 2002-11-14 2008-04-29 Fyre Storm, Inc. Power converter circuitry and method
US7019674B2 (en) 2004-02-05 2006-03-28 Nec Laboratories America, Inc. Content-based information retrieval architecture
US7167032B1 (en) * 2004-03-31 2007-01-23 Lattice Semiconductor Corporation Self-adjusting Schmitt trigger
US7102904B1 (en) * 2004-09-02 2006-09-05 Sun Microsystems, Inc. System and method for minimizing noise on a dynamic node
US7050318B1 (en) * 2004-10-01 2006-05-23 Netlogic Microsystems, Inc. Selective match line pre-charging in a CAM device using pre-compare operations
US7688672B2 (en) * 2005-03-14 2010-03-30 Rambus Inc. Self-timed interface for strobe-based systems
US7797520B2 (en) 2005-06-30 2010-09-14 Arm Limited Early branch instruction prediction
US7349230B2 (en) 2005-10-18 2008-03-25 Cisco Technology, Inc. Associative memory cells configured to selectively produce binary or ternary content-addressable memory lookup results
US7471537B1 (en) 2006-06-23 2008-12-30 Integrated Device Technology, Ltd. Content addressable memories (CAM) having low power dynamic match line sensing circuits therein
US7724559B2 (en) * 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US7689889B2 (en) 2006-08-24 2010-03-30 Cisco Technology, Inc. Content addressable memory entry coding for error detection and correction
US8125810B2 (en) * 2007-08-01 2012-02-28 Texas Instruments Incorporated Low power ternary content-addressable memory (TCAM)
EP2465550A1 (en) 2007-10-03 2012-06-20 Astra Tech AB Catheter receptacle provided with an antimicrobial compound
US7924588B2 (en) 2007-12-03 2011-04-12 International Business Machines Corporation Content addressable memory with concurrent two-dimensional search capability in both row and column directions
US20090210382A1 (en) 2008-02-15 2009-08-20 Eliel Louzoun Method for priority search using a tcam
US8392651B2 (en) 2008-08-20 2013-03-05 Mips Technologies, Inc. Data cache way prediction
US8120937B2 (en) 2009-03-06 2012-02-21 International Business Machines Corporation Ternary content addressable memory using phase change devices
US8130525B2 (en) 2009-10-09 2012-03-06 International Business Machines Corporation Method and apparatus for configuring a content-addressable memory (CAM) design as binary CAM or ternary CAM
US8766692B1 (en) * 2010-06-07 2014-07-01 Xilinx, Inc. Supply voltage independent Schmitt trigger inverter
US7920398B1 (en) * 2010-09-21 2011-04-05 Netlogic Microsystems, Inc. Adaptive match line charging
JP5998381B2 (ja) * 2012-05-06 2016-09-28 国立大学法人東北大学 半導体記憶装置

Also Published As

Publication number Publication date
JP2015523670A (ja) 2015-08-13
CN104335285B (zh) 2017-07-21
US9384835B2 (en) 2016-07-05
DE112013002065T5 (de) 2015-04-30
DE112013002065B4 (de) 2017-06-01
WO2013180950A2 (en) 2013-12-05
WO2013180950A3 (en) 2014-03-06
US20130326111A1 (en) 2013-12-05
CN104335285A (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
US9384835B2 (en) Content addressable memory early-predict late-correct single ended sensing
KR101251360B1 (ko) 비트 라인 섹션들의 선택적 프리차지를 사용한 메모리 판독 안정성 개선
US8014215B2 (en) Cache array power savings through a design structure for valid bit detection
US7751218B2 (en) Self-referenced match-line sense amplifier for content addressable memories
US9007858B2 (en) SRAM global precharge, discharge, and sense
US9224437B2 (en) Gated-feedback sense amplifier for single-ended local bit-line memories
US10636457B2 (en) Overvoltage protection for a fine grained negative wordline scheme
US9542981B2 (en) Self-timed, single-ended sense amplifier
US20140126276A1 (en) Power management sram global bit line precharge circuit
US7391633B2 (en) Accelerated searching for content-addressable memory
Arsovski et al. 1Gsearch/sec Ternary Content Addressable Memory compiler with silicon-aware Early-Predict Late-Correct single-ended sensing
US20190164623A1 (en) Memory interface latch with integrated write-through and fence functions
US9761289B1 (en) Managing semiconductor memory array leakage current
US20150029803A1 (en) Single-Ended Low-Swing Power-Savings Mechanism with Process Compensation
US9589653B1 (en) Creating default states for non-volatile memory elements

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