KR101270281B1 - 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 - Google Patents
메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 Download PDFInfo
- Publication number
- KR101270281B1 KR101270281B1 KR1020110022855A KR20110022855A KR101270281B1 KR 101270281 B1 KR101270281 B1 KR 101270281B1 KR 1020110022855 A KR1020110022855 A KR 1020110022855A KR 20110022855 A KR20110022855 A KR 20110022855A KR 101270281 B1 KR101270281 B1 KR 101270281B1
- Authority
- KR
- South Korea
- Prior art keywords
- write
- data
- buffer
- nonvolatile semiconductor
- semiconductor memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 143
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000010365 information processing Effects 0.000 title claims description 27
- 239000004065 semiconductor Substances 0.000 claims abstract description 100
- 239000000872 buffer Substances 0.000 claims description 94
- 238000004040 coloring Methods 0.000 description 42
- 238000007726 management method Methods 0.000 description 37
- 230000003068 static effect Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 14
- 230000000052 comparative effect Effects 0.000 description 13
- 238000013467 fragmentation Methods 0.000 description 13
- 238000006062 fragmentation reaction Methods 0.000 description 13
- 102100039696 Glutamate-cysteine ligase catalytic subunit Human genes 0.000 description 12
- 101001034527 Homo sapiens Glutamate-cysteine ligase catalytic subunit Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- YVGGHNCTFXOJCH-UHFFFAOYSA-N DDT Chemical compound C1=CC(Cl)=CC=C1C(C(Cl)(Cl)Cl)C1=CC=C(Cl)C=C1 YVGGHNCTFXOJCH-UHFFFAOYSA-N 0.000 description 6
- 101710189714 Major cell-binding factor Proteins 0.000 description 6
- 101000911772 Homo sapiens Hsc70-interacting protein Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 108090000237 interleukin-24 Proteins 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 101001139126 Homo sapiens Krueppel-like factor 6 Proteins 0.000 description 1
- 101000710013 Homo sapiens Reversion-inducing cysteine-rich protein with Kazal motifs Proteins 0.000 description 1
- 101000661807 Homo sapiens Suppressor of tumorigenicity 14 protein Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 실시 형태에 따르면, 불휘발성 반도체 메모리와 휘발성 반도체 메모리를 구비하는 메인 메모리를 관리하는 메모리 관리 장치에 관한 것이며, 상기 메모리 관리 장치는 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터에 대하여, 상기 데이터의 데이터 속성에 의해 결정되는 기입 빈도에 대한 정보에 기초하여, 상기 불휘발성 반도체 메모리 상의 기입 영역의 할당을 행하는 할당부와, 상기 할당된 데이터를 추기 방식에 의해 상기 불휘발성 반도체 메모리에 기입하는 제어부를 더 포함한다.
Description
<관련 출원>
본 출원은 일본 특허 출원 제2010-172050호(2010년 7월 30일)에 기초한 것으로서, 그 우선권을 주장하며, 그 전체 내용이 본 명세서에서 참조로서 인용된다.
본원에 개시된 실시 형태는 일반적으로 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법에 관한 것이다.
예를 들어, 불휘발성 반도체 메모리와 휘발성 반도체 메모리를 메인 메모리로서 사용하는 경우에는, 데이터 속성에 따라, 데이터의 배치 영역을 불휘발성 반도체 메모리로 할지, 또는 휘발성 반도체 메모리로 할지 결정하는 방법이 제안되어 있다(예를 들어, 일본 특허 공개 제2008-242944호 공보 등 참조). 불휘발성 반도체 메모리의 일례로서는, 예를 들어 NAND형 플래시 메모리 등이 제안되어 있다. 휘발성 반도체 메모리의 일례로서는, 예를 들어 DRAM(Dynamic Random Access Memory) 등이 제안되어 있다.
여기서, NAND형 플래시 메모리 등의 불휘발성 반도체 메모리에의 데이터 기입 동작에는 「덮어쓰기 방식」과 「추기 방식」이 존재한다.
「덮어쓰기 방식」이란, 덮어쓰기 불가능한 NAND형 플래시 메모리를 유사적으로 덮어쓰기 가능하게 보이는 방식이다. 이 방식에서는 소거 블록의 임의의 위치의 데이터가 갱신된 경우, 그 소거 블록으로부터 모든 데이터를 일단 백업하여 블록에 소거 처리를 실시하고 나서, 다시 블록 단위로 갱신된 데이터를 기입할 필요가 있다.
한편, 「추기 방식」에서는 페이지 단위의 데이터 기입을 행한다. 이 방식에서는 데이터가 갱신된 경우, 그 데이터가 존재하는 블록 페이지에 마크(무효 데이터)를 부여하고, 갱신된 데이터는 다른 블록(동일 블록에서도 가능)의 다른 페이지에 배치된다.
본 발명의 실시 형태는, 조각화(fragmentation)의 발생을 억제할 수 있고, 메모리의 유효 이용에 유리한 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법을 제공한다.
본 발명의 하나의 실시 형태는, 불휘발성 반도체 메모리를 관리하는 메모리 관리 장치에 관한 것으로서, 기입 대상 데이터가 저장되는 제1 버퍼 및 제2 버퍼와, 상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 상기 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 상기 제2 버퍼에 기입하는 할당부와, 상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 제어부를 포함한다.
본 발명의 다른 실시 형태는, 정보 처리 장치에 관한 것으로서, 불휘발성 반도체 메모리를 관리하는 메모리 관리 장치 - 상기 메모리 관리 장치는, 기입 대상 데이터가 저장되는 제1 버퍼 및 제2 버퍼와, 상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 상기 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 상기 제2 버퍼에 기입하는 할당부와, 상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 제어부를 포함함 - 와, 버스를 통하여 상기 메모리 관리 장치와 전기적으로 접속되는 프로세서를 포함한다.
본 발명의 다른 실시 형태는, 불휘발성 반도체 메모리를 관리하는 방법에 관한 것으로서, 상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 제2 버퍼에 기입하는 단계와, 상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 단계를 포함한다.
본 발명의 실시 형태에 따르면, 조각화의 발생을 억제할 수 있고, 메모리의 유효 이용에 유리한 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법을 제공할 수 있다.
도 1은 실시 형태에 관한 정보 처리 장치의 전체 구성예를 도시하는 시스템 블록도.
도 2는 도 1 중의 처리부에서의 블록 선택부를 도시하는 블록도.
도 3은 본 실시 형태에 관한 컬러링 테이블의 구성예를 도시하는 도면.
도 4는 실시 형태에 관한 메모리 관리 장치의 데이터 기입 동작을 나타내는 흐름도.
도 5는 실시 형태에 관한 메모리 관리 장치의 가비지 콜렉션(garbage collection) 동작을 나타내는 흐름도.
도 6은 실시 형태에 관한 데이터 기입 동작 후의 물리 블록(PEB)을 도시하는 도면.
도 7은 실시 형태에 관한 갱신 빈도가 높은 데이터를 갱신한 후의 물리 블록(PEB)을 도시하는 도면.
도 8은 비교예에 관한 덮어쓰기 방식에 의한 데이터 기입 동작 후의 물리 블록(PEB)을 도시하는 도면.
도 9는 비교예에 관한 덮어쓰기 방식에 의한 갱신 빈도가 높은 데이터를 갱신한 후의 물리 블록(PEB)을 도시하는 도면.
도 10은 본 실시 형태 및 비교예에서의 더티(dirty) 영역 크기를 도시하는 도면.
도 2는 도 1 중의 처리부에서의 블록 선택부를 도시하는 블록도.
도 3은 본 실시 형태에 관한 컬러링 테이블의 구성예를 도시하는 도면.
도 4는 실시 형태에 관한 메모리 관리 장치의 데이터 기입 동작을 나타내는 흐름도.
도 5는 실시 형태에 관한 메모리 관리 장치의 가비지 콜렉션(garbage collection) 동작을 나타내는 흐름도.
도 6은 실시 형태에 관한 데이터 기입 동작 후의 물리 블록(PEB)을 도시하는 도면.
도 7은 실시 형태에 관한 갱신 빈도가 높은 데이터를 갱신한 후의 물리 블록(PEB)을 도시하는 도면.
도 8은 비교예에 관한 덮어쓰기 방식에 의한 데이터 기입 동작 후의 물리 블록(PEB)을 도시하는 도면.
도 9는 비교예에 관한 덮어쓰기 방식에 의한 갱신 빈도가 높은 데이터를 갱신한 후의 물리 블록(PEB)을 도시하는 도면.
도 10은 본 실시 형태 및 비교예에서의 더티(dirty) 영역 크기를 도시하는 도면.
이하, 실시 형태에 대하여 도면을 참조하여 설명한다. 또한, 이 설명에 있어서는, 전체 도면에 걸쳐 공통된 부분에는 공통의 참조 부호를 붙인다.
[실시 형태]
<1. 구성예>
1-1. 전체 구성예
우선, 도 1을 사용하여, 이 실시 형태에 관한 정보 처리 장치의 전체 구성예에 대하여 설명한다. 도 1은 본 실시 형태에 관한 정보 처리 장치(1)의 구성의 일례를 도시하는 시스템 블록도이다.
도시한 바와 같이, 정보 처리 장치(1)는, 예를 들어 SoC(System-on-a-Chip)로 구성된다. 정보 처리 장치(1)는 프로세서 P1 내지 P4, 2차 캐시 메모리 L2, 버스(2), 메모리 관리 장치(3)를 구비한다.
프로세서 P1 내지 P4는, 각각이 1차 캐시 메모리 L1-1 내지 L1-4, MMU41 내지 44를 구비한다. 프로세서 P1 내지 P4로서는, 예를 들어 CPU(Central Processing Unit)가 사용되지만, MPU(Micro Processor Unit), GPU(Graphic Processor Unit) 등과 같은 다른 처리 유닛이 사용되어도 된다. 이 도 1에 있어서, 프로세서 P1 내지 P4의 수는 4개이지만, 프로세서의 수는 1 이상이면 된다.
프로세서 P1 내지 P4는 2차 캐시 메모리 L2를 공유하고, 버스(2)를 통하여 메모리 관리 장치(3)와 전기적으로 접속된다.
메모리 관리 장치(3)는, 외부의 휘발성 반도체 메모리(5), 불휘발성 반도체 메모리(61 내지 6n)와 전기적으로 접속되어 있다. 프로세서 P1 내지 P4는, 메모리 관리 장치(3)를 통하여, 휘발성 반도체 메모리(5), 불휘발성 반도체 메모리(61 내지 6n)에 액세스 가능하다.
프로세서 P1 내지 P4와 메모리 관리 장치(3)는, 버스(2)에 의해 데이터를 송수신 가능하게 접속되어 있다. 또한, 예를 들어 프로세서 P1 내지 P4와 메모리 관리 장치(3)는 비동기로 동작 가능하고, 프로세서 P1 내지 P4에서 처리 실행 중에, 메모리 관리 장치(3)가 불휘발성 반도체 메모리(61 내지 6n)에 대하여 웨어 레벨링(wear levelling), 가비지 콜렉션, 콤팩션을 실행할 수 있다.
또한, 본 실시 형태에 있어서, 정보 처리 장치(1)와, 휘발성 반도체 메모리(5) 및 불휘발성 반도체 메모리(61 내지 6n)는 다른 칩으로 되어 있지만, 정보 처리 장치(1) 내에 휘발성 반도체 메모리(5) 및 불휘발성 반도체 메모리(61 내지 6n)가 포함되는 구성으로 하여도 된다.
메모리 관리 장치(3)의 내부에는 처리부(7)가 구비되어 있다. 이 처리부(7)로서는, 예를 들어 MPU가 사용되지만, 다른 처리 유닛이 사용되는 것으로 하여도 된다.
처리부(7)는, 불휘발성 반도체 메모리(61 내지 6n)를 사용하기 위한 여러가지의 처리를 소프트웨어(8)에 기초하여 제어한다. 본 실시 형태에 있어서, 프로세서 P1 내지 P4와 처리부(7)에서, 불휘발성 반도체 메모리(61 내지 6n)에 대한 처리를 분담하여 실행하는 것으로 하여도 된다. 예를 들어, 소프트웨어(8)는, 불휘발성 반도체 메모리(61 내지 6n)에 기억되어 있고, 기동시에 처리부(7)에 의해 불휘발성 반도체 메모리(61 내지 6n)로부터 판독되어, 실행된다.
휘발성 반도체 메모리(5)와 불휘발성 반도체 메모리(61 내지 6n)는, 메인 메모리로서 사용된다. 본 실시 형태에서는 불휘발성 반도체 메모리(61 내지 6n)에 충분한 메모리량이 확보된다. 불휘발성 반도체 메모리(61 내지 6n)의 메모리 용량은 휘발성 반도체 메모리(5)보다도 크다. 그리고, 휘발성 반도체 메모리(5)에는 예를 들어 최근 액세스된 데이터, 사용 빈도가 높은 데이터 등이 액세스될 가능성이 높은 데이터가 불휘발성 반도체 메모리(61 내지 6n)로부터 캐시된다. 프로세서 P1 내지 P4가 휘발성 반도체 메모리(5)에 액세스하는 경우에, 휘발성 반도체 메모리(5)에 액세스 대상의 데이터가 존재하지 않는 경우, 불휘발성 반도체 메모리(61 내지 6n)와 휘발성 반도체 메모리(5)의 사이에서 데이터 전송이 실행된다. 이와 같이 휘발성 반도체 메모리(5)와 불휘발성 반도체 메모리(61 내지 6n)를 조합하여 사용함으로써, 휘발성 반도체 메모리(5)의 메모리 용량보다 큰 메모리 공간이 메인 메모리로서 사용 가능하게 된다.
본 실시 형태에 있어서 휘발성 반도체 메모리(5)는, 예를 들어 DRAM(Dynamic Random Access Memory)인 것으로 한다. 그러나, 휘발성 반도체 메모리(5)로서는, DRAM 대신에 FPM-DRAM(Fast Page Mode), EDO-DRAM(Extended Data Out DRAM), SDRAM(Synchronous DRAM) 등과 같은, 컴퓨터에 있어서 메인 메모리로서 이용되는 메모리를 사용하는 것으로 하여도 된다. 또한, DRAM 정도의 고속 랜덤 액세스가 가능하고, 액세스 가능 상한 횟수에 실질적인 제한이 없는 것이라면, 휘발성 반도체 메모리(5) 대신에 MRAM(Magnetoresistive Random Access Memory), FeRAM(Ferroelectric Random Access Memory) 등의 불휘발성 랜덤 액세스 메모리가 사용되는 것으로 하여도 된다.
본 실시 형태에 있어서 불휘발성 반도체 메모리(61 내지 6n)는, 예를 들어 NAND형 플래시 메모리인 것으로 한다. 그러나, 불휘발성 반도체 메모리(61 내지 6n)는, 예를 들어 NOR형 플래시 메모리 등, 다른 불휘발성 반도체 메모리가 사용되는 것으로 하여도 된다.
휘발성 반도체 메모리(5)는, 불휘발성 반도체 메모리(61 내지 6n)보다도 소용량(예를 들어 128Mbyte 내지 4GByte 등)이지만 고속으로 액세스 가능하다.
불휘발성 반도체 메모리(61 내지 6n)는, 휘발성 반도체 메모리(5)보다도 대용량(예를 들어 32GByte 내지 512GByte 등)이지만 액세스 시간이 길다. 또한, 불휘발성 반도체 메모리(61 내지 6n)는, 데이터의 기입에 있어서, 일단 데이터를 소거하고, 기입할 필요가 있다. 불휘발성 반도체 메모리(61 내지 6n)는, 최대의 기입 횟수(예를 들어 1만회나 3만회 등)에 제한이 있고, 그 횟수를 초과하면, 에러율이 상승하여, 디바이스로서 올바른 데이터 기입을 보증할 수 없게 되는 경우가 있다. 또한, 본 예의 경우, 불휘발성 반도체 메모리(61 내지 6n)에 대하여, 「추기 방식」에 의해 데이터 기입 동작을 행한다.
여기서, 「추기 방식」은 페이지 단위로 데이터 기입을 행한다. 이 추기 방식에 의해 데이터가 갱신된 경우, 그 데이터가 존재하는 블록 페이지에 마크(무효 데이터)를 부여하고, 갱신된 데이터는 다른 블록(동일 블록에서도 가능)의 다른 페이지에 배치된다. 바꾸어 말하면, 이러한 무효 데이터가 된 영역을 더티(Dirty) 영역(무효 데이터 영역)이라고 칭한다.
더티(Dirty) 영역이 증대하면, 후술하는 가비지 콜렉션 동작이 보다 필요하기 때문에 조각화가 발생한다. 환언하면, 조각화는 더티 영역의 증가에 의해 유효 영역이 줄어드는 현상이다. 이러한 조각화가 발생하기 때문에, 가비지 콜렉션을 행한다.
정보 처리 장치(1)에서는 프로세서 P1 내지 P4에 의해 OS(9) 및 어플리케이션 등의 소프트웨어(10)가 실행된다.
프로세서 P1 내지 P4에 의해, 정보 처리 장치(1)에서의 OS(9) 및 어플리케이션 등의 소프트웨어(10)가 실행된다.
OS(9) 및 소프트웨어(10)는, 예를 들어 1차 캐시 메모리 L1-1 내지 L1-4, 2차 캐시 메모리 L2, 휘발성 반도체 메모리(5), 불휘발성 반도체 메모리(61 내지 6n)에 기억되어 있고, 정보 처리 장치(1)의 동작시에 프로세서 P1 내지 P4에 의해 판독된다.
불휘발성 반도체 메모리(61 내지 6n)의 물리 어드레스 공간분의 액세스 빈도 정보는, OS(9) 및 소프트웨어(10)에 의해 이용되고, 테이블 형식으로, 컬러링 테이블에 의해 컬러링 정보로서 관리된다. 여기서, 액세스 빈도 정보란, 페이지 크기 단위의 액세스 빈도를 나타낸다. OS(9)는, 예를 들어 프로그램 자체가 갖는 특징, 프로그램의 txt 영역, stack 영역, heap 영역, data 영역에 배치된 데이터의 구별에 기초하여 액세스 빈도 정보를 결정하고, 컬러링 테이블을 사용하여 관리한다. 상세에 대해서는 후술한다.
1-2. 블록 선택부의 구성예
이어서, 도 2를 사용하여, 이 실시 형태에 관한 메모리 관리 장치(3)가 갖는 블록 선택부의 구성예에 대하여 설명한다.
도시한 바와 같이, 본 예의 경우, 블록 선택부(처리부)(77)는 메모리 관리 장치(3) 중의 처리부(MPU)(7)에 배치되어 있다. 그러나, 이 예에 한정되지 않고, 블록 선택부(77)는, NAND 플래시 메모리(61 내지 6n)의 도시하지 않은 메모리 컨트롤러 상에 실장되어도 되고, MTD(Memory Technology Device)용의 FS(File System)(예를 들어, NAND형 플래시 메모리용의 파일 시스템) 상 등에 실장되어도 물론 된다.
블록 선택부(77)는 데이터 할당부(78), 라이트 버퍼 A 내지 E(LA 내지 LE), 및 GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)를 구비하고, 후술하는 컬러링 테이블을 바탕으로 데이터의 NAND 플래시 메모리(61 내지 6n) 상의 기입처 물리 블록을 선정한다.
데이터 할당부(78)는, NAND 플래시 메모리(61 내지 6n)에의 데이터 기입 동작시에, 기입 대상의 데이터에 대하여, 상기 데이터의 데이터 속성에 의해 결정되는 기입 빈도에 대한 정보에 기초하여, NAND 플래시 메모리(61 내지 6n) 상의 기입 영역의 할당을 행하여, 데이터의 갱신 빈도 및 소거 빈도를 나타내는 변수에 대응하여 배치된 라이트 버퍼 A 내지 E(LA 내지 LE)를 선택한다. 데이터의 갱신 빈도 및 소거 빈도는, 컬러링 테이블을 바탕으로 작성된다. 상세에 대해서는 후술한다. 또한, 데이터 할당부(78)는 GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 대해서도 마찬가지로 선택한다. 상세에 대해서는 후술한다.
라이트 버퍼 A 내지 E(LA 내지 LE)는, 컬러링 테이블에 의해 산출된 갱신 빈도를 나타내는 변수(0 내지 n의 범위)에 대응하여, n개분만큼 배치된다. 환언하면, 각 라이트 버퍼 A 내지 E(LA 내지 LE)는, 갱신 빈도를 나타내는 변수에 대응한다. 본 예의 경우, 갱신 빈도를 나타내는 변수에 대응하여, 5개의 라이트 버퍼 A 내지 E(LA 내지 LE)가 배치되는 예를 나타낸다.
GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 대해서도, 상기 라이트 버퍼와 마찬가지로 컬러링 테이블에 기초하여 산출된 갱신 빈도를 나타내는 변수에 대응하여, 복수(본 예에서는 3개)개분 배치된다.
블록 선택부(77)는, 상기 구성에 있어서, 추기 방식에 의해 임의의 타이밍(MPU에 태스크가 할당되어 있지 않을 때)에서, 라이트 버퍼 A 내지 E(LA 내지 LE) 및 GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)의 내용을 논리 블록(LEB)에, 데이터의 비동기 기입을 행한다. 또한, 라이트 버퍼 A 내지 E(LA 내지 LE) 및 GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)의 내용을 논리 블록(LEB)에 기입하고자 할 때, 논리 블록(LEB)에 빈 영역이 없는 경우, 각 라이트 버퍼에 대응하는 논리 블록을 교환한다. 상세에 대해서는, 후술하는 동작 플로우에 의해 상세하게 설명한다.
1-3. 컬러링 테이블의 구성예
이어서, 도 3을 사용하여, 이 실시 형태에 관한 컬러링 테이블의 구성예에 대하여 설명한다. 컬러링 테이블(22)은, 예를 들어 메인 메모리로서 사용되는 휘발성 메모리(5)나 불휘발성 메모리(61 내지 6n) 등에 배치되는 것이다. 또한, 컬러링 테이블(22)은, 예를 들어 메모리 관리 장치(3)에 형성된 RAM(도시하지 않음)에 유지되어도 된다.
도시한 바와 같이, 본 실시 형태에 관한 컬러링 테이블(22)은, 프로세서 P1 내지 P4의 물리 어드레스(불휘발성 반도체 메모리 및 휘발성 반도체 메모리의 논리 어드레스)를 기초로 작성된 인덱스마다 컬러링 정보가 부여된다. 여기서, 프로세서 P1 내지 P4는, 프로세서 P1 내지 P4의 논리 어드레스를, 프로세서 P1 내지 P4의 물리 어드레스(불휘발성 반도체 메모리 및 휘발성 반도체 메모리의 논리 어드레스)로 변환하여, 메모리 관리 장치(3)에 송신한다.
컬러링 정보가 부여되는 데이터의 데이터 크기 단위는, 예를 들어 판독, 기입의 최소의 단위이다. 예를 들어, 판독, 기입의 최소의 단위는, NAND형 플래시 메모리(61 내지 6n)의 페이지 크기이다. 이하에 있어서, 컬러링 테이블(22)에 의해 컬러링 정보가 대응되는 데이터의 데이터 크기는 페이지 크기인 것으로서 설명하지만, 이것에 한정되는 것이 아니다. 컬러링 테이블(22)은, 데이터마다 컬러링 정보를 대응시켜, 엔트리 단위로 컬러링 정보를 저장한다. 컬러링 테이블(22)의 각 엔트리에는 인덱스가 부여되어 있다. 인덱스란, 데이터의 논리 어드레스를 기초로 생성되는 값이다.
예를 들어, 상기 메모리 관리 장치(3), 블록 선택부(77), 데이터 할당부(78) 등은 데이터를 지정하는 논리 어드레스가 제공되면, 논리 어드레스에 대응하는 인덱스에 의해 관리되고 있는 엔트리를 참조하여 컬러링 테이블(22) 중에서의 데이터의 컬러링 정보를 취득한다. 그리고, 이 컬러링 정보에 기초하여, 휘발성 메모리(DRAM)(5), 불휘발성 메모리(다치 메모리(MLC: Multi Level Cell)), 2치 메모리(SLC: Single Level Cell)(61 내지 6n)의 배치를 결정한다. 또한, 상기 불휘발성 메모리(다치 메모리(MLC: Multi Level Cell), 2치 메모리(SLC: Single Level Cell))(61 내지 6n) 내 각각에서, 본 예에 관한 데이터 할당을 행한다. 상세에 대해서는 후술한다.
컬러링 정보는, 각 데이터의 메인 메모리(64) 상의 배치 영역을 결정하는 기준으로서 사용되는 정보이며, 정적 컬러 정보와, 동적 컬러 정보를 포함한다. 정적 컬러 정보는, 컬러링 정보가 부여되는 당해 데이터의 특성(데이터 속성)에 기초하여 생성되는 정보이며, 당해 데이터의 불휘발성 메모리(61 내지 6n) 등에서의 데이터 배치(기입) 영역을 결정하는 힌트가 되는 정보이다. 동적 컬러 정보는, 데이터의 판독과 기입의 횟수와 빈도 중 적어도 한쪽을 포함하는 정보이다.
정적 컬러 정보는, 당해 데이터의 중요도, 정적 기입 빈도를 나타내는 값 SW_color, 정적 판독 빈도를 나타내는 SR_color, 데이터 수명 SL_color, 데이터가 생성된 시각 ST_color를 포함한다.
중요도란, 데이터의 종류 등에 기초하여, 당해 데이터의 중요성을 추측하여 설정되는 값이다. 중요도는, 예를 들어 파일 시스템에 유지되는 파일의 특성 또는 프로그램에 1차적으로 사용되는 영역의 특성에 의해 추측된다.
정적 기입 빈도 SW_color란, 데이터의 종류 등에 기초하여, 당해 데이터가 기입되는 빈도를 추측하여 설정되는 값이다. 예를 들어, 정적 기입 빈도 SW_color는, 기입 빈도가 높다고 추측되는 데이터일수록 높은 값이 설정된다. 본 예의 경우, 상기 데이터 할당부(78)는, 컬러링 테이블(22) 중의 정적 기입 빈도 SW_color를 갱신 빈도를 나타내는 변수로서 참조하고, 이 변수에 기초하여 라이트 버퍼 A 내지 E(LA 내지 LE)에 데이터의 할당을 행한다. 이것에 한정되지 않고, 데이터 할당부(78)는, 정적 기입 빈도 SW_color를 갱신 빈도를 나타내는 변수에 근사하여 단계를 저감시킨 변수를 사용하여, 데이터 할당을 행하여도 된다.
정적 판독 빈도 SR_color란, 데이터의 종류 등에 기초하여, 당해 데이터가 판독되는 빈도를 추측하여 설정되는 값이다. 예를 들어, 정적 판독 빈도 SR_color는, 판독 빈도가 높다고 추측되는 데이터일수록 높은 값이 설정된다.
데이터 수명 SL_color란, 데이터의 종류 등에 기초하여, 당해 데이터가 소거되지 않고 데이터로서 사용되는 기간(데이터의 수명)을 추측하여 설정되는 값이다.
정적 컬러 정보는, 데이터를 생성하는 프로그램(프로세스)에 의해, 정적으로 미리 결정된 값이다. 또한, 게스트 OS가, 데이터의 파일 확장자 또는 파일 헤더 등에 기초하여 정적 컬러 정보를 예측하여도 된다.
동적 컬러 정보는, 데이터의 기입 횟수 DWC_color, 데이터의 판독 횟수 DRC_color를 포함한다.
데이터의 기입 횟수 DWC_color란, 당해 데이터가 불휘발성 메모리(61 내지 6n)에 기입된 횟수이다.
데이터의 판독 횟수 DRC_color란, 당해 데이터가 불휘발성 메모리(61 내지 6n)로부터 판독된 횟수이다. 메모리 관리 장치(3)는, 데이터의 기입 횟수 DWC_color에 의해, 데이터마다, 당해 데이터가 불휘발성 메모리(61 내지 6n)에 기입된 횟수를 관리한다. 데이터 판독 횟수 DRC_color에 의해, 메모리 관리 장치(3)는 데이터마다, 당해 데이터가 불휘발성 메모리(61 내지 6n)로부터 판독된 횟수를 관리한다. 전술한 바와 같이, 불휘발성 메모리(61 내지 6n)는 메인 메모리로서 사용된다. 이로 인해, 프로세서 P1 내지 P4에서 처리되는 데이터는, 불휘발성 메모리(61 내지 6n)에 기입되고, 불휘발성 메모리(61 내지 6n)로부터 판독된다.
메모리 관리 장치(3)는 데이터가 기입될 때마다, 당해 데이터의 기입 횟수 DWC_color를 인크리먼트한다. 또한, 메모리 관리 장치(3)는, 데이터가 판독될 때마다, 당해 데이터의 판독 횟수 DRC_color를 인크리먼트한다.
상기한 바와 같이, 데이터의 갱신 빈도는 컬러링 테이블(22)로부터 산출된다. 또한, 본 실시 형태에 있어서, 「갱신 빈도」란, 프로세서 P1 내지 P4 등에 의해 데이터가 변경(갱신)되는 빈도를 의미한다.
또한, 본 실시 형태에서는, 후술하는 가비지 콜렉션 동작시에, 컬러링 테이블(22) 중의, 데이터의 기입 횟수 DWC_color 및 데이터 판독 횟수 DRC_color를 참조함으로써, 불휘발성 메모리(61 내지 6n)의 데이터 기입 및 데이터 판독이 기록된 시각을 참조하여, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)의 데이터 할당을 행한다. 그로 인해, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에서 사용하는 최종 액세스 시각이, 컬러링 테이블(22) 중의 데이터의 기입 횟수 DWC_color 및 데이터 판독 횟수 DRC_color에 더하여진다. 상기 최종 액세스 시각에는, 마지막에 데이터 기입 및 데이터 판독이 행해진 시각이 기록된다.
<2. 데이터 기입 동작>
2-1. 데이터 기입 동작 플로우
이어서, 도 4를 따라서, 본 실시 형태에 관한 정보 처리 장치의 데이터 기입 동작에 대하여 설명한다.
(스텝 ST11)
도시한 바와 같이, 우선, 스텝 ST11일 때, 블록 선택부(77) 중의 데이터 할당부(78)는, 상기 도 3에 나타낸 컬러링 테이블(22)을 참조한다. 보다 구체적으로는, 본 예의 경우, 데이터 할당부(78)는, 컬러링 테이블(22) 중의 정적 기입 빈도 SW_color를 갱신 빈도를 나타내는 변수로서 참조한다.
(스텝 ST12)
계속해서, 스텝 ST12일 때, 데이터 할당부(78)는, 참조한 컬러링 테이블(22)에 기초하여 갱신 빈도를 나타내는 변수를 산출한다. 보다 구체적으로는, 데이터 할당부(78)는, 참조한 상기 정적 기입 빈도 SW_color에 기초하여, 갱신 빈도를 나타내는 변수(본 예의 경우, 변수: 0 내지 4)를 산출한다. 그러나, 본 예의 경우에 한정되지 않고, 데이터 할당부(78)는 정적 기입 빈도 SW_color를 갱신 빈도를 나타내는 변수에 근사하여 단계를 저감시킨 변수를 산출하여도 된다. 예를 들어, 상기 정적 기입 빈도 SW_color를 갱신 빈도를 나타내는 변수에 근사하여 단계를 저감시킨 변수란, 4개의 제1 내지 제4 라이트 버퍼가 배치되고, 변수가 0 내지 7이 된 경우에, 변수 0 내지 1을 제1 라이트 버퍼, 변수 2 내지 3을 제2 라이트 버퍼, 변수 4 내지 5를 제3 라이트 버퍼, 변수 6 내지 7을 제4 라이트 버퍼로 각각 단계를 줄인 변수를 말한다.
(스텝 ST13)
계속해서, 스텝 ST13일 때, 데이터 할당부(78)는, 상기 스텝 ST12에 있어서 산출한 갱신 빈도를 나타내는 변수에 기초하여, 이 변수에 대응하는 라이트 버퍼를 결정한다.
본 예의 경우, 데이터 할당부(78)는, 상기 스텝 ST12에 있어서 산출된 갱신 빈도를 나타내는 변수(0 내지 4)에 기초하여, 변수(0 내지 4)에 대응하는 라이트 버퍼 A 내지 E(LA 내지 LE)를 결정한다. 갱신 빈도를 나타내는 변수(0 내지 4)는, 본 예의 경우, 순차적으로 변수가 커질수록 갱신 빈도가 낮아지는 것으로 한다. 그로 인해, 변수(0 내지 4)에 대응하는 라이트 버퍼 A 내지 E(LA 내지 LE)는, 순차적으로 갱신 빈도가 낮아진다. 즉, 본 예의 경우에서는 라이트 버퍼 A(LA)에 가장 갱신 빈도가 높은 데이터가 할당된다.
(스텝 ST14)
계속해서, 스텝 ST14일 때, 블록 선택부(77)는, 라이트 버퍼 A 내지 E(LA 내지 LE)에 대응하는, 논리 블록(LEB)의 빈 영역이 충분한지의 여부에 대하여 판정한다.
(스텝 ST15)
계속해서, 스텝 ST15일 때, 블록 선택부(77)는, 상기 스텝 ST14일 때에 논리 블록(LEB)의 빈 영역이 충분하지 않다('아니오')고 판정된 경우, 대응하는 논리 블록(LEB)을 변경하고, 다시 상기 스텝 ST14로 복귀된다.
(스텝 ST16)
계속해서, 스텝 ST16일 때, 블록 선택부(77)는, 상기 스텝 ST14일 때에 논리 블록(LEB)의 빈 영역이 충분하다('예')고 판정된 경우, 「추기 방식」에 의해 논리 블록(LEB)에 라이트 버퍼 A 내지 E(LA 내지 LE)에 할당된 데이터의 기입 지시를 행한다(End).
또한, 계속해서, 논리 블록(LEB)에 추기 방식으로 기입된 데이터는, 도시하지 않은 논리 물리 변환 테이블이 참조됨으로써, 불휘발성 메모리(61 내지 6n)의 대응하는 물리 어드레스의 물리 블록에, 마찬가지의 「추기 방식」에 의해 기입된다.
이상과 같이, 기입 대상의 데이터에 대하여, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도에 대한 정보에 기초하여, 불휘발성 반도체 메모리(61 내지 6n) 상의 기입 영역을 할당한다.
2-2. 가비지 콜렉션 동작 플로우
이어서, 도 5를 따라, 본 실시 형태에 관한 정보 처리 장치의 가비지 콜렉션 동작에 대하여 설명한다.
본 실시 형태에서는 데이터의 가비지 콜렉션(GC: Garbage collection)에 대해서도, 상기 컬러링 테이블(22)을 사용하여 데이터 할당을 행하고, 추기 방식으로 데이터 기입을 행한다. 여기서, 「추기 방식」으로 기입된 데이터가 갱신된 경우, 그 데이터가 존재하는 블록 페이지에 마크(무효 데이터)를 부여하고, 갱신된 데이터는 다른 블록(동일 블록에서도 가능)의 다른 페이지에 배치된다. 바꾸어 말하면, 이러한 무효 데이터가 된 영역은 더티(Dirty) 영역이 된다. 따라서, 논리 블록(LEB) 중의 더티(Dirty) 영역이 증가한 경우, 가비지 콜렉션에 의해, 무효 데이터로 되어 있지 않은 유효 데이터를, 다른 논리 블록(LEB)에 추기 방식으로 기입하도록 지시하고, 이동시킨다. 이 결과, 더티 영역이 증가하고 있는 논리 블록(LEB)을 소거 대상으로 하여, 더티 영역이 증가하고 있는 논리 블록을 재이용 가능하게 하는 처리이다. 가비지 콜렉션 동작에 의해, 불휘발성 메모리(61 내지 6n)의 유효 이용의 영역이 증가하므로, 조각화를 더 개선할 수 있다.
본 예의 경우, 이 가비지 콜렉션 동작은, 메모리 관리 장치(3) 중의 처리부(MPU)(7)가 아이들 상태일 때에 기동하는 것이다.
(스텝 ST21)
도시한 바와 같이, 우선, 스텝 ST21일 때, 블록 선택부(77) 중의 데이터 할당부(78)는, 정보 처리 장치 시스템(1)의 전체의 더티 영역이 임계값 이상인지의 여부를 판정한다. 정보 처리 장치 시스템(1)의 전체의 더티 영역이 임계값 이상이 아니라고 판정된 경우('아니오'), 가비지 콜렉션 동작은 필요하지 않다고 판정되어, 이 동작을 종료한다(End). 이때의 임계값은 필요에 따라 변경 가능한 것이다. 보다 구체적으로는 데이터 할당부(78)는, 예를 들어 불휘발성 메모리(61 내지 6n)의 전체 중 더티 영역이 50퍼센트 이상인지의 여부에 의해 판정한다.
(스텝 ST22)
계속해서, 스텝 ST22일 때, 상기 스텝 ST21에 있어서 정보 처리 장치 시스템(1)의 전체의 더티 영역이 임계값 이상이라고 판정된 경우('예'), 데이터 할당부(78)는, 메인 메모리 중의 더티 영역의 논리 블록(LEB)을 검색한다. 보다 구체적으로는, 데이터 할당부(78)는, 예를 들어 데이터가 존재하는 논리 블록의 리스트를 불휘발성 메모리(61 내지 6n) 상에 확보하고, 이 리스트의 엔트리에 대응하는 논리 블록을 선형으로 탐색한다.
(스텝 ST23)
계속해서, 스텝 ST23일 때, 데이터 할당부(78)는, 컬러링 테이블(22)을 참조함으로써, 가비지 콜렉션 대상의 데이터의 최종 액세스 시각을 참조한다. 보다 구체적으로는, 컬러링 테이블(22) 중의 데이터의 기입 횟수 DWC_color 및 데이터 판독 횟수 DRC_color를 참조함으로써, 가비지 콜렉션 대상의 데이터의 데이터 기입 및 데이터 판독이 기록된 시각을 참조한다.
(스텝 ST24)
계속해서, 스텝 ST24일 때, 데이터 할당부(78)는, 상기 스텝 ST23일 때에 참조한 최종 액세스 시각에 의해 갱신 가능성을 예측한다. 보다 구체적으로는, 본 예의 경우, 참조한 최종 액세스 시각에 의해 3가지의 갱신 가능성(큼, 중간, 작음)을 예측한다.
예를 들어, 이 스텝 ST24일 때의 본 예의 경우의 상기 3가지의 갱신 가능성은 이하와 같이 판정된다.
<갱신 가능성의 예측 방법예>
최종 갱신 시각이 1일 이상 전인 경우: 갱신 가능성 작음
최종 갱신 시각이 12시간 이상 전인 경우: 갱신 가능성 중간
그 이외의 경우: 갱신 가능성 큼
(스텝 ST25)
계속해서, 스텝 ST25일 때, 데이터 할당부(78)는, 상기 스텝 ST23일 때에 갱신 가능성 "큼"이라고 예측된 경우에는, GC용 라이트 버퍼 A(LA)를 선택한다.
(스텝 ST26)
계속해서, 스텝 ST26일 때, 데이터 할당부(78)는, 상기 스텝 ST23일 때에 갱신 가능성 "중간"이라고 예측된 경우에는, GC용 라이트 버퍼 B(LB)를 선택한다.
(스텝 ST27)
계속해서, 스텝 ST27일 때, 데이터 할당부(78)는, 상기 스텝 ST23일 때에 갱신 가능성 "작음"이라고 예측된 경우에는, GC용 라이트 버퍼 C(LC)를 선택한다.
(스텝 ST28)
계속해서, 스텝 ST28일 때, 블록 선택부(77)는, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 대응하는 논리 블록(LEB)의 빈 영역이 충분한지의 여부를 판정한다.
(스텝 ST29)
계속해서, 스텝 ST29일 때, 블록 선택부(77)는, 상기 스텝 ST28에 있어서 GC용 라이트 버퍼 A 내지 C에 대응하는 논리 블록(LEB)의 빈 영역이 충분하지 않다고 판정된 경우('아니오'), 대응하는 논리 블록(LEB)을 변경한다.
(스텝 ST30)
계속해서, 스텝 ST30일 때, 블록 선택부(77)는, 상기 스텝 ST28에 있어서 GC용 라이트 버퍼 A 내지 C에 대응하는 논리 블록(LEB)의 빈 영역이 충분히 있다고 판정된 경우('예'), 마찬가지로 추기 방식에 의해 논리 블록(LEB)에 GC용 라이트 버퍼 A 내지 C에 할당된 데이터의 기입을 행하여, 이 동작을 종료한다(End).
또한, 계속해서, 논리 블록(LEB)에 추기 방식으로 기입된 데이터는, 도시하지 않은 메모리 컨트롤러에 의해, 논리 물리 변환 테이블을 참조함으로써, 불휘발성 메모리(61 내지 6n)의 대응하는 물리 어드레스의 물리 블록에, 마찬가지의 추기 방식에 의해 기입된다.
상기한 바와 같이, 본 실시 형태에서는 가비지 콜렉션 동작시에 컬러링 테이블(22)을 참조함으로써, 마지막에 액세스된 시각으로부터, 금후 액세스될 가능성을 예측한 후에, 이동처의 논리 블록(LEB)을 결정할 수 있다. 마지막에 액세스된 시각이 최근의 것일수록, 금후 갱신될 가능성이 높다고 판단할 수 있기 때문이다. 그로 인해, 상기 본 예에 관한 추기 방식의 데이터 기입 동작에 추가한, 이 가비지 콜렉션 동작에 의해 불휘발성 메모리(61 내지 6n)의 유효 이용의 영역이 증가하므로, 조각화를 더 개선할 수 있다.
<3. 작용 효과>
본 실시 형태에 관한 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법에 따르면, 적어도 하기 (1) 내지 (2)의 효과가 얻어진다.
(1) 조각화의 발생을 억제할 수 있어, 메모리의 유효 이용에 유리하다.
상기한 바와 같이, 본 예에 관한 메모리 관리 장치(3)는, 데이터 기입 동작시에, 데이터 할당부(78)가 컬러링 테이블(22)을 참조하는 것에 의한 데이터의 속성으로부터 데이터의 갱신 빈도를 예측하고, 변수에 기초하여 이 변수에 대응하는 라이트 버퍼를 결정한다(ST13). 또한, 변수에 대응하는 라이트 버퍼를 결정할 때에는, 데이터의 갱신 빈도에 한정되지 않고, 데이터의 소거 빈도 등이어도 된다.
본 예의 경우, 데이터 할당부(78)는, 상기 스텝 ST12에 있어서 산출된 갱신 빈도를 나타내는 변수(0 내지 4)에 기초하여, 변수(0 내지 4)에 대응하는 라이트 버퍼 A 내지 E(LA 내지 LE)를 결정한다. 갱신 빈도를 나타내는 변수(0 내지 4)는, 본 예의 경우, 순차적으로 변수가 커질수록 갱신 빈도가 낮아지는 것으로 한다. 그로 인해, 변수(0 내지 4)에 대응하는 라이트 버퍼 A 내지 E(LA 내지 LE)는, 순차적으로 갱신 빈도가 낮아진다. 즉, 본 예의 경우에서는, 라이트 버퍼 A(LA)가 가장 갱신 빈도가 높은 데이터가 할당된다.
또한, 메모리 관리 장치(3)는 「추기 방식」에 의해, 논리 블록(LEB)에 라이트 버퍼 A 내지 E(LA 내지 LE)에 할당된 데이터의 기입을 행한다(ST16).
그 결과, 불휘발성 메모리(61 내지 6n)에는, 대응하는 물리 어드레스의 물리 블록(PEB)에 마찬가지의 추기 방식에 의해 갱신 빈도에 따른 데이터가 블록마다 집합하여 기입된다.
예를 들어, 본 예에 관한 추기 방식에 의한 데이터 기입 후의 물리 블록(PEB)은 도 6과 같이 도시된다.
도시한 바와 같이, 물리 블록 1(PEB1)에는, 갱신 빈도가 낮은 데이터 B1 내지 B3이 물리 어드레스 PAA00 내지 PAA11에 각각 기입되어 있다.
물리 블록 2(PEB2)에는, 갱신 빈도가 낮은 데이터 B4가 물리 어드레스 PAA00에 기입되어 있다.
물리 블록 3(PEB3)은 빈 물리 블록이다.
물리 블록 4(PEB4)에는, 갱신 빈도가 보다 높은 데이터 A1 내지 A3이 물리 어드레스 PAA00 내지 PAA11에 각각 기입되어 있다.
물리 블록 5(PEB5)에는, 갱신 빈도가 보다 높은 데이터 A4가 물리 어드레스 PAA00에 기입되어 있다.
이와 같이, 본 예에 관한 추기 방식의 데이터 기입 동작에 따르면, 갱신 빈도에 따라서 데이터를 불휘발성 메모리(61 내지 6n)의 물리 블록(PEB)마다 할당할 수 있다.
더불어, 본 예에 관한 메모리 관리 장치(3)는, 가비지 콜렉션 동작시에 있어서도, 컬러링 테이블(22)을 사용하여 데이터 할당을 행하고(ST24), 추기 방식으로 데이터 기입을 행한다(ST30).
상기 스텝 ST24일 때의 컬러링 테이블(22)을 사용한 데이터 할당은, 참조한 최종 액세스 시각에 의해 갱신 가능성을 예측함으로써 행해진다. 보다 구체적으로는, 본 예의 경우, 참조한 최종 액세스 시각에 의해, 이하의 3가지 갱신 가능성(큼, 중간, 작음)을 예측하고, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 각각 할당된다.
그 결과, 예를 들어 본 예에 관한 데이터 A(갱신 빈도가 높음)를 갱신한 후의 물리 블록(PEB)은, 도 7과 같이 도시된다.
도시한 바와 같이, 우선, 갱신 빈도가 높은 데이터 A1 내지 A4가 모여 할당된 물리 블록 4(PEB4) 및 물리 블록 5(PEB5)에서는, 데이터 A1 내지 A4가 갱신되기 때문에, 데이터 A1 내지 A4가 데이터 B1 내지 B4보다도 우선 먼저, 다른 물리 블록(여기서는 도시하지 않음)으로 이동된다.
계속해서, 갱신 빈도가 낮은 데이터 B1 내지 B4가 모여 할당된 물리 블록 1(PEB1) 및 물리 블록 2(PEB2)에서는, 데이터 B1 내지 B4가 갱신되기 때문에, 데이터 B1 내지 B4가 데이터 A1 내지 A4에 이어서, 다른 물리 블록으로 이동된다(여기서는 도시하지 않음).
이와 같이, 추기 방식에 있어서, 갱신 빈도에 따라서 할당된 데이터가 물리 블록마다 모여 기입되기 때문에, 더티 영역의 발생을 억제할 수 있고, 조각화의 발생을 방지할 수 있다.
[비교예]
한편, 비교예로서, 추기 방식에 있어서, 본 예와 같은 상기 데이터 속성에 기초하여 데이터 할당을 행하지 않는 경우의 데이터 기입 후의 물리 블록(PEB)은, 예를 들어 도 8과 같이 도시된다.
도시한 바와 같이, 비교예에서는 갱신 빈도마다 데이터가 할당되지 않고, 데이터가 물리 블록에 기입된다.
그로 인해, 예를 들어 물리 블록 1(PEB1)에는, 갱신 빈도가 낮은 데이터 B1, B2 및 갱신 빈도가 높은 데이터 A1이 물리 어드레스 PAA00 내지 PAA11에 랜덤하게 기입되어 있다.
물리 블록 2(PEB2)에는, 갱신 빈도가 낮은 데이터 B3, B4 및 갱신 빈도가 높은 데이터 A2가 물리 어드레스 PAA00 등에 랜덤하게 기입되어 있다.
물리 블록 3(PEB3)에는, 갱신 빈도가 높은 데이터 A1만이 물리 어드레스 PAA00에 기입되어 있다.
물리 블록 4(PEB4)에는, 갱신 빈도가 높은 데이터 A4만이 물리 어드레스 PAA11에 랜덤하게 기입되어 있다.
물리 블록 5(PEB5)는 빈 물리 블록이다.
이와 같이, 비교예에 관한 데이터 기입 동작에 따르면, 갱신 빈도에 데이터가 할당되지 않고, 물리 블록(PEB)에 데이터가 기입되어 있다.
그 결과, 그 후, 물리 블록(PEB)에 랜덤 기입된 데이터는, 갱신 빈도마다 다른 블록으로 이동되기 때문에, 갱신마다 랜덤한 더티 영역이 발생한다.
예를 들어, 비교예에 관한 데이터 A(갱신 빈도가 높음)를 갱신한 후의 물리 블록(PEB)은, 도 9와 같이 도시된다.
도시한 바와 같이, 우선, 갱신 빈도가 높은 데이터 A1 내지 A4가 기입된 물리 블록 1 내지 4(PEB1 내지 PEB4)에 있어서 갱신되기 때문에, 데이터 A1 내지 A4가 데이터 B1 내지 B4보다도 우선 먼저, 다른 물리 블록(여기서는 도시하지 않음)으로 이동된다.
그로 인해, 더티 영역이 증대하여, 조각화가 발생하는 점에서 불리하다.
예를 들어, 도시하는 비교예에서는, 갱신 빈도가 높은 데이터 A1 내지 A4가 갱신되면, 물리 블록 1, 2(PEB1, 2) 중에는 2개의 더티 영역이 증대되기 때문에, 조각화가 발생한다. 이러한 경우에는 계속되는 데이터 B1 내지 B4의 갱신의 경우에서도 마찬가지로 발생할 수 있다.
(2) 기입 효율(WA) 및 정보 처리 장치(1)의 시스템 전체의 성능을 향상시킬 수 있다.
상기한 바와 같이, 본 예에 관한 메모리 관리 장치(3)는, 가비지 콜렉션 동작시에 있어서도, 컬러링 테이블(22)을 사용하여 데이터 할당을 행하고(ST24), 추기 방식으로 데이터 기입을 행한다(ST30).
상기 스텝 ST24일 때의 컬러링 테이블(22)을 사용한 데이터 할당은, 참조한 최종 액세스 시각에 의해 갱신 가능성을 예측함으로써 행해진다. 보다 구체적으로는, 본 예의 경우, 참조한 최종 액세스 시각에 의해, 이하의 3가지 갱신 가능성(큼, 중간, 작음)을 예측하고, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 각각 할당된다.
<갱신 가능성의 예측 방법예>
최종 갱신 시각이 1일 이상 전인 경우: 갱신 가능성 작음
최종 갱신 시각이 12시간 이상 전인 경우: 갱신 가능성 중간
그 이외의 경우: 갱신 가능성 큼
GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 할당된 데이터는, 상기와 마찬가지로 추기 방식에 의해 불휘발성 메모리(61 내지 6n)의 물리 블록(PEB)에 기입된다.
그로 인해, 상기 데이터 기입 동작 외에, 무효 데이터가 많은 물리 블록 중의 유효 데이터를 다른 물리 블록으로 이동하고, 무효 데이터가 많은 물리 블록을 소거 가능하게 하여, 불휘발성 메모리(61 내지 6n) 중의 유효 영역을 늘릴 수 있는 점에서 유리하다.
여기서, 가비지 콜렉션이 지나치게 많아지는 것은, 기입 효율(WA: Write Amplification)의 향상의 관점에서는 바람직하지 않다. 가비지 콜렉션이 증대되면, 불휘발성 메모리(NAND형 플래시 메모리)(61 내지 6n)의 특성이나, 시스템의 실장 방식에 의해 발생하는 기입의 증량분이 필요해지기 때문에, 기입 효율(WA)이 저감하기 때문이다. 더불어, 가비지 콜렉션이 다발하면, 가비지 콜렉션 처리에 대하여 MMU41 내지 MMU44를 많이 사용할 필요가 있어, 정보 처리 장치(1)의 시스템 전체의 성능 열화로 연결된다.
예를 들어, 상기 도 9에 도시한 비교예의 경우에서는, 덮어쓰기 방식에 의해 물리 블록(PEB)에 데이터가 기입되기 때문에, 물리 블록 1, 2(PEB1, 2)에 2개의 더티 영역이 발생한다. 그 결과, 더티 영역의 발생시마다, 가비지 콜렉션 동작이 필요해지고, 기입 효율(WA)이 저감하여, 정보 처리 장치(1)의 시스템 전체의 성능이 열화되는 점에서 불리하다.
이에 대해 본 예에서는, 상기 도 7에 도시한 바와 같이, GC용 라이트 버퍼 A 내지 C(GCLA 내지 GCLC)에 할당된 데이터는, 추기 방식에 의해 불휘발성 메모리(61 내지 6n)의 물리 블록(PEB)에 기입되기 때문에, 더티 영역의 발생을 억제할 수 있으므로, 가비지 콜렉션 동작이 많아지는 일도 없다. 그 결과, 기입 효율(WA)을 향상시킬 수 있고, 정보 처리 장치(1)의 시스템 전체의 성능을 향상시킬 수 있는 점에서 유리하다.
보다 구체적으로, 본 실시 형태 및 비교예에서의 더티 영역 크기는, 예를 들어 도 10과 같이 도시된다. 도 10에서는 시간(1/10분)과 데이터량(Byte)의 관계에 있어서, 실선은 본 예(상기 조각화 억제 유(有))의 경우를 나타내고, 파선은 비교예(상기 조각화 억제 무(無))의 경우를 나타내고 있다. 여기서, 도 10 중, time 7[1/10분] 근방에 있어서, 모두 더티 영역의 데이터량이 작게 되어 있는 것은, 유효 데이터가 소거되면, 일시적으로 더티 영역이 해방되는 경우가 있기 때문이다.
도시한 바와 같이, 어느 시간(1 내지 15)[1/10분])에 있어서도, 본 예의 쪽이 비교예에 비하여 더티 영역의 데이터량을 크게 저감할 수 있는 것은 명확하다.
본 발명의 소정 실시 형태를 설명하였지만, 이들 실시 형태는 단지 예로서 제시된 것으로 발명의 범위를 제한하려는 것은 아니다. 실제로, 본 명세서에 기재된 실시 형태는 다양한 다른 형태로 구현될 수 있다. 또한, 본 발명의 사상으로부터 일탈하지 않는 범위 내에서, 본 명세서에 기재된 실시 형태에 있어서 각종 생략, 치환 및 변경을 행할 수 있다. 첨부하는 청구범위 및 그 균등물은, 본 발명의 범위 및 사상 내에 들어가는 이러한 형태 또는 수정을 포함시키기 위한 것이다.
Claims (16)
- 불휘발성 반도체 메모리를 관리하는 메모리 관리 장치로서,
기입 대상 데이터가 저장되는 제1 버퍼 및 제2 버퍼와,
상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 상기 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 상기 제2 버퍼에 기입하는 할당부와,
상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 제어부를 포함하는, 메모리 관리 장치. - 제1항에 있어서,
가비지 콜렉션용의 제3 버퍼 및 제4 버퍼를 더 구비하고,
상기 할당부는 상기 불휘발성 반도체 메모리 상의 데이터의 가비지 콜렉션 동작시에, 가비지 콜렉션 대상 데이터의 갱신 가능성 정보에 기초하여, 제1 갱신 가능성의 제1 가비지 콜렉션 대상 데이터를 상기 제3 버퍼에 기입하고, 제1 갱신 가능성보다 갱신 가능성이 낮은 제2 갱신 가능성의 제2 가비지 콜렉션 대상 데이터를 상기 제4 버퍼에 기입하고
상기 제어부는 상기 제3 버퍼에 저장된 제1 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제3 블록에 대하여 추기 방식으로 기입하고, 상기 제4 버퍼에 저장된 제2 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제4 블록에 대하여 추기 방식으로 기입하는, 메모리 관리 장치. - 제1항에 있어서,
데이터마다의 속성 정보를 저장하는 속성 정보 테이블을 더 구비하고, 상기 할당부는 상기 속성 정보를 참조하는, 메모리 관리 장치. - 제1항에 있어서,
상기 불휘발성 반도체 메모리는 메인 메모리로서 이용되는, 메모리 관리 장치. - 제1항에 있어서,
상기 불휘발성 반도체 메모리는 NAND 플래시 메모리이고, 상기 제1 및 제2 블록은 각각 상기 NAND 플래시 메모리의 소거 단위인, 메모리 관리 장치. - 삭제
- 삭제
- 정보 처리 장치로서,
불휘발성 반도체 메모리를 관리하는 메모리 관리 장치 - 상기 메모리 관리 장치는, 기입 대상 데이터가 저장되는 제1 버퍼 및 제2 버퍼와, 상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 상기 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 상기 제2 버퍼에 기입하는 할당부와, 상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 제어부를 포함함 - 와,
버스를 통하여 상기 메모리 관리 장치와 전기적으로 접속되는 프로세서를 포함하는, 정보 처리 장치. - 제8항에 있어서,
가비지 콜렉션용의 제3 버퍼 및 제4 버퍼를 더 구비하고,
상기 할당부는 상기 불휘발성 반도체 메모리 상의 데이터의 가비지 콜렉션 동작시에, 가비지 콜렉션 대상 데이터의 갱신 가능성 정보에 기초하여, 제1 갱신 가능성의 제1 가비지 콜렉션 대상 데이터를 상기 제3 버퍼에 기입하고, 제1 갱신 가능성보다 갱신 가능성이 낮은 제2 갱신 가능성의 제2 가비지 콜렉션 대상 데이터를 상기 제4 버퍼에 기입하고,
상기 제어부는 상기 제3 버퍼에 저장된 제1 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제3 블록에 대하여 추기 방식으로 기입하고, 상기 제4 버퍼에 저장된 제2 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제4 블록에 대하여 추기 방식으로 기입하는, 정보 처리 장치. - 제8항에 있어서,
데이터마다의 속성 정보를 저장하는 속성 정보 테이블을 더 구비하고, 상기 할당부는 상기 속성 정보를 참조하는, 정보 처리 장치. - 제8항에 있어서,
상기 불휘발성 반도체 메모리는 메인 메모리로서 이용되는, 정보 처리 장치. - 제8항에 있어서,
상기 불휘발성 반도체 메모리는 NAND 플래시 메모리이고, 상기 제1 및 제2 블록은 각각 상기 NAND 플래시 메모리의 소거 단위인, 정보 처리 장치. - 불휘발성 반도체 메모리를 관리하는 방법으로서,
상기 불휘발성 반도체 메모리에의 데이터 기입 동작시에, 기입 대상의 데이터의 데이터 속성에 의해 결정되는 기입 빈도 정보에 기초하여, 제1 기입 빈도의 제1 기입 대상 데이터를 제1 버퍼에 기입하고, 상기 제1 기입 빈도보다 기입 빈도가 낮은 제2 기입 빈도의 제2 기입 대상 데이터를 제2 버퍼에 기입하는 단계와,
상기 제1 버퍼에 저장된 상기 제1 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제1 블록에 대하여 추기 방식으로 기입하고, 상기 제2 버퍼에 저장된 상기 제2 기입 대상 데이터를 상기 불휘발성 반도체 메모리의 제2 블록에 기입하는 단계를 포함하는, 메모리 관리 방법. - 제13항에 있어서, 상기 추기 방식에 의해 상기 불휘발성 반도체 메모리에 기입하기 전에, 상기 불휘발성 반도체 메모리 상의 기입 영역의 빈 영역이 충분한지의 여부를 판정하는 단계와,
상기 빈 영역이 충분하지 않다고 판정된 경우, 상기 기입 영역을 변경하는 단계를 더 포함하는, 메모리 관리 방법. - 제13항에 있어서,
상기 불휘발성 반도체 메모리 상의 데이터의 가비지 콜렉션 동작시에, 가비지 콜렉션 대상 데이터의 갱신 가능성 정보에 기초하여, 제1 갱신 가능성의 제1 가비지 콜렉션 대상 데이터를 제3 버퍼에 기입하고, 제1 갱신 가능성보다 갱신 가능성이 낮은 제2 갱신 가능성의 제2 가비지 콜렉션 대상 데이터를 제4 버퍼에 기입하는 단계와,
상기 제3 버퍼에 저장된 제1 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제3 블록에 대하여 추기 방식으로 기입하고, 상기 제4 버퍼에 저장된 제2 가비지 콜렉션 대상 데이터를 상기 불휘발성 반도체 메모리의 제4 블록에 대하여 추기 방식으로 기입하는 단계를 더 포함하는, 메모리 관리 방법. - 제15항에 있어서, 상기 추기 방식에 의해 상기 불휘발성 반도체 메모리에 기입하기 전에, 상기 불휘발성 반도체 메모리 상의 기입 영역의 빈 영역이 충분한지의 여부를 판정하는 단계와,
상기 빈 영역이 충분하지 않다고 판정된 경우, 상기 기입 영역을 변경하는 단계를 더 포함하는, 메모리 관리 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2010-172050 | 2010-07-30 | ||
JP2010172050A JP2012033002A (ja) | 2010-07-30 | 2010-07-30 | メモリ管理装置およびメモリ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120012375A KR20120012375A (ko) | 2012-02-09 |
KR101270281B1 true KR101270281B1 (ko) | 2013-05-31 |
Family
ID=45527881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110022855A KR101270281B1 (ko) | 2010-07-30 | 2011-03-15 | 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120030413A1 (ko) |
JP (1) | JP2012033002A (ko) |
KR (1) | KR101270281B1 (ko) |
CN (1) | CN102346712A (ko) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2455865B1 (en) | 2009-07-17 | 2020-03-04 | Toshiba Memory Corporation | Memory management device |
JP2011128792A (ja) | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
US8782370B2 (en) * | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
JP2013174975A (ja) | 2012-02-23 | 2013-09-05 | Toshiba Corp | メモリシステムとそのデータ書き込み方法 |
CN102799535A (zh) * | 2012-06-29 | 2012-11-28 | 记忆科技(深圳)有限公司 | 固态硬盘的数据处理方法及固态硬盘 |
KR101920500B1 (ko) | 2012-06-29 | 2018-11-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
JP6041610B2 (ja) * | 2012-10-02 | 2016-12-14 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体 |
JP2014078128A (ja) * | 2012-10-10 | 2014-05-01 | Canon Inc | 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体 |
US9430376B2 (en) * | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
US10042750B2 (en) * | 2013-03-15 | 2018-08-07 | Micron Technology, Inc. | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor |
JP6335616B2 (ja) * | 2013-04-30 | 2018-05-30 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JP6165008B2 (ja) * | 2013-09-25 | 2017-07-19 | キヤノン株式会社 | メモリ制御装置、メモリ制御方法、情報機器及びプログラム |
JP6139711B2 (ja) * | 2014-02-03 | 2017-05-31 | 株式会社日立製作所 | 情報処理装置 |
WO2015118623A1 (ja) * | 2014-02-05 | 2015-08-13 | 株式会社日立製作所 | 情報処理装置 |
US20190087599A1 (en) * | 2014-04-02 | 2019-03-21 | International Business Machines Corporation | Compressing a slice name listing in a dispersed storage network |
JP6320318B2 (ja) * | 2015-02-17 | 2018-05-09 | 東芝メモリ株式会社 | 記憶装置及び記憶装置を含む情報処理システム |
US10346039B2 (en) | 2015-04-21 | 2019-07-09 | Toshiba Memory Corporation | Memory system |
US9841918B2 (en) * | 2015-12-02 | 2017-12-12 | Samsung Electronics Co., Ltd. | Flash memory device including deduplication, and related methods |
JP6968016B2 (ja) | 2018-03-22 | 2021-11-17 | キオクシア株式会社 | ストレージデバイスおよびコンピュータシステム |
JP2020035128A (ja) * | 2018-08-29 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
TWI759580B (zh) * | 2019-01-29 | 2022-04-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US20210233585A1 (en) * | 2020-01-29 | 2021-07-29 | Micron Technology, Inc. | Multichip memory package with internal channel |
US11275680B2 (en) * | 2020-02-10 | 2022-03-15 | Micron Technology, Inc. | Profile and queue-based wear leveling of memory devices |
CN111552652B (zh) * | 2020-07-13 | 2020-11-17 | 深圳鲲云信息科技有限公司 | 基于人工智能芯片的数据处理方法、装置和存储介质 |
KR20220127067A (ko) | 2021-03-10 | 2022-09-19 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100938903B1 (ko) | 2007-12-04 | 2010-01-27 | 재단법인서울대학교산학협력재단 | 불규칙한 배열 접근 패턴을 갖는 애플리케이션을 대한소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터할당 방법 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416915A (en) * | 1992-12-11 | 1995-05-16 | International Business Machines Corporation | Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array |
JPH07114499A (ja) * | 1993-10-19 | 1995-05-02 | Hitachi Ltd | フラッシュメモリ仮想メモリシステム |
US5799324A (en) * | 1996-05-10 | 1998-08-25 | International Business Machines Corporation | System and method for management of persistent data in a log-structured disk array |
JPH11259370A (ja) * | 1998-03-06 | 1999-09-24 | Mitsubishi Electric Corp | データ書込装置及びデータ書込方法 |
JP2004342090A (ja) * | 2003-04-25 | 2004-12-02 | Matsushita Electric Ind Co Ltd | データ記録装置 |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR101257848B1 (ko) * | 2005-07-13 | 2013-04-24 | 삼성전자주식회사 | 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법 |
US8255628B2 (en) * | 2006-07-13 | 2012-08-28 | International Business Machines Corporation | Structure for multi-level memory architecture with data prioritization |
JP4940824B2 (ja) * | 2006-08-18 | 2012-05-30 | 富士通セミコンダクター株式会社 | 不揮発性半導体メモリ |
KR100833188B1 (ko) * | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
JP5087347B2 (ja) * | 2007-09-06 | 2012-12-05 | 株式会社日立製作所 | 半導体記憶装置及び半導体記憶装置の制御方法 |
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
US9280466B2 (en) * | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
JP4909963B2 (ja) * | 2008-09-09 | 2012-04-04 | 株式会社東芝 | 統合メモリ管理装置 |
US8402242B2 (en) * | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8463983B2 (en) * | 2009-09-15 | 2013-06-11 | International Business Machines Corporation | Container marker scheme for reducing write amplification in solid state devices |
US8296496B2 (en) * | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
US20110107042A1 (en) * | 2009-11-03 | 2011-05-05 | Andrew Herron | Formatting data storage according to data classification |
US8423520B2 (en) * | 2009-11-23 | 2013-04-16 | Dell Products L.P. | Methods and apparatus for efficient compression and deduplication |
WO2011074040A1 (en) * | 2009-12-17 | 2011-06-23 | Hitachi,Ltd. | Storage apparatus and its control method |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
JP5646633B2 (ja) * | 2010-04-12 | 2014-12-24 | 株式会社日立製作所 | ストレージ装置 |
-
2010
- 2010-07-30 JP JP2010172050A patent/JP2012033002A/ja active Pending
-
2011
- 2011-03-15 KR KR1020110022855A patent/KR101270281B1/ko not_active IP Right Cessation
- 2011-03-17 US US13/050,528 patent/US20120030413A1/en not_active Abandoned
- 2011-03-18 CN CN2011100662906A patent/CN102346712A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100938903B1 (ko) | 2007-12-04 | 2010-01-27 | 재단법인서울대학교산학협력재단 | 불규칙한 배열 접근 패턴을 갖는 애플리케이션을 대한소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터할당 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2012033002A (ja) | 2012-02-16 |
US20120030413A1 (en) | 2012-02-02 |
CN102346712A (zh) | 2012-02-08 |
KR20120012375A (ko) | 2012-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101270281B1 (ko) | 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 | |
US20230152969A1 (en) | Memory system and method of controlling memory system | |
US10310747B2 (en) | Memory management device and method | |
CN109144887B (zh) | 存储器***及控制非易失性存储器的控制方法 | |
US9678676B2 (en) | Method for storage devices to achieve low write amplification with low over provision | |
JP5295286B2 (ja) | 記憶装置およびそれを搭載した計算機 | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
KR101038167B1 (ko) | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 | |
KR101612922B1 (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
US10740013B2 (en) | Non-volatile data-storage device with spare block pools using a block clearing method | |
KR20110117099A (ko) | 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법 | |
US10310766B2 (en) | Memory system and data relocating method | |
KR102349999B1 (ko) | 반도체 장치 및 그 동작 방법 | |
TWI473100B (zh) | Flash memory system and its operation method | |
JP6697410B2 (ja) | メモリシステムおよび制御方法 | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
JP2012141946A (ja) | 半導体記憶装置 | |
JP2011070365A (ja) | メモリシステム | |
JP2010287049A (ja) | メモリシステムおよびメモリシステムの管理方法 | |
CN106598504A (zh) | 数据存储方法及装置 | |
US20130138910A1 (en) | Information Processing Apparatus and Write Control Method | |
JP2011186563A (ja) | メモリ管理装置およびメモリ管理方法 | |
JP2008197981A (ja) | 半導体記憶装置 | |
KR20150139383A (ko) | 반도체 장치 |
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 |