JP2000235501A - タスク実行装置 - Google Patents
タスク実行装置Info
- Publication number
- JP2000235501A JP2000235501A JP11037858A JP3785899A JP2000235501A JP 2000235501 A JP2000235501 A JP 2000235501A JP 11037858 A JP11037858 A JP 11037858A JP 3785899 A JP3785899 A JP 3785899A JP 2000235501 A JP2000235501 A JP 2000235501A
- Authority
- JP
- Japan
- Prior art keywords
- task
- address
- bits
- bit
- unit
- 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 (AREA)
Abstract
(57)【要約】
【課題】 少ないハードウェア資源でタスクの保護およ
びアドレス変換の高速化が可能であり、タスク切り替え
が頻繁に起こるマルチスレッド処理を行う場合にもリア
ルタイム性を保証する。 【解決手段】 アドレス変換回路13は、タスク識別子
を論理アドレスの上位に付加することにより、アドレス
変換を高速に行う。
びアドレス変換の高速化が可能であり、タスク切り替え
が頻繁に起こるマルチスレッド処理を行う場合にもリア
ルタイム性を保証する。 【解決手段】 アドレス変換回路13は、タスク識別子
を論理アドレスの上位に付加することにより、アドレス
変換を高速に行う。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の独立したタ
スクを実行するタスク実行装置に関する。
スクを実行するタスク実行装置に関する。
【0002】
【従来の技術】Moving Picture Expert Group2(MPEG2)
規格は動画像圧縮の国際標準技術として世界中の技術者
から高い支持を得ており、その応用技術は様々な民生用
機器で利用されている。MPEG技術により圧縮され、多重
化されたMPEGストリームを復号する方式には、大きく分
けてソフトウェア方式と、専用ハード方式とがある。
規格は動画像圧縮の国際標準技術として世界中の技術者
から高い支持を得ており、その応用技術は様々な民生用
機器で利用されている。MPEG技術により圧縮され、多重
化されたMPEGストリームを復号する方式には、大きく分
けてソフトウェア方式と、専用ハード方式とがある。
【0003】ソフトウェア方式とは、MPEGストリームの
復号処理を行うプログラムを記述して汎用プロセッサや
汎用ハードウェアに実行させる方式である。このソフト
ウェア方式でMPEGストリームの復号を行おうとすると、
汎用CPUや汎用ハードウェアの性能ではリアルタイム性
な復号処理を実現することができず、コマ落ち等が発生
する恐れがある。
復号処理を行うプログラムを記述して汎用プロセッサや
汎用ハードウェアに実行させる方式である。このソフト
ウェア方式でMPEGストリームの復号を行おうとすると、
汎用CPUや汎用ハードウェアの性能ではリアルタイム性
な復号処理を実現することができず、コマ落ち等が発生
する恐れがある。
【0004】専用ハード方式とは、MPEGストリームの復
号処理を専用に行えるよう設計されたハードウェアにて
MPEGストリームの復号を行う方式である。光ディスクの
再生装置やデジタル衛星放送の受信装置等の民生用機器
においてMPEGストリームの復号を行おうとする際、上記
のようなコマ落ちの発生は許されないので、この方式が
専ら採用される。
号処理を専用に行えるよう設計されたハードウェアにて
MPEGストリームの復号を行う方式である。光ディスクの
再生装置やデジタル衛星放送の受信装置等の民生用機器
においてMPEGストリームの復号を行おうとする際、上記
のようなコマ落ちの発生は許されないので、この方式が
専ら採用される。
【0005】ソフトウェア方式はリアルタイム性では劣
るものの、機能の拡張・変更の面で優れている。即ちMPE
Gストリームの復号装置においては、様々な機器への応
用が考えられるため、将来各種機能の変更や各種機能の
拡張が望まれることも多い。例えば、DVDの再生装置に
搭載されることを前提にして開発された復号装置をデジ
タル衛星放送等の受信端末に転用したい場合、DVDの仕
様やデータ構造に依存した機能を衛星放送の仕様やデー
タ構造に依存した機能に変更せねばならず、そのような
変更・拡張の余地が復号装置に必要となる(このような
機能変更についての具体例としては、DVD再生装置にお
いて実現されている早送り、巻戻し等の特殊再生機能や
マルチチャネル音声、マルチチャネル字幕表示機能を、
デジタル衛星放送の受信端末の仕様に併せて変更する際
の設計のやり直しが挙げられる)。ソフトウェア方式で
はこのような機能が復号装置においてプログラムにて実
現されるので、このプログラムを書き換えることによ
り、各種機能を追加したり、変更することができる。従
って上記のようなDVDやデジタル衛星放送の仕様やデー
タ構造に依存した機能をソフトウェア方式で作成すれ
ば、以上のような機能変更や機能拡張に柔軟に対応でき
る。
るものの、機能の拡張・変更の面で優れている。即ちMPE
Gストリームの復号装置においては、様々な機器への応
用が考えられるため、将来各種機能の変更や各種機能の
拡張が望まれることも多い。例えば、DVDの再生装置に
搭載されることを前提にして開発された復号装置をデジ
タル衛星放送等の受信端末に転用したい場合、DVDの仕
様やデータ構造に依存した機能を衛星放送の仕様やデー
タ構造に依存した機能に変更せねばならず、そのような
変更・拡張の余地が復号装置に必要となる(このような
機能変更についての具体例としては、DVD再生装置にお
いて実現されている早送り、巻戻し等の特殊再生機能や
マルチチャネル音声、マルチチャネル字幕表示機能を、
デジタル衛星放送の受信端末の仕様に併せて変更する際
の設計のやり直しが挙げられる)。ソフトウェア方式で
はこのような機能が復号装置においてプログラムにて実
現されるので、このプログラムを書き換えることによ
り、各種機能を追加したり、変更することができる。従
って上記のようなDVDやデジタル衛星放送の仕様やデー
タ構造に依存した機能をソフトウェア方式で作成すれ
ば、以上のような機能変更や機能拡張に柔軟に対応でき
る。
【0006】民生用機器向けの復号装置を開発するにあ
たって、上述したソフトウェア方式、専用ハードウェア
方式の双方の長所を取り入れることが望ましい。そのた
めには、MPEGストリームの復号のうち、定型的な処理を
行う部分は専用ハードウェアにて構成すると共に、将
来、拡張・変更の可能性がある機能をソフトウェア方式
で実現する。将来、拡張・変更の可能性がある機能が複
数であれば、それらの複数の機能を複数のプログラムで
実現して、これらをマルチタスク化することが考えられ
る。
たって、上述したソフトウェア方式、専用ハードウェア
方式の双方の長所を取り入れることが望ましい。そのた
めには、MPEGストリームの復号のうち、定型的な処理を
行う部分は専用ハードウェアにて構成すると共に、将
来、拡張・変更の可能性がある機能をソフトウェア方式
で実現する。将来、拡張・変更の可能性がある機能が複
数であれば、それらの複数の機能を複数のプログラムで
実現して、これらをマルチタスク化することが考えられ
る。
【0007】続いて、拡張・変更の可能性がある機能が
複数であり、それらのマルチタスク化が求められる場
合、これから開発すべき復号装置にどのようなシステム
アーキテクチャを採用すべきかについて考察する。複数
プログラムのマルチタスク化にも秀でたシステムアーキ
テクチャを有した汎用ハードウェアも既に登場してお
り、上記ソフトウェア方式では、そのような専用ハード
ウェアを用いたマルチタスクも広く利用されている。
複数であり、それらのマルチタスク化が求められる場
合、これから開発すべき復号装置にどのようなシステム
アーキテクチャを採用すべきかについて考察する。複数
プログラムのマルチタスク化にも秀でたシステムアーキ
テクチャを有した汎用ハードウェアも既に登場してお
り、上記ソフトウェア方式では、そのような専用ハード
ウェアを用いたマルチタスクも広く利用されている。
【0008】このようなシステムアーキテクチャは、セ
グメンテーション、ページング等の高度なメモリ管理技
術によりマルチタスクを実現している。ここでページン
グとは、一次記憶となるメインメモリ上の領域、二次記
憶となるディスク上の領域に4KByte長のページ領域を割
り付けて、広大なアドレス空間をシミュレートすること
により、仮想メモリの動作環境をタスクに提供する技術
である。セグメンテーションとは、仮想メモリ内に各タ
スクについての専用アドレス空間を提供する技術であ
る。
グメンテーション、ページング等の高度なメモリ管理技
術によりマルチタスクを実現している。ここでページン
グとは、一次記憶となるメインメモリ上の領域、二次記
憶となるディスク上の領域に4KByte長のページ領域を割
り付けて、広大なアドレス空間をシミュレートすること
により、仮想メモリの動作環境をタスクに提供する技術
である。セグメンテーションとは、仮想メモリ内に各タ
スクについての専用アドレス空間を提供する技術であ
る。
【0009】以降、これらの技術を従来技術として説明
する。図15は、ページング、セグメンテーションによ
り管理されている論理空間を説明するための説明図であ
る。ここで論理空間とは、コンパイラがプログラムを生
成する際、サブルーチンの先頭ラベルや分岐先のラベル
に割り付けるべき論理アドレスにより構成されるアドレ
ス空間であり、ハードウェア上のメモリ上の領域により
構成される物理空間と相対する概念である。
する。図15は、ページング、セグメンテーションによ
り管理されている論理空間を説明するための説明図であ
る。ここで論理空間とは、コンパイラがプログラムを生
成する際、サブルーチンの先頭ラベルや分岐先のラベル
に割り付けるべき論理アドレスにより構成されるアドレ
ス空間であり、ハードウェア上のメモリ上の領域により
構成される物理空間と相対する概念である。
【0010】図15においてタスクは、それぞれ個別の
セグメント領域に割り付けられている。これらのセグメ
ント領域は、複数のページ領域からなることがわかる。
ここで図中のタスク0〜3がマルチタスクの対象であり、
タスク0〜3の何れかの命令が実行されているものとす
る。図示されている複数のページ領域のうち、現在実行
されている命令を含むページ領域は一次記憶に割り付け
られており、それ以外の命令を含むページ領域は二次記
憶に割り付られている。
セグメント領域に割り付けられている。これらのセグメ
ント領域は、複数のページ領域からなることがわかる。
ここで図中のタスク0〜3がマルチタスクの対象であり、
タスク0〜3の何れかの命令が実行されているものとす
る。図示されている複数のページ領域のうち、現在実行
されている命令を含むページ領域は一次記憶に割り付け
られており、それ以外の命令を含むページ領域は二次記
憶に割り付られている。
【0011】ここで一次記憶がメモリであり、二次記憶
がディスクであると考えると、メモリ上の領域により構
成される物理空間より、論理空間はかなり広めになって
いることがわかる。このように実際のメモリサイズより
かなり広い論理空間を設定し、コンパイラがこの論理空
間に、サブルーチンの先頭ラベルや分岐先のラベルに割
り付けることにより、プログラマは、一次記憶のサイズ
を意識することなく、プログラムを作成することができ
る。このような論理空間において、一次記憶には、動的
にページ領域が割り付けられる。ここでマルチタスクの
対象となるタスクのうちタスク0が実行されていると考
えると、このタスク0を構成するページ領域が、実線の
矢印に示すように一次記憶に割り付けられている。この
ような割り付けにおいて、別のタスクに含まれている命
令が実行対象になると、それまで一次記憶に割り付けら
れていたページ領域のうち最も過去にアクセスされたも
のを二次記憶に割り付けるのと共に、新たに実行すべき
タスクのうち、実行対象となる命令を含むページ領域を
一次記憶に割り付ける。このようなページ領域の割り付
けは、タスクにおける命令実行が行われている間、延々
と繰り返される。
がディスクであると考えると、メモリ上の領域により構
成される物理空間より、論理空間はかなり広めになって
いることがわかる。このように実際のメモリサイズより
かなり広い論理空間を設定し、コンパイラがこの論理空
間に、サブルーチンの先頭ラベルや分岐先のラベルに割
り付けることにより、プログラマは、一次記憶のサイズ
を意識することなく、プログラムを作成することができ
る。このような論理空間において、一次記憶には、動的
にページ領域が割り付けられる。ここでマルチタスクの
対象となるタスクのうちタスク0が実行されていると考
えると、このタスク0を構成するページ領域が、実線の
矢印に示すように一次記憶に割り付けられている。この
ような割り付けにおいて、別のタスクに含まれている命
令が実行対象になると、それまで一次記憶に割り付けら
れていたページ領域のうち最も過去にアクセスされたも
のを二次記憶に割り付けるのと共に、新たに実行すべき
タスクのうち、実行対象となる命令を含むページ領域を
一次記憶に割り付ける。このようなページ領域の割り付
けは、タスクにおける命令実行が行われている間、延々
と繰り返される。
【0012】セグメンテーション、ページングの管理下
にあるメモリは、論理アドレスを用いてアクセスされ
る。論理アドレスは、セグメント領域を特定するための
情報であるセグメントセレクタと、そのセグメント領域
におけるオフセットアドレスとを含んでおり、タスクに
含まれる命令のフェッチ先アドレス、タスクに含まれる
データのフェッチ先アドレス、書込先アドレスは、この
ような論理アドレスを用いて表現される。
にあるメモリは、論理アドレスを用いてアクセスされ
る。論理アドレスは、セグメント領域を特定するための
情報であるセグメントセレクタと、そのセグメント領域
におけるオフセットアドレスとを含んでおり、タスクに
含まれる命令のフェッチ先アドレス、タスクに含まれる
データのフェッチ先アドレス、書込先アドレスは、この
ような論理アドレスを用いて表現される。
【0013】セグメンテーション及びページングを行う
よう構成されたメモリ管理ユニット300の構成図を図
16に示す。本図においてメモリ管理ユニット300
は、セグメント変換部301と、ページング変換部30
2とからなる。セグメント変換部301は、全セグメン
ト領域についてのセグメントデスクリプタを有したデス
クリプタテーブル303をメインメモリに配している。
これらのセグメントデスクリプタは、対応するセグメン
ト領域についてのベースアドレスを有しており、それら
セグメント領域のうち、アクセス頻度が高いものに対応
するセグメントデスクリプタをセグメントレジスタ30
4に配置している。
よう構成されたメモリ管理ユニット300の構成図を図
16に示す。本図においてメモリ管理ユニット300
は、セグメント変換部301と、ページング変換部30
2とからなる。セグメント変換部301は、全セグメン
ト領域についてのセグメントデスクリプタを有したデス
クリプタテーブル303をメインメモリに配している。
これらのセグメントデスクリプタは、対応するセグメン
ト領域についてのベースアドレスを有しており、それら
セグメント領域のうち、アクセス頻度が高いものに対応
するセグメントデスクリプタをセグメントレジスタ30
4に配置している。
【0014】フェッチ先アドレスとなる論理アドレスが
出力されると、セグメント変換部301は、その論理ア
ドレスに含まれているセグメントセレクタと一致するセ
グメントデスクリプタがセグメントレジスタ304に存
在するかを判定する。もし一致するセグメントデスクリ
プタが存在すれば、そのセグメントデスクリプタに含ま
れるベースアドレスと、論理アドレスに含まれているオ
フセットアドレスとを足し合わせて出力することにより
論理アドレスをリニアアドレスへと変換する。変換後の
リニアアドレスは、ページ領域を特定するための情報で
あるページ情報と、そのページ領域におけるオフセット
アドレスとを含んでおり、上記セグメント領域がどのペ
ージ領域上に存在するかを一意に特定することができ
る。
出力されると、セグメント変換部301は、その論理ア
ドレスに含まれているセグメントセレクタと一致するセ
グメントデスクリプタがセグメントレジスタ304に存
在するかを判定する。もし一致するセグメントデスクリ
プタが存在すれば、そのセグメントデスクリプタに含ま
れるベースアドレスと、論理アドレスに含まれているオ
フセットアドレスとを足し合わせて出力することにより
論理アドレスをリニアアドレスへと変換する。変換後の
リニアアドレスは、ページ領域を特定するための情報で
あるページ情報と、そのページ領域におけるオフセット
アドレスとを含んでおり、上記セグメント領域がどのペ
ージ領域上に存在するかを一意に特定することができ
る。
【0015】もし一致するセグメントデスクリプタが存
在しないなら、セグメント変換部301は、その論理ア
ドレスに含まれるセグメントセレクタと一致するベース
アドレスを有するセグメントデスクリプタをセレクタレ
ジスタ304に読み出した後、リニアアドレスへの変換
を行う。ページング変換部302は、全ページ領域の物
理アドレスを有したページテーブルエントリを含むペー
ジテーブル305をメインメモリに配すると共に、それ
らページテーブルエントリのうち、アクセス頻度が高い
ものをTLB(TranslationLook-aside Buffer)306にキ
ャッシュしている。ページテーブルエントリは、全ペー
ジ領域における物理アドレスと、その物理アドレスが一
次記憶上に存在するか、二次記憶上に存在するかを示す
プレゼントビットとを有している。
在しないなら、セグメント変換部301は、その論理ア
ドレスに含まれるセグメントセレクタと一致するベース
アドレスを有するセグメントデスクリプタをセレクタレ
ジスタ304に読み出した後、リニアアドレスへの変換
を行う。ページング変換部302は、全ページ領域の物
理アドレスを有したページテーブルエントリを含むペー
ジテーブル305をメインメモリに配すると共に、それ
らページテーブルエントリのうち、アクセス頻度が高い
ものをTLB(TranslationLook-aside Buffer)306にキ
ャッシュしている。ページテーブルエントリは、全ペー
ジ領域における物理アドレスと、その物理アドレスが一
次記憶上に存在するか、二次記憶上に存在するかを示す
プレゼントビットとを有している。
【0016】フェッチ先アドレスとなるリニアアドレス
が出力されると、ページング変換部302は、そのリニ
アアドレスに含まれているページ情報と一致するページ
テーブルエントリがTLBに存在するか(キャッシュヒッ
トが発生するか)を判定する。TLBにおいてキャッシュ
ヒットが発生する場合、即ち、フェッチ先アドレスに含
まれているページアドレスと一致するページアドレスを
有するページテーブルエントリがTLBに存在する場合、
ページング変換部302はその一致したページテーブル
エントリに含まれている物理アドレスと、リニアアドレ
スに含まれているオフセットアドレスとを足し合わせて
出力することによりリニアアドレスから物理アドレスへ
の変換を高速に行う。
が出力されると、ページング変換部302は、そのリニ
アアドレスに含まれているページ情報と一致するページ
テーブルエントリがTLBに存在するか(キャッシュヒッ
トが発生するか)を判定する。TLBにおいてキャッシュ
ヒットが発生する場合、即ち、フェッチ先アドレスに含
まれているページアドレスと一致するページアドレスを
有するページテーブルエントリがTLBに存在する場合、
ページング変換部302はその一致したページテーブル
エントリに含まれている物理アドレスと、リニアアドレ
スに含まれているオフセットアドレスとを足し合わせて
出力することによりリニアアドレスから物理アドレスへ
の変換を高速に行う。
【0017】同一ページ領域における命令を連続して読
み出そうとする場合、ページアドレスについては、TLB
にキャッシュされている同一のページテーブルエントリ
から物理アドレスを取り出して出力すればよいので、リ
ニアアドレスから物理アドレスへのアドレス変換を高速
に行うことができる。フェッチ先アドレスが異なるペー
ジ領域に属する場合、TLBにおいてキャッシュミスが発
生するので、ページング変換部302はTLBにキャッシ
ュされているページテーブルエントリをフラッシュし
て、新たなページテーブルエントリをページテーブルか
らTLBに読み出す。
み出そうとする場合、ページアドレスについては、TLB
にキャッシュされている同一のページテーブルエントリ
から物理アドレスを取り出して出力すればよいので、リ
ニアアドレスから物理アドレスへのアドレス変換を高速
に行うことができる。フェッチ先アドレスが異なるペー
ジ領域に属する場合、TLBにおいてキャッシュミスが発
生するので、ページング変換部302はTLBにキャッシ
ュされているページテーブルエントリをフラッシュし
て、新たなページテーブルエントリをページテーブルか
らTLBに読み出す。
【0018】この際、新たなページテーブルエントリの
プレゼントビット長を参照して、次にアクセスすべきペ
ージ領域が二次記憶上に存在するか否かを判定する。二
次記憶上に存在する場合、その物理アドレスを含むペー
ジ領域を一次記憶に割り付けた後、読み出されたページ
テーブルエントリから物理アドレスを取り出すことによ
り、アドレス変換を行う。
プレゼントビット長を参照して、次にアクセスすべきペ
ージ領域が二次記憶上に存在するか否かを判定する。二
次記憶上に存在する場合、その物理アドレスを含むペー
ジ領域を一次記憶に割り付けた後、読み出されたページ
テーブルエントリから物理アドレスを取り出すことによ
り、アドレス変換を行う。
【0019】つまり異なるページ領域に位置する命令を
連続して読み出そうとする場合は、一次記憶へのページ
領域の割り付けと、TLBのフラッシュと、新たなページ
テーブルエントリの読み出しとがオーバーヘッドとな
り、実行サイクルに悪影響を与えてしまう。以上のメモ
リ管理ユニット300によるセグメンテーション、ペー
ジングは、、同一タスクに含まれる命令を一定期間継続
して実行する場合に、実行時間の高速化を実現すること
ができる。
連続して読み出そうとする場合は、一次記憶へのページ
領域の割り付けと、TLBのフラッシュと、新たなページ
テーブルエントリの読み出しとがオーバーヘッドとな
り、実行サイクルに悪影響を与えてしまう。以上のメモ
リ管理ユニット300によるセグメンテーション、ペー
ジングは、、同一タスクに含まれる命令を一定期間継続
して実行する場合に、実行時間の高速化を実現すること
ができる。
【0020】
【発明が解決しようとする課題】ところで、ソフトウェ
ア方式、専用ハードウェア方式の双方の長所を取り入れ
るため、将来、拡張・変更の可能性がある複数の部分を
複数のプログラムで実現し、これらをマルチタスクで実
行しようとした場合、全てのタスクのリアルタイム性の
同時保証が求められる。このようなマルチタスクに従来
のメモリ管理ユニット300を応用すると、同期クロッ
ク信号の周波数がよほど高くなければ、上記のようなリ
アルタイム性の同時保証が実現できないという問題点が
ある。
ア方式、専用ハードウェア方式の双方の長所を取り入れ
るため、将来、拡張・変更の可能性がある複数の部分を
複数のプログラムで実現し、これらをマルチタスクで実
行しようとした場合、全てのタスクのリアルタイム性の
同時保証が求められる。このようなマルチタスクに従来
のメモリ管理ユニット300を応用すると、同期クロッ
ク信号の周波数がよほど高くなければ、上記のようなリ
アルタイム性の同時保証が実現できないという問題点が
ある。
【0021】リアルタイム性の保証が求められるのは、
これらのタスクは、いわゆる非同期イベントの高頻度発
生に即応する必要があるからである。このような非同期
イベントには、装置外部からの入力イベント、装置内部
の入出力イベント、装置外部への出力イベントがある。
これら複数タスクのリアルタイム性を同時保証するに
は、これらのタスクをマルチスレッドシステムに実行さ
せるのが良いと考えられる。
これらのタスクは、いわゆる非同期イベントの高頻度発
生に即応する必要があるからである。このような非同期
イベントには、装置外部からの入力イベント、装置内部
の入出力イベント、装置外部への出力イベントがある。
これら複数タスクのリアルタイム性を同時保証するに
は、これらのタスクをマルチスレッドシステムに実行さ
せるのが良いと考えられる。
【0022】マルチスレッドシステムとは、その稼動時
間を例えば4サイクルという単位に時分割し(分割され
たそれぞれの時間をスレッドという)、これらスレッド
を複数タスクのそれぞれに割り付けるシステムである。
4サイクルからなるスレッドが割り付けられると、各タ
スクは、例えば4命令ずつ交互に実行されることにな
る。
間を例えば4サイクルという単位に時分割し(分割され
たそれぞれの時間をスレッドという)、これらスレッド
を複数タスクのそれぞれに割り付けるシステムである。
4サイクルからなるスレッドが割り付けられると、各タ
スクは、例えば4命令ずつ交互に実行されることにな
る。
【0023】MPEGストリームを再生するにあたって、タ
スク1,2,3,4のリアルタイム性を同時保証せねばならな
い場合、マルチスレッドシステムは、タスク1、タスク
2、タスク3、タスク4をそれぞれ個別のスレッドに割り
付けて、これらの命令を4命令ずつ交互に実行するので
ある。しかしマルチスレッドシステムに上記メモリ管理
ユニット300をそのまま適用しようとすると、マルチ
スレッドシステムはタスク切り換えを頻繁に行うのでセ
グメント領域、ページ領域の切り換えが多発する。この
ようにタスクの切り換えが多発すると、オーバーヘッド
の影響が倍増することになり、タスクの実行時間が間延
びしてしまう。
スク1,2,3,4のリアルタイム性を同時保証せねばならな
い場合、マルチスレッドシステムは、タスク1、タスク
2、タスク3、タスク4をそれぞれ個別のスレッドに割り
付けて、これらの命令を4命令ずつ交互に実行するので
ある。しかしマルチスレッドシステムに上記メモリ管理
ユニット300をそのまま適用しようとすると、マルチ
スレッドシステムはタスク切り換えを頻繁に行うのでセ
グメント領域、ページ領域の切り換えが多発する。この
ようにタスクの切り換えが多発すると、オーバーヘッド
の影響が倍増することになり、タスクの実行時間が間延
びしてしまう。
【0024】また上記従来技術のメモリ管理ユニット3
00を備えたマルチスレッドシステムを民生用機器上で
用いる場合、これを必要最低限の同期クロック信号で動
作させるのが望ましいが、上記のようなオーバーヘッド
がタスクの総実行時間に不確定要素として影響するの
で、必要最低限の同期クロック信号を算出するのが不可
能である。
00を備えたマルチスレッドシステムを民生用機器上で
用いる場合、これを必要最低限の同期クロック信号で動
作させるのが望ましいが、上記のようなオーバーヘッド
がタスクの総実行時間に不確定要素として影響するの
で、必要最低限の同期クロック信号を算出するのが不可
能である。
【0025】例えばある非同期イベントの発生間隔が50
μsecであり、この発生間隔において400個もの命令を実
行するに足る同期クロック信号を算出しようとする場
合、上記発生間隔(50μsec)を総命令数(400)で割ること
により、一命令を実行するのに必要なサイクル長を算出
することができ、このサイクル長から、当該マルチスレ
ッドシステムの必要最低限の同期クロック信号を特定す
るのが理想的である。しかし従来のメモリ管理ユニット
300は、ページ領域の切り換え時にオーバーヘッドを
有しており、ページ領域の切り換え時期及び切り換え回
数を特定する術はないので、当該オーバーヘッドは、予
測することが不可能な不確定要素としてタスクの総実行
時間に影響する。オーバーヘッド発生という不確定要素
を有しているので、メモリ管理ユニット300を有した
マルチスレッドシステムは上記400命令の実行に400+α
サイクル(αは不確定要素を多目に見積もったサイクル
数)を必要とする。そのため、発生間隔(50μsec)を400
+αサイクルで割ることにより、一命令を実行するのに
必要なサイクル長を算出せねばならない。このように算
出されたサイクル長はかなり短目となり、マルチスレッ
ドシステムの同期クロック信号もかなり高めになってし
まう。高周波数での動作により、マルチスレッドシステ
ムにおける電力消費が大きくなり、また、電磁波の不要
輻射が増大してしまう。
μsecであり、この発生間隔において400個もの命令を実
行するに足る同期クロック信号を算出しようとする場
合、上記発生間隔(50μsec)を総命令数(400)で割ること
により、一命令を実行するのに必要なサイクル長を算出
することができ、このサイクル長から、当該マルチスレ
ッドシステムの必要最低限の同期クロック信号を特定す
るのが理想的である。しかし従来のメモリ管理ユニット
300は、ページ領域の切り換え時にオーバーヘッドを
有しており、ページ領域の切り換え時期及び切り換え回
数を特定する術はないので、当該オーバーヘッドは、予
測することが不可能な不確定要素としてタスクの総実行
時間に影響する。オーバーヘッド発生という不確定要素
を有しているので、メモリ管理ユニット300を有した
マルチスレッドシステムは上記400命令の実行に400+α
サイクル(αは不確定要素を多目に見積もったサイクル
数)を必要とする。そのため、発生間隔(50μsec)を400
+αサイクルで割ることにより、一命令を実行するのに
必要なサイクル長を算出せねばならない。このように算
出されたサイクル長はかなり短目となり、マルチスレッ
ドシステムの同期クロック信号もかなり高めになってし
まう。高周波数での動作により、マルチスレッドシステ
ムにおける電力消費が大きくなり、また、電磁波の不要
輻射が増大してしまう。
【0026】本発明の第1の目的は、高い拡張性を有し
ており、また低い周波数の同期クロック信号にて動作す
る場合であっても、各タスクについてのリアルタイム性
を同時保証することができるタスク実行装置を提供する
ことである。本発明の第2の目的は、予め定められた複
数のタスクの命令を所定数だけ実行するための総実行サ
イクルを正確に算出し得るアドレス変換装置を提供する
ことである。
ており、また低い周波数の同期クロック信号にて動作す
る場合であっても、各タスクについてのリアルタイム性
を同時保証することができるタスク実行装置を提供する
ことである。本発明の第2の目的は、予め定められた複
数のタスクの命令を所定数だけ実行するための総実行サ
イクルを正確に算出し得るアドレス変換装置を提供する
ことである。
【0027】
【課題を解決するための手段】以降、上記課題を如何に
して解決したかについて説明する。民生用機器を開発す
るにあたって、ソフトウェア方式、専用ハードウェア方
式の双方の長所を取り入れた場合、復号処理の主要部を
専用ハードウェア方式で実現し、将来追加・変更の可能
性がある部分のみをプログラムで実現することができ
る。このようにソフトウェア方式、専用ハードウェア方
式の双方の長所を取り入れると、MPEGストリームの復号
処理のうち、主要部は、専用ハードウェアで実現され、
上記プログラムから主要部が除外されてるので、ソフト
ウェア方式にて実行すべきプログラムのサイズは至って
小さなものとなる。これにより上述したマルチスレッド
システムは、コードサイズが至って小さいタスクを実行
すればよい(後述する実施形態においてマルチスレッド
式の対象となるタスクは、その命令数がたかだか8Kstep
であり、1命令の語長が16bitであるので、そのサイズ
が16Kbyte(=8Kstep×16bit)である。)。
して解決したかについて説明する。民生用機器を開発す
るにあたって、ソフトウェア方式、専用ハードウェア方
式の双方の長所を取り入れた場合、復号処理の主要部を
専用ハードウェア方式で実現し、将来追加・変更の可能
性がある部分のみをプログラムで実現することができ
る。このようにソフトウェア方式、専用ハードウェア方
式の双方の長所を取り入れると、MPEGストリームの復号
処理のうち、主要部は、専用ハードウェアで実現され、
上記プログラムから主要部が除外されてるので、ソフト
ウェア方式にて実行すべきプログラムのサイズは至って
小さなものとなる。これにより上述したマルチスレッド
システムは、コードサイズが至って小さいタスクを実行
すればよい(後述する実施形態においてマルチスレッド
式の対象となるタスクは、その命令数がたかだか8Kstep
であり、1命令の語長が16bitであるので、そのサイズ
が16Kbyte(=8Kstep×16bit)である。)。
【0028】従来技術においては、タスクのサイズがど
のような大きさであっても対処できるよう物理空間にお
ける一次記憶よりも大きくなるよう論理空間を設定して
おり、セグメント領域、ページ領域の割り付けが必要と
なったが、MPEGストリームの復号装置では実行すべきタ
スクのサイズが小さいことが確実なので、メモリ上の部
分領域である物理領域に実行すべきタスクを固定的に割
り付けるのである。
のような大きさであっても対処できるよう物理空間にお
ける一次記憶よりも大きくなるよう論理空間を設定して
おり、セグメント領域、ページ領域の割り付けが必要と
なったが、MPEGストリームの復号装置では実行すべきタ
スクのサイズが小さいことが確実なので、メモリ上の部
分領域である物理領域に実行すべきタスクを固定的に割
り付けるのである。
【0029】従って本発明は、複数タスクのうち1つを
実行するタスク実行装置であって、複数の部分領域を有
しており、前記複数タスクのそれぞれが各部分領域に固
定的に割り付けられているメモリと、複数タスクの全て
について、フェッチ先を示すnビットの論理アドレスを
格納している格納手段と、同期クロック信号の発信が所
定回数行われると、実行中のタスクを他のタスクに切り
換えるよう指示する指示手段と、当該他のタスクに割り
当てられたiビットのタスク識別子を物理アドレスの上
位kビットに変換し、格納手段に格納されている当該他
のタスクの論理アドレスの全ビット又はmビット(m<n)
を物理アドレスの下位mビットに変換することにより、
タスク切換の指示の直後にk+mビットの物理アドレスを
得るアドレス変換手段と、k+mビットの物理アドレスに
格納されている命令を実行する実行手段とを備えること
により上記第1、第2の目的を達成している。
実行するタスク実行装置であって、複数の部分領域を有
しており、前記複数タスクのそれぞれが各部分領域に固
定的に割り付けられているメモリと、複数タスクの全て
について、フェッチ先を示すnビットの論理アドレスを
格納している格納手段と、同期クロック信号の発信が所
定回数行われると、実行中のタスクを他のタスクに切り
換えるよう指示する指示手段と、当該他のタスクに割り
当てられたiビットのタスク識別子を物理アドレスの上
位kビットに変換し、格納手段に格納されている当該他
のタスクの論理アドレスの全ビット又はmビット(m<n)
を物理アドレスの下位mビットに変換することにより、
タスク切換の指示の直後にk+mビットの物理アドレスを
得るアドレス変換手段と、k+mビットの物理アドレスに
格納されている命令を実行する実行手段とを備えること
により上記第1、第2の目的を達成している。
【0030】
【発明の実施の形態】タスク実行装置についての説明を
開始する前に、本タスク実行装置がどのような装置に備
えられており、その装置においてタスク実行装置がどの
ような役割を果たしているかを説明する。図1にタスク
実行装置を備えるAVデコーダの内部構成を示す。
開始する前に、本タスク実行装置がどのような装置に備
えられており、その装置においてタスク実行装置がどの
ような役割を果たしているかを説明する。図1にタスク
実行装置を備えるAVデコーダの内部構成を示す。
【0031】AVデコーダは、MPEGストリーム再生のデコ
ード処理の中核を担う専用ハードウェアからなるデコー
ダコア部と、装置外部からの入力に係るタスク、装置内
部の入出力に係るタスク、装置外部への出力に係るタス
クを交互に実行するI/O処理部とからなり、この後者のI
/O処理部に、複数タスクの実行制御を行うタスク実行装
置が備えられている。
ード処理の中核を担う専用ハードウェアからなるデコー
ダコア部と、装置外部からの入力に係るタスク、装置内
部の入出力に係るタスク、装置外部への出力に係るタス
クを交互に実行するI/O処理部とからなり、この後者のI
/O処理部に、複数タスクの実行制御を行うタスク実行装
置が備えられている。
【0032】デコーダコア部は、setup部104、VLD部
105、IQ/IDCT部106、動き補償部107を含み、I
/O処理部は、ストリーム入力部101、バッファメモリ
102、ビットストリームFIFO103、ビデオ出力部1
08、オーディオ出力部109、I/Oプロセッサ11
3、バッファメモリコントローラ110、RAMコントロ
ーラ111、FIFOコントローラ112、ホストI/O部1
15を備えている。またバスとしてバッファメモリバス
121、SDRAMバス122、ビットストリームバス12
3、IOPコントロールバス124が設けられており、拡
張メモリとしてSDRAM125と接続している。
105、IQ/IDCT部106、動き補償部107を含み、I
/O処理部は、ストリーム入力部101、バッファメモリ
102、ビットストリームFIFO103、ビデオ出力部1
08、オーディオ出力部109、I/Oプロセッサ11
3、バッファメモリコントローラ110、RAMコントロ
ーラ111、FIFOコントローラ112、ホストI/O部1
15を備えている。またバスとしてバッファメモリバス
121、SDRAMバス122、ビットストリームバス12
3、IOPコントロールバス124が設けられており、拡
張メモリとしてSDRAM125と接続している。
【0033】(MPEGストリームの復号処理の概要)次に
図2を参照して、MPEGストリームの復号処理の概要につ
いて簡単に説明しておく。本実施形態においてMPEGスト
リームは、動画ストリーム、オーディオストリーム、副
映像ストリームからなる。このうち動画ストリームは、
圧縮された動画像データであり、復号処理において、差
分算出の基準となる画像(以下「参照画像」と呼ぶ)
と、算出された差分を符号化した画像(以下「差分画
像」と呼ぶ)とを加算することにより、動画像に復元さ
れる。
図2を参照して、MPEGストリームの復号処理の概要につ
いて簡単に説明しておく。本実施形態においてMPEGスト
リームは、動画ストリーム、オーディオストリーム、副
映像ストリームからなる。このうち動画ストリームは、
圧縮された動画像データであり、復号処理において、差
分算出の基準となる画像(以下「参照画像」と呼ぶ)
と、算出された差分を符号化した画像(以下「差分画
像」と呼ぶ)とを加算することにより、動画像に復元さ
れる。
【0034】図2において、MPEGストリーム内の動画ス
トリームのデータ構造は、階層的に表現されている。第
1層はMPEGストリームの階層であり、第2層は1秒長の
動画の階層である。第3層は1フレームの階層であり、
第4層は1スライスの階層である。第5層はマクロブロ
ックの階層である。破線C1に示す第1層と第2層との対
応関係を参照すると、MPEG(Motion Picture Image Codi
ng Experts Group)において1秒長の動画は、NTSC方式に
おける30フレームの画像(PAL方式では25フレームの画
像)にて構成されることがわかる。また、各フレームの
画像は、Iピクチャ(図中のI0)、Pピクチャ(図中のP
3)、Bピクチャ(図中のB1,B2)という3つのタイプが
あることもわかる。
トリームのデータ構造は、階層的に表現されている。第
1層はMPEGストリームの階層であり、第2層は1秒長の
動画の階層である。第3層は1フレームの階層であり、
第4層は1スライスの階層である。第5層はマクロブロ
ックの階層である。破線C1に示す第1層と第2層との対
応関係を参照すると、MPEG(Motion Picture Image Codi
ng Experts Group)において1秒長の動画は、NTSC方式に
おける30フレームの画像(PAL方式では25フレームの画
像)にて構成されることがわかる。また、各フレームの
画像は、Iピクチャ(図中のI0)、Pピクチャ(図中のP
3)、Bピクチャ(図中のB1,B2)という3つのタイプが
あることもわかる。
【0035】ここでIピクチャとは、圧縮された画像デ
ータであるが、一フレーム分の輝度成分及び色差成分を
含むものをいう。Pピクチャ(Predictive-Picture )又
はBピクチャ(Bidirectionally predictive Picture)
は差分画像と呼ばれるものである。ここでPピクチャと
は、過去方向に位置するフレームとの差分からなる差分
画像であり、Bピクチャとは、過去方向及び未来方向に
位置するフレームとの差分からなる差分画像である。
ータであるが、一フレーム分の輝度成分及び色差成分を
含むものをいう。Pピクチャ(Predictive-Picture )又
はBピクチャ(Bidirectionally predictive Picture)
は差分画像と呼ばれるものである。ここでPピクチャと
は、過去方向に位置するフレームとの差分からなる差分
画像であり、Bピクチャとは、過去方向及び未来方向に
位置するフレームとの差分からなる差分画像である。
【0036】Bピクチャ及びPピクチャがどのような単位
で作成されるかであるが、破線C2に示す第2層と第3層
との対応関係を参照すると、NTSC方式においてこれらの
画像は30本のスライスというデータにて構成され、PAL
方式では36本のスライスというデータにて構成されるこ
とがわかる。破線C3に示す第3層と第4層との対応関係
を参照すると、各スライスは、45のマクロブロックに
て構成されることがわかる。マクロブロックとは、横16
画素×縦16画素の輝度成分、色差成分にて構成される。
破線C4に示す第4層と第5層との対応関係を参照する
と、横16×縦16の輝度成分からなる輝度ブロックと、横
8×縦8の青色差成分からなる青色差ブロック(Cbブロッ
ク)と、横8×縦8の赤色差成分からなる赤色差ブロック
(Crブロック)とを含むことがわかる。本マクロブロッ
クは、AVデコーダにおける画像復号の一単位となる。
で作成されるかであるが、破線C2に示す第2層と第3層
との対応関係を参照すると、NTSC方式においてこれらの
画像は30本のスライスというデータにて構成され、PAL
方式では36本のスライスというデータにて構成されるこ
とがわかる。破線C3に示す第3層と第4層との対応関係
を参照すると、各スライスは、45のマクロブロックに
て構成されることがわかる。マクロブロックとは、横16
画素×縦16画素の輝度成分、色差成分にて構成される。
破線C4に示す第4層と第5層との対応関係を参照する
と、横16×縦16の輝度成分からなる輝度ブロックと、横
8×縦8の青色差成分からなる青色差ブロック(Cbブロッ
ク)と、横8×縦8の赤色差成分からなる赤色差ブロック
(Crブロック)とを含むことがわかる。本マクロブロッ
クは、AVデコーダにおける画像復号の一単位となる。
【0037】マクロブロックより下は、AVデコーダの構
成要素間がマクロブロックに含まれている輝度ブロッ
ク、色差ブロックをどのように処理するかを示すタイミ
ングチャートになっている。マクロブロックに対してど
のような復号化がなされるかであるが、マクロブロック
に対する復号化は、圧縮動画像データを可変長復号(Va
riable Length codeDecoding:以降VLDと略す)し
て、6つの空間周波数成分データ、ヘッダ情報、動きベ
クトルを得る。
成要素間がマクロブロックに含まれている輝度ブロッ
ク、色差ブロックをどのように処理するかを示すタイミ
ングチャートになっている。マクロブロックに対してど
のような復号化がなされるかであるが、マクロブロック
に対する復号化は、圧縮動画像データを可変長復号(Va
riable Length codeDecoding:以降VLDと略す)し
て、6つの空間周波数成分データ、ヘッダ情報、動きベ
クトルを得る。
【0038】その後、6つの空間周波数成分データに対
して逆離散余弦変換処理(DiscreteCosine Transform:DC
T)を行って低周波数帯に位置する空間周波数成分と、高
周波数帯に位置する空間周波数成分とに分離し、高周波
数帯を切り捨てて、低周波帯に位置する空間周波数成分
に対して逆量子化処理を行うことによりなされる。符号
化されたマクロブロックは、逆量子化及び逆離散余弦変
換処理がなされた後、動きベクトルに基づいた動き補償
により、映像として表示される。動きベクトルとは、前
後のフレームの画像と比較して相関性の最も高い箇所を
指し示す情報をいう。つまり動きベクトルは画像内の人
物像や建造物像がフレームの前後でどう動いたかをブロ
ック単位で表現している。
して逆離散余弦変換処理(DiscreteCosine Transform:DC
T)を行って低周波数帯に位置する空間周波数成分と、高
周波数帯に位置する空間周波数成分とに分離し、高周波
数帯を切り捨てて、低周波帯に位置する空間周波数成分
に対して逆量子化処理を行うことによりなされる。符号
化されたマクロブロックは、逆量子化及び逆離散余弦変
換処理がなされた後、動きベクトルに基づいた動き補償
により、映像として表示される。動きベクトルとは、前
後のフレームの画像と比較して相関性の最も高い箇所を
指し示す情報をいう。つまり動きベクトルは画像内の人
物像や建造物像がフレームの前後でどう動いたかをブロ
ック単位で表現している。
【0039】動き補償とは、差分の前後に表示されるべ
き参照画像と、当該差分とを足し合わせて(ブレンドし
て)一枚の完結した表示用画像を得ることをいう。以上
のMPEG準拠の動画像の符号化・複号化技術のうち、本明
細書で特に引用する内容は以上の通りである。より詳細
内容な技術内容については、株式会社アスキー「ポイン
ト図解式最新MPEG教科書」などの公知文献を参照さ
れたい。
き参照画像と、当該差分とを足し合わせて(ブレンドし
て)一枚の完結した表示用画像を得ることをいう。以上
のMPEG準拠の動画像の符号化・複号化技術のうち、本明
細書で特に引用する内容は以上の通りである。より詳細
内容な技術内容については、株式会社アスキー「ポイン
ト図解式最新MPEG教科書」などの公知文献を参照さ
れたい。
【0040】図2におけるタイミングチャートは、デコ
ーダコア部におけるsetup部104、VLD部105、IQ/I
DCT部106、動き補償部107の処理がどのようなタ
イミングが行われるか説明する際に引用するものとす
る。以上でMPEGストリームの復号処理の概要について説
明を終え、続いてAVデコーダの構成要素についての説明
を開始する。
ーダコア部におけるsetup部104、VLD部105、IQ/I
DCT部106、動き補償部107の処理がどのようなタ
イミングが行われるか説明する際に引用するものとす
る。以上でMPEGストリームの復号処理の概要について説
明を終え、続いてAVデコーダの構成要素についての説明
を開始する。
【0041】(AVデコーダの構成要素)ストリーム入力
部101は、記録媒体や通信媒体からMPEGストリームが
取り出されると、MPEGストリームをAVデコーダ内部に取
り込み、I/Oプロセッサ113による制御に応じてバッ
ファメモリバス121に出力する。バッファメモリ10
2は、バッファメモリコントローラ110の制御に従っ
て、ストリーム入力部101が取り込んだMPEGストリー
ムを保持する。またMPEGストリームを出力するようバッ
ファメモリコントローラ110に命じられると、これま
でに格納しているMPEGストリームをSDRAMバス122に
出力する。
部101は、記録媒体や通信媒体からMPEGストリームが
取り出されると、MPEGストリームをAVデコーダ内部に取
り込み、I/Oプロセッサ113による制御に応じてバッ
ファメモリバス121に出力する。バッファメモリ10
2は、バッファメモリコントローラ110の制御に従っ
て、ストリーム入力部101が取り込んだMPEGストリー
ムを保持する。またMPEGストリームを出力するようバッ
ファメモリコントローラ110に命じられると、これま
でに格納しているMPEGストリームをSDRAMバス122に
出力する。
【0042】ビットストリームFIFO103は、MPEGスト
リームに含まれているエレメンタリィストリームがSDRA
Mバス122に出力されると、FIFOコントローラ112
による制御に従って出力されたエレメンタリィストリー
ムを取り込む。ビットストリームFIFO103は取り込ん
だエレメンタリィストリームを先入れ先出し方式に保持
する。このようにして保持したエレメンタリィストリー
ムをFIFOコントローラ112の制御に従って、ビットス
トリームバス123に出力する。
リームに含まれているエレメンタリィストリームがSDRA
Mバス122に出力されると、FIFOコントローラ112
による制御に従って出力されたエレメンタリィストリー
ムを取り込む。ビットストリームFIFO103は取り込ん
だエレメンタリィストリームを先入れ先出し方式に保持
する。このようにして保持したエレメンタリィストリー
ムをFIFOコントローラ112の制御に従って、ビットス
トリームバス123に出力する。
【0043】setup部104は、ビットストリームFIFO
103に保持されているMPEGストリームからエレメンタ
リィストリームが抽出されるのを待ち、そのエレメンタ
リィストリームが動画ストリーム或はオーディオストリ
ームなら、VLD部105による復号によりそのヘッダ部
が伸長されるのを待つ。ヘッダが伸長されるとこれの解
析処理e1を図2に示すように行う。またエレメンタリィ
ストリームが動画ストリームなら動きベクトルの抽出e2
を行う。その後、逆量子化、逆離散余弦変換、動き補償
等が行われている間、音声ストリームの復号処理e3を行
う。
103に保持されているMPEGストリームからエレメンタ
リィストリームが抽出されるのを待ち、そのエレメンタ
リィストリームが動画ストリーム或はオーディオストリ
ームなら、VLD部105による復号によりそのヘッダ部
が伸長されるのを待つ。ヘッダが伸長されるとこれの解
析処理e1を図2に示すように行う。またエレメンタリィ
ストリームが動画ストリームなら動きベクトルの抽出e2
を行う。その後、逆量子化、逆離散余弦変換、動き補償
等が行われている間、音声ストリームの復号処理e3を行
う。
【0044】VLD部105は、ビットストリームFIFO1
03に格納されているエレメンタリィストリームが動画
ストリームであり、これを構成するマクロブロックがビ
ットストリームバス123に出力されると、マクロブロ
ックに含まれている4つの輝度ブロックY0,Y1,Y2,Y3
と、2つの色差ブロックCb,Crとに対して可変符号長デ
コードt21,t22,t23,t24,t25,t26を行う。
03に格納されているエレメンタリィストリームが動画
ストリームであり、これを構成するマクロブロックがビ
ットストリームバス123に出力されると、マクロブロ
ックに含まれている4つの輝度ブロックY0,Y1,Y2,Y3
と、2つの色差ブロックCb,Crとに対して可変符号長デ
コードt21,t22,t23,t24,t25,t26を行う。
【0045】IQ/IDCT部106は、可変符号長デコード
がなされた四つの輝度ブロックと、2つの色差ブロック
とに対して逆量子化及び逆離散余弦変換を行う。動き補
償部107は、IQ/IDCT部106により逆量子化及び逆
離散余弦変換がなされると、これらの処理がなされた輝
度ブロック及び色差ブロックに対応する参照画像(Y0,Y
1),(Y2,Y3),(Cb.Cr)をAVデコーダ外部に接続されたSDRA
M125から読み出し、輝度ブロック及び色差ブロック
と、参照画像とをブレンドする。そしてそのブレンド結
果に対してハーフペル補間を行うことにより動き補償を
行う。その後、RAMコントローラ111を制御すること
により動き補償の結果をSDRAM125に書き込ませる。
がなされた四つの輝度ブロックと、2つの色差ブロック
とに対して逆量子化及び逆離散余弦変換を行う。動き補
償部107は、IQ/IDCT部106により逆量子化及び逆
離散余弦変換がなされると、これらの処理がなされた輝
度ブロック及び色差ブロックに対応する参照画像(Y0,Y
1),(Y2,Y3),(Cb.Cr)をAVデコーダ外部に接続されたSDRA
M125から読み出し、輝度ブロック及び色差ブロック
と、参照画像とをブレンドする。そしてそのブレンド結
果に対してハーフペル補間を行うことにより動き補償を
行う。その後、RAMコントローラ111を制御すること
により動き補償の結果をSDRAM125に書き込ませる。
【0046】ビデオ出力部108は、動き補償部107
により参照画像とのブレンドとハーフペル補間とがなさ
れた一フレームの画像を映像信号に変換して外部に接続
されたテレビ受像器等のディスプレィ装置に出力する。
オーディオ出力部109は、setup部104により復号
されたオーディオストリームを音声信号に変換して外部
に接続されたスピーカ装置に出力する。
により参照画像とのブレンドとハーフペル補間とがなさ
れた一フレームの画像を映像信号に変換して外部に接続
されたテレビ受像器等のディスプレィ装置に出力する。
オーディオ出力部109は、setup部104により復号
されたオーディオストリームを音声信号に変換して外部
に接続されたスピーカ装置に出力する。
【0047】バッファメモリコントローラ(図中のBMコ
ントローラ)110は、I/Oプロセッサ113周辺にお
けるストリーム入力部101、ビデオ出力部108、オ
ーディオ出力部109間のアクセス調停を行うバッファ
メモリインターフェィスと、バッファメモリ102と、
ストリーム入力部101、ビデオ出力部108、オーデ
ィオ出力部109間のDMA転送機能を有するDMAコントロ
ーラとからなる。
ントローラ)110は、I/Oプロセッサ113周辺にお
けるストリーム入力部101、ビデオ出力部108、オ
ーディオ出力部109間のアクセス調停を行うバッファ
メモリインターフェィスと、バッファメモリ102と、
ストリーム入力部101、ビデオ出力部108、オーデ
ィオ出力部109間のDMA転送機能を有するDMAコントロ
ーラとからなる。
【0048】RAMコントローラ111は、SDRAM125に
対してのバーストリードと、バーストライトとが可能な
SDRAMインターフェィスと、SDRAM125−バッファメモ
リ102間、動き補償部107−バッファメモリ102
間のDMA転送機能を有するDMAコントローラとからなる。
FIFOコントローラ112は、ディアルポートRAMと、当
該RAMのRead/Writeを制御するコントローラと、ビット
ストリームFIFO103におけるアクセスアドレスを示す
ポインタを管理するポインタ管理機能とを有する。
対してのバーストリードと、バーストライトとが可能な
SDRAMインターフェィスと、SDRAM125−バッファメモ
リ102間、動き補償部107−バッファメモリ102
間のDMA転送機能を有するDMAコントローラとからなる。
FIFOコントローラ112は、ディアルポートRAMと、当
該RAMのRead/Writeを制御するコントローラと、ビット
ストリームFIFO103におけるアクセスアドレスを示す
ポインタを管理するポインタ管理機能とを有する。
【0049】I/Oプロセッサ113は、AVデコーダにお
ける4本のタスクに含まれるを4命令ずつ交互に実行す
る。この際、タスク実行は、I/Oプロセッサ内部の全て
の構成要素が同期制御のために用いているクロック信号
と同期して行われる。 (I/Oプロセッサに実行が課されたタスク)AVデコーダ
においてI/Oプロセッサに実行が課されたタスクが、ど
のような処理内容であるかを逐一説明する。 ・パーシング(parsing)タスク 本タスクはバッファメモリ102に入力されたMPEGスト
リームのパージング処理と、MPEGストリームから動画ス
トリーム、オーディオストリーム、副映像ストリームと
いったエレメンタリィストリームの抽出を行う抽出処理
に関する。
ける4本のタスクに含まれるを4命令ずつ交互に実行す
る。この際、タスク実行は、I/Oプロセッサ内部の全て
の構成要素が同期制御のために用いているクロック信号
と同期して行われる。 (I/Oプロセッサに実行が課されたタスク)AVデコーダ
においてI/Oプロセッサに実行が課されたタスクが、ど
のような処理内容であるかを逐一説明する。 ・パーシング(parsing)タスク 本タスクはバッファメモリ102に入力されたMPEGスト
リームのパージング処理と、MPEGストリームから動画ス
トリーム、オーディオストリーム、副映像ストリームと
いったエレメンタリィストリームの抽出を行う抽出処理
に関する。
【0050】パーシングタスクの実行時において、I/O
プロセッサ113は外部からストリーム入力部101に
入力されたMPEGストリームをバッファメモリバス(図中
ではBMバス)121に出力させる。バッファメモリコン
トローラ110を制御することによりバッファメモリバ
ス121に出力されたMPEGストリームをバッファメモリ
102に書き込ませる。その後I/Oプロセッサ113
は、バッファメモリコントローラ110を制御すること
によりMPEGストリームをバッファメモリバス121に出
力させ、MPEGストリームからエレメンタリィストリーム
を抽出する。バッファメモリコントローラ110を制御
することにより抽出されたエレメンタリィストリームを
バッファメモリ102に書き込ませる。その結果、バッ
ファメモリ102には、エレメンタリィストリームとし
てビットストリーム、オーディオストリーム、副映像ス
トリームが格納された状態となる。 ・オーディオストリーム転送制御タスク オーディオストリーム転送制御タスクはオーディオスト
リームに関する全ての転送制御からなるタスクである。
プロセッサ113は外部からストリーム入力部101に
入力されたMPEGストリームをバッファメモリバス(図中
ではBMバス)121に出力させる。バッファメモリコン
トローラ110を制御することによりバッファメモリバ
ス121に出力されたMPEGストリームをバッファメモリ
102に書き込ませる。その後I/Oプロセッサ113
は、バッファメモリコントローラ110を制御すること
によりMPEGストリームをバッファメモリバス121に出
力させ、MPEGストリームからエレメンタリィストリーム
を抽出する。バッファメモリコントローラ110を制御
することにより抽出されたエレメンタリィストリームを
バッファメモリ102に書き込ませる。その結果、バッ
ファメモリ102には、エレメンタリィストリームとし
てビットストリーム、オーディオストリーム、副映像ス
トリームが格納された状態となる。 ・オーディオストリーム転送制御タスク オーディオストリーム転送制御タスクはオーディオスト
リームに関する全ての転送制御からなるタスクである。
【0051】オーディオストリーム転送制御タスクに従
って、I/Oプロセッサ113はバッファメモリコントロ
ーラ110を制御することによりバッファメモリ102
にエレメンタリィストリームとして格納されているオー
ディオストリームをSDRAMバス122に出力させる。そ
の後、RAMコントローラ111を制御することによりSDR
AMバス122に出力されたオーディオストリームをSDRA
M125に書き込ませる。setup部104がビットストリ
ームFIFO103に格納されているオーディオストリーム
の復号を開始すると、その復号処理がどれだけ進捗した
かを監視し、オーディオストリームの残量が所定値以下
となると、RAMコントローラ111を制御して、SDRAM1
25に格納されているオーディオストリームを読み出さ
せてSDRAMバス122に出力させる。FIFOコントローラ
112を制御してこのように出力されたオーディオスト
リームをビットストリームFIFO103に書き込ませる。
って、I/Oプロセッサ113はバッファメモリコントロ
ーラ110を制御することによりバッファメモリ102
にエレメンタリィストリームとして格納されているオー
ディオストリームをSDRAMバス122に出力させる。そ
の後、RAMコントローラ111を制御することによりSDR
AMバス122に出力されたオーディオストリームをSDRA
M125に書き込ませる。setup部104がビットストリ
ームFIFO103に格納されているオーディオストリーム
の復号を開始すると、その復号処理がどれだけ進捗した
かを監視し、オーディオストリームの残量が所定値以下
となると、RAMコントローラ111を制御して、SDRAM1
25に格納されているオーディオストリームを読み出さ
せてSDRAMバス122に出力させる。FIFOコントローラ
112を制御してこのように出力されたオーディオスト
リームをビットストリームFIFO103に書き込ませる。
【0052】このようなビットストリームFIFO103へ
の書き込みにより、オーディオストリームの復号の進捗
に応じたオーディオストリームの補充を行う。デコード
が済むと、I/Oプロセッサ113はFIFOコントローラ1
12を制御することによりデコード済みオーディオスト
リームをSDRAMバス122に出力させる。バッファメモ
リコントローラ110を制御して、SDRAMバス122に
出力されたオーディオストリームをバッファメモリ10
2に書き込ませる。 ・動画ストリーム転送制御タスク 動画ストリーム転送制御タスクは動画ストリームに関す
る全ての転送制御からなるタスクである。
の書き込みにより、オーディオストリームの復号の進捗
に応じたオーディオストリームの補充を行う。デコード
が済むと、I/Oプロセッサ113はFIFOコントローラ1
12を制御することによりデコード済みオーディオスト
リームをSDRAMバス122に出力させる。バッファメモ
リコントローラ110を制御して、SDRAMバス122に
出力されたオーディオストリームをバッファメモリ10
2に書き込ませる。 ・動画ストリーム転送制御タスク 動画ストリーム転送制御タスクは動画ストリームに関す
る全ての転送制御からなるタスクである。
【0053】I/Oプロセッサ113は、バッファメモリ
コントローラ110を制御することによりバッファメモ
リ102に格納されている動画ストリームをSDRAMバス
122に出力させ、RAMコントローラ111を制御する
ことによりSDRAMバス122に出力された動画ストリー
ムをSDRAM125に書き込ませる。VLD部105、IQ/IDC
T部106、動き補償部107がビットストリームFIFO
103に格納されている動画ストリームの復号を開始す
ると、動画ストリームの復号がどれだけ進捗したかを監
視し、復号すべき残量が所定値以下となると、RAMコン
トローラ111を制御して、SDRAM125に格納されて
いる動画ストリームを読み出させて、FIFOコントローラ
112にビットストリームFIFO103に書き込ませる。
このようなビットストリームFIFO103の書き込みによ
り、復号処理の進捗に応じた動画ストリームの補充を行
う。 ・ビデオアウトタスク ビデオアウトタスクは映像出力に関する出力制御からな
るタスクである。
コントローラ110を制御することによりバッファメモ
リ102に格納されている動画ストリームをSDRAMバス
122に出力させ、RAMコントローラ111を制御する
ことによりSDRAMバス122に出力された動画ストリー
ムをSDRAM125に書き込ませる。VLD部105、IQ/IDC
T部106、動き補償部107がビットストリームFIFO
103に格納されている動画ストリームの復号を開始す
ると、動画ストリームの復号がどれだけ進捗したかを監
視し、復号すべき残量が所定値以下となると、RAMコン
トローラ111を制御して、SDRAM125に格納されて
いる動画ストリームを読み出させて、FIFOコントローラ
112にビットストリームFIFO103に書き込ませる。
このようなビットストリームFIFO103の書き込みによ
り、復号処理の進捗に応じた動画ストリームの補充を行
う。 ・ビデオアウトタスク ビデオアウトタスクは映像出力に関する出力制御からな
るタスクである。
【0054】本タスクの実行時においてI/Oプロセッサ
113はRAMコントローラ111を制御することによ
り、VLD部105、IQ/IDCT部106、動き補償部107
による処理が済んでSDRAM125に格納されている動画
データをSDRAMバス122に出力させ、バッファメモリ
コントローラ110を制御して、SDRAMバス122に出
力された動画ストリームをバッファメモリ102に書き
込ませる。バッファメモリコントローラ110を制御し
て、SDRAM125に書き込まれた動画ストリームをSDRAM
バス122に出力させ、ビデオ出力部108に映像信号
に変換させる。それと共に副映像ストリームを展開して
得られた副映像と、二次元グラフィックスとを混合して
ビデオ出力部108に出力させる。
113はRAMコントローラ111を制御することによ
り、VLD部105、IQ/IDCT部106、動き補償部107
による処理が済んでSDRAM125に格納されている動画
データをSDRAMバス122に出力させ、バッファメモリ
コントローラ110を制御して、SDRAMバス122に出
力された動画ストリームをバッファメモリ102に書き
込ませる。バッファメモリコントローラ110を制御し
て、SDRAM125に書き込まれた動画ストリームをSDRAM
バス122に出力させ、ビデオ出力部108に映像信号
に変換させる。それと共に副映像ストリームを展開して
得られた副映像と、二次元グラフィックスとを混合して
ビデオ出力部108に出力させる。
【0055】(I/Oプロセッサの構成)I/Oプロセッサの
第1実施形態を図面を参照しながら説明する。図3はI/
Oプロセッサの内部構成を示す図であり、本図に示すよ
うにI/Oプロセッサは命令メモリ10、命令読出回路1
1、タスク管理部12、アドレス変換回路13、演算実
行部14、レジスタセット15、及び命令解読制御部1
6から構成される。
第1実施形態を図面を参照しながら説明する。図3はI/
Oプロセッサの内部構成を示す図であり、本図に示すよ
うにI/Oプロセッサは命令メモリ10、命令読出回路1
1、タスク管理部12、アドレス変換回路13、演算実
行部14、レジスタセット15、及び命令解読制御部1
6から構成される。
【0056】命令メモリ10は、上述した六本のタスク
を構成する命令を記憶しており、アドレス変換回路13
により変換された物理アドレスに記憶されている命令を
命令解読制御部16に出力する。命令読出回路11は、
各タスクについてのフェッチ先アドレスをアドレス変換
回路13に出力する。
を構成する命令を記憶しており、アドレス変換回路13
により変換された物理アドレスに記憶されている命令を
命令解読制御部16に出力する。命令読出回路11は、
各タスクについてのフェッチ先アドレスをアドレス変換
回路13に出力する。
【0057】タスク管理部12は、各タスクに割り当て
られた数の同期クロック信号が発信されれば次に実行す
べきタスクの識別子を命令読出回路11に出力する。ア
ドレス変換回路13は、命令読出回路11が出力したフ
ェッチ先アドレスを論理アドレスとして受け取って、こ
れを物理アドレスに変換する。演算実行部14は、ALU,
乗算器,バレルシフタを備え、命令解読制御部16によ
る制御に基づきレジスタセット15における汎用レジス
タの格納値を用いて演算を行う。
られた数の同期クロック信号が発信されれば次に実行す
べきタスクの識別子を命令読出回路11に出力する。ア
ドレス変換回路13は、命令読出回路11が出力したフ
ェッチ先アドレスを論理アドレスとして受け取って、こ
れを物理アドレスに変換する。演算実行部14は、ALU,
乗算器,バレルシフタを備え、命令解読制御部16によ
る制御に基づきレジスタセット15における汎用レジス
タの格納値を用いて演算を行う。
【0058】レジスタセット15は、32bit長の汎用レ
ジスタ(GR)と、16bit長の汎用レジスタとをそれぞれ24
本有する。命令解読制御部16(図中ではDecoder1
6)は、命令メモリ10が出力する命令を解読し、その
解読結果に従って命令読出回路11及び演算実行部14
を制御する。
ジスタ(GR)と、16bit長の汎用レジスタとをそれぞれ24
本有する。命令解読制御部16(図中ではDecoder1
6)は、命令メモリ10が出力する命令を解読し、その
解読結果に従って命令読出回路11及び演算実行部14
を制御する。
【0059】(命令読出回路11の構成)命令読出回路
11がどのような内部構成にてフェッチ先アドレスの更
新を行うかを図4を参照しながら説明する。命令読出回
路11の内部構成を図4に示す。図4に示すように、命
令読出回路11はIF1+1保持部20、increment回路2
1、IF2保持部22、DECPC保持部23、タスク別PC格納
部24、セレクタ25及びセレクタ26からなり、解読
ステージの前に二段の読出ステージを行うパイプライン
処理を実現するよう構成されている。この二段の読出ス
テージにおけるそれぞれのフェッチ先アドレスを第1フ
ェッチ先アドレスIF1、第2フェッチ先アドレスIF2とい
う。
11がどのような内部構成にてフェッチ先アドレスの更
新を行うかを図4を参照しながら説明する。命令読出回
路11の内部構成を図4に示す。図4に示すように、命
令読出回路11はIF1+1保持部20、increment回路2
1、IF2保持部22、DECPC保持部23、タスク別PC格納
部24、セレクタ25及びセレクタ26からなり、解読
ステージの前に二段の読出ステージを行うパイプライン
処理を実現するよう構成されている。この二段の読出ス
テージにおけるそれぞれのフェッチ先アドレスを第1フ
ェッチ先アドレスIF1、第2フェッチ先アドレスIF2とい
う。
【0060】図4においてIF1はセレクタ26が出力し
たアドレスをいい、IF2はIF2保持部22が保持するアド
レスをいう。図6は、命令読出回路11内で行われるパ
イプライン処理を示すタイミングチャートである。以
降、命令読出回路11の構成要素について言及する場合
は、本タイミングチャートを引用するものとする。IF1+
1保持部20は、カウント値を保持するためのカウント
値レジスタとして用いられるものであり、タスク別PC格
納部24から何れか一つのフェッチ先アドレスが出力さ
れると、当該アドレスをカウント初期値として保持し、
そのカウント値のインクリメントがincrement回路21
より行われると、インクリメント後のアドレスを最新の
カウント値として保持する。
たアドレスをいい、IF2はIF2保持部22が保持するアド
レスをいう。図6は、命令読出回路11内で行われるパ
イプライン処理を示すタイミングチャートである。以
降、命令読出回路11の構成要素について言及する場合
は、本タイミングチャートを引用するものとする。IF1+
1保持部20は、カウント値を保持するためのカウント
値レジスタとして用いられるものであり、タスク別PC格
納部24から何れか一つのフェッチ先アドレスが出力さ
れると、当該アドレスをカウント初期値として保持し、
そのカウント値のインクリメントがincrement回路21
より行われると、インクリメント後のアドレスを最新の
カウント値として保持する。
【0061】この際、increment回路21より新たにイ
ンクリメントされたアドレスが出力されてくると、IF1+
1保持部20はそれまで保持していたアドレスを信号線
を介してセレクタ25に出力すると共にセレクタ26
に出力する。increment回路21は、セレクタ26によ
り出力されたIF1をクロック信号に従ってインクリメン
トする。インクリメントされたアドレスはIF1+1保持部
20により保持される。セレクタ26により出力された
IF1は、それまでIF1+1保持部20により保持されていた
値であるので、increment回路21によるインクリメン
トにより、IF1+1保持部20が保持していたカウント値
は一クロック毎にインクリメントされてゆく。
ンクリメントされたアドレスが出力されてくると、IF1+
1保持部20はそれまで保持していたアドレスを信号線
を介してセレクタ25に出力すると共にセレクタ26
に出力する。increment回路21は、セレクタ26によ
り出力されたIF1をクロック信号に従ってインクリメン
トする。インクリメントされたアドレスはIF1+1保持部
20により保持される。セレクタ26により出力された
IF1は、それまでIF1+1保持部20により保持されていた
値であるので、increment回路21によるインクリメン
トにより、IF1+1保持部20が保持していたカウント値
は一クロック毎にインクリメントされてゆく。
【0062】図6のタイミングチャートにおいて、フェ
ッチ先アドレスとして出力された命令0-0のフェッチ先
アドレスは、increment回路21によってインクリメン
トされる(図中のinc1,inc2,inc3参照)。これによりIF
1+1保持部20が保持するフェッチ先アドレスは、命令0
-1のアドレス、命令0-2のアドレス、命令0-3のアドレス
というように更新されてゆく。
ッチ先アドレスとして出力された命令0-0のフェッチ先
アドレスは、increment回路21によってインクリメン
トされる(図中のinc1,inc2,inc3参照)。これによりIF
1+1保持部20が保持するフェッチ先アドレスは、命令0
-1のアドレス、命令0-2のアドレス、命令0-3のアドレス
というように更新されてゆく。
【0063】IF2保持部22は、クロック信号に同期し
て前回IF1+1保持部20により出力されたアドレスを命
令を読み出すべき第2のフェッチ先アドレスとして保持
する。図6のタイミングチャートでは、第2のフェッチ
先アドレスとして命令0-0のアドレス、命令0-1のアドレ
ス、命令0-2のアドレス、命令0-3のアドレスが出力され
ていることがわかる。これらのアドレスは第1のフェッ
チ先アドレスより一サイクルだけ遅れていることがわか
る。新たなアドレスがIF1+1保持部20から出力される
と、IF2保持部22はそれまで保持していたアドレスをD
ECPC保持部23に出力する。出力後、IF1+1保持部20
により出力されたその新たなアドレスを保持する。
て前回IF1+1保持部20により出力されたアドレスを命
令を読み出すべき第2のフェッチ先アドレスとして保持
する。図6のタイミングチャートでは、第2のフェッチ
先アドレスとして命令0-0のアドレス、命令0-1のアドレ
ス、命令0-2のアドレス、命令0-3のアドレスが出力され
ていることがわかる。これらのアドレスは第1のフェッ
チ先アドレスより一サイクルだけ遅れていることがわか
る。新たなアドレスがIF1+1保持部20から出力される
と、IF2保持部22はそれまで保持していたアドレスをD
ECPC保持部23に出力する。出力後、IF1+1保持部20
により出力されたその新たなアドレスを保持する。
【0064】DECPC保持部23は、前回IF2保持部22に
より出力されたアドレスを保持する。このアドレスは命
令解読制御部16による解読制御の対象となる命令のア
ドレスと一致する。新たなアドレスがIF2保持部22に
より出力されると、その新たなアドレスを保持して解読
対象のアドレスの更新を行う。DECPC保持部23が保持
するアドレスは、IF2保持部22がそれまで保持してい
たアドレスであり、IF2保持部22が保持するアドレス
は、IF1+1保持部20がそれまで保持していたアドレス
であるから、IF1+1保持部20が保持しているアドレス
と比較すると、DECPC保持部23に保持されているアド
レスは二命令遅れであり、IF2保持部22が保持してい
るアドレスと比較すると、DECPC保持部23に保持され
ているアドレスは一命令遅れである。
より出力されたアドレスを保持する。このアドレスは命
令解読制御部16による解読制御の対象となる命令のア
ドレスと一致する。新たなアドレスがIF2保持部22に
より出力されると、その新たなアドレスを保持して解読
対象のアドレスの更新を行う。DECPC保持部23が保持
するアドレスは、IF2保持部22がそれまで保持してい
たアドレスであり、IF2保持部22が保持するアドレス
は、IF1+1保持部20がそれまで保持していたアドレス
であるから、IF1+1保持部20が保持しているアドレス
と比較すると、DECPC保持部23に保持されているアド
レスは二命令遅れであり、IF2保持部22が保持してい
るアドレスと比較すると、DECPC保持部23に保持され
ているアドレスは一命令遅れである。
【0065】タスク別PC格納部24は、タスク毎のフェ
ッチ先アドレスを保持する領域をその内部に有するメモ
リ回路である。内部領域において、個々に記憶されてい
るフェッチ先アドレスには、2ビット長のタスク識別子
がアドレスとして付されている。尚、タスク0のフェッ
チ先アドレスをIPC0と呼び、タスク1のフェッチ先アド
レスをIPC1と呼ぶ。以降タスク2、タスク3についても同
様である。
ッチ先アドレスを保持する領域をその内部に有するメモ
リ回路である。内部領域において、個々に記憶されてい
るフェッチ先アドレスには、2ビット長のタスク識別子
がアドレスとして付されている。尚、タスク0のフェッ
チ先アドレスをIPC0と呼び、タスク1のフェッチ先アド
レスをIPC1と呼ぶ。以降タスク2、タスク3についても同
様である。
【0066】タスク別PC格納部24におけるこれらのフ
ェッチ先アドレスの読み書き動作はタスク管理部12か
らタスクを切り換える旨の指示(タスク切替信号chg_ta
sk_exのHigh値)が出力された場合に行われる。このタ
スク切替信号chg_task_exがHigh値である場合において
タスク管理部12よりタスク切替信号chg_task_exと共
に実行が済んだタスクの2ビット長の識別子(書き込み
アドレス選択信号taskid(wr_adr))及び次に実行すべき
タスクの2ビット長の識別子(読み出しアドレス選択信
号nxttaskid(rd_adr))が出力されるが、タスク別PC格
納部24はこれらの信号に従った内部領域の読み書きを
行う。即ちタスク別PC格納部24は書き込みアドレス選
択信号taskid(wr_adr)をタスク別PC格納部24内のアド
レスとして解釈して、それに指示される内部領域にセレ
クタ25から出力されたフェッチ先アドレスを格納す
る。図6のタイミングチャートにおいてタスク切替信号
chg_task_exが立ち上がったタイミングa1,b1においてフ
ェッチ先アドレスの書き込みa2,b2が行われる。
ェッチ先アドレスの読み書き動作はタスク管理部12か
らタスクを切り換える旨の指示(タスク切替信号chg_ta
sk_exのHigh値)が出力された場合に行われる。このタ
スク切替信号chg_task_exがHigh値である場合において
タスク管理部12よりタスク切替信号chg_task_exと共
に実行が済んだタスクの2ビット長の識別子(書き込み
アドレス選択信号taskid(wr_adr))及び次に実行すべき
タスクの2ビット長の識別子(読み出しアドレス選択信
号nxttaskid(rd_adr))が出力されるが、タスク別PC格
納部24はこれらの信号に従った内部領域の読み書きを
行う。即ちタスク別PC格納部24は書き込みアドレス選
択信号taskid(wr_adr)をタスク別PC格納部24内のアド
レスとして解釈して、それに指示される内部領域にセレ
クタ25から出力されたフェッチ先アドレスを格納す
る。図6のタイミングチャートにおいてタスク切替信号
chg_task_exが立ち上がったタイミングa1,b1においてフ
ェッチ先アドレスの書き込みa2,b2が行われる。
【0067】書き込みa2が行われた時期には、IF2保持
部22は命令0-3のアドレスを保持しており、IF1+1保持
部20はこの命令0-3のアドレスに『1』を加算したアド
レス0-4を信号線を介してセレクタ25に出力してい
る。このように出力されると、アドレス0-4がタスク別P
C格納部24に格納される。これにより、タスク別PC格
納部24内のタスク0に次のスレッドが巡ってくれば、
タスク0の読出はアドレス0-4から行われる。
部22は命令0-3のアドレスを保持しており、IF1+1保持
部20はこの命令0-3のアドレスに『1』を加算したアド
レス0-4を信号線を介してセレクタ25に出力してい
る。このように出力されると、アドレス0-4がタスク別P
C格納部24に格納される。これにより、タスク別PC格
納部24内のタスク0に次のスレッドが巡ってくれば、
タスク0の読出はアドレス0-4から行われる。
【0068】書き込みb2が行われた時期には、IF2保持
部22は命令1-3のアドレスを保持しており、IF1+1保持
部20はこの命令1-3のアドレスに『1』を加算したアド
レス1-4を信号線を介してセレクタ25に出力してい
る。このように出力すると、インクリメントされたアド
レス1-4がタスク別PC格納部24に格納される。これに
より、タスク別PC格納部24内のタスク1に次のスレッ
ドが巡ってくれば、タスク1の読出はアドレス1-4から行
われる。
部22は命令1-3のアドレスを保持しており、IF1+1保持
部20はこの命令1-3のアドレスに『1』を加算したアド
レス1-4を信号線を介してセレクタ25に出力してい
る。このように出力すると、インクリメントされたアド
レス1-4がタスク別PC格納部24に格納される。これに
より、タスク別PC格納部24内のタスク1に次のスレッ
ドが巡ってくれば、タスク1の読出はアドレス1-4から行
われる。
【0069】また読み出しアドレス選択信号nxttaskid
(rd_adr)がタスク管理部12より与えられると、タスク
別PC格納部24は、その識別子をタスク別PC格納部24
内のアドレスとして解釈して、それにより指示される内
部領域からタスクのフェッチ先アドレスを取り出してセ
レクタ26に出力する。図6のタイミングチャートにお
いて、読み出しアドレス選択信号nxttaskidとして識別
子(1)がタスク管理部12より与えられ、chg_task_exが
立ち上がると(参照符号a3参照)、タスク別PC格納部2
4は、その識別子により指示されるタスク1をタスク別P
C格納部24内のアドレスとして解釈して、そこに格納
されているフェッチ先アドレス(1-0)を取り出してセレ
クタ26に出力する(参照符号a4参照)。
(rd_adr)がタスク管理部12より与えられると、タスク
別PC格納部24は、その識別子をタスク別PC格納部24
内のアドレスとして解釈して、それにより指示される内
部領域からタスクのフェッチ先アドレスを取り出してセ
レクタ26に出力する。図6のタイミングチャートにお
いて、読み出しアドレス選択信号nxttaskidとして識別
子(1)がタスク管理部12より与えられ、chg_task_exが
立ち上がると(参照符号a3参照)、タスク別PC格納部2
4は、その識別子により指示されるタスク1をタスク別P
C格納部24内のアドレスとして解釈して、そこに格納
されているフェッチ先アドレス(1-0)を取り出してセレ
クタ26に出力する(参照符号a4参照)。
【0070】命令2-0のアドレスがフェッチ先アドレスI
F1として出力されたタイミングで、読み出しアドレス選
択信号nxttaskidとして識別子(2)がタスク管理部12よ
り与えられ、chg_task_exが立ち上がると(参照符号a5
参照)、タスク別PC格納部24は、その識別子により指
示されるタスク2のフェッチ先アドレスとしてフェッチ
先アドレス(2-0)を取り出してセレクタ26に出力する
(参照符号a6参照)。
F1として出力されたタイミングで、読み出しアドレス選
択信号nxttaskidとして識別子(2)がタスク管理部12よ
り与えられ、chg_task_exが立ち上がると(参照符号a5
参照)、タスク別PC格納部24は、その識別子により指
示されるタスク2のフェッチ先アドレスとしてフェッチ
先アドレス(2-0)を取り出してセレクタ26に出力する
(参照符号a6参照)。
【0071】以上のようにフェッチ先アドレスが出力さ
れると、タスク0の命令は4命令だけ実行され、これに
続いてタスク1の命令が4命令だけ実行される。以降、
タスク2、タスク3、タスク4の命令列がそれぞれ四命令
ずつ実行されてゆく。4入力−1出力のセレクタであるセ
レクタ25は、、、の信号線に伝送されるアドレ
スの何れかを選択的にタスク別PC格納部24に出力す
る。これらの〜の何れを選択するかは図5に示す出
力論理表に示す通りであり、命令解読制御部16が命令
の解読結果に応じて出力するselpc信号に基づいてなさ
れる。ここでの信号線はIF1+1保持部20の出力であ
り、タスク管理部12よりタスク切替信号chg_task_ex
がHigh値に切り換えられた場合はセレクタ25はこれを
選択する。
れると、タスク0の命令は4命令だけ実行され、これに
続いてタスク1の命令が4命令だけ実行される。以降、
タスク2、タスク3、タスク4の命令列がそれぞれ四命令
ずつ実行されてゆく。4入力−1出力のセレクタであるセ
レクタ25は、、、の信号線に伝送されるアドレ
スの何れかを選択的にタスク別PC格納部24に出力す
る。これらの〜の何れを選択するかは図5に示す出
力論理表に示す通りであり、命令解読制御部16が命令
の解読結果に応じて出力するselpc信号に基づいてなさ
れる。ここでの信号線はIF1+1保持部20の出力であ
り、タスク管理部12よりタスク切替信号chg_task_ex
がHigh値に切り換えられた場合はセレクタ25はこれを
選択する。
【0072】また、の信号線はそれぞれ命令解読制
御部16及び演算実行部14を接続されている。は、
絶対アドレス指定を用いた分岐命令の解読時において、
分岐命令の即値を分岐先アドレスとして命令解読制御部
16から取得するために選択される。は、間接参照指
定を用いた分岐命令の解読時において、演算実行部14
により算出されたアドレスを分岐先アドレスとして用い
る際に選択される。
御部16及び演算実行部14を接続されている。は、
絶対アドレス指定を用いた分岐命令の解読時において、
分岐命令の即値を分岐先アドレスとして命令解読制御部
16から取得するために選択される。は、間接参照指
定を用いた分岐命令の解読時において、演算実行部14
により算出されたアドレスを分岐先アドレスとして用い
る際に選択される。
【0073】セレクタ26は、2入力−1出力のセレクタ
であり、タスク切替信号chg_task_exがLowの期間におい
てincrement回路21によるインクリメント後のアドレ
スを選択してIF1としてincrement回路21及びIF2保持
部22に出力すると共に、これを論理アドレスとしてア
ドレス変換回路13に出力する。タスク切替信号chg_ta
sk_exがHighの期間においてタスク別PC格納部24に格
納されている次に実行すべきタスクのアドレスをIF1と
してincrement回路21及びIF2保持部22に出力する。
であり、タスク切替信号chg_task_exがLowの期間におい
てincrement回路21によるインクリメント後のアドレ
スを選択してIF1としてincrement回路21及びIF2保持
部22に出力すると共に、これを論理アドレスとしてア
ドレス変換回路13に出力する。タスク切替信号chg_ta
sk_exがHighの期間においてタスク別PC格納部24に格
納されている次に実行すべきタスクのアドレスをIF1と
してincrement回路21及びIF2保持部22に出力する。
【0074】以上のように構成された命令読み出し回路
によれば、タスク切り換え時において、これまで実行さ
れていたタスクのフェッチ先アドレスはセレクタ25に
よりタスク別PC格納部24に格納され、これに代えてタ
スク別PC格納部24に格納されている次のタスクのアド
レスがセレクタ26によりIF1として出力される。以上
のフェッチ先アドレスの切り換えは、一サイクルにて行
われる。 (4.2)タスク管理部12は、次に実行すべきタスクを
どのように決定するかタスク管理部12がどのような内
部構成にて次に実行すべきタスクを決定するかを図7に
示すタスク管理部12の内部構成を参照しながら説明す
る。
によれば、タスク切り換え時において、これまで実行さ
れていたタスクのフェッチ先アドレスはセレクタ25に
よりタスク別PC格納部24に格納され、これに代えてタ
スク別PC格納部24に格納されている次のタスクのアド
レスがセレクタ26によりIF1として出力される。以上
のフェッチ先アドレスの切り換えは、一サイクルにて行
われる。 (4.2)タスク管理部12は、次に実行すべきタスクを
どのように決定するかタスク管理部12がどのような内
部構成にて次に実行すべきタスクを決定するかを図7に
示すタスク管理部12の内部構成を参照しながら説明す
る。
【0075】図7は、タスク管理部12の内部構成を示
す図である。図7に示すようにタスク管理部12はスレ
ッドマネージャー55及びスケジューラ56からなり、
スレッドマネージャー55はフリップフロップ 51、
カウンタ52、及び比較器54から構成され、スケジュ
ーラ56はタスクID保持部71、タスクID保持部76、
タスクラウンド管理部73、及びプライオリティエンコ
ーダ74から構成される。
す図である。図7に示すようにタスク管理部12はスレ
ッドマネージャー55及びスケジューラ56からなり、
スレッドマネージャー55はフリップフロップ 51、
カウンタ52、及び比較器54から構成され、スケジュ
ーラ56はタスクID保持部71、タスクID保持部76、
タスクラウンド管理部73、及びプライオリティエンコ
ーダ74から構成される。
【0076】フリップフロップ 51は、次に実行され
る命令が何番目であるかを示す整数値(これをカウント
値iと呼ぶ)を保持する。カウンタ52は、初期値が
『1』に設定され、上限値が『4』に設定されたカウンタ
であり、クロック信号に同期してフリップフロップ 5
1に保持されているカウント値を1,2,3,4,1,2,3,4とい
うようにカウントアップする。
る命令が何番目であるかを示す整数値(これをカウント
値iと呼ぶ)を保持する。カウンタ52は、初期値が
『1』に設定され、上限値が『4』に設定されたカウンタ
であり、クロック信号に同期してフリップフロップ 5
1に保持されているカウント値を1,2,3,4,1,2,3,4とい
うようにカウントアップする。
【0077】比較器54は、カウンタ52がカウントア
ップした値と、整数値『4』との比較を行い、もしカウ
ンタ52のカウント値と整数値『4』とが一致すれば、
タスク切替信号chg_task_exをHigh値にしてセレクタ2
6及びタスク別PC格納部24に出力する。このようにカ
ウンタ52が『4』をカウントする度にタスク切替信号
chg_task_exがHighになることにより、セレクタ26に
よるタスク別PC格納部24の選択は、4サイクルにつき
一回行われることになる。この際、タスク別PC格納部2
4は次に実行すべきタスクのフェッチ先アドレスをセレ
クタ26に出力しているから、タスク別PC格納部24か
らのフェッチ先アドレスの出力は、4サイクルの実行に
つき一回行われることになる。
ップした値と、整数値『4』との比較を行い、もしカウ
ンタ52のカウント値と整数値『4』とが一致すれば、
タスク切替信号chg_task_exをHigh値にしてセレクタ2
6及びタスク別PC格納部24に出力する。このようにカ
ウンタ52が『4』をカウントする度にタスク切替信号
chg_task_exがHighになることにより、セレクタ26に
よるタスク別PC格納部24の選択は、4サイクルにつき
一回行われることになる。この際、タスク別PC格納部2
4は次に実行すべきタスクのフェッチ先アドレスをセレ
クタ26に出力しているから、タスク別PC格納部24か
らのフェッチ先アドレスの出力は、4サイクルの実行に
つき一回行われることになる。
【0078】タスクID保持部71は、命令実行のカウン
トがカウンタ52により行われているタスクの識別子
(これをタスク識別子taskidと呼ぶ。)を保持する。タ
スク識別子は2ビットを用いて、命令メモリ10に記憶
されている4つのタスクの何れか一つを指示する。命令
実行のカウントが4回行われると、スケジューラ56に
おいてプライオリティエンコーダ74から次にスレッド
を割り当てるべきタスクのタスク識別子taskidが出力さ
れてくるが、この際タスクID保持部71は、これまで保
持していたタスク識別子taskidをタスクラウンド管理部
73に出力し、新たに出力されてくるタスク識別子task
idを保持する。
トがカウンタ52により行われているタスクの識別子
(これをタスク識別子taskidと呼ぶ。)を保持する。タ
スク識別子は2ビットを用いて、命令メモリ10に記憶
されている4つのタスクの何れか一つを指示する。命令
実行のカウントが4回行われると、スケジューラ56に
おいてプライオリティエンコーダ74から次にスレッド
を割り当てるべきタスクのタスク識別子taskidが出力さ
れてくるが、この際タスクID保持部71は、これまで保
持していたタスク識別子taskidをタスクラウンド管理部
73に出力し、新たに出力されてくるタスク識別子task
idを保持する。
【0079】タスクラウンド管理部73は、タスクID保
持部71においてタスク識別子がどのように更新されて
きたかを監視し、4ビット長のレジスタを用いて4個の
タスクのうちスレッドが割り当てられたものを管理す
る。またカウンタ52が4命令の実行をカウントする
と、タスクID保持部71によりタスク識別子taskidが出
力され、タスクラウンド管理部73はスレッドの割り当
てが済んだタスクを示す数値(この数値をラウンド値ta
sknと呼ぶ)をプライオリティエンコーダ74に出力す
る。ラウンド値tasknにおいて、第1ビットが『1』であ
れば、タスク1にスレッドが割り当てられたことを示
し、第1ビットが『0』であればタスク1がそうでないこ
とを示す。第2ビットが『1』であれば、タスク2にスレ
ッドが割り当てられたことを示し、第2ビットが『0』
であればタスク2がそうでないことを示す。
持部71においてタスク識別子がどのように更新されて
きたかを監視し、4ビット長のレジスタを用いて4個の
タスクのうちスレッドが割り当てられたものを管理す
る。またカウンタ52が4命令の実行をカウントする
と、タスクID保持部71によりタスク識別子taskidが出
力され、タスクラウンド管理部73はスレッドの割り当
てが済んだタスクを示す数値(この数値をラウンド値ta
sknと呼ぶ)をプライオリティエンコーダ74に出力す
る。ラウンド値tasknにおいて、第1ビットが『1』であ
れば、タスク1にスレッドが割り当てられたことを示
し、第1ビットが『0』であればタスク1がそうでないこ
とを示す。第2ビットが『1』であれば、タスク2にスレ
ッドが割り当てられたことを示し、第2ビットが『0』
であればタスク2がそうでないことを示す。
【0080】タスク0、タスク1にスレッドの割り当てが
済めば、タスクラウンド管理部73は『0011』をプライ
オリティエンコーダ74に出力する。またタスク0、タ
スク1、タスク2にスレッドの割り当てが済めば、タスク
ラウンド管理部73は『0011』をプライオリティエンコ
ーダ74に出力し、タスク0、タスク1、タスク2、タス
ク3にスレッドの割り当てが済めば、タスクラウンド管
理部73は『1111』をプライオリティエンコーダ74に
出力する。
済めば、タスクラウンド管理部73は『0011』をプライ
オリティエンコーダ74に出力する。またタスク0、タ
スク1、タスク2にスレッドの割り当てが済めば、タスク
ラウンド管理部73は『0011』をプライオリティエンコ
ーダ74に出力し、タスク0、タスク1、タスク2、タス
ク3にスレッドの割り当てが済めば、タスクラウンド管
理部73は『1111』をプライオリティエンコーダ74に
出力する。
【0081】プライオリティエンコーダ74は、タスク
ラウンド管理部73が出力したラウンド値tasknを受け
取り、受け取ったタスクラウンド管理部73のラウンド
値tasknにおいて何ビット目に『1』から『0』への反転
が生じているかを検出する。このように『0』への反転
が生じたビットを検出すると、この反転が生じたビット
に割り当られているタスクのタスク識別子taskidをタス
クID保持部71に出力する。出力されたタスク識別子
は、アドレス選択信号nxttaskid(rd_adr)としてタスク
別PC格納部24に出力される。
ラウンド管理部73が出力したラウンド値tasknを受け
取り、受け取ったタスクラウンド管理部73のラウンド
値tasknにおいて何ビット目に『1』から『0』への反転
が生じているかを検出する。このように『0』への反転
が生じたビットを検出すると、この反転が生じたビット
に割り当られているタスクのタスク識別子taskidをタス
クID保持部71に出力する。出力されたタスク識別子
は、アドレス選択信号nxttaskid(rd_adr)としてタスク
別PC格納部24に出力される。
【0082】例えばタスクラウンド管理部73からラウ
ンド値tasknとして『0011』が出力されると、プライオ
リティエンコーダ74はこのラウンド値tasknにおいて
下位から第2ビット目に『0』への反転が生じているこ
とを検出する(尚、最下位ビットをゼロビットと数えて
いることは留意されたい。)。この第2ビット目はタス
ク2に割り当られているビットであるから、プライオリ
ティエンコーダ74はタスク2のタスク識別子taskidを
タスクID保持部71に出力する。
ンド値tasknとして『0011』が出力されると、プライオ
リティエンコーダ74はこのラウンド値tasknにおいて
下位から第2ビット目に『0』への反転が生じているこ
とを検出する(尚、最下位ビットをゼロビットと数えて
いることは留意されたい。)。この第2ビット目はタス
ク2に割り当られているビットであるから、プライオリ
ティエンコーダ74はタスク2のタスク識別子taskidを
タスクID保持部71に出力する。
【0083】タスクID保持部76は、プライオリティエ
ンコーダ74が新たなタスク識別子taskidを出力する
と、直前に出力されていたタスク識別子taskidを書き込
みアドレス選択信号taskid(wr_adr)として保持して、タ
スク別PC格納部24に出力する。続いて命令メモリ10
における論理空間と物理空間との対応関係について説明
する。本実施形態における論理空間−物理空間の構成を
図8に示す。本図において物理空間はn+2ビットであ
り、論理空間はnビットである。
ンコーダ74が新たなタスク識別子taskidを出力する
と、直前に出力されていたタスク識別子taskidを書き込
みアドレス選択信号taskid(wr_adr)として保持して、タ
スク別PC格納部24に出力する。続いて命令メモリ10
における論理空間と物理空間との対応関係について説明
する。本実施形態における論理空間−物理空間の構成を
図8に示す。本図において物理空間はn+2ビットであ
り、論理空間はnビットである。
【0084】論理空間には、nビットの領域E、領域F、
領域G、領域Hがある。領域Eは、タスク0が割り当てられ
ており、領域Fは、タスク1が割り当てられている。領域
Gは、タスク2が割り当てられており、領域Hは、タスク3
が割り当てられている。領域E、領域F、領域G、領域Hの
左脇に添えられた16数値はnを13ビットとした場合の各
領域の先頭アドレス、終了アドレスを示すものである。
この場合領域A、領域B、領域C、領域Dの先頭アドレス、
終了アドレスは何れも0000−1FFFとなる。
領域G、領域Hがある。領域Eは、タスク0が割り当てられ
ており、領域Fは、タスク1が割り当てられている。領域
Gは、タスク2が割り当てられており、領域Hは、タスク3
が割り当てられている。領域E、領域F、領域G、領域Hの
左脇に添えられた16数値はnを13ビットとした場合の各
領域の先頭アドレス、終了アドレスを示すものである。
この場合領域A、領域B、領域C、領域Dの先頭アドレス、
終了アドレスは何れも0000−1FFFとなる。
【0085】n+2ビットの物理空間は、nビットの領域
A、領域B、領域C、領域Dからなる。領域Aは、n+2ビット
の上位2ビットが”00”のアドレス空間に存在し、タス
ク0が割り当てられている。領域Bは、n+2ビットの上位2
ビットが”01”のアドレス空間に存在し、タスク1が割
り当てられている。
A、領域B、領域C、領域Dからなる。領域Aは、n+2ビット
の上位2ビットが”00”のアドレス空間に存在し、タス
ク0が割り当てられている。領域Bは、n+2ビットの上位2
ビットが”01”のアドレス空間に存在し、タスク1が割
り当てられている。
【0086】領域Cは、n+2ビットの上位2ビットが”1
0”のアドレス空間に存在し、タスク2が割り当てられて
いる。領域Dは、n+2ビットの上位2ビットが”11”のア
ドレス空間に存在し、タスク3が割り当てられている。
領域A、領域B、領域C、領域Dの左脇に添えられた16数値
はn+2ビットを15ビットとした場合の各領域の先頭アド
レス、終了アドレスを示すものである。この場合領域A
の先頭アドレスは0000となり、終了アドレスが1FFFとな
る。また領域Bの先頭アドレスは2000、終了アドレスは3
FFFとなり、領域Cの先頭アドレスは4000、終了アドレス
は5FFFとなる。領域Dの先頭アドレスは6000、終了アド
レスは7FFFとなる。
0”のアドレス空間に存在し、タスク2が割り当てられて
いる。領域Dは、n+2ビットの上位2ビットが”11”のア
ドレス空間に存在し、タスク3が割り当てられている。
領域A、領域B、領域C、領域Dの左脇に添えられた16数値
はn+2ビットを15ビットとした場合の各領域の先頭アド
レス、終了アドレスを示すものである。この場合領域A
の先頭アドレスは0000となり、終了アドレスが1FFFとな
る。また領域Bの先頭アドレスは2000、終了アドレスは3
FFFとなり、領域Cの先頭アドレスは4000、終了アドレス
は5FFFとなる。領域Dの先頭アドレスは6000、終了アド
レスは7FFFとなる。
【0087】図9は、アドレス変換回路13の内部構成
を示す図である。上述したように、物理アドレスの上位
2ビット”00”、”01”、”10”、”11”は2ビット長の
タスク識別子”00”、”01”、”10”、”11”と同一な
ので、各タスクについてのnビット長の論理空間の上位
に2ビット長のタスク識別子を付与することによりn+2ビ
ットの物理アドレスを得ている。
を示す図である。上述したように、物理アドレスの上位
2ビット”00”、”01”、”10”、”11”は2ビット長の
タスク識別子”00”、”01”、”10”、”11”と同一な
ので、各タスクについてのnビット長の論理空間の上位
に2ビット長のタスク識別子を付与することによりn+2ビ
ットの物理アドレスを得ている。
【0088】図6のタイミングチャートを参照して、ア
ドレス変換回路13による物理アドレスへの変換処理に
ついて説明する。図6において論理アドレスは、下から
3段目に位置している。一方、タスク管理部12が出力
する読み出しタスク選択信号nxttaskidは、本図におい
て下から2段目に位置している。アドレス変換回路13
によるアドレス変換は、タスク選択信号nxttaskidが示
す次のタスクの識別子を、論理アドレスの上位に付与す
るので、アドレス変換回路13は、タスク選択信号nxtt
askidの出力(図中のc1,c3)と、セレクタ26による論理
アドレスの出力(図中のc2,c4)とほぼ同時に物理アドレ
スを出力する。
ドレス変換回路13による物理アドレスへの変換処理に
ついて説明する。図6において論理アドレスは、下から
3段目に位置している。一方、タスク管理部12が出力
する読み出しタスク選択信号nxttaskidは、本図におい
て下から2段目に位置している。アドレス変換回路13
によるアドレス変換は、タスク選択信号nxttaskidが示
す次のタスクの識別子を、論理アドレスの上位に付与す
るので、アドレス変換回路13は、タスク選択信号nxtt
askidの出力(図中のc1,c3)と、セレクタ26による論理
アドレスの出力(図中のc2,c4)とほぼ同時に物理アドレ
スを出力する。
【0089】以上のように本実施形態によれば、少ない
ハードウェア資源で複数タスクの保護を行うことができ
る。また従来のようにTLBをアクセスする必要がないの
で、アドレス変換の高速化が可能である。しかもTLBの
書換えが発生しないため、タスク切り替えが頻繁に起こ
るマルチスレッドシステムに適用することができる。ま
た、タスクの数に変化があった場合も、論理空間の大き
さが変化しないため、命令セットを変える必要がない。
しかも、少ないハードウェア資源で、命令のビット長を
短くすることが可能である。これにより、命令メモリや
管理する論理アドレスのビット長を削減でき、ハードウ
ェア資源の削減が可能になる。
ハードウェア資源で複数タスクの保護を行うことができ
る。また従来のようにTLBをアクセスする必要がないの
で、アドレス変換の高速化が可能である。しかもTLBの
書換えが発生しないため、タスク切り替えが頻繁に起こ
るマルチスレッドシステムに適用することができる。ま
た、タスクの数に変化があった場合も、論理空間の大き
さが変化しないため、命令セットを変える必要がない。
しかも、少ないハードウェア資源で、命令のビット長を
短くすることが可能である。これにより、命令メモリや
管理する論理アドレスのビット長を削減でき、ハードウ
ェア資源の削減が可能になる。
【0090】また第1実施形態では、タスクの数は4つ
としたが、この数はいくらでもよい。更に、命令メモリ
を書き換え可能な不揮発性メモリ等で構成し、ここに装
置外部に格納されているプログラムをダウンロードする
ことにより、命令メモリに格納されているタスクを置き
換えてもよい。
としたが、この数はいくらでもよい。更に、命令メモリ
を書き換え可能な不揮発性メモリ等で構成し、ここに装
置外部に格納されているプログラムをダウンロードする
ことにより、命令メモリに格納されているタスクを置き
換えてもよい。
【0091】(第2実施形態)第2実施形態は、並列実
行すべきタスクの数を6つにまで増やすことを意図した
実施形態である。ここでタスクの数を6つとすると、タ
スク識別子は3ビット必要となる。第1実施形態に示し
たように、この3ビットのタスク識別子を論理アドレス
の上位に付与することでアドレス変換を行うのであれ
ば、その物理空間のサイズは膨大となり、望ましくな
い。そこで第2実施形態では、図10に示すように、各
物理空間−論理空間にタスクを割り当てている。図10
は、6つのタスクを論理空間−物理空間に割り当てたタ
スク割り当ての一例を示す図である。タスクの数を増や
したため、本実施形態における論理空間、物理空間は、
各領域にそれぞれ、タスク0−タスク1、タスク2−タス
ク3、タスク4−タスク5という2つのタスクの組み合わ
せを割り当てている。また、全てのタスクの共通部が配
された共有空間を有している。
行すべきタスクの数を6つにまで増やすことを意図した
実施形態である。ここでタスクの数を6つとすると、タ
スク識別子は3ビット必要となる。第1実施形態に示し
たように、この3ビットのタスク識別子を論理アドレス
の上位に付与することでアドレス変換を行うのであれ
ば、その物理空間のサイズは膨大となり、望ましくな
い。そこで第2実施形態では、図10に示すように、各
物理空間−論理空間にタスクを割り当てている。図10
は、6つのタスクを論理空間−物理空間に割り当てたタ
スク割り当ての一例を示す図である。タスクの数を増や
したため、本実施形態における論理空間、物理空間は、
各領域にそれぞれ、タスク0−タスク1、タスク2−タス
ク3、タスク4−タスク5という2つのタスクの組み合わ
せを割り当てている。また、全てのタスクの共通部が配
された共有空間を有している。
【0092】論理空間には、nビットの領域E、領域F、
領域G、領域Hがある。領域Eは、全てのタスクが共有空
間として用いる領域である。領域Eを共有空間として設
けている意義は以下の通りである。即ち、本I/O処理部
において実行されるべきタスクは、何れもバッファメモ
リ102−ビットストリームFIFO103−SDRAM125
をアクセスするものであり、バッファメモリコントロー
ラ110、RAMコントローラ111、FIFOコントローラ
112を制御対象としている。ということは、タスク0
〜タスク6は共通化すべき手順を有しているということ
である。例えばSDRAM125からのデータ読み出し、SDR
AM125へのデータ書き込みは、それぞれのタスクでデ
ータの転送元/転送先の指定は異なるであろうが、バッ
ファメモリコントローラ110に対してデータ読み出し
/データ書き込みを行うという手順は共通化できる。こ
のような共通手順が配されているのが共有空間である。
領域G、領域Hがある。領域Eは、全てのタスクが共有空
間として用いる領域である。領域Eを共有空間として設
けている意義は以下の通りである。即ち、本I/O処理部
において実行されるべきタスクは、何れもバッファメモ
リ102−ビットストリームFIFO103−SDRAM125
をアクセスするものであり、バッファメモリコントロー
ラ110、RAMコントローラ111、FIFOコントローラ
112を制御対象としている。ということは、タスク0
〜タスク6は共通化すべき手順を有しているということ
である。例えばSDRAM125からのデータ読み出し、SDR
AM125へのデータ書き込みは、それぞれのタスクでデ
ータの転送元/転送先の指定は異なるであろうが、バッ
ファメモリコントローラ110に対してデータ読み出し
/データ書き込みを行うという手順は共通化できる。こ
のような共通手順が配されているのが共有空間である。
【0093】領域Fは、タスク0、タスク1が割り当てら
れており、領域Gは、タスク2、タスク3が割り当てられ
ている。領域Hは、タスク4、タスク5が割り当てられて
いる。領域E、領域F、領域G、領域Hの左脇に添えられた
16数値はnを12ビットとした場合の各領域の先頭アドレ
ス、終了アドレスを示すものである。この場合領域Eの
先頭アドレス、終了アドレスは何れも0000−07FFとな
り、領域F、領域G、領域Hの先頭アドレス、終了アドレ
スは何れも0800−0FFFとなる。
れており、領域Gは、タスク2、タスク3が割り当てられ
ている。領域Hは、タスク4、タスク5が割り当てられて
いる。領域E、領域F、領域G、領域Hの左脇に添えられた
16数値はnを12ビットとした場合の各領域の先頭アドレ
ス、終了アドレスを示すものである。この場合領域Eの
先頭アドレス、終了アドレスは何れも0000−07FFとな
り、領域F、領域G、領域Hの先頭アドレス、終了アドレ
スは何れも0800−0FFFとなる。
【0094】n+1ビットの物理空間は、nビットの領域
A、領域B、領域C、領域Dからなる。領域Aは、n+1ビット
の上位2ビットが”00”のアドレス空間である。領域B
は、n+1ビットの上位2ビットが”01”のアドレス空間で
あり、タスク0、タスク1が割り当てられている。領域C
は、n+1ビットの上位2ビットが”10”のアドレス空間で
あり、タスク2、タスク3が割り当てられている。
A、領域B、領域C、領域Dからなる。領域Aは、n+1ビット
の上位2ビットが”00”のアドレス空間である。領域B
は、n+1ビットの上位2ビットが”01”のアドレス空間で
あり、タスク0、タスク1が割り当てられている。領域C
は、n+1ビットの上位2ビットが”10”のアドレス空間で
あり、タスク2、タスク3が割り当てられている。
【0095】領域Dは、n+1ビットの上位2ビットが”1
1”のアドレス空間であり、タスク4、タスク5が割り当
てられている。領域A、領域B、領域C、領域Dの左脇に添
えられた16進数値はn+1ビットを13ビットとした場合の
各領域の先頭アドレス、終了アドレスを示すものであ
る。この場合領域Aの先頭アドレスは0000となり、終了
アドレスが07FFとなる。また領域Bの先頭アドレスは080
0、終了アドレスは0FFFとなり、領域Cの先頭アドレスは
1000、終了アドレスは17FFとなる。領域Dの先頭アドレ
スは1800、終了アドレスは1FFFとなる。
1”のアドレス空間であり、タスク4、タスク5が割り当
てられている。領域A、領域B、領域C、領域Dの左脇に添
えられた16進数値はn+1ビットを13ビットとした場合の
各領域の先頭アドレス、終了アドレスを示すものであ
る。この場合領域Aの先頭アドレスは0000となり、終了
アドレスが07FFとなる。また領域Bの先頭アドレスは080
0、終了アドレスは0FFFとなり、領域Cの先頭アドレスは
1000、終了アドレスは17FFとなる。領域Dの先頭アドレ
スは1800、終了アドレスは1FFFとなる。
【0096】各タスクが論理空間−物理空間に割り当て
られている場合において、論理空間を物理アドレスに変
換するよう構成されたアドレス変換回路65の内部構成
について説明する。図11(a)は、アドレス変換回路
65の内部構成を示す図であり、本図に示すようにアド
レス変換回路65は、インバータ60、OR回路61、OR
回路62、AND回路63、AND回路64から構成される。
られている場合において、論理空間を物理アドレスに変
換するよう構成されたアドレス変換回路65の内部構成
について説明する。図11(a)は、アドレス変換回路
65の内部構成を示す図であり、本図に示すようにアド
レス変換回路65は、インバータ60、OR回路61、OR
回路62、AND回路63、AND回路64から構成される。
【0097】インバータ60は、タスク識別子の1ビッ
ト目を反転をとり、OR回路61に出力する。OR回路61
は、タスク識別子1ビット目の反転値と、タスク識別子
の2ビット目との論理和をとり、これを物理アドレスの1
1ビットとしてAND回路63に出力する。
ト目を反転をとり、OR回路61に出力する。OR回路61
は、タスク識別子1ビット目の反転値と、タスク識別子
の2ビット目との論理和をとり、これを物理アドレスの1
1ビットとしてAND回路63に出力する。
【0098】図11(b)は、インバータ60、OR回路
61の入出力における真理値の対応を示す図表である。
図11(b)の真理値表において、タスク0−タスク1の
識別子の出力時においてOR回路61の出力値は”1”と
なり、タスク2−タスク3の識別子の出力時においてOR回
路61の出力値は”0”、タスク4−タスク5の識別子の
出力時においてOR回路61の出力値は”1”となる。
61の入出力における真理値の対応を示す図表である。
図11(b)の真理値表において、タスク0−タスク1の
識別子の出力時においてOR回路61の出力値は”1”と
なり、タスク2−タスク3の識別子の出力時においてOR回
路61の出力値は”0”、タスク4−タスク5の識別子の
出力時においてOR回路61の出力値は”1”となる。
【0099】OR回路62は、タスク識別子の1ビット
と、タスク識別子の2ビット目との論理和をとり、これ
を物理アドレスの12ビットとしてAND回路63に出力す
る。図11(b)の真理値表において、タスク0−タス
ク1の識別子の出力時においてOR回路62の出力値は”
0”となり、タスク2−タスク3の識別子の出力時におい
てOR回路61の出力値は”1”、タスク4−タスク5の識
別子の出力時においてOR回路61の出力値は”1”とな
る。
と、タスク識別子の2ビット目との論理和をとり、これ
を物理アドレスの12ビットとしてAND回路63に出力す
る。図11(b)の真理値表において、タスク0−タス
ク1の識別子の出力時においてOR回路62の出力値は”
0”となり、タスク2−タスク3の識別子の出力時におい
てOR回路61の出力値は”1”、タスク4−タスク5の識
別子の出力時においてOR回路61の出力値は”1”とな
る。
【0100】OR回路61−OR回路62の出力値を総合す
ると、タスク0−タスク1の識別子の出力時において、物
理アドレスの11ビット、12ビットは”01”となり、タス
ク2−タスク3の識別子の出力時において、物理アドレス
の11ビット、12ビットは”10”となる。タスク4−タス
ク5の識別子の出力時において、物理アドレスの11ビッ
ト、12ビットは”11”となる。
ると、タスク0−タスク1の識別子の出力時において、物
理アドレスの11ビット、12ビットは”01”となり、タス
ク2−タスク3の識別子の出力時において、物理アドレス
の11ビット、12ビットは”10”となる。タスク4−タス
ク5の識別子の出力時において、物理アドレスの11ビッ
ト、12ビットは”11”となる。
【0101】AND回路63は、OR回路61の出力値と、
論理空間の11ビットとの論理積をとる。この場合、論理
空間の11ビット目が”1”である場合のみ、即ち、論理
アドレスが共有空間以外の論理空間を指示する場合の
み、OR回路61の出力値がスルーに出力される。AND回
路64は、OR回路61の出力値と、論理空間の11ビット
との論理積をとる。この場合、論理空間の11ビット目
が”1”である場合のみ、即ち、論理アドレスが共有空
間以外の論理空間を指示する場合のみ、OR回路62の出
力値がスルーに出力される。
論理空間の11ビットとの論理積をとる。この場合、論理
空間の11ビット目が”1”である場合のみ、即ち、論理
アドレスが共有空間以外の論理空間を指示する場合の
み、OR回路61の出力値がスルーに出力される。AND回
路64は、OR回路61の出力値と、論理空間の11ビット
との論理積をとる。この場合、論理空間の11ビット目
が”1”である場合のみ、即ち、論理アドレスが共有空
間以外の論理空間を指示する場合のみ、OR回路62の出
力値がスルーに出力される。
【0102】以上のように本実施形態によれば、全ての
タスクが共有に用いることができる共有空間を設けて、
ここで全てのタスクにおいて共通に用いられるを配置す
ることにより、タスク間の重複部分を排除することがで
き、物理空間のメモリサイズをより低減することができ
る。尚、第2実施形態では、タスク0,1が領域Aを、タ
スク2,3が領域Bを、タスク4,5が領域Cを占有している
が、領域A、領域B、領域Cにどのような組合せのタスク
を配置してもよい。
タスクが共有に用いることができる共有空間を設けて、
ここで全てのタスクにおいて共通に用いられるを配置す
ることにより、タスク間の重複部分を排除することがで
き、物理空間のメモリサイズをより低減することができ
る。尚、第2実施形態では、タスク0,1が領域Aを、タ
スク2,3が領域Bを、タスク4,5が領域Cを占有している
が、領域A、領域B、領域Cにどのような組合せのタスク
を配置してもよい。
【0103】また第2実施形態では、タスクの数は6つ
としたが、タスク数はどのような数であってもよい。更
に、第2実施形態では、全タスクが共有する論理空間と
各タスクが占有する論理空間の大きさを同じにしたが、
異なっていても構わない。 (第3実施形態)第2実施形態は、物理空間−論理空間
の各領域にどのタスクを割り当てかを固定化していた
が、第3実施形態は、物理空間−論理空間の各領域にど
のタスクを割り当てるかを自由に設定できるようにした
実施形態である。自由設定の目的をもって構成されたア
ドレス変換回路76の内部構成を図12(a)に示す。
本図に示すようにアドレス変換回路76は、領域番号レ
ジスタ71、セレクタ72、AND回路73、OR回路7
4、AND回路75から構成される。
としたが、タスク数はどのような数であってもよい。更
に、第2実施形態では、全タスクが共有する論理空間と
各タスクが占有する論理空間の大きさを同じにしたが、
異なっていても構わない。 (第3実施形態)第2実施形態は、物理空間−論理空間
の各領域にどのタスクを割り当てかを固定化していた
が、第3実施形態は、物理空間−論理空間の各領域にど
のタスクを割り当てるかを自由に設定できるようにした
実施形態である。自由設定の目的をもって構成されたア
ドレス変換回路76の内部構成を図12(a)に示す。
本図に示すようにアドレス変換回路76は、領域番号レ
ジスタ71、セレクタ72、AND回路73、OR回路7
4、AND回路75から構成される。
【0104】領域番号レジスタ71は、12ビットのレジ
スタであり、6つのタスクのそれぞれに割り当てられた
領域番号を保持する。領域番号とは、領域A、領域B、領
域Cのそれぞれを指示するための2ビットの番号であ
り、”00”の領域番号は領域Aを指示し、”01”の領域
番号は領域Bを指示している。”10”の領域番号は領域C
を指示している。領域番号レジスタ71の11ビット−10
ビットは、タスク0に割り当てられた領域番号を保持し
ており、領域番号レジスタ71の9ビット−8ビットは、
タスク1に割り当てられた領域番号を保持している。領
域番号レジスタ71の7ビット−6ビットはタスク2、5ビ
ット−4ビットはタスク3、3ビット−2ビットはタスク
4、1ビット−0ビットはタスク5に割り当てられた領域番
号をそれぞれ保持している。
スタであり、6つのタスクのそれぞれに割り当てられた
領域番号を保持する。領域番号とは、領域A、領域B、領
域Cのそれぞれを指示するための2ビットの番号であ
り、”00”の領域番号は領域Aを指示し、”01”の領域
番号は領域Bを指示している。”10”の領域番号は領域C
を指示している。領域番号レジスタ71の11ビット−10
ビットは、タスク0に割り当てられた領域番号を保持し
ており、領域番号レジスタ71の9ビット−8ビットは、
タスク1に割り当てられた領域番号を保持している。領
域番号レジスタ71の7ビット−6ビットはタスク2、5ビ
ット−4ビットはタスク3、3ビット−2ビットはタスク
4、1ビット−0ビットはタスク5に割り当てられた領域番
号をそれぞれ保持している。
【0105】セレクタ72は、領域番号レジスタ71に
保持されている12ビットの値のうち、タスク管理部12
が出力したタスク識別子に対応するもののみを出力す
る。タスク管理部12が出力したタスク識別子がタスク
0のものなら、領域番号レジスタ71の11ビット−10ビ
ットに保持されている領域番号を出力し、タスク管理部
12が出力したタスク識別子がタスク1のものなら、領
域番号レジスタ71の9ビット−8ビットに保持されてい
る領域番号を出力する。
保持されている12ビットの値のうち、タスク管理部12
が出力したタスク識別子に対応するもののみを出力す
る。タスク管理部12が出力したタスク識別子がタスク
0のものなら、領域番号レジスタ71の11ビット−10ビ
ットに保持されている領域番号を出力し、タスク管理部
12が出力したタスク識別子がタスク1のものなら、領
域番号レジスタ71の9ビット−8ビットに保持されてい
る領域番号を出力する。
【0106】タスク管理部12が出力したタスク識別子
がタスク2のものなら、領域番号レジスタ71の7ビット
-6ビットに保持されている領域番号、タスク管理部12
が出力したタスク識別子がタスク3のものなら、領域番
号レジスタ71の5ビット-4ビットに保持されている領
域番号を出力する。AND回路73は、セレクタ72が出
力した領域番号の1ビットと、論理空間の12ビットとの
論理和をとり、その結果を物理アドレスのnビットとし
て出力する。論理空間が共有空間を指示する場合、論理
空間の12ビットは”0”となるので、物理アドレスのnビ
ットは”0”として出力される。一方、論理空間が共有
空間外を指示する場合、論理空間の12ビットは”1”と
なるので、領域番号の1ビット目が物理アドレスのnビッ
トとして出力される。
がタスク2のものなら、領域番号レジスタ71の7ビット
-6ビットに保持されている領域番号、タスク管理部12
が出力したタスク識別子がタスク3のものなら、領域番
号レジスタ71の5ビット-4ビットに保持されている領
域番号を出力する。AND回路73は、セレクタ72が出
力した領域番号の1ビットと、論理空間の12ビットとの
論理和をとり、その結果を物理アドレスのnビットとし
て出力する。論理空間が共有空間を指示する場合、論理
空間の12ビットは”0”となるので、物理アドレスのnビ
ットは”0”として出力される。一方、論理空間が共有
空間外を指示する場合、論理空間の12ビットは”1”と
なるので、領域番号の1ビット目が物理アドレスのnビッ
トとして出力される。
【0107】OR回路74は、セレクタ72が出力した領
域番号の1ビット目と、0ビット目との論理和をとり、そ
の和をAND回路75に出力する。図12(b)の真理値
表を参照すると、領域番号が”01”、”10”、”11”の
場合はOR回路74はセレクタ72が出力した領域番号を
そのまま出力していることがわかる。一方、セレクタ7
2が”00”を出力した場合、OR回路74は”01”を出力
する。OR回路74が備えられているのは、領域番号レジ
スタ71において何れかの領域番号が未設定であり、領
域番号レジスタ71に不定値”00”が格納されている場
合、これを”01”に変換するためである。
域番号の1ビット目と、0ビット目との論理和をとり、そ
の和をAND回路75に出力する。図12(b)の真理値
表を参照すると、領域番号が”01”、”10”、”11”の
場合はOR回路74はセレクタ72が出力した領域番号を
そのまま出力していることがわかる。一方、セレクタ7
2が”00”を出力した場合、OR回路74は”01”を出力
する。OR回路74が備えられているのは、領域番号レジ
スタ71において何れかの領域番号が未設定であり、領
域番号レジスタ71に不定値”00”が格納されている場
合、これを”01”に変換するためである。
【0108】AND回路75は、OR回路74が出力値と、
論理空間の12ビットとの論理和をとり、物理アドレスの
12ビット目として出力する。論理空間が共有空間を指示
する場合、論理空間の12ビットは”0”となるので、物
理アドレスのnビットは”0”として出力される。一方、
論理空間が共有空間外を指示する場合、論理空間の12ビ
ットは”1”となるので、OR回路74の出力値が物理ア
ドレスの12ビット目として出力される。
論理空間の12ビットとの論理和をとり、物理アドレスの
12ビット目として出力する。論理空間が共有空間を指示
する場合、論理空間の12ビットは”0”となるので、物
理アドレスのnビットは”0”として出力される。一方、
論理空間が共有空間外を指示する場合、論理空間の12ビ
ットは”1”となるので、OR回路74の出力値が物理ア
ドレスの12ビット目として出力される。
【0109】図13(a)は、領域番号レジスタ71に
対して、各タスクの領域番号を設定した場合の一例を示
す図である。本図においてタスク0には、領域番号”0
1”が設定され、タスク1には領域番号”10”が設定され
ている。タスク2、タスク3、タスク4、タスク5にはそれ
ぞれ”01”、”11”、”10”、”11”の領域番号が設定
されている。このように領域番号が設定されたことによ
り、図13(b)に示すように領域Aにはタスク0、タス
ク2が割り当てられ、領域Bにはタスク1、タスク4、領域
Cにはタスク3、タスク5がそれぞれ割り当てられる。
対して、各タスクの領域番号を設定した場合の一例を示
す図である。本図においてタスク0には、領域番号”0
1”が設定され、タスク1には領域番号”10”が設定され
ている。タスク2、タスク3、タスク4、タスク5にはそれ
ぞれ”01”、”11”、”10”、”11”の領域番号が設定
されている。このように領域番号が設定されたことによ
り、図13(b)に示すように領域Aにはタスク0、タス
ク2が割り当てられ、領域Bにはタスク1、タスク4、領域
Cにはタスク3、タスク5がそれぞれ割り当てられる。
【0110】図14(a)は、領域番号レジスタ71に
対して、各タスクの領域番号を設定した様子の別の一例
を示す図である。本図においてタスク0には、領域番
号”11”が設定され、タスク1には領域番号”10”が設
定されている。タスク2、タスク3、タスク4、タスク5に
はそれぞれ”01”、”11”、”10”、”01”の領域番号
が設定されている。このように領域番号が設定されたこ
とにより、図14(b)に示すように領域Aにはタスク
2、タスク5が割り当てられ、領域Bにはタスク1、タスク
4、領域Cにはタスク0、タスク3がそれぞれ割り当てられ
る。
対して、各タスクの領域番号を設定した様子の別の一例
を示す図である。本図においてタスク0には、領域番
号”11”が設定され、タスク1には領域番号”10”が設
定されている。タスク2、タスク3、タスク4、タスク5に
はそれぞれ”01”、”11”、”10”、”01”の領域番号
が設定されている。このように領域番号が設定されたこ
とにより、図14(b)に示すように領域Aにはタスク
2、タスク5が割り当てられ、領域Bにはタスク1、タスク
4、領域Cにはタスク0、タスク3がそれぞれ割り当てられ
る。
【0111】以上のように本実施形態によれば、領域番
号レジスタにおいて各タスクに対応づけられたビット長
に領域番号を設定することにより、1つ以上のタスクが
占有できる領域における占有タスクの組合せを自由に設
定することができる。
号レジスタにおいて各タスクに対応づけられたビット長
に領域番号を設定することにより、1つ以上のタスクが
占有できる領域における占有タスクの組合せを自由に設
定することができる。
【0112】
【発明の効果】以上のように本発明は、複数タスクのう
ち1つを実行するタスク実行装置であって、複数の部分
領域を有しており、前記複数タスクのそれぞれが各部分
領域に固定的に割り付けられているメモリと、複数タス
クの全てについて、フェッチ先を示すnビットの論理ア
ドレスを格納している格納手段と、同期クロック信号の
発信が所定回数行われると、実行中のタスクを他のタス
クに切り換えるよう指示する指示手段と、当該他のタス
クに割り当てられたiビットのタスク識別子を物理アド
レスの上位kビットに変換し、格納手段に格納されてい
る当該他のタスクの論理アドレスの全ビット又はmビッ
ト(m<n)を物理アドレスの下位mビットに変換すること
により、タスク切換の指示の直後にk+mビットの物理ア
ドレスを得るアドレス変換手段と、k+mビットの物理ア
ドレスに格納されている命令を実行する実行手段とを備
えているので、同期クロック信号の所定回数の発信につ
き、1回という高頻度の割合で、タスク切り換えが指示
されても、各部分領域にタスクが固定的に割り付けられ
ており、アドレス変換手段は、タスク識別子と論理アド
レスとから上位、下位を生成するので、タスク切り換え
の指示の直後に物理アドレスを得ることができ、その物
理アドレスの命令を即座実行することができる。これに
より、オーバーヘッド無しのタスク切り換えが実現され
る。即ち、タスク切り換えが高頻度であっても、複数タ
スクの実行は、その切り換えの影響を受けないので、複
数タスクのリアルタイム性を同時に保証することができ
る。
ち1つを実行するタスク実行装置であって、複数の部分
領域を有しており、前記複数タスクのそれぞれが各部分
領域に固定的に割り付けられているメモリと、複数タス
クの全てについて、フェッチ先を示すnビットの論理ア
ドレスを格納している格納手段と、同期クロック信号の
発信が所定回数行われると、実行中のタスクを他のタス
クに切り換えるよう指示する指示手段と、当該他のタス
クに割り当てられたiビットのタスク識別子を物理アド
レスの上位kビットに変換し、格納手段に格納されてい
る当該他のタスクの論理アドレスの全ビット又はmビッ
ト(m<n)を物理アドレスの下位mビットに変換すること
により、タスク切換の指示の直後にk+mビットの物理ア
ドレスを得るアドレス変換手段と、k+mビットの物理ア
ドレスに格納されている命令を実行する実行手段とを備
えているので、同期クロック信号の所定回数の発信につ
き、1回という高頻度の割合で、タスク切り換えが指示
されても、各部分領域にタスクが固定的に割り付けられ
ており、アドレス変換手段は、タスク識別子と論理アド
レスとから上位、下位を生成するので、タスク切り換え
の指示の直後に物理アドレスを得ることができ、その物
理アドレスの命令を即座実行することができる。これに
より、オーバーヘッド無しのタスク切り換えが実現され
る。即ち、タスク切り換えが高頻度であっても、複数タ
スクの実行は、その切り換えの影響を受けないので、複
数タスクのリアルタイム性を同時に保証することができ
る。
【0113】また、オーバーヘッドが存在しないため、
リアルタイム性を保証するに足る必要最低数の周波数の
同期クロック信号を算出して復号装置を動作させること
ができる。加えて、タスクの数に変化があった場合も、
論理空間の大きさが変化しないため、命令セットを変え
る必要がない。しかも、少ないハードウェア資源で、命
令のビット長を短くすることが可能である。
リアルタイム性を保証するに足る必要最低数の周波数の
同期クロック信号を算出して復号装置を動作させること
ができる。加えて、タスクの数に変化があった場合も、
論理空間の大きさが変化しないため、命令セットを変え
る必要がない。しかも、少ないハードウェア資源で、命
令のビット長を短くすることが可能である。
【0114】また上記タスク実行装置において、前記メ
モリにおける複数の部分領域のうち、1つは全てのタス
クが使用可能な共有領域であり、前記アドレス変換手段
は、次に実行すべきnビットの論理アドレスの上位jビッ
ト(j=n-m)が所定の値である場合、格納手段に格納され
ているnビット論理アドレスのうちmビットの上位にkビ
ットの所定の値を付与することによりk+mビットの物理
アドレスに変換する第1変換回路と、上位jビットが所
定の値でない場合、iビットのタスク識別子と、論理ア
ドレスの上位jビットとを物理アドレスの上位kビットに
デコードし、論理アドレスの残りmビットを物理アドレ
スの下位mビットに変換する第2変換回路とを備えるよ
うに構成しても良い。
モリにおける複数の部分領域のうち、1つは全てのタス
クが使用可能な共有領域であり、前記アドレス変換手段
は、次に実行すべきnビットの論理アドレスの上位jビッ
ト(j=n-m)が所定の値である場合、格納手段に格納され
ているnビット論理アドレスのうちmビットの上位にkビ
ットの所定の値を付与することによりk+mビットの物理
アドレスに変換する第1変換回路と、上位jビットが所
定の値でない場合、iビットのタスク識別子と、論理ア
ドレスの上位jビットとを物理アドレスの上位kビットに
デコードし、論理アドレスの残りmビットを物理アドレ
スの下位mビットに変換する第2変換回路とを備えるよ
うに構成しても良い。
【0115】本タスク実行装置によれば、全てのタスク
が共有に用いることができる共有空間を設けて、ここで
全てのタスクにおいて共通に用いられるを配置すること
により、タスク間の重複部分を排除することができ、物
理空間のメモリサイズをより低減することができる。ま
た上記タスク実行装置において、メモリ内に位置する複
数の部分領域には、それぞれ領域番号が割り当てられて
おり、前記アドレス変換手段は、iビットの領域番号を
複数記憶しており、それぞれの領域番号にタスク識別子
のそれぞれを対応づけているレジスタと、レジスタが記
憶している領域番号のうち、指示手段が指示した切換先
タスクに割り当てられたタスク識別子に対応するものを
選択的に出力するセレクタと、出力された領域番号と、
切換先タスクについてのフェッチ先を示す論理アドレス
の上位jビットとを物理アドレスの上位kビットにデコー
ドし、論理アドレスの残りmビットを物理アドレスの下
位mビットに変換する変換回路とを備えるように構成し
ても良い。
が共有に用いることができる共有空間を設けて、ここで
全てのタスクにおいて共通に用いられるを配置すること
により、タスク間の重複部分を排除することができ、物
理空間のメモリサイズをより低減することができる。ま
た上記タスク実行装置において、メモリ内に位置する複
数の部分領域には、それぞれ領域番号が割り当てられて
おり、前記アドレス変換手段は、iビットの領域番号を
複数記憶しており、それぞれの領域番号にタスク識別子
のそれぞれを対応づけているレジスタと、レジスタが記
憶している領域番号のうち、指示手段が指示した切換先
タスクに割り当てられたタスク識別子に対応するものを
選択的に出力するセレクタと、出力された領域番号と、
切換先タスクについてのフェッチ先を示す論理アドレス
の上位jビットとを物理アドレスの上位kビットにデコー
ドし、論理アドレスの残りmビットを物理アドレスの下
位mビットに変換する変換回路とを備えるように構成し
ても良い。
【0116】本タスク実行装置によれば、レジスタにお
いて各タスクに対応づけられたビット長に領域番号を設
定することにより、1つ以上のタスクが占有できる領域
における占有タスクの組合せを自由に設定することがで
きる。また上記タスク実行装置において、前記タスク実
行装置は、装置外部から入力されてくるストリームデー
タを格納するメモリと、当該ストリームデータの部分デ
ータを蓄積するバッファと、バッファに格納された部分
データを処理する処理部とを有しており、前記複数タス
クは、装置外部から入力されてくるストリームデータを
メモリに書き込むタスク、処理部の進捗に応じて、次に
処理すべき部分データをメモリから読み出してバッファ
に供給するタスク、処理部による処理結果をメモリに格
納するタスク、メモリに格納された処理結果を出力する
タスクを含むように構成してもよい。
いて各タスクに対応づけられたビット長に領域番号を設
定することにより、1つ以上のタスクが占有できる領域
における占有タスクの組合せを自由に設定することがで
きる。また上記タスク実行装置において、前記タスク実
行装置は、装置外部から入力されてくるストリームデー
タを格納するメモリと、当該ストリームデータの部分デ
ータを蓄積するバッファと、バッファに格納された部分
データを処理する処理部とを有しており、前記複数タス
クは、装置外部から入力されてくるストリームデータを
メモリに書き込むタスク、処理部の進捗に応じて、次に
処理すべき部分データをメモリから読み出してバッファ
に供給するタスク、処理部による処理結果をメモリに格
納するタスク、メモリに格納された処理結果を出力する
タスクを含むように構成してもよい。
【0117】本タスク実行装置によれば、タスク実行装
置において装置外部からの入力イベント、装置内部の入
出力イベント、装置外部への出力イベントが高頻度に発
生しても、これらのイベントに対応するデータを高効率
に処理することができる。
置において装置外部からの入力イベント、装置内部の入
出力イベント、装置外部への出力イベントが高頻度に発
生しても、これらのイベントに対応するデータを高効率
に処理することができる。
【図面の簡単な説明】
【図1】AVデコーダの内部構成を示す図である。
【図2】MPEGストリームの階層構造と、AVデコーダの構
成要素間の動作タイミングとを示すタイミングチャート
である。
成要素間の動作タイミングとを示すタイミングチャート
である。
【図3】第1実施形態におけるI/Oプロセッサの内部構
成を示す図である。
成を示す図である。
【図4】第1実施形態における命令読出回路11の内部
構成を示す図である。
構成を示す図である。
【図5】セレクタ25の出力論理表を示す図である。
【図6】命令読出回路11内で行われるパイプライン処
理を示すタイミングチャートである。
理を示すタイミングチャートである。
【図7】タスク管理部12の内部構成を示す図である。
【図8】4つのタスクを論理空間−物理空間に割り当て
たタスク割り当ての一例を示す図である。
たタスク割り当ての一例を示す図である。
【図9】アドレス変換回路13の内部構成を示す図であ
る。
る。
【図10】6つのタスクを論理空間−物理空間に割り当
てたタスク割り当ての一例を示す図である。
てたタスク割り当ての一例を示す図である。
【図11】(a)アドレス変換回路65の内部構成を示
す図である。 (b)アドレス変換回路65の真理値を示す図表であ
る。
す図である。 (b)アドレス変換回路65の真理値を示す図表であ
る。
【図12】(a)アドレス変換回路76の内部構成を示
す図である。 (b)アドレス変換回路76の真理値を示す図表であ
る。
す図である。 (b)アドレス変換回路76の真理値を示す図表であ
る。
【図13】(a)領域番号レジスタ71に対して、各タ
スクの領域番号を設定した場合の一例を示す図である。 (b)領域番号レジスタ71に基づいて、6つのタスク
を論理空間−物理空間に割り当てたタスク割り当ての一
例を示す図である。
スクの領域番号を設定した場合の一例を示す図である。 (b)領域番号レジスタ71に基づいて、6つのタスク
を論理空間−物理空間に割り当てたタスク割り当ての一
例を示す図である。
【図14】(a)領域番号レジスタ71に対して、各タ
スクの領域番号を設定した場合の一例を示す図である。 (b)領域番号レジスタ71に基づいて、6つのタスク
を論理空間−物理空間に割り当てたタスク割り当ての一
例を示す図である。
スクの領域番号を設定した場合の一例を示す図である。 (b)領域番号レジスタ71に基づいて、6つのタスク
を論理空間−物理空間に割り当てたタスク割り当ての一
例を示す図である。
【図15】ページング、セグメンテーションにより管理
されている論理空間を説明するための説明図である。
されている論理空間を説明するための説明図である。
【図16】メモリ管理ユニット300の内部構成を示す
図である。
図である。
10 命令メモリ 11 命令読出回路 12 タスク管理部 13 アドレス変換回路 14 演算実行部 15 レジスタセット 16 命令解読制御部 65 アドレス変換回路 71 領域番号レジスタ 72 セレクタ 76 アドレス変換回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 木村 浩三 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 清原 督三 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5B060 AA13 AB10 AB26 AC04 5B098 BA04 FF03 GA04 GA07 GC05 GD04
Claims (7)
- 【請求項1】複数タスクのうち1つを実行するタスク実
行装置であって、 複数の部分領域を有しており、前記複数タスクのそれぞ
れが各部分領域に固定的に割り付けられているメモリ
と、 複数タスクの全てについて、フェッチ先を示すnビット
の論理アドレスを格納している格納手段と、 同期クロック信号の発信が所定回数行われると、実行中
のタスクを他のタスクに切り換えるよう指示する指示手
段と、 当該他のタスクに割り当てられたiビットのタスク識別
子を物理アドレスの上位kビットに変換し、格納手段に
格納されている当該他のタスクの論理アドレスの全ビッ
ト又はmビット(m<n)を物理アドレスの下位mビットに変
換することにより、タスク切換の指示の直後にk+mビッ
トの物理アドレスを得るアドレス変換手段と、 k+mビットの物理アドレスに格納されている命令を実行
する実行手段とを備えることを特徴とするタスク実行装
置。 - 【請求項2】 前記メモリにおける複数の部分領域のう
ち、1つは全てのタスクが使用可能な共有領域であり、 前記アドレス変換手段は、 次に実行すべきnビットの論理アドレスの上位jビット(j
=n-m)が所定の値である場合、格納手段に格納されてい
るnビット論理アドレスのうちmビットの上位にkビット
の所定の値を付与することによりk+mビットの物理アド
レスに変換する第1変換回路と、 上位jビットが所定の値でない場合、iビットのタスク識
別子と、論理アドレスの上位jビットとを物理アドレス
の上位kビットにデコードし、論理アドレスの残りmビッ
トを物理アドレスの下位mビットに変換する第2変換回
路とを備えることを特徴とする請求項1記載のタスク実
行装置。 - 【請求項3】 メモリ内に位置する複数の部分領域に
は、それぞれ領域番号が割り当てられており、 前記アドレス変換手段は、 iビットの領域番号を複数記憶しており、それぞれの領
域番号にタスク識別子のそれぞれを対応づけているレジ
スタと、 レジスタが記憶している領域番号のうち、指示手段が指
示した切換先タスクに割り当てられたタスク識別子に対
応するものを選択的に出力するセレクタと、 出力された領域番号と、切換先タスクについてのフェッ
チ先を示す論理アドレスの上位jビットとを物理アドレ
スの上位kビットにデコードし、論理アドレスの残りmビ
ットを物理アドレスの下位mビットに変換する変換回路
とを備えることを特徴とする請求項1記載のタスク実行
装置。 - 【請求項4】 前記タスク実行装置は、装置外部から入
力されてくるストリームデータを格納するメモリと、 当該ストリームデータの部分データを蓄積するバッファ
と、バッファに格納された部分データを処理する処理部
とを有しており、 前記複数タスクは、 装置外部から入力されてくるストリームデータをメモリ
に書き込むタスク、処理部の進捗に応じて、次に処理す
べき部分データをメモリから読み出してバッファに供給
するタスク、処理部による処理結果をメモリに格納する
タスク、メモリに格納された処理結果を出力するタスク
を含むことを特徴とする請求項1又は2記載のタスク実
行装置。 - 【請求項5】 前記各タスクは、装置内外における複数
の非同期イベント発生に対応して、各々の処理を行い、 前記同期クロック信号の周期は、前記複数の非同期イベ
ント発生の発生間隔と、当該発生間隔において実行を完
遂すべき命令数とを考慮して算出されていることを特徴
とする請求項4記載のタスク実行装置。 - 【請求項6】 前記指示手段は、 同期クロック信号をカウントし、カウント値が実行中タ
スクに割り当てられた命令数になるとタスク切換信号を
発生するタスク切換信号発生器と、 タスク切換信号が発される度に次順位のタスク識別子を
生成してアドレス変換手段に出力するタスク識別子出力
部とを備え、 前記アドレス変換手段は、 当該次順位のタスクに割り当てられたiビットのタスク
識別子を物理アドレスの上位kビットに変換し、格納手
段に格納されている当該他のタスクの論理アドレスの全
ビット又はmビット(m<n)を物理アドレスの下位mビット
に変換することを特徴とする請求項1〜5の何れかに記
載のタスク実行装置。 - 【請求項7】 前記格納手段は、 n個のタスクと一対一に対応し、対応するタスクに関し
て次にフェッチすべき先頭アドレスを保持しているn個
のアドレス保持部と、 実行タスク指示手段からタスク識別子が出力されると、
その識別子と対応するアドレス保持部を選択する選択部
と、 選択部で選択されたアドレス保持部が格納する先頭アド
レスを、最初のフェッチ先アドレスとし、タスク識別子
が切り換えられるまでの間前記フェッチ先アドレスを順
次更新するフェッチ先アドレス生成部と、 次順のタスクに切り換わる際に、フェッチ先アドレス生
成部で更新された読出アドレスで、切り換え直前までレ
ジスタ選択部で選択されていたアドレス保持部が格納し
ている先頭アドレスを書き換えるアドレス更新部とを備
えることを特徴とする請求項1〜6の何れかに記載のタ
スク実行装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11037858A JP2000235501A (ja) | 1999-02-16 | 1999-02-16 | タスク実行装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11037858A JP2000235501A (ja) | 1999-02-16 | 1999-02-16 | タスク実行装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000235501A true JP2000235501A (ja) | 2000-08-29 |
Family
ID=12509259
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11037858A Pending JP2000235501A (ja) | 1999-02-16 | 1999-02-16 | タスク実行装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000235501A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007032123A1 (ja) * | 2005-09-14 | 2007-03-22 | Matsushita Electric Industrial Co., Ltd. | マルチストリーム復号装置 |
| KR100853457B1 (ko) | 2006-12-04 | 2008-08-21 | 한국전자통신연구원 | 고속의 대량 데이터를 수신하기 위한 데이터 수신 모듈의처리 방법 |
| US7612781B2 (en) | 2004-09-22 | 2009-11-03 | Sony Computer Entertainment Inc. | Memory control method of graphic processor unit |
-
1999
- 1999-02-16 JP JP11037858A patent/JP2000235501A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7612781B2 (en) | 2004-09-22 | 2009-11-03 | Sony Computer Entertainment Inc. | Memory control method of graphic processor unit |
| WO2007032123A1 (ja) * | 2005-09-14 | 2007-03-22 | Matsushita Electric Industrial Co., Ltd. | マルチストリーム復号装置 |
| JPWO2007032123A1 (ja) * | 2005-09-14 | 2009-03-19 | パナソニック株式会社 | マルチストリーム復号装置 |
| KR100853457B1 (ko) | 2006-12-04 | 2008-08-21 | 한국전자통신연구원 | 고속의 대량 데이터를 수신하기 위한 데이터 수신 모듈의처리 방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6470376B1 (en) | Processor capable of efficiently executing many asynchronous event tasks | |
| KR100232961B1 (ko) | Pc환경에서 엠펙 비디오 디코딩을 위해 프레임 버퍼를 매니징하기 위한 장치 및 방법 | |
| US7034849B1 (en) | Method and apparatus for image blending | |
| KR100502586B1 (ko) | 처리효율을높인영상음성처리장치 | |
| US5699460A (en) | Image compression coprocessor with data flow control and multiple processing units | |
| CA1319421C (en) | Memory controller as for a video signal processor | |
| JP4426099B2 (ja) | 共有メモリを有するマルチプロセッサ装置 | |
| KR101061345B1 (ko) | 비디오 처리 | |
| US7015921B1 (en) | Method and apparatus for memory access | |
| EP0386137A1 (en) | Processor for expanding a compressed video signal | |
| KR20050004688A (ko) | 스케줄링 방법 및 정보처리시스템 | |
| US7055018B1 (en) | Apparatus for parallel vector table look-up | |
| EP0393125B1 (en) | Stored program controller with a conditional branch facility as for a video signal processor | |
| US6275535B1 (en) | Method and device for decoding an image compressed in particular according to the MPEG standards, especially a bidirectional image | |
| KR20010029924A (ko) | 데이터 처리장치 | |
| US8898671B2 (en) | Processor that executes a plurality of threads by promoting efficiency of transfer of data that is shared with the plurality of threads | |
| US8443413B2 (en) | Low-latency multichannel video port aggregator | |
| US20060088279A1 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
| JP2000106677A (ja) | 圧縮ストリーム復号装置および圧縮ストリーム復号方法 | |
| JP2000235501A (ja) | タスク実行装置 | |
| JP2005102144A (ja) | Mpegのデータ処理装置 | |
| JP3356677B2 (ja) | 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ | |
| JP5379223B2 (ja) | 情報処理装置 | |
| EP1407355B1 (en) | Method and system of processing a media file | |
| JPH11298857A (ja) | 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体 |