KR100603699B1 - 네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색메모리 - Google Patents

네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색메모리 Download PDF

Info

Publication number
KR100603699B1
KR100603699B1 KR1020047001554A KR20047001554A KR100603699B1 KR 100603699 B1 KR100603699 B1 KR 100603699B1 KR 1020047001554 A KR1020047001554 A KR 1020047001554A KR 20047001554 A KR20047001554 A KR 20047001554A KR 100603699 B1 KR100603699 B1 KR 100603699B1
Authority
KR
South Korea
Prior art keywords
cam
leaf
tree
search
entry
Prior art date
Application number
KR1020047001554A
Other languages
English (en)
Other versions
KR20040058168A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040058168A publication Critical patent/KR20040058168A/ko
Application granted granted Critical
Publication of KR100603699B1 publication Critical patent/KR100603699B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 구조 및 데이터 구조를 검색하기 위한 시스템 및 방법이 개시된다. 시스템은 직접 테이블(DT), 패트리샤 트리, 포인터 및 콘텐트 어드레스 메모리(CAM)와 같은 고속 저장 시스템을 갖는 데이터 구조를 포함한다. DT는 복수개의 엔트리를 구비하며, 각각의 엔트리는 리프에 연결된 복수의 노드들을 구비한 패트리샤 트리에 연결된다. 리프들에서 정보를 획득하기 위해 횡단될 수 있는 노드의 개수는 임계치라 지칭되며, 이는 선정된 값으로 한정된다. 임계치에 도달하면, 포인터는 CAM의 어드레스를 가리키며 리프의 어드레스가 CAM 내에 저장된다. 개시된 구조 및 방법을 이용함으로써, 트리 검색에 관련된 지연이 상당히 감소된다.
트리 검색, 데이터 구조, CAM

Description

네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색 메모리{Hybrid search memory for network processor and computer systems}
본 발명은 컴퓨터 데이터베이스 구조에 관한 것으로, 더 구체적으로는 네트워크 프로세서 데이터베이스 구조에 관한 것이다.
정보를 배포하기 위해 컴퓨터 네트워크를 사용하는 것은 종래 기술에 공지된 것이다. 전형적인 컴퓨터 네트워크는 통신 기반구조에 의해 상호연결되는 다수의 단말들을 포함한다. 기반구조는 스위치, 라우터 및 네트워크 프로세서 및 인터넷 및 인트라넷이라 칭하는 사설 네트워크와 같은 전송 설비를 포함한다. 라우팅 및 기타 판단은 통상적으로 패킷의 정보에 근거하여 스위치에 의해 이루어진다.
판단을 지원하기 위해, 각각의 네트워크 프로세서 스위치 또는 기타 장치들에 데이터베이스 및 검색 방법이 제공된다. 패킷이 수신되면, 스위치 및/또는 네트워크 프로세서 제어기는 패킷을 데이터베이스에 상관시키고 미리 저장된 정보에 근거하여 패킷을 처리한다. 데이터베이스 검색 방법의 예는 미국특허공보 제5,414,704호에 기재되어 있다.
판단이 이루어지는 속도는 네트워크의 효율성에 매우 중요하다. 네트워크 효율성을 측정하는 기준은 매체 속도로 정보를 처리하는 (즉, 판단을 내리는) 능력 이다.
이하에 기재하는 바와 같이, 본 발명은 제어기가 패킷을 데이터베이스에 상관시키는 속도를 개선한다.
5,414,704호는 프로그래머블 해시 알고리즘, 이진 검색 알고리즘, 및 작은 컨텐트 어드레서블 메모리(CAM)의 조합을 이용하여 데이터베이스를 검색하는 방법을 개시한다. 이것은 보통의(average) 2개의 판독과 최악의 경우의 4개의 판독을 필요로 한다.
본 발명의 제1 특징에 따르면, 검색 방법은, 적어도 하나의 엔트리와 상기 하나의 엔트리에 연동되는(operatively coupled) 트리 구조를 갖는 직접 테이블(Direct Table)을 포함하는 데이터 구조에 대한 인덱스로서 검색키의 N개의 비트(N은 정수임)를 이용하는 단계와, 상기 트리 구조의 제1 선정된 특성에 근거하여 임계치를 설정하는 단계와, 상기 임계치에 도달할 때까지 상기 트리 구조를 횡단하기(traverse) 위해 상기 검색키의 선택 비트를 이용하는 단계와, 상기 검색키에 관하여 취해질 동작을 획득하기 위해 콘텐트 어드레스 메모리(Contents Address Memory:CAM)의 적어도 하나의 엔트리로부터 정보를 판독하는 단계를 포함한다.
바람직하게, 상기 방법은 상기 콘텐트 어드레스 메모리내에 상기 검색키의 선정된 특성 및 상기 트리 구조의 제2 선정된 특성에 근거하여 적어도 하나의 엔트리를 저장하는 단계를 또한 포함한다.
바람직하게, 상기 트리 구조는 복수개의 노드와 선택된 노드들에 연동된 리프들을 포함한다. 바람직하게, 트리 구조는 선택된 노드에 위치한 검색 정보를 수반하는 패턴검색제어블럭(Pattern Search Control Block:PSCB)을 더 포함한다.
예를 들어, N개의 비트들은 목적지 MAC 어드레스의 처음 16개 비트를 포함할 수 있고, 또한 선택 비트는 상기 목적지 MAD 어드레스의 나머지 32비트를 포함할 수 있다.
선택적으로, 검색키는 데이터 패킷의 일부분을 포함한다.
선택적으로, 판독 단계는 CAM에 대한 인덱스로서 N개의 비트를 이용하는 단계를 더 포함한다.
본 발명의 제2 측면에 따르면, 본 검색 장치는 복수의 프로토콜 프로세서를 포함하는 내장형 프로세서 복합체(embedded processor complex)와, 상기 프로세서 복합체에 연동된 제어 포인트 프로세서와, 각각의 프로토콜 프로세서에 액세스될 수 있고 고속의 패턴 검색, 데이터 조작 및 프레임 파싱(parsing)을 제공하는 복수개의 하드웨어 가속기 보조 프로세서와, 상기 프로세서 복합체에 연동되어, 함께 작동하도록 체인화된(operatively chained) 노드들과 리프들을 갖는 트리 구조와 직접 테이블을 포함하는 데이터 구조를 저장하는 적어도 하나의 메모리 장치와, 상기 프로세서 복합체에 연동되고 트리 검색 루틴중에 액세스될 노드의 최대 개수를 나타내는 값을 저장하는 메모리 위치와, 상기 프로세서 복합체에 연동되고 패킷에 대하여 취해질 동작에 대한 정보를 저장하는 리프가 저장되는 위치를 식별하는 포인터를 저장하는 콘텐트 어드레스 메모리(CAM)를 포함하고, 적어도 하나의 보조프로세서는, 직접 테이블을 포함하는 데이터 구조에 대한 인덱스로서 검색키의 N(N은 정수임)개 비트를 이용하는 단계와, 액세스될 노드의 최대 개수에 도달할 때까지,상기 검색키의 선택 비트를 이용하여 상기 트리 구조를 횡단하는 단계와, 상기 콘텐트 어드레스 메모리내에 상기 검색키의 선택 비트와 패킷에 대하여 취해질 동작에 대한 정보를 저장하는 리프가 저장되는 위치를 식별하는 포인터를 포함하는 적어도 하나의 엔트리를 저장하는 단계와, 상기 검색키에 대하여 취해질 동작을 획득하기 위해 상기 콘텐트 어드레스 메모리의 적어도 하나의 엔트리로부터 정보를 판독하는 단계와, 엔트리가 소정의 기간동안 사용되지 않은 때에 상기 콘텐트 어드레스 메모리로부터 상기 엔트리를 삭제하는 단계를 포함하는 방법을 수행하도록 작동된다.
선택적으로, 상기 장치는 상기 프로세서 복합체에 연동되고 트리 검색 루틴중에 액세스될 노드의 최대 개수를 나타내는 값을 저장하는 메모리 위치와, 리프가 저장되는 위치를 식별하는 포인터를 저장하는 CAM을 더 포함한다.
바람직하게, 제어 포인트 프로세서는 데이터 구조를 조정하는 정보를 포함하는 프레임을 생성하고 전달하도록 프로그래밍된다.
본 발명의 제3 특징에 따른 데이터 구조는, 적어도 2개의 엔트리를 포함하는 직접 테이블과, 상기 적어도 2개의 엔트리에 연동되고 복수의 노드와 함께 작동하도록 체인화된 리프들을 갖춘 트리 구조와, 상기 트리 구조의 보행(walk)중에 액세스될 노드의 최대 개수를 나타내는 임계치를 저장하는 저장소를 포함한다.
바람직하게, 상기 데이터 구조는, 리프가 상기 임계치 위의 노드에 연결된 경우에, 상기 리프 정보가 저장되는 CAM을 더 포함한다.
예를 들어, 본 발명의 실시예는 시스템을 제공할 수 있는데, 상기 시스템은 데이터 패킷으로부터 추출된 키를 제공하기 위한 프로세서와, 상기 키의 사용에 응하여 임계치에 도달할 때까지 트리 구조를 보행하기 위한 트리 보행 로직과, 상기 키를 이용하여 CAM을 검색하기 위한 CAM 제어기와, 상기 데이터 패킷에 관하여 취해질 동작을 판단하기 위해 상기 트리 보행 로직 또는 상기 CAM 제어기로부터 이용가능한 제1 결과를 이용하는 제어기를 포함한다.
예를 들어, 본 발명의 또다른 실시예는 검색 방법을 제공할 수 있는데, 상기 방법은, (a) 데이터 패킷으로부터 추출된 키를 제공하는 단계와, (b) 임계치에 도달할 때까지 트리 구조를 검색하기 위해 트리 보행 로직에 의해 상기 키를 이용하는 단계와, (c) CAM을 검색하기 위해 CAM 제어기에 의해 상기 키를 이용하는 단계와, 상기 데이터 패킷에 관하여 취해질 동작을 판단하기 위해 상기 (b) 또는 상기 (c) 단계로부터의 제1 결과를 이용하는 단계를 포함한다.
따라서, 본 발명은 직접 테이블(Direct Table:DT)과, 패트리샤 트리 구조 (Patricia Tree Structure) 및 CAM을 포함하는 메모리 구조를 이용하여 데이터베이스 정보를 저장한다. 이러한 메모리 구조 및 검색 방법은 네트워크 프로세서에서 패킷을 데이터베이스에 상관시키는데 관련된 지연을 감소시켜 준다.
바람직하게, 데이터베이스 구조는 복수의 엔트리로 분할되는 직접 테이블을 포함한다. 각각의 엔트리는 "패턴 검색 제어 블록(PSCB)"라 칭해지는 복수의 노드 와 리프들을 구비한 패트리샤 트리에 연관되어 있다. DT내의 엔트리에 매칭되는 "키"라 불리는 패킷의 일부에 관하여 취해질 동작은 리프에 기재되어 있다. 리트에 도달하기 위해서는 트리가 보행되어야 한다. (자세한 사항은 이하에 기재되어 있다.)
일반적으로, 지연은 DT의 엔트리와 리프를 분리시키는 PSCB의 개수에 의해 정해진다. PSCB의 개수가 클수록 리프내의 정보를 액세스하는 데 걸리는 시간은 길어지고, PSCB의 개수가 적을수록 정보가 더 신속하게 얻어진다. 트리의 리프를 향하여 노드들을 액세스하는 프로세스는 "트리 보행(tree walk)", "트리를 보행하다" 등으로 언급된다.
선택적으로, 테이블 엔트리와 연관된 리프간에 횡단되는 PSCB의 개수를 제한하는 임계치가 설정된다. 그 이후에, CAM은 프레임에 대하여 취해질 동작을 포함하는 리프가 위치하는 주소를 저장한다. 리프를 액세스함으로써, 프레임에 대하여 취해질 동작이 얻어진다.
데이터 구조는 트리의 리프들을 추가하고/하거나 삭제함으로써 유지될 수 있다. 추가 및/또는 삭제는 PSCB의 개수를 증가 및/또는 감소시킬 수 있다. 데이터베이스 조정을 보상하기 위해, CAM 노화(aging) 메커니즘에 의해 CAM에 적절한 삭제 및/또는 추가가 이루어진다.
본 발명의 한가지 장점은 메모리-기반 검색 로직 시스템의 지연이 본 발명의 개시에 따른 보조(booster) CAM 및/또는 임계치의 보조를 이용함으로써 한정(감소)된다는 것이다. 예를 들어, 임계치는 특정 검색중에 횡단될 수 있는 PSCB의 개수 에 대한 제한치를 설정한 것이다.
또다른 장점은 선택된 리프들에 관한 정보를 추적하기 위해서는 CAM이 이용되고 다른 리프들은 일상의 "트리 보행"을 통해 액세스된다면 보다 낮은 비용으로 대용량의 패트리샤 트리 구조가 구현될 수 있다는 것이다. (이하에서 상술하겠다.)
본 발명의 또다른 장점은 본 발명이 대용량의 패트리샤 트리를 데이터 구조로 구현하는데 있어서 비교적 저비용 및 저지연 해법을 제공한다는 것이다. 본 발명 이전에, 대용량 패트리샤 트리 데이터 구조는 패트리샤 트리 데이터 구조를 검색하는데 연관된 장기 지연으로 인하여 특정 설계에서는 받아들여질 수 없었다.
본 발명은 첨부된 도면에 설명된 바와 같이 본 발명의 바람직한 실시예에 관하여, 단지 예시적으로, 기재될 것이다.
도 1은 네트워크 프로세서의 예시적인 블록도이다.
도 2는 내장형 프로세서 복합체(EPC)의 상세사항을 도시한 것이다.
도 3은 프로토콜 프로세서 구조를 도시한다.
도 4는 트리 데이터 구조를 예시한다.
도 4a는 데이터베이스에 패킷을 상관시키는데 사용되는 패킷의 일부분을 그래픽적으로 표현한 것을 도시한다.
도 5는 리프(6)이 CAM 카피 임계치 위로 삽입되는 데이터 구조를 설명한다. 리프는 네트워크 트래픽에 의해 요구되는 경우에만 CAM내에 삽입된다.
도 6은 리프(5)가 CAM 임계치 위에 있는 데이터 구조를 설명하고, 해당 리프 가 네트워크 트래픽에 의해 요구되기 때문에 카피된다.
도 7은 제2 리프(7)가 CAM 카피 임계치 위에서 삽입되는 데이터 구조를 설명한다.
도 8은 일정 기간동안 네트워크 트래픽에 의해 사용되지 않는 리프가 CAM으로부터 삭제되는 트리 데이터 구조를 설명한다.
도 9는 도 8에서 삭제된 리프가 이제 트래픽에 의해 요구되어 검색 시간에 CAM으로 다시 카피되는 트리 데이터 구조를 설명한다.
도 10은 리프가 트리로부터 삭제되고 마찬가지로 CAM으로부터 삭제되는 트리 데이터 구조를 설명한다.
도 11은 삭제된 리프들로 인하여 이전에 CAM 카피 임계치위에 있었던 리프들을 CAM 카피 임계치 아래에 속하게 되는 트리 데이터 구조를 설명한다.
도 12는 일정 기간 트래픽에 의해 사용되지 않는 리프(7)가 CAM으로부터 제거되는 트리 데이터 구조를 설명한다.
도 13은 트래픽에 의해 사용되지 않는 또다른 리프(6)가 CAM으로부터 삭제되는 트리 데이터 구조를 설명한다.
도 14는 보조 CAM의 데이터 구조를 설명한다.
도 15는 본 발명의 개시에 따른 하이브리드 검색 메커니즘의 블록도를 도시한다.
본 명세서에 기재된 본 발명은 어떠한 컴퓨터 데이터베이스 시스템에 도 사 용될 수 있다. 네트워크 프로세서(Network processors:NP)에서도 잘 작동하므로 이러한 환경에서 설명될 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 보조 CAM 시스템(15)을 포함하는 네트워크 프로세서의 구조를 도시한다. 보조 CAM 시스템(15)은 통신매체(15a)를 통해 내장형 프로세서 복합체(EPC, 12)에 연결되어 있다. 단일 칩 또는 복수의 칩으로서 구현될 수 있는 네트워크 프로세서는 Sonet을 통한 IP(POS) 또는 이더넷 패킷을 포함하는 물리층 장치(26)와, PMM-인그레스(ingress) 멀티플렉스(multiplexed) MAC(22) 및 인그레스 데이터 저장소(42)와 인그레스 스위치 인터페이스(18)를 포함하는 인큐 디큐 스케쥴링(Enqueue Dequeue scheduling, 14)을 포함한다. 인그레스측에 네트워크 프로세서는 이그레스 스위치 인터페이스(20)와, 인큐 디큐 스케쥴링(16)과 이그레스 데이터 저장소(44)를 포함한다.
계속해서 도 1을 참조하면, 내장형 프로세서 복합체(EPC, 12)는 통신 매체를 통해 인그레스 EDS 및 이그레스 EDS에 연결된다. 내부 S-RAM(28), D-RAM(32) 및 외부 S-RAM(30)을 포함하는 복수의 상이한 저장 모듈들은 내장형 프로세서 복합체에 연결되어 있다. 내장형 파워 PC 프로세서(34)가 내장형 프로세서 복합체에 연결되어 있다. PCI 인터페이스 버스는 외부로부터 내장형 프로세서(34)로의 액세스를 제공한다. 프로세서(34)는 도 1에 내장되는 것으로 도시되어 있지만, 대안적인 바람직한 실시예에서는 프로세서가 외부에 제공되고 물리층 장치를 통해 네트워크 프로세서에 결합되는 것이다. 이하에서 설명되는 바와 같이, 본 발명의 데이터 구조는 파워 PC(34)에서 생성되어 저장 모듈에 다운로드된다. 간단히, 본 발명에 관련되고 핵심이 되는 네트워크 프로세서의 구성 요소들 및 기능들만 설명하겠다. 네트워크 프로세서는 무엇보다도 Sonet을 통한 IP 및/또는 이더넷 패킷을 지원하는 프로그래머블 스위칭 및 라우팅 시스템이라 할 수 있다. 파워 PC(34)는, 이제부터 제어 포인트(Control Point:CP)라 지칭되는데, 이는 도 1에 도시된 바와 같이 내장되거나, 대안적인 실시예서와 같이 외부에 있으면서 물리층 장치(26) 또는 제어 및 관리 지원을 제공하는 다른 적합한 메커니즘을 통해 프로세서에 연결된다. 내장형 프로세서 복합체는 처리 능력을 제공하는 복수의 병렬 프로토콜 프로세서를 포함한다. 각각의 프로토콜 프로세서는 패턴 검색, 데이터 조작, 내부 데이터 관리, 프레임 파싱 및 필터링 능력을 위한 데이터 프리-페칭(pre-fetching)을 제공하는 보조 프로세서들을 액세스한다.
본 발명은 특히 네트워크 프로세서의 필터링 능력에 관한 것으로서, 이러한 필터링 또는 분류 프로세스에 사용되는 장치들만을 설명하겠다. 이 장치는 보조 프로세서들을 갖춘 내장형 프로세서 복합체와, 외부적으로 또는 내부적으로 제공되는 범용 프로세서인 CP(34)와, 보조 CAM 시스템(15)와, 본 발명에 밀접한 관련이 있는 데이터 패턴이 저장되는 메모리를 포함한다. 이하에서 상세히 설명되겠지만, 보조프로세서는 패킷 부분을 네트워크 프로세서 메모리에 저장된 데이터 구조에 상관시키고, 상기 패킷에 관하여 취해질 동작을 기술하는 정보를 추출한다. 보조 CAM 시스템은 이러한 판단이 메모리로부터 추출되는 속도를 가속화시킨다.
도 2는 내장형 프로세서 복합체의 예시적인 구현을 설명한다. 이는 대략적 으로 2128 MIPS 세부-처리 능력을 제공하는 복수의 프로토콜 프로세서들을 포함한다. 각각의 프로토콜 프로세서(40)는 3단계(stage) 파이프라인(페치, 디코드 및 실행) 범용 레지스터, 전용 레지스터, 8개의 명령어 캐쉬, 전용 산술 논리 로직(ALU) 및 모두 133 MHz로 실행되는 보조 프로세서들을 포함한다. 적어도 2개의 프로토콜 프로세서들이 특수화되는데, 하나는 가이드형 프레임 핸들러(guided frame handler)라 칭하는 것으로서, 제어 프로세서로부터 네트워크 프로세서내의 다른 개체들에 정보를 운반하는 가이드형 프레임을 처리하기 위한 것이며, 또 하나는 일반 트리 핸들러라 칭하는 것으로서, 제어 메모리내에 검색(look-up) 데이터를 구축하고 패킷에 관하여 어떠한 동작이 취해질지를 판단하기 위해 메모리를 검색하기 위한 것이다.
도 3은 프로토콜 프로세서(40)의 예시적인 실시예를 도시한다. 프로토콜 프로세서(40)는 범용 레지스터(GPR)들과 산술 연산 로직(ALU)을 갖춘 CLP(Core Language Processor,72)를 포함한다. 체크섬(checksum) 보조 프로세서(62), 데이터 저장(DS) 보조 프로세서(64), 인큐 보조 프로세서(66), WEB 보조 프로세서(68) 및 트리 검색 엔진(TSE) 보조 프로세서(70)는 독립적인 버스들을 통해 CLP에 결합된다.
체크섬 보조 프로세서(62)는 헤더 체크섬을 계산한다.
데이터 저장(DS) 보조 프로세서(64)는 프레임 버퍼 메모리(42, 44, 인그레스 및 이그레스 방향)와 인터페이스하여 직접 메모리 액세스(DMA) 능력을 제공한다.
인큐 보조 프로세서(66)는 키 프레임 파라미터들을 저장하는 256-비트 작업 레지스터에 대한 엑세스를 제어한다. 이러한 보조 프로세서는 완료 유닛(도 1 및 2의 46)과 인터페이스하여 프레임을 스위치 및 목표 포트 큐에 인큐한다.
WEB 보조 프로세서는 디버거 통계 수집을 위해 내부 레지스터, 카운터 및 메모리에 대한 모든 프로토콜 프로세서 액세스를 제공한다.
트리 검색 엔진(TSE) 보조 프로세서(70)는 프로토콜 프로세서와 병행하여 작동하며, (메모리 판독, 기록 및 판독/기록을 포함하는) 트리 검색 명령어들과, 메모리 범위 검사를 수행한다. 또한, TSE 보조 프로세서는 본 발명의 개시에 따라 패트리샤 트리 구조로 저장된 데이터베이스에서 패킷의 검색을 수행하고 보조 CAM을 액세스한다. 대안적인 실시예에서, CAM에 정보를 카피(copy)하기 위해 및/또는 그로부터 정보를 삭제하기 위해 로직이 사용될 수 있다.
다시 도 1 및 2를 참조하면, 도시된 바와 같이 내장되거나 물리층 장치(26)를 통해 네트워크 프로세서에 부착될 수 있는 제어 포인트 프로세서(34)는 전체 네트워크 프로세서에 대한 관리를 제공한다. 이러한 목적으로, 데이터 구조(이하에서 설명됨)가 범용 프로세서에서 생성되고 메모리에 다운로드된다. 리프를 삭제하거나 추가하는 것과 같은 갱신은 제어 포인트 프로세서와 내장형 프로세서 복합체사이에 제어 정보를 교환하기 위해 이미 설명된 가이드 셀을 사용하는 제어 포인트 프로세서(34)를 통해 실현된다. 내장형 프로세서 복합체중 선택된 프로세서가 그에 연관된 트리 검색 엔진을 이용하여 각각의 저장소 및 보조 CAM 시스템(15)과 통신한다.
도 4 내지 13은 본 발명의 개시에 따른 상이한 데이터 구조를 도시한다. 이 러한 데이터 구조는 청구된 발명을 더 자세히 설명하기 위해 사용된다.
도 4는 프로토콜 프로세서(10)의 메모리에 저장된 데이터 구조의 그래픽 표현을 도시한다. 데이터 구조는 복수개의 엔트리를 구비한 직접 테이블(DT)을 포함하는데, 하나의 엔트리만이 수평선으로 묶여있고, 이는 패턴 검색 제어 블록(Pattern Search Control Block: PSCB)라 불리는 복수개의 노드를 갖는 패트리샤 트리 구조에 연결되어 있다. 각각의 PSCB는 라우팅 판단 정보를 포함하고, 하나 이상의 리프에 연결되어 있으며, 이들중 5개가 도 4에 도시되어 있다. 리프들에 포함된 것은 트리 구조에 저장된 정보에 대하여 상관된 패킷에 관련하여 이루어질 판단 또는 동작이다. 전술한 바와 같이, 상관은 피코 명령어 또는 피코 코드를 실행하는 피코프로세서(보조 프로세서)에 의해 수행될 것이며, 이는 또한 다른 수단에 의해서도 수행될 수 있다.
계속해서 도 4를 참조하면, CAM 카피 임계치가 각각의 트리 구조에 연관되어 있다. CAM 카피 임계치(수직선으로 도시됨)는 시스템에 저장된 수이며 리프에 도달하기 위해 횡단될 수 있는 PSCB의 최대 개수를 나타낸다. 횡단 노드의 개수가 CAM 카피 임계치를 초과하면, 상관 메커니즘(보조프로세서 또는 하드웨어)은 CAM을 액세스하여 리프에 관련된 정보를 얻는다. 통상적으로, 리프의 어드레스가 리프의 정보 대신에 CAM에 저장된다. 리프가 위치한 어드레스만을 저장함으로써, CAM의 공간이 절약된다. CAM은 매우 고속의, 저밀도의 고가 저장 매체이기 때문에 CAM 내의 공간은 특별하다. 도 4 내지 13에서 "CAM 카피 임계치"라 라벨링된 점선은 시스템의 메모리에 저장된 임계치의 그래픽 표현이다. 직접 테이블에 저장된 정보는 데이터 구조에 상관된 패킷의 정보 복제본이다.
도 4a를 잠시 참조하면, 데이터 패턴 또는 구조에 상관되는 패킷의 목적지 어드레스(destination address: DA)가 도시되어 있다. DA 어드레스는 섹션 A 및 B로 분할된다. 섹션 A는 직접 테이블의 인덱스로서 사용되고, 섹션 B는 트리를 보행하는데 사용된다. 상기 명세서에서 사용되는 바와 같이, 트리를 보행한다는 것은 PSCB를 액세스하고 하나의 PSCB에 저장된 정보를 이용하여 다음 PSCB로 진행하는 것을 의미한다. 프로세스는 리프에 도달할 때까지 계속된다. 리프는 패킷에 관련하여 취해질 동작을 포함하는 정보를 저장한다. 바람직한 실시예에서, 목적지 어드레스는 48 비트 MAC 어드레스이다. A라 라벨링된 처음 16 비트는 직접 테이블을 액세스하는데 사용되고, 나머지 32 비트는 해당 엔트리에 연관된 트리를 보행하는데 사용된다. 좀더 구체적으로, MAC 목적지 어드레스의 처음 16 비트가 DT의 엔트리와 비교된다. 처음 16 비트와 엔트리간에 매치가 이루어지면, 다른 32비트의 선택된 비트들이 연관된 리프에 도달할 때까지 트리를 보행하는데 사용된다. DT 및 DT 내에 엔트리를 셋업하는데 해싱(hashing) 절차가 이용될 수 있음을 주목한다. 해싱 절차는 본 기술분야에 공지된 기술이므로 자세히 설명하지 않겠다.
패킷 내의 다른 엔트리들도 직접 테이블을 액세스하고 엔트리에 연관된 트리를 보행하는데 사용될 수도 있음을 이해하여야 할 것이다. 예시적으로만, 데이터 테이블내의 엔트리들이 프레임의 섹션 A와 상관될 것이다. 피코 코드를 실행시키는 보조 프로세서는 데이터 테이블과 특정 패킷의 16 비트를 상관시킨다. 데이터 테이블내의 엔트리가 테이블내의 엔트리와 매치된다면, 나머지 32 비트들은 다음과 같이 트리를 보행하는데 사용된다. 나머지 32 비트의 상위 비트들이 PCB1에 대하여 매치된다. 비트가 논리적 0이라면, PSCB의 0에 저장된 동작이 수행된다. 비트가 논리적 1이라면, PSCB의 1에 저장된 동작이 수행된다. 기본적으로, PSCB의 정보는 "X"라 라벨링된 경로를 따라 PSCB 3으로 보행할지 또는 "Y"라 라벨링된 경로를 따라 PSCB 2로 진행할지를 지시한다. PSCB 2는 리프 2 또는 리프 1의 정보를 가리키는 정보를 가질 것이다. "X" 경로가 보행된다면, 다음 노드는 PSCB 3그리고 PSCB 4일 것이다. 이 예에서, 임계치는 3으로 설정되어 있으며 모든 리프들이 임계치 하에 위치하므로, 보조 CAM은 사용되지 않을 것이다.
보조 CAM의 그래픽 표현이 도시된 도 14를 참조한다. CAM은 CAM내에 정보를 기록하고 정보를 낡게 하기(삭제하기) 위한 메커니즘을 포함하는 기성품이다. CAM은 종래 기술에 공지되어 있으므로, 자세한 설명은 여기서 하지 않기로 하겠다. CAM은 여러 엔트리를 갖고 있으며 이들중 하나가 15b로 도시되어 있다. 본 발명의 목적상, CAM은 섹션 15C 및 15D로 분할되어 있다. 섹션 15C에 MAC 데이터 어드레스(도 4a)의 A+B 부분이 입력되고 트리 구조로부터 리프의 위치 어드레스(LA)가 섹션(15D)에 기록된다. 동작면에서, 패킷의 목적지 어드레스의 32-48 비트가 보조 CAM에 저장되고 보조 CAM 시스템(15)의 보조 CAM을 액세스하기 위한 인덱스로서 또한 사용된다. 보조 CAM의 섹션(15D)의 연관 리프 어드레스가 판독되고 리프 어드레스에 저장된 정보를 액세스하는데 이용된다. 잠시 도 4를 참조하면, 보조 CAM의 사용은 도 4의 데이터 구조에는 적용가능하지 않을 것이다. 이는 PSCB가 설정된 임계치 미만임을 나타내는 CAM 카피 임계치의 좌측의 PSCB에 도 4의 리프들이 부착 되어 있기 때문이다. 리프들이 임계치보다 위의 PSCB에 부착되어 있기 때문에 CAM이 사용될 상황을 이제 설명하겠다. 리프가 트리에 부가되면, 몇몇 상황이 발생할 수 있다.
a) 리프가 임계치 위의(즉, CAM 카피 임계치의 우측의) 노드에 삽입된다. 이 상황에서, 삽입은 CAM에 리프의 카피를 유발하게 되는 검색을 필요로 한다. 도 5는 이러한 상황의 예를 도시한다. 도 5에서, 임계치는 3으로 설정되어 있다. 리프 6이 삽입되고 4개의 노드들(즉, PSCB 1, PSCB 3, PSCB 4 및 PSCB 5) 이후에만 도달된다. 삽입 시점에, 리프 6의 어드레스가 CAM에 카피된다. 리프 5가 현재 임계치 위에 있더라도, 어떠한 트래픽도 이 리프를 필요로 하지 않는다면 이는 CAM으로 카피되지 않는다.
b) 또다른 상황은 리프가 임계치 아래에 삽입되고 어떠한 리프도 임계치를 걸치도록 하지 않는 경우이다. 이 경우에는 CAM 콘텐트에 관하여 어떠한 것도 변하지 않는다.
c) 또다른 상황은 리프가 임계치 아래에 삽입되지만 다른 리프 또는 리프들이 임계치를 걸치거나 임계치 밖으로 떨어지도록 만드는 경우이다. 이 경우에, 임계치를 걸치는 리프는 CAM에 바로 카피되지 않을 것이다. 대신에, 그것이 정기적인 검색에 의해 도달되는 시점에만, 즉, 실제로 사용되는때에 카피될 것이다. 따라서, CAM은 현재 네트워크 트래픽에 의해 필요한 "유용한" 리프들만을 저장한다.
d) 도 6은 리프 5 및 6이 이제 검색시에 CAM내에 카피되는 것을 도시한다. 도 5와 관련하여 리프 6은 CAM 내에 카피되었고 리프 5는 트래픽에 의해 요구되지 않 았기 때문에 카피되지 않았다는 것을 상기하여야 할 것이다. 그러나, 그것이 필요하게 되는 순간 CAM 내에 카피될 것이다. 이는 CAM이 다소 비싼 유형의 저장장치이기 때문에 CAM 자원을 절약하려는 기법이기도 하다.
e) 도 7은 3개의 리프들, 즉, 리프 5, 리프 6 및 리프 7이 CAM 내에 카피되는 상황을 보여준다. 리프 7은 (임계치 =3 위의) 5 PSCB 이후에 도달되기 때문에 삽입된다. 그것은 CAM내에 카피된다.
f) 도 8은 리프 6의 어드레스가 CAM으로부터 삭제되는 상황을 도시한다. 삭제는 CAM 노화 메커니즘에 의해 삭제된다. 리프 6은 소정의 주어진 기간동안 어떠한 트래픽에 의해서도 사용되지 않았기 때문에 활성된다.
g) 도 9는 리프 6이 검색 시점에 CAM 내에 재-카피되는 상황을 보여준다. 도 8을 참조하면, 리프 6은 트래픽이 그의 사용을 필요로 하지 않았기 때문에 삭제되었다. 도 9에서, 트래픽은 리프 6을 이제 다시 필요로 한다. 따라서, 그것은 CAM 내에 재-카피되고 이에 따라 마크된다. 이러한 예들은 노화 메커니즘이 리프내의 정보 사용여부에 따라 CAM으로부터 리프 정보를 주기적으로 삭제할 것임을 나타냄을 주목할 필요가 있다.
h) 리프가 트리에 추가될 때 존재하는 상황은 이미 전술하였다. 리프가 트리로부터 삭제될 때 존재하는 상황에 대하여 이제 설명하겠다. 트리로부터 리프를 삭제하는 것은 노화 또는 제어 포인트 동작으로 인하여 유발될 수 있다. 노화 현상은 리프가 일정 기간동안 사용되지 않을 때 발생하고 노화 메커니즘은 저장장치로부터 그것을 삭제한다. 제어 포인트 삭제는 제어 포인트에서의 범용 프로세서가 어떠한 이유로든 리프가 저장장치로부터 삭제되어야 한다고 가리킬 때 발생한다. 노화 또는 제어 포인트에 의한 삭제 어느 경우이든, 리프가 논리적 1로 설정된 카피 비트를 갖는다면, 대응 엔트리는 CAM으로부터 제거된다.
i) 리프가 0으로 설정된 카피 비트를 갖는다면, CAM 콘텐트는 변경되지 않는다. 리프 삭제의 결과로서, 그 리프가 삭제될 때 임계치보다 위에 있었던 다른 리프들이 임계치 아래로 떨어질 수 있다. 이러한 리프들이 이전에 CAM 내에 카피되었다면, 그들은 CAM 노화 메커니즘에 의해 CAM으로부터 삭제될 것이다. 이러한 노화에 대한 타임아웃(time-out)은 일반적으로 트리 노화보다 짧다. 이는 검색시에 좀더 자주 사용되는 리프들에 의한 CAM 엔트리의 효율적인 재사용을 허용해준다. CAM 엔트리가 CAM 노화에 의해 삭제되면, 대응 리프는 그것이 검색에 의해 도달될 때에 CAM 내에 다시 카피될 것이다. 검색만이 임계치위의 기간을 가질 것이다. 다음 것들은 CAM 카피로부터 이익을 받을 것이다.
j) 도 10은 리프 5가 트리로부터 삭제되는 상황을 보여준다. 이러한 삭제는 제어 포인트 프로세서 또는 트리 노화 메커니즘에 의한 명시적인 삭제 동작에 근거할 수 있다. 이러한 상황에서, CAM 카피도 또한 삭제된다. 리프 6 및 리프 7의 CAM 카피는 그들이 임계치 위에 있는 PSCB 6에 부착되어 있기 때문에 유지된다는 것을 주목하여야 할 것이다.
k) 도 11은 리프 4가 명시적인 삭제 동작 또는 트리 노화에 의해 트리로부터 삭제되는 상황을 보여준다. 리프 4에 대한 CAM 카피도 또한 CAM으로부터 삭제된다. 리프 6 및 리프 7이 임계치 아래로 다시 떨어지지만, 그들의 CAM 카피는 이 시점에 서 삭제되지 않음을 주목할 필요가 있다.
l) 도 12는 이미 CAM 내에 기록되었던 리프 7이 이제 CAM 노화 메커니즘에 의해 제거되는 예를 보여준다. 리프 7이 소정의 시간 기간동안 어떠한 트래픽에 의해서도 사용되지 않았기 때문에 제거가 개시될 것이다.
m) 도 13에서 리프 6은 소정의 시간 기간동안 사용되지 않았고, CAM 노화 메커니즘은 CAM으로부터 그것을 삭제한다.
도 15는 본 발명의 가르침에 따른 하이브리드 검색 메커니즘의 블록도를 도시한다. 하이브리드 검색 메커니즘은 CLP(Core Language Processor, 72)와, 트리 검색 엔진(tree search engine: TSE, 70)과, 저장장치(30, S-RAM, DDRAM 등) 및 CAM(15)을 포함한다. 전술한 트리 구조가 저장장치(30)내에 저장된다. 전술한 CAM 정보는 CAM내에 저장된다.
TSE(70)는 트리-보행 로직(151), CAM 제어기(152) 및 메모리 중재기(153)을 포함한다. TSE는 CLP(72), S-RAM, D-RAM 또는 기타 적합한 메모리로 될 수 있는 저장장치(30) 및 CAM(15)에 연결된다. 저장장치는 전술한 검색 데이터 구조(DT, PSCB, 리프들)를 저장한다. CAM은 전술한 바와 같이 키의 동적인 카피본을 저장한다.
CLP(72)는 프레임으로부터 생성되어 TSE에서 검색될 키를 부여한다. 메모리 중재기(153)는 트리 보행 로직(151) 및 CAM 제어기(152) 양쪽에 키를 포워드시킨다.
트리 보행 로직은 DT에서의 제1 검색 단계를 독립적으로 수행하고 계속해서 리프에 도달할 때까지 PSCB의 체인을 따라가며 검색 동작을 진행한다. PSCB 노드들의 체인을 따라갈 때, PSCB 카운터(154)가 횡단되는 노드의 개수를 센다.
동시에, CAM 제어기는 상기 키의 고속 검색을 수행하는 CAM에 키를 포워드시킨다.
동시에 시작된 2가지 동작은 임의의 순서로, 트리 보행 로직 또는 CAM이 먼저 끝날 수 있다.
CAM이 먼저 끝나면, 그것은 트리-보행 로직에서 여전히 동작하고 있는 동작을 중지시키는 메모리 중재기(arbiter)에 결과(리프 어드레스)를 돌려준다. 이는 키가 CAM내에서 발견되고 트리-보행 로직에서 검색을 지속하도록 하는 값이 없기 때문이다. 메모리 중재기는 리프의 실제 콘텐트를 인출하기 위해 트리-보행 로직을 통해 저장 장치에 판독 요청을 송출한다.
트리-보행 로직이 먼저 끝나면, 그것은 메모리 중재기에 결과(리프 어드레스 및 리프 콘텐트, PSCB 계수)를 돌려준다. 메모리 중재기는 CAM 제어기에 CAM 내의 검색 프로세스를 중지하도록 요청한다. 이는 CAM의 노화 메커니즘이 저장장치에서 매우 신속하게(CAM을 통하는 것보다 더 빠르게) 실제로 검색된 키에 대응하는 CAM 엔트리를 삭제하도록 허용하여, 저장장치에서 더 오랜 검색을 필요로 할 다른 키들에게 좀더 공간을 남겨준다.
PSCB 계수는 트리-보행 로직에 의해 제공된 검색 결과에 포함된다. 선-구성된 임계치에 대하여 그 값을 비교하는 메모리 중재기에 의해 사용되어, 임계치에 초과되는 경우에, 메모리 중재기는 CAM 제어기에 방금 검색된 키에 대응하는 CAM 엔트리를 추가하도록 요청한다.
CAM내에 이미 저장되어 있지만 메모리에서보다 더 느리게 검색되는 키를 CAM내에 추가하는 것에 대한 요청을 피하기 위하여, 저장장치내의 검색 동작이 CAM 내의 검색보다 오래 걸리게 보장할 수 있도록 임계치가 형성된다.

Claims (10)

  1. 검색 방법에 있어서,
    적어도 하나의 엔트리와 상기 하나의 엔트리에 연동되는(operatively coupled) 복수개의 노드를 포함하는 트리 구조를 갖는 직접 테이블을 포함하는 데이터구조에 대한 인덱스로서 검색키의 N(N은 정수임)개의 비트를 이용하는 단계와,
    상기 트리 구조를 검색할 때 횡단될(traversed) 노드 수의 카운트인 임계치를 설정하는 단계와,
    상기 검색키로부터 선택 비트들을 이용하여 상기 임계치에 도달할때까지 상기 트리 구조를 횡단하는 단계와,
    상기 임계치에 도달한 것에 응답하여, 상기 검색키에 대하여 취해질 동작을 획득하기 위해 콘텐트 어드레스 메모리(Contents Address Memory)의 적어도 하나의 엔트리로부터 정보를 판독하는 단계와,
    상기 콘텐트 어드레스 메모리로부터 소정의 기간동안 사용되지 않은 엔트리를 삭제하는 단계
    를 포함하는 검색 방법.
  2. 제1항에 있어서, 상기 임계치에 도달한 것에 응답하여, 상기 콘텐트 어드레스 메모리에 상기 검색키의 선택 비트와 상기 키에 대하여 취해질 동작이 파악될 수 있는 정보를 포함하는 적어도 하나의 엔트리를 저장하는 단계를 더 포함하는 검색 방법.
  3. 제1항 또는 제2항에 있어서, N개의 비트는 목적지 MAC 어드레스의 처음 16 비트들을 포함하는 검색 방법.
  4. 제1항 또는 제2항에 있어서, 리프는 선택된 노드들에 연동되고,
    리프가 상기 소정의 기간보다 오래된 기간동안 사용되지 않았다면 상기 리프를 상기 트리로부터 삭제하는 단계를 더 포함하는 검색 방법.
  5. 제1항에 있어서, 상기 정보는 상기 동작이 저장되는 트리 구조의 리프의 어드레스를 포함하는 검색 방법.
  6. 복수의 프로토콜 프로세서를 포함하는 내장형 프로세서 복합체(embedded processor complex)와,
    상기 프로세서 복합체에 연동된 제어 포인트 프로세서와,
    각각의 프로토콜 프로세서에 액세스될 수 있고 고속의 패턴 검색, 데이터 조작 및 프레임 파싱(parsing)을 제공하는 복수개의 하드웨어 가속기 보조 프로세서와,
    상기 프로세서 복합체에 연동되어, 함께 작동하도록 체인화된(operatively chained) 노드들과 리프들을 갖는 트리 구조와 직접 테이블을 포함하는 데이터 구조를 저장하는 적어도 하나의 메모리 장치와,
    상기 프로세서 복합체에 연동되고 트리 검색 루틴중에 액세스될 노드의 최대 개수를 나타내는 값을 저장하는 메모리 위치와,
    상기 프로세서 복합체에 연동되고 패킷에 대하여 취해질 동작에 대한 정보를 저장하는 리프가 저장되는 위치를 식별하는 포인터를 저장하는 콘텐트 어드레스 메모리(CAM)를 포함하고,
    적어도 하나의 보조프로세서는,
    직접 테이블을 포함하는 데이터 구조에 대한 인덱스로서 검색키의 N(N은 정수임)개 비트를 이용하는 단계와,
    액세스될 노드의 최대 개수에 도달할 때까지,상기 검색키의 선택 비트를 이용하여 상기 트리 구조를 횡단하는 단계와,
    상기 콘텐트 어드레스 메모리내에 상기 검색키의 선택 비트와 패킷에 대하여 취해질 동작에 대한 정보를 저장하는 리프가 저장되는 위치를 식별하는 포인터를 포함하는 적어도 하나의 엔트리를 저장하는 단계와,
    상기 검색키에 대하여 취해질 동작을 획득하기 위해 상기 콘텐트 어드레스 메모리의 적어도 하나의 엔트리로부터 정보를 판독하는 단계와,
    엔트리가 소정의 기간동안 사용되지 않은 때에 상기 콘텐트 어드레스 메모리로부터 상기 엔트리를 삭제하는 단계를 포함하는 방법을 수행하도록 작동되는
    검색 장치.
  7. 제6항에 있어서,
    상기 CAM은 상기 포인터와 쌍을 이루는 패킷 내의 목표 MAC 어드레스의 선택 부분을 더 포함하는 검색 장치.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020047001554A 2001-12-11 2002-12-09 네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색메모리 KR100603699B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/015,165 US8195705B2 (en) 2001-12-11 2001-12-11 Hybrid search memory for network processor and computer systems
US10/015,165 2001-12-11
PCT/GB2002/005562 WO2003054739A2 (en) 2001-12-11 2002-12-09 Hybrid search memory for network processor and computer systems

Publications (2)

Publication Number Publication Date
KR20040058168A KR20040058168A (ko) 2004-07-03
KR100603699B1 true KR100603699B1 (ko) 2006-07-20

Family

ID=21769867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047001554A KR100603699B1 (ko) 2001-12-11 2002-12-09 네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색메모리

Country Status (7)

Country Link
US (1) US8195705B2 (ko)
JP (1) JP3935880B2 (ko)
KR (1) KR100603699B1 (ko)
CN (1) CN1602485A (ko)
AU (1) AU2002347376A1 (ko)
BR (1) BR0214890A (ko)
WO (1) WO2003054739A2 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382736B2 (en) 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7002980B1 (en) 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7082493B1 (en) * 2003-10-31 2006-07-25 Integrated Device Technology, Inc. CAM-based search engines and packet coprocessors having results status signaling for completed contexts
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US7707217B2 (en) * 2005-01-24 2010-04-27 3Com Corporation Trie search engines and ternary CAM used as pre-classifier
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
CN100371936C (zh) * 2006-04-03 2008-02-27 无锡永中科技有限公司 用于树型结构文件的数据查找方法
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
KR100786268B1 (ko) * 2006-10-31 2007-12-18 에스케이 텔레콤주식회사 이동 단말의 sms를 활용한 결제 서비스 제공 방법 및시스템
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
CN101231638B (zh) * 2007-01-24 2010-07-14 阿里巴巴集团控股有限公司 一种实现类目搜索的方法、系统及装置
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US7814267B1 (en) * 2008-02-04 2010-10-12 Netlogic Microsystems, Inc. Processor with compare operations based on any of multiple compare data segments
CN101350788B (zh) * 2008-08-25 2011-10-26 中兴通讯股份有限公司 一种网络处理器内外混合查表方法
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
CN102436453B (zh) * 2010-09-29 2015-03-11 金蝶软件(中国)有限公司 一种父子维的处理方法及装置
US9753980B1 (en) * 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
CN104572648B (zh) * 2013-10-11 2018-01-16 中国石油化工股份有限公司 一种基于高性能计算的存储统计系统及方法
US10332008B2 (en) 2014-03-17 2019-06-25 Microsoft Technology Licensing, Llc Parallel decision tree processor architecture
US20150262062A1 (en) * 2014-03-17 2015-09-17 Microsoft Corporation Decision tree threshold coding
KR200488004Y1 (ko) 2014-07-28 2018-12-03 오종만 피자 고정구에 착탈되는 캐릭터
CN105701065A (zh) * 2016-01-15 2016-06-22 浪潮电子信息产业股份有限公司 一种协议表可变更协议处理器的实现方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136580A (en) * 1990-05-16 1992-08-04 Microcom Systems, Inc. Apparatus and method for learning and filtering destination and source addresses in a local area network system
DE69223553T2 (de) 1991-06-26 1998-06-10 Digital Equipment Corp Tabelle mit gemischter Adressierung und Cam-Adresserkennung in einem Netzwerk
DE69324204T2 (de) * 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
JP3545858B2 (ja) 1995-12-01 2004-07-21 株式会社東芝 ネットワーク間接続装置及び情報検索装置
JP3520709B2 (ja) 1997-03-13 2004-04-19 三菱電機株式会社 ネットワークアドレス検索方式
US6553002B1 (en) * 1997-08-29 2003-04-22 Ascend Communications, Inc. Apparatus and method for routing data packets through a communications network
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6173384B1 (en) * 1998-02-11 2001-01-09 Nortel Networks Limited Method of searching for a data element in a data structure
JP2000022736A (ja) 1998-07-06 2000-01-21 Nec Eng Ltd ルーティングエントリ検索システム及びその検索方法並びにその制御プログラムを記録した記録媒体
JP2000209216A (ja) 1999-01-12 2000-07-28 Shimada Phys & Chem Ind Co Ltd アドレス管理方法及び装置、記録媒体
JP3216630B2 (ja) 1999-06-09 2001-10-09 日本電気株式会社 通信制御装置
US6766381B1 (en) * 1999-08-27 2004-07-20 International Business Machines Corporation VLSI network processor and methods
US6985431B1 (en) 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US7107265B1 (en) * 2000-04-06 2006-09-12 International Business Machines Corporation Software management tree implementation for a network processor
US6675163B1 (en) 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
JP2001326679A (ja) 2000-05-15 2001-11-22 Fujitsu Ltd 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体
JP2002016638A (ja) * 2000-06-29 2002-01-18 Mitsubishi Electric Corp ルーチング情報検索装置およびルーチング情報検索制御データを記録したコンピュータ読み取り可能な記録媒体
JP2002166387A (ja) 2000-11-28 2002-06-11 Mitsubishi Heavy Ind Ltd ロボット視覚装置
US6691124B2 (en) * 2001-04-04 2004-02-10 Cypress Semiconductor Corp. Compact data structures for pipelined message forwarding lookups
JP3779619B2 (ja) 2002-01-11 2006-05-31 日本電信電話株式会社 パケット転送装置およびネットワークおよびプログラムおよび記録媒体
JP3757882B2 (ja) 2002-03-12 2006-03-22 日本電信電話株式会社 パケットのフィルタリング方法
JP3784054B2 (ja) 2002-06-10 2006-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Macアドレスを並べ替えさせる方法および記録媒体

