JP2559924B2 - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ

Info

Publication number
JP2559924B2
JP2559924B2 JP3174158A JP17415891A JP2559924B2 JP 2559924 B2 JP2559924 B2 JP 2559924B2 JP 3174158 A JP3174158 A JP 3174158A JP 17415891 A JP17415891 A JP 17415891A JP 2559924 B2 JP2559924 B2 JP 2559924B2
Authority
JP
Japan
Prior art keywords
code
source code
instruction
source
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3174158A
Other languages
English (en)
Other versions
JPH0519821A (ja
Inventor
明 薮田
ボグストロム トム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP3174158A priority Critical patent/JP2559924B2/ja
Publication of JPH0519821A publication Critical patent/JPH0519821A/ja
Application granted granted Critical
Publication of JP2559924B2 publication Critical patent/JP2559924B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メインプロセッサとは
別に命令実行専用のコプロセッサを設けたプログラマブ
ルコントローラに関するものである。
【0002】
【従来の技術】従来より、プログラマブルコントローラ
の処理速度を向上させることなどを目的として、図5に
示すように、従来から用いられている汎用のメインプロ
セッサ11と並行動作する命令実行専用のコプロセッサ
21を設けることが提案されている。コプロセッサ21
としては、処理の高速化を図るために、縮小命令セット
プロセッサ(RISCプロセッサ)が用いられる。この
場合、ユーザ等により設計されてソースプログラムメモ
リ12に格納されたシーケンスプログラムのソースコー
ドは、コンパイルされて縮小命令に変換された後にオブ
ジェクトプログラムメモリ22に格納され、基本命令や
応用命令はオブジェクトプログラムメモリ22に格納さ
れた縮小命令よりなるオブジェクトコードに基づいてコ
プロセッサ21で実行される。ソースコードのコンパイ
ルは、システムメモリ13に格納されたコンパイラを用
いてメインプロセッサ11によって行われる。また、メ
インプロセッサ11は、シーケンスプログラムの命令の
実行には用いられず、ソースコードのコンパイルのほ
か、インタフェース14を通して行われる周辺装置の制
御や通信の制御に用いられる。メインプロセッサ11と
コプロセッサ21との間の通信はバスコントローラ15
を介して行われる。ここに、メインプロセッサ11のデ
ータバスは16ビットであり、コプロセッサ21のデー
タバスは、オブジェクトプログラムメモリ22との間で
は32ビット、データメモリ23との間では16ビット
になっている。バスコントローラ15は、メインプロセ
ッサ11の16ビットのデータバスとコプロセッサ21
の32ビットのデータバスとを結合する機能を有してい
る。コプロセッサ21の内部処理は32ビットで行われ
るから、RISCプロセッサであることとあいまって命
令をメインプロセッサ11よりも高速に実行できるので
ある。
【0003】ソースコードとオブジェクトコードとの関
係は、図6のようになる。たとえば、ソースコードでは
3命令であって、各命令のワード数が2、4、4である
とき、縮小命令を用いたオブジェクトコードのワード数
は、ソースコードの各命令に対して、たとえば、3、
7、5などとなる。オブジェクトコードでは、1ワード
が1命令に対応するのであって、上述した例では、ソー
スコードで2ワードを用いる1命令が、オブジェクトコ
ードでは3命令などとなっている。
【0004】
【発明が解決しようとする課題】ところで、上述したよ
うに、ソースコードの1つの命令のワード数に対応した
オブジェクトコードのブロックを構成する命令コードの
ワード数とは異なるものであるから、次ような場合に問
題が生じるものである。まず、コプロセッサ21での実
行中にエラーが発生してコプロセッサ21が実行を中断
してメインプロセッサ11に制御を受け渡したときや、
ブレーク命令によって実行を中断したときに、メインプ
ロセッサ11では、ソースコードのどの命令で実行が中
断したのかが把握できないという問題がある。また、デ
バッグなどの際には、1ステップずつ実行して動作状態
を確認したい場合があり、動作状態を把握するという目
的に鑑みれば、ソースコードを1単位ずつ実行すること
が必要であるが、オブジェクトコードの何ワードがソー
スコードの1単位に対応するのかがわからないから、ソ
ースコードの1単位ずつの実行ができないという問題が
ある。
【0005】上述したような問題があるから、ユーザが
ソースコードを見てデバッグしようとする際には、訂正
の必要な箇所をソースコードのプログラムの中から見つ
けるのが困難であるという問題がある。また、プログラ
ムの開発や編集を行う際であって、ソースコードのプロ
グラム中に命令の挿入や削除をするときに、オブジェク
トコードの対応する箇所がわからないから、ソースコー
ドの全プログラムをコンパイルしなおす必要が生じる。
すなわち、プログラムの修正と実行とを繰り返してプロ
グラムをデバッグする際に、修正から実行までにコンパ
イルに要する時間が多くなるから、デバッグに長時間を
要するという問題がある。
【0006】本発明は上記問題点の解決を目的とするも
のであり、オブジェクトコードにソースコードの対応す
る箇所に関する情報を持たせることによって、ソースコ
ードとオブジェクトコードとの対応箇所の検出が短時間
で行えるようにしたプログラマブルコントローラを提供
しようとするものである。
【0007】
【課題を解決するための手段】本発明では、上記目的を
達成するために、シーケンスプログラムを実行する命令
実行専用のコプロセッサをメインプロセッサとは別に備
え、シーケンスプログラムのソースコードをソースプロ
グラムメモリに格納するとともに、メインプロセッサに
よってシーケンスプログラムのソースコードをコンパイ
ルして得たコプロセッサ用のオブジェクトコードをオブ
ジェクトプログラムメモリに格納したプログラマブルコ
ントローラにおいて、オブジェクトコードの各命令コー
ドには、ソースコードの各単位のワード数を設定するこ
とができるコード数フィールドと、ソースコードの各単
位に対応したオブジェクトコードのブロックの最後の命
令コードを示す終了位置指定フィールドとが設けられて
いて、ソースコードの各単位に対応するオブジェクトコ
ードのブロック内のコード数フィールドの合計値がその
ブロックに対応するソースコードの単位のワード数にな
るようにコード数フィールドの値が設定され、コプロセ
ッサは、コード数フィールドの値を積算する加算器と、
加算器の出力値を保持する一時レジスタと、終了位置指
定フィールドの値によりブロックの終了が示されると一
時レジスタの出力値を取り込むアドレスレジスタとを備
えているのである。
【0008】
【作用】上記構成によれば、オブジェクトコードの命令
コードにソースコードの各単位を構成するワード数を格
納するコード数フィールドを設けて、オブジェクトコー
ドの実行時にソースコードの単位ごとのワード数を順次
加算してアドレスレジスタに格納しているので、コプロ
セッサによるオブジェクトコードの実行中に、ソースコ
ードのどの箇所に対応するオブジェクトコードを実行し
ているのかをアドレスレジスタの出力値によって知るこ
とができ、コプロセッサの実行停止時などに、ソースコ
ードのどの位置で実行が停止したのかを容易に知ること
ができるのである。また、逆にソースコードの指定箇所
が、オブジェクトコードのどの位置に対応するのかも容
易に知ることができるのである。その結果、デバッグや
編集などの際にソースコードとオブジェクトコードとの
アドレスの対応関係を容易に知ることができるのであ
る。
【0009】
【実施例】コプロセッサ21で用いる命令には、図3に
示すような4種類の形式がある。ここに、src1、src2、
dst1は、コプロセッサ21の内部レジスタを指定するた
めのフィールドである。図3(a)は、オブジェクトプ
ログラムメモリ22やデータメモリ23と内部レジスタ
との間のデータの移動命令に対応するMタイプと称する
形式の命令である。上位6ビットは命令コードフィール
ド(op-code)、次の3ビットは移動元を指定するソース
レジスタ指定フィールド(src1)、次の3ビットは移動先
を指定するディスティネーションレジスタ指定フィール
ド(dst1)、次の4ビットはソースコードとオブジェクト
コードとの対応関係を示すステータスタグコードを格納
するステータスタグフィールド(St) 、下位16ビット
はメモリアドレスのオフセット値を格納するオフセット
フィールド(offset)になっている。ここに、移動元や
移動先が内部レジスタであれば指定された内部レジスタ
が移動元や移動先になり、移動元や移動先がオブジェク
トプログラムメモリ22やデータメモリ23であれば指
定された内部レジスタに格納されたデータが移動元や移
動先のアドレスになる。
【0010】図3(b)は、2個の内部レジスタに格納
された値の間での論理演算や算術演算の結果を他の内部
レジスタに格納するRタイプと称する形式の命令であ
る。上位ビットから命令コードフィールド(op-code)に
6ビット、2個の被演算値がそれぞれ格納された2個の
内部レジスタを指定するソースレジスタ指定フィールド
(src1),(src2)に3ビットずつ、ステータスタグフィー
ルド(St) に4ビット、演算結果を格納する内部レジス
タを指定するディスティネーションレジスタ指定フィー
ルド(dst1)に3ビットを用いている。残りの下位13ビ
ットはファンクションフィールド(function)として高機
能化などの目的で利用される空フィールドになってい
る。
【0011】図3(c)は、内部レジスタに格納された
値と、設定された値との間での論理演算や算術演算の結
果を他の内部レジスタに格納するIタイプと称する形式
の命令である。この形式の命令では、Mタイプの形式の
命令のオフセットフィールドに代えて即値用フィールド
(immediate) を設けている点が形式上の相違点である。
この命令では、ソースレジスタ指定フィールド(src1)に
格納された値と即値用フィールド(immediate) に設定さ
れた値との間で、論理演算や算術演算が行われるのであ
る。したがって、演算すべき2つの値の一方が即値用フ
ィールド(immediate) に設定に格納される点を除けば、
Rタイプの命令と同様の処理を行うことになる。
【0012】図3(d)は、2個の内部レジスタに格納
された値の大小関係に応じてプログラムカウンタで設定
されたアドレスにジャンプしたり、1個の内部レジスタ
に格納されたアドレスにジャンプしたりするJタイプと
称する形式の命令である。形式的には、Mタイプの形式
の命令のディスティネーションレジスタ指定フィールド
(dst1)に代えて、ソースレジスタ指定フィールド(src2)
を設けた形式になっている。すなわち、2個の内部レジ
スタを指定するソースレジスタ指定フィールド(src1),
(src2)に格納された値の大小関係を比較してプログムカ
ウンタで指定されたアドレスにジャンプしたり、いずれ
か一方のソースレジスタ指定フィールド(src1),(src2)
に格納された値をジャンプ先のアドレスとしてジャンプ
したりするのである。また、この形式の命令には無演算
命令も含まれる。
【0013】上述したステータスタグフィールド(St)
は4ビットであって、図4に示すように、ソースコード
の1単位を構成するワード数を格納するための3ビット
のコード数フィールド(code)と、ソースコードの各単位
に対応したオブジェクトコードのブロックの最後の命令
コードの位置を示す1ビットの終了位置指定フィールド
(end) とを備えている。ソースコードの1単位が複数ワ
ードであって対応するオブジェクトコードのブロックが
複数ワードである場合に、コンパイラはソースコードの
1単位に対応するオブジェクトコードのブロックの先頭
の命令コードのコード数フィールド(code)に、ソースコ
ードの1単位のワード数を設定する。また、同一ブロッ
ク内の他の命令コードについてはコード数フィールド(c
ode)を0に設定する。ここに、コード数フィールド(cod
e)は、3ビットであるから最大数は7になるが、ソース
コードの1単位が8ワード以上である場合もある。この
場合には、ソースコードの1単位に対応したオブジェク
トコードのブロックの先頭の命令コードから順にコード
数フィールド(code)にワード数を設定し、同一ブロック
内の合計のワード数が、ソースコードの1単位のワード
数になるようにすればよい。たとえば、ソースコードの
1単位が15ワードであれば、オブジェクトコードの対
応するブロックの命令コードのコード数フィールド(cod
e)は、ブロックの先頭の命令コードから順に、7、7、
1となる。
【0014】一方、ソースコードの1単位に対応するブ
ロックの終了位置は、終了位置指定フィールド(end) の
内容により指定される。すなわち、終了位置指定フィー
ルド(end) が、「0」のときにはブロックの途中の命令
コードを示し、「1」のときには最終位置の命令コード
を示すのである。以上をまとめて、ソースコードとオブ
ジェクトコードの命令コードのステータスタグフィール
ド(St)の設定内容との対応関係の一例を示すと、表1の
ようになる。
【0015】
【表1】
【0016】オブジェクトコードの各命令コードに上述
のようなステータスタグフィールド(St)を設けたことに
より、コプロセッサ21の内部に、図1のような構成を
設けてオブジェクトコードに対応するソースコードのア
ドレスを簡単に求めることができる。すなわち、命令の
実行が開始されると、各命令コードにおけるコード数フ
ィールド(code)に設定された値が加算器31の前の出力
結果と順次積算される。加算器31の出力結果は一時レ
ジスタ32に格納され、次のコード数フィールド(code)
に設定された値に加算される。また、終了位置指定フィ
ールド(end) に対応する信号endはアンド回路33にク
ロック信号clk とともに入力され、図2(a)のように
終了位置指定フィールド(end) が1になるとアンド回路
33への入力はHレベルになり、図2(c)に示すよう
にアンド回路33の出力はクロック信号clk (図2
(b)参照)の立ち上がりに同期して立ち上がる。アン
ド回路33の出力が立ち上がると、アドレスレジスタ3
4は一時レジスタ32の出力値を読み込んで保持する。
すなわち、アドレスレジスタ34は、ソースコードの命
令の1単位に対応したオブジェクトコードのブロックの
実行が終了した時点で、それまでに実行されたソースコ
ードの全ワード数を格納するのである。このようにし
て、ソースコードの1単位に対応するオブジェクトコー
ドのブロックの実行が終了すると、アドレスレジスタ3
4にはソースコードの対応するアドレスが格納されるこ
とになる。ここに、アドレスにオフセット値が設定され
ている場合には、アドレスレジスタ34の出力値にオフ
セット値を加算すればよい。また、ソースコードは順次
実行されるのであって、分岐等は含まないものと仮定し
ている。
【0017】以上のような手順で処理が進むと、オブジ
ェクトコードのアドレスと、ステータスタグフィールド
の内容と、一時レジスタ32の出力値と、アドレスレジ
スタ34の出力値とは、表2のような関係になる。した
がって、たとえば、オブジェクトコードの実行中にアド
レス13で演算エラーが生じて実行が停止したり、ブレ
ーク命令によって実行が停止したりしたときには、アド
レスレジスタ34の出力値は22になるから、この出力
値によってソースコードのどの命令が実行されたときに
実行が停止したのかを知ることができるのである。
【0018】
【表2】
【0019】ところで、ユーザがソースコードの編集を
行う場合であって、挿入や削除を行うために、ソースコ
ードのアドレスによって挿入や削除の箇所を指定する場
合には次のような処理を行う。この場合には、ソースコ
ードにおいて挿入や削除を行う箇所のアドレスをターゲ
ットアドレスレジスタ35に設定する。次に、オブジェ
クトコードの命令コードを先頭から順次読み込んで実行
時と同様に加算器31によってコード数フィールド(cod
e)の設定値を順次積算する。また、オブジェクトコード
の命令コードの終了位置指定フィールド(end) が1にな
れば、アドレスレジスタ34に一時レジスタ32の出力
値を読み込む。ここまでは、オブジェクトコードの実行
時と同じである。アドレスレジスタ34の出力値は、一
致検出回路36においてターゲットアドレスレジスタ3
5に設定されたソースコードのアドレスと比較され、両
者が一致すると一致検出回路36から一致信号が出力さ
れる。また、一致信号が出力された時点のオブジェクト
コードのアドレスに1を加えた値が、ソースコードに対
応したオブジェクトコードの求めるアドレスになる。た
とえば、表2において、ソースコードのターゲットアド
レスが22であるとすれば、オブジェクトコードの対応
するアドレスが12になった時点で一致信号が出力され
ることになる。そこで、12に1を加えて13とすれ
ば、ソースコードのターゲットアドレスに対応したオブ
ジェクトコードのアドレスになるのである。
【0020】
【発明の効果】本発明は上述のように、オブジェクトコ
ードの命令コードにソースコードの各単位を構成するワ
ード数を格納するコード数フィールドを設けて、オブジ
ェクトコードの実行時にソースコードの単位ごとのワー
ド数を順次加算してアドレスレジスタに格納しているの
で、コプロセッサによるオブジェクトコードの実行中
に、ソースコードのどの箇所に対応するオブジェクトコ
ードを実行しているのかをアドレスレジスタの出力値に
よって知ることができ、コプロセッサの実行停止時など
に、ソースコードのどの位置で実行が停止したのかを容
易に知ることができるという利点を有するのである。ま
た、逆にソースコードの指定箇所が、オブジェクトコー
ドのどの位置に対応するのかも容易に知ることができる
とう効果がある。その結果、デバッグや編集などの際に
ソースコードとオブジェクトコードとのアドレスの対応
関係を容易に知ることができるのである。
【図面の簡単な説明】
【図1】実施例を示す要部ブロック図である。
【図2】実施例の動作説明図である。
【図3】実施例に用いる命令コードの形式を示す説明図
である。
【図4】実施例に用いる命令コード中のステータスタグ
フィールドの構成例を示す説明図である。
【図5】本発明に係るプログラマブルコントローラのブ
ロック図である。
【図6】本発明に係るプログラマブルコントローラでの
ソースコードとオブジェクトコードとの関係の例を示す
説明図である。
【符号の説明】
31 加算器 32 一時レジスタ 33 アンド回路 34 アドレスレジスタ 35 ターゲットアドレスレジスタ 36 一致検出回路

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 シーケンスプログラムを実行する命令実
    行専用のコプロセッサをメインプロセッサとは別に備
    え、シーケンスプログラムのソースコードをソースプロ
    グラムメモリに格納するとともに、メインプロセッサに
    よってシーケンスプログラムのソースコードをコンパイ
    ルして得たコプロセッサ用のオブジェクトコードをオブ
    ジェクトプログラムメモリに格納したプログラマブルコ
    ントローラにおいて、オブジェクトコードの各命令コー
    ドには、ソースコードの各単位のワード数を設定するこ
    とができるコード数フィールドと、ソースコードの各単
    位に対応したオブジェクトコードのブロックの最後の命
    令コードを示す終了位置指定フィールドとが設けられて
    いて、ソースコードの各単位に対応するオブジェクトコ
    ードのブロック内のコード数フィールドの合計値がその
    ブロックに対応するソースコードの単位のワード数にな
    るようにコード数フィールドの値が設定され、コプロセ
    ッサは、コード数フィールドの値を積算する加算器と、
    加算器の出力値を保持する一時レジスタと、終了位置指
    定フィールドの値によりブロックの終了が示されると一
    時レジスタの出力値を取り込むアドレスレジスタとを備
    えて成ることを特徴とするプログラマブルコントロー
    ラ。
JP3174158A 1991-07-15 1991-07-15 プログラマブルコントローラ Expired - Lifetime JP2559924B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3174158A JP2559924B2 (ja) 1991-07-15 1991-07-15 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3174158A JP2559924B2 (ja) 1991-07-15 1991-07-15 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH0519821A JPH0519821A (ja) 1993-01-29
JP2559924B2 true JP2559924B2 (ja) 1996-12-04

Family

ID=15973709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3174158A Expired - Lifetime JP2559924B2 (ja) 1991-07-15 1991-07-15 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2559924B2 (ja)

Also Published As

Publication number Publication date
JPH0519821A (ja) 1993-01-29

Similar Documents

Publication Publication Date Title
US5867726A (en) Microcomputer
KR100327776B1 (ko) 다중 명령세트를 사용하는 데이터 처리방법
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
JP2005317023A (ja) データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法
JP2004164554A (ja) プログラム実行監視装置および方法
JP2009536769A (ja) ハードウェアエンドループ情報の命令へのコード化
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JP2559924B2 (ja) プログラマブルコントローラ
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
US7631166B1 (en) Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JP3740321B2 (ja) データ処理装置
JPH0222413B2 (ja)
JP2559929B2 (ja) プログラマブルコントローラ
JP2607319B2 (ja) プログラマブルコントローラ
JP2853647B2 (ja) デバッガ付きインタプリタへの機能付加方式
JPH1196001A (ja) プログラム実行装置及びプログラム変換方法
JP3060917B2 (ja) プロセッサ
JP2764947B2 (ja) 命令制御方式
JP2001184227A (ja) シミュレーション装置
JPH02110636A (ja) タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ
Güran A simulation tool for mc6811
JPH05265755A (ja) 並列命令実行方式
JPH05233283A (ja) 並列命令実行方式
JPH10289125A (ja) マイクロプロセッサのプログラムデバッグ装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 13

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 13

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090905

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100905

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 15

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 15

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term