(57)【要約】【課題】  関数計算等の高度な演算処理ステップを含むプログラムの実行が可能なビット演算処理装置のコストパフォーマンスを向上させる。【解決手段】  ビット演算処理部２は、ＣＰＵ１と連係してプログラムを実行し、演算部２３は、ＣＰＵ１とは独立して動作する。このビット演算処理装置２は、ＣＰＵ１から引き渡されるプログラム（ラダー表記も可能）を格納するプログラムＲＡＭ２２と、ＣＰＵ１から引き渡される演算データ（ラダー表記の場合は接点のデータ）や演算結果を格納するワークＲＡＭ２４と、プログラムに従って前記演算データに関する演算を実行すると共に、前記プログラム中の所定の命令（関数計算等の複雑な処理を指示する命令）を読み取った時にＣＰＵ１に割り込みを掛けて、前記所定の命令の処理をＣＰＵ１に実行せしめる演算部２３とを備えて構成されている。【選択図】      図１
2005141347.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとは独立して動作する演算処理部を備え、かつ前記ＣＰＵと連係してプログラムを実行するビット演算処理装置において、
前記ＣＰＵから引き渡されるプログラムを格納するプログラム格納手段と、
前記ＣＰＵから引き渡される演算データを格納する演算データ格納手段と、
前記プログラムに従って前記演算データに関する演算を実行すると共に、前記プログラム中の所定の命令を読み取った時に前記ＣＰＵに割り込みを掛けて、前記所定の命令の処理を前記ＣＰＵに実行せしめる演算手段と、
を備えたことを特徴とするビット演算処理装置。
【請求項２】
前記所定の命令の処理を実行するためのハードウェアを備えていないことを特徴とする請求項１記載のビット演算処理装置。
【請求項３】
前記プログラムは、ラダー表記のプログラムであることを特徴とする請求項１または請求項２記載のビット演算処理装置。
【請求項４】
前記所定の命令の処理には、少なくとも関数計算が含まれていることを特徴とする請求項１〜３のいずれか１項記載のビット演算処理装置。
【請求項５】
ＣＰＵとは独立して動作する演算処理部を備え、かつ前記ＣＰＵと連係してプログラムを実行するビット演算処理装置を制御するためのコンピュータプログラムであって、
前記ＣＰＵから引き渡されるプログラムを格納するプログラム格納ステップと、
前記ＣＰＵから引き渡される演算データを格納する演算データ格納ステップと、
前記プログラムに従って前記演算データに関する演算を実行すると共に、前記プログラム中の所定の命令を読み取った時に前記ＣＰＵに割り込みを掛けて、前記所定の命令の処理を前記ＣＰＵに実行せしめる演算ステップと、
を備えたことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビット演算処理装置及びビット演算処理装置を制御するためのコンピュータプログラムに係り、特に、ラダープログラムの解析と実行とを専門に行うロジックソルバーと呼ばれるビット演算処理装置及びビット演算処理装置を制御するためのコンピュータプログラムに関する。
【背景技術】
【０００２】
まず、情報処理装置側の背景について述べる。
従来、コンピュータシステムの演算処理部は、ＣＰＵの性能を決定する最大の構成要素であり、この演算処理部の処理速度の向上が、普遍的な課題であった。
この演算処理部の演算処理は、実行されるプログラムの性質に大きく左右され、従って、ＣＰＵの性能を測定する時には、当該ＣＰＵに適した分野ばかりではなく、参考までに苦手な分野まで含めた問題分野毎の性能試験（ベンチマークテストなど）が行われている。
なお、ＣＰＵに関し、一般に、従来から問題とされている処理は、ビット操作（ビットハンドリング）を伴う処理である。但し、中・小型の汎用コンピュータシステムや、プロセス制御用の特殊なコンピュータシステムの場合は、データ語長が可変長のものもあり、この場合には、元々ビット操作には適した方式となっているが、この場合でも、ビット操作の処理が、特定の金物（ハードウエア）だけを集中的に使用する比較的単調な処理であることを考慮すると、他の高度な処理用の資源（リソース）を遊ばせる結果となるので、やはり、何らかの効率化が求められる。
ＣＰＵに関し、最も問題となるのは、大型のコンピュータシステムの場合であり、この場合は、ほぼ例外無く、データ語長として固定長が採用されているから、元々ビット操作は、最大の苦手な処理であった。もっとも、近年の大型コンピュータシステムは、ソフトウェア（コンパイラやインタプリタ等のベーシックソフト）を開発する部門やユーザからの要望により、ビット操作の処理を効率的に行うための専用の命令コードを備えている場合も多い。
【０００３】
次に、ユーザ側の背景について述べる。
一方、情報処理装置に対するユーザ側の実際の要望を眺めると、コンピュータシステムをコンパイラやインタプリタ等の言語を介在させて使用するか否かとは関係なく、昔から、ビット操作を伴う処理が、普通に要求される処理であった。
即ち、一般に、機械系（大型の工作機械から超小型の精密機械に至るまで）の制御や科学計算は勿論のこと、画像処理やパターン認識といった非コード化情報処理の分野においては、ユーザによって定義される個々のデータのデータ語がビットバンダリーであり、従って、ビット操作を伴う処理が、普通に要求される処理となっている。
また、このようなビット操作を伴う処理の必要性は、非コード化情報処理の時代を迎えて、日増しに増大しつつある。
このような事情に鑑みると、従来からの大型コンピュータシステムが基本的に採用している固定長のデータ語長は、極端に言えば、事務計算に適合した方式に過ぎなかったと言える。
例えば、ＦＡ（Factry Automation）等に必要な機械系の制御の場合、従来からモーションコントロール等のシーケンス動作に適したラダープログラムが開発されており、このラダープログラムの解析と実行は、従来、それを行うためのシステム構成が、大別して３通りに場合分けされている。
その第１の場合は、ラダープログラムの解析と実行をＣＰＵ単独で行う場合である。しかし、この場合は、ラダープログラムには、ＣＰＵが苦手とするビット操作若しくはビット操作を伴う処理が高い割合で含まれているため、前述の情報処理装置側の背景で述べたとおり、演算処理に時間が掛かり過ぎるという問題点があった。
【０００４】
また、第２の場合として、ラダープログラムの解析と実行に、ＣＰＵとビットメモリー（一般にはビットアクセス回路）とを組合せて行うシステム構成（例えば、特許文献１参照）を採用する場合、ＣＰＵが主体となって処理を行うので、ＣＰＵ側に、ビットメモリー（ビットアクセス回路）を機能せしめるに適した命令コードが備えられていない場合には、他の命令コードに適当に分解して等価的に実行せしめる必要があるため、システム全体としての処理効率が悪くなるという問題点があった。
【０００５】
【特許文献１】「特開昭５９−７７５５７号公報」
【０００６】
そこで、第３の場合として、近年は、専用のハードウェア（ビット演算処理装置）で行う方式が採用されている。なお、このような専用のハードウェア（ビット演算処理装置）としては、従来から、ロジックソルバーと呼ばれるシステムが開発されている。
このロジックソルバーは、主として、ビット演算処理（ビット抽出、ビット演算、ビット挿入、等）を高速で実行する機能を備え、機械系の制御（モーションコントロール等）に適した専用の装置として従来から使用されている。
なお、このようなロジックソルバー等のビット演算処理は、前述のとおり、従来の大型コンピュータシステムが特に苦手とする処理に他ならない。よって、このようなビット演算処理装置を、大型コンピュータシステムを補助する装置として使用することも可能であるが、ここでは、以下、ビット演算処理装置を、単に、ＦＡに適したラダープログラムの解析と実行を行うビット演算処理装置として説明するに留める。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記背景技術で述べた従来のビット演算処理装置（例えば、ロジックソルバー）にあっては、所与のラダープログラム中に関数計算等の高度な演算処理ステップが含まれている場合には、実際には単独で、このような高度な演算を行うことができないという問題点があった。
ここで、ラダープログラム自体には、言語として、或る程度の汎用性が考慮されているので、関数計算等の高度な演算処理ステップを含むことが可能である。このため、このラダープログラムを用いて機械系の制御を行うプログラムを作成するプログラミング作業の現場では、その処理ステップ中に、関数計算等の高度な演算処理ステップを含めてしまう可能性がある。
なお、前述の問題点を解決するために、例えば、ビット演算処理装置（例えば、ロジックソルバー）側に、高度な演算回路を付加するように構成すると、ラダープログラム全体としては、このような高度な演算処理ステップが含まれている割合が小さいので、折角、このような高度な演算回路を設置しても、その使用頻度が悪くなり、ビット演算処理装置（例えば、ロジックソルバー）全体のコストパフォーマンスを低下させてしまうことになる。
【０００８】
本発明は、上記従来の問題点に鑑みてなされたものであって、関数計算等の高度な演算処理ステップを含むラダー表記等のプログラムの実行が可能であると共に、高いコスト／パフォーマンスを有するビット演算処理装置を提供することを目的としている。
本発明の他の目的は、関数計算等の高度な演算処理ステップを含むラダー表記等のプログラムの実行が可能であると共に、高いコスト／パフォーマンスを有するビット演算処理装置を制御するためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係るビット演算処理装置は、ＣＰＵとは独立して動作する演算処理部を備え、かつ前記ＣＰＵと連係してプログラムを実行するビット演算処理装置において、前記ＣＰＵから引き渡されるプログラムを格納するプログラム格納手段と、前記ＣＰＵから引き渡される演算データを格納する演算データ格納手段と、前記プログラムに従って前記演算データに関する演算を実行すると共に、前記プログラム中の所定の命令を読み取った時に前記ＣＰＵに割り込みを掛けて、前記所定の命令の処理を前記ＣＰＵに実行せしめる演算手段とを備えたことを特徴とする。
【００１０】
このように構成することにより、関数計算等の高度な演算処理は、ＣＰＵに任せることができるので、ビット演算処理装置自体には、関数計算等の高度な演算処理を実際に実行するためのハードウェア設備を備える必要がなくなり、これにより、関数計算等の高度な演算処理ステップを含むラダープログラムを実行することができると共に、高いコスト／パフォーマンスを有するビット演算処理装置を提供することができる。
また、前記ビット演算処理装置は、前記所定の命令の処理を実行するためのハードウェアを備えていなくてもよい。
このように構成することにより、関数計算等の高度な演算処理を実際に実行するためのハードウェア設備を実際に省略することが可能となり、実際に、従来よりも遙に高いコスト／パフォーマンスを有するビット演算処理装置を提供することができる。
また、前記ビット演算処理装置は、前記プログラムが、ラダー表記のプログラムとすることができるので、ＦＡ等の機械系制御の分野にも適用することができる。
さらに、前記ビット演算処理装置は、前記所定の命令の処理に、少なくとも関数計算を含めることができるので、ハードウェアとしても多くの高度な処理ステップを必要とし、かつ使用頻度も少なくない関数計算をハードウェア設備から落とすことが可能となり、コスト／パフォーマンスを従来よりも大幅に向上させることができる。
また、本発明に係るビット演算処理装置を制御するためのコンピュータプログラムは、ＣＰＵとは独立して動作する演算処理部を備え、かつ前記ＣＰＵと連係してプログラムを実行するビット演算処理装置の制御を実行するコンピュータプログラムであって、前記ＣＰＵから引き渡されるプログラムを格納するプログラム格納ステップと、前記ＣＰＵから引き渡される演算データを格納する演算データ格納ステップと、前記プログラムに従って前記演算データに関する演算を実行すると共に、前記プログラム中の所定の命令を読み取った時に前記ＣＰＵに割り込みを掛けて、前記所定の命令の処理を前記ＣＰＵに実行せしめる演算ステップとを備えたことを特徴とする。
このように構成することにより、関数計算等の高度な演算処理は、ＣＰＵに任せることができるので、ビット演算処理装置自体には、関数計算等の高度な演算処理を実際に実行するためのハードウェア設備を備える必要がなくなり、これにより、関数計算等の高度な演算処理ステップを含むラダープログラムを実行することができると共に、高いコスト／パフォーマンスが達成可能な演算処理装置を制御するためのコンピュータプログラムを提供することができる。
【発明の効果】
【００１１】
以上説明したように、本発明のビット演算処理装置及び演算処理装置を制御するためのコンピュータプログラムによれば、関数計算等の高度な演算処理はＣＰＵに任せることにより、ビット演算処理装置自体には、関数計算等の高度な演算処理を実際に実行するためのハードウェア設備を備える必要がないので、関数計算等の高度な演算処理ステップを含むラダープログラムを従来どおり実行することができると共に、コスト／パフォーマンスを向上させることができる効果がある。
また、ユーザが投与するプログラムとして、ラダー表記のプログラムを使用することも可能であるので、ＦＡ等の機械系制御の分野にも適用することができる効果がある。
さらに、特に、ハードウェアとしても多くの高度な処理ステップを必要とし、かつ使用頻度も少なくない関数計算を、ハードウェア設備から落とすことが可能であるので、コスト／パフォーマンスを従来よりも大幅に向上させることができる効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明のビット演算処理装置の最良の実施形態について、図面を参照して詳細に説明する。
なお、以下の実施形態の説明では、本発明に係るビット演算処理装置について詳述するが、本発明に係るビット演算処理装置を制御するためのコンピュータプログラムについては、本実施形態に係るビット演算処理装置に含まれる各構成要素として実現するためのプログラムであることから、当該プログラムに関する説明は以下の説明に含まれる。
【００１３】
図１は、本発明の第１の実施形態に係るビット演算処理装置のブロック構成を示す構成図である。
同図において、本実施形態のビット演算処理装置２（ここではロジックソルバー）は、装置間バス３で接続されたＣＰＵ１とのインターフェース手段を有するＢＵＳインターフェース２１と、事前にプログラムを記憶するプログラムＲＡＭ２２（プログラム格納手段）と、プログラムＲＡＭ２２に記憶されているプログラムに従って演算を実行する演算部２３（演算手段）と、ラダープログラム中の接点のデータを記憶するためのワークＲＡＭ２４（演算データ格納手段）と、構成要素全体を接続するためのコモンバス２５とを備える。
ＣＰＵ１並びにビット演算処理装置２は、複数であってもよい。
ビット演算処理装置２の全体、若しくは、いずれかの構成要素を、ＰＬＣ（プログラマブルコントローラ）を使用して構成することができる。
ビット演算処理装置２の演算部２３は、ＣＰＵ１によって起動されるが、起動後は、ＣＰＵ１とは独立に（従って並列に）、動作（演算処理動作）し、かつ独自の判断で停止することができる。
【００１４】
以下、本実施形態のビット演算処理装置２を含むシステムの動作について説明する。
図２は、本実施形態のビット演算処理装置に課されるプログラム（ラダー表記）の１例を示す。
ＣＰＵ１は、定型的な基本動作として、まず、ビット演算処理装置２のプログラムＲＡＭ２２に対して、事前にプログラムを書き込む。次に、ＣＰＵ１は、ビット演算処理装置２のワークＲＡＭ２４の接点記憶領域（図示せず）に対して、接点のデータを書き込む。次に、ＣＰＵ１は、ビット演算処理装置２の演算部２３を起動する。
これにより、ビット演算処理装置２の演算部２３は、プログラムＲＡＭ２２に記憶されているプログラムに従って演算処理を行い、その結果をワークＲＡＭ２４の結果領域（図示せず）に書き込む。
以下、まず、図２に示す所与のラダープログラム中の処理ステップが、例えば、１番目のラインに示すような定型的な演算処理（簡単なビット演算処理）を指示する命令である場合のビット演算処理装置２の演算部２３の動作について説明する。
図２に示す所与のラダープログラムの１番目のラインは、リレー接点と同様の記載であり、ＬＤ、ＯＲ、ＡＮＤ、ＯＵＴ、の論理演算処理を指示する命令を示す。
図２の所与のラダープログラム中の処理ステップが、１番目のラインに示すような定型的な演算処理（簡単なビット演算処理）を指示する命令である限り、ビット演算処理装置２の演算部２３は、この処理を設置されているハードウェアを駆動して行う。
【００１５】
次に、図２に示す所与のラダープログラム中に含まれている処理ステップが、例えば、２番目のラインに示すような例外的な演算処理（一般には関数計算等の複雑な演算処理）を指示する命令（請求項１記載の所定の命令）である場合のビット演算処理装置２の演算部２３の動作について説明する。
図２に示す所与のラダープログラムの２番目のラインは、接点２５６がＯＮしている時に、レジスタ２５の内容の平方根を求めてレジスタ２６へ置数すべきことを示している。
図３は、或るレジスタの内容の平方根を求めて他のレジスタへ置数するプログラムの１例を示す。
このようなプログラムは、プログラムＲＡＭ２２には記憶されているが、ここでは、ビット演算処理装置２に、それを実行できる金物（ハードウェア）が備わっていないものとする。
図３に示すプログラムの最初のステップ（プログラムカウンタＰＣで示されるステップ）は、平方根を求める演算であり、この演算のマシンコードをＦ８Ｈとすると、プログラムカウンタＰＣが示すプログラム領域にはマシンコードＦ８Ｈで示される命令が格納されている。
ビット演算処理装置２の演算部２３が、このマシンコードＦ８Ｈで示される命令を読み取ると、演算部２３は、このマシンコードＦ８Ｈが予め指定されている複雑な命令の１つであることを認識し、よって、割り込み信号（／ＩＮＴ）（図１）を発生して、ＣＰＵ１に割り込みを掛けると共に、以後のプログラムの読み取りを停止して待機状態に入る。
前述の割り込み信号（／ＩＮＴ）を受けたＣＰＵ１は、これにより、割り込み処理を実行する。より具体的には、ＣＰＵ１は、まずプログラムカウンタＰＣが示すプログラム領域のマシンコードＦ８Ｈの値を読み取り、この読み取った値により、マシンコードが、平方根を求める演算を指示する命令であることを判断する。次に、ＣＰＵ１は、プログラムカウンタＰＣの値を増分し、（プログラムカウンタＰＣ）＋１の領域の内容からソース（変数格納用レジスタ）がＲ２５であることを知り、また、（プログラムカウンタＰＣ）＋２の領域の内容からデェスティネーション（結果格納用レジスタ）が、Ｒ２６であることを知る。
これにより、ＣＰＵ１は、ワークＲＡＭ２４のＲ２５に相当する領域の値（変数）を読み取り、この値（変数）の平方根を求める演算を行い、この演算結果を、ワークＲＡＭ２４のＲ２６に相当する領域に格納する。次に、ＣＰＵ１は、現在のプログラムカウンタＰＣの値に＋３を加えた値をプログラムカウンタＰＣに加えることで、プログラムカウンタＰＣの値を更新し、その後、ビット演算処理装置２の演算部２３の停止状態を解き、プログラムの読み取り動作から始まる一連の処理を再開させる。
【００１６】
図４は、割り込みを発生せしめる命令であると共にプログラムの終了を示すマシンコードを含むプログラムの１例を示す。
図４に示すプログラムの場合は、マシンコードＦＦＨが、割り込みを発生せしめる命令であると共に、ビット演算処理装置２の演算部２３の実行すべきブログラムの終了を示すマシンコードでもあるので、演算部２３は、割り込み信号（／ＩＮＴ）（図１）を発生して、ＣＰＵ１に割り込みを掛けると共に、以後、ＣＰＵ１からの再起動があるまで、演算処理動作を停止する。
これを受けたＣＰＵ１も、マシンコードＦＦＨが演算部２３の実行すべきブログラムの終わりを示すマシンコードであることを認識し、マシンコード０８Ｈで示される平方根の演算を行った後は、ＣＰＵ１は、以後のプログラムステップの読み取りから始まる前述の定型的な一連の処理を継続する。即ち、ＣＰＵ１は、前述のとおり、ビット演算処理装置２のプログラムＲＡＭ２２に対して、事前にプログラムを書き込む処理から始まる定型的な一連の基本動作を再開する。
【００１７】
図５は、本発明の実施形態に係るビット演算処理装置の演算部の動作を説明するためのフローチャートである。
以下、図１〜４を参照しながら、図５に示すフローチャートを使用して、本実施形態に係るビット演算処理装置の演算部の動作を説明する。
ＣＰＵ１から起動を掛けられると、演算部２３は、まず、プログラムＲＡＭ２２に格納されているプログラムのうち、プログラムカウンタが示す値の領域のマシンコードをデコードし、命令の種類を読み取る（ステップＳ１）。
次に、読み取った命令が所定の命令か否かを検証し（ステップＳ２）、判断する（ステップＳ３）。読み取った命令が所定の命令であれば、ステップＳ６に移る。また、読み取った命令が所定の命令でなければ、ステップＳ４に移る。
ステップＳ４では、読み取った命令が指示する演算処理を実行する。
次に、プログラムカウンタの内容に＋１を加えてプログラムカウンタを更新する（ステップＳ５）。
ステップＳ６では、読み取った命令がプログラムの終了を意味するものか否かを判断する。プログラムの終了を意味するものであれば、ステップＳ９に移る。また、プログラムの終了を意味するものでなければ、ステップＳ７に移る。
ステップＳ７では、割り込み信号（／ＩＮＴ）を発生し、その後、ＣＰＵ１から制御を渡されるまで待機する（但し、起動状態は継続する）。ＣＰＵ１から再び制御を渡されると、プログラムの読み取りから始まる一連の処理を実行するためにステップＳ１に移る。
ステップＳ９では、割り込み信号（／ＩＮＴ）を発生し、その後、ＣＰＵ１からの再起動があるまで、演算処理動作を停止する（起動状態は、解くことができる）。
本実施形態では、ＣＰＵ１とビット演算処理装置１とが近接して設置される場合を説明したが、本発明は、一般に、ＣＰＵ１とビット演算処理装置１とが通信ネットワークを含む有線または無線の通信回線で結ばれている場合にも適用可能である。
また、ビット演算処理装置１を、携帯端末装置として構成することが可能である。
さらに、ビット演算処理装置１を、他の機械または機械系に組み込むことも可能である。
【００１８】
この実施形態によれば、ビット演算処理装置２に、複雑な命令を実行するためのハードウェアを備える必要がないので、ビット演算処理装置２のコスト／パフォーマンスを大幅に向上することが可能となる効果がある。
なお、本発明に係るビット演算処理装置２の各構成要素の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図５のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、ＣＤ−ＲＯＭや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ，パーソナルコンピュータ，汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
本発明は、ＦＡ等の機械系の制御に使用されるビット演算処理装置に適用可能である。
また、携帯端末装置のコスト／パフォーマンスを高めることも可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係るビット演算処理装置のブロック構成を示す構成図である。
【図２】本実施形態のビット演算処理装置に課されるプログラム（ラダー表記）の１例を示す。
【図３】或るレジスタの内容の平方根を求めて、他のレジスタへ置数するプログラムの１例を示す。
【図４】割り込みを発生せしめる命令であると共にプログラムの終了を示すマシンコードを含むプログラムの１例を示す。
【図５】本発明の実施形態に係るビット演算処理装置の演算部の動作を説明するためのフローチャートである。
【符号の説明】
【００２０】
１  ＣＰＵ
２  ビット演算処理装置
３  装置間バス
２１  ＢＵＳインターフェース
２２  プログラムＲＡＭ（プログラム格納手段）
２３  演算部（演算手段）
２４  ワークＲＡＭ（演算データ格納手段）
２５  コモンバス
／ＩＮＴ  割り込み信号
【図１】
2005141347.tif 000003
【図２】
2005141347.tif 000004
【図３】
2005141347.tif 000005
【図４】
2005141347.tif 000006
【図５】
2005141347.tif 000007