ホームページ » の仕方 » HTGはCPUが実際にどのように機能するのか説明しますか?

    HTGはCPUが実際にどのように機能するのか説明しますか?

    コンピュータ内のほとんどのものは比較的理解しやすいものです。RAM、ストレージ、周辺機器、およびソフトウェアがすべて連携してコンピュータ機能を実現します。しかし、あなたのシステムの中心であるCPUは、多くの技術者にとってさえ魔法のようです。ここでは、それを分解するために最善を尽くします.

    この記事のための研究のほとんどは、J。Clark Scottによる「しかし、それはどのように知っていますか」から来ています。それは素晴らしい読み物であり、この記事よりもはるかに深く掘り下げており、Amazonのカップルには十分価値があります。.

    始める前に1つ注意してください。現代のCPUは、ここで概説しているものよりも桁違いに複雑です。一人の人間が10億個を超えるトランジスタを持つチップのあらゆる微妙なニュアンスを理解することはほとんど不可能です。しかし、すべてがどのように組み合わされるかの基本原則は同じままであり、基本を理解することはあなたに現代のシステムのより良い理解を与えるでしょう.

    小さい順

    コンピュータはバイナリで動作します。彼らは2つの状態を理解するだけです:オンとオフ。バイナリで計算を実行するために、彼らはトランジスタと呼ばれるものを使います。ゲートを横切って電流がある場合、トランジスタはソース電流がそれを通ってドレインに流れることを可能にするだけである。基本的に、これはバイナリスイッチを形成し、2番目の入力信号に応じてワイヤを遮断します.

    現代のコンピュータは計算を実行するために何十億ものトランジスタを使用していますが、最低レベルでは、ゲートとして知られている最も基本的なコンポーネントを形成するために一握りだけ必要です。.

    ロジックゲート

    いくつかのトランジスタを適切に積み重ねると、論理ゲートとして知られるものができます。論理ゲートは2つのバイナリ入力を取り、それらに対して演算を実行し、そして出力を返します。たとえば、ORゲートは、どちらかの入力が真の場合に真を返します。 ANDゲートは両方の入力が真であるかどうかをチェックし、XORは一方の入力だけが真であるかどうかをチェックします。そして、Nバリアント(NOR、NAND、およびXNOR)はそれらのベースゲートの反転バージョンです。.

    ゲートで数学をする

    たった2つのゲートで基本的な2進加算をすることができます。上のこの図は、Logiclyを使用して作成された論理ゲート用の無料オンラインプレイグラウンドである半加算器を示しています。一方の入力だけがオンで、両方がオンではない場合、ここでXORゲートがオンになります。両方の入力がオンの場合、ANDゲートはオンになりますが、入力がない場合はオフのままです。したがって、両方がオンの場合、XORはオフのままで、ANDゲートがオンになり、2の正解になります。

    これにより、ゼロ、1、および2の3つの異なる出力を持つ単純な設定ができます。しかし、1ビットは1よりも大きいものを格納することはできません、そしてそれは可能な限り最も単純な数学の問題の1つを解決するだけであるのでこの機械はあまり役に立ちません。しかし、これは半加算器にすぎず、2つを別の入力に接続すると、全加算器が得られます。

    全加算器には3つの入力(加算する2つの数字)と「キャリー」があります。キャリーは、最後の数字が単一ビットに格納できる数を超えると使用されます。全加算器は連鎖的にリンクされ、キャリーはある加算器から次の加算器に渡されます。前半加算器でXORゲートの結果にキャリーが追加されます。両方のケースを処理するための追加のORゲートがあります。.

    両方の入力がオンになると、キャリーがオンになり、それをチェーン内の次の全加算器に送信します。

    そしてこれは足し算と同じくらい複雑です。より多くのビットに移動するということは、基本的に、より長いチェーンの中でより完全な加算器を意味する.

    他のほとんどの数学演算は加算を使って行うことができます。乗算は単なる反復加算であり、減算は多少の空想的なビット反転で行うことができ、除算は単なる反復減算です。最近のすべてのコンピュータは、より複雑な操作を高速化するためのハードウェアベースのソリューションを備えていますが、技術的には全加算器を使用してすべてを実行できます。.

    バスと記憶

    今のところ、私たちのコンピュータは悪い電卓に過ぎません。これは何も覚えていないからで、その出力には何もしません。上に表示されているのは、そのすべてを実行できるメモリセルです。内部的には、多くのNANDゲートを使用しており、実際にはストレージ技術によってかなり異なる場合がありますが、機能は同じです。いくつかの入力を与え、「書き込み」ビットをオンにすると、入力がセル内に格納されます。そこから情報を読み取る方法も必要なので、これは単なるメモリセルではありません。これはイネーブラを使用して行われます。イネーブラは、メモリ内の各ビットのANDゲートの集まりで、すべて別の入力、つまり「読み取り」ビットに関連付けられています。書き込みビットと読み出しビットは、しばしば "set"や "enable"とも呼ばれます。.

    このパッケージ全体はレジスタとして知られるものにまとめられています。これらのレジスタはバスに接続されています。バスは、システム全体を走り、すべてのコンポーネントに接続されているワイヤの束です。最近のコンピュータでもバスを持っていますが、マルチタスク性能を向上させるために複数のバスがあるかもしれません。.

    各レジスタにはまだ書き込みビットと読み出しビットがありますが、この設定では入力と出力は同じです。これは実に良いことです。例えば。 R1の内容をR2にコピーしたい場合は、R1の読み取りビットをオンにして、R1の内容をバスにプッシュします。読み取りビットがオンの間は、R2の書き込みビットをオンにします。これにより、バスの内容がR2にコピーされます。.

    レジスタはRAMを作るためにも使われます。 RAMは多くの場合グリッドに配置され、ワイヤは2方向に配線されています。

    デコーダはバイナリ入力を受け取り、対応する番号の付いたワイヤをオンにします。たとえば、「11」は2進数で3、最高の2ビット数なので、デコーダは最高のワイヤをオンにします。各交差点にはレジスターがあります。これらはすべて中央バスと中央の書き込みおよび読み取り入力に接続されています。読み取りと書き込みの両方の入力は、レジスタをまたぐ2本のワイヤもオンになっている場合にのみオンになるため、書き込みと読み取りを行うレジスタを効果的に選択できます。繰り返しますが、最近のRAMははるかに複雑ですが、この設定はまだ機能します。.

    時計、ステッパー、そしてデコーダ

    レジスタはいたるところで使用されており、データを移動してCPUに情報を格納するための基本的なツールです。だから物事を動かすように彼らに言うもの?

    クロックはCPUコアの最初のコンポーネントであり、設定した間隔(ヘルツ)または1秒あたりのサイクルでオン/オフされます。これは、CPUと並んで宣伝されている速度です。 5GHzチップは毎秒50億サイクルを実行することができる。クロック速度は、多くの場合、CPUの速度を表す非常に優れた指標です。.

    クロックには、ベースクロック、イネーブルクロック、およびセットクロックの3つの異なる状態があります。ベースクロックは、半サイクルの間オンになり、残りの半分の間オフになります。イネーブルクロックはレジスタをオンにするために使用され、データが確実にイネーブルされるようにするためにはもっと長い時間オンにする必要があります。設定クロックは常にイネーブルクロックと同時にオンにする必要があります。そうしないと、誤ったデータが書き込まれる可能性があります。.

    クロックはステッパーに接続されています。ステッパーは1から最大ステップまでカウントし、完了したら1に戻します。クロックは、CPUが書き込み可能な各レジスタのANDゲートにも接続されています。

    これらのANDゲートは他の構成要素、すなわち命令デコーダの出力にも接続されている。命令デコーダは、「SET R2 TO R1」のような命令を受け取り、それをCPUが理解できるものにデコードします。それは、「命令レジスタ」と呼ばれるそれ自身の内部レジスタを持ち、そこに現在の操作が保存されます。これはどの程度正確に実行しているシステムに由来しますが、デコードされると、正しいセットをオンにし、正しいレジスタのビットを有効にします。.

    プログラム命令はRAM(または最近のシステムではCPUに近いL1キャッシュ)に格納されます。プログラムデータは他のすべての変数と同じようにレジスタに格納されるため、プログラムを飛び回るためにその場で操作できます。これが、ループやif文を使ってプログラムがどのようにして構造を取得するかです。ジャンプ命令は、命令デコーダが読み取っているメモリ内の現在位置を別の位置に設定します。.

    それがすべて一緒になる方法

    これで、CPUがどのように機能するかについての私達の全体的な過度の単純化は完了しました。メインバスはシステム全体に広がり、すべてのレジスタに接続します。全加算器は、他の多くの演算と共に、算術論理装置(ALU)にまとめられています。このALUはバスへの接続を持ち、それが動作している2番目の番号を格納するための独自のレジスタも持ちます。.

    計算を実行するために、プログラムデータがシステムRAMから制御セクションにロードされる。制御部はRAMから2つの番号を読み取り、最初の番号をALUの命令レジスタにロードし、次に2番目の番号をバスにロードします。その間、ALUに何をすべきかを指示する命令コードを送信します。その後、ALUはすべての計算を実行し、その結果を別のレジスタに格納します。このレジスタはCPUから読み込んで処理を続行できます。.

    画像クレジット:Rost9 / Shutterstock