KR20040016892A - 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템 - Google Patents

연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템 Download PDF

Info

Publication number
KR20040016892A
KR20040016892A KR10-2003-7016727A KR20037016727A KR20040016892A KR 20040016892 A KR20040016892 A KR 20040016892A KR 20037016727 A KR20037016727 A KR 20037016727A KR 20040016892 A KR20040016892 A KR 20040016892A
Authority
KR
South Korea
Prior art keywords
data
associative memory
intermediate data
search
stored
Prior art date
Application number
KR10-2003-7016727A
Other languages
English (en)
Other versions
KR100542467B1 (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 KR20040016892A publication Critical patent/KR20040016892A/ko
Application granted granted Critical
Publication of KR100542467B1 publication Critical patent/KR100542467B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

복수의 연상 메모리를 접속할 때에 우선순위 인코더를 불필요하게 한다. 연상 메모리(204)의 1차 검색용 연상 메모리(4)는 검색 데이터(2)와 마스크 정보를 고려하여 일치하는 기억 데이터끼리에 대해서, 기억 데이터의 유효 상태를 진으로 하는 논리합연산으로서 얻을 수 있는 중간 데이터(6)를 중간 데이터 판정부(41)와, 내부의 2차 검색용 연상 메모리(5)에 출력한다. 중간 데이터 연산부(42)는 p개의 연상 메모리(204)로부터 입력되는 중간 데이터(6) 중에서, 기억 데이터의 무효 상태인 비트수가 최소인 것에 대응하는 유효 검출 신호(45)에 유효 상태를 출력한다. p개의 2차 검색용 연상 메모리(5)는 대응하는 중간 데이터(6)를 검색 데이터로서 기억 데이터를 검색하여 일치선(3)을 출력한다. p개의 논리합연산 수단(46)은 대응하는 유효 검출 신호(45)가 무효 상태인 경우에는 대응하는 일치선(3)의 값을 모두 무효 상태로서 어드레스 신호 생성부(11)에 입력하여, 어드레스 출력 신호(12)에 부호화한다.

Description

연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템 {Associative Memory System, Network Device, and Network System}
일반적으로 네트워크 시스템에서는 네트워크에 참가하고 있는 유저 단말기(예를 들면 개인용 컴퓨터 등)에 대해서 다른 유저 단말기와 식별하기 위한 네트워크 어드레스를 내부의 그룹마다 계층적으로 할당한다. 따라서, 계층이 상위 그룹일수록 네트워크 어드레스의 유효 부분이 짧고, 하위 계층의 그룹일수록 길어진다. 그로 인해, 네트워크에 참가하고 있는 유저 단말기 사이의 통신 데이터 전송을 제어하기 위한 네트워크 기기(예를 들면 네트워크 라우터 등)에 통신 데이터가 입력되었을 경우, 그 목적지(target) 네트워크 어드레스 및 송출원(source) 네트워크 어드레스로부터 경유지를 결정하는 처리나, 전송 가부를 판정하는 처리에는 네트워크 어드레스의 유효 부분의 길이를 고려하여 비교하는 기능이 불가결하고, 이 기능을 실현하기 위하여 연상 메모리가 이용되고 있다.
종래의 컴퓨터 네트워크의 구성예를 도시하는 접속도를 도24에 도시한다. 네트워크에 참가하고 있는 유저 단말기에는 상술한 바와 같이, 그 단말기가 속하는 그룹에 대응하여 미리 결정된 규칙에 의해 계층적으로 네트워크 어드레스를 할당할 수 있다. 여기에서는 네트워크 어드레스는 복수 자리(桁)의 수치, 예를 들면 4자리의 수치(a. b. c. d)로 표현되는 것으로서 설명한다. 또한, 미리 결정된 규칙은, 예를 들어 네트워크 어드레스의 1번째의 수치로 영국, 독일, 일본 등의 나라를 나타내고, 2번째의 수치로 나라 안의 도시 명을 나타내고, 또한 3번째의 수치로 도시 안의 기업 명을 나타내는 것과 같은 계층 구조를 취하고 있다. 이후, 이 계층을 세그먼트(segment)로 부르는 것으로 한다. 도24는 세그먼트의 계층 구조를 모의적으로 도시한 것이다. 도에 있어서 굵은 선으로 둘러싸인 1개의 직사각형(矩形, 直角形)이 1개의 세그먼트이다. 도24에서는 네트워크 어드레스의 1번째의 수치가 1인 세그먼트1과, 1번째의 수치가 2인 세그먼트2와, 1번째의 수치가 3인 세그먼트3이 최상위의 세그먼트로서 존재하고 있다. 세그먼트1 아래의 계층에 상위 2개의 수치가 1. 2인 네트워크 어드레스를 가지는 세그먼트4가 있고, 또한 그 아래에 상위 3개의 수치가 1. 2. 2인 네트워크 어드레스를 가지는 세그먼트6이 있고, 또한 그 안에 네트워크 어드레스(1. 2. 2. 1)를 가지는 유저 단말기 PC(401-1)가 접속되어 있다. 또한, 세그먼트2 아래의 계층에 상위 2개의 수치가 2. 1인 네트워크 어드레스를 가지는 세그먼트5가 있고, 또한 그 아래에 상위 3개의 수치가 2. 1. 2인 네트워크 어드레스를 가지는 세그먼트7이 있고, 또한 그 안에 네트워크 어드레스(2. 1. 2. 3)를 가지는 유저 단말기 PC(401-2)가 접속되어 있다. 또한, 세그먼트3 아래의계층에 상위 2개의 수치가 3. 1인 네트워크 어드레스를 가지는 세그먼트8이 있다. 도에 예시되어 있는 어드레스에 있어서, *는 돈케어(don't care, 아무거나)를 의미한다.
각 세그먼트는 네트워크에 참가하고 있는 유저 단말기 사이의 통신 데이터의 전송을 제어하기 위해서 네트워크 기기를 가지고 있다. 도24의 구성예에서는 세그먼트1은 네트워크 기기(400-1)를, 세그먼트2는 네트워크 기기(400-2)를, 세그먼트3은 네트워크 기기(400-3)를, 세그먼트4는 네트워크 기기(400-4)를, 세그먼트5는 네트워크 기기(400-5)를, 세그먼트6은 네트워크 기기(400-6)를, 세그먼트7은 네트워크 기기(400-7)를, 세그먼트8은 네트워크 기기(400-8)를 각각 가지고 있다. 세그먼트가 가지는 네트워크 기기는 그 네트워크 기기에 접속되어 있는 유저 단말기 또는 다른 네트워크 기기로부터 입력된 통신 데이터를, 통신 데이터에 부수(付隨)하는 경유지 어드레스와 네트워크 기기의 접속 관계를 기초로 최적인 전송 루트를 계산하고, 그 최적인 루트를 경유하여 목적지에 데이터를 전송하는 기능을 가진다. 도24의 구성예에서는, 각 네트워크 기기는 그 세그먼트 바로 아래의 네트워크 기기 또는 유저 단말기와 접속되고 있다. 또한, 네트워크 기기(400-3)는 네트워크 기기(400-1), 네트워크 기기(400-6), 네트워크 기기(400-2), 네트워크 기기(400-7)와도 접속하고 있다.
이들 각 네트워크 어드레스는 그 각 자리를 4진수로 표현한 전체 8비트의 비트열로 표현되는 것으로 가정한다. 예를 들면, 4진수 표기의 네트워크 어드레스(1. 2. *. *)는 비트열(01. 10. 00. 00)로 표현된다. 이후, 이 표현의 비트열을 기억데이터라고 부른다. 여기서, 네트워크 어드레스 중의 *은 돈케어이므로, 대응하는 기억 데이터"01. 10. 00. 00"의 비트열의 상위 4비트가 유효하고, 그 이하의 비트는 무효라는 점을 나타낼 필요가 있다. 여기서, 마스크 정보라고 불리는 정보를 기억 데이터와 쌍대(對)로 하여 기억시키고 있다. 이후, 이 쌍대를 구조화 데이터로 부른다. 상기의 예에서는 비트열 "11. 11. 00. 00"으로 표현된다. 여기서, "1"이 마스크 무효 상태를, "0"이 마스크 유효 상태를 나타내고 있다. 마스크 유효 상태가 되고 있는 마스크 정보에 대응하는 기억 데이터의 비트에는 기억 데이터의 무효 상태 "0"을 저장하는 것으로 한다.
각 세그먼트에 입력된 통신 데이터에 대해서 네트워크 기기가 가지는 통신 데이터 제어 기능으로서는, 통신 데이터에 부수하는 송출원 네트워크 어드레스와 목적지 네트워크 어드레스 및 미리 설정되어 있는 전송 규칙을 기초로 전송의 가부를 계산하는 기능이나, 상기 목적지 어드레스와 네트워크 기기의 접속 관계를 기초로 최적인 전송 루트를 계산하여 경유지 네트워크 어드레스를 생성하는 기능 등이 있다.
예를 들면, 도24에 있어서 4진수 표기의 목적지 네트워크 어드레스가 PC(401-2)에 대응하는 (2. 1. 2. 3)인 통신 데이터를 네트워크 기기(400-3)가 전송하는 경우, 도면으로부터 분명히 알 수 있듯이 4진수 표기의 네트워크 어드레스 (2. *. *. *)에 대응하는 네트워크 기기(400-2)에 전송하는 것보다도, 4진수 표기의 네트워크 어드레스(2. 1. 2. *)에 대응하는 네트워크 기기(400-7)에 전송하는 것이 최적이다. 즉, 마스크 정보를 고려하여 목적지 네트워크 어드레스와 비교한결과, 일치하는 네트워크 어드레스에 대응하는 네트워크 기기 중에서, 그 네트워크 어드레스에 있어서의 마스크 유효 상태의 비트수가 가장 적은 마스크 정보를 가지는 네트워크 기기를 선택하는 것이 최적이다.
이와 같이, 각 유저 단말기끼리를 직접 통신회선으로 접속하는 것이 아니라 네트워크 기기에 의해 통신 데이터의 전송을 제어하여 통신을 행하는 것에 의하여, 유한의 통신회선을 안전성을 확보하면서 효율적으로 사용하고 있다.
다음에 도면을 참조하여 종래의 네트워크 기기의 설명을 한다. 도25는 종래의 네트워크 기기의 일구성예를 도시한 블럭도이다. 도25에서는 종래의 네트워크 기기(400)에 대해서, 도24의 네트워크 기기(400-3)에 적용한 경우를 예로 들어 그 구성과 동작을 설명한다.
네트워크 기기(400)는 입력 통신 데이터(407)를 입력으로 하고, 출력 통신 데이터(408)를 출력한다. 입력 통신 데이터(407)는 송출원 네트워크 어드레스(409)와, 경유지 네트워크 어드레스(410)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 출력 통신 데이터(408)는 송출원 네트워크 어드레스(409)와, 제2의 경유지 네트워크 어드레스(412)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 도25에서는 종래의 네트워크 기기(400)를 도24의 네트워크 기기(400-3)에 적용한 경우를 예로 들어 설명하므로, 입력 통신 데이터(407)의 경유지 네트워크 어드레스(410)는 당연히 네트워크 기기(400-3)의 네트워크 어드레스가 되고 있다.
네트워크 기기(400)는 목적지 네트워크 어드레스 추출부(405)와, 연상 메모리(300)와, 인코더(308)와, 경유지 네트워크 어드레스 저장 메모리(402)와, 경유지네트워크 어드레스 변경부(406)에 의해 구성된다. 목적지 네트워크 어드레스 추출부(405)는 입력 통신 데이터(407)의 목적지 네트워크 어드레스(410)를 추출하여, 검색 데이터(307)로서 연상 메모리(300)에 입력한다.
네트워크 기기(400)에는 네트워크 중에서, 네트워크 기기(400)에 접속되어 있는 네트워크 기기 중에서, 자기 자신이 속하는 세그먼트의 외부에 있는 네트워크 기기가 속하는 세그먼트의 네트워크 어드레스를 연상 메모리(300)의 연상 메모리 워드(305-0 내지 305-3)에 각각 저장하고 있다. 도25에서는 종래의 네트워크 기기(400)를 도24의 네트워크 기기(400-3)에 적용한 경우를 예로 들어 설명하고 있으므로, 연상 메모리 워드(305-0)에는 네트워크 기기(400-1)가 속하는 세그먼트1의 4진수 표기의 네트워크 어드레스 (1. *. *. *)를 전술한 바와 같이 기억 데이터 "01. 00. 00. 00"과, 마스크 정보 "11. 00. 00. 00"의 쌍대로 표현되는 구조화 데이터의 형식으로 기억하고 있다. 동일하게, 연상 메모리 워드(305-1)에는 네트워크 기기(400-2)가 속하는 세그먼트2의 4진수 표기의 네트워크 어드레스 (2. *. *. *)를, 연상 메모리 워드(305-2)에는 네트워크 기기(400-6)가 속하는 세그먼트6의 4진수 표기의 네트워크 어드레스 (1. 2. 2. *)를, 연상 메모리 워드(305-3)에는 네트워크 기기(400-7)가 속하는 세그먼트7의 4진수 표기의 네트워크 어드레스 (2. 1. 2. *)를 기억하고 있다. 연상 메모리(300)는 통상의 메모리와 동일하게 어드레스를 지정하여 기억 데이터의 쓰기, 읽기를 행하는 기능 외에, 대응하는 마스크 정보를 고려하여 입력된 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터 중에서 마스크 정보의 마스크 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-0 내지 301-3)을 유효 상태로 하는 기능을 가지고 있다. 이 기능은, 구조화 데이터의 형식의 정의에 의해, 대응하는 마스크 정보를 고려하여 입력된 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터 중에서 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-0 내지 301-3)을 유효 상태로 하는 기능과 동등하다. 종래, 이러한 종류의 연상 메모리(300)로서는 예를 들면 일본 특허출원 2000-181406, 일본 특허출원 2000-243485, 국제 출원 번호 PCT/JP01/03562가 있다.
연상 메모리(300)가 출력한 일치선(301-0 내지 301-3)은 인코더(308)에 의해 어드레스 출력 신호(309)에 부호화 된다. 경유지 네트워크 어드레스 저장 메모리(402)에는 연상 메모리(300)의 각 연상 메모리 워드(305-0 내지 305-3)에 구조화 데이터의 형식으로 저장되어 있는 세그먼트의 네트워크 어드레스에 대응하는 네트워크 기기의 네트워크 어드레스를 연상 메모리(300)의 저장 어드레스와 동일한 어드레스의 메모리 워드(403-0 내지 403-3)에 기억시키고 있다. 예를 들어, 연상 메모리(300)의 연상 메모리 워드(305-0)에는 4진수 표기의 어드레스 (1. *. *. *)가 기억되어 있지만, 이것에 대응하는 도24의 네트워크 기기(400-1)의 네트워크 어드레스가 경유지 네트워크 어드레스 저장 메모리(402)의 메모리 워드(403-0)에 저장되어 있다. 동일하게 경유지 네트워크 어드레스 저장 메모리(402)의 메모리 워드(403-1)에는 네트워크 기기(400-2)의 어드레스가, 메모리 워드(403-2)에는 네트워크 기기(400-6)의 어드레스가, 메모리 워드(403-3)에는 네트워크 기기(400-7)의 어드레스가 저장되어 있다. 경유지 네트워크 어드레스 저장 메모리(402)는 어드레스 출력 신호(309)를 리드 어드레스로서 지정되는 입력 데이터를 메모리 데이터 신호(404)로서 출력한다.
경유지 네트워크 어드레스 변경부(406)는 입력 통신 데이터(407)의 경유지 네트워크 어드레스(410)를 메모리 데이터 신호(404)에 대응하여 제2의 경유지 네트워크 어드레스(412)로 변경하고, 출력 통신 데이터(408)로서 제2의 경유지 네트워크 어드레스(412)에 대응하는 네트워크 기기를 향하여 전송을 행한다.
예를 들어 입력 통신 데이터(407)의 4진수 표기의 목적지 네트워크 어드레스(411)가 (1. 2. 2. 1)인 경우, 연상 메모리(300)에서의 검색 동작 종료시에는 연상 메모리 워드(305-2)가 저장하고 있는 4진수 표기의 (1. 2. 2. *)에 대응하는 일치선(301-2)만이 유효 상태가 된다. 이에 따라, 인코더(308)는 어드레스 출력 신호(309)로서 10진수 표기로 "2"를 출력하고, 경유지 네트워크 어드레스 저장 메모리(402)는 네트워크 기기(400-6)의 네트워크 어드레스를 메모리 데이터 신호(404)로서 출력한다. 경유지 네트워크 어드레스 변경부(406)에 의해, 출력 통신 데이터(408)의 제2의 경유지 네트워크 어드레스(412)로서 네트워크 기기(400-6)의 네트워크 어드레스를 설정하고, 네트워크 기기(400-6)를 향하여 출력 통신 데이터(408)를 전송한다.
[종래의 연상 메모리의 설명]
도23은 종래의 연상 메모리의 일구성예를 도시한 블럭도이다. 도23에서는 도24의 네트워크 기기(400-3)에 적용한 경우를 예로 들어, 그 구성과 동작을 설명한다. 따라서, 연상 메모리(300)는 8비트 4어(語, 워드)의 구성으로 가정한다.
연상 메모리(300)는 8비트 4어 구성의 1차 검색용 연상 메모리(302)와, 8비트 4어 구성의 2차 검색용 연상 메모리(303)로부터 구성된다. 1차 검색용 연상 메모리(302)는 각 8비트의 기억 데이터 및 마스크 정보로부터 구성되는 구조화 데이터를 저장할 수 있는 1차 연상 메모리 워드(305-0 내지 305-3)를 가진다. 여기서, 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것에 의해 표현된다. 1차 검색용 연상 메모리(302)는 대응하는 마스크 정보를 고려하여 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 일치한 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진(眞, 참)으로 하는 논리합연산을 실시하여, 얻어진 값을 중간 데이터(304-1 내지 304-8)로서 출력한다. 2차 검색용 연상 메모리(303)는 대응하는 1차 연상 메모리 워드(305-0 내지 305-3)에 저장되어 있는 8비트의 기억 데이터와 같은 값을 2차 기억 데이터로서 저장하고 있는 연상 메모리 워드(306-0 내지 306-3)를 가지고, 8비트의 중간 데이터(304-1 내지 304-8)와 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행하고, 일치하는 2차 기억 데이터를 저장하고 있는 연상 메모리 워드(306-0 내지 306-3)에 대응하는 일치선(301-0 내지 301-3)을 유효 상태로 한다. 일치선(301-0 내지 301-3)은 인코더(308)에 의해, 도시하지 않은 메모리를 액세스하기 위한 어드레스 출력 신호(309)에 부호화 된다. 또한, 인코더(308)는 우선순위 기능을 가질 필요는 없다.
또한, 본 예에서는 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 기억 데이터와 동일하게 중간 데이터(304-1 내지 304-8)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(301-0 내지 301-3)의 유효 상태를 "1", 무효 상태를 "0"으로 한다.
여기서, 1차 검색용 연상 메모리(302)의 각 1차 연상 메모리 워드(305-0 내지 305-3)에 저장되어 있는 기억 데이터 및 마스크 정보에는 도25와 동일하게 네트워크 기기(400-3)의 4진수 표기의 네트워크 어드레스(3. *. *. *) 이외의 접속 정보를 기억하고 있는 것으로 한다. 이 때, 접속 정보 안의 돈케어 "*"상태의 비트는 마스크 정보의 해당 비트를 마스크 정보의 유효 상태 "0"으로 하는 것으로 표현된다. 기억 데이터의 해당 비트에는 기억 데이터의 무효 상태 "0"을 저장한다.
즉, 1차 연상 메모리 워드(305-0)에는 4진수 표기의 (1. *. *. *)를 표현하기 위하여 기억 데이터에는 2진수 표기로 "01. 00. 00. 00"을, 마스크 정보로서 "11. 00. 00. 00"을 저장하고 있다. 동일하게 1차 연상 메모리 워드(305-1)에는 4진수 표기의 (2. *. *. *)를 표현하기 위하여 기억 데이터에는 2진수 표기로 "10. 00. 00. 00"을, 마스크 정보로서 "11. 00. 00. 00"을 저장하고 있다. 1차 연상 메모리 워드(305-2)에는 4진수 표기의 (1. 2. 2. *)를 표현하기 위하여 기억 데이터에는 2진수 표기로 "01. 10. 10. 00"을, 마스크 정보로서"11. 11. 11. 00"을 저장하고 있다. 1차 연상 메모리 워드(305-3)에는 4진수 표기의 (2. 1. 2. *)를 표현하기 위하여 기억 데이터에는 2진수 표기로 "10. 01. 10. 00"을, 마스크 정보로서 "11. 11. 11. 00"을 저장하고 있다.
1차 검색용 연상 메모리(302)는 대응하는 마스크 정보를 고려하여 비교한 결과, 외부로부터 입력된 검색 데이터(307)와 일치하는 기억 데이터를 1차 연상 메모리 워드(305-0 내지 305-3)중에서 검색하는 1차 검색을 행한다. 상기의 종래 네트워크 기기의 동작 설명과 동일하게 도23에서는 검색 데이터(307)로서 도24의 PC(401-2)의 4진수 표기의 네트워크 어드레스 (1. 2. 2. 1)를 입력한 경우의 동작을 나타낸다. 이 때 1차 검색의 결과로서, 1차 연상 메모리 워드(305-0)에 저장되어 있는 4진수 표기의 (1. *. *. *)와, 1차 연상 메모리 워드(305-2)에 저장되어 있는 4진수 표기의 (1. 2. 2. *)가 검색 데이터(307)와 일치한다. 1차 검색용 연상 메모리(302)는 검색 데이터(307)와 일치하는 1차 연상 메모리 워드(305-0, 305-2) 중에 저장되어 있는 2진수 표기의 기억 데이터 "01. 00. 00. 00", "01. 10. 10. 00"에 대하여, 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하여, 얻어진 8비트의 값 "01. 10. 10. 00"을 중간 데이터(304-1 내지 304-8)로서 출력한다.
2차 검색용 연상 메모리(303)의 각 연상 메모리 워드(306-0 내지 306-3)에 저장하는 2차 기억 데이터로서, 1차 검색용 연상 메모리(302)에 대응하는 1차 연상 메모리 워드(305-0 내지 305-3)에 저장되어 있는 기억 데이터와 같은 값을 저장한다. 즉, 2진수 표기로 연상 메모리 워드(306-0)에는 "01. 00. 00. 00"을, 연상 메모리 워드(306-1)에는 "10. 00. 00. 00"을, 연상 메모리 워드(306-2)에는 "01. 10. 10. 00"을, 연상 메모리 워드(306-3)에는 "10. 01. 10. 00"을 각각 저장하고 있다.
2차 검색용 연상 메모리(303)는 1차 검색용 연상 메모리(302)로부터 입력된 중간 데이터(304-1 내지 304-8)의 2진수 표기 상태 "01101000"과 모든 비트가 일치하는 2차 기억 데이터를 연상 메모리 워드(306-0 내지 306-3) 중에서 검색하는 2차검색을 실행한다. 본 예에서는, 연상 메모리 워드(306-2)가 저장하는 2차 기억 데이터가 완전히 일치하여, 대응하는 일치선(301-2)에 유효 상태 "1"을 출력한다. 불일치하는 나머지의 일치선(301-0, 301-1 및 301-3)에는 무효 상태 "0"을 출력한다. 인코더(308)는 연상 메모리(300)로부터 입력되는 일치선(301-0 내지 301-3)의 상태 "0100"을 부호화한 결과, 2진수 표기의 "10", 10진수 표기의 "2"를 어드레스 출력 신호(309)로서 출력한다.
따라서, 연상 메모리(300)는 대응하는 마스크 정보를 고려하여 입력된 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터 중에서 마스크 정보의 유효 상태의 비트가 가장 적은 기억 데이터, 따라서 대응하는 마스크 정보를 고려하여 입력된 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터 중에서 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-2)에만 유효 상태를 출력할 수 있다. 그로 인해, 우선순위 기능이 없는 인코더(308)를 이용해도 어드레스 출력 신호(309)로서 10진수 표기의 "2"를 올바르게 얻을 수 있다는 것을 알 수 있다. 또한, 상술한 바와 같이 구조화 데이터를 소트하지 않고 랜덤인 순서로 1차 연상 메모리 워드(305-0 내지 305-3)에 저장하고 있지만, 저장하는 순서에 따르지 않고 올바른 결과를 얻을 수 있다는 것을 알 수 있다.
종래의 연상 메모리(300)에서는 다음에 나타내듯이, 저장 용량을 증가시키기 위해서 연상 메모리(300)를 복수 접속한 경우, 구조화 데이터를 소트 처리하여 저장하고, 또한 우선순위 인코더를 이용하지 않으면 올바른 어드레스 출력 신호를 얻을 수 없다.
도26은 종래의 연상 메모리(300-0, 300-1)를 접속했을 때의 제1의 구성예와 동작예를 도시한 블럭도이다. 본 예에서는 도23의 설명과 동일하게 연상 메모리(300-0, 300-1)는 각각 8비트 4어 구성으로 하고, 연상 메모리(300-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다. 따라서, 전체로서 8어의 용량이 있게 된다.
검색 데이터(307)는 접속되어 있는 모든 연상 메모리(300-0, 300-1)에 입력된다. 연상 메모리(300-0)는 일치선(301-0-0 내지 301-3-0)을, 연상 메모리(300-1)는 일치선(301-0-1 내지 301-3-1)을, 각각 우선순위 기능이 없는 인코더(310)에 출력한다. 인코더(310)는 일치선(301-0-0 내지 301-3-1)을 도시하지 않은 메모리를 액세스하기 위한 어드레스 출력 신호(309)에 부호화한다.
연상 메모리(300-0)는 1차 검색용 연상 메모리(302-0)와 2차 검색용 연상 메모리(303-0)로부터 구성되어, 1차 검색용 연상 메모리(302-0)에서 중간 데이터(304-1-0 내지 304-8-0)가 2차 검색용 연상 메모리(303-0)에 출력된다. 1차 검색용 연상 메모리(302-0)가 가지는 1차 연상 메모리 워드(305-0-0 내지 305-3-0)에는 도23의 설명과 동일하게 4진수 표기의 구조화 데이터로서 각각 (1. *. *. *), (2. *. *. *), (1. 2. 2. *), (2. 1. 2. *)를 표현하는 것과 같이, 기억 데이터 및 마스크 정보가 저장되어 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(303-0)가 가지는 연상 메모리 워드(306-0-0 내지 306-3-0)에는 도23의 설명과 동일하게, 1차 검색용 연상 메모리(302-0)의 대응하는 1차 연상 메모리 워드(305-0-0 내지 305-3-0)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (1. 0. 0. 0),(2. 0. 0. 0), (1. 2. 2. 0), (2. 1. 2. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다.
연상 메모리(300-1)는 1차 검색용 연상 메모리(302-1)와 2차 검색용 연상 메모리(303-1)로부터 구성되어, 1차 검색용 연상 메모리(302-1)에서 중간 데이터(304-1-1 내지 304-8-1)가 2차 검색용 연상 메모리(303-1)로 출력된다. 도24에 도시된 네트워크 접속도에는 기재되어 있지 않지만 설명을 위하여, 1차 검색용 연상 메모리(302-1)가 가지는 1차 연상 메모리 워드(305-0-1 내지 305-3-1)에는 4진수 표기의 구조화 데이터로서 각각 (3. 1. *. *), (1. 2. *. *), (2. 1. *. *), (3. *. *. *)를 표현하는 것과 같이, 기억 데이터 및 마스크 정보가 저장되어 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(303-1)가 가지는 연상 메모리 워드(306-0-1 내지 306-3-1)에는 1차 검색용 연상 메모리(302-1)에 대응하는 1차 연상 메모리 워드(305-0-1 내지 305-3-1)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (3. 1. 0. 0), (1. 2. 0. 0), (2. 1. 0. 0), (3. 0. 0. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다.
여기서 검색 데이터(307)로서 도24에 도시된 PC(401-2)의 4진수 표기의 네트워크 어드레스(2. 1. 2. 3)를 입력한 경우의 동작에 대해서 설명한다.
연상 메모리(300-0)에서는 우선 1차 검색용 연상 메모리(302-0)가 대응하는 마스크 정보를 고려하여 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(305-1-0, 305-3-0)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. *. *. *), (2. 1. 2. *)가 일치한다. 1차 검색용 연상 메모리(302-0)는 일치한 1차 연상 메모리 워드(305-1-0, 305-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터 (2. 0. 0. 0), (2. 1. 2. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하여, 얻어진 4진수 표기로 (2. 1. 2. 0)의 8비트의 연산 결과를 중간 데이터(304-1-0 내지 304-8-0)로서 2차 검색용 연상 메모리(303-0)에 출력한다. 2차 검색용 연상 메모리(303-0)는 중간 데이터(304-1-0 내지 304-8-0)와 완전히 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행하고, 결과적으로 연상 메모리 워드(306-3-0)에 저장되어 있는 2차 기억 데이터만이 일치한다. 2차 검색용 연상 메모리(303-0)는 대응하는 일치선(301-3-0)에 유효 상태 "1"을 출력하고, 다른 일치선(301-0-0, 301-1-0, 301-2-0)에는 무효 상태 "0"을 출력한다. 이와 같이 연상 메모리(300-0) 단체(單體, 하나)로서는, 입력된 검색 데이터(307)와 대응하는 마스크 정보를 고려하여 비교한 결과, 일치하는 기억 데이터 중에서 마스크 정보의 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-3-0)에만 유효 상태를 출력하게 된다.
연상 메모리(300-1)에서는 우선 1차 검색용 연상 메모리(302-1)가 대응하는 마스크 정보를 고려하여 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(305-2-1)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. 1. *. *)가 일치한다. 1차 검색용 연상 메모리(302-1)는 일치한 1차 연상 메모리 워드(305-2-1) 중에 저장되어 있는 4진수 표기의 기억 데이터 (2. 1. 0. 0)를 중간 데이터(304-1-1 내지 304-8-1)로서 2차검색용 연상 메모리(303-1)에 출력한다. 2차 검색용 연상 메모리(303-1)는 중간 데이터(304-1-1 내지 304-8-1)와 완전하게 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행하고, 결과적으로 연상 메모리 워드(306-2-1)에 저장되어 있는 2차 기억 데이터만이 일치한다. 2차 검색용 연상 메모리(303-1)는 대응하는 일치선(301-2-1)에 유효 상태 "1"을 출력하고, 다른 일치선(301-0-1, 301-1-1, 301-3-1)에는 무효 상태 "0"을 출력한다. 이와 같이 연상 메모리(300-1) 단체로서는 입력된 검색 데이터(307)와 대응하는 마스크 정보를 고려하여 비교한 결과, 일치하는 기억 데이터 중에서 마스크 정보의 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-2-1)에만 유효 상태를 출력하게 된다.
여기서 인코더(310)에 입력되어 있는 일치선(301-0-0 내지 301-3-1) 가운데, 일치선(301-3-0, 301-2-1) 2개가 유효 상태 "1"이 되어 있다. 따라서, 우선순위 기능을 가지지 않은 인코더(310)는 어드레스 출력 신호(309)로서 "부정"을 출력하게 된다. 인코더(310)가 상위측 어드레스를 우선하는 우선순위 기능을 가지고 있다고 가정해도, 어드레스 출력 신호(309)로서 2진수 표기로 "110", 10진수 표기로 "6"을 출력하게 된다. 이들은 도면으로부터 분명하게 알 수 있는 최적인 4진수 표기의 구조화 데이터 (2. 1. 2. *)를 저장하고 있는 1차 연상 메모리 워드(305-3-0)에 대응하는 값, 2진수 표기로 "011"과는 달리 부정한 상태를 나타내고 있다. 따라서, 도26에 도시하는 종래의 연상 메모리를 복수 접속할 때의 제1의 구성예와 같이 구조화 데이터를 소트 처리하지 않고는 랜덤인 순서로 1차 연상 메모리 워드(305-0-0 내지 305-3-1)에 저장한 경우에는 올바른 결과를 얻을 수 없다는 것을 알 수 있다.
도27은 종래의 연상 메모리(300-0, 300-1)를 복수 접속하는 경우의 제2의 구성예와 동작예를 도시한 블럭도이다. 본 예에서는 도26의 설명과 동일하게 연상 메모리(300-0, 300-1)는 각각 8비트 4어 구성으로 하여, 연상 메모리(300-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다.
도26과 동일하게 검색 데이터(307)는 접속되어 있는 모든 연상 메모리(300-0, 300-1)에 입력된다. 연상 메모리(300-0)는 일치선(301-0-0 내지 301-3-0)을, 연상 메모리(300-1)는 일치선(301-0-1 내지 301-3-1)을 각각 어드레스 신호 생성부(319)에 출력한다. 어드레스 신호 생성부(319)는 일치선(301-0-0 내지 301-3-1)을 도시하지 않은 메모리를 액세스하기 위한 어드레스 출력 신호(309)에 부호화한다.
연상 메모리(300-0, 300-1)는 도26과 완전히 동일하게 구성된다. 다만, 구조화 데이터는 기억 데이터의 값을 수치로 간주하여 작은 순서로부터 큰 순서로 소트 처리를 행한 결과의 순서에 따라서, 1차 연상 메모리 워드(305-0-0 내지 305-3-1)에 저장하는 것으로 한다. 도26과 동일한 8개의 구조화 데이터를 예로 들자면, 1차 연상 메모리 워드(305-0-0)에는 기억 데이터가 4진수 표기로 (1. 0. 0. 0)와 최소인 4진수 표기의 구조화 데이터 (1. *. *. *)를 표현하는 기억 데이터 및 마스크 정보를 저장한다. 이하, 순서대로 1차 연상 메모리 워드(305-1-0)에는 4진수 표기의 구조화 데이터 (1. 2. *. *)를, 1차 연상 메모리 워드(305-2-0)에는 4진수 표기의 구조화 데이터 (1. 2. 2. *)를, 1차 연상 메모리 워드(305-3-0)에는 4진수 표기의 구조화 데이터 (2. *. *. *)를, 1차 연상 메모리 워드(305-0-1)에는 4진수 표기의 구조화 데이터 (2. 1. *. *)를, 1차 연상 메모리 워드(305-1-1)에는 4진수 표기의 구조화 데이터 (2. 1. 2. *)를, 1차 연상 메모리 워드(305-2-1)에는 4진수 표기의 구조화 데이터 (3. *. *. *)를, 1차 연상 메모리 워드(305-3-1)에는 4진수 표기의 구조화 데이터 (3. 1. *. *)를 각각 표현하는 기억 데이터 및 마스크 정보를 저장한다.
2차 검색용 연상 메모리(303-0, 303-1)의 연상 메모리 워드(306-0-0 내지 306-3-1)에는 대응하는 1차 검색용 연상 메모리(302-0, 302-1)의 1차 연상 메모리 워드(305-0-0 내지 305-3-1)에 저장되어 있는 기억 데이터와 같은 값을 2차 기억 데이터로서 저장한다. 따라서, 연상 메모리 워드(306-0-0 내지 306-3-1)에는 순서대로 4진수 표기로 (1. 0. 0. 0), (1. 2. 0. 0), (1. 2. 2. 0), (2. 0. 0. 0), (2. 1. 0. 0), (2. 1. 2. 0), (3. 0. 0. 0), (3. 1. 0. 0)을 각각 저장한다.
어드레스 신호 생성부(319)에서는 연상 메모리(300-k(k = 0, 1))마다 일치선(301-0-k 내지 301-3-k)을 입력으로 하는 인코더(311-k)와 일치 검출 수단(313-k)을 가지고, 또한 우선순위 인코더(315)와 선택 수단(316)을 가지고 있다.
인코더(311-k)는 입력된 일치선(301-0-k 내지 301-3-k)을 부호화하고, 그 결과를 일치 어드레스 신호(312-k)로서 선택 수단(316)에 출력한다.
일치 검출 수단(313-k)은 입력된 일치선(301-0-k 내지 301-3-k)에 유효 상태의 신호가 하나라도 포함되는 경우에는 일치 검출 신호(314-k)에 일치선의 유효 상태 "1"을 출력하고, 그 이외의 경우에는 일치 검출 신호(314-k)에 일치선의 무효상태 "0"을 출력한다. 일치 검출 수단(313-k)은, 예를 들어 일치선의 유효 상태를 진으로 하는 논리합연산기로 구성할 수 있다.
우선순위 인코더(315)는 일치 검출 신호(314-0 내지 314-1)를 입력으로 하고, 부호화한 결과를 상위 어드레스 신호(317)로서 선택 수단(316)에 출력함과 동시에 어드레스 신호 생성부(319)의 외부에도 출력한다. 일치 검출 신호(314-0 내지 314-1) 중에 유효 상태의 신호가 2개 이상 있는 경우에는 어드레스 공간에서 상위 측에 할당되어 있는 연상 메모리(300)에 대응하는 일치 검출 신호(314)를 우선한다.
선택 수단(316)은 입력된 일치 어드레스 신호(312-0 내지 312-1) 중에서 우선순위 인코더(316)로부터 입력된 상위 어드레스 신호(317)에 대응하는 일치 어드레스 신호(312)를 선택하여, 하위 어드레스 신호(318)로서 어드레스 신호 생성부(319)의 외부에 출력한다.
어드레스 신호 생성부(319)로부터 출력된 상위 어드레스 신호(317), 하위 어드레스 신호(318)는 각각 어드레스 출력 신호(309)의 상위측, 하위측으로서 연결되어 도시하지 않은 메모리를 액세스하기 위한 어드레스 신호가 된다.
여기서 검색 데이터(307)로서, 도26의 설명과 동일하게 도24에 도시된 PC(401-2)의 4진수 표기의 네트워크 어드레스(2. 1. 2. 3)를 입력한 경우의 동작에 대해 설명한다.
연상 메모리(300-0)에서는 우선 1차 검색용 연상 메모리(302-0)가 대응하는 마스크 정보를 고려하여 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터를검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(305-3-0)에 저장되어 있는 4진수 표기의 구조화 데이터(2. *. *. *)가 검색 데이터(307)와 일치한다. 1차 검색용 연상 메모리(302-0)는 일치한 1차 연상 메모리 워드(305-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터(2. 0. 0. 0)를 중간 데이터(304-1-0 내지 304-8-0)로서 2차 검색용 연상 메모리(303-0)에 출력한다. 2차 검색용 연상 메모리(303-0)는 중간 데이터(304-1-0 내지 304-8-0)와 완전하게 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행하고, 결과적으로 연상 메모리 워드(306-3-0)에 저장되어 있는 2차 기억 데이터만이 중간 데이터(304-1-0 내지 304-8-0)와 일치한다. 2차 검색용 연상 메모리(303-0)는 대응하는 일치선(301-3-0)에 유효 상태 "1"을 출력하고, 다른 일치선(301-0-0, 301-1-0, 301-2-0)에는 무효 상태 "0"을 출력한다. 이와 같이 연상 메모리(300-0) 단체로서는 입력된 검색 데이터(307)와, 대응하는 마스크 정보를 고려하여 비교한 결과, 일치하는 기억 데이터 중에서 마스크 정보의 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-3-0)에만 유효 상태를 출력하게 된다.
연상 메모리(300-1)에서는 우선 1차 검색용 연상 메모리(302-1)가 대응하는 마스크 정보를 고려하여 검색 데이터(307)와 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(305-0-1, 305-1-1)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. 1. *. *), (2. 1. 2. *)가 검색 데이터(307)와 일치한다. 1차 검색용 연상 메모리(302-1)는 일치한 1차 연상 메모리 워드(305-0-1, 305-1-1) 중에 저장되어 있는 4진수 표기의 기억 데이터(2. 1.0. 0), (2. 1. 2. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (2. 1. 2. 0)의 8비트의 연산 결과를 중간 데이터(304-1-1 내지 304-8-1)로서 2차 검색용 연상 메모리(303-1)에 출력한다. 2차 검색용 연상 메모리(303-1)는 중간 데이터(304-1-1 내지 304-8-1)와 완전히 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행하고, 결과적으로 연상 메모리 워드(306-1-1)에 저장되어 있는 2차 기억 데이터만이 중간 데이터(304-1-1 내지 304-8-1)와 일치한다. 2차 검색용 연상 메모리(303-1)는 대응하는 일치선(301-1-1)에 유효 상태 "1"을 출력하고, 다른 일치선(301-0-1, 301-2-1, 301-3-1)에는 무효 상태 "0"을 출력한다. 이와 같이 연상 메모리(300-1) 단체로서는 입력된 검색 데이터(307)와, 대응하는 마스크 정보를 고려하여 비교한 결과, 일치하는 기억 데이터 중에서, 마스크 정보의 유효 상태의 비트가 가장 적은 기억 데이터에 대응하는 일치선(301-1-1)에만 유효 상태를 출력하게 된다.
여기서 어드레스 신호 생성부(319)에 입력되어 있는 일치선(301-0-0 내지 301-3-0) 중에서는 일치선(301-3-0) 만이 유효 상태 "1"이 되어 있고, 일치선(301-0-1 내지 301-3-1중)에서는 (301-1-1)만이 유효 상태 "1"이 되어 있다. 따라서, 연상 메모리(300-0)에 대응하는 우선순위 기능을 가지지 않는 인코더(311-0)는 일치 어드레스 신호(312-0)로서 2진수 표기로 "11"을 선택 수단(316)에 출력하고, 일치 검출 수단(313-0)은 일치 검출 신호(314-0)에 유효 상태 "1"을 출력한다. 연상 메모리(300-1)에 대응하는 우선순위 기능을 가지지 않은 인코더(311-1)는 일치 어드레스 신호(312-1)로서 2진수 표기로 "01"을 선택 수단(316)에 출력하고, 일치 검출수단(313-1)은 일치 검출 신호(314-1)에 유효 상태 "1"을 출력한다.
우선순위 인코더(315)에 입력되어 있는 일치 검출 신호(314-0 내지 314-1) 중에서 일치 검출 신호(314-0, 314-1)의 2개가 유효 상태 "1"이기 때문에, 어드레스 공간에서 상위 측에 할당되어 있는 연상 메모리(300-1)에 대응하는 일치 검출 신호(314-1)를 우선순위 인코더(315)는 우선한다. 그 결과 2진수 표기로 "1"을 상위 어드레스 신호(317)로서 선택 수단(316)에 출력함과 동시에, 어드레스 신호 생성부(319)의 외부에도 출력한다.
선택 수단(316)은 우선순위 인코더(315)로부터 입력된 상위 어드레스 신호(317)가 2진수 표기로 "1"이기 때문에, 대응하는 2진수 표기로 "01"의 일치 어드레스 신호(312-1)를 선택하고, 하위 어드레스 신호(318)로서 어드레스 신호 생성부(319)의 외부에 출력한다.
어드레스 신호 생성부(319)로부터 출력된 2진수 표기로 각각 "1", "01"의 상위 어드레스 신호(317), 하위 어드레스 신호(318)는 각각 어드레스 출력 신호(309)의 상위측, 하위측으로 하여 연결되어 2진수 표기로 "101"이 된다. 즉, 종래의 연상 메모리를 복수 접속할 때의 제2의 구성예에서는 도26과 다르게, 최적인 4진수 표기의 구조화 데이터 (2. 1. 2. *)를 저장하고 있는 1차 연상 메모리 워드(305-1-1)에 대응하는 값, 2진수 표기로 "101"이 어드레스 출력 신호(309)로서 올바르게 얻어져 있다.
따라서, 연상 메모리(300) 단체의 경우에는 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(305)에 저장해도 올바른 검색 결과를얻을 수 있음에도 불구하고, 기억용량을 증가시키기 위해서 연상 메모리(300)를 복수 접속하는 경우에는, 도시하지 않은 CPU 등에 의해 구조화 데이터의 기억 데이터의 값을 수치로 간주하여, 작은 순서로부터 큰 순서로 소트 처리를 행한 결과의 순서에 따라서 구조화 데이터를 1차 연상 메모리 워드(305)에 저장해야 한다.
여기서, 예를 들면 도25에 도시된 경유지 어드레스 계산에 연상 메모리(300)를 사용하는 경우, 네트워크 기기끼리의 접속 추가, 접속 절단 등의 접속 상황의 변경은 빈번하게 행해지고 있으므로, 이것들을 반영시키기 위해 네트워크 기기끼리가 일정 주기로 접속 상황을 교신하여, 연상 메모리(300)에 저장하고 있는 구조화 데이터를 최신의 상황으로 갱신할 필요가 있다. 그러나, 예를 들어 인터넷의 경우, 접속 상황은 10만 워드 이상으로도 되어, 소트 처리 실행에는 고속의 CPU를 이용해도 몇 초를 필요로 하고, 그 네트워크 기기는 소트 처리 실행 기간 중에는 전송 처리를 실행할 수 없다는 문제가 있었다.
또한, 연상 메모리(300)를 복수 접속하는 경우에는, 연상 메모리(300) 단체로 사용시에는 불필요했던 고가의 고속 CPU 시스템을 탑재하지 않으면 안되기 때문에, 네트워크 기기 전체적으로 가격이 상승해 버린다는 문제가 있었다.
또한, 어드레스 신호 생성부(319)에 1개의 일치선(301)에서도 유효 상태를 출력하고 있는 연상 메모리(300) 중에서, 어드레스 공간에 있어서 상위의 어드레스를 차지하는 연상 메모리(300)를 식별하기 위한 상위 어드레스 신호(317)를 생성하기 위해서는 우선순위 인코더(315)가 필요하고, 통상의 인코더에 비해 우선순위 기능의 부분만큼 면적이 커지는 것과 동시에, 부호화 처리 시간도 현저하게 길어져버린다. 따라서, 네트워크 기기 전체적으로의 가격이 상승함과 동시에, 처리 속도도 저하해 버린다는 문제가 있었다.
또한, 상술한 바와 같이 소트 처리가 필요하기 때문에, 연상 메모리(300)를 이용한 네트워크 기기에서는, 단순하게 연상 메모리(300)를 추가하는 것만으로는 기억용량을 증가시킬 수가 없다는 문제점이 있었다.
여기서, 본 발명의 목적은 소트 처리를 수반하지 않고 기억 데이터의 쓰기, 갱신 및 삭제를 실행한 경우에 대해서도, 검색시에 복수의 기억 데이터가 검색 데이터와 일치한 경우에, 그 중에서 최적인 하나를 고속으로 선택하여 출력하는 것이 가능한 복수개의 연상 메모리로부터 구성되는 연상 메모리 시스템을 제공하는 것이다.
더욱 다른 목적으로서, 네트워크 기기의 토털 코스트를 삭감하는 것이다.
더욱 다른 목적으로서, 전송 동작을 중단하지 않고 연상 메모리에 저장하고 있는 데이터의 삭제, 추가, 변경을 실행할 수 있는 네트워크 기기를 제공하는 것에 있다.
더욱 다른 목적으로서, 우선순위 인코더를 필요로 하지 않는 네트워크 기기를 제공하는 것에 있다.
더욱 다른 목적으로서, 기억용량의 증가, 감소에 맞추어 연상 메모리의 추가, 삭제를 용이하게 행할 수가 있는 네트워크 기기를 제공하는 것에 있다.
더욱 다른 목적으로서, 고속으로 데이터를 전송할 수 있는 네트워크 시스템을 제공하는 것에 있다.
본 발명은 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템에 관한 것이다. 특히 검색 마스크 기능을 가지는 연상 메모리와 그것을 복수 개 접속한 연상 메모리 시스템 및 그것을 이용한 네트워크 기기 및 네트워크 시스템에 관한 것이다.
도1은 본 발명의 제1 실시 형태의 연상 메모리 시스템의 구성예를 도시한 블럭도이다.
도2는 본 발명의 제1 실시 형태의 연상 메모리 시스템의 동작예를 도시한 도이다.
도3은 본 발명의 제2 실시 형태의 연상 메모리 시스템의 구성예와 동작예를 도시한 블럭도이다.
도4는 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제2의 구성예를 도시한 블럭도이다.
도5는 본 발명의 연상 메모리 시스템의 제2의 구성예의 중간 데이터 연산부의 동작예를 도시한 도이다.
도6은 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제3의 구성예를 도시한 블럭도이다.
도7은 본 발명의 연상 메모리 시스템의 제3의 구성예의 중간 데이터 연산부의 동작예를 도시한 도이다.
도8은 본 발명의 제3 실시 형태의 연상 메모리 시스템의 구성예를 도시한 블럭도이다.
도9는 본 발명의 제4 실시 형태의 연상 메모리 시스템의 구성예를 도시한 블럭도이다.
도10은 본 발명의 제4 실시 형태의 연상 메모리 시스템의 동작예를 도시한 도이다.
도11은 본 발명의 연상 메모리 시스템의 중간 데이터 판정부의 제2의 구성예와 동작예를 도시한 블럭도이다.
도12는 본 발명의 제5 실시 형태의 연상 메모리 시스템의 구성예를 도시한 블럭도이다.
도13은 본 발명의 제6 실시 형태의 연상 메모리 시스템의 구성예를 도시한 블럭도이다.
도14는 본 발명의 제6 실시 형태의 연상 메모리 시스템의 동작예를 도시한 도이다.
도15는 본 발명의 연상 메모리 시스템의 h번째의 2차 중간 데이터 판정부의 제2의 구성예를 도시한 블럭도이다.
도16은 본 발명의 연상 메모리 시스템의 h번째의 2차 중간 데이터 판정부의 제3의 구성예를 도시한 블럭도이다.
도17은 본 발명의 제7 실시 형태의 연상 메모리 시스템의 구성예를 도시한블럭도이다.
도18은 본 발명의 제7 실시 형태의 연상 메모리 시스템의 1 클럭째의 동작예를 도시한 도이다.
도19는 본 발명의 제7 실시 형태의 연상 메모리 시스템의 2 클럭째의 동작예를 도시한 도이다.
도20은 본 발명의 제7 실시 형태의 연상 메모리 시스템의 3 클럭째의 동작예를 도시한 도이다.
도21은 본 발명의 연상 메모리를 경유지 어드레스 계산에 이용한 본 발명의 제1 실시 형태의 네트워크 기기의 구성예를 도시한 블럭도이다.
도22는 본 발명의 연상 메모리를 전송 가부 연산에 이용한 본 발명의 제2 실시 형태의 네트워크 기기의 구성예를 도시한 블럭도이다.
도23은 종래의 연상 메모리의 일구성예를 도시한 블럭도이다.
도24는 네트워크의 구성예를 도시한 접속도이다.
도25는 종래의 연상 메모리를 경유지 어드레스 계산에 이용한 종래의 네트워크 기기의 구성예를 도시한 블럭도이다.
도26은 종래의 연상 메모리를 복수 접속할 때의 제1의 구성예와 동작예를 도시한 블럭도이다.
도27은 종래의 연상 메모리를 복수 접속할 때의 제2의 구성예와 동작예를 도시한 블럭도이다.
본 발명의 연상 메모리 시스템은 수단 1로서, 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
1워드마다 해당 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
상기 1차 검색 수단에 있어서의 선택된 워드 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터의 값을 중간 데이터로서 출력하는 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
상기 복수개의 중간 데이터 생성 수단이 출력하는 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 중간 데이터를 선택하여, 최적화 중간 데이터로서 출력하는 중간 데이터 연산 수단과,
상기 복수개의 1차 검색 수단에 저장되어 있는 상기 기억 데이터의 값을 저장하고, 상기 최적화 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 2차 검색을 실행하는 하나 또는 복수의 2차 검색 수단과,
2차 검색의 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 2로서, 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
상기 1차 검색 수단에 있어서의 해당 선택된 워드 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터의 값을 중간 데이터로서 출력하는 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
상기 복수개의 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 중간 데이터를 출력하고 있는 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 중간 데이터 판정 수단과,
대응하는 상기 1차 검색 수단에 저장되어 있는 상기 기억 데이터의 값을 저장하고, 해당 1차 검색 수단에 대응하는 상기 중간 데이터 생성 수단이 출력하는 상기 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 2차 검색을 실행하는 복수의 2차 검색 수단과,
상기 각 1차 연상 메모리에 대응하는 상기 검출 신호가 무효 상태인 경우에는 대응하는 일치 신호에 모두 무효 상태를 출력하고, 해당 검출 신호가 유효 상태인 경우에는 2차 검색의 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 상기 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 3으로서, 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
우선순위를 가지는 k개(k는 2이상의 정수)의 검색 영역으로부터 구성되는 검색 데이터를 입력으로 하고,
1워드마다 상기 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
1차 검색의 종료 후에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제1 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제1 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제1의 중간 데이터로서 출력하는 제1의 중간 데이터 생성 수단과,
제(i-1)의 2차 검색 종료 후(i는 2이상 k이하의 정수)에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제i 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제i 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제j의 중간 데이터로서 출력하는 제2 내지 제k의 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
상기 복수개의 제j의 중간 데이터(j는 1이상 k이하의 정수) 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제j의 중간 데이터를 선택하여, 제j의 최적화 중간 데이터로서 출력하는 제1 내지 제k의 중간 데이터 연산 수단과,
상기 복수개의 1차 검색 수단에 저장되어 있는 제j의 검색 영역에 대응하는 영역의 기억 데이터의 값을 저장하고, 상기 제j의 최적화 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 제j의 2차 검색을 실행하는 하나 또는 복수의 제1 내지 제k의 2차 검색 수단과,
제k의 2차 검색 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 4로서, 상기 제1 내지 제k의 2차 검색 수단에 있어서,
해당 제1 내지 제k의 최적화 중간 데이터 중의 복수로부터(복수의 중간 데이터 중으로부터) 하나를 선택하는 선택 수단과, 2차 검색의 대상으로 하는 검색 영역을 선택하는 제어 수단을 가지는 것에 의해,
상기 2차 검색 수단 및 상기 중간 데이터 연산 수단의 각각 제1 내지 제k 중의 일부 또는 전부를 공유하는 것이다.
본 발명의 연상 메모리 시스템은 수단 5로서, 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
우선순위를 가지는 k개(k는 2이상의 정수)의 검색 영역으로부터 구성되는 검색 데이터를 입력으로 하고,
1워드마다 상기 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상에서 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
1차 검색의 종료 후에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제1 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제1 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제1의 중간 데이터로서 출력하는 제1의 중간 데이터 생성 수단과,
제(i-1)의 2차 검색 종료 후(i는 2이상 k이하의 정수)에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제i 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제i 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제i의 중간 데이터로서 출력하는 제2 내지 제k의 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
상기 복수개의 제j의 중간 데이터(j는 1이상 k이하의 정수) 중에서, 대응하는 제(j-1)의 검출 신호가 유효 상태의 해당 제j의 중간 데이터만을 선택하는 제j의 무효화 수단과,
제j의 무효화 수단이 선택한 복수의 제j의 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제j의 중간 데이터를 출력하고 있는 1차 연상 메모리에 대응하는 제j의 검출 신호에만 유효 상태를 출력하는 제1 내지 제k의 중간 데이터 판정 수단과,
1차 검색 개시 전에 모든 제0의 검출 신호를 유효 상태로 하는 초기화 수단과,
상기 복수개의 1차 검색 수단에 저장되어 있는 제j의 검색 영역에 대응하는 영역의 기억 데이터의 값을 저장하고, 대응하는 1차 연상 메모리가 출력하는 상기 제j의 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 제j의 2차 검색을 실행하는 복수의 제1 내지 제k의 2차 검색 수단과,
각 1차 연상 메모리에 대응하는 제k의 검출 신호가, 무효 상태인 경우에는 대응하는 일치 신호에 모두 무효 상태를 출력하고, 유효 상태인 경우에는 제k의 2차 검색 종료 후에 선택되어 있는 기억 데이터의 값에 대응하는 상기 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 6으로서, 상기 제1 내지 제k의 2차 검색 수단에 있어서,
해당 제1 내지 제k의 중간 데이터 중의 복수로부터 하나를 선택하는 선택 수단과, 2차 검색의 대상으로 하는 검색 영역을 선택하는 제어 수단을 가지고,
각 1차 연상 메모리에 대응하는 상기 검출 신호가 검색 개시로부터 유효 상태를 유지하고 있는지 아닌지를 기억하는 하나 또는 복수의 기억 수단을 가지는 것에 의해,
상기 2차 검색 수단, 상기 무효화 수단 및 상기 중간 데이터 판정 수단의 각각 제1 내지 제k 중의 일부 또는 전부를 공유하는 것이다.
본 발명의 연상 메모리 시스템은 수단 7로서, 상기 중간 데이터 판정 수단은,
입력된 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 최소인 중간 데이터를 선택하고, 최적화 중간 데이터로서 출력하는 중간 데이터 연산 수단과,
상기 최적화 중간 데이터와 일치하는 상기 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 상기 검출 신호에만 유효 상태를 출력하는 중간 데이터 비교 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 8로서, 상기 중간 데이터 연산 수단은 상기 복수의 중간 데이터의 동일 비트 위치끼리를 기억 데이터의 유효 상태를 진으로 논리합연산을 하는 것이다.
본 발명의 연상 메모리 시스템은 수단 9로서, 상기 중간 데이터 연산 수단은 기억 데이터의 유효 상태를 진으로 하는 2진수 표기의 수치로 간주했을 때에 상기 복수의 중간 데이터 중에서 최대치를 선택하는 것이다.
본 발명의 연상 메모리 시스템은 수단 10으로서, 상기 중간 데이터 연산 수단은,
대응하는 상기 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수(計數)하는 복수의 무효 상태 계수 수단과,
상기 복수의 무효 상태 계수 수단의 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
상기 최소치에 대응하는 해당 중간 데이터를 선택하여 상기 최적화 중간 데이터로서 출력하는 선택 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 11로서, 상기 중간 데이터 연산 수단은 상기 복수개의 1차 연상 메모리에 있어서의, 상기 중간 데이터의 출력 단자와 상기 최적화 중간 데이터의 입력 단자를 공용하기 위해서, 상기 중간 데이터끼리의 기억 데이터의 유효 상태를 진으로 하는 결선 논리합회로에 의해 구성하는 것이다.
본 발명의 연상 메모리 시스템은 수단 12로서, 상기 중간 데이터 판정 수단은,
상기 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수하는 복수의 무효 상태 계수 수단과,
상기 복수의 무효 상태 계수 수단이 출력하는 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
상기 최소치에 대응하는 해당 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 최소치 비교 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 13으로서, 상기 제j의 무효화 수단은 무효 상태가 입력되어 있는 제j의 검출 신호에 대응하는 제j의 중간 데이터의 전 비트를, 모두 기억 데이터의 무효 상태로 변경하는 논리곱수단에 의해 구성되는 것이다.
본 발명의 연상 메모리 시스템은 수단 14로서, 상기 제j의 무효화 수단 및 상기 제j의 중간 데이터 판정 수단은,
상기 1차 연상 메모리가 출력하는 상기 제j의 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수하는 복수의 무효 상태 계수 수단과,
무효 상태가 입력되어 있는 상기 검출 신호에 대응하는 무효 상태 계수 수단의 계수 결과를 상기 제j의 중간 데이터의 비트수와 같은 수 또는 비트수보다 큰 수로 변경하는 수단과,
상기 복수의 무효 상태 계수 수단이 출력하는 상기 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
상기 최소치에 대응하는 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 최소치 비교 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 15로서, 상기 무효 상태 계수 수단은 기억 데이터의 무효 상태의 비트수를 상기 중간 데이터 일측의 비트 위치로부터 타측에 향하여 최초의 기억 데이터의 유효 상태의 비트가 나타날 때까지 계수하는 것이다.
본 발명의 연상 메모리 시스템은 수단 16으로서, 상기 무효 상태 계수 수단은 대응하는 1차 연상 메모리에 내장되는 것이다.
본 발명의 연상 메모리 시스템은 수단 17로서, 상기 중간 데이터 연산 수단은 파이프라인 처리를 실행 가능으로 하는 기억 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 18로서, 상기 중간 데이터 판정 수단은, 해당 중간 데이터 판정 수단이 검출 신호를 출력하는 타이밍을 병행하여 실행하고 있는 2차 검색의 종료와 동기화시키기 위한 하나 또는 복수의 수단을 가지는것이다.
본 발명의 연상 메모리 시스템은 수단 19로서, 상기 1차 검색 수단에 있어서, 상기 기억 데이터를 저장하는 수단과, 상기 2차 검색 수단에 있어서의 해당 기억 데이터의 값을 저장하는 수단을 공용하는 것이다.
본 발명의 연상 메모리 시스템은 수단 20으로서, 상기 연상 메모리 시스템에 있어서, 상기 1차 연상 메모리마다 대응하는 상기 일치 신호에 유효 상태의 신호가 포함되는지 아닌지를 검출하는 검출 수단을 가지고, 또한 상기 일치 신호끼리를 논리합연산 하는 논리합수단과, 상기 논리합수단의 출력을 어드레스 신호의 하나의 영역으로서 부호화하는 제1의 부호화 수단과, 상기 검출 수단의 출력을 어드레스 신호의 다른 영역으로서 부호화하는 제2의 부호화 수단을 가지는 것이다.
본 발명의 연상 메모리 시스템은 수단 21로서, 상기 연상 메모리 시스템에 있어서, 상기 1차 연상 메모리마다 대응하는 상기 일치 신호에 유효 상태의 신호가 포함되는지 아닌지를 검출하는 검출 수단과, 해당 일치 신호를 어드레스 신호의 하나의 영역으로서 부호화하는 제1의 부호화 수단을 가지고, 상기 검출 수단의 출력을 해당 어드레스 신호의 다른 영역으로서 부호화하는 제2의 부호화 수단과, 상기 각 1차 연상 메모리에 대응하는 상기 제1의 부호화 수단 중에서 상기 제2의 부호화 수단의 연산 결과에 대응하여 상기 제1의 부호화 수단의 출력 신호를 선택하는 것이다.
본 발명의 연상 메모리 시스템은 수단 22로서, 상기 연상 메모리 시스템에 있어서, 상기 검출 수단과 상기 제1의 부호화 수단을 대응하는 1차 연상 메모리에내장하는 것이다.
본 발명의 네트워크 기기는 수단 23으로서, 수단 1 내지 수단 22에 기재된 연상 메모리 시스템을 이용하여 하나 또는 복수의 네트워크 어드레스의 검색을 행하는 것이다.
본 발명의 네트워크 시스템은 수단 24로서, 수단 23의 상기 네트워크 기기를 통하여 네트워크에 접속된 기기 사이에 데이터 통신을 행하는 것이다.
[발명을 실시하기 위한 최량의 형태]
[제1 실시예의 구성]
다음으로 본 발명의 제1 실시 형태의 연상 메모리 시스템에 대하여 도면을 참조하여 상세하게 설명한다. 이후의 설명에서는 n은 1이상의 정수 m, p, q는 2이상의 정수로 하고, m, p, q보다 1이 작은 정수를 각각 s, r, t로 나타내는 것으로 한다. 도1은 본 발명의 제1 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(200)의 구성예를 도시한 블럭도이다. 연상 메모리 시스템(200)은 p개의 m어 n비트의 연상 메모리(1-0 내지 1-r)와, 중간 데이터 연산부(9)와, 어드레스 신호 생성부(11)로부터 구성되어 n비트의 검색 데이터(2)를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다.
k번째(k는 0이상 r이하의 정수)의 연상 메모리(1-k)는 n비트 m어의 1차 검색용 연상 메모리(4-k)와, n비트 m어의 2차 검색용 연상 메모리(5-k)로부터 구성되고, n비트의 검색 데이터(2)와, n비트의 최적화 중간 데이터(10-1 내지 10-n)를 입력으로 하고, n비트의 중간 데이터(6-1-k 내지 6-n-k)와, m개의 일치선(3-0-k 내지 3-s-k)을 출력으로 한다.
1차 검색용 연상 메모리(4-k)는 각 n비트의 기억 데이터 및 마스크 정보로부터 구성되는 구조화 데이터를 m개 저장할 수 있는 1차 연상 메모리 워드(7-0-k 내지 7-s-k)를 가진다. 여기서, 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것으로써 표현된다. 또한, 1차 검색용 연상 메모리(4-k)는 대응하는 마스크 정보를 고려하여 검색 데이터(2)와 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 1차 연상 메모리 워드(7-0-k 내지 7-s-k) 중에서 행하고, 일치하는 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 값을 중간 데이터(6-1-k 내지 6-n-k)로서 중간 데이터 연산부(9)에 출력한다. 즉, 1차 검색용 연상 메모리(4-k)는 중간 데이터(6-1-k 내지 6-n-k)를 연상 메모리(1-k) 외부의 중간 데이터 연산부(9)에 출력하는 것을 제외하면, 도23에 도시한 종래의 연상 메모리(300)의 1차 검색용 연상 메모리(302)와 완전히 동일하게 구성할 수 있다.
2차 검색용 연상 메모리(5-k)는 각 n비트의 2차 기억 데이터를 저장할 수 있는 연상 메모리 워드(8-0-k 내지 8-s-k)를 가진다. 여기서 i번째(i는 0이상 m이하의 정수)의 연상 메모리 워드(8-i-k)에는 대응하는 1차 연상 메모리 워드(7-i-k)가 저장하고 있는 기억 데이터와 같은 값을 2차 기억 데이터로서 저장한다. 2차 검색용 연상 메모리(5-k)는 중간 데이터 연산부(9)로부터 입력되는 최적화 중간 데이터(10-1 내지 10-n)와 완전하게 일치하는 2차 기억 데이터를 검색하는 2차 검색을 연상 메모리 워드(8-0-k 내지 8-s-k) 중에서 행하고, 일치한 2차 기억 데이터에 대응하는 일치선(3-0-k 내지 3-s-k)에 일치선의 유효 상태를 출력한다. 즉, 2차 검색용 연상 메모리(5-k)는 중간 데이터(6-1-k 내지 6-n-k) 대신에 최적화 중간 데이터(10-1 내지 10-n)가 입력되는 것을 제외하면, 도23에 나타낸 종래의 연상 메모리(300)의 2차 검색용 연상 메모리(303)와 완전히 동일하게 구성할 수 있다.
따라서, 연상 메모리(1-k)는 1차 검색 종료 후에 중간 데이터(6-1-k 내지 6-n-k)를 중간 데이터 연산부(9)에 출력하고, 2차 검색의 검색 데이터로서 중간 데이터 연산부(9)로부터 입력되는 최적화 중간 데이터(10-1 내지 10-n)를 이용하는 것을 제외하면, 도23에 나타낸 종래의 연상 메모리(300)와 완전히 동일하게 구성할 수 있다.
중간 데이터 연산부(9)는 p개의 연상 메모리(1-0 내지 1-r)로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 n비트의 최적화 중간 데이터(10-1 내지 10-n)로서 출력한다. 도1에 도시된 본 발명의 제1 실시 형태의 중간 데이터 연산부(9)는 입력된 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r))의 동일 비트 위치끼리에 대해서, 중간 데이터의 유효 상태를 진으로 하는 논리합연산을 실시한 결과를 n비트의 최적화 중간 데이터(10-1 내지 10-n)로서 출력하는 논리합수단(13)에 의해 구성된다.
어드레스 신호 생성부(11)는 p개의 m비트 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 입력으로 하고, 도시하지 않은 메모리를 액세스하기 위한 어드레스 출력 신호(12)에 부호화하여 출력한다. 도1에 도시된 본 발명의 제1 실시 형태의 어드레스 신호 생성부(11)는 도27에 나타낸 어드레스 신호 생성부(319)와 달리, 연상 메모리(1-k)(k는 0이상 r이하의 정수)마다 일치선(3-0-k 내지 3-s-k)을 입력으로 하는 일치 검출 수단(16-k)과, 모든 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 입력으로 하는 논리합수단(14)과, 인코더(18)와, 인코더(20)를 가지고 있다.
일치 검출 수단(16-k)은 입력된 일치선(3-0-k 내지 3-s-k)에 유효 상태의 신호가 하나라도 포함되는 경우에는 일치 검출 신호(17-k)에 일치선의 유효 상태를 출력하고, 그 이외의 경우에는 일치 검출 신호(17-k)에 일치선의 무효 상태를 출력한다. 일치 검출 수단(16-k)은, 예를 들면 일치선의 유효 상태를 진으로 하는 논리합연산기로 구성할 수 있다.
논리합수단(14)은 입력된 p개의 m비트 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))의 동일 비트 위치끼리에 대해서, 일치선의 유효 상태를 진으로 하는 논리합연산을 실시한 결과를 m비트의 최적 일치 신호(15-0 내지 15-s)로서 인코더(20)에 출력한다.
인코더(20)는 입력된 최적 일치 신호(15-0 내지 15-s)를 부호화하고, 그 결과를 하위 어드레스 신호(21)로서 어드레스 신호 생성부(11)의 외부에 출력한다. 이후의 설명에서는 2진수에 부호화하는 경우를 예로 들지만, 다른 부호화 처리에서도 괜찮다는 것은 언급할 필요도 없다. 또한, 도시하지 않은 메모리의 워드 선으로서 직접 출력해도 괜찮다는 것도 언급할 필요가 없다.
인코더(18)는 일치 검출 신호(17-0 내지 17-r)를 입력으로 하고, 부호화한 결과를 상위 어드레스 신호(19)로서 어드레스 신호 생성부(11)의 외부에 출력한다. 이후의 설명에서는 2진수에 부호화하는 경우를 예로 들지만, 다른 부호화 처리라도 괜찮다는 것은 언급할 필요도 없다. 또한, 도시하지 않은 메모리의 워드 선으로 직접 출력해도 괜찮다는 것도 언급할 필요가 없다.
어드레스 신호 생성부(11)로부터 출력된 상위 어드레스 신호(19), 하위 어드레스 신호(21)는 각각 도시하지 않은 메모리를 액세스하기 위한 어드레스 출력 신호(12)의 상위측, 하위측으로서 연결된다.
[제1 실시예의 동작]
다음에 도면을 참조하여 본 발명의 제1 실시 형태의 연상 메모리 시스템의 동작을 설명한다. 도2는 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)을 도26의 종래의 연상 메모리를 복수 접속할 때의 제1의 구성예의 설명과 동일하게 4어 8비트 구성의 연상 메모리(1-0, 1-1)를 2개를 접속하고, 또한 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장한 경우의 동작예를 도시하는 도이다. 여기서, 전체 8어의 어드레스 공간 중에서 연상 메모리(1-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다.
본 예에서는 이후, 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다. 또한, 기억 데이터와 동일하게 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(3)의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다.
1차 검색용 연상 메모리(4-0)가 가지는 1차 연상 메모리 워드(7-0-0 내지 7-3-0)에는, 도26의 설명과 동일하게 4진수 표기의 구조화 데이터로서 각각 (1. *. *. *), (2. *. *. *), (1. 2. 2. *), (2. 1. 2. *)를 표현하는 것 같이, 기억 데이터 및 마스크 정보를 소트 처리하지 않고 저장하고 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(5-0)가 가지는 연상 메모리 워드(8-0-0 내지 8-3-0)에는, 도26의 설명과 동일하게 1차 검색용 연상 메모리(4-0)의 대응하는 1차 연상 메모리 워드(7-0-0 내지 7-3-0)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (1. 0. 0. 0), (2. 0. 0. 0), (1. 2. 2. 0), (2. 1. 2. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다. 1차 검색용 연상 메모리(4-1)가 가지는 1차 연상 메모리 워드(7-0-1 내지 7-3-1)에는, 도26의 설명과 동일하게 4진수 표기의 구조화 데이터로서 각각 (3. 1. *. *), (1. 2. *. *), (2. 1. *. *), (3. *. *. *)를 표현하는 것 같이, 기억 데이터 및 마스크 정보를 소트 처리하지 않고 저장하고 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(5-1)가 가지는 연상 메모리 워드(8-0-1 내지 8-3-1)에는, 도26의 설명과 동일하게 1차 검색용 연상 메모리(4-1)의 대응하는 1차 연상 메모리 워드(7-0-1 내지 7-3-1)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (3. 1. 0. 0), (1. 2. 0. 0), (2. 1. 0. 0), (3. 0. 0. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다.
여기서 도26의 설명과 동일하게, 검색 데이터(2)로서 도24에 나타내는 PC(401-2)의 4진수 표기의 네트워크 어드레스(2. 1. 2. 3)를 입력한 경우의 동작에 대해서 설명한다.
연상 메모리(1-0)에서는 우선 1차 검색용 연상 메모리(4-0)가 대응하는 마스크 정보를 고려하여 검색 데이터(2)와 비교한 경우에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(7-1-0, 7-3-0)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. *. *. *), (2. 1. 2. *)가 검색 데이터(2)와 일치한다. 1차 검색용 연상 메모리(4-0)는 일치한 1차 연상 메모리 워드(7-1-0, 7-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터 (2. 0. 0. 0),(2. 1. 2. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 2진수 표기로 "10. 01. 10. 00"의 8비트의 연산 결과를 중간 데이터(6-1-0 내지 6-8-0)로서 중간 데이터 연산부(9)에 출력한다. 동일하게, 연상 메모리(1-1)에서는 우선 1차 검색용 연상 메모리(4-1)가 대응하는 마스크 정보를 고려하여 검색 데이터(2)와 비교한 경우에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(7-2-1)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. 1. *. *)가 검색 데이터(2)와 일치한다. 1차 검색용 연상 메모리(4-1)는 일치한 1차 연상 메모리 워드(7-2-1) 중에 저장되어 있는 4진수 표기의 기억 데이터 "10. 01. 00. 00"을 중간 데이터(6-1-1 내지 6-8-1)로서 중간 데이터 연산부(9)에 출력한다.
중간 데이터 연산부(9)는 중간 데이터(6-1-0 내지 6-8-0)의 2진수 표기의 값 "10. 01. 10. 00"과, 중간 데이터(6-1-1 내지 6-8-1)의 2진수 표기의 값 "10. 01. 00. 00" 중에서 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 8비트의 최적화 중간 데이터(10-1 내지 10-8)로서 출력한다. 도1의 구성예에서는 논리합수단(13)에 의하여 동일 비트 위치끼리에 대해서 중간 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 2진수 표기의 연산 결과 "10. 01. 00. 00"을 8비트의 최적화 중간 데이터(10-1 내지 10-8)로서 연상 메모리(1-0, 1-1)에 출력한다.
2차 검색용 연상 메모리(5-0)는 최적화 중간 데이터(10-1 내지 10-8)와 완전하게 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행한다. 결과적으로 연상메모리 워드(8-3-0)에 저장되어 있는 2차 기억 데이터만이 일치하고, 2차 검색용 연상 메모리(5-0)는 대응하는 일치선(3-3-0)에 유효 상태 "1"을 출력하고, 다른 일치선(3-0-0, 3-1-0, 3-2-0)에는 무효 상태 "0"을 출력한다. 동일하게, 2차 검색용 연상 메모리(5-1)는 최적화 중간 데이터(10-1 내지 10-8)와 완전하게 일치하는 2차 기억 데이터를 검색하는 2차 검색을 행한다. 결과적으로, 모든 연상 메모리 워드(8-0-1 내지 8-3-1)에 저장하고 있는 2차 기억 데이터가 불일치로 되어, 2차 검색용 연상 메모리(5-1)는 대응하는 모든 일치선(3-0-1 내지 3-3-1)에 무효 상태 "0"을 출력한다.
따라서, 어드레스 신호 생성부(11)에는 연상 메모리(1-0)로부터 일치선(3-0-0 내지 3-3-0)으로서 2진수 표기로 "1000"이 입력되고, 연상 메모리(1-1)로부터 일치선(3-0-1 내지 3-3-1)으로서 2진수 표기로 "0000"이 입력된다. 논리합수단(14)은 일치선(3-0-0 내지 3-3-0)과 일치선(3-0-1 내지 3-3-1)의 동일 비트 위치끼리에 대해서 일치선의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 2진수 표기의 결과 "1000"을 4비트의 최적 일치 신호(15-0 내지 15-3)로서 인코더(20)에 출력한다. 인코더(20)는 입력된 최적 일치 신호(15-0 내지 15-3)를 2진수에 부호화하고, 얻어진 2진수 표기의 결과 "11"을 하위 어드레스 신호(21)로서 어드레스 신호 생성부(11)의 외부에 출력한다.
또한, 일치 검출 수단(16-0)은 일치선(3-0-0 내지 3-3-0)에 유효 상태의 신호가 포함되므로 일치 검출 신호(17-0)로서 유효 상태 "1"을 인코더(18)에 출력하고, 일치 검출 수단(16-1)은 일치선(3-0-1 내지 3-3-1)에 유효 상태의 신호가 포함되지 않기에 일치 검출 신호(17-1)로서 무효 상태 "0"을 인코더(18)에 출력한다. 인코더(18)는 입력된 일치 검출 신호(17-0 내지 17-1)의 2진수 표기의 값 "01"을 2진수에 부호화하고, 얻어진 2진수 표기의 결과 "0"을 상위 어드레스 신호(19)로서 어드레스 신호 생성부(11)의 외부에 출력한다.
어드레스 신호 생성부(11)로부터 출력된 2진수 표기로 "0"의 상위 어드레스 신호(19), 2진수 표기로 "11"의 하위 어드레스 신호(21)를 각각 어드레스 출력 신호(12)의 상위측, 하위측으로서 연결하는 것에 의하여 2진수 표기로 "011"의 어드레스 출력 신호(12)가 얻어지게 된다.
따라서, 도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)에서는 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장하고 있음에도 불구하고, 최적인 4진수 표기의 구조화 데이터 (2. 1. 2. *)를 저장하고 있는 1차 연상 메모리 워드(7-3-0)에 대응하는 값, 2진수 표기로 "011"이 어드레스 출력 신호(12)로서 올바르게 얻어진다는 것을 알 수 있다.
또한, 도27에 도시된 종래의 연상 메모리를 복수 접속할 때의 제2의 구성예와 다르게, 도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)에서는 우선순위 인코더를 가지고 있지 않음에도 불구하고 올바른 값이 얻어지는 것을 알 수 있다.
이것들은, 중간 데이터 연산부(9)가 중간 데이터(6-1-0 내지 6-8-0)와 중간 데이터(6-1-1 내지 6-8-1) 중에서 가장 중간 데이터의 무효 상태의 비트수가 적은것을 8비트의 최적화 중간 데이터(10-1 내지 10-8)로서 각 연상 메모리(1-0, 1-1)에 2차 검색시의 검색 데이터로서 출력하기 때문에, 연상 메모리 시스템(200) 전체로서 최적인 2차 검색을 실행할 수 있기 때문이다. 따라서, 최적인 결과를 저장하고 있지 않은 연상 메모리(1-1)의 일치선(3-0-1 내지 3-3-1)은 모두 무효 상태가 되어, 우선순위 인코더를 가질 필요가 없어진다. 또한, 최적인 결과를 저장하고 있는 연상 메모리(1-0)에 대해서는 1차 검색에 의해 생성한 중간 데이터(6-1-0 내지 6-8-0)의 값이 2차 검색의 검색 데이터가 되므로, 도23에 도시된 종래의 연상 메모리(300)와 동일하게 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-s-r)에 저장해도 상관없다는 것을 알 수 있다.
최적 일치 신호(15-0 내지 15-s) 및 일치 검출 신호(17-0 내지 17-r) 혹은 일치선(3-0-0 내지 3-s-r) 등에 기억 수단을 적당히 삽입하여 파이프라인을 구성하는 것에 의해 동작 주파수를 향상할 수 있다는 것은 언급할 필요도 없다.
또한, 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 혹은 최적화 중간 데이터(10-1 내지 10-n) 등에 기억 수단을 적당히 삽입하여 파이프라인을 구성하는 것에 의해 동작 주파수를 향상할 수 있다는 것은 언급할 필요도 없다.
또한, 본 예에서는 연상 메모리(1-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)에서 실행하고, 2차 검색을 2차 검색용 연상 메모리(5-k)에서 실행하는 경우를 예로서 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리로 1차 검색과 2차 검색을 실행하는 경우에 있어서도 완전히 동일하게 연상 메모리 시스템(200)을 구성할 수 있는 것은 언급할 필요도 없다. 또한, 2차 검색용 연상 메모리(5-1 내지 5-r)는 n비트 (m×p)어의 1개의 연상 메모리에 의해 구성해도 괜찮다는 것은 언급할 필요도 없다. 또한, 전체로 n비트 (m×p)어를 용량을 가지는 임의의 개수의 연상 메모리에 의해서도 구성할 수 있다는 것도 분명하다.
[제2 실시예의 구성]
다음에, 본 발명의 제2 실시 형태의 연상 메모리 시스템에 대해 도면을 참조하여 상세하게 설명한다. 도3은 본 발명의 제2 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(201)의 구성예와 동작예를 나타내는 블럭도이다.
연상 메모리 시스템(201)은 p개의 m어 n비트의 연상 메모리(1-0 내지 1-r)와, 중간 데이터 연산부(9)와, 어드레스 신호 생성부(25)로부터 구성되어, n비트의 검색 데이터(2)를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다. 도3에 도시되는 연상 메모리 시스템(201)은, 도2에 도시된 제1 실시 형태의 동작예의 설명과 동일하게 4어 8비트 구성의 연상 메모리(1-0, 1-1)를 2개를 접속하고, 또한 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장한 경우의 동작을 예로 들어 설명한다. 또한, 전체로 8어의 어드레스 공간 중에서 연상 메모리(1-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다. 물론, 임의의 비트 길이, 워드수의 n비트 m어의 연상 메모리(1)를 임의 개수 접속한 경우에도 동일하게 구성할 수 있다는 것은 언급할 필요도 없다.
도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)과 비교하면 알 수 있듯이, 도3에 도시된 본 발명의 제2 실시 형태의 연상 메모리 시스템(201)은, 연상 메모리(1-0 내지 1-r) 및 중간 데이터 연산부(9)는 제1 실시형태의 연상 메모리 시스템(200)과 동일하게 구성되고, 어드레스 신호 생성부(25)의 내부 구성만이 다르다. 따라서, 다른 부분만의 설명을 실시한다.
어드레스 신호 생성부(25)는 연상 메모리(1-k)(k는 0이상 r이하의 정수)마다 일치선(3-0-k 내지 3-s-k)을 입력으로 하는 인코더(22-k)와 일치 검출 수단(16-k)을 가지고, 또 인코더(18)와 선택 수단(24)을 가지고 있다.
도27에 나타내는 종래의 연상 메모리를 복수 접속할 때의 제2의 구성예의 어드레스 신호 생성부(319)와 비교하면 알 수 있듯이, 도3에 도시된 본 발명의 제2 실시 형태의 연상 메모리 시스템(201)의 어드레스 신호 생성부(25)는 인코더 (22-0 내지 22-r)와, 일치 검출 수단(16-0 내지 16-r)과, 선택 수단(24)은 도27에 나타낸 종래의 어드레스 신호 생성부(319)와 동일하게 구성된다. 도27에 도시된 종래의 어드레스 신호 생성부(319)의 우선순위 인코더(315)가, 도3에 도시된 본 발명의 제2 실시 형태의 연상 메모리 시스템(201)의 어드레스 신호 생성부(25)에서는 인코더(18)로 바뀌어 있는 것만이 다르다. 인코더(18)는 우선순위 기능이 없는 것만이 도27의 우선순위 인코더(315)와 다르고, 일치 검출 수단(16-0 내지 16-r)이 생성하는 일치 검출 신호(17-0 내지 17-r)를 입력으로 하고, 부호화한 결과를 상위 어드레스 신호(19)로서 선택 수단(24)에 출력함과 동시에 어드레스 신호 생성부(25)의 외부에도 출력하는 기능을 가지고 있다. 이후의 설명에서는 인코더(22-0, 22-1) 및 인코더(18)는 2진수에 부호화하는 경우를 예로 들지만, 다른 부호화 처리에서도 괜찮다는 것은 언급할 필요도 없다. 또한, 도시하지 않은 메모리의 워드 선으로서 직접 출력해도 괜찮다는 것도 언급할 필요가 없다. 다음에도3을 참조하여, 본 발명의 제2 실시 형태의 연상 메모리의 시스템의 동작을 설명한다. 도1과 동일하게 본 예에서는 이후, 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다. 또한, 기억 데이터와 동일하게 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(3)의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다.
1차 검색용 연상 메모리(4-0, 4-1)가 가지는 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에는, 도1의 설명과 동일하게 4진수 표기의 구조화 데이터로서 각각 (1. *. *. *), (2. *. *. *), (1. 2. 2. *), (2. 1. 2. *), (3. 1. *. *), (1. 2. *. *), (2. 1. *. *), (3. *. *. *)를 표현하는 것과 같이, 기억 데이터 및 마스크 정보를 소트 처리하지 않고 저장하고 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(5-0, 5-1)가 가지는 연상 메모리 워드(8-0-0 내지 8-3-1)에는, 도1의 설명과 동일하게 1차 검색용 연상 메모리(4-0, 4-1)의 대응하는 1차 연상 메모리 워드(7-0-0 내지 7-3-1)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (1. 0. 0. 0), (2. 0. 0. 0), (1. 2. 2. 0), (2. 1. 2. 0), (3. 1. 0. 0), (1. 2. 0. 0), (2. 1. 0. 0), (3. 0. 0. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다.
여기서 도1의 설명과 동일하게 검색 데이터(2)로서 도24에 나타내는 PC(401-2)의 4진수 표기의 네트워크 어드레스 (2. 1. 2. 3)를 입력한 경우에는, 연상 메모리(1-0, 1-1) 및 중간 데이터 연산부(9)는 도1의 설명과 동일하게 동작하고, 결과적으로 일치선(3-0-0 내지 3-3-1) 중에서 일치선(3-3-0)만이 일치선의 유효 상태"1"을 어드레스 신호 생성부(25)에 출력하고, 나머지의 일치선(3-0-0 내지 3-2-0, 3-0-1 내지 3-3-1)에는 일치선의 무효 상태 "0"을 출력하게 된다. 따라서 어드레스 신호 생성부(25)에는 연상 메모리(1-0)로부터 일치선(3-0-0 내지 3-3-0)으로서 2진수 표기로 "1000"이 입력되고, 연상 메모리(1-1)로부터 일치선(3-0-1 내지 3-3-1)으로서 2진수 표기로 "0000"이 입력되게 된다.
따라서, 연상 메모리(1-0)에 대응하는 우선순위 기능을 가지지 않는 인코더(22-0)는 일치 어드레스 신호(23-0)로서 2진수 표기로 "11"을 선택 수단(24)에 출력하고, 일치 검출 수단(16-0)은 일치 검출 신호(17-0)에 유효 상태 "1"을 출력한다. 연상 메모리(1-1)에 대응하는 우선순위 기능을 가지지 않는 인코더(22-1)는 일치 어드레스 신호(23-1)로서 2진수 표기로 "00"을 선택 수단(24)에 출력하고, 일치 검출 수단(16-1)은 일치 검출 신호(17-1)에 무효 상태 "0"을 출력한다.
도27의 우선순위 인코더(315)의 경우와 다르게, 도3의 인코더(18)에 입력되어 있는 일치 검출 신호(17-0 내지 17-1) 중에서 유효 상태 "1"인 것은 일치 검출 신호(17-0)뿐이기 때문에, 인코더(18)는 2진수 표기로 "0"을 상위 어드레스 신호(19)로서 선택 수단(24)에 출력함과 동시에, 어드레스 신호 생성부(25)의 외부에도 출력한다.
선택 수단(24)은 인코더(18)로부터 입력된 상위 어드레스 신호(19)가 2진수 표기로 "0"이기 때문에, 대응하는 2진수 표기로 "11"의 일치 어드레스 신호(23-0)를 선택하고, 하위 어드레스 신호(21)로서 어드레스 신호 생성부(25)의 외부에 출력한다.
어드레스 신호 생성부(25)로부터 출력된 2진수 표기로 "0"의 상위 어드레스 신호(19), 2진수 표기로 "11"의 하위 어드레스 신호(21)를 각각 어드레스 출력 신호(12)의 상위측, 하위측으로서 연결하는 것에 의하여 2진수 표기로 "011"의 어드레스 출력 신호(12)를 얻을 수 있다. 따라서, 도27에 도시된 종래의 연상 메모리를 복수 접속할 때의 제2의 구성예와 다르게 도3에 도시된 본 발명의 제2 실시 형태의 연상 메모리 시스템(201)에서는 우선순위 인코더를 가지지 않음에도 불구하고, 도2의 제1 실시 형태의 연상 메모리 시스템(200)의 동작예와 동일하게 검색 데이터(2)에 대한 올바른 검색 결과가 얻어진다는 것을 알 수 있다.
이것은, 제1 실시 형태의 연상 메모리 시스템(200)과 동일하게, 중간 데이터 연산부(9)가 중간 데이터(6-1-0 내지 6-8-0)와 중간 데이터(6-1-1 내지 6-8-1)중에서 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 8비트의 최적화 중간 데이터(10-1 내지 10-8)로서 각 연상 메모리(1-0, 1-1)에 2차 검색시의 검색 데이터로서 출력하기 때문에, 연상 메모리 시스템(201) 전체로서 최적인 2차 검색을 실행할 수 있기 때문이다. 따라서, 최적인 결과를 저장하고 있지 않는 연상 메모리(1-1)의 일치선(3-0-1 내지 3-3-1)은 모두 무효 상태가 되어, 우선순위 인코더를 가질 필요가 없어진다.
본 예의 어드레스 신호 생성부(25)는 도1에 도시된 어드레스 신호 생성부(11)보다 구성이 복잡하지만 각 연상 메모리(1-k)(k는 0이상 r이하의 정수)마다 대응하는 인코더(22-k), 일치 검출 수단(16-k)을 물리적으로 가까운 위치에 배치하는 것에 의하여 긴 배선의 개수를 삭감하는 것이 가능해진다. 각 연상 메모리(1-0 내지 1-r)의 면적은 일반적으로 매우 크기 때문에, 각 연상 메모리 사이를 결선하는 일치선(3-0-0 내지 3-s-r)의 배선은 매우 길어진다. 그로 인해, 본 예의 어드레스 신호 생성부(25)는, 도1에 도시된 어드레스 신호 생성부(11)에 비해 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수 있다. 또한, 배선 영역의 감소에 의해 더욱 면적을 삭감할 수 있다.
물론, 도27에 나타낸 우선순위 인코더(315)를 가지는 어드레스 신호 생성부(319)를 본 예의 어드레스 신호 생성부(25) 대신에 이용해도 올바른 결과를 얻을 수 있다는 것은 분명하다. 또한, 이 경우에 있어서도 구조화 데이터를 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장할 때에 소트 처리가 불필요하다는 것은 언급할 필요도 없다.
일치 어드레스 신호(23-0 내지 23-r) 및 일치 검출 신호(17-0 내지 17-r) 혹은 일치선(3-0-0 내지 3-s-r) 등에 기억 수단을 적당히 삽입해 파이프라인을 구성하는 것에 의해 동작 주파수를 향상할 수 있는 것은 언급할 필요도 없다.
또한, 본 예에서는 연상 메모리(1-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)로 실행하고, 2차 검색을 2차 검색용 연상 메모리(5-k)로 실행하는 경우를 예로서 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리로 1차 검색과 2차 검색을 실행하는 경우에 있어서도, 완전히 동일하게 연상 메모리 시스템(201)을 구성할 수 있는 것은 언급할 필요도 없다.
[중간 데이터 연산부의 제2의 구성예]
다음에 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제2의 구성예에 대하여 설명한다. 도4는 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제2의 구성예를 나타내는 블럭도이다. 중간 데이터 연산부(26)는 도1에 도시한 중간 데이터 연산부(9)와 동일하게, 도시하지 않은 p개의 연상 메모리로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 n비트의 최적화 중간 데이터(10-1 내지 10-n)로서 출력한다. 도4에 도시된 제2 구성예의 중간 데이터 연산부(26)는 입력된 p개의 n비트의 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r))를 각각 2진수의 수치로 간주하여 비교했을 때에 최대치가 되는 것을 n비트의 최적화 중간 데이터(10-1 내지 10-n)로서 출력하는 최대치 선택 수단(27)에 의해 구성된다. 이것은 도24에 나타내듯이 네트워크 어드레스가 계층 구조를 가지기 때문에, 가장 중간 데이터의 무효 상태의 비트수가 적은 것이 2진수의 수치로 간주했을 때에 최대치가 되기 때문이다.
다음에 도5를 참조하여 본 발명의 제2 구성예의 중간 데이터 연산부(26)의 동작을 도1과 동일하게, 도시하지 않은 2개의 8비트 구성의 연상 메모리 2개로부터 4진수 표기로 (2. 1. 2. 0)의 중간 데이터(6-1-0 내지 6-8-0), 4진수 표기로(2. 1. 0. 0)의 중간 데이터(6-1-1 내지 6-8-1)가 각각 중간 데이터 연산부(26)에 입력되어 있는 경우를 예로 들어 설명한다. 또한, 도1과 동일하게 본 예에서는 이후에, 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다.
중간 데이터(6-1-0 내지 6-8-0)의 값은 2진수 표기로 "10011000", 10진수 표기로 "152"가 된다. 중간 데이터(6-1-1 내지 6-8-1)의 값은 2진수 표기로"10010000", 10진수 표기로 "144"가 된다. 따라서, 최대치 선택 수단(27)은 중간 데이터(6-1-0 내지 6-8-0)로 중간 데이터(6-1-1 내지 6-8-1)를 비교한 결과, 최대치가 되는 중간 데이터(6-1-0 내지 6-8-0)를 선택하고, 최적화 중간 데이터(10-1 내지 10-8)로서 중간 데이터 연산부(26) 외부에 출력한다. 따라서, 최적화 중간 데이터(10-1 내지 10-8)로서 올바른 값이 얻어진다는 것을 알 수 있다.
여기서, 중간 데이터(6)의 유효 상태가 "0", 무효 상태가 "1"인 경우에는 입력된 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r))를 각각 2진수의 수치로 간주하여 비교했을 때에 최소치가 되는 것을 n비트의 최적화 중간 데이터(10-1 내지 10-n)로서 출력하는 최소치 선택 수단에 의해 구성하면 괜찮다는 것은 언급할 필요도 없다.
또한, 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 혹은 최적화 중간 데이터(10-1 내지 10-n) 등에 기억 수단을 적당히 삽입하여 파이프라인을 구성하는 것에 의해 동작 주파수를 향상할 수 있다는 것은 언급할 필요도 없다.
[중간 데이터 연산부의 제3의 구성예]
다음으로 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제3의 구성예에 대하여 설명한다. 도6은 본 발명의 연상 메모리 시스템의 중간 데이터 연산부의 제3의 구성예를 나타내는 블럭도이다. 중간 데이터 연산부(28)는 도1에 도시된 중간 데이터 연산부(9)와 동일하게, 도시하지 않은 p개의 연상 메모리로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 n비트의 최적화 중간데이터(10-1 내지 10-n)로서 출력한다. 도6에 도시된 제3의 구성예의 중간 데이터 연산부(28)는 무효 상태 비트수 계수 수단(29-0 내지 29-r)과, 비교 수단(33-0 내지 33-r)과, 최소치 선택 수단(31)과, 선택 수단(35)을 가지고 있다.
k번째의 무효 상태 비트수 계수 수단(29-k)은 대응하는 n비트의 중간 데이터(6-1-k 내지 6-n-k)를 입력으로 하고, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수 한다. 무효 상태 비트수 계수 수단(29-k)은 계수 결과를 무효 상태 비트수 신호(30-k)로서 최소치 선택 수단(31) 및 비교 수단(33-k)에 출력한다.
최소치 선택 수단(31)은 무효 상태 비트수 계수 수단(29-0 내지 29-r)으로부터 각각 입력되는 무효 상태 비트수 신호(30-0 내지 30-r)를 비교하고, 그 중의 최소치를 최소치 신호(32)로서 비교 수단(33-0 내지 33-r)에 출력한다.
k번째의 비교 수단(33-k)은 대응하는 무효 상태 비트수 신호(30-k)와, 최소치 신호(32)를 비교하여, 일치하는 경우에는 선택 허가 신호(34-k)에 유효 상태를, 그 이외의 경우에는 무효 상태를 출력한다. 따라서, 무효 상태 비트수 신호(30-0 내지 30-r) 중에서 k번째의 무효 상태 비트수 신호(30-k)가 최소의 경우에만 선택 허가 신호(34-k)는 유효 상태가 된다.
선택 수단(35)은 선택 허가 신호(34-0 내지 34-r) 중에서 유효 상태인 선택 허가 신호(34-k)에 대응하는 중간 데이터(6-1-k 내지 6-n-k)를 최적화 중간 데이터(10-1 내지 10-n)로서 중간 데이터 연산부(28)의 외부에 출력한다. 즉, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수 한 경우에 최소가 되는 중간 데이터(6-1-k 내지 6-n-k)가 최적화 중간 데이터(10-1 내지 10-n)로서 출력되게 된다.
다음으로 도7을 참조하여 본 발명의 제3의 구성예의 중간 데이터 연산부(28)의 동작을 도1과 동일하게, 도시하지 않은 2개의 8비트 구성의 연상 메모리 2개로부터, 4진수 표기로 (2. 1. 2. 0)의 중간 데이터(6-1-0 내지 6-8-0), 4진수 표기로 (2. 1. 0. 0)의 중간 데이터(6-1-1 내지 6-8-1)가 각각 중간 데이터 연산부(28)에 입력되고 있는 경우를 예로 들어 설명한다. 또한, 도1과 동일하게 본 예에서는 이후, 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 또한, 도24에 도시된 바와 같이 네트워크 어드레스의 최상위 계층은 좌측, 최하위 계층은 우측으로 한다.
무효 상태 비트수 계수 수단(29-0)은 중간 데이터(6-1-0 내지 6-8-0)의 2진수 표기의 값 "10011000" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "3"의 값을 무효 상태 비트수 신호(30-0)로서 출력한다. 무효 상태 비트수 계수 수단(29-1)은 중간 데이터(6-1-1 내지 6-8-1)의 2진수 표기의 값 "10010000" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "4"의 값을 무효 상태 비트수 신호(30-1)로서 출력한다.
최소치 선택 수단(31)은 무효 상태 비트수 계수 수단(29-0 내지 29-1)으로부터 각각 입력되는 무효 상태 비트수 신호(30-0, 30-1)를 비교하여, 그 중의 최소치인 10진수 표기의 값 "3"을 최소치 신호(32)로서 비교 수단(33-0 내지 33-1)에 출력한다.
비교 수단(33-0)은 대응하는 무효 상태 비트수 신호(30-0)의 10진수 표기의 값 "3"과 최소치 신호(32)의 10진수 표기의 값 "3"을 비교하여, 일치하기 때문에 선택 허가 신호(34-0)에 유효 상태를 출력한다. 비교 수단(33-1)은 대응하는 무효 상태 비트수 신호(30-1)의 10진수 표기의 값 "4"와, 최소치 신호(32)의 10진수 표기의 값 "3"을 비교하여, 일치하지 않기 때문에 선택 허가 신호(34-1)에 무효 상태를 출력한다.
선택 수단(35)은 입력된 선택 허가 신호(34-0, 34-1) 중에서 유효 상태인 선택 허가 신호(34-0)에 대응하는 중간 데이터(6-1-0 내지 6-8-0)의 4진수 표기의 값(2. 1. 2. 0)을 최적화 중간 데이터(10-1 내지 10-8)로서 중간 데이터 연산부(28)의 외부에 출력한다. 따라서, 최적화 중간 데이터(10-1 내지 10-8)로서 올바른 값이 얻어진다는 것을 알 수 있다. 이것은, 각 연상 메모리(1-0 내지 1-r)에 있어서, 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것에 의해 표현하고 있기 때문에, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측에 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수한 경우에 최소가 되는 중간 데이터(6-1-k 내지 6-n-k)가 최적화 중간 데이터(10-1 내지 10-n)가 되기 때문이다.
또한, 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 혹은 최적화 중간 데이터(10-1 내지 10-n) 등에 기억 수단을 적당히 삽입하여 파이프라인을 구성하는 것에 의해 동작 주파수를 향상할 수 있다는 것은 언급할 필요도 없다.
또한, 본 예의 무효 상태 비트수 계수 수단(29-k)은 회로 규모를 삭감하기 위해서, 중간 데이터(6-1-k 내지 6-n-k)에 있어서의 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측에 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수하고 있지만, 단순하게 중간 데이터(6-1-k 내지 6-n-k)의 모든 비트에 있어서의 무효 상태의 수를 계수해도 괜찮다는 것은 분명하다.
[제3 실시예의 구성]
다음에 본 발명의 제3 실시 형태의 연상 메모리 시스템에 대하여 도면을 참조하여 상세하게 설명한다. 도8은 본 발명의 제3 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(203)의 구성예를 도시하는 블럭도이다.
연상 메모리 시스템(203)은 p개의 m어 n비트의 연상 메모리(202-0 내지 202-r)와, n개의 저항(38-1 내지 38-n)과, 어드레스 신호 생성부(11)로부터 구성되어, n비트의 검색 데이터(2)를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다. 도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)과 비교하면 알 수 있듯이, 도8에 도시된 본 발명의 제3 실시 형태의 연상 메모리 시스템(203)은, 어드레스 신호 생성부(12)는 제1 실시 형태의 연상 메모리 시스템(200)과 동일하게 구성되어, 연상 메모리(202-0 내지 202-r)의 내부 구조 및 중간 데이터 연산부(9) 대신 저항(38-1 내지 38-n)을 가지는 점만이 다르다. 따라서, 다른 부분만의 설명을 한다.
연상 메모리(202-k)(k는 0이상 r이하의 정수)는 1차 검색용 연상 메모리(4-k)와, 2차 검색용 연상 메모리(5-k)와, 출력 수단(36-1-k 내지 36-n-k)과, 입력 수단(37-1-k 내지 37-n-k)에 의해 구성된다. 도1에 도시된 연상 메모리(1-k)와 비교하면 알 수 있듯이, 도8에 도시된 연상 메모리(202-k)는 1차 검색용 연상 메모리(4-k)와 2차 검색용 연상 메모리(5-k)는, 도1에 도시된 연상 메모리(1-k)와 동일하게 구성된다. 1차 검색용 연상 메모리(4-k)로부터 출력되는 중간 데이터(6-1-k 내지 6-n-k)에 출력 수단(36-1-k 내지 36-n-k)이 접속되어 있는 점과, 2차 검색용 연상 메모리(5-k)에 입력되는 최적화 중간 데이터(37-1-k 내지 37-n-k)를 입력 수단(37-1-k 내지 37-n-k)이 생성하고 있는 점 및 출력 수단(36-1-k 내지 36-n-k)의 출력 신호인 결선 논리합신호(39-1 내지 39-n)가 연상 메모리(202-k)의 외부에 출력되는 것과 동시에 입력 수단(37-1-k 내지 37-n-k)에 각각 입력되고 있는 점만이, 도1에 도시된 연상 메모리(1-k)와 다르다. 따라서, 다른 부분만의 설명을 한다.
j번째(j는 1이상 n이하의 정수)의 출력 수단(36-j-k)은 중간 데이터의 무효 상태의 전위와 결선 논리합신호(39-j)의 사이에 삽입되어, 중간 데이터(36-j-k)가 유효 상태인 때에 도통 상태가 되고, 중간 데이터(36-j-k)가 무효 상태인 경우에는 개방 상태가 된다. 따라서 출력 수단(36-j-k)은 중간 데이터(36-j-k)가 유효 상태인 때에 결선 논리합신호(39-j)에 중간 데이터의 무효 상태를 출력하고, 중간 데이터(36-j-k)가 무효 상태인 경우에는 결선 논리합신호(39-j)를 개방 상태로 한다.
또한, j번째의 입력 수단(37-j-k)은 입력된 결선 논리합신호(39-j)의 상태를 반전하여 최적화 중간 데이터(40-j-k)로서 2차 검색용 연상 메모리(5-k)에 출력한다.
각 연상 메모리(202-0 내지 202-r)가 출력하는 결선 논리합신호(39-1 내지 9-n)는 대응하는 비트끼리가 서로 접속되는 것과 동시에, 대응하는 저항(38-1 내지 38-n)을 통하여 중간 데이터의 유효 상태의 전위에 접속되고 있다.
이에 따라, 1개의 1차 연상 메모리(4-k)에서도 j비트째의 중간 데이터(6-j-k)에 유효 상태를 출력하고 있으면, 모든 2차 연상 메모리(5-0 내지 5-r)에 입력되는 j비트째의 최적화 중간 데이터선(40-j-0 내지 40-j-r)은 중간 데이터의 유효 상태가 되는 와이어드 OR 접속을 구성하는 것이 되어, 도1에 도시된 중간 데이터 연산부(9)의 논리합수단(13)과 논리적으로 등가가 된다. 따라서, 연상 메모리 시스템(203) 전체로서, 도1에 도시된 연상 메모리 시스템(200)과 논리적으로 등가인 것을 알 수 있다.
본 예의 연상 메모리 시스템(203)에서는 와이어드 OR 접속에 의해 도1의 중간 데이터 연산부와 등가인 구성을 실현하고 있기 때문에, 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 제외하면 연상 메모리 시스템(203)은 결선 논리합신호(39-1 내지 39-n)의 n개의 배선 밖에 가지고 있지 않다. 또한, 연상 메모리(202-k)는 검색 데이터 및 일치선(3-0-k 내지 3-s-k)을 제외하면 필요한 단자는 결선 논리합신호(39-1 내지 39-n)를 입출력하기 위한 n개의 단자뿐이다. 예를 들면 4개의 64 비트의 연상 메모리(1-0 내지 1-3)에서 도8의 연상 메모리 시스템(203)을 구성하고 싶은 경우, 연상 메모리 사이의 상기 배선은 64개가 되어 연상 메모리(202-k)에 필요한 상기 단자는 64개가 된다.
도1에 도시된 연상 메모리 시스템(200)에서는 p개의 연상 메모리(1-0 내지 1-r)가 각각 n비트의 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r))를 중간 데이터 연산부(9)에 출력하는 n×p개의 배선과, 중간 데이터 연산부(9)가 연상 메모리(1-0 내지 1-r)에 출력하는 최적화 중간 데이터(10-1 내지 10-n)의 n개의 배선을 가진다. 따라서, 연상 메모리 시스템(200)은 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 제외하고, 연상 메모리(1-0 내지 1-r) 사이에 n×(p+1)개의 배선을 가지게 된다. 또한, 각 연상 메모리(1-k)는 검색 데이터 및 일치선(3-0-k 내지 3-s-k)을 제외하면 n비트의 중간 데이터(6-1-k 내지 6-n-k)를 출력하기 위한 n개의 단자와, n비트의 최적화 중간 데이터(10-1 내지 10-n)를 입력하기 위한 n개의 단자의 합계 2n개의 단자가 필요하다. 예를 들면 4개의 64 비트의 연상 메모리(1-0 내지 1-3)로 도1의 연상 메모리 시스템(200)을 구성하고 싶은 경우, 연상 메모리 사이의 상기 배선은 320개가 되고, 연상 메모리(1-k)에 필요한 상기 단자는 128개가 된다.
따라서, 도8에 도시된 제3 실시 형태의 연상 메모리 시스템(203)은 도1에 도시된 연상 메모리 시스템(200)보다 긴 배선의 개수를 대폭 삭감하는 것이 가능해지는 것과 동시에, 각 연상 메모리(202)에 필요한 단자의 수를 대폭 삭감할 수가 있다. 각 연상 메모리(202)의 면적은 일반적으로 매우 넓기 때문에 각 연상 메모리 사이의 배선은 매우 길어진다. 그로 인해, 본 예의 연상 메모리 시스템(203)은 도1에 도시된 연상 메모리 시스템(200)에 비해 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수 있다. 또한, 배선 영역의 감소에 의해 더욱 면적을 삭감할 수가 있다. 또한, 각 연상 메모리의 단자수가 대폭 삭감되기 때문에 면적을 한층 더 삭감하는 것이 가능하다.
본 예에서는 연상 메모리(202-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)에서 실행하고, 2차 검색을 2차 검색용 연상 메모리(5-k)에서 실행하는 경우를 예로서 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리에서 1차 검색과 2차 검색을 실행하는 경우에 있어서도, 완전히 동일하게 연상 메모리 시스템(203)을 구성할 수 있다는 것은 언급할 필요도 없다.
또한, 결선 논리합신호(39-1 내지 39-n)를, 저항(38-1 내지 38-n)을 통하여 중간 데이터의 유효 상태에 접속하는 대신에, 1차 검색의 개시전에 중간 데이터의 유효 상태에 프리차지 하는 것에 의해서도 구성할 수 있다는 것은 언급할 필요도 없다.
[제4 실시예의 구성]
다음으로 본 발명의 제4 실시 형태의 연상 메모리 시스템에 대해서 도면을 참조하여 상세하게 설명한다. 도9는 본 발명의 제4 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(205)의 구성예를 도시한 블럭도이다.
연상 메모리 시스템(205)은 p개의 m어 n비트의 연상 메모리(204-0 내지 204-r)와, p개의 논리곱수단(46-0 내지 46-r)과, 중간 데이터 판정부(41)와, 어드레스 신호 생성부(11)로부터 구성되고, n비트의 검색 데이터(2)를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다.
k번째의 연상 메모리(204-k)는 도27에 도시된 종래의 연상 메모리(300-k)와 비교하면 알 수 있듯이 중간 데이터(6-1-k 내지 6-n-k)를 2차 검색용 연상 메모리(5-k)에 입력함과 함께 연상 메모리(204-k) 외부에 출력하는 것을 제외하면 도27에 도시된 종래의 연상 메모리(300-k)와 동일하게 구성할 수 있다.
어드레스 신호 생성부(11)는 입력이 일치선(3-0-0 내지 3-s-r)이 아니라 실효 일치선(47-0-0 내지 47-s-r)으로 바뀐 점을 제외하면, 도1의 어드레스 신호 생성부(11)와 완전히 동일하게 구성할 수 있다. 물론, 도3에 도시한 어드레스 신호 생성부(25)를 이용해도 구성할 수 있다는 것은 언급할 필요도 없다.
중간 데이터 판정부(41)는 p개의 연상 메모리(204-0 내지 204-r)로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(45-0 내지 45-r)에 유효 상태를 출력한다. 중간 데이터 판정부(41)는 중간 데이터 연산부(42)와, p개의 비교 수단(44-0 내지 44-r)으로부터 구성된다.
중간 데이터 연산부(41)는 p개의 연상 메모리(204-0 내지 204-r)로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 n비트의 최적화 중간 데이터(43-1 내지 43-n)로서 비교 수단(44-0 내지 44-r)에 출력한다. 따라서, 중간데이터 연산부(42)는 도1에 도시된 중간 데이터 연산부(9)와 완전히 동일하게 구성할 수 있다. 물론, 도4에 도시된 제2의 구성예의 중간 데이터 연산부(26), 도6에 도시된 제3의 구성예의 중간 데이터 연산부(28)를 이용해도 구성할 수 있다는 것은 언급할 필요도 없다.
k번째의 비교 수단(44-k)은 대응하는 중간 데이터(6-1-k 내지 6-n-k)와, 최적화 중간 데이터(43-1 내지 43-n)를 비교하여, 일치하는 경우에는 유효 검출 신호(45-k)에 유효 상태를, 그 이외의 경우에는 무효 상태를 출력한다. 따라서, p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, k번째의 중간 데이터(6-1-k 내지 6-n-k)가 가장 중간 데이터의 무효 상태의 비트수가 적은 경우에만 유효 검출 신호(45-k)는 유효 상태가 된다.
k번째의 연상 메모리(204-k)에 대응하는 논리곱수단(46-k)은, 대응하는 유효 검출 신호(45-k)가 유효 상태인 경우에는 연상 메모리(204-k)로부터 입력되는 일치선(3-0-k 내지 3-s-k)을 실효 일치선(47-0-k 내지 47-s-k)으로서 어드레스 신호 생성부(11)에 출력하고, 유효 검출 신호(45-k)가 무효 상태인 경우에는 m개의 실효 일치선(47-0-k 내지 47-s-k) 전체에 일치선의 무효 상태를 출력한다.
[제4 실시예의 동작]
다음으로 도10을 참조하여 본 발명의 제4 실시 형태의 연상 메모리의 시스템의 동작을 도1 및 도26과 동일하게 4어 8비트 구성의 연상 메모리(204-0, 204-1)의 2개를 접속하고, 또한 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장한 경우의 동작을 예로 들어 설명한다.여기서, 도1 및 도26과 동일하게 전체로 8어의 어드레스 공간 중에서 연상 메모리(204-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다.
도1 및 도26과 동일하게 본 예에서는 이후, 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다. 또한, 기억 데이터와 동일하게 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(3)의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다.
1차 검색용 연상 메모리(4-0, 4-1)가 가지는 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에는 도1 및 도26의 설명과 동일하게, 4진수 표기의 구조화 데이터로서 각각 (1. *. *. *), (2. *. *. *), (1. 2. 2. *), (2. 1. 2. *), (3. 1. *. *), (1. 2. *. *), (2. 1. *. *), (3. *. *. *)를 표현하는 것 같이 기억 데이터 및 마스크 정보를 소트 처리하지 않고 저장하고 있는 것으로 한다. 또한, 2차 검색용 연상 메모리(5-0, 5-1)가 가지는 연상 메모리 워드(8-0-0 내지 8-3-1)에는 도1, 도26의 설명과 동일하게, 1차 검색용 연상 메모리(4-0, 4-1)의 대응하는 1차 연상 메모리 워드(7-0-0 내지 7-3-1)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (1. 0. 0. 0), (2. 0. 0. 0), (1. 2. 2. 0), (2. 1. 2. 0), (3. 1. 0. 0), (1. 2. 0. 0), (2. 1. 0. 0), (3. 0. 0. 0)을 2차 기억 데이터로서 저장하고 있는 것으로 한다.
여기서 도26의 설명과 동일하게, 검색 데이터(2)로서 도24에 나타내는 PC(401-2)의 4진수 표기의 네트워크 어드레스 (2. 1. 2. 3)를 입력한 경우, 연상메모리(204-0, 204-1)는 도26의 종래의 연상 메모리(300-0, 300-1)와 동일하게 동작한다. 연상 메모리(204-0)의 1차 검색용 연상 메모리(4-0)에서는 검색 데이터(2)를 입력으로 하는 1차 검색의 결과, 1차 연상 메모리 워드(7-1-0, 7-3-0)가 일치하여 중간 데이터(6-1-0 내지 6-8-0)로서 4진수 표기로(2. 1. 2. 0), 2진수 표기로 "10011000"을 2차 검색용 연상 메모리(5-0)와 중간 데이터 판정부(41)에 출력한다. 2차 검색용 연상 메모리(5-0)에서는 중간 데이터(6-1-0 내지 6-8-0)를 입력으로 하는 2차 검색의 결과 연상 메모리 워드(8-3-0)가 일치하여 일치선(3-0-0 내지 3-3-0)에 2진수 표기로 "1000"을 출력하게 된다. 연상 메모리(204-1)의 1차 검색용 연상 메모리(4-0)에서는 검색 데이터(2)를 입력으로 하는 1차 검색의 결과, 1차 연상 메모리 워드(7-2-1)가 일치하여 중간 데이터(6-1-1 내지 6-8-1)로서 4진수 표기로 (2. 1. 0. 0), 2진수 표기로 "10010000"을 2차 검색용 연상 메모리(5-1)와 중간 데이터 판정부(41)에 출력한다. 2차 검색용 연상 메모리(5-1)에서는 중간 데이터(6-1-1 내지 6-8-1)를 입력으로 하는 2차 검색의 결과 연상 메모리 워드(8-2-1)가 일치하여 일치선(3-0-1 내지 3-3-1)에 2진수 표기로 "0100"을 출력하게 된다.
중간 데이터 판정부(41)의 중간 데이터 연산부(42)는 중간 데이터(6-1-0 내지 6-8-0)의 2진수 표기의 값 "10011000"과 중간 데이터(6-1-1 내지 6-8-1)의 2진수 표기의 값 "10010000" 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 2진수 표기의 값 "10011000", 4진수 표기로 (2. 1. 2. 0)를 최적화 중간 데이터(43-1 내지 43-8)로서 출력한다.
비교 수단(44-0)은 대응하는 중간 데이터(6-1-0 내지 6-8-0)의 2진수 표기의값 "10011000"과 최적화 중간 데이터(43-1 내지 43-8)의 값을 비교하고, 일치하기 때문에 유효 검출 신호(45-0)에 유효 상태를 출력한다. 비교 수단(44-1)은 대응하는 중간 데이터(6-1-1 내지 6-8-1)의 2진수 표기의 값 "10010000"과 최적화 중간 데이터(43-1 내지 43-8)의 값을 비교하여, 일치하지 않기 때문에 유효 검출 신호(45-1)에 무효 상태를 출력한다.
논리곱수단(46-0)은 대응하는 유효 검출 신호(45-0)가 유효 상태이므로, 연상 메모리(204-0)로부터 출력되는 일치선(3-0-0 내지 3-3-0)의 2진수 표기의 값 "1000"을 실효 일치선(47-0-0 내지 47-3-0)에 출력한다. 논리곱수단(46-1)은 대응하는 유효 검출 신호(45-1)가 무효 상태이기 때문에, 실효 일치선(47-0-1 내지 47-3-1) 전체에 일치선의 무효 상태를 출력한다. 따라서, 실효 일치선(47-0-1 내지 47-3-1)은 2진수 표기로 "0000"이 된다. 따라서, 어드레스 신호 생성부(11)에 입력되는 신호 중에서 유효 상태인 신호는 도2의 설명과 동일하게 실효 일치선(47-3-0)의 하나만이 되어, 어드레스 신호 생성부(11)는 어드레스 출력 신호(12)에 도2와 동일하게 올바른 2진수의 값 "011"을 출력할 수 있다는 것을 알 수 있다.
본 실시예에서는, k번째의 연상 메모리(204-k)는 1차 검색용 연상 메모리(4-k)에서 생성한 중간 데이터(6-1-k 내지 6-8-k)를 2차 검색용 연상 메모리(5-k)의 입력으로서 2차 검색을 실시한 결과 얻어지는 일치선(3-0-k 내지 3-s-k)에 대해서, 중간 데이터(6-1-k 내지 6-8-k)가 p개의 중간 데이터((6-1-0 ~ 6-8-0) 내지 (6-1-r ~ 6-8-r)) 중에서 최적이지 않은 경우에는 일치선(3-0-k 내지 3-s-k)을 모두 무효 상태로 변경한 후에 어드레스 신호 생성부(11)에 입력하는 것에 의해, 연상 메모리시스템(205) 전체로서 최적인 어드레스 출력 신호(12)를 얻는 구성이 되어 있다. 그에 비해, 본 발명의 제1의 연상 메모리 시스템(200)에서는 중간 데이터 연산부(9)에 의해 p개의 중간 데이터((6-1-0 ~ 6-8-0) 내지 (6-1-r ~ 6-8-r)) 중에서부터 연상 메모리 시스템(200) 전체로서 최적인 데이터로서 선택된 최적화 중간 데이터(10-1 내지 10-8)를 입력으로 하는 2차 검색을 2차 검색용 연상 메모리(5-0 내지 5-r)에서 행하는 것에 의해 연상 메모리 시스템 전체로서의 최적인 어드레스 신호 출력(12)을 얻는 구성이 되어 있다. 따라서, 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)에서는 중간 데이터 연산부(9)의 결과가 얻어질 때까지는 2차 검색용 연상 메모리(5-0 내지 5-r)는 2차 검색을 개시할 수 없었지만, 본 실시예에서는 중간 데이터 판정부(41)의 동작과 2차 검색용 연상 메모리(5-0 내지 5-r)에 의한 2차 검색을 병렬 실행할 수가 있기 때문에, 연상 메모리 시스템(205) 전체의 연산 속도를 대폭 향상시키는 것이 가능하다.
또한, n비트의 최적화 중간 데이터를 p개의 연상 메모리(204-0 내지 204-r)에 입력할 필요가 없어지기 때문에, 연상 메모리 시스템(205) 전체로서 긴 배선을 n×p개 삭감할 수 있음과 동시에, 연상 메모리(204)의 단자를 n개 삭감할 수가 있다. 그로 인해, 본 예의 연상 메모리 시스템(205)은 도1에 도시된 연상 메모리 시스템(200)에 비하여 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수 있다. 또한, 배선 영역의 감소에 의해 더욱 면적을 삭감할 수 있다. 또한, 각 연상 메모리의 단자수가 대폭 삭감되기 때문에 면적을 한층 더 삭감할 수 있다.
또한, 본 예에서는 연상 메모리(204-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)에서 실행하여, 2차 검색을 2차 검색용 연상 메모리(5-k)에서 실행하는 경우를 예로 들어 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리에서 1차 검색과 2차 검색을 실행하는 경우에 대해서도, 완전히 동일하게 연상 메모리 시스템(205)을 구성할 수 있다는 것은 언급할 필요도 없다.
[중간 데이터 판정부의 제2의 구성예와 동작예]
다음으로, 본 발명의 연상 메모리 시스템의 중간 데이터 판정부의 제2의 구성예에 대해서 설명한다. 도11은 본 발명의 연상 메모리 시스템(206)의 중간 데이터 판정부(48)의 제2의 구성예와 연상 메모리 시스템(206) 내부에서의 동작예를 도시한 블럭도이다.
연상 메모리 시스템(206)은 p개의 m어 n비트의 연상 메모리(204-0 내지 204-r)와, 중간 데이터 판정부(48)와, 어드레스 신호 생성부(11)로부터 구성되고, n비트의 검색 데이터 2를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다. 도9에 도시된 연상 메모리 시스템(205)과 비교하면 중간 데이터 판정부(41)가 제2 실시 형태의 중간 데이터 판정부(48)로 바뀐 점만이 다르고, 그 외는 완전히 동일하게 구성할 수 있다. 도11에 도시된 연상 메모리 시스템(206)은 도10에 도시된 제4 실시 형태의 동작예의 설명과 동일하게, 4어 8비트 구성의 연상 메모리(204-0, 204-1)를 2개를 접속하고, 또한 1차 연상 메모리 워드(7-0-0 내지 7-3-1), 연상 메모리 워드(8-0-0 내지 8-3-1)에 도10과 동일한 데이터를 저장한 경우의 동작을 예로 들어 설명한다. 또한, 전체로 8어의 어드레스 공간 중에서 연상 메모리(204-1)가 상위측의 어드레스 공간을 차지하는 것으로 한다. 물론, 임의의 비트 길이 워드수의 n비트 m어의 연상 메모리(204)를 임의 개수 접속한 경우에도 동일하게 구성할 수 있다는 것은 언급할 필요도 없다.
중간 데이터 판정부(48)는 도9에 도시된 중간 데이터 판정부(41)와 동일하게, p개의 연상 메모리로부터 입력되는 p개의 n비트 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r)) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(45-0 내지 45-r)에 유효 상태를 출력한다. 중간 데이터 판정부(48)는 무효 상태 비트수 계수 수단(49-0 내지 49-r)과, 비교 수단(53-0 내지 53-r)과, 최소치 선택 수단(51)을 가지고 있다.
k번째의 무효 상태 비트수 계수 수단(49-k)은 대응하는 n비트의 중간 데이터(6-1-k 내지 6-n-k)를 입력으로 하고, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수 한다. 무효 상태 비트수 계수 수단(49-k)은 계수 결과를 무효 상태 비트수 신호(50-k)로서 최소치 선택 수단(51) 및 비교 수단(53-k)에 출력한다.
최소치 선택 수단(51)은 무효 상태 비트수 계수 수단(49-0 내지 49-r)으로부터 각각 입력되는 무효 상태 비트수 신호(50-0 내지 50-r)를 비교하여, 그 중의 최소치를 최소치 신호(52)로서 비교 수단(53-0 내지 53-r)에 출력한다.
k번째의 비교 수단(53-k)은 대응하는 무효 상태 비트수 신호(50-k)와 최소치 신호(52)를 비교하여, 일치하는 경우에는 유효 검출 신호(45-k)에 유효 상태를, 그 이외의 경우에는 무효 상태를 출력한다. 따라서, 무효 상태 비트수 신호(50-0 내지50-r) 중에서 k번째의 무효 상태 비트수 신호(50-k)가 최소의 경우에만, 유효 검출 신호(45-k)는 유효 상태가 된다. 즉, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를, 최초의 중간 데이터의 유효 상태인 비트가 나타날 때까지 계수한 경우에 최소가 되는 중간 데이터(6-1-k 내지 6-n-k)에 대응하는 유효 검출 신호(45-k)에만 유효 상태가 출력되게 된다.
다음으로 도11을 참조하여, 본 발명의 제2의 구성예의 중간 데이터 판정부(48)의 동작을 설명한다. 본 예에서는 이후, 중간 데이터(6)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 또한, 도24에 도시하였듯이 네트워크 어드레스의 최상위 계층은 좌측, 최하위 계층은 우측으로 한다. 연상 메모리(204-0, 204-1)는 도10과 동일하게 동작하여, 4진수 표기로(2. 1. 2. 0)의 중간 데이터(6-1-0 내지 6-8-0), 4진수 표기로 (2. 1. 0. 0)의 중간 데이터(6-1-1 내지 6-8-1)를 각각 중간 데이터 판정부(48)에 입력하고 있는 것으로 한다.
무효 상태 비트수 계수 수단(49-0)은 중간 데이터(6-1-0 내지 6-8-0)의 2진수 표기의 값 "10011000" 중에서, 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "3"의 값을 무효 상태 비트수 신호(50-0)로서 출력한다. 무효 상태 비트수 계수 수단(49-1)은 중간 데이터(6-1-1 내지 6-8-1)의 2진수 표기의 값 "10010000" 중에서, 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "4"의 값을 무효 상태 비트수 신호(50-1)로서 출력한다.
최소치 선택 수단(51)은 무효 상태 비트수 계수 수단(49-0 내지 49-1)으로부터 각각 입력되는 무효 상태 비트수 신호(50-0, 50-1)를 비교하여, 그 중의 최소치인 10진수 표기의 값 "3"을 최소치 신호(52)로서 비교 수단(53-0 내지 53-1)에 출력한다.
비교 수단(53-0)은 대응하는 무효 상태 비트수 신호(50-0)의 10진수 표기의 값 "3"과 최소치 신호(52)의 10진수 표기의 값 "3"을 비교하여, 일치하기 때문에 유효 검출 신호(45-0)에 유효 상태를 출력한다. 비교 수단(53-1)은 대응하는 무효 상태 비트수 신호(50-1)의 10진수 표기의 값 "4"와 최소치 신호(52)의 10진수 표기의 값 "3"을 비교하여, 일치하지 않기 때문에 유효 검출 신호(45-1)에 무효 상태를 출력한다. 따라서, 유효 검출 신호(45-0 내지 45-1)로서 올바른 상태를 얻을 수 있는 것을 알 수 있다. 이것은, 각 연상 메모리(204-0 내지 204-r)에 있어서 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것에 의해 표현하고 있기 때문에, 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를, 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수한 경우에 최소가 되는 중간 데이터(6-1-k 내지 6-n-k)를 출력하고 있는 연상 메모리(204-k) 만이 최적인 검색을 실행하고 있는 것이 되기 때문이다.
도11에 도시된 연상 메모리 시스템(206)에 있어서, 연상 메모리(204-k)에 대응하는 무효 상태 비트수 계수 수단(49-k)을 연상 메모리(204-k)에 내장한 경우에는 다음과 같이 긴 배선 개수 삭감, 연상 메모리(204)의 단자수를 삭감할 수 있다.
연상 메모리 시스템(206)의 구성요소끼리를 접속하기 위한 긴 배선은 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 제외하면, p쌍의 무효 상태 비트수 신호(50-k) 뿐이고, 무효 상태 비트수 계수 수단의 출력이 바이너리 데이터에 부호화 되어 있는 경우, 이러한 배선 개수는 p×[1 + log2n]이 된다([]는 가우스 기호). 또한, 연상 메모리(204-k)는 검색 데이터 및 일치선(3-0-k 내지 3-s-k)을 제외하면 필요한 단자는 무효 상태 비트수 신호(50-k)를 출력하기 위한 단자뿐이다. 예를 들면 4개의 64 비트의 연상 메모리(1-0 내지 1-3)로 연상 메모리 시스템(206)을 구성하고 싶은 경우, 무효 상태 비트수 신호(50)의 비트수는 10 진수로 "0"에서부터 "64"를 표현하기 위하여 7개가 되어 연상 메모리 사이의 상기 배선은 합계 28개가 된다. 또한, 연상 메모리(204-k)에 필요한 상기 단자는 7개가 된다.
도9에 도시된 연상 메모리 시스템(205)에서는 p개의 연상 메모리(204-0 내지 204-r)가 각각 n비트의 중간 데이터((6-1-0 ~ 6-n-0) 내지 (6-1-r ~ 6-n-r))를 중간 데이터 판정부(41)에 출력하는 n×p개의 배선을 가진다. 따라서, 연상 메모리 시스템(205)은 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))을 제외하고, 연상 메모리(204-0 내지 204-r) 사이에 n×p개의 배선을 가지게 된다. 또한, 각 연상 메모리(204-k)는 검색 데이터 및 일치선(3-0-k 내지 3-s-k)을 제외하면, n비트의 중간 데이터(6-1-k 내지 6-n-k)를 출력하기 위한 n개의 단자가 필요하다. 예를 들면 4개의 64 비트의 연상 메모리(204-0 내지 204-3)로 도9의 연상 메모리 시스템(205)을 구성하고 싶은 경우, 연상 메모리 사이의 상기 배선은 256개가 되어, 연상 메모리(204-k)에 필요한 상기 단자는 64개가 된다.
따라서, 도11에 도시된 연상 메모리 시스템(206)에 있어서, 연상 메모리(204-k)에 대응하는 무효 상태 비트수 계수 수단(49-k)을 연상 메모리(204-k)에 내장한 경우에는, 도9에 도시된 연상 메모리 시스템(205)보다도 긴 배선의 개수를 대폭 삭감하는 것이 가능함과 동시에, 각 연상 메모리(204)에 필요한 단자의 수를 대폭 삭감하는 것이 가능하다. 각 연상 메모리(204)의 면적은 일반적으로 매우 크기 때문에 각 연상 메모리 사이의 배선은 매우 길어진다. 그로 인해, 본 예의 연상 메모리 시스템(206)은 도9에 도시된 연상 메모리 시스템(205)에 비해 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수가 있다. 또한, 배선 영역의 감소에 의해 더욱 면적을 삭감할 수 있다. 또한, 각 연상 메모리의 단자수가 대폭 삭감되기 때문에 면적을 한층 더 삭감할 수가 있다.
본 예에서는, 연상 메모리(204-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)에서 실행하고, 2차 검색을 2차 검색용 연상 메모리(5-k)에서 실행하는 경우를 예로 들어 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리에서 1차 검색과 2차 검색을 실행하는 경우에 대해서도, 완전히 동일하게 연상 메모리 시스템(206)을 구성할 수 있다는 것은 언급할 필요도 없다.
또한, 본 예의 무효 상태 비트수 계수 수단(49-k)은 회로 규모를 삭감하기위해서, 중간 데이터(6-1-k 내지 6-n-k)에 있어서의 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를, 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수 하고 있지만, 단순하게 중간 데이터(6-1-k 내지 6-n-k)의 모든 비트에 있어서의 무효 상태의 수를 계수해도 괜찮다는 것은 분명하다.
[제5 실시예의 구성]
다음으로, 본 발명의 제5 실시 형태의 연상 메모리 시스템에 대해서 도면을 참조하여 상세하게 설명한다. 도12는 본 발명의 제5 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(208)의 구성예를 나타내는 블럭도이다.
연상 메모리 시스템(208)은 p개의 m어 n비트의 연상 메모리(207-0 내지 207-r)와, p개의 논리곱수단(46-0 내지 46-r)과, 중간 데이터 판정부(41)와, 어드레스 신호 생성부(11)와, p개의 기억 회로(54-0 내지 54-r)로부터 구성되고, n비트의 검색 데이터(2)로 클럭 신호(55)를 입력으로 하고, 어드레스 출력 신호(12)를 출력으로 한다. 도9에 도시된 본 발명의 제4 실시 형태의 연상 메모리 시스템(205)과 비교하면 알 수 있듯이, 도12에 도시된 본 발명의 제5 실시 형태의 연상 메모리 시스템(208)은 연상 메모리(207-0 내지 207-r)에 클럭 신호(55)가 입력되고 있는 점과, 중간 데이터 판정부(41)와 각 논리곱수단(46-0 내지 46-r)의 사이에 클럭 신호(55)를 입력으로 하는 기억 회로(54-0 내지 54-r)가 각각 삽입되고 있는 점과, 논리곱수단(46-0 내지 46-r)의 입력 신호가 기억 회로(54-0 내지 54-r)가 출력하는 동기화 유효 검출 신호(56-0 내지 56-r)로 변경되어 있는 점만이 다르다. 따라서, 다른부분만의 설명을 한다.
본 발명의 제5 실시 형태의 연상 메모리 시스템(208)에서는 연상 메모리(207-k)(k는 0이상 r이하의 정수)의 1차 검색용 연상 메모리(4-k)가 중간 데이터(6-1-k 내지 6-n-k)를 출력하고 나서, 2차 검색용 연상 메모리(5-k)가 일치선(3-0-k 내지 3-s-k)을 출력하기까지 클럭 신호(55)에서 α클럭(α는 1이상의 정수)의 시간을 필요로 하는 것으로 한다. 따라서, 기억 회로(54-k)에 의해 클럭 신호에서 α클럭의 시간만큼 유효 검출 신호(45-k)를 지연시킨 동기화 유효 검출 신호(56-k)를 생성하고, 논리곱수단(46-k)에 입력되는 타이밍을 일치선(3-0-k 내지 3-s-k)과 동기화시키고 있다. 여기서 기억 회로(54-k)를 삽입하는 위치는 도12에 나타낸 위치로 한정되지 않고, 1차 검색용 연상 메모리(207-k)의 중간 데이터(6-1-k 내지 6-n-k)의 출력 단자로부터 논리곱수단(46-k)의 입력 단자까지의 적당히 삽입해도, 연상 메모리 시스템(208)을 구성할 수 있다는 것은 언급할 필요도 없다. 또한, 이 때 α가 2이상의 정수인 경우에는 기억 수단을 복수개의 장소에 분산하여 삽입해도 괜찮다는 것도 언급할 필요가 없다. 이에 따라 파이프라인 동작을 구성하게 되기 때문에 동작 주파수를 향상시킬 수가 있다.
또한, 논리곱수단(46-k)에 입력되는 타이밍을 일치선(3-0-k 내지 3-s-k)과 동기 시키기 때문에, 기억 수단을 삽입하는 대신에 지연 수단을 삽입해도 상관없다는 것은 언급할 필요도 없다.
도12에서는, 도9와 동일하게 중간 데이터 판정부(41), 어드레스 신호 생성부(11)에 의해 연상 메모리 시스템(208)을 구성한 예를 나타냈지만, 도11에 도시된 제2의 구성예의 중간 데이터 판정부(48), 도3에 도시된 어드레스 신호 생성부(25) 등을 이용해도 동일하게 구성할 수 있다는 것은 언급할 필요도 없다.
본 예에서는 연상 메모리(207-k)는 1차 검색을 1차 검색용 연상 메모리(4-k)에서 실행하고, 2차 검색을 2차 검색용 연상 메모리(5-k)에서 실행하는 경우를 예로 들어 설명했지만, 구성요소를 공유하는 것에 의해 1개의 연상 메모리에서 1차 검색과 2차 검색을 실행하는 경우에 대해서도, 완전히 동일하게 연상 메모리 시스템(208)을 구성할 수 있다는 것은 언급할 필요도 없다.
또한, 이상 설명한 제1 내지 제5의 본 발명의 연상 메모리 시스템을 구성하는 각 1차 검색용 연상 메모리의 구성요소와, 대응하는 각 2차 검색용 연상 메모리의 구성요소의 일부를 겸용하는 것에 의해 면적을 삭감할 수 있다는 것도 분명하다. 예를 들면, i번째의 1차 연상 메모리 워드에 있어서의 기억 데이터를 저장하기 위한 수단과, 대응하는 2차 검색용 연상 메모리의 대응하는 연상 메모리 워드에 있어서의 2차 기억 데이터를 저장하기 위한 수단에는 같은 값이 저장되기 때문에 겸용하는 것이 가능하다.
[제6 실시예의 구성]
다음으로, 본 발명의 제6 실시 형태의 연상 메모리 시스템에 대해서 도면을 참조하여 상세하게 설명한다. 제6 실시 형태는 복수의 부분 검색 영역으로부터 구성되는 검색 데이터에 대해서 마스크 정보를 고려하여 검색을 행했을 때에 입력 데이터에 대응하는 기억 데이터가 모두 일치하는 워드가 복수개 있는 경우에, 우선순위를 고려하여 검색 영역마다 구조화 데이터를 구성하는 마스크 정보의 마스크 유효 상태의 비트수에 대해서 일치한 워드 중에서 비교한 결과, 최소가 되는 워드를 식별하는 신호를 출력하는 예를 들면 국제 출원 번호 PCT/JP01/03562에 도시된 연상 메모리를 복수개 접속한 경우의 연상 메모리 시스템의 구성예이다.
도13은 본 발명의 제6 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(210)의 구성예를 도시한 블럭도이다. 연상 메모리 시스템(210)은 q개의 부분 검색 영역으로부터 구성되는 검색 데이터(70)를 입력으로 하는 p개의 m어 n비트의 연상 메모리(209-0 내지 209-r)와, p개의 논리곱수단(46-0 내지 46-r)과, 중간 데이터 판정부(71)와, (q-1)개의 2차 중간 데이터 판정부(60-1 내지 60-h)(h는 1이상 t이하의 정수)와, 어드레스 신호(12)를 출력하는 어드레스 신호 생성부(11)로부터 구성된다. k번째의 연상 메모리(209-k)는 1차 검색용 연상 메모리(57-k)와, 검색 데이터(70)의 q개의 부분 검색 영역에 대응하는 영역마다 2차 검색을 실행하는 q개의 부분 2차 검색용 연상 메모리(58-1-k 내지 58-q-k)로부터 구성된다.
도13은 검색 데이터(70)가 3개의 부분 검색 영역으로부터 구성되는 경우를 예로 한 연상 메모리 시스템(210)의 블럭도이다. 물론, 검색 데이터(70)의 부분 검색 영역의 개수가 임의인 경우에서도 구성할 수 있다는 것은 언급할 필요도 없다.
1차 검색용 연상 메모리(57-k)는 검색 데이터(70)의 모든 부분 검색 영역을 검색 대상으로 하는 각 n비트의 기억 데이터 및 마스크 정보로부터 구성되는 구조화 데이터를 m개 저장할 수 있는 1차 연상 메모리 워드(7-0-k 내지 7-s-k)를 가진다. 여기서, 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것에 의해 표현된다. 또한, 1차 검색용 연상 메모리(57-k)는 대응하는 마스크 정보를 고려하여 검색 데이터(70)의 모든 부분 검색 영역과 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 1차 연상 메모리 워드(7-0-k 내지 7-s-k) 중에서 행하고, 일치하는 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 값 중에서 검색 데이터의 제1의 우선순위를 가지는 부분검색 영역에 대응하는 비트 영역만을 중간 데이터(59-1-k)로서 중간 데이터 판정부(71) 및 부분 2차 검색용 연상 메모리(58-1-k)에 출력한다. 즉, 검색 데이터의 제1의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만으로부터 중간 데이터(59-1-k)를 생성하는 것 이외에는, 도26에 도시된 종래의 1차 검색용 연상 메모리(302)와 동일하게 구성할 수 있다.
h번째 (h는 1이상, t이하의 정수)의 부분 2차 검색용 연상 메모리(58-h-k)는 연상 메모리 워드(68-0-h-k 내지 68-s-h-k)를 가지고, i번째(i는 0이상 m이하의 정수)의 연상 메모리 워드(68-i-h-k)에는 대응하는 1차 연상 메모리 워드(7-i-k)가 저장하고 있는 기억 데이터와 같은 값을 제h의 2차 기억 데이터로서 저장한다. 부분 2차 검색용 연상 메모리(58-h-k)는 연상 메모리 워드(68-0-h-k 내지 68-s-h-k)가 저장하고 있는 제h의 2차 기억 데이터 중에서 검색 데이터의 제h번째의 우선순위를 가지는 부분검색 영역에 대응하는 비트 영역만을 대상으로 하고, 중간 데이터(59-h-k)와 비교를 행하고, 일치하는 제h의 2차 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 값 중에서 검색 데이터의 제(h+1)의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 중간 데이터(59-(h+1)-k)로서 2차 중간 데이터 판정부(60-h) 및 부분 2차 검색용 연상 메모리(58-(h+1)-k)에 출력한다. 즉 제h의 2차 기억 데이터 중에서 검색 데이터의 제h번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 2차 검색의 대상으로 하는 것과, 검색 데이터의 제(h+1)의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만으로부터 중간 데이터(59-h-k)를 생성하는 기능이 추가되어 있는 것 이외에는, 도26에 도시된 종래의 2차 검색용 연상 메모리(303)와 동일하게 구성할 수 있다. i번째(i는 0이상 m이하의 정수)의 연상 메모리 워드(68-i-h-k)에는 대응하는 1차 연상 메모리 워드(7-i-k)가 저장하고 있는 기억 데이터 중에서, 검색 데이터의 제h번째와 제(h+1)번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역과 동일한 값만을 제h의 기억 데이터로서 저장해도 괜찮다는 것은 언급할 필요도 없다.
q번째의 부분 2차 검색용 연상 메모리(58-q-k)는 연상 메모리 워드(68-0-q-k 내지 68-s-q-k)를 가지고, i번째(i는 0이상 m이하의 정수)의 연상 메모리 워드(68-i-q-k)에는 대응하는 1차 연상 메모리 워드(7-i-k)가 저장하고 있는 기억 데이터와 같은 값을 제q의 2차 기억 데이터로서 저장한다. 부분 2차 검색용 연상 메모리(58-q-k)는 연상 메모리 워드(68-0-q-k 내지 68-s-q-k)가 저장하고 있는 제q의 2차 기억 데이터 중에서, 검색 데이터의 제q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 중간 데이터(59-q-k)와 비교를 행하고, 일치하는 제q의 2차 기억 데이터에 대응하는 일치선(3-0-k 내지 3-s-k)에 일치선의 유효 순위를 출력한다. 즉 제q의 2차 기억 데이터 중에서 검색 데이터의 제q번째의우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 2차 검색의 대상으로 하는 것 이외에는, 도26에 도시된 종래의 2차 검색용 연상 메모리(303)와 동일하게 구성할 수 있다. i번째(i는 0이상 m이하의 정수)의 연상 메모리 워드(68-i-q-k)에는 대응하는 1차 연상 메모리 워드(7-i-k)가 저장하고 있는 기억 데이터 중에서, 검색 데이터의 제q번째 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역과 같은 값만을 제q의 2차 기억 데이터로서 저장해도 괜찮다는 것은 언급할 필요도 없다.
중간 데이터 판정부(71)는 도11의 중간 데이터 판정부(48)와 비교하면 연상 메모리(209-0 내지 209-r)로부터 입력되는 신호가 중간 데이터(59-1-0 내지 59-1-r)로 변경된 외에는, 도11의 중간 데이터 판정부(48)와 동일하게 구성할 수 있다. 도9의 중간 데이터 판정부(41)에 대해서 상기 수정을 행하는 것에 의해서도 구성할 수 있다는 것은 언급할 필요도 없다. 또한, 그 경우에는 도9의 중간 데이터 연산부(42)로서 도1의 중간 데이터 연산부(9), 또는 도4의 중간 데이터 연산부(26) 또는 도6의 중간 데이터 연산부 또는 그 외 논리적으로 등가인 수단에서 구성할 수 있다는 것도 언급할 필요가 없다. 중간 데이터 판정부(71)는 p개의 연상 메모리(204-0 내지 204-r)로부터 입력되는 p개의 중간 데이터(59-1-0 내지 59-1-r) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(69-1-0 내지 69-1-r)에 유효 상태를 출력한다.
2차 중간 데이터 판정부(60-h)(h는 1이상 t이하의 정수)는 도11의 중간 데이터 판정부(48)와 비교하면 연상 메모리(209-0 내지 209-r)로부터 입력되는 신호가중간 데이터(59-(h+1)-0 내지 59-(h+1)-r)로 변경된 점과, 유효 검출 신호(69-h-0 내지 69-h-r)가 대응하는 무효 상태 비트수 계수 수단(61-h-0 내지 61-h-r)과 비교 수단(65-h-0 내지 65-h-r)에 각각 입력되는 점만이 다르다.
k번째의 무효 상태 비트수 계수 수단(61-h-k)은 대응하는 유효 검출 신호(69-h-k)가 유효 상태인 때에는 도11의 무효 상태 비트수 정수 수단(49)과 동일하게, 대응하는 중간 데이터(59-(h+1)-k) 중에서 네트워크 어드레스의 최하위 계층 측에서부터 상위 계층 측에 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수한 결과를 무효 상태 비트수 신호(62-h-k)에 출력하고, 대응하는 유효 검출 신호(69-h-k)가 무효 상태인 때에는 무효 상태 비트수 신호(62-h-k)에 대응하는 중간 데이터(59-(h+1)-k)의 비트수와 같은 값을 출력한다.
최소치 선택 수단(63-h)은 무효 상태 비트수 계수 수단(61-h-0 내지 61-h-r)으로부터 각각 입력되는 무효 상태 비트수 신호(62-h-0 내지 62-h-r)를 비교하고, 그 중의 최소치를 최소치 신호(64-h)로서 비교 수단(65-h-0 내지 65-h-r)에 출력한다.
k번째의 비교 수단(65-h-k)은 유효 검출 신호(69-h-k)가 유효 상태인 경우, 또한 대응하는 무효 상태 비트수 신호(62-h-k)와 최소치 신호(64-h)를 비교했을 때에 일치하는 경우에만 대응하는 유효 검출 신호(69-(h+1)-k)에 유효 상태를 출력하고, 그 이외의 경우에는 대응하는 유효 검출 신호(69-(h+1)-k)에 무효 상태를 출력한다.
이에 따라 2차 중간 데이터 판정부(60-h)는 p개의 연상 메모리(209-0 내지 209-r)로부터 입력되는 p개의 중간 데이터(59-(h+1)-0 내지 59-(h+1)-r) 중에서, 대응하는 유효 검출 신호(69-h-k)가 유효 상태인 것만을 대상으로써 비교했을 때에 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(69-(h+1)-0 내지 69-(h+1)-r)에만 유효 상태를 출력하게 된다.
논리곱수단(46-0 내지 46-r)은 입력이 유효 검출 신호(69-q-0 내지 69-q-r)로 바뀐 점을 제외하면, 도9의 논리곱수단(46-0 내지 46-r)과 완전히 동일하게 구성할 수 있다. 또한, 어드레스 신호 생성부(11)는 입력이 일치선(3-0-0 내지 3-s-r)이 아니라 실효 일치선(47-0-0 내지 47-s-r)으로 바뀐 점을 제외하면, 도1의 어드레스 신호 생성부(11)와 완전히 동일하게 구성할 수 있다. 물론, 도3에 도시된 어드레스 신호 생성부(25)를 이용해도 구성할 수 있다는 것은 언급할 필요도 없다.
또한, 본 예의 무효 상태 비트수 계수 수단(49-0 내지 49-r), 무효 상태 비트수 계수 수단(61-h-0 내지 61-h-r)은 회로 규모를 삭감하기 위해서 각각 대응하는 중간 데이터에 있어서의 네트워크 어드레스의 최하위 계층 측에서 상위 계층 측으로 연속하고 있는 중간 데이터의 무효 상태의 비트수를 최초의 중간 데이터의 유효 상태의 비트가 나타날 때까지 계수하고 있지만, 단순하게 대응하는 중간 데이터의 모든 비트에 있어서의 무효 상태의 수를 계수해도 괜찮다는 것은 분명하다.
[제6 실시예의 동작]
다음으로 도14를 참조하여, 본 발명의 제6 실시 형태의 연상 메모리 시스템(210)의 동작을 제1의 우선순위를 가지는 4진수 표기로 (2. 1)와 제2의 우선순위를 가지는 (1. 3)의 2개의 부분 검색 영역을 가지는 8비트의 검색 데이터(70)를 입력으로 하는 4어 8비트 구성의 연상 메모리(209-0, 209-1)의 2개를 접속하고, 또한 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 1차 연상 메모리 워드(7-0-0 내지 7-3-1)에 저장한 경우의 동작을 예로 들어 설명한다. 여기서, 도1과 동일하게 전체로서 8어의 어드레스 공간 중에서 연상 메모리(209-1)가 상위 측의 어드레스 공간을 차지하는 것으로 한다.
도1과 동일하게 본 예에서는 이후, 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다. 또한, 기억 데이터와 동일하게 중간 데이터(59)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(3)의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다.
1차 검색용 연상 메모리(57-0)의 4어의 1차 연상 메모리 워드(7-0-0 내지 7-3-0)에는 각각 4진수 표기의 구조화 데이터 (3. *. 1. 3), (2. *. 1. *), (1. *. 3. 2), (2. *. 1. 3)를 표현하도록 기억 데이터, 마스크 데이터를 저장하고 있는 것으로 한다. 1차 검색용 연상 메모리(57-1)의 4어의 1차 연상 메모리 워드(7-0-1 내지 7-3-1)에는 각각 4진수 표기의 구조화 데이터 (2. 3. 1. 3), (2. 1. 1. *), (2. *. *. *), (2. 1. *. *)를 표현하도록 기억 데이터 및 마스크 정보를 저장하고 있는 것으로 한다. 도23에서 설명한 종래의 1차 검색용 연상 메모리(302)와 동일하게, 돈케어 "*"상태를 표현하기 위해서 마스크 정보의 해당 비트에는 마스크 정보의 유효 상태 "0"을, 기억 데이터의 해당 비트에는 기억 데이터의 무효 상태 "0"을각각 저장한다. 즉 1차 연상 메모리 워드(7-0-0 내지 7-3-0)에는 기억 데이터로서 각각 4진수 표기로 (3. 0. 1. 3), (2. 0. 1. 0), (1. 0. 3. 2), (2. 0. 1. 3)를 저장하고, 마스크 정보로서 각각 4진수 표기로 (3. 0. 3. 3), (3. 0. 3. 0), (3. 0. 3. 3), (3. 0. 3. 3)을 저장하고 있다. 1차 연상 메모리 워드(7-0-1 내지 7-3-1)에는 기억 데이터로서 각각 4진수 표기로 (2. 3. 1. 3), (2. 1. 1. 0), (2. 0. 0. 0), (2. 1. 0. 0)을 저장하고, 마스크 정보로서 각각 4진수 표기로 (3. 3. 3. 3), (3. 3. 3. 0), (3. 0. 0. 0), (3. 3. 0. 0)을 저장하고 있다. 또한, 각 기억 데이터, 각 마스크 정보의 상위 4비트가 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역으로 하고, 각 기억 데이터, 각 마스크 정보의 하위 4비트가 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역으로 한다.
부분 2차 검색용 연상 메모리(58-1-0)의 연상 메모리 워드(68-i-1-0)(i는 0이상 3이하의 정수) 및 부분 2차 검색용 연상 메모리(58-2-0)의 연상 메모리 워드(68-i-2-0)에는, 1차 검색용 연상 메모리(57-0)의 대응하는 1차 연상 메모리 워드(7-i-0)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (3. 0. 1. 3), (2. 0. 1. 0), (1. 0. 3. 2), (2. 0. 1. 3)를 각각 제1의 2차 기억 데이터, 제2의 2차 기억 데이터로서 저장하고 있는 것으로 한다.
부분 2차 검색용 연상 메모리(58-1-1)의 연상 메모리 워드(68-i-1-1)(i는 0이상 3이하의 정수) 및 부분 2차 검색용 연상 메모리(58-2-1)의 연상 메모리 워드(68-i-2-1)에는, 1차 검색용 연상 메모리(57-1)의 대응하는 1차 연상 메모리워드(7-i-1)가 저장하고 있는 기억 데이터와 같은 4진수 표기의 값, (2. 3. 1. 3), (2. 1. 1. 0), (2. 0. 0. 0), (2. 1. 0. 0)을 각각 제1의 2차 기억 데이터, 제2의 2차 기억 데이터로서 저장하고 있는 것으로 한다.
다음으로 4진수 표기로 (2. 1. 1. 3)의 검색 데이터(70)를 입력했을 때의 연상 메모리(209-0, 209-1)의 동작에 대해서 설명한다. 연상 메모리(209-0)에서는 우선 1차 검색용 연상 메모리(57-0)가 대응하는 마스크 정보를 고려하여 검색 데이터(70)와 모든 비트에 대해서 비교했을 때에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(7-1-0, 7-3-0)에 저장되어 있는 4진수 표기의 구조화 데이터(2. *. 1. *), (2. *. 1. 3)가 검색 데이터(70)와 일치한다. 1차 검색용 연상 메모리(57-0)는 일치한 1차 연상 메모리 워드(7-1-0, 7-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (2. 0), (2. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (2. 0), 2진수 표기로 "1000"의 4비트의 연산 결과를 중간 데이터(59-1-0)로서 중간 데이터 판정부(71)와 부분 2차 검색용 연상 메모리(58-1-0)에 출력한다. 동일하게, 연상 메모리(209-1)에서는 우선 1차 검색용 연상 메모리(57-1)가 대응하는 마스크 정보를 고려하여 검색 데이터(70)와 모든 비트에 대해서 비교했을 때에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 1차 연상 메모리 워드(7-1-1, 7-2-1, 7-3-1)에 저장되어 있는 4진수 표기의 구조화 데이터 (2. 1. 1. *), (2. *. *. *), (2. 1. *. *)가 검색 데이터(70)와 일치한다. 1차 검색용 연상 메모리(57-1)는 일치한 1차 연상 메모리 워드(7-1-1, 7-2-1, 7-3-1) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (2. 1), (2. 0), (2. 1)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (2. 1), 2진수 표기로 "1001"의 4비트의 연산 결과를 중간 데이터(59-1-1)로서 중간 데이터 판정부(71)와 부분 2차 검색용 연상 메모리(58-1-1)에 출력한다.
부분 2차 검색용 연상 메모리(58-1-0)에서는 연상 메모리 워드(68-0-1-0 내지 68-3-1-0)에 저장하고 있는 제1의 2차 기억 데이터 중에서 검색 데이터(70)의 제1번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 4진수 표기로 (2. 0)의 중간 데이터(59-1-0)와 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(68-1-1-0, 68-3-1-0)가 일치한다. 부분 2차 검색용 연상 메모리(58-1-0)는 일치한 연상 메모리 워드(68-1-1-0, 68-3-1-0) 중에 저장되어 있는 제1의 2차 기억 데이터에 있어서의 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (1. 0), (1. 3)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (1. 3), 2진수 표기로 "0111"의 4비트의 연산 결과를 중간 데이터(59-2-0)로서 2차 중간 데이터 판정부(60-1)와 부분 2차 검색용 연상 메모리(58-2-0)에 출력한다. 동일하게 부분 2차 검색용 연상 메모리(58-1-1)에서는 연상 메모리 워드(68-0-1-1 내지 68-3-1-1)에 저장하고 있는 제1의 2차 기억 데이터 중에서 검색 데이터(70)의 제1번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 4진수 표기로 (2. 1)의 중간 데이터(59-1-1)와 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(68-1-1-1, 68-3-1-1)가 일치한다. 부분 2차 검색용 연상 메모리(58-1-1)는 일치한 연상 메모리 워드(68-1-1-1, 68-3-1-1) 중에 저장되어 있는 제1의 2차 기억 데이터에 있어서의 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (1. 0), (0. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (1. 0), 2진수 표기로 "0100"의 4비트의 연산 결과를 중간 데이터(59-2-1)로서 2차 중간 데이터 판정부(60-1)와 부분 2차 검색용 연상 메모리(58-2-1)에 출력한다.
부분 2차 검색용 연상 메모리(58-2-0)에서는 연상 메모리 워드(68-0-2-0 내지 68-3-2-0)에 저장하고 있는 제2의 2차 기억 데이터 중에서 검색 데이터(70)의 제2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 4진수 표기로 (1. 3)의 중간 데이터(59-2-0)와 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(68-3-2-0)가 일치한다. 부분 2차 검색용 연상 메모리(58-2-0)는 일치한 연상 메모리 워드(68-3-2-0)에 대응하는 일치선(3-3-0)에 일치선의 유효 상태를 출력하고, 나머지의 일치선에는 무효 상태를 출력한다. 부분 2차 검색용 연상 메모리(58-2-1)에서는 연상 메모리 워드(68-0-2-1 내지 68-3-2-1)에 저장하고 있는 제2의 2차 기억 데이터 중에서 검색 데이터(70)의 제2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 4진수 표기로 (1. 0)의 중간 데이터(59-2-1)와 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(68-1-2-1)가 일치한다. 부분 2차 검색용 연상 메모리(58-2-1)는 일치한 연상 메모리 워드(68-1-2-1)에 대응하는 일치선(3-1-1)에 일치선의 유효 상태를 출력하고, 나머지의 일치선에는 무효 상태를 출력한다.
중간 데이터 판정부(71)의 무효 상태 비트수 계수 수단(49-0)은 중간 데이터(59-1-0)의 2진수 표기의 값 "1000" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "3"의 값을 무효 상태 비트수 신호(50-0)로서 출력한다. 무효 상태 비트수 계수 수단(49-1)은 중간 데이터(59-1-1)의 2진수 표기의 값 "1001" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수하여, 결과로서 얻어지는 10진수 표기로 "0"의 값을 무효 상태 비트수 신호(50-1)로서 출력한다. 최소치 선택 수단(51)은 무효 상태 비트수 계수 수단(49-0 내지 49-1)으로부터 각각 입력되는 무효 상태 비트수 신호(50-0, 50-1)를 비교하여, 그 중의 최소치인 10진수 표기의 값 "0"을 최소치 신호(52)로서 비교 수단(53-0 내지 53-1)에 출력한다. 비교 수단(53-0)은 대응하는 무효 상태 비트수 신호(50-0)의 10진수 표기의 값 "3"과 최소치 신호(52)의 10진수 표기의 값 "0"을 비교하여, 일치하지 않기 때문에 유효 검출 신호(69-1-0)에 무효 상태를 출력한다. 비교 수단(53-1)은 대응하는 무효 상태 비트수 신호(50-1)의 10진수 표기의 값 "0"과 최소치 신호(52)의 10진수 표기의 값 "0"을 비교하여, 일치하기 때문에 유효 검출 신호(69-1-1)에 유효 상태를 출력한다.
2차 중간 데이터 판정부(60-1)의 무효 상태 비트수 계수 수단(61-1-0)은 중간 데이터(59-2-0)의 2진수 표기의 값 "0111" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수한 결과, 10진수 표기로 "0"의 값을 얻는다. 여기서 대응하는 유효 검출 신호(69-1-0)가 무효 상태이기 때문에 무효 상태 비트수 계수 수단(61-1-0)은 10진수 표기의 계수 결과 "0"이 아니라 계수 결과 중간 데이터(59-2-0)의 비트수의 10진수 표기의 값 "4"를 무효 상태 비트수 신호(62-1-0)로서 출력한다. 무효 상태 비트수 계수 수단(61-1-1)은 중간 데이터(59-2-1)의 2진수 표기의 값 "0100" 중에서 최초의 유효 상태 "1"이 나타날 때까지 우측의 비트에서 무효 상태 "0"을 계수한 결과 10진수 표기로 "2"의 값을 얻는다. 여기서 대응하는 유효 검출 신호(69-1-1)가 유효 상태이기 때문에 무효 상태 비트수 계수 수단(61-1-1)은 10진수 표기의 계수 결과 "2"를 무효 상태 비트수 신호(62-1-1)로서 출력한다. 최소치 선택 수단(63-1)은 무효 상태 비트수 계수 수단(61-1-0 내지 61-1-1)으로부터 각각 입력되는 무효 상태 비트수 신호(62-1-0, 62-1-1)를 비교하여 그 중의 최소치인 10진수 표기의 값 "2"를 최소치 신호(64-1)로서 비교 수단(65-1-0 내지 65-1-1)에 출력한다. 비교 수단(65-1-0)은 유효 검출 신호(69-1-0)가 무효 상태이므로 유효 검출 신호(69-2-0)에 무효 상태를 출력한다. 비교 수단(65-1-1)은 유효 검출 신호(69-1-0)가 유효 상태이기 때문에, 대응하는 무효 상태 비트수 신호(62-1-1)의 10진수 표기의 값 "2"와 최소치 신호(64-1)의 10진수 표기의 값 "2"를 비교하여, 일치하기 때문에 유효 검출 신호(69-2-1)에 유효 상태를 출력한다. 검색 데이터(70)의 2번째의 우선순위의 부분 비트 영역에 대응하는 중간 데이터(59-2-0 내지 59-2-1) 만으로 판정했을 때에는 연상 메모리(209-0)가출력하는 중간 데이터(59-2-0)가 최적이지만, 이미 연상 메모리(209-0)는 중간 데이터 판정부(71)에 의해 유효하지 않다고 판정되어 있기 때문에 중간 데이터(59-2-0)는 판정 대상에서 제외되게 된다.
논리곱수단(46-0)은 대응하는 유효 검출 신호(69-2-0)가 무효 상태이므로 실효 일치선(47-0-0 내지 47-3-0) 전체에 일치선의 무효 상태를 출력한다. 따라서, 실효 일치선(47-0-0 내지 47-3-0)은 2진수 표기로 "0000"이 된다. 논리곱수단(46-1)은 대응하는 유효 검출 신호(69-2-1)가 유효 상태이므로 연상 메모리(209-1)로부터 출력되는 일치선(3-0-1 내지 3-3-1)의 2진수 표기의 값 "0010"을 실효 일치선(47-0-1 내지 47-3-1)에 출력한다.
따라서, 어드레스 신호 생성부(11)에 입력되는 신호 중에서 유효 상태인 신호는 실효 일치선(47-1-1)의 한 개 만으로 되어, 어드레스 신호 생성부(11)는 2진수 표기의 값 "101"을 어드레스 출력 신호(12)로서 출력한다. 도14의 예에서는 4진수 표기로 (2. 1)의 제1의 우선순위의 부분 검색 영역과 4진수 표기로 (1. 3)의 제2의 우선순위의 부분 검색 영역을 가지는 검색 데이터(70)에 대해서 일치하는 구조화 데이터 중에서 마스크 정보의 유효 상태의 비트수가 최소의 것은, 연상 메모리(209-1)의 1차 연상 메모리 워드(7-1-1)에 저장하고 있는 4진수 표기로 (2. 1. 1. *)인 것은 분명하다. 따라서, 어드레스 신호 생성부(11)는 올바른 어드레스 출력 신호(12)를 출력하고 있는 것을 알 수 있다.
본 실시예의 연상 메모리(209-k)에서는 중간 데이터(59-1-k)를 입력으로 하는 부분 2차 검색용 연상 메모리(58-1-k)에 의한 부분 2차 검색과, 중간 데이터 판정부(71)에 의한 연상 메모리(209-k)가 저장하고 있는 구조화 데이터가 최적인가 아닌가의 판단을 병렬 실행하고, 또한 중간 데이터(59-(h+1)-k)(h는 1이상 t이하의 정수)를 입력으로 하는 부분 2차 검색용 연상 메모리(58-(h+1)-k)에 의한 부분 2차 검색과, 2차 중간 데이터 판정부(60-h)에 의한 연상 메모리(209-k)의 저장하고 있는 구조화 데이터가 최적인 상태가 계속되는지 아닌지의 판단을 병렬 실행하고, 최종적으로 논리곱수단(46-k)에 의해 연상 메모리(209-k)의 저장하고 있는 구조화 데이터가 최적인 상태가 계속한 경우에만 연상 메모리(209-k)가 출력하는 일치선(3-0-k 내지 3-s-k)의 상태를 어드레스 신호 생성부(11)에 출력하는 것에 의해, 연상 메모리 시스템(210) 전체로서 최적인 어드레스 신호(12)를 얻는 구성으로 되어 있다. 따라서, 2차 검색과 중간 데이터의 판정을 병렬 실행할 수가 있기 때문에 연상 메모리 시스템(210) 전체로서의 연산 속도가 연상 메모리(209) 단체의 연산 속도에서 저하하는 일은 없다.
중간 데이터(59-h-k)를 부분 2차 검색용 연상 메모리(58-h-k)에 입력하고 나서 중간 데이터(59-(h+1)-k)가 출력될 때까지 도시하지 않은 클럭 신호에 의해 지연이 생기는 경우, 또는 중간 데이터(59-q-k)를 부분 2차 검색용 연상 메모리(58-q-k)에 입력하고 나서 일치선(3-0-k 내지 3-s-k)에 출력될 때까지 도시하지 않은 클럭 신호에 의해 지연이 생기는 경우에는 동기를 취하기 위하여 유효 검출 신호(69-h-k, 69-q-k)에 클럭 신호를 입력으로 하는 기억 수단을 적당히 삽입하면 괜찮다는 것은 분명하다. 예를 들면 도13의 경우, 중간 데이터(59-1-k)가 입력되고 나서 중간 데이터(59-2-k)가 출력될 때까지 및 중간 데이터(59-2-k)가 입력되고 나서 일치선(3-0-k 내지 3-3-k)이 출력될 때까지, 각각 도시하지 않은 클럭 신호로 1클럭씩 필요한 경우에는 동기를 취하기 위하여 유효 검출 신호(69-1-k, 69-2-k)에 1클럭 지연하는 기억 수단을 1값 삽입하는 것에 의해, 파이프라인 구성을 실현할 수 있다. 이에 따라, 연상 메모리 시스템의 최고 동작 주파수를 크게 향상시킬 수가 있다.
물론 중간 데이터 판정부(71)와, 2차 중간 데이터 판정부(60-1 내지 60-q)와, 논리곱수단(46-0 내지 46-r)을 가지지 않고, 도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)과 동일하게, 연상 메모리(209-0 내지 209-r)가 출력하는 중간 데이터(59-j-0 내지 59-j-r)(j는 1이상 q이하의 정수)를 도1에 도시된 중간 데이터 연산부(9)와 동일하게 구성되는 j번째의 중간 데이터 연산부에 입력한 결과, 얻어지는 j번째의 최적화 중간 데이터를 부분 2차 검색용 연상 메모리(58-j-0 내지 59-j-r)에 입력하고, 연상 메모리(209-0 내지 209-r)가 출력하는 일치선(3-0-0 내지 3-s-r)을 어드레스 신호 생성부(11)에 직접 입력하도록 구성해도 올바른 어드레스 출력 신호(12)가 얻어진다는 것은 분명하다. 이 때, j번째의 중간 데이터 연산부로서는 도4에 도시된 중간 데이터 연산부(26) 또는 도6에 도시된 중간 데이터 연산부(28)와 동일하게 구성할 수 있다는 것은 언급할 필요도 없다. 또한, 도8에 도시된 제3 실시 형태의 연상 메모리 시스템(203)과 같이 j번째의 최적화 중간 데이터를 결선 논리에 의해 생성하는 구성으로 해도 상관없다는 것도 분명하다. 이것들에 의해 회로 구성을 간략화하는 것이 가능하다. 또한, 이 경우에는, 부분 2차 검색용 연상 메모리(58-j-0 내지 58-j-r)는 (m×p)어의 1개의 연상 메모리에 의해구성해도 괜찮다는 것은 언급할 필요도 없다. 또한, 전체로 (m×p)어의 용량을 가지는 임의의 개수의 연상 메모리에 의해서도 구성할 수 있다는 것도 분명하다.
또한, 본 예에서는, 무효 상태 비트수 계수 수단(61-h-k)은 유효 검출 신호(69-h-k)가 무효 상태인 경우에는, 중간 데이터(59-(h+1)-k)의 비트수를 출력했지만, 중간 데이터(59-(h+1)-k)의 비트수보다 큰 값을 출력해도 괜찮다는 것은 언급할 필요도 없다. 여기서, 도13에 도시된 연상 메모리 시스템(210)에 있어서, 연상 메모리(209-k)에 대응하는 무효 상태 비트수 계수 수단(49-k), 무효 상태 비트수 계수 수단(61-1-k 내지 61-h-k)을 연상 메모리(209-k)에 내장한 경우에는 도11에 도시된 연상 메모리 시스템(206)의 설명과 동일하게, 긴 배선의 갯수를 대폭 삭감하는 것이 가능해짐과 동시에, 각 연상 메모리(209)에 필요한 단자의 수를 대폭 삭감할 수가 있다. 또한, 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수 있다. 배선 영역의 감소에 의해 더욱 면적을 삭감할 수 있다. 또한, 각 연상 메모리의 단자수가 대폭 삭감되기 때문에 면적을 한층 더 삭감하는 것이 가능하다. 또한, 1차 검색 종료시에 유효 검출 신호(69)에 모두 유효 상태가 입력되어 있는 2차 중간 데이터 판정부(60)를 중간 데이터 판정부(71) 대신에 이용할 수가 있다는 것은 분명하다.
[2차 중간 데이터 판정부의 제2의 구성예]
다음으로, 본 발명의 연상 메모리 시스템의 2차 중간 데이터 판정부의 제2의 구성예에 대해서 설명한다. 도15는, 본 발명의 연상 메모리 시스템(210)의 2차 중간 데이터 판정부의 제2의 구성예를 도시한 블럭도이다. 제2 구성예의, h번째(h는1이상 t이하의 정수)의 2차 중간 데이터 판정부(72-h)는 중간 데이터 연산부(75-h)와, p개의 비교 수단(78-h-0 내지 78-h-r)과, p개의 무효화 수단(73-h-0 내지 73-h-r)으로부터 구성된다.
제2 구성예의 2차 중간 데이터 판정부(72-h)는 도9의 중간 데이터 판정부(41)와 비교하면 유효 검출 신호(69-h-0 내지 69-h-r)가 입력되어 있는 점과, k번째의 연상 메모리(209-k)로부터 입력되는 중간 데이터(59-(h+1)-k)와 중간 데이터 연산부(75-h)의 사이에 무효화 수단(73-h-k)이 삽입되어 있는 점과, 유효 검출 신호(69-h-k)가 무효화 수단(73-h-k)과 비교 수단(78-h-k)에 입력되어 있는 점만이 다르고 그 외는 동일하게 구성된다.
k번째의 무효화 수단(73-h-k)은 유효 검출 신호(69-h-k)가 유효 상태인 경우에는, 실효 중간 데이터(74-h-k)로서 중간 데이터(59-(h+1)-k)를 출력하고, 유효 검출 신호(69-h-k)가 무효 상태인 경우에는 실효 중간 데이터(74-h-k)의 모든 비트에 중간 데이터의 무효 상태를 출력한다.
중간 데이터 연산부(75-h)는 p개의 실효 중간 데이터(74-h-0 내지 74-h-r) 중에서, 가장 중간 데이터의 무효 상태의 비트수가 적은 것을 최적화 중간 데이터(77-h)로서 비교 수단(78-h-0 내지 78-h-r)에 출력한다. 도15에 도시된 중간 데이터 연산부(75-h)는 도1에 도시된 중간 데이터 연산부(9)와 완전히 동일하게 논리합수단(76-k)으로부터 구성된다. 무효 상태의 유효 검출 신호(69-h-0 내지 69-h-r)에 대응하는 실효 중간 데이터(74-h-0 내지 74-h-r)의 모든 비트는 중간 데이터의 무효 상태가 되어 있기 때문에 논리합연산 결과에는 영향을 주지 않게 된다.
k번째의 비교 수단(78-h-k)은 유효 검출 신호(69-h-k)가 유효 상태인 경우, 또한 대응하는 실효 중간 데이터(74-h-k)와 최적화 중간 데이터(77-h)를 비교했을 때에 일치하는 경우에만, 대응하는 유효 검출 신호(69-(h+1)-k)에 유효 상태를 출력하고, 그 이외의 경우에는 대응하는 유효 검출 신호(69-(h+1)-k)에 무효 상태를 출력한다.
이에 따라 2차 중간 데이터 판정부(72-h)는 도13에 도시된 2차 중간 데이터 판정부(60-h)와 동일하게, p개의 연상 메모리(209-0 내지 209-r)로부터 입력되는 p개의 중간 데이터(59-(h+1)-0 내지 59-(h+1)-r) 중에서 대응하는 유효 검출 신호(69-h-k)가 유효 상태인 것만을 대상으로 하여 비교했을 때에, 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(69-(h+1)-0 내지 69-(h+1)-r)에 유효 상태를 출력하게 된다.
[2차 중간 데이터 판정부의 제3의 구성예]
다음으로, 본 발명의 연상 메모리 시스템의 2차 중간 데이터 판정부의 제3의 구성예에 대해서 설명한다. 도16은 본 발명의 연상 메모리 시스템(210)의 2차 중간 데이터 판정부의 제3의 구성예를 도시한 블럭도이다. 제3 구성예의 h번째(h는 1이상 t이하의 정수)의 2차 중간 데이터 판정부(79-h)는 중간 데이터 연산부(80-h)와, p개의 비교 수단(78-h-0 내지 78-h-r)과, p개의 무효화 수단(73-h-0 내지 73-h-r)으로부터 구성된다.
제2 구성예의 2차 중간 데이터 판정부(79-h)는 도15의 제2 구성예의 2차 중간 데이터 판정부(72-h)와 비교하면 중간 데이터 연산부(80-h)가 도4에 도시된 중간 데이터 연산부(26)와 동일하게 최대치 선택 수단(81-h)에 의해 구성되어 있는 점만이 다르고, 그 외는 동일하게 구성된다.
여기서 무효 상태의 유효 검출 신호(69-h-0 내지 69-h-r)에 대응하는 실효 중간 데이터(74-h-0 내지 74-h-r)의 모든 비트는 중간 데이터의 무효 상태가 되어 있기 때문에 최대치 선택의 결과에는 영향을 주지 않게 된다.
따라서, 2차 중간 데이터 판정부(79-h)는 도13에 도시된 2차 중간 데이터 판정부(60-h)와 동일하게, p개의 연상 메모리(209-0 내지 209-r)로부터 입력되는 p개의 중간 데이터(59-(h+1)-0 내지 59-(h+1)-r) 중에서 대응하는 유효 검출 신호(69-h-k)가 유효 상태인 것만을 대상으로 하여 비교했을 때에 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(69-(h+1)-0 내지 69-(h+1)-r)에 유효 상태를 출력하게 된다. 여기서, 도6에 도시된 중간 데이터 연산부(28)를 이용하여 2차 중간 데이터 판정부(72-1 내지 72-t)를 구성해도 올바른 유효 검출 신호 유효 검출 신호(69-(h+1)-0 내지 69-(h+1)-r)가 얻어진다는 것은 언급할 필요도 없다.
또한, 이상 설명한 제6의 본 발명의 연상 메모리 시스템(210)을 구성하는 k번째의 1차 검색용 연상 메모리(57-k)의 구성요소와, 대응하는 부분 2차 검색용 연상 메모리(58-1-k 내지 58-q-k)의 구성요소의 일부를 겸용하는 것에 의해 면적을 삭감할 수 있다는 것도 분명하다. 예를 들면, i번째의 1차 연상 메모리 워드(7-i-k)에 있어서의 기억 데이터를 저장하기 위한 수단과, 대응하는 연상 메모리 워드(68-i-1-k 내지 68-i-q-k)에 있어서의 제1 내지 제q의 2차 기억 데이터를 저장하기 위한 수단에는 같은 값이 저장되기 때문에 겸용하는 것이 가능하다.
[제7 실시예의 구성]
다음으로, 본 발명의 제7 실시 형태의 연상 메모리 시스템에 대해서 도면을 참조하여 상세하게 설명한다. 제7 실시 형태는 복수의 부분 검색 영역으로부터 구성되는 검색 데이터에 대해서 마스크 정보를 고려하여 검색을 행했을 때에 입력 데이터에 대응하는 기억 데이터가 모두 일치하는 워드가 복수개 있는 경우에 우선순위를 고려하여 부분 검색 영역마다 구조화 데이터를 구성하는 마스크 정보의 마스크 유효 상태의 비트수를 일치한 워드 중에서 비교한 결과, 최소가 되는 워드를 식별하는 신호를 출력하는 기능을 클럭 신호에 대응하여 1차 검색 및 각 부분 2차 검색의 실행을 선택하기 위한 신호를 출력하는 제어 회로를 내장하는 것에 의해 1차 검색용 연상 메모리, 2차 검색용 연상 메모리의 구성 수단을 공유하는, 예를 들어 국제 출원 번호 PCT/JP01/03562에 나타내는 연상 메모리를 복수개 접속한 경우의 연상 메모리 시스템의 구성예이다.
도17은 본 발명의 제7 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(212)의 구성예를 도시한 블럭도이다. 연상 메모리 시스템(212)은 q개의 부분 검색 영역으로부터 구성되는 검색 데이터(70)를 입력으로 하는 p개의 m어 n비트의 연상 메모리(211-0 내지 211-r)와, p개의 논리곱수단(99-0 내지 99-r)과, p개의 기억 수단(89-0 내지 89-r)과, 제어 수단(91)과, 중간 데이터 판정부(85)와, 어드레스 신호(12)를 출력하는 어드레스 신호 생성부(11)로부터 구성된다. k번째의 연상 메모리(211-k)는 각각 클럭 신호(55)에 의해 제어되는 기억 수단(87-k)과, 1차2차 검색 겸용 연상 메모리(82-k)를 가진다.
1차 2차 검색 겸용 연상 메모리(82-k)는 검색 데이터(70)의 모든 부분 검색 영역을 검색 대상으로 하는 각 n비트의 기억 데이터 및 마스크 정보로부터 구성되는 구조화 데이터를, m개 저장할 수 있는 연상 메모리 워드(84-0-k 내지 84-s-k)를 가진다. 여기서, 구조화 데이터의 돈케어 "*"상태의 비트는 기억 데이터의 해당 비트를 기억 데이터의 무효 상태로 하고, 마스크 정보의 해당 비트를 마스크 데이터의 유효 상태로 하는 것에 의해 표현된다. 클럭 신호(55)의 1클럭째에서는 1차 2차 검색 겸용 연상 메모리(82-k)는, 대응하는 마스크 정보를 고려하여 검색 데이터(70)의 모든 부분 검색 영역과 비교한 결과, 일치하는 기억 데이터를 검색하는 1차 검색을 연상 메모리 워드(84-0-k 내지 84-s-k) 중에서 행하고, 일치하는 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 값 중에서 검색 데이터의 제1의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 중간 데이터(83-k)로서 중간 데이터 판정부(85)에 출력함과 함께, 다음 클럭에의 이행시에 기억 수단(87-k)에 저장한다. (h+1)클럭째(h는 1이상 q이하의 정수)의 동작에서는 1차 2차 검색 겸용 연상 메모리(82-k)는, 연상 메모리 워드(84-0-k 내지 84-s-k)가 저장하고 있는 기억 데이터 중에서, 검색 데이터의 제h번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 기억 수단(87-k)으로부터 출력되는 전단 중간 데이터(88-k)와 비교를 행하고, 일치하는 기억 데이터끼리에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 값 중에서 검색 데이터의 제(h+1)의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 중간 데이터(83-k)로서 중간 데이터 판정부(85)에 출력함과 동시에, 다음 클럭에의 이행시에 기억 수단(87-k)에 저장한다. 또한, 각 1차 검색, 2차 검색 실행마다 일치한 연상 메모리 워드(84-0-k 내지 84-s-k)에 대응하는 일치선(3-0-k 내지 3-s-k)에 유효 상태를 출력한다. q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색 실행 후에만 일치한 연상 메모리 워드(84-0-k 내지 84-s-k)에 대응하는 일치선(3-0-k 내지 3-s-k)에 유효 상태를 출력하고, 그 외의 검색 동작 종료시에는 일치선의 값을 유지하는 구성으로 해도 괜찮다는 것은 언급할 필요도 없다. 또한, q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색 실행 후에는 중간 데이터(83-k)로서 임의의 값을 출력해도 상관없다. 예를 들면 모든 비트가 중간 데이터의 유효 상태, 또는 무효 상태를 출력해도 상관없고, 직전의 값을 유지해도 상관없다는 것은 언급할 필요도 없다.
중간 데이터 판정부(85)는 도13의 2차 중간 데이터 판정부(60)와 비교하면 입력 신호의 명칭이 중간 데이터(83-0 내지 83-r), 유효 유지 신호(90-0 내지 90-r)로 변경된 외에는 도13의 2차 중간 데이터 판정부(60)와 완전히 동일하게 구성할 수 있다. 중간 데이터 판정부(85)는 p개의 연상 메모리(211-0 내지 211-r)로부터 입력되는 p개의 중간 데이터(83-0 내지 83-r) 중에서, 대응하는 유효 유지 신호(90-k)가 유효 상태의 것만을 대상으로서 비교했을 때에 가장 중간 데이터의 무효 상태의 비트수가 적은 것에 대응하는 유효 검출 신호(86-0 내지 86-r)에 유효 상태를 출력한다.
논리곱수단(99-0 내지 99-r)은 입력 신호의 명칭이 유효 유지 신호(90-0 내지 90-r)로 변경된 외는, 도13의 논리곱수단(46-0 내지 46-r)과 완전히 동일하게 구성할 수 있다. 또한, 어드레스 신호 생성부(11)는 입력이 일치선(3-0-0 내지 3-s-r)이 아니라 실효 일치선(47-0-0 내지 47-s-r)으로 바뀐 점을 제외하면, 도1의 어드레스 신호 생성부(11)와 완전히 동일하게 구성할 수 있다. 물론, 도3에 도시된 어드레스 신호 생성부(25)를 이용해도 구성할 수 있다는 것은 언급할 필요도 없다. 여기서, 1차 2차 겸용 연상 메모리(82-0 내지 82-r)가 1차 검색, 2차 검색마다 일치한 연상 메모리 워드(84-0-0 내지 84-s-r)에 대응하는 일치선(3-0-0 내지 3-s-r)에 유효 상태를 출력하는 경우, q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색 실행 후의 어드레스 출력 신호(12)가 검색 데이터(70)에 대한 올바른 검색 결과이며, 다른 검색 실행 후의 어드레스 출력 신호(12)의 값은 무시하는 것으로 한다. 물론, q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색 실행 후의 어드레스 출력 신호(12)의 값을 다른 검색 실행 후에도 계속 유지하도록 구성해도 괜찮다는 것은 언급할 필요도 없다.
제어 수단(91)은 클럭 신호(55)에 대응하여 1차 검색의 실행 전에 초기화 신호(92)에 유효 상태를 출력하고, 1차 검색, 2차 검색이 종료할 때마다 기억 제어 신호(93)에 유효 상태를 출력한다. q번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색 실행 후에는 기억 제어 신호(93)에 무효 상태를 출력해도 괜찮다. 또한, 상기 1차 2차 겸용 연상 메모리(82-0 내지 82-r)는 1차 검색, 2차 검색 모두 1클럭으로 종료하는 경우를 예로 들어 설명했지만 복수 클럭을 필요로 하는경우에는, 중간 데이터(83-0 내지 83-r), 일치선((3-0-0 ~ 3-s-0) 내지 (3-0-r ~ 3-s-r))의 출력되는 타이밍에 동기화하도록 제어 수단(91)은 기억 제어 신호(93)에 유효 상태를 출력하면 괜찮다는 것은 언급할 필요도 없다.
기억 수단(89-0 내지 89-r)은 초기화 신호(92)가 유효 상태인 때에는, 저장하고 있는 상태를 유효 상태로 변경한다. 또한, 기억 제어 신호(93)가 유효 상태인 때에는 대응하는 유효 검출 신호(86-0 내지 86-r) 상태를 저장한다. 기억 수단(89-0 내지 89-r)은 저장하고 있는 상태를, 각각 대응하는 유효 유지 신호(90-0 내지 90-r)에 출력한다.
[제7 실시예의 동작]
다음으로 도18, 도19 및 도20을 참조하여 본 발명의 제7 실시 형태의 연상 메모리 시스템(212)의 동작을 제1의 우선순위를 가지는 4진수 표기로 (2. 1)와, 제2의 우선순위를 가지는 (1. 3)의 2개의 부분 검색 영역을 가지는 8비트의 검색 데이터(70)를 입력으로 하는 4어 8비트 구성의 연상 메모리(211-0, 211-1)의 2개를 접속하고, 또한 구조화 데이터를 소트 처리하지 않고 랜덤인 순서대로 연상 메모리 워드(84-0-0 내지 84-3-1)에 저장한 경우의 동작을 예로 들어 설명한다. 여기서, 도1과 동일하게 전체로 8어의 어드레스 공간 중에서 연상 메모리(211-1)가 상위 측의 어드레스 공간을 차지하는 것으로 한다. 또한, 1차 2차 겸용 연상 메모리(82-0 내지 82-1)는 1차 검색, 2차 검색 모두 1클럭으로 종료하는 것으로 한다. 또한, 1차 검색, 2차 검색마다 일치한 연상 메모리 워드(84-0-0 내지 84-3-1)에 대응하는 일치선(3-0-0 내지 3-3-1)에 유효 상태를 출력하는 것으로 한다.
도1과 동일하게 본 예에서는 이후, 마스크 정보의 유효 상태를 "0", 무효 상태를 "1"로 하고, 기억 데이터의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다. 또한, 기억 데이터와 동일하게 중간 데이터(59)의 유효 상태를 "1", 무효 상태를 "0"으로 한다. 일치선(3)의 유효 상태를 "1", 무효 상태를 "0"으로 하여 설명한다.
도14의 1차 검색 메모리(57-0)와 동일하게 1차 2차 검색 겸용 연상 메모리(82- 0)의 4어의 연상 메모리 워드(84-0-0 내지 84-3-0)에는, 각각 4진수 표기의 구조화 데이터 (3. *. 1. 3), (2. *. 1. *), (1. *. 3. 2), (2. *. 1. 3)를 표현하도록 기억 데이터, 마스크 데이터를 저장하고 있는 것으로 하고, 1차 2차 검색 겸용 연상 메모리(82-1)의 4어의 연상 메모리 워드(84-0-1 내지 84-3-1)에는, 각각 4진수 표기의 구조화 데이터 (2. 3. 1. 3), (2. 1. 1. *), (2. *. *. *), (2. 1. *. *)를 표현하도록 기억 데이터 및 마스크 정보를 저장하고 있는 것으로 한다. 도23에서 설명한 종래의 1차 검색용 연상 메모리(302)와 동일하게, 돈케어 "*"상태를 표현하기 위해서 마스크 정보의 해당 비트에는 마스크 정보의 유효 상태 "0"을, 기억 데이터의 해당 비트에는 기억 데이터의 무효 상태 "0"을 각각 저장한다. 즉 연상 메모리 워드(84-0-0 내지 84-3-0)에는 기억 데이터로서 각각 4진수 표기로 (3. 0. 1. 3), (2. 0. 1. 0), (1. 0. 3. 2), (2. 0. 1. 3)를 저장하고, 마스크 정보로서 각각 4진수 표기로 (3. 0. 3. 3), (3. 0. 3. 0), (3. 0. 3. 3), (3. 0. 3. 3)을 저장하고 있다. 연상 메모리 워드(84-0-1 내지 84-3-1)에는 기억 데이터로서 각각 4진수 표기로 (2. 3. 1. 3), (2. 1. 1. 0), (2. 0. 0. 0), (2. 1. 0. 0)을 저장하고, 마스크 정보로서 각각 4진수 표기로 (3. 3. 3. 3), (3. 3. 3. 0), (3. 0. 0. 0), (3. 3. 0. 0)을 저장하고 있다. 또한, 각 기억 데이터, 각 마스크 정보의 상위 4비트가 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역으로 하고, 각 기억 데이터, 각 마스크 정보의 하위 4비트가 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역으로 한다.
다음에 4진수 표기로 (2. 1. 1. 3)의 검색 데이터(70)를 입력했을 때의 연상 메모리 시스템(212)의 1 클럭째의 동작예에 대해서 도18을 참조하여 설명한다.
연상 메모리(211-0)에서는 우선 1차 2차 검색 겸용 연상 메모리(82-0)가 대응하는 마스크 정보를 고려하여 검색 데이터(70)와 모든 비트에 대해서 비교했을 때에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 연상 메모리 워드(84-1-0, 84-3-0)에 저장되어 있는 4진수 표기의 구조화 데이터(2. *. 1. *), (2. *. 1. 3)가 검색 데이터(70)와 일치한다. 1차 2차 검색 겸용 연상 메모리(82-0)는 일치한 1차 연상 메모리 워드(84-1-0, 84-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (2. 0), (2. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (2. 0), 2진수 표기로 "1000"의 4비트의 연산 결과를 중간 데이터(83-0)로서 중간 데이터 판정부(85)에 출력함과 동시에 1클럭째에서 2클럭째로 이행할 때에 기억 수단(87-0)에 저장한다.
동일하게, 연상 메모리(211-1)에서는 우선 1차 2차 검색 겸용 연상메모리(82-1)가 대응하는 마스크 정보를 고려하여 검색 데이터(70)와 모든 비트에 대해서 비교했을 때에 일치하는 기억 데이터를 검색하는 1차 검색을 행하고, 결과적으로 연상 메모리 워드(84-1-1, 84-2-1, 84-3-1)에 저장되어 있는 4진수 표기의 구조화 데이터(2. 1. 1. *), (2. *. *. *), (2. 1. *. *)가 검색 데이터(70)와 일치한다. 1차 2차 검색 겸용 연상 메모리(82-1)는 일치한 연상 메모리 워드(84-1-1, 84-2-1, 84-3-1) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제1의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (2. 1), (2. 0), (2. 1)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (2. 1), 2진수 표기로 "1001"의 4비트의 연산 결과를 중간 데이터(83-1)로서 중간 데이터 판정부(85)에 출력함과 동시에 1클럭째에서 2클럭째로 이행할 때에 기억 수단(87-1)에 저장한다.
연상 메모리(211-0, 211-1)가 1차 검색을 개시하기 전에 기억 수단(89-0, 89-1)이 각각 저장하고 있는 값은 제어 수단(91)으로부터 입력되는 초기화 신호(92)에 의해 유효 상태로 초기화되어 있는 것으로 한다. 따라서, 기억 수단(89-0)은 유효 유지 신호(90-0)에 유효 상태 "1"을, 기억 수단(89-1)은 유효 유지 신호(90-1)에 유효 상태 "1"을 출력하고 있다.
연상 메모리(211-0)에서는 일치선(3-1-0, 3-3-0)으로 유효 상태가 출력되고, 연상 메모리(211-1)에서는 일치선(3-1-1, 3-2-1, 3-3-1)으로 유효 상태가 출력된다. 유효 유지 신호(90-0, 90-1)가 각각 유효 상태이기 때문에, 논리곱수단(99-0, 99-1)으로부터 입력되는 실행 일치선(47-0-0 내지 47-3-1)에 의해, 어드레스 신호생성부(11)로부터 "부정"상태의 어드레스 출력 신호(12)가 출력된다. 여기서, 1클럭째의 연상 메모리(211-0 내지 211-1)의 동작은 2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색의 실행이 아니기 때문에 어드레스 출력 신호(12)의 값은 무효이며, 본 동작예에서는 무시한다.
유효 유지 신호(90-0, 90-1)가 각각 유효 상태이기 때문에, 중간 데이터 판정부(85)는 중간 데이터(83-0, 83-1)의 무효 상태의 비트수를 비교하고, 가장 무효 상태의 비트수가 적은 중간 데이터(83-1)에 대응하는 유효 검출 신호(86-1)에 유효 상태 "1"을 출력하고, 다른 유효 검출 신호(86-0)에는 무효 상태 "0"을 출력한다.
제어 수단(91)이 기억 제어 신호(93)에 유효 상태를 출력하고 있기 때문에, 1클럭째에서 2클럭째로 이행할 때 기억 수단(89-0)은 유효 검출 신호(86-0)의 무효 상태 "0"을, 기억 수단(89-1)은 유효 검출 신호(86-1)의 유효 상태 "1"을 각각 저장한다.
다음으로 4진수 표기로 (2. 1. 1. 3)의 검색 데이터(70)를 입력했을 때의 연상 메모리 시스템(212)의 2클럭째의 동작예에 대해서 도19를 참조하여 설명한다.
1차 2차 검색 겸용 연상 메모리(82-0)에서는 연상 메모리 워드(84-0-0 내지 84-3-0)에 저장하고 있는 기억 데이터 중에서 검색 데이터(70)의 제1번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로서 기억 수단(87-0)으로부터 출력되는 4진수 표기로 (2. 0)의 전단 중간 데이터(88-0)와 대응하는 마스크 정보를 고려하지 않고 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(84-1-0, 84-3-0)가 일치한다. 1차 2차 검색 겸용 연상 메모리(82-0)는 일치한연상 메모리 워드(84-1-0, 84-3-0) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (1. 0), (1. 3)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (1. 3), 2진수 표기로 "0111"의 4비트의 연산 결과를 중간 데이터(83-0)로서 중간 데이터 판정부(85)에 출력함과 동시에 2클럭째에서 3클럭째로 이행할 때에 기억 수단(87-0)에 저장한다.
동일하게, 1차 2차 검색 겸용 연상 메모리(82-1)에서는 연상 메모리 워드(84-0-1 내지 84-3-1)에 저장하고 있는 기억 데이터 중에서 검색 데이터(70)의 제1번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로서, 기억 수단(87-1)으로부터 출력되는 4진수 표기로 (2. 1)의 전단 중간 데이터(88-1)와 대응하는 마스크 정보를 고려하지 않고 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(84-1-1, 84-3-1)가 일치한다. 1차 2차 검색 겸용 연상 메모리(82-1)는 일치한 연상 메모리 워드(84-1-1, 84-3-1) 중에 저장되어 있는 4진수 표기의 기억 데이터에 있어서의, 검색 데이터(70)의 제2의 우선순위의 부분 검색 영역에 대응하는 영역, 4진수 표기로 각각 (1. 0), (0. 0)에 대해서 기억 데이터의 유효 상태를 진으로 하는 논리합연산을 행하고, 얻어진 4진수 표기로 (1. 0), 2진수 표기로 "0100"의 4비트의 연산 결과를 중간 데이터(85-1)로서 중간 데이터 판정부(85)에 출력함과 동시에 2클럭째에서 3클럭째로 이행할 때에 기억 수단(87-1)에 저장한다.
연상 메모리(211-0)에서는 일치선(3-1-0, 3-3-0)으로 유효 상태가 출력되고,연상 메모리(211-1)에서는 일치선(3-1-1, 3-3-1)으로 유효 상태가 출력된다. 유효 유지 신호(90-1)가 유효 상태이기 때문에, 논리곱수단(99-0, 99-1)으로부터 입력되는 실행 일치선(47-0-0 내지 47-3-1)에 의해 어드레스 신호 생성부(11)로부터 "부정"상태의 어드레스 출력 신호(12)가 출력된다. 여기서, 2클럭째의 연상 메모리(211-0 내지 211-1)의 동작은 2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 2차 검색의 실행이 아니기 때문에 어드레스 출력 신호(12)의 값은 무효이며, 본 동작예에서는 무시한다.
유효 유지 신호(90-0)가 무효 상태이기 때문에, 중간 데이터 판정부(85)는 중간 데이터(83-1)를 대상으로서 무효 상태의 비트수를 비교하여, 가장 무효 상태의 비트수가 적은 중간 데이터(83-1)에 대응하는 유효 검출 신호(86-1)에 유효 상태 "1"을 출력하고, 다른 유효 검출 신호(86-0)에는 무효 상태 "0"을 출력한다.
제어 수단(91)이 기억 제어 신호(93)에 유효 상태를 출력하고 있기 때문에, 2클럭째에서 3클럭째로 이행할 때에 기억 수단(89-0)은 유효 검출 신호(86-0)의 무효 상태 "0"을, 기억 수단(89-1)은 유효 검출 신호(86-1)의 유효 상태 "1"을 각각 저장한다.
다음에 4진수 표기로 (2. 1. 1. 3)의 검색 데이터(70)를 입력했을 때의 연상 메모리 시스템(212)의 3클럭째의 동작예에 대해서 도20을 참조하여 설명한다.
1차 2차 검색 겸용 연상 메모리(82-0)에서는 연상 메모리 워드(84-0-0 내지 84-3-0)에 저장하고 있는 기억 데이터 중에서 검색 데이터(70)의 제2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여, 기억수단(87-0)으로부터 출력되는 4진수 표기로 (1. 3)의 전단 중간 데이터(88-0)와 대응하는 마스크 정보를 고려하지 않고 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(84-3-0)가 일치하여 대응하는 일치선(3-3-0)에 일치선의 유효 상태를 출력한다. 1차 2차 검색 겸용 연상 메모리(82-0)는 검색 데이터(70)의 모든 부분 검색 영역에 대해서 2차 검색을 종료했기 때문에, 본 예에서는 중간 데이터(83-0)로서 중간 데이터의 모든 비트가 유효 상태의 값을 중간 데이터 판정부(85)에 출력함과 동시에 3클럭째에서 4 클럭째로 이행할 때에 기억 수단(87-0)에 저장한다.
동일하게, 1차 2차 검색 겸용 연상 메모리(82-1)에서는 연상 메모리 워드(84-0-1 내지 84-3-1)에 저장하고 있는 기억 데이터 중에서 검색 데이터(70)의 제2번째의 우선순위를 가지는 부분 검색 영역에 대응하는 비트 영역만을 대상으로 하여 기억 수단(87-1)으로부터 출력되는 4진수 표기로 (1. 0)의 전단 중간 데이터(88-1)와 대응하는 마스크 정보를 고려하지 않고 비교하는 2차 검색을 행하고, 그 결과 연상 메모리 워드(84-1-1)가 일치하여 대응하는 일치선(3-1-1)에 일치선의 유효 상태를 출력한다. 1차 2차 검색 겸용 연상 메모리(82-1)는 검색 데이터(70)의 모든 부분 검색 영역에 대해서 2차 검색을 종료했기 때문에, 본 예에서는 중간 데이터(85-1)로서 중간 데이터의 모든 비트가 유효 상태의 값을 중간 데이터 판정부(85)에 출력함과 동시에 3클럭째에서 4클럭째로 이행할 때에 기억 수단(87-1)에 저장한다.
유효 유지 신호(90-0)가 무효 상태이기 때문에, 중간 데이터 판정부(85)는 중간 데이터(83-1)를 대상으로서 무효 상태의 비트수를 비교하여, 가장 무효 상태의 비트수가 적은 중간 데이터(83-1)에 대응하는 유효 검출 신호(86-1)에 유효 상태 "1"을 출력하고, 다른 유효 검출 신호(86-0)에는 무효 상태 "0"을 출력한다.
제어 수단(91)이 기억 제어 신호(93)에 무효 상태를 출력하고 있기 때문에, 기억 수단(89-0)은 무효 상태 "0"을, 기억 수단(89-1)은 유효 상태 "1"을, 계속 각각 유지한다.
논리곱수단(99-0)은 대응하는 유효 유지 신호(90-0)가 무효 상태이므로, 실효 일치선(47-0-0 내지 47-3-0) 전체에 일치선의 무효 상태를 출력한다. 따라서, 실효 일치선(47-0-0 내지 47-3-0)은 2진수 표기로 "0000"이 된다. 논리곱수단(99-1)은 대응하는 유효 유지 신호(90-1)가 유효 상태이므로, 연상 메모리(211-1)로부터 출력되는 일치선(3-0-1 내지 3-3-1)의 2진수 표기의 값 "0010"을 실효 일치선(47-0-1 내지 47-3-1)에 출력한다. 따라서, 어드레스 신호 생성부(11)에 입력되는 신호 중에서 유효 상태인 신호는 실효 일치선(47-2-1)의 한 개만이 되어, 어드레스 신호 생성부(11)는 2진수 표기의 값 "101"을 어드레스 출력 신호(12)로서 출력한다. 도18, 도19, 도20의 예에서는 4진수 표기로 (2. 1)의 제1의 우선순위의 부분 검색 영역과 4진수 표기로 (1. 3)의 제2의 우선순위의 부분 검색 영역을 가지는 검색 데이터(70)에 대해서 일치하는 연상 메모리 시스템(212)이 저장하고 있는 구조화 데이터 중에서, 마스크 정보의 우선 상태의 비트수가 최소인 것은 연상 메모리(211-1)의 연상 메모리 워드(84-1-1)에 저장하고 있는 4진수 표기로 (2. 1. 1. *)인 것은 분명하다. 따라서, 어드레스 신호 생성부(11)는 올바른 어드레스 출력 신호(12)를 출력하고 있는 것을 알 수 있다.
물론 중간 데이터 판정부(85)와, 논리곱수단(99-0 내지 99-r)과, 기억 수단(89-0 내지 89-r)과, 제어 수단(91)을 가지지 않고, 도1에 도시된 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)과 동일하게, 연상 메모리(211-0 내지 211-r)가 출력하는 중간 데이터(83-0 내지 83-r)를 도1에 도시된 중간 데이터 연산부(9)와 동일하게 구성되는 중간 데이터 연산부에 입력한 결과 얻어지는 최적화 중간 데이터를 기억 수단(87-0 내지 87-r)에 입력하고, 연상 메모리(211-0 내지 211-r)가 출력하는 일치선(3-0-0 내지 3-s-r)을 어드레스 신호 생성부(11)에 직접 입력하도록 구성해도 올바른 어드레스 출력 신호(12)를 얻을 수 있다는 것은 분명하다. 이 때, 중간 데이터 연산부로서는 도4에 도시된 중간 데이터 연산부(26) 또는 도6에 도시된 중간 데이터 연산부(28)와 동일하게 구성할 수 있다는 것은 언급할 필요도 없다. 또한, 도8에 도시된 제3 실시 형태의 연상 메모리 시스템(203)과 같이 최적화 중간 데이터를 결선 논리에 의해 생성하는 구성으로 해도 상관없다는 것도 분명하다. 이것들에 의해 회로 구성을 간략화 하는 것이 가능하다.
또한, 본 예에서는 무효 상태 비트수 계수 수단(94-k)은, 유효 유지 신호(90-k)가 무효 상태인 경우에는 중간 데이터(83-k)의 비트수를 출력했지만, 중간 데이터(80-k)의 비트수보다 큰 값을 출력해도 괜찮다는 것은 언급할 필요도 없다.
여기서, 도17에 도시된 연상 메모리 시스템(212)에 있어서, 연상 메모리(211-k)에 대응하는 무효 상태 비트수 계수 수단(94-k)을 연상 메모리(211-k)에 내장한 경우에는 도11에 도시된 연상 메모리 시스템(206)의 설명과 동일하게,긴 배선의 갯수를 대폭 삭감하는 것이 가능해지는 것과 동시에 각 연상 메모리(211)에 필요한 단자의 수를 대폭 삭감할 수가 있다. 게다가 신호 지연 시간, 배선 용량에 의한 소비 전력 등을 삭감할 수 있다. 배선 영역의 감소에 의해 더욱 면적을 삭감할 수 있다. 또한, 각 연상 메모리의 단자수가 대폭 삭감되기 때문에 면적을 한층 더 삭감하는 것이 가능하다.
이상 설명한 제3 내지 제7 실시 형태의 본 발명의 연상 메모리 시스템에 대하여, 어드레스 신호 생성부(11) 대신에 도3에 도시된 어드레스 신호 생성부(25)를 이용한 경우에는 연상 메모리(211-k)에 대응하는 인코더(22-k), 일치 검출 수단(16-k)도 연상 메모리(211-k)에 내장하는 것에 의해, 전술한 바와 같이 더욱 면적 삭감, 단자수 삭감이 가능한 것은 언급할 필요도 없다.
[제8의 실시예]
다음에 도면을 참조하여, 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)을 경유지 어드레스 계산에 이용한 본 발명의 제1 실시 형태의 네트워크 기기의 구성예를 설명한다. 도21은 본 발명의 제1 실시 형태의 네트워크 기기의 구성예를 도시한 블럭도이다.
도21의 네트워크 기기(101)는 도25에 도시된 종래의 네트워크 기기(400)와 동일하게 입력 통신 데이터(407)를 입력으로 하고, 출력 통신 데이터(408)를 출력한다. 입력 통신 데이터(407)는 송출원 네트워크 어드레스(409)와, 경유지 네트워크 어드레스(410)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 출력 통신 데이터(409)는 송출원 네트워크 어드레스(409)와, 제2의 경유지 네트워크어드레스(412)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 입력 통신 데이터(407)의 경유지 네트워크 어드레스(410)는 도21에 있어서의 네트워크 기기(101)의 네트워크 어드레스가 되고 있다.
도21에 도시된 본 발명의 네트워크 기기(101)는 목적지 네트워크 어드레스 추출부(405)와, 본 발명의 제1 실시 형태의 연상 메모리 시스템(200)과, 경유지 네트워크 어드레스 저장 메모리(102)와, 경유지 네트워크 어드레스 변경부(406)에 의해 구성된다.
도25에서 설명한 종래의 네트워크 기기(400)와 비교하면 도25에 있어서 목적지 네트워크 어드레스 추출부(405)로부터 입력되는 검색 데이터(307)에 대해서 최적인 구조화 데이터를 검색하는 종래의 n비트 m어의 연상 메모리(300)와, 연상 메모리(300)로부터 입력된 일치선(301-0 내지 301-3)을 어드레스 출력 신호(309)에 부호화하는 인코더(308)를, 도21의 본 발명의 네트워크 기기(101)에서는 p개의 n비트 m어의 연상 메모리(1-0 내지 1-r)를 가지는 본 발명의 제1 실시 형태의 n비트 (m×p)어의 연상 메모리 시스템(200)을 이용해 구성하고 있다는 점과, 또한 그에 따라, m어의 경유지 네트워크 어드레스 저장 메모리(402)가 (m×p)어의 경유지 네트워크 어드레스 저장 메모리로 변경되어 있는 점이 다르고 다른 요소는 동일하게 구성된다.
도21의 연상 메모리 시스템(200)은 도1과 동일하게, p개의 m어 n비트의 연상 메모리(1-0 내지 1-r)와, 중간 데이터 연산부(9)와, 어드레스 신호 생성부(11)로부터 구성되어 n비트의 검색 데이터(2)를 입력으로 하고, 어드레스 출력 신호(12)를출력으로 한다. 따라서, 제1 실시 형태의 연상 메모리 시스템(200)의 동작 설명에서 분명한 것과 같이, 도25의 종래의 n비트 m어의 연상 메모리(300)와 인코더(308)의 조합을 비교하면 저장 가능한 구조화 데이터의 수가 p배에 증가한 외에는 완전히 동일하게 동작하는 것을 알 수 있다.
이에 따라, 복수의 연상 메모리(1-0 내지 1-r)를 가지는 본 발명의 연상 메모리 시스템(200)으로부터 구성되는 네트워크 기기(101)는 저장하고 있는 구조화 데이터를 최신의 상황으로 갱신하는 경우에 있어서도, 소트 처리가 불필요하기 때문에 전송 처리가 중단되지 않고 네트워크 전체의 전송 속도를 대폭 향상시킬 수가 있다.
또한, 소트 처리를 실행하기 위한 고가의 고속 CPU 시스템이 불필요하기 때문에, 네트워크 기기 전체로서의 가격을 삭감할 수 있다.
또한, 우선순위 인코더가 불필요해지기 때문에 부호화 처리 시간이 단축되기 때문에, 통신 데이터의 전송 속도를 더욱 향상할 수 있는 효과와, 네트워크 기기의 가격을 더욱 삭감하는 것이 가능하다.
또한, 소트 처리가 필요하기 때문에 본 발명의 네트워크 기기(101)에서는, 용이하게 연상 메모리(1)를 추가 또는 삭제하는 것이 가능하고, 네트워크 규모에 대응하여, 유연하게 구조화 데이터의 저장 용량을 변경할 수가 있다.
[제9의 실시예]
다음에 도면을 참조하여, 본 발명의 제7 실시 형태의 연상 메모리 시스템(212)을 전송 가부 연산에 이용한 본 발명의 제2 실시 형태의 네트워크 기기의 구성예를 설명한다. 도22는 본 발명의 제2 실시 형태의 네트워크 기기의 구성예를 도시한 블럭도이다.
도22의 네트워크 기기(103)는 입력 통신 데이터(407)를 입력으로 하고, 출력 통신 데이터(408)를 출력한다. 입력 통신 데이터(407)는 송출원 네트워크 어드레스(409)와, 경유지 네트워크 어드레스(410)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 출력 통신 데이터(408)는 송출원 네트워크 어드레스(409)와, 제2의 경유지 네트워크 어드레스(412)와, 목적지 네트워크 어드레스(411)를 가지고 있다. 입력 통신 데이터(407)의 경유지 네트워크 어드레스(410)는 도22에 있어서의 네트워크 기기(103)의 네트워크 어드레스가 되어 있다.
도22에 도시된 본 발명의 네트워크 기기(103)는 송출원 네트워크 어드레스 및 목적지 네트워크 어드레스 추출부(104)와, 본 발명의 제7 실시 형태의 연상 메모리 시스템(212)과, 전송 가부 정보 저장 메모리(105)와, 경유지 네트워크 어드레스 연산부(108)와, 경유지 네트워크 어드레스 변경부(406)와, 데이터 전송부(107)에 의해 구성된다.
송출원 네트워크 어드레스 및 목적지 네트워크 어드레스 추출부(104)는 입력 통신 데이터(407)의 송출원 네트워크 어드레스(409)와 목적지 네트워크 어드레스(410)를 추출하고, 목적지 네트워크 어드레스(410)를 검색 데이터(2)로서 경유지 네트워크 어드레스 연산부(108)에 출력한다. 또한, 추출한 송출원 네트워크 어드레스(409)와 목적지 네트워크 어드레스(410)의 쌍방을 부분 검색 영역으로 하는 검색 데이터(70)를 연상 메모리 시스템(212)에 출력한다.
경유지 네트워크 어드레스 연산부(108)는 내부에 저장하고 있는 구조화 데이터로 표현된 네트워크 어드레스 중에서, 검색 데이터(2)로서 입력된 목적지 네트워크 어드레스(410)와 일치하는 것을 검색하여, 일치하는 구조화 데이터 중에서 마스크 정보의 유효 상태의 비트수가 최소의 것을 선택하고, 해당 구조화 데이터로 표현된 네트워크 어드레스에 대응하는 제2의 경유지 네트워크 어드레스를 메모리 데이터 신호(404)로서 출력하는 기능을 가지고 있다. 경유지 네트워크 어드레스 변경부(406)는 입력 통신 데이터(407)의 경유지 네트워크 어드레스(410)를 메모리 데이터 신호(404)에 대응하여 제2의 경유지 네트워크 어드레스(412)로 변경하고, 변경 완료 통신 데이터(109)로서 데이터 전송부(107)에 출력한다.
따라서, 입력 통신 데이터의 경유지 네트워크 어드레스(410)에 대한 송출원 네트워크 어드레스 및 목적지 네트워크 어드레스 추출부(104)와 경유지 네트워크 어드레스 연산부(108)와 경유지 네트워크 어드레스 변경부(406)의 동작은 도23의 종래의 네트워크 기기(400)와 완전히 동일하다. 따라서, 경유지 네트워크 어드레스 연산부(108)는 도21에 도시된 본 발명의 네트워크 기기(101)에 있어서의 연상 메모리 시스템(101)과 경유지 네트워크 어드레스 저장 메모리(402)에 의해 용이하게 구성할 수 있다.
도22의 연상 메모리 시스템(212)의 구성은 도17과 동일하다. 연상 메모리 시스템(212)은 p개의 연상 메모리(211-0 내지 211-r)를 가지고, k번째의 연상 메모리(211-k)의 각 워드에는 송출원 네트워크 어드레스와 경유지 네트워크 어드레스를 연결한 구조화 데이터를 저장하고 있다. 본 예에서는 검색 데이터(70)를 구성하는 부분 검색 영역 중에서 송출원 네트워크 어드레스(409)에 대응하는 영역이 제1의 우선순위를 가지는 것으로서 설명한다. 물론, 목적지 네트워크 어드레스(411)에 대응하는 부분 검색 영역이 제1의 우선순위를 가지고 있어도 괜찮다는 것은 언급할 필요가 없다.
전술의 제7의 연상 메모리 시스템(212)의 동작의 설명과 동일하게, 연상 메모리 시스템(212)은 송출원 네트워크 어드레스 및 목적지 네트워크 어드레스 추출부(104)로부터 입력되는 송출원 네트워크 어드레스(409)와 목적지 네트워크 어드레스(410)를 부분 검색 영역으로 하는 검색 데이터(70)에 대해서, p개의 연상 메모리(211-0 내지 211-r)에 저장하고 있는 구조화 데이터 중에서 마스크 정보를 고려하여 비교하는 1차 검색을 실행했을 때에 기억 데이터가 모두 일치하는 워드가 복수개 있는 경우, 일치한 워드의 기억 데이터 중에서 제1의 우선순위를 가지는 송출원 네트워크 어드레스(409)에 대응하는 비트 영역에 포함되는 무효 상태의 비트수가 최소인 기억 데이터를 선택하고, 또한 선택된 기억 데이터 중에서 제2의 우선순위를 가지는 목적지 네트워크 어드레스(411)에 대응하는 비트 영역에 포함되는 무효 상태의 비트수가 최소인 것을 선택하여 해당 기억 데이터에 대응하는 전송 가부 정보 저장 메모리(105)의 워드를 액세스하기 위한 어드레스 출력 신호(12)를 출력한다.
전송 가부 정보 저장 메모리에는 연상 메모리 시스템(212)이 각 워드에 저장하고 있는 송출원 네트워크 어드레스와 경유지 네트워크 어드레스를 연결한 구조화데이터에 대응하는 워드에 해당 구조화 데이터와 일치하는 입력 통신 데이터에 대한 전송의 허가, 거절을 나타내는 제어 데이터를 저장하고 있고, 어드레스 출력 신호(12)에 의해, 대응하는 워드가 저장하고 있는 제어 데이터를 전송 제어 신호(106)로서 데이터 전송부에 출력한다.
데이터 전송부(107)는 전송 제어 신호(107)가 전송 허가를 나타내고 있는 경우에는, 변경 완료 통신 데이터(109)를 제2의 경유지 네트워크 어드레스(412)에 대응하는 네트워크 기기에 대해서 전송하고, 전송 제어 신호(107)가 전송 거절을 나타내고 있는 경우에는 변경 완료 통신 데이터(109)의 전송을 행하지 않는다. 이에 따라 소위 패킷 필터링 처리가 실현될 수 있다.
본 예에서는, 제7 실시 형태의 연상 메모리 시스템(212)에 의해 구성했지만, 제6 실시 형태의 연상 메모리 시스템(210)에 의해서도 구성할 수 있다는 것은 언급할 필요도 없다.
상술한 바와 같이, 복수의 연상 메모리(211-0 내지 211-r)를 가지는 본 발명의 연상 메모리 시스템(212)으로부터 구성되는 네트워크 기기(103)는 저장하고 있는 구조화 데이터를 최신의 상황으로 갱신하는 경우에 있어서도, 소트 처리가 불필요하기 때문에 전송 처리가 중단되지 않고, 네트워크 전체의 전송 속도를 대폭 향상시킬 수가 있다.
또한, 소트 처리를 실행하기 위한 고가의 고속 CPU 시스템이 불필요하기 때문에, 네트워크 기기 전체로서의 가격을 삭감할 수 있다.
또한, 우선순위 인코더가 불필요해지기 때문에 부호화 처리 시간이 단축되기때문에, 통신 데이터의 전송 속도를 더욱 향상시킬 수 있는 효과와 네트워크 기기의 가격을 더욱 삭감하는 것이 가능하다.
또한, 소트 처리가 필요하기 때문에 본 발명의 네트워크 기기(103)에서는, 용이하게 연상 메모리(211)를 추가 또는 삭제하는 것이 가능하고, 네트워크 규모에 대응하여, 유연하게 구조화 데이터의 저장 용량을 변경할 수가 있다.
상술한 바와 같이, 본 발명의 연상 메모리 시스템은 기억용량을 증대시키기 위해 복수개 접속한 연상 메모리에 대해서 소트 처리를 수반하지 않고 구조화 데이터의 기입, 갱신 및 삭제를 실행한 경우에 있어서도, 검색시에 복수의 기억 데이터가 검색 데이터와 일치한 경우에 그 중에서 최적인 구조화 데이터를 식별하는 신호를 출력할 수 있다고 하는 효과를 가진다. 또한, 제4 실시 형태와 같이 중간 데이터의 판정을 2차 검색과 병렬로 실행하도록 구성한 본 발명의 연상 메모리 시스템의 검색 시간은 연상 메모리 단체의 검색 시간과 동일하고, 고속으로 검색할 수 있다고 하는 효과도 가진다.
또한, 본 발명의 연상 메모리 시스템에서는 중간 데이터, 일치선의 양편 또는 한편을 부호화하여 출력하는 기능을 각 연상 메모리의 내부에 넣는 것에 의해, 큰 배선 기생 용량을 가지는 긴 배선의 개수를 연상 메모리 전체로서 대폭 삭감할 수 있기 때문에, 신호 지연 시간의 단축에 의한 검색 시간의 단축, 배선 용량 감소에 의한 소비 전력의 삭감이라고 하는 효과를 가진다. 또한, 배선 영역의 감소 및 각 연상 메모리의 단자수가 대폭 삭감되기 때문에, 연상 메모리 시스템 전체적으로의 면적을 대폭 삭감할 수 있어 시스템 전체로서 가격을 염가로 할 수 있다고 하는 효과를 가진다. 또한, 우선순위 인코더가 불필요해지기 때문에 시스템 전체로서의 검색 속도를 더욱 향상시킬 수가 있는 것과 동시에, 더욱 면적을 삭감할 수 있다고 하는 효과를 가진다.
또한, 기억용량을 증대하기 위해서 복수의 연상 메모리를 접속하기 위해서 본 발명의 연상 메모리 시스템을 넣은 네트워크 기기에서는, 전송 동작을 중단하지 않고 구조화 데이터 표현의 네트워크 어드레스의 삭제, 추가, 변경을 실시할 수가 있다고 하는 이점을 가진다. 상술한 바와 같이, 본 발명의 연상 메모리 시스템을 이용하면 구조화 데이터 표현의 네트워크 어드레스의 삭제, 추가, 변경은, 소트 처리를 수반하지 않고 통상의 메모리 액세스에 필요로 하는 시간으로 실행할 수 있기 때문이다. 이에 따라, 종래의 네트워크 기기에서 필요했던 소트 처리 실행 중에서의 네트워크의 통신 불능 시간이 불필요하게 됨과 동시에, 운용 관리가 용이하게 된다고 하는 이점도 가진다. 또한, 구조화 데이터 표현의 네트워크 어드레스의 삭제, 추가, 변경이 신속히 반영되기 때문에 네트워크 전체의 전송 속도, 안전성이 향상하는 효과를 가진다. 게다가 연상 메모리 시스템의 구조화 데이터를 관리하는 소프트웨어 처리가 간단하게 되는 효과도 있다.
또한, 본 발명의 연상 메모리 시스템을 넣은 네트워크 기기에서는 경유지 어드레스 계산이나 전송 가부 판정을 고속으로 실행 가능한 네트워크 기기의 토탈 코스트를 삭감할 수 있다고 하는 효과를 가진다. 상술한 바와 같이 전송 가부 판정을 고속으로 연산 가능한 본 발명의 연상 메모리 시스템을 탑재하는 것으로써, 소트처리를 실행하기 위한 고가의 고속 CPU 시스템을 탑재할 필요가 없어지기 때문에, 연상 메모리 시스템 전체로서의 면적을 대폭 삭감할 수 있기 때문이다.
또한, 본 발명의 네트워크 기기를 이용하는 것으로 네트워크 규모의 증감에 대응하여 기억용량을 유연하게 증감할 수 있고, 또한 고속으로 데이터를 전송 할 수 있고, 또한 운용 관리의 용이한 네트워크 시스템을 구축할 수가 있다고 하는 이점을 가진다.

Claims (24)

  1. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
    1워드마다 해당 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
    상기 1차 검색 수단에 있어서의 선택된 워드 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터의 값을 중간 데이터로서 출력하는 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
    상기 복수개의 중간 데이터 생성 수단이 출력하는 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 중간 데이터를 선택하여, 최적화 중간 데이터로서 출력하는 중간 데이터 연산 수단과,
    상기 복수개의 1차 검색 수단에 저장되어 있는 상기 기억 데이터의 값을 저장하고, 상기 최적화 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 2차 검색을 실행하는 하나 또는 복수의 2차 검색 수단과,
    2차 검색의 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  2. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
    1워드마다 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
    상기 1차 검색 수단에 있어서의 해당 선택된 워드 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 기억 데이터의 값을 중간 데이터로서 출력하는 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
    상기 복수개의 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 중간 데이터를 출력하고 있는 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 중간 데이터 판정 수단과,
    대응하는 상기 1차 검색 수단에 저장되어 있는 상기 기억 데이터의 값을 저장하고, 해당 1차 검색 수단에 대응하는 상기 중간 데이터 생성 수단이 출력하는 상기 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 2차 검색을 실행하는 복수의 2차 검색 수단과,
    상기 각 1차 연상 메모리에 대응하는 상기 검출 신호가 무효 상태인 경우에는 대응하는 일치 신호에 모두 무효 상태를 출력하고, 해당 검출 신호가 유효 상태인 경우에는 2차 검색의 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 상기 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  3. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
    우선순위를 가지는 k개(k는 2이상의 정수)의 검색 영역으로부터 구성되는 검색 데이터를 입력으로 하고,
    1워드마다 상기 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상으로부터 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
    1차 검색의 종료 후에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제1 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제1 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제1의 중간 데이터로서 출력하는 제1의 중간 데이터 생성 수단과,
    제(i-1)의 2차 검색 종료 후(i는 2이상 k이하의 정수)에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제i 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제i 우선순위의 검색영역에 대응하는 영역의 기억 데이터의 값을 제j의 중간 데이터로서 출력하는 제2 내지 제k의 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
    상기 복수개의 제j의 중간 데이터(j는 1이상 k이하의 정수) 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제j의 중간 데이터를 선택하여, 제j의 최적화 중간 데이터로서 출력하는 제1 내지 제k의 중간 데이터 연산 수단과,
    상기 복수개의 1차 검색 수단에 저장되어 있는 제j의 검색 영역에 대응하는 영역의 기억 데이터의 값을 저장하고, 상기 제j의 최적화 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 제j의 2차 검색을 실행하는 하나 또는 복수의 제1 내지 제k의 2차 검색 수단과,
    제k의 2차 검색 종료 후에 선택되어 있는 상기 기억 데이터의 값에 대응하는 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  4. 청구항 3에 있어서, 상기 제1 내지 제k의 2차 검색 수단에 있어서,
    해당 제1 내지 제k의 최적화 중간 데이터 중의 복수로부터 하나를 선택하는 선택 수단과, 2차 검색의 대상으로 하는 검색 영역을 선택하는 제어 수단을 가지는 것에 의해,
    상기 2차 검색 수단 및 상기 중간 데이터 연산 수단의 각각 제1 내지 제k 중의 일부 또는 전부를 공유하는 것을 특징으로 하는 연상 메모리 시스템.
  5. 기억 데이터의 1비트 또는 복수 비트마다 검색 대상으로부터 제외할지 안할지를 유효 상태, 무효 상태에 의해 설정 가능한 마스크 정보를 해당 기억 데이터의 1워드 또는 복수 워드마다 가지고,
    우선순위를 가지는 k개(k는 2이상의 정수)의 검색 영역으로부터 구성되는 검색 데이터를 입력으로 하고,
    1워드마다 상기 마스크 정보가 마스크 유효 상태인 경우에 대응하는 해당 기억 데이터의 1비트 또는 복수 비트를 검색 대상에서 제외하고, 입력된 검색 데이터와 일치하는 워드를 선택하는 1차 검색을 실행하는 1차 검색 수단과,
    1차 검색의 종료 후에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제1 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제1 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제1의 중간 데이터로서 출력하는 제1의 중간 데이터 생성 수단과,
    제(i-1)의 2차 검색 종료 후(i는 2이상 k이하의 정수)에 선택되어 있는 워드가 저장하고 있는 기억 데이터에 있어서의 제i 우선순위의 검색 영역에 대응하는 영역 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제i 우선순위의 검색 영역에 대응하는 영역의 기억 데이터의 값을 제i의 중간 데이터로서 출력하는 제2 내지 제k의 중간 데이터 생성 수단으로부터 구성되는 1차 연상 메모리를 복수개 가지는 연상 메모리 시스템에 있어서,
    상기 복수개의 제j의 중간 데이터(j는 1이상 k이하의 정수) 중에서, 대응하는 제(j-1)의 검출 신호가 유효 상태의 해당 제j의 중간 데이터만을 선택하는 제j의 무효화 수단과,
    제j의 무효화 수단이 선택한 복수의 제j의 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 가장 적은 제j의 중간 데이터를 출력하고 있는 1차 연상 메모리에 대응하는 제j의 검출 신호에만 유효 상태를 출력하는 제1 내지 제k의 중간 데이터 판정 수단과,
    1차 검색 개시 전에 모든 제0의 검출 신호를 유효 상태로 하는 초기화 수단과,
    상기 복수개의 1차 검색 수단에 저장되어 있는 제j의 검색 영역에 대응하는 영역의 기억 데이터의 값을 저장하고, 대응하는 1차 연상 메모리가 출력하는 상기 제j의 중간 데이터와 일치하는 기억 데이터의 값을 선택하는 제j의 2차 검색을 실행하는 복수의 제1 내지 제k의 2차 검색 수단과,
    각 1차 연상 메모리에 대응하는 제k의 검출 신호가, 무효 상태인 경우에는 대응하는 일치 신호에 모두 무효 상태를 출력하고, 유효 상태인 경우에는 제k의 2차 검색 종료 후에 선택되어 있는 기억 데이터의 값에 대응하는 상기 일치 신호에 유효 상태를 출력하는 일치 신호 출력 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  6. 청구항 5에 있어서, 상기 제1 내지 제k의 2차 검색 수단에 있어서,
    해당 제1 내지 제k의 중간 데이터 중의 복수로부터 하나를 선택하는 선택 수단과, 2차 검색의 대상으로 하는 검색 영역을 선택하는 제어 수단을 가지고,
    각 1차 연상 메모리에 대응하는 상기 검출 신호가 검색 개시로부터 유효 상태를 유지하고 있는지 아닌지를 기억하는 하나 또는 복수의 기억 수단을 가지는 것에 의해,
    상기 2차 검색 수단, 상기 무효화 수단 및 상기 중간 데이터 판정 수단의 각각 제1 내지 제k 중의 일부 또는 전부를 공유하는 것을 특징으로 하는 연상 메모리 시스템.
  7. 청구항 2 또는 청구항 5에 있어서, 상기 중간 데이터 판정 수단은,
    입력된 상기 중간 데이터 중에서, 기억 데이터의 무효 상태의 비트가 최소인 중간 데이터를 선택하고, 최적화 중간 데이터로서 출력하는 중간 데이터 연산 수단과,
    상기 최적화 중간 데이터와 일치하는 상기 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 상기 검출 신호에만 유효 상태를 출력하는 중간 데이터 비교 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  8. 청구항 1, 청구항 3 또는 청구항 7에 있어서, 상기 중간 데이터 연산 수단은 상기 복수의 중간 데이터의 동일 비트 위치끼리를 기억 데이터의 유효 상태를 진으로 논리합연산을 하는 것으로써 구성되는 것을 특징으로 하는 연상 메모리 시스템.
  9. 청구항 1, 청구항 3 또는 청구항 7에 있어서, 상기 중간 데이터 연산 수단은 기억 데이터의 유효 상태를 진으로 하는 2진수 표기의 수치로 간주했을 때에 상기 복수의 중간 데이터 중에서 최대치를 선택하는 것을 특징으로 하는 연상 메모리 시스템.
  10. 청구항 1, 청구항 3 또는 청구항 7에 있어서, 상기 중간 데이터 연산 수단은,
    대응하는 상기 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수하는 복수의 무효 상태 계수 수단과,
    상기 복수의 무효 상태 계수 수단의 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
    상기 최소치에 대응하는 해당 중간 데이터를 선택하여 상기 최적화 중간 데이터로서 출력하는 선택 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  11. 청구항 1 또는 청구항 3에 있어서, 상기 중간 데이터 연산 수단은 상기 복수개의 1차 연상 메모리에 있어서의, 상기 중간 데이터의 출력 단자와 상기 최적화 중간 데이터의 입력 단자를 공용하기 위해서, 상기 중간 데이터끼리의 기억 데이터의 유효 상태를 진으로 하는 결선 논리합회로에 의해 구성하는 것을 특징으로 하는 연상 메모리 시스템.
  12. 청구항 2 또는 청구항 5에 있어서, 상기 중간 데이터 판정 수단은,
    상기 1차 연상 메모리가 출력하는 상기 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수하는 복수의 무효 상태 계수 수단과,
    상기 복수의 무효 상태 계수 수단이 출력하는 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
    상기 최소치에 대응하는 해당 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 최소치 비교 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  13. 청구항 5에 있어서, 상기 제j의 무효화 수단은 무효 상태가 입력되어 있는 제j의 검출 신호에 대응하는 제j의 중간 데이터의 전 비트를, 모두 기억 데이터의 무효 상태로 변경하는 논리곱수단에 의해 구성되는 것을 특징으로 하는 연상 메모리 시스템.
  14. 청구항 5에 있어서, 상기 제j의 무효화 수단 및 상기 제j의 중간 데이터 판정 수단은,
    상기 1차 연상 메모리가 출력하는 상기 제j의 중간 데이터 중에서 기억 데이터의 무효 상태의 비트수를 계수하는 복수의 무효 상태 계수 수단과,
    무효 상태가 입력되어 있는 상기 검출 신호에 대응하는 무효 상태 계수 수단의 계수 결과를 상기 제j의 중간 데이터의 비트수와 같은 수 또는 비트수보다 큰수로 변경하는 수단과,
    상기 복수의 무효 상태 계수 수단이 출력하는 상기 계수 결과 중에서 최소치를 연산하는 최소치 연산 수단과,
    상기 최소치에 대응하는 중간 데이터를 출력하고 있는 상기 1차 연상 메모리에 대응하는 검출 신호에만 유효 상태를 출력하는 최소치 비교 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  15. 청구항 10, 청구항 12 또는 청구항 14에 있어서, 상기 무효 상태 계수 수단은 기억 데이터의 무효 상태의 비트수를 상기 중간 데이터 일측의 비트 위치로부터 타측에 향하여 최초의 기억 데이터의 유효 상태의 비트가 나타날 때까지 계수하는 것을 특징으로 하는 연상 메모리 시스템.
  16. 청구항 10, 청구항 12 또는 청구항 14에 있어서, 상기 무효 상태 계수 수단은 대응하는 1차 연상 메모리에 내장되는 것을 특징으로 하는 연상 메모리 시스템.
  17. 청구항 1, 청구항 3 또는 청구항 7에 있어서, 상기 중간 데이터 연산 수단은 파이프라인 처리를 실행 가능으로 하는 기억 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  18. 청구항 2 또는 청구항 5에 있어서, 상기 중간 데이터 판정 수단은, 해당 중간 데이터 판정 수단이 검출 신호를 출력하는 타이밍을 병행하여 실행하고 있는 2차 검색의 종료와 동기화시키기 위한 하나 또는 복수의 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  19. 청구항 1 내지 청구항 18 중 어느 한 항에 있어서, 상기 1차 검색 수단에 있어서, 상기 기억 데이터를 저장하는 수단과, 상기 2차 검색 수단에 있어서의 해당 기억 데이터의 값을 저장하는 수단을 공용하는 것을 특징으로 하는 연상 메모리 시스템.
  20. 청구항 1 내지 청구항 19 중 어느 한 항에 있어서, 상기 연상 메모리 시스템에 있어서, 상기 1차 연상 메모리마다 대응하는 상기 일치 신호에 유효 상태의 신호가 포함되는지 아닌지를 검출하는 검출 수단을 가지고, 또한 상기 일치 신호끼리를 논리합연산 하는 논리합수단과, 상기 논리합수단의 출력을 어드레스 신호의 하나의 영역으로서 부호화하는 제1의 부호화 수단과, 상기 검출 수단의 출력을 어드레스 신호의 다른 영역으로서 부호화하는 제2의 부호화 수단을 가지는 것을 특징으로 하는 연상 메모리 시스템.
  21. 청구항 1 내지 청구항 19 중 어느 한 항에 있어서, 상기 연상 메모리 시스템에 있어서, 상기 1차 연상 메모리마다 대응하는 상기 일치 신호에 유효 상태의 신호가 포함되는지 아닌지를 검출하는 검출 수단과, 해당 일치 신호를 어드레스 신호의 하나의 영역으로서 부호화하는 제1의 부호화 수단을 가지고, 상기 검출 수단의 출력을 해당 어드레스 신호의 다른 영역으로서 부호화하는 제2의 부호화 수단과, 상기 각 1차 연상 메모리에 대응하는 상기 제1의 부호화 수단 중에서 상기 제2의 부호화 수단의 연산 결과에 대응하여 상기 제1의 부호화 수단의 출력 신호를 선택하는 것을 특징으로 하는 연상 메모리 시스템.
  22. 청구항 21에 있어서, 상기 연상 메모리 시스템에 있어서, 상기 검출 수단과 상기 제1의 부호화 수단을 대응하는 1차 연상 메모리에 내장하는 것을 특징으로 하는 연상 메모리 시스템.
  23. 청구항 1 내지 청구항 22 중 어느 한 항에 기재된 연상 메모리 시스템을 이용하여 하나 또는 복수의 네트워크 어드레스의 검색을 행하는 것을 특징으로 하는 네트워크 기기.
  24. 청구항 23에 기재된 상기 네트워크 기기를 통하여 네트워크에 접속된 기기 사이에 데이터 통신을 행하는 것을 특징으로 하는 네트워크 시스템.
KR20037016727A 2001-07-24 2001-07-24 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템 KR100542467B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2001/006382 WO2003010774A1 (fr) 2001-07-24 2001-07-24 Systeme de memoire associative, dispositif reseau et systeme reseau

Publications (2)

Publication Number Publication Date
KR20040016892A true KR20040016892A (ko) 2004-02-25
KR100542467B1 KR100542467B1 (ko) 2006-01-11

Family

ID=11737580

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20037016727A KR100542467B1 (ko) 2001-07-24 2001-07-24 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템

Country Status (7)

Country Link
US (1) US7200712B2 (ko)
EP (1) EP1426973A1 (ko)
JP (1) JP3845845B2 (ko)
KR (1) KR100542467B1 (ko)
CN (1) CN1529889A (ko)
TW (1) TWI263420B (ko)
WO (1) WO2003010774A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1414183B1 (en) * 2001-08-01 2012-11-14 Panasonic Corporation Encrypted data delivery system
EP1453058A4 (en) * 2001-12-10 2006-02-01 Terminus Technology Ltd ASSOCIATIVE MEMORY AND POLLUTION PROCESSES AND ROUTER AND NETWORK SYSTEM
US20030220920A1 (en) * 2002-05-24 2003-11-27 Mentor Graphics Corporation Matching database fields in an electronic design automation environment
US7392229B2 (en) * 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
US8065249B1 (en) 2006-10-13 2011-11-22 Harris Curtis L GPSTP with enhanced aggregation functionality
KR101357162B1 (ko) * 2007-03-30 2014-02-04 삼성전자주식회사 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템
US8667230B1 (en) 2010-10-19 2014-03-04 Curtis L. Harris Recognition and recall memory
JP5741421B2 (ja) * 2011-12-19 2015-07-01 富士通株式会社 検索装置及び検索キー再配置方法
FR3065826B1 (fr) * 2017-04-28 2024-03-15 Patrick Pirim Procede et dispositif associe automatises aptes a memoriser, rappeler et, de maniere non volatile des associations de messages versus labels et vice versa, avec un maximum de vraisemblance
CN110989475B (zh) * 2019-12-30 2021-02-09 东莞市李群自动化技术有限公司 分布式系统中编码器位置的处理方法、控制器及系统
CN111490770A (zh) * 2020-04-15 2020-08-04 联合华芯电子有限公司 多进制符号逻辑与运算的实现电路及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920886A (en) * 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs
JPH10275479A (ja) * 1997-03-31 1998-10-13 Kawasaki Steel Corp 連想メモリおよびネットワークフレーム中継器
JP3191737B2 (ja) * 1997-08-29 2001-07-23 日本電気株式会社 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
US6289414B1 (en) * 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
US6539455B1 (en) * 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6574702B2 (en) * 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
JP3593920B2 (ja) * 1999-05-10 2004-11-24 日本電気株式会社 連続検索動作可能な最短マスク出力機能付連想メモリ
EP1250775A2 (en) * 1999-12-10 2002-10-23 Mosaid Technologies Incorporated Method and apparatus for longest match address lookup
US6633953B2 (en) * 2000-02-08 2003-10-14 Hywire Ltd. Range content-addressable memory
US6606681B1 (en) * 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)

Also Published As

Publication number Publication date
KR100542467B1 (ko) 2006-01-11
EP1426973A1 (en) 2004-06-09
TWI263420B (en) 2006-10-01
JPWO2003010774A1 (ja) 2004-11-18
US7200712B2 (en) 2007-04-03
US20040250013A1 (en) 2004-12-09
CN1529889A (zh) 2004-09-15
JP3845845B2 (ja) 2006-11-15
WO2003010774A1 (fr) 2003-02-06

Similar Documents

Publication Publication Date Title
US7334093B2 (en) Block programmable priority encoder in a CAM
KR100542467B1 (ko) 연상 메모리 시스템 및 네트워크 기기 및 네트워크 시스템
US5893137A (en) Apparatus and method for implementing a content addressable memory circuit with two stage matching
US7792812B1 (en) Search engine devices that support high speed parallel decoding of digital search tries
US8190943B2 (en) Systolic merge sorter
JPS61107597A (ja) ブロツク連想メモリ
US10891337B2 (en) Content addressable memory and semiconductor device
US4095283A (en) First in-first out memory array containing special bits for replacement addressing
US6954823B1 (en) Search engine device and method for generating output search responses from multiple input search responses
JP3630057B2 (ja) 検索用データ構造構築方法、その装置、及び機械可読プログラム記録媒体
KR100666241B1 (ko) 연상 메모리와 그 검색 방법 및 네트워크 기기 및네트워크 시스템
JP3691018B2 (ja) 最長一致検索回路および方法およびプログラムおよび記録媒体
US8874837B2 (en) Embedded memory and dedicated processor structure within an integrated circuit
US7933885B1 (en) Longest matching prefix search engine with hierarchical decoders
JPH0822446A (ja) ニューラルネットワーク回路
US7152141B2 (en) Obtaining search results for content addressable memory
US11720492B1 (en) Algorithmic TCAM with compressed key encoding
EP1290542A2 (en) Determination of a minimum or maximum value in a set of data
JP2000030469A (ja) 連想メモリセル及び連想メモリ
US4685128A (en) Method and network for transmitting addressed signal samples from any network input to an addressed network output
US20200356567A1 (en) Search circuit
WO2003050820A1 (fr) Memoire associative et son procede de recherche, routeur et systeme reseau
JPH10222535A (ja) データ検索回路
JP3754043B2 (ja) データ検索装置
JPWO2005013566A1 (ja) データ検索方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
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: 8

FPAY Annual fee payment

Payment date: 20131223

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee