KR101687502B1 - 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법 - Google Patents
메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법 Download PDFInfo
- Publication number
- KR101687502B1 KR101687502B1 KR1020157006958A KR20157006958A KR101687502B1 KR 101687502 B1 KR101687502 B1 KR 101687502B1 KR 1020157006958 A KR1020157006958 A KR 1020157006958A KR 20157006958 A KR20157006958 A KR 20157006958A KR 101687502 B1 KR101687502 B1 KR 101687502B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory
- write
- stored
- page
- Prior art date
Links
Images
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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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
- 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
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7202—Allocation control and policies
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
불휘발성 메모리의 열화를 억제함과 함께 보다 고속으로 데이터를 기입하기 위해, 페이지 이용률 R이 임계치 Rth1 미만일 때 및 기입 데이터가 고빈도 재기입 데이터일 때에는 기입 데이터를 ReRAM에 기억시킨다. 또한, ReRAM의 빈 공간 Semp2이 임계치 Sth 미만일 때(단계 S110), ReRAM의 데이터가 저빈도 재기입 데이터이고 대상 데이터를 플래시 메모리(22)에 기억시켰을 때의 페이지 이용률 R이 임계치 Rth3 이상일 때에는(단계 S120, S130), 이동 리스트에 기억되어 있는 N개의 논리 페이지 어드레스에 포함되는 논리 섹터의 데이터를 ReRAM으로부터 판독해서 플래시 메모리에 기입한다(단계 S140 내지 S160). 이에 의해, 플래시 메모리의 열화를 억제함과 함께 보다 고속으로 데이터를 기입할 수 있다.
Description
관련 출원에 대한 상호 참조
본 출원은 2012년 9월 19일자로 출원된 일본 특허 출원 제2012-205664호의 우선권을 주장하는 것이며, 그 개시 내용은 전체가 본 명세서에 참조로 포함된다.
본 발명은 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법에 관한 것이며, 상세하게는, 제1 메모리 및 제2 메모리를 제어하는 메모리 제어기, 이러한 메모리 제어기를 포함하는 데이터 기억 장치, 및 제1 메모리와 제2 메모리를 제어하기 위한 메모리 제어 방법에 관한 것이다. 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 그 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성된다. 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성된다.
종래, 이러한 종류의 메모리 제어기로서는, 전력의 공급이 차단되어도 기억하고 있는 데이터를 유지하는 불휘발성 랜덤 액세스 메모리이며 캐시 메모리로서 기능하는 FeRAM(Ferroelectric Random Access Memory, 강유전체 랜덤 액세스 메모리)과, FeRAM 및 HDD에 PC 시스템으로부터의 데이터가 기억될 수 있도록 한 HDD(hard disk drive)를 제어하는 것이 제안되어 있다(예를 들어, Daisaburo Takashima 등에 의한 비특허문헌 1, "A 128Mb ChainFeRAMTM and System Designs for HDD Application and Enhanced HDD Performance"를 참조). 이러한 타입의 컨트롤러는 예기하지 못한 전원의 차단에 대비해서 FeRAM에 기억된 데이터를 HDD에 정기적으로 저장시킬 필요가 없기 때문에, FeRAM에 기억시키는 데이터량을 늘릴 수 있으며, 캐시 히트율을 향상시킬 수 있다.
Daisaburo Takashima 등, "A 128Mb ChainFeRAMTM and System Designs for HDD Application and Enhanced HDD Performance", IEEE Asian Solid-State Circuits Conference, November 16-18, 2009, Taipei, Taiwan
개발되고 있는, 호스트 장치로부터의 데이터를 기억하는 SSD(Solid State Drive)는, 복수의 섹터로 구성된 페이지 단위로 기억되어 있는 데이터를 우선 판독하고, 판독한 데이터를 섹터 단위로 기입한 후에, 페이지 단위로 데이터를 기입하는 기입 동작에 의해 데이터가 기입되는 NAND형 플래시 메모리와 같은 불휘발성 메모리; 이 불휘발성 메모리보다 고속으로 데이터를 판독/기입 가능한 ReRAM(resistance random access memory, 저항 변화 랜덤 액세스 메모리)와 같은 불휘발성 랜덤 액세스 메모리; 및 불휘발성 메모리와 불휘발성 랜덤 액세스 메모리를 제어하는 메모리 제어기를 포함한다. 이러한 SSD에서는, 불휘발성 메모리에 대하여 기입 동작이 반복되면 불휘발성 메모리가 열화되기 때문에, 불휘발성 메모리의 열화를 감소시키는 것이 중요한 과제였다. 또한, 이러한 SSD에서는, 고속으로 데이터를 기입하는 것 또한 중요한 요구이다. 따라서, SSD에서는, 불휘발성 메모리의 열화를 감소시키면서 보다 고속의 데이터 기입을 달성하는 것이 바람직하다.
본 발명에 따른 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법은 불휘발성 메모리의 열화를 감소시키고 보다 고속의 데이터 기입을 달성하는 것을 주 목적으로 한다.
본 발명의 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법은 상술한 주 목적을 달성하기 위해서 이하의 수단들을 이용한다.
본 발명의 메모리 제어기는 제1 메모리 및 제2 메모리를 제어하기 위한 것으로, 여기서 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성되고, 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성된다.
메모리 제어기는 기입 제어기와 데이터 이동 제어기를 포함한다. 기입 제어기는, 기입 데이터와 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 기입 데이터가 기입 동작에 의해 제1 메모리에 기입되도록 -여기서, 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- ; 그리고 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록, 제1 메모리와 제2 메모리를 제어하도록 구성된다.
데이터 이동 제어기는 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터인 것을 필요 조건으로 하여, 저빈도 재기입 데이터가 제2 메모리로부터 판독되어 기입 동작에 의해 제1 메모리에 기입되도록 제1 메모리와 제2 메모리를 제어하는 데이터 이동 제어를 실행하도록 구성된다.
본 발명의 메모리 제어기는, 기입 데이터와 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 기입 데이터가 기입 동작에 의해 제1 메모리에 기입되도록 -여기서, 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- , 그리고 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록 제1 메모리와 제2 메모리를 제어한다. 제1 메모리의 데이터의 기입 동작에서는, 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입된다. 따라서, 제1 메모리로의 기입 동작에서는, 데이터의 기억에 이용되지 않은 섹터에 대해서도 판독 및 기입이 행하여진다. 불휘발성 메모리는 기입 동작의 실행에 의해 열화된다. 따라서, 데이터의 기억에 이용되지 않은 섹터에 대해서는 기입이 수행되지 않는 것이 바람직하다. 이를 달성하기 위해, 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록 제1 메모리와 제2 메모리를 제어한다. 이는 제1 메모리에서의 데이터 이용률을 제1 비율 이상으로 할 수 있기 때문에, 데이터의 기억에 이용되지 않은 제1 메모리의 기억 영역에 대한 판독/기입이 감소된다. 이러한 방식으로, 제1 메모리의 열화를 감소시킬 수 있다. 상술한 바와 같이 제2 메모리에 데이터가 기입되면, 제2 메모리의 빈 공간이 감소한다. 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능하기 때문에, 제2 메모리의 빈 공간이 줄어들게 되어 결국 데이터를 제2 메모리에 기입할 수 없게 되기 때문에, 데이터의 기입 속도가 저하된다. 또한, 제2 메모리가 재기입 빈도가 낮은 데이터인 저빈도 재기입 데이터를 다량 포함하면, 데이터의 기입 속도도 저하될 것이다. 이를 회피하기 위해, 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터일 때에는, 저빈도 재기입 데이터가 제2 메모리로부터 판독되어 기입 동작에 의해 제1 메모리에 기입되도록 제2 메모리와 제1 메모리를 제어한다. 이는 제2 메모리의 빈 공간이 소정량 미만으로 감소되는 것을 방지하기 때문에, 보다 고속으로 데이터를 기입할 수 있다. 이러한 방식으로, 불휘발성 메모리의 열화를 감소시키고 보다 고속의 데이터 기입을 달성할 수 있다. 이와 관련하여, "소정 사이즈"는 예를 들어, 페이지의 사이즈로서 미리 정해진 사이즈, 복수 페이지의 사이즈, 또는 기입 데이터의 논리 어드레스에 대응하는 페이지에서의 1 섹터의 사이즈보다 큰 사이즈를 칭한다. "제1 메모리"는 NAND형 플래시 메모리를 포함하고, "제2 메모리"는 저항 변화 랜덤 액세스 메모리를 포함한다.
본 발명의 그러한 메모리 제어기에서, 데이터 이동 제어기는 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 제2 메모리에 기억되어 있는 데이터가 저빈도 재기입 데이터이고 제1 메모리에 저빈도 재기입 데이터를 기입할 경우에 취득되는 데이터 이용률이 제2 비율 -제2 비율은 제1 비율보다 낮음- 이상인 것을 필요 조건으로 하여, 데이터 이동 제어를 실행하도록 구성될 수도 있다. 이는 데이터 이용률이 제2 비율 미만인 데이터가 제1 메모리에 기억되는 것을 방지하여, 제1 메모리의 열화를 감소시킬 수 있다.
제1 메모리에 저빈도 재기입 데이터의 기억에 이용되는 섹터를 포함하는 소정 사이즈의 데이터를 기입할 경우에 취득되는 데이터 이용률이 제1 비율보다 낮은 제2 비율 이상일 때에 데이터 이동 제어를 실행하는 본 발명의 메모리 제어기는, 어드레스 관리부와 고 이용률 어드레스 정보 메모리를 더 포함할 수 있다. 어드레스 관리부는 데이터를 포함하는 페이지를 나타내는 페이지 어드레스와 페이지에 포함되는 데이터의 기억에 이용되는 섹터를 나타내는 섹터 어드레스로 구성된 논리 어드레스를 사용해서 제1 메모리 및 제2 메모리를 관리하도록 구성된다. 고 이용률 어드레스 정보 메모리는 데이터 이용률이 제1 비율 이상으로 되게 하는 기입 데이터의 논리 어드레스를 기억하도록 구성된다. 데이터 이동 제어기는 고 이용률 어드레스 정보 메모리에 기억된, 입력된 기입 데이터의 논리 어드레스의 개수가 소정 개수 미만일 때에 입력된 기입 데이터가 저빈도 재기입 데이터라고 판정하도록 구성될 수도 있다.
제1 메모리에 저빈도 재기입 데이터의 기억에 이용되는 섹터를 포함하는 소정 사이즈의 데이터를 기입할 경우에 취득되는 데이터 이용률이 제1 비율보다 낮은 제2 비율 이상일 때에 데이터 이동 제어를 실행하는 본 발명의 메모리 제어기는, 페이지 어드레스 메모리를 더 포함할 수 있다. 페이지 어드레스 메모리는 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 제2 메모리에 기억되어 있는 데이터가 저빈도 재기입 데이터이고 저빈도 재기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제2 비율 이상일 때에는, 저빈도 재기입 데이터를 포함하는 페이지의 페이지 어드레스를 기억하도록 구성된다. 데이터 이동 제어기는 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 제2 메모리에 기억되어 있는 데이터가 저빈도 재기입 데이터이고, 저빈도 재기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제2 비율 이상이며, 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 소정 개수 이상인 것을 필요 조건으로 하여, 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스에 대응하는 제2 메모리의 데이터에 대해서 데이터 이동 제어를 실행하도록 구성될 수도 있다. 이러한 구성은 제2 메모리에 기억되어 있는 데이터가 빈번히 판독되어 제1 메모리에 기입되는 것을 방지한다. 이 경우에, 데이터 이동 제어기는 제2 메모리의 빈 공간이 소정량 미만으로 되고, 소정 개수보다 많은 복수의 페이지에 대해서, 제2 메모리에 기억되어 있는 데이터가 저빈도 재기입 데이터인지 여부와 저빈도 재기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제2 비율 이상인지 여부를 판정한 후에, 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 소정 개수 미만일 때에는 제2 비율을 감소시키고, 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 소정 개수일 때에는 제2 비율의 값을 변경하지 않고 유지하고, 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 소정 개수를 초과했을 때에는 제2 비율을 증가시키도록 구성된다.
제1 메모리에 저빈도 재기입 데이터의 기억에 이용되는 섹터를 포함하는 소정 사이즈의 데이터를 기입할 경우에 취득되는 데이터 이용률이 제1 비율보다 낮은 제2 비율 이상일 때에 데이터 이동 제어를 실행하는 본 발명의 메모리 제어기에서, 기입 제어기 및 데이터 이동 제어기는 각 섹터가 데이터를 기억하고 있는지 여부를 가리키는 이용 섹터 정보와 입력된 기입 데이터를 기억할 때에 이용하는 섹터를 참조함으로써 데이터 이용률을 연산하도록 구성될 수도 있다.
본 발명의 메모리 제어기에서, 제어기는, 입력된 기입 데이터를 제2 메모리에 기억시킬 때, 입력된 기입 데이터의 논리 어드레스에 대응하는 데이터가 이미 제1 메모리의 기억 영역에 기억되어 있을 때에는, 제1 메모리에 기억되어 있는 데이터를 페이지 단위로 판독하고, 판독한 데이터의 섹터 중 기입 데이터를 기입할 대상이 되는 섹터에 재기입한 후에, 입력된 기입 데이터를 페이지 단위로 제2 메모리에 기억시키도록 구성될 수도 있다.
본 발명의 메모리 제어기에서, 소정 사이즈의 기억 영역은 기입 데이터에 이용되는 섹터를 포함하는 페이지가 기억되는 영역일 수도 있다.
본 발명의 데이터 기억 장치는 상술한 어느 하나의 형태로 구현된 본 발명의 메모리 제어기; 제1 메모리; 및 제2 메모리를 포함한다. 구체적으로, 본 발명의 메모리 제어기는 기본적으로 제1 메모리 및 제2 메모리를 제어하는데, 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성되고, 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성된다. 메모리 제어기는, 기입 데이터와 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 기입 데이터가 기입 동작에 의해 제1 메모리에 기입되도록 -여기서, 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- , 그리고 데이터 이용률이 제1 비율 미만일 때에는 입력된 기입 데이터가 제2 메모리에 기억되도록, 제1 메모리와 제2 메모리를 제어하도록 구성된 기입 제어기와; 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터일 때에는, 저빈도 재기입 데이터가 제2 메모리로부터 판독되어 기입 동작에 의해 제1 메모리에 기입되도록 제1 메모리와 제2 메모리를 제어하는 데이터 이동 제어를 실행하도록 구성된 데이터 이동 제어기를 포함한다.
상술한 어느 하나의 형태로 구현된 본 발명의 메모리 제어기를 포함하는, 본 발명의 데이터 기억 장치는 본 발명의 메모리 제어기에 의해 제공되는 것과 유사한 유리한 효과를 제공한다. 이러한 효과의 예는 불휘발성 메모리에 있어서의 열화 감소 및 보다 고속의 데이터 기입을 포함한다.
본 발명의 메모리 제어 방법은 제1 메모리 및 제2 메모리를 제어하는데, 여기서 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성되고, 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성된다.
메모리 제어 방법은, 기입 데이터와 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 기입 데이터가 기입 동작에 의해 제1 메모리에 기입되도록 -여기서, 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- , 그리고 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록, 제1 메모리와 제2 메모리를 제어하는 단계; 및
제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터인 것을 필요 조건으로 하여, 저빈도 재기입 데이터가 제2 메모리로부터 판독되어 기입 동작에 의해 제1 메모리에 기입되도록 제1 메모리와 제2 메모리를 제어하는 데이터 이동 제어를 실행하는 단계를 포함한다.
본 발명의 메모리 제어 방법은, 기입 데이터와 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 기입 데이터를 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 기입 데이터가 기입 동작에 의해 제1 메모리에 기입되도록 -여기서, 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- , 그리고 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록, 제1 메모리와 제2 메모리를 제어하도록 구성된다. 제1 메모리로의 데이터 기입 동작에서는, 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 기입 데이터에 의해 덮어 쓰여진 후에, 페이지 단위로 데이터가 기입된다. 따라서, 제1 메모리로의 데이터 기입 동작에서는, 데이터의 기억에 이용되지 않은 섹터에 대해서도 판독 및 기입이 행하여진다. 불휘발성 메모리는 기입 동작의 실행에 의해 열화된다. 따라서, 데이터의 기억에 이용되지 않은 그러한 섹터에 대해서는 기입이 수행되지 않는 것이 바람직하다. 이를 달성하기 위해, 데이터 이용률이 제1 비율 미만일 때에는, 입력된 기입 데이터가 제2 메모리에 기억되도록 제1 메모리와 제2 메모리를 제어한다. 이는 제1 메모리에서의 데이터 이용률을 제1 비율 이상으로 할 수 있기 때문에, 데이터의 기억에 이용되지 않은 제1 메모리의 기억 영역에 대한 판독/기입이 감소된다. 이러한 방식으로, 제1 메모리의 열화를 감소시킬 수 있다. 상술한 바와 같이 제2 메모리에 데이터가 기입되면, 제2 메모리의 빈 공간이 감소된다. 제2 메모리는 제1 메모리보다 고속으로 데이터의 기입이 가능하기 때문에, 제2 메모리의 빈 공간이 줄어들게 되어 결국 데이터를 제2 메모리에 기입할 수 없게 되기 때문에, 데이터의 기입 속도가 저하된다. 또한, 제2 메모리에 재기입 빈도가 데이터인 낮은 저빈도 재기입 데이터가 다량 포함되면, 데이터의 기입 속도도 저하될 것이다. 이를 회피하기 위해, 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터일 때에는, 저빈도 재기입 데이터가 제2 메모리로부터 판독되어 기입 동작에 의해 제1 메모리에 기입되도록 제2 메모리와 제1 메모리를 제어한다. 이는 제2 메모리의 빈 공간이 소정량 미만으로 감소되는 것을 방지하여, 제1 메모리의 열화를 감소시킨다. 이러한 방식으로, 불휘발성 메모리의 열화를 감소시키고 보다 고속의 데이터 기입이 달성된다. 이와 관련하여, "소정 사이즈"는 예를 들어, 페이지의 사이즈로서 미리 정해진 사이즈, 복수 페이지의 사이즈, 또는 기입 데이터의 논리 어드레스에 대응하는 페이지에서의 1 섹터의 사이즈보다 큰 사이즈를 칭한다. "제1 메모리"는 NAND형 플래시 메모리를 포함하고, "제2 메모리"는 저항 변화 랜덤 액세스 메모리를 포함한다.
본 발명의 그러한 메모리 제어 방법에서, 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 제2 메모리에 기억되어 있는 데이터가 저빈도 재기입 데이터이고 제1 메모리에 저빈도 재기입 데이터의 기억에 이용되는 섹터를 포함하는 소정 사이즈의 데이터를 기입할 경우에 취득되는 데이터 이용률이 제1 비율보다 낮은 제2 비율 이상인 것을 필요 조건으로 하여, 데이터 이동 제어를 실행할 수도 있다. 이는 데이터 이용률이 제2 비율 미만인 데이터가 제1 메모리에 기억되는 것을 방지하여, 제1 메모리의 열화를 감소시킬 수 있다.
본 발명은 첨부된 도면을 참조하여 추가로 후술될 것이다:
도 1은 호스트 장치(10)로부터의 데이터를 기억하는 본 발명의 일례로서 제공된, SSD(20)의 개략적인 도면이다;
도 2는 저항 변화 소자(46)의 일례를 나타내는 설명도이다;
도 3은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 요구의 수신시 처리 루틴의 일례를 나타내는 흐름도이다;
도 4는 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 처리 루틴의 일례를 나타내는 흐름도이다;
도 5는 이용 섹터 플래그 테이블(USFT)과 페이지 이용률 R의 일례를 나타내는 설명도이다;
도 6은 USFT의 생성의 설명도이다;
도 7은 다른 USFT의 생성의 설명도이다;
도 8은 페이지 이용률 R이 임계치 Rth2보다 높을 때에 USFT에 대한 리셋 동작을 실행하지 않는 경우에 생성되는 USFT의 일례를 나타내는 설명도이다;
도 9는 페이지 이용률 R이 임계치 Rth2보다 높을 때에 USFT에 대한 리셋 동작을 실행한 경우에 생성되는 USFT의 일례를 나타내는 설명도이다;
도 10은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 데이터 이동 제어 처리 루틴의 일례를 나타내는 흐름도이다.
도 1은 호스트 장치(10)로부터의 데이터를 기억하는 본 발명의 일례로서 제공된, SSD(20)의 개략적인 도면이다;
도 2는 저항 변화 소자(46)의 일례를 나타내는 설명도이다;
도 3은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 요구의 수신시 처리 루틴의 일례를 나타내는 흐름도이다;
도 4는 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 처리 루틴의 일례를 나타내는 흐름도이다;
도 5는 이용 섹터 플래그 테이블(USFT)과 페이지 이용률 R의 일례를 나타내는 설명도이다;
도 6은 USFT의 생성의 설명도이다;
도 7은 다른 USFT의 생성의 설명도이다;
도 8은 페이지 이용률 R이 임계치 Rth2보다 높을 때에 USFT에 대한 리셋 동작을 실행하지 않는 경우에 생성되는 USFT의 일례를 나타내는 설명도이다;
도 9는 페이지 이용률 R이 임계치 Rth2보다 높을 때에 USFT에 대한 리셋 동작을 실행한 경우에 생성되는 USFT의 일례를 나타내는 설명도이다;
도 10은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 데이터 이동 제어 처리 루틴의 일례를 나타내는 흐름도이다.
이어서, 본 발명을 실시하기 위한 실시 형태를 예들을 참조하여 설명할 것이다.
도 1은 퍼스널 컴퓨터 등과 같은 호스트 장치(10)로부터의 데이터를 기억하는, 본 발명의 일례로서 제공된 SSD(Solid State Drive)(20)의 개략적인 도면이다. SSD(20)는 각종 어플리케이션 프로그램 및 각종 데이터를 기억하는 대용량의 데이터 기억 장치로서 구성되어 있다. SSD(20)는 NAND형 플래시 메모리로서 구성된 플래시 메모리(22), 저항 변화 랜덤 액세스 메모리(Resistance Random Access Memory, ReRAM)(24), 플래시 메모리(22)와 ReRAM(24)을 제어하는 메모리 제어기(30)를 포함한다.
플래시 메모리(22)는 복수의 플래시 메모리 셀을 갖는 플래시 메모리 셀 어레이(도시하지 않음)를 포함하는 NAND형 플래시 메모리로서 구성되어 있다. 이 플래시 메모리 셀의 임계 전압은 플로팅 게이트로의 전자 주입이나 플로팅 게이트로부터의 전자의 방출에 의해 변화한다. 플래시 메모리(22)는 플래시 메모리 셀 어레이 이외에 로우 디코더, 칼럼 디코더, 및 감지 증폭기(모두 도시하지 않음)를 더 포함할 수도 있다. 플래시 메모리(22)에서는, 8개의 섹터(본 예에서는, 512바이트)로 구성된 페이지 단위(본 예에서는, 4K 바이트)로 데이터를 기입/판독하고, 128페이지로 구성된 블록 단위(본 예에서는, 512KB 바이트)로 데이터를 소거한다. 이러한 플래시 메모리(22)에서, 데이터의 기입은 플래시 메모리(22)에 기억되어 있는 데이터를 판독하고, 판독한 데이터 중 기입 데이터에 대응하는 섹터내의 데이터를 섹터 단위로 덮어 쓰고 데이터로서 재기입한 다음, 페이지 단위로 재기입한 데이터를 플래시 메모리(22)에 기입하는 기입 동작에 의해 행하여진다. 본 예에서는, 플래시 메모리(22)로/로부터의 기입/판독 속도는 212MB/s로 설정할 수 있다.
ReRAM(24)은 도 2에 도시된 저항 변화 소자(46)와, 저항 변화 소자(46)에 접속된 MOS 트랜지스터(도시하지 않음)로 구성된 복수의 ReRAM 셀을 포함하는 ReRAM 셀 어레이(도시하지 않음)를 포함한다. 저항 변화 소자(46)는 금속 산화물(44)에 의해 분리된 상부 전극(40)과 하부 전극(42)으로 형성된다. 이 상부 및 하부 전극들은 둘다 티타늄(Ti) 또는 백금(Pt)과 같은 금속으로 형성된다. ReRAM(24)은 ReRAM 셀 어레이 이외에 로우 디코더, 칼럼 디코더, 감지 증폭기 등(모두 도시하지 않음)을 더 포함할 수도 있다. ReRAM 셀은, ReRAM 셀이 상부 전극(40)에 인가되는 전압 V1이 하부 전극(42)에 인가되는 전압 V2보다 높을 때에 세트(또는 저저항화)되고, 전압 V1이 전압 V2보다 낮을 때에 리셋(또는 고저항화)되는, 바이폴라 동작을 행하는 소자로서 형성되어 있다. 이러한 바이폴라 동작을 하는 ReRAM 셀은 일반적으로, 비교적 빠른 동작 속도와 적은 소비 전력으로 작동한다. 따라서, ReRAM(24)은 동작 속도가 비교적 빠르고 소비 전력이 적은 메모리로서 구성되어 있다. 금속 산화물(44)은 바람직하기로는, 티타늄 산화물(TiOx), 니켈 산화물(NiOx), 구리 산화물(CuOx), 하프늄 산화물(HfOx) 등일 수 있으며, 또는 바람직하기로는 이들 금속 산화물로 이루어진 복수층의 적층 구조일 수도 있다. 이러한 ReRAM(24)에서는, 데이터의 기입은 기입 데이터에 대응하는 섹터에 데이터를 기입함으로써 행하여진다. 본 예에서, ReRAM(24)의 데이터 기입/판독 속도는 플래시 메모리(22)의 데이터 기입/판독 속도보다 고속인 1.25GB/s로 설정될 수 있다.
메모리 제어기(30)는 복수의 논리 소자를 갖는 논리 회로로서 구성된 제어 처리 회로(32)를 포함한다. 이 제어 처리 회로(32)는 각종 제어 및 연산 처리를 실행한다. 제어 처리 회로(32)는 호스트 장치(10)로부터 각종 제어 신호 또는 데이터를 수신한다. 제어 처리 회로(32)는 기본적으로 제어 처리 회로(32)에 입력된 제어 신호에 기초하여 플래시 메모리(22) 또는 ReRAM(24)에/로부터 데이터가 기억/판독되도록 플래시 메모리(22) 및 ReRAM(24)을 제어하여, 판독한 데이터를 호스트 장치(10)에 출력한다. 제어 처리 회로(32)는 이러한 데이터의 기입/판독을 행할 때에 데이터를 기억하는 페이지를 가상적으로 나타내는 논리 페이지 어드레스와 데이터를 기억하는 섹터를 가상적으로 나타내는 논리 섹터 어드레스를 포함하는 논리 어드레스를, 플래시 메모리(22) 및 ReRAM(24)에서의 실제 위치를 나타내는 물리 어드레스로 변환하고; ReRAM(24)의 빈 공간 Semp2을 감시한다. 메모리 제어기(30)는 호스트 장치(10)와 비교적 고속으로(예를 들어, 1.25GB/s 정도로) 각종 제어 신호 또는 데이터를 교환한다.
이어서, 상술한 바와 같이 구성된 SSD(20)의 동작, 특히, 호스트 장치(10)로부터 입력된 데이터를 플래시 메모리(22) 또는 ReRAM(24)에 기억시킬 때 수행되는 동작에 대해서 설명한다. 도 3은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 요구의 수신시 실행된 처리 루틴의 일례를 나타내는 흐름도이다. 이 루틴은 호스트 장치(10)로부터의 데이터를 플래시 메모리(22) 또는 ReRAM(24)에 기입하는 것을 요구하는 기입 요구 신호, 기입 데이터, 및 기입 데이터를 기억하는 위치를 나타내는 논리 페이지 어드레스와 논리 섹터 어드레스를 포함하는 논리 어드레스가 입력되었을 때에 실행된다.
기입 요구 신호가 입력되면, 메모리 제어기(30)의 제어 처리 회로(32)는 후술하는 데이터 이동 처리(단계 S100)와 데이터 기입 처리(단계 S300)를 실행한다. 설명의 편의상, 먼저 데이터 기입 처리에 대해서 설명하고, 다음으로 데이터 이동 처리에 대해서 설명한다.
도 4는 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 기입 처리 루틴의 일례를 나타내는 흐름도이다. 본 루틴이 실행되면, 메모리 제어기(30)의 제어 처리 회로(32)는 이용 섹터 플래그 테이블(USFT)을 작성하여(단계 S310), USFT를 사용하여 논리 페이지 어드레스마다 페이지 이용률 R을 연산한다(단계 S320). 페이지 이용률 R은 데이터 기억에 이용되는 섹터의 비율을 가리킨다.
도 5는 USFT와 페이지 이용률 R의 일례를 나타내는 설명도이다. USFT는 각 섹터마다 플래그를 갖는다. 데이터 기억에 이용되지 않은 섹터는 플래그에 값 "0"을 나타내고, 데이터 기억에 이용되는 섹터는 플래그에 값 "1"을 나타낸다. 이 예에서, 1페이지에 8개의 섹터가 있다는 것은, 각 페이지마다 8개의 플래그를 포함한다는 것을 의미한다. 페이지 이용률 R은 1페이지에 포함되는 값 "1"을 나타내는 플래그의 개수를 1페이지에 포함된 플래그의 전체 개수인 값 8로 나눔으로써 연산된다. 따라서, 1페이지가 3개의 플래그를 포함할 때, 즉, 1페이지에서 3개의 섹터가 데이터 기억에 이용되고 있을 때의 페이지 이용률 R은 0.375(=3/8)가 되고, 1페이지가 6개의 플래그를 포함할 때, 즉, 1페이지에서 6개의 섹터가 데이터 기억에 이용되고 있을 때의 페이지 이용률 R은 0.75(=6/8)가 된다.
USFT는 기입 데이터 섹터 플래그 테이블(WSFT)과 이미 기억되어 있는 USFT의 논리합(OR)을 연산함으로써 생성된다(단계 S310). WSFT에서, 기입 데이터의 기억에 이용되는 섹터는 플래그에 값 "1"을 가리키고, 다른 섹터는 플래그에 값 "0"을 가리킨다. 예를 들어, 도 6에 도시한 바와 같이, 이미 기억되어 있는 USFT가 "01111100"를 가리키고 WSFT가 "11000000"를 가리킬 때에, "11111100"을 가리키는 USFT가 생성된다. 이 경우, 페이지 이용률 R은 0.75가 된다.
상술한 바와 같이 페이지 이용률 R을 연산한 후, 본 처리는 페이지 이용률 R이 임계치 Rth1 이상인지 여부를 판정하는 단계(단계 S330)과 기입 데이터가 재기입 빈도가 비교적 높은 고빈도 재기입 데이터인지 여부를 판정하는 단계(단계 S340)으로 진행한다. 본 예에서, 임계치 Rth1는 ReRAM(24)에 기억되어 있는 데이터의 사이즈가 커질수록 작아지도록 설정되어 있다. 기입 데이터가 고빈도 재기입 데이터인지 여부를 판정하기 위해, 페이지 이용률 R이 임계치 Rth1 이상으로 되었을 때 가장 최근에 입력된 논리 어드레스를 2000개 기억 테이블에 기억한다. 기입 데이터의 논리 어드레스가 기억 테이블에서 소정 개수(예를 들어, 100개) 초과하여 발견되면, 기입 데이터가 고빈도 재기입 데이터라고 판단된다.
페이지 이용률 R이 임계치 Rth1 이상이지만, 기입 데이터가 고빈도 재기입 데이터가 아닐 때에는(단계 S330, S340), 상술한 기입 동작에 의해 기입 데이터가 플래시 메모리(22)에 기억되도록 기입 데이터가 제어된다(단계 S350). 이러한 방식으로, 플래시 메모리(22)에 데이터를 기억시킬 수 있다.
도 7에 도시한 바와 같이, 페이지 이용률 R이 임계치 Rth1 미만일 때, 즉, 페이지 내에 이용되지 않은 섹터가 비교적 많이 있을 때(단계 S330), 또는 페이지 이용률 R이 임계치 Rth1 이상이지만 기입 데이터가 고빈도 재기입 데이터일 때에는(단계 S340), 플래시 메모리(22)에 데이터를 기억시키는 것은 플래시 메모리(22)의 열화를 촉진시킨다고 판단되기 때문에, ReRAM(24)에 데이터를 기입하는 기입 동작을 실행한다(단계 S360 내지 S380). 페이지 내에 이용되지 않은 섹터가 비교적 많이 있을 때에, 플래시 메모리(22)에 데이터를 기억시키는 것이 플래시 메모리(22)의 열화를 촉진시킨다고 판단하는 이유는, 플래시 메모리(22)에 데이터를 기입하는 것이 사실상 데이터의 기억에 이용할 필요가 없는 기억 영역에도 기입 동작이 실행되어서 플래시 메모리(22)가 열화되게 되는 경우가 있기 때문이다. 이를 회피하기 위해, 임계치 Rth1를 ReRAM(24)에 기억되어 있는 데이터의 사이즈가 커질수록 작아지도록 설정한다. 이는 ReRAM(24)의 기억 영역에 빈 공간이 적어졌을 때에 ReRAM(24)에 기입 데이터가 기억되는 양을 줄일 수 있기 때문에, ReRAM(24)이 비교적 작은 기억 면적을 가지고 있을 경우에도 보다 적절하게 ReRAM(24)에 데이터를 기억시킬 수 있다.
ReRAM(24)에 대한 기입 동작은 먼저, 기입 데이터의 논리 어드레스에 대응하는 데이터가 플래시 메모리(22)에 기억되어 있는지 여부를 조사할 필요가 있다(단계 S360). 플래시 메모리(22)에 데이터가 기억되어 있을 때에는, 본 처리는 결합 데이터를 작성하는 단계로 진행한다(단계 S370). 이 결합 데이터는 기입 데이터의 논리 어드레스에 대응하는 어드레스의 데이터를 플래시 메모리(22)로부터 페이지 단위로 판독하고, 판독한 데이터 중 기입 데이터에 대응하는 데이터를 섹터 단위로 기입 데이터로 덮어씀으로써 작성된다. 다음으로, 본 처리는 결합 데이터가 ReRAM(24)에 기억될 수 있도록 ReRAM(24)을 제어(단계 S380)하거나, 플래시 메모리(22)에 데이터가 기억되어 있지 않을 때에는 기입 데이터가 ReRAM(24)에 기억될 수 있도록 ReRAM(24)을 제어(단계 S380)하는 단계로 진행한다. 이와 같이, 페이지 이용률 R이 임계치 Rth1 미만일 때나, 페이지 이용률 R이 임계치 Rth1 이상이어도 기입 데이터가 고빈도 재기입 데이터라고 판정되면, 기입 데이터를 ReRAM(24)에 기억시킴으로써, 플래시 메모리(22)의 열화를 감소시킬 수 있다. 또한, ReRAM(24)로의 기입 속도가 플래시 메모리(22)로의 기입 속도보다 고속이기 때문에, 상술한 바와 같이 ReRAM(24)에 기입 데이터를 기억시킴으로써 보다 고속의 기입 동작의 실행을 달성한다.
상술한 바와 같이 플래시 메모리(22) 또는 ReRAM(24)에 기입 데이터를 기억시킨 후에, 본 처리는 페이지 이용률 R이 미리 정해진 임계치 Rth2(예를 들어, 0.85)보다 높은지 여부를 조사하는 단계로 진행한다(단계 S390). 임계치 Rth2의 값은 임계치 Rth1의 값보다 높다. 페이지 이용률 R이 임계치 Rth2보다 높을 때에는, USFT의 플래그를 모두 값 "0"을 가리키도록 설정하는 플래그 리셋 동작을 실행한다(단계 S400). 페이지 이용률 R이 임계치 Rth2 이하일 때에는, USFT을 변경하지 않고 본 루틴을 종료한다. 이러한 플래그 리셋 동작을 행하는 이유는 후술될 것이다.
예를 들어, 도 8에 도시한 바와 같이, 이미 기억되어 있는 USFT가 "01111111"(본 경우에서의 페이지 이용률 R은 0.875임)을 나타내고 WSFT가 "11000000"를 나타낼 때, "11111111"를 나타내는 USFT가 생성된다. 이렇게 페이지 이용률 R이 높아지면, 데이터가 고빈도 재기입 데이터가 아닐 경우에는 대응하는 페이지의 데이터는 기입 동작에 의해 항상 플래시 메모리(22)에 기억되어, 플래시 메모리(22)의 열화가 촉진되는 경우가 있다. 페이지 이용률 R이 임계치 Rth2보다 높을 때에는 USFT의 플래그를 모두 값 "0"을 가리키도록 설정하는 플래그 리셋 동작을 실행함으로써(단계 S400), 도 9에 도시된 바와 같이, 다음으로 단계 S310의 처리가 실행될 때에, 이미 기억되어 있는 USFT가 "00000000"(본 경우에서의 페이지 이용률 R은 0임)을 나타낼 것이다. 이 경우, WSFT가 "11000000"를 나타낼 때에는, "11000000"을 가리키는 USFT가 생성될 것이다. 이 USFT는 페이지 이용률 R이 임계치 Rth2보다 높아졌을 때 이후에 데이터 기억을 위해 이용되는 섹터 정보를 나타내야 한다. 이러한 경우에서의 페이지 이용률 R은 0.25이기 때문에, ReRAM(24)에 데이터가 기입되게 된다(단계 S330, S360 내지 S380). 이러한 방식으로, 플래시 메모리(22)에 대한 데이터의 기입 동작이 제어되어, 플래시 메모리(22)의 열화를 감소시킬 수 있다. 이상, 도 3에 나타낸 데이터 기입 처리의 일례에 대해서 설명하였다(단계 S300).
상술한 바와 같은 데이터 기입 처리는 ReRAM(24)에 데이터 이용률(R)이 임계치 Rth1 미만의 비교적 재기입 빈도가 낮은 저빈도 재기입 데이터가 기입되게 하여, 이러한 저빈도 재기입 데이터로 ReRAM(24)의 빈 공간이 감소되게 할 수 있다. ReRAM(24)은 플래시 메모리(22)보다 고속으로 데이터의 기입이 가능하기 때문에, 빈 공간이 거의 없는 ReRAM(24)은 전체 SSD(20)의 데이터 기입 속도를 감소시킬 수도 있다. 이러한 단점을 회피하기 위해, 도 3에 나타낸 바와 같이, 데이터 기입 제어 처리(단계 S300)의 실행에 앞서 데이터 이동 처리(단계 S100)가 실행된다. 계속해서, 데이터 이동 처리 루틴에 대해서 설명한다.
도 10은 메모리 제어기(30)의 제어 처리 회로(32)에 의해 실행되는 데이터 이동 처리 루틴의 일례를 나타내는 흐름도이다. 본 루틴이 실행되면, 메모리 제어기(30)의 제어 처리 회로(32)는 ReRAM(24)의 빈 공간 Semp2을 조사한다(단계 S110). 빈 공간 Semp2의 양이 임계치 Sth(예를 들어, 0.2)보다 클 경우에는, ReRAM(24)의 빈 공간이 충분하다고 판정된다. 따라서, 본 루틴을 종료하고, 도 3에 나타난 데이터 기입 처리(단계 S300)의 실행으로 이동한다.
빈 공간 Semp2이 임계치 Sth 미만일 때에는(단계 S110), ReRAM(24)의 빈 공간이 충분하지 않다고 판단된다. 다음으로, 본 처리는 ReRAM(24)의 섹터에 기억되어 있는 데이터가 재기입 빈도가 비교적 낮은 저빈도 재기입 데이터인지 여부를 판정하는 단계(단계 S120), 및/또는 페이지 이용률 R이 임계치 Rth1보다 낮은 임계치 Rth3 이상인지 여부를 판정하는 단계(단계 S130)로 진행한다. 이에 관련하여, 도 4의 단계 S340에서 사용한 기억 테이블이 단계 S120의 판정 대상인 데이터를 나타내는 논리 섹터 어드레스를 포함하는 논리 페이지 어드레스를 포함하고 있지 않은 경우에, 데이터는 저빈도 재기입 데이터라고 판정된다.
ReRAM(24)의 데이터가 저빈도 재기입 데이터이며 대상 데이터를 플래시 메모리(22)에 기입했을 경우에 취득된 페이지 이용률 R이 임계치 Rth3 이상일 때에는(단계 S120, S130), 데이터가 저빈도 재기입 데이터이고 페이지 이용률 R이 임계치 Rth3 이상이라는 것은 데이터를 플래시 메모리(22)에 기억시켜도 플래시 메모리(22)의 심각한 열화를 유발하지 않을 것이라고 판단된다. 따라서, 본 처리는 플래시 메모리(22)에 기억시켰을 경우에 취득된 판정의 대상 데이터의 논리 페이지 어드레스를 이동 리스트에 기억시키는 단계로 진행한다(단계 S140). 이동 리스트는 플래시 메모리(22)에 이동시켜야 할 데이터의 어드레스를 포함한다.
ReRAM(24)의 데이터가 저빈도 재기입 데이터가 아니거나(단계 S120), 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우에 취득된 페이지 이용률 R이 임계치 Rth3 미만일 때에는(단계 S130), 이동 리스트에 논리 페이지 어드레스를 기억시키지 않고, ReRAM(24)의 모든 섹터의 데이터에 대하여 단계 S120, S130이 수행될 때까지, ReRAM(24)의 다른 섹터의 데이터에 대하여 순차적으로 단계 S120, S130의 처리를 실행할 것이다(단계 S170). 이러한 방식으로, 플래시 메모리(22)에 이동할 때 플래시 메모리(22)를 심각하게 열화시키지 않는 데이터의 논리 페이지 어드레스만을 이동 리스트에 기억시킬 수 있다.
플래시 메모리(22)에 기입했을 경우에 취득된 판정 대상 데이터의 논리 페이지 어드레스를 이동 리스트에 기억시킨 후에(단계 S140), 본 처리는 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달했는지의 여부를 조사하는 단계로 진행하며, 여기서 N은 양의 정수, 예를 들어 1500이다(단계 S150). 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달하지 않았으면, 본 처리는 ReRAM(24)의 모든 섹터의 데이터에 대하여 단계 S120 내지 S150의 처리가 수행될 때까지, ReRAM(24)의 다른 섹터의 데이터에 대하여 단계 S120 내지 S150의 처리를 실행하는 단계로 진행한다(단계 S170). 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달했을 때에는, 이동 리스트에 기억되어 있는 논리 페이지 어드레스에 포함되는 논리 섹터의 데이터를 ReRAM(24)으로부터 판독해서 플래시 메모리(22)에 기입한다(단계 S160). 이러한 처리에 의해, 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달했을 때에는, ReRAM(24)으로부터 플래시 메모리(22)에 데이터를 이동시킬 수 있다.
이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달했을 때에 ReRAM(24)으로부터 플래시 메모리(22)에 데이터를 이동시키는 이유는 후술될 것이다. ReRAM(24)은 플래시 메모리(22)보다 고속으로 데이터의 기입이 가능하기 때문에, ReRAM(24)에 데이터 기입을 억제할 수 있는, 빈 공간이 거의 없는ReRAM(24)은 전체 SSD(20)의 데이터 기입 속도를 감소시킨다. 또한, 재기입 빈도가 낮은 저빈도 재기입 데이터를 다량으로 포함하는 ReRAM(24)는 데이터의 기입 속도를 추가로 감소시킬 수 있다. 이를 회피하기 위해, ReRAM(24)에 기억되어 있는 데이터 중 재기입 빈도가 낮은 데이터를 상술한 바와 같이 플래시 메모리(22)로 이동시킨다. 이는 ReRAM(24)의 빈 공간을 증가시키고, ReRAM(24)에 기억되어 있는 저빈도 재기입 데이터를 줄일 수 있기 때문에, 보다 고속으로 SSD(20)에 데이터를 기입할 수 있다. 또한, ReRAM(24)의 데이터가 저빈도 재기입 데이터이며 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우에 취득된 페이지 이용률 R이 임계치 Rth3 이상일 때에도, 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달할 때까지 ReRAM(24)에 기억하고 있는 데이터는 플래시 메모리(22)에 기입되지 않을 것이다. 따라서, ReRAM(24)으로부터 플래시 메모리(22)로 빈번하게 데이터는 이동되지 않을 것이며, SSD(20)의 기입 속도를 감소시키지 않을 것이다.
ReRAM(24)의 모든 섹터의 데이터에 대하여 단계 S120 내지 S150의 처리가 수행되었을 때에는(단계 S150, S170), 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달되지 않아도, 본 처리는 이동 리스트에 논리 페이지 어드레스가 기억되어 있으면, 논리 페이지 어드레스에 포함된 논리 섹터의 데이터를 ReRAM(24)으로부터 판독해서 그러한 데이터를 플래시 메모리(22)에 기입하는 단계로 진행한다(단계 S160). 이러한 방식으로, 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달하지 않은 경우에도, ReRAM(24)으로부터 플래시 메모리(22)로 데이터를 이동시킬 수 있다.
상술한 바와 같이 ReRAM(24)으로부터 플래시 메모리(22)에 데이터를 이동시킨 후에, 본 처리는 목표 페이지수(예를 들어, 단계 S150의 이동 리스트에서의 논리 페이지 어드레스의 개수의 임계치 N에 대응하는 페이지수인 500페이지)의 데이터를 ReRAM(24)으로부터 플래시 메모리(22)로 이동했는지 여부를 판정하는 단계로 진행한다(단계 S180). 목표 페이지수의 데이터가 이동되어 있지 않을 때에는, 임계치 Rth3가 적정한 값보다 높다고 판단해서 임계치 Rth3로부터 0.1을 감산하여 취득된 값을 임계치 Rth3로 설정하고(단계 S190), 본 루틴을 종료한다. 목표 페이지수의 데이터가 이동되어 있었을 때에는, 임계치 Rth3가 적정한 값이거나 또는 적정한 값보다 낮다라고 판단해서 임계치 Rth3에 0.1을 가산하여 취득된 값과 임계치 Rth1 중 작은 쪽의 값을 임계치 Rth3로 설정하고(단계 S200), 본 루틴을 종료한다. 이러한 처리에 의해, 임계치 Rth3를 보다 적정하게 설정할 수 있기 때문에, 다음으로 본 루틴을 실행할 때에는 보다 적정한 임계치 Rth3를 사용해서 단계 S130의 처리를 실행할 수 있다.
상술한 예의 SSD(20)에 따르면, 페이지 이용률 R이 임계치 Rth1 미만일 때, 또는 페이지 이용률 R이 임계치 Rth1 이상이어도 기입 데이터가 고빈도 재기입 데이터일 때에, 기입 데이터를 ReRAM(24)에 기억시킴으로써, 플래시 메모리(22)의 열화를 감소시킬 수 있다. 또한, ReRAM(24)로의 기입 속도가 플래시 메모리(22)로의 기입 속도보다 고속이기 때문에, 상술한 바와 같이 ReRAM(24)에 기입 데이터를 기억시킴으로써 기입 동작을 보다 고속으로 할 수 있다. 또한, ReRAM(24)의 빈 공간 Semp2이 임계치 Sth 미만일 때, ReRAM(24)의 데이터가 저빈도 재기입 데이터이며, 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우의 페이지 이용률 R이 임계치 Rth3 이상일 때에는, 판정의 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우의 논리 페이지 어드레스를 이동 리스트에 기억시킨다. 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달되었을 때에는, 이동 리스트에 기억되어 있는 논리 페이지 어드레스에 포함되는 논리 섹터의 데이터를 ReRAM(24)으로부터 판독해서 플래시 메모리(22)에 기입한다. 이러한 처리에 의해, 보다 고속으로 SSD(20)에 데이터를 기입할 수 있다. 또한, 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달할 때까지 ReRAM(24)에 기억하고 있는 데이터를 플래시 메모리(22)에 기입하지 않기 때문에, 데이터는 ReRAM(24)으로부터 플래시 메모리(22)로 빈번하게 이동되지 않을 것이며, 이로 인해 SSD(20)의 성능 저하를 감소시킬 수 있다.
본 예의 SSD(20)에서는, 이동 리스트에 기억되어 있는 논리 페이지 어드레스의 개수가 임계치 N에 도달할 때까지 ReRAM(24)에 기억하고 있는 데이터를 플래시 메모리(22)에 기입되지 않는다(단계 S140 내지 S160). 그러나, 페이지 어드레스를 이동 리스트에 기억시키지 않고, ReRAM(24)의 데이터가 저빈도 재기입 데이터이며 대상의 데이터를 플래시 메모리(22)에 기억시킬 경우에 취득되는 페이지 이용률 R이 임계치 Rth3 이상일 때에는, 대상 데이터가 플래시 메모리(22)에 기억되도록 SSD(20)를 구성할 수도 있다.
본 예의 SSD(20)에서는, 단계 S180 내지 단계 S200의 처리에서, 데이터 이동이 있는지 여부에 따라 임계치 Rth3를 변경할 수 있다. 그러나, 임계치 Rth3는 변경하지 않은채로, 그러한 변경 처리를 필요로 하지 않는 일정한 값으로 할 수 있다.
본 예의 SSD(20)에서는, ReRAM(24)의 데이터가 저빈도 재기입 데이터이며 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우에 취득되는 페이지 이용률 R이 임계치 Rth3 이상일 때에 단계 S140과 단계 S140에 후속하는 단계들을 실행한다. 그러나, 대상 데이터를 플래시 메모리(22)에 기억시켰을 경우에 취득되는 페이지 이용률 R이 임계치 Rth3 이상인지 여부의 판정을 실행하지 않고, 단계 S140과 단계 S140에 후속하는 단계들을 실행할 수 있다.
본 예의 SSD(20)에서는, 페이지 이용률 R이 임계치 Rth1 이상이어도, 고빈도 재기입 데이터인 기입 데이터는 ReRAM(24)에 기억될 것이다(단계 S330, S340, S360 내지 S380). 그러나, 페이지 이용률 R이 임계치 Rth1 이상일 때에는 단계 S340의 처리를 실행하지 않고 기입 데이터를 일률적으로 플래시 메모리(22)에 기억시킬 수 있다(단계 S330, S350).
본 예의 SSD(20)에서, 임계치 Rth1는 ReRAM(24)의 데이터 기억 영역의 사이즈가 커짐에 따라 감소되도록 설정된다. 그러나, 임계치 Rth1를 ReRAM(24)의 데이터 기억 영역과 무관하게 일정한 값으로 설정할 수도 있다.
본 예의 SSD(20)에서는, 페이지 이용률 R이 임계치 Rth2보다 높을 때에는 USFT의 플래그를 모두 값 "0"을 가리키도록 설정하는 플래그 리셋 동작을 실행한다(단계 S390, S400). 그러나, 이러한 처리는 반드시 실행하지 않을 수도 있다.
본 예의 SSD(20)에서는, 페이지 이용률 R을 1페이지 단위로 연산하거나, 구체적으로, 1페이지에 포함되는 값 "1"을 가리키는 플래그의 개수를 1페이지에 포함되는 플래그의 전체 개수인 값 "8"로 나눔으로써 연산한다. 그러나, 페이지 이용률 R은 1 섹터의 사이즈보다 크면 어떠한 사이즈 단위로도 연산될 수 있다. 예를 들어, 페이지 이용률 R을 2페이지 이상의 페이지 단위로 연산할 수 있으며, 또는 구체적으로 2페이지 이상의 페이지에 포함된 값 "1"을 가리키는 플래그의 개수를 2페이지 이상의 페이지에 포함된 플래그의 전체 개수로 나눔으로써 연산할 수 있다.
본 예의 SSD(20)는 플래시 메모리(22)를 포함한다. 그러나, SSD(20)는 플래시 메모리(22) 대신에, 복수의 섹터로 구성된 페이지 단위로 기억 영역에 기억되어 있는 데이터를 판독하고, 판독한 데이터를 섹터 단위로 재기입한 후에, 페이지 단위로 데이터를 기입하는 데이터 기입 동작이 가능하도록 구성되는 임의의 불휘발성 메모리를 포함할 수 있다.
본 예의 SSD(20)에서, ReRAM(24)의 ReRAM 셀은 바이폴라 동작을 행하는 소자로서 형성되어 있다. 그러나, ReRAM 셀을 저항 변화 소자(46)와 다이오드(도시하지 않음)로 구성할 수 있으며, ReRAM 셀이 전압 V1에 전압 V2보다 높은 전압이 인가되었을 때에 세트(또는 저저항화)되고, 전압 V1에 전압 V2보다 높고 ReRAM 셀을 세트하는 전압보다 낮은 전압이 인가되었을 때에 리셋(또는 고저항화)되는 유니폴라 동작을 행하는 소자로서 구성될 수 있다. 이러한 유니폴라 동작을 행하는 ReRAM 셀은 일반적으로, 바이폴라 동작을 행하는 ReRAM 셀의 셀 구성 및 셀 사이즈에 비해 작은 셀 구성 및 셀 사이즈를 갖는다. 따라서, 유니폴라 동작을 행하는 ReRAM 셀을 포함하는 ReRAM은, 유니폴라 동작을 행하는 ReRAM 셀을 포함하는 ReRAM의 동작 속도가 다소 감소되더라도, 바이폴라 동작을 행하는 ReRAM 셀을 포함하는 ReRAM에 비해 작은 면적을 차지할 수도 있다.
본 예의 SSD(20)는 ReRAM(24)을 포함한다. 그러나, SSD(20)는 ReRAM(24) 대신에, 플래시 메모리(22)보다 고속의 데이터 기입이 가능한, 다른 종류의 불휘발성 랜덤 액세스 메모리를 포함할 수도 있다. 그러한 불휘발성 랜덤 액세스 메모리의 예는 2개의 전극 사이에 강유전체 재료를 개재시켜서 형성한 캐패시터를 갖는 강유전체 랜덤 액세스 메모리, 터널 자기 저항막을 자성체막 사이에 개재시킨 구조의 MTJ(magnetic tunnel junction) 소자를 갖는 자기 저항 랜덤 액세스 메모리, 및 2개의 전극 사이에 상변화 재료를 개재시켜서 형성한 소자를 갖는 상변화 메모리를 포함하지만, 이에 한정되지 않는다.
본 예에서는, 본 발명을 SSD에 사용하는 경우를 예시하였다. 그러나, 본 발명은 데이터를 처리하는 장치라면 어떤 것에 사용해도 되고, 예를 들어, USB 플래시 메모리에 사용할 수 있다. 또한, 메모리 제어기(30), 플래시 메모리(22) 및 ReRAM(24)은 동일한 장치에 포함되지 않을 수도 있다. 이들은 상이한 장치에 포함될 수도 있다. 예를 들어, 플래시 메모리(22)와 ReRAM(24)은 동일한 장치에 포함되지만, 메모리 제어기(30)는 다른 장치에 포함될 수도 있다. 또한, 본 발명은 이러한 플래시 메모리(22)와 ReRAM(24)을 제어하는 메모리 제어 방법의 한가지 형태로 사용될 수도 있다.
본 예에 나타낸 주요한 요소와 과제의 해결 수단의 란에 기재된 발명의 주요한 요소간의 대응 관계에 대해서 설명할 것이다. 본 예에서는, 메모리 제어기에 대해서는, 도 4에 도시한 데이터 기입 처리 루틴을 실행하는 제어 처리 회로(32)가 "기입 제어기"에 상당하고, 도 10에 도시된 데이터 이동 제어 처리 루틴을 실행하는 제어 처리 회로(32)가 "데이터 이동 제어기"에 상당한다. 메모리 제어기에서, 논리 어드레스를 사용해서 플래시 메모리(22) 및 ReRAM(24)을 제어하는 제어 처리 회로(32)가 "어드레스 제어기"에 상당하고, 페이지 이용률 R이 임계치 Rth1 이상인 가장 최근에 입력된 논리 어드레스를 기억하는 제어 처리 회로(32)가 "고 이용률 어드레스 정보 메모리"에 상당하고, 도 10에 도시된 처리 루틴의 단계 S140에서 페이지 어드레스를 기억하는 제어 처리 회로(32)가 "페이지 어드레스 메모리"에 상당한다. 데이터 기억 장치에 대해서는, 메모리 제어기(30)가 "메모리 제어기"에 상당하고, 플래시 메모리(22)가 "제1 메모리"에 상당하고, ReRAM(24)이 "제2 메모리"에 상당한다.
본 발명을 실시하기 위한 실시 형태에 대해서 예를 참조하여 설명했지만; 본 발명은 이러한 예에 한정되지 않으며, 본 발명의 사상 및 범위를 벗어나지 않는 범위 내에서, 다양한 형태로 실시할 수 있다.
산업상 이용가능성
본 발명은 메모리 제어기, 데이터 기억 장치 등의 제조 산업에 이용 가능하다.
10 : 호스트 장치
20 : SSD
22 : 플래시 메모리
24 : ReRAM
30 : 메모리 제어기
32 : 제어 처리 회로
40 : 상부 전극
42 : 하부 전극
44 : 금속 산화물
46 : 저항 변화 소자
20 : SSD
22 : 플래시 메모리
24 : ReRAM
30 : 메모리 제어기
32 : 제어 처리 회로
40 : 상부 전극
42 : 하부 전극
44 : 금속 산화물
46 : 저항 변화 소자
Claims (13)
- 제1 메모리 및 제2 메모리를 제어하기 위한 메모리 제어기 -상기 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 상기 기입 데이터에 의해 덮어 쓰여진 후에, 상기 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성되고, 상기 제2 메모리는 상기 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성됨- 로서,
상기 기입 데이터와 상기 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 상기 기입 데이터를 상기 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 상기 기입 데이터가 상기 기입 동작에 의해 상기 제1 메모리에 기입되도록 상기 제1 메모리와 상기 제2 메모리를 제어하고 -상기 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 상기 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- ; 상기 데이터 이용률이 상기 제1 비율 미만일 때에는, 입력된 상기 기입 데이터가 상기 제2 메모리에 기억되도록 상기 제1 메모리와 상기 제2 메모리를 제어하도록 구성된 기입 제어기; 및
상기 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 상기 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터인 것을 필요 조건으로 하여, 상기 저빈도 재기입 데이터가 상기 제2 메모리로부터 판독되어 상기 기입 동작에 의해 상기 제1 메모리에 기입되도록 상기 제1 메모리와 상기 제2 메모리를 제어하는 데이터 이동 제어를 실행하도록 구성된 데이터 이동 제어기
를 포함하는, 메모리 제어기. - 제1항에 있어서,
상기 데이터 이동 제어기는 상기 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 상기 제2 메모리에 기억되어 있는 데이터가 상기 저빈도 재기입 데이터이고 상기 제1 메모리에 상기 저빈도 재기입 데이터를 기입한 경우에 취득되는 상기 데이터 이용률이 제2 비율 -상기 제2 비율은 상기 제1 비율보다 낮음- 이상인 것을 필요 조건으로 하여 상기 데이터 이동 제어를 실행하도록 구성되는, 메모리 제어기. - 제2항에 있어서,
데이터를 포함하는 페이지를 나타내는 페이지 어드레스와 상기 페이지에 포함된 데이터의 기억에 이용되는 섹터를 나타내는 섹터 어드레스로 구성된 논리 어드레스를 사용하여 상기 제1 메모리 및 상기 제2 메모리를 관리하도록 구성된 어드레스 관리부; 및
상기 데이터 이용률이 상기 제1 비율 이상이 되게 하는 기입 데이터의 논리 어드레스를 기억하도록 구성된 고 이용률 어드레스 정보 메모리
를 더 포함하고,
상기 데이터 이동 제어기는 상기 고 이용률 어드레스 정보 메모리에 기억된 입력된 상기 기입 데이터의 논리 어드레스의 개수가 소정 개수 미만일 때에 입력된 상기 기입 데이터가 저빈도 재기입 데이터라고 판정하도록 구성되는, 메모리 제어기. - 제2항에 있어서,
상기 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 상기 제2 메모리에 기억되어 있는 데이터가 상기 저빈도 재기입 데이터이고 상기 저빈도 재기입 데이터를 상기 제1 메모리에 기입할 경우에 취득되는 상기 데이터 이용률이 상기 제2 비율 이상일 때에는, 상기 저빈도 재기입 데이터를 포함하는 페이지의 페이지 어드레스를 기억하도록 구성된 페이지 어드레스 메모리
를 더 포함하고,
상기 데이터 이동 제어기는 상기 제2 메모리의 빈 공간이 상기 소정량 미만으로 되었을 때, 적어도 상기 제2 메모리에 기억되어 있는 데이터가 상기 저빈도 재기입 데이터이고 상기 저빈도 재기입 데이터를 상기 제1 메모리에 기입할 경우에 취득되는 상기 데이터 이용률이 상기 제2 비율 이상이고 상기 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 소정 개수 이상인 것을 필요 조건으로 하여, 상기 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스에 대응하는 제2 메모리의 데이터에 대해 상기 데이터 이동 제어를 실행하도록 구성되는, 메모리 제어기. - 제4항에 있어서,
상기 데이터 이동 제어기는, 상기 제2 메모리의 빈 공간이 상기 소정량 미만으로 되고, 상기 소정 개수보다 많은 복수의 페이지에 대해서, 상기 제2 메모리에 기억되어 있는 데이터가 상기 저빈도 재기입 데이터인지 여부와 상기 저빈도 재기입 데이터를 상기 제1 메모리에 기입할 경우에 취득되는 상기 데이터 이용률이 상기 제2 비율 이상인지 여부를 판정한 후에, 상기 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 상기 소정 개수 미만일 때에는, 상기 제2 비율을 감소시키고, 상기 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 상기 소정 개수일 때에는, 상기 제2 비율의 값을 변경하지 않고 유지하고, 상기 페이지 어드레스 메모리에 기억되어 있는 페이지 어드레스의 개수가 상기 소정 개수를 초과했을 때에는 상기 제2 비율을 증가시키도록 구성되는, 메모리 제어기. - 제2항에 있어서,
상기 기입 제어기 및 상기 데이터 이동 제어기는 각 섹터가 데이터를 기억하고 있는지 여부를 가리키는 이용 섹터 정보와 입력된 상기 기입 데이터를 기억하기 위해 이용하는 섹터를 참조함으로써 상기 데이터 이용률을 연산하도록 구성되는, 메모리 제어기. - 제3항에 있어서,
상기 제어기는, 입력된 상기 기입 데이터를 상기 제2 메모리에 기억시킬 때, 입력된 상기 기입 데이터의 논리 어드레스에 대응하는 데이터가 이미 제1 메모리의 기억 영역에 기억되어 있을 때에는, 상기 제1 메모리에 기억되어 있는 데이터를 페이지 단위로 판독하고, 판독된 데이터의 섹터 중 기입 데이터를 기입할 대상이 되는 섹터에 재기입한 후에, 입력된 상기 기입 데이터를 페이지 단위로 제2 메모리에 기억시키도록 구성되는, 메모리 제어기. - 제1항에 있어서,
상기 소정 사이즈를 갖는 기억 영역은 상기 기입 데이터에 의해 이용되는 섹터들을 포함하는 페이지들이 기억되는 영역인, 메모리 제어기. - 제1항에 있어서,
상기 제1 메모리는 NAND형 플래시 메모리인, 메모리 제어기. - 제1항에 있어서,
상기 제2 메모리는 저항 변화 랜덤 액세스 메모리인, 메모리 제어기. - 제1항의 메모리 제어기,
상기 제1 메모리, 및
상기 제2 메모리
를 포함하는 데이터 기억 장치. - 제1 메모리 및 제2 메모리를 제어하기 위한 메모리 제어 방법 -상기 제1 메모리는 복수의 섹터로 구성된 페이지 단위로 데이터가 판독되고, 판독된 데이터 중 기입 데이터에 대응하는 섹터가 상기 기입 데이터에 의해 덮어 쓰여진 후에, 상기 페이지 단위로 데이터가 기입되는 기입 동작에 의해 데이터가 기입되는 불휘발성 메모리로서 구성되고, 상기 제2 메모리는 상기 제1 메모리보다 고속으로 데이터의 기입이 가능한 불휘발성 랜덤 액세스 메모리로서 구성됨- 으로서,
상기 기입 데이터와 상기 기입 데이터의 기입을 요구하는 기입 요구 신호가 입력되었을 때, 상기 기입 데이터를 상기 제1 메모리에 기입할 경우에 취득되는 데이터 이용률이 제1 비율 이상일 때에는, 입력된 상기 기입 데이터가 상기 기입 동작에 의해 상기 제1 메모리에 기입되도록 상기 제1 메모리와 상기 제2 메모리를 제어하고 -상기 데이터 이용률은 소정 사이즈를 갖는 기억 영역에 기초하여 상기 기입 데이터의 기억에 이용되는 섹터 사이즈의 비율을 가리킴- , 상기 데이터 이용률이 상기 제1 비율 미만일 때에는, 입력된 상기 기입 데이터가 상기 제2 메모리에 기억되도록 상기 제1 메모리와 상기 제2 메모리를 제어하는 단계; 및
상기 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 상기 제2 메모리에 기억되어 있는 데이터가 재기입 빈도가 낮은 저빈도 재기입 데이터인 것을 필요 조건으로 하여, 상기 저빈도 재기입 데이터가 상기 제2 메모리로부터 판독되어 상기 기입 동작에 의해 상기 제1 메모리에 기입되도록 상기 제1 메모리와 상기 제2 메모리를 제어하는 데이터 이동 제어를 실행하는 단계
를 포함하는, 메모리 제어 방법. - 제12항에 있어서,
상기 제2 메모리의 빈 공간이 소정량 미만으로 되었을 때, 적어도 상기 제2 메모리에 기억되어 있는 데이터가 상기 저빈도 재기입 데이터이고 상기 제1 메모리에 상기 저빈도 재기입 데이터의 기억에 이용되는 섹터들을 포함하는 상기 소정 사이즈의 데이터를 기입할 경우에 취득되는 상기 데이터 이용률이 제2 비율 -상기 제2 비율은 상기 제1 비율보다 낮음- 이상이 되는 것을 필요 조건으로 하여 상기 데이터 이동 제어가 실행되는, 메모리 제어 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2012-205664 | 2012-09-19 | ||
JP2012205664A JP5995071B2 (ja) | 2012-09-19 | 2012-09-19 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
PCT/JP2013/004923 WO2014045516A1 (ja) | 2012-09-19 | 2013-08-20 | メモリコントローラ、データ記憶装置およびメモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150046185A KR20150046185A (ko) | 2015-04-29 |
KR101687502B1 true KR101687502B1 (ko) | 2016-12-19 |
Family
ID=50340858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157006958A KR101687502B1 (ko) | 2012-09-19 | 2013-08-20 | 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9753652B2 (ko) |
JP (1) | JP5995071B2 (ko) |
KR (1) | KR101687502B1 (ko) |
CN (1) | CN104798055B (ko) |
WO (1) | WO2014045516A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5971547B2 (ja) * | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
US9064569B1 (en) * | 2014-07-03 | 2015-06-23 | Sandisk Technologies Inc. | Memory controller with resistive random access memory (ReRAM) |
KR20170045928A (ko) * | 2015-10-20 | 2017-04-28 | 삼성에스디에스 주식회사 | 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치 |
US10354728B2 (en) | 2017-06-28 | 2019-07-16 | Sandisk Technologies Llc | Write verification and resistive state determination based on cell turn-on characteristics for resistive random access memory |
US11552810B2 (en) | 2017-08-03 | 2023-01-10 | Arizona Board Of Regents On Behalf Of Northern Arizona University | PUF with dissolvable conductive paths |
JP2019045974A (ja) | 2017-08-30 | 2019-03-22 | 富士通株式会社 | 情報処理装置、情報処理プログラム及び情報処理方法 |
US10256402B1 (en) | 2017-09-25 | 2019-04-09 | Sandisk Technologies Llc | ReRAM read state verification based on cell turn-on characteristics |
CN109828719B (zh) * | 2018-12-15 | 2022-04-01 | 平安科技(深圳)有限公司 | 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备 |
KR20200078047A (ko) * | 2018-12-21 | 2020-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN114063880B (zh) * | 2020-07-31 | 2024-09-06 | 伊姆西Ip控股有限责任公司 | 处理输入输出请求的方法、电子设备和计算机程序产品 |
JP7024127B2 (ja) * | 2021-02-04 | 2022-02-22 | 株式会社東芝 | 管理装置、情報処理装置、管理方法、およびプログラム |
US12086440B2 (en) * | 2022-07-18 | 2024-09-10 | Micron Technology, Inc. | Virtual binning in a memory device |
CN116149545B (zh) * | 2022-12-01 | 2024-06-11 | 浙江大学 | 一种基于存储类内存的损耗均衡方法 |
CN115639971B (zh) * | 2022-12-12 | 2023-04-07 | 北京集度科技有限公司 | 数据写入方法、装置、电子设备、存储介质及程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006018591A (ja) * | 2004-07-01 | 2006-01-19 | Matsushita Electric Ind Co Ltd | メモリカード |
JP2008134685A (ja) * | 2006-11-27 | 2008-06-12 | Konica Minolta Business Technologies Inc | 不揮発メモリシステム及び不揮発メモリ制御方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1150453C (zh) * | 1999-10-21 | 2004-05-19 | 三星电子株式会社 | 含电可重写非易失存储器的数据处理装置 |
US6836432B1 (en) * | 2002-02-11 | 2004-12-28 | Advanced Micro Devices, Inc. | Partial page programming of multi level flash |
JP4472010B2 (ja) * | 2006-08-09 | 2010-06-02 | 株式会社日立超エル・エス・アイ・システムズ | 記憶装置 |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
JP5090941B2 (ja) * | 2008-01-29 | 2012-12-05 | 株式会社日立製作所 | ストレージサブシステム及びストレージシステム |
KR101553532B1 (ko) | 2008-04-17 | 2015-09-16 | 삼성전자주식회사 | 스토리지 장치 |
US8375162B2 (en) * | 2009-06-03 | 2013-02-12 | Ocz Technology Group Inc. | Method and apparatus for reducing write cycles in NAND-based flash memory devices |
US20110252187A1 (en) * | 2010-04-07 | 2011-10-13 | Avigdor Segal | System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory |
CN102136993B (zh) * | 2010-07-29 | 2016-12-21 | 华为技术有限公司 | 一种数据迁移的方法、装置和系统 |
JP5553309B2 (ja) * | 2010-08-11 | 2014-07-16 | 国立大学法人 東京大学 | データ処理装置 |
JP5971547B2 (ja) * | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
-
2012
- 2012-09-19 JP JP2012205664A patent/JP5995071B2/ja not_active Expired - Fee Related
-
2013
- 2013-08-20 KR KR1020157006958A patent/KR101687502B1/ko active IP Right Grant
- 2013-08-20 WO PCT/JP2013/004923 patent/WO2014045516A1/ja active Application Filing
- 2013-08-20 CN CN201380060156.2A patent/CN104798055B/zh not_active Expired - Fee Related
- 2013-08-20 US US14/429,049 patent/US9753652B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006018591A (ja) * | 2004-07-01 | 2006-01-19 | Matsushita Electric Ind Co Ltd | メモリカード |
JP2008134685A (ja) * | 2006-11-27 | 2008-06-12 | Konica Minolta Business Technologies Inc | 不揮発メモリシステム及び不揮発メモリ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014045516A1 (ja) | 2014-03-27 |
KR20150046185A (ko) | 2015-04-29 |
JP5995071B2 (ja) | 2016-09-21 |
JP2014059820A (ja) | 2014-04-03 |
CN104798055A (zh) | 2015-07-22 |
US9753652B2 (en) | 2017-09-05 |
US20150220273A1 (en) | 2015-08-06 |
CN104798055B (zh) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101687502B1 (ko) | 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법 | |
US11416161B2 (en) | Zone formation for zoned namespaces | |
KR101904270B1 (ko) | 메모리 컨트롤러, 데이터 기억 장치 및 메모리의 제어 방법 | |
US11294827B2 (en) | Non-sequential zoned namespaces | |
US7941692B2 (en) | NAND power fail recovery | |
US10445005B2 (en) | Memory system and operating method thereof | |
EP3462320B1 (en) | Dynamic page allocation in memory | |
TWI672588B (zh) | 操作一記憶體陣列之方法及記憶體裝置 | |
TW201011767A (en) | NAND error management | |
US9690696B1 (en) | Lifetime extension of memory for data storage system | |
US11204698B2 (en) | Memory controller to set operating environment of memory device, method of operating the same and storage device including the same | |
US11334272B2 (en) | Memory system and operating method thereof | |
KR102698414B1 (ko) | 온도에 기초한 상이한 전송 속도들에서의 메모리 내의 데이터의 재배치 | |
US11892928B2 (en) | Delayed thermal throttling and associated data routing techniques | |
US10235049B2 (en) | Device and method to manage access method for memory pages | |
US20210382621A1 (en) | Attribute Mapping in Multiprotocol Devices | |
CN107958690B (zh) | 数据存储装置及其操作方法 | |
US10552314B2 (en) | Memory system and method for ware leveling | |
JP4988054B2 (ja) | メモリシステム | |
US20190042137A1 (en) | Memory device with separate memory controllers for program/erase and read operations | |
US11886260B2 (en) | Thermal management of storage devices increasing host write performance | |
JP2014178867A (ja) | ストレージ制御装置、及びストレージ制御システム |
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 |