JP2000122880A - リアルタイムosを搭載した情報処理装置 - Google Patents
リアルタイムosを搭載した情報処理装置Info
- Publication number
- JP2000122880A JP2000122880A JP10293614A JP29361498A JP2000122880A JP 2000122880 A JP2000122880 A JP 2000122880A JP 10293614 A JP10293614 A JP 10293614A JP 29361498 A JP29361498 A JP 29361498A JP 2000122880 A JP2000122880 A JP 2000122880A
- Authority
- JP
- Japan
- Prior art keywords
- task
- data
- execution
- dma
- memory
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】DMA転送を用いて、CPU又はDSPの処理
と独立してタスク及びデータの転送を行うことにより、
キャッシュメモリ105と外部メモリ106間のデータ
転送を高速化し、絶対的時間の制約が厳しいリアルタイ
ムシステムに適用可能なリアルタイムOSを搭載した情
報処理装置を提供する。 【解決手段】インターバルタイマ処理部201は、イン
ターバルタイマ割り込みの度、オーバレイ領域管理部1
03の各タスク毎のカウンタ値を更新し、オーバレイ領
域管理部103は、現在実行中の実行タスクと次に実行
されるタスクが異なる場合は、現在実行中の実行タスク
と次に実行される次期実行タスクのキャッシュメモリ1
05での共有領域を検出し、その共有領域のデータを実
行DMAコマンド発行部206に通知する。
と独立してタスク及びデータの転送を行うことにより、
キャッシュメモリ105と外部メモリ106間のデータ
転送を高速化し、絶対的時間の制約が厳しいリアルタイ
ムシステムに適用可能なリアルタイムOSを搭載した情
報処理装置を提供する。 【解決手段】インターバルタイマ処理部201は、イン
ターバルタイマ割り込みの度、オーバレイ領域管理部1
03の各タスク毎のカウンタ値を更新し、オーバレイ領
域管理部103は、現在実行中の実行タスクと次に実行
されるタスクが異なる場合は、現在実行中の実行タスク
と次に実行される次期実行タスクのキャッシュメモリ1
05での共有領域を検出し、その共有領域のデータを実
行DMAコマンド発行部206に通知する。
Description
【0001】
【発明の属する技術分野】本発明は複数のタスクを連続
的かつリアルタイムに実行することができるリアルタイ
ムOSを搭載した情報処理装置に関し、特に同様のタス
クが繰り返し処理される音声システム又は画像システム
などのマルチメディアシステムに最適なリアルタイムO
Sを搭載した情報処理装置に関する。
的かつリアルタイムに実行することができるリアルタイ
ムOSを搭載した情報処理装置に関し、特に同様のタス
クが繰り返し処理される音声システム又は画像システム
などのマルチメディアシステムに最適なリアルタイムO
Sを搭載した情報処理装置に関する。
【0002】
【従来の技術】従来、複数のタスクをリアルタイムに実
行できるリアルタイムOSは、モータ制御などの制御シ
ステムに多く用いられてきたが、最近マルチメディアシ
ステムの急速な拡大に伴って、リアルタイムOSがマル
チメディアシステムにも対応できることが要求されてき
ている。
行できるリアルタイムOSは、モータ制御などの制御シ
ステムに多く用いられてきたが、最近マルチメディアシ
ステムの急速な拡大に伴って、リアルタイムOSがマル
チメディアシステムにも対応できることが要求されてき
ている。
【0003】このマルチメディアに適したリアルタイム
OSの従来例が、特開平10−228385号公報に記
載されている。
OSの従来例が、特開平10−228385号公報に記
載されている。
【0004】図19を参照して、上記公報に記載された
リアルタイムOSについて説明すると、このリアルタイ
ムOSは、インターバルタイマ割り込みが入ると動作す
るインターバルタイマ処理部10、周期間隔検出部1
1、待合登録部12、タスクスイッチ部13、カレント
タスク判定部14、タスクブロック制御部15とを備え
ている。
リアルタイムOSについて説明すると、このリアルタイ
ムOSは、インターバルタイマ割り込みが入ると動作す
るインターバルタイマ処理部10、周期間隔検出部1
1、待合登録部12、タスクスイッチ部13、カレント
タスク判定部14、タスクブロック制御部15とを備え
ている。
【0005】また、タスクブロック制御部15は、タス
クブロックに属するタスクの実行開始をスケジューリン
グし、タスクの動作を管理するタスクブロックスケジュ
ーラ部16を有している。
クブロックに属するタスクの実行開始をスケジューリン
グし、タスクの動作を管理するタスクブロックスケジュ
ーラ部16を有している。
【0006】さらに、この従来例のリアルタイムOS
は、間隔テーブル18、待合テーブル19、システム管
理テーブル20、タスクコントロールテーブル21とを
設けている。
は、間隔テーブル18、待合テーブル19、システム管
理テーブル20、タスクコントロールテーブル21とを
設けている。
【0007】次に従来例のリアルタイムOSの動作につ
いて説明すると、間隔テーブル18は、各タスクの実行
開始時間を監視するテーブルであり、この間隔テーブル
18の内容は、インターバルタイマ割り込みの都度毎
に、インターバルタイマ処理部10によって更新され
る。
いて説明すると、間隔テーブル18は、各タスクの実行
開始時間を監視するテーブルであり、この間隔テーブル
18の内容は、インターバルタイマ割り込みの都度毎
に、インターバルタイマ処理部10によって更新され
る。
【0008】また、周期間隔検出部11は、間隔テーブ
ル18から次に実行開始しなければならないタスクを検
索し、検索結果に基づいて、現在実行されているカレン
トタスク17を制御する。すなわち、周期間隔検出部1
1が実行開始すべきタスクが間隔テーブル18に存在し
ないと判断すると、現在実行されているカレントタスク
17を続行し、逆に間隔テーブル18に実行開始すべき
タスクが存在する場合、周期間隔検出部11は、実行開
始するタスクをカレントタスク判定部14に出力する。
ル18から次に実行開始しなければならないタスクを検
索し、検索結果に基づいて、現在実行されているカレン
トタスク17を制御する。すなわち、周期間隔検出部1
1が実行開始すべきタスクが間隔テーブル18に存在し
ないと判断すると、現在実行されているカレントタスク
17を続行し、逆に間隔テーブル18に実行開始すべき
タスクが存在する場合、周期間隔検出部11は、実行開
始するタスクをカレントタスク判定部14に出力する。
【0009】カレントタスク判定部14は、タスクの属
するタスクブロックを判定し、そのタスクが現在実行さ
れているカレントタスクと同一のタスクブロックに属し
ている場合、タスクブロック制御部15に次のタスクが
同一のタスクブロックに属していることを指示し、タス
クブロック制御部15はこのタスクをカレントタスク部
17に実行命令する。
するタスクブロックを判定し、そのタスクが現在実行さ
れているカレントタスクと同一のタスクブロックに属し
ている場合、タスクブロック制御部15に次のタスクが
同一のタスクブロックに属していることを指示し、タス
クブロック制御部15はこのタスクをカレントタスク部
17に実行命令する。
【0010】一方、実行開始すべきタスクがカレントタ
スクと異なるタスクブロックに属している場合、待合登
録部12により、待合テーブル19に実行開始すべきタ
スクを登録すると共に、タスクスイッチ13は待合テー
ブル19にアクセスして、待合テーブル19に登録され
ている実行開始すべきタスクに切り替えるよう、タスク
ブロック制御部15に指示する。
スクと異なるタスクブロックに属している場合、待合登
録部12により、待合テーブル19に実行開始すべきタ
スクを登録すると共に、タスクスイッチ13は待合テー
ブル19にアクセスして、待合テーブル19に登録され
ている実行開始すべきタスクに切り替えるよう、タスク
ブロック制御部15に指示する。
【0011】これにより、タスクブロック制御部15
は、他のタスクブロックに属するタスクに切り替える。
は、他のタスクブロックに属するタスクに切り替える。
【0012】このリアルタイムOSは、複数のタスクを
各プログラムのデッドライン時間を基準してタスクブロ
ックにまとめ、異なるタスクブロックに属するタスクを
実行する場合だけ、タスクスイッチ部13によりタスク
を切り替えることにより、タスクスイッチ13の使用頻
度を大幅に減らし、リアルタイムOSへの負担を減少さ
せている。
各プログラムのデッドライン時間を基準してタスクブロ
ックにまとめ、異なるタスクブロックに属するタスクを
実行する場合だけ、タスクスイッチ部13によりタスク
を切り替えることにより、タスクスイッチ13の使用頻
度を大幅に減らし、リアルタイムOSへの負担を減少さ
せている。
【0013】また、OSにオーバレイ方式を用いてOS
のメモリ占有量を削減する技術が、特開平1−2377
25号公報に記載されている。
のメモリ占有量を削減する技術が、特開平1−2377
25号公報に記載されている。
【0014】具体的には、オーバレイモジュールをダイ
ナミックにロールイン、ロールアウトするようにし、オ
ーバレイモジュールをキャッシュメモリに転送する場
合、テーブル内のオーバレイモジュール名称に対応する
識別子をロールアウト禁止とすることで、処理が切り替
わるまで、該当するオーバレイモジュールはロールアウ
トされないようにして、オーバレイ方式により発生する
入出力アクセスのオーバヘッドを低減している。
ナミックにロールイン、ロールアウトするようにし、オ
ーバレイモジュールをキャッシュメモリに転送する場
合、テーブル内のオーバレイモジュール名称に対応する
識別子をロールアウト禁止とすることで、処理が切り替
わるまで、該当するオーバレイモジュールはロールアウ
トされないようにして、オーバレイ方式により発生する
入出力アクセスのオーバヘッドを低減している。
【0015】
【発明が解決しようとする課題】最近、マルチメディア
システムのより高度化と共に、マルチメディアシステム
を制御するリアルタイムOSが処理しなければならない
プログラムの規模及びデータ量が膨大になってきてい
る。
システムのより高度化と共に、マルチメディアシステム
を制御するリアルタイムOSが処理しなければならない
プログラムの規模及びデータ量が膨大になってきてい
る。
【0016】特開平10−228385号公報に記載の
リアルタイムOSは、タスクをグループ化することによ
りタスクスイッチによって生じるオーバーヘッドを大幅
に改善できるものの、内部の実行アドレス空間に高速キ
ャッシュメモリを使用し、外部に低速で大容量の外部メ
モリを搭載し、CPU又はDSP(ディジタル・シグナ
ル・プロセッサ)が処理するのに不必要となったデータ
をキャッシュメモリから外部メモリに転送し、空いたキ
ャッシュメモリのメモリ領域に必要となった命令コード
又はデータをロードするオーバレイ方式については記述
がない。
リアルタイムOSは、タスクをグループ化することによ
りタスクスイッチによって生じるオーバーヘッドを大幅
に改善できるものの、内部の実行アドレス空間に高速キ
ャッシュメモリを使用し、外部に低速で大容量の外部メ
モリを搭載し、CPU又はDSP(ディジタル・シグナ
ル・プロセッサ)が処理するのに不必要となったデータ
をキャッシュメモリから外部メモリに転送し、空いたキ
ャッシュメモリのメモリ領域に必要となった命令コード
又はデータをロードするオーバレイ方式については記述
がない。
【0017】このため、大容量のメモリ空間を必要とす
るマルチメディアシステムに上記公報のリアルタイムO
Sを適用しようとすると、キャッシュメモリの容量不足
から処理速度が低下するという恐れがある。
るマルチメディアシステムに上記公報のリアルタイムO
Sを適用しようとすると、キャッシュメモリの容量不足
から処理速度が低下するという恐れがある。
【0018】また、特開平1−237725号公報に記
載のオーバレイ方式を用いたOSは、キャッシュメモリ
を効率良く用いることができるものの、外部記憶装置か
らキャッシュメモリに必要とするモジュールを高速かつ
連続的に転送することができないため、音声信号処理な
どのマルチメディアシステムのように、時間的遅れが絶
対に許されない信号を扱うシステム、即ちリアルタイム
性の強いシステムには適用できない。
載のオーバレイ方式を用いたOSは、キャッシュメモリ
を効率良く用いることができるものの、外部記憶装置か
らキャッシュメモリに必要とするモジュールを高速かつ
連続的に転送することができないため、音声信号処理な
どのマルチメディアシステムのように、時間的遅れが絶
対に許されない信号を扱うシステム、即ちリアルタイム
性の強いシステムには適用できない。
【0019】このため本発明の目的は、オーバレイ方式
を用いて大容量のメモリ空間が必要なタスク又はデータ
を処理することができるリアルタイムOSを搭載した情
報処理装置を提供することである。
を用いて大容量のメモリ空間が必要なタスク又はデータ
を処理することができるリアルタイムOSを搭載した情
報処理装置を提供することである。
【0020】また、本発明の他の目的は、DMA(ダイ
レクト・メモリ・アクセス)転送を用いて、CPU又は
DSPの処理と独立してタスク及びデータの転送を行う
ことにより、キャッシュメモリと外部記憶装置間のデー
タ転送を高速化し、絶対的時間の制約が厳しいリアルタ
イムシステムに適用可能なリアルタイムOSを搭載した
情報処理装置を提供することである。
レクト・メモリ・アクセス)転送を用いて、CPU又は
DSPの処理と独立してタスク及びデータの転送を行う
ことにより、キャッシュメモリと外部記憶装置間のデー
タ転送を高速化し、絶対的時間の制約が厳しいリアルタ
イムシステムに適用可能なリアルタイムOSを搭載した
情報処理装置を提供することである。
【0021】さらに本発明の目的は、現在実行中のタス
クの次に処理すべき次期実行タスクを予測する予測処理
を搭載することにより、前もってDMA転送命令を発行
しタスク及びデータの保存と復帰を行い、タスクの実効
的転送時間を高速化したリアルタイムOSを搭載した情
報処理装置を提供することである。
クの次に処理すべき次期実行タスクを予測する予測処理
を搭載することにより、前もってDMA転送命令を発行
しタスク及びデータの保存と復帰を行い、タスクの実効
的転送時間を高速化したリアルタイムOSを搭載した情
報処理装置を提供することである。
【0022】
【課題を解決するための手段】そのため、本発明による
リアルタイムOSを搭載した情報処理装置は、実行に不
必要なタスクの一部又は全部のデータあるいはこのタス
クが実行するデータの一部又は全部のデータをキャッシ
ュメモリから外部メモリに転送あるいは前記キャッシュ
メモリから廃棄し、これにより生じた前記キャッシュメ
モリのメモリ領域に、実行に必要なタスクの一部又は全
部のデータあるいはこのタスクが実行するデータの一部
又は全部のデータを前記外部メモリから転送するリアル
タイムOSを搭載した情報処理装置において、一定時間
間隔からなり連続したフレーム毎にタスクを処理し、現
在実行中の前記タスクが位置するフレームであるカレン
トフレーム以降のフレームで処理されるタスクを予測す
る次期実行タスク予測部を備え、実行中のタスクである
実行タスクと次期実行タスクが異なる場合、前記次期実
行タスクが実行されるフレームより少なくとも1フレー
ム前に、前記外部メモリから前記次期実行タスクの一部
又は全部をDMA(ダイレクト・アクセス・メモリ)転
送により、前記キャッシュメモリに格納する。
リアルタイムOSを搭載した情報処理装置は、実行に不
必要なタスクの一部又は全部のデータあるいはこのタス
クが実行するデータの一部又は全部のデータをキャッシ
ュメモリから外部メモリに転送あるいは前記キャッシュ
メモリから廃棄し、これにより生じた前記キャッシュメ
モリのメモリ領域に、実行に必要なタスクの一部又は全
部のデータあるいはこのタスクが実行するデータの一部
又は全部のデータを前記外部メモリから転送するリアル
タイムOSを搭載した情報処理装置において、一定時間
間隔からなり連続したフレーム毎にタスクを処理し、現
在実行中の前記タスクが位置するフレームであるカレン
トフレーム以降のフレームで処理されるタスクを予測す
る次期実行タスク予測部を備え、実行中のタスクである
実行タスクと次期実行タスクが異なる場合、前記次期実
行タスクが実行されるフレームより少なくとも1フレー
ム前に、前記外部メモリから前記次期実行タスクの一部
又は全部をDMA(ダイレクト・アクセス・メモリ)転
送により、前記キャッシュメモリに格納する。
【0023】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。図1は、本発明のリアルタ
イムOSを搭載した情報処理装置100と、DMAペリ
フェラル部104、キャッシュメモリ105及び外部メ
モリ106の概念的構成図であり、リアルタイムOSを
搭載した情報処理装置100は、インターバルタイマ処
理部201と次期実行タスク予測部202及びタスク処
理部102とを含むカーネル部101と、実行DMAコ
マンド発行部206と、オーバレイ領域管理部103と
を備えて構成される。
て図面を参照して説明する。図1は、本発明のリアルタ
イムOSを搭載した情報処理装置100と、DMAペリ
フェラル部104、キャッシュメモリ105及び外部メ
モリ106の概念的構成図であり、リアルタイムOSを
搭載した情報処理装置100は、インターバルタイマ処
理部201と次期実行タスク予測部202及びタスク処
理部102とを含むカーネル部101と、実行DMAコ
マンド発行部206と、オーバレイ領域管理部103と
を備えて構成される。
【0024】次に、図1を参照して本発明のリアルタイ
ムOSを搭載した情報処理装置の基本動作について説明
する。
ムOSを搭載した情報処理装置の基本動作について説明
する。
【0025】インターバルタイマ処理部201は、イン
ターバルタイマ割り込みが入ると起動し、オーバレイ領
域管理部103に存在する各タスク毎のカウンタ値を更
新する。
ターバルタイマ割り込みが入ると起動し、オーバレイ領
域管理部103に存在する各タスク毎のカウンタ値を更
新する。
【0026】次に次期実行タスク予測部202は、オー
バレイ領域管理部103を検索し、実行中のタスク以降
のフレームで実行される予定のタスクを検出する。さら
にオーバレイ領域管理部103は、現在実行中の実行タ
スクと次に実行されるタスクが異なる場合はキャッシュ
メモリ105のタスクデータを置き替える判定を行い、
同一の場合はタスクデータを置き替える必要がないと判
定する。
バレイ領域管理部103を検索し、実行中のタスク以降
のフレームで実行される予定のタスクを検出する。さら
にオーバレイ領域管理部103は、現在実行中の実行タ
スクと次に実行されるタスクが異なる場合はキャッシュ
メモリ105のタスクデータを置き替える判定を行い、
同一の場合はタスクデータを置き替える必要がないと判
定する。
【0027】タスクデータを置き替える判定を行った場
合、オーバレイ領域管理部103は、現在実行中の実行
タスクと次に実行される次期実行タスクのキャッシュメ
モリ105での共有領域を検出し、その共有領域のデー
タを実行DMAコマンド発行部206に通知する。
合、オーバレイ領域管理部103は、現在実行中の実行
タスクと次に実行される次期実行タスクのキャッシュメ
モリ105での共有領域を検出し、その共有領域のデー
タを実行DMAコマンド発行部206に通知する。
【0028】実行DMAコマンド発行部206は、DM
Aペリフェラル部104に対してDMA転送命令を発行
し、それを受けてDMAペリフェラル部104は、DM
Aコマンドを実行する。これにより、外部メモリ106
からキャッシュメモリ105にDMA転送によって、共
有領域のデータが高速に転送される。
Aペリフェラル部104に対してDMA転送命令を発行
し、それを受けてDMAペリフェラル部104は、DM
Aコマンドを実行する。これにより、外部メモリ106
からキャッシュメモリ105にDMA転送によって、共
有領域のデータが高速に転送される。
【0029】また、タスク処理部102は、実行中のタ
スクの処理後に実行されるタスクを検出し、実行中のタ
スクと直後に実行されるタスクが同一の場合は、キャッ
シュメモリ105に格納されたタスクの実行を継続し、
異なった場合はタスクを切り替えて、切り替えたタスク
の実行を行う。
スクの処理後に実行されるタスクを検出し、実行中のタ
スクと直後に実行されるタスクが同一の場合は、キャッ
シュメモリ105に格納されたタスクの実行を継続し、
異なった場合はタスクを切り替えて、切り替えたタスク
の実行を行う。
【0030】次に図2〜図12を参照して、本発明のリ
アルタイムOSを搭載した情報処理装置について詳細に
説明する。
アルタイムOSを搭載した情報処理装置について詳細に
説明する。
【0031】図2は、本発明のリアルタイムOSを搭載
した情報処理装置の実施の形態を示す構成図であり、イ
ンターバルタイマ処理部201は、インターバルタイマ
割り込みが入ると起動し、間隔テーブル220及び予測
間隔テーブル221の各タスクのカウンタ値を更新す
る。
した情報処理装置の実施の形態を示す構成図であり、イ
ンターバルタイマ処理部201は、インターバルタイマ
割り込みが入ると起動し、間隔テーブル220及び予測
間隔テーブル221の各タスクのカウンタ値を更新す
る。
【0032】間隔テーブル220は、図3に示すような
テーブルであり、各タスクのカレントフレームカウン
タ、フレームカウンタA及びフレームカウンタBから構
成される。カレントフレームカウンタのカウンタ値(カ
レントフレームカウンタ値)は、現在各タスクが有する
カウンタ値であり、この値が0以下になると該当するタ
スクに対して実行要求が命令される。
テーブルであり、各タスクのカレントフレームカウン
タ、フレームカウンタA及びフレームカウンタBから構
成される。カレントフレームカウンタのカウンタ値(カ
レントフレームカウンタ値)は、現在各タスクが有する
カウンタ値であり、この値が0以下になると該当するタ
スクに対して実行要求が命令される。
【0033】また、フレームカウンタAのカウンタ値
は、周期的に実行されるタスクの実行周期期間を表すフ
レームの開始時に、直前のフレームのカレントフレーム
カウンタ値から減算する値であり、フレームカウンタB
はタスク終了時のカレントフレームカウンタ値に加算す
る値である。
は、周期的に実行されるタスクの実行周期期間を表すフ
レームの開始時に、直前のフレームのカレントフレーム
カウンタ値から減算する値であり、フレームカウンタB
はタスク終了時のカレントフレームカウンタ値に加算す
る値である。
【0034】カレントフレームカウンタの初期値、各タ
スクのフレームカウンタAのカウンタ値、フレームカウ
ンタBのカウンタ値は、インターバルタイマ割り込みの
周波数、各タスクのサンプリング周波数から定まり、フ
レームカウンタBのカウンタ値は、カレントフレームカ
ウンタの初期値と同一である。すなわち、具体的にはイ
ンターバルタイマ割り込みの周波数とタスクのサンプリ
ング周波数との比を整数比にまるめて算出する。
スクのフレームカウンタAのカウンタ値、フレームカウ
ンタBのカウンタ値は、インターバルタイマ割り込みの
周波数、各タスクのサンプリング周波数から定まり、フ
レームカウンタBのカウンタ値は、カレントフレームカ
ウンタの初期値と同一である。すなわち、具体的にはイ
ンターバルタイマ割り込みの周波数とタスクのサンプリ
ング周波数との比を整数比にまるめて算出する。
【0035】例えば、インターバルタイマ割り込みの周
波数が44.1KHzで、タスクのサンプリング周波数
が22.05KHzの場合、カレントフレームカウンタ
の初期値:フレームカウンタAのカウンタ値:フレーム
カウンタBのカウンタ値=44100:22050:4
4100=2:1:2となり、カレントフレームカウン
タの初期値=フレームカウンタBのカウンタ値=2で、
フレームカウンタAのカウンタ値=1となる。
波数が44.1KHzで、タスクのサンプリング周波数
が22.05KHzの場合、カレントフレームカウンタ
の初期値:フレームカウンタAのカウンタ値:フレーム
カウンタBのカウンタ値=44100:22050:4
4100=2:1:2となり、カレントフレームカウン
タの初期値=フレームカウンタBのカウンタ値=2で、
フレームカウンタAのカウンタ値=1となる。
【0036】このように、カレントフレームカウンタの
初期値、各タスクのフレームカウンタAのカウンタ値、
フレームカウンタBのカウンタ値を整数比にまるめなけ
ればならない理由は、上記の各カウンタ値を可能な限り
小さな整数にすることにより、カレントフレームカウン
タの初期値と更新後のフレームカウンタ値及びフレーム
カウンタA,Bの各カウンタ値のオーバフローを回避す
るためである。
初期値、各タスクのフレームカウンタAのカウンタ値、
フレームカウンタBのカウンタ値を整数比にまるめなけ
ればならない理由は、上記の各カウンタ値を可能な限り
小さな整数にすることにより、カレントフレームカウン
タの初期値と更新後のフレームカウンタ値及びフレーム
カウンタA,Bの各カウンタ値のオーバフローを回避す
るためである。
【0037】例えば、符号付き16ビット幅のデータを
扱うシステムでは、整数のデータ範囲は、−32728
から+32767となるので、インターバルタイマ割り
込みの周波数及びタスクのサンプリング周波数を単純に
整数にした44100,22050を間隔テーブル22
0に格納すると、間隔テーブル220のメモリがオーバ
フローとなる。上述したように、カレントフレームカウ
ンタの初期値とフレームカウンタAのカウンタ値及びフ
レームカウンタBのカウンタ値を、それぞれ2:1:2
にまるめこむことにより、オーバフローを回避すること
ができる。
扱うシステムでは、整数のデータ範囲は、−32728
から+32767となるので、インターバルタイマ割り
込みの周波数及びタスクのサンプリング周波数を単純に
整数にした44100,22050を間隔テーブル22
0に格納すると、間隔テーブル220のメモリがオーバ
フローとなる。上述したように、カレントフレームカウ
ンタの初期値とフレームカウンタAのカウンタ値及びフ
レームカウンタBのカウンタ値を、それぞれ2:1:2
にまるめこむことにより、オーバフローを回避すること
ができる。
【0038】本発明によるリアルタイムOSを搭載した
情報処理装置が立ち上がると、各タスク毎に、カレント
フレームカウンタの初期値、フレームカウンタAのカウ
ンタ値、フレームカウンタBのカウンタ値が計算され、
次にタスク毎に1フレーム目のカレントフレームカウン
タ値が計算され、0以下(一般的には、正の値から0を
経由せず負の値になり得る)となったタスクが実行開始
される。
情報処理装置が立ち上がると、各タスク毎に、カレント
フレームカウンタの初期値、フレームカウンタAのカウ
ンタ値、フレームカウンタBのカウンタ値が計算され、
次にタスク毎に1フレーム目のカレントフレームカウン
タ値が計算され、0以下(一般的には、正の値から0を
経由せず負の値になり得る)となったタスクが実行開始
される。
【0039】図4は、タスク1,2,3の各フレームカ
ウンタAのカウンタ値A1,A2,A3が共に1で、各
フレームカウンタBのカウンタ値B1,B2,B3が共
に3の場合に、フレームの直前にインターバルタイマ
割り込み(1)が行われ、フレームとフレームの間
にインターバルタイマ割り込み(2)が、フレームと
フレームの間にインターバルタイマ割り込み(3)が
行われて、間隔テーブル220が更新される様子を表し
ている。
ウンタAのカウンタ値A1,A2,A3が共に1で、各
フレームカウンタBのカウンタ値B1,B2,B3が共
に3の場合に、フレームの直前にインターバルタイマ
割り込み(1)が行われ、フレームとフレームの間
にインターバルタイマ割り込み(2)が、フレームと
フレームの間にインターバルタイマ割り込み(3)が
行われて、間隔テーブル220が更新される様子を表し
ている。
【0040】−1,−1,−1は、それぞれイン
ターバルタイマ割り込みがインターバルタイマ処理部2
01に入力することにより更新されるカレントフレーム
カウンタ値であり、(カレントフレームカウンタ値)=
(カレントフレームカウンタ値)−(フレームカウンタ
Aのカウンタ値)の更新を実行した後の値である。
ターバルタイマ割り込みがインターバルタイマ処理部2
01に入力することにより更新されるカレントフレーム
カウンタ値であり、(カレントフレームカウンタ値)=
(カレントフレームカウンタ値)−(フレームカウンタ
Aのカウンタ値)の更新を実行した後の値である。
【0041】また、−2,−2,−2は、それぞ
れタスク終了時に(カレントフレームカウンタ値)=
(カレントフレームカウンタ値)+(フレームカウンタ
Bのカウンタ値)の更新を実行した後の値である。
れタスク終了時に(カレントフレームカウンタ値)=
(カレントフレームカウンタ値)+(フレームカウンタ
Bのカウンタ値)の更新を実行した後の値である。
【0042】すなわち、カレントフレームカウンタ値
は、インターバルタイマ割り込みとタスク終了の度に、
上記のように更新される。
は、インターバルタイマ割り込みとタスク終了の度に、
上記のように更新される。
【0043】また、複数のタスクのカレントフレームカ
ウンタ値が同時に0になった場合、各タスクの実行優先
権の情報が格納されているプライオリティテーブル(図
示せず)を参照して、競合しているタスクのうち実行優
先権の高い方のタスクを実行する。
ウンタ値が同時に0になった場合、各タスクの実行優先
権の情報が格納されているプライオリティテーブル(図
示せず)を参照して、競合しているタスクのうち実行優
先権の高い方のタスクを実行する。
【0044】図4からわかるように、タスク1,2,3
は、周期的にタスク1→タスク2→タスク3の順に実行
される。このように、音声信号処理や画像信号処理など
のマルチメディアシステムでは、周期的にタスクが実行
されることが多い。このような周期性を有するシステム
においては、将来実行されるタスクを予測することは比
較的容易である。
は、周期的にタスク1→タスク2→タスク3の順に実行
される。このように、音声信号処理や画像信号処理など
のマルチメディアシステムでは、周期的にタスクが実行
されることが多い。このような周期性を有するシステム
においては、将来実行されるタスクを予測することは比
較的容易である。
【0045】本発明のリアルタイムOSを搭載した情報
処理装置は、実行されるタスクの周期性を用いて次に説
明するタスクの予測処理を行う。
処理装置は、実行されるタスクの周期性を用いて次に説
明するタスクの予測処理を行う。
【0046】インターバルタイマ処理部201が、間隔
テーブル220及び予測間隔テーブル221を更新した
後、インターバルタイマ処理部201は次期実行タスク
部202を呼び出し、予測間隔テーブル221の予測フ
レームカウンタ値から次のカウンタ更新時に実行要求が
でるタスクを検出し、さらにその中から最初に実行され
るタスクを検出する。
テーブル220及び予測間隔テーブル221を更新した
後、インターバルタイマ処理部201は次期実行タスク
部202を呼び出し、予測間隔テーブル221の予測フ
レームカウンタ値から次のカウンタ更新時に実行要求が
でるタスクを検出し、さらにその中から最初に実行され
るタスクを検出する。
【0047】予測間隔テーブル221は、数回後のイン
ターバルタイマ割り込み時に間隔テーブル220が示す
内容を先行して示すテーブルで、図5に示すように各タ
スクID−1に対して予測フレームカウンタを設けてお
り、各予測フレームカウンタは、間隔テーブル220の
カレントフレームカウンタと同様な動作を行う。
ターバルタイマ割り込み時に間隔テーブル220が示す
内容を先行して示すテーブルで、図5に示すように各タ
スクID−1に対して予測フレームカウンタを設けてお
り、各予測フレームカウンタは、間隔テーブル220の
カレントフレームカウンタと同様な動作を行う。
【0048】図6は、図4の間隔テーブル220の更新
に対応した予測間隔テーブル221の更新を示す図であ
る。
に対応した予測間隔テーブル221の更新を示す図であ
る。
【0049】間隔テーブル220と同様に、予測間隔テ
ーブル221はインターバルタイマ処理部201により
更新されるが、更新後のカレントフレームカウンタ値に
より更新の方法が異なり、次のように予測フレームカウ
ンタのカウンタ値(予測フレームカウンタ値)を更新す
る。
ーブル221はインターバルタイマ処理部201により
更新されるが、更新後のカレントフレームカウンタ値に
より更新の方法が異なり、次のように予測フレームカウ
ンタのカウンタ値(予測フレームカウンタ値)を更新す
る。
【0050】1)カレントフレームカウンタ値≦0のと
き (予測フレームカウンタ値)=(カレントフレームカウ
ンタ値)−(フレームカウンタAのカウンタ値)+(フ
レームカウンタBのカウンタ値) 2)カレントフレームカウンタ値>0のとき (予測フレームカウンタ値)=(カレントフレームカウ
ンタ値)−(フレームカウンタAのカウンタ値) 予測フレームカウンタ値が0以下になると次のフレーム
で該当するタスクの実行要求があるものと見なす。図6
に示す例において、予測フレームカウンタは、1フレー
ム前のカレントフレームカウンタ値を求めて予測値とし
て用いているが、数フレーム前のカレントフレームカウ
ンタ値を求めて予測値として用いても良い。
き (予測フレームカウンタ値)=(カレントフレームカウ
ンタ値)−(フレームカウンタAのカウンタ値)+(フ
レームカウンタBのカウンタ値) 2)カレントフレームカウンタ値>0のとき (予測フレームカウンタ値)=(カレントフレームカウ
ンタ値)−(フレームカウンタAのカウンタ値) 予測フレームカウンタ値が0以下になると次のフレーム
で該当するタスクの実行要求があるものと見なす。図6
に示す例において、予測フレームカウンタは、1フレー
ム前のカレントフレームカウンタ値を求めて予測値とし
て用いているが、数フレーム前のカレントフレームカウ
ンタ値を求めて予測値として用いても良い。
【0051】図6の予測フレームカウンタ値により、実
行タスクがどのように処理されるのかを図7に示す概念
的なタイミングチャートで説明すると、図7からわかる
ようにT1のタイミングではタスク2の予測フレームカ
ウンタ値が0なので、次期実行タスク予測部202は、
フレームの実行タスクをタスク2と予測する。同様に
T2のタイミングでは、タスク3の予測フレームカウン
タ値が0なのでフレームの実行タスクをタスク3と予
測する。
行タスクがどのように処理されるのかを図7に示す概念
的なタイミングチャートで説明すると、図7からわかる
ようにT1のタイミングではタスク2の予測フレームカ
ウンタ値が0なので、次期実行タスク予測部202は、
フレームの実行タスクをタスク2と予測する。同様に
T2のタイミングでは、タスク3の予測フレームカウン
タ値が0なのでフレームの実行タスクをタスク3と予
測する。
【0052】また、次期実行タスクがどのように処理さ
れるのかを図8を参照し、別の例で説明する。
れるのかを図8を参照し、別の例で説明する。
【0053】タスク1、タスク2、タスク3の順に実行
優先権が高いとし、フレームでは、タスク1〜タスク
3の3つの実行要求が同時に発生し、フレームでは、
タスク1、タスク2の2つの実行要求が同時に発生する
ものとして説明する。
優先権が高いとし、フレームでは、タスク1〜タスク
3の3つの実行要求が同時に発生し、フレームでは、
タスク1、タスク2の2つの実行要求が同時に発生する
ものとして説明する。
【0054】フレームではタスク3の実行優先権が低
いため、タスク1及びタスク2の実行中はタスク3の実
行は中断され、タスク1、タスク2の終了を待ってフレ
ームで完了したタスク3−1の後続の処理すなわちタ
スク3−2の実行を行う。このように、実行優先権が低
いタスクの一部は、実行優先権の高いタスクの処理の合
間に、複数のフレームに渡って実行処理される。
いため、タスク1及びタスク2の実行中はタスク3の実
行は中断され、タスク1、タスク2の終了を待ってフレ
ームで完了したタスク3−1の後続の処理すなわちタ
スク3−2の実行を行う。このように、実行優先権が低
いタスクの一部は、実行優先権の高いタスクの処理の合
間に、複数のフレームに渡って実行処理される。
【0055】まず時刻T1で、フレームで実行要求の
出ているタスクを確認する。上記の例では、タスク1、
タスク2、タスク3の3つのタスクについて実行要求が
出されていることを検知する。次に実行優先権を調べ
て、タスク1→タスク2→タスク3の順に実行されるべ
きことを予測する。この処理結果が、フレームの前の
フレームで予測された結果と照合しされ、予測が間違っ
ている場合は、修正が行われる。
出ているタスクを確認する。上記の例では、タスク1、
タスク2、タスク3の3つのタスクについて実行要求が
出されていることを検知する。次に実行優先権を調べ
て、タスク1→タスク2→タスク3の順に実行されるべ
きことを予測する。この処理結果が、フレームの前の
フレームで予測された結果と照合しされ、予測が間違っ
ている場合は、修正が行われる。
【0056】これと同時に、時刻T1で、フレームで
実行されるタスクを予測する。上記の例では、タスク
1、タスク2がフレームで実行されるべきタスクであ
る。次に実行優先権を調べて、フレームで最初に実行
されるタスクをタスク1と認識し、この予測処理により
事前に次期実行タスクを取得する。
実行されるタスクを予測する。上記の例では、タスク
1、タスク2がフレームで実行されるべきタスクであ
る。次に実行優先権を調べて、フレームで最初に実行
されるタスクをタスク1と認識し、この予測処理により
事前に次期実行タスクを取得する。
【0057】次に、次期実行タスク予測部202によ
り、データ置き替え判定部203が呼び出される。この
データ置き替え判定部203は、現在実行中の実行タス
クと、次のフレームで実行される次期タスクが異なる場
合、データ置き替えが必要と判断してDMAコマンド生
成部204を呼び出し、同一の場合、データ置き替えが
不必要と判断して周期間隔検出部207を呼び出す。
り、データ置き替え判定部203が呼び出される。この
データ置き替え判定部203は、現在実行中の実行タス
クと、次のフレームで実行される次期タスクが異なる場
合、データ置き替えが必要と判断してDMAコマンド生
成部204を呼び出し、同一の場合、データ置き替えが
不必要と判断して周期間隔検出部207を呼び出す。
【0058】図2のDMAコマンド生成部204は、図
9に示すように、DMAコマンドスタック登録部901
と、DMA転送判定部902と、DMAコマンド所得部
903と、DMAコマンド待ち状態判定部904とから
構成され、図2の実行DMAコマンド発行部206は、
DMA転送命令開始部906と、データメモリマップ生
成部907とから構成される。
9に示すように、DMAコマンドスタック登録部901
と、DMA転送判定部902と、DMAコマンド所得部
903と、DMAコマンド待ち状態判定部904とから
構成され、図2の実行DMAコマンド発行部206は、
DMA転送命令開始部906と、データメモリマップ生
成部907とから構成される。
【0059】DMAコマンドスタック登録部901は、
DMA転送命令を行う情報からなるDMAコマンドを生
成し、DMAコマンドスタック223に格納する。既に
他のDMAコマンドが格納されている場合には、DMA
コマンドスタック223の最初に格納し、既に格納され
ているDMAコマンドは順に後方にシフトする。DMA
コマンドスタック223は、図10に示すようにDMA
コマンド1〜DMAコマンドnを新しいDMAコマンド
から古いDMAコマンドの順に格納している。
DMA転送命令を行う情報からなるDMAコマンドを生
成し、DMAコマンドスタック223に格納する。既に
他のDMAコマンドが格納されている場合には、DMA
コマンドスタック223の最初に格納し、既に格納され
ているDMAコマンドは順に後方にシフトする。DMA
コマンドスタック223は、図10に示すようにDMA
コマンド1〜DMAコマンドnを新しいDMAコマンド
から古いDMAコマンドの順に格納している。
【0060】また、DMAコマンドスタック登録部90
1は、DMAコマンドスタック223を構成するDMA
コマンドの情報をオーバレイデータ管理テーブル222
から所得する。オーバレイデータ管理テーブル222
は、図11に示すように、各タスクに対する転送元開始
アドレス、転送先開始アドレス及び転送サイズから構成
される。
1は、DMAコマンドスタック223を構成するDMA
コマンドの情報をオーバレイデータ管理テーブル222
から所得する。オーバレイデータ管理テーブル222
は、図11に示すように、各タスクに対する転送元開始
アドレス、転送先開始アドレス及び転送サイズから構成
される。
【0061】次にDMA転送判定部902がDMAコマ
ンドスタック登録部901により起動し、前に実行され
たDMA転送命令が転送完了しているか否かを判定す
る。DMA転送命令は、図2のDMAペリフェラル部1
04のバッファメモリ(図示せず)に転送されるが、こ
のDMA転送命令は、外部メモリ106からキャッシュ
メモリ105にタスクデータを転送するDMAバスが解
放されないと転送完了することができない。
ンドスタック登録部901により起動し、前に実行され
たDMA転送命令が転送完了しているか否かを判定す
る。DMA転送命令は、図2のDMAペリフェラル部1
04のバッファメモリ(図示せず)に転送されるが、こ
のDMA転送命令は、外部メモリ106からキャッシュ
メモリ105にタスクデータを転送するDMAバスが解
放されないと転送完了することができない。
【0062】DMA転送命令が転送中である場合は、こ
れから実行しようとするDMA転送命令は実行されず、
図2の周期間隔検出部207に処理が移り、転送が完了
している場合は、次のDMAコマンド所得部903を起
動する。
れから実行しようとするDMA転送命令は実行されず、
図2の周期間隔検出部207に処理が移り、転送が完了
している場合は、次のDMAコマンド所得部903を起
動する。
【0063】また、前に転送したDMA転送命令が転送
完了したことを示すDMA転送終了通知がシステムから
発行された場合、及びDMA転送判定部902から起動
命令が発行された場合、DMAコマンド所得部903
は、DMAコマンドスタック223から一番古く発行さ
れたDMAコマンドを所得する。実行されなかったDM
A転送命令は、DMAコマンドスタック223の一番古
いスタックに格納されているので、DMAコマンド所得
部903は優先的に実行されなかったDMA転送命令を
DMAコマンドスタック223から呼び出す。
完了したことを示すDMA転送終了通知がシステムから
発行された場合、及びDMA転送判定部902から起動
命令が発行された場合、DMAコマンド所得部903
は、DMAコマンドスタック223から一番古く発行さ
れたDMAコマンドを所得する。実行されなかったDM
A転送命令は、DMAコマンドスタック223の一番古
いスタックに格納されているので、DMAコマンド所得
部903は優先的に実行されなかったDMA転送命令を
DMAコマンドスタック223から呼び出す。
【0064】次に、DMAコマンド待ち状態判定部90
4は、DMAコマンド所得部903がDMAコマンドス
タック223からDMAコマンドを所得したか否かを判
定し、DMAコマンドを所得しなかった場合は、処理す
べきDMAコマンドがDMAコマンドスタック223に
存在しないと判定して、図2の周期間隔検出部207を
起動し、DMAコマンドを所得した場合は、ターゲット
領域検出部205を起動する。
4は、DMAコマンド所得部903がDMAコマンドス
タック223からDMAコマンドを所得したか否かを判
定し、DMAコマンドを所得しなかった場合は、処理す
べきDMAコマンドがDMAコマンドスタック223に
存在しないと判定して、図2の周期間隔検出部207を
起動し、DMAコマンドを所得した場合は、ターゲット
領域検出部205を起動する。
【0065】次に、ターゲット領域検出部205が起動
し、取得したDMAコマンドが有するDMA転送情報と
データメモリマップテーブル224から現在の実行タス
クと次に実行されるタスクのオーバレイ領域の共有領域
を検出し、その共有領域をDMA転送の対象領域とす
る。
し、取得したDMAコマンドが有するDMA転送情報と
データメモリマップテーブル224から現在の実行タス
クと次に実行されるタスクのオーバレイ領域の共有領域
を検出し、その共有領域をDMA転送の対象領域とす
る。
【0066】データメモリマップテーブル224は、図
12に示すように内部記憶装置のアドレスを表すインデ
ックス情報及びタスクIDから構成される。例えば、イ
ンデックス0は内部記憶装置の0から255番地を表現
するというように、システム構成上適切なアドレス配置
となるように構成する。
12に示すように内部記憶装置のアドレスを表すインデ
ックス情報及びタスクIDから構成される。例えば、イ
ンデックス0は内部記憶装置の0から255番地を表現
するというように、システム構成上適切なアドレス配置
となるように構成する。
【0067】次に、DMA転送命令開始部906がター
ゲット領域検出部205により起動し、DMA転送命令
の実行に必要な情報すなわち実行DMAコマンドをDM
Aペリフェラル部104に通知し、DMA転送を開始す
る。それにより置き替えられる内部記憶装置上のデータ
マップをデータメモリマップ生成部907が受け取り、
データメモリマップテーブル224を更新する。データ
メモリマップテーブル224は常に、内部記憶装置上に
どのタスクデータが配置されているかをタスクレベルで
記憶している。
ゲット領域検出部205により起動し、DMA転送命令
の実行に必要な情報すなわち実行DMAコマンドをDM
Aペリフェラル部104に通知し、DMA転送を開始す
る。それにより置き替えられる内部記憶装置上のデータ
マップをデータメモリマップ生成部907が受け取り、
データメモリマップテーブル224を更新する。データ
メモリマップテーブル224は常に、内部記憶装置上に
どのタスクデータが配置されているかをタスクレベルで
記憶している。
【0068】次に図2に戻って、周期間隔検出部207
は、間隔テーブル220を参照して実行中のタスクの後
に実行しなければならないタスクを検出し、実行すべき
タスクが存在しない場合はカレントタスク部の処理に移
行し、実行すべきタスクが存在する場合は、カレントタ
スク判定部208の処理に移行する。
は、間隔テーブル220を参照して実行中のタスクの後
に実行しなければならないタスクを検出し、実行すべき
タスクが存在しない場合はカレントタスク部の処理に移
行し、実行すべきタスクが存在する場合は、カレントタ
スク判定部208の処理に移行する。
【0069】カレントタスク判定部208は、周期間隔
検出部207で検出されたタスクの中から実行中のタス
クの直後に実行しなければならないタスクを検出し、現
在実行中のタスクと同一であればカレントタスク部21
1の処理に移行し、異なる場合は待ち合わせ登録部20
9の処理に移行する。
検出部207で検出されたタスクの中から実行中のタス
クの直後に実行しなければならないタスクを検出し、現
在実行中のタスクと同一であればカレントタスク部21
1の処理に移行し、異なる場合は待ち合わせ登録部20
9の処理に移行する。
【0070】待ち合わせ登録部209は、カレントタス
ク判定部208で判定された実行中のタスクの直後に実
行されるタスクを待ち合わせテーブル225に登録する
と共に、タスクスイッチ部210を起動する。
ク判定部208で判定された実行中のタスクの直後に実
行されるタスクを待ち合わせテーブル225に登録する
と共に、タスクスイッチ部210を起動する。
【0071】待ち合わせテーブル225は、DMAコマ
ンドスタック223と同様な構成であり、各DMAコマ
ンドに対する優先権の情報とタスクIDとが時系列に格
納されている。
ンドスタック223と同様な構成であり、各DMAコマ
ンドに対する優先権の情報とタスクIDとが時系列に格
納されている。
【0072】タスクスイッチ部210は、待ち合わせテ
ーブル225に登録してある実行タスクのうち、優先権
が一番高いタスクへの切り替えを行い、切り替えた後に
カレントタスク部211を起動する。なお、待ち合わせ
テーブル225に登録してある実行タスクのうち優先権
が同じタスクが複数ある場合は、古い実行タスクを優先
してその実行タスクに切り替える。
ーブル225に登録してある実行タスクのうち、優先権
が一番高いタスクへの切り替えを行い、切り替えた後に
カレントタスク部211を起動する。なお、待ち合わせ
テーブル225に登録してある実行タスクのうち優先権
が同じタスクが複数ある場合は、古い実行タスクを優先
してその実行タスクに切り替える。
【0073】最後に、カレントタスク部211は、キャ
ッシュメモリに格納されたタスクに対して実行命令を発
行する。
ッシュメモリに格納されたタスクに対して実行命令を発
行する。
【0074】以上説明したように本発明によるリアルタ
イムOSを搭載した情報処理装置において、インターバ
ルタイマ割り込みによりインターバルタイマ処理部20
1が起動してからカレントタスク部211の処理が完了
するまでの一連の処理は、通常のバスを用いて命令が転
送されるが、外部メモリ106とキャッシュメモリ10
5との間のデータ転送は、上記の処理と独立して、高速
のDMA転送により行われる。
イムOSを搭載した情報処理装置において、インターバ
ルタイマ割り込みによりインターバルタイマ処理部20
1が起動してからカレントタスク部211の処理が完了
するまでの一連の処理は、通常のバスを用いて命令が転
送されるが、外部メモリ106とキャッシュメモリ10
5との間のデータ転送は、上記の処理と独立して、高速
のDMA転送により行われる。
【0075】従って、データ量が多く処理時間が多くか
かる外部メモリ106とキャッシュメモリ105との間
のデータ転送が高速化すると共に、リアルタイムOSを
搭載した情報処理装置の回路部分(例えばCPU部分な
ど)の負担を大幅に減少させることができることから、
インターバルタイマ処理部201からカレントタスク部
211までの一連の処理の待ち時間が減少し、一連の処
理を高速化することができる。
かる外部メモリ106とキャッシュメモリ105との間
のデータ転送が高速化すると共に、リアルタイムOSを
搭載した情報処理装置の回路部分(例えばCPU部分な
ど)の負担を大幅に減少させることができることから、
インターバルタイマ処理部201からカレントタスク部
211までの一連の処理の待ち時間が減少し、一連の処
理を高速化することができる。
【0076】次に上記に説明した本発明のリアルタイム
OSを搭載した情報処理装置の動作について、具体例を
用いて説明する。
OSを搭載した情報処理装置の動作について、具体例を
用いて説明する。
【0077】図13(a)は、キャッシュメモリ105
の構成と、キャッシュメモリ105を構成するメモリ領
域1,2を使用しているタスク1〜タスク4のオーバレ
イ領域を表している。キャッシュメモリ105は、1ブ
ロックが100ワードからなるブロック単位に構成され
ており、メモリ領域1,2とも2ブロックを用いて構成
されている。従って、メモリ領域1,2とも200ワー
ドずつのメモリ容量を有している。メモリ領域1は、タ
スク1及びタスク3の各オーバレイ領域に用いられ、メ
モリ領域2は、タスク2及びタスク4の各オーバレイ領
域に用いられているとして説明する。
の構成と、キャッシュメモリ105を構成するメモリ領
域1,2を使用しているタスク1〜タスク4のオーバレ
イ領域を表している。キャッシュメモリ105は、1ブ
ロックが100ワードからなるブロック単位に構成され
ており、メモリ領域1,2とも2ブロックを用いて構成
されている。従って、メモリ領域1,2とも200ワー
ドずつのメモリ容量を有している。メモリ領域1は、タ
スク1及びタスク3の各オーバレイ領域に用いられ、メ
モリ領域2は、タスク2及びタスク4の各オーバレイ領
域に用いられているとして説明する。
【0078】また図13(b)は、外部メモリ106の
メモリ構成を表しており、200ワードずつに分割され
た領域にタスク1〜タスク4がそれぞれ格納されてい
る。
メモリ構成を表しており、200ワードずつに分割され
た領域にタスク1〜タスク4がそれぞれ格納されてい
る。
【0079】図13(c)は、オーバレイ管理テーブル
222であり、このテーブルからタスク1は、転送デー
タサイズが200ワードであり、外部メモリ106の開
始アドレス0ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
222であり、このテーブルからタスク1は、転送デー
タサイズが200ワードであり、外部メモリ106の開
始アドレス0ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
【0080】同様に、タスク2は、転送データサイズが
200ワードであり、外部メモリ106の開始アドレス
200ワードからキャッシュメモリ105の開始アドレ
ス200ワードへ転送され、タスク3は、転送データサ
イズが200ワードであり、外部メモリ106の開始ア
ドレス400ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
200ワードであり、外部メモリ106の開始アドレス
200ワードからキャッシュメモリ105の開始アドレ
ス200ワードへ転送され、タスク3は、転送データサ
イズが200ワードであり、外部メモリ106の開始ア
ドレス400ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
【0081】次に図14を参照して、図13に示す外部
メモリ106に格納されたタスク1〜タスク3が、キャ
ッシュメモリ105に転送され、また逆にキャッシュメ
モリ105から外部メモリ106に保存されるタイミン
グと、データメモリマップテーブル224の更新につい
て説明する。
メモリ106に格納されたタスク1〜タスク3が、キャ
ッシュメモリ105に転送され、また逆にキャッシュメ
モリ105から外部メモリ106に保存されるタイミン
グと、データメモリマップテーブル224の更新につい
て説明する。
【0082】図14(a)において、時刻T1でタスク
1が実行開始されると同時に、タスク1の実行開始前に
実行完了したタスクが外部メモリ106に保存開始され
る。このタスクの外部メモリ106への保存が完了する
と、DMAバスが解放されるので、このDMAバスを用
いてタスク2が外部メモリ106からキャッシュメモリ
105にデータ転送される。
1が実行開始されると同時に、タスク1の実行開始前に
実行完了したタスクが外部メモリ106に保存開始され
る。このタスクの外部メモリ106への保存が完了する
と、DMAバスが解放されるので、このDMAバスを用
いてタスク2が外部メモリ106からキャッシュメモリ
105にデータ転送される。
【0083】次に時刻T2において、タスク2は既にキ
ャッシュメモリ105にデータ転送が完了しているの
で、タスク2の実行が直ちに開始される。これと同時
に、タスク1が外部メモリ106にDMA転送により保
存され、保存完了すると、タスク3がキャッシュメモリ
105にDMA転送される。
ャッシュメモリ105にデータ転送が完了しているの
で、タスク2の実行が直ちに開始される。これと同時
に、タスク1が外部メモリ106にDMA転送により保
存され、保存完了すると、タスク3がキャッシュメモリ
105にDMA転送される。
【0084】同様に、時刻T3では、タスク3が実行開
始されると同時にタスク2が保存開始され、タスク2の
保存が完了すると、タスク3の次に実行されるタスクが
キャッシュメモリ105にDMA転送される。
始されると同時にタスク2が保存開始され、タスク2の
保存が完了すると、タスク3の次に実行されるタスクが
キャッシュメモリ105にDMA転送される。
【0085】なお、時刻T2において、タスク2のDM
A転送が完了していない場合、リアルタイムOSを搭載
した情報処理装置は、タスク2のDMA転送を待って、
タスク2の実行を開始する。この処理は、他のタスクに
ついても同様である。
A転送が完了していない場合、リアルタイムOSを搭載
した情報処理装置は、タスク2のDMA転送を待って、
タスク2の実行を開始する。この処理は、他のタスクに
ついても同様である。
【0086】次に図14(b)を参照して、上記に説明
したタイミングT1〜T3におけるデータメモリマップ
テーブル224の状態について説明する。
したタイミングT1〜T3におけるデータメモリマップ
テーブル224の状態について説明する。
【0087】時刻T1では、キャッシュメモリ105の
アドレス0〜200(ワード)がタスク1によって占有
されていることを表している。次に時刻T2では、保存
開始されたタスク1がキャッシュメモリ105のアドレ
ス0〜200(ワード)を、実行開始したタスク2がキ
ャッシュメモリ105のアドレス200〜400(ワー
ド)を占有していることを表している。
アドレス0〜200(ワード)がタスク1によって占有
されていることを表している。次に時刻T2では、保存
開始されたタスク1がキャッシュメモリ105のアドレ
ス0〜200(ワード)を、実行開始したタスク2がキ
ャッシュメモリ105のアドレス200〜400(ワー
ド)を占有していることを表している。
【0088】また時刻T3では、タスク1の外部メモリ
106への保存が完了しているので、図13(a)のメ
モリ領域1すなわち図13(c)に示す転送先開始アド
レス0に対して、タスク3が既にDMA転送が完了して
おり、このタスクデータを用いてタスク3が実行開始さ
れる。
106への保存が完了しているので、図13(a)のメ
モリ領域1すなわち図13(c)に示す転送先開始アド
レス0に対して、タスク3が既にDMA転送が完了して
おり、このタスクデータを用いてタスク3が実行開始さ
れる。
【0089】すなわち図13(a)に示すように、メモ
リ領域1すなわちアドレス0〜200は、タスク1とタ
スク3のオーバレイ領域であり、タスク1とタスク3の
データが交互に置き替わる次に図15,16を参照し
て、タスク1〜タスク3のオーバレイ領域がキャッシュ
メモリ105で互いに重なり合っている場合について、
タスク1〜タスク3が、キャッシュメモリ105に転送
され、また逆にキャッシュメモリ105から外部メモリ
106に保存されるタイミングと、データメモリマップ
テーブル224の更新について、及びタイミングT1〜
T3におけるデータメモリマップテーブル224の状態
について説明する。
リ領域1すなわちアドレス0〜200は、タスク1とタ
スク3のオーバレイ領域であり、タスク1とタスク3の
データが交互に置き替わる次に図15,16を参照し
て、タスク1〜タスク3のオーバレイ領域がキャッシュ
メモリ105で互いに重なり合っている場合について、
タスク1〜タスク3が、キャッシュメモリ105に転送
され、また逆にキャッシュメモリ105から外部メモリ
106に保存されるタイミングと、データメモリマップ
テーブル224の更新について、及びタイミングT1〜
T3におけるデータメモリマップテーブル224の状態
について説明する。
【0090】図15(a)は、図13(a)と同様に、
キャッシュメモリ105の構成とメモリ領域3〜メモリ
領域5を使用しているタスク1〜タスク3のオーバレイ
領域を表している。メモリ領域3,4,5は、それぞれ
1ブロック、2ブロック及び1ブロックを用いて構成さ
れている。従って、メモリ領域3,4,5はそれぞれ1
00ワード、200ワード、100ワードずつのメモリ
容量を有している。
キャッシュメモリ105の構成とメモリ領域3〜メモリ
領域5を使用しているタスク1〜タスク3のオーバレイ
領域を表している。メモリ領域3,4,5は、それぞれ
1ブロック、2ブロック及び1ブロックを用いて構成さ
れている。従って、メモリ領域3,4,5はそれぞれ1
00ワード、200ワード、100ワードずつのメモリ
容量を有している。
【0091】タスク1のオーバレイ領域は、メモリ領域
3及びメモリ領域4を用いて構成され、タスク2のオー
バレイ領域は、メモリ領域4及びメモリ領域5を用いて
構成され、タスク3のオーバレイ領域は、メモリ領域4
を用いて構成されている。従って、タスク1〜タスク3
の各オーバレイ領域は、キャッシュメモリ105で互い
に重なり合っている。
3及びメモリ領域4を用いて構成され、タスク2のオー
バレイ領域は、メモリ領域4及びメモリ領域5を用いて
構成され、タスク3のオーバレイ領域は、メモリ領域4
を用いて構成されている。従って、タスク1〜タスク3
の各オーバレイ領域は、キャッシュメモリ105で互い
に重なり合っている。
【0092】また図15(b)は、外部メモリ106の
メモリ構成を表しており、300ワードずつに分割され
たメモリ領域にタスク1及びタスク2がそれぞれ格納さ
れ、200ワード分のメモリ領域にタスク3が格納され
る。
メモリ構成を表しており、300ワードずつに分割され
たメモリ領域にタスク1及びタスク2がそれぞれ格納さ
れ、200ワード分のメモリ領域にタスク3が格納され
る。
【0093】図13(c)は、オーバレイ管理テーブル
222であり、このテーブルからタスク1は、転送デー
タサイズが300ワードであり、外部メモリ106の開
始アドレス0ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
222であり、このテーブルからタスク1は、転送デー
タサイズが300ワードであり、外部メモリ106の開
始アドレス0ワードからキャッシュメモリ105の開始
アドレス0ワードへ転送されることがわかる。
【0094】同様に、タスク2は、転送データサイズが
300ワードであり、外部メモリ106の開始アドレス
300ワードからキャッシュメモリ105の開始アドレ
ス100ワードへ転送され、タスク3は、転送データサ
イズが200ワードであり、外部メモリ106の開始ア
ドレス600ワードからキャッシュメモリ105の開始
アドレス100ワードへ転送されることがわかる。
300ワードであり、外部メモリ106の開始アドレス
300ワードからキャッシュメモリ105の開始アドレ
ス100ワードへ転送され、タスク3は、転送データサ
イズが200ワードであり、外部メモリ106の開始ア
ドレス600ワードからキャッシュメモリ105の開始
アドレス100ワードへ転送されることがわかる。
【0095】図16(a)は図14(a)と同様に、図
15に示す外部メモリ106に格納されたタスク1〜タ
スク3が、キャッシュメモリ105に転送され、また逆
にキャッシュメモリ105から外部メモリ106に保存
されるタイミングを表すが、図14(a)と同様なので
説明を省略する。
15に示す外部メモリ106に格納されたタスク1〜タ
スク3が、キャッシュメモリ105に転送され、また逆
にキャッシュメモリ105から外部メモリ106に保存
されるタイミングを表すが、図14(a)と同様なので
説明を省略する。
【0096】次に図16(b)を参照して、図16
(a)のタイミングT1〜T3におけるデータメモリマ
ップテーブル224の状態について説明する。
(a)のタイミングT1〜T3におけるデータメモリマ
ップテーブル224の状態について説明する。
【0097】時刻T1では、キャッシュメモリ105の
アドレス0〜300(ワード)がタスク1によって占有
されていることを表している。次に時刻T2では、保存
開始されたタスク1がキャッシュメモリ105のアドレ
ス0〜100(ワード)を、実行開始したタスク2がキ
ャッシュメモリ105のアドレス100〜400(ワー
ド)を占有していることを表している。
アドレス0〜300(ワード)がタスク1によって占有
されていることを表している。次に時刻T2では、保存
開始されたタスク1がキャッシュメモリ105のアドレ
ス0〜100(ワード)を、実行開始したタスク2がキ
ャッシュメモリ105のアドレス100〜400(ワー
ド)を占有していることを表している。
【0098】また時刻T3では、インデックス1,2、
すなわちキャッシュメモリ105のアドレス100〜3
00にタスク2のデータがタスク3のデータに置換され
ており、このタスクデータを用いてタスク3が実行され
る。すなわち、キャッシュメモリ105のアドレス10
0〜300は、タスク1→タスク2→タスク3のタスク
データに順に置き換わる。このように、外部メモリ10
6とキャッシュメモリ105間のDMA転送は、タスク
1〜タスク3の全タスクデータに対して行われるのでは
なく、オーバレイ領域の共通領域に対して実行される。
すなわちキャッシュメモリ105のアドレス100〜3
00にタスク2のデータがタスク3のデータに置換され
ており、このタスクデータを用いてタスク3が実行され
る。すなわち、キャッシュメモリ105のアドレス10
0〜300は、タスク1→タスク2→タスク3のタスク
データに順に置き換わる。このように、外部メモリ10
6とキャッシュメモリ105間のDMA転送は、タスク
1〜タスク3の全タスクデータに対して行われるのでは
なく、オーバレイ領域の共通領域に対して実行される。
【0099】例えば、時刻T2から時刻T3に推移する
際、タスク2はインデックス1〜3のタスクデータが外
部メモリ106に待避するのではなく、インデックス
1,2のタスクデータのみが外部メモリ106に待避す
る。
際、タスク2はインデックス1〜3のタスクデータが外
部メモリ106に待避するのではなく、インデックス
1,2のタスクデータのみが外部メモリ106に待避す
る。
【0100】また、時刻T3の次のフレームで再度タス
ク1が実行される場合、タスクデータの一部は、キャッ
シュメモリ105のインデックス0に残っているので、
キャッシュメモリ105のインデックス1,2の分のタ
スクデータを外部メモリ106からキャッシュメモリ1
05へDMA転送するだけでよい。
ク1が実行される場合、タスクデータの一部は、キャッ
シュメモリ105のインデックス0に残っているので、
キャッシュメモリ105のインデックス1,2の分のタ
スクデータを外部メモリ106からキャッシュメモリ1
05へDMA転送するだけでよい。
【0101】このように、本発明によるリアルタイムO
Sを搭載した情報処理装置は、各タスクデータ又は音声
データや画像データなどの処理すべきデータの各オーバ
レイ領域の共通領域に対して、DMA転送を行うので、
DMA転送するタスクデータ量又は音声データや画像デ
ータなどのデータ量を実効的に低減できる。このため、
キャッシュメモリ105と外部メモリ106間のDMA
転送を効率よく行うことができるので、キャッシュメモ
リ105と外部メモリ106間のDMA転送を高速に行
うことができる。
Sを搭載した情報処理装置は、各タスクデータ又は音声
データや画像データなどの処理すべきデータの各オーバ
レイ領域の共通領域に対して、DMA転送を行うので、
DMA転送するタスクデータ量又は音声データや画像デ
ータなどのデータ量を実効的に低減できる。このため、
キャッシュメモリ105と外部メモリ106間のDMA
転送を効率よく行うことができるので、キャッシュメモ
リ105と外部メモリ106間のDMA転送を高速に行
うことができる。
【0102】さらに、無駄なデータ転送を行わないの
で、無駄なデータ転送によって生じていた消費電力を低
減できるという効果がある。
で、無駄なデータ転送によって生じていた消費電力を低
減できるという効果がある。
【0103】なお、図11で示したオーバレイデータ管
理テーブル222では、転送元開始アドレス、転送先開
始アドレス、転送サイズで構成したが、他の構成でも実
施可能である。図17で示すように、転送元開始アドレ
ス、転送先開始アドレス、転送先終了アドレス又は転送
元終了アドレスのように構成しても良い。
理テーブル222では、転送元開始アドレス、転送先開
始アドレス、転送サイズで構成したが、他の構成でも実
施可能である。図17で示すように、転送元開始アドレ
ス、転送先開始アドレス、転送先終了アドレス又は転送
元終了アドレスのように構成しても良い。
【0104】また、図12で示したデータメモリマップ
テーブル224では、内部記憶装置のアドレスをインデ
ックスを用いて表していたが、図18で示すように、イ
ンデックスの代わりに内部記憶装置の開始アドレスと、
データサイズあるいは終了アドレスで構成しても良い。
この場合、インデックスを使用した場合と比べてテーブ
ルサイズが大きくなる欠点があるが、オーバレイ領域の
管理を柔軟にできるという効果がある。
テーブル224では、内部記憶装置のアドレスをインデ
ックスを用いて表していたが、図18で示すように、イ
ンデックスの代わりに内部記憶装置の開始アドレスと、
データサイズあるいは終了アドレスで構成しても良い。
この場合、インデックスを使用した場合と比べてテーブ
ルサイズが大きくなる欠点があるが、オーバレイ領域の
管理を柔軟にできるという効果がある。
【0105】すなわち、図12に示すデータメモリテー
ブル222の方式では、メモリの分割が一定のメモリ容
量の単位で行われるのに対し、図18に示すデータメモ
リテーブルの方式では、各タスクIDに対しタスクデー
タサイズに適したメモリ容量に分割している。
ブル222の方式では、メモリの分割が一定のメモリ容
量の単位で行われるのに対し、図18に示すデータメモ
リテーブルの方式では、各タスクIDに対しタスクデー
タサイズに適したメモリ容量に分割している。
【0106】前者の方式では、1ブロックが256ワー
ド単位で分割されたメモリに257ワードのデータ量を
有するタスクが格納される場合、2ブロックすなわち5
12ワードのデータ転送が必要であるが、後者の方式で
は257ワード分のデータ転送を行うのみでよい。この
ため、データ転送を効率よく行うことができる。
ド単位で分割されたメモリに257ワードのデータ量を
有するタスクが格納される場合、2ブロックすなわち5
12ワードのデータ転送が必要であるが、後者の方式で
は257ワード分のデータ転送を行うのみでよい。この
ため、データ転送を効率よく行うことができる。
【0107】上記においては、外部メモリ106とキャ
ッシュメモリ105とのデータ転送とオーバレイについ
ては、タスクデータについてのみ説明したが、音声デー
タや画像データなどのデータについても同様に適用し得
る。
ッシュメモリ105とのデータ転送とオーバレイについ
ては、タスクデータについてのみ説明したが、音声デー
タや画像データなどのデータについても同様に適用し得
る。
【0108】また、図10に示すDMAコマンドスタッ
ク223は、新しいDMAコマンドを最初にして、順に
古いDMAコマンドを格納しているが、これを逆にし
て、最初に一番古いDMAコマンドを格納し、古い順番
に新しい方にDMAコマンドを格納するようにしても良
い。
ク223は、新しいDMAコマンドを最初にして、順に
古いDMAコマンドを格納しているが、これを逆にし
て、最初に一番古いDMAコマンドを格納し、古い順番
に新しい方にDMAコマンドを格納するようにしても良
い。
【0109】また、図14(a)の説明において、保存
するタスクのデータ転送が完了するのを待ってから、次
のフレームで実行するタスクをDMA転送していたが、
画像データのようにさらに大容量のデータを転送する場
合などは、外部メモリ106にタスクデータをDMA転
送により保存すると共に、これと平行して外部メモリ1
06からキャッシュメモリ105に次のフレームで実行
するタスクをDMA転送するようにしても良い。
するタスクのデータ転送が完了するのを待ってから、次
のフレームで実行するタスクをDMA転送していたが、
画像データのようにさらに大容量のデータを転送する場
合などは、外部メモリ106にタスクデータをDMA転
送により保存すると共に、これと平行して外部メモリ1
06からキャッシュメモリ105に次のフレームで実行
するタスクをDMA転送するようにしても良い。
【0110】また、上記に述べたリアルタイムOSを搭
載した情報処理装置をコンピュータを用いて構成するこ
とにより、音声データや画像データなどのマルチメディ
アデータをリアルタイムに処理し、かつコンパクトなハ
ードウェア構成でリアルタイムOSを搭載した情報処理
装置を提供することができる。
載した情報処理装置をコンピュータを用いて構成するこ
とにより、音声データや画像データなどのマルチメディ
アデータをリアルタイムに処理し、かつコンパクトなハ
ードウェア構成でリアルタイムOSを搭載した情報処理
装置を提供することができる。
【0111】さらに、本発明によるリアルタイムOSを
搭載した情報処理装置のプログラムをRAM,ROMな
どの半導体メモリや磁気ディスクなどの記録媒体に記憶
することにより、本発明のリアルタイムOSを搭載した
情報処理装置を容易に生産することができる。
搭載した情報処理装置のプログラムをRAM,ROMな
どの半導体メモリや磁気ディスクなどの記録媒体に記憶
することにより、本発明のリアルタイムOSを搭載した
情報処理装置を容易に生産することができる。
【0112】
【発明の効果】以上説明したように本発明によるリアル
タイムOSを搭載した情報処理装置は、インターバルタ
イマ割り込みによりインターバルタイマ処理部が起動し
てからカレントタスク部の処理が完了するまでの一連の
処理は、通常のバスを用いて命令が転送されるが、外部
メモリとキャッシュメモリ間のデータ転送は、上記の命
令転送と独立して、高速のDMA転送により行われる。
従って、データ量が多く処理時間が多くかかる外部メモ
リとキャッシュメモリ間のデータ転送が高速化すると共
に、リアルタイムOSを搭載した情報処理装置のハード
ウェア側の負担を大幅に減少させることができる。
タイムOSを搭載した情報処理装置は、インターバルタ
イマ割り込みによりインターバルタイマ処理部が起動し
てからカレントタスク部の処理が完了するまでの一連の
処理は、通常のバスを用いて命令が転送されるが、外部
メモリとキャッシュメモリ間のデータ転送は、上記の命
令転送と独立して、高速のDMA転送により行われる。
従って、データ量が多く処理時間が多くかかる外部メモ
リとキャッシュメモリ間のデータ転送が高速化すると共
に、リアルタイムOSを搭載した情報処理装置のハード
ウェア側の負担を大幅に減少させることができる。
【0113】また、インターバルタイマ処理部からカレ
ントタスク部までの一連の処理の待ち時間が減少し、一
連の処理を高速化することができる。
ントタスク部までの一連の処理の待ち時間が減少し、一
連の処理を高速化することができる。
【0114】さらに、本発明によるリアルタイムOSを
搭載した情報処理装置は、各タスクデータ又は音声デー
タや画像データなどの処理すべきデータの各オーバレイ
領域の共通領域に対して、DMA転送を行うので、DM
A転送するタスクデータ量又は音声データや画像データ
などのデータ量を実効的に低減できる。このため、キャ
ッシュメモリと外部メモリ間のDMA転送を効率よく行
うことができるので、キャッシュメモリと外部メモリ間
のDMA転送を高速に行うことができ、無駄なデータ転
送を行わないことにより消費電力を低減することができ
るという効果がある。
搭載した情報処理装置は、各タスクデータ又は音声デー
タや画像データなどの処理すべきデータの各オーバレイ
領域の共通領域に対して、DMA転送を行うので、DM
A転送するタスクデータ量又は音声データや画像データ
などのデータ量を実効的に低減できる。このため、キャ
ッシュメモリと外部メモリ間のDMA転送を効率よく行
うことができるので、キャッシュメモリと外部メモリ間
のDMA転送を高速に行うことができ、無駄なデータ転
送を行わないことにより消費電力を低減することができ
るという効果がある。
【0115】また、現在実行中のタスクの次に処理すべ
き次期実行タスクを予測する予測処理を搭載することに
より、前もってDMA転送命令を発行しタスク及びデー
タの保存と復帰を行い、タスクの実効的転送時間を高速
化することができる。
き次期実行タスクを予測する予測処理を搭載することに
より、前もってDMA転送命令を発行しタスク及びデー
タの保存と復帰を行い、タスクの実効的転送時間を高速
化することができる。
【図1】本発明のリアルタイムOSを搭載した情報処理
装置100と、DMAペリフェラル部104、キャッシ
ュメモリ105及び外部メモリ106の概念的構成図で
ある。
装置100と、DMAペリフェラル部104、キャッシ
ュメモリ105及び外部メモリ106の概念的構成図で
ある。
【図2】本発明の一実施形態のリアルタイムOSを搭載
した情報処理装置及び周辺部を示す構成図である。
した情報処理装置及び周辺部を示す構成図である。
【図3】本発明の間隔テーブル220を示す図である。
【図4】本発明の間隔テーブル220の更新の例を示す
図である。
図である。
【図5】本発明の予測間隔テーブル221を示す図であ
る。
る。
【図6】本発明の予測間隔テーブル221の更新の例を
示す図である。
示す図である。
【図7】本発明のリアルタイムOSを搭載した情報処理
装置が有する予測処理機能に基づき、実行タスクが転送
され、かつ実行されるタイミングを示す図である。
装置が有する予測処理機能に基づき、実行タスクが転送
され、かつ実行されるタイミングを示す図である。
【図8】本発明のリアルタイムOSを搭載した情報処理
装置により、一つのフレーム内で複数の実行タスクに対
して同時に実行要求が出された場合の実行手順を示す図
である。
装置により、一つのフレーム内で複数の実行タスクに対
して同時に実行要求が出された場合の実行手順を示す図
である。
【図9】本発明のDMAコマンド生成部204及び実行
DMAコマンド発行部206の詳細を主として示す図で
ある。
DMAコマンド発行部206の詳細を主として示す図で
ある。
【図10】本発明のDMAコマンドスタック223を示
す図である。
す図である。
【図11】本発明のオーバレイデータ管理テーブル22
2の第1の実施例を示す図である。
2の第1の実施例を示す図である。
【図12】本発明のデータメモリマップテーブル224
の第1の実施例を示す図である。
の第1の実施例を示す図である。
【図13】本発明のリアルタイムOSを搭載した情報処
理装置のオーバレイ領域の構成と外部メモリ106の構
成及びオーバレイデータ管理テーブル222の構成の第
1の例を示す図である。
理装置のオーバレイ領域の構成と外部メモリ106の構
成及びオーバレイデータ管理テーブル222の構成の第
1の例を示す図である。
【図14】図13に示す一例で、実行タスクが保存及び
キャッシュメモリ105へDMA転送され、かつ実行さ
れるタイミングを示すと共に、このときのデータメモリ
マップテーブル224の更新を示す図である。
キャッシュメモリ105へDMA転送され、かつ実行さ
れるタイミングを示すと共に、このときのデータメモリ
マップテーブル224の更新を示す図である。
【図15】本発明のリアルタイムOSを搭載した情報処
理装置のオーバレイ領域の構成と外部メモリ106の構
成及びオーバレイデータ管理テーブル222の構成の第
2の例を示す図である。
理装置のオーバレイ領域の構成と外部メモリ106の構
成及びオーバレイデータ管理テーブル222の構成の第
2の例を示す図である。
【図16】図15に示す一例で、実行タスクが保存及び
キャッシュメモリ105へDMA転送され、かつ実行さ
れるタイミングを示すと共に、このときのデータメモリ
マップテーブル224の更新を示す図である。
キャッシュメモリ105へDMA転送され、かつ実行さ
れるタイミングを示すと共に、このときのデータメモリ
マップテーブル224の更新を示す図である。
【図17】本発明のオーバレイ方式を用いたオーバレイ
データ管理テーブル222の第2の実施例を示す図であ
る。
データ管理テーブル222の第2の実施例を示す図であ
る。
【図18】本発明のデータメモリマップテーブル224
の第2の実施例を示す図である。
の第2の実施例を示す図である。
【図19】従来例のリアルタイムOSの構成図である。
10、201 インターバルタイマ処理部 11、207 周期間隔検出部 12 待合登録部 13、210 タスクスイッチ部 14、208 カレントタスク判定部 15 タスクブロック制御部 16 タスクブロックスケジューラ部 17、211 カレントタスク部 18、220 間隔テーブル 19 待合テーブル 20 システム管理テーブル 21 タスクコントロールテーブル 100 リアルタイムOSを搭載した情報処理装置 101 カーネル部 102 タスク処理部 103 オーバレイ領域管理部 104 DMAペリフェラル部 105 キャッシュメモリ 106 外部メモリ 202 次期実行タスク予測部 203 データ置き換え判定部 204 DMAコマンド生成部 205 ターゲット領域検出部 206 実行DMAコマンド発行部 209 待ち合わせ登録部 221 予測間隔テーブル 222 オーバレイデータ管理テーブル 223 DMAコマンドスタック 224 データメモリマップテーブル 225 待ち合わせテーブル 901 DMAコマンドスタック登録部 902 DMA転送判定部 903 DMAコマンド所得部 904 DMAコマンド待ち状態判定部 906 DMA転送命令開始部 907 データメモリマップ生成部
Claims (12)
- 【請求項1】 実行に不必要なタスクの一部又は全部の
データあるいはこのタスクが実行するデータの一部又は
全部のデータをキャッシュメモリから外部メモリに転送
あるいは前記キャッシュメモリから廃棄し、これにより
生じた前記キャッシュメモリのメモリ領域に、実行に必
要なタスクの一部又は全部のデータあるいはこのタスク
が実行するデータの一部又は全部のデータを前記外部メ
モリから転送するリアルタイムOSを搭載した情報処理
装置において、 一定時間間隔からなり連続したフレーム毎にタスクを処
理し、 現在実行中の前記タスクが位置するフレームであるカレ
ントフレーム以降のフレームで処理されるタスクを予測
する次期実行タスク予測部を備え、 実行中のタスクである実行タスクと次期実行タスクが異
なる場合、前記次期実行タスクが実行されるフレームよ
り少なくとも1フレーム前に、前記外部メモリから前記
次期実行タスクの一部又は全部をDMA(ダイレクト・
アクセス・メモリ)転送により、前記キャッシュメモリ
に格納するリアルタイムOSを搭載した情報処理装置。 - 【請求項2】 前記実行タスクと前記次期実行タスクの
前記キャッシュメモリ上での共有領域又は前記実行タス
クが実行するデータと前記次期実行タスクが実行するデ
ータの前記キャッシュメモリ上での共有領域を検出し、
この共有領域のデータを前記外部メモリから前記キャッ
シュメモリにDMA転送する請求項1記載のリアルタイ
ムOSを搭載した情報処理装置。 - 【請求項3】 前記カレントフレームにおいて、前記カ
レントフレームの前に実行されたタスクの一部又は全部
のデータあるいは前記カレントフレームの前のフレーム
で前記タスクが実行したデータの一部又は全部を前記キ
ャッシュメモリから前記外部メモリへDMA転送により
保存する請求項1記載のリアルタイムOSを搭載した情
報処理装置。 - 【請求項4】 インターバルタイマ割り込みにより起動
するインターバルタイマ処理部を設け、前記インターバ
ルタイマ割り込みの度と前記タスクの実行終了時に前記
インターバルタイマ処理部により各タスクの実行開始時
間を管理する間隔テーブルを更新し、前記間隔テーブル
を構成する前記各タスク毎のカレントフレームカウンタ
のカウント値が所定の値になると、該当するタスクに対
して実行命令がなされる請求項1乃至3記載のリアルタ
イムOSを搭載した情報処理装置。 - 【請求項5】 前記間隔テーブルは、各タスク毎に前記
カレントフレームカウンタと、第1のフレームカウンタ
値と、第2のフレームカウンタ値とを備え、 前記インターバルタイマ割り込みがかかると、前記カレ
ントフレームカウンタ値は、更新前の前記カレントフレ
ームカウンタ値から第1のフレームカウンタ値を減算し
た値に更新され、前記タスク終了時に、更新前の前記カ
レントフレームカウンタ値に第2のフレームカウンタ値
を加算した値に更新される請求項4記載のリアルタイム
OSを搭載した情報処理装置。 - 【請求項6】 インターバルタイマ割り込みにより起動
するインターバルタイマ処理部を設け、 数回後の前記インターバルタイマ割り込み時に前記間隔
テーブルが示す内容を先行して示す予測間隔テーブルを
設け、 前記インターバルタイマ割り込みの度に前記予測間隔テ
ーブルを更新し、前記予測間隔テーブルを構成する前記
各タスク毎の予測カレントフレームカウンタのカウント
値が所定の値になると、該当するタスクに対して実行フ
レームの次のフレームで実行命令がなされる請求項4又
は5記載のリアルタイムOSを搭載した情報処理装置。 - 【請求項7】 前記予測カレントフレームカウンタのカ
ウンタ値は、前記インターバルタイマ割り込みがかかる
と、前記カレントフレームカウンタ値が0又は負のと
き、更新前の前記カレントフレームカウンタ値から前記
第1のフレームカウンタ値を減算した値に前記第2のフ
レームカウンタ値を加算した値に更新され、前記カレン
トフレームカウンタ値がが正のとき、更新前の前記カレ
ントフレームカウンタ値から前記第1のフレームカウン
タ値を減算した値に更新される請求項6記載のリアルタ
イムOSを搭載した情報処理装置。 - 【請求項8】 各タスク毎にDMA転送する際の転送元
開始アドレス、転送先開始アドレス、転送メモリサイズ
の各情報を有するオーバレイデータ管理テーブルと、 このオーバレイデータ管理テーブルからDMAコマンド
の情報を所得し、DMAコマンドスタックに格納するD
MAコマンドスタック登録部と、 前記DMAコマンドスタックから一番古く発行された前
記DMAコマンドを所得するDMAコマンド所得部と、 前記DMAコマンドが有するDMA転送情報と、前記キ
ャッシュメモリ上の前記タスクデータの配置情報をタス
クレベルで格納しているデータメモリマップテーブルか
ら、現在の実行タスクと次に実行される次期実行タスク
の共有領域を検出するターゲット領域検出部と、 DMA転送命令の実行に必要な情報を通知するDMA転
送命令開始部と、を備える請求項1乃至7記載のリアル
タイムOSを搭載した情報処理装置。 - 【請求項9】 前記転送メモリサイズに代えて、転送先
終了アドレス又は転送元終了アドレスの情報を有するオ
ーバレイデータ管理テーブルを備える請求項8記載のリ
アルタイムOSを搭載した情報処理装置。 - 【請求項10】 前記データメモリマップテーブルは、
前記キャッシュメモリのアドレスを示すインデックス情
報及びタスク番号と関連したタスクIDとを含んで構成
される請求項8記載のリアルタイムOSを搭載した情報
処理装置。 - 【請求項11】 前記データメモリマップテーブルは、
前記キャッシュメモリの開始アドレスと終了アドレス又
はデータサイズとを含んで構成される請求項8記載のリ
アルタイムOSを搭載した情報処理装置。 - 【請求項12】 前記DMAコマンドスタックは、新し
いDMAコマンドから古いDMAコマンドの順に、ある
いは逆に古いDMAコマンドから新しいDMAコマンド
の順に格納されている請求項8記載のリアルタイムOS
を搭載した情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10293614A JP2000122880A (ja) | 1998-10-15 | 1998-10-15 | リアルタイムosを搭載した情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10293614A JP2000122880A (ja) | 1998-10-15 | 1998-10-15 | リアルタイムosを搭載した情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000122880A true JP2000122880A (ja) | 2000-04-28 |
Family
ID=17797000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10293614A Pending JP2000122880A (ja) | 1998-10-15 | 1998-10-15 | リアルタイムosを搭載した情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000122880A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127245A (ja) * | 2004-10-29 | 2006-05-18 | Ricoh Co Ltd | 電子機器システム |
US8478956B2 (en) | 2009-11-13 | 2013-07-02 | Samsung Electronics Co., Ltd. | Computing system and method controlling memory of computing system |
CN109725974A (zh) * | 2018-12-27 | 2019-05-07 | 北京字节跳动网络技术有限公司 | 一种基于限流器的页面更新方法、装置和计算机存储介质 |
JP2020071689A (ja) * | 2018-10-31 | 2020-05-07 | ルネサスエレクトロニクス株式会社 | 半導体装置およびそれを用いるシステム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01273132A (ja) * | 1988-04-25 | 1989-11-01 | Nec Corp | マイクロプロセッサ |
JPH08263424A (ja) * | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンピュータ装置 |
JPH10228385A (ja) * | 1997-02-17 | 1998-08-25 | Nec Corp | リアルタイムos及びそのタスク管理方式 |
-
1998
- 1998-10-15 JP JP10293614A patent/JP2000122880A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01273132A (ja) * | 1988-04-25 | 1989-11-01 | Nec Corp | マイクロプロセッサ |
JPH08263424A (ja) * | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンピュータ装置 |
JPH10228385A (ja) * | 1997-02-17 | 1998-08-25 | Nec Corp | リアルタイムos及びそのタスク管理方式 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127245A (ja) * | 2004-10-29 | 2006-05-18 | Ricoh Co Ltd | 電子機器システム |
US8478956B2 (en) | 2009-11-13 | 2013-07-02 | Samsung Electronics Co., Ltd. | Computing system and method controlling memory of computing system |
JP2020071689A (ja) * | 2018-10-31 | 2020-05-07 | ルネサスエレクトロニクス株式会社 | 半導体装置およびそれを用いるシステム |
JP7257772B2 (ja) | 2018-10-31 | 2023-04-14 | ルネサスエレクトロニクス株式会社 | 半導体装置を用いるシステム |
CN109725974A (zh) * | 2018-12-27 | 2019-05-07 | 北京字节跳动网络技术有限公司 | 一种基于限流器的页面更新方法、装置和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529383B (zh) | 任务处理装置 | |
US6430594B1 (en) | Real-time operating system and a task management system therefor | |
AU637543B2 (en) | Receiving buffer control system | |
TWI416413B (zh) | Work processing device | |
KR100766732B1 (ko) | 고속의 낮은 오버헤드의 콘텍스트 전환을 실행하는 디바이스 및 방법 | |
CN108920267B (zh) | 任务处理装置 | |
US20120096472A1 (en) | Virtual queue processing circuit and task processor | |
JP4387970B2 (ja) | データ入出力プログラム,装置,および方法 | |
JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
JP4127848B2 (ja) | タスク処理装置 | |
JP5040050B2 (ja) | 複数チャネルdmaコントローラおよびプロセッサシステム | |
CN102436393B (zh) | 任务处理装置 | |
CN114610472B (zh) | 异构计算中多进程管理方法及计算设备 | |
JP2006243864A (ja) | プロセッサおよび情報処理方法 | |
JPWO2003040948A1 (ja) | コンピュータ及び制御方法 | |
JP2000122880A (ja) | リアルタイムosを搭載した情報処理装置 | |
JP2007172030A (ja) | 割り込み制御装置及び割り込み制御方法 | |
JP2001117786A (ja) | プロセススケジューリング装置およびプロセススケジューリング方法 | |
JP2001075820A (ja) | リアルタイムos装置 | |
JP5204740B2 (ja) | タスク処理装置 | |
JP5376042B2 (ja) | マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム | |
JPH10340197A (ja) | キャッシング制御方法及びマイクロコンピュータ | |
JP2008269597A (ja) | タスク処理装置 | |
JP2006195705A (ja) | プロセッサ | |
JP2009116885A (ja) | コンピュータ及び制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010313 |