KR102108839B1 - 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법 - Google Patents

불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법 Download PDF

Info

Publication number
KR102108839B1
KR102108839B1 KR1020130067228A KR20130067228A KR102108839B1 KR 102108839 B1 KR102108839 B1 KR 102108839B1 KR 1020130067228 A KR1020130067228 A KR 1020130067228A KR 20130067228 A KR20130067228 A KR 20130067228A KR 102108839 B1 KR102108839 B1 KR 102108839B1
Authority
KR
South Korea
Prior art keywords
write
mode
write mode
erase
nonvolatile memory
Prior art date
Application number
KR1020130067228A
Other languages
English (en)
Other versions
KR20140145254A (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 KR1020130067228A priority Critical patent/KR102108839B1/ko
Priority to US14/302,696 priority patent/US10042754B2/en
Publication of KR20140145254A publication Critical patent/KR20140145254A/ko
Priority to US16/056,781 priority patent/US10657042B2/en
Priority to US16/877,802 priority patent/US11093384B2/en
Application granted granted Critical
Publication of KR102108839B1 publication Critical patent/KR102108839B1/ko
Priority to US17/386,782 priority patent/US11860774B2/en

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/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/7207Details relating to flash memory management management of metadata or control data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 사용자 장치에서 상기 불휘발성 메모리 장치의 액세스 방법은, 쓰기 요청을 수신하는 단계, 상기 쓰기 요청을 발행한 애플리케이션, 유저 콘텍스트, 쓰기 버퍼의 대기열 크기, 상기 쓰기 요청된 데이터의 속성, 그리고 상기 사용자 장치의 동작 모드 중 적어도 하나를 검출하는 단계, 그리고 상기 검출된 정보를 참조하여 상기 쓰기 요청된 데이터를 상기 불휘발성 메모리 장치에 기입하기 위한 복수의 쓰기 모드들 중 하나를 결정하는 단계를 포함하되, 상기 복수의 쓰기 모드들 각각에 대해 상기 불휘발성 메모리 장치는 서로 다른 프로그램 전압 및 검증 전압 셋으로 설정된다.

Description

불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법{USER DEVICE INCLUDING NONVOLATILE MEMORY DEVICE AND WRITE METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에, 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 저장하는 데 쓰인다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, 스마트폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다. 최근, 스마트폰과 같은 모바일 장치들에 탑재하기 위하여 불휘발성 메모리 장치의 고용량, 고속 입출력, 저전력화 기술들이 활발하게 연구되고 있다.
본 발명에서는 호스트에서 다양한 구동 조건에서의 쓰기 모드 결정을 수행하여 불휘발성 메모리 장치의 수명을 연장하고, 데이터의 신뢰성을 높일 수 있는 제어 방법이 제공될 것이다.
본 발명의 목적은 불휘발성 메모리 장치의 수명을 연장할 수 있는 사용자 장치 및 그것의 데이터 쓰기 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 포함하는 사용자 장치에서 상기 불휘발성 메모리 장치의 액세스 방법은, 쓰기 요청을 수신하는 단계, 상기 쓰기 요청을 발행한 애플리케이션의 종류, 유저 콘텍스트, 쓰기 버퍼의 대기열 크기 그리고 상기 쓰기 요청된 데이터의 속성 중 적어도 하나를 검출하는 단계, 그리고 상기 검출된 정보를 참조하여 상기 쓰기 요청된 데이터를 상기 불휘발성 메모리 장치에 기입하기 위한 복수의 쓰기 모드들 중 하나를 결정하는 단계를 포함하되, 상기 복수의 쓰기 모드들 각각에 대해 상기 불휘발성 메모리 장치는 서로 다른 프로그램 전압 및 검증 전압 셋에 의해서 상기 쓰기 요청된 데이터를 프로그램한다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 유저 인터페이스, 액정 표시 장치, 그리고 쓰기 버퍼를 포함하는 사용자 장치는, 쓰기 모드에 따라 불휘발성 메모리 장치에 대한 액세스 바이어스를 가변하는 메모리 시스템, 그리고 실행중인 애플리케이션 소프트웨어의 종류, 상기 유저 인터페이스로부터 입력 시간, 상기 액정 표시 장치의 온/오프 상태, 상기 액정 표시 장치의 온/오프 전환 이후의 경과 시간, 상기 액정 표시 장치의 화면 보호 모드 상태, 잠김 모드 상태, 상기 불휘발성 메모리 장치의 예상 수명, 상기 불휘발성 메모리 장치의 누적된 쓰기 횟수, 그리고 상기 쓰기 버퍼에 저장된 데이터의 대기열 크기, 데이터의 속성 중 적어도 하나를 참조하여 쓰기 요청된 데이터에 대한 상기 쓰기 모드를 결정하는 호스트를 포함한다.
본 발명에 따른 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 쓰기 방법에 따르면, 호스트 레벨에서 불휘발성 메모리 장치에 대한 쓰기 모드 결정을 수행함에 따라 구동 환경에 따른 불휘발성 메모리 장치의 열화를 최소화할 수 있다. 따라서, 불휘발성 메모리 장치를 포함하는 메모리 시스템의 부담을 최소화하면서도 불휘발성 메모리 장치의 수명 연장을 기대할 수 있다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 구동하기 위한 소프트웨어의 계층 구조를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 사용자 장치를 보여주는 블록도이다.
도 3은 도 2의 호스트의 소프트웨어 구조를 보여주는 블록도이다.
도 4는 도 2의 메모리 컨트롤러의 하드웨어 요소를 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 유효 소모값(EW)을 보여주는 그래프이다.
도 7은 본 발명의 소거 모드(EMi)의 예를 보여주는 도면이다.
도 8은 도 4의 퍼블록 모드 테이블의 예를 간략히 보여주는 표이다.
도 9는 본 발명의 실시 예에 따른 쓰기 모드를 보여주는 도면들이다.
도 10은 본 발명의 실시 예에 따른 읽기 향상 쓰기 모드를 보여주는 도면들이다.
도 11은 본 발명의 제 1 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 블록도이다.
도 12는 제 1 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 순서도이다.
도 13은 본 발명의 제 2 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 순서도이다.
도 14는 본 발명의 제 3 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 블록도이다.
도 15는 본 발명의 제 3 실시 예에 따른 호스트의 쓰기 모드 결정 방법을 보여주는 순서도이다.
도 16은 본 발명의 제 4 실시 예에 따른 호스트의 쓰기 모드 결정 방법을 보여주는 순서도이다.
도 17은 도 2의 호스트의 소프트웨어 구조의 다른 예를 보여주는 블록도이다.
도 18a 및 도 18b는 본 발명의 실시 예들을 적용하기 위한 호스트의 소프트웨어 계층에서의 인터페이스 방법을 보여주는 블록도들이다.
도 19는 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 21은 본 발명의 실시 예에 따른 휴대용 단말기를 나타내는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조번호들을 이용하여 인용될 것이다. 아래에서 설명될 본 발명에 따른 플래시 메모리 장치의 회로 구성과, 그것에 의해 수행되는 읽기 동작은 예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.
더불어, 본 발명의 특징 및 기능을 설명하기 위한 불휘발성 저장 매체로서 낸드형 플래시 메모리를 예로 할 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 예를 들면, 본 발명의 기술은 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등에도 사용될 수 있다.
본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명에 따른 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 구동하기 위한 소프트웨어의 계층 구조를 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 사용자 장치(예를 들면, 모바일 장치)의 소프트웨어 계층에 따르면, 호스트(Host) 측에서 메모리 시스템(Memory system) 측으로 쓰기 모드(WMi)가 제공된다.
애플리케이션 소프트웨어(10)와 파일 시스템/장치 드라이버(20)는 호스트 측에서 구동되는 소프트웨어이다. 특히, 애플리케이션 소프트웨어(10)나 유저 인터페이스에 관련된 소프트웨어, 또는 운영 체제(OS) 등을 이하에서는 플랫폼(Platform)이라 칭하기로 한다. 이러한 호스트(Host)의 상위 계층 소프트웨어들에 의해서 호스트의 상황에 따른 쓰기 모드(WMi)가 결정될 수 있다. 다른 예에서, 파일 시스템/장치 드라이버(20)와 같은 호스트(Host)의 하위 계층의 소프트웨어에서 불휘발성 메모리 장치(40)에 대한 쓰기 모드(WMi)가 결정될 수 있다.
여기서, 쓰기 모드(WMi)는 불휘발성 메모리 장치(40)로의 데이터 쓰기 속도나 신뢰성, 또는 보유 특성을 고려한 프로그램 모드에 대응한다. 예컨대, 불휘발성 메모리 장치에 데이터가 기입될 때 높은 데이터 신뢰성을 제공하기 위한 쓰기 바이어스가 하나의 쓰기 모드로 정의될 수 있다. 또는, 데이터의 프로그램 속도를 높이기 위한 쓰기 바이어스가 다른 하나의 쓰기 모드로 정의될 수 있을 것이다. 쓰기 모드(WMi)의 예는 후속하는 도면들에서 구체적으로 설명하기로 한다.
플래시 변환 계층(30)은 호스트(Host)와 불휘발성 메모리 장치(40) 사이에서 불휘발성 메모리 장치(40)의 삭제 연산을 감추기 위한 인터페이싱을 제공한다. 플래시 변환 계층(30)에 의하여 쓰기 전 소거(Erase-before-Write) 및 소거 단위와 쓰기 단위의 불일치라는 불휘발성 메모리 장치(40)의 단점이 보완될 수 있다. 또한, 플래시 변환 계층(30)은 불휘발성 메모리 장치(40)의 기입 동작시, 호스트(Host)가 생성한 논리 주소(LA)를 불휘발성 메모리 장치(40)의 물리 주소(PA)로 맵핑(Mapping)시킨다.
플래시 변환 계층(30)은 논리 주소(LA)에 대응하는 불휘발성 메모리 장치(40)의 물리 주소(PA)를 맵핑하기 위하여 주소 맵핑 테이블(Address Mapping Table)을 구성할 수 있다. 플래시 변환 계층(30)의 어드레스 맵핑 방법에는 맵핑 단위에 따라 여러 가지가 있다. 대표적인 어드레스 맵핑 방법에는 페이지 맵핑 방법(Page mapping method), 블록 맵핑 방법(Block mapping method), 그리고 혼합 맵핑 방법(Hybrid mapping method)이 있다.
본 발명의 플래시 변환 계층(30)은 호스트의 요청이나 자체적인 결정 알고리즘에 따라 다양한 소거 모드(Erase Mode) 및 쓰기 모드(Write Mode)에 따라 불휘발성 메모리 장치(40)를 제어할 수 있다. 예를 들면, 플래시 변환 계층(30)은 선택된 메모리 블록을 다양한 소거 조건들 중 어느 하나에 따라 소거되도록 불휘발성 메모리 장치(40)를 제어할 수 있다. 즉, 플래시 변환 계층(30)은 불휘발성 메모리 장치(40)의 소거 동작시 인가되는 소거 전압의 레벨을 가변할 수 있다. 기존의 소거 동작은 제반 메모리 블록들에 대해서 동일한 조건하에서 수행되었다. 그리고 수명 연장을 위해서 기존의 기법에 따르면, 소거 카운트(Erase Count)에 기반한 소모 레벨링(Wear Leveling)을 적용하여 불휘발성 메모리 장치(40)를 액세스하였다.
본 발명의 플래시 변환 계층(30)은 상대적으로 낮은 소거 전압에 의해서 관리되는 메모리 블록에는 상대적으로 낮은 값의 유효 소모값(Effective Wearing: 이하, EW)을 적용한다. 따라서, 본 발명에서 소모 레벨링(Wear Leveling)은 일률적으로 적용되는 소거 카운트가 아니라 스트레스에 실질적으로 노출된 정도에 의거하여 수행될 수 있다. 여기서, 플래시 변환 계층(30)은 각각의 메모리 블록들에 대해서 적용된 소거 모드(Erase Mode)에 따라 쓰기 모드와 읽기 모드를 관리할 수 있다. 즉, 플래시 변환 계층(30)은 호스트로부터 제공되는 쓰기 모드(WMi) 따라 선택된 메모리 블록에 대한 바이어스를 설정하는 명령어(CMD)나 모드 설정 신호를 생성할 수 있다.
불휘발성 메모리 장치(40)는 플래시 변환 계층(30)에 의해서 결정된 접근 모드에 따라 다양한 구동 조건들을 가변할 수 있다. 읽기 전압, 소거 전압, 프로그램 전압 등을 플래시 변환 계층(30)이 선택한 모드로 수행하기 위해서 선택적으로 생성할 수 있다. 따라서, 불휘발성 메모리 장치(40)는 이러한 모드 설정을 위한 별도의 명령어 또는 제어 신호를 수신할 수 있는 인터페이스를 더 포함할 수 있을 것이다. 그리고 불휘발성 메모리 장치(40)는 수신된 모드 설정 명령어나 제어 신호에 응답하여 직류 전압(DC voltage)을 조정할 수 있는 구성 요소들을 포함할 수 있다.
도 2는 본 발명의 실시 예에 따른 사용자 장치를 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 사용자 장치는 호스트(100)와 메모리 시스템(200)을 포함한다. 메모리 시스템(200)은 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(230)를 포함할 수 있다.
쓰기 요청(Write Request: 이하, WR)이 발생하면, 호스트(100)는 자체적으로 쓰기 요청에 대한 쓰기 모드(WMi)를 판단하게 될 것이다. 호스트(100)는 쓰기 모드(WMi)를 결정하기 위한 쓰기 모드 매니저(150)를 포함한다. 쓰기 모드 매니저(150)는 쓰기 요청되는 데이터의 속성, 쓰기 요청을 발행하는 애플리케이션 소프트웨어의 종류, 유저의 입력, 그리고 쓰기 버퍼의 큐 사이즈(Queue Size)와 같은 호스트(100)의 상태에 따라 쓰기 모드(WMi)를 결정할 수 있다.
쓰기 모드 매니저(150)는 호스트(100)의 제어 유닛들 중 어느 하나로 구성되는 하드웨어로 제공될 수도 있다. 쓰기 모드 매니저(150)는 호스트(100)의 애플리케이션, 운영 체제, 또는 파일 시스템이(File System)나 장치 드라이버(Device Driver) 등에 포함되는 적어도 하나의 소프트웨어 모듈로 제공될 수도 있을 것이다. 호스트(100)는, 예를 들면, 개인용/휴대용 컴퓨터, PDA, PMP, MP3 플레이어 등과 같은 휴대용 전자 장치들, HDTV, 그리고 그와 같은 것을 포함할 것이다.
메모리 컨트롤러(210)는 호스트(100)와 불휘발성 메모리 장치(230)를 인터페이싱한다. 메모리 컨트롤러(210)는 호스트(100)의 쓰기 명령에 응답하여 호스트(100)로부터 제공되는 데이터를 불휘발성 메모리 장치(230)에 기입한다. 또한, 메모리 컨트롤러(210)는 호스트(100)로부터의 읽기 명령에 응답하여 불휘발성 메모리 장치(230)의 독출 동작을 제어한다.
메모리 컨트롤러(210)는 호스트(100)로부터의 쓰기 모드(WMi)에 응답하여 선택된 메모리 영역에 대한 동작 바이어스를 다양하게 설정할 수 있다. 메모리 컨트롤러(210)는 불휘발성 메모리 장치(230)의 동작 바이어스를 설정하기 위한 접근 모드(AMi)를 명령어나 제어 신호를 통해서 제공할 수 있다.
메모리 컨트롤러(210)는 불휘발성 메모리 장치(230)의 메모리 블록들 각각에 대한 소거 모드(Erase Mode) 정보를 유지할 수 있다. 메모리 컨트롤러(210)는 호스트로부터 쓰기 요청(WR) 및 쓰기 모드(WMi)가 입력되면, 논리 주소(LA)에 대응하는 메모리 블록의 소거 모드(EM)를 참조하여 접근 모드(AMi)를 결정한다. 예를 들면, 소거 동작시 상대적으로 낮은 소거 전압과 상대적으로 높은 소거 검증 전압을 사용한 메모리 블록에 대한 쓰기 모드(WMi)는 저속으로 제어할 수 있다. 반면, 메모리 컨트롤러(210)는 소거 동작시 상대적으로 높은 소거 전압과 상대적으로 낮은 소거 검증 전압을 사용한 메모리 블록의 쓰기 모드(WMi)는 고속으로 설정할 수 있다. 또한, 메모리 컨트롤러(210)는 쓰기 동작을 위해서 선택된 메모리 영역(메모리 블록, 수퍼 블록, 칩 등)에 대한 소거를 우선적으로 수행할 수도 있을 것이다.
메모리 컨트롤러(210)는 제반 메모리 블록들 각각의 유효 소모값(Effective Wearing)에 따라서 읽기, 쓰기 모드를 결정하거나 조정할 수 있다. 그리고 메모리 컨트롤러(210)는 유효 소모값(Effective Wearing)의 누적치를 기준으로 소모 레벨링(Wear leveling)이나 가비지 컬렉션(Garbage Collection)을 수행할 수 있다. 여기서, 선택된 메모리 블록에 대한 접근 모드(AMi)의 선택에 대해서 설명하였으나, 본 발명은 여기에 국한되지 않는다. 즉, 메모리 컨트롤러(210)는 접근 모드(AMi)에 따라 액세스 될 수 있는 메모리 블록의 물리 주소를 용도에 따라 선택할 수도 있을 것이다. 만일, 고속으로 데이터를 기입할 상황에서 메모리 컨트롤러(210)는 고속으로 프로그램될 수 있는 소거 상태의 메모리 블록의 물리 주소를 입력된 논리 주소에 맵핑할 수 있을 것이다.
이밖에 메모리 컨트롤러(210)는 프리 블록(Free block)의 수, 쓰기 요청되는 데이터의 사이즈, 그리고 요청들 간의 시간 간격 등을 참조하여 쓰기 모드, 읽기 모드, 소거 모드 등을 포함하는 접근 모드(AMi)를 결정할 수도 있다. 이러한 동작은 후술하는 실시 예들에서 상세히 설명될 것이다.
불휘발성 메모리 장치(230)는 메모리 시스템의 저장 매체(Storage Medium)로서 제공된다. 예를 들면, 불휘발성 메모리 장치(230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 구성될 수 있다. 또는, 불휘발성 메모리 장치(230)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리로 구성될 수 있다. 특히, 불휘발성 메모리 장치(230)는 메모리 컨트롤러(210)로부터의 접근 모드(AMi)에 대응하는 명령어나 제어 신호에 응답하여 직류 전압(DC voltage)과 같은 바이어스 레벨을 조정할 수 있다.
이상의 설명에 따르면, 본 발명의 사용자 장치(User Device)는 호스트(100)의 상황에 따라서 쓰기 요청된 데이터의 쓰기 모드(WMi)가 결정된다. 결정된 쓰기 모드(WMi)는 쓰기 요청과 동시 또는 별도의 명령을 통해서 메모리 시스템(200) 측으로 제공될 것이다. 메모리 시스템(200)은 소거 전압의 레벨을 및 소거 상태의 문턱 전압이 다양하게 설정될 수 있는 불휘발성 메모리 장치(230)를 포함한다. 그리고 메모리 컨트롤러(210)는 메모리 블록들 각각에 인가된 소거 전압의 레벨 또는 소거 동작시 받은 스트레스에 따라 서로 다른 유효 소모값(EW)을 할당할 수 있다. 그리고 메모리 컨트롤러(210)는 메모리 관리를 메모리 블록들 각각에 대한 누적 유효 소모값(CEW)을 참조하여 수행할 수 있다. 호스트(100)에 의해서 쓰기 모드가 설정되는 경우, 유저(User)나 입출력 시스템, 그리고 사용자 장치의 상태를 보다 효과적으로 메모리 관리에 적용할 수 있다. 따라서, 유저가 체감하는 성능 저하는 최소화하면서도 메모리 시스템(200)의 수명을 연장시킬 수 있다.
도 3은 도 2의 호스트의 소프트웨어 구조를 개략적으로 보여주는 블록도이다. 도 3을 참조하면, 호스트(100)의 소프트웨어는 개략적으로 플랫폼(110), 파일 시스템/장치 드라이버(140)를 포함할 수 있다. 그리고 쓰기 모드 매니저(150)는 파일 시스템/장치 드라이버(140)에 하나의 기능 모듈로서 포함될 수 있다.
플랫폼(110)에는 애플리케이션 소프트웨어(120)와 유저 컨텍스트 모니터(130)가 포함된다. 플랫폼(110)은 사용자 장치(User Device)의 운영 체제(OS)나 운영 체제(OS) 상에서 구동되는 애플리케이션 소프트웨어(120), 그리고 다양한 서비스를 위한 기본 소프트웨어들을 통칭한다. 본 발명에 따르면, 플랫폼(110) 상에서 현재 구동되는 애플리케이션 소프트웨어(120)에 의해서 제 1 쓰기 모드 셋 신호(WMS1)가 결정될 수 있다.
더불어, 유저 인터페이스(135)의 사용자 입력 여부나 입력 주기 등이 유저 컨텍스트 모니터(130)에 의해서 모니터링될 수 있다. 유저 컨텍스트 모니터(130)는 액정 표시 장치(LCD, 136)의 온/오프 상태를 모니터링할 수 있다. 유저 컨텍스트 모니터(130)는 유저 인터페이스(136)나 LCD(136)의 상태를 참조하여 제 2 쓰기 모드 셋 신호(WMS2)를 생성할 수 있다. 제 1 쓰기 모드 셋 신호(WMS1)와 제 2 쓰기 모드 셋 신호(WMS2)는 각각 독립적으로 생성될 수 있으며, 이러한 신호는 쓰기 모드 매니저(150)에 의해서 취합된다.
파일 시스템/장치 드라이버(140)에는 쓰기 모드 매니저(150)와 쓰기 큐 모니터(160)가 포함될 수 있다. 쓰기 큐 모니터(160)는 입출력 스케쥴러(165)에서 관리되는 쓰기 버퍼(166)의 상태를 모니터링한다. 즉, 쓰기 큐 모니터(160)는 쓰기 버퍼(166)에 누적된 데이터의 큐 사이즈(Queue size)를 모니터링하여 제 3 쓰기 모드 셋 신호(WMS3)를 생성할 수 있다. 제 3 쓰기 모드 셋 신호(WMS3)는 쓰기 모드 매니저(150)에 제공되어 쓰기 버퍼(166)의 상태에 따른 쓰기 모드 결정의 기준이 될 것이다.
쓰기 모드 매니저(150)는 제 1 내지 제 3 쓰기 모드 셋 신호(WMS1~WMS3)를 참조하여 메모리 시스템(200)에 쓰기 모드(WMi)를 전달한다. 쓰기 모드(WMi)는 제 1 내지 제 3 쓰기 모드 셋 신호(WMS1~WMS3) 각각에 의해서 결정되거나, 또는 제 1 내지 제 3 쓰기 모드 셋 신호(WMS1~WMS3)의 조합을 통해서 결정될 수 있을 것이다.
메모리 시스템(200)의 플래시 변환 계층은 제공되는 쓰기 모드(WMi)에 따라 선택된 메모리 영역에 액세스한다. 즉, 플래시 변환 계층(FTL)은 선택된 메모리 블록에 데이터를 기입하거나, 선택된 메모리 블록을 특정 소거 모드에 따라 소거한 후에 데이터를 기입할 것이다.
이상에서는 본 발명의 실시 예에 따른 호스트(100)의 소프트웨어 구조를 간략히 설명하였다. 하지만, 쓰기 모드 매니저(150)의 소프트웨어 계층 상에서의 위치는 도시된 예에만 국한되지 않는다.
도 4는 도 2의 메모리 컨트롤러의 하드웨어 요소를 예시적으로 보여주는 블록도이다. 도 4를 참조하면, 메모리 컨트롤러(210)는 프로세싱 유닛(211), 동작 메모리(212), 호스트 인터페이스(213), 에러 정정 유닛(214), 그리고 메모리 인터페이스(215)를 포함한다. 하지만, 메모리 컨트롤러(210)의 구성 요소들이 앞서 언급된 구성 요소들에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 메모리 컨트롤러(210)는 초기 부팅(Booting) 동작에 필요한 코드 데이터(Code data)를 저장하는 ROM(Read Only Memory) 등을 더 포함할 수 있다.
프로세싱 유닛(211)은 중앙 처리 장치(Central Processing Unit) 또는 마이크로프로세서(Micro-processor)를 포함한다. 프로세싱 유닛(211)은 메모리 컨트롤러(210)의 동작을 전반적으로 제어한다. 프로세싱 유닛(211)은 메모리 컨트롤러(210)를 제어하기 위한 펌웨어(Firmware)를 구동하도록 구성된다. 이러한 펌웨어는 동작 메모리(212)에 로딩(Loading)되어 구동된다.
동작 메모리(212)에는 메모리 컨트롤러(210)를 제어하기 위한 소프트웨어(또는, 펌웨어) 그리고 데이터가 로딩된다. 저장된 소프트웨어 및 데이터는 프로세싱 유닛(211)에 의해 구동되거나 처리된다. 동작 메모리(212)는 캐시(Cache) 메모리, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나를 포함할 것이다. 본 발명의 실시 예에 따르면, 동작 메모리(212)에는 플래시 변환 계층(FTL, 미도시)과 퍼블록 모드 테이블(216)이 로드될 것이다. 퍼블록 모드 테이블(216)에는 불휘발성 메모리 장치(230)의 메모리 블록들 각각에 대한 유효 소모값(EW), 누적 유효 소모값(CEW), 쓰기 모드(WMi) 등에 대한 정보가 보관 및 유지된다.
호스트 인터페이스(213)는 호스트(100)와 메모리 컨트롤러(210) 사이의 인터페이스를 제공한다. 호스트(100)와 메모리 컨트롤러(210)는 다양한 표준 인터페이스들(Standardized Interfaces) 중 하나를 통해 연결될 수 있다. 다른 예로써, 호스트(100)와 메모리 컨트롤러(210)는 다양한 표준 인터페이스들 중 복수의 인터페이스들을 통해 연결될 수 있다. 여기에서, 표준 인터페이스들은 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral component Interconnection), PCI-E(PCI Express), USB(Universal Serial Bus), IEEE 1394, Card 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함한다.
에러 정정 유닛(214)은 다양한 원인으로 인해 손상되는 데이터의 에러를 정정할 수 있다. 예를 들면, 에러 정정 유닛(214)은 불휘발성 메모리 장치(230)로부터 읽혀진 데이터의 에러를 검출 및 정정하기 위한 연산을 수행할 것이다.
메모리 인터페이스(215)는 메모리 컨트롤러(210)와 불휘발성 메모리 장치(230) 사이의 인터페이스를 제공한다. 예를 들면, 프로세싱 유닛(211)에 의해서 처리된 데이터가 메모리 인터페이스(215)를 통해 불휘발성 메모리 장치(230)에 저장된다. 다른 예로써, 불휘발성 메모리 장치(230)에 저장된 데이터는 메모리 인터페이스(215)를 통해 프로세싱 유닛(211)에 제공된다. 메모리 인터페이스(215)는 결정된 접근 모드(AMi)를 수행하기 위한 불휘발성 메모리 장치(230)에 대한 설정 동작을 수행할 수 있다. 명령어나 제어 신호를 통해서 불휘발성 메모리 장치(230)의 바이어스 설정이 수행될 것이다.
도 5는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다. 도 5를 참조하면, 불휘발성 메모리 장치(230)는 셀 어레이(121), 디코더(232), 페이지 버퍼(233), 제어 로직(234), 그리고 전압 발생기(235)를 포함한다.
셀 어레이(231)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 디코더(232)에 연결된다. 셀 어레이(231)는 비트 라인들(BLs)을 통해서 페이지 버퍼(233)에 연결된다. 셀 어레이(231)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각각의 메모리 블록들은 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. 소거 동작은 메모리 블록 단위로 수행된다. 소거 동작시, 셀 어레이(231)의 선택된 메모리 블록으로는 전압 발생기(235)에서 생성된 소거 전압(Vers_i, i는 모드에 따라 변경)이 제공된다. 그리고 소거 전압(Vers_i)의 공급 이후에 메모리 블록의 워드 라인들로는 소거 검증 전압(Vevf_i)이 제공될 것이다.
여기서, 소거 전압(Vers_i)은 소거 모드(EMi)에 따라서 가변될 수 있다. 예를 들면, 소거 상태(Erase state)에 대응하는 메모리 셀들의 문턱 전압이 상대적으로 높은 소거 모드에서는 소거 전압(Vers_i)의 레벨이 낮아질 수 있을 것이다. 또는, 증가형 스텝 펄스(Incremental Step Pulse) 형태로 소거 전압(Vers_i)이 제공되는 경우, 소거 시작 전압은 상대적으로 낮아질 수 있을 것이다. 더불어, 소거 모드(EMi)에 따라서 소거 검증 전압(Vevf_i)의 레벨이 결정될 수 있다.
디코더(232)는 어드레스(PA)에 응답하여 셀 어레이(231)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 디코더(232)는 선택된 메모리 블록의 워드 라인에 동작 모드에 대응하는 워드 라인 전압(VWL)을 제공할 수 있다. 예를 들면, 프로그램 동작시 디코더(232)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm_i)과 검증 전압(Vvf_i)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달한다. 그리고 디코더(232)는 선택 라인들(SSL, GSL)에 선택 신호를 제공하여 메모리 블록, 서브 블록 등을 선택할 수 있다. 읽기 동작시, 메모리 블록의 선택 워드 라인으로는 읽기 전압(Vrd_i)을 제공한다. 그리고 읽기 동작시, 메모리 블록의 비선택 워드 라인들로는 패스 읽기 전압(Vreadi)을 제공할 수 있다.
페이지 버퍼(233)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 프로그램 동작시, 페이지 버퍼(233)는 셀 어레이(231)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(233)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(233)는 감지된 데이터를 래치하여 외부에 전달한다.
제어 로직(234)은 외부로부터 전달되는 명령어(CMD)에 응답하여 페이지 버퍼(233)와 디코더(232)를 제어한다. 특히, 제어 로직(234)은 외부에서 제공되는 접근 모드(AMi)에 따라 선택된 메모리 블록에 대한 액세스 동작을 수행하도록 페이지 버퍼(233) 및 전압 발생기(235)를 제어할 수 있다. 예를 들면, 제어 로직(234)은 쓰기 모드(WMi)에 따라서 선택된 메모리 블록에 제공될 프로그램 전압과 검증 전압의 레벨을 생성하도록 전압 발생기(235)를 제어할 수 있다. 제어 로직(234)은 읽기 모드에 따라 다양한 읽기 전압(Vrd_i) 및 패스 읽기 전압(Vreadi) 셋을 생성하도록 전압 발생기(235)를 제어할 것이다.
전압 발생기(235)는 제어 로직(234)의 제어에 따라 각각의 워드 라인들로 공급될 다양한 종류의 워드 라인 전압들과, 메모리 셀들이 형성된 벌크(예를 들면, 웰 영역)로 공급될 전압을 발생한다. 각각의 워드 라인들로 공급될 워드 라인 전압들로는 프로그램 전압(Vpgm_i), 패스 전압(Vpass), 읽기 전압(Vrd_i), 패스 읽기 전압(Vreadi) 등이 있다. 전압 발생기(235)는 읽기 동작 및 프로그램 동작시에 선택 라인들(SSL, GSL)에 제공되는 선택 라인 전압(VSSL, VGSL)을 생성할 수 있다.
전압 발생기(235)는 특히 소거 전압(Vers_i)을 다양한 레벨로 생성할 수 있다. 전압 발생기(235)는 소거 모드(EMi)에 따라서 선택된 메모리 블록의 벌크 영역에 공급될 소거 전압(Vers_i)의 시작 펄스 레벨을 다양한 값으로 조정할 수 있다. 더불어, 전압 발생기(235)는 소거 전압(Vers_i)에 대응하는 레벨의 소거 검증 전압(Vevf_i)을 생성할 수 있다. 전압 발생기(235)는 읽기, 쓰기, 소거 등의 다양한 접근 모드(AMi)에 대응하는 제반 DC 전압을 생성할 수 있다.
본 발명의 불휘발성 메모리 장치(230)는 메모리 컨트롤러(210)에 의해서 제공되는 접근 모드(AMi)에 응답하여 선택된 메모리 블록에 대한 소거 바이어스, 쓰기 바이어스, 읽기 바이어스를 가변할 수 있다. 이러한 구조를 통해서 불휘발성 메모리 장치(230)의 메모리 블록에 인가되는 소거 전압 스트레스를 최소화할 수 있다. 소거 전압 스트레스의 저감에 따라 불휘발성 메모리 장치(230)의 수명은 증가할 수 있다.
도 6은 본 발명의 실시 예에 따른 유효 소모값(EW)을 예시적으로 보여주는 그래프이다. 도 6을 참조하면, 소거 전압(Vers_i)에 따르는 유효 소모값(EW)의 레벨이 직선 함수로 도시되어 있다.
가장 큰 소거 전압(Vers_Max)에 의해서 메모리 블록이 소거되는 경우에는 유효 소모값(EW)의 크기를 1로 결정할 수 있다. 그리고 가장 낮은 소거 전압(Vers_0)에 의해서 소거되는 경우, 메모리 블록의 유효 소모값(EW)은 0.4로 설정할 수 있다. 그리고 소거 전압(Vers_1)에 의해서 소거된 메모리 블록의 유효 소모값(EW)은 0.9에 맵핑할 수 있을 것이다. 이러한 유효 소모값(EW)의 설정은 예시적일 뿐이다. 소거 전압(Vers_i)과 그에 대응하는 유효 소모값(EW)의 대응 관계는 실험치들을 이용하여 다양하게 설정될 수 있음은 잘 이해될 것이다.
그리고 소거 전압(Vers_i)과 유효 소모값(EW)의 대응 관계는 직선 함수 형태가 아닌 포물선 함수, 지수 함수, 로그 형태로 설정될 수도 있을 것이다. 소거 전압(Vers_i)은 각각의 소거 동작에서 메모리 블록의 벌크 영역에 인가되는 소거 시작 전압(Erase start voltage)일 수 있다. 하지만, 소거 전압(Vers_i)의 정의는 여기에만 국한되지 않음은 잘 이해될 것이다.
도 7은 본 발명의 소거 모드(EMi)의 예를 보여주는 도면이다. 도 7을 참조하면, 소거 모드(EMi)는 소거 전압(Vers_i)의 레벨 또는 소거 검증 전압(Vevf_i)의 레벨에 따라서 구분될 수 있다.
먼저, 디폴트 소거 모드(EM0)를 살펴보자. 소거 모드에 대한 지정이 존재하지 않는 경우에는 디폴트 소거 모드(EM0)에 따라서 선택된 메모리 블록이 소거될 수 있다. 또는, 선택된 메모리 블록에 대해서 소거 모드(EM0)에 따라 소거되도록 설정되는 경우, 선택된 메모리 블록은 소거 시작 전압(Vers_Max)과 소거 검증 전압(Vevf_0)에 의거하여 소거된다.
증가형 스텝 펄스(Incremental Step Pulse) 방식에 따라 메모리 블록이 소거되는 경우, 선택된 메모리 블록의 벌크 영역에는 소거 시작 전압(Vers_Max)이 제공될 것이다. 이어서, 선택된 메모리 블록의 워드 라인들에는 소거 검증 전압(Vevf_0)이 제공될 것이다. 소거 검증 동작에 의해서 소거 검증 전압(Vevf_0)보다 문턱 전압이 높은 메모리 셀들이 존재하는 경우, 소거 전압(Vers_Max+ΔV)과 소거 검증 전압(Vevf_0)에 의한 소거 동작이 이어진다. 이렇게 점진적으로 소거 전압의 레벨은 증가하게 되고, 모든 메모리 셀들의 문턱 전압이 소거 검증 전압(Vevf_0)보다 낮아지는 경우 소거 완료된 것으로 판단될 것이다.
디폴트 소거 모드(EM0)에 대응하는 소거 동작에 의해서 선택된 메모리 블록의 메모리 셀들의 문턱 전압은 소거 상태(E0)에 대응하는 레벨로 이동한다. 소거 모드(EM0)의 실행에 따라 소거 상태(E0) 및 프로그램 상태들(P1, P2, P3)의 메모리 셀들의 문턱 전압은 소거 검증 전압(Vevf_0)보다 낮아지게 될 것이다.
제 1 소거 모드(EM1)를 살펴보자. 선택된 메모리 블록에 대해서 제 1 소거 모드(EM1)에 따라 소거되도록 결정되는 경우, 선택된 메모리 블록은 소거 시작 전압(Vers_1)과 소거 검증 전압(Vevf_1)에 의거하여 소거된다. 소거를 위해서 선택된 메모리 블록에는 소거 시작 전압(Vers_1)이 제공될 것이다. 이어서, 선택된 메모리 블록의 워드 라인들에는 소거 검증 전압(Vevf_1)이 제공될 것이다. 소거 검증 동작에 의해서 소거 검증 전압(Vevf_1)보다 문턱 전압이 높은 메모리 셀들이 존재하는 경우, 소거 전압(Vers_1+ΔV)과 소거 검증 전압(Vevf_1)에 의한 소거 동작이 이어진다.
이렇게 점진적으로 소거 전압의 레벨은 증가하게 되고, 모든 메모리 셀들의 문턱 전압이 소거 검증 전압(Vevf_1)보다 낮아지는 경우 소거 완료된 것으로 판단될 것이다. 제 1 소거 모드(EM1)에 대응하는 소거 동작에 의해서 선택된 메모리 블록의 메모리 셀들의 문턱 전압은 소거 상태(E1)에 대응하는 레벨로 이동한다. 메모리 셀들의 문턱 전압은 제 1 소거 모드(EM1)의 진행 이후에는 소거 검증 전압(Vevf_1)보다 낮아지게 될 것이다.
제 2 소거 모드(EM2)의 진행시에, 선택된 메모리 블록은 소거 시작 전압(Vers_2)과 소거 검증 전압(Vevf_2)에 의거하여 소거된다. 선택된 메모리 블록에는 소거 시작 전압(Vers_2)이 제공되고, 이어서 선택된 메모리 블록의 워드 라인들에는 소거 검증 전압(Vevf_2)이 제공될 것이다. 소거 검증 동작에 의해서 소거 미완료로 판정되면, 소거 전압(Vers_2+ΔV)과 소거 검증 전압(Vevf_2)에 의한 후속 소거 동작이 이어진다. 이렇게 점진적으로 소거 전압의 레벨은 증가하게 되고, 모든 메모리 셀들의 문턱 전압이 소거 검증 전압(Vevf_2)보다 낮아지는 경우 소거 완료된 것으로 판단될 것이다.
제 3 소거 모드(EM3)에 대응하는 소거 동작에 의해서 선택된 메모리 셀들의 문턱 전압은 소거 상태(E3)에 대응하는 레벨로 이동한다. 메모리 셀들의 문턱 전압은 제 3 소거 모드(EM3)의 진행 이후에는 소거 검증 전압(Vevf_3)보다 낮아지게 될 것이다.
이상에서 예시적으로 도시한 소거 모드들 각각의 소거 동작을 위한 전압 파형과 문턱 전압 분포도가 도시되었다. 여기서, 소거 모드가 4개의 모드로 분류되었으나, 소거 모드의 수는 그 이상이거나 또는 그 이하의 수로도 설정될 수 있다. 누적 유효 소모값(CEW)의 크기를 기준으로 디폴트 소거 모드(EM0) 내지 제 3 소거 모드(EM3) 중 어느 하나가 선택될 수 있다. 즉, 메모리 셀의 산화막 열화가 미미한 누적 유효 소모값(CEW)의 메모리 블록에 대해서는 디폴트 소거 모드(EM0)를 할당하고, 메모리 셀의 열화가 상당히 진행된 누적 유효 소모값(CEW)의 메모리 블록에 대해서는 상대적으로 스트레스가 적은 제 3 소거 모드(EM3)를 할당할 수 있다. 또한, 소거 모드에 대응하는 문턱 전압 분포는 상술한 분포에만 한정되지 않는다. 소거 상태들(E0, E1, E2, E3) 각각의 전압 폭은 도시된 형태에만 국한되지 않는다. 소거 상태들은 소거 모드 레벨이 증가할 수록 산포폭이 확장될 수도 있다. 예를 들면, 소거 상태(E3)의 산포폭이 소거 상태들(E0, E1, E2)의 산포폭보다 넓어질 수도 있을 것이다.
도 8은 도 4의 퍼블록 모드 테이블의 예를 간략히 보여주는 표이다. 도 8을 참조하면, 퍼블록 모드 테이블(216)은 평균 소거 카운트(216a), 평균 누적 유효 소모값(216b), 그리고 퍼블록 상태 테이블(216c)을 포함할 수 있다.
평균 소거 카운트(216a)는 웨어 레벨링 동작을 위한 기준값을 제공한다. 예를 들면, 평균 소거 카운트(216a)를 참조하여 소거 카운트가 상대적으로 큰 메모리 블록의 사용 빈도를 낮추게 될 것이다. 그리고 평균 소거 카운트(216a)를 참조하여 소거 카운트가 상대적으로 작은 메모리 블록에 대한 사용 빈도를 높이도록 설정될 것이다. 이러한 동작은 플래시 변환 계층(FTL)에서 수행될 것이다.
평균 누적 유효 소모값(216b)은 본 발명의 사상에 따른 웨어 레벨링을 위해 제공되는 기준이다. 평균 누적 유효 소모값(216b)은 각각의 메모리 블록들의 누적 유효 소모값(CEW)의 평균값에 해당한다. 플래시 변환 계층(FTL)은 평균 누적 유효 소모값(216b)을 참조하여 웨어 레벨링을 수행할 수 있다. 예를 들면, 플래시 변환 계층(FTL)은 평균 누적 유효 소모값(216b)에 비하여 누적 유효 소모값(CEW)이 큰 메모리 블록에 대해서 낮은 선택 우선 순위를 할당할 수 있다. 그리고 플래시 변환 계층(FTL)은 평균 누적 유효 소모값(216b)에 비하여 작은 누적 유효 소모값(CEW)을 갖는 메모리 블록에 대해서 높은 선택 우선 순위를 부여할 수 있을 것이다. 이러한 플래시 변환 계층(FTL)의 동작에 의해서 메모리 블록들 간의 누적 유효 소모값(216b) 편차는 줄어들게 될 것이다.
퍼블록 상태 테이블(216c)은 제반 메모리 블록들의 소거 상태를 저장한다. 즉, 퍼블록 상태 테이블(216c)은 메모리 블록들 각각에 대한 소거 카운트(EC), 유효 소모값(EW), 누적 유효 소모값(CEW)을 저장할 수 있다. 더불어, 퍼블록 상태 테이블(216c)은 쓰기 모드(Write Mode: 이하, WM) 또는 읽기 향상 쓰기 모드(REWM)를 저장할 수 있다. 여기서, 쓰기 모드(WM)는 유효 소모값(EW)에 따라서 결정될 수 있다. 또는 쓰기 모드(WM)는 유효 소모값(EW)에 관계없이 강제적으로 설정될 수 있음은 잘 이해될 것이다.
퍼블록 모드 테이블(216)은 상술한 정보들을 보유 및 업데이트한다. 그리고 플래시 변환 계층(FTL)의 요청에 따라 선택된 메모리 블록의 상태 정보들을 제공할 수 있다.
도 9는 본 발명의 실시 예에 따른 쓰기 모드들을 간략히 보여주는 도면들이다. 도 9를 참조하면, 4 가지의 쓰기 모드들(WM0~WM3)의 적용에 따라 선택된 메모리 셀들이 형성하는 문턱 전압 분포가 간략히 도시되어 있다. 하지만, 쓰기 모드(WM)는 4개 이상 또는 미만으로 분류될 수 있음은 잘 이해될 것이다. 여기서, 쓰기 모드(WM)는 소거 상태(E0, E1, E2, E3)에 의존적일 수 있다. 그러나 쓰기 모드(WMi)는 소거 상태와 관계없이 호스트(100) 또는 긴급한 경우에 강제로 지정될 수도 있을 것이다.
먼저, 디폴트 쓰기 모드(WM0)를 살펴보기로 한다. 디폴트 쓰기 모드(WM0)는 소거 동작에 의해서 메모리 셀들의 문턱 전압이 소거 상태(E0)에 대응하는 메모리 블록에 적용할 수 있다. 예를 들면, 디폴트 소거 모드(EM0)에 의해서 준비된 프리 블록(Free block)에 대해서 디폴트 쓰기 모드(WM0)를 적용할 수 있을 것이다. 디폴트 쓰기 모드(WM0)에 대응하는 프로그램 동작을 위해서 선택된 메모리 셀들에는 검증 전압 셋(Vvf0_1, Vvf0_2, Vvf0_3)이 제공될 수 있다. 더불어 증가형 스텝 펄스 프로그래밍(ISPP)을 위한 프로그램 전압(Vpgm)의 레벨도 쓰기 모드에 따라 달라질 수 있다. 예를 들면, 디폴트 쓰기 모드(WM0)에서 인가되는 프로그램 전압의 증가 스텝은 상대적으로 큰 값일 수 있을 것이다. 따라서, 디폴트 쓰기 모드(WM0)의 적용시 쓰기 속도는 다른 쓰기 모드(WM1~WM3)에 비하여 상대적으로 빨라질 수 있다.
제 1 쓰기 모드(WM1)의 적용에 따라 메모리 셀들의 문턱 전압은 소거 상태(E1)와 프로그램 상태들(P1, P2, P3)로 형성될 수 있다. 제 1 쓰기 모드(WM1)에 대응하는 프로그램 동작을 위해서 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf1_1, Vvf1_2, Vvf1_3)이 제공될 수 있다. 제 1 쓰기 모드(WM1)에 따른 프로그램 속도는 디폴트 쓰기 모드(WM0)에 비해서 느릴 수 있다. 제 1 쓰기 모드(WM1)를 수행하기 위해서는 제 1 소거 모드(EM1)에 의해서 소거된 메모리 블록이 선택되는 것이 바람직할 것이다.
제 2 쓰기 모드(WM2)가 적용된 메모리 셀들의 문턱 전압은 소거 상태(E2)와 프로그램 상태들(P1, P2, P3)로 형성될 수 있다. 제 2 쓰기 모드(WM2)에 대응하는 프로그램 동작을 위해서 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf2_1, Vvf2_2, Vvf2_3)이 제공될 수 있다. 제 2 쓰기 모드(WM2)에 따른 프로그램 속도는 제 1 쓰기 모드(WM1)에 비해서 느릴 수 있다. 제 2 쓰기 모드(WM2)를 수행하기 위해서는 제 2 소거 모드(EM2)에 의해서 소거된 메모리 블록이 선택되는 것이 바람직할 것이다. 그래야 소거 상태(E2)로부터 프로그램 상태들(P1, P2, P3)로 메모리 셀들이 프로그램되는 속도를 향상시킬 수 있을 것이다.
제 3 쓰기 모드(WM3)가 적용된 메모리 셀들의 문턱 전압은 소거 상태(E3)와 프로그램 상태들(P1, P2, P3)로 형성될 수 있다. 제 3 쓰기 모드(WM3)에 대응하는 프로그램 동작을 위해서 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf3_1, Vvf3_2, Vvf3_3)이 제공될 수 있다. 제 3 쓰기 모드(WM3)에 따른 프로그램 속도는 제 2 쓰기 모드(WM2)에 비해서 느릴 수 있다. 제 3 쓰기 모드(WM3)를 수행하기 위해서는 제 3 소거 모드(EM3)에 의해서 소거된 메모리 블록이 선택되는 것이 바람직할 것이다.
이상에서는 쓰기 모드들(WM0~WM3)에 대해 간략히 설명되었다. 각각의 쓰기 모드들은 소거 모드(EM0~EM3)에 의해서 기본적으로 결정될 수 있다. 하지만, 쓰기 모드는 소거 모드들(EM0~EM3)에 관계없이 설정되더라도 프로그램을 진행하는 데는 문제가 없다. 더불어, 각각의 쓰기 모드들(WM0, WM1, WM2, WM3)에 대응하는 검증 전압 셋의 레벨은 예시적일 뿐임은 잘 이해될 것이다.
도 10은 본 발명의 실시 예에 따른 읽기 향상 쓰기 모드들을 보여주는 도면들이다. 도 10을 참조하면, 디폴트 쓰기 모드(WM0) 및 읽기 향상 쓰기 모드들(REWM1~REWM3)의 적용에 따라 선택된 메모리 셀들이 형성하는 문턱 전압 분포가 간략히 도시되어 있다. 여기서, 쓰기 모드의 개수는 다양하게 변경될 수 있음은 잘 이해될 것이다.
디폴트 쓰기 모드(WM0)를 살펴보기로 한다. 디폴트 쓰기 모드(WM0)는 앞서 설명된 도 9의 디폴트 쓰기 모드(WM0)와 동일한 것으로 간주할 수 있다. 따라서, 디폴트 쓰기 모드(WM0)에 의해서 프로그램된 메모리 셀들을 읽기 위해서는 디폴트 패스 읽기 전압(Vread0)이 인가되어야 할 것이다. 패스 읽기 전압(Vread0)은 복수의 패스 읽기 전압들(Vread0, Vread1, Vread2, Vread3) 중에서 가장 높은 레벨에 해당한다.
제 1 읽기 향상 쓰기 모드(REWM1)의 적용에 따라 메모리 셀들의 문턱 전압은 소거 상태(E0)와 프로그램 상태들(P1, P2, P3)로 형성될 수 있다. 읽기 향상 쓰기 모드(REWM1)에 대응하는 프로그램 동작을 위해서 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf1'_1, Vvf1'_2, Vvf1'_3)이 제공될 수 있다. 여기서, 검증 전압 셋(Vvf1'_1, Vvf1'_2, Vvf1'_3)의 레벨은 프로그램 상태들(P1, P2, P3)의 위치가 디폴트 쓰기 모드(WM0)에 비하여 소거 상태(E0) 측으로 이동한 것을 확인할 수 있다. 이러한 읽기 향상 쓰기 모드(REWM1)의 적용에 따르면, 이후 읽기 동작시에 메모리 셀들에는 디폴트 패스 읽기 전압(Vread0)보다 낮은 제 1 패스 읽기 전압(Vread1)이 제공될 수 있다. 따라서, 디폴트 패스 읽기 전압(Vread0)의 제공에 따른 읽기 교란(Read disturbance)의 크기를 줄일 수 있다.
제 2 읽기 향상 쓰기 모드(REWM2)를 적용하기 위해 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf2'_1, Vvf2'_2, Vvf2'_3)이 제공될 수 있다. 여기서, 검증 전압 셋(Vvf2'_1, Vvf2'_2, Vvf2'_3)의 레벨은 프로그램 상태들(P1, P2, P3)의 위치가 제 1 읽기 향상 쓰기 모드(REWM1)에 비하여 소거 상태(E0) 측으로 이동한 것을 확인할 수 있다. 이러한 제 2 읽기 향상 쓰기 모드(REWM2)의 적용에 따르면, 이후 읽기 동작시에 메모리 셀들에는 제 1 패스 읽기 전압(Vread1)보다 낮은 제 2 패스 읽기 전압(Vread2)이 제공될 수 있다.
제 3 읽기 향상 쓰기 모드(REWM3)를 적용하기 위해 선택된 메모리 셀들의 워드 라인으로는 프로그램 전압(Vpgm)과 검증 전압 셋(Vvf3'_1, Vvf3'_2, Vvf3'_3)이 제공될 수 있다. 여기서, 검증 전압 셋(Vvf3'_1, Vvf3'_2, Vvf3'_3)의 레벨은 프로그램 상태들(P1, P2, P3)의 위치가 제 2 읽기 향상 쓰기 모드(REWM2)에 비하여 소거 상태(E0) 측으로 이동한 것을 확인할 수 있다. 이러한 제 3 읽기 향상 쓰기 모드(REWM3)의 적용에 따르면, 이후 읽기 동작시에 메모리 셀들에는 제 2 패스 읽기 전압(Vread2)보다 낮은 제 3 패스 읽기 전압(Vread3)이 제공될 수 있다.
여기서, 각각의 읽기 향상 쓰기 모드들(WM0, REWM1, REWM2, REWM3)에 대응하는 검증 전압 셋들의 레벨은 예시적일 뿐이며 다양한 변경이 가능함은 잘 이해될 것이다.
도 11은 본 발명의 제 1 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 블록도이다. 도 11을 참조하면, 쓰기 모드 매니저(150)는 쓰기 요청(WR)을 발행하는 애플리케이션 소프트웨어(120)의 종류에 따라서 쓰기 모드(WMi)를 결정할 수 있다.
쓰기 모드 매니저(150)는 쓰기 모드(WMi)의 결정을 위해 애플리케이션 소프트웨어(120)를 그룹 단위로 분류한다. 쓰기 모드 매니저(150)는 실행중인 애플리케이션들(App_1, App_5)을 제 1 실행 그룹(121)으로 분류한다. 그리고 쓰기 모드 매니저(150)는 제 1 실행 그룹(121)에 해당되는 애플리케이션들(App_1, App_5)로부터 발행되는 쓰기 요청에 대해서는 디폴트 쓰기 모드(WM0)로 관리한다.
쓰기 모드 매니저(150)는 실행중인 애플리케이션들(App_3, App_8, App_12)을 제 2 실행 그룹(122)으로 분류한다. 그리고 쓰기 모드 매니저(150)는 제 2 실행 그룹(122)에 해당되는 애플리케이션들(App_3, App_8, App_12)로부터 발행되는 쓰기 요청에 대해서는 제 1 쓰기 모드(WM1)로 관리한다.
쓰기 모드 매니저(150)는 실행중인 애플리케이션들(App_6, App_9)을 제 3 실행 그룹(123)으로 분류한다. 그리고 쓰기 모드 매니저(150)는 제 3 실행 그룹(123)에 해당되는 애플리케이션들(App_3, App_9)로부터 발행되는 쓰기 요청에 대해서는 제 2 쓰기 모드(WM2)로 관리한다.
쓰기 모드 매니저(150)는 실행중인 애플리케이션(App_16)을 제 4 실행 그룹(124)으로 분류한다. 그리고 쓰기 모드 매니저(150)는 제 4 실행 그룹(124)에 해당되는 애플리케이션(App_16)으로부터 발행되는 쓰기 요청에 대해서는 제 3 쓰기 모드(WM3)로 관리한다.
비실행 그룹(125)의 애플리케이션들(App_0, App_2, App_4, App_7, App_10, App11, …) 각각은 언제든지 실행되면, 쓰기 모드 매니저(150)는 복수의 실행 그룹들(121~124) 중 어느 하나로 분류될 것이다.
도 12는 제 1 실시 예에 따른 쓰기 모드 매니저의 쓰기 모드 결정 방법을 보여주는 순서도이다. 도 12를 참조하여, 실행되는 애플리케이션의 종류에 따라 쓰기 모드(WMi)를 결정하는 방법이 예시적으로 설명될 것이다.
S110 단계에서, 쓰기 모드 매니저(150)는 실행 중인 애플리케이션들로부터 쓰기 요청을 검출 및 수신한다. 쓰기 요청은 각각의 애플리케이션이 데이터를 처리하거나 네트워크로부터 수신하는 과정 등과 같이 다양한 상황에서 발생하게 될 것이다.
S120 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청을 생성한 애플리케이션이 어느 실행 그룹에 속하는지 검출하게 될 것이다. 쓰기 요청을 발행한 애플리케이션이 제 1 실행 그룹(Group1)에 속하는 경우, 절차는 S130 단계로 이동한다. 쓰기 요청을 발행한 애플리케이션이 제 2 실행 그룹(Group2)에 속하는 경우, 절차는 S140 단계로 이동한다. 쓰기 요청을 발행한 애플리케이션이 제 1 실행 그룹(Group1)에 속하는 경우, 절차는 S130 단계로 이동한다. 쓰기 요청을 발행한 애플리케이션이 제 3 실행 그룹(Group3)에 속하는 경우에 절차는 S150 단계로 이동한다. 그리고 쓰기 요청을 발행한 애플리케이션이 제 4 실행 그룹(Group4)에 속하는 경우에 절차는 S160 단계로 이동한다.
S130 단계에서, 쓰기 모드 매니저(150)는 애플리케이션으로부터 쓰기 요청된 데이터를 디폴트 쓰기 모드(WM0)에 따라 불휘발성 메모리 장치(230, 도 2 참조)에 프로그램하기로 결정한다. 즉, 제 1 실행 그룹(Group1)에 대응하는 애플리케이션에 의해서 발행되는 쓰기 요청된 데이터는 고속으로 불휘발성 메모리 장치(230)에 프로그램될 것이다.
S140 단계에서, 쓰기 모드 매니저(150)는 애플리케이션으로부터 쓰기 요청된 데이터를 제 1 쓰기 모드(WM1)에 따라 불휘발성 메모리 장치(230, 도 2 참조)에 프로그램하기로 결정한다. 즉, 제 2 실행 그룹(Group2)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 디폴트 쓰기 모드(WM0) 보다는 느리게 불휘발성 메모리 장치(230)에 기입될 것이다. 하지만, 제 2 실행 그룹(Group2)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 제 1 실행 그룹(Group1)에 비하여 데이터 신뢰도는 증가하고 전압 스트레스는 감소하는 쓰기 바이어스에 따라 불휘발성 메모리 장치(230)에 프로그램될 것이다.
S150 단계에서, 쓰기 모드 매니저(150)는 애플리케이션으로부터 쓰기 요청된 데이터를 제 2 쓰기 모드(WM2)에 따라 불휘발성 메모리 장치(230)에 프로그램하기로 결정한다. 즉, 제 3 실행 그룹(Group3)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 제 1 쓰기 모드(WM1) 보다는 느리게 불휘발성 메모리 장치(230)에 기입될 것이다. 하지만, 제 3 실행 그룹(Group3)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 제 2 실행 그룹(Group2)에 비하여 데이터 신뢰도는 증가하고 전압 스트레스는 감소하는 쓰기 바이어스에 따라 불휘발성 메모리 장치(230)에 프로그램될 것이다.
S160 단계에서, 쓰기 모드 매니저(150)는 애플리케이션으로부터 쓰기 요청된 데이터를 제 3 쓰기 모드(WM3)에 따라 불휘발성 메모리 장치(230)에 프로그램하기로 결정한다. 즉, 제 4 실행 그룹(Group4)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 제 2 쓰기 모드(WM2) 보다는 느리게 불휘발성 메모리 장치(230)에 기입될 것이다. 하지만, 제 4 실행 그룹(Group4)에 대응하는 애플리케이션에 의해서 쓰기 요청된 데이터는 제 3 실행 그룹(Group3)에 비하여 데이터 신뢰도는 증가하고 전압 스트레스는 감소하는 쓰기 바이어스에 따라 불휘발성 메모리 장치(230)에 프로그램될 것이다.
S170 단계에서, 쓰기 모드 매니저(150)는 결정된 쓰기 모드에 따라 선택된 메모리 영역에 데이터를 기입하도록 메모리 시스템(200)에 요청할 것이다. 이때, 쓰기 요청(WR)과 함께 쓰기 모드(WMi)에 대한 정보가 메모리 시스템(200)에 제공될 것이다. 이상에서는 애플리케이션의 종류에 따라 쓰기 모드(WMi)를 결정하는 제 1 실시 예에 따른 쓰기 모드 결정 방법이 설명되었다.
도 13은 본 발명의 제 2 실시 예에 따른 호스트의 쓰기 모드 결정 방법을 보여주는 순서도이다. 도 13을 참조하여, 입출력 장치(예를 들면, LCD)의 상태와 유저 인터페이스에 의해서 검출되는 유저로부터 입력 시점을 고려하여 쓰기 모드(WMi)를 결정하는 방법이 예시적으로 설명될 것이다.
S210 단계에서, 쓰기 모드 매니저(150)는 유저 콘텍스트 모니터(130, 도 3 참조)로부터 쓰기 요청 셋 신호(WMS2)를 수신한다. 유저 콘텍스트 모니터(130)는 사용자 장치의 LCD(136, 도 3 참조)의 온/오프 상태, 유저 인터페이스(135)의 유저 입력의 입력 상태를 검출할 수 있다. 더불어, 유저 콘텍스트 모니터(130)는 LCD(136)의 온/오프 전환 시점으로부터의 경과 시간, 화면 보호 모드 실행 여부를 검출할 수 있다. 유저 콘텍스트 모니터(130)는 사용자 장치(100)의 잠김 모드 상태, 절전 모드의 활성화 여부, 사용자의 눈동자가 LCD(136)를 주시하는지의 여부, 포어그라운드 애플리케이션(Foreground Application) 정보, 메모리 시스템(200)의 수명, 그리고 메모리 시스템(200)에 현재까지 기입된 총 데이터량 등을 모니터링할 수 있다.
S220 단계에서, 쓰기 모드 매니저(150)는 LCD(136)의 온/오프 상태를 검출한다. 여기서, LCD(136)가 온(On) 상태라는 것은 LCD(136)에 영상이 나타나 있는 상태를 의미한다. LCD(136)가 오프(Off) 상태라는 것은 LCD(136)를 통해서 어떤 정보나 영상이 표시되지 못하는 상태를 의미한다. 만일, LCD(136)가 온(On) 상태인 경우, 절차는 S230 단계로 이동할 것이다. 반면, LCD(136)가 오프(Off) 상태라면, 절차는 S225 단계로 이동한다.
S225 단계에서, 쓰기 모드 매니저(150)는 LCD(136)가 턴오프된 시점으로부터 경과 시간(Time elapse)을 모니터링한다. 만일, 경과 시간(Time elapse)이 기준 시간(Tth, Tth > 0)을 초과하는 경우(Yes 방향), 절차는 S270 단계로 이동한다. 반면, 경과 시간(Time elapse)이 기준 시간(Tth)에 도달하지 못한 경우(No 방향), 절차는 S220 단계로 복귀하여 LCD(136)의 상태를 모니터링하게 될 것이다. 여기서, 기준 시간(Tth)의 길이를 증가시키면, 사용자가 LCD(136)의 오프 상태 이후에 발생하는 쓰기 모드(WM)의 전환을 감지하기 어렵게 될 것이다.
여기서, LCD(136)의 온/오프 상태를 예로들어 본 발명의 이점을 설명하였다. 하지만, 쓰기 모드 매니저(150)는 LCD(136)의 온/오프 상태뿐만 아니라, 사용자 장치(100)의 화면 보호 모드, 잠김 모드, 절전 모드(Power saving mode), 사용자의 눈동자가 LCD(136)를 주시하는지의 여부, 실행중인 포어그라운드 애플리케이션이 유저에 대한 응답(Response)과 관련되었는지의 여부 등을 참조하여 동작 분기를 할 수 있을 것이다.
또한, 쓰기 모드 매니저(150)는 메모리 시스템(200)의 수명 정보, 그리고 메모리 시스템(200)에 현재까지 기입된 총 데이터량 등을 참조하여 쓰기 모드를 강제로 결정할 수도 있을 것이다. 예를 들면, 메모리 시스템(200)에서의 쓰기 동작이 상대적으로 빈번하여 메모리 수명을 보장할 수 없는 경우에는, 쓰기 모드 매니저(150)는 다른 조건보다 우선적으로 수명을 높일 수 있는 쓰기 모드를 선택할 수 있다. 이 경우, 쓰기 속도는 느려지더라도 상대적으로 높은 수명을 보장받을 수 있을 것이다. 이러한 동작을 위해서는 메모리 시스템(200)으로부터 수명 정보, 기입된 총 데이터량을 제공받기 위한 인터페이스가 추가될 필요가 있다.
S230 단계에서, 쓰기 모드 매니저(150)는 유저 인터페이스(135)로부터 제공되는 유저의 입력(User Input)과 쓰기 요청 간의 시간 간격을 검출한다. 쓰기 요청이 유저의 입력(User Input)에 의해서 발행되는 경우, 유저에게 신속한 응답을 제공해야 할 경우도 있고, 상대적으로 응답을 느리게 제공해도 무방한 경우가 있다. 유저에게 신속하게 응답하기 위해서는 빠른 쓰기 모드가 지원되어야 한다. 유저의 입력 시간과 쓰기 요청 간의 시간 간격(Time Interval: 이하, TI)이 가장 짧은 경우(TI≤T1), 절차는 S240 단계로 이동한다. 시간 간격(TI)이 T1보다 길고, T2 이하인 경우(T1<TI≤T2), 절차는 S250 단계로 이동한다. 시간 간격(TI)이 T2보다 긴 경우(T2<TI), 절차는 S260 단계로 이동한다.
S240 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청된 데이터를 디폴트 쓰기 모드(WM0)에 따라 불휘발성 메모리 장치(230, 도 2 참조)에 프로그램하기로 결정한다. S250 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청된 데이터를 제 1 쓰기 모드(WM1)에 따라 불휘발성 메모리 장치(230)에 프로그램하기로 결정한다. S260 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청된 데이터를 제 2 쓰기 모드(WM2)에 따라 불휘발성 메모리 장치(230)에 프로그램하기로 결정한다. S270 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청된 데이터를 제 3 쓰기 모드(WM3)에 따라 불휘발성 메모리 장치(230)에 프로그램하기로 결정한다.
S280 단계에서, 쓰기 모드 매니저(150)는 결정된 쓰기 모드에 따라 선택된 메모리 영역에 데이터를 기입하도록 메모리 시스템(200)에 요청할 것이다. 이때, 쓰기 요청(WR)과 함께 쓰기 모드(WMi)에 대한 정보가 메모리 시스템(200)에 제공될 것이다.
이상에서는 유저 콘텍스트 모니터(130, 도 3 참조)에 의해서 제공되는 정보를 참조하여 쓰기 모드를 결정하는 방법이 설명되었다.
도 14는 본 발명의 제 3 실시 예에 따른 쓰기 모드 결정 방법을 보여주는 블록도이다. 도 14를 참조하면, 쓰기 모드 매니저(150)는 현재 쓰기 요청에 대한 쓰기 모드를 쓰기 큐 모니터(160)로부터 제공되는 쓰기 버퍼(166)의 상태에 따라 결정할 것이다. 여기서, 쓰기 버퍼(166)는 동기 큐(166a)와 비동기 큐(166b)로 구분하여 관리될 수 있다.
쓰기 버퍼(166)로의 쓰기 요청이 발생하면, 입출력 스케줄러(165)에 의해서 쓰기 요청의 특성에 따라 데이터는 동기 큐(166a) 또는 비동기 큐(166b)로 분류된다. 만일, 신속한 쓰기가 수행되지 못할 경우에 유저에게 성능 저하를 느끼게 할 수 있는 쓰기 데이터는 동기 큐(166a)에 저장될 것이다. 예시적으로 쓰기 데이터들(WD1, WD2, WD4, WD7, WD8)이 이런 동기 큐(166a)로 분류된다. 하지만, 신속한 쓰기가 수행되지 못할 경우에 유저에게 성능 저하를 느끼게 할 수 있는 쓰기 데이터는 동기 큐(166a)에 저장될 것이다. 예시적으로 쓰기 데이터들(WD3, WD5, WD6)이 이런 비동기 큐(166b)로 분류된다.
본 발명의 쓰기 큐 모니터(160, 도 3 참조)는 입출력 스케줄러(165) 또는 쓰기 버퍼(166)로부터 누적된 쓰기 데이터의 크기에 대한 정보(Queue size)를 제공받는다. 그리고 쓰기 큐 모니터(160)는 큐 사이즈(Queue Size: QS)에 대한 정보를 쓰기 모드 매니저(150)에 전달한다. 쓰기 큐 모니터(160)는 동기 큐(166a)에 누적된 데이터의 큐 사이즈(QS)와 비동기 큐(166b)에 누적된 데이터의 큐 사이즈(QS')를 쓰기 모드 매니저(150)에 전달할 것이다.
쓰기 모드 매니저(150)는 큐 사이즈(QS, QS')를 참조하여 현재의 쓰기 요청된 데이터의 쓰기 모드(WMi)를 결정할 수 있다. 즉, 쓰기 모드 매니저(150)는 메모리 시스템(200)에 기입할 큐 사이즈가 큰 경우에는, 고속의 쓰기 모드를 선택할 것이다. 반면, 쓰기 모드 매니저(150)는 메모리 시스템(200)에 기입할 큐 사이즈가 상대적으로 작은 경우, 저속의 쓰기 모드를 선택할 것이다. 여기서, 쓰기 모드 매니저(150)는 동기 큐(166a)의 큐 사이즈(QS)를 참조하여 쓰기 모드를 결정할 수도 있다. 또는, 쓰기 모드 매니저(150)는 동기 큐(166a)의 쓰기 데이터는 고속의 쓰기 모드로, 비동기 큐(166b)의 쓰기 데이터는 저속의 쓰기 모드를 할당할 수도 있을 것이다.
도 15는 본 발명의 제 3 실시 예에 따른 호스트의 쓰기 모드 결정 방법을 보여주는 순서도이다. 도 15를 참조하면, 쓰기 버퍼(166)에 누적된 큐 사이즈를 참조하여 쓰기 모드(WMi)가 결정되는 방법이 예시적으로 설명될 것이다.
S310 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청과 현재 쓰기 버퍼(166)에 저장된 데이터의 큐 사이즈(QS)에 대한 정보를 쓰기 큐 모니터(160)로부터 제공받는다. 그리고 쓰기 모드 매니저(150)는 쓰기 버퍼(166)에 누적된 쓰기 데이터의 큐 사이즈(Queue size)를 검출하게 될 것이다.
S320 단계에서, 쓰기 모드 매니저(150)는 큐 사이즈(QS)에 따라 쓰기 모드(WMi)를 결정한다. 큐 사이즈(QS)가 제 3 임계치(TH3)를 초과하는 경우, S330 단계에서 쓰기 모드 매니저(150)는 현재 쓰기 요청된 데이터를 고속으로 기입하기 위하여 디폴트 쓰기 모드(WM0)를 할당하게 될 것이다. 큐 사이즈(QS)가 제 2 임계치(TH2)를 초과하고 제 3 임계치 이하인 경우, S340 단계에서 쓰기 모드 매니저(150)는 현재 쓰기 요청된 데이터에 대해서 제 1 쓰기 모드(WM1)를 할당할 것이다. 큐 사이즈(QS)가 제 1 임계치(TH1)를 초과하고 제 2 임계치 이하인 경우, S350 단계에서 쓰기 모드 매니저(150)는 현재 쓰기 요청된 데이터에 대해서 제 2 쓰기 모드(WM2)를 할당할 것이다. 큐 사이즈(QS)가 제 1 임계치(TH2) 이하인 경우, S360 단계에서 쓰기 모드 매니저(150)는 현재 쓰기 요청된 데이터에 대해서 제 3 쓰기 모드(WM3)를 할당할 것이다.
S370 단계에서, 쓰기 모드 매니저(150)는 결정된 쓰기 모드(WMi)에 따라 선택된 메모리 영역에 데이터를 기입하도록 메모리 시스템(200)에 요청할 것이다. 이때, 쓰기 요청(WR)과 함께 쓰기 모드(WMi)에 대한 정보가 메모리 시스템(200)에 제공될 것이다.
도 16은 본 발명의 제 4 실시 예에 따른 호스트의 쓰기 모드 결정 방법을 보여주는 순서도이다. 도 16을 참조하면, 쓰기 요청된 데이터의 속성에 따라서 쓰기 모드(WMi)가 결정되는 실시 예가 도시된다.
S410 단계에서, 쓰기 모드 매니저(150)는 쓰기 요청된 데이터의 속성을 검출한다. 여기서, 쓰기 요청된 데이터의 속성으로 데이터의 기입에 대한 긴급성(Urgency)을 예로 하였다. 하지만, 쓰기 요청된 데이터의 속성(Attribute)은 데이터의 중요도나 데이터의 크기를 포함할 수 있다.
S420 단계에서 쓰기 요청된 데이터의 속성(Attribute)에 따른 쓰기 모드(WMi)의 결정이 이루어진다. 쓰기 요청된 데이터의 속성이 가장 긴급한 쓰기를 요하는 경우(Most Urgent), 절차는 현재 쓰기 요청된 데이터를 고속으로 기입하기 위하여 디폴트 쓰기 모드(WM0)를 할당하는 S430 단계로 이동한다. 쓰기 요청된 데이터의 속성이 비교적 긴급한 쓰기를 요하는 경우(Urgent), 절차는 현재 쓰기 요청된 데이터를 기입하기 위하여 제 1 쓰기 모드(WM1)를 할당하는 S440 단계로 이동한다. 쓰기 요청된 데이터의 속성이 비교적 덜 긴급한 쓰기를 요하는 경우(Less Urgent), 절차는 현재 쓰기 요청된 데이터에 대해서 제 2 쓰기 모드(WM2)를 할당하는 S450 단계로 이동할 것이다. 쓰기 요청된 데이터의 속성이 긴급한 쓰기를 요하지 않는 경우(Not Urgent), 절차는 현재 쓰기 요청된 데이터에 대해서 제 3 쓰기 모드(WM3)를 할당하는 S460 단계로 이동할 것이다.
S470 단계에서, 쓰기 모드 매니저(150)는 결정된 쓰기 모드에 따라 선택된 메모리 영역에 데이터를 기입하도록 메모리 시스템(200)에 요청할 것이다. 이때, 쓰기 요청(WR)과 함께 쓰기 모드(WMi)에 대한 정보가 메모리 시스템(200)에 제공될 것이다.
도 17은 도 2의 호스트의 소프트웨어 구조의 다른 예를 보여주는 블록도이다. 도 17을 참조하면, 호스트(100)의 소프트웨어(100')는 개략적으로 플랫폼(310), 파일 시스템/장치 드라이버(350)를 포함할 수 있다. 그리고 쓰기 모드 매니저(340)는 플랫폼(310) 계층에 포함될 수 있다.
플랫폼(310)에는 애플리케이션 소프트웨어(320), 유저 컨텍스트 모니터(330), 그리고 쓰기 모드 매니저(340)가 포함될 수 있다. 쓰기 모드 매니저(340)는 쓰기 요청을 발행하는 애플리케이션 소프트웨어(320)의 종류나 쓰기 요청의 속성 등을 모니터링할 수 있다. 유저 인터페이스(335)의 사용자 입력 여부나 입력 주기 등이 유저 컨텍스트 모니터(330)에 의해서 모니터링될 수 있다. 유저 컨텍스트 모니터(330)는 LCD(336)의 온/오프 상태를 모니터링할 수 있다. 유저 컨텍스트 모니터(330)는 유저 인터페이스(336)나 LCD(336)의 온/오프 상태, 유저 인터페이스(335)의 유저 입력의 입력 상태를 검출할 수 있다. 더불어, 유저 콘텍스트 모니터(330)는 LCD(336)의 온/오프 전환 시점으로부터의 경과 시간, 화면 보호 모드 실행 여부를 검출할 수 있다. 유저 콘텍스트 모니터(330)는 사용자 장치(100')의 잠김 모드 상태, 절전 모드의 활성화 여부, 사용자의 눈동자가 LCD(336)를 주시하는지의 여부, 포어그라운드 애플리케이션(Foreground Application) 정보, 메모리 시스템(410)의 수명, 그리고 메모리 시스템(410)에 현재까지 기입된 총 데이터량 등을 모니터링하여 쓰기 모드 매니저(340)에 제공할 수 있다. 그러면, 쓰기 모드 매니저(340)에 의해서 복수의 쓰기 모드들 중 어느 하나가 선택될 것이다. 선택된 쓰기 모드(WMi)는 파일 시스템/장치 드라이버(350)를 경유하여 메모리 시스템(410) 측으로 전달될 수 있다.
이상에서는 본 발명의 실시 예에 따른 호스트의 소프트웨어(100') 구조를 간략히 설명하였다. 하지만, 쓰기 모드 매니저(150)의 소프트웨어 계층 상에서의 위치는 도시된 예에만 국한되지 않는다.
도 18a 및 도 18b는 본 발명의 실시 예들을 적용하기 위한 호스트의 소프트웨어 계층에서의 인터페이스 방법을 보여주는 블록도들이다.
도 18a를 참조하면, 쓰기 모드 매니저(525)가 파일 시스템/장치 드라이버(520) 계층에 포함되는 예를 보여준다. 이 경우, 플랫폼(510)으로부터 LCD 상태, 유저 인터페이스의 입출력 상태를 제공받게 될 것이다. 그리고 플랫폼(510)으로부터의 정보에 기초하여 쓰기 모드 매니저(525)가 쓰기 모드를 결정하고, 메모리 시스템(530)에 쓰기 요청(WR) 및 쓰기 모드(WMi)에 대한 정보를 전달할 것이다.
도 18b를 참조하면, 쓰기 모드 매니저(612)가 플랫폼(610)에 포함되는 예를 보여준다. 이 경우, 플랫폼(610)에서 LCD 상태, 유저 인터페이스의 입출력 상태를 제공받고 플랫폼(610) 내부에서 쓰기 모드(WMi)가 결정될 수 있다. 그리고 플랫폼(610)의 쓰기 모드 매니저(612)에서 결정된 쓰기 모드(WMi)는 파일 시스템/장치 드라이버(620)에서 정정되지 않고 바이패스될 수 있다. 바이패스된 쓰기 요청(WR) 및 쓰기 모드(WMi)는 메모리 시스템(630)에 전달될 것이다.
도 19는 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 24를 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
호스트(1100)에는 쓰기 모드 매니저(1150)가 포함된다. 쓰기 모드 매니저(1150)는 호스트(1100)에서 구동 중인 애플리케이션의 종류, LDC의 온/오프 상태, 유저 인터페이스에 입력된 사용자의 입력 시간 간격, 쓰기 버퍼에 누적된 데이터의 크기, 쓰기 데이터의 속성 등에 따라 쓰기 모드(WMi)를 결정할 것이다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 쓰기 모드(WMi)를 참조하여 불휘발성 메모리 장치(1230)에 대한 접근 모드를 가변시킬 수 있다. 즉, SSD 컨트롤러(1210)는 쓰기 모드(WMi)에 따라서 불휘발성 메모리 장치(1230)의 접근 바이어스를 조정할 수 있다. 즉, SSD 컨트롤러(1210)는 소거 전압의 레벨에 따라 다양한 메모리 관리 동작을 수행할 수 있다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다.
저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치(1230)는 버퍼 프로그램 동작을 위한 버퍼 영역과 메인 프로그램 동작을 위한 메인 영역을 포함한다.
도 20은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 20을 참조하면, 본 발명에 따른 컴퓨팅 시스템(2000)은 시스템 버스(2700)에 전기적으로 연결되는 네트워크 어댑터(2100), 중앙처리장치(2200), 대용량 저장 장치(2300), 램(2400), 롬(2500) 그리고 사용자 인터페이스(2600)를 포함한다.
네트워크 어댑터(2100)는 컴퓨팅 시스템(2000)과 외부의 네트워크(2800) 간의 인터페이싱을 제공한다. 중앙처리장치(2200)는 램(2400)에 상주하는 운영 체제(Operating System)나 응용 프로그램(Application Program)을 구동하기 위한 제반 연산처리를 수행한다. 대용량 저장 장치(2300)는 컴퓨팅 시스템(2000)에서 필요한 제반 데이터를 저장한다. 예를 들면, 대용량 저장 장치(2300)에는 컴퓨팅 시스템(2000)을 구동하기 위한 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module), 프로그램 데이터(Program data) 그리고 유저 데이터(User data) 등이 저장된다.
램(2400)은 컴퓨팅 시스템(2000)의 동작 메모리로 사용될 수 있다. 부팅시에 램(2400)에는 대용량 저장 장치(2300)로부터 읽혀진 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module)과 프로그램들의 구동에 소요되는 프로그램 데이터(Program data)가 로드된다. 롬(2500)에는 부팅시 운영 체제(Operating System)가 구동되기 이전부터 활성화되는 기본적인 입출력 시스템인 바이오스(BIOS: Basic Input/Output System)가 저장된다. 유저 인터페이스(2600)를 통해서 컴퓨팅 시스템(2000)과 사용자 사이의 정보 교환이 이루어진다.
이외에도, 컴퓨팅 시스템(2000)은 배터리(Battery)나 모뎀(Modem) 등을 더 포함할 수 있다. 또한, 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(1000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
대용량 저장 장치(2300)는 본 발명의 메모리 관리 방식을 사용하는 불휘발성 저장 장치를 포함할 수 있다. 즉, 대용량 저장 장치(2300)는 유효 소모값(EW)이나 누적 유효 소모값(CEW)에 따라 웨어 레벨링을 수행할 수 있다. 그리고 쓰기 모드, 또는 소거 모드를 호스트의 요청이나, 동작 조건에 따라서 변경할 수 있다. 대용량 저장 장치(2300)는 SSD(Solid State Drive), MMC 카드(Multimedia Card), SD 카드(Secure Digital Card), 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card), eMMC 등으로 구성될 수 있다.
도 21은 본 발명의 실시 예에 따른 휴대용 단말기를 나타내는 블록도이다. 도 21을 참조하면, 본 발명의 실시 예에 따른 휴대용 단말기(3000)는 이미지 처리부(3100), 무선 송수신부(3200), 오디오 처리부(3300), DRAM(3400), eMMC(3500), 유저 인터페이스(3600), 그리고 응용 프로세서(3700)를 포함한다.
이미지 처리부(3100)는 렌즈(3110), 이미지 센서(3120), 이미지 프로세서(3130), 그리고 디스플레이부(3140)를 포함한다. 무선 송수신부(3210)는 안테나(3210), 트랜시버(3220), 모뎀(3230)을 포함한다. 오디오 처리부(3300)는 오디오 프로세서(3310), 마이크(3320), 그리고 스피커(3330)를 포함한다.
여기서, eMMC(3500)는 본 발명의 실시 예에 따라 구동되는 불휘발성 메모리 장치로 제공될 수 있다. 이 경우, eMMC(3500)는 다양한 레벨의 소거 전압에 의해서 소거될 수 있다. 그리고 eMMC(3500)는 소거 전압의 레벨에 따라 이후의 접근 모드가 가변될 수 있을 것이다. 더불어, 응용 프로세서(3700)는 이미지 처리부(3100), 무선 송수신부(3200), 오디오 처리부(3300), DRAM(3400), 유저 인터페이스(3600) 등의 상태에 따라 eMMC(3500)로의 데이터 쓰기 모드를 결정할 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 애플리케이션 소프트웨어 20 : 파일 시스템/ 장치 드라이버
30 : 플래시 변환 계층 40 : 불휘발성 메모리 장치
100 : 호스트 110 : 플랫폼
120 : 애플리케이션 소프트웨어 130 : 유저 콘텍스트 모니터
135 : 유저 인터페이스 136 : 액정 표시 장치
140 : 파일 시스템/ 장치 드라이버 150 : 쓰기 모드 매니저
160 : 쓰기 큐 모니터 165 : 입출력 스케쥴러
166 : 쓰기 버퍼 200 : 메모리 시스템
210 : 메모리 컨트롤러 211 : 프로세싱 유닛
212 : 동작 메모리 213 : 호스트 인터페이스
214 : ECC 215 : 메모리 인터페이스
216 : 퍼블록 모드 테이블 230 : 불휘발성 메모리 장치
231 : 셀 어레이 232 : 디코더
233 : 페이지 버퍼 234 : 제어 로직
235 : 전압 발생기 310, 510, 610 : 플랫폼
320 : 애플리케이션 소프트웨어
330, 515, 615 : 유저 콘텍스트 모니터
335 : 유저 인터페이스 336 : 액정 표시 장치
340, 525, 612 : 쓰기 모드 매니저
350, 520, 620 : 파일 시스템/장치 드라이버
410, 530, 630 : 메모리 시스템
1100 : 호스트 1150 : 쓰기 모드 매니저
1200 : SSD 1210 : SSD 컨트롤러
1220 : 버퍼 메모리 1230 : 불휘발성 메모리 장치
2100 : 네트워크 어댑터 2200 : CPU
2300 : 대용량 저장 장치 2400 : 램
2500 : 롬 2600 : 유저 인터페이스
2700 : 시스템 버스 2800 : 네트워크
3110 : 렌즈 3120 : 이미지 센서
3130 : 이미지 프로세서 3140 : 디스플레이 유닛
3210 : 안테나 3220 : 송수신기
3230 : 모뎀 3310 : 오디오 처리기
3400 : DRAM 3500 : eMMC
3600 : 유저 인터페이스 3700 : 애플리케이션 프로세서

Claims (16)

  1. 불휘발성 메모리 장치를 포함하는 사용자 장치에서 상기 불휘발성 메모리 장치의 액세스 방법에 있어서:
    쓰기 요청을 수신하는 단계;
    상기 쓰기 요청을 발행한 애플리케이션, 유저 콘텍스트, 쓰기 버퍼의 대기열 크기, 상기 쓰기 요청된 데이터의 속성, 그리고 상기 사용자 장치의 동작 모드 중 적어도 하나를 검출하는 단계; 그리고
    상기 검출된 정보를 참조하여 상기 쓰기 요청된 데이터를 상기 불휘발성 메모리 장치에 기입하기 위한 복수의 쓰기 모드들 중 하나를 결정하는 단계를 포함하되,
    상기 복수의 쓰기 모드들 각각에 대해 상기 불휘발성 메모리 장치는 서로 다른 프로그램 전압 및 검증 전압 셋으로 설정되며,
    상기 검출된 정보는, 상기 애플리케이션에 의해서 제공되는 제 1 쓰기 모드 셋 신호, 상기 유저 콘텍스트에 의해서 결정되는 제 2 쓰기 모드 셋 신호, 그리고 상기 쓰기 버퍼의 대기열의 크기에 따라 결정되는 제 3 쓰기 모드 셋 신호를 포함하고,
    상기 결정하는 단계에서, 상기 애플리케이션의 종류에 따라 상기 복수의 쓰기 모드들 중 어느 하나가 결정되는 액세스 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 결정하는 단계에서, 상기 유저 콘텍스트는 상기 쓰기 요청 시점과 유저 인터페이스로의 입력 시점 간의 시간 간격 또는 액정 표시 장치의 온/오프 상태를 포함하는 액세스 방법.
  4. 제 3 항에 있어서,
    상기 액정 표시 장치가 오프 상태이고, 상기 액정 표시 장치가 오프된 시점으로부터 기준 시간이 경과한 경우, 상기 복수의 쓰기 모드들 중에서 쓰기 속도가 가장 늦거나 또는 데이터 신뢰성이 가장 높은 쓰기 모드가 결정되는 액세스 방법.
  5. 제 1 항에 있어서,
    상기 유저 콘텍스트는 사용자의 눈동자가 액정 표시 장치를 주시하는지의 여부에 대한 정보를 포함하는 액세스 방법.
  6. 제 1 항에 있어서,
    상기 쓰기 요청된 데이터가 저장된 상기 쓰기 버퍼의 대기열 크기가 최소 기준치 이하인 경우에는 쓰기 속도가 가장 낮은 쓰기 모드가 결정되는 액세스 방법.
  7. 제 6 항에 있어서,
    상기 쓰기 요청된 데이터가 저장된 상기 쓰기 버퍼의 대기열 크기가 최대 기준치를 초과하는 경우에는 쓰기 속도가 가장 높은 쓰기 모드가 결정되는 액세스 방법.
  8. 제 1 항에 있어서,
    상기 사용자 장치의 동작 모드는, 화면 보호 모드, 잠김 모드, 그리고 절전 모드들 중 적어도 하나를 포함하는 액세스 방법.
  9. 제 1 항에 있어서,
    상기 검출하는 단계에서, 상기 불휘발성 메모리 장치의 수명 또는 상기 불휘발성 메모리 장치에 기입된 데이터 총량을 검출하는 단계를 포함하는 액세스 방법.
  10. 액정 표시 장치, 유저 인터페이스, 그리고 쓰기 버퍼를 구비하는 사용자 장치에 있어서:
    쓰기 모드에 따라 불휘발성 메모리 장치에 대한 액세스 바이어스를 가변하는 메모리 시스템; 그리고
    실행중인 애플리케이션의 종류, 상기 유저 인터페이스로의 유저 입력 시간, 상기 액정 표시 장치의 온/오프 상태, 그리고 상기 쓰기 버퍼에 저장된 데이터의 대기열 크기, 쓰기 요청된 데이터의 속성, 상기 사용자 장치의 동작 모드, 그리고 상기 메모리 시스템의 수명 또는 총 데이터량 중 적어도 하나를 참조하여 상기 쓰기 요청된 데이터에 대한 상기 쓰기 모드를 결정하는 호스트를 포함하되,
    상기 호스트는 상기 애플리케이션의 종류에 따라 생성되는 제 1 쓰기 모드 셋 신호, 상기 유저 입력 시간이나 상기 액정 표시 장치의 온/오프 상태에 따라 생성되는 제 2 쓰기 모드 셋 신호, 그리고 상기 쓰기 버퍼의 대기열의 크기에 따라 결정되는 제 3 쓰기 모드 셋 신호를 참조하여 상기 쓰기 모드를 결정하며,
    상기 호스트는 상기 쓰기 요청된 데이터에 대한 상기 쓰기 모드를 결정하는 쓰기 모드 매니저를 포함하는 사용자 장치.
  11. 삭제
  12. 제 10 항에 있어서,
    상기 쓰기 모드 매니저는 상기 호스트의 플랫폼 계층에서 구동되는 소프트웨어 모듈로 제공되는 사용자 장치.
  13. 제 10 항에 있어서,
    상기 쓰기 모드 매니저는 상기 호스트의 파일 시스템 또는 장치 드라이버 계층에서 구동되는 소프트웨어 모듈로 제공되는 사용자 장치.
  14. 제 13 항에 있어서,
    상기 쓰기 버퍼의 대기열 크기를 검출하고, 상기 대기열 크기 정보를 상기 쓰기 모드 매니저에 제공하는 쓰기 큐 모니터를 포함하는 사용자 장치.
  15. 제 14 항에 있어서,
    상기 대기열의 크기는 동기 큐에 누적된 쓰기 데이터의 양에 대응하는 사용자 장치.
  16. 제 10 항에 있어서,
    상기 불휘발성 메모리 장치는, 복수의 메모리 블록을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 소거 모드에 대응하는 복수의 소거 전압 셋들 중 어느 하나에 의해서 소거된 메모리 블록이고, 상기 복수의 소거 전압 셋들 각각에 의해서 소거된 메모리 블록들은 서로 다른 소거 상태들을 가지며, 서로 다른 유효 소모값을 할당받는 사용자 장치.
KR1020130067228A 2013-06-12 2013-06-12 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법 KR102108839B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130067228A KR102108839B1 (ko) 2013-06-12 2013-06-12 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
US14/302,696 US10042754B2 (en) 2013-06-12 2014-06-12 User device including a nonvolatile memory device and a data write method thereof
US16/056,781 US10657042B2 (en) 2013-06-12 2018-08-07 User device including a nonvolatile memory device and a data write method thereof
US16/877,802 US11093384B2 (en) 2013-06-12 2020-05-19 User device including a nonvolatile memory device and a data write method thereof
US17/386,782 US11860774B2 (en) 2013-06-12 2021-07-28 User device including a nonvolatile memory device and a data write method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130067228A KR102108839B1 (ko) 2013-06-12 2013-06-12 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법

Publications (2)

Publication Number Publication Date
KR20140145254A KR20140145254A (ko) 2014-12-23
KR102108839B1 true KR102108839B1 (ko) 2020-05-29

Family

ID=52020278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130067228A KR102108839B1 (ko) 2013-06-12 2013-06-12 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법

Country Status (2)

Country Link
US (4) US10042754B2 (ko)
KR (1) KR102108839B1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9728263B2 (en) * 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
KR20150106778A (ko) 2014-03-12 2015-09-22 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 제어 방법
KR102258126B1 (ko) * 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
KR102456104B1 (ko) 2015-08-24 2022-10-19 삼성전자주식회사 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
KR102393323B1 (ko) 2015-08-24 2022-05-03 삼성전자주식회사 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
KR102333746B1 (ko) 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US9583160B1 (en) 2015-09-04 2017-02-28 Micron Technology, Inc. Apparatuses including multiple read modes and methods for same
US9607705B1 (en) 2015-09-04 2017-03-28 Micron Technology, Inc. Apparatuses and methods for charging a global access line prior to accessing a memory
CN105677576B (zh) * 2015-12-31 2018-11-09 上海交通大学 一种面向相变存储器的Bank控制器读写控制装置及方法
US10318423B2 (en) * 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
TWI648675B (zh) * 2017-08-29 2019-01-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN109460372B (zh) * 2017-09-06 2022-11-22 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
US10593409B2 (en) 2017-10-12 2020-03-17 Distech Controls Inc. Memory device comprising flash memory and method for controlling a write speed of a bus transmitting data for storage on the flash memory
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
CN109901782A (zh) * 2017-12-07 2019-06-18 上海宝存信息科技有限公司 数据储存装置与数据储存方法
US11294580B2 (en) * 2017-12-22 2022-04-05 Samsung Electronics Co., Ltd. Nonvolatile memory device
KR102469539B1 (ko) * 2017-12-22 2022-11-22 삼성전자주식회사 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치
US11016924B2 (en) * 2018-03-01 2021-05-25 Samsung Electronics Co., Ltd. System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices
US11018444B2 (en) * 2018-03-09 2021-05-25 Samsung Electronics Co., Ltd. Multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-of) device
JP6826066B2 (ja) * 2018-03-19 2021-02-03 株式会社東芝 管理装置、情報処理装置およびメモリ制御方法
KR102545229B1 (ko) * 2018-05-04 2023-06-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
WO2020124022A2 (en) 2018-12-15 2020-06-18 Starkey Laboratories, Inc. Hearing assistance system with enhanced fall detection features
WO2020139850A1 (en) 2018-12-27 2020-07-02 Starkey Laboratories, Inc. Predictive fall event management system and method of using same
US11264035B2 (en) 2019-01-05 2022-03-01 Starkey Laboratories, Inc. Audio signal processing for automatic transcription using ear-wearable device
US11264029B2 (en) 2019-01-05 2022-03-01 Starkey Laboratories, Inc. Local artificial intelligence assistant system with ear-wearable device
EP3989802A1 (en) 2019-06-28 2022-05-04 Starkey Laboratories, Inc. Direct informative communication through an ear-wearable device
KR102650689B1 (ko) 2019-08-02 2024-03-25 삼성전자주식회사 스토리지 장치
KR20210016227A (ko) * 2019-08-02 2021-02-15 삼성전자주식회사 빠른 쓰기 및 빠른 읽기를 지원하기 위한 복수의 버퍼 영역들을 포함하는 메모리 장치 및 이를 포함하는 스토리지 장치
US11069417B2 (en) * 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
KR20210025249A (ko) 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US11061768B1 (en) * 2020-02-14 2021-07-13 Western Digital Technologies, Inc. Storage device with increased endurance
US11397526B2 (en) * 2020-02-28 2022-07-26 Micron Technology, Inc. Media type selection for image data
US11500555B2 (en) * 2020-09-04 2022-11-15 Micron Technology, Inc. Volatile memory to non-volatile memory interface for power management
US11899938B2 (en) * 2020-12-07 2024-02-13 Micron Technology, Inc. Techniques to reduce write amplification
US11768617B2 (en) * 2021-07-02 2023-09-26 SK Hynix Inc. Managing method for flash storage and storage system
US11977737B2 (en) * 2022-02-22 2024-05-07 Micron Technology, Inc. Techniques to improve latency for gaming applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070064480A1 (en) 2005-09-20 2007-03-22 Tiao-Hua Kuo Multi-bit flash memory device having improved program rate
US20080162799A1 (en) 2006-12-28 2008-07-03 Bryan Spry Mechanism for write optimization to a memory device
KR100953257B1 (ko) * 2004-11-24 2010-04-16 콸콤 인코포레이티드 메모리 액세스 속도의 동적인 제어
KR101162770B1 (ko) * 2004-03-15 2012-07-04 위스트론 코포레이션 장치 제어 방법 및 제어 시스템

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3213208B2 (ja) * 1995-06-22 2001-10-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置及びその制御方法
US6990594B2 (en) * 2001-05-02 2006-01-24 Portalplayer, Inc. Dynamic power management of devices in computer system by selecting clock generator output based on a current state and programmable policies
TW520514B (en) * 2001-08-02 2003-02-11 Macronix Int Co Ltd Circuit and method of qualification test for non-volatile memory
JP2004087002A (ja) * 2002-08-27 2004-03-18 Fujitsu Ltd Acセンス方式のメモリ回路
US6845053B2 (en) * 2002-11-15 2005-01-18 Micron Technology, Inc. Power throughput adjustment in flash memory
JP2005267163A (ja) 2004-03-18 2005-09-29 Toshiba Corp メモリカード装置
WO2005106673A1 (ja) 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
US7428142B1 (en) * 2004-08-25 2008-09-23 Apple Inc. Lid-closed detector
US7552347B2 (en) * 2006-06-13 2009-06-23 Scientific-Atlanta, Inc. Adaptive power management of a disk drive based on user activity
JP5008955B2 (ja) * 2006-11-28 2012-08-22 株式会社日立製作所 節電機能を備えたストレージシステム
EP1936493A1 (en) * 2006-12-22 2008-06-25 Telefonaktiebolaget LM Ericsson (publ) Data-processing unit
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
KR100931722B1 (ko) * 2008-03-28 2009-12-14 성균관대학교산학협력단 이동 에이전트 캐싱 방법 및 에이전트 플랫폼
US8341331B2 (en) 2008-04-10 2012-12-25 Sandisk Il Ltd. Method, apparatus and computer readable medium for storing data on a flash device using multiple writing modes
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
US8380914B1 (en) * 2008-12-31 2013-02-19 Micron Technology, Inc. Extended address mode for serial flash memory
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
KR101542878B1 (ko) * 2009-02-13 2015-08-07 삼성전자주식회사 버퍼램을 포함하는 불휘발성 메모리 장치 및 그것의 부트 코드 관리 방법
KR20100095938A (ko) 2009-02-23 2010-09-01 엘지전자 주식회사 플래시 메모리장치
US8266503B2 (en) * 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
KR101572879B1 (ko) 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
JP5400875B2 (ja) 2009-05-21 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US20110258372A1 (en) 2009-07-29 2011-10-20 Panasonic Corporation Memory device, host device, and memory system
US8464106B2 (en) * 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8943264B2 (en) 2009-11-23 2015-01-27 Phison Electronics Corp. Data storing method, and memory controller and memory storage apparatus using the same
JP2011175615A (ja) 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
KR20110096829A (ko) 2010-02-23 2011-08-31 엘지전자 주식회사 반도체 메모리장치 및 그 제어방법
US8338948B2 (en) * 2010-06-30 2012-12-25 International Business Machines Corporation Ball grid array with improved single-ended and differential signal performance
DE102010045581B4 (de) * 2010-09-16 2018-08-09 Infineon Technologies Ag Verfahren und Vorrichtung zum Programmieren von Daten in nicht-flüchtige Speicher
US8364888B2 (en) * 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US8728872B2 (en) * 2011-08-18 2014-05-20 DY 4 Systems, Inc. Manufacturing process and heat dissipating device for forming interface for electronic component
KR102210961B1 (ko) 2013-06-12 2021-02-03 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
US9646705B2 (en) 2013-06-12 2017-05-09 Samsung Electronics Co., Ltd. Memory systems including nonvolatile memory devices and dynamic access methods thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101162770B1 (ko) * 2004-03-15 2012-07-04 위스트론 코포레이션 장치 제어 방법 및 제어 시스템
KR100953257B1 (ko) * 2004-11-24 2010-04-16 콸콤 인코포레이티드 메모리 액세스 속도의 동적인 제어
US20070064480A1 (en) 2005-09-20 2007-03-22 Tiao-Hua Kuo Multi-bit flash memory device having improved program rate
US20080162799A1 (en) 2006-12-28 2008-07-03 Bryan Spry Mechanism for write optimization to a memory device

Also Published As

Publication number Publication date
US20180341582A1 (en) 2018-11-29
KR20140145254A (ko) 2014-12-23
US20200278926A1 (en) 2020-09-03
US20140372678A1 (en) 2014-12-18
US10042754B2 (en) 2018-08-07
US11860774B2 (en) 2024-01-02
US11093384B2 (en) 2021-08-17
US10657042B2 (en) 2020-05-19
US20210357319A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
KR102108839B1 (ko) 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
KR102210961B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법
US9646705B2 (en) Memory systems including nonvolatile memory devices and dynamic access methods thereof
US8843697B2 (en) Operating method of data storage device
US10509602B2 (en) Data storage device and operating method thereof
KR102218735B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
US9891838B2 (en) Method of operating a memory system having a meta data manager
KR20170065726A (ko) 불휘발성 메모리 시스템의 동작 방법 및 메모리 컨트롤러의 동작 방법
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
KR20170104286A (ko) 데이터 저장 장치의 동작 방법
US11348636B2 (en) On-demand high performance mode for memory write commands
US11216332B2 (en) Memory controller and method of operating the same
KR20210001414A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
CN106874223B (zh) 数据传输方法、存储器存储装置及存储器控制电路单元
US20210132804A1 (en) Storage device and method of operating the storage device
US9229798B2 (en) Error handling method, memory storage device and memory controlling circuit unit
KR102685013B1 (ko) 스토리지 장치 및 그 동작방법
CN109471806B (zh) 数据存储方法、存储器存储装置及存储器控制电路单元
KR20230018873A (ko) 메모리 시스템 및 그 동작 방법
KR20230116341A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR20210057254A (ko) 스토리지 장치 및 그 동작방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant