KR101906034B1 - 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 - Google Patents
쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 Download PDFInfo
- Publication number
- KR101906034B1 KR101906034B1 KR1020170016313A KR20170016313A KR101906034B1 KR 101906034 B1 KR101906034 B1 KR 101906034B1 KR 1020170016313 A KR1020170016313 A KR 1020170016313A KR 20170016313 A KR20170016313 A KR 20170016313A KR 101906034 B1 KR101906034 B1 KR 101906034B1
- Authority
- KR
- South Korea
- Prior art keywords
- area
- memory
- frames
- mapping table
- write
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
쓰기 영역 할당 회수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법이 개시된다. 상기 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부 및 상기 맵핑 테이블에 기초하여 복수의 프레임들로 구분된 메모리 영역을 할당하는 프로세서를 포함한다. 여기서, 상기 메모리 영역은 쓰기 영역 및 읽기 영역을 가지며, 상기 프로세서는 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)에 따라 상기 메모리 영역을 재할당한다.
Description
본 발명은 쓰기 영역 할당 회수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법에 관한 것이다.
반도체 소자는 메모리에 데이터를 기록한다. 즉, 메모리로 쓰기 동작이 수행된다.
그러나, 쓰기 동작이 특정 메모리 영역에 많이 수행되면, 메모리의 물리적 한계로 인하여 메모리를 더 이상 사용할 수 없게 된다. 또한, 특정 메모리의 경우에는 메모리의 쓰기 동작의 회수가 제한된다.
따라서, 쓰기 동작이 특정 메모리 영역에 집중되는 경우, 상기 메모리의 수명이 줄어드는 문제점이 발생할 수 있다.
본 발명은 쓰기 영역 할당 회수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부; 및 상기 맵핑 테이블에 기초하여 복수의 프레임들로 구분된 메모리 영역을 할당하는 프로세서를 포함한다. 여기서, 상기 메모리 영역은 쓰기 영역 및 읽기 영역을 가지며, 상기 프로세서는 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)에 따라 상기 메모리 영역을 재할당한다.
본 발명의 다른 실시예에 따른 메모리의 주소 공간 난수화 장치는 프로세서; 및 카운트부를 포함한다. 여기서, 메모리는 프레임들을 가지고, 상기 프레임들은 읽기 영역 및 쓰기 영역으로 구분되며, 상기 카운트부는 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)를 카운트하여 카운트값을 생성하고, 상기 프로세서는 상기 생성된 카운트값에 따라 상기 메모리 영역에 상기 읽기 영역 및 상기 쓰기 영역을 재할당한다.
본 발명의 일 실시예에 따른 반도체 소자는 프레임들로 분할된 메모리; 및 프로세서를 포함한다. 여기서, 상기 프레임들은 쓰기 영역 및 읽기 영역으로 할당되며, 상기 프로세서는 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)에 따라 상기 메모리 영역을 재할당한다.
본 발명의 일 실시예에 따른 메모리의 주소 공간 난수화 방법은 프레임들로 분할된 메모리에 메모리 영역을 쓰기 영역 및 읽기 영역으로 할당하는 단계; 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)를 카운트하여 카운트값을 생성하는 단계; 및 상기 생성된 카운트값에 따라 상기 메모리 영역을 재할당하는 단계를 포함한다.
본 발명의 메모리의 주소 공간 난수화 장치 및 방법은 메모리의 프레임별 쓰기 동작의 할당 회수가 평준화되도록 쓰기 영역 할당 회수를 고려하여 메모리 영역을 재할당한다. 결과적으로, 상기 메모리의 수명이 향상될 수 있다.
도 1은 본 발명의 일 실시예에 따른 페이징(paging) 방법을 사용하는 컴퓨터 시스템에서 메인 메모리의 주소 공간 난수화 과정을 개념적으로 도시한 도면이다.
도 2는 본 발명의 제 1 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 맵핑 테이블을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 프레임으로 분할된 메인 메모리의 구조 및 프레임 테이블을 도시한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 맵핑 테이블을 생성하는 과정 및 구조를 도시한 도면들이다.
도 2는 본 발명의 제 1 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 맵핑 테이블을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 프레임으로 분할된 메인 메모리의 구조 및 프레임 테이블을 도시한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 맵핑 테이블을 생성하는 과정 및 구조를 도시한 도면들이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 메모리의 주소 공간 난수화 장치 및 방법에 관한 것으로서, PRAM(Phase change Random Access Memory), STT-MRAM(Spin transfer torque magnetic random access memory) 등과 같은 NVRAM(Non-volatile RAM)의 메인 메모리에서 주소 공간을 난수화(randomization)하는 기술을 제안한다.
PRAM, STT-MRAM 등은 DRAM과 달리 읽기 속도와 쓰기 속도가 다르다. 결과적으로, 쓰기 연산의 시간이 읽기 연산보다 시간이 더 오래 걸리고 전력 소모도 크다. 또한, PRAM 등의 소자는 쓰기 동작의 회수가 108번으로 제한된다.
이러한 읽기 속도와 쓰기 속도의 차이 및 쓰기 동작의 회수 제한은 메인 메모리의 수명을 감소시킬 수 있다.
따라서, 본 발명은 쓰기 동작을 고려하여 메인 메모리의 주소 공간을 적절하게 재할당하여 이러한 문제를 해결할 수 있다. 예를 들어, 본 발명은 쓰기 영역 할당 회수를 카운팅하고 카운트값에 따라 메인 메모리의 주소 공간을 난수화할 수 있다. 여기서, 상기 쓰기 영역 할당 회수는 프레임이 쓰기 영역으로 할당된 회수를 의미한다.
바람직하게는, 본 발명은 메인 메모리의 프레임들의 쓰기 영역 할당 회수를 평준화시켜 메인 메모리의 수명을 향상시키는 기술을 제안한다. 프레임들의 쓰기 영역 할당 회수가 평준화되는 경우, 프레임별 쓰기 동작 및 읽기 동작이 동일하거나 유사하게 일어난다면 실제적으로 프레임들의 쓰기 동작이 수행된 회수(이하, "쓰기 회수"라 함)가 평준화되게 될 것이다.
물론, 프레임들의 쓰기 동작 및 읽기 동작이 많이 다를 지라도, 쓰기 영역 할당 회수를 고려하지 않고 메모리를 난수화시키는 방법에 비하면 프레임별 쓰기 회수가 상당히 평준화되게 된다. 따라서, 프레임들의 쓰기 영역 할당 회수를 평준화시키면, 상기 메인 메모리의 수명이 향상될 수 있다.
한편, 프레임별로 쓰기 회수를 카운트하여 상기 메인 메모리의 주소 공간을 난수화시킬 수도 있다. 그러나, 쓰기 회수를 카운트하면, 상당히 많은 쓰기 회수가 프레임들에 수행되므로 전체 시스템, 특히 중앙 처리 장치(Central Processing Unit, CPU)에 상당한 부하가 걸릴 수 있다.
반면에, 쓰기 회수를 카운트하지 않고 프레임별 쓰기 영역 할당 회수를 카운트하면 카운트 회수가 상당히 감소되게 되며, 그 결과 상기 중앙 처리 장치의 부하가 최소화될 수 있다. 또한, 쓰기 영역 할당 회수를 카운트하여 상기 메인 메모리의 주소 공간을 난수화시키더라도, 프레임별 쓰기 회수가 평준화될 수 있다. 물론, 프레임들의 쓰기 회수를 고려하여 상기 메인 메모리의 주소 공간을 난수화시킬 때보다 덜 평준화될 수는 있지만, 이러한 방법은 상기 메인 메모리의 수명을 향상시키는 데는 충분하다.
즉, 쓰기 영역 할당 회수를 고려하여 상기 메인 메모리의 주소 공간을 난수화시키면 상기 중앙 처리 장치의 부하를 최소화시키면서 상기 메인 메모리의 수명을 향상시킬 수 있다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술하겠다.
도 1은 본 발명의 일 실시예에 따른 페이징(paging) 방법을 사용하는 컴퓨터 시스템에서 메인 메모리의 주소 공간 난수화 과정을 개념적으로 도시한 도면이다. 여기서, 상기 페이징은 메인 메모리로 읽기 동작 또는 쓰기 동작을 수행하는 모든 동작을 포함할 수 있다.
도 1을 참조하면, 본 실시예의 메모리의 주소 공간 난수화 장치의 프로세서(Processor)는 메인 메모리의 물리적 주소에 메모리 영역을 할당하기 위하여 맵핑 테이블(Mapping Table)을 이용할 수 있다.
여기서, 상기 메모리 영역은 stack, heap, library, data 및 code를 포함할 수 있다. library 및 code는 주로 읽기 동작을 위해 사용되는 읽기 영역에 해당하고, stack, heap 및 data는 주로 쓰기 동작을 위해 사용되는 쓰기 영역에 해당한다.
상기 프로세서는 우선 가상 주소를 이용하여 가상으로 메모리 영역을 설정할 수 있다.
이어서, 상기 프로세서는 맵핑 테이블을 이용하여 메인 메모리의 메모리 영역을 할당한다. 여기서, 상기 맵핑 테이블은 가상 주소에 해당하는 가상 메모리 영역과 상기 메인 메모리의 물리 주소를 포함하고 있다. 이러한 맵핑 테이블은 맵핑 테이블부(미도시)에 의해 관리된다.
일 실시예에 따르면, 상기 프로세서 또는 상기 맵핑 테이블부는 상기 메인 메모리가 복수의 프레임들로 분할된 환경에서 상기 메인 메모리의 프레임들로 수행된 쓰기 영역 할당 회수를 고려하여 상기 맵핑 테이블을 생성할 수 있다.
구체적으로는, 상기 프로세서 또는 상기 맵핑 테이블부는 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하도록 맵핑 테이블을 생성할 수 있다.
이어서, 상기 프로세서는 상기 맵핑 테이블에 기초하여 메인 메모리에 읽기 영역 및 쓰기 영역을 재할당할 수 있다. 결과적으로, 상기 메인 메모리의 프레임들의 쓰기 회수가 평준화될 수 있다.
여기서, 상기 평준화는 프레임들의 쓰기 회수가 동일한 경우뿐만 아니라 쓰기 회수가 유사해지는 경우를 포함한다.
물론, 메인 메모리의 영역이 쓰기 영역과 읽기 영역 외에도 사용되지 않는 영역이 존재할 수도 있다. 그러나, 설명의 편의를 위하여 이러한 영역은 고려하지 않겠다.
정리하면, 본 발명의 메모리의 주소 공간 난수화 장치 및 방법은 프레임별 쓰기 영역 할당 회수를 고려하여 맵핑 테이블을 생성하고 상기 생성된 맵핑 테이블에 기초하여 메인 메모리의 영역을 재할당할 수 있다.
즉, 상기 메모리의 주소 공간 난수화 장치 및 방법은 프레임별 쓰기 영역 할당 회수를 고려하여 상기 메인 메모리의 주소 공간을 난수화할 수 있다. 결과적으로, 상기 메인 메모리의 프레임들의 쓰기 회수가 평준화될 수 있으며, 따라서 상기 메인 메모리의 수명이 향상될 수 있다.
위에서는, 하나의 프레임별로 쓰기 영역 할당 회수를 고려하였지만, 복수의 프레임들별로 쓰기 영역 할당 회수가 고려될 수도 있다.
한편, 가상 주소에 해당하는 가상 메모리 영역에 할당되는 쓰기 영역 및 읽기 영역 또한 난수화될 수 있다. 물론, 이 경우에도, 쓰기 영역 할당 회수를 고려한 메인 메모리의 주소 공간 난수화가 동일하게 적용될 수 있다.
이하, 본 발명의 메모리 주소 공간 난수화 방법의 구체적인 실시예들을 첨부된 도면들을 참조하여 상술하겠다.
도 2는 본 발명의 제 1 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이고, 도 3은 본 발명의 일 실시예에 따른 맵핑 테이블을 도시한 도면이다. 도 4는 본 발명의 일 실시예에 따른 프레임으로 분할된 메인 메모리의 구조 및 프레임 테이블을 도시한 도면이고, 도 5 및 도 6은 본 발명의 일 실시예에 따른 맵핑 테이블을 생성하는 과정 및 구조를 도시한 도면들이다.
우선, 메인 메모리는 도 4에 도시된 바와 같이 프레임들로 분할되어 있다. 이하, 설명의 편의를 위하여 메인 메모리가 1000개의 프레임들로 분할되어 있다고 가정한다.
프로세서는 메인 메모리의 영역을 예를 들어 읽기 영역 및 쓰기 영역으로 할당한다(S200). 예를 들어, 상기 프로세서는 도 3에 도시된 바와 같은 맵핑 테이블을 생성하고 상기 생성된 맵핑 테이블에 기초하여 상기 메인 메모리의 영역을 할당할 수 있다.
도 3을 참조하면, 주소(0~199)에 해당하는 프레임들이 stack으로 할당되고, 주소(200~399)에 해당하는 프레임들이 heap으로 할당되며, 주소(400~599)에 해당하는 프레임들이 library로 할당되고, 주소(600~799)에 해당하는 프레임들이 data로 할당되며, 주소(800~999)에 해당하는 프레임들이 code로 할당된다.
이어서, 상기 프로세서의 제어에 따라 읽기 드라이버(미도시)가 해당 메모리를 참조하여 읽기 동작을 수행하고 쓰기 드라이버(미도시)가 해당 메모리로 쓰기 동작을 수행할 수 있다(S202). 상기 읽기 동작 및 상기 쓰기 동작은 단계 S204 이전에 무수히 많이 수행될 수 있다.
계속하여, 상기 프로세서는 프레임별 쓰기 영역 할당 회수를 카운팅한다(S204). 예를 들어, 상기 프로세서는 쓰기 영역 할당 동작이 수행될 때마다 카운트값을 1씩 증가시킬 수 있다. 쓰기 영역 할당 회수는 쓰기 동작의 회수보다 상당히 작으므로, 쓰기 영역 할당 회수를 카운팅하는 동작이 쓰기 동작의 회수를 카운팅하는 동작에 비하여 시스템, 특히 CPU의 부하를 상당히 감소시킬 수 있다.
일 실시예에 따르면, 상기 프로세서 또는 상기 프로세서에 의해 제어되는 프레임 테이블부가 프레임별 카운트값을 기록한 프레임 테이블을 생성할 수 있으며, 프레임 테이블은 도 4에 도시되어 있다. 도 4에 도시된 바와 같이, 프레임들 중 적어도 일부의 쓰기 영역 할당 회수의 카운트값이 다른 프레임들의 카운트값과 다를 수 있다.
한편, 카운트값이 테이블 형태로 생성되지 않을 수 있으며, 이 경우 카운트부는 프레임별 카운트값을 저장하고 있다.
이어서, 상기 프로세서는 기준 시점(예를 들어, 상기 프로세서의 동작 시작 명령 시점 또는 최초의 읽기 동작 또는 쓰기 동작이 수행된 시점)으로부터 기설정 시간이 경과되었는 지를 판단한다(S206).
기설정 시간이 경과되지 않은 경우에는 단계 S202가 계속적으로 수행된다.
반면에, 기설정 시간이 경과한 경우, 상기 프로세서는 맵핑 테이블을 가변시킬 수 있다(S208). 즉, 상기 프로세서는 프레임별로 쓰기 영역 할당 회수가 다르기 때문에, 쓰기 회수의 평준화를 위하여 맵핑 테이블을 갱신할 수 있다.
맵핑 테이블 갱신시, 상기 프로세서 또는 맵핑 테이블부는 쓰기 영역 할당 회수, 특히 쓰기 회수가 평준화되도록 도 5에 도시된 바와 같이 메모리 영역을 새롭게 할당할 수 있다. 평준화 방법은 다양한 방법이 존재할 수 있다. 다만, 개념적으로는, 상기 프로세서 또는 맵핑 테이블부는 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당할 수 있다.
메모리 영역을 갱신하는 방법으로는, 맵핑 테이블에서 메모리 영역의 변수(stack, heap, library, data 및 code)를 유지하면서 할당될 메인 메모리의 물리 주소를 변경시키는 제 1 방법과 할당된 메인 메모리의 물리 주소를 유지하면서 메모리 영역의 변수를 가변시키는 제 2 방법을 고려할 수 있다. 다만, 제 2 방법에 비하여 제 1 방법이 쓰기 영역 할당 회수를 용이하게 평준화시킬 수 있으므로, 실제 환경에서는 제 1 방법이 주로 사용될 것이다.
제 1 방법에 따르면, 도 5에 도시된 바와 같이 주소(300~399, 500~599)에 해당하는 프레임들이 stack으로 할당되고, 주소(100~199, 900~999)에 해당하는 프레임들이 heap으로 할당되며, 주소(200~299, 600~699)에 해당하는 프레임들이 library으로 할당되고, 주소(0~99, 800~899)에 해당하는 프레임들이 data로 할당되며, 주소(400~499, 700~799)에 해당하는 프레임들이 code로 할당되도록 맵핑 테이블이 갱신될 수 있다.
제 2 방법에 따르면, 도 6에 도시된 바와 같이 주소(0~199)에 해당하는 프레임들이 code로 할당되고, 주소(200~399)에 해당하는 프레임들이 data로 할당되며, 주소(400~599)에 해당하는 프레임들이 stack으로 할당되고, 주소(600~799)에 해당하는 프레임들이 library로 할당되며, 주소(800~999)에 해당하는 프레임들이 heap으로 할당되도록 맵핑 테이블이 갱신될 수 있다.
계속하여, 상기 프로세서는 갱신된 맵핑 테이블에 기초하여 메모리 영역을 재할당한다(S200).
위의 단계 S200 내지 S208은 지속적으로 반복 수행되며, 반복 수행의 회수가 증가할 때마다 프레임들의 쓰기 영역 할당 회수가 더 평준화되며, 그 결과 쓰기 회수도 더 평준화될 수 있다.
종래 기술에서는 특정 프레임의 쓰기 회수가 훨씬 많아서 메인 메모리의 수명이 줄어들 수 있는 반면에, 본 발명에서는 프레임들의 쓰기 영역 할당 회수, 이로 인한 쓰기 회수가 평준화되므로 메인 메모리의 수명이 향상될 수 있다.
이하, 본 발명의 메모리의 주소 공간 난수화 장치를 요약하여 살펴보겠다.
일 실시예에 따르면, 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부 및 상기 맵핑 테이블에 기초하여 메모리 영역을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 메모리 영역의 쓰기 영역 할당 회수에 따라 상기 메모리 영역을 재할당할 수 있다. 이 경우, 프레임별 쓰기 영역 할당 회수, 특히 쓰기 회수가 평준화될 수 있다.
또한, 상기 메모리의 주소 공간 난수화 장치는 상기 프레임별 쓰기 영역 할당 회수의 카운트값을 기록하는 프레임 테이블을 관리하는 프레임 테이블부를 더 포함할 수 있다. 여기서, 상기 맵핑 테이블부는 상기 프로세서의 제어에 따라 상기 프레임 테이블의 카운트값에 기초하여 상기 맵핑 테이블을 갱신한다.
다른 실시예에 따르면, 메모리의 주소 공간 난수화 장치는 메모리 영역을 읽기 영역과 쓰기 영역으로 할당하는 프로세서 및 상기 메모리 영역의 쓰기 영역 할당 회수를 카운트하여 카운트값을 생성하는 카운트부를 포함할 수 있다. 여기서, 상기 프로세서는 상기 생성된 카운트값에 따라 상기 메모리 영역에 상기 읽기 영역 및 상기 쓰기 영역을 재할당할 수 있다.
상기 프로세서는 상기 재할당시 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당할 수 있다.
한편, 이러한 메모리의 주소 공간 난수화 장치 및 메모리를 포함하는 반도체 소자도 고려할 수 있다.
일 실시예에 따르면, 반도체 소자는 프레임들로 분할된 메모리 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 프레임들로의 쓰기 영역 할당 회수에 따라 상기 메모리 영역을 재할당할 수 있다.
다른 실시예에 따르면, 반도체 소자는 읽기 영역 및 쓰기 영역이 할당된 메모리 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 메모리로의 쓰기 영역 할당 회수에 따라 상기 메모리에서 상기 읽기 영역 및 상기 쓰기 영역을 재할당할 수 있다.
한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉, 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.
또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
RAM : Random Access Memory
Claims (19)
- 메인 메모리의 주소 공간 난수화 장치에 있어서,
맵핑 테이블을 관리하는 맵핑 테이블부; 및
상기 맵핑 테이블에 기초하여 복수의 프레임들로 구분된 메모리 영역을 할당하는 프로세서를 포함하되,
상기 메인 메모리는 읽기 속도와 쓰기 속도가 다른 메모리이고, 상기 메모리 영역은 쓰기 영역 및 읽기 영역을 가지며, 상기 프로세서는 쓰기 동작이 특정 메모리 영역에 집중되는 현상을 방지하도록 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)에 따라 상기 메모리 영역을 재할당하여 프레임들의 쓰기 영역 할당 회수를 평준화하고,
상기 맵핑 테이블은 메모리 영역의 변수들과 메모리의 물리 주소를 포함하며, 상기 맵핑 테이블부는 상기 맵핑 테이블 갱신시 상기 변수들을 유지한 상태로 상기 물리 주소를 가변시키고, 상기 변수들은 stack, heap, library, data 및 code 중 적어도 2개를 포함하며,
상기 프로세서는 상기 재할당시 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하는 것을 특징으로 하는 메인 메모리의 주소 공간 난수화 장치. - 삭제
- 제1항에 있어서,
상기 프레임별 쓰기 영역 할당 회수의 카운트값을 기록하는 프레임 테이블을 관리하는 프레임 테이블부를 더 포함하되,
상기 맵핑 테이블부는 상기 프로세서의 제어에 따라 상기 프레임 테이블의 카운트값에 기초하여 상기 맵핑 테이블을 갱신하는 것을 특징으로 하는 메인 메모리의 주소 공간 난수화 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 프레임들로 분할된 메인 메모리; 및
프로세서를 포함하되,
상기 메인 메모리는 읽기 속도와 쓰기 속도가 다른 메모리이고, 상기 프레임들은 쓰기 영역 및 읽기 영역으로 할당되며, 상기 프로세서는 쓰기 동작이 특정 메모리 영역에 집중되는 현상을 방지하도록 하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)에 따라 상기 메모리 영역을 재할당하여 프레임들의 쓰기 영역 할당 회수를 평준화하고,
상기 프로세서는 맵핑 테이블에 기초하여 상기 메모리 영역을 재할당하며, 상기 맵핑 테이블은 상기 프레임별 쓰기 영역으로 할당된 회수를 카운팅한 카운트값에 기초하여 갱신되고,
상기 맵핑 테이블은 메모리 영역의 변수들과 메모리의 물리 주소를 포함하며, 상기 맵핑 테이블 갱신시 상기 변수들을 유지한 상태로 상기 물리 주소가 가변되고, 상기 변수들은 stack, heap, library, data 및 code 중 적어도 2개를 포함하며,
상기 프로세서는 상기 재할당시 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하는 것을 특징으로 하는 반도체 소자. - 제12항에 있어서, 상기 프로세서는 맵핑 테이블에 기초하여 상기 메모리 영역을 재할당하되,
상기 맵핑 테이블은 상기 프레임별 쓰기 영역으로 할당된 회수를 카운팅한 카운트값에 기초하여 갱신되는 것을 특징으로 하는 반도체 소자. - 삭제
- 프레임들로 분할된 메인 메모리의 메모리 영역을 쓰기 영역 및 읽기 영역으로 할당하는 단계;
하나 이상의 프레임별 쓰기 영역의 할당 회수(쓰기 영역 할당 회수)를 카운트하여 카운트값을 생성하는 단계; 및
쓰기 동작이 특정 메모리 영역에 집중되는 현상을 방지하도록 상기 생성된 카운트값에 따라 맵핑 테이블을 갱신하고 상기 갱신된 맵핑 테이블에 따라 상기 메모리 영역을 재할당하여 프레임들의 쓰기 영역 할당 회수를 평준화하는 단계를 포함하되,
상기 메인 메모리는 읽기 속도와 쓰기 속도가 다른 메모리이며, 상기 맵핑 테이블은 상기 메모리 영역의 변수들과 상기 메인 메모리의 물리 주소를 포함하며, 상기 맵핑 테이블 갱신시 상기 변수들을 유지한 상태로 상기 물리 주소가 가변되고, 상기 변수들은 stack, heap, library, data 및 code 중 적어도 2개를 포함하며,
프로세서는 상기 재할당시 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 영역 할당 회수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하는 것을 특징으로 하는 메인 메모리의 주소 공간 난수화 방법. - 제15항에 있어서, 상기 재할당은 프로세서의 의해 설정된 기설정 시간이 경과하였을 때 수행되는 것을 특징으로 하는 메인 메모리의 주소 공간 난수화 방법.
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170016313A KR101906034B1 (ko) | 2017-02-06 | 2017-02-06 | 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170016313A KR101906034B1 (ko) | 2017-02-06 | 2017-02-06 | 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180098707A KR20180098707A (ko) | 2018-09-05 |
KR101906034B1 true KR101906034B1 (ko) | 2018-11-21 |
Family
ID=63594623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170016313A KR101906034B1 (ko) | 2017-02-06 | 2017-02-06 | 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101906034B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612425B (zh) * | 2020-12-30 | 2021-08-13 | 北京北方华创微电子装备有限公司 | 数据读写方法及半导体加工设备的控制装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100097456A (ko) | 2009-02-26 | 2010-09-03 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법 |
-
2017
- 2017-02-06 KR KR1020170016313A patent/KR101906034B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20180098707A (ko) | 2018-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3665560B1 (en) | Ssd architecture supporting low latency operation | |
KR102032605B1 (ko) | 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들 | |
CN115064199B (zh) | 用于非易失性存储器的用户可配置的耗损均衡的系统、方法和设备 | |
US20140149986A1 (en) | Virtual machine placement | |
US9223693B2 (en) | Memory system having an unequal number of memory die on different control channels | |
US8949568B2 (en) | Memory storage device, and a related zone-based block management and mapping method | |
US8429162B1 (en) | Facilitating data redistribution in database sharding | |
JP5613260B2 (ja) | フラッシュ型メモリ・システムにおけるアクセス競合の低減方法、プログラム及びシステム | |
KR102403043B1 (ko) | 저장 혹은 메모리 장치의 웨어 레벨링 | |
JP2015503156A5 (ko) | ||
KR102290540B1 (ko) | 네임스페이스/스트림 관리 | |
US20160048345A1 (en) | Allocation of read/write channels for storage devices | |
US20130219391A1 (en) | Server and method for deploying virtual machines in network cluster | |
US8738624B1 (en) | Increasing distributed database capacity | |
JP2009532812A5 (ko) | ||
JP2012226770A (ja) | Raid管理、再割振り、およびリストライピングのためのシステムおよび方法 | |
CN104461735B (zh) | 一种虚拟化场景下分配cpu资源的方法和装置 | |
KR102202107B1 (ko) | 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러 | |
US20180292988A1 (en) | System and method for data access in a multicore processing system to reduce accesses to external memory | |
US20140189031A1 (en) | Computing device and method of creating virtual machines in hosts | |
CN103942148A (zh) | 非易失性存储器的损耗均衡系统及方法 | |
KR101906034B1 (ko) | 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법 | |
TWI617972B (zh) | 記憶體裝置及方法 | |
US8996842B2 (en) | Memory stacks management | |
JPWO2018235149A1 (ja) | ストレージ装置及び記憶領域管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |