JP6711281B2 - メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 - Google Patents
メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 54
- 230000010365 information processing Effects 0.000 title claims description 17
- 238000012795 verification Methods 0.000 claims description 27
- 238000012937 correction Methods 0.000 claims description 12
- 238000010187 selection method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 40
- 230000004044 response Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 25
- 230000000694 effects Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000005259 measurement Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports 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
1.第1の実施の形態(ページ毎の書込み時間予測情報を使用する場合の例)
2.第2の実施の形態(ブロック毎の書込み時間予測情報を使用する場合の例)
3.第3の実施の形態(メモリモジュール毎の書込み時間予測情報を使用する場合の例)
4.第4の実施の形態(メモリバンクを有するメモリモジュールにおいてページまたはブロック毎の書込み時間予測情報を使用する場合の例)
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とを備える。なお、メモリコントローラ200およびメモリ300は、記憶装置を構成する。
図2は、本技術の実施の形態におけるメモリモジュールの構成例を示す図である。同図におけるaは、メモリチップ371により構成されたメモリモジュール370の例を表したものである。また、同図におけるbは、2個のメモリチップ381および382により構成されたメモリモジュール380の例を表したものである。これらのメモリモジュールを構成するメモリチップとして、不揮発メモリであるReRAMにより構成されたメモリチップを想定する。このReRAMは、抵抗変化型メモリであり、抵抗値を可逆的に変化させて記憶を行う記憶素子を有するメモリである。
メモリコントローラ200は、ホストインターフェース210と、プロセッサ220と、ROM230と、RAM240と、メモリアクセス制御部250と、メモリインターフェース290とを備える。
図3は、本技術の第1の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、メモリチップ#0(320)と、メモリチップ#1(330)と、メモリチップ#2(340)と、メモリチップ#3(350)とを備える。なお、メモリチップ#0(320)乃至#3(350)は、特許請求の範囲に記載のメモリモジュールの一例である。すなわち、本技術の第1の実施の形態においては、4個のメモリモジュールを有するメモリ300を想定し、これらのメモリモジュールはそれぞれ単一のメモリチップにより構成されることを想定する。なお、これらのメモリモジュールは、それぞれ独立したデータのアクセスが可能である。
図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を選択する。
図5は、本技術の第1の実施の形態におけるメモリアクセス制御部250の構成例を示す図である。このメモリアクセス制御部250は、コマンド変換部251と、リクエストキュー#0(252)と、リクエストキュー#1(253)と、リクエストキュー#2(254)と、リクエストキュー#3(255)と、リクエスト選択部256とを備える。また、このメモリアクセス制御部250は、リクエスト制御部257と、書込み時間予測情報生成部258と、書込み時間予測情報保持部259と、誤り訂正部261とを備える。
図6は、本技術の第1の実施の形態における書込み時間予測情報生成部258の構成例を示す図である。この書込み時間予測情報生成部258は、制御部271と、ページアドレス保持部#0(272)と、ページアドレス保持部#1(273)と、ページアドレス保持部#2(274)と、ページアドレス保持部#3(275)とを備える。また、書込み時間予測情報生成部258は、タイマ#0(276)と、タイマ#1(277)と、タイマ#2(278)と、タイマ#3(279)とを備える。
図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)、コマンド受信処理を終了する。
図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の処理に移行し、書込み時間計測終了処理を繰返し実行する。
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリ300において行われるベリファイの回数を計測し、書込み時間予測情報としてもよい。書込み時間とベリファイ回数は比例関係にあり、ベリファイ回数により書込み時間を予測することが可能なためである。
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリチップ#0(320)乃至#3(350)における書込み回数を書込み時間予測情報としてもよい。図4において説明した記憶素子321は、書込みにより損傷を受け、書込み回数の増加とともにベリファイ回数が増加する。すなわち、書込み時間と書込み回数は比例関係にあり、書込み回数により書込み時間を予測することが可能なためである。
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、メモリチップ#0(320)乃至#3(350)における書込み不成功回数を書込み時間予測情報としてもよい。図4において説明したように所定の回数のベリファイおよび再書込みを行ったにもかかわらずメモリセル323の値が所望の値にならない場合には、メモリ300は、書込みが失敗したものとして処理する。この処理として、メモリ300は、書込みの条件、例えば、記憶素子321に印加する書込み電圧を変更して再度書込みを行う処理を採ることができる。このような、書込み失敗の処理を行うシステムにおいては、書込み不成功回数と書込み時間が比例することになり、書込み時間の代わりに書込み不成功回数により書込み時間を予測することが可能なためである。
上述の実施の形態では、計測した書込み時間を書込み時間予測情報としていた。これに対し、誤り訂正部261における誤りが訂正されたビット数を書込み時間予測情報としてもよい。読み出したデータに対して誤りが訂正されたビットに対応するメモリセルは、記憶素子321が過度に損傷していると考えられる。そのようなメモリセルを有するページに対する書込みは、ベリファイの回数および書込み不成功回数が多いと考えられ、書込み時間の代わりに誤りが訂正されたビット数により書込み時間を予測することが可能なためである。
上述の実施の形態では、ページ毎に書込み時間予測情報を計測して保持していた。これに対し、本技術の第2の実施の形態では、複数のページ毎に計測して保持する。これにより、書込み時間予測情報のサイズを小さくすることができる。
図14は、本技術の第2の実施の形態における書込み時間予測情報を示す図である。同図は、各メモリチップにおける書込みに要した時間を複数のページにより構成されるブロック毎に記録したものである。同図においては、各メモリチップの書込み時間予測情報を256個のブロック毎に保持している。ブロックのサイズとしては、例えば、4096ページを想定することができる。これは、図7において説明したページアドレスのうち、上位8ビットをブロックのアドレスとし、各メモリチップの記憶領域を265個のブロックに分割した場合と等価な構成である。このような構成にした場合、それぞれのブロックに含まれるページは、ページアドレスが連続することとなり、同じブロックに含まれるページには、同じ使用形態のデータファイルが保存される可能性が高くなる。このため、ブロックに含まれる各ページは、同等の書込み回数になることが予想され、書込み時間も近い値となる可能性が高い。したがって、ブロック単位で書込み時間予測情報を保持し、これを用いてブロックに含まれるページの書込み時間を予測することができる。
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を保持する必要がある。しかし、より正確な書込み時間の平均値を算出することができる。
上述の第1の実施の形態では、ページ毎に書込み時間予測情報を保持していた。これに対し、本技術の第3の実施の形態では、メモリモジュールに相当するメモリチップ毎に保持する。これにより、書込み時間予測情報のサイズを小さくすることができる。
図15は、本技術の第3の実施の形態における書込み時間予測情報を示す図である。同図は、各メモリチップにおける書込みの際の優先順位を表したものである。また、この優先順位は、メモリチップの書込み時間の長い順に番号付けを行ったものである。メモリチップ#0(320)乃至#3(350)における書込み時間が既知の場合には、メモリコントローラ200における書込み時間の計測を省略し、書込み時間予測情報として固定された優先順位を使用することができる。例えば、使用するメモリチップについて工場出荷時に書込み時間の計測を行い、これに基づく優先順位を生成して書込み時間予測情報として書込み時間予測情報保持部259に保持させる。リクエスト選択部256は、メモリチップ識別番号により、書込み時間予測情報保持部259に保持された書込み時間予測情報からメモリチップの優先順位を取得して、長い書込み時間が予測されるメモリチップに対する書込みリクエストを選択する。本技術の第3の実施の形態においては、書込み時間の計測を行わないため、書込み時間予測情報生成部258を備える必要はない。これ以外のメモリアクセス制御部250およびメモリコントローラ200の構成は本技術の第1の実施の形態におけるメモリアクセス制御部250およびメモリコントローラ200と同様であるため、説明を省略する。
上述の第3の実施の形態では、書込みリクエストの実行の際に、書込み時間の計測を行わず、固定の優先順位を書込み時間予測情報にしていた。これに対し、書込み時間の計測を行い、メモリチップ毎の平均値を算出して書込み時間予測情報にしてもよい。書込み時間予測情報のサイズを小さくすることができるとともに、メモリチップの使用に伴う書込み時間の変化に応じて書込み時間予測情報を変更することができるためである。この場合、書込み時間予測情報生成部258により書込み時間の計測が行われ、メモリチップ毎の平均値が算出される。次に、この平均値が書込み時間予測情報として書込み時間予測情報保持部259に保持される。なお、平均値の算出には、本技術の第2の実施の形態において説明した方式を用いることができる。
上述の第1の実施の形態では、ページ毎に書込み時間予測情報を保持していた。これに対し、本技術の第4の実施の形態では、メモリモジュールを構成するメモリバンク毎に書込み時間予測情報を保持する。これにより、メモリバンクを有するメモリモジュールを使用したシステムにおいても書込み時間予測情報に基づいて、長い書込み時間が予測される書込みリクエストを優先して実行することにより書込み処理を高速化することができる。
図16は、本技術の第4の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、メモリチップ#0(320)乃至#3(350)をメモリチップ360に変更した点において、図3において説明したメモリ300と異なっている。
上述の第4の実施の形態では、メモリバンクを有するメモリチップにおいてページ毎に書込み時間予測情報を保持していた。これに対し、各メモリバンクにおける複数のページにより構成されたブロック毎に書込み時間予測情報を保持しても良い。本技術の第2の実施の形態と同様に書込み時間予測情報のサイズを小さくすることができるためである。なお、ブロック毎の書込み時間予測情報の計測は、本技術の第2の実施の形態と同様の方式を使用することができる。
(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)複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうちより長い書込み時間が予測される前記書込みリクエストを前記書込み時間を予測するための書込み時間予測情報に基づいて優先して選択するリクエスト選択手順を具備するメモリの制御方法。
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記載のメモリコントローラ。
- 前記書込み時間予測情報生成部は、書込みを行った前記複数のメモリモジュールからデータの読出しを行い当該読み出したデータと前記書込みに係る書込みデータとが一致するか否かを判断するベリファイの回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
- 前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
- 前記複数のメモリモジュールから読み出した読出しデータの誤りの検出および訂正を行う誤り訂正部をさらに具備し、
前記書込み時間予測情報生成部は、前記訂正された前記読出しデータにおける前記誤り訂正部によって誤りが訂正されたビット数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる
請求項2記載のメモリコントローラ。 - 前記書込み時間予測情報生成部は、前記複数のメモリモジュールにおける書込み不成功回数を前記複数のメモリモジュールの各々について計測して前記書込み時間予測情報として前記書込み時間予測情報保持部に保持させる請求項2記載のメモリコントローラ。
- 前記複数のメモリモジュール毎に設けられて前記複数のメモリモジュールの各々についての前記書込みリクエストを保持して先入れ先出しする複数のリクエストキューをさらに具備し、
前記リクエスト選択部は、前記複数のリクエストキューの先頭に保持された前記書込みリクエストに対して前記書込み時間予測情報に基づく前記選択を行う
請求項1記載のメモリコントローラ。 - 前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
前記書込み時間予測情報保持部は、前記ページ毎に前記書込み時間予測情報を保持する
請求項1記載のメモリコントローラ。 - 前記複数のメモリモジュールは、データを記憶する記憶領域がページサイズにより分割されたページを単位としてアクセスされ、
前記書込み時間予測情報保持部は、前記複数のページからなるブロック毎に前記書込み時間予測情報を保持する
請求項1記載のメモリコントローラ。 - 共通の信号線で接続された複数のメモリバンクを有するメモリに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリバンクの各々について保持する書込み時間予測情報保持部と、
前記共通の信号線を介して前記複数のメモリバンクの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を具備するメモリコントローラ。 - 共通の信号線で接続された複数のメモリモジュールを有するメモリと、
前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を具備する記憶装置。 - 共通の信号線で接続された複数のメモリモジュールを有するメモリと、
前記複数のメモリモジュールに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持部と、
前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。 - 書込み時間予測情報保持部が、共通の信号線で接続された複数のメモリモジュールを有するメモリに対する書込み時間を予測するための書込み時間予測情報を前記複数のメモリモジュールの各々について保持する書込み時間予測情報保持手順と、
リクエスト選択部が、前記共通の信号線を介して前記複数のメモリモジュールの各々について書込みを要求する複数の書込みリクエストのうち最も長い前記書込み時間が予測される前記書込みリクエストを前記書込み時間予測情報に基づいて優先して選択するリクエスト選択手順と
を具備するメモリの制御方法。
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)
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)
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 |
-
2015
- 2015-10-19 WO PCT/JP2015/079413 patent/WO2016117190A1/ja active Application Filing
- 2015-10-19 JP JP2016570488A patent/JP6711281B2/ja not_active Expired - Fee Related
- 2015-10-19 US US15/542,015 patent/US10318210B2/en active Active
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 |