JP3027627B2 - プログラマブルコントローラの演算プロセッサ - Google Patents

プログラマブルコントローラの演算プロセッサ

Info

Publication number
JP3027627B2
JP3027627B2 JP3186628A JP18662891A JP3027627B2 JP 3027627 B2 JP3027627 B2 JP 3027627B2 JP 3186628 A JP3186628 A JP 3186628A JP 18662891 A JP18662891 A JP 18662891A JP 3027627 B2 JP3027627 B2 JP 3027627B2
Authority
JP
Japan
Prior art keywords
instruction
unit
address
bpu
bit
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
JP3186628A
Other languages
English (en)
Other versions
JPH04363704A (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 JP3186628A priority Critical patent/JP3027627B2/ja
Publication of JPH04363704A publication Critical patent/JPH04363704A/ja
Application granted granted Critical
Publication of JP3027627B2 publication Critical patent/JP3027627B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラマブルコント
ローラの演算プロセッサに関する。
【0002】
【従来の技術】制御と、情報の融合というFA(ファク
トリーオートメーション)化の傾向に基づき、プログラ
マブルコントーラの用途は、従来のリレーシーケンス制
御中心のプログラム構成から、データ処理更には情報処
理用応用命令が多用されたプログラム構成に変わってき
ている。
【0003】最近のプログラマブルコントローラではこ
うした傾向に基づき、応用命令が複雑、高機能化する方
向にある。このプログラマブルコントローラのこのよう
な命令が高機能化する動きは、CISC型と称されるコ
ンピュータの動向に類似している。一方、情報処理分野
におけるコンピュータの動きとして、RISC型と称さ
れるコンピュータが複雑、高機能化したCISC型コン
ピュータに対比させる形で登場してきている。
【0004】特に、最近のワークステーション分野では
RISC型アーキテクチャのプロセッサがCPUとして
多く採用されている。ところでプログラマブルコントロ
ーラに利用されている演算プロセッサは、CISC型タ
イプのアーキテクチャを持つものが従来から採用されて
いる。この場合図19に示すように、インストラクショ
ンメモリIMと、CISC型演算プロセッサ1’と、デ
ータメモリDMと、マイクロコードMCとから構成さ
れ、マイクロコードMCはより複雑、高機能化する応用
命令を実行するための情報を得る手段として、命令自体
のコードとは別に用いたものである。
【0005】
【発明が解決しようとする課題】上述のような命令処理
にはマイクロコードMCが不要なRISC型に比べ、処
理速度が遅くなる。また、命令のコードサイズがばらば
らであり、高効率なパイプライン処理ができないという
問題もある。更には、複雑な処理をする高機能な命令を
実行する場合には、ハードウェアが複雑となるという問
題もある。また複雑さを軽減するためにはマイクロコー
ドMCにハードウェア機能を一部依存させるが、内蔵ハ
ードウェアとマイクロコードMCとのトレードオフが難
しいという問題もある。
【0006】一方、RISC型のアーキテクチャを持つ
演算プロセッサは、プログラマブルコントローラには未
だ使用されていない。つまり最も使用頻度の高いシーケ
ンス命令は特殊な処理が必要なため、RISC型の命令
セットではサポートされていない。そのため、RISC
型の命令を使用すれば、一つのシーケンス命令に対し、
多くの命令を組合わさなければならず、そのため命令の
サイズが大きくなり、メモリコストが高くなるだけでな
く、CISC型より遅くなる場合もある。
【0007】図20はワークシュテション分野で利用し
ているRISC型の演算プロセッサ1''を用いてプログ
ラマブルコントローラを構成し、シーケンス命令の基本
的な処理である1ビット論理演算などのビット処理命令
をサポートしていることを前提とした命令を構成した場
合を示す。この場合インストラクッションメモリIMに
格納する、例えば〔OUT Y0〕命令はデータ入力す
る〔LD, R1,Y0〕命令と、ビット操作をして出力す
る〔BITOUT Y0〕命令の二つの命令が必要とな
る。現在市販されているRISC型プロセッサでは、も
っと多くの命令を必要とするのは言うまでもない。尚L
Dはロード命令、STRはストア命令、STはスタート
命令を示す。
【0008】本発明は上述の点に鑑みて為されたもの
で、その目的とするところは使用メモリコストを下げる
一方、応用命令の高効率のパイプライン実行を可能とし
た演算プロセッサのアーキテクチャを実現して、コスト
パーフォーマンスの高いプログラマブルコントローラの
演算プロセッサを提供するにある。
【0009】
【課題を解決するための手段】本発明は、CISC型の
シーケンス命令を実行するビットプロセッシングユニッ
トと、RISC型のデータ処理命令を実行するマルチビ
ットプロセッシングユニットと、両プロセッシングユニ
ットのマルチ演算を調停するコントロールユニットと、
両プロセッシングユニット共有のインストラクションレ
ジスタを持つインストラクションフェッチユニットと、
データメモリのバスインターフェース部とから少なくと
もなり、使用頻度の高いシーケンス命令をビットプロセ
ッシングユニットでパイプライン実行し、データ処理用
の応用命令をRISC型のデータ処理命令にコンパイル
してマルチビットプロセッシングユニットでパイプライ
ン実行させるものである。
【0010】
【作用】本発明によれば、使用頻度の高いシーケンス命
令をビットプロセッシングユニットでパイプライン実行
するので、少ないメモリサイズで高効率のパイプライン
を実現できる。またデータ処理用の応用命令をRISC
型のデータ処理命令にコンパイルしてマルチビットプロ
セッシングユニットでパイプライン実行させるので、複
数ワードに及ぶ応用命令でも高い効率のパイプラインで
高速実行できる。
【0011】
【実施例】以下本発明を実施例により説明する。 (実施例1)図1は、本発明の実施例1の演算プロセッ
サ1を中心としたブロック構成を示し、図示するように
外部に命令が格納されるインストラクションメモリIM
と、データメモリDMとを分離して設けた所謂ハーバー
ドアーキテクチャを採用している。
【0012】ユーザのソースプログラムは、インストラ
クションメモリIMとは別のプログラムメモリ(図示せ
ず)に格納し、実行時には32bitのインストラクシ
ョンメモリIMにコンパイルされて格納されることを前
提とする。またシーケンス命令は、ユーザのソースコー
ドが1対1でコンパイルされる。一方データ処理用の応
用命令は、RISC型の命令に変換されるため、コード
サイズの比率は定まらない。
【0013】以上の前提条件の下に本発明の実施例を更
に詳細に説明する。インストラクションメモリIMにあ
る命令は全て1ワード(1ワード=32bit)で命令
が完結している。またデータメモリDMのデータ幅は1
6bit幅としている。演算プロセッサ1は内部を大き
く分類してインストラクションフェッチユニット2(以
下IFU部と略す)、コントロールユニット3、ビット
プロセッシングユニット(以下BPU部と略す)4、マ
ルチビットプロセッシングユニット(以下MPU部と略
す)5、データメモリバスインターフェース部(以下B
IU部と略す)6の5つのユニットから構成されてお
り、IFU部2は図2に示すように16bitカウンタ
で構成されたプログラムカウンタ(以下PCと略す)2
aと、命令をフェッチする32bit長のレジスタによ
り構成されたインストラクションレジスタ(以下IRと
略す)2bと,ゲート素子2c、2dとからなり、PC
2aの更新はBPU部4又はMPU部5からのPC2a
の更新情報のPCINC/PCHLT=”H”と、コントロールユ
ニット3のクロックコントローラ3bから出力されるFe
tchCLKとのゲート素子2cでの合成条件によりPC2a
のクロックを生成して行い、更新しないときは、PCINC/
PCHLT=”L”となって、クロックを生成しない。命令
のフェッチも同様で、BPU部4又はMPU部5からの
フェッチ許可/禁止信号のFEN/FINH=”H”と、コント
ロールユニット3のクロックコントローラ3bから出力
されるFetchCLKとのゲート素子2dでの合成により、Fe
tchCLKをIR2bに出力し、このFetchCLKの立ち上がり
エッジでIR2bの書き込みを行うもので、FetchCLKは
マシンサイクルの変化点で立ち上がる。
【0014】またコントロールユニット3は2つの演算
ユニットの演算調停を主目的とするユニットで、命令の
種類としてBPU命令か、MPU命令かを大きく2つに
分け、この判定をベースとしてBPU部4と、MPU部
5とのマルチ演算調停を行い、32bitのインストラ
クションバスIBの内上位6bitをMPU/BPU判
定デコード部3aでデコードしてMPU命令か、BPU
命令かの判定を行い、その判定結果により、MPU部
5、BPU部4から夫々出力される情報を選択するため
のMPU/BPU 信号をラッチ回路3fを介してBIU部6に
出力する。またFetchCLKを含めてマルチ演算パイプライ
ン方式を実現するための各種クロックはクロックコント
ローラ3b及び実行コントロール部3cから生成され
る。尚3d、3eはデータセレクタであり、MPU/BPU 信
号をセレクタ信号として用い、PCINC/PCHLT、FEN/FINH
を入力A,Bを通じてMPU部5、BPU部4から選択
して取り込んで出力Yから出す。
【0015】図3はクロックコントローラ3b又は実行
コントロール部3cから生成され、各ユニットに供給さ
れる各種クロックの波形を示し、同図(a)はベースク
ロックBASECLK 、同図(b)はFetchCLK、同図(c)は
MPU部5へ送るレジスタフェッチクロックRSCLK、同
図(d)はMPU部5、BPU部4へ送る演算クロッ
ク、同図(e)はBIU部6へ送るデータメモリ読み出
し信号DMRD、同図(f)はデータメモリ書き込み信号DM
WRである。
【0016】コントロールユニット3の実行コントロー
ル部3cはBPU部4、MPU部5からのデータアクセ
ス要求信号RQを取り込み、またBPU部4、MPU部5
に対し実行許可信号をパイプラインシーケンスに基づ
き、BPUEXU,MPUEXUとして出力する。特にMPUEXUは、パ
イプラインシーケンスにおいて実行許可を出力するタイ
ミングであっても、BPU部4の1ビットアキュムレー
タBITACCの内容がオフであれば、MPU部5に対して実
行許可を出力しない仕様になっている。BITACCは、シー
ケンス命令におけるビット処理結果が格納される1ビッ
トのアキュムレータである。
【0017】次に図3に示す各種クロックに基づき、パ
イプライン処理を行うためのBPU部4、MPU部5の
内部ハードウェア構成を説明する。BPU部4はBPU
命令を26bitで構成したもので、図4に示すよう
に、デコード部4a、データメモリDMのアドレス計算
部4b、マシンサイクルカウンタ4c、ALU4d、演
算ファンクションコード生成部4e、ワーキングレジス
タ4f、演算レジスタ4g、アドレスレジスタ4h等か
ら構成され、32bitの命令の上位6bitをBPU
指定コードに割り当て、残りの26bitをインストラ
クションバスIBを介してBPU命令として取り込み、
その内の上位5bitをオペコードOCとしてデコード
部4aによりデコードし、残りの21bitからなるオ
ペランドOPをアドレス計算部4bに取り込むようにな
っている。デコード部4aは、複数サイクルの実行ステ
ージを必要とする命令を処理するために、マシンサイク
ルカウンタ4cに実行ステージ数をプリセットし、実行
ステージを繰り返す毎に、デクリメントするもので、デ
クリメントした結果が0であれば、PCINC/PCHLT=”
H”,FEN/FINH=”H”とし、次の命令をフェッチして
パイプラインを保つ。このときマシンサイクルカウンタ
4cのプリセット値を必要実行ステージに1を引いた値
とする。実行ステージが一つの命令ではマシンサイクル
カウンタ4cのプリセット値が0となり、常に次の命令
をフェッチ許可することができる。またマシンサイクル
カウンタ4cの値が0以外のときはフェッチを禁止す
る。マシンサイクルカウンタ4cの内容はレジスタフェ
ッチクロックの立ち上がりエッジで更新される。
【0018】ビット処理が中心となるALU4dに対す
るファンクションコードは5bitのオペコードOCの
デコード出力と、ロジック回路4iを通じて取り込むマ
シンンサイクルカウンタ4cの情報MCDにより演算フ
ンクションコード生成部4eで決定生成され、またFetc
hCLKの立ち上がりでコードが更新される。尚ファンクシ
ョンコードには演算クロックを制御する機能もある。例
えば〔NOP〕命令ならばワーキングレジスタ4f及び
BITTACCを中心とする演算レジスタ4gの書き込みクロ
ックを生成しない。
【0019】データメモリDMのアドレスは、21bi
tのオペランドOPとマシンサイクルカウンタ4cのア
ドレス用マシンサイクル情報AMCDとに基づいてアド
レス計算部4bにより計算され、アドレスレジスタ4h
と、図1に示すBIU部6を介してデータメモリDMに
転送され、またデータメモリDMとワーキングレジスタ
4f及び演算レジスタ4gとの間のデータ授受もBIU
部6を介して行われる。複数実行の命令処理の場合各実
行ステージで異なるアドレスを出力する際マシンサクル
カウンタ4cの情報が必要となる。
【0020】尚演算クロックの立ち上がりのタイミング
とFetchCLKの立ち上がりは図3に示すように同じである
が、演算クロックのアクティブロウの幅がFetchCLKに比
べて大きくとってあるのは、演算クロックを必要とする
ワーキングレジスタ4fにRAMを使用し、このRAM
をアクセスするために必要なパルス幅を得るためであ
る。
【0021】図5はMPU部5の内部ハードウェア構成
を示している。ここでRISC型の命令を実行するMP
U部5でも乗除算を行う場合にはパイプライン処理中多
くの実行ステージを必要とするが、こうした乗除算は1
ワードの命令で実行が可能なため、BPU部4と同様に
マシンサイクルカウンタ5aを内蔵し、実行ステージを
管理するようになっている。
【0022】32bitの命令の内上位6bitのオペ
コードOCをデコード部5bでデコードし、残りの26
bitのオペランドOPをアドレス計算部5cに取り込
む。デコード部5bは複数サイクルの実行ステージを上
記のように必要とするために、マシンサイクルカウンタ
5aに実行ステージ数をプリセットし、実行ステージを
繰り返す毎にデクリメントするようになっており、デク
リメントした結果が0であれば、PCINC/PCHLT=”
H”、FEN/FINH=”H”とし、次の命令をフェッチして
パイプラインを保つ。このときマシンサイクルカウンタ
5aのプリセット値を必要実行ステージに1を引いた値
とする。実行ステージが一つの命令ではマシンサイクル
カウンタ5aのプリセット値は0となり、常に次の命令
をフェッチ許可することができる。またマシンサイクル
カウンタ5aの値が0以外のときはフェッチを禁止す
る。マシンサイクルカウンタ5aの内容はレジスタフエ
ッチクロックRSCLK の立ち上がりエッジで更新される。
【0023】ALU5dに対するファンクションコード
は6bitのオペコードOCのデコード出力と、ロジッ
ク回路5fを通じて取り込むマシンンサイクルカウンタ
5aの情報によりファンクションコード生成部5eで決
定生成され、またFetchCLKの立ち上がりでコードが更新
される。尚ファンクションコードには演算クロックを制
御する機能もある。
【0024】データメモリDMのアドレス計算はアドレ
ス計算部5cで行うが、アドレッシングモードをサポー
トするので、内部のインデックスレジスタ5g又はベー
スレジスタ5hの内容と、オペランドOPのオフセット
アドレスとを加算して出力したり、32bit長のワー
キングレジスタ5iの内容をアドレスとして選択したり
する。どのようなアドレス計算を行うかの選択は、26
bitのオペランドOPの中にタグ情報をデコードする
ことにより行う。
【0025】パイプライン処理上、MPU部5がBPU
部4と基本的に異なるのは第2ステージであるデコー
ド、アドレス計算のとき32bit長のワーキングレジ
スタ5iから演算対象のレジスタの内容をMUX5lを
通じてレジスタフェッチクロックRSCLK のタイミングで
ALU5dの入力レジスタ5jにフェッチすることであ
る。また第3の実行ステージでは、書き込みクロックWD
CLKによりメモリアクセス、レジスタ間演算、演算結果
の出力レジスタ5kに対する書き込みを行う。尚メモリ
アクセスは全てロード/ストア命令で行う。尚5mはア
ドレスレジスタである。
【0026】BIU部6は、データメモリDMのバスイ
ンターフェース部でBPU部4、MPU部5からのデー
タメモリアドレスDMA及びデータメモリデータDMD
のセレクト機能を中心の機能として持っている。データ
メモリDMの読み出し/書き込みのコントロールは、コ
ントロールユニット3がBPU部4及びMPU部5から
のデータアクセス要求信号RQに基づき、バスセレクトの
BPU/MPU 信号と同時にDMRD/DMWR 信号をBIU部6に伝
達することにより行われる。
【0027】ところでIFU部2に対するフェッチ制御
及びPC2aの更新制御はBPU部4、MPU部5から
出力されるFEN/FINH及びPCINC/PCHLTの信号を選択し、
結果をIFU部2に伝達するわけである。しかし単に2
つの信号を選択するだけなら簡単であるが、実際には例
外的シーケンスとして、割り込みシーケンス、シングル
ステップシーケンス、バス開放シーケンス等も外部/内
部的要因で、コントロールユニット3がサポートするた
め、IFU部2に対する伝達内容はもっと複雑となる。
この内容についてはブランチ命令も含めて本発明では特
に触れない。
【0028】またデータメモリDMに対するデータアク
セス要求信号RQは、BPU部4及びMPU部5から夫々
出力され、コントロールユニット3がデータアクセス要
求信号RQを選択し、その結果をRD/WRのクロック信
号及びバスのセレクト信号としてBIU部6に伝達す
る。図7は、図1に示す構成に基づいくBPU部4、M
PU部5のマルチ演算パイプライン方式のタイミングに
ついて示している。
【0029】この図7では、インストラクションメモリ
IMの内容としては図6に示すように2つのBPU命令
と最も簡単な2つのMPU命令を例に挙げており、これ
らの命令がインストラクションメモリIMに格納され、
それを実行するときの状態を示している。図6中n〜n
+1は各命令を格納したインストラクションメモリIM
のアドレスを示している。
【0030】図示するパイプラインは3段パイプライン
となっているが、各パイプラインステージの詳細につい
ては省略している。次に例示したパイプラインの概要に
ついて説明する。まず第1ステージは命令のフェッチを
行い、第2ステージはフェッチされた命令のデコード及
びデータのアドレス計算を行う。
【0031】データのアドレス計算はデータメモリDM
のアドレスの計算であり、デコード情報と、1ワード3
2bitの命令に含まれるオペランドOP、更には複数
実行ステージを必要とするCISC型シーケンス命令の
場合はどの実行ステージにあるかにより決定される。第
3ステージはレジスタ演算及びメモリアクセスを行うス
テージである。
【0032】BPU部4で実行する〔ST X0〕命令
は、この第3ステージでBPUEXU信号が有効であれば、デ
ータメモリDMからのデータ入力と1ビット抽出及びBI
TACCの書き込み処理を同じマシンサイクルで行う。この
とき、データメモリDMのアドレスも1マシンサイクル
の幅で確定している。BPU部4及びMPU部5から出
力されるデコード情報であるPCINC/PCHLT,FEN/FINHは実
行する命令が何ステージ必要なのかにより決定される。
図示例では〔OUT Y0〕が図7(g)に示すように
二つの実行ステージを必要とするので、最初の実行ステ
ージではフェッチを禁止させる。また命令のアドレス更
新もさせない。それ以外の実行ステージは、そのステー
ジで実行が完結するので、命令のフェッチを許可し、ア
ドレスも更新する。
【0033】実行ステージのとき、図7(e)に示すB
PU部4のデータアクセス要求又は図7(f)に示すM
PU部5のデータアクセス要求、つまり図示するように
データメモリDMに対するRD要求、WD要求があれ
ば、そのデータアクセス要求をコントロールユニット3
に伝える。ここで高効率なパイプラインとは演算状態を
連続して行うことであり、命令のコードサイズがばらば
らであって、数ワードに及ぶ場合には実行ステージより
フェッチが多くなって停止することがあるが、本発明の
場合にはBPU部4とMPU部5ともに、1ワードで複
数の実行サイクルを必要とするものは、複数の実行パイ
プライン実行を行い、一方複数ワードの命令フェッチを
必要とするものは、1ワードで実行可能なRISC型の
命令に置き換え、パイプラインの高効率化を実現し、
速化を図っている。
【0034】シーケンス命令は全て1ワードで実行ステ
ージに移行できるのでCISC型の命令であってもBP
U部4でパイプライン実行を行う。また応用命令の大半
は複数ワードの命令フェッチを必要とするので、RIS
C型の1ワード固定長の命令に置き換え、MPU部5で
パイプライン実行を行う。これらの2種類のBPU部4
とMPU部5とのマルチ演算を調停するコントロールユ
ニット3と、共有の1ワードインストラクションレジス
タを持つIFU部2を設けることにより、ハード量の少
ない高効率のパイプラインを維持できるアーキテクチャ
となるのである。
【0035】尚図7(a)に示すインストラクションメ
モリIMのアドレスと、図7(b)に示すインストラク
ションバスIBの出力はIFU部2から出力され、イン
ストラクションメモリIMのアドレスは図2に示すIF
U部2内部のPC2aから出力される。またインストラ
クションバス出力はIFU部2内部のインストラクショ
ンレジスタ2bの出力である。そしてインストラクショ
ンメモリIMのアドレスの更新と同時に更新前アドレス
のインストラクションをインストラクションレジスタ2
bに書き込むのである。またIFU部2に対するPC2
aの更新情報PCINC/PCHLT 、フェッチ許可情報FEN/FINH
はコントロールユニット3がBPU部4、MPU部5か
らの情報を選択し、IFU部2に伝達する。
【0036】またPC2aの更新情報PCINC/PCHLT 、フ
ェッチ許可情報FEN/FINHはデコード出力情報であって、
インストラクションバスIBの内容をデコードする論理
回路の遅延tが存在する。ここで図6で示した〔OUT
Y0〕の命令では〔Y0〕が格納されたデータメモリ
DMからデータを読み出し、〔Y0〕のビット位置にBI
TACCの内容を反映させ、再度データメモリDMに書き込
む処理を行う。インストラクションメモリIMには1ワ
ード(32bit)の〔OUT Y0〕の命令が入って
いるが、BPU部4のデコード出力から図7(c)に示
すように最初にFINH,PCHLTが出力してフェッチを停止さ
せ、次のサイクルでFEN 、 PCINC が出力されて通常のパ
イプラインシーケンスに入っている。
【0037】インストラクションメモリIMのアドレス
の更新タイミングと同時に更新したアドレスの二つ前の
命令のデータアクセス要求、図7(g)に示す実行情報
が確定する。これはフェッチからデコード、実行までに
3段のパイプラインシケンスに基づいていることを示
す。尚データのアドレスの計算結果はデータアクセス要
求と同時に確定する。
【0038】(実施例2)図8は二つの異なるタイプの
命令、例えばデータを扱うデータ処理命令と、リレーシ
ケンス記述に適合したビット処理命令を、データ処理命
令はMPU部5で、ビット処理命令はBPU部4に夫々
割当て、MPU部5とBPU部4の二つの演算処理ユニ
ットが交互に命令を実行する過程において3ステージパ
イプラインの一貫性を保つための必要最低限のコントロ
ール信号を機能を具体的に示して実施例2の構成を示し
いる。尚実施例1で使用した同じ記号、番号は同じ構
成、或いは信号、情報を示して、信号、情報については
異なるもの、新たに増えたものについてのみ詳説する。
【0039】まず図8においてIFU部2のPC2aか
らは、インストラクションメモリIMのアドレスが出力
され、インストラクションメモリIMからは32bit
の命令がIR2bにフェッチされる。IR2bにフェチ
された命令コードはコントロールユニット3に送出され
る。コントロールユニット3からはIFU部2のPC2
aの更新及びIR2bへの命令フェッチに関する情報
(UPDATA INFO)がIFU部2に出力される。この情報は
BPU部4と、MPU部5とから出力されるIFU部2
へのPC2aのアドレスの更新情報PCINC/PCHLT やフェ
ッチ許可情報FEN/FINHで、コントロールユニット3が有
効となる方の情報を選択した結果をIFU部2へ出力す
るものである。
【0040】図中 OPEN はコントロールユニット3 が演
算を許可することをBPU部4、MPU部5に夫々知ら
せる信号で、どちらか一方が許可される(図1のBPUEX
U,MPUEXU に相当する)。データバスDBはBPU部4
とMPU部5とで共有するもので、入力は共通で出力は
BPU部5、MPU部5で夫々の3ステートバッファを
介して接続される。
【0041】BDMAはBPU部4からのデータメモリDM
への実効アドレスであり、MDMAはMPU部5からのデー
タメモリDMへの実効アドレスであり、BR/WはBPU部
4のデータメモリDMの読み/書きのコントール信号で
あり、MR/WはMPU部5のデータメモリDMの読み/書
きのコントール信号である。データメモリDMにはBI
U部6からはBPU/MPU信号で選択されたデータメモリD
Mのコントロール信号がDMR/W として出力され、またア
ドレスがDMA として出力される。そして読み書きされる
データDMD はデータメモリDMとBIU部6の双方向の
データバスDAを通じて送受される。
【0042】次にプログラムの一例を用いてどのような
タイミングでBPU部4とMPU部5との間でパイプラ
イン調停が行われるかを説明する。まず図9はインスト
ラクションメモリIMに格納されたサンプルプログラム
を示しており、N-1,…N+2 はそのアドレスを示す。さて
このサンプルプログラムに使われる命令はすべての演算
サイクル(図10のT)で演算処理が終了し、図中の命
令の内〔ST X0〕と〔AND L0〕はビット処理
命令であるためにBPU部4に適合するので、BPU部
4で演算を行い、〔LOAD r1,EA〕命令はデー
タを扱う命令であるためMPU部5で処理を行う。
【0043】而してまず完全パイプラインの状態を維持
するためには、一つの命令例の演算終了サイクルでPC
2aは二つ後の命令を示す必要があるので、〔ST X
0〕命令の演算サイクルでは、〔LOAD r1,E
A〕命令をインストラクションメモリIMから読み出す
ことになる。また〔ST X0〕命令の次の〔AND
L0〕命令はIR2bにラッチされており、このIR2
bの内容をコントロールユニット3がデコードしてBP
U部4、MPU部5のどちらかの演算処理ユニットに割
り当てるかを判定する一方、BPU部4とMPU部5は
演算に必要な情報をデコードする。
【0044】更にBPU部4、MPU部5は、必要な演
算サイクル数を判定し、演算サイクル数が1なら最終演
算サイクルとみなし、IFU部2へのPC2aのアドレ
ス更新(PCIN)と、命令フェッチ許可(FEN )をコント
ロールユニット3に要求する。このサンプルプログラム
例では〔AND L0〕命令がBPU部4で処理する命
令であることをデコードで判定し、BPU部4は演算サ
イクルが1の命令であることを判定し、アドレス更新
(PCIN)と、命令フェッチ許可(FEN )をコントロール
ユニット3に要求する。
【0045】コントロールユニット3は、BPU部4か
らの要求を有効とみなし、IFU部2にアドレス更新
(PCIN) と、命令フェッチ許可(FEN)を指示する。演算
サイクルにおけるオペランドの処理についても、同様
に、外部のデータメモリDMがオペランドOPのフィル
ードになっている場合、BPU部4とMPU部5とがデ
ータメモリDMに対するアクセス要求(RQ)を出し、BP
U部4で処理する命令であれば、BPU部からのBR/W信
号をデータメモリDMに対するDMR/W信号として選択す
るようにBIU部6にBPU/MPU信号で指示する。
【0046】図10は上記サンプルプグラムの実行にお
けるタイミングチャートを示しており、同図(a)はシ
ステムクロックを示し、演算サイクルT中にはφ1〜φ
6のクロックが存在する。同図(b)はPC2aのアド
レスを示し、同図(c)はIR2bに命令をフェッチし
た状態を示す。同図(d)はBPU部4からのPC2a
のアドレス更新、フェッチ許可の情報出力の状態を示
し、同図(e)はMPU部5かのPC2aのアドレス更
新(PCINC)、フェッチ許可の情報出力(FEN) の状態を示
す。
【0047】更に同図(f)はBPU部4のデータメモ
リDMに対するアクセス要求(RQ)の状態を示し、同図
(g)はMPU部5のデータメモリDMに対するアクセ
ス要求(RQ)の状態を示す。同図(h)はコントロールユ
ニット3によってIFU部2へ出力される、アドレス更
新(PCINC) 、フェッチ許可(FEN) の指示を示す。
【0048】同図(i)はデータメモリDMに対するア
クセス要求(RQ)が有効なユニットを示す。同図(j)は
演算処理の状態を示す。図11はデータメモリDMの状
態を示しており、実効アドレスeaにはビットオペラン
ド(L,X,Y等)、ワードオペランド(DT等)が格
納される。
【0049】さて上記のサンプルプログラムは一つの演
算サイクルを終了する命令を用いたが、図12に示すよ
うに二つの演算サイクルを必要とし、BPU部4で処理
される〔OUT Y0〕命令を使用したプログラムの場
合には、図13に示すようなパイプライン調停がなされ
る。この場合〔OUT Y0〕命令がIR2bにラッチ
された最初のサイクルでBPU部4からPC2aのアド
レス更新の停止と、フェッチの禁止が要求される。つま
りOUT命令は2つの演算サイクルを必要とするため、
命令のアドレスを更新し、フェチを許可すると2回目、
つまりOUT命令の最終演算サイクルの筈が、〔LOA
D r1,EA〕命令の演算サイクルになるためであ
る。
【0050】従って、最初の演算サイクルでは命令のア
ドレス更新の禁止及びフェッチを禁止し、最終演算とな
る2回目の演算サイクルではアドレス更新と、フェッチ
の許可を要求するのである。尚図13(a)〜(j)は
図10(a)〜(j)と対応している。 (実施例3)図14はリレーシケンス記述に適合したビ
ット処理命令をBPU部4での演算処理命令(以下BP
U命令)とし、1ワードの命令で複数の演算サイクルを
必要とする場合の、3ステージパイプライン調停のハー
ドウェアの実施例を示す。
【0051】図14においてIFU部2に含まれるIR
2bからの命令コードはデコード部20に取り込まる。
デコード部20では命令をデコードするものでここから
のデコード出力を元に、演算情報、パイプラインコント
ロール、オペランドの実効アドレスが生成される。デコ
ード出力はロジック部21に送られ、ロジック部21で
は3ステージパイプラインの調停信号として、IFU部
2に対する命令のアドレス更新/停止,、命令フェッチ
の許可/禁止を要求するための信号を生成する。つまり
PC2aのアドレスの更新要求(PCINC) 、PC2aのア
ドレスの更新停止要求(PCINC) 、PC2aのアドレスの
更新停止要求、PC2aのアドレスのデクリメント要求
〔PCDE〕、命令フェッチ許可要求(FEN) 、命令フェッチ
禁止要求(FINH)がコントロールユニット3へ出力され
る。
【0052】一方デコード部20からは必要な演算サイ
クル数から1を引いた値を持つの3bitエンコード出
力が入力ロジック部21に送られる。この入力ロジック
部21は3bitのF/F22に上記3bitエンコー
ド出力をプリセットする機能と、F/F22をデクリメ
ントカウンタにする二つの機能を持ち、F/F22の出
力がAALリセット状態で且つBPU命令のときには3b
itエンコード出力をプリセットし、F/F22の出力
がALLリセット状態でなく、且つBPU命令のときに
はF/F22をデクリメントカウンタとして機能させ
る。
【0053】F/F22の出力は演算サイクルのサイク
ル指定用エンコードとして機能し、図15(a)に示す
クロックφ3 の立ち下がりで更新されるもので、デコー
ド部23に送られる。このデコード部23は、F/F2
2の出力のデコードを元に1ワードで複数の演算サイク
ルを必要とするBPU命令のサイクル別の演算コード、
オペランドOPのアドレスを,上記デコード部20のデ
コード出力を組み合わせて生成する。
【0054】オペレーションコード出力部24は、上記
デコード部23からのサイクル別の演算コードと、デコ
ード部20の出力とで、BPU部4内のALU4dのオ
ペコードOCを生成するものであり、さらにオペランド
OPが外部のデータメモリDMにある場合、データメモ
リDMのアクセス要求(RQ)をコントロールユニット3に
出す。演算コード及びデータメモリDMのアクセス要求
(RQ)はともに、クロックφ6の立上がりで更新されるF
/F22の出力となっている。
【0055】アドレス生成部25はデコード部20と、
23からの入力に加え、IR2bからの命令コードのオ
ペランド指定フィールドを入力としデータメモリDMの
アドレスを指定するものである。なおレジスタBMF
は、IR2bがインストラクションメモリIMから命令
をフェッチする32bitのレジスタであるのに対し、
インストラクションメモリIMと同じアドレスにあるビ
ットメモリ(図示せず)[以下BMと称する]の1ビット
をIR2bと同じタイミングでフェッチする1bitレ
ジスタである。
【0056】次に図14の回路構成により得られるパイ
プライン調停信号を使用して、どのようなタイミングで
3ステージパイプライン処理が行なわれるかを、図16
に示す1リードの命令で複数の演算サイクルを必要と
し、加えて特徴ある命令を例にあげて図15のタイミン
グチャートに基づいて説明する。例示した命令はBPU
命令のうち、使用頻度の高い[OUT],[DF]の二
つの命令であり、[OUT]命令は、データメモリDM
にある16bitのオペランドを使用し、1bitだ
け、コプロセッサ内部にあるBITACCリレーシーケンス制
御におけるリレー接点のオン/オフイメージが反映され
る。)の内容に置き換える演算を行なう二つの演算サイ
クルを必要とする。
【0057】一方、[DF]命令は、オペランドOPが
データメモリDMには存在せず、フェッチされたインス
トラクションメモリIMのアドレス(PC2aのアドレ
ス)と同じアドレスにある、BMをビットオペランドとし
て利用する演算を行ない、3つの演算サイクルを必要と
する。3つ演算サイクルのうち、最初の演算サイクルで
BITACCの内容をBMに書き込み、同じサイクルで、[D
F]命令のフェッチと同時にフェッチされたBMの内容で
あるレジスタBMFとBMに書き込んだBITACCの内容とのロ
ジック演算を行なう。
【0058】残りの二つの演算サイクルでは、レジスタ
/メモリの更新は行なわず、パイプライン調停サイクル
として、ハードウェアストロールサイクルとなってい
る。図15(a)のT1〜T5夫々は、一つのバスサイ
クル又は演算サイクルを示す。T1サイクルでは、演算
は[OUT]命令の一つ前の命令の演算サイクルであ
り、また[OUT]命令のデコードサイクル及びオペラ
ンドOPの実効アドレス計算サイクルでもある。
【0059】[OUT]命令は二つのオペレーションサ
イクルを必要とするので、命令フェッチの禁止(FINH)
とプログラムカウンタ2bのアドレス更新の停止(PCHL
T)をコントロルーユニット3に要求する。コントロール
ユニット3は命令がBPUタイプの命令であることを判
定しているので、BPU部4からの命令フェッチの禁止
(FINH)とPC2aのアドレス更新の停止の要求(PCHL
T)を有効とし、IFU部2に指示する(図15
(b))。
【0060】また図14のF/F22の出力の値は演算
サイクル数に1を引いた値、[OUT]命令の場合は図
15(g)に示すように1となる。命令フェッチの禁止
(FINH)はF/F22の出力の値が0以外のとき有効と
なる。逆にF/F22の出力の値が0のとき命令フェッ
チ(FIN)が命令フェッチの禁止(FINH)に代って有効と
なる。
【0061】F/F22の出力の値は、演算コード生成
とデータメモリDMのアクセス要求を判定するために、
図14のデコード部23でデコードされ、デコード結果
がクロックφ6の立上がりでオペレーションコード出力
部25に含まれるラッチに記憶される。実効アドレス
は、図15(f)に示すようにこのサイクルのクロック
φ5で確定し、次のサイクルT2のオペランドフェッチ
のときにデータメモリDMのアドレスを1クロック分先
出しをする。
【0062】T2サイクルでは、[OUT]命令の最初
の演算サイクルをT1のクロックφ6の立上がりで記憶
された図15(h)に示す演算コードと図15(d)に
示すアクセス要求内容、すなわちオペレーションコード
出力部25に含まれるラッチに記憶された内容をもと
に、データメモリDMにあるオペランドOPのフェッチ
を行なう。このオペランドOPはクロックφ5で内部の
データレジスタにラッチされる。
【0063】またクロックφ3でF/F22の出力の値
は1から0にデクリメントされ、命令フェッチの禁止
(FINH)が命令フェッチ許可(FIN)に、アドレス更新の
停止の要求(PCHLT)がアドレス更新(PCINH)に夫々変
る。その為命令のアドレスがクロックφ5で更新され、
更新前にアドレスにある[DF]命令がIR2bにクロ
ックφ5でフェッチされる。
【0064】このサイクルのクロックφ6でT1サイク
ルと同様に[OUT]命令の次に演算に必要な演算コー
ドとメモリアクセス要求コードをアドレス生成部25で
更新する。T3サイクルは[OUT]命令の最終演算サ
イクルとなる。このT3サイクルでは、図15(h)に
示すようにBITACCの内容を[Y0]に対応するデータメ
モリDMのビットに書き込む。また[DF]命令のデコ
ードサイクルとして、3つの演算サイクルを必要とする
ので、F/F22の値をプリセットする。次の[DF]
命令の最初の演算サイクルであるT4では、[DF]命
令が格納されているインストラクションメモリIMのア
ドレス(図15(e)に示す N+1)と同じアドレス
のBMにBITACCの内容を書き込む必要がある。しかし、ア
ドレスは[DF]命令の次の命令のアドレス(N+1)
になっているのでアドレスをデクリメントすることを要
求することになる。このためロジック部20で生成され
るパイプライン調停信号をPC2aのアドレスのデクリ
メントを要求する信号(PCDEC) と命令フェッチを要求す
る信号(FINH)にクロックφ3で変える。
【0065】T4サイクルでは、[DF]命令の最初の
演算サイクルとなるので、N+1のアドレスにあるBMの
オペランドエリアに図17に示すようにBITACCの内容を
書き込む。BMの更新前のビットオペランドは、T2サイ
クルのクロックφ5で[DF]命令のフェッチと同時に
レジスタBMFにフェッチされ、レジスタBMFの内容
は、T3サイクルのクロックφ6で更新される演算コー
ドに反映される。
【0066】演算コードに反映されたレジスタBMFの
内容、すなわちBITACCに書き変る前のBMのビットオペラ
ンドとBITACCとのロジック演算により、結果をクロック
φ5でBITACCに書き込む。またT1−T3サイクルと同
様にクロックφ3で、F/F22の出力の値を2から1
にデクリメントして命令フェッチ[FINH]とし、命令の
アドレス補正のためPC2aのアドレスの更新の信号[P
CINC]をパイプライン調停信号として出力する。
【0067】T5サイクルと図15では示していないT
6サイクルでは、[DF]命令の演算は行なわれず、パ
イプライン調停サイクルとしてハードウェアサイクルと
なる。尚図15(c)はIR2bの内容を示す。また図
18データメモリDMの記憶状態を示す。
【0068】
【発明の効果】本発明は、上述のように構成し、使用頻
度の高いシーケンス命令をビットプロセッシングユニッ
トでパイプライン実行するので、少ないメモリサイズで
高効率のパイプラインを実現でき、またデータ処理用の
応用命令をRISC型のデータ処理命令にコンパイルし
てマルチビットプロセッシングユニットでパイプライン
実行させるので、複数ワードに及ぶ応用命令でも高い効
率のパイプラインで高速実行ができるものであり、高い
コストパーファマンスのプログラマブルコントーラが実
現でき、しかも両プロセッシングユニットを独立してモ
ジュール化することにより、設計時のインプリテーショ
ンからシミュレーションまで個別に行うことができて、
演算プロセッサの設計が容易となり、また全ての命令を
1ワードで実行することにより、命令キューを必要とせ
ず、その結果パイプライン調停も容易となるので、ハー
ド量を少なくできるという効果もある。
【図面の簡単な説明】
【図1】本発明の一実施例を示す回路ブロック図であ
る。
【図2】本発明の一実施例に用いるIFU部とコントロ
ールユニットの回路ブロック図である。
【図3】本発明の実施例1に用いるコントロールユニッ
トの各種クロックの説明図である。
【図4】本発明の実施例1に用いるBPU部の回路ブロ
ック図である。
【図5】本発明の実施例1に用いるMPU部の回路ブロ
ック図である。
【図6】本発明の実施例1において実行する命令の一例
を示す説明図である。
【図7】図6に示す命令の実行説明用タイムチャートで
ある。
【図8】本発明の実施例2に示す回路ブロック図であ
る。
【図9】本発明の実施例2の説明に用いる命令を格納し
たインストラクションメモリの内容説明図である。
【図10】本発明の実施例2の動作説明用タイミングチ
ャートである。
【図11】本発明の実施例2のデータメモリの格納状態
を示す説明図である。
【図12】本発明の実施例2の説明に用いる別の命令を
格納したインストラクションメモリの内容説明図であ
る。
【図13】本発明の実施例2の動作説明用タイミングチ
ャートである。
【図14】本発明の実施例3のパイプライン調停信号の
生成回路部位のブロック図である。
【図15】本発明の実施例3の動作説明用タイミングチ
ャートである。
【図16】本発明の実施例3の説明に用いる命令を格納
したインストラクションメモリの内容説明図である。
【図17】本発明の実施例3に用いるBMの格納状態説
明図である。
【図18】本発明の実施例3のデータメモリの格納状態
を示す説明図である。
【図19】従来例の回路ブロック図である。
【図20】従来例の回路ブロック図である。
【符号の説明】
1 演算プロセッサ 2 インストラクションフェッチユニット 3 コントロールユニット 4 ビットプロセッシングユニット 5 マルチビットプロセッシングユニット 6 データバスインターフェース部 IM インストラクションメモリ DM データメモリ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】CISC型のシーケンス命令を実行するビ
    ットプロセッシングユニットと、RISC型のデータ処
    理命令を実行するマルチビットプロセッシングユニット
    と、両プロセッシングユニットのマルチ演算を調停する
    コントロールユニットと、両プロセッシングユニット共
    有のインストラクションレジスタを持つインストラクシ
    ョンフェッチユニットと、データメモリのバスインター
    フェース部とから少なくともなり、使用頻度の高いシー
    ケンス命令をビットプロセッシングユニットでパイプラ
    イン実行し、データ処理用の応用命令をRISC型のデ
    ータ処理命令にコンパイルしてマルチビットプロセッシ
    ングユニットでパイプライン実行させることを特徴とす
    るプログラマブルコントローラの演算プロセッサ。
JP3186628A 1991-02-25 1991-07-25 プログラマブルコントローラの演算プロセッサ Expired - Lifetime JP3027627B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3186628A JP3027627B2 (ja) 1991-02-25 1991-07-25 プログラマブルコントローラの演算プロセッサ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3-29701 1991-02-25
JP2970191 1991-02-25
JP3186628A JP3027627B2 (ja) 1991-02-25 1991-07-25 プログラマブルコントローラの演算プロセッサ

Publications (2)

Publication Number Publication Date
JPH04363704A JPH04363704A (ja) 1992-12-16
JP3027627B2 true JP3027627B2 (ja) 2000-04-04

Family

ID=26367931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3186628A Expired - Lifetime JP3027627B2 (ja) 1991-02-25 1991-07-25 プログラマブルコントローラの演算プロセッサ

Country Status (1)

Country Link
JP (1) JP3027627B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3000857B2 (ja) * 1994-08-31 2000-01-17 松下電工株式会社 プログラマブルコントローラ
JP3634379B2 (ja) 1996-01-24 2005-03-30 サン・マイクロシステムズ・インコーポレイテッド スタックキャッシングのための方法及び装置
JPH10307607A (ja) * 1997-05-08 1998-11-17 Hitachi Ltd 主プロセッサ及びプログラマブルコントローラ
EP2065808B1 (en) * 2003-08-07 2010-10-20 Panasonic Corporation Processor integrated circuit comprising a plurality of processors having local memories and means for synchronising DMA accesses to these memories

Also Published As

Publication number Publication date
JPH04363704A (ja) 1992-12-16

Similar Documents

Publication Publication Date Title
US5371860A (en) Programmable controller
JP7419629B2 (ja) データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
JPH03129433A (ja) 並列処理装置および並列処理方法
JPH04109336A (ja) データ処理装置
JPS6339931B2 (ja)
JPH07175666A (ja) データプロセッサおよびその割込み要求処理方法
JPS63273134A (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
US6687808B2 (en) Data processor using indirect register addressing
KR100272622B1 (ko) 데이타 처리장치
JP3027627B2 (ja) プログラマブルコントローラの演算プロセッサ
JPH03233630A (ja) 情報処理装置
JP2003005957A (ja) データ処理装置およびその制御方法
JP2556182B2 (ja) デ−タ処理装置
TWI697836B (zh) 處理包括高功率及標準指令之指令集的方法與處理器
JPS63197232A (ja) マイクロプロセツサ
JP3841820B2 (ja) マイクロコンピュータ
US5457803A (en) Bit-field logic operation unit
JPH024010B2 (ja)
JPH1020959A (ja) 低消費電力マイクロプロセッサ
JP2956707B2 (ja) 情報処理装置
JPH07239781A (ja) 情報処理装置
JP3729142B2 (ja) 並列演算処理装置
JPS6155130B2 (ja)
JP2009181312A (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: 20000118

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

Free format text: PAYMENT UNTIL: 20080128

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090128

Year of fee payment: 9

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: 20090128

Year of fee payment: 9

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: 20100128

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100128

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110128

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 12

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: 20120128

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120128

Year of fee payment: 12