JPH05189014A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JPH05189014A JPH05189014A JP602292A JP602292A JPH05189014A JP H05189014 A JPH05189014 A JP H05189014A JP 602292 A JP602292 A JP 602292A JP 602292 A JP602292 A JP 602292A JP H05189014 A JPH05189014 A JP H05189014A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- memory
- data memory
- fetch
- 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.)
- Granted
Links
Landscapes
- Advance Control (AREA)
- Programmable Controllers (AREA)
Abstract
対してパイプライン処理を不都合なく行うプログラマブ
ルコントローラを提供する。 【構成】アドレスを共用したオブジェクトプログラムメ
モリおよびデータメモリを備える。コントローラ34
は、命令デコーダ33でデコードした命令が微分命令で
あるときに、プログラムカウンタ41の出力値をデクリ
メントする。また同時に、命令レジスタ32への次命令
のフェッチを中断させ、微分命令に要するデータをデー
タメモリに書込む。その後、次命令のフェッチを再開さ
せる。
Description
能なプロセッサを備えるプログラマブルコントローラに
関するものである。
の処理速度を向上させることなどを目的として、図3に
示すように、従来から用いられている汎用のメインプロ
セッサ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の内部処理は3
2ビットで行われるから、RISCプロセッサであるこ
ととあいまって命令をメインプロセッサ11よりも高速
に実行できるのである。
係は、図4のようになる。たとえば、ソースコードでは
3命令であって、各命令のワード数が2、4、4である
とき、縮小命令を用いたオブジェクトコードのワード数
は、ソースコードの各命令に対して、たとえば、3、
7、5などとなる。オブジェクトコードでは、1ワード
が1命令に対応するのであって、上述した例では、ソー
スコードで2ワードを用いる1命令が、オブジェクトコ
ードでは3命令などとなっている。
サ21の命令セットには入力の立ち上がりや立ち下がり
を検出する微分命令と称するものが用意されている。ま
た、微分命令は、スキャン毎ではなく1スキャンのみ微
分処理を行う形式が普通である。いま、オブジェクトプ
ログラムが図5(a)のようなものであるとする。ここ
では、入力の立ち上がりを1回だけ検出する微分命令D
Fを用いている。入力X0がオフからオンに立ち上がる
と、出力Y30がオンになるのである。この処理は1ス
キャンだけ行われる。このような処理を行うには、前ス
キャンの入力X0の値を保持しておくことが必要であ
る。すなわち、微分命令DFを1スキャンのみで実行す
るためには、入力X0がオフからオンに一旦立ち上がる
と、以後は入力X0がオンに保たれるようにすることが
必要であって、入力X0を次スキャン以降ではオンに保
つことによって、微分命令DFで立ち上がりが検出され
ないようにするのである。このように入力X0のオン・
オフの状態を保持するために、図5(b)のように、オ
ブジェクトプログラムメモリ22と同じアドレスを有
し、各メモリセルが1ビットであるデータメモリ23を
設けることが考えられている。
て図5(b)に示すように、オブジェクトプログラムメ
モリ22のアドレス0に入力X0を取込む命令、アドレ
ス1に入力X0とデータメモリ23に保持されている値
との比較により立ち上がりの有無を検出する命令、アド
レス2に出力Y30を出す命令が格納されているものと
する。アドレス0の命令を実行して入力X0がオフから
オンに立ち上がると、アドレス1ではデータメモリ23
のアドレス1に格納されている前スキャンの入力X0
(初期状態では入力X0はオフである)とアドレス0の
実行により得た入力X0とを比較して立ち上がりを検出
し、加算演算を実行する。その後、出力Y30を得るの
である。ここで、入力X0が一旦オンになると、以後は
データメモリ23のアドレス1はオンに保たれるから、
アドレス0で取り込んだ入力X0がオンであってもアド
レス1で加算演算は行われることがないのである。
ように、パイプライン処理を行うことによって実行速度
の向上を図っている。すなわち、コプロセッサ21にお
いて命令を実行する際には、オブジェクトプログラムメ
モリ22から命令を1つずつフェッチする命令フェッチ
サイクルIF、フェッチした命令をデコードするデコー
ドサイクルDEC、デコードした命令を実行する実行サ
イクルEXEの3段階を要するのが普通であり、1つの
命令のデコードの間に次命令のフェッチを行う動作を繰
り返すことによって全体としての命令の実行時間を短縮
することが考えられている。ここに、命令フェッチサイ
クルIF、デコードサイクルDEC、実行サイクルEX
Eはそれぞれ1マシンサイクルであり、1マシンサイク
ルはたとえばクロック信号の3周期分(6フェーズ)に
規定される。
る基本命令を実行するビット処理部を備え、ビット処理
部は演算処理が施される1ビットのデータを保持するア
キュムレータであるビットアキュムレータを備える。図
5(b)のオブジェクトプログラムにおいてアドレス
(0)で取り込んだ入力X0がオンであったとすると、
ビットアキュムレータに1が格納される。次に、アドレ
ス(1)で微分命令DFがフェッチされると、同時にデ
ータメモリ23の同じアドレスのデータが読み出され
る。データメモリ23には前スキャンの入力X0が格納
されている。たとえば、初期状態で入力X0がオフ(=
「0」)であったとすると、データメモリ23の値は
「0」である。微分命令DFの実行サイクルでは、デー
タメモリ23から読み出した値をビットアキュムレータ
の値と比較する。ここで、データメモリ23から読み出
した値が「0」、ビットアキュムレータの値が「1」で
あるとすれば、入力X0が立ち上がったことになるか
ら、条件が満たされて微分命令DFが実行され、さらに
次命令OT Y30が実行されるのである。ここにおい
て、微分命令DFを実行したときに、データメモリ23
のアドレス(1)に「1」を書き込んでおけば、次スキ
ャン以降は、入力X0の立ち上がりが検出されないこと
になり、1スキャンのみの立ち上がり検出が行えること
になる。
ンサイクルごとにアドレスがインクリメントされるので
あって、アドレスが(1)であるときに命令ST X0
がデコードされ、微分命令DFがフェッチされる。さら
に、アドレスが(2)になると、命令ST X0の実
行、微分命令FDのデコード、命令OT Y30のフェ
ッチが行われる。このようにパイプライン処理を行って
いるから、アドレスが(2)であるマシンサイクルにお
いて微分命令DFであることが識別されるのであって、
微分命令DFに対応してデータメモリ23のアドレス
(1)にデータを書き込まなければならないにもかかわ
らず、指定アドレスがすでに(2)になっており、アド
レス(1)にデータを書き込むことができないという問
題がある。すなわち、上述したようなメモリ構成でパイ
プライン処理を行うようにすると、パルス型応用命令の
処理ができないという問題が生じる。
ログラムメモリ22とデータメモリ23とのアドレスを
各別に管理することも考えられるが、アドレスの管理が
複雑になってハードウェアが複雑化するという問題があ
る。また、微分命令についてはメインプロセッサ11に
実行を移すことも考えられているが、コプロセッサ21
による処理速度の向上という効果が半減することにな
る。
のであり、オブジェクトプログラムメモリとデータメモ
リとのアドレスを共通化してアドレス管理を容易にしな
がらも、パイプライン処理を不都合なく行えるようにし
たプログラマブルコントローラを提供しようとするもの
である。
達成するために、シーケンスプログラムを格納したプロ
グラムメモリと、プログラムメモリと同じアドレスを有
した各1ビットのメモリセルを有するデータメモリと、
プログラムメモリおよびデータメモリのアドレスを指定
するアドレス発生器と、アドレス発生器により指定され
たアドレスに格納されている命令をプログラムメモリか
らフェッチする命令レジスタと、命令レジスタに格納さ
れた命令をデコードする命令デコーダと、デコードされ
た命令を実行する演算部と、1つの命令のフェッチとデ
コードと実行とを順に行うとともにデコードから実行ま
での間に次命令をフェッチするようにパイプライン制御
を行うコントローラとを備えたプログラマブルコントロ
ーラにおいて、コントローラは、命令デコーダでデコー
ドした命令が微分命令であるときに、アドレス発生器に
よる指定アドレスをデクリメントさせるとともに、命令
レジスタへの次命令のフェッチを中断させて微分命令に
要するデータをデータメモリに書込み、その後、次命令
のフェッチを再開させるのである。
メモリとがアドレスを共有している構成において、パイ
プライン処理を行う際に、微分命令であると識別される
と、指定アドレスをデクリメントさせるとともに、次命
令のフェッチを中断させて微分命令に要するデータをデ
ータメモリに書込み、その後、次命令のフェッチを再開
させるので、微分命令の実行の際に、パイプライン処理
を一時的に中断してデータメモリへの所要データの書込
みなどを行うことができ、プログラムメモリとデータメ
モリとでアドレスを共用した簡単なハードウェアを用い
ながらも、コプロセッサの内部のみで処理を行うことが
でき、高速な処理が可能になるのである。
示す。クロックジェネレータ31は、内部回路の同期を
とるようにクロック信号を発生する。クロック信号に
は、マシンサイクルに同期する通常の同期クロックsclk
のほか、命令をフェッチするタイミングを与えるフェッ
チクロックfclk、オブジェクトプログラムメモリ22お
よびデータメモリ23の読込タイミングを設定するリー
ドクロックrclk、データメモリ23への書込タイミング
を設定するライトクロックwclk、後述するプログラムカ
ウンタ41への書換クロックcclkがある。
命令レジスタ32に読み込まれる。また、次命令が命令
レジスタ32に読み込まれると同時に、前命令は命令デ
コーダ33に入力されてデコードされる。すなわち、フ
ェッチクロックfclkは、各マシンサイクルごとに1つず
つ発生するのである。命令デコーダ33において微分命
令であると判定されるとパルスが発生する。このパルス
は、コプロセッサ21の内部動作を制御するコントロー
ラ34に入力されると同時にカウンタ36に入力され、
カウンタ36を動作可能にする。カウンタ36は動作可
能な状態では、同期クロックsclkをカウントするから、
結果的に、カウンタ36の出力値は微分命令の合計個数
に相当することになる。このカウンタ36の出力はコン
トローラ34に入力される。
値を取り込むビットメモリレジスタ37の値を読み込む
ことができ、またビットアキュムレータ(図示せず)に
対して信号wb,rb を授受することによって、ビットアキ
ュムレータのデータを読み出したり、ビットアキュムレ
ータにデータを書き込んだりすることができる。さら
に、コントローラ34はクロックジェネレータ31を制
御して、フェッチクロックfclkやライトクロックwclkの
出力タイミングを制御するための、フェッチイネーブル
信号fe、ライトイネーブル信号weを出力する。コントロ
ーラ34からは、プログラムカウンタ41の出力値をイ
ンクリメントするかデクリメントするかを選択するため
の増減信号indeも出力される。
ジェクトプログラムメモリ22およびデータメモリ23
のアドレスを指定するのであって、プログラムカウンタ
41の出力端には、出力値をインクリメントするインク
リメンタ43と、出力値をデクリメントするデクリメン
タ44とが接続される。インクリメンタ43とデクリメ
ンタ45との出力はマルチプレクサであるセレクタ42
に入力され、セレクタ42に増減信号indeが入力される
ことによって、プログラムカウンタ41の出力値をイン
クリメントするかデクリメントするかが選択される。す
なわち、プログラムカウンタ41の出力値を増減して指
定アドレスを増減できるのである。
して動作を説明する。ここで説明を容易にするために、
図2に示すように、各マシンサイクルに対して第1サイ
クルから順に1〜7の数字を付すことにする。第1サイ
クルおよび第2サイクルは従来と同様になる。第2サイ
クルでは、アドレス(1)が指定されているから、微分
命令DFがフェッチされるとともに、ビットメモリレジ
スタ37にデータメモリ23のアドレス(1)のデータ
が取り込まれる。第3サイクルでは、命令STX0が実
行され、同時に微分命令DFがデコードされる。ここ
に、微分命令DFのデコードは第3サイクルの前半で行
われる。また、微分命令DFのデコードによってカウン
タ36が動作可能になり、カウンタ36によって同期ク
ロックsclkが計数される。コントローラ34では命令デ
コーダ33の出力およびカウンタ36の出力を受けて、
図2(c)のように増減信号をインクリメントからデク
リメントに立ち下げ、プログラムカウンタ41の出力値
をデクリメントするように要求する。また、図2(e)
のようにフェッチイネーブル信号feを命令のフェッチを
禁止するように立ち下げる。このとき同時に、命令ST
X0が実行され、図2(f)のように、入力X0がビ
ットアキュムレータに書込信号wbによって書き込まれ
る。
41の出力値をデクリメントするように増減信号による
要求が出されるから、第4サイクルでは図2(b)のよ
うにプログラムカウンタの出力値であるアドレスは
(1)に戻ることになる。ここで、フェッチイネーブル
信号feがフェッチを禁止しているから、第4サイクルで
は次命令OT Y30はフェッチされず、微分命令DF
の実行のみがなされる。また、第4サイクルの開始時に
はライトイネーブル信号weが立ち上がってビットアキュ
ムレータに格納された値(すなわち、現在のスキャンに
おけるX0の値)がデータメモリ23に書き込まれるの
である。第4サイクルでは命令デコーダ33からコント
ローラ34への入力がないから増減信号indeはインクリ
メント側に復帰する。
タ41の出力値はインクリメントされてアドレス(2)
が指定され、第5サイクルの後半部でフェッチイネーブ
ル信号feが立ち上がって命令OT Y30がフェッチさ
れることになる。第5サイクルでは微分命令DFが実行
されるのであって、ビットアキュムレータの値と第2サ
イクルでビットメモリレジスタ37に格納された値とが
比較され、ビットメモリレジスタ37に格納された値が
「0」、ビットアキュムレータに格納された値が1であ
ると、立ち上がりの条件を満たすからビットアキュムレ
ータを「1」にセットする。ただし、ここではビットア
キュムレータはすでに「1」になっている。以後は通常
のパイプライン制御に復帰する。第6サイクルでは、ビ
ットアキュムレータが「1」になっていればメモリへの
書込を行うが、アキュムレータが「0」であれば無動作
になる。
れを最小限に抑えてコプロセッサ21内で命令実行の処
理を継続しているので、データメモリ23のアドレスを
オブジェクトコードメモリ22と共有していることとあ
いまって、ハードウェアを比較的簡単にすることがで
き、また、高速な処理が可能になるのである。
リとデータメモリとがアドレスを共有している構成にお
いて、パイプライン処理を行う際に、微分命令であると
識別されると、指定アドレスをデクリメントさせるとと
もに、次命令のフェッチを中断させて微分命令に要する
データをデータメモリに書込み、その後、次命令のフェ
ッチを再開させるので、微分命令の実行の際に、パイプ
ライン処理を一時的に中断してデータメモリへの所要デ
ータの書込みなどを行うことができ、プログラムメモリ
とデータメモリとでアドレスを共用した簡単なハードウ
ェアを用いながらも、コプロセッサの内部のみで処理を
行うことができ、高速な処理が可能になるという効果が
ある。
ロック図である。
ソースコードとオブジェクトコードとの関係の例を示す
説明図である。
示し、(b)はメモリの構成を示す説明図である。
Claims (1)
- 【請求項1】 シーケンスプログラムを格納したプログ
ラムメモリと、プログラムメモリと同じアドレスを有し
た各1ビットのメモリセルを有するデータメモリと、プ
ログラムメモリおよびデータメモリのアドレスを指定す
るアドレス発生器と、アドレス発生器により指定された
アドレスに格納されている命令をプログラムメモリから
フェッチする命令レジスタと、命令レジスタに格納され
た命令をデコードする命令デコーダと、デコードされた
命令を実行する演算部と、1つの命令のフェッチとデコ
ードと実行とを順に行うとともにデコードから実行まで
の間に次命令をフェッチするようにパイプライン制御を
行うコントローラとを備えたプログラマブルコントロー
ラにおいて、コントローラは、命令デコーダでデコード
した命令が微分命令であるときに、アドレス発生器によ
る指定アドレスをデクリメントさせるとともに、命令レ
ジスタへの次命令のフェッチを中断させて微分命令に要
するデータをデータメモリに書込み、その後、次命令の
フェッチを再開させることを特徴とするプログラマブル
コントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP602292A JP2721610B2 (ja) | 1992-01-16 | 1992-01-16 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP602292A JP2721610B2 (ja) | 1992-01-16 | 1992-01-16 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05189014A true JPH05189014A (ja) | 1993-07-30 |
JP2721610B2 JP2721610B2 (ja) | 1998-03-04 |
Family
ID=11627065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP602292A Expired - Lifetime JP2721610B2 (ja) | 1992-01-16 | 1992-01-16 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2721610B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129667A (ja) * | 2006-11-17 | 2008-06-05 | Meidensha Corp | プログラマブルコントローラ |
-
1992
- 1992-01-16 JP JP602292A patent/JP2721610B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129667A (ja) * | 2006-11-17 | 2008-06-05 | Meidensha Corp | プログラマブルコントローラ |
Also Published As
Publication number | Publication date |
---|---|
JP2721610B2 (ja) | 1998-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4870562A (en) | Microcomputer capable of accessing internal memory at a desired variable access time | |
US4949241A (en) | Microcomputer system including a master processor and a slave processor synchronized by three control lines | |
JP2002041489A (ja) | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 | |
KR920001319A (ko) | 처리기 및 처리기의 처리방법 | |
JP2734468B2 (ja) | プロセッサ | |
JP2002516425A (ja) | デジタルプロセッサ用制御装置 | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
US5742842A (en) | Data processing apparatus for executing a vector operation under control of a master processor | |
KR100321745B1 (ko) | 외부메모리액세스를위한마이크로컨트롤러유닛 | |
JP2003233509A (ja) | デジタル信号処理装置 | |
JPH02159624A (ja) | 先入れ先出しレジスタ装置 | |
JP2721610B2 (ja) | プログラマブルコントローラ | |
JP2721611B2 (ja) | プログラマブルコントローラ | |
EP0573071A2 (en) | A microprocessor | |
US20040103267A1 (en) | Data processor having cache memory | |
JP3954159B2 (ja) | 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法 | |
JPS6242301B2 (ja) | ||
JP3476314B2 (ja) | マイクロプロセッサ | |
US5109516A (en) | Sequence controller for controlling next operating state with a short sequence | |
JPH04370832A (ja) | プロセッサ回路 | |
JPH08161222A (ja) | プロセッサ及びそのプログラム作成方法 | |
JPS6269354A (ja) | 情報処理システム | |
JPH0683986A (ja) | シングルチップ・マイクロコンピュータ | |
JPH0364903B2 (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: 19971104 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081121 Year of fee payment: 11 |
|
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: 20081121 Year of fee payment: 11 |
|
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: 20091121 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091121 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101121 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 14 |
|
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: 20111121 Year of fee payment: 14 |
|
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: 20121121 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 15 |