JP6711281B2 - メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 - Google Patents

メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 Download PDF

Info

Publication number
JP6711281B2
JP6711281B2 JP2016570488A JP2016570488A JP6711281B2 JP 6711281 B2 JP6711281 B2 JP 6711281B2 JP 2016570488 A JP2016570488 A JP 2016570488A JP 2016570488 A JP2016570488 A JP 2016570488A JP 6711281 B2 JP6711281 B2 JP 6711281B2
Authority
JP
Japan
Prior art keywords
write time
prediction information
memory
time prediction
write
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.)
Expired - Fee Related
Application number
JP2016570488A
Other languages
English (en)
Other versions
JPWO2016117190A1 (ja
Inventor
石井 健
健 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JPWO2016117190A1 publication Critical patent/JPWO2016117190A1/ja
Application granted granted Critical
Publication of JP6711281B2 publication Critical patent/JP6711281B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/44Indication or identification of errors, e.g. for repair
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Description

本技術は、メモリコントローラに関する。詳しくは、不揮発メモリに対するデータの書込みおよび検証を行うメモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法に関する。
従来、情報処理装置において揮発メモリであるDRAM(Dynamic Random Access Memory)や不揮発メモリ(nonvolatile memory)等のメモリにより構成された記憶装置が使用されている。この記憶装置においては、情報処理装置を構成するホストコンピュータが発行したコマンドに基づいて、データのアクセスが行われる。情報処理装置の処理能力を高めるため、発行されたコマンドを高速に処理可能な記憶装置が要求されている。
不揮発メモリは、データの書込み後に書込みが正常に行われたか否かを判定するベリファイとベリファイの結果に基づく再書込みとを必要とする。このような不揮発メモリには、NAND型フラッシュメモリ、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)およびMRAM(Magnetoresistive RAM)などが該当する。これらベリファイおよび再書込みの回数は、メモリセル毎に異なる回数になる。例えば、メモリセルにおけるデータを記憶する記憶素子の物性はメモリセル毎に異なっており、ベリファイの回数もメモリセル毎に異なることとなる。また、不揮発メモリは、書込みにより記憶素子が損傷を受けて劣化する。そのため、書込みの頻度が高いメモリセルほどベリファイの回数が増加する。これにより、アクセス単位であるページ毎の書込み時間もページ毎に変化する。その結果、このような不揮発メモリを使用した記憶装置に対して発行された複数の書込みコマンドについては、それぞれ書込みに要する時間が異なることとなる。なお、ベリファイおよび再書込みの回数が所定の限度数に達しても、書込みが正常に行われていない場合には、当該ページにおける書込みは不成功と判断される。この場合、例えば、エラー処理が行われる。
一方、DRAMの一種であるSDRAM(Synchronous DRAM)には、書込みの際にメモリセルのアクティベートやプリチャージによる待ち時間が存在する。このため、SDRAMにおいては、メモリセルにデータを書き込むために要する時間は一定であるものの、待ち時間を含めた書込みコマンドの実行時間がコマンド毎に異なることとなる。このようなSDRAMを複数使用した記憶装置において、複数発行された書込みコマンドの処理を高速化するシステムが提案されている。例えば、発行されたコマンドを保持するコマンド履歴バッファとコマンドの発行順序を変更する順序制御部とを有するメモリコントローラを備えるシステムが提案されている(例えば、特許文献1参照。)。
特開2014−154119号公報
上述の従来技術では、SDRAMを複数使用する記憶装置を想定して、コマンドの発行順序の変更制御を行っている。具体的には、過去に発行されたコマンドによりプリチャージ等の待ち時間が発生しているSDRAMが存在する場合に、このSDRAM以外のSDRAMに対するコマンドを先に発行するように発行順序が変更される。このように、上述の従来技術によれば、複数のSDRAMに対するコマンドの処理時間を短縮することができる。しかしながら、この従来技術は、プリチャージ等の所定の待ち時間が発生するSDRAMを想定したものである。上述のReRAMのような書込み時間がアクセス単位毎に異なるメモリを使用した記憶装置においては、書込み時間を短縮することができないという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、アクセス単位であるページ毎の書込み時間が一定でないメモリを使用した記憶装置において、書込み時間を短縮することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を上記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、上記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストを上記書込み時間予測情報に基づいて優先して選択するリクエスト選択部とを具備するメモリコントローラである。これにより、複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストが優先して選択されるという作用をもたらす。
またこの第1の側面において、上記書込み時間予測情報を生成して上記書込み時間予測情報保持部に保持させる書込み時間予測情報生成部をさらに具備してもよい。これにより、書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記書込み時間予測情報生成部は、上記書込み時間を上記複数のメモリモジュール毎に計測して上記書込み時間予測情報として上記書込み時間予測情報保持部に保持させてもよい。これにより、メモリモジュール毎に計測された書込み時間により書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記書込み時間予測情報生成部は、書込みを行った上記複数のメモリモジュールからデータの読出しを行い当該読み出したデータと上記書込みに係る書込みデータとが一致するか否かを判断するベリファイの回数を上記複数のメモリモジュールの各々について計測して上記書込み時間予測情報として上記書込み時間予測情報保持部に保持させてもよい。これにより、メモリモジュール毎に計測されたベリファイの回数により書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記書込み時間予測情報生成部は、上記複数のメモリモジュールにおける書込み回数を上記複数のメモリモジュールの各々について計測して上記書込み時間予測情報として上記書込み時間予測情報保持部に保持させてもよい。これにより、メモリモジュール毎に計測された書込み回数により書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記複数のメモリモジュールから読み出した読出しデータの誤りの検出および訂正を行う誤り訂正部をさらに具備し、上記書込み時間予測情報生成部は、上記訂正された上記読出しデータにおける上記誤り訂正部によって誤りが訂正されたビット数を上記複数のメモリモジュールの各々について計測して上記書込み時間予測情報として上記書込み時間予測情報保持部に保持させてもよい。誤りが訂正されたビットに対応するメモリセルは記憶素子が過度に損傷している可能性がある。この場合には、ベリファイ回数が増加するため、誤りが訂正されたビット数により書込み時間を予測することができる。これにより、メモリモジュール毎に計測された誤りが訂正されたビット数により書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記書込み時間予測情報生成部は、上記複数のメモリモジュールにおける書込み不成功回数を上記複数のメモリモジュールの各々について計測して上記書込み時間予測情報として上記書込み時間予測情報保持部に保持させてもよい。これにより、メモリモジュール毎に計測された書込み不成功回数により書込み時間予測情報が生成されるという作用をもたらす。
またこの第1の側面において、上記複数のメモリモジュール毎に設けられて上記複数のメモリモジュールの各々についての上記書込みリクエストを保持して先入れ先出しする複数のリクエストキューをさらに具備し、上記リクエスト選択部は、上記複数のリクエストキューの先頭に保持された上記書込みリクエストに対して上記書込み時間予測情報に基づく上記選択を行ってもよい。これにより、リクエストキューの先頭に保持された書込みリクエストが選択されるという作用をもたらす。
またこの第1の側面において、上記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、上記書込み時間予測情報保持部は、上記ページ毎に上記書込み時間予測情報を保持してもよい。これにより、ページ毎の書込み時間予測情報に基づいて書込みリクエストが選択されるという作用をもたらす。
またこの第1の側面において、上記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、上記書込み時間予測情報保持部は、上記複数のページからなるブロック毎に上記書込み時間予測情報を保持してもよい。これにより、ブロック毎の書込み時間予測情報に基づいて書込みリクエストが選択されるという作用をもたらす。
またこの第1の側面において、データを記憶する記憶領域が複数のメモリバンクにより構成されたメモリモジュールにおける上記複数のメモリバンクに対する書込み時間を予測するための書込み時間予測情報を上記複数のメモリバンクの各々について保持する書込み時間予測情報保持部と、上記複数のメモリバンクの各々について書込みを要求する複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストを上記書込み時間予測情報に基づいて優先して選択するリクエスト選択部とを具備してもよい。これにより、メモリバンクを有するメモリモジュールにおいて、複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストが優先して選択されるという作用をもたらす。
また、本技術の第2の側面は、複数のメモリモジュールと、上記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を上記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、上記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストを上記書込み時間予測情報に基づいて優先して選択するリクエスト選択部とを具備する記憶装置である。これにより、複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストが優先して選択されるという作用をもたらす。
また、本技術の第3の側面は、複数のメモリモジュールと、上記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を上記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、上記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストを上記書込み時間予測情報に基づいて優先して選択するリクエスト選択部とを備える記憶装置と、上記記憶装置にアクセスするホストコンピュータとを具備する情報処理システムである。これにより、複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストが優先して選択されるという作用をもたらす。
また、本技術の第4の側面は、複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い書込み時間が予測される上記書込みリクエストを上記書込み時間を予測するための書込み時間予測情報に基づいて優先して選択するリクエスト選択手順を具備するメモリの制御方法である。これにより、複数の書込みリクエストのうちより長い上記書込み時間が予測される上記書込みリクエストが優先して選択されるという作用をもたらす。
本技術によれば、ページ毎の書込み時間が一定でないメモリにおいて、書込み時間を短縮することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの構成例を示す図である。 本技術の実施の形態におけるメモリモジュールの構成例を示す図である。 本技術の第1の実施の形態におけるメモリ300の構成例を示す図である。 本技術の実施の形態におけるメモリセルの構成例を示す図である。 本技術の第1の実施の形態におけるメモリアクセス制御部250の構成例を示す図である。 本技術の第1の実施の形態における書込み時間予測情報生成部258の構成例を示す図である。 本技術の第1の実施の形態における書込み時間予測情報を示す図である。 本技術の第1の実施の形態における書込みリクエスト選択処理を示す図である。 本技術の第1の実施の形態におけるコマンド受信処理の処理手順の一例を示す図である。 本技術の第1の実施の形態における書込みリクエスト出力処理の処理手順の一例を示す図である。 本技術の第1の実施の形態におけるレスポンス入力処理の処理手順の一例を示す図である。 本技術の第1の実施の形態における書込み時間計測開始処理の処理手順の一例を示す図である。 本技術の第1の実施の形態における書込み時間計測終了処理の処理手順の一例を示す図である。 本技術の第2の実施の形態における書込み時間予測情報を示す図である。 本技術の第3の実施の形態における書込み時間予測情報を示す図である。 本技術の第4の実施の形態におけるメモリ300の構成例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(ページ毎の書込み時間予測情報を使用する場合の例)
2.第2の実施の形態(ブロック毎の書込み時間予測情報を使用する場合の例)
3.第3の実施の形態(メモリモジュール毎の書込み時間予測情報を使用する場合の例)
4.第4の実施の形態(メモリバンクを有するメモリモジュールにおいてページまたはブロック毎の書込み時間予測情報を使用する場合の例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とを備える。なお、メモリコントローラ200およびメモリ300は、記憶装置を構成する。
ホストコンピュータ100は、情報処理システムにおける各種の処理を行うものである。このホストコンピュータ100は、メモリコントローラ200を介して、メモリ300に対して書込みまたは読出し等のコマンドを発行してアクセスを行う。信号線101は、ホストコンピュータ100とメモリコントローラ200とを電気的に接続するものである。
メモリコントローラ200は、メモリ300を制御するものである。このメモリコントローラ200は、ホストコンピュータ100から発行された書込みおよび読出しコマンドを解釈し、これに基づく書込みおよび読出しリクエストをメモリ300に対して要求する。
メモリ300は、データを記録するものである。メモリコントローラ200から要求されたリクエストに基づいて、このデータに対するアクセスが行われる。この際、メモリ300とメモリコントローラ200との間でデータの転送が行われる。なお、メモリ300は、メモリモジュールにより構成されている。ここで、メモリモジュールとは、データを記憶するモジュールであり、単一のまたは複数のメモリチップ等により構成されたモジュールである。信号線201は、メモリコントローラ200とメモリ300とを電気的に接続するものである。
ホストコンピュータ100は、書込みを行う際に、書込みコマンドとこれに付随する書込みデータをメモリコントローラ200に対して発行する。ここで、書込みコマンドとは、書込みを表すオペコード、書込み先アドレスおよび書込みデータ数により構成されたコマンドを表している。メモリコントローラ200は、書込みコマンドとこれに付随する書込みデータに基づいて書込みリクエストを生成し、メモリ300に対して要求する。メモリ300は、このリクエストに基づいて書込みを行う。その後、メモリ300は、書込みの結果をレスポンスとしてメモリコントローラ200に対して出力する。
一方、読出しの際には、ホストコンピュータ100は、読出しコマンドをメモリコントローラ200に対して発行する。ここで、読出しコマンドとは、読出しを表すオペコード、読出し先アドレスおよび読出しデータ数により構成されたコマンドを表している。メモリコントローラ200は、この読出しコマンドに基づいて読出しリクエストを生成し、メモリ300に対して要求する。メモリ300は、このリクエストに基づいて読出しを行い、読み出したデータをメモリコントローラ200に対して出力する。メモリコントローラ200は、この出力されたデータを読出しデータとしてホストコンピュータ100に出力する。
[メモリモジュールの構成]
図2は、本技術の実施の形態におけるメモリモジュールの構成例を示す図である。同図におけるaは、メモリチップ371により構成されたメモリモジュール370の例を表したものである。また、同図におけるbは、2個のメモリチップ381および382により構成されたメモリモジュール380の例を表したものである。これらのメモリモジュールを構成するメモリチップとして、不揮発メモリであるReRAMにより構成されたメモリチップを想定する。このReRAMは、抵抗変化型メモリであり、抵抗値を可逆的に変化させて記憶を行う記憶素子を有するメモリである。
[メモリコントローラの構成]
メモリコントローラ200は、ホストインターフェース210と、プロセッサ220と、ROM230と、RAM240と、メモリアクセス制御部250と、メモリインターフェース290とを備える。
ホストインターフェース210は、ホストコンピュータとのやり取りを行うものである。プロセッサ220は、メモリコントローラ200内の各部を制御するものである。ROM230は、プロセッサ220のファームウェアを記憶するメモリである。RAM240は、プロセッサ220の処理に必要なデータを一時的に記憶するメモリである。メモリアクセス制御部250は、メモリ300に対するリクエストの要求等を行うものである。バス209は、これらメモリコントローラ200内の各部を相互に接続するものである。メモリインターフェース290は、メモリ300と間のやり取りを行うものである。
ホストコンピュータ100からホストインターフェース210を介して書込み等のコマンドが発行された場合、プロセッサ220は、このコマンドをメモリアクセス制御部250に転送する。その後、メモリアクセス制御部250は、コマンドをリクエストに変換し、メモリインターフェース290を介してメモリ300に対して要求する。このメモリアクセス制御部250の詳細については、後述する。
[メモリの構成]
図3は、本技術の第1の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、メモリチップ#0(320)と、メモリチップ#1(330)と、メモリチップ#2(340)と、メモリチップ#3(350)とを備える。なお、メモリチップ#0(320)乃至#3(350)は、特許請求の範囲に記載のメモリモジュールの一例である。すなわち、本技術の第1の実施の形態においては、4個のメモリモジュールを有するメモリ300を想定し、これらのメモリモジュールはそれぞれ単一のメモリチップにより構成されることを想定する。なお、これらのメモリモジュールは、それぞれ独立したデータのアクセスが可能である。
メモリチップ#0(320)乃至#3(350)は、データを記憶する記憶領域を有する半導体素子である。前述のように、本技術の実施の形態においては、これらのメモリチップとしてReRAMにより構成されたメモリチップを想定する。さらに、上述の記憶領域は複数のページにより構成され、このページを単位としてアクセスされることを想定する。このページのサイズは、例えば、512Kバイトである。これらのメモリチップは、それぞれ独立したデータのアクセスが可能である。メモリコントローラ200は、リクエストを要求する際、これらメモリチップを識別するための識別番号をリクエストに付加する。上述の例では、この識別番号には、#0乃至#3が該当する。なお、この識別番号は、例えば、メモリチップ#0(320)乃至#3(350)を選択するためのチップセレクト信号に変換されて、メモリ300に対して出力される方式を採ることができる。この場合、リクエストは、メモリチップ#0(320)乃至#3(350)に共通して入力され、チップセレクト信号により選択されたメモリチップのみが、当該リクエストに応じた処理を行うこととなる。
[メモリセルの構成]
図4は、本技術の実施の形態におけるメモリセルの構成例を示す図である。同図は、図3において説明したメモリチップ#0(320)等を構成するReRAMの記憶領域におけるメモリセルの構成を表したものである。同図に表したように、記憶素子321およびMOSFET322により1ビットのメモリセル323が構成される。なお、MOSFET322は、記憶素子321を駆動するトランジスタである。記憶素子321の一端は共通の信号線であるプレート線に接続され、他端はMOSFET322のドレイン端子に接続されている。MOSFET322のゲート端子は複数のワード線のうちの1本に接続され、ソース端子は複数のビット線のうちの1本に接続されている。ワード線およびビット線は、メモリセル323を構成するMOSFET322に対してXYマトリクス状に配線されている。これにより、ワード線およびビット線からそれぞれ1本を選択して信号を入力することにより、1個のメモリセル323が選択されてデータの書込みまたは読出しが行われる。例えば、同図において左端に記載されたメモリセル323を選択する場合には、ワード線#0およびビット線#0を選択する。
記憶素子321は、データを記憶する素子である。この記憶素子321は、印加された電圧の極性により抵抗値が変化する。例えば、記憶素子321のプレート線に接続された端子を基準として、記憶素子321の他の端子に正の極性となる電圧(書込み電圧)を印加することにより記憶素子321を高抵抗の状態にすることができる。逆に、記憶素子321の他の端子に負の極性となる書込み電圧を印加することにより記憶素子321を低抵抗の状態にすることができる。なお、以後の説明では、高抵抗の状態をHRS(High Resistance State)、低抵抗の状態をLRS(Low Resistance State)と称する。これら2つの状態を論理値に対応させて、データの記憶を行う。例えば、記憶素子321がLRSの場合を値「1」、記憶素子321がHRSの場合を値「0」とすることができる。このように、記憶素子321の抵抗値を変化させて、メモリセル323にデータを書き込むことができる。なお、メモリセル323に値「1」を書き込む操作をセット操作、メモリセル323に値「0」を書き込む操作をリセット操作と称し、これら2つの操作を行うことにより書込みが行われる。
なお、これらのセット操作およびリセット操作は、複数のメモリセル323に対して同時に行われる。セット操作を行う際には、複数のワード線のうちの1本を選択する。例えばワード線#0を選択し、オン電圧を印加する。これにより、ワード線#0に接続されたMOSFET322がオン状態になる。次に、セット操作を行うメモリセル323に接続されたビット線を選択し、プレート線に対して負の極性となる書込み電圧を印加する。すると、選択されたビット線に接続されたメモリセル323の記憶素子321は、LRSとなり、値「1」が書き込まれる。リセット操作を行う際には、セット操作と同様にワード線#0を選択してオン電圧を印加する。次に、リセット操作を行うメモリセル323に接続されたビット線を選択し、プレート線に対して正の極性となる書込み電圧を印加する。すると、選択されたビット線に接続されたメモリセル323の記憶素子321は、HRSとなり、値「0」が書き込まれる。このようにして、1本のワード線に接続された複数のメモリセルに対して書込みを行うことができる。この1度の書込み操作により書込み可能なメモリセル323の数が前述したページサイズに該当する。同図の例では、ページサイズとしてはmビットを想定する。
上述のセット操作およびリセット操作の実行後には、ベリファイが行われる。ここで、ベリファイとは、メモリセル323に所望の書込みデータが書き込まれているか否かを判断する処理である。ベリファイの結果、メモリセル323に所望の書込みデータが書き込まれていない場合には、再度セット操作またはリセット操作を行う。このベリファイは、書込みを行ったメモリセルから読出しを行い、読み出したデータと書込みに係る書込みデータとが等しいか否かを判断することにより行うことができる。記憶素子321の特性は、メモリセル323毎にばらつきがあり、1度のセット操作またはリセット操作により書込みが終了するメモリセル323がある一方、数度の書込みおよびベリファイを経て書込みが終了するメモリセル323も存在する。このため、書込みに要する時間は、ページ毎に変動する。また、所定の回数のベリファイおよび再書込みを行ったにもかかわらず、メモリセル323の値が所望の値にならない場合には、メモリ300は、当該ページにおいて書込みが失敗したものとして処理することができる。
前述のように、メモリ300は、書込みの結果をレスポンスとしてメモリコントローラ200に対して出力する。書込み処理が成功した場合には、メモリ300は、メモリコントローラ200に対して書込み成功のレスポンスを出力する。一方、書込みが失敗した場合には、メモリ300は、書込み失敗のレスポンスを出力する。メモリ300から書込み失敗のレスポンスが出力された場合、メモリコントローラ200またはホストコンピュータ100により書込み失敗に応答する処理が行われる。
なお、メモリセル323に対するデータの読出しは、記憶素子321に対して書込み電圧より低い電圧を印加して流れる電流を測定し、LRSおよびHRSを判断することにより行う。
[メモリアクセス制御部の構成]
図5は、本技術の第1の実施の形態におけるメモリアクセス制御部250の構成例を示す図である。このメモリアクセス制御部250は、コマンド変換部251と、リクエストキュー#0(252)と、リクエストキュー#1(253)と、リクエストキュー#2(254)と、リクエストキュー#3(255)と、リクエスト選択部256とを備える。また、このメモリアクセス制御部250は、リクエスト制御部257と、書込み時間予測情報生成部258と、書込み時間予測情報保持部259と、誤り訂正部261とを備える。
コマンド変換部251は、ホストコンピュータ100が発行したコマンドとこれに含まれる書込み先および読出し先アドレス等をリクエストに変換するものである。ここで、ホストコンピュータ100が発行したコマンドに含まれる書込み先および読出し先アドレスはページを単位とするページアドレスにより表され、書込みおよび読出しデータ数はページ数により表されるものと想定する。また、1個のリクエストによりアクセス可能なデータ数を1ページと想定する。コマンドのデータ数が複数のページである場合には、コマンド変換部251は、このコマンドを複数のリクエストに変換して、複数のメモリチップに割り当てる。
この割当て方法として、書込み先および読出し先のページアドレスの下位2ビットをメモリチップ#0(320)乃至#3(350)の識別番号に割り当てる方法を採ることができる。例えば、コマンドが書込みコマンドであり、書込み先ページアドレスが0x0、データ数が4ページの場合には、コマンド変換部251は、このコマンドを4個のリクエストに変換する。これら4個のリクエストは、メモリチップ#0(320)乃至#3(350)にそれぞれ割り当てられる。このようにして、コマンド変換部251は、コマンドをメモリチップ#0(320)乃至#3(350)に対するリクエストに変換し、次に説明するリクエストキューに保持させる。
リクエストキュー#0(252)乃至#3(255)は、コマンド変換部251により変換されたリクエストを保持するとともに、保持したリクエストを先入れ先出しするものである。また、このリクエストキュー#0(252)乃至#3(255)は、メモリ300における同一の識別番号のメモリチップ#0(320)乃至#3(350)と1対1に対応している。すなわち、これらのリクエストキューの個数は、メモリチップの個数と同じであり、対応するメモリチップのリクエストのみを保持する。これらのリクエストキューとして、FIFO(First-In First-Out)メモリを使用することができる。
書込み時間予測情報保持部259は、書込み時間予測情報を保持するものである。ここで、書込み時間予測情報とは、メモリチップ#0(320)乃至#3(350)に対する書込み時間の予測値である。本技術の第1の実施の形態においては、メモリチップ#0(320)乃至#3(350)は、ページを単位としてアクセスされる。このため、書込み時間予測情報は、ページ毎に生成されて書込み時間予測情報保持部259に保持される。この書込み時間予測情報保持部259として、DRAM等の揮発性メモリにより構成されたメモリを使用することができる。なお、この場合には、情報処理システムの停止時に、書込み時間予測情報保持部259に保持された書込み時間予測情報を不揮発メモリ等に保存する必要がある。そして、情報処理システムの起動時に、この不揮発メモリから書込み時間予測情報を読み出して書込み時間予測情報保持部259に保持させる処理が必要となる。書込み時間予測情報の詳細は、後述する。
リクエスト選択部256は、リクエストキュー#0(252)乃至#3(255)の先頭に保持されたリクエストを選択するものである。このリクエスト選択部は、リクエストを受理可能なメモリチップが2個以上存在し、かつ、これらのメモリチップに対応するリクエストキューにリクエストがそれぞれ保持されている場合に、これらのリクエストを選択する。なお、リクエストを受理可能なメモリチップとは、リクエストが発行されておらず、書込み等の処理を行っていないメモリチップである。リクエストキューに保持されたリクエストが書込みリクエストの場合には、リクエスト選択部256は、長い書込み時間が予測されるリクエストを優先して選択する。この選択は、書込み時間予測情報保持部259に保持された書込み時間予測情報に基づいて行われる。なお、リクエストを受理可能なメモリチップが1個の場合には、リクエスト選択部256は、当該メモリチップに対応するリクエストキューのリクエストを選択し、リクエスト制御部257に出力する。
リクエスト制御部257は、メモリ300との間のリクエストのやり取りを制御するものである。このリクエスト制御部257は、リクエスト選択部256により選択されたリクエストをメモリ300に対して出力する。リクエストが書込みリクエストの場合には、後述する書込み時間予測情報生成部258に対してリクエストを出力した旨の通知(リクエスト送出通知)を出力する。また、このリクエスト制御部257は、出力したリクエストに対するレスポンスがメモリ300から入力された際には、書込み時間予測情報生成部258に対してレスポンスが入力された旨の通知(レスポンス受信通知)を出力する。リクエスト送出通知はメモリチップの識別番号およびページアドレスを伴い、レスポンス受信通知はメモリチップの識別番号を伴って出力される。
書込み時間予測情報生成部258は、メモリチップ#0(320)乃至#3(350)におけるページ毎の書込み時間を計測し、書込み時間予測情報として書込み時間予測情報保持部259に保持させるものである。書込み時間予測情報生成部258の詳細については、後述する。
誤り訂正部261は、書込みデータに対する符号化および読出しデータに対する復号を行うものである。ここで、符号化とは、書込みデータにパリティを付加してECC符号にする処理である。このパリティには、例えば、BCH(Bose Chaudhuri Hocquenghem)符号を使って生成されたパリティを使用することができる。また、復号とは、ECC符号から元のデータを取り出す処理である。この復号の際、データの誤り検出および訂正が行われる。
[書込み時間予測情報生成部の構成]
図6は、本技術の第1の実施の形態における書込み時間予測情報生成部258の構成例を示す図である。この書込み時間予測情報生成部258は、制御部271と、ページアドレス保持部#0(272)と、ページアドレス保持部#1(273)と、ページアドレス保持部#2(274)と、ページアドレス保持部#3(275)とを備える。また、書込み時間予測情報生成部258は、タイマ#0(276)と、タイマ#1(277)と、タイマ#2(278)と、タイマ#3(279)とを備える。
ページアドレス保持部#0(272)乃至#3(275)は、リクエスト制御部257が出力した書込みリクエストのページアドレスを保持するものである。このページアドレス保持部#0(272)乃至#3(275)は、同一の識別番号のメモリチップ#0(320)乃至#3(350)と1対1に対応し、これらメモリチップの書込みリクエストのページアドレスを保持する。
タイマ#0(276)乃至#3(279)は、書込みに要する時間を計時するタイマである。このタイマ#0(276)乃至#3(279)は、同一の識別番号のメモリチップ#0(320)乃至#3(350)と1対1に対応し、これらの書込み時間を計時する。これらのタイマは、次に説明する制御部271により、計時の開始および停止が制御される。
制御部271は、ページアドレス保持部#0(272)乃至#3(275)およびタイマ#0(276)乃至#3(279)を制御するものである。この制御部271は、リクエスト制御部257からリクエスト送出通知が出力された場合に、リクエスト送出通知に含まれるメモリチップの識別番号に基づいて、対応するタイマおよびページアドレス保持部に対して処理を行う。例えば、リクエスト送出通知に含まれるメモリチップ識別番号がメモリチップ#0(320)を表している場合には、制御部271は、タイマ#0(276)に計時を開始させる。さらに、制御部271は、ページアドレス保持部#0(272)にリクエスト送出通知に含まれるページアドレスを保持させる。
また、リクエスト制御部257からレスポンス受信通知が出力された場合に、制御部271は、レスポンス受信通知に含まれるメモリチップの識別番号に基づいて、対応するタイマに対して計時を停止させる。その後、制御部271は、計時した時間をタイマから取得するとともに、対応するページアドレス保持部よりページアドレスを取得し、メモリチップの識別番号とともに書込み時間予測情報保持部259に対して出力する。これにより、計測された書込み時間が書込み時間予測情報として書込み時間予測情報保持部259に保持される。
[書込み時間予測情報]
図7は、本技術の第1の実施の形態における書込み時間予測情報を示す図である。同図は、書込み時間予測情報保持部259に保持される書込み時間予測情報を表したものである。本技術の第1の実施の形態における書込み時間予測情報は、各メモリチップにおける書込みに要した時間をページアドレス毎に記録したものである。なお、書込み時間は、μs単位の値としている。この記録された書込み時間により、リクエスト選択部256の選択対象となっている書込みリクエストの書込み時間を予測することができる。リクエスト選択部256は、メモリチップ識別番号およびページアドレスにより、書込み時間予測情報から当該書込みリクエストの書込み時間の予測情報を取得する。次に、リクエスト選択部256は、この予測情報に基づいて長い書込み時間が予測されるメモリチップに対する書込みリクエストを選択する。
[書込みリクエスト選択処理]
図8は、本技術の第1の実施の形態における書込みリクエスト選択処理を示す図である。同図は、メモリチップ#0乃至#3のリクエスト入力とレスポンス出力との関係を表したものである。なお、リクエストの入力に要する時間には、1μsを想定している。一方、書込みに要する時間はメモリチップ毎に異なっており、それぞれ同図に記載した通りの時間を想定している。例えば、メモリチップ#0では、書込み時間は10μsを想定している。なお、これらの書込み時間は、図7において説明した書込み時間予測情報のうちページアドレス0x00000に対応する書込み時間と同じ時間にしている。同図におけるaは、対応するメモリチップの識別番号順にリクエストを選択して実行させた場合を表しており、同図におけるbは予測される書込み時間が長い順にリクエストを選択して実行させた場合を表している。これにより、4個のリクエストの入力からレスポンス出力までの時間は、同図におけるaが19μsであるのに対して、同図におけるbが16μsと短縮されていることが分かる。このように、書込みリクエストを予測される書込み時間が長い順に選択して実行させることにより、複数の書込みリクエストをより早く実行することができる。
[書込み処理]
図9は、本技術の第1の実施の形態におけるコマンド受信処理の処理手順の一例を示す図である。ホストコンピュータからコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、コマンド変換部251は、コマンドをリクエストに変換する(ステップS901)。次に、コマンド変換部251は、リクエストの要求先のメモリチップに対応するリクエストキューにリクエストを保持させ(ステップS902)、コマンド受信処理を終了する。
図10は、本技術の第1の実施の形態における書込みリクエスト出力処理の処理手順の一例を示す図である。まず、メモリコントローラ200は、リクエストが発行可能か否かを判断する(ステップS951)。すなわち、リクエストに基づく処理を行っていないメモリチップが存在し、当該メモリチップに対応するリクエストキューにリクエストが保持されている場合に、メモリコントローラ200は、リクエストを発行可能と判断する。リクエストが発行可能でない場合は、メモリコントローラ200は、リクエストが発行可能になるまで待機する(ステップS951)。リクエストが発行可能の場合には(ステップS951:Yes)、メモリコントローラ200は、発行可能なリクエストの個数を調べる(ステップS953)。発行可能なリクエストが1個の場合には(ステップS953:Yes)、リクエスト選択部256により当該リクエストが選択され(ステップS955)、ステップS956の処理に移行する。
一方、発行可能なリクエストが2個以上の場合には(ステップS953:No)、リクエスト選択部256は、書込み時間予測情報に基づいてリクエストを選択する(ステップS954)。その後、メモリコントローラ200は、ステップS956の処理に移行する。ステップS956において、リクエスト選択部256は、リクエストをリクエストキューから取得し(ステップS956)、メモリ300に対して出力する(ステップS957)。次に、リクエスト制御部257は、書込み時間予測情報生成部258に対してリクエスト送出通知の出力を行う(ステップS958)。その後、メモリコントローラ200は、再度ステップS951の処理に移行し、書込みリクエスト出力処理を繰返し実行する。
[レスポンス入力処理]
図11は、本技術の第1の実施の形態におけるレスポンス入力処理の処理手順の一例を示す図である。リクエスト制御部257は、メモリ300からレスポンスが入力されるまで待機し(ステップS801)、レスポンスが入力された場合には(ステップS801:Yes)、書込み時間予測情報生成部258に対してレスポンス受信の通知を行う(ステップS802)。その後、リクエスト制御部257は、再度ステップS801の処理に移行し、レスポンス入力処理を繰返し実行する。
[書込み時間計測開始処理]
図12は、本技術の第1の実施の形態における書込み時間計測開始処理の処理手順の一例を示す図である。書込み時間予測情報生成部258は、リクエスト制御部257からリクエスト送出通知が入力されるまで待機する(ステップS851)。リクエスト送出通知が入力されると(ステップS851:Yes)、書込み時間予測情報生成部258は、ページアドレスをリクエスト送出通知に含まれるメモリチップ識別番号に対応するページアドレス保持部に保持させる(ステップS852)。次に、書込み時間予測情報生成部258は、リクエスト送出通知に含まれるメモリチップ識別番号に対応するタイマの計時を開始させる(ステップS853)。その後、書込み時間予測情報生成部258は、ステップS851の処理に移行し、書込み時間計測開始処理を繰返し実行する。
[書込み時間計測終了処理]
図13は、本技術の第1の実施の形態における書込み時間計測終了処理の処理手順の一例を示す図である。書込み時間予測情報生成部258は、リクエスト制御部257からレスポンス受信通知が入力されるまで待機する(ステップS871)。レスポンス受信通知が入力されると(ステップS871:Yes)、書込み時間予測情報生成部258は、レスポンス受信通知に含まれるメモリチップ識別番号に対応するタイマの計時を停止させる(ステップS872)。次に、書込み時間予測情報生成部258は、レスポンス受信通知に含まれるメモリチップ識別番号に対応するページアドレス保持部からページアドレスを取得する(ステップS873)。次に、書込み時間予測情報生成部258は、メモリチップ識別番号、ページアドレスおよび書込み時間を書込み時間予測情報保持部259に対して出力する(ステップS874)。その後、書込み時間予測情報生成部258は、ステップS871の処理に移行し、書込み時間計測終了処理を繰返し実行する。
このように、本技術の第1の実施の形態では、メモリチップ(メモリモジュール)における書込み時間を計測し、書込み時間予測情報として保持する。複数の書込みリクエストを要求する際には、長い書込み時間が予測される書込みリクエストを書込み時間予測情報に基づいて優先して選択し、メモリモジュールに対して要求することにより、書込み時間を短縮することができる。
[第1の変形例]
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリ300において行われるベリファイの回数を計測し、書込み時間予測情報としてもよい。書込み時間とベリファイ回数は比例関係にあり、ベリファイ回数により書込み時間を予測することが可能なためである。
ベリファイ回数の計測は、例えば、以下のようにメモリ300からベリファイ回数を取得して行うことができる。第1の変形例におけるメモリチップ#0(320)乃至#3(350)は、レスポンスを出力する際、書込み結果に加えてベリファイ回数をさらに出力する。リクエスト制御部257は、レスポンス受信通知を出力する際、メモリチップ識別番号等に加えてベリファイ回数をさらに出力する。書込み時間予測情報生成部258は、このベリファイ回数を書込み時間予測情報として書込み時間予測情報保持部259に保持させる。これにより、ベリファイ回数を書込み時間予測情報として書込み時間予測情報保持部259に保持させることができる。
これにより、メモリコントローラ200における書込み時間の計測を省略することができ、メモリコントローラ200における処理を簡略化することができる。
[第2の変形例]
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリチップ#0(320)乃至#3(350)における書込み回数を書込み時間予測情報としてもよい。図4において説明した記憶素子321は、書込みにより損傷を受け、書込み回数の増加とともにベリファイ回数が増加する。すなわち、書込み時間と書込み回数は比例関係にあり、書込み回数により書込み時間を予測することが可能なためである。
書込み回数の取得は、以下のように行うことができる。第2の変形例における書込み時間予測情報生成部258は、リクエスト送出通知が出力される毎に、書込み時間予測情報保持部259に保持された書込み回数である書込み時間予測情報を取得してインクリメントを行い、書込み時間予測情報保持部259に保持させる。これにより、書込み回数を書込み時間予測情報として書込み時間予測情報保持部259に保持させることができる。
これにより、メモリコントローラ200における書込み時間の計測を省略することができ、メモリコントローラ200における処理を簡略化することができる。
[第3の変形例]
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリチップ#0(320)乃至#3(350)における書込み不成功回数を書込み時間予測情報としてもよい。図4において説明したように所定の回数のベリファイおよび再書込みを行ったにもかかわらずメモリセル323の値が所望の値にならない場合には、メモリ300は、書込みが失敗したものとして処理する。この処理として、メモリ300は、書込みの条件、例えば、記憶素子321に印加する書込み電圧を変更して再度書込みを行う処理を採ることができる。このような、書込み失敗の処理を行うシステムにおいては、書込み不成功回数と書込み時間が比例することになり、書込み時間の代わりに書込み不成功回数により書込み時間を予測することが可能なためである。
書込み不成功回数の取得は、以下のように行うことができる。メモリチップ#0(320)乃至#3(350)は、レスポンスを出力する際、書込み結果に加えて書込み不成功回数をさらに出力する。リクエスト制御部257は、レスポンス受信通知を出力する際、メモリチップ識別番号等に加えて書込み不成功回数をさらに出力する。書込み時間予測情報生成部258は、レスポンス受信通知に含まれる書込み不成功回数を書込み時間予測情報として書込み時間予測情報保持部259に保持させる。これにより、書込み不成功回数を書込み時間予測情報として書込み時間予測情報保持部259に保持させることができる。
これにより、メモリコントローラ200における書込み時間の計測を省略することができ、メモリコントローラ200における処理を簡略化することができる。
[第4の変形例]
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、誤り訂正部261における誤りが訂正されたビット数を書込み時間予測情報としてもよい。読み出したデータに対して誤りが訂正されたビットに対応するメモリセルは、記憶素子321が過度に損傷していると考えられる。そのようなメモリセルを有するページに対する書込みは、ベリファイの回数および書込み不成功回数が多いと考えられ、書込み時間の代わりに誤りが訂正されたビット数により書込み時間を予測することが可能なためである。
誤りが訂正されたビット数の取得は、以下のように行うことができる。誤り訂正部261は、読み出したデータに対して誤りの訂正を行った際に、誤りが訂正されたビット数を書込み時間予測情報生成部258に対して出力する。書込み時間予測情報生成部258は、この誤りが訂正されたビット数を書込み時間予測情報として書込み時間予測情報保持部259に保持させる。これにより、誤りが訂正されたビット数を書込み時間予測情報として書込み時間予測情報保持部259に保持させることができる。
これにより、メモリコントローラ200における書込み時間の計測を省略することができ、メモリコントローラ200における処理を簡略化することができる。
<2.第2の実施の形態>
上述の実施の形態では、ページ毎に書込み時間予測情報を計測して保持していた。これに対し、本技術の第2の実施の形態では、複数のページ毎に計測して保持する。これにより、書込み時間予測情報のサイズを小さくすることができる。
[書込み時間予測情報]
図14は、本技術の第2の実施の形態における書込み時間予測情報を示す図である。同図は、各メモリチップにおける書込みに要した時間を複数のページにより構成されるブロック毎に記録したものである。同図においては、各メモリチップの書込み時間予測情報を256個のブロック毎に保持している。ブロックのサイズとしては、例えば、4096ページを想定することができる。これは、図7において説明したページアドレスのうち、上位8ビットをブロックのアドレスとし、各メモリチップの記憶領域を265個のブロックに分割した場合と等価な構成である。このような構成にした場合、それぞれのブロックに含まれるページは、ページアドレスが連続することとなり、同じブロックに含まれるページには、同じ使用形態のデータファイルが保存される可能性が高くなる。このため、ブロックに含まれる各ページは、同等の書込み回数になることが予想され、書込み時間も近い値となる可能性が高い。したがって、ブロック単位で書込み時間予測情報を保持し、これを用いてブロックに含まれるページの書込み時間を予測することができる。
ブロック毎に書込み時間予測情報を管理することにより、書込み時間予測情報のサイズを小さくすることができる。例えば、図14における書込み時間予測情報のエントリー数は、図7における書込み時間予測情報の4096分の1の値にすることができる。
なお、ブロック毎の書込み時間として、ブロックに含まれるページにおける書込み時間の平均値を使用することができる。これは、ブロックに含まれるページに対してn回の書込みがあった場合の平均値をTave(n)とした場合、例えば、次式に基づいて算出することができる。
Tave(n)=(Tave(n−1)+Tn)/2 ・・・式1
ただし、Tave(n−1)は、n−1回目の書込みが行われた際の書込み時間の平均値を表す。Tnは、n回目の書込み時間を表す。この場合、1回目の書込みの際には、Tave(n−1)およびTnに1回目の書込み時間を代入して平均値を算出する。また、例えば、次式に基づいて算出することもできる。
Tave(n)=((n−1)×Tave(n−1)+Tn)/n ・・・式2
この式2を利用する場合には、書込み回数nによる重み付けを行うため、式1を利用する場合と比べて計算量が増加し、さらにブロック毎に書込み回数nを保持する必要がある。しかし、より正確な書込み時間の平均値を算出することができる。
リクエスト選択部256は、メモリチップ識別番号およびブロックアドレスであるページアドレスの上位8ビットの値により、書込み時間予測情報保持部259に保持された書込み時間予測情報から書込み時間の予測情報を取得する。これ以外のメモリアクセス制御部250およびメモリコントローラ200の構成は本技術の第1の実施の形態におけるメモリアクセス制御部250およびメモリコントローラ200と同様であるため、説明を省略する。
このように、本技術の第2の実施の形態によれば、ブロック単位で書込み時間予測情報を保持することにより、書込み時間予測情報のサイズを小さくすることができ、メモリコントローラ200を小型化することができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、ページ毎に書込み時間予測情報を保持していた。これに対し、本技術の第3の実施の形態では、メモリモジュールに相当するメモリチップ毎に保持する。これにより、書込み時間予測情報のサイズを小さくすることができる。
[書込み時間予測情報]
図15は、本技術の第3の実施の形態における書込み時間予測情報を示す図である。同図は、各メモリチップにおける書込みの際の優先順位を表したものである。また、この優先順位は、メモリチップの書込み時間の長い順に番号付けを行ったものである。メモリチップ#0(320)乃至#3(350)における書込み時間が既知の場合には、メモリコントローラ200における書込み時間の計測を省略し、書込み時間予測情報として固定された優先順位を使用することができる。例えば、使用するメモリチップについて工場出荷時に書込み時間の計測を行い、これに基づく優先順位を生成して書込み時間予測情報として書込み時間予測情報保持部259に保持させる。リクエスト選択部256は、メモリチップ識別番号により、書込み時間予測情報保持部259に保持された書込み時間予測情報からメモリチップの優先順位を取得して、長い書込み時間が予測されるメモリチップに対する書込みリクエストを選択する。本技術の第3の実施の形態においては、書込み時間の計測を行わないため、書込み時間予測情報生成部258を備える必要はない。これ以外のメモリアクセス制御部250およびメモリコントローラ200の構成は本技術の第1の実施の形態におけるメモリアクセス制御部250およびメモリコントローラ200と同様であるため、説明を省略する。
このように、本技術の第3の実施の形態によれば、書込み時間予測情報としてメモリチップ(メモリモジュール)毎の固定の優先順位を使用することにより、書込み時間予測情報のサイズを小さくすることができる。また、書込み時間予測情報生成部を省略することができ、メモリコントローラ200を小型化することができる。
[変形例]
上述の第3の実施の形態では、書込みリクエストの実行の際に、書込み時間の計測を行わず、固定の優先順位を書込み時間予測情報にしていた。これに対し、書込み時間の計測を行い、メモリチップ毎の平均値を算出して書込み時間予測情報にしてもよい。書込み時間予測情報のサイズを小さくすることができるとともに、メモリチップの使用に伴う書込み時間の変化に応じて書込み時間予測情報を変更することができるためである。この場合、書込み時間予測情報生成部258により書込み時間の計測が行われ、メモリチップ毎の平均値が算出される。次に、この平均値が書込み時間予測情報として書込み時間予測情報保持部259に保持される。なお、平均値の算出には、本技術の第2の実施の形態において説明した方式を用いることができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、ページ毎に書込み時間予測情報を保持していた。これに対し、本技術の第4の実施の形態では、メモリモジュールを構成するメモリバンク毎に書込み時間予測情報を保持する。これにより、メモリバンクを有するメモリモジュールを使用したシステムにおいても書込み時間予測情報に基づいて、長い書込み時間が予測される書込みリクエストを優先して実行することにより書込み処理を高速化することができる。
[メモリの構成]
図16は、本技術の第4の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、メモリチップ#0(320)乃至#3(350)をメモリチップ360に変更した点において、図3において説明したメモリ300と異なっている。
メモリチップ360は、メモリバンク#0(361)と、メモリバンク#1(362)と、メモリバンク#2(363)と、メモリバンク#3(364)とを備える。ここでメモリバンクとは、メモリモジュールであるメモリチップ360の記憶領域の構成単位である。このメモリバンクは、バンクアドレスにより指定する必要がある。このため、書込みまたは読出しリクエストには、メモリチップ識別番号に代えてバンクアドレスを付加する必要がある。また、これらのメモリバンクは、それぞれ独立したデータのアクセスが可能であり、ページを単位としてアクセスされる。
なお、メモリチップ(360)は、特許請求の範囲に記載のメモリモジュールの一例である。すなわち、本技術の第4の実施の形態においては、単一のメモリモジュールを有するメモリ300を想定し、このメモリモジュールは4個のメモリバンクを有する1個のメモリチップにより構成されることを想定する。この場合、書込み時間予測情報保持部259は、メモリバンク#0(361)乃至#3(364)の各々についての書込み時間予測情報を保持する。書込み時間予測情報生成部258は、メモリバンク#0(361)乃至#3(364)の各々についての書込み時間予測情報を生成する。リクエストキュー#0(252)乃至#3(255)は、メモリバンク#0(361)乃至#3(364)の各々についてのリクエストを保持する。さらに、リクエスト選択部256は、メモリバンク#0(361)乃至#3(364)についての書込みリクエストのうちより長い書込み時間が予測される書込みリクエストを書込み時間予測情報に基づいて選択する。
これ以外の情報処理システムの構成は本技術の第1の実施の形態において説明した情報処理システムと同様であるため、説明を省略する。
このように、本技術の第4の実施の形態では、複数のメモリバンクを有するメモリチップ(メモリモジュール)において、より長い書込み時間が予測される書込みリクエストを書込み時間予測情報に基づいて優先して実行する。これにより、書込み時間を短縮することができる。
[変形例]
上述の第4の実施の形態では、メモリバンクを有するメモリチップにおいてページ毎に書込み時間予測情報を保持していた。これに対し、各メモリバンクにおける複数のページにより構成されたブロック毎に書込み時間予測情報を保持しても良い。本技術の第2の実施の形態と同様に書込み時間予測情報のサイズを小さくすることができるためである。なお、ブロック毎の書込み時間予測情報の計測は、本技術の第2の実施の形態と同様の方式を使用することができる。
以上のように、本技術の実施の形態では、ページ毎の書込み時間が一定でないメモリモジュールにおいて、より長い書込み時間が予測される書込みリクエストを書込み時間予測情報に基づいて優先して選択し、実行する。これより、書込み時間を短縮することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を具備するメモリコントローラ。
(2)前記書込み時間予測情報を生成して前記書込み時間予測情報保持部に保持させる書込み時間予測情報生成部をさらに具備する前記(1)に記載のメモリコントローラ。
(3)前記書込み時間予測情報生成部は、前記書込み時間を前記複数のメモリモジュール毎に計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる前記(2)に記載のメモリコントローラ。
(4)前記書込み時間予測情報生成部は、書込みを行った前記複数のメモリモジュールからデータの読出しを行い当該読み出したデータと前記書込みに係る書込みデータとが一致するか否かを判断するベリファイの回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる前記(2)に記載のメモリコントローラ。
(5)前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる前記(2)に記載のメモリコントローラ。
(6)前記複数のメモリモジュールから読み出した読出しデータの誤りの検出および訂正を行う誤り訂正部をさらに具備し、
前記書込み時間予測情報生成部は、前記訂正された前記読出しデータにおける前記誤り訂正部によって誤りが訂正されたビット数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる前記(2)に記載のメモリコントローラ。
(7)前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み不成功回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる前記(2)に記載のメモリコントローラ。
(8)前記複数のメモリモジュール毎に設けられて前記複数のメモリモジュールの各々についての前記書込みリクエストを保持して先入れ先出しする複数のリクエストキューをさらに具備し、
前記リクエスト選択部は、前記複数のリクエストキューの先頭に保持された前記書込みリクエストに対して前記書込み時間予測情報に基づく前記選択を行う
前記(1)から(7)のいずれかに記載のメモリコントローラ。
(9)前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
前記書込み時間予測情報保持部は、前記ページ毎に前記書込み時間予測情報を保持する
前記(1)から(8)のいずれかに記載のメモリコントローラ。
(10)前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
前記書込み時間予測情報保持部は、前記複数のページからなるブロック毎に前記書込み時間予測情報を保持する
前記(1)から(8)のいずれかに記載のメモリコントローラ。
(11)データを記憶する記憶領域が複数のメモリバンクにより構成されたメモリモジュールにおける前記複数のメモリバンクに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリバンクの各々について保持する書込み時間予測情報保持部と、
前記複数のメモリバンクの各々について書込みを要求する複数の書込みリクエストのうちより長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を具備するメモリコントローラ。
(12)複数のメモリモジュールと、
前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を具備する記憶装置。
(13)複数のメモリモジュールと、
前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(14)複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い書込み時間が予測される前記書込みリクエストを前記書込み時間を予測するための書込み時間予測情報に基づいて優先して選択するリクエスト選択手順を具備するメモリの制御方法。
100 ホストコンピュータ
200 メモリコントローラ
210 ホストインターフェース
220 プロセッサ
230 ROM
240 RAM
250 メモリアクセス制御部
251 コマンド変換部
256 リクエスト選択部
257 リクエスト制御部
258 書込み時間予測情報生成部
259 書込み時間予測情報保持部
261 誤り訂正部
271 制御部
272〜275 ページアドレス保持部
276〜279 タイマ
290 メモリインターフェース
300 メモリ
320、330、340、350、360、371、381、382 メモリチップ
370、380 メモリモジュール
321 記憶素子
322 MOSFET
323 メモリセル
361〜364 メモリバンク

Claims (14)

  1. 共通の信号線で接続された複数のメモリモジュールを有するメモリに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
    前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
    を具備するメモリコントローラ。
  2. 前記書込み時間予測情報を生成して前記書込み時間予測情報保持部に保持させる書込み時間予測情報生成部をさらに具備する請求項1記載のメモリコントローラ。
  3. 前記書込み時間予測情報生成部は、前記書込み時間を前記複数のメモリモジュール毎に計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
  4. 前記書込み時間予測情報生成部は、書込みを行った前記複数のメモリモジュールからデータの読出しを行い当該読み出したデータと前記書込みに係る書込みデータとが一致するか否かを判断するベリファイの回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
  5. 前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
  6. 前記複数のメモリモジュールから読み出した読出しデータの誤りの検出および訂正を行う誤り訂正部をさらに具備し、
    前記書込み時間予測情報生成部は、前記訂正された前記読出しデータにおける前記誤り訂正部によって誤りが訂正されたビット数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる
    請求項2記載のメモリコントローラ。
  7. 前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み不成功回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
  8. 前記複数のメモリモジュール毎に設けられて前記複数のメモリモジュールの各々についての前記書込みリクエストを保持して先入れ先出しする複数のリクエストキューをさらに具備し、
    前記リクエスト選択部は、前記複数のリクエストキューの先頭に保持された前記書込みリクエストに対して前記書込み時間予測情報に基づく前記選択を行う
    請求項1記載のメモリコントローラ。
  9. 前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
    前記書込み時間予測情報保持部は、前記ページ毎に前記書込み時間予測情報を保持する
    請求項1記載のメモリコントローラ。
  10. 前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
    前記書込み時間予測情報保持部は、前記複数のページからなるブロック毎に前記書込み時間予測情報を保持する
    請求項1記載のメモリコントローラ。
  11. 共通の信号線で接続された複数のメモリバンクを有するメモリに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリバンクの各々について保持する書込み時間予測情報保持部と、
    前記共通の信号線を介して前記複数のメモリバンクの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
    を具備するメモリコントローラ。
  12. 共通の信号線で接続された複数のメモリモジュールを有するメモリと、
    前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
    前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
    を具備する記憶装置。
  13. 共通の信号線で接続された複数のメモリモジュールを有するメモリと、
    前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
    前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
    を備える記憶装置と、
    前記記憶装置にアクセスするホストコンピュータと
    を具備する情報処理システム。
  14. 書込み時間予測情報保持部が、共通の信号線で接続された複数のメモリモジュールを有するメモリに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持手順と、
    リクエスト選択部が、前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択手順
    を具備するメモリの制御方法。
JP2016570488A 2015-01-22 2015-10-19 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 Expired - Fee Related JP6711281B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015010326 2015-01-22
JP2015010326 2015-01-22
PCT/JP2015/079413 WO2016117190A1 (ja) 2015-01-22 2015-10-19 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Publications (2)

Publication Number Publication Date
JPWO2016117190A1 JPWO2016117190A1 (ja) 2017-10-26
JP6711281B2 true JP6711281B2 (ja) 2020-06-17

Family

ID=56416752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570488A Expired - Fee Related JP6711281B2 (ja) 2015-01-22 2015-10-19 メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法

Country Status (3)

Country Link
US (1) US10318210B2 (ja)
JP (1) JP6711281B2 (ja)
WO (1) WO2016117190A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7013294B2 (ja) * 2018-03-19 2022-01-31 キオクシア株式会社 メモリシステム
CN110874281B (zh) * 2018-08-30 2023-11-24 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
US11669272B2 (en) * 2019-05-31 2023-06-06 Micron Technology, Inc. Predictive data transfer based on availability of media units in memory sub-systems
US20210200695A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging memory access requests

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US7093094B2 (en) * 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US7069399B2 (en) * 2003-01-15 2006-06-27 Via Technologies Inc. Method and related apparatus for reordering access requests used to access main memory of a data processing system
JP4019056B2 (ja) 2004-02-25 2007-12-05 エヌイーシーコンピュータテクノ株式会社 リードリクエスト調停制御システム及びその方法
US7581073B2 (en) * 2006-08-09 2009-08-25 International Business Machines Corporation Systems and methods for providing distributed autonomous power management in a memory system
US20080162852A1 (en) * 2006-12-28 2008-07-03 Surya Kareenahalli Tier-based memory read/write micro-command scheduler
US7724602B2 (en) * 2007-07-10 2010-05-25 International Business Machines Corporation Memory controller with programmable regression model for power control
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency
US9842068B2 (en) * 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
US8819379B2 (en) * 2011-11-15 2014-08-26 Memory Technologies Llc Allocating memory based on performance ranking
US9298252B2 (en) * 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
US9740485B2 (en) * 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
JP2014154119A (ja) 2013-02-14 2014-08-25 Ricoh Co Ltd メモリ制御装置及び半導体記憶装置
US9639280B2 (en) * 2015-06-18 2017-05-02 Advanced Micro Devices, Inc. Ordering memory commands in a computer system

Also Published As

Publication number Publication date
WO2016117190A1 (ja) 2016-07-28
JPWO2016117190A1 (ja) 2017-10-26
US10318210B2 (en) 2019-06-11
US20180011662A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
KR102175032B1 (ko) 제어기 메모리 버퍼를 사용한 적응적 조기 완료 포스팅을 위한 시스템 및 방법
US10635584B2 (en) System and method for host system memory translation
KR101580454B1 (ko) 상이한 최소 어드레스가능 데이터 유닛 크기들을 갖는 비휘발성 메모리 유닛들 사이의 선택
US10430330B2 (en) Handling of unaligned sequential writes
JP6149598B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
CN109599143B (zh) 具有读阈值机制的存储系统及其操作方法
JP6711281B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP5847940B2 (ja) 半導体装置
US20180301193A1 (en) Apparatuses and methods for automated dynamic word line start voltage
JP2017073121A (ja) 軟判定復号のための物理アドレスの相互関連付け
JP2015184856A (ja) メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
US9836312B2 (en) Storage control device, storage device, and storage control method thereof
JP6073495B2 (ja) 半導体装置
KR20200135549A (ko) 카운터 업데이트 동작을 위한 장치 및 방법
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US20140095962A1 (en) Semiconductor device and operating method thereof
US11262936B2 (en) Memory controller, storage device, information processing system, and memory control method
US9489298B2 (en) Nonvolatile memory apparatus, operating method thereof, and data processing system having the same
JP6145227B2 (ja) 半導体装置
KR20210131618A (ko) 저장 장치 및 그 동작 방법
KR20210054396A (ko) 저장 장치 및 그 동작 방법
JP2017021877A (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
JP2019083082A (ja) フラッシュメモリモジュール及びフラッシュメモリ
KR102571934B1 (ko) 스토리지 시스템 및 스토리지 컨트롤러의 동작방법
US20230039071A1 (en) Data storage device with data verification circuitry

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200428

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200511

R151 Written notification of patent or utility model registration

Ref document number: 6711281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees