20210221コンピュータサイエンスクラッシュコース40エピソード(1-10)

B駅リンク

  1. コンピュータの初期の歴史:そろばん、機械式コンピュータ、計算担当者(コンピュータ)
  2. 電子コンピューター:紙テープパンチコンピューター(IBM)、チューブコンピューター、トランジスタコンピューター
  3. ブール論理および論理ゲート:NOT、AND、OR、XOR(2つの入力は同じ出力0、異なる出力1を持ちます)
  4. バイナリ:3つの塩基と5つの塩基もあります.2つの塩基の利点は、高レベルと低レベルのみを検出し、干渉を受けにくいことです。
  5. 算術論理演算装置:ALU。半加算器はAとBを入力し、SUMを出力してCARRYをキャリーします。全加算器はA、Bを入力し、Cをキャリーし、SUMとCARRYを出力します。
  6. レジスタとメモリ:SRラッチと縮小された入力ピンと出力ピンがマトリックスに配置され、アドレス指定されます。ランダムアクセスストレージRAM。
  7. 中央処理装置CPU:命令。命令には、操作コード(最初の数桁)とアドレスコード(最後の数桁)が含まれます。命令アドレスレジスタは、プログラムの実行場所を追跡するために使用されます。通常、クロック信号に接続されて、現在の命令のメモリアドレスが格納されます。現在の命令を格納する命令レジスタ。コンピュータが起動し、CPUが実行を開始すると、すべてのレジスタは00000000から始まります。最初のステージである命令フェッチステージでは、最初に命令アドレスレジスタをRAMに接続し、命令アドレスレジスタの値が0であるため、RAM内のアドレス0のデータが返されます。データ(0010 1110など) )が命令レジスタにコピーされるので、Orderedを取得できます。第2段階のデコードフェーズでは、最初の4桁の0010はLOAD_A命令であり、これはRAM内のアドレスの値をレジスタAに入れることを意味し、最後の4桁の1110はRAMアドレスです。デコード段階では、命令レジスタ論理回路を通過する必要があります。0010コマンドが0010コマンドであることを確認してください。第3段階の実行フェーズでは、それがLOAD_A命令であるかどうかをチェックする回路が、RAMの「許可された読み取りライン」を開き、RAM内のアドレス1110の値を取得できます。RAMアドレス1110の値が0000であると仮定します。 0011、同時に「LOAD_A命令の回路かどうかを確認」してレジスタAの「書き込みライン」を有効にし、RAMのアドレス1110の値00000011がレジスタAに書き込まれるようにします。第4ステージでは、命令の実行が完了し、命令アドレスレジスタがクロック信号+1に基づいて実行ステージが終了し、すべての回路がオフになり、次の命令が実行されます。CPUには、レジスタユニット(データレジスタ)、制御ユニット(命令レジスタ、命令アドレスレジスタ)、演算ユニット、論理演算ユニットが含まれます。CPU制御回路は、命令セットのインスタンス化です。簡単に言うと、制御ユニットはRAM内の制御命令を読み取り、その回路を使用してRAMとCPUレジスタの読み取りと書き込み(読み取りと書き込みが可能)、およびアドレス(レジスタアドレス、RAMアドレス)の制御を実現します。 )、データ(レジスタとRAMの対応するアドレスの値)、およびALU演算ユニットの動作の制御。オーバークロックとは、クロック周波数を上げることを意味しますが、消費電力が増えます。消費電力を削減するためにも周波数低減が必要です。
  8. 手順と手順:JUMPジャンプ、HALT(停止)手順。JUMP_NEGなどの条件付きJUMP。結果が負の場合、JUMP。剰余を計算するためのプログラムがビデオにリストされています。これは、循環減算による除算をシミュレートし、条件付きJUMPによって剰余を取得します。ALUには除算の機能はありませんが、プログラムは実装できます。コンピューターの32ビット64ビットは命令長instruction_lenthを参照します。上記は4ビット命令の例です。可変命令長可変長命令。最初の統合CPUIntel 4004命令セットには46個の命令が含まれています。Corei7などの最新のCPUには、長さが1〜15バイトの数千の命令と命令バリアントが含まれています。ADD命令だけでも多くのバリアントがあり、命令はますます増えています。 。、CPU用に設計された機能が増えているため。
  9. 高度なCPU設計:コンピューターを早期に高速化する方法は、トランジスタのスイッチング時間を短縮することです。最新のCPUは、パフォーマンスを向上させるためにさまざまな新しいテクノロジーを発明しました。これにより、単純な命令の実行が高速化されるだけでなく、より複雑な計算を実行できるようになります。(1)初期のコンピューターは、負の数を出力するか0で停止するまで、除算に減算ループを使用していました。最近のコンピューターは、CPUの除算を直接設計し、ALU除算命令を直接与えることができます。(2)現代のプロセッサはますます複雑になっており、複雑さと速度のバランスを常に保つ必要があります。たとえば、グラフィックス操作の処理、圧縮ビデオのデコード、暗号化されたドキュメントなどの特殊な回路があります。標準の操作で実装する場合、多くのクロックサイクルが必要です。たとえば、MMX、3DNOW、およびSSEをサポートするCPUには、関連する複雑な操作を実行するための追加の回路があります。(3)命令セットはますます大きくなり、複雑になっています。(4)クロック速度が速く、RAMが一致しないため、キャッシュCACHEテクノロジを使用して、最初にメモリのセクションをCPUに読み取ります。必要なデータがキャッシュにある場合、それはCACHE HITと呼ばれ、そうでない場合、それはCACHEMISSと呼ばれます。キャッシュは、長くて複雑な計算に適した、いくつかの中間値を格納するための一時スペースとしても使用できます。(5)パフォーマンスを向上させる別の方法:命令パイプライン。並列処理は並列化します。並列処理により、命令とジャンプ命令の間に依存関係の問題が発生するため、最新のCPU設計では、複雑な回路を使用して、依存命令の動的な順序付け(順不同の実行)と分岐予測(90%を超える精度)を実現しています。理想的には、パイプラインは1クロックサイクルで1つの命令を完了し、スーパースカラープロセッサは1クロックサイクルで複数の命令を完了します。(6)マルチコア、複数の命令ストリームを同時に実行します。
    10.初期のプログラミング方法:プラグインボードプログラミング、フォンノイマン構造パンチ紙カード入力プログラミング、パネル(スイッチ)プログラミング

おすすめ

転載: blog.csdn.net/foundliving/article/details/113915996