メモリ・リフレッシュのソースを表示
←
メモリ・リフレッシュ
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''メモリ・リフレッシュ'''(Memory_refresh)とは、情報を保存する目的で、コンピューター・メモリのある領域から定期的に情報を読み出し、読み出した情報を修正することなく直ちに同じ領域に書き換える[[プロセス]]のことである<ref name="Laplante">"refresh cycle" in {{Cite book |last=Laplante |first=Phillip A. |author-link= |title=Comprehensive Dictionary of Electrical Engineering |publisher=Springer |year=1999 |location= |pages=540 |url=https://books.google.com/books?id=soSsLATmZnkC&q=%22memory+refresh%22&pg=PA540 |doi= |id= |isbn=3540648356}}</ref>。 [[主記憶装置|コンピューター・メモリ]]の中で最も広く使用されているタイプの半導体[[ダイナミック・ランダム・アクセス・メモリー|ダイナミック・ランダム・アクセス・メモリ]](DRAM)の動作中に必要とされるバックグラウンド・メンテナンス・プロセスであり、実際、このクラスのメモリを特徴づけるものである<ref name="Ganssle">{{Cite book |last=Ganssle |first=Jack Ganssle |author-link= |last2=Tammy Noergaard |last3=Fred Eady |last4=Lewin Edwards |last5=David J. Katz |title=Embedded Hardware |publisher=Newnes |year=2007 |location= |pages=106 |url=https://books.google.com/books?id=HLpTtLjEXqcC&q=refresh+SRAM+DRAM&pg=PA106 |doi= |id= |isbn=978-0750685849}}</ref>。 == 概要 == DRAMチップでは、メモリデータの各[[ビット]]は、チップ上の小さな[[コンデンサ]]上の[[電荷]]の有無として記憶される<ref name="Ganssle">{{Cite book |last=Ganssle |first=Jack Ganssle |author-link= |last2=Tammy Noergaard |last3=Fred Eady |last4=Lewin Edwards |last5=David J. Katz |title=Embedded Hardware |publisher=Newnes |year=2007 |location= |pages=106 |url=https://books.google.com/books?id=HLpTtLjEXqcC&q=refresh+SRAM+DRAM&pg=PA106 |doi= |id= |isbn=978-0750685849}}</ref><ref name="Jacob">{{Cite book |last=Jacob |first=Bruce |author-link= |last2=Spencer Ng |last3=David Wang |title=Memory Systems: Cache, DRAM, Disk |publisher=Morgan Kaufmann |year=2007 |location= |pages=431–432 |url=https://books.google.com/books?id=SrP3aWed-esC&q=refresh&pg=PA826 |doi= |id= |isbn=978-0123797513}}</ref>。時間が経つにつれて、メモリ[[セル]]の電荷は漏れ出すため、リフレッシュされなければ、記憶されたデータは最終的に失われる。これを防ぐため、外部回路が定期的に各セルを読み出して書き換え、コンデンサの電荷を元のレベルに戻す。各メモリ・リフレッシュ・サイクルは、メモリセルの後続領域をリフレッシュするため、連続したサイクルですべてのセルを繰り返しリフレッシュすることになる。このプロセスは通常、メモリ回路によってバックグラウンドで自動的に実行され、ユーザーに意識されることは無い。リフレッシュ・サイクルが発生している間、メモリは通常の読み出しおよび書き込み動作に使用できないが、最新のメモリでは、この{{仮リンク|オーバーヘッド (コンピュータ)|en|Overhead (computing)}}はメモリ動作を大幅に遅くするほど大きくない。 リフレッシュを必要としないメモリは、[[Static Random Access Memory|スタティック・ランダム・アクセス・メモリ]](SRAM)と呼ばれる<ref name="Ganssle">{{Cite book |last=Ganssle |first=Jack Ganssle |author-link= |last2=Tammy Noergaard |last3=Fred Eady |last4=Lewin Edwards |last5=David J. Katz |title=Embedded Hardware |publisher=Newnes |year=2007 |location= |pages=106 |url=https://books.google.com/books?id=HLpTtLjEXqcC&q=refresh+SRAM+DRAM&pg=PA106 |doi= |id= |isbn=978-0750685849}}</ref>。SRAMメモリセルには4~6個のトランジスタが必要なのに対し、DRAMはトランジスタ1個とキャパシター1個であるため、SRAM回路はチップ上でより多くの面積を必要とする<ref name="Ganssle" />。その結果、SRAMチップのデータ密度はDRAMよりはるかに低くなり、SRAMのビット単価は高くなる。そのため、DRAMはコンピュータ、ビデオゲーム機、グラフィックカード、および大容量と低コストを必要とするアプリケーションのメインメモリに使用されている<ref name="Laasby">{{Cite news |last=Laasby |first=Gitte |title=Consumers eligible for money under computer chip price-fixing settlement |newspaper=Milwaukee Journal-Sentinel |location=Milwaukee, Wisconsin |pages= |publisher= |date=March 10, 2014 |url=http://www.jsonline.com/watchdog/pi/consumers-eligible-for-money-under-computer-chip-price-fixing-settlement-b99222132z1-249345601.html |access-date=August 20, 2014}}</ref>。メモリ・リフレッシュの必要性により、DRAMのタイミングと回路はSRAM回路よりもかなり複雑になるが、DRAMの密度とコストの利点はこの複雑さを正当化するものである。 == DRAMリフレッシュの仕組み == メモリが動作している間、各メモリセルは、メーカーが指定した最大リフレッシュ間隔(通常はミリ秒領域)内で、繰り返しリフレッシュされなければならない。リフレッシュは、データ・アクセスに使用される通常のメモリ動作(読み出しと書き込みのサイクル)ではなく、リフレッシュ・サイクルと呼ばれる特殊なサイクルを使用します。このサイクルは、メモリ回路内の別のカウンタ回路によって生成され、通常のメモリ・アクセスの間に挟まれる<ref name="Reinhardt">{{Cite web |author=Reinhardt |first=Steven K. |title=Memory, p. 9–3 |website=EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999 |publisher=Electrical Engineering Dept., Univ. of Michigan |year=1999 |url=http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |access-date=August 26, 2012 |url-status=dead |archive-url=https://web.archive.org/web/20140102191617/http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |archive-date=January 2, 2014}}</ref><ref name="Heath">{{Cite book |last=Heath |first=Steve |author-link= |title=Embedded Systems Design, 2nd Ed. |publisher=Newnes |year=2003 |location= |pages=88–89 |url=https://books.google.com/books?id=BjNZXwH7HlkC&q=refresh+dram+cbr+hidden&pg=PA89 |doi= |id= |isbn=0750655461}}</ref>。 メモリチップ上の記憶セルは、行と列の矩形アレイに並べられている。DRAMの読み出しプロセスは破壊的で、行全体のメモリセルの電荷を除去するため、データを一時的に保持するために、[[センスアンプ]]と呼ばれる専用の[[ラッチ回路]]が、メモリセルの列ごとに1つずつチップ上に並んでいる。通常の読み出し動作では、データを読み出して保持した後、センスアンプがアクセスされた行<ref name="Ganssle" /><ref name="ICE">{{Cite web |first= |author= |authorlink= |title=Memory 1997 |publisher=Integrated Circuit Engineering |year=1997 |pages=7.4 |url=http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC07.PDF |format= |access-date=2023/12/11}} on [http://smithsonianchips.si.edu/ The Chip Collection, Smithsonian website]</ref> のデータを書き換えてから、1列のビットを出力に送る。つまり、チップ上の通常のリード動作は、メモリの行全体を並列にリフレッシュすることができ、リフレッシュ・プロセスを大幅に高速化することができる。通常の読み出しまたは書き込みサイクルはメモリ行をリフレッシュするが、通常のメモリ・アクセスは必要な時間内にすべての行をヒットさせることができないため、別のリフレッシュ・プロセスが必要になる。リフレッシュ処理では、通常の読み出しサイクルを使用するのではなく、時間を節約するために、リフレッシュ・サイクルと呼ばれる短縮サイクルが使用される。リフレッシュ・サイクルはリード・サイクルと似ているが、次の2つの理由により高速に実行される: * リフレッシュには行アドレスだけが必要なので、列アドレスをチップ・アドレス回路に適用する必要はない。 * セルから読み出されたデータは、CPUに送るために出力[[バッファ]]や[[データバス]]に供給する必要はない。 リフレッシュ回路は、各セルが確実にリフレッシュされるように、リフレッシュ時間間隔内にチップ上の各行に対してリフレッシュ・サイクルを実行しなければならない。 === リフレッシュ回路の種類 === 初期のシステムでは、リフレッシュを実行する[[サブルーチン]]を実行する定期的な[[割り込み (コンピュータ)|割り込み]]を起動するタイマーを使用して、[[マイクロプロセッサ]]がリフレッシュを制御するものもあったが、これは、リフレッシュプロセスを停止してメモリ内のデータを失うことなく、マイクロプロセッサを一時停止したり、シングルステップにしたり、省エネの[[ハイバネーション]]にしたりできないことを意味していた<ref name="Heath">{{Cite book |last=Heath |first=Steve |author-link= |title=Embedded Systems Design, 2nd Ed. |publisher=Newnes |year=2003 |location= |pages=88–89 |url=https://books.google.com/books?id=BjNZXwH7HlkC&q=refresh+dram+cbr+hidden&pg=PA89 |doi= |id= |isbn=0750655461}}</ref>。そのため、最新のシステムでは、リフレッシュは[[メモリコントローラ]]<ref name="Ganssle">{{Cite book |last=Ganssle |first=Jack Ganssle |author-link= |last2=Tammy Noergaard |last3=Fred Eady |last4=Lewin Edwards |last5=David J. Katz |title=Embedded Hardware |publisher=Newnes |year=2007 |location= |pages=106 |url=https://books.google.com/books?id=HLpTtLjEXqcC&q=refresh+SRAM+DRAM&pg=PA106 |doi= |id= |isbn=978-0750685849}}</ref>内の回路によって処理され、チップ自体に組み込まれている場合もある。擬似[[スタティックRAM]](PSRAM)などの一部の DRAM チップは、すべてのリフレッシュ回路がチップ上にあり、コンピュータの他の部分に関してはスタティック RAM のように機能する<ref name="Kumar">{{Cite book |last=Kumar |author-link= |title=Fundamentals Of Digital Circuits, 2nd Ed. |publisher=PHI Learning Pvt. Ltd |year=2009 |location=India |pages=819 |url=https://books.google.com/books?id=P0Q66ULKNR0C&q=DRAM+refresh&pg=PA820 |doi= |id= |isbn=978-8120336797}}</ref>。 通常、リフレッシュ回路は、チップのロウ・[[バス (コンピュータ)#CPU外部バスの構造|アドレス・ライン]]に適用されるリフレッシュすべきロウのアドレスを含むリフレッシュ・カウンタと、ロウをステップ・スルーするためにカウンタをインクリメントするタイマーから構成される<ref name="Reinhardt">{{Cite web |author=Reinhardt |first=Steven K. |title=Memory, p. 9–3 |website=EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999 |publisher=Electrical Engineering Dept., Univ. of Michigan |year=1999 |url=http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |access-date=August 26, 2012 |url-status=dead |archive-url=https://web.archive.org/web/20140102191617/http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |archive-date=January 2, 2014}}</ref>。次の2つのスケジューリング戦略が使用されている<ref name="Heath">{{Cite book |last=Heath |first=Steve |author-link= |title=Embedded Systems Design, 2nd Ed. |publisher=Newnes |year=2003 |location= |pages=88–89 |url=https://books.google.com/books?id=BjNZXwH7HlkC&q=refresh+dram+cbr+hidden&pg=PA89 |doi= |id= |isbn=0750655461}}</ref>。 * バースト・リフレッシュ - すべての行がリフレッシュされるまで、一連のリフレッシュ・サイクルが次々と実行される。 * 分散リフレッシュ - リフレッシュ・サイクルは、メモリ・アクセスの間に一定間隔で実行される。 バースト・リフレッシュでは、メモリが利用できない期間が長くなるため、分散リフレッシュが最近のほとんどのシステム、特に[[リアルタイムシステム]]で使用されている<ref name="Reinhardt">{{Cite web |author=Reinhardt |first=Steven K. |title=Memory, p. 9–3 |website=EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999 |publisher=Electrical Engineering Dept., Univ. of Michigan |year=1999 |url=http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |access-date=August 26, 2012 |url-status=dead |archive-url=https://web.archive.org/web/20140102191617/http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |archive-date=January 2, 2014}}</ref>。分散リフレッシュでは、リフレッシュ・サイクルの間隔は : <math>\text{refresh cycle interval} = \text{refresh time}\, / \,\text{number of rows} \,</math> 例えば、DDR SDRAMのリフレッシュ時間は64ms、行数は8,192行なので、リフレッシュ・サイクル間隔は7.8μsである<ref name="Reinhardt">{{Cite web |author=Reinhardt |first=Steven K. |title=Memory, p. 9–3 |website=EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999 |publisher=Electrical Engineering Dept., Univ. of Michigan |year=1999 |url=http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |access-date=August 26, 2012 |url-status=dead |archive-url=https://web.archive.org/web/20140102191617/http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |archive-date=January 2, 2014}}</ref><ref name="JEDEC DDR">{{Cite web |first= |author= |authorlink= |title=JEDEC Double Data Rate (DDR) SDRAM Specification |publisher=JEDEC Solid State Technology Assoc. |date=March 2003 |url=http://cs.ecs.baylor.edu/~maurer/CSI5338/JEDEC79R2.pdf |format= |access-date=August 27, 2012}}, p.20, on [http://www.ecs.baylor.edu/ School of Engineering and Computer Science, Baylor Univ. website]</ref>。 最近の世代の DRAM チップには、内蔵のリフレッシュ・カウンタが搭載されており、メモリ制御回路は、このカウンタを使用することも、外部カウンタからロウ・アドレスを供給することもできる。これらのチップには、「列セレクト」(CAS)ラインと「行セレクト」(RAS)ラインの異なる信号パターンによって選択される、次の 3 つの標準的なリフレッシュ方法がある:<ref name="Heath">{{Cite book |last=Heath |first=Steve |author-link= |title=Embedded Systems Design, 2nd Ed. |publisher=Newnes |year=2003 |location= |pages=88–89 |url=https://books.google.com/books?id=BjNZXwH7HlkC&q=refresh+dram+cbr+hidden&pg=PA89 |doi= |id= |isbn=0750655461}}</ref> * 「RAS のみリフレッシュ」 – このモードでは、リフレッシュする行のアドレスがアドレス バス ラインによって供給されるため、メモリ コントローラーの外部カウンターとともに使用される。 * 「CBR(CAS before RAS refresh) - このモードでは、オンチップ・カウンタがリフレッシュされる行を追跡し、外部回路は単にリフレッシュ・サイクルを開始するだけである<ref name="Reinhardt">{{Cite web |author=Reinhardt |first=Steven K. |title=Memory, p. 9–3 |website=EECS 373 Design of Microprocessor-based Systems, Lecture Notes, Fall 1999 |publisher=Electrical Engineering Dept., Univ. of Michigan |year=1999 |url=http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |access-date=August 26, 2012 |url-status=dead |archive-url=https://web.archive.org/web/20140102191617/http://www.eecs.umich.edu/eecs/courses/eecs373/Lectures/stever_old_lectures/lec9.pdf |archive-date=January 2, 2014}}</ref>。このモードでは、メモリ・アドレス・バス・バッファをパワーアップする必要がないため、消費電力が少ない。ほとんどの最新コンピューターで使用されている。 * 「ヒドゥン・リフレッシュ」-これはCBRリフレッシュ・サイクルの代替バージョンであり、先行するリード・サイクルまたはライト・サイクルと組み合わせることができる<ref name="Reinhardt" />。リフレッシュはデータ転送中に並行して行われるため、時間を節約できる。 2012年世代のDRAMチップ以降、「RASのみ」モードは廃止され、内部カウンタがリフレッシュの生成に使用されている。このチップには、コンピュータがスリープモードのときに使用する[[スリープ (コンピュータ)|スリープモード]]が追加されており、オンチップ[[発振回路]]が内部リフレッシュサイクルを生成するため、外部クロックをシャットダウンすることができる。 === リフレッシュのオーバーヘッド === メモリがリフレッシュに費やす時間の割合(リフレッシュ・オーバーヘッド)は、次のように、システム・タイミングから計算できる<ref name="Godse">{{Cite book |last=Godse |first=Deepali A. |first2=Atul P. |last2=Godse |title=Computer Organization |publisher=Technical Publications |year=2008 |location=India |pages=4.23 |url=https://books.google.com/books?id=vWCAtElfzr8C&q=DRAM+refresh&pg=SA4-PA23 |doi= |id= |isbn=978-8184313567}}</ref>。 : <math>\text{refresh overhead} = \frac {\text{time required for refresh, ms}} {\text{refresh interval, ms}} \,</math> 例えば、SDRAMチップの行数は213=8,192行、リフレッシュ間隔は64ms、メモリバスは133MHzで動作し、リフレッシュサイクルは4クロックサイクルかかる<ref name="Godse">{{Cite book |last=Godse |first=Deepali A. |first2=Atul P. |last2=Godse |title=Computer Organization |publisher=Technical Publications |year=2008 |location=India |pages=4.23 |url=https://books.google.com/books?id=vWCAtElfzr8C&q=DRAM+refresh&pg=SA4-PA23 |doi= |id= |isbn=978-8184313567}}</ref>。リフレッシュ サイクルの時間は次のとおり<ref name="Godse" /> : <math>\text{length of refresh cycle} = 4/f = \frac {4}{1.33(10^8)\,\text{Hz}} = 30\, \text{ns} \,</math> : <math>\text{time required for refresh} = (\text{length of refresh cycle})(\text{rows}) = (30\, \text{ns})(8192) = 0.246\,\text{ms} \,</math> : <math>\text{refresh overhead} = \frac {0.246\,\text{ms}}{64\, \text{ms}} =.0038 \,</math> そのため、リフレッシュ・サイクルにかかる時間は、メモリ・チップの時間の0.4%未満となる。SDRAMチップでは、各チップ内のメモリはバンクに分割され、並列にリフレッシュされるため、さらに時間が節約される。そのため、必要なリフレッシュ・サイクル数は、仕様書に記載されている1バンクの行数であり、2012年世代のチップでは8,192行に固定されている。 == リフレッシュ間隔 == リフレッシュ動作間の最大時間間隔は、DRAM 技術ごとに [[JEDEC]] によって標準化されており、製造業者のチップ仕様に規定されている。通常、DRAM ではミリ秒、[[eDRAM]] ではマイクロ秒の範囲で、DDR2 SDRAM チップでは 64 ミリ秒である<ref name="JEDEC DDR2">{{Cite web |title=JEDEC DDR2 SDRAM Specification |publisher=JEDEC Solid State Technology Assoc. |date=January 2005 |url=http://cs.ecs.baylor.edu/~maurer/CSI5338/JESD79-2B.pdf |website=ECS.Baylor.edu |access-date=August 27, 2012}}</ref>:20 リーク電流は、メモリセルキャパシタに蓄積される電荷とリーク電流の比率に依存します。メモリチップの世代が新しくなるごとにコンデンサの形状が縮小しているため、後世代のコンデンサが蓄える電荷量が少なくなっているにもかかわらず、DRAM のリフレッシュ時間は 1M チップでは 8ms、16M チップでは 32ms、256M チップでは 64ms と向上している。この改善は主に、リーク電流が大幅に少ないトランジスタの開発によって達成されている。リフレッシュ時間が長いということは、デバイスの時間のうちリフレッシュで占める割合が小さくなり、メモリアクセスに使える時間が増えることを意味する。以前のDRAMでは、リフレッシュのオーバーヘッドがチップ時間の最大10%を占めていましたが、最新のチップではこの割合は1%未満である。 半導体のリーク電流は温度とともに増加するため、高温時にはリフレッシュ時間を短縮する必要がある。DDR2 SDRAM チップには温度補償リフレッシュ構造があり、チップのケース温度が85°Cを超えると、リフレッシュ・サイクル時間を半分にする必要がある<ref name="JEDEC DDR2">{{Cite web |title=JEDEC DDR2 SDRAM Specification |publisher=JEDEC Solid State Technology Assoc. |date=January 2005 |url=http://cs.ecs.baylor.edu/~maurer/CSI5338/JESD79-2B.pdf |website=ECS.Baylor.edu |access-date=August 27, 2012}}</ref>{{Rp|49}} ほとんどのDRAMメモリセルにおいて、読み出し可能な電荷値、ひいてはデータの実際の持続時間は、リフレッシュ時間よりもはるかに長く、最大で1~10秒である<ref>[https://books.google.com/books?id=SrP3aWed-esC&q=refresh&pg=PA356 Jacob, 2007, p.356]</ref>。しかし、トランジスタの[[リーク電流]]は、製造プロセスでのばらつきにより、同一チップ上の異なるメモリセル間で大きく異なる。ビットが1つも失われる前にすべてのメモリセルがリフレッシュされるようにするため、メーカーはリフレッシュ時間を保守的に短く設定しなければならない。 この頻繁な DRAM のリフレッシュは、スタンバイ・モードの低電力エレクトロニクス・デバイスが消費する総電力の 3 分の 1 を消費します。研究者たちは、温度補償リフレッシュ(TCR)やDRAMの保持を考慮した配置(RAPID)など、リフレッシュ速度を低減することで充電間のバッテリー駆動時間を延長するアプローチをいくつか提案している。実験によると、一般的な市販の DRAM チップにおいて、最悪の場合 64ms のリフレッシュ間隔を本当に必要とするセルはわずかであり<ref name="hpca12ref2">Ravi K. Venkatesan, Stephen Herr, Eric Rotenberg. [http://people.engr.ncsu.edu/ericro/publications/conference_HPCA-12.pdf "Retention-Aware Placement in DRAM (RAPID): Software Methods for Quasi-Non-Volatile DRAM"]. 2006.</ref>、しかもその場合、指定された温度範囲の上限においてのみです。室温(例:24 °Cでは、同じ弱いセルを正しく動作させるために、500 ms に 1 回リフレッシュする必要がある。システムが最も弱い 1%のページの使用を避けることができれば、一般的な DRAM は、70 °Cでも、残りの 99% のページを正しく動作させるために、1 秒に 1 回リフレッシュするだけでよいことになる。いくつかの実験では、これら 2 つの補完的な技術を組み合わせ、室温で 10 秒のリフレッシュ間隔で正しい動作を実現している<ref name="hpca12ref2" />。 エラー・トレラントなアプリケーション(グラフィックス・アプリケーションなど)では、DRAMやeDRAMに保存された重要でないデータを、その保存期間よりも低いレートでリフレッシュすることで、わずかな品質低下でエネルギーを節約することができる。 == SRAM、DRAMのメモリ技術 == === SRAM === もう一つの半導体メモリである[[Static Random Access Memory|スタティック・ランダム・アクセス・メモリ]](SRAM)では、データは[[キャパシタ]]に電荷として格納されるのではなく、クロスカップリングされた一対の[[NOTゲート]]に格納されるため、SRAMはリフレッシュする必要がない。この2種類の基本的なメモリには長所と短所がある。スタティック・メモリは、電源が入っている間は永久的と考えることができる。つまり、一度書き込まれたメモリは、特別に変更されるまで保持されるため、システム設計上、その使用は単純になりがちである。しかし、各SRAMセルの内部構造は、DRAMセルに必要なトランジスタが1つであるのに対し、6つのトランジスタを必要とするため、SRAMの密度はDRAMよりはるかに低く、ビットあたりの価格はDRAMよりはるかに高くなる。 === CPUベースのリフレッシュ === 初期の[[マイクロプロセッサ]]([[Zilog]] [[Z80]]など)の中には、ダイナミック・メモリセルをリフレッシュするための行アドレス・ストローブ(RAS)を提供できる特別な内部レジスタを備えているものがあり、このレジスタはリフレッシュ・サイクルごとにインクリメントされる。これは、システムで既に使用されている他の集積回路が、RAM全体で既に循環アクセスを生成している場合([[モトローラ 6845]]など)にも実現できる。Z80のようなCPUでは、RASリフレッシュが利用可能であることが、ハードウェア設計を単純化できることから、大きなセールスポイントとなっていた。ここで、RASリフレッシュは、動作上冗長なクロック・サイクル(Tステート)の間、すなわち、バスが必要とされない可能性のある命令デコード/実行中に、アドレス・ワイヤと制御ワイヤの独自の組み合わせによって通知される。このようなTステートの間、バスが非アクティブになる代わりに、リフレッシュ・レジスタが、リフレッシュ回路に指示するための制御線の組み合わせとともにアドレス・バス上に提示される。 Z80の初期バージョンでは、16 kB RAMチップ(つまり128行)が一般的で、先見の明がなかったため、Rレジスタは7ビット幅(0~127、つまり128行)でしかインクリメントできなかった。64kビット以上のDRAMチップ(8ビットRAS付き)が急速に登場したため、不足する8ビット目を合成し、数ミリ秒後にメモリ・ブロックが失われるのを防ぐために、リフレッシュ信号の周囲に余分な回路やロジックを構築する必要があった。文脈によっては、[[割り込み (コンピュータ)|割り込み]]を利用して適切なタイミングで8ビット目を反転させ、Rレジスタの全範囲(256行)をカバーすることも可能であった。CPUからのリフレッシュ信号がこのカウンタのクロックとして使用され、その結果、リフレッシュされるメモリ行はリフレッシュ・サイクルごとにインクリメントされた。Z80コアの後のバージョンとライセンスされた互換CPUによって、自動サイクルに8ビット目が含まれないように改善され、最近のCPUは、このような基本的なプロビジョニングを大幅に拡張して、DRAMリフレッシュのための豊富なオールインワン・ソリューションを提供している。 === 疑似スタティックDRAM === 疑似スタティックRAM(PSRAMまたはPSDRAM)は、スタティックRAM(SRAM)と同様の動作をさせるためのリフレッシュ回路とアドレス制御回路を内蔵したダイナミックRAMである。DRAMの高密度性と、真のSRAMの使いやすさを兼ね備えている。PSRAM([[ニューモニクス]]社製)は、[[Apple|アップル社]]の[[iPhone]]やその他の[[組み込みシステム]]に使用されている。 一部の DRAM コンポーネントには「セルフ・リフレッシュ・モード」があり、これには擬似静的動作に必要なロジックと同じものが多く含まれるが、このモードはスタンバイ・モードと同等であることが多い。これは主に、DRAMに保存されたデータを失うことなく電力を節約するために、システムがDRAMコントローラの動作を一時停止できるようにするためのものであり、PSRAMのように独立したDRAMコントローラなしで動作できるようにするためのものではない。PSRAMの[[組み込みシステム|組み込み型]]は、[[MoSys|MoSys社]]から[[1T-SRAM]]という名前で販売されている。これは技術的にはDRAMだが、SRAMによく似た動作をし、[[ニンテンドー ゲームキューブ|ゲームキューブ]]や[[Wii]]コンソールで使われている。 == リフレッシュをともなうメモリ技術 == 初期のコンピュータ・メモリ技術の中にも、メモリのリフレッシュと同じような目的で定期的なプロセスを必要とするものがいくつかあった。[[ウィリアムス管]]は、DRAMと同様、本質的に容量性メモリであり、リフレッシュしない限り、各ビットに格納された値は徐々に減衰するため、最も類似性が高い。 [[磁気コアメモリ]]では、電源を切っても各メモリセルはデータを無期限に保持できるが、どのメモリセルからでもデータを読み出すとその内容は消去される。その結果、[[メモリコントローラ]]は通常、各{{仮リンク|読み出しサイクル|en|Reading (computer)}}の後にリフレッシュ・サイクルを追加し、非破壊読み出し動作のような錯覚を起こさせる。 [[遅延記憶装置]]は、データが実際には[[伝送線路]]に信号として格納されているため、常にリフレッシュが必要である。この場合、リフレッシュ・レートは[[アクセス時間]]に該当する。 == 脚注・参考文献 == {{Reflist|40em}} == 関連項目 == {{Portal|エレクトロニクス}} * {{仮リンク|メモリースクラビング|en|Memory scrubbing}} * [[ロウハンマー]] {{デフォルトソート:めもり・りふれっしゅ}} [[Category:主記憶装置]] [[Category:プロセスマイニング]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Cite news
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Portal
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Rp
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
メモリ・リフレッシュ
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報