工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

マイクロプロセッサ

AlanTuringやJohnVon Neumannなどの初期のコンピュータサイエンスのパイオニアは、コンピューティングデバイスが本当に役立つためには、プログラムされた命令によって指示された特定の出力を生成できるだけでなく、データを書き込むこともできなければならないと仮定しました。メモリに保存し、後でそのデータを操作できるようにします。

プログラムステップと処理されたデータの両方が共通のメモリ「プール」に存在することになっていたため、ストアドプログラムコンピュータのラベルに取って代わられました。 。チューリングの理論上のマシンは、シーケンシャルアクセステープを利用しました。このテープは、制御回路が読み取るデータを保存し、制御回路がデータをテープに再書き込みしたり、テープを新しい位置に移動してさらにデータを読み取ったりします。

最近のコンピュータは、シーケンシャルアクセステープの代わりにランダムアクセスメモリデバイスを使用して、機能が優れていることを除いて、基本的に同じことを実現しています。

有用な例は、初期の自動工作機械制御技術の例です。 開ループと呼ばれます 、または場合によっては NC (数値制御)、これらの制御システムは、紙テープの穴としてプログラムされた指示に従うことにより、旋盤やミルなどの工作機械の動きを指示します。

テープは「読み取り」メカニズムを介して一方向に実行され、マシンは他の条件に関係なく、テープの指示に盲目的に従います。これらのデバイスは、工作機械のすべての動きを人間の機械工に指示させる負担を排除しましたが、有用性には限界がありました。

機械は現実の世界を知らず、テープに書かれた指示に従うだけで、金属の膨張やメカニズムの摩耗などの変化する条件を補償することはできませんでした。

また、テーププログラマーは、厄介な状況(作業の穴にドリルビットを挿入したままドリルビットを横方向に動かすように工作機械に指示するなど)を回避するために、マシンのプログラムの前の命令のシーケンスを鋭敏に認識する必要がありました。デバイスには、読み取り専用のテープ自体以外のメモリがなかったためです。

単純なテープリーダーから有限状態制御設計にアップグレードすると、デバイスは、(データビットの一部をアドレスビットにフィードバックすることで)すでに実行したことを追跡するために使用できる一種のメモリを提供しました。プログラマーは、工作機械が置かれている可能性のある「状態」(「クーラントオン」や工具位置など)を回路に記憶させることを決定できます。ただし、まだ改善の余地がありました。

究極のアプローチは、プログラムが簡単に呼び出して処理できる読み取り/書き込み(RAM)メモリへの新しいデータの書き込みを含む命令をプログラムに与えることです。このようにして、制御システムは、人間の機械工が将来の作業で参照できるようにメモや測定値をスクラッチパッドに書き留めるのとほぼ同じ方法で、実行したことやセンサーで検出可能なプロセスの変更を記録できます。これは、CNC、または閉ループ数値制御と呼ばれるものです。 。

エンジニアやコンピューター科学者は、人間の脳が環境の経験に応じて神経間接続の強さを適応させるのとほぼ同じように、独自のプログラミングを変更できるデジタルデバイスを構築する可能性を楽しみにしていました(そのため、繰り返し研究することで記憶の保持が向上します、行動は結果として生じるフィードバックによって変更されます。

コンピュータのプログラムがデータと同じ書き込み可能なメモリ「プール」に保存されている場合にのみ、これは実用的です。自己修正プログラムの概念は、依然としてコンピュータサイエンスの最先端にあると考えられていることに注意するのは興味深いことです。

ほとんどのコンピュータープログラミングは、かなり固定された一連の命令に依存しており、変更される情報はデータの個別のフィールドだけです。

ストアドプログラムアプローチを容易にするために、同じ原則の多くが適用されますが、単純なFSMよりもはるかに複雑なデバイスが必要です。まず、簡単にアクセスできる読み取り/書き込みメモリが必要です。これは簡単に実行できます。

スタティックまたはダイナミックRAMチップはうまく機能し、安価です。次に、メモリに格納されているデータを処理するための何らかの形式のロジックが必要です。標準およびブールの算術関数は非常に便利なので、前に説明したルックアップテーブルROMの例などの算術論理演算装置(ALU)を使用できます。

最後に、メモリ、ALU、および外界の間でデータが流れる方法と場所を制御するデバイスが必要です。このいわゆるコントロールユニット はこれまでで最も謎めいたパズルのピースであり、トライステートバッファ(バスとの間でデータを転送するため)と、特定のバイナリコードを実行する命令として解釈するデコードロジックで構成されています。

サンプル命令は、「メモリアドレス0010に格納されている番号とメモリアドレス1101に格納されている番号を加算する」、または「メモリアドレス0111のデータのパリティを決定する」のようになります。 ASCII標準でアルファベットの文字を表すために使用するバイナリコードの選択がほぼ任意であったのと同様に、コントロールユニットがデコードする命令を表すバイナリコードの選択はほぼ任意です。

ただし、ASCIIは現在、国際的に認められている標準ですが、コントロールユニットの命令コードはほとんどの場合メーカー固有です。

これらのコンポーネント(読み取り/書き込みメモリ、ALU、および制御ユニット)を組み合わせると、通常はプロセッサと呼ばれるデジタルデバイスになります。 。最小限のメモリが使用され、必要なすべてのコンポーネントが単一の集積回路に含まれている場合、それはマイクロプロセッサと呼ばれます。 。必要なバス制御サポート回路と組み合わせると、中央処理装置と呼ばれます。 、またはCPU。

CPUの動作は、いわゆるフェッチ/実行サイクルで要約されます。 。 フェッチ コントロールユニットがデコードするためにメモリから命令を読み取ることを意味します。 CPU内の小さなバイナリカウンター(プログラムカウンターとして知られています) または命令ポインタ )次の命令がメインメモリに格納されるアドレス値を保持します。

コントロールユニットはこのバイナリアドレス値をメインメモリのアドレスラインに送信し、メモリのデータ出力はコントロールユニットによって読み取られて別の保持レジスタに送信されます。フェッチされた命令がメモリからより多くのデータを読み取る必要がある場合(たとえば、2つの数値を加算する場合、メインメモリまたは他のソースから加算される両方の数値を読み取る必要があります)、コントロールユニットは要求されたデータとデータ出力をALUレジスタに転送します。

次に、コントロールユニットは、2つの数値で要求されたことを実行するようにALUに信号を送ることによって命令を実行し、その結果をアキュムレータと呼ばれる別のレジスタに転送します。 。これで命令が「フェッチ」および「実行」されたため、コントロールユニットはプログラムカウンターをインクリメントして次の命令をステップ実行し、サイクルが繰り返されます。

マイクロプロセッサ(CPU) -------------------------------------- | **プログラムカウンター** | | (に送信されるアドレス値をインクリメントします| |フェッチする外部メモリチップ| ==========>アドレスバス |次の命令)| (RAMメモリへ) -------------------------------------- | **コントロールユニット** | <=========>コントロールバス | (|から読み取った命令をデコードします(共有するすべてのデバイスに) |メモリ内のプログラム、フローを有効にする|アドレスおよび/またはデータバス。 | ALUとの間のデータの内部|すべてのバス通信を調停します- |レジスタ、および外部デバイス)|カチオン) -------------------------------------- | **算術論理演算装置(ALU)** | | (すべての数学を実行します| |計算とブール値| |関数)| -------------------------------------- | **レジスタ** | | (| <=========>データバス用の小さな読み取り/書き込みメモリ |命令コードの保持、| (RAMメモリなどから |エラーコード、ALUデータなど。 |外部デバイス) | 「アキュムレータ」を含む)| -------------------------------------- 

ご想像のとおり、簡単な指示でも実行するのは面倒なプロセスです。コントロールユニットが最も単純な数学的手順を完了するには、いくつかの手順が必要です。

これは、より単純な関数の繰り返し実行(「反復」)を伴う指数などの算術演算に特に当てはまります。フライトシミュレーターゲームのグラフィック表示用の情報を更新するためにCPU内で必要な膨大な量のステップを想像してみてください!

このような面倒なプロセスを実用的にする唯一のことは、マイクロプロセッサ回路がフェッチ/実行サイクルを高速で繰り返すことができるという事実です。

一部のマイクロプロセッサ設計では、デバイス内部の特別なROMメモリ(マイクロコードと呼ばれる)内に最小限のプログラムが格納されています。 )より複雑な数学演算を実行するために必要なすべてのサブステップを処理します。このように、タスクを実行するためにプログラムRAMから1つの命令を読み取るだけでよく、プログラマーはマイクロプロセッサーに毎分のステップを実行する方法を指示しようとする必要はありません。本質的に、そのプロセッサはプロセッサの内部にあります。プログラム内で実行されているプログラム。


産業技術

  1. ネットワークプロトコル
  2. なぜデジタルなのか?
  3. デジタルメモリの用語と概念
  4. 読み取り専用メモリ(ROM)
  5. オペアンプデータ
  6. Python データ型
  7. データ駆動型製造はここにあります
  8. C - データ型
  9. C - 組合
  10. C - メモリ管理
  11. データを機能させる