KR20080071591A - 정렬 장치 및 방법 - Google Patents
정렬 장치 및 방법 Download PDFInfo
- Publication number
- KR20080071591A KR20080071591A KR1020087013640A KR20087013640A KR20080071591A KR 20080071591 A KR20080071591 A KR 20080071591A KR 1020087013640 A KR1020087013640 A KR 1020087013640A KR 20087013640 A KR20087013640 A KR 20087013640A KR 20080071591 A KR20080071591 A KR 20080071591A
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- search
- units
- storage structure
- predetermined order
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/08—Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치 및 방법이 개시되며, 정렬 장치는, 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는 유닛 검색 구조와, 상기 유닛 저장 구조 내에 있는 유닛을 위한 위치 포인터를 포함하는 유닛 위치 포인터 구조를 포함하되, 여기서, 상기 정렬 장치는 정렬되는 유닛을 수신하고, 상기 유닛 검색 구조는 정렬되는 상기 유닛을 판독하고, 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 검색하기 위해 상기 유닛 저장 구조 내에 있는 유닛의 그 레코드를 사용하며, 상기 유닛 위치 포인터 구조를 액세스하고 상기 가장 근접한 매칭 유닛을 위한 위치 포인터를 검색하며, 상기 정렬 장치는 상기 유닛 저장 구조를 액세스하고 상기 사전 결정된 순서에 따라 적합한 위치에 상기 유닛 저장 구조 내로 저장되는 상기 유닛을 놓도록 상기 가장 근접한 매칭 유닛의 위치 포인터를 사용한다.
통신, 레코드, 검색, 분류, 정렬
Description
본 발명은 정렬 장치 및 방법에 관한 것으로서, 특히, 배타적이지 않지만, 통신 네트워크에서 패킷의 태그를 정렬하는 정렬 장치 및 방법에 대한 것이다.
개별 유닛을 순서대로, 예를 들면 오름차순 또는 내림차순으로 정렬하는 것이 바람직한 많은 응용이 있다. 이러한 응용은 패킷-스위칭 통신 네트워크이다. 패킷 스위칭 통신 네트워크는 네트워크를 통하여 패킷으로 전파되도록 데이터를 분할함으로써 동작한다. 이 패킷은 분리되어 네트워크를 통하여 전파된다. 이는 일 노드의 많은 다른 입력으로부터의 패킷이 노드의 단일 출력에 전파되도록 요구되는, 예를 들면 라우터와 같은 네트워크 노드에서의 공통 발생이다. 이는 결국 패킷 큐잉(queuing) 및 패킷 전파 경합이 되며, 이는 예를 들면, 패킷이 서비스되는 순서를 결정하기와 같은, 패킷 서비스의 스케줄링을 요구한다. 종래에는, 이는 태그를 각 패킷에 할당하고, 태그, 그 결과로서 패킷이 서비스를 위해 스케줄링되어야 하는 순서를 결정함으로써 달성되었다. 예를 들면, 이는 종종 태그를 오름차순으로 서비스하도록 종종 결정된다. 이후, 더 낮은 태그값이 더 높은 스케줄링 우선순위 를 갖는 패킷에 할당되고, 더 높은 태그값이 더 낮은 스케줄링 우선순위를 갖는 패킷에 할당되도록, 스케줄링 정책을 이용하여, 태그의 값이 계산된다.
태그를 오름차순으로 서비스하는 것은 최저값을 갖는 태그를 반복적으로 검색하기, 또는 오름차순으로 태그를 정렬하고 이 순서의 시작에서 태그를 반복적으로 판독하기를 요구한다. 각 테크닉에 대한 다양한 방법이 사용되어 왔다. 그러나, 특히, 통신 네트워크의 사용 및 원하는 속도가 계속 증가되고 패킷 스케줄링이 훨씬 더 중요하게 되므로, 정렬 테크닉의 개선이 바람직하다.
본 발명의 제 1 측면에 따르면, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치가 제공되며, 이 정렬 장치는, 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는 유닛 검색 구조와, 상기 유닛 저장 구조 내에 있는 유닛을 위한 위치 포인터를 포함하는 유닛 위치 포인터 구조를 포함하되, 상기 정렬 장치는 정렬되는 유닛을 수신하고, 상기 유닛 검색 구조는 정렬되는 상기 유닛을 판독하고, 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 검색하기 위해 상기 유닛 저장 구조 내에 있는 유닛의 그 레코드를 사용하며, 상기 유닛 위치 포인터 구조를 액세스하고 상기 가장 근접한 매칭 유닛을 위한 위치 포인터를 검색하며, 상기 정렬 장치는 상기 유닛 저장을 액세스하고 상기 사전 결정된 순서에 따라 적합한 위치에 상기 유닛 저장 구조 내로 정렬되는 상기 유닛을 놓도록 상기 가장 근접한 매칭 유닛의 위치 포인터를 사용한다.
유닛 위치 포인터 구조의 사용은 이 유닛 검색 구조가 유닛 저장 구조에 직접 액세스할 필요가 없다는 것을 의미한다. 이 검색 구조와 저장 구조는 서로로부터 분리된다. 이는 더 유연한 디자인이 분리 장치를 위해 채택되는 것을 허용한다. 덧붙여, 분리 장치를 위한 이러한 배열의 사용은 유닛 저장 구조로부터 유닛의 검색과 별도로 수행되는 것을 허용한다. 이는 여전히 유닛의 검색을 가능하게 하면서도, 저장 구조의 능력이 더 유연하게 남아 있는 것을 허용한다.
유닛 검색 구조는 트리 검색 구조를 포함할 수 있다. 이 트리 검색 구조는 멀티-비트 트리 검색 구조를 포함할 수 있다. 멀티-비트 검색 구조의 사용은 트리 구조의 압축을 허용하며, 이 검색 구조의 속도를 증가시킨다. 이 트리 검색 구조는 복수의 검색 레벨을 포함할 수 있다. 이 트리 검색 구조는 적어도 하나의 노드를 포함하는 제 1 검색 레벨을 포함할 수 있다. 이 트리 검색 구조는 하나 이상의 추가 검색 레벨을 포함할 수 있으며, 각각은 선행하는 검색 레벨의 노드에 링크되는 하나 이상의 노드를 포함한다. 노드 중 적어도 일부는 유닛 저장 구조 내에 있는 유닛의 레코드를 포함할 수 있다. 이 노드의 각각은 하나 이상의 비트를 포함할 수 있다. 노드의 비트 중 적어도 일부는 유닛 저장 구조 내에 있는 유닛의 레코드를 포함할 수 있다.
상기 트리 검색 구조는 정렬되는 상기 유닛의 적어도 하나의 세그먼트와 하나 이상의 검색 레벨의 적어도 하나 노드를 비교하여 상기 적어도 하나의 세그먼트에 대한 가장 근접한 매칭을 발견하고, 이에 따라 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 발견함으로써, 상기 가장 근접한 매칭 유닛을 검색한다. 예를 들면, 트리 검색 구조는 제 1 세그먼트에 가장 근접한 매칭 및 제 1 검색 레벨에서의 노드가 링크되는 상기 트리 검색 구조의 제 2 검색 레벨에서의 노드를 발견하기 위해, 정렬되는 상기 유닛의 제 1 세그먼트와 상기 트리 구조의 제 1 검색 레벨의 노드를 비교하고, 제 2 세그먼트에 가장 근접한 매칭 및 상기 제 2 검색 레벨에서의 노드가 링크되는 상기 트리 검색 구조의 제 3 검색 레벨에서의 노드를 발견하기 위해, 정렬되는 상기 유닛의 제 2 세그먼트와 상기 제 2 검색 레벨의 노드를 비교하며, 제 3 세그먼트에 가장 근접한 매칭 및 이에 따라 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 발견하기 위해 정렬되는 상기 유닛의 제 3 세그먼트와 상기 제 3 검색 레벨의 노드를 비교함으로써, 상기 가장 근접한 매칭 유닛을 검색한다.
상기 트리 검색 구조는 상기 유닛 저장 구조에 있는 유닛의 그 레코드를 갱신할 수 있다. 이는 유닛이 정렬된 이후 수행될 수 있다. 이는 유닛이 정렬되는 동안 수행될 수 있다.
상기 유닛 위치 포인터 구조는 상기 정렬 장치에 의해 상기 유닛 저장 구조로 정렬될 수 있는 각 유닛을 위한 위치 포인터를 위한 위치을 포함할 수 있다. 위치은 만일 그 유닛이 상기 정렬 장치에 의해 상기 유닛 저장 구조로 정렬되어있다면, 유닛을 위한 위치 포인터를 포함할 수 있다. 상기 정렬 장치는 상기 유닛이 정렬된 이후, 유닛을 위한 위치 포인터를 상기 유닛 위치 포인터 구조 내로 놓을 수 있다. 상기 유닛 위치 포인터 구조는 룩업 테이블을 포함할 수 있다. 상기 유닛 위치 포인터 구조는 상기 유닛 검색 구조에 링크될 수 있다. 상기 유닛 위치 포인터 구조는 효과적으로 상기 유닛 검색 구조의 트리 검색 구조의 최저 레벨을 포함하도록 상기 유닛 검색 구조에 링크될 수 있다.
상기 정렬 장치는 상기 유닛을 상기 사전 결정된 순서로 정렬하기 위해 유닛 정렬 정책을 작동할 수 있다. 이 순서는 오름 유닛 값 순서일 수 있다. 이 순서는 내림 유닛 값 순서일 수 있다.
상기 정렬 장치는 상기 유닛 검색 구조 및 유닛 위치 포인터 구조를 위해 분산 메모리 아키텍처를 포함할 수 있다. 특히, 상기 유닛 검색 구조와 유닛 위치 포인터 구조의 트리 검색 구조에 대한 각 검색 레벨은 독립적으로 액세스 가능한 메모리 아키텍처를 포함할 수 있다. 메모리 아키텍처는 서로 독립하게 서로로부터 판독 또는 서로에게 기록될 수 있다. 이는 정렬 장치에 병렬로 파이프라인된 구조를 제공한다. 이는 유닛 검색 구조의 검색, 및 정렬 장치의 정렬 속도를 증가시킨다. 이 정렬 장치는 클럭 사이클에 따라 동작할 수 있다. 메모리 아키텍처는 매 클럭 사이클에서 단지 한 번만 액세스할 수 있다. 유닛 검색 구조와 유닛 위치 포인터 구조의 트리 검색 구조에 대한 검색 레벨을 위한 액세스 가능한 메모리 아키텍처를 독립적으로 사용하는 것은 정렬 장치가 매 클럭 사이클에서, 가장 근접한 매칭 유닛의 위치 포인터를 검색하는 것을 허용한다. 이는 만일 유닛을 하나의 유닛 저장 구조에 놓인다면 한 클럭 사이클에서 수행될 수 있는 경우가 될 것이다.
특별하게는, 유닛 검색 구조 및 유닛 위치 포인터 구조의 트리 검색 구조에 대한 각 검색 레벨을 위한 4개의 독립적으로 액세스가능한 메모리 구조를 갖는, 유닛 검색 구조 및 유닛 위치 포인터 구조를 위한 분산 메모리 아키텍처의 사용은, 정렬 장치의 처리량 속도를 증가시키지만, 그러나 또한 장치의 복잡성과 비용을 증가시킨다. 메모리 아키텍처의 다른 개수가 유닛 검색 구조 및 유닛 위치 포인터 구조를 위해 사용될 수 있음이 이해될 것이다. 예를 들면, 하나의 메모리 아키텍처만이 유닛 검색 구조 및 유닛 위치 포인터 구조를 위해 사용될 수 있으며, 또는 2개, 또는 3개 메모리 아키텍처는 유닛 검색 구조 및 유닛 위치 포인터 구조를 위해 사용될 수 있다. 사용할 메모리 아키텍처의 개수를 선택함에 있어서, 트레이드-오프(trade-off)가 정렬 장치의 속도와 정렬 장치의 비용 사이에 이루어져야만 한다.
정렬 장치는 하드웨어 기반일 수 있다. 이 정렬 장치는 SoC(System on Chip) 테크놀리지를 사용하는 구현예에 의해 하드웨어 기반일 될 수 있다. 이 정렬 장치는 유닛 검색 구조 및 유닛 위치 포인터 구조를 위한 SoC 메모리 아키텍처를 포함할 수 있다. 이 유닛 검색 구조의 SoC 메모리 아키텍처는 RAM 메모리 블럭을 포함할 수 있다. 유닛 검색 구조가 트리 검색 구조를 포함하는 경우, 이 트리 검색 구조의 제 1 검색 레벨 및 제 2 검색 레벨은 복수의 레지스터를 포함할 수 있으며, 이 트리 검색 구조의 추가 검색 레벨은 RAM 메모리의 블럭을 포함할 수 있다.
유닛 저장 구조는 정렬 장치로부터 별도로 제공될 수 있다. 대안적으로, 정렬 장치는 유닛 저장 구조를 포함할 수 있다. 이 유닛 저장 구조는 링크된 리스트를 포함할 수 있다. 이 링크된 리스트에 저장된 유닛은 이들이 사전 결정된 순서에 있도록 함께 링크될 수 있다. 각 유닛에 대하여, 유닛 저장 구조는 추가적으로 이 유닛과 연관된 하나 이상의 구성요소를 포함할 수 있다. 유닛 저장 구조를 위한 링크된 리스트의 사용은 정렬될 수 있는 모든 가능한 유닛을 위한 메모리를 남겨 두기보다는 오히려, 이들이 정렬됨에 따른 유닛을 위해 요구되는 바와 같이 메모리의 사용을 허용한다. 이는 특히 메모리 할당에 대한 제어 및 메모리 관리를 대단히 단순하게 하므로 중요하며, 만일 이 유닛 저장 구조가 다른 디바이스에 의해 공유되는 메모리로 구현된다면 또한 유익할 수 있다.
단일 정렬 장치는 유닛을 정렬하기 위해 사용될 수 있다. 대안적으로, 복수의 정렬 장치는 유닛을 정렬 유닛과 연결하여 사용될 수 있다. 각 정렬 장치는 클럭 사이클에 따라 동작할 수 있다. 연결에 있는 복수의 정렬 장치 사용은 각 클럭 사이클로 유닛이 정렬될 수 있음을 허용한다. 예를 들면, 4개의 정렬 장치는 정렬 유닛과 함께 사용될 수 있다. 이 유닛은 4개의 별도 유닛 저장 구조로 정렬될 수 있으며, 하나의 유닛 저장 구조는 각 정렬 장치를 위한 것이다. 유닛을 유닛 저장 구조로 위치시키는 것이 4개의 클럭 사이클로 수행되는 경우, 결합으로 4개 정렬 장치의 사용은 유닛이 각 클럭 사이클로 정렬될 수 있는 것을 허용할 것이다.
정렬 장치는 통신 네트워크의 패킷에 대한 태그를 정렬할 수 있다. 이 정렬 장치는 패킷의 태그를 정렬하기 위한 태그 정렬 정책을 동작시킬 수 있다. 이 태그는 태그 계산 회로에 의해 계산될 수 있다. 이 태그 계산 회로는 태그를 계산하기 위해 패킷 스케쥴링 정책을 동작시킬 수 있다. 패킷 스케줄링 정책은 예를 들면, 공정한 큐 정책계 중 어느 하나인 예를 들면 가중된 정확한 큐 정책(weighted fair queuing policy)을 포함할 수 있다.
정렬 장치는 패킷 스케줄의 일부를 포함할 수 있다. 정렬 장치 또는 스케줄러는 통신 네트워크의 라우터 일면을 포함할 수 있다.
본 발명의 제 2 측면에 따르면, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 방법이 제공되는데, 상기 방법은, 상기 정렬장치를 포함하고, 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는 유닛 검색 구조, 및 상기 유닛 저장 구조 내에 있는 유닛을 위한 위치 포인터를 포함하는 유닛 위치 포인터 구조를 포함하는 정렬 장치를 이용하며, 상기 정렬 장치는 정렬되는 유닛을 수신하고, 상기 유닛 검색 구조는 정렬되는 상기 유닛을 판독하고, 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 검색하기 위해 상기 유닛 저장 구조 내에 있는 유닛의 그 레코드를 사용하며, 상기 유닛 위치 포인터 구조를 액세스하고 상기 가장 근접한 매칭 유닛을 위한 위치 포인터를 검색하며, 상기 정렬 장치는 상기 유닛 저장 구조를 액세스하고 상기 사전 결정된 순서에 따라 적합한 위치에 상기 유닛 저장 구조 내로 저장되는 상기 유닛을 놓도록 상기 가장 근접한 매칭 유닛의 위치 포인터를 사용한다.
본 발명의 제 3 측면에 따르면, 통신 네트워크를 위한 스케줄러가 제공되며, 이 스케줄러는 본 발명의 제 1 측면에 따르는 정렬 장치를 포함한다.
본 발명의 일실시예가 첨부된 도면을 참조하여, 단지 예를 목적으로, 이제 기술될 것이다.
도 1은 본 발명의 제 1 측면에 따른 정렬 장치의 개략적 묘사를 나타내는 도면.
도 2는 도 1의 정렬 장치에 병합되는, 본 발명의 제 2 측면에 따른 스케줄러 의 개략적 묘사를 나타내는 도면.
도 1에 도시된 정렬 장치(1)는 유닛 검색 구조(2), 유닛 위치 포인터 구조(3) 및 또는 유닛 저장 구조(4)를 포함한다. 그러나, 유닛 저장 구조가 정렬 장치에 대해 외부적으로 제공될 수 있음을 이해해야 할 것이다.
이 유닛 검색 구조는 멀티-비트 트리 검색 구조를 포함하며, 이는 도시된 바와 같이, 3개 검색 레벨(5)을 포함하되, 각 레벨은 하나 이상의 노드(6)를 포함한다. 이 트리 검색 구조는 각 레벨에서 다소의 검색 레벨 및 다소의 노드를 포함할 수 있음을 이해해야할 것이다. 이러한 트리 검색 구조는 2 비트의 길이를 가지는 유닛 세그먼트를 사용하여, 6 비트의 길이를 가지는 유닛을 정렬한다. 트리 검색 구조(2)의 3개 검색 레벨(5)에서 각 노드(6)는 4 비트를 포함하며, 각 유닛 세그먼트 옵션 00, 01, 10 또는 11에 대하여 한 비트가 된다. 레벨의 노드에 대한 비트는 장치에 의해 유닛 저장 구조로 정렬된 유닛의 레코드를 포함하도록 사용된다. 한 비트는 이 비트의 유닛 세그먼트 옵션에 대응하는 유닛 세그먼트는 이 장치에 의해 이전에 정렬되지 않는다면 0을 포함한다. 한 비트는 이 비트의 유닛 세그먼트 옵션에 대응하는 유닛 세그먼트는 이 장치에 의해 이전에 정렬된다면 1을 포함한다. 제 1 및 제 2 검색 레벨에서 1을 포함하는 노드의 비트는 트리 검색 구조에서 그 아래에 있는 레벨의 노드, 즉 차일드 노드에 링크될 것이다.
트리 검색 구조는 메모리내에서 구현된다. 이 구조의 첫 번째 2개의 검색 레 벨은 레지스터로 구성되고, 반면에 세 번째 검색 레벨은 RAM의 블럭으로 구성된다. 이들 검색 레벨을 위해 필요한 메모리의 양은 비교적 작고 레지스터를 사용하여 실현될 수 있으므로, 첫 번째 2개의 검색 레벨은 레지스터를 사용하여 구현될 수 있다.
유닛 할당 포인터 구조(3)는 룩업 테이블을 포함한다. 정렬 장치에 의해 유닛 저장 구조로 정렬될 수 있는 각 유닛을 위한 테이블에서 위치가 제공된다. 유닛 할당 포인터 구조의 위치은 그 유닛이 정렬 장치에 의해 유닛 저장 구조로 정렬된다면 유닛을을 위한 위치 포인터를 포함할 것이다. 각 유닛의 경우, 위치 포인터는 유닛 저장 구조 내에의 유닛의 위치를 가리킨다. 유닛 위치 포인터 구조는 메모리내로 구현되며, RAM 블럭을 포함한다. 이 유닛 검색 구조 및 유닛 위치 포인터 구조는, 유닛 위치 포인터 구조는 효과적으로 유닛 검색 구조의 트리 검색 구조의 네 번째 검색 레벨을 효과적으로 형성하도록, 링크된다.
유닛 저장 구조(4)는 링크된 리스트를 포함한다. 이 링크된 리스트는 메모리내로 구현된다. 이 링크된 리스트의 유닛은 메모리 전체에 걸쳐 랜덤하게 분산될 수 있다. 이 링크된 리스트에 저장된 유닛은 이들이 사전 결정된 순서에 있도록 함께 링크된다. 이 링크된 리스트의 각 엔트리는 이 리스트의 후속 유닛에 대한 유닛 및 위치 포인터를 포함한다. 이 정렬 장치의 본 실시예에서, 링크된 리스트는 유닛 검색 구조(2)와 유닛 위치 포인터 구조(3)를 갖는 칩상에 포함된다. 그러나, 이 링크된 리스트는 예를 들면 외부 듀얼 포트 램상의 칩을 벗어나서 구현될 수 있다.
이 정렬 장치는 다음과 같이 동작한다. 유닛 정렬 정책이 선택되고, 이는 유 닛이 유닛 저장 구조로 정렬되는 사전 결정된 순서를 결정한다. 본 실시예에서, 사전 결정된 순서는 유닛의 오름차순이다. 그러나, 유닛을 위한 다른 순서, 예를 들면 내림차순이 선택될 수 있음을 이해해야 할 것이다.
정렬될 유닛은 정렬 장치(1)에 의해 수신되고, 유닛 검색 구조(2)에 의해 판독된다. 이 유닛 검색 구조에 의해 판독되는 각 유닛에 대하여, 디코딩 절차가 이 유닛의 값에 기초하여, 트리 검색 구조의 3개 검색 레벨(5)의 각각에서 수행된다. 이러한 절차는 유닛 검색 구조내에 포함된 이들 유닛의 레코드를 사용하여, 유닛 저장 구조내의 유닛 중 가장 근접한 매칭을 검색한다. 예를 들면, 110110의 값을 가지는 유닛을 위해 가장 근접한 매칭 유닛을 발견하기 위해, 첫 번째 2비트인 11를 포함하는 유닛 세그먼트가 트리 검색 구조의 첫 번째 레벨에서의 노드에 비교된다. 이 노드에서의 네 번째 비트는 유닛 세그먼트 옵션 11과 연관된다. 만일 1이 네 번째 비트내에 존재한다면, 이는 11로 시작하는 유닛이 이 장치에 의해 이미 정렬되고, 노드의 네 번째 비트는 트리 검색 구조의 그 아래에의 검색 레벨인, 즉 두 번째 검색 레벨에 있는 노드에 링크된다. 유닛의 다음 2 비트인 01을 포함하는 유닛 세그먼트는 이후 두 번째 검색 레벨의 노드와 비교된다. 만일 이 노드의 두 번째 비트가 1을 포함한다면, 이는 1101으로 시작하는 유닛이 이전에 이 장치에 의해 정렬되고, 이 노드의 두 번째 비트가 트리 검색 구조의 그 아래의 검색 레벨, 즉 세 번째 검색 레벨에 있는 노드에 링크된다. (만일 두 번째 비트가 0을 포함한다면, 두 번째 검색 레벨에 있는 노드에서의 4 비트는 유닛 세그먼트 01에 대한 가장 근접 가능한 매칭, 및 이 세 번째 검색 레벨에서의 대응하는 노드를 발견하기 위해 스캔된다). 이후, 유닛의 마지막 2 비트인 10를 포함하는 유닛 세그먼트는 세 번째 검색 레벨에 있는 노드와 비교된다. 이 노드의 세 번째 비트는 장치가 현재 정렬된 것과 정확히 동일한 유닛을 이미 정렬하는 것과 같지 않으므로, 보통 O을 포함할 것이다. 세 번째 검색 레벨에 있는 노드에서의 4 비트는 유닛 세그먼트 10에 가능하게 가장 근접한 매칭을 발견하기 위해 스캐닝된다. 이는 예를 들면, 01일 수 있다. 이후 정렬되는 유닛에 가장 근접한 매칭 유닛은 110101이다.
트리 검색 구조의 세 번째 검색 레벨의 각 노드는 유닛 위치 포인터 구조에서의 4개 엔트리에 링크되며, 엔트리는 유닛 세그먼트 옵션인 00, 01, 10, 및 11의 각각을 위한 것이다. 이 유닛 위치 포인터 구조는 유닛 저장 구조에 있는 유닛의 위치에 대한 포인터를 포함한다. 본 예에서, 유닛 110110은 이전에 정렬되지 않고 있으며, 유닛 위치 포인터 구조에 있는 이러한 유닛을 위한 사이트는 비여 있을 것이다. 가장 근접한 매칭 유닛은 110101로 결정된다. 정렬 장치는 이러한 유닛을 위하여 유닛 위치 포인터 구조에서의 위치을 액세스하고, 유닛 저장 구조에 있는 이러한 유닛의 위치을 판독한다.
이 점에서, 정렬되는 유닛은 쉽게 사전 결정된 순서, 본 예에서는 오름차순에 따른 정확한 위치에 있는 링크된 리스트 유닛 저장 구조에 용이하게 삽입될 수 있다. 정렬 장치는 정렬되는 유닛을 위해 링크된 리스트에 있는 저장 위치을 요청하고, 이 유닛을 이 위치에 저장한다. 이 정렬 장치는 링크된 리스트 내에 있는 이러한 유닛의 위치에 액세스하고 이 위치으로부터 링크된 리스트내에 있는 위치 포인터를 후속 유닛을 위한 위치 포인터를 판독하기 위해, 가장 근접한 매칭 유닛인 110101의 위치 포인터를 사용한다. 이 정렬 장치는 정렬되는 유닛의 링크된 리스트 내에 있는 위치을 가리키기 위해 유닛 110101의 위치 내에 있는 위치 포인터를 변경시킨다. 또한, 이 정렬 장치는 또한 가장 근접한 매칭 유닛 위치으로부터 판독되는, 링크된 리스트내의 후속 유닛의 위치 포인터를 정렬되는 유닛을 위해 링크된 리스트의 위치으로 삽입한다. 따라서, 정렬되는 유닛은 이 유닛의 오름차순에 따른 위치 내의 링크된 리스트 유닛 저장 구조 내로 놓인다.
유닛 검색 구조 내에 포함된 유닛 저장 구조에 있는 유닛의 레코드는 갱신된다. 이는 유닛이 정렬된 이후 또는 이 유닛에 가장 근접한 매칭 유닛이 검색됨으로서, 이루어질 수 있다. 유닛의 각 세그먼트에 대하여, 1은 트리 검색 구조의 첫 번째, 두 번째 및 세 번째 검색 레벨에서 적절한 노드의 적절한 비트에 놓인다. 위에 주어진 예의 경우, 1은 첫 번째 검색 레벨의 노드에 있는 네 번째 비트에 놓이고, 1은 두 번째 검색의 노드에서 액세스된 노드의 두 번째 비트에 놓이며, 그리고 1은 세 번째 레벨에서 액세스된 노드의 세 번째 비트에 놓인다. 정렬되는 각 유닛의 경우, 정렬 장치는 또한 유닛의 유닛 저장 구조에 있는 위치에 대한 위치 포인터를 유닛 위치 포인터 구조에 놓는다.
유닛 위치 포인터 구조 및 유닛 검색 구조의 멀티-비트 트리 검색 구조는 분산 메모리 아키텍처를 사용하여 구현된다. 유닛 위치 포인터 구조 및 이 트리 검색 구조의 3개 검색 레벨은 독립적으로 메모리 아키텍처에 액세스 가능하다. 유닛 위치 포인터 구조 및 트리 검색 구조의 레벨은 서로와 독립적으로 서로로부터 판독 또는 서로에 기록될 수 있다. 이는 정렬 장치의 병렬로 파이프라인된 구조를 제공 하므로, 이는 장치의 동작 속도를 향상시킨다.
위의 설명은 정렬 장치에 의해 정렬된 두 번째 및 후속 유닛에 적용된다. 정렬될 유닛이 장치에 의해 정렬된 첫 번째 유닛인 경우, 다른 첫 번째 정렬 절차가 사용되어야만 한다. 정렬될 첫 번째 유닛이 정렬 장치에 의해 수신되고, 유닛 검색 구조가 액세스되는 경우, 트리 검색 구조의 첫 번째 검색 레벨의 노드에 대한 비트는 각각 0을 포함할 것이다. 이는 첫 번째 유닛 정렬 절차를 적용하도록 정렬 장치를 트리거시킨다. 첫 번째 유닛은 이에 할당된 링크된 리스트 저장 구조에 있는 위치을 갖는다. 이후, 유닛 검색 구조는 첫 번째 유닛의 첫 번째 세그먼트를 판독하고, 트리 검색 구조의 제 1 검색 레벨에 대한 노드의 적합한 비트 내에 1을 기록하고, 첫 번째 검색 레벨의 노드에 있는 비트에 링크된 두 번째 검색 레벨에서의 노드로 이동한다. 이후, 이 유닛 검색 구조는 첫 번째 유닛의 다음 세그먼트를 판독하고, 두 번째 검색 레벨의 노드에 대한 적합한 비트 내에 1을 기록하며, 두 번째 검색 레벨의 노드에 있는 비트에 링크된 세 번째 검색 레벨에서의 노드로 이동한다. 이후, 유닛 검색 구조는 첫 번째 유닛의 마지막 세그먼트를 판독하고, 세 번째 검색 레벨의 노드에 대한 적합한 비트내에 1을 기록하고, 첫 번째 유닛에 할당된 유닛 위치 포인터 구조내에 있는 위치으로 이동하고, 첫 번째 노드에 할당된 유닛 저장 구조 위치은 유닛 위치 포인터 구조에 있는 위치으로 기록한다. 이후, 정렬 장치는 유닛 저장 구조에 있는 그 사전 할당된 위치으로 첫 번째 유닛을 놓기 위해 첫 번째 유닛의 위치 포인터를 사용한다.
정렬 장치는 예를 들면, 이 정렬 장치가 통신 네트워크의 일면을 포함한다 면, 클럭 사이클에 따라 동작할 수 있다. 이것이 그 경우인 때에는, 임의의 특별한 메모리는 클럭 사이클당 단지 한 번만 액세스될 수 있다. 이 유닛 위치 포인터 구조 및 트리 검색 구조의 3개 검색 레벨은 독립적으로 액세스 가능한 메모리 위치에서 유지되며, 따라서 모든 3개 검색 레벨 및 포인터 위치 구조는 동일한 클럭 사이클에서 액세스될 수 있다. 그러므로, 첫 번째 3개 클럭 사이클 이후, 정렬 장치는 매 클럭 사이클에서, 정렬되는 유닛을 위한 가장 근접한 매칭 유닛의 위치 포인터를 검색할 수 있다. 이 정렬 장치는 그러므로 만일 유닛을 유닛 저장 구조내로 놓기 위해 단지 하나의 클럭 사이클만을 취하려 한다면, 매 클럭 사이클에서 유닛을 정렬할 수 있다. 그러나, 링크된 리스트 유닛 저장 구조를 포함하는 메모리는 링크된 리스트 내로 유닛을 놓기 위해 4회 액세스되어야만 한다. 그러므로, 이는 유닛을 링크된 리스트 내로 놓기 위해 4 클럭 사이클을 취할 것이다. 그러므로, 유닛은 매 4 클럭 사이클마다 정렬 장치로 입력되며, 그렇지 않으면 가장 근접한 매칭 유닛 위치 포인터가 검색하고, 이 링크된 리스트에 놓이게 되는 유닛의 큐(qeue)가 발생할 것이다. 그러므로, 정렬 장치는 매 4 클럭 사이클마다 하나의 유닛만을 정렬한다. 위치 포인터 구조 및 이 3개 검색 레벨의 각각은 매 4 클럭 사이클마다 오로지 액세스될 것이다. 그 사이의 '여분' 클럭 사이클은 위치 포인터 구조 및 검색 레벨 중 2개 이상이 이들의 독립적으로 액세스 가능한 메모리 위치으로 인해 동일한 클럭 사이클에서 액세스될 수 있으므로, 위치 포인터 구조에 있는 위치 포인터 및 트리 검색 구조의 비트를 갱신하기 위해 사용될 수 있다.
정렬 장치의 아키텍처는 Synplicity와 Xilinx Foundation tool을 사용하는 Xilinx Virtex FPGA를 위해 합성되고 VHDL에서 구현된다. 한 정렬 동작당 4 클럭 사이클을 갖는, 84MHz의 클럭 속도로, 이러한 구현은 40Gbps로 250B의 평균 유닛 사이즈를 지원할 수 있다. 이 회로의 구현예를 위한 SoC 테크놀리지 사용은 100Gbps를 초과하는 속도가 달성가능할 수 있도록 할 수 있다.
단일 정렬 장치는 유닛을 정렬하기 위해 사용될 수 있다. 대안적으로, 복수의 정렬 장치가 정렬 유닛과 함께 사용될 수 있다. 예를 들면, 4개 정렬 장치는 정렬 유닛과 함께 사용될 수 있다. 이 유닛은 4개의 별도 유닛 저장 구조로 정렬되며, 각 정렬 장치에 대하여 하나의 유닛 저장 구조이다. (이 경우에서, 유닛에 대한 검색이 요청되는 경우, 각 저장 구조의 첫 번째 유닛이 판독되고, 최저값을 갖는 유닛이 검색된다). 각 정렬 장치는 클럭 사이클에 따라 동작할 수 있다. 유닛 저장 구조가 링크된 리스트인 경우 위와 같이, 이는 저장 구조내로 유닛을 놓도록 4개 클럭 사이클을 취할 것이다. 각 정렬 장치는 그러므로 4 클럭 사이클당 하나의 유닛만을 정렬할 수 있다. 4개 정렬 장치를 함께 사용하는 것은 유닛이 각 클럭 사이클에서 저장되는 것을 허용할 것이다.
도 2는 패킷 기반 통신 네트워크를 위한 스케줄러의 개략적 표현을 보여준다. 스케줄러는 통신 네트워크 라우터의 일면을 포함한다. 이 라우터는 네트워크를 통하여 전파되는 데이터의 패킷을 라우팅하도록 동작한다. 이 라우터는 라우터의 수개 입력을 통하여 패킷을 수신하고, 다수의 패킷이 라우터의 출력에 전파되도록 요청될 것이다. 이는 패킷의 전파에 대한 스케줄링을 필요로 한다.
이러한 스케줄링은 스케줄러에 의해 수행된다. 스케줄링 프로세스는 2개의 단계, 즉 패킷 스케줄링 정책 기능 및 패킷 서비스 제공 기능으로 구성된다. 이 스케줄러(10)는 패킷 스케줄 정책 기능을 책임지는 패킷 스케줄링 정책 회로(12), 및 패킷 서비스제공 기능을 책임지는 패킷 서비스제공 기능을 책임지는 패킷 서비스 제공 회로(14)를 포함한다.
이 패킷 스케줄링 정책 회로(12)는 패킷 스케줄링 정책을 동작시키고, 이는 스케줄러를 통하여 패킷의 전파의 스케줄링, 특히 순서를 결정하기 위해 사용된다. 이 스케줄링 정책 회로는 스케줄링 정책에 따라 각 패킷을 위한 태그를 계산하고, 이 태그의 값이 서로에 관련한 패킷의 스케줄링을 결정하기 위해 사용된다. 보통 오름차순으로 서비스 제공을 위한 태그를 스케줄링하도록 결정된다. 이후, 태그의 값은 더 낮은 태그값이 더 높은 스케줄링 우선순위를 갖는 패킷에 할당되고, 더 높은 태그값은 더 낮은 스케줄링 우선순위를 갖는 패킷에 할당되도록, 스케줄링 정책을 사용하여, 계산된다.
패킷 스케줄링 정책 회로는 태그 계산 회로(16)를 포함하며, 이는 태그를 계산하기 위해 사용된다. 일단 계산되며, 태그는 패킷 서비스 제공 회로(14)에 전달된다.
패킷 서비스 제공 회로(14)에 의해 수신된 태그는 필수적으로 랜덤한 순서로 있다. 이는 왜냐하면, 네트워크에서의 단일한 교통 흐름에 있는 패킷이 그 흐름에 이전에 할당된 것보다 점차적으로 더 높은 태그를 수신하게 되고, 별도의 교통 흐름으로부터의 패킷은 오름차순로 태그를 수신하지 않고, 흐름의 성질 및 태그 계산 회로에 의해 동작되는 스케줄링 정책에 따라 수신될 것이다. 이 스케줄러는 다수의 흐름으로부터 패킷을 수신하고, 따라서 계산된 태그값은 특정 순서를 갖지 않을 것이다. 만일 태그가 태그 계산 회로로부터 수신된 순서, 즉 랜덤한 순서로 저장된다면, 이는 이들의 연관된 패킷의 서비스 제공을 위한 태그에 대한 후속 검색을 위한 암시를 가지고 있다. 보통, 태그는 이를 촉진하기 위해 최저 태그로 먼저 시작하여 오름차순으로 검색되므로, 태그는 이들이 패킷 서비스 제공 회로에 도달하자 마자 오름차순로 정렬되어, 이들은 순서대로 저장된다.
패킷 서비스 제공 회로(14)는 태그 정렬 장치(18)를 포함한다. 이 태그 정렬 장치는 위에 기술된 도 1의 유닛 정렬 장치와 동일한 구조를 갖는다. 이 태그 정렬 장치(18)는 태그 검색 구조, 태그 위치 포인터 구조 및 태그 저장 구조를 포함한다. 이전에 기술된 바와 같이, 정렬될 태그가 태그 검색 구조에 의해 수신되는 경우, 가장 근접한 매칭값 검색이 수행된다. 이는 태그 포인터 구조로부터의 위치 포인터를 정렬되는 태그에 가장 근접한 매칭인 태그 저장 구조에 있는 태그로 되돌려준다. 이후, 이 정렬되는 태그는 태그의 오름차순에 따른 태그 저장 구조에 있는 정확한 위치로 삽입된다. 이 태그 정렬 장치는 그러므로 오름차순로 태그를 정렬하는 문제점에 대한 솔루션을 제공한다. 태그 위치 포인터 구조 및 태그 트리 검색 순서의 검색 레벨이 서로에 독립적으로 구현되므로, 이는 고속 태그 정렬 방법, 및 멀티 기가비트 라인 속도 네트워크로 패킷을 스케줄링할 수 있는 스케줄러를 제공한다.
도달한 태그의 정렬가 발생하므로, 스케줄러는 또한 라우터로부터 네트워크로 전진 전파를 위해 정렬된 태그를 검색하고, 스케줄러의 출력에 이들과 관련된 패킷을 포워딩한다. 이 정렬된 태그는 최저 태그로 먼저 시작하여, 오름차순으로 검색된다. 이는 태그가 링크된 리스트 저장 구조에서 오름차순으로 정렬되므로, 링크된 리스트 태그 저장 구조의 첫 번째 엔트리에서 태그를 반복적으로 판독하는 단순한 프로세스이다. 태그 저장 구조의 각 엔트리는 태그, 및 또한 이 태그와 연관된 패킷이 저장된 위치을 주는 위치 포인트를 포함하며, 이는 패킷이 스케줄러와 라우터로부터 전진 전파를 위해 검색되는 것을 허용한다.
본 발명은 정렬 장치 및 방법에 이용가능하다.
특히, 배타적이지 않지만, 통신 네트워크에서 패킷의 태그를 정렬하는 정렬 장치 및 방법에 이용가능하다.
Claims (26)
- 사전 결정된 순서에 따라 유닛들을 유닛 저장 구조 내로 정렬하는 정렬 장치로서,상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는 유닛 검색 구조와,상기 유닛 저장 구조 내에 있는 유닛을 위한 위치 포인터를 포함하는 유닛 위치 포인터 구조를 포함하되,상기 정렬 장치는 정렬되는 유닛을 수신하고, 상기 유닛 검색 구조는 정렬되는 상기 유닛을 판독하고, 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 검색하기 위해 상기 유닛 저장 구조 내에 있는 유닛의 그 레코드를 사용하며, 상기 유닛 위치 포인터 구조를 액세스하고 상기 가장 근접한 매칭 유닛을 위한 위치 포인터를 검색하며,상기 정렬 장치는 상기 유닛 저장 구조를 액세스하고 상기 사전 결정된 순서에 따라 적합한 위치에 상기 유닛 저장 구조 내로 정렬되는 상기 유닛의 위치를 찾기 위하여 상기 가장 근접한 매칭 유닛의 위치 포인터를 사용하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항에 있어서,상기 유닛 구조는 트리(tree) 검색 구조를 포함하는, 사전 결정된 순서에 따 라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 2 항에 있어서,상기 트리 검색 구조는 멀티-비트 트리 검색 구조를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 3 항에 있어서,상기 트리 검색 구조는 복수의 검색 레벨을 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 4 항에 있어서,상기 트리 검색 구조는 적어도 하나의 노드를 포함하는 제 1 검색 레벨을 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 5 항에 있어서,상기 트리 검색 구조는 하나 이상의 추가 검색 레벨을 포함하되, 각각은 선행하는 검색 레벨의 노드에 링크된 하나 이상의 노드를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 5 항 또는 제 6 항에 있어서,노드 중 적어도 일부는 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,상기 노드 중 각각은 하나 이상의 비트를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 8 항에 있어서,상기 노드의 비트 중 적어도 일부는 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 5 항 내지 제 9 항 중 어느 한 항에 있어서,상기 트리 검색 구조는 정렬되는 상기 유닛의 적어도 하나의 세그먼트와 하나 이상의 검색 레벨의 적어도 하나 노드를 비교하여 상기 적어도 하나의 세그먼트또는 각 세그먼트에 대한 가장 근접한 매칭을 발견하고, 이에 따라 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 발견함으로써, 상기 가장 근접한 매칭 유닛을 검색하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 10 항에 있어서,제 1 세그먼트에 가장 근접한 매칭 및 제 1 검색 레벨에서의 노드가 링크되는 상기 트리 검색 구조의 제 2 검색 레벨에서의 노드를 발견하기 위해, 정렬되는 상기 유닛의 제 1 세그먼트와 상기 트리 검색 구조의 제 1 검색 레벨의 노드를 비교하고,제 2 세그먼트에 가장 근접한 매칭 및 상기 제 2 검색 레벨에서의 노드가 링크되는 상기 트리 검색 구조의 제 3 검색 레벨에서의 노드를 발견하기 위해, 정렬되는 상기 유닛의 제 2 세그먼트와 상기 제 2 검색 레벨의 노드를 비교하며,제 3 세그먼트에 가장 근접한 매칭 및 이에 따라 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 발견하기 위해 정렬되는 상기 유닛의 제 3 세그먼트와 상기 제 3 검색 레벨의 노드를 비교함으로써,상기 트리 검색 구조는 상기 가장 근접한 매칭 유닛을 검색하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 2 항 내지 제 11 항 중 어느 한 항에 있어서,상기 트리 검색 구조는 상기 유닛 저장 구조에 있는 유닛의 그 레코드를 갱신하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,상기 유닛 위치 포인터 구조는 상기 정렬 장치에 의해 상기 유닛 저장 구조내에 정렬될 수 있는 각 유닛을 위한 위치 포인터를 위한 위치을 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 13 항에 있어서,위치은 만일 그 유닛이 상기 정렬 장치에 의해 상기 유닛 저장 구조로 정렬되어있다면, 유닛을 위한 위치 포인터를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 13 항 또는 제 14 항에 있어서,상기 정렬 장치는 상기 유닛이 정렬된 이후, 유닛을 위한 위치 포인터를 상기 유닛 위치 포인터 구조 내로 놓는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 15 항 중 어느 한 항에 있어서,상기 유닛 위치 포인터 구조는 룩업 테이블을 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 16 항 중 어느 한 항에 있어서,상기 유닛 위치 포인터 구조는 상기 유닛 검색 구조에 링크되는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 17 항에 있어서,상기 유닛 위치 포인터 구조는 효과적으로 상기 유닛 검색 구조의 트리 검색 구조의 최저 레벨을 포함하도록 상기 유닛 검색 구조에 링크되는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 18 항 중 어느 한 항에 있어서,상기 정렬 장치는 상기 유닛을 상기 사전 결정된 순서로 정렬하기 위해 유닛 정렬 정책을 작동하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 19 항 중 어느 한 항에 있어서,상기 정렬 장치는 상기 유닛 검색 구조 및 유닛 위치 포인터 구조를 위해 분산 메모리 아키텍처를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 4 항 내지 제 20 항 중 어느 한 항에 종속하는 제 20 항에 있어서,상기 유닛 검색 구조와 유닛 위치 포인터 구조의 트리 검색 구조에 대한 각 검색 레벨은 독립적으로 액세스 가능한 메모리 아키텍처를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 21 항 중 어느 한 항에 있어서,상기 유닛 저장 구조는 링크된 리스트를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 22 항에 있어서,상기 링크된 리스트에 저장되는 유닛은 이들이 사전 결정된 순서에 있도록 함께 링크되는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 제 1 항 내지 제 23 항 중 어느 한 항에 있어서,통신 네트워크의 패킷에 대한 태그를 정렬하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 정렬 장치.
- 패킷 스케줄러로서,제 1 항 내지 제 24 항 중 어느 한 항에 따른 정렬 장치를 포함하는, 패킷 스케줄러.
- 상기 유닛 저장 구조 내에 있는 유닛의 레코드를 포함하는 유닛 검색 구조, 및 상기 유닛 저장 구조 내에 있는 유닛을 위한 위치 포인터를 포함하는 유닛 위치 포인터 구조를 포함하는 정렬 장치를 이용하여, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 방법으로서,상기 정렬 장치가 정렬되는 유닛을 수신하고, 상기 유닛 검색 구조가 정렬되는 상기 유닛을 판독하고, 정렬되는 상기 유닛에 가장 근접한 매칭 유닛을 검색하기 위해 상기 유닛 저장 구조 내에 있는 유닛의 그 레코드를 사용하며, 상기 유닛 위치 포인터 구조를 액세스하고 상기 가장 근접한 매칭 유닛을 위한 위치 포인터를 검색하는 단계와,상기 정렬 장치가 상기 유닛 저장 구조를 액세스하고 상기 사전 결정된 순서에 따라 적합한 위치에 상기 유닛 저장 구조 내로 저장되는 상기 유닛을 놓도록 상기 가장 근접한 매칭 유닛의 위치 포인터를 사용하는 단계를 포함하는, 사전 결정된 순서에 따라 유닛을 유닛 저장 구조로 정렬하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0524845.5A GB0524845D0 (en) | 2005-12-06 | 2005-12-06 | Sorting apparatus and method |
GB0524845.5 | 2005-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080071591A true KR20080071591A (ko) | 2008-08-04 |
Family
ID=35686149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087013640A KR20080071591A (ko) | 2005-12-06 | 2006-12-05 | 정렬 장치 및 방법 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8032543B2 (ko) |
EP (1) | EP1958053A1 (ko) |
JP (1) | JP2009518916A (ko) |
KR (1) | KR20080071591A (ko) |
CN (1) | CN101322099B (ko) |
CA (1) | CA2632538A1 (ko) |
GB (1) | GB0524845D0 (ko) |
WO (1) | WO2007066085A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8997154B2 (en) * | 2008-09-19 | 2015-03-31 | At&T Intellectual Property I, Lp | Apparatus and method for obtaining media content |
US10936283B2 (en) * | 2017-11-30 | 2021-03-02 | International Business Machines Corporation | Buffer size optimization in a hierarchical structure |
US11048475B2 (en) | 2017-11-30 | 2021-06-29 | International Business Machines Corporation | Multi-cycle key compares for keys and records of variable length |
US10896022B2 (en) | 2017-11-30 | 2021-01-19 | International Business Machines Corporation | Sorting using pipelined compare units |
US11354094B2 (en) | 2017-11-30 | 2022-06-07 | International Business Machines Corporation | Hierarchical sort/merge structure using a request pipe |
US20220050664A1 (en) * | 2019-02-19 | 2022-02-17 | Kyle Mitchell MARCROFT | Systems, methods, and devices for the sorting of digital lists |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4630234A (en) | 1983-04-11 | 1986-12-16 | Gti Corporation | Linked list search processor |
US5878410A (en) * | 1996-09-13 | 1999-03-02 | Microsoft Corporation | File system sort order indexes |
US6032207A (en) * | 1996-12-23 | 2000-02-29 | Bull Hn Information Systems Inc. | Search mechanism for a queue system |
FR2763410B1 (fr) * | 1997-05-13 | 1999-07-23 | Fihem | Dispositif de tri d'elements de donnees a arbre binaire et espaceur atm comportant un tel dispositif |
US6938097B1 (en) * | 1999-07-02 | 2005-08-30 | Sonicwall, Inc. | System for early packet steering and FIFO-based management with priority buffer support |
US6711153B1 (en) * | 1999-12-13 | 2004-03-23 | Ascend Communications, Inc. | Route lookup engine |
US6772179B2 (en) * | 2001-12-28 | 2004-08-03 | Lucent Technologies Inc. | System and method for improving index performance through prefetching |
US7467138B2 (en) * | 2003-10-28 | 2008-12-16 | International Business Machines Corporation | Algorithm for sorting bit sequences in linear complexity |
-
2005
- 2005-12-06 GB GBGB0524845.5A patent/GB0524845D0/en active Pending
-
2006
- 2006-12-05 JP JP2008543888A patent/JP2009518916A/ja not_active Withdrawn
- 2006-12-05 EP EP06820411A patent/EP1958053A1/en not_active Ceased
- 2006-12-05 US US12/095,993 patent/US8032543B2/en active Active
- 2006-12-05 WO PCT/GB2006/004526 patent/WO2007066085A1/en active Application Filing
- 2006-12-05 KR KR1020087013640A patent/KR20080071591A/ko not_active Application Discontinuation
- 2006-12-05 CA CA002632538A patent/CA2632538A1/en not_active Abandoned
- 2006-12-05 CN CN2006800457472A patent/CN101322099B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090182714A1 (en) | 2009-07-16 |
CA2632538A1 (en) | 2007-06-14 |
CN101322099A (zh) | 2008-12-10 |
US8032543B2 (en) | 2011-10-04 |
EP1958053A1 (en) | 2008-08-20 |
WO2007066085A1 (en) | 2007-06-14 |
GB0524845D0 (en) | 2006-01-11 |
CN101322099B (zh) | 2011-11-23 |
JP2009518916A (ja) | 2009-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7150021B1 (en) | Method and system to allocate resources within an interconnect device according to a resource allocation table | |
US7177978B2 (en) | Generating and merging lookup results to apply multiple features | |
US7689485B2 (en) | Generating accounting data based on access control list entries | |
US7352739B1 (en) | Method and apparatus for storing tree data structures among and within multiple memory channels | |
US7082492B2 (en) | Associative memory entries with force no-hit and priority indications of particular use in implementing policy maps in communication devices | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
US8397010B1 (en) | Convenient, flexible, and efficient management of memory space and bandwidth | |
US7372857B1 (en) | Methods and apparatus for scheduling tasks | |
US8295286B2 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US6434115B1 (en) | System and method for switching packets in a network | |
US7827182B1 (en) | Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations | |
US7197597B1 (en) | Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows | |
US7489699B2 (en) | Separation of data and control in a switching device | |
US7941606B1 (en) | Identifying a flow identification value mask based on a flow identification value of a packet | |
US20040205229A1 (en) | Method and apparatus for longest prefix matching in processing a forwarding information database | |
EP1128609A2 (en) | Packet classification engine | |
CN1736068A (zh) | 流量管理结构体系 | |
KR20080071591A (ko) | 정렬 장치 및 방법 | |
US20030137940A1 (en) | Pass/drop apparatus and method for network switching node | |
US6996559B1 (en) | IP address resolution methods and apparatus | |
US7043515B2 (en) | Methods and apparatus for modular reduction circuits | |
CN114124845A (zh) | 一种bd调度方法及装置 | |
Kounavis et al. | Sorting Packets by Packet Schedulers Using a Connected Trie Data Structure | |
EP1654657A4 (en) | FORCE NO HIT DISPLAYS FOR CAM ENTRIES BASED ON GUIDELINES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |