KR20150062039A - 반도체 장치 및 그 동작 방법 - Google Patents

반도체 장치 및 그 동작 방법 Download PDF

Info

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
Application number
KR1020130146568A
Other languages
English (en)
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 KR1020130146568A priority Critical patent/KR20150062039A/ko
Priority to CN201410497920.9A priority patent/CN104679684B/zh
Priority to US14/512,885 priority patent/US10157148B2/en
Publication of KR20150062039A publication Critical patent/KR20150062039A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity 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

반도체 장치 및 그 동작 방법{SEMICONDUCTOR DEVICE AND OPERATING METHOD THEREOF}
본 발명은 반도체 장치 및 그 동작 방법에 관한 것으로 보다 구체적으로는 반도체 메모리 장치의 웨어 레벨링 동작을 제어하는 반도체 장치 및 그 동작 방법에 관한 것이다.
낸드 플래시 메모리 장치 또는 상변이 메모리 장치 등의 반도체 메모리 장치는 하나의 셀에 대하여 수행할 수 있는 쓰기 요청의 회수가 한정되어 있다. 예를 들어 상변이 메모리 장치는 106 ~ 108 정도의 한정된 쓰기 회수를 가진다.
따라서 특정 셀 영역에 대해서 쓰기 동작이 집중되는 경우 전체 메모리 장치의 수명을 감소시킨다. 이를 방지하기 위하여 반도체 메모리 장치의 전체 셀 영역에 대해서 쓰기 동작을 균등하게 분포시키기 위한 웨어 레벨링 동작이 수행된다.
먼저, 쓰기 요청을 수행하는 단계에서 호스트로부터 제공되는 논리 주소를 물리 주소로 맵핑하고 맵핑된 물리 주소에 쓰기 요청을 수행한다. 논리 주소를 물리 주소로 맵핑하는 방법은 다양할 수 있다. 예를 들어 논리 주소와 키 데이터를 연산하여 물리 주소를 생성함으로써 맵핑을 수행할 수 있다.
웨어 레벨링을 위하여 일정한 쓰기 회수마다 전체 논리 주소에 대하여 논리 주소와 물리 주소의 맵핑 관계를 순차적으로 변경하고 한 라운드마다 전체 논리 주소에 대해서 맵핑 관계를 변경하는 방법이 제안되었다. 맵핑 관계를 변경하는 것은 연산에 사용되는 키를 변경하는 것으로 수행될 수 있다. 한 라운드 내에서 논리 주소에 대한 맵핑 관계를 변경하는 것을 재맵핑 또는 리프레시로 표현할 수 있는데 이하에서는 리프레시라는 표현을 사용한다.
이러한 종래의 웨어 레벨링 방법에서는 맵핑 관계가 변경된 논리 주소에 대해서는 다음 라운드까지 맵핑 관계가 변경되지 않는다. 따라서 맵핑 관계가 변경된 논리 주소에 대하여 쓰기 요청이 지속되는 경우라 하더라도 다음 라운드까지 맵핑 관계를 변경할 수 없다.
이러한 종래의 웨어 레벨링 방법은 전체 주소의 개수가 많아서 한 라운드를 완성하는데 걸리는 시간이 오래 걸리거나 특정 주소에 대한 쓰기 요청이 집중되는 경우에 효과가 저하되는 문제가 있다.
또한 블록 단위로 소거 동작을 수행하는 비휘발성 메모리 장치(예를 들어 낸드 플래시 메모리 장치)의 경우는 웨어 레벨링을 위하여 블록 단위로 쓰기 회수를 저장할 수 있지만 페이지 단위로 소거 동작을 수행하는 비휘발성 메모리 장치(예를 들어 상변이 메모리 장치)의 경우에는 페이지 단위로 쓰기 회수를 저장해야 하므로 상대적으로 저장 공간이 줄어드는 문제가 있다.
본 발명은 저장 공간의 낭비를 줄이고 성능이 향상된 웨어 레벨링 동작을 수행하는 반도체 장치 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 제 1 주소 캐시, 상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기 및 상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부를 포함한다.
본 발명의 일 실시예에 의한 시스템은 반도체 메모리 장치 및 상기 반도체 메모리 장치를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는 상기 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 주소 캐시, 상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및 상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부를 포함한다.
본 발명의 일 실시예에 의한 반도체 장치의 동작 방법은 쓰기 요청된 물리 주소가 제 1 주소 캐시에 존재하는지 판단하는 단계 및 상기 제 1 주소 캐시에 저장된 상기 물리 주소에 대한 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청을 쓰기 캐시에 대하여 수행하는 단계를 포함한다.
본 발명에 의한 반도체 장치를 통해 반도체 메모리 장치에 대한 웨어 레벨링 성능을 향상시켜 반도체 메모리 장치의 수명을 증가시킬 수 있다. 본 발명에 의한 반도체 장치를 통해 쓰기 회수를 저장하기 위한 저장 공간의 낭비를 줄일 수 있다.
도 1은 본 발명의 일 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도.
도 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: 반도체 메모리 장치

Claims (17)

  1. 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 제 1 주소 캐시;
    상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및
    상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부
    를 포함하는 반도체 장치.
  2. 청구항 1에 있어서, 상기 주소 감시기는 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하고 상기 물리 주소에 연관된 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청된 물리 주소와 해당 데이터를 상기 쓰기 캐시에 저장하도록 상기 중재부를 제어하는 반도체 장치.
  3. 청구항 2에 있어서, 상기 반도체 메모리 장치의 물리 주소를 저장하는 제 2 주소 캐시를 더 포함하는 반도체 장치.
  4. 청구항 3에 있어서, 상기 주소 감시기는 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않고 상기 제 2 주소 캐시에 존재하는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하고, 상기 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시 및 상기 제 2 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에 저장하는 반도체 장치.
  5. 청구항 1에 있어서, 호스트 장치로부터 쓰기 요청된 논리 주소를 물리 주소로 변환하는 주소 변환부를 더 포함하는 반도체 장치.
  6. 청구항 5에 있어서, 상기 주소 변환부는 상기 논리 주소와 키 데이터를 연산하여 상기 물리 주소로 변환하는 반도체 장치.
  7. 청구항 5에 있어서, 상기 주소 변환부는 일정한 쓰기 회수마다 두 논리 주소와 이에 대응하는 두 물리 주소의 연관 관계를 스왑하는 반도체 장치.
  8. 청구항 6에 있어서, 상기 주소 감시기는 스왑된 두 물리 주소에 대한 정보를 상기 제 1 주소 캐시에서 무효화하는 반도체 장치.
  9. 청구항 8에 있어서, 상기 주소 감시기는 상기 스왑된 두 물리 주소에 대한 정보를 상기 쓰기 캐시에서 무효화하는 반도체 장치.
  10. 청구항 1에 있어서, 호스트로부터의 요청들을 저장하는 요청 큐를 더 포함하되, 상기 중재부는 상기 주소 감시기로부터 쓰기 캐시에 저장하도록 제어된 쓰기 요청을 상기 요청 큐에서 삭제하는 반도체 장치.
  11. 반도체 메모리 장치 및
    상기 반도체 메모리 장치를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는
    상기 반도체 메모리 장치의 물리 주소와 상기 물리 주소에 대한 쓰기 회수를 연관하여 저장하는 주소 캐시;
    상기 반도체 메모리 장치에 대한 쓰기 요청을 감시하여 상기 주소 캐시의 상기 물리 주소와 상기 쓰기 회수 정보를 관리하는 주소 감시기; 및
    상기 주소 감시기의 제어에 따라 쓰기 요청된 물리 주소와 데이터를 쓰기 캐시에 저장하는 중재부
    를 포함하는 시스템.
  12. 쓰기 요청된 물리 주소가 제 1 주소 캐시에 존재하는지 판단하는 단계 및
    상기 제 1 주소 캐시에 저장된 상기 물리 주소에 대한 쓰기 회수가 임계점을 초과하는 경우 상기 쓰기 요청을 쓰기 캐시에 대하여 수행하는 단계
    를 포함하는 반도체 장치의 동작 방법
  13. 청구항 12에 있어서, 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하는 단계를 더 포함하는 반도체 장치의 동작 방법.
  14. 청구항 12에 있어서, 쓰기 요청된 물리 주소가 상기 제 1 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하는지 판단하는 단계;
    상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하는 경우 상기 쓰기 요청된 물리 주소를 상기 제 1 주소 캐시에 저장하고 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에서 삭제하는 단계; 및
    상기 쓰기 요청된 물리 주소가 상기 제 2 주소 캐시에 존재하지 않는 경우 상기 쓰기 요청된 물리 주소를 상기 제 2 주소 캐시에 저장하는 단계를
    를 더 포함하는 반도체 장치의 동작 방법.
  15. 청구항 12에 있어서,
    일정한 시간마다 제 1 물리 주소와 이에 대응하는 제 1 논리 주소 및 제 2 물리 주소와 이에 대응하는 제 2 논리 주소의 연관 관계를 스왑하는 단계를 더 포함하는 반도체 장치의 동작 방법.
  16. 청구항 15에 있어서, 상기 제 1 물리주소와 상기 제 2 물리주소에 관한 정보를 상기 제 1 주소 캐시에서 삭제하는 단계를 더 포함하는 반도체 장치의 동작 방법.
  17. 청구항 16에 있어서, 상기 제 1 물리주소와 상기 제 2 물리주소에 관한 정보를 상기 쓰기 캐시에서 삭제하는 단계를 더 포함하는 반도체 장치의 동작 방법.
KR1020130146568A 2013-11-28 2013-11-28 반도체 장치 및 그 동작 방법 KR20150062039A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国科学院苏州纳米技术与纳米仿生研究所 一种固态存储系统的写入、读取及垃圾收集方法

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