特許第6707628号(P6707628)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウルトラメモリ株式会社の特許一覧

<>
  • 特許6707628-半導体記憶装置 図000002
  • 特許6707628-半導体記憶装置 図000003
  • 特許6707628-半導体記憶装置 図000004
  • 特許6707628-半導体記憶装置 図000005
  • 特許6707628-半導体記憶装置 図000006
  • 特許6707628-半導体記憶装置 図000007
  • 特許6707628-半導体記憶装置 図000008
  • 特許6707628-半導体記憶装置 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6707628
(24)【登録日】2020年5月22日
(45)【発行日】2020年6月10日
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
   G11C 11/406 20060101AFI20200601BHJP
【FI】
   G11C11/406 140
   G11C11/406 300
【請求項の数】12
【全頁数】25
(21)【出願番号】特願2018-510219(P2018-510219)
(86)(22)【出願日】2016年4月8日
(86)【国際出願番号】JP2016061582
(87)【国際公開番号】WO2017175392
(87)【国際公開日】20171012
【審査請求日】2018年9月27日
(73)【特許権者】
【識別番号】515225518
【氏名又は名称】ウルトラメモリ株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100190621
【弁理士】
【氏名又は名称】崎間 伸洋
(72)【発明者】
【氏名】山田 康利
(72)【発明者】
【氏名】瀧下 隆治
【審査官】 境 周一
(56)【参考文献】
【文献】 米国特許出願公開第2015/0243338(US,A1)
【文献】 国際公開第2014/125937(WO,A1)
【文献】 特開2013−239228(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 11/401−11/4099;11/56
(57)【特許請求の範囲】
【請求項1】
複数のメモリセルを備えたメモリ部と、
アドレスと、前記アドレスで指定される前記メモリセルに適用されるアクティブコマンドと、を受信し、前記アクティブコマンドを受信した際のアドレスを、前記アクティブコマンドを受信する度にラッチし、ラッチしたアドレスをn個保持するアドレスラッチ部と、
リフレッシュコマンドを受信した場合に、前記リフレッシュコマンドに基づく正規リフレッシュ動作を前記メモリ部に対して実行するようにメモリアクセス制御部に指示するとともに、前記アドレスラッチ部がラッチした1個以上の前記アドレスに基づくリフレッシュ動作であって、前記アドレスの近傍のアドレスに対して割込みリフレッシュ動作を実行するように前記メモリアクセス制御部に指示するリフレッシュ制御部と、
前記リフレッシュ制御部からの指示に基づき、前記正規リフレッシュ動作及び前記割込みリフレッシュ動作を前記メモリ部に対して実行する前記メモリアクセス制御部と、
を含み、
前記アドレスラッチ部は、前記メモリアクセス制御部が前記割込みリフレッシュ動作を実行した場合にリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置。ここで、前記nは2又は3以上の自然数である。
【請求項2】
請求項記載の半導体記憶装置において、
前記アドレスラッチ部は、前記メモリアクセス制御部が前記割込みリフレッシュ動作を実行した場合に、前記割込みリフレッシュ動作の基となったアドレスのみがリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置。
【請求項3】
請求項記載の半導体記憶装置において、
前記リフレッシュ制御部は、前記アドレスラッチ部がラッチした前記アドレスのうち、いずれか1個のアドレスに基づくリフレッシュ動作であって、前記1個のアドレスの近傍のアドレスに対してのみ割込みリフレッシュ動作を実行するように前記メモリアクセス制御部に指示し、
前記アドレスラッチ部は、前記リフレッシュ制御部が前記割込みリフレッシュ動作を実行した場合に、前記割込みリフレッシュ動作の基となった前記1個のアドレスのみがリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置。
【請求項4】
請求項からのいずれか1項に記載の半導体記憶装置において、
前記リフレッシュコマンドを受信した後、前記アクティブコマンドをm個受信してから前記アドレスラッチ部のラッチ動作を開始させるモニタスタート部、
を含む半導体記憶装置。ここで、前記mは自然数である。
【請求項5】
請求項記載の半導体記憶装置において、
前記モニタスタート部は、
前記リフレッシュコマンドを受信した後、前記アクティブコマンドをランダムなk個受信してから前記アドレスラッチ部のラッチ動作を開始させる半導体記憶装置。ここで、前記kはランダムな自然数である。
【請求項6】
請求項からのいずれか1項に記載の半導体記憶装置において、
アドレスと、前記アドレスで指定される前記メモリセルに適用されるアクティブコマンドと、を受信し、前記アクティブコマンドを受信した際のアドレスを監視し、同一アドレスに対するアクセスの個数をカウントするアクセスカウントアドレスラッチ部と、
前記アクセスカウントアドレスラッチ部がカウントした、同一アドレスに対するアクセスの個数が、所定の値を越えている場合に、前記アドレスラッチ部に、前記同一アドレスをラッチさせる上限判定部と、
を含む半導体記憶装置。
【請求項7】
請求項1からのいずれか1項に記載の半導体記憶装置において、
前記アクティブコマンドを受信した際のアドレスと、前記アドレスラッチ部が既にラッチしているアドレスと、を比較し、比較の結果、異なるアドレスである場合に、前記アドレスラッチ部にラッチ動作を実行させるアドレス比較部、
を含む半導体記憶装置。
【請求項8】
請求項からのいずれか1項に記載の半導体記憶装置において、
前記アドレスラッチ部が既にラッチしているn個以下のアドレスと、前記アクティブコマンドを受信した際のアドレスとを比較し、比較の結果、異なるアドレスである場合にのみ、前記アドレスラッチ部に、新たに前記アクティブコマンドを受信した際のアドレスのラッチ動作を実行させるアドレス比較部、
を含む半導体記憶装置。
【請求項9】
請求項又は記載の半導体記憶装置において、
前記アドレス比較部は、前記リフレッシュ制御部が、正規リフレッシュ動作を前記メモリアクセス制御部に指示した際のリフレッシュアドレスが、前記アドレスラッチ部がラッチしたアドレスの近傍のアドレスである場合に、前記アドレスラッチ部がラッチする前記アドレスをリセットする半導体記憶装置。
【請求項10】
請求項1からのいずれか1項に記載の半導体記憶装置において、
受信する前記アクティブコマンドをモニタし、前記リフレッシュコマンドを受信した後、前記アクティブコマンドを受信しない場合は、前記リフレッシュ制御部が前記割込みリフレッシュ動作を前記メモリアクセス制御部に指示することを抑止するモニタ部、
をさらに含む半導体記憶装置。
【請求項11】
請求項1から10のいずれか1項に記載の半導体記憶装置において、
前記アクティブコマンドを受信した際のアドレスの近傍のアドレスとは、前記アクティブコマンドを受信した際のアドレスを+1したアドレス、又は、−1したアドレスのいずれかである半導体記憶装置。
【請求項12】
請求項1から11のいずれか1項に記載の半導体記憶装置において、
前記アクティブコマンドは、前記メモリ部のワード線を活性化させるコマンドであり、少なくとも、リードコマンド、ライトコマンド、リフレッシュコマンド、を含むことを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置に関する。特にRowHammer問題による障害に対する耐性を向上させた半導体記憶装置に関する。
【背景技術】
【0002】
DRAM(Dynamic Random Access Memory)の製造プロセスの微細化の進展は著しい。それに伴いメモリセル間の干渉が発生しやすくなる。さらに、製造プロセスの微細化のために、ばらつきが大きくなり、干渉を受けやすいメモリセルが作製されやすくなる。その結果、メモリセルのデータ破壊が顕著になってきている。
【0003】
特に、近年、特定のアドレスの行(Row)に対して繰り返しアクセスがなされると、その行の近傍の行のデータが破壊される問題が注目されている。このような問題は、RowHammer問題と呼ばれる。このRowHammer問題に対して、種々の解決手法が提案されている。
【0004】
特許文献1
下記特許文献1においては、DRAMの行に対するアクセス数をカウントし、カウント数が所定の閾値に達した場合、その行の近傍の行をリフレッシュする方法が開示されている。
【0005】
この特許文献1に記載の方法では、DRAMにおける正規の(通常の)リフレッシュ動作に加えて、アクセス数が閾値に達した行の近傍の行のアドレスを割込みリフレッシュするので、リフレッシュ回数は従来より増加してしまう。したがって、リフレッシュ回数の増加によって、そのDRAMのアクセス性能が低下すると考えられる。さらに、DRAMの全ての行に対して、それに対するアクセス数をカウントするカウント回路を設ける必要があり、DRAM面積が増大してしまう問題もある。したがって、同じ容量のDRAMにおいては、そのチップ面積が増大してしまう。
【0006】
特許文献2
下記特許文献2においては、上記特許文献1記載の方法とほぼ同様の原理によって割込みリフレッシュが実行される方法が開示されている。しかし、特許文献2においては、正規リフレッシュによるリフレッシュ動作の対象となった行(アドレス)は、その行に対するアクセス数のカウントがリセットされる方法が提案されている。このような動作によって、行に対する割込みリフレッシュの実行が、特許文献1に比べて抑制されると考えられる。
【0007】
この特許文献2の方法によれば、割込みリフレッシュの数が抑制されるので、DRAMとしての性能の低下は、特許文献1の方法に比べれば少ないと考えられる。
しかし、この特許文献2の方法においても、特許文献1の方法と同様に、各行(アドレス)に対するアクセスをカウントするカウント回路が必要となる。このカウント回路は、アクセス数を記憶しておくSRAMで構成することが一般的であるので、当該SRAMの搭載によって、DRAMのチップ面積が増大してしまう問題は、特許文献1と同様に、特許文献2においても存在すると考えられる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2013−239228号公報
【特許文献2】特開2015−162253号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、このような事情に鑑みなされたものであり、その目的は、DRAMのチップ面積を大きく増大させずに、RowHammer問題を解決する仕組みを実現することである。
【課題を解決するための手段】
【0010】
(1)本発明は、上記課題を解決するために、複数のメモリセルを備えたメモリ部と、アドレスと、前記アドレスで指定される前記メモリセルに適用されるアクティブコマンドと、を受信し、前記アクティブコマンドを受信した際のアドレスを、前記アクティブコマンドを受信する度にラッチし続けるアドレスラッチ部と、リフレッシュコマンドを受信した場合に、前記リフレッシュコマンドに基づく正規リフレッシュ動作を前記メモリ部に対して実行するようにメモリアクセス制御部に指示するとともに、前記アドレスラッチ部がラッチした前記アドレスに基づくリフレッシュ動作であって、前記アドレスの近傍のアドレスに対して割込みリフレッシュ動作を実行するように前記メモリアクセス制御部に指示するリフレッシュ制御部と、前記リフレッシュ制御部からの指示に基づき、前記正規リフレッシュ動作及び前記割込みリフレッシュ動作を前記メモリ部に対して実行する前記メモリアクセス制御部と、を含む半導体記憶装置である。
【0011】
(2)また、本発明は、上記課題を解決するために、複数のメモリセルを備えたメモリ部と、アドレスと、前記アドレスで指定される前記メモリセルに適用されるアクティブコマンドと、を受信し、前記アクティブコマンドを受信した際のアドレスを、前記アクティブコマンドを受信する度にラッチし、ラッチしたアドレスをn個保持するアドレスラッチ部と、リフレッシュコマンドを受信した場合に、前記リフレッシュコマンドに基づく正規リフレッシュ動作を前記メモリ部に対して実行するようにメモリアクセス制御部に指示するとともに、前記アドレスラッチ部がラッチした1個以上の前記アドレスに基づくリフレッシュ動作であって、前記アドレスの近傍のアドレスに対して割込みリフレッシュ動作を実行するように前記メモリアクセス制御部に指示するリフレッシュ制御部と、前記リフレッシュ制御部からの指示に基づき、前記正規リフレッシュ動作及び前記割込みリフレッシュ動作を前記メモリ部に対して実行する前記メモリアクセス制御部と、を含み、前記アドレスラッチ部は、前記メモリアクセス制御部が前記割込みリフレッシュ動作を実行した場合にリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置である。ここで、前記nは自然数である。
【0012】
(3)また、本発明は、(2)記載の半導体記憶装置において、前記アドレスラッチ部は、前記メモリアクセス制御部が前記割込みリフレッシュ動作を実行した場合に、前記割込みリフレッシュ動作の基となったアドレスのみがリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置である。
【0013】
(4)また、本発明は、(2)記載の半導体記憶装置において、前記リフレッシュ制御部は、前記アドレスラッチ部がラッチした前記アドレスのうち、いずれか1個のアドレスに基づくリフレッシュ動作であって、前記1個のアドレスの近傍のアドレスに対してのみ割込みリフレッシュ動作を実行するように前記メモリアクセス制御部に指示し、前記アドレスラッチ部は、前記リフレッシュ制御部が前記割込みリフレッシュ動作を実行した場合に、前記割込みリフレッシュ動作の基となった前記1個のアドレスのみがリセットされ、次にアクティブコマンドを受信した際のアドレスをラッチ可能な状態にされる半導体記憶装置である。
【0014】
(5)また、本発明は、(2)から(4)のいずれか1項に記載の半導体記憶装置において、前記リフレッシュコマンドを受信した後、前記アクティブコマンドをm個受信してから前記アドレスラッチ部のラッチ動作を開始させるモニタスタート部、を含む半導体記憶装置である。ここで、前記mは自然数である。
【0015】
(6)また、本発明は、(5)5記載の半導体記憶装置において、前記モニタスタート部は、前記リフレッシュコマンドを受信した後、前記アクティブコマンドをランダムなk個受信してから前記アドレスラッチ部のラッチ動作を開始させる半導体記憶装置である。ここで、前記kはランダムな自然数である。
【0016】
(7)また、本発明は、(2)から(6)のいずれか1項に記載の半導体記憶装置において、アドレスと、前記アドレスで指定される前記メモリセルに適用されるアクティブコマンドと、を受信し、前記アクティブコマンドを受信した際のアドレスを監視し、同一アドレスに対するアクセスの個数をカウントするアクセスカウントアドレスラッチ部と、前記アクセスカウントアドレスラッチ部がカウントした、同一アドレスに対するアクセスの個数が、所定の値を越えている場合に、前記アドレスラッチ部に、前記同一アドレスをラッチさせる上限判定部と、を含む半導体記憶装置である。
【0017】
(8)また、本発明は、(1)から(7)のいずれか1項に記載の半導体記憶装置において、前記アクティブコマンドを受信した際のアドレスと、前記アドレスラッチ部が既にラッチしているアドレスと、を比較し、比較の結果、異なるアドレスである場合に、前記アドレスラッチ部にラッチ動作を実行させるアドレス比較部、を含む半導体記憶装置である。
【0018】
(9)また、本発明は、(2)から(7)のいずれか1項に記載の半導体記憶装置において、前記アドレスラッチ部が既にラッチしているn個未満のアドレスと、前記アクティブコマンドを受信した際のアドレスとを比較し、比較の結果、異なるアドレスである場合にのみ、前記アドレスラッチ部に、新たに前記アクティブコマンドを受信した際のアドレスのラッチ動作を実行させるアドレス比較部、を含む半導体記憶装置である。
【0019】
(10)また、本発明は、(8)又は(9)記載の半導体記憶装置において、前記アドレス比較部は、前記リフレッシュ制御部が、正規リフレッシュ動作を前記メモリアクセス制御部に指示した際のリフレッシュアドレスが、前記アドレスラッチ部がラッチしたアドレスの近傍のアドレスである場合に、前記アドレスラッチ部がラッチする前記アドレスをリセットする半導体記憶装置である。
【0020】
(11)また、本発明は、(1)から(10)のいずれか1項に記載の半導体記憶装置において、受信する前記アクティブコマンドをモニタし、前記リフレッシュコマンドを受信した後、前記アクティブコマンドを受信しない場合は、前記リフレッシュ制御部が前記割込みリフレッシュ動作を前記メモリアクセス制御部に指示することを抑止するモニタ部、をさらに含む半導体記憶装置である。
【0021】
(12)また、本発明は、(1)から(11)のいずれか1項に記載の半導体記憶装置において、前記アクティブコマンドを受信した際のアドレスの近傍のアドレスとは、前記アクティブコマンドを受信した際のアドレスを+1したアドレス、又は、−1したアドレスのいずれかである半導体記憶装置である。
【0022】
(13)また、本発明は、(1)から(12)のいずれか1項に記載の半導体記憶装置において、前記アクティブコマンドは、前記メモリ部のワード線を活性化させるコマンドであり、少なくとも、リードコマンド、ライトコマンド、リフレッシュコマンド、を含むことを特徴とする半導体記憶装置である。
【発明の効果】
【0023】
このように、本発明によれば、RowHammer問題に対処するために実行する割込みリフレッシュを、有効であると推察される行(アドレス)に対して実行している。従って、行に対するアクセスをカウントする回路を、各行毎に備えさせる必要がなくなる。その結果、RowHammer問題に対処するための回路の面積を従来より小さくする事ができ、DRAMのチップ面積の増大防止を図ることができる。
【図面の簡単な説明】
【0024】
図1】実施形態1に係るDRAM装置のRowHammer問題の対策回路の回路ブロック図である。
図2】実施形態1に係るRowHammer問題の対策回路の動作を説明するタイムチャートである。
図3】実施形態2に係るDRAM装置のRowHammer問題の対策回路の回路ブロック図である。
図4】実施形態2に係るRowHammer問題の対策回路の動作を説明するタイムチャートである。
図5】実施形態3に係るDRAM装置のRowHammer問題の対策回路の回路ブロック図である。
図6】実施形態3に係るRowHammer問題の対策回路の動作を説明するタイムチャートである。
図7】実施形態4に係るDRAM装置のRowHammer問題の対策回路の回路ブロック図である。
図8】実施形態4に係るRowHammer問題の対策回路の動作を説明するタイムチャートである。
【発明を実施するための形態】
【0025】
以下、本発明の好適な実施形態に係る積層型半導体装置を、図面に基づき詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【0026】
第1.実施形態1
構成
図1は、本実施形態1におけるDRAM装置のRowHammer対策回路10を示す回路ブロック図である。図1に示すRowHammer対策回路10は、DRAM装置の構成の一部である。図1中、メモリ18以外の部分が、RowHammer対策回路10である。すなわち、RowHammer対策回路10は、Activeモニタ回路12と、リフレッシュ制御回路14と、メモリアクセス制御回路16と、アドレスラッチ回路20a、20bと、アドレス比較回路22と、から構成される。後述する各実施形態でも、メモリを除く部分がRowHammer対策回路である。
【0027】
図1において、DRAM装置には、外部入力コマンドと、外部入力アドレスと、が共に入力される。この外部入力アドレスで指定されたメモリセルに対して、外部入力コマンドで指定された動作を、DRAM装置は実行する。このように、DRAM装置には、外部入力アドレスと、この外部入力アドレスで指定されるメモリセルに対する処理を指定する外部入力コマンドとが、同時に入力される。
外部入力コマンドは、メモリアクセス制御回路16に入力する。メモリアクセス制御回路16は、DRAM装置の動作を制御する回路であり、入力された外部入力コマンドに基づき、メモリ18に関して所定の動作を実行する。
なお、メモリ18は、請求の範囲のメモリ部の好適な一例に相当する。また、後述する実施形態におけるメモリ38、58、78も、請求の範囲のメモリ部の好適な一例に相当する。
【0028】
本実施形態1においては、外部入力コマンドは、メモリアクセス制御回路16に加えて、Activeモニタ回路12と、リフレッシュ制御回路14と、アドレスラッチ回路20a、20bと、アドレス比較回路22と、に入力されている。
外部入力アドレスは、メモリアクセス制御回路16に入力される。メモリアクセス制御回路16は、DRAM装置の動作を制御する回路であり、入力された外部入力アドレスが指定するメモリセルに対して、外部入力コマンドが指定する所定の動作を実行する。
【0029】
本実施形態1においては、外部入力アドレスは、メモリアクセス制御回路16に加えて、アドレスラッチ回路20a、20bと、アドレス比較回路22と、に入力されている。
リフレッシュ制御回路14は、DRAM装置のリフレッシュを制御する回路であり、まず外部入力コマンドとして、リフレッシュコマンドが入力された場合は、メモリアクセス制御回路16を制御して、正規の(通常の)リフレッシュ動作を実行させる。この動作自体は、文字通り、従来からのリフレッシュ動作そのものである。
メモリアクセス制御回路16は、請求の範囲のメモリアクセス制御部の好適な一例に相当する。後述する実施形態2〜4のメモリアクセス制御回路36、56、76も同様に目請求の範囲のメモリアクセス制御部の好適な一例に相当する。
【0030】
本実施形態1においてリフレッシュ制御回路14の特徴的な事項は、正規のリフレッシュ動作を実行する際に、そのリフレッシュコマンドが入力されるまでに入力されたアクティブコマンドが存在した場合は、正規のリフレッシュ動作に加えて、割込みリフレッシュ動作を実行することである。
【0031】
本実施形態1において、アクティブコマンドとは、DRAM装置のメモリ18内のワード線を活性化(アクティベイト)させる外部入力コマンドであり、リードコマンド、ライトコマンド、リフレッシュコマンド、等が代表的なアクティブコマンドである。
このようなアクティブコマンドが特定のアドレスに集中して入力された場合、上述したようにRowHammer問題が発生する。そこで、本実施形態1においては、RowHammer問題の原因となり得るアクティブコマンドをモニタ等をしているのである。
なお、リフレッシュ制御回路14は、請求の範囲のリフレッシュ制御部の好適な一例に相当する。また、後述する実施形態におけるリフレッシュ制御回路34、54、74も、請求の範囲のリフレッシュ制御部の好適な一例に相当する。
【0032】
アクティブコマンドが存在したか否かは、Activeモニタ回路12が判断する。Activeモニタ回路12は、外部入力コマンドをモニタしており、リフレッシュコマンドが入力されてから、次のリフレッシュコマンドが入力されるまでに、所定のアクティブコマンドが入力されたか否かを監視する回路である。
【0033】
Activeモニタ回路12は、外部入力コマンドをモニタしており、リフレッシュコマンドがDRAM装置に入力されてから、アクティブコマンドが全く入力されないまま、再びリフレッシュコマンドが入力された場合は、後述するリフレッシュ制御回路14を制御して割込みリフレッシュを行わせない(割込みリフレッシュ動作を抑制する)。この場合は、リフレッシュ制御回路14は、メモリアクセス制御回路16には通常の正規のリフレッシュ動作のみ指示し、正規リフレッシュ動作のみを実行させ、割込みリフレッシュ動作は実行させない。
ただし、メモリアクセス制御回路16は、リフレッシュ制御回路14が割込みリフレッシュ動作を抑制する場合でも、アドレスラッチ回路20がアドレスをラッチしている場合は、そのアドレスを基礎として割込みリフレッシュを実行する。
なお、Activeモニタ回路12は、請求の範囲のモニタ部の好適な一例に相当する。また、後述するActiveモニタ回路32、52、72も御回路も、請求の範囲のモニタ部の好適な一例に相当する。
【0034】
他方、リフレッシュ制御回路14は、Activeモニタ回路12が割込みリフレッシュ動作を抑制しない場合(アクティブコマンドが存在した場合)は、正規リフレッシュ動作を実行する際に、割込みリフレッシュ動作をメモリアクセス制御回路16に実行させる。
【0035】
アドレスラッチ回路20a、20bは、割込みリフレッシュ動作を実行する際のアドレスを保持するラッチ回路であり、リフレッシュ制御回路14は、アドレスラッチ回路20に保持されているアドレスに関連して、割込みリフレッシュをメモリアクセス制御回路16に指示する。
アドレスラッチ回路20は、外部入力コマンドを監視しており、リフレッシュコマンド以外のアクティブコマンドが入力された場合に、その(リフレッシュコマンド以外の)外部入力コマンドが入力された際の外部入力アドレスをラッチする。
【0036】
本実施形態1においては、2個のアドレスラッチ回路20a、20bが備えられており、2個のアドレスをラッチすることができる。このラッチ個数の「2」は、請求範囲のnの好適な一例に相当する。
アドレス比較回路22は、アドレスラッチ回路20が同一のアドレスをラッチしないように制御する回路である。アドレスラッチ回路20は、アクティブコマンドが入力される度に外部入力アドレスをラッチしていくが、これからラッチしようとするアドレスと、既にアドレスラッチ回路20がラッチしているアドレスとが、アドレス比較回路22によって比較されている。この比較の結果、既にラッチされているアドレスと、これからラッチしようとするアドレスとが同一である場合は、アドレス比較回路22は、アドレスラッチ回路20を制御して、ラッチ動作を中止させる。このような動作によって、同一のアドレスがラッチされることを防止している。
なお、アドレス比較回路22は、請求の範囲のアドレス比較部の好適な一例に相当する。また、後述する実施形態におけるアドレス比較回路42、62、82も、請求の範囲のアドレス比較部の好適な一例に相当する。
【0037】
本実施形態1においては、アドレスラッチ回路20がラッチするアドレスは割込みリフレッシュの基礎となるアドレスである。したがって、同一のアドレスをラッチする意味は無いので、アドレスラッチ回路20aと、アドレスラッチ回路20bとに別のアドレスをラッチさせるために、アドレス比較回路22が設けられている。
【0038】
本実施形態1におけるアドレスラッチ回路20a、20bは、外部入力コマンドを監視しており、外部入力コマンドがリフレッシュコマンドである場合に、所定のタイミングでリセットされ、新たにアドレスをラッチ可能な状態になる。そして、リフレッシュコマンド以外のアクティブコマンドが入力される度に、その際に入力される外部入力アドレスをラッチする。アドレスラッチ回路20は、このラッチ動作を2回実行し、2個のアドレスをラッチした後、ラッチ動作を停止する。
【0039】
このような動作によって、アドレスラッチ回路20は、リフレッシュコマンドと、リフレッシュコマンドとの間において入力されたアクティブコマンドの際の外部入力アドレスを、最大2個ラッチすることになる。
すなわち、アドレスラッチ回路20は、リフレッシュコマンドが入力されてから、原則として最初の2個のアクティブコマンドの(異なる)アドレスがラッチする。このようにしてラッチされたアドレスを基礎として、リフレッシュコマンドが入力された際の割込みリフレッシュが実行される。
なお、アドレスラッチ回路20は、請求の範囲のアドレスラッチ部の好適な一例に相当する。また、後述する実施形態におけるアドレスラッチ回路40、60、80も、請求の範囲のアドレスラッチ部の好適な一例に相当する。
【0040】
本実施形態1において特徴的なことは、リフレッシュ制御回路14が、リフレッシュコマンドに基づき正規リフレッシュ動作を行う際に、前回の正規リフレッシュと今回の割込みリフレッシュ動作との間において入力されたアクティブコマンドの際のアドレスをラッチしている(保持している)ことである。そして、このラッチしたアドレスに基づき割込みリフレッシュを実行している。これによって、RowHammer問題の原因となるアクティブコマンドが入力された際のアドレスに基づく割込みリフレッシュ動作を実行することができ、RowHammer問題の発生しそうなアドレスに対する割込みリフレッシュ動作を行うことが可能である。
【0041】
動作
以下、図1で説明した本実施形態1のRowHammer対策回路10の動作を図2のタイムチャートに基づき説明する。
【0042】
図2のタイムチャートにおいて、CMDは、図1における外部入力コマンドを表す。ACTは、リフレッシュコマンド以外のアクティブコマンドを表し、リードコマンド等である。PREはDRAM装置に対するプリチャージを表す。REFはリフレッシュコマンドを表す。
図2のWL_Emableは、メモリアクセス制御回路16がメモリ18に対して出力する信号であり、ワード(行)線を活性化(アクティベイト)させる信号である。
図2の外部入力アドレスは、図1の外部入力アドレスを表す。
図2のアドレスラッチ1setは、図1におけるアドレスラッチ回路20aを表し、アドレスラッチ2setは、図1におけるアドレスラッチ回路20bを表す。
【0043】
図2のタイムチャートにおいて、まず、アクティブコマンドACTが入力されると、それに応じて、メモリアクセス制御回路16がWL_Enableを1パルス出力する。なお、その1パルスの中の所定のタイミングでプリチャージPREが出されている。
【0044】
図2のタイムチャートにおいては、2個のアクティブコマンドACTが連続して入力されており、その際の外部入力アドレスは、順に#000、#100となる。最初のアドレス#000は、アドレスラッチ1set(アドレスラッチ回路20a)にラッチされる。また、次のアドレス#100は、アドレスラッチ2set(アドレスラッチ回路20b)にラッチされる。
【0045】
2個のアクティブコマンドACTに引き続き、リフレッシュコマンドREFが入力されると、リフレッシュ制御回路14はこのリフレッシュコマンドREFに基づき、リフレッシュ動作をメモリアクセス制御回路16に指示する。
【0046】
リフレッシュ制御回路14は、リフレッシュコマンドREF、及びリフレッシュ制御回路14からの指示に基づき、まず、正規(通常)のリフレッシュ動作を実行する。図2で示す例では、所定のリフレッシュカウンタの値が3個用いられ、3回のリフレッシュ動作が実行されている。図2において、counter値は、所定の(不図示の)リフレッシュカウンタの値であり、図2では全て「counter値」と表されているが、リフレッシュ動作毎に+2ずつインクリメントしていく値である。本実施形態1では、1回のリフレッシュ動作で2本のワード線に対するリフレッシュ動作が一度に実行されるものとしており、counter値は+2ずつ増加していく。
【0047】
本実施形態において特徴的なことは、3回の正規のリフレッシュ動作に引き続き、割込みリフレッシュ動作を実行することである。リフレッシュ制御回路14は、メモリアクセス制御回路16にこの割込みリフレッシュ動作の指示も実行する。但し、上述したように、Activeモニタ回路12が、アクティブコマンドを検出しなかった場合は、リフレッシュ制御回路14は、メモリアクセス制御回路16に対して割込みリフレッシュ動作の指示を行わず、図2における割込みリフレッシュ動作は実行されない。
【0048】
本実施形態1においては、割込みリフレッシュ動作は1回行われる。その際のアドレスは、アドレスラッチ1setと、アドレスラッチ2setとにラッチされているアドレスを交互に基礎として用いて行われる。図2の例では、アドレスラッチ1setがラッチしているアドレス#000が基礎として用いられている。実際に割込みリフレッシュ動作の対象となるアドレスは、アドレス#000の「近傍」のアドレスである。本実施形態1では、例えば、アドレスラッチ回路20にラッチされているアドレスの下位1ビットを反転させた値が用いられている。すなわちアドレスラッチ1set又は2setにラッチされているアドレスを+1、又は−1したアドレスがリフレッシュ動作の対象となるアドレスである。図2の例では、アドレスラッチ1setがラッチするアドレス#000を+1したアドレスである#001がリフレッシュ動作の対象となるアドレスである。
【0049】
本実施形態1に係るDRAM装置は、例として、ワード線が2本毎にペアとして制御されているDRAM装置を例として説明する。このようなDRAM装置においては、そのペアとなるワード線が近接して配置されており、RowHammer問題が生じるワード線は、そのペアの相方のワード線であることが予め判明している。そのため、アドレスラッチ回路20にラッチされているアドレスに対してアクティブコマンドが適用された場合に、RowHammer問題が発生するのは、そのラッチされているアドレスの最下位1ビットを反転させたアドレス、すなわち+1又は−1したアドレスとなる。
【0050】
メモリアクセス制御回路16は、アドレスラッチ回路20にラッチされているアドレスの最下位1ビットを反転させて、割込みリフレッシュ動作を実行するアドレスを算出している。
なお、本実施形態1においては、アドレスラッチ回路20は、2個のアドレスをラッチしている。そこで、割込みリフレッシュ動作においては、いずれか一方のアドレスを基礎としてリフレッシュ動作に係るアドレスを計算している。そして、計算の基礎となったアドレスは、リフレッシュ動作後、リセットされて、新たなアドレスをラッチ可能な状態に移行する。図2の例では、アドレスラッチ1setの#000が用いられて、#001に対して割込みリフレッシュ動作を実行しているので、アドレスラッチ1setがリセットされて新たなアドレスをラッチ可能な状態になる。その結果、図2において、アドレスラッチ1setは、リフレッシュ動作直後のアクティブコマンドACTが入力された際の外部入力アドレス#111がラッチされている。
【0051】
他方、アドレスラッチ2setがラッチするアドレス#100は、割込みリフレッシュ動作で基礎として用いられていないので、ラッチしたアドレスは保持される。そして、次回のリフレッシュ動作における割込みリフレッシュ動作において基礎として用いられる。すなわち、図2に示されたリフレッシュ動作の次に行われるリフレッシュ動作においては、アドレスラッチ2setにラッチされているアドレスである#100を+1した#101に対して割込みリフレッシュ動作が実行される。
【0052】
このように、本実施形態1においては、アドレスラッチ回路20は2個のアドレスをラッチすることができ、それぞれに交互に、割込みリフレッシュ動作の基礎として用いられる。そして、割込みリフレッシュ動作の対象となるアドレスの算出の基礎となった方のアドレスラッチ(1set又は2set)はリセットされ、あらたなアドレスをラッチ可能な状態となる。
【0053】
なお、リフレッシュコマンドと、リフレッシュコマンドとの間に、他のアクティブコマンドが入力されない場合は、上述したように、Activeモニタ回路32がリフレッシュ制御回路14を制御し、割込みリフレッシュ動作を実行させずに、正規リフレッシュ動作のみを実行させる。
【0054】
RowHammer問題への考え方
RowHammer問題に対応するために本願発明者らは下記のように考えた。
【0055】
(1)まず、最大RowHammerの回数を検討する。
本実施形態1にかかるDRAM装置の1バンク当たりの全ワード数は、例えば32k(WL)であるとして検討する。ここで、WLは、WordLineであり、ワード線の本数である。
【0056】
1回の正規リフレッシュ(AREF(AutoRefresh))でリフレッシュされるワード本数は、本実施形態1においては、上述したように、1バンク当たり、6WL(WordLine)である。図2で説明したように、2本のワード線を3回アクセスするので、計6本である。
また、リフレッシュ動作の周期tREFは、7.8μsである。すなわち、原則として7.8μsec毎にリフレッシュコマンドがDRAM装置に入力する。
また、アクティブコマンドが入力する間隔tRC(min)は、50nsであるとする。このtRCは、最小値である。
【0057】
(2)以上のような前提の下、1バンクのワード線を全てリフレッシュするのに必要な正規のリフレッシュ回数は、下記のように計算される。
32kWL/6WL 約5333回
リフレッシュ周期tREFは7.8μsであるので、1バンクが全リフレッシュされるまでの時間は、
(32kWL/6WL)*7.8μs 約41600μs
である。この時間の間にアクティブコマンドが出される回数は、
((32kWL/6WL)*7.8μs/50ns)
=832k
である。したがって、リフレッシュ間隔中に最大832k回のアクティブコマンドがかかる可能性がある。これをRH(max)=832kと記す。
【0058】
(3)RH問題を解決するめの処理を施す必要がある対象ワード線数
また、そのDRAM装置を形成する半導体プロセスにおいて、そのプロセスが保証するRH回数、すなわちRowHammer問題が発生しないアクティブコマンドの回数を100kとする。すなわち、100k回アクティブコマンドが適用される前にリフレッシュ動作を行えば、RowHammer問題は発生しない。
【0059】
したがって、RowHammer問題に対して対応しなければならないワード線数は、約8.32本となる。
8.32(WL) = 832k/100k
このように、RowHammer問題に関して処理を施す必要がある対象ワードをRH対象ワードと称する。ここでは、RH対象ワード本数は、約8.32本となる。
【0060】
(4)また、正規リフレッシュ(AREF)時に、RH対象ワードにhitする(そのワードへのリフレッシュが実行される)確率を検討する。
まず、リフレッシュコマンドが入力される直前にRH対象ワードを活性化(アクティベート)していた確率を、0.1202(=100/832)と求める。すると、N回リフレッシュ動作を実行する間にRH対象ワードを一度もHitしない確率は、下記のように、求められる。
N=1 0.8798
N=2 0.7741
N=X (1−100/832)のX乗
N=5.3K/64 2.481E−5 AREFコマンド(リフレッシュコマンド)64回に1回割込みリフレッシュを実行する。
N=5.3K/8 1.435E−37 AREFコマンド(リフレッシュコマンド)8回に1回割込みリフレッシュを実行する。
N=5.3K 1.799E−295 AREFコマンド(リフレッシュコマンド)1回に1回割込みリフレッシュを実行する。本実施形態1に相当する。
【0061】
このように、本実施形態1において採用する割込みリフレッシュ方式によれば、アクティブコマンドが入力された際の外部入力アドレスを基礎として、割込みリフレッシュ動作を正規のリフレッシュ動作毎に行えば、高い確率で、RowHammer問題が生じないように制御することができる。
このように、本実施形態1によれば、ワード線毎にカウンタを設けずとも、RowHammer問題に対処することができるDRAM装置を実現することができる。したがって、半導体チップの面積をより有効に利用することができる、面積効率に優れたDRAM装置を提供することができる。
【0062】
実施形態1の変形例
(1)上記実施形態1においては、正規の(通常の)リフレッシュ動作と、リフレッシュ動作の間に入力されたアクティブコマンドの際の外部入力アドレスを基礎として、割込みリフレッシュを行っている。特に、リフレッシュ動作後の「最初の」2個のアクティブコマンドが入力された際のアドレスをラッチし、割込みリフレッシュ動作に利用する例を説明した。すなわち、実施形態1においては、アドレスラッチ回路20は、最初の2個のアドレスをラッチした後、停止する。
【0063】
しかし、アドレスラッチ回路20は、停止せずにラッチし続けてもよい。このように構成した場合は、リフレッシュ動作を実行する直前のアクティブコマンド2個のアドレスがラッチされることになる。したがって、「最初の」2個のアドレスではなく、そのリフレッシュ動作の間の期間における「最後の」アクティブコマンドの際のアドレスがラッチされ、割込みリフレッシュの際のアドレスの基礎として利用されてもよい。
つまり、どのタイミングでアドレスをラッチしてもよい。そのDRAM装置のアプリケーション、そのDRAM装置が用いられるコンピュータの用途等で適宜調整してよい。
【0064】
(2)上記実施形態1においては、アドレスラッチ回路20は、2個(請求の範囲のnの好適な一例に相当する)のアドレスをラッチ可能に構成している。しかし、ラッチ個数は1個でもよい。すなわちn=1でもよい。また、より多くのアドレスをラッチ可能に構成してもよい。すなわちn≧3の自然数であってよい。後述する実施形態2〜4においても同様にn=2の場合の例を示しているが、n=1やn≧3であってもよい。
(3)また、上記実施形態1においては、正規リフレッシュ1回に対して、1個のアドレスに割込みリフレッシュ動作を実行したが、正規リフレッシュ動作1回に対して、2個以上のアドレスに割込みリフレッシュ動作を実行させてもよい。
(4)また、上記実施形態1においては、アクティブコマンドが入力された際のアドレスに隣接するアドレスをRowHammer問題が生じる可能性のあるアドレスとして割込みリフレッシュ動作の対象とした。しかし、隣接するアドレスではなく、近傍のアドレスとしてもよく、また、近傍の複数本のアドレスのワード線を対象として割込みリフレッシュ動作を実行してもよい。
【0065】
第2.実施形態2
上記実施形態1では、リフレッシュコマンドが入力(発行)されてから、最初の2個の外部入力アドレスをラッチしていた。しかし、任意の場所(タイミング)のアドレスをラッチしてもよい。本実施形態2では、アドレスのラッチを開始するタイミングを任意に設定することができるRowHammer対策回路を備えたDRAM装置を説明する。
【0066】
構成
図3は、本実施形態2におけるDRAM装置のRowHammer対策回路30を示す回路ブロック図である。図3に示すRowHammer対策回路30は、DRAM装置の構成の一部である。図3中、メモリ38以外の部分が、RowHammer対策回路30である。すなわち、RowHammer対策回路30は、ActiveモニタStart制御回路31と、Activeモニタ回路32と、リフレッシュ制御回路34と、メモリアクセス制御回路36と、アドレスラッチ回路40a、40bと、アドレス比較回路42と、から構成される。
図3において、上述した図1と異なる構成は、ActiveモニタStart制御回路31であり、その他の構成は、基本的に実施形態1の図1と同様であり、基本的には同様の動作を実行する。
【0067】
本実施形態2におけるActiveモニタStart制御回路31は、外部入力コマンドを監視しており、リフレッシュコマンドが入力されてから、例えば3番目のアクティブコマンドを検出されてからActiveモニタEnable信号をenable(「1」)に設定し、Activeモニタ回路32、及び、アドレスラッチ回路40a、40bの動作を開始させる。
なお、ActiveモニタStart制御回路31は、請求の範囲のモニタスタート部の好適な一例に相当する。また、後述する実施形態におけるActiveモニタStart制御回路51、71も、請求の範囲のモニタスタート部の好適な一例に相当する。
Activeモニタ回路32は、実施形態1の図1のActiveモニタ回路12とほぼ同様の動作を実行する。図3のActiveモニタ回路32は、図1のActiveモニタ回路12と異なり、ActiveモニタEnable信号が「1」の場合のみ、外部入力コマンドの監視を行い、アクティブコマンドが入力されたか否かを検出している。
【0068】
したがって、例えば、リフレッシュコマンドREFとリフレッシュコマンドREFとの間で、アクティブコマンドが1個のみ入力された場合は、Activeモニタ回路32は、アクティブコマンドが入力されなかったと判断する。この点が実施形態1と異なる点である。
【0069】
また、アドレスラッチ回路40a、40bは、実施形態1の図1のアドレスラッチ回路20a、20bほぼ同様の動作を実行する。図3のアドレスラッチ回路40a、40bは、図1のアドレスラッチ回路20a、20bと異なり、ActiveモニタEnable信号が「1」の場合のみ、外部入力アドレスのラッチを行う。
【0070】
したがって、本実施形態2においては、アドレスラッチ回路40a、40bは、リフレッシュコマンドREFとリフレッシュコマンドREFとの間で、3番目入力されたアクティブコマンドの際の外部入力アドレスからラッチを開始する。この点が実施形態1と異なる点である。なお、それ以外の動作は実施形態1のアドレスラッチ回路20a、20bと同様であり、ラッチするアドレスの数が2個である点等は、アドレスラッチ回路20a、20bと同様である。
【0071】
このように、本実施形態2において特徴的なことは、ラッチを開始するアドレスの位置を任意に指定できる点である。
ActiveモニタStart制御回路31は、ActiveモニタEnable信号を、Activeモニタ回路32に出力し、上述したように、Activeモニタ回路32が外部入力コマンドを監視するタイミングを制御している。また、ActiveモニタStart制御回路31は、同じActiveモニタEnable信号を、アドレスラッチ回路40a、40bに出力し、上述したように、アドレスラッチ回路40a、40bが外部入力アドレスをラッチするタイミングを制御している。
【0072】
ActiveモニタStart制御回路31の設定するタイミングとして、上記の例では、リフレッシュコマンドREFが入力されてから3番目のアクティブコマンドからというタイミングを設定している。しかし、3番目以外の、4番目でも5番目でもよく、任意設定する事ができる。その設定は、そのDRAM装置の設計段階から決定しておいてもよく、そのDRAM装置の製造プロセス時の試験段階で決定(プログラミング)されていてもよく、DRAM装置の製造後、外部からの制御信号でタイミングを任意に設定可能に構成してもよい。
【0073】
なお、このような動作は、一般的に、アクティブコマンドをm個受信してから、アドレスラッチを開始させると表現することもできる。ここで、mは自然数である。
動作
以下、図3で説明した本実施形態2のRowHammer対策回路30の動作を図4のタイムチャートに基づき説明する。
図4のタイムチャートにおいて、図2のタイムチャートと異なる信号は、ActiveモニタEnable信号であり、その他の信号は、基本的に図2のタイムチャートと同様である。また、図4においては、図2と異なり、アドレスラッチ1setは、アドレスラッチ回路40aであり、アドレスラッチ2setは、アドレスラッチ回路40bである。
【0074】
図4のタイムチャートにおいて、まず、アクティブコマンドACTが入力されると、それに応じて、メモリアクセス制御回路16がWL_Enable信号を1パルス出力する。なお、その1パルスの中の所定のタイミングでプリチャージPREが出されている点は、図2と同様である。
【0075】
図4のタイムチャートにおいては、5個のアクティブコマンドACTが連続して入力されている例が示されている。その際の外部入力アドレスは、順に#000、#100、#200、#300、#400である。
本実施形態2において特徴的なことは、最初の2個のアクティブコマンドが入力されるまでは、ActiveモニタEnable信号が「0」に設定されていることである。この信号は、上述したようにActiveモニタStart制御回路31が生成し、Activeモニタ回路32やアドレスラッチ回路40a、40bに供給している信号である。ActiveモニタStart制御回路31は、2個のアクティブコマンドを検出した後、ActiveモニタEnable信号を「1」に設定し、Activeモニタ回路32の監視機能をenableし、アドレスラッチ回路40a、40bにラッチ動作を開始させる。
【0076】
その結果、Activeモニタ回路32は、3個目のアクティブコマンドからアクティブコマンドを検出し、リフレッシュ制御回路34に、次回の正規リフレッシュ動作の際に割込みリフレッシュ動作を実行させるように制御を行う。
また、アドレスラッチ回路40a、40bは、3番目のアクティブコマンドの際の外部入力アドレスである#200をラッチする。引き続き、4番目のアクティブコマンドの際の外部入力アドレスである#300をラッチする。
【0077】
これによって、図4に示すように、アドレスラッチ1set(アドレスラッチ回路40a)は、アドレス#200をラッチし、アドレスラッチ2set(アドレスラッチ回路40b)は、アドレス#300をラッチする。
5個のアクティブコマンドACTに引き続き、リフレッシュコマンドREFが入力されると、リフレッシュ制御回路34はこのリフレッシュコマンドREFに基づき、リフレッシュ動作をメモリアクセス制御回路36に指示する。
【0078】
メモリアクセス制御回路36は、リフレッシュコマンドREF、及びリフレッシュ制御回路34からの指示に基づき、図2と同様に、3回の正規(通常)のリフレッシュ動作を実行する。
本実施形態2においても、3回の正規のリフレッシュ動作に引き続き、割込みリフレッシュ動作が実行される。この割込みリフレッシュ動作そのものは、実施形態1と同様である。また、割込みリフレッシュ動作は1回行われる。その際のアドレスは、アドレスラッチ1setと、アドレスラッチ2setとにラッチされているアドレスを交互に基礎として用いて行われる点も実施形態1と同様である。
【0079】
図4の例では、アドレスラッチ1setがラッチしているアドレス#200が基礎として用いられている。実際に割込みリフレッシュ動作の対象となるアドレスは、アドレス#200の「近傍」のアドレスである。本実施形態2では、例えば、アドレスラッチ回路20にラッチされているアドレスの最下位1ビットを反転させた値#201が近傍のアドレスとして用いられている。
【0080】
そのほかの動作は、実施形態1と同様であり、本実施形態2においても、近傍のアドレスとしては隣接したアドレス(最下位1ビットを反転させたアドレス)が用いられている。
なお、図4に示すタイムチャートでは、正規リフレッシュ動作と割込みリフレッシュ動作を実行後は、2番目のアクティブコマンドから外部入力コマンドの監視を行うように、ActiveモニタStart制御回路31が、ActiveモニタEnable信号を2番目のアクティブコマンドから「1」に設定する。これによって、アドレスラッチ回路40a、40bも、2番目のアクティブコマンドから、そのアクティブコマンドが入力された際の外部入力アドレスをラッチし始める。例えば、図4に示す例では、リフレッシュ動作後の2番目のアクティブコマンドの際の外部入力アドレスである#222がアドレスラッチ1setにラッチされる動作が示されている。
【0081】
以上説明したように、本実施形態2によれば、コマンド監視を開始するタイミングや、アドレスをラッチするタイミングを自由に設定できるので、様々な半導体プロセスのDRAM装置に適用することができ、RowHammer問題の発生を防止しやすくなる。
【0082】
実施形態2の変形例
(1)実施形態1の変形例で説明した様々なバリエーションが、本実施形態2にも適用することができる。例えば、アドレスラッチ回路40a、40bはラッチ動作を連続して実行してもよいし、ラッチするアドレスの数も3個以上でもよい。割込みリフレッシュ動作も2回以上でもよいし、近傍のアドレスもRowHammer問題が発生する可能性のある複数のワード線に広げてもよい。
【0083】
(2)また、本実施形態2においては、ActiveモニタStart制御回路は、電源投入後は、3個目のアクティブコマンドから外部入力コマンドの監視を開始させ、3個目のアクティブコマンドから外部入力アドレスのラッチを開始させている。そして、正規リフレッシュ動作が実行された後は、2番目のアクティブコマンドから外部入力コマンドの監視を開始させ、2個目のアクティブコマンドから外部入力アドレスのラッチを開始させている。
このように、電源投入直後と、正規リフレッシュ動作が実行された後では、タイミングを異ならせることが、半導体の動作上、妥当な場合がある。また、それぞれのタイミングも任意に設定することができる。例えば、電源投入直後は4番目のアクティブコマンドから監視を行い、正規リフレッシュ動作が実行された後は6番目のアクティブコマンドから監視を行う等のように設定してもよい。
しかし、半導体プロセスや回路構成によっては、電源投入直後と、正規リフレッシュ動作が実行された後では、同じタイミングを適用してもよい。例えば、ともに4番目のアクティブコマンドから監視を開始すると設定することも好適である。
【0084】
(3)さらに、上述したタイミングは、ランダムなタイミングに設定することも好適である。例えば、今回は3番目のアドレスをラッチし、次回は、5番目のアドレスをラッチする等の処理を行ってもよい。このようなランダムなタイミングは、乱数によって生成してもよいし、アクティブコマンドの発生タイミング等の種々の時間情報等を利用してランダムなタイミングを生成してもよい。このような動作は、ランダムな数k番目のアドレスを受信してから、アドレスラッチを開始すると表現することもできる。また、外部入力アドレスに基づいて乱数を生成し、それに基づき、タイミングを生成してもよい。これらのタイミングは、ActiveモニタStart制御回路31が生成してよい。ここで、ランダムな数kは、自然数である。
【0085】
第3.実施形態3
上記実施形態2では、任意の場所(タイミング)のアドレスをラッチしており、例えば2個のアドレスがラッチされた後は、あらたにアドレスをラッチすることはない。これは、実施形態1も基本的に同様である。
しかし、コンピュータアプリケーションにおいては、しばしば同一アドレスのメモリに対して集中的にアクセスが実行されることが知られている。例えば、同一の変数が連続的に書き換えられる等である。
そのような連続して同一アドレスにアクセスが実行された場合は、RowHammer問題が発生する可能性が高いと考えられる。そのため、上記実施形態2と異なり、一旦、2個のアドレスをラッチした後でも、連続してアクセスされたアドレスがある場合は、これまでにラッチしたアドレスを破棄しても連続してアクセスされたアドレスをラッチすることが好ましい。
【0086】
本実施形態3では、このように、連続してアクセスされたアドレスがあった場合は、そのアドレスをラッチして、そのアドレスを基礎とする割込みリフレッシュを実行することができるRowHammer対策回路を備えたDRAM装置を説明する。
【0087】
構成
図5は、本実施形態3におけるDRAM装置のRowHammer対策回路50を示す回路ブロック図である。図5に示すRowHammer対策回路50は、DRAM装置の構成の一部である。図5中、メモリ58以外の部分が、RowHammer対策回路50である。すなわち、RowHammer対策回路50は、ActiveモニタStart制御回路51と、Activeモニタ回路52と、リフレッシュ制御回路54と、メモリアクセス制御回路56と、アドレスラッチ回路60a、60bと、アドレス比較回路62と、連続アクセスカウント回路64と、連続アクセス上限判定回路66と、から構成される。
図5において、実施形態2の図3と異なる構成は、主として、連続アクセスカウント回路64と、連続アクセス上限判定回路66と、である。その他の構成は、基本的に実施形態2の図3と同様であり、本実施形態3において特に説明する動作を除き、基本的には図3等と同様の動作を実行する。
【0088】
本実施形態3における連続アクセスカウント回路64は、外部入力コマンドと外部入力アドレスとを監視しており、アクティブコマンドが入力された際の外部入力アドレスが、前回のアクティブコマンドが入力された際の外部入力アドレスと同一である場合に、その同一アドレスの入力回数をカウントし、そのカウント値を連続アクセス上限判定回路66に供給する。
【0089】
また、本実施形態3における連続アクセス上限判定回路66は、上記連続アクセスカウント回路64のカウント値と、所定の上限値uとを比較し、連続アクセスが上限値uを越えているか否かを検査し、越えている場合は、連続アドレスアクセス信号を「1」に設定して出力する。ここで、上限値uは、2以上の自然数である。この連続アドレスアクセス信号は、アドレス比較回路62に供給されている。
なお、連続アクセス上限判定回路66は、請求の範囲の上限判定部の好適な一例に相当する。また、後述する実施形態4における連続アクセス上限判定回路86も、請求の範囲の上限判定部の好適な一例に相当する。
アドレス比較回路62は、基本的に、図1(又は図3)におけるアドレス比較回路22(又は42)と同様の動作を実行する。ただし、本実施形態3のアドレス比較回路62は、上記連続アドレスアクセス信号が「1」になった場合、アドレスラッチ回路60a、60bに対して強制的に外部入力アドレスのラッチを指示する。
【0090】
アドレスラッチ回路60a、60bは、基本的に図1(又は図3)におけるアドレスラッチ回路20a、20b(又は40a、40b)と同様の動作を実行する、ただし、本実施形態3のアドレスラッチ回路60a、60bは、アドレス比較回路62から、強制的に外部入力アドレスのラッチを指示された場合は、既に2個のアドレスをラッチしている場合でも、いずれかのアドレスを破棄して新たに外部入力アドレスをラッチする。
この結果、連続してアクセスされたアドレスの近傍のアドレスに対して割込みリフレッシュ動作を実行することができ、RowHammer問題の発生を、より効果的に防止することが期待できる。
【0091】
なお、図5で示したActiveモニタStart制御回路51は、図3のActiveモニタStart制御回路31と同様の回路であるが、本実施形態3においては、外部入力コマンドの監視及び外部入力アドレスのラッチは、2個目のアクティブコマンドから実行するように、ActiveモニタStart制御回路51は動作する例を説明する。
【0092】
動作
以下、図5で説明した本実施形態3のRowHammer対策回路50の動作を図6のタイムチャートに基づき説明する。
図6のタイムチャートにおいて、図4のタイムチャートと異なる信号は、連続アドレアクセス信号であり、その他の信号は、基本的に図4のタイムチャートと同様である。また、図6においては、図4と異なり、アドレスラッチ1setは、アドレスラッチ回路60aであり、アドレスラッチ2setは、アドレスラッチ回路60bである。
【0093】
また、連続アクセス上限判定回路66における上限値uは、4であり、4回連続して同一アドレスに係るアクティブコマンドが入力された場合は、連続アドレスアクセス信号が「1」に設定される。
まず、図6のタイムチャートにおいて、アクティブコマンドACTが入力されると、それに応じて、メモリアクセス制御回路16がWL_Enable信号を1パルス出力する。なお、その1パルスの中の所定のタイミングでプリチャージPREが出されている点は、図4と同様である。なお、図6のタイムチャートにおいては、合計8個のアクティブコマンドが入力されている。
【0094】
また、上述したように、本実施形態3においては、ActiveモニタStart制御回路51が外部入力コマンドの監視タイミングを2個目からと設定している。したがって、図6に示すように、ActiveモニタEnable信号は、2個目のアクティブコマンドから「1」の値に設定されている。
【0095】
そのため、2個目のアクティブコマンドACTから、Activeモニタ回路52によるアクティブコマンドACTの監視が実行される。同様に、2個目のアクティブコマンドACTからアドレスラッチ回路60a、60bによる外部入力アドレスのラッチが実行される。
【0096】
その結果、図6のタイムチャートにおいては、2番目のアクティブコマンドACTが入力された際の外部入力アドレスである#100が、アドレスラッチ1set(アドレスラッチ回路60a)にラッチされる。同様にして、3番目のアクティブコマンドACTが入力された際の外部入力アドレスである#200が、アドレスラッチ2set(アドレスラッチ回路60b)にラッチされる。
【0097】
その後、5個のアクティブコマンドACTが入力されるが、当該アクティブコマンドACTが入力された際の外部入力アドレスは、いずれも#300である。
上述したように、本実施形態3に係る連続アクセス上限判定回路66は、同一アドレスを伴うアクティブコマンドが上限値u個となった場合、そのu個目のアクティブコマンドにおいて、連続アクセス上限判定回路66は、連続アドレスアクセス信号を1パルス分「1」に設定する。
この連続アドレスアクセス信号が1パルス分「1」に設定された結果、アドレス比較回路62は、この信号に基づき、アドレスラッチ回路60a、60bに外部入力アドレスをラッチさせる。その結果、本実施形態3においては、アドレスラッチ1setに連続して入力された当該外部入力アドレスである#300をラッチさせている。
【0098】
本実施形態3において特徴的なことは、アドレスラッチ1setと、アドレスラッチ2setが共に外部入力アドレスをラッチした後でも、同一の外部入力アドレスを伴うアクティブコマンドACTが連続して4個(=u)入力された場合は、当該同一の外部入力アドレスを、アドレスラッチ1set(又は2set)がラッチするように構成したことである。この結果、連続して同一のアドレスにアクセスが行われた場合には、そのアドレスを基礎とするアドレス(のワード線)に対して割込みリフレッシュ動作を実行することができ、RowHammer問題の発生を効果的に防止することができる。
【0099】
図6のタイムチャートにおいて、5個の#300のアドレスを伴うアクティブコマンドACTが入力された後、リフレッシュコマンドREFが入力されている。このリフレッシュコマンドREFが入力されると、リフレッシュ制御回路54はこのリフレッシュコマンドREFに基づき、リフレッシュ動作をメモリアクセス制御回路56に指示する。
【0100】
メモリアクセス制御回路56は、リフレッシュコマンドREF、及びリフレッシュ制御回路54からの指示に基づき、図2(又は図4)と同様に、3回の正規(通常)のリフレッシュ動作を実行する。また、図2図4)と同様に、引き続いて、割込みリフレッシュ動作が実行される。この割込みリフレッシュ動作そのものは、実施形態1、2と同様である。
【0101】
本実施形態3において特徴的なことは、割込みリフレッシュ動作の際の対象となるアドレスが、アドレスラッチ1setにラッチされている#300を基礎として、このアドレス最下位1ビットを反転させた#301であることである。
なお、実施形態1や2と同様に、アドレスラッチ2setと1setとにラッチされているアドレスが交互に基礎として利用されるので、場合によっては、アドレスラッチ2setがラッチしている#200を基礎とするアドレス#201について割込みリフレッシュが実行され、上述した#301についての割込みリフレッシュ動作は、次回の正規フレッシュコマンドREFが入力された際に実行されることもある。以上述べた動作以外の他の動作は、実施形態2と同様である。
【0102】
以上説明したように、本実施形態3によれば、アクティブコマンドACTが入力された際の外部入力アドレスが連続しu個同一である場合に、当該外部入力アドレスを基礎とするアドレスに対して割込みリフレッシュ動作を実行している。したがって、RowHammer対策回路50は、RowHammer問題の発生をより効果的に防止することができる。同様に、RowHammer対策回路50を備えたDRAM装置は、RowHammer問題の発生をより効果的に防止することができる。また、もちろん、上記実施形態1等と同様に、各ワード線毎カウンタを備えさせる必要がないので、半導体チップの面積をより効率的に利用することができ、従来の技術にかかるDRAM装置と比べて、同容量のDRAM装置のチップ面積を小さくすることができる。
【0103】
実施形態3の変形例
(1)実施形態1や2の変形例で説明した様々なバリエーションが、本実施形態2にも適用することができる。例えば、アドレスラッチ回路40a、40bはラッチ動作を連続して実行してもよいし、ラッチするアドレスの数も3個以上でもよい。割込みリフレッシュ動作も2回以上でもよいし、近傍のアドレスもRowHammer問題が発生する可能性のある複数のワード線に広げてもよい。
また、実施形態2で示した例と同様に、外部入力コマンドの監視を開始するタイミングや、外部入力アドレスをラッチするタイミングを任意に設定することができる。また、このタイミングは、電源投入直後と、正規リフレッシュ動作が実行された後で異ならせることもできる。さらに、これらのタイミングをランダムに設定することも可能である。
【0104】
(2)また、上記実施形態3では、上限値uを2以上の自然数としているが、DRAM装置を製造する半導体プロセスやDRAM装置の回路構成等に応じて、妥当な数をuとして設定することが好ましい。また、DRAM装置を完成させてから外部からuを設定できるように構成することも好ましい。
【0105】
第4.実施形態4
上記実施形態1〜3では、アクティブコマンドACTが入力された際の外部入力アドレスに基づき、その近傍のアドレス(隣接するアドレス)に対して、割込みリフレッシュ動作を行い、RowHammer問題の発生を効率的に防止することができる。
【0106】
しかし、この割込みリフレッシュ動作は、正規のリフレッシュ動作とは独立して行われており、両リフレッシュ動作が同一のアドレスに対して実行されてしまう可能性もあるが、同一アドレスに対して二重にリフレッシュ動作を実行することは、無駄であり、正規の記憶装置としての動作を不必要に阻害してしまう原因ともなりかねない。
すなわち、正規リフレッシュ動作を実行する際のアドレスが、アドレスラッチ回路にラッチさえているアドレスの近傍のアドレスであった場合は、割込みリフレッシュ動作を行う必要はない。
【0107】
本実施形態4では、このように、正規リフレッシュ動作を実行する際のアドレスが、アドレスラッチ回路にラッチさえているアドレスの近傍のアドレスであった場合は、割込みリフレッシュ動作を抑制(中止)するような動作を実行するDRAM装置を説明する。
【0108】
構成
図7は、本実施形態4におけるDRAM装置のRowHammer対策回路70を示す回路ブロック図である。図7に示すRowHammer対策回路70は、DRAM装置の構成の一部である。図7中、メモリ78以外の部分が、RowHammer対策回路70である。すなわち、RowHammer対策回路70は、ActiveモニタStart制御回路71と、Activeモニタ回路72と、リフレッシュ制御回路74と、メモリアクセス制御回路76と、アドレスラッチ回路80a、80bと、アドレス比較回路82と、連続アクセスカウント回路84と、連続アクセス上限判定回路86と、から構成される。
図7において、実施形態3の図5と異なる動作を実行し、実施形態3において特徴的な構成の一つは、アドレス比較回路82である。このアドレス比較回路82は、原則として、上記実施形態3におけるアドレス比較回路62と同様の動作を実行するが、正規リフレッシュ動作を実行する際のアドレスとの比較を実行する点が、本実施形態4において特徴的な点である。
【0109】
本実施形態4においても、メモリアクセス制御回路76が、外部入力コマンド及びリフレッシュ制御回路74からの制御信号に基づき、正規リフレッシュ動作を実行する。この動作は、実施形態1〜3と同様である。しかし、本実施形態4においてメモリアクセス制御回路76は、正規リフレッシュ動作を実行する際のアドレスを正規リフレッシュアドレスとして外部に出力している。そして、アドレス比較回路82は、この正規リフレッシュアドレスが、アドレスラッチ回路80a、80bがラッチしているアドレスの近傍にあるかどうかを比較している。この比較の結果、正規リフレッシュアドレスが、アドレスラッチ回路80a、80bがラッチしているアドレスの近傍にあると判断された場合は、割込みリフレッシュ動作を実行しないために、アドレスラッチ回路80a、80bの内容をリセットする。この場合、リセットされるのは、正規リフレッシュアドレスが、近傍にあると判断されたアドレスであり、アドレスラッチ回路80a、80bのいずれか一方、又は、両方のアドレスである。
【0110】
もし、アドレスラッチ回路80a、80bのラッチするアドレスの両方の近傍に、上記正規リフレッシュアドレスがある場合は、アドレスラッチ回路80a、80bがラッチするアドレスが双方ともリセットされ、その結果、割込みリフレッシュ動作は実行されない。
【0111】
また、アドレスラッチ回路80a、80bがラッチするアドレスのいずれか一方のアドレスの近傍に、上記正規リフレッシュアドレスがある場合は、アドレスラッチ回路80a、80bのその近傍にある側のアドレスがリセットされ、その結果、リセットされなかった方のアドレスに基づき、その近傍のアドレスについて割込みリフレッシュ動作が実行される。
【0112】
この結果、正規リフレッシュ動作と、割込みリフレッシュ動作とが、近傍にある近いアドレスに対して重ねて実行されることを防止することができるので、不必要なリフレッシュ動作を実行してしまうことを防止し、RowHammer問題の発生をより効率的に防止することができる。その結果、DRAM装置としての性能を必要以上に落とすことがないDRAM装置を提供することができる。
【0113】
動作
以下、図7で説明した本実施形態4のRowHammer対策回路70の動作を図8のタイムチャートに基づき説明する。
図8のタイムチャートにおける動作は、実施形態3における図6のタイムチャートと同様に、アドレスラッチ1setにアドレス#100がラッチされ、アドレスラッチ2setにアドレス#200がラッチされている。そして、連続して4個同一アドレスを基礎とするアクティブコマンドACTが入力されているので、実施形態3と同様に、アドレスラッチ1setにこのアドレス#300がラッチされる。
なお、アドレスラッチ1setは、アドレスラッチ回路80aであり、アドレスラッチ2setは、アドレスラッチ回路80bである。
【0114】
図8のタイムチャートにおいて、図6のタイムチャートと異なる点は、正規リフレッシュ動作の対象となる最初のアドレスが#301となる点である。
そのため、図8のタイムチャートにおける正規リフレッシュ動作が実行された最初のサイクルで、アドレス比較回路82は、正規リフレッシュアドレス(すなわち#301)が、アドレスラッチ1setにラッチされているアドレス#300の近傍にあると判断する。したがって、アドレス比較回路82は、当該近傍にあるという判断の基礎となったアドレスラッチ1setをリセットする。
【0115】
本実施形態4においても、正規リフレッシュ動作に引き続き割込みリフレッシュ動作が実行される。その際、割込みリフレッシュ動作の対象となるアドレスは、アドレスラッチ1set(又は2set)を基礎として得られることは実施形態1〜3と同様である。図8の例では、アドレスラッチ1setがリセットされているので、アドレスラッチ2setにラッチされているアドレスを基礎として割込みリフレッシュ動作に係るアドレスが求められる。本実施形態4でも、これまでと同様に、アドレスラッチ2setにラッチされているアドレス#200の最下位1ビットを反転した#201が、割込みリフレッシュ動作の対象となるアドレスとして求められる。この結果、図8に示すように、アドレス#201に対して割込みリフレッシュ動作が実行される。
【0116】
以上述べたように、本実施形態4によれば、正規リフレッシュアドレスが、割込みリフレッシュ動作の基礎となる(ラッチされている)アドレスの近傍にあるか否かを判断し、近傍にある場合は、そのアドレスを基礎とするアドレス(近傍のアドレス)に対する割込みリフレッシュ動作を抑止した。その結果、近傍にあるアドレスに重ねてリフレッシュ動作を行ってしまうことを防止できるので、より効率的にRowHammer問題の発生を防止でき、不必要に性能を低減させることがないDRAM装置を提供することができる。
【0117】
実施形態4の変形例
(1)実施形態1〜3の変形例で説明した様々なバリエーションが、本実施形態4にも適用することができる。
【0118】
(2)また、上記実施形態4では、アドレス比較回路82が、正規リフレッシュアドレスが、アドレスラッチ回路80にラッチされているアドレスの近傍にあるか否かを判断している。近傍にあるか否かの判断は、単純なアドレスの比較とは趣が少々異なる。そのため、本実施形態4のアドレス比較回路82は、上述した実施形態1〜3のアドレス比較回路22、42、62とは別の構成として設けてもよい。
「近傍」のアドレスとは、RowHammer問題の発生により影響を受けるワード線を表すアドレスであり、1個の場合もあり、また、複数の場合があってもよい。特に本実施形態では、アクティブコマンドによりアクセスされたワード線に隣接するワード線のアドレスを好ましい例として説明している。また、特に、隣接するワードのアドレスの例としては、基礎となるアドレスに対して+1、又は−1したアドレスが好ましい例として挙げられる。例えば、基礎となるアドレスの最下位ビットを反転させたアドレスとすることも好適である。
【0119】
(3)また、上記実施形態4では、正規リフレッシュアドレスをメモリアクセス制御回路76が出力している。これは、メモリアクセス制御回路76が、リフレッシュアドレスのカウンタを保持しているためである。しかし、この正規リフレッシュアドレスは他の回路が出力してメモリアクセス制御回路76に供給してもよい。
例えば、リフレッシュ制御回路74が正規リフレッシュアドレスを管理するために、リフレッシュカウンタ等を備えていてもよい。この場合は、リフレッシュ制御回路74が、アドレス比較回路82に対して正規リフレッシュアドレスを供給する。
【0120】
まとめ
以上、本発明の実施形態について詳細に説明したが、前述した実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
【符号の説明】
【0121】
10、30、50、70 RowHammer対策回路
12、32、52、72 Activeモニタ回路
14、34、54、74 リフレッシュ制御回路
16、36、56、76 メモリアクセス制御回路
18、38、58、78 メモリ
20a、20b、40a、40b、60a、60b、80a、80b アドレスラッチ回路
22、42、62、82 アドレス比較回路
31、51、71 ActiveモニタStart制御回路
64、84 連続アクセスカウント回路
66、86 連続アクセス上限判定回路
図1
図2
図3
図4
図5
図6
図7
図8