KR102143521B1 - 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법 - Google Patents

불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법 Download PDF

Info

Publication number
KR102143521B1
KR102143521B1 KR1020140047600A KR20140047600A KR102143521B1 KR 102143521 B1 KR102143521 B1 KR 102143521B1 KR 1020140047600 A KR1020140047600 A KR 1020140047600A KR 20140047600 A KR20140047600 A KR 20140047600A KR 102143521 B1 KR102143521 B1 KR 102143521B1
Authority
KR
South Korea
Prior art keywords
memory
code
power
stored
sleep mode
Prior art date
Application number
KR1020140047600A
Other languages
English (en)
Other versions
KR20150121561A (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 KR1020140047600A priority Critical patent/KR102143521B1/ko
Priority to US14/685,340 priority patent/US10095303B2/en
Publication of KR20150121561A publication Critical patent/KR20150121561A/ko
Application granted granted Critical
Publication of KR102143521B1 publication Critical patent/KR102143521B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)

Abstract

불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법이 개시된다. 본 발명의 일실시예에 따른 불휘발성 메모리 시스템에 있어서, 상기 불휘발성 메모리 시스템은 메모리 콘트롤러를 구비하고, 상기 메모리 콘트롤러는, 상기 불휘발성 메모리 시스템의 동작 모드에 따라 파워가 제공되며, 압축 코드를 저장하기 위한 제1 메모리를 포함하는 제1 영역 및 상기 불휘발성 메모리 시스템의 동작 모드에 따라 파워 제공이 차단되며, 압축 해제된 코드를 저장하기 위한 제2 메모리를 포함하는 제2 영역을 구비하는 것을 특징으로 한다.

Description

불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법{Non-volatile Memory System, Memory Card Having The Same and Operating Method of Non-volatile Memory System}
본 발명은 불휘발성 메모리 시스템에 관한 것으로, 자세하게는 파워 소모를 감소할 수 있는 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법에 관한 것이다.
데이터를 저장하는 장치 가운데 전원의 공급이 차단되어도 저장하고 있는 데이터를 유지하는 것을 불휘발성 메모리라고 한다. 예컨대, 불휘발성 메모리는 ROM(Read Only Memory), 자기 디스크, 광학 디스크 및 플래시(Flash) 메모리, RRAM, PRAM 및 MRAM 등을 포함한다. 또한, 플래시 메모리는 MOS 트랜지스터의 문턱전압의 변화에 따라 데이터를 저장하는 메모리를 말하고, 낸드(NAND) 및 노어(NOR) 플래시 등을 포함한다.
불휘발성 메모리 시스템은 메모리 장치와 함께, 셀 어레이에 대한 데이터 프로그램/독출 및 소거 등을 제어하기 위한 메모리 콘트롤러를 포함한다. 또한, 불휘발성 메모리 시스템은 메모리 카드 등으로 구현되어 모바일 장치에 장착될 수 있으며, 상기 불휘발성 메모리 시스템에 의해 소모되는 파워를 감소시킬 필요가 있다.
본 발명의 기술적 사상은, 파워 소모를 감소할 수 있는 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 불휘발성 메모리 시스템에 있어서, 상기 불휘발성 메모리 시스템은 메모리 콘트롤러를 구비하고, 상기 메모리 콘트롤러는, 상기 불휘발성 메모리 시스템의 동작 모드에 따라 파워가 제공되며, 압축 코드를 저장하기 위한 제1 메모리를 포함하는 제1 영역 및 상기 불휘발성 메모리 시스템의 동작 모드에 따라 파워 제공이 차단되며, 압축 해제된 코드를 저장하기 위한 제2 메모리를 포함하는 제2 영역을 구비하는 것을 특징으로 한다.
바람직하게는, 상기 불휘발성 메모리 시스템은, 불휘발성 메모리 셀 어레이를 포함하는 메모리 장치를 더 구비하는 것을 특징으로 한다.
또한, 바람직하게는, 상기 제1 메모리 및 상기 제2 메모리는 RAM(Random Access Memory)인 것을 특징으로 한다.
또한, 바람직하게는, 상기 제2 영역은, 상기 제2 메모리에 저장된 압축 해제된 코드를 압축하는 코드 압축기 및 상기 제1 메모리에 저장된 압축된 코드를 압축 해제하는 코드 압축 해제기를 더 구비하는 것을 특징으로 한다.
또한, 바람직하게는, 상기 제1 영역은, 상기 제1 메모리의 압축 코드 저장 동작과 상기 제2 메모리의 압축 해제된 코드 저장 동작을 제어하는 중앙 처리 장치를 더 구비하는 것을 특징으로 한다.
또한, 바람직하게는, 슬립 모드 진입시 상기 제1 영역은 파워 제공이 유지되며, 상기 제2 영역은 파워 제공이 차단되는 것을 특징으로 한다.
또한, 바람직하게는, 상기 제1 메모리는 다수 개의 메모리 영역들을 포함하며, 상기 다수 개의 메모리 영역들 중 상기 압축된 코드가 저장되는 제1 메모리 영역에 파워가 제공되며, 상기 다수 개의 메모리 영역들 중 상기 압축된 코드가 저장되지 않는 제2 메모리 영역에는 파워 제공이 차단되는 것을 특징으로 한다.
또한, 바람직하게는, 상기 불휘발성 메모리 시스템이 슬립 모드로 진입할 때, 상기 압축된 코드의 생성과 관련된 정보를 분석한 결과에 따라 상기 다수 개의 메모리 영역들에 대한 파워 제공이 제어되는 것을 특징으로 한다.
또한, 바람직하게는, 상기 불휘발성 메모리 시스템이 슬립 모드로 진입할 때, 상기 제2 메모리에 저장된 압축 해제된 코드는 삭제되는 것을 특징으로 한다.
또한, 바람직하게는, 상기 제1 메모리는 상기 제2 메모리보다 작은 사이즈를 갖는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 불휘발성 메모리 시스템의 동작방법은, 제1 모드의 진입을 검출하는 단계와, 제2 메모리에 저장된 압축 해제된 코드를 압축하여, 압축된 코드를 제1 메모리의 적어도 일부의 메모리 영역에 저장하는 단계와, 상기 제2 메모리로의 파워 제공을 차단하는 단계 및 상기 압축된 코드가 저장된 상기 제1 메모리의 적어도 일부의 메모리 영역으로 파워 제공을 유지하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법에 따르면, 슬립 모드 등 특정 모드에서 커런트를 감소함으로써 파워 소모를 감소할 수 있는 효과가 있다.
또한, 본 발명의 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법에 따르면, 명령 코드 및 메타 데이터에 대한 압축 동작을 적용함으로써 압축 코드 저장에 소요되는 RAM의 사이즈를 최소화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 불휘발성 메모리 시스템의 구현예를 나타내는 블록도이다.
도 2는 도 1의 메모리 콘트롤러의 일 구현예를 나타내는 블록도이다.
도 3은 도 1에 도시된 제1 메모리에 대한 파워 제공을 제어하는 일 예를 나타내는 도면이다.
도 4는 슬립 모드 진입시 압축 코드들을 저장하는 일 예를 나타내는 블록도이다.
도 5는 슬립 모드 해제시 압축 해제된 코드들을 저장하는 일 예를 나타내는 블록도이다.
도 6은 본 발명의 일실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 7은 본 발명의 다른 실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 8은 본 발명의 또 다른 실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도 9는 본 발명의 다른 실시예에 따른 불휘발성 메모리 시스템의 동작 예를 나타내는 블록도이다.
도 10은 도 9의 메모리 컨트롤러의 동작의 제 1예를 나타내는 도면이다.
도 11은 도 9의 메모리 컨트롤러의 동작의 제 2예를 나타내는 도면이다.
도 12는 본 발명의 일실시예에 따른 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 13은 본 발명의 일실시예에 따른 메모리 카드를 나타내는 도면이다.
도 14는 본 발명의 일 실시예에 따른 호스트 및 비휘발성 메모리 시스템이 장착된 이동 단말기의 일 예를 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 불휘발성 메모리 시스템의 구현예를 나타내는 블록도이다. 도 1에 도시된 바와 같이, 불휘발성 메모리 시스템(10)은 메모리 컨트롤러(100) 및 불휘발성 메모리 장치(200)를 포함할 수 있다. 불휘발성 메모리 시스템(10)은 호스트와 통신함에 의하여 메모리 동작 요청을 수신할 수 있으며, 상기 메모리 동작 요청에 대응하는 커맨드(CMD) 및 어드레스(ADD)를 불휘발성 메모리 장치(200)로 제공할 수 있다. 상기 커맨드(CMD) 및 어드레스(ADD)에 응답하여, 불휘발성 메모리 장치(200)에 데이터(Data)를 기록(write)하거나 불휘발성 메모리 장치(200)으로부터 데이터(Data)를 독출(read)할 수 있다. 불휘발성 메모리 장치(200)는 데이터(Data)를 저장하기 위한 셀 어레이(210)를 포함할 수 있다.
불휘발성 메모리 장치(200)는 전원이 차단되어도 저장하고 있는 데이터를 보존할 수 있다. 이러한 메모리 셀로서, 셀 어레이(210)는 낸드(NAND) 또는 노어(NOR) 플래시 메모리, MRAM(Magnetic Random Access Memory), RRAM(Resistance RAM), FRAM(Ferroelectric RAM) 또는 PCM(Phase Change Memory) 등을 포함할 수 있다. 일예로서, 셀 어레이(210)가 낸드(NAND) 플래시 메모리를 포함하는 경우, 상기 셀 어레이(210)는 다수 개의 블록 및 페이지들을 포함할 수 있으며, 데이터의 프로그램(program) 및 독출은 페이지(page) 단위로 수행되는 반면, 데이터의 소거(erease)는 블록(block) 단위로 수행될 수 있다.
한편, 메모리 컨트롤러(100)는 중앙 처리 장치(110), 하나 이상의 회로 블록을 포함하는 제1 영역(120) 및 하나 이상의 회로 블록을 포함하는 제2 영역(130)을 포함할 수 있다. 제1 영역(120)은 불휘발성 메모리 시스템(10)의 특정 모드에서 파워가 제공되는 영역(P/on)으로서, 제1 영역(120)은 불휘발성 메모리 시스템(10)의 운용에 관련된 정보나 펌웨어 데이터 등을 포함하는 명령 코드와 유저 데이터를 관리하기 위해 필요로 되는 데이터(예컨대, 메타 데이터)를 저장하는 제1 메모리(121)를 포함할 수 있다. 도 1에서는, 상기 제1 메모리(121)의 예로서 랜덤 억세스 메모리(RAM1)가 구비되는 예가 도시된다.
한편, 제2 영역(130)은 불휘발성 메모리 시스템(10)의 특정 모드에서 파워 제공이 차단되는 영역(P/off)으로서, 제2 영역(130) 또한 불휘발성 메모리 시스템(10)의 운용에 관련된 정보(예컨대, 명령 코드)나 유저 데이터를 관리하기 위해 필요로 되는 데이터(예컨대, 메타 데이터)를 저장하는 제2 메모리(131)를 포함할 수 있다. 도 1에서는, 상기 제2 메모리(131)의 예로서 랜덤 억세스 메모리(RAM2)가 구비되는 예가 도시된다. 상기 제1 메모리(121) 및 제2 메모리(131)에 저장되는 정보로서 명령 코드나 메타 데이터가 예시되었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, 유저 데이터를 제외한 다른 정보들을 코드로 정의할 수 있으며, 상기 제1 메모리(121) 및 제2 메모리(131)는 각종 코드들을 저장할 수 있다.
한편, 메모리 컨트롤러(100)는 상기 명령 코드나 메타 데이터를 압축하여 압축 코드를 생성하는 코드 압축기(132, 이하 압축기로 지칭함)와, 상기 명령 코드나 메타 데이터의 압축을 해제하여 압축 해제된 코드를 생성하는 코드 압축 해제기(133, 이하 압축 해제기로 지칭함)를 더 포함할 수 있다. 상기 압축기(132)와 압축 해제기(133)는 제1 영역(120)에 구비되어도 무방하며, 또는 제2 영역(130)에 구비되어도 무방하다. 도 1의 예에서는 상기 압축기(132)와 압축 해제기(133)가 제2 영역(130)에 구비되는 것으로 도시된다.
압축기(132)에 의해 압축된 코드들은 제1 영역(120)의 제1 메모리(121)에 저장된다. 또한 압축 해제기(133)에 의해 압축 해제된 코드들은 제2 영역(130)의 제2 메모리(131)에 저장된다. 일예로서, 불휘발성 메모리 시스템(10)의 슬립 모드에서, 압축된 코드들이 제1 영역(120)에 저장되는 반면에, 제2 영역(130)의 경우 파워 제공이 차단됨에 따라, 제2 메모리(131)에 저장되었던 압축 해제된 코드들은 삭제될 수 있다.
구체적인 동작 예로서, 호스트로부터의 요청, 또는 불휘발성 메모리 시스템(10) 자체 내에서의 검출 동작에 기반하여 슬립 모드 진입 여부가 검출될 수 있다. 불휘발성 메모리 시스템(10)의 노멀 동작시에는, 제2 메모리(131)에 저장된 압축 해제된 코드들을 실행함으로써 불휘발성 메모리 시스템(10)이 동작할 수 있다. 한편, 슬립 모드 진입이 검출되는 경우에는 CPU(110)의 제어하에서 제2 메모리(131)에 저장된 압축 해제된 코드들이 압축기(132)에 의해 압축되고, 이에 따라 압축 코드들이 생성된다. 압축 코드들은 제1 메모리(121)에 저장되며, 슬립 모드 진입에 따라 제1 영역(120)에는 파워 제공이 유지되는 반면에, 제2 영역(130)에는 파워 제공이 차단된다. 또한, 이에 따라 제2 메모리(131)에 저장되었던 압축 해제된 코드들은 삭제될 수 있다.
한편, 슬립 모드에서 노멀 모드로 진입하는 경우, CPU(110)의 제어하에서 제1 메모리(121)에 저장된 압축 코드들이 압축 해제기(133)로 제공되며, 압축 해제기(133)의 동작 하에서 압축 해제된 코드들이 생성된다. 노멀 모드로 진입함에 따라 제2 영역(130)에는 파워가 제공된다. 압축 해제된 코드들은 제2 메모리(131)에 저장될 수 있으며, 노멀 동작을 위하여 프로그램 카운터는 제2 메모리(131)를 지정할 수 있다. CPU(110)는 제2 메모리(131)에 저장된 코드들을 실행함으로써 불휘발성 메모리 시스템(10)이 동작할 수 있다.
상기와 같은 본 발명의 실시예에 따르면, 불휘발성 메모리 시스템(10)이 슬립 모드로 동작하는 경우에 슬립 커런트(sleep current)를 감소할 수 있다. 또한, 불휘발성 메모리 시스템(10)이 모바일 장치에 장착되는 경우, 불휘발성 메모리 시스템(10)에 의한 슬립 모드시 파워 소모를 감소할 수 있다.
일예로서, 코드 압축 기술이 적용됨에 따라, 슬립 모드에서 명령 코드 및 메타 데이터 저장을 위한 RAM의 사이즈를 줄일 수 있다. 전술한 바와 같이, 슬립 모드에서 압축된 코드들이 제1 메모리(121)에 저장될 수 있으며, 제1 메모리(121)는 제2 메모리(131)보다 작은 사이즈를 가질 수 있다. 즉, 제1 영역(120)에는 압축 코드를 관리하기 위한 최소한의 RAM만이 배치될 수 있으며, 슬립 모드에서 파워 온이 유지되는 제1 영역(120)의 제1 메모리(121)의 사이즈를 줄일 수 있으므로 슬립 커런트가 감소됨과 함께 전력 소모가 감소될 수 있다.
한편, 도 1의 실시예에서는 CPU(110)가 제1 영역(120) 및 제2 영역(130)의 외부에 배치되는 것으로 도시되었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대 CPU(110)는 제1 영역(120)에 구비됨에 따라, 슬립 모드에서 파워를 인가받을 수 있다. 또는, 슬립 모드 이외에 다른 모드(예컨대, 리텐션 모드, retention mode)에서 제1 영역(120)에는 정상적인 파워가 인가되는 반면에, CPU(110)에는 이보다 낮은 파워(예컨대, 리텐션 파워)가 제공될 수 있다.
또한, 도 1의 불휘발성 메모리 시스템(10)은 메모리 카드로 구현될 수 있으며, 예컨대 불휘발성 메모리 시스템(10)은 eMMC, SD, Micro SD 등의 메모리 카드로 구현될 수 있다.
도 2는 도 1의 메모리 콘트롤러의 일 구현예를 나타내는 블록도이다.
도 2에 도시된 바와 같이, 메모리 컨트롤러(100)는 중앙 처리 장치(CPU, 110), 제1 메모리(121A), 제2 메모리(131A) 및 압축기/압축 해제기(132, 133)를 포함할 수 있다. 또한 제1 메모리(121A)와 제2 메모리(131A)는 다양한 종류의 메모리로 구현될 수 있으며, 예컨대 제1 메모리(121A)와 제2 메모리(131A)는 SRAM으로 구현될 수 있다.
도 2에 도시된 기능 블록들 각각은 도 1에서 설명되었던 바와 동일 또는 유사하게 동작할 수 있다. 즉, CPU(110)는 제2 메모리(131A)에 저장된 압축 해제된 코드들을 실행함으로써 불휘발성 메모리 장치의 동작을 제어할 수 있다. 또한, 압축기/압축 해제기(132, 133)는 제1 메모리(121A)에 저장될 압축 코드를 생성할 수 있으며, 또한 제2 메모리(131A)에 저장될 압축 해제된 코드를 생성할 수 있다.
도 2에 도시된 기능 블록들 각각은 파워 온 도메인 또는 파워 오프 도메인에서 동작할 수 있다. 파워 온 도메인 및 파워 오프 도메인은 다양하게 정의될 수 있으며, 예컨대 파워 온 도메인은 슬립 모드에서 파워 제공이 유지되는 영역으로 정의되고, 파워 오프 도메인은 슬립 모드에서 파워 제공이 차단되는 영역으로 정의될 수 있다.
도 2에 도시된 바와 같이, CPU(110)는 파워 온 도메인에서 동작하여도 무방하며, 또는 파워 오프 도메인에서 동작할 수도 있다. 또한 압축기/압축 해제기(132, 133)도 파워 온 도메인 또는 파워 오프 도메인에서 동작할 수 있다. 한편, 제1 메모리(121A)는 파워 온 도메인에서 동작하는 기능 블록으로서, 명령 코드 및 메타 데이터 등을 압축한 압축 코드를 저장할 수 있으며, 제2 메모리(131A)에에 비해 상대적으로 작은 사이즈를 가질 수 있다. 또한, 제2 메모리(131A)는 파워 오프 도메인에서 동작하는 기능블록으로서 압축 해제된 코드를 저장할 수 있으며, 제1 메모리(121A)에 비해 상대적으로 큰 사이즈를 가질 수 있다. 또는, 제1 메모리(121A)는 다수 개의 메모리 영역들을 포함할 수 있으며, 슬립 모드에서 상기 다수 개의 메모리 영역들 중 일부 메모리 영역들만이 압축 코드를 저장할 수 있다. 이 경우, 파워 온 도메인임에서 동작함에도 불구하고, 상기 다수 개의 메모리 영역들 중 일부 메모리 영역들만으로 파워가 제공될 수 있으며, 반면에 나머지 메모리 영역들에는 파워 제공이 차단될 수 있다.
도 3은 도 1에 도시된 제1 메모리에 대한 파워 제공을 제어하는 일 예를 나타내는 도면이다. 도 3에 도시된 바와 같이, CPU(110)는 압축기/압축 해제기(132, 133)로부터 코드 압축에 관련된 정보(Info_com)를 수신하며, 상기 정보(Info_com)에 근거하여 제1 메모리(121)로 제공되는 파워에 대한 영역별 제어를 위한 신호를 파워 제어부(140)로 제공한다.
제1 메모리(121)는 다수의 메모리 영역들을 포함할 수 있으며, 예컨대 n 개의 메모리 영역들(Region1~Regionn)을 포함할 수 있다. 또한, 제1 메모리(121)는 n 개의 메모리 영역들(Region 1~Region n) 각각으로 제공되는 파워의 전달을 스위칭하기 위한 n 개의 스위치들(SW 1~SW n)을 포함할 수 있다. 파워 제어부(140)는 n 개의 스위치들(SW 1~SW n)을 제어하기 위한 n 개의 제어신호(Ctrl[1:n])를 생성할 수 있다.
압축된 코드들의 사이즈에 따라 n 개의 스위치들(SW 1~SW n) 중 일부의 스위치들만이 턴온될 수 있으며, 이에 따라 턴온된 스위치들에 대응하는 메모리 영역들만으로 파워가 제공될 수 있다. 압축기/압축 해제기(132, 133)에 의해 압축된 압축 코드들이 파워가 제공되는 메모리 영역들에 저장될 수 있다. 또한, 슬립 모드시에도 CPU(110)에 의해 정상적으로 실행 가능한 코드들(예컨대, 시스템 관리 코드)이 메모리 영역들에 더 저장될 수 있으며, 이와 관련된 자세한 실시예는 후술될 것이다.
도 4는 슬립 모드 진입시 압축 코드들을 저장하는 일 예를 나타내는 블록도이다.
도 4에 도시된 바와 같이, 메모리 컨트롤러(200)는 파워 온 도메인으로서 제1 영역(210)과 파워 오프 도메인으로서 제2 영역(220)을 포함할 수 있다. 제1 영역(210)은 CPU(211) 및 제1 메모리(212)를 포함하며, 도 4에는 제1 메모리(212)로서 싱글 포트 SRAM(SPSRAM)이 구비되는 예가 도시된다. 또한, 제2 영역(220)은 제2 메모리(221, 222) 및 압축기(223)를 포함하며, 도 4에는 제2 메모리(221, 222)가 압축 해제된 명령 코드를 저장하는 제1 메모리 영역(221)과 압축 해제된 메타 데이터를 저장하는 제2 메모리 영역(222)를 포함하는 예가 도시된다.
노멀 동작시에는 프로그램 카운터(PC)가 제2 메모리(221, 222)를 가리킴에 따라 코드들이 실행되어 메모리 동작이 제어되며, 슬립 모드 진입이 검출된 경우에는 CPU(211)의 제어하에서 코드들에 대한 압축 동작이 수행된다. 일예로서, 제1 메모리(212)는 시스템 관리 코드를 저장하는 메모리 영역과, 압축된 명령 코드를 저장하기 위한 메모리 영역과, 압축된 메타 데이터를 저장하기 위한 메모리 영역을 포함할 수 있다. 상기 시스템 관리 코드는 압축 해제된 일반적인 코드들에 해당할 수 있으며, 또한 상기 시스템 관리 코드는 불휘발성 메모리 시스템의 전력 관리를 위한 전력 관리 코드를 포함할 수 있다. 즉, 전술한 실시예에서 제1 메모리(212)가 압축 코드들을 저장한다고 기술되었으나, 실제 본 발명의 실시예는 이에 국한되지 않으며 제1 메모리(212)는 압축 코드 이외에도 압축되지 않은 노멀한 코드를 더 저장하는 메모리 영역을 더 포함할 수 있다.
슬립 모드 진입 검출에 따라, CPU(211)는 시스템 관리 코드를 실행할 수 있으며, 시스템 관리 코드의 실행 결과에 따라 제2 영역(220)의 제2 메모리(221, 222)에 저장된 압축 해제된 코드의 압축 동작 및 이에 대한 저장 동작의 준비를 진행할 수 있다. CPU(211)의 제어하에서, 제2 메모리(221, 222)에 저장된 압축 해제된 코드들은 압축기(223)로 제공되며, 압축기(223)는 압축 동작을 통하여 압축 코드들을 생성하고 이를 제1 영역(210)으로 제공한다. 이와 함께, 압축기(223)는 압축 동작에 관련된 하나 이상의 정보(예컨대, 압축률 정보나 압축 코드 사이즈 정보 등)를 CPU(211)로 제공할 수 있다.
압축된 코드들은 제1 메모리(212)에 저장된다. 예컨대 압축된 명령 코드와 압축된 메타 데이터가 제1 메모리(212)에 저장될 수 있다. 명령 코드의 사이즈는 기 설정된 값을 가질 수 있으며, 반면에 메타 데이터의 사이즈는 시스템 운용 정도에 따라 그 사이즈가 달라질 수 있다. 또한, 기 설정된 압축률에 따라 압축 코드가 생성되는 경우, 압축 명령 코드의 사이즈는 기 설정된 값을 가질 수 있으며, 반면에 압축 메타 데이터의 사이즈는 그 사이즈가 달라질 수 있다. 압축 명령 코드는 제1 메모리(212)의 일부 영역(예컨대, 제1 메모리 영역)에 저장되며, 압축 메타 데이터는 제1 메모리(212)의 다른 일부 영역(예컨대, 제2 메모리 영역)에 저장될 수 있다.
제1 메모리(212)는 각각의 메모리 영역에 대한 파워의 전달 여부를 제외하는 수단을 포함할 수 있다. 예컨대, 전술한 실시예에서와 같이 제1 메모리(212)는 소정의 제어신호에 응답하여 각각의 메모리 영역에 대한 파워의 전달을 제어하는 스위치부를 포함할 수 있다. CPU(211)는 하나 이상의 정보(예컨대, 압축률 정보나 압축 코드 사이즈 정보 등)를 참조하여 파워가 제공될 메모리 영역들과 파워 제공이 차단될 메모리 영역들을 선택함과 함께, 상기 메모리 영역들로의 파워 제공을 제어할 수 있다. 이에 따라, 압축 명령 코드와 압축 메타 데이터가 저장된 메모리 영역들로는 파워가 제공될 수 있으며, 반면에 압축 명령 코드와 압축 메타 데이터가 저장되지 않은 메모리 영역들로는 파워 제공이 차단될 수 있다. 상기와 같은 압축 코드에 대한 저장 동작이 완료됨에 따라 불휘발성 메모리 시스템은 슬립 모드로 진입할 수 있다.
도 5는 슬립 모드 해제시 압축 해제된 코드들을 저장하는 일 예를 나타내는 블록도이다.
도 5에 도시된 바와 같이, 메모리 컨트롤러(200)는 파워 온 도메인으로서 제1 영역(210)과 파워 오프 도메인으로서 제2 영역(220)을 포함할 수 있다. 제1 영역(210)은 CPU(211) 및 제1 메모리(212)를 포함하며, 또한, 제2 영역(220)은 제2 메모리(221, 222) 및 압축 해제기(224)를 포함할 수 있다. 도 5에는 제2 메모리(221, 222)가 압축 해제된 명령 코드를 저장하는 제1 메모리 영역(221)과 압축 해제된 메타 데이터를 저장하는 제2 메모리 영역(222)를 포함하는 예가 도시된다.
슬립 모드의 해제(Awake)가 감지됨에 따라, 프로그램 카운터(PC)가 제1 메모리(212)의 시스템 관리 코드를 저장하는 메모리 영역을 가리키게 된다. CPU(211)는 시스템 관리 코드를 실행함에 의하여 압축 코드들에 대한 압축 해제 동작 및 압축 해제된 코드들을 제2 메모리(221, 222)에 저장하는 동작을 제어한다.
제1 메모리 영역(221)에 저장된 압축 명령 코드와 압축 메타 데이터는 제2 영역(220)의 압축 해제기(224)로 제공될 수 있다. 압축 해제기(224)는 압축 해제 동작을 통하여 압축 해제된 명령 코드와 압축 해제된 메타 데이터를 생성할 수 있다. 압축 해제된 명령 코드는 제2 메모리(221, 222)의 제1 메모리 영역(221)에 저장될 수 있으며, 또한 압축 해제된 메타 데이터는 제2 메모리(221, 222)의 제2 메모리 영역(222)에 저장될 수 있다. 이후, 프로그램 카운터(PC)는 압축 해제된 코드들이 저장된 제2 메모리(221, 222)로 이동(jump)할 수 있으며, 일예로서 프로그램 카운터(PC)는 압축 해제된 명령 코드가 저장된 제2 메모리(221, 222)의 제1 메모리 영역(221)으로 이동할 수 있다.
슬립 모드가 해제됨에 따라(또는, 노멀 모드로 진입함에 따라), 파워 오프 도메인으로서 제2 영역(220)으로 파워가 제공될 수 있다. CPU(211)는 제2 메모리(221, 222)의 코드들을 실행함으로써 메모리 동작을 수행할 수 있다. 이때, 제1 메모리(212)에 저장된 압축 코드들의 경우 삭제되어도 무방하며 삭제되지 않아도 무방하다. 또한, 제1 메모리(212)의 일부 메모리 영역(예컨대, 압축 코드가 저장되지 않은 메모리 영역)으로는, 노멀 모드에서 파워가 제공되어도 무방하며, 또는 파워 스위칭 동작에 기반하여 파워 제공이 차단되어도 무방하다.
한편, 도 5에서는 도시되지 않았으나, 시스템 관리 코드는 노멀 모드에서도 수행될 필요가 있다. 이 경우 시스템 관리 코드는 제1 메모리(212)에 저장되어 실행되어도 무방하나, 상기 시스템 관리 코드는 제2 메모리(221, 222)에 저장되어 실행되어도 무방하다. 이에 따라, 노멀 모드 진입시 압축 코드(예컨대, 압축 명령 코드 및 압축 메타 데이터)가 압축 해제되어 제2 메모리(221, 222)에 저장되는 것 이외에도, 시스템 관리 코드가 제2 메모리(221, 222)에 더 저장되어도 무방하다.
도 6은 본 발명의 일실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다. 도 6에서는 슬립 모드 진입시의 코드의 저장 예가 설명된다.
도 6에 도시된 바와 같이, 호스트의 명령이나 불휘발성 메모리 시스템 자체의 검출 동작에 기반하여 슬립 모드로의 진입 여부가 검출된다(S11). 불휘발성 메모리 시스템은 메모리 콘트롤러를 포함하며, 메모리 콘트롤러는 슬립 모드에서 파워가 제공되는 파워 온 도메인과 슬립 모드에서 파워의 제공이 차단되는 파워 오프 도메인을 포함한다. 또한, 파워 온 도메인과 파워 오프 도메인 각각은 적어도 하나의 회로 블록들을 포함하며, 예컨대 파워 온 도메인은 압축 코드를 저장하는 제1 메모리(RAM1)을 포함할 수 있으며 파워 오프 도메인은 압축 해제된 코드를 저장하는 제2 메모리(RAM2)을 포함할 수 있다.
슬립 모드의 진입 여부가 검출됨에 따라, 파워 오프 도메인의 제2 메모리(RAM2)에 저장된 코드들(예컨대, 압축 해제된 코드들)에 대한 압축 동작이 수행된다(S12). 이에 따라 생성된 압축 코드들은 파워 온 도메인의 제1 메모리(RAM1)의 적어도 일부의 메모리 영역에 저장된다(S13).
슬립 모드로 진입됨에 따라 파워 오프 도메인으로의 파워 제공이 차단되며, 이에 따라 제2 메모리(RAM2)로의 파워 제공이 차단된다(S14). 이에 따라 제2 메모리(RAM2)에 저장되었던 압축 해제된 코드들은 삭제될 수 있다. 또한, 슬립 모드로 진입됨에 따라 파워 온 도메인으로의 파워 제공이 유지되며, 이에 따라 제1 메모리(RAM1)로의 파워 제공 또한 유지될 수 있다(S15). 일 실시예로서, 제1 메모리(RAM1)는 다수의 메모리 영역들을 포함할 수 있으며, 각각의 메모리 영역에 대응하여 파워 전달을 스위칭하기 위한 스위치가 배치될 수 있다. 제1 메모리(RAM1)로의 파워 제공 또한 유지함에 있어서, 상기 스위치의 스위칭 동작에 기반하여, 압축된 코드들이 저장된 일부 메모리 영역들로는 파워가 제공되도록 할 수 있으며, 나머지 메모리 영역들로는 파워 제공이 차단되도록 제어될 수 있다.
도 7은 본 발명의 다른 실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다. 도 7에서는 슬립 모드 진입시 코드를 저장하는 다른 예가 설명된다.
도 7에 도시된 바와 같이, 호스트의 명령이나 불휘발성 메모리 시스템 자체의 검출 동작에 기반하여 슬립 모드로의 진입 여부가 검출된다(S21). 슬립 모드 진입 여부가 검출됨에 따라, 파워 오프 도메인의 제2 메모리(RAM2)에 저장된 코드들(예컨대, 압축 해제된 코드들)에 대한 압축 동작이 수행된다(S22). 압축 동작은 메모리 컨트롤러 내에 구비되는 압축기에 의해 수행될 수 있으며, 압축기는 상기 압축 결과에 따른 적어도 하나의 정보(예컨대, 압축률 정보나 압축 코드 사이즈에 관련된 정보 등)를 생성할 수 있다(S23).
슬립 모드로 진입됨에 따라 파워 오프 도메인으로의 파워 제공이 차단되며, 이에 따라 제2 메모리(RAM2)로의 파워 제공이 차단된다(S24). 이에 따라 제2 메모리(RAM2)에 저장되었던 압축 해제된 코드들은 삭제될 수 있다. 또한, 제1 메모리(RAM1)는 다수의 메모리 영역들을 포함할 수 있으며, 상기 압축 결과에 따른 정보에 기반하여 압축 코드(예컨대, 압축 명령 코드 및 압축 메타 데이터)가 저장될 공간의 크기가 판단될 수 있다. 상기 판단 결과에 따라 제1 메모리(RAM1)의 일부 메모리 영역으로는 파워 제공이 유지되는 반면에, 상기 제1 메모리(RAM1)의 나머지 일부 메모리 영역으로는 파워 제공이 차단된다(S25). 상기 압축 코드는 파워 제공이 유지되는 제1 메모리(RAM1)의 일부 메모리 영역에 저장된다(S26).
도 8은 본 발명의 또 다른 실시예에 따른 불휘발성 메모리 시스템의 동작방법을 나타내는 플로우차트이다. 도 8에서는 슬립 모드 해제시의 코드의 저장 예가 설명된다.
도 8에 도시된 바와 같이, 호스트의 명령이나 불휘발성 메모리 시스템 자체의 검출 동작에 기반하여 슬립 해제 모드로의 진입 여부(또는, 노멀 모드로의 진입 여부)가 검출된다(S31). 슬립 해제 모드로의 진입 여부가 검출됨에 따라, 파워 온 도메인의 제1 메모리(RAM1)에 저장된 코드들(예컨대, 압축 코드들)에 대한 압축 해제 동작이 수행된다(S32). 예컨대, 압축 코드들이 메모리 컨트롤러 내의 압축 해제기에 의해 압축 해제됨에 따라 압축 해제된 코드가 생성된다.
또한, 슬립 해제 모드로의 진입 여부가 검출됨에 따라 파워 오프 도메인으로 파워가 제공되며, 이에 따라 제2 메모리(RAM2)로 파워가 제공된다(S33). 상기 압축 해제된 코드는 제2 메모리(RAM2)에 저장된다(S34). 또한, 프로그램 카운터는 제2 메모리(RAM2)를 가리키도록 점프되며(S35), 이에 따라 CPU에 의해 제2 메모리(RAM2)에 저장된 압축 해제된 코드들이 실행됨으로써 메모리 동작이 제어될 수 있다.
전술한 실시예에서와 같이 노멀 모드에서 파워 온 도메인으로의 파워 제공이 유지되며, 이에 따라 제1 메모리(RAM1)로 파워가 제공된다. 제1 메모리(RAM1)는 다수의 메모리 영역들을 포함할 수 있으며, 압축 코드가 저장된 일부의 메모리 영역으로는 파워 제공이 유지될 수 있으며, 반면에 압축 코드가 저장되지 않은 나머지 메모리 영역들로는 파워 제공이 차단될 수 있다. 일 실시예로서, 노멀 동작에서는 압축 코드들이 저장되어 있을 필요가 없으므로, 상기 제1 메모리(RAM1)로의 파워 제공을 차단함에 의하여 상기 압축 코드들이 삭제되도록 하여도 무방하다. 또한 일 실시예로서, 전술한 실시예에서와 같이 불휘발성 메모리 시스템을 관리하기 위한 시스템 관리 코드가 제1 메모리(RAM1)에 저장될 수 있으며, 시스템 관리 코드는 해당 코드가 실행됨에 따라 시스템 관리가 제어되는 노멀한 코드일 수 있다. 즉, 제1 메모리(RAM1)는 압축 코드들 이외에도 시스템 관리 코드를 더 저장할 수 있으며, 노멀 모드에서 제1 메모리(RAM1)로의 파워 제공이 차단되더라도, 제1 메모리(RAM1)의 시스템 관리 코드가 저장된 메모리 영역으로는 파워 제공이 유지될 필요가 있다.
도 9는 본 발명의 다른 실시예에 따른 불휘발성 메모리 시스템의 동작 예를 나타내는 블록도이다. 도 9에서는 압축 코드와 압축 해제된 코드가 모두 파워 온 도메인의 메모리(예컨대, RAM1)에 저장되는 예가 도시된다.
도 9에 도시된 바와 같이, 불휘발성 메모리 시스템은 메모리 컨트롤러를 포함할 수 있으며, 메모리 컨트롤러는 파워 온 도메인으로서 제1 영역(310)과 파워 오프 도메인으로서 제2 영역(320)을 포함할 수 있다. 제1 영역(310)은 CPU(311) 및 메모리(312)를 포함할 수 있으며, 상기 메모리(312)는 정보를 휘발성하게 저장하는 각종 종류의 메모리를 포함할 수 있다. 전술한 실시예에서와 같이 상기 메모리(312)는 SRAM(RAM1)을 포함할 수 있다.
한편, 제2 영역(320)은 하나 이상의 기능 블록을 포함할 수 있으며, 도 9에서는 압축기(321)와 압축 해제기(322)가 제2 영역(320)에 구비되는 예가 도시된다. 그러나, 본 발명의 실시예는 이에 한정될 필요는 없으며, 상기 압축기(321)와 압축 해제기(322)는 제1 영역(310)에 구비되어도 무방하며, 또한 제2 영역(320)은 이외에도 다른 기능블록을 더 포함할 수 있다.
도 9에 도시된 메모리 컨트롤러에 따른 동작의 일 예를 도 10 및 도 11을 참조하여 설명하면 다음과 같다. 도 10은 도 9의 메모리 컨트롤러의 동작의 제 1예를 나타내며, 도 11은 도 9의 메모리 컨트롤러의 동작의 제 2예를 나타낸다.
도 10에 도시된 바와 같이, 메모리(312)는 다수 개의 메모리 영역들을 포함하며, 노멀 모드시 메모리(312)는 시스템 관리 코드와 압축 해제된 코드들(압축 해제된 명령 코드 및 압축 해제된 메타 데이터)을 저장할 수 있다. 또한 다수 개의 메모리 영역들 각각에 대한 파워 제공을 제어하기 위하여 스위치가 메모리(312)에 구비될 수 있다. 메모리 동작을 위하여, 메모리(312)는 압축 해제된 명령 코드와 압축 해제된 메타 데이터를 저장할 수 있으며, 중앙 처리 장치에 의해 압축 해제된 코드들이 수행됨으로써 메모리 동작이 제어될 수 있다. 이와 함께, 전술한 실시예에서와 같이 시스템 관리(일 예로서, 파워 관리)를 위한 시스템 관리 코드가 메모리(312)에 더 저장될 수 있다. 상기와 같이 노멀 모드에서 압축 해제된 코드가 저장되는 메모리 영역을 제1 메모리 영역으로 지칭될 수 있다.
슬립 모드 진입이 검출됨에 따라, 적어도 하나의 코드에 대한 압축 코드가 생성될 수 있으며, 예컨대 메모리 컨트롤러에 구비되는 압축기(321)에 의해 압축 명령 코드 및 압축 메타 데이터를 포함하는 압축 코드가 생성될 수 있다. 압축 코드는 메모리(312)의 다른 메모리 영역에 저장될 수 있으며, 예컨대 메모리(312)의 제2 메모리 영역에 저장될 수 있다. 또한 슬립 모드시 메모리(312)의 제1 메모리 영역으로의 파워 제공이 차단될 수 있다. 도 10에서는 그 일예로서, 압축 해제된 코드들이 저장되었던 제1 메모리 영역에 대해 파워 제공이 차단됨으로써 압축 해제된 코드들이 삭제되는 예가 도시된다. 즉, 슬립 모드에서는 메모리(312)이 메모리 영역들 중, 시스템 관리 코드를 저장하는 메모리 영역과 압축 코드를 저장하는 메모리 영역들만에 대해 선택적으로 파워 제공이 유지될 수 있다.
전술한 실시예에 따라, 슬립 모드에서 실제 파워가 인가되는 RAM 의 사이즈를 최소화할 수 있으며, 이에 따라 RAM에 의한 슬립 커런트를 감소할 수 있다.
한편, 도 11에 도시된 바와 같이, 압축 코드 또는 압축 해제된 코드들을 저장함에 있어서 버퍼(313)가 더 이용될 수 있다. 일예로서, (a)에 도시된 바와 같이 메모리(312)는 시스템 관리 코드와 압축 해제된 코드들을 저장하기 위한 사이즈를 가질 수 있으며, 이에 따라 노멀 모드에서는 메모리(312)가 시스템 관리 코드와 압축 해제된 코드들을 저장한다.
슬립 모드 진입이 감지됨에 따라, 명령 코드와 메타 데이터에 대한 압축 동작이 수행됨으로써 압축 코드들이 생성된다. (b)에 도시된 바와 같이, 상기 생성된 압축 코드들은 버퍼(313)에 일시 저장된다. 이후, (c)에 도시된 바와 같이, 메모리(312)의 다수의 영역들에 대하여, 시스템 관리 코드를 저장하는 메모리 영역으로는 파워 제공이 유지되며, 또한 압축 코드를 저장할 수 있는 사이즈의 메모리 영역들로 파워 제공이 유지된다. 반면에, 나머지 메모리 영역들로는 파워 제공이 차단될 수 있다.
압축 코드는 파워 제공이 유지되는 메모리 영역들로 제공되어 저장된다. 이에 따라, 슬립 모드에서 메모리(312)는 시스템 관리 코드와 압축 코드들을 저장할 수 있다. 도 11의 실시예에 따르면, 압축 코드와 압축 해제된 코드를 저장하는 메모리 영역들이 서로 분리되지 않으므로 메모리(312)에 의한 파워 소모를 감소함과 함께 메모리(312)의 사이즈를 감소할 수 있다.
도 12는 본 발명의 일실시예에 따른 불휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템을 나타내는 블록도이다. 모바일 기기나 데스크 탑 컴퓨터와 같은 컴퓨팅 시스템(400)에서 본 발명의 불휘발성 메모리 시스템은 불휘발성 저장 시스템(450)으로 장착될 수 있다.
본 발명의 일실시예에 따른 컴퓨팅 시스템(400)은 CPU 등을 포함하는 호스트(410), 램(420), 유저 인터페이스(430) 및 장치 드라이버(440)를 포함할 수 있으며, 이들 구성요소는 각각 버스(460)에 전기적으로 연결되어 있다. 불휘발성 저장 시스템(450)은 장치 드라이버(440)과 연결될 수 있다. 호스트(410)는 컴퓨팅 시스템(400) 전체를 제어하고, 유저 인터페이스(430)를 통해서 입력된 유저의 명령에 대응하는 연산을 수행할 수 있다. 램(420)은 호스트(410)의 데이터 메모리 역할을 할 수 있고, 호스트(410)는 장치 드라이버(440)를 통해서 불휘발성 저장 시스템(450)에 유저 데이터를 기록하거나 독출할 수 있다. 또한 도 12에서는 불휘발성 저장 시스템(450)의 동작 및 관리를 제어하기 위한 장치 드라이버(440)가 호스트(410)의 외부에 구비되는 것으로 도시되었으나, 장치 드라이버(440)는 호스트(410)의 내부에 구비되어도 무방하다.
전술한 실시예들과 같이, 불휘발성 저장 시스템(450)은 메모리 컨트롤러를 포함하며, 메모리 컨트롤러는 파워 온 도메인 및 파워 오프 도메인을 포함할 수 있다. 파워 온 도메인 및 파워 오프 도메인 각각은 메모리로서 SRAM 등을 포함할 수 있으며, 슬립 모드에서 파워 온 도메인의 메모리(예컨대, 제1 메모리)는 압축된 코드들을 저장할 수 있으며, 파워 오프 도메인으로는 파워의 제공이 차단된다. 또한, 제1 메모리는 중앙 처리 장치에 의해 실행 가능한 노멀한 코드로서, 시스템 관리 코드를 더 저장할 수 있다. 한편, 노멀 모드에서는 파워 온 도메인 및 파워 오프 도메인으로 파워가 제공되며, 파워 오프 도메인의 메모리(예컨대, 제2 메모리)는 압축 해제된 코드를 저장한다. 중앙 처리 장치는 제2 메모리를 억세스함으로써 메모리 동작을 제어할 수 있다. 또한, 노멀 모드에서는 제1 메모리로의 파워이 차단되어도 무방하며(단, 시스템 관리 코드를 저장하는 메모리 영역으로는 파워가 제공됨), 또는 제1 메모리로 파워 제공이 유지되어도 무방하다.
도 13은 본 발명의 일실시예에 따른 메모리 카드를 나타내는 도면이다. 메모리 카드(500)는 모바일 기기나 데스크 탑 컴퓨터와 같은 전자기기에 연결하여 사용할 수 있는 휴대용 저장장치가 될 수 있다. 도 13에 도시된 바와 같이, 상기 메모리 카드(500)는 컨트롤러(510), 불휘발성 셀 어레이(520) 및 포트 영역(530)을 구비할 수 있다.
메모리 카드(500)는 포트 영역(530)을 통해서 외부의 호스트(미도시)와 통신할 수 있고, 컨트롤러(510)는 불휘발성 셀 어레이(520)를 제어할 수 있다. 컨트롤러(510)는 프로그램을 저장하는 ROM(미도시)으로부터 프로그램을 읽어서 수행할 수 있다. 본 발명의 실시예들에 따른 불휘발성 메모리 시스템의 관리 동작은 컨트롤러(510)에 의해서 수행될 수 있다. 불휘발성 셀 어레이(520)는 NAND 플래시 메모리, NOR 플래시 메모리 등의 셀 어레이를 포함할 수 있다.
또한, 전술한 실시예에서와 같이, 메모리 컨트롤러(510)는 파워 온 도메인 및 파워 오프 도메인을 포함할 수 있다. 슬립 모드에서 파워 온 도메인의 메모리(예컨대, 제1 메모리)는 압축된 코드들을 저장할 수 있으며, 노멀 모드에서는 파워 오프 도메인의 메모리(예컨대, 제2 메모리)는 압축 해제된 코드를 저장할 수 있다.
도 14는 본 발명의 일 실시예에 따른 호스트 및 불휘발성 메모리 시스템이 장착된 이동 단말기의 일 예를 나타내는 도면이다. 이동 단말기(600)는 기능이 제한되어 있지 않고 응용 프로그램을 통해 상당 부분의 기능을 변경하거나 확장할 수 있는 스마트폰일 수 있다. 이동 단말기(600)는, 무선기지국과 RF신호를 교환하기 위한 내장 안테나(610)을 포함하고, 카메라(630)에 의해 촬영된 영상들 또는 안테나(610)에 의해 수신되어 복호화된 영상들을 디스플레이하기 위한 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes)화면 같은 디스플레이화면(620)를 포함한다. 이동 단말기(600)는 제어버튼, 터치패널을 포함하는 동작 패널(640)를 포함할 수 있다. 또한 디스플레이화면(620)이 터치스크린인 경우, 동작 패널(640)은 디스플레이화면(620)의 터치감지패널을 더 포함할 수 있다. 이동 단말기(600)은 음성, 음향을 출력하기 위한 스피커(680) 또는 다른 형태의 음향출력부와, 음성, 음향이 입력되는 마이크로폰(650) 또는 다른 형태의 음향입력부를 포함한다. 이동 단말기(600)는 비디오 및 정지영상을 촬영하기 위한 CCD 카메라와 같은 카메라(630)를 더 포함한다. 또한, 이동 단말기(600)는 카메라(630)에 의해 촬영되거나 이메일(E-mail)로 수신되거나 다른 형태로 획득된 비디오나 정지영상들과 같이, 부호화되거나 복호화된 데이터를 저장하기 위한 저장매체(670), 그리고 저장매체(670)를 이동 단말기(600)에 장착하기 위한 슬롯(660)을 포함할 수 있다. 저장매체(670)는 전술한 실시예에서와 같은 불휘발성 메모리 시스템일 수 있으며, 예컨대 SD카드 또는 플라스틱 케이스에 내장된 EEPROM(electrically erasable and programmable read only memory)와 같은 다른 형태의 플래쉬 메모리일 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (10)

  1. 불휘발성 메모리 시스템에 있어서,
    상기 불휘발성 메모리 시스템은 메모리 컨트롤러를 구비하고, 상기 메모리 컨트롤러는,
    상기 불휘발성 메모리 시스템의 슬립 모드에서 파워가 제공되며, 압축 코드를 저장하기 위한 제1 메모리를 포함하는 제1 영역; 및
    상기 불휘발성 메모리 시스템의 슬립 모드에서 파워 제공이 차단되며, 압축 해제된 코드를 저장하기 위한 제2 메모리를 포함하는 제2 영역을 구비하고,
    상기 제1 메모리에는 상기 불휘발성 메모리 시스템의 동작과 관련된 명령 코드 또는 메타 데이터 중 적어도 하나가 상기 압축 코드로서 저장되고,
    상기 메모리 컨트롤러는, 상기 제1 메모리에 저장되는 압축 코드의 압축 동작을 제어하고, 동작 모드에 따라 상기 제1 메모리에 저장된 프로그램을 실행하거나 상기 제2 메모리에 저장된 프로그램을 실행하며,
    상기 제1 메모리는 다수 개의 영역들을 포함하고, 상기 압축 동작의 압축 정보에 기반하여 상기 다수 개의 영역들 중 일부의 영역들에 선택적으로 파워가 제공되며,
    상기 제1 메모리에는 시스템 관리 코드가 더 저장되고, 상기 슬립 모드에서 상기 슬립 모드의 해제가 감지될 때, 상기 메모리 컨트롤러는 상기 제1 메모리에 저장된 시스템 관리 코드를 실행하여 상기 압축 코드의 압축 해제 동작을 제어하는 것을 특징으로 하는 불휘발성 메모리 시스템.
  2. 제1항에 있어서, 상기 제2 영역은,
    상기 제2 메모리에 저장된 압축 해제된 코드를 압축하는 코드 압축기; 및
    상기 제1 메모리에 저장된 압축 코드를 압축 해제하는 코드 압축 해제기를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 시스템.
  3. 제1항에 있어서, 상기 제1 영역은,
    상기 제1 메모리의 압축 코드 저장 동작과 상기 제2 메모리의 압축 해제된 코드 저장 동작을 제어하는 중앙 처리 장치를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 시스템.
  4. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 슬립 모드에서 프로그램 카운터가 상기 제1 메모리를 가리킴에 따라 상기 제1 메모리에 저장된 시스템 관리 코드를 실행하고,
    노멀 모드에서, 상기 프로그램 카운터가 상기 제2 메모리를 가리킴에 따라 상기 제2 메모리의 코드들을 실행하는 것을 특징으로 하는 불휘발성 메모리 시스템.
  5. 제1항에 있어서,
    상기 제1 메모리의 다수 개의 메모리 영역들 중 상기 압축 코드가 저장되는 제1 메모리 영역에 파워가 제공되며,
    상기 다수 개의 메모리 영역들 중 상기 압축된 코드가 저장되지 않는 제2 메모리 영역에는 파워 제공이 차단되는 것을 특징으로 하는 불휘발성 메모리 시스템.
  6. 제1항에 있어서,
    상기 제1 메모리는 상기 제2 메모리보다 작은 사이즈를 갖는 것을 특징으로 하는 불휘발성 메모리 시스템.
  7. 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템의 동작방법에 있어서,
    호스트로부터의 요청 또는 상기 불휘발성 메모리 시스템의 검출 동작에 기반하여 슬립 모드의 진입을 검출하는 단계;
    상기 메모리 컨트롤러에 구비되는 압축기를 이용하여 제2 메모리에 저장된 압축 해제된 코드를 압축하여, 압축 코드를 제1 메모리의 적어도 일부의 메모리 영역에 저장하는 단계;
    상기 메모리 컨트롤러에 구비되는 파워 제어부의 제어에 기반하여 상기 제2 메모리로의 파워 제공을 차단하는 단계; 및
    상기 파워 제어부의 제어에 기반하여 상기 압축 코드가 저장된 상기 제1 메모리의 적어도 일부의 메모리 영역으로 파워 제공을 유지하는 단계를 구비하고,
    상기 제1 메모리에는 상기 불휘발성 메모리 시스템의 동작과 관련된 명령 코드 또는 메타 데이터 중 적어도 하나가 상기 압축 코드로서 저장되고,
    상기 제1 메모리에는 시스템 관리 코드가 더 저장되고, 상기 슬립 모드에서 상기 슬립 모드의 해제가 감지될 때, 상기 메모리 컨트롤러는 상기 제1 메모리에 저장된 시스템 관리 코드를 실행하여 상기 압축 코드의 압축 해제 동작을 제어하는 것을 특징으로 하는 불휘발성 메모리 시스템의 동작방법.
  8. 제7항에 있어서,
    상기 제2 메모리로의 파워 제공이 차단되고 상기 제1 메모리의 적어도 일부의 메모리 영역으로 파워 제공이 유지된 이후, 노멀 모드의 진입을 검출하는 단계;
    상기 노멀 모드의 진입을 검출함에 따라 상기 제1 메모리의 적어도 일부의 영역에 저장된 압축 코드를 압축 해제하는 단계;
    상기 파워 제어부의 제어에 기반하여 상기 제2 메모리로 파워를 제공하는 단계; 및
    압축 해제된 코드를 상기 제2 메모리에 저장하는 단계를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 시스템의 동작방법.
  9. 제7항에 있어서,
    상기 불휘발성 메모리 시스템은, 슬립 모드시 파워가 제공되는 파워 온 영역과, 슬립 모드시 파워의 제공이 차단되는 파워 오프 영역을 구비하고,
    상기 제1 메모리는 상기 파워 온 영역에 구비되고, 상기 제2 메모리는 상기 파워 오프 영역에 구비되는 것을 특징으로 하는 불휘발성 메모리 시스템의 동작방법.
  10. 제7항에 있어서,
    상기 제1 메모리는 다수의 메모리 영역들을 포함하며,
    상기 압축기에 의해 상기 상기 압축 해제된 코드를 압축한 후 압축한 결과에 따른 압축 정보를 생성하는 단계를 더 구비하고,
    상기 압축 정보에 따라, 상기 슬립 모드에서 상기 제1 메모리로 파워가 제공되는 적어도 일부의 메모리 영역이 선택되는 것을 특징으로 하는 불휘발성 메모리 시스템의 동작방법.
KR1020140047600A 2014-04-21 2014-04-21 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법 KR102143521B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140047600A KR102143521B1 (ko) 2014-04-21 2014-04-21 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법
US14/685,340 US10095303B2 (en) 2014-04-21 2015-04-13 Non-volatile memory system, memory card having the same, and operating method of non-volatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140047600A KR102143521B1 (ko) 2014-04-21 2014-04-21 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법

Publications (2)

Publication Number Publication Date
KR20150121561A KR20150121561A (ko) 2015-10-29
KR102143521B1 true KR102143521B1 (ko) 2020-08-11

Family

ID=54322010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140047600A KR102143521B1 (ko) 2014-04-21 2014-04-21 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법

Country Status (2)

Country Link
US (1) US10095303B2 (ko)
KR (1) KR102143521B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10998073B2 (en) * 2019-02-28 2021-05-04 Western Digital Technologies, Inc. Systems and methods to wake up memory array

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100058007A1 (en) 2008-08-26 2010-03-04 Kabushiki Kaisha Toshiba Information processing apparatus and memory management method
JP2010191951A (ja) 2009-01-20 2010-09-02 Ricoh Co Ltd 電子機器、その省電力制御方法、およびプログラム
US20110239013A1 (en) 2007-08-28 2011-09-29 Muller Marcus S Power management of data processing resources, such as power adaptive management of data storage operations
US20140310552A1 (en) 2013-04-15 2014-10-16 Advanced Micro Devices, Inc. Reduced-power sleep state s3

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421776B1 (en) * 1994-10-14 2002-07-16 International Business Machines Corporation Data processor having BIOS packing compression/decompression architecture
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
JP3556556B2 (ja) 2000-02-08 2004-08-18 株式会社東芝 命令コード変換装置及び情報処理システム
GB2426360A (en) 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
JP2009026106A (ja) 2007-07-20 2009-02-05 Oki Electric Ind Co Ltd 命令コード圧縮方法と命令フェッチ回路
US8171321B2 (en) 2007-12-26 2012-05-01 Intel Corporation Method and apparatus for cost and power efficient, scalable operating system independent services
KR101512493B1 (ko) 2009-02-06 2015-04-15 삼성전자주식회사 저전력 시스템온칩
JP2010283544A (ja) 2009-06-03 2010-12-16 Panasonic Corp 半導体集積回路
KR101602939B1 (ko) * 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
TWI455144B (zh) 2010-07-22 2014-10-01 Silicon Motion Inc 使用於快閃記憶體的控制方法與控制器
JP2012098893A (ja) 2010-11-01 2012-05-24 Fujitsu Semiconductor Ltd 圧縮命令処理装置及び圧縮命令生成装置
US10141314B2 (en) * 2011-05-04 2018-11-27 Micron Technology, Inc. Memories and methods to provide configuration information to controllers
CN103842975B (zh) 2011-09-19 2016-12-14 马维尔国际贸易有限公司 用于监视和管理存储器块以改善节电的系统和方法
US20160062691A1 (en) * 2014-03-13 2016-03-03 Mediatek Inc. Method for controlling memory device to achieve more power saving and related apparatus thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110239013A1 (en) 2007-08-28 2011-09-29 Muller Marcus S Power management of data processing resources, such as power adaptive management of data storage operations
US20100058007A1 (en) 2008-08-26 2010-03-04 Kabushiki Kaisha Toshiba Information processing apparatus and memory management method
JP2010191951A (ja) 2009-01-20 2010-09-02 Ricoh Co Ltd 電子機器、その省電力制御方法、およびプログラム
US20140310552A1 (en) 2013-04-15 2014-10-16 Advanced Micro Devices, Inc. Reduced-power sleep state s3

Also Published As

Publication number Publication date
KR20150121561A (ko) 2015-10-29
US10095303B2 (en) 2018-10-09
US20150301589A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
US8769256B2 (en) Fast switching between multiple operating systems using standby state
US9645925B2 (en) Non-volatile memory system, mobile apparatus including the same, and method of operating the non-volatile memory system
RU2641480C2 (ru) Электронное устройство и способ его управления
US9760503B2 (en) Operation method of memory controller and nonvolatile memory system including the memory controller
KR101602939B1 (ko) 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US9116631B2 (en) Mobile device and method of managing data using swap thereof
KR102289001B1 (ko) 솔리드 스테이드 드라이브 및 그것의 동작 방법
US20120023320A1 (en) Bios chip recovery system and computer thereof
TW200847169A (en) Memory device architectures and operation
US9606811B2 (en) Operating method of data storage device
US10649840B2 (en) Data storage device performing recovery operation after sudden power-off and operating method thereof
US20100064036A1 (en) Peripheral device operation method, peripheral device and host
KR20070012582A (ko) 비휘발성 메모리의 기입/독출 내구력 개선 장치 및 그 방법
US8892856B2 (en) Firmware flashing method and related computer system
CN110430431B (zh) 视频解码方法、芯片、装置、计算机设备和存储介质
US10008288B2 (en) Power loss test device and method for nonvolatile memory device
US20220374216A1 (en) Method of manufacturing information processing apparatus and mobile computer
KR102143521B1 (ko) 불휘발성 메모리 시스템, 이를 포함하는 메모리 카드 및 불휘발성 메모리 시스템의 동작방법
US20130132740A1 (en) Power Control for Memory Devices
CN106101838B (zh) 快速开机中ci模块的处理方法和数字接收终端
US9727240B2 (en) Data erasable method of memory in smart card and smart card thereof
US11720624B2 (en) Storage device, electronic system including storage device, and control program for storage device
US8249668B2 (en) Communication device and power saving method thereof
US20170153844A1 (en) Memory system and operation method thereof
US20140253569A1 (en) Information processing device, information processing method, and recording medium

Legal Events

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