KR19990013934A - 대용량 메모리 할당 방법 및 장치 - Google Patents

대용량 메모리 할당 방법 및 장치 Download PDF

Info

Publication number
KR19990013934A
KR19990013934A KR1019980028818A KR19980028818A KR19990013934A KR 19990013934 A KR19990013934 A KR 19990013934A KR 1019980028818 A KR1019980028818 A KR 1019980028818A KR 19980028818 A KR19980028818 A KR 19980028818A KR 19990013934 A KR19990013934 A KR 19990013934A
Authority
KR
South Korea
Prior art keywords
memory
processes
operating system
memory area
input device
Prior art date
Application number
KR1019980028818A
Other languages
English (en)
Other versions
KR100470258B1 (ko
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 KR19990013934A publication Critical patent/KR19990013934A/ko
Application granted granted Critical
Publication of KR100470258B1 publication Critical patent/KR100470258B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

본 발명은 대용량 메모리의 할당 및 접근을 행하기 위한 컴퓨터 장치 및 방법에 관한 것이다. 본 발명의 장치는, 주어진 운영 체제하에서, 각 프로세스에 할당되는 대응 가상 메모리 공간을 각각 구비한, 다수의 프로세스들을 생성한다. 상기 생성된 프로세스에 대해 할당된 생성된 가상 메모리 공간들은 통합되어 단일 작업 메모리 영역를 형성한다. 인덱스 번호는 생성된 프로세스와 관련하여 형성된 작업 메모리 영역을 교차되게 참조한다. 그 결과, 인덱스 번호는 설령 단일 대용량 작업 메모리 영역일지라도 생성된 가상 메모리 공간에 공동으로 접근하는 것을 가능하게 한다.

Description

대용량 메모리 할당 방법 및 장치
본 발명은 컴퓨터 메모리에 관한 것으로, 더 상세하게는 운영 체제에 의한 컴퓨터내의 메모리 할당에 관한 것이다.
일반적으로 컴퓨터 시스템에 있어서, 운영 체제(operating system)는 다수의 드라이버 혹은 시스템(커널 코드; kernel code) 및 응용(사용자 코드; user code) 요구들에 응답하여 메모리를 할당한다. 메모리 할당은 운영 체제에 의존하여 물리 메모리의 배치된 페이지들(mapped pages)을 한정할 수도 있다. 실례로, 유닉스 시스템(UNIX system)은 커널 코드로부터 할당된 배치되지 않은 페이지들을 허용하고 있다. 한편, 윈도우즈 NT 시스템은 배치되지 않은 물리 페이지들을 할당하기 위한 인터페이스(interface)를 제공하지 않고, 가상 주소 공간(virtual address space)으로 배치되도록 할당된 페이지들을 요구한다.
그러므로, 할당되는 메모리의 크기는 운영 체체의 가상 메모리 주소 공간의 크기에 의해 한정된다. 즉, n-비트 가상 메모리 주소 방식이 채용된 운영 체체에 있어서, 허용되는 가능한 최대 가상 메모리 공간은 가상 메모리의 2n바이트이다. 예들들어, 윈도우즈 NT 메모리 할당의 경우에 있어서는 각 프로세스(process)의 32비트(4GB) 가상 공간에 의해 한정된다. 커널 모드 코드(드라이버 등)는 상기 공간의 상위 2GB에 한정되는 반면, 사용자 모드 코드는 상기 공간의 하위 2GB에 한정된다.
상기와 같은 제한들 때문에, 많은 운영 체체들은 컴퓨터 데이터 베이스 서버상에 존재하는 그것들과 같이, 초 대용량 물리 메모리 영역들의 이점을 이용하도록 사용자들/프로그램들을 허용할 수가 없다. 이러한 문맥속에 있는 초 대용량(very large)이란 단어는 가상 주소 공간과 관련이 있고, 예컨데, 운영 체체의 통상적으로 할당되는 가상 메모리 영역보다는 훨씬 큰 메모리 영역임을 의미한다. 운영 체체는 가상 주소 공간 이상의 물리 메모리로의 접근을 일반적으로 실행시킬 수가 없다.
하나의 해결책(solution)은 특별한 적용을 위한 페이지들의 물리 캐시(cache)와 같이 사용되도록 부트타임(boot time)시에 리저빙(reserving) 메모리를 구비하는 것이다. 이 부트타임시 리저빙(사전 할당) 메모리의 단점은 (i) 메모리의 크기가 사전 정의되어야 하고 부트타임시에 코드화하기 어렵다는 것과; (ii) 그러한 메모리는 특별한 운영 체체 호출들(I/O 호출들)을 필요로 한다는 것과; (iii) 할당이 운영 체체를 통해 이루어지지 않으므로 그에따라 운영 체체 어드레싱(addressing)을 사용할 수 없기 때문에 메모리에 주소를 지정하기 위한 특수한 드라이버들을 필요로 한다는 것이다.
따라서, 컴퓨터 시스템의 대용량 메모리와 관련된 상기 기술분야에서 개량의 필요성이 발생된다.
본 발명은 선행기술의 해결책에 따른 단점들을 유발시킴이 없이 대용량 메모리들에 할당 및 접근하는 문제들을 해결한다. 상세하게는, 본 발명이 대용량 메모리 공간을 할당 및 접근하기 위하여 커널 코드 혹은 사용자 코드를 허용할 수 있는 메카니즘을 제공하므로써, 오늘날의 데이터베이스 서버상에 존재하는 초 대용량 물리 메모리들의 장점을 실행시킬 수 있다.
넓은 개념의 본 발명은 청구항 제1항과 제4항의 각각에 열거된 바와같이 비교적 대용량 메모리를 할당하기 위한 컴퓨터 방법 및 장치에 적용된다.
하기에 설명된 일실시예는 주어진 운영 체제하에서, 다수의 프로세스들을 생성하는 단계와;
상기 생성된 프로세스들을 단일 작업 메모리 영역을 형성하기 위하여 통합하는 단계와;
상기 프로세스들의 가상 주소 공간이 마치 단일 작업 메모리 영역 처럼 접근되도록 하는, 접근 위치 입력 장치(locator)를 사용하여 상기 생성 및 통합된 프로세스들에 대해 작업메모리 영역을 접근시키는 단계를 포함하는 초 대용량 메모리 영역을 할당하기 위한 컴퓨터 장치 및 방법을 제공한다.
하기에 설명된 바와같이, 상기 생성하는 단계는
(i) 물리 메모리를 생성된 프로세스의 각각에 할당하는 단계; 및
(ii)각 프로세스의 가상 주소 공간을 물리 메모리에 연관시키는 단계를 포함한다. 더 나아가, 상기 연관시키는 단계는
(a) 각각 생성된 프로세스에 대해 각각의 PID 혹은 PID를 생성하는 단계; 및
(b) 어레이(array)내에서, 각 PID를 리스팅(listing)하는 단계를 구비한다.
한편, 상기 접근시키는 단계는 어레이내의 PID를 참조(reference)한다. 각각의 참조는 대응하는 프로세스를 위한 물리 메모리의 각 부분으로 접근할 수 있고, 그리고 접근된 전체 대용량 작업 메모리 영역을 향후 허용할 수 있다.
양호하게는, 상기 접근시키는 단계는 접근 위치 입력 장치(access locator)에 의해 주소 지정된 사전 정의된 다중-비트 주소 공간을 사용하는 단계가 구비된다. 접근 위치 입력 장치는 상위 부분과 하위 부분을 가지고 있다. 하위 비트내의 비트들의 총수는 운영 체체의 가상 주소 공간의 크기에 의해 한정된다. 따라서, 상기 접근시키는 단계는 어떤 생성된 프로세스의 가상 주소 공간내에서 바이트 위치를 지시하기 위하여 접근 위치 입력 장치의 하위 부분을 사용하고, 그리고 작업 메모리를 형성하는 또 다른 생성된 프로세스들사이에서 어떤 프로세스를 지시하기 위하여 접근 위치 입력 장치의 상위 부분을 사용한다.
유리하게는, 상기 접근 위치 입력 장치가 적어도 33 비트를 포함한다. 상기 하위 30비트들은 프로세스의 가상 주소 공간내에서 바이트의 위치를 지시하는 반면에, 상기 상위 3비트들 혹은 그 이상은 작업 공간을 형성하는 또 다른 생성된 프로세스들 사이에서 어떤 프로세스를 지시한다.
본 발명의 또 다른 양호한 실시예에 있어서, 상기 생성 단계는
(i) 물리 메모리를 각 생성된 프로세스에 할당하는 단계; 및
(ii) 물리 메모리를 갖는 각 프로세스의 가상 메모리를 연관시키는 단계를 구비한다. 더 나아가, 상기 연관시키는 단계는
(a) 각 프로세스용 페이지 어레이를 제너레이팅하고, 가상 페이지들을 물리 페이지로 배치하는 단계; 및
(b) 그렇게 형성된 연관(페이지 어레이에 의해서 기술된 바와같이)이 정적(static)을 유지하도록 되는 형성된 작업 메모리를 로킹(locking)시키는 단계가 구비된다. 한편, 상기 접근시키는 단계는 페이지 맵(map)의 페이지 번호들을 참조한다. 각각의 참조는 대응하는 프로세스에 대한 물리 메모리의 각 부분의 접근을 가능하게 하고, 그에따라 전체 대용량 작업 메모리 영역에 접근할 수 있게 한다.
도 1은 본 발명에 따른 컴퓨터 시스템의 블록도.
도 2는 본 발명의 일실시예에 따른 접근 위치 입력 장치 및 프로세스 식별자 어레이를 도시하는 블록도.
도 3은 본 발명의 또 다른 실시예에 따른 접근 위치 입력 장치 및 페이지 어레이를 도시하는 블록도.
도 4는 본 발명에 따른 디스크 캐싱 시스템의 개략도.
도 5는 도1 의 컴퓨터 시스템내에서 실행되는 본 발명의 일실시예의 흐름도.
* 도면의 주요 부분에 대한 부호의 설명 *
12: 운영 체제 14: 프로세스
16: 가상 주소 공간 18: n-비트 가상 메모리 주소
20: 프로세서 어셈블리 24: 다수의 프로세스
26: 할당된 가상 메모리 공간 30 위치 입력 수단
100: 오프셋 부분 102 PID 인덱스 부분
104: 프로세스 식별자 어레이 106: 리드 프로세스 메모리
108: 라이트 프로세스 메모리 110: 접근 위치 입력 장치
114: 복귀된 PID 204: 페이지 어레이
210: 접근 위치 입력 장치 300: 파일 시스템
302: 심 드라이버 306: 데이터 캐시
도 1의 실시예는 본 발명을 사용하는 컴퓨터 시스템이다.
일반적으로 컴퓨터 시스템에는 디지탈 프로세서와 그에 수반되는 운영 체체(12)가 구비된다. 상기 운영 체체(12)는 작업(jobs) 혹은 프로세스(processes) (14)로서 알려진 작업실체들(work entitles)에 응답한다. 일반적으로, 프로세스(14)는 코드, 스레드(threads)의 제어, 주소 공간 및 레지스터 세트를 포함하는 실행 프로그램의 객체(instance)이다.
예를들어, 사용자가 컴퓨터 단말기로 프로그램명을 입력시켰을 경우, 운영 체체(12)는 새 프로세스(14)를 생성하고, 이 새 프로세스(14)내에서 상기 프로그램을 실행시킨다. 그러나, 프로세스들의 생성은 사용자의 실행에 의해 한정되는 것은 아니다. 한 프로세스(14) 내에서 실행되는 실행 프로그램은 다른 프로그램(혹은 같은 프로그램의 다른 복사본)이 동시에 실행될 수 있도록 제2의 프로세스를 시동하도록 하는 요구를 할 수도 있다. 새 프로세스용 요구들은 운영 체체(12)에서 만들어진다. 따라서 생성된 각 프로세스는 운영 체체(12)에 의해서 유일 프로세스 식별자(PID)를 할당받게 된다. 상기 운영 체체(12)는 프로세스가 종결될 때까지 프로세스 테이블내에 할당된 PID를 유지한다. 요구된 프로세스가 생성된 후에 운영 체제(12)는 상기 PID를 요구한 프로세스(14)로 복귀시킨다.
더 나아가, 각 프로세스(14)는 가상 주소 공간과 연관된다. 이것은 비록 물리 메모리가 다소간 존재할 수 있다 할지라도, 프로세스(14)가 직접적으로 주소지정할 수 있는 최대 용량이다.
도 1에 예시된 바와같이, 상기 운영 체체(12)는 n-비트 가상 메모리 주소(18)를 이용한다. 따라서, 각 프로세스(14)는 가상 메모리 공간(16)의 최대 2n바이트까지 주소지정할 수 있다. 상기 2n바이트 가상 메모리 공간(16)은 커널 모드 및 사용자 모드 용도사이에 추가로 구성된다. 예를들어, 2n바이트의 상위 반은 커널 텍스트, 커널 코드 및 커널 데이터로 사용되고, 2n바이트의 하위 반은 응용 프로그램들 및 그와 유사한 프로그램들에 의해 사용되기 위해서 구성된다. 코드의 일부분은 가상 주소 공간(16)의 상위 혹은 하위 반내의 메모리에만 할당할 수 있다.
가상 주소들은 페이지들이라 부르는 블록들 내의 물리 주소들에 전형적으로 배치되게 된다. 초 대용량 메모리 시스템에 있어서, 상기 운영 체체는(메모리 관리 유니트에 의해) 하나 혹은 그 이상의 프로세스들의 전체 가상 주소 공간들을 물리 메모리에 배치할 수 있다.
전술한 바와같이, 프로세서 어셈블리(20)는 프로세스(14)당 가상메모리(16)가 통상 2n바이트 이상인 메모리의 할당을 위한 운영 체체(12)에 연결된다. 대용량(2n바이트 이상) 작업 메모리의 필요성에 응답하여, 상기 프로세서 어셈블리(20)는 운영 체체(12)로부터 다수의 프로세스들(24)을 요구한다. 더 상세히 설명하면, 원하는 메모리의 각 유니트를 위하여, 상기 프로세서 어셈블리(20)는 개별 프로세스(24a-24h)를 생성한다. 예를들어, 만약 총 8GB를 원한다면, 인접한 가상 메모리의 1 GB의 유니트들이 프로세스에 할당될 수 있는 시스템에 있어서, 프로세서 어셈블리(20)는 원하는 각 기가바이트당, 8개의 개별 프로세스(24a-24h)를 요구한다.
각각의 생성된 프로세스(24a-26h)는 각 가상 메모리 공간(26a-26h)를 갖는다. 그러나, 프로세스들이 어느 코드나 혹은 스레드들(threads)의 제어에 대체적으로 제한을 받는 선행기술과 비교할 때, 복수개의 생성된 프로세스들(24a-24h)을 위한 할당된 가상 메모리 공간(26a-26h)은 (i) 어느 코드나 스레드들에 의해 제한을 받지 않고, 그리고 (ii) 본 발명에 따른 컴퓨터 시스템내에서 집단적으로 사용된다. 즉, 본 발명은 하나의 프로세스의 전통적인 가상 메모리 공간 이상인 복수배의 크기를 갖는 단일 작업 메모리 영역을 효과적으로 형성시키기 위하여 할당된 가상 메모리 공간(26)을 통합시킨다.
또한, 형성된 작업 메모리 영역(할당된 대용량 메모리 등)에 접근하기 위하여, 본 발명의 실시예는 위치 입력 수단(30)을 구비한다. 위치 입력 수단(30)은, 도 2 및 도 3의 다른 실시예들의 다음의 실예에서 예증된 바와같이, 가상 혹은 물리 메모리 주소에 의해 형성된 작업 메모리 영역으로 접근시키기 위하여 요구한 프로세스(14)를 실행시킬 수가 있다.
도 2는 프로세스 식별자(PID) 어레이(104)와 접근 위치 입력 장치(110)가 형성된 위치 입력 수단(30)을 갖는 양호한 실시예를 설명한다.
접근 위치 입력 장치(110)는 폭이 적어도 33비트이며, 그리고 두 부분으로 구성되는데, 30비트를 구성하는 로케이션(location) 및 오프셋 부분(100)의 하위부분과, PID 인덱스 부분인 상위부분으로 구성된다. 상기 설명된 바와같이, 프로세스들(24)은 프로세서 어셈블리(20)의 요구에 응답하여 운영 체체(12)에 의해 생성되는데, 새로 생성된 프로세스들(24)의 PID은 PID 어레이(104)에 그들이 저장되도록 프로세서 어셈블리(20)로 복귀된다. 생성된 대용량 작업 메모리 영역내의 특정한 바이트에 접근(리드 혹은 라이트)하기 위해서는, 그의 주소의 PID 인덱스 부분[접근 위치 입력 장치(110)의 PID 인덱스 부분(102) 등]이 원하는 바이트 로케이션과 연관되는 PID(114)를 검색한 점을 상기 PID 어레이(104)에 인덱스(112)로서 사용하게 된다.
원도우즈 NT에 있어서, 두 개의 루틴은 디버깅(debugging)시 도움을 주기 위해 최초 제공되기는 하지만, 다양한 프로세스들의 가상 메모리, 즉 리드 프로세스 메모리(106) 및 라이트 프로세스 메모리(108)들로 리드 혹은 라이트 접근하는데 유용할 수 있다. 검색된 PID(114)는 이들 루틴들에 대한 하나의 변수(argument)로서 사용되기는 하지만, 상기 주소/접근 위치 입력 장치(110)의 오프셋 부분(100)은 또다른 변수로 직접 복사된다(116)(이들 루틴들에 대한 다른 변수들은 주변장치에 존재하며, 그러므로, 여기서는 논의되지 않음). 따라서, 이들 루틴(106,108)들중의 하나를 요구하는 것은 본 발명의 대용량 작업 영역내의 원하는 위치로 리드 및 라이트 접근을 제공할 수 있다.
도 3은 위치 입력 수단(30)이 PID 식별자 어레이(104)가 아닌 페이지 어레이(204)를 채용한 본 발명의 다른 실시예를 설명하는 것이다. 이 실시예에 있어서, 접근 위치 입력 장치(210)는 페이지 로케이션 혹은 오프셋 부분(200)인 하위(lower)와 페이지 어레이 인덱스 부분(202)인 상위(upper)로 구성된다. 다수의 결합들이 가능하지만, 두 개의 다른 장치들(220,222)이 도시되어 있다. 그중 하나는 접근 위치 입력 장치의 페이지 오프셋 부분(200)이 13비트(213=8k)로 구성되고, 페이지 어레이 인데스 부분(202)이 20 내지 50비트들로 구성되도록 페이지의 크기가 8킬로바이트(220)인 경우이고 다른 하나는, 접근 위치 입력 장치의 페이지 오프셋 부분(200)이 12비트(212=4k)로 구성되고, 페이지 어레이 인데스 부분(202)이 21 내지 52비트들로 구성되도록 페이지의 크기가 4킬로바이트(222)로 된 경우이다.
추가의 물리 메모리가 필요할 경우, 프로세서 어셈블리(20)는 새로운 프로세스(24)를 요구한다. 이렇게 하는 것은, 예컨데, 물리 메모리를 할당하고 그리고 페이지 어레이를 생성하는, 각각의 새로운 프로세스(24)내에 존재하는 작은 규모의 코드를 갖도록 함에 의해 처음 생성시 실행될 수가 있다. 페이지 어레이(204)는 가상 공간내의 모든 페이지를 위한 엔트리(entry)를 갖는다. 따라서, 프로세스(24)는 그의 코드가 삭제 및 본 발명의 컨테이너 프로세스 즉, 무코드(true codeless)되기 전에 가상 및 물리 메모리 사이에서 그 자신의 배치(mapping)를 생성하게 된다. 그러한 페이지 어레이(204)를 생성하는 또다른 방법들이 존재한다는 것은 본 발명이 속하는 기술분야에서 통상의 기술을 가진자에 의해 인식되게 될 것이다. 페이지 어레이(204)를 생성하고 페이지를 배치한 후에, 페이지들은 상기 어레이(204)가 정적(static) 상태로 되고 항상 정확하게 유지되도록 로크(locked)된다. 결국, 페이지 번호 혹은 페이지 번호들의 리스트들은 프로세서 어셈블리(20)로 복귀된다.
도 2의 실시예와는 다르게, 물리 주소를 획득할 수 있기 때문에, 본 실시예는 물리 메모리로 접근을 요구한다. 예컨데, 디지탈 이큅먼트 주식회사의 알파(Alpha) 프로세서들은 KSEG 모드를 제공하는데, 그러한 프로세서들은 물리 메모리에 직접적으로 접근할 수가 있다. KSEG모드내의 주소는 잔존하는 하위 비트들이 가상 주소들과는 대조적으로 물리 메모리인 것을 지시하는 특정한 선행 비트들을 사용한다. 다수의 프로세서들은 몇몇 종류의 직접적인 물리 메모리 접근을 지금 허용하고 있지만, 그러나, 그외에 또다른 것에는 존재하지 않고, 물리 메모리 페이지들이 커널 가상 공간내의 원도우잉 영역(windowing area)으로 배치되는 것과 같이 그렇게 실행될 수 있도록 접근시키는 수단은 효과가 별로 없다.
양호한 실시예에 있어서, 상기 운영 체체는 마이크로소프트사의 윈도우즈 NT이다. 윈도우즈 NT는 32비트 혹은 4 기가바이트(232)의 가상 메모리 주소 공간을 사용한다. 4 기가바이트(GB) 가상 메모리의 2 기가바이트(GB)들은 커널 텍스트, 커널 코드 및 커널 데이터(커널 모드등)용으로 사용된다. 상기 나머지 2 기가바이트들은 사용자 응용(사용자 모드등)용이다. 그러나, 가상 주소 공간의 최하위 페이지는 운영 체체에 의해 리저브(reserve)되는 등, 사용할 수 없다. 더 나아가, 원도우즈 NT는 운영 체체 목적을 위해서 최상위 64 킬로바이트들을 리저브(reserve)한다. 따라서, 각 커널 모드와 사용자 모드내에서 실제적으로 사용가능한 총계는 2 GB 보다도 다소 감소하게 된다.
그러므로, 양호한 실시예의 간략화를 위해서, 2 기가바이트 사용자 가상 주소 공간의 중앙부내의 1 기가바이트가, 본 발명의 각 생성된 프로세스(24)를 위해서 사용된다(엔트리 4GB 가상 공간의 중앙부와는 대조적으로).
본 발명 시스템의 일사용예는 디스크 캐싱 장치 내에서 그 예를 찾아볼 수 있다. 예컨데, 도 4에 도시된 바와 같이, 본 발명의 장치는 심 드라이버(shim driver)(302)에 내장되는데, 즉, 심 드라이버(302)는 파일 시스템(300)과 예컨데, SCSI 드라이버(304) 사이에서 논리적으로 위치되며, 이들 중 어느 것도 심 드라이버(302)의 존재를 직접 인식할 필요는 없다. 대용량 작업 메모리 영역은 데이터 캐시(306)로서 사용된다. 커널 가상 공간내에서 그 자신의 디스크 캐시 레벨을 가질 수 있는 파일 시스템(300)이 데이터에 대한 요구를 SCSI 드라이버(304)에 보내면, 이 요구는 심 드라이버(302)에 의해 차단되거나, 수정되거나 혹은 통과될 수 있다. 만약 요구된 기능이 초 대용량 작업 메모리 영역(306) 캐시내에서 만족될 수 있다면, 상기 요구는 상기 SCSI 드라이버(304)상에서 통과될 필요가 없다. 만약 그렇치 않다면, 심 드라이버(302)는 SCSI 드라이버(304)로 요구를 통과할 수 있고, 그리고 데이터 캐시(306)내에서 SCSI 드라이버(304)에 의해 복귀된 데이터를 고속처리하며, 반면에, 파일 시스템(300)으로 되돌아가는 데이터도 통과시킨다.
소프트웨어 지원
도 5는 대용량 작업 메모리 영역를 형성하기 위한 단계들을 예시하는 흐름도이다. 그 과정은 프로세스 식별자들(PIDs)을 유지하기 위해 제어가 도 2(도면 부호 104) 혹은 도 3(도면 부호 204)에 통과될 때 단계(400)에서 시작되거나 혹은 각각의 페이지 번호들이 단계(402)에서 생성된다. 그리고나서, 필요로 하는 각 메모리 유니트에 대하여, 단계(404),(406),(408),(410) 및 (412)를 반복한다.
단계(404)에 있어서, 도 1과 관련하여 설명된 바와같이, 프로세서 어셈블리(20)는 운영 체체가 프로세스를 생성하도록 요구한다. 운영 체체는 그러한 일을 수행하고 그리고, PID를 복귀시키거나, 혹은 다른 방법으로, 페이지 리스트가 운영 체체 혹은 새로이 생성된 프로세스로부터 복귀된다.
다음으로, 새 프로세스의 가상 주소 공간은 할당되고(406), 물리 메모리와 연관(배치)된다(408). 페이지 번호들이 어레이(도 3 참조)내에 유지되는 본 발명 실시예에 있어서, 상기 페이지들은 배치(mapping)혹은 연관이 변경되지 않도록 로크(locked)하게 된다(410). 그러면, 상기 PID 혹은 페이지 리스트가 어레이로 입력되게 된다(412). 만약 추가의 메모리가 필요하게 된다면(414), 이러한 단계들은 반복된다(416). 만약 그렇치 않다면, 상기 과정은 추가의 메모리가 필요할 때까지 완료하게 된다(418).
본원 발명은 양호한 실시예를 참고로 상세하게 설명하였지만, 본 발명의 권리범위로부터 벗어남이 없이 세부항목과 형식면에서 다양한 변경이 만들어질 수 있다는 점은 본 발명의 기술분야에서 통상의 기술을 가진 자들에 의해 충분히 이해될 수 있다.
예컨데, 윈도우즈 NT 와 디지탈 이큅먼트 주식회사의 알파 환경내에서 본 발명이 상기와 같이 설명된 것은 예증의 목적을 위해서일 뿐 그것에 한정되는 것은 아니다. 본 발명은 다수의 운영 체체내에서 실행될 수 있고, 커널 모드 혹은 사용자 모드내에서도 사용가능하다.
이상 설명에서와 같이 본 발명은 대용량의 메모리 공간을 할당하고 이 할당된 메모리 공간에 접근하기 위하여 커널 코드 혹은 사용자 코드를 허용할 수 있는 메카니즘를 제공하므로써, 오늘날의 데이터베이스 서버상에 존재하는 초 대용량 물리 메모리들의 동작과 같이 실행시킬 수 있다.

Claims (4)

  1. 컴퓨터내의 대용량 메모리를 할당하는 컴퓨터 방법에 있어서,
    가상 주소 공간을 이용하는 주어진 운영 체제하에서, 다수의 프로세스들을 생성하는 단계와;
    접근 위치 입력 장치를 통해 접근가능한 단일 작업 메모리 영역을 형성시키기 위해 상기 생성된 프로세스들을 통합하는 단계와;
    상기 접근 위치 입력 장치를 사용하여 상기 작업 메모리 영역에 연속하여 접근하는 단계를 포함하며,
    상기 접근 위치 입력장치는 상기 작업 메모리 영역을 형성시키기 위해, 생성되고 통합된 프로세스들과 관련하여 상기 작업 메모리 영역을 참조하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 통합하는 단계는 생성된 프로세스에 대한 각각의 프로세스 식별자를 생성하는 단계를 포함하고;
    상기 통합하는 단계는 (a) 각 프로세스 식별자를 갖는 각 프로세스를 테이블내에서 교차 참조하는 단계, 및 (b) 원하는 프로세스들을 접근 위치 입력 장치가 표시하는 단계를 포함하며;
    상기 작업 메모리 영역에 연속하여 접근하는 단계는 (i) 원하는 프로세스의 접근 위치 입력 장치 표시를 상기 테이블내의 참조값으로서 사용하고, 상기 테이블로부터 프로세스 식별자를 획득하는 단계와, (ii) 상기 획득한 프로세스 식별자와 함께, 원하는 프로세스의 원하는 가상 메모리 로케이션을 참조하고 그에따라 상기 작업 메모리 영역에 접근하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 생성하는 단계는 각각의 물리 메모리를 각각의 생성된 프로세스에 할당하는 단계를 포함하고 상기 물리 메모리를 할당하는 단계는 물리 메모리 페이지 번호의 리스트를 작성하며;
    상기 통합시키는 단계는 (i)각 페이지 번호에 대해 하나의 엔트리가 할당된 복수개의 엔트리를 갖는 어레이내에 물리 메모리 페이지 번호들을 기록하는 단계 와, (ii) 상기 어레이로 원하는 엔트리를 표시하기 위해 접근 위치 입력 장치를 실행시키는 단계를 포함하고;
    상기 작업 메모리 영역에 연속하여 접근시키는 단계는 어레이로의 원하는 엔트리의 접근 위치 입력 장치 표시를 사용하고, 상기 어레이로부터 각 물리 메모리 페이지 번호를 획득하며, 획득된 물리 메모리 페이지 번호와 함께 페이지 오프셋을 참조하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 대용량 메모리를 할당하기 위한 컴퓨터 장치에 있어서,
    대용량 물리 메모리를 갖는 컴퓨터와;
    상기 컴퓨터내에서 상주 및 실행되고, 할당된 가상 메모리 공간을 각각 갖는 다수의 프로세스들을 생성하는 운영 체체와;
    상기 운영 체체하에서 실행되고 상기 운영 체체와 통신하며, 필요로 하는 작업 메모리의 양에 따라서, 복수개의 프로세스들을 상기 운영 체제로부터 요구하고, 단일 작업 메모리 영역을 형성시키기 위해 상기 요구에 응답하여 상기 운영 체체에 의해 연속하여 생성된 상기 복수개의 프로세스들을 통합시키는 프로세서 어셈블리와;
    상기 프로세서 어셈블리에 연결되고, 상기 복수개의 생성된 프로세스들이 단일의 통합 작업 메모리 영역으로서 동작하게 하는 방식으로, 상기 생성된 프로세스들의 상기 형성된 작업 메모리 영역에 대해 연속 접근을 가능하게 하는 위치 입력 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
KR10-1998-0028818A 1997-07-18 1998-07-16 대용량메모리할당방법및장치 KR100470258B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/896,393 1997-07-18
US08/896,393 1997-07-18
US08/896,393 US5940868A (en) 1997-07-18 1997-07-18 Large memory allocation method and apparatus

Publications (2)

Publication Number Publication Date
KR19990013934A true KR19990013934A (ko) 1999-02-25
KR100470258B1 KR100470258B1 (ko) 2005-05-18

Family

ID=25406127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0028818A KR100470258B1 (ko) 1997-07-18 1998-07-16 대용량메모리할당방법및장치

Country Status (4)

Country Link
US (1) US5940868A (ko)
EP (1) EP0892351A1 (ko)
JP (1) JPH11110236A (ko)
KR (1) KR100470258B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100773001B1 (ko) * 2004-03-31 2007-11-05 인터내셔널 비지네스 머신즈 코포레이션 홀을 갖는 시스템 메모리 어드레스의 지원을 위한 데이터처리 시스템 및 컴퓨터 프로그램 제품

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108873B1 (en) * 1999-05-28 2012-01-31 Oracle International Corporation System for extending an addressable range of memory
US7194740B1 (en) * 1999-05-28 2007-03-20 Oracle International Corporation System for extending an addressable range of memory
US6615312B1 (en) * 2000-02-29 2003-09-02 Western Digital Ventures, Inc. Method for processing file system service requests in a computer having an attached disk drive that can reproduce stream data and non-stream data
US7058775B2 (en) * 2001-01-31 2006-06-06 Rto Sortware, Inc Systems and methods for avoiding base address collisions using alternate components
US6950916B2 (en) * 2001-01-31 2005-09-27 Rto Software, Inc. Dynamically setting the optimal base addresses of process components
US20020194340A1 (en) * 2001-06-16 2002-12-19 Ebstyne Bryan D. Enterprise storage resource management system
US6732248B2 (en) 2001-06-28 2004-05-04 International Business Machines, Corporation System and method for ghost offset utilization in sequential byte stream semantics
US7461228B2 (en) * 2003-11-21 2008-12-02 Rto Software, Inc. Systems and methods for avoiding base address collisions
US7055015B2 (en) * 2002-02-25 2006-05-30 Ricoh Company, Ltd. Information processing apparatus in which processes can reduce overhead of memory access and efficiently share memory
US7024591B2 (en) * 2002-07-12 2006-04-04 Crossroads Systems, Inc. Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
US7076632B2 (en) * 2003-10-16 2006-07-11 International Business Machines Corporation Fast paging of a large memory block
US7418568B2 (en) * 2005-01-05 2008-08-26 Sap Ag Memory management technique
JP4984666B2 (ja) * 2006-06-12 2012-07-25 ソニー株式会社 不揮発性メモリ
US20080163185A1 (en) * 2006-12-29 2008-07-03 Rto Software, Inc. Delay-load optimizer
US20110055482A1 (en) * 2009-08-28 2011-03-03 Broadcom Corporation Shared cache reservation
US10474486B2 (en) * 2015-06-30 2019-11-12 Veritas Technologies Llc Data access accelerator
US10558480B2 (en) 2015-09-10 2020-02-11 Veritas Technologies Llc Optimizing access to production data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
JPS623358A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd 複数アドレス空間アクセス方式
JPH03266147A (ja) * 1990-03-16 1991-11-27 Nec Commun Syst Ltd 大容量ファイル管理方式
US5423013A (en) * 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
JPH0764832A (ja) * 1993-08-23 1995-03-10 Nec Corp マルチエクステントファイル方式
US5577231A (en) * 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US5632027A (en) * 1995-09-14 1997-05-20 International Business Machines Corporation Method and system for mass storage device configuration management
US5708790A (en) * 1995-12-12 1998-01-13 International Business Machines Corporation Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system
US5860144A (en) * 1996-08-09 1999-01-12 Oracle Corporation Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
US5860141A (en) * 1996-12-11 1999-01-12 Ncr Corporation Method and apparatus for enabling physical memory larger than corresponding virtual memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100773001B1 (ko) * 2004-03-31 2007-11-05 인터내셔널 비지네스 머신즈 코포레이션 홀을 갖는 시스템 메모리 어드레스의 지원을 위한 데이터처리 시스템 및 컴퓨터 프로그램 제품

Also Published As

Publication number Publication date
EP0892351A1 (en) 1999-01-20
JPH11110236A (ja) 1999-04-23
KR100470258B1 (ko) 2005-05-18
US5940868A (en) 1999-08-17

Similar Documents

Publication Publication Date Title
US9836409B2 (en) Seamless application access to hybrid main memory
KR920005853B1 (ko) 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법
KR100470258B1 (ko) 대용량메모리할당방법및장치
EP0238158B1 (en) Copy-on-write segment sharing in a virtual memory, virtual machine data processing system
CA2285096C (en) Logical mapping of data objects using data spaces
US6061773A (en) Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US4761737A (en) Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US5454103A (en) Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US5539899A (en) System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
US6112285A (en) Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US5873127A (en) Universal PTE backlinks for page table accesses
EP0887736A1 (en) Flexible translation storage buffers for virtual address translation caching
US5835961A (en) System for non-current page table structure access
US5956751A (en) Computer memory management system using physical segmentation space allocation
US5873120A (en) Variable split virtual address space allocation with multi-system compatibility
US5875487A (en) System and method for providing efficient shared memory in a virtual memory system
US5940869A (en) System and method for providing shared memory using shared virtual segment identification in a computer system
EP0403124A2 (en) Overlay swapping
US6600493B1 (en) Allocating memory based on memory device organization
CN113535392B (zh) 基于cma实现支持大内存连续分配的内存管理方法及系统
JPH04344549A (ja) 計算機システムにおけるページ割り当て方式
JPS62251851A (ja) 電子計算機システムのオ−バレイ制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee