KR20010041803A - 메모리 장치에서 데이터값의 기억 어드레스를 결정하는방법 및 액세스 장치 - Google Patents

메모리 장치에서 데이터값의 기억 어드레스를 결정하는방법 및 액세스 장치 Download PDF

Info

Publication number
KR20010041803A
KR20010041803A KR1020007010078A KR20007010078A KR20010041803A KR 20010041803 A KR20010041803 A KR 20010041803A KR 1020007010078 A KR1020007010078 A KR 1020007010078A KR 20007010078 A KR20007010078 A KR 20007010078A KR 20010041803 A KR20010041803 A KR 20010041803A
Authority
KR
South Korea
Prior art keywords
data value
address
subsequent
current
stored
Prior art date
Application number
KR1020007010078A
Other languages
English (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 클라스 노린, 쿨트 헬스트룀
Publication of KR20010041803A publication Critical patent/KR20010041803A/ko

Links

Classifications

    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 메모리 장치에서 소정의 데이터값의 기억 어드레스를 결정하는 방법 및 액세스 장치에 관한 것이다. 데이터값은 이진 트리 데이터 구조에 따라서 칼럼 방향으로 순차적으로 증가하는 순서로 저장된다. 새로운 서브트리 루트 노드는 탐색될 데이터값이 이전의 서브트리에 위치되지 않을 때 이전의 리프 노드 어드레스로부터 계산된다. 새로운 서브트리 루트 노드가 항상 이전의 리프노드 어드레스 및 탐색 및 독출값 사이의 비교 결과로부터 계산되기 때문에, 로우 어드레스 변화의 횟수는 최소로 유지될 수 있으면서 서브트리 탐색을 위한 고속이 유지된다. 탐색 방법 및 액세스 장치는 포인터가 사용되지 않기 때문에 효율적이고, 조사될 후속 메모리 위치의 어드레스가 언제나 이전의 어드레스 및 최종 비교 결과로부터 계산될 수 있기 때문에 고속의 메모리이다.

Description

메모리 장치에서 데이터값의 기억 어드레스를 결정하는 방법 및 액세스 장치{METHOD AND ACCESS MEANS FOR DETERMINING THE STORAGE ADDRESS OF A DATA VALUE IN A MEMORY DEVICE}
다수의 엔트리를 포함하는 메모리내의 특정 데이터값에 대한 고속 탐색을 실행할 필요성이 종종 있다. 예를 들어, 개인의 개인 식별 번호가 메모리 장치에 저장되어 있고, 개인의 연령, 직업 또는 차량 등록게 대한 특정 정보가 이 번호와 결합되어 있다고 가정한다. 이러한 식별 번호는 다수의 숫자로 이루어질 수 있다, 즉메모리내에 다수의 값이 저장될 수 있다. 다른 예는 전화 번호가 저장되어 있고, 각 전화 번호가 이 전화 번호에 속하는 홈 어드레스를 나타내는 특정 정보와 결합되어 있는 CD-ROM이다.
개별 엔트리의 특정 위치가 저장되는, 즉 기억 어드레스가 저장되는 제2 메모리 장치가 사용되어야 하는 것을 피하기 위해, 복수의 데이터값을 포함하는 메모리 장치가 특정 데이터값에 대해 탐색되고, 데이터값이 발견될 때 관련 정보가 독출된다. 물론, 데이터값(개인 식별 번호 또는 전화 번호)은 메모리 장치에 랜덤하게 저장될 수 있고, 이 경우에 중요한 데이터값이 가능하게 위치될 수 있는 어디에서도 정보가 사용될 수 없기 때문에, 완전한 메모리가 데이터값을 위치시키기 위해 칼럼 및 로우 방향으로 탐색되어야 한다.
메모리 장치의 크기에 관한 거의 무한한 양의 시간을 취할 수 있는 메모리 장치를 통한 엔트리에서 엔트리로의 탐색을 방지하기 위해, 데이터값(그와 관련된 정보 제외)이 탐색 절차 중에 데이터값을 재위치시키도록 사용될 수 있는 소정의 규칙에 따라서 메모리 장치에 저장될 수 있다.
도 5는 데이터 엔트리가 로우 어드레스 부분 A 및 칼럼 어드레스 부분 B를 갖는 어드레스, 즉 어드레스 S = 〈A(X), B(X)〉에 의해 어드레스되는 2차원 메모리의 예를 도시한다. X는 특정 로우 어드레스 및 칼럼 어드레스가 교차하는 이진 트리내의 노드로서 간주될 수 있다. 도 5에 도시되어 있는 바와 같이, 개별 데이터값 D는 메모리 장치에 랜덤하게 저장될 수 있고, 일반적인 절차는 분류된 데이터값을 나타내기 위한 이진 트리 데이터 구조를 사용하는 것이다.
도 6에 도시되어 있는 바와 같이, 이진 트리 데이터 구조에는, 각 노드(데이터값이 입력 및 판독될 수 있는 교차점 X)가 2개의 다른 노드에 접속되어 있다. 이진 트리(또는 자체내에 맵핑되는 엔트리를 갖는 메모리 장치)를 통한 탐색은 이하와 같다. 데이터값 D1은 (로우 어드레스 A(X) 및 칼럼 어드레스 B(X)에 위치되는) 노드 X로부터 독출되고, 데이터값 D1은 기억 어드레스가 결정되는 데이터값 D와 비교된다. D〈D1이면, 트리의 좌측 분기 L이 취해지고, D1〈D이면 우측 분기 R이 취해진다. 데이터 구조(또는 메모리 장치내의 데이터값)는 노드 X2가 데이터값 D2〈D1을 가지고, 데이터값 D3〉D1을 가지는 방식으로 논리적으로 구성된다. 그러나, 개별 데이터값 D1, D2, D3은 메모리 장치에 본질적으로 랜덤하게 저장되어 있기 때문에, 이진 트리 탐색을 위해 A(X1),B(X1)에서 D1을 독출한 후에 D2또는 D3의 위치 또는 메모리 어드레스에 관한 정보가 제공되는 것이 필요하다.
따라서, 통상적으로 하나의 해결법은 각 데이터값 D1, D2, D3이 2개의 포인터, 즉 독출 데이터값보다 크거나(R) 작은(L) 데이터값의 위치를 나타내는 어드레스를 포함하는 2개의 추가의 메모리 위치를 결합(저장)하는 것이다. 논리적으로, 이진 트리 구조가 사용되고 있는 동안, 각 추가의 서브레벨에 저장된 데이터값은 도 5에 도시되어 있는 바와 같이 메모리 장치 자체내의 이전의 서브레벨(서브트리)의 데이터값보다 크거나 작고, 대체로 데이터값이 메모리 장치내에 랜덤하게 저장되는 동안에는 어드레스 포인터를 사용하여 논리적인 맵핑만이 있다.
상이한 어드레스 포인터를 갖는 데이터 엔트리를 사용하면 데이터값이 독출되어 탐색되는 데이터값과 비교되는 제1 노드인 경로 노드(RN)를 미리 정의할 필요가 있다. 그러한 탐색 알고리즘은 문헌(「Data Structures and Algorithm」, Aho Hopcroft, Ullmann; ISDN0-201-00023-7, pages 155 ff)에 개시되어 있다. 명백하게, 매우 다양한 데이터값을 저장하기 위해 필요한 메모리 공간은 각각 및 대부분의 데이터값을 이용하여 분기(l, R)을 나타내는 2개의 추가의 포인터 엔트리가 저장되는 것을 필요로 한다는 결점이 있다.
도 5에는, 메모리 장치내에 논리적인 이진 트리의 함축된 표시만이 있지만, 다른 해결법은 메모리 장치내의 고정 어드레스로, 즉 매트릭스 어레이의 성분으로 이진 트리 데이터 구조의 맵핑이 사용되는 것이다. 이 경우에, 분기한 어드레스는 메모리 장치내의 미리 정해진 위치로의 이진 트리 노드의 맵핑을 통해 사전에 공지되어 있으므로, 포인터가 여기에서 불필요하고 메모리 공간을 점유하지 않는다. 포인터가 평가될 필요가 없기 때문에, 탐색 시간이 문헌(「Data Structures and Algorithm」, Aho Hopcroft, Ullmann; ISDN0-201-00023-7, pages 155 ff)에 개시되어 있는 바와 같이, 더 높아질 수 있다. 그러한 메모리 장치내의 특정 위치로의 개별 노드 X1, X2, X3의 명백한 맵핑을 사용하여, 하나의 서브트리(!)내의 각각의 자(child) 노드 X2, X3의 어드레스가 계산될 수 있다. 실제로, 칼럼 어드레스 a에 의해 좌측 및 우측 분기를 나타내면, 좌측 분기는 아래 식과 같이 계산되는 반면에,
A(L(X)) = 2A(X) + 0
우측 분기(R)는 아래 식과 같이 계산된다.
A(R(X)) = 2A(X) + 1.
그러나, 그러한 맵핑 수단을 사용하면, 트리의 짧은 초기 횡단 후에, 어드레스의 최상위 부분이 대부분의 추가의 횡단 단계에서 변화한다. 따라서, 탐색 시간은 자신의 크기로 인해 동적 랜덤 액세스 메모리내에 저장되어야 하는 대형 트리에 대해 여전히 중요할 수 있다. 실제 응용을 위해, 특히 가능한 한 많은 어드레스의 최상위 부분의 변화를 방지하는 고속 방법이 필요하다.
본 발명은 메모리 장치에서 소정의 데이터값의 기억 어드레스를 결정하는 바법에 관한 것으로, 상기 데이터값은 노드, 분기, 서브트리(subtree) 및 리프(leaf)의 이진 트리 데이터 구조에 따라서 소정의 기억 어드레스에 저장된다. 특히, 메모리 장치는 2개의 부분, 즉 칼럼(column) 어드레스 부분 및 로우(row) 어드레스 부분으로 이루어진 어드레스에 의해 어드레스될 수 있으며, 메모리 장치내의 엔트리는 2차원 매트릭스 어레이내에 저장된다.
도 1a는 본 발명에 따르는 서브트리를 사용하는 이진 트리 구조를 도시하는 도면.
도 1b는 각 로우가 도 1a의 서브트리 상에 맵핑되는 메모리 장치를 도시하는 도면.
도 2는 본 발명에 따르는 탐색 방법을 도시하는 플로우차트.
도 3a는 새로운 서브트리의 새로운 루트 어드레스가 제1 로우내에 위치되는 리프 노드의 어드레스로부터 결정되는 방법의 예를 도시하는 도면.
도 3b는 도 3a에 도시되어 있는 메모리 장치의 제1 및 제2 로우에서의 2개의 이진 트리 탐색의 예를 도시하는 도면.
도 4는 DRAM 메모리에 저장된 데이터값에 액세스하는 본 발명에 따르는 액세스 장치의 실시예를 도시하는 도면.
도 5는 데이터값이 종래 기술에 따르는 특정 어드레스 위치에 랜덤하게 저장된 메모리 장치를 도시하는 도면.
도 6은 종래 기술에 따르는 이진 트리 탐색을 실행하는데 사용되는 관용 논리 이진 트리를 도시하는 도면.
전술한 바와 같이, 종래의 방법은 기억 집중 포인터 안(storage intensive pointer scheme)을 사용하거나 서브트리내의 좌측 분기 또는 우측 분기에 접속된 후속 노드의 어드레스를 결정하기 위해 칼럼 어드레스 A의 계산을 사용한다. 이것은 시간 소비적이고, 어드레스(로우 어드레스 B)의 최상위 부분이 이진 트리로의 대부분의 추가의 횡단 단계에서 변화하는 것을 필요로 한다.
따라서, 본 발명의 목적은 이전 트리 탐색 중에 기억 위치를 결정하는 포인터의 사용을 필요로 하지 않고, 기억 어드레스의 하나의 부분이 포인터를 사용하는 대신에 계산되는 전술한 방법보다 더 빠르게 기억 어드레스를 결정할 수 있는 메모리 장치에서 소정의 데이터값의 기억 어드레스를 결정하는 방법 및 액세스 장치를 제공하는 것이다.
이러한 목적은 청구항 1에 따르는 방법에 의해 해결된다. 더욱이, 이러한 목적은 청구항 13에 따르는 액세스 장치에 의해 해결된다.
본질적으로, 본 발명에 따르면, 어드레스의 최상위 부분에서 빈번한 변화를 실행할 필요가 없지만, 어드레스의 칼럼 부분 뿐만 아니라 어드레스의 로우 부분도 비교 결과 및 현재의 어드레스에 기초하여 결정되는 알고리즘이 제공될 수 있다는 것이 실현되고 있다. 본 발명에서는, 맵핑의 칼럼 어드레스 부분은 종래 기술에 설명되어 있는 맵핑에 대응하는 한편, 맵핑의 로우 부분 및 2개의 부분으로부터의 어드레스의 중요한 결합이 데이터값이 메모리내에 위치될 때까지 탐색 시간을 감소시킬 수 있다.
본 발명에 따르면, 서브트리내의 리프가 탐색 중에 도달될 때, 다른 서브트리의 신규 루트 노드가 결정된다. 이러한 서브트리내에서 데이터값이 발견되지 않으면, 탐색 절차는 이전 서브트리내의 후속 리프 트리로 진행하고 다른 서브트리의 신규 루트 트리를 결정한다. 이전 서브트리의 리프는 신규 서브트리를 결정하기 위해 순차적으로 사용된다. 탐색은 상부에서 하부까지의 트리의 횡단을 의미하기 대문에, 탐색은 주로 서브트리 내에서의 횡단을 야기한다. 최소 수의 단계만이 서브트리의 변화를 야기한다. 맵핑의 결과, 칼럼 어드레스만이 서브트리 내부에서의 횡단 중에 변화한다. 여기에서, 칼럼 어드레스의 변화를 야기하는 단계의 수는 최소화된다, 즉 로우 어드레스의 변화는 최소로 유지된다. 따라서, 탐색하는 시간은 현저하게 감소된다.
본 발명의 추가의 유리한 실시예 및 개량은 종속 청구항으로부터 취해질 수 있다. 이하, 본 발명은 첨부한 도면을 참조하고 그 실시예를 참조하여 설명된다.
도면에서, 동이하거나 유사한 참조 번호는 동일하거나 유사한 부품을 나타낸다.
본 발명의 방법 및 액세스 장치는 메모리 장치 바람직하게는, 동적 랜덤 액세스 메모리(DRAM)의 어드레스로의 이진 트리의 노드의 맵핑에 기초하고 있다. DRAM은 통상적으로 매우 조밀한 기억 장소를 제공하지만, 랜덤하게 분배된 액세스에 대하여 오히려 저속이다. 본 발명에 따르는 특정 어드레싱 모드를 사용하면, 매우 낮은 액세스 시간이 얻어질 수 있다. 이 점에 관하여, 특정 제한이 연속적인 액세스의 시퀀스의 어드레스에 의해 충족되어야 한다. 본 발명에 따르는 맵핑은 트리의 탐색이 이들 제한을 충족시키는 액세스의 시퀀스를 항상 야기하게 한다. 도달 가능한 성능 증가(시간 감소)는 약 10의 인수이다.
전술한 바와 같이, DRAM의 어드레스 비트는 로우 어드레스 B 및 칼럼 어드레스 A라고 칭해지는 2개의 부분으로 공통적으로 분할된다(도 5 참조). 통상적으로, 로우 및 칼럼 어드레스는 크기가 동일하다. DRAM의 내부 실행으로 인해, 연속적인 액세스가 칼럼 어드레스를 변화시키는 반면에 로우 어드레스가 가능한 많이 불변인 채로 유지됨으로써 달성될 수 있는 경우 상당히 짧다. 그러므로, 본 발명에 따르는 맵핑을 위한 신규 방법 및 액세스 장치는 트리 탐색 알고리즘이 로우 어드레스를 가능한 한 많이 불변인 채로 유지하는 기준을 충족하게 한다.
본 발명에 따르는 노드 맵핑
도 1a는 본 발명에 따르는 다수의 서브트리로의 이진 트리의 분할을 도시한다. 완전한 트리는 다수의 서브트리(1, 2, 3, 4, 5)를 포함한다. 도 1a에서, 각 서브트리는 k=1로 표시된 루트 노드를 갖는다. 유사하게, 서브트리의 각 리프 노드는 k=K로 표시된다. K는 서브트리의 깊이이다, 즉 각 서브트리내에 파선으롼 도시되는 다수의 다른 노드가 존재한다. 실제로, 도 1a의 각 도시된 서브트리는 서브트리당 전체의 2K노드에 대응하는 K 레벨을 포함한다.
루트 노드가 자신의 칼럼 및 로우 어드레스를 통해 액세스되면, 탐색은 각각 다수의 레벨 K를 갖는 서브트리에서 실행된다. 각 서브트리는 후속 서브트리의 각각의 루트 노드에 접속되는 (최저) 리프 노드를 갖는다. 도 1a에서, 서브트리의 루트 노드 또는 리프 노드 중 하나인 노드만이 명시되어 있는 것을 주목할 수 있다. 예를 들어, 서브트리 1의 리프 노드 LN은 서브트리 3의 루트 노드 X1에 직접 접속된다. 루트 노드 X1및 그 리프 노드 X2, X3사이에는 다수의 중간 노드가 존재한다. 루트 노드는 k=1에 위치되고, 리프 노드는 k=K에 위치된다. 서브트리 5의 리프 노드 LN은 전체 이진 트리의 리프 노드를 동시에 또한 구성한다. 따라서, 전체 트리의 경로 및 리프와 서브트리의 경로 및 리프 사이를 구별하는 것이 중요하다. 각 서브트리에서, 변수 k는 탐색되는 값이 발견될 때까지 또는 전체 트리의 리프 노드가 도달될 때까지 반복적으로 각 서브트리의 횡단에 대하여 1에서 k까지 진행한다.
서브트리내의 레벨의 수는 실제 메모리 하드웨어에 의존한다. 본 발명에 따르면, 메모리 위치로의 맵핑은 하나의 로우가 2K-1 엔트리, 즉 칼럼을 포함하는 방식으로 실행된다. 이하에서 알 수 있는 바와 같이, 본 발명에 따르는 각 서브트리 내에서의 탐색은 하나의 개별 로우 내에서의 탐색에 대응한다. 로우를 따르는(예컨대, 서브트리 1을 따르는) 메모리 위치는 특정 서브트리의 루트 노드, 서브트리 노드 및 리프 노드 LN에 대응한다. 각 독출 데이터값(D1, D2, D3)은 위치될 데이터값(D)와 비교되고, 서브트리내의 좌측 또는 우측 분기가 취해질 필요가 있는지의 결정이 행해진다.
데이터의 구성은 아래와 같다: 서브트리내의 노드의 레벨 k(k=1, 2, ..., K)이 더 깊어질수록, 데이터값은 더 높아진다. 이것은 칼럼을 따라서 순차적으로 증가하는 순서로 데이터를 구성하는 것과 등가이다. 즉, 특정 데이터값(D)이 위치되는 위치가 공지되어 있지 않음에도 불구하고, D1〈D2〈D3등은 공지되어야 한다. 이것은 트리내에서 (및 도 1a, 도 1b에 값(D1, D2, D3)로 표시되어 있는 바와 같이 서브트리내에서) 좌측에서 우측으로 값의 증가하는 순서에 따라서 분류된 완전히 평형인 이진 트리의 노드에 엔트리가 저장되는 것을 의미한다.
물론, 이진 트리내에서 좌측에서 우측으로 증가하는 순서로의 (메모리내에서 칼럼 방향으로 증가하는 순서로의) 개별 데이터값의 기억은 각 서브트리에서 사용되는 탐색 알고리즘에 영향을 준다. 전술한 바와 같이, 주 목적은 행 변화를 가능한 한 적게 하는 것, 즉 칼럼 방향 탐색만이 매우 고속이기 때문에 어드레스 S = 〈A, B〉의 최상위 부분을 가능한 덜 빈번하게 변화시키는 것이다. 칼럼 방향으로 증가하는 순서로의 데이터값의 기억은 칼럼 방향의 최종 엔트리가 각 서브트리의 리프 노드 LN을 구성해야 하는 결과를 유도한다. 얼마나 많은 리프 노드 LN(도 1b의 리프 노드 기억 위치 LN)이 할당되어야 하는지는 서브트리내의 레벨의 수, 즉 칼럼 방향의 메모리의 크기에 의존한다. 예를 들어, 레벨 K=3을 갖는 서브트리는 칼럼 방향으로 4개의 가장 우측 위치에 4개의 리프 노드 LN를 포함한다(도 3a, 도 3b의 예 참조).
제1 실시예(탐색 방법)
상기 설명된 바와 같이, 본 발명은 각 로우가 서브트리에 대응하고 특정 탐색 방법이 각 로우 또는 서브트리에 사용되도록 2차원 메모리 공간으로의 이진 트리의 맵핑을 제공한다. 탐색은 독출값 및 탐색되는 데이터값 사이에 정합이 발견되는 경우 또는 리프 노드 LF가 발견되는 경우, 각 서브트리내에서 정지된다. 따라서, 각 서브트리내에서 탐색을 실행하면서, 탐색 알고리즘은 리프 노드가 도달될 때만 로우 어드레스의 변경이 실행되기 때문에, 자신이 위치되는 레벨의 트랙을 유지해야 한다. 본 발명에서, 각 서브트리내에서 탐색 어드레스가 계산될 수 있다는 것이 밝혀졌을 뿐만 아니라 후속 서브트리의 특정 신규 루트 노드 어드레스가 비교 결과 및 리프 노드의 현재의 어드레스로부터만 게산될 수 있다는 것이 또한 밝혀졌다. 즉, 본 발명에 따르면, 후속 데이터값이 독출되는 노드의 기억 어드레스를 나타내는 신규의 완전한 어드레스 S = 〈A, B〉는 현재의 독출 메모리 위치의 현재의 어드레스로부터 상기 비교 결과에 기초하여 계산된다. 이것은 서브트리내의 후속 노드의 어드레스에 적용하고, 또한 탐색되는 후속 서브트리의 후속 루트 노드의 기억 어드레스를 발견하는데 유효하다.
도 2는 본 발명에 따르는 탐색 방법의 실시예에 따르는 플로우차트를 도시한다. 이러한 알고리즘에 대하여 완전한 이진 트리는 도 1b에 따라서 서브트리로 분할되고, 루트 서브트리 아래의 레벨 상의 가장 좌측 서브트리는 컷오프된다.
설명되어 있는 바와 같이, 서브트리내의 레벨의 수는 실제의 DRAM 하드웨어의 칼럼 어드레스내의 비트의 수와 동일하다. 따라서, 단계 S1에서 탐색 방법을 개시한 후에, 제1 서브트리(1)의 레벨은 k=1로 세트되고, 즉 탐색은 서브트리(1)의 루트 노드(RN)에서 개시된다(도 1a 참조). 이어서, 단계 S3에서, 탐색될 데이터값(I), 서브트리당 레벨의 수(K) 뿐만 아니라 루트 노드(RN)의 위치 또는 루트 어드레스 A(0), B(0)가 입력되어야 한다.
따라서, 제1 서브트리(1)의 루트 노드(RN)는 탐색 알고리즘의 엔트리 포인트이다.
단계 S4에서, 현재의 어드레스 〈A(0), B(0)〉에서의 데이터값(D)은 서브트리(1)의 루트 노드(RN)로부터 독출된다. 단계 S5에서, 독출 데이터값(D)은 위치되는 데이터값(I)과 비교된다. 정합 D=I가 단계 S5에서 형성되면, 발견된 데이터값(D)와 관련되는 정보가 단계 S7에서 독출된 후 탐색이 단계 S11의 종료까지 진행한다.
단계 S5에서, 독출 데이터값(D)이 탐색되는 데이터값(I)보다 큰 경우, 단계 S6은 리프 노드(LN)가 도달되는지의 여부를 결정한다. 이것은 통과 번호(k)와 소정 수의 레벨(K)를 비교함으로써 결정될 수 있다. 단계 S6에서, k 〈 K로 설정되면, 단계 S9, S14가 실행된다. 단계 S9에서, 아래의 수학식은 좌측 분기(I〈D)를 따라 놓이는 서브트리(1)내의 노드의 신규 어드레스를 계산하는데 사용된다.
(수학식 1)
여기에서, B(L(X)) 및 A(L(X))는 서브트리(1)내의 후속 서브노드의 신규 로우 어드레스 및 칼럼 어드레스를 나타낸다. 이어서, 깊이 레벨의 통과 번호(k)가 단계 S14에서 증가된다.
유사하게, 단계 S5에서, I〈D로 결정되면 루트 노드(RN)로부터 우측 분기가 취해지고, 단계 S8에서 서브트리의 총 깊이가 도달되지 않은 것으로 결정되면, 즉 k〈K이면, 단계 S12, S16이 단계 S9, S14와 유사하게 실행되며, 여기에서 수학식 2는 아래와 같이 서브트리(1)내의 후속 엔트리 또는 서브노드의 기억 어드레스를 정의한다.
(수학식 2)
단계 S5, 단계 S6, S8 및 단계 S9, S12로부터 알 수 있는 바와 같이, 서브트리 내에서, 컬럼 어드레스 부분 A만 변경되고, 즉 좌측 분기에 대하여 2배로 되거나 우측 분기에 대하여 우측으로 하나의 추가의 칼럼이 2배로 되거나 이동된다. 로우 어드레스 부분 B는 단계 S5에서의 결정에 무관하게 동일함을 유지한다는 것은 중요하다. 물론, 수학식 1, 수학식 2에 제공되는 정의는 칼럼 방향을 따라서 데이터값의 순차적으로 증가하는 순서의 직접적인 결과이다. 독축 데이터값이 칼럼 어드레스의 2회의 점프가 있는 것보다 큰 경우 및 독출 데이터값이 탐색될 데이터값(I)보다 작은 경우, 현재의 칼럼 어드레스의 2배에 1을 더한 것이다.
물론, 단계 S9, S12는 k〈K(K=하나의 서브트리내의 레벨의 수 또는 최대 깊이; K는 미리 정해진다)에 대해서만 실행되기 때문에, 신규 데이터값(D)는 단계 S4에서 단계 S9, S12에서 결정되는 바와 같이 새로운 어드레스 A, B에서 독출된다. 참조 번호 R은 각각 개별 단계 S4, S5, S6, S9, S14 및 S4, S5, S8, S12, S16를 통한 이러한 반복적인 실행을 나타낸다. 반복 프로세스 중에, 서브트리내에서 데이터값이 발견되면(I=D) 알고리즘은 단계 S11에서 종료로 진행한다.
그러나, k 반복 후에, 단계 S6 또는 단계 S8은 할당된 서브트리의 총 깊이가 도달되는지, 즉 리프 노드 기억 위치(LN)이 도달되었음을 나타내는 k=K인지를 결정한다. 데이터값의 칼럼 방향 증가 순서를 사용하면, 즉 후속 로우의 칼럼 위치 1에서의 데이터값이 항상 후속 더 작은 로우의 최고 칼럼 위치 2K에서의 데이터값보다 큰 각 로우에서 데이터값이 칼럼 방향으로 증가하는 것을 사용하면, 리프 노드(LN)가 칼럼 어드레스 A의 우측 단부에서의 최종 메모리 위치로 도 1b의 메모리 장치의 어드레스 공간에 대응하는 것이 명백하다.
서브트리(1)내의 그러한 리프 노드(LN)가 도달되면, 아래의 수학식 3, 수학식 4가 추가의 서브트리의 루트 노드의 새로운 로우 어드레스 및 칼럼 어드레스를 각각 계산하기 위해 단계 S10, S13에서 이용된다.
(수학식 3)
(수학식 4)
리프 노드의 발생의 경우에, 칼럼 어드레스 A는 단계 S5에서의 결정과 무관하게 제1 칼럼으로 세트되는 것, 즉 A(L(X))=A(R(X))=1인 것을 수학식 3, 수학식 4로부터 알 수 있다. 그러나, 단계 S5에서의 결정에 따라서, 새로운 로우 어드레스 B가 선택된다.
리프 노드(LN)로부터의 화살표가 수학식 3, 수학식 4에 따르는 계산을 나타내는 도 1b로부터 후속 서브트리의 후속 루트 노드가 칼럼 A=1에 위치되지만, 기대할 수 있는 바와 같이 후속 인접 서브트리(2)에 위치되지는 않는다. 대비에 의해, 수학식 3, 수학식 4는 탐색될 후속 서브트리의 후속 루트 노드의 새로운 어드레스가 수학식 4에 대해 전치되는 리프 노드 어드레스 및 수학식 3에 대해 전치된 어드레스 -1에 대응하는 일종의 칼럼-로우 맵핑을 실행한다.
단계 S13에서 탐색되는 후속 서브트리의 후속 루트 노드를 결정하면, 명백하게 후속 서브트리에서의 탐색은 레벨 1에서, 즉 루트 노드 어드레스에서 시작하므로, k는 단계 S17에서 k=1로 리세트된다. 그 후 다시 단계 S4에서, 후속 데이터값(D)이 독출되고, D 및 I 사이에 정합이 발견될 때까지 또는 새로운 서브트리의 리프 노드가 다시 발견될 때까지, 단계 S5, S6, S9, S14 또는 단계 S5, S8, S12, S16이 반복적으로 실행된다.
물론, 도 1b에서 서브트리 4 또는 서브트리 5 내에서도, 데이터값이 발견되지 않고 결국 리프 노드(LN)가 도달되는 것이 발생할 수 있다. 예를 들어, 리프 노드(LN)가 서브트리 5에 도달되면, 수학식 3과 수학식 4는 둘다 로우 및 칼럼의 번호가 동일한 경우 어드레스 공간에 여전히 포함되는 어드레스를 생성할 수 없다. 로우의 번호가 칼럼의 번호보다 높은 경우, 물론 새로운 서브트리의 더욱 새로운 계산이 실행될 수도 있다. 그러나, 예를 들어, 리프 노드가 서브트리 4에 도달될 때 추가의 서브트리 루트 노드가 결정될 수 없는 경우 문제가 발생할 여지가 있다. 첫번째로, 이것은 데이터값이 서브트리 4를 통해 이진 탐색에서 발견되지 않은 것을 나타내고, 두번째로, 탐색될 데이터값(I)이 LN의 기억 어드레스 아래의 로우 및 칼럼 어드레스에 저장되는 모든 데이터값(D)보다 명백하게 크거나 작아야 된다. 이러한 경우에, 알고리즘은 서브트리 4의 루트 노드 어드레스가 계산되는(도 1b에서 파선으로 표시) 서브트리 1내이 리프 노드(LN)의 기억 어드레스를 다시 추적한다. 이어서, 서브트리 1내의 우측으로의 후속 리프 노드(LN)가 새로운 서브트리 루트 노드의 계산을 위한 기초로서 사용된다. 즉, 칼럼 어드레스 A는 한 칼럼 A+1로 진행되는 반면에 B는 일정하게 유지된다. 물론, 이것은 예컨대, 서브트리 5에 대한 새로운 루트 노드의 계산을 유도한다.
서브트리 1내의 리프 노드 어드레스로의 복귀는 모든 독출 데이터값(D)이 탐색될 데이터값(I)보다 작다는 것을 자동으로 의미하므로, (파선으로 표시되어 있는 바와 같이 리프 노드 어드레스의 재계산을 통해) 리프 노드(LN)로 복귀한 후에 (1이 있는 경우) 리프 노드를 좌측으로 진행시키는 것은 실제로 불필요하다. 따라서, 칼럼 방향(서브트리의 수평 방향)으로, 모든 리프 노드는 증가하는 순서로 새로운 서브트리의 루트 노드를 결정하는데 사용된다. 예컨대, 서브트리 5의 최종 리프 노드(LN)가 도달되면, 데이터값(I)은 특정 어드레스 공간에서 메모리 장치에 포함되지 않는다.
바람직하게는 단계 S5에서, D 및 I의 정합이 특정 허용 오차값 내에서 설정되도록, 즉인 경우 정합이 발견되도록 특정 허용 오차가 허용되며, 여기에서, ΔD는 미리 정해진 특정 허용 오차를 나타낸다.
K=3에 대한 예
도 3a, 도 3b는 이전 표현이 칼럼 어드레스 A 및 로우 어드레스 B에 대해 사용되는 특정예에 대한 도 1a, 도 1b, 도 2의 전체적인 알고리즘을 도시한다. K=3은 원칙적으로 8 칼럼 및 8 로우가 메모리 어드레스 공간에 제공되는 것을 의미한다. 수학식 1, 수학식 2는 이진 트리의 상부에서 제1 루트 노드(RN)가 어드레스 A(0), B(0)=(000,000)을 갖는 경우 칼럼 어드레스에서 변화가 없으므로, 제1 칼럼 어드레스 A=000은 사용되지 않는다. 따라서, 도 2의 단계 S4가 제1 시간 동안 실행될 때 조사될 제1 노드는 항상 도 3a의 메모리내의 좌상측 메모리 위치, 즉 제1 서브트리의 상부 및 제1 루트 노드에 대해 B(0)=0|A(0)=1에 있게 된다.
로우 및 칼럼의 어드레스 번호에 대한 이진 표시를 사용하여, 도 3b는 어드레스 000,001을 갖는 제1의 2개의 로우에 위치되는 서브트리 1 및 서브트리 2를 도시한다. 좌측 분기(L)에 대한 2로의 승산은 좌측으로의 칼럼 어드레스 부분 A의 시프팅을 의미한다. 좌측 분기(R)는 칼럼 어드레스 부분 A가 좌측으로 시프트되어 1만큼 가산되게 한다. 그러므로, 개별 어드레스 및 k=2에서의 중간 노드 및 k=3에서의 리프 노드는 특정 데이터값(D)이 위치되는 특정 로우 및 칼럼에 대응한다. 도 3b는 각각의 중간 노드 및 리프 노드에서의 데이터값 D=3, 5, 6, 7,...을 도시한다. 명백하게도, 도 2의 알고리즘은 4개의 노드 0,100 또는 0,101 또는 0,110 또는 0,111 중 하나에 도달할 때마다 후속 서브트리의 새로운 루트 노드 어드레스를 계산한다.독출 데이터값(D=7)이 탐색될 데이터값(I)보다 큰 상황에서 어드레스 0,100에 대하여 허용되지 않는 새로운 루트 노드의 계산을 위한 단 하나의 분기가 존재한다. 이러한 경우에, 실제로 어드레스 0,100으로부터의 좌측 분기가 취해져야 한다, 즉 수학식 3이 이용되어야 한다. 그러나, 이 경우에, 좌측 분기에 대하여 수학식 3은 B(L(X))=2K(000)+2(100)-2K=0000+1000-1000=0000을 산출한다. 따라서, 000,100 및 000,001 사이에 파선 또는 도 1a에 절단으로 표시된 제1 좌측 분기는 탐색이 다시 루트 노드 어드레스로부터 시작하기 때문에, 취해져서는 않된다.
그러나, 우측 분기를 취할 때, B(R(X))=001이며, 이것은 어드레스 0,100을 갖는 가장 좌측 리프 노드(LN)가 001,001의 후속 리프 노드 루트 어드레스를 초래한다. 도 3b에 도시되어 있는 바와 같이, 이것은 제2 로우내에 위치되는 서브트리 2의 루트 노드에 실제로 대응한다. 도 3a로부터 알 수 있는 바와 같이, 서브트리 1의 각각의 리프 노드는 특정 로우 어드레스에서 위치 A=1에 위치되는 새로운 서브트리의 새로운 루트 노에 맵핑 또는 전송될 수 있다. 로우의 수가 적어도 칼럼의 크기와 동일한 크기이면, 서브트리 1의 각 리프 노드(LN)가 제1 칼럼내의 새로운 루트 노드 어드레스로 이미지화 또는 전치될 수 있다.
도 3a, 도 3b에서 또한 알 수 있는 바와 같이, 칼럼 방향으로 순차적으로 증가하는 순서의 데이터값이 존재하는 경우, 수학식 1 내지 수학식 4에 의해 나타낸 탐색 알고리즘은 다수의 로우 어드레스 변화가 이용되게 하지만, 완전한 메모리 매트릭스는 탐색될 데이터값(I)과의 정합(허용 오차 내의)을 발견하기 위해 여전히 탐색된다.
바람직하게는 칼럼 어드레스 부분 A 및 로우 어드레스 부분 B의 이진 표시를 사용하면, 2만으로의 승산이 시프트 레지스터에서 좌측으로의 어드레스의 시프팅을 의미하기 때문에, 탐색이 용이하게 될 수 있다.
실제로, 도 3a 및 일반 수학식 3, 수학식 4로부터 알 수 있는 바와 같이, 새로운 로우 어드레스 B(A로부터의 좌측 분기에 대하여)는 리프 노드의 칼럼 어드레스 부분 A의 역, 즉을 의미한다. 유사하게, 리프 노드로부터의 우측 분기에 대하여, 새로운 루트 노드의 새로운 로우 어드레스 부분은 리프 노드 칼럼 어드레스 +1의 역, 즉이다. 이것은 물론 본질적으로 이진 트리의 상부에서의 제1 루트 노드(RN)가 B(0)=0, A(0)=1로 할당되는 것으로 가정한다.
이하, 도 1 내지 도 3에 도시되어 있는 바와 같은 그러한 탐색 방법을 사용하여 본 발명에 따르는 액세스 장치의 실시예의 하드웨어 구현을 도 4를 참조하여 설명할 것이다.
제2 실시예(하드웨어 수행)
도 4에서, DRAM은 메모리 장치를 나타내고, 액세스 장치는 독출 데이터값(D)과 상기 데이터값(I)을 비교하는 비교 수단(MC)을 포함하여, 상기 독출 데이터값(D)이 탐색될 상기 데이터값(I)보다 큰지 작은지를 결정한다. 비교 수단에 의해 D 및 E 사이에 정합이 발견되면, 정합 신호(M)이 출력된다. 비교 결과(C)는 상기 값(D)이 값(I)보다 큰지 작은지를 나타낸다. 독출 수단(R)(상세하게 도시하지 않음)은 트리의 횡단 중에 중간 로우 및 칼럼 어드레스를 유지하는 2개의 레지스터(RA, RB)로부터 소정의 현재 탐색 어드레스 a, b에서의 데이터값을 독출한다.
액세스 장치는 상기 비교 결과(C) 및 상기 현재 탐색 어드레스 A, B에 기초하여 데이터값에 대하여 후속하여 탐색될 완전한 탐색 어드레스를 결정하는 레지스터(RB, RA)를 포함하는 결정 수단(SEQ, SMB, SMA)을 더 포함한다.
결정 수단은 상기 제1 및 제2 레지스터와, 상기 비교 결과(C), 현재의 어드레스 B, A 및 상태 머신(SEQ)에 의해 출력되는 제어 신호(S)에 의존하여 탐색될 후속 칼럼 및 로우 어드레스 A', B'를 계산하는 제1 및 제2 계산 회로(SMB, SMA)를 포함한다.
상태 머신(SEQ)은 이진 트리 데이터 구조를 통해 탐색하는 동안 탐색 상태(실제로 K를 모니터하므로 본질적으로 도 2의 단계 S6, S8을 실행한다)를 결정하고, 비교 결과에 기초하여 제어 신호9S)를 결정한다. 근본적으로, 상태 머신(SEQ)은 카운터와, 내부 STATEt에 기초하여 제어 신호(S)를 발생하는 상태 결정 수단(STDM)을 포함한다. 근본적으로, 상태 머신의 내부 상태는 (D〈I인지 아닌지를 나타내는) 새로운 비교 결과(C)가 비교 수단(MC)에 의해 출력될 때마다 갱신되는 현재의 레벨 번호(k)에 대응한다. 즉, 상기 상태는 서브트리의 루트 노드에 대해서 0이고, 리프 이외의 노드(루트 노드 제외)에 대해서 1 내지 K-1이며, 리프 노드에 대해서 K이다. 유사하게, 제어 신호(S)는 루트 노드에 대해서 0이고, 리프 이외의 노드(서브 노드)에 대해서 1이며, 리프 노드에 대해서 2이다. 루트 노드로부터 상태 0에서 시작하여, 상태 머신(SEQ)은 트리를 상부에서 아래로 횡단할 때 서브트리의 분할에 따라서 진행한다. 상기 신호(S)는 맵핑에 따라서 SMB 및 SMA에서의 어드레스 계산의 유형을 선택한다.
특히, 액세스 장치의 개별 아이템은 아래의 기능을 실행한다. 제1 계산 회로(SMB)는 K가 서브트리내의 레벨의 번호인 아래의 기능(기능적인 표시로 제공)을 실행한다.
(수학식 6)
여기에서, C(D〉I에 대해서는 0이고 D〈I에 대해서는 1)는 상기 비교 결과를 나타내고, B 및 B'는 현재 및 후속 칼럼 어드레스를 나타내며, S는 제어 신호를 나타내고, K는 서브트리내의 상기 소정수의 레벨을 나타내며, A는 현재의 로우 어드레스를 나타낸다.
제2 계산 회로(SMA)는 아래의 기능(기능적인 표시로 제공)을 실행한다.
(수학식 7)
여기에서, C는 비교 결과를 나타내고, A 및 A'는 현재 및 후속 로우 어드레스를 나타내며, S는 제어 신호를 나타낸다.
상태 머신(SEQ)은 아래의 수학식 8 및 수학식 9에 기초하여 제어 신호(S)를 계산한다.
(수학식 8)
여기에서, 상기 상태 머신(SEQ)의 상태 결정 수단(STDM)은 아래의 수학식 9에 따라서 상태 머신(SEQ)의 내부 상태(STATEk)(즉, 도 2의 값 K)를 계산한다.
(수학식 9)
여기에서, STATEt및 STATEt+1은 시간 t 및 t+1에서의 상태를 나타내고, t는 비교 결과 여기에서는, 0〈t〈K로부터 카운트되는 비교의 횟수를 나타내며, STATEt=0은 제1 비교가 이진 트리 데이터 구조의 루트 노드(RN)에 대응하는 메모리 위치에서 실행될 때의 상태를 나타낸다.
도 1b, 도 3a에 파선으로 이미 나타내는 바와 같이, 도 4의 액세스 장치는 또한 루트 노드 서브트리 어드레스가 계산된 리프 노드 어드레스를 각각 저장한다. 후속 서브트리 탐색이 정합을 생성하지 않는 경우, 즉 후속 서브트리의 리프 노드가 탐색되는 경우 (및 새로운 서브트리 노드의 재계산이 로우 어드레스 B가 메모리(DRAM)의 로우 어드레스 공간을 초과하는 결과를 초래하는 경우), 이전의 서브트리의 후속 상위 또는 하위 리프 노드 어드레스가 새로운 서브트리 루트 노드의 계산을 위한 기초로서 취해진다. 따라서, 도 4에 도시되어 있는 액세스 장치는 또한 완전한 메모리의 완전한 탐색을 실행할 수 있다.
도 4에서, 리프 노드 모니터(LN-MON)는 후속 서브트리가 계산된 리프 노드의 최종 어드레스를 저장한다. 즉, (서브트리의 완전한 탐색이 이루어졌음을 나타내는) S=2인 경우, 새로운 루트 노드가 수학식 3, 수학식 4에 따라서 현재의 칼럼 어드레스 A 및 로우 어드레스 B로부터 계산된다. 서브트리를 통한 후속 반복 후에, 리프 노드(LN)가 다시 발견되고, 이러한 리프 노드 어드레스로부터 새로운 루트 노드의 갱신된 계산이 메모리의 메모리 어드레스 공간에 포함되지 않는 로우 어드레스를 결과로 생성하는 경우, 리프 노드 모니터(LN-MON)는 이전의 서브트리로부터 최종 리프 노드 어드레스를 입력하고, 칼럼 어드레스 부분 A로부터/로 값 1을 감산/가산한다. 좌측 (-1) 리프 노드 어드레스에 기초하여 계산된 루트 노드 어드레스가 데이터 아이템이 발견되지 않게 하는 경우, 후속 단계에서, 구 리프 노드의 우측으로의 리프 노드(+1)가 후속 루트 노드 어드레스를 계산하기 위한 기초로서 취해진다. 이전의 서브트리의 리프 노드 어드레스에 기초하는 루트 노드 어드레스를 각각 갖는 모든 서브트리가 메모리에 위치되는 데이터값을 생성하지 않는 경우, 데이터값(I)이 메모리내에 존재하지 않는 것으로 명확하게 결론지어질 수 있다.
설명한 바와 같이, 이들 환경에서, 현재 고려되는 리프 노드의 촤측으로 및 우측으로의 후속 리프 노드만이 후속 루트 노드 어드레스의 계산을 위한 기초로서 취해지는 것이 충분한 것으로 보인다. 예를 들어, 도 3a에서, 이전의 서브트리 리프 노드 어드레스 000,110에 기초하는 2개의 루트 노드 100,001 및 101,001이 둘다 자신의 관련 서브트리를 통해 탐색할 때 정합을 이루지 않는 경우, 좌측 하위 리프 노드 000,101 및 후속 상위 리프 노드 000,111이 후속 서브트리의 새로운 루트 노드 어드레스를 계산하기 위한 기초로서 취해진다. 언제나 서브트리 1에서 리프 노드 000,101에 도달할 때, 위치될 데이터값(I)이 리프노드 어드레스 000,100에 위치되는 데이터값(D=7)보다 크기 때문에, 리프 노드 어드레스 000,100으로 후행할 이유가 없다. 따라서, 연속적으로 3개의 리프 노드를 사용하면 완전한 메모리 어레이가 데이터값(I)을 탐색하는 결과를 초래한다.
상기 설명한 바와 같이, 본 발명에 따르는 방법 및 액세스 장치는 서브트리의 변화가 야기되기 전에 최소수의 단계만을 사용한다. 맵핑으로부터 초래되는 바와 같이, 칼럼 어드레스는 서브트리의 내부의 횡단 중에만 변화한다. 동적 랜덤 액세스 메모리가 사용되어야 할 때, 데이터의 양으로 인해, 본 발명은 이진 트리 데이터 구조에 따라서 분류되는 데이터값에 대한 고속 탐색 엔진을 제공할 수 있다. 시간의 감소는 크기의 차수이다. 그러므로, 본 발명은 시간이 대용량 메모리에 데이터값을 위치시키는데 임계적인 모든 기술적인 영역에 사용될 수 있다. 데이터값이 칼럼 방향으로 증가하는 순서로 저장되는 제한만이 있다.
상기 설명에서, 로우는 기억 방향이 각각 칼럼 및 로우로 표시되는 메모리의 구성에 의존하기 때문에, 칼럼으로 교환될 수 있다.
전술한 바와 같이, 본 발명에 따르면, 메모리를 통한 고속 탐색이 포인터 없이 달성될 수 있으며, 여기에서 로우 부분 및 칼럼 부분으로 이루어진 완전한 기억 어드레스는 이전의 비교 결과 및 이전의 기억 어드레스로부터 각각 결정될 수 있다.

Claims (22)

  1. 메모리 장치(DRAM)내의 노드, 분기, 서브트리 및 리프의 이진 트리 데이터 구조에 따라서 소정의 기억 어드레스(A(X), B(X))에 저장되는 소정의 데이터값(D)의 기억 어드레스(A(X), B(X))를 결정하는 방법에 있어서,
    a) 상기 메모리 장치로부터 소정의 현재 탐색 어드레스(A(X), B(X))에서 데이터값(D)을 독출하는 단계와;
    b) 상기 독출 데이터값(D)과 데이터값(I)을 비교하여 상기 독출 데이터값(D)이 탐색될 상기 데이터값(I)보다 크거나 작은지를 결정하는 단계와;
    c) 상기 비교 결과(C) 및 상기 현재 어드레스(A(X), B(X))에 기초하여 데이터값에 대해 탐색될 완전한 후속 탐색 어드레스(A', B')를 결정하는 단계를 포함하고;
    d) 단계 a) 내지 단계 c)는 상기 독출 데이터값(D)이 소정의 허용 오차(ΔD)내에서 탐색되는 상기 데이터값(I)과 정합할 때까지 반복적으로 실행되는 소정의 데이터값의 기억 어드레스 결정 방법.
  2. 제1항에 있어서,
    상기 데이터값은 소정수의 레벨(K)을 갖는 이진 트리 데이터 구조로 저장되고, 상기 단계 c)에서 상기 후속 어드레스는 상기 비교 결과(C)에 기초하여 결정되며, 상기 현재 탐색 어드레스 및 상기 소정수(K)의 레벨은 상기 단계 b)에서 다수의 비교가 실행된 후에 상기 소정수(K)의 레벨과 동일한 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  3. 제1항에 있어서,
    상기 데이터값(D)은 최하위 데이터값 및 최상위 데이터값의 범위내에 있고, 상기 범위의 중간값에 대응하는 중간 데이터값은 소정의 루트 어드레스(A(0), B(0); 루트)에 저장되며, 단계 a)가 제1 시간동안 실행될 때, 상기 루트 어드레스는 상기 현재 어드레스로서 사용되는 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  4. 제1항에 있어서,
    상기 데이터값은 로우 및 칼럼의 매트릭스 배열로 상기 메모리 장치내에 저장되고, 각 데이터값(D)에는 로우 어드레스(A) 및 칼럼 어드레스(B)가 할당되는 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  5. 제1항 및 제4항에 있어서,
    단계 b)에서의 상기 비교 결과(C)는 독출 데이터값이 탐색될 상기 데이터값보다 작은 것(분기 좌측)을 나타내고, 단계 c)에서의 상기 후속 어드레스는 아래의 수학식 1에 의해 계산되며:
    (수학식 1)
    여기에서, X는 현재의 어드레스(A(X), B(X))에 의해 정해지는 현재의 메모리 위치를 나타내고, A(X) 및 B(X)는 현재의 메모리 위치(X)의 칼럼 어드레스 및 로우 어드레스를 나타내며, L(X)는 현재의 메모리 위치(X)에 저장되는 데이터값보다 작은 데이터값이 저장되는 후속 메모리 위치를 나타내고, A(L(X)) 및 B(L(X))는 후속 메모리 위치(L(X))의 칼럼 어드레스 및 로우 어드레스를 나타내는 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  6. 제1항 및 제4항에 있어서,
    단계 b)에서의 상기 비교 결과는 독출 데이터값이 탐색될 상기 데이터값보다 큰 것(분기 우측)을 나타내고, 단계 c)에서의 상기 후속 어드레스는 아래의 수학식 2에 의해 계산되며:
    (수학식 2)
    여기에서, X는 현재의 어드레스(A(X), B(X))에 의해 정해지는 현재의 메모리 위치를 나타내고, A(X) 및 B(X)는 현재의 메모리 위치(X)의 칼럼 어드레스 및 로우 어드레스를 나타내며, R(X)는 현재의 메모리 위치(X)에 저장되는 데이터값보다 큰 데이터값이 저장되는 후속 메모리 위치를 나타내고, A(R(X)) 및 B(R(X))는 후속 메모리 위치(R(X))의 칼럼 어드레스 및 로우 어드레스를 나타내는 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  7. 제1항, 제2항 및 제4항 중 어느 한 항에 있어서,
    단계 b)에서의 상기 비교 결과(C)는 독출 데이터값이 탐색될 상기 데이터값보다 작은 것(분기 좌측)을 나타내고, 단계 c)에서의 상기 후속 어드레스는 아래의 수학식 3에 의해 계산되며:
    (수학식 3)
    여기에서, X는 현재의 어드레스(A(X), B(X))에 의해 정해지는 현재의 메모리 위치를 나타내고, A(X) 및 B(X)는 현재의 메모리 위치(X)의 칼럼 어드레스 및 로우 어드레스를 나타내며, L(X)는 현재의 메모리 위치(X)에 저장되는 데이터값보다 작은 데이터값이 저장되는 후속 메모리 위치를 나타내고, A(L(X)) 및 B(L(X))는 후속 메모리 위치(L(X))의 칼럼 어드레스 및 로우 어드레스를 나타내며, 2K은 메모리 장치내의 칼럼의 수인 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  8. 제1항, 제2항 및 제4항 중 어느 한 항에 있어서,
    단계 b)에서의 상기 비교 결과는 독출 데이터값이 탐색될 상기 데이터값보다 큰 것(분기 우측)을 나타내고, 단계 c)에서의 상기 후속 어드레스는 아래의 수학식 4에 의해 계산되며:
    (수학식 4)
    여기에서, X는 현재의 어드레스(A(X), B(X))에 의해 정해지는 현재의 메모리 위치를 나타내고, A(X) 및 B(X)는 현재의 메모리 위치(X)의 칼럼 어드레스 및 로우 어드레스를 나타내며, R(X)는 현재의 메모리 위치(X)에 저장되는 데이터값보다 큰 데이터값이 저장되는 후속 메모리 위치를 나타내고, A(R(X)) 및 B(R(X))는 후속 메모리 위치(R(X))의 칼럼 어드레스 및 로우 어드레스를 나타내며, 2K은 메모리 장치내의 칼럼의 수인 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  9. 제5항 또는 제7항에 있어서,
    상기 후속 어드레스에 저장되는 상기 데이터값은 현재의 어드레스에 저장된 데이터값의 1/2인 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  10. 제6항 또는 제8항에 있어서,
    상기 후속 어드레스에 저장되는 상기 데이터값은 현재의 어드레스에 저장된 데이터값의 1.5배인 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  11. 제1항에 있어서,
    상기 단계 d) 후에, 상기 정합 데이터값과 관련하여 저장된 정보가 상기 현재의 어드레스를 갖는 메모리 위치로부터 독출되는 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  12. 제1항에 있어서,
    상기 메모리 장치는 DRAM 또는 캐시 메모리 중 하나인 것을 특징으로 하는 소정의 데이터값의 기억 어드레스 결정 방법.
  13. 메모리 장치(DRAM)내의 노드, 분기, 서브트리 및 리프의 이진 트리 데이터 구조에 따라서 소정의 기억 어드레스(A(X), B(X))에 저장되는 소정의 데이터값(D)의 기억 어드레스(A(X), B(X))를 결정하는 메모리 장치용의 액세스 장치에 있어서,
    a) 상기 메모리 장치로부터 소정의 현재 탐색 어드레스(A(X), B(X))에서 데이터값(D)을 독출하는 독출 수단(R)과;
    b) 상기 독출 데이터값(D)과 데이터값(I)을 비교하여 상기 독출 데이터값(D)이 탐색될 상기 데이터값(I)보다 크거나 작은지를 결정하는 비교 수단(MC)과;
    c) 상기 비교 결과(C) 및 상기 현재 어드레스(A(X), B(X))에 기초하여 데이터값에 대해 탐색될 완전한 후속 탐색 어드레스(A', B')를 결정하는 결정 수단(SEQ, SMB, SMA, RB, RA)을 포함하고;
    d) 상기 독출 수단, 상기 비교 수단 및 상기 결정 수단은 상기 독출 데이터값(D)이 소정의 허용 오차(ΔD)내에서 탐색되는 상기 데이터값(I)과 정합할 때까지 상기 독출, 상기 비교 및 상기 결정을 반복적으로 실행하는 액세스 장치.
  14. 제13항에 있어서,
    상기 데이터값은 로우 및 칼럼의 매트릭스 배열로 상기 메모리 장치(DRAM)내에 저장되고, 각 데이터값(D)에는 로우 어드레스(A) 및 칼럼 어드레스(B)가 할당되는 것을 특징으로 하는 액세스 장치.
  15. 제14항에 있어서,
    상기 결정 수단은:
    후속 칼럼 및 로우 어드레스(B', A')를 유지하는 제1 및 제2 레지스터(RB, RA)와;
    상기 비교 결과(C), 현재의 어드레스(B, A) 및 제어 신호(S)에 따라서 탐색될 후속 칼럼 및 로우 어드레스(A', B')를 계산하는 제1 및 제2 계산 회로(SMB, SMA)와;
    이진 트리 데이터 구조를 통해 탐색하는 동안 탐색 상태(STATEt)를 결정하고, 상기 비교 결과(C)에 기초하여 상기 제어 신호(S)를 결정하는 상태 머신(SEQ)을 포함하는 것을 특징으로 하는 액세스 장치.
  16. 제14항에 있어서,
    상기 메모리 장치내의 데이터값은 소정수의 레벨(K)을 갖는 이진 트리 데이터 구조로 저장되고, 상기 상태 머신(SEQ)은 상기 비교 수단(MC)에 의해 실행되는 비교(C)의 횟수를 카운트하는 카운터(CNT)를 포함하는 것을 특징으로 하는 액세스 장치.
  17. 제15항에 있어서,
    상기 비교 결과(C)는 아래의 수학식 5에 따라서 상기 비교 수단(MC)에 의해 계산되고;
    (수학식 5)
    여기에서, C는 비교 결과를 나타내고, I는 탐색될 데이터값을 나타내며, D는 독출 데이터값을 나타내는 것을 특징으로 하는 액세스 장치.
  18. 제17항에 있어서,
    상기 제1 계산 회로(SMB)는 아래의 수학식 6에 따라서 후속 칼럼 어드레스(B')를 계산하고;
    (수학식 6)
    여기에서, C는 상기 비교 결과를 나타내고, B 및 B'는 현재 및 후속 칼럼 어드레스를 나타내며, S는 제어 신호를 나타내고, K는 이진 트리 데이터 구조내의 상기 소정수의 레벨(K)을 나타내며, A는 현재의 로우 어드레스를 나타내는 것을 특징으로 하는 액세스 장치.
  19. 제17항에 있어서,
    상기 제2 계산 회로(SMA)는 아래의 수학식 7에 따라서 후속 로우 어드레스(A')를 계산하고:
    (수학식 7)
    여기에서, C는 비교 결과를 나타내고, A 및 A'는 현재 및 후속 로우 어드레스를 나타내며, S는 제어 신호를 나타내는 것을 특징으로 하는 액세스 장치.
  20. 제15항에 있어서,
    상기 상태 머신(SEQ)은 아래의 수학식 8에 기초하여 상기 제어 신호(S)를 계산하고:
    (수학식 8)
    여기에서, 상기 상태 머신(SEQ)의 상태 결정 수단(STDM)은 아래의 수학식 9에 따라서 상태 머신(SEQ)의 내부 상태(STATEt)를 계산하며:
    (수학식 9)
    여기에서, STATEt및 STATEt+1은 시간 t 및 t+1에서의 상태를 나타내고, t는 카운터(CNT)에 의해 카운트되는 비교의 횟수를 나타내며, 여기에서는, 0〈t〈K이고, STATEt=0은 제1 비교가 이진 트리 데이터 구조의 루트 노드에 대응하는 메모리 위치에서 실행될 때의 상태를 나타내는 것을 특징으로 하는 액세스 장치.
  21. 제13항에 있어서,
    상기 독출 수단(R)은 상기 정합 데이터값과 관련하여 상기 메모리 수단(DRAM)에 저장되는 정보를 독출하는 것을 특징으로 하는 액세스 장치.
  22. 제13항에 있어서,
    상기 메모리 장치는 DRAM 또는 캐시 메모리 중 하나인 것을 특징으로 하는 액세스 장치.
KR1020007010078A 1998-03-12 1999-03-11 메모리 장치에서 데이터값의 기억 어드레스를 결정하는방법 및 액세스 장치 KR20010041803A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19810843A DE19810843B4 (de) 1998-03-12 1998-03-12 Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
DE19810843.5 1998-03-12
PCT/EP1999/001588 WO1999046696A1 (en) 1998-03-12 1999-03-11 Method and access means for determining the storage address of a data value in a memory device

Publications (1)

Publication Number Publication Date
KR20010041803A true KR20010041803A (ko) 2001-05-25

Family

ID=7860713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007010078A KR20010041803A (ko) 1998-03-12 1999-03-11 메모리 장치에서 데이터값의 기억 어드레스를 결정하는방법 및 액세스 장치

Country Status (10)

Country Link
US (1) US6415279B1 (ko)
EP (1) EP1062597B1 (ko)
JP (1) JP4807686B2 (ko)
KR (1) KR20010041803A (ko)
CN (1) CN1292903A (ko)
AU (1) AU2729299A (ko)
BR (1) BR9908733A (ko)
CA (1) CA2323098C (ko)
DE (1) DE19810843B4 (ko)
WO (1) WO1999046696A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484375B1 (ko) * 2002-02-05 2005-04-20 이영섭 데이터마이닝의 분류 의사 결정 나무에서 극단값을 가지는 관심 노드 분류를 통한 자료의 통계적 분류 방법
US9824033B2 (en) 2015-05-14 2017-11-21 Industry Academic Cooperation Of Yeungnam University Method and device of heap sorting based on a memory device

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6444072B1 (en) * 1999-08-11 2002-09-03 Southpac Trust International Process for producing holographic material
AU2001243459A1 (en) * 2000-03-09 2001-09-17 The Web Access, Inc. Method and apparatus for performing a research task by interchangeably utilizinga multitude of search methodologies
US6567815B1 (en) * 2000-08-01 2003-05-20 International Business Machines Corporation Technique of clustering and compaction of binary trees
GB0100331D0 (en) * 2001-01-06 2001-02-14 Secr Defence Method of querying a structure of compressed data
US6757780B2 (en) * 2002-01-09 2004-06-29 Hywire Ltd. Multiple module content addressable memories
US6941314B2 (en) * 2002-04-15 2005-09-06 Lsi Logic Corporation User selectable editing protocol for fast flexible search engine
US6901476B2 (en) * 2002-05-06 2005-05-31 Hywire Ltd. Variable key type search engine and method therefor
US8335779B2 (en) 2002-08-16 2012-12-18 Gamroe Applications, Llc Method and apparatus for gathering, categorizing and parameterizing data
US7017005B2 (en) * 2002-08-28 2006-03-21 Hywire Ltd. Implementation of a content addressable memory using a RAM-cell structure
US7653010B2 (en) * 2003-06-03 2010-01-26 Casient Limited System and method for wireless mesh networking
US7627616B2 (en) * 2004-08-30 2009-12-01 Hywire Ltb. Database storage and maintenance using row index ordering
US9171100B2 (en) * 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
EP1811383A1 (en) * 2004-10-01 2007-07-25 Turbo Data Laboratories, Inc. Arrangement generation method and arrangement generation program
JP4507991B2 (ja) * 2005-06-09 2010-07-21 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US20070174309A1 (en) * 2006-01-18 2007-07-26 Pettovello Primo M Mtreeini: intermediate nodes and indexes
WO2009152499A2 (en) * 2008-06-13 2009-12-17 Skribel, Inc. Methods and systems for handling annotations and using calculation of addresses in tree-based structures
US8631028B1 (en) 2009-10-29 2014-01-14 Primo M. Pettovello XPath query processing improvements
CN102741841A (zh) * 2009-11-30 2012-10-17 新叶股份有限公司 比特序列检索装置、检索方法以及程序
JP5220057B2 (ja) * 2010-05-27 2013-06-26 株式会社高速屋 ビット列検索装置、検索方法及びプログラム
JP5220047B2 (ja) * 2009-11-30 2013-06-26 株式会社高速屋 ビット列検索装置、検索方法及びプログラム
US9280575B2 (en) * 2012-07-20 2016-03-08 Sap Se Indexing hierarchical data
CN103984636B (zh) * 2013-02-08 2017-09-29 上海芯豪微电子有限公司 存储结构及信息存储、读取、寻址方法
CN108391427B (zh) 2016-02-05 2021-07-02 惠普发展公司,有限责任合伙企业 打印头
US10977106B2 (en) * 2018-02-09 2021-04-13 Microsoft Technology Licensing, Llc Tree-based anomaly detection
CN113570176B (zh) * 2020-04-28 2024-03-26 顺丰科技有限公司 货物装箱方案输出方法、装置、计算机设备和存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611435A (en) 1969-03-24 1971-10-05 Itt Satellite communication system
US5204967A (en) 1984-05-29 1993-04-20 Armstrong Philip N Sorting system using cascaded modules with levels of memory cells among which levels data are displaced along ordered path indicated by pointers
GB8515482D0 (en) * 1985-06-19 1985-07-24 Int Computers Ltd Search apparatus
US5155837A (en) 1989-03-02 1992-10-13 Bell Communications Research, Inc. Methods and apparatus for software retrofitting
US5495610A (en) 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
US5442783A (en) 1990-01-22 1995-08-15 Motorola, Inc. Method and apparatus for transferring data base information
US5481721A (en) 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
US5410703A (en) 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5418947A (en) * 1992-12-23 1995-05-23 At&T Corp. Locating information in an unsorted database utilizing a B-tree
US5734791A (en) * 1992-12-31 1998-03-31 Apple Computer, Inc. Rapid tree-based method for vector quantization
US5459606A (en) 1993-05-10 1995-10-17 At&T Ipm Corp. In-service upgrade for a telecommunication system
DE4316500C2 (de) 1993-05-17 1995-03-16 Siemens Ag Verfahren zum Wechseln einer Anlagensoftware
JPH09507109A (ja) 1993-11-02 1997-07-15 パラコム コーポレイション コンピュータデータベースに関するトランザクションの処理を促進させるための装置
JP3177117B2 (ja) 1994-05-11 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 複数のノード内の制御コードを更新する方法および装置
DE4429969A1 (de) 1994-08-24 1996-02-29 Sel Alcatel Ag Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
US5487166A (en) * 1994-09-19 1996-01-23 Amdahl Corporation Computer with two-dimensional merge tournament sort using offset-value coding
DE4438697A1 (de) 1994-10-29 1996-05-02 Sel Alcatel Ag Ladeverfahren für ein Mehrrechnersystem sowie Ladesteuereinrichtung und Programm-Modul dafür und Mehrrechnersystem und Vermittlungssystem damit
DE19533961A1 (de) 1995-09-13 1997-03-20 Siemens Ag Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
US5991541A (en) 1996-08-12 1999-11-23 Adc Telecommunications, Inc. Dynamically modifiable call processing methods and apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484375B1 (ko) * 2002-02-05 2005-04-20 이영섭 데이터마이닝의 분류 의사 결정 나무에서 극단값을 가지는 관심 노드 분류를 통한 자료의 통계적 분류 방법
US9824033B2 (en) 2015-05-14 2017-11-21 Industry Academic Cooperation Of Yeungnam University Method and device of heap sorting based on a memory device

Also Published As

Publication number Publication date
EP1062597B1 (en) 2002-06-05
DE19810843B4 (de) 2004-11-25
WO1999046696A1 (en) 1999-09-16
CN1292903A (zh) 2001-04-25
JP2002507026A (ja) 2002-03-05
JP4807686B2 (ja) 2011-11-02
DE19810843A1 (de) 1999-09-30
CA2323098C (en) 2005-12-27
AU2729299A (en) 1999-09-27
US6415279B1 (en) 2002-07-02
CA2323098A1 (en) 1999-09-16
EP1062597A1 (en) 2000-12-27
BR9908733A (pt) 2000-11-21

Similar Documents

Publication Publication Date Title
KR20010041803A (ko) 메모리 장치에서 데이터값의 기억 어드레스를 결정하는방법 및 액세스 장치
US5202986A (en) Prefix search tree partial key branching
KR100748772B1 (ko) 최장의 정합 어드레스 탐색장치 및 방법
US5848416A (en) Method and apparatus for storing and retrieving data and a memory arrangement
US5497485A (en) Method and apparatus for implementing Q-trees
KR101467589B1 (ko) 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체
US5519840A (en) Method for implementing approximate data structures using operations on machine words
US6353873B1 (en) Apparatus and method to determine a longest prefix match in a content addressable memory
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
US20020107860A1 (en) Data structure and storage and retrieval method supporting ordinality based searching and data retrieval
US20040139274A1 (en) Virtual content addressable memory with high speed key insertion and deletion and pipelined key search
Larsen et al. Near-optimal range reporting structures for categorical data
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
KR100414052B1 (ko) 주기억장치 데이터베이스의 인덱스 데이터 관리방법
Kim et al. Efficient implementation of rank and select functions for succinct representation
US5923837A (en) Method of accessing data using approximate data structures
CN113297266B (zh) 数据处理方法、装置、设备及计算机存储介质
EP1107126A2 (en) A fast, efficient, adaptive, hybrid tree
CN110995876B (zh) 一种ip存储与查找的方法及装置
US6611894B1 (en) Data retrieval apparatus
KR20010041804A (ko) 데이터 변환 하드웨어 지원
US6901396B1 (en) Packed radix search tree implementation
Ouksel et al. Implicit data structures for linear hashing schemes
CN111581206A (zh) B+树操作装置及其方法
CN111581205B (zh) 具有节点索引的b+树操作装置及其方法

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