RASを理解する方法:行アクセスストローブと行アクセスセレクト
さて、現代のPCは、まるで精密に巻かれた機械のようです。すべてのコンポーネントがクロックに基づいて動作し、時には1秒間に数十億回も動作します。しかし、非常に重要でありながら見落とされがちなのがRAMです。RAMのタイミングは複雑で、動作速度を制御するプライマリ、セカンダリ、ターディナルの設定がすべて存在します。これらの設定は、主に処理の速度を示すものであり、正しく実行されるかどうかを示すものではありません。いわば、パフォーマンスと安定性を左右するものです。さて、そんな中で、RAS(Row Access StrobeまたはRow Access Select)が重要な役割を担うようになります。少し奇妙なのは、非同期DRAMの時代ではRASは文字通り「チクタク」のようなストロボ信号だったのに対し、現代の同期DRAMでは制御信号に近いからです。それでも、この用語は使われ続けています。
基本的に、RASはメモリコントローラとRAMチップ間の小さな電気接続です。デフォルトではハイレベルです。コントローラがRASをローレベルにすると、RAMに「このデータ行を操作したい」という信号が送られます。するとRAMは、その特定の行を開く処理を開始します。RASは、行が開いている間はローレベルを維持し、行が閉じられるまでローレベルを維持する必要があります。そして、これは通常、メモリからデータが読み書きされた後に行われます。
RASに関連するタイミング
RAS の機能に関連するタイミングはたくさんありますが、おそらく最も話題になっているのは t RASです。これは基本的に、行を開いたままにするために RAS をローに維持する必要があるクロック サイクル数です。通常、これは 16-18-18-36 のように RAM タイミング セットの最後の数字で、真ん中の数字が t RASになる傾向があります。次に t RCDがあります。これは、 RAS が低くなってから CAS (列アクセス ストローブ) が低くなるまでの遅延です。これは、行と列のアドレスを設定するウィンドウです。行を開いてからその中の列にアクセスするための橋渡しと考えてください。このタイミングが適切に同期していないと、データ フェッチが乱雑になったり、遅くなったりする可能性があります。
もう一つの重要なパラメータは、行サイクルタイム(t RC )です。これは、1つの行を閉じてから次の行を開くまでの時間、つまり2つの行を開く間の最小時間です。そして、RASプリチャージ時間(t RP )は、RASがハイになってからローに戻って新しい行を開始できるまでの時間を示します。これらのタイミングがずれている場合、またはRAMが適切に構成されていない場合、安定性の問題や遅延が発生する可能性があります。なぜそうなるのかは定かではありませんが、一部の設定では、これらの調整によって安定性やパフォーマンスが向上することがあります(もちろん、慎重に行う必要があります)。
RAS は実際には何をするのでしょうか?
ほぼすべてのRAM操作は、何らかの形でRASを伴います。読み出しや書き込みを行う際は、必ずそのデータを保持する行と列を指定する必要があります。RASの立ち下がりエッジはRAMに「この行を開いて」と指示を出します。このプロセスは読み出しでも書き込みでも同じです。RASがローレベルになると、メモリチップは特定の行がまだ開いていない場合はその行を開くように指示されます。RASがローレベルである限り、その行は開いたままです。これは高速アクセスに不可欠です。
ここでリフレッシュサイクルが重要になります。RAMチップは時間の経過とともに電荷をリークするため、データを安全に保つためには定期的にリフレッシュする必要があります。これは、一定の間隔で行を開閉することを意味します。まるで、すべてのデータを保持するために本のページをめくるようなものです。定期的な読み取りまたは書き込みサイクルでも行はリフレッシュされますが、リフレッシュは自動的にバックグラウンドで行われるため、RAMはデータが失われないようにするために特別なリフレッシュ操作を必要とします。リフレッシュのタイミングがずれると、データが破損する可能性があります。私も経験があります。
さまざまなリフレッシュ戦略
RASを使ってRAMをリフレッシュする方法は、基本的に2つあります。1つ目は、RAS Only Refresh(ROR)です。これは非常にシンプルで、複雑な処理は一切ありません。RAMはリフレッシュが必要な間、行をオープンに保ち、その後閉じるだけです。重要なのは、シンプルである一方で、行がオープン状態になる時間が長くなるため、電力効率は必ずしも最高ではないということです。
2つ目はCAS Before RAS(CBR)です。こちらはもう少し巧妙で、まずCASをローにし、次にRASをローに引き下げますが、行アドレスを全く指定しません。代わりに、RAMは内部カウンターを使って、リフレッシュが必要な行を追跡します。その行をオープンし、次のリフレッシュサイクルのためにカウンターをインクリメントします。メリットは?毎回アドレス信号を送信する必要がないため、消費電力が削減されますが、微調整された電荷減衰制御のための余裕がなくなる可能性があります。これは現時点ではあまり重要ではありません。それでも、よく考えてみると、ちょっと奇妙な回避策です。
一部のシステムでは、CBRはアドレスデコードが不要なため、実際にはわずかに電力を節約できる可能性があります。しかし、全体的には、どちらの方法も、クラッシュやデータ損失を引き起こすことなく、RAMを長期間にわたって良好な状態に保つことを目的としています。メモリの動作が不安定な場合は、リフレッシュタイミングやモードレジスタを調整することで、安定させることができる場合があります。
まとめ
RASとは基本的に、RAMに「この列を空けて」と指示を出すことで、RAMの正常な動作に不可欠です。RASの設定が間違っていたり、タイミングがずれていると、データの取得速度が低下したり、最悪の場合、データが破損したりする可能性があります。t RASや t RPなどのタイミングは、この列が空いている時間と、システムが他のタスクに移る速度に影響します。これらのタイミングを理解することは、オーバークロックや安定性の問題のトラブルシューティング、特にBIOS設定をいじったり、Thaiphoon BurnerやMemTest86などのツールを使用したりする際に役立ちます。
RAMタイミングを微調整したり、マザーボードのBIOSがRAMの仕様に合わせて正しく設定されているか確認するだけで、システムが軽快で安定したものになるか、ひどく不安定なものになるかの違いが生まれることがあります。ですから、時間をかけてRAMの仕様を確認し、少し実験してみることを恐れないでください。ただし、バックアップなしでやり過ぎないようにしてください。RAMタイミングの調整は少々難解ですが、一度コツをつかめば、スムーズに動作するようになります。