コンピュータ構成原理の検討ノート (完了)

序文

この記事の参考図書は、白仲英著『コンピュータ構成原理』第 6 版と機械工業出版『コンピュータ構成』です。この記事は最終的な復習用の参考資料であり、大学院入試ではなく、知識ポイントの焦点が異なる場合があります。間違いがあればご指摘ください。
焦点は第 2 章、第 3 章、第 4 章、および第 5 章です。残りの章は主に短答式の問題です。

サンプル PPT と同時に確認することをお勧めします:
リンク: https://pan.baidu.com/s/1PesCMnqalaPNtrbnOi1Nwg
抽出コード: d79d

特定のナレッジ ポイントを見つけるには、Ctrl+F現在のページの検索を使用できます。
個人的な要約なので、知識ポイントはかなり乱雑です。一部の演習は、復習の参考としてのみ、随時更新および補足されます。

この記事は合計 60,000 文字以上あり、読む時間は約 2 ~ 5 時間です。

このブログは私のブログ ガーデンに同期して更新されています:
https://www.cnblogs.com/Ck-0ff/p/16330517.html

記事ディレクトリ

ここに画像の説明を挿入
ここに画像の説明を挿入


第 1 章: コンピュータ システムの概要

1.1 コンピュータの分類と開発の簡単な歴史

分類

コンピュータの定義:

コンピュータは电子器件さまざまなタスク不需要人的干预を実行できるコンピュータ ベースのツールです数字化信息算术和逻辑运算快速

コンピュータには次の 2 種類があります。

  1. 電子デジタルコンピュータ:逻辑电子器件で構成され、変数は离散量
  2. 電子アナログコンピュータ:模拟运算器件で構成され、変数は连续量

電子デジタル コンピュータと電子アナログ コンピュータの主な違い:デジタル コンピュータはさらに専用コンピュータ汎用コンピュータ
ここに画像の説明を挿入
に分類できます。

汎用コンピュータは次の 6 つのカテゴリに分類できます。

  1. スーパーコンピューター
  2. メインフレーム
  3. サーバ
  4. パソコン
  5. シングルチップマイコン
  6. マルチコアマシン

ここに画像の説明を挿入

開発とハードウェア

コンピュータ開発の傾向:

小型化、ネットワーク化、巨大化、インテリジェンス化

コンピューターは 5 つの世代を経てきました。

初代:
1946~1957年、電子管式コンピューターかさばり、高価で、信頼性も低くなります。この時期に、基本的なコンピュータ システムが形成され、プログラミングの基本的な方法が決定され、データ処理機械が使用され始めました。

第二世代:
1958~1964年、トランジスタコンピュータ信頼性の向上、小型化、コストダウンを実現します。この時期に、産業用制御機械が使用され始めました。

第 3 世代:
1965 ~ 1971 年、中小型集積回路コンピュータ第 2 期には、モデルの多様化が形成され、生産がシリーズ化され、使用が体系化され、小型コンピュータが使用され始めました。

第4世代:
1972年~1990年大規模集積回路コンピュータ、超大規模集積回路コンピュータ、複数の大規模集積回路から構成されるマイクロコンピュータが登場。

第5世代:
1991年から現在に至るまで、超大規模集積回路コンピュータが登場し、超大規模集積回路で実現されるシングルチップコンピュータが登場し始めた。

命令セットの認証方法:

  1. IPコアのライセンス
  2. ISA ライセンス
  3. 認可 + 自社開発の命令セット

共通命令セット:
x86 ARM、RIS-V

コンピュータのパフォーマンス指標

ここに画像の説明を挿入

1.2 コンピュータの機能部分

コンピュータには
、入力デバイス、メモリ、算術論理演算装置、出力デバイス、コントローラの 5 つの主要な機能コンポーネントがありますが、
ここではいくつかの概念について簡単に説明し、具体的な知識ポイントについては後で詳しく説明します。

メモリー

メモリの役割はプログラムやデータを保存することであり、主記憶と補助記憶の2種類に分けられます。
メインメモリは、プログラムの実行中にプログラムをメモリに格納する必要があることをメモリに伝える電子の速度で動作します。
メモリは多数の半導体メモリセルで構成されています。

半導体フリップフロップは0と1の2つの状態を持ち、バイナリコードを記憶することができます。
これらの半導体メモリ セルは個別に読み書きされることはほとんどありませんが、ワードと呼ばれる固定サイズのグループで処理されます。
ワードあたりのビット数はワード長と呼ばれ、一般的なワード長の範囲は 16 ビットから 64 ビットです。
クリックして 16 ビット コンピューターを見つける場合:
メモリに数値を保存する 16 個のフリップフロップは、ストレージ ユニットと呼ばれます。各ストレージユニットにはアドレス
と呼ばれる番号がありますメモリのすべての記憶ユニットの合計数は、記憶容量と呼ばれます。

ムーアの法則:
18 か月ごとに、集積回路の性能は 2 倍になり、価格も 2 倍になります。

コントローラ

メモリ、演算器、入出力装置は、情報を保存、処理し、入出力を行います。これらのデバイスの動作は、特定の方法で相互に調整する必要があります。それがコントローラーの仕事です。コントローラは、他の機器に制御信号を送信したり、その状態を検出したりする大学の中心システムです。
入出力操作で構成される I/O 転送は、関連するデバイスと転送される情報を識別する I/O プログラムからの命令によって制御されます。ただし、転送を制御する実際のタイミング信号は制御回路によって生成されます。タイミング信号は、指定された動作がいつ起こるかを決定する信号です。プロセッサとメモリ間のデータ転送も、タイミング信号を通じてコン​​トローラによって制御されます。
ここに画像の説明を挿入

命令には 2 つの部分があります:
オペレーション コード:アドレス コード
コントローラーの基本タスクです。
命令フェッチ サイクルを期間と呼び、命令の実行期間を実行サイクル
呼びます。1ビットは最小の計算単位です。1バイトは構成されます。1ワードはnワードで構成され、n はワード長で、一般的なものは 8 ビットと 16 ビットです
bit

コンピューター内の単語は、命令とデータの両方を表すことができます。

フェッチ サイクル中にメモリから読み取られた情報の流れは命令フローであり、コントローラに流れます。
実行サイクル中にメモリから読み取られる、またはメモリに流入するデータはデータ ストリームであり、メモリまたは演算ユニットに流れます。

1.3 コンピュータ設計のアイデア

ストアドプログラム + プログラム制御
ノイマン型コンピュータ:
プログラムを保存し、アドレスに従って実行
ノイマン型コンピュータの基本的な考え方:

  1. データと命令はバイナリ形式で表現され、命令はオペレーションコードとアドレスコードで構成されます。
  2. プログラムとデータをメモリに保存する「ストアド プログラム」と「プログラム コントロール」。
  3. 命令の実行は順次実行されます。
  4. メモリ、演算装置、コントローラ、入出力装置の5つのコンポーネントで構成されます。

アダプタI/O デバイスは、ペリフェラル
と呼ばれることがよくあります。**アダプタ (I/O インターフェイス)** はコンバータに相当し、周辺デバイスがコンピューティングの特性に必要な形式でデータを送受信できるようにします。システム。

コンピュータ = ハードウェア システム + ソフトウェア システム

ソフトウェアとは、ハードウェア上で実行されるプログラムと、関連するデータおよびドキュメントを指します。

1.4 プロセッサーへのいくつかの補足

コンピュータの動作は命令によって制御され、特定のタスクを実行するには、一連の命令を含む対応するプログラムをメモリに保存する必要があります。特定の操作を実行する命令はメモリから 1 つずつフェッチされてプロセッサに送信され、オペランドとして使用されるデータもメモリに格納されます。

ここに画像の説明を挿入

この図は、メモリとプロセッサがどのようにリンクされているかを示し、また、ここで説明されていないプロセッサの重要な動作の詳細も示しています。(プロセッサの章で詳しく説明します)

ALU (論理演算ユニット) と制御回路に加えて、プロセッサにはさまざまな目的のための多くのレジスタが含まれています。命令レジスタ (IR) は現在実行中の命令を保持し、その出力構造は制御回路によって取得され、実行命令内のさまざまな処理コンポーネントを制御できるタイミング信号を生成できます。プログラム カウンタ (PC) も別の特殊目的レジスタです。読み取られて実行される次の命令のメモリ アドレスなど、プログラムの実行の進行状況を追跡します。
メモリと通信するレジスタにも 2 種類あります。これらは、メモリ アドレス レジスタ (MAR)メモリ データ レジスタ (MDR)です。MAR はアクセスされるユニットのアドレスを保持し、MDR はアドレス ユニットに書き込まれるか、アドレス ユニットから読み取られるデータを保持します。

第 2 章: 計算方法と計算機

この章の焦点:

データの固定小数点、浮動小数点の表現形式を習得し、正しく表現できる
データの原コード、逆コード、補数コード、シフトコードの表現方法を習得する 文字
、文字列、漢字の
表現方法を理解するパリティチェックコードを習得する
補数の固定小数点加減算を習熟し、オーバーフローを正しく検出できるようになる
最も基本的な2値加減算器の構成と動作原理を理解する
元のコードの構築原理を理解する配列乗算器、オリジナルの相補的な配列乗算を実行できる
配列除算器の構築原理を理解する、加算と減算の代替方法を使用して除算を実行できる
ALU の構築原理と 2 レベルの繰り上げの概念を理解する、
浮動小数点の加減算の計算ステップをクリアし、浮動小数点の加算・減算ができるようになる
パイプラインの基本原理を理解する

2.1 数据与文字的表示方式

真值和机器数

数据表示需要考虑的因素:

  1. 数据的类型
  2. 可能遇到的数值范围
  3. 数值精确度
  4. 数据存储和运算的硬件代价

数据的表示格式:

  1. 定点格式
  2. 浮点格式

真值: 现实中真实的数值
机器数: 计算机中用0和1组合表示的数值
定点数:固定小数点的未至表达数值的机器数
-定点整数:将小数点固定在机器数的最右侧表达的整数
-定点小数:将小数点固定在机器数的最左侧表达的小数
浮点数:小数点浮动表达的实数
无符号数:只表达0和正整数的定点整数
有符号数:表达负整数、0和正整数的定点整数
-符号位需要占用一个位,常用机器的最高位
-0表示正数,1表示负数
-具有原码、反码、补码、移码

无符号数与定点数的表示

没有符号位,使用全部字长来表示数值大小
举例:

字长N=8时,编码00000000~11111111
取值范围: 0~255(28-1)

定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或者纯整数。
定点数x=x0x1x2……xn表示如下(x0表示符号位,0正1负)
ここに画像の説明を挿入
举例:
ここに画像の説明を挿入

固定小数点の値の範囲
純粋な 10 進数の表現範囲は次のとおりです。
x 1 x 2 x 3 ... x n は、すべてのビットが 0 の場合に最小となり、各ビットが 1 の場合に最大となります。x 0は、符号ビット

0 ≤ |x| ≤ 1 - 2 -n

ここに画像の説明を挿入
固定小数点整数の表現範囲:
純粋な整数の表現範囲は次のとおりです:
x 1 x 2 x 3 ... x nは各ビットが 0 の場合に最小となり、各ビットが 1 の場合に最大となり、x 0はサインビット

0 ≤ |x| ≤ 2 -n - 1
ここに画像の説明を挿入

現在、コンピュータでは固定小数点の純粋な整数が主に使用されているため、固定小数点演算は略して整数演算と呼ばれます。

固定小数点数にはサイズの範囲があるため、固定小数点数を使用して非常に大きな数値と非常に小さな数値を表すにはどうすればよいでしょうか?
スケーリング係数を導入できます。
ここに画像の説明を挿入

浮動小数点数の表現

コンピュータの記憶装置内の有効な桁と数値の範囲をそれぞれ表現します。
倍率の違いにより、数値の小数点の位置は一定の範囲内で自由に移動できます。

10 進数 N は次のように記述できます。

N = 10 e × M

したがって、R 進数 N は次のように書くことができます。

N = Re × M

M: 仮数
e: 指数
R: 基数

指数コードと仮数部
阶码:指数部を表します。整数形式で表現され、データ内の小数点の位置を示し、浮動小数点数の表現範囲を決定します。
尾数: 固定小数点 10 進数で表され、有効桁数が指定されます。これにより浮動小数点数の精度が決まります。

ここに画像の説明を挿入
10 進数列の表現方法:
ここに画像の説明を挿入
BCD コード
ここに画像の説明を挿入
20 進数エンコーディングの部分スキーム
ここに画像の説明を挿入
20 進数コード:
正しいコードの場合、各ビットの数値に対応するビットの重みを乗算し、合計すると、それが表す 10 進数の値が得られます。
8421コードが加減算を実現する場合の修正規則:

  1. 9 (1001) を超えない、修正なし
  2. 9(1001)を超え、16(10000)を超えない場合は、6を加算して上位グループへのキャリーが発生し、最上位ビットが切り捨てられるように修正します。
  3. 16(10000)を超える場合は6回補正を加えます。

残り3ヤード 残り
3ヤードは、8421ヤードを基準として、各コードに0011を加えたものである。
共通の 8421 ヤードの加算器は、残りの 3 ヤードの加算器にそのまま利用できます。具体的なルールは次のとおりです。

  1. 2 つの 10 進数の残り 3 つのコードを加算し、その結果がキャリーを生成しない場合は、得られた合計値から 0011 を減算して、小数点以下の合計の残り 3 つのコードを取得します。
  2. 2 つの 10 進数の残り 3 つのコードを加算し、結果にキャリーがある場合、そのキャリーは正しいですが、10 進数の合計 0011 の残り 3 つのコードを取得した値に加算する必要があります。

グレイ コード グレイ
コードのコーディング規則は、2 つの隣接するコードを作成し、1 つのバイナリ状態のみが異なり、残りの 3 つのバイナリ ビットは同じ状態でなければなりません。
利点: あるコードから次の隣接するコードに変更する場合、1 ビットの状態のみが変更されるため、コード変換の連続性を確保するのに有益です。これは、アナログ/デジタル変換やビート電位の生成などのアプリケーションで特に役立ちます。

数値のマシンコード表現

符号ビットと値ビットは、対応する数値を表すために一緒にエンコードされます。

・オリジナルコード
・補コード
・逆コード
・シフトコード

オリジナルコード

固定小数点整数の元のコード形式は x 0 x 1 x 2 ... x n (x 0は符号ビット)
ここに画像の説明を挿入例:
ここに画像の説明を挿入固定小数点 10 進数の元のコード形式は x 0 x 1 x 2です。 ... x n (x 0は符号ビット)
ここに画像の説明を挿入
例:
ここに画像の説明を挿入
元のコードの表現範囲:
ここに画像の説明を挿入元のコードの概要

  1. 元のコードは符号ビットに数値の絶対値を加えたもので、0 は正、1 は負です。
  2. 元のコード 0 には 2 つのコードがあり、+0 と -0 のコードは異なります
  3. 元のコード表現はシンプルであり、実際の値と実際の値の間の変換は簡単です。
  4. 元のコードの乗算と除算の演算ルールは単純です
  5. 元のコードは加算と減算の演算を担当しており、
    2 つの数値を加算する場合は同じ符号で加算され、符号が異なる場合は減算されます。減算を実行する場合は、絶対値の大小を比較し、小数点から大きな数値を減算し、最後に結果の記号を選択する必要があります。

補体

モジュラスの概念:
コンピュータの演算装置、レジスタ、カウンタはすべて一定の桁数を持ち、無限の数を収容することは不可能です。演算結果が実際の最大表現範囲を超えるとオーバーフローが発生し、このときに発生するオーバーフロー量がモジュールとなります係数はゲージの容量
として定義されます例: カウント値が 0 ~ 15 の 4 ビット カウンタ。カウンタが 15 までカウントして 1 を加算すると、カウンタはオーバーフローし、オーバーフロー量は 16 になり、モジュロは 16 に等しくなります。固定小数点 10 進数のオーバーフローは 2、つまり 2 を法として、語長が n+1 ビットの固定小数点整数のオーバーフローは 2 n+1 、つまり2 n+1を法とします。

固定小数点整数の補数形式: x 0 x 1 x 2 ... x n (x 0は符号ビット)
ここに画像の説明を挿入
例:
ここに画像の説明を挿入

補数コードと真理値:
ここに画像の説明を挿入
ここに画像の説明を挿入
例:
ここに画像の説明を挿入
固定小数点整数の補数コード表現:
符号付き整数は、コンピュータのデフォルトで補数コードを使用します。
・最上位ビットは符号を示し、0が正、1が負 ・
正の数の補数:値を直接表す(=元のコード=符号なしの数)
・複素数の補数:対応する正の数の補数を反転して1を加算

例:
ここに画像の説明を挿入

ここに画像の説明を挿入
負の数の補数:
負の真値を「反転して 1 を加算」してマシン番号の補数を取得します。
負の補数「反転して 1 を加算」して負の真の値を取得します

負の数の補数演算。ボローを使用した 0 との減算に相当します。

ここに画像の説明を挿入
補数コードの特徴

  1. 補数コードの最上位ビットは符号ビットで、0 が正、1 が負です。
  2. 2 の補数のゼロには固有のエンコーディングがあります
  3. 補数符号の加減算の演算規則は単純で、
    最上位ビットが演算に関与し、他のビットと同様に扱われます。

逆コード

1 の補数: 2 進数 0 ~ 1、1 ~ 0
符号付き整数の 1 の補数:

  1. 最上位ビットは符号を表し、0 が正、1 が負です。
  2. 正負コード:値を直接表現(=元のコード=補コード)
  3. 負の 1 の補数: 対応する正の 1 の補数を反転します。

ここに画像の説明を挿入
例:
ここに画像の説明を挿入

フレームシフト

フレーム シフトは通常、浮動小数点数の指数コードを表すために使用されます
。固定小数点整数のフレーム シフト形式が e k e k-1 ...e 2 e 1 e 0であるとすると、フレームの定義は次のようになります。シフトは:
ここに画像の説明を挿入

(演算:補数コードに対応する符号ビットを反転)

8 シフト コードで表されるマシン桁数の真の値は、数値軸上で 2 7 = 128 桁だけ右にシフトされます。
ここに画像の説明を挿入
例:
ここに画像の説明を挿入
ここに画像の説明を挿入マシン コードの概要:

  1. 正の数の元のコード、逆コード、および補数コードは真の値に等しく、負の数のみ表現方法が異なります。
  2. 補数符号を使用しており、減算演算を加算演算で実現できるためハードウェアが節約でき、現在、機械では補数符号表現が広く使われています。
  3. 一部のマシンでは、元のコードを保存と送信に使用し、補数コードを計算に使用します。
  4. 一部のマシンでは、加算と減算を実行するときに補数コードを使用し、乗算と除算を実行するときに元のコードを使用します。
  5. フレーム シフト表記は主に、サイズを直接比較できる浮動小数点数の指数コードを表すために使用されます。範囲が補数コードと同じであることを示し、最上位ビットのみが反転されます

ここに画像の説明を挿入例:
ここに画像の説明を挿入

浮動小数点数の機械表現

32ビット単精度浮動小数点数
IEEE754規格:
ここに画像の説明を挿入
フレームシフト方式:
E=e+127-126 ~ +127の範囲を正の整数に変更1 ~ 254

64 ビット単精度浮動小数点数の正規化は
、 IEEE754 標準浮動小数点数のコンピュータ内で行われます。浮動小数点数の仮数部は純粋な 10 進数です。ゼロ以外の値を持つ浮動小数点数の場合、絶対値は仮数の値は ≥ 1/2、つまり仮数フィールドの最も有効な値である必要があります ビットは 1 である必要があり、この式の要件を満たす浮動小数点数を正規化式と呼びます。この式の要件を満たさない仮数部を、この要件を満たす仮数部に変換することを、浮動小数点数の正規化といいます。仮数シフトおよび修正指数コードの実装です。
ここに画像の説明を挿入

ここに画像の説明を挿入

隠しビット技術
ゼロ以外の浮動小数点数の仮数値の最上位ビットは 1 でなければならないため、浮動小数点数をメモリに保存する前に、仮数部を左に移動してビットを強制的に削除し、 2 進数はデータ表現の精度を向上させるのに役立ち、この処理方式には隠しビット技術が使用されていると言われています。

ここに画像の説明を挿入
もちろん、このような浮動小数点数を演算装置に取り込んで演算する場合は、最初に隠されたビットを復元する必要があります。

標準化された表現原則
仮数の最上位ビットは 1 で、小数点の左側に隠蔽されます (つまり、1≤M<2)。

ここに画像の説明を挿入

指数の真値 e は次数コード E としてシフト形式で表現されます。

32 ビット単精度正規化浮動小数点数の表現範囲は次のとおりです。

E = 1(0000 0001) ~ 254(1111 1110)
e = -126 ~ +127
データ範囲の最小値(絶対値)で表現
:e=-126、M=0 (1.M = 1)
10進数表現:2 -126 ≒ 1.18 × 10 -38
最大値:e = 127、M = 11...1 (23 1s)
1.M = 1.11...1 (23 1s) = 2 - 2 -23 10
表記:
(2 -2 -23 ) × 2 127 ≈ 2* 2 127 ≈ 3.40 × 10 38

64 ビット単精度正規化浮動小数点数の表現範囲は次のとおりです。

E = 1 ~ 2046
e = -1022 ~ +1023
表現できるデータ範囲(絶対値)
最小値:e=-1022、M=0(1.M=1)
10進数表現:2 -1022 ≒ 2.23 × 10 -308
最大値値: e = 1023、M = 11...1 (52 1s)
1.M = 1.11...1 (52 1s) = 2 - 2 -52
10 進表記:
(2-2 -52 ) × 2 1023 ≈ 2 × 2 1023 ≒ 1.79 × 10 308

さまざまな 32/64 ビット単精度/倍精度浮動小数点数:

  1. 真の値が 0 (マシン 0) のマシンの数

注文コード E=0、仮数部 M=0
正の0:S=0、負の0:S=1

  1. 非正規化浮動小数点数:
    指数コードE=0、仮数M≠0(Eオフセットは126)、真値F=(-1) S ×M×2 E-126
  2. 正規化された浮動小数点数:
    指数コード E = 1 ~ 254 (1111 1110)
    無限マシン数:

注文コード E = すべて 1 (1111 1111)、仮数部 M =0
+∞: S=0、-∞: S=1

  1. NaN (Not a Number)、非数値、
    コード E = すべて 1、仮数 M≠0

ここに画像の説明を挿入

例:

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2.2 文字列の表現方法

ビッグエンディアンとリトルエンディアン

文字列とは、連続した文字列を指し、通常はメイン メモリ内の複数の連続したバイトを占め、各バイトに文字が格納されます。
記憶方式はリトルエンディアンとビッグエンディアンに分けられます。
ここに画像の説明を挿入

2.3 漢字の表現

  1. 漢字の入力エンコーディング:
    ここに画像の説明を挿入
  2. 漢字内部コード:
    漢字内部コードは、漢字情報の格納や検索などの操作に使用される内部コードであり、通常 2 バイトで表されます。
    漢字の内部コードには多くの方式があり、国家標準コードの2バイトの最上位を1として符号化するなど、国家標準コードに基づいたエンコーディングが一般的です。

ここに画像の説明を挿入
3. フォントコード
ここに画像の説明を挿入4. 概要:
ここに画像の説明を挿入

Unicodeの実装方法

UTF-8

Unicode をバイト単位でエンコードする > 文字の範囲ごとに異なる長さのエンコードを使用する

UTF-16

16ビット符号なし整数単位

UTF-32

32ビット符号なし整数単位

現在、UTF-8 と UTF-16 が広く使用されていますが、UTF-32 はストレージ領域を浪費しすぎるため、ほとんど使用されません。

2.4 チェックコード

  1. チェックサム: 情報の送信または保存におけるエラーを検出し、さらには修正するコード
  2. 誤り検出コード:誤りのみを検出できるコード
  3. 誤り訂正符号: 誤りを検出して訂正する符号
  4. 最も単純で広く使用されているエラー検出コード:パリティ コード
  5. 奇数パリティ:パリティビットを含むデータ中の1の数を常に奇数にする
  6. 偶数パリティ:パリティビットを含むデータ中の1の数を常に偶数(0を含む)にする
  7. 奇数ビットのエラーしか検出できず、エラーを訂正することはできません。

例:
ここに画像の説明を挿入

2.5 固定小数点の加算と減算

2の補数加算

補数加算の公式は次のとおりです。モジュロ 2 n+1
ここに画像の説明を挿入
の意味では、任意の 2 つの数値の補数の合計は、2 つの数値の合計の補数に等しくなります。

例:
ここに画像の説明を挿入
補数加算の特徴:

  1. 演算に参加するには、符号ビットを数値の一部として使用する必要があります。
  2. モジュロ 2 n+1の意味で加算するには、つまりモジュロを超えるキャリーは破棄されます。

2の補数の減算

補数減算の式は次のとおりです。
ここに画像の説明を挿入
例:
ここに画像の説明を挿入

スピルオーバーの概念とテスト方法

固定小数点整数マシンでは、n+1 桁の表現範囲は |X|<2 n -1です
。演算中に絶対値を超える現象が発生した場合、それをオーバーフロー
ここに画像の説明を挿入
と呼びます。2 つの正の数を加算すると、結果はオーバーフローになります。マシンが処理できる以上の結果が得られます。マシンが表現できる最大の正の数は、正のオーバーフロー
と呼ばれます。2 つの負の数を加算すると、結果はマシンが表現できる最小の負の数より小さくなります。これは、負のオーバーフローと呼ばれます

例:
ここに画像の説明を挿入
ここに画像の説明を挿入

オーバーフローの原因の分析:
最上位値ビットの演算キャリーが符号ビットの演算キャリーと一致しない場合、演算オーバーフローが発生することが分析により示されました。

さらなる結論:最上位ビットにキャリーがある
が、符号ビットにキャリーがない場合、正のオーバーフローが発生します。 最上位ビットにキャリーがなく、符号ビットにキャリーがある場合、負のオーバーフローが発生します。

オーバーフロー検出方式

ダブルサイン方式

「歪んだ補数」またはモジュロ 2 n+2の補数と呼ばれる二重符号ビット法は、モジュロ 2 n+2
の補数で表現できる数値の範囲を 2 倍にすることができます歪んだ補数は次のように定義されます

ここに画像の説明を挿入

  1. 2 つの符号ビットはデジタルとみなされ、演算に関与します。
  2. 2 つの数値は 2 n+2を法として加算されます。つまり、
    最上位の符号ビットで生成されたキャリーは破棄する必要があります
    。修正された補数コードを使用した後、2 つの数値を加算すると、結果の符号ビットは 01 または 10 になります。 2 つの組み合わせ。オーバーフローが発生したことを示し、最上位の符号ビットが結果の正しい符号を示します。

例:
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
変形した補体の概要:

  1. 変形補数演算を使用する場合、演算結果の 2 つの符号ビットが異なる場合はオーバーフローを意味し、同じ場合はオーバーフローなしを意味します。したがって、オーバーフロー論理式は V=S f1 ⊕S f2です。ここで、S f1と S f2はそれぞれ最上位の符号ビットと 2 番目の符号ビットです。この論理式は、排他的 OR ゲートを使用して実装できます。
  2. モジュロ 2 n+2の補数加算の結果は、出力されるかどうかに関係なく、最上位の符号ビットが常に正しい符号を示します。

シングルサイン方式

(1) 符号ビットにキャリーがなく、最上位ビットにキャリーがある場合、正のオーバーフロー
が発生します。 (2) 符号ビットにキャリーがあり、最上位ビットにキャリーがない場合、負のオーバーフロー
が発生します。 したがって、オーバーフローの論理式は次のようになります。 : V=C f ⊕C 0
C fは符号ビットによって生成されるキャリー、C 0は最上位ビットによって生成されるキャリーです
(この論理関係は XOR ゲートによって簡単に実現できます)

固定小数点マシンでは、演算結果がオーバーフローした場合、論理回路を通じて自動的にオーバーフロー故障を検出し、割り込み処理を行います。

基本的な 2 進加算器/減算器

2 つの 2 進数 A i、B iとキャリー入力 C iを加算すると、合計出力 S iとキャリー出力 C i+1が生成されます。

ここに画像の説明を挿入

1ビット全加算器

真理値表によれば、3 つの入力端子と 2 つの出力端子は、次の論理式に従って接続できます。
ここに画像の説明を挿入ここに画像の説明を挿入
C i+1の時間遅延は2T です。ここで、 Tは、単一のゲート遅延に対応する単位ゲート遅延として定義されます。ステージロジック回路。T は通常、「AND」ゲートまたは「OR」ゲートの時間遅延を測定単位として使用するため、マルチレベル キャリー チェーンの時間遅延は、AND またはゲートの段数または数によって計算できます。 Tさんの (XORゲートの遅延時間は3Tとみなせます)
ここに画像の説明を挿入n個の1ビット全加算器(FA)をnビットのリップルキャリー加算器と減算器
にカスケード接続することができますMは入力ラインを制御する方法です
M=のとき0、加算(A+B)演算を行います。 M=1の場合、減算(AB)演算を行い、[A]補数-[-B]補数演算
に変換します。補数処理はB逆数+1で実現され、初期値はキャリーが接続されている ファンクションモードライン M で減算を行う場合、M=1 となり、加算器の最下位ビットに 1 を加算することと等価シングルサインビット方式のオーバーフロー検出ロジック; C n =C n-の場合1の場合、演算においてオーバーフローはなく、C ≠Cn-1のとき、演算においてオーバーフローがあり、XORゲートを通じてオーバーフロー信号が生成される。



2.6 固定小数点乗算

元のコードの並列乗算

この部分では、入力するのが難しい記号がいくつかあるため、より多くのコースウェアの画像が使用されます。
ここに画像の説明を挿入初期のコンピュータでは、ハードウェア構造を簡素化するために、シリアル 1 ビット乗算スキーム、つまり「加算シフト」が採用されました。 」という操作を何度も繰り返して実現しました。このアプローチには多くのコンポーネントは必要ありません。しかし、直列方式では遅すぎるため、大規模集積回路の出現以来、並列乗算器に属するパイプラインアレイ乗算器にはさまざまな形式が存在します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
乗算時間解析の
ここに画像の説明を挿入
例:
ここに画像の説明を挿入

相補回路

ここに画像の説明を挿入
ここに画像の説明を挿入

符号付き配列乗算器

補数段を含む乗算器は、符号補数の配列乗算器とも呼ばれます。
この論理構造では、3 つの補数器
と 2 つの補数器が合計で使用されます。その機能は、2 つのオペランド A と B を結合することで、乗算される前に正の整数になります。符号なし乗算配列 (コアコンポーネント)。2 つの入力オペランドの符号が一致しない場合に、演算結果を符号付き数値に変換する機能を持つ後補数
シーカー。

ここに画像の説明を挿入
まとめ
補数を備えた配列乗算器は、元のコードの乗算と間接的な 2 の補数の乗算の両方に適しています。
元のコードの乗算では、入力データがすぐに利用できるため、前補数も後補数も必要ありません。
間接的な 2 の補数配列の乗算には、3 つの補数の使用が必要です。必要な補数演算と乗算演算を完了するには、元のコード配列の乗算に比べて時間が約 2 倍かかります。

データが符号なし配列乗算器に送信される前に、演算に含まれる補数コード データがまずデータの絶対値に変換され、事前計算補数器によって完成されます。

積の符号ビットは、XOR ゲートを通じて個別に形成されます。

乗算演算が完了すると、2 つの数値の絶対値の積が積の符号ビットに従って補数形式に変換され、積の補数が得られ、後計算によって完了します。補完者。

配列乗算器によって補数を使用して実行される補数乗算は、本質的には間接的な補数乗算です。

2.7 固定小数点の除算演算

原理

2 つの元のコード番号を分割する場合、商の符号は 2 つの数値の符号のビット単位の XOR によって取得され、商の数値部分は 2 つの数値の数値部分を除算することによって取得されます。

n 個の固定小数点小数点があります (固定小数点整数も適用可能):
被除数 x、その元のコードは [x] です、original = X f X n-1 ... X 1 X o
除数 y、その元のコードは次のとおりです。 [y] オリジナル = y f y n-1 … y 1 y 0

次に、商 q = ×/y があり、その元のコードは
[q] original =(x⊕y)+(0.X n-1 ... x 1 x 0 /0.y n-1 .. .y 1 y 0 )
商の数値部分の演算は、本質的には 2 つの正の数の商を求める演算です。

例:
ここに画像の説明を挿入
ここに画像の説明を挿入

回復剰余法

マシンは暗算の方法を知らないため、最初に引き算を実行する必要があります。剰余が正であれば引き算が十分であることがわかり、剰余が負であれば引き算が不十分であることがわかります。
減算が十分でない場合、演算を続行するには元の剰余を復元する必要があります。元の剰余を復元するには、現在の剰余に除数を加算するだけです。ただし、剰余を復元する必要があるため、除算処理のステップ数が一定ではなく、制御が複雑になります。

加算と減算を交互に行う

余りを戻さない方法は加減算交互法とも呼ばれます。
特徴は、演算過程で引き算が不足した場合に余りを取り戻す必要がなく、余りの符号に応じて計算ステップ数を固定できるため、制御が簡単であることである。
ここに画像の説明を挿入
加減算の代替方法「除算側: x/y」
(1) まず、被除数 x に対して減算と除数 y の演算を実行します。つまり、 +[-y] の補数;
(2) 剰余の符号を判定します。剰余は正 (減算するには十分)、次に: 商に「1」を置き、
除数を 1 ビット右にシフトし、減算と除数 (+[-y 2 1 ]補数) 演算を実行します。
(3)剰余が負の場合 (減算するには十分ではない)、商に「0」を置き、
除数を 1 ビット右にシフトし、除数 (+[y
2 -1 ]補数) 演算を加算します。
:
固定小数点 10 進数の元のコード除算演算では
(1) x>0、y>0、値は正の小数として扱われます (符号ビットは別に考慮されます)
(2) x < y 、保証: 商 q = x/y も小数です。

※重要問題の割り算の加算・減算交互計算

https://blog.csdn.net/weixin_43889841/article/details/103653662

配列除算器

早期计算机为了简化结构,硬件除法器的设计采用串行的1位除法方案。即多次执行“减法-移位”操作来实现,并使用计数器来控制移位次数由于串行除法器速度太慢,已被淘汰
阵列除法器不仅所需的控制线路少,而且能提供令人满意的高速运算。
阵列除法器有多种多样形式,如不恢复余数阵列除法器补码阵列除法器等等。

可控加法/减法(CAS)单元

可控加法/减法(CAS)单元将用于并行除法流水逻辑阵列中,它有四个输出端和四个输入端。
当输入线P=0时,CAS作加法运算;当P=1时,CAS作减法运算
CAS单元的输入与输出的关系可用如下一组逻辑方程来表示

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

不恢复余数(加减交替法)阵列除法器

假定所有被处理的数都是正小数
在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
阵列除法器分析:
该阵列除法器是用CAS单元所组成的流水阵列来实
现的。
一个(n+1)位除(n+1)位的加减交替除法阵列由(n-1)2个CAS单元组成,其中两个操作数(被除数与除数)都是正的。

被除数 x は6 桁の 10 進数 (倍長値) です:
X = 0.X 1 X 2 X 3 X 4 X 5 X 6
これは、最上行と右端の対角線上の垂直入力ラインによって提供されます。

除数 yは 3 ビットの 10 進数です:
y=0.y 1 y 2 y 3
これは配列に対角線で入ります。
これは、除算の剰余の一部が左にシフトされるためです。同等の演算は、剰余が固定されたままであることです。 , while 除数を右斜めにシフトします 商
qは 3 桁の数値です:
q=0.q 1 q 2 q 3
配列の左側に
剰余が生成されます rは 6 桁の 10 進数です:
r =0.00r 3 r 4 r 5 r 6
- 配列の一番下の行を生成します

先頭行で実行される初期演算は減算であるため、先頭行
制御線 P は"1" に固定されます
初期キャリーインとして使用されます。**各行の左端のセルのキャリーアウトによって、次の値が決まります。商。**現在の商を次の行にフィードバックして、次の行の動作を決定します。キャリーアウト信号は、次の行の演算が加算であるか減算であるかを決定します。

配列除算器の演算時間
非剰余配列除算器の場合、演算の実行中にキャリー (またはボロー) が各行に沿って伝播され、すべての行がキャリー チェーン内で直列に接続されます。各 CAS ユニットの遅延時間は 3T ユニットであるため、2n ビットを n ビットの非復元剰余配列除算器で除算した場合、最大の場合
の信号遅延を考慮すると、ユニットの数は (n-1) 2 になります。、除算の実行時間は次のとおりです。t d =(n-1) 2 ×3Tここで、n は仮数部の桁数です。

ここに画像の説明を挿入

2.8 固定小数点演算器の構成

論理演算

論理番号は符号なしの 2 進数を指します

論理否定、論理和、論理積、論理排他

論理否定は、否定とも呼ばれます。特定の数値に対して論理否定を行うことは、ビットごとの否定です。共通の変数に横線を追加することは、
ここに画像の説明を挿入論理和を意味します。2 つの数値の論理和は、ビットごとです **"または「* *

ここに画像の説明を挿入
論理乗算はビット単位で求める **" と "** は
論理排他的論理和とも呼ばれます
ここに画像の説明を挿入
。2 つの数値の XOR はビット単位でモジュロ 2 の和を求めることです。排他的論理和は「ビット単位の加算」とも呼ばれます。
ここに画像の説明を挿入

2.9 リップルキャリーの補数加算器/減算器

ここに画像の説明を挿入
ここに画像の説明を挿入

2.10 ALUの基本的な考え方

この部分は最初に参照できます:
ALU
ALU2

74181ALU以下は74182CLA
コースウェアからの抜粋ですが、この部分は入力するのが難しいため、この記事では詳しく説明しません

ALU:
Arithmetic&logical Unit (Arithmetic&logical Unit) は、中央処理装置 (CPU) の実行ユニットであり、すべての中央処理装置の中核コンポーネントです。

全加算器 (FA) の論理式は次のとおりです。

F i =A i ⊕B i ⊕C i
C i+1 =A i B i +B i C i +C i A i

A と B を、制御パラメータ S 0S 1 S 2およびS 3によって制御される組み合わせ関数 Xi および Y i に結合し、Xi Yiおよび次のビットを全加算器 Full plus で処理します。このように、制御パラメータが異なれば、異なる組み合わせ関数が得られるため、さまざまな算術演算や論理演算が実現できます。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

补充:
算术运算操作是用补码表示法来表示的是指算术加,运算时要考虑进位
符号“+ ”是指“逻辑加
减法是用补码方法进行的,其中数的反码是内部产生的,而结果输出“A减B减1”,因此做减法时需在最末位产生一个强迫进位(加1),以便产生A减B的结果
A=B输出端可指示两个数相等,因此它与其他ALU的A=B输出端按“与”逻辑连接后,可以检测两个数的相等条件
ここに画像の説明を挿入

2.11总线

总线是计算机内各部件之间传送信息的公用的一组连线根据
总线所在位置,总线分为内部总线和外部总线两类

内部总线是指CPU内各部件的连线
外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线
按总线的逻辑结构来说,总线可分为单向传送总线双向传送总线

单向总线,就是信息只能向一个方向传送
双向总线,就是信息可以分两个方向传送,既可以发送数据,也可以接收数据

ここに画像の説明を挿入
运算器包括ALU阵列乘除器寄存器多路开关三态缓冲器数据总线等逻辑部件
运算器的设计,主要是围绕ALU寄存器数据总线之间如何传送操作数和运算结果进行的

在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和单片机中还要考虑在硅片上制作总线的工艺。

ここに画像の説明を挿入单总线总结:
数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送
在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,需要分两次来做,而且还需要A,B两个缓冲寄存器
主要缺点是操作速度较慢
虽然在这种结构中,输入数据和操作结果需要三次串行的选通操作,但它并不会对每种指令都增加很多执行时间,只有在对全都是CPU寄存器中的两个操作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只控制一条总线,故控制电路比较简单。

ここに画像の説明を挿入双总线总结:
两个操作数同时加到ALU进行运算,只需一次操作控制,而且马上就可以得到运算结果

两条总线各自把其数据送至ALU的输入端。特殊寄存器分为两组,分别与一条总线交换数据。通用寄存器中的数就可进入到任一组特殊寄存器中,使数据传送更为灵活

ALU的输出不能直接加到总线上去。因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在ALU输出端设置缓冲寄存器

假如在总线1,2和ALU输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,ALU输出端就可以直接把操作结果送至总线1或总线2上去。

ここに画像の説明を挿入3 つのバスの概要:
ALU の入力は 2 つのバスによって供給され、ALU の出力は 3 番目のバスに接続されます。計算操作は 1 ステップの制御内で完了できます。
ALU 自体には時間遅延があるため、出力結果に入力されるストローブ パルスはこの遅延を考慮する必要があります。
バス バイパスは、オペランドを変更する必要がなく、バス 2 からバス 3 に直接転送される場合、制御バスバイパスを通過可能 送信時にオペランドを変更する必要がある場合、 ALU 3バス構成の演算器は演算時間が速い
のが特徴です

2.12 浮動小数点演算と浮動小数点演算子

浮動小数点の加算および減算演算

ここに画像の説明を挿入
手順
浮動小数点の加減算を完了する演算プロセスは、大きく 4 つの手順に分かれます。
1.0操作数確認
2. 比較して阶码大小完了对阶
3.尾数加減算の実行
4. 結果规格化舍入処理

0操作数
浮動小数点加算および減算の検査プロセスは、固定小数点演算の検査プロセスよりも複雑です。2 つのオペランドのいずれかx、またはyどちらかが 0 であると判定された場合、演算結果がわかり、以降の一連の演算を行う必要がなく、演算時間を節約できます。

2 つの浮動小数点数の加算と減算を比較して完了するには、最初に 2 つの数値の順序コードが同じかどうか、つまり小数点の位置が揃っているかどうかを確認します阶码大小对阶
2つの順序コードが同じであれば、小数点が揃っていることを意味し、仮数の加減算が可能です。2 次コードが異なる場合は、小数点の位置が揃っていないことを意味するため、2 次コードは同じでなければなりません。この作業を位置合わせといいます。まず、2 次コードの差 E xそして E y を取得する必要があります。つまり E =
E x - E y

对阶:
ここに画像の説明を挿入尾数加算または減算演算を実行します
注文が完了した後、仮数部の合計演算を実行できます。加算演算、減算演算ともに加算演算に準じた演算が行われ、固定小数点加減算演算と全く同じ方法となります。

結果を最も近いものに规格化ここに画像の説明を挿入
舍入四捨五入することは、一般に「四捨五入」と呼ばれ、最下位ビットは 1 ずつ増加する必要があります。余分な 5 桁が 01111 (<10000) の場合は、単純に切り捨てます。特別な 5 ビット 10000 の場合: 最下位ビットが 0 の場合は切り捨てられ、1 の場合は 1 ビット上に移動して 0 になります。

0 に向かって丸めることと、数値軸の原点に向かって丸めることは、単なる切り捨てです。仮数が正か負かに関係なく、切り捨てにより値の絶対値は元の値の絶対値より小さくなります。この方法では誤差が蓄積されやすく、 + ∞ に向かって丸められます。正の数値の場合、長ければ長い
ほど、余分な桁がすべて 0 ではないため、最小値に向かって有効になります。1 を繰り上げます。負の数値の場合は、単純に切り捨てて -∞ 方向に丸めます。正の
数値の場合、余分な桁がすべて 0 でない限り単純に切り捨てます。負の数、1 を最下位桁に繰り上げます

ここに画像の説明を挿入流出分析

阶码上溢、次数コードの取り得る最大値を超える正の指数値は一般に ∞ および -∞ とみなされ
阶码下溢、次数コードの取り得る最小値を超える負の指数値は一般に 0 とみなされ
尾数上溢、これら 2 つは同じ符号を持ちます。仮数を加算すると最上位ビットから上にキャリーが発生し、仮数を右にシフトし、指数を 1 増やして整列し直します。仮数を右にシフトすると、仮数の最下位ビットが流れ出します
尾数下溢。丸める必要がある仮数フィールドの右端から。

浮動小数点数のオーバーフローは、その指数コードのオーバーフローによって現れます。

例:
ここに画像の説明を挿入
ここに画像の説明を挿入

浮動小数点の乗算および除算演算

ここに画像の説明を挿入
手順:加減算、乗除算の結果処理
0操作数の確認
阶码
尾数
规格化舍入

ここに画像の説明を挿入
仮数演算:

最初の簡単な方法は、通常の仮数の最下位ビット以降のすべての値を無条件に破棄することです。この方法はトランケーション処理と呼ばれ、処理が簡単であることがメリットですが、結果の精度に影響を与えることがデメリットとなります。
2 番目の簡単な方法は、演算中に右シフト中にシフトアウトされた上位のいくつかのビットの値を保持し、最終的にこれらのビットの値を使用して特定の規則に従って仮数を修正するという処理方法です。四捨五入

丸め処理
仮数部が元のコードで表されている場合
方法1:仮数部の最下位ビットが1であるか、シフトアウトされたビットの中に値1のビットがある場合、その最下位ビットの値を1にする方法 2: 1 を
0 に丸める方法。つまり、欠落している最上位ビットの値が 1 の場合、この 1 を最下位ビットに加算して修正し、それ以外の場合は欠落しているビットの値を破棄します。

ここに画像の説明を挿入
ここに画像の説明を挿入

2.14 パイプラインの原理

パイプラインを実現するには、まず入力タスクを一連のサブタスクに分割し、各サブタスクがパイプラインの各ステージで同時に実行できるようにする必要があります。また、タスクはパイプラインに継続的に入力され、並列パイプラインが実現されます。サブタスクの処理
。コンピュータのシステム パフォーマンスが大幅に向上し、コンピュータ上で時間並列処理を実現するための非常に経済的な方法です。

パイプラインでは、原則として各ステージの処理時間は同じであることが求められ、あるステージの処理時間が長くなると、必然的に他のステージでの空待ちが発生します。したがって、サブタスクの分割は、パイプラインのパフォーマンスを決定する重要な要素であり、演算部分の効率、期待される処理速度、コストに依存します。ジョブ T を k 個のサブタスクに分割すると、次のように表現できます

T={T 1 ,T 2 ,……T n }

各サブタスク間には特定の優先関係があり、i<j の場合、T は T が完了した後にのみ動作を開始できます。この線形の優先関係を持つパイプラインは、線形パイプラインと呼ばれます。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
例:
ここに画像の説明を挿入
ここに画像の説明を挿入

第3章 ストレージシステム

3.1 ストレージシステムの概要

メモリストレージ構造

プログラムの局所性
ある一定期間においては、あるローカルメモリのアドレス空間へのアクセスが頻繁に行われ、その範囲外のアドレス空間へのアクセスはほとんどない。

时间局部性:最近アクセスした情報は再度アクセスされる可能性があります

空间局部性:最近アクセスした近くのアドレスの情報にもアクセスできます

ここに画像の説明を挿入
ここに画像の説明を挿入
記憶媒体: 主に半導体デバイスと磁性材料を使用して
ビットを記憶します: メモリ内の最小記憶単位であるバイナリコードを記憶します

記憶ユニットは複数の記憶ビットで構成されます メモリは
多数の記憶ユニットで構成されます

ここに画像の説明を挿入

記憶の分類

記憶媒体と区別して、半導体メモリ、磁性体メモリ、光メモリに分けられます。

アクセス方法により、 随机存取存储器顺序存取存储器、に分けられます半顺序(直接)存取存储器

読み書きの機能から、随机存取存储器(RAM)に分けることができます。只读存储器(ROM)

情報の揮発性の観点からは、 に分けられます易失性存储器非易失性存储器

CPU との結合度から内部メモリと外部メモリに分けられ、内部メモリには主存、が含まれます高速缓冲存储器

メインメモリの分類:

ここに画像の説明を挿入

メモリのアドレス指定とエンディアン

ワード記憶部:機械語を記憶する記憶部であり、対応するユニットアドレスを といいます字地址
バイト記憶ユニット:バイトを記憶するユニットであり、対応するアドレスを と呼びます字节地址
ワードでアドレス指定されるコンピュータ: コンピュータのアドレス指定の最小単位はワードです存储单元
バイトアドレス指定可能なコンピュータ: コンピュータのアドレス指定の最小単位は です字节

機械語には数バイトを含めることができ、
記憶単位にも数バイトを含めることができます

エンディアンモード、エンディアンモードはビッグエンディアンモードリトルエンディアンモードに分かれています

ここに画像の説明を挿入

メモリ仕様

ここに画像の説明を挿入
ストレージシステムの主な内容
ここに画像の説明を挿入

3.2 スタティック ランダム アクセス メモリ

基本的なスタティック メモリ セル アレイ

メモリチップの基本構造
ここに画像の説明を挿入
基本的なスタティック記憶素子アレイ
ここに画像の説明を挿入
SRAM ※(Static Random Access Memory)記憶素子回路

ここに画像の説明を挿入シングルデコードモードのRAM :
ワード選択線が記憶部の各ビットを直接選択し、アドレスデコーダ
構成が1本のみ: 記憶容量M=W行×B列、共通のワード選択線Wがあり、各列に1本に対応メリット
構造が簡単、高速、小容量Mに適する
デメリット:周辺回路が多い、コストが高い、構造が無理

ダブルデコードRAMは、
アドレスをX方向とY方向の2つに分割し、2段階のデコードを
行います。第1段階では、X方向(行デコード)とY方向(列デコード)を独立してデコードし、1段階で完了します
。メモリ要素アレイ クロスデコーディングの第 2 レベルには、
X 方向と Y 方向に 2 つのデコーダが必要であり、大容量ストレージに適しています

シングルデコード方式とダブルデコード方式の比較

32K×8 ビットのメモリ セル マトリックス、32K=2 15には、合計 15 本のアドレス ラインが必要です。

  1. 単一のデコード方法を使用してアドレス デコードを生成する場合、アドレス デコーダの出力は 215ラインであり、 215 個の異なるメモリ セルを選択するために使用されます。
  2. ダブルアドレスデコード方式を使用する場合、15 ビットアドレスは X グループと Y グループに分割され、X は 8 ビットアドレス、Y は 7 ビットアドレスとなり、X の出力間の相互選択が行われます。デコーダと Y デコーダの出力も使用でき、15 個の異なるストレージ ユニットのうち 2 個を識別します。2 つのデコーダの出力は次のとおりです: 2 8 +2 7 =256+128=384

ここに画像の説明を挿入ここに画像の説明を挿入

3.3 基本的な動的メモリ

DRAM (Dynamic Memory) 記憶セルの​​書き込み動作プロセス、
ここに画像の説明を挿入
読み出しおよびリフレッシュ プロセス

ここに画像の説明を挿入

DRAMチップのリフレッシュ

DRAM定期的にリフレッシュする必要があります。
DRAMチップ内にリフレッシュ回路があります。
選択されたすべての行を 1 つの行でリフレッシュします。存储位元
リフレッシュ動作は、データを送信する必要がないことを除いて、読み取り動作と似ています。

リフレッシュ方法:

  1. 集中化された
  2. 分散型

集中リフレッシュの
ここに画像の説明を挿入特徴:
(1) チップの通常の読み取り/書き込みサイクルには影響しません
(2) チップの「デッドタイム」が長すぎるという問題が発生します。

分散リフレッシュ - 方法 1 では、
ここに画像の説明を挿入
各行のリフレッシュが通常の読み取り/書き込みサイクルに挿入されます。これには 2 つの欠点があります。
(1) システム サイクルが増加するため、システム速度が低下します。
(2) リフレッシュが頻繁になりすぎます。

分散リフレッシュ - 方法 2 (非同期リフレッシュ) は
ここに画像の説明を挿入最初の 2 つの方法を組み合わせたもので、128 行が 2 ミリ秒でリフレッシュされます:
2000μs ÷ 128 ≈ 15.5 μs、つまり 1 行が 15.5 μs ごとにリフレッシュされます。

SRAMとDRAMの比較

SRAM: 読み取りおよび書き込み速度が速く、製造コストが高く、主に小容量のキャッシュ メモリに使用されます。

DRAM:読み書き速度が遅く、集積度が高く、製造コストが安いため、主に大容量のメインメモリに使用されます。

ここに画像の説明を挿入

メモリ容量の拡張

複数のメモリチップで十分なメモリを構成

拡張方式:ビット拡張、ワード拡張、ワードビット同時拡張

必要なチップの数は次のとおりです。 d = 設計で必要な総メモリ容量 / 既知のチップ メモリ容量

CPUとメモリ間の接続

ここに画像の説明を挿入ビット拡張

ストレージユニットの数を増やさず、各ストレージユニットのワード長のみを増やす

配線方式:選択チップのアドレス線、チップ選択線、リード/ライト制御信号線は共通、データ線は別々に接続

例: 2 つの 1K×4 ビット SRAM2114 チップを拡張して 1K×8 ビット メモリを形成

ここに画像の説明を挿入
ワード拡張
指定されたチップのストレージ容量が小さい (数ワード) ため、設計で必要な総ストレージ容量を満たしていないため、現時点ではワード拡張が必要です

接続方式:選択したチップのアドレス、データ、リード/ライト制御信号線は共通で、アドレスバスの上位デコードによりチップ選択信号を生成するため、各チップが時間通りに動作します。

例: 4 個の 16K×8 ビット SRAM チップを拡張して 64K×8 ビットのメモリを形成

ここに画像の説明を挿入
ワード拡張時のアドレス解析
ここに画像の説明を挿入
ワードとビットの同時拡張

記憶ワード数が増えるだけでなく、記憶ワード長も増加します。

最初にビット拡張、次にワード拡張

例: 1K×4 ビットの 2114 チップを使用して 2K×8 ビットのメモリを形成し、合計 4 つのチップが必要です

ここに画像の説明を挿入
例:
20 ビットのアドレスと 32 ビットのワード長を持つメモリがある場合、次のように尋ねます。

  1. このメモリには何バイトの情報を保存できますか?
  2. メモリが 512k*8 ビット SRAM チップで構成されている場合、チップは何個必要ですか?
  3. チップセレクトには何ビットのアドレスが必要ですか?

ここに画像の説明を挿入

DRAMアクセス速度の向上

高速ページ モード DRAM 高速ページ モード ダイナミック メモリ

プログラムの局所性の原則に従って実装された高速ページ モードのダイナミック メモリ

ページ: 行内のすべてのメモリセル

高速ページ モードにより、選択した行のすべての列アドレスへの順次読み取りまたは書き込み操作が可能になります

典型的なタイミング: 6-3-3-3

ここに画像の説明を挿入

Extend Data Out DRAM 拡張データ出力ダイナミック メモリ

データ出力ステージとカラムアドレスステージは重なり合っています。最初のデータ出力ステージでは、2 番目のデータのカラムアドレスを外部アドレスバスを通じて与えることができます。 通常のタイミング:
5-2-2-2

バースト拡張データ出力 DRAM バースト ダイナミック メモリ

バースト型 EDO DRAM
バースト (バースト): メモリの同じ行内の隣接するメモリ セルに連続してアクセスする方法
カラム アドレス カウンタを内蔵し、外部バス送信カラム アドレスの時間を節約します。
一般的なタイミング: 5-1-1- 1

効率的なDRAM構造

シンクロナス DRAM (SDRAM)

SDRAMはシステムバス周波数に同期した独自のクロック制御信号を持ち、CPUとのデータ交換は外部システムクロック信号に同期し、ウェイトステートを挿入することなくCPU/メモリバスの最高速度で動作します。 。

SDRAM にはインターリーブされたストレージ アレイが含まれています。CPU が 1 つのストレージ アレイからデータにアクセスすると、もう 1 つのストレージ アレイはデータの読み取りと書き込みの準備が整います。2 つのストレージ アレイの緊密な切り替えにより、読み取り効率は 2 倍になります。新しいストレージは最大 2 倍の速度を実現しますSDRAM。ナノ秒。

ここに画像の説明を挿入非同期 DRAM および SDRAM

ここに画像の説明を挿入

ダブルデータレート SDRAM (DDR SDRAM)

クロックの立ち上がりエッジと立ち下がりエッジでそれぞれ2回のデータ送信が可能な2ウェイプリフェッチ機構を内部に採用
DDR2:4ウェイプリフェッチ
DDR3:8ウェイプリフェッチ
DDR4:16ウェイプリフェッチ

キャッシュ付き CDRAM ダイナミック メモリ

小容量キャッシュメモリをDRAMチップ上に集積し、 DRAMチップのアクセス速度を大幅に向上SRAM

ここに画像の説明を挿入
CDRAMの利点

  1. 高いバースト動作速度
  2. SRAM読み出し中のDRAMアレイの同時リフレッシュ
  3. チップ内のデータ出力パスは入力パスから分離されているため、同じ行の読み取り動作を書き込み動作と同時に開始できます。

CDRAM ストレージ モジュール
CDRAM 1 枚の容量は 1M×4 ビットで、8 個のチップで 1M×32 ビット (4MB) のストレージ モジュールを形成できます。

ここに画像の説明を挿入
ここに画像の説明を挿入

DRAMメインメモリの読み書きの正当性チェック

通常、DRAM はメイン メモリとして使用されます。読み取りおよび書き込み操作の正確性と信頼性を確保するために、通常のデータ ビット幅に加えて、読み取り/書き込み操作の正確性を検証するための追加ビットが追加されます。また、データビットが一緒に DRAM に書き込まれて保存されるのと同じである必要があります。

3.4 読み取り専用メモリ

ROMの分類

ここに画像の説明を挿入

マスクROM(MROM)

記憶内容が固定されたROM 、マスクプロセスにより一括製造

MROM チップが作成されると、その中のコードとデータは永久に保存され変更できなくなります。

広く使用されている標準機能のプログラムやデータ、または特別な機能を備えたカスタマイズされたプログラムやデータを格納するために使用されます。

読み取り速度はRAMよりもはるか遅い

プログラマブルROM

ユーザーはコンテンツを書き込むことができます。プログラマブル ROM には次の 3 種類があります。

ワンタイムプログラミング、PROM
複数プログラミング、光学的消去プログラマブルROM( EPROM )、
複数プログラミング、電気的消去プログラマブルROM ( E 2 PROM )

マルチプログラム可能な電気的消去プログラマブルROM E 2 PROM
は電気的消去を採用しており、消去速度が速い
1バイト単位でプログラム・消去可能で
使いやすい 小容量で単価が高い
多目的に繰り返し消去可能
システムの記憶に使用構成情報、システムパラメータ、暗号化保護データ、または時々更新する必要がある履歴情報

フラッシュ(FLASH)メモリ

フラッシュ (FLASH) メモリ
は、高密度、電気的に消去可能な不揮発性読み取り専用メモリです。

ROMの利点とRAMの利点の両方

フラッシュメモリー:

NOR技術
DINOR技術
AND技術
NAND技術

FLASHの詳しい説明:

フラッシュメモリー

NOR型フラッシュメモリ

通常、リニア フラッシュ メモリと呼ばれます
。任意のアドレスの内容をランダムに読み取ることができ、読み取り速度が高速です。
そこに格納されている命令はオンラインで直接実行できます。
単一バイトまたは単一ワードをプログラムできます。
ブロックまたはチップ単位で消去可能、
SRAMと同様のインターフェースを採用、情報保存の信頼性が高い、
監視プログラム、ブートローダー、システム構成などの保存に適しています。

NANDフラッシュ

通常ノンリニアフラッシュメモリ
と呼ばれる非ランダムアクセス
格納されている命令をオンラインで直接実行することはできない
ページ単位で書き込みを行うブロック
単位で消去を行う
バスを多重化し、インターフェースが従来のROMとは異なり、
大容量メモリに適している-容量ストレージデバイス、および部分的に磁気メディアストレージの代わりに使用されています

各種半導体メモリの性能比較

ここに画像の説明を挿入

3.5 並列メモリ

CPU とメイン メモリ間の速度の不一致により、コンピュータ システムの動作速度が制限されます。
CPU とメイン メモリ間のデータ転送速度を向上させるために、メモリには並列テクノロジが使用されます。

デュアルポートメモリ
マルチブロックインターリーブメモリ

デュアルポートメモリ

デュアルポートメモリ: 同じメモリに 2 セットの独立した読み取りおよび書き込み制御ラインがあり、高速作業メモリになります。

両方のポートには独自のアドレス、データ、および制御ラインがあります

2 つのポートにより、メモリ内のどこにでもデータに独立してアクセスできます

競合のない ioctl

2 つのポートのアドレスが同じでない場合、2 つのポートで読み取りおよび書き込み操作が実行されるときに競合は発生しません。任意のポートをドライバーとして選択すると、メモリ全体にアクセスでき、各ポートには独自のチップ選択制御 (CE) と出力ドライバー制御 (OE) があります。読み取り動作中、ポートの OE (アクティブ ロー) が出力ドライバーをオンにし、メモリ マトリックスから読み取られたデータが I/O ラインに表示されます。

ここに画像の説明を挿入

ioctlの競合

2 つのポートが同じメモリ位置に同時にアクセスすると、読み取りと書き込みの競合が発生します。この問題を解決するために、BUSY フラグが特別に設定されます。この場合、オンチップの判定ロジックにより、どのポートからリード/ライト動作を先に実行するかを決定し、遅延した別のポートにBUSYフラグをセットする(BUSYがローレベルになる)、つまり、そのポートを一時的にクローズすることができます。

-BUSY フラグを設定し、調停ロジックを使用します。
調停原則:

  1. CE 判定: アドレスが一致し、CE 前に有効である場合:
    オンチップ制御ロジックが CEL と CER を判定してポートを選択します。
  2. アドレス有効判定: アドレスが一致する前に CE が有効である場合
    : オンチップ制御ロジックが左右のアドレスを判定し、
    優先するポートを選択します。

左右ポートの読み書き動作の機能判定
ここに画像の説明を挿入

マルチモジュールインターリーブメモリ

複数のモジュールで構成されるメイン メモリは線形にアドレス指定されます。

シーケンスモードの特徴:(
メリット) あるモジュールがアクセスすると他のモジュールは動作しない あるモジュールが失敗しても他のモジュールは通常通り動作する モジュールを追加してメモリ容量を拡張すると便利 ラインワーク、
メモリ帯域幅は限られています。

モジュール間でアドレスを配置するには 2 つの方法があります。

シーケンシャル方式
クロスオーバー方式

シーケンシャル モード
各モジュールのアドレスは連続しています。
上位アドレスは異なるモジュールを選択し、下位アドレスはモジュール内のメモリ ワードを指します。
モジュールがアクセスすると、他のモジュールは動作しません。モジュールが
故障しても、他のモジュールは動作できます。
メモリ容量は比較的便利ですが、
モジュールはシリアルに動作し、メモリの帯域幅は限られています。

ここに画像の説明を挿入
インターリーブモード
連続したアドレスが隣接する異なるモジュールに分散され、同一モジュール内のアドレスが不連続になります

低アドレスはさまざまなモジュールを選択し、高アドレスはモジュール内のストレージ ワードを指します。

連続ワードのブロック転送により、複数モジュールのパイプライン並列アクセスが実現でき、メモリの帯域幅が大幅に向上します。

ここに画像の説明を挿入
マルチモジュールインターリーブメモリの基本構造
各モジュールは同等の方法でCPUと通信

CPUは同時に4つのモジュールにアクセスし、メモリコントロールユニットはそれらがデータバスを使用して時分割で情報を送信するように制御します。

並列メモリ構造です

ここに画像の説明を挿入
インターリーブ アクセス度
ここに画像の説明を挿入
インターリーブ メモリでは、モジュールが mτ 時間後に再起動されたときに最後のアクセス操作が完了していることを保証するために、実際のモジュール数が m 以上である必要があります。このようにして、m ワードを連続して読み取るのに必要な時間は次のようになります。

t 1 =T+(m-1)τ

シーケンシャル モードでメモリから m ワードを連続的に読み取るのに必要な時間は、t 2 =mTです。

Pentium の 64 ビット ストレージ構造

Pentium は 64 ビット データ バス、32 ビット アドレス バス、および
8 つの 8 ビット ストレージ バンクを採用し、64/32/16/8 ビット データの読み取りおよび書き込みをサポートします
。アドレス アラインメントの原理に従って、1 回の読み取りと書き込みが可能です 完全な読み取りと書き込み
– 2 で割り切れるアドレス (偶数アドレス) に 2 バイト (16 ビット) のデータが保存されます
– 4 バイト (32 ビット) のデータが保存されます4 で割り切れるアドレス (モジュロ 4 アドレス)
– 8 で割り切れるアドレス (モジュロ 8 アドレス) に格納される 8 バイト (64 ビット) データ

3.6 キャッシュメモリ

キャッシュの概要と基本原則

キャッシュ高速メモリは、
CPU とメインメモリ間の速度の不一致を解決するために使用される重要なテクノロジです。

CPUとメインメモリの間に小容量のキャッシュメモリを搭載
プログラムアクセスの局所性原理に基づく
CPUへの命令やデータの高速供給が可能
すべての機能をハードウェアで実現し、プログラマに対して透過的

CPUとキャッシュ間のデータ交換はワード単位、キャッシュとメインメモリ間のデータ交換はブロック単位で行われ、1ブロックは複数のワードで構成されます。

ここに画像の説明を挿入

キャッシュ原理図:
ここに画像の説明を挿入
キャッシュヒット率
プログラムの実行中に完了したアクセスの総数をN c 、メインメモリによって完了したアクセスの総数をN mとし、h をヒット率として定義すると、次のようになります。キャッシュの平均アクセス時間ヒット時のキャッシュアクセス時間をt c 、ミス時のメインメモリアクセス時間をt m、ミス率を(1-h)とすると、平均アクセス時間taは次のようになります。cache
ここに画像の説明を挿入

cache/主存系统

ここに画像の説明を挿入
キャッシュのアクセス効率より遅いメインメモリの割合を
r=t m /t ccache、アクセス効率を e とすると、次のようになります。

ここに画像の説明を挿入
例:
ここに画像の説明を挿入

キャッシュ構造

Cacheのデータ ブロックは行 (ラインLine、スロットSlot)と呼ばれ、
Li で表されます。ここで、i=0、1、...、m-1 で、合計で m=2 r行あります。

主存データ ブロックは、B jBlockで表される block ( )と呼ばれます。ここで、j=0、1、...、n-1、合計 n=2 sブロックです。

ラインとブロックは同じ長さであり、各ライン (ブロック) には k 個のメイン メモリ ワードが含まれます。

Cacheデータメモリとタグメモリで構成
データメモリ: データを保存
タグメモリ: データが存在するメインメモリのアドレス情報を保存

ここに画像の説明を挿入
キャッシュ設計の原則

  1. 可能な限り高いキャッシュヒット率
  2. キャッシュは CPU に対して透過的です

メインメモリとキャッシュ間のアドレスマッピング

キャッシュ内のメインメモリアドレスを見つけるために特定のメソッドを適用すると、地址映射

cacheCPUがメインメモリにアクセスすると、指定されたメモリアドレスが自動的にアドレスに変換されます。つまり、cacheアドレス変換です。

アドレスマッピング方式

直接映射(direct):每个主存块映射到 cache 的固定行中。

全相连映射(full associate):每个主存块映射到 cache 的任意行中。

组相连映射(set associate):每个主存块映射到 cache 的固定组的任意行中。

完全連想マッピング

メイン メモリのブロックをキャッシュ内の任意のラインに直接コピーします。
長所: 非常に柔軟、キャッシュ領域の使用率が高く、キャッシュ ブロック競合の可能性が低いです。 短所: アドレス
変換速度が遅く、コストが高く、小容量のキャッシュにのみ適しています。 
ここに画像の説明を挿入

ダイレクトマッピング方式

多対 1 のマッピング関係。
メイン メモリ ブロックは、キャッシュの特定のライン位置にのみコピーできます。キャッシュのライン番号 i とメイン メモリのブロック番号 j には、次の関係があります。

i= j mod m (m はキャッシュ内の行の総数です)

長所: シンプルなハードウェア、低コスト、速いアドレス変換速度
短所: 競合しやすい、大容量が必要なcache場合に適しています

ここに画像の説明を挿入
ここに画像の説明を挿入

グループ連想マッピング

最初の 2 つの方法を組み合わせると、
キャッシュが u 個のグループに分割され、各グループには v 行が含まれます。

メインメモリブロックとキャッシュグループ間ではダイレクトマッピング方式が使用され、各グループの行間ではフルアソシアティブマッピング方式が使用されます。つまり、メインメモリブロックは固定グループの任意の行に格納できます。

cacheグループ番号 q とメイン メモリ ブロック番号 j の関係は次のとおりです。
q=j mod u

(2/4/8/16 方向のグループ連想マッピングがより多く使用されます)

ここに画像の説明を挿入
ここに画像の説明を挿入
例:
メインメモリ - キャッシュレベルメモリがあり、メインメモリ容量が 1MB、キャッシュ容量が 64KB、各データブロックのサイズが 8KB の場合、ダイレクトマッピング方式の場合、メモリは何ブロックまで使用できます。
?に分かれる
② キャッシュは何行に分割できますか?
③ メモリアドレスの形式を書き出し、各フィールドのビット数をマークします。
④メインメモリのアドレスは25301Hですが、メインメモリのどこにありますか?
⑤ キャッシュにマッピングされるのはどの行ですか?

ここに画像の説明を挿入
ここに画像の説明を挿入
キャッシュの置換戦略​​ キャッシュの
動作原理では、可能な限り最新のデータを保存する必要があり、置換が発生する必要があります。

直接映射cache置換アルゴリズムは含まれず
全相联组相联cache新しいメイン メモリ ブロックをスワップアウトできるようにするために、いくつかの特定の行から 1 つの行を選択する必要があります。

一般的な置換アルゴリズム

最低使用頻度 (LFU) アルゴリズム
最低使用頻度 (LRU) アルゴリズム
ランダム置換

最も頻繁に使用されない (LFU) アルゴリズムは、
一定期間内にアクセスされた回数が最も少ないデータの行を交換します。0
から数えて各行にカウンターを設定し、アクセスされた行のカウンターを 1 ずつ増分します。アクセスされるたびに。置換が必要な場合は、カウント値が最も小さい行をスワップアウトし、同時にこれらの行のカウンタをクリアします。このアルゴリズムでは、
カウント期間が 2 つの置換間の間隔に制限されており、最近のアクセス状況を厳密に反映することはできません。

最も最近使用されていない (LRU) アルゴリズムは、
近い将来、長期間アクセスされていないラインをスワップアウトします
。各ラインにもカウンタが設定されます。キャッシュがヒットするたびに、ヒット ライン カウンタはクリアされ、他の行のカウンタは 1 ずつインクリメントされます。置換が必要な場合、最大のカウント値を持つラインがスワップアウトされ、
キャッシュにコピーされたばかりの新しいデータラインが保護されます。これはヒット率が高く広く使用されていますが、実装のためのハードウェアはより複雑です。

2-wayグループアソシアティブLRUアルゴリズムの実現

実装が簡略化され、カウンタは不要で、必要なバイナリ ビットは 1 つだけです。
グループ内の行 A を新しいデータにコピーしてこの位置を「1」に設定し、新しいデータにコピーする行 B でこの位置を設定できることが規定されています「0」にします。置換が必要な場合は、このバイナリ ビットの状態をチェックし、行 A を 0 に交換し、行 B を 1 に交換して、新しい行を保護する原理を実現します。

4 ウェイ セットアソシアティブ LRU アルゴリズムの図
ここに画像の説明を挿入
例:
コンピューターがワードでアドレス指定され、キャッシュには 4 行があり、キャッシュとメイン メモリ間で交換されるブロックのサイズが 1 ワードであると仮定します。キャッシュが最初は空で、アクセスされたメイン メモリ アドレスが 0、4、8、1、0、3、8、3、4、8 の場合、2 ウェイ グループ連想マッピングと LRU 置換戦略を使用し、キャッシュへのヒット数がキャッシュは_____回です。

A 1
B 2
C 3
D 4

ここに画像の説明を挿入
ランダムな交換

特定のライン位置からスワップアウトするラインをランダムに選択します。
ハードウェアでの実装が簡単で、最初の 2 つの戦略よりも高速です。
ヒット率とキャッシュの作業効率が低下します。

キャッシュ書き込み操作戦略

cacheコンテンツはメイン メモリの内容の一部のコピーであり、メイン メモリの内容と一致している必要があります。

書き込みポリシー

ライトバック、コピーバック、
ライトスルー、
ライトワンス

ライトバック方式
CPU がキャッシュ ヒットに書き込むと、キャッシュの内容が変更されるだけで、すぐにはメイン メモリに書き込まれません。ラインがスワップアウトされたときのみメイン メモリに書き戻されます。書き込みがミスした場合は、 , ブロック全体を
キャッシュにコピーします。後で変更すると、
メイン メモリへのアクセス数を減らすことができますが、不一致の潜在的な危険があります。
この方法を実装する場合、各キャッシュ ラインは、このラインがこのラインにあるかどうかを反映するように変更ビットを使用して構成する必要があります。 CPUによって変更されました

フルライト方式
ライトキャッシュがヒットした場合、キャッシュとメインメモリが同時に変更されるため、キャッシュとメインメモリの一貫性がより良く維持されます
ライトキャッシュがミスした場合は、メインメモリに直接書き込まれるため、
必要はありませんキャッシュ内の各行を設定する 変更ビットと対応する判定ロジック
欠点は、キャッシュの効率が低下することです

割り当てなし書き込み方式:書き込むワードをメインメモリに書き込み、書き込むワードを含むブロックは書き込みません。書き込み割り当て方式:書き込むワードをメインメモリに書き込み、書き込みワードを含むブロックは書き込みませんcache
。書き込むワード ブロック書き込みcache

ライトワンス方式
ライトバック方式とフルライト方式を組み合わせたライトストラテジ
ライトヒットとライトミスの処理方式は基本的にライトバック方式と同じですが、最初のライトヒットは同時にメインメモリに書き込まれるため、システム全体の整合性を
保つのに便利です。cache

ここに画像の説明を挿入
マルチレベル キャッシュを使用して、ミス損失を削減します。
高性能プロセッサは、追加のキャッシュ レベルをサポートできます
。2 次レベル キャッシュは、プロセッサ チップの内部またはプロセッサ チップの外部にあります。メイン メモリにアクセスすると、別の SRAM セットが
失われます。キャッシュのレベル。二次キャッシュにアクセスします。

例:
基本 CPI が 1.0 のプロセッサがあり、すべてのアクセスは 1 次キャッシュでヒットし、クロック周波数は 5GHz です。メイン メモリにアクセスする時間が、すべてのミス処理を含めて 100ns であると仮定します。

一次キャッシュ内の各命令によって生成される平均ミス率を 2% とします。2次キャッシュを追加した場合、ヒット・ミスのアクセス時間は5nsで、メインメモリにアクセスするミス率を0.5%に抑えるのに十分な容量となっていますが、プロセッサの速度はどれくらい向上しますか?

ほどく:

メイン メモリにアクセスする必要があるミス ペナルティは、
100ns/(0.2ns/クロック サイクル) = 500 クロック サイクルです。

1 レベルのキャッシュのみを備えたマシンの実効 CPI は、次の式で求められます。
合計 CPI = 基本 CPI + 命令ごとのメモリ ストールのクロック サイクル

この例のプロセッサの場合、キャッシュが 1 レベルのみの場合:

合計 CPI = 1.0 + 命令ごとのメモリ ストールのクロック サイクル = 1.0 + 2% x 500 = 11.0

2次キャッシュの場合、メインキャッシュ(1次キャッシュ)でミスが発生した後、2次キャッシュまたはメインメモリで処理することができます。2次キャッシュのアクセスロスは、5ns/(0.2)となります。 ns
/クロックサイクル)=25クロックサイクル

L2 キャッシュがすべてのミスを処理できる場合、これが合計ミス ペナルティになります。ミスがメイン メモリへのアクセスを必要とする場合、ミス ペナルティの合計は、2 次キャッシュにアクセスする時間とメイン メモリにアクセスする時間の合計になります。

2 レベル キャッシュの場合、合計 CPI は、基本 CPI と 2 レベル キャッシュ ストールのクロック サイクルの合計です。

合計 CPI = 1 + 各命令の第 1 レベルの一時停止 + 各命令の第 2 レベルの一時停止= 1+2%×25+0.5%×500=1+0.5+2.5=4.0

二次キャッシュを備えたプロセッサのパフォーマンスは、二次キャッシュを備えていないプロセッサの 2.8 倍、つまり
11.0 ÷ 4.0 ≒ 2.8 倍になります。

3.7 仮想メモリ

仮想メモリの定義と原理

仮想メモリ管理では、仮想アドレス空間は論理アドレス空間を指し、実アドレス空間は物理アドレス空間を指します。前者のサイズはマシンの命令アドレスの長さによって制限されますが、実アドレス空間のサイズはマシンの命令アドレスの長さによって制限されます。後者は物理メモリのサイズによって制限されます。

ここに画像の説明を挿入
仮想アドレス モードで動作する CPU は、仮想アドレスを認識し、それらを物理アドレスに変換します。

仮想メモリアクセス処理
仮想メモリ空​​間上のユーザプログラムは、仮想アドレスに従ってプログラムされ、補助メモリに格納されます。
プログラムの実行中、アドレス変換機構は、その時点でプログラムに割り当てられている実アドレス空間に従って、プログラムの一部を実記憶装置に転送します。
ここに画像の説明を挿入
仮想アドレス空間と実アドレス空間の関係
各プログラムの仮想アドレス空間は、実アドレス空間よりもはるかに大きくなる場合があります。

目的はストレージ容量を増やすことです

各プログラムの仮想アドレス空間は、実際のアドレス空間よりもはるかに小さい場合もあります。

マルチユーザーまたはマルチタスク システムでは、単一タスクに大きなアドレス空間は必要なく、仮想メモリ空​​間が小さいほど命令内のアドレス フィールドの長さを短縮できます。

仮想ストレージは概念モデルであり、実際の物理ストレージではありません

キャッシュと仮想メモリの同じ点
出发点相同:どちらもストレージ システムの性能と価格の比率を向上させるために構築された階層型ストレージ システムであり、どちらもストレージ システムのパフォーマンスを高速メモリに近づけながら、価格と容量を向上させるよう努めています。低速メモリに近い

原理相同: どちらも、プログラムの実行中に局所性原理を使用して、最近よく使用された情報ブロックを、比較的低速で大容量のメモリから比較的高速で小容量のメモリに転送します。

キャッシュと仮想メモリの違い
侧重点不同:キャッシュは主にメインメモリとCPUの速度差を解決し、仮想メモリは主に記憶容量の問題を解決します

数据通路不同: CPU、キャッシュ、メインメモリの間には直接アクセスパスがありますが、仮想メモリが依存する補助メモリとCPUの間には直接データパスがありません。

透明性不同: キャッシュはシステム プログラマとアプリケーション プログラマの両方に対して透過的であり、仮想メモリはシステム プログラマに対して不透過であり、アプリケーション プログラマに対してのみ透過的です。

未命中时的损失不同:メインメモリがミスした場合の仮想メモリシステムのパフォーマンス損失は、キャッシュがミスした場合の損失よりもはるかに大きくなります。

仮想メモリ機構によって解決される重要な問題
调度问题: どのプログラムとデータをメインメモリに転送するかを決定する
地址映射问题: メインメモリにアクセスするとき、仮想アドレスをメインメモリの物理アドレスに変更し、仮想アドレスをメインメモリの物理アドレスに変更する補助記憶装置にアクセスする際の補助記憶装置の物理アドレス アドレス
替换问题: どのプログラムやデータを呼び出すかを決める 主記憶装置
更新问题: 主記憶装置と補助記憶装置の整合性を確保する

主記憶 - 補助記憶レベルでの基本情報転送単位 主
記憶 - 外部記憶レベルでの基本情報転送単位は、いくつかの異なるスキームを採用できます。

– セグメント
– ページ
– セグメント ページ

セグメント管理

:プログラムの自然な境界に従って動的に長さを変更できる領域
段式管理:主記憶・補助記憶系の基本的な情報伝達単位はセグメントである
优点:セグメントの論理的独立性により、コンパイル、管理、変更が容易複数のプログラムの共有を容易にし、保護します。セグメント長は可変で、主記憶空間の有効利用に便利です。主記憶空間の割り当てが面倒で、プログラム間に多くのフラグメントが残りやすいです
缺点。物理アドレスは合計演算によって取得する必要があります。

ページ管理

:主記憶の物理空間に分割された等しい長さの固定領域
页式管理:主記憶・補助記憶系の基本情報伝達単位は固定長ページ
优点:ページ長は固定されており、構築に便利ページテーブル、管理が容易、外部断片化がない
缺点: ページ 長さはプログラムの論理サイズとは関係がないため、プログラミングの独立性が損なわれる スワップインとスワップアウトが面倒、ストレージ保護とストレージ共有

セグメントページ管理

段页式: セグメンテーションとページングを組み合わせた方法が採用されており、プログラムはモジュールごとにセグメント化され、セグメント内でページが分割され、ページはメインメモリに入るときの基本情報送信単位として使用され、セグメントテーブルとページが使用されます。テーブルを使用して2段階の位置管理を行う:セグメントとページが
优点一体化 従来の管理手法の特徴
缺点:テーブルを何度も参照する処理が必要

ページングされた仮想メモリ

逻辑页: ページング仮想ストレージ システムでは、仮想空間がページに分割されます
物理页。 : メイン メモリ空間が同じサイズのページに分割されます
虚存地址
ここに画像の説明を挿入

实存地址
ここに画像の説明を挿入ページテーブル図
ここに画像の説明を挿入
インナーページテーブルとアウターページテーブル

内页表: 仮想アドレスからメイン メモリの物理アドレスへの変換テーブル
外页表: 仮想アドレスと補助メモリ アドレス間の変換テーブル メイン メモリに
ページがない場合、ページング操作ではまず補助メモリ
を見つける必要があります。外部ページ テーブルは通常、補助メモリ、および必要に応じてメイン メモリに転送可能 メイン
メモリが見つからない場合、ストレージ管理ユニットはページング操作を実行するために CPU に「ページ フォールト割り込み」を送信します

変換ルックアサイド バッファ (TLB) は、
ページ テーブルの最もアクティブな部分をメモリに保存するために導入されています。メイン メモリに保存されている完全なページ テーブルはTLBと呼ばれます高速存储器通常、連想メモリによって実装されます。容量は非常に大きくなります。低速テーブルよりも小さいため、ストレージが低速です。テーブル内の情報の一部のコピー。これにより、ハードウェアの高速検索操作を完了できます。快表(TLB)
慢表

仮想メモリ、TLB、およびキャッシュの連携動作
仮想メモリとキャッシュ システムは、階層構造として連携します。 オペレーティング
システムは、階層構造の管理において重要な役割を果たします
。 ページがディスクに移動されると、ページのコンテンツ全体がディスクから削除されます。キャッシュの削除と同時に、オペレーティング システムはページ テーブルと TLB を変更します。

最良のケースでは、仮想アドレスは TLB によって変換されてからキャッシュに送信され、そこで正しいデータが検出され、プロセッサによって取得されます。最悪のケースでは、TLB、ページ テーブル、およびキャッシュの 3 つのコンポーネントがすべて失われます
。行方不明です

例:
ページ仮想メモリ、TLB、キャッシュで構成されるメモリ階層では、メモリにアクセスすると、キャッシュ ミス、TLB ミス、ページ フォールトという 3 つの異なるタイプのミスが発生する可能性があります。これら 3 つの欠失のうち 1 つ以上が発生する可能性のあるすべての組み合わせ (7 つの可能性) が調査されました。
それぞれの可能性について、これが実際に起こるかどうか、またどのような条件下で起こるかを述べてください。
ここに画像の説明を挿入

セグメント化された仮想メモリ

セグメントを基本単位として構造化された仮想メモリ

仮想アドレス:
ここに画像の説明を挿入
仮想アドレスは実際のメイン メモリ アドレスに変換され、セグメント テーブルを通過する必要があります。

ここに画像の説明を挿入

セグメント化された仮想メモリ

セグメントページ仮想メモリ:セグメント仮想メモリとページ仮想メモリを組み合わせた管理方式です。プログラムが論理ユニットに分割された後、各セグメントは固定サイズのページに分割されます

プログラムはページ単位でメインメモリへの入出力を行い、セグメント単位での共有と保護が実現できるため、ページ型とセグメント型の両方の利点を兼ね備えています
。マッピングプロセス中に何度も

セグメントページ仮想メモリの配置プロセス

各プログラムは、セグメント テーブルとページ テーブルのセットを通じて 2 レベルの再配置を実行します。

セグメント テーブルの各エントリはセグメントに対応し、各エントリにはセグメントを指すページ テーブル開始アドレスがあります。

ページ テーブルは、メイン メモリ内のセグメントの各ページの位置と、ページがロードされているか変更されているかなどのステータス情報を示します。

セグメント化されたページ仮想メモリの仮想アドレス

仮想アドレスは段号段内页号、で页内偏移量構成されます。

マルチタスク システムでは、オペレーティング システムは各仮想アドレスの前に基数も追加します。

ベース番号はシステム内のプログラムの通し番号を示し、プログラムのセグメントテーブルの開始アドレスを示します。

ここに画像の説明を挿入
アドレス変換の概要 アドレス
処理中、セグメントテーブルとページテーブルのエントリの対応する有効ビットが1の場合のみ変換動作が可能です。それ以外の場合はテーブル作成やページングを中断する必要があります。

仮想アドレスからメイン メモリ アドレスへのマッピングのプロセスで、セグメント ページ仮想メモリはテーブルを複数回検索する必要があるため、実装がより複雑になります。

ページ テーブルのサイズがページのサイズを超える場合、ページ テーブルをいくつかのページに分割して、ページ ディレクトリ テーブル、ページ テーブルなどの 2 次ページ テーブル階層を形成する必要がある場合があります。

仮想メモリ置換アルゴリズム

仮想メモリ内のページ置換ポリシーとキャッシュ内の行置換ポリシーには 3 つの違いがあります

⑴ キャッシュの置換はすべてハードウェアによって実装されますが、仮想メモリの置換はオペレーティング システムによってサポートされます。   ⑵仮想メモリのページ フォールトがシステム パフォーマンスに与える影響は
、キャッシュ ミス ページが置換できる影響よりも

一般的に使用されるアルゴリズムは次のとおりです: FIFO算法LRU算法LFU算法

置換アルゴリズムの実装
仮想メモリの置換戦略​​では、通常、最も最近使用されていない (LRU) アルゴリズム、最も頻繁に使用されていない (LFU) アルゴリズム、先入れ先出し (FIFO) アルゴリズム、またはその 2 つの組み合わせが使用されます。アルゴリズム

置換されるページは、メインメモリに転送された後にページが変更されていない場合は処理する必要はありませんが、そうでない場合は、外部メモリ内のデータの正確性を保証するためにページが外部メモリに書き換えられます。メモリー。これを行うには、ページ テーブルの各行に変更ビットを設定する必要があります。

ストレージ管理ユニット MMU

Memory Management Unit(MMU): 仮想アドレスと実アドレス変換のコアコンポーネント

機能: 仮想アドレスと実アドレスの変換を完了し、TLB の制御メカニズムを維持し、ストレージ保護を担当し、割り込みを開始し、TLB 障害後の補充メカニズムを維持します。

ワークフロー: CPU がメモリ アクセス用の仮想アドレスを送信した後、MMU はメイン メモリ ページ テーブルにアクセスしてマッピング関係を取得します。メイン メモリがヒットした場合は、仮想アドレスを実アドレスに変換して物理アドレスを生成します。メイン メモリ ページがヒットした場合は、仮想アドレスを実アドレスに変換します。が見つからない場合、オペレーティング システムがページング操作を実行します

第4章 指揮系統

4.1 指令体系の開発と要求性能

指示の概念


指令コンピューター プログラムは、コンピューターに何かを行うように指示する一連の命令
、つまりコマンドで構成されています。

微指令: ハードウェアに属するマイクロプログラム レベルのコマンド
宏指令: ソフトウェアに属する複数の機械命令で構成されるソフトウェア命令
机器指令: 命令と呼ばれるマイクロ命令とマクロ命令の間で、各命令は独立した算術演算または論理演算を完了できます

指令系统コンピュータ内のすべての命令のセットです

コンピュータの基本機能を決定します。ソフトウェアとハ​​ードウェア間のインターフェイスは、
コンピュータ システム設計の中核問題です。

ISA: 命令セット アーキテクチャ 命令セットの構造

コマンドシステムの開発プロセス

  1. 1950 年代の命令システムには、固定小数点の加算と減算、論理演算、データ送信、転送などの命令が数十から数十しかありませんでした。
  2. 1960年代後半になると、乗除算、浮動小数点、10進数、文字列処理などの命令が追加され、命令数は100~200に達し、アドレッシング方法も多様化し、一連のコンピュータが登場し始めました。
  3. 1970 年代後半、ほとんどのコンピューターには数百の命令システムがあり、これらのコンピューターは複雑な命令システム コンピューター (CISC複雑な命令セット コンピューター)と呼ばれていました。

縮小命令セット コンピュータ (RISC縮小命令セット コンピュータ)

命令セットのパフォーマンス要件

命令システムの性能はコンピュータの基本的な機能を決定し、コンピュータのハードウェア構造と密接に関係するだけでなく、ユーザーのニーズにも直接関係します。

完全性
有効性
規則性
互換性

命令体系の完全性
完备性:各種プログラムをアセンブリ言語で記述する場合、命令体系から直接与えられる命令だけで十分であり、実装にソフトウェアを使用する必要がない

要件: 機能が充実していること、使いやすいこと

指揮系統の有効性

有效性: このコマンド システムを使用して作成されたプログラムは効率的に実行できます。

パフォーマンス: プログラムは小さなストレージスペースを占有し、高速に実行されます。

コマンド体系の規則性
规整性: 規則性にはコマンド体系对称性、、、が含まれます匀齐性一致性

对称性: 命令システム内のすべてのレジスタとメモリ ユニットを同等に扱うことができ、すべての命令がさまざまなアドレッシング モードを使用できることを意味します。
匀齐性: 演算上の性質の命令がさまざまなデータ型をサポートできることを意味します。 命令
フォーマットとデータ フォーマット一致性: 命令には特定のものがあります。処理とアクセスを容易にするための長さとデータ長の関係

コマンド体系の互換性
兼容性:シリーズ各機種の基本ソフトウェアを共通で使用可能

向上兼容: ローエンド マシンで実行されているソフトウェアはハイエンド マシンでも実行できます。

低水準言語とハードウェア構造の関係

低水準言語は機械語(バイナリ言語)とアセンブリ言語(記号言語)に分けられます

低レベル言語はすべて機械指向の言語であり、特定の機械の命令システムと密接に関連しています

高級言語と低級言語のパフォーマンス比較
ここに画像の説明を挿入

4.2 命令フォーマット

指令字(简称指令):命令を表す機械語
指令格式:バイナリコードで表現された命令語の構造形式
ここに画像の説明を挿入

操作码字段OC: 命令の動作特性と機能を特徴づけます
地址码字段AC。 : 動作に関係するオペランドのアドレスを指定します。

住所コード

住所コード欄の基本情報

  1. オペランドまたはオペランドのアドレス
  2. 演算結果が格納されるアドレス:
    寄存器编号
    主存地址
    I/O地址

さまざまなオペランドを持つ命令:

3アドレス命令
2アドレス命令
1アドレス命令
0アドレス命令

3アドレス命令

ここに画像の説明を挿入
A 1 : ソースオペランドアドレス
A 2 : デスティネーションオペランドアドレス
A 3 : 結果が格納されるアドレス

関数: (A1) OP (A2) → A3

2アドレス命令

ここに画像の説明を挿入
A 1 : ソース/デスティネーション オペランド アドレス
A 2 : デスティネーション/ソース オペランド アドレス
機能:
(A1) OP (A2) → A1
(A1) OP (A2) → A2

2アドレス命令は3種類

2アドレス命令:

メモリ-メモリ( SS)タイプ
レジスタ-レジスタ( RR)タイプ
レジスタ-メモリ( RS)タイプ

1つのアドレス命令

ここに画像の説明を挿入
A: オペランドを指定します

関数:
OP (A) → A
(AC) OP (A) → AC(AC 暗黙の規約アキュムレータ)

ゼロアドレス命令

ここに画像の説明を挿入
機能: オペランドを必要としない命令。たとえば、no-op、stop シングルオペランド命令、オペランドがアキュムレータ内にあることが暗黙的に合意され、ダブルオペランド命令がスタックに使用されます。

オペコード

コマンドの動作の性質を示すコマンドコード。コマンドの動作制御情報を提供します。

オペコードには、ビットの一意の組み合わせが必要です。

命令の数 m とオペコードのビット数 n は次を満たす必要があります。m≤2n

固定長オペコードまたは可変長オペコード(拡張オペコード)を使用可能

固定長オペコードの例

例: 命令語長は 16 ビットです。命令は 3 アドレス、2 アドレス、1 アドレス、0 アドレスの 4 種類あります。各アドレスは 4 ビットを占有します。固定長オペコード方式を使用すると、1 ビットで何命令を表現できますか?多くの?
答え: 2 4 = 16 個

拡張オペコードの例

例: ある命令語長が 16 ビットで、3 アドレス、2 アドレス、1 アドレス、0 アドレスの 4 種類の命令がありますが、命令と 0 アドレスの命令が 16 個ある場合、命令フォーマットはどのように設計すればよいでしょうか?

ここに画像の説明を挿入

注: 1、ショート コードをロング コードのプレフィックスにすることはできません
。 2、各命令のオペレーション コードを繰り返してはなりません。

例:

ここに画像の説明を挿入

命令語長
指令字长度: 命令語内のバイナリ コードのビット数
机器字长: コンピュータが直接処理できるバイナリ データのビット数。コンピュータの計算精度が決まります
单字长指令: 命令長はマシンの長さに等しいword
半字长指令: 命令長が機械語の長さの半分に等しい word
双字长指令: 命令長が 2 つの機械語長に等しい命令

マルチワード命令:
使用されます多字长指令。目的は、メモリの任意のユニットにアクセスする際のアドレス指定の問題を解決するのに十分なアドレス ビットを提供することです
缺点。命令全体をフェッチするにはメモリに 2 回以上アクセスする必要があり、CPU の計算速度が低下します。そしてより多くのストレージスペースを占有します

等長命令語と可変長命令語
等长指令字结构: 命令系内の各命令語の長さが等しい
特徴: 構造が単純で命令語の長さが一定
变长指令字结构: 命令語の長さが変化する特徴:構造が
柔軟、命令長を最大限に活用できるが、命令のデコードと制御が複雑

命令ニーモニック プログラム
の作成と読み取りを容易にするために、各命令は通常 3 つまたは 4 つの英語の略語で表されます。この略称はこう呼ばれます指令助记符

ここに画像の説明を挿入

8ビットマイコンの命令フォーマット

メモリはバイト単位でアドレス指定されるため、シングルワード命令の各命令が実行されると、命令のアドレスは 1 ずつ増加します。
ダブルワード命令や 3 ワード命令を実行する場合、命令アドレスを 2 または 3 増やす必要があります。マルチワード命令形式はマシン速度の向上に役立たないことがわかります。

ここに画像の説明を挿入

MIPS R4000命令フォーマット

テストしないでください、少し

ARM命令フォーマット

ここに画像の説明を挿入ここに画像の説明を挿入

Pentium命令フォーマット

テストしないでください、少し

4.3 オペランドの種類

地址数据: アドレスは実際にはデータの形式です
数值数据: コンピュータで一般的に使用される 3 種類の数値データ
①固定小数点整数または固定小数点
10 進数 ②浮動小数点
数 ③圧縮 10 進数
字符数据: テキスト データまたは文字列、現在広く使用されている ASCII コード
逻辑数据: 単位 あり複数のバイナリ ビットが含まれており、各ビットの値は 1 または 0 になります。

4.4 命令とデータのアドレッシングモード

命令のアドレッシングモード

アドレッシング モード: 命令またはオペランドのメモリ アドレスが形成される方法

命令アドレッシング モード: メモリ内の命令のアドレスを形成するために使用されます。
データ アドレッシング モード: メモリ内のオペランドのアドレスを形成するために使用されます。

命令のアドレッシングモード

顺序寻址方式: 命令と命令の順序

程序计数器(又称指令指针寄存器)PC: カウント命令のシーケンス番号

跳跃寻址方式
跳跃:是指下条指令的地址码不是顺序地由程序计数器PC给出,而是由本条指令给出

程序计数器PC的内容也必须相应改变,以便及时跟踪新的指令地址
采用跳跃寻址方式,可以实现程序转移或构成循环程序
条件转移无条件转移指令:实现指令的跳跃寻址

操作数寻址方式
操作数的寻址方式:形成操作数的有效地址的方法
操作数的寻址过程:把操作数的形式地址,根据寻址方式特征位变换为操作数的有效地址的过程

ここに画像の説明を挿入
操作数寻址方式的类型

  1. 隐含寻址
  2. 立即寻址
  3. 直接寻址
  4. 间接寻址
  5. 寄存器寻址
  6. 寄存器间接寻址
  7. 偏移寻址
  8. 段寻址
  9. 堆栈寻址

隐含寻址
特点:在指令中不明显地给出操作数的地址

单地址的指令格式,在指令地址字段中,没有指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说就是一个隐含地址
例:DIV BL
AX / BL,商存AL中,余数存AH中

立即寻址

特点:指令的地址字段指出的不是操作数的地址,而是操作数本身

指令中直接给出了操作数,不需要通过访问内存来取数,因而指令执行时间很短

ここに画像の説明を挿入
例:指令 MOV AX,100H
100H就是立即数

直接寻址

特点: 在指令格式的地址字段中,直接给出操作数在内存的地址A

指令字中的形式地址A,就是操作数的有效地址EA,通常把形式地址A又称为直接地址
用D表示操作数,那么直接寻址的表达式为:D=(A)

例如: MOV AX,[3000H]
ここに画像の説明を挿入
间接寻址
特点:形式地址A不是操作数D的真正地址,而是操作数地址的指示器,即:A的内容才是操作数的有效地址

直接アドレッシングと間接アドレッシングの組み合わせは次の形式になります。
ここに画像の説明を挿入
アドレッシング機能ビット I
I=0、直接アドレッシング、実効アドレス: EA=A
I=1、間接アドレッシング、実効アドレス: EA=(A)

間接アドレス指定の図

ここに画像の説明を挿入
レジスタのアドレス指定

特点: オペランドはメモリに配置されず、汎用レジスタに配置されます。

命令で指定するオペランドアドレスはメモリのアドレスユニット番号ではなく、汎用レジスタの番号です。

たとえば、次のコマンドを実行します。 ADD R0,R1;

(R0) + (R1) → R0 (オペランドはレジスタ内)

レジスタ間接アドレッシングの
特徴:
命令で指定されるレジスタの内容はオペランドではなく、オペランドのアドレスです。つまり、EA = (R) で指定されるオペランドはメモリ内にあります。

図:
ここに画像の説明を挿入
オフセット アドレッシング
直接アドレッシングとレジスタ間接アドレッシングの組み合わせ
実効アドレス:EA=A+(R)
命令には 2 つのアドレス フィールドが必要で、少なくとも 1 つは明示的
3 種類

– 相対アドレス指定
– ベースアドレス指定
– インデックス付きアドレス指定

相対アドレッシングの
特徴: プログラムカウンタ PC の内容を命令で指定されたアドレス A に加算して、オペランドの実効アドレスを形成します。

たった今:EA =A+(PC)

正式なアドレス A はオフセットと呼ばれ、その値は正または負の値をとることができ、実効アドレスは現在の命令アドレス (現在の PC 値) の上限と下限の範囲のオフセットです。

プログラムがメモリ内のブロック単位で移動できると便利です

ここに画像の説明を挿入
ベースアドレス指定

機能: CPU のベース アドレス レジスタ RB の内容を命令で指定された正式アドレス A に加算して、オペランドの実効アドレスを形成します。つまり、
E=(RB ) +A

ベースレジスタのビット数は、正式アドレス A のビット数よりも大きくすることができるため、オペランドのアドレス指定範囲を拡張できます。

ここに画像の説明を挿入
インデックスアドレッシング
機能: CPU のインデックスレジスタ RX の内容をオフセット A に加算して、オペランドの実効アドレスを形成します。

即:EA=(RX)+A

正式アドレス A はベース アドレスを与え、Rx はオフセットを与え、反復操作を完了するための効果的なメカニズムを提供します。

ここに画像の説明を挿入
セグメントアドレッシングモード
マイコンではセグメントアドレッシングモードが採用されており、その本質はCPU内のアドレスであるベースアドレスアドレッシングです。段寄存器

特殊なケース:
1MB の記憶領域の直接アドレス指定機能を得るために、16 ビット コンピュータで 20 ビット アドレスを形成するにはどうすればよいでしょうか?

最大長の 64KB に従って、1MB の空間メモリ全体をいくつかのセグメントに分割します。特定のメモリ ユニットをアドレス指定する場合、ベース アドレス (セグメント レジスタ) にレジスタによって提供される 16 ビットのオフセットを加えたものが、実際の 20 ビットの物理アドレスを形成します。

20 ビットの物理アドレスを形成する場合、セグメント レジスタ内の 16 ビットの数値は自動的に 4 ビット左にシフトされ、16 ビットのオフセットに加算されて、必要な 20 ビットのメモリ アドレスが形成されます。

ここに画像の説明を挿入スタックアドレス指定

スタックには 2 つの種類があります寄存器堆栈存储器堆栈

ストレージの原則: 先入れ後出し

データ アクセスはスタックの最上位を介して行われ、暗黙的または明示的なスタック ポインター (レジスタ) が必要です。

スタック命令: PUSH、POP

ここに画像の説明を挿入
32ビットアドレッシングモード

(1) イミディエート データは 8 ビット、16 ビット、または 32 ビットです。

(2) レジスタアドレス:汎用命令は 8 ビット/16 ビット/32 ビットの汎用レジスタを使用します。64 ビット浮動小数点演算の場合は、32 ビット レジスタのペアを使用します。いくつかの命令は、セグメント レジスタを使用したレジスタ アドレス指定を実装します。

⑶ オフセット アドレッシング: ダイレクト アドレッシングとも呼ばれ、オフセット長は 32 ビットに達し、グローバルへのアクセスに使用できます。

⑷ ベースアドレッシング:ベースレジスタBは汎用レジスタの一つであり、その内容が実効アドレスとなります。

(5) ベースアドレス + オフセットアドレッシング: ベースアドレスレジスタ B は 32 ビット汎用レジスタのいずれかです。

⑹比例インデックス + オフセット アドレッシング: インデックス アドレッシング モードとも呼ばれ、インデックス レジスタ I は ESP を除く 32 ビット汎用レジスタのいずれかであり、このインデックス レジスタの内容を 1、2、4、または 8 倍することができます。スケール係数 S を計算し、オフセットを加算して実効アドレスを取得します。

⑺、⑻ 2 つのアドレッシング方法は、⑷、⑹ の 2 つのアドレッシング方法を組み合わせたもので、このときのオフセットはオプションです。

⑼相対アドレッシング:転送制御命令に適しています。現在の命令ポインタ レジスタ EIP または IP (次の命令のアドレス) の内容に符号付きオフセットを加算して、CSセグメントのセグメント内オフセットを形成します。

4.5 代表的なコマンド

数据处理比較的完全な指導システムには、 、数据存储数据传送程序控制の 4 つのカテゴリがあるはずです。

コマンドの種類:

データ転送命令
データ操作命令
プログラム制御命令
入出力命令 ストリング
命令
システム制御命令

データ転送命令
最基本的指令类型

一般的な転送命令

取数、存数、传送

スタック操作命令

入栈、出栈

データ交換命令

字节交换、字交换

データ操作手順
计算机必须具有的指令

四則演算命令

加、减、乘、除、加1、减1、比较

論理演算命令

与、或、非、异或

シフト指示

算术移位、逻辑移位、循环移位

プログラム制御命令

指令系统中非常重要的指令

転送命令

无条件转移、条件转移

サブルーチンの呼び出しと戻りの命令

调用指令、返回指令

入出力命令
入出力命令は主に周辺機器の起動、周辺機器の動作状態の確認やテスト、周辺機器とCPU間、または周辺機器と周辺機器間の情報伝達を実現するために使用されます。装置。

統一アドレッシング機械命令システムには入出力命令はありません。

文字列命令

文字列転送
文字列変換
文字列比較
文字列検索
文字列抽出
文字列置換

システム制御命令

特权指令: 特典付き説明書

オペレーティング システムまたはその他のシステム ソフトウェアのみ

特権命令は、マルチユーザー、マルチタスクのコンピューター システムでは不可欠です。

コンピュータ命令システムの分類

CISC複雑なレパートリー
RISC単純化されたレパートリー

CISCの主な特徴

  1. コマンド システムは複雑で、多数のコマンド、複数のアドレッシング モード、および複数のコマンド フォーマットが存在します。
  2. ほとんどの命令は、完了まで実行するために複数の CPU サイクルを必要とします
  3. さまざまな命令でメモリにアクセスできる
  4. マイクロプログラム制御
  5. 専用レジスタあり
  6. コンパイルを最適化して効率的なオブジェクト コード プログラムを生成するのが難しい

CISC の例
CISC (Complex struction Set Computer) 命令システムには、一般に最大 200 ~ 300 の命令があります
VAX11/780 コンピュータには 303 の命令、18 種類のアドレッシング方法があります
Pentium マシンにも 191 の命令、9 種類のアドレッシング方法があります

RISCの主な特徴

  1. 命令システムの簡略化、命令数の減少、アドレッシング モードの減少、命令フォーマットの減少、命令長の固定化
  2. フェッチ/ストア命令のみがメモリにアクセスします
  3. メモリアクセスを減らすためにより多くの汎用レジスタを使用する
  4. 配列ロジックで実装された組み合わせ回路コントローラーの使用
  5. パイプライン方式で動作し、1 クロック サイクル内で実行可能
  6. 最適化されたコンパイルテクノロジを使用して、スムーズなパイプラインを確保し、レジスタ割り当てを最適化します。

典型的な RISC 機械命令システムの基本特性
ここに画像の説明を挿入

第5章 CPU

5.1 CPUの機能と構成

CPU機能

中央処理装置は(Central Processing Unit)、コンピュータのコアコンポーネントであり、通常は単に中央処理CPU装置と呼ばれ、命令をフェッチして実行するタスクを自動的に完了するようにコンピュータを制御します。

CPUはコンピュータシステム全体の動作にとって非常に重要です

CPUの基本機能:
指令控制 :プログラムシーケンス制御
操作控制:各種動作信号(微小動作信号)の生成
时间控制:動作信号の有効時間の制御(シーケンス信号発生器)
数据加工:データの算術論理演算(ALU)

CPUの基本構成

  1. コントローラ
  2. 電卓
  3. キャッシュ
  4. チップレベルバス

コントローラの主な機能
命令キャッシュから命令を取り出し、命令キャッシュ内の次の命令の位置を指定し、
命令を実行し译码或测试、対応する動作制御信号を生成し、指定された動作コマンドを起動して
CPUを制御します、データ キャッシュと入力/出力 (I/O) デバイス間のデータ フローの方向

CPU内の主なレジスタ

データバッファレジスタ(DR)
命令レジスタ(IR)
プログラムカウンタ(PC)
データアドレスレジスタ(AR)
汎用レジスタ(R0~R3)
プログラムステータスワードレジスタ(PSWR)

データ バッファ レジスタ (DR) は、
ALU の演算結果、またはメモリまたは I/O インターフェイスからのデータ ワードを、
ALU 演算結果と汎用レジスタの間のバッファとして一時的に保存し
、動作速度を補償します。 CPU、メモリ、周辺機器の違い

命令レジスタ (IR) と命令デコーダ ID

IR(Instruction Register): 現在実行中の命令を保存する
ID(Instruction Decoder): 命令のオペコードをテストして、必要な操作を識別する
命令レジスタのオペコード フィールドが命令デコーダに送信され、デコード後、特定の操作が命令のオペレーション コントローラ固有の信号に送信されます。

プログラムカウンター(PC)

PC は次の命令のアドレスをメモリに保存します。
プログラムが実行される前に、プログラムの最初の命令が配置されているメモリ ユニットのアドレスが PC に送信されます。

命令を順次実行するとPCは自己インクリメントされ、
転送命令が来るとPCの内容を転送命令で指定し、
情報登録とカウントの2つの機能を持ちます。

データアドレスレジスタ(AR)

現在のCPUがアクセスしているデータメモリアドレスを保存します。

电位-脉冲電位入力端子がデータ情報ビット、パルス入力端子が制御信号に相当し、制御信号の作用により瞬時にレジスタに情報が入力される方式を採用しています

汎用レジスタ

機能: 算術ユニットが算術演算または論理演算を実行する必要がある場合、ALU にワークスペースを提供します。

プログラム ステータス ワード レジスタ (PSWR) は、算術演算命令や論理演算命令の演算またはテスト結果によって確立されるさまざまな条件コードを保存し、割り込みやシステムの動作ステータスなどの情報を保存すること
もできます。状态条件寄存器

オペレーションコントローラとシーケンスジェネレータ

アクション コントローラーは 2 つのタイプに分類できます。

时序逻辑型 	---->硬布线控制器

存储逻辑型	---->微程序控制器

タイミングジェネレーター(Timer Generator、TG):
コンピューターが必要とするタイミング制御信号を生成・発行します。

各種動作信号のタイミング制御

5.2 命令サイクル

命令の実行プロセス

— 読み取りコマンド

指令地址送入主存地址寄存器
读主存,读出内容送入指定的寄存器

−命令を解析する
−命令に指定された内容に従って命令を実行する

不同指令的操作步骤数
和具体操作内容差异很大

— 割り込み要求のチェック

若无,则转入下一条指令的执行过程
形成下一条指令地址

命令サイクルの概念
指令周期: CPU がメモリから命令をフェッチして実行するのにかかる時間の合計

CPU周期: マシンサイクルとも呼ばれ、メモリから命令ワードを読み取るのにかかる最短時間

时钟周期T周期: またはとも呼ばれ节拍脉冲、処理操作の最も基本的な単位であり、CPU サイクルには複数の T サイクルが含まれます。

1个指令周期 = 若干个CPU周期
1个CPU周期 = 若干个时钟周期

ここに画像の説明を挿入
ここに画像の説明を挿入

MOV命令

MOV は RR タイプの命令であり、2 つの CPU サイクルを必要とします。
最初の CPU サイクル、つまり命令フェッチ フェーズでは、次のようになります。

• ① 从指存取出指令
• ② 对程序计数器PC加1,以便为取下一条指令做好准备
• ③ 对指令操作码进行译码或测试,以便确定进行什么操作

2 番目の CPU サイクル、つまり命令実行ステージでは、2 つの汎用レジスタ R0、R1 間のデータ転送動作が完了します。

ここに画像の説明を挿入
フェッチサイクル

① 程序计数器PC中装入第1条指令地址101(八进制)
② PC的内容被放到指令地址总线ABUS(I)上,对指存进行译码,并启动读命令
③ 从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR
④ 程序计数器内容加1,变成102,为取下一条指令做好准备
⑤ 指令寄存器中的操作码(OP)被译码
⑥ CPU识别出是MOV指令

実行サイクル

① 操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器,选择R0作目标寄存器
② OC送出控制信号到ALU,指定ALU做传送操作
③ OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上
④ OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10)
⑤ OC送出控制信号,将DR中的数据打入到目标寄存器R0,R0的内容由00变为10

LADコマンド

LADこの命令は RS タイプの命令であり、合計 3 CPU サイクルを必要とします。

第1个CPU周期为取指令阶段,和MOV指令相同
第2个CPU周期将操作数的地址送往地址寄存器并完成地址译码
第3个CPU周期从内存取出操作数装入通用寄存器

LAD命令の実行サイクル

① 操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上
② OC发出操作命令,将地址码6装入数存地址寄存器AR
③ OC发出读命令,将数存6号单元中的数100读出到DBUS上
④ OC发出命令,将DBUS上的数据100装入缓冲寄存器DR
⑤ OC发出命令,将DR中的数100装入通用寄存器R1,原来R1中的数10被冲掉

ADDコマンド

ADD 命令は RR タイプの命令であり、合計 2 CPU サイクルを必要とします。

第1个是取指周期,与MOV指令相同
第2个是执行周期,执行加操作

ここに画像の説明を挿入
ADD命令の実行サイクル

① 操作控制器OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器
② OC送出控制命令到ALU,指定ALU做R1(100)和R2(20)的加法操作
③ OC送出控制命令,打开ALU输出三态门,运算结果120放DBUS上
④ OC送出控制命令,将DBUS上数据打入缓冲寄存器DR,ALU产生的进位信号保存在状态寄存器PSW中
⑤ OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉

STO命令

STO 命令は RS タイプの命令であり、合計 3 CPU サイクルを必要とします。

第1个CPU周期为取指令阶段,和MOV指令相同
第2个CPU周期将操作数的地址(R3)=30送往地址寄存器并完成地址译码
第3个CPU周期将(R2)=120写入到30号单元

ここに画像の説明を挿入STO命令の実行サイクル

① 操作控制器OC送出操作命令到通用寄存器,选择R3内容(30)做数据存储器的单元地址
② OC发出操作命令,打开通用寄存器输出三态门,将地址30放到DBUS上
③ OC发出操作命令,将地址30打入AR,并进行数存地址译码
④ OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据
⑤ OC发出操作命令,打开通用寄存器输出三态门,将120放到DBUS上
⑥ OC发出操作命令,将数据120写入数存30号单元,它原来的数据40被冲掉

JMP命令

JMP 命令は無条件転送命令であり、合計 2 CPU サイクルを必要とします。

第1个CPU周期为取指令阶段,和MOV指令相同
第2个CPU周期将地址101送入程序计数器PC

ここに画像の説明を挿入
JMP命令の実行サイクル

① OC发出操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上
② OC发出操作控制命令,将DBUS上的地址码101打入到程序计数器PC中,PC中的原来内容106被更换

* 重要な質問の種類: CPU パラメータの計算

CPU関連のパフォーマンスパラメータの計算

ブロック図言語での命令サイクル表現

コンピューター設計では、ブロック図言語を使用して命令の命令サイクルを表すことができます。

方框 :代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作
菱形 :通常用来表示某种判别或测试,时间上它依附于紧接它的前面一个方框的CPU周期,
不单独占用一个CPU周期
符号“~”代表一个公操作

ここに画像の説明を挿入

主な例:

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

5.3 タイミングジェネレータと制御モード

命令サイクル: CPU がメモリから命令をフェッチして実行するのにかかる時間の合計

CPU周期 :又称机器周期,CPU从内存读取一条指令字的所需的最短时间
时钟周期 :称为T周期或节拍脉冲,是处理操作的最基本单位,一个CPU周期包含若干个T周期

1 命令サイクル = 数 CPU サイクル
1 CPU サイクル = 数クロック サイクル

考える質問:
バイナリコードで表現された命令やデータがメモリ上に置かれますが、CPU はそれらがデータであるか命令であるかをどのように認識しますか?

从时间上来说:
取指令事件发生在指令周期的第一个CPU周期中,取数据事件发生在指令周期的后面几个CPU周期中
从空间上来说:
如果取出的是指令,一定送往指令寄存器IR,如果取出的是数据,一定送往运算器

タイミング信号

  1. タイミング信号: コンピュータを正確、迅速、秩序正しく動作させる
  2. タイミング信号発生器: コンピューターの各コンポーネントの動作に必要なタイムマークを提供します。
  3. オペレーション コントローラーは、一連のタイミング パルスとさまざまなパルス間隔を使用して、機械の動作を規則的かつリズミカルに指令します。

要約:

  1. コンピュータの協調動作にはタイムマークが必要であり、マルチレベルのタイミングシステムが必要であり、タイムマークはタイミング信号に反映されます。

  2. コンピューター ハードウェアを構成するデバイスの特性によって、タイミング信号の最も基本的なシステムが決まります。电位-脉冲制

ここに画像の説明を挿入

ハードワイヤード コントローラーの 3 レベル シーケンス アーキテクチャ

主状态周期:
複数のビート電位を含む、トリガーの状態持続時間
节拍电位:
1 つのビート電位は 1 CPU サイクルの時間を表します
节拍脉冲(T周期):
1 つのビート電位には複数のビート パルスが含まれます

3 レベルのタイミング図
ここに画像の説明を挿入
マイクロプログラム コントローラーの第 2 レベルのタイミング システムが
ここに画像の説明を挿入
可能性を打ち破る

节拍电位:把一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号
节拍的宽度:取决于CPU完成一次基本操作的时间

仕事パルス

在节拍中执行的有些操作需要同步定时脉冲
节拍内可设置一个或几个工作脉冲,作为各种同步脉冲的来源
工作脉冲的宽度只占节拍电位宽度的1/n,并处于节拍的末尾

CPUサイクル、ビートポテンシャル、ビートパルスのタイミング関係

ここに画像の説明を挿入
タイミング信号発生器

マイコンに使用されているタイミング信号発生器の構成:

时钟源
环形脉冲发生器
节拍脉冲和读写时序
启停控制逻辑

ここに画像の説明を挿入
スタートストップ制御ロジック

运行标志触发器Cr的Q=1,使原始信号变为CPU所需的时序信号
运行标志触发器Cr的Q=0,封锁原始信号
总清信号CLR使Cr的Q=0

ここに画像の説明を挿入
調停制御ロジックスタート
Start:スタート信号がローレベルのとき、T4 0立ち下がりエッジで Cr調停制御ロジックストップに 1 を入力
ここに画像の説明を挿入

シャットダウン:シャットダウン信号がローレベルのとき、 T 4 0の立ち下がりエッジで Cr に 0 を入力

ここに画像の説明を挿入

制御方法

制御方式:各種動作シーケンスのタイミング信号を制御する方式

-同步控制
-异步控制
-联合控制

同期制御モード

いずれの場合も、特定の命令の実行に必要な CPU サイクルとクロック サイクルの数は固定されています。

さまざまな状況に応じて、同期制御方法は次のスキームを選択できます。

(1)采用完全统一的机器周期执行各种不同的指令
(2)采用不定长机器周期
(3)中央控制与局部控制结合

ここに画像の説明を挿入

完全同期制御方式
完全に統一され、マシンサイクルと同じ時間間隔、同じビートポテンシャル数で各種命令を実行します。

ここに画像の説明を挿入
不定長のマシンサイクル

ほとんどの操作がより短いマシン サイクルで完了するように調整し、一部のより長い操作については、問題を解決するためにマシン サイクルを延長する方法を採用します。

マシンサイクルの延長:
ここに画像の説明を挿入
集中制御とローカル制御の組み合わせ

将大部分指令安排在固定的机器周期完成
对少数复杂指令采用另外的时序进行定时

非同期制御モード

一般に、2 つの制御線、つまり请求1 行と回答1 行が使用されます。

非同期制御方式の概要

每条指令、每2个.异操作步控控制信制号方需式要多少时间就占用多少时间
每条指令的指令周期可由多少不等的机器周期数组成
用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步

共同制御

同期制御と非同期制御の組み合わせ

情况1: 
大部分操作序列安排在固定的机器周期中,
对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束
情况2: 
机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定


コントローラの構成・命令コンポーネントの概要

程序计数器PC
指令寄存器
指令译码器

• タイミングコンポーネント

脉冲源及启停逻辑
时序信号形成部件
控制方式

ここに画像の説明を挿入

5.4 マイクロプログラムされたコントローラー

マイクロプログラム制御の原理

マイクロプログラム制御の基本的な考え方

マイクロ動作制御信号は、一定の規則に従ってエンコードされて制御ワード(マイクロ命令)を形成します。機械命令は「プログラム」に相当します。プログラムは制御メモリに格納されます。機械が動作するとき、これらのマイクロ命令は「プログラム」に相当します。・命令が次々と読み出されることにより、機械全体に必要なさまざまな動作制御信号が生成され、対応する構成要素が所定の動作を実行します。機械命令のことを「命令のマイクロプログラム」と呼びます。

控制部件デジタルコンピュータは次のように分類できます。执行部件

控制器
运算器、存储器、外围设备(IO设备)

制御ユニットと実行ユニット間の接続は制御線を介して行われます。コントロールユニットは制御線を介して実行ユニットに各種制御コマンドを送りますが、通常このような制御コマンドを と呼び微命令、マイクロコマンドを受け取った実行ユニットの動作を と呼びます微操作

マイクロコマンドとマイクロオペレーション

マイクロコマンド: コントロールユニットは、制御ラインを通じてさまざまな制御コマンドを実行ユニットに送信します。

マイクロ操作:マイクロコマンドを受信した後に実行部が実行する操作。

マイクロ操作相容性相斥性2 つのタイプに分類できます。

相容性:在同时或同一个 CPU 周期内可以并行执行的微操作
相斥性:不能在同时或不能在同一个CPU 周期内并行执行的微操作

ここに画像の説明を挿入
マイクロ命令とマイクロプログラム

微指令 :在机器的一个 CPU 周期中,一组实现一定操作功能的微命令的组合,构成一条微指令
微程序 :微指令序列为微程序

機械語命令とマイクロ命令の関係:
各機械語命令は、マイクロ命令でプログラムされたマイクロプログラムによって解釈され、実行されます。

ここに画像の説明を挿入

マイクロ命令の基本フォーマット
ここに画像の説明を挿入
操作控制: マシン全体の動作を管理および指示するための制御信号を発行するために使用されます
顺序控制: 次のマイクロ命令のアドレスを形成する方法を決定するために使用されます

ここに画像の説明を挿入
ビート電位信号とビートパルス信号

节拍电位信号持続時間は 1 CPU サイクルです

节拍脉冲リングパルス発生器によって生成され、ビート電位の持続時間は複数のビートパルスに対応できます。

マイコンの構成

控制存储器: すべての命令体系を実装するマイクロプログラムを格納するために使用され、高速メモリです。

微地址:制御記憶部のアドレス
制御記憶部の内容、すなわちコントロールワードは、ある拍における微動制御信号群の情報を表す。

マイクロコントローラーは主に控制存储器、 、微指令寄存器構成されます。地址转移逻辑

ここに画像の説明を挿入

マイクロプログラムコントローラーの作業プロセス

本質的には、コンピュータが機械命令を微程序控制器制御下で実行するプロセスです。

取机器指令有用なマイクロプログラムが制御メモリから取り出され、それが呼び出さ取指微程序れ、マイクロプログラムはメインメモリから機械命令を読み取ってコンピュータに送信します指令寄存器

機械命令のオペレーション コードは、マイクロ アドレスを通じてコン​​ポーネントを形成し、対応するマイクロ プログラム エントリ アドレスを生成して、そのアドレスに送信します微地址寄存器

対応するマイクロ命令が 1 つずつ取り出され、各マイクロ命令に対して 1 つのマイクロ命令が提供され、微命令序列関連するマイクロ動作を制御します。

機械語命令に対応するマイクロプログラムのセクションを実行した後、フェッチ マイクロプログラムのエントリに戻って次の機械語命令をフェッチします。プログラムが実行されるまで繰り返します。

例:
数値
a と b がレジスタ R1 と R2 に格納され、数値 6 がレジスタ R3 に格納されていると仮定します。
このアルゴリズムでは、まず a+b+6 演算を実行し、その結果にキャリーがあるかどうかを判断し、キャリー フラグ Cy=1 の場合は 6 を減算せず、Cy=0 の場合は 6 を減算します。正しい結果が得られます。

ここに画像の説明を挿入
10 進加算のマイクロプログラム フローチャートは 4 つのマイクロ命令で構成されており、各マイクロ命令は長いボックスで表されていることがわかります。

最初の uop は「フェッチ」サイクルです。
これはマシン命令をフェッチするために特別に使用されるマイクロ命令であり、次の 3 つのタスクがあります。

①从内存取出一条机器指令,并将指令放到指令寄存器R。在我们的例子中,取出的是“十进制加法”指令。
②对程序计数器加1,做好取下一条机器指令的准备。
③对机器指令的操作码用P,进行判别测试,然后修改微地址寄存器内容,给出下一条微指令的地址。

私たちが示したマイクロプログラムのフローチャートでは、各マイクロ命令のアドレスが長いボックスの右上隅に数字で示されています。菱形シンボルは、判别测试そのアクションが最初の uop に関連付けられていることを表していることに注意してください。2 番目のマイクロ命令でa十b操作が完了します。3 番目のマイクロ命令は、a ten b ten six の演算を完了し、同時に識別テストを実行します。ただし、今回は識別フラグは P ではなく P2 であり、P2 はキャリー フラグ Cy をテストするために使用されます。テスト結果に応じて、マイクロプログラムは共通の動作に切り替わるか、4 番目のマイクロ命令に切り替わります。マイクロプログラムが共通操作 ( の記号で示されている~) に切り替わるとき、サービスを要求しているペリフェラルがない場合は、次の機械語命令のフェッチに移ります。同様に、3 番目のマイクロ命令と 4 番目のマイクロ命令の次のマイクロアドレスは、再び最初のマイクロ命令、つまり「フェッチ命令」マイクロ命令を指します。

CPUサイクルとマイクロ命令サイクルの関係

シリアルモードのマイクロコントローラーの場合:
微指令周期=读出微指令的时间+执行该条微指令的时间

微指令周期マシン全体の制御信号の同期を確保するため、 CPUサイクルタイムと全く同じ設計が可能

ここに画像の説明を挿入
演算は最初の 600ns 以内に実行され、600ns 時間が終了すると演算が完了し、T4 の立ち上がりエッジで演算結果が特定のレジスタに格納されます。同時に、T 4を使用して次のマイクロコマンドを一定間隔で読み取ります。200ns の遅延の後、次のマイクロコマンドが ROM から読み取られ、 T 1の立ち上がりエッジでμIR に入ります。フリップフロップ遅延を無視した場合、次のマイクロコマンドのマイクロコマンド信号は、T1の立ち上がりエッジから
次のマイクロコマンドが読み取られてμIR に入力されるまで有効です。

要約する

  1. 機械語命令は、いくつかのマイクロ命令シーケンスで構成されるマイクロプログラムに対応します。つまり、1 つの機械命令で完了する演算がいくつかのマイクロ命令に分割され、マイクロ命令によって解釈されて実行されます。
  2. 命令とマイクロ命令、プログラムとマイクロプログラム、アドレスとマイクロアドレスは一対一に対応していることから、前者は内部メモリ、後者は制御メモリに関係する。
  3. CPU サイクルごとに 1 つのマイクロ命令があります。マシン命令とマイクロ命令の関係のまとめ

5.5 マイクロプログラミング技術

マイクロ命令アーキテクチャの設計目標

有利于缩短微指令字长度
有利于减小控制存储器的容量
有利于提高微程序的执行速度
有利于对微指令的修改
有利于提高微程序设计的灵活性

マイクロコマンドエンコーディング

マイクロ命令の一般的な形式は次のとおりです。
ここに画像の説明を挿入

マイクロコマンドコーディング、すなわち動作制御領域の設計手法:

直接表示法
编码表示法
混合表示法

直接表現(翻訳なし)

マイクロコマンドの動作制御フィールド内の各マイクロコマンドは、マイクロ操作の種類に対応する1ビットの情報で表される。マイクロコマンドを設計する場合、特定のマイクロコマンドを選択または選択しないようにするには、マイクロコマンドを表す対応するビットを 1 または 0 に設定するだけです。

优点是简单、直观、执行速度快,微命令的并行控制能力强,编制的微程序短;
缺点是微指令字长

コーディング表現(フィールドコンパイル方式)は、マイクロコマンド信号のグループをグループ(つまりフィールド)に形成し、グループ(フィールド)デコーダを通して各マイクロコマンド信号をデコードし、デコードされた出力
相斥性 動作制御信号。

优点是使微指令字大大缩短
缺点是由于增加译码电路,使微程序的执行速度稍稍减慢

コーディングの原則

  1. 相互のコマンドは同じフィールドにグループ化され、互換性のあるコマンドは異なるフィールドにグループ化されます。前者は情報ビットの利用率の向上とマイクロ命令の語長の短縮に効果があり、後者は並列動作の実現と命令の実行速度の高速化に有利です。
  2. 一般に、同じ種類の操作で相互に排他的なマイクロコマンドは同じフィールドに分割されます。
  3. 各小さなフィールドに含まれる情報ビットは多すぎてはならず、一般に 1 以下です。そうしないと、復号化回路の複雑さと復号化時間が増加します。

* 重要な質問の種類: マイクロ命令のコーディング形式

マイクロ命令エンコード形式

たとえば:

機械命令システムでは、直接表現を使用するには合計 256 個のマイクロコマンドが必要で、コード化表現を使用するには
マイクロコマンドの動作制御フィールドが 256 ビット必要です。
合計 16 セグメントであり、各フィールドがデコーダを通過する出力、16 個のマイクロコマンドが取得でき、合計 16 セグメントで 256 個のマイクロコマンドが取得できます。マイクロ命令の動作制御フィールドは64ビットのみです。

混合記法

マイクロプログラムの命令語長、柔軟性、実行速度などの要件を総合的に考慮して組み合わせて使用​​し直接表示法ください定数フィールドをマイクロ命令に付加することもできます。この定数は、演算のために ALU に送信されるオペランドとして使用でき、また、マイクロプログラムのループ数を制御するためのカウンターの初期値としても使用できます。编码表示法

マイクロアドレスの作り方

機械語命令のオペコードに従って、対応する機械語命令に対応するマイクロプログラムのエントリアドレスを見つけます。

その後のマイクロアドレス生成

计数器方式
多路转移

カウンタ方式は、
PC を使用して機械命令アドレスを生成する方式に似ています。

マイクロ命令が連続して実行される場合、現在のマイクロアドレスにインクリメントを加算することによって後続のマイクロアドレスが生成されます。

マイクロ命令が非連続で実行される場合、現在のマイクロ命令が実行された後、次のマイクロアドレスで指定される次のマイクロ命令が実行されるような転送方法を使用する必要があります。

ここに画像の説明を挿入

优点:マイクロ命令のシーケンス制御フィールドが短く、マイクロアドレス生成機構が単純
缺点:多チャネル並列転送機能が弱く、速度が遅く、柔軟性が低い

マルチウェイ分岐
1 つのマイクロ命令が複数の分岐を持つ機能をマルチウェイ分岐と呼びます。
マルチキャスト モードの場合:

  1. マイクロプログラムが分岐を生成しない場合、後続のマイクロアドレスはマイクロ命令によって直接顺序控制字段与えられます。
  2. マイクロプログラムに分岐がある場合、いくつかの「選択された」マイクロアドレスから選択できます。つまり、シーケンシャル制御フィールドの判别测试符号と情報に従って状态条件マイクロアドレスの 1 つを選択します。
  3. 「ステータス条件」には n ビットのフラグがあり、n ビットのマイクロアドレスレジスタを含むマイクロプログラム 2 n- way 転送を実現できます。

特徴: 短いシーケンスで制御フィールドと連携して、優れた柔軟性と高速性を備えたマルチチャネル並列転送を実現できますが、転送アドレスロジックは組み合わせ論理方式で実現する必要があります

ここに画像の説明を挿入

マイクロインストラクション形式

マイクロ命令のコンパイル方法は、マイクロ命令のフォーマットを決定する主な要素です

水平型微指令
垂直型微指令

水平マイクロコマンド
複数の並列運転マイクロコマンドを一度に定義して実行できるマイクロコマンドで、
形式は以下のとおりです。
ここに画像の説明を挿入

制御フィールドのさまざまなエンコード方法に応じて、次の 3 種類の水平マイクロ命令があります。

1 )全水平型 不译码法 微指令
2 )字段译码法(编码表示法)水平型微指令
3 )直接和译码相混合的水平型微指令

垂直マイクロ命令
マイクロ命令内にマイクロオペコードフィールドを設定し、マイクロオペコードのコンパイル方式を採用し、マイクロオペコードでマイクロ命令の機能を指定します
。機械命令。

機械語命令を実装するマイクロプログラムは、水平マイクロコードで記述されたマイクロプログラムよりもはるかに長く、短いマイクロコード構造の代わりに、より長いマイクロプログラム構造を使用します。

例:
マイクロ命令のワード長が 16 ビット、マイクロオペレーション コードが 3 ビットであると仮定します。

ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

水平マイクロ命令と垂直マイクロ命令の比較:

  1. 水平方向のマイクロ命令は強力な並列演算能力、高効率、高い柔軟性を備えていますが、垂直方向のマイクロ命令は劣っています。
  2. 水平方向のマイクロ命令の実行時間は短く、垂直方向のマイクロ命令の実行時間は長くなる。
  3. 水平マイクロ命令で命令を解釈するマイクロプログラムは、マイクロ命令ワードが長く、マイクロプログラムが短いという特徴がある。垂直マイクロ命令はその逆です。
  4. 水平方向のマイクロコマンドはユーザーが習得するのが難しいですが、垂直方向のマイクロコマンドは命令に似ており、比較的簡単に習得できます。

動的マイクロプログラミング

  1. 静的マイクロプログラムの設計
    コンピュータの機械語命令に対応するマイクロプログラムは 1 セットのみであり、このマイクロプログラムのセットは設計後は通常変更する必要がなく、変更するのは容易ではありません。
  2. ダイナミックなマイクロプログラム設計
    E 2 PROM を制御メモリとして使用し、マイクロ命令とマイクロプログラムを変更することでマシンの命令システムを変更できます。したがって、異なるタイプの命令セットを 1 台のマシンに実装できます。この技術は、他の機械命令システムをエミュレートすることとしても知られています。

5.5 ハードワイヤードコントローラー

• ハードワイヤード コントローラーは、コンピューターを設計する初期の方法でした。
• 基本的な考え方: 制御コンポーネントを生成された专门固定时序控制信号論理回路とみなして、論理回路は最少元件と を使用するように取得最高操作速度設計されています。
・このような論理回路は门电路触发器で構成される复杂树形网络のでハードと呼ばれます布线控制器

ハードワイヤード コントローラーの設計プロセス

描画命令のフローチャート:

  1. 命令の実行過程を手がかりに、命令の種類ごとに分類し、各命令をマイクロ動作列にまとめ、その動作順序に従って命令フローチャートを描画します。
  2. マイクロ操作スケジュールをリストします。実行時間で競合しないように、各マシン サイクルの対応するビートとパルスに合わせて、命令フローチャート内のマイクロ操作シーケンスを合理的に配置します。
  3. マイクロ操作の論理合成:各マイクロ操作を単位として「類似項目を組み合わせる」とは、異なるサイクル状態、異なるビート、異なる条件の異なる命令で必要とされる同じマイクロ操作を論理関係で結合し、簡略化を追加することです。論理式をより合理的にします。
  4. 回路実現:最終的に得られた論理式群に従って、一連の組み合わせ論理回路により実現することができる。

ここに画像の説明を挿入マイクロ操作の論理合成 ハード
ワイヤード コントローラーでは、記述された出力関数からマイクロ操作制御信号布尔代数表达式が生成されます。

設計方法とプロセス:
すべての機械命令のフローチャートに従って、同じ微小動作信号を生成するすべての条件を見つけ出し、それらを適切なビートポテンシャルとビートパルスと組み合わせて、そのブール代数式を書き出すそれを簡略化し、ゲート回路やプログラマブルデバイスを使用します。

特に注意:制御信号が電位で有効かパルスで有効か、パルスで有効の場合は位相「AND」のビートパルス信号を追加する必要があります。

ハードワイヤード コントローラーの評価とタイミング

速度快
电路设计太复杂
增加功能不太可能
采用三级时序

ハードワイヤードコントローラーとマイクロプログラムコントローラーの比較 1

ハードワイヤード コントローラーはマイクロコントローラーと同じです。

  1. 命令のオペレーションコードとタイミング信号に従って、各種データパスを正しく確立し、命令のフェッチと実行の制御を完了するために、さまざまな制御信号が生成されます。
  2. ハードワイヤード制御の利点は、コントローラーの速度が回路の遅延に依存するため、高速であることです。
  3. 硬布线控制的主要缺点是由于将控制部件看成专门产生固定时序控制信号的逻辑电路,所以把用最少元件和取得最高速度作为设计目标。一旦设计完成,不可能通过其他的修改添加新功能。
  4. 微程序控制的主要优点是,同硬布线控制器相比,具有规整性、灵活性、可维护性等一系列优点。
  5. 微程序控制的主要缺点是由于微程序控制器采用了存储程序原理,所以每条指令都要从控存中取一次,因此影响了速度。

5.6 流水CPU

并行处理技术

并行性包含两种含义:

同时性:指两个以上事件在 同一时刻 发生;
并发性:指两个以上事件在 同一时间间隔 内发生。

–时间并行
–空间并行
–时间并行+空间并行

流水 CPU 的结构

并行处理技术的三种形式

  1. 时间并行指时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。时间并行性概念的实现方式就是采用流水处理部件 。
  2. 空间并行空间并行指资源重复,以“数量取胜”为原则来大幅度提高计算机的处理速度。
  3. 时间并行+空间并行指时间重叠和资源重复的综合应用,既采用时间并行性,也采用空间并行性

流水计算机的系统组成

现代流水计算机的系统中CPU 按流水线方式组织,通常由三部分组成:指令部件、指令队列、执行部件。这三个功能部件可以组成一个 3 级流水线。
ここに画像の説明を挿入
执行部件的配合

为了使存储器的存取时间能与流水线的其他各过程段的速度相匹配,一般都采用多体交叉存器
通常采用并行的运算部件以及部件流水线的工作方式来解决 执行段的速度匹配问题 。

  1. 将执行部件分为定点执行部件和浮点执行部件两个可并行执行的部分, 分别处理定点运算指令和浮点运算指令;
  2. 在浮点执行部件中,又有浮点加法部件和浮点乘除部件,它们也可以同时执行不同的指令;
  3. 浮点运算部件都以流水线方式工作。

パイプライン CPU の時空間図 パイプライン
を実現するには、まず入力タスクまたはプロセスを一連のサブタスクに分割し、各サブタスクをパイプラインの各ステージで同時に実行できます。タスクがパイプラインに連続的に入力されると、パイプラインの出力は実行結果を継続的に吐き出し、サブタスクレベルの並列性を実現します。

ここに画像の説明を挿入
IFフェッチ
ID命令のデコード
EX: オペレーションの実行
WB: 結果のライトバック

ここに画像の説明を挿入非パイプライン コンピューターの場合、次の命令は、前の命令の 4 つのサブプロセスがすべて実行された後でのみ開始できます。したがって、出力結果は 4 マシン サイクルごとに 1 つだけです。

ここに画像の説明を挿入パイプライン コンピュータの場合、前の命令と次の命令の 4 つのサブプロセスを時間的にオーバーラップして実行できます。したがって、パイプラインが完全にロードされると、クロック サイクルごとに 1 つの結果が出力されます。

ここに画像の説明を挿入
図からわかるように、8 単位時間内に、非パイプライン CPU は 2 命令しか実行できませんが、パイプライン CPU は 5 命令を実行し、スーパースカラ パイプライン CPU は 10 命令を実行します。
したがって、パイプライン CPU のデータ スループット能力は明らかに優れています。

パイプライン カテゴリは、
指令流水线命令処理ステップの並列処理を指します。命令ストリームの処理は、命令のフェッチ、デコード、実行、書​​き込みなど、いくつかの並列処理プロセス セグメントに分割されます。

算术流水线操作ステップの並列性を指します。パイプライン加算器、パイプライン乗算器、パイプライン除算など。

处理机流水线 とも呼ばれ宏流水线、プログラム ステップの並列性を指します。パイプラインの各ステージは、カスケード接続された一連のプロセッサーで構成され、各プロセッサーが特定のタスクを担当します。

パイプラインの主な問題

パイプライン プロセス中に、通常、次の 3 つの関連する競合が発生し、パイプラインが停止します。

–资源相关
–数据相关
–控制相关

资源相关これは、パイプラインに入った後、同じマシン クロック サイクル内で複数の命令が同じ機能ユニットをめぐって競合するときに発生する競合を指します。
ここに画像の説明を挿入

リソース関連の競合の解決策

  1. IF処理実行時、リソースの相関がある場合は、遅延IF方式を使用して相関を回避してください。
  2. メモリが追加され、命令とデータがそれぞれ 2 つのメモリに配置されます。または、マルチポート メモリ構造を使用します。
    ここに画像の説明を挿入データ関連

プログラム内で、前の命令の実行後に次の命令を実行する必要がある場合、これら 2 つの命令は数据相关絶対命令。

複数の命令の重複処理により、後続の命令が要求するオペランドが前の命令の演算結果である場合、データ依存の競合が発生します。

ここに画像の説明を挿入
データ競合の解決
パイプラインCPUの演算器内に多数の演算結果バッファレジスタを設け、後続の命令が直接使用できるよう演算結果を一時的に保存しておきます“向前”或定向传送技术

制御関連

制御関連の競合は分岐命令によって引き起こされます。転送命令を実行すると、転送条件の結果に応じて次の命令を順次フェッチしたり、新たなターゲットアドレスに転送して命令をフェッチしたりしてパイプラインを動作させることができます发生断流
パイプラインのパフォーマンスに対する転送命令の影響を軽減するために、次の 2 つの転送処理手法が一般的に使用されます。

–延迟转移法
–转移预测法

遅延転送方式は、
コンパイラが命令列を並び替えることで実現されます。基本的な考え方は「最初に実行してから転送する」です。つまり、転送フェッチが発生しても命令パイプラインは空になりませんが、転送命令 Ib の直後にパイプラインに入った少数の命令は完了し続けます。これらの命令が Ib の結果とは無関係に有用な命令である場合、レイテンシ ペナルティ タイム スライスは効率的に利用されます

分岐予測方式は
ハードウェア方式で実現されており、命令の過去の動作に基づいて将来の動作を予測します。分岐フェッチおよびシーケンシャルフェッチ用の双方向命令プリフェッチキューとターゲット命令キャッシュを使用することで、分岐予測を命令フェッチステージまで進めて良好な結果を得ることができます。

ペンティアムCPU

テストしないでください、少し

5.7 RISC CPU

RISCマシンの特徴

RISC の 3 つの基本要素

一个有限的简单的指令集
CPU 配备大量的通用寄存器
强调对指令流水线的优化

RISCマシンの特徴

⑴ 等しい長さの命令を使用します。通常の長さは 4 バイト (32 ビット) です。
(2) 簡単なアドレス指定方法はほとんどなく、通常は 2 つまたは 3 つ、多くても 4 つしかなく、間接的なメモリ アドレス指定方法は存在しません。
(3) フェッチ命令とストア命令のみがメモリにアクセスします。命令中にはせいぜい RS タイプの命令が出現し、SS タイプの命令は出現しません。
(4) 命令セット内の命令の数は通常 100 未満であり、命令フォーマットは通常 4 未満です。
⑸コマンド機能はシンプルで、コントローラは主にハードワイヤリングを採用し、より高速な実行速度を実現します。
(6) 平均して、すべての命令の実行時間は 1 処理クロック サイクルです。
(7) 命令フォーマットにおいて、整数の代入に使用するレジスタ数は 32 以上、浮動小数点数の代入に使用するレジスタ数は 16 以上です。
(8) 汎用レジスタリソースの最適使用を重視します。
⑼ 命令パイプライン化をサポートし、命令パイプライン化の最適化された使用を強調します。
⑽ RlSC テクノロジーの複雑さはコンパイラにあるため、ソフトウェア システムの開発時間は CISC マシンよりも長くなります。

ここに画像の説明を挿入

第6章 バスシステム

6.1 バスの概念と構造

バスの基本コンセプト

バスはコンピュータ システムを構成する相互接続機構であり、複数のシステム機能コンポーネント間のデータ伝送の共通経路であり、
シングル プロセッサ システム内のバスは次の 3 つのカテゴリに大別できます。

•内部总线 CPU 内部连接各寄存器及运算部件之间的总线
•系统总线 CPU 同计算机系统的其他高速功能部件,如存储器、通道等互相连接的总线
•I/O 总线 :中、低速 I/O 设备之间互相连接的总线

バスの特性
物理特性: バスの番号、バスのプラグとソケットの形状、ピン線の配置など、バスの物理的な接続を指します。
功能特性: バス内の各ワイヤの機能を説明します。
电气特性: 各ライン信号の伝送方向と有効レベル範囲を定義します。CPUに送られる信号を入力信号(IN)、CPUから送られる信号を出力信号(OUT)といいます。
时间特性: 各行がいつ有効になるかを定義します。CPU が正しく使用できるように、バス上の各信号の有効なタイミング関係が規定されています。
バスの標準化
同じ命令体系、同じ機能、異なるメーカーの機能部品は実装方法がほとんど同じではありませんが、各メーカーの同じ機能部品は互換的に使用できます。バスの要件、これはシステム バスです标准化
总线带宽。バス自体が達成できる最高の伝送速度 (メガバイト秒 (MB/S))

例:
ここに画像の説明を挿入
バスの接続方法
设备适配器CPUに速度の異なる多種多様な周辺機器を接続することで、正常に連携することができます。デバイス アダプタとも呼ばれます接口

• スタンドアロン システムには、次の 2 つの基本的なバス構造があります。

单总线结构
多总线结构

シングルバス構造
ここに画像の説明を挿入

单总线特点

  1. シンプルな構造で拡張も簡単
  2. 複数のロジック コンポーネントが 1 つのバスを共有するため、バスはタイムシェアリング動作状態になり、マシン全体の動作速度が低下します。

マルチバス構造
ここに画像の説明を挿入
マルチバス構造の特徴

  1. 高速、中速、低速のデバイスが異なるバスに接続され、同時に動作します
  2. バスの効率とスループットの向上
  3. プロセッサ アーキテクチャの変更は高速バスには影響しません

単純なバス構造 (初期のバス構造)
ここに画像の説明を挿入
初期のバスの内部構造は上図に示されており、実際にはプロセッサ チップのピンと处理器ANDのチャネルを拡張したものですI/O设备适配器地址线この単純なバスは通常 50 ~ 100 の回線で構成され、機能に応じて、 、数据线3 つのカテゴリに分類できます控制线
アドレス ラインは单向メイン メモリとデバイスのアドレスの送信に使用され、
データ ラインは双向データの送信に使用され、
制御ラインは各ラインに使用されます单向(CPU がインターフェイスに送信するか、インターフェイスが CPU に送信します)。 . データ転送の方向(メモリリード、メモリライト、I/Oリード、I/Oライト)、割り込み制御(リクエスト、識別)、タイミング制御などを示すため。

単純なバス構造の欠点は次のとおりです。

  1. CU はバス上の唯一のマスターです。
  2. バス信号は CPU ピン信号の拡張であるため、バス構造は CPU と密接に関係しており、汎用性に乏しいです。

現代のバス建築

ここに画像の説明を挿入数据传送总线
アドレス線、データ線、制御線で構成されます。その構造は単純なバスの構造に似ていますが、通常は 32 本のアドレス ラインと 32 または 64 本のデータ ラインがあります。配線を削減するために、64 ビット データの下位 32 ビット データ線がアドレス線と多重化されることがよくあります。
仲裁总线
バスリクエストラインとバス許可ラインが含まれます。
中断和同步总线
割り込み要求ラインや割り込み肯定応答ラインなどの優先割り込み操作を処理するために使用されます。
公用线
クロック信号線、電源線、グランド線、システムリセット線、電源オン・電源オフのタイミング信号線など。

Pentium マシンのバス構造は、CPU バス、PCI バス、ISA バスの 3 つの層に分かれています。

6.2 バスインターフェース

情報伝達方法

串行传送情報を転送するには、 、 、 并行传送3 つの方法があります。分时传送

速度と効率を考慮すると、システム バス上で送信される情報は並行して送信される必要があります。

シリアル伝送は
伝送線が1本のみでパルス伝送を使用します。数値のすべての 2 進ビットを表すパルス信号を一度に 1 ビットずつ連続して送信します。

ここに画像の説明を挿入
通信プロトコル(通信プロトコル):送信側と受信側の両方がこれを遵守し、伝送速度、情報形式、ビット同期、文字同期、データ検証などの問題を解決します。

・シリアル非同期通信:キャラクタ単位で送信
・シリアル同期通信:データブロックを送信単位とする
・送信フォーマット

–全双工 双根传输线,能够同时发送和接收
–半双工 :单根传输线,不能同时发送和接收
–单工 :单根传输线只用作发送或只用作接收

・モデム:通信回線の信号とコンピュータのデジタル信号を相互変換する装置

逆アセンブル:シリアル伝送時、送信したデータを送信部并-串变换
受信部で組み立てる串-并变换
利点:伝送路は1本だけで済み、長距離伝送コストが比較的安い

パラレル転送

• 各データ ビットには個別の伝送ラインが必要です。电位転送では、パラレル転送はシリアル転送よりもはるかに高速です。
ここに画像の説明を挿入時間を共有する

  1. バス多重方式
    ある伝送路でアドレス情報とデータ情報の両方を伝送します。このため、アドレス送信とデータ送信のタスクを異なる時間間隔で完了できるように、タイム スライスを分割する必要があります。
  2. コンポーネントの時分割使用
    複数のコンポーネントがバスを共有するため、各コンポーネントはバスを時分割で使用し、制御コマンドに従ってデータ送信タスクを完了します。

バスインターフェースの基本概念

接口: つまり、I/O デバイス アダプタ。具体的には、CPU、メイン メモリ、周辺デバイスをバス経由で接続するロジック コンポーネントを指します。

周辺機器がシリアル/パラレル データを供給および要求する方法に応じて、アダプター串行并行 データ インターフェイスとデータ インターフェイスの 2 つのカテゴリに分類されます。

ここに画像の説明を挿入
インターフェース機能

控制
缓冲
状态
转换
整理
程序中断

ここに画像の説明を挿入

例:
ここに画像の説明を挿入

6.3 バスの調停

バスの調停
複数のマスター デバイスが同時にバス制御をめぐって競合する問題を解決するには、マスター デバイスの 1 つを特定の方法で次のバス マスターとして選択するバス調停コンポーネントが必要です。

通常、优先级または は公平策略
バス調停回路の位置により、調停方式集中式仲裁分布式仲裁と の 2 種類に分けられます。

集中アービトレーション 集中アービトレーション
では、各機能モジュールは中央アービトレータに接続された 2 本のラインを持ちます。1
つはアービターに送信されるバス要求信号ラインで、BR
もう 1 つはアービターによって送信されるバス許可信号ラインです。BG

集中仲裁の 3 つの方法

链式查询方式
计数器定时查询方式
独立请求方式

ここに画像の説明を挿入
チェーンクエリモードの特徴
・メリット:一定の優先順位に従ったバスアービトレーションを数行で実現できる、アービトレーション方法がシンプル、設備の拡張が容易 ・デメリット:環境の影響を受け
やすいクエリチェーンの回路障害、クエリチェーンの優先順位 クラスは固定されており、優先順位の高いデバイスのリクエストが頻繁にある場合、優先順位の低いデバイスは長時間バスを使用できない可能性があります

カウンタタイミングクエリモードの特徴

  1. 各カウントは 0 から開始することも、最後の停止ポイントから開始することもできます。0から始まる場合、各デバイスの優先順位はチェーンクエリ方式と同じとなり、優先順位は固定となります。停止した時点から開始する場合、各デバイスはバスの使用において同じ優先順位を持ちます。
  2. カウンタの初期値もプログラムで設定できるので、優先度を簡単に変更できます。この柔軟性には回線数の増加が伴います。たとえば、3 回線に増やせば 2 3 = 8 台のデバイスを管理でき、4 回線に増やせば 2 4 = 16 台のデバイスを管理できます。

独立リクエスト方式の特徴

  1. 応答時間が速く、最初に応答するデバイスの特定にかかる時間が短縮されます。
  2. 事前に固定することができ、プログラムを通じて優先度を簡単に変更でき、優先度の制御は非常に柔軟です
  3. リクエストをブロックすることで、無効なデバイスからのリクエストをブロックできます
  4. このように、より多くのラインを追加する必要があり (N 個のデバイスには 2N ラインが必要)、それに応じてアービタの構造もより複雑になります。

分散アービトレーション
分散アービトレーションは中央アービトレータ优先级仲裁策略に、中央アービトレータを必要としません。各潜在的なマスター機能モジュールには、独自のアービトレーション番号とアービトレータがあります。

現在バスを占有しているモジュールのアービトレーション番号は共有アービトレーションバス上に常に予約されており、他のモジュールからバスリクエストがあった場合、各アービトレータはアービトレーションバスから取得した番号と自身の番号を比較します。調停バス上の番号が大きい場合、そのバス要求は応答されず、その調停番号は取り消されます。

ここに画像の説明を挿入

6.4 バスのタイミングとデータ転送モード

バスの情報伝達プロセスは大きく次の5段階に分かれます。

请求总线 、 总线仲裁 、 寻址 、 信息传送 、 状态返回

定时: バス上に現れるイベントのタイミング関係
データ送信プロセスでは 2 つのタイミング方法が使用されます

同步定时
异步定时

同期タイミングは
共通のクロックを採用しており、各機能モジュールが情報を送受信する際は統一されたクロックで規定されるため、同期タイミングの方が伝送頻度が高くなります。

同期タイミングは、バス長が短く、各機能モジュールのアクセス時間が比較的近い場合に適しており、
マイクロプロセッサによって制御されるバスタイミングは、同步时序

非同期タイミング 非同期
タイミング プロトコルでは、後者のイベントがバス上に現れる瞬間は、前のイベントの発生に依存します。つまり、応答またはインターロック メカニズムに基づきます。このようなシステムでは、統一された共通クロック信号は必要ありません。バスサイクルの長さは可変です。

バスデータ転送モード
读操作: スレーブデバイスからマスタデバイスへのデータ
写操作: マスタデバイスからスレーブデバイスへのデータ
数据块传送: 開始アドレスを与えて、隣接するアドレスから固定ブロック長のデータを1つずつ読み書きします

猝发式传送: CPU メインメモリ間のブロック転送
写后读 Read After Write
同一アドレス単位で書き込み後読み出し、ベリファイに最適
读修改写 Read Modify Write
読み出し後、同じアドレス単位で書き込み、共有データ保護に最適
广播 Broadcast
1 台のマスタデバイスから複数のスレーブデバイスへの書き込み動作

6.5 PCIバスとPCIeバス

(テストされていません) わずかに

ここに画像の説明を挿入

ホストバス

CPU バス、システム バス、メイン メモリ バス、フロントサイド バスなど、さまざまな名前があり、それぞれがバスの機能を反映しています。宿主おそらくより包括的にはバスと呼ばれます。

HOST バスはメイン メモリを接続するだけでなく、複数の CPU も接続します。

HOST バスは、「ノース ブリッジ」チップと CPU を接続する情報経路で、64 ビットのデータ ラインと 32 ビットのアドレス ラインを備えた同期バスです。32 ビットのアドレス ラインは、プロセッサの 4GB メモリ アドレス空間をサポートできます。このバスには、L2 レベル キャッシュ、メイン メモリ、キャッシュ コントローラ チップも接続されています。後者は、メイン メモリとキャッシュへの CPU アクセスを管理するために使用されます。CPU は HOST バスの制御権を持っていますが、必要に応じてバスの制御権を放棄することができます。

PCIバスは
、さまざまな高速PCIデバイスを接続する、プロセッサとは関係のない高速周辺バスであり、重要な層間バスでもあります。

かかり同步时序协议集中式仲裁策略持っています自动配置能力

PCI デバイスはマスター、スレーブ、またはその両方になることができます

PCI バスは無制限のバースト転送をサポートします。従来のバス上で DMA モードで動作するデバイスを PCI バスに移植する場合、マスター デバイスの動作モードを採用するだけで済みます。

システム内では複数の PCI バスが許可されており、HOST ブリッジを使用して HOST バスに接続したり、PCI/PCI ブリッジを使用して既に HOST バスに接続されている PCI バスに接続したりして、負荷を拡張できます。 PCIバスの容量。

LAGACYバス

市場にある豊富なアダプタ カードを最大限に活用し、中低速 I/O デバイスをサポートするために、ISA EISA MCA などのパフォーマンスの低い従来のバスを使用することもできます。

PCI バス アーキテクチャには 3 種類のブリッジがあります。
このうち、HOST ブリッジは PCI バス コントローラーでもあり、中央アービトレータが含まれています。ブリッジは重要な役割を果たし、2 台のバスを接続し、相互に通信します。ブリッジはバス変換コンポーネントでもあり、あるバスのアドレス空間を別のバスのアドレス空間にマッピングできるため、システム内のどのバス マスターも同じアドレス テーブルを参照できます。

第 7 章 外部ストレージと I/O デバイス

7.1 周辺機器の概要

この章は重要ではありません。テストのポイントはそれほど多くありません。理解するだけで十分です。

磁気面メモリの読み書き原理

磁気面メモリは、磁気ヘッドと記録媒体の相対移動によって書き込みと読み取りを完了します。

写入:电磁变换
读出:磁电变换

ディスクの構成と分類

ハードディスクとは、記録媒体が円形のハードディスクである磁気面メモリを指します。主に3つの部分から構成されており磁记录介质磁盘控制器磁盘驱动器

ハードディスクドライブ可换盘片式固定盘片式ディスクの構造により2種類に分けられ、
磁気ヘッド可移动磁头固定磁头2種類に分けられます

ウィンチェスターディスクドライブ

温彻斯特磁盘ウォーミングディスクは略して、高度な技術で可移动磁头固定盘片開発された。

ハードディスクの一種密封组合式で、磁気ヘッド、ディスク、モーター、さらには読み書き回路などの駆動部品が一体化されており、自由に分解することはできません。

動作時は、高速回転によりディスク表面に形成されるエアクッションにより磁気ヘッドがスムーズに浮上します。防塵性能が高く、信頼性が高く、使用環境への要求が低いことが利点です。

ここに画像の説明を挿入
ディスク上の情報の配布

ディスクの上下面に情報を記録することができ、ディスクの表面は通常、ディスクの表面と呼ばれます。 记录面

記録面上の一連の同心円は、磁道
柱面、各トラックはいくつかに分割され扇区、ディスク上の最小の記録単位となります。

仕様 - ストレージ密度
ストレージ密度: 道密度位密度および面密度

トラック密度: ディスクの半径方向に沿った単位長さあたりのトラックの数 (単位は道/英寸

ビット密度: トラックの単位長さあたりに記録できるバイナリ コードのビット数 (単位:位/英寸

面密度: ビット密度とトラック密度の積、単位は位/平方英寸

仕様 - ストレージ容量

存储容量 : ディスクストレージが保存できる総バイト数
格式化容量:
特定の記録形式に従って保存できる情報の総量、つまりユーザーが実際に使用できる容量を指します
非格式化容量:
使用できる磁化ユニットの総数磁気記録面で使用される場合、フォーマット済みの容量 一般に、未フォーマットの容量の 60% ~ 70%

テクニカル指標 - 平均アクセス時間

平均存取时间: ディスクアクセス時間とは、読み取り/書き込みコマンドが発行された後、ヘッドが特定の開始位置から新しい記録位置まで移動し、ディスク表面から情報の読み取りまたは書き込みを開始するまでに要する時間を指します。

定位时间或找道时间: 磁気ヘッドを必要なトラックに配置するのに必要な時間。現在の平均シーク時間は 10 ~ 20ms です。

等待时间: シークが完了してから、アクセスする必要があるトラック上の情報がヘッドの下に到達するまでの時間が表示されます。7200 rpm で回転するディスクの平均遅延は約 4.16 ミリ秒です。

仕様 - データ転送速度

データ転送速度: 単位時間あたりにディスク ストレージからホストに転送されるデータのバイト数

ストレージデバイスについて、ディスクの回転速度を毎秒 r 回転、各トラックの容量を N バイトとすると、データ転送速度Dr=r × N(バイト/秒)

現在のディスク ストレージのデータ転送速度は、1 秒あたり数十メガバイトに達することがあります。

表示画面

ブラウン管ディスプレイ CRT
Cathode Ray Tube
液晶ディスプレイ LCD
Liquid Crystal Display

解決

像素:画像を構成する最小単位 ディスプレイ上の発光点
点距 :隣接する画素と隣接する同色の2点間の距離は
0.31mm、0.28mm、0.25mm
分辨率:ディスプレイが表現できる画素数
分辨率=水平ポイント数 × 垂直ポイント数
640 × 480,800 × 600、1024 × 768、1280 × 1024
ドットピッチが小さいほど表示画像は繊細になり、解像度が高くなるほど多くの画像情報を表現できます

ここに画像の説明を挿入

第8章 入出力システム

8.1 CPUと周辺機器間の情報交換モード

周辺機器と CPU の間でデータを交換するプロセス

入力プロセス:

CPU 把一个地址值放在地址总线上,这一步将选择一个输入设备
CPU 等候输入设备的数据成为有效
CPU 从数据总线上读入数据,并放在一个相应的寄存器中

出力処理:

CPU 把一个地址值放在地址总线上,这一步将选择一个输出设备
CPU 把数据放在数据总线上
输出设备认为数据有效,从而把数据取走

周辺機器の速度分類
CPU と周辺機器間のタイミングには、次の 3 つの状況があります。

  1. 非常に遅い、または単純な周辺機器
  2. 低速または中速の周辺機器
  3. 高速周辺機器

非常に遅い、または単純な周辺機器

このタイプの機器では、CPU は常に十分に高速に応答できますが、CPU は入力データが常に有効であると信じているとも言えます。この場合、CPU はデータの送受信のみを行う必要があります。无条件传送方式または と呼ばれます零线握手联络方式

低速または中速の周辺機器

CPU とそのようなデバイス間のデータ交換は通常、异步定时次の形式を

質問と応答の信号は、CPU と周辺機器間のタイミングに使用され、この方法は应答式データ。

通常、高速周辺機器の
CPUとその周辺機器は同期タイミング方式を採用しており、CPUと周辺機器が同期すると、CPUと周辺機器の間でデータ交換时钟控制が行われます。

1) 同期タイミングモード

CPU以等间隔的速率执行 I/O 指令
靠时钟脉冲控制进行

2) DMA モード

CPUとI/Oインターフェース間のデータ転送

  1. 無条件転送方式(簡易I/O方式)
  2. プログラムの問い合わせ方法
  3. プログラム割り込みモード
  4. ダイレクト メモリ アクセス (DMA) モード
  5. チャネルモードとI/Oプロセッサ

周辺機器の入出力制御方法

ここに画像の説明を挿入

8.2 プログラムの問い合わせ方法

プログラムクエリモードは程序控制 I/O モード

CPU と周辺機器間のデータ送信はコンピュータ プログラムによって完全に制御され、CPU のアクティブな制御の下で実行されます。

入出力が必要な場合、CPUは本プログラムの実行を一時停止し、入出力サービスプログラムの実行に移行し、サービスプログラム内のI/Oコマンドに従ってデータ送信を行います。

これは最もシンプルで経済的な入出力方法であり、必要なハードウェアはほとんどありません。

デバイスのアドレス指定
プログラムを使用して入出力データを転送します。周辺デバイスには 2 つの異なるアドレス指定方法があります。

统一编址
单独编址

統一アドレス指定

入出力装置内のコントロールレジスタ、データレジスタ、ステータスレジスタ等をメモリユニットと同様に扱い、メモリユニットと組み合わせてアドレスを配置し、メモリにアクセスする命令を使用することができます。
I/O デバイスの特定のレジスタにアクセスするための読み取りおよび書き込み命令なので、特別な I/O 命令は必要ありません

ここに画像の説明を挿入

個別にアドレス指定可能

メモリのアドレスと I/O デバイスのアドレスは分離されています。
メモリへのアクセスと I/O デバイスへのアクセスでは、異なるオペコードを持つ命令が使用され、特殊な I/O 命令があります。制御回路
とアドレス デコード回路は比較的単純です
。 I/O命令によりプログラムが明確になり読みやすくなります

ここに画像の説明を挿入
入出力命令
I/O 命令には通常、次の機能があります。

「1」または「0」を設定します。 デバイス インターフェイスの一部の制御トリガーは、デバイスの起動やシャットダウンなど、特定のアクションを実行するようにデバイスを制御するために使用されます。

次に何をするかを決定するために、「ビジー」、「準備完了」などのデバイスの特定の状態をテストします。

データ転送は、データ入力時はI/Oデバイス内のデータレジスタの内容をCPUの特定のレジスタに送り、データ出力時はCPU内の特定のレジスタの内容をI/Oデバイスのデータレジスタに送ります。 Oデバイス

ここに画像の説明を挿入
プログラム クエリ モードのインターフェイス インターフェイス
: バスと I/O 装置の間の論理コンポーネント。コンバータとして、I/O 装置がコンピュータ システムの特性に必要な形式で情報を送受信できるようにします。

ホスト コンピュータと I/O デバイス間のデータ送信方法が異なるため、インターフェイスの論理構造も異なります。プログラムクエリモード 最も単純なプログラムクエリモードのインターフェース

ここに画像の説明を挿入
長所:
CPU の動作を I/O デバイスの動作と同期させることができ、インターフェースのハードウェアが比較的シンプルです 短所:
プログラム
がサイクルに入ると、CPU は待機することしかできず、他のタスクを処理できません

実際のアプリケーションでは、次の改善が行われます。 メイン プログラムの実行中、CPU は各 I/O デバイスのクエリ サブルーチンを定期的に呼び出すことができ、クエリ サブルーチンは各 I/O デバイスのステータス トリガー「準備完了」をテストします。 turn; if あるデバイスの Ready が「1」の場合はそのデバイスのサービスサブルーチンを実行し、そのデバイスの Ready が「0」の場合は次のデバイスを順番にテストします。プログラムクエリ方式のメリットとデメリット

デバイスサービスサブルーチンの主な機能

(1) データ伝送を実現します。入力時はI/O命令によりデバイスのデータをCPUの特定のレジスタに送り、内部アクセス命令によりレジスタ内のデータをメモリの特定の単位に格納し、出力時はプロセスはまったく逆です。
(2) 次のデータ送信に備えてメモリアドレスを変更します。
(3) 送信長を変更するには、送信バイト数を変更します。
(4) 状態分析またはその他の制御機能を実行します。

8.3 プログラム中断モード

中断の基本的な考え方

プログラムの実行中に、CPU は内部イベントまたは外部イベントによって中断され、あらかじめ用意された割り込みサービス プログラムを実行し、サービス終了後は元のブレークポイントに戻り、元のプログラムの実行を継続します。

割り込み要因:
CPU 割り込みを引き起こす原因。割り込みソースは、原因となったデバイス、コンポーネント、または状態です。

割り込みソースの種類:

输入输出设备
故障与错误:电源掉电、运算出错、非法指令等
实时时钟
程序调试和软件中断:这类中断是由程序员事先安排好的,和调用子程序的作用一样,
					与上述由外部硬件产生的中断有一些不同。

割り込みの分類 割り込み
要因がホストの内部か外部かに応じて次のようになります。

内部中断 :来自主机内部,如运算出错、程序调试和软件中断等
外部中断 :来自主机之外,如外部设备、实时时钟和硬件故障产生的中断等

割り込みサービス ルーチンのエントリを見つける実装方法によれば、次のようになります。

向量中断 :中断服务程序入口由中断源自己提供
非向量中断 :入口由 CPU 查询得到中断的分类

ここに画像の説明を挿入
メインプログラムは、デバイス A、B、および C のデータが準備できた場合にのみ、データ交換のために A、B、および C を処理します。低速の周辺機器が独自のデータを準備している間、CPU は通常どおり独自のメイン プログラムを実行します。
この意味では、CPU と周辺機器の一部の動作が並行して実行されるため、シリアル プログラム クエリ方式と比較して、コンピュータ システムの効率が大幅に向上します。

割り込み応答時間
割り込み要求はあります随机が、CPU がデバイスの割り込み要求を受け入れるのは、現在の命令が実行された後、つまりパブリック操作に移行したときのみです。これは、命令の実行後に CPU によって実行される操作を指します
公操作。命令の削除、割り込み処理、ダイレクトメモリ転送などの
命令を実行します。命令が最後まで実行されるたびに、CPU は割り込み要求信号をチェックします。割り込み要求信号が 1 の場合、CPU は条件が許せば割り込みサイクルに移行し、外部割り込みを受け付けます。

シーンを保存する

割り込みサービスプログラム実行後にメインプログラムが中断されたブレークポイント(PC コンテンツ)に正しく戻り、メインプログラムの実行を継続するためには、割り込みサービスを実行する前にシーンを保存する必要があります。

シーンの保存: プログラム カウンター PC の内容と、現在の命令の実行後の CPU のステータス ワード (一部のレジスタと一部のステータス フラグの内容を含む) をスタックに保存します。

割り込み制御のオフとオン
CPU の割り込み管理部分には割り込みマスク トリガーが必要です。割り込みマスク トリガーは、プログラムの制御下で 1 に設定してマスクを設定するか、0 に設定してマスクをキャンセルできます。CPUは割り込みマスクフラグが0の場合のみ割り込みを受け付けます。

割り込み処理プロセスを完了するためのハードウェアとソフトウェアの組み合わせ

中断周期: ハードウェア実装

中断服务程序: 機械語命令シーケンスの実装。シーンの保存、シーンの復元、割り込みを開いてメイン プログラムに戻るタスクの実行に加えて、割り込みを必要とするデバイスにサービスを提供したり、デバイスに CPU と 1 ワードのデータを交換させたり、その他のサービスを実行したりします。

プログラム割り込みモードの基本インターフェイス
プログラム割り込みは、ペリフェラル インターフェイスと CPU の状態によって制御されます。

接口方面: 
准备就绪标志 (RD) 和 允许中断 标志 (EI) 两个触发器,决定是否向 CPU 发出中断请求

CPU 方面:
 中断请求 标志 ( IR)和 中断屏蔽标志(IM) 两个触发器,决定是否受理中断请求

4 つのフラグ フリップフロップの具体的な機能
ここに画像の説明を挿入
ここに画像の説明を挿入

シングルレベル割り込み

シングルレベル割り込み: 割り込みの実行中は、この割り込みのみを処理でき、サービス プログラムに割り込むことはできません。サービス プログラムが完了した後でのみ、新しいリクエストに応答できます。

ここに画像の説明を挿入

シングルレベル割り込みソースの特定

シングルレベル割り込みでは、通常、共通のリクエストラインを使用して割り込みソースの調停識別を実装する串行排队链法ために。

割り込みベクタ生成

CPU が割り込みに応答すると、ハードウェアによって固定アドレス ( ) が直接生成され、ベクタ アドレスは各割り込みソース デバイスの割り込みサービス ルーチン エントリを指す向量地址ソースのベクタ アドレスです。向量中断
割り込み応答ごとに生成できるベクタアドレスは 1 つだけであり、回路設計後に各割り込み要因のベクタアドレスを変更することはできません。

ベクタアドレスを生成するその他の方法
位移量法 : ハードウェアによって生成されるベクタアドレスは直接アドレスではなく「ディスプレースメント」であり、CPU 内のレジスタに格納されているベースアドレスにこのディスプレースメントを加算し、最終的に割り込みハンドラのエントリアドレスを取得します。
向量地址转移的方法: 8 つの割り込みソースがあり、優先エンコーディング回路が対応する 8 つの固定アドレス コードを生成し、これらの 8 つのユニットがデバイスのそれぞれの割り込みサービス プログラム エントリに転送できるジャンプ転送命令を格納すると仮定します。このアプローチにより、割り込みハンドラーをメモリ内の任意の場所に配置できるようになり、非常に柔軟になります。

マルチレベル割り込み

多级中断: サービスプログラムの実行中、優​​先度が高くレベルが低い割り込みサービスプログラムの割り込みが許可され、ブレークポイントとシーンを保存した後、優先度の高い割り込みプログラムに応答して新しい割り込みを実行します。サービスプログラム。

1 次元および 2 次元のマルチレベル割り込み
さまざまなシステム構成に応じて、マルチレベル割り込みは一维多级中断次のように分類できます。二维多级中断

一维多级中断 是指每一级中断里只有一个中断源
二维多级中断 是指每一级中断里又有多个中断源

説明:
(1) システムに n レベルの割り込みがある場合、CPU には n 個の割り込みがあり中断请求触发器、まとめて と呼ばれます中断请求寄存器; それに対応するものが 1 つあり中断屏蔽触发器、まとめて と呼ばれます中断屏蔽寄存器シングルレベル割り込みとは異なり、マルチレベル割り込みでは、割り込みマスクレジスタの内容は非常に重要なプログラムサイトであるため、割り込みに応答するときは、割り込みマスクレジスタの内容を保存し、新しいレジスタを設定する必要があります。中断屏蔽状态一般に、あるレベルの割り込みに応答した後、そのレベルおよびそれよりも低い優先度の割り込みマスクトリガを「1」(クローズ)に設定し、そのレベルの割り込みマスクトリガを「0」(オープン)に設定する必要があります。通常の割り込みネスティングを実現するために、より高いレベルを設定します。

(2) マルチレベル割り込みの各レベルは、1 つの割り込みソースのみ、または複数の割り込みソースを持つことができます。多段割り込み間でも実現できます中断嵌套が、同一階層内に異なる割り込み要因を持つ割り込みを入れ子にすることはできず、1つの割り込み処理後に同じ階層内の他の割り込み要因に応答して処理する必要があります。

(3) マルチレベル割り込みを備えたシステムは、通常、より速い割り込み応答時間を必要とするため、どのレベルの割り込みとどの割り込みソースに最初に応答するかは、プログラムではなくハードウェア ロジックによって実装されます。図 8.9 の割り込み優先キュー回路は、優先応答割り込みレベルを決定するために使用されるハードウェア ロジックです。また、二次元割り込み構造では、優先応答の割り込みレベルを決定する割り込み優先キュー回路に加えて、優先応答の割り込み要因を決定する必要があり、これは一般にハードウェアで実現されます。チェーンクエリのロジック。明らかに、ここでは、最初に応答する割り込みソースを決定するために、 と を組み合わせる方法が使用されてい独立请求方式ます。链式查询方式

中断堆栈(4) 多値割り込みでも、単値割り込みと同様にシーン情報の保存が使用されます。スタックを使用してシーンを保存する利点は、次のとおりです。 ① 制御ロジックがシンプルで、シーンの保存と復元の処理が先入れ後出力の順序で実行されます。② 割り込みレベルごとにサイト保護領域を設ける必要はなく、全レベルの割り込みサイトを順序に従って同一スタックに配置することが可能です。

ここに画像の説明を挿入
マルチレベル割り込みソースの識別 マルチ
レベル割り込みでは、各レベルに CPU の割り込み優先キュー回路に送信される割り込み要求ラインがあり、各レベルには異なる優先順位が与えられます。この構造は独立请求方式の論理構造です。

ここに画像の説明を挿入

Pentium 割り込み

テストしないでください、少し

8.4 DMA モード

DMAの基本概念

直接内存访问 (DMA)I/O交換を完全にハードウェアで行う方式です
。 ・この方式では、DMAコントローラがCPUからバスの制御を完全に引き継ぎ、データ交換はCPUを介さずメモリ間で直接行われます。および I/O デバイスが実行します。
• DMA モードは、通常、グループ データの高速転送に使用されます。
• DMA コントローラは、アドレスおよび制御信号をメモリに送信し、アドレスを変更し、転送されるワード数をカウントし、終了を報告します。割り込みモードでのCPUへの転送動作

DMA アプローチの主な利点

  1. CPUが送信動作に一切関与しないため、CPUの命令フェッチ、データフェッチ、データ送信などの動作が省略されるため、高速です。
  2. データ送信の過程で、シーンを保存したり、シーンを復元したりする作業はありません。メモリアドレスの変更や送信ワード数のカウントなどはソフトウェアではなくハードウェア回路で直接実現します。
  3. DMA 方式は高速 I/O デバイスの要件を満たすことができ、CPU 効率の向上にも役立ちます。

DMA コントローラが実行できる基本動作
(1) CPU に DMA リクエストを送信します
(2) CPU がリクエストに応答し、CPU の動作を DMA 動作モードに変更します。このとき、DMA コントローラは CPU からバスの制御を引き継ぎます。
(3) DMA コントローラはメモリをアドレス指定します。つまり、データ転送するメモリユニットのアドレスとデータ転送回数のカウントを決定します。
CPU は DMA 動作の終了を報告します

DMA転送方式

DMA テクノロジの出現により、周辺デバイスが DMA コントローラを介してメモリに直接アクセスできるようになり、同時に CPU はプログラムを実行し続けることができます。

DMA コントローラと CPU は、通常は次の 3 つの方法でタイムシェアリングでメモリを使用する必要があります

①停止CPU访内;
②周期挪用;
③DMA与CPU交替访内。

停止 CPU アクセス方法
周辺デバイスがデータのバッチ送信を要求すると、DMA コントローラは CPU に停止信号を送信し、CPU にアドレス、データ、および関連する制御バスの使用権を放棄するよう要求します。DMA コントローラはバスの制御を取得した後、データ転送を開始します。一連のデータが転送された後、DMA コントローラは CPU にメモリが使用可能であることを通知し、バスの制御を CPU に返します。

利点: 制御が簡単で、データ伝送速度の高いデバイスのグループ伝送に適しています。
短所: DMA コントローラの内部アクセス段階では、メモリのパフォーマンスが十分に活用されず、メモリ動作サイクルのかなりの部分がアイドル状態になります。

サイクルスチール方式
I/O デバイスに DMA リクエストがない場合、CPU はプログラム要件に従ってメモリにアクセスし、I/O デバイスに DMA リクエストがあると、I/O デバイスは 1 つまたは複数のメモリサイクルをスチールします。

I/O デバイスが DMA 転送を必要とする場合、次の 2 つの状況が発生する可能性があります。

  1. CPU は内部にアクセスする必要はありません。I/OアクセスとCPUアクセスの間に競合はなく、CPU実行プログラムに影響を与えません。
  2. I/O デバイスが内部アクセスを必要とする場合、CPU も内部アクセスを必要とするため、内部アクセスの競合が発生します。/O アクセスには時間が必要であり、以前の /O データは事前​​に保存されている必要があるため、I/O デバイス アクセスが優先されます。次の内部アクセス要求が到着し、完了しました。CPU は命令の実行を遅らせ、CPU 実行命令に DMA リクエストを挿入し、1 つまたは 2 メモリサイクルを使い果たします。

自転車窃盗の特徴

サイクルスチール方式は、I/O転送を実現するだけでなく、メモリやCPUの効率も有効に活用できるため、広く使われている方式です。

ただし、I/Oデバイスの横領は1サイクルごとにバス制御権の申請、バス制御権の確立、バス制御権の返却というプロセスが発生するため、メモリでは1ワードの転送に1サイクルかかりますが、DMAでは通常1サイクルかかります。コントローラー。2 5 メモリサイクル

サイクルスチールの方法は、I/O デバイスの読み取りおよび書き込みサイクルがメモリストレージサイクルより大きい場合、つまり、I/O デバイスが遅い場合に適しています。

DMAとCPUが交互にアクセス

CPU の動作サイクルがメモリ アクセス サイクルよりもはるかに長い場合、このとき代替メモリ アクセスの方法により、DMA
転送と CPU の効率を同時に高めることができます。原理の模式図は次のとおりです。図 8.13© に示されています。CPU の動作サイクルが 1.2μs で、メモリ アクセス サイクルが 0.6us 未満であると仮定すると、CPU サイクルは2 つのサブサイクルC1と C2
分割でき、そのうちC1は DMA コントローラ アクセス専用です。 C 2は内部の CPU アクセス専用です。

特徴:
バス使用権の申請、確立、返還処理が不要で、C1、C2の時分割でバス使用権を制御する方式です。CPU と DMA コントローラはそれぞれ、アドレス レジスタ、データ レジスタ、読み取り/書き込み信号などの独自の制御レジスタを持っています。C1 サイクルでは、DMA コントローラに内部リクエストがある場合、アドレスデータなどの信号をバスに送信できます。C2サイクルでは、CPU が内部リクエストがある場合、アドレスやデータなどの信号も送信します実はバスに関してはC1とC2で制御されるマルチプレクサでありバス制御権の譲渡にはほとんど時間がかからないため、DMA転送としては非常に効率が良いのです。

この転送方式はとも呼ばれますが、その理由は、この DMA 転送は透明的DMACPU にとって
透明なガラスのようなもので、何の感情も影響も与えないからです。トランスペアレント DMA モードで動作すると、CPU は
メイン プログラムの実行を停止したり、待機状態になったりすることはなく、非常に効率的な動作モードです。もちろん、対応するハードウェア ロジックはより複雑になります。

ここに画像の説明を挿入

基本的な DMA コントローラ

DMA コントローラは、実際には DMA を使用した周辺デバイスとシステム バス間のインターフェイスです。接口电路

インターフェース回路は割り込みインターフェースをベースとしたDMA機構で構成されています。

最も単純な DMA コントローラは、次の論理コンポーネントで構成されます。

内存地址计数器、字计数器、数据缓冲寄存器、DMA 请求”标志、“控制 / 状态”逻辑、中断机构

ここに画像の説明を挿入
DMA コントローラ内のロジック デバイス

内存地址计数器交換されるデータをメモリに保存するために使用されるアドレス。DMA 送信の前に、プログラムを通じてメモリ内のデータの開始位置をメモリ アドレス カウンタに送信する必要があります。DMA 転送では、データが交換されるたびにアドレス カウンタが 1 インチずつインクリメントされ、メモリ内で交換されるデータのバッチのアドレスが増分方式で与えられます。

字计数器送信されたデータ ブロックの長さを記録するために使用されます。その内容もデータ送信前にプログラムによってあらかじめ設定されており、DMA送信中は1ワード送信するごとにワードカウンタに「1」が加算され、コントローラからCPUに割り込み信号が送られます。

数据缓冲寄存器転送ごとにデータを一時的に保存するために使用されます。入力されると、デバイスによってデータ バッファ レジスタに送信され、バッファ レジスタによってデータ バスを介してメモリに送信されます。逆に、出力時はメモリがデータバスを介してデータバッファレジスタに送られ、その後デバイスに送られます。

DMA请求标志デバイスがデータ ワードの準備ができると、DMA 要求の「フラグを 1」に設定するための制御信号が与えられます。フラグがセットされた後、DMA リクエストが制御/ステータス ロジックに送信され、制御/ステータス ロジックはバス使用権要求 (HOLD) を CPU に送信し、CPU はこの要求に応答した後、応答信号 HLDA を返します。制御/ステータス ロジックは、この信号を受信した後に DMA を送信します。 DMA 応答信号は、DMA 要求フラグをリセットし、次のワード交換の準備をします。

控制/状态逻辑制御回路、タイミング回路、ステータスフラグなどで構成され、メモリアドレスカウンタやワードカウンタを変更して転送タイプを指定したり、「DMAリクエスト」信号とCPU応答信号を調整して同期したりするために使用されます。

中断机构ワード カウンタが戻ると、一連のデータ交換が完了したことを意味し、オーバーフロー信号が割り込みメカニズムをトリガーし、CPU に割り込みレポートが作成されます。

データ転送処理を中断します

DMA のデータ ブロック転送プロセスは、次の 3 つの段階に分割できます。

传送前预处理
正式传送
传送后处理

前処理
CPU は、送信前にいくつかの入出力命令を実行し、デバイスのステータスをテストし、デバイス番号を DMA コントローラのデバイス アドレス レジスタに送信してデバイスを起動し、開始アドレスをメモリ アドレス カウンタに送信し、データ数を送信します。交わされる言葉。

正式な伝達

ペリフェラルがデータを送信または受信する準備ができると、DMA リクエストが送信され、DMA コントローラはバス使用権のリクエストを CPU に送信します (ホールド)。

DMA のデータ転送は基本単位数据块として考えられ、DMA コントローラがデータの入力動作または出力動作にかかわらずバスを占有するたびに、サイクルを通じて実現されます。

後処理

DMA 割り込み要求に応答すると、CPU はメインプログラムの実行を停止し、割り込みサービスルーチンを実行して DMA 終了処理を行います。

メモリに送信されたデータが正しいことを確認し、DMA を使用して転送を継続するか転送を終了するかを決定し、転送中にエラーが発生したかどうかをテストします。

選択的 DMA コントローラ
選択的 DMA コントローラは物理的には複数のデバイスを接続できますが、論理的には 1 つのデバイスのみを接続できます

1 つの DMA コントローラで複数のデバイスをタイムシェアリングしてサービスを提供する

選択的 DMA コントローラーの仕組み

プリセットの開始から転送の終了まで、DMA コントローラは選択されたデバイスのみにサービスを提供します。次のプリセットは、選択した別のデバイスに使用されます。

選択的 DMA コントローラは、I/O コマンドに従って特定のデバイスと接続するように制御されるロジック スイッチに相当します。

選択的 DMA コントローラは、少量のハードウェアを追加するだけで複数の周辺デバイスに対応できるため、メモリ アクセス速度に近い高いデータ転送速度を持つデバイスに特に適しています。

多重化 DMA コントローラ 多重化
DMA コントローラは、複数の低速ペリフェラルを同時に処理するのに適しています。

多重化 DMA は、複数の周辺デバイスを物理的に接続するだけでなく、これらの周辺デバイスが論理的に同時に動作できるようにし、各デバイスがバイト インターリーブ方式で DMA コントローラを介してデータを送信します。

8.5 チャンネルモード

チャンネルのコンセプト

チャネルは 1 つで特殊功能的处理器、データ入出力の伝送制御を担う独自の命令とプログラムがあり、CPU は传输控制チャネルに機能を委譲した上でその機能のみを担当します数据处理 このようにして、チャネルと CPU がメモリを時分割で使用し、CPU の内部計算と I/O デバイスの並列作業を実現します。

チャネルの出現によりCPUの効率がさらに向上

チャンネル付きコンピュータシステム

バスには 2 種類あります。
存储总线、チャネルとメモリ、CPU とメモリ間のデータ転送のタスクを引き受けます。

通道总线、つまり I/O バスであり、周辺機器とチャネル間のデータ送信の役割を果たします。

2種類のバスがそれぞれのタイミングで同時に運行可能

チャネル バスは複数のデバイス コントローラに接続でき、1 つのデバイス コントローラは 1 つ以上のデバイスに接続できます。

I/Oシステムの論理構造

論理的に言えば、I/O システムには通常、次の 4 つの接続レベルがあります。

PU与内存 通道 设备控制器 外围设备

同じシリーズのマシンの場合、チャネルとデバイス コントローラーの間には統一された標準インターフェイスがあり、デバイスのさまざまな要件に従ってデバイス コントローラーとデバイスの間には特別なインターフェイスが使用されます。

チャネルを持つのは通常、大型および中型のコンピューターであり、データ フローは非常に大きくなります。通常、複数のチャネルが接続されており、さまざまな種類の I/O デバイスを分類して管理できます。

チャンネル優先度

存储管理部件メモリの制御部分であり、主な役割は、事前に決められた優先順位に従って、次のサイクルでどの部分がストレージ バスを使用してメモリにアクセスするかを決定することです。

ほとんどの I/O デバイスは回転デバイスであるため、読み取り信号と書き込み信号には特定の特性があり实时性、時間内に処理されないとデータが失われるため、チャネルの優先順位は CPU の優先順位よりも高くなります。複数のチャネルにアクセス要求がある場合、一般に高速なデバイスが接続されているため、バイト複数チャネルよりもセレクトチャネルやアレイ複数チャネルの優先順位が高くなります。

チャンネルの基本機能

チャネル命令の実行、データ送信用の周辺デバイスとメモリの編成、I/O 命令の要件に従って周辺デバイスの起動、CPU への割り込みの報告など。具体的には、次の 5 つのタスクがあります。

(1) CPU の I/O コマンド要件に従って、指定されたペリフェラルと通信します。
(2) チャネルプログラムに属するチャネルコマンドをメモリから選択し、デコード後、デバイスコントローラおよびデバイスに各種コマンドを送信します。
(3) データ送信用の周辺機器とメモリを編成し、データ キャッシュ用のスペースを提供し、メモリに保存されているデータのアドレスと送信するデータの量を提供します。
(4) 周辺機器から状態情報を取得し、チャネルの状態情報を形成して保存し、CPU が使用できるようにその状態情報を指定されたメモリ ユニットに送信します。
(5) ペリフェラルの割り込み要求とチャネル自身の割り込み要求をタイムリーにCPUに通知します。

チャネルのCPU管理

CPU は、I/O 命令を実行し、チャネルからの割り込みを処理することによってチャネルを管理します。数据传送结束中断チャネルからの割り込みにはと の2 種類があります故障中断

大型および中型コンピュータの I/O 命令はすべて管态指令、CPU が管理状態にある場合にのみ I/O 命令が実行でき、アイドル状態では I/O 命令は実行できません。

管态CPU:运行操作系统的管理程序的状态
目态CPU:执行目的程序时的状态

チャネルからデバイスまでのコントローラー管理

チャネルは、チャネルコマンドを使用してデータ送信動作を実行するようにデバイスコントローラを制御し、デバイスコントローラによって反映された周辺デバイスのステータスをチャネルステータスワードで受信します。デバイスコントローラは、I/Oデバイスの送信制御を実現するチャネルの実行機構です。

デバイスコントローラーの特定のタスク

チャネルからチャネル命令を受け取り、必要な操作を完了するために周辺機器を制御し、
周辺機器のステータスをチャネルに反映し
、さまざまな周辺機器の異なる信号をチャネルが認識できる標準信号に変換します

チャンネルタイプ

チャネルの動作モードに応じて、次のように分類されます。

选择通道
多路通道

チャンネルを選択する

チャネルを選択すると、複数のデバイスを物理的に接続できますが、これらのデバイスは同時に動作することができず、一定時間内に動作するように選択できるデバイスは 1 つだけです。このデバイスのすべてのチャネル プログラムが実行された後でのみ、他のデバイスのチャネル プログラムを実行できます。

主にディスクやテープなどの高速周辺機器の接続に使用され、情報をグループ単位で高速に伝送します。データ送信速度は 1.5MB/s に達します。つまり、1 バイトは 0.67μs で送信され、2 バイトの送信の間にチャネルがアイドルになることはほとんどありません。

このタイプの機器は補助動作時間が非常に長く、チャネルが待機状態にあるため、チャネル全体の使用率はあまり高くありません

マルチチャネル
マルチチャネルは、複数の変換チャネルとも呼ばれ、複数の I/O デバイスのデータ送信を同時に処理できます

数组多路通道
字节多路通道

アレイマルチプレクス

基本的な考え方: デバイスがデータを送信しているとき、チャネルはデバイスにのみサービスを提供します。デバイスがアドレス指定やその他の制御アクションを実行しているとき、チャネルは一時的にデバイスから切断され、デバイスのチャネル プログラムを一時停止し、他のチャネル プログラムを実行します。デバイス

数组多路通道複数のデバイスを物理的に接続できるだけでなく、複数のデバイスのチャネルプログラムを一定時間内で交互に実行でき、複数のデバイスを論理的に接続でき、これらのデバイスは高速なデバイスである必要があります

数组多路通道チャネルを選択して高速にデータを送信する利点を維持するだけでなく、制御動作の時間を他のデバイスに提供するために最大限に活用するため、チャネル効率を最大限に活用できます。

バイトマルチプレクサ

バイト多重化は主に多数の低速デバイスを接続するために使用されます。

たとえば、あるプリンタのデータ送信速度は 1000B/s、つまり 1 バイトの送信間隔は 1ms で、チャネルがデバイスから 1 バイトを送受信するのにかかる時間はわずか数百ナノ秒です。チャネルには 2 バイトの送信間隔があり、多くのアイドル時間があり、バイト マルチプレクサはこのアイドル時間を他のデバイスにサービスを提供するために使用します。

バイト多重化と配列多重化の共通点

これらはすべてマルチチャネルであり、一定期間内に複数のデバイスのチャネル プログラムを交互に実行できるため、これらのデバイスは同時に動作できます。

バイト多重化と配列多重化の違い

数组多路通道複数のデバイスが同時に動作することができますが、送信系の操作を実行できるのは 1 つのデバイスのみであり、他のデバイスは制御系の操作を実行できます。

字节多路通道複数のデバイスを同時に動作させるだけでなく、トランスポートタイプの動作を同時に実行することもできます。

数组多路通道デバイスとのデータ送信の基本単位はデータ ブロックであり、チャネルは、別のデバイスにデータ ブロックを送信する前に、デバイスにデータ ブロックを送信する必要があります。

字节多路通道デバイスとデバイス間のデータ伝送の基本単位はバイトであり、各デバイスとチャネル間のデータ伝送はバイト単位で交互に行われます。

チャネル構造の開発

输入输出处理器 (IOP) はい通道结构。_ I/O 处理器_ との並列IOP動作が可能で、高速処理能力を備え、高速データ転送を実現します。ただし、CPU から独立して動作するのではなく、ホストの一部として動作します。中小型コンピュータやマイコンなどに広く使用されています。CPU DMA IOP

外围处理机 (PPU) : PPU は基本的にホストから独立して動作し、独自の命令システムを持ち、算術論理演算を完了し、メイン メモリの読み取りと書き込み、周辺機器との情報交換などを行います。一部の周辺プロセッサは、単に既存の汎用マシンを選択します。周辺プロセッサI/O 方式は、大規模で高効率なコンピュータ システムで一般的に使用されます。

おすすめ

転載: blog.csdn.net/qq_51594676/article/details/123798244