で マイクロプロセッサ チップでは、特別なタスクを達成するために新しい回路が追加され、CPU コアの作業をオフロードするための数値操作も行われるため、CPU は非常に高速に機能します。コプロセッサのような補助プロセッサは、主にコンピューターで使用され、グラフィック表示処理や幅広い算術計算などの特別なタスクを実行します。このプロセッサは、CPU と比較して非常に効率的にこのようなタスクを実行するように設計されているため、コンピュータ全体の速度を向上させることができます。この記事では、 コプロセッサー –アーキテクチャ、動作、およびそのアプリケーション。
コプロセッサーとは?
CPU のようにコンピュータのメイン プロセッサと並行して動作するプロセッサは、コプロセッサとして知られています。このプロセッサは、補助コンピュータ プロセッサとも呼ばれます。このプロセッサを使用することで、画面に表示されるグラフィックス、信号処理、文字列処理、浮動小数点演算、入出力インターフェイスなど、いくつかの難しい数学的計算を実行できます。
コプロセッサーのアーキテクチャー
8087 アーキテクチャのようなコプロセッサを以下に示します。通常、このコプロセッサはマイクロプロセッサと並行して動作します。このコプロセッサーは Intel によって開発され、16 ビット 8086 ファミリーのマイクロプロセッサーで使用されます。プロセッサがマイクロプロセッサと組み合わせて機能する場合、計算部分はプロセッサによって処理されるだけであり、これにより、CPUはリソースを利用して他のさまざまなアクティビティを実行できます。
次の図は、8087 コプロセッサーのアーキテクチャーを表しています。このアーキテクチャには、制御ユニットなどの 2 つのメイン ユニットと、NEU とも呼ばれる数値実行ユニットが含まれます。
コントロール ユニットには、データ バッファ、コントロール & ステータス ワード レジスタ、共有オペランド キュー、例外ポインタ、アドレッシング & バス トラッキング ユニットなどのさまざまなユニットがあります。数値実行ユニットまたは NEU には、主にマイクロコード制御ユニット、レジスタ スタック、プログラマブル シフター、一時 レジスタ 、算術モジュール、指数モジュール、共有オペランド キュー。
コプロセッサの制御ユニットは、数値実行ユニットが担当する命令実行 (IE) を制御します。ほとんどの場合、数値実行ユニットのマイクロコード制御ユニット (CU) は、コプロセッサーの制御ユニットから数値命令を取得します。このコプロセッサには 80 ビットの完全な 8 レジスタがあり、それぞれが LIFO スタックで使用されます。コプロセッサ命令が発生するオペランドは、レジスタ スタックに存在します。
既存のスタックは、8 つのスタック レジスタを示すために 000 ~ 111 の範囲のバイナリ値を保持する 3 ビット SP (スタック ポインター) を介してポイントされます。 LIFO モードでは循環スタック方式で動作します。ただし、リセット アクションが発生すると、ポインタはバイナリ値「000」で初期化できます。
コプロセッサ機能がパックされた 10 進数、実数、2 進整数の 3 つの分類の数値データ。 2 進整数は、16 ビット語整数、32 ビット短整数、および 64 ビット長整数の 3 種類です。 80 ビットの BCD 形式はパック 10 進数を表し、実数は 3 種類です。 32 ビットの短実数、64 ビットの長実数、および 80 ビットの一時実数。
コプロセッサーで数値データを転送するには、 16 ビットの指数バスまたは 64 ビットの仮数バスが使用されます .コプロセッサには、16 ビットのコントロール ワードと 16 ビットのステータス ワードが含まれます。
制御ワードは制御レジスタに書き込まれます。これは、コプロセッサが最初にメモリの場所に制御ワードを書き込むような方法で行われます。その後、コプロセッサは単にメモリ位置を使用して制御ワードを読み取り、それを制御レジスタに格納します。
同様に、ステータス ワードは、プロセッサがステータス レジスタ内のデータをメモリのある場所に送信するように読み取ります。さらに、このコプロセッサは、メモリの特定の場所からステータス レジスタを読み取ります。したがって、これは、プロセッサとマイクロプロセッサがメインメモリによって互いに通信することを意味します。
コプロセッサーはどのように機能しますか?
コプロセッサは、主に 8086 および 8088 プロセッサの両方で動作するように設計されています。コプロセッサーは、特定の CPU タスクをオフロードすることにより、システムがより強力に実行できるようにするために使用されます。このプロセッサがマイクロプロセッサと組み合わせて動作すると、マイクロプロセッサとコプロセッサの両方の命令が、プログラムの作成中に統合されます。アセンブリ言語プログラムの命令の先頭には、コプロセッサの命令を表す「F」がありますが、「F」プレフィックスのない命令は、マイクロプロセッサの命令を示します。
“差動アンプとは ”
最初に、命令はマイクロプロセッサによってメモリの場所からフェッチされ、キュー内に順次ロードされます。同時に、8087 コプロセッサも命令を読み取り、内部キュー内に格納します。つまり、すべての命令はコプロセッサとプロセッサの両方で読み取ることができますが、実行時には、コプロセッサとマイクロプロセッサの両方が特定の命令の実行を実行できます。これは、その命令が読み取られてデコードされることを意味します。マイクロプロセッサがコプロセッサの命令があることを確認した場合、その命令はノーオペレーションとして扱われます。同様に、このコプロセッサがマイクロプロセッサの任意の命令をまたいで接近すると、ノーオペレーションとして扱われます。
コプロセッサーの種類
次のようなメーカーに基づいて、さまざまなコプロセッサが利用可能です。
インテル 8087 コプロセッサー
Intel 8087 は、浮動小数点および整数値を含む数学的計算を実行するために使用される、特別に設計されたコプロセッサです。場合によっては、数値データ プロセッサおよび数学プロセッサとしても知られています。これは、Intel 80188、8086、80186、および 8088 プロセッサ用の数値コプロセッサです。 8087 コプロセッサには、スタックとして実行される 8 つの 80 ビット汎用レジスタが含まれています。したがって、すべての浮動小数点演算は、スタックおよび外部メモリからのデータを使用して単純に実行されます。
Intel 8087 コプロセッサは、BCD、整数、単精度および倍精度の浮動小数点数と拡張精度の浮動小数点数を簡単にサポートします。 8087 プロセッサがメモリからデータをロードすると、内部で変換して精度の数値を拡張し、さらにすべての計算はこの数値を使用して実行されます。
そのため、倍精度数から単精度数に切り替えても、64 ビット整数 (32 ビット/16 ビット整数) に切り替えても、パフォーマンスが大幅に向上することはありません。 8087 コプロセッサーは Intel だけでなく、AMD、Cyrix、IBM もこれらのコプロセッサーを製造しています。
モトローラ 68881
Motorola 68881 は、主に Motorola 68K の第 2 世代で使用されるコプロセッサです。 マイクロプロセッサ Motorola 68030 & 68020 のように。理論的には、このコプロセッサは、周辺機器として以前の 68000 または 68010 CPU で使用されます。
Motorola 68881 コプロセッサは、単純にメモリ マップ デバイスのように機能します。メイン CPU がコプロセッサの命令をロードすると、CPU のアドレス空間内にマッピングされた CIR (Co-processor Interface Registers) に命令コードを書き込み、その後、その応答を読み取ります。 CIR レジスタの 1 つからのコプロセッサ。
Motorola 68881/68882 コプロセッサは、IBM RT PC ワークステーション、Sun Microsystems Sun-3 ワークステーション、NeXT Computer、Apple Computer Macintosh II ファミリ、Amiga 3000、Sharp X68000、Convergent Technologies MightyFrame、TT、Atari Mega STE & Falcon で使用されました。これらのプロセッサは、68000 へのメモリ マップ デバイスなど、一部のサードパーティの Atari & Amiga 製品でも使用されています。
Apple Motion コプロセッサ
Apple の M シリーズ コプロセッサは、Apple モバイル デバイスで使用されるモーション コプロセッサとして知られています。最初のコプロセッサは 2013 年に設計され、組み込まれたジャイロスコープ、加速度計、コンパスからセンサー データを収集し、メイン CPU を使用して収集したセンサー データをオフロードするために使用されました。
M シリーズの Apple コプロセッサは、デバイスがスリープ状態の場合でもプロセスを収集してセンサーのデータを保存するだけで、デバイスの電源が再びオンになると、アプリケーションはデータを回復できます。したがって、これにより、デバイスから引き出される電力が減少し、バッテリーの寿命が節約されます。
プロセッサーとコプロセッサーの違い
プロセッサとコプロセッサの違いには、次のようなものがあります。
プロセッサ |
コプロセッサー |
プロセッサは、命令に基づいてさまざまな算術演算、論理演算、および制御演算を実行するコンピュータの主要な処理装置です。 | コプロセッサーは、メインプロセッサーをサポートする特別なプロセッサーです。
|
プロセッサはすべての主要な作業を処理します
|
コプロセッサは、グラフィックスや算術計算などの他のことだけを処理します。 |
論理演算と数学的計算を処理し、タスクを同期するために他のコンポーネントへの制御信号を生成します。 | タイプに基づいて、信号処理、数学演算、ネットワークおよび暗号化を実行します。 |
プロセッサーは、コンピューター全体の適切な機能を維持します。 | このプロセッサは、システムのパフォーマンスを向上させ、CPU から重大なタスクをオフロードするのに役立ちます。 |
利点
コプロセッサの利点には、次のようなものがあります。
- コプロセッサは、コア CPU と比較して、より専門的なタスクをより高速に処理します。
- これらのプロセッサは使いやすく、最も人気があります。
- CPU から特別な処理タスクを取得することで、マイクロプロセッサの負担を軽減し、より高速に実行できるようにします。
- このプロセッサは、命令セットを拡張したり、構成レジスタを提供したりすることで、CPU の処理機能を拡張するのに役立ちます。
短所
コプロセッサーの短所には、次のようなものがあります。
- コプロセッサーは、メモリーからの命令のリカバリー、命令の直接実行、メモリーの管理、I/O 操作の実行を行うことができません。
- コプロセッサの命令を回復し、コプロセッサに関連しない他のすべての操作を処理するのは、メイン プロセッサに依存します。
- これは、システムの主要なプロセッサではありません。
- コプロセッサは、メイン マイクロプロセッサなしでは動作しません。
アプリケーション
コプロセッサのアプリケーションには、次のものがあります。
- コプロセッサは、グラフィック表示処理や複雑な数学的計算など、より専門的なタスクを実行するために使用されます。
- コプロセッサは、単にコンピュータの CPU の負担を軽減するために使用されます。
- このプロセッサーは、コンピューターの CPU と並行して動作します。
- このプロセッサは、根、対数、三角関数などのメイン プロセッサと比較して、高レベルの数学演算をはるかに高速に実行します。
- コプロセッサは、プライマリ プロセッサの機能を強化します。
- コプロセッサは、信号処理、浮動小数点演算、文字列処理、グラフィックス、周辺機器を介した I/O インターフェース、暗号化などのさまざまな操作を実行します。
- これらのプロセッサは、マザーボードに接続されていた以前のデスクトップ コンピュータのスタンドアロン チップです。
- コプロセッサーは、全体的なパフォーマンスを向上させるために CPU タスクを処理します。
したがって、これは コプロセッサーの概要 – 作業とその応用。このプロセッサは、数学プロセッサとしても知られています。コプロセッサは、コア CPU と比較して、さまざまなタスクを非常に高速に実行します。したがって、コンピュータシステムの全体的な速度が向上します。このプロセッサは、ARM プロセッサに接続できます。追加したら、コア CPU の命令セットを増やすか、処理能力を高めるための構成可能なレジスタを含める必要があります。ここで質問です。マイクロプロセッサとは何ですか。