CPU とメイン メモリ間の速度一致の問題を解決するために、キャッシュ メモリを使用できます。キャッシュ メモリは、CPU とメイン メモリ DRAM の間に配置される小型ながら高速なメモリで、通常はスタティック メモリで構成されます。スタティックメモリは、CPUとメモリの間に位置する小容量ながら高速なメモリです。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
CPU とメイン メモリ間の速度マッチングの問題を解決するために、CPU とメイン メモリ間のキャッシュを実装に使用できます。
キャッシュとは
キャッシュ メモリはコンピュータのキャッシュ メモリであり、CPU とメイン メモリ DRAM (ダイナミック ランダム アクセス メモリ)。小型ながら非常に高速なメモリで、通常は SRAM (スタティック ランダム アクセス メモリ) で構成されます。 CPUとメモリの間に位置する、小容量ながら高速なメモリです。
CPU の速度はメモリの速度よりもはるかに高速です。CPU がメモリからデータに直接アクセスする場合、一定時間待機する必要がありますが、キャッシュはデータの一部を保存できます。 CPU が使用したばかりまたはリサイクルしたデータ。CPU が再度データにアクセスする必要がある場合、データのこの部分を使用するときにキャッシュから直接呼び出すことができるため、データへの繰り返しアクセスが回避され、CPU の待機時間が短縮されます。したがって、システムの効率が向上します。
キャッシュの機能
キャッシュの機能は、CPU データの入出力速度を高めることです。キャッシュ容量は小さいが高速、メモリ速度は低いが容量は大きい、スケジューリング アルゴリズムを最適化することで、あたかもストレージ システムの容量がメモリと同等でアクセス速度が同等であるかのように、システムのパフォーマンスが大幅に向上します。キャッシュ。
CPU の速度はメモリの速度よりもはるかに高速です。CPU がメモリからデータに直接アクセスする場合、一定時間待機する必要がありますが、キャッシュはデータの一部を保存できます。 CPU が使用したばかりまたはリサイクルしたデータ。CPU が再度データにアクセスする必要がある場合、データのこの部分を使用するときにキャッシュから直接呼び出すことができるため、データへの繰り返しアクセスが回避され、CPU の待機時間が短縮されます。したがって、システムの効率が向上します。キャッシュは L1Cache (レベル 1 キャッシュ) と L2Cache (レベル 2 キャッシュ) に分けられ、L1Cache は主に CPU 内に統合され、L2Cache はマザーボードまたは CPU 上に統合されます。
キャッシュの基本原理
SRAM に加えて、キャッシュには制御ロジックもあります。キャッシュが CPU チップの外部にある場合、その制御ロジックは通常、メイン メモリ/チェイス コントローラーと呼ばれるメイン メモリ制御ロジックと組み合わされます。キャッシュが CPU 内部にある場合、CPU がその制御ロジックを提供します。
CPUとキャッシュ間のデータ交換はワード単位ですが、キャッシュとメインメモリ間のデータ交換はブロック単位です。ブロックは複数のワードで構成され、固定長です。 CPU がメモリ内のワードを読み取ると、そのワードのメモリ アドレスがキャッシュとメイン メモリに送信されます。このとき、キャッシュ制御ロジックは、アドレスに基づいてワードが現在キャッシュにあるかどうかを判断します。キャッシュにあれば、キャッシュがヒットし、ワードはすぐに CPU に転送されます。そうでない場合は、キャッシュが欠落しています (ミス)。メイン メモリ読み取りサイクルは、メイン メモリからワードを読み取るために使用され、その読み取り結果は CPU に送信され、同時にこのワードを含むデータ ブロック全体がメイン メモリから読み取られてキャッシュに送信されます。
# 図 3.29 にキャッシュの概略図を示します。キャッシュの読み取り時間が 50ns、メイン メモリの読み取り時間が 250ns であると仮定します。ストレージ システムはモジュール式で、メイン メモリ内の各 8K モジュールは 16 ワードの容量を持つキャッシュに関連付けられています。キャッシュは 4 つのラインに分割されており、各ラインには 4 つのワード (W) があります。キャッシュに割り当てられたアドレスは、連想メモリ CAM (連想メモリ) に格納されます。 CPU がメモリ アクセス命令を実行すると、アクセスするワードのアドレスが CAM に送信されます。W がキャッシュにない場合は、W がメイン メモリから CPU に転送されます。同時に、W を含む連続した 4 つのワードで構成されるデータ行がキャッシュに送信され、キャッシュ内の元のデータ行が置き換えられます。ここで、置換アルゴリズムは、キャッシュの使用状況を常に管理するハードウェア論理回路によって実装されます。#キャッシュ構造設計で解決すべき問題キャッシュの基本的な動作原理から、キャッシュの設計に必要なことがわかります。 1 つは、キャッシュ ヒット率ができるだけ高いことを期待し、実際には 1 に近い値であることを期待すること、もう 1 つは、キャッシュが CPU に対して透過的であることを期待することです。キャッシュの場合、CPU のメモリアクセス方法は同じで、ソフトウェア側で何も追加する必要はなく、コマンドでキャッシュにアクセスできます。ヒット率や透過性の問題は解決され、CPUのメモリアクセスの観点からはメインメモリに匹敵する容量とキャッシュに近い速度のメモリとなります。このためには、制御機能を完成させるために特定のハードウェア回路、つまりキャッシュ コントローラを追加する必要があります。
キャッシュ構造を設計する際には、次のいくつかの問題を解決する必要があります: ① メインメモリの内容をキャッシュに転送するときに、どのように格納するか? ② メモリにアクセスするときに、キャッシュ内の情報をどのように検索するか? ③ キャッシュ容量が不足した場合のキャッシュの置き換え方法 キャッシュには既にどのようなコンテンツが存在しますか? ④ 書き込み操作が必要な場合、キャッシュの内容を書き換えるにはどうすればよいですか?
このうち、最初の 2 つの質問は相互に関連しています。つまり、メイン メモリの情報をキャッシュ内で見つける方法と、メイン メモリのアドレスをキャッシュ アドレスに変換する方法です。キャッシュ容量はメイン メモリの容量に比べて非常に小さく、保存される内容はメイン メモリの内容の一部にすぎず、キャッシュとメイン メモリ間のデータ交換はブロック単位で行われます。メイン メモリ ブロックをキャッシュに配置するには、アドレス マッピングと呼ばれる、キャッシュ内のメイン メモリ アドレスを特定する何らかの方法を使用する必要があります。 「マッピング」という言葉の物理的な意味は、位置間の対応関係を決定し、それをハードウェアで実装することです。このように、CPU がメモリにアクセスすると、CPU から与えられたワードのメモリアドレスが自動的にキャッシュアドレスに変換されます。つまり、キャッシュアドレス変換です。
キャッシュ置換問題は主に、キャッシュがミスした場合にキャッシュ内のコンテンツを置換する置換アルゴリズムを選択して実行することです。最後の質問は、更新中にメイン メモリとキャッシュの間の一貫性を維持することに焦点を当てた、キャッシュの書き込み操作戦略に関するものです。
(学習ビデオ共有: プログラミングビデオ)
以上がCPUとメインメモリ間の速度一致の問題を解決するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。