KR102671736B1 - 메모리 시스템 및 메모리 시스템의 동작방법 - Google Patents
메모리 시스템 및 메모리 시스템의 동작방법 Download PDFInfo
- Publication number
- KR102671736B1 KR102671736B1 KR1020190064437A KR20190064437A KR102671736B1 KR 102671736 B1 KR102671736 B1 KR 102671736B1 KR 1020190064437 A KR1020190064437 A KR 1020190064437A KR 20190064437 A KR20190064437 A KR 20190064437A KR 102671736 B1 KR102671736 B1 KR 102671736B1
- Authority
- KR
- South Korea
- Prior art keywords
- time
- memory
- elapsed time
- hibernation
- absolute
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000006266 hibernation Effects 0.000 claims abstract description 92
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000013519 translation Methods 0.000 claims abstract description 4
- 230000007958 sleep Effects 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 14
- 238000009826 distribution Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
- G11C5/144—Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
메모리 장치를 제어하는 컨트롤러는, 액티브(active) 상태 및 비 액티브 상태 간의 상태 변경 시마다 호스트로부터 절대시각을 수신하고, 제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션(hibernation) 경과시간을 산출하고, 제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 경과시간 계산부; 및 메모리 영역에 대한 프로그램 커맨드에 응하여 상기 메모리 장치의 프로그램 동작을 제어하고, 상기 시스템시각에 기초하여 상기 메모리 영역에 대한 프로그램 동작 시각을 산출하고, 상기 메모리 영역에 대한 리드 커맨드에 응하여 상기 프로그램 동작 시각 이후 경과시간에 기초하여 결정된 리드 전압으로 상기 메모리 장치의 리드 동작을 제어하는 FTL(Flash Translation Layer)을 포함한다.
Description
본 발명은 메모리 시스템에 관한 것이다.
최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 이용하는 메모리 시스템, 다시 말해 데이터 저장 장치를 사용한다. 데이터 저장 장치는 휴대용 전자 장치의 주 기억 장치 또는 보조 기억 장치로 사용된다.
메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며, 또한 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템의 일 예로 데이터 저장 장치는, USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(SSD: Solid State Drive) 등을 포함한다.
본 발명은 추측된 현재 시각에 기초하여 동작함으로써 신뢰성이 향상되는 메모리 시스템 및 그의 동작 방법을 제공하고자 한다.
본 발명의 일 실시예에 따르면, 메모리 장치를 제어하는 컨트롤러는, 액티브(active) 상태 및 비 액티브 상태 간의 상태 변경 시마다 호스트로부터 절대시각을 수신하고, 제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션(hibernation) 경과시간을 산출하고, 제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 경과시간 계산부; 및 메모리 영역에 대한 프로그램 커맨드에 응하여 상기 메모리 장치의 프로그램 동작을 제어하고, 상기 시스템시각에 기초하여 상기 메모리 영역에 대한 프로그램 동작 시각을 산출하고, 상기 메모리 영역에 대한 리드 커맨드에 응하여 상기 프로그램 동작 시각 이후 경과시간에 기초하여 결정된 리드 전압으로 상기 메모리 장치의 리드 동작을 제어하는 FTL(Flash Translation Layer)을 포함한다.
본 발명의 일 실시예에 따르면, 액티브 상태 및 비 액티브 상태 간의 상태 변경 시마다 호스트로부터 절대시각을 수신하는 단계; 제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션 경과시간을 산출하는 단계; 제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 단계; 메모리 영역에 대한 프로그램 커맨드에 응하여 상기 메모리 장치의 프로그램 동작을 제어하고, 상기 시스템시각에 기초하여 상기 메모리 영역에 대한 프로그램 동작 시각을 산출하는 단계; 및 상기 메모리 영역에 대한 리드 커맨드에 응하여 상기 프로그램 동작 시각 이후 경과시간에 기초하여 결정된 리드 전압으로 상기 메모리 장치의 리드 동작을 제어하는 단계를 포함한다.
본 발명은 추측된 현재 시각에 기초하여 동작함으로써 신뢰성이 향상되는 메모리 시스템 및 그의 동작 방법을 제공하고자 한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 일 예를 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 구조를 나타낸 도면이다.
도 3은 경과시간 계산부가 메모리 시스템(110)의 현재 시각을 추측하는 방법을 설명하기 위한 도면이다.
도 4 내지 도 5는 메모리 장치(150)의 메모리 셀들의 문턱 전압 분포를 나타내는 도면이다.
도 6 내지 도 7b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
도 8은 프로그램이 수행된 이후 멀티 레벨 셀이 가질 수 있는 문턱 전압 분포를 예시한다.
도 9 내지 도 10b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 구조를 나타낸 도면이다.
도 3은 경과시간 계산부가 메모리 시스템(110)의 현재 시각을 추측하는 방법을 설명하기 위한 도면이다.
도 4 내지 도 5는 메모리 장치(150)의 메모리 셀들의 문턱 전압 분포를 나타내는 도면이다.
도 6 내지 도 7b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
도 8은 프로그램이 수행된 이후 멀티 레벨 셀이 가질 수 있는 문턱 전압 분포를 예시한다.
도 9 내지 도 10b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하, 도면들을 참조하여 본 발명의 실시 예들에 대해서 보다 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(110)을 포함하는 데이터 처리 시스템(100)의 일 예를 개략적으로 도시한 도면이다.
도 1을 참조하면, 데이터 처리 시스템(100)은 호스트(102) 및 메모리 시스템(110)을 포함한다.
호스트(102)는 전자 장치, 예컨대 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치들, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치들을 포함할 수 있다.
호스트(102)는 적어도 하나의 운영 시스템(OS: operating system)를 포함할 수 있다. 운영 시스템은 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 데이터 처리 시스템(100) 또는 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공한다. 운영 시스템은 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 운영 시스템에서의 일반 운영 시스템 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있다.
예컨대, 개인용 운영 시스템은 일반 사용자를 위한 서비스 제공 기능을 지원하도록 특성화된 시스템으로, 윈도우(windows) 및 크롬(chrome) 등을 포함하고, 기업용 운영 시스템은 고성능을 확보 및 지원하도록 특성화된 시스템으로, 윈도 서버(windows server), 리눅스(linux) 및 유닉스(unix) 등을 포함할 수 있다. 아울러, 운영 시스템에서의 모바일 운영 시스템은, 사용자들에게 이동성 서비스 제공 기능 및 시스템의 절전 기능을 지원하도록 특성화된 시스템으로, 안드로이드(android), iOS, 윈도 모바일(windows mobile) 등을 포함할 수 있다. 호스트(102)는 복수의 운영 시스템들을 포함할 수 있으며, 메모리 시스템(110)에 대한 사용자의 요청에 상응하는 동작을 수행하기 위해 운영 시스템을 실행할 수 있다.
메모리 시스템(110)은 호스트(102)의 요청에 응하여 호스트(102)의 데이터를 저장하기 위해 동작할 수 있다. 예컨대, 메모리 시스템(110)은 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구현될 수 있다.
메모리 시스템(110)은 다양한 종류의 저장 장치에 의해 구현될 수 있다. 예컨대, 상기 저장 장치는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 휘발성 메모리 장치와, ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable ROM), EEPROM(Electrically Erasable ROM), FRAM(Ferromagnetic ROM), PRAM(Phase change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 상기 플래시 메모리는 3차원 스택 구조를 가질 수 있다.
한편, 호스트(102)는 현재시각을 알 수 있다. 도 1은 실시간 시계(Real Time Clock, 104)를 사용하여 현재시각을 알 수 있는 호스트(102)를 예시하고 있다. 메모리 시스템(110)은 호스트(102)로부터 시각 정보를 수신할 수 있다.
메모리 시스템(110)은 타이머(144)를 포함할 수 있다. 메모리 시스템(110)은 호스트(102)로부터 수신한 절대시각과 타이머(144)가 측정하는 경과시간에 기초하여 시스템시각을 산출할 수 있다.
메모리 시스템(110)은 복수의 전원 상태 중 어느 하나의 상태를 가질 수 있다. 예를 들어, 메모리 시스템(110)은 액티브(active) 상태, 슬립(sleep) 상태 및 파워 오프(power off) 상태 중 어느 하나의 상태를 가질 수 있다.
액티브 상태에서 메모리 시스템(110)은 호스트(102)로부터 모든 종류의 요청을 수신할 수 있다. 액티브 상태는 비지(busy) 상태 및 하이버네이션(hibernation) 상태로 나뉠 수 있다.
비지 상태에서 메모리 시스템(110)은 호스트(102)의 요청에 응하여 동작하거나 백그라운드 동작(background operation)을 수행할 수 있다. 비지 상태에서 메모리 시스템(110)은 지원되는 모든 종류의 커맨드를 사용할 수 있다. 메모리 시스템(110)은 비지 상태에서 소정 경과시간 이상, 예를 들어 1ms 이상 동작하지 않을 때 하이버네이션 상태로 변경될 수 있다. 하이버네이션 상태는 메모리 시스템(110)이 호스트(102)의 요청에 대응하는 동작 및 백그라운드 동작을 수행하지 않는 상태이다. 메모리 시스템(110)은 하이버네이션 상태에서 전력 소모량을 줄이기 위해 타이머(144)의 동작을 중단시킬 수 있다. 메모리 시스템(110)은 하이버네이션 상태에서도 호스트(102)로부터 모든 종류의 요청을 수신할 수 있다. 메모리 시스템(110)은 동작을 재개할 필요가 있을 때 하이버네이션 상태에서 비지 상태로 변경될 수 있다.
메모리 시스템(110)은 액티브 상태에서 호스트(102)의 요청에 응하여 슬립 상태로 변경될 수 있다. 예를 들어, 호스트(102)는 파워 온 상태이지만 사용자가 호스트(102)를 사용하지 않을 때 메모리 시스템(110)으로 슬립 요청을 제공할 수 있다. 슬립 상태에서 메모리 시스템(110)의 일부 전력 공급이 중단될 수 있다. 슬립 상태에서 메모리 시스템(110)은 호스트(102)로부터 수신되는 요청 중 일부 종류의 요청에 응하여서만 동작할 수 있다. 일 예로, 슬립 상태에서 메모리 시스템(110)은 전원 상태를 변경하기 위한 요청에 응하여 전원 상태를 변경할 수 있다. 일 예로, 슬립 상태에서 메모리 시스템(110)은 센스 데이터 요청에 응하여 호스트(102)로 메모리 시스템(110)의 현재 상태를 나타내는 센스 데이터(sense data)를 제공할 수 있다. 슬립 상태에서 메모리 시스템(110)의 전력 소모량은 하이버네이션 상태의 전력 소모량보다 더욱 적다. 메모리 시스템(110)은 호스트(102)의 슬립 해제 요청에 응하여 액티브 상태로 변경될 수 있다.
메모리 시스템(110)은 액티브 상태 또는 슬립 상태에서 호스트(102)의 요청에 응하여 파워 오프 상태로 변경될 수 있다. 예를 들어, 호스트(102)는 자신이 파워 오프를 수행할 때 메모리 시스템(110)으로 파워 오프 요청을 제공할 수 있다. 파워 오프 상태에서 메모리 시스템(110)의 모든 전력 공급이 중단되며, 내부 메모리에 저장된 휘발성 데이터도 모두 상실된다. 파워 오프 상태에서 메모리 시스템(110)은 호스트(102)로부터 수신되는 일부 종류의 요청에 응하여서만 동작할 수 있다. 예를 들어, 파워 오프 상태에서 메모리 시스템(110)은 전원 상태를 변경하기 위한 요청 및 센스 데이터 요청에 응하여서만 동작할 수 있다. 메모리 시스템(110)은 호스트(102)의 파워 온 요청에 응하여 액티브 상태로 변경될 수 있다.
타이머(144)는 슬립 상태 및 파워 오프 상태에서 동작하지 않으며, 하이버네이션 상태에서도 동작하지 않을 수 있다. 메모리 시스템(110)은 타이머(144)를 통해 비지 상태의 경과시간만을 측정할 수 있으므로 호스트(102)로부터 시각 정보를 수신한 이후 하이버네이션 상태로 변경된 적이 있다면 정확한 시스템시각을 산출할 수 없다.
그러나, 메모리 시스템(110)이 정확한 시스템시각을 산출할 수 있도록 호스트(102)가 메모리 시스템(110)이 하이버네이션 상태에서 비지 상태로 변경될 때마다 절대시각을 제공한다면 호스트(102) 및 메모리 시스템(110)의 처리 부담이 증가할 수 있다. 메모리 시스템(110)이 하이버네이션 상태에서 비지 상태로 변경되는 경우는 메모리 시스템(110)의 동작 중 자주 발생할 수 있기 때문이다.
본 발명의 일 실시예에 따르면, 메모리 시스템(110)은 액티브 상태와 비 액티브 상태 간에 전원 상태가 변경될 때 호스트(102)로부터 절대시각을 수신할 수 있다. 메모리 시스템(110)은 비지 상태에서는 타이머(144)를 사용하여 비지 경과시간을 계산하고, 메모리 시스템(110)이 비지 상태에서 하이버네이션 상태로 변경되는 횟수를 카운트할 수 있다. 메모리 시스템(110)은 호스트(102)로부터 수신한 두 시점 이상의 시각 정보, 상기 비지 경과시간 및 하이버네이션 횟수에 기초하여 평균 하이버네이션 경과시간을 계산할 수 있다. 메모리 시스템(110)은 호스트(102)로부터 수신한 절대시각, 상기 절대시각 이후의 비지 경과시간 및 하이버네이션 횟수 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 보다 정확히 산출할 수 있다.
본 발명의 일 실시예에 따르면, 메모리 시스템(110)은 메모리 영역에 대한 리드 동작을 수행할 때 상기 메모리 영역이 프로그램된 시각 및 리드 동작을 수행하는 시각 사이의 구간에 기초하여 리드 전압을 결정할 수 있다. 따라서, 메모리 시스템(110)은 리드되는 데이터의 신뢰성을 향상시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 구조를 나타낸 도면이다.
메모리 시스템(110)은 메모리 장치(150), 및 컨트롤러(130)를 포함할 수 있다. 메모리 장치(150)는 호스트(102)를 위한 데이터를 저장할 수 있으며, 컨트롤러(130)는 메모리 장치(150)로의 데이터 저장을 제어할 수 있다.
여기서, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다. 메모리 시스템(110)이 SSD로 사용되면, 메모리 시스템(110)에 연결된 호스트(102)의 동작 속도는 향상될 수 있다. 게다가, 컨트롤러(130) 및 메모리 장치(150)는, 하나의 반도체 장치로 집적되어 메모리 카드를 구성할 수도 있다. 예컨대, 컨트롤러(130) 및 메모리 장치(150)는 PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
메모리 장치(150)는 비휘발성 메모리 장치일 수 있으며, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있다. 메모리 장치(150)는 라이트 동작을 통해 호스트(102)로부터 제공된 데이터를 저장할 수 있고, 리드 동작을 통해 호스트(102)로 메모리 장치(150)에 저장된 데이터를 제공할 수 있다. 메모리 장치(150)는 복수의 메모리 블록들을 포함하며, 메모리 블록들 각각은 복수의 페이지들을 포함하며, 상기 페이지들 각각은 워드라인에 연결된 복수의 메모리 셀들을 포함할 수 있다. 일 실시예에서, 메모리 장치(150)는 플래시 메모리가 될 수 있다. 상기 플래시 메모리는 3차원 스택 구조를 가질 수 있다.
컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)를 제어할 수 있다. 예컨대, 컨트롤러(130)는 메모리 장치(150)로부터 리드된 데이터를 호스트(102)로 제공하고, 호스트(102)로부터 제공된 데이터를 메모리 장치(150)에 저장할 수 있다. 이러한 동작을 위해, 컨트롤러(130)는 메모리 장치(150)의 리드, 프로그램, 이레이즈 등의 동작을 제어할 수 있다.
컨트롤러(130)는 내부 버스를 통해 서로 동작 가능하게 연결된 호스트 인터페이스(132), FTL(134), 전력 관리부(136), 메모리 인터페이스(138), 경과시간 계산부(140), 카운터(142), 타이머(144) 및 메모리(146)를 포함할 수 있다.
호스트 인터페이스(132)는 호스트(102)의 커맨드(command) 및 데이터를 처리하며, USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(102)와 통신하도록 구성될 수 있다.
호스트 인터페이스(132)는 호스트(102)로부터 시각 정보를 수신할 수 있다. 일 실시예에서, 호스트 인터페이스(132)는 메모리 시스템(110)의 전원 상태가 액티브 상태 및 슬립 상태 간에 변경되거나, 액티브 상태 및 파워 오프 상태 간에 변경될 때 시각 정보를 수신할 수 있다.
플래시 변환 계층(Flash Translation Layer: FTL)(134)은 메모리 시스템(110)의 전체적인 동작을 제어할 수 있다. FTL(134)은 메모리(146)에 로드되어 컨트롤러(130) 내부의 프로세서(미도시)에서 구동될 수 있다.
FTL(134)은 호스트(102)로부터의 요청에 따른 포그라운드 동작(foreground operation)을 수행할 수 있다. FTL(134)은 호스트 인터페이스(132)로부터 수신된 요청의 논리 주소와 메모리 장치(150)의 물리 주소를 매핑할 수 있다. FTL(134)은 라이트 요청, 리드 요청 및 이레이즈 요청을 메모리 장치(150)를 위한 프로그램 커맨드, 리드 커맨드 및 이레이즈 커맨드로 각각 변환할 수 있다. 구현에 따라, FTL(134)은 라이트 커맨드들의 순서를 정렬하여 메모리 인터페이스(142)로 제공함으로써 메모리 인터페이스(142)의 원 샷 프로그램, 원 샷 리드 성능 또는 병렬처리 성능을 극대화할 수 있다.
FTL(134)은 백그라운드 동작을 수행할 수도 있다. 예를 들어, FTL(134)은 메모리 장치(150)가 충분한 빈 블록을 가질 수 있도록 가비지 콜렉션을 수행하여 유효 데이터를 모아 빈 블록으로 이동시키고, 이동된 유효 데이터를 포함하고 있었던 블록들을 이레이즈할 수 있다.
전력 관리부(136)는 메모리 시스템(110)의 전원 상태에 따라 메모리 시스템(110)의 전력 공급을 제어할 수 있다.
메모리 인터페이스(138)는 컨트롤러(130)가 호스트(102)로부터의 요청에 응답하여 메모리 장치(150)를 제어하도록, 컨트롤러(130)와 메모리 장치(150) 간의 인터페이싱을 위한 메모리/스토리지(storage) 인터페이스로서의 역할을 할 수 있다. 메모리 장치(150)가 플래시 메모리, 특히 NAND 플래시 메모리인 경우, 메모리 인터페이스(138)는 메모리 장치(150)를 위한 제어 신호를 생성하고 메모리 장치(150)로 제공되는 데이터를 처리할 수 있다. 메모리 인터페이스(138)는 컨트롤러(130)와 메모리 장치(150) 사이의 커맨드 및 데이터를 처리하기 위한 인터페이스, 예컨대 NAND 플래시 인터페이스로서 동작할 수 있다.
구현에 따라, 메모리 인터페이스(138)는 메모리 장치(150)로부터 독출되는 데이터에 포함된 에러를 검출 및 정정할 수 있는 ECC를 포함할 수 있다. ECC는 ECC 인코딩 프로세스에서 사용된 ECC 코드를 통해 메모리 장치(150)로부터 독출된 데이터에 에러 정정 디코딩 프로세스를 수행할 수 있다. 에러 정정 디코딩 프로세스의 결과에 따라, ECC는 예컨대 에러 정정 성공/실패 신호와 같은 신호를 출력할 수 있다. 에러 비트의 수가 정정 가능한 에러 비트의 임계치를 초과하면, ECC는 에러 비트를 정정하지 못하고, 에러 정정 실패 신호를 출력할 수 있다.
메모리(146)는 메모리 시스템(110) 및 컨트롤러(130)의 동작 메모리로서의 역할을 수행할 수 있으며, 메모리 시스템(110) 및 컨트롤러(130)의 구동을 위한 데이터를 저장할 수 있다. 컨트롤러(130)는 호스트(102)로부터의 요청에 응하여 메모리 장치(150)가 리드, 라이트, 이레이즈 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다. 컨트롤러(130)는 메모리 장치(150)로부터 독출되는 데이터를 호스트(102)로 제공할 수 있으며, 호스트(102)로부터 제공되는 데이터를 메모리 장치(150)에 저장할 수 있다. 메모리(146)는 컨트롤러(130)와 메모리 장치(150)가 이러한 동작을 수행하는 데 필요한 데이터를 저장할 수 있다.
메모리(146)는 호스트(102)로부터 수신한 절대시각, 카운터(142)에 의해 카운트된 하이버네이션 횟수 및 타이머(144)에 의해 계산된 비지 경과시간을 저장할 수 있다.
메모리(146)는 휘발성 메모리로 구현될 수 있다. 예컨대, 메모리(146)는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 또는 동적 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory) 등으로 구현될 수 있다. 메모리(146)는 컨트롤러(130) 내부 또는 외부에 배치될 수 있다. 도 1은 컨트롤러(130) 내부에 배치된 메모리(146)를 예시한다. 일 실시예에서, 메모리(146)는 메모리(146)와 컨트롤러(130) 사이의 데이터를 입출력하는 메모리 인터페이스를 갖는 외부 휘발성 메모리 장치로 구현될 수 있다.
타이머(144)는 메모리 시스템(110)의 비지 상태에서 동작하여 비지 경과시간을 측정할 수 있다.
카운터(142)는 메모리 시스템(110)의 하이버네이션 횟수를 카운트할 수 있다.
경과시간 계산부(140)는 호스트(102)로부터 수신한 둘 이상의 절대시각 사이의 평균 하이버네이션 경과시간을 계산하고, 호스트(102)로부터의 절대시각 이후 메모리 시스템(110)의 비지 경과시간, 하이버네이션 횟수에 기초하여 메모리 시스템(110)의 시스템시각을 산출할 수 있다.
도 3은 경과시간 계산부(140)가 메모리 시스템(110)의 시스템시각을 산출하는 방법을 설명하기 위한 도면이다.
도 3의 그래프의 가로축은 시각(TIME), 세로축은 전력(POWER)을 나타낸다. 도 3에 도시된 실선은 시각에 따른 메모리 시스템(110)의 전력 공급을 나타낸다.
도 3의 그래프의 세로축에 비지(BUSY) 상태, 하이버네이션(HIBERNATION) 상태 및 비 액티브 상태의 예로서 슬립(SLEEP) 상태의 전력이 도시된다.
도 3의 그래프의 가로축에 제1 내지 제3 시각(T1 내지 T3) 및 현재 시각(NOW)이 도시된다. 제1 내지 제3 시각은 호스트 인터페이스(132)가 호스트(102)로부터 수신한 절대시각을 나타낸다. 도 3의 그래프에 제1 내지 제7 비지 경과시간(B1 내지 B7), 제1 내지 제5 하이버네이션 경과시간(H1 내지 H5) 및 제1 내지 제2 슬립 경과시간(S1 내지 S2)이 도시된다.
도 3을 참조하면, 호스트 인터페이스(132)는 메모리 시스템(110)이 액티브 상태에서 비 액티브 상태로 변경되거나, 비 액티브 상태에서 액티브 상태로 변경될 때 호스트(102)로부터 절대시각을 수신할 수 있다.
구현에 따라, 호스트 인터페이스(132)는 호스트(102)가 슬립 요청, 슬립 해제 요청, 파워 오프 요청 또는 파워 온 요청과 함께 제공하는 시각 정보를 수신할 수 있다. 구현에 따라, 호스트 인터페이스(132)는 호스트(102)의 슬립 요청, 슬립 해제 요청, 파워 오프 요청 또는 파워 온 요청에 응하여 응답을 제공하면서, 시각 정보 요청 신호를 함께 제공할 수 있다. 호스트 인터페이스(132)는 호스트(102)가 상기 시각 정보 요청 신호에 응하여 제공하는 시각 정보를 수신할 수 있다.
도 3의 예에서, 제1 시점(T1)에서 메모리 시스템(110)이 슬립 상태에서 액티브 상태로 변경될 수 있다. 호스트 인터페이스(132)는 호스트(102)로부터 제1 시점(T1)의 시각 정보를 획득할 수 있다. 메모리(146)는 상기 시각 정보를 저장할 수 있다.
제1 내지 제4 비지 경과시간(B1 내지 B4)에 타이머(144)가 동작하면서 비지 경과시간을 측정할 수 있다. 제1 내지 제3 하이버네이션 경과시간(H1 내지 H3)에 타이머(144)는 동작하지 않을 수 있다. 카운터(142)는 메모리 시스템(110)이 비지 상태에서 하이버네이션 상태로 변경되는 하이버네이션 횟수를 카운트할 수 있다.
메모리(146)는 상기 비지 경과시간 및 하이버네이션 횟수 정보를 저장할 수 있다.
제2 시점(T2)에서 메모리 시스템(110)이 액티브 상태에서 슬립 상태로 변경될 수 있다. 호스트 인터페이스(132)는 호스트(102)로부터 제2 시점의 시각 정보를 획득할 수 있다. 구현에 따라, FTL(134)은 메모리 인터페이스(138)를 통해 메모리(146)에 저장된 비지 경과시간 정보(B1 내지 B4) 및 하이버네이션 횟수 정보 및 호스트(102)로부터 수신한 제1 및 제2 시각(T1 및 T2)을 프로그램하도록 메모리 장치(150)를 제어할 수 있다.
제3 시각(T3)에서 메모리 시스템(110)이 슬립 상태에서 액티브 상태로 변경될 수 있다. 호스트 인터페이스(132)는 호스트(102)로부터 절대시각인 제3 시각(T3)을 획득할 수 있다. 메모리(146)는 상기 절대시각을 저장할 수 있다.
구현에 따라, FTL(134)은 메모리 인터페이스(138)를 통해 메모리 장치(150)에 프로그램된 제1 및 제2 시각(T1 및 T2), 비지 경과시간 및 하이버네이션 횟수를 메모리(146)로 로드할 수 있다.
경과시간 계산부(140)는 상기 제1 및 제2 시각(T1 및 T2), 비지 경과시간 및 하이버네이션 횟수에 기초하여 평균 하이버네이션 경과시간을 계산할 수 있다.
도 3의 예에서, 경과시간 계산부(140)는 제1 및 제2 시각(T1 내지 T2) 사이의 경과시간에서, 제1 내지 제4 비지 경과시간(B1 내지 B4)을 빼서 제1 내지 제3 하이버네이션 경과시간(H1 내지 H3)의 합을 계산할 수 있다. 즉, 하이버네이션 상태에서 타이머(144)가 동작하지 않아서 제1 내지 제3 하이버네이션 경과시간(H1 내지 H3) 각각을 측정할 수 없더라도, 경과시간 계산부(140)는 제1 및 제2 시각(T1 내지 T2) 사이의 총 하이버네이션 경과시간을 계산할 수 있다. 도 3의 예에서, 제1 및 제2 시각(T1 내지 T2) 사이에 발생한 하이버네이션 횟수는 총 3회이다. 경과시간 계산부(140)는 제1 및 제2 시각 (T1 내지 T2) 사이의 하이버네이션 경과시간을 하이버네이션 횟수로 나눔으로써 평균 하이버네이션 경과시간을 계산할 수 있다.
경과시간 계산부(140)는 호스트(102)로부터 수신한 절대시각, 상기 절대시각 이후의 비지 경과시간 및 하이버네이션 횟수 및 상기 제1 및 제2 시각(T1 및 T2) 사이의 평균 하이버네이션 경과시간 정보에 기초하여 시스템시각을 계산할 수 있다.
도 3을 참조하여 경과시간 계산부(140)가 현재(NOW)의 시스템시각을 계산하는 방법이 설명된다. 타이머(144)는 제3 시각(T3) 이후 현재(NOW)까지 제5 내지 제7 비지 경과시간(B5 내지 B7)에 동작하여 비지 경과시간을 측정할 수 있다. 타이머(144)는 제4 및 제5 하이버네이션 경과시간(H4 및 H5)에 동작하지 않을 수 있다. 카운터(142)는 제3 시각(T3) 이후 현재(NOW)까지의 하이버네이션 횟수를 측정할 수 있다. 도 3의 예에서는 제3 시각(T3) 이후 하이버네이션 횟수는 2회이다.
현재(NOW)의 시스템시각은 제3 시각(T3), 제5 내지 제6 비지 경과시간(B5 내지 B6), 제4 내지 제5 하이버네이션 경과시간(H4 내지 H5)의 합으로 계산될 수 있다. 경과시간 계산부(140)는 제1 내지 제2 시각(T1 내지 T2) 사이의 평균 하이버네이션 경과시간을 각각 제4 및 제5 하이버네이션 경과시간(H4 및 H5)으로 간주하고, 현재(NOW)의 시스템시각을 산출할 수 있다.
즉, 시스템시각은 호스트(102)로부터의 절대시각에 상기 절대시각 이후의 총 비지 경과시간 및 총 하이버네이션 경과시간을 더함으로써 산출될 수 있되, 상기 총 하이버네이션 경과시간은 상기 절대시각 이후의 하이버네이션 횟수 및 제1 및 제2 시각(T1 및 T2) 사이의 평균 하이버네이션 경과시간의 곱으로 산출될 수 있다.
본 발명의 일 실시예에 따르면, 메모리 시스템(110)은 하이버네이션 상태일 때 타이머(144)가 동작하지 않고, 액티브 상태 및 하이버네이션 상태 사이의 상태 변경 시에 호스트(102)로부터 절대시각을 수신하지 않더라도 평균 하이버네이션 경과시간 및 하이버네이션 횟수에 기초하여 시스템시각을 산출할 수 있다. 메모리 시스템(110)은 상기 시스템시각에 기초하여 메모리 장치(150)의 리드 전압을 조정함으로써 메모리 장치(150)로부터 리드되는 데이터의 신뢰성을 향상시킬 수 있다. 이하에서 메모리 장치(150)가 상기 시스템시각에 기초하여 메모리 장치(150)의 리드 전압을 조정하는 실시예가 설명된다.
도 4 내지 도 5는 메모리 장치(150)의 메모리 셀들의 문턱 전압 분포를 나타내는 도면이다.
메모리 장치(150)는 워드라인에 프로그램 전압을 인가함으로써 메모리 셀들의 플로팅 게이트에 전하를 주입함으로써 상기 메모리 셀들에 데이터를 프로그램할 수 있다. 다수의 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해 동일한 데이터가 프로그램된 메모리 셀들 각각의 문턱 전압은 일정한 범위의 문턱 전압 분포를 가질 수 있다. 예컨대 멀티 레벨 셀을 프로그램하면, 상기 멀티 레벨 셀은 3개의 프로그램 상태(P1 내지 P3)와 하나의 이레이즈 상태(E) 중 어느 하나의 상태를 가질 수 있다.
도 4는 멀티 레벨 셀이 가질 수 있는 상태의 이상적인 분포도이다. 도 4에 도시된 각 문턱 전압 분포들은 서로 하나도 겹치지 않고 각각 일정 범위의 리드 전압 마진을 가질 수 있다. 도 4의 문턱 전압 분포들을 갖는 메모리 셀들을 리드할 때 메모리 장치(150)는 상기 메모리 셀들이 연결된 워드라인에 제1 내지 제3 전압(V1 내지 V3)을 인가함으로써 각 셀들의 문턱 전압 상태를 구분할 수 있다.
한편, 비휘발성 메모리 셀 소자의 특성에 따라 메모리 셀들을 프로그램한 이후 플로팅 게이트에 주입된 전하들 중 일부는 예를 들어 1분 정도의 짧은 경과시간 내에 누설될 수 있다. 메모리 장치(150)는 짧은 경과시간 내에 누설되는 일부 전하들을 보완하기 위해 이상적인 문턱 전압보다 높은 문턱 전압을 갖도록 메모리 셀들을 프로그램할 수 있다. 메모리 셀들을 프로그램한 이후 플로팅 게이트의 일부 전하들이 누설되어 메모리 셀들의 문턱 전압이 낮아졌을 때 메모리 장치(150)가 워드라인에 제1 내지 제3 전압(V1 내지 V3)을 인가함으로써 각 셀들의 문턱 전압 상태를 구분할 수 있다.
도 5는 프로그램이 수행된 직후의 멀티 레벨 셀이 가질 수 있는 문턱 전압 분포를 예시한다. 메모리 셀들을 프로그램한 후 플로팅 게이트의 일부 전하들이 누설되기 전에 메모리 장치(150)가 워드라인에 제1 내지 제3 전압(V1 내지 V3)을 인가하면 데이터가 잘못 리드될 수 있다. 도 5의 예에서, 제1 프로그램 상태(P1)를 의도하고 프로그램된 메모리 셀들 중 프로그램된 직후에는 제2 전압(V2)을 넘는 문턱 전압을 갖는 메모리 셀들이 있을 수 있다. 프로그램된 직후 해당 메모리 셀을 리드하면 제2 프로그램 상태(P2)로 리드될 수 있다. 메모리 장치(150)가 프로그램된 직후에는 워드라인에 제1 프라임 내지 제3 프라임 전압(V1' 내지 V3')을 인가한다면 의도한 데이터가 올바르게 리드될 수 있다.
본 발명의 일 실시예에 따르면, 메모리 인터페이스(138)는 경과시간 계산부(140)로부터의 시스템시각에 기초하여 메모리 셀의 프로그램이 수행된 후 일정 경과시간 이내에 해당 메모리 셀을 다시 리드하는 경우 경과시간에 따라 예상되는 리드 전압으로 리드 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다.
도 6 내지 도 7b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
도 6은 메모리(146)에 저장될 수 있는 프로그램 시각 테이블(602) 및 리드 전압 테이블(604)을 예시한다.
도 6을 참조하면, 프로그램 시각 테이블(602)은 어드레스(ADDR) 및 타임 스탬프(TIMESTAMP)를 필드로서 포함할 수 있다. 상기 어드레스(ADDR)는 최근에 수행된 프로그램 동작과 연관된 어드레스를 나타낸다. 상기 타임 스탬프(TIMESTAMP)는 상기 어드레스에 대응하는 프로그램 동작이 수행된 시각을 나타낸다.
리드 전압 테이블(604)은 프로그램 동작이 수행된 이후 경과시간의 범위별 리드 전압을 저장할 수 있다. 리드 전압 테이블(604)은 각 문턱 전압을 구분하는 리드 전압들(Vread1 내지 Vread3)을 인덱스로서 포함하고, 프로그램 동작이 수행된 이후 경과시간(E)의 범위를 필드로서 포함할 수 있다. 예를 들어, 도 6에서 'E1<E<E2'는 경과시간(E)이 'E1'이상 'E2' 미만인 경우를 나타낸다. 구현에 따라, 경과시간의 범위별 리드 전압은 실험적으로 결정되어 사전에 메모리(146)에 저장될 수 있다. 일 예로, 상기 경과시간이 짧을수록 상기 리드 전압들(Vread1 내지 Vread3)이 높을 수 있으나 본 발명은 이에 제한되지 않는다. 도 6은 세 개의 리드 전압들(Vread1 내지 Vread3)을 예시하고 있으나, 리드 전압의 개수는 메모리 셀이 저장할 수 있는 비트의 개수에 따라 달라질 수 있다.
도 7a는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 프로그램 동작을 나타내는 흐름도이다.
단계 S702에서, FTL(134)은 라이트 요청에 응하여 프로그램 동작을 수행하도록 메모리 인터페이스(138)를 통해 메모리 장치(150)를 제어할 수 있다. 상기 라이트 요청은 라이트 어드레스 및 라이트 데이터를 포함할 수 있으며, 호스트(102)로부터 수신되었을 수도 있고, 백그라운드 동작 중 생성되었을 수도 있다. 도 5를 참조하여 설명한 바와 같이, 메모리 장치(150)는 메모리 셀들이 이상적인 문턱 전압 분포보다 다소 높은 전압 분포를 갖도록 프로그램 동작을 수행할 수 있다.
단계 S704에서, FTL(134)은 상기 라이트 어드레스 및 상기 프로그램 동작이 수행된 시각을 메모리(146)에 저장할 수 있다. 예를 들어, FTL(134)은 프로그램 동작이 완료되면 경과시간 계산부(140)로부터 시스템시각을 획득하고, 상기 시스템시각을 상기 프로그램 동작 시각으로서 메모리(146)에 저장할 수 있다.
구현에 따라, 단계 S706에서 FTL(134)은 프로그램 동작이 수행된 후 소정 경과시간 후 상기 라이트 어드레스 및 프로그램 동작 시각을 메모리(146)에서 제거할 수 있다.
도 7b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 리드 동작을 나타내는 흐름도이다.
단계 S722에서, FTL(134)은 리드 요청에 응하여 리드 동작을 수행할 메모리 영역이 최근 프로그램된 메모리 영역인지 판단할 수 있다. 예를 들어, 상기 리드 요청은 리드 어드레스를 포함할 수 있고, FTL(134)은 메모리(146)에 저장된 프로그램 시각 테이블(602)을 참조하여 상기 리드 어드레스가 최근에 프로그램된 메모리 영역의 어드레스인지 판단할 수 있다. 구현에 따라, 메모리 인터페이스(138)는 상기 리드 어드레스가 상기 프로그램 시각 테이블(602)에 포함되는지 여부를 판단할 수 있다.
상기 리드 어드레스가 최근에 프로그램된 메모리 영역의 어드레스인 경우(단계 S722에서, "YES"), 단계 S724에서 FTL(134)은 프로그램 동작 후 경과시간에 기초하여 리드 전압을 결정할 수 있다. 예를 들어, FTL(134)은 프로그램 시각 테이블(602)의 상기 어드레스에 대응하는 타임 스탬프에 기초하여 프로그램 동작 시각 및 경과시간 계산부(140)로부터 획득한 현재의 시스템시각에 기초하여 프로그램 동작 후 경과시간을 계산할 수 있다. FTL(134)은 리드 전압 테이블(604)을 참조하여 상기 프로그램 동작 후 경과시간에 따른 리드 전압을 획득할 수 있다. FTL(134)은 메모리 인터페이스(138)를 통해 상기 획득한 리드 전압을 메모리 장치(150)의 레지스터에 저장할 수 있다.
상기 리드 어드레스가 최근에 프로그램된 메모리 영역의 어드레스가 아닌 경우(단계 S722에서, "NO"), 단계 S726에서 메모리 인터페이스(138)는 리드 전압을 디폴트 전압으로 결정할 수 있다.
단계 S728에서, 메모리 인터페이스(138)는 상기 결정된 리드 전압을 워드라인에 인가하여 리드 동작을 수행하도록 메모리 인터페이스(138)를 통해 메모리 장치(150)를 제어할 수 있다.
본 발명의 일 실시예에 따른 메모리 시스템(110)은 경과시간 계산부(140)로부터의 시스템 시각에 기초하여 최근에 프로그램된 데이터를 다시 리드할 때의 리드 전압을 결정함으로써 리드되는 데이터의 신뢰성을 향상시킬 수 있다.
도 8은 프로그램이 수행되고 경과시간이 경과한 이후 멀티 레벨 셀이 가질 수 있는 문턱 전압 분포를 예시한다.
프로그램된 메모리 셀들의 이상적인 문턱 전압 분포가 형성된 후 경과시간이 오래 되면 플로팅 게이트에 주입된 전하들이 누설되어 문턱 전압 분포가 낮아질 수 있다. 따라서, 메모리 장치(150)가 프로그램한 지 경과시간이 오래 된 메모리 셀과 연결된 워드라인에 제1 내지 제3 전압(V1 내지 V3)을 인가하면 데이터가 잘못 리드될 수 있다.
본 발명의 일 실시예에 따르면, 메모리 인터페이스(138)는 리드 동작을 수행할 때 경과시간 계산부(140)로부터의 시스템시각에 기초하여 결정된 리드 전압으로 리드 동작을 수행하도록 메모리 장치(150)를 제어할 수 있다.
도 9 내지 도 10b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 동작을 설명하기 위한 도면이다.
도 9는 메모리 시스템(110)에 저장될 수 있는 데이터를 예시하는 도면이다. 도 9는 메모리(146)에 저장될 수 있는 리드 전압 테이블(904) 및 메모리 장치(150)에 저장될 수 있는 프로그램 시각 테이블(902)을 나타낸다.
도 9를 참조하면, 프로그램 시각 테이블(902)은 블록(BLOCK) 및 타임 스탬프(TIMESTAMP)를 필드로서 포함할 수 있다. 상기 블록(BLOCK)은 메모리 장치(150)에 포함된 각 블록들을 나타내며, 상기 타임 스탬프(TIMESTAMP)는 상기 블록의 프로그램 동작이 수행된 시각을 나타낸다.
리드 전압 테이블(904)은 프로그램 동작이 수행된 이후 경과시간의 범위별 리드 전압을 저장할 수 있다. 리드 전압 테이블(904)은 각 문턱 전압을 구분하는 리드 전압들(Vread1 내지 Vread3)을 인덱스로서 포함하고, 프로그램 동작이 수행된 이후 경과시간(E)의 범위를 필드로서 포함할 수 있다. 일 예로, 상기 경과시간이 길수록 상기 리드 전압들(Vread1 내지 Vread3)이 낮을 수 있으나 본 발명은 이에 제한되지 않는다. 도 9는 세 개의 리드 전압들(Vread1 내지 Vread3)을 예시하고 있으나, 리드 전압의 개수는 메모리 셀이 저장할 수 있는 비트의 개수에 따라 달라질 수 있다.
도 10a는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 프로그램 동작을 나타내는 흐름도이다.
단계 S1002에서, FTL(134)은 라이트 요청에 응하여 프로그램 동작을 수행하도록 메모리 인터페이스(138)를 통해 메모리 장치(150)를 제어할 수 있다. 상기 라이트 요청은 라이트 어드레스 및 라이트 데이터를 포함할 수 있다.
단계 S1004에서, FTL(134)은 프로그램 동작 수행 시각을 상기 라이트 어드레스에 대응하는 메모리 블록의 프로그램 동작 수행 시각으로서 메모리 인터페이스(138)를 통해 메모리 장치(150)에 프로그램할 수 있다. 예를 들어, FTL(134)은 프로그램 동작이 완료되면 경과시간 계산부(140)로부터 시스템시각을 획득하고, 상기 시스템시각을 상기 메모리 블록의 프로그램 동작 수행 시각으로서 프로그램 시각 테이블(902)에 저장하도록 메모리 장치(150)를 제어할 수 있다. 구현에 따라, 프로그램 시각 테이블(902)은 메모리 장치(150)의 시스템 블록에 프로그램될 수 있다. 구현에 따라, FTL(134)은 메모리 블록의 모든 페이지를 프로그램할 때마다 단계 S1004의 동작을 수행하지는 않을 수 있다. 예를 들어, FTL(134)은 메모리 블록의 마지막 페이지를 프로그램할 때만 단계 S1004의 동작을 수행할 수도 있다.
도 10b는 본 발명의 일 실시예에 따른 메모리 시스템(110)의 리드 동작을 나타내는 흐름도이다.
단계 S1022에서, FTL(134)은 리드 요청에 응하여 리드 동작을 수행할 메모리 블록의 프로그램 동작 시각을 획득할 수 있다. 예를 들어, 상기 리드 요청은 리드 어드레스를 포함할 수 있고, FTL(134)은 프로그램 시각 테이블(902)을 참조하여 상기 리드 어드레스에 대응하는 메모리 블록의 프로그램 동작 시각을 획득할 수 있다.
단계 S1024에서, FTL(134)은 메모리 블록의 프로그램 동작 이후 경과시간에 기초하여 리드 전압을 결정할 수 있다. 예를 들어, FTL(134)은 프로그램 시각 테이블(902)을 참조하여 획득한 상기 메모리 블록의 프로그램 동작 시각 정보 및 경과시간 계산부(140)로부터 획득한 현재의 시스템시각에 초하여 프로그램 동작 후 경과시간을 계산할 수 있다. FTL(134)은 리드 전압 테이블(904)을 참조하여 상기 프로그램 동작 후 경과시간에 따른 리드 전압을 획득할 수 있다.
단계 S1026에서, FTL(134)은 상기 결정된 리드 전압을 워드라인에 인가하여 리드 동작을 수행하도록 메모리 인터페이스(138)를 통해 메모리 장치(150)를 제어할 수 있다.
본 발명의 일 실시예에 따른 메모리 시스템(110)은 경과시간 계산부(140)로부터의 시스템시각에 기초하여 프로그램된 지 경과시간이 오래 된 데이터를 다시 리드할 때의 리드 전압을 결정함으로써 리드되는 데이터의 신뢰성을 향상시킬 수 있다.
도 1 내지 10b를 참조하여 설명한 본 발명의 일 실시예에 따르면, 메모리 시스템(110)은 액티브 상태와 비 액티브 상태 간의 상태 변경 시에 호스트(102)로부터 절대시각을 수신할 수 있다. 메모리 시스템(110)은 상기 호스트(102)로부터 수신한 제1 및 제2 시각 사이의 평균 하이버네이션 경과시간을 산출할 수 있다. 메모리 시스템(110)은 상기 호스트(102)로부터 수신한 제3 시각, 상기 제3 시각 이후 카운터(142)로부터 측정되는 하이버네이션 상태로 변경되는 횟수 타이머(144)로부터 측정되는 액티브 시구간 및 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출할 수 있다.
메모리 시스템(110)은 비지 상태에서 잠시 동작하지 않으면 하이버네이션 상태로 변경되고, 하이버네이션 상태에서 어떤 커맨드를 수신하더라도 비지 상태로 변경될 수 있다. 메모리 시스템(110)의 비지 상태와 하이버네이션 상태 사이의 상태 변경은 자주 발생할 수 있다. 본 발명의 일 실시예에 따른 메모리 시스템(110)은 시스템시각을 산출하기 위해서 하이버네이션 상태에서 내부 타이머(144)를 동작시키지 않으므로 메모리 시스템(110)의 전력 소모를 증가시키지 않는다. 그리고 메모리 시스템(110)은 비지 상태와 하이버네이션 상태 사이의 상태 변경 시에는 호스트(102)로부터 절대시각을 수신하지 않고도 시스템시각을 산출할 수 있으므로 메모리 시스템(110)과 호스트(102) 간 처리 부담을 거의 증가시키지 않는다.
메모리 시스템(110)은 전력 소모 및 처리 부담을 증가시키지 않으면서 산출한 시스템시각에 기초하여 리드 전압을 결정함으로써 메모리 장치(150)로부터 리드되는 데이터의 신뢰성을 향상시킬 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
102: 호스트
110: 메모리 시스템
130: 컨트롤러
150: 메모리 장치
110: 메모리 시스템
130: 컨트롤러
150: 메모리 장치
Claims (18)
- 메모리 장치를 제어하는 컨트롤러에 있어서,
액티브(active) 상태 및 비 액티브 상태 간의 상태 변경 시마다 호스트로부터 절대시각을 수신하고, 제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션(hibernation) 경과시간을 산출하고, 제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 경과시간 계산부; 및
메모리 영역에 대한 프로그램 커맨드에 응하여 상기 메모리 장치의 프로그램 동작을 제어하고, 상기 시스템시각에 기초하여 상기 메모리 영역에 대한 프로그램 동작 시각을 산출하고, 상기 메모리 영역에 대한 리드 커맨드에 응하여 상기 프로그램 동작 시각 이후 경과시간에 기초하여 결정된 리드 전압으로 상기 메모리 장치의 리드 동작을 제어하는 FTL(Flash Translation Layer)
을 포함하는 컨트롤러.
- 제1항에 있어서,
상기 경과시간 계산부는
상기 제1 및 제2 절대시각 사이 경과시간, 상기 제1 및 제2 절대시각 사이의 비지 경과시간에 기초하여 상기 제1 및 제2 절대시각 사이의 총 하이버네이션 경과시간을 산출하고, 상기 총 하이버네이션 경과시간 및 제1 및 제2 절대시각 사이의 하이버네이션 횟수에 기초하여 상기 평균 하이버네이션 경과시간을 산출하는
컨트롤러.
- 제1항에 있어서,
상기 경과시간 계산부는
상기 제3 절대시각 이후의 하이버네이션 횟수 및 상기 평균 하이버네이션 경과시간에 기초하여 상기 제3 절대시각 이후의 총 하이버네이션 경과시간을 산출하고, 상기 제3 절대시각 이후의 비지 경과시간 및 상기 제3 절대시각 이후의 총 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는
컨트롤러.
- 제1항에 있어서,
상기 경과시간 계산부는
상기 프로그램 동작 시각 및 상기 시스템 시각에 기초하여 상기 프로그램 동작 시각 이후 경과시간을 산출하는
컨트롤러.
- 제1항에 있어서,
상기 FTL은
상기 프로그램 동작 시각 이후 경과시간이 길수록 상기 리드 전압을 낮게 결정하는
컨트롤러.
- 제1항에 있어서,
상기 비 액티브 상태는 슬립 상태 및 파워 오프 상태를 포함하는
컨트롤러.
- 제1항에 있어서,
상기 메모리 영역에 대한 프로그램 동작 시각을 저장하는 메모리를 더 포함하고,
상기 FTL은
상기 메모리 영역에 대한 프로그램 동작 시각으로부터 소정 경과시간 후에 상기 메모리에 저장된 상기 프로그램 동작 시각을 제거하는
컨트롤러.
- 제7항에 있어서,
상기 FTL은
상기 메모리에 상기 메모리 영역에 대한 프로그램 동작 시각이 저장되어 있는 경우 상기 리드 전압을 디폴트 리드 전압보다 높은 전압으로 결정하는
컨트롤러.
- 제7항에 있어서,
상기 메모리는
상기 프로그램 동작 시각 이후 경과시간의 범위별 리드 전압을 포함하는 리드 전압 테이블을 더 저장하는
컨트롤러.
- 제2항에 있어서,
상기 비지 경과시간을 측정하는 타이머; 및
상기 하이버네이션 횟수를 카운트하는 카운터
를 더 포함하는 컨트롤러.
- 메모리 장치를 제어하는 컨트롤러의 동작 방법에 있어서,
액티브 상태 및 비 액티브 상태 간의 상태 변경 시마다 호스트로부터 절대시각을 수신하는 단계;
제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션 경과시간을 산출하는 단계;
제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 단계;
메모리 영역에 대한 프로그램 커맨드에 응하여 상기 메모리 장치의 프로그램 동작을 제어하고, 상기 시스템시각에 기초하여 상기 메모리 영역에 대한 프로그램 동작 시각을 산출하는 단계; 및
상기 메모리 영역에 대한 리드 커맨드에 응하여 상기 프로그램 동작 시각 이후 경과시간에 기초하여 결정된 리드 전압으로 상기 메모리 장치의 리드 동작을 제어하는 단계
를 포함하는 동작 방법.
- 제11항에 있어서,
상기 제1 및 제2 절대시각 사이 경과시간의 평균 하이버네이션 경과시간을 산출하는 단계는
상기 제1 및 제2 절대시각 사이 경과시간, 상기 제1 및 제2 절대시각 사이의 비지 경과시간에 기초하여 상기 제1 및 제2 절대시각 사이의 총 하이버네이션 경과시간을 산출하는 단계; 및
상기 총 하이버네이션 경과시간 및 상기 제1 및 제2 절대시각 사이의 하이버네이션 횟수에 기초하여 상기 평균 하이버네이션 경과시간을 산출하는 단계
를 포함하는 동작 방법.
- 제11항에 있어서,
상기 제3 절대시각 및 상기 평균 하이버네이션 경과시간에 기초하여 시스템시각을 산출하는 단계는
상기 제3 절대시각 이후의 하이버네이션 횟수 및 상기 평균 하이버네이션 경과시간에 기초하여 상기 제3 절대시각 이후의 총 하이버네이션 경과시간을 산출하는 단계; 및
상기 제3 절대시각 이후의 비지 경과시간 및 상기 제3 절대시각 이후의 총 하이버네이션 경과시간에 기초하여 상기 시스템시각을 산출하는 단계
를 포함하는 동작 방법.
- 제11항에 있어서,
상기 프로그램 동작 시각 및 상기 시스템 시각에 기초하여 상기 프로그램 동작 시각 이후 경과시간을 산출하는 단계
를 더 포함하는 동작 방법.
- 제11항에 있어서,
상기 프로그램 동작 시각 이후 경과시간이 길수록 상기 리드 전압을 낮게 결정하는 단계
를 더 포함하는 동작 방법.
- 제11항에 있어서,
상기 비 액티브 상태는 슬립 상태 및 파워 오프 상태를 포함하는
동작 방법.
- 제11항에 있어서,
상기 메모리 영역에 대한 프로그램 동작 시각을 상기 컨트롤러의 메모리에 저장하는 단계; 및
상기 메모리 영역에 대한 프로그램 동작 시각으로부터 소정 경과시간 후에 상기 메모리에 저장된 상기 프로그램 동작 시각을 제거하는 단계
를 더 포함하는 동작 방법.
- 제17항에 있어서,
상기 메모리에 상기 메모리 영역에 대한 프로그램 동작 시각이 저장되어 있는 경우 상기 리드 전압을 디폴트 리드 전압보다 높은 전압으로 결정하는 단계
를 더 포함하는 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190064437A KR102671736B1 (ko) | 2019-05-31 | 2019-05-31 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US16/727,372 US11069398B2 (en) | 2019-05-31 | 2019-12-26 | Controller and operating method thereof |
CN201911361613.7A CN112015331A (zh) | 2019-05-31 | 2019-12-26 | 控制器及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190064437A KR102671736B1 (ko) | 2019-05-31 | 2019-05-31 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200137682A KR20200137682A (ko) | 2020-12-09 |
KR102671736B1 true KR102671736B1 (ko) | 2024-06-04 |
Family
ID=73506242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190064437A KR102671736B1 (ko) | 2019-05-31 | 2019-05-31 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11069398B2 (ko) |
KR (1) | KR102671736B1 (ko) |
CN (1) | CN112015331A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102671743B1 (ko) | 2019-05-31 | 2024-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11199999B2 (en) * | 2020-01-30 | 2021-12-14 | Micron Technology, Inc. | Management of write operations in a non-volatile memory device using a variable pre-read voltage level |
US11886266B2 (en) * | 2021-06-09 | 2024-01-30 | Micron Technology, Inc. | Dynamic power control |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012054932A (ja) | 2006-03-31 | 2012-03-15 | Qualcomm Inc | 高速メディアアクセス制御に関するメモリ管理 |
US20120074849A1 (en) | 2009-06-29 | 2012-03-29 | Seoul Semiconductor Co., Ltd. | Illumination system |
KR101519931B1 (ko) | 2009-03-06 | 2015-05-13 | 삼성전자주식회사 | 적층 구조의 저항성 메모리 장치, 이를 포함하는 메모리 시스템, 및 적층 가변저항 메모리 셀 어레이 층의 셀 타입 설정 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101915073B1 (ko) * | 2011-12-20 | 2018-11-06 | 인텔 코포레이션 | 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단 |
KR20150139112A (ko) * | 2014-06-02 | 2015-12-11 | 삼성전자주식회사 | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 |
KR102291806B1 (ko) * | 2015-04-20 | 2021-08-24 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
KR102488673B1 (ko) | 2015-10-12 | 2023-01-16 | 삼성전자주식회사 | 저전력 모드로의 진입 시간을 예측할 수 있는 제어 회로와 이를 포함하는 장치 |
KR102709074B1 (ko) * | 2016-02-03 | 2024-09-26 | 삼성전자주식회사 | 리프레시 정보 생성기를 포함하는 휘발성 메모리 장치 및 전자 장치, 그것의 정보 제공 방법, 그리고 그것의 리프레시 제어 방법 |
US10747467B2 (en) * | 2016-06-10 | 2020-08-18 | Apple Inc. | Memory management for application loading |
TWI696074B (zh) * | 2019-01-24 | 2020-06-11 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
-
2019
- 2019-05-31 KR KR1020190064437A patent/KR102671736B1/ko active IP Right Grant
- 2019-12-26 US US16/727,372 patent/US11069398B2/en active Active
- 2019-12-26 CN CN201911361613.7A patent/CN112015331A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012054932A (ja) | 2006-03-31 | 2012-03-15 | Qualcomm Inc | 高速メディアアクセス制御に関するメモリ管理 |
KR101519931B1 (ko) | 2009-03-06 | 2015-05-13 | 삼성전자주식회사 | 적층 구조의 저항성 메모리 장치, 이를 포함하는 메모리 시스템, 및 적층 가변저항 메모리 셀 어레이 층의 셀 타입 설정 방법 |
US20120074849A1 (en) | 2009-06-29 | 2012-03-29 | Seoul Semiconductor Co., Ltd. | Illumination system |
Also Published As
Publication number | Publication date |
---|---|
KR20200137682A (ko) | 2020-12-09 |
US20200381036A1 (en) | 2020-12-03 |
US11069398B2 (en) | 2021-07-20 |
CN112015331A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216323B2 (en) | Solid state memory system with low power error correction mechanism and method of operation thereof | |
KR102671743B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
CN106155585B (zh) | 自适应读取干扰收回策略 | |
CN107168886B (zh) | 数据存储装置及其操作方法 | |
US9880605B2 (en) | Method and system for throttling power consumption | |
US20150113207A1 (en) | Operating method of data storage device | |
US8489805B2 (en) | Memory devices operated within a communication protocol standard timeout requirement | |
KR102140592B1 (ko) | 데이터 저장 장치 | |
KR102671736B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102501695B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20190073017A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190088184A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20180138398A (ko) | 메모리 시스템 및 그의 동작방법 | |
US11327544B2 (en) | Memory system and operation method thereof | |
US20150049552A1 (en) | Data storage device | |
KR20210147696A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20180089742A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190006677A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190069803A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20170109344A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20150149740A1 (en) | Data storage device and data processing system including the same | |
KR20200015260A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200015185A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11281276B2 (en) | Power control device and method for error correction code components in memory system | |
KR20210024722A (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 |