KR100666241B1 - 연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템 - Google Patents

연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템 Download PDF

Info

Publication number
KR100666241B1
KR100666241B1 KR20037013975A KR20037013975A KR100666241B1 KR 100666241 B1 KR100666241 B1 KR 100666241B1 KR 20037013975 A KR20037013975 A KR 20037013975A KR 20037013975 A KR20037013975 A KR 20037013975A KR 100666241 B1 KR100666241 B1 KR 100666241B1
Authority
KR
South Korea
Prior art keywords
data
search
state
associative memory
primary
Prior art date
Application number
KR20037013975A
Other languages
English (en)
Other versions
KR20030092104A (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 KR20030092104A publication Critical patent/KR20030092104A/ko
Application granted granted Critical
Publication of KR100666241B1 publication Critical patent/KR100666241B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

복수 영역을 검색할 수 있는 연상 메모리이다. r개 영역의 검색 데이터(3-1 내지 3-r)는 1차 연상 메모리(20-1 내지 20-r)에 입력된다. i번째의 1차 연상 메모리(20-i)는 1차 검색 허가 신호(10-i)가 유효 상태일 때에 검색을 행하여 1차 일치선(17-1-1 내지 17-m-r)을 출력하고, j어째의 1차 일치선(17-j-1-1 내지 17-j-r)과 2차 일치선(18-j-1-1 내지 18-j-r)과 기억 수단(m-j)의 출력을 어마다 논리 연산 한 상태를 기억 수단(43-j)으로 유지한다. 1차 연상 메모리(20-i)는 어마다 저장하고 있는 정보와 기억 수단(43)이 유지하고 있는 값으로부터 중간 데이터(93-i)를 생성한다. m어의 2차 연상 메모리(21-i)는 2차 검색 허가 신호(11-i)가 유효 상태일 때에 중간 데이터(93-i)를 검색하여 2차 일치선(18-i-1 내지 18-i-m)을 출력한다. 2차 일치선을 어마다 논리 연산한 일치 신호(5-1 내지 5-m)를 외부에 출력한다.
메모리, 연상 메모리, 일치선, 네트워크, 마스크

Description

연상 메모리와 그 검색 방법 및 네트워크 기기 및 네트워크 시스템 {Associative Memory, Method for Searching the Same, Network Device, and Network System}
본 발명은 연상 메모리 및 그 검색 방법 및 네트워크 기기 및 네트워크 시스템에 관한 것이다. 특히 검색 마스크(mask) 기능을 가지는 연상 메모리와 그 검색 방법 및 그를 이용한 네트워크 기기 및 네트워크 시스템에 관한 것이다.
종래의 컴퓨터 네트워크 시스템에 이용되는 네트워크 기기에는 컴퓨터 네트워크 시스템의 안전성을 확보하기 위해서, 다음에 나타나듯이 전송 가부(可否)를 계산하는 기능이 불가결하다.
종래의 컴퓨터 네트워크의 구성의 접속예를 도33에 도시한다. 네트워크에 참가하고 있는 유저 기기(예를 들어 컴퓨터 단말기 등)는 다른 유저 기기와 식별하기 위해서, 그 기기가 네트워크에 참가할 때에 미리 정해진 규칙에 따라 특정의 네트워크 어드레스를 할당 되어진다. 여기에서는 네트워크 어드레스는 다수개 자리(桁)의 수치, 예를 들어 3 자리의 수치(a. b. c)로 표현되는 것으로서 설명한다. 또한, 미리 결정된 규칙은, 예를 들어 네트워크 어드레스의 1번째의 수치로 영국, 독일, 일본 등의 나라를 나타내고, 2번째의 수치로 나라 안의 도시 명을 나타내고, 또한 3번째의 수치로 도시 안의 기업 명을 나타내는 것과 같이 계층 구조를 취하고 있다. 이후, 이 계층을 세그먼트(segment)라고 부르는 것으로 한다. 도33에 있어서는 세그먼트의 계층 구조를 모의적으로 도시한 것이다. 도에 있어서 굵은 선으로 둘러싸인 1개의 직사각형(矩形, 直角形)이 1개의 세그먼트이다. 도33에서는 네트워크 어드레스의 1번째의 수치가 1인 세그먼트1과, 1번째의 수치가 2인 세그먼트2와, 1번째의 수치가 3인 세그먼트3이 최상위의 세그먼트로서 존재하고 있다. 세그먼트1 아래의 계층에 상위 2개의 수치가 1. 2인 네트워크 어드레스를 가지는 세그먼트4와, 상위 2개의 수치가 1. 3인 네트워크 어드레스를 가지는 세그먼트5가 있고, 세그먼트4의 안에 네트워크 어드레스 1. 2. 6을 가지는 유저 기기 PC(401-1)가 접속되어 있다. 세그먼트2의 밑의 계층에 상위 2개의 수치가 2. 3인 네트워크 어드레스를 가지는 세그먼트6이 있고, 세그먼트6의 안에 네트워크 어드레스 2. 3. 4를 가지는 유저 기기 PC(401-2)와 네트워크 어드레스 2 .3. 5를 가지는 유저 기기 PC(401-3)가 접속되어 있다. 또한, 세그먼트3의 밑의 계층에 상위 2개의 수치가 3. 5인 네트워크 어드레스를 가지는 세그먼트7이 있다. 도에 예시되어 있는 어드레스에 있어서, *는 돈케어(don't care, 아무거나)를 의미한다.
이들 각 네트워크 어드레스는 그 각 자리를 8진수로 표현한 전체 9비트의 비트열로 표현되는 것으로 가정한다. 예를 들어, 네트워크 어드레스(1. 2. *)는 비트열(001. 010. 000)로 표현된다. 이후, 이 표현의 비트열을 기억 데이터라고 부른다. 여기서, 네트워크 어드레스 안의 *은 돈케어이기 때문에, 대응하는 기억 데이터 (001. 010. 000)의 비트열의 상위 6비트가 유효이고, 그 이하의 비트는 무효인 것을 나타낼 필요가 있다. 여기서, 마스크 정보라고 불리는 정보를 기억 데이터와 대응시켜 쌍대(對)로 하여 기억시키고 있다. 이후, 이 쌍대를 구조화 데이터라고 부른다. 상기의 예에서는 비트열(111. 111. 000)로 표현된다. 여기서, "1"이 마스크 무효 상태를, "0"이 마스크 유효 상태를 나타내고 있다. 
각 세그먼트는 네트워크에 참가하고 있는 유저 기기 사이의 통신 데이터를 전송하기 위하여 네트워크 기기, 예를 들어 라우터를 가지고 있다. 도33의 접속예에서는 세그먼트1은 네트워크 기기(400-1)를, 세그먼트2는 네트워크 기기(400-2)를, 세그먼트3은 네트워크 기기(400-3)를, 세그먼트4는 네트워크 기기(400-4)를, 세그먼트5는 네트워크 기기(400-5)를, 세그먼트6은 네트워크 기기(400-6)를, 세그먼트7은 네트워크 기기(400-7)를 각각 가지고 있다. 또한, 도33의 접속예에서는 각 네트워크 기기는 그 세그먼트 바로 아래의 네트워크 기기 또는 유저 기기와 접속되어 있다. 또한 네트워크 기기(400-1)는 네트워크 기기(400-2), 네트워크 기기(400-3) 및 네트워크 기기(400-6)와도 접속하고 있다.
각 세그먼트가 가지는 네트워크 기기는 그 네트워크 기기에 접속되어 있는 유저 기기 또는 다른 네트워크 기기로부터 입력된 통신 데이터에 대해서, 통신 데이터에 부수(付隨)하는 송출원(source) 네트워크 어드레스와 목적지(target) 네트워크 어드레스 및 미리 설정되어 있는 전송 규칙을 기초로 전송의 가부를 계산하는 기능과, 상기 목적지 어드레스와 네트워크 기기의 접속 관계를 기초로 최적의 전송 루트를 계산하여, 경유지 네트워크 어드레스를 생성하는 기능을 가지고 통신 데이터의 전송을 제어한다.
여기서 도33에 있어서 목적지 네트워크 어드레스가 PC(401-2)에 대응하는 (2. 3. 4)인 통신 데이터를 네트워크 기기 PC(400-1)가 전송하는 경우, 도에서 분명하게 알 수 있듯이, 네트워크 어드레스(2. *. *)에 대응하는 네트워크 기기(400-2)에 전송하는 것보다도, 네트워크 어드레스(2. 3. *)에 대응하는 네트워크 기기(400-6)에 전송하는 쪽이 최적이다. 즉, 목적지 네트워크 어드레스와 마스크 정보를 고려하여 일치하는 네트워크 어드레스에 대응하는 네트워크 기기 중에서, 그 네트워크 어드레스에 있어서 마스크 유효 상태의 비트수가 가장 적은 마스크 정보를 가지는 네트워크 기기를 선택하는 것이 최적이다.
또한, 본 예에서 설명하는 컴퓨터 네트워크의 전송 규칙의 설정예를 표 1(a)에 나타낸다.
표1(a)
Figure 112003039792995-pct00001
표1(b)
Figure 112003039792995-pct00002
규칙 1로서 세그먼트4 내부에서 세그먼트2 내부로의 전송을 허가한다. 규칙 2로서 세그먼트1 내부에서 세그먼트3 내부로의 전송을 허가한다. 규칙 3으로서 세그먼트4 내부에서 세그먼트6 내부로의 전송을 거절한다. 규칙 4로서 세그먼트4 내부의 PC(401-1)에서 세그먼트6 내부의 PC(401-2)로의 전송을 허가한다. 규칙 5로서 세그먼트1 내부에서 세그먼트6 내부의 PC(401-3)로의 전송을 거절한다. 송출원 네트워크 어드레스와 목적지 네트워크 어드레스를 각각 기억 데이터와 마스크 정보의 세트로 표현한 경우, 표1(a)의 전송 규칙은 표1(b)과 같이 기술할 수 있다. 이러한 전송 규칙은 컴퓨터 네트워크 시스템의 안전성을 확보하기 위해서 필요하다. 표1(a)의 전송 규칙의 경우, 세그먼트4에서 세그먼트6으로의 전송은 PC(401-1)에서 PC(401-2)로의 전송만을 허가하고, 그 외는 모두 거절하는 것에 의해서, 예를 들어 PC(401-3)에 저장되어 있는 중요한 데이터를 부정한 열람, 복사, 개찬(改竄, 내용의 변경), 소거 등으로부터 지킬 수 있다.
이와 같이, 각 유저 기기끼리를 직접 통신회선으로 접속하는 것이 아니라 네트워크 기기에 의하여 통신 데이터의 전송을 제어하여 통신을 행하는 것에 의해, 한정된 통신회선을 안전성을 확보하면서 효율적으로 사용하고 있다.
다음에 도면을 참조하여 종래의 네트워크 기기의 설명을 한다. 도34는 종래의 네트워크 기기의 일구성예를 도시한 블럭도이다. 도34에서는 종래의 네트워크 기기(422)에 대하여, 도33의 네트워크 기기(400-1)에 적용한 경우를 예로 들어, 그 구성과 동작을 설명한다.
네트워크 기기(422)는 입력 전송 데이터(402)를 입력으로 하고, 출력 전송 데이터(403)를 출력한다. 입력 전송 데이터(402)는 송출원 네트워크 어드레스(404)와, 경유지 네트워크 어드레스(405)와, 목적지 네트워크 어드레스(406)와, 데이터부(407)를 가지고 있다. 출력 전송 데이터(403)는 송출원 네트워크 어드레스(404)와, 제2의 경유지 네트워크 어드레스(408)와, 목적지 네트워크 어드레스(406)와, 데이터부(407)를 가지고 있다. 도34에서는 종래의 네트워크 기기(422)를 도33의 네트워크 기기(400-1)에 적용한 경우를 예로 들어 설명하고 있기 때문에, 입력 전송 데이터(402)의 경유지 네트워크 어드레스(405)는 당연히 네트워크 기기(400-1)의 네트워크 어드레스로 되어 있다.
네트워크 기기(422)는 송출원 네트워크 어드레스 추출부(409)와, 목적지 네 트워크 어드레스 추출부(410)와, 연상 메모리(101)와, CPU(413)와, 인코더(414)와, 메모리(416)와, 경유지 네트워크 어드레스 변경부(418)와, 데이터 전송부(421)에 의해 구성된다.
송출원 네트워크 어드레스 추출부(409)는 입력 전송 데이터(402)의 송출원 네트워크 어드레스(404)를 송출원 네트워크 어드레스 정보(411)로서 추출하여 CPU(413)에 입력한다. 목적지 네트워크 어드레스 추출부(410)는 입력 전송 데이터(402)의 목적지 네트워크 어드레스(406)를 목적지 네트워크 어드레스 정보(412)로서 추출하여 연상 메모리(101)와 CPU(413)에 입력한다.
네트워크 기기(422)에는 네트워크 중에서 네트워크 기기(422)에 접속되어 있는 네트워크 기기 중에서, 자기 자신이 속하는 세그먼트의 외부에 있는 네트워크 기기가 속하는 세그먼트의 네트워크 어드레스를 연상 메모리(101)의 연상 메모리 워드(102)에 각각 저장하고 있다. 도34에서는 종래의 네트워크 기기(422)를 도33의 네트워크 기기(400-1)에 적용한 경우를 예로 들어 설명하고 있으므로, 연상 메모리 워드(102-1)에는 네트워크 기기(400-2)가 속하는 세그먼트2의 네트워크 어드레스(2. *. *)를 전술한 바와 같이 기억 데이터(010. 000. 000)와 마스크 정보(111. 000. 000)의 쌍대로 표현되는 구조화 데이타의 형식으로 기억하고 있다. 마찬가지로 연상 메모리 워드(102-2)에는 네트워크 기기(400-6)가 속하는 세그먼트6의 네트워크 어드레스(2. 3. *)를, 연상 메모리 워드(103-3)에는 네트워크 기기(400-3)가 속하는 세그먼트3의 네트워크 어드레스(3. *. *)를 기억하고 있다. 연상 메모리(101)는 통상의 메모리와 마찬가지로 어드레스를 지정하여 기억 데 이터의 쓰기, 읽기를 행하는 기능 외에도, 입력한 목적지 네트워크 어드레스 정보(412)와, 대응하는 마스크 정보를 고려하여 비교한 결과 일치하는 기억 데이터 중에서 마스크 정보의 마스크 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(105-1 내지 105-3)을 유효 상태로 하는 기능을 가지고 있다. 연상 메모리(101)로서는, 예를 들어 일본 특허 출원 2000-181406이 있다.
연상 메모리(101)가 출력한 일치선(105-1 내지 105-3)은 인코더(414)에 의하여 메모리 어드레스 신호(415)로 부호화된다. 메모리(416)에는 연상 메모리(101)의 각 연상 메모리 워드에 저장되어 있는 기억 데이터, 마스크 정보에 의해 구성되는 세그먼트의 네트워크 어드레스에 대응하는 네트워크 기기의 네트워크 어드레스를 연상 메모리(101)의 저장 어드레스와 동일한 어드레스의 워드에 기억시키고 있다. 예를 들어, 연상 메모리(101)의 연상 메모리 워드(102-1)에는 어드레스(2. *. *)가 기억되어 있지만, 이것에 대응하는 도33의 네트워크 기기(400-2)의 네트워크 어드레스가 메모리(416)의 워드 1에 저장되어 있다. 마찬가지로 메모리(416)의 워드 2에는 네트워크 기기(400-6)의 어드레스가, 워드 3에는 네트워크 기기(400-3)의 어드레스가 저장되어 있다. 메모리(416)는 메모리 어드레스 신호(415)를 읽기 어드레스로 하여, 지정되는 저장 데이터를 메모리 데이터 신호(417)로서 출력한다.
경유지 네트워크 어드레스 변경부(418)는 입력 전송 데이터(402)의 경유지 네트워크 어드레스(405)를 메모리 데이터 신호(417)의 값으로 변경하는 것에 의하여, 변경 완료된 전송 데이터(419)를 생성하여 데이터 전송부(421)에 입력한다. CPU(413)는 송출원 네트워크 어드레스 정보(411), 목적지 네트워크 어드레스 정보(412)에 대해서, 표1(b)에 나타낸 전송 규칙을 기초로 전송의 가부를 판정하여, 판정 결과를 전송 제어 신호(420)로서 데이터 전송부(421)에 입력한다. 데이터 전송부(421)는 전송 제어 신호(420)가 전송을 허가하고 있으면 변경 완료된 전송 데이터(419)를 출력 전송 데이터(403)로서 출력하고, 전송 제어 신호(420)가 전송을 거절하고 있으면 출력하지 않는다.
예를 들어 입력 전송 데이터(402)의 송출원 네트워크 어드레스(404)가 (1. 2. 3), 목적지 네트워크 어드레스(406)가 (3. 5. 6)인 경우, 연상 메모리(101)에서의 검색 동작 종료 시에는, 연상 메모리 워드(102-3)가 저장되어 있는 (3. *. *)에 대응하는 일치선(105-3)이 유효 상태를 출력한다. 이에 따라, 인코더(414)는 메모리 어드레스(415)로서 "3"을 출력하고, 메모리(416)는 네트워크 기기(400-3)의 네트워크 어드레스를 메모리 데이터 신호(417)로서 출력한다. 경유지 네트워크 어드레스 변경부(418)에 의하여, 입력 전송 데이터(402)의 경유지 네트워크 어드레스(405)를 네트워크 기기(400-3)의 네트워크 어드레스로 변경하여 데이터 전송부(421)에 변경 완료된 전송 데이터(419)로서 입력한다. 송출원 네트워크 어드레스 정보(411)가 (1. 2. 3), 목적지 네트워크 어드레스 정보(412)가 (3. 5. 6)이므로, CPU(413)는 전송 규칙 2를 적용하여 전송 허가 상태의 전송 제어 신호(420)를 데이터 전송부(421)에 입력한다. 이에 따라, 데이터 전송부(421)는 변경 완료된 전송 데이터(419)를 출력 전송 데이터(403)로서 네트워크 기기(400-3)를 향하여 전송 한다. 네트워크 기기(400-3)는 전송되어 온 데이터에 근거하여 상술한 바와 같은 동작을 행하고, 데이터는 차례차례로 최적의 경로의 네트워크 기기에 안전성을 확 보하면서 계속 전송되어, 최종적으로 목적지 네트워크 어드레스(3. 5. 6)를 가지는 유저 기기에 전송될 수 있다.
[종래의 연상 메모리의 설명]
도28은 종래의 연상 메모리의 일구성예를 도시한 블럭도이다. 연상 메모리(101)는 n비트 2입력 1출력 셀렉터(123)와, n비트 m어(語)의 연상 메모리 워드(102-1 내지 102-m)와, n비트 래치(121)와, 제어 회로(130)와, 논리 게이트(116-1 내지 116-n)를 가지고 있다. j번째의 연상 메모리 워드(102-j)는 n개의 연상 메모리 셀(107-j-1 내지 107-j-n)을 마련하고 있다. j번째의 연상 메모리 워드(102-j)에는 대응하는 데이터 워드 선(103-j)과, 마스크 워드 선(106-j) 및 비교 제어 신호(104)가 입력을 위하여 접속되고, 대응하는 일치선(105-j) 및 n개의 일치 데이터 중간 논리선(114-1 내지 114-n)이 출력을 위하여 접속되고, n개의 비트선(113-1 내지 113-n)이 입출력을 위하여 접속되어 있다.
j번째의 연상 메모리 워드(102-j)의 k비트 째의 연상 메모리 셀(107-j-k)에는, 대응하는 데이터 워드 선(103-j)과, 마스크 워드 선(106-j) 및 비교 제어 신호(104)가 입력을 위하여 접속되고, 대응하는 일치선(105-j) 및 일치 데이터 중간 논리선(114-k)이 출력을 위하여 접속되어 비트선(113-k)이 입출력을 위하여 접속되어 있다.
연상 메모리 셀(107-j-k)은 비트선(113-k)을 통하여 외부로부터 입력되는 기억 데이터에 대응하는 비트 정보를 저장하는 데이터 셀(108-j-k)과, 데이터 셀(108-j-k)에 기억된 비트 정보와 외부로부터 비트선(113-k)을 통하여 입력되는 정보를 비교하는 비교기(110-j-k)와, 외부로부터 비트선(113-k)을 통하여 입력되는 마스크 정보에 대응하는 비트 정보를 저장하는 마스크 셀(109-j-k) 및 논리 게이트(111-j-k)를 마련하고 있다. 여기서, 마스크 셀(109-j-k)에 저장된 비트 정보가 마스크 유효 상태인 경우에는, 대응하는 데이터 셀(108-j-k)에는 기억 데이터의 무효 상태를 저장한다.
또한, 본 예에서는 마스크 정보의 마스크 유효 상태를 "0", 마스크 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 기억 데이터와 마찬가지로, 일치 데이터 논리합선(117-1 내지 117-n)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(105-1 내지 105-m)의 유효 상태를 "1", 무효 상태를 "0"으로 한다.
데이터 셀(108-j-k)은 대응하는 데이터 워드 선(103-j)이 유효 상태인 경우, 대응하는 비트선(113-k)에 기입(記入) 데이터가 드라이브되어 있으면 기억 데이터로서 저장하고, 대응하는 비트선(113-k)이 드라이브되어 있지 않으면 저장하고 있는 기억 데이터를 대응하는 비트선(113-k)에 출력한다. 대응하는 데이터 워드 선(103-j)이 무효 상태이면 비트선(113-k)에 대해서 아무런 조작을 하지 않는다. 또한, 대응하는 데이터 워드 선(103-j)의 값에 관계없이, 저장하고 있는 기억 데이터를 동일한 연상 메모리 셀(107-j-k) 안의 비교기(110-j-k)와 논리 게이트(111-j-k)에 출력한다.
마스크 셀(109-j-k)은 대응하는 마스크 워드 선(106-j)이 유효 상태인 경우, 대응하는 비트선(113-k)에 기입 데이터가 드라이브되어 있으면 기입 데이터를 마스 크 정보로서 저장하고, 대응하는 비트선(113-k)이 드라이브되어 있지 않으면 저장하고 있는 마스크 정보를 대응하는 비트선(113-k)에 출력한다. 대응하는 마스크 워드 선(106-j)이 무효 상태이면 비트선(113-k)에 대해서 아무런 조작을 하지 않는다. 또한, 대응하는 마스크 워드 선(106-j)의 값에 관계없이, 저장하고 있는 마스크 정보를 동일한 연상 메모리 셀(107-j-k) 안의 비교기(110-j-k)에 출력한다.
일치선(105-1 내지 105-m)은 검색 동작의 개시 전에는, 하이 레벨에 프리차지(precharge)되어 유효 상태 "1"이 되어 있는 것으로 한다.
비교기(110-j-k)는 대응하는 비트선(113-k)과, 거기에 동일한 연상 메모리 셀(107-j-k) 안의 데이터 셀(108-j-k)에 저장되어 있는 기억 데이터와, 마스크 셀(109-j-k)에 저장되어 있는 마스크 정보 및 비교 제어 신호(104)를 입력으로 한다. 비교기(110-j-k)는 비교 제어 신호(104)가 무효 상태 "0"이고, 또한 마스크 정보가 마스크 유효 상태 "0"이면, 대응하는 일치선(105-j)을 해방 상태로 하고, 그 이외의 경우에는 비트선(113-k)의 값과 기억 데이터가 일치하면 대응하는 일치선(105-j)을 개방 상태로 하고, 일치하지 않으면 무효 상태 "0"을 출력한다. 연상 메모리 워드(102-j) 안의 n개의 비교기(110-j-1 내지 110-j-n)가 모두 일치선(105-j)을 개방 상태로 하고 있을 때, 일치선(105-j)은 유효 상태 "1"이 되고, 그 이외의 경우에는 무효 상태 "0"이 되는, 일치선(105)의 유효 상태 "1"을 진(참, 眞)으로 한 와이어드(wired) AND 논리 접속을 구성하고 있다. 즉, 검색 동작 시에는 비교 제어 신호(104)가 무효 상태 "0"이고, 또한 마스크 정보가 마스크 유효 상태 "0"이기 때문에 비교 대상으로부터 제외된 비트를 제외하고, 연상 메모 리 워드(102-j)가 저장하고 있는 기억 데이터와 비트선(113-1 내지 113-n)이 완전하게 일치하는 경우에 한하여, 일치선(105-j)은 유효 상태 "1"이 되고, 그 이외의 경우는 무효 상태 "0"이 된다.
논리 게이트(111-j-k)는 동일한 연상 메모리 워드(102-j) 안의 일치선(105-j)이 유효 상태 "1"이고, 또한 동일한 연상 메모리 셀(107-j-k) 안의 데이터 셀(108-j-k)에 저장된 기억 데이터가 유효 상태일 때에, 대응하는 일치 데이터 중간 논리선(114-k)에 "0"을 출력하고, 그 이외의 경우에는 개방 상태로 한다. 여기서 본 예에서는 기억 데이터의 유효 상태가 "1"이므로, 데이터 셀(108-j-k)에 저장된 기억 데이터가 "1"이고, 또한 일치선(105-j)이 "1"일 때에, 대응하는 일치 데이터 중간 논리선(114-k)에 "0"을 출력하고, 그 이외의 경우에는 해방 상태를 출력한다.
각 일치 데이터 중간 논리선(114-k)은 저항(115-k)에 의해 풀업(pull-up)되어 있어, 대응하는 m개의 논리 게이트(111-1-k 내지 111-m-k)와 와이어드 논리 접속을 구성하고 있다. 따라서, 접속되어 있는 m개의 논리 게이트(111-1-k 내지 111-m-k)가 모두 일치 데이터 중간 논리선(114-k)을 개방 상태로 하고 있는 경우, 일치 데이터 중간 논리선(114-k)은 "1"이 되고, 그 이외의 경우에는 "0"이 된다. 즉 "1"을 진으로 한 와이어드 AND 접속으로 되어 있다.
논리 게이트(116-1 내지 116-n)는 대응하는 일치 데이터 중간 논리선(114-1 내지 114-n)의 논리 상태를 반전하여, 일치 데이터 논리합선(117-1 내지 117-n)으로서 출력한다.
따라서, 일치 데이터 논리합선(117-k)에는 m개의 논리 게이트(111-1-k 내지 111-m-k)와 일치 데이터 중간 논리선(114-k), 저항(115-k) 및 논리 게이트(116-k)에 의하여, 검색 동작 시에 유효 상태 "1"로 되어 있는 일치선(105-1 내지 105-m)을 가지는 모든 연상 메모리 셀(107-1-k 내지 107-m-k) 안의 데이터 셀(108-1-1 내지 108-m-k)에 저장되어 있는 기억 데이터끼리를 기억 데이터의 유효 상태를 진으로 한 논리합연산을 행한 결과를 얻을 수 있게 된다. 본 예에서는, 기억 데이터의 유효 상태 "1"을 진으로 한 논리합연산을 행한 결과를 얻을 수 있다. 이러한 동작에 의해, 일치 데이터 논리합선(117-1 내지 117-n)에는 검색 동작 시에 검색 데이터(112)와 일치한 기억 데이터 중에서, 가장 무효 상태 "0"의 비트수가 적은 기억 데이터와 같은 값이 출력되게 된다.
n비트 래치(121)는 래치 제어 신호(122)가 유효 상태일 때에, 일치 데이터 논리합선(117-1 내지 117-n)의 상태를 내부에 저장한다. 또한, 저장한 상태를 래치 출력선(120-1 내지 120-n)에 출력한다.
n비트 2입력 1출력 셀렉터(123)는 비트선(113-1 내지 113-n)에 출력하는 데이터를 선택 신호(124)의 상태에 의해, 검색 데이터(112-1 내지 112-n)와 래치 출력선(120-1 내지 120-n)의 한 쪽으로부터 선택한다.
제어 회로(130)는 연상 메모리(101)의 동작을 제어하기 위해, 클럭 신호(131)와 동기화하고, 래치 제어 신호(122), 선택 신호(124) 및 비교 제어 신호(104)를 출력한다.
[종래의 연상 메모리의 상세 설명]
다음으로, 도29에 종래의 연상 메모리 셀(107)의 일구성예를 도시한다. 여기서, 2개의 비트선(113a, 113b)은 도28에 도시되고 있는 각 비트선에 대응하는 것이지만, 도28에 있어서는 113-i로 대표하여 표현하고 있다. 이 2개의 비트선을 통하여 메모리 셀에 데이터의 읽기, 쓰기나 검색 데이터(112)의 입력을 행한다. 데이터를 기입하는 경우 및 검색 데이터의 입력을 행하는 경우에는 비트선(113b)에는 비트선(113a)의 값을 반전한 값을 입력한다. 데이터 셀(108)은 입출력이 서로 접속된 반전 논리 게이트(G101)(301), 반전 논리 게이트(G102)(302)와, 반전 논리 게이트(G102)(302)의 출력을 비트선(113a)에 접속하고, 데이터 워드 선(103)이 하이 레벨일 때에 도통(導通) 상태로 되는 M0S 트랜지스터(T101)(303)와, 반전 논리 게이트(G101)(301)의 출력을 비트선(113b)에 접속하여 데이터 워드 선(103)이 하이 레벨일 때에 도통 상태로 되는 M0S 트랜지스터(T102)(304)에 의해 구성되는 일반적인 스태틱(static) SRAM 소자이다.
또한, 마스크 셀(109)도 입출력이 서로 접속된 반전 논리 게이트(G103)(310), 반전 논리 게이트(G104)(311)와, 반전 논리 게이트(G104)(311)의 출력을 비트선(113a)에 접속하여 마스크 워드 선(106)이 하이 레벨일 때에 도통 상태가 되는 M0S 트랜지스터(T108)(312)와, 반전 논리 게이트(G103)(310)의 출력을 비트선(113b)에 접속하여 마스크 워드 선(106)이 하이 레벨일 때에 도통 상태가 되는 M0S 트랜지스터(T109)(313)에 의해 구성되는 일반적인 스태틱 SRAM 소자이다.
비교기(110)는 M0S 트랜지스터(T103)(305), M0S 트랜지스터(T104)(306), M0S 트랜지스터(T105)(307), M0S 트랜지스터(T106)(308) 및 M0S 트랜지스터(T107)(309) 에 의해 구성된다. M0S 트랜지스터(T103)(305)와 M0S 트랜지스터(T104)(306)는 비트선(113a, 113b)의 사이에 직렬로 삽입된다. M0S 트랜지스터(T103)(305)는 데이터 셀(108) 내의 반전 논리 게이트(G101)(301)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T104)(306)는 데이터 셀(108) 내의 반전 논리 게이트(G102)(302)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T106)(308)와 M0S 트랜지스터(T107)(309)는 병렬 접속되고, 이 병렬 접속된 2개의 M0S 트랜지스터는 M0S 트랜지스터(T105)(307)와 함께, 일치선(105)과 저전위의 사이에 직렬로 삽입된다. M0S 트랜지스터(T106)(308)는 마스크 셀(109) 내의 반전 논리 게이트(G104)(311)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T107)(309)는 비교 제어 신호(104)가 유효 상태 "1"일 때에 도통 상태가 된다.
M0S 트랜지스터(T105)(307)는 M0S 트랜지스터(T103)(305)와 M0S 트랜지스터(T104)(306)의 접속점의 전위가 하이 레벨일 때에 도통 상태가 된다. 비트선(113a)과 반전 논리 게이트(G101)(301)의 출력이 함께 하이 레벨, 또는 비트선(113b)과 반전 논리 게이트(G102)(302)의 출력이 함께 하이 레벨일 때에, M0S 트랜지스터(T103)(305)와 M0S 트랜지스터(T104)(306)의 접속점은 하이 레벨이 되어, M0S 트랜지스터(T105)(307)를 도통 상태로 한다.
따라서, 데이터 셀(108)에 저장되어 있는 기억 데이터와, 비트선(113a, 113b) 상의 검색 데이터(112)가 다른 경우에 M0S 트랜지스터(T105)(307)는 도통 상태가 된다. 또한 M0S 트랜지스터(T106)(308)는 마스크 셀(109) 내에 저장되어 있는 마스크 정보가 "0"일 때에는 개방 상태이고, "1"일 때에 도통 상태가 된다. 일치선(105)은 검색 동작을 개시하기 전에 고전위에 프리차지되어 있는 것으로 한다. 이에 따라, 복수의 연상 메모리 셀(107)이 일치선(105)에 M0S 트랜지스터(T106)(308) 및 M0S 트랜지스터(T107)(309)를 통하여 접속되어 있을 때에, 하나의 연상 메모리 셀(107)에서라도 로우 레벨을 출력하고 있으면 일치선(105)은 로우 레벨이 되는 와이어드 AND 접속이 된다.
M0S 트랜지스터(T105)(307)가 도통 상태일 때에 병렬 접속된 M0S 트랜지스터(T106)(308), M0S 트랜지스터(T107)(309)의 어느 한 쪽이라도 도통 상태인 경우에 연상 메모리 셀(107)은 일치선(105)에 무효 상태 "0"을 출력하고, 그 이외의 경우에는 일치선(105)을 개방 상태로 한다. 즉, 마스크 정보가 마스크 유효 상태 "0"이고, 또한 비교 제어 신호(104)가 무효 상태 "0"인 경우에는 검색 데이터(112)와 기억 데이터의 비교 결과에 의하지 않고 일치선(105)을 개방 상태로 하고, 그 이외의 경우에는 비트선(113a, 113b) 상의 검색 데이터(112)와 데이터 셀(108)에 저장되어 있는 기억 데이터가 일치하는 경우에 개방 상태로 하고, 다른 경우에는 무효 상태 "0"을 출력한다.
다음에, 논리 게이트(111)와 일치 데이터 중간 논리선(114)의 기능을 설명한다. 일치 데이터 중간 논리선(114)은 도28의 저항(115)에 의해 풀업되어 검색 동작 전에는 "1"로 되어 있다. 논리 게이트(111)는 일치 데이터 중간 논리선(114)과 저전위의 사이에 직렬로 삽입된 M0S 트랜지스터(T110)(314)와, M0S 트랜지스터(T111)(315)로 구성되어 있다. M0S 트랜지스터(T110)(314)는 일치선(105)이 유효 상태 "1"일 때에 도통 상태로 되고, 무효 상태 "0"일 때에는 개방 상태로 된다. M0S 트랜지스터(T111)(315)는 데이터 셀(108) 내부의 반전 논리 게이트(G102)(302)의 출력이 하이 레벨의 경우에 도통 상태가 되고, 로우 레벨의 경우에는 개방 상태가 된다. 즉, 데이터 셀(108)에 저장되어 있는 기억 데이터가 유효 상태 "1"일 때에 도통 상태가 되고, 무효 상태 "0"일 때에는 개방 상태가 된다. 이에 따라, 논리 게이트(111)는 일치선(105)이 유효 상태 "1"이고, 또한 데이터 셀(108)에 저장된 기억 데이터가 유효 상태 "1"일 때에, 일치 데이터 중간 논리선(114)에 "0"을 출력하고, 그 이외의 경우에는 개방 상태로 한다.
[종래의 연상 메모리의 동작]
다음에, 상술의 종래의 연상 메모리(101)를 도33의 네트워크 기기(400-1)에 있어서의 경유지 네트워크 어드레스의 계산에 이용한 경우의 동작을, 도30을 이용하여 설명한다. 그 때의 타이밍 차트를 도31에 도시한다.
연상 메모리(101)를 9비트 3어의 구성으로 가정하여, 각 연상 메모리 워드(102-1 내지 102-3)에 저장되어 있는 기억 데이터, 마스크 정보에는 도33의 네트워크 기기(400-1)의 네트워크 어드레스(1. *. *) 이외의 접속 정보를 기억하고 있는 것으로 한다. 이 때, 접속 정보 중의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태 "0", 마스크 정보의 해당 비트를 마스크 유효 상태 "0"으로 하는 것으로 표현된다.
즉, 연상 메모리 워드(102-1)에는 (2. *. *)를 구조화 데이터로 표현하기 위하여, 기억 데이터에는 2진수로 (010. 000. 000)를, 마스크 정보로서 (111. 000. 000)로 저장하고 있다. 마찬가지로 연상 메모리 워드(102-2)에는 (2. 3. *)를 구조화 데이터로 표현하기 위하여, 기억 데이터에는 2진수로 (010. 011. 000)를, 마스크 정보로서 (111. 111. 000)를 저장하고 있다. 연상 메모리 워드(102-3)에는 (3. *. *)를 구조화 데이터로 표현하기 위하여, 기억 데이터에는 2진수로 (011. 000. 000)를, 마스크 정보로서 (111. 000. 000)를 저장하고 있다.
이후, 검색 데이터(112)로서 도33의 PC(401-2)의 8진수의 네트워크 어드레스(2. 3. 4)를 입력하여 검색 동작을 행한 경우의 동작 설명을 한다.
우선, 도31의 타이밍(1)에서, 모든 일치선(105-1 내지 105-3)은 하이 레벨에 프리차지되어 유효 상태 "1"로 되어 있다.
다음에 도31의 타이밍(2)에서, 제어 회로(130)가 출력하는 선택 신호(124)에 의해, n비트 2입력 1출력 셀렉터(123)는 검색 데이터(112)를 선택하여, 비트선(113-1 내지 113-9)에 출력한다. 또한, 제어 회로(130)는 비교 제어 신호(104)에 무효 상태 "0"을 출력하고, 각 연상 메모리 셀(107-1-1 내지 107-m-n)에 있어서, 그 중의 기억 데이터와 검색 데이터(112)의 대응 비트의 비교 결과에 의하지 않고, 그 중의 마스크 정보가 마스크 유효 상태 "0"의 경우에는 대응하는 일치선(105)을 해방 상태로 하는 것을 허가한다. 즉, 돈케어 "*"도 고려하여 비교한다. 이에 따라, 연상 메모리(101)의 연상 메모리 워드(102-1)에 저장되어 있는 8진 표현의 (2. *. *)와, 연상 메모리 워드(102-2)에 저장되어 있는 8진 표현의 (2. 3. *)가 비트선(113-1 내지 113-9) 상의 검색 데이터(112)와 일치한다. 따라서, 1차 검색의 결과로서, 일치선(105-1, 105-2)의 2개가 유효 상태 "1"이 되고, 나머지 의 일치선(105-3)은 무효 상태 "0"이 된다.
여기서, 일치 데이터 논리합선(117-1)으로부터는, 연상 메모리 워드(102-1) 내의 일치 데이터 중간 논리선(114-1)에 대응하는 기억 데이터 "0"과, 연상 메모리 워드(102-2) 내의 일치 데이터 중간 논리선(114-1)에 대응하는 기억 데이터 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이 출력된다. 일치 데이터 논리합선(117-2)으로부터는, 연상 메모리 워드(102-1) 내의 일치 데이터 중간 논리선(114-2)에 대응하는 기억 데이터 "1"과, 연상 메모리 워드(102-1) 내의 일치 데이터 중간 논리선(114-2)에 대응하는 기억 데이터 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이 출력된다. 이후 마찬가지로, 일치 데이터 논리합선(117-3)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 일치 데이터 논리합선(117-4)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 일치 데이터 논리합선(117-5)으로부터는 "0"과 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이, 일치 데이터 논리합선(117-6)으로부터는 "0"과 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이, 일치 데이터 논리합선(117-7)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 일치 데이터 논리합선(117-8)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 일치 데이터 논리합선(117-9)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이 각각 출력된다. 따라서, 일치 데이터 논리합선(117-1 내지 117-9)에는 2진 표현으로 "010011000"이 출력되게 된다.
이 상태로, 제어 회로(130)가 출력하는 래치 제어 신호(122)가 유효 상태가 되어, n비트 래치(121)는 일치 데이터 논리합선(117-1 내지 117-9)의 상태를 내부에 저장한다. 따라서, n비트 래치(121)는 2진 표현으로 "010011000"을 저장하고, 그 값을 래치 출력선(120-1 내지 120-9)에 출력한다.
도31의 타이밍(3)은 본 예에서는, 타이밍(2)과 타이밍(4) 쌍방의 클럭 신호(131)의 상태를 동일하게 하기 위해서 삽입되고 있어, 연상 메모리(101)는, 타이밍(2)의 최종 상태를 계속 유지한다.
다음에 도31의 타이밍(4)에서, 제어 회로(130)가 출력하는 선택 신호(124)에 의해, n비트 2입력 1출력 셀렉터(123)는 래치 출력선(120)을 선택하여, 그 정보 "010011000"을 대응하는 비트선(113-1 내지 113-9)에 출력한 후, 연상 메모리(101)는 2차 검색을 개시한다. 2차 검색에서는, 일치선(105-1 내지 105-3)에 유지되고 있는, 타이밍(2)에서 실행한 1차 검색의 결과를 이용한다. 본 예에서는, 일치선(105-1 및 105-2)의 2개가 유효 상태 "1"을 유지하고 있고, 데이터 일치선(105-3)은 무효 상태 "0"을 유지하고 있다. 또한, 제어 회로(130)는 비교 제어 신호(104)에 유효 상태 "1"을 출력한다. 이에 따라, 각 연상 메모리 셀(107-1-1 내지 107-m-n)은 그 중의 마스크 정보에 의하지 않고, 그 중의 기억 데이터와 대응하는 비트선(113)의 비교 결과가 불일치한 경우에는, 일치선(105)에 무효 상태 "0"을 출력한다. 즉, 돈케어 "*"을 고려하지 않고, 각 연상 메모리 워드(102-1 내지 102-3)에 저장되어 있는 기억 데이터 자체와 비트선(113-1 내지 113-9)의 상태 "010011000"을 비교하여, 불일치한 경우에는 대응하는 일치선(105-1 내지 105-3)에 무효 상태 "0"을 출력하게 된다.
본 예에서는, 비트선(113-1 내지 113-9)의 상태 "010011000"에 대해서, 연상 메모리 워드(102-2)가 저장하는 기억 데이터가 완전하게 일치하여, 대응하는 일치선(105-2)을 개방 상태로 한다. 다른 연상 메모리 워드(102-1 및 102-3)가 저장하는 기억 데이터는 일치하지 않기 때문에, 대응하는 일치선(105-1 및 105-3)에 무효 상태 "0"을 출력한다. 따라서, 2차 검색 개시 전에 유효 상태 "1"을 유지하고 있던 일치선(105-1, 105-2)의 2개 중에서, 2차 검색 후에도 유효 상태 "1"을 계속 유지하는 것은 일치선(105-2)만이 된다.
따라서, 입력한 검색 데이터(112)와, 대응하는 마스크 정보를 고려하여 비교한 결과 일치하는 기억 데이터 중에서, 마스크 정보의 마스크 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(105-2)에만 유효 상태를 출력하는 것을 알 수 있다.
종래의 연상 메모리(101)에서는 다음에 나타내듯이, 연상 메모리 워드 1어중에 기억 데이터와 마스크 정보의 세트로 표현된 복수의 네트워크 어드레스를 저장한 경우에는, 검색을 위하여 입력한 복수의 네트워크 어드레스와, 대응하는 마스크 정보를 고려하여 비교한 결과 일치하는 기억 데이터 중에서, 각각의 네트워크 어드레스에 대응하는 기억 데이터의 영역에 대응하는 마스크 정보의 영역의 마스크 유효 상태의 비트가 최소가 되는 기억 데이터를 출력할 수가 없다.
도33에 있어서 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터, 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대해, 전송의 가부를 종래의 연상 메모리(101)로 판정한 경우의 동작예를 도32를 이용하여 설명한다.
표1(b)의 전송 규칙 1 내지 5에 있어서, 각 전송 규칙의 송출원 네트워크 어드레스와 목적지 네트워크 어드레스의 9비트의 기억 데이터끼리, 9비트의 마스크 정보끼리를 연결하고, 18비트의 기억 데이터를 연결하여 각 전송 규칙의 송출원 네트워크 어드레스 1 각각 9비트의 기억 데이터와 마스크 정보로 표현되는 구조화 데이터로 표현한 세트를 기억하고 있는 것으로 한다.
연상 메모리(101)를 18비트 5어의 구성으로 가정한다. 표1(b)에 있어서의 각 전송 규칙의 송출원 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터 및 9비트의 마스크 정보를 전송 규칙에 대응하는 연상 메모리 워드(102-1 내지 102-5)의 각각에 기억 데이터, 마스크 정보의 상위 9비트로서 저장하는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 목적지 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터 및 9비트의 마스크 정보를 전송 규칙에 대응하는 연상 메모리 워드(102-1 내지 102-5)의 각각에 기억 데이터, 마스크 정보의 하위 9비트로서 저장하는 것으로 한다. 이 결과, 연상 메모리(101)의 각 연상 메모리 워드(102-1 내지 102-5)에 저장되는 18비트의 구조화 데이터는 도32에 도시한 그대로이다.
전술의 동작 설명과 마찬가지로 1차 검색에서는, 연상 메모리(101)는 8진 표현으로 (1. 2. 6 2. 3. 5)의 검색 데이터(112)를 비트선(113)에 출력하고, 연상 메모리 워드(102-1 내지 102-5)에 저장되어 있는 기억 데이터와, 대응하는 마스크 정보도 고려하여 비교를 행한다. 이에 따라, 연상 메모리 워드(102-1)에 저장되어 있는 8진 표현의 (1. 2. * 2. *. *)와, 연상 메모리 워드(102-3)에 저장되어 있 는 8진 표현의 (1. 2. * 2. 3. *)와, 연상 메모리 워드(102-5)에 저장되어 있는 8진 표현의 (1. *. * 2. 3. 5)가 비트선(113) 상의 검색 데이터(112)와 일치한다. 따라서, 1차 검색의 결과로서 일치선(105-1, 105-3, 105-5)의 3개가 유효 상태 "1"이 되고, 나머지의 일치선(105-2, 105-4)은 무효 상태 "0"이 된다.
여기서, 전술의 동작 설명과 마찬가지로, 연상 메모리 워드(102-1 내지 102-5)에 있어서, 대응하는 일치선(105)이 유효 상태 "1"을 유지하고 있는 18비트의 기억 데이터의 각 비트에 대해서, "1"을 진으로 한 논리합결과를 요구하여, n비트 래치(102)에 저장한다. 즉, 연상 메모리 워드(102-1)에 저장되어 있는 8진 표현으로 (1. 2. 0 2. 0. 0), 2진 표현으로 "001.010.000. 010.000.000"과, 연상 메모리 워드(102-3)에 저장되어 있는 8진 표현으로 (1. 2. 0 2. 3. 0), 2진 표현으로 "001.010.000. 010.011.000"과, 연상 메모리 워드(102-5)에 저장되어 있는 8진 표현으로(1. 0. 0 2. 3. 5), 2진 표현으로 "001.000.000. 010.011.101"의 각 비트에 대해서, "1"을 진으로 한 논리합연산의 실행 결과로서 얻을 수 있는 2진 표현으로 "001.010.000. 010.011.101", 8진 표현으로 (1. 2. 0 2. 3. 5)를 n비트 래치(121)는 기억하고, 이 값을 래치 출력선(120)에 출력한다.
전술의 동작 설명과 마찬가지로 2차 검색에서는, 연상 메모리(101)는 래치 출력선(120) 상태, 8진 표현으로 (1. 2. 0 2. 3. 5), 2진 표현으로 "001.010. 000. 010.011.101"을 비트선(113)에 출력하여, 연상 메모리 워드(102-1 내지 102-5)에 저장되어 있는 기억 데이터와, 대응하는 마스크 정보를 고려하지 않고 비교를 행한다. 이 때, 연상 메모리 워드(102-1 내지 102-5)에 저장되어 있는 모든 기억 데이터가 불일치가 되어, 일치선(105-1 내지 105-5)은 모두 무효 상태 "0"을 출력한다.
네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송은 전송 규칙 3에 의해 거절되지 않으면 안된다. 즉, 연상 메모리(101)로 검색한 경우, 연상 메모리 워드(102-3)에 대응하는 일치선(105-3)만이 유효 상태 "1"을 출력하는 것이 본래 있어야 할 동작이다. 그러나, 종래의 연상 메모리(101)에서는 상술한 바와 같이, 검색 종료 후의 일치선(105-1 내지 105-5)은 부정한 상태가 되어 버린다.
이 때문에, 네트워크의 안전성을 확보하기 위해서, 입력 전송 데이터의 송출원 네트워크 어드레스와 목적지 네트워크 어드레스에 대해서 전송 규칙을 기초로 전송의 가부를 판정하는 기능은 종래의 네트워크 기기에서는 상술한 바와 같이 CPU에 의해, 이진 트리 검색 알고리즘 등을 응용한 소프트웨어 처리로 실현하고 있었다. 이 소프트웨어 처리에는 수백 클럭 이상이 필요하고, 경유지 네트워크 어드레스의 계산은 연상 메모리에 의해 고속화하고 있음에도 불구하고, 네트워크의 안전성을 확보하려고 하면 네트워크 전체의 통신 속도가 저하한다고 하는 문제가 있었다.
또한, 이진 트리 검색 알고리즘 등을 응용한 소프트웨어 처리로 전송 가부 판정 연산을 실행하는 경우에는, 미리 거대한 검색 테이블을 작성할 필요가 있기 때문에, 전송 규칙의 삭제, 추가, 변경을 행하기 위해서는, 네트워크 기기의 전송 동작을 중단해야 하는 문제가 있었다. 그로 인해, 네트워크 기기의 관리자가 전송 규칙의 삭제, 추가, 변경을 빈번하게 행하지 않게 되어, 네트워크 전체의 안전성이 저하한 채로 운용할 수밖에 없다고 하는 문제가 있었다.
또한, 전송 가부 판정을 조금이라도 고속으로 실행하려고 하면, 고가의 고속 CPU 시스템을 탑재해야 하기 때문에, 네트워크 기기 전체적인 가격이 상승해 버린다고 하는 문제가 있었다.
이에, 본 발명의 목적은 복수의 검색 영역으로 구성되는 입력 데이터에 대해서 마스크 정보를 고려하여 검색을 행했을 때에, 입력 데이터에 대응하는 기억 데이터가 모두 일치하는 워드가 복수 개 있는 경우에, 우선순위를 고려해 검색 영역 마다 구조화 데이터를 구성하는 마스크 정보의 마스크 유효 상태의 비트수를 일치한 워드 중에서 비교한 결과, 최소가 되는 워드를 식별하는 신호를 출력하는 연상 메모리를 제공하는 것에 있다.
더욱 다른 목적으로는, 입력 전송 데이터에 대해서 전송 규칙을 기초로 전송의 가부를 판정하는 기능을 고속으로 실행하는 네트워크 기기를 제공하는 것에 있다.
더욱 다른 목적으로는, 전송 동작을 중단하지 않고 전송 규칙의 삭제, 추가, 변경을 실행할 수가 있는 네트워크 기기를 제공하는 것에 있다.
더욱 다른 목적으로는, 전송 가부 판정을 고속으로 실행하는 네트워크 기기의 토탈 코스트를 삭감하는 것이다.
더욱 다른 목적으로는, 안전성을 확보함과 동시에 고속으로 데이터를 전송 할 수 있는 네트워크 시스템을 제공하는 것에 있다.
본 발명의 연상 메모리는, 수단 1로서 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외하는지 여부를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지는 연상 메모리에 있어서,
N개(N은 2 이상의 정수)의 부분 비트 영역으로 구성되는 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출(選出)되는 워드를 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
선출 상태로 계속 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 중간 데이터 생성 수단과,
상기 외부 검색 데이터의 부분 비트 영역의 구성과 마찬가지로 상기 중간 데이터를 N개로 분할한 부분 비트 영역 중 각각 1개를 입력으로 하고, 2차 검색 제어 신호의 상태에 의해 워드에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 워드를 식별하는 2차 식별 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되 고 있는지 여부의 워드 유효 정보를 1차 검색 및 각 2차 검색 실행마다 갱신, 기억하여 그 선출 상태, 비선출 상태를 상기 중간 데이터 생성 수단에 출력하는 기억 수단과,
상기 외부 검색 데이터의 전체 비트 영역을 검색 데이터로서 상기 1차 검색을 행한 후, 상기 중간 데이터의 상기 N개의 부분 비트 영역을 순차 검색 데이터로서 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단을 가지는 것이다.
본 발명의 연상 메모리는, 수단 2로서 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외하는지 여부를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지는 연상 메모리에 있어서,
N개(N은 2 이상의 정수)의 부분 비트 영역으로 구성되는 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 워드를 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
선출 상태로 계속 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 N개의 중간 데이터 생성 수단과,
상기 외부 검색 데이터의 부분 비트 영역의 구성과 마찬가지로 상기 중간 데이터를 N개로 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 워드에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 행한 결과 선출되는 워드를 식별하는 2차 식별 신호를 출력하는 N개의 2차 검색 수단을 가지고,
상기 N개의 중간 데이터 생성 수단과 N개의 2차 검색 수단은, 제1 중간 데이터 생성 수단은 1차 검색의 결과 생성된 제1 중간 데이터를 상기 제1의 2차 검색 수단에 입력하여 제1 부분 비트 영역에 대해 제1의 2차 검색을 행하고, 제2 중간 데이터 생성 수단은 제1의 2차 검색의 결과 생성된 제2 중간 데이터를 상기 제2의 2차 검색 수단에 입력하여 제2 부분 비트 영역에 대해 제2의 2차 검색을 행하고, 제3 중간 데이터 생성 수단은 제2의 2차 검색의 결과 생성된 제3 중간 데이터를 상기 제3의 2차 검색 수단에 입력하여 제3 부분 비트 영역에 대해 2차 검색을 행하고, 이하 동일한 방식으로 구성하여 제N의 중간 데이터 생성 수단은 제(N-1)의 2차 검색의 결과 생성된 제N의 중간 데이터를 상기 제N의 2차 검색 수단에 입력하여 제N의 부분 비트 영역에 대해 2차 검색을 행하는 것이다.
본 발명의 연상 메모리는, 수단 3으로서 상기 제1 내지 제N의 2차 검색 수단에 있어서, 1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되는지 여부의 워드 유효 정보를, 제J 내지 제K(J, K는 1 이상 N 이하의 정수)의 각 2차 검색의 실행마다 갱신, 기억하여 각 워드의 선출 상태, 비선출 상태를 출력하는 기억 수단과,
워드의 선출 상태를 나타내는 신호를 입력으로 하고, 선출 상태에 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 상기 논리 연산에 의해 생성되는 제J 내지 제K의 중간 데이터를 출력하는 공유 중간 데이터 생성 수단과,
2차 검색 제어 신호의 상태에 의해 워드에 있어서의 상기 기억 데이터 또는 마스크 정보의 제J 내지 제K의 부분 비트 영역에 대응하는 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 워드를 식별하는 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
제J의 2차 검색으로부터 제K의 2차 검색을 차례로 실행하도록 상기 2차 검색 제어 신호를 출력하고, 또한 상기 2차 검색마다 상기 기억 수단의 상기 워드 유효 정보를 갱신하기 위해 상기 기억 제어 신호를 출력하는 제어 수단을 가짐으로써, 제J 내지 제K의 상기 2차 검색 수단의 구성 요소를 공유하는 것이다.
본 발명의 연상 메모리는, 수단 4로서 상기 1차 검색 수단에 있어서, 1개 또는 복수의 속성 데이터를 검색 데이터로 하고, 상기 기억 데이터가 저장되어 있는 상기 워드와 대응하는 속성 일치 신호를 검색 결과로서 출력하는 제2 연상 메모리를 가지고,
1차 검색으로서 상기 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외한 결과 선출되고, 또한 대응하는 상기 속성 일치 신호가 상기 속성 데이터를 상기 제2 연상 메모리로 검색한 결과 일치를 나타내 고 있는 워드를 식별하는 1차 식별 신호를 출력하는 것이다.
본 발명의 연상 메모리는, 수단 5로서 상기 1차 검색 수단에 있어서,
검색 데이터로서 1차 제어 허가 신호가 유효 상태일 때에는 상기 외부 검색 데이터를 선택하고, 다른 경우에는 상기 중간 데이터를 선택하는 선택 수단과,
1차 검색 허가 신호가 유효 상태일 때에는 해당 외부 검색 데이터의 전체 비트를 검색 데이터로 하여 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행하고, 2차 검색 제어 신호가 유효 상태일 때에는 워드에 있어서의 상기 기억 데이터 또는 마스크 정보의 2차 검색 제어 신호의 상태에 의해 지정되는 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는 수단을 가지고,
1차 제어 허가 신호를 유효하게 하여 상기 외부 검색 데이터의 전체 비트 영역을 검색 데이터로 하여 상기 1차 검색을 행한 후, 상기 중간 데이터의 상기 N개의 부분 비트 영역을 차례로 검색 데이터로 하여 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단을 가짐으로써,
1차 검색 수단의 구성 요소와 2차 검색 수단의 구성 요소를 공유하는 것이다.
본 발명의 연상 메모리는, 수단 6으로서 상기 1차 검색 수단이 출력하는 1차 식별 신호 및 상기 N개의 2차 검색 수단이 출력하는 제1 내지 제N의 2차 식별 신호 중 1개 또는 복수를 기억하는 수단과, 상기 제1 내지 제 N의 중간 데이터 중 1개 또는 복수를 기억하는 수단 중 한 쪽 또는 양 쪽을 가짐으로써 파이프라인 처리를 가능하게 하는 것이다.
본 발명의 연상 메모리는, 수단 7로서 상기 중간 데이터 생성 수단에 입력하는 1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되는지 여부의 정보의 갱신, 기억을 결선 논리를 이용하여 구성함으로써, 해당 정보를 상기 중간 데이터 생성 수단에 입력하기 위한 배선과, 1차 식별 신호 또는 2차 식별 신호의 배선을 공용하는 것이다.
본 발명의 연상 메모리는, 수단 8로서 상기 중간 데이터의 각 부분 비트 영역에 상기 외부 검색 데이터의 대응하는 부분 비트 영역과 동일한 우선순위를 부여하여 해당 중간 데이터의 해당 부분 비트 영역에 대해 우선순위의 고위로부터 저위의 순으로 검색 데이터로서 상기 2차 검색을 실행하는 것이다.
본 발명의 연상 메모리는, 수단 9로서 상기 기억 데이터로서 1차 검색시에 대응하는 상기 마스크 정보에 의해 검색 대상으로부터 제외되는 1비트 또는 복수의 비트에 특정 비트 패턴을 저장하고, 2차 검색으로서 해당 기억 데이터 또는 해당 기억 데이터의 검색 대상이 되는 부분 비트 영역이 검색 데이터로서 입력되는 상기 중간 데이터 또는 상기 중간 데이터의 부분 비트 영역과 일치한 워드를 선출하는 것이다.
본 발명의 연상 메모리는, 수단 10으로서 상기 기억 데이터에 있어서 1차 검색시에 대응하는 상기 마스크 정보에 의해 검색 대상으로부터 제외되는 1비트 또는 복수의 비트가 특정 비트 패턴이라 간주하여 2차 검색을 행하고, 해당 기억 데이터 또는 해당 기억 데이터의 검색 대상이 되는 부분 비트 영역이 검색 데이터로서 입 력되는 상기 중간 데이터 또는 상기 중간 데이터의 부분 비트 영역과 일치한 워드를 선출하는 것이다.
본 발명의 연상 메모리는, 수단 11로서 상기 특정 비트 패턴은 모든 해당 비트가 기억 데이터의 무효 상태에 의해 구성되어 있는 것이다.
본 발명의 연상 메모리는, 수단 12로서 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 기억 데이터끼리의, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로, 그 논리합연산 결과를 상기 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것이다.
본 발명의 연상 메모리는, 수단 13으로서 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 해당 논리곱 연산 결과의 비트가 마스크 정보의 무효 상태이면 상기 외부 검색 데이터의 동일 비트 위치의 정보를 중간 데이터의 동일 비트 위치의 상태로 하고, 상기 논리곱 연산 결과의 비트가 마스크 정보의 유효 상태이면 기억 데이터의 무효 상태를 상기 중간 데이터의 동일 비트 위치의 상태로 하여 상기 중간 데이터를 생성하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것이다.
본 발명의 연상 메모리는, 수단 14로서 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 그 논리곱 연산 결과를 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 마스크 정보를 가지고 또한 그 시점까지 선출 상태에 있는 워드를 선출하는 것이다.
본 발명의 네트워크 기기는, 수단 15로서 입력 전송 데이터에 부수하는 송신원 네트워크 어드레스 및 목적지 네트워크 어드레스를 구성 요소에 포함하는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 상기 입력 전송 데이터의 전송 가부를 판정하고,
상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 갖는 네트워크 기기에 있어서,
상기 입력 전송 데이터에 부수하는 상기 송신원 네트워크 어드레스 및 상기 목적지 네트워크 어드레스를 구성 요소에 포함하는 상기 판정 입력 데이터를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행하고,
상기 1차 검색의 결과, 선출된 1개 또는 복수의 전송 규칙을 구성하는 기억 데이터끼리, 마스크 정보끼리, 상기 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 중간 데이터를 생성하고,
상기 판정 입력 데이터의 제1 구성 요소로부터 최종 구성 요소에 대해 마찬가지로 차례로 상기 1차 검색, 상기 2차 검색마다 계속해서 선출되는 1개 또는 복 수의 전송 규칙을 구성하는 기억 데이터끼리, 마스크 정보끼리, 상기 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 상기 논리 연산의 결과에 의해 갱신된 중간 데이터의 해당 구성 요소에 대응하는 비트 영역을 검색 데이터로 하고, 해당 구성 요소에 대응하는 비트 영역의 기억 데이터 또는 마스크 정보에 대해 선택적으로 2차 검색을 실행하고,
최종적으로 선출된 전송 규칙에 의해, 해당 입력 전송 데이터 전송의 가부를 결정하는 것이다.
본 발명의 네트워크 기기는, 수단 16으로서 입력 전송 데이터에 부수하는 송신원 네트워크 어드레스 및 목적지 네트워크 어드레스를 구성 요소에 포함하는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 해당 입력 전송 데이터의 전송 가부를 판정하고,
상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 가지는 네트워크 기기에 있어서,
판정 입력 데이터의 전체 비트를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
선출 상태로 계속 있는 전송 규칙에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 중간 데이터 생성 수단과,
상기 판정 입력 데이터의 구성 요소의 비트 영역과 마찬가지로 상기 중간 데이터를 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 2차 검색 제어 신호에 의해 전송 규칙에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 전송 규칙을 식별하는 2차 식별 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
1차 검색 및 각 2차 검색을 통해 전송 규칙마다 대응하는 전송 규칙이 계속해서 선출되고 있는지 여부의 전송 규칙 유효 정보를 1차 검색 및 각 2차 검색 실행마다 갱신, 기억하여 그 선출 상태, 비선출 상태를 나타내는 일치 신호를 상기 중간 데이터 생성 수단에 출력하는 기억 수단과,
상기 판정 입력 데이터의 전체 비트 영역을 검색 데이터로 하여 상기 1차 검색을 행한 후, 상기 중간 데이터의 각 부분 비트 영역을 순차 검색 데이터로 하여 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단과,
상기 일치 신호에 의해 참조한 전송 가부 정보에 의해 해당 입력 전송 데이터의 전송 가부를 결정하는 수단을 갖는 것이다.
본 발명의 네트워크 기기는, 수단 17로서 입력 전송 데이터에 부수하는 송신 원 네트워크 어드레스 및 목적지 네트워크 어드레스를 포함하는 N개(N은 2 이상의 정수)의 구성 요소로 구성되는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 해당 입력 전송 데이터의 전송 가부를 판정하고,
상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 가지는 네트워크 기기에 있어서,
판정 입력 데이터의 전체 비트를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
선출 상태로 계속 있는 전송 규칙에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 N개의 중간 데이터 생성 수단과,
상기 판정 입력 데이터 구성 요소의 비트 영역과 마찬가지로 상기 중간 데이터를 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 전송 규칙에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역 에 대해서만 선택적으로 2차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 신호를 출력하는 N개의 2차 검색 수단과,
상기 제N의 2차 검색 수단에 의해 선출된 전송 규칙에 의해 참조한 전송 가부 정보에 의해 해당 입력 전송 데이터의 전송 가부를 결정하는 수단을 가지고,
상기 N개의 중간 데이터 생성 수단과 N개의 2차 검색 수단은, 제1 중간 데이터 생성 수단은 1차 검색의 결과 생성된 제1 중간 데이터를 상기 제1의 2차 검색 수단에 입력하여 제1 부분 비트 영역에 대해 제1의 2차 검색을 행하고, 제2 중간 데이터 생성 수단은 제1의 2차 검색의 결과 생성된 제2 중간 데이터를 상기 제2의 2차 검색 수단에 입력하여 제2 부분 비트 영역에 대해 제2의 2차 검색을 행하고, 제3 중간 데이터 생성 수단은 제2의 2차 검색의 결과 생성된 제3 중간 데이터를 상기 제3의 2차 검색 수단에 입력하여 제3 부분 비트 영역에 대해 2차 검색을 행하고, 이하 동일한 방식으로 구성하여 제N의 중간 데이터 생성 수단은 제(N-1)의 2차 검색의 결과 생성된 제N의 중간 데이터를 상기 제N의 2차 검색 수단에 입력하여 제N의 부분 비트 영역에 대해 2차 검색을 행하는 것이다.
본 발명의 네트워크 시스템은, 수단 18으로서 수단 15 내지 17 기재의 상기 네트워크 기기를 통하여 네트워크에 접속된 기기 사이에서 데이터 통신을 행하는 것이다.
도1은, 본 발명의 제1 실시 형태의 연상 메모리의 일구성예를 도시한 블럭도이다.
도2는, 본 발명의 제1 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다.
도3은, 본 발명의 제1 실시 형태의 연상 메모리에 있어서 단일 영역 검색용 연상 메모리의 일구성예를 도시한 블럭도이다.
도4는, 본 발명의 제1 실시 형태의 연상 메모리에 있어서 단일 영역 검색용 연상 메모리의 연상 메모리 셀의 일구성예를 도시한 회로도이다.
도5는, 본 발명의 제1 실시 형태의 연상 메모리의 동작을 설명하는 순서도이다.
도6은, 본 발명의 제1 실시 형태의 연상 메모리의 스텝 S100에서의 동작 상태의 일례를 도시한 설명도이다.
도7은, 본 발명의 제1 실시 형태의 연상 메모리의 스텝 S101에서의 동작 상태의 일례를 도시한 설명도이다.
도8은, 본 발명의 제1 실시 형태의 연상 메모리의 스텝 S102에서의 동작 상태의 일례를 도시한 설명도이다.
도9는, 본 발명의 제1 실시 형태의 연상 메모리의 스텝 S105에서의 동작 상태의 일례를 도시한 설명도이다.
도10은, 본 발명의 제1 실시 형태의 연상 메모리에 있어서의 단일 영역 검색용 연상 메모리의 제2의 구성예를 도시한 블럭도이다.
도11은, 본 발명의 제2 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다.
도12는, 본 발명의 제2 실시 형태의 연상 메모리에 있어서의 단일 영역 검색용 연상 메모리의 일구성예를 도시한 블럭도이다.
도13은, 본 발명의 제3 실시 형태의 연상 메모리의 일구성예를 도시한 블럭도이다.
도14는, 본 발명의 제3 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다.
도15는, 본 발명의 제3 실시 형태의 연상 메모리에 있어서의 1차 연상 메모리의 일구성예를 도시한 블럭도이다.
도16은, 본 발명의 제3 실시 형태의 연상 메모리에 있어서의 1차 연상 메모리의 연상 메모리 셀의 일구성예를 도시한 회로도이다.
도17은, 본 발명의 제3 실시 형태의 연상 메모리에 있어서의 2차 연상 메모리의 일구성예를 도시한 블럭도이다.
도18은, 본 발명의 제3 실시 형태의 연상 메모리에 있어서의 2차 연상 메모리의 연상 메모리 셀의 일구성예를 도시한 회로도이다.
도19는, 본 발명의 제3 실시 형태의 연상 메모리의 단일 영역 검색용 연상 메모리의 동작예를 도시한 설명도이다.
도20은, 본 발명의 제3 실시 형태의 연상 메모리의 스텝 S100에서의 동작 상태의 일례를 도시한 설명도이다.
도21은, 본 발명의 제3 실시 형태의 연상 메모리의 스텝 S101에서의 동작 상태의 일례를 도시한 설명도이다.
도22는, 본 발명의 제3 실시 형태의 연상 메모리의 스텝 S102에서의 동작 상태의 일례를 도시한 설명도이다.
도23은, 본 발명의 제3 실시 형태의 연상 메모리의 스텝 S105에서의 동작 상태의 일례를 도시한 설명도이다.
도24는, 본 발명의 제4 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다.
도25는, 본 발명의 제4 실시 형태의 연상 메모리에 있어서의 1차 연상 메모리의 일구성예를 도시한 블럭도이다.
도26은, 본 발명의 제5 실시 형태의 연상 메모리의 일구성예를 도시한 블럭도이다.
도27은, 본 발명의 연상 메모리를 전송 가부 판정에 이용한 본 발명의 네트워크 기기의 일구성예를 도시한 블럭도이다.
도28은, 종래의 연상 메모리의 일구성예를 도시한 블럭도이다.
도29는, 종래의 연상 메모리 셀의 일구성예를 도시한 회로도이다.
도30은, 종래의 연상 메모리의 동작예를 도시한 도이다.
도31은, 종래의 연상 메모리의 동작예를 설명하는 타이밍 차트이다.
도32는, 종래의 연상 메모리로 복수의 네트워크 어드레스의 검색을 행한 경우의 동작예를 도시한 도이다.
도33은, 종래의 컴퓨터 네트워크의 구성의 접속예를 도시한 도이다.
도34는, 종래의 연상 메모리를 경유지 네트워크 어드레스 계산에 이용한 종 래의 네트워크 기기의 일구성예를 도시한 블럭도이다.
[제1 실시예의 구성]
다음에, 본 발명의 제1 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도1은 본 발명의 m어의 연상 메모리(1)의 구성예를 도시한 블럭도이다. 연상 메모리(1)는 클럭 신호(41), 개시 신호(42) 및 r개의 검색 데이터(3-1 내지 3-r)에 의해 구성되는 입력 데이터(2)를 입력으로 하고, m개의 일치 신호(5-1 내지 5-m)를 출력으로 한다. 또한, 연상 메모리(1)는 m어의 단일 영역 검색용 연상 메모리(36-1 내지 36-r), 주 제어 회로(6), 논리곱수단(39-1 내지 39-m) 및 기억 수단(43-1 내지 43-m)을 가지고 있다.
주 제어 회로(6)는 클럭 신호(41), 개시 신호(42)를 입력으로 하고, 기억 제어 신호(12), 1차 검색 허가 신호(10-1 내지 10-m) 및 2차 검색 허가 신호(11-1 내지 11-r)를 출력으로 한다. 주 제어 회로(6)는 쓰기 및 읽기가 가능한 내부 변수(28)를 가지고 있다. 내부 변수(28)의 값을 p로 나타낸다. 주 제어 회로(6)는 개시 신호(42)가 유효 상태일 때 입력 데이터(2)의 검색 동작을 개시하고, 클럭 신호(41)에 동기화하여 기억 제어 신호(12), 1차 검색 허가 신호(10-1 내지 10-m) 및 2차 검색 허가 신호(11-1 내지 11-r)를 도5에 도시한 본 발명의 제1 실시 형태의 연상 메모리 동작을 설명하는 순서도에 따라서 출력한다.
i번째 단일 영역 검색용 연상 메모리(36-i)는 검색 데이터(3-i), 1차 검색 허가 신호(10-i), 2차 검색 허가 신호(11-i) 및 m개의 공통 일치선(38-1 내지 38- m)을 입력으로 하고, 단일 영역에서의 검색 결과로서 m개의 일치선(37-i-1 내지 37-i-m)을 출력한다. 단일 영역 검색용 연상 메모리(36-i)의 단일 영역에서의 검색 동작은 1차 검색 허가 신호(10-i), 2차 검색 허가 신호(11-i)에 의해 다음과 같이 제어된다. 1차 검색 허가 신호(10-i)가 유효 상태인 경우에는 검색 데이터(3-i)와 내부에 저장한 기억 데이터를, 대응하는 마스크 정보를 고려하여 비교하는 1차 검색을 행하여 결과를 일치선(37-i-1 내지 37-i-m)에 출력한다. 2차 검색 허가 신호(11-i)가 유효 상태인 경우에는 내부에 저장한 기억 데이터와, 마스크 정보의 양 쪽 또는 한 쪽을 이용하여 m개의 공통 일치선(38-1 내지 38-m)의 상태에 따른 중간 데이터를 생성하고, 중간 데이터에 의한 2차 검색을 행한 결과를 일치선(37-i-1 내지 37-i-m)에 출력한다. 중간 데이터에 의한 2차 검색으로서는, 연상 메모리(1)를, i번째 단일 영역 검색용 연상 메모리(36-i)를 단독으로 구성하여 1차 검색에 이어서 2차 검색을 행한 경우에, 검색 데이터(3-i)와 마스크 정보를 고려하여 일치하는 기억 데이터 중에서 가장 마스크 정보의 유효 상태의 비트수가 적은 기억 데이터에 대응하는 일치선(37-i-1 내지 37-i-m)에만 유효 상태를 출력할 수 있는 것으로 한다.
단, i번째 단일 영역 검색용 연상 메모리(36-i)는 1차 검색 허가 신호(10-i), 2차 검색 허가 신호(11-i)가 모두 무효 상태인 경우에는 m개의 일치선(37-i-1 내지 37-i-m)에 모두 공통 일치선(38)의 유효 상태를 출력한다.
본 예에서는 검색 데이터(3-1)의 우선순위를 가장 높은 1이라 하고, 검색 데이터(3-2)의 우선순위를 2, 이하 마찬가지로 검색 데이터(3-r)의 우선순위를 최저 의 r이라고 가정한다. 여기서, 각 검색 데이터(3-1 내지 3-r)의 비트수는 동일할 필요는 없다. 또한, 검색 데이터(3-1 내지 3-r)는 각각 대응하는 단일 영역 검색용 연상 메모리(36-1 내지 36-r)에 입력되는 것이면, 입력 데이터(2) 중에서의 순서는 임의이다. 또한, 연상 메모리(1) 내부에서의 r개의 단일 영역 검색용 연상 메모리(36-1 내지 36-r)의 순서도, 접속 관계만 대응이 취해진다면 임의인 것은 물론이다.
j번째 논리곱수단(39-j)은 r개의 일치선(37-j-1 내지 37-j-r) 및 1개의 공통 일치선(38-j)을 입력으로 하고, 공통 일치선(38)의 유효 상태를 진으로 하는 논리곱연산을 행한 결과를 논리곱신호(40-j)로서 출력한다. 본 예에서는, 논리곱 신호(40-j)와 일치 신호(5-j)는 동일하다.
j번째 기억 수단(43-j)은 논리곱 신호(40-j) 및 기억 제어 신호(12)를 입력으로 하고, 공통 일치선(38-j)을 출력으로 한다. 기억 제어 신호(12)의 상태에 따라서, 공통 일치선(38-j)의 상태를 유지, 또는 논리곱 신호(40-j)의 값을 기억, 또는 공통 일치선(38)의 유효 상태로 초기화의 동작을 행한다.
도2는 본 발명의 제1 실시 형태의 연상 메모리 일구성예를 상세하게 도시한 블럭도이다. 본 예에서는, 단일 영역 검색용 연상 메모리(36-1)는 n비트 m어, 단일 영역 검색용 연상 메모리(36-r)는 s비트 m어와 1어를 구성하는 비트수가 다를 뿐이고 내부의 구성은 동일하다.
단일 영역 검색용 연상 메모리(36-1)는 n비트의 연상 메모리 워드(44-1-1 내지 44-m-1)와, 제어 회로(45-1)를 가지고 있다. 단일 영역 검색용 연상 메모리(36-r)는 s비트의 연상 메모리 워드(44-1-r 내지 44-m-r)와, 제어 회로(45-r)를 갖고 있다.
j번째 연상 메모리 워드(44-j-1)는 n개의 데이터 셀(8-j-1-1 내지 8-j-n-1) 및 n개의 마스크 셀(9-j-1-1 내지 9-j-n-1)을 가지고 있다. j번째의 연상 메모리 워드(44-j-r)는 s개의 데이터 셀(8-j-1-r 내지 8-j-S-r) 및 s개의 마스크 셀(9-j-1-r 내지 9-j-s-r)을 가지고 있다.
[제1 실시예의 단일 영역 검색용 연상 메모리의 구성]
다음에 상술한 단일 영역 검색용 연상 메모리(36)의 구성예를 도3을 이용하여 설명한다. 단일 영역 검색용 연상 메모리(36)는 n비트 2입력 1출력 인에이블 부착 셀렉터(82)와, n비트 m어의 연상 메모리 워드(44-1 내지 44-m)와, 제어 회로(45)와, 논리 게이트(58-1 내지 58-n)와, 저항(57-1 내지 57-n)을 가지고 있다. j번째 연상 메모리 워드(44-j)는 n개의 연상 메모리 셀(83-j-1 내지 83-j-n)을 가지고 있다. 연상 메모리 워드(44-j)에는 대응하는 데이터 워드선(53-j)과, 마스크 워드선(54-j)과, 공통 일치선(38-j) 및 비교 제어 신호(85)가 입력을 위해 접속되고, 대응하는 일치선(37-j) 및 n개의 일치 데이터 중간 논리선(52-1 내지 52-n)이 출력을 위해 접속되고, n개의 비트선(51-1 내지 51-n)이 입출력을 위해 접속되어 있다.
또한, 본 예에서는 마스크 정보의 마스크 유효 상태를 "0", 마스크 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 기억 데이터와 마찬가지로, 일치 데이터 논리합선(52-1 내지 52-n)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(37-1 내지 37-m), 공통 일치선(38-1 내지 38-m)의 유효 상태를 "1", 무효 상태를 "0"으로 한다.
일치선(37-1 내지 37-m)은 미리 하이레벨로 프리차지되어 유효 상태 "1"이 되어 있는 것으로 한다.
j번째 연상 메모리 워드(44-j)의 k비트째의 연상 메모리 셀(83-j-k)에는 대응하는 데이터 워드선(53-j)과, 마스크 워드선(54-j)과, 공통 일치선(38-j) 및 비교 제어 신호(85)가 입력을 위해 접속되고, 대응하는 일치선(37-j) 및 일치 데이터 중간 논리선(52-k)이 출력을 위해 접속되고, 비트선(51-k)이 입출력을 위해 접속되어 있다.
각 연상 메모리 셀(83-j-k)은 비트선(51-k)을 통하여 외부로부터 입력되는 기억 데이터의 대응하는 비트 정보를 저장하는 데이터 셀(8-j-k)과, 데이터 셀(8-j-k)에 기억된 비트 정보와 외부로부터 비트선(51-k)을 통하여 입력되는 정보를 비교하는 비교기(84-j-k)와, 외부로부터 비트선(51-k)을 통하여 입력되는 마스크 정보의 대응하는 비트 정보를 저장하는 마스크 셀(9-j-k) 및 논리 게이트(56-j-k)를 구비하고 있다. 여기서, 마스크 셀(9-j-k)에 저장된 비트 정보가 마스크 정보의 마스크 유효 상태인 경우에는, 대응하는 데이터 셀(8-j-k)에는 기억 데이터의 무효 상태를 저장한다.
비교기(84-j-k)는 대응하는 비트선(51-k)과 그에 동일한 연상 메모리 셀(83-j-k) 중 데이터 셀(8-j-k)에 저장되어 있는 기억 데이터와, 마스크 셀(9-j-k)에 저장되어 있는 마스크 정보 및 비교 제어 신호(85)를 입력으로 한다. 비교기(84-j- k)는 비교 제어 신호(85)가 무효 상태 "0"이며, 또한 마스크 정보가 마스크 유효 상태 "0"이면, 대응하는 일치선(37-j)을 해방 상태로 하고, 그 이외의 경우에는 비트선(51-k)의 값과 기억 데이터가 일치하면 대응하는 일치선(37-j)을 개방 상태로 하고, 일치하지 않으면 무효 상태 "0"을 출력한다. 연상 메모리 워드(44-j) 중 n개의 비교기(84-j-1 내지 84-j-n)가 모두 일치선(37-j)을 개방 상태로 하고 있을 때에 일치선(37-j)은 유효 상태 "1"이 되고, 그 이외의 경우에는 무효 상태 "0"이 되는, 일치선(37)의 유효 상태 "1"을 진으로 한 와이어드 AND 논리 접속을 구성하고 있다. 즉, 검색 동작시에는 비교 제어 신호(85)가 무효 상태 "0"이며, 또한 마스크 정보가 마스크 유효 상태 "0"이므로 비교 대상으로부터 제외된 비트를 제외하고, 연상 메모리 워드(44-j)가 저장하고 있는 기억 데이터와 비트선(51-1 내지 51-n)이 완전히 일치하는 경우에 한하여 일치선(37-j)은 유효 상태 "1"이 되고, 그 이외의 경우에는 무효 상태 "0"이 된다. 물론 같은 동작이 되도록 통상의 논리 게이트를 이용하여 구성해도 상관없다.
논리 게이트(56-j-k)는 동일 연상 메모리 워드(44-j) 중 공통 일치선(38-j)이 유효 상태 "1"이며, 또한 동일 연상 메모리 셀(83-j-k) 중 데이터 셀(8-j-k)에 저장된 기억 데이터가 유효 상태일 때에 대응하는 일치 데이터 중간 논리선(52-k)에 "0"을 출력하고, 그 이외의 경우에는 개방 상태로 한다. 여기서 본 예에서는 기억 데이터의 유효 상태가 "1"이므로, 데이터 셀(8-j-k)에 저장된 기억 데이터가 "1"이며, 또한 일치선(5-j)이 "1"일 때에 대응하는 일치 데이터 중간 논리선(52-k)에 "0"을 출력하고, 그 이외의 경우에는 해방 상태를 출력한다.
일치 데이터 중간 논리선(52-1 내지 52-n)은 저항(57-1 내지 57-n)에 의해 풀업되어 있고, 대응하는 m개의 논리 게이트(56-1-1 내지 56-m-n)와 와이어드 논리 접속을 구성하고 있다. 따라서, 종래의 연상 메모리(101)의 일치 데이터 중간 논리선(114-1 내지 114-n)과 마찬가지로, 접속되어 있는 m개의 논리 게이트(56)가 모두 일치 데이터 중간 논리선(52)을 개방 상태로 하고 있을 때에, 일치 데이터 중간 논리선(52)은 "1"이 되고, 그 이외의 경우에는 "0"이 된다. 즉 "1"을 진으로 한 와이어드 AND 접속으로 되어 있다. 물론 같은 동작이 되도록 통상의 논리 게이트를 이용하여 구성해도 좋다.
논리 게이트(58-1 내지 58-n)는 대응하는 일치 데이터 중간 논리선(52-1 내지 52-n)의 논리 상태를 반전하여 중간 데이터선(92-1 내지 92-n)으로서 출력한다.
따라서, 중간 데이터선(92-k)에는 m개의 논리 게이트(56-1-k 내지 56-m-k)와 일치 데이터 중간 논리선(52-k), 저항(57-k) 및 논리 게이트(58-k)에 의해 검색 동작시에 유효 상태 "1"이 되어 있는 일치선(37-1 내지 37-m)을 가지는 모든 연상 메모리 셀(83-1-k 내지 83-m-k) 중 데이터 셀(8-1-1 내지 8-m-k)에 저장되어 있는 기억 데이터끼리를 기억 데이터의 유효 상태를 진으로 한 논리합연산을 행한 결과를 얻을 수 있게 된다. 본 예에서는 기억 데이터의 유효 상태 "1"을 진으로 한 논리합연산을 행한 결과를 얻을 수 있다. 물론 같은 동작이 되도록 통상의 논리 게이트를 이용하여 구성해도 상관없다. 이들 동작에 의해, 중간 데이터선(92-1 내지 92-n)에는 검색 동작시에 검색 데이터(3)와 일치한 기억 데이터 중에서, 가장 무효 상태 "0"의 비트수가 적은 기억 데이터와 동일한 값이 출력되게 된다.
제어 회로(45)는 1차 검색 허가 신호(10), 2차 검색 허가 신호(11)를 입력으로 하고, 비교 제어 신호(85), 선택 신호(86) 및 무효화 신호(87)를 출력한다. 제어 회로(45)는 단일 영역 검색용 연상 메모리(36)의 검색 동작을 제어하기 위해 1차 검색 허가 신호(10), 2차 검색 허가 신호(11)가 양 쪽 모두 무효 상태 "0"인 경우에는 무효화 신호(87)에 유효 상태 "1"을 출력한다. 1차 검색 허가 신호(10)가 유효 상태 "1"인 경우에는 무효화 신호(87)에 유효 상태 "0"을, 선택 신호(86)에 무효 상태 "0"을, 비교 제어 신호(85)에 무효 상태 "0"을 출력한다. 2차 검색 허가 신호(11)가 유효 상태 "1"인 경우에는 무효화 신호(87)에 유효 상태 "0"을, 선택 신호(86)에 무효 상태 "1"을, 비교 제어 신호(85)에 무효 상태 "1"을 출력한다.
n비트 2입력 1출력 인에이블 부착 셀렉터(82)는 선택 신호(86), 무효화 신호(87), 중간 데이터선(92-1 내지 92-n), 검색 데이터(3-1 내지 3-n)를 입력으로 하고, 비트선(51-1 내지 51-n)을 출력으로 한다. n비트 2입력 1출력 인에이블 부착 셀렉터(82)는, 무효화 신호(87)가 유효 상태 "1"일 때에는 비트선(51-1 내지 51-n)에 모든 연상 메모리 워드(44-1 내지 44-m)의 비교 결과가 일치하게 되는 검색 무효 데이터를 출력하고, 그 이외의 경우에는, 선택 신호(86)가 무효 상태 "0"인 경우에는 검색 데이터(3-1 내지 3-n)를, 선택 신호(86)가 유효 상태 "1"인 경우에는 중간 데이터선(92-1 내지 92-n)을 비트선(51-1 내지 51-n)에 출력한다.
이상 설명한 바와 같이, 본 발명의 제1 실시 형태의 연상 메모리에 있어서의 단일 영역 검색용 연상 메모리(36)의 구성과, 종래의 연상 메모리(101)의 구성을 비교하면, 공통 일치선(38-1 내지 38-m)이 추가되어 있는 점, 논리 게이트(56-j-1 내지 56-j-n)의 입력이 일치선(105-j)으로부터 공통 일치선(38-j)으로 변경되어 있는 점, n비트 래치(121)가 삭제되어 있는 점, n비트 2입력 1출력 셀렉터(123)가 n비트 2입력 1출력 인에이블 부착 셀렉터(82)로 변경되어 있는 점 및 제어 회로(45)에의 입력으로부터 클럭 신호(131)가 삭제되어 1차 검색 신호(10), 2차 검색 신호(11)가 추가되어 있는 점만이 다르고, 다른 부분은 마찬가지로 구성된다. 따라서, 단일 영역 검색용 연상 메모리(36)의 외부에서, 가령 공통 일치선(38-1 내지 38-m)을, 각각 래치를 통하여 대응하는 일치선(37-1 내지 37-m)과 결선한 경우에는 1차 검색 허가 신호(10)에 유효 상태를 인가한 후, 2차 검색 허가 신호(11)에 유효 상태를 인가함으로써, 종래의 연상 메모리(101)와 같은 동작으로 입력한 검색 데이터(3-1 내지 3-n)와, 대응하는 마스크 정보를 고려하여 비교한 결과 일치하는 기억 데이터 중에서 마스크 정보의 마스크 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(37)에만 유효 상태를 출력하는 것이 가능한 것은 명백하다.
[제1 실시예의 구성 상세]
다음에, 상술한 연상 메모리 셀(83)의 구성예를 도4를 이용하여 설명한다. 도29에 도시한 종래의 연상 메모리 셀(107)과 비교하면 알 수 있는 바와 같이, 본 발명의 연상 메모리 셀(83)은 공통 일치선(38)이 추가되어 있는 점 및 논리 게이트(56)를 구성하는 MOS 트랜지스터(T10)(214)를 도통 상태로 하기 위한 신호가 일치선(37)으로부터 공통 일치선(38)으로 변경되어 있는 점을 제외하면, 종래의 연상 메모리 셀(107)과 마찬가지이다.
여기서, 도3의 n비트 2입력 1출력 인에이블 부착 셀렉터(82)에 유효 상태 "1"을 입력하였을 때에 비트선(51a, 51b)에 출력되는 검색 무효 데이터에 대해 설명한다. 검색 무효 데이터로서 도3의 n비트 2입력 1출력 인에이블 부착 셀렉터(82)는 비트선(51-1 내지 51-n)에 대응하는 모든 비트선(51a, 51b)의 세트에 "0"을 출력한다.
종래의 연상 메모리 셀(107)과 마찬가지로, 데이터를 입력하는 경우 및 유효한 검색 데이터의 입력을 행하는 경우에는, 비트선(51b)에는 비트선(51a)의 값을 반전한 값을 입력하므로 비트선(51a, 51b)이 모두 "0"으로는 되지 않는다.
비교기(84)는 비트선(51a, 51b)이 모두 "0"인 경우, 비트선(13a, 13b) 사이에 직렬로 삽입된 MOS 트랜지스터(T3)(205)와 MOS 트랜지스터(T4)(206) 중 어느 한 쪽이 도통 상태가 되어도 MOS 트랜지스터(T3)(205)와 MOS 트랜지스터(T4)(206)의 접속점의 전위는 로우 레벨이고, MOS 트랜지스터(T5)(207)는 도통 상태가 되지 않는다. 따라서, 비교기(84)는 일치선(37)을 해방 상태로 하게 된다.
본 예에서는 비트선(51a, 51b)을 모두 "0"으로 함으로써 검색 무효 데이터의 기능을 실현하였지만, 비교기(84)의 구성에 따라서 검색 무효 데이터로서 다른 상태를 선택 가능한 것은 물론이다.
상술한 바와 같이 본 발명의 연상 메모리 셀(83)은 종래의 연상 메모리 셀(107)과 동일한 19개의 트랜지스터로 구성할 수 있고, 회로 규모는 바뀌지 않는다. 1024 워드, 32 비트의 경우에는 연상 메모리 셀 전체로 약 62만 트랜지스터의 회로 규모가 된다. 연상 메모리(1)에 있어서, 주 제어 회로(6)는 500 트랜지스터 정도로 구성할 수 있고, 논리곱 수단(39)과 기억 수단(43)은 1어당 50 트랜지스터 정도로 구성할 수 있으므로, 전술한 1024 워드, 32 비트인 경우에 종래의 연상 메모리(101)와 비교하여 수%의 회로 규모 증가밖에 하지 않는다는 것을 알 수 있다.
[제1 실시예의 동작]
다음에 도면을 참조하여 본 발명의 제1 실시 형태의 연상 메모리의 복수의 검색 데이터로 구성되는 입력 데이터에 관한 검색 동작에 대해 설명한다. 도5는 본 발명의 제1 실시 형태의 연상 메모리의 복수의 검색 데이터로 구성되는 입력 데이터에 대한 검색 동작시의 동작을 도시한 순서도이다.
또한, 순서도의 각 스텝에 대해 연상 메모리(1)를, 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우를 예로 하여 도6, 도7, 도8 및 도9를 이용하여 구체적으로 설명한다. 데이터 전송시의 9비트의 송출원 어드레스(1. 2. 6)를 검색 데이터(3-1)로 하고, 9비트의 목적지 어드레스(2. 3. 5)를 검색 데이터(3-2)로 한다. 여기서 검색 데이터(3-1)의 우선순위를 가장 높은 1이라 하고, 검색 데이터(3-2)의 우선순위를 2라 한다. 도6, 도7, 도8 및 도9에 있어서, 연상 메모리(1)는 9비트 5어의 단일 영역 검색용 연상 메모리(36-1 및 36-2)에 의해 구성되는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 송출원 네트워크 어드레스 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터, 9비트의 마스크 정보를 단일 영역 검색용 연상 메모리(36-1)의 전송 규칙에 대응하는 연상 메모리 워드(44-1-1 내지 44-5-1)의 각각 기억 데이터, 마스크 정보로서 저장하는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 목 적지 네트워크 어드레스 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터, 9비트의 마스크 정보를 단일 영역 검색용 연상 메모리(36-2)의 전송 규칙에 대응하는 연상 메모리 워드(44-1-2 내지 44-5-2)의 각각 기억 데이터, 마스크 정보로서 저장하는 것으로 한다. n비트 2입력 1출력 인에이블 부착 셀렉터(82-1, 82-2)로부터 출력되는 값을 각각 비트선 데이터(95-1, 95-2)로 나타내는 것으로 한다. 또한, 단일 영역 검색용 연상 메모리(36-1)의 중간 데이터선(92)의 값을 중간 데이터(93-1), 단일 영역 검색용 연상 메모리(36-2)의 중간 데이터선(92)의 값을 중간 데이터(93-2)로 나타내는 것으로 한다.
모든 일치선(37-1-1 내지 37-m-r)은 미리 유효 상태 "1"에 프리차지되어 있는 것으로 한다.
[스텝 S100]
개시 신호(42)가 유효 상태 "1"이 되면 검색 동작이 개시된다. 주 제어 회로(6)는 클럭 신호(41)에 동기화하여 도5의 순서도의 스텝 S100의 동작을 실행하여 내부 변수(28)의 값(p)은 1로 초기화된다. 또한, 주 제어 회로(6)는 기억 제어 신호(12)에 기억 수단(43-1 내지 43-m)을 공통 일치선(38-1 내지 38-m)의 유효 상태 "1"로 초기화하기 위한 정보를 출력한다. 또한, 모든 1차 검색 허가 신호(10-1 내지 10-r) 및 모든 2차 검색 허가 신호(11-1 내지 11-r)에는 무효 상태 "0"을 출력한다.
도6은 연상 메모리(1)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의 스텝 S100에서의 동작 상태를 설명하는 도면이다. 모든 1차 검색 허가 신호(10-1 내지 10-2), 2차 검색 허가 신호(11-1 내지 11-2)가 무효 상태 "0"이므로 무효화 신호(87-1, 87-2)는 모두 유효 상태 "1"이 되고, n비트 2입력 1출력 인에이블 부착 셀렉터(82-1, 82-2)로부터 출력되는 비트선 데이터(95-1, 95-2)는 모두 검색 무효화 데이터가 된다. 따라서, 일치선(37-1-1 내지 37-5-1) 및 일치선(37-1-2 내지 37-5-2)은 모두 유효 상태 "1"을 유지한다. 또한, 기억 수단(43-1 내지 43-5)의 출력인 공통 일치선(38-1 내지 38-5)은 기억 제어 신호(12)에 의해 유효 상태 "1"로 초기화되어 있다. 그로 인해, 논리곱 신호(40-1 내지 40-5)는 모두 "1"이 된다. 그 결과로서, 중간 데이터(93-1)는 연상 메모리 워드(44-1-1 내지 44-1-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "001. 010. 110"이 된다. 또한, 중간 데이터(93-2)는 연상 메모리 워드(44-2-1 내지 44-2-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "011. 011. 101"이 된다.
[스텝 S101]
다음에, 클럭 신호(41)에 동기화하여 주 제어 회로(6)의 동작은 도5의 순서도의 스텝 S101로 이행하여 모든 1차 검색 허가 신호(10-1 내지 10-r)에 유효 상태 "1"을 출력하고, 모든 2차 검색 허가 신호(11-1 내지 11-r)에 무효 상태 "0"을 출력한다. 또한, 스텝 S101에서의 논리곱 신호(40-1 내지 40-m)의 값을 다음 스텝 S102로 이행할 때에 기억 수단(43-1 내지 43-m)에 기억시키기 위한 신호를 기억 제어 신호(12)에 출력한다.
도7은 연상 메모리(1)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)에의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의 스텝 S101에서의 동작 상태를 설명하는 도면이다.
단일 영역 검색용 연상 메모리(36-1)에 있어서는 1차 검색 허가 신호(10-1)가 유효 상태 "1"이므로 n비트 2입력 1출력 인에이블 부착 셀렉터(82-1)는 검색 데이터(3-1)의 값 "001. 010. 110"을 비트선 데이터(95-1)로서 출력하고, 비교 제어 신호(85-1)에는 무효 상태 "0"이 출력된다. 그로 인해, 비트선 데이터(95-1)의 값과, 연상 메모리 워드(44-1-1 내지 44-5-1)에 저장되어 있는 기억 데이터를 대응하는 마스크 정보도 고려하여 비교를 행하여, 결과적으로 일치선(37-1-1, 37-2-1, 37-3-1, 37-4-1 및 37-5-1)이 유효 상태 "1"이 된다.
단일 영역 검색용 연상 메모리(36-2)에 있어서는 1차 검색 허가 신호(10-2)가 유효 상태 "1"이므로 n비트 2입력 1출력 인에이블 부착 셀렉터(82-2)는 검색 데이터(3-2)의 값 "010. 011. 101"을 비트선 데이터(95-2)로서 출력하고, 비교 제어 신호(85-2)에는 무효 상태 "0"이 출력된다. 그로 인해, 비트선 데이터(95-2)의 값과, 연상 메모리 워드(44-1-2 내지 44-5-2)에 저장되어 있는 기억 데이터를 대응하는 마스크 정보도 고려하여 비교를 행하여, 결과적으로 일치선(37-1-2, 37-3-2 및 37-5-2)이 유효 상태 "1"이 되고, 일치선(37-2-2 및 37-4-2)은 무효 상태 "0"이 된다.
기억 수단(43-1 내지 43-5)은 스텝 S100에서 초기화된 값 "1"을 공통 일치선(38-1 내지 38-5)에 출력하고 있으므로 논리곱 신호(40-1, 40-3 및 40-5)가 "1"이 되고, 논리곱 신호(40-2 및 40-4)는 "0"이 된다. 논리곱 신호(40-1 내지 40-5)의 값은 기억 제어 신호(12)에 의해 다음 스텝으로 이행할 때에 기억 수단(43-1 내지 43-5)에 기억된다.
[스텝 S102]
다음에, 클럭 신호(41)에 동기화하여 주 제어 회로(6)의 동작은 도5의 순서도의 스텝 S102로 이행하여 1차 검색 허가 신호(10-1 내지 10-r), 2차 검색 허가 신호(11-1 내지 11-r) 중에서 우선순위가 가장 높은 1인 단일 영역 검색용 연상 메모리(36-1)에 대응하는 2차 검색 허가 신호(11-1)에만 유효 상태 "1"을 출력하고, 다른 신호에는 무효 상태 "0"을 출력한다. 또한, 스텝 S102에서의 논리곱 신호(40-1 내지 40-m)의 값을 다음 스텝 S103으로 이행할 때에 기억 수단(43-1 내지 43-m)에 기억시키기 위한 신호를 기억 제어 신호(12)에 출력한다.
도8은 연상 메모리(1)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의 스텝 S102에서의 동작 상태를 설명하는 도면이다.
기억 수단(43-1 내지 43-5)은 스텝 S101에서 기억된 값을 출력하고 있으므로 공통 일치선(38-1, 38-3 및 38-5)이 "1"이 되고, 공통 일치선(38-2 및 38-4)은 "0"이 된다. 이로 인해, 단일 영역 검색용 연상 메모리(36-1)의 중간 데이터(93-1)는 연상 메모리 워드(44-1-1, 44-3-1 및 44-5-1)에 저장되어 있는 기억 데이터의 논리 합연산 결과 "001. 010. 000"이 된다. 또한, 단일 영역 검색용 연상 메모리(36-2)의 중간 데이터(93-2)는 연상 메모리 워드(44-1-2, 44-3-2 및 44-5-2)에 저장되어 있는 기억 데이터의 논리합연산 결과 "010. 011. 101"이 된다.
우선순위가 가장 높은 1인 단일 영역 검색용 연상 메모리(36-1)에 있어서는, 2차 검색 허가 신호(11-1)가 유효 상태 "1"이므로 n비트 2입력 1출력 인에이블 부착 셀렉터(82-1)는 중간 데이터(93-1)의 값 "001. 010. 000"을 비트선 데이터(95-1)로서 출력하고, 비교 제어 신호(85-1)에는 유효 상태 "1"이 출력된다. 그로 인해, 비트선 데이터(95-1)의 값과, 연상 메모리 워드(44-1-1 내지 44-5-1)에 저장되어 있는 기억 데이터를 대응하는 마스크 정보를 고려하지 않고 그대로 비교를 행하여, 결과적으로 일치선(37-1-1 및 37-3-1)이 유효 상태 "1"이 되고, 일치선(37-2-1, 37-4-1 및 37-5-1)은 무효 상태 "0"이 된다.
단일 영역 검색용 연상 메모리(36-2)에 있어서는 1차 검색 허가 신호(10-2), 2차 검색 허가 신호(11-2) 모두 무효 상태 "0"이므로 무효화 신호(87-2)가 유효 상태 "1"이 되고, n비트 2입력 1출력 인에이블 부착 셀렉터(82-2)는 검색 무효화 데이터를 비트선 데이터(95-2)로서 출력하고, 비교 제어 신호(85-2)에는 무효 상태 "0"이 출력된다. 그로 인해, 일치선(37-1-2 내지 37-5-2)은 모두 유효 상태 "1"이 된다.
일치선(37-1-1 내지 37-5-1), 일치선(37-1-2 내지 37-5-2) 및 공통 일치선(38-1 내지 38-5)의 각각 대응하는 신호의 논리곱 연산 결과로부터 논리곱 신호(40-1 및 40-3)가 유효 상태 "1"이 되고, 논리곱 신호(40-2, 40-4 및 40-5)는 무효 상태 "0"이 된다. 논리곱 신호(40-1 내지 40-5)의 상태는 기억 제어 신호(12)에 의해 다음 스텝으로 이행할 때에 기억 수단(43-1 내지 43-5)에 기억된다.
[스텝 S103 내지 S105]
다음에, 클럭 신호(41)에 동기화하여 주 제어 회로(6)의 동작은 도5의 순서도의 스텝 S103으로 이행하여 내부 변수(28)의 값(p)과, 연상 메모리(1)가 가지는 단일 영역 검색용 연상 메모리(36)의 개수(r)를 비교한다. 값이 일치한 경우에는, 검색 동작은 종료되고, 최종적인 검색 결과가 유효 상태를 출력하고 있는 일치 신호(5-1 내지 5-m)로서 얻게 된다. 불일치의 경우에는 스텝 S104로 진행하여 내부 변수(p)의 값에 1을 가산한 후 스텝 S105로 진행하고, 1차 검색 허가 신호(10-1 내지 10-r), 2차 검색 허가 신호(11-1 내지 11-r) 중에서 우선순위가 내부 변수(28)의 값(p)과 동등한 단일 영역 검색용 연상 메모리(36-p)에 대응하는 2차 검색 허가 신호(11-p)에만 유효 상태 "1"을 출력하고, 다른 신호에는 무효 상태 "0"을 출력한다. 또한, 스텝 S105에서의 논리곱 신호(40-1 내지 40-m)의 값을 다음의 스텝 S103으로 이행할 때에 기억 수단(43-1 내지 43-m)에 기억시키기 위한 신호를 기억 제어 신호(12)에 출력한다. 여기서는, 스텝 S103, S104, S105는 클럭 신호(41)의 동일 상태에서 실행되는 경우를 나타내었지만, 적절하게 클럭 신호(41)에 의해 동작을 분할해도 상관없는 것은 물론이다.
도9는 연상 메모리(1)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의 스텝 S105에서의 동작 상태를 설명하는 도면이다.
기억 수단(43-1 내지 43-5)은 스텝 S102에서 기억된 값을 출력하고 있으므로 공통 일치선(38-1 및 38-3)이 "1"이 되고, 공통 일치선(38-2, 38-4 및 38-5)은 "0"이 된다. 이로 인해, 단일 영역 검색용 연상 메모리(36-1)의 중간 데이터(93-1)는 연상 메모리 워드(44-1-1 및 44-3-1)에 저장되어 있는 기억 데이터의 논리합연산 결과 "001. 010. 000"이 된다. 또한, 단일 영역 검색용 연상 메모리(36-2)의 중간 데이터(93-2)는 연상 메모리 워드(44-1-2 및 44-3-2)에 저장되어 있는 기억 데이터의 논리합연산 결과 "010. 011. 000"이 된다.
단일 영역 검색용 연상 메모리(36-1)에 있어서는 1차 검색 허가 신호(10-1), 2차 검색 허가 신호(11-1) 모두 무효 상태 "0"이므로 무효화 신호(87-1)가 유효 상태 "1"이 되고, n비트 2입력 1출력 인에이블 부착 셀렉터(82-1)는 검색 무효화 데이터를 비트선 데이터(95-1)로서 출력하고, 비교 제어 신호(85-1)에는 무효 상태 "0"이 출력된다. 그로 인해, 일치선(37-1-1 내지 37-5-1)은 모두 유효 상태 "1"이 된다.
내부 변수(28)의 값(p)이 2이므로 우선순위가 2인 단일 영역 검색용 연상 메모리(36-2)에 있어서는 2차 검색 허가 신호(11-2)가 유효 상태 "1"이 되어, n비트 2입력 1출력 인에이블 부착 셀렉터(82-2)는 중간 데이터(3-2)의 값 "010. 011. 000"을 비트선 데이터(95-2)로서 출력하고, 비교 제어 신호(85-2)에는 유효 상태 "1"이 출력된다. 그로 인해, 비트선 데이터(95-2)의 값과, 연상 메모리 워드(44- 1-2 내지 44-5-2)에 저장되어 있는 기억 데이터를, 대응하는 마스크 정보를 고려하지 않고, 그대로 비교를 행하여 결과적으로 일치선(37-3-2)이 유효 상태 "1"이 되고, 일치선(37-1-2, 37-2-2, 37-4-2 및 37-5-2)은 무효 상태 "0"이 된다.
일치선(37-1-1 내지 37-5-1), 일치선(37-1-2 내지 37-5-2) 및 공통 일치선(38-1 내지 38-5)의 각각 대응하는 신호의 논리곱 연산 결과로부터 논리곱 신호(40-3)가 유효 상태 "1"이 되고, 논리곱 신호(40-1, 40-2, 40-4 및 40-5)는 무효 상태 "0"이 된다. 논리곱 신호(40-1 내지 40-5)의 상태는 기억 제어 신호(12)에 의해 다음 스텝으로 이행할 때에 기억 수단(43-1 내지 43-5)에 기억된다.
다음의 클럭 신호(41)에 동기화하여 주 제어 회로(6)의 동작은 도5의 순서도의 스텝 S103으로 이행하여 내부 변수(28)의 값(p)과, 연상 메모리(1)가 가지는 단일 영역 검색용 연상 메모리(36)의 개수(r)를 비교한다. 도9의 예에서는 내부 변수(28)의 값(p)과, 연상 메모리(1)가 가지는 단일 영역 검색용 연상 메모리(36)의 개수(r)는 모두 2이고 검색 결과를 종료한다. 이 때, 일치 신호(5-1 내지 5-5) 중에서 유효 상태 "1"을 출력하고 있는 것은 일치 신호(5-3)뿐이고, 이것이 최종적인 검색 결과로서 얻어지게 된다. 전술한 바와 같이, 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송은 전송 규칙(3)이 적용되어야 할 것이고, 정확한 결과를 얻을 수 있는 것을 알 수 있다.
도5의 순서도의 스텝 S102, 스텝 S105의 직전에 웨이트(wait) 사이클을 삽입하고, 중간 데이터(93-1 내지 93-r)를 저장하기 위한 래치를 삽입함으로써 동작 주 파수를 높게 할 수 있는 것은 물론이다.
또한, 스텝 S105에서는 스텝 S102에서 2차 검색을 행하였을 때에 일치한 워드 중으로부터 2차 검색을 더 행하는 것이므로, 도9에 도시한 스텝 S105에서의 중간 데이터(93-1)의 값과, 도8에 도시한 스텝 S102에서의 중간 데이터(93-1)의 값은 당연히 동일하다. 따라서, 도5의 순서도의 스텝 S105에 있어서, 내부 변수(28)의 값이 p일 때에 2차 검색 신호(11-1 내지 11-p)에 유효 상태를 출력해도 동일한 결과를 얻을 수 있는 것을 알 수 있다.
또한, 도5의 순서도의 스텝 S102에 있어서의 주 제어 회로(6)의 동작을 모든 2차 검색 허가 신호(11-1 내지 11-r)에 유효 상태를 출력하도록 변경하면, 종래의 연상 메모리(101)와 완전히 등가인 검색 동작이 되는 것은 명백하다. 또한, i번째의 검색 데이터(3-i)에 대해 1차 검색 허가 신호(10-i)와 2차 검색 허가 신호(11-i)를 독립으로 제어함으로써, 1개의 연상 메모리(1)를 r개의 종래의 연상 메모리(101)와 등가로 사용할 수 있는 것도 명백하다. 동작을 선택하기 위한 입력 신호를 주 제어 회로(6)에 추가함으로써 본 발명의 도5의 순서도의 동작과, 상술한 복수의 동작을 절환하여 사용할 수 있음은 물론이다.
상술한 바와 같이, 본 발명의 연상 메모리에서는 스텝 S101, 스텝 S102 및 S105에 있어서의 3회의 검색 동작에 의해 전송 가부 판정 연산을 실행하는 것이 가능하다. 본 발명의 연상 메모리에 의한 1회의 검색 동작에 1클럭을 필요로 하면, 전송 가부 판정 연산은 검색 영역의 개수(r)에 1을 가산한 클럭수로 실행할 수 있게 된다.
또한, 상술한 바와 같이, 최종적으로 적용되어야 할 전송 규칙에 대응하는 일치 신호만을 유효 상태로 하므로 전송 규칙의 저장 순서, 저장하는 어의 위치에는 제한이 없다. 따라서, 전송 규칙의 추가, 삭제, 수정시에 소트 처리나 테이블 작성 등의 많은 클럭수가 걸리는 전처리는 불필요하고, 통상의 메모리 액세스에 필요로 하는 시간만으로 전송 규칙의 추가, 삭제, 수정이 가능하다. 이에 의해, 연상 메모리를 관리하는 소프트웨어를 매우 간단하게 하는 것이 가능하다.
또한, 본 발명의 제1 구성예에서는 상술한 바와 같이 종래의 연상 메모리(101)와 비교하여 수%의 회로 규모의 증가로 구성하는 것이 가능하다.
[제1 실시예의 단일 영역 검색용 연상 메모리의 제2 구성]
도10은 본 발명의 제1 실시 형태의 연상 메모리에 있어서의 단일 영역 검색용 연상 메모리의 제2 구성예를 도시한 블럭도이다. 도10에 도시한 제2 구성의 단일 영역 검색용 연상 메모리(22)의 각 구성 요소를 도3에 도시한 단일 영역 검색용 연상 메모리(36)의 구성과 비교하면, n비트 2입력 1출력 인에이블 부착 셀렉터(82)가 n비트 2입력 1출력 셀렉터(96)로 변경된 것과, j번째 일치선(37-j)에 논리 게이트(37-j)가 삽입된 것과, 그에 수반하여 제어 회로(45)로부터 출력되는 무효화 신호(87)가 m개의 논리 게이트(78-1 내지 78-m)에 입력되는 것과, j번째 연상 메모리 워드(70-1) 중 n개의 연상 메모리 셀(69-j-1 내지 69-j-n)로부터 비교 결과로서 출력되는 신호의 명칭이 내부 일치선(97-j)으로 변경된 것 외의 다른 것은 도3에 도시한 단일 영역 검색용 연상 메모리(36)와 마찬가지로 구성된다. 따라서, 단일 영역 검색용 연상 메모리(36)와 다른 점에 대해서만 설명한다.
n비트 2입력 1출력 셀렉터(96)는 선택 신호(86), 중간 데이터선(92-1 내지 92-n), 검색 데이터(3-1 내지 3-n)를 입력으로 하고, 비트선(51-1 내지 51-n)을 출력으로 한다. n비트 2입력 1출력 셀렉터(96)는 선택 신호(86)가 무효 상태인 경우에는 검색 데이터(3-1 내지 3-n)를, 선택 신호(86)가 유효 상태인 경우에는 중간 데이터선(92-1 내지 92-n)을 비트선(51-1 내지 51-n)에 출력한다.
내부 일치선(97-1 내지 97-m)은 도3의 일치선(37-1 내지 37-m)과 마찬가지로 미리 하이 레벨에 프리차지되어 유효 상태 "1"로 되어 있는 것으로 한다. 또한, 도3의 일치선(37-j)과 마찬가지로, j번째의 연상 메모리 워드(44-j) 안의 n개의 비교기(84-j-1 내지 84-j-n)가 모두 내부 일치선(97-j)을 개방 상태로 하고 있을 때, 내부 일치선(97-j)은 유효 상태 "1"을 유지하고, 그 이외의 경우에는 무효 상태 "0"이 되는 내부 일치선(97)의 유효 상태 "1"을 진으로 한 와이어드 AND 논리 접속을 구성하고 있다. 물론 같은 동작이 되도록 통상의 논리 게이트를 이용하여 구성해도 상관없다.
j번째의 논리 게이트(78-j)는 내부 일치선(97-j)과 무효화 신호(87)를 입력으로 하고, 일치선(37-j)을 출력으로 한다. 또한, 무효화 신호(87)가 유효 상태인 경우에는 일치선(37-j)에 공통 일치선(38)의 유효 상태를 출력하고, 그 외의 경우에는 내부 일치선(78-j)의 상태를 일치선(37-j)에 출력한다.
즉, 비트선(51-1 내지 51-n)에 검색 무효화 데이터를 출력하는 기능을 가지는 도3에 도시하는 단일 영역 검색용 연상 메모리(36)와 다르게, 도10에 도시하는 제2 구성의 단일 영역 검색용 연상 메모리(22)에서는 논리 게이트(78-1 내지 78-m) 에 의해 일치선(37-1 내지 37-m)을 제어하는 것에 의해, 1차 검색 허가 신호(10)와 2차 검색 허가 신호(11)가 모두 무효 상태인 경우에는, m개의 일치선(37-1 내지 37-m)에 모두 공통 일치선(38)의 유효 상태를 출력하는 기능을 실현하고 있다. 제2 구성의 단일 영역 검색용 연상 메모리(22)의 경우에서는, 비교기(84-1-1 내지 84-m-n)의 구성에 의존하지 않고, 확실하게 상술한 기능을 실현하는 것이 가능하다. 또한, 논리 게이트(78-1 내지 78-m)의 삽입 위치를 도1의 논리곱수단(39-1 내지 39-m)의 입력으로 이동해도 연상 메모리(1) 전체적으로는 완전히 등가임은 물론이다.
[제2 실시 예의 구성]
다음으로, 본 발명의 제2 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도11은 본 발명의 제2 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다. 도11에 도시한 제2 실시 형태의 연상 메모리(29)는 r개의 단일 영역 검색용 연상 메모리(26-1 내지 26-r)의 각각 j번째의 연상 메모리 워드(27-j-1 내지 27-j-r)의 비교 결과의 출력 신호끼리를 1개의 일치선(37-j)에 와이어드 AND 논리 접속하고, 또한 일치선(37-j)에 다이나믹하게 유지되고 있는 상태를 중간 데이터 생성에 이용하는 것이다. 여기서 일치선(37-j)은 개시 신호(42)가 유효 상태일 때만 유효 상태 "1"에 프리차지되는 것으로 한다. 따라서, 도2에 도시된 제1 실시 형태의 연상 메모리(1)에 있어서의 논리곱수단(39-j)과, 기억 수단(43-j) 및 공통 일치선(38-j)은, 도11에 도시한 제2 실시 형태의 연상 메모리(29)에서는, 와이어드 AND 논리 접속된 일치선(37-j)에 의해 실현되고 있다. 그로 인해, 주 제어 회 로(6)로부터 출력되는 기억 제어 신호(12)는, 어디에도 접속되지 않는다. 또한, 도11에서는 일치선(37-j)의 상태를 일치 신호(5-j)로서 직접 외부에 출력하고 있다. 이러한 외에는, 도2에 도시한 제1 실시 형태의 연상 메모리(1)의 구성과 완전히 동일하여, 복수의 검색 데이터로부터 구성되는 입력 데이터에 대해서 동일한 검색 동작을 실행할 수 있는 것은 명확하다.
도11에 도시한 제2 실시 형태의 연상 메모리(29)에서는, r개의 단일 영역 검색용 연상 메모리(26-1 내지 26-r) 사이의 배선 수는 m개의 일치선(37-1 내지 37-m)뿐이다. 도2에 도시한 제1 실시 형태의 연상 메모리(1)에서는, r개의 단일 영역 검색용 연상 메모리(36-1 내지 36-r) 사이의 배선 수는 m × r개의 일치선(37-1-1 내지 37-m-r)과 m개의 공용 일치선(38-1 내지 38-m)의 합계 (m × (r + 1)) 개이며, 제2 실시 형태의 연상 메모리(29)에서는 배선 수가 큰 폭으로 감소하고 있는 것을 알 수 있다. r개의 단일 영역 검색용 연상 메모리(26-1 내지 26-r) 사이의 배선은 연상 메모리(29)의 전역에 걸쳐서 배선되기 때문에, 배선 용량이 커지게 되어, 유지하고 있는 상태가 천이할 때마다 소비하는 전력은 매우 크다. 따라서, 제2 실시 형태의 연상 메모리(29)에서는 제1 실시 형태의 연상 메모리에 비해, 배선 영역이 크게 감소해 칩 면적이 삭감되는 것과 동시에, 소비 전력을 큰 폭으로 삭감할 수 있다고 하는 이점을 가진다.
도12에 제2 실시 형태의 연상 메모리에 있어서의 단일 영역 검색용 연상 메모리의 일구성예의 블록도를 도시한다. 도12에 도시한 단일 영역 검색용 연상 메모리(26)의 구성은 도3에 도시한 제1 실시 형태의 단일 영역 검색용 연상 메모리(36) 와 비교하면, j번째의 연상 메모리 워드(27-j)로부터 공통 일치선(38-j)이 삭제된 것과, 거기에 따라 j번째의 연상 메모리 워드(27-j)를 구성하는 n개의 연상 메모리 셀(71-j-1 내지 71-j-n) 내의 논리 게이트(56-j-1 내지 56-j-n)의 입력이 공통 일치선(38-j)으로부터 일치선(37-j)으로 변경된 것 외에는 도3에 도시한 제1 실시 형태의 단일 영역 검색용 연상 메모리(36)와 완전히 동일하다.
도12에 도시된 단일 영역 검색용 연상 메모리(26)에서는 출력 신호인 일치선(37-j)을, n개의 논리 게이트(56-j-1 내지 56-j-n)를 와이어드 AND 논리 접속하는 것에 의해 생성하고 있기 때문에, 단일 영역 검색용 연상 메모리(26)의 내부에 있어도 공통 일치선(38-j)을 일치선(37-j)과 공용하는 것이 가능하다.
물론, 와이어드 AND 논리 접속이 아니며 통상의 논리 게이트를 이용해 일치선(37-1 내지 37-m)을 생성하고 있는 경우 및 도10에 도시하듯이 일치선(37-1 내지 37-m)이 논리 게이트(78-1 내지 78-m)로부터 출력되는 단일 영역 검색용 연상 메모리에 대해서도, 일치선(37-j)을 출력하는 논리 게이트로서 무효 상태인 경우만 출력을 구동하고, 유효 상태일 때에는 출력을 개방 상태로 하는 기능을 가지고 있는 논리 게이트를 사용하는 것에 의해, 제2 실시 형태의 연상 메모리(29)의 단일 영역 검색용 연상 메모리(26)로서 이용하는 것이 가능한 것은 물론이다.
또한, 도11에서는 일치선(37-j)의 상태를 일치 신호(5-j)로서 직접 외부에 출력하고 있지만, 일치선(37-j)의 상태를 버퍼에 입력하는 것에 의해 파형을 정형하고 나서 일치 신호(5-j)로서 출력해도 좋다는 것은 물론이다.
[제3 실시 예의 구성]
다음으로, 본 발명의 제3 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도13은 본 발명의 제3 실시 형태의 m어의 연상 메모리(25)의 구성예를 도시한 블록도이다. 본 예의 m어의 연상 메모리(25)의 구성요소를 제1 실시 형태의 연상 메모리(1)와 비교하면, 단일 영역 검색용 연상 메모리(36-1 내지 36-r)가 단일 영역 검색용 연상 메모리(4-1 내지 4-r)로 변경되고 있는 것과, 논리곱수단(39-1 내지 39-m)이 논리곱수단(13-1 내지 13-m)으로 변경되고 있는 것 및 논리곱수단(15-1 내지 15-m)이 추가되고 있는 것만이 다르고, 다른 부분은 동일하게 구성된다. 제1 실시의 연상 메모리(1)를 구성하는 단일 영역 검색용 연상 메모리(36)에서는, 1차 검색 허가 신호(10)가 유효 상태인 경우의 검색 결과도, 2차 검색 허가 신호(11)가 유효 상태인 경우의 검색 결과도, 동일한 일치선(37-1 내지 37-m)에 출력되었지만, 본 예에서는 1차 검색 허가 신호(10)가 유효 상태인 경우의 검색 결과를 출력하는 1차 일치선(17-1 내지 17-m)과, 2차 검색 허가 신호(11)가 유효 상태인 경우의 검색 결과를 출력하는 2차 일치선(18-1 내지 18-m)을 독립적으로 가지는 단일 영역 검색용 연상 메모리(4-1 내지 4-r)에 의해 본 발명의 연상 메모리(25)를 구성한 경우의 예이다. 다음으로, 제1 실시예와 다른 점에 대한 것만을 설명 한다.
i번째의 단일 영역 검색용 연상 메모리(4-i)는 검색 데이터(3-i), 1차 검색 허가 신호(10-i), 2차 검색 허가 신호(11-i) 및 m개의 공통 일치선(38-1 내지 38-m)을 입력으로 하여, 단일 영역에서의 검색 결과를 m개의 1차 일치선(17-i-1 내지 17-i-m) 및 m개의 2차 일치선(18-i-1 내지 18-i-m)으로서 출력한다.
단일 영역 검색용 연상 메모리(4-i)의 단일 영역에서의 검색 동작은 1차 검색 허가 신호(10-i), 2차 검색 허가 신호(11-i)에 의해 다음과 같이 제어된다. 1차 검색 허가 신호(10-i)가 유효 상태인 경우에는 검색 데이터(3-i)와 내부에 저장한 기억 데이터를 대응하는 마스크 정보를 고려하여 비교하는 1차 검색을 행하고, 결과를 1차 일치선(17-i-1 내지 17-i-m)에 출력한다. 2차 검색 허가 신호(11-i)가 유효 상태인 경우에는 내부에 저장한 기억 데이터와 마스크 정보의 양 쪽 또는 한 쪽을 이용하여, m개의 공통 일치선(38-1 내지 38-m)의 상태에 대응하는 중간 데이터를 생성하여, 중간 데이터에 의한 2차 검색을 행한 결과를 2차 일치선(18-i-1 내지 18-i-m)에 출력한다. 중간 데이터에 의한 2차 검색으로서는 연상 메모리(25)를 i번째의 단일 영역 검색용 연상 메모리(4-i) 단독으로 구성하여 1차 검색에 연속하여 2차 검색을 행한 경우에, 검색 데이터(3-i)와 마스크 정보를 고려하여 일치하는 기억 데이터 중에서 가장 마스크 정보의 유효 상태의 비트수가 적은 기억 데이터에 대응하는 2차 일치선(18-i-1 내지 18-i-m)에만 유효 상태를 출력할 수가 있는 것으로 한다.
다만, 1차 검색 허가 신호(10-i)가 무효 상태인 경우에는 m개의 1차 일치선(17-i-1 내지 17-i-m)에 모두 공통 일치선(38)의 유효 상태를 출력하고, 2차 검색 허가 신호(11-i)가 무효 상태인 경우에는 m개의 2차 일치선(18-i-1 내지 18-i-m)에 모두 공통 일치선(38)의 유효 상태를 출력한다.
j번째의 논리곱수단(13-j)은 r개의 1차 일치선(17-j-1 내지 17-j-r), 1개의 공통 일치선(38-j) 및 1개의 일치 신호(5-j)를 입력으로 하여, 공통 일치선(38)의 유효 상태를 진으로 하는 논리곱연산을 행한 결과를 논리곱신호(40-j)로서 출력한다.
j번째의 논리곱수단(15-j)은 r개의 2차 일치선(18-j-1 내지 18-j-r)을 입력으로 하여, 공통 일치선(38)의 유효 상태를 진으로 하는 논리곱연산을 행한 결과를 일치 신호(5-j)로서 출력한다.
도14는 본 발명의 제3 실시 형태의 연상 메모리의 일구성예를 상세하게 도시한 블럭도이다. 본 예에서는, 1번째의 단일 영역 검색용 연상 메모리(4-1)는 n비트 m어의 구성으로 하고, r번째의 단일 영역 검색용 연상 메모리(4-r)는 s비트 m어의 구성으로 하지만, 1어를 구성하는 비트수가 다를 뿐이며 내부의 구성은 완전히 동일하게 한다. 본 예에서는, i번째의 g비트 m어의 단일 영역 검색용 연상 메모리(4-i)는 1차 검색 허가 신호(10-i)가 유효 상태일 때에 검색 동작을 행하는 g비트 m어의 1차 연상 메모리(20-i)와, 2차 검색 허가 신호(11-i)가 유효 상태일 때에 검색 동작을 행하는 g비트 m어의 2차 연상 메모리(21-i)를 독립적으로 가지는 경우에 대한 설명을 한다. 도13의 실시예의 연상 메모리(25)의 단일 영역 검색용 연상 메모리(4-i)는 도14에 도시한 것과 같은 구성으로 한정되지 않고, 예를 들어 일본 특개평 11-073782호 공보에 나타낸 것과 같은 연상 메모리를 이용해도 구성하는 것이 가능한 것은 물론이다.
1차 연상 메모리(20-i)는 검색 데이터(3-i)와, 1차 검색 허가 신호(10-i)와, 공통 일치선(38-1 내지 38-m)을 입력으로 하고, 단일 영역에서의 검색 결과를 1차 일치선(17-1-i 내지 17-m-i)에 출력함과 함께 중간 데이터(93-i)를 출력으로 한다. 다만, 1차 검색 허가 신호(10-i)가 무효 상태인 경우에는 1차 일치선(17-i-1 내지 17-i-m)에 모두 공통 일치선(38)의 유효 상태를 출력한다. 1차 연상 메모리(20-i)는 m개의 연상 메모리 워드(7-1-i 내지 7-m-i)를 가지고 있고, j번째의 연상 메모리 워드(7-j-i)는 g개의 데이터 셀(8-j-1-i 내지 8-j-g-i) 및 g개의 마스크 셀(9-j-1-i 내지 9-j-g-i)을 가지고 있다.
2차 연상 메모리(21-i)는 중간 데이터(93-i)와, 2차 검색 허가 신호(11-i)를 입력으로 하고, 단일 영역에서의 검색 결과를 2차 일치선(18-1-i 내지 18-m-i)에 출력한다. 다만, 2차 검색 허가 신호(11-i)가 무효 상태인 경우에는 2차 일치선(18-i-1 내지 18-i-m)에 모두 공통 일치선(38)의 유효 상태를 출력한다. 2차 연상 메모리(21-i)는 m개의 연상 메모리 워드(24-1-i 내지 24-m-i)를 가지고 있고, j번째의 연상 메모리 워드(24-j-i)는 g개의 데이터 셀(23-j-1-i 내지 23-j-g-i)을 가지고 있다. j번째의 연상 메모리 워드(24-j-i)의 k비트째의 데이터 셀(23-j-k-i)에는 제2의 기억 데이터로서 1차 연상 메모리(20-i)의 대응하는 데이터 셀(8-j-k-i)에 저장하고 있는 기억 데이터와 같은 값을 미리 저장하고 있는 것으로 한다. 다만, 대응하는 마스크 셀(9-j-k)에 저장된 비트 정보가 마스크 유효 상태인 경우에는 데이터 셀(23-j-k)에는 기억 데이터의 무효 상태를 제2의 기억 데이터로서 저장하는 것으로 한다.
[제3 실시 예의 단일 영역 검색용 연상 메모리의 구성]
다음에 상술한 1차 연상 메모리(20)의 구성예를 도15를 이용하여 설명한다. 1차 연상 메모리(20)는 n비트 m어의 연상 메모리 워드(7-1 내지 7-m)와, 논리 게이 트(58-1 내지 58-n)와, 저항(57-1 내지 57-n)을 가지고 있다. j번째의 연상 메모리 워드(7-j)는 n개의 연상 메모리 셀(50-j-1 내지 50-j-n)을 가지고 있다. 연상 메모리 워드(7-j)에는 대응하는 데이터 워드 선(53-j)과 마스크 워드 선(54-j)과, 공통 일치선(38-j) 및 1차 검색 허가 신호(10)가 입력을 위하여 접속되고, 대응하는 1차 일치선(17-j) 및 n개의 일치 데이터 중간 논리선(52-1 내지 52-n)이 출력을 위하여 접속되고, n개의 비트선(51-1 내지 51-n)이 입출력을 위하여 접속되어 있다.
또한 본 예에서는 마스크 정보의 마스크 유효 상태를 "0", 마스크 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 기억 데이터와 마찬가지로, 일치 데이터 논리합선(52-1 내지 52-n)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 1차 일치선(17-1 내지 17-m), 2차 일치선(18-1 내지 18-m) 및 공통 일치선(38-1 내지 38-m)의 유효 상태를 "1", 무효 상태를 "0"으로 한다.
1차 일치선(17-1 내지 17-m)은 미리 하이 레벨에 프리차지되어 유효 상태 "1"이 되어 있는 것으로 한다.
연상 메모리 워드(7-j)의 k비트째의 연상 메모리 셀(50-j-k)에는 대응하는 데이터 워드 선(53-j)과, 마스크 워드 선(54-j)과, 공통 일치선(38-j) 및 1차 검색 허가 신호(10)가 입력을 위하여 접속되고, 대응하는 1차 일치선(17-j) 및 일치 데이터 중간 논리선(52-k)이 출력을 위하여 접속되고, 비트선(51-k)이 입출력을 위하여 접속되고 있다.
각 연상 메모리 셀(50-j-k)은 비트선(51-k)을 통하여 외부로부터 입력되는 기억 데이터의 대응하는 비트 정보를 저장하는 데이터 셀(8-j-k)과, 데이터 셀(8-j-k)에 기억된 비트 정보와 외부로부터 비트선(51-k)을 통하여 입력되는 정보를 비교하는 비교기(55-j-k)와, 외부로부터 비트선(51-k)을 통하여 입력되는 마스크 정보의 대응하는 비트 정보를 저장하는 마스크 셀(9-j-k) 및 논리 게이트(56-j-k)를 갖추고 있다.
여기서, 도15에 도시한 1차 연상 메모리(20)의 각 구성요소는 도3에 도시한 제1의 실시 형태에 있어서의 단일 영역 검색용 연상 메모리(36)의 구성과 비교하면, 외부로부터의 검색 데이터(3-1 내지 3-n)가 비트선(51-1 내지 51-n)에 직접 입력되어, 중간 데이터선(92-1 내지 92-n)의 상태가 중간 데이터(93)로서 직접 외부에 출력되는 것과, 그에 따라 n비트 2입력 1출력 인에이블 부착 셀렉터(82)와 제어 회로(45)가 삭제된 것과, 비교기(55-1-1 내지 55-m-n)에 입력되는 신호가 비교 제어 신호(85)로부터 1차 검색 허가 신호(10)로 변경된 것 및 일치선(37-1 내지 37-m)의 명칭이 1차 일치선(17-1 내지 17-m)으로 변경된 것 외에는 도3에 도시한 단일 영역 검색용 연상 메모리(36)로 완전히 동일하다. 중간 데이터선(92-1 내지 92-n)으로부터 출력되는 중간 데이터(93)도 도3에 도시한 단일 영역 검색용 연상 메모리(36)와 완전히 동일한 조작에 의해 생성된다.
따라서, 제1 실시 형태의 단일 영역 검색용 연상 메모리(36)와 다른 점에 대해서만 설명한다.
비교기(55-j-k)는 대응하는 비트선(51-k)과, 거기에 동일한 연상 메모리 셀(50-j-k) 안의 데이터 셀(8-j-k)에 저장되어 있는 기억 데이터와, 마스크 셀(9- j-k)에 저장되어 있는 마스크 정보 및 1차 검색 허가 신호(10)를 입력으로 하고, 1차 일치선(17-j)을 출력으로 한다. 비교기(55-j-k)는 1차 검색 허가 신호(10)가 유효 상태 "1"이며, 또한 비트선(51-k)의 값과 기억 데이터가 일치하지 않으면 대응하는 1차 일치선(17-j)에 무효 상태 "0"을 출력하고, 그 이외의 경우에는 1차 일치선(17-j)을 개방 상태로 한다. 연상 메모리 워드(7-j) 안의 n개의 비교기(55-j-1 내지 55-j-n)가 모두 1차 일치선(17-j)을 개방 상태로 하고 있을 때, 1차 일치선(17-j)은 유효 상태 "1"이 되고, 그 이외의 경우에는 무효 상태 "0"이 되는 1차 일치선(17)의 유효 상태 "1"을 진으로 한 와이어드 AND 논리 접속을 구성하고 있다. 즉, 1차 검색 허가 신호(10)가 무효 상태 "0"일 때에는 항상 1차 일치선(17-j)을 유효 상태 "1"로 하고, 1차 검색 허가 신호(10)가 유효 상태 "1"일 때에는 마스크 정보가 마스크 유효 상태 "0"이므로 비교 대상으로부터 제외된 비트를 제외하여 연상 메모리 워드(7-j)가 저장하고 있는 기억 데이터와 비트선(51-1 내지 51-n)이 완전하게 일치하는 경우에 한하여 1차 일치선(17-j)은 유효 상태 "1"이 되고, 완전하게 일치하지 않는 경우에는 무효 상태 "0"이 된다. 물론 같은 동작이 되도록 통상의 논리 게이트를 이용해 구성해도 상관없다.
[제3 실시 예의 단일 영역 검색용 연상 메모리의 구성 상세]
다음으로 상술의 연상 메모리 셀(50)의 구성예를 도16을 이용하여 설명한다. 도4에 도시한 제1 실시 형태의 연상 메모리 셀(83)과 비교하면 알 수 있듯이, 본 발명의 연상 메모리 셀(50)은 비교기(55)에 입력되는 신호가 비교 제어 신호(85)에서 1차 검색 허가 신호(10)로 변경된 것과, 일치선(37-1 내지 37-m)의 명칭이 1차 일치선(17-1 내지 17-m)으로 변경된 것, 그에 따라 비교 제어 신호(85)에 의해 도통 상태가 제어되는 M0S 트랜지스터(T7)(209)가 삭제되어, 1차 검색 허가 신호(10)에 의해 도통 상태가 제어되는 M0S 트랜지스터(T12)(216)가 추가되어 있는 것 외에는 도4에 도시한 제1 실시 형태의 연상 메모리 셀(83)과 완전히 동일하게 구성된다. 따라서, 제1 실시 형태의 연상 메모리 셀(83)과 다른 점에 대한 것만을 설명 한다.
비교기(55)는 M0S 트랜지스터(T3)(205), M0S 트랜지스터(T4)(206), M0S 트랜지스터(T5)(207), M0S 트랜지스터(T6)(208) 및 M0S 트랜지스터(T12)(216)에 의해 구성된다. M0S 트랜지스터(T3)(205)와 M0S 트랜지스터(T4)(206)는 비트선(51a, 51b)의 사이에 직렬로 삽입된다. M0S트랜지스터(T3)(205)는 데이터 셀(8) 내의 반전 논리 게이트(G1)(201)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T4)(206)는 데이터 셀(8) 내의 반전 논리 게이트(G2)(202)의 출력이 하이 레벨 때에 도통 상태가 된다. M0S 트랜지스터(T6)(208), M0S 트랜지스터(T12)(216) 및 M0S 트랜지스터(T5)(207)는 1차 일치선(17)과 저전위의 사이에 직렬로 삽입된다. M0S 트랜지스터(T6)(208)는 마스크 셀(9) 내의 반전 논리 게이트(G4)(211)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T12)(216)는 1차 검색 허가 신호(10)가 유효 상태 "1"일 때에 도통 상태가 된다.
M0S 트랜지스터(T5)(207)는 M0S 트랜지스터(T3)(205)와, M0S 트랜지스터(T4)(206)의 접속점의 전위가 하이 레벨일 때에 도통 상태가 된다. 비트선(51a)과 반전 논리 게이트(G1)(201)의 출력이 모두 하이 레벨, 또는 비트선(51b) 과 반전 논리 게이트(G2)(202)의 출력이 모두 하이 레벨일 때에, M0S 트랜지스터(T3)(205)와 M0S 트랜지스터(T4)(206)의 접속점은 하이 레벨이 되어, M0S 트랜지스터(T5)(207)를 도통 상태로 한다.
따라서, 데이터 셀(8)에 저장되어 있는 기억 데이터와, 비트선(51a, 51b) 상의 검색 데이터(3)가 다른 경우에 M0S 트랜지스터(T5)(207)는 도통 상태가 된다. 또한, M0S 트랜지스터(T6)(208)는 마스크 셀(9) 내에 저장되어 있는 마스크 정보가 "0"일 때에는 개방 상태이며, "1"일 때에는 도통 상태가 된다. 1차 일치선(17)은 미리 고전위에 프리차지되어 있는 것으로 한다. 이에 따라, 복수의 연상 메모리 셀(50)이 1차 일치선(17)에 M0S 트랜지스터(T6)(208)를 통하여 접속되어 있을 때, 하나의 연상 메모리 셀(50)에서도 로우 레벨을 출력하고 있으면 1차 일치선(17)은 로우 레벨이 되는 와이어드 AND 접속이 된다.
M0S 트랜지스터(T5)(207)가 도통 상태일 때에, 직렬 접속된 M0S 트랜지스터(T6)(208), M0S 트랜지스터(T12)(216)가 모두 도통 상태인 경우에만 연상 메모리 셀(50)은 1차 일치선(17)에 무효 상태 "0"을 출력하고, 그 외의 때에는 1차 일치선(17)을 개방 상태로 한다. 즉, 마스크 정보가 마스크 유효 상태 "0" 또는 1차 검색 허가 신호(10)가 무효 상태 "0"인 경우에는, 검색 데이터(3)와 기억 데이터의 비교 결과에 의하지 않고 1차 일치선(17)을 개방 상태로 하고, 마스크 정보가 마스크 무효 상태 "1"이며, 1차 검색 허가 신호(10)가 유효 상태 "1"인 경우에는 비트선(51a, 51b) 상의 검색 데이터(3)와 데이터 셀(8)에 저장되어 있는 기억 데이터가 일치하는 경우에 개방 상태로 하고, 다른 경우에는 무효 상태 "0"을 출력 한다.
본 예에서는, 1차 검색 허가 신호(10)에 의해 M0S 트랜지스터(T12)(216)를 제어하는 것으로, 1차 검색 허가 신호(10)가 무효 상태 "0"인 경우에 1차 일치선(17)을 해방 상태로 하는 것을 실현했지만, 제1 실시 형태의 단일 영역 검색용 연상 메모리(36)와 마찬가지로 1차 검색 허가 신호(10)가 무효 상태 "0"인 경우에 비트선(51a, 51b)을 모두 "0"으로 하는 수단을 마련하는 것에 의해서도 실현되는 것은 물론이다. 또한, 도10에 도시한 제1 실시 형태의 제2의 구성의 단일 영역 검색용 연상 메모리(22)와 동일하게, 1차 검색 허가 신호(10)가 무효 상태인 경우에는 1차 일치선을 유효 상태로 하는 논리 게이트를 삽입하는 것에 의해서도 실현되는 것도 물론이다.
다음에 2차 연상 메모리(21)의 구성예를 도17에 도시한다. 2차 연상 메모리(21)는 연상 메모리 워드(24-1 내지 24-m)로부터 구성되어, j번째의 연상 메모리 워드(24-j)는 n개의 연상 메모리 셀(60-j-1 내지 60-j-n)을 갖추고 있다. 연상 메모리 워드(24-j)에는 대응하는 데이터 워드 선(61-j) 및 2차 검색 허가 신호(11)가 입력을 위하여 접속되고, 대응하는 2차 일치선(18-j)이 출력을 위하여 접속되고, n개의 비트선(59-1 내지 59-n)이 입출력을 위하여 접속되어 있다.
j번째의 연상 메모리 워드(24-j)의 k비트째의 연상 메모리 셀(60-j-k)에는, 대응하는 데이터 워드 선(61-j) 및 2차 검색 허가 신호(11)가 입력을 위하여 접속되고, 대응하는 2차 일치선(18-j)이 출력을 위하여 접속되고, 비트선(59-k)이 입출력을 위하여 접속되어 있다. 또한, 연상 메모리 셀(105-j-k)은 제2의 기억 데이터 의 대응하는 비트 정보를 저장하는 데이터 셀(23-j-k)과, 비트선(59-k)을 통하여 입력되는 중간 데이터(93)와 데이터 셀(23-j-k)에 기억된 비트 정보를 비교하는 비교기(62-j-k)를 갖추고 있다.
연상 메모리 셀(60-j-k)에 있어서, 비트선(59-k), 데이터 워드 선(61-j), 데이터 셀(23-j-k)의 동작은 종래의 연상 메모리 셀(107)과 같다.
2차 일치선(18-1 내지 18-m)은 미리 하이 레벨에 프리차지되어 있는 것으로 한다.
비교기(62-j-k)는 2차 검색 허가 신호(11)가 유효 상태 "1"이며, 또한 동일한 연상 메모리 셀(60-j-k) 안의 데이터 셀(23-j-k)에 저장되어 있는 제2의 기억 데이터와 비트선(59-k)의 값이 일치하지 않으면 대응하는 2차 일치선(18-j)에 무효 상태 "0"을 출력하고, 그 이외의 경우에는 2차 일치선(18-j)을 개방 상태로 한다. 따라서, 연상 메모리 워드(24-j) 안의 n개의 비교기(62-j-1 내지 62-j-n)가 모두 2차 일치선(18-j)을 개방 상태로 하고 있을 때, 2차 일치선(18-j)은 유효 상태 "1"이 되고, 그 이외의 경우에는 무효 상태 "0"이 되는 2차 일치선(18)의 유효 상태 "1"을 진으로 한 와이어드 AND 논리 접속을 구성하고 있다. 즉, 2차 검색 허가 신호(11)가 무효 상태 "0"일 때에는 항상 2차 일치선(18-j)을 유효 상태 "1"로 하고, 2차 검색 허가 신호(11)가 유효 상태 "1"일 때에는 연상 메모리 워드(24-j)가 저장하고 있는 기억 데이터와 비트선(59-1 내지 59-n)이 완전하게 일치하는 경우에 한해, 2차 일치선(18-j)은 유효 상태 "1"이 되고, 완전하게 일치하지 않는 경우에는 무효 상태 "0"이 된다. 물론 동일한 동작이 되도록 통상의 논리 게이트를 이용하여 구성해도 상관없다.
다음에, 2차 연상 메모리(21)의 연상 메모리 셀(60)의 구성예를 도18을 이용하여 설명한다. 도16에 도시한 1차 연상 메모리(20)의 연상 메모리 셀(50)과 비교하면 알 수 있듯이, 2차 연상 메모리(21)의 연상 메모리 셀(60)에 있어서의 비트선(59a, 59b), 데이터 워드 선(61) 및 데이터 셀(23)은 1차 연상 메모리(20)의 연상 메모리 셀(50)과 동일하다.
비교기(62)는 M0S 트랜지스터(T23)(225), M0S 트랜지스터(T24)(226), M0S 트랜지스터(T25)(227) 및 M0S 트랜지스터(T32)(236)에 의해 구성된다. M0S 트랜지스터(T23)(225)와 M0S 트랜지스터(T24)(226)는 비트선(59a, 59b)의 사이에 직렬로 삽입된다. M0S 트랜지스터(T23)(225)는 데이터 셀(23) 내의 반전 논리 게이트(G21)(221)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T24)(226)는, 데이터 셀(23) 내의 반전 논리 게이트(G22)(222)의 출력이 하이 레벨일 때에 도통 상태가 된다. M0S 트랜지스터(T32)(236) 및 M0S 트랜지스터(T25)(227)는 2차 일치선(18)과 저전위의 사이에 직렬로 삽입된다. M0S 트랜지스터(T32)(236)는 2차 검색 허가 신호(11)가 유효 상태 "1"일 때에 도통 상태가 된다.
M0S 트랜지스터(T25)(227)는 M0S 트랜지스터(T23)(225)와 M0S 트랜지스터(T24)(226)의 접속점의 전위가 하이 레벨일 때에 도통 상태가 된다. 비트선(59a)과 반전 논리 게이트(G21)(221)의 출력이 모두 하이 레벨, 또는 비트선(59b)과 반전 논리 게이트(G22)(222)의 출력이 모두 하이 레벨일 때에, M0S 트랜지스터(T23)(225)와 M0S 트랜지스터(T24)(226)의 접속점은 하이 레벨이 되어, M0S 트랜지스터(T25)(227)를 도통 상태로 한다.
따라서, 데이터 셀(23)에 저장되어 있는 제2의 기억 데이터와, 비트선(59a, 59b) 상의 중간 데이터(23)가 다른 경우에 M0S 트랜지스터(T25)(227)는 도통 상태가 된다. 2차 일치선(18)은 미리 고전위에 프리차지되어 있는 것으로 한다. 이에 따라, 복수의 연상 메모리 셀(60)이 2차 일치선(18)에 M0S 트랜지스터(T32)(236)를 통하여 접속되어 있을 때, 하나의 연상 메모리 셀(60)에서도 로우 레벨을 출력하고 있으면, 2차 일치선(18)은 로우 레벨이 되는 와이어드 AND 접속이 된다.
M0S 트랜지스터(T25)(227)가 도통 상태일 때에, 직렬 접속된 M0S 트랜지스터(T32)(236)가 도통 상태인 경우에만 연상 메모리 셀(60)은 2차 일치선(18)에 무효 상태 "0"을 출력하고, 그 이외의 때에는 2차 일치선(18)을 개방 상태로 한다. 즉, 2차 검색 허가 신호(11)가 무효 상태 "0"인 경우에는 중간 데이터(23)와 제2의 기억 데이터의 비교 결과에 의하지 않고 2차 일치선(18)을 개방 상태로 하고, 2차 검색 허가 신호(11)가 유효 상태 "1"인 경우에는 비트선(59a, 59b) 상의 중간 데이터(23)와 데이터 셀(23)에 저장되어 있는 제2의 기억 데이터가 일치할 경우에 개방 상태로 하고, 다른 경우에는 무효 상태 "0"을 출력한다.
본 예에서는, 2차 검색 허가 신호(11)에 의해 M0S 트랜지스터(T32)(236)를 제어하는 것으로, 2차 검색 허가 신호(11)가 무효 상태 "0"인 경우에 2차 일치선(18)을 해방 상태로 하는 것을 실현했지만, 제1 실시 형태의 단일 영역 검색용 연상 메모리(36)와 동일하게 2차 검색 허가 신호(11)가 무효 상태 "0"인 경우에 비트선(59a, 59b)을 모두 "0"으로 하는 수단을 마련하는 것에 의해서도 실현될 수 있는 것은 물론이다.
[제3 실시 예의 단일 영역 검색용 연상 메모리의 동작]
다음으로, 상술의 단일 영역 검색용 연상 메모리(4)를, 종래의 연상 메모리(101)의 동작 설명의 때와 마찬가지로 도33의 네트워크 기기(400-1)에 있어서의 경유지 네트워크 어드레스의 계산에 이용한 경우의 동작을 도19를 이용하여 설명한다.
단일 영역 검색용 연상 메모리(4)를 9비트 3어의 구성으로 가정하고, 1차 연상 메모리(20)의 각 연상 메모리 워드(7-1 내지 7-3)에 저장되어 있는 기억 데이터, 마스크 정보에는 도33의 네트워크 기기(400-1)의 네트워크 어드레스(1. *. *) 이외의 접속 정보를 기억하고 있는 것으로 한다. 이 때, 접속 정보 안의 돈케어 "*"상태의 비트는, 마스크 정보의 해당 비트를 마스크 유효 상태 "0"으로 하는 것으로 표현된다. 기억 데이터의 해당 비트 상태는 임의이지만, 본 예에서는 기억 데이터의 무효 상태 "0"을 저장하는 것으로 한다.
즉, 연상 메모리 워드(7-1)에는 (2. *. *)을 구조화 데이터로 표현하기 위해, 기억 데이터에는 2진수로 (010. 000. 000)를, 마스크 정보로서 (111. 000. 000)로 저장하고 있다. 마찬가지로 연상 메모리 워드(7-2)에는 (2. 3. *)을 구조화 데이터로 표현하기 위해, 기억 데이터에는 2진수로 (010. 011. 000)를, 마스크 정보로서 (111. 111. 000)를 저장하고 있다. 연상 메모리 워드(7-3)에는 (3. *. *)을 구조화 데이터로 표현하기 위해, 기억 데이터에는 2진수로 (011. 000. 000)를, 마 스크 정보로서 (111. 000. 000)를 저장하고 있다.
2차 연상 메모리(21)의 각 연상 메모리 워드(24-1 내지 24-3)에 저장되어 있는 제2의 기억 데이터로서, 도33의 네트워크 기기(400-1)의 접속 정보에 있어서 돈케어 "*"상태의 비트를 기억 데이터의 무효 상태 "0"으로 치환한 값을 기억하고 있는 것으로 한다. 즉, 연상 메모리 워드(24-1)에는 (010. 000. 000)을, 연상 메모리 워드(24-2)에는 (010. 011. 000)을, 연상 메모리 워드(24-3)에는 (011. 000. 000)을 각각 저장하고 있다.
또한, 도19에서는 단일 영역 검색용 연상 메모리(4)의 설명을 위해, 외부로부터 공통 일치선(18-1)에는 1차 일치선(17-1)의 값이 입력되고, 공통 일치선(18-2)에는 1차 일치선(17-2)의 값이 입력되고, 공통 일치선(18-3)에는 1차 일치선(17-3)의 값이 입력되어 있는 것으로 한다.
이후, 검색 데이터(112)로서 도33의 PC(401-2)의 8진 표현의 네트워크 어드레스(2. 3. 4)를 입력하여 검색 동작을 행한 경우의 동작 설명을 한다.
미리, 모든 1차 일치선(17-1 내지 17-3) 및 2차 일치선(18-1 내지 18-3)은 유효 상태 "1"에 프리차지되어 있는 것으로 한다.
8진 표현으로 (2. 3. 4)의 검색 데이터(3)를 비트선(51-1 내지 51-9)에 입력하면, 1차 연상 메모리(4)는 마스크 정보에 의한 돈케어 "*"도 고려하여 1차 검색을 실행하고, 1차 연상 메모리(4)의 연상 메모리 워드(7-1)에 저장되어 있는 8진 표현의 (2. *. *)와, 연상 메모리 워드(7-2)에 저장되어 있는 8진 표현의 (2. 3. *)가 비트선(51-1 내지 51-9) 상의 검색 데이터(3)로 일치하고, 연상 메모리 워드(7-3)에 저장되어 있는 8진 표현의 (3. *. *)는 불일치가 된다. 따라서, 1차 일치선(17-1, 17-2)의 2개가 유효 상태 "1"이 되고, 나머지의 1차 일치선(17-3)은 무효 상태 "0"이 된다. 이 때, 상술한 바와 같이 외부로부터, 공통 일치선(18-1)에는 1차 일치선(17-1)의 값 "1"이 입력되고, 공통 일치선(18-2)에는 1차 일치선(17-2)의 값 "1"이 입력되고, 공통 일치선(18-3)에는 1차 일치선(17-3)의 값 "0"이 입력된다.
여기서, 중간 데이터선(92-1)으로부터는 연상 메모리 워드(7-1) 내의 일치 데이터 중간 논리선(52-1)에 대응하는 기억 데이터 "0"과, 연상 메모리 워드(7-2) 내의 일치 데이터 중간 논리선(52-1)에 대응하는 기억 데이터 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이 출력된다. 중간 데이터선(92-2)으로부터는 연상 메모리 워드(7-1) 내의 일치 데이터 중간 논리선(52-2)에 대응하는 기억 데이터 "1"과, 연상 메모리 워드(7-1) 내의 일치 데이터 중간 논리선(52-2)에 대응하는 기억 데이터 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이 출력된다.
이후 마찬가지로, 중간 데이터선(92-3)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 중간 데이터선(92-4)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 중간 데이터선(92-5)으로부터는 "0"과 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이, 중간 데이터선(92-6)으로부터는 "0"과 "1"에 대해서의 "1"을 진으로 한 논리합결과 "1"이, 중간 데이터선(92-7)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 중간 데이터선(92-8)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이, 중 간 데이터선(92-9)으로부터는 "0"과 "0"에 대해서의 "1"을 진으로 한 논리합결과 "0"이 각각 출력된다. 따라서, 중간 데이터선(92-1 내지 92-9)에 출력되는 2진 표현으로 "010011000"이 중간 데이터(23)로서 2차 연상 메모리(21)에 입력된다.
2차 연상 메모리(21)는 입력된 중간 데이터(23)의 값 "010011000"에 대해서 2차 검색을 실행한다. 본 예에서는 연상 메모리 워드(24-2)가 저장하는 제2의 기억 데이터가 완전하게 일치하여, 대응하는 2차 일치선(18-2)을 개방 상태로 한다. 다른 연상 메모리 워드(24-1 및 24-3)가 저장하는 제2의 기억 데이터는 일치하지 않기 때문에, 대응하는 2차 일치선(18-1 및 18-3)에 무효 상태 "0"을 출력한다. 따라서, 2차 검색 후에도 유효 상태 "1"을 계속 유지하는 것은 2차 일치선(18-2)만이 된다.
상술한 바와 같이, 단일 영역 검색용 연상 메모리(4)는 도3으로 설명한 단일 영역 검색용 연상 메모리(36)와 동일하게, 8진 표현으로 (2. 3. 3)의 검색 데이터(3)를 입력한 경우, 대응하는 마스크 정보를 고려하여 비교한 결과 일치하는 기억 데이터 중에서, 마스크 정보의 마스크 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 2차 일치선(18-2)에만 유효 상태 "1"을 출력하는 것을 알 수 있다.
[제3 실시 예의 동작]
다음으로 본 발명의 제3 실시 형태의 연상 메모리의 복수의 검색 데이터로부터 구성되는 입력 데이터에 대해서의 검색 동작에 대해서, 도5에 도시한 본 발명의 연상 메모리의 복수의 검색 데이터로부터 구성되는 입력 데이터에 대해서의 검색 동작시의 동작을 나타내는 상술한 순서도에 준거하여 설명한다. 여기에서는, 제1 실시 형태의 연상 메모리(1)의 설명과 마찬가지로, 제3 실시 형태의 연상 메모리(25)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)에의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우를 예로서 도20, 도21, 도22 및 도23을 이용하여, 도5의 순서도의 각 스텝 마다 구체적으로 설명한다.
제1 실시 형태의 연상 메모리(1)의 설명할 때와 마찬가지로, 데이터 전송시의 9비트의 송출원 어드레스(1. 2. 6)를 검색 데이터(3-1)로 하고, 9비트의 목적지 어드레스(2. 3. 5)를 검색 데이터(3-2)로 하고, 검색 데이터(3-1)의 우선순위를 가장 높은 1로 하고, 검색 데이터(3-2)의 우선순위를 2로 한다. 도20, 도21, 도22 및 도23에 있어서, 연상 메모리(25)는 9비트 5어의 단일 영역 검색용 연상 메모리(4-1 및 4-2)에 의해 구성되는 것으로 한다.
표1(b)에 있어서의 각 전송 규칙의 송출원 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터를, 단일 영역 검색용 연상 메모리(4-1)의 1차 연상 메모리(20-1)의 전송 규칙에 대응하는 연상 메모리 워드(7-1-1 내지 7-5-1)의 기억 데이터로서 저장하고, 또한 2차 연상 메모리(21-1)의 전송 규칙에 대응하는 연상 메모리 워드(24-1-1 내지 24-5-1)의 제2의 기억 데이터로서 저장하는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 송출원 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 마스크 정보를, 단일 영역 검색용 연상 메모리(4-1)의 1차 연상 메모리(20-1)의 전송 규칙에 대응하는 연상 메모리 워드(7-1-1 내지 7-5-1)의 마스크 정보로서 저장하는 것으로 한다.
표1(b)에 있어서의 각 전송 규칙의 목적지 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터를, 단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)의 전송 규칙에 대응하는 연상 메모리 워드(7-1-2 내지 7-5-2)의 기억 데이터로서 저장하고, 또한 2차 연상 메모리(21-2)의 전송 규칙에 대응하는 연상 메모리 워드(24-1-2 내지 24-5-2)의 제2의 기억 데이터로서 저장하는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 목적지 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 마스크 정보를, 단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)의 전송 규칙에 대응하는 연상 메모리 워드(7-1-2 내지 7-5-2)의 마스크 정보로서 저장하는 것으로 한다.
또한, 표1(b)에 있어서의 각 전송 규칙의 목적지 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터, 9비트의 마스크 정보를 단일 영역 검색용 연상 메모리(36-2)의 전송 규칙에 대응하는 연상 메모리 워드(44-1-2 내지 44-5-2)의 각각 기억 데이터, 마스크 정보로서 저장하는 것으로 한다.
모든 1차 일치선(17-1-1 내지 17-m-r) 및 모든 2차 일치선(18-1-1 내지 18-m-r)은, 미리 유효 상태 "1"에 프리차지되어 있는 것으로 한다.
제3 실시 형태의 연상 메모리(25)의 주 제어 회로(6)의 도5의 순서도 각 스텝에 있어서의 동작은, 제1의 실시 형태의 연상 메모리(1)의 경우와 같다. 또한, 도20, 도21, 도22 및 도23에 있어서의 클럭 신호(41) 및 개시 신호(42) 상태는 제1 실시 형태의 연상 메모리(1)와 동일하게 한다.
[스텝 S100]
도20은 연상 메모리(1)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)에의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의, 도5의 스텝 S100에서의 동작 상태를 설명하는 도이다.
1차 검색 허가 신호(10-1)가 무효 상태 "0"이기 때문에, 1차 연상 메모리(20-1)는 모든 1차 일치선(17-1-1 내지 17-5-1)을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-1 내지 17-5-1)은 유효 상태 "1"을 유지한다. 2차 검색 허가 신호(11-1)가 무효 상태 "0"이기 때문에, 2차 연상 메모리(21-1)는 모든 2차 일치선(18-1-1 내지 18-5-1)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-1 내지 18-5-1)은 유효 상태 "1"을 유지한다.
1차 검색 허가 신호(10-2)가 무효 상태 "0"이기 때문에, 1차 연상 메모리(20-2)는 모든 1차 일치선(17-1-2 내지 17-5-2)을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-2 내지 17-5-2)은 유효 상태 "1"을 유지한다. 2차 검색 허가 신호(11-2)가 무효 상태 "0"이기 때문에, 2차 연상 메모리(21-2)는 모든 2차 일치선(18-1-2 내지 18-5-2)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-1 내지 18-5-1)은 유효 상태 "1"을 유지한다. 따라서, 논리곱수단(15-1 내지 15-5)으로부터 출력되는 일치 신호(5-1 내지 5-5)는 모두 유효 상태 "1"이 된다.
또한, 기억 수단(43-1 내지 43-5)의 출력인 공통 일치선(38-1 내지 38-5)은 기억 제어 신호(12)에 의해 유효 상태 "1"로 초기화되고 있다. 그로 인해, 논리곱 신호(40-1 내지 40-5)는 모두 "1"이 된다. 그 결과로서, 중간 데이터(93-1)는 연상 메모리 워드(44-1-1 내지 44-1-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "001. 010. 110"이 된다. 또한, 중간 데이터(93-2)는 연상 메모리 워드(44-2-1 내지 44-2-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "011. 011. 101"이 된다.
[스텝 S101]
도21은 연상 메모리(25)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의, 스텝 S101에서의 동작 상태를 설명하는 도이다.
단일 영역 검색용 연상 메모리(4-1)의 1차 연상 메모리(20-1)에 있어서는 1차 검색 허가 신호(10-1)가 유효 상태 "1"이기 때문에, 검색 데이터(3-1)의 값 "001. 010. 110"과, 연상 메모리 워드(7-1-1 내지 7-5-1)에 저장되어 있는 기억 데이터를 대응하는 마스크 정보도 고려하여 비교를 행하고, 결과적으로 1차 일치선(17-1-1, 17-2-1, 17-3-1, 17-4-1 및 17-5-1)이 유효 상태 "1"이 된다.
단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)에 있어서는 1차 검색 허가 신호(10-2)가 유효 상태 "1"이기 때문에, 검색 데이터(3-2)의 값 "010. 011. 101"과, 연상 메모리 워드(7-1-2 내지 7-5-2)에 저장되어 있는 기억 데이터를 대응하는 마스크 정보도 고려하여 비교를 행하고, 결과적으로 1차 일치선(17-1-2, 17-3-2 및 17-5-2)이 유효 상태 "1"이 되고, 1차 일치선(17-2-2 및 17-4-2)은 무효 상태 "0"이 된다.
2차 검색 허가 신호(11-1)가 무효 상태 "0"이기 때문에, 2차 연상 메모리(21-1)는 모든 2차 일치선(18-1-1 내지 18-5-1)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-1 내지 18-5-1)은 유효 상태 "1"을 유지한다. 2차 검색 허가 신호(11-2)가 무효 상태 "0"이기 때문에, 2차 연상 메모리(21-2)는 모든 2차 일치선(18-1-2 내지 18-5-2)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-2 내지 18-5-2)은 유효 상태 "1"을 유지한다. 따라서, 논리곱수단(15-1 내지 15-5)으로부터 출력되는 일치 신호(5-1 내지 5-5)는 모두 유효 상태 "1"이 된다.
기억 수단(43-1 내지 43-5)은 스텝 S100에서 초기화된 값 "1"을 공통 일치선(38-1 내지 38-5)에 출력하고 있기 때문에, 논리곱신호(40-1, 40-3 및 40-5)가 "1"이 되고, 논리곱신호(40-2 및 40-4)는 "0"이 된다. 그 결과로서 중간 데이터(93-1)는 연상 메모리 워드(44-1-1 내지 44-1-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "001. 010. 110"이 된다. 또한, 중간 데이터(93-2)는 연상 메모리 워드(44-2-1 내지 44-2-5)에 저장되어 있는 모든 기억 데이터의 논리합연산 결과 "011. 011. 101"이 된다. 논리곱신호(40-1 내지 40-5)의 값은 기억 제어 신호(12)에 의해, 다음 스텝으로 이행할 때 기억 수단(43-1 내지 43-5)에 기억된다.
[스텝 S102]
도22는 연상 메모리(25)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)으로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데 이터 전송에 대한 전송의 가부 판정에 이용한 경우의, 스텝 S102에서의 동작 상태를 설명하는 도이다.
기억 수단(43-1 내지 43-5)은 스텝 S101에서 기억된 값을 출력하고 있기 때문에, 공통 일치선(38-1, 38-3, 38-5)이 "1"이 되고, 공통 일치선(38-2 및 38-4)은 "0"이 된다. 이로 인해, 단일 영역 검색용 연상 메모리(4-1)의 중간 데이터(93-1)의 값은 연상 메모리 워드(7-1-1, 7-3-1 및 7-5-1)에 저장되어 있는 기억 데이터의 논리합연산 결과 "001. 010. 000"이 된다. 또한, 단일 영역 검색용 연상 메모리(4-2)의 중간 데이터(93-2)의 값은 연상 메모리 워드(7-1-2, 7-3-2 및 7-5-2)에 저장되어 있는 기억 데이터의 논리합연산 결과 "010. 011. 101"이 된다.
우선순위가 가장 높은 1인 단일 영역 검색용 연상 메모리(4-1)에 있어서는 2차 검색 허가 신호(11-1)에 유효 상태 "1"이 입력되고, 2차 연상 메모리(21-1)는 중간 데이터(93-1)의 값 "001. 010. 000"과, 연상 메모리 워드(24-1-1 내지 24-5-1)에 저장되어 있는 제2의 기억 데이터의 비교를 행하여, 결과적으로 2차 일치선(18-1-1 및 18-3-1)이 유효 상태 "1"이 되고, 2차 일치선(18-2-1, 18-4-1, 18-5-1)은 무효 상태 "0"이 된다. 단일 영역 검색용 연상 메모리(4-1)의 1차 연상 메모리(20-1)는 1차 검색 허가 신호(10-1)가 무효 상태 "0"이기 때문에, 모든 1차 일치선(17-1-1 내지 17-5-1)을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-1 내지 17-5-1)은 유효 상태 "1"을 유지한다.
단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)는 1차 검색 허가 신호(10-2)가 무효 상태 "0"이기 때문에, 모든 1차 일치선(17-1-2 내지 17-5-2) 을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-2 내지 17-5-2)은 유효 상태 "1"을 유지한다. 단일 영역 검색용 연상 메모리(4-2)의 2차 연상 메모리(21-2)는 2차 검색 허가 신호(11-2)가 무효 상태 "0"이기 때문에, 모든 2차 일치선(18-1-2 내지 18-5-2)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-2 내지 18-5-2)은 유효 상태 "1"을 유지한다.
따라서, 2차 일치선(18-1-1 내지 18-5-1), 2차 일치선(18-1-2 내지 18-5-2)의 대응하는 신호끼리의 논리곱연산 결과에 의해, 논리곱수단(15-1 내지 15-5)은 일치 신호(5-1 및 5-3)에 유효 상태 "1"을 출력하고, 일치 신호(5-2, 5-4 및 5-5)에는 무효 상태 "0"을 출력한다.
1차 일치선(17-1-1 내지 17-5-1), 1차 일치선(17-1-2 내지 17-5-2), 일치 신호(5-1 내지 5-5) 및 공통 일치선(38-1 내지 38-5)의, 각각 대응하는 신호끼리의 논리곱연산 결과에 의해, 논리곱수단(13-1 내지 13-5)은 논리곱신호(40-1 및 40-3)에 유효 상태 "1"을 출력하고, 논리곱신호(40-2, 40-4 및 40-5)에는 무효 상태 "0"을 출력한다. 논리곱신호(40-1 내지 40-5) 상태는 기억 제어 신호(12)에 의해, 다음의 스텝으로 이행할 때 기억 수단(43-1 내지 43-5)에 기억된다.
[스텝 S103 내지 S105]
도23은, 연상 메모리(25)를 도33에 있어서의 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송에 대한 전송의 가부 판정에 이용한 경우의, 스텝 S105에서의 동작 상태를 설명하는 도이다.
기억 수단(43-1 내지 43-5)은 스텝 S102에서 기억된 값을 출력하고 있기 때문에, 공통 일치선(38-1 및 38-3)이 "1"이 되고, 공통 일치선(38-2, 38-4 및 38-5)은 "0"이 된다. 이 때문에, 단일 영역 검색용 연상 메모리(4-1)의 중간 데이터(93-1)의 값은 연상 메모리 워드(7-1-1 및 7-3-1)에 저장되어 있는 기억 데이터의 논리합연산 결과 "001. 010. 000"이 된다. 또한, 단일 영역 검색용 연상 메모리(4-2)의 중간 데이터(93-2)의 값은 연상 메모리 워드(7-1-2 및 7-3-2)에 저장되어 있는 기억 데이터의 논리합연산 결과 "010. 011. 000"이 된다.
우선순위가 1인 단일 영역 검색용 연상 메모리(4-1)의 1차 연상 메모리(20-1)는 1차 검색 허가 신호(10-1)가 무효 상태 "0"이기 때문에, 모든 1차 일치선(17-1-1 내지 17-5-1)을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-1 내지 17-5-1)은 유효 상태 "1"을 유지한다. 단일 영역 검색용 연상 메모리(4-1)의 2차 연상 메모리(21-1)는 2차 검색 허가 신호(11-1)가 무효 상태 "0"이기 때문에, 모든 2차 일치선(18-1-1 내지 18-5-1)을 해방 상태로 하여, 결과적으로 모든 2차 일치선(18-1-1 내지 18-5-1)은 유효 상태 "1"을 유지한다.
우선순위가 2인 단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)에 있어서는 2차 검색 허가 신호(11-2)에 유효 상태 "1"이 입력되고, 2차 연상 메모리(21-2)는 중간 데이터(93-2)의 값 "010. 011. 000"과 연상 메모리 워드(24-1-2 내지 24-5-2)에 저장되어 있는 제2의 기억 데이터와 비교를 행하여, 결과적으로 2차 일치선(18-3-2)이 유효 상태 "1"이 되고, 2차 일치선(18-1-2, 18-2-2, 18-4-2, 18-5-2)은 무효 상태 "0"이 된다. 단일 영역 검색용 연상 메모리(4-2)의 1차 연상 메모리(20-2)는 1차 검색 허가 신호(10-2)가 무효 상태 "0"이기 때문에, 모든 1차 일치선(17-1-2 내지 17-5-2)을 해방 상태로 하여, 결과적으로 모든 1차 일치선(17-1-2 내지 17-5-2)은 유효 상태 "1"을 유지한다.
따라서, 2차 일치선(18-1-1 내지 18-5-1), 2차 일치선(18-1-2 내지 18-5-2)의 대응하는 신호끼리의 논리곱연산 결과에 의해, 논리곱수단(15-1 내지 15-5)은 일치 신호(5-3)에만 유효 상태 "1"을 출력하고, 나머지의 일치 신호(5-1, 5-2, 5-4 및 5-5)에는 무효 상태 "0"을 출력한다.
1차 일치선(17-1-1 내지 17-5-1), 1차 일치선(17-1-2 내지 17-5-2), 일치 신호(5-1 내지 5-5) 및 공통 일치선(38-1 내지 38-5)의 각각 대응하는 신호끼리의 논리곱연산 결과에 의해, 논리곱수단(13-1 내지 13-5)은 논리곱신호(40-3)에 유효 상태 "1"을 출력하고, 논리곱신호(40-1, 40-2, 40-4, 40-5)에는 무효 상태 "0"을 출력한다. 논리곱신호(40-1 내지 40-5) 상태는 기억 제어 신호(12)에 의해, 다음의 스텝으로 이행할 때에 기억 수단(43-1 내지 43-5)에 기억된다.
다음의 클럭 신호(41)에 동기화하여 주 제어 회로(6)의 동작은, 도5의 순서도의 스텝 S103으로 이행하고, 내부 변수(28)의 값(p)과, 연상 메모리(1)가 가지는 단일 영역 검색용 연상 메모리(36)의 개수 r을 비교한다. 도23의 예에서는 내부 변수(28)의 값(p)과, 연상 메모리(25)가 가지는 단일 영역 검색용 연상 메모리(4)의 개수 r은 모두 2이며, 검색 결과 종료한다. 이 때, 일치 신호(5-1 내지 5-5) 중에서 유효 상태 "1"을 출력하고 있는 것은 일치 신호(5-3)뿐이며, 이것이 최종적인 검색 결과로서 얻어지게 된다. 전술한 바와 같이, 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송은 전송 규칙 3이 적용되어야 하는 것이며, 올바른 결과를 얻을 수 있다는 것을 알 수 있다.
또한, 도5의 순서도의 스텝 S102, 스텝 S105의 직전에 웨이트 사이클을 삽입하고, 중간 데이터(93-1 내지 93-r)를 저장하기 위한 래치를 삽입하는 것에 의해, 동작 주파수를 높일 수 있다는 것은 물론이다.
또한, 스텝 S105에서는 스텝 S102에서 2차 검색을 행했을 때에 일치한 워드 중에서, 나아가 2차 검색을 행하는 것이기 때문에, 도23에 도시한 스텝 S105에서의 중간 데이터(93-1)의 값과, 도22에 도시한 스텝 S102에서의 중간 데이터(93-1)의 값은 당연히 동일하다. 따라서, 도5의 순서도의 스텝 S105에 있어서, 내부 변수(28)의 값이 p일 때에, 2차 검색 신호(11-1 내지 11-p)에 유효 상태를 출력해도 같은 결과를 얻을 수 있다는 것을 알 수 있다.
또한, 상술한 설명으로부터 알 수 있듯이 1차 연상 메모리(20-1 내지 20-2)와, 2차 연상 메모리(21-1) 및 2차 연상 메모리(21-2)는 각각 시간적으로 차례로 동작하고, 또한 동작하는 타이밍이 겹치는 일은 없다. 따라서, 결선을 변경하면 파이프라인 처리가 가능하다는 것을 용이하게 알 수 있다.
예를 들어, 도15에 있어서 논리곱수단(15-1 내지 15-m)을 삭제하고, 공유하고 있는 공통 일치선(38-1 내지 38-m), 논리곱수단(40-1 내지 40-m)과 기억 수단(43-1 내지 43-m)을 각 2차 연상 메모리(21-1 내지 21-r) 각각 전용으로 공통 일치선(38-1-1 내지 38-m-r), 논리곱수단(40-1-1 내지 40-m-r) 및 기억 수단(43-1- 1 내지 43-m-r)을 가지도록 변경한다. 이 때 각 2차 연상 메모리(21-1 내지 21-r)에 대응하는 r세트의 공통 일치선((38-1-1 ~ 38-m-1) 내지 (38-1-r ~ 38-m-r))은 각각 대응하는 1차 연상 메모리(21-1 내지 21-r)에만 입력한다. 이로 인해 각 2차 연상 메모리(21-1 내지 21-r)마다 중간 데이터(93-1 내지 93-r)를 생성하는 것이 가능하게 된다.
또한, 2차 연상 메모리(21-1)에 대응하는 m개의 논리곱수단(13-1-1 내지 13-m-1)에는 일치 신호(5-1 내지 5-m) 대신에 유효 상태를 입력하고, 2차 연상 메모리(21-2)에 대응하는 r개의 논리곱수단(13-1-2 내지 13-m-2)에는 일치 신호(5-1 내지 5-m) 대신에 2차 일치선(18-1-1 내지 18-m-1)을 입력하고, 이하와 같이 2차 연상 메모리(21-r)에 대응하는 r개의 논리곱수단(13-1-r 내지 13-m-r)에는 일치 신호(5-1 내지 5-m) 대신에 2차 일치선(18-1-(r-1) 내지 18-m-(r-1))을 입력하도록 하여, 최후의 2차 일치선(18-1-r 내지 18-m-r)을 일치 신호(5-1 내지 5-m)처럼 결선을 변경하는 것에 의해, 2차 연상 메모리(21-1 내지 21-r)를 독립적으로 동작시키는 것이 가능하게 된다.
이 때에는 1차 검색 허가 신호(10-1 내지 10-r), 2차 검색 허가 신호(11-1 내지 11-r)는 모두 유효 상태로 상관없이, 파이프라인의 동작 주파수에 대응하여 동작시켜야 할 개소에만 유효 상태를 출력해도 좋다는 것은 물론이다. 또한, 상기 기억 수단(43-1-1 내지 43-m-r)을 삭제하고, 1차 검색 허가 신호(10-1 내지 10-r), 2차 검색 허가 신호(11-1 내지 11-r)에 모두 유효 상태가 출력되고 있으면 1클럭으로 모든 동작을 종료하게 된다. 또한, 전술한 바와 같이 중간 데이터(93-1 내지 93-r)를 저장하기 위한 래치를 삽입하는 것에 의해 파이프라인의 동작 주파수를 높게 하는 것이 가능하다는 것도 용이하게 알 수 있다.
[제4 실시 예의 구성]
다음으로 본 발명의 제4 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도24는, 본 발명의 제4 실시 형태의 m어의 연상 메모리(35)의 구성예를 도시한 블럭도이다.
도24에 도시한 제4 실시 형태의 연상 메모리(35)는 r개의 단일 영역 검색용 연상 메모리(30-1 내지 30-r)를 구성하는 1차 연상 메모리(31-1 내지 31-r)의 각각 j번째의 연상 메모리 워드(32-j-1 내지 32-j-r)의 비교 결과의 출력 신호끼리를 1개의 1차 일치선(17-j)에 와이어드 AND 논리 접속하고, 또한 1차 일치선(17-j)에 다이나믹하게 유지되고 있는 상태를 중간 데이터(93-1 내지 93-r)의 생성에 이용하는 것이다. 여기서 1차 일치선(17-j)은 개시 신호(42)가 유효 상태일 때만, 유효 상태 "1"에 프리차지되는 것으로 한다. 또한 연상 메모리(35)에서는 단일 영역 검색용 연상 메모리(26-1 내지 26-r)를 구성하는 2차 연상 메모리(21-1 내지 21-r)의 각각 j번째의 연상 메모리 워드(24-j-1 내지 24-j-r)의 비교 결과의 출력 신호끼리를 1개의 2차 일치선(18-j)에 와이어드 AND 논리 접속하고 있다. 여기서 2차 일치선(18-j)은 미리 유효 상태 "1"에 프리차지되는 것으로 한다. 또한, m개의 M0S 트랜지스터(33-1 내지 33-m)와 m개의 반전 M0S 트랜지스터(34-1 내지 34-m)를 가지고, j번째의 M0S 트랜지스터(33-j)와 반전 M0S 트랜지스터(34-j)는 1차 일치선(17-j)과 저전위의 사이에 직렬로 삽입되고 있다. M0S 트랜지스터(33-j)는 주 제어 회 로(6)로부터 출력되는 기억 제어 신호(12)가 유효 상태일 때에 도통 상태가 된다. 반전 M0S 트랜지스터(34-j)는 2차 일치선(18-m)이 무효 상태 "0"일 때에 도통 상태가 된다.
상술한 바와 같이 도14에 도시한 제3 실시 형태의 연상 메모리(25)에 있어서의 논리곱수단(15-j)은 도24에 도시한 제4 실시 형태의 연상 메모리(35)에서는 와이어드 AND 논리 접속된 2차 일치선(18-j)에 의해 실현되고 있다. 또한, 도24에 도시한 연상 메모리(35)에서는 2차 일치선(18-j) 상태를 일치 신호(5-j)로서 직접 외부에 출력하고 있다.
도24에 도시한 연상 메모리(35)의 j번째의 1차 일치선(17-j)은 개시 신호(42)가 유효 상태일 때에 유효 상태 "1"에 프리차지된 후, 도5에 도시한 순서도의 동작이 종료할 때까지의 사이에, r개의 단일 영역 검색용 연상 메모리(30-1 내지 30-r)를 구성하는 1차 연상 메모리(31-1 내지 31-r)의 각각 j번째의 연상 메모리 워드(32-j-1 내지 32-j-r)의 비교 결과가 모두 일치하고, 또한 직전의 스텝에서의 1차 일치선(17-j) 상태가 유효 상태 "1"이며, 또한 다음의 스텝으로 이행하기 전에 기억 제어 신호(12)가 유효 상태가 되어 M0S 트랜지스터(33-j)가 도통 상태가 되었을 때에 2차 일치선(18-j)이 유효 상태 "1"일 때만, 유효 상태 "1"을 유지하게 된다. 즉, 도14에 있어서의 논리곱수단(13-j)은 도24에 도시한 연상 메모리(35)에서는, 와이어드 AND 논리 접속된 1차 일치선(17-j)과 반전 M0S 트랜지스터(34-j)에 의해 구성되고, 또한 도14에 있어서의 기억 수단(43-j)은 도24에 도시한 연상 메모리(35)에서는, 와이어드 AND 논리 접속된 1차 일치선(17-j)과 M0S 트랜지스터(33- j)에 의해 구성되게 된다.
이 외에는, 도14에 도시한 제3 실시 형태의 연상 메모리(25)의 구성과 완전히 동일하다. 복수의 검색 데이터로부터 구성되는 입력 데이터에 대해서 동일한 검색 동작을 실행할 수 있는 것은 명확하다.
도24에 도시한 제4 실시 형태의 연상 메모리(35)에서는 r개의 단일 영역 검색용 연상 메모리(30-1 내지 30-r)사이의 배선 수는 m개의 1차 일치선(17-1 내지 17-m)과, m개의 2차 일치선(18-1 내지 18-m)의 합계 (2m)개이다. 도14에 도시한 제3 실시 형태의 연상 메모리(25)에서는, r개의 단일 영역 검색용 연상 메모리(4-1 내지 4-r) 사이의 배선 수는 m × r개의 1차 일치선(17-1-1 내지 17-m-r)과, m × r개의 2차 일치선(18-1-1 내지 18-m-r)과, m개의 공용 일치선(38-1 내지 38-m)의 합계 (m × (2 × r + 1)) 개 이며, 제4 실시 형태의 연상 메모리(35)에서는 배선 수가 큰 폭으로 감소하고 있는 것을 알 수 있다. r개의 단일 영역 검색용 연상 메모리(30-1 내지 30-r) 사이의 배선은 연상 메모리(35)의 전역에 걸쳐서 배선되기 때문에 배선 용량이 커져, 유지하고 있는 상태가 천이 될 때마다 소비하는 전력은 매우 크다. 따라서, 제4 실시 형태의 연상 메모리(35)에서는 제3 실시 형태의 연상 메모리(25)에 비해, 배선 영역이 크게 감소하여 칩 면적이 삭감되는 것과 동시에, 소비 전력을 큰 폭으로 삭감할 수 있다고 하는 이점을 가진다.
도25에 제4 실시 형태의 연상 메모리에 있어서의 1차 연상 메모리의 일구성예의 블럭도를 도시한다. 도25에 도시한 1차 연상 메모리(31)의 구성은 도15에 도시한 제3 실시 형태의 1차 연상 메모리(20)와 비교하면, j번째의 연상 메모리 워드(32-j)로부터 공통 일치선(38-j)이 삭제된 것과, 그에 따라 j번째의 연상 메모리 워드(32-j)를 구성하는 n개의 연상 메모리 셀(80-j-1 내지 80-j-n) 내의 논리 게이트(56-j-1 내지 56-j-n)의 입력이 공통 일치선(38-j)으로부터 1차 일치선(17-j)으로 변경된 것 외에는, 도15에 도시한 제3 실시 형태의 1차 연상 메모리(20)와 완전히 동일하다.
도25에 도시한 1차 연상 메모리(31)에서는 출력 신호인 1차 일치선(17-j)을, n개의 논리 게이트(56-j-1 내지 56-j-n)를 와이어드 AND 논리 접속하는 것에 의해 생성하고 있기 때문에, 1차 연상 메모리(31)의 내부에 있어서도 공통 일치선(38-j)을 1차 일치선(17-j)과 공용하는 것이 가능하다.
물론, 와이어드 AND 논리 접속이 아닌 통상의 논리 게이트를 이용하여 1차 일치선(17-1 내지 17-m)을 생성하고 있는 경우 및 도10과 같은 구성의 1차 일치선(17-1 내지 17-m)이 논리 게이트로부터 출력되고 있는 1차 연상 메모리에 있어서도, 1차 일치선(17-j)을 출력하는 논리 게이트로서 무효 상태일 때만 출력을 구동하고, 유효 상태일 때에는 출력을 개방 상태로 하는 기능을 가지고 있는 것을 사용하는 것에 의해, 제4 실시 형태의 연상 메모리(35)의 1차 연상 메모리(31)로서 이용하는 것이 가능한 것은 물론이다.
또한, 도24에서는 2차 일치선(18-j) 상태를 일치 신호(5-j)로서 직접 외부에 출력하고 있지만, 2차 일치선(18-j) 상태를 버퍼에 입력하여 파형을 정형하고 나서 일치 신호(5-j)로서 출력해도 좋다는 것은 물론이다.
[제5 실시예]
도26은 본 발명의 제5 실시 형태의 연상 메모리의 구성예를 도시한 블럭도이다. 도26에 도시한 제5 실시 형태의 m어의 연상 메모리(46)를 도14에 도시한 m어의 제3 실시 형태의 연상 메모리(25)와 비교하면, 입력 데이터(47)의 구성요소로서 검색 데이터(48)가 추가되고 있는 것과, 검색 데이터(48)를 입력으로 하여 m개의 일치선(90-1 내지 90-m)을 출력하는 연상 메모리(49)가 추가되고 있는 것과, 논리곱수단(91-1 내지 91-m)의 입력 신호로서 대응하는 일치선(90-1 내지 90-m)이 추가되고 있는 것 외에는, 도14에 도시한 연상 메모리(25)와 완전히 동일하게 구성된다.
따라서, 도26의 연상 메모리(46)는 복수의 검색 데이터(3-1 내지 3-r)에 대해서 연상 메모리(25)와 같은 검색 동작을 실행할 수 있는 것은 명확하고, 또한 검색 데이터(48)를 이용하여 미리 검색 결과의 엄선을 행하는 기능을 가진다. 이에 의해, 표1(b)로 설명한 전송 규칙의 표를 복수개 바꾸어 사용하는 것이 가능하게 된다.
예를 들어, 검색 데이터(48)로서 요일을 나타내는 정보를 입력한 경우를 생각한다. 이 때, 단일 영역 검색용 연상 메모리(4-1 내지 4-r)의 특정의 워드에 표1(b)의 전송 규칙을 저장하고, 한편 연상 메모리(49)의 대응하는 워드의 기억 데이터로서 "평일"을 나타내는 데이터를 저장해 둔다. 또한, 단일 영역 검색용 연상 메모리(4-1 내지 4-r)의 다른 워드에 특정의 PC로부터 특정의 PC로의 전송만을 허가하고 다른 전송은 모두 거절하는 것 같은 전송 규칙을 저장하고, 또한 연상 메모리(49)의 대응하는 워드의 기억 데이터로서 "휴일"을 나타내는 데이터를 저장한 경우, 검색 데이터(48)에 대응하여 전송 규칙을 변경하는 것이 가능하게 된다. 즉, 도14에 도시한 연상 메모리(25)에 비해, 전송 규칙을 보다 유연하게 설정할 수 있다.
[제6 실시예]
다음에 도면을 참조하여 제1 실시 형태의 연상 메모리(1)를 경유지 네트워크 어드레스 계산에 이용한, 본 발명의 네트워크 기기의 구성예를 설명한다. 도27은 본 발명의 네트워크 기기의 일구성예를 도시한 블럭도이다. 도27에서는 본 발명의 네트워크 기기(450)에 대하여, 도34에 도시한 종래의 네트워크 기기(422)의 설명과 동일하게 도33의 네트워크 기기(400-1)에 적용한 경우를 예로 들어, 그 구성과 동작을 설명한다. 물론, 도33의 다른 네트워크 기기에 적용한 경우도 이와 같이 구성할 수 있다.
도27의 네트워크 기기(450)는 도34에 도시한 종래의 네트워크 기기(422)와 동일하게, 입력 전송 데이터(402)를 입력으로 하여, 출력 전송 데이터(403)를 출력한다. 입력 전송 데이터(402)는 송출원 네트워크 어드레스(404)와, 경유지 네트워크 어드레스(405)와, 목적지 네트워크 어드레스(406)와, 데이터부(407)를 가지고 있다. 출력 전송 데이터(403)는 송출원 네트워크 어드레스(404)와, 제2의 경유지 네트워크 어드레스(408)와, 목적지 네트워크 어드레스(406)와, 데이터부(407)를 가지고 있다. 여기에서 네트워크 기기(450)는 도33의 네트워크 기기(400-1)에 적용한 경우를 예로서 설명하므로, 입력 전송 데이터(402)의 경유지 네트워크 어드레스(405)는 도33에 있어서의 네트워크 기기(400-1)의 네트워크 어드레스로 되어 있다.
도27에 도시한 본 발명의 네트워크 기기(450)는 송출원 네트워크 어드레스 추출부(409)와, 목적지 네트워크 어드레스 추출부(410)와, 연상 메모리(101)와, 인코더(414)와, 메모리(416)와, 경유지 네트워크 어드레스 변경부(418)와, 데이터 전송부(421)와, 본 발명의 연상 메모리(1)와, 인코더(451) 및 메모리(453)에 의해 구성된다. 도34로 설명한 종래의 네트워크 기기(422)에 있어서, 송출원 네트워크 어드레스 정보(411)와, 목적지 네트워크 어드레스 정보(412)를 입력으로 전송 가부 판정 연산을 행하여 연산 결과를 전송 제어 신호(420)로서 출력하는 기능을 가지고 있는 CPU(413)는, 본 발명의 네트워크 기기(450)에서는 연상 메모리(1)와, 인코더(451)와, 메모리(453)에 의해 구성되어 있는 것이 다르다. 다른 구성요소인 송출원 네트워크 어드레스 추출부(409)와, 목적지 네트워크 어드레스 추출부(410)와, 연상 메모리(101)와, 인코더(414) 및 메모리(416)는 도34에 설명한 종래의 네트워크 기기와 동일하고, 또한 도33에 있어서의 네트워크 기기(400-1)에 적용한 경우에 설정해야 할 정보에 대해서도 도34와 같다. 따라서, 종래의 네트워크 기기(422)와 다른 부분에 대한 것만을 설명 한다.
도27에 도시한 연상 메모리(1)는 9비트 5어의 단일 영역 검색용 연상 메모리(36-1 및 36-2)에 의해 구성되어 있다. 송출원 네트워크 어드레스 추출부(409)가 출력하는 송출원 네트워크 어드레스 정보(411)가 단일 영역 검색용 연상 메모리(36-1)에 검색 데이터(3-1)로서 입력되고, 목적지 네트워크 어드레스 추출부(410)가 출력하는 목적지 네트워크 어드레스 정보(412)가 단일 영역 검색용 연상 메모리(36-2)에 검색 데이터(3-2)로서 입력된다. 여기서 검색 데이터(3-1)의 우선순위를 가장 높은 1로 하고, 검색 데이터(3-2)의 우선순위를 2로 한다.
또한, 표1(b)에 있어서의 각 전송 규칙의 송출원 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터, 9비트의 마스크 정보를 단일 영역 검색용 연상 메모리(36-1)의 전송 규칙에 대응하는 연상 메모리 워드(44-1-1 내지 44-5-1)의 각각 기억 데이터, 마스크 정보로서 저장하는 것으로 한다. 또한, 표1(b)에 있어서의 각 전송 규칙의 목적지 네트워크 어드레스의 9비트의 구조화 데이터를 구성하는 9비트의 기억 데이터, 9비트의 마스크 정보를 단일 영역 검색용 연상 메모리(36-2)의 전송 규칙에 대응하는 연상 메모리 워드(44-1-2 내지 44-5-2)의 각각 기억 데이터, 마스크 정보로서 저장하고 있는 것으로 한다. 또한, 도시하지 않은 제어 회로에 의해, 연상 메모리(1)에 대해서 개시 신호와 클럭 신호가 공급되고 있는 것으로 한다.
연상 메모리(1)로부터 검색 결과적으로 출력되는 일치 신호(5-1 내지 5-5)는 인코더(451)에 의해 메모리 어드레스 신호(451)로 부호화 된다. 메모리(453)는 표1(b)의 전송 허가 "1"또는 전송 거절 "0"을 나타내는 정보를 연상 메모리(1)가 표1(b)의 전송 규칙의 기억 데이터, 마스크 정보가 저장하고 있는 연상 메모리 워드와 동일한 어드레스의 워드에 기억하고 있는 것으로 한다. 예를 들어, 연상 메모리(1)의 연상 메모리 워드(44-1-1), 연상 메모리 워드(44-1-2)에는 전송 규칙 1에 대응하는 정보가 저장되어 있지만, 이것에 대응하는 전송 허가 "1"을 나타내는 정보가 메모리(453)의 워드 1에 저장되어 있다. 마찬가지로 메모리(453)의 워드 2에는 전송 규칙 2의 전송 허가 "1"을 나타내는 정보가, 워드 3에는 전송 규칙 3의 전 송 거절 "0"을 나타내는 정보가, 워드 4에는 전송 규칙 4의 전송 허가 "1"을 나타내는 정보가, 워드 5에는 전송 규칙 5의 전송 거절 "0"을 나타내는 정보가 저장되어 있는 것으로 한다. 메모리(453)는 메모리 어드레스 신호(452)를 리드 어드레스로서 지정되는 저장 데이터를, 전송 제어 신호(420)로서 데이터 전송부(421)에 출력한다. 데이터 전송부(421)는 전송 제어 신호(420)가 전송을 허가하고 있으면 변경 완료된 전송 데이터(419)를 출력 전송 데이터(403)로서 출력하고, 전송 제어 신호(420)가 전송을 거절하고 있으면 출력하지 않는다.
여기서, 상술한 바와 같이 설정되어 있는 네트워크 기기(450)에 대해서, 송출원 네트워크 어드레스(404)로서 도33의 PC(401-1)의 네트워크 어드레스(1. 2. 6)를 가지고, 목적지 네트워크 어드레스(406)로서 도33의 PC(401-3)의 네트워크 어드레스(2. 3. 5)를 가지는 입력 전송 데이터(402)가 입력되었을 경우의 동작에 대해 설명한다.
연상 메모리(101)에서의 검색 동작 종료시에는, 연상 메모리 워드(102-2)가 저장하고 있는 (2. 3. *)에 대응하는 일치선(105-2)이 유효 상태를 출력한다. 이로 인해 인코더(414)는 메모리 어드레스(415)로서 "2"를 출력하고, 메모리(416)는 네트워크 기기(400-6)의 네트워크 어드레스를 메모리 데이터 신호(417)로서 출력한다. 경유지 네트워크 어드레스 변경부(418)에 의해, 입력 전송 데이터(402)의 경유지 네트워크 어드레스(405)를 네트워크 기기(400-6)의 네트워크 어드레스로 변경하여 데이터 전송부(421)로 변경 완료된 전송 데이터(419)로서 입력한다.
여기서, 연상 메모리(1)에는 송출원 네트워크 어드레스 추출부(409)로부터 검색 데이터(3-1)로서 (1. 2. 6)가 입력되고, 목적지 네트워크 어드레스 추출부(410)로부터 검색 데이터(3-2)로서 (2. 3. 5)가 입력된다. 이러한 검색 데이터(3-1, 3-2)의 값과 단일 영역 검색용 연상 메모리(36-1, 36-2)가 저장하고 있는 전송 규칙은, 제1 실시 형태의 연상 메모리의 동작 설명의 때와 동일하다. 따라서 일치 신호(5-3)가 유효 상태를 출력하고, 다른 일치선(5-1, 5-2, 5-4 및 5-5)은 무효 상태를 출력하게 된다. 이에 따라, 인코더(451)는 메모리 어드레스(452)로서 "3"을 출력하고, 메모리(453)는 전송 규칙 3의 전송 거절을 나타내는 정보 "0"을 전송 제어 신호(420)로서 데이터 전송부(421)에 출력한다. 따라서, 데이터 전송부(421)는 변경 완료된 전송 데이터(419)를 출력 전송 데이터(403)로서 출력하지 않게 된다. 네트워크 어드레스(1. 2. 6)를 가지는 PC(401-1)로부터 네트워크 어드레스(2. 3. 5)를 가지는 PC(401-3)로의 데이터 전송은, 전송 규칙 3에 의해 거절되지 않으면 안되기 때문에, 본 발명의 네트워크 기기(450)는 전송 가부 판정 연산을 올바르게 하고 있는 것을 알 수 있다.
본 실시예에서는 인코더(451)에 의해 메모리 어드레스 신호(452)를 생성했지만, 일치 신호(5-1 내지 5-5)를 메모리(453)의 워드 선으로서 직접 입력하는 구성으로 하면 인코더(451)를 삭제할 수 있는 것은 말할 필요도 없다.
상술한 바와 같이, 본 발명의 연상 메모리에 의해 전송 가부 판정 연산을 실행하는 네트워크 기기에서는, 전송 가부 판정 연산을 3클럭으로 실행할 수 있게 된다. 따라서, 도34에 도시한 종래의 네트워크 기기와 같이 CPU의 소프트웨어 처리에 의해 수백 클럭을 필요로 하여 전송 가부 판정 연산을 행하는 경우에 비교하여, 컴 퓨터 네트워크 시스템의 데이터 전송 속도를 큰 폭으로 고속화할 수 있다.
또한, 전송 속도를 향상시키기 위해서 고가의 고속 CPU를 탑재할 필요가 없어지게 되어, 네트워크 기기 전체적으로 가격을 내리는 것이 가능하다.
또한, 전송 규칙의 삭제, 추가, 변경을 행하려면, 단지 본 발명의 연상 메모리의 입력 데이터를 수정하는 것만으로 충분하기 때문에, 통상의 메모리 액세스에 필요로 하는 시간으로 실행 가능하다. 따라서, 본 발명의 네트워크 기기에서는 전송 동작을 중단하지 않고, 전송 규칙의 삭제, 추가, 변경을 행하는 것이 가능하다.
상술한 바와 같이, 본 발명의 네트워크 기기를 이용하는 것에 의해 안전성을 확보하고, 또한 고속으로 데이터를 전송 할 수 있는 네트워크 시스템을 구축하는 것이 가능하다.
상술한 바와 같이, 본 발명의 연상 메모리는 복수의 검색 영역으로부터 구성되는 입력 데이터에 대해서 마스크 정보를 고려하여 검색을 행했을 때에, 입력 데이터에 대응하는 기억 데이터가 모두 일치하는 워드가 복수개 있을 경우에, 우선순위를 고려하여 검색 영역마다 구조화 데이터를 구성하는 마스크 정보의 마스크 유효 상태의 비트수에 대해, 일치한 워드 중에서 비교한 결과 최소가 되는 워드를 식별하는 신호를, 검색 영역의 개수에 1을 더한 클럭수 이하로 고속으로 외부에 출력할 수 있다고 하는 효과를 가진다. 게다가, 종래의 연상 메모리와 비교해 수%의 회로 규모의 증가로 실현될 수 있다.
또한, 본 발명의 연상 메모리는 구조화 데이터를 저장하는 말의 순서, 저장 하는 말의 위치에는 제한이 없고, 통상의 메모리 액세스에 필요로 하는 시간만으로 구조화 데이터의 추가, 삭제, 수정을 할 수 있다고 하는 효과를 가진다. 이로 인해, 연상 메모리의 구조화 데이터를 관리하는 소프트웨어 처리가 간단하게 된다고 하는 효과도 있다.
또한, 본 발명의 연상 메모리를 조립해 넣은 네트워크 기기는 종래와 비교하여 수백배 이상 고속으로 전송 가부 판정 연산을 행할 수 있다. 즉, 종래의 네트워크 기기에서는 이진 트리 검색 알고리즘 등을 이용한 소프트웨어 처리에 의해 수백 클럭을 걸쳐 전송 가부 판정 연산을 행하고 있었지만, 본 발명의 연상 메모리는 3클럭으로 전송 가부 판정 연산을 행할 수 있기 때문이다.
또한, 본 발명의 연상 메모리를 조립해 넣은 네트워크 기기에서는 전송 동작을 중단하지 않고 전송 규칙의 삭제, 추가, 변경을 행할 수 있다고 하는 이점을 가진다. 상술한 바와 같이, 본 발명의 연상 메모리를 이용하면 전송 규칙의 삭제, 추가, 변경은 통상의 메모리 액세스에 필요로 하는 시간으로 실행할 수 있기 때문이다. 이로 인해, 종래의 소프트웨어 처리로 전송 가부 판정 연산을 행하고 있는 네트워크 기기에 있어서 전송 규칙의 삭제, 추가, 변경에 수반하는 거대한 검색 테이블의 작성이 불필요해져, 네트워크의 통신 불능 시간이 단축되는 것과 동시에, 운용 관리가 용이하게 된다고 하는 이점도 가진다. 또한, 새로운 전송 규칙이 신속히 반영되기 때문에, 네트워크 전체의 안전성이 향상한다고 하는 이점을 가진다.
또한, 본 발명의 연상 메모리를 조립해 넣은 네트워크 기기에서는 전송 가부 판정을 고속으로 실행 가능한 네트워크 기기의 토털 코스트를 삭감할 수 있다고 하 는 이점을 가진다. 상술한 바와 같이 전송 가부 판정을 고속으로 연산 가능한 본 발명의 연상 메모리를 탑재하는 것에 의해, 고가의 고속 CPU 시스템을 탑재할 필요가 없어지기 때문이다.
또한, 본 발명의 네트워크 기기를 이용하는 것으로 안전성을 확보하고, 또한 고속으로 데이터를 전송 할 수 있어, 한층 더 운용 관리의 용이한 네트워크 시스템을 구축할 수 있다고 하는 이점을 가진다.

Claims (30)

  1. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외하는지 여부를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지는 연상 메모리에 있어서,
    N개(N은 2 이상의 정수)의 부분 비트 영역으로 구성되는 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 워드를 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
    선출 상태로 계속 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 중간 데이터 생성 수단과,
    상기 외부 검색 데이터의 부분 비트 영역의 구성과 마찬가지로 상기 중간 데이터를 N개로 분할한 부분 비트 영역 중 각각 1개를 입력으로 하고, 2차 검색 제어 신호의 상태에 의해 워드에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 워드를 식별하는 2차 식별 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
    1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되 고 있는지 여부의 워드 유효 정보를 1차 검색 및 각 2차 검색 실행마다 갱신, 기억하여 그 선출 상태, 비선출 상태를 상기 중간 데이터 생성 수단에 출력하는 기억 수단과,
    상기 외부 검색 데이터의 전체 비트 영역을 검색 데이터로서 상기 1차 검색을 행한 후, 상기 중간 데이터의 상기 N개의 부분 비트 영역을 순차 검색 데이터로서 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단을 가지는 것을 특징으로 하는 연상 메모리.
  2. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외하는지 여부를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지는 연상 메모리에 있어서,
    N개(N은 2 이상의 정수)의 부분 비트 영역으로 구성되는 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 워드를 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
    선출 상태로 계속 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 N개의 중간 데이터 생성 수단과,
    상기 외부 검색 데이터의 부분 비트 영역의 구성과 마찬가지로 상기 중간 데이터를 N개로 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 워드에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 행한 결과 선출되는 워드를 식별하는 2차 식별 신호를 출력하는 N개의 2차 검색 수단을 가지고,
    상기 N개의 중간 데이터 생성 수단과 N개의 2차 검색 수단은, 제1 중간 데이터 생성 수단은 1차 검색의 결과 생성된 제1 중간 데이터를 상기 제1의 2차 검색 수단에 입력하여 제1 부분 비트 영역에 대해 제1의 2차 검색을 행하고, 제2 중간 데이터 생성 수단은 제1의 2차 검색의 결과 생성된 제2 중간 데이터를 상기 제2의 2차 검색 수단에 입력하여 제2 부분 비트 영역에 대해 제2의 2차 검색을 행하고, 제3 중간 데이터 생성 수단은 제2의 2차 검색의 결과 생성된 제3 중간 데이터를 상기 제3의 2차 검색 수단에 입력하여 제3 부분 비트 영역에 대해 2차 검색을 행하고, 이하 동일한 방식으로 구성하여 제N의 중간 데이터 생성 수단은 제(N-1)의 2차 검색의 결과 생성된 제N의 중간 데이터를 상기 제N의 2차 검색 수단에 입력하여 제N의 부분 비트 영역에 대해 2차 검색을 행하는 것을 특징으로 하는 연상 메모리.
  3. 제2항에 있어서, 상기 제1 내지 제N의 2차 검색 수단에 있어서,
    1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되는지 여부의 워드 유효 정보를, 제J 내지 제K(J, K는 1 이상 N 이하의 정수)의 각 2차 검색의 실행마다 갱신, 기억하여 각 워드의 선출 상태, 비선출 상태를 출력하 는 기억 수단과,
    워드의 선출 상태를 나타내는 신호를 입력으로 하고, 선출 상태에 있는 워드에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 상기 논리 연산에 의해 생성되는 제J 내지 제K의 중간 데이터를 출력하는 공유 중간 데이터 생성 수단과,
    2차 검색 제어 신호의 상태에 의해 워드에 있어서의 상기 기억 데이터 또는 마스크 정보의 제J 내지 제K의 부분 비트 영역에 대응하는 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 워드를 식별하는 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
    제J의 2차 검색으로부터 제K의 2차 검색을 차례로 실행하도록 상기 2차 검색 제어 신호를 출력하고, 또한 상기 2차 검색마다 상기 기억 수단의 상기 워드 유효 정보를 갱신하기 위해 상기 기억 제어 신호를 출력하는 제어 수단을 가짐으로써, 제J 내지 제K의 상기 2차 검색 수단의 구성 요소를 공유하는 것을 특징으로 하는 연상 메모리.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 1차 검색 수단에 있어서,
    1개 또는 복수의 속성 데이터를 검색 데이터로 하고, 상기 기억 데이터가 저장되어 있는 상기 워드와 대응하는 속성 일치 신호를 검색 결과로서 출력하는 제2 연상 메모리를 가지고,
    1차 검색으로서 상기 외부 검색 데이터의 전체 비트에 대해 1워드마다 마스 크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외한 결과 선출되고, 또한 대응하는 상기 속성 일치 신호가 상기 속성 데이터를 상기 제2 연상 메모리로 검색한 결과 일치를 나타내고 있는 워드를 식별하는 1차 식별 신호를 출력하는 것을 특징으로 하는 연상 메모리.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 1차 검색 수단에 있어서,
    검색 데이터로서 1차 제어 허가 신호가 유효 상태일 때에는 상기 외부 검색 데이터를 선택하고, 다른 경우에는 상기 중간 데이터를 선택하는 선택 수단과,
    1차 검색 허가 신호가 유효 상태일 때에는 해당 외부 검색 데이터의 전체 비트를 검색 데이터로 하여 1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행하고, 2차 검색 제어 신호가 유효 상태일 때에는 워드에 있어서의 상기 기억 데이터 또는 마스크 정보의 2차 검색 제어 신호의 상태에 의해 지정되는 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는 수단을 가지고,
    1차 제어 허가 신호를 유효하게 하여 상기 외부 검색 데이터의 전체 비트 영역을 검색 데이터로 하여 상기 1차 검색을 행한 후, 상기 중간 데이터의 상기 N개의 부분 비트 영역을 차례로 검색 데이터로 하여 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단을 가짐으로써,
    1차 검색 수단의 구성 요소와 2차 검색 수단의 구성 요소를 공유하는 것을 특징으로 하는 연상 메모리.
  6. 제2항 또는 제3항에 있어서, 상기 1차 검색 수단이 출력하는 1차 식별 신호 및 상기 N개의 2차 검색 수단이 출력하는 제1 내지 제N의 2차 식별 신호 중 1개 또는 복수를 기억하는 수단과, 상기 제1 내지 제 N의 중간 데이터 중 1개 또는 복수를 기억하는 수단 중 한 쪽 또는 양 쪽을 가짐으로써 파이프라인 처리를 가능하게 하는 것을 특징으로 하는 연상 메모리.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 중간 데이터 생성 수단에 입력하는 1차 검색 및 각 2차 검색을 통해 워드마다 대응하는 워드가 계속해서 선출되는지 여부의 정보의 갱신, 기억을 결선 논리를 이용하여 구성함으로써, 해당 정보를 상기 중간 데이터 생성 수단에 입력하기 위한 배선과, 1차 식별 신호 또는 2차 식별 신호의 배선을 공용하는 것을 특징으로 하는 연상 메모리.
  8. 제1항 또는 제3항에 있어서, 상기 중간 데이터의 각 부분 비트 영역에 상기 외부 검색 데이터의 대응하는 부분 비트 영역과 동일한 우선순위를 부여하여 해당 중간 데이터의 해당 부분 비트 영역에 대해 우선순위의 고위로부터 저위의 순으로 검색 데이터로서 상기 2차 검색을 실행하는 것을 특징으로 하는 연상 메모리.
  9. 제1항 또는 제2항에 있어서, 상기 기억 데이터로서 1차 검색시에 대응하는 상기 마스크 정보에 의해 검색 대상으로부터 제외되는 1비트 또는 복수의 비트에 특정 비트 패턴을 저장하고, 2차 검색으로서 해당 기억 데이터 또는 해당 기억 데이터의 검색 대상이 되는 부분 비트 영역이 검색 데이터로서 입력되는 상기 중간 데이터 또는 상기 중간 데이터의 부분 비트 영역과 일치한 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  10. 제1항 또는 제2항에 있어서, 상기 기억 데이터에 있어서 1차 검색시에 대응하는 상기 마스크 정보에 의해 검색 대상으로부터 제외되는 1비트 또는 복수의 비트가 특정 비트 패턴이라 간주하여 2차 검색을 행하고, 해당 기억 데이터 또는 해당 기억 데이터의 검색 대상이 되는 부분 비트 영역이 검색 데이터로서 입력되는 상기 중간 데이터 또는 상기 중간 데이터의 부분 비트 영역과 일치한 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  11. 제9항에 있어서, 상기 특정 비트 패턴은 모든 해당 비트가 기억 데이터의 무효 상태에 의해 구성되어 있는 것을 특징으로 하는 연상 메모리.
  12. 제10항에 있어서, 상기 특정 비트 패턴은 모든 해당 비트가 기억 데이터의 무효 상태에 의해 구성되어 있는 것을 특징으로 하는 연상 메모리.
  13. 제9항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 기억 데이터끼리의, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로, 그 논리합연산 결과를 상기 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  14. 제10항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 기억 데이터끼리의, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로, 그 논리합연산 결과를 상기 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  15. 제11항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 기억 데이터끼리의, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로, 그 논리합연산 결과를 상기 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  16. 제12항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 기억 데이터끼리의, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로, 그 논리합연산 결과를 상기 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  17. 제9항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 해당 논리곱 연산 결과의 비트가 마스크 정보의 무효 상태이면 상기 외부 검색 데이터의 동일 비트 위치의 정보를 중간 데이터의 동일 비트 위치의 상태로 하고, 상기 논리곱 연산 결과의 비트가 마스크 정보의 유효 상태이면 기억 데이터의 무효 상태를 상기 중간 데이터의 동일 비트 위치의 상태로 하여 상기 중간 데이터를 생성하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  18. 제10항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 해당 논리곱 연산 결과의 비트가 마스크 정보의 무효 상태이면 상기 외부 검색 데이터의 동일 비트 위치의 정보를 중간 데이터의 동일 비트 위치의 상태로 하고, 상기 논리곱 연산 결과의 비트가 마스크 정보의 유효 상태이면 기억 데이터의 무효 상태를 상기 중간 데이터의 동일 비트 위치의 상태로 하여 상기 중간 데이터를 생성하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  19. 제11항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 해당 논리곱 연산 결과의 비트가 마스크 정보의 무효 상태이면 상기 외부 검색 데이터의 동일 비트 위치의 정보를 중간 데이터의 동일 비트 위치의 상태로 하고, 상기 논리곱 연산 결과의 비트가 마스크 정보의 유효 상태이면 기억 데이터의 무효 상태를 상기 중간 데이터의 동일 비트 위치의 상태로 하여 상기 중간 데이터를 생성하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  20. 제12항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 해당 논리곱 연산 결과의 비트가 마스크 정보의 무효 상태이면 상기 외부 검색 데이터의 동일 비트 위치의 정보를 중간 데이터의 동일 비트 위치의 상태로 하고, 상기 논리곱 연산 결과의 비트가 마스크 정보의 유효 상태이면 기억 데이터의 무효 상태를 상기 중간 데이터의 동일 비트 위치의 상태로 하여 상기 중간 데이터를 생성하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 기억 데이터를 가지는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  21. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 논리 연산은 선출 상태에 있는 워드에 대응하는 마스크 정보끼리의, 마스크 정보의 유효 상태를 진으로 하는 논리곱 연산으로, 그 논리곱 연산 결과를 중간 데이터로 하고, 상기 2차 검색은 해당 중간 데이터와 일치하는 마스크 정보를 가지고 또한 그 시점까지 선출 상태에 있는 워드를 선출하는 것을 특징으로 하는 연상 메모리.
  22. 입력 전송 데이터에 부수하는 송신원 네트워크 어드레스 및 목적지 네트워크 어드레스를 구성 요소에 포함하는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수 개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 상기 입력 전송 데이터의 전송 가부를 판정하고,
    상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수 개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 갖는 네트워크 기기에 있어서,
    상기 입력 전송 데이터에 부수하는 상기 송신원 네트워크 어드레스 및 상기 목적지 네트워크 어드레스를 구성 요소에 포함하는 상기 판정 입력 데이터를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행하는 수단과,
    상기 1차 검색의 결과, 선출된 1개 또는 복수의 전송 규칙을 구성하는 기억 데이터끼리, 마스크 정보끼리, 상기 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 중간 데이터를 생성하는 수단과,
    상기 판정 입력 데이터의 제1 구성 요소로부터 최종 구성 요소에 대해 마찬가지로 차례로 상기 1차 검색, 상기 2차 검색마다 계속해서 선출되는 1개 또는 복수의 전송 규칙을 구성하는 기억 데이터끼리, 마스크 정보끼리, 상기 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 상기 논리 연산의 결과에 의해 갱신된 중간 데이터의 해당 구성 요소에 대응하는 비트 영역을 검색 데이터로 하고, 해당 구성 요소에 대응하는 비트 영역의 기억 데이터 또는 마스크 정보에 대해 선택적으로 2차 검색을 실행하는 수단과,
    최종적으로 선출된 전송 규칙에 의해, 해당 입력 전송 데이터 전송의 가부를 결정하는 수단을 구비하는 것을 특징으로 하는 네트워크 기기.
  23. 입력 전송 데이터에 부수하는 송신원 네트워크 어드레스 및 목적지 네트워크 어드레스를 구성 요소에 포함하는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수 개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 해당 입력 전송 데이터의 전송 가부를 판정하고,
    상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수 개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 가지는 네트워크 기기에 있어서,
    판정 입력 데이터의 전체 비트를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
    선출 상태로 계속 있는 전송 규칙에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 판정 입력 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 중간 데이터 생성 수단과,
    상기 판정 입력 데이터의 구성 요소의 비트 영역과 마찬가지로 상기 중간 데이터를 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 2차 검색 제어 신호에 의해 전송 규칙에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 실행하는지 여부를 제어 가능하고, 또한 검색의 결과 선출되는 전송 규칙을 식별하는 2차 식별 신호를 출력하는 1개 또는 복수의 공유 2차 검색 수단과,
    1차 검색 및 각 2차 검색을 통해 전송 규칙마다 대응하는 전송 규칙이 계속해서 선출되고 있는지 여부의 전송 규칙 유효 정보를 1차 검색 및 각 2차 검색 실행마다 갱신, 기억하여 그 선출 상태, 비선출 상태를 나타내는 일치 신호를 상기 중간 데이터 생성 수단에 출력하는 기억 수단과,
    상기 판정 입력 데이터의 전체 비트 영역을 검색 데이터로 하여 상기 1차 검색을 행한 후, 상기 중간 데이터의 각 부분 비트 영역을 순차 검색 데이터로 하여 상기 2차 검색을 실행하도록 상기 2차 검색 제어 신호를 출력하는 제어 수단과,
    상기 일치 신호에 의해 참조한 전송 가부 정보에 의해 해당 입력 전송 데이터의 전송 가부를 결정하는 수단을 갖는 것을 특징으로 하는 네트워크 기기.
  24. 입력 전송 데이터에 부수하는 송신원 네트워크 어드레스 및 목적지 네트워크 어드레스를 포함하는 N개(N은 2 이상의 정수)의 구성 요소로 구성되는 판정 입력 데이터를 검색 데이터로 하여 1개 또는 복수 개의 전송 규칙에 대해 검색을 행하였을 때의 일치 상태에 의해 해당 입력 전송 데이터의 전송 가부를 판정하는 수단과,
    상기 전송 규칙은 상기 판정 입력 데이터의 각 구성 요소에 대응하는 비트 영역을 포함하는 기억 데이터와, 전송 가부 정보와, 상기 전송 규칙의 1개 또는 복수 개마다 상기 기억 데이터 중에서 1비트 또는 복수 비트의 영역의 1개 또는 복수를 검색 대상으로부터 제외하는지 여부를 나타내는 마스크 정보에 의해 표현되는 전송 규칙 테이블을 가지는 네트워크 기기에 있어서,
    판정 입력 데이터의 전체 비트를 검색 데이터로 하여 상기 전송 규칙마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하는 1차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 1차 식별 신호를 출력하는 1차 검색 수단과,
    선출 상태로 계속 있는 전송 규칙에 대응하는 기억 데이터끼리, 해당 워드에 대응하는 마스크 정보끼리 및 외부 검색 데이터 중 1세트 또는 복수 세트를 입력으로 한 논리 연산에 의해 생성되는 중간 데이터를 출력하는 N개의 중간 데이터 생성 수단과,
    상기 판정 입력 데이터 구성 요소의 비트 영역과 마찬가지로 상기 중간 데이터를 분할한 부분 비트 영역의 각각 1개를 입력으로 하고, 전송 규칙에 있어서의 해당 부분 비트 영역에 대응하는 상기 기억 데이터 또는 마스크 정보의 비트 영역에 대해서만 선택적으로 2차 검색을 행한 결과 선출되는 전송 규칙을 식별하는 신호를 출력하는 N개의 2차 검색 수단과,
    상기 제N의 2차 검색 수단에 의해 선출된 전송 규칙에 의해 참조한 전송 가부 정보에 의해 해당 입력 전송 데이터의 전송 가부를 결정하는 수단을 가지고,
    상기 N개의 중간 데이터 생성 수단과 N개의 2차 검색 수단은, 제1 중간 데이터 생성 수단은 1차 검색의 결과 생성된 제1 중간 데이터를 상기 제1의 2차 검색 수단에 입력하여 제1 부분 비트 영역에 대해 제1의 2차 검색을 행하고, 제2 중간 데이터 생성 수단은 제1의 2차 검색의 결과 생성된 제2 중간 데이터를 상기 제2의 2차 검색 수단에 입력하여 제2 부분 비트 영역에 대해 제2의 2차 검색을 행하고, 제3 중간 데이터 생성 수단은 제2의 2차 검색의 결과 생성된 제3 중간 데이터를 상기 제3의 2차 검색 수단에 입력하여 제3 부분 비트 영역에 대해 2차 검색을 행하고, 이하 동일한 방식으로 구성하여 제N의 중간 데이터 생성 수단은 제(N-1)의 2차 검색의 결과 생성된 제N의 중간 데이터를 상기 제N의 2차 검색 수단에 입력하여 제N의 부분 비트 영역에 대해 2차 검색을 행하는 것을 특징으로 하는 네트워크 기기.
  25. 제22항 내지 제24항 중 어느 한 항에 기재된 상기 네트워크 기기를 통하여 네트워크에 접속된 기기 사이에서 데이터 통신을 행하는 것을 특징으로 하는 네트워크 시스템.
  26. r(r은 정수)개의 검색 데이터(3-1 내지 3-r)에 각각 대응하는 r개의 단일 영역 검색용 연상 메모리(36-1 내지 36-r)와,
    대응하는 r개의 일치선(37-j-1 내지 37-j-r: j=1, 2, … r)(m은 정수)의 신호와 1개의 공통 일치선(38-j)의 신호를 입력으로 하고, 공통 일치선(38-j)의 유효 상태를 진으로 하는 논리곱 연산을 수행한 결과를 논리곱신호(40-j)로서 출력하는 m개의 논리곱수단 (39-l 내지 39-m)과,
    대응하는 상기 논리곱 신호(40-j)를 입력으로 하고, 기억 제어 신호의 상태에 따라 대응하는 상기 공통 일치선(38-j)의 상태를 유지 또는 상기 논리곱 신호(40-j)의 값을 기억하는 기억 수단(43-1 내지 43-m)을 구비하고,
    각 단일 영역 검색용 연상 메모리(36-1 : i=1, 2, … r)는 각각 m개의 워드를 가지고, 1차 검색 허가 신호에 대응하는 i번째의 검색 데이터와 상기 워드 내에 저장된 m개의 기억 데이터에 대응되는 마스크 정보를 고려하여 비교하고, 일치하는 기억데이터에 대응하는 상기 일치선(37-j-l 내지 37-j-r)에 유효 상태를 나타내는 신호를 출력하는 1차 검색과,
    2차 검색 허가 신호에 응답하여, 상기 기억 데이터와 상기 마스크 정보의 양쪽 또는 한쪽을 이용해, m개의 상기 공통 일치선(38-1 내지 38-m) 상태에 따른 중간 데이터를 생성하고, 상기 중간 데이터와 상기 기억 데이터를 비교하여 일치하는 상기 기억 데이터 중에서 마스크 정보의 유효상태의 비트 수가 가장 적은 기억 데이터에 대응하는 상기 일치선에만 유효 상태를 나타내는 신호를 출력하는 2차 검색을 실행하는 것을 특징으로 하는 연상 메모리.
  27. r(r은 정수)개의 검색 데이터(3-1 내지 3-r)에 각각 대응하는 r 개의 단일 영역 검색용 연상 메모리 (26-1~26-r)를 구비하고,
    각 단일 영역 검색용 연상 메모리 ( 26-i : i=1, 2, … r)는 m(m은 정수)개의 워드를 가지고, 1차 검색 허가 신호에 응답하여 i 번째의 검색 데이터와 상기 워드 내에 저장된 m 개의 기억 데이터에 상응하는 마스크 정보를 고려하여 비교하고, 일치하는 기억 데이터에 대응하는 일치선 (37-1 내지 37-m) 에 유효 상태를 나타내는 신호를 출력하는 1차 검색과,
    2 차 검색 허가 신호에 응답하여 , 상기 기억 데이터와 상기 마스크 정보의 양쪽 또는 한쪽을 이용해, 상기 일치선(37-1 내지 37-m)의 상태에 대응하는 중간 데이터를 생성하고, 이 중간 데이터와 상기 기억 데이터를 비교하여 일치하는 상기 기억 데이터 중에서 마스크 정보의 유효상태의 비트 수가 가장 적은 기억 데이터에 대응하는 상기 일치선에만 유효 상태를 나타내는 신호를 출력하는 2차 검색을 실행하는 것을 특징으로 하는 연상 메모리.
  28. r(r은 정수)개의 검색 데이터(3-1~3-r)에 각각 대응하는 r 개의 단일 영역 검색용 연상 메모리(4-1 내지 4-r)와,
    대응하는 r개의 1차 일치선(17-j-1 내지 17-j-r : j=1, 2, … m)(m은 정수)의 신호와 1개의 공통 일치선(38-j)의 신호와 1개의 일치선(5-j)의 신호를 입력으로 하고, 상기 공통 일치선(38-j)의 유효 상태를 진으로 하는 논리곱 연산을 수행한 결과를 논리곱신호(40-j)로서 출력하는 m개의 제 1 논리곱수단(13-1 내지 13-m)과,
    대응하는 상기 제 1 논리곱신호(40-j)를 입력하고, 기억 제어 신호의 상태에 따라 상기 공통 일치선(38-j)의 상태를 보관 유지 또는 상기 제 1 논리곱신호(40-j)의 값을 기억하는 m개의 기억 수단(43-1 내지 43-m)과,
    대응하는 r개의 2차 일치선(18-j-1 내지 18-j-r : j=1, 2, … m)의 신호를 입력으로 하고, 상기 공통 일치선(38)의 유효 상태를 진으로 하는 논리곱 연산을 실시한 결과를 상기 일치선(5-j)의 신호로서 출력하는 m개의 제 2 논리곱수단 (15-1 내지 15-m)를 구비하고
    각 단일 영역 검색용 연상 메모리 (4-i : i=1 , 2, 3 … r)는 각각 m개의 1차 메모리워드와 2차 메모리워드를 가지고, 1차 검색 허가 신호에 응답하여 i번째의 검색 데이터와 상기 1차 메모리워드 내에 저장된 m개의 기억 데이터에 대응하는 마스크 정보를 고려하여 비교하고, 일치하는 기억 데이터에 대응하는 상기 1차 일치선(17-j-1 내지 17-j-r)에 유효 상태를 나타내는 신호를 출력하는 1차 검색과,
    2차 검색 허가 신호에 응답하여, 상기 1차 메모리워드 내에 저장된 상기 기억 데이터와 상기 마스크 정보의 양쪽 또는 한쪽을 이용하여, m개의 상기 공통 일치선(38-1 내지 38-m)의 상태에 대응하는 중간 데이터를 생성하고, 상기 중간 데이터와 상기 2차 메모리워드 내에 저장된 기억 데이터를 비교하여 일치하는 기억 데이터에 대응하는 2차 일치선(18-j-1 내지 18-j-r)에만 유효 상태를 나타내는 신호를 출력하는 2차 검색을 실행하는 것을 특징으로 하는 연상 메모리.
  29. r(r은 정수)개의 검색 데이터(3-1 내지 3-r)에 대응하는 각각 r개의 단일 영역 검색용 연상 메모리(30-1 내지 30-r)와,
    대응하는 r개의 1차 메모리워드에 각각 와이어드 AND 논리 접속된 m(m은 정수)개의 1차 일치선(17-1 내지 17-m)과,
    대응하는 r개의 2차 메모리워드에 각각 와이어드 AND 논리 접속된 m개의 2차 일치선(18-1 내지 18-m)과,
    상기 1차 일치선(17-j : j=1, 2,…m)의 신호를 드레인의 입력으로 하고, 상기 2차 일치선(18-j)의 신호를 게이트의 입력으로 하여, 상기 1차 일치선(17-j)의 유효 상태를 진으로 하는 논리곱 연산을 실시하여 그 연산결과를 소스에 출력하는 m개의 제 1 트랜지스터(34-1 내지 34-m)와,
    상기 논리 연산결과를 드레인의 입력으로 하여, 게이트에 입력되는 기억 제어 신호의 상태에 따라 상기 논리 연산결과를 보관 유지하는 m개의 제 2 트랜지스터(33-1 내지 33-m)를 구비하고,
    각 단일 영역 검색용 연상 메모리(30-i : i=1, 2, … r)는 각각 m개의 상기 1차 메모리워드와 상기 2차 메모리워드를 가지고, 1차 검색 허가 신호에 응답하여 대응하는 i번째의 검색 데이터와 상기 1차 메모리워드 내에 저장된 m개의 기억 데이터를 대응하는 마스크 정보를 고려하여 비교하고, 일치하는 기억 데이터에 대응하는 1차 일치선(17-j)에 유효상태를 나타내는 신호를 출력하는 1차 검색과,
    2차 검색 허가 신호에 응답하여, 상기 1차 메모리워드 내에 저장된 상기 기억 데이터와 상기 마스크 정보의 양쪽 또는 한쪽을 이용하여 m개의 상기 1차 일치선(17-1 내지 17-m) 상태에 따른 중간 데이터를 생성하고, 이 중간 데이터와 상기 2차 메모리워드 내에 저장된 기억 데이터를 비교하여 일치하는 기억 데이터에 대응하는 2차 일치선(18-j)에만 유효 상태를 나타내는 신호를 출력하는 2차 검색을 실행하는 것을 특징으로 하는 연상 메모리.
  30. r(r은 정수)개의 제 1 검색 데이터(3-1 내지 3-r)에 각각 대응하는 r개의 단일 영역 검색용 연상 메모리(4-1 내지 4-r)와,
    적어도 하나의 제 2 검색 데이터(48)에 대응하는 제 2 검색 데이터용 연상 메모리(49)와,
    각 단일 영역 검색용 메모리(4-1 내지 4-r)에 대응하는 r개의 1차 일치선(17-j-1 내지 17-j-r : j=1, 2, … m)(m은 정수)의 신호와 상기 제 2 검색 데이터용 연상 메모리(49)에 대응하는 적어도 하나의 일치선(90-j)의 신호와, 1개의 공통 일치선(38-j)의 신호와 1개의 일치선(5-j)의 신호를 입력으로 하고, 상기 공통 일치선(38-j)의 유효 상태를 진으로 하는 논리곱 연산을 실시한 결과를 논리곱신호(40-j)로서 출력하는 m개의 제 1 논리곱수단(91-1 내지 91-m)과,
    대응하는 상기 제 1 논리곱신호(40-j)를 입력으로 하여, 기억 제어 신호의 상태에 따라 상기 공통 일치선(38-j)의 상태를 보관 유지 또는 상기 제 1 논리곱신호(40-j)의 값을 기억하는 m개의 기억 수단(43-1 내지 43-m)과,
    대응하는 r번의 2차 일치선(18-j-1 내지 18-j-r : j=1, 2, …m)의 신호를 입력으로 하고, 상기 공통 일치선(38-j)의 유효상태를 진으로 하는 논리곱 연산을 실시한 결과를 상기 일치선(5-j)의 신호로 출력하는 m개의 제 2 논리곱수단(15-1 내지 15-m)를 구비하고,
    상기 제 2 검색 데이터용 연상 메모리(49)는 m개의 1차 메모리워드를 가지고, 상기 제 2 검색 데이터(48)와 상기 제 2 검색데이터용 연상 메모리(49)의 상기 제 1차 메모리워드 내에 저장된 m개의 기억 데이터를 대응하는 마스크 정보를 고려하여 비교하고, 일치하는 기억 데이터에 대응하는 상기 일치선(90-j)에 유효상태를 나타내는 신호를 출력하는 검색과,
    각 단일 영역 검색용 연상 메모리(4-i : i=1, 2, r)는 각각 m개의 1차 메모리워드와 2차 메모리워드를 가지고, 1차 검색 허가 신호에 응답하여 대응하는 i번째의 검색 데이터(3-i)와 상기 1차 메모리워드 내에 저장된 m개의 기억 데이터를 대응하는 마스크 정보를 고려하여 비교하고, 일치하는 기억 데이터에 대응하는 상기 1차 일치선(17-j-1 내지 17-j-r)에 유효상태를 나타내는 신호를 출력하는 1차 검색과,
    2차 검색 허가 신호에 응답하여, 상기 1차 메모리워드 내에 저장된 상기 기억 데이터와 상기 마스크 정보의 양쪽 또는 한쪽을 이용하여, m개의 상기 공통 일치선(38-1 내지 38-m)의 상태에 따른 중간 데이터를 생성하고, 이 중간 데이터와 상기 2차 메모리워드내에 저장된 상기 기억 데이터를 비교하여 일치하는 기억 데이터에 대응하는 상기 2차 일치선(18-j-1 내지 18-j-r)에만 유효상태를 나타내는 신호를 출력하는 2차 검색을 수행하는 것을 특징으로 하는 연상 메모리.
KR20037013975A 2001-04-25 2001-04-25 연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템 KR100666241B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2001/003562 WO2002091386A1 (fr) 2001-04-25 2001-04-25 Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau

Publications (2)

Publication Number Publication Date
KR20030092104A KR20030092104A (ko) 2003-12-03
KR100666241B1 true KR100666241B1 (ko) 2007-01-10

Family

ID=11737276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20037013975A KR100666241B1 (ko) 2001-04-25 2001-04-25 연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템

Country Status (7)

Country Link
US (2) US6956756B2 (ko)
EP (1) EP1385173A4 (ko)
JP (1) JP3957637B2 (ko)
KR (1) KR100666241B1 (ko)
CN (1) CN1505819A (ko)
TW (1) TWI226065B (ko)
WO (1) WO2002091386A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005013566A1 (ja) * 2003-07-31 2005-02-10 Fujitsu Limited データ検索方法及び装置
US7392229B2 (en) * 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
JP4795740B2 (ja) * 2005-07-19 2011-10-19 株式会社日立製作所 半導体装置
US7515449B2 (en) * 2006-09-15 2009-04-07 International Business Machines Corporation CAM asynchronous search-line switching
US8065249B1 (en) 2006-10-13 2011-11-22 Harris Curtis L GPSTP with enhanced aggregation functionality
US7774286B1 (en) 2006-10-24 2010-08-10 Harris Curtis L GPSTP with multiple thread functionality
US8280901B2 (en) 2008-01-03 2012-10-02 Masterfile Corporation Method and system for displaying search results
KR101011905B1 (ko) * 2010-02-09 2011-02-01 주식회사 강림정공 다줄 나사 탭핑 머시인
US8667230B1 (en) 2010-10-19 2014-03-04 Curtis L. Harris Recognition and recall memory
US20130080448A1 (en) * 2011-09-23 2013-03-28 The Boeing Company Associative Memory Technology in Intelligence Analysis and Course of Action Development
US9659110B2 (en) * 2011-10-20 2017-05-23 The Boeing Company Associative memory technology for analysis of requests for proposal
US9135997B2 (en) * 2013-01-18 2015-09-15 Fujitsu Limited System and method for filtering addresses
US10402816B2 (en) * 2016-12-31 2019-09-03 Square, Inc. Partial data object acquisition and processing
US10621590B2 (en) 2017-02-22 2020-04-14 Square, Inc. Line-based chip card tamper detection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10255485A (ja) * 1997-03-10 1998-09-25 Kawasaki Steel Corp 連想メモリおよびネットワークフレーム中継器
JP3191737B2 (ja) 1997-08-29 2001-07-23 日本電気株式会社 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
JP3166700B2 (ja) 1998-03-12 2001-05-14 日本電気株式会社 ルータ及び最長一致検索装置
JP3593920B2 (ja) * 1999-05-10 2004-11-24 日本電気株式会社 連続検索動作可能な最短マスク出力機能付連想メモリ
US6647490B2 (en) * 1999-10-14 2003-11-11 Advanced Micro Devices, Inc. Training line predictor for branch targets

Also Published As

Publication number Publication date
JPWO2002091386A1 (ja) 2004-08-26
WO2002091386A1 (fr) 2002-11-14
EP1385173A4 (en) 2005-10-26
US7397682B2 (en) 2008-07-08
US20060120128A1 (en) 2006-06-08
EP1385173A1 (en) 2004-01-28
US6956756B2 (en) 2005-10-18
TWI226065B (en) 2005-01-01
KR20030092104A (ko) 2003-12-03
JP3957637B2 (ja) 2007-08-15
CN1505819A (zh) 2004-06-16
US20040080973A1 (en) 2004-04-29

Similar Documents

Publication Publication Date Title
KR100666241B1 (ko) 연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템
US6480931B1 (en) Content addressable storage apparatus and register mapper architecture
US6295576B1 (en) Associative memory having a mask function for use in a network router
US7042748B2 (en) Content addressable memory with cascaded array
US4283771A (en) On-chip bubble domain relational data base system
WO1999038071A1 (en) Reconfigurable logic for table lookup
JP3599273B2 (ja) 内容参照可能メモリの改良
US10891337B2 (en) Content addressable memory and semiconductor device
US10957391B2 (en) Array organization and architecture to perform range-match operations with content addressable memory (CAM) circuits
JPH0676583A (ja) 内容番地付記憶装置および一致ワード不要化方法
CN107818114A (zh) 一种数据处理方法、装置及数据库
JPH01500377A (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
US6766317B2 (en) Range check cell and a method for the use thereof
US7200712B2 (en) Associative memory system, network device, and network system
US8874837B2 (en) Embedded memory and dedicated processor structure within an integrated circuit
JPH0421997A (ja) 連想記憶回路
US6980452B2 (en) Associative memory having a mask function for use in a network router
Santhi et al. Design and Implementation of Reversible Logic Based Ternary Content Addressable Memory
JP3845814B2 (ja) 連想メモリとその検索方法及びルータとネットワークシステム
JP3795043B2 (ja) 連想メモリおよびその検索方法およびルータおよびネットワークシステム
JP2002124088A (ja) 連想メモリ装置およびそのメモリデータ移動方法
JPH11260068A (ja) メモリ回路及びアドレス変換装置
JPH0259956A (ja) ニューラルネットワーク装置
Ribeiroda Silva Matos The Binary Decision Diagram: A Tool for Logic Design and Implementation
JP2001357679A (ja) 連想メモリおよびその検索方法およびルータおよびネットワークシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20121004

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131223

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee