【同時トピック】オペレーティングシステムモデルと3レベルキャッシュアーキテクチャ

授業内容

1. ノイマン型コンピュータモデルの詳しい説明

現在のコンピューター モデルはフォン ノイマン コンピューター モデルに基づいており、
コンピューターが実行されると、まず最初の命令がメモリーからフェッチされ、コントローラーのデコードを通じて、命令の要件に従って、メモリーからデータがフェッチされます。メモリにアクセスして、指定された演算とロジックを実行します。演算は処理を待機し、アドレスに従って結果をメモリに送信します。次に、2 番目の命令を取り出し、コントローラーのコマンドに従って指定された操作を完了します。等々。停止コマンドが発生するまで。
プログラムはデータと同じように格納されており、プログラムされた順序に従って、命令が段階的に取り出され、命令で指定された動作が自動的に完了する、これがコンピュータの最も基本的な動作モデルです。この原理は、1945 年にアメリカとハンガリーの数学者フォン ノイマンによって最初に提案されたため、フォン ノイマン コンピュータ モデルと呼ばれています。

1. コンピュータの 5 つのコアコンポーネント

  1. コントローラ (Control): コンピュータ全体の中枢神経であり、プログラムで指定された制御情報を解釈し、必要に応じて制御し、プログラム、データ、アドレスをスケジュールし、各部の動作を調整する機能を持ちます。コンピュータとメモリおよび周辺機器へのアクセス。お待ちください。
  2. 電卓(データパス): 電卓の機能は、データに対してさまざまな算術演算や論理演算を実行する、つまりデータを処理することです。
  3. メモリ(Memory): メモリの役割は、プログラム、データ、各種信号やコマンドなどの情報を記憶し、必要なときに提供することです。
  4. 入力 (入力システム): 入力デバイスはコンピュータの重要な部分です。入力デバイスと出力デバイスは、周辺機器と呼ばれる外部デバイスとして結合されます。入力デバイスの機能は、プログラム、生データ、テキストを転送することです。 、文字、制御コマンド、または現場収集データおよびその他の情報をコンピュータに取り込みます。一般的な入力デバイスには、キーボード、マウス、光電入力装置、テープ ドライブ、ディスク ドライブ、CD ドライブなどが含まれます。
  5. 出力(出力系):出力装置は入力装置と同様にコンピュータの重要な部分であり、外部コンピュータの中間結果や最終結果、各種データシンボルやテキスト、あるいはコンピュータ内の各種制御信号などの情報を出力します。 。マイクロコンピュータの一般的な出力デバイスには、ディスプレイ端末、CRT、プリンタ、レーザー プリンタ、プロッタ、テープ、CD-ROM などがあります。

下の図 - フォン ノイマン コンピュータ モデル図:
ここに画像の説明を挿入
ただし、上の図は抽象的な理論モデルに属しており、その具体的な用途は、次のような現代のコンピュータのハードウェア構造設計です。 上のハードウェア
ここに画像の説明を挿入
構造には、多くの付属品がありますが、コア CPU とメモリの 2 つの部分だけがあります。したがって、これら 2 つの部分に焦点を当てます。

2. CPUの内部構造

CPUの内部構造は制御部、演算部、データ部から構成されており、それぞれの機能は以下のとおりです。

  • コントロールユニット: コントロールユニットは、CPU 全体の指令および制御の中枢であり、命令レジスタ IR (命令レジスタ)、命令デコーダ ID (命令デコーダ)、およびオペレーション コントローラ OC (オペレーション コントローラ) で構成され、順序付けされた制御を調整します。コンピュータ全体の働きは非常に重要です。ユーザーがあらかじめプログラムしたプログラムに従い、各命令をメモリから順次取り出して命令レジスタIRに格納し、命令デコード(解析)によりどのような動作を行うべきかを決定し、決定した内容に従ってコントローラOCを動作させます。タイミング 微動制御信号を対応するコンポーネントに送信します。動作コントローラOCは主に、ビートパルス発生器、制御マトリックス、クロックパルス発生器、リセット回路、スタートストップ回路などの制御ロジックを含みます。
  • 演算ユニット: 演算ユニットは、演算ユニットの中核です。算術演算 (加算、減算、乗算、およびそれらの加算などの基本演算を含む) および論理演算 (シフト、論理テスト、または 2 つの値の比較を含む) を実行できます。制御ユニットと比較すると、演算ユニットは制御ユニットの命令に従って動作します。つまり、演算ユニットによって実行されるすべての演算は、制御ユニットによって送信される制御信号によって命令されるため、実行コンポーネントです。
  • 記憶部: 記憶部には、CPU 内にデータを一時的に保存する場所である CPU オンチップ キャッシュ キャッシュとレジスタ群が含まれ、処理待ちのデータや処理済みのデータが保存されます。 CPU がレジスタにアクセスするのにかかる時間は、メモリにアクセスするよりも時間がかかります。時間が短いです。レジスタは CPU の内部コンポーネントであり、読み取りおよび書き込み速度が非常に高いため、レジスタ間のデータ転送は非常に高速です。レジスタを使用すると、CPU がメモリにアクセスする回数が減り、CPU の動作速度が向上します。レジスタセットは、特殊用途レジスタと汎用レジスタに分けることができます。特殊用途レジスタは役割が固定されており、それぞれ対応するデータが格納されるのに対し、汎用レジスタは用途が広く、プログラマが指定することができます。

CPUの内部構造図は以下のとおりです。
ここに画像の説明を挿入

3. CPUキャッシュ構造

実行効率を向上させ、CPU とメモリ間の相互作用 (相互作用は CPU 効率に影響します) を減らすために、最新の CPU は一般に CPU 上にマルチレベル キャッシュ アーキテクチャを統合し、一般的な 3 レベル キャッシュ構造を統合します。

  • L1 キャッシュ、データ キャッシュと命令キャッシュに分かれ、論理コア専用
  • L2 キャッシュ、物理コア排他、論理コア共有
  • L3 キャッシュ、すべての物理コアで共有
    ここに画像の説明を挿入
    メモリ記憶領域サイズ: メモリ > L3 > L2 > L1 > レジスタ、
    メモリ速度の順序: レジスタ > L1 > L2 > L3 > メモリ。
    キャッシュは最小のストレージ ブロックであるキャッシュ ライン (キャッシュライン) で構成され、キャッシュ ラインのサイズは通常 64 バイトであることにも注意してください。
    キャッシュラインとはどういう意味ですか?
    たとえば、L1 キャッシュ サイズが 512kb、キャッシュライン = 64 バイトの場合、512 * 1024/64L1 にキャッシュラインがあります (Mysql のページング構造と同じように

4. CPUがメモリデータを読み出す処理

一般的に、CPU がメモリ データを読み取るプロセスは次のとおりです。

  1. レジスタ X の値を取得するには、CPU は 1 つのステップだけを必要とします。つまり、直接読み取ることです。
  2. CPU が L1 キャッシュから特定の値をフェッチするには、キャッシュ ラインをロックし、特定のデータをフェッチし、ロックを解除するという 1 ~ 3 ステップ (またはそれ以上) が必要です。ロックされていない場合は速度が遅くなります。
  3. CPU が L2 キャッシュから特定の値を取得したい場合、まず L1 キャッシュから値を取得する必要がありますが、L1 には存在しません。L2 では、L2 のロックが開始されます。ロック後、L2 のデータは次の場所にコピーされます。 L1 にアクセスすると、L1 のデータが読み取られ、上記 3 つの手順を実行してロックを解除します。
  4. CPU が L3 キャッシュを取得する場合も同様ですが、最初に L3 から L2、L2 から L1、L1 から CPU にコピーされる点が異なります。
  5. CPU によるメモリの取得は最も複雑です。バス帯域幅を占有するようにメモリ コントローラに通知し、メモリをロックするように通知し、メモリ読み取り要求を開始し、応答を待ち、応答データを L3 に保存します (そうでない場合は、L2 に移動します)。 、次に L3/2 から L1 へ、次に L1 から CPU へ、その後バスのロックが解除されます。
    非常に複雑ですが、なぜこのような設計になっているのでしょうか?

5. CPU にキャッシュがあるのはなぜですか

その主な理由は、CPU はムーアの法則に従って 18 か月ごとに 2 倍の速度で開発されていますが、メモリやハードディスクの開発速度は CPU の開発速度にはるかに及ばないためです。その結果、メモリは高性能になり、ハードディスクの価格は非常に高価になりました。しかし、CPUの高速演算には高速なデータが必要です。この問題を解決するために、CPU メーカーは CPU 内に少量の高速キャッシュを構築し、I/O 速度と CPU 動作速度の不一致を解決しました。
CPU がストレージ デバイスにアクセスするとき、データへのアクセスでも命令へのアクセスでも、データは連続した領域に集まる傾向があります (Mysql のページング構造と同じように)、これは局所性の原理と呼ばれるもので、次の2種類があります。

  • 時間的局所性: 情報項目がアクセスされている場合、近い将来再びアクセスされる可能性があります (CPU はそう考えます)。ループ、再帰、繰り返しのメソッド呼び出しなど。
  • 空間的局所性 (Spatial Locality): メモリ位置が参照されると、将来的にはその近くの位置も参照されます (CPU はそう認識します)。たとえば、連続して実行されるコード、連続して作成される 2 つのオブジェクト、配列などです。

要約する

  1. いくつかのコンピュータ システム モデルを学習しました
  2. CPUの3層キャッシュ構造を学習しました

おすすめ

転載: blog.csdn.net/qq_32681589/article/details/132011036