맨위로가기

내용 주소화 기억장치

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

내용 주소화 기억 장치(CAM)는 저장된 데이터의 주소가 아닌 내용에 따라 데이터를 검색하는 특수한 유형의 메모리이다. 1955년 더들리 앨런 버크가 개념을 발명했으며, 하드웨어 연관 배열의 한 종류로 볼 수 있다. CAM에는 이진 CAM과 삼진 CAM(TCAM)이 있으며, TCAM은 추가적인 "X" 상태를 통해 검색 유연성을 높인다. CAM은 칩 크기, 비용, 전력 소모가 높지만, 데이터 검색 속도가 빠르기 때문에 네트워크 스위치, 라우터, CPU의 캐시 컨트롤러, TLB 등에 활용된다. CAM의 대안으로 트리 검색이나 해싱을 이용한 에뮬레이션 방식도 존재한다.

더 읽어볼만한 페이지

  • 컴퓨터 네트워킹 - 유니캐스트
    유니캐스트는 데이터를 단일 목적지로 전송하는 방식으로, 브로드캐스트 및 멀티캐스트와 대비되며, 개인적 또는 고유한 리소스가 필요한 네트워크 프로세스에 사용되지만, 대량 데이터 전송 시 비용이 증가하는 단점이 있다.
  • 컴퓨터 네트워킹 - 노드 (네트워크)
    노드(네트워크)는 데이터 통신에서 데이터를 주고받는 장치를 의미하며, 물리적 네트워크 노드, 인터넷 노드, 통신 네트워크 노드, 분산 시스템 노드, 네트워크 가상화 노드 등으로 분류된다.
  • 컴퓨터 메모리 - 플래시 메모리
    플래시 메모리는 전기적으로 데이터의 쓰기 및 삭제가 가능한 비휘발성 메모리 기술로, 마스오카 후지오 박사가 발명하여 카메라 플래시와 유사한 소거 방식으로 인해 명명되었으며, NOR형과 NAND형으로 나뉘어 각기 다른 분야에 적용된다.
  • 컴퓨터 메모리 - 메모리 계층 구조
    메모리 계층 구조는 CPU 데이터 접근 속도 향상을 위해 레지스터, 캐시, RAM, 보조 기억 장치 등으로 구성되며, 속도, 용량, 비용이 다른 계층들을 통해 효율적인 메모리 관리를 가능하게 한다.
내용 주소화 기억장치

2. 역사

더들리 앨런 버크는 1955년에 내용 주소화 기억 장치의 개념을 발명했다. 버크는 인식 장치라는 아이디어를 낸 것으로 알려져 있다.[2]

3. 하드웨어 연관 배열

일반적인 기억 장치RAM(Random Access Memory)은 사용자가 메모리 주소를 제공하면 해당 주소에 저장된 데이터 워드를 반환한다.[14] 반면, 내용 주소화 기억장치(CAM)는 사용자가 데이터 워드(검색어)를 제공하면, CAM이 자신의 메모리 공간 전체를 탐색하여 해당 데이터 워드가 저장되어 있는지 확인하고, 만약 있다면 해당 워드가 발견된 하나 이상의 저장 주소 목록을 반환하도록 설계되었다. 따라서 CAM은 소프트웨어 용어로 연관 배열이라고 하는 것의 하드웨어 구현이라고 할 수 있다.

더들리 앨런 벅은 1955년에 내용 주소화 기억 장치의 개념을 발명했으며, '데이터 워드 인식 장치'라는 아이디어를 제안한 것으로 알려져 있다.[2][3]

CAM은 하드웨어적으로 메모리 전체에 대해 병렬 검색을 수행하여 매우 빠른 응답 속도를 보장한다. 그러나 이러한 고성능을 위해 단순한 기억 셀로 구성된 RAM과 달리, 메모리 내의 모든 비트마다 입력 데이터와의 비교 회로가 필요하다. 또한, 개별 비트가 아닌 데이터 워드 전체의 일치를 찾아야 하므로, 비교 결과를 통합하는 회로도 추가로 요구된다. 이러한 추가 회로들은 CAM의 회로 크기를 증가시키고 제조 비용을 높이는 주요 원인이 된다. 더불어, 데이터가 입력될 때마다 전체 비교 회로가 작동하기 때문에 소비 전력 또한 크다. 결과적으로 CAM은 현재 매우 빠른 검색 성능이 반드시 필요한 특정 용도에서만 제한적으로 사용되고 있다.

속도, 크기, 비용 간의 균형을 맞추기 위해, 트리 구조 검색이나 해시 테이블을 사용하여 CAM의 기능을 하드웨어적으로 에뮬레이트하는 구현 방식도 존재한다. 이러한 방식은 고속화를 위해 레플리케이션이나 파이프라인 기법을 사용하기도 하며, 주로 라우터와 같은 네트워크 장비에서 찾아볼 수 있다.

CAM 및 다른 네트워크 검색을 위한 주요 인터페이스로는 Network Processing Forum이 네트워크 장비의 상호 운용성을 높이기 위해 표준화한 룩어사이드 인터페이스(LA-1 및 LA-1B)가 정의되어 있다. 이 표준에 기반한 다양한 장비들이 IDT나 사이프러스 반도체(Cypress Semiconductor) 등에 의해 제조되고 있다.

4. 종류

내용 주소화 기억장치(CAM)는 저장된 데이터와 입력된 검색어를 비교하는 방식에 따라 몇 가지 종류로 나뉜다. 대표적인 유형으로는 이진 CAM과 삼진 CAM이 있다.


  • 이진 CAM: 가장 기본적인 CAM 형태로, 저장된 데이터와 검색어를 오직 1과 0의 이진 값으로만 비교하고 처리한다.
  • 삼진 CAM: 이진 CAM의 기능을 확장하여, 1과 0 외에 'X (Don't Care)'라는 세 번째 상태를 허용한다. 이 '돈 케어' 상태는 특정 비트 위치의 값에 상관없이 일치하는 것으로 간주하게 하여 검색의 유연성을 크게 높인다. 주로 네트워크 라우터라우팅 테이블 검색 등 복잡한 패턴 매칭이 필요한 곳에 사용되지만, 구조가 복잡하고 비용이 더 많이 든다는 단점이 있다.

4. 1. 이진 CAM (Binary CAM)

'''이진 CAM'''은 가장 간단한 유형의 CAM이며, 완전히 1과 0으로 구성된 데이터 검색어를 사용한다. 이는 검색어의 내용을 1과 0의 두 가지 값으로만 처리하는 방식이다.

삼진 CAM(TCAM)[8]은 저장된 단어의 비트에 대해 'X' 또는 '돈 케어(Don't Care)'라는 세 번째 상태를 허용하여 검색에 유연성을 더한다. 예를 들어, 삼진 CAM에 저장된 ''10XX0'' 단어는 ''10000'', ''10010'', ''10100'', ''10110'' 네 가지 검색어와 모두 일치할 수 있다. 하지만 이러한 추가적인 유연성은 이진 CAM보다 비용 증가를 수반하는데, 내부 메모리 셀이 이진 CAM의 두 가지 상태(0과 1) 대신 세 가지 상태를 인코딩해야 하기 때문이다.

4. 2. 삼진 CAM (Ternary CAM, TCAM)

'''삼진 CAM'''('''TCAM''')[8]은 이진 CAM과는 달리, 저장된 데이터 워드의 하나 이상의 비트에 대해 ''X'' 또는 ''돈 케어''(Don't Care)라는 세 번째 일치 상태를 허용하여 검색에 유연성을 더한다. 이진 CAM이 1과 0으로만 이루어진 검색어를 사용하는 반면, TCAM은 이 세 번째 상태를 통해 더 다양한 검색 조건을 처리할 수 있다.

예를 들어, TCAM에 저장된 ''10XX0''이라는 단어는 ''10000'', ''10010'', ''10100'', ''10110'' 네 가지 검색어 중 어느 것과도 일치하는 것으로 간주된다. 이러한 검색의 유연성은 네트워크 라우터 등에서 라우팅 테이블을 검색할 때 특히 유용하다. 라우터는 IP 주소를 처리할 때 서브넷 마스크를 사용하는데, TCAM을 활용하면 주소의 특정 부분(예: 호스트 주소 부분)을 "상관 없음"으로 설정하여, 서브넷 마스크 적용 및 네트워크 주소 비교 과정을 하드웨어 수준에서 매우 빠르게 수행할 수 있다.[8]

두 개의 6T SRAM 셀과 4개의 비교 트랜지스터로 구성된 CMOS 삼진 CAM 셀. 일반적으로 '0'과 '1' 또는 '1'과 '0'과 같은 반대 논리 레벨이 두 셀에 저장된다. 돈 케어 조건의 경우 '0'이 두 셀 모두에 저장되어 검색 라인(SL) 데이터의 어떤 조합에 대해서도 일치 라인 ML이 낮게 당겨지지 않도록 한다.


하지만 이러한 추가된 유연성은 비용 증가를 수반한다. TCAM의 내부 메모리 셀은 이진 CAM의 두 가지 상태(0 또는 1) 대신 세 가지 상태(0, 1, X)를 인코딩해야 하므로 더 복잡한 구조가 필요하다. 이 추가 상태는 일반적으로 모든 메모리 셀에 마스크 비트(''케어'' 또는 ''돈 케어'' 비트)를 추가하여 구현된다.[8] 이로 인해 이진 CAM보다 회로 크기가 커지고 제조 비용 및 소비 전력도 증가하는 경향이 있다.

기술 발전과 함께 새로운 방식의 TCAM도 개발되고 있다. 2013년 IBM은 2-트랜지스터/2-저항 저장(2T-2R) 셀을 사용한 비휘발성 TCAM을 제작했으며,[9] 최근에는 하이브리드 강유전체 FeFET를 사용한 TCAM 설계도 발표되었다.[10]

5. 표준

내용 주소화 기억 장치(CAM) 및 기타 네트워크 검색 엔진을 위한 주요 인터페이스 정의는 네트워크 프로세싱 포럼에서 개발한 룩어사이드 인터페이스(LA-1 및 LA-1B)라는 상호 운용성 협약에 명시되어 있다.[4] 이 상호 운용성 협약을 준수하는 여러 장치가 통합 장치 기술(Integrated Device Technology), 사이프러스 반도체(Cypress Semiconductor), IBM, 브로드컴(Broadcom) 등에서 생산되었다. 2007년 12월 11일, OIF는 직렬 룩어사이드(SLA) 인터페이스 협약을 발표했다.

6. 반도체 구현



내용 주소화 기억장치(CAM)는 데이터 검색 응용 프로그램에서 일반적인 램(RAM)보다 훨씬 빠르다. 그러나 CAM에는 비용적인 단점이 있다. 단순한 저장 셀을 가진 RAM 과는 달리, 완전히 병렬화된 CAM의 각 개별 메모리 비트는 저장된 비트와 입력 비트 간의 일치를 감지하기 위해 자체적으로 관련된 비교 회로를 가져야 한다. 또한 데이터 단어의 각 셀에서 나온 일치 출력은 완전한 데이터 단어 일치 신호를 생성하기 위해 결합되어야 한다. 이러한 추가 회로는 CAM 칩의 물리적 크기와 제조 비용을 증가시킨다.[5]

또한, 모든 비교 회로가 모든 클록 사이클에서 활성화되므로 추가 회로는 전력 소모를 증가시킨다. 결과적으로 CAM은 더 저렴한 방법으로는 검색 속도를 달성할 수 없는 특수 응용 분야에서만 사용된다. 성공적인 초기 구현 중 하나는 범용 연관 프로세서 IC 및 시스템이었다.[5]

속도와 크기, 비용의 균형을 맞추기 위해 트리 구조 검색이나 해시 테이블을 사용하여 CAM의 기능을 하드웨어적으로 에뮬레이트하는 구현도 있으며, 이 경우 고속화를 위해 레플리케이션이나 파이프라인을 사용한다. 이러한 설계는 라우터에서 자주 사용된다.

2000년대 초에 Cypress, IDT, Netlogic, Sibercore,[6] 및 MOSAID를 포함한 여러 반도체 회사가 네트워킹 응용 프로그램을 타겟으로 하는 CAM 제품을 출시했다. 이러한 제품은 네트워크 검색 엔진(NSE), 네트워크 검색 가속기(NSA), 지식 기반 프로세서(KBP)로 명명되었지만 본질적으로 네트워킹에 최적화된 특수 인터페이스와 기능을 갖춘 CAM이었다. 현재 Broadcom은 여러 제품군의 KBP를 제공한다.[7]

연상 메모리 및 다른 네트워크 검색을 위한 주요 인터페이스는, 네트워크 장비의 상호 운용성을 높이기 위해 Network Processing Forum이 표준화한 룩어사이드 인터페이스(LA-1 및 LA-1B)로 정의되어 있다. 이 표준에 기반한 다양한 장비를 IDT나 Cypress 등이 제조하고 있다.

7. 대안 구현

속도, 메모리 크기, 비용 간에 다른 균형을 맞추기 위해, 일부 구현에서는 하드웨어에서 표준 트리 구조 검색이나 해시 테이블 설계를 사용하여 내용 주소화 기억장치(CAM)의 기능을 에뮬레이션한다. 이러한 방식은 복제(replication)나 파이프라이닝과 같은 하드웨어 기법을 사용하여 효과적인 성능을 가속화하기도 하며, 주로 라우터와 같은 네트워크 장비에 사용된다.

룰레아 알고리즘은 인터넷 라우팅 테이블 검색에 필요한 최장 접두어 일치(Longest Prefix Match) 검색을 위한 효율적인 구현 예시 중 하나이다.

CAM 및 다른 네트워크 검색 기능을 위한 주요 인터페이스로는 Network Processing Forum이 표준화한 룩어사이드 인터페이스(LA-1 및 LA-1B)가 정의되어 있다. 이 표준은 네트워크 장비 간의 상호 운용성을 높이는 것을 목표로 하며, IDT나 사이프러스 반도체(Cypress Semiconductor) 등 여러 기업에서 이 표준에 기반한 장치를 제조하고 있다.

8. 응용 분야

내용 주소화 기억장치(CAM)는 특정 데이터를 저장된 위치 주소 대신 내용 자체로 검색하는 메모리 방식으로, 다양한 분야에서 고속 검색이 필요한 작업에 활용된다.

컴퓨터 네트워크 장치에서 CAM은 핵심적인 역할을 수행한다.


  • 네트워크 스위치: 스위치는 특정 포트로 데이터 프레임을 수신하면, 해당 프레임의 출발지 MAC 주소와 수신 포트 정보를 내부 테이블(MAC 주소 테이블)에 기록한다. 이후 프레임의 목적지 MAC 주소를 이 테이블에서 검색하여 어느 포트로 전달할지 결정하는데, 이 과정에서 주로 이진 CAM(Binary CAM)을 사용하여 매우 빠르게 목적지 포트를 찾는다. 이는 스위치의 처리 지연 시간을 줄이는 데 기여한다.[11]
  • 라우터: 라우터는 라우팅 테이블을 참조하여 데이터 패킷의 경로를 결정한다. 라우팅 테이블에는 목적지 네트워크 주소, 서브넷 마스크, 다음 홉(Next Hop) 정보 등이 포함된다. 특히 복잡한 IP 주소 검색과 최장 프리픽스 일치(Longest Prefix Match, LPM)를 효율적으로 처리하기 위해 삼진 CAM(Ternary CAM, TCAM)이 널리 사용된다. TCAM은 '0', '1' 외에 'Don't Care'(상관 없음) 상태를 저장할 수 있어, 다양한 길이의 네트워크 프리픽스를 유연하고 빠르게 검색할 수 있다. 마스크 연산과 비교가 CAM 하드웨어 내에서 직접 이루어져 라우팅 성능을 크게 향상시킨다.[11]


CPU 내부에서도 CAM 기술이 중요한 요소로 사용된다.

  • 캐시 컨트롤러: 완전 연관(Fully Associative) 방식이나 세트 연관(Set-Associative) 방식의 캐시 메모리에서 특정 데이터가 캐시의 어느 위치에 저장되어 있는지 빠르게 찾기 위해 CAM이 사용된다.
  • TLB(Translation Lookaside Buffer): 가상 주소물리 주소로 변환하는 과정의 속도를 높이기 위해 사용된다. TLB는 최근에 사용된 가상 주소-물리 주소 변환 정보를 저장하고, CAM의 원리를 이용해 필요한 주소 변환 정보를 신속하게 검색한다.


이 외에도 CAM은 다음과 같은 다양한 분야에서 활용된다.

  • 데이터베이스 엔진: 특정 조건에 맞는 데이터를 빠르게 검색하는 데 사용될 수 있다.
  • 데이터 압축 하드웨어: 데이터 패턴 매칭 속도를 높이는 데 기여한다.
  • 인공 신경망: 패턴 인식 및 연관 학습과 같은 작업에서 CAM의 병렬 검색 능력이 활용될 수 있다.[13]
  • 침입 방지 시스템(IPS): 네트워크 트래픽에서 악성 패턴을 실시간으로 탐지하는 데 사용된다.
  • 네트워크 프로세서: 패킷 분류, 접근 제어 목록(ACL) 처리 등 다양한 네트워크 기능 가속에 활용된다.
  • 특수 목적 컴퓨터: Goodyear STARAN과 같이 CAM을 핵심 요소로 설계한 초기 병렬 컴퓨터도 존재한다.[11]

참조

[1] 웹사이트 K. Pagiamtzis* and A. Sheikholeslami, Content-addressable memory (CAM) circuits and architectures: A tutorial and survey, IEEE Journal of Solid-State Circuits, pp. 712-727, March 2006. https://www.eecg.uto[...]
[2] 간행물 First interim report on optimum utilization of computers and computing techniques in shipboard weapons control systems https://web.archive.[...] TRW Computer Division 1963
[3] 웹보관 TRW Computer Division http://www.dtic.mil/[...] 1963-08-05
[4] 간행물 Look-Aside (LA-1B) Interface Implementation Agreement https://www.oiforum.[...] 2004-08-04
[5] 학술지 A general-purpose CMOS associative processor IC and system https://ieeexplore.i[...] 1992-12
[6] 웹사이트 Sibercore Technologies - Silicon Solutions for Cyberspace http://sibercore.com[...]
[7] 웹사이트 16nm Heterogeneous Knowledge-Based Processors (KBPs) https://www.broadcom[...]
[8] 서적 CCNP BCMSN Exam Certification Guide: CCNP Self-study https://books.google[...] Cisco Press
[9] 문서 Jing Li, R. Montoye, M. Ishii, K. Stawiasz, T. Nishida, K. Maloney, G. Ditlow, S. Lewis, T. Maffitt, R. Jordan, Leland Chang, P. Song, "1Mb 0.41 μm2 2T-2R cell nonvolatile TCAM with two-bit encoding and clocked self-referenced sensing", [[IEEE]] Symposium on VLSI Technology, 2013.
[10] 문서 Xunzhao Yin, Yu Qian, M. Imani, K. Ni, Chao Li, Grace Li Zhang, Bing Li, Ulf Schlichtmann, Cheng Zhuo, "Ferroelectric Ternary Content Addressable Memories for Energy-Efficient Associative Search", [[IEEE]] Transactions on Computer-Aided Design of Integrated Circuits and Systems, April 2023.
[11] 문서 Varghese, George, ''Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices'', Morgan Kaufmann, 2005
[12] 학술지 Cache Memories https://www.engineer[...] 2022-04-03
[13] 웹사이트 Distributed representations http://repository.cm[...] 2017-12-14
[14] 문서 ハードディスク等ではブロック番号など



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com