(57)【特許請求の範囲】
【請求項１】
汎用プロセッサと、制御用プロセッサと、ユーザ命令を格納する第１のメモリと、制御用データを格納する第２のメモリとを備え、
前記制御用プロセッサが、内部マイクロプログラムを格納する内部マイクロメモリ、及び外部マイクロプログラムを格納する外部マイクロメモリを有しており、これら両メモリから取り出したマイクロデータを出力するものである、プログラマブルコントローラにおいて、
前記制御用プロセッサは、
前記内部マイクロプログラム及び外部マイクロプログラムのうちいずれを用いるかについての情報が設定されたマイクロフラグと、
前記内部マイクロプログラム又は外部マイクロプログラムについてのマイクロアドレスを前記内部マイクロメモリ又は外部マイクロメモリに出力するアドレス生成部と、
前記内部マイクロメモリ及び外部マイクロメモリに対して、いずれか一方を使用側メモリとして用いるため、両者間の切換を行う切換スイッチと、
前記マイクロフラグに設定された情報に基づき前記切換スイッチに対して切換指令を出力するマイクロ切換部と、
を備えたことを特徴とするプログラマブルコントローラ。
【請求項２】
前記外部マイクロメモリが前記第１のメモリ内に形成されており、この第１のメモリは、その第１の領域に前記ユーザ命令を格納すると共に、その第２の領域に前記外部マイクロプログラムを格納しており、
さらに、前記制御用プロセッサは、前記第１のメモリ内の第１の領域と第２の領域との境界についてのアドレスを示すマイクロポインタを有しており、前記アドレス生成部からの前記外部マイクロプログラムについてのマイクロアドレスに、このマイクロポインタが示した境界アドレスを加算することにより、この外部マイクロプログラムの第１のメモリ内におけるアドレスを特定できるようにしたものである、
ことを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記制御用プロセッサは、サブルーチンコール命令を受けた後前記アドレス生成部からのマイクロアドレスデータ及び前記マイクロ切換部からの切換指令データをそれぞれ順次格納すると共に、格納したマイクロアドレスデータ及び切換指令データをリターン命令に基づき前記アドレス生成部及びマイクロ切換部にそれぞれ順次返送する第１及び第２のスタックを有し、
前記アドレス生成部及びマイクロ切換部は前記第１及び第２のスタックからそれぞれ返送されたデータに基づき、コール元に戻るためのマイクロアドレス及び切換指令を出力するものである、
ことを特徴とする請求項１又は２記載のプログラマブルコントローラ。
【請求項４】
前記制御用プロセッサは、
ブロック処理に係る演算を行うと共に、演算結果フラグを出力する演算部と、
前記演算部からの今回の演算結果フラグと前回以前の累積演算結果フラグとの論理条件に基づく累積演算結果フラグを出力する累積部と、
前記演算部からの演算結果フラグ又は前記累積部からの累積演算結果フラグのいずれかを切換スイッチを介して入力し、その記録結果を前記累積部に出力するレジスタと、
前記ブロック処理に係る演算に応じて前記レジスタの入力経路を指定するレジスタパス指定部と、
前記レジスタパス指定部の指定に基づき前記切換スイッチの切換を制御するレジスタパス切換部と、
を備えたことを特徴とする請求項１乃至３のいずれかに記載のプログラマブルコントローラ。
【請求項５】
前記ブロック処理が同一種類の演算の繰り返し処理である、
ことを特徴とする請求項４記載のプログラマブルコントローラ。
【請求項６】
前記同一種類の演算の繰り返し処理が拡張１６ビット演算の繰り返し処理であり、
前記演算部は、１６ビット演算手段及び３２ビット演算手段を有し、この１６ビット演算手段又は３２ビット演算手段のいずれかの演算結果又は演算結果フラグを切換スイッチを介して出力するものであり、
前記切換スイッチは、最後の演算を行う場合以外は３２ビット演算手段側に切り換えられているものである、
ことを特徴とする請求項５記載のプログラマブルコントローラ。
【請求項７】
前記制御用プロセッサは、
複数回の浮動小数点演算を行う場合に、入力した浮動小数点形式データを仮数及び指数に分け、仮数毎及び指数毎の演算を実行する浮動小数点演算部と、
前記浮動小数点演算部の仮数の演算につき前回以前の演算結果を記録するレジスタと、
前記浮動小数点演算部の仮数毎及び指数毎の演算結果を浮動小数点形式データに変換するデータ変換部と、
前記浮動小数点演算部が仮数の演算を行う場合に、今回の演算対象となる演算命令中の仮数と、前回以前の演算の演算結果により得られた仮数とを比較し、両者の一致・不一致を判別する比較部と、
を有しており、前記浮動小数点演算部は、前記比較部が一致と判別した場合は、前記レジスタから読み出した値を今回の演算対象の仮数の値として演算を実行し、また、前記比較部が不一致と判別した場合は、前記演算命令中の仮数の値をそのまま用いて演算を実行するものである、
ことを特徴とする請求項１乃至６のいずれかに記載のプログラマブルコントローラ。
【請求項８】
前記浮動小数点演算部は、
入力した指数に対して所定のバイアス値を加算することにより、浮動小数点形式データの小数点以下の切り捨てを行うためのシフト量を出力する指数部と、
前記指数部からのシフト量により所定のマスクデータをシフトするシフト部と、
前記浮動小数点形式データの仮数を入力すると共に、前記シフト部によりシフトされたマスクデータを入力し、両者の論理積を出力する仮数部と、
を有しており、前記入力した指数の値と、前記仮数部から出力された仮数の値とを組み合わせることにより、小数点以下切り捨て後の浮動小数点形式データを出力するものである、
ことを特徴とする請求項７記載のプログラマブルコントローラ。
【請求項９】
前記制御用プロセッサは、
データブロックを入力し、所定ビット数の領域毎にエンコードを行うエンコーダと、
前記エンコーダが行うエンコード回数をカウントするエンコードカウンタと、
前記エンコーダのエンコード結果と前記エンコードカウンタのカウント数とを加算する加算部と、
前記加算部からの加算結果を記録するエンコードレジスタと、
前記エンコーダのエンコード結果に応じて、前記加算部からの加算結果をそのままエンコードアドレスとして出力するか、あるいは前記エンコードレジスタに記録されている加算結果をエンコードアドレスとして出力するかのいずれかを選択する出力する出力選択部と、
を備えたことを特徴とする請求項１乃至８のいずれかに記載のプログラマブルコントローラ。
【請求項１０】
前記制御用プロセッサは、
ＢＣＤデータに対してＢＣＤ演算を行うＢＣＤ演算部と、
ＢＣＤデータ及びバイナリデータ間のデータ変換を行うＢＣＤ／バイナリ変換部と、
を備えており、
しかも、前記ＢＣＤ／バイナリ変換部は、前記ＢＣＤ演算部がＢＣＤ演算を行う場合に、前記ＢＣＤデータに対するＢＣＤ検証を行うＢＣＤ検証手段を有しており、
また、前記ＢＣＤ演算部は、前記ＢＣＤ／バイナリ変換部が前記データ変換を行う場合に、前記ＢＣＤデータ又はバイナリデータに対してＢＣＤ検証又はバイナリ検証を行うＢＣＤ／バイナリ検証手段を有している、
ことを特徴とする請求項１乃至９のいずれかに記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、種々の制御に用いられるプログラマブルコントローラに関するものである。
【０００２】
【従来の技術】
図１１は、例えば、プラント設備等における制御に用いられるプログラマブルコントローラの一般的な概略構成図である。この図に示すように、プログラマブルコントローラ１０１は、汎用プロセッサ１０２と、制御用プロセッサ１０３と、ユーザ命令を格納する第１のメモリ１０４と、制御用データを格納する第２のメモリ１０５とを備えている。
【０００３】
図１２は、図１１における制御用プロセッサ１０３の一部の構成すなわちマイクロメモリ付近の構成を示すブロック図である。制御用プロセッサ１０３に内蔵されている内部マイクロメモリ１０６（ＲＯＭ）はその内部に内部マイクロプログラム１０７を格納しており、内部マイクロデータが内部アドレス生成部１０８及び図示を省略してあるプロセス入出力部等に送られるようになっている。また、制御用プロセッサ１０３に外付けされている外部マイクロメモリ１０９（ＲＡＭ）はその内部に外部マイクロプログラム１１０を格納しており、外部マイクロデータが外部アドレス生成部１１１及び上記のプロセス入出力部等に送られるようになっている。
【０００４】
そして、ユーザ命令が内部アドレス生成部１０８及び外部アドレス生成部１１１の双方に出力されると、内部アドレス生成部１０８及び外部アドレス生成部１１１は、それぞれ内部アドレスデータ及び外部アドレスデータを内部マイクロメモリ１０６及び外部マイクロメモリ１０９に出力する。これにより、内部マイクロメモリ１０６及び外部マイクロメモリ１０９から内部マイクロデータ及び外部マイクロデータが取り出され、これらのデータが内部アドレス生成部１０８及び外部アドレス生成部１１１並びに図示を省略してあるプロセス入出力部等に送られる。内部アドレス生成部１０８及び外部アドレス生成部１１１は、この内部マイクロデータ及び外部マイクロデータにより次の内部アドレスデータ及び外部アドレスデータを生成して出力する。
【０００５】
図１３は、図１１における制御用プロセッサ１０３の一部の構成すなわち演算部付近の構成を示すブロック図である。この図に示すように、制御用プロセッサは、ビット演算部１１２と、論理演算部１１３と、固定小数点演算部１１５及び浮動小数点演算部１１６を有する算術演算部１１４とを備えている。そして、ビット演算部１１２は、１ビット入力データに対してビット演算を行い１ビット出力データを出力する。論理演算部１１３及び算術演算部１１４は、１６ビット又は３２ビットのいずれかの入力データに対してそれぞれ論理演算及び算術演算を行い１６ビット又は３２ビットの出力データを出力する。
【０００６】
【発明が解決しようとする課題】
ところで、図１２の構成において、内部マイクロメモリ１０６は、もともとその単体での動作は高速であるが容量が小さくデータ内容の変更が困難であるという短所を有している。そこで、容量が大きくデータ内容の変更が容易である外部マイクロメモリ１０９が設けられているが、この外部マイクロメモリ１０９は動作が低速であるという短所を有している。このような特性を有する内部マイクロメモリ１０６及び外部マイクロメモリ１０９からの内部マイクロデータ及び外部マイクロデータはプログラム内容に応じて相互に切り換えられるが、この切り換えは制御用プロセッサ外部においてソフトウエア処理によって行われていたため充分な動作速度を得ることができなかった。
【０００７】
また、図１３に示した構成の場合、各演算部が処理することのできる演算種類やビット数などが限定されているため、効率的な演算処理を行うことができなかった。例えば、同様の演算を繰り返し行う場合等も演算毎に複数の演算結果フラグをその都度チェックするようになっているため演算速度を一定以上速くするのが困難であった。
【０００８】
本発明は上記事情に鑑みてなされたものであり、内部マイクロデータと外部マイクロデータとの切換をソフトウエア処理によらずに行うことができ、また、各演算の特性に応じて効率的な演算動作を行うことが可能な制御用プロセッサを備えたプログラマブルコントローラを提供することを目的としている。
【０００９】
【課題を解決するための手段】
上記課題を解決するための手段として請求項１記載の発明は、汎用プロセッサと、制御用プロセッサと、ユーザ命令を格納する第１のメモリと、制御用データを格納する第２のメモリとを備え、前記制御用プロセッサが、内部マイクロプログラムを格納する内部マイクロメモリ、及び外部マイクロプログラムを格納する外部マイクロメモリを有しており、これら両メモリから取り出したマイクロデータを出力するものである、プログラマブルコントローラにおいて、前記制御用プロセッサは、前記内部マイクロプログラム及び外部マイクロプログラムのうちいずれを用いるかについての情報が設定されたマイクロフラグと、前記内部マイクロプログラム又は外部マイクロプログラムについてのマイクロアドレスを前記内部マイクロメモリ又は外部マイクロメモリに出力するアドレス生成部と、前記内部マイクロメモリ及び外部マイクロメモリに対して、いずれか一方を使用側メモリとして用いるため、両者間の切換を行う切換スイッチと、前記マイクロフラグに設定された情報に基づき前記切換スイッチに対して切換指令を出力するマイクロ切換部と、を備えたことを特徴とする。
【００１０】
請求項２記載の発明は、請求項１記載の発明において、前記外部マイクロメモリが前記第１のメモリ内に形成されており、この第１のメモリは、その第１の領域に前記ユーザ命令を格納すると共に、その第２の領域に前記外部マイクロプログラムを格納しており、さらに、前記制御用プロセッサは、前記第１のメモリ内の第１の領域と第２の領域との境界についてのアドレスを示すマイクロポインタを有しており、前記アドレス生成部からの前記外部マイクロプログラムについてのマイクロアドレスに、このマイクロポインタが示した境界アドレスを加算することにより、この外部マイクロプログラムの第１のメモリ内におけるアドレスを特定できるようにしたものである、ことを特徴とする。
【００１１】
請求項３記載の発明は、請求項１又は２記載の発明において、前記制御用プロセッサは、サブルーチンコール命令を受けた後前記アドレス生成部からのマイクロアドレスデータ及び前記マイクロ切換部からの切換指令データをそれぞれ順次格納すると共に、格納したマイクロアドレスデータ及び切換指令データをリターン命令に基づき前記アドレス生成部及びマイクロ切換部にそれぞれ順次返送する第１及び第２のスタックを有し、前記アドレス生成部及びマイクロ切換部は前記第１及び第２のスタックからそれぞれ返送されたデータに基づき、コール元に戻るためのマイクロアドレス及び切換指令を出力するものである、ことを特徴とする。
【００１２】
請求項４記載の発明は、請求項１乃至３のいずれかに記載の発明において、前記制御用プロセッサは、  ブロック処理に係る演算を行うと共に、演算結果フラグを出力する演算部と、前記演算部からの今回の演算結果フラグと前回以前の累積演算結果フラグとの論理条件に基づく累積演算結果フラグを出力する累積部と、前記演算部からの演算結果フラグ又は前記累積部からの累積演算結果フラグのいずれかを切換スイッチを介して入力し、その記録結果を前記累積部に出力するレジスタと、前記ブロック処理に係る演算に応じて前記レジスタの入力経路を指定するレジスタパス指定部と、前記レジスタパス指定部の指定に基づき前記切換スイッチの切換を制御するレジスタパス切換部と、を備えたことを特徴とする。
【００１３】
請求項５記載の発明は、請求項４記載の発明において、前記ブロック処理が同一種類の演算の繰り返し処理である、ことを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の発明において、前記同一種類の演算の繰り返し処理が拡張１６ビット演算の繰り返し処理であり、前記演算部は、１６ビット演算手段及び３２ビット演算手段を有し、この１６ビット演算手段又は３２ビット演算手段のいずれかの演算結果又は演算結果フラグを切換スイッチを介して出力するものであり、前記切換スイッチは、最後の演算を行う場合以外は３２ビット演算手段側に切り換えられているものである、ことを特徴とする。
【００１５】
請求項７記載の発明は、請求項１乃至６のいずれかに記載のプログラマブルコントローラにおいて、前記制御用プロセッサは、複数回の浮動小数点演算を行う場合に、入力した浮動小数点形式データを仮数及び指数に分け、仮数毎及び指数毎の演算を実行する浮動小数点演算部と、前記浮動小数点演算部の仮数の演算につき前回以前の演算結果を記録するレジスタと、前記浮動小数点演算部の仮数毎及び指数毎の演算結果を浮動小数点形式データに変換するデータ変換部と、前記浮動小数点演算部が仮数の演算を行う場合に、今回の演算対象となる演算命令中の仮数と、前回以前の演算の演算結果により得られた仮数とを比較し、両者の一致・不一致を判別する比較部と、を有しており、前記浮動小数点演算部は、前記比較部が一致と判別した場合は、前記レジスタから読み出した値を今回の演算対象の仮数の値として演算を実行し、また、前記比較部が不一致と判別した場合は、前記演算命令中の仮数の値をそのまま用いて演算を実行するものである、ことを特徴とする。
【００１６】
請求項８記載の発明は、請求項７記載の発明において、前記浮動小数点演算部は、入力した指数に対して所定のバイアス値を加算することにより、浮動小数点形式データの小数点以下の切り捨てを行うためのシフト量を出力する指数部と、前記指数部からのシフト量により所定のマスクデータをシフトするシフト部と、前記浮動小数点形式データの仮数を入力すると共に、前記シフト部によりシフトされたマスクデータを入力し、両者の論理積を出力する仮数部と、を有しており、前記入力した指数の値と、前記仮数部から出力された仮数の値とを組み合わせることにより、小数点以下切り捨て後の浮動小数点形式データを出力するものである、ことを特徴とする。
【００１７】
請求項９記載の発明は、請求項１乃至８のいずれかに記載の発明において、前記制御用プロセッサは、データブロックを入力し、所定ビット数の領域毎にエンコードを行うエンコーダと、前記エンコーダが行うエンコード回数をカウントするエンコードカウンタと、前記エンコーダのエンコード結果と前記エンコードカウンタのカウント数とを加算する加算部と、前記加算部からの加算結果を記録するエンコードレジスタと、前記エンコーダのエンコード結果に応じて、前記加算部からの加算結果をそのままエンコードアドレスとして出力するか、あるいは前記エンコードレジスタに記録されている加算結果をエンコードアドレスとして出力するかのいずれかを選択する出力する出力選択部と、を備えたことを特徴とする。
【００１８】
請求項１０記載の発明は、請求項１乃至９のいずれかに記載の発明において、前記制御用プロセッサは、ＢＣＤデータに対してＢＣＤ演算を行うＢＣＤ演算部と、ＢＣＤデータ及びバイナリデータ間のデータ変換を行うＢＣＤ／バイナリ変換部と、を備えており、しかも、前記ＢＣＤ／バイナリ変換部は、前記ＢＣＤ演算部がＢＣＤ演算を行う場合に、前記ＢＣＤデータに対するＢＣＤ検証を行うＢＣＤ検証手段を有しており、また、前記ＢＣＤ演算部は、前記ＢＣＤ／バイナリ変換部が前記データ変換を行う場合に、前記ＢＣＤデータ又はバイナリデータに対してＢＣＤ検証又はバイナリ検証を行うＢＣＤ／バイナリ検証手段を有している、ことを特徴とする。
【００１９】
【発明の実施の形態】
以下、本発明の実施形態を図に基づき説明する。図１は、第１の実施形態に係る制御用プロセッサの一部の構成図である。この図において、内部マイクロプログラム２を格納している内部マイクロメモリ１と、外部マイクロプログラム４を格納している外部マイクロメモリ３との間には切換スイッチ５ａ，５ｂが設けられている。そして、内部マイクロメモリ１及び外部マイクロメモリ３に対するアドレスデータの出力を行うアドレス生成部６と、切換スイッチ５ａ，５ｂの切換制御を行うマイクロ切換部７とにユーザ命令が入力されるようになっており、また、マイクロ切換部７にはマイクロフラグ８からのフラグ信号も入力されるようになっている。このマイクロフラグ８からのフラグ信号は、内部マイクロプログラム２又は外部マイクロプログラム４のうちいずれを用いるかについての情報を示すものであり、ユーザが設定可能なものである。
【００２０】
次に、上記のように構成される図１の動作につき説明する。マイクロフラグ８は、当初、ユーザによってオフに設定されており、この場合には内部マイクロプログラム２を用いるようになっているものとする。ユーザ命令がアドレス生成部６及びマイクロ切換部７に入力されると、マイクロ切換部７はマイクロフラグ８からのフラグ信号がオフであることを読み取り、用いるべきプログラムが内部マイクロプログラム２であると判別する。そして、マイクロ切換部７は、切換スイッチ５ａ，５ｂに対して切換指令を出力し、切換スイッチ５ａ，５ｂの接点を内部マイクロメモリ１側に切り換える。
【００２１】
内部マイクロメモリ１に格納されている内部マイクロプログラム２のマイクロデータは、切換スイッチ５ｂを介してプロセス入出力装置（図示せず）に出力されると共に、アドレス生成部６及びマイクロ切換部７に出力される。アドレス生成部６は、ユーザ命令を入力すると、切換スイッチ５ｂを介して入力したマイクロデータに基づき次の内部アドレスデータを、切換スイッチ５ａを介して内部マイクロメモリ１に出力すると共に、マイクロフラグ８を介してマイクロ切換部７に出力する。マイクロ切換部７は、このマイクロフラグ８からのフラグ信号又は内部マイクロプログラム２のマイクロデータの指示に従って切換スイッチ５ａ，５ｂに対して切換指令を出力してその切換動作を制御する。
【００２２】
本実施形態では、外部マイクロメモリ３の外部マイクロプログラム４は内部マイクロメモリ１の内部マイクロプログラム２を補完する予備的なものとして用いられている。すなわち、内部マイクロプログラム２にエラーが発生したり、あるいは内部マイクロプログラム２の内容を修正したりする場合等には、ユーザはマイクロフラグ８のフラグ信号をオンに切り換えることができる。これにより、切換スイッチ５ａ，５ｂの接点は外部マイクロメモリ３側に切り換わり、外部マイクロプログラム４のマイクロデータが、切換スイッチ５ｂを介して、プロセス入出力装置（図示せず）に出力されると共に、アドレス生成部６及びマイクロ切換部７に出力される。
【００２３】
上記した図１の構成によれば、内部マイクロメモリ１と外部マイクロメモリ３との切換は制御用プロセッサ内の切換スイッチ５ａ，５ｂによって行うことができ、制御用プロセッサ外部のハードウエアやソフトウエア処理を用いる必要がないため、従来の構成に比べて動作速度を速くすることができる。また、従来は、内部マイクロメモリ及び外部マイクロメモリに対応して内部アドレス生成部及び外部アドレス生成部をを設けていたが、図１の構成では１つのアドレス生成部６が内部マイクロメモリ１及び外部マイクロメモリ３の双方のアドレスデータを生成するようになっている。したがって、図１の構成はリソース資源について節約が図られた構成となっている。
【００２４】
図２は、第２の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、外部マイクロプログラムの一部を第１のメモリ内に格納することとし、メモリ容量の節約すなわちリソース資源の節約を一層図ったものである。外部マイクロプログラムは、その全てが必ずしも常に用いられる訳ではなく、中には殆ど用いられないデータも含まれている。そこで、このように殆ど用いられる可能性が考えられないデータについては削除することとし、用いられる可能性の高いデータのみを、本来はユーザ命令データを格納する第１のメモリに格納できるようにしたものである。
【００２５】
図２において、第１のメモリ９には第１の領域９ａと第２の領域９ｂとが形成されており、第１の領域９ａにはユーザ命令データ１０が格納され、第２の領域９ｂには外部マイクロプログラム１１が格納されている。この外部マイクロプログラム１１は、図１における外部マイクロプログラム４の一部である。そして、この実施形態の制御用プロセッサは、第１の領域９ａと第２の領域９ｂとの間の境界９ｃのアドレスを示すマイクロポインタ１２を有している。そして、加算部１３は、このマイクロポインタ１２からのアドレスデータと、図１に示したアドレス生成部６からの外部アドレスデータとを加算したアドレスデータを外部マイクロプログラム１１に出力する。この加算されたアドレスデータは、外部マイクロプログラム１１のマイクロデータの第１のメモリ９内におけるアドレスを示している。外部マイクロプログラム１１は、この加算されたアドレスデータに基づき次の外部マイクロデータを、アドレス生成部６やマイクロ切換部７、あるいは図示を省略してあるプロセス入出力装置等に出力するようになっている。
【００２６】
このように、図２の構成では、図１における外部マイクロメモリ３の機能を第１のメモリ９の第１の領域９ａが代替する構成となっている。したがって、図１において外部マイクロメモリ３に費やされていたメモリ容量を、省略するかあるいは他の用途に振り分けることができる。したがって、図１の構成に比べてリソースを一層節約した構成とすることができる。
【００２７】
図３は、第３の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態では、第１のスタック１４及び第２のスタック１５が追加されており、サブルーチンコール命令があった場合に１つのリターン命令により簡単にコール元に戻れる構成としてある。
【００２８】
すなわち、いま、サブルーチンコール命令が発せられたとすると、第１のスタック１４及び第２のスタック１５は、それぞれこのサブルーチンコール命令を受けて、アドレス生成部６からのアドレスデータ及びマイクロ切換部７からの切換指令を逐次入力して、これを蓄積する。そして、サブルーチンが終了するとリターン命令が発せられるが、第１のスタック１４及び第２のスタック１５は、それぞれこのリターン命令を受けて、それまで蓄積していたデータを入力したときと逆の順番でアドレス生成部６及びマイクロ切換部７に返送する。アドレス生成部６は、この返送されたデータに基づきマイクロアドレスを内部マイクロメモリ１又は外部マイクロメモリ３に出力し、また、マイクロ切換部７も、この返送されたデータに基づき切換指令を切換スイッチ５ａ，５ｂに出力する。したがって、内部マイクロプログラム２と外部マイクロプログラム４との間でジャンプするサブルーチンコール命令があった場合にも、１つのリターン命令で簡単に且つ確実にコール元に戻ることができる。
【００２９】
図４は、第４の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、複数の演算処理を行う場合に、各演算毎に行っていた演算結果フラグのチェックを一度で済ますことができるようにしたものである。
【００３０】
図４に示すように、マイクロプログラム１６にはブロック処理部分１７が含まれており、ブロック処理開始命令があると次のステップからブロック処理に入り、ブロック処理終了命令があると次のステップからブロック処理を抜けるようになっている。ブロック処理部分１７は複数の演算１〜ｍを含んでおり、演算部１８は、この複数の演算１〜ｍを実行するようになっている。そして、演算部１８は、この演算を実行すると演算結果及び演算結果フラグを出力するようになっており、演算結果フラグについては、累積部１９に、又は切換スイッチ２０を介してレジスタ２１に出力するようになっている。
【００３１】
演算部１８が出力する演算結果フラグとしては、例えば、「Ｃ：キャリー」、「Ｖ：オーバーフロー」、「Ｇ：グレート（＞０）」、「Ｌ：レス（＜０）」、「Ｚ：ゼロ（＝０）」、「Ｓ：サイン」等の複数種類があり、レジスタ２１はそれぞれの種類の演算結果フラグを記録するようになっている。なお、演算結果については、図示を省略してある別のレジスタに出力され記録されるようになっている。
【００３２】
累積部１９は、演算部１８からの演算結果フラグすなわち今回の演算についての演算結果フラグと、レジスタ２１に記録されている前回以前の累積演算結果フラグとの論理和をとり、その結果を切換スイッチ２０を介してレジスタ２１に出力するようになっている。
【００３３】
レジスタパス指定部２２は、演算１〜ｍの実行時におけるレジスタパスを指定するものである。このレジスタパスには、「スルー」及び「累積」の２種類があり、「スルー」とは演算部１８からの演算結果フラグを累積部１９を経由せず直接にレジスタ２１が入力する経路のことをいい、「累積」とは累積部１９からの累積演算結果フラグをレジスタ２１が入力する経路のことをいう。そして、レジスタパス切換部２３は、レジスタパス指定部２２の指定に基づき、切換スイッチ２０の切換動作を制御するようになっている。
【００３４】
次に、図４の動作につき説明する。ブロック処理開始命令が発せられると、演算部１８はブロック処理部分１７の演算１〜ｍの演算を開始し、まず演算１についての演算結果フラグを出力する。このときレジスタパス指定部２２はレジスタ２１の入力経路の指定を行うが、第１回目の演算１については必ず「スルー」を指定し、それ以降の演算については「累積」を指定するようにする。この指定を受けて、レジスタパス切換部２３は切換スイッチ２０の接点を演算部１８側に切り換える。したがって、演算部１８からの第１回目の演算結果フラグは累積部１９を介さずにレジスタ２１に記録される。
【００３５】
次いで、演算部１８は第２回目の演算２についての演算結果フラグを出力するが、このときレジスタパス指定部２２は「累積」を指定し、この指定に基づきレジスタパス切換部２３は切換スイッチ２０の接点を累積部１９側に切り換える。そして、累積部１９は、演算部１８からの第２回目の演算２についての演算結果フラグを入力すると共に、レジスタ２１から第１回目の演算１についての演算結果フラグを入力し、両者の論理和を取った累積演算結果フラグがレジスタ２１に入力される。同様にして、第３回目の演算３についての演算結果フラグと、第２回目以前の演算１，２についての累積演算結果フラグとの論理和をとった累積演算結果フラグがレジスタ２１に入力される。
【００３６】
いま、例えば、第２回目の演算２につきいずれかの種類の演算結果フラグがエラーを示すものであったとすると、第３回目の演算３についての演算結果フラグと、第２回目以前の演算１，２についての累積演算結果フラグとの論理和をとった累積演算結果フラグも必ずエラーを示すフラグとなり、このエラーを示すフラグは最終回の演算ｍまで持ち越されるはずである。したがって、制御用プロセッサは各演算毎にその都度演算結果フラグをチェックする必要はなく、最終回の演算ｍの終了時における累積部１９の累積演算結果フラグのみをチェックすればよい。そして、既述したように、演算１〜ｍの演算結果は図示を省略してある別のレジスタに記録されているが、最終回の演算終了時の累積演算結果フラグがエラーを示すものである場合には、このレジスタに記録された演算結果はキャンセルされることになる。
【００３７】
このように、図４の構成によれば、ブロック処理中の各演算毎に演算結果フラグのチェックを行う必要はなく、最後の演算終了時にのみフラグチェックを行うだけでブロック処理途中で発生したエラーを検知することができる。したがって、マイクロプログラムのステップ数を低減することが可能になる。
【００３８】
図５は、第５の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、第４の実施形態におけるブロック処理が同一種類の演算の繰り返し処理である場合を示しており、基本的には第４の実施形態の構成とほぼ同様のものである。
【００３９】
すなわち、図５において、マイクロプログラム１６Ａには繰り返し処理部分１７Ａが含まれており、この繰り返し処理部分１７Ａは同一種類の演算１〜ｎを含んでいる。「同一種類」とは、例えば、演算１〜ｎが全て加算式、あるいは減算式等である場合を指している。これに対し、第４の実施形態における演算１〜ｍは、加算式の他に減算式や乗算式あるいはその他の演算式が含まれている場合を想定している。
【００４０】
この第５の実施形態によれば、繰り返し処理中の演算毎にフラグチェックを行う必要がなく、繰り返し処理の最後にのみフラグチェックを行うことにより、処理途中に発生したエラーを検知することができ、第４の実施形態の場合と同様に、マイクロプログラムのステップ数を低減することができる。
【００４１】
図６は、第６の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、第５の実施形態における繰り返し処理中に拡張１６ビット演算が含まれている場合に対処できるようにしたものである。つまり、制御用プロセッサの演算部は、通常、１６ビットのデータに対して演算を実行するが、演算途中で１６ビットを超えてしまうことがある。しかし、最終的な演算結果が１６ビットのデータであったとしても、演算途中で１６ビットを超えてしまうと、この演算結果はエラーと判別されてしまうことになる。そこで、この実施形態では、複数の繰り返し演算処理を行う場合に、最後の演算のみ１６ビット演算を実行し、それまでの演算は３２ビット演算を実行する構成としてある。
【００４２】
図６において、マイクロプログラム１６Ｂには繰り返し処理部分１７Ｂが含まれており、繰り返し処理部分Ｂには複数の拡張１６ビット演算１〜ｎが含まれている。演算部１８は、１６ビット演算手段２４及び３２ビット演算手段２５の双方を有しており、これらの演算結果は切換スイッチ２６により切り換えられるようになっている。また、演算手段指定部２７は、拡張１６ビット演算１〜ｎの実行時における演算手段を指定するようになっており、演算手段切換部２８は、この指定に基づいて切換スイッチ２６の切換動作を制御するようになっている。
【００４３】
次に、図６の動作につき説明する。繰り返し処理開始命令が発せられると、演算部１８は拡張１６ビット演算１〜ｎの演算を開始するが、この時演算手段指定部２７は、１６ビット演算手段２４又は３２ビット演算手段２５のうちいずれを用いるかについての指定を行う。つまり、拡張１６ビット演算１〜ｎ−１の実行については３２ビット演算手段２５を指定し、最後の拡張１６ビット演算ｎの実行については１６ビット演算手段２４を指定する。演算手段切換部２８は、この指定に基づき、拡張１６ビット演算１〜ｎ−１の実行時には切換スイッチ２６の接点を３２ビット演算手段２５側に切り換え、また、拡張１６ビット演算ｎの実行時には切換スイッチ２６の接点を１６ビット演算手段２４側に切り換える。このような構成によれば、拡張１６ビット演算１〜ｎ−１の実行中に、演算途中に１６ビットを超えるが最終的には１６ビットに収束するデータの演算を行ってもエラーとならず、正確に演算を行うことができる。
【００４４】
図７は、第７の実施形態に係る制御用プロセッサの一部の構成図である。一般に、浮動小数点演算を行う場合は、浮動小数点形式のデータを仮数及び指数に分けて仮数毎及び指数毎の演算を行い、演算後の仮数及び指数を組み合わせて再度浮動小数点形式データに変換するが、この時の仮数の演算結果は演算命令中の仮数の値と若干異なるものとなる。例えば、３２ビットの浮動小数点形式データを演算する場合、１ビットの符号（プラス又はマイナスを示す符号）、８ビットの指数、及び２３ビットの仮数に分けられるが、仮数の演算を行う場合は２３ビットから３２ビットに拡張して演算を行うようになっているため、この仮数の演算結果は演算命令中の仮数の値よりも精度の高いものとなっている。それにもかかわらず、次回以降の演算でこの演算結果を使用せず、そのまま演算命令中の仮数の値を使用して演算を実行したのでは演算精度を一定以上向上させることは困難となる。この実施形態は、このような事情を考慮し、浮動小数点演算の演算精度を向上させるようにしたものである。
【００４５】
図７において、マイクロプログラム１６Ｃにはブロック処理部分１７Ｃが含まれており、ブロック処理部分Ｃには複数の浮動小数点演算１〜ｎが含まれている。これらの演算データは、切換スイッチ２９の一方の入力端子及び接点を介し浮動小数点形式データで浮動小数点演算部３０に入力されるようになっている。浮動小数点演算部３０は、この浮動小数点形式データを仮数及び指数に分けて演算を行い、その演算結果をレジスタ３１及びデータ変換部３２に出力するようになっている。レジスタ３１に記録されたデータは切換スイッチ２９の他方の入力端子及び接点を介して浮動小数点演算部３０に入力されるようになっている。データ変換部３２は、浮動小数点演算部３０から送られてくる、符号、指数、及び仮数についての各データを組み合わせることにより、浮動小数点形式データにデータ変換するようになっている。そして、比較部３３は、浮動小数点演算部３０が浮動小数点演算１〜ｎのそれぞれを実行する場合、今回の演算の演算命令中の仮数と、前回以前の演算の演算結果との一致・不一致を判別し、その判別結果を選択部３４に出力するようになっている。選択部３４は、この判別結果を入力し、一致の場合には切換スイッチ２９の接点を他方の入力端子側（レジスタ３１側）に切り換え、また、不一致の場合には切換スイッチ２９の接点を一方の入力端子側（ブロック処理側）に切り換えるようになっている。
【００４６】
次に、図７の動作につき説明する。例えば、浮動小数点演算１，２，３の仮数についての演算内容が（１）式〜（３）式に示すものであったとする。
【００４７】
Ａ＋Ｂ＝Ｃ  …（１）
Ｃ＋Ｄ＝Ｅ  …（２）
Ｆ＋Ｇ＝Ｈ  …（３）
浮動小数点演算部３０は、上記の式の左辺を演算命令として入力して演算を実行し、右辺を演算結果として出力する。（１）式の右辺（演算結果）及び（２）式の左辺第１項（演算命令）は共に同一の符号Ｃで表しているが、実際には上述したように仮数の演算は３２ビットに拡張して行われるため（１）式の右辺の値はＣ1となっており、このＣ1の値が演算結果としてレジスタ３１に記録されている。
【００４８】
一方、比較部３３は、マイクロプログラム１６Ｃのブロック処理部分１７Ｃを読み出して（１）式の右辺と（２）式の左辺第１項とが一致すべきものであることを判別しており、その判別結果を選択部３４に出力する。そして、浮動小数点演算部３０が（２）式を演算する場合には、（２）式の左辺第１項をＣ1にするべく選択部３４が切換スイッチ２９の接点を他方の入力端子側（図示する側）に切り換える。これにより浮動小数点演算部３０は（２）式の演算としてＣ1＋Ｄの演算を実行し、より精度の高い演算結果を得ることができる。
【００４９】
また、浮動小数点演算部３０が（３）式を演算する場合、比較部３３は、（３）式の左辺第１項及び第２項のいずれも、（１）式及び（２）式の演算結果ではないことすなわち不一致を判別しており、その判別結果を選択部３４に出力する。したがって、この場合は切換スイッチ２９の接点は常に一方の入力端子側（図示と反対側）となっており、浮動小数点演算部３０はマイクロプログラム１６Ｃ中の演算命令の値Ｆ，Ｇをそのまま用いて演算を実行する。
【００５０】
このように第７の実施形態では、ビット数を拡張して演算した仮数の演算結果を、次の演算実行時に使用する構成としたので、精度の高い浮動小数点演算を行うことが可能となる。
【００５１】
図８は、第８の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、第７の実施形態における浮動小数点演算部３０が小数点以下の切り捨て処理を行う場合に、固定小数点形式データに変換することなく、浮動小数点形式データのままで切り捨てすることができる構成としたものである。
【００５２】
図８において、浮動小数点演算部３０は、加算手段３６を内部に有する指数部３５と、マスクデータのシフトを行うシフト部３７と、論理積手段３９を内部に有する仮数部３８とを備えている。
【００５３】
なお、マスクデータとは全てのビットが「１」となっているデータのことである。このマスクデータを、指数の値に応じてシフトし、仮数と、シフトしたマスクデータとの論理積をとることにより、小数点以下の切り捨てを行った仮数を得ることができる。つまり、仮数と、全てが「１」のマスクデータとの論理積をとった場合には、この仮数の値は何ら変化しないが、このマスクデータを指数の値に応じてシフトし、途中から「０」の続くマスクデータとした場合には、上記の論理積の結果は小数点以下切り捨て後の仮数の値となる。
【００５４】
次に、図８の動作につき説明する。浮動小数点演算部３０に入力した浮動小数点形式データは、符号、指数、及び仮数に分けられて処理される。指数部３５の加算手段３６は、入力した指数と、小数点以下の切り捨てを行うための値であって指数の値に応じて決まる固定のバイアス値とを加算し、その加算結果（バイアス値はマイナスの符号を持つものであるため、加算結果ではなく減算結果ということもできる。）をシフト部３７に出力する。
【００５５】
シフト部３７は、加算手段３６の加算結果に基づき、全てが「１」のマスクデータをシフトし、このマスクデータを途中から「０」の続くマスクデータとする。仮数部３８の論理積手段３９は、入力した仮数と、シフトされたマスクデータとの論理積を演算する。この論理積手段３９の演算結果は、小数点以下の切り捨てが行われた後の仮数の値である。そして、浮動小数点演算部３０は、この切り捨てが行われた仮数と、指数と、符号とを組み合わせて浮動小数点形式データを作成し、これを出力する。
【００５６】
このように、この第８の実施形態によれば、浮動小数点形式データの小数点以下を切り捨てる機能をハードウエアによって実現することができる。そして、浮動小数点形式データを固定小数点形式データに変換することなく、浮動小数点形式データのままで切り捨て処理を行うことができるので、処理速度が高速となる。また、本実施形態によれば、扱うことのできる浮動小数点形式データの値の大きさには特に制限が付されることはない。
【００５７】
図９は、第９の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、ビット長の長いデータに対するエンコードを容易に行えるようにしたものである。なお、この場合の「エンコード」とは、入力データブロック中における或る特定のデータの位置を見つけることであり、より具体的には、入力データブロック中における最上位の「１」データのアドレスを見つけることである。
【００５８】
図９において、３２ビット以上の長いビット長を有するデータブロックがエンコーダ４０に入力され（データブロックは最下位側から入力される）、エンコーダ４０は３２ビット毎に入力したデータブロックに対してエンコードを行うようになっている。そして、エンコードカウンタ４１は、このエンコーダ４０のエンコード回数をカウントするようになっている。エンコーダ４０の出力とエンコードカウンタ４１の出力とは加算部４２により加算され、その加算結果はエンコードレジスタ４３に記録された後、切換スイッチ４４を介してエンコードアドレスとして出力されるか、あるいはそのまま切換スイッチ４４を介して出力されるようになっている。出力選択部４５は、エンコーダ４０からのエンコード結果の入力に基づき切換スイッチ４４の切り換えを制御するようになっている。切換スイッチ４４の接点は、通常、ａ側に位置しており、エンコード結果が「１」データが見つからないものである場合に、出力選択部４５によりｂ側に切り換えられるようになっている。
【００５９】
次に、図９の動作につき説明する。エンコーダ４０は、長いビット長のデータブロックを入力すると、３２ビット毎にエンコードを実行し、「１」データの検出を行う。いま、第１回目のエンコードによって「１」データが見つかったとすると、加算部４２は、エンコーダ４０からのデータ（最初の３２ビット内での「１」データの位置）とエンコードカウンタ４１からのデータ（エンコーダ４０のエンコード実行回数）とを加算する。このとき、切換スイッチ４４の接点はａ側となっており、この加算結果はエンコードアドレスとして出力されると共に、エンコードレジスタ４３に記録される。
【００６０】
次いで、エンコーダ４０が第２回目のエンコードを行い、この第２回目では「１」データが見つからなかったものとする。加算部４２は第１回目と同様にエンコーダ４０からのデータ（「１」データが見つからなかったのでゼロである）とエンコードカウンタ４１からのデータとを加算し、この加算結果をエンコードレジスタ４３に記録する。このとき、出力選択部４５は、第２回目のエンコード結果を受けて切換スイッチ４４の接点をｂ側に切り換えており、エンコードレジスタ４３から第１回目の加算結果がエンコードアドレスとして出力される。つまり、第２回目のエンコード終了時点においても第１回目の加算結果がエンコードアドレスとして出力されるということは、第１回目のエンコードによって見つかった「１」データがこれまでのところ最上位のデータであるということを示している。そして、エンコードレジスタ４３から第１回目の加算結果がエンコードアドレスとして出力された後、切換スイッチ４４の接点はａ側に戻る。
【００６１】
次いで、エンコーダ４０が第３回目のエンコードを行い、「１」データが見つかったとすると、加算部４２からの加算結果が、切換スイッチ４４の接点（ａ側に戻っている）を介しエンコードアドレスとして出力される。つまり、第３回目のエンコード終了時点では、第３回目のエンコードで見つかった「１」データが最上位のデータということになる。このように、各回のエンコード終了時点において、その時点までにおける最上位の「１」データの位置がエンコードアドレスとして常に切換スイッチ４４から出力される。そして、エンコーダ４０へのデータブロックの入力が停止された時点において、切換スイッチ４４から出力されたエンコードアドレスが、データブロック中の最上位の「１」データの位置を示す最終的なデータとなる。
【００６２】
このように、第９の実施形態によれば、エンコーダ４０が複数回のエンコードを実行することにより、最上位の「１」データについてのエンコードアドレスを容易に見つけることができる。つまり、３２ビットよりも長いビット長を有するデータブロックに対するエンコード処理の機能をハードウエア上で簡単に実現することができる。
【００６３】
図１０は、第１０の実施形態に係る制御用プロセッサの一部の構成図である。この実施形態は、ＢＣＤ演算を行う場合、及びＢＣＤデータとバイナリデータとの間のデータ変換を行う場合の処理時間を短縮できるようにしたものである。
【００６４】
図１０において、ＢＣＤ演算部４６はＢＣＤ演算手段４７及びＢＣＤ／バイナリ検証手段４８を有しており、ＢＣＤ／バイナリ変換部４９はＢＣＤ／バイナリ変換手段５０及びＢＣＤ検証手段５１を有している。なお、ＢＣＤ検証とは、ＢＣＤデータが「０」〜「９」の範囲を超えていないかどうかを検証することであり、ＢＣＤ／バイナリ検証とは、ＢＣＤデータ又はバイナリデータが所定のリミット値を超えていないかどうかを検証することである。
【００６５】
従来は、ＢＣＤ検証手段５１はＢＣＤ演算部４６内に配設され、ＢＣＤ／バイナリ検証手段４８はＢＣＤ／バイナリ変換部４９内に配設されていた。しかし、このような従来の構成では、ハードウエア上の問題によりＢＣＤ演算手段４７とＢＣＤ検証手段５１とを同時に動作させること、及びＢＣＤ／バイナリ変換手段５０とＢＣＤ／バイナリ検証手段４８とを同時に動作させることが困難となる。そこで、これら各手段を同時に動作させずに、時間をずらして動作させていたが、そのため処理速度を一定以上高速にすることが困難であった。
【００６６】
よって、この実施形態では、ＢＣＤ演算部４６とＢＣＤ／バイナリ変換部４９との間で、それぞれの検証手段を互いに相手側に配設する構成を採用することにより、ＢＣＤ演算手段４７とＢＣＤ検証手段５１とを同時に動作させること、及びＢＣＤ／バイナリ変換手段５０とＢＣＤ／バイナリ検証手段４８とを同時に動作させることを可能にしている。
【００６７】
この第１０の実施形態によれば、ＢＣＤ演算及びＢＣＤ／バイナリ変換を行う場合に、ＢＣＤデータ又はバイナリデータが所定の範囲内にあるか否かを同時に検証することができ、ＢＣＤ演算及びＢＣＤ／バイナリ変換の処理時間を短縮することができる。
【００６８】
【発明の効果】
以上のように、本発明によれば、マイクロフラグが内部マイクロプログラム及び外部マイクロプログラムのうちいずれを用いるかについての情報を示し、アドレス生成部が内部マイクロプログラム又は外部マイクロプログラムについてのマイクロアドレスを内部マイクロメモリ又は外部マイクロメモリに出力し、切換スイッチが内部マイクロメモリ及び外部マイクロメモリに対して、いずれか一方を使用側メモリとして用いるための両者間の切換を行い、マイクロ切換部がマイクロフラグの情報に基づき切換スイッチに対して切換指令を出力する構成としたので、内部マイクロデータと外部マイクロデータとの切換を制御用プロセッサ外部のソフトウエア処理によらずに行うことができ、処理速度を速くすることができる。また、既述した各実施形態によれば、各演算の特性に応じた効率的な演算動作を行うことが可能になる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図２】本発明の第２の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図３】本発明の第３の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図４】本発明の第４の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図５】本発明の第５の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図６】本発明の第６の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図７】本発明の第７の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図８】本発明の第８の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図９】本発明の第９の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図１０】本発明の第１０の実施形態に係る制御用プロセッサの一部の構成を示すブロック図。
【図１１】プログラマブルコントローラの一般的な概略構成図。
【図１２】図１１における制御用プロセッサ１０３の一部の従来構成を示すブロック図。
【図１３】図１１における制御用プロセッサ１０３の一部の従来構成を示すブロック図。
【符号の説明】
１  内部マイクロメモリ
２  内部マイクロプログラム
３  外部マイクロメモリ
４  外部マイクロプログラム
５ａ，ｂ  切換スイッチ
６  アドレス生成部
７  マイクロ切換部
８  マイクロフラグ
９  第１のメモリ
９ａ  第１の領域
９ｂ  第２の領域
９ｃ  境界
１０  ユーザ命令データ
１１  外部マイクロプログラム
１２  マイクロポインタ
１３  加算部
１４  第１のスタック
１５  第２のスタック
１６  マイクロプログラム
１７  ブロック処理部分
１８  演算部
１９  累積部
２０  切換スイッチ
２１  レジスタ
２２  レジスタパス指定部
２３  レジスタパス切換部
２４  １６ビット演算手段
２５  ３２ビット演算手段
２６  切換スイッチ
２７  演算手段指定部
２８  演算手段切換部
２９  切換スイッチ
３０  浮動小数点演算部
３１  レジスタ
３２  データ変換部
３３  比較部
３４  選択部
３５  指数部
３６  加算手段
３７  シフト部
３８  仮数部
３９  論理積手段
４０  エンコーダ
４１  エンコードカウンタ
４２  加算部
４３  エンコードレジスタ
４４  切換スイッチ
４５  出力選択部
４６  ＢＣＤ演算部
４７  ＢＣＤ演算手段
４８  ＢＣＤ／バイナリ検証手段
４９  ＢＣＤ／バイナリ変換部
５０  ＢＣＤ／バイナリ変換手段
５１  ＢＣＤ検証手段
１０１  プログラマブルコントローラ
１０２  汎用プロセッサ
１０３  制御用プロセッサ
１０４  第１のメモリ
１０５  第２のメモリ
１０６  内部マイクロメモリ
１０７  内部マイクロプログラム
１０８  内部アドレス生成部
１０９  外部マイクロメモリ
１１０  外部マイクロプログラム
１１１  外部アドレス生成部
１１２  ビット演算部
１１３  論理演算部
１１４  算術演算部
１１５  固定小数点演算部
１１６  浮動小数点演算部
【図１】
0003688503.tif 000002
【図２】
0003688503.tif 000003
【図３】
0003688503.tif 000004
【図４】
0003688503.tif 000005
【図５】
0003688503.tif 000006
【図６】
0003688503.tif 000007
【図７】
0003688503.tif 000008
【図８】
0003688503.tif 000009
【図９】
0003688503.tif 000010
【図１０】
0003688503.tif 000011
【図１１】
0003688503.tif 000012
【図１２】
0003688503.tif 000013
【図１３】
0003688503.tif 000014