KR101700315B1 - 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 - Google Patents

스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 Download PDF

Info

Publication number
KR101700315B1
KR101700315B1 KR1020140179140A KR20140179140A KR101700315B1 KR 101700315 B1 KR101700315 B1 KR 101700315B1 KR 1020140179140 A KR1020140179140 A KR 1020140179140A KR 20140179140 A KR20140179140 A KR 20140179140A KR 101700315 B1 KR101700315 B1 KR 101700315B1
Authority
KR
South Korea
Prior art keywords
memory
application
memory block
scratch pad
block
Prior art date
Application number
KR1020140179140A
Other languages
English (en)
Other versions
KR20160071685A (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 국민대학교산학협력단
Priority to KR1020140179140A priority Critical patent/KR101700315B1/ko
Publication of KR20160071685A publication Critical patent/KR20160071685A/ko
Application granted granted Critical
Publication of KR101700315B1 publication Critical patent/KR101700315B1/ko

Links

Images

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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Abstract

스크래치패드 메모리 관리 방법은 (a) 스크래치패드 메모리 상에 어플리케이션과 연관된 메모리 영역을 결정하는 단계, (b) 상기 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하는 단계 및 (c) 상기 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 단계를 포함한다.

Description

스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체{SCRATCHPAD MEMORY MANAGEMENT METHOD, SCRATCHPAD MEMORY MANAGEMENT APPARATUS PERFORMING THE SAME AND STORAGE MEDIUM STORING THE SAME}
본 발명은 스크래치패드 메모리 관리 기술에 관한 것으로서, 보다 상게하게는, 스크래치패드 메모리 상에서 메모리 블록들 간의 우선수위 및 어플리케이션들 간의 우선순위를 기초로 메모리 블록을 할당하는 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체에 관한 것이다.
일반적으로, 스크래치패드 메모리(Scratchpad Memory, SPM)는 프로세서(Processor)에 가까이 위치하여 빠른 속도의 데이터 접근을 프로세서에 제공하기 위한 메모리로서, 태그 메모리(Tag Memory) 및 복잡한 제어기를 필요로 하는 캐시(Cache)에 비하면 간단하고 전력 소모도 적으며, 그 내용을 미리 알 수 있고 소프트웨어로 제어도 가능하여, 정확한 성능 예측이 가능하고 매번 같은 성능으로 동작하도록 해 준다. 또한, 스크래치패드 메모리 관리 방법으로는, 크게 정적 방법(Static Method)과 동적 방법(Dynamic Method)으로 나뉜다.
한국등록특허 제10-1087143호는 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템에 관한 것으로서, 확장 비트들을 추가한 프로세서의 레지스터 파일로부터 스크래치패드 메모리 페이지를 읽어오고 확장 비트들에 포함된 스크래치패드 메모리 페이지의 가상 주소 및 스크래치패드 메모리 페이지 테이블을 이용하여 상기 스크래치 패드 메모리의 페이지를 어드레싱하고, 확장 비트들을 이용하여 스크래치패드 메모리에 접근한다.
한국공개특허 제10-2011-0007360호는 스크래치 패드 메모리 관리 장치 및 방법에 관한 것으로서, 스크래치 패드 메모리를 복수의 단위 블록으로 분할하고, 복수의 단위 블록의 인덱스와 대응되는 메모리 할당 테이블을 메인 메모리에 유지하여 스크래치 패드 메모리를 관리하는 방법을 개시한다.
한국등록특허 제10-1087143호 한국공개특허 제10-2011-0007360호
본 발명의 일 실시예는 어플리케이션에게 스크래치패드 메모리 상의 메모리 영역을 동적으로 할당할 수 있는 스크래치패드 메모리 관리 방법을 제공하고자 한다.
본 발명의 일 실시예는 어플리케이션으로부터 메모리 블록의 할당이 요청되는 경우에는 빈 메모리 블록이 있는지 여부, 메모리 블록들 간의 우선순위 및 어플리케이션들간의 우선순위를 기초로 메모리 블록을 할당할 수 있는 스크래치패드 메모리 관리 방법을 제공하고자 한다.
본 발명의 일 실시예는 스크래치패드 메모리의 메모리 블록 각각에 대하여 어플리케이션과의 연관여부 및 사용여부를 통합적으로 관리할 수 있는 스크래치패드 메모리 관리 방법을 제공하고자 한다.
실시예들 중에서, 스크래치패드 메모리 관리 방법은 (a) 스크래치패드 메모리 상에 어플리케이션과 연관된 메모리 영역을 결정하는 단계, (b) 상기 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하는 단계 및 (c) 상기 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 단계를 포함한다.
일 실시예에서, (d) 상기 메모리 영역 내에 빈 메모리 블록이 존재하지 않는 경우에는 상기 메모리 영역 내에서 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는지 여부를 체크하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (d) 단계는 (d1) 상기 메모리 영역 내에 낮은 우선순위를 가지는 메모리 블록이 있는 경우에는 해당 메모리 블록을 축출하고 상기 해당 메모리 블록의 주소를 제공하는 단계를 포함할 수 있다.
일 실시예에서, 상기 메모리 블록의 우선순위는 상기 메모리 블록에 대한 상기 어플리케이션의 사용률 및 최저사용빈도 중 적어도 하나를 기초로 결정될 수 있다.
일 실시예에서, 상기 (d) 단계는 (d2) 상기 메모리 영역 내에 낮은 우선순위를 가지는 메모리 블록이 없는 경우에는 상기 메모리 파티션 맵을 참조하여 상기 스크래치패드 메모리에서 공백 메모리 블록을 상기 어플리케이션에 할당하는 단계를 포함할 수 있다.
일 실시예에서, (d3) 상기 공백 메모리 블록의 할당이 실패하면 상기 어플리케이션의 우선순위보다 낮은 우선순위를 가지는 어플리케이션(이하, 도너(dornor) 어플리케이션)을 검출하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (d3) 단계는 상기 도너 어플리케이션과 연관된 메모리 영역 중에서 가장 낮은 우선순위를 가지는 메모리 블록을 상기 어플리케이션에 할당하는 단계를 포함할 수 있다.
일 실시예에서, 상기 어플리케이션의 우선순위는 상기 어플리케이션의 실행 환경을 제공하는 운영체제에 의하여 동적으로 결정되거나 또는 복수의 어플리케이션들 간의 프로세스 스케줄을 기초로 결정될 수 있다.
실시예들 중에서, 스크래치패드 메모리 관리 장치는 스크래치패드 메모리 상에 어플리케이션과 연관된 메모리 영역을 결정하고 상기 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하고 상기 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 스크래치패드 메모리 관리부 및 상기 스크래치패드 메모리의 메모리 블록 각각에 대하여 상기 어플리케이션과 연관되어 있는지 여부 및 사용 여부를 관리하는 메모리 파티션 맵 관리부를 포함한다.
실시예들 중에서, 스크래치패드 메모리 관리 방법에 관한 컴퓨터 프로그램을 기록한 기록매체는 (a) 스크래치패드 메모리 상에 어플리케이션과 연관된 메모리 영역을 결정하는 기능, (b) 상기 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하는 기능 및 (c) 상기 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 기능을 포함한다.
본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법은 어플리케이션에게 스크래치패드 메모리 상의 메모리 영역을 동적으로 할당할 수 있다.
본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법은 어플리케이션으로부터 메모리 블록의 할당이 요청되는 경우에는 빈 메모리 블록이 있는지 여부, 메모리 블록들 간의 우선순위 및 어플리케이션들간의 우선순위를 기초로 메모리 블록을 할당할 수 있다.
본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 방법은 스크래치패드 메모리의 메모리 블록 각각에 대하여 어플리케이션과의 연관여부 및 사용여부를 통합적으로 관리할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 장치를 나타내는 블록도이다.
도 2는 도 1의 스크래치패드 메모리 관리 장치에 대한 보다 구체적인 블록도이다.
도 3은 도 1의 스크래치패드 메모리 관리 장치에서 수행되는 스크래치패드 메모리 관리 방법에 대한 흐름도이다.
도 4는 도 3의 스크래치패드 메모리 관리 방법에 대한 보다 구체적인 흐름도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 스크래치패드 메모리 관리 장치를 나타내는 블록도이다.
도 1을 참조하면, 스크래치패드 메모리 관리 장치(100)는 스크래치패드 메모리 관리부(110), 메모리 파티션 맵 관리부(120), 메모리부(130), 입출력부(140) 및 제어부(150)를 포함한다.
스크래치패드 메모리 관리부(110)는 스크래치패드 메모리 상에 어플리케이션과 연관된 메모리 영역을 결정하고 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하면 할당 요청된 메모리 블록을 어플리케이션에게 할당한다. 일 실시예에서, 스크래치패드 메모리 관리부(110)는 메모리 블록을 어플리케이션에게 할당하는 경우에는 할당된 메모리 블록을 어플리케이션에게 제공하고 메모리 파티션 맵을 갱신할 수 있다.
메모리 파티션 맵 관리부(120)는 스크래치패드 메모리 상의 메모리 블록 각각에 대하여 어플리케이션과 연관되어 있는지 여부 및 사용여부를 관리한다. 보다 구체적으로, 메모리 파티션 맵 관리부(120)는 특정 어플리케이션과 연관되어 있는 메모리 영역 및 특정 어플리케이션과 연관되어 있는 메모리 영역에 포함되는 메모리 블록 각각에 대하여 각각의 메모리 블록이 어플리케이션에 의하여 사용되고 있는지 여부를 관리할 수 있다.
메모리부(130)는 스크래치패드 메모리 관리를 수행하기 위한 명령어들을 저장하고 있다. 일 실시예에서, 메모리부(130)는 롬(Read Only Memory, ROM) 및 램(Random Access Memory, RAM)을 포함하고, 여기에서, 메모리부(130)는 일시적 또는 영구적으로 컴퓨터를 판독할 수 있는 기록매체에 해당하고, 스크래치패드 메모리 관리를 위한 명령어를 포함하는 컴퓨터 코드를 저장한다.
입출력부(140)는 사용자 인터페이스 입력 장치 또는 사용자 인터페이스 출력장치를 포함한다. 일 실시예에서, 사용자는 사용자 인터페이스 입력 장치(예를 들어, 마우스, 트랙볼, 터치 패드, 그래픽 태블릿, 스캐너, 상품 바코드 스캔을 위한 바코드 스캐너, 터치 스크린, 키보드, 포인팅 장치 등)를 통해 스크래치패드 메모리 관리 장치와 통신할 수 있다. 일 실시예에서, 사용자 인터페이스 입력 장치는 스크래치패드 메모리 관리 장치에 정보를 입력할 수 있는 모든 메커니즘을 포함할 수 있다.
일 실시예에서, 사용자는 사용자 인터페이스 출력 장치를 통해 스크래치패드 메모리 관리 장치로부터 정보를 수신할 수 있다. 사용자 인터페이스 출력 장치는 디스플레이 화면과 같은 시각적 출력 장치를 포함할 수 있으나, 이에 한정되지 않는다. 사용자 인터페이스 출력 장치는 사용자에게 정보를 출력할 수 있는 모든 메커니즘을 포함하고, 하나의 영상 출력 장치 또는 스피커와 같은 출력 장치와 결합될 수 있다.
제어부(150)는 스크래치패드 메모리 관리부(110), 메모리 파티션 맵 관리부(120), 메모리부(130) 및 입출력부(140)의 동작 및 데이터의 흐름을 제어한다.
도 2는 도 1의 스크래치패드 메모리 관리 장치에 대한 보다 구체적인 블록도이다.
도 2를 참조하면, 스크래치패드 메모리 관리 장치(100)는 메모리 파티션 맵 관리부(120) 및 스크래치패드 메모리 관리부(110)를 포함하고, 어플리케이션(210), 스크래치패드 메모리(220) 및 프로세스 스케줄러(230)를 포함한다.
어플리케이션(210)은 응용프로그램으로서 사용자 또는 다른 응용프로그램에게 특정한 기능을 직접 수행하도록 하고 컴퓨터의 운영체계와 다른 지원 프로그램들의 서비스를 사용한다. 일 실시예에서, 스크래치패드 메모리 관리 장치(100)는 적어도 하나의 어플리케이션(210)을 포함할 수 있고, 각각의 어플리케이션(210)은 자신에게 할당된 스크래치패드 메모리(220) 상의 메모리 영역을 인지하여 적응적으로 스크래치패드 메모리 컨텐츠 관리를 수행할 수 있다. 여기에서, 어플리케이션(210)은 메모리 파티션 맵 관리부(120)를 통하여 자신에게 할당된 스크래치패드 메모리(220) 상의 메모리 영역을 인지할 수 있다.
스크래치패드 메모리(220)는 주기억 장치와는 별도로 실행중의 명령에 필요한 오퍼랜드, 중간 데이터의 유지, 인터럽트 처리 및 메모리 프로덕트에 사용되는 고속처리용 메모리이다. 일 실시예에서, 스크래치패드 메모리(220)는 응용 프로그램의 데이터를 일시적으로 기억하는 기억 영역에 해당하고 작업용 기억 영역이라고도 하며, 일괄 처리에서 에러 레코드, 전송 데이터의 일시 기억 영역으로 사용될 수 있다. 일 실시예에서, 스크래치패드 메모리(220)는 적어도 하나의 어플리케이션(210)과 연관된 메모리 영역으로 구분되고, 메모리 영역 각각은 적어도 하나의 메모리 블록을 포함할 수 있다.
프로세스 스케줄러(230)는 어플리케이션(210)이 복수 개 있는 경우에 어플리케이션들간의 실행 순서를 관리한다. 일 실시예에서, 스크래치패드 메모리 관리부(110)가 어플리케이션들간의 우선순위를 비교하는 경우에는, 프로세스 스케줄러(230)는 어플리케이션들간의 실행 순서에 관한 프로세스 스케줄을 스크래치패드 메모리 관리부(110)에 제공할 수 있다.
스크래치패드 메모리 관리부(110)는 스크래치패드 메모리(220) 상에 어플리케이션(210)과 연관된 메모리 영역을 결정한다. 일 실시예에서, 스크래치패드 메모리 관리부(110)는 실행 워크로드(work load)의 특성을 고려하여 동적으로 어플리케이션(210)에게 메모리 영역을 결정하여 할당할 수 있다.
스크래치패드 메모리 관리부(110)는 어플리케이션(210)에 의하여 메모리 블록의 할당 요청을 수신한다. 일 실시예에서, 어플리케이션(210)이 특정 작업을 수행하는 경우에 기 사용하고 있는 메모리 블록 이외의 추가적인 메모리 블록이 요구될 수 있고, 이러한 경우에 어플리케이션(210)은 스크래치패드 메모리 관리부(110)에 메모리 블록의 할당을 요청할 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 사용되고 있지 않은 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 어플리케이션(210)에게 빈 메모리 블록의 주소를 제공할 수 있다. 예를 들어, 어플리케이션1에 대한 메모리 영역 내에서 빈 메모리 블록이 메모리 블록의 할당 요청에 따라 사용되게 되고 메모리 파티션 맵에서 메모리 블록 각각에 대한 정보가 {메모리 블록 주소, 어플리케이션, 메모리 블록 사용 여부} 형태로 저장되어 있는 경우에는, {메모리 블록1, ap1, 1(사용 가능)}에서 {메모리 블록1, ap1, 0(사용 불가능)}으로 갱신될 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 빈 메모리 블록이 존재하지 않는 경우에는 메모리 영역 내에서 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는지 여부를 체크할 수 있다.
일 실시예에서, 할당 요청된 메모리 블록의 우선순위는 사용자에 의하여 기 설정되거나 또는 우선순위 값의 범위에서 항상 중간값을 가질 수 있다. 일 실시예에서, 메모리 블록의 우선순위는 메모리 블록에 대한 어플리케이션의(210) 사용률 및 최저사용빈도(Least Recently Used) 중 적어도 하나를 기초로 동적으로 결정될 수 있고, 여기에서, 메모리 블록에 대한 어플리케이션(210)의 사용률은 해당 메모리 블록이 어플리케이션(210)에 의하여 사용되는 비율에 해당하고, 최저사용빈도는 해당 메모리 블록이 최근에 사용된 빈도에 해당한다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는 경우에는 해당 메모리 블록을 축출하고 해당 메모리 블록의 주소를 어플리케이션(210)에게 제공할 수 있다. 또한, 메모리 파티션 맵 관리부(120)는 해당 메모리 블록의 축출 및 어플리케이션(210)에의 메모리 블록의 주소 제공을 기초로 해당 메모리 블록에 대한 정보를 갱신할 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 없는 경우에는 메모리 파티션 맵을 참조하여 스크래치패드 메모리(220)에서 공백 메모리 블록을 어플리케이션(210)에게 할당할 수 있다. 여기에서, 공백 메모리 블록은 어느 어플리케이션과도 연관되지 않은 메모리 블록에 해당한다.
일 실시예에서, 스크래치패드 메모리 관리부(110)가 공백 메모리 블록을 어플리케이션(210)에게 할당한 경우에는, 메모리 파티션 맵 관리부(120)는 해당 공백 메모리 블록에 대한 정보를 갱신할 수 있다. 예를 들어, 공백 메모리 블록a이 어플리케이션2에 할당되어 어플리케이션2에 의하여 사용되는 경우에는 공백 메모리 블록a에 대한 정보는 {-,-,1}에서 {메모리 블록a, ap2, 0}으로 갱신될 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 스크래치패드 메모리(220)에서 공백 메모리 블록이 없는 경우에는 어플리케이션(210)의 우선순위보다 낮은 어플리케이션(이하, 도너(donor) 어플리케이션)이 있는지 여부를 검출할 수 있다. 여기에서, 어플리케이션의 우선순위는 어플리케이션(210)의 실행 환경을 제공하는 운영체제에 의하여 동적으로 결정되거나 또는 프로세스 스케줄러(230)로부터 제공받은 복수의 어플리케이션들 간의 프로세스 스케줄을 기초로 결정될 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 도너 어플리케이션이 있는 경우에는 도너 어플리케이션과 연관된 메모리 영역 중에서 가장 낮은 우선순위를 가지는 메모리 블록을 어플리케이션에게 할당할 수 있다. 보다 구체적으로, 스크패치패드 메모리 관리부(110)는 가장 낮은 우선순위를 가지는 메모리 블록을 축출하고 해당 메모리 블록의 주소를 어플리케이션(210)에게 제공하며, 해당 메모리 블록에 대한 정보는 메모리 파티션 맵 관리부(120)에 의하여 갱신될 수 있다. 예를 들어, 메모리 블록x가 어플리케이션1과 연관된 메모리 영역에 해당하였다가 어플리케이션2에게 할당된 경우에는, 메모리 블록x에 대한 정보는 {메모리 블록x, ap1, 0}에서 {메모리 블록x, ap2, 0}으로 갱신될 수 있다.
일 실시예에서, 스크래치패드 메모리 관리부(110)는 도너 어플리케이션이 없는 경우에는 어플리케이션(210)에 대한 메모리 블록의 할당을 실패하게 되고 실패 내용을 어플리케이션(210)에게 제공할 수 있다.
도 3은 도 1의 스크래치패드 메모리 관리 장치에서 수행되는 스크래치패드 메모리 관리 방법에 대한 흐름도이다.
스크래치패드 메모리 관리부(110)는 스크래치패드 메모리(220)에 어플리케이션(210)과 연관된 메모리 영역을 결정한다(단계 S301). 일 실시예에서, 메모리 파티션 맵 관리부(120)는 스크래치패드 메모리 관리부(110)에 의하여 결정된 어플리케이션(210)과 연관된 메모리 영역에 대한 정보를 갱신할 수 있다.
스크래치패드 메모리 관리부(110)는 어플리케이션(210)에 의한 메모리 블록 할당 요청을 수신한다(단계 S302).
스크래치패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 어플리케이션(210)에게 빈 메모리 블록의 주소를 제공한다(단계 S303). 일 실시예에서, 메모리 파티션 맵 관리부는 스크래치패드 메모리 관리부(110)에 의하여 어플리케이션(210)에게 할당된 메모리 블록에 대한 정보를 갱신할 수 있다.
도 4는 도 3의 스크래치패드 메모리 관리 방법에 대한 보다 구체적인 흐름도이다.
스크래치 패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역을 결정하고(단계 S401), 어플리케이션(210)으로부터 메모리 블록 할당 요청을 수신한다(단계 S402).
스크래치 패드 메모리 관리부(110)는 어플리케이션(210)과 연관된 메모리 영역 내에 빈 메모리 블록이 존재하는지 여부를 확인한다(단계 S403). 일 실시예에서, 빈 메모리 블록이 존재하는 경우에는 해당 빈 메모리 블록에 대한 메모리 파티션 맵을 갱신하고 해당 빈 메모리 블록의 주소를 어플리케이션(210)에게 제공한다(단계 S404).
일 실시예에서, 빈 메모리 블록이 존재하지 않는 경우에는 어플리케이션(210)과 연관된 메모리 영역 내에서 어플리케이션(210)으로부터 할당 요청된 메모리 블록보다 우선순위가 낮은 메모리 블록이 존재하는지 여부를 확인한다(단계 S405). 일 실시예에서, 우선순위가 낮은 메모리 블록이 존재하는 경우에는 해당 메모리 블록을 축출하고 해당 메모리 블록에 대한 메모리 파티션 맵을 갱신하고 해당 메모리 블록에 대한 주소를 어플리케이션(210)에게 제공한다(단계 S406).
일 실시예에서, 우선순위가 낮은 메모리 블록이 존재하지 않는 경우에는 스크래치패드 메모리(220) 상에 어느 어플리케이션과도 연관되지 않은 공백 메모리 블록이 존재하는지 여부를 확인한다(단계 S407). 일 실시예에서, 공백 메모리 블록이 존재하는 경우에는 해당 공백 메모리 블록에 대한 메모리 파티션 맵을 갱신하고 해당 공백 메모리 블록의 주소를 어플리케이션(210)에게 제공한다(단계 S408).
일 실시예에서, 공백 메모리 블록이 존재하지 않는 경우에는 어플리케이션(210) 보다 우선순위가 낮은 도너 어플리케이션이 존재하는지 여부를 확인한다(단계 S409). 일 실시예에서, 도너 어플리케이션이 존재하는 경우에는 도너 어플리케이션과 연관된 메모리 영역 중에서 가장 낮은 우선순위를 가지는 메모리 블록을 축출하고 해당 메모리 블록의 주소를 어플리케이션(210)에게 제공하며 해당 메모리 블록에 대한 메모리 파티션 맵을 갱신한다(단계 S410).
일 실시예에서, 도너 어플리케이션이 존재하지 않는 경우에는 어플리케이션(210)에 대한 메모리 블록의 할당이 실패한 것으로서, 해당 내용을 어플리케이션(210)에게 제공할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 스크래치패드 메모리 관리 장치
110: 스크래치패드 메모리 관리부 120: 메모리 파티션 맵 관리부
130: 메모리부 140: 입출력부
150: 제어부
210: 어플리케이션 220: 스크래치패드 메모리
230: 프로세스 스케줄러

Claims (10)

  1. (a) 적어도 하나의 어플리케이션과 연관된 메모리 영역으로 구분되고 해당 메모리 영역 각각은 적어도 하나의 메모리 블록을 포함하는 스크래치패드 메모리 상에, 특정 어플리케이션과 연관된 특정 메모리 영역을 결정하여 상기 특정 어플리케이션이 상기 특정 메모리 영역을 인지하여 스크래치패드 메모리 컨텐츠 관리를 수행하도록 하는 단계;
    (b) 상기 특정 어플리케이션으로부터 상기 특정 메모리 영역 내에 있는 메모리 블록의 할당 요청을 수신하는 단계;
    (c) 상기 특정 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 특정 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 단계; 및
    (d) 상기 메모리 영역 내에 빈 메모리 블록이 존재하지 않는 경우에는 상기 메모리 영역 내에서 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는지 여부를 체크하는 단계를 포함하고,
    상기 (d) 단계는 (d1) 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는 경우에는 해당 메모리 블록을 축출하고 상기 해당 메모리 블록의 주소를 제공하는 단계를 포함하고, (d2) 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 없는 경우에는 상기 메모리 파티션 맵을 참조하여 상기 스크래치패드 메모리에서 공백 메모리 블록을 상기 어플리케이션에 할당하는 단계를 포함하는 스크래치패드 메모리 관리 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 메모리 블록의 우선순위는
    상기 메모리 블록에 대한 상기 어플리케이션의 사용률 및 최저사용빈도 중 적어도 하나를 기초로 결정되는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
  5. 삭제
  6. 제1항에 있어서,
    (d3) 상기 공백 메모리 블록의 할당이 실패하면 상기 어플리케이션의 우선순위보다 낮은 우선순위를 가지는 어플리케이션(이하, 도너(donor) 어플리케이션)을 검출하는 단계를 더 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
  7. 제6항에 있어서, 상기 (d3) 단계는
    상기 도너 어플리케이션과 연관된 메모리 영역 중에서 가장 낮은 우선순위를 가지는 메모리 블록을 상기 어플리케이션에 할당하는 단계를 포함하는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
  8. 제6항에 있어서, 상기 어플리케이션의 우선순위는
    상기 어플리케이션의 실행 환경을 제공하는 운영체제에 의하여 동적으로 결정되거나 또는 복수의 어플리케이션들 간의 프로세스 스케줄을 기초로 결정되는 것을 특징으로 하는 스크래치패드 메모리 관리 방법.
  9. 적어도 하나의 어플리케이션과 연관된 메모리 영역으로 구분되고 해당 메모리 영역 각각은 적어도 하나의 메모리 블록을 포함하는 스크래치패드 메모리 상에, 특정 어플리케이션과 연관된 특정 메모리 영역을 결정하여 상기 특정 어플리케이션이 상기 특정 메모리 영역을 인지하여 스크래치패드 메모리 컨텐츠 관리를 수행하고, 상기 특정 어플리케이션으로부터 특정 메모리 영역 내에 있는 메모리 블록의 할당 요청을 수신하고 상기 특정 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하고, 상기 메모리 영역 내에 빈 메모리 블록이 존재하지 않는 경우에는 상기 메모리 영역 내에서 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는지 여부를 체크하는 스크래치패드 메모리 관리부; 및
    상기 스크래치패드 메모리의 메모리 블록 각각에 대하여 상기 어플리케이션과 연관되어 있는지 여부 및 사용 여부를 관리하는 메모리 파티션 맵 관리부를 포함하고,
    상기 스크래치패드 메모리 관리부는 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는 경우에는 해당 메모리 블록을 축출하고 상기 해당 메모리 블록의 주소를 제공하고, 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 없는 경우에는 상기 메모리 파티션 맵을 참조하여 상기 스크래치패드 메모리에서 공백 메모리 블록을 상기 어플리케이션에 할당하는 것을 특징으로 하는 스크래치패드 메모리 관리 장치.
  10. (a) 적어도 하나의 어플리케이션과 연관된 메모리 영역으로 구분되고 해당 메모리 영역 각각은 적어도 하나의 메모리 블록을 포함하는 스크래치패드 메모리 상에, 특정 어플리케이션과 연관된 특정 메모리 영역을 결정하여 상기 특정 어플리케이션이 상기 특정 메모리 영역을 인지하여 스크래치패드 메모리 컨텐츠 관리를 수행하도록 하는 기능;
    (b) 상기 어플리케이션에 의해 메모리 블록의 할당 요청을 수신하는 기능;
    (c) 상기 메모리 영역 내에 빈 메모리 블록이 존재하는 경우에는 메모리 파티션 맵을 갱신하여 상기 어플리케이션에게 상기 빈 메모리 블록의 주소를 제공하는 기능; 및
    (d) 상기 메모리 영역 내에 빈 메모리 블록이 존재하지 않는 경우에는 상기 메모리 영역 내에서 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는지 여부를 체크하는 기능을 포함하고,
    상기 (d) 기능은 (d1) 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 있는 경우에는 해당 메모리 블록을 축출하고 상기 해당 메모리 블록의 주소를 제공하는 기능을 포함하고, (d2) 상기 특정 메모리 영역 내에 상기 할당 요청된 메모리 블록의 우선순위보다 낮은 우선순위를 가지는 메모리 블록이 없는 경우에는 상기 메모리 파티션 맵을 참조하여 상기 스크래치패드 메모리에서 공백 메모리 블록을 상기 어플리케이션에 할당하는 기능을 포함하는 스크래치패드 메모리 관리 방법에 관한 컴퓨터 프로그램을 기록한 기록매체.
KR1020140179140A 2014-12-12 2014-12-12 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체 KR101700315B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140179140A KR101700315B1 (ko) 2014-12-12 2014-12-12 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140179140A KR101700315B1 (ko) 2014-12-12 2014-12-12 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체

Publications (2)

Publication Number Publication Date
KR20160071685A KR20160071685A (ko) 2016-06-22
KR101700315B1 true KR101700315B1 (ko) 2017-01-26

Family

ID=56364925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140179140A KR101700315B1 (ko) 2014-12-12 2014-12-12 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체

Country Status (1)

Country Link
KR (1) KR101700315B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100007B2 (en) 2019-05-28 2021-08-24 Micron Technology, Inc. Memory management unit (MMU) for accessing borrowed memory
US11438414B2 (en) 2019-05-28 2022-09-06 Micron Technology, Inc. Inter operating system memory services over communication network connections
US11169930B2 (en) 2019-05-28 2021-11-09 Micron Technology, Inc. Fine grain data migration to or from borrowed memory
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11256624B2 (en) 2019-05-28 2022-02-22 Micron Technology, Inc. Intelligent content migration with borrowed memory
US11334387B2 (en) * 2019-05-28 2022-05-17 Micron Technology, Inc. Throttle memory as a service based on connectivity bandwidth

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100577380B1 (ko) 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
JP2006134136A (ja) * 2004-11-08 2006-05-25 Mitsubishi Electric Corp アプリケーション処理装置、ガーベージコレクション実行方法、記憶領域管理方法及びガーベージコレクション実行プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101087143B1 (ko) 2008-12-23 2011-11-25 한국전자통신연구원 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템
KR101615659B1 (ko) 2009-07-16 2016-05-12 삼성전자주식회사 스크래치 패드 메모리 관리 장치 및 방법
KR101422083B1 (ko) * 2012-12-12 2014-07-23 국민대학교산학협력단 스크래치패드 메모리 관리 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100577380B1 (ko) 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
JP2006134136A (ja) * 2004-11-08 2006-05-25 Mitsubishi Electric Corp アプリケーション処理装置、ガーベージコレクション実行方法、記憶領域管理方法及びガーベージコレクション実行プログラム

Also Published As

Publication number Publication date
KR20160071685A (ko) 2016-06-22

Similar Documents

Publication Publication Date Title
KR101700315B1 (ko) 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체
US8131901B2 (en) Interrupt control for virtual processing apparatus
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
US7590816B2 (en) Computer system, management computer and storage system, and storage area allocation amount controlling method
US9880944B2 (en) Page replacement algorithms for use with solid-state drives
US9740481B2 (en) Electronic device and method for memory allocation in electronic device
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
US20170075614A1 (en) Memory system and host apparatus
JP2012033001A (ja) 情報処理装置および情報処理方法
US20140297983A1 (en) Method of arranging data, information processing apparatus, and recording medium
US20090307459A1 (en) Selectively mark free frames as unused for cooperative memory over-commitment
EP3007067A1 (en) Method of memory access, buffer scheduler and memory module
EP2827246A1 (en) Apparatus for configuring operating system and method therefor
CN105453066A (zh) 处理器和存储器控制方法
US9405470B2 (en) Data processing system and data processing method
CN112654965A (zh) 动态模块的外部分页和交换
US20180136977A1 (en) Multi-queue device assignment for application groups
JP2006277530A (ja) 割当システム、割当装置、割当方法及びそのプログラム
US7650469B2 (en) Determining whether a non-running processor has access to an address space
US20140143456A1 (en) Determining a mapping mode for a dma data transfer
WO2023159392A1 (en) Cache based memory access tracking
KR20150139017A (ko) 메모리 제어 장치 및 방법
CN112513822A (zh) 信息处理方法及装置、设备、系统
CN101950274A (zh) 一种管态维护且目态共享的数据访问装置及方法
WO2023159400A1 (en) Usage driven memory mapping

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 4