(57)【要約】【課題】プログラマブルコントローラ言語に係る処理を簡素化する。【解決手段】前記演算装置１００内に、データタイプを保持するデータタイプレジスタ８を備え、該データタイプレジスタ８中のデータと、命令デコーダ５内の命令コードと、に基づいて、演算処理を決定するプログラマブルコントローラ言語に係る演算装置及び演算方法である。【選択図】図１
2007249455.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラ言語に係る演算装置であって、
データタイプを保持するデータタイプレジスタを前記演算装置内に備え、
該データタイプレジスタ中のデータと、命令デコーダ内の命令コードと、に基づいて、演算処理を決定する、
ことを特徴とするプログラマブルコントローラ言語に係る演算装置。
【請求項２】
データメモリから読み込んだデータを記憶し、演算器によって演算された結果を記憶するリザルトレジスタを前記演算装置内に有し、
該リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプが、前記データタイプレジスタ中のデータに基づいて決定され、
該リザルトレジスタ中データとデータメモリ中の所定データに係る演算を行う、
ことを特徴とする請求項１記載のプログラマブルコントローラ言語に係る演算装置。
【請求項３】
データタイプ設定用命令によって、前記データタイプレジスタに所定のデータタイプを保持させることを特徴とする請求項１または２記載のプログラマブルコントローラ言語に係る演算装置。
【請求項４】
プログラマブルコントローラ言語に係る演算方法であって、
命令コードがプログラムメモリから命令デコーダに読み込まれるステップと、
データタイプレジスタ中のデータと、該命令デコーダ内の命令コードと、に基づいて、演算処理が決定されるステップと、
を有することを特徴とするプログラマブルコントローラ言語に係る演算方法。
【請求項５】
リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプが、前記データタイプレジスタ中のデータに基づいて決定されるステップと、
該リザルトレジスタ中データとデータメモリ中の所定データに係る演算を行うステップと、
を有することを特徴とする請求項４記載のプログラマブルコントローラ言語に係る演算方法。
【請求項６】
データタイプ設定用命令によって、前記データタイプレジスタに所定のデータタイプを保持させるステップ、
を有することを特徴とする請求項４または５記載のプログラマブルコントローラ言語に係る演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ言語に係る演算装置及び演算方法であって、例えば、プログラマブルコントローラに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ；以後、ＰＬＣと略すこともする）のプログラミング言語（即ち、プログラマブルコントローラ言語）の標準としては、ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）６１１３１−３（ＪＩＳ（Ｊａｐａｎｅｓｅ  Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ）  Ｂ３５０３）規格が、知られている。
【０００３】
前記の規格は５種類の言語から構成されており、その５種類の言語は、テキスト言語（例えば、ＩＬ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｌｉｓｔ）言語，ＳＴ（Ｓｔｒｕｃｔｕｒｅｄ  Ｔｅｘｔ）言語）とグラフィック言語（例えば、ＬＤ（Ｌａｄｄｅｒ  Ｄｉａｇｒａｍ）言語，ＦＢＤ（Ｆｕｎｃｔｉｏｎ  Ｂｏｃｋ  Ｄｉａｇｒａｍ）言語，ＳＦＣ（Ｓｅｑｕｅｎｃｅ  Ｆｕｎｃｔｉｏｎａｌ  Ｃｈａｒｔ）言語）に分類される。
【０００４】
前記の規格では、表１に示すデータタイプを備えている。そして、前記データタイプのいずれかをプログラム中に定義して利用することになる。
【０００５】
【表１】
2007249455.tif 000003
【０００６】
現在のＰＬＣにおいて、データ演算を行う場合、データタイプ毎の演算命令を備えていることが一般的である。例えば、「ＡＤＤ（加算）命令」の場合には、命令種別として単精度用ＡＤＤ命令，倍精度用ＡＤＤ命令，実数用ＡＤＤ命令を備えている。そして、プログラム作成者が、対象データのデータタイプに従って、それらの命令を使い分けている。
【０００７】
また、前記の規格におけるＦＢＤ言語では、オーバーロードデータ型ファンクションと呼称される規定も存在する。即ち、前記の規定は、データタイプ定義に基づいて、１種類のファンクション（即ち、命令シンボル）で複数のデータタイプに対応できるようにしたものである。例えば、「ＡＤＤ」という加算用ファンクションを使用すれば、表１中の「整数」，「実数」，「時間」のいずれかのデータタイプを持つ変数同士に係る加算を行うことができる。
【０００８】
前記の規格に関連する演算方式であって、演算機能の多様性を損なうことなくＳＩＭＤ型命令の命令数を減少させたコンピュータ演算方式も、広く知られている（例えば、特許参考文献１参照）。
【０００９】
なお、前記のコンピュータ演算方式は、データ保持用のレジスタを多く備えたレジスタファイルを有する汎用コンピュータに適応するものである。また、前記の汎用コンピュータ内は、少ないデータタイプを取り扱うため、命令種類も少ないことが特徴である。
【００１０】
前記のコンピュータ演算方式の概要を図２に基づいて以下に説明する。
【００１１】
図２中の命令デコーダ５は、ロード命令に基づいてデータタイプを判別する。
【００１２】
次に、データが記憶されたデータ記憶用レジスタ２ａから２ｃに対応するデータタイプ記憶領域３ａから３ｃに、該データタイプを記憶させる。なお、前記データ記憶用レジスタ２ａから２ｃは、レジスタファイル２に含まれているものとする。また、前記データタイプ記憶領域３ａから３ｃは、データタイプ３に含まれているものとする。
【００１３】
次に、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ／Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算器４は、データタイプ記憶領域３ａから３ｃに記憶されているデータに基づいて、演算対象となるデータのデータタイプを判断する。
【００１４】
前記のコンピュータ演算方式は、データタイプ記憶領域３ａから３ｃが、それぞれデータ記憶用レジスタ２ａから２ｃに対応することを特徴の一つとしている。
【００１５】
また、前記コンピュータ演算方式の他の特徴は、ロード命令によってデータタイプ記憶領域３ａから３ｃにデータタイプを記憶させることである。そのため、ロード命令によってレジスタに読み込んだデータ同士に係る演算を行うことができる。
【特許文献１】特開２００３−０４４２７２（段落［０００９］〜［００２３］等）。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従来のコンピュータ演算方式では、命令種類が増加した場合、演算装置（例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ））において、命令の倍増を招く恐れが生じる。即ち、データタイプが数種類あれば、データタイプ毎に命令を演算装置に備えさせる必要が生じてくる。
【００１７】
例えば、「ＡＤＤ（加算）命令」を表１中の全てのデータタイプに対応させるためには、２１種類のＡＤＤ命令を演算装置に備えさせる必要がある。
【００１８】
従って、従来のコンピュータ演算方式では、前述の規格におけるオーバーロードデータ型ファンクションに対応することも困難である。
【００１９】
また、前述の規格のようにデータタイプ種別が多くなると、１機能を有する命令がデータタイプ種別毎に必要になる。そのため、全体的に、膨大な命令種別となり、煩雑さを生じさせる。
【００２０】
例えば、前記の命令に対応する命令シンボルを含むプログラムをコンパイル（即ち、コンパイラに入力）し、該プログラムを実行形式モジュールに変換した場合、該実行形式モジュール内の該命令シンボルに対応する処理が、多くのデータタイプ毎に展開されることになる。
【００２１】
このような形態では、コンパイラにおける処理が複雑になり、コンパイラの品質によって、プログラムの品質も左右されることが多くなる。
【００２２】
前述の規格では、同じデータ長であっても、異なる性質を有するデータタイプを備えている。例えば、「ＩＮＴ」，「ＵＩＮＴ」，「ＷＯＲＤ」のデータ長は、１６ビットである。しかし、前述のコンピュータ演算方式では、データ長（例えば、８ビット，１６ビット，３２ビット，浮動小数点）によってデータタイプを区別している。そのため、前述のＳＩＭＤ型コンピュータ演算方式が、前述の規格に対応することは困難である。
【００２３】
本発明は、前記課題に基づいてなされたものであって、プログラマブルコントローラ言語に係る処理を簡素化するために、データタイプを保持するレジスタを備え、該レジスタ中のデータと、命令デコーダ内の命令コード（即ち、命令を表すコード）と、に基づいて演算処理を決定するプログラマブルコントローラ言語に係る演算装置及び演算方法を提供することにある。
【課題を解決するための手段】
【００２４】
本発明は、前記課題の解決を図るために、請求項１記載の発明は、プログラマブルコントローラ言語に係る演算装置であって、データタイプを保持するデータタイプレジスタを前記演算装置内に備え、該データタイプレジスタ中のデータと、命令デコーダ内の命令コードと、に基づいて、演算処理を決定する、ことを特徴とする。
【００２５】
請求項２記載の発明は、請求項１記載の発明において、データメモリから読み込んだデータを記憶し、演算器によって演算された結果を記憶するリザルトレジスタを前記演算装置内に有し、該リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプが、前記データタイプレジスタ中のデータに基づいて決定され、該リザルトレジスタ中データとデータメモリ中の所定データに係る演算を行う、ことを特徴とする。
【００２６】
請求項３記載の発明は、請求項１または２記載の発明において、データタイプ設定用命令によって、前記データタイプレジスタに所定のデータタイプを保持させることを特徴とする。
【００２７】
請求項４記載の発明は、プログラマブルコントローラ言語に係る演算方法であって、命令コードがプログラムメモリから命令デコーダに読み込まれるステップと、データタイプレジスタ中のデータと、該命令デコーダ内の命令コードと、に基づいて、演算処理が決定されるステップと、を有することを特徴とする。
【００２８】
請求項５記載の発明は、請求項４記載の発明において、リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプが、前記データタイプレジスタ中のデータに基づいて決定されるステップと、該リザルトレジスタ中データとデータメモリ中の所定データに係る演算を行うステップと、を有することを特徴とする。
【００２９】
請求項６記載の発明は、請求項４または５記載の発明において、データタイプ設定用命令によって、前記データタイプレジスタに所定のデータタイプを保持させるステップ、を有することを特徴とする。
【００３０】
前記の請求項１，４記載の発明によれば、データタイプレジスタ中のデータと、命令デコーダ内の命令コードと、に基づいて、演算処理を決定できる。
【００３１】
前記の請求項２，５記載の発明によれば、リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプを決定できる。
【００３２】
前記の請求項３，６記載の発明によれば、データ長に基づくデータタイプ以外のデータタイプを、データタイプレジスタに設定することができる。
【発明の効果】
【００３３】
以上示したように、請求項１，４記載の発明によれば、データ長に基づくデータタイプ以外のデータタイプに係る演算処理を行うことができる。
【００３４】
請求項２，５記載の発明によれば、リザルトレジスタ中データとデータメモリ中の所定データに係る演算結果を取得できる。
【００３５】
請求項３，６記載の発明によれば、データタイプレジスタに設定されたデータタイプを利用することができる。
【００３６】
これらを以ってプログラマブルコントローラの分野に貢献できる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態におけるプログラマブルコントローラ言語に係る演算装置及び演算方法を図面等に基づいて詳細に説明する。
【００３８】
本実施の形態は、演算装置内にデータタイプを保持するレジスタ（以後、データタイプレジスタと称する）を備え、該データタイプレジスタ中のデータと、命令デコーダ内の命令コードと、に基づいて、演算処理を決定するプログラマブルコントローラ言語に係る演算装置及び演算方法である。
【００３９】
さらに、本実施の形態では、データタイプ設定用命令によって、前記データタイプレジスタに所定のデータタイプを保持させる。
【００４０】
また、本実施の形態では、データメモリから読み込んだデータを記憶し、前記演算器によって演算された結果を記憶するレジスタ（以後、リザルトレジスタと称する）を前記演算装置内に有し、該リザルトレジスタ中データのデータタイプとデータメモリ中の所定データのデータタイプが、前記データタイプレジスタ中のデータに基づいて決定され、該リザルトレジスタ中データとデータメモリ中の所定データに係る演算を行う。
【００４１】
次に、本実施の形態におけるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）モジュールの構成を図３に基づいて以下に説明する。
【００４２】
前記ＣＰＵモジュールは、演算対象データを格納するメモリ（以後、データメモリと称する）１，ＩＥＣ６１１３１−３規格に準拠した言語（即ち、プログラマブルコントローラ言語）によってプログラミングされたプログラムの実行イメージ（命令コードを含む実行イメージ）を格納するメモリ（以後、プログラムメモリと称する）６，該プログラムメモリ６に格納された命令コードを読み出し、該命令の指定に従って、該データメモリ１のデータを読み込んだり、演算結果をデータメモリ１に書き込むＬＳＩ（即ち、演算装置；以後、演算ＬＳＩと称する）１００から構成される。
【００４３】
次に、前記演算ＬＳＩ１００の構成を図１に基づいて以下に説明する。なお、図１中の符号で、図３中の符号と同じものの説明は省略する。
【００４４】
前記演算ＬＳＩ１００は符号５，７，８，９で示すものから構成される。
【００４５】
符号５で示されるものは、読み込んだプログラムの内容（即ち、命令コード）を保持するレジスタ（以後、命令デコーダと称する）である。
【００４６】
符号７で示されるものは、データメモリ１から読み込んだデータを記憶したり、符号９で示す演算器（この演算器に係る説明は後述する）によって演算された結果を記憶するリザルトレジスタである。
【００４７】
なお、前記リザルトレジスタ７は、例えば、１つのレジスタから構成される。
【００４８】
符号８で示されるものは、特定の命令コードが指定するデータタイプを保持するデータタイプレジスタである。また、前記データタイプレジスタ８は、符号９で示す演算器によって演算された結果によって変更することもできる。
【００４９】
例えば、命令デコーダ５に入力された命令コードが、データタイプ設定を指定する命令（即ち、データタイプ設定用命令）の場合、前記データタイプレジスタ８が該命令コードによって指定されるデータタイプを保持する。
【００５０】
なお、前記データタイプレジスタ８は、例えば、１つのレジスタから構成される。
【００５１】
符号９で示すものは、前記リザルトレジスタ７及びデータメモリ１中のデータを入力し、前記データタイプレジスタ８と命令デコーダ５が示す内容に従った演算を行う。そして、前記演算の結果をリザルトレジスタ７に格納する演算器である。
【００５２】
本実施の形態におけるＣＰＵモジュールの動作手順を以下に説明する。
【００５３】
まず、プログラムメモリ６から命令デコーダ５を介して命令コードを読み込む。
【００５４】
次に、前記命令コードがデータタイプ設定用命令（または、データタイプレジスタに対するロード命令）であった場合、データタイプレジスタ８にそれらのうち何れかの命令で指定されたデータタイプがセットされる。
【００５５】
即ち、データタイプ設定用命令によってリザルトレジスタ７に格納されたデータのデータタイプを、データタイプレジスタ８に設定（保持）させ変更する。例えば、１６ビットデータのデータタイプを、「ＩＮＴ」と「ＵＩＮＴ」のいずれかに変更できる。また、前記データタイプをロード命令によってデータタイプレジスタ８に設定しても良い。
【００５６】
なお、演算器９からの指定によって、演算結果のデータタイプがデータタイプレジスタにセットできても良い。
【００５７】
また、前記命令コードがデータタイプ設定用命令以外の命令（例えば、演算命令）であった場合、演算ＬＳＩ１００内部に備えられたデータタイプレジスタ８中のデータと命令デコーダ５内の命令コードに基づいて、演算処理を決定する。
【００５８】
即ち、前記演算ＬＳＩ１００で処理される命令コードは１種類でも、該演算ＬＳＩ１００は、データタイプレジスタ８の内容によって、様々なデータタイプに対応した演算処理を決定するものである。
【００５９】
次に、前記の演算処理に従って、リザルトレジスタ７中のデータとデータメモリ１中の所定のデータに係る演算を行う。なお、リザルトレジスタ７のデータタイプとデータメモリ１のデータタイプは、データレジスタ８によって決定される。
【００６０】
以上のように、本実施の形態における演算ＬＳＩは、演算内容をデータタイプレジスタと命令コードによって決定するため、演算回路を簡単化できる。
【００６１】
また、本実施の形態における演算ＬＳＩは、多くのデータタイプを有する言語（例えば、ＩＥＣ６１１３１−３規格に準拠した言語）に対する適応を容易にする。
【００６２】
さらに、オーバーロード型ファンクションに対応することによって、１命令で多くのデータタイプに対する演算が可能になるので、プログラムメモリに展開する命令コードの種類を減少できる。そして、前記の命令コード種類の減少は、コンパイラの仕組みを簡素化できる。
【００６３】
そして、データ設定用命令によって、ロード命令のみでデータタイプレジスタを変更するより、汎用性を有することができる。
【００６４】
以上、本発明において、記載された具体例に対してのみ詳細に説明したが、本発明の技術思想の範囲で多彩な変形および修正が可能であることは、当業者にとって明白なことであり、このような変形および修正が特許請求の範囲に属することは当然のことである。
【００６５】
例えば、本実施の形態の変形例として、データキャッシュメモリを備えたデータメモリと、命令コードキャッシュメモリを備えたプログラムメモリを組み込む。そして、前記データキャッシュメモリから優先してデータを取り出しても良い。また、前記命令コードキャッシュメモリから優先して命令コードを取り出しても良い。
【図面の簡単な説明】
【００６６】
【図１】本実施の形態におけるＣＰＵモジュールの演算ＬＳＩの構成図
【図２】一般的なコンピュータ演算方式を有するＣＰＵモジュールの構成図
【図３】ＣＰＵモジュールの基本構成図
【符号の説明】
【００６７】
１…データメモリ
２…レジスタファイル
２ａ，２ｂ，２ｃ…データ記憶用レジスタ
３…データタイプ
３ａ，３ｂ，３ｃ…データタイプ記憶領域
４…ＳＩＭＤ演算器
５…命令デコーダ
６…プログラムメモリ
７…リザルトレジスタ
８…データタイプレジスタ
９…演算器
１００…演算ＬＳＩ
【図１】
2007249455.tif 000004
【図２】
2007249455.tif 000005
【図３】
2007249455.tif 000006