コンピューター構成の原則 - 私の混乱の一部を解決しました

全文電子版:408—電子ノート共有 - CSDN ブログ

目次

1. コード内の型変換 (int -> short)

2. メモリースティックを交換します - デュアルチャネルには 2 と 4 が必要です。

3. 購入したハードドライブの容量と実際のコンピュータのディスプレイ容量が一致しない

4. ソリッド ステート ドライブとメカニカル ハード ドライブ、どちらが優れていますか?

5. 組立ラインとクラスター(これを見て資本家は涙を流す)

5. 真値(オリジナルコード)、補数コード、フレームコード

6. 0.1、0.3は2進数(浮動小数点数)で表現できません。

7. なぜ逆コード、補コード、フレームコードがあるのですか?

8. IEEE754 のフレーム オフセット値が 128 ではなく 127 なのはなぜですか?

9. すべて0およびすべて1のIEEE754コードの使用

10、ROM、RAM、DAM、SAM、PROM、フラッシュ

11. コンピュータの単位 (B、KB、MB、GB、TB)

12. コンピューターの CPU のビット数 (32 ビットと 64 ビット) は何ですか?

13. 例外と中断(差異)

14.高級言語から機械語への変換(翻訳プログラム→コンパイル→解釈→アセンブリ)

15. 基本システム (数百、兆)


これは、408 をレビューしていたときにこれらの質問を記録するという即席のアイデアです。半分以上をレビューしたので、公開します (新しい質問がある場合)後でここで更新します)

1. コード内の型変換 (int -> short)

多ければ少なくなる (int -> short) - 高ビット切り捨て - 精度の損失 (高)

少ないほど多くなる (short -> int) - 高ビット拡張 - 1 で始まる場合は 1 で埋められ、0 の場合は 0 で埋められます。

2. メモリースティックを交換します - デュアルチャネルには 2 と 4 が必要です。

3. 購入したハードドライブの容量と実際のコンピュータのディスプレイ容量が一致しない

これは、ハード ドライブの製造元とコンピュータ システムの間で容量単位の定義が異なることが原因です。

ハード ドライブのメーカーは通常、10 進法を使用してドライブ容量を表現します。1GB は 10 億バイト、1TB は 1 兆バイトに相当します。コンピューター システムではバイナリ測定システムが使用されます。つまり、1GB は 2 の 30 乗 (約 10 億バイト) に相当し、1TB は 2 の 40 乗 (約 1 兆バイト) に相当します。その結果、同じハード ドライブ容量の単位換算はメーカーやコンピュータ システムによって異なります。

例えば:

公称容量 1TB (1 兆バイト) のハードドライブを購入した場合、コンピュータシステムに表示される容量は約 931GB になります。これは、コンピュータ システムが 1TB をバイナリ測定システムの容量単位に変換すると、その結果の値がメーカーが示す容量よりも小さいためです。

さらに、ファイル システムの管理、不良セクターの修復、パフォーマンスの維持などのために、ハードディスクに一部の領域が予約されます。これにより、実際に使用可能な領域が公称容量より小さくなります。

したがって、ハードドライブを購入するときは、メーカーが公表した容量をコンピュータシステムの測定単位に変換することで、実際に利用可能な容量をより正確に把握できます。

次の式を使用して変換できます。

実際に使用可能なスペース = 公称容量 * メーカーの容量単位 / コンピュータ システムの容量単位

たとえば、公称容量が 1TB のハードドライブの場合: 実際の利用可能容量 = 1TB * 1000000000 / 1073741824 ≈ 931GB

これにより、実際の利用可能なスペースと公称容量の差をより正確に見積もることができます。

実際のスペース損失は、ハードドライブのメーカーやモデルによって異なる場合があることに注意してください。

4. ソリッド ステート ドライブとメカニカル ハード ドライブ、どちらが優れていますか?

ソリッド ステート ドライブの利点:

  1. 高速化: ソリッド ステート ドライブはフラッシュ メモリ チップを使用してデータを保存し、読み取りおよび書き込み速度が速いため、システムの応答速度と起動時間を大幅に向上させることができます。
  2. 高いデータ信頼性: SSD には可動部品がなく、機械式ハードドライブよりも振動に強く、断片化の影響を受けず、データの信頼性が高くなります。
  3. 低消費電力でノイズレス:SSDはモーターなどの機械部品を必要としないため、消費電力が低く、ノイズレスで動作します。

メカニカルハードドライブの利点:

  1. より大きなストレージ容量: ソリッド ステート ドライブと比較して、機械式ハード ドライブはより大きなストレージ容量を提供でき、大量のファイルやデータの保存に適しています。
  2. より経済的な価格: メカニカル ハード ドライブの価格は比較的低いため、高いストレージ容量が必要な場合や予算が限られている場合は、メカニカル ハード ドライブの方が経済的な選択肢となる可能性があります。
  3. 長期保管: 機械式ハードドライブは、長期間使用しなくてもデータが失われることがなく、バックアップや長期保管に適しています。

5. 組立ラインとクラスター(これを見て資本家は涙を流す)

  1. 組立ライン: 組立ラインは、製品の製造プロセスを複数の工程に分割し、各工程を特定の作業者または機械によって完了する製造プロセスです。組立ラインでは、製品が各工程間で決まった順序で受け渡され、各工程は特定のタスクを完了するだけで次の工程に製品を渡します。組立ラインは生産効率を向上させ、コストを削減することができ、大量生産シナリオに適しています。

  2. クラスター: クラスターとは、ネットワークを介して複数のコンピューターを接続して全体を形成し、共同で特定のタスクを完了したり、特定のサービスを提供したりすることを指します。クラスターでは、個々のコンピューターはノードと呼ばれ、相互に通信して共同作業できます。クラスターは、タスクを複数のノードに分散して並列実行することで、コンピューティング能力と大規模なデータを処理する能力を向上させることができます。クラスターは、ビッグ データ処理、ハイ パフォーマンス コンピューティング、サーバー クラスターなどの分野で広く使用されています。

共通点:

  • 効率の向上:パイプラインであってもクラスタであっても、作業効率の向上に尽力しています。組立ラインは、製造工程を複数の工程に分割し、同時に行うことで並行分業生産方式を実現し、生産効率を向上させます。クラスターは複数のコンピューターを接続し、連携してより多くのタスクを同時に処理し、コンピューティング能力と効率を向上させます。
  • 分業とコラボレーション:パイプラインとクラスタの両方に、タスクの分業とコラボレーションが含まれます。組立ラインでは、各工程が特定のタスクを担当し、製品は異なる工程間を搬送されて最終的に製造されます。クラスターでは、各ノードは特定のタスクの処理または特定のサービスの提供を担当し、相互に連携して全体のタスクまたはサービスを完了します。
  • 大規模アプリケーション:パイプラインとクラスタはどちらも大規模なアプリケーション シナリオに適しています。組立ラインは自動車製造や電子製品製造などの製造業で広く使用されており、クラスターはビッグデータ処理、クラウドコンピューティング、スーパーコンピューティングなどのコンピューティング分野で広く使用されています。

スーパースカラー パイプラインは、単一プロセッサの命令実行効率を向上させるために使用されるコンピュータ アーキテクチャ設計テクノロジです。複数の命令を同時に実行する命令レベルの並列処理を利用して、プログラムの実行を高速化します。スーパースカラ パイプラインは、複数のステージで命令を合理化し、マルチイシューなどのテクノロジを使用して 1 クロック サイクルで複数の命令を同時に実行することにより、プロセッサのスループットと効率を向上させます。 

  • スーパースカラ パイプラインは主に単一プロセッサ内で使用されます。命令の実行順序を最適化し、複数の命令を並列実行することにより、単一プロセッサのパフォーマンスを向上させます。
  • クラスタは主に複数のコンピュータの共同作業に使用され、タスクの並列分散と処理を通じてより高いコンピューティング能力とサービス機能を提供します。

5. 真値(オリジナルコード)、補数コード、フレームコード

(同じ符号ビットを持つ数値の場合 - 真の値 (元のコード)、補数、フレーム コード はすべて < a i=3>単調増加)

6. 0.1、0.3は2進数(浮動小数点数)で表現できません。

使用32 ビット (単精度) 浮動小数点数表現0.1 の場合、その値は実際には 0.100000001490116119384765625 であり、正確には 0.1 ではありません。これは、バイナリでは 0.1 の正確な値を正確に表すことができず、丸め誤差が発生するためです。

コンピュータでは、浮動小数点数の 2 進表現は有限ですが、10 進数の 2 進表現0.3は無限ループになります。具体的には、0.3 のバイナリ表現は 0.0100110011001100110011001100110011... です。数字01が連続的に繰り返されます。 したがって、コンピュータで限られたビット数を使用して 0.3 を表すと、精度誤差が発生します。

7. なぜ逆コード、補コード、フレームコードがあるのですか?

1. 1 の補数:

  • 正の数の 1 の補数は元のコードと同じです。
  • 負の数の 1 の補数は、元のコードをビットごとに反転した結果です (0 は 1 になり、1 は 0 になります)。

逆コーディングによって解決される問題:

  • 符号ビット表現の問題は、正負の数を表す符号ビットとして最上位ビットを使用することで解決されます。
  • ただし、ゼロを表す 2 つのコード (正のゼロと負のゼロ) があり、加算と減算の演算がより複雑になります。

2の補数:

  • 正の数の補数は元のコードと同じです。
  • 負の数の補数は、その補数の最後の桁に 1 を加えた結果です。

補完によって解決される問題:

  • これにより、1 の補数表現にゼロが 2 つあり、ゼロを表すコードが 1 つしかないという問題が解決されます。
  • 同時に、加算および減算演算は 2 の補数に基づいて実行できるため、演算が簡素化されます。

3フレームコード(Excess-Kコード):

  • フレームシフトとは、元のコードを基に正の数に直接Kを加算し、負の数の場合は補数コードの下一桁に1を加算してKを加算することです。

フレームコーディングによって解決される問題:

  • 主に浮動小数点数の表現と演算に使用され、フレームシフトのオフセット K を指数のオフセットとして表現できるため、浮動小数点数の比較や計算が容易になります。​ 

8. IEEE754 のフレーム オフセット値が 128 ではなく 127 なのはなぜですか?

IEEE754设置的是2n-1-1 (普通移码就是:2n-1注意!!!!!!!!!!!!

IEEE 754中,一个单精度浮点数由1位符号位、8位指数位和23位尾数位组成。

一見-1冗長ですが、オフセット-1< 操作a i=4> の場合、浮動小数点数の範囲を ほぼ 1 半分増やすことができます。 ! !

9. すべて0およびすべて1のIEEE754コードの使用

IEEE754の理解まとめ_順序コードはすべて0、仮数部はすべて0ではない_caseyzzzのブログ - CSDNブログ

阶码全0和全1是特殊用处的值:

阶码全0,尾数全0即为0【正负之分看最高符号位】

コードはすべて0ですが、仮数はすべてではありません0< a i=4> 、暗黙的な 1 ルールをキャンセルします。これは非正規化された数値であり、実際の数値は 0 です。 M * 2^(0 -127) = 0.M * 2^-127

指数はすべて1、仮数はすべて0、無限大を表します [正または負の符号に応じて]

阶码全1,尾数不为0,无效数

10、ROM、RAM、DAM、SAM、PROMフラッシュ

1. ROM (読み取り専用メモリ):

• 組み込みシステム: ROM は、従来のゲーム機や電子機器など、固定化されたプログラムとデータを保存するために使用されます。

• BIOS (Basic Input/Output System): コンピュータの ROM には、起動に必要な基本的な命令セットが格納されています。

• ソフトウェア ファームウェア: ルーター、携帯電話など、一部のデバイスのファームウェアは ROM の形式で保存されています。

2. RAM (ランダム アクセス メモリ):

• メイン メモリ: コンピュータのメイン メモリは、実行中のプログラムとデータを一時的に保存するために使用されます。 (通常は ROM+RAM)

• キャッシュ: CPU キャッシュは、データ アクセスを高速化するために使用される高速 RAM です。

• グラフィックス プロセッシング ユニット (GPU) メモリ: 高性能グラフィックス コンピューティング、ゲーム、ビデオ処理などに使用されます。

3. SAM (シーケンシャル アクセス メモリ):

• テープ ストレージ: SAM は、データ バックアップ、長期アーカイブ、およびアーカイブに広く使用されているシーケンシャル読み取り/書き込みストレージ メディアです。

• オーディオ/ビデオの記録: 一部のオーディオまたはビデオ デバイスは、記録と保存に SAM ストレージ形式を使用します。

DAM - ダイレクト アクセス メモリ - ディスク用

  1. PROM (Programmable Read Only Memory): ROM に似ていますが、プログラミング プロセスによって実行されます。 1 回限りの書き込み操作。
  2. EPROM (消去可能プログラム可能読み取り専用メモリ): PROM に似ていますが、繰り返し書き込みが可能です。特定の UV 消去操作。
  3. EEPROM (電子的に消去可能でプログラム可能な読み取り専用メモリ): EPROM に類似 a> ですが、電子的に消去したり書き換えたりすることができます。
  4. フラッシュ メモリ: データやプログラム コードの保存に使用される不揮発性メモリの一種。 USB ドライブ、SSD (ソリッド ステート ドライブ)、モバイルでよく見られます。デバイスなど。
  5. キャッシュ メモリ: キャッシュの一部として、コンピュータのパフォーマンスを向上させるために最も頻繁にアクセスされるデータを一時的に保存するために使用されます。
  6. VRAM (ビデオ メモリ): グラフィックス カードで使用するグラフィックスおよびビデオ データを保存するために使用されます。
  7. レジスタ (レジスタ): CPU 内にある高速メモリで、命令の保存に使用されます。コンピューティングタスクを実行するために使用されるアドレスとデータ。

11. コンピュータの単位 (B、KB、MB、GB、TB)

コンピュータのストレージユニットは通常、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB です。

1B (バイト バイト); 1B (バイト) = 8 ビット

1KB(Kilobyte 千字节) = 2^10 B = 1024 B;

1MB(メガバイト MB) = 2^10 KB = 1024 KB = 2^20 B;

1GB(Gigabyte 吉字节) = 2^10 MB = 1024 MB = 2^30 B;

1TB(兆バイト テラバイト) = 2^10 GB = 1024 GB = 2^40 B;

1PB(Petabyte 拍字节) = 2^10 TB = 1024 TB = 2^50 B;

1EB(エクサバイト エクサバイト) = 2^10 PB = 1024 PB = 2^60 B;

1ZB(Zettabyte 泽字节) = 2^10 EB = 1024 EB = 2^70 B;

1YB(YottaByte 尧字节) = 2^10 ZB = 1024 ZB = 2^80 B;

1BB(ブロントバイト) = 2^10 YB = 1024 YB = 2^90 B

1NB(NonaByte ) = 2^10 BB = 1024 BB = 2^100 B

1DB(ドガバイト) = 2^10 NB = 1024 NB = 2^110 B

12. コンピューターの CPU のビット数 (32 ビットと 64 ビット) は何ですか?

ソフトウェアをインストールするときソフトウェアの後に (x32) または (x64) が続く場合は何を意味しますか?

翻訳: コンピュータの CPU は一度に何ビットのデータを処理できますか?

x32の場合は32ビットです

x64 の場合は 64 ビットです (つまり、CPU は一度に 64 ビットを処理できます)。

CPU によって一度に処理されるビット数 = データ バス のビット数

13. 例外と中断(差異)

例外とは、ゼロ除算エラー、無効なメモリへのアクセス、不正な命令など、プログラムの実行中に発生する予期しないイベントです。例外が発生すると、プロセッサは現在の通常のプログラム フローを中断し、例外処理のために例外ハンドラーにジャンプします。例外は通常、命令またはデータのエラーによって発生し、プログラム エラーまたはシステム エラーの結果として発生します。

割り込みは、現在の命令の実行を停止し、代わりに特定のタスクを処理するようにプロセッサに要求する外部デバイスまたはその他のハードウェア信号です。 割り込みは、外部デバイスからの入力/出力リクエスト、タイマー トリガー、ハードウェア エラーなどです。割り込みが発生すると、プロセッサは現在のコンテキストを保存し、現在実行中のプログラムを一時停止し、対応する処理のために割り込みハンドラーにジャンプします。割り込みは通常、ハードウェアによってトリガーされ、外部イベントまたはデバイスの相互作用を処理するために使用されます。

例外 - いつでも発生する可能性があります

割り込み - 命令の実行後にのみ検出されます (結局のところ、命令のアトミック性が保証されなければなりません)

例外 - 制御不能 (許容誤差 0!) 存在する場合は、対処する必要があります (結局のところ、エラーが発生しました)< /span>

割り込み - 待つことができる種類の割り込みです。 ! ! (これはによって設定された操作にすぎません!)

14.高級言語から機械語への変換(翻訳プログラム→コンパイル→解釈→アセンブリ)

1.编译执行

コンパイル方法は、高級言語で書かれたソース プログラム全体を機械語プログラムに変換し、次にオペレーティング システム上で直接実行できる実行可能プログラムを生成します。< a i=1>通常、ターゲットはプログラムが生成されます。

2.解释执行

解釈モードでは、ソース プログラムを 1 文ずつ解釈して実行する、つまり、一方の文を解釈してもう一方の文を実行するため、 解釈モードではオブジェクト ファイルは生成されません。

特徴

コンパイル

説明する

翻訳プロセス

ソースプログラムを全体としてターゲットコードに変換し、段階的に変換して実行します。

ソースプログラムを一行ずつ解釈して実行し、一度に翻訳と実行を完了します。

ターゲットコード

実行可能オブジェクトコードファイルを生成する

保存可能なオブジェクトコードを生成しない

コントロール

実行時の制御はユーザープログラムにあります

実行時の制御はインタープリタにあります

動特性

動的特性の欠如、静的構造は実行前に決定される

動的特性を持ち、動的に型を変更したり、プログラムを変更したりすることができます。

携帯性

ターゲット プラットフォームに応じて、異なるプラットフォームを再コンパイルする必要があります

インタプリタはさまざまなシステムに移植でき、プログラムは変更せずに実行できます。

走行速度

生成されたターゲット コードは直接実行され、より高速に実行されます。

一行ずつ解釈して実行するため、実行速度は比較的遅い

デバッグ可能性

デバッグツールを使用してデバッグする必要がある

デバッグを容易にするためにデバッグ診断情報を挿入できます。

サンプル言語

CC++Java

PythonJavaScript など

翻訳プログラムは、コンピュータ プログラミング言語で書かれたプログラムを一般的な言語に翻訳するシステム プログラムです。別のコンピュータ言語と同等のプログラムには、主にコンパイラとインタプリタアセンブリ プログラムが含まれます。< a i=7>翻訳プログラム

1。アセンブリ プログラムとは、[アセンブリ言語) で記述され、[機械語]プログラム]翻訳プログラム。

2, コンパイラはまず[高級言語で書かれたソースプログラム全体]を[機械語プログラム]に変換します。そして、オペレーティング システムの下で直接実行できる実行可能プログラムを生成し、通常はターゲット プログラムを生成します。

3. インタプリタはソースプログラムを一文ずつ解釈して実行する、つまり一文を解釈して実行するため、解釈モードではターゲットファイルは生成されません。 。

リンカはアセンブラによって処理されたターゲット プログラム < a i= に連結します。 4>実行可能プログラム

これは、一連のオブジェクト モジュールと必要なライブラリ関数をリンクします。翻訳プログラムの一部ではありません。

(コンパイラとアセンブラプログラムはどちらも、リンカープログラム)

15. 基本システム (数百、兆)

10 の 0 乗 - 1

10 の 10 乗 - 10

10 の 2 乗 - 100

10 の 3 乗 — 千

10 の 4 乗 - 10,000

10 の 5 乗 - 10 万

10 の 6 乗 - 100 万

10 の 7 乗 - 数千万

10 の 8 乗 - 1 億

10 の 16 乗 - 10 億

5亿亿——5*10^16

おすすめ

転載: blog.csdn.net/Pan_peter/article/details/133438354