コンピュータシステムのコンセプト

データ演算-
整数算術演算、浮動小数点算術演算-
ビット単位、論理、シフト、ビット拡張、ビット切り捨て
命令セットに
含まれる
演算-含まれる固定小数点演算算術演算
1.符号付き整数演算:負/符号拡張/加算/減算/乗算/除算/算術シフト
2.符号なし整数演算:0拡張/加算/減算/乗算/除算
論理演算
1.論理演算:AND / OR / NO ...
2。シフト演算:論理左シフト/論理右シフトに
は、浮動小数点数を含む演算が含まれます:加算、減算、乗算、除算であり、シフト演算や拡張演算はありません。
基本的な算術コンポーネントのALU設計
算術演算:
符号なし数値、符号付き整数、浮動小数点数の加算、減算、乗算、除算。
ビット単位演算
1.を使用
して、ビット文字列にマスク演算または対応する他の処理を実装します
(主にマルチメディアデータまたはステータス/制御情報の処理に使用されます)
2.演算
"|"、 "&"、 "〜"、 "^ "
論理演算
目的:関係式の
演算の場合:演算:
1. ||はOR演算を意味します
2. &&はAND演算を意味し
ます3. |はNOT演算
とビットごとの演算の違いを
意味します1.符号は異なります。
2.計算プロセスが異なります。
3.さまざまな種類の結果。
シフト操作:
情報を抽出します
値を2、4、8 ...倍に増減します。
操作:
1.左シフト:x << k;右シフトx >> k
2. xのタイプによって決定される論理シフトと算術シフトを区別しません。
3.符号なしの数値:論理左シフト、論理右シフト
High(low)シフトアウト、low(high)ビットは0で埋められ、オーバーフローする
場合があります。high シフトが1の場合、左シフト時にオーバーフローが発生します。
符号付き整数:算術左シフト、算術
シフト、シフト、高シフトアウト、低ビット補数0はオーバーフローする可能性があります。
オーバーラン判定。シフトアウトされたビットが新しい符号ビットと等しくない場合、オーバーフローします。
右シフト:低シフトアウト、高ビット補数、有効ビットのデータ損失が発生する可能性があります
ビット拡張およびビット切り捨て操作
用途:型変換にはデータ拡張および切り捨て
演算が必要な場合があります型変換前後のデータの長さに従って決定される特別な演算演算子はありませんビット拡張はまだ切り捨てられます。
展開:短いから長い
符号なし数値:0展開、符号付き
整数の前に0 :符号拡張、
切り捨てを補完するための前面:長いから短い
強制的に上位ビットを破棄、オーバーフローが発生する可能性がある
概要:C言語の基本的なデータ型とその基本演算タイプ
基本データタイプ:
符号なし、符号付き、浮動小数点、ビット文字列、文字(文字列)
基本演算タイプ:
算術、ビット単位、論理、シフト、拡張および切り捨て、一致。
コンピューターは高水準言語で命令を実装します:
さまざまな式を命令シーケンスにコンパイル(変換)します。
コンピューターは直接命令を実行して操作を完了します。
相補的な加算および減算の公式
[A + B]補数 = [A] 補数 + [B] 補数(mod2 n
[AB] 補数 = [A] 補数 + [-B] 補数(mod2 n
フラグ付き加算器を使用すると、次の演算を実行するための加算および減算演算子を作成できます。 :
符号なし整数の加算、減算、符号なし整数
、符号なし整数の加算、減算符号付き整数
レジスタ、レベルシフタ及び制御ロジックと一緒に長い整数加算/減算部材に基づいて、ALUを達成することができ、乗算/除算演算および浮動小数点演算回路。
ここに画像の説明を挿入
Subが1の場合、減算を行います。Subが0の場合、追加します。
ZF:ゼロフラグ
SF:シンボルフラグ
OF:オーバーフローフラグ
CF =Co⊕Sub:エンター/ミスアライメントフラグ
算術論理演算ユニットALU:
基本的な論理演算と基本的な算術演算の実行
1.符号なし整数の加算と減算
2.符号付き整数の加算と減算
3. NOR、XORなどの論理演算。
コア回路の整数加算および減算ユニットの
出力合計/差分に加えて、フラグ情報もあります。
ALUによって実行される処理機能を決定するために使用される操作制御端末(ALUop)があります。ALUopの数kは、演算のタイプを決定します。たとえば、ビット数k = 3の場合、ALUは最大で3 3 = 8 の演算しか持ちません
ここに画像の説明を挿入
ここに画像の説明を挿入
通常、ポインタやアドレスなどは符号なし整数として記述されるため、ポインタやアドレス演算を行う場合は、符号なし整数の加算や減算が必要になります。
符号なし整数と符号付き整数の加算および減算回路はまったく同じで、この演算は整数加算および減算ユニットと呼ばれ、符号付き加算器に基づいています。
最も基本的な加算器(nビットのみ)は、2 nを法とする計算システムです。
nビット加算器は、2つのnビット符号付き数値(補数)を加算するために使用できず、オーバーフローするかどうかを判別できません。
しばしば決定するフラグ情報取得減算(加算)することにより、プログラムのサイズを比較する必要がある
ここに画像の説明を挿入
の。オーバーフローフラグ
。V = OF N ⊕C -1-。N-
符号フラグSF
SF = F. N- 1-
ゼロフラグZF = 1の場合のみF = 0の場合、
キャリー/ミスアライメントフラグCF:
CF =Count⊕Cin
すべての算術演算は、加算器に基づいて実装されますが、加算
器は、演算が符号付きか符号なしかを認識していません。
加算器は、正誤を判断せず、結果として下位nビットを取り、フラグ情報を生成します。

元の記事を74件公開 15 件を獲得 4094件を表示

おすすめ

転載: blog.csdn.net/V2636011127/article/details/105295689