(57)【要約】【課題】  メモリに対するリフレッシュ回数を増加させることなく、ロウハンマー問題によるデータ破壊を回避する半導体記憶装置などを提供する。【解決手段】  本発明の半導体記憶装置は、メモリのロウアドレスごとに、アクセスが要求された回数を表すリクエスト回数をカウントし、リフレッシュの実行ごとのリクエスト回数を出力するアクセスカウンタ手段と、リクエスト回数と、ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、ロウアドレスに対するアクセスを抑止するかどうかを判定し、判定結果を表すアクセス抑止情報を通知する上限判定手段と、アクセス抑止情報に基づいて、アクセス回数の上限を超えるリクエスト情報をバッファに登録する退避バッファ手段と、リフレッシュの実行が通知された後に、バッファされたリクエスト情報に応じたアクセスを行うメモリアクセス制御手段とを有する。【選択図】      図１
2015162253.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対するリフレッシュの実行を通知するリフレッシュ通知手段と、
前記メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、さらに、前記リフレッシュの実行ごとの前記リクエスト回数を出力するアクセスカウンタ手段と、
前記出力されたリクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、判定結果を表すアクセス抑止情報を通知する上限判定手段と、
前記アクセス抑止情報に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録し、前記リフレッシュの実行が通知された後に、前記バッファに登録した前記リクエスト情報を出力する退避バッファ手段と、
前記アクセス抑止情報に基づいて、前記受信したリクエスト情報、および、前記退避バッファ手段から出力されたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御手段と
を有する半導体記憶装置。
【請求項２】
前記アクセス上限情報に対応する前記メモリを含み、
前記メモリアクセス制御手段と前記メモリとを接続した
請求項１記載の半導体記憶装置。
【請求項３】
前記上限判定手段は、
前記アクセス上限情報を複数有し、
前記出力されたリクエスト回数と、前記リクエスト情報によって要求されるアクセス先である前記メモリに対応するアクセス上限情報とに基づいて前記アクセス抑止情報を出力する
請求項１記載の半導体記憶装置。
【請求項４】
対応する前記アクセス上限情報が異なる前記メモリを複数含み、
前記メモリアクセス制御手段と、複数の前記メモリとを接続した
請求項３記載の半導体記憶装置。
【請求項５】
メモリに対するアクセスを要求するためのリクエスト情報を受信し、
アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、
前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、
前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録し、
前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行う
メモリアクセス制御方法。
【請求項６】
前記アクセス上限情報を複数有し、
前記出力されたリクエスト回数と、前記リクエスト情報のアクセス先である前記メモリに対応するアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する
請求項５記載のメモリアクセス制御方法。
【請求項７】
半導体記憶装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムであって、
メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントするアクセスカウンタ処理と、
前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する上限判定処理と、
前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記リクエスト情報をバッファに登録する退避バッファ処理と、
前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御処理と
をコンピュータに実行させるコンピュータ・プログラム。
【請求項８】
前記アクセス上限情報を複数有し、
前記上限判定処理において、前記出力されたリクエスト回数と、前記リクエスト情報のアクセス先である前記メモリに対応するアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定する処理
を前記コンピュータに実行させる請求項７記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置におけるメモリアクセス制御技術に関する。
【背景技術】
【０００２】
半導体記憶メモリ（半導体記憶素子）の一種であるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、キャパシタ（コンデンサ）に電荷を蓄えることにより情報を記憶し、電源供給が無くなると、記憶した情報が失われる揮発性メモリである。ＤＲＡＭは、一定時間が経過するとコンデンサに蓄えた電荷が放電してしまうので、定期的に電荷をチャージするリフレッシュという記憶保持動作が必要になる。
【０００３】
定期的に行われるリフレッシュの合間に、同一のロウ（Ｒｏｗ）アドレスに対して、多数回のアクセスが集中すると、ロウハンマー（Ｒｏｗ  Ｈａｍｍｅｒ）問題が発生する可能性がある。ロウハンマー問題とは、一定時間内に同一のロウアドレスに対して数十万回以上のアクセスが集中した場合、物理的に隣接したロウアドレスに対応するデータビットの電荷が放電することにより、データ破壊を引き起こす問題である。昨今では、トランジスタの微細化、および低電圧化の影響によりＤＲＡＭのロウハンマー問題が発生しやすいと言われる。ＤＲＡＭを製造するメーカーや制御チップのメーカーが、個別にこの問題への対策を行っている場合もあるが、特に対策を行っていないＤＲＡＭメーカーも存在しているという状況である。すなわち、ＤＲＡＭを利用する装置が、使用するＤＲＡＭのタイプに応じた制御を行う必要がある。
【０００４】
そのような制御技術の一つとして、ＤＲＡＭの仕様に合わせて、リフレッシュを発行する間隔時間を小さくする方法がある。しかし、固定的に短周期でリフレッシュを発行すると、メモリアクセスの性能が低下するという問題がある。そこで、必要に応じて、リフレッシュの発行間隔を調整する技術が知られている。
【０００５】
このような技術の一例として、特許文献１には、メモリセルへの時間当たり累積アクセスタイム（ディスターブカウント値）に基づいて、アクセスが集中するセルへのリフレッシュ動作を繰り上げることができるメモリ装置等が開示されている。このメモリ装置は、ディスターブカウントセルアレイを備え、あるメモリセルが、隣接するセルへのアクセスによって受ける影響であるディスターブカウント値を保存する。そして、カウント値比較部が、ディスターブカウントセルアレイから受信した現在カウント値を、最大ディスターブカウント値と比較する。現在カウント値が最大ディスターブカウント値よりも大きければ、リフレッシュコントローラが、正規リフレッシュの現在スケジュール内に非正規リフレッシュ動作を優先的に挿入することにより、リフレッシュ動作を行う。このようにして、このメモリ装置は、上述した固定的に短周期でリフレッシュを行う方法に比べて、リフレッシュ発行頻度を抑えることができる。
【０００６】
また、特許文献２には、ワード線の活性化回数が所定値を超えないようにリフレッシュを行うことができる半導体記憶装置が開示されている。この半導体記憶装置は、カウンタセンスアンプを備え、メモリセルに接続されたワード線が活性化されたときに、活性化回数をインクリメントして、カウンタセンスアンプへ書き戻す。そして、活性化回数が所定値に達した場合、臨時のリフレッシュ動作を実行する。このようにして、この半導体記憶装置は、上述した固定的に短周期でリフレッシュを行う方法に比べて、リフレッシュ発行頻度を抑えることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−２３９２２８号公報
【特許文献２】特開２００７−０１２１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１および２に開示された装置においては、臨時のリフレッシュ動作を追加するので、正規のリフレッシュ動作に対してリフレッシュ回数が増加するという問題がある。すなわち、これらの装置では、リフレッシュ回数の増加によるアクセス性能の低下が発生するという問題がある。
【０００９】
そこで、本発明の一つの目的は、リフレッシュ回数を増加させることなく、ロウハンマー問題によるデータ破壊を回避する装置などを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成すべく、本発明に係る半導体記憶装置は、以下の構成を備えることを特徴とする。
【００１１】
すなわち、本発明に係る半導体記憶装置は、
メモリに対するリフレッシュの実行を通知するリフレッシュ通知手段と、
前記メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、さらに、前記リフレッシュの実行ごとの前記リクエスト回数を出力するアクセスカウンタ手段と、
前記出力されたリクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、判定結果を表すアクセス抑止情報を通知する上限判定手段と、
前記アクセス抑止情報に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記メモリアクセスリクエストをバッファに登録し、前記リフレッシュの実行が通知された後に、前記バッファに登録した前記リクエスト情報を出力する退避バッファ手段と、
前記アクセス抑止情報に基づいて、前記受信したリクエスト情報、および、前記退避バッファ手段から出力されたリクエスト情報に応じた前記メモリに対するアクセスを行うメモリアクセス制御手段とを備える。
【００１２】
また、上記の同目的を達成すべく、本発明に係るメモリアクセス制御方法は、
メモリに対するアクセスを要求するためのリクエスト情報を受信し、
アクセス先である前記メモリのロウアドレスごとに、前記リクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントし、
前記リクエスト回数と、前記ロウアドレスに対してリフレッシュ間隔あたりに許容されるアクセス回数の上限を表すアクセス上限情報とに基づいて、前記ロウアドレスに対するアクセスを抑止するかどうかを判定し、
前記判定の結果に基づいて、前記ロウアドレスに対する、前記アクセス回数の上限を超える前記メモリアクセスリクエストをバッファに登録し、
前記メモリに対するリフレッシュの実行の後に、バッファされたリクエスト情報に応じた前記メモリに対するアクセスを行う。
【００１３】
また、同目的は、上記の各構成を有する半導体記憶装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１４】
本発明には、リフレッシュ回数の増加による性能低下が抑制できるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る半導体記憶装置１の構成を示すブロック図である。
【図２】本発明の第２の実施形態に係る記憶システムの構成を示すブロック図である。
【図３】第２の実施形態において半導体記憶装置１００が行う、メモリアクセスリクエスト２０の受信動作を示すフローチャートである。
【図４】第２の実施形態において半導体記憶装置１００が行う、リフレッシュの際の動作を示すフローチャートである。
【図５】第２の実施形態におけるメモリアクセスリクエスト２０の処理の一例を示すタイムチャートである。
【発明を実施するための形態】
【００１６】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る半導体記憶装置の構成を示すブロック図である。図１を参照すると、半導体記憶装置１は、アクセスカウンタ部２、記憶装置３、上限判定部５、退避バッファ部６、メモリアクセス制御部７、およびリフレッシュ通知部８を有する。半導体記憶装置１の各部は、専用のハードウェアデバイス、または論理回路によって構成されても良い。
【００１８】
半導体記憶装置１は、メモリ１０に対するアクセス要求を制御することができる装置である。メモリ１０は、リフレッシュを必要とするＤＲＡＭなどの半導体メモリ（半導体記憶素子）である。本実施形態において、メモリ１０は、一例として、半導体記憶装置１の内部に含まれる。なお、メモリ１０は、半導体記憶装置１の外部にあってもよい。半導体記憶装置１は、概略、メモリ１０に対するアクセス要求を表す情報（リクエスト情報）を含むメモリアクセスリクエスト２０を、図示しない上位装置などから受信すると、受信したメモリアクセスリクエスト２０に基づいて、メモリ１０に対するアクセスを実行する。以降、半導体記憶装置１が受信したメモリアクセスリクエスト２０を、「受信したメモリアクセスリクエスト２０」とも言う。
【００１９】
また、リフレッシュ通知部８は、メモリ１０に対するリフレッシュの実行を、アクセスカウンタ部２、および退避バッファ部６に対して通知する。
【００２０】
次に本発明の実施形態の構成及び動作についてさらに詳しく説明する。
【００２１】
アクセスカウンタ部２は、メモリアクセスリクエスト２０を受信すると、受信したメモリアクセスリクエスト２０のアクセス先であるメモリ１０のロウ（Ｒｏｗ）アドレスごとに、アクセスが要求された回数（以下、「リクエスト回数」と言う）をカウントすることができる。アクセスカウンタ部２は、カウントしたリクエスト回数の値を上限判定部５に対して出力する。すなわち、アクセスカウンタ部２は、カウントしたリクエスト回数をロウアドレスごとに保持することができる。さらに、アクセスカウンタ部２は、カウントしたリクエスト回数を、上限判定部５に対して出力する。
【００２２】
また、アクセスカウンタ部２は、リフレッシュ通知部８からリフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスのリクエスト回数をリセットする。すなわち、アクセスカウンタ部２は、あるリフレッシュの実行から、次のリフレッシュの実行までのリフレッシュ間隔における、ロウアドレスごとのリクエスト回数を保持する。総合すると、アクセスカウンタ部２は、リフレッシュの実行ごとのリクエスト回数を出力することができる。
【００２３】
記憶装置３は、アクセス上限情報４を格納することができる。記憶装置３は、例えば、レジスタのような論理回路、またはＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより実現される。
【００２４】
アクセス上限情報４は、ロウアドレスに対して、リフレッシュ間隔あたりに許容されるアクセス回数の上限を表す。すなわち、アクセス上限情報４は、「背景技術」欄において上述したロウハンマー問題によるデータ破壊を起こさずに、同じロウアドレスに対する集中的なアクセスが許容されるリクエスト回数の上限値である。本実施形態において、アクセス上限情報４は、記憶装置３にあらかじめ格納される。
【００２５】
上限判定部５は、アクセスカウンタ部２から出力されたリクエスト回数と、アクセス上限情報４とに基づいて、受信したメモリアクセスリクエスト２０が対象とするロウアドレス（以下、「対象ロウアドレス」と言う）に対するアクセスを抑止するかどうかを判定する。そして、上限判定部５は、退避バッファ部６と、メモリアクセス制御部７とに判定結果を通知する具体的には、上限判定部５は、アクセスカウンタ部２から受け取ったリクエスト回数が、アクセス上限情報４を超える場合に、対象ロウアドレスへのアクセスを抑止することを表すアクセス抑止情報を通知する。
【００２６】
退避バッファ部６は、アクセス抑止情報に基づいて、対象ロウアドレスに対する、アクセス回数の上限を超えるメモリアクセスリクエスト２０をバッファに登録する。すなわち、退避バッファ部６は、対象ロウアドレスへのアクセスが抑止されている場合に、処理中のメモリアクセスリクエスト２０をバッファに登録する。また、退避バッファ部６は、後述するリフレッシュ通知部８からリフレッシュの実行が通知された後、バッファに登録したメモリアクセスリクエスト２０（以下、「バッファされたメモリアクセスリクエスト２０」と言う）を、メモリアクセス制御部７に対して出力する。
【００２７】
メモリアクセス制御部７は、アクセス抑止情報に基づいて、受信したメモリアクセスリクエスト２０、および、退避バッファ部６から出力されたメモリアクセスリクエスト２０（バッファされたメモリアクセスリクエスト２０）に応じたアクセスを行う。
【００２８】
すなわち、メモリアクセス制御部７は、対象ロウアドレスへのアクセスが抑止されていない場合、受信したメモリアクセスリクエスト２０、およびバッファされたメモリアクセスリクエスト２０に応じて、メモリ１０へのアクセスを行う。以下では、メモリアクセスリクエスト２０に応じてメモリ１０へのアクセスを行うことを「メモリアクセスリクエスト２０を実行する」とも言う。
【００２９】
一方、対象ロウアドレスへのアクセスが抑止されている場合、メモリアクセス制御部７は、受信したメモリアクセスリクエスト２０を実行しない。すなわち、メモリアクセス制御部７は、対象ロウアドレスへのアクセスを行わない。
【００３０】
また、メモリアクセス制御部７は、退避バッファ部６から受けたメモリアクセスリクエスト２０を実行する場合、半導体記憶装置１がメモリアクセスリクエスト２０を受信した順番が守られるように、メモリ１０に対するアクセスの順序制御を行ってもよい。すなわち、メモリアクセス制御部７は、同じ対象ロウアドレスに対するバッファされたメモリアクセスリクエスト２０と、図示しない上位装置などから発行された新たなメモリアクセスリクエスト２０とを同時に受信した場合、バッファされたメモリアクセスリクエスト２０を優先して実行してもよい。
【００３１】
また、メモリアクセス制御部７は、新たに受信したメモリアクセスリクエスト２０によってメモリ１０に対してアクセスが行われるタイミングを避けて、バッファされたメモリアクセスリクエスト２０を実行してもよい。
【００３２】
このようにして、本実施形態によれば、リフレッシュ間隔あたりに許容されるアクセス回数の上限を超える分のメモリアクセスリクエスト２０を、次のリフレッシュが実行された後に実行することができる。この結果として、本実施形態では、ロウハンマー問題によるデータの破壊を回避することができる。
【００３３】
以上説明したように、本実施形態には、リフレッシュ回数を増加させることなく、ロウハンマー問題によるデータ破壊を回避することができるという効果がある。この結果として、本実施形態は、リフレッシュ回数の増加による性能低下を抑止したロウハンマー問題への対応を可能とするという効果がある。
【００３４】
その理由は、上限判定部５が、アクセス上限情報４に基づいて、上限を超えるメモリアクセスリクエスト２０によるアクセスを抑止するべきか否かを判定することができるからである。また、退避バッファ部６が、アクセスが抑止されている場合に、上限を超えるメモリアクセスリクエスト２０を一時的にバッファに登録することができるからである。そして、次のリフレッシュの実行によってロウハンマー問題が発生しない（アクセスが抑止されない）状態となった後に、メモリアクセス制御部７は、バッファされたメモリアクセスリクエスト２０を処理することができるからである。
【００３５】
また、本実施形態には、ロウハンマー問題の回避方法が異なるメモリの採用が容易になるという効果もある。
【００３６】
その理由は、記憶装置３がアクセス上限情報４を保存しているからである。すなわち、本実施形態は、記憶装置３に保存しているアクセス上限情報４を変更すれば、ロウハンマー問題の回避方法が異なるメモリを採用することができるからである。
【００３７】
なお、本実施形態では、アクセスカウンタ部２はメモリアクセスリクエスト２０全体を取得したが、メモリアクセスリクエスト２０の取得方式はこれに限定されない。例えば、アクセスカウンタ部２は、メモリアクセスリクエスト２０のアクセス先を示すアドレス情報だけを取得してもよい。
【００３８】
したがって、アクセスカウンタ部２は、メモリに対するアクセスを要求するためのリクエスト情報を受信し、アクセス先であるメモリのロウアドレスごとに、そのリクエスト情報によってアクセスが要求された回数を表すリクエスト回数をカウントすればよい。さらに、アクセスカウンタ部２は、リフレッシュの実行ごとのリクエスト回数を出力すればよい。
【００３９】
また、アクセスカウンタ部２、上限判定部５、退避バッファ部６、およびメモリアクセス制御部７の相互における通知および情報の伝達方法も、本実施形態には限定されない。例えば、アクセスカウンタ部２、退避バッファ部６、およびメモリアクセス制御部７が、図示しない記憶装置などに格納されたメモリアクセスリクエスト２０の必要な部分を、必要なタイミングにおいて、それぞれ参照してもよい。他に例えば、アクセスカウンタ部２、または上限判定部５が、それぞれ情報を出力する代わりに、その情報を利用する各部が、レジスタなどの記憶装置に格納された当該情報を、参照してもよい。
【００４０】
また、上限判定部５、退避バッファ部６、またはメモリアクセス制御部７は、アクセスの順序制御に関連する情報をメモリアクセスリクエスト２０に付加してもよい。例えば、メモリアクセスリクエストにおける順序制御に関連する情報として、有効ビット（Ｖａｌｉｄ  Ｂｉｔ）が知られている。有効ビットは、複数のリクエストを並行処理する過程において、メモリアクセスリクエストに含まれるデータが最新ではなくなった場合に、すでにそのデータが古いことを表すことができる情報である。有効ビットは、メモリから一時的に退避させたリクエストを格納するバッファ、およびキャッシュなどの制御によく使用される。また、メモリアクセス制御部７は、メモリ１０に対するアクセスの順序制御において、他の処理部、または、上位装置によってメモリアクセスリクエスト２０に付加された順序制御に関連する情報を用いてもよい。
【００４１】
また、リフレッシュを実行する単位（範囲）は、メモリ１０、またはメモリの製造ベンダごとに制御が異なる可能性がある。すなわち、リフレッシュは、１回ですべてのロウアドレスに対して実施されることも、詳細メモリ単位で分割して実施されることもある。後者の場合、リフレッシュ通知部８は、リフレッシュのタイミングに加えて、実施された範囲をも通知することができる。
【００４２】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。以下では、第２の実施形態に係る特徴的な部分を中心に説明し、第１の実施形態と同様な構成を有する第２の実施形態の構成要素には、第１の実施形態で付した参照符号と同一の参照符号を付し、その構成要素について重複する詳細な説明は省略する。
【００４３】
本実施形態では、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる複数のメモリ１０を制御することができる点が上述した第１の実施形態と異なる。同様に、本実施形態では、各メモリ１０に対応する複数のアクセス回数上限情報４を含むことができる点が上述した第１の実施形態と異なる。また、本実施形態は、半導体記憶装置を論理回路によって実現した具体例である。
【００４４】
まず、図２を参照して、以下に本実施形態の構成を説明する。図２は、本発明の第２の実施形態に係る記憶システムの構成を示すブロック図である。以下、本実施形態の説明においても、処理対象となっているメモリアクセスリクエスト２０が対象とするロウアドレスを「対象ロウアドレス」と言う。
【００４５】
図２を参照すると、本実施形態は、半導体記憶装置１００および上位装置２００を有する。半導体記憶装置１００と上位装置２００とは、バスのような信号線、または、通信ネットワークなどによって通信可能に接続されている。半導体記憶装置１００、および上位装置２００の各部は、専用のハードウェアデバイス、または論理回路によって構成されても良い。上述したように、半導体記憶装置１００は、複数のメモリ１０に対するアクセス要求を制御することができる装置である。メモリ１０は、それぞれリフレッシュを必要とするＤＲＡＭなどの半導体メモリ（半導体記憶素子）である。メモリ１０は、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる。本実施形態において、これらのメモリ１０は、一例として、半導体記憶装置１００の内部に含まれる。なお、これらのメモリ１０は、半導体記憶装置１００の外部にあってもよい。
【００４６】
上位装置２００は、第１の実施形態におけるメモリアクセスリクエスト２０を、半導体記憶装置１００に対して発行することが可能な装置である。
【００４７】
半導体記憶装置１００は、退避バッファ部６、メモリアクセス制御部７、リフレッシュ通知部８、アクセスカウンタ部１０１、アクセス回数上限値レジスタ１０２、比較部１０３、および、論理積演算部１０４を有する。
【００４８】
アクセスカウンタ部１０１は、第１の実施形態におけるアクセスカウンタ部２に対応する。
【００４９】
アクセス回数上限値レジスタ１０２は、第１の実施形態における記憶装置３に対応する。
【００５０】
比較部１０３および論理積演算部１０４は、第１の実施形態における上限判定部５を論理回路によって構成した例である。すなわち、比較部１０３および論理積演算部１０４の機能は、第１の実施形態における上限判定部５に対応する。
【００５１】
退避バッファ部６、メモリアクセス制御部７、および、リフレッシュ通知部８は、第１の実施形態における同一の参照符号を有する構成要素を基本とする。
【００５２】
本実施形態が、第１の実施形態と異なる点は、主に、各構成要素の間の通知および情報の授受を信号線によって伝送する点と、メモリ１０が複数含まれることにより一部の構成要素の数が増加する点である。
【００５３】
すなわち、本実施形態におけるアクセスカウンタ部１０１は、複数のメモリ１０におけるロウアドレスごとに、リクエスト回数をカウントして保持することができる。アクセスカウンタ部１０１は、カウントしたリクエスト回数の値を、比較器１０３に対して出力する。また、アクセスカウンタ部１０１は、対象ロウアドレスに対応するロウアドレス一致信号１１０を、論理積演算部１０４に対して出力することができる。本実施形態は、例えば、複数のメモリ１０の各ロウアドレスに対応するアクセスカウンタ部１０１が、それぞれ別のロウアドレス一致信号（信号線）１１０を介して、論理積演算部１０４と接続されている例として解釈することもできる。
【００５４】
ロウアドレス一致信号１１０は、現在処理している対象ロウアドレスを退避バッファ部６に対して通知することができる信号である。
【００５５】
また、アクセスカウンタ部１０１は、リフレッシュ通知部８から、リフレッシュ指示信号１１１によってリフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスのリクエスト回数をリセットする。本実施形態において、リフレッシュは、一例として、すべてのメモリ１０に対して一度に実施される前提とする。すなわち、アクセスカウンタ部１０１は、リフレッシュ指示信号１１１を受けたときに、すべてのロウアドレスに関するリクエスト回数をリセットする。
【００５６】
リフレッシュ指示信号１１１は、本実施形態においては、リフレッシュの実行が指示されたことを表す。このように、リフレッシュ通知部８が通知する「リフレッシュの実行」とは、リフレッシュがこれから行われる予定であってもよい。なお、メモリアクセス制御部７は、通知されたリフレッシュの実行が完了した後に、アクセスが抑止されていたロウアドレスに対するアクセスを行う。例えば、本実施形態は、リフレッシュの指示が通知された後、すぐにリフレッシュを行うことにより、メモリアクセス制御部７が、通知のすぐ次の時刻にアクセスする場合でも、必ず当該リフレッシュが完了しているように構成されている。
【００５７】
本実施形態のアクセス回数上限値レジスタ１０２においては、リフレッシュ間隔あたりに許容されるアクセス回数の上限が、複数のメモリ１０のおのおのに存在する。すなわち、アクセス回数上限値レジスタ１０２は、各メモリ１０に対応するアクセス上限情報４を格納することができる。アクセス上限情報４は、第１の実施形態と同様に、ロウアドレスに対して、リフレッシュ間隔あたりに許容されるアクセス回数の上限を表す。本実施形態では、アクセス回数上限値レジスタ１０２は、メモリ１０ごとに異なるアクセス上限情報４を有することができる。
【００５８】
比較器１０３は、アクセスカウンタ部１０１から出力されたリクエスト回数が、対象ロウアドレスに対応するメモリ１０のアクセス上限情報４を超える場合に、対象ロウアドレスに対応するロウアクセス抑止信号１１２を出力する。比較器１０３は、アクセス回数上限値レジスタ１０２からアクセス上限情報４を取得する。比較器１０３は、ロウアクセス抑止信号１１２を、論理積演算部１０４、およびメモリアクセス制御部７に対して出力する。
【００５９】
ロウアクセス抑止信号１１２は、特定のロウアドレスに対するリクエスト回数がアクセス上限を超えていることを表す。ロウアクセス抑止信号１１２は、ロウアドレスごとに存在する。
【００６０】
論理積演算部１０４は、アクセスカウンタ部１０１から出力されるロウアドレス一致信号１１０と、比較器１０３から出力されるロウアクセス抑止信号１１２との論理積を取った結果を、退避バッファ部６に対して出力する。すなわち、論理積演算部１０４は、第１の実施形態における上限判定部５と同様に、現在処理しているメモリアクセスリクエスト２０が、アクセス上限情報４を超えるリクエストであることを、退避バッファ部６に対して出力する。この出力が、第１の実施形態における上限判定部５によるアクセスを抑止するかどうかに関する判定結果（アクセス抑止情報）の通知に対応する。
【００６１】
また、本実施形態においては、上位装置２００と半導体記憶装置１００との間を接続する信号線を介して、アクセスカウンタ部１０１、退避バッファ部６、およびメモリアクセス制御部７が、メモリアクセスリクエスト２０を受信可能である。
【００６２】
退避バッファ部６、メモリアクセス制御部７、および、リフレッシュ通知部８の各構成および内容は、上述した点以外は、第１の実施形態と同様であるので、重複する詳細な説明は省略する。
【００６３】
次に、上述した構成を備える本実施形態の動作について、詳細に説明する。
【００６４】
まず、図３および図５を参照して、メモリアクセスリクエスト２０を受信したときの半導体記憶装置１００の動作を説明する。図３は、第２の実施形態において半導体記憶装置１００が行う、メモリアクセスリクエスト２０の受信動作を示すフローチャートである。図５は、第２の実施形態におけるメモリアクセスリクエスト２０の処理の一例を示すタイムチャートである。
【００６５】
図５における「メモリアクセスリクエスト２０」の行に記述されたアルファベット（「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」）は、その時刻において受信したメモリアクセスリクエスト２０のアクセス先である対象ロウアドレスを表す。「アクセスカウンタ部１０１（ロウアドレス「Ａ」）」の行は、その時刻におけるロウアドレス「Ａ」に対するアクセスカウンタ部１０１の値（すなわち、リクエスト回数）を表す。「ロウアドレス一致信号１１０」、および「ロウアクセス抑止信号１１２」の各行は、その時刻におけるロウアドレス「Ａ」に対応する各信号の状態を表す。「リフレッシュ指示信号１１１」の行は、その時刻における当該信号の状態を表す。「アクセス回数上限値レジスタ１０２」の行は、メモリアクセスリクエスト２０のアクセス先であるメモリ１０に対する上限値の例として「３」が、アクセス回数上限値レジスタ１０２に格納されていることを表す。「退避バッファ部６」の行は、その時刻において格納（退避）された、メモリアクセスリクエスト２０の対象ロウアドレスを表す。「メモリ１０」の行は、その前の時刻において実行されたメモリアクセスリクエスト２０により、メモリ１０においてアクセスが行われたロウアドレスを表す。
【００６６】
図５において、アクセスカウンタ部１０１（ロウアドレス「Ａ］）の初期状態は、「０」とする。また、「ロウアドレス一致信号１１０」、「リフレッシュ指示信号１１１」、および「ロウアクセス抑止信号１１２」の初期状態は、いずれの信号も「０」とする。
【００６７】
なお、以下の動作説明においては、説明を簡潔にするために、「アクセスカウンタ部１０１（ロウアドレス「Ａ」）」は、単に「アクセスカウンタ部１０１」と記述する。図５は、ロウアドレス「Ａ」に対してアクセスが集中する様子を示した一例である。したがって、説明を簡潔にするために、以下においては、ロウアドレス「Ａ」以外のロウアドレスに関する動作の説明を省略する。
【００６８】
まず、上位装置２００がメモリアクセスリクエスト２０を発行すると、半導体記憶装置１００がメモリアクセスリクエスト２０を受信する（ステップＳ１０）。具体的には、メモリアクセスリクエスト２０の受信データが、アクセスカウンタ部１０１、退避バッファ部６、およびメモリアクセス制御部７に対して入力可能となる。図５を参照すると、時刻Ｔ１において、ロウアドレス「Ａ」に対するメモリアクセスリクエストが、受信される。
【００６９】
次に、アクセスカウンタ部１０１が、受信したメモリアクセスリクエスト２０のアクセス先であるメモリ１０のロウアドレスごとに、リクエスト回数をカウントする（ステップＳ１１）。図５を参照すると、時刻Ｔ１において、アクセスカウンタ部１０１が、１を追加することにより、リクエスト回数を「１」とする。アクセスカウンタ部１０１は、カウントしたリクエスト回数の値「１」を、比較器１０３に対して出力する。また、アクセスカウンタ部１０１は、ロウアドレス「Ａ」に対応するロウアドレス一致信号１１０を、論理積演算部１０４に対して出力する。図５を参照すると、アクセスカウンタ部１０１は、ロウアドレス「Ａ」に対応するロウアドレス一致信号１１０を「１」とする。
【００７０】
次に、比較部１０３および論理積演算部１０４は、ロウアドレスに対するリクエスト回数がアクセス上限を超えるかどうかに応じて、対象ロウアドレスに対するアクセスの抑止要否を信号の出力によって示す（ステップＳ１２）。
【００７１】
すなわち、まず、比較部１０３は、アクセスカウンタ部１０１から出力されたリクエスト回数と、対応するロウアドレスに関するアクセス回数上限値レジスタ１０２に格納されたアクセス上限情報４とを比較する。本実施形態においては、比較部１０３は、リクエスト回数を出力したアクセスカウンタ部１０１に対応するロウアドレスに基づいて、複数のアクセス回数上限値レジスタ１０２の中から参照するレジスタを決定する。比較部１０３は、リクエスト回数がアクセス上限情報４を超えない場合、ロウアクセス抑止信号１１２を出力しない（ＯＦＦ：「０」にする）。次に、論理積演算部１０４は、アクセスカウンタ部１０１から出力されるロウアドレス一致信号１１０と、比較器１０３から出力されるロウアクセス抑止信号１１２との論理積を取った結果を、退避バッファ部６に対して出力する。なお、リクエスト回数がアクセス上限情報４を超える場合における比較部１０３の動作以降は、後述する。
【００７２】
図５を参照すると、時刻Ｔ１において、比較部１０３は、ロウアドレス「Ａ」に対応するアクセスカウンタ部１０１から出力されたリクエスト回数「１」と、ロウアドレス「Ａ」に対応するアクセス回数上限値レジスタ１０２に格納された上限値「３」とを比較する。そして、リクエスト回数が上限値を超えないので、比較部１０３は、ロウアドレス「Ａ」に対応するロウアクセス抑止信号１１２を「０」とする。次に、論理積演算部１０４は、アクセスカウンタ部１０１から出力されたロウアドレス「Ａ」に対応するロウアドレス一致信号１１０の示す「１」と、ロウアクセス抑止信号１１２の示す「０」との論理積の結果である「０」を、退避バッファ部６に対して出力する。なお、上述したように、この論理積演算部１０４が出力する論理積の結果である「０」が、時刻Ｔ１における「アクセス抑止情報」に対応する。
【００７３】
退避バッファ部６は、アクセス抑止情報が示す「０」に基づいて、リクエスト回数がアクセス上限を超えていない場合、バッファへの登録を行わない（ステップＳ２０）。上述したとおり、時刻Ｔ１において、論理積演算部１０４が出力するアクセス抑止情報は「０」であるので、退避バッファ部６は、バッファへの登録を行わない。この場合、メモリアクセス制御部７は、ロウアクセス抑止信号１１２が示す「０」に基づいて、受信したメモリアクセスリクエスト２０に応じたアクセスを行う（ステップＳ２１）。すなわち、時刻Ｔ１において、ロウアクセス抑止信号１１２は出力されていないので、メモリアクセス制御部７は、受信したロウアドレス「Ａ」に対するメモリアクセスリクエスト２０を実行する。
【００７４】
以上のように、本実施形態においては、メモリアクセス制御部７は、メモリアクセスリクエスト２０において指定されているアクセス先のアドレス（対象ロウアドレス）に対応するロウアクセス抑止信号１１２をアクセス抑止情報として参照し、アクセスを実行する。
【００７５】
図５において、メモリアクセス制御部７が、時刻Ｔ１にメモリ１０にアクセスをしたことは、次の時刻Ｔ２におけるメモリ１０の欄に示される。
【００７６】
このようにして、図５における時刻Ｔ３まで、半導体記憶装置１００は、受信したメモリアクセスリクエスト２０を順次実行する。
【００７７】
図５を参照すると、時刻Ｔ４において、半導体記憶装置１００は、ロウアドレス「Ａ」に対する４つ目のメモリアクセスリクエスト２０を受信する（ステップＳ１０）。ステップＳ１１において、アクセスカウンタ部１０１は、ロウアドレス「Ａ」に対するリクエスト回数を「４」とする。
【００７８】
ここで、ステップＳ１２において、リクエスト回数がアクセス上限情報４を超える場合における比較部１０３の動作以降を説明する。リクエスト回数がアクセス上限情報４を超える場合、比較部１０３は、論理積演算部１０４、およびメモリアクセス制御部７に対して、アクセスを抑止することを表すロウアクセス抑止信号１１２を出力する（ステップＳ１２）。
【００７９】
図５を参照すると、時刻Ｔ４において、比較部１０３は、アクセスカウンタ部１０１から出力されたリクエスト回数「４」が、アクセス回数上限値レジスタ１０２に格納された上限値「３」を超えるので、ロウアドレス「Ａ」に対応するロウアクセス抑止信号１１２を「１」とする。すなわち、論理積演算部１０４は、アクセスカウンタ部１０１から出力されたロウアドレス「Ａ」に対応するロウアドレス一致信号１１０の示す「１」と、ロウアクセス抑止信号１１２の示す「１」との論理積の結果である「１」を、退避バッファ部６に対して出力する。なお、上述したように、この論理積演算部１０４が出力する論理積の結果である「１」が、時刻Ｔ４における「アクセス抑止情報」に対応する。
【００８０】
退避バッファ部６は、アクセス抑止情報が示す「１」に基づいて、アクセス上限を超えるメモリアクセスリクエスト２０をバッファに登録する（ステップＳ１３）。すなわち、退避バッファ部６は、時刻Ｔ４に受信したメモリアクセスリクエスト２０がアクセス上限を超えるので、当該メモリアクセスリクエスト２０をバッファに登録する。図５において、退避バッファ部６が、時刻Ｔ４に受信したメモリアクセスリクエスト２０をバッファに登録したことは、次の時刻Ｔ５における退避バッファ部６の欄に示される。
【００８１】
一方、時刻Ｔ４のステップＳ１３において、ロウアドレス「Ａ」に対応するロウアクセス抑止信号１１２は「１」なので、メモリアクセス制御部７は、受信したメモリアクセスリクエスト２０を実行せずに廃棄する（ステップＳ１４）。
【００８２】
このようにして、図５における時刻Ｔ６の前まで、半導体記憶装置１００は、受信したロウアドレス「Ａ」に対するメモリアクセスリクエスト２０をバッファに登録しながら、その他のロウアドレスに対するメモリアクセスリクエスト２０を順次実行する。
【００８３】
以上が、メモリアクセスリクエスト２０を受信したときの半導体記憶装置１００の動作の説明である。
【００８４】
次に、図４および図５を参照して、リフレッシュの際の半導体記憶装置１００の動作を説明する。図４は、第２の実施形態において半導体記憶装置１００が行う、リフレッシュの際の動作を示すフローチャートである。
【００８５】
まず、リフレッシュ通知部８が、メモリ１０に対するリフレッシュの実行を、アクセスカウンタ部１０１、および退避バッファ部６に対して通知する（ステップＳ３０）。リフレッシュ通知部８は、アクセスカウンタ部１０１、および退避バッファ部６に対して、リフレッシュ指示信号１１１を出力する。図５を参照すると、時刻Ｔ６において、リフレッシュ通知部８は、リフレッシュ指示信号１１１を「１」とする。上述したように、本実施形態においては、リフレッシュ通知部８は、リフレッシュの実行が指示されたことを通知する。本実施形態では、例えば、図示しない制御部が、リフレッシュの実行タイミングおよび実行を制御する。なお、この具体例において、リフレッシュ通知部８がリフレッシュの実行を通知した後、実際にリフレッシュが実行されることを前提とする。
【００８６】
アクセスカウンタ部１０１は、リフレッシュの実行が通知されたときに、そのリフレッシュの対象範囲に含まれるロウアドレスに対するリクエスト回数をリセットする（ステップＳ３１）。本実施形態においては、上述したようにリフレッシュは１度にすべてのメモリ１０に対して実行されるので、アクセスカウンタ部１０１は、すべてのロウアドレスに対するリクエスト回数をリセットする。図５を参照すると、時刻Ｔ６において、リフレッシュ指示信号１１１が「１」なので、アクセスカウンタ部１０１は、すべてのロウアドレスに対するアクセスカウンタ部２の値を「０」にする。
【００８７】
一方、退避バッファ部６は、リフレッシュの実行が通知された後、バッファされたメモリアクセスリクエスト２０を、メモリアクセス制御部７に対して出力する。メモリアクセス制御部７は、ロウアクセス抑止信号１１２に基づいて、受信したメモリアクセスリクエスト２０、および、退避バッファ部６から出力されたメモリアクセスリクエスト２０を実行する。すなわち、リクエスト回数がリセットされたことにより、ステップＳ３１以降、ロウアドレス「Ａ」に対するロウアクセス抑止信号１１２が、出力されなくなる（「０」になる）ので、メモリアクセス制御部７は、ロウアドレス「Ａ」に対するメモリアクセスリクエスト２０を実行する（ステップＳ３２）。
【００８８】
なお、第１の実施形態において説明したように、第２の実施形態においても退避バッファ部６から受けたメモリアクセスリクエスト２０を実行する場合、メモリアクセス制御部７は、メモリ１０に対するアクセスの順序制御を行ってもよい。メモリアクセス制御部７が行う順序制御の一例を、図５に示す。図５を参照すると、メモリアクセス制御部７は、時刻Ｔ６にリフレッシュの実行が通知された後、新たに受信した他のロウアドレスに対するアクセスを優先することにより、初めにバッファされたメモリアクセスリクエスト２０を時刻Ｔ７において実行する。このようにして、メモリアクセス制御部７は、バッファされたメモリアクセスリクエスト２０の実行が、受信したメモリアクセスリクエスト２０の処理に対して与える影響を低減することができる。
【００８９】
また、メモリアクセス制御部７は、時刻Ｔ７において受信したロウアドレス「Ａ」に対するメモリアクセスリクエスト２０を、それ以前にバッファされたロウアドレス「Ａ」に対するメモリアクセスリクエスト２０の実行後である時刻Ｔ９まで待合せてから実行する。このようにして、メモリアクセス制御部７は、バッファすることによりメモリアクセスリクエスト２０の実行順番が変わることによる問題の発生を避けることができる。
【００９０】
メモリアクセス制御部７による順序制御の方法は、図５に示す具体例に限定されない。
【００９１】
このようにして、本実施形態によれば、メモリ１０によって異なるアクセス上限情報４に基づいて、その上限を超える分のメモリアクセスリクエスト２０を、次のリフレッシュが実行された後に実行することができる。その結果として、本実施形態によれば、アクセス上限情報４が異なる複数のメモリ１０に対して、ロウハンマー問題によるデータの破壊を回避することができる。
【００９２】
以上、説明したように、本実施形態には、上述した第１の実施形態と同様の効果に加えて、さらに、リフレッシュ間隔あたりに許容されるアクセス回数の上限が異なる複数のメモリ１０を混在して使用することができるという効果もある。
【００９３】
その理由は、複数のアクセス回数上限値レジスタ１０２を有することにより、メモリ１０ごとに異なるアクセス上限情報４を保持することができるからである。
【００９４】
また、本発明の実施形態において、上位装置とメモリ１０以外の構成部分は、コンピュータ回路によって実現されてもよい。この場合、プロセッサが、記憶媒体に書き込まれたプログラムに基づいて、上述した第１および第２の実施形態のメモリアクセス及びリフレッシュを制御してもよい。
【符号の説明】
【００９５】
１、１００    半導体記憶装置
２、１０１    アクセスカウンタ部
３    記憶装置
４    アクセス上限情報
５    上限判定部
６    退避バッファ部
７    メモリアクセス制御部
８    リフレッシュ通知部
１０    メモリ
２０    メモリアクセスリクエスト
１０２    アクセス回数上限値レジスタ
１０３    比較部
１０４    論理積演算部
１１０    ロウアドレス一致信号
１１１    リフレッシュ指示信号
１１２    ロウアクセス抑止信号
【図１】
2015162253.tif 000003
【図２】
2015162253.tif 000004
【図３】
2015162253.tif 000005
【図４】
2015162253.tif 000006
【図５】
2015162253.tif 000007