KR20180053112A - 메모리의 주소 공간 난수화 장치 및 방법 - Google Patents

메모리의 주소 공간 난수화 장치 및 방법 Download PDF

Info

Publication number
KR20180053112A
KR20180053112A KR1020160150495A KR20160150495A KR20180053112A KR 20180053112 A KR20180053112 A KR 20180053112A KR 1020160150495 A KR1020160150495 A KR 1020160150495A KR 20160150495 A KR20160150495 A KR 20160150495A KR 20180053112 A KR20180053112 A KR 20180053112A
Authority
KR
South Korea
Prior art keywords
memory
area
frames
processor
write
Prior art date
Application number
KR1020160150495A
Other languages
English (en)
Other versions
KR102039776B1 (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 KR1020160150495A priority Critical patent/KR102039776B1/ko
Publication of KR20180053112A publication Critical patent/KR20180053112A/ko
Application granted granted Critical
Publication of KR102039776B1 publication Critical patent/KR102039776B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]

Abstract

쓰기 횟수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법이 개시된다. 상기 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부 및 상기 맵핑 테이블에 기초하여 메모리 영역을 할당하는 프로세서를 포함한다. 여기서, 상기 프로세서는 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당한다.

Description

메모리의 주소 공간 난수화 장치 및 방법{APPARATUS AND METHOD OF RANDOMIZING ADDRESS SPACE OF A MEMORY}
본 발명은 쓰기 횟수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법에 관한 것이다.
반도체 소자는 메모리에 데이터를 기록한다. 즉, 메모리로 쓰기 동작이 수행된다.
그러나, 쓰기 동작이 특정 메모리 영역에 많이 수행되면, 메모리의 물리적 한계로 인하여 메모리를 더 이상 사용할 수 없게 된다. 또한, 특정 메모리의 경우에는 메모리의 쓰기 동작의 횟수가 제한된다.
따라서, 쓰기 동작이 특정 메모리 영역에 집중되는 경우, 상기 메모리의 수명이 줄어드는 문제점이 발생할 수 있다.
KR 2010-0097456 A
본 발명은 쓰기 횟수를 고려하는 메모리의 주소 공간 난수화 장치 및 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부; 및 상기 맵핑 테이블에 기초하여 메모리 영역을 할당하는 프로세서를 포함한다. 여기서, 상기 프로세서는 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당한다.
본 발명의 다른 실시예에 따른 메모리의 주소 공간 난수화 장치는 메모리 영역을 읽기 영역과 쓰기 영역으로 할당하는 프로세서; 및 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)를 카운트하여 카운트값을 생성하는 카운트부를 포함한다. 여기서, 상기 프로세서는 상기 생성된 카운트값에 따라 상기 메모리 영역에 상기 읽기 영역 및 상기 쓰기 영역을 재할당한다.
본 발명의 일 실시에에 따른 반도체 소자는 프레임들로 분할된 메모리; 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함한다. 여기서, 상기 프로세서는 상기 프레임들로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당한다.
본 발명의 다른 실시예에 따른 반도체 소자는 읽기 영역 및 쓰기 영역이 할당된 메모리; 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함한다. 여기서, 상기 프로세서는 상기 메모리로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리에서 상기 읽기 영역 및 상기 쓰기 영역을 재할당한다.
본 발명의 일 실시예에 따른 메모리의 주소 공간 난수화 방법은 프레임들로 분할된 메모리에 메모리 영역을 할당하는 단계; 상기 메모리 영역에 수행된 쓰기 동작의 횟수(쓰기 횟수)를 카운트하여 카운트값을 생성하는 단계; 및 상기 생성된 카운트값에 따라 상기 메모리 영역을 재할당하는 단계를 포함한다.
본 발명의 메모리의 주소 공간 난수화 장치 및 방법은 메모리의 페이지별 쓰기 동작의 횟수(쓰기 횟수)가 평준화되도록 쓰기 횟수를 고려하여 메모리 영역을 재할당한다. 결과적으로, 상기 메모리의 수명이 향상될 수 있다.
도 1은 본 발명의 일 실시예에 따른 페이징(paging) 방법을 사용하는 컴퓨터 시스템에서 메인 메모리의 주소 공간 난수화 과정을 개념적으로 도시한 도면이다.
도 2는 본 발명의 제 1 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 맵핑 테이블을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 프레임으로 분할된 메인 메모리의 구조 및 프레임 테이블을 도시한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 맵핑 테이블을 생성하는 과정 및 구조를 도시한 도면들이다.
도 7은 본 발명의 제 2 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 메모리의 주소 공간 난수화 장치 및 방법에 관한 것으로서, 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번으로 제한된다.
이러한 읽기 속도와 쓰기 속도의 차이 및 쓰기 동작의 횟수 제한은 메인 메모리의 수명을 감소시킬 수 있다.
따라서, 본 발명은 쓰기 동작을 고려하여 메인 메모리의 주소 공간을 적절하게 재할당하여 이러한 문제를 해결할 수 있다. 예를 들어, 본 발명은 쓰기 동작의 횟수(이하, "쓰기 횟수"라 함)를 카운팅하고 카운트값에 따라 메인 메모리의 주소 공간을 난수화할 수 있다.
바람직하게는, 본 발명은 메인 메모리의 프레임들의 쓰기 횟수들을 평준화시켜 메인 메모리의 수명을 향상시키는 기술을 제안한다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술하겠다.
도 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). 예를 들어, 상기 프로세서는 쓰기 동작이 수행될 때마다 카운트값을 1씩 증가시킬 수 있다.
일 실시예에 따르면, 상기 프로세서 또는 상기 프로세서에 의해 제어되는 프레임 테이블부가 프레임별 카운트값을 기록한 프레임 테이블을 생성할 수 있으며, 프레임 테이블은 도 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은 지속적으로 반복 수행되며, 반복 수행의 횟수가 증가할 때마다 프레임들의 쓰기 횟수가 더 평준화될 수 있다.
종래 기술에서는 특정 프레임의 쓰기 횟수가 훨씬 많아서 메인 메모리의 수명이 줄어들 수 있는 반면에, 본 발명에서는 프레임들의 쓰기 횟수가 평준화되므로 메인 메모리의 수명이 향상될 수 있다.
도 7은 본 발명의 제 2 실시예에 따른 메인 메모리의 주소 공간 난수화 과정을 도시한 순서도이다.
프로세서는 메인 메모리의 영역을 예를 들어 읽기 영역 및 쓰기 영역으로 할당한다(S700). 예를 들어, 상기 프로세서는 도 3에 도시된 바와 같은 맵핑 테이블을 생성하고, 상기 생성된 맵핑 테이블에 기초하여 상기 메인 메모리의 영역을 할당할 수 있다.
이어서, 상기 프로세서의 제어에 따라 읽기 드라이버가 해당 메모리를 참조하여 읽기 동작을 수행하고 쓰기 드라이버가 해당 메모리로 쓰기 동작을 수행할 수 있다(702).
계속하여, 상기 프로세서는 프레임별 쓰기 횟수를 카운팅한다(S704). 예를 들어, 상기 프로세서는 쓰기 동작이 수행될 때마다 카운트값을 1씩 증가시킬 수 있다.
일 실시예에 따르면, 상기 프로세서 또는 상기 프로세서에 의해 제어되는 프레임 테이블부가 프레임별 카운트값을 기록한 프레임 테이블을 생성할 수 있다.
이어서, 상기 프로세서는 프레임들의 카운트값들 중 최고 카운트값이 기설정 값과 동일한 지의 여부를 판단한다(S706).
기설정 값과 동일하지 않은 경우에는 단계 S702가 계속적으로 수행된다.
반면에, 기설정 값과 동일한 경우에는, 상기 프로세서는 맵핑 테이블을 가변시킬 수 있다(S708).
맵핑 테이블 갱신시, 상기 프로세서 또는 맵핑 테이블부는 쓰기 횟수가 평준화되도록 도 4의 프레임 테이블을 참조하여 메모리 영역을 새롭게 할당할 수 있다.
계속하여, 상기 프로세서 또는 프레임 테이블부는 카운트값을 초기화시킬 수 있다(S710).
이어서, 상기 프로세서는 갱신된 맵핑 테이블에 기초하여 메모리 영역을 재할당한다(S700).
위의 단계 S700 내지 S710은 지속적으로 반복 수행되며, 반복 수행의 횟수가 증가할 때마다 프레임들의 쓰기 횟수가 더 평준화될 수 있다.
이하, 본 발명의 메모리의 주소 공간 난수화 장치를 요약하여 살펴보겠다.
일 실시예에 따르면, 메모리의 주소 공간 난수화 장치는 맵핑 테이블을 관리하는 맵핑 테이블부 및 상기 맵핑 테이블에 기초하여 메모리 영역을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당할 수 있다. 이 경우, 프레임별 쓰기 횟수가 평준화될 수 있다.
또한, 상기 메모리의 주소 공간 난수화 장치는 상기 프레임별 쓰기 횟수의 카운트값을 기록하는 프레임 테이블을 관리하는 프레임 테이블부를 더 포함할 수 있다. 여기서, 상기 맵핑 테이블부는 상기 프로세서의 제어에 따라 상기 프레임 테이블의 카운트값에 기초하여 상기 맵핑 테이블을 갱신한다.
다른 실시예에 따르면, 메모리의 주소 공간 난수화 장치는 메모리 영역을 읽기 영역과 쓰기 영역으로 할당하는 프로세서 및 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)를 카운트하여 카운트값을 생성하는 카운트부를 포함할 수 있다. 여기서, 상기 프로세서는 상기 생성된 카운트값에 따라 상기 메모리 영역에 상기 읽기 영역 및 상기 쓰기 영역을 재할당할 수 있다.
상기 프로세서는 상기 재할당시 상기 쓰기 횟수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 횟수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당할 수 있다.
한편, 이러한 메모리의 주소 공간 난수화 장치 및 메모리를 포함하는 반도체 소자도 고려할 수 있다.
일 실시예에 따르면, 반도체 소자는 프레임들로 분할된 메모리 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 프레임들로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당할 수 있다.
다른 실시예에 따르면, 반도체 소자는 읽기 영역 및 쓰기 영역이 할당된 메모리 및 상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함할 수 있다. 여기서, 상기 프로세서는 상기 메모리로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리에서 상기 읽기 영역 및 상기 쓰기 영역을 재할당할 수 있다.
한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉, 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.
또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
RAM : Random Access Memory

