JPH06250857A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH06250857A JPH06250857A JP5038270A JP3827093A JPH06250857A JP H06250857 A JPH06250857 A JP H06250857A JP 5038270 A JP5038270 A JP 5038270A JP 3827093 A JP3827093 A JP 3827093A JP H06250857 A JPH06250857 A JP H06250857A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- task
- program
- address
- pipeline
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 タイマ,暴走監視,バックアップロジックの
機能を備えながら、周辺回路の簡素化・低価格化を実現
する。 【構成】 複数のプログラムを数サイクルごとに一定時
分割で切り替えながら並行処理する機能を備え、切り替
え時に、前記プログラムに含まれる命令が実行途中であ
った場合、命令の途中状態を保留してプログラムが切り
替えられ、当該命令が含まれるプログラムの次の実行サ
イクル時に、前記途中状態より実行を開始し、前記命令
の必要サイクル数によらず、一定サイクル分割比で切り
替える。また、特定のプログラムの分岐命令を禁止し所
定のアドレスまで固定ループ実行として、他のプログラ
ムの暴走監視及びタイマ機能の少くとも一方のルーチン
を組込む。
機能を備えながら、周辺回路の簡素化・低価格化を実現
する。 【構成】 複数のプログラムを数サイクルごとに一定時
分割で切り替えながら並行処理する機能を備え、切り替
え時に、前記プログラムに含まれる命令が実行途中であ
った場合、命令の途中状態を保留してプログラムが切り
替えられ、当該命令が含まれるプログラムの次の実行サ
イクル時に、前記途中状態より実行を開始し、前記命令
の必要サイクル数によらず、一定サイクル分割比で切り
替える。また、特定のプログラムの分岐命令を禁止し所
定のアドレスまで固定ループ実行として、他のプログラ
ムの暴走監視及びタイマ機能の少くとも一方のルーチン
を組込む。
Description
【0001】
【産業上の利用分野】本発明は、複数のタスクのプログ
ラムを時分割並行処理する機能を備えたマイクロコンピ
ュータに関するものである。
ラムを時分割並行処理する機能を備えたマイクロコンピ
ュータに関するものである。
【0002】
【従来の技術】近年のマイクロコンピュータにおいて
は、複数のタスクを並行処理するために、例えば、特開
昭58−155406号公報、特開昭59−19165
4号公報等に記載されているように、複数のタスクの処
理をレジスタカウンタやマルチプレクサにより順次切り
替えることで、複数のタスクを時分割並行処理するよう
にしたものがある。
は、複数のタスクを並行処理するために、例えば、特開
昭58−155406号公報、特開昭59−19165
4号公報等に記載されているように、複数のタスクの処
理をレジスタカウンタやマルチプレクサにより順次切り
替えることで、複数のタスクを時分割並行処理するよう
にしたものがある。
【0003】
【発明が解決しようとする課題】上記従来構成では、タ
スクの実行時に経過時間を知らせて定時間処理を行わせ
るために、専用のハードタイマを備える必要がある。し
かも、各タスクのプログラムの暴走を監視するために、
ウォッチドッグタイマ等の暴走監視ロジックを外部に構
成する必要があり、上述した事情と相俟って、マイクロ
コンピュータの周辺回路が複雑化して、製品が大型化・
高価格化するという欠点がある。
スクの実行時に経過時間を知らせて定時間処理を行わせ
るために、専用のハードタイマを備える必要がある。し
かも、各タスクのプログラムの暴走を監視するために、
ウォッチドッグタイマ等の暴走監視ロジックを外部に構
成する必要があり、上述した事情と相俟って、マイクロ
コンピュータの周辺回路が複雑化して、製品が大型化・
高価格化するという欠点がある。
【0004】本発明はこのような事情を考慮してなされ
たもので、その目的は、タイマ又は暴走監視の機能を備
えながら、周辺回路の簡素化・低価格化・設計変更の容
易化を実現できるマイクロコンピュータを提供すること
にある。
たもので、その目的は、タイマ又は暴走監視の機能を備
えながら、周辺回路の簡素化・低価格化・設計変更の容
易化を実現できるマイクロコンピュータを提供すること
にある。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明のマイクロコンピュータは、複数のプログラ
ムを数サイクルごとに一定時分割で切り替えながら並行
処理する機能を備え、切り替え時に、前記プログラムに
含まれる命令が実行途中であった場合、命令の途中状態
を保留してプログラムが切り替えられ、当該命令が含ま
れるプログラムの次の実行サイクル時に、前記途中状態
より実行を開始し、前記命令の必要サイクル数によら
ず、一定サイクル分割比で切り替え可能な構成としたも
のである。この場合、前記複数のプログラムのうちの特
定のプログラムについて、分岐命令を禁止し、スタート
アドレスから所定のアドレスまで固定ループ実行する構
成とすると共に、前記特定のプログラムに、他のプログ
ラムの暴走監視とタイマ機能の少なくとも一方のルーチ
ンを組み込んだ構成としても良い。
に、本発明のマイクロコンピュータは、複数のプログラ
ムを数サイクルごとに一定時分割で切り替えながら並行
処理する機能を備え、切り替え時に、前記プログラムに
含まれる命令が実行途中であった場合、命令の途中状態
を保留してプログラムが切り替えられ、当該命令が含ま
れるプログラムの次の実行サイクル時に、前記途中状態
より実行を開始し、前記命令の必要サイクル数によら
ず、一定サイクル分割比で切り替え可能な構成としたも
のである。この場合、前記複数のプログラムのうちの特
定のプログラムについて、分岐命令を禁止し、スタート
アドレスから所定のアドレスまで固定ループ実行する構
成とすると共に、前記特定のプログラムに、他のプログ
ラムの暴走監視とタイマ機能の少なくとも一方のルーチ
ンを組み込んだ構成としても良い。
【0006】
【作用】上記構成によれば、複数のプログラムは、時間
的独立性が確保される。また、特定のタスク(以下「L
タスク」という)のプログラムは、プログラム暴走に至
る危険性のある分岐命令の無い固定ループ化されたプロ
グラムで構成されているので、このLタスクはプログラ
ム暴走・デッドロックに至るおそれはなく、決められた
プログラムを繰り返し実行するようになる。そして、こ
のLタスクに他のタスク(以下「Aタスク」という)の
プログラムの暴走監視とタイマ機能の少なくとも一方の
機能を持たせているので、LタスクによってAタスクの
プログラム暴走を監視し又はタイマ演算を行わせること
ができ、周辺回路における暴走監視ロジック又はハード
タイマや割込みロジックを省略することができる。ま
た、設計変更の容易性も同時に実現できる。
的独立性が確保される。また、特定のタスク(以下「L
タスク」という)のプログラムは、プログラム暴走に至
る危険性のある分岐命令の無い固定ループ化されたプロ
グラムで構成されているので、このLタスクはプログラ
ム暴走・デッドロックに至るおそれはなく、決められた
プログラムを繰り返し実行するようになる。そして、こ
のLタスクに他のタスク(以下「Aタスク」という)の
プログラムの暴走監視とタイマ機能の少なくとも一方の
機能を持たせているので、LタスクによってAタスクの
プログラム暴走を監視し又はタイマ演算を行わせること
ができ、周辺回路における暴走監視ロジック又はハード
タイマや割込みロジックを省略することができる。ま
た、設計変更の容易性も同時に実現できる。
【0007】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。本実施例のマイクロコンピュータは、例えばワ
ンチップマイクロコンピュータにより構成され、CPU
11と、ROMにより構成されたプログラムメモリ12
と、RAMにより構成されたデータメモリ13と、I/
Oブロック14(入出力ピン)と、後述するCPU切替
信号(クロック信号)を発生するタイミングジェネレー
タ(図示せず)と、データを送受信するデータバス15
と、アドレス信号を送受信するアドレスバス16と、リ
ード信号とライト信号をそれぞれ送受信するコントロー
ルバス17,18とを備えている。
明する。本実施例のマイクロコンピュータは、例えばワ
ンチップマイクロコンピュータにより構成され、CPU
11と、ROMにより構成されたプログラムメモリ12
と、RAMにより構成されたデータメモリ13と、I/
Oブロック14(入出力ピン)と、後述するCPU切替
信号(クロック信号)を発生するタイミングジェネレー
タ(図示せず)と、データを送受信するデータバス15
と、アドレス信号を送受信するアドレスバス16と、リ
ード信号とライト信号をそれぞれ送受信するコントロー
ルバス17,18とを備えている。
【0008】上記CPU11は、例えば、2種類のタス
ク(Lタスク,Aタスク)を時分割で並行にパイプライ
ン処理するために、2つのアドレスレジスタ19,20
と2つの演算レジスタ21,22を備え、これらアドレ
スレジスタ19,20と演算レジスタ21,22をタイ
ミングジェネレータにより発生したCPU切替信号によ
り交互に切り替えることで、見掛上、2つのCPUを交
互に切り替えて動作させるように機能する。この場合、
一方のアドレスレジスタ19と演算レジスタ21がCP
U0用(Lタスク用)のレジスタとなり、他方のアドレ
スレジスタ20と演算レジスタ22がCPU1用(Aタ
スク用)のレジスタとなる。これらアドレスレジスタ1
9,20の切替えに応じてプログラムカウンタ23の値
(次にフェッチする命令のアドレス)が更新され、この
プログラムカウンタ23からCPU0用(Lタスク用)
とCPU1用(Aタスク用)のアドレス信号が交互にプ
ログラムメモリ12に出力される。
ク(Lタスク,Aタスク)を時分割で並行にパイプライ
ン処理するために、2つのアドレスレジスタ19,20
と2つの演算レジスタ21,22を備え、これらアドレ
スレジスタ19,20と演算レジスタ21,22をタイ
ミングジェネレータにより発生したCPU切替信号によ
り交互に切り替えることで、見掛上、2つのCPUを交
互に切り替えて動作させるように機能する。この場合、
一方のアドレスレジスタ19と演算レジスタ21がCP
U0用(Lタスク用)のレジスタとなり、他方のアドレ
スレジスタ20と演算レジスタ22がCPU1用(Aタ
スク用)のレジスタとなる。これらアドレスレジスタ1
9,20の切替えに応じてプログラムカウンタ23の値
(次にフェッチする命令のアドレス)が更新され、この
プログラムカウンタ23からCPU0用(Lタスク用)
とCPU1用(Aタスク用)のアドレス信号が交互にプ
ログラムメモリ12に出力される。
【0009】また、CPU11内には、プログラムメモ
リ12から読み込まれた命令の属するタスクの種類を判
別してそのエラーを検出するエラー検出回路24と、こ
のエラー検出回路24を通過した命令をデコード(解
読)する命令デコーダ・命令シーケンサ25が設けら
れ、この命令デコーダ・命令シーケンサ25によりデコ
ードした命令の内容に応じて、演算器26(ALU)で
演算レジスタ21,22を用いて演算したり、リード信
号又はライト信号をコントロールバス17,18に出力
するようになっている。
リ12から読み込まれた命令の属するタスクの種類を判
別してそのエラーを検出するエラー検出回路24と、こ
のエラー検出回路24を通過した命令をデコード(解
読)する命令デコーダ・命令シーケンサ25が設けら
れ、この命令デコーダ・命令シーケンサ25によりデコ
ードした命令の内容に応じて、演算器26(ALU)で
演算レジスタ21,22を用いて演算したり、リード信
号又はライト信号をコントロールバス17,18に出力
するようになっている。
【0010】一方、プログラムメモリ12内には、CP
U0用(Lタスク用)のプログラム領域27と、CPU
1用(Aタスク用)のプログラム領域28と、テーブル
即値データ領域29とが設けられている。本実施例で
は、CPU0用のプログラム領域27に格納されたLタ
スクのプログラムが、特許請求の範囲に記載した“特定
のプログラム”に該当し、プログラム暴走に至る危険性
のある分岐命令が禁止され且つ固定ループ化されたプロ
グラムで構成されている。これにより、Lタスクのプロ
グラムの実行時には0番地から実行を開始し、1番地,
2番地,3番地,…と順々に命令を実行していき、その
後、所定番地まで行くと、プログラムカウンタ23がオ
ーバーフローして0番地に戻り、以後、上述した番地順
の命令実行を繰り返すようになる。また、このLタスク
は、命令が全て1ワード命令に固定されている。この理
由は、命令のワード数が固定されていない命令体系(例
えば1ワード命令もあれば、2ワード命令もあるという
命令体系)では、2ワード命令を読み間違えて1ワード
命令と解釈した場合に、次のワードは本来の命令ではな
いので、何を実行するか分からないからである。
U0用(Lタスク用)のプログラム領域27と、CPU
1用(Aタスク用)のプログラム領域28と、テーブル
即値データ領域29とが設けられている。本実施例で
は、CPU0用のプログラム領域27に格納されたLタ
スクのプログラムが、特許請求の範囲に記載した“特定
のプログラム”に該当し、プログラム暴走に至る危険性
のある分岐命令が禁止され且つ固定ループ化されたプロ
グラムで構成されている。これにより、Lタスクのプロ
グラムの実行時には0番地から実行を開始し、1番地,
2番地,3番地,…と順々に命令を実行していき、その
後、所定番地まで行くと、プログラムカウンタ23がオ
ーバーフローして0番地に戻り、以後、上述した番地順
の命令実行を繰り返すようになる。また、このLタスク
は、命令が全て1ワード命令に固定されている。この理
由は、命令のワード数が固定されていない命令体系(例
えば1ワード命令もあれば、2ワード命令もあるという
命令体系)では、2ワード命令を読み間違えて1ワード
命令と解釈した場合に、次のワードは本来の命令ではな
いので、何を実行するか分からないからである。
【0011】このLタスクは、シーケンス制御の処理を
行うのに適し、そのプログラム中に、他のタスクである
Aタスクの暴走監視用のルーチンと、システムのフェイ
ルセーフを成立させるためのバックアップシーケンス用
のルーチンが含まれている。更に、このLタスクは、固
定ループ動作によるタイマとしての機能も備え、例えば
インクリメント命令又はデクリメント命令を実行させて
そのカウント値が所定の設定値に達したときに、Aタス
クの処理に割込みを発生させることで、タイマ割込みと
等価な定時間処理が可能となっている。
行うのに適し、そのプログラム中に、他のタスクである
Aタスクの暴走監視用のルーチンと、システムのフェイ
ルセーフを成立させるためのバックアップシーケンス用
のルーチンが含まれている。更に、このLタスクは、固
定ループ動作によるタイマとしての機能も備え、例えば
インクリメント命令又はデクリメント命令を実行させて
そのカウント値が所定の設定値に達したときに、Aタス
クの処理に割込みを発生させることで、タイマ割込みと
等価な定時間処理が可能となっている。
【0012】一方、Aタスクは、Lタスクで禁止されて
いる分岐命令も許容されており、例えば複雑な解析処理
・数値処理に適している。このAタスクについても、L
タスクと同じく、命令が全て1ワード命令に固定されて
いる。このAタスクとLタスクは、1ワード内にオペコ
ードとオペランド(アドレス)の両方が割り付けられて
いる。
いる分岐命令も許容されており、例えば複雑な解析処理
・数値処理に適している。このAタスクについても、L
タスクと同じく、命令が全て1ワード命令に固定されて
いる。このAタスクとLタスクは、1ワード内にオペコ
ードとオペランド(アドレス)の両方が割り付けられて
いる。
【0013】また、図2に示すように、プログラムメモ
リ12内のCPU0・CPU1のプログラム領域27,
28に格納されたLタスク・Aタスクのプログラムの各
命令には、タスクの種類を判別するタスク判別ビット3
0が例えばMSB(最上位ビット)に設けられている。
本実施例では、タスク判別ビット30をパリティビット
とし、Lタスクを奇数パリティ、Aタスクを偶数パリテ
ィとしている。この場合、タスク判別のみではなく、命
令コードチェックも実施できる。
リ12内のCPU0・CPU1のプログラム領域27,
28に格納されたLタスク・Aタスクのプログラムの各
命令には、タスクの種類を判別するタスク判別ビット3
0が例えばMSB(最上位ビット)に設けられている。
本実施例では、タスク判別ビット30をパリティビット
とし、Lタスクを奇数パリティ、Aタスクを偶数パリテ
ィとしている。この場合、タスク判別のみではなく、命
令コードチェックも実施できる。
【0014】これに対応して、CPU11内には、プロ
グラムメモリ12から読み込まれた命令の属するタスク
の種類をパリティチェックにより判別してそのエラーを
検出するエラー検出回路24が設けられている。このエ
ラー検出回路24は、ノイズ等の予期せぬ原因により誤
って他のタスクを実行し始めようとしているか否かを検
出するもので、図3に示すように、タスク判別回路3
1,エラーフラグ回路32,ノーオペレーション(NO
P)コード回路33,ハイアクティブ型・ローアクティ
ブ型の両トランスファゲート34,35から構成されて
いる。
グラムメモリ12から読み込まれた命令の属するタスク
の種類をパリティチェックにより判別してそのエラーを
検出するエラー検出回路24が設けられている。このエ
ラー検出回路24は、ノイズ等の予期せぬ原因により誤
って他のタスクを実行し始めようとしているか否かを検
出するもので、図3に示すように、タスク判別回路3
1,エラーフラグ回路32,ノーオペレーション(NO
P)コード回路33,ハイアクティブ型・ローアクティ
ブ型の両トランスファゲート34,35から構成されて
いる。
【0015】上記タスク判別回路31は、プログラムメ
モリ12から読み込まれた命令の属するタスクの種類を
パリティチェックにより判別し(即ち奇数パリティであ
ればLタスク、偶数パリティであればAタスクと判別
し)、この判別結果をCPU切替信号と比較して、エラ
ーが発生しているか否かを判定し、もし、エラーが発生
していれば、エラーフラグ回路32へエラー信号(ハイ
レベル信号)を出力し、エラーが発生しているタスクの
アドレスレジスタ19,20をリセットする。この際、
エラー信号(ハイレベル信号)を、両トランスファゲー
ト34,35のコントロール端子にも与えて、ハイアク
ティブ型のトランスファーゲート34をオンさせ、NO
Pコード回路33から命令デコーダ・命令シーケンサ2
5へNOPコードの信号を出力する一方、ローアクティ
ブ型のトランスファーゲート35をオフさせて、命令デ
コーダ・命令シーケンサ25への命令の通過を阻止す
る。このため、ノイズ等の予期せぬ原因により誤って他
のタスクのアドレスに分岐してその命令を実行し始めよ
うとした場合には、即座に1命令サイクルでNOPとす
ることができて、メモリデータ,ポートデータ等の破壊
を未然に防止できる。
モリ12から読み込まれた命令の属するタスクの種類を
パリティチェックにより判別し(即ち奇数パリティであ
ればLタスク、偶数パリティであればAタスクと判別
し)、この判別結果をCPU切替信号と比較して、エラ
ーが発生しているか否かを判定し、もし、エラーが発生
していれば、エラーフラグ回路32へエラー信号(ハイ
レベル信号)を出力し、エラーが発生しているタスクの
アドレスレジスタ19,20をリセットする。この際、
エラー信号(ハイレベル信号)を、両トランスファゲー
ト34,35のコントロール端子にも与えて、ハイアク
ティブ型のトランスファーゲート34をオンさせ、NO
Pコード回路33から命令デコーダ・命令シーケンサ2
5へNOPコードの信号を出力する一方、ローアクティ
ブ型のトランスファーゲート35をオフさせて、命令デ
コーダ・命令シーケンサ25への命令の通過を阻止す
る。このため、ノイズ等の予期せぬ原因により誤って他
のタスクのアドレスに分岐してその命令を実行し始めよ
うとした場合には、即座に1命令サイクルでNOPとす
ることができて、メモリデータ,ポートデータ等の破壊
を未然に防止できる。
【0016】一方、エラーが発生していない場合には、
タスク判別回路31の出力をローレベルに維持して、ハ
イアクティブ型のトランスファーゲート34をオフさ
せ、NOPコードの通過を阻止する一方、ローアクティ
ブ型のトランスファーゲート35をオンさせて、命令デ
コーダ・命令シーケンサ25への命令の通過を許容する
ものである。
タスク判別回路31の出力をローレベルに維持して、ハ
イアクティブ型のトランスファーゲート34をオフさ
せ、NOPコードの通過を阻止する一方、ローアクティ
ブ型のトランスファーゲート35をオンさせて、命令デ
コーダ・命令シーケンサ25への命令の通過を許容する
ものである。
【0017】ところで、従来構成のものでは、多ワード
命令構成の場合、オペコード・オペランドの誤認識が、
プログラム暴走やデータメモリ内の重要情報の大量破壊
を招く原因となっていた。また、アドレスエラー等によ
り、プログラムアドレスがテーブル即値データ領域29
のアドレスに分岐し、テーブル即値データをオペコード
として認識して実行を開始し、プログラム暴走やデータ
メモリ内の重要情報の大量破壊を招く可能性もあった。
命令構成の場合、オペコード・オペランドの誤認識が、
プログラム暴走やデータメモリ内の重要情報の大量破壊
を招く原因となっていた。また、アドレスエラー等によ
り、プログラムアドレスがテーブル即値データ領域29
のアドレスに分岐し、テーブル即値データをオペコード
として認識して実行を開始し、プログラム暴走やデータ
メモリ内の重要情報の大量破壊を招く可能性もあった。
【0018】これに対して、本実施例では、全命令を1
ワード固定長の設計とし、1ワード内にオペコードとオ
ペランドの両方を割り付けている。また、アドレス構成
は、プログラムメモリアドレスとデータメモリアドレス
を完全に分離している。この構成により、オペコード・
オペランドの誤認識やデータメモリ内データの命令実行
等によるプログラム暴走を未然に防止できる。
ワード固定長の設計とし、1ワード内にオペコードとオ
ペランドの両方を割り付けている。また、アドレス構成
は、プログラムメモリアドレスとデータメモリアドレス
を完全に分離している。この構成により、オペコード・
オペランドの誤認識やデータメモリ内データの命令実行
等によるプログラム暴走を未然に防止できる。
【0019】また、図2に示すように、本実施例のオペ
コードは、分岐命令等の危険命令と、その他の命令との
割り付けを分けてあり、オペコード内の特定ビットで判
別できる構成となっている。図2の要注意命令判別ビッ
ト37がこれに該当する。この要注意命令判別ビット3
7が“0”の場合、全てデータメモリ13から演算レジ
スタ21,22への演算転送命令(リード系命令)であ
る。テーブル即値データ領域29では、要注意命令判別
ビット37に“0”を埋め込む。
コードは、分岐命令等の危険命令と、その他の命令との
割り付けを分けてあり、オペコード内の特定ビットで判
別できる構成となっている。図2の要注意命令判別ビッ
ト37がこれに該当する。この要注意命令判別ビット3
7が“0”の場合、全てデータメモリ13から演算レジ
スタ21,22への演算転送命令(リード系命令)であ
る。テーブル即値データ領域29では、要注意命令判別
ビット37に“0”を埋め込む。
【0020】万一、アドレスエラー等により、プログラ
ムアドレスがテーブル即値データ領域29のアドレスに
分岐し、テーブル即値データをオペコードとして認識し
て実行を開始した場合、要注意命令判別ビット37にセ
ットされた値“0”により、データメモリ13から演算
レジスタ21,22への演算転送命令を継続するのみで
あり、データメモリ13内の重要情報は保守される。し
かも、演算レジスタ21,22への演算転送命令実行終
了後は、テーブル即値データ領域29の最後に記述され
ている初期化処理等のエラー処理ルーチン38が実行さ
れる。これにより、従来のウォッチドッグタイマ等によ
る外部監視法よりも遥かに速い応答性で、エラー検出か
らエラー処理までの処理を行うことができる。
ムアドレスがテーブル即値データ領域29のアドレスに
分岐し、テーブル即値データをオペコードとして認識し
て実行を開始した場合、要注意命令判別ビット37にセ
ットされた値“0”により、データメモリ13から演算
レジスタ21,22への演算転送命令を継続するのみで
あり、データメモリ13内の重要情報は保守される。し
かも、演算レジスタ21,22への演算転送命令実行終
了後は、テーブル即値データ領域29の最後に記述され
ている初期化処理等のエラー処理ルーチン38が実行さ
れる。これにより、従来のウォッチドッグタイマ等によ
る外部監視法よりも遥かに速い応答性で、エラー検出か
らエラー処理までの処理を行うことができる。
【0021】次に、本実施例で採用するパイプライン制
御方式について図4に基づいて説明する。本実施例のパ
イプラインは、例えば、命令フェッチ,命令デコード,
命令実行の各ステージからなる3段のパイプラインとし
て構成され、全命令がこの3段のパイプラインで遅滞な
く処理できるように設計されている。各ステージはそれ
ぞれ1サイクルで実行され、3サイクルで1命令を実行
するようになっているが、3段のパイプラインにより3
つの命令を並行処理することで、見掛上、1命令を1サ
イクルで実行するのと等価となっている。1サイクル
(各ステージ)の時間は、タイミングジェネレータから
出力されるCPU切替信号(クロック信号)により規定
されている。このCPU切替信号は、ローレベルの時間
TLoとハイレベルの時間THiとが同一であり、このCP
U切替信号のローレベル期間でCPU0(Lタスク)の
命令フェッチを行い、ハイレベル期間でCPU1(Aタ
スク)の命令フェッチを行うことにより、CPU0(L
タスク)とCPU1(Aタスク)の両プログラムを1:
1の時分割比で並行にパイプライン処理するようになっ
ている。これにより、両タスクの命令フェッチと命令デ
コードは、逆CPU関係(一方のタスクの命令をフェッ
チしている間に他方のタスクの命令をデコードする関
係)となっている。
御方式について図4に基づいて説明する。本実施例のパ
イプラインは、例えば、命令フェッチ,命令デコード,
命令実行の各ステージからなる3段のパイプラインとし
て構成され、全命令がこの3段のパイプラインで遅滞な
く処理できるように設計されている。各ステージはそれ
ぞれ1サイクルで実行され、3サイクルで1命令を実行
するようになっているが、3段のパイプラインにより3
つの命令を並行処理することで、見掛上、1命令を1サ
イクルで実行するのと等価となっている。1サイクル
(各ステージ)の時間は、タイミングジェネレータから
出力されるCPU切替信号(クロック信号)により規定
されている。このCPU切替信号は、ローレベルの時間
TLoとハイレベルの時間THiとが同一であり、このCP
U切替信号のローレベル期間でCPU0(Lタスク)の
命令フェッチを行い、ハイレベル期間でCPU1(Aタ
スク)の命令フェッチを行うことにより、CPU0(L
タスク)とCPU1(Aタスク)の両プログラムを1:
1の時分割比で並行にパイプライン処理するようになっ
ている。これにより、両タスクの命令フェッチと命令デ
コードは、逆CPU関係(一方のタスクの命令をフェッ
チしている間に他方のタスクの命令をデコードする関
係)となっている。
【0022】また、例えばCPU1(Aタスク)が複数
のサイクルを要する命令をフェッチした場合、CPU切
替信号によるプログラムの切替時に、この命令は実行途
中で切り替えられることになるが、この場合、命令デコ
ーダ・命令シーケンサ25が命令サイクル状態を記憶し
ており、次のCPU1のサイクルに、命令の途中状態よ
り実行開始し、必要サイクル数使って実行完了する。つ
まり、命令の必要サイクル数によらず、1:1の時分割
比で切り替えられる。このため、CPU0(Lタスク)
とCPU1(Aタスク)は、時間的独立性が確保され、
2つのCPUが存在しているように動作する。
のサイクルを要する命令をフェッチした場合、CPU切
替信号によるプログラムの切替時に、この命令は実行途
中で切り替えられることになるが、この場合、命令デコ
ーダ・命令シーケンサ25が命令サイクル状態を記憶し
ており、次のCPU1のサイクルに、命令の途中状態よ
り実行開始し、必要サイクル数使って実行完了する。つ
まり、命令の必要サイクル数によらず、1:1の時分割
比で切り替えられる。このため、CPU0(Lタスク)
とCPU1(Aタスク)は、時間的独立性が確保され、
2つのCPUが存在しているように動作する。
【0023】更に、本実施例では、各タスクのプログラ
ムに含まれる分岐命令をフェッチしたときには、当該分
岐命令が含まれるタスクの次の命令フェッチステージで
分岐先アドレスの命令をフェッチするために、命令デコ
ードステージで、分岐先アドレスをセットするように構
成されている。
ムに含まれる分岐命令をフェッチしたときには、当該分
岐命令が含まれるタスクの次の命令フェッチステージで
分岐先アドレスの命令をフェッチするために、命令デコ
ードステージで、分岐先アドレスをセットするように構
成されている。
【0024】本実施例のパイプライン処理の手順は、図
4に示すように、CPU切替信号によりCPU0(Lタ
スク)の命令フェッチとCPU1(Aタスク)の命令フ
ェッチとを1:1の時分割比で交互に繰り返し、一方の
タスクの命令をフェッチしている間に他方のタスクの命
令(1サイクル前にフェッチされた命令)をデコードす
ると共に、他方のタスクの命令をデコードしている間に
一方のタスクの命令(1サイクル前にデコードされた命
令)を実行する。これにより、2つのタスクのプログラ
ムを1:1の時分割比で並行にパイプライン処理するも
のである。
4に示すように、CPU切替信号によりCPU0(Lタ
スク)の命令フェッチとCPU1(Aタスク)の命令フ
ェッチとを1:1の時分割比で交互に繰り返し、一方の
タスクの命令をフェッチしている間に他方のタスクの命
令(1サイクル前にフェッチされた命令)をデコードす
ると共に、他方のタスクの命令をデコードしている間に
一方のタスクの命令(1サイクル前にデコードされた命
令)を実行する。これにより、2つのタスクのプログラ
ムを1:1の時分割比で並行にパイプライン処理するも
のである。
【0025】このパイプライン処理中に、図4に示すよ
うに、例えば、CPU0のX+1番地の命令が分岐命令
(JMP)であるとすると、このX+1番地の分岐命令
をデコードする命令デコードステージで、分岐先アドレ
ス(XX番地)をセットし、当該分岐命令が含まれるタ
スク(CPU0)の次の命令フェッチステージで、分岐
先アドレス(XX番地)の命令をフェッチする。このた
め、分岐命令があっても、パイプラインに無駄サイクル
(遅延サイクル)が生じることは無く、パイプラインの
遅延を防止できる。この場合、分岐先アドレスのセット
(分岐命令実行)を命令デコードステージで行う結果、
分岐命令については命令実行ステージで何も処理を行わ
ないことになる。
うに、例えば、CPU0のX+1番地の命令が分岐命令
(JMP)であるとすると、このX+1番地の分岐命令
をデコードする命令デコードステージで、分岐先アドレ
ス(XX番地)をセットし、当該分岐命令が含まれるタ
スク(CPU0)の次の命令フェッチステージで、分岐
先アドレス(XX番地)の命令をフェッチする。このた
め、分岐命令があっても、パイプラインに無駄サイクル
(遅延サイクル)が生じることは無く、パイプラインの
遅延を防止できる。この場合、分岐先アドレスのセット
(分岐命令実行)を命令デコードステージで行う結果、
分岐命令については命令実行ステージで何も処理を行わ
ないことになる。
【0026】以上説明した本実施例によれば、Lタスク
は、プログラム暴走に至る危険性のある分岐命令が禁止
された固定ループ化されたプログラムで構成されている
ので、このLタスクはプログラム暴走やデッドロックに
至るおそれはなく、決められたプログラムを繰り返し実
行するようになる。そして、このLタスクに他のタスク
であるAタスクの暴走監視とタイマの機能を持たせてい
るので、LタスクによってAタスクのプログラム暴走の
監視とタイマ演算,タイマ割込みを行わせることができ
て、周辺回路における暴走監視ロジック,ハードタイ
マ,割込みロジックを省略することができる。また、こ
れらの機能をプログラムで実現することにより、設計変
更の自由度が確保される。
は、プログラム暴走に至る危険性のある分岐命令が禁止
された固定ループ化されたプログラムで構成されている
ので、このLタスクはプログラム暴走やデッドロックに
至るおそれはなく、決められたプログラムを繰り返し実
行するようになる。そして、このLタスクに他のタスク
であるAタスクの暴走監視とタイマの機能を持たせてい
るので、LタスクによってAタスクのプログラム暴走の
監視とタイマ演算,タイマ割込みを行わせることができ
て、周辺回路における暴走監視ロジック,ハードタイ
マ,割込みロジックを省略することができる。また、こ
れらの機能をプログラムで実現することにより、設計変
更の自由度が確保される。
【0027】また、LタスクによってAタスクの処理に
何等かの異常を検出してそれをリセットする場合でも、
Lタスクは、分岐命令の無い固定ループ化されたプログ
ラムを繰り返し実行するので、このLタスクによってシ
ステムのフェイルセーフを成立させるためのバックアッ
プシーケンスを実行させることができる。これにより、
バックアップロジックを外部に構成する必要がなくな
り、上述した事情と相俟って、周辺回路を簡素化でき
て、小型化・低価格化を実現できる。
何等かの異常を検出してそれをリセットする場合でも、
Lタスクは、分岐命令の無い固定ループ化されたプログ
ラムを繰り返し実行するので、このLタスクによってシ
ステムのフェイルセーフを成立させるためのバックアッ
プシーケンスを実行させることができる。これにより、
バックアップロジックを外部に構成する必要がなくな
り、上述した事情と相俟って、周辺回路を簡素化でき
て、小型化・低価格化を実現できる。
【0028】尚、本実施例では、LタスクにAタスクの
暴走監視とタイマの双方の機能を持たせているが、最低
限、いずれか一方の機能を備えていれば良い(この場合
でも周辺回路の簡素化を期待できる)。また、本実施例
では、2つのタスクを時分割並行処理するようにした
が、3つ以上のタスクを時分割並行処理するようにして
も良い(この場合、複数のタスクを分岐命令の無い固定
ループ化されたプログラムで構成しても良い)。
暴走監視とタイマの双方の機能を持たせているが、最低
限、いずれか一方の機能を備えていれば良い(この場合
でも周辺回路の簡素化を期待できる)。また、本実施例
では、2つのタスクを時分割並行処理するようにした
が、3つ以上のタスクを時分割並行処理するようにして
も良い(この場合、複数のタスクを分岐命令の無い固定
ループ化されたプログラムで構成しても良い)。
【0029】
【発明の効果】以上の説明から明らかなように、本発明
によれば、複数のプログラムは、一定サイクル分割比で
切り替えられ、時間的独立性が確保される。また、複数
のプログラムのうちの特定のプログラムを、分岐命令が
禁止された固定ループ化されたプログラムで構成すると
共に、前記特定のプログラムに、他のプログラムの暴走
監視とタイマ機能の少なくとも一方のルーチンを組み込
んだ構成としたので、暴走監視ロジック,ハードタイ
マ,割込みロジックの少なくとも一部のハードウエアが
不要となり、周辺回路を簡素化できて、小型化・低価格
化・設計変更の容易化を実現できるという優れた効果を
奏する。
によれば、複数のプログラムは、一定サイクル分割比で
切り替えられ、時間的独立性が確保される。また、複数
のプログラムのうちの特定のプログラムを、分岐命令が
禁止された固定ループ化されたプログラムで構成すると
共に、前記特定のプログラムに、他のプログラムの暴走
監視とタイマ機能の少なくとも一方のルーチンを組み込
んだ構成としたので、暴走監視ロジック,ハードタイ
マ,割込みロジックの少なくとも一部のハードウエアが
不要となり、周辺回路を簡素化できて、小型化・低価格
化・設計変更の容易化を実現できるという優れた効果を
奏する。
【図1】本発明の一実施例を示すマイクロコンピュータ
のブロック図
のブロック図
【図2】プログラムメモリ内におけるプログラムとテー
ブル即値データの格納状態を概念的に示す図
ブル即値データの格納状態を概念的に示す図
【図3】エラー検出回路の具体的構成を示すブロック図
【図4】パイプライン処理を説明するタイムチャート
11…CPU、12…プログラムメモリ、13…データ
メモリ、19,20…アドレスレジスタ、21,22…
演算レジスタ、23…プログラムカウンタ、24…エラ
ー検出回路、25…命令デコーダ・命令シーケンサ、2
6…演算器、27…CPU0(Lタスク)プログラム領
域、28…CPU1(Aタスク)プログラム領域、29
…テーブル即値データ領域、30…タスク判定ビット、
36,37…要注意命令判定ビット。
メモリ、19,20…アドレスレジスタ、21,22…
演算レジスタ、23…プログラムカウンタ、24…エラ
ー検出回路、25…命令デコーダ・命令シーケンサ、2
6…演算器、27…CPU0(Lタスク)プログラム領
域、28…CPU1(Aタスク)プログラム領域、29
…テーブル即値データ領域、30…タスク判定ビット、
36,37…要注意命令判定ビット。
Claims (2)
- 【請求項1】 複数のプログラムを数サイクルごとに一
定時分割で切り替えながら並行処理する機能を備え、切
り替え時に、前記プログラムに含まれる命令が実行途中
であった場合、命令の途中状態を保留してプログラムが
切り替えられ、当該命令が含まれるプログラムの次の実
行サイクル時に、前記途中状態より実行を開始し、前記
命令の必要サイクル数によらず、一定サイクル分割比で
切り替え可能な構成としたことを特徴とするマイクロコ
ンピュータ。 - 【請求項2】 複数のプログラムを数サイクルごとに一
定時分割で切り替えながら並行処理する機能を備えたマ
イクロコンピュータにおいて、前記複数のプログラムの
うちの特定のプログラムについて、分岐命令を禁止し、
スタートアドレスから所定のアドレスまで固定ループ実
行する構成とすると共に、前記特定のプログラムに、他
のプログラムの暴走監視とタイマ機能の少なくとも一方
のルーチンを組み込んだことを特徴とするマイクロコン
ピュータ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5038270A JPH06250857A (ja) | 1993-02-26 | 1993-02-26 | マイクロコンピュータ |
DE69418916T DE69418916T2 (de) | 1993-02-26 | 1994-02-25 | Multitaskingverarbeitungseinheit |
US08/202,181 US6304957B1 (en) | 1993-02-26 | 1994-02-25 | Multitask processing unit |
EP94102917A EP0613085B1 (en) | 1993-02-26 | 1994-02-25 | Multitask processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5038270A JPH06250857A (ja) | 1993-02-26 | 1993-02-26 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06250857A true JPH06250857A (ja) | 1994-09-09 |
Family
ID=12520630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5038270A Pending JPH06250857A (ja) | 1993-02-26 | 1993-02-26 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06250857A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006195910A (ja) * | 2005-01-17 | 2006-07-27 | Denso Corp | マイクロコンピュータ |
JP2006202265A (ja) * | 2004-12-21 | 2006-08-03 | Denso Corp | マイクロコンピュータ |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54138354A (en) * | 1978-04-20 | 1979-10-26 | Oki Electric Ind Co Ltd | Microprocessor unit |
JPS5617441A (en) * | 1979-07-23 | 1981-02-19 | Fujitsu Ltd | Program interruption system |
-
1993
- 1993-02-26 JP JP5038270A patent/JPH06250857A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54138354A (en) * | 1978-04-20 | 1979-10-26 | Oki Electric Ind Co Ltd | Microprocessor unit |
JPS5617441A (en) * | 1979-07-23 | 1981-02-19 | Fujitsu Ltd | Program interruption system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006202265A (ja) * | 2004-12-21 | 2006-08-03 | Denso Corp | マイクロコンピュータ |
JP4702004B2 (ja) * | 2004-12-21 | 2011-06-15 | 株式会社デンソー | マイクロコンピュータ |
JP2006195910A (ja) * | 2005-01-17 | 2006-07-27 | Denso Corp | マイクロコンピュータ |
JP4507888B2 (ja) * | 2005-01-17 | 2010-07-21 | 株式会社デンソー | マイクロコンピュータ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100588790B1 (ko) | 데이터처리기에서의후속명령처리에작용하는방법및장치 | |
EP1001335B1 (en) | Data processing unit with coprocessor interface | |
US6243804B1 (en) | Single cycle transition pipeline processing using shadow registers | |
US20020144235A1 (en) | Debugging embedded systems | |
EP0702297A1 (en) | A data processor with breakpoint circuit and method therefor | |
JPH0689201A (ja) | アイドルモードをアクセスするラン/ストップピンを有するマイクロプロセッサ及びそれを動作させる方法 | |
JPS6218936B2 (ja) | ||
EP0613085B1 (en) | Multitask processing unit | |
JP4893427B2 (ja) | マイクロコンピュータシステム | |
US5274791A (en) | Microprocessor with OEM mode for power management with input/output intiated selection of special address space | |
US6968410B2 (en) | Multi-threaded processing of system management interrupts | |
US4947478A (en) | Switching control system for multipersonality computer system | |
US7991982B2 (en) | Microcomputer and encoding system for executing peripheral function instructions | |
US5161229A (en) | Central processing unit | |
US5226127A (en) | Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions | |
JPH06250857A (ja) | マイクロコンピュータ | |
US4862352A (en) | Data processor having pulse width encoded status output signal | |
JP3129873B2 (ja) | マイクロコンピュータ | |
JP2950080B2 (ja) | マイクロコンピュータ | |
JPH06250856A (ja) | マイクロコンピュータ | |
JP2536726B2 (ja) | マイクロプロセッサ | |
JPS62197831A (ja) | デ−タ処理装置 | |
JP4702004B2 (ja) | マイクロコンピュータ | |
KR100318315B1 (ko) | 원칩마이크로컴퓨터 | |
SU1124316A1 (ru) | Микро-ЭВМ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980203 |