Also Published As

Publication number Publication date
WO2003054739A3 (en) 2004-02-19
WO2003054739A2 (en) 2003-07-03
JP3935880B2 (ja) 2007-06-27
US20030110180A1 (en) 2003-06-12
AU2002347376A8 (en) 2003-07-09
US8195705B2 (en) 2012-06-05
KR20040058168A (ko) 2004-07-03
AU2002347376A1 (en) 2003-07-09
BR0214890A (pt) 2004-12-14
CN1602485A (zh) 2005-03-30
JP2005513895A (ja) 2005-05-12

Similar Documents

Publication Publication Date Title
KR100603699B1 (ko) 네트워크 프로세서 및 컴퓨터 시스템용 하이브리드 검색메모리
JP2005513895A5 (ko)
US11811660B2 (en) Flow classification apparatus, methods, and systems
KR100477391B1 (ko) 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
US8515965B2 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
US6854117B1 (en) Parallel network processor array
US7099324B2 (en) System and method for processing packets
KR100429142B1 (ko) 네트워크 프로세서용 소프트웨어 관리 트리 구현
US8180803B2 (en) Deterministic finite automata (DFA) graph compression
US7356663B2 (en) Layered memory architecture for deterministic finite automaton based string matching useful in network intrusion detection and prevention systems and apparatuses
US20070168377A1 (en) Method and apparatus for classifying Internet Protocol data packets
US20040100956A1 (en) Packet search device, packet processing search method used for the same, and program for the same
US7792873B2 (en) Data structure supporting random delete and timer function
WO2009070192A1 (en) Method and apparatus for traversing a deterministic finite automata (dfa) graph compression
AU2003214223A1 (en) Longest prefix matching using tree bitmap data structures
CN107431660B (zh) 检索装置、检索方法及记录介质
CN112565090B (zh) 一种高速转发方法及装置
JP2009017439A (ja) パケット転送装置およびパケット転送方法。
WO2011097385A2 (en) Duo-dual tcam architecture for routing tables with incremental update
CN111835599A (zh) 一种基于SketchLearn的混合网络测量方法、装置及介质
US7447668B2 (en) Match network construction
JP2009123050A (ja) 情報検索装置、及び情報検索装置へのエントリ情報の登録方法
CN114640641B (zh) 一种流量感知的OpenFlow流表弹性节能查找方法
JP5324380B2 (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: 20090701

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee