[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20170078592A - 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법 - Google Patents

메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법 Download PDF

Info

Publication number
KR20170078592A
KR20170078592A KR1020177006320A KR20177006320A KR20170078592A KR 20170078592 A KR20170078592 A KR 20170078592A KR 1020177006320 A KR1020177006320 A KR 1020177006320A KR 20177006320 A KR20177006320 A KR 20177006320A KR 20170078592 A KR20170078592 A KR 20170078592A
Authority
KR
South Korea
Prior art keywords
recording
page
data
information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
KR1020177006320A
Other languages
English (en)
Inventor
켄이치 나카니시
Original Assignee
소니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 주식회사 filed Critical 소니 주식회사
Publication of KR20170078592A publication Critical patent/KR20170078592A/ko
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4061Calibration or ate or cycle tuning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/82Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)

Abstract

데이터의 퇴피를 행하는 일 없이 리프레시를 행하여, 불휘발 메모리에서의 데이터의 파괴를 막는다. 기록 회수 정보 유지부는, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지한다. 판단부는, 유지된 기록 회수 정보에 의거하여 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단한다. 기록 제어부는, 페이지에 대해 기록을 행할 때에 판단의 결과에 의해 리프레시가 필요해지는 경우에는 기록에 더하여 리프레시를 또한 행한다.

Description

메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법{MEMORY CONTROLLER, STORAGE DEVICE, INFORMATION PROCESSING SYSTEM, AND MEMORY CONTROL METHOD}
본 기술은, 메모리 컨트롤러에 관한 것이다. 상세하게는 불휘발 메모리에 대한 데이터의 기록을 행하는 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법에 관한 것이다.
종래, 정보 처리 시스템의 기억 장치에 불휘발 메모리가 사용되고 있다. 이 불휘발 메모리에는, EEPROM(Electrically Erasable and Programmable Read Only Memory)이나 ReRAM(Resistance Random Access Memory) 등이 해당한다. 이들의 불휘발 메모리는, 전원이 오프로 되어 전력의 공급이 끊긴 경우라도 기억된 데이터를 유지할 수 있다.
그러나, 이들의 불휘발 메모리에서, 기억된 데이터가 파괴되는 현상이 알려져 있다. 예를 들면, ReRAM은 메모리 셀 내의 기억 소자의 저항치를 고저항의 상태 또는 저저항의 상태로 하고, 이들 저항치의 상태를 논리값에 대응시켜서 데이터의 기억을 행하는 메모리이다. 이 기억 소자의 저항치가 시간의 경과와 함께 변화하여, 상술한 고저항의 상태 및 저저항의 상태를 판별할 수가 없게 되는 경우가 생긴다. 이 경우, 기억된 데이터가 파괴에 이르는 것으로 된다.
이 대책으로서, 메모리 셀에 기억된 데이터를 데이터 일시 보관 영역에 보관하고, 메모리 셀의 기억 데이터의 소거를 행한다. 그 후, 일시 보관 영역에 보관되어 있던 데이터의 재기록을 행하는, 이른바 리프레시를 행하는 기억 장치가 제안되어 있다(예를 들면, 특허 문헌 1 참조.).
특허 문헌 1 : 일본 특개2005-182909호 공보
상술한 종래 기술에서는, 복수의 메모리 셀로 이루어지는 데이터 기억 블록마다 이 블록 내에서 행하여진 재기록 회수를 카운트한다. 이 카운트값이 소정의 회수에 달한 경우에, 블록 단위로 상술한 리프레시를 행하고 있다. 이 때문에, 블록의 사이즈와 같은 사이즈의 일시 보관 영역이 필요해지고, 메모리 칩의 사이즈의 증대를 초래한다는 문제가 있다.
본 기술은 이와 같은 상황을 감안하여 만들어낸 것으로, 데이터의 일시 보관을 행하는 일 없이 리프레시를 행하여, 불휘발 메모리에서의 데이터의 파괴를 막는 것을 목적으로 한다.
본 기술은, 상술한 문제점을 해소하기 위해 이루어진 것으로, 그 제1의 측면은, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와, 상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와, 상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 메모리 컨트롤러이다. 이에 의해, 기록 회수 정보에 의거하여 기록할 때에 리프레시를 행한다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 기록 회수 정보 유지부는, 상기 페이지 마다 상기 기록 회수 정보를 유지하여도 좋다. 이에 의해, 페이지 마다 기록 회수 정보가 유지된다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 기록 회수 정보 유지부는, 복수의 상기 페이지로 이루어지는 블록마다 상기 기록 회수 정보를 유지하여도 좋다. 이에 의해, 블록마다 기록 회수 정보가 유지된다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 판단부는, 상기 유지된 상기 기록 회수 정보가 소정의 임계치보다도 큰 경우에 상기 리프레시가 필요하다고 판단하여도 좋다. 이에 의해, 기록 회수가 소정의 임계치보다도 큰 경우에 리프레시가 필요하다고 판단된다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 기록 제어부는, 상기 페이지에 기억되어 있는 데이터의 판독을 행하여 당해 판독한 데이터의 각 비트의 값을 반전시킨 데이터를 상기 페이지에 기록함에 의해 상기 리프레시를 행하여도 좋다. 이에 의해, 기억되어 있는 데이터의 반전 데이터가 기록됨에 의해 리프레시가 행하여진다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 기록 제어부는, 전 비트가 동일한 값인 페이지 사이즈의 제1의 데이터와 상기 제1의 데이터의 전 비트를 반전시킨 제2의 데이터를 상기 페이지에 대해 차례로 기록함에 의해 상기 리프레시를 행하여도 좋다. 이에 의해, 전 비트가 동일한 값인 제1의 데이터와 이것을 반전시킨 제2의 데이터를 차례로 기록함에 의해 리프레시가 행하여진다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 기록 회수의 카운트를 행하여, 상기 기록 제어부에서 상기 리프레시를 수반하지 않는 상기 기록이 행하여진 경우에는 상기 카운트에 의거한 상기 기록 회수에 의해 상기 유지된 상기 기록 회수 정보를 갱신하고, 상기 기록 제어부에서 상기 리프레시를 수반하는 상기 기록이 행하여진 경우에는 상기 유지된 상기 기록 회수 정보를 초기화하는 카운트부를 또한 구비하여도 좋다. 이에 의해, 기록 회수의 카운트가 행하여지고, 기록 제어부에서의 리프레시의 유무에 의거하여 기록 회수 정보의 갱신 또는 초기화가 행하여진다는 작용을 가져온다.
또한, 이 제1의 측면에서, 상기 페이지 마다의 기록의 누계(累計) 회수인 기록 누계 회수 정보를 유지하는 기록 누계 회수 정보 유지부와, 상기 유지된 상기 기록 누계 회수 정보에 의거하여 기록의 누계 회수가 많은 페이지와 기록의 누계 회수가 적은 페이지와의 사이에서 일방의 페이지로부터 판독한 데이터를 타방의 페이지에 기록하는 데이터 교체를 제어하는 데이터 교체 제어부와, 상기 기록의 누계 회수의 카운트를 행하여, 당해 카운트에 의거한 상기 기록의 누계 회수에 의해 상기 유지된 상기 기록 누계 회수 정보를 갱신하는 누계 카운트부를 또한 구비하고, 상기 판단부는, 상기 리프레시가 필요한지 여부의 판단을 상기 데이터 교체할 때에 또한 행하여도 좋다. 이에 의해, 데이터 교체에서의 기록할 때에도 리프레시가 행하여진다는 작용을 가져온다.
또한, 본 기술의 제2의 측면은, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와, 상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와, 상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와, 상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 기억 장치이다. 이에 의해, 기록 회수 정보에 의거하여 기록할 때에 리프레시를 행한다는 작용을 가져온다.
또한, 본 기술의 제3의 측면은, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와, 상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와, 상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와, 상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 기억 장치와, 상기 기억 장치에 액세스하는 호스트 컴퓨터를 구비하는 정보 처리 시스템이다. 이에 의해, 기록 회수 정보에 의거하여 기록할 때에 리프레시를 행한다는 작용을 가져온다.
또한, 본 기술의 제4의 측면은, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단 순서와, 상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어 순서를 구비하는 메모리의 제어 방법이다. 이에 의해, 기록 회수 정보에 의거하여 기록할 때에 리프레시를 행한다는 작용을 가져온다.
본 기술에 의하면, 데이터의 일시 보관을 행하는 일 없이 리프레시를 행하여, 불휘발 메모리에서의 데이터의 파괴를 막는다는 우수한 효과를 이룰 수 있다. 또한, 여기에 기재된 효과는 반드시 한정되는 것이 아니고, 본 개시 중에 기재된 어느 하나의 효과라도 좋다.
도 1은 본 기술의 실시의 형태에서의 정보 처리 시스템의 구성례를 도시하는 도면.
도 2는 본 기술의 제1의 실시의 형태에서의 제어부(210)의 구성례를 도시하는 도면.
도 3은 본 기술의 제1의 실시의 형태에서의 메모리 셀의 구성례를 도시하는 도면.
도 4는 본 기술의 제1의 실시의 형태에서의 데이터의 기록을 도시하는 도면.
도 5는 본 기술의 제1의 실시의 형태에서의 리프레시 기록을 도시하는 도면.
도 6은 본 기술의 제1의 실시의 형태에서의 기록 처리의 처리 순서의 한 예를 도시하는 도면.
도 7은 본 기술의 제2의 실시의 형태에서의 리프레시 기록을 도시하는 도면.
도 8은 본 기술의 제3의 실시의 형태에서의 메모리(300)의 구성례를 도시하는 도면.
도 9는 본 기술의 제3의 실시의 형태에서의 메모리 셀 어레이(340)의 구성례를 도시하는 도면.
도 10은 본 기술의 제4의 실시의 형태에서의 제어부(210)의 구성례를 도시하는 도면.
도 11은 본 기술의 제4의 실시의 형태에서의 기록 처리의 처리 순서의 한 예를 도시하는 도면.
이하, 본 기술을 실시하기 위한 형태(이하, 실시의 형태라고 칭한다)에 관해 설명한다. 설명은 이하의 순서에 의해 행한다.
1. 제1의 실시의 형태(데이터를 반전함에 의해 리프레시를 행하는 경우의 예)
2. 제2의 실시의 형태(전비트 「0」 및 전비트「1」로 함에 의해 리프레시를 행하는 경우의 예)
3. 제3의 실시의 형태(메모리에서 리프레시의 제어를 행하는 경우의 예)
4. 제4의 실시의 형태(웨어 레벨링을 행하는 경우의 예)
5. 변형례
[정보 처리 시스템의 구성]
도 1은, 본 기술의 실시의 형태에서의 정보 처리 시스템의 구성례를 도시하는 도면이다. 동 도면의 정보 처리 시스템은, 호스트 컴퓨터(100)와, 메모리 컨트롤러(200)와, 메모리(300)를 구비한다.
호스트 컴퓨터(100)는, 프로세서(110)와, 메모리 컨트롤러 인터페이스(109)를 구비한다. 이 호스트 컴퓨터(100)는, 화상 처리 등의 처리를 행하는 것이다. 이 호스트 컴퓨터(100)는, 메모리 컨트롤러(200)를 통하여 메모리(300)에 액세스한다. 이 때, 호스트 컴퓨터(100)는, 메모리 컨트롤러(200)에 대해 기록 또는 판독 등의 커맨드를 발행하여 액세스를 행한다.
프로세서(110)는, 호스트 컴퓨터(100)의 전체를 제어하는 것이다. 메모리 컨트롤러 인터페이스(109)는, 메모리 컨트롤러(200)와의 사이의 교환을 행하는 것이다.
메모리 컨트롤러(200)는, 호스트 인터페이스(209)와, 제어부(210)와, 메모리 인터페이스(208)를 구비한다. 이 메모리 컨트롤러(200)는, 메모리(300)를 제어하는 것이다. 또한, 이 메모리 컨트롤러(200)는, 호스트 컴퓨터(100)가 발행한 커맨드를 해석하고, 메모리(300)에 대해 기록 리퀘스트 또는 판독 리퀘스트를 요구한다.
호스트 인터페이스(209)는, 호스트 컴퓨터(100)와의 사이의 교환을 행하는 것이다. 제어부(210)는, 상술한 커맨드에 의거한 제어 등을 행하는 것이다. 메모리 인터페이스(208)는, 메모리(300)와의 사이의 교환을 행하는 것이다.
메모리(300)는, 메모리 컨트롤러 인터페이스(309)와, 메모리 디바이스 제어부(310)와, 메모리 셀 어레이(320)를 구비한다. 이 메모리(300)는, 호스트 컴퓨터(100)에서의 처리에 필요한 데이터의 기억을 행하는 것이다.
메모리 컨트롤러 인터페이스(309)는, 메모리 컨트롤러(200)와의 사이의 교환을 행하는 것이다. 메모리 디바이스 제어부(310)는, 상술한 리퀘스트에 의거하여 메모리 셀 어레이(320)에 대한 기록 및 판독을 제어하는 것이다. 메모리 셀 어레이(320)는, 2차원으로 배치된 메모리 셀에 의해 구성되고, 데이터의 기억을 행하는 것이다. 이 메모리 셀 어레이(320)는, 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 페이지 어드레스에 의해 액세스된다. 이 페이지는, 예를 들면, 2K바이트의 크기이다. 또한, 메모리 셀 어레이(320)로는, 불휘발 메모리인 ReRAM을 상정(想定)한다.
[정보 처리 시스템에서의 기록 및 판독 처리]
호스트 컴퓨터(100)는, 기록을 행할 때에, 기록 커맨드와 이에 부수(付隨)되는 기록 데이터, 기록처(先) 페이지 어드레스 및 기록 페이지 수를 메모리 컨트롤러(200)에 대해 발행한다. 메모리 컨트롤러(200)의 제어부(210)는, 발행된 기록 커맨드를 해석하고, 이에 부수되는 기록 데이터, 기록처 페이지 어드레스 및 기록 페이지 수에 의거하여 메모리(300)에 대해 기록 리퀘스트를 요구한다. 메모리(300)의 메모리 디바이스 제어부(310)는, 이 리퀘스트에 의거하여 메모리 셀 어레이(320)에 대해 기록을 행한다.
한편, 판독할 때에는, 호스트 컴퓨터(100)는, 판독 커맨드와 이에 부수되는 판독처 페이지 어드레스 및 판독 페이지 수를 메모리 컨트롤러(200)에 대해 발행한다. 메모리 컨트롤러(200)의 제어부(210)는, 이 커맨드를 해석하여, 이에 부수되는 판독처 페이지 어드레스 및 판독 페이지 수에 의거하여 메모리(300)에 대해 판독 리퀘스트를 요구한다. 메모리(300)의 메모리 디바이스 제어부(310)는, 이 리퀘스트에 의거하여 메모리 셀 어레이(320)로부터 판독을 행하고, 판독한 데이터를 메모리 컨트롤러(200)에 대해 출력한다. 메모리 컨트롤러(200)의 제어부(210)는 이 출력된 데이터를 호스트 컴퓨터(100)에 대해 판독 데이터로서 출력한다.
[메모리 컨트롤러의 제어부의 구성]
도 2는, 본 기술의 제1의 실시의 형태에서의 제어부(210)의 구성례를 도시하는 도면이다. 이 제어부(210)는, 판독 제어부(211)와, 기록 제어부(212)와, ECC 처리부(213)와, 기록 회수 정보 유지부(214)와, 카운트부(215)와, 판단부(216)를 구비한다. 또한, 버스(207)는, 상기 제어부(210)의 각 부분을 상호 접속하는 것이다.
판독 제어부(211)는, 메모리(300)에 대한 데이터의 판독을 행하는 것이다. 이 판독 제어부(211)는, 호스트 컴퓨터(100)가 발행한 판독 커맨드에 의거하여 판독 리퀘스트를 생성하고, 메모리(300)에 대해 요구함에 의해 판독을 행한다.
기록 회수 정보 유지부(214)는, 메모리(300)에 대한 기록 회수를 기록 회수 정보로서 유지하는 것이다. 여기서, 기록 회수란, 메모리(300)의 메모리 셀 어레이(320)에서의 페이지 마다의 기록 회수이다. 기록 회수 정보 유지부(214)는, 메모리 셀 어레이(320)에서의 페이지 수와 동수의 기록 회수 정보를 유지한다. 이 기록 회수 정보 유지부(214)로서, 불휘발 메모리에 의해 구성된 메모리 장치를 사용할 수 있다. 또한, 기록 회수 정보 유지부(214)로서, SRAM 등의 휘발성 메모리에 의해 구성된 메모리 장치를 사용하여도 좋다. 이 경우에는, 메모리(300)의 메모리 셀 어레이(320) 내에 기록 회수 정보를 보존하는 영역을 마련할 필요가 있다. 그리고, 정보 처리 시스템의 기동시에, 메모리 컨트롤러(200)는, 메모리 셀 어레이(320)로부터 기록 회수 정보를 판독하여 기록 회수 정보 유지부(214)에 유지시키는 초기 동작을 행한다. 또한, 정보 처리 시스템의 정지할 때에는, 메모리 컨트롤러(200)는, 기록 회수 정보 유지부(214)로부터 기록 회수 정보를 판독하여 메모리 셀 어레이(320)에 보존할 필요가 있다.
판단부(216)는, 기록 회수 정보 유지부(214)에 유지된 기록 회수에 의거하여, 리프레시가 필요한지 여부를 판단하는 것이다. 여기서, 리프레시란, 메모리 셀 어레이(320)의 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 처리이다. 리프레시가 필요한지 여부의 판단은, 예를 들면, 페이지에서의 기록 회수가 소정의 임계치보다도 큰지의 여부에 의거하여 행할 수 있다.
기록 제어부(212)는, 메모리(300)에 대한 데이터의 기록을 행하는 것이다. 또한, 이 기록 제어부(212)는, 기록을 행할 때에 판단부(216)의 판단의 결과에 의해 리프레시가 필요해지는 경우에는 기록에 더하여 리프레시를 또한 행한다. 기록 제어부(212)는, 호스트 컴퓨터(100)가 발행한 기록 커맨드에 의거하여 기록 리퀘스트를 생성하여, 메모리(300)에 대해 요구함에 의해 기록을 행한다. 이 기록에 더하여 리프레시를 또한 행하는 경우에는, 기록 제어부(212)는, 기록 리퀘스트에 대신하여 후술하는 리프레시 기록 리퀘스트를 메모리(300)에 대해 요구한다. 이들의 리퀘스트에 의거하여, 메모리(300)에서의 기록 및 리프레시가 행하여진다.
카운트부(215)는, 기록 회수의 카운트를 행하여, 기록 회수 정보 유지부(214)에 유지된 기록 회수 정보의 갱신 및 초기화를 행하는 것이다. 이 카운트부(215)는, 기록 제어부(212)에서 리프레시를 수반하지 않는 기록이 행하여진 경우에는, 기록 회수의 카운트 및 기록 회수 정보의 갱신을 행한다. 이 기록 회수의 카운트는, 예를 들면, 다음의 순서에 의해 행할 수 있다. 우선, 카운트부(215)는, 기록 회수 정보 유지부(214)로부터 기록이 행하여진 페이지에 대응하는 기록 회수의 판독을 행한다. 다음에, 이 판독한 기록 회수에 값「1」을 가산함에 의해 카운트를 행한다. 이 카운트에 의거한 기록 회수는, 새로운 기록 회수 정보로서 기록 회수 정보 유지부(214)에 유지된다. 이에 의해, 기록 회수 정보의 갱신이 행하여진다.
한편, 기록 제어부(212)에서 기록에 더하여 리프레시가 행하여진 경우에는, 카운트부(215)는, 기록 회수 정보의 초기화를 행한다. 이 기록 회수 정보의 초기화는, 예를 들면, 값「0」을 새로운 기록 회수 정보로서, 기록 회수 정보 유지부(214)에 유지시킴에 의해 행할 수 있다.
ECC 처리부(213)는, 호스트 컴퓨터(100)로부터 출력된 기록 데이터에 패리티를 부가하여 ECC 부호로 하는 부호화와, ECC 부호로부터 원래의 데이터를 취출하는 복호를 행하는 것이다. 이 복호할 때, 데이터의 오류의 정정을 행한다. 메모리(300)에 대한 기록을 행할 때에는, 기록 제어부(212)는, ECC 처리부(213)에 대해, 기록 커맨드에 부수되는 기록 데이터의 ECC 부호화를 행하게 한다. 기록 제어부(212)는, 이 ECC 부호화한 기록 데이터를 새로운 기록 데이터로서 리퀘스트를 생성하고, 메모리(300)에 대해 요구한다. 또한, 메모리(300)에 대한 판독을 행할 때에는, 판독 제어부(211)는, 판독 리퀘스트에 의거하여 메모리(300)로부터 출력된 데이터에 대한 복호 및 오류의 정정을 ECC 처리부(213)에 행하게 한다. 그 후, 복호 및 오류의 정정이 된 데이터를 판독 데이터로서 호스트 컴퓨터(100)에 대해 출력한다.
또한, 이들 판독 제어부(211) 등의 메모리 컨트롤러(200) 내의 각 블록은, 전용의 하드웨어에 의해 구성되는 경우 및 소프트웨어에 의해 이들의 기능이 실현되는 경우의 어느 형태라도 좋다.
[메모리 셀의 구성]
도 3은, 본 기술의 제1의 실시의 형태에서의 메모리 셀의 구성례를 도시하는 도면이다. 동 도면은, 메모리 셀 어레이(320)인 ReRAM의 메모리 셀의 구성을 도시한 것이다. 동 도면에 도시한 바와 같이, 기억 소자(321) 및 MOSFET(322)에 의해 1비트의 메모리 셀(323)이 구성된다. 또한, MOSFET(322)는 기억 소자(321)를 구동하는 트랜지스터이다. 기억 소자(321)의 일단은 공통의 신호선인 플레이트선에 접속되고, 기억 소자(321)의 타단은 MOSFET(322)의 드레인 단자에 접속되어 있다. MOSFET(322)의 게이트 단자는 복수의 워드선 중의 1개에 접속되고, 소스 단자는 복수의 비트선 중의 1개에 접속되어 있다. 워드선 및 비트선은, 메모리 셀(323)을 구성하는 MOSFET(322)에 대해 XY 매트릭스 형상으로 배선되어 있다. 이것에 의해, 워드선 및 비트선으로부터 각각 1개를 선택하여 신호를 입력함에 의해, 1개의 메모리 셀(323)이 선택되어 데이터의 기록 또는 판독이 행하여진다. 예를 들면, 동 도면에서 좌단에 기재된 메모리 셀(323)을 선택하는 경우에는, 워드선(#1) 및 비트선(#1)을 선택한다.
기억 소자(321)는, 데이터를 기억하는 소자이다. 이 기억 소자(321)는, 인가된 전압의 극성에 의해 저항치가 변화한다. 예를 들면, 기억 소자(321)의 플레이트선에 접속된 단자를 기준으로 하여, 기억 소자(321)의 타(他) 단자에 정의 극성이 되는 전압(기록 전압)을 인가함에 의해 기억 소자(321)를 고저항의 상태로 할 수 있다. 역으로, 기억 소자(321)의 타 단자에 부의 극성이 되는 기록 전압을 인가함에 의해 기억 소자(321)를 저저항의 상태로 할 수 있다. 또한, 이후의 설명에서는, 고저항의 상태를 HRS(High Resistance State), 저저항의 상태를 LRS(Low Resistance State)라고 칭한다. 이들 2개의 상태를 논리값에 대응시켜서, 데이터의 기억이 행하여진다. 예를 들면, 기억 소자(321)가 LRS인 경우를 값「0」, 기억 소자(321)가 HRS인 경우를 값「1」로 할 수 있다. 또한, 기억 소자(321)의 LRS 및 HRS의 2개의 상태는, 전원의 공급이 없어도 유지된다.
동 도면의 좌단(左端)의 메모리 셀(323)을 예로 들어, 메모리 셀(323)에 대한 기록 방법에 관해 설명한다. 메모리 셀(323)에 값「1」을 기록할 때에는, 워드선(#1)에 온 전압을 인가하여 MOSFET(322)를 온 상태로 함과 함께, 비트선(#1)에 플레이트선에 대해 정의 극성이 되는 기록 전압을 인가한다. 이에 의해, 기억 소자(321)는, HRS가 되고, 값「1」이 기록된다. 한편, 메모리 셀(323)에 값「0」을 기록할 때에는, 워드선(#1)에 온 전압을 인가함과 함께, 비트선(#1)에 플레이트선에 대해 부의 극성이 되는 전압을 인가한다. 이에 의해, 기억 소자(321)는, LRS가 되고, 값「0」이 기록된다. 이와 같이 하여, 메모리 셀(323)에 대한 기록을 행할 수가 있다.
또한, 상술한 기록은, 복수의 메모리 셀(323)에 대해 동시에 행하여진다. 예를 들면, 워드선(#1)에 온 전압을 인가하고, 비트선(#1 내지 #n)에 대해 기록 데이터에 응한 극성의 전압을 인가한다. 이에 의해, 워드선(#1)에 접속된 n개의 메모리 셀(323)에 대해 기록을 행할 수가 있다. 이 한번의 기록 처리에 의해 기록 가능한 메모리 셀(323)의 수가 전술한 페이지 사이즈에 해당한다.
또한, 메모리 셀(323)에 대한 데이터의 판독은, 기억 소자(321)에 대해 기록 전압보다 낮은 전압을 인가하여 흐르는 전류를 측정하고, LRS 및 HRS를 판단함에 의해 행한다.
기억 소자(321)에는, 기록에 대해 수명(壽命)이 존재한다. 즉, 기록을 반복하면, 기억 소자(321) 자체가 파괴에 이른다. 그 때문에, 불필요한 기록을 줄일 필요가 있고, ReRAM에서는, 다음과 같은 기록 처리가 행하여진다. 우선, 기록에 앞서서 메모리 셀에 기억되어 있는 데이터를 판독하는 프리리드를 행한다. 기록 데이터와 프리리드에 의해 얻어진 데이터(이하, 프리리드 데이터라고 칭한다.)가 다른 경우에만 당해 메모리 셀에 대한 기록을 행한다. 이와 같은 기록 처리에 의해, 불필요한 기록을 막고, 기록에 기인하는 기억 소자(321)의 조기(早期)의 파괴를 회피할 수 있다.
한편, 기억 소자(321)는, 그 저항치가 시간의 경과와 함께 변화한다. 예를 들면, 값「1」을 기록하여 HRS로 하고 있던 기억 소자(321)의 저항치가 시간의 경과와 함께 저하되어 LRS 및 HRS를 판단하기 위한 임계치에 가까운 값으로 변화한다. 이와 같은 경우, 데이터의 판독을 행하여도, 사전에 기록한 데이터의 정상적인 판독을 할 수 없을 우려가 있다. 이와 같이, ReRAM에는, 상술한 기억 소자(321)의 파괴와는 별도로, 시간의 경과에 수반하는 기억 데이터의 파괴가 발생한다. 이것을 방지하기 위해, 기억 데이터의 재기록을 행하여 데이터의 재기록을 행할 필요가 있다. 그러나, 상술한 바와 같이, 프리리드 데이터와 기록 데이터가 다른 비트에만 기록이 행하여지기 때문에, 메모리 셀에 기억된 데이터를 재차 기록하여도, 이 데이터의 재기록은 실행되지 않는다. 그래서, 메모리 셀에 기억되어 있는 값을 반전시키는 처리인 리프레시를 행할 필요가 있다.
이 리프레시는 데이터의 기록 후에 당해 데이터의 파괴가 생기는 시간이 경과하기 전에 실행할 필요가 있다. 그러나, 같은 페이지에 속하는 메모리 셀이라도 기록 후의 경과 시간이 다른 상태가 발생한다. 프리리드 데이터와 기록 데이터가 다른 비트에만 기록이 행하여지기 때문이다. 예를 들면, 페이지에 대해 m회의 기록을 행한 경우, 각 비트에서의 기록 회수는 0 내지 m의 범위에서 흐트러지게 된다. 이와 같은 경우라도 기억 소자(321)에서의 기억 데이터의 파괴를 막기 위해, 페이지 마다의 기록 회수를 유지하고, 이 기록 회수가 소정의 임계치를 초과한 경우에, 당해 페이지에 대해 리프레시를 행한다. 이 임계치는, 페이지에서 메모리 셀의 데이터가 한번이라도 재기록되지 않은 경우를 상정하고, 데이터의 파괴에 이른 시간에 의거하여 설정할 필요가 있다. 이 리프레시를 행하기 위해, 메모리 컨트롤러(200)는, 리프레시 기록 리퀘스트를 메모리(300)에 대해 요구한다.
[기록 방법]
도 4는, 본 기술의 제1의 실시의 형태에서의 데이터의 기록을 도시하는 도면이다. 동 도면은, 메모리 디바이스 제어부(310)가 행하는 기록 처리인 기록 처리(401)를 도시한 것이다. 메모리 디바이스 제어부(310)는, 메모리 컨트롤러(200)로부터의 기록 리퀘스트에 의거하여 기록 처리(401)를 실행한다. 편의상, 페이지 사이즈는 8비트를 상정한다. 또한, 동 도면에서는, 기록 데이터를 W, 프리리드 데이터를 R로 표현하고 있다. 기록 처리(401)는, 세트 처리 및 리셋 처리에 의해 행할 수 있다. 여기서, 세트 처리란, 기록 대상의 비트의 값을 「1」로부터 「0」으로 변경하는 처리이다. 또한, 리셋 처리란, 기록 대상의 비트의 값을 「0」으로부터 「1」로 변경하는 처리이다. 이들은 모두 마스크 데이터에 의거하여 행하여진다. 이 마스크 데이터는, 페이지 사이즈와 같은 사이즈이고, 페이지에서의 세트 처리 또는 리셋 처리의 대상이 되는 비트의 위치를 특정하기 위한 데이터이다. 동 도면에서는, 마스크 데이터에서의 값「0」의 비트에 대응하는 페이지의 비트에 대해 세트 처리 또는 리셋 처리가 행하여지고, 마스크 데이터에서의 값「1」의 비트에 대응하는 페이지의 비트에 대해서는, 이들의 처리가 행하여지지 않는다.
우선, 기록 데이터 및 프리리드 데이터로부터 세트 처리용 마스크 데이터 및 리셋 처리용 마스크 데이터를 생성한다. 세트 처리용 마스크 데이터는, 프리리드 데이터의 비트 마다의 부정(不定) 연산의 결과와 기록 데이터에 대해 비트 마다의 논리합 연산을 행함에 의해 산출할 수 있다. 이것을 논리식으로 표시하면 다음 식과 같은 연산이 된다.
SData=W|∼R
단, SData는, 세트 처리용 마스크 데이터를 나타낸다. | 및 ∼는 각각 비트 마다의 논리합 연산 및 비트 마다의 부정 연산을 나타내는 연산자이다. 또한, 리셋 처리용 마스크 데이터는, 기록 데이터의 비트 마다의 부정 연산의 결과와 프리리드 데이터에 대해 비트 마다의 논리합 연산을 행함에 의해 산출할 수 있다. 이것을 논리식으로 표시하면 다음 식과 같은 연산이 된다.
RData=∼W|R
단, RData는, 리셋 처리용 마스크 데이터를 나타낸다.
이들의 마스크 데이터를 작성 후, 세트 처리 및 리셋 처리를 차례로 행한다. 이에 의해 기록 처리(401)를 실행할 수 있다.
[리프레시 기록 방법]
도 5는, 본 기술의 제1의 실시의 형태에서의 리프레시 기록을 도시하는 도면이다. 동 도면은, 메모리 디바이스 제어부(310)가 행하는 리프레시 기록의 처리를 도시한 것이다. 동 도면의 리프레시 기록은, 후술하는 반전 처리(402) 및 2번의 기록 처리(401)에 의해 구성된다. 이 중 반전 처리(402) 및 전단(前段)의 기록 처리(401)가 리프레시의 처리에 해당한다.
동 도면의 처리에 관해 설명한다. 우선, 메모리 디바이스 제어부(310)는, 프리리드를 행하여 프리리드 데이터를 취득한다. 다음에, 메모리 디바이스 제어부(310)는, 이 프리리드 데이터에 대해 반전 처리(402)를 실행한다. 이것은, 취득한 프리리드 데이터에 대해 비트 마다의 부정 연산을 행함에 의해 실행된다. 다음에, 메모리 디바이스 제어부(310)는, 반전 처리를 행한 프리리드 데이터를 기록 데이터로 하는 기록 처리(401)를 실행한다. 이에 의해, 페이지에서의 모든 메모리 셀의 데이터를 반전할 수 있다. 다음에 메모리 디바이스 제어부(310)는, 데이터가 반전된 메모리 셀에 대해 기록 처리(401)를 실행한다. 이에 의해, 소망하는 데이터의 기록을 행할 수가 있다. 또한, 이들의 기록 처리(401)에서 생성되는 세트 처리 및 리셋 처리용 마스크 데이터는, 동 도면에 도시한 바와 같다.
이와 같이, 본 기술의 실시의 형태에서는, 리프레시를 기록에 부수하여 행하는 방식을 채용하고 있다. 이에 대해, 기록과는 별도로 리프레시를 행하는 방식에서는, 리프레시를 위한 데이터의 판독, 판독한 데이터의 퇴피 및 재기록을 행하는 순서를 필요로 한다. 이 때문에, 데이터의 퇴피를 위한 일시 기억 영역이 필요해진다. 또한, 리프레시를 위해 프리리드 데이터를 반전시킨 데이터의 기록을 행한 후, 원래의 데이터를 재차 기록할 필요가 있기 때문에, 본 기술의 실시의 형태와 비교하여, 기록 회수가 증가한다.
[기록 처리]
도 6은, 본 기술의 제1의 실시의 형태에서의 기록 처리의 처리 순서의 한 예를 도시하는 도면이다. 호스트 컴퓨터로부터 기록 커맨드가 발행되면, 메모리 컨트롤러(200)는, 본 처리를 시작한다. 우선, 메모리 컨트롤러(200)는, 기록 대상이 되는 페이지의 기록 회수 정보를 취득한다(스텝 S901). 다음에, 메모리 컨트롤러(200)는, 취득한 기록 회수 정보에 의거하여, 기록 회수가 소정의 임계치보다 큰지의 여부에 관해 판단한다(스텝 S902). 그 결과, 기록 회수가 임계치보다 크지 않은 경우에는(스텝 S902 : No), 메모리 컨트롤러(200)는, 메모리(300)에 대해 기록 리퀘스트를 요구하여, 기록을 행한다(스텝 S903). 다음에, 메모리 컨트롤러(200)는, 기록 회수를 잉크리먼트하여, 새로운 기록 정보로서 기록 회수 정보 유지부(214)에 유지시켜서, 기록 정보를 갱신한다(스텝 S904). 그 후, 스텝 S908의 처리로 이행한다.
한편, 기록 회수가 임계치보다 큰 경우에는(스텝 S902 : Yes), 메모리 컨트롤러(200)는, 메모리(300)에 대해 리프레시 기록 리퀘스트를 요구하여, 리프레시 기록을 행한다(스텝 S905). 다음에, 메모리 컨트롤러(200)는, 값「0」의 기록 회수 정보를 기록하여 회수 정보 유지부에 유지시켜서, 기록 정보를 초기화하고(스텝 S906), 스텝 S908의 처리로 이행한다. 스텝 S908에서, 메모리 컨트롤러(200)는, 모든 페이지에 대해 기록 처리가 종료되었는지의 여부를 판단한다(스텝 S908). 그 결과, 모든 페이지에 관해 기록 처리가 종료된 경우에는(스텝 S908 : No), 메모리 컨트롤러(200)는, 기록 처리를 종료한다. 한편, 다음에 기록을 행하는 페이지가 존재하는 경우에는(스텝 S908 : Yes), 메모리 컨트롤러(200)는, 재차 스텝 S901부터의 처리를 실행한다.
이와 같이, 본 기술의 제1의 실시의 형태에 의하면, 페이지 마다의 기록 회수에 의거하여 리프레시가 필요한지 여부를 판단하여 리프레시를 행함에 의해, 페이지를 구성하는 모든 메모리 셀의 값이 반전되어, 메모리 셀의 데이터의 파괴를 막을 수 있다. 또한, 이 리프레시는, 기록 처리에 수반하여 행하여지기 때문에, 리프레시할 때의 메모리 셀에 기억된 데이터의 퇴피는 불필요하게 되어, 데이터 퇴피를 위한 일시 기억 장치를 삭제할 수 있다.
<2. 제2의 실시의 형태>
상술한 제1의 실시의 형태에서는, 메모리 셀의 데이터를 반전시킴에 의해 리프레시를 행하고 있다. 이에 대해, 본 기술의 제2의 실시의 형태에서는, 메모리 셀에 전비트 「0」 및 전비트「1」의 데이터를 차례로 기록함에 의해 리프레시를 행한다. 이에 의해, 리프레시 처리를 간략화할 수 있다.
[리프레시 기록 방법]
도 7은, 본 기술의 제2의 실시의 형태에서의 리프레시 기록을 도시하는 도면이다. 동 도면의 리프레시 기록은, 메모리 셀의 전(全) 비트에 값「0」을 기록하는 값「0」기록 처리(403), 메모리 셀의 전 비트에 값「1」을 기록하는 값「1」기록 처리(404) 및 기록 처리(401)에 의해 구성된다. 이 중 값「0」기록 처리(403) 및 값「1」기록 처리(404)가 본 기술의 제2의 실시의 형태에서의 리프레시의 처리에 해당한다. 동 도면의 처리에 관해 설명한다. 우선, 메모리 디바이스 제어부(310)는, 프리리드를 행하여 프리리드 데이터를 취득한다. 다음에, 메모리 디바이스 제어부(310)는, 값「0」기록 처리(403)를 실행한다. 이것은, 프리리드 데이터를 반전하여 세트 처리용 마스크 데이터를 생성하고, 이것을 이용하여 세트 처리를 행함에 의해 실행된다. 이에 의해 메모리 셀의 전 비트에 값「0」이 기록된다.
다음에, 메모리 디바이스 제어부(310)는, 값「1」기록 처리(404)를 실행한다. 이것은, 전 비트가 값「0」의 리셋 처리용 마스크 데이터를 이용하여 리셋 처리를 행함에 의해 실행된다. 이에 의해 메모리 셀의 전 비트에 값「1」이 기록된다. 다음에 메모리 디바이스 제어부(310)는, 전 비트에 값「1」이 기록된 메모리 셀에 대해 기록 처리(401)를 실행한다. 이에 의해, 소망하는 데이터의 기록을 행할 수가 있다. 또한, 이들의 기록 처리에서 생성되는 세트 처리 및 리셋 처리용 마스크 데이터는, 동 도면에 도시한 바와 같다. 이들 마스크 데이터의 생성은 비교적 용이하기 때문에, 도 5에서 설명한 리프레시 기록 리퀘스트와 비교하여, 간편한 처리로 할 수 있다. 또한, 도 7에서의 기록 처리(401)에서는, 리셋 처리를 생략하여도 좋다. 이 경우에는, 더욱 간편한 처리로 할 수 있다.
이 이외의 메모리 컨트롤러(200) 및 메모리(300)의 구성은 본 기술의 제1의 실시의 형태에서 설명한 메모리 컨트롤러(200) 및 메모리(300)와 마찬가지이기 때문에, 설명을 생략한다.
이와 같이, 본 기술의 제2의 실시의 형태에 의하면, 리프레시를 위한 마스크 데이터의 생성을 간략화할 수 있고, 간편한 처리에 의해 리프레시를 행할 수가 있다.
<3. 제3의 실시의 형태>
상술한 제1의 실시의 형태에서는, 리프레시의 제어를 메모리 컨트롤러(200)가 행하고 있다. 이에 대해, 본 기술의 제3의 실시의 형태에서는, 메모리(300)가 리프레시의 제어를 행한다. 이에 의해, 메모리 컨트롤러(200)에서의 처리를 간략화할 수 있다.
[메모리의 구성]
도 8은, 본 기술의 제3의 실시의 형태에서의 메모리(300)의 구성례를 도시하는 도면이다. 동 도면의 메모리(300)는, 메모리 디바이스 제어부(310) 및 메모리 셀 어레이(320)를 각각 메모리 디바이스 제어부(330) 및 메모리 셀 어레이(340)로 변경한 점에서, 도 1에서 설명한 메모리(300)와 다르다.
메모리 디바이스 제어부(330)는, 기록 제어부(332)와, 카운트부(335)와, 판단부(336)를 구비한다. 또한, 버스(339)는, 상기 메모리 디바이스 제어부(330)의 각 부분을 상호 접속하는 것이다.
판단부(336)는, 메모리 셀 어레이(340)에 유지된 기록 회수에 의거하여 전술한 리프레시가 필요한지 여부를 판단하는 것이다.
기록 제어부(332)는, 메모리 컨트롤러(200)가 요구한 기록 리퀘스트에 의거하여, 메모리 셀 어레이(340)에 대한 데이터의 기록을 행하는 것이다. 또한, 이 기록 제어부(332)는, 기록을 행할 때에 판단부(336)의 판단의 결과에 의해 리프레시가 필요해지는 경우에는, 리프레시 기록을 행한다. 이들의 메모리 셀 어레이(340)에 대한 기록 및 리프레시 기록은, 도 4 및 도 5에서 설명한 기록 처리 및 리프레시 기록 처리에 의해 행할 수 있다.
카운트부(335)는, 기록 회수의 카운트를 행하여, 카운트 후의 기록 회수에 의해 후술하는 메모리 셀 어레이(340)에 유지된 기록 회수 정보를 갱신하는 것이다.
[메모리 셀 어레이의 구성]
도 9는, 본 기술의 제3의 실시의 형태에서의 메모리 셀 어레이(340)의 구성례를 도시하는 도면이다. 동 도면은, 메모리 셀 어레이(340)의 구성을 모식적으로 도시한 것이고, 메모리 셀 어레이(340)는, 페이지 마다 데이터를 유지하는 데이터 영역(343)과, 기록 회수 정보를 유지하는 기록 회수 정보 유지 영역(344)을 구비한다.
또한, 이 이외의 메모리 컨트롤러(200) 및 메모리(300)의 구성은, 본 기술의 제1의 실시의 형태에서 설명한 메모리 컨트롤러(200) 및 메모리(300)와 마찬가지이기 때문에 설명을 생략한다. 또한, 기록 회수 정보 유지 영역(344)은, 특허청구의 범위에 기재된 기록 회수 정보 유지부의 한 예이다.
이와 같은 메모리(300)를 구비하는 시스템에서의 데이터의 기록에 관해 설명한다. 호스트 컴퓨터(100)로부터 기록 커맨드가 발행되면, 메모리 컨트롤러(200)는, 이에 의거한 기록 리퀘스트를 메모리(300)에 대해 요구한다. 메모리(300)의 메모리 디바이스 제어부(330)는, 요구된 리퀘스트에 의거하여 메모리 셀 어레이(340)에 대해 데이터의 기록을 행한다. 그 때, 대상이 되는 페이지에 관해 리프레시가 필요한지 여부를 판단하고, 리프레시가 필요한 경우에는, 리프레시 기록을 행한다. 이에 의해, 메모리 컨트롤러(200)는, 리프레시 처리에 개재하는 일 없이 기록 처리를 행할 수가 있다.
이와 같이, 본 기술의 제3의 실시의 형태에 의하면, 메모리(300)가 리프레시의 제어를 행한다. 이 때문에, 메모리 컨트롤러(200)에서의 리프레시를 위한 처리를 생략할 수 있고, 메모리 컨트롤러(200)의 처리를 간략화할 수 있다.
<4. 제4의 실시의 형태>
상술한 제1의 실시의 형태에서는, 불휘발 메모리에 의해 구성된 기억 장치에 의한 시스템을 상정하고 있다. 이에 대해, 본 기술의 제4의 실시의 형태에서는, 이 기억 장치에 웨어 레벨링 기능을 갖게 한 시스템을 상정한다. 이에 의해, 웨어 레벨링 기능을 갖는 시스템에서도 리프레시 처리를 행하여, 메모리 셀의 데이터의 파괴를 막을 수 있다.
[웨어 레벨링 처리]
웨어 레벨링 처리란, 액세스 단위인 페이지 마다의 기록 회수를 평준화하는 처리이다. 전술한 바와 같이 ReRAM의 기록에는 수명이 존재한다. 재기록 빈도가 높은 데이터가 특정한 페이지에 보존된 경우, 당해 페이지는 다른 페이지보다 기록 회수가 증가한다. 이 때문에, 당해 페이지의 메모리 셀은 다른 페이지에 대해 비교적 단시간에 기억 소자가 파괴되어, 보존되어 있던 데이터가 소실한다. 이것을 막아, 시스템의 신뢰성을 향상시키기 위해, 재기록 빈도가 높은 데이터가 특정한 페이지에 치우쳐서 보존되지 않도록 페이지 마다의 기록 회수의 평준화를 행한다. 구체적으로는, 페이지 마다의 기록의 누계 회수인 기록 누계 회수에 의거하여, 기록의 누계 회수가 많은 페이지와 기록의 누계 회수가 적은 페이지와의 사이에서 각각의 페이지에 기억된 데이터의 교체를 행한다. 이 데이터의 교체는, 대상이 되는 페이지에서, 일방의 페이지로부터 판독한 데이터를 타방의 페이지에 기록함에 의해 행할 수 있다.
[시스템의 구성]
도 10은, 본 기술의 제4의 실시의 형태에서의 제어부(210)의 구성례를 도시하는 도면이다. 동 도면의 제어부(210)는, 웨어 레벨링 제어부(217), 기록 누계 회수 정보 유지부(218) 및 누계 카운트부(219)를 또한 구비하는 점에서, 도 2에서 설명한 제어부(210)와 다르다. 이 이외의 메모리 컨트롤러(200) 및 메모리(300)의 구성은 본 기술의 제1의 실시의 형태에서 설명한 메모리 컨트롤러(200) 및 메모리(300)와 마찬가지이기 때문에, 설명을 생략한다.
기록 누계 회수 정보 유지부(218)는, 페이지 마다의 기록 누계 회수 정보를 유지하는 것이다.
누계 카운트부(219)는, 기록 누계 회수의 카운트를 행하는 것이다. 또한, 이 누계 카운트부(219)는, 카운트 후의 기록 누계 회수에 의한 기록 누계 회수 정보 유지부(218)에 유지된 기록 누계 회수 정보의 갱신도 행한다. 이 누계 카운트부(219)에서의 카운트는, 기록 제어부(212)에서 기록이 행하여진 때에 행하여지고, 예를 들면, 다음의 순서에 의해 행할 수 있다. 우선, 누계 카운트부(219)는, 기록 누계 회수 정보 유지부(218)로부터 기록이 행하여진 페이지에 대응하는 기록 누계 회수의 판독을 행한다. 다음에, 이 판독한 기록 누계 회수에 값「1」을 가산함에 의해 카운트를 행한다. 이 카운트에 의거한 기록 누계 회수는, 새로운 기록 누계 회수 정보로서 기록 누계 회수 정보 유지부(218)에 유지된다. 이에 의해, 기록 누계 회수 정보의 갱신이 행하여진다.
웨어 레벨링 제어부(217)는, 메모리(300)에 대해, 웨어 레벨링 처리를 행하는 것이다. 이 웨어 레벨링 처리는, 다음과 같이 행할 수 있다. 우선, 웨어 레벨링 제어부(217)는, 기록 누계 회수 정보 유지부(218)로부터 기록 누계 회수 정보를 판독하여, 페이지 마다의 기록 누계 회수를 비교하고, 기록 누계 회수가 많은 페이지 및 적은 페이지를 추출한다. 다음에, 웨어 레벨링 제어부(217)는, 판독 제어부(211)에 대해 이들의 페이지로부터의 데이터의 판독을 행하게 한다. 다음에, 웨어 레벨링 제어부(217)는, 판독된 데이터를 교체하여, 대상의 페이지에 대해 기록을 행한다. 이 기록은, 기록 제어부(212)에 의해 행하여진다. 이에 의해, 웨어 레벨링을 행할 수가 있다. 또한, 웨어 레벨링 제어부(217)는, 특허청구의 범위에 기재된 교체 제어부의 한 예이다.
판단부(216)는, 데이터를 교체할 때에도 기록 회수 정보 유지부(214)에 유지된 기록 회수에 의거한 리프레시가 필요한지 여부를 판단한다.
기록 제어부(212)는, 데이터 교체에서의 기록을 행할 때에도 판단부(216)의 판단의 결과에 의해 리프레시가 필요해지는 경우에는 기록에 더하여 리프레시를 또한 행한다.
카운트부(215)는, 데이터 교체에서의 기록이 행하여질 때에도 기록 회수의 카운트를 행하여, 기록 회수 정보 유지부(214)에 유지된 기록 회수 정보의 갱신 또는 초기화를 행한다.
[기록 처리]
도 11은, 본 기술의 제4의 실시의 형태에서의 기록 처리의 처리 순서의 한 예를 도시하는 도면이다. 호스트 컴퓨터로부터 기록 커맨드가 발행되면, 메모리 컨트롤러(200)는, 본 처리를 시작한다. 우선, 메모리 컨트롤러(200)는, 기록 대상이 되는 페이지의 기록 회수 정보 및 기록 누계 회수 정보를 취득한다(스텝 S951). 다음에, 메모리 컨트롤러(200)는, 기록 회수가 소정의 임계치보다 큰지의 여부에 관해 판단한다(스텝 S952). 그 결과, 기록 회수가 임계치보다 크지 않은 경우에는(스텝 S952 : No), 메모리 컨트롤러(200)는, 메모리(300)에 대해 기록 리퀘스트를 요구하고, 기록을 행한다(스텝 S953). 그 후, 메모리 컨트롤러(200)는, 기록 회수 정보를 갱신하고(스텝 S954), 스텝 S957의 처리로 이행한다.
한편, 기록 회수가 임계치보다 큰 경우에는(스텝 S952 : Yes), 메모리 컨트롤러(200)는, 메모리(300)에 대해 리프레시 기록 리퀘스트를 요구하고, 리프레시 기록을 행한다(스텝 S955). 그 후, 메모리 컨트롤러(200)는, 기록 회수 정보를 초기화하고(스텝 S956), 스텝 S957의 처리로 이행한다. 스텝 S957에서, 메모리 컨트롤러(200)는, 기록 누계 회수 정보를 갱신한다(스텝 S657). 다음에, 메모리 컨트롤러(200)는, 모든 페이지에 관해 기록 처리가 종료되었는지의 여부를 판단한다(스텝 S958). 그 결과, 모든 페이지에 관해 기록 처리가 종료된 경우에는(스텝 S958 : No), 메모리 컨트롤러(200)는, 기록 처리를 종료한다. 한편, 다음에 기록을 행하는 페이지가 존재하는 경우에는(스텝 S958 : Yes), 메모리 컨트롤러(200)는, 재차 스텝 S951로부터의 처리를 실행한다.
이와 같이, 본 기술의 제4의 실시의 형태에 의하면, 웨어 레벨링 처리에 수반하는 기록에서 리프레시를 행함에 의해, 웨어 레벨링 기능을 갖는 시스템에서도 메모리 셀의 데이터의 파괴를 막을 수 있다.
<변형례>
[제1의 변형례]
상술한 제1의 실시의 형태 및 제2의 실시의 형태에서는, 리프레시 기록 리퀘스트에 의해 리프레시를 행하고 있다. 이에 대해, 복수의 리퀘스트를 조합시켜서, 리프레시를 행하여도 좋다. 도 5에서 설명한 리프레시를 예로 들어 설명한다. 리프레시 대상의 페이지로부터 데이터를 판독하기 위한 판독 리퀘스트 및 판독 데이터를 반전한 데이터를 기록하기 위한 기록 리퀘스트의 2개의 리퀘스트에 의해, 리프레시를 행하는 방식을 취할 수 있다. 마찬가지로, 도 7에서는, 전 비트가 값「0」의 데이터의 기록을 요구하는 리퀘스트 및 전 비트가 값「1」의 데이터의 기록을 요구하는 리퀘스트의 2개의 리퀘스트에 의해, 리프레시를 행하는 방식을 취할 수 있다. 이에 의해, 리프레시 기록의 리퀘스트의 처리를 생략할 수 있고, 메모리 디바이스 제어부(310)에서의 처리를 간략화할 수 있다.
[제2의 변형례]
상술한 실시의 형태에서는, 페이지 단위로 액세스하는 불휘발 메모리를 사용하고, 페이지 마다 기록 회수를 관리하여 리프레시를 행하고 있다. 이에 대해, 복수의 페이지에 의해 구성되는 블록을 단위로 하여 기록 회수를 관리하여 리프레시를 행하여도 좋다. 예를 들면, 2K바이트의 페이지 사이즈에 대해, 블록 사이즈를 128K바이트로 하여 기록 및 리프레시를 행할 수가 있다. 이에 의해, 메모리(300)에 기억하는 데이터의 사이즈에 맞추어서 기록 등의 처리에서의 데이터의 사이즈를 변경할 수 있고, 시스템의 편리성을 향상시킬 수 있다.
[제3의 변형례]
상술한 실시의 형태에서는, 판단부(216) 또는, 판단부(336)에서 리프레시가 필요한지 여부의 판단을 행할 때의 임계치를 메모리(300)에서의 모든 영역에서 공통의 값으로 하고 있다. 이에 대해 메모리(300)에서의 기억 영역을 분할하여 각각의 영역에서 다른 임계치를 설정하여 판단을 행하여도 좋다. 그리고, 기록의 발생 빈도가 높은 데이터 및 기록의 발생 빈도가 낮은 데이터를 각각 다른 영역에 기억시켜서 관리한다. 이 때, 기록의 발생 빈도가 낮은 데이터를 유지하는 영역에는, 기록의 발생 빈도가 높은 데이터를 유지하는 영역보다도 작은 임계치를 설정한다. 기록의 발생 빈도가 낮은 데이터는, 기록이 행하여지는 시간 간격이 길어지기 때문에, 보다 적은 기록 회수에 의해 리프레시를 행할 필요가 있기 때문에이다. 이에 의해, 데이터의 기록 빈도에 응한 리프레시를 행할 수가 있고, 시스템의 신뢰성을 향상시킬 수 있다.
[제4의 변형례]
상술한 실시의 형태에서는, ECC 처리부(213)에서 동일한 오류 정정 처리의 방식을 사용하고 있다. 이에 대해, 복수의 오류 정정 처리의 방식을 갖는 구성으로 하고, 필요에 응하여 이들을 교체하여 사용하여도 좋다. 이 때, 사용하는 오류 정정 처리의 오류 정정 능력에 응하여 리프레시가 필요한지 여부의 판단을 행할 때의 임계치를 변경할 수 있다. 예를 들면, 오류 정정 능력이 높은 방식을 사용할 때에는, 임계치를 보다 큰 값으로 변경한다. 리프레시를 실행하는 간격이 길어짐에 의해 메모리 셀에서 데이터의 파괴가 발생하였다고 하여도, 높은 오류 정정 능력을 갖는 오류 정정 처리에 의해, 판독 데이터의 오류의 정정이 가능해지기 때문이다. 이에 의해, 리프레시에 수반하는 기록 회수를 삭감할 수 있고, 시스템의 신뢰성을 향상할 수 있다.
이상과 같이, 본 기술의 실시의 형태에 의하면, 데이터의 퇴피를 행하는 일 없이 리프레시를 행하여, 불휘발 메모리에서의 데이터의 파괴를 막을 수 있다.
또한, 상술한 실시의 형태는 본 기술을 구현화하기 위한 한 예를 나타낸 것이고, 실시의 형태에서의 사항과, 특허청구의 범위에서의 발명 특정 사항은 각각 대응 관계를 갖는다. 마찬가지로, 특허청구의 범위에서의 발명 특정 사항과, 이것과 동일 명칭을 붙인 본 기술의 실시의 형태에서의 사항은 각각 대응 관계를 갖는다. 단, 본 기술은 실시의 형태로 한정되는 것이 아니고, 그 요지를 일탈하지 않는 범위에서 실시의 형태에 여러가지의 변형을 시행함에 의해 구현화할 수 있다.
또한, 상술한 실시의 형태에서 설명한 처리 순서는, 이들 일련의 순서를 갖는 방법으로서 파악하여도 좋고, 또한, 이들 일련의 순서를 컴퓨터에 실행시키기 위한 프로그램 내지 그 프로그램을 기억하는 기록 매체로서 파악하여도 좋다. 이 기록 매체로서, 예를 들면, CD(Compact Disc), MD(MiniDisc), DVD(Digital Versatile Disc), 메모리 카드, 블루 레이 디스크(Blu-ray(등록상표) Disc) 등을 이용할 수 있다.
또한, 본 명세서에 기재된 효과는 어디까지나 예시이고, 한정되는 것이 아니고, 또한, 다른 효과가 있어도 좋다.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1) 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 메모리 컨트롤러.
(2) 상기 기록 회수 정보 유지부는, 상기 페이지 마다 상기 기록 회수 정보를 유지하는 상기 (1)에 기재된 메모리 컨트롤러.
(3) 상기 기록 회수 정보 유지부는, 복수의 상기 페이지로 이루어지는 블록마다 상기 기록 회수 정보를 유지하는 상기 (1)에 기재된 메모리 컨트롤러.
(4) 상기 판단부는, 상기 유지된 상기 기록 회수 정보가 소정의 임계치보다도 큰 경우에 상기 리프레시가 필요하다고 판단하는 상기 (1)부터 (3)의 어느 하나에 기재된 메모리 컨트롤러.
(5) 상기 기록 제어부는, 상기 페이지에 기억되어 있는 데이터의 판독을 행하여 당해 판독한 데이터의 각 비트의 값을 반전시킨 데이터를 상기 페이지에 기록함에 의해 상기 리프레시를 행하는 상기 (1)부터 (4)의 어느 하나에 기재된 메모리 컨트롤러.
(6) 상기 기록 제어부는, 전 비트가 동일한 값인 페이지 사이즈의 제1의 데이터와 상기 제1의 데이터의 전 비트를 반전시킨 제2의 데이터를 상기 페이지에 대해 차례로 기록함에 의해 상기 리프레시를 행하는 상기 (1)부터 (4)의 어느 하나에 기재된 메모리 컨트롤러.
(7) 상기 기록 회수의 카운트를 행하여, 상기 기록 제어부에서 상기 리프레시를 수반하지 않는 상기 기록이 행하여진 경우에는 상기 카운트에 의거한 상기 기록 회수에 의해 상기 유지된 상기 기록 회수 정보를 갱신하고, 상기 기록 제어부에서 상기 리프레시를 수반하는 상기 기록이 행하여진 경우에는 상기 유지된 상기 기록 회수 정보를 초기화하는 카운트부를 또한 구비하는 상기 (1)부터 (6)의 어느 하나에 기재된 메모리 컨트롤러.
(8) 상기 페이지 마다의 기록의 누계 회수인 기록 누계 회수 정보를 유지하는 기록 누계 회수 정보 유지부와,
상기 유지된 상기 기록 누계 회수 정보에 의거하여 기록의 누계 회수가 많은 페이지와 기록의 누계 회수가 적은 페이지와의 사이에서 일방의 페이지로부터 판독한 데이터를 타방의 페이지에 기록하는 데이터 교체를 제어하는 데이터 교체 제어부와,
상기 기록의 누계 회수의 카운트를 행하여, 당해 카운트에 의거한 상기 기록의 누계 회수에 의해 상기 유지된 상기 기록 누계 회수 정보를 갱신하는 누계 카운트부를 더 구비하고,
상기 판단부는, 상기 리프레시가 필요한지 여부의 판단을 상기 데이터 교체할 때에 또한 행하는 상기 (7)에 기재된 메모리 컨트롤러.
(9) 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와,
상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 기억 장치.
(10) 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와,
상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 기억 장치와,
상기 기억 장치에 액세스하는 호스트 컴퓨터를 구비하는 정보 처리 시스템.
(10) 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단 순서와,
상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어 순서를 구비하는 메모리의 제어 방법.
100 : 호스트 컴퓨터
109, 309 : 메모리 컨트롤러 인터페이스
110 : 프로세서
200 : 메모리 컨트롤러
208 : 메모리 인터페이스
209 : 호스트 인터페이스
210 : 제어부
211 : 판독 제어부
212, 332 : 기록 제어부
213 : ECC 처리부
214 : 기록 회수 정보 유지부
215, 335 : 카운트부
216, 336 : 판단부
217 : 웨어 레벨링 제어부
218 : 기록 누계 회수 정보 유지부
219 : 누계 카운트부
300 : 메모리
310 : 메모리 디바이스 제어부
320, 340 : 메모리 셀 어레이
321 : 기억 소자
322 : MOSFET
323 : 메모리 셀
330 : 메모리 디바이스 제어부
343 : 데이터 영역
344 : 기록 회수 정보 유지 영역

Claims (11)

  1. 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
    상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
    상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 기록 회수 정보 유지부는, 상기 페이지 마다 상기 기록 회수 정보를 유지하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 기록 회수 정보 유지부는, 복수의 상기 페이지로 이루어지는 블록마다 상기 기록 회수 정보를 유지하는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제1항에 있어서,
    상기 판단부는, 상기 유지된 상기 기록 회수 정보가 소정의 임계치보다도 큰 경우에 상기 리프레시가 필요하다고 판단하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제1항에 있어서,
    상기 기록 제어부는, 상기 페이지에 기억되어 있는 데이터의 판독을 행하여 당해 판독한 데이터의 각 비트의 값을 반전시킨 데이터를 상기 페이지에 기록함에 의해 상기 리프레시를 행하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 제1항에 있어서,
    상기 기록 제어부는, 전 비트가 동일한 값인 페이지 사이즈의 제1의 데이터와 상기 제1의 데이터의 전 비트를 반전시킨 제2의 데이터를 상기 페이지에 대해 차례로 기록함에 의해 상기 리프레시를 행하는 것을 특징으로 하는 메모리 컨트롤러.
  7. 제1항에 있어서,
    상기 기록 회수의 카운트를 행하여, 상기 기록 제어부에서 상기 리프레시를 수반하지 않는 상기 기록이 행하여진 경우에는 상기 카운트에 의거한 상기 기록 회수에 의해 상기 유지된 상기 기록 회수 정보를 갱신하고, 상기 기록 제어부에서 상기 리프레시를 수반하는 상기 기록이 행하여진 경우에는 상기 유지된 상기 기록 회수 정보를 초기화하는 카운트부를 또한 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제7항에 있어서,
    상기 페이지 마다의 기록의 누계 회수인 기록 누계 회수 정보를 유지하는 기록 누계 회수 정보 유지부와,
    상기 유지된 상기 기록 누계 회수 정보에 의거하여 기록의 누계 회수가 많은 페이지와 기록의 누계 회수가 적은 페이지와의 사이에서 일방의 페이지로부터 판독한 데이터를 타방의 페이지에 기록하는 데이터 교체를 제어하는 데이터 교체 제어부와,
    상기 기록의 누계 회수의 카운트를 행하여, 당해 카운트에 의거한 상기 기록의 누계 회수에 의해 상기 유지된 상기 기록 누계 회수 정보를 갱신하는 누계 카운트부를 더 구비하고,
    상기 판단부는, 상기 리프레시가 필요한지 여부의 판단을 상기 데이터 교체할 때에 또한 행하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와,
    상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
    상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
    상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 것을 특징으로 하는 기억 장치.
  10. 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리와,
    상기 불휘발 메모리의 기록 회수인 기록 회수 정보를 유지하는 기록 회수 정보 유지부와,
    상기 유지된 상기 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단부와,
    상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어부를 구비하는 기억 장치와,
    상기 기억 장치에 액세스하는 호스트 컴퓨터를 구비하는 것을 특징으로 하는 정보 처리 시스템.
  11. 페이지 사이즈에 의해 분할된 페이지를 단위로 하여 액세스되는 불휘발 메모리의 기록 회수인 기록 회수 정보에 의거하여 상기 페이지를 구성하는 모든 메모리 셀의 값을 반전시키는 리프레시가 필요한지 여부를 판단하는 판단 순서와,
    상기 페이지에 대해 기록을 행할 때에 상기 판단의 결과에 의해 상기 리프레시가 필요해지는 경우에는 상기 기록에 더하여 상기 리프레시를 또한 행하는 기록 제어 순서를 구비하는 것을 특징으로 하는 메모리의 제어 방법.
KR1020177006320A 2014-10-31 2015-10-06 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법 Withdrawn KR20170078592A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014223312 2014-10-31
JPJP-P-2014-223312 2014-10-31
PCT/JP2015/078267 WO2016067846A1 (ja) 2014-10-31 2015-10-06 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Publications (1)

Publication Number Publication Date
KR20170078592A true KR20170078592A (ko) 2017-07-07

Family

ID=55857190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177006320A Withdrawn KR20170078592A (ko) 2014-10-31 2015-10-06 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법

Country Status (4)

Country Link
US (1) US9978448B2 (ko)
JP (1) JP6497393B2 (ko)
KR (1) KR20170078592A (ko)
WO (1) WO2016067846A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6765331B2 (ja) * 2017-03-24 2020-10-07 キオクシア株式会社 メモリシステム
JP6826066B2 (ja) * 2018-03-19 2021-02-03 株式会社東芝 管理装置、情報処理装置およびメモリ制御方法
US10475519B2 (en) 2018-03-23 2019-11-12 Micron Technology, Inc. Methods for detecting and mitigating memory media degradation and memory devices employing the same
US10672486B2 (en) 2018-08-21 2020-06-02 Micron Technology, Inc. Refreshing data stored at a memory component based on a memory component characteristic component
US11244717B2 (en) 2019-12-02 2022-02-08 Micron Technology, Inc. Write operation techniques for memory systems
JP2021179672A (ja) 2020-05-11 2021-11-18 ソニーセミコンダクタソリューションズ株式会社 メモリモジュール
US11579797B2 (en) * 2021-04-29 2023-02-14 Micron Technology, Inc. Memory sub-system refresh
CN114333940B (zh) * 2021-11-22 2025-06-13 腾讯科技(深圳)有限公司 存储器的刷新方法、装置、计算机设备和存储介质
CN115954026B (zh) * 2023-03-10 2023-07-28 长鑫存储技术有限公司 刷新次数确定方法及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288614A (ja) * 1996-04-22 1997-11-04 Mitsubishi Electric Corp 半導体集積回路装置、半導体記憶装置およびそのための制御回路
JP4335659B2 (ja) 2003-12-19 2009-09-30 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP5049733B2 (ja) * 2007-10-17 2012-10-17 株式会社東芝 情報処理システム
US7924628B2 (en) * 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
US8799549B2 (en) * 2009-02-13 2014-08-05 Infortrend Technology, Inc. Method for transmitting data between two computer systems
US9396132B2 (en) * 2012-01-12 2016-07-19 Sony Corporation Storage control device and system to improve data retention in variable resistance memory cells
JP5853906B2 (ja) * 2012-08-24 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法

Also Published As

Publication number Publication date
WO2016067846A1 (ja) 2016-05-06
JPWO2016067846A1 (ja) 2017-08-10
JP6497393B2 (ja) 2019-04-10
US20170316826A1 (en) 2017-11-02
US9978448B2 (en) 2018-05-22

Similar Documents

Publication Publication Date Title
KR20170078592A (ko) 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법
CN111078131B (zh) 使用交叉写入分开晶片平面
CN103853582B (zh) 闪存更新方法
CN107799150B (zh) 3d nand闪存的错误缓解
US9864545B2 (en) Open erase block read automation
KR20220104240A (ko) 사전 판독 및 판독 임계 전압 최적화
US10481809B2 (en) Read disturb compensation using weighted programming patterns
KR20220089854A (ko) Ufs 장치 및 ufs 장치의 동작 방법
KR20240115798A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN105489242B (zh) 数据储存器件及其操作方法
US11449421B2 (en) Memory system, memory controller and method for minimizing data loss using recovery operations in sudden power loss events
US9430159B2 (en) Non-volatile memory devices and controllers
US11237976B2 (en) Memory system, memory controller and meta-information storage device
US20140301132A1 (en) Storage control device, storage device, information processing system, and processing method thereof
US20200233604A1 (en) Information processing apparatus, storage control apparatus, and recording medium
CN111797036A (zh) 存储器系统、存储器控制器及其操作方法
CN113936721B (zh) 存储器系统、存储器装置和操作存储器装置的方法
CN113741799B (zh) 存储器装置
US10073685B2 (en) Methods of system optimization by over-sampling read
US20250013529A1 (en) Data protection with time-varying in-situ data refresh
KR102246843B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102462829B1 (ko) Nand 플래시 메모리의 보안 카피-백 프로그램 방법
KR20210051644A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20090110648A (ko) 플래시 메모리로 데이터를 기록하는 방법과 플래시메모리에 기록된 데이터를 읽는 방법 및 플래시 메모리시스템
KR101653293B1 (ko) 플래시 메모리의 재생 방법 및 이에 관한 메모리 컨트롤러

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20170307

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination