JPH0916409A - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JPH0916409A JPH0916409A JP7166443A JP16644395A JPH0916409A JP H0916409 A JPH0916409 A JP H0916409A JP 7166443 A JP7166443 A JP 7166443A JP 16644395 A JP16644395 A JP 16644395A JP H0916409 A JPH0916409 A JP H0916409A
- Authority
- JP
- Japan
- Prior art keywords
- task
- memory
- register
- data
- switching
- 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
Abstract
(57)【要約】
【目的】 コストを増大させることなく高速にタスクを
切り換えるマイクロコンピュータを提供することを目的
とする。 【構成】 CPU4は、タスクスケジュールテーブル2
の実行順序に従ってタスクを切り換え、レジスタファイ
ル3の一方のレジスタセットを使用してタスクを実行す
る。また、タスク切り換え毎に、CPU4のタスク実行
に使用されるレジスタセットが交互に切り換えられる。
タスク切り換え毎に、転送部5は、CPU4の空バスサ
イクルを利用して、それぞれレジスタセット退避、復帰
を行う。これにより、レジスタセットを1つ分と、転送
手段をハードウェアとして追加するだけで、高速なタス
ク切り換えを実現することができる。
切り換えるマイクロコンピュータを提供することを目的
とする。 【構成】 CPU4は、タスクスケジュールテーブル2
の実行順序に従ってタスクを切り換え、レジスタファイ
ル3の一方のレジスタセットを使用してタスクを実行す
る。また、タスク切り換え毎に、CPU4のタスク実行
に使用されるレジスタセットが交互に切り換えられる。
タスク切り換え毎に、転送部5は、CPU4の空バスサ
イクルを利用して、それぞれレジスタセット退避、復帰
を行う。これにより、レジスタセットを1つ分と、転送
手段をハードウェアとして追加するだけで、高速なタス
ク切り換えを実現することができる。
Description
【0001】
【産業上の利用分野】本発明は、複数のタスクを切り換
えながら実行するマイクロコンピュータに関する。
えながら実行するマイクロコンピュータに関する。
【0002】
【従来の技術】近年、マイクロコンピュータは、あらゆ
る機器に利用されており、処理能力の向上に伴ってより
広い分野でより複雑な制御に応用されている。組み込み
用途のマイクロコンピュータにおいても、より複雑な制
御に対応できるように、マルチタスク管理などより高度
な機能が望まれている。
る機器に利用されており、処理能力の向上に伴ってより
広い分野でより複雑な制御に応用されている。組み込み
用途のマイクロコンピュータにおいても、より複雑な制
御に対応できるように、マルチタスク管理などより高度
な機能が望まれている。
【0003】図6は、第1の従来技術におけるマルチタ
スク機能を有するコンピュータの説明図である。同図に
おいてCPU10は、演算部11とレジスタセット12
とからなる。演算部11は、タスクを1つずつ実行す
る。レジスタセット12は、タスク実行に要するデータ
を保持する。
スク機能を有するコンピュータの説明図である。同図に
おいてCPU10は、演算部11とレジスタセット12
とからなる。演算部11は、タスクを1つずつ実行す
る。レジスタセット12は、タスク実行に要するデータ
を保持する。
【0004】メモリ13は、各タスク毎にコンテキスト
(レジスタセットのデータ、PCの内容、PSWの内容
等)を退避する領域であるコンテキストブロック14を
有する。同図では、コンテキストブロック14中にタス
ク1〜3用のコンテキスト退避領域が示されている。こ
の第1の従来例におけるタスクの管理はソフトウェア
(OS)によって行われる。例えばタスク1からタスク
2に切り換える場合、OSは、タスク切り換えを指示す
るイベント(タイマ割込み等)を受け付けると、まずC
PU10からメモリ13にタスク1のコンテキストを退
避し、次にメモリ13からCPU10にタスク2のコン
テキストを復帰し、さらにタスク2の実行を開始する。
(レジスタセットのデータ、PCの内容、PSWの内容
等)を退避する領域であるコンテキストブロック14を
有する。同図では、コンテキストブロック14中にタス
ク1〜3用のコンテキスト退避領域が示されている。こ
の第1の従来例におけるタスクの管理はソフトウェア
(OS)によって行われる。例えばタスク1からタスク
2に切り換える場合、OSは、タスク切り換えを指示す
るイベント(タイマ割込み等)を受け付けると、まずC
PU10からメモリ13にタスク1のコンテキストを退
避し、次にメモリ13からCPU10にタスク2のコン
テキストを復帰し、さらにタスク2の実行を開始する。
【0005】上記のように第1の従来例では、ソフトウ
ェア(OS)によりマルチタスクを実現しているので、
ハードウェア規模が小さくて済むという利点がある。図
7は、第2の従来技術おけるマルチタスク機能を有する
コンピュータの説明図である。同図においてCPU20
は、演算部21、レジスタファイル22、レジスタセッ
ト切り換え部23、制御部24とからなる。
ェア(OS)によりマルチタスクを実現しているので、
ハードウェア規模が小さくて済むという利点がある。図
7は、第2の従来技術おけるマルチタスク機能を有する
コンピュータの説明図である。同図においてCPU20
は、演算部21、レジスタファイル22、レジスタセッ
ト切り換え部23、制御部24とからなる。
【0006】演算部21は、タスクを1つずつ実行す
る。レジスタファイル22は、タスク実行に要するデー
タを保持する複数のレジスタセットからなる。レジスタ
セット切り換え部23は、現在実行中のタスクに対応す
るレジスタセットを有効にする。この有効なレジスタセ
ットのみが演算部21に使用される。
る。レジスタファイル22は、タスク実行に要するデー
タを保持する複数のレジスタセットからなる。レジスタ
セット切り換え部23は、現在実行中のタスクに対応す
るレジスタセットを有効にする。この有効なレジスタセ
ットのみが演算部21に使用される。
【0007】制御部24は、タスクの切り換えを制御す
る。メモリ25は、レジスタセットのデータを除くコン
テキストの退避領域を有する。この第2の従来例におけ
るタスクの管理はハードウェアによって行われる。例え
ばタスク1からタスク2に切り換える場合、制御部24
は、タスク切り換えを指示するイベント(タイマ割込み
等)を受け付けると、レジスタセット切り換え部23に
タスク2に対応するレジスタセットを有効にするように
指示する共に、演算部21のPCの内容、PSWの内容
等をメモリ25に退避し、タスク2のPCの内容、PS
Wの内容等を演算部21に復帰する。その結果、演算部
21は、有効なレジスタセット2を用いてタスク2を実
行する。
る。メモリ25は、レジスタセットのデータを除くコン
テキストの退避領域を有する。この第2の従来例におけ
るタスクの管理はハードウェアによって行われる。例え
ばタスク1からタスク2に切り換える場合、制御部24
は、タスク切り換えを指示するイベント(タイマ割込み
等)を受け付けると、レジスタセット切り換え部23に
タスク2に対応するレジスタセットを有効にするように
指示する共に、演算部21のPCの内容、PSWの内容
等をメモリ25に退避し、タスク2のPCの内容、PS
Wの内容等を演算部21に復帰する。その結果、演算部
21は、有効なレジスタセット2を用いてタスク2を実
行する。
【0008】上記のように第2の従来例では、ハードウ
ェアによりマルチタスクを実現しているので、タスクの
切り換えが高速に行えるという利点がある。
ェアによりマルチタスクを実現しているので、タスクの
切り換えが高速に行えるという利点がある。
【0009】
【発明が解決しようとする課題】しかしながら、上記従
来技術によれば、組み込み用途のマイクロコンピュータ
におけるマルチタスク管理には適していないという問題
があった。詳しくいうと、第1の従来例によれば、タス
ク切り換えに際してコンテキストの退避および復帰をソ
フトウェア(OS)により実現するので切り換え速度が
遅く、リアルタイム性を要求される制御を行う組み込み
用途のマイクロコンピュータには適していない。また、
第2の従来例によれば、タスク数を同数のレジスタセッ
トを必要とし、タスク切り換え行う制御部をハードウェ
アにて実現するので、ハードウェア規模が大きくなる。
その結果コストが高くなり組み込み用途のマイクロコン
ピュータには適していない。
来技術によれば、組み込み用途のマイクロコンピュータ
におけるマルチタスク管理には適していないという問題
があった。詳しくいうと、第1の従来例によれば、タス
ク切り換えに際してコンテキストの退避および復帰をソ
フトウェア(OS)により実現するので切り換え速度が
遅く、リアルタイム性を要求される制御を行う組み込み
用途のマイクロコンピュータには適していない。また、
第2の従来例によれば、タスク数を同数のレジスタセッ
トを必要とし、タスク切り換え行う制御部をハードウェ
アにて実現するので、ハードウェア規模が大きくなる。
その結果コストが高くなり組み込み用途のマイクロコン
ピュータには適していない。
【0010】本発明は上記の問題点に鑑み、コストを増
大させることなく高速にタスクを切り換えるマイクロコ
ンピュータを提供することを目的とする。
大させることなく高速にタスクを切り換えるマイクロコ
ンピュータを提供することを目的とする。
【0011】
【課題を解決するための手段】上記課題を解決するた
め、請求項1の発明は、複数のタスクを順に切り換えな
がら実行するマイクロコンピュータであって、同一のレ
ジスタ構成をもち、タスク実行に一方が使用される2つ
のレジスタセットと、タスク切り換えと同時に、タスク
実行に使用されるレジスタセットを他方に切り換える切
り換え手段と、レジスタセットに接続された内部バス、
およびメモリに接続されたメモリバスそれぞれの空サイ
クルを検出する検出手段と、タスク切り換え毎に、検出
されたバスの空サイクルを利用して、タスク実行に使用
されていないレジスタセットのデータをメモリに退避
し、次の切り換え後に実行すべきタスク用のデータをメ
モリから当該レジスタセットに復帰する転送手段とを備
える。
め、請求項1の発明は、複数のタスクを順に切り換えな
がら実行するマイクロコンピュータであって、同一のレ
ジスタ構成をもち、タスク実行に一方が使用される2つ
のレジスタセットと、タスク切り換えと同時に、タスク
実行に使用されるレジスタセットを他方に切り換える切
り換え手段と、レジスタセットに接続された内部バス、
およびメモリに接続されたメモリバスそれぞれの空サイ
クルを検出する検出手段と、タスク切り換え毎に、検出
されたバスの空サイクルを利用して、タスク実行に使用
されていないレジスタセットのデータをメモリに退避
し、次の切り換え後に実行すべきタスク用のデータをメ
モリから当該レジスタセットに復帰する転送手段とを備
える。
【0012】請求項2の発明は、請求項1において前記
転送手段が、内部バスの空サイクルにおいて、タスク実
行に使用されていないレジスタセットのレジスタデータ
を読み出すレジスタ読み出し手段と、メモリバスの空サ
イクルにおいて、レジスタ読み出し手段により読み出さ
れたデータをメモリに書き込むメモリ書き込み手段と、
メモリ書き込み手段による書き込み完了後、メモリバス
の空サイクルにおいて、次に実行すべきタスク用のデー
タをメモリから読み出すメモリ読み出し手段と、内部バ
スの空サイクルにおいて、メモリ読み出し手段により読
み出されたデータを、タスク実行に使用されていないレ
ジスタセットに書き込むレジスタ書き込み手段とを有し
ている。
転送手段が、内部バスの空サイクルにおいて、タスク実
行に使用されていないレジスタセットのレジスタデータ
を読み出すレジスタ読み出し手段と、メモリバスの空サ
イクルにおいて、レジスタ読み出し手段により読み出さ
れたデータをメモリに書き込むメモリ書き込み手段と、
メモリ書き込み手段による書き込み完了後、メモリバス
の空サイクルにおいて、次に実行すべきタスク用のデー
タをメモリから読み出すメモリ読み出し手段と、内部バ
スの空サイクルにおいて、メモリ読み出し手段により読
み出されたデータを、タスク実行に使用されていないレ
ジスタセットに書き込むレジスタ書き込み手段とを有し
ている。
【0013】請求項3の発明は、複数のタスクを順に切
り換えながら実行するマイクロコンピュータであって、
複数のタスクプログラムを記憶し、各タスクに対応する
データ退避領域を有するメモリと、複数のタスクの実行
順序を記憶するテーブル手段と、同一のレジスタ構成を
もつ2つのレジスタセットと、テーブル手段の実行順序
に従ってタスクを切り換え、レジスタセットの一方を使
用してタスクを実行する中央演算処理手段と、タスク切
り換え毎に、中央演算処理手段のタスク実行に使用され
るレジスタセットを交互に切り換える切り換え手段と、
レジスタセットに接続された内部バス、およびメモリに
接続されたメモリバスそれぞれの空サイクルを検出する
検出手段と、タスク切り換え毎に、検出されたバスの空
サイクルを利用して、タスク実行に使用されていないレ
ジスタセットのデータを、切り換え前のタスクに対応す
るデータ退避領域に退避する退避手段と、退避手段によ
る退避後、検出されたバスの空サイクルを利用して、中
央演算処理手段による実行中タスクの次のタスクに対応
するデータ退避領域のデータを、タスク実行に使用され
ていないレジスタセットに復帰させる復帰手段とを備え
る。
り換えながら実行するマイクロコンピュータであって、
複数のタスクプログラムを記憶し、各タスクに対応する
データ退避領域を有するメモリと、複数のタスクの実行
順序を記憶するテーブル手段と、同一のレジスタ構成を
もつ2つのレジスタセットと、テーブル手段の実行順序
に従ってタスクを切り換え、レジスタセットの一方を使
用してタスクを実行する中央演算処理手段と、タスク切
り換え毎に、中央演算処理手段のタスク実行に使用され
るレジスタセットを交互に切り換える切り換え手段と、
レジスタセットに接続された内部バス、およびメモリに
接続されたメモリバスそれぞれの空サイクルを検出する
検出手段と、タスク切り換え毎に、検出されたバスの空
サイクルを利用して、タスク実行に使用されていないレ
ジスタセットのデータを、切り換え前のタスクに対応す
るデータ退避領域に退避する退避手段と、退避手段によ
る退避後、検出されたバスの空サイクルを利用して、中
央演算処理手段による実行中タスクの次のタスクに対応
するデータ退避領域のデータを、タスク実行に使用され
ていないレジスタセットに復帰させる復帰手段とを備え
る。
【0014】請求項4の発明は、請求項3において、前
記メモリは、各タスク毎のスタック領域内に前記データ
退避領域を有し、前記テーブル手段は、タスクの実行順
序と、各タスクに対応するスタックポインタの内容とを
記憶する。請求項5の発明は、請求項3又は4におい
て、前記退避手段は、内部バスの空サイクルにおいて、
タスク実行に使用されていないレジスタセットのレジス
タデータを順に読み出すレジスタ読み出し手段と、メモ
リバスの空サイクルにおいて、レジスタ読み出し手段に
より読み出されたデータを順に、切り換え前のタスクに
対応するデータ退避領域に書き込むメモリ書き込み手段
とを有し、前記復帰手段は、メモリ書き込み手段による
書き込み完了後、メモリバスの空サイクルにおいて、中
央演算処理手段による実行中タスクの次のタスクに対応
するデータ退避領域のデータを順にメモリから読み出す
メモリ読み出し手段と、内部バスの空サイクルにおい
て、メモリ読み出し手段により読み出されたデータを、
タスク実行に使用されていないレジスタセットに書き込
むレジスタ書き込み手段とを有する。
記メモリは、各タスク毎のスタック領域内に前記データ
退避領域を有し、前記テーブル手段は、タスクの実行順
序と、各タスクに対応するスタックポインタの内容とを
記憶する。請求項5の発明は、請求項3又は4におい
て、前記退避手段は、内部バスの空サイクルにおいて、
タスク実行に使用されていないレジスタセットのレジス
タデータを順に読み出すレジスタ読み出し手段と、メモ
リバスの空サイクルにおいて、レジスタ読み出し手段に
より読み出されたデータを順に、切り換え前のタスクに
対応するデータ退避領域に書き込むメモリ書き込み手段
とを有し、前記復帰手段は、メモリ書き込み手段による
書き込み完了後、メモリバスの空サイクルにおいて、中
央演算処理手段による実行中タスクの次のタスクに対応
するデータ退避領域のデータを順にメモリから読み出す
メモリ読み出し手段と、内部バスの空サイクルにおい
て、メモリ読み出し手段により読み出されたデータを、
タスク実行に使用されていないレジスタセットに書き込
むレジスタ書き込み手段とを有する。
【0015】請求項6の発明は、請求項3、4又5はに
おいて、さらに、中央演算処理手段に動作クロックを供
給するクロック供給手段と、復帰手段による復帰動作中
に、中央演算処理手段によりタスク切り換えが発生した
場合に、当該復帰動作が完了するまでの間クロック供給
手段の動作クロックの供給を停止する停止手段とを備え
る。
おいて、さらに、中央演算処理手段に動作クロックを供
給するクロック供給手段と、復帰手段による復帰動作中
に、中央演算処理手段によりタスク切り換えが発生した
場合に、当該復帰動作が完了するまでの間クロック供給
手段の動作クロックの供給を停止する停止手段とを備え
る。
【0016】
【作用】上記の手段により、請求項1の発明に係るマイ
クロコンピュータでは、切り換え手段は、タスク切り換
えと同時に、タスク実行に使用されるレジスタセットを
切り換える。タスク切り換え毎に、転送手段は、検出さ
れたバスの空サイクルを利用して、タスク実行に使用さ
れていないレジスタセットのデータをメモリに退避し、
次の切り換え後に実行すべきタスク用のデータをメモリ
から当該レジスタセットに復帰する。これにより、レジ
スタセットを1つ分と、転送手段をハードウェアとして
追加するだけで、高速なタスク切り換えを実現すること
ができる。
クロコンピュータでは、切り換え手段は、タスク切り換
えと同時に、タスク実行に使用されるレジスタセットを
切り換える。タスク切り換え毎に、転送手段は、検出さ
れたバスの空サイクルを利用して、タスク実行に使用さ
れていないレジスタセットのデータをメモリに退避し、
次の切り換え後に実行すべきタスク用のデータをメモリ
から当該レジスタセットに復帰する。これにより、レジ
スタセットを1つ分と、転送手段をハードウェアとして
追加するだけで、高速なタスク切り換えを実現すること
ができる。
【0017】請求項2の発明に係るマイクロコンピュー
タでは、請求項1の前記転送手段において、レジスタ読
み出し手段とメモリ書き込み手段とにより退避が行わ
れ、メモリ読み出し手段とレジスタ書き込み手段とによ
り復帰が行われる。その際、レジスタ読み出し手段と、
レジスタ書き込み手段とは内部バスの空サイクルにおい
てレジスタにアクセスし、メモリ読み出し手段とメモリ
書き込み手段とはメモリバスの空サイクルにおいてメモ
リにアクセスする。これにより、タスク実行を全く妨げ
ることなく、退避と復帰を実現できる。
タでは、請求項1の前記転送手段において、レジスタ読
み出し手段とメモリ書き込み手段とにより退避が行わ
れ、メモリ読み出し手段とレジスタ書き込み手段とによ
り復帰が行われる。その際、レジスタ読み出し手段と、
レジスタ書き込み手段とは内部バスの空サイクルにおい
てレジスタにアクセスし、メモリ読み出し手段とメモリ
書き込み手段とはメモリバスの空サイクルにおいてメモ
リにアクセスする。これにより、タスク実行を全く妨げ
ることなく、退避と復帰を実現できる。
【0018】請求項3の発明に係るマイクロコンピュー
タでは、中央演算処理手段は、テーブル手段の実行順序
に従ってタスクを切り換え、レジスタセットの一方を使
用してタスクを実行する。切り換え手段は、タスク切り
換え毎に、中央演算処理手段のタスク実行に使用される
レジスタセットを交互に切り換える。タスク切り換え毎
に、退避手段、復帰手段は、検出されたバスの空サイク
ルを利用して、それぞれ退避、復帰を行う。これによ
り、レジスタセットを1つ分と、転送手段をハードウェ
アとして追加するだけで、高速なタスク切り換えを実現
することができる。
タでは、中央演算処理手段は、テーブル手段の実行順序
に従ってタスクを切り換え、レジスタセットの一方を使
用してタスクを実行する。切り換え手段は、タスク切り
換え毎に、中央演算処理手段のタスク実行に使用される
レジスタセットを交互に切り換える。タスク切り換え毎
に、退避手段、復帰手段は、検出されたバスの空サイク
ルを利用して、それぞれ退避、復帰を行う。これによ
り、レジスタセットを1つ分と、転送手段をハードウェ
アとして追加するだけで、高速なタスク切り換えを実現
することができる。
【0019】請求項4の発明に係るマイクロコンピュー
タでは、請求項3において、前記データ退避領域が、メ
モリ中の各タスク毎のスタック領域内に設けられ、前記
テーブル手段は、タスクの実行順序と、各タスクに対応
するスタックポインタの内容とを記憶する。これによ
り、タスクの実行順序として1つのタスクを複数指定す
るだけで、中央演算処理手段におけるタスクの占有率を
簡単に制御できる。
タでは、請求項3において、前記データ退避領域が、メ
モリ中の各タスク毎のスタック領域内に設けられ、前記
テーブル手段は、タスクの実行順序と、各タスクに対応
するスタックポインタの内容とを記憶する。これによ
り、タスクの実行順序として1つのタスクを複数指定す
るだけで、中央演算処理手段におけるタスクの占有率を
簡単に制御できる。
【0020】請求項5の発明に係るマイクロコンピュー
タでは、請求項3又は4において、レジスタ読み出し手
段とメモリ書き込み手段とにより退避が行われ、メモリ
読み出し手段とレジスタ書き込み手段とにより復帰が行
われる。その際、レジスタ読み出し手段と、レジスタ書
き込み手段とは内部バスの空サイクルにおいてレジスタ
にアクセスし、メモリ読み出し手段とメモリ書き込み手
段とはメモリバスの空サイクルにおいてメモリにアクセ
スする。これにより、タスク実行を全く妨げることな
く、退避と復帰を実現できる。
タでは、請求項3又は4において、レジスタ読み出し手
段とメモリ書き込み手段とにより退避が行われ、メモリ
読み出し手段とレジスタ書き込み手段とにより復帰が行
われる。その際、レジスタ読み出し手段と、レジスタ書
き込み手段とは内部バスの空サイクルにおいてレジスタ
にアクセスし、メモリ読み出し手段とメモリ書き込み手
段とはメモリバスの空サイクルにおいてメモリにアクセ
スする。これにより、タスク実行を全く妨げることな
く、退避と復帰を実現できる。
【0021】請求項6の発明に係るマイクロコンピュー
タでは、停止手段は、復帰手段による復帰動作中に、中
央演算処理手段によりタスク切り換えが発生した場合
に、当該復帰動作が完了するまでの間クロック供給手段
の動作クロックの供給を停止する。これにより、退避・
復帰に要するよりも短い周期でタスク切り換えの要求が
発生しても適切にタスクを切り換えることができるの
で、タスク切り換え周期を幅広く設定することができ
る。
タでは、停止手段は、復帰手段による復帰動作中に、中
央演算処理手段によりタスク切り換えが発生した場合
に、当該復帰動作が完了するまでの間クロック供給手段
の動作クロックの供給を停止する。これにより、退避・
復帰に要するよりも短い周期でタスク切り換えの要求が
発生しても適切にタスクを切り換えることができるの
で、タスク切り換え周期を幅広く設定することができ
る。
【0022】
【実施例】図1は、本発明の実施例におけるマイクロコ
ンピュータの主要な概略構成を示すブロック図である。
このマイクロコンピュータは、メモリ1、タスクスケジ
ュールテーブル2、レジスタファイル3、CPU4、転
送部5を有する。メモリ1は、複数のタスクからなるプ
ログラムやデータを記憶し、また、各タスク用の退避領
域を有する。この退避領域には、レジスタセットの内
容、プログラムカウンタの内容、プロセッサステータス
ワードの内容等を含むコンテキストが退避される。
ンピュータの主要な概略構成を示すブロック図である。
このマイクロコンピュータは、メモリ1、タスクスケジ
ュールテーブル2、レジスタファイル3、CPU4、転
送部5を有する。メモリ1は、複数のタスクからなるプ
ログラムやデータを記憶し、また、各タスク用の退避領
域を有する。この退避領域には、レジスタセットの内
容、プログラムカウンタの内容、プロセッサステータス
ワードの内容等を含むコンテキストが退避される。
【0023】タスクスケジュールテーブル2は、物理的
にはメモリ1内に設けられ、タスクの実行順序を保持す
る。レジスタファイル3は、レジスタセットAとレジス
タセットBとからなる。この2つのレジスタセットA、
Bは、タスクの切り換え毎に交互に切り換えられ、常に
一方がCPU4のタスク実行に使用される。
にはメモリ1内に設けられ、タスクの実行順序を保持す
る。レジスタファイル3は、レジスタセットAとレジス
タセットBとからなる。この2つのレジスタセットA、
Bは、タスクの切り換え毎に交互に切り換えられ、常に
一方がCPU4のタスク実行に使用される。
【0024】CPU4は、複数のタスクを順に切り換え
ながら実行する。CPU4が実行するタスクは、タスク
切り換えを指示するイベントが発生する毎に、タスクス
ケジュールテーブル2の内容に従って切り換えられる。
ここでイベントは、例えば、周期的なタイマー割込み、
タスクスイッチ命令、特定ポート(シリアルポートな
ど)割り込み等である。
ながら実行する。CPU4が実行するタスクは、タスク
切り換えを指示するイベントが発生する毎に、タスクス
ケジュールテーブル2の内容に従って切り換えられる。
ここでイベントは、例えば、周期的なタイマー割込み、
タスクスイッチ命令、特定ポート(シリアルポートな
ど)割り込み等である。
【0025】転送部5は、タスクが切り換えられる毎
に、CPU4によるタスク実行と独立して、CPU4に
より使用されていないレジスタセット内のデータをメモ
リに退避し、次に実行すべきタスク用のデータをメモリ
から当該レジスタセットに復帰する。図2は、図1に示
したマイクロコンピュータのより詳細な構成を示すブロ
ック図である。
に、CPU4によるタスク実行と独立して、CPU4に
より使用されていないレジスタセット内のデータをメモ
リに退避し、次に実行すべきタスク用のデータをメモリ
から当該レジスタセットに復帰する。図2は、図1に示
したマイクロコンピュータのより詳細な構成を示すブロ
ック図である。
【0026】同図に示すように、本マイクロコンピュー
タは、ROM101、RAM102、インクリメンタ4
01、セレクタ402、命令アドレスバッファ403、
命令フェッチバッファ405、プロセッサステータスワ
ード(以下PSWと略す)406、命令バッファ40
7、命令レジスタ408、ステータスレジスタ409、
PLA410、マイクロ命令レジスタ411、ALU4
12、ALOB413、オペランドアドレスバッファ4
14、ストアバッファ415、ロードバッファ416、
セレクタ417、転送制御部501、PLA502、マ
イクロ命令レジスタ503、TSTB504、TSTP
505、オペランドアドレスバッファ506、ストアバ
ッファ507、ロードバッファ508、加算器509、
定数発生器510とから構成され、ROM101および
RAM102は、図1に示したメモリ1に相当し、複数
のタスクを含むプログラム、タスクスケジュールテーブ
ル2、タスク用退避領域を有する。このプログラムはR
OM101に記憶され、タスクスケジュールテーブル2
は、ROM101またはRAM102に設けられ、タス
ク用退避領域はRAM102に設けられる。
タは、ROM101、RAM102、インクリメンタ4
01、セレクタ402、命令アドレスバッファ403、
命令フェッチバッファ405、プロセッサステータスワ
ード(以下PSWと略す)406、命令バッファ40
7、命令レジスタ408、ステータスレジスタ409、
PLA410、マイクロ命令レジスタ411、ALU4
12、ALOB413、オペランドアドレスバッファ4
14、ストアバッファ415、ロードバッファ416、
セレクタ417、転送制御部501、PLA502、マ
イクロ命令レジスタ503、TSTB504、TSTP
505、オペランドアドレスバッファ506、ストアバ
ッファ507、ロードバッファ508、加算器509、
定数発生器510とから構成され、ROM101および
RAM102は、図1に示したメモリ1に相当し、複数
のタスクを含むプログラム、タスクスケジュールテーブ
ル2、タスク用退避領域を有する。このプログラムはR
OM101に記憶され、タスクスケジュールテーブル2
は、ROM101またはRAM102に設けられ、タス
ク用退避領域はRAM102に設けられる。
【0027】レジスタセット301とレジスタセット3
02とは、同一のレジスタ構成であり、それぞれデータ
レジスタ(D1、D0)と、アドレスレジスタ(A1,
A0)と、スタックポインタ(SP)と、これらからの
データを選択的に出力するセレクタとを有する。インク
リメンタ401、セレクタ402、命令アドレスバッフ
ァ403、命令フェッチバッファ405からなる回路部
分は、ROM101から命令を順時プリフェッチする命
令準備部である。
02とは、同一のレジスタ構成であり、それぞれデータ
レジスタ(D1、D0)と、アドレスレジスタ(A1,
A0)と、スタックポインタ(SP)と、これらからの
データを選択的に出力するセレクタとを有する。インク
リメンタ401、セレクタ402、命令アドレスバッフ
ァ403、命令フェッチバッファ405からなる回路部
分は、ROM101から命令を順時プリフェッチする命
令準備部である。
【0028】ステータスレジスタ406は、CPU4の
動作状態を表す各種フラグを有するレジスタである。命
令バッファ407からなる回路部分は、命令準備部によ
りプリフェッチされた複数の命令を保持する命令キュー
である。命令レジスタ408、ステータスレジスタ40
9、PLA410、マイクロ命令レジスタ411からな
る回路部分は、命令準備部又は命令キューから供給され
る命令を解読し、その実行を制御する命令制御部であ
る。また、この命令制御部は、タスク切り換えを指示す
るイベントが発生する毎に、タスクスケジュールテーブ
ル2の内容に従ってタスクを切り換える制御およびレジ
スタセットを交互に切り換える制御を行う。本実施例で
は上記イベントは、タイマー(図外)による200mS
毎の周期的な割込みとする。また、命令制御部は、内部
バス418に対してデータを入出力する制御を行う。
動作状態を表す各種フラグを有するレジスタである。命
令バッファ407からなる回路部分は、命令準備部によ
りプリフェッチされた複数の命令を保持する命令キュー
である。命令レジスタ408、ステータスレジスタ40
9、PLA410、マイクロ命令レジスタ411からな
る回路部分は、命令準備部又は命令キューから供給され
る命令を解読し、その実行を制御する命令制御部であ
る。また、この命令制御部は、タスク切り換えを指示す
るイベントが発生する毎に、タスクスケジュールテーブ
ル2の内容に従ってタスクを切り換える制御およびレジ
スタセットを交互に切り換える制御を行う。本実施例で
は上記イベントは、タイマー(図外)による200mS
毎の周期的な割込みとする。また、命令制御部は、内部
バス418に対してデータを入出力する制御を行う。
【0029】ALU412、ALOB413、オペラン
ドアドレスバッファ414、ストアバッファ415、ロ
ードバッファ416、セレクタ417からなる回路部分
は、命令制御部の制御に従って命令を実行する命令実行
部である。内部バス418は、2本のバスからなり、主
としてレジスタファイル3に対して読み書きされるデー
タを伝達する。
ドアドレスバッファ414、ストアバッファ415、ロ
ードバッファ416、セレクタ417からなる回路部分
は、命令制御部の制御に従って命令を実行する命令実行
部である。内部バス418は、2本のバスからなり、主
としてレジスタファイル3に対して読み書きされるデー
タを伝達する。
【0030】メモリバス419は、アドレスバスとデー
タバスとからなり、主としてROM101、RAM10
2、周辺回路に対してアドレス、データを伝達する。バ
スコントローラ420は、メモリバス419を使用する
アクセスが競合する場合、例えば、命令準備部によるプ
リフェッチと、命令実行部によるオペランドデータのロ
ード/ストアとが競合する場合に、バス使用を調停す
る。バスコントローラ420は、この調停によりメモリ
バス419に対してデータを入出力するための各種制御
信号を出力する。
タバスとからなり、主としてROM101、RAM10
2、周辺回路に対してアドレス、データを伝達する。バ
スコントローラ420は、メモリバス419を使用する
アクセスが競合する場合、例えば、命令準備部によるプ
リフェッチと、命令実行部によるオペランドデータのロ
ード/ストアとが競合する場合に、バス使用を調停す
る。バスコントローラ420は、この調停によりメモリ
バス419に対してデータを入出力するための各種制御
信号を出力する。
【0031】クロック供給部421は、CPU4及び転
送部5に対して動作クロックを供する。転送制御部50
1は、PLA502、マイクロ命令レジスタ503から
なり、命令制御部によりタスクの切り換えが行われた直
後に、CPU4により使用されていない方のレジスタセ
ットの内容を、切り換えの直前に実行されていたのタス
クの退避領域に退避し、さらに、現在実行されているタ
スクの次に実行すべきタスクの退避領域の内容を当該レ
ジスタセットに復帰する制御を行う。
送部5に対して動作クロックを供する。転送制御部50
1は、PLA502、マイクロ命令レジスタ503から
なり、命令制御部によりタスクの切り換えが行われた直
後に、CPU4により使用されていない方のレジスタセ
ットの内容を、切り換えの直前に実行されていたのタス
クの退避領域に退避し、さらに、現在実行されているタ
スクの次に実行すべきタスクの退避領域の内容を当該レ
ジスタセットに復帰する制御を行う。
【0032】PLA502は、前記退避及び復帰を実現
するマイクロ命令を発行する。マイクロ命令レジスタ5
03は、PLA502からのマイクロ命令に対応する制
御信号を出力する。TSTB(Task Schedule Table Ba
se)504は、RAM102内に設けられたタスクスケ
ジュールテーブルの先頭アドレスを保持するレジスタで
ある。
するマイクロ命令を発行する。マイクロ命令レジスタ5
03は、PLA502からのマイクロ命令に対応する制
御信号を出力する。TSTB(Task Schedule Table Ba
se)504は、RAM102内に設けられたタスクスケ
ジュールテーブルの先頭アドレスを保持するレジスタで
ある。
【0033】TSTP(Task Schedule Table Pointe
r)505は、タスクスケジュールテーブルにおいて、
タスク切り換え要求が発生した時点で現在実行中のタス
クの次に実行すべきタスクを指すポインタを保持するレ
ジスタである。オペランドアドレスバッファ(以下、D
OABと略す)506は、上記退避及び復帰に際してメ
モリアドレスを保持し、メモリバス中のアドレスバスを
介してメモリ1に出力する。
r)505は、タスクスケジュールテーブルにおいて、
タスク切り換え要求が発生した時点で現在実行中のタス
クの次に実行すべきタスクを指すポインタを保持するレ
ジスタである。オペランドアドレスバッファ(以下、D
OABと略す)506は、上記退避及び復帰に際してメ
モリアドレスを保持し、メモリバス中のアドレスバスを
介してメモリ1に出力する。
【0034】ストアバッファ(以下、DSTBと略す)
507は、上記退避に際して退避すべきデータを保持
し、メモリバス419中のデータバスを介してメモリ1
に出力する。ロードバッファ(以下、DSTBと略す)
508は、上記復帰に際して、メモリ1から読み出され
た復帰すべきデータを、メモリバス419中のデータバ
スを介して入力して保持する。
507は、上記退避に際して退避すべきデータを保持
し、メモリバス419中のデータバスを介してメモリ1
に出力する。ロードバッファ(以下、DSTBと略す)
508は、上記復帰に際して、メモリ1から読み出され
た復帰すべきデータを、メモリバス419中のデータバ
スを介して入力して保持する。
【0035】加算器509は、DOAB506の内容
と、定数発生器510からの定数加算し、加算結果をD
OAB506に出力する。これにより退避時および復帰
時に、それぞれの退避領域の個々データ格納場所のアド
レスを先頭から順に生成する。図3は、タスクスケジュ
ールテーブル、タスク用退避領域のメモリマップの一例
を示す。
と、定数発生器510からの定数加算し、加算結果をD
OAB506に出力する。これにより退避時および復帰
時に、それぞれの退避領域の個々データ格納場所のアド
レスを先頭から順に生成する。図3は、タスクスケジュ
ールテーブル、タスク用退避領域のメモリマップの一例
を示す。
【0036】同図において、「TSTB」は、タスクス
ケジュールテーブルの先頭アドレスを指すポインタであ
り、TSTB504に保持される。「TSTP」は、タ
スク切り換え要求が発生した時点で現在実行中のタスク
の次に実行すべきタスクを指すポインタあり、TSTP
505に保持される。「タスクスケジュールテーブル」
は、各タスク用のスタックポインタの退避場所を示すア
ドレスを、タスクの実行順に保持し、末尾にはx’FF
(16進数)を保持する。同図の例では、4つのタスク
1〜4が、1→2→3→1→4の順に実行することが指
定されている。この例ではタスク1が2回指定されてい
るので、タスク1〜4のそれぞれのCPU占有率は、4
0%、20%、20%、20%となる。
ケジュールテーブルの先頭アドレスを指すポインタであ
り、TSTB504に保持される。「TSTP」は、タ
スク切り換え要求が発生した時点で現在実行中のタスク
の次に実行すべきタスクを指すポインタあり、TSTP
505に保持される。「タスクスケジュールテーブル」
は、各タスク用のスタックポインタの退避場所を示すア
ドレスを、タスクの実行順に保持し、末尾にはx’FF
(16進数)を保持する。同図の例では、4つのタスク
1〜4が、1→2→3→1→4の順に実行することが指
定されている。この例ではタスク1が2回指定されてい
るので、タスク1〜4のそれぞれのCPU占有率は、4
0%、20%、20%、20%となる。
【0037】「タスク用退避領域」には、「コンテキス
ト退避領域」と、「スタックポインタ退避領域」とから
なる。「コンテキスト退避領域」は、本実施例では各タ
スク用のスタック領域内に設けられている。つまりスタ
ック領域は、通常のスタックとしての使用に加えてコン
テキストの退避領域としても用いられる。同図では、タ
スク1〜4それぞれのコンテキストとして、A1、A
0、D1、D0、PSW、PC(このPCはIAB40
3またはPFC404の内容)の各レジスタの内容が記
憶される。
ト退避領域」と、「スタックポインタ退避領域」とから
なる。「コンテキスト退避領域」は、本実施例では各タ
スク用のスタック領域内に設けられている。つまりスタ
ック領域は、通常のスタックとしての使用に加えてコン
テキストの退避領域としても用いられる。同図では、タ
スク1〜4それぞれのコンテキストとして、A1、A
0、D1、D0、PSW、PC(このPCはIAB40
3またはPFC404の内容)の各レジスタの内容が記
憶される。
【0038】「スタックポインタ退避領域」は、各タス
ク毎にスタックポインタの内容を記憶する。同図ではタ
スク1〜4の各スタックポインタの内容が記憶されてい
る。この領域に退避されているスタックポインタの値
は、現在実行されていない各タスクについて、コンテキ
スト退避領域の先頭位置を指す示す。例えば、退避され
たタスク3用スタックポインタの値は、タスク3からタ
スク1に切り換えられた直後である場合には、タスク3
の実行で用いられていたスタック領域の先頭位置を指し
示すが、タスク3のコンテキストの退避が完了した後
は、コンテキスト退避領域の先頭位置を指し示す。さら
にその後、タスク3のコンテキストの復帰が完了した後
は、タスク3のスタック領域の先頭位置を指し示す。タ
スク3の実行中は意味を持たない。
ク毎にスタックポインタの内容を記憶する。同図ではタ
スク1〜4の各スタックポインタの内容が記憶されてい
る。この領域に退避されているスタックポインタの値
は、現在実行されていない各タスクについて、コンテキ
スト退避領域の先頭位置を指す示す。例えば、退避され
たタスク3用スタックポインタの値は、タスク3からタ
スク1に切り換えられた直後である場合には、タスク3
の実行で用いられていたスタック領域の先頭位置を指し
示すが、タスク3のコンテキストの退避が完了した後
は、コンテキスト退避領域の先頭位置を指し示す。さら
にその後、タスク3のコンテキストの復帰が完了した後
は、タスク3のスタック領域の先頭位置を指し示す。タ
スク3の実行中は意味を持たない。
【0039】同図ではタスク3から1への切り換え直後
に、タスク3のコンテキストが退避され、次のタスク切
り換え要求発生後に実行すべきタスク4のコンテキスト
が復帰される様子を示している。このとき、コンテキス
ト退避領域のアドレスはDOAB506により指定さ
れ、退避データはDSTB507によりメモリ1に出力
され、復帰データはDLDB508によりメモリ1から
入力される。
に、タスク3のコンテキストが退避され、次のタスク切
り換え要求発生後に実行すべきタスク4のコンテキスト
が復帰される様子を示している。このとき、コンテキス
ト退避領域のアドレスはDOAB506により指定さ
れ、退避データはDSTB507によりメモリ1に出力
され、復帰データはDLDB508によりメモリ1から
入力される。
【0040】図4は、転送制御部501の機能的な構成
を示すブロック図である。転送制御部501は、物理的
には図2に示したPLA502とマイクロ命令レジスタ
503から構成されるが、機能的には図4のように表す
ことができる。この転送制御部501は、内部バス空き
検出回路51、メモリバス空き検出回路52、レジスタ
読み出し制御部53、メモリ書き込み制御部54、メモ
リ読み出し制御部55、レジスタ書き込み制御部56か
ら構成される。
を示すブロック図である。転送制御部501は、物理的
には図2に示したPLA502とマイクロ命令レジスタ
503から構成されるが、機能的には図4のように表す
ことができる。この転送制御部501は、内部バス空き
検出回路51、メモリバス空き検出回路52、レジスタ
読み出し制御部53、メモリ書き込み制御部54、メモ
リ読み出し制御部55、レジスタ書き込み制御部56か
ら構成される。
【0041】内部バス空き検出回路51は、内部バス4
18が空きである(CPUによって使用されていない)
サイクルを検出する。より具体的には、内部バス空き検
出回路51は、マイクロ命令レジスタ411の内部バス
制御フィールドがNOP(ノー・オペレーション)を示
す場合に空きであると判定するとともに、空きである場
合にレジスタ読み出し制御部53及びレジスタ書き込み
制御部56にレジスタへのアクセスを許可する。ここ
で、内部バス制御フィールドとは、マイクロ命令レジス
タ411から出力される各種制御信号群のうち、内部バ
スに対するデータ入出力を指示する制御信号からなるフ
ィールドをいう。またNOPとは、当該フィールド内の
全ての制御信号がアクティブでない状態をいう。
18が空きである(CPUによって使用されていない)
サイクルを検出する。より具体的には、内部バス空き検
出回路51は、マイクロ命令レジスタ411の内部バス
制御フィールドがNOP(ノー・オペレーション)を示
す場合に空きであると判定するとともに、空きである場
合にレジスタ読み出し制御部53及びレジスタ書き込み
制御部56にレジスタへのアクセスを許可する。ここ
で、内部バス制御フィールドとは、マイクロ命令レジス
タ411から出力される各種制御信号群のうち、内部バ
スに対するデータ入出力を指示する制御信号からなるフ
ィールドをいう。またNOPとは、当該フィールド内の
全ての制御信号がアクティブでない状態をいう。
【0042】メモリバス空き検出回路52は、メモリバ
ス419が空きである(CPUによって使用されていな
い)サイクルを検出する。より具体的には、メモリバス
空き検出回路52は、バスコントローラ420のメモリ
バス制御フィールドがNOPを示す場合に空きであると
判定するとともに、空きである場合にメモリ書き込み制
御部54及びメモリ読み出し制御部55にメモリへのア
クセスを許可する。ここで、メモリバス制御フィールド
とは、バスコントローラ420から出力される全ての制
御信号フィールドのうち、メモリバスに対するデータ入
出力を指示する制御信号からなるフィールドをいう。
ス419が空きである(CPUによって使用されていな
い)サイクルを検出する。より具体的には、メモリバス
空き検出回路52は、バスコントローラ420のメモリ
バス制御フィールドがNOPを示す場合に空きであると
判定するとともに、空きである場合にメモリ書き込み制
御部54及びメモリ読み出し制御部55にメモリへのア
クセスを許可する。ここで、メモリバス制御フィールド
とは、バスコントローラ420から出力される全ての制
御信号フィールドのうち、メモリバスに対するデータ入
出力を指示する制御信号からなるフィールドをいう。
【0043】レジスタ読み出し制御部53は、内部バス
空き検出回路51によりレジスタへのアクセスが許可さ
れているときに、CPUのタスク実行に使用されていな
いレジスタセットから個々のレジスタデータを順に読み
出してDSTB507に格納する。メモリ書き込み制御
部54は、メモリバス空き検出回路52によりメモリ1
へのアクセスが許可されているときに、DSTB507
に格納されたデータをメモリ1のコンテキスト退避領域
に順に書き込む。その際、メモリ書き込み制御部54
は、まず、現在実行中のタスクの1つ前のタスクのコン
テキスト退避領域の先頭アドレスをDOAB506に設
定し、以降、データを書き込む毎にDOAB506を更
新する。
空き検出回路51によりレジスタへのアクセスが許可さ
れているときに、CPUのタスク実行に使用されていな
いレジスタセットから個々のレジスタデータを順に読み
出してDSTB507に格納する。メモリ書き込み制御
部54は、メモリバス空き検出回路52によりメモリ1
へのアクセスが許可されているときに、DSTB507
に格納されたデータをメモリ1のコンテキスト退避領域
に順に書き込む。その際、メモリ書き込み制御部54
は、まず、現在実行中のタスクの1つ前のタスクのコン
テキスト退避領域の先頭アドレスをDOAB506に設
定し、以降、データを書き込む毎にDOAB506を更
新する。
【0044】メモリ読み出し制御部55は、コンテキス
トの退避完了後、メモリバス空き検出回路52によりメ
モリ1へのアクセスが許可されているときに、メモリ1
のコンテキスト退避領域からデータを順に読み出してD
LDB508に格納する。その際、メモリ読み出し制御
部55は、まず、現在実行中のタスクの次のタスクのコ
ンテキスト退避領域の先頭アドレスをDOAB506に
設定し、以降、データを書き込む毎にDOAB506を
更新する。
トの退避完了後、メモリバス空き検出回路52によりメ
モリ1へのアクセスが許可されているときに、メモリ1
のコンテキスト退避領域からデータを順に読み出してD
LDB508に格納する。その際、メモリ読み出し制御
部55は、まず、現在実行中のタスクの次のタスクのコ
ンテキスト退避領域の先頭アドレスをDOAB506に
設定し、以降、データを書き込む毎にDOAB506を
更新する。
【0045】レジスタ書き込み制御部56は、内部バス
空き検出回路51によりレジスタへのアクセスが許可さ
れているときに、DLDB508のデータを、CPUの
タスク実行に使用されていないレジスタセットの対応す
るレジスタを順に書き込む。図5は、CPU4によるタ
スク切り換え処理、及び、転送部5による詳細なコンテ
キスト退避・復帰処理を表すフローチャートである。
空き検出回路51によりレジスタへのアクセスが許可さ
れているときに、DLDB508のデータを、CPUの
タスク実行に使用されていないレジスタセットの対応す
るレジスタを順に書き込む。図5は、CPU4によるタ
スク切り換え処理、及び、転送部5による詳細なコンテ
キスト退避・復帰処理を表すフローチャートである。
【0046】まず、タスク切り換え処理について説明す
る。CPU4は、タスク切り換え要求が発生すると、I
AB403またはPFC404の内容をタスク復帰時の
戻りPC値として当該タスクのスタック領域に退避する
とともに、PSWの内容も退避し(ステップ501)、
タスク実行で使用していたレジスタセットを他方のレジ
スタセットに切り換え、転送制御部501を起動する
(ステップ502)。このとき、新たなレジスタセット
には次に実行すべきタスクのコンテキストが復帰されて
いるので、CPU4は、次タスクのスタック領域からP
SWと戻りPC値とを復帰させることにより次タスクの
実行を開始する(ステップ503)。
る。CPU4は、タスク切り換え要求が発生すると、I
AB403またはPFC404の内容をタスク復帰時の
戻りPC値として当該タスクのスタック領域に退避する
とともに、PSWの内容も退避し(ステップ501)、
タスク実行で使用していたレジスタセットを他方のレジ
スタセットに切り換え、転送制御部501を起動する
(ステップ502)。このとき、新たなレジスタセット
には次に実行すべきタスクのコンテキストが復帰されて
いるので、CPU4は、次タスクのスタック領域からP
SWと戻りPC値とを復帰させることにより次タスクの
実行を開始する(ステップ503)。
【0047】次に、転送部5によるコンテキスト退避・
復帰処理を説明する。なお、フローチャート中”I”を
記した各ステップは、内部バス空き検出回路51により
内部バスが空いていると検出されたサイクルにおいて実
行されること示し、”M”を記した各ステップは、メモ
リバス空き検出回路52によりメモリバスが空いている
と検出されたサイクルにおいて実行されることを示す。
復帰処理を説明する。なお、フローチャート中”I”を
記した各ステップは、内部バス空き検出回路51により
内部バスが空いていると検出されたサイクルにおいて実
行されること示し、”M”を記した各ステップは、メモ
リバス空き検出回路52によりメモリバスが空いている
と検出されたサイクルにおいて実行されることを示す。
【0048】転送部5の起動後、レジスタ読み出し制御
部53は、ステップ502の切り換えによりCPUに使
用されなくなったレジスタセットのSPの内容を読み出
し、DOAB506に格納する(ステップ504)。こ
のときDOAB506の内容は、スタック領域内に設け
られたコンテキスト退避領域の先頭アドレスを表す。レ
ジスタ読み出し制御部53およびメモリ書き込み制御部
54は、レジスタセットの各レジスタの内容をコンテキ
スト退避領域に退避する(ステップ505〜508)。
さらに、メモリ読み出し制御部55及びメモリ書き込み
制御部54は、この時点のDOAB506の内容をスタ
ックポインタ退避領域に退避する(ステップ509〜5
11)。これにより退避後のコンテキスト退避領域の先
頭アドレスがスタックポインタ退避領域に退避される。
これでコンテキストの退避が完了する。
部53は、ステップ502の切り換えによりCPUに使
用されなくなったレジスタセットのSPの内容を読み出
し、DOAB506に格納する(ステップ504)。こ
のときDOAB506の内容は、スタック領域内に設け
られたコンテキスト退避領域の先頭アドレスを表す。レ
ジスタ読み出し制御部53およびメモリ書き込み制御部
54は、レジスタセットの各レジスタの内容をコンテキ
スト退避領域に退避する(ステップ505〜508)。
さらに、メモリ読み出し制御部55及びメモリ書き込み
制御部54は、この時点のDOAB506の内容をスタ
ックポインタ退避領域に退避する(ステップ509〜5
11)。これにより退避後のコンテキスト退避領域の先
頭アドレスがスタックポインタ退避領域に退避される。
これでコンテキストの退避が完了する。
【0049】次に、メモリ読み出し制御部55は、TS
TP505の内容を現在実行中の次に実行すべきタスク
を指すように更新し(ステップ512)、次タスクのコ
ンテキスト退避領域の先頭アドレスをスタックポインタ
退避領域から読み出し、DOAB506に格納する(ス
テップ513)。このときDOAB506の内容がx’
FF(16進数)であれば、テーブルの末尾を表すので
TSTP505の内容をTSTB504に保持された先
頭アドレスに更新してから再度ステップ513を行う
(ステップ514、515)。
TP505の内容を現在実行中の次に実行すべきタスク
を指すように更新し(ステップ512)、次タスクのコ
ンテキスト退避領域の先頭アドレスをスタックポインタ
退避領域から読み出し、DOAB506に格納する(ス
テップ513)。このときDOAB506の内容がx’
FF(16進数)であれば、テーブルの末尾を表すので
TSTP505の内容をTSTB504に保持された先
頭アドレスに更新してから再度ステップ513を行う
(ステップ514、515)。
【0050】さらに、メモリ読み出し制御部55及びレ
ジスタ書き込み制御部56は、次タスクのコンテキスト
退避領域の各データを、レジスタセットに復帰する(ス
テップ516〜519)。さらに、レジスタ書き込み制
御部56は、この時点のDOAB506の内容をレジス
タセットのSPに書き込む(ステップ520)。これに
より次タスクのスタック領域の先頭アドレスがSPに設
定される。これで次タスクのコンテキストの復帰が完了
する。
ジスタ書き込み制御部56は、次タスクのコンテキスト
退避領域の各データを、レジスタセットに復帰する(ス
テップ516〜519)。さらに、レジスタ書き込み制
御部56は、この時点のDOAB506の内容をレジス
タセットのSPに書き込む(ステップ520)。これに
より次タスクのスタック領域の先頭アドレスがSPに設
定される。これで次タスクのコンテキストの復帰が完了
する。
【0051】以上のように構成された本発明の実施例に
おけるマイクロコンピュータについて、タスク切り換え
動作を説明する。今、タスクスケジュールテーブル2
は、図3に示したように4つのタスク1〜4が、1→2
→3→1→4の順に実行することが指定されていて、タ
スク3が実行中であるものとする。この状態でタイマー
割込みが、タスク切り換えを要求するイベントとして発
生した場合、CPU4は、割込み処理においてタスク3
の戻りPC及びPSWの退避、レジスタセットの切り換
え、タスク1のPSW及び戻りPCの復帰(図5のステ
ップ501〜503)をすることにより、タスク3から
タスク1に切り換える。
おけるマイクロコンピュータについて、タスク切り換え
動作を説明する。今、タスクスケジュールテーブル2
は、図3に示したように4つのタスク1〜4が、1→2
→3→1→4の順に実行することが指定されていて、タ
スク3が実行中であるものとする。この状態でタイマー
割込みが、タスク切り換えを要求するイベントとして発
生した場合、CPU4は、割込み処理においてタスク3
の戻りPC及びPSWの退避、レジスタセットの切り換
え、タスク1のPSW及び戻りPCの復帰(図5のステ
ップ501〜503)をすることにより、タスク3から
タスク1に切り換える。
【0052】転送部5は、レジスタセットの切り換えと
同時に起動され、CPU4のタスク1実行中に内部バス
418、メモリバス419の空きサイクルを利用して、
図3および図5に示したように、タスク3のコンテキス
トの退避処理と、タスク4のコンテキスト復帰処理とを
行う。以上説明してきたように本発明のマイクロコンピ
ュータによれば、CPU4は、戻りPC及びPSWの退
避・復帰と、レジスタセットの切り換えを行うだけでタ
スクを切り換えることができるので、タスク切り換えに
よるCPUのオーバーヘッドが極めて少なく、高速なタ
スク切り換えを実現する。しかも、タスク切り換えに必
要なハードウェア構成は、レジスタセットを1つ分と転
送部を追加するだけなので、より小さいハードウェア規
模で実現できるという利点がある。この点、特に組み込
み用途の1チップマイクロコンピュータに適している。
同時に起動され、CPU4のタスク1実行中に内部バス
418、メモリバス419の空きサイクルを利用して、
図3および図5に示したように、タスク3のコンテキス
トの退避処理と、タスク4のコンテキスト復帰処理とを
行う。以上説明してきたように本発明のマイクロコンピ
ュータによれば、CPU4は、戻りPC及びPSWの退
避・復帰と、レジスタセットの切り換えを行うだけでタ
スクを切り換えることができるので、タスク切り換えに
よるCPUのオーバーヘッドが極めて少なく、高速なタ
スク切り換えを実現する。しかも、タスク切り換えに必
要なハードウェア構成は、レジスタセットを1つ分と転
送部を追加するだけなので、より小さいハードウェア規
模で実現できるという利点がある。この点、特に組み込
み用途の1チップマイクロコンピュータに適している。
【0053】また転送部5は、CPU4のタスク実行中
に内部バス及びメモリバスの空きサイクルを利用してコ
ンテキストの退避・復帰を行うので、CPUのタスク実
行を全く妨げないので、CPUの処理能力を最大限に活
用することができる。さらに、2つのレジスタセットを
交互にタスクに割当てるので、CPUが実行するタスク
数に制限がない。このタスク数は、コンテキスト退避領
域を設けることが前提なので、メモリ容量の許す限りタ
スク数を増やすことができる。
に内部バス及びメモリバスの空きサイクルを利用してコ
ンテキストの退避・復帰を行うので、CPUのタスク実
行を全く妨げないので、CPUの処理能力を最大限に活
用することができる。さらに、2つのレジスタセットを
交互にタスクに割当てるので、CPUが実行するタスク
数に制限がない。このタスク数は、コンテキスト退避領
域を設けることが前提なので、メモリ容量の許す限りタ
スク数を増やすことができる。
【0054】また、タスクスケジュールテーブル2内に
同一タスクを複数記述するだけで、タスクのCPU占有
時間の制御を容易にすることができる。例えば、図3の
例ではタスク1は、テーブル内の2箇所に記述されるだ
けで、他のタスク2、3、4の2倍の占有時間(40
%)を確保している。なお、上記実施例では、タスク切
り換えを要求するイベントを、周期200mSのタイマ
ー割込とした。イベント周期は、転送部5がCPU4の
タスク実行の背後でバスの空きサイクルを利用してコン
テキストの転送(退避・復帰)を行っているので、タス
ク実行においてバスの空サイクル数が十分生じるだけの
時間を確保する必要がある。本実施例の構成ではイベン
ト周期として数百μS〜数mS以上が望ましい。
同一タスクを複数記述するだけで、タスクのCPU占有
時間の制御を容易にすることができる。例えば、図3の
例ではタスク1は、テーブル内の2箇所に記述されるだ
けで、他のタスク2、3、4の2倍の占有時間(40
%)を確保している。なお、上記実施例では、タスク切
り換えを要求するイベントを、周期200mSのタイマ
ー割込とした。イベント周期は、転送部5がCPU4の
タスク実行の背後でバスの空きサイクルを利用してコン
テキストの転送(退避・復帰)を行っているので、タス
ク実行においてバスの空サイクル数が十分生じるだけの
時間を確保する必要がある。本実施例の構成ではイベン
ト周期として数百μS〜数mS以上が望ましい。
【0055】また、上記実施例では、イベントをタイマ
ー割込としたが、これ以外にもタスクスイッチ命令、特
定ポート(シリアルポートなど)の割り込み等であって
もよい。上記実施例では、図3に示したようにタスク退
避領域をSP退避領域とコンテキスト退避領域とに分け
て構成したが、1つの領域にまとめてもよい。また、タ
スクスケジュールテーブル2にはタスク毎にSP退避領
域のアドレスを格納するよう構成したが、タスク番号を
格納する構成としてもよい。この場合、タスク番号に対
応するSP退避領域のアドレスを求めるためのテーブル
を設ければよい。
ー割込としたが、これ以外にもタスクスイッチ命令、特
定ポート(シリアルポートなど)の割り込み等であって
もよい。上記実施例では、図3に示したようにタスク退
避領域をSP退避領域とコンテキスト退避領域とに分け
て構成したが、1つの領域にまとめてもよい。また、タ
スクスケジュールテーブル2にはタスク毎にSP退避領
域のアドレスを格納するよう構成したが、タスク番号を
格納する構成としてもよい。この場合、タスク番号に対
応するSP退避領域のアドレスを求めるためのテーブル
を設ければよい。
【0056】図8は、本発明の他の実施例におけるマイ
クロコンピュータの詳細な構成を占めずブロック図であ
る。同図の構成は、図2に対してクロック供給部421
の代わりにクロック供給部422が設けられている点
と、停止回路511が追加されている点のみが異なる。
これらの点以外は先の実施例と同じなので異なる点のみ
を説明ずる。
クロコンピュータの詳細な構成を占めずブロック図であ
る。同図の構成は、図2に対してクロック供給部421
の代わりにクロック供給部422が設けられている点
と、停止回路511が追加されている点のみが異なる。
これらの点以外は先の実施例と同じなので異なる点のみ
を説明ずる。
【0057】クロック供給部422は、CPU4および
転送部5に動作クロックを供給する点は同じであるが、
CPU4に対しては停止部511の指示に従って動作ク
ロックの供給を停止する点が異なる。停止部511は、
転送部5の転送動作中に、タスク切り換えを要求するイ
ベントが発生した場合に、転送動作が終了するまでの間
クロック供給部422によるCPU4へのクロック供給
を停止する。具体的には、転送部5が転送動作中である
ことを示す転送中フラグを内部に有し、退避開始時点で
セットし、復帰終了時点でリセットする。また、停止部
511は、前記イベントを表すタイマー割り込み信号が
アクティブで、かつ、フラグがセットされていれば、ク
ロック供給部422にCPU4への動作クロック供給を
停止するよう指示する。その後フラグがリセットされた
時点で、前記停止指示を解除する。
転送部5に動作クロックを供給する点は同じであるが、
CPU4に対しては停止部511の指示に従って動作ク
ロックの供給を停止する点が異なる。停止部511は、
転送部5の転送動作中に、タスク切り換えを要求するイ
ベントが発生した場合に、転送動作が終了するまでの間
クロック供給部422によるCPU4へのクロック供給
を停止する。具体的には、転送部5が転送動作中である
ことを示す転送中フラグを内部に有し、退避開始時点で
セットし、復帰終了時点でリセットする。また、停止部
511は、前記イベントを表すタイマー割り込み信号が
アクティブで、かつ、フラグがセットされていれば、ク
ロック供給部422にCPU4への動作クロック供給を
停止するよう指示する。その後フラグがリセットされた
時点で、前記停止指示を解除する。
【0058】以上のように構成された本実施例のマイク
ロコンピュータの動作を以下説明する。転送部5により
退避・復帰動作は先の実施例と全く同じである。この退
避・復帰動作中に、タスク切り換えを要求するタイマー
割込みが発生したものとする。この場合、停止部511
の指示によってクロック供給部422がCPU4への動
作クロックの供給を停止する。これによりCPU4は、
その動作を停止する。転送部5への動作クロックは供給
されているので、復帰動作の完了後には、前記フラグが
リセットされる。これにより停止部511は、前記停止
指示を解除するので、CPU4によるタスク切り換えお
よびタスク実行の動作が再開される。
ロコンピュータの動作を以下説明する。転送部5により
退避・復帰動作は先の実施例と全く同じである。この退
避・復帰動作中に、タスク切り換えを要求するタイマー
割込みが発生したものとする。この場合、停止部511
の指示によってクロック供給部422がCPU4への動
作クロックの供給を停止する。これによりCPU4は、
その動作を停止する。転送部5への動作クロックは供給
されているので、復帰動作の完了後には、前記フラグが
リセットされる。これにより停止部511は、前記停止
指示を解除するので、CPU4によるタスク切り換えお
よびタスク実行の動作が再開される。
【0059】以上のように本実施例では、転送部5によ
る転送動作が終了しないうちに、タスク切り換えを要求
するイベントが発生した場合には、CPU4の動作を止
めて転送を完了させてからCPU4の動作を再開させ
る。これにより、転送部5の転送時間がイベント発生間
隔よりも短い場合に、適切にタスク切り換えを実行する
ことができる。例えば、イベントが周期的な割込みでは
なく不定期に発生する割込みである場合や、内部バス4
18、メモリバス419の空きサイクルがほとんど発生
しないようなタスク(メモリデータの転送が大部分であ
るようなタスク)が存在する場合に、動作が停止する分
だけCPU4の処理能力が低くなるが、適切にタスク切
り換えを実行することができる。
る転送動作が終了しないうちに、タスク切り換えを要求
するイベントが発生した場合には、CPU4の動作を止
めて転送を完了させてからCPU4の動作を再開させ
る。これにより、転送部5の転送時間がイベント発生間
隔よりも短い場合に、適切にタスク切り換えを実行する
ことができる。例えば、イベントが周期的な割込みでは
なく不定期に発生する割込みである場合や、内部バス4
18、メモリバス419の空きサイクルがほとんど発生
しないようなタスク(メモリデータの転送が大部分であ
るようなタスク)が存在する場合に、動作が停止する分
だけCPU4の処理能力が低くなるが、適切にタスク切
り換えを実行することができる。
【0060】
【発明の効果】以上説明したように、請求項1の発明に
よれば、レジスタセットを1つ分と、転送手段をハード
ウェアとして追加するだけで、高速なタスク切り換えを
実現することができるという効果がある。特に組み込み
用途のマイクロコンピュータにおいては、ハードウェア
規模の制約があっても、タスクの高速切り換えを実現で
きるので、組み込み先の装置におけるリアルタイム制御
を可能にする。
よれば、レジスタセットを1つ分と、転送手段をハード
ウェアとして追加するだけで、高速なタスク切り換えを
実現することができるという効果がある。特に組み込み
用途のマイクロコンピュータにおいては、ハードウェア
規模の制約があっても、タスクの高速切り換えを実現で
きるので、組み込み先の装置におけるリアルタイム制御
を可能にする。
【0061】請求項2の発明によれば、請求項1の効果
に加えて、タスク実行を全く妨げることなく、退避と復
帰を実現できるという効果がある。請求項3の発明によ
れば、レジスタセットを1つ分と、転送手段をハードウ
ェアとして追加するだけで、高速なタスク切り換えを実
現することができるという効果がある。特に組み込み用
途のマイクロコンピュータにおいては、ハードウェア規
模の制約があっても、タスクの高速切り換えを実現でき
るので、組み込み先の装置におけるリアルタイム制御を
可能にする。
に加えて、タスク実行を全く妨げることなく、退避と復
帰を実現できるという効果がある。請求項3の発明によ
れば、レジスタセットを1つ分と、転送手段をハードウ
ェアとして追加するだけで、高速なタスク切り換えを実
現することができるという効果がある。特に組み込み用
途のマイクロコンピュータにおいては、ハードウェア規
模の制約があっても、タスクの高速切り換えを実現でき
るので、組み込み先の装置におけるリアルタイム制御を
可能にする。
【0062】請求項4の発明によれば、請求項3の効果
に加えて、タスクの実行順序として1つのタスクを複数
指定するだけで、中央演算処理手段におけるタスクの占
有率を簡単に制御できるという効果がある。請求項5の
発明によれば、請求項3又は4の効果に加えて、タスク
実行を全く妨げることなく、退避と復帰を実現できると
いう効果がある。
に加えて、タスクの実行順序として1つのタスクを複数
指定するだけで、中央演算処理手段におけるタスクの占
有率を簡単に制御できるという効果がある。請求項5の
発明によれば、請求項3又は4の効果に加えて、タスク
実行を全く妨げることなく、退避と復帰を実現できると
いう効果がある。
【0063】請求項6の発明によれば、請求項3、4又
は5の効果に加えて、退避・復帰に要するよりも短い周
期でタスク切り換えの要求が発生しても適切にタスクを
切り換えることができるので、タスク切り換え周期を幅
広く設定することができる。
は5の効果に加えて、退避・復帰に要するよりも短い周
期でタスク切り換えの要求が発生しても適切にタスクを
切り換えることができるので、タスク切り換え周期を幅
広く設定することができる。
【図1】本発明の実施例におけるマイクロコンピュータ
の主要な概略構成を示すブロック図である。
の主要な概略構成を示すブロック図である。
【図2】同実施例におけるマイクロコンピュータのより
詳細な構成を示すブロック図である。
詳細な構成を示すブロック図である。
【図3】同実施例におけるタスクスケジュールテーブ
ル、タスク用退避領域のメモリマップの一例を示す。
ル、タスク用退避領域のメモリマップの一例を示す。
【図4】同実施例における転送制御部501の機能的な
構成を示すブロック図である。
構成を示すブロック図である。
【図5】同実施例におけるCPU4によるタスク切り換
え処理、及び、転送部5による詳細なコンテキスト退避
・復帰処理を表すフローチャートである。
え処理、及び、転送部5による詳細なコンテキスト退避
・復帰処理を表すフローチャートである。
【図6】第1の従来技術におけるマルチタスク機能を有
するコンピュータの説明図である。
するコンピュータの説明図である。
【図7】第2の従来技術におけるマルチタスク機能を有
するコンピュータの説明図である。
するコンピュータの説明図である。
【図8】本発明の他の実施例におけるマイクロコンピュ
ータの詳細は構成を示すブロック図である。
ータの詳細は構成を示すブロック図である。
1 メモリ 2 タスクスケジュールテーブル 3 レジスタファイル 4 CPU 5 転送部 51 内部バス空き検出回路 52 メモリバス空き検出回路 53 レジスタ読み出し制御部 54 メモリ書き込み制御部 55 メモリ読み出し制御部 56 レジスタ書き込み制御部 422 クロック供給部 501 転送制御部 502 PLA 503 マイクロ命令レジスタ 504 TSTB 504 ステップ 505 TSTP 506 DOAB 507 DSTB 508 DLDB 509 加算器 510 定数発生器 511 停止部
フロントページの続き (72)発明者 松本 政彦 大阪府門真市大字門真1006番地 松下電器 産業株式会社内
Claims (6)
- 【請求項1】 複数のタスクを順に切り換えながら実行
するマイクロコンピュータであって、 同一のレジスタ構成をもち、タスク実行に一方が使用さ
れる2つのレジスタセットと、 タスク切り換えと同時に、タスク実行に使用されるレジ
スタセットを他方に切り換える切り換え手段と、 レジスタセットに接続された内部バス、およびメモリに
接続されたメモリバスそれぞれの空サイクルを検出する
検出手段と、 タスク切り換え毎に、検出されたバスの空サイクルを利
用して、タスク実行に使用されていないレジスタセット
のデータをメモリに退避し、次の切り換え後に実行すべ
きタスク用のデータをメモリから当該レジスタセットに
復帰する転送手段とを備えることを特徴とするマイクロ
コンピュータ。 - 【請求項2】 前記転送手段は、 内部バスの空サイクルにおいて、タスク実行に使用され
ていないレジスタセットのレジスタデータを読み出すレ
ジスタ読み出し手段と、 メモリバスの空サイクルにおいて、レジスタ読み出し手
段により読み出されたデータをメモリに書き込むメモリ
書き込み手段と、 メモリ書き込み手段による書き込み完了後、メモリバス
の空サイクルにおいて、次のタスク用のデータをメモリ
から読み出すメモリ読み出し手段と、 内部バスの空サイクルにおいて、メモリ読み出し手段に
より読み出されたデータを、タスク実行に使用されてい
ないレジスタセットに書き込むレジスタ書き込み手段と
を有することを特徴とする請求項1記載のマイクロコン
ピュータ。 - 【請求項3】 複数のタスクを順に切り換えながら実行
するマイクロコンピュータであって、 複数のタスクプログラムを記憶し、各タスクに対応する
データ退避領域を有するメモリと、 複数のタスクの実行順序を記憶するテーブル手段と、 同一のレジスタ構成をもつ2つのレジスタセットと、 テーブル手段の実行順序に従ってタスクを切り換え、レ
ジスタセットの一方を使用してタスクを実行する中央演
算処理手段と、 タスク切り換え毎に、中央演算処理手段のタスク実行に
使用されるレジスタセットを交互に切り換える切り換え
手段と、 レジスタセットに接続された内部バス、およびメモリに
接続されたメモリバスそれぞれの空サイクルを検出する
検出手段と、 タスク切り換え毎に、検出されたバスの空サイクルを利
用して、タスク実行に使用されていないレジスタセット
のデータを、切り換え前のタスクに対応するデータ退避
領域に退避する退避手段と、 退避手段による退避後、検出されたバスの空サイクルを
利用して、中央演算処理手段による実行中タスクの次の
タスクに対応するデータ退避領域のデータを、 タスク実行に使用されていないレジスタセットに復帰さ
せる復帰手段とを備えることを特徴とするマイクロコン
ピュータ。 - 【請求項4】前記メモリは、各タスク毎のスタック領域
内に前記データ退避領域を有し、 前記テーブル手段は、タスクの実行順序と、各タスクに
対応するスタックポインタの内容とを記憶することを特
徴とする請求項3記載のマイクロコンピュータ。 - 【請求項5】 前記退避手段は、 内部バスの空サイクルにおいて、タスク実行に使用され
ていないレジスタセットのレジスタデータを順に読み出
すレジスタ読み出し手段と、 メモリバスの空サイクルにおいて、レジスタ読み出し手
段により読み出されたデータを順に、切り換え前のタス
クに対応するデータ退避領域に書き込むメモリ書き込み
手段とを有し、 前記復帰手段は、 メモリ書き込み手段による書き込み完了後、メモリバス
の空サイクルにおいて、中央演算処理手段による実行中
タスクの次のタスクに対応するデータ退避領域のデータ
を順にメモリから読み出すメモリ読み出し手段と、 内部バスの空サイクルにおいて、メモリ読み出し手段に
より読み出されたデータを、タスク実行に使用されてい
ないレジスタセットに書き込むレジスタ書き込み手段と
を有することを特徴とする請求項3又は4記載のマイク
ロコンピュータ。 - 【請求項6】 前記マイクロコンピュータは、さらに、 中央演算処理手段に動作クロックを供給するクロック供
給手段と、 復帰手段による復帰動作中に、中央演算処理手段により
タスク切り換えが発生した場合に、当該復帰動作が完了
するまでの間クロック供給手段の動作クロックの供給を
停止する停止手段とを備えることを特徴とする請求項
3、4又は5記載のマイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7166443A JPH0916409A (ja) | 1995-06-30 | 1995-06-30 | マイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7166443A JPH0916409A (ja) | 1995-06-30 | 1995-06-30 | マイクロコンピュータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0916409A true JPH0916409A (ja) | 1997-01-17 |
Family
ID=15831507
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7166443A Pending JPH0916409A (ja) | 1995-06-30 | 1995-06-30 | マイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0916409A (ja) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512671A (ja) * | 1999-10-20 | 2003-04-02 | ソニー エレクトロニクス インク | 並列コンテキスト切換を用いてアイソクロノス処理をサポートする方法 |
| JP2007087108A (ja) * | 2005-09-22 | 2007-04-05 | Fujitsu Ltd | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
| WO2008023426A1 (fr) * | 2006-08-24 | 2008-02-28 | Netcleus Systems Corporation | Dispositif de traitement de tâche |
| US7386707B2 (en) | 2002-01-09 | 2008-06-10 | Matsushita Electric Industrial Co., Ltd. | Processor and program execution method capable of efficient program execution |
| JP2008234075A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
| US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
| US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
| CN102436393A (zh) * | 2006-08-24 | 2012-05-02 | 科尼龙硅公司 | 任务处理装置 |
| US8327379B2 (en) | 2006-08-24 | 2012-12-04 | Kernelon Silicon Inc. | Method for switching a selected task to be executed according with an output from task selecting circuit |
| KR101353065B1 (ko) * | 2011-11-11 | 2014-01-20 | 재단법인대구경북과학기술원 | 실시간 운영체제의 테스크 스케줄링 테이블을 이용한 테스크 관리장치 및 관리방법 |
| US12481523B2 (en) | 2017-12-26 | 2025-11-25 | Silicon Mobility Sas | Flexible logic unit adapted for real-time task switching |
-
1995
- 1995-06-30 JP JP7166443A patent/JPH0916409A/ja active Pending
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003512671A (ja) * | 1999-10-20 | 2003-04-02 | ソニー エレクトロニクス インク | 並列コンテキスト切換を用いてアイソクロノス処理をサポートする方法 |
| US8719827B2 (en) | 2002-01-09 | 2014-05-06 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7386707B2 (en) | 2002-01-09 | 2008-06-10 | Matsushita Electric Industrial Co., Ltd. | Processor and program execution method capable of efficient program execution |
| US8006076B2 (en) | 2002-01-09 | 2011-08-23 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7921281B2 (en) | 2002-01-09 | 2011-04-05 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US7930520B2 (en) | 2002-01-09 | 2011-04-19 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
| US9823946B2 (en) | 2002-01-09 | 2017-11-21 | Socionext Inc. | Processor and program execution method capable of efficient program execution |
| US8276156B2 (en) | 2003-03-13 | 2012-09-25 | Panasonic Corporation | Task switching based on assigned time slot |
| US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
| US7950016B2 (en) | 2003-03-13 | 2011-05-24 | Panasonic Corporation | Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot |
| US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
| JP2007087108A (ja) * | 2005-09-22 | 2007-04-05 | Fujitsu Ltd | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
| CN102436393A (zh) * | 2006-08-24 | 2012-05-02 | 科尼龙硅公司 | 任务处理装置 |
| US8327379B2 (en) | 2006-08-24 | 2012-12-04 | Kernelon Silicon Inc. | Method for switching a selected task to be executed according with an output from task selecting circuit |
| US9342350B2 (en) | 2006-08-24 | 2016-05-17 | Renesas Electronics Corporation | System for selecting a task to be executed according to an output from a task control circuit |
| US9753729B2 (en) | 2006-08-24 | 2017-09-05 | Renesas Electronics Corporation | System for selecting a task to be executed according to an output from a task control circuit |
| WO2008023426A1 (fr) * | 2006-08-24 | 2008-02-28 | Netcleus Systems Corporation | Dispositif de traitement de tâche |
| JP2008234075A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
| KR101353065B1 (ko) * | 2011-11-11 | 2014-01-20 | 재단법인대구경북과학기술원 | 실시간 운영체제의 테스크 스케줄링 테이블을 이용한 테스크 관리장치 및 관리방법 |
| US12481523B2 (en) | 2017-12-26 | 2025-11-25 | Silicon Mobility Sas | Flexible logic unit adapted for real-time task switching |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5557766A (en) | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank | |
| US7590774B2 (en) | Method and system for efficient context swapping | |
| EP0955583A2 (en) | Context switching technique for processors with large register files | |
| US20020083373A1 (en) | Journaling for parallel hardware threads in multithreaded processor | |
| JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
| JPH08305585A (ja) | 割込制御装置 | |
| JP3605978B2 (ja) | マイクロコンピュータ | |
| KR970003321B1 (ko) | 코프로세서 지정 시스템 | |
| JPH07120338B2 (ja) | 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ | |
| US20050125801A1 (en) | Method and apparartus for context switching in computer operating systems | |
| US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
| JP2001249808A (ja) | 情報処理装置 | |
| JP4160228B2 (ja) | マイクロプロセッサ | |
| JP2009193378A (ja) | ベクトル処理装置 | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| JPH0668725B2 (ja) | データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法 | |
| JP3077807B2 (ja) | マイクロコンピュータシステム | |
| JPH03257665A (ja) | 情報処理装置 | |
| JPH0377137A (ja) | 情報処理装置 | |
| JP5185478B2 (ja) | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 | |
| JPH05165641A (ja) | シングルチップマイクロコンピュータ | |
| JP3071210B2 (ja) | タスク管理制御方式 | |
| JP2002278753A (ja) | データ処理システム | |
| JP2002182901A (ja) | コプロセッサデータアクセス制御装置、その方法およびその命令フォーマット | |
| JPH06324861A (ja) | Cpu制御システム及び制御方法 |