Claims (24)

  1. 맵핑 테이블을 관리하는 맵핑 테이블부; 및
    상기 맵핑 테이블에 기초하여 메모리 영역을 할당하는 프로세서를 포함하되,
    상기 프로세서는 상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  2. 제1항에 있어서, 상기 메모리는 페이징 동작을 위한 메인 메모리이며, 상기 메인 메모리는 프레임들로 분할되어 있는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  3. 제1항에 있어서,
    상기 프레임별 쓰기 횟수의 카운트값을 기록하는 프레임 테이블을 관리하는 프레임 테이블부를 더 포함하되,
    상기 맵핑 테이블부는 상기 프로세서의 제어에 따라 상기 프레임 테이블의 카운트값에 기초하여 상기 맵핑 테이블을 갱신하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  4. 제3항에 있어서, 상기 맵핑 테이블은 메모리 영역의 변수들과 메모리의 물리 주소를 포함하되,
    상기 맵핑 테이블부는 상기 갱신시 상기 변수들을 유지한 상태로 상기 물리 주소를 가변시키는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  5. 제3항에 있어서, 상기 맵핑 테이블은 메모리 영역의 변수들과 메모리의 물리 주소를 포함하되,
    상기 맵핑 테이블부는 상기 갱신시 상기 물리 주소를 유지한 상태로 상기 변수들을 가변시키는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  6. 제1항에 있어서, 상기 프로세서는 상기 쓰기 횟수에 따라 상기 메모리 영역을 재할당하여 프레임별 쓰기 횟수를 평준화하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  7. 제6항에 있어서, 상기 프로세서는 상기 재할당시 상기 쓰기 횟수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 횟수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  8. 제7항에 있어서, 상기 읽기 영역은 library 및 code를 포함하고, 상기 쓰기 영역은 stack, heap 및 data를 포함하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  9. 메모리 영역을 읽기 영역과 쓰기 영역으로 할당하는 프로세서; 및
    상기 메모리 영역의 쓰기 동작의 횟수(쓰기 횟수)를 카운트하여 카운트값을 생성하는 카운트부를 포함하되,
    상기 프로세서는 상기 생성된 카운트값에 따라 상기 메모리 영역에 상기 읽기 영역 및 상기 쓰기 영역을 재할당하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  10. 제9항에 있어서, 상기 메모리는 프레임들로 분할되며 페이징 동작을 위한 메인 메모리이되,
    상기 카운트값은 테이블에 기록되어 관리되는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  11. 제10항에 있어서, 상기 프로세서는 상기 재할당시 상기 쓰기 횟수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역을 할당하고, 상기 쓰기 횟수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역을 할당하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  12. 제9항에 있어서, 상기 읽기 영역은 library 및 code를 포함하고, 상기 쓰기 영역은 stack, heap 및 data를 포함하는 것을 특징으로 하는 메모리의 주소 공간 난수화 장치.
  13. 프레임들로 분할된 메모리; 및
    상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함하되,
    상기 프로세서는 상기 프레임들로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리 영역을 재할당하는 것을 특징으로 하는 반도체 소자.
  14. 제13항에 있어서, 상기 프로세서는 맵핑 테이블에 기초하여 상기 메모리 영역을 재할당하되,
    상기 맵핑 테이블은 프레임별 쓰기 횟수의 카운트값에 기초하여 갱신되는 것을 특징으로 하는 반도체 소자.
  15. 제13항에 있어서, 상기 프로세서는 상기 메모리 영역을 재할당하여 상기 프레임별 쓰기 횟수를 평준화시키는 것을 특징으로 하는 반도체 소자.
  16. 읽기 영역 및 쓰기 영역이 할당된 메모리; 및
    상기 메모리의 영역(메모리 영역)을 할당하는 프로세서를 포함하되,
    상기 프로세서는 상기 메모리로의 쓰기 동작의 횟수(쓰기 횟수)에 따라 상기 메모리에서 상기 읽기 영역 및 상기 쓰기 영역을 재할당하는 것을 특징으로 하는 반도체 소자.
  17. 제16항에 있어서, 상기 프로세서는 맵핑 테이블에 기초하여 상기 메모리 영역을 재할당하되,
    상기 맵핑 테이블은 프레임별 쓰기 횟수의 카운트값에 기초하여 갱신되는 것을 특징으로 하는 반도체 소자.
  18. 제16항에 있어서, 상기 메모리는 프레임들로 분할되되,
    상기 프로세서는 상기 메모리 영역을 재할당하여 프레임별 쓰기 횟수를 평준화시키는 것을 특징으로 하는 반도체 소자.
  19. 프레임들로 분할된 메모리에 메모리 영역을 할당하는 단계;
    상기 메모리 영역에 수행된 쓰기 동작의 횟수(쓰기 횟수)를 카운트하여 카운트값을 생성하는 단계; 및
    상기 생성된 카운트값에 따라 상기 메모리 영역을 재할당하는 단계를 포함하는 것을 특징으로 하는 메모리의 주소 공간 난수화 방법.
  20. 제19항에 있어서, 상기 재할당은 프로세서의 의해 설정된 기설정 시간이 경과하였을 때 수행되는 것을 특징으로 하는 메모리의 주소 공간 난수화 방법.
  21. 제19항에 있어서, 상기 재할당은 상기 프레임들의 카운트값들 중 최고 카운트값이 기설정 값과 동일하여졌을 때 수행되는 것을 특징으로 하는 메모리의 주소 공간 난수화 방법.
  22. 제19항에 있어서,
    상기 카운트값에 따라 맵핑 테이블을 갱신하는 단계를 더 포함하되,
    상기 갱신된 맵핑 테이블에 기초하여 상기 메모리 영역이 재할당되고, 상기 카운트값은 프레임 테이블에 저장되며, 상기 프레임 테이블의 카운트값에 기초하여 상기 맵핑 테이블이 갱신되는 것을 특징으로 한느 메모리의 주소 공간 난수화 방법.
  23. 제19항에 있어서, 상기 재할당시 상기 쓰기 횟수가 다른 프레임들에 비하여 많은 프레임에 읽기 영역이 할당되고, 상기 쓰기 횟수가 다른 프레임들에 비하여 적은 프레임에 쓰기 영역이 할당되는 것을 특징으로 하는 메모리의 주소 공간 난수화 방법.
  24. 제19항에 있어서, 상기 메모리 영역이 재할당됨에 따라 프레임별 쓰기 횟수가 평준화되는 것을 특징으로 하는 메모리의 주소 공간 난수화 방법.

KR1020160150495A 2016-11-11 2016-11-11 메모리의 주소 공간 난수화 장치 및 방법 KR102039776B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160150495A KR102039776B1 (ko) 2016-11-11 2016-11-11 메모리의 주소 공간 난수화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160150495A KR102039776B1 (ko) 2016-11-11 2016-11-11 메모리의 주소 공간 난수화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180053112A true KR20180053112A (ko) 2018-05-21
KR102039776B1 KR102039776B1 (ko) 2019-11-01

Family

ID=62453501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160150495A KR102039776B1 (ko) 2016-11-11 2016-11-11 메모리의 주소 공간 난수화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102039776B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060091358A (ko) * 2005-02-14 2006-08-21 최명렬 메모리 장치 및 그 제어 방법
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
KR20100097456A (ko) 2009-02-26 2010-09-03 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법
KR20110016320A (ko) * 2009-08-11 2011-02-17 주식회사 유니듀 플래시 메모리를 블록 그룹으로 구분하여 관리하는 방법
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060091358A (ko) * 2005-02-14 2006-08-21 최명렬 메모리 장치 및 그 제어 방법
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
KR20100097456A (ko) 2009-02-26 2010-09-03 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법
KR20110016320A (ko) * 2009-08-11 2011-02-17 주식회사 유니듀 플래시 메모리를 블록 그룹으로 구분하여 관리하는 방법
JP2012221338A (ja) * 2011-04-12 2012-11-12 Hitachi Ltd 半導体装置、不揮発性メモリ装置の制御方法

Also Published As

Publication number Publication date
KR102039776B1 (ko) 2019-11-01

Similar Documents

Publication Publication Date Title
JP5427927B2 (ja) Raid管理、再割振り、およびリストライピングのためのシステムおよび方法
US10782903B2 (en) Memory system and method for controlling nonvolatile memory
US8949568B2 (en) Memory storage device, and a related zone-based block management and mapping method
US9170885B2 (en) Independent management of data and parity logical block addresses
CN109716281B (zh) 用于非易失性存储器的用户可配置的耗损均衡的系统、方法和设备
EP4137924A1 (en) Fragment management method and fragment management apparatus
JP2015503156A5 (ko)
JP6383861B2 (ja) ストレージ管理計算機
JP2015508924A (ja) 複合不揮発性記憶装置のためのデータ移行
CN102968279A (zh) 一种存储系统自动精简配置的方法
EP3352071B1 (en) Data check method and storage system
US10198180B2 (en) Method and apparatus for managing storage device
US20190146926A1 (en) Storage device and operating method of storage device
KR20200081692A (ko) 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러
US20140189031A1 (en) Computing device and method of creating virtual machines in hosts
JP2011090460A (ja) データ記憶装置およびデータ記憶装置における制御方法
US20180292988A1 (en) System and method for data access in a multicore processing system to reduce accesses to external memory
KR101906034B1 (ko) 쓰기 영역 할당 회수를 고려한 메모리의 주소 공간 난수화 장치 및 방법
US20220129394A1 (en) Managed nand flash memory region control against endurance hacking
JP2010122805A (ja) 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
JP5730446B1 (ja) トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
TWI617972B (zh) 記憶體裝置及方法
US20170351457A1 (en) Storage controller, storage system, and storage control method
KR20180053112A (ko) 메모리의 주소 공간 난수화 장치 및 방법
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant