KR20030034748A - 멀티 연관 기억장치의 추가/삭제방법 - Google Patents
멀티 연관 기억장치의 추가/삭제방법 Download PDFInfo
- Publication number
- KR20030034748A KR20030034748A KR1020010066470A KR20010066470A KR20030034748A KR 20030034748 A KR20030034748 A KR 20030034748A KR 1020010066470 A KR1020010066470 A KR 1020010066470A KR 20010066470 A KR20010066470 A KR 20010066470A KR 20030034748 A KR20030034748 A KR 20030034748A
- Authority
- KR
- South Korea
- Prior art keywords
- index
- cam
- entry
- command
- add
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 멀티 연관 기억장치에 등록되어 있는 엔트리(entry)들을 쉽게 관리하는 방법에 관한 것으로, 멀티 연관 기억장치에서 관리되고 있는 엔트리들을 하나의 메모리 테이블로서 관리하도록 하고, 소정 엔트리의 추가/삭제 등의 명령에 의해 매치 기능을 수행함에 있어 복수의 CAM들 중 하나의 CAM이 메모리 테이블을 이용한 매치 기능을 수행하도록 하는 방법을 구현하였다.
Description
본 발명은 멀티 연관 기억장치의 관리방법에 관한 것으로, 특히 멀티 연관 기억장치에 등록되어 있는 엔트리(entry)들을 쉽게 관리하는 방법에 관한 것이다.
통상적으로 멀티 연관 기억장치(Multi-Content Addressed Memory, 이하 "멀티 CAM"이라 칭함)는 복수의 기억매체인 CAM들로 이루어지며, 상기 CAM들은 기억장치의 주소에 의해서가 아니라 기억된 내용이나 데이터 값에 의해서 주소가 지정되는 연관(또는 연상) 기억장치를 의미한다. 한편, 상기 각 CAM들은 하나의 제어포트(control port)와 매치 포트(match port)를 가진다.
도 1은 상기 멀티 CAM의 통상적인 구성을 보이고 있는 도면으로서, 4개의 CAM들(CAM0 내지 CAM3)로 이루어진 예를 보이고 있다.
상기 도 1을 참조하면, 상기 멀티 CAM을 구성하는 각 CAM들(CAM0 내지 CAM3)은 앞에서도 밝힌 바와 같이 하나의 제어포트와 매치 포트들 가진다. 상기 멀티 CAM은 상기 제어포트를 통해 추가(add)/삭제(delete)/매치(match) 명령을 수행할 수 있으며, 상시 매치포트들 통해서는 빠른 매치 명령을 수행할 수 있다. 이때, 상기 제어포트는 상기 각 CAM들(CAM0 내지 CAM3)에 있어 독립적인 어드레스를 사용하며, 상기 매치포트는 상기 각 CAM들(CAM0 내지 CAM3)에 있어 동일한 어드레스를 사용한다.
상기 도 1에서 일 예로서 보이고 있는 바와 같이 4개의 CAM들을 사용할 시 동일한 엔트리(entry)가 2개 이상의 CAM들에 존재하여서는 안 된다. 따라서, 추가 명령이 입력되면
해당 엔트리의 존재 여부를 모든 CAM들의 매치 기능을 통해 확인한 후 상기 추가 명령을 수행하여야 한다. 즉, 제어포트를 통해 추가 명령이 입력되면 멀티 CAM을 구성하는 복수의 CAM들은 순차적으로 자신이 관리하는 인덱스들을 검사하여 해당하는 인덱스가 존재하는 지를 판단한다. 다시 말해, 상기 추가 명령이 입력되면 상기 멀티 CAM을 구성하는 복수의 CAM들 중 최초 CAM인 CAM0이 자신이 관리하는 인덱스들 중 상기 추가 명령을 수행할 인덱스가 존재하는 지를 검사한다. 상기 검사에 의해 해당 인덱스가 존재하지 않으면 다음 CAM인 CAM1이 해당 인덱스의 존재 여부를 검사하며, 그 후에는 CAM2가 해당 인덱스의 존재 여부를 검사하고, 마지막으로 CAM3에서의 검사에서도 해당 인덱스가 존재하지 않으면 가용한 CAM을 선택하여 해당 인덱스를 추가하여 관리하도록 한다.
상기 추가 명령에 의해 상술한 바와 같이 동작함을 프로그래밍 언어로서 표현하면 하기 <표 1>과 같이 나타낼 수 있다.
start add commandmatch CAM1 with index which we'll useif existupdate entry in CAM1; exit;match CAM2 with index which we'll useif existupdate entry in CAM2; exit;match CAM3 with index which we'll useif existupdate entry in CAM3; exit;match CAM4 with index which we'll useif existupdate entry in CAM4; exit;find available CAM#add entry in CAM#end add command |
다른 예로서 삭제 명령이 상기 제어포트를 통해 제공되는 경우에 있어서의 상기 멀티 CAM의 동작을 살펴보면 다음과 같다.
제어포트를 통해 삭제 명령이 입력되면 멀티 CAM을 구성하는 복수의 CAM들은 순차적으로 자신이 관리하는 인덱스들을 검사하여 해당하는 인덱스가 존재하는 지를 판단한다. 다시 말해, 상기 삭제 명령이 입력되면 상기 멀티 CAM을 구성하는 복수의 CAM들 중 최초 CAM인 CAM0이 자신이 관리하는 인덱스들 중 상기 삭제 명령을 수행할 인덱스가 존재하는 지를 검사하고, 존재할 시 해당 인덱스의 엔트리를 삭제한다. 하지만, 상기 CAM0에 존재하지 않으면 다음 CAM인 CAM1이 해당 인덱스의 존재 여부를 검사하며, 상기 검사에 의해 해당 인덱스가 존재할 시 해당 엔트리를 삭제한다. 상기 CAM1에도 해당 인덱스가 존재하지 않으면 다음 CAM인 CAM2에서 해당 인덱스의 존재를 검사한 후 해당 엔트리를 삭재한다. 하지만, 상기 CAM2에서도 해당 인덱스가 존재하지 않으면 마지막 CAM인 CAM3에서 해당 인덱스의 존재 여부를 검사한 후 해당 엔트리를 삭제한다. 만약, 상기 모든 CAM들에 해당 인덱스가 존재하지 않으면 상기 삭제 명령의 수행을 종료한다.
상기 삭제 명령에 의해 상술한 바와 같이 동작함을 프로그래밍 언어로서 표현하면 하기 <표 2>과 같이 나타낼 수 있다.
start delete commandmatch CAM1 with index which we'll deleteif existdelete entry in CAM1; exit;match CAM2 with index which we'll deleteif existdelete entry in CAM2; exit;match CAM3 with index which we'll deleteif existdelete entry in CAM3; exit;match CAM4 with index which we'll deleteif existdelete entry in CAM4; exit;end delete command |
통상적으로 멀티 CAM을 사용하는 이유는 메모리 절약과 빠른 엔트리 추가/삭제/매치 기능을 수행하기 위해서 이다. 하지만, 전술한 바와 같이 종래 멀티 CAM에서는 제어 명령에 의해 하나의 엔트리를 추가/삭제하기 위해서는 최대 상기 멀티 CAM을 구성하는 CAM들의 수만큼의 매치 기능을 수행하여야 한다. 예컨대, 상기 도 1의 구성을 가지는 멀티 CAM의 경우에는 최대 4번의 매치 기능을 수행하여야 한다. 따라서, 해당 엔트리가 어느 CAM에 존재하느냐에 의해 명령 수행 시간이 달라지게 된다. 이는 소프트웨어를 구현할 시 지연 등의 문제를 야기할 수 있다.
따라서, 상기한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은 제어 명령에 따른 빠른 매치 기능을 수행하도록 하는 방법을 제공함에 있다.
본 발명의 다른 목적은 한번의 매치 기능 수행으로 해당 엔트리가 존재하는 연관 기억장치를 찾는 방법을 제공함에 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명은 하나의 제어포트와 하나의 매치포트를 가지는 복수의 연관 기억장치들을 구비하고, 상기 복수의 연관 기억장치들 각각이 소정 엔트리들을 관리하는 멀티 연관 기억장치에서 상기 엔트리들을 관리하는 방법에 있어서, 상기 제어포트를 통해 추가/삭제 명령이 입력되면 상기 복수의 연관 기억장치들 중 임의의 연관 기억장치가 상기 메모리 테이블을 통해 상기 추가/삭제 명령을 수행할 인덱스가 존재하는 지를 판단하는 과정과, 상기 판단하는 과정에서 상기 추가/삭제 명령을 수행할 인덱스가 존재한다고 판단되면 상기 인덱스에 대응하여 TDRL 메모리 테이블에 등록되어 있는 연관 기억장치의 인덱스를억세스하는 과정과, 상기 억세스한 연관 기억장치의 인덱스에 대응하는 연관 기억장치에 의해 상기 추가/삭제 명령을 수행하는 과정을 포함함을 특징으로 한다.
도 1은 통상적인 멀티 연관 기억장치의 구성을 보이고 있는 도면.
도 2는 본 발명의 실시 예에 따른 멀티 연관 기억장치에 엔트리 추가를 위한 제어 흐름을 보이고 있는 도면.
도 3은 본 발명의 실시 예에 따른 멀티 연관 기억장치의 엔트리 삭제를 위한 제어 흐름을 보이고 있는 도면.
도 4는 본 발명의 실시 예에 따라 멀리 연관 기억장치에 저장된 엔트리를 관리하는 테이블을 보이고 있는 도면.
이하 본 발명의 실시를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
우선, 후술될 본 발명의 실시 예는 소정 엔트리의 추가/삭제 등의 명령에 의해 매치 기능을 수행함에 있어 복수의 CAM들 중 하나의 CAM에 대한 매치 기능을 수행함으로서 상기 명령을 수행할 엔트리가 위치하는 CAM을 찾을 수 있는 방법에 대해 설명할 것이다.
이를 구현하기 위해 상기 도 1에서 보이고 있는 CAM들 각각은 엔트리들의 관리를 위해 64비트 길이를 가지는 메모리 테이블을 가진다. 상기 메모리 테이블은 도 4에서 그 예를 보이고 있다. 상기 도 3에서 보이고 있는 바와 같이 엔트리를 관리하기 위해 64비트의 길이를 가지는 메모리 테이블은 크게 인덱스 영역과 데이터 영역으로 나누어진다. 본 발명의 실시 예에 따른 메모리 테이블의 구조는 32비트의 인덱스 영역과 30비트의 데이터 영역에 추가하여 CAM 번호를 저장하는 2비트의 CAM 인덱스 영역이 존재한다. 상기 CAM 인덱스 영역은 종래 데이터 영역을 구성하는 32비트 중 2비트를 할당한 것이다. 상기 CAM 인덱스 영역에는 추가/삭제 명령을 수행할 해당 엔트리에 대응하는 CAM을 지정하는 CAM 인덱스 정보가 저장된다. 상기 도 4에서 보이고 있는 메모리 테이블 구성은 멀티 CAM을 구성하는 모든 CAM들에 공통으로 적용된다. 따라서, 추가/삭제 명령에 대응하여 상기 멀티 CAM을 구성하는 CAM들 중 어느 하나의 CAM을 통한 매치 기능을 수행하더라도 해당 엔트리의 존재 여부와, 존재하는 경우에는 어느 CAM에 존재하는 지를 알 수 있다.
먼저, 추가 명령이 제공될 시 본 발명의 실시 예에 따른 동작을 상세히 설명하면 다음과 같다.
도 2는 본 발명의 실시 에에 따른 멀티 CAM에 엔트리 추가를 위한 제어 흐름을 보이고 있는 도면이다.
상기 도 2를 참조하면, 멀티 CAM을 구성하는 복수의 CAM들 중 임의의 CAM은 210단계에서 제어 포트를 통해 추가 명령이 제공되는 지를 감시한다. 만약, 상기 210단계에서 추가 명령의 제공이 감지되면 212단계로 진행하여 해당 엔트리에 대응한 인덱스의 존재 여부를 확인한다. 상기 인덱스 존재 여부는 도 4에서 보이고 있는 메모리 테이블을 구성하는 인덱스 영역에 원하는 인덱스가 존재하는 지를 검사함으로서 확인할 수 있다. 상기 확인 과정이 완료되면 214단계로 진행하여 상기 확인한 결과에 의해 해당 인덱스의 존재 여부를 판단한다. 상기 판단에 의해 해당 인덱스가 이미 상기 메모리 테이블에 등록되어 관리되고 있다면 216단계로 진행하며, 그렇지 않고 해당 인덱스가 존재하지 않으면 218단계로 진행한다. 상기 216단계로 진행하면 상기 메모리 테이블에 상기 인덱스에 대응하여 저장된 CAM 인덱스를 검사하고, 상기 검사된 CAM 인덱스를 가지는 CAM에서 기존에 존재하는 엔트리를 새로운 엔트리로 갱신한다. 하지만, 상기 218단계로 진행하면 상기 멀티 CAM을 구성하는 복수의 CAM들 중 가용한 CAM을 찾고, 상기 찾은 CAM에 해당 엔트리를 새로이 추가하여 관리하도록 한다.
상기 추가 명령에 의해 상술한 바와 같이 동작하는 본 발명의 실시 예를 프로그래밍 언어로서 표현하면 하기 <표 3>과 같이 나타낼 수 있다.
#add commandstart add commandmatch index which we'll useif existget CAM# from matched dataupdate entry in found CAM#elsefind available CAM#add entry in CAM#end add command |
다음으로, 삭제 명령이 상기 제어포트를 통해 제공되는 경우에 있어서의 본 발명의 실시 예에 따른 상기 멀티 CAM의 동작을 살펴보면 다음과 같다.
도 3은 본 발명의 실시 예에 따른 멀티 CAM의 엔트리 삭제를 위한 제어 흐름을 보이고 있는 도면이다.
상기 도 3을 참조하면, 멀티 CAM을 구성하는 복수의 CAM들 중 임의의 CAM은 310단계에서 제어 포트를 통해 삭제 명령이 제공되는 지를 감시한다. 만약, 상기 310단계에서 삭제 명령의 제공이 감지되면 312단계로 진행하여 해당 엔트리에 대응한 인덱스의 존재 여부를 확인한다. 상기 인덱스 존재 여부는 도 4에서 보이고 있는 메모리 테이블을 구성하는 인덱스 영역에 원하는 인덱스가 존재하는 지를 검사함으로서 확인할 수 있다. 상기 확인 과정이 완료되면 314단계로 진행하여 상기 확인한 결과에 의해 해당 인덱스의 존재 여부를 판단한다. 상기 판단에 의해 해당 인덱스가 이미 상기 메모리 테이블에 등록되어 관리되고 있다면 316단계로 진행하며,그렇지 않고 해당 인덱스가 존재하지 않으면 상기 삭제 명령을 무시하고 종료한다. 상기 316단계로 진행하면 상기 메모리 테이블에 상기 인덱스에 대응하여 저장된 CAM 인덱스를 검사하고, 상기 검사된 CAM 인덱스를 가지는 CAM에서 기존에 존재하는 해당 엔트리를 삭제한 후 본 발명의 실시 예에 따른 동작을 종료한다.
상기 삭제 명령에 의해 상술한 바와 같이 동작하는 본 발명의 실시 예를 프로그래밍 언어로서 표현하면 하기 <표 4>와 같이 나타낼 수 있다.
#delete commandstart delete commandmatch index which we'll deleteif existget CAM# from matched datadelete entry in found CAM#end delete command |
전술한 바와 같이 본 발명은 한번의 매치 기능 수행으로 해당 제어 명령을 수행할 수 있음에 따라 어떠한 명령에 대해서도 동일한 수행시간을 가능케 함으로서 신속한 명령 처리뿐만 아니라 안정적인 동작을 제공할 수 있는 효과가 있다. 또한, 보다 간결한 동작으로서 명령들을 수행할 수 있다는 장점을 가진다.
Claims (2)
- 하나의 제어포트와 하나의 매치포트를 가지는 복수의 연관 기억장치들을 구비하고, 상기 복수의 연관 기억장치들 각각이 소정 엔트리들을 관리하는 멀티 연관 기억장치에서 상기 엔트리들을 관리하는 방법에 있어서,상기 제어포트를 통해 추가/삭제 명령이 입력되면 상기 복수의 연관 기억장치들 중 임의의 연관 기억장치가 상기 메모리 테이블을 통해 상기 추가/삭제 명령을 수행할 인덱스가 존재하는 지를 판단하는 과정과,상기 판단하는 과정에서 상기 추가/삭제 명령을 수행할 인덱스가 존재한다고 판단되면 상기 인덱스에 대응하여 TDRL 메모리 테이블에 등록되어 있는 연관 기억장치의 인덱스를 억세스하는 과정과,상기 억세스한 연관 기억장치의 인덱스에 대응하는 연관 기억장치에 의해 상기 추가/삭제 명령을 수행하는 과정을 포함함을 특징으로 하는 상기 방법.
- 제1항에 있어서,상기 메모리 테이블은 64비트로 구성되고, 상기 64비트는 상기 인덱스가 저장되는 32비트와 데이터를 저장하는 30비트 및 이에 대응하는 연관 기억장치의 인덱스를 저장하는 2비트로 이루어짐을 특징으로 하는 상기 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010066470A KR20030034748A (ko) | 2001-10-26 | 2001-10-26 | 멀티 연관 기억장치의 추가/삭제방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010066470A KR20030034748A (ko) | 2001-10-26 | 2001-10-26 | 멀티 연관 기억장치의 추가/삭제방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030034748A true KR20030034748A (ko) | 2003-05-09 |
Family
ID=29566639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010066470A KR20030034748A (ko) | 2001-10-26 | 2001-10-26 | 멀티 연관 기억장치의 추가/삭제방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20030034748A (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11260067A (ja) * | 1998-03-10 | 1999-09-24 | Toshiba Corp | 半導体記憶装置 |
WO2001004906A1 (en) * | 1999-07-12 | 2001-01-18 | Mosaid Technologies Incorporated | Circuit and method for multiple match detection in content addressable memories |
WO2001084555A1 (en) * | 2000-05-01 | 2001-11-08 | Mosaid Technologies Incorporated | Matchline sense circuit and method |
-
2001
- 2001-10-26 KR KR1020010066470A patent/KR20030034748A/ko not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11260067A (ja) * | 1998-03-10 | 1999-09-24 | Toshiba Corp | 半導体記憶装置 |
WO2001004906A1 (en) * | 1999-07-12 | 2001-01-18 | Mosaid Technologies Incorporated | Circuit and method for multiple match detection in content addressable memories |
WO2001084555A1 (en) * | 2000-05-01 | 2001-11-08 | Mosaid Technologies Incorporated | Matchline sense circuit and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6916751B2 (ja) | ハイブリッドメモリーモジュール及びその動作方法 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US20120173840A1 (en) | Sas expander connection routing techniques | |
US6772279B1 (en) | Method and apparatus for monitoring the status of CAM comparand registers using a free list and a busy list | |
US7284085B2 (en) | Managing configuration data in a flash configuration space in flash memory within a host interface port | |
US20090164738A1 (en) | Process Based Cache-Write Through For Protected Storage In Embedded Devices | |
US7975099B2 (en) | Data storage system including respective buffers for non-volatile memory and disc recording medium, and data access method thereof | |
US5206941A (en) | Fast store-through cache memory | |
EP2382635B1 (en) | Content assembly memory and method | |
US7272611B1 (en) | Apparatus and method for searching a n-branch data structure using information in entries | |
US10430353B2 (en) | Memory device performing near-data processing using a plurality of data processing engines that independently perform data processing operations, and system including the same | |
EP0533427A1 (en) | Computer memory control system | |
US8539135B2 (en) | Route lookup method for reducing overall connection latencies in SAS expanders | |
JP2005209206A (ja) | マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ | |
US20070005552A1 (en) | Methods and systems for reducing transient memory consumption in an object-oriented system | |
US11995313B2 (en) | Data storage device identifying tenants and operating method thereof | |
US20040205318A1 (en) | Remapping of data access requests | |
KR101828328B1 (ko) | 내장형 데이터베이스 시스템의 다중 데이터베이스 운용 장치 및 그 방법 | |
KR20030034748A (ko) | 멀티 연관 기억장치의 추가/삭제방법 | |
US20190179803A1 (en) | Apparatus and method for file sharing between applications | |
US5136702A (en) | Buffer storage control method and apparatus | |
US11086852B2 (en) | Hardware-assisted multi-table database with shared memory footprint | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
US20180012033A1 (en) | Method and apparatus of non-volatile memory system having capability of key-value store database | |
US20120324158A1 (en) | Content addressable memory (cam) device and method for updating data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |