JPH10307731A - 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ - Google Patents

非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ

Info

Publication number
JPH10307731A
JPH10307731A JP5207398A JP5207398A JPH10307731A JP H10307731 A JPH10307731 A JP H10307731A JP 5207398 A JP5207398 A JP 5207398A JP 5207398 A JP5207398 A JP 5207398A JP H10307731 A JPH10307731 A JP H10307731A
Authority
JP
Japan
Prior art keywords
task
instruction
unit
address
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5207398A
Other languages
English (en)
Other versions
JP3356677B2 (ja
Inventor
Takatoshi Tanaka
卓敏 田中
Kiyoshi Maenobu
潔 前信
Kosuke Yoshioka
康介 吉岡
Makoto Hirai
誠 平井
Tokuzo Kiyohara
督三 清原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP5207398A priority Critical patent/JP3356677B2/ja
Publication of JPH10307731A publication Critical patent/JPH10307731A/ja
Application granted granted Critical
Publication of JP3356677B2 publication Critical patent/JP3356677B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 【課題】 オーディオアウトタスク、ビデオアウトタス
クの処理を完遂させるには動作クロックをいくらに定め
ればよいかを示す動作クロック数の最適な下限値が一義
的に計算できるプロセッサを提供する。 【解決手段】 カウンタ52は、初期値が『1』に設定
され、上限値が『4』に設定されたカウンタであり、ク
ロック信号に同期してフリップフロップ51に保持され
ているカウント値を1,2,3,4,1,2,3,4というようにカウ
ントアップする。このクロック信号は命令解読制御部1
1が命令の実行制御のために用いているものであるか
ら、カウンタ52によるカウントアップは、命令解読制
御部11が命令実行を一回行う度になされる。比較器5
4は、カウンタ52がカウントアップした値と、整数値
『4』との比較を行い、もしカウンタ52のカウント値
と整数値『4』とが一致すれば、タスク切替信号chg_ta
sk_exをHigh値にして次のタスクを消化するよう切り換
えを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】MPEGストリームを始めとする
可変符号長のマルチメディアデータを再生するAVデコー
ダに備えられ、専らAVデコーダ内部のメインプロセッサ
の周辺制御を担うプロセッサに関する。
【0002】
【従来の技術】MPEGストリームの再生技術はマルチメデ
ィア社会の基盤技術の一つでもあり、近年におけるその
需要の高まりには目を見張るものがある。MPEGストリー
ムの再生技術の新たな活躍の舞台として注目を浴びてい
るのは、インタラクティブな動画再生、音声再生を可能
とする民生機器の分野であり、この分野にて成功を収め
るべく、メーカー各社の技術者はMPEGストリームの再生
を高度になしえるAVデコーダの研究開発に心血を注いで
いる。
【0003】MPEGストリームの再生技術にて行うべき処
理には様々なものがあるが、それらはコア処理と、非同
期イベント処理とに大別されるといわれる。コア処理と
は、逆量子化、逆離散余弦変換、動き補償等、縦16×横
16個の画素からなるマクロブロックを対象とした処理で
ある。毎秒4050個ものマクロブロックを処理せねばなら
ないので(4050=30フレーム×30スライス×45マクロブロ
ック)、その演算量は膨大なものとなる。コア処理の実
行には、パイプライン処理が好適とされるが、ハードウ
ェア規模の増大を厭わない場合は、解読器や演算器を複
数にしてコア処理の負荷を分散させるのが良い。
【0004】非同期イベント処理とは、複数の要因が重
なることにより特定の事象が成立している期間において
集中的に行うべき処理、或は、所定の周期をもって間欠
的に行うべき処理であり、コア処理と同期して行なえな
い処理の総称をいう。AVデコーダにおいて、このような
非同期イベント処理に相当する処理には、記録媒体や通
信媒体からのMPEGストリーム入力に関するもの(1)、AV
デコーダから映像再生機器、音声再生機器への出力に関
するもの(2)、AVデコーダと、AVデコーダ外部に接続さ
れた拡張メモリとの入出力に関するもの(3)の三種類が
ある。
【0005】記録媒体からのストリーム入力に関する非
同期イベント処理(1)は更に、光ディスク等の記録媒体
や通信媒体からMPEGストリームを取り込んで、エレメン
タリィストリームを抽出する抽出処理(1-1)、抽出され
たエレメンタリィストリームを拡張メモリとして接続さ
れているSDRAMに書き込む書込処理(1-2)がある。再生出
力に関する非同期イベント処理(2)は更に、復号が済ん
だ動画ストリーム、オーディオストリームを映像信号、
音声信号にそれぞれ変換してディスプレィ、スピーカに
出力する処理(2-1)と、MPEGストリームのプライベート
ストリームとして出力されてくる副映像を描画し、これ
を動画データと混合して映像信号に字幕を合成する処理
(2-2)を含む。
【0006】拡張メモリとの入出力に関する非同期イベ
ント処理(3)は更に、逆量子化、逆離散余弦変換、動き
補償等の処理が施されたデータが内部バッファに蓄積さ
れるのを監視し、その蓄積量が一定量になった段階でSD
RAMにまとめて書き込む処理(3-1)、逆量子化、逆離散余
弦変換、動き補償の進捗に応じて、次に処理すべきデー
タを外部に接続されたSDRAMから内部バッファに間欠的
に補充する補充処理(3-2)がある。
【0007】以上の処理の他にも、操作者からの操作に
応じて行うべき処理はこの非同期イベント処理に分類さ
れる。単にMPEGストリームの再生だけではなく、操作者
の対話性を重視した再生装置の応用システムを設計する
場合やホストコンピュ−タとの同期制御を前提にしたシ
ステムを設計する場合は、更に多くの非同期イベント処
理をAVデコーダに処理させる必要がある。
【0008】上記の処理のうち、処理(2-1)のオーディ
オに関する処理は、オーディオアウトタスクと呼ばれ、
90μsecという間欠的な周期を有する。また処理(2-1)の
うち、ビデオに関する処理はビデオアウトタスクと呼ば
れ、ディスプレィの水平同期信号の間欠的な周期に基づ
いた50μsecにおいて、一ライン分の画像の処理を完遂
させねばならない。
【0009】このようにビデオアウトタスク、オーディ
オアウトタスクに実行周期が与えられるのは、これらの
タスクの処理が完遂されないと、動画-音声が時間の流
れに沿って円滑に再生されないからである。即ち、ビデ
オアウトタスク、オーディオアウトタスクの処理を50μ
sec、90μsecという周期内に完遂することが、動画再
生、音声再生のリアルタイム性を満たすための最大要件
となる。
【0010】従来のMPEGストリーム再生技術において
は、以上の非同期イベント処理を汎用プロセッサに行わ
せる場合、非同期事象の発生や所定周期の到来を割込信
号により汎用プロセッサに通知する。通知後、汎用プロ
セッサは分岐命令を用いて非同期イベント処理へと分岐
する。
【0011】
【発明が解決しようとする課題】しかしながら割込信号
を用いて汎用プロセッサに非同期イベント処理を実行さ
せるという従来の方式では、オーディオアウトタスク、
ビデオアウトタスクの処理を完遂させるには動作クロッ
クをいくらに定めればよいかを示す動作クロック数の最
適な下限値が一義的に計算できないという問題点があ
る。
【0012】最適な下限値が計算できないため、大まか
な見積もりで動作クロック数を決定せざるを得ず、動作
クロック数をどうしても高めに設定してしまう傾向があ
る。従来の方式では、どのような計算法で動作クロック
を計算していたかを以下に説明する。周期が異なる非同
期イベントタスクとして90μsecの実行周期を有するオ
ーディオアウトタスクと、50μsecの実行周期を有する
ビデオアウトタスクを実行せねばならないものとする。
この場合、オーディオアウトタスクは0μsec、90μsec,
180μsec,270μsec,360μsec,450μsecというように90
μsec毎にオーディオストリームの復号を完遂せねばな
らず、ビデオアウトタスクは0μsec、50μsec,100μse
c,150μsec,200μsec,250μsec,300μsec,350μsecとい
うように50μsec毎に動画ストリームの復号を完遂せね
ばならない。従来の汎用プロセッサは、2つの実行周期
の到来を割込信号にて通知して、それからビデオアウト
タスク、オーディオアウトタスクを処理することにな
る。
【0013】割込信号によって実行時期の到来を知って
から、オーディオアウトタスク、ビデオアウトタスクを
起動しようとすると、各タスクが処理を完遂せねばなら
ないタイムリミットは、自身を起動するための割込信号
の発生タイミングから、次のタスクを起動するための割
込信号の発生タイミングまでに定められる。図57は、
これらの周期が割込信号により汎用プロセッサに通知さ
れて、実行する場合を想定したタイミングチャートであ
る。本図において、オーディオアウトタスク−ビデオア
ウトタスクの処理完遂のためのタイムリミットがどのよ
うに現れるかを説明する。
【0014】パルスP1の立ち上がり及びパルスP5の立ち
上がりが発生して、ビデオアウトタスク、オーディオア
ウトタスクを起動する旨が汎用プロセッサに通知される
と、次の割込信号であるパルスP2の立ち上がりが通知さ
れるまでの50μsec期間がビデオアウトタスク及びオー
ディオアウトタスクの処理を完遂させるためのタイムリ
ミットとなる。
【0015】一方、パルスP6の立ち上がりが発生して、
オーディオアウトタスクを起動する旨が汎用プロセッサ
に通知されると、次の割込信号であるパルスP3の立ち上
がりが通知されるまでの僅か10μsecの期間がオーディ
オアウトタスク完遂のためのタイムリミットとなる。タ
イムリミットから動作クロックを計算する方式では、10
μsecのような極めて短いタイムリミット、即ち、タイ
ムリミットのワーストケースにおいてもオーディオアウ
トタスク、ビデオアウトタスクを完遂するだけの動作ク
ロック数が要求される。そうすると動作クロックを一段
と高いものに決定せさるを得ない。しかし安易に動作ク
ロックを高速にすれば、消費電力の増大も著しくなり、
民生機器の用途に適さなくなる。
【0016】本発明の目的は、所定の周期で完遂せねば
ならない処理量が予め定められている非同期イベント処
理が複数ある場合に、それぞれの非同期イベントタスク
にどれだけのサイクル数を割り当てればよいかを示す最
適な下限値を一義的に計算することできると共に、それ
らの最適な下限値から全タスクを動作させるための動作
サイクル数の下限値を一義的に計算することができるプ
ロセッサを提供することである。
【0017】
【課題を解決するための手段】上記目的は、n個のタス
クを実行対象タスクとしたプロセッサであって、n個の
タスク識別子を出力し、そのタスクに割り当てられた数
の命令が実行されると次のタスク識別子を所定の順序で
出力する実行タスク指示手段と、出力されるタスク識別
子で特定されるタスク中の実行すべき命令を順次指定す
る命令指定手段と、指定された命令を実行する実行手段
とを備えるプロセッサにより達成される。
【0018】
【発明の実施の形態】
(第1実施形態)I/Oプロセッサについての説明を開始
する前に、AVデコーダがどのような内部構成を有してお
り、その構成において本発明に係るI/Oプロセッサがど
のような役割を果たしているかを説明する。図1にAVデ
コーダの内部構成を示す。
【0019】AVデコーダは、コア処理を行うデコーダコ
ア部と、複数の非同期イベントタスクを行うI/O部とか
なる。デコーダコア部は、setup部104、VLD部10
5、IQ/IDCT部106、動き補償部107を含み、I/O部
は、ストリーム入力部101、バッファメモリ102、
ビットストリームFIFO103、ビデオ出力部108、オ
ーディオ出力部109、I/Oプロセッサ113、バッフ
ァメモリコントローラ110、RAMコントローラ11
1、FIFOコントローラ112、ホストI/O部115を備
えている。またバスとしてバッファメモリバス121、
SDRAMバス122、ビットストリームバス123、IOPコ
ントロールバス124が設けられており、拡張メモリと
してSDRAM300と接続している。
【0020】(1.)MPEGストリームの復号処理の概要 次に図2を参照して、MPEGストリームの復号処理の概要
について簡単に説明しておく。本実施形態においてMPEG
ストリームは、動画ストリーム、オーディオストリー
ム、副映像ストリームからなる。このうち動画ストリー
ムは、圧縮された動画像データであり、復号処理におい
て、差分算出の基準となる画像(以下「参照画像」と呼
ぶ)と、算出された差分を符号化した画像(以下「差分
画像」と呼ぶ)とを加算することにより、動画像に復元
される。
【0021】図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つのタイプが
あることもわかる。
【0022】ここでIピクチャとは、圧縮された画像デ
ータであるが、一フレーム分の輝度成分及び色差成分を
含むものをいう。Pピクチャ(Predictive-Picture )又
はBピクチャ(Bidirectionally predictive Picture)
は差分画像と呼ばれるものである。ここでPピクチャと
は、過去方向に位置するフレームとの差分からなる差分
画像であり、Bピクチャとは、過去方向及び未来方向に
位置するフレームとの差分からなる差分画像である。
【0023】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デコーダにおける画像復号の一単位となる。
【0024】マクロブロックより下は、AVデコーダの構
成要素間がマクロブロックに含まれている輝度ブロッ
ク、色差ブロックをどのように処理するかを示すタイミ
ングチャートになっている。マクロブロックに対してど
のような復号化がなされるかであるが、マクロブロック
に対する復号化は、圧縮動画像データを可変長復号(Va
riable Length codeDecoding:以降VLDと略す)し
て、6つの空間周波数成分データ、ヘッダ情報、動きベ
クトルを得る。
【0025】その後、6つの空間周波数成分データに対
して逆離散余弦変換処理(DiscereteCosine Transform:D
CT)を行って低周波数帯に位置する空間周波数成分と、
高周波数帯に位置する空間周波数成分とに分離し、高周
波数帯を切り捨てて、低周波帯に位置する空間周波数成
分に対して逆量子化処理を行うことによりなされる。符
号化されたマクロブロックは、逆量子化及び逆離散余弦
変換処理がなされた後、動きベクトルに基づいた動き補
償により、映像として表示される。動きベクトルとは、
前後のフレームの画像と比較して相関性の最も高い箇所
を指し示す情報をいう。つまり動きベクトルは画像内の
人物像や建造物像がフレームの前後でどう動いたかをブ
ロック単位で表現している。
【0026】動き補償とは、差分の前後に表示されるべ
き参照画像と、当該差分とを足し合わせて(ブレンドし
て)一枚の完結した表示用画像を得ることをいう。以上
のMPEG準拠の動画像の符号化・複号化技術のうち、本明
細書で特に引用する内容は以上の通りである。より詳細
内容な技術内容については、株式会社アスキー「ポイン
ト図解式最新MPEG教科書」などの公知文献を参照さ
れたい。
【0027】図2におけるタイミングチャートは、デコ
ーダコア部におけるsetup部104、VLD部105、IQ/I
DCT部106、動き補償部107の処理がどのようなタ
イミングが行われるか説明する際に引用するものとす
る。以上でMPEGストリームの復号処理の概要について説
明を終え、続いてAVデコーダの構成要素についての説明
を開始する。
【0028】(2.)AVデコーダの構成要素 ストリーム入力部101は、記録媒体や通信媒体からMP
EGストリームが取り出されると、MPEGストリームをAVデ
コーダ内部に取り込み、I/Oプロセッサ113による制
御に応じてバッファメモリバス121に出力する。バッ
ファメモリ102は、バッファメモリコントローラ11
0の制御に従って、ストリーム入力部101が取り込ん
だMPEGストリームを保持する。またMPEGストリームを出
力するようバッファメモリコントローラ110に命じら
れると、これまでに格納しているMPEGストリームをSDRA
Mバス122に出力する。
【0029】ビットストリームFIFO103は、MPEGスト
リームに含まれているエレメンタリィストリームがSDRA
Mバス122に出力されると、FIFOコントローラ112
による制御に従って出力されたエレメンタリィストリー
ムを取り込む。ビットストリームFIFO103は取り込ん
だエレメンタリィストリームを先入れ先出し方式に保持
する。このようにして保持したエレメンタリィストリー
ムをFIFOコントローラ112の制御に従って、ビットス
トリームバス123に出力する。
【0030】setup部104は、ビットストリームFIFO
103に保持されているMPEGストリームからエレメンタ
リィストリームが抽出されるのを待ち、そのエレメンタ
リィストリームが動画ストリーム或はオーディオストリ
ームなら、VLD部105による復号によりそのヘッダ部
が伸長されるのを待つ。ヘッダが伸長されるとこれの解
析処理e1を図2に示すように行う。またエレメンタリィ
ストリームが動画ストリームなら動きベクトルの抽出e2
を行う。その後、逆量子化、逆離散余弦変換、動き補償
等が行われている間、音声ストリームの復号処理e3を行
う。
【0031】VLD部105は、ビットストリームFIFO1
03に格納されているエレメンタリィストリームが動画
ストリームであり、これを構成するマクロブロックがビ
ットストリームバス123に出力されると、マクロブロ
ックに含まれている4つの輝度ブロックY0,Y1,Y2,Y3
と、2つの色差ブロックCb,Crとに対して可変符号長デ
コードt21,t22,t23,t24,t25,t26を行う。
【0032】IQ/IDCT部106は、可変符号長デコード
がなされた四つの輝度ブロックと、2つの色差ブロック
とに対して逆量子化及び逆離散余弦変換を行う。動き補
償部107は、IQ/IDCT部106により逆量子化及び逆
離散余弦変換がなされると、これらの処理がなされた輝
度ブロック及び色差ブロックに対応する参照画像(Y0,Y
1),(Y2,Y3),(Cb.Cr)をAVデコーダ外部に接続されたSDRA
M300から読み出し、輝度ブロック及び色差ブロック
と、参照画像とをブレンドする。そしてそのブレンド結
果に対してハーフペル補間を行うことにより動き補償を
行う。その後、RAMコントローラ111を制御すること
により動き補償の結果をSDRAM300に書き込ませる。
【0033】ビデオ出力部108は、動き補償部107
により参照画像とのブレンドとハーフペル補間とがなさ
れた一フレームの画像を映像信号に変換して外部に接続
されたテレビ受像器等のディスプレィ装置に出力する。
オーディオ出力部109は、setup部104により復号
されたオーディオストリームを音声信号に変換して外部
に接続されたスピーカ装置に出力する。
【0034】バッファメモリコントローラ(図中のBMコ
ントローラ)110は、I/Oプロセッサ113周辺にお
けるストリーム入力部101、ビデオ出力部108、オ
ーディオ出力部109間のアクセス調停を行うバッファ
メモリインターフェィスと、バッファメモリ102と、
ストリーム入力部101、ビデオ出力部108、オーデ
ィオ出力部109間のDMA転送機能を有するDMAコントロ
ーラとからなる。
【0035】RAMコントローラ111は、SDRAM300に
対してのバーストリードと、バーストライトとが可能な
SDRAMインターフェィスと、SDRAM300−バッファメモ
リ102間、動き補償部107−バッファメモリ102
間のDMA転送機能を有するDMAコントローラとからなる。
FIFOコントローラ112は、ディアルポートRAMと、当
該RAMのRead/Writeを制御するコントローラと、ビット
ストリームFIFO103におけるアクセスアドレスを示す
ポインタを管理するポインタ管理機能とを有する。
【0036】I/Oプロセッサ113は、AVデコーダにお
ける6本もの非同期イベントタスクを6本のスレッドに
割り当てることにより、非同期イベントタスクを時分割
多重にて実行する。各非同期イベントタスクに割り当て
たスレッドは、I/Oプロセッサ内部の全ての構成要素が
同期制御のために用いているクロック信号のサイクル数
にて表現され、その長さは原則4サイクルであるものと
する。
【0037】(3.)I/Oプロセッサに実行が課された非
同期イベントタスクとは、どのような処理内容であるか AVデコーダにおいてI/Oプロセッサに実行が課された非
同期イベントタスクが、どのような処理内容であるかを
逐一説明する。 ・ホストI/Oタスク 本タスクは、ホストコンピュ−タとの通信と、操作者と
の対話に応じた二次元グラフィックスの描画に関するタ
スクである。具体的には、ホストI/O部115を介した
ホストコンピュ−タとの通信処理と、操作者による操作
に応じて二次元グラフィックスを描画し、ビデオ出力部
108に出力する処理とからなる。 ・パージングタスク 本タスクはバッファメモリ102に入力されたMPEGスト
リームのパージング処理と、MPEGストリームから動画ス
トリーム、オーディオストリーム、副映像ストリームと
いったエレメンタリィストリームの抽出を行う抽出処理
に関する。
【0038】パージングタスクの実行時において、I/O
プロセッサ113は外部からストリーム入力部101に
入力されたMPEGストリームをバッファメモリバス(図中
ではBMバス)121に出力させる。バッファメモリコン
トローラ110を制御することによりバッファメモリバ
ス121に出力されたMPEGストリームをバッファメモリ
102に書き込ませる。その後I/Oプロセッサ113
は、バッファメモリコントローラ110を制御すること
によりMPEGストリームをバッファメモリバス121に出
力させ、MPEGストリームからエレメンタリィストリーム
を抽出する。バッファメモリコントローラ110を制御
することにより抽出されたエレメンタリィストリームを
バッファメモリ102に書き込ませる。その結果、バッ
ファメモリ102には、エレメンタリィストリームとし
てビットストリーム、オーディオストリーム、副映像ス
トリームが格納された状態となる。 ・オーディオストリーム転送制御タスク オーディオストリーム転送制御タスクはオーディオスト
リームに関する全ての転送制御からなるタスクである。
【0039】オーディオストリーム転送制御タスクに従
って、I/Oプロセッサ113はバッファメモリコントロ
ーラ110を制御することによりバッファメモリ102
にエレメンタリィストリームとして格納されているオー
ディオストリームをSDRAMバス122に出力させる。そ
の後、RAMコントローラ111を制御することによりSDR
AMバス122に出力されたオーディオストリームをSDRA
M300に書き込ませる。setup部104がビットストリ
ームFIFO103に格納されているオーディオストリーム
の復号を開始すると、その復号処理がどれだけ進捗した
かを監視し、オーディオストリームの残量が所定値以下
となると、RAMコントローラ111を制御して、SDRAM3
00に格納されているオーディオストリームを読み出さ
せてSDRAMバス122に出力させる。FIFOコントローラ
112を制御してこのように出力されたオーディオスト
リームをビットストリームFIFO103に書き込ませる。
【0040】このようなビットストリームFIFO103へ
の書き込みにより、オーディオストリームの復号の進捗
に応じたオーディオストリームの補充を行う。デコード
が済むと、I/Oプロセッサ113はFIFOコントローラ1
12を制御することによりデコード済みオーディオスト
リームをSDRAMバス122に出力させる。バッファメモ
リコントローラ110を制御して、SDRAMバス122に
出力されたオーディオストリームをバッファメモリ10
2に書き込ませる。 ・動画ストリーム転送制御タスク 動画ストリーム転送制御タスクは動画ストリームに関す
る全ての転送制御からなるタスクである。
【0041】I/Oプロセッサ113は、バッファメモリ
コントローラ110を制御することによりバッファメモ
リ102に格納されている動画ストリームをSDRAMバス
122に出力させ、RAMコントローラ111を制御する
ことによりSDRAMバス122に出力された動画ストリー
ムをSDRAM300に書き込ませる。VLD部105、IQ/IDC
T部106、動き補償部107がビットストリームFIFO
103に格納されている動画ストリームの復号を開始す
ると、動画ストリームの復号がどれだけ進捗したかを監
視し、復号すべき残量が所定値以下となると、RAMコン
トローラ111を制御して、SDRAM300に格納されて
いる動画ストリームを読み出させて、FIFOコントローラ
112にビットストリームFIFO103に書き込ませる。
このようなビットストリームFIFO103の書き込みによ
り、復号処理の進捗に応じた動画ストリームの補充を行
う。 ・ビデオアウトタスク ビデオアウトタスクは映像出力に関する出力制御からな
るタスクである。
【0042】本非同期イベントタスクの実行時において
I/Oプロセッサ113はRAMコントローラ111を制御す
ることにより、VLD部105、IQ/IDCT部106、動き補
償部107による処理が済んでSDRAM300に格納され
ている動画データをSDRAMバス122に出力させ、バッ
ファメモリコントローラ110を制御して、SDRAMバス
122に出力された動画ストリームをバッファメモリ1
02に書き込ませる。バッファメモリコントローラ11
0を制御して、SDRAM300に書き込まれた動画ストリ
ームをSDRAMバス122に出力させ、ビデオ出力部10
8に映像信号に変換させる。それと共に副映像ストリー
ムを展開して得られた副映像と、二次元グラフィックス
とを混合してビデオ出力部108に出力させる。 ・setupI/Oタスク setup部104とI/Oプロセッサ113とが通信する際に
実行すべき処理からなる。
【0043】当該コマンドがホストコンピュ−タが備え
ているレジスタを読み書きするためのコマンドなら、I/
Oプロセッサ113を制御して当該読み書きのための処
理と、当該コマンドがVLD部105、IQ/IDCT部106の
初期化コマンドなら、VLD部105、IQ/IDCT部106を
リセットする処理とからなる。以上の非同期イベントタ
スクは、個々の処理負荷は軽いが、間欠的な起動が要求
される。特にビデオアウトタスクは水平ブランキング期
間の50μsec毎の起動が要求され、オーディオアウトタ
スクは90μsec毎の起動が要求される。
【0044】(4.)I/Oプロセッサがどのように構成さ
れているか I/Oプロセッサの第1実施形態を図面を参照しながら説
明する。上述したように、I/Oプロセッサはそれぞれの
非同期イベントタスクを実行すべき事象が成立したか否
かの監視を行っており、事象が成立した非同期イベント
タスクをより優先的に実行する。本実施形態において優
先実行の手順までも言及すると、説明が煩雑になるので
この優先実行についての説明は第3実施形態において行
うものとする。第1実施形態では、I/Oプロセッサの基
本構成、即ち、AVデコーダにおける6本もの非同期イベ
ントタスクを時分割多重にて実行する構成について説明
する。
【0045】図3はI/Oプロセッサの内部構成を示す図
であり、本図に示すようにI/Oプロセッサは命令メモリ
100、命令読出回路10、命令解読制御部11、レジ
スタセット12、演算実行部14、及びタスク管理部1
5から構成される。命令メモリ100は、上述した六本
の非同期イベントタスクを構成する命令を記憶する。図
8は、命令メモリ100がどのように命令列を記憶して
いるかを示す図である。本図において各命令には、0-0,
0-1,0-2といった識別子が付されている。この識別子の
うち、上位の数は、当該命令が6本の非同期イベントタ
スクの何れに属するかを示し、下位の数は、属する非同
期イベントタスクにおいて当該命令が何番目に位置する
かを示す。以降の説明において、命令メモリ100にお
ける各命令の配置アドレスは、この識別子を用いて表す
ものとする。
【0046】命令メモリ100内に記憶されている命令
は、全てのオペレーションが一命令語長に収まるよう命
令フォーマットが規定されている。本実施形態において
命令語長は16bitに規定されており、その命令フォーマ
ットを図9〜図11に示す。図9は、レジスタをオペラ
ンドに指定した算術演算命令の命令フォーマットを示
す。本命令フォーマットでは、2bit〜4bitに第1オペラ
ンドに指定すべきレジスタ番号を指定でき、5bit〜7bit
には、第2オペランドに指定すべきレジスタ番号を指定
できる。8bit〜10bitには、演算結果の格納先に指定す
べきレジスタ番号を指定でき、11bitから15bitまでの5b
itにオペレーション内容が指定される。下段の表は、当
該オペレーション内容の指定が可能な5bitのうち、上位
2bitと、下位3bitの組み合わせと、その組み合わせにて
表現されるオペレーション内容とを示している。例えば
上位2bitが『00』であり、下位3bitが『000』である場
合、その組み合わせは加算演算のオペレーションを表現
しており、上位2bitが『01』であり、下位3bitが『00
0』である場合、その組み合わせは減算演算を表現して
いる。上位2bitが『00』であり、下位3bitが『001』で
ある場合、その組み合わせは左シフト演算(図中の<<は
左シフト演算の意味である)を表現しており、上位2bit
が『01』であり、下位3bitが『001』である場合、その
組み合わせは右シフト演算(図中の>>は右シフト演算の
意味である)を表現している。
【0047】図10は、レジスタにて読出先アドレス、
書込先アドレスを指定したメモリロード命令/メモリス
トア命令の命令フォーマットを示す。この命令フォーマ
ットでは、2bit〜4bitに第1オペランドに指定すべきレ
ジスタ番号を指定でき、5bit〜7bitに読出元に指定すべ
きレジスタ番号又は演算結果の格納先に指定すべきレジ
スタ番号を指定できる。10bitから12bitまでの3bitにオ
ペレーション内容が指定され、13bitから15bitまでの3b
itに3bit長の即値が指定される。
【0048】下段の表は、3bitによるオペレーション内
容の指定のうち、上位1bitと、下位2bitの組み合わせ
と、その組み合わせにて表現されるオペレーション内容
とを示している。例えば上位1bitが『1』であり、下位2
bitが『10』である場合、読出元オペランドsrc_REGで指
定されたレジスタの値を、第1オペランドsrc1と3bitの
即値im:3との組み合わせ(src1+im:3)を用いて指定され
たメモリに格納するストア命令を指定している。
【0049】上位1bitが『0』であり、下位2bitが『1
0』である場合、その組み合わせは第1オペランドsrc1と
3bitの即値との組み合わせ(src1+im:3)を用いたアドレ
ッシングモードによりメモリから値を読み出し、格納先
dst_REGに指定されたレジスタに格納するロード命令を
指定している。図11は、8bit、11bitの即値の指定が
可能な比較命令/演算命令/分岐命令の命令フォーマッ
トを示す。本命令フォーマットにおいて即値が8bitであ
る場合は、5bitから7bitまでに第1オペランド及び演算
結果の格納に相当するレジスタの指定が可能であり、8b
itから15bitまでを即値の格納に用いる。即値が11bitで
ある場合は、5bitから15bitまでを即値の格納に用い
る。2bitから5bitまでの4bitを用いて下段の表のように
オペレーション内容が指定される。
【0050】下段の表は、当該4bitのうち、上位2bit
と、下位2bitの組み合わせと、その組み合わせにて表現
されるオペレーション内容とを示している。例えば上位
2bitが『10』であり、下位2bitが『01』である場合、そ
の組み合わせは第1オペランドで指定されたレジスタの
値を第2オペランドと8bitの即値とを比較する比較命令
を指定している。
【0051】上位2bitが『10』であり、下位2bitが『1
0』である場合、その組み合わせはオペランドと8bitの
即値とを乗算する乗算命令を指定している。上位2bitが
『11』であり、下位2bitが『11』である場合、その組み
合わせは11bitの即値を分岐先アドレスとした絶対アド
レス指定型の分岐命令を指定している。以上の説明にお
いて、オペレーション内容は一命令語長である16bitに
て表現されるため、命令メモリ100内の如何なるオペ
レーション内容の命令を読み出す場合でも、またどの命
令を解読・実行する場合でも、それらの読出、解読、実
行が均一に一サイクル内に完遂することができる。即
ち、命令の読出・解読・実行が完遂するまでの時間が命令
間でバラツキが生じないように命令フォーマットが規定
されているのである。特に図11において即値の幅を8b
it、11bitとしていることに、この規定の意図は大きく
現れている。つまり指定される即値を長くすると、命令
語長が24bit、32bitまで拡張されてしまう恐れがあり、
その拡張を防ぐため、命令語長が16bitに収まるよう
に、即値長を8bit、11bitに留めているのである。一つ
の命令の実行に、どれだけのサイクル数が必要であるか
を示す単位(CPI(Cycle Per Instruction)という)にて表
現すると、本I/OプロセッサのCPIは純粋に『1』であ
り、『命令を何回読み出したか』『命令を何回解読・実
行したか』はサイクル数にて表現される。
【0052】命令読出回路10は、命令メモリ100内
の読み出し先アドレスを命令メモリ100に出力する。
命令解読制御部11(図中ではDecoder11)は、命令
メモリ100が出力する命令を解読し、その解読結果に
従って命令読出回路10及び演算実行部14を制御す
る。
【0053】レジスタセット12は、32bit長の汎用レ
ジスタ(GR)と、16bit長の汎用レジスタとをそれぞれ24
本有する。このように24本ものレジスタを有しているの
は、32bit長のレジスタと、16bit長のレジスタとを4本
ずつ、6本の非同期イベントタスクに割り当てるためで
ある。このように各非同期イベントタスク毎に8本のレ
ジスタを割り当てることにより、タスクの切り換え時に
レジスタの値を退避・復元する必要がなくなる。
【0054】演算実行部14は、ALU,乗算器,バレルシ
フタを備え、命令解読制御部11による制御に基づきレ
ジスタセット12における汎用レジスタの格納値を用い
て演算を行う。非同期イベントタスクから別タスクへの
切り換えられた際、演算実行部14はそれに対応する4
本の32bit長の汎用レジスタ、4本の16bit長の汎用レジ
スタを用いて、切り換え後のタスクに含まれている命令
についての演算を実行するタスク管理部15は、命令解
読制御部11における命令実行を監視し、各タスクに割
り当てられたスレッドの時間長が経過すれば次にスレッ
ドを割り当てるべきタスクの識別子を命令読出回路10
に出力する。 (4.1)命令読出回路10は、読出先アドレスの更新を
どのように行うか 命令読出回路10がどのような内部構成にて読出先アド
レスの更新を行うかを図4を参照しながら説明する。命
令読出回路10の内部構成を図4に示す。
【0055】図4に示すように、命令読出回路10はIF
1+1保持部20、increment回路21、IF2保持部22、D
ECPC保持部23、タスク別PC格納部24、セレクタ25
及びセレクタ26からなり、解読ステージの前に二段の
読出ステージを行うパイプライン処理を実現するよう構
成されている。この二段の読出ステージにおけるそれぞ
れの読出先アドレスを第1読出先アドレスIF1、第2読
出先アドレスIF2という。
【0056】図4においてIF1はセレクタ26が出力し
たアドレスをいい、IF2はIF2保持部22が保持するアド
レスをいう。図12は、命令読出回路10内で行われる
パイプライン処理を示すタイミングチャートである。以
降、命令読出回路10の構成要素について言及する場合
は、本タイミングチャートを引用するものとする。IF1+
1保持部20は、カウント値を保持するためのカウント
値レジスタとして用いられるものであり、タスク別PC格
納部24から何れか一つの読出先アドレスが出力される
と、当該アドレスをカウント初期値として保持し、その
カウント値のインクリメントがincrement回路21より
行われると、インクリメント後のアドレスを最新のカウ
ント値として保持する。
【0057】この際、increment回路21より新たにイ
ンクリメントされたアドレスが出力されてくると、IF1+
1保持部20はそれまで保持していたアドレスを信号線
を介してセレクタ25に出力すると共にセレクタ26
に出力する。increment回路21は、セレクタ26によ
り出力されたIF1をクロック信号に従ってインクリメン
トする。インクリメントされたアドレスはIF1+1保持部
20により保持される。セレクタ26により出力された
IF1は、それまでIF1+1保持部20により保持されていた
値であるので、increment回路21によるインクリメン
トにより、IF1+1保持部20が保持していたカウント値
は一クロック毎にインクリメントされてゆく。
【0058】図12のタイミングチャートにおいて、読
出先アドレスとして出力された命令0-0の読出先アドレ
スは、increment回路21によってインクリメントされ
る(図中のinc1,inc2,inc3参照)。これによりIF1+1保
持部20が保持する読出先アドレスは、命令0-1のアド
レス、命令0-2のアドレス、命令0-3のアドレスというよ
うに更新されてゆく。
【0059】IF2保持部22は、クロック信号に同期し
て前回IF1+1保持部20により出力されたアドレスを命
令を読み出すべき第2の読出先アドレスとして保持す
る。図12のタイミングチャートでは、第2の読出先ア
ドレスとして命令0-0のアドレス、命令0-1のアドレス、
命令0-2のアドレス、命令0-3のアドレスが出力されてい
ることがわかる。これらのアドレスは第1の読出先アド
レスより一サイクルだけ遅れていることがわかる。新た
なアドレスがIF1+1保持部20から出力されると、IF2保
持部22はそれまで保持していたアドレスをDECPC保持
部23に出力し、信号線を介してセレクタ25にも出
力する。出力後、IF1+1保持部20により出力されたそ
の新たなアドレスを保持する。
【0060】DECPC保持部23は、前回IF2保持部22に
より出力されたアドレスを保持する。このアドレスは命
令解読制御部11による解読制御の対象となる命令のア
ドレスと一致する。新たなアドレスがIF2保持部22に
より出力されると、その新たなアドレスを保持して解読
対象のアドレスの更新を行う。DECPC保持部23が保持
するアドレスは、IF2保持部22がそれまで保持してい
たアドレスであり、IF2保持部22が保持するアドレス
は、IF1+1保持部20がそれまで保持していたアドレス
であるから、IF1+1保持部20が保持しているアドレス
と比較すると、DECPC保持部23に保持されているアド
レスは二命令遅れであり、IF2保持部22が保持してい
るアドレスと比較すると、DECPC保持部23に保持され
ているアドレスは一命令遅れである。
【0061】タスク別PC格納部24は、タスク毎の読出
先アドレスを保持する領域をその内部に有するメモリ回
路或はタスク毎に設けられたアドレスレジスタである。
内部領域或は個々のアドレスレジスタにおいて、個々に
記憶されている読出先アドレスには、3ビット長のタス
ク識別子がアドレスとして付されている。尚、タスク
(0)の読出先アドレスをIPC0と呼び、タスク(1)の読出先
アドレスをIPC1と呼ぶ。以降タスク(2)、タスク(3)、タ
スク(4)、タスク(5)についても同様である。
【0062】タスク別PC格納部24におけるこれらの読
出先アドレスの読み書き動作はタスク管理部15からタ
スクを切り換える旨の指示(タスク切替信号chg_task_e
xのHigh値)が出力された場合に行われる。このタスク
切替信号chg_task_exがHigh値である場合においてタス
ク管理部15よりタスク切替信号chg_task_exと共に実
行が済んだタスクの3ビット長の識別子(書き込みアド
レス選択信号taskid(wr_adr))及び次に実行すべきタス
クの3ビット長の識別子(読み出しアドレス選択信号nxt
taskid(rd_adr))が出力されるが、タスク別PC格納部2
4はこれらの信号に従った内部領域の読み書きを行う。
即ちタスク別PC格納部24は書き込みアドレス選択信号
taskid(wr_adr)をタスク別PC格納部24内のアドレスと
して解釈して、それに指示される内部領域にセレクタ2
5から出力された読出先アドレスを格納する。図12の
タイミングチャートにおいてタスク切替信号chg_task_e
xが立ち上がったタイミングa1,b1において読出先アドレ
スの書き込みa2,b2が行われる。
【0063】書き込み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から行われる。
【0064】書き込みb2が行われた時期には、IF2保持
部22は命令1-3のアドレスを保持しており、IF1+1保持
部20はこの命令1-3のアドレスに『1』を加算したアド
レス1-4を信号線を介してセレクタ25に出力してい
る。このように出力すると、インクリメントされたアド
レス1-4がタスク別PC格納部24に格納される。これに
より、タスク別PC格納部24内のタスク(1)に次のスレ
ッドが巡ってくれば、タスク(1)の読出はアドレス1-4か
ら行われる。
【0065】また読み出しアドレス選択信号nxttaskid
(rd_adr)がタスク管理部15より与えられると、タスク
別PC格納部24は、その識別子をタスク別PC格納部24
内のアドレスとして解釈して、それにより指示される内
部領域から非同期イベントタスクの読出先アドレスを取
り出してセレクタ26に出力する。図12のタイミング
チャートにおいて、読み出しアドレス選択信号nxttaski
dとして識別子(1)がタスク管理部15より与えられ、ch
g_task_exが立ち上がると(参照符号a3参照)、タスク
別PC格納部24は、その識別子により指示されるタスク
(1)をタスク別PC格納部24内のアドレスとして解釈し
て、そこに格納されている読出先アドレス(1-0)を取り
出してセレクタ26に出力する(参照符号a4参照)。
【0066】命令2-0のアドレスが読出先アドレスIF1と
して出力されたタイミングで、読み出しアドレス選択信
号nxttaskidとして識別子(2)がタスク管理部15より与
えられ、chg_task_exが立ち上がると(参照符号a5参
照)、タスク別PC格納部24は、その識別子により指示
されるタスク(2)の読出先アドレスとして読出先アドレ
ス(2-0)を取り出してセレクタ26に出力する(参照符
号a6参照)。
【0067】以上のように読出先アドレスが出力される
と、タスク(0)の命令は4命令だけ実行され、これに続
いてタスク(1)の命令が4命令だけ実行される。以降、
タスク(2)、タスク(3)、タスク(4)、タスク(5)の命令列
がそれぞれ四命令ずつ実行されてゆく。4入力−1出力の
セレクタであるセレクタ25は、、、、の信号
線に伝送されるアドレスの何れかを選択的にタスク別PC
格納部24に出力する。これらの〜の何れを選択す
るかは図5に示す出力論理表に示す通りであり、命令解
読制御部11が命令の解読結果に応じて出力するselpc
信号に基づいてなされる。ここでの信号線はIF1+1保
持部20の出力であり、タスク管理部15よりタスク切
替信号chg_task_exがHigh値に切り換えられた場合はセ
レクタ25はこれを選択する。
【0068】また、の信号線はそれぞれ命令解読制
御部11及び演算実行部14を接続されている。は、
絶対アドレス指定を用いた分岐命令の解読時において、
分岐命令の即値を分岐先アドレスとして命令解読制御部
11から取得するために選択される。は、間接参照指
定を用いた分岐命令の解読時において、演算実行部14
により算出されたアドレスを分岐先アドレスとして用い
る際に選択される。
【0069】セレクタ26は、2入力−1出力のセレクタ
であり、タスク切替信号chg_task_exがLowの期間におい
てincrement回路21によるインクリメント後のアドレ
スを選択してIF1としてincrement回路21及びIF2保持
部22に出力する。タスク切替信号chg_task_exがHigh
の期間においてタスク別PC格納部24に格納されている
次に実行すべきタスクのアドレスをIF1としてincrement
回路21及びIF2保持部22に出力する。
【0070】以上のように構成された命令読み出し回路
によれば、タスク切り換え時において、これまで実行さ
れていたタスクの読出先アドレスはセレクタ25により
タスク別PC格納部24に格納され、これに代えてタスク
別PC格納部24に格納されている次のタスクのアドレス
がセレクタ26によりIF1として出力される。以上の読
出先アドレスの切り換えは、一サイクルにて行われ、こ
の読出先アドレスの切り換えにおいて、I/Oプロセッサ
は余計な処理を行う必要がない。割り込み信号の通知時
に行われる分岐のように先行的に読み出したアドレスを
無効化することもない。従って、命令読出回路10によ
る読出先アドレスの退避・復元は、オーバーヘッドの発
生無しに行われる。 (4.2)タスク管理部15は、次に実行すべき非同期イ
ベントタスクをどのように決定するか タスク管理部15がどのような内部構成にて次に実行す
べき非同期イベントタスクを決定するかを図6に示すタ
スク管理部15の内部構成を参照しながら説明する。
【0071】図6は、タスク管理部15の内部構成を示
す図である。図6に示すようにタスク管理部15はスレ
ッドマネージャー61及びスケジューラ62からなり、
スレッドマネージャー61はフリップフロップ 51、
カウンタ52、及び比較器54から構成され、スケジュ
ーラ62はタスクID保持部71、タスクID保持部72、
タスクラウンド管理部73、及びプライオリティエンコ
ーダ74から構成される。
【0072】フリップフロップ 51は、次に実行され
る命令が何番目であるかを示す整数値(これをカウント
値iと呼ぶ)を保持する。カウンタ52は、初期値が
『1』に設定され、上限値が『4』に設定されたカウンタ
であり、クロック信号に同期してフリップフロップ 5
1に保持されているカウント値を1,2,3,4,1,2,3,4とい
うようにカウントアップする。
【0073】比較器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サイクルの
実行につき一回行われることになる。
【0074】タスクID保持部71は、命令実行のカウン
トがカウンタ52により行われているタスクの識別子
(これをタスク識別子taskidと呼ぶ。)を保持する。タ
スク識別子の一例を図7(a)に示す。図7(a)に示
すように、タスク識別子は3ビットを用いて、命令メモ
リ100に記憶されている6つのタスクの何れか一つを
指示する。命令実行のカウントが4回行われると、スケ
ジューラ62においてプライオリティエンコーダ74か
ら次にスレッドを割り当てるべきタスクのタスク識別子
taskidが出力されてくるが、この際タスクID保持部71
は、これまで保持していたタスク識別子taskidをタスク
ラウンド管理部73に出力し、新たに出力されてくるタ
スク識別子taskidを保持する。
【0075】タスクラウンド管理部73は、タスクID保
持部71においてタスク識別子がどのように更新されて
きたかを監視し、6ビット長のレジスタを用いて六個の
タスクのうちスレッドが割り当てられたものを管理す
る。またカウンタ52が4命令の実行をカウントする
と、タスクID保持部71によりタスク識別子taskidが出
力され、タスクラウンド管理部73はスレッドの割り当
てが済んだタスクを示す数値(この数値をラウンド値ta
sknと呼ぶ)をプライオリティエンコーダ74に出力す
る。ラウンド値tasknの一例を図7(b)に示す。この
ラウンド値tasknにおいて、第1ビットが『1』であれ
ば、タスク(1)にスレッドが割り当てられたことを示
し、第1ビットが『0』であればタスク(1)がそうでない
ことを示す。タスク管理レジスタ13の第2ビットが
『1』であれば、タスク(2)にスレッドが割り当てられた
ことを示し、第2ビットが『0』であればタスク(2)がそ
うでないことを示す。
【0076】タスク(0)、タスク(1)にスレッドの割り当
てが済めば、タスクラウンド管理部73は『000011』を
プライオリティエンコーダ74に出力する。またタスク
(0)、タスク(1)、タスク(2)にスレッドの割り当てが済
めば、タスクラウンド管理部73は『000111』をプライ
オリティエンコーダ74に出力し、タスク(0)、タスク
(1)、タスク(2)、タスク(3)にスレッドの割り当てが済
めば、タスクラウンド管理部73は『001111』をプライ
オリティエンコーダ74に出力する。
【0077】尚タスク(0)〜タスク(5)へのスレッドの割
り当てが一巡すると、『111111』をプライオリティエン
コーダ74に出力した後6ビット長のレジスタを『00000
0』にリセットする。プライオリティエンコーダ74
は、タスクラウンド管理部73が出力したラウンド値ta
sknを受け取り、受け取ったタスクラウンド管理部73
のラウンド値tasknにおいて何ビット目に『1』から
『0』への反転が生じているかを検出する。このように
『0』への反転が生じたビットを検出すると、この反転
が生じたビットに割り当られているタスクのタスク識別
子taskidをタスクID保持部71に出力する。出力された
タスク識別子は、アドレス選択信号nxttaskid(rd_adr)
としてタスク別PC格納部24に出力される。
【0078】例えばタスクラウンド管理部73からラウ
ンド値tasknとして『000011』が出力されると、プライ
オリティエンコーダ74はこのラウンド値tasknにおい
て下位から第2ビット目に『0』への反転が生じている
ことを検出する(尚、最下位ビットをゼロビットと数え
ていることは留意されたい。)。この第2ビット目は図
7(b)においてタスク(2)に割り当られているビット
であるから、プライオリティエンコーダ74はタスク
(2)のタスク識別子taskidをタスクID保持部71に出力
する。
【0079】例えばタスクラウンド管理部73からラウ
ンド値tasknとして『000111』が出力されると、プライ
オリティエンコーダ74はこのラウンド値tasknにおい
て下位から第3ビット目に『0』への反転が生じている
ことを検出する。この第3ビット目は図7(b)におい
てタスク(3)に割り当られているビットであるから、プ
ライオリティエンコーダ74はタスク(3)のタスク識別
子taskidをタスクID保持部71に出力する。ラウンド値
tasknは既にスレッドの割り当てが済んだタスクを示す
から、このラウンド値tasknにおいて『0』へと反転して
いるビットは次にスレッドを割り当てるべきタスクがど
れであるかを意味する。『0』へと反転しているビット
をタスク識別子taskidに変換すると、タスクID保持部7
1には次にスレッドを割り当てるべきタスクが格納され
る。
【0080】タスクID保持部72は、プライオリティエ
ンコーダ74が新たなタスク識別子taskidを出力する
と、直前に出力されていたタスク識別子taskidを書き込
みアドレス選択信号taskid(wr_adr)として保持して、タ
スク別PC格納部24に出力する。以上のように構成され
た第1実施形態のI/Oプロセッサによって、どのように
スレッドが割り当てられるかを図13に示す。図13
は、タスク(0)からタスク(5)までのタスクに割り当てた
スレッドを時間順に並べることにより形成されるフレー
ムという単位を示す。
【0081】タスク(0)〜タスク(5)にはそれぞれ4サイ
クルのスレッドが割り当てられるので、24サイクルの
フレームが形成されることになる。このフレームによ
り、図7に示した命令列は四命令ずつ均一に実行される
ことになる。 (5.)動作クロック数の計算について 第1実施形態のI/Oプロセッサにおいて動作クロック数
がどのように計算されるかについて図55を参照しなが
ら説明する。図55は第1実施形態におけるスレッド割
り当てにてビデオアウトタスク、オーディオアウトタス
クを実行する場合に動画ストリーム、オーディオストリ
ームがどのように処理されるかを示すタイミングチャー
トである。ここでビデオアウトタスク、オーディオアウ
トタスクのリアルタイム性を保証するには、動画ストリ
ームを映像信号に変換するためのビデオアウトタスクは
ディスプレィの水平同期信号の周期に基づいた50μsec
において、一ライン分の画像を処理させねばならないと
し、オーディオストリームを音声信号に変換するための
オーディオアウトタスクは90μsecという周期におい
て、所定の音声ストリームを処理せねばならないとす
る。
【0082】この場合、先ず第1に上記の周期において
『これだけの数の命令は最低実行しておかねばならな
い』という最低消化数を導出する。ここで一ライン分の
映像データを復号するには、ビデオアウトタスク内の44
8個もの命令実行を最低消化せねばならず、一周期分の
音声データを復号するには、オーディオアウトタスク内
の808個もの命令実行を最低消化せねばならない。ま
た、本実施形態においてCPI=1であり、命令数はサイ
クル数と等価であるため、最低消化数からビデオアウト
タスク、オーディオアウトタスクに割り当てるべきサイ
クル数が448(=4×112)サイクル、808(=4×202)サイクル
と決定される。
【0083】またタスク(0)〜タスク(5)はそれぞれを四
サイクルずつ実行される。ここで命令読出回路10内で
のセレクタ25、セレクタ26によるプログラムカウン
タの切り換えによりオーバーヘッドは発生しないので、
タスク(0)〜タスク(5)の一巡に要する時間は実質24サイ
クルとなる。命令サイクル数は4であり、タスク総数は6
であるので、全てのタスクは、24サイクルにて4命令ず
つ実行されることになる。
【0084】そうすると、1サイクルに要する時間S1,S2
は以下の式を満たさねばならない。 50μsec > 6×4×112×S1nsec 90μsec > 6×4×202×S2nsec S1 < 50μsec / 6×4×112 = 18.6nsec S2 < 90μsec / 6×4×202 = 18.56nsec 動作クロック数を1÷S2nsecの計算から定めると、 54MHz = 1÷18.56nsec となる。以上の計算により、ビデオアウトタスク、オー
ディオアウトタスクの処理完遂に最適な動作クロック数
を一義的に導出することができる。以上のように本実施
形態によれば、動作クロック数の最適な下限値を所定の
周期において実行せねばならない命令の最低消化数と、
実行周期と、タスク総数とから一義的に導出することが
できる。動作クロックの最適な下限値が求まるので、動
作クロック信号を一段と高いものに定めずとも、オーデ
ィオアウトタスク、ビデオアウトタスクのリアルタイム
性を保証でき、動作クロックが低速なタイプが多い民生
機器に搭載される場合でも、MPEGストリームを好適に復
号することができる。
【0085】また、複数の非同期イベントタスクを時分
割多重にて実行するI/Oプロセッサを設けることによ
り、割込にて非同期イベント処理を処理しなくて済むの
で、setup部104、VLD部105、IQ/IDCT部106は
逆量子化、逆離散余弦変換、動き補償の処理に専念する
ことができる。また、I/Oプロセッサはプログラムカウ
ンタの値を退避し、復元するためのオーバーヘッドの発
生無しに高速にタスクを切り換えて実行するので、動作
クロックを高速にしなくても、MPEGストリームの再生に
要求されるリアルタイム性を満たすことができる。
【0086】尚、本実施形態において各タスクについて
のスレッドを一律に4サイクルとしたが、各タスクの処
理内容に応じて、それぞれ異なる値に設定しても良い。
タスク別にサイクル数を可変にする場合、図6に示した
スレッドマネージャーを図56に示すように構成する。
本図においてセレクタ200は、タスク(0)からタスク
(5)までの固有のサイクル数である『cycle number for
task0』〜『 cycle number for task5』と接続され、ス
ケジューラ62が出力したnxttaskidに応じて対応する
サイクル数を択一式に比較器54に出力する。図26に
おいて次にスレッドを割り当てるべきタスクがタスク
(0)なら、セレクタ200は『cyclenumber for task0』
を比較器54に出力する。このように構成すれば、タス
ク(0)からタスク(5)までのそれぞれの処理負荷に応じた
最適なサイクル数を各タスクに分配することができる。
またこのような最適なサイクル数をメモリ又はレジスタ
に記憶させておき、これを後日書き換えてもよい。
【0087】更に、本実施形態において実行すべきタス
クを非同期イベントタスクに絞って説明したが、別のタ
スクでもよい。 (第2実施形態)第1実施形態では各タスクのスレッド
に割り当る命令数を一律四サイクルとしていたが、第2
実施形態ではどれだけのサイクルを1スレッドに割り当
るかを、各タスクが独自に変更できるようにした実施形
態である。スレッドへの割り当ては、Wait_Until_Next
命令によりなされる。Wait_Until_Next命令とはスレッ
ドにおける命令を途中で打ち切り、Wait_Until_Next命
令の次順に位置する一連の命令列を次のスレッドに先送
りする旨の命令である。尚Wait_Until_Next命令の解読
時における読み出し先アドレスの格納であるが、この際
図4に示した5入力−1出力のセレクタ25は、の信号
線を介してIF1+1保持部20の出力を選択してタスクPC
格納部24に格納する。
【0088】図14は、Wait_Until_Next命令(図中のW
UN命令)を命令0-1としてその内部に有した非同期イベ
ントタスクの一例であり、図16は、図14の非同期イ
ベントタスクがどのように実行されるかを示すタイミン
グチャートである。Wait_Until_Next命令が図14に示
すように命令0-1として非同期イベントタスクの第1番
目の命令として格納されている場合、この命令0-1がDEC
PC保持部23に格納され、命令解読制御部11により解
読されると、セレクタ25は、の信号線を介して命令
0-2の読出先アドレスをタスク別PC格納部24に格納す
る(図16のも同様である。)。その後命令解読制御
部11は、命令0-2、命令0-3を無効化する(図16にお
ける『NOP』)。
【0089】ここで命令0-2は、I/Oプロセッサのローカ
ルメモリ内のアドレスmem1の値をレジスタセット12内
のレジスタr0に読み出す命令であり、命令0-3はI/Oプロ
セッサのローカルメモリ内のアドレスbuf1の値をレジス
タr1に読み出す命令である。命令0-4はレジスタr0の値
とレジスタr1の値とを乗じて、その結果をレジスタr2に
格納する命令であり、命令0-5は、レジスタr2の値をI/O
プロセッサのローカルメモリ内のアドレスmem1に格納す
る命令である。
【0090】以上の四つの命令は、読出先アドレス、書
込先アドレスが共にI/Oプロセッサのローカルメモリで
あり、命令0-0がWait_Until_Next命令であることによ
り、I/Oプロセッサのローカルメモリを読出先アドレス
−書込先アドレスとした命令が一つのスレッドに納めら
れたことがわかる。図15は、Wait_Until_Next命令の
命令フォーマットの一例を示す。図15において、本命
令は図9に示したレジスタ指定型の算術演算命令の命令
フォーマットを有する。本フォーマットの11bitから13b
itを『010』に指定することにより、Wait_Until_Next命
令のオペレーションをI/Oプロセッサは実行する。
【0091】以上のように構成された第2実施形態のI/
Oプロセッサによって、どのようにスレッドが割り当て
られるかを図17を参照しながら説明する。タスク
(1)、タスク(2)、タスク(3)、タスク(4),タスク(5)には
四サイクルのスレッドが割り当てられる。しかしタスク
(0)には、wait_until_next命令が存在しているので、タ
スク(0)に割り当てられるスレッドは、wait_until_next
命令が配置されている位置までとなり、タスク(0)に割
り当てられるスレッドは2サイクルとなる。
【0092】タスク(0)〜タスク(5)が一巡した後に形成
される次のフレームにおいて、タスク(1)は、他のタス
クと同様4サイクルのスレッドが割り当てられる。以上
のように本実施形態によれば、同一メモリをアクセス先
としたメモリアクセス命令を一つのスレッドにおいて集
中して実行することができる。 (第3実施形態)第1実施形態においては、非同期イベ
ントタスクを起動すべき事象が成立したか否かに係ら
ず、6本の非同期イベントタスクに公平にスレッドを割
り当てていたので、起動する必要がない非同期イベント
タスクと、その必要がある非同期イベントタスクとが実
質同時間であるという悪平等が横行していた。第3実施
形態は、非同期イベントタスクを起動すべき事象が成立
しているか否かのチェックを非同期イベントタスクに行
わせ、起動すべき事象が未成立のタスクについては、サ
イクルの割当数を削減するように制御を行う。
【0093】第3実施形態におけるI/Oプロセッサの内
部構成を図18に示す。図18においてI/Oプロセッサ
が命令メモリ100、命令読出回路10を備えている点
は第1実施形態と変わりはない。第3実施形態において
新規なのは、命令解読制御部11及び演算実行部14が
それぞれ、命令解読制御部81及び演算実行部84に置
き換えられている点である。また7本の状態監視レジス
タが追加され、タスク管理部15の内部にタスク管理レ
ジスタ13が備えられた点である。
【0094】七本の状態監視レジスタCR1〜CR7は、それ
ぞれが5ビット長のレジスタであり、AVデコーダ内部に
おいてI/Oプロセッサの周辺に位置する構成要素、即
ち、ビデオ出力部108、バッファメモリコントローラ
110、RAMコントローラ111、FIFOコントローラ1
12等の構成要素と接続され、I/Oプロセッサの周辺部
における5個の事象の成否が各ビットに反映されている
(尚、ビデオ出力部108、バッファメモリコントロー
ラ110、RAMコントローラ111、FIFOコントローラ
112との接続は複雑であるため、その図示は省略して
いる。)。
【0095】その一例として状態監視レジスタCR1、状
態監視レジスタCR2、状態監視レジスタCR3について図2
3を参照しながら説明する。図23は、状態監視レジス
タCR1、状態監視レジスタCR2、状態監視レジスタCR3の
ビット構成を示した図である。状態監視レジスタCR1の
第0ビットは、通常は『0』に設定され、バッファメモ
リバス121においてバッファメモリ102へのデータ
転送が所定回数が行われたときのみ『1』に設定され
る。
【0096】状態監視レジスタCR1の第1ビットは、通
常は『0』に設定され、バッファメモリバス121に出
力されたMPEGストリームのスタートコードが検出された
ときのみ『1』に設定される。状態監視レジスタCR1の第
2ビットは、通常は『0』に設定され、バッファメモリ
バス121に出力されたMPEGストリームに1バイト以上
の有効データの存在が確認されたときのみ『1』に設定
される。
【0097】状態監視レジスタCR1の第3ビットは、通
常は『0』に設定され、バッファメモリ102に、バッ
ファに有効ビットが3Byte以上存在するときのみ『1』に
設定される。また本ビットは、パージングタスクと、オ
ーディオストリーム転送制御タスク、動画ストリーム転
送制御タスクとの間の通信に用いられる。状態監視レジ
スタCR2の第0ビットは、通常は『0』に設定され、バッ
ファメモリ102上でSDRAM300への転送をサポート
する旨の要求が発せられば『1』に設定される。また本
ビットは、パージングタスクと、オーディオストリーム
転送制御タスク、動画ストリーム転送制御タスクとの間
の通信に用いられる。
【0098】状態監視レジスタCR2の第1ビットは、通
常は『0』に設定され、DMA転送が完了したときのみ
『1』に設定される。状態監視レジスタCR2の第2ビット
は、通常は『0』に設定され、ビットストリームFIFO1
03に対しての転送要求がある場合のみ『1』に設定さ
れる。状態監視レジスタCR2の第3ビットは、通常は
『0』に設定され、FIFOコントローラ112内部の制御
レジスタが更新されれば、『1』に設定される。状態監
視レジスタCR3の第0ビットは、通常は『0』に設定さ
れ、バッファメモリ102がDMA_READY状態となれば
『1』に設定される。
【0099】状態監視レジスタCR3の第1ビットは、通
常は『0』に設定され、SDRAM300へのDMA転送が完了
すれば『1』に設定される。状態監視レジスタCR3の第2
ビットは、通常は『0』に設定され、外部に接続された
ディスプレィ装置における水平帰線信号の立ち下がりに
て『1』に設定される。
【0100】状態監視レジスタCR3の第3ビットは、通
常は『0』に設定され、外部に接続されたディスプレィ
装置におけるビデオ信号が水平ブランキング期間になる
と『1』に設定される。状態監視レジスタCR3の第4ビッ
トは、通常は『0』に設定され、ビデオアウトタスクに
対する処理要求が発生した場合のみ『1』に設定され
る。
【0101】以上のように3本の状態監視レジスタは、
AVデコーダ内の各バッファやコントローラの制御状態を
表している。他の状態監視レジスタも同様であり、7本
の状態監視レジスタによりI/Oプロセッサは、各非同期
イベントタスクは、自身の起動要因となる各種事象が成
立しているか否かを監視することができる。演算実行部
84は、演算実行部14と同様の機能を有した構成であ
る。演算実行部14と比較して第1に新規なのは命令解
読制御部81からCR1〜CR7といった各状態監視レジスタ
に付された番号と即値とを受け取り、指定された状態監
視レジスタの保持値と受け取った即値との比較のための
減算を行う点である。この減算結果に応じてゼロフラ
グ、キャリーフラグをオン/オフして状態監視レジスタ
の保持値と即値との一致、不一致、大小を命令解読制御
部81に知らせる。
【0102】上記の通知において命令解読制御部81は
現在実行中の演算を無効化する旨の信号を出力し得る
が、これを受け取ると演算実行部84は汎用レジスタへ
の値の格納を中断する。命令解読制御部81は、命令解
読制御部11と同様の機能を有した構成であるが、命令
解読制御部11と異なるのは命令解読制御部81は事象
待ちループを形成し得る命令を命令メモリ100から読
み出して、これを解読した際にCR1〜CR7といった各状態
監視レジスタに付された番号と即値とを演算実行部84
に出力する。尚、事象待ちループを構成する命令とは、
以下の{例1}の旨の内容である。状態監視レジスタの
指定と即値とを演算実行部84に出力した後、演算実行
部84がゼロフラグ、キャリーフラグにより保持値と即
値との一致、不一致、大小を命令解読制御部81に知ら
せると、命令解読制御部81はこれを参照し、もし保持
値と即値との不一致が通知されれば、タスク管理レジス
タ13に事象不成立を示す信号を出力し、この次の命令
の実行結果を無効化する旨の信号を演算実行部84に出
力して読出先アドレスの値を先に進めないよう、命令読
出回路10に通知する。もし保持値と即値との不一致が
通知されれば、タスク管理レジスタ13に事象成立を示
す信号を出力する。 {例1} 命令 事象iの成立の真偽を判定し、事象iの成立が偽ならば読
出先アドレスを先には進めない。
【0103】また本命令のニーモニックを{例2}に示
す。 {例2} cmp_and_wait cr_statei,即値 {例2}において第1オペランドにcr_statei(i=0,1,2,
3,4・・・7)が記述されているのは、I/Oプロセッサにおけ
る7本の状態監視レジスタのうち何れかを指示できるこ
とを意味する。
【0104】この第1オペランドにおける状態監視レジ
スタの指定と、第2オペランドにおける即値指定とを組
み合わせて、35もの事象のうち、任意のもの成否を確認
することができる。上記命令を以降の説明ではCmp_And_
Wait命令と呼ぶ。また上述した事象待ちループは、この
Cmp_And_Wait命令の第1オペランド、第2オペランドに
おいて指定された事象の成否が何度も否と判定されるこ
とにより発生することはいうまでもない。
【0105】第3実施形態における変更が加えられた命
令読出回路10の構成を図19に示す。図19において
命令読出回路10がIF1+1保持部20、increment回路2
1、IF2保持部22、DECPC保持部23、タスク別PC格納
部24、セレクタ25、セレクタ26を備えている点は
第1実施形態と差違はない。命令読出回路10において
新規なのは、DECPC保持部23の出力段に接続されたフ
リップフロップ 27である。
【0106】フリップフロップ 27は、Cmp_And_Wait
命令が指定した事象が不成立である場合に備え、命令解
読制御部81が解読中の命令の読出先アドレスをセレク
タ25に出力できるようDECPC保持部23の値を保持し
ている。もしプログラムカウント値を戻す旨の指示が命
令解読制御部11より与えられれば、フリップフロップ
27はその保持値をの信号線を通じてセレクタ25
に出力し、セレクタ25は、このフリップフロップ 2
7の保持値をタスク別PC格納部24に格納するよう、タ
スク別PC格納部24の入力元をの信号線に切り換え
る。第3実施形態における命令読出回路の出力論理表を
図20に示す。
【0107】図26は、Cmp_and_Wait命令の解読時のフ
レームにおけるI/Oプロセッサの構成要素についてのタ
イミングチャートであり、本タイミングチャートにおけ
るフリップフロップ27の役割について説明する。図2
6においてフリップフロップ 27が保持値としてCmp_a
nd_Wait命令のアドレスに相当する命令0-0のアドレスを
参照符号a7に示すように出力すると、命令0-0のアドレ
スはIPC0としてタスク別PC格納部24に格納される。こ
れによりタスク別PC格納部24には、IPC0としてCmp_an
d_Wait命令のアドレスが格納されることになる。
【0108】本実施形態におけるタスク管理部15の内
部構成を図21に示す。図21に示すタスク管理レジス
タ13は、事象待ちループ(以降wait状態と呼ぶ)に陥
ったタスクを個別に管理するためのビットが割り当られ
たレジスタである。タスク管理レジスタ13は命令解読
制御部81から事象不成立を示す信号が通知されると、
タスクID保持部72が保持しているタスク識別子taskid
を参照し、そのタスク識別子taskidに対応するビットを
『1』に切り換える。逆に事象成立を示す信号が通知さ
れると、タスクID保持部72が保持しているタスク識別
子taskidを参照し、そのタスク識別子taskidに対応する
ビットを『0』に切り換える。
【0109】図22は、タスク管理レジスタ13におけ
るwait状態タスクの管理用のビット構成を示す。本図に
おいて第0ビットが『1』であれば、タスク(0)がwait状
態であることを示し、第0ビットが『0』であればタス
ク(0)がそうでないことを示す。また本図において第1
ビットが『1』であれば、タスク(1)がwait状態であるこ
とを示し、第1ビットが『0』であればタスク(1)がそう
でないことを示す。タスク管理レジスタ13の第2ビッ
トが『1』であれば、タスク(2)がwait状態であることを
示し、第2ビットが『0』であればタスク(2)がそうでな
いことを示す。タスク管理レジスタ13による事象待ち
ループの管理により、複数のタスクにおいて同時多発し
た事象待ちループを個別に管理することができる。
【0110】図26のタイミングチャートにおいて、命
令0-0がCmp_and_Wait命令であると解読され、事象が不
成立であると判定されたものとする。この場合、命令解
読制御部81はタスク(0)が事象成立待ち状態になった
旨を参照符号a8に示すように通知する。そうすると、タ
スク管理レジスタ13はタスク(0)のタスク識別子に対
応するビットを参照符号a9に示すように『1』に設定す
る。
【0111】続いて『事象成立待ち時』、『事象成立
時』、『事象成立時以降』においてタスク管理レジスタ
13に割り当てられた各ビットがどのように設定される
かについてタイミングチャートを参照しながら説明す
る。図27に事象成立待ち時、図28に事象成立時、図
29に事象成立時以降におけるタイミングチャートを示
す。
【0112】タスク(0)におけるCmp_and_Wait命令が成
立を待っていた事象が図28において成立したとする。
この場合、命令解読制御部81は事象が成立した旨を参
照符号d1に示すように通知する。そうすると、タスク管
理レジスタ13はタスク(0)のタスク識別子に対応する
ビットを参照符号d2に示すように『0』に設定する。図
21を参照して、第3実施形態におけるスレッドマネー
ジャー61の内部構成について説明する。スレッドマネ
ージャー61においてフリップフロップ 51、カウン
タ52、比較器54を備えている点は第1実施形態と差
違は無い。図21において新規なのはIDコンバータ53
及びセレクタ55である。
【0113】IDコンバータ53は、タスクID保持部72
に次にスレッドを割り当てるべきタスクの識別子が出力
されると、タスク管理レジスタ13においてwait状態に
設定されているタスクと次にスレッドを割り当てるべき
タスク識別子taskidとが一致しているかを判定し、もし
一致していればセレクタ55にHigh値を出力し、不一致
ならばセレクタ55にLow値を出力する。
【0114】セレクタ55は、IDコンバータ53が出力
した信号のHigh値、Low値に応じて、『2』或は『4』
の数値を択一式に比較器54に出力する。図26におい
て次にスレッドを割り当てるべきタスクがタスク(0)な
ら、参照符号a10においてセレクタ55にLow値が出力さ
れるので参照符号a12に示すように、セレクタ55は
『4』を比較器54に出力する。しかし図26の参照符
号a9においてタスク(0)についてのビットが『1』に設定
されて、図27の参照符号g1に示すようにセレクタ55
にHigh値が出力されると、セレクタ55は参照符号g2に
示すように『2』を比較器54に出力する。
【0115】図28の参照符号d2においてタスク(0)に
ついてのビットが『0』に設定されて、図29において
参照符号g5に示すようにセレクタ55にHigh値が出力さ
れると、セレクタ55は参照符号g6に示すように『4』
を比較器54に出力する。 セレクタ55が『2』又は
『4』の数値を択一的に比較器54に出力することによ
り、2サイクルのスレッド、4サイクルのスレッドの何
れか一方が各タスクに割り当てられる。セレクタ55が
『2』を出力した際には、その第2番目の命令を無効化
するので、その結果、1サイクルのスレッドが割り当て
られることになる。
【0116】タイミングチャートの時間軸に沿って、図
26から図29までのタイミングチャートに示されてい
る命令読出回路10の構成要素及びタスク管理部15の
構成要素の動作について説明する。初期状態においてタ
スク管理レジスタ13のビットはオールゼロであるもの
とする。そうして図26においてタスク(0)から命令の
読み出しが開始されると、タスク(0)についてのビット
はタスク管理レジスタ13において『0』に設定されて
いるので、参照符号a12に示すようにセレクタ55はカ
ウンタの上限値として『4』を出力する。カウンタの上
限値が『4』に設定されたので、タスク(0)を四サイク
ル実行しようとするが、命令0-0がCmp_and_Wait命令で
あるので、参照符号a7に示すようにタスク別PC格納部2
4に命令0-0の読出先アドレスを書き込む。それと共
に、参照符号a8,a9に示すようにCmp_and_Wait命令の実
行時においてタスク管理レジスタ13の第0ビットを
『1』に設定する。この設定により、タスク(0)は事象成
立待ちとなる。このようにビットを設定した後、タスク
(1)、タスク(2)、タスク(3)、タスク(4)、タスク(5)の
実行が済んで次のフレームに移行したものとする。
【0117】事象成立待ち状態においてタスク管理レジ
スタ13のビットはタスク(0)のみが『1』であり、その
他のビットはゼロであるものとする。そうして図27に
おいてタスク(0)から命令の読み出しが開始されると、
タスク(0)についてのビットはタスク管理レジスタ13
において『1』に設定されているので、参照符号g2に示
すようにセレクタ55はカウンタの上限値として『2』
を出力する。カウンタの上限値が『2』に設定されたの
で、タスク(0)を2サイクル実行しようとするが、命令0
-0がCmp_and_Wait命令であるので、タスク別PC格納部2
4に命令0-0の読出先アドレスを書き込む。このような
書き込み後、タスク(1)、タスク(2)、タスク(3)、タス
ク(4)、タスク(5)の実行が済んで次のフレームに移行し
たものとする。
【0118】次のフレームにおいて事象が成立したもの
とする。図28においてタスク(0)から命令の読み出し
が開始されると、タスク(0)についてのビットはタスク
管理レジスタ13において『1』に設定されているの
で、参照符号g4に示すようにセレクタ55はカウンタの
上限値として『2』を出力する。カウンタの上限値が
『2』に設定されたので、タスク(0)を2サイクル実行
しようとする。
【0119】命令0-0であるCmp_and_Wait命令の実行時
において、事象成立が確認されるので、参照符号d1,d2
に示すようにCmp_and_Wait命令の実行時においてタスク
管理レジスタ13の第0ビットを『0』に設定する。こ
の設定により、タスク(0)は事象成立待ちから解放され
る。このようにビットを設定した後、タスク(1)、タス
ク(2)、タスク(3)、タスク(4)、タスク(5)の実行が済ん
で次のフレームに移行したものとする。
【0120】図29に示す事象成立以降のフレームにお
いては、タスク(0)についてのビットがタスク管理レジ
スタ13において『0』に設定されているので、参照符
号g6に示すようにセレクタ55はカウンタの上限値とし
て『4』を出力する。カウンタの上限値が『4』に設定
されたので、タスク(0)を4サイクル実行する。以上の
ように構成された第3実施形態のI/Oプロセッサによっ
て、どのようにスレッドが割り当てられるかを図24
(a)〜図24(d)を参照しながら説明する。
【0121】図24(a)においてタスク(0)、タスク
(3)、タスク(4)、タスク(5)は何れもメモリ転送制御タ
スクであり、その第1番目の命令がCmp_and_Wait命令で
あるものとする。ここで図24(b)の状態では、これ
らのCmp_and_Wait命令が待機している事象が未成立であ
るものとすると、タスク(0)、タスク(3)〜タスク(5)に
2サイクルのスレッドが割り当ており、第2命令は無効
化されているが、タスク(1)、タスク(2)には4サイクル
のスレッドが割り当てられる。
【0122】図24(c)においてタスク(0)〜タスク
(5)が何回か巡回し、タスク(0)のCmp_and_Wait命令が待
っていた事象のみが成立したものとする。そうすると当
該事象が成立したフレームにおいては、タスク(3)〜タ
スク(5)には依然として2サイクルのスレッドが割り当て
られており、第2命令は無効化されているが、タスク
(0)は事象が成立したので第2命令は実行される。
【0123】図24(d)において事象j0の成立以降の
フレームにおいては、タスク(0)には、タスク(1)、タス
ク(2)と同一の4サイクルのスレッドが割り当てられ
る。図25は、Cmp_and_Wait命令の命令フォーマットの
一例を示す。図25において、5bitから7bitまでの3bit
を用いて7本の状態監視レジスタのうち何れかを指定で
き、11bitから15bitまでを用いて 5bit長の即値を格納
できる。本フォーマットの9bitから10bitを用いてオペ
レーション内容の指定が可能である。この2bitを『10』
に指定することにより、Cmp_and_Wait命令のオペレーシ
ョンをI/Oプロセッサは実行する。また、この2bitを『0
0』に指定することにより、七本の状態監視レジスタの
うち、一本のものの値と5bit即値との比較命令のオペレ
ーションをI/Oプロセッサは実行する。
【0124】以上のように本実施形態によれば、メモリ
アクセスが可能な状態を待っているメモリ転送制御タス
クにより短い時間長のスレッドを割り当ることにより、
他のタスクの進捗を向上させることができる。 (第4実施形態)第4実施形態は、ディスプレィの水平
ブランキング期間、垂直ブランキング期間において、ビ
デオアウトタスクにより多くのスレッドを割り当てる技
術に関する。
【0125】スレッドの増加を行うI/Oプロセッサは、
第1実施形態におけるタスク管理部15の構成に図30
〜図31に示す変更を加えて実現される。第4実施形態
におけるI/Oプロセッサは、命令メモリ100、命令読
出回路10、命令解読制御部81、演算実行部84、タ
スク管理部15を備えている点は第3実施形態と変わり
はない。第4実施形態において新規なのは、タスク管理
レジスタ13が緊急状態遷移許可信号iexecmodeを監視
している点である。
【0126】第4実施形態におけるタスク管理部15の
内部構成を図30に示す。図30におけるタスク管理レ
ジスタ13における3ビットは、タスク管理レジスタ1
3内の3ビットを用いて緊急扱いを要するタスクの識別
子が指定される。当該3ビットにおいて六個のタスクの
うちどのタスクを緊急扱いするかは、上記緊急状態遷移
許可信号iexecmodeがどのような内容の信号であるかに
応じて適宜変更する。本実施形態では、緊急状態遷移許
可信号iexecmodeは水平ブランキング期間、垂直ブラン
キング期間等に相当し、ビデオアウトタスクの識別子を
タスク管理レジスタ13における3ビットに指定してい
る。
【0127】何れかのタスクを緊急扱いを要するタスク
としてタスク管理レジスタ13に登録するかは、何れの
タスク内にemergecy命令が含まれているかをタスク管理
レジスタ13が参照することにより、決定されるものと
する。命令解読制御部81が次に実行すべき命令を解読
した際、その解読結果がemergecy命令であれば、タスク
管理レジスタ13は当該命令を含むタスクを緊急扱いを
要するタスクとしてその識別子を保持する。
【0128】第4実施形態におけるスケジューラ62の
内部構成を図31に示す。図31においてスケジューラ
62がタスクID保持部72を備えている点は第1実施形
態と差違は無い。図31において新規なのは、タスクラ
ウンド管理部73及びプライオリティエンコーダ74が
それぞれ、タスクラウンド管理部75及びプライオリテ
ィエンコーダ80に置き換えられている点である。また
コンバータ76、緊急タスクマスク部77及びタスクID
保持部83が追加されている点である。
【0129】タスクラウンド管理部75がタスクラウン
ド管理部73と異なるのは、タスクラウンド管理部73
がタスクID保持部71においてタスク識別子がどのよう
に更新されてきたかを監視し、6ビット長のレジスタを
用いて六個のタスクのうちスレッドの割り当てが済んだ
ものを管理するのに対して、タスクラウンド管理部75
は、スレッドの割り当てが済んだタスクの管理を、通常
期間におけるタスク管理と、緊急期間における通常タス
クの管理とに区別して行う点である。例えばタスク管理
レジスタ13においてタスク(1)をインターリーブ式に
実行する場合、6個のタスクのうち5個のタスクがタス
ク(0)、タスク(2)、タスク(3)、タスク(4)、タスク(5)
というように巡回することになる。
【0130】5個のタスクを上記のように巡回する場
合、実行の済んだタスクを示すラウンド値はタスク管理
レジスタ13において管理されている緊急タスク抜きの
数値で表現する必要がある。このようにタスクラウンド
管理部75は緊急タスク抜きのラウンド値を管理するた
め、ラウンド値tasknとは別に緊急タスク抜きのラウン
ド値taskneを緊急タスクマスク部77に出力する。ちな
みにtaskneの『ne』とは、『Not』及び『Emergency』の
頭文字に由来している。
【0131】コンバータ76は、タスク管理レジスタ1
3に管理されている緊急タスクの識別子を6ビットのラ
ウンド値emgcytaskに変換する。緊急タスクマスク部7
7は、コンバータ76により変換されたラウンド値emgc
ytaskと、タスクラウンド管理部75が出力したラウン
ド値taskneとの6ビット長の論理和をとるOR回路78を
備える。
【0132】ここでOR回路78において論理和をとるの
は、ラウンド値taskne及び緊急タスクを示すラウンド値
の両者を含んだ6ビット長のラウンド値を算出すること
を意味する。例えばラウンド値taskneがタスク(0)、タ
スク(2)、タスク(3)にスレッドが割り当てられたことを
示す『001101』であり、ラウンド値emgcytaskが緊急タ
スクがタスク(1)であることを示す『000010』である場
合、OR回路78の出力は、タスク(0)、タスク(1)、タス
ク(2)、タスク(3)にスレッドが割り当てられたことを示
す『001111』となる。
【0133】プライオリティエンコーダ80は、プライ
オリティエンコーダ74の機能に加えて、タスクラウン
ド管理部75が出力したラウンド値taskne(ラウンド値
maskne)を受け取り、受け取ったタスクラウンド管理部
73のラウンド値taskne(ラウンド値maskne)において
何ビット目に『1』から『0』への反転が生じているかを
検出する。このように『0』への反転が生じたビットを
検出すると、この反転が生じたビットに割り当られてい
るタスクのタスク識別子taskidをそれぞれ個別にタスク
ID保持部83に格納させる。
【0134】例えば緊急タスクのラウンド値とラウンド
値taskneとの論理和であるラウンド値maskne『000111』
が緊急タスクマスク部77から出力されると、プライオ
リティエンコーダ80はこのラウンド値maskneにおいて
下位から第3ビット目に『0』への反転が生じているこ
とを検出する。この第3ビット目は図7(b)において
タスク(3)に割り当られているビットであるから、プラ
イオリティエンコーダ80はタスク(3)のタスク識別子t
askidをセレクタ82に出力する。
【0135】cstate記憶部85は、I/Oプロセッサが通
常状態であるか緊急状態であるかを示すフラグcstateを
記憶する。図33は、cstate記憶部85が記憶するフラ
グの状態遷移図である。本図において、通常状態から緊
急状態への遷移は、緊急状態遷移許可信号iexecmodeがH
ighであり、尚且つタスク切替信号chg_task_exがHigh値
になった場合に行われる。逆に緊急状態から通常状態へ
の遷移は、タスク切替信号chg_task_exがHigh値になっ
た場合に行われる。図34は緊急状態遷移許可信号iexe
cmode、タスク切替信号chg_task_ex、cstate間のタイミ
ングを示すタイミングチャートである。
【0136】iexecmode信号がHighに立ち上がったタイ
ミングa30において参照符号a31に示すようにタスク切替
信号chg_task_exがHigh値になったとする。そうするとc
stateは参照符号a32に示すようにHighとなって緊急状態
に遷移する。タスク切替信号chg_task_exが参照符号a33
に示すように再度Highになるとcstateは参照符号a34に
示すようにLow値となって通常状態に戻る。このような
緊急状態から通常状態への遷移、通常状態から緊急状態
への遷移を繰り返すことになる。
【0137】セレクタ82は、入力されてきた緊急状態
遷移許可信号iexecmodeがHighであり、尚且つcstateが
参照符号a32に示すようにHighである場合、(cstateの
逆の真理値cstate!が参照符号a35に示すようにLowであ
る場合)に、タスク管理レジスタ13に記憶されている
タスク識別子taskideを選択してタスクID保持部72に
出力する。その他の場合、プライオリティエンコーダ8
0の出力であるラウンド値maskneから変換されたタスク
識別子taskidneを選択してタスクID保持部72に出力す
る。図32は、セレクタ82におけるtaskideの真理値
表を示す図である。
【0138】このようにラウンド値maskneから変換され
たタスク識別子taskidneと、緊急タスクの識別子とをセ
レクタ82が緊急状態遷移許可信号iexecmodeのHigh期
間/Low期間に応じて切り換えて出力することは、緊急
状態遷移許可信号iexecmodeのHigh期間/Low期間に応じ
て、緊急タスク抜きの何れかのタスクと、緊急タスクと
を切り換えてタスクID保持部72に格納することを意味
する。
【0139】例えばタスク(1)が緊急タスクであるもの
とすると、緊急タスク抜きのタスク識別子として、タス
ク(0)、タスク(2)、タスク(3)、タスク(4)、タスク(5)
というようにセレクタ82はタスク識別子を出力する。
通常状態では、図35(a)に示すように、セレクタ8
2により緊急タスク抜きの何れかのタスクが出力される
ため、タスク(0)、タスク(2)、タスク(3)、タスク(4)、
タスク(5)というように、タスク(1)に割り当てられるス
レッドは0サイクルとなる。
【0140】緊急状態では、図35(b)に示すよう
に、セレクタ82により緊急タスク抜きの何れかのタス
クと、緊急タスクとが選択的に出力されるため、タスク
(0)、タスク(1)、タスク(2)、タスク(1)、タスク(3)、
タスク(1)、タスク(4)、タスク(1)、タスク(5)、タスク
(1)というように、タスク(1)は二回に一回の割合でスレ
ッドが割り当てられる。セレクタ82による緊急状態に
おけるタスク識別子の出力では、タスク(1)にタスク実
行が巡ってくるのは二回につき一回となり確率に換算す
ると1/2となる。
【0141】このような1/2の確率は、通常の実行確
率の3倍という極めて高確率であり、緊急タスクは非常
に高速に実行されることになる。以上のように本実施形
態によれば、水平ブランキング期間、垂直ブランキング
期間においてビデオアウトタスクのみを優先して実行す
ることができる。この期間において動画データを映像信
号に変換すれば、映像信号をディスプレィの表示期間ま
でに好適に処理することができる。
【0142】尚第4実施形態の構成では、緊急タスクを
優先して実行するため、緊急タスク以外のタスクの実行
頻度が落ちてしまうという弊害が発生するが、これを防
止する防止機構を設けても良い。その防止機構とは、
『最低限これだけの実行速度を維持しなければならな
い』という制約付きタスク(例外タスクという)の識別
子をタスク管理レジスタに記憶させ、この例外タスクに
ついては、四命令実行というタスク切り換えの条件を除
外する旨の信号をスレッドマネージャー61宛に出力さ
せる。
【0143】スレッドマネージャー61内の比較器54
は、この旨の信号を受け付けると、タスク切替信号の出
力を所定時間だけ猶予する。ここでの所定時間の時間長
とは緊急タスク優先による各タスクの遅れを取り戻せる
だけの時間長である。このように所定時間だけタスク切
替信号の出力を猶予することにより、例外タスクの処理
を4命令以上行わせ、緊急タスク挿入に伴う処理の遅延
を取り戻させることができる。
【0144】また本実施形態は、外部から入力されてく
る特定信号に同期して、特定タスクを高速化に実行する
ことについて述べているが、特定命令によって高速実行
するタスクを定めても良い。状態監視レジスタCR2の第
3ビットは、通常は『0』に設定され、外部に接続され
たディスプレィ装置におけるビデオ信号が帰線期間にな
ると『1』に設定されるので、状態監視レジスタCR2と、
即値とをオペランドに指定し、これらの一致、不一致を
判定させる旨のCMP命令をビデオアウトタスクに配置し
ておき、この命令についての演算の実行結果が真となる
場合のみ、ビデオアウトタスクを高速に実行してもよ
い。命令のオペランドにて緊急扱いを要するタスクを指
定できるようにしてもよい。
【0145】更に通常状態にて実行すべきタスクを緊急
タスク抜きのラウンド値taskneにて指定したが、通常状
態にて緊急タスクを実行してもよい。 (第5実施形態)第5実施形態は、タスク同士の連携に
より、タスクの巡回効率を向上させることを意図した実
施形態である。
【0146】ここでタスク同士の連携とは、特定時期が
到来しないとスレッドの割り当てが無駄に終わるタスク
は自ら進んで休眠状態に入り、休眠状態の解除を他のタ
スクに委ねる。そして解除を委ねられたタスクは、その
休眠状態を解除すべき時期が到来するのを待ち、もし到
来すれば特定タスクの休眠状態を解除することをいう。
【0147】タスクの休眠は、複数のタスクにおいて同
時多発する場合もあるし、全く発生しない場合もある。
休眠状態に陥ったタスクを個別に管理できるよう、第5
実施形態ではタスク管理レジスタ13に休眠(sleep状
態)に入ったタスクを管理するためのビットを割り当て
ている。図36は第5実施形態におけるタスク管理部1
5の構成であり、図37はタスク管理レジスタ13のビ
ット構成及び、これらの各ビットがどのようなフラグと
して機能するかを示す説明図である。本図においてタス
ク管理レジスタ13の第0ビットが『0』であれば、タ
スク(0)をsleep状態として処理することを示し、第0ビ
ットが『1』であればタスク(0)がそうでないことを示
す。
【0148】タスク管理レジスタ13の第1ビットが
『0』であれば、タスク(1)をsleep状態として処理する
ことを示し、第1ビットが『1』であればタスク(1)がそ
うでないことを示す。タスク管理レジスタ13の第2ビ
ットが『0』であれば、タスク(2)をsleep状態として処
理することを示し、第2ビットが『1』であればタスク
(2)がそうでないことを示す。これらのビットをタスク
が切り換えることにより、自身を休眠状態にしたり、他
のタスクの休眠状態を解除したりする。
【0149】タスク管理レジスタ13のビット操作は、
以下の{例3}{例4}にニーモニックを示す命令によ
りなされる。 {例3} sleep_task {例4} wake_task task(k) {例3}において『sleep_task命令』は、自身をsleep
状態にする命令である。{例4}において『wake_task
命令』は、第1オペランドにより6つのタスクのうち何
れか一つの識別子を指定できる。このような二種の命令
を各タスク内に配置することにより、各タスクは休眠状
態の移行と、これの解除とを交互に行う。尚、sleep_ta
sk命令においては第1オペランドにより他のタスクを指
定できるようにしてもよい。
【0150】図38は、第4実施形態におけるスケジュ
ーラ62の内部構成を示す図である。図38においてス
ケジューラ62がタスクID保持部71、タスクID保持部
72、タスクラウンド管理部73、プライオリティエン
コーダ74を備えている点は第1実施形態と差違は無
い。本図において新規なのはインバータ94及びOR回路
95からなるタスクスキップ管理回路93である。
【0151】タスクスキップ管理回路93は、タスク管
理レジスタ13においてsleep状態に割り当られている6
ビットを反転するインバータ94と、反転された6ビッ
トと、タスクラウンド管理部73から出力されたラウン
ド値tasknとの論理和をとるOR回路95からなる。ここ
でタスク(0)、タスク(1)、タスク(2)の実行が済んで『0
00111』というラウンド値tasknがタスクラウンド管理部
73から出力され、またタスク管理レジスタ13におい
てタスク(3)がsleep状態に設定されているものとする。
この場合タスク管理レジスタ13のsleepビットは『110
111』となり、インバータ94によりこれの反転値『001
000』が出力される。インバータ94による反転値『001
000』とラウンド値taskn『000111』との論理和は、『00
1111』となる。この論理和がプライオリティエンコーダ
74に出力されると、第4ビットにおいて『1』から
『0』への反転が行われていることが検出され、タスク
(4)の識別子がタスクID保持部71及びタスクID保持部
72に出力される。タスク(4)の識別子が出力される
と、タスク(0)、タスク(1)、タスク(2)、タスク(4)の順
に実行が行われることになる。
【0152】図39は、sleep命令を命令1-1,2-1,3-1と
してその内部に有した非同期イベントタスクの一例であ
り、図41は、図39の非同期イベントタスクがどのよ
うに実行されるかを示すタイミングチャートである。sl
eep命令が図41に示すように命令1-1として非同期イベ
ントタスクの第1番目の命令として格納されている場
合、この命令1-1がDECPC保持部23に格納され、命令解
読制御部11により解読されると、セレクタ25は、
の信号線を介して命令1-2の読出先アドレスをタスク別P
C格納部24に格納する。その後命令解読制御部11
は、命令1-2、命令1-3を無効化する(図16における
『NOP』)。
【0153】図40はsleep命令及びwake命令の命令フ
ォーマットの一例を示す。図40において、本命令は図
9に示したレジスタ指定型の算術演算命令の命令フォー
マットを有する。本フォーマットの11bitから13bitを
『010』に指定することにより、sleep命令のオペレーシ
ョンをI/Oプロセッサは実行する。また本フォーマット
の11bitから13bitを『011』に指定することにより、wak
e命令のオペレーションをI/Oプロセッサは実行する。
【0154】以上のように構成された第5実施形態のI/
Oプロセッサによって、どのようにスレッドが割り当て
られるかを図42(a)〜図42(d)を参照しながら
説明する。タスク(1)はパージングタスク、タスク(3)は
ホストI/Oタスクであり、タスク(1)、タスク(2)、タス
ク(3)の第1番目の命令がsleep命令であるものとする。
タスク(0)、タスク(4)、タスク(5)に4サイクルのスレ
ッドが割り当てられるが、図42(a)においてタスク
(1)、タスク(2)、タスク(3)には、第1番目の命令とし
てsleep命令が格納されているので2サイクルのスレッド
が割り当てられる。
【0155】sleep命令の実行後、次のフレームにおい
ては図42(b)に示すように、タスク(1)、タスク
(2)、タスク(3)に割り当てられるスレッドは0サイクル
である。タスク(0)は起動期間がより長いビットストリ
ーム転送制御タスクであり、タスク(0)には第1番目に
タスク(3)に対してのwake命令が格納されているものと
する。そうすると、図42(c)に示すように次のフレ
ームにおいてこのwake命令が解読されることによりタス
ク(3)に4サイクルのスレッドが割り当てられる。
【0156】タスク(0)には第14番目にタスク(1)に対
してのwake命令が格納されているものとする。そうする
と、図42(d)に示すように次のフレームにおいてこ
のwake命令が解読されることによりタスク(1)に4サイ
クルのスレッドが割り当てられる。以上のように本実施
形態によれば、パージングタスク、ホストI/Oタスク
等、起動すべき期間が限定されているタスクは自ら進ん
で休眠状態に入り、起動期間がより長い転送制御タスク
に休眠状態の解除を委ねることにより、タスク巡回のス
ループットを向上させることができる。 (第6実施形態)第6実施形態は、第3実施形態におけ
るwait状態制御と、第4実施形態における緊急タスク制
御と、第5実施形態における休眠タスク制御とを共存さ
せる技術に係る。
【0157】図43は、タスク管理レジスタ13の各ビ
ットにwait状態、emgcy状態、sleep状態の管理を統括さ
せたものである。スレッドマネージャー61及びスケジ
ューラ62は、このようにタスク管理レジスタ13に統
括されたwait状態、emgcy状態、sleep状態を参照して次
のタスクの決定やタスクの次スレッドに割り当る命令数
の増減を行う。
【0158】図44は、緊急タスク制御及びsleep状態
タスク制御を共存させ得るよう構成されたスケジューラ
62の構成図である。図44においてスケジューラ62
がタスクID保持部72、タスクラウンド管理部75、コ
ンバータ76、緊急タスクマスク部77、プライオリテ
ィエンコーダ80、セレクタ82、タスクID保持部83
から構成されている点は第4、第5実施形態と差違は無
い。本図において、タスクラウンド管理部75の出力
と、インバータ94により反転されたラウンド値taskne
のラウンド値との論理和をとるOR回路96が新たに追加
され、その結果をプライオリティエンコーダ80に出力
する。
【0159】プライオリティエンコーダ80は、OR回路
96が出力したラウンド値をタスク識別子に変換して、
タスクID保持部72及びタスクID保持部83に出力す
る。以上のように本実施形態によれば、第4実施形態に
おける緊急タスク制御と、第5実施形態におけるsleep
状態タスク制御とを共存させることにより、より柔軟性
に富んだタスクスケジューリングを実現することができ
る。 (各実施形態における全体制御についての説明)以降、
第1実施形態〜第5実施形態に示したI/Oプロセッサの
全体制御をフロ−チャ−トを参照しながら説明する。
【0160】図45は、第1実施形態におけるI/Oプロ
セッサの全体制御を図示したフロ−チャ−トである。本
図において、『変数k』とは命令メモリ100に記憶さ
れている6本の非同期イベントタスクを指示するための
変数でありタスクID保持部71及びタスクID保持部72
が保持するタスク識別子taskidに対応する。『変数i』
とはそれぞれのタスクに含まれる命令の実行の際、その
命令が当該スレッドにおいて何番目に実行されたかを指
示するための変数であり、カウンタ52によりカウント
されるカウント値に対応する。『変数adr』とは、タス
ク別PC格納部24に格納されている個々のタスクの読み
出し先アドレスを示す変数である。
【0161】図50は、図45のフロ−チャ−トによる
スレッド間の遷移を示す図である。図50において、縦
方向下向きが時間軸であり、4つの長方形を含む太枠で
囲まれた四角形がスレッドである。図45のフロ−チャ
−トにおける変数kにより個別に指示される。太枠の中
の一つの各四角形は一つの命令を実行するサイクルを表
し、これらの命令は変数iにより指示される。ステップ
S1は、上記タスクID保持部71がゼロのタスク識別子
taskidを出力する。これにより変数kがゼロクリアさ
れ、ステップS2に移行する。ステップS2は、カウン
タ52を初期化することにより変数iを1に初期化す
る。ステップS3においてタスクID保持部72がタスク
別PC格納部24に読み出しアドレス選択信号nxttaskid
(rd_adr)を出力することによりタスク(k)の読出先アド
レスをタスク別PC格納部24から読み出す。ステップS
4においてタスク(k)の読出先アドレスを用いて、命令
メモリ100から命令を取り出す。ステップS5におい
て命令解読制御部11は、取り出された命令を解読して
実行する。
【0162】ステップS6は、比較器54は変数iと上
限4との比較を行う。この場合はi=1であるのでステップ
S7に移行する。ステップS7は、カウンタ52に変数
iのインクリメントを行わせ、increment回路21に読出
先アドレスのインクリメントを行せるステップである
が、このインクリメントはタスクkにおけるある命令の
実行から別の命令の実行への切り換えを意味する。この
場合i=2であるから、スレッドにおける命令の実行から
第2命令の実行への切り換えが行われることになる。
【0163】変数iは、ステップS7においてインクリ
メントされてステップS4に移行する。変数iのインク
リメントよりi=2となり、読出先アドレスも一命令分進
行したので、ステップS4において命令読出回路10は
命令メモリ100内の読出先アドレス(adr+1)で指示さ
れる命令を読み出して、ステップS5において命令解読
制御部11はこれを解読し、実行する。
【0164】以上のステップS4〜ステップS7の一連
の手順を繰り返し行うことにより変数iは次々とインク
リメントされ、命令メモリ100におけるadr+0,adr+1,
adr+2,adr+3の領域に記憶されている命令を順次読み出
す。以上のステップS4、ステップS5の実行をステッ
プS6においてYesとなるまで繰り返す。ステップS6
がYesとなると、ステップS6からステップS8への移
行が行われる。以上の手順において、変数iが1,2,3であ
る内はステップS4、ステップS5、ステップS6、ス
テップS7の手順が繰り返されて、変数iが4になって初
めてステップS6からステップS8への移行が行われた
ことは、タスク(0)に対する命令実行を4回繰り返すこ
とを意味する(図50において最上段に位置する4つの
四角形の並びはタスク(0)の第1スレッドにおける4回
の命令実行の図解となる。)。ちなみにステップS8〜
ステップS10の手順はタスクからタスクへの切り換え
を行うものであるから、ステップS6における『変数i
=4』の判定は、命令の実行の4回の繰り返しをタスク
切り換えの条件に課していることを意味する。
【0165】ステップS6において変数iと上限値との
判定がなされると、ステップS8においてincrement回
路21により変数iがインクリメントされ、ステップS
9においてタスク(k)の読出先アドレス(adr+i-1)を読出
先アドレス(adr)としてタスク別PC格納部24に格納し
た後にステップS10に移行する。ステップS10で
は、タスクラウンド管理部73及びプライオリティエン
コーダ74に次に実行すべきタスクを決定させる。この
際タスクラウンド管理部73により『000000』のラウン
ド値tasknが出力され、プライオリティエンコーダ74
により、『001』のタスク識別子taskidが出力される。
『001』のタスク識別子taskid、即ちk=1となるので、タ
スク(0)からタスク(1)への切り換えが行われる。タスク
の切り換え後、ステップS2に移行すると、変数iの初
期化がなされ再度ステップS3〜ステップS7の繰り返
しがまた開始される。
【0166】前回同様ステップS4において命令メモリ
100における当該読出先アドレスからタスク(1)に含
まれる一命令を取り出し、ステップS5において取り出
された命令を解読して実行する。ステップS6は、変数
iと上限4との比較を再度行う。この場合はi=1であるの
でステップS7に移行する。変数iは、ステップS7に
おいてインクリメントされてステップS4に移行する。
変数iのインクリメントよりi=2となるので、ステップS
4において読出先アドレス(adr+1)で指示される命令メ
モリ100内の領域のアクセスを行い、命令メモリ10
0において、読出先アドレス(adr+1)で指示される領域
に記憶されている命令を読み出して、ステップS5にお
いてこれを解読し、実行する。
【0167】以上のステップS4〜ステップS7の一連
の手順を繰り返し行うことにより変数iを次々とインク
リメントして、命令メモリ100におけるadr+0,adr+1,
adr+2,adr+3の領域に記憶されている命令を順次読み出
す。以上のステップS4、ステップS5の実行をステッ
プS6においてYesとなるまで繰り返す。ステップS6
がYesとなると、ステップS6からステップS8への移
行が行われる。以上の手順において、変数iが1,2,3であ
る内はステップS4、ステップS5、ステップS6、ス
テップS7の手順が繰り返されて、変数iが4になって初
めてステップS6からステップS8への移行が行われる
(以上までの動作により、図50ではタスク(1)におけ
る四命令分(タスク(1)に対する4個の命令)進行した
ことになる。)。ステップS8において変数iをインク
リメントして、ステップS9においてタスク(k)の読出
先アドレス(adr+i-1)を読出先アドレス(adr)として格納
した後にステップS10に移行する。ステップS10に
おいて再度タスクラウンド管理部73及びプライオリテ
ィエンコーダ74に変数kの決定行わせて、変数kをk=2
にして、タスク(1)からタスク(2)への切り換えを行わせ
る。タスクの切り換え後、ステップS2に移行すると、
変数iの初期化がなされ再度ステップS3〜ステップS
7の繰り返しがまた開始される。
【0168】以上の繰り返しにより、図50において、
タスク(1)、タスク(2)、タスク(3)、タスク(4)、タスク
(5)の実行が四命令ずつ行われ、各タスクが順次消費さ
れてゆく。 (第2実施形態における全体制御の説明)第2実施形態
におけるI/Oプロセッサの全体制御は、図46のフロー
チャートに示す手順にて行われる。図46のフロ−チャ
−トは、ステップS1〜ステップS10からなる図45
のフロ−チャ−トをベースにして作成されている。ここ
で図46において新規なのはステップS12がステップ
S4〜ステップS5の間に挿入されている点である。
【0169】ステップS12は、ステップS4により命
令メモリ100から読み出された命令がWait_Until_Nex
t命令であるかを判定する。もしWait_Until_Next命令で
あれば、ステップS8へと移行して変数iをインクリメ
ントし、ステップS9においてタスク(k)の読出先アド
レス(adr+i-1)を読出先アドレス(adr)として格納する。
【0170】ここで留意すべきは、ステップS12では
変数iの値に拘らず、Wait_Until_Next命令が実行された
時点にステップS8に移行して読出先アドレスを格納す
る点である。このようにステップS8が変数iの値に拘
らずステップS12の解読後に実行されるため、タスク
からタスクへの切り換えは、四回の命令を待たずして行
われることになる。
【0171】図51は、第2実施形態におけるるスレッ
ド間の遷移を示す図である。図51におけるシーケンス
は、図50同様縦方向下向きが時間軸であり、4つの長
方形を含む太枠で囲まれた四角形がスレッドとなる。太
枠の中の一つの各四角形は一つの命令を実行するサイク
ルを表している。これらの四角形のうち、『』が記入さ
れているものはWait_Until_Next命令を示す。またタス
ク(0)が各スレッドにおいて命令メモリ100内のどの
命令を実行するかを、四角形の右横の『PC』『PC+1』
『PC+2』『PC+3』といったプログラムカウント値及びプ
ログラムカウントからの相対値により表現している(尚
本図は、タスク(0)の第1スレッドの第1命令の読み出
し時におけるプログラムカウント値を基準にしてい
る。)。
【0172】図47においてステップS1〜ステップS
4の手順が行われることにより、タスク(0)の第1スレ
ッドの第1命令が読み出される。読み出された命令の解
読結果の判定がステップS12において行われるが、タ
スク(0)の第1スレッド−第1命令はWait_Until_Next命
令ではないのでステップS5に移行する。ステップS5
への移行により、タスク(0)の第1スレッド−第1命令
の実行が行われて、1命令分進行したことになる。
【0173】再度ステップS1〜ステップS4の手順が
行われることにより、タスク(0)の第1スレッドの第2
命令が読み出される。読み出された命令の解読結果の判
定がステップS12において行われるが、タスク(0)の
第1スレッド−第2命令はWait_Until_Next命令であ
り、ステップS8への移行が行われる。ステップS8に
より変数iは1インクリメントされて『3』となり、ステ
ップS9において読出先アドレス(adr+2)がタスク(0)の
読み出し先アドレスとしてタスク別PC格納部110に格納
される。
【0174】格納後、ステップS10において変数kは
インクリメントされ、ステップS2に移行する。このス
テップS10における変数kのインクリメントにより、
タスク(0)からタスク(1)への切り換えが、第1スレッド
の第3命令,第4命令の実行を待たずに行われる。タス
ク(1)の第1スレッドの実行が四命令の実行により行わ
れ、同様にタスク(2)、タスク(3)、タスク(4)、タスク
(5)の実行が行われて、タスク(5)の第1スレッド−第4
命令まで進んだとする。ステップS10において変数k
が決定され、ステップS2において変数iが『1』に初期
化されて、ステップS3においてタスク(0)の読出先ア
ドレスがタスク別PC格納部110から読み出される。ここ
で留意されたいのは、タスク(0)の第1スレッドの第2
命令(Wait_Until_Next命令)の実行時に、PC+2(『P
C』は第1命令のプログラムカウント値を示す。)がタ
スク(0)の読出先アドレスとしてタスク別PC格納部110に
格納されている点である。このようにタスク別PC格納部
110に(PC+2)が格納されているため、タスク(1)の第2ス
レッドの命令実行はPC+2から開始されることになる。
【0175】(第3実施形態における全体制御の説明)
図47は第3実施形態におけるI/Oプロセッサのフロ−
チャ−トである。本図において、図45、図46の同一
処理内容のステップには、図45、図46と同一参照符
号を付してその説明を省略する。また図中の『変数Tota
l』とは、タスク管理レジスタ13の内容に基づき、セ
レクタ55が出力する数値を示し、命令実行数の上限を
指定するために用いられる。変数Totalはその初期状態
において、スレッドにおける命令総数である『4』に初
期化されるが、『2』にも更新され得る。
【0176】図52は、第3実施形態のフロ−チャ−ト
によるスレッド間の遷移を示す図である。以降の説明で
は図52において、タスク(0)の第1スレッドの第1命
令、第2命令が実行済みであり、これから第3命令が読
み出されようとしている。ステップS93は、上記変数
kをゼロクリアし、変数Totalを4に設定する。ステップ
S2は、上記変数iをゼロクリアする。ステップS3に
おいて、ゼロクリアされた変数kの読出先アドレス、即
ち、タスク(0)の読出先アドレスをタスク別PC格納部110
から読み出す。ステップS4において命令メモリ100
において読み出されたタスクの読出先アドレスを絶対ア
ドレスとし、変数iをオフセット値としたアドレスから
命令を取り出す。
【0177】ステップS81において取り出された命令
がCmp_And_Wait命令であるかを判定する。ステップS8
2では命令解読制御部81、演算実行部84はCmp_And_
Wait命令の第1オペランドに記述された状態監視レジス
タjの指定と、第2オペランドに記述された即値とを参
照してCmp_And_Wait命令が提示する事象の成立の真偽を
判定する。状態監視レジスタjの保持値と即値とが一致
せず、事象不成立が判定されると、ステップS83に移
行して、タスクkをwait状態に設定しステップS84に
移行する。ステップS84では、プログラムカウントを
進行させないよう、フリップフロップ27及びセレクタ
25に読出先アドレスをCmp_And_Wait命令のアドレスに
設定させてステップS87に移行する。
【0178】ステップS87は、図46のフロ−チャ−
トのステップS6同様、上限チェックを行うステップで
ある。ステップS6における『変数i=4』の判定は、
命令の実行の4回の繰り返しをタスク切り換えの条件に
課していた。これに対してステップS87における『変
数i=変数Total』の判定は、命令の実行の繰り返し回数
が変数Totalと等しいことをタスク切り換えの条件に課
している。ここでの変数Totalは未更新であるから、
『変数i=変数Total』は実質『変数i=4』の判定とな
る。Cmp_And_Wait命令はタスク(0)の第1スレッドにお
いて3命令目に含まれており、一方変数i=2なので、ステ
ップS87からステップS7への移行が行われる。ステ
ップS7において変数iがインクリメントされると、ス
テップS4における命令読み出しにより、Cmp_And_Wait
命令の次順の命令が命令解読制御部81に読み出され
る。読み出されるとステップS81がNoとなりステップ
S85では、命令解読制御部11は直前の命令において
状態不成立が判定され、読出先アドレスがCmp_And_Wait
命令のアドレスに設定されたか(PC戻りが発生したか)
を判定する。
【0179】ここでアドレス(adr+i)に格納されてい
た命令の直前命令とはCmp_And_Wait命令が相当し、この
Cmp_And_Wait命令の解読時にはPC戻りが発生している。
そのためステップS85はYesとなりステップS86に
移行する。ステップS86では命令解読制御部11は読
み出されたアドレス(adr+i)の命令を廃棄するよう、
汎用レジスタの格納値を無効化する旨の通知を行い、図
51のタスクシーケンスにおけるタスク(0)−第1スレ
ッドの第4命令に示すように、アドレス(adr+i)に格
納されていた命令を無効化してステップS87に移行す
る。変数iの値は4であるからステップS87において
『変数i=変数Total』の判定がなされるとYesとなり、
ステップS88に移行する。
【0180】ステップS87がYesと判定されたこと
は、一スレッド分の命令実行が済んだことを意味する
が、ステップS88では、その−スレッドにおいてPC戻
りが発生したかを判定する。このような判定を行うのは
PC戻りが発生した場合はタスク別PC格納部110にその戻
り先を格納しておく必要があるからである。タスク(0)
の場合は第4命令が廃棄され、第3命令においてPC戻り
が発生しているので、ステップS89においてフリップ
フロップ27及びセレクタ25に戻り先PC値を読出先ア
ドレス(adr)として格納させてステップS10に移行す
る。ステップS10においてタスクラウンド管理部73
及びプライオリティエンコーダ74に次のタスクを決定
させた後、変数kをインクリメントしステップS90に
移行する。
【0181】ステップS90〜ステップS92は、イン
クリメントされた変数kにより指示されるタスク、即ち
次に実行されるべきタスクがwait状態にあるか否かを判
定することにより、その次スレッドにおける命令数を切
り換えるという重要な意味合いを持つ。順を追って説明
するとステップS90では、IDコンバータ53はタスク
管理レジスタ13におけるタスク(k)に相当するビット
を参照して、タスク(k)がwait状態にあるかを判定す
る。もしそうであればセレクタ55はステップS91に
おいて変数Totalに4を設定し、異なれば変数Totalに2
を設定する。
【0182】タスク(1)は、wait状態ではないのでステ
ップS91において変数Totalが4に設定されてステッ
プS2に移行する。ここでタスク(1)にはCmp_And_Wait
命令が含まれていないものとすると、ステップS5にお
ける命令実行が四回分繰り返されて、次のタスクへの切
り換えが行われる(以上の手順は、第1実施形態に記載
されたものと同様であるから重複説明はあえて行わな
い。)。
【0183】Cmp_And_Wait命令を含んでいないタスク
(2)、タスク(3)、タスク(4)についても、四命令の実行
が順次行われて順々にタスクが切り換ってゆく。タスク
(5)についての四命令の実行が済んでステップS10に
移行し、ステップS10において変数kをゼロクリアし
て、ステップS90に移行したとする。ステップS90
では、タスク管理レジスタ13においてタスクkに割り
当られたビットkが『1』であるか『0』であるかを判定
する。この判定は、タスクkがwait状態であるか否かを
見極めを意味する。ここで変数k=0であり、タスク(0)
は先程wait状態に設定されているから、ステップS91
において変数Totalに『2』を設定する。ここで留意す
べきは、変数Totalは、スレッドに割り当る命令数の意
味合いを持っている点である。これをステップS91に
おいて『4』から『2』に更新することは、−スレッド
にマッピングする命令数を『4』から『2』に削減する
ことを意味する。そのため、タスク(0)の第2スレッド
では、変数iが1,2とインクリメントされている間だけ、
つまりステップS81〜ステップS85、ステップS5
の処理の繰り返しが2回だけとなる。この際、タスク
(0)の読出先アドレスとしてタスク別PC格納部110に格納
されているのはCmp_And_Wait命令の読出先アドレスであ
る。読出先アドレスのアドレスからCmp_And_Wait命令が
読み出されると第1スレッド同様、ステップS82にお
いて事象の成否の判定がなされる。この場合、事象は不
成立で終わったものとすると、第1スレッドと同様の処
理を行って読出先アドレスをCmp_And_Wait命令に戻して
第2スレッドを終える。
【0184】Cmp_And_Wait命令を含んでいないタスク
(1)、タスク(2)、タスク(3)、タスク(4)についても、四
命令の実行が順次行われて順々にタスクが切り換ってゆ
き、タスク(5)についての四命令の実行が済んでタスク
(0)の第3スレッドが始まろうとしている。ここでI/Oプ
ロセッサにおける事象に変化が生じ、タスク(0)のCmp_A
nd_Wait命令において指定されていた事象が成立してい
たとする。このためタスク(0)の第3スレッドでは、ス
テップS82において命令解読制御部81により事象成
立が判定され、ステップS80に移行して、タスク管理
レジスタ13におけるタスクkのwait状態が解除され
る。このようにwait状態が解除されると、ステップS8
0からステップS87への移行が行われ、ステップS8
7において変数iと変数Totalとの比較が行われ、ステッ
プS7において変数iのインクリメントがなされて、ス
テップS4において読出先アドレス(adr+1)から命令が
読み出される。ステップS81において読み出された命
令がCmp_And_Wait命令であるかの判定が行われるが、Cm
p_And_Wait命令ではないのでステップS85へと移行す
る。ステップS85では、直前の命令において状態不成
立が判定されPC戻りが発生したかが判定される。Cmp_An
d_Wait命令により指定された事象が成立したので、ステ
ップS85がNoとなり、Cmp_And_Wait命令の次順命令は
二度の事象成立待ちを経てやっとステップS5において
実行される。ステップS5における次順命令の実行後、
ステップS5からステップS87への移行が行われ、変
数iと変数Totalとの大小比較が行われる。但し第2スレ
ッドでは変数Totalが2に設定されているので、タスク
(0)の第3スレッドは2回実行されただけで終わってし
まう。ステップS87への移行後、ステップS88にお
いては、PC戻りの発生の真偽が判定されるがこの場合は
Noであり、ステップS89においてタスク(k)の読出先
アドレス(adr+i-1)を読出先アドレス(adr)として格納し
てステップS10に移行する。このようにしてタスク
(0)の第3スレッドが済むと、Cmp_And_Wait命令を含ん
でいないタスク(1)、タスク(2)、タスク(3)、タスク(4)
についても、四命令の実行が順次行われて順々にタスク
が切り換ってゆく。タスク(5)についての四命令の実行
が済んで変数kがゼロクリアされ、ステップS90に移
行したとする。
【0185】ステップS90では、タスク管理レジスタ
13におけるタスク(k)に相当するビットを参照して、
タスク(k)がwait状態にあるかを判定する。この場合タ
スク(0)のwait状態は解除されたので、ステップS92
において変数Totalに4を設定してステップS2に移行
する。このように変数Totalが4に戻ったので、タスク
(0)の以降のスレッドは通常通りの四命令ずつ行われる
ことになる。
【0186】(第4実施形態における全体制御の説明)
図48は、第4実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。図48のフロ−チャ
−トにおけるステップS1〜ステップS9の手順は図4
6のフロ−チャ−トと同様である。図48において新規
なのは、30番台の参照符号が付与されたステップS3
0、ステップS31、ステップS32である。ステップ
S30は、緊急状態遷移許可信号がLow値であるか否か
を判定し、High値ならばステップS31に移行してステ
ップS31において緊急タスクを次に実行すべきタスク
として決定する。
【0187】逆に緊急状態遷移許可信号がLow値なら
ば、ステップS32に移行してラウンド値taskneに基づ
いて、通常タスクの中から次に実行すべきタスクをプラ
イオリティエンコーダ80に決定させる。図53は、第
4実施形態におけるスレッド間の遷移を示す図である。
本図は、通常状態が始まりにおいて、ステップS31の
処理がスキップされて、図52のタスク(0)の第1スレ
ッド、タスク(2)の第1スレッド、タスク(3)の第1スレ
ッド、タスク(4)の第1スレッド、タスク(5)の第1スレ
ッドが順次行われる。
【0188】taskneの実行が一巡したところで、緊急状
態遷移許可信号のHigh期間が発生したとすると、ステッ
プS2〜ステップS9において一つのタスクが実行され
た後、ステップS30からステップS31への分岐が行
われる。分岐後、cstate記憶部85に示されたcstateの
High値、Low値に応じて緊急タスクの実行を行う。 (第5実施形態における全体制御)図49は第5実施形
態におけるマルチタスク手順のフロ−チャ−トである。
本図が第1実施形態におけるマルチタスク手順のフロ−
チャ−トと異なるのは、ステップS4とステップS6と
の間にステップS41〜ステップS44、S46、S4
7が挿入されている点である。
【0189】ステップS41は、命令メモリ100から
読み出された命令がsleep命令であるかを判定する。も
しsleep命令であれば、ステップS42へと移行する。
ステップS42では、タスク管理レジスタ13はタスク
(k)に対応するビットを0に反転する。その後ステップ
S43において変数iを1インクリメントして、ステップ
S44においてタスク(k)の読出先アドレス(adr+i-1)を
読出先アドレス(adr)として格納した後にステップS4
5に移行する。移行後、ステップS45では、インバー
タ94及びOR回路95はタスク管理レジスタ13におい
てsleep状態が指定されたビット抜きのラウンド値を生
成し、これをプライオリティエンコーダ74に出力し
て、次に実行すべきタスク(k)を決定させる。ここで留
意すべきは、先に述べたように『変数k』は命令メモリ
100に記憶されている6本のタスクのそれぞれを指示
するための変数であり、これの決定はタスクからタスク
への切り換えを意味する。
【0190】ここでステップS45がステップS10と
異なるのは、ステップS10は変数iが4になった時点
で実行されるのに対して、ステップS45は変数iの値
に拘らず、sleep命令が解読された時点で実行される点
である。このようにステップS45が変数iの値に拘ら
ずsleep命令の解読後に実行されるため、タスクからタ
スクへの切り換えは、四回の命令を待たずして行われる
ことになる。
【0191】ステップS46では、読出先アドレス(adr
+1)から読み出された命令がタスク管理レジスタ内の何
れかのビットに対するwake命令であるかを判定する。も
し異なれば、ステップS5において読み出された命令を
解読して実行するがもしそうであれば、ステップS47
において当該wake命令において指定されたjビットを操
作することにより、タスクjのsleep状態を解除してステ
ップS6に移行する。
【0192】図54は、第5実施形態におけるスレッド
間の遷移を示す図である。本図においてタスク(1)の第
1スレッドにおいて印を付しているのは、タスク(1)の
第1スレッドの第2命令がsleep_task命令であることを
示している。sleep_task命令の実行時には、第2実施形
態におけるCmp_And_Wait命令の実行時と同様、第2命令
の解読においてステップS41〜ステップS44が実行
されてタスク(1)がsleep状態に設定された後にタスク切
り換えがなされ、第3命令及び第4命令は事実上廃棄さ
れることになる。
【0193】第1実施形態に述べたようなタスク間の切
り換えが順次行われて、タスク(2)、タスク(3)、タスク
(4)、タスク(5)というようにタスクの巡回が行われてス
テップS45に移行したとする。ステップS45におい
てプライオリティエンコーダ74は、sleep状態にある
タスクのビットがマスクされたラウンド値tasknによ
り、次に実行すべきタスクを決定する。ここでタスク管
理レジスタ13においてタスク(1)に割り当てられてい
るビットは、タスク(1)−第1スレッドの第2命令にお
いてsleep状態に設定されている。そのためタスク(1)の
実行はスキップされ、タスク(2)の第2スレッドが続い
て実行される。
【0194】同様のタスク間の切り換えが順次行われ
て、タスク(2)、タスク(3)、タスク(4)、タスク(5)とい
うようにタスクの巡回が行われてステップS45に移行
したとする。この巡回において、タスク(5)の第2スレ
ッドの第3命令がタスク(1)のsleep状態解除を指定した
wake_task命令であり、命令メモリ100から読み出さ
れたものとする。wake_task命令が命令メモリ100か
ら読み出されると、ステップS46の判定においてYes
となり、ステップS47に移行する。ステップS47で
は、タスク管理レジスタ13のタスク(1)に割り当られ
たビットをオフにすることにより、タスク(1)のsleep状
態の解除を行う。解除後、残りの命令をも同様に実行し
て、第2スレッド分の処理を終える。
【0195】タスク(5)の終了後、タスクがタスク(0)へ
の切り換えられたものとする。またタスク(0)の第3ス
レッドが実行されて、ステップS45へと移行したとす
る。ステップS45では、タスク管理レジスタ13にお
いてタスク(1)に割り当られているビットがオフである
かの判定がなされる。タスク(5)の第2スレッドにおい
て、タスク(1)の割り当てビットがオンに設定されたの
は先に述べた通りであるから、ステップS45からステ
ップS2、S3への移行が行われて、タスク(1)の実行
が再開される。
【0196】
【発明の効果】以上の本発明によれば、n個のタスクを
実行対象タスクとしたプロセッサであって、n個のタス
ク識別子を出力し、そのタスクに割り当てられた数の命
令が実行されると次のタスク識別子を所定の順序で出力
する実行タスク指示手段と、出力されるタスク識別子で
特定されるタスク中の実行すべき命令を順次指定する命
令指定手段と、指定された命令を実行する実行手段とを
備えているので、本プロセッサは割込信号の発行を待つ
のでは無く、オーディオアウトタスク、ビデオアウトタ
スクを含めたn個のタスクを所定の命令数ずつ順次実行
する。
【0197】このように順次実行されるので、オーディ
オアウトタスク、ビデオアウトタスクの処理を完遂させ
るための動作クロック数の最適な下限値を、所定の周期
において実行せねばならない命令の最低消化数と、実行
周期と、タスク総数とから一義的に導出することがで
き、それらの最適な下限値から全タスクを動作させるた
めの動作サイクル数の最適な下限値を一義的に計算する
ことができる。
【0198】動作クロック数の最適な下限値が一義的に
計算されるため、動作クロック信号を一段と高いものに
定めずとも、オーディオアウトタスク、ビデオアウトタ
スクのリアルタイム性を保証でき、動作クロックが低速
なタイプが多い民生機器に搭載される場合でも、MPEGス
トリームを好適に復号することができる。ここで実行タ
スク指示手段は、実行された命令をカウントし、カウン
ト値が実行中タスクに割り当てられた命令数になるとタ
スク切替信号を発生するタスク切替信号発生器と、タス
ク切替信号が発される度に次順位のタスク識別子を生成
して出力するタスク識別子出力部とにより構成すること
ができる。
【0199】ここでタスク識別子出力部は各タスク識別
子を何番目に出力するかを示す出力順位を、n個の全て
のタスクについて記憶する順位記憶部と、タスク切替信
号が発される度に、順位記憶部において出力順位が次順
位となるタスク識別子を命令指定手段に出力する選択出
力部とにより構成することができる。ここでタスク識別
子出力部は、各タスク識別子を何番目に出力するかを示
す出力順位を、n個の全てのタスクについて記憶する順
位記憶部と、タスク切替信号が発される度に、順位記憶
部において出力順位が次順位となるタスク識別子を命令
指定手段に出力する選択出力部とにより構成することが
できる。
【0200】ここで何れかのタスクは緊急扱いを要する
旨の緊急宣言命令を含み、前記実行タスク指示手段は、
プロセッサ外部から入力される所定信号を監視すること
により、当該プロセッサ外部が緊急期間内であるか、緊
急期間外であるかを判定する監視手段と、所定信号が緊
急期間内である場合に、緊急扱いすべきタスクである緊
急タスクの識別子を保持する緊急タスクレジスタと、緊
急期間外においてタスク切替信号が発されれば、選択出
力部が未出力のタスクから選んで出力したタスク識別子
を実行手段にスルー出力し、緊急期間内においとてタス
ク切替信号が発されれば、タスク切替信号のm回の発信
につき(m≧2)一回の比率にて、緊急タスクレジスタが保
持しているタスク識別子を実行手段に出力する出力比率
制御部とを構成することができる。
【0201】本構成によれば映像出力に関する非同期イ
ベントタスクの識別子を緊急タスクレジスタに保持させ
ておき、出力比率制御部が緊急期間内にタスク切替信号
のm回の発信につき(一回の比率にて、緊急タスクレジス
タが保持しているタスク識別子を出力すれば、ディスプ
レィにおける水平ブランキング期間、垂直ブランキング
期間内にビットストリームを実行させておくことができ
る。これにより映像信号への伸長を表示期間に間に合わ
せることができる。このように再生系ハードウェアの処
理が周期的にオフになる期間に同期して、効率的に動画
データを処理すれば動画データタスクのリアルタイム性
を向上させることができる。
【0202】ここで何れかのタスクは自身の実行を休眠
状態に設定すべき旨の自発休眠命令を含み、前記実行手
段は更に、命令指定手段が次に実行すべき命令として指
定した命令を解読する解読手段を備え、前記実行タスク
指示手段は更に、解読手段による解読結果が自発休眠命
令であれば、当該命令を含むタスクを休眠扱いを要する
タスクとしてそのタスク識別子を保持する休眠タスクレ
ジスタを備え、前記選択出力部は、順位記憶部が記憶に
おける次順位のタスク識別子が、休眠タスクのタスク識
別子なら、その次順位のタスク識別子を出力するように
構成することができる。
【0203】MPEGストリームの復号処理においては、処
理が必要となる周期が大きく異なるタスクを並列実行せ
ねばならない。例えば、マクロブロックに含まれている
輝度ブロック、色差ブロックをバッファ間で転送させる
ための転送制御用のタスクはマクロブロックにおいて、
少なくとも6回以上の頻度にて起動せねばならない。こ
れに対して、MPEGストリームからエレメンタリィストリ
ームを抽出するタスクは少ない頻度で起動すればよい。
【0204】休眠タスクレジスタは、タスクに自発休眠
命令が含まれていれば、当該命令を含むタスクを休眠扱
いを要するタスクとしてそのタスク識別子を保持し、前
記選択出力部は、順位記憶部が記憶における次順位のタ
スク識別子が、休眠タスクのタスク識別子なら、その次
順位のタスク識別子を出力するので、実行頻度が少ない
タスク実行を省くことができる。これにより非同期イベ
ント処理の起動頻度の差違を考慮して、各非同期イベン
トタスクに自ら休眠状態に入る機会を与えて、タスクの
巡回効率を向上させることができる。
【0205】また、n個のタスクを実行対象タスクとし
たプロセッサであって、決められたサイクル数でタスク
を順次選択するタスク選択手段と、タスクと一対一の関
係でn個の命令指定情報を有し、タスク選択手段によっ
てタスクが選択されるとそれに対応した命令指定情報を
有効にすると共に、その情報を起点として、次に読み出
すべき命令を指定する情報を動的に生成する命令指定手
段と、命令指定手段にて指定された命令を読み出し実行
する実行手段と構成することができる。
【0206】ここで命令指定手段は、n個のタスクと一
対一に対応し、対応するタスクに関して次に読み出すべ
きアドレス値を命令指定情報として保持しているn個と
のアドレスレジスタと、タスク選択手段が選択したタス
クに対応するアドレスレジスタを選択し、そのアドレス
値を出力させるレジスタ選択部と、レジスタ選択部によ
りアドレスレジスタが選択されると、当該アドレスレジ
スタが保持しているアドレス値をカウント初期値として
保持するカウント値レジスタと、カウント値レジスタが
保持しているカウント値を、サイクル毎に、インクリメ
ントするインクリメンタと、インクリメントされたカウ
ント値を前記次に読み出すべき命令を指定する情報の更
新値として保持する読出先アドレス保持部とにより構成
することができる。
【0207】ここで前記命令指定手段は、インクリメン
タがインクリメントしたカウント値をスルー出力して読
出先アドレス保持部に保持させると共に、タスク選択手
段がタスクを選択すると、当該タスクに対応するアドレ
スレジスタのアドレス値を選択出力して読出先アドレス
保持部に保持させる第1セレクタと、次順のタスクに切
り換わる際に、カウント値レジスタが保持しているカウ
ント値を用いて、切り換え直前まで選択部で選択されて
いたアドレスレジスタが格納するアドレス値を書き換え
る第1書換部とにより構成することができる。
【0208】前記タスク切り換えを指定する旨の自発切
換命令が含まれており、前記実行手段は読出先アドレス
保持部が保持しているアドレスにて特定される命令を解
読する解読手段を備え、命令指定手段は更に解読手段に
よる解読結果が自発切換命令であれば、読出先アドレス
保持部が保持している命令指定情報を用いて、切り換え
直前まで選択部で選択されていたアドレスレジスタの格
納するアドレス値を書き換える第2書換部を備え、前記
第1セレクタは、解読手段による解読結果が自発切換命
令であれば、当該次のタスクに対応するアドレスレジス
タのアドレス値を選択出力して読出先アドレス保持部に
保持させるように構成することができる。
【0209】非同期イベント処理には、内部バッファと
SDRAMとの間の入出力を制御するものが多くあるが、SDR
AMの状態は外的要因によって変動することが多い。その
ためメモリベリファイや、あるメモリから値を読み出し
て、この値を用いた演算を行い、その結果を同一メモリ
に書き戻すという同一メモリをアクセス先としたメモリ
アクセス動作は、一個のスレッドにおいて行うのが望ま
しい。逆に、メモリから値を読み出す読出命令と、この
値を用いた演算の演算結果を同一メモリに書き戻す書込
命令とが別々のスレッドに配置されてしまうと、1つ目
のスレッドが巡ってきてから、2つ目のスレッドが巡っ
てくる迄の間にメモリ状態が変動してしまい、読出命令
は完遂し得たものの、書込命令が完遂できない場合が生
じる。
【0210】しかし上記の構成では、自発切換命令を読
出命令、書込命令の直前に配置しておけば、第2切り換
部がアドレスレジスタの内容を自発切換命令が含まれて
いたアドレスの次のアドレスに書き換えると共に、第1
セレクタが当該次のタスクに対応するアドレスレジスタ
のアドレス値を選択出力して読出先アドレス保持部に保
持させるので、自発切換命令の直後で本タスクの命令実
行を打ち切ることができる。即ち、同じタスクのタスク
識別子が出力された際、当該タスクは自発切換命令の直
後に配置された読出命令、書込命令を、同一のスレッド
内で実行することができる。
【0211】これにより、タスク切り換えによる中断を
望まない四命令を1タスクに割り当てる等、どの所定数
の命令を1スレッドに割り当てるかを自発切換命令の配
置により、独自に決めておくことができる。また一部タ
スクの消化を四命令の実行を待たずに打ち切ることによ
り他のタスクを早めに消化することもできる。
【図面の簡単な説明】
【図1】AVデコーダの内部構成を示す図である。
【図2】MPEGストリームの階層構造と、AVデコーダの構
成要素間の動作タイミングとを示すタイミングチャート
である。
【図3】第1実施形態におけるI/Oプロセッサの内部構
成を示す図である。
【図4】第1実施形態における命令読出回路10の内部
構成を示す図である。
【図5】命令読出回路10内のセレクタ25の出力論理
表を示す図である。
【図6】第1実施形態におけるタスク管理部15の内部
構成を示す図である。
【図7】(a)タスク識別子taskidのビット構成を示す
図である。 (b)ラウンド値のビット構成を示す図である。
【図8】第1実施形態において命令メモリ100に記憶
されている非同期イベントタスクがどのように構成され
ているかを示す図である。
【図9】レジスタをオペランドに指定した算術演算命令
の命令フォーマットを示す。
【図10】レジスタにて読出先アドレス、書込先アドレ
スを指定したメモリロード命令/メモリストア命令の命
令フォーマットを示す。
【図11】8bit、11bitの即値の指定が可能な比較命令
/演算命令/分岐命令の命令フォーマットを示す。
【図12】第1実施形態において、IPC,IF1,IF2,DECPC
がどのように更新されるかを示すタイミングチャートで
ある。
【図13】タスク(0)からタスク(5)までにどのようにス
レッドを割り当てるかを示す図である。
【図14】第2実施形態において命令メモリ100に記
憶されている非同期イベントタスクがどのような命令に
て構成されているかを示す図である。
【図15】wait_until_next命令の命令フォーマットの
一例を示す。
【図16】第2実施形態において、IPC,IF1,IF2,DECPC
がどのように更新されるかを示すタイミングチャートで
ある。
【図17】第2実施形態においてタスク(0)からタスク
(5)までにどのようにスレッドを割り当てるかを示す図
である。
【図18】第3実施形態におけるAVデコーダの内部構成
を示す図である。
【図19】第3実施形態における命令読出回路10の内
部構成を示す図である。
【図20】第3実施形態における命令読出回路10内の
セレクタ25の出力論理表を示す図である。
【図21】第3実施形態におけるスレッドマネージャー
61の内部構成を示す図である。
【図22】タスク管理レジスタ13においてwait状態管
理用に割り当られた6bitのビット構成を示す図である。
【図23】第3実施形態における状態監視レジスタのビ
ット構成を示す図である。
【図24】(a)第3実施形態においてどのタスクにCm
p_and_Wait命令が含まれているかを示す図である。 (b)事象j0,j3,j4,j5が不成立である状態において、
図24(a)に示す各タスクにどのようにスレッドが割
り当てられるかを示す図である。 (c)事象j0のみが成立したフレームにおいて、図24
(a)に示す各タスクにどのようにスレッドが割り当て
られるかを示す図である。 (d)事象j0が成立したフレーム以降において、図24
(a)に示す各タスクにどのようにスレッドが割り当て
られるかを示す図である。
【図25】Cmp_and_Wait命令の命令フォーマットの一例
を示す。
【図26】Cmp_and_Wait命令解読時においてIPC,IF1,IF
2,DECPCがどのように更新され、タスク管理レジスタ1
3のビット及びカウンタの上限値がどう設定されるかを
示すタイミングチャートである。
【図27】Cmp_and_Wait命令が待っていた事象の未成立
時のフレームにおいて、IPC,IF1,IF2,DECPCがどのよう
に更新され、タスク管理レジスタ13のビット及びカウ
ンタの上限値がどう設定されるかを示すタイミングチャ
ートである。
【図28】Cmp_and_Wait命令が待っていた事象の成立時
のフレームにおいて、IPC,IF1,IF2,DECPCがどのように
更新され、タスク管理レジスタ13のビット及びカウン
タの上限値がどう設定されるかを示すタイミングチャー
トである。
【図29】事象の成立時以降のフレームにおいて、IPC,
IF1,IF2,DECPCがどのように更新され、タスク管理レジ
スタ13のビット及びカウンタの上限値がどう設定され
るかを示すタイミングチャートである。
【図30】第3実施形態におけるタスク管理部15の内
部構成を示す図である。
【図31】第3実施形態におけるスケジューラ62の内
部構成を示す図である。
【図32】セレクタ82が緊急タスクの識別子を出力す
る条件を示す図である。
【図33】cstate記憶部85が記憶しているモードの状
態遷移図である。
【図34】緊急状態遷移許可信号、タスク切替信号chg_
task_ex、cstateの遷移に応じて、どのタスク識別子が
出力されるかのタイミングを示すタイミングチャートで
ある。
【図35】(a)通常状態において各タスクにどのよう
にスレッドを割り当てるかを示す図である。 (b)緊急状態において各タスクにどのようにスレッド
を割り当てるかを示す図である。
【図36】第4実施形態におけるタスク管理部15の内
部構成を示す図である。
【図37】タスク管理レジスタ13においてsleep状態
に割り当られたビットの割り当てを示す図である。
【図38】第4実施形態におけるスケジューラ62の内
部構成を示す図である。
【図39】第4実施形態において、sleep命令及びwake
命令が各タスクにどのように配置されているかを示す図
である。
【図40】sleep命令及びwake命令の命令フォーマット
の一例を示す。
【図41】第4実施形態においてIPC,IF1,IF2,DECPCが
どのように更新されるかを示すタイミングチャートであ
る。
【図42】(a)〜(d)第4実施形態において、各タ
スクにどのようにスレッドを割り当てるかを示す図であ
る。
【図43】第5実施形態におけるタスク管理部15の内
部構成を示す図である。
【図44】第5実施形態におけるスケジューラ62の内
部構成を示す図である。
【図45】第1実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。
【図46】第2実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。
【図47】第3実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。
【図48】第4実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。
【図49】第5実施形態におけるI/Oプロセッサの全体
制御を示すフロ−チャ−トである。
【図50】第1実施形態におけるスレッドの割り当てが
どのように進行するかを示す図である。
【図51】第2実施形態におけるスレッドの割り当てが
どのように進行するかを示す図である。
【図52】第3実施形態におけるスレッドの割り当てが
どのように進行するかを示す図である。
【図53】第4実施形態におけるスレッドの割り当てが
どのように進行するかを示す図である。
【図54】第5実施形態におけるスレッドの割り当てが
どのように進行するかを示す図である。
【図55】第1実施形態におけるスレッド割り当てにて
ビデオアウトタスク、オーディオアウトタスクを実行す
る場合に動画ストリーム、オーディオストリームがどの
ように処理されるかを示すタイミングチャートである。
【図56】タスク別にサイクル数を可変にする場合のス
レッドマネージャーの構成図である。
【図57】割込信号にてオーディオアウトタスク、ビデ
オアウトタスクを実行する場合に動画ストリーム、オー
ディオストリームの処理を何時までに完遂せねばならな
いかを示すタイミングチャートである。
【符号の説明】
10 命令読出回路 11 命令解読制御部 12 レジスタセット 13 タスク管理レジスタ 14 演算実行部 15 タスク管理部 20 IF1+1保持部 21 increment回路 22 IF2保持部 23 DECPC保持部 24 タスク別PC格納部 25 4入力-1出力セレクタ 26 2入力-1出力セレクタ 52 カウンタ 53 コンバータ 54 比較器 55 セレクタ 61 スロットマネージャー 62 スケジューラ 71 タスクID保持部 72 タスクID保持部 73 タスクラウンド管理部 74 プライオリティエンコーダ 75 タスクラウンド管理部 76 コンバータ 77 緊急タスクマスク部 80 プライオリティエンコーダ 81 命令解読制御部 82 セレクタ 83 タスクID保持部 84 演算実行部 85 CSTATE記憶部 93 タスクスキップ管理回路 94 インバータ 100 命令メモリ 101 ストリーム入力部 102 バッファメモリ 104 Setup部 105 VLD部 106 IQ/IDCT部 107 動き補償部 108 ビデオ出力部 109 オーディオ出力部 110 BMバッファメモリコントローラ 111 RAMコントローラ 112 FIFOコントローラ 113 プロセッサ 115 ホストI/O部 121 バッファメモリバス 122 SD-RAMバス 123 ビットストリームバス 124 コントロールバス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 平井 誠 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 清原 督三 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 n個のタスクを実行対象タスクとしたプ
    ロセッサであって、 n個のタスク識別子を出力し、そのタスクに割り当てら
    れた数の命令が実行されると次のタスク識別子を所定の
    順序で出力する実行タスク指示手段と、 出力されるタスク識別子で特定されるタスク中の実行す
    べき命令を順次指定する命令指定手段と、 指定された命令を実行する実行手段とを備えることを特
    徴とするプロセッサ。
  2. 【請求項2】 前記実行タスク指示手段は発行された命
    令をカウントし、カウント値が実行中タスクに割り当て
    られた命令数になるとタスク切替信号を発生するタスク
    切替信号発生器と、 タスク切替信号が発される度に次順位のタスク識別子を
    生成して出力するタスク識別子出力部とを備えることを
    特徴とする請求項1記載のプロセッサ。
  3. 【請求項3】 前記命令指定手段は、 n個のタスクと一対一に対応し、対応するタスクに関し
    て次に読み出すべき先頭アドレスを保持しているn個と
    のアドレスレジスタと、 実行タスク指示手段からタスク識別子が出力されると、
    その識別子と対応するアドレスレジスタを選択するレジ
    スタ選択部と、 レジスタ選択部で選択されたアドレスレジスタが格納す
    る先頭アドレスを、最初の読出先アドレスとし、タスク
    識別子が切り替えられるまでの間前記読出先アドレスを
    順次更新する読出先アドレス生成部と、 次順のタスクに切り換わる際に、読出アドレス生成部で
    更新された読出アドレスで、切り換え直前までレジスタ
    選択部で選択されていたアドレスレジスタの格納する先
    頭アドレスを書き換えるアドレスレジスタ更新部とを備
    え、 前記実行手段は、前記読出先アドレス生成部が生成した
    アドレスで特定される命令を実行することを特徴とする
    請求項2記載のプロセッサ。
  4. 【請求項4】 前記タスク切替信号発生器は、 クロックパルスをカウントするカウンタと、 カウンタのカウント値を現在実行中のタスクに割り当て
    られた命令数と比較し、一致するとタスク切替信号を出
    力すると共に前記カウンタのリセットを行う比較器とを
    備えることを特徴とする請求項2記載のプロセッサ。
  5. 【請求項5】 前記タスク切替信号発生器は更に、 2種以上の命令数を保持する命令数保持部と、 実行タスク指示手段が指示するタスク識別子によって命
    令数保持部が保持する一の命令数を選択する命令数選択
    部とを備え、 選択された命令数が比較器に比較入力として加えられる
    ことを特徴とする請求項4記載のプロセッサ。
  6. 【請求項6】 前記命令数保持部が保持する命令数に
    は、 第1定数と、第1定数より少ない第2定数があり、 前記命令指定手段は更にn個のタスクにおいて第2定数
    を割り当てるべきタスクであるペナルティタスクの識別
    子を保持するペナルティタスク保持部を備え、 前記命令数選択部は実行タスク指示手段がタスク識別子
    を出力すると、当該タスク識別子がペナルティタスクの
    識別子であるかを判定する判定部と、 タスク識別子がペナルティタスクを示すと判定されれ
    ば、命令数保持部が保持する第2定数を比較器に出力す
    る定数出力部とを備えることを特徴とする請求項5記載
    のプロセッサ。
  7. 【請求項7】 前記タスクには、事象成立の真偽条件の
    指定を含む事象監視命令が含まれており、 前記実行手段は読出先アドレス生成部が生成したアドレ
    スにて特定される命令を解読する解読手段と、 解読手段による解読結果が事象監視命令であれば、事象
    監視命令において指定された事象成立の真偽を確認する
    旨の演算を実行する演算手段とを備え、 前記ペナルティタスク保持部は、 演算手段による演算結果が事象不成立を示すものなら
    ば、事象監視命令を含んでいたタスクのタスク識別子を
    ペナルティタスクの識別子として保持することを特徴と
    する請求項6記載のプロセッサ。
  8. 【請求項8】 前記プロセッサは、その内部にバッファ
    と、メモリとを有する情報処理システムに備えられ、 前記プロセッサは、内部バッファ及びメモリにおける状
    態を示す状態レジスタを複数有し、 前記事象監視命令は、複数の状態レジスタの何れかにつ
    いての指定と、即値指定とを有し、 前記演算手段は、 解読手段による解読結果が事象監視命令であれば、事象
    監視命令において指定された状態監視レジスタの保持値
    と、当該命令において指定された即値とを用いた演算を
    行うことを特徴とする請求項7記載のプロセッサ。
  9. 【請求項9】 前記タスク識別子出力部は各タスク識別
    子を何番目に出力するかを示す出力順位を、n個の全て
    のタスクについて記憶する順位記憶部と、 タスク切替信号が発される度に、順位記憶部において出
    力順位が次順位となるタスク識別子を命令指定手段に出
    力する選択出力部とを備えることを特徴とする請求項2
    記載のプロセッサ。
  10. 【請求項10】 前記プロセッサにおいて、 何れかのタスクは緊急扱いを要する旨の緊急宣言命令を
    含み、 前記実行手段は命令指定手段が指定した命令を解読する
    解読手段を備え、 前記実行タスク指示手段は解読手段による解読結果が緊
    急宣言命令であれば、当該命令によって指定されるタス
    クを緊急扱いを要するタスクとしてその識別子を保持す
    る緊急タスクレジスタと、 緊急タスクレジスタが緊急タスクの識別子を保持してい
    ない状態においてタスク切替信号が発されれば、選択出
    力部が出力したタスク識別子を実行手段にスルー出力
    し、 緊急タスクレジスタが緊急タスクの識別子を保持した状
    態においてタスク切替信号が発されれば、タスク切替信
    号のm回の発信につき(m≧2)一回の比率にて、緊急タス
    クレジスタが保持しているタスク識別子を実行手段に出
    力する出力比率制御部とを備えることを特徴とする請求
    項9記載のプロセッサ。
  11. 【請求項11】 前記プロセッサにおいて、 何れかのタスクは緊急扱いを要する旨の緊急宣言命令を
    含み、 前記実行タスク指示手段は更にプロセッサ外部から入力
    される所定信号を監視することにより、当該プロセッサ
    外部が緊急期間内であるか、緊急期間外であるかを判定
    する監視手段と、 所定信号が緊急期間内である場合に、緊急扱いすべきタ
    スクである緊急タスクの識別子を保持する緊急タスクレ
    ジスタと、 緊急期間外においてタスク切替信号が発されれば、選択
    出力部が未出力のタスクから選んで出力したタスク識別
    子を実行手段にスルー出力し、 緊急期間内においてタスク切替信号が発されれば、タス
    ク切替信号のm回の発信につき(m≧2)一回の比率にて、
    緊急タスクレジスタが保持しているタスク識別子を実行
    手段に出力する出力比率制御部とを備えることを特徴と
    する請求項9記載のプロセッサ。
  12. 【請求項12】 前記順位記憶部はnビット列を保持す
    るnビットレジスタを備え、 nビット列の各ビットは、それぞれがタスク識別子に対
    応づけられており、 各タスク識別子の出力順位は、それぞれのタスク識別子
    に対応づけられたタスクビットが当該nビット列におい
    て最上位或は最下位から何ビット目に位置するかにより
    表現されることを特徴とする請求項11記載のプロセッ
    サ。
  13. 【請求項13】 前記nビット列において、 タスク識別子が出力済みのタスクに割り当てられたビッ
    トは『1』に設定され、未出力タスクに割り当てられた
    ビットは『0』に設定されており、 前記タスク識別子出力部は選択出力部により次順位のタ
    スク識別子が出力されると、nビットレジスタが保持す
    るnビット列のうち、出力されたビットを『1』に設定す
    るビットセット部と、 nビット列の全ビットがビットセット部により『1』に設
    定されると、nビット列をオールゼロにリセットするビ
    ットリセット部とを備え、 前記選択出力部はnビットレジスタが保持するnビット列
    において『1』から『0』への反転が現れているビット位
    置に基づいて、次順位に出力すべきタスク識別子を生成
    すると共に、そのタスク識別子を実行タスク指示手段に
    出力するプライオリティエンコーダを備えることを特徴
    とする請求項12記載のプロセッサ。
  14. 【請求項14】 前記タスク識別子出力部は緊急タスク
    レジスタが緊急宣言命令を含むタスクのタスク識別子を
    保持すれば、nビットレジスタが保持しているnビット列
    において当該緊急タスクに割り当てられたビットを
    『1』に設定するマスク部を備えることを特徴とする請
    求項13記載のプロセッサ。
  15. 【請求項15】 前記プロセッサは、動画ストリームを
    復号するAVデコードシステムに備えられ、 緊急タスクは、 AVデコードシステムにおける動画ストリームの復号が終
    ると、復号結果を外部に接続されたディスプレィに出力
    するタスクであり、 監視手段が監視する所定信号とは、映像信号を表示する
    ためのディスプレィにおける水平帰線期間信号、垂直帰
    線期間信号であることを特徴とする請求項14記載のプ
    ロセッサ。
  16. 【請求項16】 前記タスク切替信号発生器はクロック
    パルスをカウントするカウンタと、 カウンタのカウント値を現在実行中のタスクに割り当て
    られた命令数と比較し、一致するとタスク切替信号を出
    力すると共に前記カウンタのリセットを行う比較器とを
    備えることを特徴とする請求項11記載のプロセッサ。
  17. 【請求項17】 前記タスク切替信号発生器は、 2種以上の命令数を保持する命令数保持部と、 実行タスク指示手段が指示するタスク識別子によって命
    令数保持部が保持する一の命令数を選択する命令数選択
    部とを備え、 選択された命令数が比較器に比較入力として加えられる
    ことを特徴とする請求項16記載のプロセッサ。
  18. 【請求項18】 前記命令数保持部が保持する命令数に
    は、 第1定数と、第1定数より多い第2定数があり、 前記タスク識別子出力部は次にタスク識別子が出力され
    た際、第2定数を割り当てるべき救済対象タスク識別子
    を保持する救済対象タスク保持部を備え、 前記命令数選択部は監視手段が、プロセッサ外部から入
    力される所定信号が緊急期間内であると判定した場合、
    実行タスク指示手段がタスク識別子を出力すると、当該
    タスク識別子が救済対象タスクを示すものかを判定する
    判定部と、 タスク識別子が救済対象タスクを示すと判定されれば、
    命令数保持部が保持する第2定数を比較器に出力する定
    数出力部とを備えることを特徴とする請求項17記載の
    プロセッサ。
  19. 【請求項19】 前記プロセッサにおいて何れかのタス
    クは何れかのタスクの実行を休眠状態に設定すべき旨の
    自発休眠命令を含み、 前記実行手段は更に命令指定手段が次に実行すべき命令
    として指定した命令を解読する解読手段を備え、 前記実行タスク指示手段は更に解読手段による解読結果
    が自発休眠命令であれば、当該命令により指示されるタ
    スクを休眠扱いを要するタスクとしてそのタスク識別子
    を保持する休眠タスクレジスタを備え、 前記選択出力部は、 順位記憶部が記憶における次順位のタスク識別子が、休
    眠タスクのタスク識別子なら、その次順位のタスク識別
    子を出力することを特徴とする請求項9記載のプロセッ
    サ。
  20. 【請求項20】 何れかのタスクは、他のタスクの休眠
    状態を解除すべき旨の強制解除命令を含み、 前記実行タスク指示手段は解読手段による解読結果が強
    制解除命令であれば、休眠タスクレジスタが保持してい
    るタスク識別子を削除する削除部を備えることを特徴と
    する請求項19記載のプロセッサ。
  21. 【請求項21】 前記順位記憶部は、 nビット列を保持するnビットレジスタと、 nビット列の各ビットは、それぞれがタスク識別子に対
    応づけられており、 各タスク識別子の出力順位は、それぞれのタスク識別子
    に対応づけられたタスクビットが当該nビット列におい
    て最上位或は最下位から何ビット目に位置するかにより
    表現されることを特徴とする請求項20記載のプロセッ
    サ。
  22. 【請求項22】 前記nビット列において、 タスク識別子が出力済みのタスクに割り当てられたビッ
    トは『1』に設定され、未出力タスクに割り当てられた
    ビットは『0』に設定されており、 前記実行タスク出力部は選択出力部により次順位のタス
    ク識別子が出力されると、nビットレジスタが保持するn
    ビット列のうち、出力されたビットを『1』に設定する
    ビットセット部と、 nビット列の全ビットがビットセット部により『1』に設
    定されると、nビット列をオールゼロにリセットするビ
    ットリセット部とを備え、 前記選択出力部はnビットレジスタが保持するnビット列
    において『1』から『0』への反転が現れているビット位
    置に基づいて、次順位に出力すべきタスク識別子を生成
    すると共に、そのタスク識別子を実行タスク指示手段に
    出力するプライオリティエンコーダを備えることを特徴
    とする請求項21記載のプロセッサ。
  23. 【請求項23】 前記実行タスク指示手段は緊急タスク
    レジスタが自発休眠命令を含むタスクのタスク識別子を
    保持すれば、nビット列において当該休眠状態タスクに
    割り当てられたビットを『1』にマスクするマスク部
    と、 解読手段による解読結果が強制解除命令であれば、nビ
    ット列において当該命令にて指定されるタスクのタスク
    識別子に割り当てられたビットを『0』にしてマスクを
    解除するアンマスク部とを備えることを特徴とする請求
    項22記載のプロセッサ。
  24. 【請求項24】 各タスクに割り当てられたサイクル数
    を保持するサイクル数保持手段と、 クロックをカウントするカウンタと、 カウンタのカウント値がサイクル数保持手段の最大サイ
    クル数に一致すると、タスク切り替え信号とカウンタリ
    セット信号を発する比較手段と、 予め決められたタスク選択の順序を有し、タスク切替信
    号が入力されると、タスクの選択を切り替える選択手段
    と、 選択手段が一のタスクを選択している間、そのタスクの
    命令を順次指定する命令指定手段と、 選択手段が選択したタスクの、命令指定手段が指定する
    命令を実行する実行手段とを備え、 前記サイクル数は一のタスクが実行され始めてから次の
    タスクに切り替えられるまでの最大サイクル数であり、
    全タスクの最大サイクル数の合計時間は非同期事象の発
    生周期よりも短く設定されていることを特徴とするプロ
    セッサ。
  25. 【請求項25】 実行対象タスクの一つは前記非同期事
    象に関する処理が割り当ててあり、そのタスクに割り当
    てられたサイクル数と非同期事象発生周期内にそのタス
    クが繰り返し選択される回数との積で与えられるサイク
    ル数が非同期事象に対して所要な処理量を上回っている
    ことを特徴とする請求項24記載のプロセッサ。
  26. 【請求項26】 前記プロセッサは、動画ストリーム及
    びオーディオストリームを復号するデコード部と、デコ
    ード部が復号処理に用いるローカルバッファと、外部メ
    モリとを有するAVデコードシステムに備えられ、 前記タスク数nは4であり、 n個のタスクにおける第1タスクは、AVデコードシステ
    ム外部から入力されてくるビットストリームから動画ス
    トリーム及びオーディオストリームを抽出して、抽出さ
    れた動画ストリーム及びオーディオストリームを外部メ
    モリに書き込むタスクであり、 第2タスクは、AVデコードシステムにおけるデコード部
    の進捗に応じて、次に処理すべき動画ストリーム及びオ
    ーディオストリームを外部メモリからデコード部に供給
    するタスクであって、デコード結果を外部メモリに格納
    するタスクであり、 第3タスクは、 デコード部のデコード結果のうち動画データを外部メモ
    リから読み出して、外部に接続されたディスプレィの同
    期信号に同期させつつ出力するタスクであり、第4タス
    クは、 デコード部のデコード結果のうち音声データを外部メモ
    リから読み出して、外部に接続されたスピーカー装置に
    所定の周期で出力するタスクであり、 前記サイクル数保持手段は、 第1〜第4タスクに割り当てられたサイクル数として4
    サイクルを保持することを特徴とする請求項25記載の
    プロセッサ。
  27. 【請求項27】 n個のタスクを実行対象タスクとした
    プロセッサであって決められたサイクル数でタスクを順
    次選択するタスク選択手段と、 タスクと一対一の関係でn個の命令指定情報を有し、タ
    スク選択手段によってタスクが選択されるとそれに対応
    した命令指定情報を有効にすると共に、その情報を起点
    として、次に読み出すべき命令を指定する情報を動的に
    生成する命令指定手段と、 命令指定手段にて指定された命令を読み出し実行する実
    行手段とを備えることを特徴とするプロセッサ。
  28. 【請求項28】 前記命令指定手段は、 n個のタスクと一対一に対応し、対応するタスクに関し
    て次に読み出すべきアドレス値を命令指定情報として保
    持しているn個とのアドレスレジスタと、 タスク選択手段が選択したタスクに対応するアドレスレ
    ジスタを選択し、そのアドレス値を出力させるレジスタ
    選択部と、 レジスタ選択部によりアドレスレジスタが選択される
    と、当該アドレスレジスタが保持しているアドレス値を
    カウント初期値として保持するカウント値レジスタと、 カウント値レジスタが保持しているカウント値を、サイ
    クル毎に、インクリメントするインクリメンタと、 インクリメントされたカウント値を前記次に読み出すべ
    き命令を指定する情報の更新値として保持する読出先ア
    ドレス保持部とを備えることを特徴とする請求項27記
    載のプロセッサ。
  29. 【請求項29】 前記命令指定手段はインクリメンタが
    インクリメントしたカウント値をスルー出力して読出先
    アドレス保持部に保持させると共に、タスク選択手段が
    タスクを選択すると、当該タスクに対応するアドレスレ
    ジスタのアドレス値を選択出力して読出先アドレス保持
    部に保持させる第1セレクタと、 次順のタスクに切り換わる際に、カウント値レジスタが
    保持しているカウント値を用いて、切り換え直前までレ
    ジスタ選択部で選択されていたアドレスレジスタが格納
    するアドレス値を書き換える第1書換部とを備えること
    を特徴とする請求項28記載のプロセッサ。
  30. 【請求項30】 前記タスク切り換えを指定する旨の自
    発切換命令が含まれており、 前記実行手段は読出先アドレス保持部が保持しているア
    ドレスにて特定される命令を解読する解読手段を備え、 命令指定手段は、 解読手段による解読結果が自発切換命令であれば、読出
    先アドレス保持部が保持している命令指定情報を用い
    て、切り換え直前まで選択部で選択されていたアドレス
    レジスタの格納するアドレス値を書き換える第2書換部
    を備え、 前記第1セレクタは、 解読手段による解読結果が自発切換命令であれば、当該
    次のタスクに対応するアドレスレジスタのアドレス値を
    選択出力して読出先アドレス保持部に保持させることを
    特徴とする請求項29記載のプロセッサ。
  31. 【請求項31】 前記タスクには絶対アドレスにて分岐
    先を指定した分岐命令が含まれており、 前記命令指定手段は解読手段による解読結果が分岐命令
    であれば、当該分岐命令に含まれている絶対アドレスを
    用いて、切り換え直前まで選択部で選択されていたアド
    レスレジスタの格納するアドレス値を書き換える第3書
    換部を備えることを特徴とする請求項30記載のプロセ
    ッサ。
  32. 【請求項32】 前記タスクには間接アドレス指定にて
    分岐先を指定した分岐命令が含まれており、 前記命令指定手段は解読手段による解読結果が間接アド
    レス指定型の分岐命令であり、実行手段における命令実
    行によって分岐先アドレスが算出されれば、当該分岐先
    アドレスを用いて切り換え直前まで選択部で選択されて
    いたアドレスレジスタの格納するアドレス値を書き換え
    る第4書換部を備えることを特徴とする請求項31記載
    のプロセッサ。
  33. 【請求項33】 前記実行手段はn×m個の汎用レジスタ
    から構成され、各タスクにm個の汎用レジスタを割り当
    てている汎用レジスタセットと、 タスク選択手段によりタスクが選択されると、それに対
    応するm個の汎用レジスタを用いて選択されたタスクに
    含まれている命令についての演算を実行する演算実行部
    とを備えることを特徴とする請求項32記載のプロセッ
    サ。
JP5207398A 1997-03-04 1998-03-04 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ Expired - Lifetime JP3356677B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5207398A JP3356677B2 (ja) 1997-03-04 1998-03-04 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4937097 1997-03-04
JP9-49370 1997-03-04
JP5207398A JP3356677B2 (ja) 1997-03-04 1998-03-04 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001182649A Division JP2002091782A (ja) 1997-03-04 2001-06-15 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ

Publications (2)

Publication Number Publication Date
JPH10307731A true JPH10307731A (ja) 1998-11-17
JP3356677B2 JP3356677B2 (ja) 2002-12-16

Family

ID=26389754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5207398A Expired - Lifetime JP3356677B2 (ja) 1997-03-04 1998-03-04 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ

Country Status (1)

Country Link
JP (1) JP3356677B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001324998A (ja) * 2000-03-08 2001-11-22 Matsushita Electric Ind Co Ltd 映像音声処理装置
US7386707B2 (en) 2002-01-09 2008-06-10 Matsushita Electric Industrial Co., Ltd. Processor and program execution method capable of efficient program execution
JP2009145932A (ja) * 2007-12-11 2009-07-02 Toshiba Corp 画像情報の更新を検出するプログラム、方法および画像処理装置
US7735087B2 (en) 2003-03-13 2010-06-08 Panasonic Corporation Task switching apparatus, method and program
US8601105B2 (en) 2008-01-31 2013-12-03 Kabushiki Kaisha Toshiba Apparatus, method and computer program product for faciliating communication with virtual machine

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001324998A (ja) * 2000-03-08 2001-11-22 Matsushita Electric Ind Co Ltd 映像音声処理装置
JP4538161B2 (ja) * 2000-03-08 2010-09-08 パナソニック株式会社 映像音声処理装置
US8006076B2 (en) 2002-01-09 2011-08-23 Panasonic Corporation Processor and program execution method capable of efficient program execution
US7386707B2 (en) 2002-01-09 2008-06-10 Matsushita Electric Industrial Co., Ltd. Processor and program execution method capable of efficient program execution
US9823946B2 (en) 2002-01-09 2017-11-21 Socionext Inc. Processor and program execution method capable of efficient program execution
US7921281B2 (en) 2002-01-09 2011-04-05 Panasonic Corporation Processor and program execution method capable of efficient program execution
US7930520B2 (en) 2002-01-09 2011-04-19 Panasonic Corporation Processor and program execution method capable of efficient program execution
US8719827B2 (en) 2002-01-09 2014-05-06 Panasonic Corporation Processor and program execution method capable of efficient program execution
US7735087B2 (en) 2003-03-13 2010-06-08 Panasonic Corporation Task switching apparatus, method and program
US8276156B2 (en) 2003-03-13 2012-09-25 Panasonic Corporation Task switching based on assigned time slot
US7950016B2 (en) 2003-03-13 2011-05-24 Panasonic Corporation Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot
US8416253B2 (en) 2007-12-11 2013-04-09 Kabushiki Kaisha Toshiba Apparatus, method, and recording medium for detecting update of image information
JP2009145932A (ja) * 2007-12-11 2009-07-02 Toshiba Corp 画像情報の更新を検出するプログラム、方法および画像処理装置
US8601105B2 (en) 2008-01-31 2013-12-03 Kabushiki Kaisha Toshiba Apparatus, method and computer program product for faciliating communication with virtual machine

Also Published As

Publication number Publication date
JP3356677B2 (ja) 2002-12-16

Similar Documents

Publication Publication Date Title
KR100450228B1 (ko) 비동기로실행할태스크가다수있어도비동기이벤트태스크를효율적으로실행할수있는프로세서
KR100649107B1 (ko) 실시간 동작 수행방법 및 시스템
KR100591727B1 (ko) 스케줄링 방법과 이 방법을 실행하기 위한 프로그램을 기록한 기록매체 및 정보처리시스템
US5699460A (en) Image compression coprocessor with data flow control and multiple processing units
US6310921B1 (en) Media processing apparatus which operates at high efficiency
JP4057989B2 (ja) スケジューリング方法および情報処理システム
US5909224A (en) Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment
KR100623217B1 (ko) 스케줄링 방법과 이 방법을 실행하기 위한 프로그램을 기록한 기록매체 및 실시간 처리시스템
US5488695A (en) Video peripheral board in expansion slot independently exercising as bus master control over system bus in order to relief control of host computer
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
US6006020A (en) Video peripheral circuitry exercising bus master control over a bus of a host computer
JP4526145B2 (ja) Mpegビデオ復号器およびmpegビデオ復号方法
JP3356677B2 (ja) 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ
US20090158379A1 (en) Low-Latency Multichannel Video Port Aggregator
JP4879381B2 (ja) 画像復号化方法および画像復号化装置
JP2002091782A (ja) 非同期に実行すべきタスクが多数あっても、非同期イベントタスクを効率良く実行することができるプロセッサ
JP2000235501A (ja) タスク実行装置
JP2001075917A (ja) Dma転送装置および画像復号装置
US7729591B2 (en) Data processing apparatus, reproduction apparatus, data processing system, reproduction method, program, and storage medium
JPH08314793A (ja) メモリアクセス制御方法および該方法を適用した半導体集積回路および画像復号装置
US8694697B1 (en) Rescindable instruction dispatcher
JP2004326228A (ja) 並列演算処理装置
JPH11298857A (ja) 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体
JP2005086822A (ja) ビデオ・データおよびグラフィックス・データ処理用装置
JP2002245448A (ja) 演算装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081004

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091004

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091004

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101004

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111004

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121004

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131004

Year of fee payment: 11

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313135

SZ02 Written request for trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z02

SZ02 Written request for trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z02

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term