KR19980069939A - 배열 변경을 최적화하기 위해 배열 요소를 정렬하는 컴퓨터 시스템 및 방법 - Google Patents
배열 변경을 최적화하기 위해 배열 요소를 정렬하는 컴퓨터 시스템 및 방법 Download PDFInfo
- Publication number
- KR19980069939A KR19980069939A KR1019970046488A KR19970046488A KR19980069939A KR 19980069939 A KR19980069939 A KR 19980069939A KR 1019970046488 A KR1019970046488 A KR 1019970046488A KR 19970046488 A KR19970046488 A KR 19970046488A KR 19980069939 A KR19980069939 A KR 19980069939A
- Authority
- KR
- South Korea
- Prior art keywords
- array
- computer system
- memory
- subsequent
- page
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
배열 요소들이 변경되는 빈도의 예측값(predicted frequency)에 따라 배열 요소들을 배치하기 위해 배열 데이타 구조에 정렬 알고리듬(sorting algorithm)이 적용된다. 변경 빈도(modification frequency)가 높은 배열 요소는 배열의 끝 가까이에 배치되어, 이 배열 요소들의 변경에 따라 전형적으로 갱신되어야 할 배열 요소의 수를 최소화하고, 더 많은 배열 요소들이 갱신되어야 하는 변경은 변경될 가능성이 적은 배열 요소에 할당한다. 메모리 압축에서 사용되기에 적합한 정렬 알고리듬은 소정 페이지에 대한 블럭들을 역순으로 배치하는데, 이는 페이지의 끝 가까이에 있는 데이타보다 페이지의 시작에 가까운 데이타가 변경될 확률이 높기 때문이다.
Description
본 발명은 일반적으로 컴퓨터 및 데이타 처리 시스템에 구현된 배열 데이타 구조(array data structures)에 관한 것으로서, 특히 메모리 압축과 같은 응용에서 데이타 구조의 조작(manipulation)에 관한 것이다.
배열(array)은 컴퓨터나 다른 데이타 처리 시스템에서 데이타를 저장하기 위해 사용되는 흔한 데이타 구조이다. 배열 데이타 구조는 전형적으로 리스트(list) 내에 다수의 배열 요소(array element)를 정렬하고(arrange), 각 배열 요소는 고유의 지수(index)를 통해 액세스된다. 예를 들어, 많은 컴퓨터 메모리 시스템은 배열로 구성되어 있고, 개개의 메모리 위치(memory locations)나 메모리 위치의 그룹이 배열 요소의 기능을 하고, 각 요소는 이에 대한 지수의 기능을 하는 고유의 메모리 주소를 갖는다.
배열 데이타 구조의 주요한 장점은 임의 액세스 특성(random access nature)으로서, 예를 들어 요소에 대한 포인터 또는 지수를 단언함으로써(by maintaining) 개개의 요소가 신속하게 액세스되도록 한다. 그러나, 배열 데이타 구조의 하나의 단점은 배열 요소의 전체 크기를 바꾸는 배열의 변경을 효율적으로 다루기 어렵다는 것이다. 특히, 데이타 구조는 치밀하고(compact) 필요 이상의 메모리 공간을 사용하지 않는 것이 바람직하다. 따라서, 예를 들어 요소를 삭제하거나(delete), 배열에 요소를 추가하거나(add), 가변 크기 요소를 지원하는 배열에 대해서 요소의 크기를 바꿈으로써 배열 요소가 변경될 때 변경된 요소에 후속하는 각 요소는 종종 갱신되거나 메모리 상의 이전 위치로부터 이동하여야 한다. 그러나 요소의 이동은 시간이 소요되는 메모리 전송 동작(memory transfer operation)을 요하게 되므로 메모리 시스템의 성능을 저하시킨다.
다른 시스템에서는, 각 배열 요소에 사용되지 않는 메모리 위치가 패드되어서(padded), 배열에서 후속하는 요소들의 시작 주소에 영향을 주지 않고, 요소들이 확장(grow)하는 것이나 축소(shrink)되는 것을 가능하게 한다. 그러나, 이 기법은 배열 내에 산재해 있는(interspersed) 사용되지 않는 메모리 때문에 매우 비경제적이다. 더욱이, 이 기법에서는 배열 요소의 삭제나 추가, 가용 패딩의 범위를 넘어가는 큰 배열 요소의 변경(larger array element modifications that overrun the available padding)을 수용(accommodate)할 수 없다.
배열이 사용되는 특정 응용분야 중 하나는 메모리 압축으로서 여기에서는 높은 저장 밀도(density)와 빠른 메모리 전송 동작(memory transfer operations)이 요망된다. 몇몇 메모리 압축 응용에서는, 압축된 데이타의 변경에 따라 재압축(recompressed)되어야 하는 메모리의 양을 최소화하기 위해 데이타 페이지들이 블록들의 배열로 정렬되고, 이는 그후 프레임들로 압축된다(compressed into frames). 프레임 내의 데이타가 변경될 때마다 프레임은 전형적으로 재압축(recompress)되어야 하고, 이는 프레임 크기 및/또는 프레임 내에 저장된 정보의 양을 변화시킨다. 페이지 내에서 재압축된 프레임을 후속하는 각 프레임은 페이지의 압축을 최적화하기 위해 흔히 갱신 -예를 들어, 이동 및/또는 재압축- 되어야 한다. 소정 페이지의 시작부(beginning of a page) 근처의 프레임에 저장된 데이타가 변경되면, 종종 페이지 내의 대부분 또는 모든 프레임들이 갱신되어야 하고, 이에 따라 메모리 시스템 전체 성능에 큰 영향을 주게 된다.
따라서, 특히 메모리 압축 등의 분야에서 배열 내의 요소를 변경하는 것과 관련된 성능 저하를 최소화하는 방법이 요구된다.
본발명은 종래기술의 상기와 같은 문제점을 해결하기 위해, 배열 요소들이 변경되는 빈도의 예측값(predicted frequency)에 적어도 그 일부는 의존하는 정렬 알고리듬(sorting algorithm)을 사용하여 배열 요소를 정렬하는 배열의 유지(maintaining) 방법을 제공한다. 변경 빈도(modification frequency)가 높은 배열 요소는 배열의 끝 가까이에 배치되어, 이 배열 요소들의 변경에 따라 전형적으로 갱신되어야 할 배열 요소의 수를 최소화하고, 더 많은 배열 요소들이 갱신되어야 하는 변경은 변경될 가능성이 적은 배열 요소에 할당한다. 따라서, 어떤 배열 요소의 변경에 따라 갱신되어야 할 배열 요소수의 배열 전체에 대한 평균이 적어지게 되고, 이에 따라 배열 변경이 전체 성능에 끼치는 영향을 최소화한다.
본발명에 이에 한정되는 것은 아니지만, 본발명이 특히 효과가 있는 응용은 메모리 압축 분야인데, 이는 메모리의 논리 페이지의 시작부 가까이의 데이타가 페이지의 끝에 가까이 있는 데이타보다 흔히 더 빈번하게 변하기 때문이다. 소정의 페이지에 대해 데이타 블록을 역순으로(in reverse order) 배치함으로써, 하나의 블록이 변경될 때마다 갱신되어야 하는 블록 수의 평균이 최소화된다.
본 발명을 특징짓는 장점과 특성은 첨부된 청구 범위에 제시되어 있고 이하에서 기술된다. 그러나 본 발명과 그이용을 통해 얻은 장점 및 특질을 더 잘 이해하기 위해, 도면을 참조하여 본 발명의 실시예가 이하에서 상세히 설명된다.
도 1은 배열 내에서 배열 요소(array elements)의 다양한 변경(modifications)을 도시하는 블럭도.
도 2는 본 발명의 원리와 일관되는 컴퓨터 시스템의 블럭도.
도 3은 도 2의 컴퓨터 시스템에 대한 메모리 맵의 블럭도.
도 4는 도 2의 컴퓨터 시스템에 대한 메모리의 논리 페이지(logical pages)를 도시하는 블럭도.
도 5는 도 1의 컴퓨터 시스템에 대해 설정 테이블 엔트리(setup table entry)와 논리 블럭 배열간의 매핑(mapping)을 도시하는 블럭도.
도 6은 도 5의 논리 블럭 배열에 대한 예시적 데이타 변경의 결과를 도시하는 블럭도.
도면의 주요 부분에 대한 부호의 설명
20 : 처리 유니트
40 : 시스템 메모리
42 : 압축되지 않은 캐쉬
44 : 압축된 데이타
47 : 압축되지 않은 데이타
48 : 설정 테이블
도시된 본 발명의 실시예에서는 일반적으로 배열 요소가 변경될 상대 빈도 예측값(predicted relative frequency)에 따라 배열 요소를 정렬하여, 후속하는(subsequent) 배열 요소에 영향을 주는 배열 요소의 변경을 배열의 끝 부분에 배치하여 배열 내의 소정 배열 요소의 변경의 결과 영향받는 배열 요소의 수의 평균을 최소화한다. 특히 배열에 의해 점유된 메모리의 양을 최소화하기 위해 요소들간에 사용되지 않는 공간이 없거나 아주 적도록 배열 요소를 연속적인 메모리 공간에 유지하는 것이 바람직하다. 그러나 이하에 도시된 실시예와 관련하여 압축된 데이타 구획(partitions)에 대해 기재된 것처럼, 논리 메모리 위치가 고정 크기 구획에 매핑되는 한은(to the extent that logical memory locations may be mapped to fixed size partitions) 배열에 대한 연속된 메모리 공간은 비순차적일 수 있다는 것을 인식하여야 한다.
배열에서 후속하는 요소들에 영향을 줄 수 있는 배열 요소의 변경은 배열 요소의 삭제나 새로운 배열 요소의 추가와 같은 변경을 포함한다. 더욱이, 가변 크기 배열 요소를 지원하는 배열에 대해서는 배열 요소의 크기를 바꾸는 변경도 포함한다.
예를 들어 도 1은 연속된 메모리 공간에 저장된 요소들(A-F)의 배열(5)을 도시하고 있다. 만일 요소(C)가 배열로부터 삭제된다면, 연속적인 메모리 공간을 유지하기 위해 배열에서 이를 후속하는 요소(D-F)는 배열(5')로 도시된 바와 같이 메모리 내에서 좌측으로 또는 하향 이동 또는 쉬프트되어야 한다(moved or shifted to the left, or down). 만일, 요소(C)의 크기가 증가되면, 요소(C)가 요소(D)로 오버플로우(overflow)되지 않도록 요소(D-F)는 배열(5'')로 도시된 바와 같이 메모리에서 우측으로 또는 상향 이동 또는 쉬프트되어야 한다(moved or shifted to the right, or up). 마찬가지로, 새로운 요소(G)가 요소(C) 뒤에 추가된다면, 새 요소를 위한 공간을 마련하기 위해, 배열(5''')로 도시된 바와 같이, 요소(D-F)는 우측으로 이동 또는 쉬프트되어야 한다.
본 발명의 도시된 실시예에서는 배열 요소를 정렬하기 위해 변경 빈도 증가의 관점에서(in terms of increasing frequency of modification) 정적 또는 동적 정렬 알고리듬(static or dynamic sorting algorithm)을 사용할 수 있다. 정적 정렬 알고리듬은 일반적으로 배열 처리 프로그램 부호(array handling program code)로 하드-코드화되어(hard-coded), 배열 요소들이 선택된 정렬 알고리듬과 일관된 사전 설정된 방식으로 저장되고 변경되게 된다. 정적 알고리듬을 이용할 경우, 배열 요소에 대한 변경의 빈도는 알려진 관계(known relationship) 또는 실험적 테스팅(empirical testing)을 거쳐 결정된다.
한편, 동적 정렬 알고리듬은 배열 작업(array operation)을 처리하는 동안 적절한 정렬 알고리듬의 결정과 알고리듬의 구현 쌍방을 다룬다. 예를 들어, 데이타베이스 시스템에서, 하나 이상의 데이타베이스에서 기록(records)의 변경 이력(modification history)이 실시간으로 모니터링되어서 다양한 기록 또는 다양한 형태의 기록에 가중치(weighting)가 적용되는 것이 가능하게 되고, 이에 따라 기록에 대한 장래의 작업이 영향을 받거나, 기록이 메모리에서 관행적인 유지 기능(routine maintenance function)으로서 재정렬(resort)되는 것이 가능하게 된다.
이하에서 설명되는 실시예에서, 배열 요소는 메모리의 논리 페이지를 표시하는 배열 또는 리스트로 정렬된 압축된 데이타의 블럭들을 표시한다 (array elements represent blocks of compressed data that are arranged into a list or array representative of a logical page of memory). 이런 관점에서 사용하기에 적절한 컴퓨터 시스템이 1994년 10월 17일에 출원되고 본 명세서의 일부로 참조된 호비스(Hovis) 등의 미국 특허 출원 일련 번호 제08/324,050에 개시되어 있다. 다른 컴퓨터 및 메모리 시스템과 이와 같이 사용되는 메모리 관리 제어기 및 압축 엔진(compression engine)이 다른 실시예에서 사용될 수 있다.
상술한 시스템을 비롯한 많은 컴퓨터 시스템에 있어서, 메모리의 논리 페이지의 시작에 가까운 데이타가 끝에 가까운 데이타보다 변경되기 쉽다는 것이 알려져 있다. 예를 들어, 4KB의 논리 페이지를 사용하는 몇몇 메모리 시스템에서는, 제1 KB 즉 처음 두개의 512 바이트(byte) 논리 블럭의 변경 빈도가 마지막 KB의 변경 빈도의 약 두배라는 것이 알려져 있다. 그 이유는 메모리의 페이지 전체를 요하지 않는 혹은 다수의 메모리 페이지를 요하지만 페이지 중간에서 끝나는 메모리 할당 작업(memory allocation operation)이 전형적으로는 페이지의 시작에서부터 할당되기 시작하기 때문이다.
이하에서 설명되는 실시예에서, 논리 페이지는 메모리 압축 알고리듬을 이용하여 메모리 내에 압축된 형태로 저장된 논리 블럭들의 배열로 정렬되고(arranged), 메모리 압축 알고리듬은 논리 블럭들을 다수의 고정 크기 프레임 -예를 들어 512 바이트- 으로 압축한다. 블럭 내의 데이타가 변경될 때마다, 전형적으로 캐쉬로부터의 라이트 백 작업(write back operation)의 결과 상기 블럭을 포함하는 프레임이 갱신, 즉 재압축된다.
더욱이, 블럭의 크기가 프레임 내에서 패딩에 의해 -패딩이 있는 경우- 허용되는 범위를 넘어서 변하는 경우 변경된 블럭을 포함하는 프레임에 후속하는 프레임 중 적어도 하나, 전형적으로는 모든 프레임이 또한 갱신된다. 다른 실시예에서, 프레임은 가변 크기일 수도 있는데, 이 경우는 하나 이상의 후속하는 프레임이 반드시 재압축되어야 하는 것은 아니고 프레임 크기의 변경에 응답하여 이동만 하기도 한다.
이하에서 설명되는 실시예에서는, 논리 페이지 내의 데이타의 논리 블럭들을 역순으로 정렬하는 정적 정렬 알고리듬이 사용되어, 최종 논리 블럭을 배열의 시작에 두고 제1 논리 블럭을 끝에 둔다. 결과적으로, 페이지의 최종 논리 블럭 내의 데이타의 덜 빈번한 변경보다 제1 논리 블럭 내의 데이타의 더 빈번한 변경이 후속하는 프레임의 재압축 및/또는 이동이 더 적게 요구하거나 또는 더 이상의 프레임의 재압축 및/또는 이동을 요구하지 않는다. 일반적으로 이에 의해 데이타 변경 당 갱신되는 프레임 수의 평균이 적어지고 따라서 전체적인 성능이 향상된다.
따라서, 일반적으로 데이타의 논리 블럭은 도시된 실시예에서 배열 요소에 해당한다. 그러나, 상기 요소는 임의의 고정 크기 또는 가변 크기를 갖는 어떤 메모리 블럭 또는 세그먼트라도 나타낼 수도 있다는 것을 인식하여야 한다.
본 발명이 메모리 압축 응용예에서 압축된 데이타의 정렬(arrangement)에 관해 기술되었지만, 본 발명은 특정 응용예에 한정되는 것은 아니다. 예를 들어, 다른 컴퓨터 및 데이타 처리 응용에서 다른 형태의 데이타에 대한 배열 작업(array operations)에도 응용될 수 있다.
동일한 부분이 동일한 번호로 표시된 몇몇 도면을 참조하면, 도 2는 본 발명의 원리에 따른 컴퓨터 시스템(10)을 도시하고 있다. 많은 데이타 처리 시스템을 대표하는 컴퓨터 시스템(10)은 일반적으로 메모리 시스템(30)에 연결되어 있는 하나 이상의 처리 유니트(processing units, 20)를 포함한다. 컴퓨터 시스템(10)의 다른 요소, 예를 들어 사용자 입력 장치, 통신 장치, 정보 표시 장치 등은 본 발명을 이해하는데 필요하지 않고 따라서 별도로 도시하지 않았다.
메모리 시스템(30)은 일반적으로 처리 유니트(20)와 시스템 메모리(40) 사이에 연결된 메모리 제어기(32)를 포함한다. 메모리 제어기는 어떤 데이타가 현재 시스템에 캐쉬되어 있는지 결정하기 위해 캐쉬 디렉토리(cache directory, 33)를 이용한다. 프레임 테이블(frame table, 35)에 의존하는 압축 엔진(compression engine, 34)은 메모리 제어기(32)에 연결되어 시스템 메모리(40) 내의 데이타의 압축을 처리한다.
도 3에 도시된 바와 같이, 시스템 메모리(40)는 압축되지 않은 캐쉬(42), 압축된 데이타 구획(44), 압축되지 않은 데이타 구획(47) 및 설정 테이블(setup table, 48)을 포함하는 다수의 메모리 구획(memory partitions)으로 분할되어 있다. 이 구획들은 동일한 또는 서로 다른 메모리 하드웨어 소자들(components)로 구성될 수 있다는 점을 인식하여야 한다. 논리 메모리의 대부분은(the bulk of logical memory) 압축된 형태로 압축된 데이타 구획(44)에 저장된다. 캐쉬(42) -이로부터 시스템에 대한 많은 메모리 작업이 수행되는- 에는 메모리 성능을 최적화하기 위해 구획(44)으로부터 선택된 페이지들의 압축되지 않은 복사본을 저장한다. 부가적인 저장을 위해, 전형적으로는 더 작은 압축되지 않은 구획(47)이 선택적으로(optionally) 포함될 수도 있다.
도 4에 도시된 바와 같이, 주 메모리는 논리 페이지들 -예를 들어 논리 페이지(45)- 로 구성되어 있고, 논리 페이지는 다수의 논리 블럭들 -예를 들어 논리 블럭(A-H)- 을 포함한다. 예를 들어, 도시된 실시예에서는 4KB 논리 페이지가 사용되고, 각각은 8개의 512 바이트 논리 블럭을 갖는다. 논리 페이지들은 하나 이상의 고정 크기 프레임 -예를 들어 도 3의 프레임(46)- 의 체인(chain)을 포함하는 압축된 형태로 저장된다.
압축된 데이타 구획에 저장된 각 논리 페이지는 설정 테이블(48)의 엔트리 - 예를 들어 (n+1) 개의 포인터를 갖는 (n은 페이지 내의 논리 블럭의 수) 설정 테이블 엔트리(49)- 를 이용하여 액세스된다. 도 5에 도시된 바와 같이, 엔트리(49)는 포인터 0-8의 9개의 포인터를 포함한다. 제1 포인터인 포인터 0은 40비트를 포함하고 1테라바이트(terabyte)의 주소 공간(address space)을 제공한다. 나머지 포인터들은 32비트를 포함하고 제1 포인터의 상위 바이트를 이용하여 메모리 내에서 동일한 4기가바이트(gigabyte) 세그먼트 내의 영역을 가리킨다. 예를 들어, 프레임을 512 바이트 경계(boundary)에 배열(align)하고 프레임 내에서 시작하는 블럭에 대한 포인터로부터 하위 10 비트를 마스킹(masking)함으로써 논리 블럭의 중간에서 시작하는 프레임의 시작 주소를 얻을 수 있다. 주소 공간과 페이지/블럭 크기가 다른 경우 어드레싱하기 위해 다른 크기의 포인터가 사용될 수 있다.
본 발명과 일관성을 갖도록, 논리 페이지(45)의 논리 블럭(A-H)은 제1 포인터가 논리 블럭(H)을 가리키고, 후속하는 각 포인터들이 각각 이에 선행하는 논리 블럭의 시작을 가리키도록 역순으로 연결되어 있다(chained). 마지막 포인터인 포인터(8)는 논리 블럭(A)의 끝을 가리킨다.
논리 블럭들은 고정 크기 프레임(46a-46f)으로 압축되어 있는 것으로 도시되어 있다. 하나의 논리 페이지를 저장하기 위해 실제로 사용된 프레임 수는 사용된 압축 알고리듬에 의해 페이지 내의 데이타가 압축되는 정도에 따라 달라진다.
메모리 시스템 요소들의 동작은 전술한 호비스 등의 응용예와 유사하다. 전형적으로, 대부분의 메모리 액세스는 캐쉬된 메모리에 대한 것이다. 캐쉬에 저장되지 않은 위치에 대해 메모리가 액세스될 때마다, 설정 테이블(48)이 액세스되어 구획(44)으로부터 압축된 데이타를 가져오고(fetch), 데이타의 압축을 풀고(decompress), 이를 캐쉬에 저장한다. 그러나, 캐쉬가 가득 차 있으면 최근에 액세스된 데이타(recently accessed data)를 위해 공간을 만들기 위해 구(old) 데이타들은 우선 캐쉬로부터 제거되어야 된다. 전형적으로 구데이타는 압축 엔진에 의해 처리되어 구획(44)에 다시 저장된다.
구획(44)에 저장하기 전에 데이타를 재압축하는데 필요한 처리량은 부분 재압축 알고리듬(partial recompression algorithm)을 이용함으로써 감소된다. 부분 재압축 알고리듬에서는 캐쉬에 있는 동안 갱신된 논리 블럭들을 저장하는 프레임들과 체인에서 이에 뒤따르는 프레임들만 재압축된다. 이와 같은 유형의 다양한 압축 알고리듬이 사용될 수 있다. 부가적으로, 논리 블럭을 상술한 바와 같이 정렬(sort)함으로써, 캐쉬 라이트 백 동작(cache write back operation)에 응답하여 재압축되는 프레임 수가 전형적으로 감소한다.
예를 들어 도5에 도시된 실시예에서, 블럭(A 및 B)가 블럭(G 및 H)보다 두배 빈번하게 변경된다고 하면, 더 빈번한 블럭(A 및 B)의 변경에 의해서는 전형적으로 3개의 프레임(46d-46f)만 재압축하면 되는 반면 블럭(G 및 H)의 변경에 의해서는 6개의 프레임(46a-46f)이 재압축되어야 한다. 도 6은 논리 블럭(B) 내의 데이타의 갱신에 따른 논리 페이지(45)의 재압축의 결과를 예시하고 있다. 재압축 후에 압축비가 높아져서 논리 블럭(B)은 재압축 후에 더 작은 메모리 공간을 차지하는 것으로 도시되어 있다. 갱신 후에 3개의 프레임 -지정된 프레임들(46d'-46f')- 만 갱신의 결과 재압축된다.
본 발명의 다양한 실시예를 구현하는 다양한 응용예, 프로그램, 컴퓨터 프로세스가 서로 다른 시간에 하나 이상의 프로그램 저장 장치 -휘발성(volatile) 또는 비휘발성(non-volatile) 방식으로 데이타나 프로그램 코드와 같은 정보를 저장할 수 있는 장비 또는 장치를 포함하는- 에 상주(resident)할 수 있다. 따라서, 프로그램 저장 장치는 RAM, ROM, EPROM 등의 메모리 장치와, 프로세서 및 캐쉬 메모리, 플래쉬 메모리(flash memory), 주문형 집적 회로(customized integrated circuits) 등 뿐만 아니라 부착형 또는 소거 가능한 자기 디스크(fixed or removable magnetic disks), CD-ROM, 자기 테입 등의 부착형 또는 제거 가능한 대용량 저장 매체(mass storage media)를 포함할 수 있다. 더욱이 프로그램 제품으로 총칭할 수 있는 다양한 응용예, 프로그램, 컴퓨터 프로세스는 플로피 디스크나 CD-ROM 등의 저장 매체 상으로 제공되는 대신, 먼저 해당 컴퓨터 시스템과 서버형 컴퓨터를 연결하고 그후 프로그램 제품을 상기 컴퓨터 시스템으로 전송함으로써 네트워크나 모뎀을 통해 컴퓨터 시스템으로 전송 또는 다운로드될 수 있다. 따라서 프로그램 저장 장치는 서버형 컴퓨터 -예를 들어, 프로그램 제품을 다른 컴퓨터 시스템으로 전송하거나 다운로드하지만 실제로 다운로드된 또는 전송된 프로그램 제품을 실행하지는 않는 불리틴 보드(bulletin board)나 에프티피 사이트(ftp site)- 의 전술한 메모리 및 저장 매체 중 어떤 것이라도 포함한다는 것을 인식하여야 한다.
본 발명의 사상과 범위를 벗어나지 않고 도시된 실시예에 다양한 변형이 가능하다. 따라서, 본 발명은 이하에 첨부된 청구범위에만 의한 것이다.
변경 빈도가 높은 배열 요소는 배열의 끝 가까이에 배치되어, 이 배열 요소들의 변경에 따라 전형적으로 갱신되어야 할 배열 요소의 수를 최소화하고, 더 많은 배열 요소들이 갱신되어야 하는 변경은 변경될 가능성이 적은 배열 요소에 할당함으로써, 어떤 배열 요소의 변경에 따라 갱신되어야 할 배열 요소수의 배열 전체에 대한 평균이 적어지게 되고, 이에 따라 배열 변경이 전체 성능에 끼치는 영향을 최소화한다.
Claims (23)
- 메모리 공간 내에 다수의 배열 요소(array elements)를 포함하는 배열을 유지하는 방법에 있어서,(a) 상기 배열의 제1 단부(first end)에 근접한 배열 요소들이 상기 배열의 제2 단부(second end)에 근접하는 배열 요소들보다 변경 확률이 낮을 때, 변경 확률에 근거하여 상기 메모리 공간 내의 배열 요소들을 배치(arrange)하는 정렬 알고리듬(sorting algorithm)에 의해 배열 요소들을 정렬하는 단계와,(b) 선택된 배열 요소의 변경에 응답하여, 상기 배열 내에서 상기 선택된 배열 요소를 뒤따르는 후속하는 배열 요소가 있다면, 적어도 하나의 후속하는 배열 요소를 갱신하는 단계(updating at least one subsequent array element, if any, that follows the selected array element in the array)를 포함하는 방법.
- 제1항에 있어서, 상기 갱신 단계는 상기 선택된 배열 요소의 삭제(deletion), 부가(addition), 또는 크기의 변경에 응답하여 수행되는 방법.
- 제1항에 있어서, 상기 갱신 단계는 메모리 공간 내에서 상기 후속하는 배열 요소를 이동하는 단계를 포함하는 방법.
- 제3항에 있어서, 상기 갱신 단계는 상기 배열 요소들을 연속하는 메모리 공간(contiguous memory space)에 유지하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 배열의 제1 단부는 상기 배열의 시작을 나타내고 상기 정렬 단계는 상기 배열 요소들을 역순으로(in reverse order) 정렬하는 방법.
- 제5항에 있어서, 상기 배열은 메모리의 논리 페이지(logical page)를 나타내고, 각 배열 요소는 상기 논리 페이지 내에서 메모리의 논리 블럭을 나타내고, 상기 논리 페이지 내에서 낮은 순서의 논리 블럭들(lower order logical blocks)을 나타내는 배열 요소들은 상기 배열의 제2 단부에 근접하여 배치되어(disposed) 있는 방법.
- 제6항에 있어서, 상기 배열 요소들은 다수의 프레임 내에 압축된 형태로 저장되어 있고, 상기 선택된 배열 요소 내의 데이타의 변경에 응답하여, 상기 갱신 단계는 상기 선택된 배열 요소 또는 상기 배열 내에서 후속하는 배열 요소의 적어도 일부가 저장된 프레임들만 재압축하는(recompress) 방법.
- 컴퓨터 시스템에 있어서,(a) 다수의 배열 요소를 포함하는 배열을 저장하도록 구성되고 배치된(configured and arranged) 메모리와,(b) 상기 메모리에 연결된 제어기로서, 상기 배열의 제1 단부(first end)에 근접한 배열 요소들이 상기 배열의 제2 단부(second end)에 근접하는 배열 요소들보다 변경 확률이 낮을 때, 변경 확률에 근거하여 상기 메모리 공간 내의 배열 요소들을 배치(arrange)하는 정렬 알고리듬(sorting algorithm)에 의해 배열 요소들을 정렬하고, 선택된 배열 요소의 변경에 응답하여, 상기 배열 내에서 상기 선택된 배열 요소를 뒤따르는 후속하는 배열 요소가 있다면, 적어도 하나의 후속하는 배열 요소를 갱신하는 제어기를 포함하는 컴퓨터 시스템.
- 제8항에 있어서, 상기 제어기는 상기 선택된 배열 요소의 삭제, 부가, 또는 크기의 변경에 응답하여 메모리 공간 내에서 상기 후속하는 배열 요소를 이동함으로써 상기 후속하는 배열 요소를 갱신하는 컴퓨터 시스템.
- 제8항에 있어서, 상기 배열의 제1 단부는 상기 배열의 시작을 나타내고 상기 제어기는 상기 배열 요소들을 역순으로(in reverse order) 정렬하는 컴퓨터 시스템.
- 제10항에 있어서, 상기 제어기는 상기 배열 요소들을 다수의 프레임 내에 압축된 형태로 저장하고, 상기 제어기는 상기 선택된 배열 요소 내의 데이타의 변경에 응답하여, 상기 선택된 배열 요소 또는 상기 배열 내에서 후속하는 배열 요소의 적어도 일부가 저장된 프레임들만 재압축하는(recompress) 컴퓨터 시스템.
- 컴퓨터 시스템에 의해 판독가능한 프로그램 저장 장치 -상기 프로그램 저장 장치는 메모리 공간 내에 다수의 배열 요소를 포함하는 배열을 유지하는 방법을 수행하도록 상기 컴퓨터 시스템에 의해 실행 가능한 명령어들의 프로그램을 실체적으로 구현함(the program storage device tangibly embodying a program of instructions executable by the computer system)- 에 있어서, 상기 방법은,(a) 상기 배열의 제1 단부(first end)에 근접한 배열 요소들이 상기 배열의 제2 단부(second end)에 근접하는 배열 요소들보다 변경 확률이 낮을 때, 변경 확률에 근거하여 상기 메모리 공간 내의 배열 요소들을 배치(arrange)하는 정렬 알고리듬(sorting algorithm)에 의해 배열 요소들을 정렬하는 단계와,(b) 선택된 배열 요소의 변경에 응답하여, 상기 배열 내에서 상기 선택된 배열 요소를 뒤따르는 후속하는 배열 요소가 있다면, 적어도 하나의 후속하는 배열 요소를 갱신하는 단계를 포함하는 프로그램 저장 장치.
- 프로그램 제품을 컴퓨터 시스템으로 전송하는 방법에 있어서,(a) 상기 컴퓨터 시스템과 연결하는 단계(establishing a connection)와,(b) 프로그램 제품을 상기 컴퓨터 시스템에 전송하는 단계로서, 상기 프로그램 제품은 메모리 공간 내에 다수의 배열 요소를 포함하는 배열을 유지하는 방법을 수행하도록 상기 컴퓨터 시스템에 의해 수행가능하고, 상기 방법은,(1) 상기 배열의 제1 단부(first end)에 근접한 배열 요소들이 상기 배열의 제2 단부(second end)에 근접하는 배열 요소들보다 변경 확률이 낮을 때, 변경 확률에 근거하여 상기 메모리 공간 내의 배열 요소들을 배치(arrange)하는 정렬 알고리듬(sorting algorithm)에 의해 배열 요소들을 정렬하는 단계와,(2) 선택된 배열 요소의 변경에 응답하여, 상기 배열 내에서 상기 선택된 배열 요소를 뒤따르는 후속하는 배열 요소가 있다면, 적어도 하나의 후속하는 배열 요소를 갱신하는 단계를 포함하는 방법.
- 다수의 페이지 -각 페이지는 다수의 블럭에 저장된 데이타를 포함함- 로 구분되어(partitioned) 있는 메모리를 포함하는 타입의 컴퓨터 시스템 내에 데이타를 저장하는 방법에 있어서,(a) 각 페이지 내에 블럭들이 역순으로 배치되도록, 상기 메모리에 데이타를 압축된 형태로 저장하는 단계와,(b) 상기 메모리 내의 선택된 페이지 내의 선택된 블럭에 저장된 데이타를 변경하는 단계로서, 상기 선택된 페이지 내에서 상기 선택된 블럭 뒤에 배치된 후속하는 블럭이 있다면, 적어도 하나의 후속하는 블럭과 상기 선택된 블럭을 갱신하는 단계를 포함하는 단계를 포함하는 데이타 저장 방법.
- 제14항에 있어서, 상기 갱신 단계는 상기 후속하는 블럭을 이동하는 단계를 포함하는 데이타 저장 방법.
- 제14항에 있어서, 상기 갱신 단계는 상기 선택된 블럭과 후속하는 블럭을 재압축하는 단계를 포함하는 데이타 저장 방법.
- 제16항에 있어서, 상기 저장 단계는 각 페이지 내의 블럭들을 다수의 고정 크기 프레임 내에 저장하고, 상기 갱신 단계는 상기 선택된 블럭 또는 후속하는 블럭의 적어도 일부가 저장된 프레임만을 재압축하는 데이타 저장 방법.
- 컴퓨터 시스템에 있어서,(a) 데이타의 논리 페이지 -상기 논리 페이지는 배열을 형성하는 다수의 블럭을 포함함- 를 저장하도록 구성되고 배치된 메모리와,(b) 상기 메모리에 연결된 제어기로서, 상기 메모리 내의 상기 다수의 블럭을 상기 논리 페이지의 블럭들의 배치에 대해 역순으로 압축된 형태로 저장하고, 선택된 블럭 내의 데이타의 변경에 응답하여, 상기 메모리 내에 선택된 블럭 뒤에 배치된 후속하는 블럭이 있다면, 적어도 하나의 후속하는 블럭과 상기 선택된 블럭을 갱신하는 제어기를 포함하는 컴퓨터 시스템.
- 제18항에 있어서, 상기 제어기에 연결된 압축 엔진(compression engine)을 더 포함하는 컴퓨터 시스템.
- 제18항에 있어서, 상기 제어기는 상기 선택된 블럭과 후속하는 블럭을 그 내부의 데이타를 재압축함으로써 갱신하는 컴퓨터 시스템.
- 제20항에 있어서, 상기 제어기는 다수의 고정 크기 프레임 내에 상기 다수의 블럭을 저장하고, 상기 제어기는 상기 선택된 블럭 또는 후속하는 블럭의 적어도 일부가 저장된 프레임만을 재압축함으로써 상기 선택된 블럭과 후속하는 블럭을 갱신하는 컴퓨터 시스템.
- 컴퓨터 시스템에 의해 판독가능한 프로그램 저장 장치로서, 다수의 페이지 -각 페이지는 다수의 블럭에 저장된 데이타를 포함함- 로 구분되어(partitioned) 있는 메모리를 포함하는 컴퓨터 시스템 내에 데이타를 저장하는 방법을 수행하도록 상기 컴퓨터 시스템에 의해 실행 가능한 명령어들의 프로그램을 실체적으로 구현하는 프로그램 저장 장치에 있어서, 상기 방법은,(a) 각 페이지 내에 블럭들이 역순으로 배치되도록, 상기 메모리에 데이타를 압축된 형태로 저장하는 단계와,(b) 상기 메모리 내의 선택된 페이지 내의 선택된 블럭에 저장된 데이타를 변경하는 단계로서, 상기 선택된 페이지 내에서 상기 선택된 블럭 뒤에 배치된 후속하는 블럭이 있다면, 적어도 하나의 후속하는 블럭과 상기 선택된 블럭을 갱신하는 단계를 포함하는 단계를 포함하는 프로그램 저장 장치.
- 프로그램 제품을 컴퓨터 시스템으로 전송하는 방법에 있어서,(a) 상기 컴퓨터 시스템과 연결하는 단계(establishing a connection)와,(b) 상기 프로그램 제품을 상기 컴퓨터 시스템에 전송하는 단계로서, 상기 프로그램 제품은 상기 컴퓨터 시스템 내에서 데이타를 저장하는 방법을 수행하도록 상기 컴퓨터 시스템에 의해 수행가능하고, 상기 컴퓨터 시스템은 다수의 페이지 -각 페이지는 다수의 블럭에 저장된 데이타를 포함함- 로 구분되어(partitioned) 있는 메모리를 포함하고, 상기 방법은,(1) 각 페이지 내에 블럭들이 역순으로 배치되도록, 상기 메모리에 데이타를 압축된 형태로 저장하는 단계와,(2) 상기 메모리 내의 선택된 페이지 내의 선택된 블럭에 저장된 데이타를 변경하는 단계로서, 상기 선택된 페이지 내에서 상기 선택된 블럭 뒤에 배치된 후속하는 블럭이 있다면, 적어도 하나의 후속하는 블럭과 상기 선택된 블럭을 갱신하는 단계를 포함하는 단계를 포함하는 전송 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/797,760 | 1997-02-07 | ||
US08/797,760 US5924092A (en) | 1997-02-07 | 1997-02-07 | Computer system and method which sort array elements to optimize array modifications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980069939A true KR19980069939A (ko) | 1998-10-26 |
KR100260868B1 KR100260868B1 (ko) | 2000-07-01 |
Family
ID=25171742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970046488A KR100260868B1 (ko) | 1997-02-07 | 1997-09-10 | 배열 변경을 최적화하기 위해 배열 요소를 정렬하는 컴퓨터 시스템 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5924092A (ko) |
JP (1) | JP3416502B2 (ko) |
KR (1) | KR100260868B1 (ko) |
CN (2) | CN1139030C (ko) |
TW (1) | TW379300B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100941423B1 (ko) * | 2008-02-21 | 2010-02-11 | 인하대학교 산학협력단 | 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3360598B2 (ja) * | 1998-02-18 | 2002-12-24 | ミノルタ株式会社 | 画像システム |
US7278094B1 (en) | 2000-05-03 | 2007-10-02 | R. R. Donnelley & Sons Co. | Variable text processing for an electronic press |
US7802077B1 (en) | 2000-06-30 | 2010-09-21 | Intel Corporation | Trace indexing via trace end addresses |
US7757065B1 (en) * | 2000-11-09 | 2010-07-13 | Intel Corporation | Instruction segment recording scheme |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6950903B2 (en) * | 2001-06-28 | 2005-09-27 | Intel Corporation | Power reduction for processor front-end by caching decoded instructions |
US7062761B2 (en) * | 2001-07-10 | 2006-06-13 | Micron Technology, Inc. | Dynamic arrays and overlays with bounds policies |
US7062607B2 (en) * | 2001-09-24 | 2006-06-13 | Intel Corporation | Filtering basic instruction segments in a processor front-end for power conservation |
US8190765B2 (en) * | 2002-06-25 | 2012-05-29 | Intel Corporation | Data reception management apparatus, systems, and methods |
US7996411B2 (en) * | 2003-03-28 | 2011-08-09 | International Business Machines Corporation | Method, apparatus, and system for translating selected characters in a record processing system |
CA2427216A1 (en) * | 2003-04-30 | 2004-10-30 | Ibm Canada Limited - Ibm Canada Limitee | Slow materialization sort of partially ordered inputs in a database system |
US20050086225A1 (en) * | 2003-10-15 | 2005-04-21 | Xiaoming Cheng | Apparatus and method for searching a directory of stored items |
WO2008136066A1 (ja) * | 2007-04-19 | 2008-11-13 | Turbo Data Laboratories, Inc. | メモリ間接参照をメモリ直接参照に変換する方法及び装置 |
US8078957B2 (en) * | 2008-05-02 | 2011-12-13 | Microsoft Corporation | Document synchronization over stateless protocols |
US8219526B2 (en) | 2009-06-05 | 2012-07-10 | Microsoft Corporation | Synchronizing file partitions utilizing a server storage model |
US20110202509A1 (en) * | 2010-02-16 | 2011-08-18 | Microsoft Corporation | Efficient extraction and compression of data |
KR101257691B1 (ko) | 2011-08-12 | 2013-04-24 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
US9792313B2 (en) | 2012-07-31 | 2017-10-17 | Empire Technology Development Llc | Parting data to improve system performance |
WO2014049636A1 (en) * | 2012-09-25 | 2014-04-03 | Hitachi, Ltd. | Storage apparatus and method of controlling the same |
CN114328373A (zh) * | 2020-09-29 | 2022-04-12 | 伊姆西Ip控股有限责任公司 | 管理文件系统的方法、电子设备和计算机程序产品 |
CN115657968B (zh) * | 2022-11-21 | 2023-04-07 | 苏州数算软云科技有限公司 | 边界表示模型的存储方法、装置、设备和介质 |
CN115827109A (zh) * | 2023-02-10 | 2023-03-21 | 苏州万店掌网络科技有限公司 | 一种脚本数组元素删除方法、装置、设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3670307A (en) * | 1969-12-23 | 1972-06-13 | Ibm | Interstorage transfer mechanism |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
JPS57169865A (en) * | 1981-04-14 | 1982-10-19 | Fuji Xerox Co Ltd | Picture information storage device |
SE8307228D0 (sv) * | 1983-12-30 | 1983-12-30 | Grundstenen 16808 Ab | Datakomprimering |
EP0406189B1 (en) * | 1989-06-28 | 1995-07-26 | International Business Machines Corporation | A method for efficient utilization of removable data recording media |
US5235695A (en) * | 1989-06-28 | 1993-08-10 | International Business Machines Corporation | Apparatus for efficient utilization of removable data recording media |
US5247638A (en) * | 1990-06-18 | 1993-09-21 | Storage Technology Corporation | Apparatus for compressing data in a dynamically mapped virtual data storage subsystem |
US5313604A (en) * | 1990-11-13 | 1994-05-17 | Hewlett-Packard Company | Method for locating compressed data in a computed memory back up device including steps of refining estimater location |
US5237460A (en) * | 1990-12-14 | 1993-08-17 | Ceram, Inc. | Storage of compressed data on random access storage devices |
US5490260A (en) * | 1990-12-14 | 1996-02-06 | Ceram, Inc. | Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size |
US5481701A (en) * | 1991-09-13 | 1996-01-02 | Salient Software, Inc. | Method and apparatus for performing direct read of compressed data file |
US5239298A (en) * | 1992-04-17 | 1993-08-24 | Bell Communications Research, Inc. | Data compression |
US5305295A (en) * | 1992-06-29 | 1994-04-19 | Apple Computer, Inc. | Efficient method and apparatus for access and storage of compressed data |
JPH0628108A (ja) * | 1992-07-09 | 1994-02-04 | Hitachi Ltd | データ記憶システム |
US5357614A (en) * | 1992-09-17 | 1994-10-18 | Rexon/Tecmar, Inc. | Data compression controller |
US5559978A (en) * | 1992-10-14 | 1996-09-24 | Helix Software Company, Inc. | Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents |
US5812817A (en) * | 1994-10-17 | 1998-09-22 | International Business Machines Corporation | Compression architecture for system memory application |
-
1997
- 1997-02-07 US US08/797,760 patent/US5924092A/en not_active Expired - Fee Related
- 1997-09-10 KR KR1019970046488A patent/KR100260868B1/ko not_active IP Right Cessation
- 1997-11-03 TW TW086116269A patent/TW379300B/zh not_active IP Right Cessation
-
1998
- 1998-01-06 CN CNB981039278A patent/CN1139030C/zh not_active Expired - Fee Related
- 1998-02-03 JP JP02241498A patent/JP3416502B2/ja not_active Expired - Fee Related
-
2001
- 2001-08-21 CN CNB011257415A patent/CN1214327C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100941423B1 (ko) * | 2008-02-21 | 2010-02-11 | 인하대학교 산학협력단 | 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체 |
Also Published As
Publication number | Publication date |
---|---|
JP3416502B2 (ja) | 2003-06-16 |
CN1339744A (zh) | 2002-03-13 |
CN1139030C (zh) | 2004-02-18 |
TW379300B (en) | 2000-01-11 |
CN1190212A (zh) | 1998-08-12 |
JPH10269131A (ja) | 1998-10-09 |
KR100260868B1 (ko) | 2000-07-01 |
US5924092A (en) | 1999-07-13 |
CN1214327C (zh) | 2005-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100260868B1 (ko) | 배열 변경을 최적화하기 위해 배열 요소를 정렬하는 컴퓨터 시스템 및 방법 | |
Fagin et al. | Extendible hashing—a fast access method for dynamic files | |
US5732402A (en) | System and method for data space management using buddy system space allocation | |
US6658437B1 (en) | System and method for data space allocation using optimized bit representation | |
US8224829B2 (en) | Database | |
US7284022B2 (en) | Database management methods and equipment and database management program storage media | |
US6411957B1 (en) | System and method of organizing nodes within a tree structure | |
US5717893A (en) | Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions | |
US6857045B2 (en) | Method and system for updating data in a compressed read cache | |
US6557014B1 (en) | Method and apparatus for record addressing in partitioned files | |
US9946462B1 (en) | Address mapping table compression | |
JP3992495B2 (ja) | トリー構造に基づく機能的メモリ | |
Franaszek et al. | On internal organization in compressed random-access memories | |
WO1999001817A1 (en) | Defragmentation of stored data without pointer indirection | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
CN117573676A (zh) | 基于存储系统的地址处理方法、装置、存储系统及介质 | |
US20020178332A1 (en) | Method and system to pre-fetch compressed memory blocks suing pointers | |
JP3020512B2 (ja) | フアイルデータ管理方法 | |
Dance et al. | An adaptive on line data compression system | |
EP0170442A2 (en) | A method for searching sparse databases using an associative technique | |
Ghandeharizadeh et al. | Management of space in hierarchical storage systems | |
US7293032B1 (en) | Compressing decimal types | |
JPS61160133A (ja) | デ−タの入力管理方法 | |
JPH08328946A (ja) | 2次記憶領域の管理方法 | |
Dance | An Adaptive File Management Systems |
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: 20030328 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |