JPH07271413A - 制御命令演算処理装置 - Google Patents
制御命令演算処理装置Info
- Publication number
- JPH07271413A JPH07271413A JP6343694A JP6343694A JPH07271413A JP H07271413 A JPH07271413 A JP H07271413A JP 6343694 A JP6343694 A JP 6343694A JP 6343694 A JP6343694 A JP 6343694A JP H07271413 A JPH07271413 A JP H07271413A
- Authority
- JP
- Japan
- Prior art keywords
- pol
- instruction
- execution
- status
- polg
- 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)
- Control By Computers (AREA)
- Programmable Controllers (AREA)
Abstract
令の実行スケジューリングでのタスクスイッチ時間のオ
ーバーヘッドを最小に抑える。 【構成】 汎用マイクロプロセッサμPと産業用プラン
ト制御用のプログラミングPOL命令を実行する専用ハ
ードウェアH/Wである専用プロセッサPOLGと、P
OLコードの命令が格納されているPOLコードメモリ
と、POLGがPOL命令の実行上使用するPOLソー
ス空間とからなり、上記POLGを、POL命令の実行
コードのアドレスを示すプログラムカウンタと、POL
命令実行専用の汎用レジスタであるアキュームレータを
含むPOL命令を実行するのに必要な各種データを記憶
する汎用レジスタと、POLのソースアドレスを計算す
るソースアドレス計算部と、μPとのインターフェース
を行うバスインターフェースと、ソースアクセスを行う
ソースアクセスインターフェースと、POLコードをフ
ェッチするCDIF部と、POL命令の演算を行う演算
部と、実行制御を行う管理部とから構成する。
Description
トローラ等の制御命令すなわちPOL命令を、汎用マイ
クロプロセッサとPOLGとを組み合せたマルチプロセ
ッサ方式で実行する制御命令演算処理装置に関するもの
である。
報の「プログラマブルコントローラ」に示された従来の
システム構成例である。図において、(50−1)は汎
用マイクロプロセッサ(以下MPU)、(50−2)は
システムメモリ、(50−3)はシステム入出力回路、
(50−4)はプログラムメモリ、(50−5)は1ビ
ット論理プロセッサ(以下LPU)、(50−5)はダ
ミーオペレーションコード発生器を示す。又図40は、
特開昭61−264432号公報の「シーケンス演算制
御装置」に示された従来のシステム構成例である。図に
おいて、(51−1)はタイマーオン・オフ処理、カウ
ンタ処理等のワード(16ビット)毎の演算処理を行う
プロセッサ(以下CPU)、(51−2)は論理和、論
理積、排他論理和等のビットごとの演算処理を行うプロ
セッサ(以下SQC)、(51−3)はワード演算命令
及びビット演算命令からなる一連の命令を記憶するメモ
リを示す。
「プログラマブルコントローラ」(図39)に示された
従来のシステム構成例の動作について説明する。この従
来例は、汎用マイクロプロセッサと1ビット論理プロセ
ッサを併用するH/W構成を持ち、汎用μPではシステ
ム制御と数値演算処理を、1ビット論理プロセッサ(以
下LPU)ではシーケンス制御を分担させている。MP
UとLPUは各々実行モードを持っており、数値演算実
行はMPUモードで、シーケンス制御はLPUモードで
行う事になる。これらの実行モードの切り替えは、MP
UモードからLPUモードへは、MPUのモード切り替
え命令によって行われ、LPUモードからMPUモード
へは、LPUのモード切り替え命令によって行われる。
MPUモードの時にはLPUはホールドされ、LPUモ
ードの時にはMPUはホールドされる。
「シーケンス演算制御装置」(図40)に示された従来
のシステム構成例の動作について説明する。この従来例
もビット演算部(以下SQC)とワード演算部間でCP
Uがその実行判断を行い、ビット演算で有れば上記SQ
Cへ実行を移し、ワード演算で有ればCPUが続けて実
行する。又、SQCが実行するときはCPUはホールド
されている。
プログラマブルコントローラでは、 (1)MPUの実行する命令とLPUの実行する命令を
意識してモードの切り替えを行う必要がある。 (2)MPUモード時にはLPUはホールド状態にな
り、LPUモード時にはMPUはホールド状態になる。 これらの問題点として、以下があげられる。 (1)MPU/LPUモードを意識するには、アプリケ
ーションプログラムでモード切り替えを行うか、システ
ムで行うか、いずれにしてもS/Wが関与し、システム
全体のオーバヘッドを大きくする。 (2)又、アプリケーションで切り替えを行うとする
と、ユーザーにとっては非常に使い難いシステムとな
り、システムで切り替えを行うと、命令毎にMPU命令
かLPU命令かを認識せねばならず、益々オーバヘッド
は大きくなる。 (3)ホールド状態に移行する時と、ホールド状態が解
除される時にMPUとLPU間でハンドシェークに要す
る時間が必要となる。
算制御装置でも、 (1)CPUが行う命令かSQCが行う命令かの判断処
理が必要である。 (2)CPU−SQC間のバスの取り合いを相手方をホ
ールドHOLDすることで調停しており、その調停で数
バスサイクル必要である。 (3)SQCの演算結果をCPUへ渡すのにS/W処理
数ステップが必要である。 等の問題点がある。これらのH/W及びS/W処理は、
極端な性能低下を招くことになる。本発明では「汎用μ
Pを用いて、制御用POL命令を高速に実行する。」こ
とが最大の課題である。
めになされたものであり、汎用μPと制御命令実行専用
プロセッサを用いて、制御命令を高速に実行することを
主な目的としている。個々の目的を詳述するとつぎのと
おりである。 (1)POL命令実行自体の高速化を図る。 (2)汎用μPとPOL命令実行専用コプロセッサの同
期方法の効率化を図る。 (3)汎用μP実行とPOLG実行の命令の切り分けを
行う。 (4)POLGで検出した命令実行中に発生したエラー
の、汎用μPへのリアルタイムな通知を図る。 (5)POL命令の実行管理F/W(POLエミュレー
タ)と各モジュールの起動スケジュールを管理するF/
W(POLスケジューラ)の、切り替え時間の短縮を行
う。 (6)POLのアプリケーションの不正アクセスをH/
Wで検出し、アプリケーションのデバッグ効率をあげ
る。 (7)POL命令実行時間に影響与えずに、プログラム
モニタやソースモニタ等のPOLプログラムのデバッグ
を行う。
令演算処理装置はつぎのとおりである。POLGを、P
OL命令の実行コードのアドレスを示すPCと、POL
命令実行専用の汎用レジスタであるACCを含むPOL
命令を実行するのに必要な各種データを記憶するレジス
タファイルと、POLのソースアドレスを計算するSA
D部と、前記μPとのI/Fを行うMPIF部と、ソー
スアクセスを行うSAIF部と、POLコードをフェッ
チするCDIF部と、POL命令の演算を行うALU部
と、実行制御を行うEXE部とから構成し、上記CPU
で、前記POLGでのPOL命令の実行を、上記汎用μ
Pのリードバスアクセスと同期させ、上記汎用μPへの
POLステータスとして、POL命令の実行結果をPO
LGから返し、POL命令の実行を起動し、これらの命
令実行状態を監視しているPOLエミュレータと、この
POLエミュレータの動作とPOLGの命令実行を同期
化し、前記POLGのH/Wの動作及びPOLエミュレ
ータ動作のオーバヘッドを最小にした。
IF部で上記POL命令のコードを判別し、POLGの
上記H/Wで実行可能な実行命令か、上記汎用μPで実
行することが必要なF/W実行命令かを判別するデコー
ド部を設け、その判断結果を上記POLGから上記汎用
μPへ上記POLステータスとして返し、上記POLエ
ミュレータが前記H/W実行命令か前記F/W実行命令
かを即座に認識できるようにした。
ータスのフォーマット構成図内にPOL命令のオペコー
ドを実装して、上記F/W実行命令の実行時に、上記汎
用μPで前記POLステータスのオペコード部を分岐判
断し、上記POLエミュレータの分岐処理に要するオー
バヘッドを削減する。
生するオーバーフローやメモリパリティエラー等を上記
POLGで検出し、これらエラーをPOLGからPOL
ステータスとして返し、上記POLエミュレータでPO
L命令毎のエラー発生を認識し、エラー発生タイミング
とエラー発生箇所を認識し、命令毎のエラー処理をリア
ルタイムに行う。
時に発生するエラーを一箇所にまとめるEXステータス
レジスタを設け、EXステータスレジスタにエラー要因
がセットされた事でPOLステータスの上記フォーマッ
トの特定ビットがセットされる様にして、POL命令実
行中に発生する多くのエラー要因を一つにまとめ、上記
POLエミュレータは前記POLステータスの前記特定
のビットのみをチェックして、エラーの発生の有無を確
認し、更にエラー処理内で前記EXステータスレジスタ
の内容をチェックしてどのようなエラーが発生したかを
判断する。
実行時間を計数するカウンタを設け、一定時間POL命
令の実行が行われると、上記POLステータスのフォー
マットの特定ビットをセットして、上記POLエミュレ
ータ経由でPOL命令の実行と通信S/Wやメンテナン
ス用S/W等他のS/Wとの時間割スケジューリングを
管理するPOLスケジューラを設け、前記特定ビットを
検出して前記POLスケジューラがPOL命令の占有時
間超過を判断し、各種POLプログラムの集合であるP
OLモジュールについて、切り替え時間のオーバヘッド
を少なくする。
数カウンタ値設定用のレジスタを設け、このレジスタの
設定値と上記計数カウンタの出力とを比較するコンパレ
ータとを設け、POL命令の実行占有時間を可変にし、
上記POLスケジューラが任意にPOL命令の実行占有
時間を調整する。
より優先順位の高い通信S/Wやメンテナンス用S/W
等からの要求で、POL命令の実行を中断する為の手段
として、POLG内部に他のS/Wからライトできるス
ケジューラポートを設け、上記S/Wがこのスケジュー
ラポートにライトアクセスすることで、POLステータ
スのフォーマットの特定ビットをセットし、上記POL
スケジューラがこの特定ビットを検出して、上記POL
モジュールについて切り替え時間のオーバヘッドを少な
くする。
をアドレス計算の為にベースポインタを備えた16個の
セグメントに分割し、前記ソース空間のアクセス方式と
して前記セグメント方式を採用し、POLエミュレータ
がソース空間の管理を行う。
する4個のインデックスレジスタを設け、該インデック
スレジスタと前記16個のセグメントを使用して16種
類のインデックス修飾を上記POLGで行い、POLソ
ースのアドレス計算を行う。
スタと上記セグメントとでインデックス修飾されたソー
スアドレスに対し、これらアドレスの上限値及び下限値
を設定できるソースアドレスリミットレジスタを設け、
POLアプリケーションで誤ったソースアドレス指定が
あった場合に上/下限をチェックし、上/下限を越える
アドレスについてリミットエラーを検出する。
検出する為の上記リミットレジスタを上記セグメントレ
ジスタに対応すべく、16個の空間に分割し、POLア
プリケーションで誤ったソースアドレス指定があった場
合に上/下限をチェックし、前記リミットエラーを16
個のソース空間毎に検出する。
クセスされる上記POLソース空間のリミットエラー
を、POLステータス及びEXステータスのフォーマッ
ト内に実装し、上記POLGから汎用μPにPOLステ
ータスとして返すことで、POLエミュレータにリミッ
トエラーの有ったことをリアルタイムに通知し、エラー
発生時の命令実行状態等を故障情報として残すようにし
た。
スアドレスを設定するSARレジスタを設け、この設定
値とPOL命令実行時に計算されたソースアドレスとの
比較を行うコンパレータとを設け、これらの値が一致し
たことを検出し、この検出結果を上記POLエミュレー
タに通知して、POL命令の実行を中断し、メンテナン
スツールからのソースモニタ機能などを行う。
スアドレスが一致したことを検出した結果をPOLエミ
ュレータに通知する為、一致結果をPOLステータスフ
ォーマット内の特定ビットに実装してこのフォーマット
を返すことにより上記POLスケジューラに通知し、ソ
ースモニタ機能等のメンテナンスツールへの応答をPO
L命令の実行に影響を与えること無く実現する。
アドレスを設定するPCRレジスタを設け、この設定値
とコードフェッチ時に計算されたプログラムカウンタP
C値とを比較するコンパレータとを設け、プログラムカ
ウンタPC値が一致したことを検出し、この検出結果を
POLエミュレータに通知することで、POL命令の実
行を中断し、メンテナンスツールからのプログラムモニ
タ機能などを行う。
プログラムカウンタPC値の一致を検出し、その結果を
POLエミュレータに通知する為、一致結果をPOLス
テータスフォーマット内の特定ビットに実装して、この
フォーマットを返すことによりPOLスケジューラに通
知し、プログラムモニタ機能等のメンテナンスツールへ
の応答をPOL命令の実行に影響を与える事無く実現す
る。
記手段に対応して以下の作用を果たす。
のプロセッサをホールドせずに、汎用μPのバスアクセ
スでPOLGと同期をとっている為、μP−POLG間
でのハンドシェーク処理や競合処理によるオーバヘッド
を無くすこともできる。μPからPOLGへのリードア
クセスで返すPOLステータスに、POLGでの演算結
果を示す事で、POLGでの命令実行状態がμPで認識
でき、又次命令への起動処理も高速に行われる。また、
CDIF部に各POL命令の実行部位を識別する機能を
持つ事で、μPのPOLエミュレータで行うF/W実行
命令か、POLGのみで行うH/W命令かを即座に判断
し、H/W命令で有ればそのままPOLGで命令実行ま
で行う。
る事を示すと共に、POLエミュレータで行う命令コー
ドを実装する事で、F/Wの分岐処理を高速化する。
行時のエラー発生を示し、エラー要因レジスタやエラー
発生アドレス,エラー発生データを格納するレジスタに
よって、エラー発生時の解析を容易に行う事ができる。
を示す事で、POLステータスのビットアサインを節減
し、POLエミュレータ処理を簡単にする事ができる。
ンタによって、POLスケジューラに対してPOL命令
実行の占有時間を知らせ、エミュレータからスケジュー
ラへの切り替え時間を最小にすると共に、割り込み処理
を使用したスイッチ(切換)動作に比べ、精度の高いス
イッチ動作が可能となる。
事で、POL命令の実行時間をチューニング(調整)す
る事を容易に行う事ができる。
のPOL命令中断要求ビットを上記POLステータスに
設けた事で、各S/WとPOLスケジューラ間のスイッ
チ時間を最小にする事ができる。
メントレジスタによって、POLのソース空間をアプリ
ケーションで柔軟に使用できる様になる。
を設け、インデックス修飾時のアドレス計算を、POL
Gで行う事によって、POL命令の実行時間を更に短縮
できる。
のアドレスを高速に計算する。
て、アプリケーションの不正アドレスを検出する事がで
き、前記レジスタを分割し、不正アドレスをより細かい
範囲で検出できる。又リミットエラーをリアルタイムで
検出できる。
ソース空間毎に検出し、不正アドレスによるアクセスに
柔軟に対応する。
として正確に残すようにする。
ールへの応答が直接できる。
ジスタSARと、一致検出した結果をPOLステータス
に示す事によって、POLスケジューラにアドレスが一
致した事を通知する事ができる。メンテナンスツールへ
の応答が直接できるようになる。
スタPCRと、一致検出した結果をPOLステータスに
示す事によって、POLスケジューラにアドレスが一致
した事を通知する事ができる。又プログラムモニタ機能
を行うこともできる。
2、図3を用いて説明する。まず明細書中で省略して使
用する用語について列挙する。
号 SAR 設定用レジスタ PCR 設定用レジスタ Program Counta Lonsisteuce 一致信号
発明の基本構成を示す。図1において、(1−1)は命
令実行の一連の動作を管理し、命令実行のタイミングを
生成する汎用μP、(1−2)は汎用μP(1−1)か
らの命令実行要求を受けて、命令を実行する命令実行H
/W即ちPOLGである。更に、(1−3)はPOL命
令が格納されているPOLコードメモリ。(1−4)
は、POL命令の実行上使用するPOLのソースメモリ
やI/O等のPOLソース空間。(1−5)は、汎用μ
P(1−1)のアドレス線、(1−6)は汎用μP(1
−1)のデータ線、(1−7)はPOLG(1−2)か
らPOLコードメモリ(1−3)へのアドレス線、即ち
POL命令のPCを示す。(1−8)は、POLGから
読み出した信号でPOLコ−ドメモリの内容、即ちPO
Lコードを示し、(1−9)は、POLGがソースアク
セスする時に使用するPOLソースアドレス線を示し、
(1−10)は、POLソース(1−4)のデータ線を
示す。
内部ブロック図を詳示したものである。図2において、
(2−1)は汎用μP(1−1)のバスと接続され、汎
用μPのアクセス内容をデコードするμPバスインタフ
ェース部(MPIF)である。(2−2)は、POLコ
ードをフェッチする為のPOLコードメモリとのインタ
フェースを行う制御部(CDIF部)であり、(2−
3)はPOLコードのアドレス即ちPOL命令の実行プ
ログラムカウンタ値PCである。(2−4)は、POL
命令のソースアドレスを計算するブロック(SAD部)
であり、(2−5)はソース空間をアクセスする為のソ
ースアクセスインタフェース(SAIF)である。(2
−6)は命令実行に必要な論理演算・算術演算部(AL
U)であり、(2−7)はPOL命令実行時のアキュー
ムレータやポインタを示すレジスタファイル(ACC)
である。
号を生成している実行管理部(EXE)であり、POL
命令実行時のコードのプリフェッチやパイプライン制御
等POLG内の実行は全てこのEXE(2−8)が管理
している。
制御部EXE(2−8)に出力されるμPのデコード結
果信号(DEC)で、POL命令の実行起動信号を示
す。(2−10)はEXE(2−8)から汎用μPへ返
すPOLステータス(信号)を示す。(2−11)はE
XE(2−8)からPOLコードインタフェース部CD
IF部(2−2)へ出力されるコードフェッチ信号、
(2−12)はEXE(2−8)からソースアドレス計
算SAD部(2−4)やソースアクセスインタフェース
SAIF(2−5)へ出力されるソースアクセス開始信
号、(2−13)は、SAD部(2−4)からSAIF
(2−5)へ出力されるソースアドレス(SAA)で、
そのままソース空間のアドレスとして出力される。(2
−14)と(2−15)は、ALU(2−6)及びレジ
スタファイル(2−7)とSAIF部(2−5)とのデ
ータの各入出力バス(OSD,ISD)をそれぞれ示
す。(2−16)はCDIF部(2−2)からEXE
(2−8)及びALU(2−6)、レジスタファイル
(2−7)にデコード結果を示す信号線である。図3は
図1の汎用μPからPOLGに対するPOL命令の起動
を示したタイミングチャートである。
て、POL命令の実行は、汎用μP(1−1)からPO
LG(1−2)に対するPOLステータスのリードアク
セスで起動される。この時アドレス線(1−5)には後
述するPOLステータスレジスタのアドレス(CA)が
出力される。
(1−2)では、この汎用μP(1−1)からのリード
アクセスを、図2のMPIF(2−1)で受けると、そ
のCAをデコードし、POLステータスへのアクセスで
あれば、EXE(2−8)に対してDEC信号(2−
9)を有意にする。EXE(2−8)では、このDEC
信号によってCDIF部(2−2)に対してFETCH
信号(2−11)を有意にする事で、CDIF部(2−
2)はPOLコードメモリ(1−3)のアドレスとなる
PC信号をアドレス線(1−7)を介してPOLコード
メモリ(1−3)に出力し、POLコード信号COD
(1−8)をそこから入力する。これをPOL命令のコ
ードフェッチ動作と呼ぶ。このフェッチ動作時にPC
(2−3)がカウントアップ(+1)され、次命令のア
ドレスを示す。
た命令コードは、CDIF部(2−2)でデコードさ
れ、信号線(2−16)を介してCODEC信号として
EXE(2−8)に返される。
DIF部(2−2)からのCODEC信号によって、E
XE(2−8)にある後述するステートマシンに次ステ
ートへの実行指示を行う。EXE(2−8)はCODE
C信号に基づいてSAD部(2−4)やSAIF(2−
5)、ALU(2−6)、レジスタファイル(2−7)
に対して制御信号を出力する。
命令である場合は、EXE(2−8)はADCAL(2
−12)によってSAD部(2−4)に対し、アドレス
を計算するような指示を与え、SAIF(2−5)に対
してはSAD部(2−4)から出力されるSAA(2−
13)を使用してソース空間(1−4)をアクセスする
様に指示を与える。SAIF(2−5)は、POLソー
ス空間(1−4)へのアクセスを行う為、ソースアドレ
ス線(1−9)を介してソースアドレスSAを出力し、
ソースデータ線(1−10)を介してソースデータSD
をソース空間(1−4)から読みだしてくる。読み出さ
れたソースデータSDは、SAIF(2−5)を経由し
て入力ソースデータとして入力データバスISD(2−
15)を介してALU(2−6)経由でレジスタファイ
ルACC(2−7)にあるアキュームレータに格納され
る。この時CDIF部(2−2)から出力されるCOD
EC信号(2−16)はALU(2−6)に対してNO
P(無実行)コマンドを指定する事でデータはスルーさ
れる。
フェーズが終わると、実行の完了した事を汎用μP(1
−1)に通知する為、POLステータスがPOLG(1
−2)から汎用μP(1−1)に返される。これによっ
て汎用μP(1−1)は1回のバスアクセスを完了し、
次の動作を行う。次に他の主な命令について、動作を以
下に示す。コードフェッチ動作、デコード動作、ステー
タスライト動作はどの命令も同じであるので説明は省略
し、命令実行動作について説明する。
合もコードフェッチからSAD部(2−4)におけるS
AA(2−13)生成迄は同じで、ACC(2−7)か
らALU(2−6)経由でOSD線(2−14)を用い
て、SAIF(2−5)へそのときのアキュームレータ
の内容が出力され、更にPOLソース空間(1−4)に
ソースデータが書き込まれる。
の算術論理演算は、アキュームレータの内容と指定され
たソースデータとの演算を行い、結果をACC(2−
7)のアキュームレータに格納する動作を行う。即ち、
SAD部(2−4)で計算されたソースアドレスでSA
IF(2−5)が入出力バスISD(2−15)に読み
出したソースデータと、ACCのアキュームレータのデ
ータの演算を、ALU(2−6)部で行い、結果を入出
力バスOSD(2−14)を介して出力しACCのアキ
ュームレータ内に格納する様に動作する。
のが図3である。図3で、ADSは汎用μP(1−1)
のPOLステータスアクセスを示し、POLG(1−
2)でこれを認識すると、コードフェッチ動作を行い、
続けてデコード、命令実行、ステータスライト動作を順
次行う。このシーケンスは全てEXE(2−8)で管理
される。
する時には上記POLステータスを読み出す事で、命令
の実行を順次起動するように動作する。この命令の起動
操作及び実行管理は、汎用μP(1−1)が備える”P
OLエミュレータ”と呼ぶファームウェアF/Wにより
行われる。
装置を使用して実現する他の制御部CDIF部(2−
2)で、この発明の実施例2となるものを示す。実行す
るPOLコードが、H/W実行命令かF/W実行命令か
を示すものである。(4−1)は、POLコードメモリ
(1−3)から読み出してきたPOLコード、(4−
2)はPOLコード(4−1)の一部をデコードし、H
/W実行命令かF/W実行命令かを判別するデコード部
を示す。(4−3),(4−4)は上記デコード部(4
−2)でデコードした結果信号HWINS,FWINS
であり、汎用μP(1−1)にこれら命令の種別がPO
Lステータス(4−5)として埋め込まれる。図5は、
POL命令の実行毎にPOLG(1−2)から汎用μP
(1−1)へ返すPOLステータス(4−5)POL_
STATUSのフォーマットである。図6は、図4のP
OLコードのフォーマットで、H/W実行命令かF/W
実行命令かをCDIF部(2−2)で簡単に認識できる
ようにビットMODEをアサイン(割り当て)してい
る。なお、POLコード(4−1)等はレジスタやバッ
フアに格納されるが、説明上数番号で直接POLコード
そのものを示している。図7は、汎用μP(1−1)で
POLG(1−2)からPOLステータスを読み出した
時のPOLエミュレータの処理フローを書いたものであ
る。
を用いて説明する。汎用μP(1−1)からPOLG
(1−2)に対してPOL命令の起動(POLステータ
スのリード)が行われ、POLG(1−2)がコードフ
ェッチを行う迄は実施例1の動作と同じであるのでここ
では省略する。図4では、コードフェッチを行った際に
CDIF部(2−2)は、デコード部(4−2)で、H
/W命令かF/W命令かの種別を判別し、デコード結果
をHWINS(4−3)又はFWINS(4−4)とし
て汎用μP(1−1)にPOLステータス(4−5)を
埋め込む。又H/W実行命令の場合は、POLG(1−
2)内でそのまま実行される。H/W命令とF/W命令
の切り分けは、使用頻度の高いPOL命令のみを選別し
てH/W命令として、POLGのH/W量を削減し、コ
ストパーフォーマンスの向上をはかっている。
ォーマットを図5に示す。ビット31とビット30に各
々H/W実行命令である事を示すHWINSビット及び
F/W実行命令である事を示すかFWINSビットをア
サインしている。更に、CDIF部(2−2)のデコー
ド部(4−2)でデコード回路が簡単に組めるようにP
OLコード(4−1)のフォーマット内の最上位3ビッ
トにビットMODEを設けている。図6中のPOLコー
ド(4−1)のフォーマットで、ExT〜Shift迄
のビットフィールドは、ALU(2−6)に対する制御
コードであり、本発明とは直接関係ないのでここでの説
明は省略する。
レータの処理フローを図7を用いて説明する。POLエ
ミュレータは、POL命令を実行する時には、POLコ
ードメモリ(1−3)からPOLステータスを読み出し
(ステップS1)、読み出されたPOLステータスのH
WINSビット(4−3)及びFWINSビット(4−
4)をチェックし(ステップS2)、F/W実行命令か
を判別する(ステップS3)。H/W実行命令で有れば
ステップS1に戻り、次のPOLステータスを読み出
し、F/W実行命令であればステップS4にて、POL
エミュレータに命令処理を行う。POLエミュレータで
の命令実行が終了すれば、再びステップS1に戻りPO
Lステータスを読み出し、上記処理を繰り返す。POL
G(4−2)で実行するH/W実行命令は、アプリケー
ションでよく使用される単純な命令を選択しており、実
現性能と照らし合わせた適度なH/Wボリューム(量)
とする事で、不必要なコストアップを抑えている。
算装置を使用して実現する更に他のCDIF部(2−
2)である。(8−1)はPOLコードメモリ(1−
3)からのPOLコード、(8−2)はPOLコード
(8−1)をデコードし、コード部分を抽出する抽出
部、(8−3)は抽出されたPOLステータスである。
この抽出部(8−2)は、図10に示すオペコードを実
装したPOLコード(8−1)からコード部分を抽出
し、図9に示すPOLステータス(8−3)のフォーマ
ットにオペコードをのせるように動作する。POLコー
ド(8−1)は、図10のPOLコードのフォーマット
で示され、POLステータス(8−3)は図9に示すP
OLステータスのフォーマットである。
明する。コードフェッチ動作迄は実施例1と同じである
ので、異なる動作のみについて説明する。POLコード
(8−1)には図6で示したMODEビット以外に、F
/W実行命令時には不要な図6のExtビットからFu
nctionまでをビット“0”にセットし、かつSh
iftビットの替わりに、図10に示すオペコード(分
岐テーブルのオフセット)をPOLステータスに埋め込
む。即ち、コードフェッチ時にPOLコード抽出部(8
−2)でオペコードを抽出し、図9に示すPOLステー
タスの2ビット〜14ビットに、オペコードを埋め込む
事によって、POLエミュレータの実行するF/W実行
命令のテーブル分岐処理を容易にしている。
AIF(2−5)及びALU(2−6)で各々検出され
るオーバーフロー(11−1)やパリティエラー(11
−2)の各信号をPOLステータス(11−3)にセッ
トする動作を示すものである。図12は図11にに示す
POLステータス(11−3)のフォーマットである。
図13は、これらオーバーフローやパリティエラーの異
常が発生した時のPOLエミュレータの処理を示すもの
である。
説明する。コードフェッチ動作からコードのデコード動
作迄は実施例1と同じである。命令実行時に検出される
ALU(2−6)でのオーバフロー等の演算エラーやソ
ースアクセス時にSAIF(2−5)で検出されるパリ
ティエラー等の情報を、図12で示される様にPOLス
テータスに実装して、POLエミュレータは図13に示
す処理を行う事になる。即ち、POLエミュレータがP
OLコードメモリ(1−3)からPOLステータスを読
み出し(ステップS5)、POLステータスチェックを
行う(ステップS6)。オーバーフローOVF(11−
1)やパリティエラーPER(11−2)等の異常ビッ
トがセットされていると(ステップS7)、POLエミ
ュレータで異常処理を行う(ステップS8)。
断し、エラーの発生したPOLソース空間(1−4)の
ソースアドレスやPC値(2−3)を故障情報として収
集する。これらの異常処理は命令の実行性能に影響を与
えず、各命令毎にリアルタイムに処理される。
おけるSAIF(2−5)及びALU(2−6)で各々
検出されるエラー要因が実施例4より多い場合の対応策
である。(14−1)は、種々のエラーを集めるEXス
テータスで、図16に示すビットアサインを持つ。(1
4−2)はこの実施例のPOLステータスで、図15に
示すビットアサインを持つ。OVF(14−3)は、A
LU(2−6)での演算結果でオーバフローがでた場合
の信号、UNF(14−4)は、演算結果でアンダーフ
ローがでた場合の信号、MPER(14−5)は、SA
IF(2−5)でソースアクセス時に検出されるメモリ
のパリティエラー信号、BPER(14−6)は、ソー
スアクセス時に検出されるバスのデータパリティエラー
信号、ADER(14−7)は、ソースアクセス時に検
出されるバスのアドレスパリティエラー信号、TOUT
(14−8)は、ソースアクセス時に検出されるバスの
タイムアウト信号を示す。更に、(14−9)及び(1
4−10)は、EXステータス(14−1)から出力さ
れる各種エラー要因の論理和をとったもので、エラー第
1EXER1信号及びエラー第2EXER2信号として
POLステータスに組み込まれて入力される。図17
は、実施例4では格納できない数種類の異常が発生した
時のEXステータスを使用した汎用μP(1−1)の異
常処理フローを示したものである。
説明する。図14で、ALU(2−6)やSAIF(2
−5)で検出されるOVF(14−3),UNF(14
−4),及びMPER(14−5),BPER(14−
6),ADER(14−7),TOUT(14−8)を
POLステータスに実装する。次にPOLエミュレータ
でのステータスチェックの項目が多くなり、オーバヘッ
ドを大きくする事になる為、各種エラーをEXステータ
ス(14−1)として一箇所にまとめ、その出力の論理
和をとる事で、POLステータス(14−2)のアサイ
ンを簡潔にし、POLエミュレータの処理を簡単化し処
理性能をあげた。
設けた時のPOLステータス(14−2)のフォーマッ
トであり、EXER1(14−9)とEXER2(14
−10)のビットアサインを決めている。
ビットアサインを示したもので、汎用μP(1−1)か
らEXステータスを格納するレジスタを読み出す事によ
り、詳細エラー要因が判別できる。図17は、多種類の
エラー要因がある場合の汎用μP(1−1)の異常処理
フローを示したものである。ステップS9でPOLステ
ータス(14−2)を読み出し、ステップS10でPO
Lステータス(14−2)のEXER1及びEXER2
をチェックし、これらのビットが有効で有れば(ステッ
プS11)、異常があったとし、ステップS12に行き
汎用μP(1−1)はEXステータス(14−1)を読
み出し、詳細エラー要因にあった各エラー処理(ステッ
プS13又はステップS14)を行う。
内部のカウンタで固定値をカウントし、カウントアップ
すると、汎用μP(1−1)にPOLステータス(18
−2)で通知する事を示している。(18−1)は、P
OLモジュールの動作時間を計時するPOLスケジュー
リングカウンタ、(18−2)は図19に示すビットア
サインを持つPOLステータスを示す。(18−3)
は、POLスケジューリングカウンタ(18−1)がP
OLステータス(18−2)へ出力して組み込むスケジ
ューリングタイマ信号を示す。図19は、図18のスケ
ジューリングタイマ信号(18−2)を実装したときの
POLステータスのフォーマットを示す。図20は、P
OLステータス(18−2)のスケジューリングタイマ
信号(18−3)がカウントアップした時のPOLスケ
ジューラとPOLエミュレータの処理フローを示す。こ
こでPOLスケジュールは各種POLモジュールに予め
時間割りを振り当てて管理し、各種POLプログラムが
集合したものがPOLスケジュールである。
説明する。図18において、POLスケジューリングカ
ウンタが予め定めた所定時間後にカウントアップする
と、スケジューリングタイマ(18−3)が有意にな
り、POLステータス(18−2)のビットSched
uling Timerがセットされる(図19)。図
2において、POLエミュレータは、POLスケジュー
ラのサブルーチンとして、呼出しCALLされており、
ステップS15でPOLステータスを読み出し、POL
エミュレータがPOLステータスをチェック(ステップ
S16)する。Scheduling Timerビッ
トがセットされると(ステップS17)、POLエミュ
レータは、POLモジュールの切り替え処理を行う為
に、POLスケジューラへサブルーチンへリターンする
(ステップS18)。POLスケジューラにリターンす
ると、スケジューラはタスクのスイッチ処理(POLモ
ジュールの切換え)を行い、通信S/Wやメンテナンス
用等他のS/Wを起動する。この様な方式をとる事によ
り、割り込みを使用して汎用μP(1−1)にPOLモ
ジュールの実行時間を通知する必要が無くなり、割り込
み処理による汎用μP(1−1)のオーバヘッドをなく
し、しかもPOLモジュールの実行時間の精度を高める
事ができる。
ケジューリングカウンタの設定値を汎用μP(1−1)
から自由にリード/ライトできる様にしたものである。
(21−1)は、汎用μP(1−1)からMPIF部
(2−1)を経由してリード/ライトできるカウンタ値
設定レジスタ、(21−2)はカウンタ値設定レジスタ
(21−1)とPOLスケジューリングカウンタ(18
−1)の出力を比較するカウンタコンパレータを示す。
他は実施例6と同じである。
る。図21において、POLスケジューラはPOL命令
実行の初期化時に汎用μP(1−1)及びPOLG(1
−2)内部のMPIF部(2−1)経由でカウンタ値設
定レジスタ(21−1)にカウントアップ値をセットす
る。
タをサブルーチンCALLし、POL命令の実行を開始
する。POLエミュレータは、POLステータス(18
−2)を読み出す事によって、次々とPOL命令を実行
していくが、POLスケジューリングカウンタ(18−
1)のカウントアップでPOLステータス(18−2)
のスケジューリングタイマ(18−3)がセットされ、
POLエミュレータからPOLスケジューラへサブルー
チンRTN(リターン)される。
ウンタ(18−1)とカウンタ値設定レジスタ(21−
1)との出力をカウンタコンパレータ(21−2)で比
較する事によって、POLスケジューリングカウンタ
(18−1)がカウントアップする時間を自由に変える
事ができる。POLスケジュールカウンタ(18−1)
は特定時間後のカウントアップではしなくてよい。
とカウンタコンパレータ(21−2)を設ける事によ
り、POLスケジューラにおけるPOL命令の実行時間
を自由に変える事ができ、POL命令実行以外の通信処
理やメンテナンス処理との時間配分やチューニングを柔
軟に行う事ができる。
令実行より優先度の高いS/Wが、POL命令実行を途
中で中断したい時に、POLエミュレータへ通知する為
の手段を示したもので、各S/Wでライトできるスケジ
ューラポート(22−1)を設け、ライトした結果をP
OLステータス(22−2)に反映している。図で(2
2−1)は各S/Wがライトするスケジューラポート、
(22−2)は図23のビットアサインを持ったPOL
ステータス、(22−3)はスケジューラポートをライ
トされた時に有意になるスケジューラリクエスト信号
(Sch_Req)を示す。図24は、スケジューラポ
ート(22−1)をセットする各S/W(例では5ms
ecの割り込み処理タスクを示している)とPOLエミ
ュレータ及びPOLスケジューラの処理フローを示す。
説明する。図24で例えば、POL命令実行中(即ちP
OLエミュレータ動作中)にも5msec毎に動作しな
ければならないプログラムが、タイマー割り込みで起動
されるとする。この時、5msec割り込み処理ルーチ
ン(24−1)で、スケジューラポート(22−1)を
ライトする事で、POLステータス(22−2)のSc
h_Req(22−3)がセットされる。POLエミュ
レータは、ステップS20でPOLステータスを読み込
み、ステップS21でチェックする。POLステータス
のSch_Req(22−3)が有意になっている事で
(ステップS22)、POLスケジューラへサブルーチ
ンリターンする(ステップS23)。POLスケジュー
ラでは、POLステータスの内容によって5msecの
割り込み処理ルーチンからの要求があった事を認識し、
自己の処理を中断して割り込みタスクを起動する。
空間(1−4)を16分割し、POLソースアドレスを
生成する方法を示す。図において、(25−1)は16
個のセグメントレジスタで、各セグメントレジスタには
セグメントのベースポインタが格納される。(25−
2)はセグメントレジスタから特定のセグメントを選択
するセレクタ、(25−3)は生成されたPOLソース
アドレスを示す。(25−4)は、図10で示したPO
Lコード(8−1)のオペランド部のOFFSETを拡
張した新しいOFFSET(25−6)にセグメントの
セレクト情報SASEL(25−5)をPOLコード
(8−1)につけ加えたものである。
る。汎用μP(1−1)からのPOLステータス(8−
3)のリード動作で、POLコード(25−4)に埋め
込んだSASEL(25−5)によって、16個のセグ
メントレジスタ(25−1)の内容から一つのPOLソ
ースアドレス空間が選択される。選択されたセグメント
レジスタの内容、すなわちセグメントのベースポインタ
と、POLコード(25−4)のOFFSETとからP
OLのソースアドレス(25−3)が生成される。
化時にセットすると、次にリセットされる迄は不変であ
る。16個のセグメントは、例えば”ローカルRAM領
域””コモンRAM領域””ローカルROM領域””コ
モンROM領域””ローカル定数領域””コモン定数領
域”等アプリケーションで使用する各種領域に分割し、
使い分ける事ができる。
ス空間(1−4)を4個のインデックスレジスタで修飾
する場合を示す。図において、(26−1)は4個のイ
ンデックスレジスタ”X””Y””Z””W”、(26
−2)は直前の実施例9のPOLコード(25−4)に
更に追加したINDEX(26−3)によって、インデ
ックスレジスタ(26−1)から特定のレジスタを選択
するセレクタ、(26−4)はINDEXの追加された
POLコードを示す。(26−5)は、インデックスセ
レクタ(26−2)とPOLコード内のOFFSET
(25−6)から、指定のインデックス修飾する為のア
ドレス加算器である。
る。汎用μP(1−1)からのPOLステータス(8−
3)のリード動作で、POLコード(26−4)に埋め
込んだINDEX(26−3)によって、4個のインデ
ックスレジスタ(26−1)の内容から一つのインデッ
クスレジスタが選択される。インデックスセレクタ(2
6−2)で選択されたレジスタの内容と、POLコード
(26−4)のOFFSET(25−6)がアドレス加
算器(26−5)で加算され、インデックス修飾された
POLのソースアドレス(25−3)が計算される。
で、POLコードで選択されたインデックスレジスタ”
Z”の値が「20」の場合は、計算されたソースアドレ
スは「1020」となる。
拡張機能として、インデックスレジスタ(26−1)の
選択を同時に”Y”と”W”とした時、インデックスセ
レクタ(26−2)では同時に”Y”と”W”が選択さ
れ、アドレス加算器(26−5)では3値の加算、即ち
「OFFSET+Y+W」が計算される。例えば、OF
FSET値(25−6)が「1000」で、POLコー
ドで選択されたインデックスレジスタ”Z”の値が「2
0」、”W”の値が「120」の場合は、計算されたソ
ースアドレスは「1140」となる。このようにすれ
ば、少ないインデックスレジスタによっても多様なイン
デックス修飾が可能となる。
に計算されたソースアドレス(25−3)と、POLス
ケジューラの初期化で設定される上/下限アドレスリミ
ッタ(27−1),(27−2)とを比較するコンパレ
ータ(27−3)でアドレスリミットエラー(27−
4)を検出する。
で、POLのソースアドレスとして計算されたソースア
ドレス(25−3)が、アプリケーションで使用できる
空間を越えてアクセスされようとする時に、POLスケ
ジューラで設定された上限及び下限アドレスリミッタ
(27−1),(27−2)で範囲指定されたアドレス
領域内か否かをコンパレータ(27−3)で比較する事
により、指定されたアドレス範囲外で有ればリミットエ
ラー(27−4)を出力する。
の上/下限アドレスリミッタ(27−1),(27−
2)を細分割してセグメントレジスタ毎に持たせた時の
図である。(28−1)及び(28−2)は、セグメン
ト毎に対応した上/下限アドレスリミッタを16個持た
せたものであり、どのリミッタ設定値を選択するかは、
(28−3)及び(28−4)の上/下限アドレスセレ
クタで、POLコード(26−4)のSASEL(25
−5)によって適宜決めることができる。
ジューラ初期化処理で、まず各16個の上/下限アドレ
スリミッタ(28−1),(28−2)がセットされ
る。POLエミュレータが起動され、汎用μP(1−
1)からPOLステータス(8−3)のリードアクセス
があると、POLコード(26−4)のSASEL(2
5−5)によって、セグメントレジスタ(25−1)が
選択されると共に、16個の上/下限アドレスリミッタ
(28−1),(28−2)からセグメントレジスタと
同じソース空間のリミッタ値が上/下限サレクタ(28
−3),(28−4)で選択される。選択された上/下
限リミッタ値と、直前の実施例12と同じように生成さ
れたソースアドレス(25−3)が、コンパレータ(2
7−3)に入力され、上/下限チェックを行う事で、リ
ミットエラーを検出する。この様な構成をとる事で、ア
プリケーションのソースアクセスを、使用するセグメン
ト毎にチェックでき、不正(使用不能等)アドレスの検
出(リミットエラー検出)ができる。
前の実施例13のリミットエラー(27−4)が検出さ
れた時に、POLステータス(29−2)に特定ビット
をアサインする事で、POLエミュレータに不正アドレ
スアクセスが有った事を示すものである。
れたリミットエラーを、汎用μP(1−1)のPOLエ
ミュレータにオーバヘッドを無くして通知する手段を図
29に示している。図28のソースアドレス計算から出
力されるリミットエラー(27−4)をEXステータス
(29−1)に入力する。このエラー(27−4)を図
31に示すEXステータス(29−1)の、LIMER
(31−1)としてアサインし、エラー発生時にはこの
ビットがセットされる。図31において、EXステータ
ス(29−1)で、LIMER(31−1)がセットさ
れると図30のPOLステータス内のエラー第3EXE
R3がセットされる。このPOLステータス(29−
2)を汎用μP(1−1)のPOLエミュレータが読み
込んだ時のフローを図32に示す。図32で、異常発生
状況をチェックする迄は、実施例5の図17と同じフロ
ーである。異常がある場合に、POLステータス(29
−2)のEXER1,EXER2,EXER3をチェッ
クする(ステップS25)事で、どのエラー要因が発生
したかが認識でき、更にEXステータス(29−1)を
読み込む事によりPOLエミュレータでリミットエラー
である事がわかり、POLエミュレータからリミットエ
ラーの異常処理(ステップS28)が起動される。他の
エラー第1,エラー第2,エラー第3であれば各ステッ
プS26,27で対応の処理を行う。
5と実施例16を示す。図33に、POLスケジューラ
からセットされるソースアドレス一致検出用の設定レジ
スタ(以下SAR(33−1))と、アドレス計算され
たPOLソースアドレスとの比較をアドレスコンパレー
タ(33−2)で行う事により、ソースアドレス一致を
検出する事を示している。
れたPOLソースアドレスに対して、アドレス一致を検
出する回路を提供する。POLスケジューラがPOLエ
ミュレータをサブルーチンCALLする際に、メンテナ
ンスツールからの要求で、ソースモニタの要求がある
と、メンテナンスツールが指定したソースアドレスを、
SAR(33−1)にセットする。 POLエミュレー
タがPOLG(1−2)に対しPOLステータス(8−
3)をリードアクセスし、POL命令を実行する時計算
されるソースアドレス(25−3)と、上記SAR(3
3−1)の内容がコンパレータ(33−2)で比較さ
れ、アドレス一致を検出する。上記POLスケジューラ
及びPOLエミュレータの処理を図35に示す。
致した事をPOLエミュレータに知らせるSource
_Address Consistence(33−
3)を実装したPOLステータス(33−4)を示した
ものである。図35は、その時のPOLエミュレータの
処理フローを示したものである。POLエミュレータ
は、POL命令実行時に上記Source_Addre
ssConsistence(33−3)がセットされ
ていると(ステップS30)、POL命令の実行フロー
からPOLスケジューラにサブルーチンRTN(ステッ
プS31)し、POLスケジューラにて、メンテナンス
ツールからの要求に応答する。
7と実施例18を示す。実施例1で、計算されたPOL
のコードアドレス即ちPC(2−3)に対して、PC一
致検出用の設定レジスタ(36−1)とPCコンパレー
タ(36−2)とPC一致信号(36−3)を示すPO
Lステータス(36−4)を用い、PCアドレス一致を
検出する回路を提供する。
ミュレータをサブルーチンCALLする際に、メンテナ
ンスツールからの要求で、プログラムモニタの要求があ
ると、メンテナンスツールが指定したPC値を、PCR
(36−1)にセットする(ステップS33)。POL
エミュレータがPOLG(4−2)に対しPOLステー
タス(8−3)をリードアクセスし、POL命令を実行
する時計算されたPC(2−3)と、上記PCR(36
−1)の内容がコンパレータ(36−2)で比較され
(ステップS35)、アドレス一致を検出する。上記P
OLスケジューラ及びPOLエミュレータの処理を図3
8に示す。
した事をPOLエミュレータに知らせるProgram
_Counter Consistence(36−
3)を実装したPOLステータス(36−4)を示した
ものである。図38は、その時のPOLエミュレータの
処理フローを示したものである。POLエミュレータ
は、POL命令実行時に上記Program_Coun
terConsistence(36−3)がセットさ
れていると(ステップS35)、POL命令の実行フロ
ーからPOLスケジューラにサブルーチンリターン(ス
テップS36)し、POLスケジューラにて、メンテナ
ンスツールからの要求に応答する。
を、前記POL命令の実行コードのアドレスを示すPC
と、POL命令実行専用の汎用レジスタであるACCを
含むPOL命令を実行するのに必要な各種データを記憶
するレジスタファイルと、POLのソースアドレスを計
算するSAD部と、前記μPとのI/Fを行うMPIF
部と、ソースアクセスを行うSAIF部と、前記POL
コードをフェッチするCDIF部と、POL命令の演算
を行うALU部と、実行制御を行うEXE部とから構成
し、CPUで、POLGでのPOL命令の実行を、汎用
μPのリードバスアクセスと同期させ、汎用μPへのリ
ードデータ(以下POLステータス)として、POL命
令の実行結果をPOLGから返し、POL命令の実行を
起動し、これらの命令実行状態を監視しているPOLエ
ミュレータと、このPOLエミュレータの動作とPOL
Gの命令実行を完全に同期化し、POLGのH/Wの動
作及びPOLエミュレータ動作のオーバヘッドを無くし
たので、最小命令実行時間200nsecというPOL
命令の実行を、各種メンテナンス処理やスケジューラに
よるオーバーヘッドを最小に抑えることができる。具体
的には、POL命令実行自体の高速化、すなわち a インデックス等ソースアドレス計算の高速化が図れ
る。 b アドレスリミットエラーの高速化が可能となった。 また、汎用μPとPOL命令実行専用コプロセッサ(P
OLG)の同期方法の効率化、すなわち a POLステータスのリードによるμP−POLG間
のハンドシュークの簡単化が図れる。 b POLエミュレータのPOLステータスポーリング
によるPOL命令実行の同期化が可能となった。
部で上記POL命令のコードを判別し、上記POLGの
上記H/Wで実行可能な実行命令か、上記汎用μPで実
行することが必要なF/W実行命令かを判別するデコー
ド部を設け、その判断結果を上記POLGから上記汎用
μPへ上記POLステータスとして返し、上記POLエ
ミュレータが前記H/W実行命令か前記F/W実行命令
かを即座に認識できる様にしたので、汎用μP実行とP
OLG実行の命令を切り分けて、POLG実行命令とP
OLエミュレータ実行命令の分類ができる。
ステータスのフォーマット構成図内にPOL命令のオペ
コードを実装して、上記F/W実行命令の実行時に、上
記汎用μPで前記POLステータスのオペコード部を分
岐判断し、上記POLエミュレータの分岐処理に要する
オーバヘッドを削減するので、POLGで検出した命令
実行中に発生したエラーの、μPへのリアルタイムな通
知ができる。
生するオーバーフローやメモリパリティエラー等を上記
POLGで検出し、これらエラーを前記POLGからP
OLステータスとして返し、上記POLエミュレータで
POL命令毎のエラー発生を認識し、エラー発生タイミ
ングとエラー発生箇所を認識し、命令毎のエラー処理を
リアルタイムに行うので、POL命令の実行管理F/W
(POLエミュレータ)と各モジュールの起動スケジュ
ールを管理するF/W(POLスケジューラ)の、切り
替え時間の短縮ができる。
上記エラーを一箇所にまとめるEXステータスレジスタ
を設け、EXステータスレジスタにエラー要因がセット
された事でPOLステータスの上記フォーマットの特定
ビットがセットされる様にして、POL命令実行中に発
生する多くのエラー要因を一つにまとめ、上記POLエ
ミュレータは前記POLステータスの前記特定のビット
のみをチェックして、エラーの発生の有無を確認し、更
にエラー処理内で前記EXステータスレジスタの内容を
チェックしてどのようなエラーが発生したかを判断する
ので、POLのアプリケーションの不正アクセスをH/
Wで検出し、アプリケーションのデバッグ効率をあげる
ことができる。
の実行時間を計数するカウンタを設け、一定時間POL
命令の実行が行われると、上記POLステータスのフォ
ーマットの特定ビットをセットして、上記POLエミュ
レータ経由でPOL命令の実行と通信S/Wやメンテナ
ンス用S/W等他のS/Wとの時間割スケジューリング
を管理するPOLスケジューラを設け、前記特定ビット
を検出して前記POLスケジューラがPOL命令の占有
時間超過を判断し、各種POLプログラムの集合である
POLモジュールについて、切り替え時間のオーバヘッ
ドを少なくするので、POL命令実行時間に影響を与え
ずに、プログラムモニタやソースモニタ等のPOLプロ
グラムのデバッグが行える。
カウンタ値設定用のレジスタを設け、このレジスタの設
定値と上記計数カウンタの出力とを比較するコンパレー
タとを設け、POL命令の実行占有時間を可変にし、上
記POLスケジューラが任意にPOL命令の実行占有時
間を調整するので、スケジューラへの切り替え時間を最
小にすると共に、割り込み処理を使用したスイッチ(切
換)動作に比べ、精度の高いスイッチ動作が可能とな
る。
より優先順位の高い通信S/Wやメンテナンス用S/W
等からの要求で、POL命令の実行を中断する為の手段
として、POLG内部に他のS/Wからライトできるス
ケジューラポートを設け、上記S/Wがこのスケジュー
ラポートにライトアクセスすることで、POLステータ
スのフォーマットの特定ビットをセットし、上記POL
スケジューラがこの特定ビットを検出して、上記POL
モジュールについて切り替え時間のオーバヘッドを少な
くすることで、各S/WとPOLスケジューラ間のスイ
ッチ時間を最小にすることができる。
空間をアドレス計算の為に、ベースポインタを備えた1
6個のセグメントに分割し、前記ソース空間のアクセス
方式として前記セグメント方式を採用し、POLエミュ
レータがソース空間の管理を行うので、POLのソース
空間をアプリケーションで柔軟に使用できるようにな
る。
用する4を設け、該インデックスレジスタと前記16個
のセグメントを使用して16種類のインデックス修飾を
上記POLGで行い、POLソースのアドレス計算を行
うので、更にPOL命令の実行時間を更に短縮できる。
レジスタと上記セグメントとでインデックス修飾された
ソースアドレスに対し、これらアドレスの上限値及び下
限値を設定できるソースアドレスリミットレジスタを設
け、POLアプリケーションで誤ったソースアドレス指
定があった場合に上/下限をチェックし、上/下限を越
えるアドレスについてリミットエラーを検出するので、
アプリケーションの不正アドレスを検出することがで
き、より細かい範囲で検出できる。又リミットエラーを
リアルタイムで検出できる。
を検出する為の上記リミットレジスタを上記セグメント
レジスタに対応すべく、16個の空間に分割し、POL
アプリケーションで誤ったソースアドレス指定があった
場合に上/下限をチェックし、前記リミットエラーを1
6個のソース空間毎に検出するので、アプリケーション
の不正アドレスによるアクセスを柔軟に行える。
される上記POLソース空間のリミットエラーを、PO
Lステータス及びEXステータスのフォーマット内に実
装し、上記POLGから汎用μPにPOLステータスと
して返すことで、POLエミュレータにリミットエラー
の有ったことをリアルタイムに通知するので、エラー発
生時の命令実行状態等を故障情報として残すことができ
る。
ースアドレスを設定するSARレジスタを設け、この設
定値とPOL命令実行時に計算されたソースアドレスと
の比較を行うコンパレータとを設け、これらの値が一致
したことを検出し、この検出結果を上記POLエミュレ
ータに通知して、POL命令の実行を中断し、メンテナ
ンスツールからのソースモニタ機能などを行うので、P
OLスケジューラにアドレスが一致したことを通知する
ことができ、メンテナンスツールへの応答が直接できる
ようになる。
スアドレスが一致したことを検出した結果をPOLエミ
ュレータに通知する為、一致結果をPOLステータスフ
ォーマット内の特定ビットに実装してこのフォーマット
を返すことによりPOLスケジューラに通知するので、
ソースモニタ機能等のメンテナンスツールへの応答をP
OL命令の実行に影響を与えること無くなる。
実行アドレスを設定するPCRレジスタを設け、この設
定値とコードフェッチ時に計算されたプログラムカウン
タPC値とを比較するコンパレータとを設け、プログラ
ムカウンタPC値が一致したことを検出し、この検出結
果をPOLエミュレータに通知するので、POL命令の
実行を中断し、メンテナンスツールからのプログラムモ
ニタ機能などを行うことができる。
プログラムカウンタPC値の一致を検出し、その結果を
POLエミュレータに通知する為、一致結果をPOLス
テータスフォーマット内の特定ビットに実装して、この
フォーマットを返すことによりPOLスケジューラに通
知するので、プログラムモニタ機能等のメンテナンスツ
ールへの応答をPOL命令の実行に影響を与える事無く
実現できる。
ブロック図で、汎用μPとPOLGを用いたマルチプロ
セッサ構成を示す図である。
ブロック図である。
ミングを示す図である。
である。
図である。
ある。
る。
である。
図である。
である。
の異常通知を示す図である。
示す図である。
る。
の異常通知と拡張POLステータスを示す図である。
示す図である。
す図である。
る。
リングカウンタの構成を示す図である。
示す図である。
プ処理を示す図である。
リングカウンタのRD/WTを示す図である。
ラポートの構成を示す図である。
示す図である。
を示す図である。
タの構成を示す図である。
ックスレジスタの構成を示す図である。
トエラー検出を示す図である。
トエラー検出を示す図である。
スのリミットエラー構成を示す図である。
示す図である。
す図である。
である。
一致検出を示す図である。
示す図である。
す図である。
示す図である。
示す図である。
る。
Claims (17)
- 【請求項1】 産業用プラント等における制御特有のプ
ログラミング(以下POL)言語の系統の命令を実行す
る専用のコプロセッサ(以下POLG)と、数値演算処
理をする汎用マイクロプロセッサ(以下汎用μP)と、
POL命令のコードが格納されているPOLコードメモ
リと、前記POLGがPOL命令の実行上使用するPO
Lソース空間とからなり、マルチプロセッサ構成で実現
した制御命令演算処理装置(以下CPU)において、前
記POLGを、前記POL命令の実行コードのアドレス
を示すプログラムカウンタ(以下PC)と、POL命令
実行専用の汎用レジスタであるアキュームレータ(以下
ACC)を含むPOL命令を実行するのに必要な各種デ
ータを記憶する汎用レジスタ(以下レジスタファイル)
と、POLのソースアドレスを計算するソースアドレス
計算部(以下SAD部)と、前記μPとのインタフェー
ス(以下I/F)を行うバスインタフェース部(以下M
PIF部)と、ソースアクセスを行うソースアクセスイ
ンタフェース部(以下SAIF部)と、前記POLコー
ドをフェッチするインタフェース制御部(以下CDIF
部)と、POL命令の演算を行う演算部(以下ALU
部)と、実行制御を行う管理部(以下EXE部)とから
構成し、上記CPUで、前記POLGでのPOL命令の
実行を、上記汎用μPのリードバスアクセスと同期さ
せ、上記汎用μPへのリードデータ(以下POLステー
タス)として、POL命令の実行結果をPOLGから返
し、POL命令の実行を起動し、これらの命令実行状態
を監視しているPOLエミュレータと、このPOLエミ
ュレータの動作とPOLGの命令実行を同期化し、前記
POLGのハードウェア(以下H/W)の動作及びPO
Lエミュレータ動作のオーバヘッドを最小にしたことを
特徴とする制御命令演算処理装置。 - 【請求項2】 上記CPUに、上記POLG内部の上記
CDIF部で上記POL命令のコードを判別し、上記P
OLGの上記H/Wで実行可能な実行命令か、上記汎用
μPで実行することが必要なフアームウェア(以下F/
W)実行命令かを判別するデコード部を設け、その判断
結果を上記POLGから上記汎用μPへ上記POLステ
ータスとして返し、上記POLエミュレータが上記H/
W実行命令か上記F/W実行命令かを即座に認識できる
様にしたことを特徴とする特許請求の範囲第1項記載の
制御命令演算処理装置。 - 【請求項3】 上記CPUで、上記CDIF部で上記P
OLステータスのフォーマット構成図内にPOL命令の
オペコードを実装して、上記F/W実行命令の実行時
に、上記汎用μPで上記POLステータスのオペコード
部を分岐判断し、上記POLエミュレータの分岐処理に
要するオーバヘッドを削減することを特徴とする特許請
求の範囲第2項記載の制御命令演算処理装置。 - 【請求項4】 上記CPUで、POL命令を実行した時
に発生するオーバーフローやメモリパリティエラー等を
上記POLGで検出し、これらエラーを前記POLGか
らPOLステータスとして返し、上記POLエミュレー
タでPOL命令毎のエラー発生を認識し、エラー発生タ
イミングとエラー発生箇所を認識し、命令毎のエラー処
理をリアルタイムに行うようにしたことを特徴とする特
許請求の範囲第1項記載の制御命令演算処理装置。 - 【請求項5】 POL命令を実行した時に発生する上記
エラーを一箇所にまとめるEXステータスレジスタを設
け、このEXステータスレジスタにエラー要因がセット
された事でPOLステータスの上記フォーマットの特定
ビットがセットされる様にして、POL命令実行中に発
生する多くのエラー要因を一つにまとめ、上記POLエ
ミュレータは前記POLステータスの前記特定のビット
のみをチェックして、エラーの発生の有無を確認する様
にし、更にエラー処理内で前記EXステータスレジスタ
の内容をチェックしてどのようなエラーが発生したかを
判断することを特徴とする特許請求の範囲第4項記載の
制御命令演算処理装置。 - 【請求項6】 上記CPUで、上記POLG内部にPO
L命令の実行時間を計数するカウンタを設け、一定時間
POL命令の実行が行われると、上記POLステータス
のフォーマットの特定ビットをセットして、上記POL
エミュレータ経由でPOL命令の実行と通信ソフトウェ
アやメンテナンス用ソフトウェア等他のソフトウェアと
の時間割スケジューリングを管理するPOLスケジュー
ラを設け、前記特定ビットを検出して前記POLスケジ
ューラがPOL命令の占有時間超過を判断し、各種PO
Lプログラムの集合であるPOLモジュールについて切
り替え時間のオーバヘッドを少なくすることを特徴とす
る特許請求の範囲第1項記載の制御命令演算処理装置。 - 【請求項7】 上記POLG内部に計数カウンタ値設定
用のレジスタを設け、このレジスタの設定値と上記計数
カウンタの出力とを比較するコンパレータとを設け、P
OL命令の実行占有時間を可変にし、上記POLスケジ
ューラが任意にPOL命令の実行占有時間を調整するこ
とを特徴とする特許請求の範囲第6項記載の制御命令演
算処理装置。 - 【請求項8】 上記POL命令の実行より優先順位の高
い通信ソフトウェアやメンテナンス用ソフトウェア等か
らの要求で、POL命令の実行を中断する為の手段とし
て、POLG内部に他のソフトウェアからライトできる
スケジューラポートを設け、上記ソフトウェアがこのス
ケジューラポートにライトアクセスすることで、POL
ステータスのフォーマットの特定ビットをセットし、上
記POLスケジューラがこの特定ビットを検出して、上
記POLモジュールについて切り替え時間のオーバヘッ
ドを少なくすることを特徴とする特許請求の範囲第6項
記載の制御命令演算処理装置。 - 【請求項9】 上記CPUにおいて、上記POLソース
空間をアドレス計算の為に、ベースポインタを備えた1
6個のセグメントに分割し、前記ソース空間のアクセス
方式として前記セグメント方式を採用し、POLエミュ
レータがソース空間の管理を行うことを特徴とする特許
請求の範囲第1項記載の制御命令演算処理装置。 - 【請求項10】 上記CPUにおいて、上記POL命令
で使用する4個のインデックスレジスタを設け、該イン
デックスレジスタと前記16個のセグメントとを使用し
て16種類のインデックス修飾を上記POLGで行い、
POLソースのアドレス計算を行うことを特徴とする特
許請求の範囲第9項記載の制御命令演算処理装置。 - 【請求項11】 上記CPUにおいて、上記インデック
スレジスタと上記セグメントとでインデックス修飾され
たソースアドレスに対し、これらアドレスの上限値及び
下限値を設定できるソースアドレスリミットレジスタを
設け、POLアプリケーションで誤ったソースアドレス
指定があった場合に上/下限をチェックし、上/下限を
越えるアドレスについてリミットエラーを検出すること
を可能とする特許請求の範囲第9項または10項記載の
制御命令演算処理装置。 - 【請求項12】 上記CPUにおいて、上記リミットエ
ラーを検出する為の上記リミットレジスタを上記セグメ
ントレジスタに対応すべく、16個の空間に分割し、P
OLアプリケーションで誤ったソースアドレス指定があ
った場合に上/下限をチェックし、前記リミットエラー
を16個のソース空間毎に検出することを特徴とする特
許請求の範囲第11項記載の制御命令演算処理装置。 - 【請求項13】 上記CPUにおいて、アプリケーショ
ンでアクセスされる上記POLソース空間のリミットエ
ラーを、POLステータス及びEXステータスのフォー
マット内に実装し、上記POLGから汎用μPにPOL
ステータスとして返すことで、POLエミュレータにリ
ミットエラーの有ったことをリアルタイムに通知し、エ
ラー発生時の命令実行状態等を故障情報として残すこと
を特徴とする特許請求の範囲第11項又は第12項記載
の制御命令演算処理装置。 - 【請求項14】 上記CPUにおいて、上記POL命令
のソースアドレスを設定するSARレジスタを設け、さ
らにこのSARレジスタの設定値とPOL命令実行時に
計算されたソースアドレスとの比較を行うコンパレータ
とを設け、これらの値が一致したことを検出し、この検
出結果を上記POLエミュレータに通知して、POL命
令の実行を中断し、メンテナンスツールからのソースモ
ニタ機能などを行うことを特徴とする特許請求の範囲第
1項記載の制御命令演算処理装置。 - 【請求項15】 上記POL命令のソースアドレスが一
致したことを検出した結果をPOLエミュレータに通知
する為、一致結果をPOLステータスフォーマット内の
特定ビットに実装して、このフォーマットを返すことに
より上記POLスケジューラに通知し、ソースモニタ機
能等のメンテナンスツールへの応答をPOL命令の実行
に影響を与えること無く実現することを特徴とする特許
請求の範囲第14項記載の制御命令演算処理装置。 - 【請求項16】 上記CPUにおいて、上記POL命令
の実行アドレスを設定するPCRレジスタを設け、この
PCRレジスタの設定値とコードフェッチ時に計算され
たプログラムカウンタPC値とを比較するコンパレータ
とを設け、プログラムカウンタ値が一致したことを検出
し、この検出結果をPOLエミュレータに通知すること
で、POL命令の実行を中断し、メンテナンスツールか
らのプログラムモニタ機能などを行うことを特徴とする
特許請求の範囲第1項記載の制御命令演算処理装置。 - 【請求項17】 上記POL命令のPC値の一致を検出
し、その結果をPOLエミュレータに通知する為、一致
結果をPOLステータスフォーマット内の特定ビットに
実装して、このフォーマットを返すことによりPOLス
ケジューラに通知し、プログラムモニタ機能等のメンテ
ナンスツールへの応答をPOL命令の実行に影響を与え
ることなく実現する事を特徴とする特許請求の範囲第1
6項記載の制御命令演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6343694A JP2810317B2 (ja) | 1994-03-31 | 1994-03-31 | 制御命令演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6343694A JP2810317B2 (ja) | 1994-03-31 | 1994-03-31 | 制御命令演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271413A true JPH07271413A (ja) | 1995-10-20 |
JP2810317B2 JP2810317B2 (ja) | 1998-10-15 |
Family
ID=13229228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6343694A Expired - Lifetime JP2810317B2 (ja) | 1994-03-31 | 1994-03-31 | 制御命令演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2810317B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280376A (ja) * | 2006-03-15 | 2007-10-25 | Omron Corp | プログラマブル・コントローラ |
US9632794B2 (en) | 2009-06-23 | 2017-04-25 | Seiko Epson Corporation | Subprocessor, integrated circuit device, and electronic apparatus |
-
1994
- 1994-03-31 JP JP6343694A patent/JP2810317B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280376A (ja) * | 2006-03-15 | 2007-10-25 | Omron Corp | プログラマブル・コントローラ |
US9632794B2 (en) | 2009-06-23 | 2017-04-25 | Seiko Epson Corporation | Subprocessor, integrated circuit device, and electronic apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2810317B2 (ja) | 1998-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4975836A (en) | Virtual computer system | |
US7334161B2 (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
KR100588790B1 (ko) | 데이터처리기에서의후속명령처리에작용하는방법및장치 | |
US7752494B2 (en) | Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed | |
JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
US5862148A (en) | Microcontroller with improved debug capability for internal memory | |
JP2013542499A (ja) | データ処理装置のデバッグ処理 | |
WO1995010806A1 (fr) | Dispositif et procede pour le controle d'interruptions | |
JP4893427B2 (ja) | マイクロコンピュータシステム | |
JP2002342114A (ja) | トレースデータ採取可能なプロセッサ | |
WO2008156944A1 (en) | Exception-based timer control | |
US7516311B2 (en) | Deterministic microcontroller context arrangement | |
JP2810317B2 (ja) | 制御命令演算処理装置 | |
CN112834819A (zh) | 一种用于电能计量芯片的数字信号处理装置及方法 | |
US20080010426A1 (en) | Processor system and processing method for operating system program in processor system | |
US7584464B2 (en) | Software processing method and software processing system | |
US7562207B2 (en) | Deterministic microcontroller with context manager | |
AU626067B2 (en) | Apparatus and method for control of asynchronous program interrupt events in a data processing system | |
US5212779A (en) | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction | |
JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
US6829735B1 (en) | Computer system having a ROM correction unit | |
WO2006081094A2 (en) | Deterministic microcontroller | |
JPH08249018A (ja) | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ | |
JP2001022413A (ja) | プログラマブルコントローラ | |
EP0938047A1 (en) | Memory protection method and device therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070731 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080731 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 11 Free format text: PAYMENT UNTIL: 20090731 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 12 Free format text: PAYMENT UNTIL: 20100731 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100731 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110731 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 13 Free format text: PAYMENT UNTIL: 20110731 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 14 Free format text: PAYMENT UNTIL: 20120731 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 15 Free format text: PAYMENT UNTIL: 20130731 |
|
EXPY | Cancellation because of completion of term |