KR20150062039A - 반도체 장치 및 그 동작 방법 - Google Patents
반도체 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20150062039A KR20150062039A KR1020130146568A KR20130146568A KR20150062039A KR 20150062039 A KR20150062039 A KR 20150062039A KR 1020130146568 A KR1020130146568 A KR 1020130146568A KR 20130146568 A KR20130146568 A KR 20130146568A KR 20150062039 A KR20150062039 A KR 20150062039A
- Authority
- KR
- South Korea
- Prior art keywords
- address
- cache
- write
- physical address
- physical
- Prior art date
Links
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
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명에 의한 반도체 장치는 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 주소 캐시, 상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기 및 상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부를 포함한다.
Description
본 발명은 반도체 장치 및 그 동작 방법에 관한 것으로 보다 구체적으로는 반도체 메모리 장치의 웨어 레벨링 동작을 제어하는 반도체 장치 및 그 동작 방법에 관한 것이다.
낸드 플래시 메모리 장치 또는 상변이 메모리 장치 등의 반도체 메모리 장치는 하나의 셀에 대하여 수행할 수 있는 쓰기 요청의 회수가 한정되어 있다. 예를 들어 상변이 메모리 장치는 106 ~ 108 정도의 한정된 쓰기 회수를 가진다.
따라서 특정 셀 영역에 대해서 쓰기 동작이 집중되는 경우 전체 메모리 장치의 수명을 감소시킨다. 이를 방지하기 위하여 반도체 메모리 장치의 전체 셀 영역에 대해서 쓰기 동작을 균등하게 분포시키기 위한 웨어 레벨링 동작이 수행된다.
먼저, 쓰기 요청을 수행하는 단계에서 호스트로부터 제공되는 논리 주소를 물리 주소로 맵핑하고 맵핑된 물리 주소에 쓰기 요청을 수행한다. 논리 주소를 물리 주소로 맵핑하는 방법은 다양할 수 있다. 예를 들어 논리 주소와 키 데이터를 연산하여 물리 주소를 생성함으로써 맵핑을 수행할 수 있다.
웨어 레벨링을 위하여 일정한 쓰기 회수마다 전체 논리 주소에 대하여 논리 주소와 물리 주소의 맵핑 관계를 순차적으로 변경하고 한 라운드마다 전체 논리 주소에 대해서 맵핑 관계를 변경하는 방법이 제안되었다. 맵핑 관계를 변경하는 것은 연산에 사용되는 키를 변경하는 것으로 수행될 수 있다. 한 라운드 내에서 논리 주소에 대한 맵핑 관계를 변경하는 것을 재맵핑 또는 리프레시로 표현할 수 있는데 이하에서는 리프레시라는 표현을 사용한다.
이러한 종래의 웨어 레벨링 방법에서는 맵핑 관계가 변경된 논리 주소에 대해서는 다음 라운드까지 맵핑 관계가 변경되지 않는다. 따라서 맵핑 관계가 변경된 논리 주소에 대하여 쓰기 요청이 지속되는 경우라 하더라도 다음 라운드까지 맵핑 관계를 변경할 수 없다.
이러한 종래의 웨어 레벨링 방법은 전체 주소의 개수가 많아서 한 라운드를 완성하는데 걸리는 시간이 오래 걸리거나 특정 주소에 대한 쓰기 요청이 집중되는 경우에 효과가 저하되는 문제가 있다.
또한 블록 단위로 소거 동작을 수행하는 비휘발성 메모리 장치(예를 들어 낸드 플래시 메모리 장치)의 경우는 웨어 레벨링을 위하여 블록 단위로 쓰기 회수를 저장할 수 있지만 페이지 단위로 소거 동작을 수행하는 비휘발성 메모리 장치(예를 들어 상변이 메모리 장치)의 경우에는 페이지 단위로 쓰기 회수를 저장해야 하므로 상대적으로 저장 공간이 줄어드는 문제가 있다.
본 발명은 저장 공간의 낭비를 줄이고 성능이 향상된 웨어 레벨링 동작을 수행하는 반도체 장치 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 제 1 주소 캐시, 상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기 및 상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부를 포함한다.
본 발명의 일 실시예에 의한 시스템은 반도체 메모리 장치 및 상기 반도체 메모리 장치를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는 상기 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 주소 캐시, 상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및 상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부를 포함한다.
본 발명의 일 실시예에 의한 반도체 장치의 동작 방법은 쓰기 요청된 물리 주소가 제 1 주소 캐시에 존재하는지 판단하는 단계 및 상기 제 1 주소 캐시에 저장된 상기 물리 주소에 대한 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청을 쓰기 캐시에 대하여 수행하는 단계를 포함한다.
본 발명에 의한 반도체 장치를 통해 반도체 메모리 장치에 대한 웨어 레벨링 성능을 향상시켜 반도체 메모리 장치의 수명을 증가시킬 수 있다. 본 발명에 의한 반도체 장치를 통해 쓰기 회수를 저장하기 위한 저장 공간의 낭비를 줄일 수 있다.
도 1은 본 발명의 일 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도.
도 2는 본 발명의 일 실시예에 의한 주소 캐시를 나타내는 데이터 구조도.
도 3은 본 발명의 다른 실시예에 의한 주소 캐시를 나타내는 데이터 구조도.
도 4는 본 발명의 일 실시예에 의한 주소 캐시의 데이터 구조도.
도 5 내지 도 8은 본 발명의 일 실시예에 의한 반도체 장치의 동작을 나타내는 순서도.
도 2는 본 발명의 일 실시예에 의한 주소 캐시를 나타내는 데이터 구조도.
도 3은 본 발명의 다른 실시예에 의한 주소 캐시를 나타내는 데이터 구조도.
도 4는 본 발명의 일 실시예에 의한 주소 캐시의 데이터 구조도.
도 5 내지 도 8은 본 발명의 일 실시예에 의한 반도체 장치의 동작을 나타내는 순서도.
이하에서는 도면을 참조하여 본 발명의 실시예를 개시한다. 이하에서 동일한 참조 번호는 실질적으로 동일한 구성 요소를 지시한다.
도 1은 본 발명의 일 실시예에 의한 반도체 장치(1000)를 포함하는 시스템의 블록도이다.
본 발명의 일 실시예에 의한 반도체 장치(1000)는 호스트(10)로부터의 읽기 쓰기 요청을 수신하여 반도체 메모리 장치(20)를 제어한다. 반도체 메모리 장치(20)는 낸드 플래시 메모리 장치, 상변이 메모리 장치를 포함할 수 있으나 이에 한정되는 것은 아니다.
주소 맵퍼(700)는 호스트(10)로부터 요청된 논리 주소를 물리 주소로 변환한다. 예를 들어 주소 맵핑은 물리 주소와 키 데이터를 연산(예를 들어 XOR)하여 수행될 수 있다.
본 발명의 일 실시예에 의한 반도체 장치(1000)는 반도체 메모리 장치(20)에 대한 웨어 레벨링 동작을 수행할 수 있다.
예를 들어 웨어 레벨링 동작은 일정한 쓰기 회수마다 논리 주소와 물리 주소의 맵핑 관계를 변경하는 방식으로 수행할 수 있다.
맵핑 관계를 변경하는 방식은 다양할 수 있으나 본 발명의 일 실시예에서는 한 번에 두 논리 주소를 선택하고 이들에 대응하는 물리 주소를 스왑하는 방식을 사용한다.
예를 들어 논리주소 L1과 물리주소 P1, 논리주소 L2와 물리주소 P2가 맵핑된 상태인 경우 논리주소 L1과 물리주소 P2가 맵핑되도록 하고, 논리주소 L2와 물리주소 P1이 맵핑되도록 논리주소에 대응하는 물리주소를 스왑할 수 있다.
두 논리 주소에 대한 스왑 동작은 웨어 레벨링을 수행할 메모리 주소 영역 전체에 대해서 순차적으로 수행된다. 이하에서 라운드는 스왑 동작을 시작하여 메모리 주소 영역 전체에 대해서 스왑 동작을 완료하기까지의 기간을 표시한다.
이러한 웨어 레벨링 방식에서는 맵핑 관계가 변경된 물리 주소에 대하여 쓰기 요청이 지속되는 경우에도 해당 라운드가 종료되기 전까지는 맵핑 관계를 다시 변경하지 못하므로 해당 물리 주소에 대한 열화 가능성이 상존한다.
이하에서는 특정 주소에 대하여 쓰기 요청이 지속되는 상황을 해당 주소에 대하여 공격이 발생하는 것으로 표현한다.
본 발명은 이러한 경우에 대한 대응을 위하여 공격 발생 가능성이 있는 물리 주소를 별도의 캐시에 관리하고 해당 주소에 대한 쓰기 또는 읽기 요청을 해당 캐시에서 수행한다.
이를 위하여 본 발명의 일 실시예에 의한 반도체 장치(1000)는 중재부(100), 주소 감시기(200), 주소 캐시(300), 쓰기 캐시(400), 요청 큐(500) 및 명령 생성부(600)를 포함할 수 있다.
중재부(100)는 호스트(10)로부터의 요청들의 처리 순서를 정하여 요청 큐(500)에 저장하는 일반적인 역할을 수행한다. 이에 더하여 중재부(100)는 주소 캐시(300)를 참조하여 요청된 주소에 대한 공격 가능성을 판단하고 해당 요청에 대한 쓰기 요청을 쓰기 캐시(400) 장치에서 수행하도록 제어한다.
주소 감시기(200)는 요청된 물리 주소에 대한 공격 가능성을 감시하여 주소 캐시(300)에 공격 가능성이 있는 물리 주소를 저장한다.
주소 캐시(300)는 주소 감시기(200)에 의해 관리되며 공격 가능성이 있는 주소를 저장한다. 주소 캐시(300)의 데이터 구조에 대해서는 이하에서 보다 구체적으로 살펴본다.
쓰기 캐시(400)는 주소 캐시(300)에 캐시된 주소에 대응하는 데이터를 저장한다. 쓰기 캐시(400)의 데이터 구조에 대해서는 이하에서 보다 구체적으로 살펴본다.
요청 큐(500)는 중재부(200)의 제어에 의해 호스트(10)로부터의 요청들을 처리 순서에 따라 저장한다.
명령 생성부(600)는 요청 큐(500)에서 제공된 요청에 따라 반도체 메모리 장치(20)를 제어하는 명령을 생성하여 반도체 메모리 장치(20)에 제공한다.
도 2는 본 발명의 일 실시예에 의한 주소 캐시(300)의 데이터 구조를 나타낸다.
본 발명의 일 실시예에 의한 주소 캐시(300)는 유효 필드(311), 주소 필드(312), 쓰기 카운트 필드(313) 및 LRU 필드(314)를 포함할 수 있다.
유효 필드(311)는 해당 라인이 유효한 데이터를 저장하는지를 나타낸다. 주소 필드(312)는 쓰기 요청된 물리 주소를 저장한다. 쓰기 카운트 필드(313)는 해당 주소에 대한 쓰기 회수를 저장한다. LRU(Least Recently Used) 필드(314)는 해당 라인이 가장 오래전에 사용된 라인인지 여부를 나타낸다.
도 3은 본 발명의 다른 실시예에 의한 주소 캐시(300)의 데이터 구조를 나타낸다.
도 3에 도시된 주소 캐시(300)는 주소 캐시(300)는 제 1 주소 캐시(310)와 제 2 주소 캐시(320)를 포함할 수 있다.
제 1 주소 캐시(310)는 도 2의 주소 캐시(300)와 실질적으로 동일한 데이터 구조를 가진다. 즉 제 1 주소 캐시(310)는 유효 필드(311), 주소 필드(312), 쓰기 카운트 필드(313) 및 LRU 필드(314)를 포함한다.
제 2 주소 캐시(320)는 유효 필드(321), 주소 필드(322) 및 LRU 필드(323)를 포함한다. 유효 필드(321)는 해당 라인이 유효한 데이터를 포함하는지를 나타낸다. 주소 필드(322)는 쓰기 요청된 물리 주소를 저장한다. LRU 필드(323)는 해당 라인이 가장 오래전에 사용된 라인인지를 나타낸다.
도 3에 도시된 주소 캐시(300)는 도 2에 도시된 주소 캐시(300)에 비하여 캐시 구조를 다단계로 구성함으로써 주소 캐시(300)의 크기를 과도하게 소모하지 않는데 도움이 될 수 있다. 이에 대해서는 도 5와 도 6을 참조하여 설명한다.
도 4는 도 1의 쓰기 캐시(400)의 데이터 구조를 나타낸다.
쓰기 캐시(400)는 유효 필드(410), 주소 필드(420), 데이터 필드(430) 및 LRU 필드(440)를 포함할 수 있다.
유효 필드(410)는 해당 라인이 유효한 정보를 포함하는지를 나타낸다. 주소 필드(420)는 물리 주소를 저장한다. 데이터 필드(430)는 물리 주소에 대응하는 데이터를 저장한다. LRU 필드(440)는 해당 라인이 가장 오래전에 사용되었는지 여부를 표시한다.
도 5는 도 2에 도시된 주소 캐시(300)를 포함하는 실시예에서 쓰기 요청에 대한 도 1의 주소 감시기(200)의 동작을 나타내는 순서도이다.
주소 감시기(200)는 호스트(10)에서 쓰기 요청된 물리 주소가 주소 캐시(200)에 존재하는지 판단한다(S110).
쓰기 요청된 물리 주소가 주소 캐시(200)에 존재하는 경우 주소 캐시(200)의 쓰기 카운트 필드(213)를 참조하여 쓰기 카운트 값이 임계점을 초과하는지 판단한다(S120).
임계점을 초과하는 경우 주소 감시기(200)는 중재부(100)가 해당 물리 주소와 그 데이터를 쓰기 캐시(400)에 캐시하도록 제어하고 해당 물리 주소에 대한 유효 필드(311)의 값을 무효화하고 동작을 종료한다.
중재부(100)는 쓰기 요청을 쓰기 캐시(400)에 캐시하라는 주소 감시기(200)로부터의 제어 신호가 활성화되면 쓰기 캐시 동작을 수행한다.
중재부(100)는 먼저 쓰기 캐시(400)에 해당 물리 주소가 존재하는지 판단하고 해당 물리 주소가 존재하면 해당 물리 주소에 대응하는 데이터 필드(430)에 쓰기 요청된 데이터를 저장한다. 만일 해당 물리 주소가 쓰기 캐시(400)에 존재하지 않으면 쓰기 캐시(400)의 빈 라인에 쓰기 요청된 물리 주소와 데이터를 저장한다. 이때 쓰기 캐시(400)가 가득 차 있다면 LRU 필드를 참조하여 가장 오래전에 사용된 라인을 쓰기 캐시(400)에서 추방한 후 빈 라인에 쓰기 요청된 물리 주소와 데이터를 저장할 수 있다.
중재부(100)는 쓰기 캐시된 쓰기 요청이 요청 큐(500)에 저장된 경우 해당 쓰기 요청을 요청 큐(500)에서 삭제한다.
임계점을 초과하지 않는 경우 주소 감시기(200)는 주소 캐시(300)의 해당 물리 주소에 대응하는 쓰기 카운트 필드(313)의 값을 증가시키고(S140), 동작을 종료한다.
단계(S110)에서 쓰기 요청된 물리 주소가 주소 캐시(200)에 존재하지 않는 경우 주소 감시기(200)는 주소 캐시(200)가 가득 차 있는지 판단한다(S150).
주소 캐시(200)가 가득 차 있는 경우 주소 감시기(200)는 주소 캐시(300)의 LRU 필드(314)를 참조하여 LRU 라인을 주소 캐시(300)에서 삭제한다(S160).
이후 주소 감시기(200)는 현재 쓰기 요청된 주소를 주소 캐시의 빈 라인에 저장하고(S170) 종료한다.
주소 캐시(200)가 가득 차 있지 않다면 주소 캐시(300)의 빈 라인에 현재 쓰기 요청된 주소를 주소 캐시의 빈 라인에 저장하고(S180) 종료한다.
도 6은 도 3에 도시된 주소 캐시(300)를 사용하는 경우 쓰기 요청에 대한 도 1의 주소 감시기(200)의 동작을 나타내는 순서도이다.
호스트(10)로부터 쓰기 요청이 있는 경우 주소 감시기(200)는 쓰기 요청된 물리 주소가 제 1 주소 캐시(310)에 존재하는지 판단한다(S210).
쓰기 요청된 물리 주소가 제 1 주소 캐시(310)에 존재하는 경우 쓰기 카운트 필드(313)를 참조하여 쓰기 카운트 값이 임계점을 초과하는지 판단한다(S220).
쓰기 카운트 값이 임계점을 초과하면 주소 감시기(200)는 해당 쓰기 요청을 쓰기 캐시(400)에 캐시하도록 중재부(100)를 제어하고, 해당 물리 주소를 제 1 주소 캐시(310)에서 삭제하거나, 해당 물리 주소에 대응하는 유효 필드(311)를 무효화하고(S221) 동작을 종료한다.
중재부(100)는 쓰기 요청을 쓰기 캐시(400)에 캐시하라는 주소 감시기(200)로부터의 제어 신호가 활성화되면 쓰기 캐시 동작을 수행한다.
중재부(100)는 먼저 쓰기 캐시(400)에 해당 물리 주소가 존재하는지 판단하고 해당 물리 주소가 존재하면 해당 물리 주소에 대응하는 데이터 필드(430)에 쓰기 요청된 데이터를 저장한다. 만일 해당 물리 주소가 쓰기 캐시(400)에 존재하지 않으면 쓰기 캐시(400)의 빈 라인에 쓰기 요청된 물리 주소와 데이터를 저장한다. 이때 쓰기 캐시(400)가 가득 차 있다면 LRU 필드를 참조하여 가장 오래전에 사용된 라인을 쓰기 캐시(400)에서 추방한 후 빈 라인에 쓰기 요청된 물리 주소와 데이터를 저장할 수 있다.
중재부(100)는 쓰기 캐시된 쓰기 요청이 요청 큐(500)에 저장된 경우 해당 쓰기 요청을 요청 큐(500)에서 삭제한다.
쓰기 카운트 값이 임계점을 초과하지 않으면 주소 감시기(200)는 쓰기 요청된 물리 주소에 대한 쓰기 카운트 값을 증가시키고(S222) 동작을 종료한다.
쓰기 요청된 물리 주소가 제 1 주소 캐시(310)에 존재하지 않는 경우 주소 감시기(200)는 쓰기 요청된 주소가 제 2 주소 캐시(320)에 존재하는지 판단한다.
쓰기 요청된 물리 주소가 제 2 주소 캐시(320)에 존재하는 경우 주소 감시기(200)는 해당 물리 주소를 제 2 주소 캐시에서 무효화한다(S231).
이후 주소 감시기(200)는 제 1 주소 캐시(310)에 빈 공간이 있는지 판단한다(S232).
제 1 주소 캐시(310)에 빈 공간이 있으면 빈 공간에 쓰기 요청된 물리 주소를 저장하고(S234) 동작을 종료한다.
제 1 주소 캐시(310)에 빈 공간이 없으면 제 1 주소 캐시(310)에서 LRU 라인을 삭제하고(S233). 빈 공간에 쓰기 요청된 물리 주소를 저장하고(S234) 동작을 종료한다.
쓰기 요청된 물리 주소가 제 2 주소 캐시(320)에도 존재하지 않는 경우 주소 감시기(200)는 제 2 주소 캐시(320)에 빈 공간이 있는지 판단한다(S240).
제 2 주소 캐시(320)에 빈 공간이 있으면 쓰기 요청된 물리 주소를 빈 공간에 저장하고(S242) 동작을 종료한다.
제 2 주소 캐시(320)에 빈 공간이 없으면 제 2 주소 캐시(320)에서 가장 오래전에 사용된 항목을 삭제하고(S241) 빈 공간에 쓰기 요청된 물리 주소를 저장한 후(S242) 동작을 종료한다.
도 6에 도시된 바와 같이 도 3에 도시된 주소 캐시(300)는 제 2 주소 캐시(320)에 존재하는 주소에 대하여 다시 쓰기 요청이 있는 경우 이를 제 1 주소 캐시(310)로 이동하여 저장하고 제 1 주소 캐시(310)에 존재하는 주소에 대하여 쓰기 요청이 있는 경우 이를 쓰기 캐시로 이동하여 저장하므로 도 2에 도시된 주소 캐시(200)에 비하여 상대적으로 저장 공간을 줄일 수 있다.
도 7은 웨어 레벨링 동작 수행 후 주소 감시기(200)의 동작을 나타낸다.
전술한 바와 같이 웨어 레벨링 동작을 위해 일정한 쓰기 회수마다 물리 주소 x와 물리 주소 y를 스왑하는 동작이 수행된다.
주소 감시기(200)는 물리 주소 x, 물리 주소 y가 주소 캐시(300)에 존재하는지 판단하여(S310), 해당 물리 주소가 주소 캐시(300)에 존재하는 경우 주소 캐시(300)에서 해당 물리 주소를 삭제한다(S311).
이후 주소 감시기(200)는 물리 주소 x, 물리 주소 y가 쓰기 캐시(400)에 존재하는지 판단하여(S320), 해당 물리 주소가 쓰기 캐시(400)에 존재하는 경우 쓰기 캐시에서 해당 물리 주소를 삭제하고(S321) 동작을 종료한다.
도 7은 주소 캐시(300)가 도 3에 도시된 바와 같이 2 단계로 구성되는 경우 웨어 레벨링 동작 수행 후 주소 감시기(200)의 동작을 나타낸다.
전술한 바와 같이 웨어 레벨링 동작을 위해 일정한 쓰기 회수마다 물리 주소 x와 물리 주소 y를 스왑하는 동작이 수행된다.
주소 감시기(200)는 물리 주소 x, 물리 주소 y가 제 2 주소 캐시(320)에 존재하는지 판단하여(S310), 해당 주소가 제 2 주소 캐시(320)에 존재하는 경우 제 2 주소 캐시(320)에서 해당 주소를 삭제한다(S311).
이후 주소 감시기(200)는 물리 주소 x, 물리 주소 y가 제 1 주소 캐시(310)에 존재하는지 판단하여(S312), 해당 물리 주소가 제 1 주소 캐시(310)에 존재하는 경우 제 1 주소 캐시(310)에서 해당 물리 주소를 삭제한다(S313).
이후 주소 감시기(200)는 물리 주소 x, 물리 주소 y가 쓰기 캐시(400)에 존재하는지 판단하여(S320), 해당 물리 주소가 쓰기 캐시(400)에 존재하는 경우 쓰기 캐시에서 해당 물리 주소를 삭제하고(S321) 동작을 종료한다.
이상의 개시는 본 발명의 설명을 위한 것으로서 이상의 개시에 의하여 본 발명의 권리범위가 한정되는 것은 아니다. 본 발명의 권리범위는 후술하는 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다. 예를 들어 이상의 개시에서는 주소 캐시(300)가 1 단계 또는 2 단계 구조를 가지는 경우에 대해서 설명하였으나 통상의 기술자는 이상의 개시로부터 주소 캐시(300)가 3 단계 이상의 구조를 가지도록 용이하게 확장할 수 있다.
1000: 반도체 장치
100: 중재부
200: 주소 감시기
300: 주소 캐시
400: 쓰기 캐시
500: 요청 큐
600: 명령 생성부
10: 호스트
20: 반도체 메모리 장치
100: 중재부
200: 주소 감시기
300: 주소 캐시
400: 쓰기 캐시
500: 요청 큐
600: 명령 생성부
10: 호스트
20: 반도체 메모리 장치
Claims (17)
- 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 제 1 주소 캐시;
상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및
상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부
를 포함하는 반도체 장치. - 청구항 1에 있어서, 상기 주소 감시기는 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하고 상기 물리 주소에 연관된 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청된 물리 주소와 해당 데이터를 상기 쓰기 캐시에 저장하도록 상기 중재부를 제어하는 반도체 장치.
- 청구항 2에 있어서, 상기 반도체 메모리 장치의 물리 주소를 저장하는 제 2 주소 캐시를 더 포함하는 반도체 장치.
- 청구항 3에 있어서, 상기 주소 감시기는 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않고 상기 제 2 주소 캐시에 존재하는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하고, 상기 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시 및 상기 제 2 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에 저장하는 반도체 장치.
- 청구항 1에 있어서, 호스트 장치로부터 쓰기 요청된 논리 주소를 물리 주소로 변환하는 주소 변환부를 더 포함하는 반도체 장치.
- 청구항 5에 있어서, 상기 주소 변환부는 상기 논리 주소와 키 데이터를 연산하여 상기 물리 주소로 변환하는 반도체 장치.
- 청구항 5에 있어서, 상기 주소 변환부는 일정한 쓰기 회수마다 두 논리 주소와 이에 대응하는 두 물리 주소의 연관 관계를 스왑하는 반도체 장치.
- 청구항 6에 있어서, 상기 주소 감시기는 스왑된 두 물리 주소에 대한 정보를 상기 제 1 주소 캐시에서 무효화하는 반도체 장치.
- 청구항 8에 있어서, 상기 주소 감시기는 상기 스왑된 두 물리 주소에 대한 정보를 상기 쓰기 캐시에서 무효화하는 반도체 장치.
- 청구항 1에 있어서, 호스트로부터의 요청들을 저장하는 요청 큐를 더 포함하되, 상기 중재부는 상기 주소 감시기로부터 쓰기 캐시에 저장하도록 제어된 쓰기 요청을 상기 요청 큐에서 삭제하는 반도체 장치.
- 반도체 메모리 장치 및
상기 반도체 메모리 장치를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는
상기 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 주소 캐시;
상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및
상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부
를 포함하는 시스템. - 쓰기 요청된 물리 주소가 제 1 주소 캐시에 존재하는지 판단하는 단계 및
상기 제 1 주소 캐시에 저장된 상기 물리 주소에 대한 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청을 쓰기 캐시에 대하여 수행하는 단계
를 포함하는 반도체 장치의 동작 방법 - 청구항 12에 있어서, 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하는 단계를 더 포함하는 반도체 장치의 동작 방법.
- 청구항 12에 있어서, 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하는지 판단하는 단계;
상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하고 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에서 삭제하는 단계; 및
상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에 저장하는 단계를
를 더 포함하는 반도체 장치의 동작 방법. - 청구항 12에 있어서,
일정한 시간마다 제 1 물리 주소와 이에 대응하는 제 1 논리 주소 및 제 2 물리 주소와 이에 대응하는 제 2 논리 주소의 연관 관계를 스왑하는 단계를 더 포함하는 반도체 장치의 동작 방법. - 청구항 15에 있어서, 상기 제 1 물리주소와 상기 제 2 물리주소에 관한 정보를 상기 제 1 주소 캐시에서 삭제하는 단계를 더 포함하는 반도체 장치의 동작 방법.
- 청구항 16에 있어서, 상기 제 1 물리주소와 상기 제 2 물리주소에 관한 정보를 상기 쓰기 캐시에서 삭제하는 단계를 더 포함하는 반도체 장치의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130146568A KR20150062039A (ko) | 2013-11-28 | 2013-11-28 | 반도체 장치 및 그 동작 방법 |
CN201410497920.9A CN104679684B (zh) | 2013-11-28 | 2014-09-25 | 半导体器件及其操作方法 |
US14/512,885 US10157148B2 (en) | 2013-11-28 | 2014-10-13 | Semiconductor device configured to control a wear leveling operation and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130146568A KR20150062039A (ko) | 2013-11-28 | 2013-11-28 | 반도체 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150062039A true KR20150062039A (ko) | 2015-06-05 |
Family
ID=53183689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130146568A KR20150062039A (ko) | 2013-11-28 | 2013-11-28 | 반도체 장치 및 그 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10157148B2 (ko) |
KR (1) | KR20150062039A (ko) |
CN (1) | CN104679684B (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152408B2 (en) * | 2014-02-19 | 2018-12-11 | Rambus Inc. | Memory system with activate-leveling method |
KR102403266B1 (ko) * | 2015-06-22 | 2022-05-27 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
KR102615806B1 (ko) * | 2016-05-25 | 2023-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
US10698819B2 (en) * | 2017-12-14 | 2020-06-30 | SK Hynix Inc. | Memory system and operating method thereof |
KR20190083052A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
US11163638B2 (en) | 2019-04-05 | 2021-11-02 | Samsung Electronics Co., Ltd. | Memory device for swapping data and operating method thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5996055A (en) * | 1997-11-26 | 1999-11-30 | Digital Equipment Corporation | Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space |
US7657701B2 (en) * | 2007-01-03 | 2010-02-02 | The General Electric Company | System and method of flash memory wear leveling using distributed write cycles |
KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
CN101533670B (zh) * | 2009-04-23 | 2012-05-02 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
US8285936B2 (en) | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
US9009406B2 (en) * | 2010-12-10 | 2015-04-14 | International Business Machines Corporation | Determining server write activity levels to use to adjust write cache size |
JP5722685B2 (ja) * | 2011-04-12 | 2015-05-27 | 株式会社日立製作所 | 半導体装置、不揮発性メモリ装置の制御方法 |
US9081706B2 (en) * | 2012-05-10 | 2015-07-14 | Oracle International Corporation | Using a shared last-level TLB to reduce address-translation latency |
CN102981971B (zh) * | 2012-12-25 | 2016-06-08 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
US9348743B2 (en) * | 2013-02-21 | 2016-05-24 | Qualcomm Incorporated | Inter-set wear-leveling for caches with limited write endurance |
CN103150258B (zh) * | 2013-03-20 | 2017-02-01 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种固态存储系统的写入、读取及垃圾收集方法 |
-
2013
- 2013-11-28 KR KR1020130146568A patent/KR20150062039A/ko not_active Application Discontinuation
-
2014
- 2014-09-25 CN CN201410497920.9A patent/CN104679684B/zh active Active
- 2014-10-13 US US14/512,885 patent/US10157148B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10157148B2 (en) | 2018-12-18 |
US20150149728A1 (en) | 2015-05-28 |
CN104679684A (zh) | 2015-06-03 |
CN104679684B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11579773B2 (en) | Memory system and method of controlling memory system | |
US20200264980A1 (en) | Apparatus and method of handling caching of persistent data | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
US9256527B2 (en) | Logical to physical address mapping in storage systems comprising solid state memory devices | |
US9891825B2 (en) | Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity | |
KR101297563B1 (ko) | 스토리지 관리 방법 및 관리 시스템 | |
US20150347310A1 (en) | Storage Controller and Method for Managing Metadata in a Cache Store | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
KR20150062039A (ko) | 반도체 장치 및 그 동작 방법 | |
US20150212937A1 (en) | Storage translation layer | |
KR20170026114A (ko) | 트랜잭션 기반 하이브리드 메모리 모듈 | |
US10769062B2 (en) | Fine granularity translation layer for data storage devices | |
US10635581B2 (en) | Hybrid drive garbage collection | |
US10013174B2 (en) | Mapping system selection for data storage device | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US10073851B2 (en) | Fast new file creation cache | |
KR102656175B1 (ko) | 스토리지 장치 및 랜덤 액세스 메모리를 제어하는 방법 및 불휘발성 메모리 장치 및 버퍼 메모리를 제어하는 방법 | |
CN118012331A (zh) | 用于使用基于段的存储的实例存储的技术 | |
Yang et al. | A read-write optimization scheme for flash memory storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |