KR100420959B1 - CAM lookup table management method based on LPM. - Google Patents

CAM lookup table management method based on LPM. Download PDF

Info

Publication number
KR100420959B1
KR100420959B1 KR10-2002-0034878A KR20020034878A KR100420959B1 KR 100420959 B1 KR100420959 B1 KR 100420959B1 KR 20020034878 A KR20020034878 A KR 20020034878A KR 100420959 B1 KR100420959 B1 KR 100420959B1
Authority
KR
South Korea
Prior art keywords
data
pointer
band
address
prefix
Prior art date
Application number
KR10-2002-0034878A
Other languages
Korean (ko)
Other versions
KR20030097486A (en
Inventor
오상윤
최병철
곽동용
김봉태
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2002-0034878A priority Critical patent/KR100420959B1/en
Publication of KR20030097486A publication Critical patent/KR20030097486A/en
Application granted granted Critical
Publication of KR100420959B1 publication Critical patent/KR100420959B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 컴퓨터 네트워크에서 라우팅(routing)을 수행하는 라우터(router)에 관한 것으로, 구체적으로는 특히 IP(Internet Protocol) 패킷을 읽어 IP 패킷의 목적지 주소(destination address)를 참조하여 출력포트를 찾는 IP 룩업 테이블(lookup table) 관리방법 및 관리장치에 관한 것이다. 상기 방법은 프리픽스의 길이가 같은 데이터 밴드별로 한 쌍의 포인터를 제공하는 단계와 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블에 데이터를 추가하는 경우, 추가할 데이터의 프리픽스 길이 초과의 프리픽스 길이를 갖는 데이터의 각 밴드에 대하여, 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위포인터가 기억하는 주소에 기록하고 추가할 데이터 밴드의 하위 포인터가 가리키는 공간에 추가할 데이터를 기록하는 단계를 포함한다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a router that performs routing in a computer network. Specifically, an IP that finds an output port by referring to a destination address of an IP packet by reading an Internet Protocol (IP) packet. A lookup table management method and management apparatus. The method includes providing a pair of pointers for each data band having the same length of prefix, and adding data to a content addressable memory (CAM) lookup table, the data having a prefix length greater than the prefix length of the data to be added. For each band of, recording data of an address stored by the upper pointer of each band in an address stored by a lower pointer of each band, and recording data to be added in a space indicated by a lower pointer of a data band to be added It includes.

본 발명은 추가되는 데이터의 프리픽스(prefix) 길이가 평균적으로 N/4보다 큰 경우에 컨텐트 주소지정가능 메모리(CAM) 테이블에 저장되어 있는 데이터의 이동횟수를 감소시키고 전체적으로 데이터 갱신 시간을 줄이는 효과가 있다.The present invention has the effect of reducing the number of movements of data stored in the content addressable memory (CAM) table and the overall data update time when the prefix length of the added data is larger than N / 4 on average. have.

Description

상위주소 공간으로부터 데이터를 추가하는 LPM 기반 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블 관리 방법{CAM lookup table management method based on LPM.}CAM lookup table management method based on LPM. LPM-based content addressable memory (CAM) lookup table that adds data from upper address space

본 발명은 컴퓨터 네트워크에서 라우팅(routing)을 수행하는 라우터(router)에 관한 것으로, 좀 더 구체적으로는 특히 IP(Internet Protocol) 패킷을 읽어 IP 패킷의 목적지 주소(destination address)를 참조하여 출력포트를 찾는 IP 룩업 테이블(lookup table) 관리방법에 관한 것이다.The present invention relates to a router that performs routing in a computer network. More specifically, an output port is referred to by reading an Internet Protocol (IP) packet and referring to a destination address of the IP packet. It relates to how to manage the lookup IP lookup table.

이때 목적지 주소(destination address)를 참조하여 다음 홉(hop)을 찾는 경우 IP 패킷의 목적지 주소(destination address)와 가장 긴 프리픽스(prefix)를 갖는 주소정보에서부터 일치하는 항목을 찾는 LPM(Longest Prefix Matching) 방법이 있는데, 이러한 LPM을 구현하는 데에는 여러 가지 방법이 있다.In this case, when a next hop is found by referring to a destination address, a longest prefix matching (LPM) that searches for a match from the address information having the longest prefix with the destination address of the IP packet. There are several ways to implement this LPM.

그중 한가지 방법은 낮은 주소로부터 높은 주소로 긴 프리픽스(prefix)를 갖는 데이터의 순으로 컨텐트 주소지정가능 메모리(CAM, Content Addressable Memory)를 사용하여 구현한다. 그리고, 길이 n의 데이터가 추가 될 때 길이 0의 프리픽스(prefix)를 갖는 항목부터 길이 n-1의 길이를 갖는 항목을 차례로 순서대로 높은 주소 방향으로 이동시킨 후 길이 n 의 프리픽스(prefix) 항목을 저장한다.One method is implemented using Content Addressable Memory (CAM) in order of data with long prefix from low address to high address. Then, when data of length n is added, items with a length 0 prefix are sequentially moved from the item having a length n-1 to a higher address direction in order, and then a prefix item of length n is moved. Save it.

그러나, 이 경우에는 평균적으로 길이가 N/4 보다 긴 프리픽스(prefix)를 갖는 항목을 추가하여야 할 경우에는 필요한 공간을 확보하기 위하여 N/4 회를 초과하는 이동을 하여야 한다는 문제점이 있어 이를 해결하여야 할 필요가 있다.However, in this case, if an item having a prefix longer than N / 4 is added on average, there is a problem that more than N / 4 moves must be made to secure the necessary space. Needs to be.

상기한 문제를 해결하기 위해 본 발명에서는 추가되는 데이터의 프리픽스(prefix) 길이가 평균적으로 N/4 보다 큰 경우에 빈 영역을 낮은 주소에 위치하게 하고, 낮은 주소 방향으로 데이터를 이동한 후 추가될 프리픽스(prefix) 길이를 갖는 영역에 추가되는 데이터를 기록하여 평균적으로 컨텐트 주소지정가능 메모리(CAM) 룩업 데이터의 이동횟수를 감소시켜 전체적으로 데이터 갱신 시간을 줄이는 방법을 제공하는 것을 목적으로 한다.In order to solve the above problem, in the present invention, when a prefix length of data to be added is larger than N / 4 on average, an empty area is located at a lower address, and data is added after moving to a lower address direction. It is an object of the present invention to provide a method of reducing data update time as a whole by recording data added to an area having a prefix length to reduce the number of shifts of content addressable memory (CAM) lookup data on average.

도 1은 종래 라우터(router)에서 수행되는 라우팅(routing)을 위한 포워딩 엔진(forwarding engine)의 블록도1 is a block diagram of a forwarding engine for routing performed in a conventional router.

도 2는 종래의 룩업 테이블의 데이터 저장 상태 도면.2 is a data storage state diagram of a conventional lookup table.

도 3은 종래의 프리픽스 길이 n의 데이터를 추가할 경우의 추가 방법 도면.3 is a diagram illustrating an additional method when adding data of a conventional prefix length n.

도 4는 본 발명의 프리픽스 길이 n의 데이터를 추가할 경우의 추가 방법 도면.4 is a diagram illustrating an additional method in the case of adding data of prefix length n of the present invention.

도 5는 본 발명의 포워딩 테이블 관리장치의 구성도.5 is a configuration diagram of a forwarding table management apparatus of the present invention.

도 6은 프리픽스 길이가 i인 데이터의 컨텐트 주소지정가능 메모리(CAM) 저장 상태 및 포인터 표시 도면.FIG. 6 is a representation of a content addressable memory (CAM) storage state and pointer of data with prefix length i. FIG.

도 7은 길이 0에서 32까지의 프리픽스의 데이터가 존재할 경우의 컨텐트 주소지정가능 메모리(CAM) 내의 저장 상태 도면.FIG. 7 is a storage state diagram in a content addressable memory (CAM) in the presence of data of length 0 to 32 prefix; FIG.

도 8은 본 발명의 컨텐트 주소지정가능 메모리(CAM) 테이블에 데이터를 추가하는 과정을 나타내는 흐름도면.FIG. 8 is a flow diagram illustrating the process of adding data to a Content Addressable Memory (CAM) table of the present invention. FIG.

도 9는 프리픽스 길이가 N/2-1인 데이터의 컨텐트 주소지정가능 메모리(CAM)내의 저장 상태 및 포인터 표시 도면.Fig. 9 is a diagram showing a storage state and a pointer in a content addressable memory (CAM) of data having a prefix length of N / 2-1;

도 10은 길이가 2 그리고 1인 프리픽스 데이터가 저장되어 있을 때 길이 0의 프리픽스 데이터가 추가되는 경우의 추가과정 도면.FIG. 10 is a diagram illustrating an additional process when prefix data of length 0 is added when prefix data of lengths 2 and 1 are stored. FIG.

상기한 목적을 이루기 위하여 본 발명에서는, 소정의 프리픽스 길이를 갖는 데이터가 저장된 데이터 밴드마다 상기 밴드에 포함된 데이터 중에서 주소가 가장 낮은 데이터의 다음 주소정보를 기억하고 있는 하위 포인터와, 프리픽스 길이가 같은 데이터 중에서 주소가 가장 높은 데이터의 주소정보를 기억하고 있는 상위 포인터를 제공하는 단계; 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블에 데이터를 추가하는 경우, 추가할 데이터의 프리픽스 길이를 초과하는 프리픽스 길이를 갖는 데이터의 각 밴드에 대하여, 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위포인터가 기억하는 주소에 기록하는 단계; 및 추가할 데이터의 프리픽스 길이와 동일한 프리픽스 길이를 갖는 데이터의 밴드에 대한 하위 포인터가 기억하는 주소에 추가할 데이터를 저장하는 단계를 포함하는 LPM(LongestPrefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM)의 룩업 테이블을 관리하는 방법을 제공한다.In order to achieve the above object, according to the present invention, a lower pointer that stores next address information of data having the lowest address among data included in the band for each data band in which data having a predetermined prefix length is stored, and the prefix length is the same. Providing an upper pointer storing address information of data having the highest address among the data; When data is added to the content addressable memory (CAM) lookup table, for each band of data having a prefix length exceeding the prefix length of the data to be added, the data of the address stored by the upper pointer of each band is stored. Recording at an address stored by the lower pointer of each band; And storing data to be added at an address stored by a lower pointer to a band of data having a prefix length equal to the prefix length of the data to be added, the content addressable memory (CAM) using Longest Prefix Matching (LPM). Provides a way to manage lookup tables in).

상기한 목적을 이루기 위하여 본 발명에서는, 프리픽스 길이가 긴 데이터를 낮은 주소부터 저장하는 룩업테이블을 포함하는 컨텐트 주소지정가능 메모리(CAM); 프리픽스 길이가 같은 데이터의 밴드마다 프리픽스 길이가 같은 데이터 중에서 주소가 가장 낮은 데이터의 다음 주소를 기억하는 하위포인터와, 프리픽스 길이가 같은 데이터 중에서 주소가 가장 높은 데이터의 주소를 기억하는 상위포인터를 포함하는 포인터 저장부; 및 컨텐트 주소지정가능 메모리(CAM)의 룩업테이블에 데이터를 추가할 경우, 추가할 데이터의 프리픽스 길이 초과의 프리픽스 길이를 가지는 데이터의 각 밴드에 대해서, 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위 포인터가 기억하는 주소에 기록하고, 추가할 데이터의 프리픽스 길이와 동일한 길이를 가지는 데이터의 밴드에 대한 하위 포인터가 기억하는 주소에 추가할 데이터를 기록하며, 상기 포인터 저장부에 포함된 상위 포인터와 하위 포인터가 기억하는 주소를 갱신하는 테이블 관리부를 포함하는 LPM을 사용하는 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블 관리장치를 제공한다.In order to achieve the above object, the present invention provides a content addressable memory (CAM) including a lookup table for storing data having a long prefix length from a low address; Each band of data having the same prefix length includes a lower pointer that stores the next address of the data having the lowest address among the data having the same prefix length, and a higher pointer which stores the address of the data having the highest address among the data having the same prefix length. Pointer storage; And data added to the lookup table of the content addressable memory (CAM), for each band of data having a prefix length greater than the prefix length of the data to be added; Is recorded at an address stored by the lower pointer of each band, data to be added to an address stored by a lower pointer to a band of data having the same length as the prefix length of the data to be added, and is stored in the pointer storage unit. A content addressable memory (CAM) lookup table management apparatus using an LPM including a table management unit for updating an address stored by an upper pointer and a lower pointer included therein is provided.

상기한 목적을 이루기 위하여 본 발명에서는, 상기의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In order to achieve the above object, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the above method on a computer.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 종래 라우터(router)에서 수행되는 라우팅(routing)을 위한 포워딩엔진(forwarding engine)의 블록도이다.1 is a block diagram of a forwarding engine for routing performed in a conventional router.

라우터의 포워딩 엔진(110)은 들어오는 IP 패킷(100)에서 목적지 주소(destination address)를 추출하고, 상기 목적지 주소(destination address)에 해당하는 다음 홉(hop)을 구하기 위하여 다음 홉(hop) 결정부(120)는 다음 홉(hop)에 관한 정보를 가지고 있는 포워딩 테이블(forwarding table)(130)을 참조하여 다음 홉(hop)을 구하고, IP 패킷을 다음 홉(hop)으로 전달한다.The forwarding engine 110 of the router extracts a destination address from the incoming IP packet 100 and a next hop determiner to obtain a next hop corresponding to the destination address. 120 obtains the next hop with reference to forwarding table 130 having information about the next hop, and forwards the IP packet to the next hop.

이때 목적지 주소(destination address)를 참조하여 다음 홉(hop)을 찾는 경우 IP 패킷의 목적지 주소(destination address)와 가장 긴 프리픽스(prefix)를 갖는 주소정보에서부터 일치하는 항목을 찾는 LPM(Longest Prefix Matching) 방법이 있는데, 이러한 LPM을 구현하는 데에는 여러 가지 방법이 있다.In this case, when a next hop is found by referring to a destination address, a longest prefix matching (LPM) that searches for a match from the address information having the longest prefix with the destination address of the IP packet. There are several ways to implement this LPM.

도 2는 종래의 룩업 테이블의 데이터 저장 상태 도면이다.2 is a data storage state diagram of a conventional lookup table.

기존의 방법은 도 2와 같이 낮은 주소로부터 높은 주소로 긴 프리픽스(prefix)를 갖는 데이터의 순으로 컨텐트 주소지정가능 메모리(CAM, Content Addressable Memory)를 사용하여 구현한다. 즉 맨 위에는 길이 N/2-1의 프리픽스(prefix)를 갖는 항목(210)이 위치하고 그 다음에는 길이 N/2-2의 프리픽스(prefix)를 갖는 항목(220)이 위치하게 된다. 이런 순서대로 높은 주소 방향으로 길이 1의 프리픽스(prefix)를 갖는 항목(230)이 위치하고, 길이 0의 프리픽스(prefix)를 갖는 항목(240)이 위치한다. 그리고 맨 아래에는 빈 영역이 존재한다.The conventional method is implemented using a content addressable memory (CAM) in order of data having a long prefix from a low address to a high address as shown in FIG. 2. In other words, an item 210 having a prefix of length N / 2-1 is located at the top, followed by an item 220 having a prefix of length N / 2-2. In this order, an item 230 having a length 1 prefix is located in the high address direction, and an item 240 having a length 0 prefix is located. And at the bottom there is an empty area.

도 3은 종래의 프리픽스 길이 n의 데이터를 추가할 경우의 추가 방법 도면이다.3 is a diagram illustrating an additional method in the case of adding data of a conventional prefix length n.

길이 n의 데이터가 추가 될 때 길이 0의 프리픽스(prefix)를 갖는 항목(310)부터 길이 n-1의 길이를 갖는 항목(320)을 차례로 순서대로 높은 주소 방향으로 이동시킨 후 길이 n 의 프리픽스(prefix) 항목(330)을 저장한다. 그러나, 평균적으로 길이가 N/4 보다 긴 프리픽스(prefix)를 갖는 항목을 추가하여야 할 경우에는 필요한 공간을 확보하기 위하여 N/4 회를 초과하는 이동을 하여야 한다.When data of length n is added, items 310 having a length 0 prefix are sequentially moved from an item 320 having a length n-1 to a high address direction in order, and then a prefix of length n prefix) stores the item 330. However, if you need to add an item with a prefix longer than N / 4 on average, you must make more than N / 4 moves to make room for the required space.

도 4는 본 발명의 프리픽스 길이 n의 데이터를 추가할 경우의 추가 방법 도면이다.4 is a diagram illustrating an additional method in the case of adding data having a prefix length n of the present invention.

즉, 길이 n의 데이터가 추가 될 때 길이 N/2-1의 프리픽스(prefix)를 갖는 항목(410)부터 길이 n-1의 길이를 갖는 항목(420)을 차례로 순서대로 낮은 주소 방향으로 이동시킨 후 길이 n 의 프리픽스(prefix) 항목(430)을 저장한다.That is, when data of length n is added, items 410 having a prefix of length N / 2-1 to items 420 having a length of length n-1 are sequentially moved in the lower address direction. After that, a prefix item 430 of length n is stored.

본 발명은 추가되는 항목의 프리픽스(prefix) 길이가 평균적으로 N/4 보다 큰 경우에 빈 영역(440)을 낮은 주소에 위치하게 하고 낮은 주소 방향으로 데이터를 이동한 후 추가될 프리픽스(prefix) 길이를 갖는 영역에 추가 데이터를 기록하여 평균적으로 컨텐트 주소지정가능 메모리(CAM) 룩업 데이터의 이동횟수를 감소시켜 전체적으로 데이터 갱신 시간을 줄이도록 한다.The present invention places the blank area 440 at a lower address when the prefix length of the added item is larger than N / 4 on average, and moves the data toward the lower address, and then adds the prefix length. By recording the additional data in the region with the average, the number of times of shifting the content addressable memory (CAM) lookup data is reduced, thereby reducing the data update time as a whole.

도 5는 본 발명의 포워딩 테이블 관리장치의 구성도이다.5 is a configuration diagram of a forwarding table management apparatus of the present invention.

본 발명의 포워딩 테이블 관리장치(500)는 N 개의 포인터를 저장하고 있는 포인터 저장부(510), 중앙처리부(CPU, Central Processing Unit)(520)와 인터페이스를 갖고 포인터와 컨텐트 주소지정가능 메모리(CAM) 제어부를 제어하는 테이블관리부(530), 테이블 관리부 및 포인터 저장부와 인터페이스를 갖고 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)를 제어하는 컨텐트 주소지정가능 메모리(CAM) 제어부(550)로 구성된다.The forwarding table management apparatus 500 of the present invention has an interface with a pointer storage unit 510 and a central processing unit (CPU) 520 that store N pointers, and has a pointer and a content addressable memory (CAM). A content addressable memory (CAM) control unit 550 having an interface with a table management unit 530, a table management unit, and a pointer storage unit that controls the control unit, and controlling the content addressable memory (CAM) table storage unit 540; It consists of.

테이블 관리부(530)는 중앙처리부(CPU)(520)로부터 데이터 추가 명령을 받아서 포인터 저장부(510)에 저장되어 있는 N 개의 포인터를 제어하고 컨텐트 주소지정가능 메모리(CAM) 제어부(550)를 구동하여 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)내의 컨텐트 주소지정가능 메모리(CAM) 테이블을 갱신한다.The table manager 530 receives the data addition command from the CPU 520, controls the N pointers stored in the pointer storage 510, and drives the content addressable memory (CAM) controller 550. To update the content addressable memory (CAM) table in the content addressable memory (CAM) table storage unit 540.

포인터 저장부(510)는 컨텐트 주소지정가능 메모리(CAM) 테이블의 위치 데이터를 갖는 포인터를 저장하고 있으며, 이 포인터는 프리픽스(prefix) 길이 0의 상위 포인터 UP(0), 하위 포인터 LP(0)의 두 쌍의 포인터로부터 프리픽스(prefix) 길이 N/2-1의 상위 포인터 UP(N/2-1), 하위 포인터 LP(N/2-1)의 두 쌍의 포인터까지의 N 개의 포인터이다. 그리고, N 개의 포인터 중 하위 포인터는 프리픽스(prefix) 길이가 같은 데이터 중 주소가 가장 낮은 데이터의 다음 데이터를 가리키고 상위 포인터는 프리픽스(prefix) 길이가 같은 데이터 중 주소가 가장 높은 데이터를 가리킨다.The pointer storage unit 510 stores a pointer having position data of a content addressable memory (CAM) table, which is an upper pointer UP (0) having a prefix length of 0 and a lower pointer LP (0). N pointers from two pairs of pointers to two pairs of pointers UP (N / 2-1) and lower pointers LP (N / 2-1) having a prefix length N / 2-1. The lower pointer among the N pointers indicates the next data of the data having the lowest address among the data having the same prefix length, and the upper pointer indicates the data having the highest address among the data having the same prefix length.

컨텐트 주소지정가능 메모리(CAM) 제어부(550)는 테이블 관리부(530)와 포인터 저장부(510)로부터 제어명령을 받아서 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)를 구동하여 데이터를 검색하고 읽고 쓰는 명령 등을 수행한다.The content addressable memory (CAM) control unit 550 retrieves data by driving the content addressable memory (CAM) table storage unit 540 by receiving a control command from the table manager 530 and the pointer storage unit 510. And read and write commands.

도 6은 프리픽스 길이가 i인 데이터의 컨텐트 주소지정가능 메모리(CAM) 저장 상태 및 포인터 표시 도면이다.FIG. 6 is a diagram showing the content addressable memory (CAM) storage status and pointer representation of data with prefix length i.

도 6의 (610)은 길이 i의 프리픽스(prefix)를 갖는 데이터의 밴드(band)이고, 이러한 데이터의 밴드에는 길이 i의 프리픽스(prefix)를 갖는 데이터들이 순서 없이 저장되며,(620)은 길이 i-1의 프리픽스(prefix)를 갖는 데이터의 밴드(band)이고, 이러한 데이터의 밴드에는 길이 i-1의 프리픽스(prefix)를 갖는 데이터들이 역시 순서 없이 저장된다.610 of FIG. 6 is a band of data having a prefix of length i, in which the data having a prefix of length i is stored out of order, and 620 is a length. A band of data with a prefix of i-1, in which the data with a prefix of length i-1 is also stored out of order.

길이 i의 프리픽스(prefix)를 갖는 데이터의 밴드(610)에 저장된 데이터들의 주소 영역 중에서 가장 낮은 주소의 다음 데이터를 하위 포인터인 LP(i)가 가리키고, 데이터의 밴드(610)에 저장된 데이터들의 주소 영역 중에서 가장 높은 주소의 데이터를 상위 포인터인 UP(i)가 가리키고 있다. 따라서, 길이 i-1의 프리픽스(prefix)를 갖는 데이터의 밴드의 하위 포인터인 LP(i-1)은 UP(i)와 동일한 데이터를 가리키고, 길이 i+1의 프리픽스(prefix)를 갖는 데이터의 밴드의 상위 포인터인 UP(i+1)은 LP(i)와 동일한 데이터를 가리키고 있다. 여기서, 포인터가 데이터를 가리킨다는 말은 해당 포인터가 해당 데이터의 주소를 기억한다는 의미이다.The lower pointer LP (i) points to the next data of the lowest address among the address areas of the data stored in the band 610 of the data having the prefix of length i, and the address of the data stored in the band 610 of the data. UP (i), the upper pointer, points to the data of the highest address in the region. Therefore, LP (i-1), which is a lower pointer of a band of data having a prefix of length i-1, indicates the same data as UP (i) and of a data having a prefix of length i + 1. UP (i + 1), the upper pointer of the band, indicates the same data as LP (i). Here, the pointer points to the data, which means that the pointer stores the address of the data.

도 7은 길이 0에서 32까지의 프리픽스의 데이터가 존재할 경우의 컨텐트 주소지정가능 메모리(CAM) 내의 저장 상태 도면이다.FIG. 7 is a diagram of a storage state in a content addressable memory (CAM) in the presence of data of length 0 to 32 prefix.

즉, 이와 같은 데이터의 밴드를 N/2-1이 32이고 모든 밴드 데이터가 존재할 경우의 일실시예를 나타낸 것이다. 프리픽스(prefix) 길이 0의 밴드 데이터는 디폴트(default) 데이터로 일치하는 프리픽스(prefix)가 없을 경우에 사용하는 데이터로 보통 1개의 데이터를 갖는다.That is, an example in which the band of such data has N / 2-1 of 32 and all band data exists. Prefix length 0 band data is data used when there is no prefix matching the default data, and usually has one data.

도 8은 본 발명의 컨텐트 주소지정가능 메모리(CAM) 테이블에 데이터를 추가하는 과정을 나타내는 흐름도면이다.8 is a flowchart illustrating a process of adding data to a content addressable memory (CAM) table of the present invention.

중앙처리부(CPU)(520)로부터 데이터 추가 명령을 테이블 관리부(530)가 수신하면(810), 테이블 관리부(530)는 데이터 검색 명령을 컨텐트 주소지정가능 메모리(CAM) 제어부(550)에 보내고, 컨텐트 주소지정가능 메모리(CAM) 제어부(550)는 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)의 룩업 테이블을 검색하여 해당 데이터가 있는지를 검색한다(820). 검색결과 해당 데이터가 존재하지 않는 경우에 테이블 관리부(530)는 컨텐트 주소지정가능 메모리(CAM) 제어부(550)를 구동하여 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)내의 컨텐트 주소지정가능 메모리(CAM) 테이블을 조정하고(830), 포인터 저장부(510)에 포함된 포인터 데이터(포인터가 기억하는 주소)를 갱신하며, 컨텐트 주소지정가능 메모리(CAM) 제어부(550)로 하여금 추가해야 하는 데이터를 컨텐트 주소지정가능 메모리(CAM) 테이블 저장부(540)에 저장한다(840).When the table manager 530 receives a data addition command from the CPU 520, the table manager 530 sends a data retrieval command to the content addressable memory (CAM) controller 550. The content addressable memory (CAM) control unit 550 searches the lookup table of the content addressable memory (CAM) table storage unit 540 to search whether there is corresponding data (820). If the corresponding data does not exist as a result of the search, the table manager 530 drives the content addressable memory (CAM) control unit 550 to allow content addressing in the content addressable memory (CAM) table storage unit 540. Adjust the memory (CAM) table (830), update the pointer data (address stored by the pointer) included in the pointer storage unit 510, and let the content addressable memory (CAM) control unit 550 add it. The data is stored in the content addressable memory (CAM) table storage unit 540 (840).

이제 도 9 및 도 10을 참조하여 컨텐트 주소지정가능 메모리(CAM) 테이블에 데이터를 추가하는 과정을 상세히 설명한다.A process of adding data to a content addressable memory (CAM) table will now be described in detail with reference to FIGS. 9 and 10.

도 9는 프리픽스 길이가 N/2-1인 데이터의 컨텐트 주소지정가능 메모리(CAM) 내의 저장 상태 및 포인터 표시 도면이다.9 is a diagram showing a storage state and a pointer in a content addressable memory (CAM) of data having a prefix length of N / 2-1.

중앙처리부(CPU)로부터 데이터 추가 명령을 테이블 관리부가 받으면 길이가 N/2-1인 프리픽스(prefix)를 갖는 데이터의 밴드가 컨텐트 주소지정가능 메모리(CAM)의 낮은 주소에 있으므로 UP(N/2-1)의 데이터를 LP(N/2-1)에 옮긴다.즉, UP(N/2-1)가 가리키는 데이터를 읽어서 LP(N/2-1)가 가리키는 공간에 쓰면(910), UP(N/2-1) 즉 LP(N/2-2)의 데이터 공간이 비어있게 된다. 이 공간에 UP(N/2-2)의 데이터를 옮기면(920), UP(N/2-2) 즉 LP(N/2-3)의 데이터 공간이 비어있게 되고 순차적으로 데이터를 옮기게 되면 추가하여야 할 길이 i의 프리픽스(prefix) 데이터 공간의 LP(i)에 데이터를 추가하여 테이블 갱신이 완료된다.When the table management unit receives a command to add data from the CPU, the band of data having a prefix of length N / 2-1 is located at a low address of the content addressable memory (CAM) and thus UP (N / 2). -1) move the data to LP (N / 2-1), i.e., read the data pointed to by UP (N / 2-1) and write it to the space pointed to by LP (N / 2-1) (910), The data space of (N / 2-1), that is, LP (N / 2-2), becomes empty. If UP (N / 2-2) data is moved to this space (920), the data space of UP (N / 2-2) or LP (N / 2-3) becomes empty, and if data is moved sequentially The table update is completed by adding data to LP (i) of a prefix data space of length i that should be.

도 10은 길이가 2 그리고 1인 프리픽스 데이터가 저장되어 있을 때 길이 0의 프리픽스 데이터가 추가되는 경우의 추가과정 도면이다.FIG. 10 is a diagram illustrating an additional process when prefix data of length 0 is added when prefix data of lengths 2 and 1 are stored.

길이 32인 프리픽스(prefix) 데이터부터 이동하여 길이 2인 프리픽스(prefix) 데이터를 길이 3인 프리픽스(prefix) 데이터 밴드로 이동하고(1010) 길이 1 프리픽스(prefix) 데이터를 길이 2 프리픽스(prefix) 데이터 밴드로 이동하고(1020) 길이 1인 프리픽스(prefix) 데이터의 빈 공간에 추가될 길이 0인 프리픽스(prefix) 데이터를 입력한다(1030).Moving from length 32 prefix data to moving length 2 prefix data into a length 3 prefix data band (1010) and length 1 prefix data to length 2 prefix data The band moves to a band (1020) and inputs prefix data of length 0 to be added to an empty space of the prefix data of length 1 (1030).

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

상술한 바와 같이 본 발명은, 추가되는 데이터의 프리픽스(prefix) 길이가 평균적으로 N/4보다 큰 경우에 평균적으로 프리픽스(prefix) 길이 데이터의 이동횟수를 감소시키고 전체적으로 데이터 갱신 시간을 줄이는 효과가 있다. 따라서 많은 데이터를 갱신할 경우에 짧은 시간 동안에 전체 데이터를 갱신할 수 있는 장점이 있다.As described above, the present invention has the effect of reducing the number of movements of the prefix length data and reducing the data update time as a whole when the average length of the added data is larger than N / 4. . Therefore, when updating a lot of data, there is an advantage that can update the entire data in a short time.

Claims (6)

(a) 소정의 프리픽스 길이를 갖는 데이터가 저장된 데이터 밴드마다 상기 밴드에 포함된 데이터 중에서 주소가 가장 낮은 데이터의 다음 주소정보를 기억하고 있는 하위 포인터와, 프리픽스 길이가 같은 데이터 중에서 주소가 가장 높은 데이터의 주소정보를 기억하고 있는 상위 포인터를 제공하는 단계;(a) a lower pointer for storing the next address information of the data having the lowest address among the data included in the band for each data band in which data having a predetermined prefix length is stored; and data having the highest address among data having the same prefix length. Providing an upper pointer storing address information of the apparatus; (b) 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블에 데이터를 추가하는 경우, 추가할 데이터의 프리픽스 길이를 초과하는 프리픽스 길이를 갖는 데이터의 각 밴드에 대하여, 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위포인터가 기억하는 주소에 기록하는 단계; 및(b) When data is added to a Content Addressable Memory (CAM) lookup table, for each band of data having a prefix length exceeding the prefix length of the data to be added, an address stored by the upper pointer of each band Recording the data at an address stored by the lower pointer of each band; And (c) 추가할 데이터의 프리픽스 길이와 동일한 프리픽스 길이를 갖는 데이터의 밴드에 대한 하위 포인터가 기억하는 주소에 추가할 데이터를 저장하는 단계를 포함하는 LPM(Longest Prefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM)의 룩업 테이블을 관리하는 방법.(c) content addressable using Longest Prefix Matching (LPM) comprising storing data to be added at an address stored by a lower pointer to a band of data having a prefix length equal to the prefix length of the data to be added. How to manage lookup tables in memory (CAM). 제1항에 있어서, 상기 (b) 단계는The method of claim 1, wherein step (b) (b1) 상기 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블에 데이터를 추가하는 명령을 수신하는 단계; 및(b1) receiving a command to add data to the content addressable memory (CAM) lookup table; And (b2) 추가할 데이터를 기록할 공간을 제공하도록 추가될 데이터의 프리픽스 길이보다 큰 값을 가진 데이터의 각 밴드에 대하여 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위 포인터가 기억하는 주소에 저장하는 단계를 포함하는 LPM(Longest Prefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM)의 룩업 테이블을 관리하는 방법.(b2) For each band of data having a value greater than the prefix length of the data to be added to provide space for recording the data to be added, the lower pointer of each band contains data of an address stored by the upper pointer of each band. A method of managing a lookup table of content addressable memory (CAM) using Longest Prefix Matching (LPM), the method comprising storing at a memorable address. 제1항에 있어서, 상기 LPM은The method of claim 1, wherein the LPM is 프리픽스 길이가 긴 데이터를 낮은 주소부터 저장하는 것을 특징으로 하는 LPM(Longest Prefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM) 룩업테이블을 관리하는 방법.A method of managing a content addressable memory (CAM) lookup table using Longest Prefix Matching (LPM), characterized by storing long prefix data from a lower address. 프리픽스 길이가 긴 데이터를 낮은 주소부터 저장하는 룩업테이블을 포함하는 컨텐트 주소지정가능 메모리(CAM);A content addressable memory (CAM) including a lookup table for storing data having a long prefix length from a low address; 소정의 프리픽스 길이를 갖는 데이터의 밴드마다 프리픽스 길이가 같은 데이터 중에서 주소가 가장 낮은 데이터의 다음 주소를 기억하는 하위포인터와, 소정의 프리픽스 길이를 갖는 데이터 중에서 주소가 가장 높은 데이터의 주소를 기억하는 상위포인터를 포함하는 포인터 저장부; 및A lower pointer that stores the next address of the data having the lowest address among data having the same prefix length for each band of data having a predetermined prefix length, and an upper memory storing the address of the data having the highest address among the data having the predetermined prefix length. A pointer storage unit including a pointer; And 컨텐트 주소지정가능 메모리(CAM)의 룩업테이블에 데이터를 추가할 경우, 추가할 데이터의 프리픽스 길이를 초과하는 프리픽스 길이를 가지는 데이터의 각 밴드에 대해서, 상기 각 밴드의 상위 포인터가 기억하는 주소의 데이터를 상기 각 밴드의 하위 포인터가 기억하는 주소에 기록하고, 추가할 데이터의 프리픽스 길이와 동일한 길이를 가지는 데이터의 밴드에 대한 하위 포인터가 기억하는 주소에 추가할 데이터를 기록하며, 상기 포인터 저장부에 포함된 상위 포인터와 하위 포인터가 기억하는 주소를 갱신하는 테이블 관리부를 포함하는 LPM(Longest Prefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블 관리장치.When data is added to the lookup table of the content addressable memory (CAM), for each band of data having a prefix length exceeding the prefix length of the data to be added, the data of the address stored by the upper pointer of each band Is recorded at an address stored by the lower pointer of each band, data to be added to an address stored by a lower pointer to a band of data having the same length as the prefix length of the data to be added, and is stored in the pointer storage unit. A content addressable memory (CAM) lookup table management apparatus using Longest Prefix Matching (LPM) including a table management unit for updating an address stored by an upper pointer and a lower pointer included therein. 제4항에 있어서, 상기 테이블 관리부는The method of claim 4, wherein the table management unit 상기 포인터 저장부에 포함된 상위포인터와 하위포인터가 기억하는 주소를 갱신할 때, 추가할 데이터의 프리픽스 길이 초과의 프리픽스 길이를 가지는 데이터밴드의 상위 포인터와 하위 포인터는 그 상위 포인터와 하위 포인터가 기억하는 주소의 바로 다음의 낮은 주소로 갱신하고, 추가할 데이터의 프리픽스 길이와 동일한 프리픽스 길이를 가지는 데이터 밴드의 하위 포인터를 그 하위 포인터가 기억하는 주소의 바로 다음의 낮은 주소로 갱신하는 것을 특징으로 하는 LPM(Longest Prefix Matching)을 사용하는 컨텐트 주소지정가능 메모리(CAM) 룩업 테이블 관리장치.When updating the address stored by the upper pointer and the lower pointer included in the pointer storage unit, the upper pointer and the lower pointer of the data band having the prefix length exceeding the prefix length of the data to be added are stored in the upper pointer and the lower pointer. And update the lower pointer of the data band having the prefix length equal to the prefix length of the data to be added to the lower address next to the address stored by the lower pointer. A content addressable memory (CAM) lookup table management device using Longest Prefix Matching (LPM). 제1항 내지 제3항 중 어느 한 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 1 to 3.
KR10-2002-0034878A 2002-06-21 2002-06-21 CAM lookup table management method based on LPM. KR100420959B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0034878A KR100420959B1 (en) 2002-06-21 2002-06-21 CAM lookup table management method based on LPM.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0034878A KR100420959B1 (en) 2002-06-21 2002-06-21 CAM lookup table management method based on LPM.

Publications (2)

Publication Number Publication Date
KR20030097486A KR20030097486A (en) 2003-12-31
KR100420959B1 true KR100420959B1 (en) 2004-03-02

Family

ID=32388016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0034878A KR100420959B1 (en) 2002-06-21 2002-06-21 CAM lookup table management method based on LPM.

Country Status (1)

Country Link
KR (1) KR100420959B1 (en)

Also Published As

Publication number Publication date
KR20030097486A (en) 2003-12-31

Similar Documents

Publication Publication Date Title
US7774538B2 (en) Method for ternary contents address memory table management
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
JP3250544B2 (en) Transfer destination search method, transfer destination search device, search table recording medium, and search program recording medium
US20040133590A1 (en) Tree data structure with range-specifying keys and associated methods and apparatuses
EP2020125B1 (en) Method of performing table lookup operation with table index that exceeds CAM key size
US8750144B1 (en) System and method for reducing required memory updates
US9264357B2 (en) Apparatus and method for table search with centralized memory pool in a network switch
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
JP4995125B2 (en) How to search fixed length data
US11269956B2 (en) Systems and methods of managing an index
JP2006527526A (en) System and method for efficiently searching a forwarding database divided into a limited number of sub-databases having a limited size
US6574701B2 (en) Technique for updating a content addressable memory
CN101620623A (en) Method and device for managing list item of content addressable memory CAM
US6532516B1 (en) Technique for updating a content addressable memory
KR100413528B1 (en) LPM-based CAM look-up-table managing method, the apparatus thereof and the recording medium thereof
US6925503B2 (en) Method and system for performing a longest prefix match search
JP2012155650A (en) Router and many-core system
KR100420959B1 (en) CAM lookup table management method based on LPM.
KR100420960B1 (en) CAM lookup table management method based on LPM.
CN100481820C (en) Searching method for TCAM route table and searching device for TCAM route table
KR100420957B1 (en) Routing table using class segmentation algorithm, searching method and apparatus thereby.
EP2003820B1 (en) Method and device of learning forwarding feature information
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
CN114124421B (en) ACL rule processing method, ACL rule processing device, computer equipment and readable medium
JP2000151674A (en) Method for controlling mac address table and switching hub device

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

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150126

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170124

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee