KR20110064633A - Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치 - Google Patents

Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치 Download PDF

Info

Publication number
KR20110064633A
KR20110064633A KR1020090121318A KR20090121318A KR20110064633A KR 20110064633 A KR20110064633 A KR 20110064633A KR 1020090121318 A KR1020090121318 A KR 1020090121318A KR 20090121318 A KR20090121318 A KR 20090121318A KR 20110064633 A KR20110064633 A KR 20110064633A
Authority
KR
South Korea
Prior art keywords
address
bit
data
matching
layer
Prior art date
Application number
KR1020090121318A
Other languages
English (en)
Other versions
KR101074495B1 (ko
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 한양대학교 산학협력단
Priority to KR1020090121318A priority Critical patent/KR101074495B1/ko
Priority to PCT/KR2010/008595 priority patent/WO2011071273A2/en
Publication of KR20110064633A publication Critical patent/KR20110064633A/ko
Application granted granted Critical
Publication of KR101074495B1 publication Critical patent/KR101074495B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Semiconductor Memories (AREA)
  • Communication Control (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터가 입력되면 해당 데이터의 주소를 반환하는 TCAM의 기능을 수행할 수 있는 SRAM 기반의 주소 생성 장치가 제공된다. 주소 생성 장치는 w비트로 구성된 n개의 서브 인풋 워드를 각각 제공받아 각 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, 최종 인덱스 데이터 및 비트 포지션 데이터 중 서브 워드의 b비트가 지시하는 비트 값을 출력하는 n개의 비트 포지션 테이블, n 개의 비트 값을 제공받아 AND 연산을 수행하여 n개의 인에이블 신호를 출력하는 제1 AND 연산부, 비트 포지션 데이터, 최종 인덱스 데이터 및 인에이블 신호를 각각 제공받아 에드레스 데이터를 출력하는 n개의 어드레스 제너레이터, 어드레스 데이터를 각각 제공받아 어드레스 데이터가 지시하는 주소의 어드레스 포지션 데이터를 출력하는 n개의 어드레스 포지션 테이블, 및 n개의 어드레스 포지션 데이터를 제공받아 AND 연산을 수행하여 제1 매칭 주소를 출력하는 제2 AND 연산부를 포함한다.
TCAM, SRAM, 하이브리드 파티션(hybrid patition)

Description

SRAM 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치{SRAM based address generator for each layer and address generator comprising the same}
본 발명은 주소 생성 장치에 관한 것이다. 보다 상세하게는 데이터가 입력되면 해당 데이터의 주소가 출력되는 기능을 수행할 수 있는 SRAM 기반의 주소 생성 장치에 관한 것이다.
주소 생성 장치(AG; Address Generator)(5)는 도 1에 도시된 바와 같이 데이터(DATA)가 입력되면 해당 데이터의 주소(ADDRESS)를 출력하는 장치이다. 대표적인 것으로 CAM(Content Addressable Memory)을 예로 들 수 있으며, CAM의 경의 RAM(Random Access Memory)과 달리 데이터를 입력 받아 입력 데이터의 주소를 반환하는 메모리이다.
한편, TCAM(Ternary Content Addressable Memory)은 데이터 값으로 0, 1외에 X(don´t care)를 저장할 수 있는 메모리로서 검색 속도가 빨라 인기를 얻고 있으나, 저장 데이터의 양이 증가하면서 소비 전력 등으로 인한 비용 문제가 그 사용에 제약이 되고 있다.
본 발명이 해결하고자 하는 과제는 저비용으로 TCAM의 주소 반환 기능을 수행할 수 있는 계층별 주소 생성 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 TCAM의 주소 반환 기능을 수행할 수 있는 주소 생성 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위한 본 발명의 계층별 주소 생성 장치의 일 태양(aspect)은, w비트로 구성된 n개의 서브 인풋 워드를 각각 제공받아 각 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, 최종 인덱스 데이터 및 비트 포지션 데이터 중 서브 워드의 b비트가 지시하는 비트 값을 출력하는 n개의 비트 포지션 테이블, n 개의 비트 값을 제공받아 AND 연산을 수행하여 n개의 인에이블 신호를 출력하는 제1 AND 연산부, 비트 포지션 데이터, 최종 인덱스 데이터 및 인에이블 신호를 각각 제공받아 에드레스 데이터를 출력하는 n개의 어드레스 제너레이터, 어드레스 데이터를 각각 제공받아 어드레스 데이터가 지시하는 주소의 어드레스 포지션 데이터를 출력하는 n개의 어드레스 포지션 테이블, 및 n개의 어드레스 포지션 데이터를 제공받아 AND 연산을 수행하여 제1 매칭 주소를 출력하는 제2 AND 연산부를 포함한다.
상기 다른 과제를 달성하기 위한 본 발명의 주소 생성 장치의 일 태양은, m개의 상기 계층별 주소 생성 장치, 및 m개의 계층별 주소 생성 장치로부터 m개의 제1 매칭 주소 또는 제2 매칭 주소를 제공받아 제3 매칭 주소를 출력하는 제2 인코더를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 일 실시예에 따른 주소 생성 장치를 이용할 경우, TCAM을 형성하는 대신 SRAM에 저장된 비트 포지션 테이블들과 어드레스 포지션 테이블들을 이용하여 인풋 워드의 주소를 반환함으로써 저비용으로 TCAM의 주소 반환 기능을 수행할 수 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"는 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "이루어지다(made of)"는 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하 도 2 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 계층(layer)별 주소 생성 장치에 대해 설명한다.
도 2는 하이브리드 파티션을 설명하기 위한 도면이다. 도 3은 본 발명의 일 실시예에 따른 계층별 주소 생성 장치를 설명하기 위한 구성도이다. 도 4는 비트 포지션 테이블을 설명하기 위한 도면이다. 도 5는 어드레스 포지션 테이블을 설명 하기 위한 도면이다.
먼저 도 2를 참조하면, 도 2에는 TCAM이 하이브리드 파티셔닝(hybrid partitioning)된 개념도가 도시되어 있다. 구체적으로 TCAM을 n개의 수직 파티션(vertical partitions)과 m개의 수평 파티션(horizontal partitions)으로 분할하고, 여기서 같은 수평 파티션에 속해있는 파티션들(예를 들어 HP11, HP12, …, HP1n)은 하나의 계층(layer)를 형성할 수 있다. 예를 들어 첫 번째 수평 파티션에 속해있는 파티션들(HP11, HP12, …, HP1n)은 첫 번째 계층(layer 1)을 형성할 수 있고, 두 번째 수평 파티션에 속해있는 파티션들(HP21, HP22, …, HP2n)은 두 번째 계층(layer 2)을 형성할 수 있으며, 같은 방법으로 계속하여 m 번째 수평 파티션에 속해있는 파티션들(HPm1, HPm2, …, HPmn)은 m 번째 계층(layer m)을 형성할 수 있다.
본 발명의 일 실시예에 따른 계층별 주소 생성 장치는 인풋 워드(W)를 제공받아 각 계층에 인풋 워드(W)가 존재하면 그 주소를 반환하고, 각 계층에 인풋 워드(W)가 존재하지 않으면 주소를 반환하지 않는 장치일 수 있다. 구체적으로 제1 계층(layer 1)에 속하는 계층별 주소 생성 장치는 인풋 워드(W)를 제공받아 상기 인풋 워드(W)가 제1 계층(layer 1)에 존재하면 그 주소를 반환하고, 존재하지 않으면 주소를 반환하지 않는 장치이며, 제2 계층(layer 2)에 속하는 계층별 주소 생성 장치는 인풋 워드(W)를 제공받아 상기 인풋 워드(W)가 제2 계층(layer 2)에 존재하면 그 주소를 반환하고, 존재하지 않으면 주소를 반환하지 않는 장치일 수 있다. 따라서, 도 2와 같이 m개의 계층(layer)이 존재할 경우 m개의 계층별 주소 생성 장 치가 존재할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 계층별 주소 생성 장치(100)는 n개의 비트 포지션 테이블(BPT; Bit Position Table)(10), 제1 AND 연산부(20), n개의 어드레스 제너레이터(APTAG; Address Position Table Address Generator)(30), n개의 어드레스 포지션 테이블(APT; Address Position Table)(40), 제2 AND 연산부(50), 및 제1 인코더(60)를 포함할 수 있다.
비트 포지션 테이블(10)은 w비트로 구성된 서브 인풋 워드를 제공받아 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, (w+1)비트로 구성된 최종 인덱스 데이터 및 비트 포지션 데이터 중 서브 워드의 b비트가 지시하는 비트 값을 출력할 수 있다. 구체적으로 비트 포지션 테이블(10)은 W비트로 구성된 인풋 워드가 w비트로 구성된 n개의 서브 인풋 워드로 분할되면, 하나의 비트 포지션 테이블(10)이 하나의 w비트로 구성된 서브 인풋 워드를 제공받아 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, (w+1)비트로 구성된 최종 인덱스 데이터 및 비트 포지션 데이터 중 서브 워드의 b비트가 지시하는 비트 값 출력할 수 있다.
여기서 n은 도 2에 도시된 수직 파티션의 개수와 동일할 수 있다. 즉, 2개의 수직 파티션들이 존재할 경우 본 발명의 일 실시예에 따른 계층별 주소 생성 장치에는 2개의 비트 포지션 테이블(10)이 존재하며, 각 비트 포지션 테이블(10)은 w비트(여기서 W = 2w)로 구성된 서브 인풋 워드를 제공받아 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, (w+1)비트로 구성된 최종 인덱스 데이터 및 비트 포지션 데이터 중 서브 워드의 b비트가 지시하는 비트 값 출력할 수 있다.
다음 도 4를 참조하면, 비트 포지션 테이블은 (w-b)비트로 구성된 2(w-b)개의 비트 포지션 테이블 주소(address)를 포함하고, 각 주소는 2b비트로 구성된 비트 포지션 데이터 (data)와 (w+1)비트로 구성된 최종 인덱스(Last Index) 데이터를 포함할 수 있다.
여기서 비트 포지션 데이터(data)의 각 비트는 서브 인풋 워드가 존재하면 1일 수 있고, 서브 인풋 워드가 존재하지 않으면 0일 수 있다. 그리고 최종 인덱스(Last Index) 데이터는 지시되는 주소보다 앞선 주소의 비트 포지션 데이터 중 비트 값이 1인 비트 개수에서 1을 차감한 값일 수 있다.
한편 b는 비트 포지션 인덱스(BPI; Bit Position Index)로서 w비트로 구성된 서브 인풋 워드의 하위 비트 수 일 수 있다. 즉 예를 들어 서브 인풋 워드가 '1000'이라고 하면, w=4이고, 이 때 하위 비트 2비트(b=2)가 비트 포지션 인덱스라고 하면, 여기서 상위 2비트인 '10'은 비트 포지션 테이블(10)의 비트 포지션 테이블 주소를 의미할 수 있고, 하위 2비트인 '00'은 비트 포지션 인덱스로서 비트 포지션 테이블의 '10'주소의 비트 포지션 데이터 중 '00' 인덱스를 갖는 비트 값을 지시하는데 이용될 수 있다. 이에 대해서는 추후 본 발명의 일 실시예에 따른 주소 생성 장치의 동작을 설명하면서 더욱 자세히 설명하도록 한다.
다음 다시 도 3을 참조하면 제1 AND 연산부(20)는 n개의 비트 포지션 테이블(10)로부터 n개의 비트 값(도 3에 도시된 '1')을 제공받아 AND 연산을 수행하고, 결과 값이 1일 경우 n개의 어드레스 제너레이터(30)를 인에이블 시키는 인에이블 신호(도 3의 Enable signal)을 출력할 수 있다. 여기서, 각 비트 포지션 데이터의 비트 값은 각 비트 포지션 테이블(10)에 서브 인풋 워드가 존재할 때 1이므로, 하나의 비트 값이라도 0일 경우 제1 AND 연산부(20)는 인에이블 신호(enable signal)를 출력하지 않을 수 있다. 이는 모든 수평 파티션에 해당 인풋 워드가 존재하지 않을 경우 탐색을 더 진행할 이유가 없기 때문이다.
어드레스 제너레이터(30)는 어드레스 포지션 테이블(40)의 어드레스를 생성하는 부분으로, 제1 AND 연산부(20)로부터 인에이블 신호를 받아 인에이블 되면, 비트 포지션 테이블(10)로부터 비트 포지션 데이터 및 최종 인덱스 데이터를 제공받아 비트 포지션 데이터 중 비트 값이 1인 비트의 개수와 최종 인덱스 데이터를 더하여 어드레스 포지션 테이블(40)의 어드레스 데이터(도 3의 APTA)를 출력할 수 있다. 여기서 본 발명의 일 실시예에 따른 계층별 주소 생성 장치는 n개의 어드레스 제너레이터(30)를 포함할 수 있으며, 이는 앞서 설명한 비트 포지션 테이블(10)의 개수와 동일할 수 있다.
어드레스 포지션 테이블(40)은 어드레스 데이터(도 3의 APTA)를 제공받아 k비트로 구성된 제2 어드레스 포지션 데이터(도 3의 K-bit row)를 출력할 수 있다. 구체적으로 어드레스 포지션 테이블(40)은 어드레스 제너레이터(30)로부터 어드레스 데이터(도 3의 APTA)를 제공받아 어드레스 데이터가 지시하는 주소에 있는 k비트로 구성된 어드레스 포지션 데이터를 출력할 수 있다. 한편 본 발명의 일 실시예에 따른 계층별 주소 생성 장치는 n개의 어드레스 포지션 테이블(40)을 포함할 수 있으며, 이 역시 앞서 설명한 비트 포지션 테이블(10)의 개수와 동일할 수 있다.
다음 도 5를 참조하면, 어드레스 포지션 테이블(40)은 최대 2w개의 주소를 포함할 수 있고, 각 주소는 k비트로 구성된 어드레스 포지션 데이터를 포함할 수 있다. 여기서 각 어드레스 포지션 데이터는 서브 인풋 워드가 존재하면 1일 수 있고, 서브 인풋 워드가 존재하지 않으면 0일 수 있다.
한편 본 발명의 일 실시예에 따른 계층별 주소 생성 장치의 비트 포지션 테이블(10)과 어드레스 포지션 테이블(40)은 메모리에 저장되어 있을 수 있다. 구체적으로 본 발명의 일 실시예에 따른 계층별 주소 생성 장치의 비트 포지션 테이블(10)과 어드레스 포지션 테이블(40)은 SRAM에 저장되어 있을 수 있다. 이러한 SRAM에 저장된 n개의 비트 포지션 테이블(10)과 어드레스 포지션 테이블(40)을 사용하여 인풋 워드에 대해 주소 값을 반환함으로써 TCAM을 실제 형성하여 주소 값을 반환하는 것에 비해 작은 비용이 들 수 있다. 즉, TCAM을 형성하는 대신 SRAM에 저장된 비트 포지션 테이블(10)들과 어드레스 포지션 테이블(40)들을 이용하여 인풋 워드의 주소를 반환함으로써 저비용으로 TCAM의 주소 반환 기능을 수행할 수 있다.
다시 도 3을 참조하면 제2 AND 연산부(50)는 n개의 k비트로 구성된 어드레스 포지션 데이터(도 3의 K-bit row)를 제공받아 AND 연산을 수행하여 제1 매칭 주소(도 3의 Matching Location)를 출력할 수 있다. 구체적으로 제2 AND 연산부(50)는 n개의 어드레스 포지션 테이블(40)로부터 n개의 k비트로 구성된 어드레스 포지션 데이터를 제공받아 AND 연산을 수행하고, 결과 값이 1인 비트의 인덱스 값을 출력 할 수 있다. 이는 1개 이상일 수 있는데 이럴 경우 제2 AND 연산부(50) 는 모든 인덱스를 제1 매칭 주소로 출력 할 수 있다.
제1 인코더(60)는 제1 매칭 주소(도 3의 Matching location)를 제공받아 제2 매칭 주소(도 3의 PMA; Potential Matching Address)를 출력할 수 있다. 구체적으로 제1 인코더(60)는 제2 AND 연산부(50)로부터 제1 매칭 주소를 제공받아 그 중에서 가장 작은 인덱스 값을 제2 매칭 주소로 출력할 수 있다. 여기서 제1 인코더는 각 계층별로 존재할 수 있기 때문에 로컬 프라이어리티 인코더(LPE; Local Priority Encoder)일 수 있다.
다음 도 6을 참조하여 본 발명의 일 실시예에 따른 주소 생성 장치에 대해 설명한다.
도 6은 본 발명의 일 실시예에 따른 주소 생성 장치를 설명하기 위한 구성도이다.
도 6을 참조하면, 주소 생성 장치(200)는 m개의 계층별 주소 생성 장치(100) 및 제2 인코더(110)를 포함할 수 있다.
계층별 주소 생성 장치(100)는 앞서 설명한 바와 같이 수평 파티션의 개수만큼 m개가 존재할 수 있으며, 각 계층별 주소 생성 장치(100)는 W비트로 구성된 인풋 워드가 n개의 w비트로 구성된 서브 인풋 워드로 분할되면, 각 서브 인풋 워드를 제공받아 계층(layer)별로 제2 매칭 주소(PMA)를 출력할 수 있다.
제2 인코더(110)는 m개의 계층별 주소 생성 장치(100)로부터 m개의 제2 매칭 주소(PMA)를 제공받아 제3 매칭 주소(MA; Matching Address)를 출력할 수 있다. 구 체적으로 제2 인코더(110)는 계층별 주소 생성 장치(100)로부터 m개의 제2 매칭 주소(PMA)를 제공받아 그 중에서 가장 작은 인덱스 값을 제3 매칭 주소로 출력할 수 있다. 여기서 제2 인코더는 한 개가 존재할 수 있기 때문에 글로벌 프라이어리티 인코더(GPE; Global Priority Encoder)일 수 있다.
TCAM을 형성하고 인풋 워드에 대해 TCAM 전체를 검색하여 해당 인풋 워드의 주소를 반환하는 대신, 이러한 본 발명의 일 실시예에 따른 주소 생성 장치를 이용할 경우 SRAM에 저장된 다수의 테이블만을 이용하므로 보다 저 비용으로 TCAM의 주소 반환 기능을 수행할 수 있다.
다음 도 7 내지 도 13을 참조한 일 예를 들어 본 발명의 일 실시에에 따른 주소 생성 장치의 동작에 대해 설명한다.
도 7은 TCAM의 일 예를 도시한 도면이다. 도 8은 도 7의 TCAM에 대해 하이브리드 파티션을 수행한 것을 도시한 도면이다. 도 9 내지 도 12는 도 7의 TCAM 기능을 수행할 수 있는 비트 포지션 테이블 및 어드레스 포지션 테이블을 도시한 도면이다. 도 13은 본 발명의 일 실시예에 따른 주소 생성 장치의 동작을 설명하기 위한 도면이다.
먼저 도 7과 같은 TCAM이 존재한다고 할 때, 이러한 TCAM은 인풋 워드에 대해 인풋 워드가 존재하는 주소 값을 반환할 수 있다. 예를 들어, 도 7에 도시된 TCAM은 '00010010'인 인풋 워드에 대해 해당 주소 값 '1'을 반환할 수 있다.
이제 도 8 내지 도 13을 참조하여 SRAM에 저장된 비트 포지션 테이블들과 어드레스 포지션 테이블들만을 이용함으로써 저비용으로 이와 동일한 기능을 수행할 수 있는 본 발명의 일 실시예에 따른 주소 생성 장치의 동작에 대해 설명하도록 한다.
먼저 도 7의 TCAM은 도 8과 같이 하이브리드 파티셔닝 될 수 있다. 이 경우 m=4이고, n=2, k=4일 수 있다. 즉, 계층(Layer)은 4개이고 각 계층은 4행(4개의 주소)을 포함하며, 각 계층은 계층별 주소 생성 장치를 갖되, 각 계층별 주소 생성 장치는 2개로 수직 파티션 되었으므로, 2개의 비트 포지션 테이블(도 3의 10), 제1 AND 연산부(도 3의 20), 2개의 어드레스 제너레이터(도 3의 30), 2개의 어드레스 포지션 테이블(도 3의 40), 제2 AND 연산부(도 3의 50) 및 제1 인코더(도 3의 60)를 포함할 수 있다. 각 계층별 비트 포지션 테이블과 어드레스 포지션 테이블은 도 9 내지 도 12에 각각 도시되어 있다.
이제 도 13을 참조하면, 앞선 예와 같이 인풋 워드(도 6의 W)로 '00010010'이 제공된다고 할 때, 이는 도 6에 도시된 바와 같이 각각 제1 내지 제4 계층(도 6의 Layer 1 ~ Layer 4)의 계층별 주소 생성 장치에 입력 값으로 제공될 수 있다.
먼저 도 13을 참조하여 제1 계층(Layer 1)의 계층별 주소 생성 장치의 동작을 살펴보면, 인풋 워드 '00010010'이 '0001'과 '0010'의 2개의 서브 인풋 워드로 분할되어 각각 제1 비트 포지션 테이블(BPT1)과 제2 비트 포지션 테이블(BPT2)에 제공된다. 여기서 비트 포지션 인덱스(b)가 2라고 가정하면, '0001'의 상위 2비트인 '00'은 제1 비트 포지션 테이블(BPT1)의 비트 포지션 테이블 어드레스(BPTA)를 의미하고, 하위 2비트인 '01'은 비트 포지션 인덱스(BPI)를 의미할 수 있다. 또한 '0010'의 상위 2비트인 '00'은 제2 비트 포지션 테이블(BPT2)의 비트 포지션 테이 블 어드레스(BPTA)를 의미하고, 하위 2비트인 '10'은 비트 포지션 인덱스(BPI)를 의미할 수 있다.
이제 도 9 및 도 13을 참조하면 BPT1의 BPTA가 00이고 BPI가 01인 비트 포지션 데이터의 비트 값은 1임을 알 수 있다. 따라서 '0001'이 제1 계층(layer 1)의 제1 수직 파티션에 존재함을 알 수 있다. 또한 BPT2의 BPTA가 00이고 BPI가 10인 비트 포지션 데이터의 비트 값도 1임을 알 수 있다. 따라서 '0001'이 제1 계층(layer 1)의 제2 수직 파티션에 존재함을 알 수 있다. 따라서, BPT1과 BPT2로부터 출력된 비트 포지션 데이터의 비트 값은 모두 1이므로 제1 AND 연산부(도 3의 20)는 인에이블 출력신호(도 3의 Enable Signal)를 제1 및 제2 어드레스 제너레이터(도 3의 30)에 제공하게 된다.
이제 제1 어드레스 제너레이터는 도 13에 도시된 바와 같이 BPT1으로부터 비트 포지션 데이터(2b)로 '1100'을 제공받고, 최종 인덱스 데이터로 '-1'을 제공받으므로 어드레스 데이터(APTA)로 -1+2=1을 출력할 수 있다. 또한, 제2 어드레스 제너레이터는 도 13에 도시된 바와 같이 BPT2로부터 비트 포지션 데이터(2b)로 '0010'을 제공받고, 최종 인덱스 데이터로 '-1'을 제공받으므로 어드레스 데이터(APTA)로 -1+1=0을 출력할 수 있다.
다음 제1 어드레스 포지션 테이블(APT1)은 어드레스 데이터로 1을 제공받으므로 해당 주소에 저장된 4비트(k=4) 데이터인 '0100'을 어드레스 포지션 데이터(도 3의 K-bit row)로 출력할 수 있다. 또한 제2 어드레스 포지션 테이블(APT2)은 어드레스 데이터로 0을 제공받으므로 해당 주소에 저장된 4비트 데이터인 '0100'을 제2 어드레스 포지션 데이터(도 3의 K-bit row)로 출력할 수 있다.
이제 제2 AND 연산부(도 3의 50)는 이러한 2개의 어드레스 포지션 데이터에 대해 AND 연산을 수행하고 그 결과는 '0100'이므로 '1'을 제1 매칭 주소(도 3의 Matching Location)로 출력할 수 있다. 제1 인코더는 이 값을 제공 받아 그 중에 가장 작은 '1'을 제2 매칭 주소로 출력할 수 있다.
본 예에서는 제1 매칭 주소가 하나이나 만약 제2 AND 연산부(도 3의 50)의 AND 연산결과가 '1110'이라면 제1 매칭 주소는 '0', '1' 및 '2'일 수 있다. 그리고 제1 인코더는 이 값들을 제공 받아 그 중에서 가장 작은 '0'을 제2 매칭 주소로 출력할 수 있다.
이와 같은 과정을 도 10 내지 도 12에 도시된 제2 계층(Layer 2) 내지 제4 계층(Layer 4)에 대해서도 수행하면 제2 내지 제4 계층에는 인풋 워드 '00010010'이 존재하지 않아 제2 매칭 주소가 출력되지 않음을 알 수 있다.
마지막으로 제2 인코더(도 6의 110)는 제2 내지 제4 계층에서 출력된 제2 매칭 주소가 없으므로, 제2 매칭 주소 중 가장 작은 제1 계층에서 출력된 제2 매칭 주소인 '1'을 제3 매칭 주소로 출력할 수 있다. 이 값은 도 7에 도시된 TCAM에 '00010010'인 인풋 워드를 제공하여 반환 받은 주소 값 '1'과 동일함을 알 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수 적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1은 주소 생성 장치의 개념도이다.
도 2는 하이브리드 파티션을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 계층별 주소 생성 장치를 설명하기 위한 구성도이다.
도 4는 비트 포지션 테이블을 설명하기 위한 도면이다.
도 5는 어드레스 포지션 테이블을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 주소 생성 장치를 설명하기 위한 구성도이다.
도 7은 TCAM의 일 예를 도시한 도면이다.
도 8은 도 7의 TCAM에 대해 하이브리드 파티션을 수행한 것을 도시한 도면이다.
도 9 내지 도 12는 도 7의 TCAM 기능을 수행할 수 있는 비트 포지션 테이블 및 어드레스 포지션 테이블을 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 주소 생성 장치의 동작을 설명하기 위한 도면이다.
(도면의 주요부분에 대한 부호의 설명)
10: 비트 포지션 테이블 20: 제1 AND 연산부
30: 어드레스 제너레이터 40: 어드레스 포지션 테이블
50: 제2 AND 연산부(50) 60: 제1 인코더
100: 계층별 주소 생성 장치 110: 제2 인코더
200: 주소 생성 장치

Claims (10)

  1. w비트로 구성된 n개의 서브 인풋 워드를 각각 제공받아 상기 각 서브 워드의 (w-b)비트가 지시하는 주소의 비트 포지션 데이터, 최종 인덱스 데이터 및 상기 비트 포지션 데이터 중 상기 서브 워드의 b비트가 지시하는 비트 값을 출력하는 n개의 비트 포지션 테이블;
    상기 n 개의 비트 값을 제공받아 AND 연산을 수행하여 n개의 인에이블 신호를 출력하는 제1 AND 연산부;
    상기 비트 포지션 데이터, 상기 최종 인덱스 데이터 및 상기 인에이블 신호를 각각 제공받아 에드레스 데이터를 출력하는 n개의 어드레스 제너레이터;
    상기 어드레스 데이터를 각각 제공받아 상기 어드레스 데이터가 지시하는 주소의 어드레스 포지션 데이터를 출력하는 n개의 어드레스 포지션 테이블; 및
    상기 n개의 어드레스 포지션 데이터를 제공받아 AND 연산을 수행하여 제1 매칭 주소를 출력하는 제2 AND 연산부를 포함하는 계층별 주소 생성 장치.
  2. 제 1항에 있어서,
    상기 비트 포지션 테이블과 상기 어드레스 포지션 테이블은 메모리에 저장된 계층별 주소 생성 장치.
  3. 제 2항에 있어서,
    상기 메모리는 SRAM을 포함하는 계층별 주소 생성 장치.
  4. 제 1항에 있어서,
    상기 비트 포지션 테이블은 (w-b)비트로 구성된 2(w-b)개의 주소를 포함하고,
    상기 각 주소는 2b비트로 구성된 비트 포지션 데이터와 (w+1)비트로 구성된 최종 인덱스 데이터를 포함하는 계층별 주소 생성 장치.
  5. 제 1항에 있어서,
    상기 비트 포지션 데이터의 각 비트가 가질 수 있는 비트 값은 0 또는 1 중 어느 하나이고,
    상기 어드레스 제너레이터는 상기 비트 포지션 데이터 중 비트 값이 1인 비트의 개수와 상기 최종 인덱스 데이터를 더하여 상기 어드레스 데이터를 출력하는 계층별 주소 생성 장치.
  6. 제 1항에 있어서,
    상기 에드레스 포지션 테이블은 w비트로 구성된 2w개의 주소를 포함하고,
    상기 각 주소는 k비트로 구성된 어드레스 포지션 데이터를 포함하는 계층별 주소 생성 장치.
  7. 제 1항에 있어서,
    상기 제1 매칭 주소를 제공받아 제2 매칭 주소를 출력하는 제1 인코더를 더 포함하는 계층별 주소 생성 장치.
  8. 제 1항에 있어서,
    상기 제1 인코더는 상기 제1 매칭 주소 중 가장 작은 상기 제1 매칭 주소를 상기 제2 매칭 주소로 출력하는 계층별 주소 생성 장치.
  9. m개의 상기 제1 항 내지 제8 항 중 어느 한 항의 계층별 주소 생성 장치; 및
    상기 m개의 계층별 주소 생성 장치로부터 m개의 상기 제1 매칭 주소 또는 제2 매칭 주소를 제공받아 제3 매칭 주소를 출력하는 제2 인코더를 포함하는 주소 생성 장치.
  10. 제 9항에 있어서,
    상기 제2 인코더는 상기 m개의 제1 매칭 주소 또는 제2 매칭 주소 중 가장 작은 상기 제1 매칭 주소 또는 제2 매칭 주소를 상기 제3 매칭 주소로 출력하는 주소 생성 장치.
KR1020090121318A 2009-12-08 2009-12-08 Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치 KR101074495B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090121318A KR101074495B1 (ko) 2009-12-08 2009-12-08 Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치
PCT/KR2010/008595 WO2011071273A2 (en) 2009-12-08 2010-12-02 Sram based address generator for each layer and address generator including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090121318A KR101074495B1 (ko) 2009-12-08 2009-12-08 Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치

Publications (2)

Publication Number Publication Date
KR20110064633A true KR20110064633A (ko) 2011-06-15
KR101074495B1 KR101074495B1 (ko) 2011-10-17

Family

ID=44146023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090121318A KR101074495B1 (ko) 2009-12-08 2009-12-08 Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치

Country Status (2)

Country Link
KR (1) KR101074495B1 (ko)
WO (1) WO2011071273A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052125A1 (ko) * 2015-09-23 2017-03-30 한양대학교 에리카산학협력단 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템
KR20180039451A (ko) * 2016-10-10 2018-04-18 조선대학교산학협력단 Sram 기반의 tcam 데이터 맵핑 방법 및 tcam 주소 생성 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11120874B2 (en) 2019-11-01 2021-09-14 City University Of Hong Kong Electronic memory device and a method of manipulating the electronic memory device
US11574680B2 (en) 2020-06-23 2023-02-07 City University Of Hong Kong Bank-selective power efficient content-addressable memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841874A (en) * 1996-08-13 1998-11-24 Motorola, Inc. Ternary CAM memory architecture and methodology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052125A1 (ko) * 2015-09-23 2017-03-30 한양대학교 에리카산학협력단 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템
KR20180039451A (ko) * 2016-10-10 2018-04-18 조선대학교산학협력단 Sram 기반의 tcam 데이터 맵핑 방법 및 tcam 주소 생성 장치

Also Published As

Publication number Publication date
WO2011071273A3 (en) 2011-11-10
KR101074495B1 (ko) 2011-10-17
WO2011071273A2 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
Prest Purity, spectra and localisation
US10083195B2 (en) System and method for composing a multidimensional index key in data blocks
KR101074495B1 (ko) Sram 기반의 계층별 주소 생성 장치 및 그를 포함하는 주소 생성 장치
CN107862026B (zh) 数据存储方法及装置、数据查询方法及装置、电子设备
GB1423397A (en) Multi-dimensional access solid state memory
JPWO2014141566A1 (ja) 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法
CN1613073A (zh) 改进型多路基数树
US10771386B2 (en) IP routing search
CN103001878A (zh) Mac地址哈希冲突的确定方法及装置
KR20120081090A (ko) 최장 프리픽스 매치의 확장성을 개선하기 위한 방법 및 장치
CN108255912A (zh) 一种表项数据存储、查询方法及其装置
US6745280B2 (en) Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same
US11899985B1 (en) Virtual modules in TCAM
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
Dasari et al. pbitMCE: A bit-based approach for maximal clique enumeration on multicore processors
CN116319555B (zh) 一种面向虚拟专用网络的路由转发方法
CN104679854A (zh) 路由表存储与查找方法
Kuo et al. A memory-efficient TCAM coprocessor for IPv4/IPv6 routing table update
JPH11102589A (ja) 連想メモリモジュール
KR20200071896A (ko) 내용기반 검색 및 동시 업데이트 가능한 fpga 기반 tcam 구조
US11120874B2 (en) Electronic memory device and a method of manipulating the electronic memory device
Alexeev Minimal DFA for testing divisibility
KR101882349B1 (ko) Sram 기반의 tcam 데이터 맵핑 방법 및 tcam 주소 생성 장치
CN103399920A (zh) 键值搜索方法、键值搜索装置及芯片
Onizawa et al. Low-power area-efficient large-scale IP lookup engine based on binary-weighted clustered networks

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: 20141002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160927

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170901

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee