JP6224483B2 - 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム - Google Patents

半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP6224483B2
JP6224483B2 JP2014035343A JP2014035343A JP6224483B2 JP 6224483 B2 JP6224483 B2 JP 6224483B2 JP 2014035343 A JP2014035343 A JP 2014035343A JP 2014035343 A JP2014035343 A JP 2014035343A JP 6224483 B2 JP6224483 B2 JP 6224483B2
Authority
JP
Japan
Prior art keywords
access
memory
upper limit
row address
information
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.)
Active
Application number
JP2014035343A
Other languages
English (en)
Other versions
JP2015162253A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2014035343A priority Critical patent/JP6224483B2/ja
Publication of JP2015162253A publication Critical patent/JP2015162253A/ja
Application granted granted Critical
Publication of JP6224483B2 publication Critical patent/JP6224483B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Dram (AREA)

Description

本発明は、半導体記憶装置におけるメモリアクセス制御技術に関する。
半導体記憶メモリ(半導体記憶素子)の一種であるDRAM(Dynamic Random Access Memory)は、キャパシタ(コンデンサ)に電荷を蓄えることにより情報を記憶し、電源供給が無くなると、記憶した情報が失われる揮発性メモリである。DRAMは、一定時間が経過するとコンデンサに蓄えた電荷が放電してしまうので、定期的に電荷をチャージするリフレッシュという記憶保持動作が必要になる。
定期的に行われるリフレッシュの合間に、同一のロウ(Row)アドレスに対して、多数回のアクセスが集中すると、ロウハンマー(Row Hammer)問題が発生する可能性がある。ロウハンマー問題とは、一定時間内に同一のロウアドレスに対して数十万回以上のアクセスが集中した場合、物理的に隣接したロウアドレスに対応するデータビットの電荷が放電することにより、データ破壊を引き起こす問題である。昨今では、トランジスタの微細化、および低電圧化の影響によりDRAMのロウハンマー問題が発生しやすいと言われる。DRAMを製造するメーカーや制御チップのメーカーが、個別にこの問題への対策を行っている場合もあるが、特に対策を行っていないDRAMメーカーも存在しているという状況である。すなわち、DRAMを利用する装置が、使用するDRAMのタイプに応じた制御を行う必要がある。
そのような制御技術の一つとして、DRAMの仕様に合わせて、リフレッシュを発行する間隔時間を小さくする方法がある。しかし、固定的に短周期でリフレッシュを発行すると、メモリアクセスの性能が低下するという問題がある。そこで、必要に応じて、リフレッシュの発行間隔を調整する技術が知られている。
このような技術の一例として、特許文献1には、メモリセルへの時間当たり累積アクセスタイム(ディスターブカウント値)に基づいて、アクセスが集中するセルへのリフレッシュ動作を繰り上げることができるメモリ装置等が開示されている。このメモリ装置は、ディスターブカウントセルアレイを備え、あるメモリセルが、隣接するセルへのアクセスによって受ける影響であるディスターブカウント値を保存する。そして、カウント値比較部が、ディスターブカウントセルアレイから受信した現在カウント値を、最大ディスターブカウント値と比較する。現在カウント値が最大ディスターブカウント値よりも大きければ、リフレッシュコントローラが、正規リフレッシュの現在スケジュール内に非正規リフレッシュ動作を優先的に挿入することにより、リフレッシュ動作を行う。このようにして、このメモリ装置は、上述した固定的に短周期でリフレッシュを行う方法に比べて、リフレッシュ発行頻度を抑えることができる。
また、特許文献2には、ワード線の活性化回数が所定値を超えないようにリフレッシュを行うことができる半導体記憶装置が開示されている。この半導体記憶装置は、カウンタセンスアンプを備え、メモリセルに接続されたワード線が活性化されたときに、活性化回数をインクリメントして、カウンタセンスアンプへ書き戻す。そして、活性化回数が所定値に達した場合、臨時のリフレッシュ動作を実行する。このようにして、この半導体記憶装置は、上述した固定的に短周期でリフレッシュを行う方法に比べて、リフレッシュ発行頻度を抑えることができる。
特開2013−239228号公報 特開2007−012173号公報
しかしながら、特許文献1および2に開示された装置においては、臨時のリフレッシュ動作を追加するので、正規のリフレッシュ動作に対してリフレッシュ回数が増加するという問題がある。すなわち、これらの装置では、リフレッシュ回数の増加によるアクセス性能の低下が発生するという問題がある。
そこで、本発明の一つの目的は、リフレッシュ回数を増加させることなく、ロウハンマー問題によるデータ破壊を回避する装置などを提供することにある。
上記の目的を達成すべく、本発明に係る半導体記憶装置は、以下の構成を備えることを特徴とする。
すなわち、本発明に係る半導体記憶装置は、
メモリに対するリフレッシュの実行を通知するリフレッシュ通知手段と、
前記メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、さらに、前記リフレッシュの実行ごとの前記リクエスト回数を出力するアクセスカウンタ手段と、
前記出力されたリクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、判定結果を表すアクセス抑止情報を通知する上限判定手段と、
前記アクセス抑止情報に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記メモリアクセスリクエストをバッファに登録し、前記リフレッシュの実行が通知された後に、前記バッファに登録した前記リクエスト情報を出力する退避バッファ手段と、
前記アクセス抑止情報に基づいて、前記受信したリクエスト情報、および、前記退避バッファ手段から出力されたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御手段とを備える。
また、上記の同目的を達成すべく、本発明に係るメモリアクセス制御方法は、
メモリに対するアクセスを要求するためのリクエスト情報を受信し、
アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、
前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、
前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記メモリアクセスリクエストをバッファに登録し、
前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行う。
また、同目的は、上記の各構成を有する半導体記憶装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本発明には、リフレッシュ回数の増加による性能低下が抑制できるという効果がある。
本発明の第1の実施形態に係る半導体記憶装置1の構成を示すブロック図である。 本発明の第2の実施形態に係る記憶システムの構成を示すブロック図である。 第2の実施形態において半導体記憶装置100が行う、メモリアクセスリクエスト20の受信動作を示すフローチャートである。 第2の実施形態において半導体記憶装置100が行う、リフレッシュの際の動作を示すフローチャートである。 第2の実施形態におけるメモリアクセスリクエスト20の処理の一例を示すタイムチャートである。
次に、本発明の実施形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係る半導体記憶装置の構成を示すブロック図である。図1を参照すると、半導体記憶装置1は、アクセスカウンタ部2、記憶装置3、上限判定部5、退避バッファ部6、メモリアクセス制御部7、およびリフレッシュ通知部8を有する。半導体記憶装置1の各部は、専用のハードウェアデバイス、または論理回路によって構成されても良い。
半導体記憶装置1は、メモリ10に対するアクセス要求を制御することができる装置である。メモリ10は、リフレッシュを必要とするDRAMなどの半導体メモリ(半導体記憶素子)である。本実施形態において、メモリ10は、一例として、半導体記憶装置1の内部に含まれる。なお、メモリ10は、半導体記憶装置1の外部にあってもよい。半導体記憶装置1は、概略、メモリ10に対するアクセス要求を表す情報(リクエスト情報)を含むメモリアクセスリクエスト20を、図示しない上位装置などから受信すると、受信したメモリアクセスリクエスト20に基づいて、メモリ10に対するアクセスを実行する。以降、半導体記憶装置1が受信したメモリアクセスリクエスト20を、「受信したメモリアクセスリクエスト20」とも言う。
また、リフレッシュ通知部8は、メモリ10に対するリフレッシュの実行を、アクセスカウンタ部2、および退避バッファ部6に対して通知する。
次に本発明の実施形態の構成及び動作についてさらに詳しく説明する。
アクセスカウンタ部2は、メモリアクセスリクエスト20を受信すると、受信したメモリアクセスリクエスト20のアクセス先であるメモリ10のロウ(Row)アドレスごとに、アクセスが要求された回数(以下、「リクエスト回数」と言う)をカウントすることができる。アクセスカウンタ部2は、カウントしたリクエスト回数の値を上限判定部5に対して出力する。すなわち、アクセスカウンタ部2は、カウントしたリクエスト回数をロウアドレスごとに保持することができる。さらに、アクセスカウンタ部2は、カウントしたリクエスト回数を、上限判定部5に対して出力する。
また、アクセスカウンタ部2は、リフレッシュ通知部8からリフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスのリクエスト回数をリセットする。すなわち、アクセスカウンタ部2は、あるリフレッシュの実行から、次のリフレッシュの実行までのリフレッシュ間隔における、ロウアドレスごとのリクエスト回数を保持する。総合すると、アクセスカウンタ部2は、リフレッシュの実行ごとのリクエスト回数を出力することができる。
記憶装置3は、アクセス上限情報4を格納することができる。記憶装置3は、例えば、レジスタのような論理回路、またはSRAM(Static Random Access Memory)などにより実現される。
アクセス上限情報4は、ロウアドレスに対して、リフレッシュ間隔あたりに許容されるアクセス回数の上限を表す。すなわち、アクセス上限情報4は、「背景技術」欄において上述したロウハンマー問題によるデータ破壊を起こさずに、同じロウアドレスに対する集中的なアクセスが許容されるリクエスト回数の上限値である。本実施形態において、アクセス上限情報4は、記憶装置3にあらかじめ格納される。
上限判定部5は、アクセスカウンタ部2から出力されたリクエスト回数と、アクセス上限情報4とに基づいて、受信したメモリアクセスリクエスト20が対象とするロウアドレス(以下、「対象ロウアドレス」と言う)に対するアクセスを抑止するかどうかを判定する。そして、上限判定部5は、退避バッファ部6と、メモリアクセス制御部7とに判定結果を通知する具体的には、上限判定部5は、アクセスカウンタ部2から受け取ったリクエスト回数が、アクセス上限情報4を超える場合に、対象ロウアドレスへのアクセスを抑止することを表すアクセス抑止情報を通知する。
退避バッファ部6は、アクセス抑止情報に基づいて、対象ロウアドレスに対する、アクセス回数の上限を超えるメモリアクセスリクエスト20をバッファに登録する。すなわち、退避バッファ部6は、対象ロウアドレスへのアクセスが抑止されている場合に、処理中のメモリアクセスリクエスト20をバッファに登録する。また、退避バッファ部6は、後述するリフレッシュ通知部8からリフレッシュの実行が通知された後、バッファに登録したメモリアクセスリクエスト20(以下、「バッファされたメモリアクセスリクエスト20」と言う)を、メモリアクセス制御部7に対して出力する。
メモリアクセス制御部7は、アクセス抑止情報に基づいて、受信したメモリアクセスリクエスト20、および、退避バッファ部6から出力されたメモリアクセスリクエスト20(バッファされたメモリアクセスリクエスト20)に応じたアクセスを行う。
すなわち、メモリアクセス制御部7は、対象ロウアドレスへのアクセスが抑止されていない場合、受信したメモリアクセスリクエスト20、およびバッファされたメモリアクセスリクエスト20に応じて、メモリ10へのアクセスを行う。以下では、メモリアクセスリクエスト20に応じてメモリ10へのアクセスを行うことを「メモリアクセスリクエスト20を実行する」とも言う。
一方、対象ロウアドレスへのアクセスが抑止されている場合、メモリアクセス制御部7は、受信したメモリアクセスリクエスト20を実行しない。すなわち、メモリアクセス制御部7は、対象ロウアドレスへのアクセスを行わない。
また、メモリアクセス制御部7は、退避バッファ部6から受けたメモリアクセスリクエスト20を実行する場合、半導体記憶装置1がメモリアクセスリクエスト20を受信した順番が守られるように、メモリ10に対するアクセスの順序制御を行ってもよい。すなわち、メモリアクセス制御部7は、同じ対象ロウアドレスに対するバッファされたメモリアクセスリクエスト20と、図示しない上位装置などから発行された新たなメモリアクセスリクエスト20とを同時に受信した場合、バッファされたメモリアクセスリクエスト20を優先して実行してもよい。
また、メモリアクセス制御部7は、新たに受信したメモリアクセスリクエスト20によってメモリ10に対してアクセスが行われるタイミングを避けて、バッファされたメモリアクセスリクエスト20を実行してもよい。
このようにして、本実施形態によれば、リフレッシュ間隔あたりに許容されるアクセス回数の上限を超える分のメモリアクセスリクエスト20を、次のリフレッシュが実行された後に実行することができる。この結果として、本実施形態では、ロウハンマー問題によるデータの破壊を回避することができる。
以上説明したように、本実施形態には、リフレッシュ回数を増加させることなく、ロウハンマー問題によるデータ破壊を回避することができるという効果がある。この結果として、本実施形態は、リフレッシュ回数の増加による性能低下を抑止したロウハンマー問題への対応を可能とするという効果がある。
その理由は、上限判定部5が、アクセス上限情報4に基づいて、上限を超えるメモリアクセスリクエスト20によるアクセスを抑止するべきか否かを判定することができるからである。また、退避バッファ部6が、アクセスが抑止されている場合に、上限を超えるメモリアクセスリクエスト20を一時的にバッファに登録することができるからである。そして、次のリフレッシュの実行によってロウハンマー問題が発生しない(アクセスが抑止されない)状態となった後に、メモリアクセス制御部7は、バッファされたメモリアクセスリクエスト20を処理することができるからである。
また、本実施形態には、ロウハンマー問題の回避方法が異なるメモリの採用が容易になるという効果もある。
その理由は、記憶装置3がアクセス上限情報4を保存しているからである。すなわち、本実施形態は、記憶装置3に保存しているアクセス上限情報4を変更すれば、ロウハンマー問題の回避方法が異なるメモリを採用することができるからである。
なお、本実施形態では、アクセスカウンタ部2はメモリアクセスリクエスト20全体を取得したが、メモリアクセスリクエスト20の取得方式はこれに限定されない。例えば、アクセスカウンタ部2は、メモリアクセスリクエスト20のアクセス先を示すアドレス情報だけを取得してもよい。
したがって、アクセスカウンタ部2は、メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先であるメモリのロウアドレスごとに、そのリクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントすればよい。さらに、アクセスカウンタ部2は、リフレッシュの実行ごとのリクエスト回数を出力すればよい。
また、アクセスカウンタ部2、上限判定部5、退避バッファ部6、およびメモリアクセス制御部7の相互における通知および情報の伝達方法も、本実施形態には限定されない。例えば、アクセスカウンタ部2、退避バッファ部6、およびメモリアクセス制御部7が、図示しない記憶装置などに格納されたメモリアクセスリクエスト20の必要な部分を、必要なタイミングにおいて、それぞれ参照してもよい。他に例えば、アクセスカウンタ部2、または上限判定部5が、それぞれ情報を出力する代わりに、その情報を利用する各部が、レジスタなどの記憶装置に格納された当該情報を、参照してもよい。
また、上限判定部5、退避バッファ部6、またはメモリアクセス制御部7は、アクセスの順序制御に関連する情報をメモリアクセスリクエスト20に付加してもよい。例えば、メモリアクセスリクエストにおける順序制御に関連する情報として、有効ビット(Valid Bit)が知られている。有効ビットは、複数のリクエストを並行処理する過程において、メモリアクセスリクエストに含まれるデータが最新ではなくなった場合に、すでにそのデータが古いことを表すことができる情報である。有効ビットは、メモリから一時的に退避させたリクエストを格納するバッファ、およびキャッシュなどの制御によく使用される。また、メモリアクセス制御部7は、メモリ10に対するアクセスの順序制御において、他の処理部、または、上位装置によってメモリアクセスリクエスト20に付加された順序制御に関連する情報を用いてもよい。
また、リフレッシュを実行する単位(範囲)は、メモリ10、またはメモリの製造ベンダごとに制御が異なる可能性がある。すなわち、リフレッシュは、1回ですべてのロウアドレスに対して実施されることも、詳細メモリ単位で分割して実施されることもある。後者の場合、リフレッシュ通知部8は、リフレッシュのタイミングに加えて、実施された範囲をも通知することができる。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする第2の実施形態について説明する。以下では、第2の実施形態に係る特徴的な部分を中心に説明し、第1の実施形態と同様な構成を有する第2の実施形態の構成要素には、第1の実施形態で付した参照符号と同一の参照符号を付し、その構成要素について重複する詳細な説明は省略する。
本実施形態では、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる複数のメモリ10を制御することができる点が上述した第1の実施形態と異なる。同様に、本実施形態では、各メモリ10に対応する複数のアクセス回数上限情報4を含むことができる点が上述した第1の実施形態と異なる。また、本実施形態は、半導体記憶装置を論理回路によって実現した具体例である。
まず、図2を参照して、以下に本実施形態の構成を説明する。図2は、本発明の第2の実施形態に係る記憶システムの構成を示すブロック図である。以下、本実施形態の説明においても、処理対象となっているメモリアクセスリクエスト20が対象とするロウアドレスを「対象ロウアドレス」と言う。
図2を参照すると、本実施形態は、半導体記憶装置100および上位装置200を有する。半導体記憶装置100と上位装置200とは、バスのような信号線、または、通信ネットワークなどによって通信可能に接続されている。半導体記憶装置100、および上位装置200の各部は、専用のハードウェアデバイス、または論理回路によって構成されても良い。上述したように、半導体記憶装置100は、複数のメモリ10に対するアクセス要求を制御することができる装置である。メモリ10は、それぞれリフレッシュを必要とするDRAMなどの半導体メモリ(半導体記憶素子)である。メモリ10は、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる。本実施形態において、これらのメモリ10は、一例として、半導体記憶装置100の内部に含まれる。なお、これらのメモリ10は、半導体記憶装置100の外部にあってもよい。
上位装置200は、第1の実施形態におけるメモリアクセスリクエスト20を、半導体記憶装置100に対して発行することが可能な装置である。
半導体記憶装置100は、退避バッファ部6、メモリアクセス制御部7、リフレッシュ通知部8、アクセスカウンタ部101、アクセス回数上限値レジスタ102、比較部103、および、論理積演算部104を有する。
アクセスカウンタ部101は、第1の実施形態におけるアクセスカウンタ部2に対応する。
アクセス回数上限値レジスタ102は、第1の実施形態における記憶装置3に対応する。
比較部103および論理積演算部104は、第1の実施形態における上限判定部5を論理回路によって構成した例である。すなわち、比較部103および論理積演算部104の機能は、第1の実施形態における上限判定部5に対応する。
退避バッファ部6、メモリアクセス制御部7、および、リフレッシュ通知部8は、第1の実施形態における同一の参照符号を有する構成要素を基本とする。
本実施形態が、第1の実施形態と異なる点は、主に、各構成要素の間の通知および情報の授受を信号線によって伝送する点と、メモリ10が複数含まれることにより一部の構成要素の数が増加する点である。
すなわち、本実施形態におけるアクセスカウンタ部101は、複数のメモリ10におけるロウアドレスごとに、リクエスト回数をカウントして保持することができる。アクセスカウンタ部101は、カウントしたリクエスト回数の値を、比較器103に対して出力する。また、アクセスカウンタ部101は、対象ロウアドレスに対応するロウアドレス一致信号110を、論理積演算部104に対して出力することができる。本実施形態は、例えば、複数のメモリ10の各ロウアドレスに対応するアクセスカウンタ部101が、それぞれ別のロウアドレス一致信号(信号線)110を介して、論理積演算部104と接続されている例として解釈することもできる。
ロウアドレス一致信号110は、現在処理している対象ロウアドレスを退避バッファ部6に対して通知することができる信号である。
また、アクセスカウンタ部101は、リフレッシュ通知部8から、リフレッシュ指示信号111によってリフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスのリクエスト回数をリセットする。本実施形態において、リフレッシュは、一例として、すべてのメモリ10に対して一度に実施される前提とする。すなわち、アクセスカウンタ部101は、リフレッシュ指示信号111を受けたときに、すべてのロウアドレスに関するリクエスト回数をリセットする。
リフレッシュ指示信号111は、本実施形態においては、リフレッシュの実行が指示されたことを表す。このように、リフレッシュ通知部8が通知する「リフレッシュの実行」とは、リフレッシュがこれから行われる予定であってもよい。なお、メモリアクセス制御部7は、通知されたリフレッシュの実行が完了した後に、アクセスが抑止されていたロウアドレスに対するアクセスを行う。例えば、本実施形態は、リフレッシュの指示が通知された後、すぐにリフレッシュを行うことにより、メモリアクセス制御部7が、通知のすぐ次の時刻にアクセスする場合でも、必ず当該リフレッシュが完了しているように構成されている。
本実施形態のアクセス回数上限値レジスタ102においては、リフレッシュ間隔あたりに許容されるアクセス回数の上限が、複数のメモリ10のおのおのに存在する。すなわち、アクセス回数上限値レジスタ102は、各メモリ10に対応するアクセス上限情報4を格納することができる。アクセス上限情報4は、第1の実施形態と同様に、ロウアドレスに対して、リフレッシュ間隔あたりに許容されるアクセス回数の上限を表す。本実施形態では、アクセス回数上限値レジスタ102は、メモリ10ごとに異なるアクセス上限情報4を有することができる。
比較器103は、アクセスカウンタ部101から出力されたリクエスト回数が、対象ロウアドレスに対応するメモリ10のアクセス上限情報4を超える場合に、対象ロウアドレスに対応するロウアクセス抑止信号112を出力する。比較器103は、アクセス回数上限値レジスタ102からアクセス上限情報4を取得する。比較器103は、ロウアクセス抑止信号112を、論理積演算部104、およびメモリアクセス制御部7に対して出力する。
ロウアクセス抑止信号112は、特定のロウアドレスに対するリクエスト回数がアクセス上限を超えていることを表す。ロウアクセス抑止信号112は、ロウアドレスごとに存在する。
論理積演算部104は、アクセスカウンタ部101から出力されるロウアドレス一致信号110と、比較器103から出力されるロウアクセス抑止信号112との論理積を取った結果を、退避バッファ部6に対して出力する。すなわち、論理積演算部104は、第1の実施形態における上限判定部5と同様に、現在処理しているメモリアクセスリクエスト20が、アクセス上限情報4を超えるリクエストであることを、退避バッファ部6に対して出力する。この出力が、第1の実施形態における上限判定部5によるアクセスを抑止するかどうかに関する判定結果(アクセス抑止情報)の通知に対応する。
また、本実施形態においては、上位装置200と半導体記憶装置100との間を接続する信号線を介して、アクセスカウンタ部101、退避バッファ部6、およびメモリアクセス制御部7が、メモリアクセスリクエスト20を受信可能である。
退避バッファ部6、メモリアクセス制御部7、および、リフレッシュ通知部8の各構成および内容は、上述した点以外は、第1の実施形態と同様であるので、重複する詳細な説明は省略する。
次に、上述した構成を備える本実施形態の動作について、詳細に説明する。
まず、図3および図5を参照して、メモリアクセスリクエスト20を受信したときの半導体記憶装置100の動作を説明する。図3は、第2の実施形態において半導体記憶装置100が行う、メモリアクセスリクエスト20の受信動作を示すフローチャートである。図5は、第2の実施形態におけるメモリアクセスリクエスト20の処理の一例を示すタイムチャートである。
図5における「メモリアクセスリクエスト20」の行に記述されたアルファベット(「A」、「B」、「C」、「D」、「E」)は、その時刻において受信したメモリアクセスリクエスト20のアクセス先である対象ロウアドレスを表す。「アクセスカウンタ部101(ロウアドレス「A」)」の行は、その時刻におけるロウアドレス「A」に対するアクセスカウンタ部101の値(すなわち、リクエスト回数)を表す。「ロウアドレス一致信号110」、および「ロウアクセス抑止信号112」の各行は、その時刻におけるロウアドレス「A」に対応する各信号の状態を表す。「リフレッシュ指示信号111」の行は、その時刻における当該信号の状態を表す。「アクセス回数上限値レジスタ102」の行は、メモリアクセスリクエスト20のアクセス先であるメモリ10に対する上限値の例として「3」が、アクセス回数上限値レジスタ102に格納されていることを表す。「退避バッファ部6」の行は、その時刻において格納(退避)された、メモリアクセスリクエスト20の対象ロウアドレスを表す。「メモリ10」の行は、その前の時刻において実行されたメモリアクセスリクエスト20により、メモリ10においてアクセスが行われたロウアドレスを表す。
図5において、アクセスカウンタ部101(ロウアドレス「A])の初期状態は、「0」とする。また、「ロウアドレス一致信号110」、「リフレッシュ指示信号111」、および「ロウアクセス抑止信号112」の初期状態は、いずれの信号も「0」とする。
なお、以下の動作説明においては、説明を簡潔にするために、「アクセスカウンタ部101(ロウアドレス「A」)」は、単に「アクセスカウンタ部101」と記述する。図5は、ロウアドレス「A」に対してアクセスが集中する様子を示した一例である。したがって、説明を簡潔にするために、以下においては、ロウアドレス「A」以外のロウアドレスに関する動作の説明を省略する。
まず、上位装置200がメモリアクセスリクエスト20を発行すると、半導体記憶装置100がメモリアクセスリクエスト20を受信する(ステップS10)。具体的には、メモリアクセスリクエスト20の受信データが、アクセスカウンタ部101、退避バッファ部6、およびメモリアクセス制御部7に対して入力可能となる。図5を参照すると、時刻T1において、ロウアドレス「A」に対するメモリアクセスリクエストが、受信される。
次に、アクセスカウンタ部101が、受信したメモリアクセスリクエスト20のアクセス先であるメモリ10のロウアドレスごとに、リクエスト回数をカウントする(ステップS11)。図5を参照すると、時刻T1において、アクセスカウンタ部101が、1を追加することにより、リクエスト回数を「1」とする。アクセスカウンタ部101は、カウントしたリクエスト回数の値「1」を、比較器103に対して出力する。また、アクセスカウンタ部101は、ロウアドレス「A」に対応するロウアドレス一致信号110を、論理積演算部104に対して出力する。図5を参照すると、アクセスカウンタ部101は、ロウアドレス「A」に対応するロウアドレス一致信号110を「1」とする。
次に、比較部103および論理積演算部104は、ロウアドレスに対するリクエスト回数がアクセス上限を超えるかどうかに応じて、対象ロウアドレスに対するアクセスの抑止要否を信号の出力によって示す(ステップS12)。
すなわち、まず、比較部103は、アクセスカウンタ部101から出力されたリクエスト回数と、対応するロウアドレスに関するアクセス回数上限値レジスタ102に格納されたアクセス上限情報4とを比較する。本実施形態においては、比較部103は、リクエスト回数を出力したアクセスカウンタ部101に対応するロウアドレスに基づいて、複数のアクセス回数上限値レジスタ102の中から参照するレジスタを決定する。比較部103は、リクエスト回数がアクセス上限情報4を超えない場合、ロウアクセス抑止信号112を出力しない(OFF:「0」にする)。次に、論理積演算部104は、アクセスカウンタ部101から出力されるロウアドレス一致信号110と、比較器103から出力されるロウアクセス抑止信号112との論理積を取った結果を、退避バッファ部6に対して出力する。なお、リクエスト回数がアクセス上限情報4を超える場合における比較部103の動作以降は、後述する。
図5を参照すると、時刻T1において、比較部103は、ロウアドレス「A」に対応するアクセスカウンタ部101から出力されたリクエスト回数「1」と、ロウアドレス「A」に対応するアクセス回数上限値レジスタ102に格納された上限値「3」とを比較する。そして、リクエスト回数が上限値を超えないので、比較部103は、ロウアドレス「A」に対応するロウアクセス抑止信号112を「0」とする。次に、論理積演算部104は、アクセスカウンタ部101から出力されたロウアドレス「A」に対応するロウアドレス一致信号110の示す「1」と、ロウアクセス抑止信号112の示す「0」との論理積の結果である「0」を、退避バッファ部6に対して出力する。なお、上述したように、この論理積演算部104が出力する論理積の結果である「0」が、時刻T1における「アクセス抑止情報」に対応する。
退避バッファ部6は、アクセス抑止情報が示す「0」に基づいて、リクエスト回数がアクセス上限を超えていない場合、バッファへの登録を行わない(ステップS20)。上述したとおり、時刻T1において、論理積演算部104が出力するアクセス抑止情報は「0」であるので、退避バッファ部6は、バッファへの登録を行わない。この場合、メモリアクセス制御部7は、ロウアクセス抑止信号112が示す「0」に基づいて、受信したメモリアクセスリクエスト20に応じたアクセスを行う(ステップS21)。すなわち、時刻T1において、ロウアクセス抑止信号112は出力されていないので、メモリアクセス制御部7は、受信したロウアドレス「A」に対するメモリアクセスリクエスト20を実行する。
以上のように、本実施形態においては、メモリアクセス制御部7は、メモリアクセスリクエスト20において指定されているアクセス先のアドレス(対象ロウアドレス)に対応するロウアクセス抑止信号112をアクセス抑止情報として参照し、アクセスを実行する。
図5において、メモリアクセス制御部7が、時刻T1にメモリ10にアクセスをしたことは、次の時刻T2におけるメモリ10の欄に示される。
このようにして、図5における時刻T3まで、半導体記憶装置100は、受信したメモリアクセスリクエスト20を順次実行する。
図5を参照すると、時刻T4において、半導体記憶装置100は、ロウアドレス「A」に対する4つ目のメモリアクセスリクエスト20を受信する(ステップS10)。ステップS11において、アクセスカウンタ部101は、ロウアドレス「A」に対するリクエスト回数を「4」とする。
ここで、ステップS12において、リクエスト回数がアクセス上限情報4を超える場合における比較部103の動作以降を説明する。リクエスト回数がアクセス上限情報4を超える場合、比較部103は、論理積演算部104、およびメモリアクセス制御部7に対して、アクセスを抑止することを表すロウアクセス抑止信号112を出力する(ステップS12)。
図5を参照すると、時刻T4において、比較部103は、アクセスカウンタ部101から出力されたリクエスト回数「4」が、アクセス回数上限値レジスタ102に格納された上限値「3」を超えるので、ロウアドレス「A」に対応するロウアクセス抑止信号112を「1」とする。すなわち、論理積演算部104は、アクセスカウンタ部101から出力されたロウアドレス「A」に対応するロウアドレス一致信号110の示す「1」と、ロウアクセス抑止信号112の示す「1」との論理積の結果である「1」を、退避バッファ部6に対して出力する。なお、上述したように、この論理積演算部104が出力する論理積の結果である「1」が、時刻T4における「アクセス抑止情報」に対応する。
退避バッファ部6は、アクセス抑止情報が示す「1」に基づいて、アクセス上限を超えるメモリアクセスリクエスト20をバッファに登録する(ステップS13)。すなわち、退避バッファ部6は、時刻T4に受信したメモリアクセスリクエスト20がアクセス上限を超えるので、当該メモリアクセスリクエスト20をバッファに登録する。図5において、退避バッファ部6が、時刻T4に受信したメモリアクセスリクエスト20をバッファに登録したことは、次の時刻T5における退避バッファ部6の欄に示される。
一方、時刻T4のステップS13において、ロウアドレス「A」に対応するロウアクセス抑止信号112は「1」なので、メモリアクセス制御部7は、受信したメモリアクセスリクエスト20を実行せずに廃棄する(ステップS14)。
このようにして、図5における時刻T6の前まで、半導体記憶装置100は、受信したロウアドレス「A」に対するメモリアクセスリクエスト20をバッファに登録しながら、その他のロウアドレスに対するメモリアクセスリクエスト20を順次実行する。
以上が、メモリアクセスリクエスト20を受信したときの半導体記憶装置100の動作の説明である。
次に、図4および図5を参照して、リフレッシュの際の半導体記憶装置100の動作を説明する。図4は、第2の実施形態において半導体記憶装置100が行う、リフレッシュの際の動作を示すフローチャートである。
まず、リフレッシュ通知部8が、メモリ10に対するリフレッシュの実行を、アクセスカウンタ部101、および退避バッファ部6に対して通知する(ステップS30)。リフレッシュ通知部8は、アクセスカウンタ部101、および退避バッファ部6に対して、リフレッシュ指示信号111を出力する。図5を参照すると、時刻T6において、リフレッシュ通知部8は、リフレッシュ指示信号111を「1」とする。上述したように、本実施形態においては、リフレッシュ通知部8は、リフレッシュの実行が指示されたことを通知する。本実施形態では、例えば、図示しない制御部が、リフレッシュの実行タイミングおよび実行を制御する。なお、この具体例において、リフレッシュ通知部8がリフレッシュの実行を通知した後、実際にリフレッシュが実行されることを前提とする。
アクセスカウンタ部101は、リフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスに対するリクエスト回数をリセットする(ステップS31)。本実施形態においては、上述したようにリフレッシュは1度にすべてのメモリ10に対して実行されるので、アクセスカウンタ部101は、すべてのロウアドレスに対するリクエスト回数をリセットする。図5を参照すると、時刻T6において、リフレッシュ指示信号111が「1」なので、アクセスカウンタ部101は、すべてのロウアドレスに対するアクセスカウンタ部2の値を「0」にする。
一方、退避バッファ部6は、リフレッシュの実行が通知された後、バッファされたメモリアクセスリクエスト20を、メモリアクセス制御部7に対して出力する。メモリアクセス制御部7は、ロウアクセス抑止信号112に基づいて、受信したメモリアクセスリクエスト20、および、退避バッファ部6から出力されたメモリアクセスリクエスト20を実行する。すなわち、リクエスト回数がリセットされたことにより、ステップS31以降、ロウアドレス「A」に対するロウアクセス抑止信号112が、出力されなくなる(「0」になる)ので、メモリアクセス制御部7は、ロウアドレス「A」に対するメモリアクセスリクエスト20を実行する(ステップS32)。
なお、第1の実施形態において説明したように、第2の実施形態においても退避バッファ部6から受けたメモリアクセスリクエスト20を実行する場合、メモリアクセス制御部7は、メモリ10に対するアクセスの順序制御を行ってもよい。メモリアクセス制御部7が行う順序制御の一例を、図5に示す。図5を参照すると、メモリアクセス制御部7は、時刻T6にリフレッシュの実行が通知された後、新たに受信した他のロウアドレスに対するアクセスを優先することにより、初めにバッファされたメモリアクセスリクエスト20を時刻T7において実行する。このようにして、メモリアクセス制御部7は、バッファされたメモリアクセスリクエスト20の実行が、受信したメモリアクセスリクエスト20の処理に対して与える影響を低減することができる。
また、メモリアクセス制御部7は、時刻T7において受信したロウアドレス「A」に対するメモリアクセスリクエスト20を、それ以前にバッファされたロウアドレス「A」に対するメモリアクセスリクエスト20の実行後である時刻T9まで待合せてから実行する。このようにして、メモリアクセス制御部7は、バッファすることによりメモリアクセスリクエスト20の実行順番が変わることによる問題の発生を避けることができる。
メモリアクセス制御部7による順序制御の方法は、図5に示す具体例に限定されない。
このようにして、本実施形態によれば、メモリ10によって異なるアクセス上限情報4に基づいて、その上限を超える分のメモリアクセスリクエスト20を、次のリフレッシュが実行された後に実行することができる。その結果として、本実施形態によれば、アクセス上限情報4が異なる複数のメモリ10に対して、ロウハンマー問題によるデータの破壊を回避することができる。
以上、説明したように、本実施形態には、上述した第1の実施形態と同様の効果に加えて、さらに、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる複数のメモリ10を混在して使用することができるという効果もある。
その理由は、複数のアクセス回数上限値レジスタ102を有することにより、メモリ10ごとに異なるアクセス上限情報4を保持することができるからである。
また、本発明の実施形態において、上位装置とメモリ10以外の構成部分は、コンピュータ回路によって実現されてもよい。この場合、プロセッサが、記憶媒体に書き込まれたプログラムに基づいて、上述した第1および第2の実施形態のメモリアクセス及びリフレッシュを制御してもよい。
1、100 半導体記憶装置
2、101 アクセスカウンタ部
3 記憶装置
4 アクセス上限情報
5 上限判定部
6 退避バッファ部
7 メモリアクセス制御部
8 リフレッシュ通知部
10 メモリ
20 メモリアクセスリクエスト
102 アクセス回数上限値レジスタ
103 比較部
104 論理積演算部
110 ロウアドレス一致信号
111 リフレッシュ指示信号
112 ロウアクセス抑止信号

Claims (8)

  1. メモリに対するリフレッシュの実行を通知するリフレッシュ通知手段と、
    前記メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、さらに、前記リフレッシュの実行ごとの前記リクエスト回数を出力するアクセスカウンタ手段と、
    前記出力されたリクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、判定結果を表すアクセス抑止情報を通知する上限判定手段と、
    前記アクセス抑止情報に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録し、前記リフレッシュの実行が通知された後に、前記バッファに登録した前記リクエスト情報を出力する退避バッファ手段と、
    前記アクセス抑止情報に基づいて、前記受信したリクエスト情報、および、前記退避バッファ手段から出力されたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御手段と
    を有する半導体記憶装置。
  2. 前記アクセス上限情報に対応する前記メモリを含み、
    前記メモリアクセス制御手段と前記メモリとを接続した
    請求項1記載の半導体記憶装置。
  3. 前記上限判定手段は、
    前記アクセス上限情報を複数有し、
    前記出力されたリクエスト回数と、前記リクエスト情報によって要求されるアクセス先である前記メモリに対応するアクセス上限情報とに基づいて前記アクセス抑止情報を出力する
    請求項1記載の半導体記憶装置。
  4. 対応する前記アクセス上限情報が異なる前記メモリを複数含み、
    前記メモリアクセス制御手段と、複数の前記メモリとを接続した
    請求項3記載の半導体記憶装置。
  5. メモリに対するアクセスを要求するためのリクエスト情報を受信し、
    アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、
    前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、
    前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録し、
    前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行う
    メモリアクセス制御方法。
  6. 前記アクセス上限情報を複数有し、
    前記出力されたリクエスト回数と、前記リクエスト情報のアクセス先である前記メモリに対応するアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する
    請求項5記載のメモリアクセス制御方法。
  7. 半導体記憶装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムであって、
    メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントするアクセスカウンタ処理と、
    前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する上限判定処理と、
    前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録する退避バッファ処理と、
    前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御処理と
    をコンピュータに実行させるコンピュータ・プログラム。
  8. 前記アクセス上限情報を複数有し、
    前記上限判定処理において、前記出力されたリクエスト回数と、前記リクエスト情報のアクセス先である前記メモリに対応するアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する処理
    を前記コンピュータに実行させる請求項7記載のコンピュータ・プログラム。
JP2014035343A 2014-02-26 2014-02-26 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム Active JP6224483B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014035343A JP6224483B2 (ja) 2014-02-26 2014-02-26 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014035343A JP6224483B2 (ja) 2014-02-26 2014-02-26 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2015162253A JP2015162253A (ja) 2015-09-07
JP6224483B2 true JP6224483B2 (ja) 2017-11-01

Family

ID=54185257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014035343A Active JP6224483B2 (ja) 2014-02-26 2014-02-26 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP6224483B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031674B2 (en) * 2015-10-07 2018-07-24 Samsung Electronics Co., Ltd. DIMM SSD addressing performance techniques
JP6707628B2 (ja) 2016-04-08 2020-06-10 ウルトラメモリ株式会社 半導体記憶装置
US10192608B2 (en) * 2017-05-23 2019-01-29 Micron Technology, Inc. Apparatuses and methods for detection refresh starvation of a memory
KR102615012B1 (ko) 2018-11-12 2023-12-19 삼성전자주식회사 메모리 장치 및 그것의 동작 방법
CN114974343A (zh) * 2021-02-24 2022-08-30 华邦电子股份有限公司 半导体存储装置
US11798609B2 (en) 2021-08-06 2023-10-24 Winbond Electronics Corp. Semiconductor memory device including control unit controlling time interval of refresh operation on memory to shorten interval between memory refresh operations corresponding to read/write access requirement
US11790974B2 (en) 2021-11-17 2023-10-17 Micron Technology, Inc. Apparatuses and methods for refresh compliance

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938573B2 (en) * 2012-06-30 2015-01-20 Intel Corporation Row hammer condition monitoring
US9032141B2 (en) * 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
JP6142788B2 (ja) * 2013-12-04 2017-06-07 富士通株式会社 半導体記憶装置
US9589606B2 (en) * 2014-01-15 2017-03-07 Samsung Electronics Co., Ltd. Handling maximum activation count limit and target row refresh in DDR4 SDRAM

Also Published As

Publication number Publication date
JP2015162253A (ja) 2015-09-07

Similar Documents

Publication Publication Date Title
JP6224483B2 (ja) 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム
TWI646533B (zh) 處理第四代雙倍資料率同步動態隨機存取記憶體中的最大啓動計數限制及目標列再新之技術
US8909874B2 (en) Memory reorder queue biasing preceding high latency operations
US9021228B2 (en) Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US20110320696A1 (en) Edram refresh in a high performance cache architecture
US9928171B2 (en) Apparatuses and methods for providing data to a configurable storage area
US8560767B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
US9563565B2 (en) Apparatuses and methods for providing data from a buffer
CN110741436A (zh) 用于具有集成处理器的dram的行锤效应校正逻辑模块
US10346090B2 (en) Memory controller, memory buffer chip and memory system
US20190073161A1 (en) Memory controller that filters a count of row activate commands collectively sent to a set of memory banks
JP6146128B2 (ja) データ処理装置
US9632958B2 (en) System for migrating stash transactions
US8169852B2 (en) Memory control circuit, control method, and storage medium
US10725698B2 (en) Memory controller and control method thereof
KR20210013732A (ko) Gpu 개시 통신을 위한 네트워크 패킷 템플레이팅
US10867642B2 (en) Active random access memory
KR20230159437A (ko) 단일 포트로부터의 공유형 다중 포트 메모리
US10423548B2 (en) Memory controller, control method for the memory controller, and control method for memory
US10580110B2 (en) Hardware structure to track page reuse
JP6004463B2 (ja) 記憶装置及びその制御方法
US20130346701A1 (en) Replacement method and apparatus for cache
JP2018128991A (ja) メモリコントローラおよび方法
US20100268977A1 (en) Method and apparatus for accessing memory units
JP2018081642A (ja) メモリコントローラおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170116

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: 20170912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171005

R150 Certificate of patent or registration of utility model

Ref document number: 6224483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150