JP3356677B2 - Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently - Google Patents

Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently

Info

Publication number
JP3356677B2
JP3356677B2 JP5207398A JP5207398A JP3356677B2 JP 3356677 B2 JP3356677 B2 JP 3356677B2 JP 5207398 A JP5207398 A JP 5207398A JP 5207398 A JP5207398 A JP 5207398A JP 3356677 B2 JP3356677 B2 JP 3356677B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
task
instruction
number
instructions
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.)
Expired - Lifetime
Application number
JP5207398A
Other languages
Japanese (ja)
Other versions
JPH10307731A (en )
Inventor
康介 ▲よし▼岡
潔 前信
誠 平井
督三 清原
卓敏 田中
Original Assignee
松下電器産業株式会社
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
Grant date

Links

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 [0001]

【発明の属する技術分野】MPEGストリームを始めとする可変符号長のマルチメディアデータを再生するAVデコーダに備えられ、専らAVデコーダ内部のメインプロセッサの周辺制御を担うプロセッサに関する。 It provided in the variable code length AV decoder for reproducing multimedia data, including MPEG stream BACKGROUND OF THE INVENTION relates to a processor exclusively responsible for peripheral control of the main processor of the internal AV decoder.

【0002】 [0002]

【従来の技術】MPEGストリームの再生技術はマルチメディア社会の基盤技術の一つでもあり、近年におけるその需要の高まりには目を見張るものがある。 Regeneration techniques BACKGROUND OF THE INVENTION MPEG stream is also one of the fundamental technology of the multimedia society, the increasing of the demand in recent years are remarkable. MPEGストリームの再生技術の新たな活躍の舞台として注目を浴びているのは、インタラクティブな動画再生、音声再生を可能とする民生機器の分野であり、この分野にて成功を収めるべく、メーカー各社の技術者はMPEGストリームの再生を高度になしえるAVデコーダの研究開発に心血を注いでいる。 What attracted attention as a stage of a new activity of reproduction technology of MPEG streams, interactive video playback, is in the field of consumer equipment that enables audio playback, Beku success in this field, the manufacturers engineers are pouring heart and soul into the research and development of AV decoder may no advanced playback of MPEG stream.

【0003】MPEGストリームの再生技術にて行うべき処理には様々なものがあるが、それらはコア処理と、非同期イベント処理とに大別されるといわれる。 [0003] There are a variety of process to be performed in MPEG stream reproduction techniques, it referred to as they are roughly classified into core processing, the asynchronous event processing. コア処理とは、逆量子化、逆離散余弦変換、動き補償等、縦16×横 A core processing, inverse quantization, inverse discrete cosine transform, motion compensation, etc., vertical 16 × horizontal
16個の画素からなるマクロブロックを対象とした処理である。 Macro block of 16 pixels is a processing for the. 毎秒4050個ものマクロブロックを処理せねばならないので(4050=30フレーム×30スライス×45マクロブロック)、その演算量は膨大なものとなる。 Since must be processed per second 4050 or even macro block (4050 = 30 frames × 30 slices × 45 macro block), the calculation amount is enormous. コア処理の実行には、パイプライン処理が好適とされるが、ハードウェア規模の増大を厭わない場合は、解読器や演算器を複数にしてコア処理の負荷を分散させるのが良い。 The execution of the core processing pipe but line processing is to be preferred, if not willing to increase the hardware scale, decoder and computing units better disperse the load of the core processing in the plurality.

【0004】非同期イベント処理とは、複数の要因が重なることにより特定の事象が成立している期間において集中的に行うべき処理、或は、所定の周期をもって間欠的に行うべき処理であり、コア処理と同期して行なえない処理の総称をいう。 [0004] The asynchronous event processing is centrally process to be performed in a period in which a particular event is established by several factors overlap, or a process to be performed intermittently with a predetermined period, the core It refers to the general term of no processing performed in synchronization with the processing. AVデコーダにおいて、このような非同期イベント処理に相当する処理には、記録媒体や通信媒体からのMPEGストリーム入力に関するもの(1)、AV In the AV decoder, the processing corresponding to such asynchronous event processing, relates MPEG stream input from the recording medium or a communication medium (1), AV
デコーダから映像再生機器、音声再生機器への出力に関するもの(2)、AVデコーダと、AVデコーダ外部に接続された拡張メモリとの入出力に関するもの(3)の三種類がある。 Video reproducing equipment from the decoder, those related to the output of the audio reproducing apparatus (2), and the AV decoder, there are three types of related input and output of the expanded memory that is connected to the AV decoder outside (3).

【0005】記録媒体からのストリーム入力に関する非同期イベント処理(1)は更に、光ディスク等の記録媒体や通信媒体からMPEGストリームを取り込んで、エレメンタリィストリームを抽出する抽出処理(1-1)、抽出されたエレメンタリィストリームを拡張メモリとして接続されているSDRAMに書き込む書込処理(1-2)がある。 [0005] Asynchronous event processing relating to a stream input from the recording medium (1) further incorporates an MPEG stream from the recording medium or a communication medium such as an optical disk, extraction process (1-1) for extracting an elementary Ryi stream is extracted there is a write process (1-2) for writing to the SDRAM connected to elementary Ryi stream as an extended memory with. 再生出力に関する非同期イベント処理(2)は更に、復号が済んだ動画ストリーム、オーディオストリームを映像信号、 Reproduction output asynchronous event processing regarding (2) further, the moving picture stream, a video signal and an audio stream having undergone decoding,
音声信号にそれぞれ変換してディスプレィ、スピーカに出力する処理(2-1)と、MPEGストリームのプライベートストリームとして出力されてくる副映像を描画し、これを動画データと混合して映像信号に字幕を合成する処理 Display converted respectively into the audio signal, processing for outputting to the speaker and (2-1), to draw the sub-picture coming outputted as a private stream of the MPEG stream, a subtitle this video data and mixed to the video signal process for synthesizing
(2-2)を含む。 Including the (2-2).

【0006】拡張メモリとの入出力に関する非同期イベント処理(3)は更に、逆量子化、逆離散余弦変換、動き補償等の処理が施されたデータが内部バッファに蓄積されるのを監視し、その蓄積量が一定量になった段階でSD [0006] asynchronous event processing related input and output of the extended memory (3) further monitors the inverse quantization, inverse discrete cosine transform, data processing such as motion compensation has been performed is stored in the internal buffer, SD at the stage where the accumulated amount reaches a certain amount
RAMにまとめて書き込む処理(3-1)、逆量子化、逆離散余弦変換、動き補償の進捗に応じて、次に処理すべきデータを外部に接続されたSDRAMから内部バッファに間欠的に補充する補充処理(3-2)がある。 RAM to collectively write process (3-1), inverse quantization, inverse discrete cosine transform, according to the progress of the motion compensation, then replenished from the SDRAM data to be processed is connected to the external intermittently in an internal buffer supplement process to have (3-2).

【0007】以上の処理の他にも、操作者からの操作に応じて行うべき処理はこの非同期イベント処理に分類される。 [0007] In addition to the above processing, the processing to be performed in response to an operation from the operator is classified in the asynchronous event processing. 単にMPEGストリームの再生だけではなく、操作者の対話性を重視した再生装置の応用システムを設計する場合やホストコンピュ−タとの同期制御を前提にしたシステムを設計する場合は、更に多くの非同期イベント処理をAVデコーダに処理させる必要がある。 Not only reproduction of the MPEG stream, or when the host computer design application systems of the reproducing apparatus with an emphasis on interactivity of the operator - When designing a system that assumes synchronous control with the motor, the more asynchronous it is necessary to handle event processing to the AV decoder.

【0008】上記の処理のうち、処理(2-1)のオーディオに関する処理は、オーディオアウトタスクと呼ばれ、 [0008] Of the above processes, the process relates to an audio processing (2-1), called the audio out task,
90μsecという間欠的な周期を有する。 With intermittent periods of 90Myusec. また処理(2-1)のうち、ビデオに関する処理はビデオアウトタスクと呼ばれ、ディスプレィの水平同期信号の間欠的な周期に基づいた50μsecにおいて、一ライン分の画像の処理を完遂させねばならない。 Of the processes (2-1), the process about the video is called video out task, in 50μsec based on intermittent cycle of the horizontal synchronizing signal of the Display must then complete the processing of one line of the image.

【0009】このようにビデオアウトタスク、オーディオアウトタスクに実行周期が与えられるのは、これらのタスクの処理が完遂されないと、動画-音声が時間の流れに沿って円滑に再生されないからである。 [0009] Thus video out task, the execution period is given to the audio-out task, the processing of these tasks are not completed, video - because speech is not smoothly replayed in time. 即ち、ビデオアウトタスク、オーディオアウトタスクの処理を50μ That is, the video out task, the processing of the audio-out task 50μ
sec、90μsecという周期内に完遂することが、動画再生、音声再生のリアルタイム性を満たすための最大要件となる。 sec, can be accomplished in a period of 90Myusec, the maximum requirements for meeting video playback, real-time audio playback.

【0010】従来のMPEGストリーム再生技術においては、以上の非同期イベント処理を汎用プロセッサに行わせる場合、非同期事象の発生や所定周期の到来を割込信号により汎用プロセッサに通知する。 [0010] In the conventional MPEG stream reproduction techniques, when to perform more asynchronous event processing to a general purpose processor, it notifies the arrival of occurrence or a predetermined period of the asynchronous event to the general purpose processor with an interrupt signal. 通知後、汎用プロセッサは分岐命令を用いて非同期イベント処理へと分岐する。 After notification, the general purpose processor branches to the asynchronous event processing using a branch instruction.

【0011】 [0011]

【発明が解決しようとする課題】しかしながら割込信号を用いて汎用プロセッサに非同期イベント処理を実行させるという従来の方式では、オーディオアウトタスク、 [SUMMARY OF THE INVENTION However, in a conventional manner as to execute the asynchronous event processing to the general purpose processor with an interrupt signal, an audio out task,
ビデオアウトタスクの処理を完遂させるには動作クロックをいくらに定めればよいかを示す動作クロック数の最適な下限値が一義的に計算できないという問題点がある。 Optimum lower limit operating clock number indicating how may be determined how much the operation clock to be complete the processing of the video out tasks there is a problem that can not be uniquely computed.

【0012】最適な下限値が計算できないため、大まかな見積もりで動作クロック数を決定せざるを得ず、動作クロック数をどうしても高めに設定してしまう傾向がある。 [0012] can not be calculated optimum lower limit, it is inevitable to determine the number of operation clocks in rough estimate, there is a tendency to set just increasing the number of operation clocks. 従来の方式では、どのような計算法で動作クロックを計算していたかを以下に説明する。 In the conventional system will be described or not by calculating the operation clock in any calculation method is described below. 周期が異なる非同期イベントタスクとして90μsecの実行周期を有するオーディオアウトタスクと、50μsecの実行周期を有するビデオアウトタスクを実行せねばならないものとする。 And audio out tasks with an execution period of 90μsec as an asynchronous event task whose periods are different, and those which must be run the video out tasks with an execution period of 50 .mu.sec.
この場合、オーディオアウトタスクは0μsec、90μsec, In this case, the audio-out task 0μsec, 90μsec,
180μsec,270μsec,360μsec,450μsecというように90 180μsec, 270μsec, 360μsec, and so on 450μsec 90
μsec毎にオーディオストリームの復号を完遂せねばならず、ビデオアウトタスクは0μsec、50μsec,100μse μsec must take into complete decoding of the audio stream to each, video out tasks 0μsec, 50μsec, 100μse
c,150μsec,200μsec,250μsec,300μsec,350μsecというように50μsec毎に動画ストリームの復号を完遂せねばならない。 c, shall not 150μsec, 200μsec, 250μsec, 300μsec, if take into complete the decoding of the video stream to each 50μsec and so on 350μsec. 従来の汎用プロセッサは、2つの実行周期の到来を割込信号にて通知して、それからビデオアウトタスク、オーディオアウトタスクを処理することになる。 Conventional general purpose processor, the arrival of the two execution cycle notified by the interrupt signal, then will process the video out tasks and audio out tasks.

【0013】割込信号によって実行時期の到来を知ってから、オーディオアウトタスク、ビデオアウトタスクを起動しようとすると、各タスクが処理を完遂せねばならないタイムリミットは、自身を起動するための割込信号の発生タイミングから、次のタスクを起動するための割込信号の発生タイミングまでに定められる。 [0013] from knowing the arrival of the execution time by an interrupt signal, the audio-out task, when you try to start a video-out task, time limit that each task must be completed the process, an interrupt for starting their own from the generation timing of the signal is determined by the generation timing of the interrupt signal for activating the next task. 図57は、 FIG. 57,
これらの周期が割込信号により汎用プロセッサに通知されて、実行する場合を想定したタイミングチャートである。 These periods are notified to the general purpose processor with an interrupt signal is a timing chart assuming that run. 本図において、オーディオアウトタスク−ビデオアウトタスクの処理完遂のためのタイムリミットがどのように現れるかを説明する。 In the figure, the audio-out task - describing how time limit for processing complete video out tasks how appear.

【0014】パルスP1の立ち上がり及びパルスP5の立ち上がりが発生して、ビデオアウトタスク、オーディオアウトタスクを起動する旨が汎用プロセッサに通知されると、次の割込信号であるパルスP2の立ち上がりが通知されるまでの50μsec期間がビデオアウトタスク及びオーディオアウトタスクの処理を完遂させるためのタイムリミットとなる。 [0014] The rise of the rise and the pulse P5 of pulses P1 occurs and that the start video out tasks and audio out tasks are notified to the general-purpose processor, notification rise of the pulse P2 is the next interrupt signal 50μsec period until it becomes a time limit for making the complete processing of the video out tasks and audio out tasks.

【0015】一方、パルスP6の立ち上がりが発生して、 [0015] On the other hand, with the rise of the pulse P6 is generated,
オーディオアウトタスクを起動する旨が汎用プロセッサに通知されると、次の割込信号であるパルスP3の立ち上がりが通知されるまでの僅か10μsecの期間がオーディオアウトタスク完遂のためのタイムリミットとなる。 When instruction to start the audio out task is notified to the general purpose processor, a period of just 10μsec until the rise of the pulse P3 is the next interrupt signal is notified the time limit for the audio out task completion. タイムリミットから動作クロックを計算する方式では、10 In the method of calculating the operating clock from the time limit, 10
μsecのような極めて短いタイムリミット、即ち、タイムリミットのワーストケースにおいてもオーディオアウトタスク、ビデオアウトタスクを完遂するだけの動作クロック数が要求される。 Very short time limit, such as .mu.sec, i.e., audio out task even in worst-case time limit, the operation clock number of the just completed video out tasks is required. そうすると動作クロックを一段と高いものに決定せさるを得ない。 Then I do not give a monkey to determine the operating clock to much higher ones. しかし安易に動作クロックを高速にすれば、消費電力の増大も著しくなり、 But if easily the operating clock to the high-speed, also will significantly increase in power consumption,
民生機器の用途に適さなくなる。 It is not suitable for consumer electronics applications.

【0016】本発明の目的は、所定の周期で完遂せねばならない処理量が予め定められている非同期イベント処理が複数ある場合に、それぞれの非同期イベントタスクにどれだけのサイクル数を割り当てればよいかを示す最適な下限値を一義的に計算することできると共に、それらの最適な下限値から全タスクを動作させるための動作サイクル数の下限値を一義的に計算することができるプロセッサを提供することである。 An object of the present invention, when the amount of processing must be completed in a predetermined cycle there are multiple asynchronous event processing which is determined in advance, may be assigned a number of cycles how much each asynchronous event task or it is possible an optimal lower limit can be uniquely calculate shown, to provide a processor capable of uniquely calculating the lower limit of the number of operation cycles for operating all tasks from their optimal lower limit it is.

【0017】 [0017]

【課題を解決するための手段】上記目的を達成するために、本発明は、n個のタスクを実行対象タスクとしたプロセッサであって、n個のタスク識別子について、そのタスクに割り当てられた数の命令が実行されると次のタスク識別子を出力する実行タスク指示手段と、出力されたタスク識別子で特定されるタスク中の実行すべき命令を順次指定する命令指定手段と、指定された命令を実行する実行手段とを備え、前記実行タスク指示手段は、n To achieve the above object of the Invention The present invention relates to a processor and executed tasks of n tasks, for n task identifier, the number assigned to the task When the instruction is executed and the execution task indicating means outputs the next task identifier, a command specifying means for specifying an instruction to be executed in the task specified by the outputted task identifier sequence, the specified instruction and a execution means for executing, the execution task indicating means, n
個のタスクにおいて、通常のタスクに割り当てられる命令数よりも少ない命令数が割り当てられるタスクであるペナルティタスクの識別子を保持するペナルティタスク保持部と、次のタスク識別子を出力すると、前記ペナルティタスク保持部を参照して、当該タスク識別子で特定されるタスクがペナルティタスクか否かを判定し、ペナルティタスク以外ならば第1の命令数を、ペナルティタスクならば第1の命令数よりも少ない第2の命令数を、 In this task, the penalty task holding portion for holding an identifier of a penalty task is the task instruction number smaller than the number of instructions to be allocated to the normal task is assigned, and outputs the next task identifier, the penalty task holding portion see, the task identifier a task specified by it is determined whether the penalty task, a first number of instructions if other penalty task, the first instruction second number of less than if the penalty task the number of instructions,
当該タスクに割り当てられる命令数とする命令数選択手段とを含むことを特徴としている It is characterized in that it comprises a number of instructions selecting unit for the number of instructions assigned to the task

【0018】 [0018]

【発明の実施の形態】 DETAILED DESCRIPTION OF THE INVENTION

(第1実施形態)I/Oプロセッサについての説明を開始する前に、AVデコーダがどのような内部構成を有しており、その構成において本発明に係るI/Oプロセッサがどのような役割を果たしているかを説明する。 Before starting the description of the (first embodiment) I / O processor has what internal configuration AV decoder, what role the I / O processor of the present invention in its structure whether the play will be explained. 図1にAVデコーダの内部構成を示す。 Figure 1 shows the internal structure of the AV decoder.

【0019】AVデコーダは、コア処理を行うデコーダコア部と、複数の非同期イベントタスクを行うI/O部とかなる。 The AV decoder includes a decoder core unit which performs core processing, Toka I / O unit performs a plurality of asynchronous event tasks. デコーダコア部は、setup部104、VLD部10 The decoder core unit, setup unit 104, VLD section 10
5、IQ/IDCT部106、動き補償部107を含み、I/O部は、ストリーム入力部101、バッファメモリ102、 5, IQ / IDCT unit 106 includes a motion compensation unit 107, I / O unit includes a stream input unit 101, a buffer memory 102,
ビットストリームFIFO103、ビデオ出力部108、オーディオ出力部109、I/Oプロセッサ113、バッファメモリコントローラ110、RAMコントローラ11 Bitstream FIFO103, video output unit 108, audio output unit 109, I / O processor 113, the buffer memory controller 110, RAM controller 11
1、FIFOコントローラ112、ホストI/O部115を備えている。 1, FIFO controller 112, and a host I / O unit 115. またバスとしてバッファメモリバス121、 The buffer memory bus 121 as bus,
SDRAMバス122、ビットストリームバス123、IOPコントロールバス124が設けられており、拡張メモリとしてSDRAM300と接続している。 SDRAM bus 122, a bitstream bus 123, IOP control bus 124 is provided and connected to the SDRAM300 as extended memory.

【0020】(1.)MPEGストリームの復号処理の概要 次に図2を参照して、MPEGストリームの復号処理の概要について簡単に説明しておく。 [0020] (1) Referring to overview now to FIG. 2 of the decoding process of the MPEG stream, briefly overview of decoding of MPEG streams. 本実施形態においてMPEG MPEG In this embodiment
ストリームは、動画ストリーム、オーディオストリーム、副映像ストリームからなる。 Stream, video stream, audio stream, consisting of sub-picture stream. このうち動画ストリームは、圧縮された動画像データであり、復号処理において、差分算出の基準となる画像(以下「参照画像」と呼ぶ)と、算出された差分を符号化した画像(以下「差分画像」と呼ぶ)とを加算することにより、動画像に復元される。 Among video streams are compressed moving image data, in the decoding processing, an image (hereinafter referred to as "reference image") as a reference for differential calculation, images and the calculated difference is encoded (hereinafter "differential by adding the called) and the image ", it is restored to the moving image.

【0021】図2において、MPEGストリーム内の動画ストリームのデータ構造は、階層的に表現されている。 [0021] In FIG. 2, the data structure of the video stream in the MPEG stream is represented hierarchically. 第1層はMPEGストリームの階層であり、第2層は1秒長の動画の階層である。 The first layer is a layer of the MPEG stream, the second layer is a hierarchy of a second length movie. 第3層は1フレームの階層であり、 The third layer is a layer of the frame,
第4層は1スライスの階層である。 The fourth layer is a layer of the one slice. 第5層はマクロブロックの階層である。 The fifth layer is a layer of the macroblock. 破線C1に示す第1層と第2層との対応関係を参照すると、MPEG(Motion Picture Image Codi Referring to the correspondence relationship between the first and second layers shown in dashed lines C1, MPEG (Motion Picture Image Codi
ng Experts Group)において1秒長の動画は、NTSC方式における30フレームの画像(PAL方式では25フレームの画像)にて構成されることがわかる。 ng Experts Group) 1 second length of video in, in the image (PAL system 30 frames in the NTSC system seen to be composed of 25 frames of an image). また、各フレームの画像は、Iピクチャ(図中のI0)、Pピクチャ(図中のP The image of each frame, (I0 in Fig.) I-pictures, P in P picture (Fig.
3)、Bピクチャ(図中のB1,B2)という3つのタイプがあることもわかる。 3), B picture (it can also be seen that there are three types of B1, B2) in FIG.

【0022】ここでIピクチャとは、圧縮された画像データであるが、一フレーム分の輝度成分及び色差成分を含むものをいう。 [0022] Here the I-picture, is a compressed image data, refers to one containing a luminance component and a color difference component of one frame. Pピクチャ(Predictive-Picture )又はBピクチャ(Bidirectionally predictive Picture) P-picture (Predictive-Picture) or B-picture (Bidirectionally predictive Picture)
は差分画像と呼ばれるものである。 Is what is called the difference image. ここでPピクチャとは、過去方向に位置するフレームとの差分からなる差分画像であり、Bピクチャとは、過去方向及び未来方向に位置するフレームとの差分からなる差分画像である。 Here, the P picture is a difference image composed of the difference between the frame located in the past direction, and the B-picture, a difference image composed of the difference between the frame located past direction and the future direction.

【0023】Bピクチャ及びPピクチャがどのような単位で作成されるかであるが、破線C2に示す第2層と第3層との対応関係を参照すると、NTSC方式においてこれらの画像は30本のスライスというデータにて構成され、PAL [0023] While it is or B-pictures and P-pictures are created in any units, referring to correspondence between the second layer and the third layer shown in dashed line C2, 30 present these images in the NTSC system is constituted by data indicating that the slice, PAL
方式では36本のスライスというデータにて構成されることがわかる。 In the method seen to be composed of data of 36 pieces of slice. 破線C3に示す第3層と第4層との対応関係を参照すると、各スライスは、45のマクロブロックにて構成されることがわかる。 Referring to correspondence between the third and fourth layers shown in broken line C3, each slice is seen to be composed of 45 macro blocks. マクロブロックとは、横16 The macro block, next to 16
画素×縦16画素の輝度成分、色差成分にて構成される。 The luminance component of the pixels × vertical 16 pixels, constituted by the color difference component.
破線C4に示す第4層と第5層との対応関係を参照すると、横16×縦16の輝度成分からなる輝度ブロックと、横 Referring to the relationship between the fourth and fifth layers shown in broken line C4, and luminance blocks consisting of luminance components of horizontal 16 × vertical 16, horizontal
8×縦8の青色差成分からなる青色差ブロック(Cbブロック)と、横8×縦8の赤色差成分からなる赤色差ブロック(Crブロック)とを含むことがわかる。 And 8 × a blue difference component in the vertical 8 blue difference block (Cb block), red color difference consists red chrominance components of the horizontal 8 × 8 vertical block (Cr block) and it can be seen that including. 本マクロブロックは、AVデコーダにおける画像復号の一単位となる。 This macro block is one unit of image decoding in the AV decoder.

【0024】マクロブロックより下は、AVデコーダの構成要素間がマクロブロックに含まれている輝度ブロック、色差ブロックをどのように処理するかを示すタイミングチャートになっている。 [0024] Below the macroblock is made to the timing chart shown between the components of the AV decoder luminance blocks included in the macro block, how to process the color difference blocks. マクロブロックに対してどのような復号化がなされるかであるが、マクロブロックに対する復号化は、圧縮動画像データを可変長復号(Va Although what decoding for the macro block is either made, decoding of the macro block, the variable length decoding compressed moving image data (Va
riable Length codeDecoding:以降VLDと略す)して、6つの空間周波数成分データ、ヘッダ情報、動きベクトルを得る。 riable Length codeDecoding: after referred to as VLD) to obtain six spatial frequency component data, header information, motion vector.

【0025】その後、6つの空間周波数成分データに対して逆離散余弦変換処理(DiscereteCosine Transform:D [0025] Then, inverse discrete cosine transform processing on the six spatial frequency component data (DiscereteCosine Transform: D
CT)を行って低周波数帯に位置する空間周波数成分と、 And the spatial frequency components positioned in the low frequency band performing CT),
高周波数帯に位置する空間周波数成分とに分離し、高周波数帯を切り捨てて、低周波帯に位置する空間周波数成分に対して逆量子化処理を行うことによりなされる。 Is separated into the spatial frequency components positioned in the high frequency band, by truncating the high frequency band is done by performing an inverse quantization process to the spatial frequency components positioned in the low frequency band. 符号化されたマクロブロックは、逆量子化及び逆離散余弦変換処理がなされた後、動きベクトルに基づいた動き補償により、映像として表示される。 Coded macroblock, after the inverse quantization and inverse discrete cosine transform processing is performed by motion compensation based on motion vectors, are displayed as an image. 動きベクトルとは、 The motion vector,
前後のフレームの画像と比較して相関性の最も高い箇所を指し示す情報をいう。 Compared to previous image frame refers to information indicating the highest point of the correlation. つまり動きベクトルは画像内の人物像や建造物像がフレームの前後でどう動いたかをブロック単位で表現している。 That motion vector figures and buildings image in the image is expressed in units of blocks if moved before and after the frame.

【0026】動き補償とは、差分の前後に表示されるべき参照画像と、当該差分とを足し合わせて(ブレンドして)一枚の完結した表示用画像を得ることをいう。 [0026] The motion compensation means and the reference image to be displayed before and after the difference, that by summing the the difference (blended with) obtain one complete the display image of. 以上のMPEG準拠の動画像の符号化・複号化技術のうち、本明細書で特に引用する内容は以上の通りである。 Of more MPEG moving image compliant encoding and decoding technologies, contents to be particularly cited in this specification are as above. より詳細内容な技術内容については、株式会社アスキー「ポイント図解式最新MPEG教科書」などの公知文献を参照されたい。 For a more detailed content of technical content, reference is made to the known literature, such as ASCII Corporation "point illustrated equation latest MPEG textbook".

【0027】図2におけるタイミングチャートは、デコーダコア部におけるsetup部104、VLD部105、IQ/I The timing chart in FIG. 2, setup unit 104, VLD unit 105 in the decoder core unit, IQ / I
DCT部106、動き補償部107の処理がどのようなタイミングが行われるか説明する際に引用するものとする。 DCT unit 106 shall be cited in the description or the processing of the motion compensation unit 107 which timing is performed. 以上でMPEGストリームの復号処理の概要について説明を終え、続いてAVデコーダの構成要素についての説明を開始する。 For finished overview of the decoding process of the MPEG stream above, followed by starting the description of the components of the AV decoder.

【0028】(2.)AVデコーダの構成要素 ストリーム入力部101は、記録媒体や通信媒体からMP [0028] (2) component stream input unit 101 of the AV decoder, MP from the recording medium or a communication medium
EGストリームが取り出されると、MPEGストリームをAVデコーダ内部に取り込み、I/Oプロセッサ113による制御に応じてバッファメモリバス121に出力する。 When EG stream is taken out, it captures the MPEG stream to the internal AV decoder, and outputs to the buffer memory bus 121 in response to control by the I / O processor 113. バッファメモリ102は、バッファメモリコントローラ11 Buffer memory 102, the buffer memory controller 11
0の制御に従って、ストリーム入力部101が取り込んだMPEGストリームを保持する。 Under the control of 0, the stream input unit 101 holds the MPEG stream captured. またMPEGストリームを出力するようバッファメモリコントローラ110に命じられると、これまでに格納しているMPEGストリームをSDRA Further, when commanded to the buffer memory controller 110 to output MPEG streams, SDRA the MPEG stream stored in the far
Mバス122に出力する。 And outputs it to the M bus 122.

【0029】ビットストリームFIFO103は、MPEGストリームに含まれているエレメンタリィストリームがSDRA The bit stream FIFO103 is elementary Ryi stream included in the MPEG stream SDRA
Mバス122に出力されると、FIFOコントローラ112 When output to the M bus 122, FIFO controller 112
による制御に従って出力されたエレメンタリィストリームを取り込む。 Capturing elementary Ryi stream output under the control of. ビットストリームFIFO103は取り込んだエレメンタリィストリームを先入れ先出し方式に保持する。 Bitstream FIFO103 holds elementary Ryi stream taken into the first-in-first-out basis. このようにして保持したエレメンタリィストリームをFIFOコントローラ112の制御に従って、ビットストリームバス123に出力する。 Such an elementary Ryi stream held in the under the control of the FIFO controller 112, and outputs the bit stream bus 123.

【0030】setup部104は、ビットストリームFIFO The setup portion 104, a bit stream FIFO
103に保持されているMPEGストリームからエレメンタリィストリームが抽出されるのを待ち、そのエレメンタリィストリームが動画ストリーム或はオーディオストリームなら、VLD部105による復号によりそのヘッダ部が伸長されるのを待つ。 Wait for the MPEG stream stored in the 103 elementary the data Ryi stream is extracted, its elementary Ryi stream if the video stream or an audio stream, waits for the header portion by decoding by VLD section 105 is extended. ヘッダが伸長されるとこれの解析処理e1を図2に示すように行う。 It performs the header is extended analysis processing e1 of this, as shown in FIG. またエレメンタリィストリームが動画ストリームなら動きベクトルの抽出e2 The extracted elementary Ryi stream the video stream if the motion vector e2
を行う。 I do. その後、逆量子化、逆離散余弦変換、動き補償等が行われている間、音声ストリームの復号処理e3を行う。 Thereafter, inverse quantization, inverse discrete cosine transform, while the motion compensation or the like is being performed, the decoding processing e3 for the audio stream performed.

【0031】VLD部105は、ビットストリームFIFO1 The VLD unit 105, the bit stream FIFO1
03に格納されているエレメンタリィストリームが動画ストリームであり、これを構成するマクロブロックがビットストリームバス123に出力されると、マクロブロックに含まれている4つの輝度ブロックY0,Y1,Y2,Y3 Elementary Ryi stream stored in 03 is the video stream, the macro blocks constituting this is outputted to the bit stream bus 123, four luminance blocks included in the macro block Y0, Y1, Y2, Y3
と、2つの色差ブロックCb,Crとに対して可変符号長デコードt21,t22,t23,t24,t25,t26を行う。 When the two color difference blocks Cb, variable code length decoding t21 respect and Cr, t22, t23, t24, t25, performs t26.

【0032】IQ/IDCT部106は、可変符号長デコードがなされた四つの輝度ブロックと、2つの色差ブロックとに対して逆量子化及び逆離散余弦変換を行う。 The IQ / IDCT unit 106, and four luminance blocks the variable code length decoding has been performed, it performs the inverse quantization and inverse discrete cosine transform with respect to the two color difference blocks. 動き補償部107は、IQ/IDCT部106により逆量子化及び逆離散余弦変換がなされると、これらの処理がなされた輝度ブロック及び色差ブロックに対応する参照画像(Y0,Y The motion compensation unit 107, IQ / the inverse quantization and inverse discrete cosine transform is performed by the IDCT unit 106, the reference image (Y0, Y corresponding to the luminance block and chrominance block these processes have been made
1),(Y2,Y3),(Cb.Cr)をAVデコーダ外部に接続されたSDRA 1), (Y2, Y3), SDRA connected to the AV decoder outside (Cb.Cr)
M300から読み出し、輝度ブロック及び色差ブロックと、参照画像とをブレンドする。 Read from M300, blended with the luminance blocks and chrominance blocks, and a reference image. そしてそのブレンド結果に対してハーフペル補間を行うことにより動き補償を行う。 Then it performs motion compensation by performing half-pel interpolation for the blends result. その後、RAMコントローラ111を制御することにより動き補償の結果をSDRAM300に書き込ませる。 Thereafter, to write the result of the motion compensation SDRAM300 by controlling the RAM controller 111.

【0033】ビデオ出力部108は、動き補償部107 The video output unit 108, a motion compensation unit 107
により参照画像とのブレンドとハーフペル補間とがなされた一フレームの画像を映像信号に変換して外部に接続されたテレビ受像器等のディスプレィ装置に出力する。 Blended with half-pel interpolation between the reference image is output to the Display device of a television receiver or the like connected to an external image for one frame is converted into a video signal made by.
オーディオ出力部109は、setup部104により復号されたオーディオストリームを音声信号に変換して外部に接続されたスピーカ装置に出力する。 Audio output unit 109 outputs the decoded audio stream by the setup unit 104 to the speaker apparatus connected to the outside into a sound signal.

【0034】バッファメモリコントローラ(図中のBMコントローラ)110は、I/Oプロセッサ113周辺におけるストリーム入力部101、ビデオ出力部108、オーディオ出力部109間のアクセス調停を行うバッファメモリインターフェィスと、バッファメモリ102と、 The buffer memory controller 110 (BM controller in the drawing), the stream input portion 101 in the peripheral I / O processor 113, the video output unit 108, a buffer memory Intafeisu performing access arbitration between the audio output unit 109, a buffer memory and 102,
ストリーム入力部101、ビデオ出力部108、オーディオ出力部109間のDMA転送機能を有するDMAコントローラとからなる。 Stream input unit 101, a video output unit 108, and a DMA controller having a DMA transfer function between the audio output unit 109.

【0035】RAMコントローラ111は、SDRAM300に対してのバーストリードと、バーストライトとが可能な The RAM controller 111, a burst read against SDRAM 300, which can be a burst write
SDRAMインターフェィスと、SDRAM300−バッファメモリ102間、動き補償部107−バッファメモリ102 And SDRAM Intafeisu, SDRAM300- between the buffer memory 102, a motion compensation unit 107 and the buffer memory 102
間のDMA転送機能を有するDMAコントローラとからなる。 Comprising a DMA controller having a DMA transfer function between.
FIFOコントローラ112は、ディアルポートRAMと、当該RAMのRead/Writeを制御するコントローラと、ビットストリームFIFO103におけるアクセスアドレスを示すポインタを管理するポインタ管理機能とを有する。 FIFO controller 112 includes a Diar port RAM, a controller for controlling the Read / Write of the RAM, and a pointer management function for managing a pointer to the access address in the bitstream FIFO 103.

【0036】I/Oプロセッサ113は、AVデコーダにおける6本もの非同期イベントタスクを6本のスレッドに割り当てることにより、非同期イベントタスクを時分割多重にて実行する。 The I / O processor 113, by assigning six in the AV decoder also of an asynchronous event task to six threads, run by time division multiplexing asynchronous event tasks. 各非同期イベントタスクに割り当てたスレッドは、I/Oプロセッサ内部の全ての構成要素が同期制御のために用いているクロック信号のサイクル数にて表現され、その長さは原則4サイクルであるものとする。 Thread assigned to each asynchronous event task is represented by the number of cycles of the clock signal all of the components within the I / O processor is used for synchronization control, as its length is Principle 4 cycles to.

【0037】(3.)I/Oプロセッサに実行が課された非同期イベントタスクとは、どのような処理内容であるか AVデコーダにおいてI/Oプロセッサに実行が課された非同期イベントタスクが、どのような処理内容であるかを逐一説明する。 [0037] (3) The I / O asynchronous event task processor execution is imposed, what processing asynchronous event task to execute the I / O processor is imposed in a is either AV decoder contents, which one by one to explain whether it is a process content as. ・ホストI/Oタスク 本タスクは、ホストコンピュ−タとの通信と、操作者との対話に応じた二次元グラフィックスの描画に関するタスクである。 Host I / O task the task, the host computer - and communication with the data, the task relates to interactive two-dimensional graphics rendering in response to the operator. 具体的には、ホストI/O部115を介したホストコンピュ−タとの通信処理と、操作者による操作に応じて二次元グラフィックスを描画し、ビデオ出力部108に出力する処理とからなる。 Specifically, the host computer via the host I / O unit 115 - consists of a communication process with data, draws a two-dimensional graphics in response to the operation by the operator, a process of outputting the video output unit 108 . ・パージングタスク 本タスクはバッファメモリ102に入力されたMPEGストリームのパージング処理と、MPEGストリームから動画ストリーム、オーディオストリーム、副映像ストリームといったエレメンタリィストリームの抽出を行う抽出処理に関する。 · Parsing task the task and purging process of the MPEG stream inputted to the buffer memory 102, video from the MPEG stream and audio streams, on extraction process for extracting the elementary Ryi stream such sub-picture stream.

【0038】パージングタスクの実行時において、I/O [0038] In the time of the execution of the purging task, I / O
プロセッサ113は外部からストリーム入力部101に入力されたMPEGストリームをバッファメモリバス(図中ではBMバス)121に出力させる。 Processor 113 to output the MPEG stream inputted to the stream input unit 101 from the outside 121 (BM bus in the figure) the buffer memory bus. バッファメモリコントローラ110を制御することによりバッファメモリバス121に出力されたMPEGストリームをバッファメモリ102に書き込ませる。 To write the MPEG stream outputted to the buffer memory bus 121 to the buffer memory 102 by controlling the buffer memory controller 110. その後I/Oプロセッサ113 Then I / O processor 113
は、バッファメモリコントローラ110を制御することによりMPEGストリームをバッファメモリバス121に出力させ、MPEGストリームからエレメンタリィストリームを抽出する。 Causes the output MPEG stream to the buffer memory bus 121 by controlling the buffer memory controller 110, it extracts the elementary Ryi stream from the MPEG stream. バッファメモリコントローラ110を制御することにより抽出されたエレメンタリィストリームをバッファメモリ102に書き込ませる。 To write the elementary Ryi stream extracted by controlling the buffer memory controller 110 to the buffer memory 102. その結果、バッファメモリ102には、エレメンタリィストリームとしてビットストリーム、オーディオストリーム、副映像ストリームが格納された状態となる。 As a result, the buffer memory 102, a state of the bit stream as an elementary Ryi stream, audio stream, sub-picture stream is stored. ・オーディオストリーム転送制御タスク オーディオストリーム転送制御タスクはオーディオストリームに関する全ての転送制御からなるタスクである。 Audio stream transfer control task an audio stream transfer control task is the task of all the transfer control regarding the audio stream.

【0039】オーディオストリーム転送制御タスクに従って、I/Oプロセッサ113はバッファメモリコントローラ110を制御することによりバッファメモリ102 [0039] according to the audio stream transfer control task, the buffer memory 102 by the I / O processor 113 controls the buffer memory controller 110
にエレメンタリィストリームとして格納されているオーディオストリームをSDRAMバス122に出力させる。 The audio streams stored as elementary Ryi stream is outputted to the SDRAM bus 122. その後、RAMコントローラ111を制御することによりSDR Thereafter, SDR by controlling the RAM controller 111
AMバス122に出力されたオーディオストリームをSDRA SDRA audio stream output in the AM bus 122
M300に書き込ませる。 To write to the M300. setup部104がビットストリームFIFO103に格納されているオーディオストリームの復号を開始すると、その復号処理がどれだけ進捗したかを監視し、オーディオストリームの残量が所定値以下となると、RAMコントローラ111を制御して、SDRAM3 When setup unit 104 starts decoding the audio streams stored in the bitstream FIFO 103, monitors whether the decoding process has progressed much, the remaining amount of the audio stream is less than or equal to a predetermined value, controls the RAM controller 111 and, SDRAM3
00に格納されているオーディオストリームを読み出させてSDRAMバス122に出力させる。 00 to read the audio stream stored in and is outputted to the SDRAM bus 122. FIFOコントローラ112を制御してこのように出力されたオーディオストリームをビットストリームFIFO103に書き込ませる。 Controls FIFO controller 112 to write the output audio stream thus the bitstream FIFO 103.

【0040】このようなビットストリームFIFO103への書き込みにより、オーディオストリームの復号の進捗に応じたオーディオストリームの補充を行う。 [0040] Writing to this bit stream FIFO 103, performs replenishment of audio streams according to the progress of the decoding of the audio stream. デコードが済むと、I/Oプロセッサ113はFIFOコントローラ1 When decoding requires, I / O processor 113 FIFO controller 1
12を制御することによりデコード済みオーディオストリームをSDRAMバス122に出力させる。 The decoded audio stream is outputted to the SDRAM bus 122 by controlling the 12. バッファメモリコントローラ110を制御して、SDRAMバス122に出力されたオーディオストリームをバッファメモリ10 And controls the buffer memory controller 110, a buffer memory 10 the audio stream output to the SDRAM bus 122
2に書き込ませる。 To write to 2. ・動画ストリーム転送制御タスク 動画ストリーム転送制御タスクは動画ストリームに関する全ての転送制御からなるタスクである。 - Video stream transfer control task video stream transfer control task is the task of all the transfer control about the video stream.

【0041】I/Oプロセッサ113は、バッファメモリコントローラ110を制御することによりバッファメモリ102に格納されている動画ストリームをSDRAMバス122に出力させ、RAMコントローラ111を制御することによりSDRAMバス122に出力された動画ストリームをSDRAM300に書き込ませる。 The I / O processor 113, a video stream stored in the buffer memory 102 is outputted to the SDRAM bus 122 by controlling the buffer memory controller 110, output to the SDRAM bus 122 by controlling the RAM controller 111 to write the video stream to SDRAM 300. VLD部105、IQ/IDC VLD section 105, IQ / IDC
T部106、動き補償部107がビットストリームFIFO T 106, a motion compensation unit 107 is a bit stream FIFO
103に格納されている動画ストリームの復号を開始すると、動画ストリームの復号がどれだけ進捗したかを監視し、復号すべき残量が所定値以下となると、RAMコントローラ111を制御して、SDRAM300に格納されている動画ストリームを読み出させて、FIFOコントローラ112にビットストリームFIFO103に書き込ませる。 When starting the decoding of the video stream stored in 103, and monitors whether decoding the video stream has progressed much, the remaining amount to be decoded is equal to or less than a predetermined value, and controls the RAM controller 111, the SDRAM300 and to read the video stream is stored, and writes to the FIFO controller 112 to the bitstream FIFO 103.
このようなビットストリームFIFO103の書き込みにより、復号処理の進捗に応じた動画ストリームの補充を行う。 Writing such a bit stream FIFO103, performs replenishment video stream in accordance with the progress of the decoding process. ・ビデオアウトタスク ビデオアウトタスクは映像出力に関する出力制御からなるタスクである。 Video Out Tasks Video out tasks are tasks that the output control regarding the video output.

【0042】本非同期イベントタスクの実行時において [0042] In the time of execution of this asynchronous event task
I/Oプロセッサ113はRAMコントローラ111を制御することにより、VLD部105、IQ/IDCT部106、動き補償部107による処理が済んでSDRAM300に格納されている動画データをSDRAMバス122に出力させ、バッファメモリコントローラ110を制御して、SDRAMバス122に出力された動画ストリームをバッファメモリ1 I / O processor 113 by controlling the RAM controller 111, to output VLD unit 105, IQ / IDCT unit 106, the video data stored in the wafer after being subjected to processing by the motion compensation unit 107 SDRAM 300 to the SDRAM bus 122, and it controls the buffer memory controller 110, a buffer memory 1 video stream output to the SDRAM bus 122
02に書き込ませる。 02 to be written. バッファメモリコントローラ11 Buffer memory controller 11
0を制御して、SDRAM300に書き込まれた動画ストリームをSDRAMバス122に出力させ、ビデオ出力部10 By controlling the 0, to output a video stream written in SDRAM300 the SDRAM bus 122, the video output section 10
8に映像信号に変換させる。 8 is converted into a video signal. それと共に副映像ストリームを展開して得られた副映像と、二次元グラフィックスとを混合してビデオ出力部108に出力させる。 A sub-image obtained by expanding the sub-picture stream with it, by mixing the two-dimensional graphics to be output to the video output unit 108. ・setupI/Oタスク setup部104とI/Oプロセッサ113とが通信する際に実行すべき処理からなる。 And · setupI / O task setup unit 104 and the I / O processor 113 is a process to be executed when communicating.

【0043】当該コマンドがホストコンピュ−タが備えているレジスタを読み書きするためのコマンドなら、I/ [0043] The command is host computer - if command for reading and writing registers comprises the data, I /
Oプロセッサ113を制御して当該読み書きのための処理と、当該コマンドがVLD部105、IQ/IDCT部106の初期化コマンドなら、VLD部105、IQ/IDCT部106をリセットする処理とからなる。 A process for the reading and writing by controlling the O processor 113, the command is if initialization command VLD unit 105, IQ / IDCT unit 106, and a process of resetting the VLD unit 105, IQ / IDCT unit 106. 以上の非同期イベントタスクは、個々の処理負荷は軽いが、間欠的な起動が要求される。 More asynchronous event task, but lighter individual processing load, intermittent activation is required. 特にビデオアウトタスクは水平ブランキング期間の50μsec毎の起動が要求され、オーディオアウトタスクは90μsec毎の起動が要求される。 Especially video out tasks are required activation of each 50μsec of the horizontal blanking period, the audio-out task starts per 90μsec is required.

【0044】(4.)I/Oプロセッサがどのように構成されているか I/Oプロセッサの第1実施形態を図面を参照しながら説明する。 [0044] (4.) I / O processor what the first embodiment if the I / O processor is configured will be described with reference to the drawings in. 上述したように、I/Oプロセッサはそれぞれの非同期イベントタスクを実行すべき事象が成立したか否かの監視を行っており、事象が成立した非同期イベントタスクをより優先的に実行する。 As mentioned above, I / O processor event to execute each asynchronous event task has been monitoring whether or not satisfied, executes the asynchronous event task the event is satisfied more preferentially. 本実施形態において優先実行の手順までも言及すると、説明が煩雑になるのでこの優先実行についての説明は第3実施形態において行うものとする。 When mention is to procedure of priority execution in this embodiment, since the explanation becomes complicated explanation for this priority execution it will be made in the third embodiment. 第1実施形態では、I/Oプロセッサの基本構成、即ち、AVデコーダにおける6本もの非同期イベントタスクを時分割多重にて実行する構成について説明する。 In the first embodiment, the basic configuration of the I / O processor, i.e., a configuration for executing at time division multiplexing asynchronous event task also six in the AV decoder is described.

【0045】図3はI/Oプロセッサの内部構成を示す図であり、本図に示すようにI/Oプロセッサは命令メモリ100、命令読出回路10、命令解読制御部11、レジスタセット12、演算実行部14、及びタスク管理部1 [0045] Figure 3 is a diagram showing the internal configuration of the I / O processor, I / O processor instruction memory 100 as shown in the figure, the instruction read circuit 10, the instruction decode control unit 11, the register set 12, operation execution unit 14, and a task management unit 1
5から構成される。 Consisting of 5. 命令メモリ100は、上述した六本の非同期イベントタスクを構成する命令を記憶する。 Instruction memory 100 stores instructions to configure six pieces of asynchronous event tasks described above. 図8は、命令メモリ100がどのように命令列を記憶しているかを示す図である。 Figure 8 is a diagram illustrating how the instruction memory 100 stores how an instruction sequence. 本図において各命令には、0-0, Each instruction in the figure, 0-0,
0-1,0-2といった識別子が付されている。 Identifier is attached, such as 0-1,0-2. この識別子のうち、上位の数は、当該命令が6本の非同期イベントタスクの何れに属するかを示し、下位の数は、属する非同期イベントタスクにおいて当該命令が何番目に位置するかを示す。 Of this identifier, the number of higher-level, indicates whether the instruction belongs to any of the six asynchronous event tasks, the number of lower indicates whether the instruction is located in the ordinal number in the belonging asynchronous event tasks. 以降の説明において、命令メモリ100における各命令の配置アドレスは、この識別子を用いて表すものとする。 In the following description, the arrangement address of each instruction in the instruction memory 100 is intended to represent using this identifier.

【0046】命令メモリ100内に記憶されている命令は、全てのオペレーションが一命令語長に収まるよう命令フォーマットが規定されている。 [0046] The instructions stored in the instruction memory 100, the instruction format such that all operations can fit in a single instruction word length is defined. 本実施形態において命令語長は16bitに規定されており、その命令フォーマットを図9〜図11に示す。 Instruction word length in this embodiment is defined in 16bit, it shows the instruction format 9-11. 図9は、レジスタをオペランドに指定した算術演算命令の命令フォーマットを示す。 Figure 9 shows the instruction format of arithmetic instructions which specify a register as an operand. 本命令フォーマットでは、2bit〜4bitに第1オペランドに指定すべきレジスタ番号を指定でき、5bit〜7bit In this instruction format, to specify a register number to be specified by the first operand to 2bit~4bit, 5bit~7bit
には、第2オペランドに指定すべきレジスタ番号を指定できる。 The can specify a register number to be specified by the second operand. 8bit〜10bitには、演算結果の格納先に指定すべきレジスタ番号を指定でき、11bitから15bitまでの5b The 8Bit~10bit, can specify a register number to specify the storage destination of computation results, 5b from 11bit to 15bit
itにオペレーション内容が指定される。 Operation contents are specified in it. 下段の表は、当該オペレーション内容の指定が可能な5bitのうち、上位 Lower table of 5bit specification capable of such operation contents, the upper
2bitと、下位3bitの組み合わせと、その組み合わせにて表現されるオペレーション内容とを示している。 And 2bit, shows a combination of lower 3bit, and operations content represented by a combination thereof. 例えば上位2bitが『00』であり、下位3bitが『000』である場合、その組み合わせは加算演算のオペレーションを表現しており、上位2bitが『01』であり、下位3bitが『00 For example, the upper 2bit is "00", if the lower 3bit is "000", the combination is to express the operation of the addition operation, a higher-level 2bit is "01", the lower 3bit "00
0』である場合、その組み合わせは減算演算を表現している。 If it is 0 ", the combination expresses the subtraction operation. 上位2bitが『00』であり、下位3bitが『001』である場合、その組み合わせは左シフト演算(図中の<<は左シフト演算の意味である)を表現しており、上位2bit An upper 2bit is "00", if the lower 3bit is "001", the combination is expresses left shift operator (<< in the figure are means of left shift operation), the upper 2bit
が『01』であり、下位3bitが『001』である場合、その組み合わせは右シフト演算(図中の>>は右シフト演算の意味である)を表現している。 There is a "01", if the lower 3bit is "001", the combination is to express the right shift operation (>> in the figure is the meaning of the right-shift operation).

【0047】図10は、レジスタにて読出先アドレス、 [0047] FIG. 10, the read destination address in the register,
書込先アドレスを指定したメモリロード命令/メモリストア命令の命令フォーマットを示す。 It shows the instruction format of the memory load instruction / memory store instruction to specify the write destination address. この命令フォーマットでは、2bit〜4bitに第1オペランドに指定すべきレジスタ番号を指定でき、5bit〜7bitに読出元に指定すべきレジスタ番号又は演算結果の格納先に指定すべきレジスタ番号を指定できる。 This instruction format, to specify a register number to be specified by the first operand to 2Bit~4bit, can specify a register number to specify the storage destination of the to be register number or the operation result specified reading source to 5Bit~7bit. 10bitから12bitまでの3bitにオペレーション内容が指定され、13bitから15bitまでの3b 3b from the 10bit operation contents are specified in the 3bit of up to 12bit, up to 15bit from 13bit
itに3bit長の即値が指定される。 3bit length of the immediate value is specified in it.

【0048】下段の表は、3bitによるオペレーション内容の指定のうち、上位1bitと、下位2bitの組み合わせと、その組み合わせにて表現されるオペレーション内容とを示している。 The lower part of the table of the specified operation contents by the 3bit, shows the upper 1bit, the combination of lower 2bit, and operations content represented by a combination thereof. 例えば上位1bitが『1』であり、下位2 For example, a higher-level 1bit is "1", the lower two
bitが『10』である場合、読出元オペランドsrc_REGで指定されたレジスタの値を、第1オペランドsrc1と3bitの即値im:3との組み合わせ(src1+im:3)を用いて指定されたメモリに格納するストア命令を指定している。 If bit is "10", the value of the register specified by the read original operand src_reg, first operand src1 and 3bit immediate im: 3 combination of: memory specified using (src1 + im 3) You have specified a store instruction to be stored in.

【0049】上位1bitが『0』であり、下位2bitが『1 [0049] is a high-level 1bit is "0", the lower 2bit is "1
0』である場合、その組み合わせは第1オペランドsrc1と If it is 0 ", the combination is the first operand src1
3bitの即値との組み合わせ(src1+im:3)を用いたアドレッシングモードによりメモリから値を読み出し、格納先 Combination of 3bit immediate (src1 + im: 3) reads the value from the memory by addressing mode using a storage destination
dst_REGに指定されたレジスタに格納するロード命令を指定している。 It specifies a load instruction to be stored in the specified register to Dst_REG. 図11は、8bit、11bitの即値の指定が可能な比較命令/演算命令/分岐命令の命令フォーマットを示す。 Figure 11 shows 8bit, the instruction format of the specified comparison instruction / operation instruction / branch instructions capable of immediate 11bit. 本命令フォーマットにおいて即値が8bitである場合は、5bitから7bitまでに第1オペランド及び演算結果の格納に相当するレジスタの指定が可能であり、8b If immediate in the instruction format is 8bit is capable of specifying the register that corresponds to the storing of the first operand and arithmetic result until 7bit from 5bit, 8b
itから15bitまでを即値の格納に用いる。 From it to 15bit is used for the storage of immediate value. 即値が11bitである場合は、5bitから15bitまでを即値の格納に用いる。 Immediate value When a 11bit, used to 15bit to store the immediate value from 5bit. 2bitから5bitまでの4bitを用いて下段の表のようにオペレーション内容が指定される。 Operation contents are specified as the lower part of Table using 4bit from 2bit to 5bit.

【0050】下段の表は、当該4bitのうち、上位2bit The lower part of the table, out of the 4bit, the upper 2bit
と、下位2bitの組み合わせと、その組み合わせにて表現されるオペレーション内容とを示している。 If shows a combination of lower 2bit, and operations content represented by a combination thereof. 例えば上位 For example, the higher
2bitが『10』であり、下位2bitが『01』である場合、その組み合わせは第1オペランドで指定されたレジスタの値を第2オペランドと8bitの即値とを比較する比較命令を指定している。 2bit is "10", if the lower 2bit is "01", the combination is designated the comparison instruction for comparing the immediate value of the register specified by the first operand second operand and 8bit .

【0051】上位2bitが『10』であり、下位2bitが『1 [0051] is the upper 2bit is "10", the lower 2bit is "1
0』である場合、その組み合わせはオペランドと8bitの即値とを乗算する乗算命令を指定している。 If it is 0 ", the combination is designated the multiplication instruction for multiplying the immediate operand and 8bit. 上位2bitが『11』であり、下位2bitが『11』である場合、その組み合わせは11bitの即値を分岐先アドレスとした絶対アドレス指定型の分岐命令を指定している。 An upper 2bit is "11", if the lower 2bit is "11", the combination has designated absolute addressing type of the branch instruction which is a branch address the immediate 11bit. 以上の説明において、オペレーション内容は一命令語長である16bitにて表現されるため、命令メモリ100内の如何なるオペレーション内容の命令を読み出す場合でも、またどの命令を解読・実行する場合でも、それらの読出、解読、実行が均一に一サイクル内に完遂することができる。 In the above description, since the operation content is expressed by an instruction word length 16bit, even when reading the instructions of any operation contents in the instruction memory 100, also even if the decrypting and executing any instructions, their read, decode, it can run to complete the uniform in one cycle. 即ち、命令の読出・解読・実行が完遂するまでの時間が命令間でバラツキが生じないように命令フォーマットが規定されているのである。 That is, the time until complete has read and decoding and execution of instructions instruction format such that no variation between the instructions is defined. 特に図11において即値の幅を8b Particularly 8b width immediate 11
it、11bitとしていることに、この規定の意図は大きく現れている。 it, in that it is a 11bit, the intent of this provision is to appear larger. つまり指定される即値を長くすると、命令語長が24bit、32bitまで拡張されてしまう恐れがあり、 That Longer immediate to be specified, there is a possibility that the instruction word length from being extended 24bit, to 32bit,
その拡張を防ぐため、命令語長が16bitに収まるように、即値長を8bit、11bitに留めているのである。 To prevent the extension, as instruction word length is within the 16bit, it is of fastening the immediate length 8bit, the 11bit. 一つの命令の実行に、どれだけのサイクル数が必要であるかを示す単位(CPI(Cycle Per Instruction)という)にて表現すると、本I/OプロセッサのCPIは純粋に『1』であり、『命令を何回読み出したか』『命令を何回解読・実行したか』はサイクル数にて表現される。 The execution of one instruction, which is expressed by only the unit that determines the number of cycles are required for (CPI (Cycle Per Instruction) called), CPI of the I / O processor is purely "1", "have read many times the instruction" "whether the instruction was many times decode and execute" is expressed in the number of cycles.

【0052】命令読出回路10は、命令メモリ100内の読み出し先アドレスを命令メモリ100に出力する。 [0052] instruction read circuit 10 outputs a read address in the instruction memory 100 into the instruction memory 100.
命令解読制御部11(図中ではDecoder11)は、命令メモリ100が出力する命令を解読し、その解読結果に従って命令読出回路10及び演算実行部14を制御する。 Instruction decode control unit 11 (Decoder11 in the figure) decodes the instruction output from the instruction memory 100 and controls the instruction read circuit 10 and the operation performing unit 14 in accordance with the decoded result.

【0053】レジスタセット12は、32bit長の汎用レジスタ(GR)と、16bit長の汎用レジスタとをそれぞれ24 [0053] The register set 12 includes a 32bit length of the general register (GR), and a general-purpose register of 16bit length each 24
本有する。 It is inborn. このように24本ものレジスタを有しているのは、32bit長のレジスタと、16bit長のレジスタとを4本ずつ、6本の非同期イベントタスクに割り当てるためである。 Thus is the have also 24 registers, the 32bit length registers, each four a 16bit length register, in order to assign to six asynchronous event tasks. このように各非同期イベントタスク毎に8本のレジスタを割り当てることにより、タスクの切り換え時にレジスタの値を退避・復元する必要がなくなる。 By thus assigning a register of eight for each asynchronous event task, it is not necessary to save and restore the value of the register when switching tasks.

【0054】演算実行部14は、ALU,乗算器,バレルシフタを備え、命令解読制御部11による制御に基づきレジスタセット12における汎用レジスタの格納値を用いて演算を行う。 [0054] execution unit 14, ALU, multiplier, comprising a barrel shifter performs a calculation using a stored value of the general-purpose register in register set 12 based on the control by the instruction decode control unit 11. 非同期イベントタスクから別タスクへの切り換えられた際、演算実行部14はそれに対応する4 When it switched from the asynchronous event task to a different task, the calculation execution unit 14 corresponding 4
本の32bit長の汎用レジスタ、4本の16bit長の汎用レジスタを用いて、切り換え後のタスクに含まれている命令についての演算を実行するタスク管理部15は、命令解読制御部11における命令実行を監視し、各タスクに割り当てられたスレッドの時間長が経過すれば次にスレッドを割り当てるべきタスクの識別子を命令読出回路10 General-purpose registers 32bit length of this, using the general-purpose registers of four 16bit length, the task management unit 15 to perform operations on instructions contained in the switching after the task execution instruction in the instruction decode control unit 11 monitor, identifier instruction read circuit 10 of the task to be assigned the next thread if time length elapses thread assigned to each task
に出力する。 And outputs it to. (4.1)命令読出回路10は、読出先アドレスの更新をどのように行うか 命令読出回路10がどのような内部構成にて読出先アドレスの更新を行うかを図4を参照しながら説明する。 (4.1) instruction read circuit 10 will be described with reference to FIG. 4 or to update the readout address at How do if instruction read circuit 10 is what the internal configuration of the updating of the read address. 命令読出回路10の内部構成を図4に示す。 The internal configuration of the instruction read circuit 10 shown in FIG.

【0055】図4に示すように、命令読出回路10はIF [0055] As shown in FIG. 4, the instruction read circuit 10 is IF
1+1保持部20、increment回路21、IF2保持部22、D 1 + 1 holding unit 20, increment circuit 21, IF2 holding portion 22, D
ECPC保持部23、タスク別PC格納部24、セレクタ25 ECPC holding portion 23, the task-specific PC storage unit 24, a selector 25
及びセレクタ26からなり、解読ステージの前に二段の読出ステージを行うパイプライン処理を実現するよう構成されている。 And consists selector 26, and is configured to implement a pipeline processing for reading the stage of two-stage prior to the decode stage. この二段の読出ステージにおけるそれぞれの読出先アドレスを第1読出先アドレスIF1、第2読出先アドレスIF2という。 Each of the read address in the read stage of the two-stage first read address IF1, that the second read address IF2.

【0056】図4においてIF1はセレクタ26が出力したアドレスをいい、IF2はIF2保持部22が保持するアドレスをいう。 [0056] IF1 4 refers to the address selector 26 is output, IF2 refers to addresses held by the IF2 holding portion 22. 図12は、命令読出回路10内で行われるパイプライン処理を示すタイミングチャートである。 Figure 12 is a timing chart showing pipeline processing performed in the instruction read circuit 10. 以降、命令読出回路10の構成要素について言及する場合は、本タイミングチャートを引用するものとする。 Later, when referring to the components of the instruction read circuit 10 is assumed to cite the timing chart. IF1+ IF1 +
1保持部20は、カウント値を保持するためのカウント値レジスタとして用いられるものであり、タスク別PC格納部24から何れか一つの読出先アドレスが出力されると、当該アドレスをカウント初期値として保持し、そのカウント値のインクリメントがincrement回路21より行われると、インクリメント後のアドレスを最新のカウント値として保持する。 1 holder 20 is intended to be used as a count value register for holding a count value, when any one of the read address from the task-specific PC storage unit 24 is output, the address as a count initial value holding, when incrementing the count value is performed from the increment circuit 21 holds an address after the increment as the latest count value.

【0057】この際、increment回路21より新たにインクリメントされたアドレスが出力されてくると、IF1+ [0057] At this time, the newly incremented address from the increment circuit 21 comes outputs, IF1 +
1保持部20はそれまで保持していたアドレスを信号線を介してセレクタ25に出力すると共にセレクタ26 The selector 26 together with the first holding unit 20 is output via a signal line address which has been held until then the selector 25
に出力する。 And outputs it to. increment回路21は、セレクタ26により出力されたIF1をクロック信号に従ってインクリメントする。 increment circuit 21 increments the IF1 outputted by the selector 26 in accordance with the clock signal. インクリメントされたアドレスはIF1+1保持部20により保持される。 Incremented address is held by the IF1 + 1 holding portion 20. セレクタ26により出力された Output by the selector 26
IF1は、それまでIF1+1保持部20により保持されていた値であるので、increment回路21によるインクリメントにより、IF1+1保持部20が保持していたカウント値は一クロック毎にインクリメントされてゆく。 IF1 is because it is so far the values ​​held by the IF1 + 1 holding portion 20, the increment by increment circuit 21, the count value IF1 + 1 holding portion 20 holds the Yuku is incremented every one clock .

【0058】図12のタイミングチャートにおいて、読出先アドレスとして出力された命令0-0の読出先アドレスは、increment回路21によってインクリメントされる(図中のinc1,inc2,inc3参照)。 [0058] In the timing chart of FIG. 12, the read address of the instruction is output as a read address 0-0, (see inc1, inc2, INC3 in the drawing) which is incremented by the increment circuit 21. これによりIF1+1保持部20が保持する読出先アドレスは、命令0-1のアドレス、命令0-2のアドレス、命令0-3のアドレスというように更新されてゆく。 Read destination address thereby IF1 + 1 holding unit 20 holds the address of the instruction 0-1, the address of the instruction 0-2, repeatedly update and so the address of the instruction 0-3.

【0059】IF2保持部22は、クロック信号に同期して前回IF1+1保持部20により出力されたアドレスを命令を読み出すべき第2の読出先アドレスとして保持する。 [0059] IF2 holding unit 22 holds the address outputted by the previous IF1 + 1 holding portion 20 in synchronization with the clock signal as the second read address to be read out instructions. 図12のタイミングチャートでは、第2の読出先アドレスとして命令0-0のアドレス、命令0-1のアドレス、 FIG The 12 timing chart, the second read address as an instruction 0-0 address, the address of the instruction 0-1,
命令0-2のアドレス、命令0-3のアドレスが出力されていることがわかる。 Address of the instruction 0-2, it can be seen that the address of the instruction 0-3 is outputted. これらのアドレスは第1の読出先アドレスより一サイクルだけ遅れていることがわかる。 These addresses it can be seen that a delay by one cycle than the first read address. 新たなアドレスがIF1+1保持部20から出力されると、IF2保持部22はそれまで保持していたアドレスをDECPC保持部23に出力し、信号線を介してセレクタ25にも出力する。 When a new address is outputted from the IF1 + 1 holding portion 20, IF2 holding unit 22 outputs an address which has been held so far in the DECPC holding unit 23 also outputs to the selector 25 via a signal line. 出力後、IF1+1保持部20により出力されたその新たなアドレスを保持する。 After output, it retains its new address outputted by the IF1 + 1 holding portion 20.

【0060】DECPC保持部23は、前回IF2保持部22により出力されたアドレスを保持する。 [0060] DECPC holding unit 23 holds the address outputted by the previous IF2 holding portion 22. このアドレスは命令解読制御部11による解読制御の対象となる命令のアドレスと一致する。 This address matches the address of the target instruction decoding control by the instruction decode control unit 11. 新たなアドレスがIF2保持部22により出力されると、その新たなアドレスを保持して解読対象のアドレスの更新を行う。 When a new address is outputted by the IF2 holding unit 22 to update the address decryption target holds the new address. DECPC保持部23が保持するアドレスは、IF2保持部22がそれまで保持していたアドレスであり、IF2保持部22が保持するアドレスは、IF1+1保持部20がそれまで保持していたアドレスであるから、IF1+1保持部20が保持しているアドレスと比較すると、DECPC保持部23に保持されているアドレスは二命令遅れであり、IF2保持部22が保持しているアドレスと比較すると、DECPC保持部23に保持されているアドレスは一命令遅れである。 Address DECPC holding unit 23 holds is the address of IF2 holding unit 22 holds until then, the address IF2 holding unit 22 holds, with the address IF1 + 1 holding portion 20 is retained until it because there, the IF1 + 1 holding unit 20 is compared with the address held, the address held in the DECPC holding portion 23 is a two-instruction delay, when compared with the address IF2 holding portion 22 holds, address held in the DECPC holding unit 23 is an instruction delay.

【0061】タスク別PC格納部24は、タスク毎の読出先アドレスを保持する領域をその内部に有するメモリ回路或はタスク毎に設けられたアドレスレジスタである。 [0061] By Task PC storage unit 24, an address register provided for each memory circuit or task has a region for holding a read address of each task therein.
内部領域或は個々のアドレスレジスタにおいて、個々に記憶されている読出先アドレスには、3ビット長のタスク識別子がアドレスとして付されている。 In the interior region or the individual address register, the read address which is individually stored, 3 bit length of task identifier is attached as an address. 尚、タスク In addition, the task
(0)の読出先アドレスをIPC0と呼び、タスク(1)の読出先アドレスをIPC1と呼ぶ。 (0) read destination address is called the IPC0 of, referred to as the IPC1 the read destination address of the task (1). 以降タスク(2)、タスク(3)、タスク(4)、タスク(5)についても同様である。 Since task (2), task (3), task (4), The same applies to the task (5).

【0062】タスク別PC格納部24におけるこれらの読出先アドレスの読み書き動作はタスク管理部15からタスクを切り換える旨の指示(タスク切替信号chg_task_e [0062] read and write operations of the read address in the task-specific PC storage unit 24 instruction to switch tasks from the task management unit 15 (task switching signal chg_task_e
xのHigh値)が出力された場合に行われる。 High value of x) is performed when it is output. このタスク切替信号chg_task_exがHigh値である場合においてタスク管理部15よりタスク切替信号chg_task_exと共に実行が済んだタスクの3ビット長の識別子(書き込みアドレス選択信号taskid(wr_adr))及び次に実行すべきタスクの3ビット長の識別子(読み出しアドレス選択信号nxt Task This task switching signal chg_task_ex should execute from the task management unit 15 task switching signal after completion is performed with chg_task_ex of 3-bit length of the task identifier (write address selection signal taskid (wr_adr)) and the next when a High value 3-bit length identifier (the read address selection signal nxt
taskid(rd_adr))が出力されるが、タスク別PC格納部2 Although taskid (rd_adr)) is output, task-PC storage unit 2
4はこれらの信号に従った内部領域の読み書きを行う。 4 reads and writes interior region in accordance with these signals.
即ちタスク別PC格納部24は書き込みアドレス選択信号 That task-PC storage unit 24 is the write address selection signal
taskid(wr_adr)をタスク別PC格納部24内のアドレスとして解釈して、それに指示される内部領域にセレクタ2 Interprets taskid the (wr_adr) as the address of the task-specific PC storage unit 24, the selector 2 in the interior region indicated thereto
5から出力された読出先アドレスを格納する。 Storing the outputted read address from 5. 図12のタイミングチャートにおいてタスク切替信号chg_task_e Task switching signal chg_task_e in the timing chart of FIG. 12
xが立ち上がったタイミングa1,b1において読出先アドレスの書き込みa2,b2が行われる。 x write a2, b2 of the read address is carried out at timing a1, b1 that rises.

【0063】書き込みa2が行われた時期には、IF2保持部22は命令0-3のアドレスを保持しており、IF1+1保持部20はこの命令0-3のアドレスに『1』を加算したアドレス0-4を信号線を介してセレクタ25に出力している。 [0063] at a time when writing a2 has been performed, IF2 holding unit 22 holds the address of the instruction 0-3, the IF1 + 1 storage unit 20 adds "1" to the address of the instruction 0-3 and outputs to the selector 25 to the address 0-4 via a signal line. このように出力されると、アドレス0-4がタスク別P When this is output as the address 0-4 task by P
C格納部24に格納される。 It is stored in the C storage unit 24. これにより、タスク別PC格納部24内のタスク(0)に次のスレッドが巡ってくれば、タスク(0)の読出はアドレス0-4から行われる。 Thus, if the next thread me around the task (0) in the task-specific PC storage unit 24, the read task (0) is performed from the address 0-4.

【0064】書き込みb2が行われた時期には、IF2保持部22は命令1-3のアドレスを保持しており、IF1+1保持部20はこの命令1-3のアドレスに『1』を加算したアドレス1-4を信号線を介してセレクタ25に出力している。 [0064] at a time when writing b2 has been performed, IF2 holding unit 22 holds the address of the instruction 1-3, the IF1 + 1 storage unit 20 adds "1" to the address of the instruction 1-3 and outputs to the selector 25 to the address 1-4 via a signal line. このように出力すると、インクリメントされたアドレス1-4がタスク別PC格納部24に格納される。 And outputs this manner, incremented address 1-4 is stored in the task-PC storage unit 24. これにより、タスク別PC格納部24内のタスク(1)に次のスレッドが巡ってくれば、タスク(1)の読出はアドレス1-4から行われる。 Thus, if the next thread me around the task (1) of the task-specific PC storage unit 24, the read task (1) is made from the address 1-4.

【0065】また読み出しアドレス選択信号nxttaskid [0065] The read address selection signal nxttaskid
(rd_adr)がタスク管理部15より与えられると、タスク別PC格納部24は、その識別子をタスク別PC格納部24 When (rd_adr) is given from the task management unit 15, the task-specific PC storage unit 24, a task-specific PC storage unit the identifier 24
内のアドレスとして解釈して、それにより指示される内部領域から非同期イベントタスクの読出先アドレスを取り出してセレクタ26に出力する。 Interpreted as an address of the inner, thereby taking out the read address of an asynchronous event task from the interior region indicated that the selector 26. 図12のタイミングチャートにおいて、読み出しアドレス選択信号nxttaski In the timing chart of FIG. 12, the read address selection signal nxttaski
dとして識別子(1)がタスク管理部15より与えられ、ch Identifier (1) is given by the task management unit 15 as d, ch
g_task_exが立ち上がると(参照符号a3参照)、タスク別PC格納部24は、その識別子により指示されるタスク When g_task_ex rises (see reference numeral a3), the task task-PC storage unit 24, indicated by the identifier
(1)をタスク別PC格納部24内のアドレスとして解釈して、そこに格納されている読出先アドレス(1-0)を取り出してセレクタ26に出力する(参照符号a4参照)。 (1) interprets as the address of the task-specific PC storage unit 24, (see reference numeral a4) to be output to the selector 26 retrieves the read address (1-0) stored therein.

【0066】命令2-0のアドレスが読出先アドレスIF1として出力されたタイミングで、読み出しアドレス選択信号nxttaskidとして識別子(2)がタスク管理部15より与えられ、chg_task_exが立ち上がると(参照符号a5参照)、タスク別PC格納部24は、その識別子により指示されるタスク(2)の読出先アドレスとして読出先アドレス(2-0)を取り出してセレクタ26に出力する(参照符号a6参照)。 [0066] In the address of the instruction 2-0 is outputted as the read address IF1 timing, read address identifier (2) is given by the task management unit 15 as a selection signal Nxttaskid, the chg_task_ex rises (see reference numeral a5) , task-PC storage unit 24, (see reference numeral a6) to be output to the selector 26 retrieves the read address (2-0) as the read address of the task (2) indicated by the identifier.

【0067】以上のように読出先アドレスが出力されると、タスク(0)の命令は4命令だけ実行され、これに続いてタスク(1)の命令が4命令だけ実行される。 [0067] When the read address is output as described above, task (0) of the instruction is executed by four instructions, following which the instruction of the task (1) is executed by four instructions. 以降、 Or later,
タスク(2)、タスク(3)、タスク(4)、タスク(5)の命令列がそれぞれ四命令ずつ実行されてゆく。 Task (2), task (3), task (4), the instruction sequence of tasks (5) Yuku is executed by four instructions respectively. 4入力−1出力のセレクタであるセレクタ25は、、、、の信号線に伝送されるアドレスの何れかを選択的にタスク別PC 4 Input -1 selectors 25 a selector output is selectively task-PC to one of the addresses to be transmitted to the signal line ,,,,
格納部24に出力する。 And outputs to the storage unit 24. これらの〜の何れを選択するかは図5に示す出力論理表に示す通りであり、命令解読制御部11が命令の解読結果に応じて出力するselpc Choose any one of these - are as shown in the output logic table shown in FIG. 5, selpc the instruction decode control unit 11 outputs according to the decoded result of the instruction
信号に基づいてなされる。 It is made based on the signal. ここでの信号線はIF1+1保持部20の出力であり、タスク管理部15よりタスク切替信号chg_task_exがHigh値に切り換えられた場合はセレクタ25はこれを選択する。 Wherein the signal line is the output of the IF1 + 1 holding portion 20, when the task switching signal chg_task_ex is switched to the High value from the task management unit 15 selector 25 selects it.

【0068】また、の信号線はそれぞれ命令解読制御部11及び演算実行部14を接続されている。 [0068] Further, the signal lines are connected to the instruction decode control unit 11 and the operation performing unit 14, respectively. は、 It is,
絶対アドレス指定を用いた分岐命令の解読時において、 During decoding of the branch instruction with the absolute address,
分岐命令の即値を分岐先アドレスとして命令解読制御部11から取得するために選択される。 It is selected to obtain from the instruction decode control unit 11 as a raw branch instruction as a branch destination address. は、間接参照指定を用いた分岐命令の解読時において、演算実行部14 , At the time of decoding of a branch instruction using an indirect reference designation, execution unit 14
により算出されたアドレスを分岐先アドレスとして用いる際に選択される。 Selected addresses are calculated when used as a branch destination address by.

【0069】セレクタ26は、2入力−1出力のセレクタであり、タスク切替信号chg_task_exがLowの期間においてincrement回路21によるインクリメント後のアドレスを選択してIF1としてincrement回路21及びIF2保持部22に出力する。 [0069] The selector 26 is a two-input -1 output of the selector, the task switching signal chg_task_ex is output to the increment circuit 21 and IF2 holding section 22 the address after the increment by increment circuit 21 as IF1 selected in a period of Low to. タスク切替信号chg_task_exがHigh Task switching signal chg_task_ex is High
の期間においてタスク別PC格納部24に格納されている次に実行すべきタスクのアドレスをIF1としてincrement increment the address of the task to be executed next as IF1 stored in the task-specific PC storage unit 24 in the period
回路21及びIF2保持部22に出力する。 And outputs to the circuit 21 and the IF2 holding portion 22.

【0070】以上のように構成された命令読み出し回路によれば、タスク切り換え時において、これまで実行されていたタスクの読出先アドレスはセレクタ25によりタスク別PC格納部24に格納され、これに代えてタスク別PC格納部24に格納されている次のタスクのアドレスがセレクタ26によりIF1として出力される。 [0070] According to the configuration instruction read circuit as described above, at the time of task switching, read address of the task which has been executed so far is stored in the task-PC storage unit 24 by the selector 25, instead of this address of the next task stored in the task-specific PC storage unit 24 Te is output as IF1 by the selector 26. 以上の読出先アドレスの切り換えは、一サイクルにて行われ、この読出先アドレスの切り換えにおいて、I/Oプロセッサは余計な処理を行う必要がない。 The switching over of the read address, is performed in a cycle, in switching of the read destination address, I / O processor does not need to do extra processing. 割り込み信号の通知時に行われる分岐のように先行的に読み出したアドレスを無効化することもない。 Nor be disabled prior to the read address as the notification when the carried out branch of the interrupt signal. 従って、命令読出回路10による読出先アドレスの退避・復元は、オーバーヘッドの発生無しに行われる。 Therefore, saving and restoration of the read address by the instruction read circuit 10 is performed without generating overheads. (4.2)タスク管理部15は、次に実行すべき非同期イベントタスクをどのように決定するか タスク管理部15がどのような内部構成にて次に実行すべき非同期イベントタスクを決定するかを図6に示すタスク管理部15の内部構成を参照しながら説明する。 (4.2) the task management unit 15, or determines the asynchronous event task to be executed next the next asynchronous event task to be executed by how determining whether the task management unit 15 is what internal configuration diagram refers to the internal configuration of the task management unit 15 shown in 6 will be described.

【0071】図6は、タスク管理部15の内部構成を示す図である。 [0071] Figure 6 is a diagram showing the internal configuration of the task management unit 15. 図6に示すようにタスク管理部15はスレッドマネージャー61及びスケジューラ62からなり、 Task management unit 15 as shown in FIG. 6 is made from the thread manager 61 and a scheduler 62,
スレッドマネージャー61はフリップフロップ 51、 Thread manager 61 is flip-flop 51,
カウンタ52、及び比較器54から構成され、スケジューラ62はタスクID保持部71、タスクID保持部72、 Consists counter 52, and the comparator 54, the scheduler 62 is the task ID storage unit 71, the task ID storage unit 72,
タスクラウンド管理部73、及びプライオリティエンコーダ74から構成される。 Task round management unit 73, and a priority encoder 74.

【0072】フリップフロップ 51は、次に実行される命令が何番目であるかを示す整数値(これをカウント値iと呼ぶ)を保持する。 [0072] flip-flop 51, the next instruction to be executed holds an integer value indicating what number (this is referred to as the count value i). カウンタ52は、初期値が『1』に設定され、上限値が『4』に設定されたカウンタであり、クロック信号に同期してフリップフロップ 5 Counter 52, the initial value is set to "1", a counter upper limit value is set to "4", the flip-flop 5 in synchronization with the clock signal
1に保持されているカウント値を1,2,3,4,1,2,3,4というようにカウントアップする。 The count value held in 1 increments so on 1,2,3,4,1,2,3,4.

【0073】比較器54は、カウンタ52がカウントアップした値と、整数値『4』との比較を行い、もしカウンタ52のカウント値と整数値『4』とが一致すれば、 [0073] The comparator 54 compares the value of the counter 52 has counted up, it performs a comparison of the integral value "4", if if the count value and the integer value of the counter 52 and "4" matches,
タスク切替信号chg_task_exをHigh値にしてセレクタ2 Task switching signal chg_task_ex in the High value selector 2
6及びタスク別PC格納部24に出力する。 6 and outputted to the task-PC storage unit 24. このようにカウンタ52が『4』をカウントする度にタスク切替信号 Task switching signal every time this way counter 52 counts the "4"
chg_task_exがHighになることにより、セレクタ26によるタスク別PC格納部24の選択は、4サイクルにつき一回行われることになる。 By chg_task_ex is High, the selection of the task-specific PC storage unit 24 by the selector 26 will be done once per four cycles. この際、タスク別PC格納部2 At this time, task-specific PC storage unit 2
4は次にスレッドを割り当てるべきタスクの読出先アドレスをセレクタ26に出力しているから、タスク別PC格納部24からの読出先アドレスの出力は、4サイクルの実行につき一回行われることになる。 Since 4 is outputting a read address of the task to then assign a thread to the selector 26, the output of the read address from the task-specific PC storage unit 24 will be done once per run of 4 cycles .

【0074】タスクID保持部71は、命令実行のカウントがカウンタ52により行われているタスクの識別子(これをタスク識別子taskidと呼ぶ。)を保持する。 [0074] Task ID holding unit 71 holds the identifier of the task count of instruction execution is performed by the counter 52 (this is referred to as the task identifier taskid.). タスク識別子の一例を図7(a)に示す。 An example of a task identifier shown in Figure 7 (a). 図7(a)に示すように、タスク識別子は3ビットを用いて、命令メモリ100に記憶されている6つのタスクの何れか一つを指示する。 As shown in FIG. 7 (a), the task identifier with 3 bits, to indicate one of six stored in instruction memory 100 tasks. 命令実行のカウントが4回行われると、スケジューラ62においてプライオリティエンコーダ74から次にスレッドを割り当てるべきタスクのタスク識別子 When the count of the instruction execution is carried out four times, the task identifier of the task to be assigned the next thread from priority encoder 74 in the scheduler 62
taskidが出力されてくるが、この際タスクID保持部71 taskid come is output, this time the task ID storage unit 71
は、これまで保持していたタスク識別子taskidをタスクラウンド管理部73に出力し、新たに出力されてくるタスク識別子taskidを保持する。 It is by far outputs the task identifier taskid that held the task round management unit 73 holds the task identifier taskid coming outputted anew.

【0075】タスクラウンド管理部73は、タスクID保持部71においてタスク識別子がどのように更新されてきたかを監視し、6ビット長のレジスタを用いて六個のタスクのうちスレッドが割り当てられたものを管理する。 [0075] Task round management unit 73, which monitors whether been updated how the task identifier in a task ID storage unit 71, the thread of the six tasks using the 6-bit register is assigned to manage. またカウンタ52が4命令の実行をカウントすると、タスクID保持部71によりタスク識別子taskidが出力され、タスクラウンド管理部73はスレッドの割り当てが済んだタスクを示す数値(この数値をラウンド値ta Further, when the counter 52 counts the execution of four instructions, the task ID storage unit 71 outputs the task identifier taskid, numerical task round management unit 73 that indicates the task having undergone thread allocation (round value this value ta
sknと呼ぶ)をプライオリティエンコーダ74に出力する。 Referred to as skn) is output to the priority encoder 74. ラウンド値tasknの一例を図7(b)に示す。 An example of a round value taskn is shown in FIG. 7 (b). このラウンド値tasknにおいて、第1ビットが『1』であれば、タスク(1)にスレッドが割り当てられたことを示し、第1ビットが『0』であればタスク(1)がそうでないことを示す。 In this round value Taskn, if the first bit is "1", indicates that a thread is assigned to the task (1), the first bit is "0" task (1) is not the case show. タスク管理レジスタ13の第2ビットが『1』であれば、タスク(2)にスレッドが割り当てられたことを示し、第2ビットが『0』であればタスク(2)がそうでないことを示す。 If the second bit of the task management register 13 is "1", it indicates that a thread is assigned to the task (2), indicating that if the second bit is "0" Task (2) is not the case .

【0076】タスク(0)、タスク(1)にスレッドの割り当てが済めば、タスクラウンド管理部73は『000011』をプライオリティエンコーダ74に出力する。 [0076] Task (0), if smelling a thread assigned to task (1), the task round management unit 73 outputs "000011" to the priority encoder 74. またタスク The task
(0)、タスク(1)、タスク(2)にスレッドの割り当てが済めば、タスクラウンド管理部73は『000111』をプライオリティエンコーダ74に出力し、タスク(0)、タスク (0), task (1), task if thread allocation (2) is smelling, the task round management unit 73 outputs "000111" to the priority encoder 74, task (0), task
(1)、タスク(2)、タスク(3)にスレッドの割り当てが済めば、タスクラウンド管理部73は『001111』をプライオリティエンコーダ74に出力する。 (1), task (2), if smelling thread assignment to the task (3), the task round management unit 73 outputs "001111" to the priority encoder 74.

【0077】尚タスク(0)〜タスク(5)へのスレッドの割り当てが一巡すると、『111111』をプライオリティエンコーダ74に出力した後6ビット長のレジスタを『00000 [0077] Note that the task (0) the thread allocation to-task (5) makes a round, the register of six bits length after outputting the "111111" to the priority encoder 74 "00000
0』にリセットする。 Reset to 0 ". プライオリティエンコーダ74 Priority encoder 74
は、タスクラウンド管理部73が出力したラウンド値ta Is, round value ta the task round management unit 73 has output
sknを受け取り、受け取ったタスクラウンド管理部73 It receives the skn, the task round management unit 73 received
のラウンド値tasknにおいて何ビット目に『1』から『0』への反転が生じているかを検出する。 What inversion of the bit from "1" to "0" to detect whether has occurred in the round value taskn. このように『0』への反転が生じたビットを検出すると、この反転が生じたビットに割り当られているタスクのタスク識別子taskidをタスクID保持部71に出力する。 When detecting the bit inversion has occurred to such a "0", and outputs the task identifier taskid of the task that this inversion is hit split into bits generated in the task ID storage 71. 出力されたタスク識別子は、アドレス選択信号nxttaskid(rd_adr) It is outputted task identifier, the address selection signal nxttaskid (rd_adr)
としてタスク別PC格納部24に出力される。 It is outputted to the task-specific PC storage unit 24 as.

【0078】例えばタスクラウンド管理部73からラウンド値tasknとして『000011』が出力されると、プライオリティエンコーダ74はこのラウンド値tasknにおいて下位から第2ビット目に『0』への反転が生じていることを検出する(尚、最下位ビットをゼロビットと数えていることは留意されたい。)。 [0078] For example, when "000011" is outputted from the task round management unit 73 as the round value Taskn, the priority encoder 74 is the inversion of the "0" is generated from the lower to the second bit in the round value Taskn detecting a (Incidentally, it should be noted that counting least significant bit as zero bits.). この第2ビット目は図7(b)においてタスク(2)に割り当られているビットであるから、プライオリティエンコーダ74はタスク Since this second bit is the bit that has been hit assigned to task (2) in FIG. 7 (b), the priority encoder 74 tasks
(2)のタスク識別子taskidをタスクID保持部71に出力する。 (2) to the task identifier taskid in the task ID storage 71.

【0079】例えばタスクラウンド管理部73からラウンド値tasknとして『000111』が出力されると、プライオリティエンコーダ74はこのラウンド値tasknにおいて下位から第3ビット目に『0』への反転が生じていることを検出する。 [0079] For example, as the round value taskn from the task round management unit 73 is "000111" is output, the priority encoder 74 is the inversion of the "0" is generated from the lower to the third bit in the round value taskn to detect. この第3ビット目は図7(b)においてタスク(3)に割り当られているビットであるから、プライオリティエンコーダ74はタスク(3)のタスク識別子taskidをタスクID保持部71に出力する。 Since this third bit is the bit that has been hit assigned to task (3) in FIG. 7 (b), the priority encoder 74 outputs the task identifier taskid of task (3) to the task ID storage 71. ラウンド値 Round value
tasknは既にスレッドの割り当てが済んだタスクを示すから、このラウンド値tasknにおいて『0』へと反転しているビットは次にスレッドを割り当てるべきタスクがどれであるかを意味する。 Since taskn shows already task having undergone thread assignment, bits are inverted to "0" should then assigns a thread task in this round value taskn is meant Which is the. 『0』へと反転しているビットをタスク識別子taskidに変換すると、タスクID保持部7 Converting bits are inverted to "0" to the task identifier taskid, the task ID storage unit 7
1には次にスレッドを割り当てるべきタスクが格納される。 Task should then assigns a thread is stored in the 1.

【0080】タスクID保持部72は、プライオリティエンコーダ74が新たなタスク識別子taskidを出力すると、直前に出力されていたタスク識別子taskidを書き込みアドレス選択信号taskid(wr_adr)として保持して、タスク別PC格納部24に出力する。 [0080] Task ID holding unit 72, the priority encoder 74 outputs a new task identifier taskid, held as the address write task identifier taskid which has been output immediately before selection signal taskid (wr_adr), task-specific PC stores and outputs it to the part 24. 以上のように構成された第1実施形態のI/Oプロセッサによって、どのようにスレッドが割り当てられるかを図13に示す。 The I / O processor of the first embodiment constructed as described above, shows how threads are assigned in FIG. 図13 Figure 13
は、タスク(0)からタスク(5)までのタスクに割り当てたスレッドを時間順に並べることにより形成されるフレームという単位を示す。 Shows a unit called a frame which is formed by arranging the task (0) in the order a thread assigned to a task until the task (5) times.

【0081】タスク(0)〜タスク(5)にはそれぞれ4サイクルのスレッドが割り当てられるので、24サイクルのフレームが形成されることになる。 [0081] Since the task (0) to task (5), respectively 4 cycles threads of the is assigned, so that the 24 cycle frame is formed. このフレームにより、図7に示した命令列は四命令ずつ均一に実行されることになる。 The frame, the instruction sequence shown in FIG. 7 will be performed uniformly by four instructions. (5.)動作クロック数の計算について 第1実施形態のI/Oプロセッサにおいて動作クロック数がどのように計算されるかについて図55を参照しながら説明する。 (5) will be described below with reference to FIG. 55 whether the operation clock number in the I / O processor of the first embodiment, the operation clock number of calculations as it will be calculated. 図55は第1実施形態におけるスレッド割り当てにてビデオアウトタスク、オーディオアウトタスクを実行する場合に動画ストリーム、オーディオストリームがどのように処理されるかを示すタイミングチャートである。 Figure 55 is a timing chart showing how the video stream, audio stream how they are processed when performing video out tasks, audio out tasks in a thread allocation in the first embodiment. ここでビデオアウトタスク、オーディオアウトタスクのリアルタイム性を保証するには、動画ストリームを映像信号に変換するためのビデオアウトタスクはディスプレィの水平同期信号の周期に基づいた50μsec Here video out task, to ensure real-time audio out tasks, the video out tasks for converting a video stream to the video signal based on the cycle of the horizontal synchronizing signal of the Display 50μsec
において、一ライン分の画像を処理させねばならないとし、オーディオストリームを音声信号に変換するためのオーディオアウトタスクは90μsecという周期において、所定の音声ストリームを処理せねばならないとする。 In, and it must be processed the image of one line, audio out tasks for converting an audio stream into an audio signal in the cycle of 90Myusec, and must be processed predetermined audio stream.

【0082】この場合、先ず第1に上記の周期において『これだけの数の命令は最低実行しておかねばならない』という最低消化数を導出する。 [0082] In this case, first of all in the period of the "number of instructions only this must be kept to minimum execution" to derive the minimum digestion number called. ここで一ライン分の映像データを復号するには、ビデオアウトタスク内の44 Here, decoding the video data of one line is 44 video out the task
8個もの命令実行を最低消化せねばならず、一周期分の音声データを復号するには、オーディオアウトタスク内の808個もの命令実行を最低消化せねばならない。 8 also show no must instruction execution allowed minimum digestion, to decode the audio data of one cycle is must be a minimum digest instruction execution even 808 or audio out task. また、本実施形態においてCPI=1であり、命令数はサイクル数と等価であるため、最低消化数からビデオアウトタスク、オーディオアウトタスクに割り当てるべきサイクル数が448(=4×112)サイクル、808(=4×202)サイクルと決定される。 Further, in this embodiment a CPI = 1, since the number of instructions is equivalent to the number of cycles, video out tasks from the lowest digestion, number of cycles to be assigned to the audio out task 448 (= 4 × 112) cycles, 808 (= 4 × 202) is determined as a cycle.

【0083】またタスク(0)〜タスク(5)はそれぞれを四サイクルずつ実行される。 [0083] The task (0) to task (5) are executed respectively by four cycles. ここで命令読出回路10内でのセレクタ25、セレクタ26によるプログラムカウンタの切り換えによりオーバーヘッドは発生しないので、 Here selector 25 in the instruction read circuit 10, because the overhead is not generated by switching of the program counter by the selector 26,
タスク(0)〜タスク(5)の一巡に要する時間は実質24サイクルとなる。 Task (0) round time required for through Task (5) is substantially 24 cycles. 命令サイクル数は4であり、タスク総数は6 Number of instruction cycles is 4, the task total number 6
であるので、全てのタスクは、24サイクルにて4命令ずつ実行されることになる。 Since it is, all tasks will be executed by four instructions at 24 cycles.

【0084】そうすると、1サイクルに要する時間S1,S2 [0084] Then, the time required for one cycle S1, S2
は以下の式を満たさねばならない。 Should the Ne satisfy the following formula. 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 となる。 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 operating clock number of 1 ÷ S2nsec If determined from the calculation, the 54MHz = 1 ÷ 18.56nsec. 以上の計算により、ビデオアウトタスク、オーディオアウトタスクの処理完遂に最適な動作クロック数を一義的に導出することができる。 By the above calculation, the video out task, the optimum operating clock number processing complete audio out tasks can be uniquely derived. 以上のように本実施形態によれば、動作クロック数の最適な下限値を所定の周期において実行せねばならない命令の最低消化数と、 According to this embodiment as described above, the minimum digestion number of instructions the optimal lower limit of the number of operation clock needs to be executed in a predetermined cycle,
実行周期と、タスク総数とから一義的に導出することができる。 And execution period can be uniquely derived from the task total. 動作クロックの最適な下限値が求まるので、動作クロック信号を一段と高いものに定めずとも、オーディオアウトタスク、ビデオアウトタスクのリアルタイム性を保証でき、動作クロックが低速なタイプが多い民生機器に搭載される場合でも、MPEGストリームを好適に復号することができる。 Since the optimal lower limit of the operation clock is obtained, even without determining an operation clock signal to the further high, the audio-out task, can ensure real-time video out task, the operating clock is mounted on consumer devices are often slow type even if that can be suitably decode the MPEG stream.

【0085】また、複数の非同期イベントタスクを時分割多重にて実行するI/Oプロセッサを設けることにより、割込にて非同期イベント処理を処理しなくて済むので、setup部104、VLD部105、IQ/IDCT部106は逆量子化、逆離散余弦変換、動き補償の処理に専念することができる。 [0085] Further, by providing the I / O processor executing in a time-division multiplexing a plurality of asynchronous event task, since it is not necessary to handle the asynchronous event processing at the interrupt, setup unit 104, VLD unit 105, the IQ / IDCT unit 106 can concentrate inverse quantization, inverse discrete cosine transform, the processing of the motion compensation. また、I/Oプロセッサはプログラムカウンタの値を退避し、復元するためのオーバーヘッドの発生無しに高速にタスクを切り換えて実行するので、動作クロックを高速にしなくても、MPEGストリームの再生に要求されるリアルタイム性を満たすことができる。 Further, I / O processor to save the value of the program counter, so to execute switching tasks at high speed without generating overheads for restoring, without the operation clock at a high speed, is required for the reproduction of MPEG streams We can meet that real-time.

【0086】尚、本実施形態において各タスクについてのスレッドを一律に4サイクルとしたが、各タスクの処理内容に応じて、それぞれ異なる値に設定しても良い。 [0086] In the present embodiment was a uniform four cycles a thread for each task, in accordance with the processing content of each task may be set to different values.
タスク別にサイクル数を可変にする場合、図6に示したスレッドマネージャーを図56に示すように構成する。 If you vary the number of cycles for each task is configured as shown in FIG. 56 the thread manager shown in FIG.
本図においてセレクタ200は、タスク(0)からタスク The selector 200 in the figure, the task from the task (0)
(5)までの固有のサイクル数である『cycle number for (5) which is a unique number of cycles until the "cycle number for
task0』〜『 cycle number for task5』と接続され、スケジューラ62が出力したnxttaskidに応じて対応するサイクル数を択一式に比較器54に出力する。 task0 '- is connected to the "cycle number for task5" into the comparator 54 the number of cycles in an alternative expression react accordingly nxttaskid the scheduler 62 has output. 図26において次にスレッドを割り当てるべきタスクがタスク Next task to be assigned a thread is task in FIG. 26
(0)なら、セレクタ200は『cyclenumber for task0』 (0) If, selector 200 is "cyclenumber for task0"
を比較器54に出力する。 And outputs to the comparator 54. このように構成すれば、タスク(0)からタスク(5)までのそれぞれの処理負荷に応じた最適なサイクル数を各タスクに分配することができる。 According to this structure, it is possible to distribute the optimal number of cycles corresponding to each of the processing load from the task (0) to task (5) to each task.
またこのような最適なサイクル数をメモリ又はレジスタに記憶させておき、これを後日書き換えてもよい。 Also it may be stored a number of such optimum cycle in the memory or register, which may be rewritten later.

【0087】更に、本実施形態において実行すべきタスクを非同期イベントタスクに絞って説明したが、別のタスクでもよい。 [0087] Furthermore, the task to be executed in the present embodiment has been described focusing on an asynchronous event task, it may be a separate task. (第2実施形態)第1実施形態では各タスクのスレッドに割り当る命令数を一律四サイクルとしていたが、第2 (Second Embodiment) Although was a uniform four-cycle instructions number hitting split thread for each task in the first embodiment, the second
実施形態ではどれだけのサイクルを1スレッドに割り当るかを、各タスクが独自に変更できるようにした実施形態である。 Or hit divides the cycle of much in the embodiment 1 thread is an embodiment in which each task has to be independently changed. スレッドへの割り当ては、Wait_Until_Next Assigned to the thread, Wait_Until_Next
命令によりなされる。 It is made by the instruction. Wait_Until_Next命令とはスレッドにおける命令を途中で打ち切り、Wait_Until_Next命令の次順に位置する一連の命令列を次のスレッドに先送りする旨の命令である。 Abort prematurely instruction in the thread and Wait_Until_Next instruction is an instruction to the effect that postponing a series of instruction sequences located next to the order of Wait_Until_Next instruction to the next thread. 尚Wait_Until_Next命令の解読時における読み出し先アドレスの格納であるが、この際図4に示した5入力−1出力のセレクタ25は、の信号線を介してIF1+1保持部20の出力を選択してタスクPC Note is a storage of the read address during decoding of Wait_Until_Next instruction, this time 5 inputs -1 output of the selector 25 shown in FIG. 4, through the signal line to select the output of the IF1 + 1 holding portion 20 of the Te task PC
格納部24に格納する。 It is stored in the storage unit 24.

【0088】図14は、Wait_Until_Next命令(図中のW [0088] FIG. 14, Wait_Until_Next instruction (W in FIG.
UN命令)を命令0-1としてその内部に有した非同期イベントタスクの一例であり、図16は、図14の非同期イベントタスクがどのように実行されるかを示すタイミングチャートである。 UN instruction) is an example of an asynchronous event task having therein as instructions 0-1, FIG. 16 is a timing chart showing how the asynchronous event tasks in Fig. 14 as it will be executed. Wait_Until_Next命令が図14に示すように命令0-1として非同期イベントタスクの第1番目の命令として格納されている場合、この命令0-1がDEC If Wait_Until_Next instruction is stored as the first instruction of an asynchronous event task as instructions 0-1 as shown in FIG. 14, this instruction 0-1 DEC
PC保持部23に格納され、命令解読制御部11により解読されると、セレクタ25は、の信号線を介して命令 Stored in the PC holder 23, when decoded by the instruction decode control unit 11, a selector 25 via a signal line instruction
0-2の読出先アドレスをタスク別PC格納部24に格納する(図16のも同様である。)。 0-2 a read address of the store in the task-PC storage unit 24 (FIG. 16 to be the same.). その後命令解読制御部11は、命令0-2、命令0-3を無効化する(図16における『NOP』)。 Then the instruction decode control unit 11, the instruction 0-2, invalidates the instructions 0-3 ( "NOP" in Fig. 16).

【0089】ここで命令0-2は、I/Oプロセッサのローカルメモリ内のアドレスmem1の値をレジスタセット12内のレジスタr0に読み出す命令であり、命令0-3はI/Oプロセッサのローカルメモリ内のアドレスbuf1の値をレジスタr1に読み出す命令である。 [0089] Here, the instruction 0-2 is an instruction to read the value of the address mem1 in the local memory of the I / O processor into the register r0 in the register set 12, the local memory of the instruction 0-3 I / O processor the value of the address of the inner buf1 is an instruction to read the register r1. 命令0-4はレジスタr0の値とレジスタr1の値とを乗じて、その結果をレジスタr2に格納する命令であり、命令0-5は、レジスタr2の値をI/O Instruction 0-4 are multiplied by the values ​​of the register r1 of the register r0, is an instruction for storing the result in register r2, instruction 0-5 is the value of the register r2 I / O
プロセッサのローカルメモリ内のアドレスmem1に格納する命令である。 An instruction for storing the address mem1 in the local memory of the processor.

【0090】以上の四つの命令は、読出先アドレス、書込先アドレスが共にI/Oプロセッサのローカルメモリであり、命令0-0がWait_Until_Next命令であることにより、I/Oプロセッサのローカルメモリを読出先アドレス−書込先アドレスとした命令が一つのスレッドに納められたことがわかる。 [0090] The four instructions described above, a read address, the local memory of the write destination address are both I / O processor, by instruction 0-0 is Wait_Until_Next instruction, the local memory of the I / O processor read address - it can be seen that the instruction that the write destination address is placed in one thread. 図15は、Wait_Until_Next命令の命令フォーマットの一例を示す。 Figure 15 shows an example instruction format of Wait_Until_Next instructions. 図15において、本命令は図9に示したレジスタ指定型の算術演算命令の命令フォーマットを有する。 15, the instruction has an instruction format of a register-specifying arithmetic instruction shown in FIG. 本フォーマットの11bitから13b 13b from 11bit of this format
itを『010』に指定することにより、Wait_Until_Next命令のオペレーションをI/Oプロセッサは実行する。 By specifying it in the "010", the I / O processor operation of Wait_Until_Next instruction is executed.

【0091】以上のように構成された第2実施形態のI/ [0091] The second embodiment constructed as above I /
Oプロセッサによって、どのようにスレッドが割り当てられるかを図17を参照しながら説明する。 By O processor, how will be described with reference to FIG. 17 thread is assigned. タスク task
(1)、タスク(2)、タスク(3)、タスク(4),タスク(5)には四サイクルのスレッドが割り当てられる。 (1), task (2), task (3), task (4), it is assigned a thread of the four cycles to task (5). しかしタスク But the task
(0)には、wait_until_next命令が存在しているので、タスク(0)に割り当てられるスレッドは、wait_until_next A (0), because Wait_until_next instruction is present, the thread assigned to task (0), Wait_until_next
命令が配置されている位置までとなり、タスク(0)に割り当てられるスレッドは2サイクルとなる。 Becomes to a position where the instruction is located, the thread assigned to task (0) is 2 cycles.

【0092】タスク(0)〜タスク(5)が一巡した後に形成される次のフレームにおいて、タスク(1)は、他のタスクと同様4サイクルのスレッドが割り当てられる。 [0092] In the next frame the task (0) to task (5) are formed after the round, task (1) is assigned a thread other tasks as well as 4 cycles. 以上のように本実施形態によれば、同一メモリをアクセス先としたメモリアクセス命令を一つのスレッドにおいて集中して実行することができる。 According to the present embodiment as described above, can be performed concentrating on the one thread memory access instruction was accessed the same memory. (第3実施形態)第1実施形態においては、非同期イベントタスクを起動すべき事象が成立したか否かに係らず、6本の非同期イベントタスクに公平にスレッドを割り当てていたので、起動する必要がない非同期イベントタスクと、その必要がある非同期イベントタスクとが実質同時間であるという悪平等が横行していた。 In the Third Embodiment In the first embodiment, regardless of whether an event should be activated asynchronous event task is established, because it was assigned a fairly thread six asynchronous event tasks, need to start and asynchronous event task there is no, imparity that and asynchronous event task is substantially the same time that there is the need had been rampant. 第3実施形態は、非同期イベントタスクを起動すべき事象が成立しているか否かのチェックを非同期イベントタスクに行わせ、起動すべき事象が未成立のタスクについては、サイクルの割当数を削減するように制御を行う。 The third embodiment, whether the check event should be activated asynchronous event tasks are fulfilled to perform the asynchronous event task, the event to be started for not met tasks, reducing the number of allocated cycles control is performed so.

【0093】第3実施形態におけるI/Oプロセッサの内部構成を図18に示す。 [0093] FIG. 18 shows an internal structure of the I / O processor in the third embodiment. 図18においてI/Oプロセッサが命令メモリ100、命令読出回路10を備えている点は第1実施形態と変わりはない。 I / O processor instruction memory 100 in FIG. 18, that it includes an instruction read circuit 10 is not the same as the first embodiment. 第3実施形態において新規なのは、命令解読制御部11及び演算実行部14がそれぞれ、命令解読制御部81及び演算実行部84に置き換えられている点である。 New Nanoha In a third embodiment, the instruction decode control unit 11 and the operation performing unit 14 is a point that each replaced by the instruction decode control unit 81 and execution unit 84. また7本の状態監視レジスタが追加され、タスク管理部15の内部にタスク管理レジスタ13が備えられた点である。 The seven state monitoring registers are added, in that the task management register 13 in the interior of the task management unit 15 is provided.

【0094】七本の状態監視レジスタCR1〜CR7は、それぞれが5ビット長のレジスタであり、AVデコーダ内部においてI/Oプロセッサの周辺に位置する構成要素、即ち、ビデオ出力部108、バッファメモリコントローラ110、RAMコントローラ111、FIFOコントローラ1 [0094] The seven state monitoring registers CR1~CR7 is a register each 5 bits long, the components located around the I / O processor in the internal AV decoder, i.e., a video output unit 108, a buffer memory controller 110, RAM controller 111, FIFO controller 1
12等の構成要素と接続され、I/Oプロセッサの周辺部における5個の事象の成否が各ビットに反映されている(尚、ビデオ出力部108、バッファメモリコントローラ110、RAMコントローラ111、FIFOコントローラ112との接続は複雑であるため、その図示は省略している。)。 Is connected to a component of 12 such as success or failure of the five events in the peripheral portion of the I / O processor is reflected in each bit (Note that the video output unit 108, a buffer memory controller 110, RAM controller 111, FIFO controller for connection to the 112 is complicated, the illustration is omitted.).

【0095】その一例として状態監視レジスタCR1、状態監視レジスタCR2、状態監視レジスタCR3について図2 [0095] state monitoring register CR1 As an example, the state monitoring register CR2, the state monitoring register CR3 2
3を参照しながら説明する。 3 refer to will be described. 図23は、状態監視レジスタCR1、状態監視レジスタCR2、状態監視レジスタCR3のビット構成を示した図である。 Figure 23 is a state monitoring register CR1, the state monitoring register CR2, a diagram showing a bit configuration of the state monitoring register CR3. 状態監視レジスタCR1の第0ビットは、通常は『0』に設定され、バッファメモリバス121においてバッファメモリ102へのデータ転送が所定回数が行われたときのみ『1』に設定される。 0th bit of the state monitoring register CR1 is normally set to "0", the data transfer to the buffer memory 102 in the buffer memory bus 121 is set to "1" only when the predetermined number of times has been performed.

【0096】状態監視レジスタCR1の第1ビットは、通常は『0』に設定され、バッファメモリバス121に出力されたMPEGストリームのスタートコードが検出されたときのみ『1』に設定される。 [0096] The first bit of the state monitoring register CR1 is normally set to "0", the start code of the output MPEG stream to the buffer memory bus 121 is set to "1" only when it is detected. 状態監視レジスタCR1の第2ビットは、通常は『0』に設定され、バッファメモリバス121に出力されたMPEGストリームに1バイト以上の有効データの存在が確認されたときのみ『1』に設定される。 The second bit of the state monitoring register CR1 is normally set to "0" is set to "1" only when the presence of more than one byte of valid data in the MPEG stream outputted to the buffer memory bus 121 has been confirmed that.

【0097】状態監視レジスタCR1の第3ビットは、通常は『0』に設定され、バッファメモリ102に、バッファに有効ビットが3Byte以上存在するときのみ『1』に設定される。 [0097] The third bit of the state monitoring register CR1 is normally set to "0", the buffer memory 102, valid bits in the buffer is set to "1" only when there least 3 Bytes. また本ビットは、パージングタスクと、オーディオストリーム転送制御タスク、動画ストリーム転送制御タスクとの間の通信に用いられる。 This bit is also a purging task, an audio stream transfer control tasks, used for communication between the video stream transfer control task. 状態監視レジスタCR2の第0ビットは、通常は『0』に設定され、バッファメモリ102上でSDRAM300への転送をサポートする旨の要求が発せられば『1』に設定される。 0th bit of the state monitoring register CR2 is normally set to "0", request to support the transfer of the SDRAM300 on the buffer memory 102 is set to "1" if issued. また本ビットは、パージングタスクと、オーディオストリーム転送制御タスク、動画ストリーム転送制御タスクとの間の通信に用いられる。 This bit is also a purging task, an audio stream transfer control tasks, used for communication between the video stream transfer control task.

【0098】状態監視レジスタCR2の第1ビットは、通常は『0』に設定され、DMA転送が完了したときのみ『1』に設定される。 [0098] The first bit of the state monitoring register CR2 is normally set to "0" is set to "1" only when the DMA transfer is complete. 状態監視レジスタCR2の第2ビットは、通常は『0』に設定され、ビットストリームFIFO1 The second bit of the state monitoring register CR2 is normally set to "0", the bit stream FIFO1
03に対しての転送要求がある場合のみ『1』に設定される。 Only if there is a transfer request to the 03 is set to "1". 状態監視レジスタCR2の第3ビットは、通常は『0』に設定され、FIFOコントローラ112内部の制御レジスタが更新されれば、『1』に設定される。 The third bit of the state monitoring register CR2 is normally set to "0", FIFO controller 112 inside the control registers when it is updated, is set to "1". 状態監視レジスタCR3の第0ビットは、通常は『0』に設定され、バッファメモリ102がDMA_READY状態となれば『1』に設定される。 0th bit of the state monitoring register CR3 is normally set to "0", the buffer memory 102 is set to "1" if the DMA_READY state.

【0099】状態監視レジスタCR3の第1ビットは、通常は『0』に設定され、SDRAM300へのDMA転送が完了すれば『1』に設定される。 [0099] The first bit of the state monitoring register CR3 is normally set to "0" is set to "1" if DMA transfer is completed to the SDRAM 300. 状態監視レジスタCR3の第2 Second state monitoring register CR3
ビットは、通常は『0』に設定され、外部に接続されたディスプレィ装置における水平帰線信号の立ち下がりにて『1』に設定される。 Bit is normally set to "0" is set to "1" at the fall of the horizontal blanking signal in the Display apparatus connected to the outside.

【0100】状態監視レジスタCR3の第3ビットは、通常は『0』に設定され、外部に接続されたディスプレィ装置におけるビデオ信号が水平ブランキング期間になると『1』に設定される。 [0100] The third bit of the state monitoring register CR3 is normally set to "0" is set to the video signal in the connected Display device outside is horizontal blanking period "1". 状態監視レジスタCR3の第4ビットは、通常は『0』に設定され、ビデオアウトタスクに対する処理要求が発生した場合のみ『1』に設定される。 The fourth bit of the state monitoring register CR3 is normally set to "0", the processing request for the video out task is set to "1" only if it occurs.

【0101】以上のように3本の状態監視レジスタは、 [0101] three or more of the state monitoring register as is,
AVデコーダ内の各バッファやコントローラの制御状態を表している。 It represents a control status of each buffer and controller in the AV decoder. 他の状態監視レジスタも同様であり、7本の状態監視レジスタによりI/Oプロセッサは、各非同期イベントタスクは、自身の起動要因となる各種事象が成立しているか否かを監視することができる。 The same applies to other state monitoring registers, I / O processor by seven state monitoring registers, each asynchronous event task, it is possible to various events that the activation source itself monitors whether satisfied . 演算実行部84は、演算実行部14と同様の機能を有した構成である。 Operation performing unit 84 has a configuration having the same function as the execution unit 14. 演算実行部14と比較して第1に新規なのは命令解読制御部81からCR1〜CR7といった各状態監視レジスタに付された番号と即値とを受け取り、指定された状態監視レジスタの保持値と受け取った即値との比較のための減算を行う点である。 Receive the first compared to the execution unit 14 attached from the new Nanoha instruction decoding control unit 81 to each state monitoring register such CR1~CR7 numbers and the immediate, received and held value of the designated state monitoring register is that performing subtraction for comparison with the immediate. この減算結果に応じてゼロフラグ、キャリーフラグをオン/オフして状態監視レジスタの保持値と即値との一致、不一致、大小を命令解読制御部81に知らせる。 The subtraction result depending on the zero flag, consistent with retention value of the state monitoring register the carry flag is ON / OFF and immediate, informing mismatch, large and small in the instruction decode control unit 81.

【0102】上記の通知において命令解読制御部81は現在実行中の演算を無効化する旨の信号を出力し得るが、これを受け取ると演算実行部84は汎用レジスタへの値の格納を中断する。 [0102] instruction decoding control unit 81 in the notification of the above is capable of outputting a signal indicating disabling the operation of the currently executing, execution unit 84 upon receipt of this interrupt the storage of the values ​​of the general-purpose register . 命令解読制御部81は、命令解読制御部11と同様の機能を有した構成であるが、命令解読制御部11と異なるのは命令解読制御部81は事象待ちループを形成し得る命令を命令メモリ100から読み出して、これを解読した際にCR1〜CR7といった各状態監視レジスタに付された番号と即値とを演算実行部84 Instruction decode control unit 81, the instruction is decrypted a configuration having the same function as the control unit 11, the instruction decode control unit 11 differs from the instruction decode control unit 81 commands the instruction capable of forming an event wait loop memory It is read out from the 100, operation executing unit 84 and the numbers and immediate value given to each state monitoring register such CR1~CR7 upon decrypting it
に出力する。 And outputs it to. 尚、事象待ちループを構成する命令とは、 Note that the instruction constituting an event wait loop,
以下の{例1}の旨の内容である。 The contents of effect of the following {Example 1}. 状態監視レジスタの指定と即値とを演算実行部84に出力した後、演算実行部84がゼロフラグ、キャリーフラグにより保持値と即値との一致、不一致、大小を命令解読制御部81に知らせると、命令解読制御部81はこれを参照し、もし保持値と即値との不一致が通知されれば、タスク管理レジスタ13に事象不成立を示す信号を出力し、この次の命令の実行結果を無効化する旨の信号を演算実行部84に出力して読出先アドレスの値を先に進めないよう、命令読出回路10に通知する。 After outputting the designation and an immediate state monitoring register in execution unit 84, execution unit 84 is zero flag, agreement between retention values ​​and immediate by the carry flag, mismatch, when notifying the magnitude to the instruction decode control unit 81, the instruction that decryption control unit 81 refers to this, if it is notified mismatch between the holding value and the immediate value, which outputs a signal indicating an event is not satisfied in the task management register 13, to disable the execution result of the next instruction outputs a signal to the execution unit 84 so as not proceed with the value of the read address previously informs the instruction read circuit 10. もし保持値と即値との不一致が通知されれば、タスク管理レジスタ13に事象成立を示す信号を出力する。 If you are notified mismatch between the holding value and the immediate, and outputs a signal indicating an event satisfied in the task management register 13. {例1} 命令 事象iの成立の真偽を判定し、事象iの成立が偽ならば読出先アドレスを先には進めない。 {Example 1} to determine the authenticity of formation of the instruction event i, not proceed to previously read address established if false events i.

【0103】また本命令のニーモニックを{例2}に示す。 [0103] The mnemonic of the instructions shown in {Example 2}. {例2} cmp_and_wait cr_statei,即値 {例2}において第1オペランドにcr_statei(i=0,1,2, {Example 2} cmp_and_wait cr_statei, cr_statei the first operand in the immediate {Example 2} (i = 0,1,2,
3,4・・・7)が記述されているのは、I/Oプロセッサにおける7本の状態監視レジスタのうち何れかを指示できることを意味する。 3,4 ... 7) of is described means that it is possible to instruct the one of the state monitoring register of seven in the I / O processor.

【0104】この第1オペランドにおける状態監視レジスタの指定と、第2オペランドにおける即値指定とを組み合わせて、35もの事象のうち、任意のもの成否を確認することができる。 [0104] and the given condition monitoring register in the first operand, combined with the immediate value specified in the second operand, may be among the 35 ones event, it confirms any of success. 上記命令を以降の説明ではCmp_And_ Cmp_And_ in the following description of the above instructions
Wait命令と呼ぶ。 It referred to as the Wait instruction. また上述した事象待ちループは、この The wait for event loop described above, this
Cmp_And_Wait命令の第1オペランド、第2オペランドにおいて指定された事象の成否が何度も否と判定されることにより発生することはいうまでもない。 The first operand of Cmp_And_Wait instruction, it goes without saying that the success or failure of the specified events in the second operand is generated by being determined to not many times.

【0105】第3実施形態における変更が加えられた命令読出回路10の構成を図19に示す。 [0105] FIG. 19 shows configuration of the instruction read circuit 10 to change in the third embodiment is applied. 図19において命令読出回路10がIF1+1保持部20、increment回路2 Instruction read circuit 10 IF1 + 1 holding portion in FIG. 19 20, increment circuit 2
1、IF2保持部22、DECPC保持部23、タスク別PC格納部24、セレクタ25、セレクタ26を備えている点は第1実施形態と差違はない。 1, IF2 holding portion 22, DECpc holding portion 23, the task-specific PC storage unit 24, a selector 25, that it includes a selector 26 is not first embodiment and differences. 命令読出回路10において新規なのは、DECPC保持部23の出力段に接続されたフリップフロップ 27である。 New Nanoha, a flip-flop 27 connected to the output stage of the DECPC holding portion 23 in the instruction read circuit 10.

【0106】フリップフロップ 27は、Cmp_And_Wait [0106] flip-flop 27, Cmp_And_Wait
命令が指定した事象が不成立である場合に備え、命令解読制御部81が解読中の命令の読出先アドレスをセレクタ25に出力できるようDECPC保持部23の値を保持している。 In case the instruction is designated event is not satisfied, the instruction decode control unit 81 has the value of the DECPC holding portion 23 so that the read address of the instruction in decode can be output to the selector 25. もしプログラムカウント値を戻す旨の指示が命令解読制御部11より与えられれば、フリップフロップ 27はその保持値をの信号線を通じてセレクタ25 If given instruction to return the program counter value is from the instruction decode control unit 11, a selector 25 through a signal line of the flip-flop 27 is the hold value
に出力し、セレクタ25は、このフリップフロップ 2 And outputs it to the selector 25, the flip-flop 2
7の保持値をタスク別PC格納部24に格納するよう、タスク別PC格納部24の入力元をの信号線に切り換える。 To store the 7 holds values ​​of the task-specific PC storage unit 24, switches the signal line of the input source of the task-specific PC storage unit 24. 第3実施形態における命令読出回路の出力論理表を図20に示す。 The output logic table of the instruction read circuit in the third embodiment shown in FIG. 20.

【0107】図26は、Cmp_and_Wait命令の解読時のフレームにおけるI/Oプロセッサの構成要素についてのタイミングチャートであり、本タイミングチャートにおけるフリップフロップ27の役割について説明する。 [0107] Figure 26 is a timing chart for the components of the I / O processor in a decode time of a frame of Cmp_and_Wait instruction, described the role of the flip-flop 27 in the timing chart. 図2 Figure 2
6においてフリップフロップ 27が保持値としてCmp_a Cmp_a flip-flop 27 as a hold value at 6
nd_Wait命令のアドレスに相当する命令0-0のアドレスを参照符号a7に示すように出力すると、命令0-0のアドレスはIPC0としてタスク別PC格納部24に格納される。 When outputting the address of the instruction 0-0, which corresponds to the address of nd_Wait instruction as indicated by reference numeral a7, the address of the instruction 0-0 is stored in the task-PC storage unit 24 as IPC0. これによりタスク別PC格納部24には、IPC0としてCmp_an Thus the task-specific PC storage unit 24, Cmp_an as IPC0
d_Wait命令のアドレスが格納されることになる。 Address d_Wait instruction so that is stored.

【0108】本実施形態におけるタスク管理部15の内部構成を図21に示す。 [0108] The internal configuration of the task management unit 15 in the embodiment shown in FIG. 21. 図21に示すタスク管理レジスタ13は、事象待ちループ(以降wait状態と呼ぶ)に陥ったタスクを個別に管理するためのビットが割り当られたレジスタである。 Figure task management register 13 shown in 21 is a register in which bits are split hit for managing tasks fell to the event wait loop (hereinafter referred to as the wait state) separately. タスク管理レジスタ13は命令解読制御部81から事象不成立を示す信号が通知されると、 When the task management register 13 is a signal indicating an event is not satisfied from the instruction decode control unit 81 is notified,
タスクID保持部72が保持しているタスク識別子taskid Task identifier taskid to the task ID storage 72 holds
を参照し、そのタスク識別子taskidに対応するビットを『1』に切り換える。 It refers to the switch the bits corresponding to the task identifier taskid to "1". 逆に事象成立を示す信号が通知されると、タスクID保持部72が保持しているタスク識別子taskidを参照し、そのタスク識別子taskidに対応するビットを『0』に切り換える。 When a signal indicating an event established reverse is notified with reference to the task identifier taskid to the task ID storage 72 holds, it switches the bit corresponding to the task identifier taskid to "0".

【0109】図22は、タスク管理レジスタ13におけるwait状態タスクの管理用のビット構成を示す。 [0109] Figure 22 shows the bit configuration for managing the wait state tasks in the task management register 13. 本図において第0ビットが『1』であれば、タスク(0)がwait状態であることを示し、第0ビットが『0』であればタスク(0)がそうでないことを示す。 If in this figure the zeroth bit is "1", indicates that the task (0) is the wait state, indicating that if the 0th bit is "0" task (0) is not. また本図において第1 The first in this figure
ビットが『1』であれば、タスク(1)がwait状態であることを示し、第1ビットが『0』であればタスク(1)がそうでないことを示す。 If the bit is "1", indicates that the task (1) is the wait state, indicating that if the first bit is "0" task (1) is not. タスク管理レジスタ13の第2ビットが『1』であれば、タスク(2)がwait状態であることを示し、第2ビットが『0』であればタスク(2)がそうでないことを示す。 If the second bit of the task management register 13 is "1", it indicates that the task (2) is the wait state, indicating that if the second bit is "0" Task (2) is not. タスク管理レジスタ13による事象待ちループの管理により、複数のタスクにおいて同時多発した事象待ちループを個別に管理することができる。 The management of the event wait loop by the task management register 13, it is possible to manage concurrent multiple of events waiting loop in a plurality of tasks individually.

【0110】図26のタイミングチャートにおいて、命令0-0がCmp_and_Wait命令であると解読され、事象が不成立であると判定されたものとする。 [0110] In the timing chart of FIG. 26, the instruction 0-0 is decoded to be Cmp_and_Wait instruction, it is assumed that event is determined to be not established. この場合、命令解読制御部81はタスク(0)が事象成立待ち状態になった旨を参照符号a8に示すように通知する。 In this case, the instruction decode control unit 81 notifies to the effect that task (0) is turned event establishment wait state to the reference numerals a8. そうすると、タスク管理レジスタ13はタスク(0)のタスク識別子に対応するビットを参照符号a9に示すように『1』に設定する。 Then, the task management register 13 is set so as to indicate a bit corresponding to the task identifier of the task (0) in the reference numerals a9 to "1".

【0111】続いて『事象成立待ち時』、『事象成立時』、『事象成立時以降』においてタスク管理レジスタ13に割り当てられた各ビットがどのように設定されるかについてタイミングチャートを参照しながら説明する。 [0111] Subsequently, "Event-established waiting", "Event-satisfied" with reference to whether the bits assigned to the task management register 13 as it will be set to a timing chart in the "after the time event satisfied" explain. 図27に事象成立待ち時、図28に事象成立時、図29に事象成立時以降におけるタイミングチャートを示す。 Event-established waiting 27, when an event satisfied in FIG. 28 shows a timing chart in the later time of event satisfied in FIG 29.

【0112】タスク(0)におけるCmp_and_Wait命令が成立を待っていた事象が図28において成立したとする。 [0112] and events Cmp_and_Wait instruction in task (0) was waiting for the establishment is established in Figure 28.
この場合、命令解読制御部81は事象が成立した旨を参照符号d1に示すように通知する。 In this case, the instruction decode control unit 81 notifies to the effect that event is satisfied reference numerals d1. そうすると、タスク管理レジスタ13はタスク(0)のタスク識別子に対応するビットを参照符号d2に示すように『0』に設定する。 Then, the task management register 13 is set so as to indicate a bit corresponding to the task identifier of the task (0) in the reference numerals d2 to "0". 図21を参照して、第3実施形態におけるスレッドマネージャー61の内部構成について説明する。 Referring to FIG. 21, describes the internal structure of the thread manager 61 in the third embodiment. スレッドマネージャー61においてフリップフロップ 51、カウンタ52、比較器54を備えている点は第1実施形態と差違は無い。 Flip-flop 51 in the thread manager 61, the counter 52, difference in the first embodiment that it includes a comparator 54 no. 図21において新規なのはIDコンバータ53 New Nanoha ID converter in FIG. 21 53
及びセレクタ55である。 And a selector 55.

【0113】IDコンバータ53は、タスクID保持部72 [0113] ID converter 53, the task ID storage unit 72
に次にスレッドを割り当てるべきタスクの識別子が出力されると、タスク管理レジスタ13においてwait状態に設定されているタスクと次にスレッドを割り当てるべきタスク識別子taskidとが一致しているかを判定し、もし一致していればセレクタ55にHigh値を出力し、不一致ならばセレクタ55にLow値を出力する。 Then the identifier of the task to be assigned a thread is outputted, it is determined whether the task identifier taskid to be assigned then thread a task that is set in the wait state in the task management register 13 matches, if the if they coincide outputs High value to the selector 55, and outputs a Low value to the selector 55 if discrepancies.

【0114】セレクタ55は、IDコンバータ53が出力した信号のHigh値、Low値に応じて、『2』或は『4』 [0114] The selector 55, High value of the signal ID converter 53 is output, in accordance with the Low value, "2" or "4"
の数値を択一式に比較器54に出力する。 And outputs to the comparator 54 of the numeric alternative expression. 図26において次にスレッドを割り当てるべきタスクがタスク(0)なら、参照符号a10においてセレクタ55にLow値が出力されるので参照符号a12に示すように、セレクタ55は『4』を比較器54に出力する。 Next task to be assigned a thread if the task (0) in FIG. 26, since the Low value to the selector 55 at reference numeral a10 is output as shown by reference numeral a12, the selector 55 to the comparator 54 to "4" Output. しかし図26の参照符号a9においてタスク(0)についてのビットが『1』に設定されて、図27の参照符号g1に示すようにセレクタ55 However, in the reference numeral a9 in FIG. 26 Task (0) bit for is set to "1", the selector 55 as shown by reference numeral g1 in Fig. 27
にHigh値が出力されると、セレクタ55は参照符号g2に示すように『2』を比較器54に出力する。 When High value is output to the selector 55 outputs to the comparator 54 to "2" as shown by reference numeral g2.

【0115】図28の参照符号d2においてタスク(0)についてのビットが『0』に設定されて、図29において参照符号g5に示すようにセレクタ55にHigh値が出力されると、セレクタ55は参照符号g6に示すように『4』 [0115] In reference numeral d2 in FIG. 28 Task (0) bit for is set to "0", the High value to the selector 55 as indicated by reference numeral g5 in Fig. 29 is outputted, the selector 55 as shown in the reference numeral g6 "4"
を比較器54に出力する。 And outputs to the comparator 54. セレクタ55が『2』又は『4』の数値を択一的に比較器54に出力することにより、2サイクルのスレッド、4サイクルのスレッドの何れか一方が各タスクに割り当てられる。 By the selector 55 outputs the alternatively comparator 54 the value of "2" or "4", the 2-cycle threads, 4 one of the cycle of the thread is assigned to each task. セレクタ55が『2』を出力した際には、その第2番目の命令を無効化するので、その結果、1サイクルのスレッドが割り当てられることになる。 When the selector 55 has output "2", since the invalidate the first second instruction. As a result, the thread cycle is allocated.

【0116】タイミングチャートの時間軸に沿って、図26から図29までのタイミングチャートに示されている命令読出回路10の構成要素及びタスク管理部15の構成要素の動作について説明する。 [0116] along the time axis of the timing chart, the operation of the components of the components and task management unit 15 of the instruction read circuit 10 shown in the timing chart of FIGS. 26 to 29 will be described. 初期状態においてタスク管理レジスタ13のビットはオールゼロであるものとする。 Bit of the task management register 13 in the initial state is assumed to be all zeros. そうして図26においてタスク(0)から命令の読み出しが開始されると、タスク(0)についてのビットはタスク管理レジスタ13において『0』に設定されているので、参照符号a12に示すようにセレクタ55はカウンタの上限値として『4』を出力する。 Then a read instruction from the task (0) is started in FIG. 26, since the bit for task (0) is set to "0" in the task management register 13, as shown in reference numeral a12 the selector 55 outputs "4" as the upper limit value of the counter. カウンタの上限値が『4』に設定されたので、タスク(0)を四サイクル実行しようとするが、命令0-0がCmp_and_Wait命令であるので、参照符号a7に示すようにタスク別PC格納部2 Since the upper limit value of the counter is set to "4", task (0) tries to run four-cycle, the instruction 0-0 is because it is Cmp_and_Wait instruction, task-PC as shown by reference numeral a7 storage unit 2
4に命令0-0の読出先アドレスを書き込む。 Writes the read destination address of the instruction 0-0 to 4. それと共に、参照符号a8,a9に示すようにCmp_and_Wait命令の実行時においてタスク管理レジスタ13の第0ビットを『1』に設定する。 At the same time, it is set as shown by reference numeral a8, a9 during execution of Cmp_and_Wait instruction zeroth bit of the task management register 13 to "1". この設定により、タスク(0)は事象成立待ちとなる。 With this setting, task (0) is an event established waiting. このようにビットを設定した後、タスク After setting the bit in this way, task
(1)、タスク(2)、タスク(3)、タスク(4)、タスク(5)の実行が済んで次のフレームに移行したものとする。 (1), task (2), task (3), task (4), it has done so execution of the task (5) shall be shifted to the next frame.

【0117】事象成立待ち状態においてタスク管理レジスタ13のビットはタスク(0)のみが『1』であり、その他のビットはゼロであるものとする。 [0117] The bits of the task management register 13 in the event establishment wait state is only the task (0) is "1", and the other bits assumed to be zero. そうして図27においてタスク(0)から命令の読み出しが開始されると、 Then the reading of the instruction is initiated from the task (0) in FIG. 27,
タスク(0)についてのビットはタスク管理レジスタ13 The bits of the task (0) task management register 13
において『1』に設定されているので、参照符号g2に示すようにセレクタ55はカウンタの上限値として『2』 "1" because the is set, the selector 55 as shown by reference numeral g2 is the upper limit value of the counter "2" in
を出力する。 To output. カウンタの上限値が『2』に設定されたので、タスク(0)を2サイクル実行しようとするが、命令0 Since the upper limit value of the counter is set to "2", it tries to task (0) 2-cycle execution, instruction 0
-0がCmp_and_Wait命令であるので、タスク別PC格納部2 Since -0 is a Cmp_and_Wait instruction, task-PC storage unit 2
4に命令0-0の読出先アドレスを書き込む。 Writes the read destination address of the instruction 0-0 to 4. このような書き込み後、タスク(1)、タスク(2)、タスク(3)、タスク(4)、タスク(5)の実行が済んで次のフレームに移行したものとする。 After such writing, task (1), task (2), task (3), task (4), it has done so execution of the task (5) shall be shifted to the next frame.

【0118】次のフレームにおいて事象が成立したものとする。 [0118] it is assumed that the event has been established in the next frame. 図28においてタスク(0)から命令の読み出しが開始されると、タスク(0)についてのビットはタスク管理レジスタ13において『1』に設定されているので、参照符号g4に示すようにセレクタ55はカウンタの上限値として『2』を出力する。 When the reading of the instruction is started from the task (0) in FIG. 28, since the bit of the task (0) is set to "1" in the task management register 13, a selector 55 as shown by reference numeral g4 is outputs "2" as the upper limit value of the counter. カウンタの上限値が『2』に設定されたので、タスク(0)を2サイクル実行しようとする。 Since the upper limit value of the counter is set to "2", it attempts to task (0) 2-cycle execution.

【0119】命令0-0であるCmp_and_Wait命令の実行時において、事象成立が確認されるので、参照符号d1,d2 [0119] At the time of Cmp_and_Wait instruction is an instruction 0-0 run, because the event establishment is confirmed, the reference numeral d1, d2
に示すようにCmp_and_Wait命令の実行時においてタスク管理レジスタ13の第0ビットを『0』に設定する。 Setting the 0th bit of the task management register 13 to "0" at the time of execution of Cmp_and_Wait instruction as shown in. この設定により、タスク(0)は事象成立待ちから解放される。 This setting task (0) is released from the event met waiting. このようにビットを設定した後、タスク(1)、タスク(2)、タスク(3)、タスク(4)、タスク(5)の実行が済んで次のフレームに移行したものとする。 After thus setting the bit, task (1), task (2), task (3), task (4), done so execution of the task (5) shall be shifted to the next frame.

【0120】図29に示す事象成立以降のフレームにおいては、タスク(0)についてのビットがタスク管理レジスタ13において『0』に設定されているので、参照符号g6に示すようにセレクタ55はカウンタの上限値として『4』を出力する。 [0120] In the subsequent frames events satisfied shown in FIG. 29, the task (0) the bit of the is set to "0" in the task management register 13, a selector 55 as shown by reference numeral g6 is counter outputs "4" as the upper limit. カウンタの上限値が『4』に設定されたので、タスク(0)を4サイクル実行する。 Since the upper limit value of the counter is set to "4", and task (0) 4 cycles performed. 以上のように構成された第3実施形態のI/Oプロセッサによって、どのようにスレッドが割り当てられるかを図24 The I / O processor of the third embodiment configured as described above, FIG. 24 how threads are assigned
(a)〜図24(d)を参照しながら説明する。 (A) it will be described with reference to-FIG 24 (d).

【0121】図24(a)においてタスク(0)、タスク [0121] In FIG. 24 (a) task (0), task
(3)、タスク(4)、タスク(5)は何れもメモリ転送制御タスクであり、その第1番目の命令がCmp_and_Wait命令であるものとする。 (3), task (4), task (5) are both a memory transfer control tasks, it is assumed that the first instruction is a Cmp_and_Wait instruction. ここで図24(b)の状態では、これらのCmp_and_Wait命令が待機している事象が未成立であるものとすると、タスク(0)、タスク(3)〜タスク(5)に2サイクルのスレッドが割り当ており、第2命令は無効化されているが、タスク(1)、タスク(2)には4サイクルのスレッドが割り当てられる。 Here, in the state of FIG. 24 (b), the assuming events these Cmp_and_Wait instruction is waiting is not met, the task (0), the thread 2 cycles task (3) to task (5) and assignment, the second instruction is being invalidated, task (1) is assigned a thread 4 cycles to task (2).

【0122】図24(c)においてタスク(0)〜タスク [0122] (0) Task In FIG. 24 (c) ~ task
(5)が何回か巡回し、タスク(0)のCmp_and_Wait命令が待っていた事象のみが成立したものとする。 (5) it is circulated several times, it is assumed that the only events that Cmp_and_Wait instruction was waiting task (0) is satisfied. そうすると当該事象が成立したフレームにおいては、タスク(3)〜タスク(5)には依然として2サイクルのスレッドが割り当てられており、第2命令は無効化されているが、タスク Then in the frame in which the event is satisfied, the task (3) to have still two cycles thread assigned to task (5), the second instruction is disabled, the task
(0)は事象が成立したので第2命令は実行される。 (0) is the second instruction because events is satisfied is executed.

【0123】図24(d)において事象j0の成立以降のフレームにおいては、タスク(0)には、タスク(1)、タスク(2)と同一の4サイクルのスレッドが割り当てられる。 [0123] In the frame after establishment of FIG 24 (d) in the event j0 is the task (0), task (1), the thread of the same four cycles is assigned a task (2). 図25は、Cmp_and_Wait命令の命令フォーマットの一例を示す。 Figure 25 shows an example instruction format of Cmp_and_Wait instructions. 図25において、5bitから7bitまでの3bit In Figure 25, 3bit from 5bit to 7bit
を用いて7本の状態監視レジスタのうち何れかを指定でき、11bitから15bitまでを用いて 5bit長の即値を格納できる。 Can specify one of seven state monitoring registers with, it can be stored as a raw 5bit length using the 11bit to 15bit. 本フォーマットの9bitから10bitを用いてオペレーション内容の指定が可能である。 It is possible to specify the operation contents by using a 10bit from 9bit of this format. この2bitを『10』 This 2bit "10"
に指定することにより、Cmp_and_Wait命令のオペレーションをI/Oプロセッサは実行する。 By specifying the, I / O processor operations Cmp_and_Wait instruction executes. また、この2bitを『0 In addition, this 2bit "0
0』に指定することにより、七本の状態監視レジスタのうち、一本のものの値と5bit即値との比較命令のオペレーションをI/Oプロセッサは実行する。 By designating 0 ", among the seven pieces of state monitoring registers, I / O processor operations compare instructions between the value and the 5bit immediate ones of one executes.

【0124】以上のように本実施形態によれば、メモリアクセスが可能な状態を待っているメモリ転送制御タスクにより短い時間長のスレッドを割り当ることにより、 [0124] According to this embodiment as described above, by hitting dividing the time length shorter thread by the memory transfer control tasks waiting for ready for memory access,
他のタスクの進捗を向上させることができる。 It is possible to improve the progress of other tasks. (第4実施形態)第4実施形態は、ディスプレィの水平ブランキング期間、垂直ブランキング期間において、ビデオアウトタスクにより多くのスレッドを割り当てる技術に関する。 (Fourth Embodiment) The fourth embodiment, the horizontal blanking period of the Display, in the vertical blanking period, a technique for allocating a number of threads by the video out task.

【0125】スレッドの増加を行うI/Oプロセッサは、 [0125] I / O processor to perform the increase of thread,
第1実施形態におけるタスク管理部15の構成に図30 Figure to the configuration of the task management unit 15 in the first embodiment 30
〜図31に示す変更を加えて実現される。 It is implemented with modifications shown in to 31. 第4実施形態におけるI/Oプロセッサは、命令メモリ100、命令読出回路10、命令解読制御部81、演算実行部84、タスク管理部15を備えている点は第3実施形態と変わりはない。 I / O processor in the fourth embodiment, the instruction memory 100, the instruction read circuit 10, the instruction decode control unit 81, execution unit 84, is that it includes a task management unit 15 is not the same as the third embodiment. 第4実施形態において新規なのは、タスク管理レジスタ13が緊急状態遷移許可信号iexecmodeを監視している点である。 New Nanoha In the fourth embodiment, in that the task management register 13 monitors an emergency state transition permission signal Iexecmode.

【0126】第4実施形態におけるタスク管理部15の内部構成を図30に示す。 [0126] FIG. 30 the internal configuration of the task management unit 15 in the fourth embodiment. 図30におけるタスク管理レジスタ13における3ビットは、タスク管理レジスタ1 3 bits in the task management register 13 in FIG. 30, the task management register 1
3内の3ビットを用いて緊急扱いを要するタスクの識別子が指定される。 Identifier of the task which requires emergency treatment with 3 bits in 3 is designated. 当該3ビットにおいて六個のタスクのうちどのタスクを緊急扱いするかは、上記緊急状態遷移許可信号iexecmodeがどのような内容の信号であるかに応じて適宜変更する。 Or emergency handle which tasks among the six tasks in the 3 bits is changed according to whether the signal of any content the emergency state transition permission signal iexecmode is. 本実施形態では、緊急状態遷移許可信号iexecmodeは水平ブランキング期間、垂直ブランキング期間等に相当し、ビデオアウトタスクの識別子をタスク管理レジスタ13における3ビットに指定している。 In the present embodiment, the emergency state transition permission signal iexecmode horizontal blanking period corresponds to a vertical blanking period or the like, and specifies an identifier of video out tasks in 3-bit in the task management register 13.

【0127】何れかのタスクを緊急扱いを要するタスクとしてタスク管理レジスタ13に登録するかは、何れのタスク内にemergecy命令が含まれているかをタスク管理レジスタ13が参照することにより、決定されるものとする。 [0127] or to register the task management register 13 as a task requiring urgent handling any task by referencing the task management register 13 if there is any emergecy instruction in any of the task is determined and things. 命令解読制御部81が次に実行すべき命令を解読した際、その解読結果がemergecy命令であれば、タスク管理レジスタ13は当該命令を含むタスクを緊急扱いを要するタスクとしてその識別子を保持する。 When instruction decoding control unit 81 decodes the instruction to be executed next, the decoding result is if emergecy instruction, the task management register 13 holds the identifier as a task of urgency handle tasks including the instruction.

【0128】第4実施形態におけるスケジューラ62の内部構成を図31に示す。 [0128] FIG. 31 shows an internal configuration of the scheduler 62 in the fourth embodiment. 図31においてスケジューラ62がタスクID保持部72を備えている点は第1実施形態と差違は無い。 The difference with the first embodiment that the scheduler 62 comprises a task ID storage unit 72 in FIG. 31 no. 図31において新規なのは、タスクラウンド管理部73及びプライオリティエンコーダ74がそれぞれ、タスクラウンド管理部75及びプライオリティエンコーダ80に置き換えられている点である。 New Nanoha, the task round management unit 73 and the priority encoder 74, respectively, in that are replaced by the task round management unit 75 and the priority encoder 80 in FIG. 31. またコンバータ76、緊急タスクマスク部77及びタスクID The converter 76, an emergency task masking unit 77 and the task ID
保持部83が追加されている点である。 In that the holding portion 83 is added.

【0129】タスクラウンド管理部75がタスクラウンド管理部73と異なるのは、タスクラウンド管理部73 [0129] the task round management unit 75 is different from the task round management unit 73, the task round management unit 73
がタスクID保持部71においてタスク識別子がどのように更新されてきたかを監視し、6ビット長のレジスタを用いて六個のタスクのうちスレッドの割り当てが済んだものを管理するのに対して、タスクラウンド管理部75 Relative but to manage what that monitors whether been updated how the task identifier in a task ID storage unit 71, are done thread allocation among the six tasks using the 6-bit register, the task round management unit 75
は、スレッドの割り当てが済んだタスクの管理を、通常期間におけるタスク管理と、緊急期間における通常タスクの管理とに区別して行う点である。 Is, the management of the thread of the assignment after completion tasks, and task management in a normal period, is that carried out by distinction usually in management and task in the emergency period. 例えばタスク管理レジスタ13においてタスク(1)をインターリーブ式に実行する場合、6個のタスクのうち5個のタスクがタスク(0)、タスク(2)、タスク(3)、タスク(4)、タスク(5) For example, when performing the task management register 13 Task (1) in interleaved, five tasks tasks of the six tasks (0), task (2), task (3), task (4), task (Five)
というように巡回することになる。 It will be cyclic and so on.

【0130】5個のタスクを上記のように巡回する場合、実行の済んだタスクを示すラウンド値はタスク管理レジスタ13において管理されている緊急タスク抜きの数値で表現する必要がある。 [0130] If the five tasks cyclically as described above, the round value that indicates who have completed execution task must be expressed in numerical values ​​of the emergency task vent managed in the task management register 13. このようにタスクラウンド管理部75は緊急タスク抜きのラウンド値を管理するため、ラウンド値tasknとは別に緊急タスク抜きのラウンド値taskneを緊急タスクマスク部77に出力する。 The task round management unit 75 as an emergency to manage round value tasks vent, and outputs the emergency task masking unit 77 a round value taskne separately from the emergency task vent the round value Taskn. ちなみにtaskneの『ne』とは、『Not』及び『Emergency』の頭文字に由来している。 By the way, the "ne" of taskne is derived from the initials of "Not" and "Emergency".

【0131】コンバータ76は、タスク管理レジスタ1 [0131] converter 76, task management register 1
3に管理されている緊急タスクの識別子を6ビットのラウンド値emgcytaskに変換する。 3 to the identifier of the emergency task being managed is converted into a 6-bit round value Emgcytask. 緊急タスクマスク部7 Emergency task masking unit 7
7は、コンバータ76により変換されたラウンド値emgc 7, round value converted by the converter 76 emgc
ytaskと、タスクラウンド管理部75が出力したラウンド値taskneとの6ビット長の論理和をとるOR回路78を備える。 Comprising a Ytask, an OR circuit 78 for ORing the 6 bit length of the round value taskne the task round management unit 75 has output.

【0132】ここでOR回路78において論理和をとるのは、ラウンド値taskne及び緊急タスクを示すラウンド値の両者を含んだ6ビット長のラウンド値を算出することを意味する。 [0132] Here, the ORed in OR circuit 78 is meant to calculate the round value taskne and round value of 6-bit length including both the round value indicating an emergency task. 例えばラウンド値taskneがタスク(0)、タスク(2)、タスク(3)にスレッドが割り当てられたことを示す『001101』であり、ラウンド値emgcytaskが緊急タスクがタスク(1)であることを示す『000010』である場合、OR回路78の出力は、タスク(0)、タスク(1)、タスク(2)、タスク(3)にスレッドが割り当てられたことを示す『001111』となる。 For example round value taskne task (0), task (2), a task indicates that a thread is assigned to the (3) "001101" indicates that the round value emgcytask is an urgent task is Task (1) If "000010", the output of the OR circuit 78 becomes the task (0), task (1), task (2), indicating that the thread has been assigned to the task (3) "001111".

【0133】プライオリティエンコーダ80は、プライオリティエンコーダ74の機能に加えて、タスクラウンド管理部75が出力したラウンド値taskne(ラウンド値 [0133] Priority encoder 80, in addition to the functions of the priority encoder 74, the round value Taskne (round value task round management unit 75 has output
maskne)を受け取り、受け取ったタスクラウンド管理部73のラウンド値taskne(ラウンド値maskne)において何ビット目に『1』から『0』への反転が生じているかを検出する。 Receive maskne), to detect whether inversion of what bit from "1" in the round value of the task round management unit 73 received Taskne (round value Maskne) to "0" occurs. このように『0』への反転が生じたビットを検出すると、この反転が生じたビットに割り当られているタスクのタスク識別子taskidをそれぞれ個別にタスク When detecting the bit inversion has occurred to such a "0", respectively individually task the task identifier taskid of the task that this inversion is hit split into bits generated
ID保持部83に格納させる。 It is stored in the ID holding portion 83.

【0134】例えば緊急タスクのラウンド値とラウンド値taskneとの論理和であるラウンド値maskne『000111』 [0134] For example, a logical sum of the round value and the round value taskne of the emergency task round value maskne "000111"
が緊急タスクマスク部77から出力されると、プライオリティエンコーダ80はこのラウンド値maskneにおいて下位から第3ビット目に『0』への反転が生じていることを検出する。 When is outputted from the emergency task masking unit 77, the priority encoder 80 detects that the reversal of the "0" is generated from the lower to the third bit in the round value Maskne. この第3ビット目は図7(b)においてタスク(3)に割り当られているビットであるから、プライオリティエンコーダ80はタスク(3)のタスク識別子t Since this third bit is the bit that has been hit assigned to task (3) in FIG. 7 (b), the priority encoder 80 is task identifier t Task (3)
askidをセレクタ82に出力する。 And outputs the askid to the selector 82.

【0135】cstate記憶部85は、I/Oプロセッサが通常状態であるか緊急状態であるかを示すフラグcstateを記憶する。 [0135] cstate storage unit 85 stores a flag cstate indicating whether the I / O processor is in an emergency state or the normal state. 図33は、cstate記憶部85が記憶するフラグの状態遷移図である。 Figure 33 is a state transition diagram of a flag cstate storage unit 85 stores. 本図において、通常状態から緊急状態への遷移は、緊急状態遷移許可信号iexecmodeがH In the figure, the transition from the normal state to an emergency state, the emergency state transition permission signal iexecmode is H
ighであり、尚且つタスク切替信号chg_task_exがHigh値になった場合に行われる。 An IgH, besides the task switching signal chg_task_ex is performed when it becomes High value. 逆に緊急状態から通常状態への遷移は、タスク切替信号chg_task_exがHigh値になった場合に行われる。 Transition from an emergency state to the normal state in the reverse takes place when a task switching signal chg_task_ex becomes a High value. 図34は緊急状態遷移許可信号iexe Figure 34 is an emergency state transition permission signal iexe
cmode、タスク切替信号chg_task_ex、cstate間のタイミングを示すタイミングチャートである。 cmode, task switching signal Chg_task_ex, is a timing chart showing the timing between cstate.

【0136】iexecmode信号がHighに立ち上がったタイミングa30において参照符号a31に示すようにタスク切替信号chg_task_exがHigh値になったとする。 [0136] iexecmode signal task switching signal chg_task_ex as indicated by reference numeral a31 at the timing a30 that rises High and goes High value. そうするとc Then c
stateは参照符号a32に示すようにHighとなって緊急状態に遷移する。 state transitions to an emergency state becomes High as shown in reference numeral a32. タスク切替信号chg_task_exが参照符号a33 Task switching signal chg_task_ex reference signs a33
に示すように再度Highになるとcstateは参照符号a34に示すようにLow値となって通常状態に戻る。 Becomes again High as shown in cstate return to the normal state becomes Low value as shown in the reference numeral a34. このような緊急状態から通常状態への遷移、通常状態から緊急状態への遷移を繰り返すことになる。 Transition from such an emergency state to the normal state, to repeat the transition to the emergency state from the normal state.

【0137】セレクタ82は、入力されてきた緊急状態遷移許可信号iexecmodeがHighであり、尚且つcstateが参照符号a32に示すようにHighである場合、(cstateの逆の真理値cstate!が参照符号a35に示すようにLowである場合)に、タスク管理レジスタ13に記憶されているタスク識別子taskideを選択してタスクID保持部72に出力する。 [0137] The selector 82, the emergency state transition permission signal iexecmode that has been input is High, besides if cstate is High, as shown in reference numeral a32, (the truth value of the inverse of cstate cstate! Reference numerals if it is Low), as shown in a35, and outputs to the task ID storage 72 selects the task identifier taskide stored in the task management register 13. その他の場合、プライオリティエンコーダ8 In other cases, priority encoder 8
0の出力であるラウンド値maskneから変換されたタスク識別子taskidneを選択してタスクID保持部72に出力する。 0 is the output select the transformed task identifier taskidne from round value maskne of outputs to the task ID storage 72. 図32は、セレクタ82におけるtaskideの真理値表を示す図である。 Figure 32 is a diagram showing a truth table of taskide by the selector 82.

【0138】このようにラウンド値maskneから変換されたタスク識別子taskidneと、緊急タスクの識別子とをセレクタ82が緊急状態遷移許可信号iexecmodeのHigh期間/Low期間に応じて切り換えて出力することは、緊急状態遷移許可信号iexecmodeのHigh期間/Low期間に応じて、緊急タスク抜きの何れかのタスクと、緊急タスクとを切り換えてタスクID保持部72に格納することを意味する。 [0138] To output switched according to the manner and the task identifier taskidne converted from the round value Maskne, High period / Low period of the identifier of the emergency task selector 82 is the emergency state transition permission signal iexecmode an emergency depending on the High period / Low period of the state transition permission signal Iexecmode, switches and one of the tasks of the emergency task vent, the emergency task means that stored in the task ID storage 72.

【0139】例えばタスク(1)が緊急タスクであるものとすると、緊急タスク抜きのタスク識別子として、タスク(0)、タスク(2)、タスク(3)、タスク(4)、タスク(5) [0139] For example, when task (1) is assumed to be urgent task, as an urgent task Opener task identifier, a task (0), task (2), task (3), task (4), task (5)
というようにセレクタ82はタスク識別子を出力する。 The selector 82 outputs the task identifier and so on.
通常状態では、図35(a)に示すように、セレクタ8 In the normal state, as shown in FIG. 35 (a), the selector 8
2により緊急タスク抜きの何れかのタスクが出力されるため、タスク(0)、タスク(2)、タスク(3)、タスク(4)、 Since one of the tasks of the emergency task vent by 2 is output, the task (0), task (2), task (3), task (4),
タスク(5)というように、タスク(1)に割り当てられるスレッドは0サイクルとなる。 As that task (5), the thread assigned to task (1) is zero cycles.

【0140】緊急状態では、図35(b)に示すように、セレクタ82により緊急タスク抜きの何れかのタスクと、緊急タスクとが選択的に出力されるため、タスク [0140] In an emergency condition, as shown in FIG. 35 (b), since the one of the tasks of the emergency task vent by the selector 82, and the emergency task is selectively output, task
(0)、タスク(1)、タスク(2)、タスク(1)、タスク(3)、 (0), task (1), task (2), task (1), task (3),
タスク(1)、タスク(4)、タスク(1)、タスク(5)、タスク Task (1), task (4), task (1), task (5), task
(1)というように、タスク(1)は二回に一回の割合でスレッドが割り当てられる。 (1) and so on, task (1) it is assigned a thread at a rate of once every twice. セレクタ82による緊急状態におけるタスク識別子の出力では、タスク(1)にタスク実行が巡ってくるのは二回につき一回となり確率に換算すると1/2となる。 At the output of the task identifier in the emergency state by the selector 82, the task execution to the task (1) comes around is 1/2 in terms of probability become a once per twice.

【0141】このような1/2の確率は、通常の実行確率の3倍という極めて高確率であり、緊急タスクは非常に高速に実行されることになる。 [0141] probability of such a half is a very high probability that three times the normal execution probability, emergency task will be run very fast. 以上のように本実施形態によれば、水平ブランキング期間、垂直ブランキング期間においてビデオアウトタスクのみを優先して実行することができる。 According to the present embodiment as described above, it can be horizontal blanking period, giving priority to only the video out tasks in a vertical blanking interval performed. この期間において動画データを映像信号に変換すれば、映像信号をディスプレィの表示期間までに好適に処理することができる。 If converting the moving image data in this period on the video signal can be processed suitably to a video signal to the display period of Display.

【0142】尚第4実施形態の構成では、緊急タスクを優先して実行するため、緊急タスク以外のタスクの実行頻度が落ちてしまうという弊害が発生するが、これを防止する防止機構を設けても良い。 [0142] Note that the configuration of the fourth embodiment, the emergency task to execute with priority, but adverse effects are generated that execution frequency of other than emergency task task falls, by providing a prevention mechanism to prevent this it may be. その防止機構とは、 And its prevention mechanism,
『最低限これだけの実行速度を維持しなければならない』という制約付きタスク(例外タスクという)の識別子をタスク管理レジスタに記憶させ、この例外タスクについては、四命令実行というタスク切り換えの条件を除外する旨の信号をスレッドマネージャー61宛に出力させる。 "Minimum This must maintain only the execution speed" is stored in the task management register identifiers of constrained tasks (called exception tasks) that, for this exception task excludes conditions task switching that four instruction execution to output a signal indicating that the addressed thread manager 61.

【0143】スレッドマネージャー61内の比較器54 [0143] The comparator 54 in the thread manager 61
は、この旨の信号を受け付けると、タスク切替信号の出力を所定時間だけ猶予する。 Upon receipt of the signal to this effect, to grace the output of the task switching signal by a predetermined time. ここでの所定時間の時間長とは緊急タスク優先による各タスクの遅れを取り戻せるだけの時間長である。 Here the duration of a predetermined time in a time length of only regain delay of each task according to the emergency task priority. このように所定時間だけタスク切替信号の出力を猶予することにより、例外タスクの処理を4命令以上行わせ、緊急タスク挿入に伴う処理の遅延を取り戻させることができる。 By grace output of such a predetermined time only the task switching signal, the processing of exceptional tasks four instructions to perform more, it is possible to regain the delay in processing due to an emergency task insertion.

【0144】また本実施形態は、外部から入力されてくる特定信号に同期して、特定タスクを高速化に実行することについて述べているが、特定命令によって高速実行するタスクを定めても良い。 [0144] In the first embodiment, in synchronization with the specific signal inputted from the outside, although stated to perform certain tasks faster, may be determined a task to run faster by a specific instruction. 状態監視レジスタCR2の第3ビットは、通常は『0』に設定され、外部に接続されたディスプレィ装置におけるビデオ信号が帰線期間になると『1』に設定されるので、状態監視レジスタCR2と、 The third bit of the state monitoring register CR2 is normally set to "0", since the video signal in the connected Display device to the outside is set to "1" becomes a retrace period, the state monitoring register CR2,
即値とをオペランドに指定し、これらの一致、不一致を判定させる旨のCMP命令をビデオアウトタスクに配置しておき、この命令についての演算の実行結果が真となる場合のみ、ビデオアウトタスクを高速に実行してもよい。 Specifies the immediate value operand, these match, the CMP instruction for thereby determining the discrepancy should be placed in the video out task, if the execution result of the operation of this instruction is true only, high-speed video out tasks it may be executed. 命令のオペランドにて緊急扱いを要するタスクを指定できるようにしてもよい。 You may be able to specify a task that requires emergency treatment at the instruction of the operand.

【0145】更に通常状態にて実行すべきタスクを緊急タスク抜きのラウンド値taskneにて指定したが、通常状態にて緊急タスクを実行してもよい。 [0145] was further specify the tasks to be executed in the round value taskne of the emergency task disconnect in the normal state, it may perform emergency tasks in the normal state. (第5実施形態)第5実施形態は、タスク同士の連携により、タスクの巡回効率を向上させることを意図した実施形態である。 (Fifth Embodiment) The fifth embodiment is the cooperation between tasks, an embodiment intended to improve the cyclic efficiency of the task.

【0146】ここでタスク同士の連携とは、特定時期が到来しないとスレッドの割り当てが無駄に終わるタスクは自ら進んで休眠状態に入り、休眠状態の解除を他のタスクに委ねる。 [0146] Here in between tasks cooperation, when a particular time does not arrive thread task assignment ends a waste of enters a dormant state voluntarily, leaving the release of the dormant state to the other tasks. そして解除を委ねられたタスクは、その休眠状態を解除すべき時期が到来するのを待ち、もし到来すれば特定タスクの休眠状態を解除することをいう。 And entrusted cancellation task refers to that when to release the dormant wait for incoming, releases the dormancy of the specific task if the incoming it.

【0147】タスクの休眠は、複数のタスクにおいて同時多発する場合もあるし、全く発生しない場合もある。 [0147] dormant task, to in some cases the simultaneous multiple in multiple tasks, in some cases at all does not occur.
休眠状態に陥ったタスクを個別に管理できるよう、第5 As the task falls to sleep it can be managed separately, fifth
実施形態ではタスク管理レジスタ13に休眠(sleep状態)に入ったタスクを管理するためのビットを割り当てている。 In the embodiment assigns a bit for managing the tasks entered the dormant task management register 13 (sleep state). 図36は第5実施形態におけるタスク管理部1 Figure 36 is a task management unit 1 in the fifth embodiment
5の構成であり、図37はタスク管理レジスタ13のビット構成及び、これらの各ビットがどのようなフラグとして機能するかを示す説明図である。 5 is a configuration of FIG. 37 bit configuration and task management register 13 is an explanatory diagram showing how each of these bits is to function as what flag. 本図においてタスク管理レジスタ13の第0ビットが『0』であれば、タスク(0)をsleep状態として処理することを示し、第0ビットが『1』であればタスク(0)がそうでないことを示す。 If in this figure the zeroth bit of the task management register 13 is "0", indicates that the processing task (0) as a sleep state, if the zeroth bit is "1" task (0) is otherwise indicating that.

【0148】タスク管理レジスタ13の第1ビットが『0』であれば、タスク(1)をsleep状態として処理することを示し、第1ビットが『1』であればタスク(1)がそうでないことを示す。 [0148] If the first bit of the task management register 13 is "0", indicates that the processing task (1) as a sleep state, if the first bit is "1" task (1) is not the case indicating that. タスク管理レジスタ13の第2ビットが『0』であれば、タスク(2)をsleep状態として処理することを示し、第2ビットが『1』であればタスク If the second bit of the task management register 13 is "0", indicates that the processing task (2) as a sleep state, if the second bit is "1" task
(2)がそうでないことを示す。 (2) indicates that it is not the case. これらのビットをタスクが切り換えることにより、自身を休眠状態にしたり、他のタスクの休眠状態を解除したりする。 By switching these bits tasks, or itself to sleep, or to release the dormant state of the other tasks.

【0149】タスク管理レジスタ13のビット操作は、 [0149] bit operation of the task management register 13,
以下の{例3}{例4}にニーモニックを示す命令によりなされる。 Made by the instruction indicating the mnemonic in the following {Example 3} {Example 4}. {例3} sleep_task {例4} wake_task task(k) {例3}において『sleep_task命令』は、自身をsleep {Example 3} Sleep_task {Example 4} wake_task task (k) "Sleep_task Instruction" in {Example 3} is itself a sleep
状態にする命令である。 Is an instruction for the state. {例4}において『wake_task In {Example 4} "wake_task
命令』は、第1オペランドにより6つのタスクのうち何れか一つの識別子を指定できる。 Instruction "can specify any one of the identifiers of the six tasks by the first operand. このような二種の命令を各タスク内に配置することにより、各タスクは休眠状態の移行と、これの解除とを交互に行う。 By disposing such two kinds of instruction in each task, each task performs migration and dormant, which release and alternately. 尚、sleep_ta It should be noted, sleep_ta
sk命令においては第1オペランドにより他のタスクを指定できるようにしてもよい。 It may be designated other tasks by the first operand in sk instruction.

【0150】図38は、第4実施形態におけるスケジューラ62の内部構成を示す図である。 [0150] Figure 38 is a diagram showing the internal configuration of the scheduler 62 in the fourth embodiment. 図38においてスケジューラ62がタスクID保持部71、タスクID保持部72、タスクラウンド管理部73、プライオリティエンコーダ74を備えている点は第1実施形態と差違は無い。 Scheduler 62 the task ID storage unit 71 in FIG. 38, the task ID storage unit 72, the task round management unit 73, that includes a priority encoder 74 is not the first embodiment and the difference. 本図において新規なのはインバータ94及びOR回路95からなるタスクスキップ管理回路93である。 The novel of the present view is a task skip management circuit 93 comprised of the inverters 94 and the OR circuit 95.

【0151】タスクスキップ管理回路93は、タスク管理レジスタ13においてsleep状態に割り当られている6 [0151] Task skip management circuit 93 is hit split into sleep state in the task management register 13 6
ビットを反転するインバータ94と、反転された6ビットと、タスクラウンド管理部73から出力されたラウンド値tasknとの論理和をとるOR回路95からなる。 An inverter 94 for inverting the bits, and 6 bits are inverted, made from the OR circuit 95 for ORing the round value taskn outputted from the task round management unit 73. ここでタスク(0)、タスク(1)、タスク(2)の実行が済んで『0 Here task (0), task (1), done so execution of the task (2) "0
00111』というラウンド値tasknがタスクラウンド管理部73から出力され、またタスク管理レジスタ13においてタスク(3)がsleep状態に設定されているものとする。 Round value taskn that 00111 "is outputted from the task round management unit 73, and shall task (3) is set to sleep state in the task management register 13.
この場合タスク管理レジスタ13のsleepビットは『110 sleep bit in this case the task management register 13 is "110
111』となり、インバータ94によりこれの反転値『001 111 ", and this inverted value by the inverter 94" 001
000』が出力される。 000 "is output. インバータ94による反転値『001 Inverted value by the inverter 94 "001
000』とラウンド値taskn『000111』との論理和は、『00 The logical sum of 000 "and the round value taskn" 000111 "is," 00
1111』となる。 The 1111 ". この論理和がプライオリティエンコーダ74に出力されると、第4ビットにおいて『1』から『0』への反転が行われていることが検出され、タスク When the logical sum is output to the priority encoder 74, that the inversion from "1" to "0" is performed in the fourth bit is detected, the task
(4)の識別子がタスクID保持部71及びタスクID保持部72に出力される。 (4) Identifier of is outputted to the task ID storage unit 71 and the task ID storage 72. タスク(4)の識別子が出力されると、タスク(0)、タスク(1)、タスク(2)、タスク(4)の順に実行が行われることになる。 If the identifier of the task (4) is output, the task (0), task (1), task (2), so that the execution order of tasks (4) is performed.

【0152】図39は、sleep命令を命令1-1,2-1,3-1としてその内部に有した非同期イベントタスクの一例であり、図41は、図39の非同期イベントタスクがどのように実行されるかを示すタイミングチャートである。 [0152] Figure 39 is an example of an asynchronous event task having therein sleep instructions as instructions 1-1,2-1,3-1, Figure 41, how the asynchronous event tasks in Fig. 39 is a timing chart showing how executed. sl sl
eep命令が図41に示すように命令1-1として非同期イベントタスクの第1番目の命令として格納されている場合、この命令1-1がDECPC保持部23に格納され、命令解読制御部11により解読されると、セレクタ25は、 If eep instruction is stored as the first instruction of an asynchronous event task as instructions 1-1 as shown in FIG. 41, this instruction 1-1 is stored in the DECPC holding unit 23, the instruction decode control unit 11 Once decrypted, the selector 25,
の信号線を介して命令1-2の読出先アドレスをタスク別P Task-P read destination address via the signal line instruction 1-2
C格納部24に格納する。 Stored in the C storage unit 24. その後命令解読制御部11 Then the instruction decode control unit 11
は、命令1-2、命令1-3を無効化する(図16における『NOP』)。 The instruction 1-2, to invalidate the instruction 1-3 ( "NOP" in FIG. 16).

【0153】図40はsleep命令及びwake命令の命令フォーマットの一例を示す。 [0153] Figure 40 shows an example instruction format of sleep instruction and wake instructions. 図40において、本命令は図9に示したレジスタ指定型の算術演算命令の命令フォーマットを有する。 In Figure 40, the instruction has an instruction format of a register-specifying arithmetic instruction shown in FIG. 本フォーマットの11bitから13bitを『010』に指定することにより、sleep命令のオペレーションをI/Oプロセッサは実行する。 By specifying the "010" a 13bit from 11bit of this format, the operation of the sleep instruction I / O processor executes. また本フォーマットの11bitから13bitを『011』に指定することにより、wak Further, by specifying it in the "011" the 13bit from 11bit of this format, wak
e命令のオペレーションをI/Oプロセッサは実行する。 The operation of the e command I / O processor executes.

【0154】以上のように構成された第5実施形態のI/ [0154] The fifth embodiment configured as above I /
Oプロセッサによって、どのようにスレッドが割り当てられるかを図42(a)〜図42(d)を参照しながら説明する。 By O processor, how it will be described with reference to FIGS. 42 (a) ~ FIG 42 (d) thread is assigned. タスク(1)はパージングタスク、タスク(3)はホストI/Oタスクであり、タスク(1)、タスク(2)、タスク(3)の第1番目の命令がsleep命令であるものとする。 Task (1) is parsing task, task (3) is a host I / O task, it is assumed task (1), task (2), the first th instruction of the task (3) is a sleep instruction.
タスク(0)、タスク(4)、タスク(5)に4サイクルのスレッドが割り当てられるが、図42(a)においてタスク Task (0), task (4), task (5) is assigned a 4-cycle threads, tasks in FIG 42 (a)
(1)、タスク(2)、タスク(3)には、第1番目の命令としてsleep命令が格納されているので2サイクルのスレッドが割り当てられる。 (1), task (2), the task (3), the thread of two cycles are assigned because sleep instruction is stored as the first instruction.

【0155】sleep命令の実行後、次のフレームにおいては図42(b)に示すように、タスク(1)、タスク [0155] After execution of the sleep instruction, as in the next frame shown in FIG. 42 (b), task (1), task
(2)、タスク(3)に割り当てられるスレッドは0サイクルである。 (2), the thread assigned to task (3) is 0 cycles. タスク(0)は起動期間がより長いビットストリーム転送制御タスクであり、タスク(0)には第1番目にタスク(3)に対してのwake命令が格納されているものとする。 Task (0) is the longer bit stream transfer control task start time, the task (0) is assumed to wake instruction is stored in the task (3) to the first. そうすると、図42(c)に示すように次のフレームにおいてこのwake命令が解読されることによりタスク(3)に4サイクルのスレッドが割り当てられる。 Then, it assigned a thread 4 cycles task (3) By this wake instruction is decoded in the next frame as shown in FIG. 42 (c).

【0156】タスク(0)には第14番目にタスク(1)に対してのwake命令が格納されているものとする。 [0156] a task (0) is assumed to wake instruction is stored in the task (1) to the 14 th. そうすると、図42(d)に示すように次のフレームにおいてこのwake命令が解読されることによりタスク(1)に4サイクルのスレッドが割り当てられる。 Then, assigned four cycles threads in the task (1) By this wake instruction is decoded in the next frame as shown in FIG. 42 (d). 以上のように本実施形態によれば、パージングタスク、ホストI/Oタスク等、起動すべき期間が限定されているタスクは自ら進んで休眠状態に入り、起動期間がより長い転送制御タスクに休眠状態の解除を委ねることにより、タスク巡回のスループットを向上させることができる。 According to this embodiment as described above dormant, purging task, the host I / O tasks such as his willing tasks that period to be activated is limited enters the dormant state, startup period is longer transfer control task by entrusting the release state, it is possible to improve the throughput of the tasks cyclically. (第6実施形態)第6実施形態は、第3実施形態におけるwait状態制御と、第4実施形態における緊急タスク制御と、第5実施形態における休眠タスク制御とを共存させる技術に係る。 (Sixth Embodiment) The sixth embodiment relates to a technique coexist and wait state control in the third embodiment, the emergency task control in the fourth embodiment, a dormant task control in the fifth embodiment.

【0157】図43は、タスク管理レジスタ13の各ビットにwait状態、emgcy状態、sleep状態の管理を統括させたものである。 [0157] Figure 43 is obtained by integrally wait state to each bit of the task management register 13, Emgcy state, the control of sleep state. スレッドマネージャー61及びスケジューラ62は、このようにタスク管理レジスタ13に統括されたwait状態、emgcy状態、sleep状態を参照して次のタスクの決定やタスクの次スレッドに割り当る命令数の増減を行う。 Thread Manager 61 and scheduler 62 performs thus task management register 13 to the general been wait state, Emgcy state, by referring to the following next thread split hitting instruction increasing or decreasing the number of the decisions and tasks of the task the sleep state .

【0158】図44は、緊急タスク制御及びsleep状態タスク制御を共存させ得るよう構成されたスケジューラ62の構成図である。 [0158] Figure 44 is a block diagram of an emergency task control and sleep state scheduler 62 the task control configured to be allowed to coexist. 図44においてスケジューラ62 The scheduler in FIG. 44 62
がタスクID保持部72、タスクラウンド管理部75、コンバータ76、緊急タスクマスク部77、プライオリティエンコーダ80、セレクタ82、タスクID保持部83 There task ID storage unit 72, the task round management unit 75, the converter 76, the emergency task masking unit 77, the priority encoder 80, selector 82, the task ID storage unit 83
から構成されている点は第4、第5実施形態と差違は無い。 Fourth, fifth embodiment and difference is that it is composed of no. 本図において、タスクラウンド管理部75の出力と、インバータ94により反転されたラウンド値taskne In the figure, the output of the task round management unit 75, the round value is inverted by the inverter 94 Taskne
のラウンド値との論理和をとるOR回路96が新たに追加され、その結果をプライオリティエンコーダ80に出力する。 Added the OR circuit 96 is newly ORed with the round value, and outputs the result to the priority encoder 80.

【0159】プライオリティエンコーダ80は、OR回路96が出力したラウンド値をタスク識別子に変換して、 [0159] Priority encoder 80 converts the round values ​​OR circuit 96 is output to the task identifier,
タスクID保持部72及びタスクID保持部83に出力する。 And outputs to the task ID storage 72 and the task ID storage 83. 以上のように本実施形態によれば、第4実施形態における緊急タスク制御と、第5実施形態におけるsleep According to this embodiment as described above, the emergency task control in the fourth embodiment, sleep in the fifth embodiment
状態タスク制御とを共存させることにより、より柔軟性に富んだタスクスケジューリングを実現することができる。 By the coexistence of a state task control, it is possible to realize the task scheduling richer in flexibility. (各実施形態における全体制御についての説明)以降、 (Description of the entire control in the embodiments) and later,
第1実施形態〜第5実施形態に示したI/Oプロセッサの全体制御をフロ−チャ−トを参照しながら説明する。 The overall control of the I / O processors shown in the first to fifth embodiments flow - Cha - be described with reference to and.

【0160】図45は、第1実施形態におけるI/Oプロセッサの全体制御を図示したフロ−チャ−トである。 [0160] Figure 45 is a flow illustrating the overall control of the I / O processor in the first embodiment - is bets - tea. 本図において、『変数k』とは命令メモリ100に記憶されている6本の非同期イベントタスクを指示するための変数でありタスクID保持部71及びタスクID保持部72 In the figure, the "variable k" is a variable for indicating the six asynchronous event tasks stored in the instruction memory 100 task ID storage unit 71 and the task ID storage unit 72
が保持するタスク識別子taskidに対応する。 But corresponding to the task identifier taskid to hold. 『変数i』 "Variable i"
とはそれぞれのタスクに含まれる命令の実行の際、その命令が当該スレッドにおいて何番目に実行されたかを指示するための変数であり、カウンタ52によりカウントされるカウント値に対応する。 During execution of the instructions contained in each task and a variable for indicating whether the instruction is executed ordinal number in the thread, corresponding to the count value counted by the counter 52. 『変数adr』とは、タスク別PC格納部24に格納されている個々のタスクの読み出し先アドレスを示す変数である。 The "variable adr" is a variable indicating the read address of each task stored in the task-PC storage unit 24.

【0161】図50は、図45のフロ−チャ−トによるスレッド間の遷移を示す図である。 [0161] Figure 50 is a flow in FIG. 45 - is a graph showing the transition between threads by preparative - tea. 図50において、縦方向下向きが時間軸であり、4つの長方形を含む太枠で囲まれた四角形がスレッドである。 In Figure 50, the vertical downward a time axis, a square thread surrounded by a thick frame comprising four rectangular. 図45のフロ−チャ−トにおける変数kにより個別に指示される。 Flow of FIG. 45 - Cha - is indicated separately by the variable k in and. 太枠の中の一つの各四角形は一つの命令を実行するサイクルを表し、これらの命令は変数iにより指示される。 One of each rectangle in the thick frame represents the cycle for executing one instruction, these instructions are indicated by the variable i. ステップS1は、上記タスクID保持部71がゼロのタスク識別子 Step S1 is the task ID storage 71 is zero task identifier
taskidを出力する。 And it outputs the taskid. これにより変数kがゼロクリアされ、ステップS2に移行する。 Thus the variable k is cleared to zero, the process proceeds to step S2. ステップS2は、カウンタ52を初期化することにより変数iを1に初期化する。 Step S2 is initializes a variable i by initializing the counter 52. ステップS3においてタスクID保持部72がタスク別PC格納部24に読み出しアドレス選択信号nxttaskid In step S3 the task ID storage unit 72 in the task-specific PC storage unit 24 the read address selection signal nxttaskid
(rd_adr)を出力することによりタスク(k)の読出先アドレスをタスク別PC格納部24から読み出す。 Reading the read address of the task (k) from the task-specific PC storage unit 24 by outputting the (rd_adr). ステップS Step S
4においてタスク(k)の読出先アドレスを用いて、命令メモリ100から命令を取り出す。 Using the read address of the task (k) in 4 fetches instructions from the instruction memory 100. ステップS5において命令解読制御部11は、取り出された命令を解読して実行する。 Instruction decode control unit 11 in step S5 performs decodes the fetched instruction.

【0162】ステップS6は、比較器54は変数iと上限4との比較を行う。 [0162] Step S6, the comparator 54 makes a comparison between the variable i and the upper 4. この場合はi=1であるのでステップS7に移行する。 In this case is the i = 1 proceeds to step S7. ステップS7は、カウンタ52に変数 Step S7, the variable counter 52
iのインクリメントを行わせ、increment回路21に読出先アドレスのインクリメントを行せるステップであるが、このインクリメントはタスクkにおけるある命令の実行から別の命令の実行への切り換えを意味する。 i to perform the incrementing, is a step line to the increment of the read address to increment circuit 21, the increment means switching to the execution of another instruction from the execution of instructions in the task k. この場合i=2であるから、スレッドにおける命令の実行から第2命令の実行への切り換えが行われることになる。 Since in this case i = 2, so that switching from the execution of the instruction in the thread to the execution of the second instruction is executed.

【0163】変数iは、ステップS7においてインクリメントされてステップS4に移行する。 [0163] Variable i is incremented proceeds to step S4 at step S7. 変数iのインクリメントよりi=2となり、読出先アドレスも一命令分進行したので、ステップS4において命令読出回路10は命令メモリ100内の読出先アドレス(adr+1)で指示される命令を読み出して、ステップS5において命令解読制御部11はこれを解読し、実行する。 Increment from i = 2 next to the variable i, so also read address has advanced single instruction content, the instruction read circuit 10 in the step S4 reads the instruction indicated by the read address in the instruction memory 100 (adr + 1) , the instruction decode control unit 11 decodes this in step S5, executes.

【0164】以上のステップS4〜ステップS7の一連の手順を繰り返し行うことにより変数iは次々とインクリメントされ、命令メモリ100におけるadr+0,adr+1, [0164] Variable i by repeating a series of procedures of steps S4~ step S7 is incremented one after another, adr in instruction memory 100 + 0, adr + 1,
adr+2,adr+3の領域に記憶されている命令を順次読み出す。 adr + 2, sequentially reads the instruction stored in the adr + 3 of the region. 以上のステップS4、ステップS5の実行をステップS6においてYesとなるまで繰り返す。 Above step S4, and repeats the execution of step S5 until Yes in step S6. ステップS6 Step S6
がYesとなると、ステップS6からステップS8への移行が行われる。 There comes a Yes, the migration is performed from the step S6 to step S8. 以上の手順において、変数iが1,2,3である内はステップS4、ステップS5、ステップS6、ステップS7の手順が繰り返されて、変数iが4になって初めてステップS6からステップS8への移行が行われたことは、タスク(0)に対する命令実行を4回繰り返すことを意味する(図50において最上段に位置する4つの四角形の並びはタスク(0)の第1スレッドにおける4回の命令実行の図解となる。)。 In the above procedure, step S4 among the variable i is 1, 2, 3, step S5, step S6, and repeats the steps of step S7, the variable i is from the first time step S6 becomes 4 to step S8 that the migration has been performed, the task (0) means that the repeated 4 times the instruction execution for (sequences of four squares located in the uppermost stage in Fig. 50 is four times the first thread of task (0) the instruction execution illustrated.). ちなみにステップS8〜 By the way, step S8~
ステップS10の手順はタスクからタスクへの切り換えを行うものであるから、ステップS6における『変数i Since the procedure of step S10 is performed to switch to the task from the task, "the variable i in step S6
=4』の判定は、命令の実行の4回の繰り返しをタスク切り換えの条件に課していることを意味する。 = 4 determined "means that impose 4 iterations of execution of the instruction in terms of task switching.

【0165】ステップS6において変数iと上限値との判定がなされると、ステップS8においてincrement回路21により変数iがインクリメントされ、ステップS [0165] When determined that the variable i and the upper limit value is made in step S6, the variable i is incremented by increment circuit 21 in step S8, step S
9においてタスク(k)の読出先アドレス(adr+i-1)を読出先アドレス(adr)としてタスク別PC格納部24に格納した後にステップS10に移行する。 The process proceeds to step S10 after storing task (k) read destination address (adr + i-1) as a read address (adr) in the task-specific PC storage unit 24 in 9. ステップS10では、タスクラウンド管理部73及びプライオリティエンコーダ74に次に実行すべきタスクを決定させる。 In step S10, thereby determining a task to be executed next to the task round management unit 73 and the priority encoder 74. この際タスクラウンド管理部73により『000000』のラウンド値tasknが出力され、プライオリティエンコーダ74 In this case the task round management unit 73 outputs a round value taskn of "000000", the priority encoder 74
により、『001』のタスク識別子taskidが出力される。 By, the task identifier taskid of "001" is output.
『001』のタスク識別子taskid、即ちk=1となるので、タスク(0)からタスク(1)への切り換えが行われる。 Task identifier taskid "001", i.e., a k = 1, the switch from task (0) to task (1) is performed. タスクの切り換え後、ステップS2に移行すると、変数iの初期化がなされ再度ステップS3〜ステップS7の繰り返しがまた開始される。 After task switching, the transition to step S2, repeat the initialization performed is Step S3~ step S7 again of the variable i is again started.

【0166】前回同様ステップS4において命令メモリ100における当該読出先アドレスからタスク(1)に含まれる一命令を取り出し、ステップS5において取り出された命令を解読して実行する。 [0166] extraction of an instruction included from the read address in the instruction memory 100 to the task (1) in the previous similar step S4, executes decodes the command extracted in step S5. ステップS6は、変数 Step S6, variable
iと上限4との比較を再度行う。 Do i and a comparison with the upper limit of 4 again. この場合はi=1であるのでステップS7に移行する。 In this case is the i = 1 proceeds to step S7. 変数iは、ステップS7においてインクリメントされてステップS4に移行する。 Variable i is incremented proceeds to step S4 at step S7.
変数iのインクリメントよりi=2となるので、ステップS Since the i = 2 from the increment of the variable i, the step S
4において読出先アドレス(adr+1)で指示される命令メモリ100内の領域のアクセスを行い、命令メモリ10 It demonstrates access area in the instruction memory 100 indicated by the read address (adr + 1) in 4, the instruction memory 10
0において、読出先アドレス(adr+1)で指示される領域に記憶されている命令を読み出して、ステップS5においてこれを解読し、実行する。 At 0, it reads the instruction stored in the area indicated by the read address (adr + 1), decodes it in step S5, executes.

【0167】以上のステップS4〜ステップS7の一連の手順を繰り返し行うことにより変数iを次々とインクリメントして、命令メモリ100におけるadr+0,adr+1, [0167] is incremented one after another variable i by repeating a series of procedures of steps S4~ step S7, adr + 0 in the instruction memory 100, adr + 1,
adr+2,adr+3の領域に記憶されている命令を順次読み出す。 adr + 2, sequentially reads the instruction stored in the adr + 3 of the region. 以上のステップS4、ステップS5の実行をステップS6においてYesとなるまで繰り返す。 Above step S4, and repeats the execution of step S5 until Yes in step S6. ステップS6 Step S6
がYesとなると、ステップS6からステップS8への移行が行われる。 There comes a Yes, the migration is performed from step S6 to step S8. 以上の手順において、変数iが1,2,3である内はステップS4、ステップS5、ステップS6、ステップS7の手順が繰り返されて、変数iが4になって初めてステップS6からステップS8への移行が行われる(以上までの動作により、図50ではタスク(1)における四命令分(タスク(1)に対する4個の命令)進行したことになる。)。 In the above procedure, step S4 among the variable i is 1, 2, 3, step S5, step S6, and repeats the steps of step S7, the variable i is from the first time step S6 becomes 4 to step S8 migration occurs (by the operation of up to more than a four instruction content in FIG. 50 task (1) (four instructions to the task (1)) will be proceeded.). ステップS8において変数iをインクリメントして、ステップS9においてタスク(k)の読出先アドレス(adr+i-1)を読出先アドレス(adr)として格納した後にステップS10に移行する。 The variable i is incremented in step S8, the process proceeds to step S10 after storing task (k) read destination address (adr + i-1) as a read address (adr) in step S9. ステップS10において再度タスクラウンド管理部73及びプライオリティエンコーダ74に変数kの決定行わせて、変数kをk=2 Made to perform determination of the variable k again to the task round management unit 73 and the priority encoder 74 in step S10, the variable k k = 2
にして、タスク(1)からタスク(2)への切り換えを行わせる。 A manner to perform the switching from the task (1) to the task (2). タスクの切り換え後、ステップS2に移行すると、 After task switching, the transition to step S2,
変数iの初期化がなされ再度ステップS3〜ステップS Again step initialization of the variable i is made S3~ step S
7の繰り返しがまた開始される。 7 repetition of is also started.

【0168】以上の繰り返しにより、図50において、 [0168] Through the above repetitions, in FIG. 50,
タスク(1)、タスク(2)、タスク(3)、タスク(4)、タスク Task (1), task (2), task (3), task (4), task
(5)の実行が四命令ずつ行われ、各タスクが順次消費されてゆく。 (5) Execution of is performed by four instructions, each task Yuku are sequentially consumed. (第2実施形態における全体制御の説明)第2実施形態におけるI/Oプロセッサの全体制御は、図46のフローチャートに示す手順にて行われる。 Overall control of the (first description of the entire control in the second embodiment) I / O processor in the second embodiment is performed in the procedure shown in the flowchart of FIG. 46. 図46のフロ−チャ−トは、ステップS1〜ステップS10からなる図45 Flow of 46 - Cha - DOO has a step S1~ step S10 FIG. 45
のフロ−チャ−トをベースにして作成されている。 On the front - tea - it has been created based on the door. ここで図46において新規なのはステップS12がステップS4〜ステップS5の間に挿入されている点である。 Here novel for in FIG. 46 in that step S12 is inserted between steps S4~ step S5.

【0169】ステップS12は、ステップS4により命令メモリ100から読み出された命令がWait_Until_Nex [0169] Step S12, the instruction read from the instruction memory 100 in step S4 is Wait_Until_Nex
t命令であるかを判定する。 It determines whether the t instruction. もしWait_Until_Next命令であれば、ステップS8へと移行して変数iをインクリメントし、ステップS9においてタスク(k)の読出先アドレス(adr+i-1)を読出先アドレス(adr)として格納する。 If it is Wait_Until_Next instruction, the variable i is incremented by the operation proceeds to step S8, and stores task (k) read destination address (adr + i-1) as a read address (adr) in step S9.

【0170】ここで留意すべきは、ステップS12では変数iの値に拘らず、Wait_Until_Next命令が実行された時点にステップS8に移行して読出先アドレスを格納する点である。 [0170] It should be noted that, regardless of the value of the step S12, the variable i, is that it stores the read destination address and proceeds to step S8 in the time Wait_Until_Next instruction is executed. このようにステップS8が変数iの値に拘らずステップS12の解読後に実行されるため、タスクからタスクへの切り換えは、四回の命令を待たずして行われることになる。 Thus, since the step S8 is executed after decoding of regardless step S12 to the value of the variable i, the switching from the task to the task will be performed without waiting for four times of the instruction.

【0171】図51は、第2実施形態におけるるスレッド間の遷移を示す図である。 [0171] Figure 51 is a diagram illustrating transition between the second embodiment Niokeruru thread. 図51におけるシーケンスは、図50同様縦方向下向きが時間軸であり、4つの長方形を含む太枠で囲まれた四角形がスレッドとなる。 Sequence in FIG. 51 is a diagram 50 similar longitudinal downward time axis, is a rectangle surrounded by a thick frame comprising four rectangular becomes thread. 太枠の中の一つの各四角形は一つの命令を実行するサイクルを表している。 One of each rectangle in the thick frame represents the cycle for executing one instruction. これらの四角形のうち、『』が記入されているものはWait_Until_Next命令を示す。 Of these rectangles, those "" is entered is shown a Wait_Until_Next instructions. またタスク(0)が各スレッドにおいて命令メモリ100内のどの命令を実行するかを、四角形の右横の『PC』『PC+1』 Or task (0) to execute the instructions of the throat in the instruction memory 100 in each thread also on the right side of the rectangle, "PC", "PC + 1"
『PC+2』『PC+3』といったプログラムカウント値及びプログラムカウントからの相対値により表現している(尚本図は、タスク(0)の第1スレッドの第1命令の読み出し時におけるプログラムカウント値を基準にしている。)。 (Note the figure are represented by the "PC + 2" relative value from the program count and the program counter such as "PC + 3", the program count at the time of task (0) of the first instruction of the first thread read It is based on the value.).

【0172】図47においてステップS1〜ステップS [0172] step in Figure 47 S1~ step S
4の手順が行われることにより、タスク(0)の第1スレッドの第1命令が読み出される。 By 4 steps are carried out, the first instruction of the first thread of task (0) is read. 読み出された命令の解読結果の判定がステップS12において行われるが、タスク(0)の第1スレッド−第1命令はWait_Until_Next命令ではないのでステップS5に移行する。 Although the determination of the decoded results of the read instruction is made at step S12, the first thread of task (0) - first instruction shifts to step S5 because it is not Wait_Until_Next instruction. ステップS5 Step S5
への移行により、タスク(0)の第1スレッド−第1命令の実行が行われて、1命令分進行したことになる。 The transition to task (0) first thread - the execution of the first instruction is performed, the advanced that one instruction.

【0173】再度ステップS1〜ステップS4の手順が行われることにより、タスク(0)の第1スレッドの第2 [0173] By the procedure of step again S1~ step S4 is performed, the second first thread of task (0)
命令が読み出される。 Instruction is read. 読み出された命令の解読結果の判定がステップS12において行われるが、タスク(0)の第1スレッド−第2命令はWait_Until_Next命令であり、ステップS8への移行が行われる。 Although the determination of the decoded results of the read instruction is made at step S12, the first thread of task (0) - second instruction is Wait_Until_Next instruction, the transition to step S8 is performed. ステップS8により変数iは1インクリメントされて『3』となり、ステップS9において読出先アドレス(adr+2)がタスク(0)の読み出し先アドレスとしてタスク別PC格納部110に格納される。 Variable i is incremented by one has been "3" and in step S8, the read address (adr + 2) at step S9 is stored in the task-PC storage unit 110 as a read address of the task (0).

【0174】格納後、ステップS10において変数kはインクリメントされ、ステップS2に移行する。 [0174] After storage, the variable k in step S10 is incremented, and the process proceeds to step S2. このステップS10における変数kのインクリメントにより、 The increment of the variable k in step S10,
タスク(0)からタスク(1)への切り換えが、第1スレッドの第3命令,第4命令の実行を待たずに行われる。 Switching from task (0) to task (1) is, the third instruction of the first thread is performed without waiting for the execution of the fourth instruction. タスク(1)の第1スレッドの実行が四命令の実行により行われ、同様にタスク(2)、タスク(3)、タスク(4)、タスク The first thread of task execution (1) is performed by the execution of four instructions, as well as the task (2), task (3), task (4), task
(5)の実行が行われて、タスク(5)の第1スレッド−第4 (5) execution is performed, the first thread of task (5) - 4
命令まで進んだとする。 And advanced to the instruction. ステップS10において変数k Variable k in step S10
が決定され、ステップS2において変数iが『1』に初期化されて、ステップS3においてタスク(0)の読出先アドレスがタスク別PC格納部110から読み出される。 There is determined, in step S2 a variable i is initialized to "1", the read address of task (0) is read from the task-specific PC storage unit 110 in step S3. ここで留意されたいのは、タスク(0)の第1スレッドの第2 The note here, first the first thread of task (0) 2
命令(Wait_Until_Next命令)の実行時に、PC+2(『P Instruction at the time of execution of the (Wait_Until_Next instruction), PC + 2 ( "P
C』は第1命令のプログラムカウント値を示す。 C "indicates a program count value of the first instruction. )がタスク(0)の読出先アドレスとしてタスク別PC格納部110に格納されている点である。 ) Is the point that is stored in the task-PC storage unit 110 as the read address of task (0). このようにタスク別PC格納部 In this way task-specific PC storage unit
110に(PC+2)が格納されているため、タスク(1)の第2スレッドの命令実行はPC+2から開始されることになる。 Since the 110 (PC + 2) is stored, a second thread of instructions execution of the task (1) will be initiated from the PC + 2.

【0175】(第3実施形態における全体制御の説明) [0175] (Description of overall control in the third embodiment)
図47は第3実施形態におけるI/Oプロセッサのフロ− Figure 47 is the I / O processor in the third embodiment furo -
チャ−トである。 Tea - is a door. 本図において、図45、図46の同一処理内容のステップには、図45、図46と同一参照符号を付してその説明を省略する。 In the figure, FIG. 45, the steps of the same processing contents of FIG. 46, and their description is omitted FIG. 45, the same reference numerals as FIG. 46. また図中の『変数Tota The "variable Tota in FIG.
l』とは、タスク管理レジスタ13の内容に基づき、セレクタ55が出力する数値を示し、命令実行数の上限を指定するために用いられる。 The l ", based on the content of the task management register 13 indicates a numerical value selector 55 outputs, is used to specify the upper limit of the number of instruction execution. 変数Totalはその初期状態において、スレッドにおける命令総数である『4』に初期化されるが、『2』にも更新され得る。 In the variable Total is the initial state, but is initialized to the total number instruction in thread "4" may be updated to "2".

【0176】図52は、第3実施形態のフロ−チャ−トによるスレッド間の遷移を示す図である。 [0176] Figure 52 is a flow of the third embodiment - shows a transition between threads by preparative - tea. 以降の説明では図52において、タスク(0)の第1スレッドの第1命令、第2命令が実行済みであり、これから第3命令が読み出されようとしている。 In Figure 52 in the following description, the first thread first instruction of task (0), a second instruction is already running, this third instruction is about to be read. ステップS93は、上記変数 Step S93, the above variables
kをゼロクリアし、変数Totalを4に設定する。 Reset to zero k, to set the variable Total to 4. ステップS2は、上記変数iをゼロクリアする。 Step S2 is reset to zero the variable i. ステップS3において、ゼロクリアされた変数kの読出先アドレス、即ち、タスク(0)の読出先アドレスをタスク別PC格納部110 In step S3, the read address of the variable k is cleared to zero, i.e., task (0) task-PC storage unit 110 read the destination address of
から読み出す。 Read from. ステップS4において命令メモリ100 Instruction memory in step S4 100
において読み出されたタスクの読出先アドレスを絶対アドレスとし、変数iをオフセット値としたアドレスから命令を取り出す。 And absolute address read address of the read task in, take out the instruction a variable i from the address offset value.

【0177】ステップS81において取り出された命令がCmp_And_Wait命令であるかを判定する。 [0177] command extracted in step S81, it is determined whether the Cmp_And_Wait instruction. ステップS8 Step S8
2では命令解読制御部81、演算実行部84はCmp_And_ 2, the instruction decode control unit 81, execution unit 84 Cmp_And_
Wait命令の第1オペランドに記述された状態監視レジスタjの指定と、第2オペランドに記述された即値とを参照してCmp_And_Wait命令が提示する事象の成立の真偽を判定する。 Determining a designation of a first operand in the described state monitoring register j of Wait instructions, the authenticity of formation of the event referring to Cmp_And_Wait instructions and immediate data written to the second operand is presented. 状態監視レジスタjの保持値と即値とが一致せず、事象不成立が判定されると、ステップS83に移行して、タスクkをwait状態に設定しステップS84に移行する。 Does not match the holding value of the state monitoring register j and the immediate value, the event is not satisfied is determined, the process proceeds to step S83, the process proceeds to step S84 to set the task k to the wait state. ステップS84では、プログラムカウントを進行させないよう、フリップフロップ27及びセレクタ25に読出先アドレスをCmp_And_Wait命令のアドレスに設定させてステップS87に移行する。 At step S84, the not to the program count is allowed to proceed, by setting the read destination address to the address of Cmp_And_Wait instruction to the flip-flop 27 and the selector 25 proceeds to step S87.

【0178】ステップS87は、図46のフロ−チャ− [0178] step S87 is, flow of FIG. 46 - tea -
トのステップS6同様、上限チェックを行うステップである。 DOO step S6 Similarly, a step of performing the upper limit check. ステップS6における『変数i=4』の判定は、 Determination of the "variable i = 4" in step S6,
命令の実行の4回の繰り返しをタスク切り換えの条件に課していた。 Four times repetition of the execution of the instruction has been imposed on the condition of task switching. これに対してステップS87における『変数i=変数Total』の判定は、命令の実行の繰り返し回数が変数Totalと等しいことをタスク切り換えの条件に課している。 Determination of the "variable i = variable Total" in step S87 contrast, imposes the number of repetitions of the execution of the instruction is equal to the variable Total in terms of task switching. ここでの変数Totalは未更新であるから、 Because here in the variable Total is not updated,
『変数i=変数Total』は実質『変数i=4』の判定となる。 "Variable i = variable Total" is a determination of the real "variable i = 4". Cmp_And_Wait命令はタスク(0)の第1スレッドにおいて3命令目に含まれており、一方変数i=2なので、ステップS87からステップS7への移行が行われる。 Cmp_And_Wait instructions are included in the three instruction eyes in the first thread of task (0), whereas since the variable i = 2, proceeds from step S87 to step S7 is performed. ステップS7において変数iがインクリメントされると、ステップS4における命令読み出しにより、Cmp_And_Wait When the variable i is incremented in step S7, the instruction read in step S4, Cmp_And_Wait
命令の次順の命令が命令解読制御部81に読み出される。 The following order of instructions of the instruction is read out to the instruction decode control unit 81. 読み出されるとステップS81がNoとなりステップS85では、命令解読制御部11は直前の命令において状態不成立が判定され、読出先アドレスがCmp_And_Wait In read by the step S81 is No and step S85, the instruction decode control unit 11 is determined the state not satisfied in the immediately preceding instruction, the read address is Cmp_And_Wait
命令のアドレスに設定されたか(PC戻りが発生したか) Or it has been set to the address of the instruction (or PC return has occurred)
を判定する。 The judges.

【0179】ここでアドレス(adr+i)に格納されていた命令の直前命令とはCmp_And_Wait命令が相当し、この [0179] corresponds is Cmp_And_Wait instructions to herein as address immediately preceding the instruction which has been stored in (adr + i), this
Cmp_And_Wait命令の解読時にはPC戻りが発生している。 PC back at the time of decoding of Cmp_And_Wait instruction has occurred.
そのためステップS85はYesとなりステップS86に移行する。 Therefore step S85 proceeds to Yes and step S86. ステップS86では命令解読制御部11は読み出されたアドレス(adr+i)の命令を廃棄するよう、 Step instruction decoding control unit 11 in S86 is to discard the instruction of the read address (adr + i),
汎用レジスタの格納値を無効化する旨の通知を行い、図51のタスクシーケンスにおけるタスク(0)−第1スレッドの第4命令に示すように、アドレス(adr+i)に格納されていた命令を無効化してステップS87に移行する。 And notifies the effect that disabling the stored value of the general-purpose register, task (0) in the task sequence of Fig. 51 - as shown in the fourth instruction in the first thread, has been stored in the address (adr + i) instructions to disable the process proceeds to step S87. 変数iの値は4であるからステップS87において『変数i=変数Total』の判定がなされるとYesとなり、 If in step S87 the value of the variable i is 4 the determination of the "variable i = variable Total" made Yes, and
ステップS88に移行する。 The process proceeds to step S88.

【0180】ステップS87がYesと判定されたことは、一スレッド分の命令実行が済んだことを意味するが、ステップS88では、その−スレッドにおいてPC戻りが発生したかを判定する。 [0180] It step S87 is determined to be Yes is meant to after completion one thread of the instruction execution, in step S88, the - determines whether PC return has occurred in the thread. このような判定を行うのは To carry out such a determination
PC戻りが発生した場合はタスク別PC格納部110にその戻り先を格納しておく必要があるからである。 If the PC return has occurred it is necessary to store the return address in the task-specific PC storage unit 110. タスク(0) Task (0)
の場合は第4命令が廃棄され、第3命令においてPC戻りが発生しているので、ステップS89においてフリップフロップ27及びセレクタ25に戻り先PC値を読出先アドレス(adr)として格納させてステップS10に移行する。 For the discarded fourth instruction, because the PC returns in the third instruction is generated, the step S10 by stored as the read address (adr) of the return destination PC value flip-flop 27 and the selector 25 in step S89 to migrate to. ステップS10においてタスクラウンド管理部73 Task round management unit 73 in step S10
及びプライオリティエンコーダ74に次のタスクを決定させた後、変数kをインクリメントしステップS90に移行する。 And after the next task was determined in the priority encoder 74 increments the variable k proceeds to step S90.

【0181】ステップS90〜ステップS92は、インクリメントされた変数kにより指示されるタスク、即ち次に実行されるべきタスクがwait状態にあるか否かを判定することにより、その次スレッドにおける命令数を切り換えるという重要な意味合いを持つ。 [0181] Step S90~ step S92, the task indicated by the incremented variable k, i.e. by the next to be executed task to determine whether the wait state, the number of instructions in the next thread It has important implications that switched. 順を追って説明するとステップS90では、IDコンバータ53はタスク管理レジスタ13におけるタスク(k)に相当するビットを参照して、タスク(k)がwait状態にあるかを判定する。 In step S90 when step-by-step instructions, ID converter 53 refers to the bit corresponding to task (k) in the task management register 13 determines whether task (k) is in the wait state. もしそうであればセレクタ55はステップS91において変数Totalに4を設定し、異なれば変数Totalに2 If the selector 55 if so is set to 4 variable Total in step S91, 2 to the variable Total Different
を設定する。 To set.

【0182】タスク(1)は、wait状態ではないのでステップS91において変数Totalが4に設定されてステップS2に移行する。 [0182] Task (1) is set variable Total is the 4 in step S91 is not a wait state proceeds to step S2. ここでタスク(1)にはCmp_And_Wait Here Cmp_And_Wait the task (1)
命令が含まれていないものとすると、ステップS5における命令実行が四回分繰り返されて、次のタスクへの切り換えが行われる(以上の手順は、第1実施形態に記載されたものと同様であるから重複説明はあえて行わない。)。 Assuming that the instruction is not included, repeated instruction execution four-times in the step S5, the procedure switching is performed (or more to the next tasks, are similar to those described in the first embodiment duplicate description is not dare take place from.).

【0183】Cmp_And_Wait命令を含んでいないタスク [0183] task that does not include the Cmp_And_Wait instruction
(2)、タスク(3)、タスク(4)についても、四命令の実行が順次行われて順々にタスクが切り換ってゆく。 (2), task (3), for the task (4), the execution of the four-instruction Yuku I sequentially carried out by the task is cut conversion one after the other. タスク task
(5)についての四命令の実行が済んでステップS10に移行し、ステップS10において変数kをゼロクリアして、ステップS90に移行したとする。 (5) proceeds to step S10 after the completion run four instructions for, cleared to zero a variable k in step S10, and the process proceeds to step S90. ステップS90 Step S90
では、タスク管理レジスタ13においてタスクkに割り当られたビットkが『1』であるか『0』であるかを判定する。 In, it is determined whether the bit k which hit split the task k in the task management register 13 is "1" or "0". この判定は、タスクkがwait状態であるか否かを見極めを意味する。 This determination is the task k is meant ascertain whether a wait state. ここで変数k=0であり、タスク(0) Here is a variable k = 0, the task (0)
は先程wait状態に設定されているから、ステップS91 Since being set to just wait state, step S91
において変数Totalに『2』を設定する。 "2" is set to the variable Total in. ここで留意すべきは、変数Totalは、スレッドに割り当る命令数の意味合いを持っている点である。 It should be noted here, variable Total is that you have a number of instructions implications hitting assigned to the thread. これをステップS91において『4』から『2』に更新することは、−スレッドにマッピングする命令数を『4』から『2』に削減することを意味する。 Updating this from the "4" in step S91 to "2", - means of reducing the number of instructions to map the thread from "4" to "2". そのため、タスク(0)の第2スレッドでは、変数iが1,2とインクリメントされている間だけ、 Therefore, in the second thread of task (0), only while the variable i is incremented and 1,2,
つまりステップS81〜ステップS85、ステップS5 That step S81~ step S85, step S5
の処理の繰り返しが2回だけとなる。 Repetition of processing is only 2 times. この際、タスク At this time, the task
(0)の読出先アドレスとしてタスク別PC格納部110に格納されているのはCmp_And_Wait命令の読出先アドレスである。 (0) as the read address of what is stored in the task-PC storage unit 110 is read destination address of Cmp_And_Wait instruction. 読出先アドレスのアドレスからCmp_And_Wait命令が読み出されると第1スレッド同様、ステップS82において事象の成否の判定がなされる。 First thread well as Cmp_And_Wait instruction from the address of the read destination address is read, the determination of the success or failure of the event is made in step S82. この場合、事象は不成立で終わったものとすると、第1スレッドと同様の処理を行って読出先アドレスをCmp_And_Wait命令に戻して第2スレッドを終える。 In this case, event Assuming that finished not satisfied, and performs the same processing as the first thread finishes second thread to return the read address to Cmp_And_Wait instruction.

【0184】Cmp_And_Wait命令を含んでいないタスク [0184] task that does not include the Cmp_And_Wait instruction
(1)、タスク(2)、タスク(3)、タスク(4)についても、四命令の実行が順次行われて順々にタスクが切り換ってゆき、タスク(5)についての四命令の実行が済んでタスク (1), task (2), task (3), for the task (4), Yuki I task cut changeover one after the other sequentially performed runs four instructions, the four instructions for the task (5) task execution is completed
(0)の第3スレッドが始まろうとしている。 (0) is the third thread of is about to begin. ここでI/Oプロセッサにおける事象に変化が生じ、タスク(0)のCmp_A Here a change occurs in the events in the I / O processor, Cmp_A task (0)
nd_Wait命令において指定されていた事象が成立していたとする。 Had been designated event is assumed to have been established in nd_Wait instruction. このためタスク(0)の第3スレッドでは、ステップS82において命令解読制御部81により事象成立が判定され、ステップS80に移行して、タスク管理レジスタ13におけるタスクkのwait状態が解除される。 Therefore, in the third thread of task (0), it is determined event established by the instruction decode control unit 81 in step S82, the processing proceeds to step S80, wait state of the task k in the task management register 13 is released. このようにwait状態が解除されると、ステップS8 If the wait state is canceled so, step S8
0からステップS87への移行が行われ、ステップS8 0 transition to step S87 is performed from the step S8
7において変数iと変数Totalとの比較が行われ、ステップS7において変数iのインクリメントがなされて、ステップS4において読出先アドレス(adr+1)から命令が読み出される。 7 compares the variable i and the variable Total is performed in increments of the variable i is made in step S7, the instruction is read from the read address (adr + 1) in step S4. ステップS81において読み出された命令がCmp_And_Wait命令であるかの判定が行われるが、Cm While instruction read in step S81 a determination is made whether the Cmp_And_Wait instruction, Cm
p_And_Wait命令ではないのでステップS85へと移行する。 Because it is not a p_And_Wait instructions proceeds to step S85. ステップS85では、直前の命令において状態不成立が判定されPC戻りが発生したかが判定される。 At step S85, the PC or the return is determined the state not satisfied in the immediately preceding instruction has occurred is determined. Cmp_An Cmp_An
d_Wait命令により指定された事象が成立したので、ステップS85がNoとなり、Cmp_And_Wait命令の次順命令は二度の事象成立待ちを経てやっとステップS5において実行される。 Since events specified by d_Wait instruction is satisfied, step S85 is No, the next order instruction Cmp_And_Wait instructions are executed in last step S5 through the event establishment wait twice. ステップS5における次順命令の実行後、 After execution of the next sequence instruction in step S5,
ステップS5からステップS87への移行が行われ、変数iと変数Totalとの大小比較が行われる。 Proceeds from step S5 to step S87 is performed, comparison between the variable i and the variable Total is performed. 但し第2スレッドでは変数Totalが2に設定されているので、タスク However, since the second thread is set variable Total is 2, the task
(0)の第3スレッドは2回実行されただけで終わってしまう。 (0) 3 threads would end with only been performed twice. ステップS87への移行後、ステップS88においては、PC戻りの発生の真偽が判定されるがこの場合は After the transition to step S87, in step S88, although the authenticity of the occurrence of the PC returned is determined in this case
Noであり、ステップS89においてタスク(k)の読出先アドレス(adr+i-1)を読出先アドレス(adr)として格納してステップS10に移行する。 It is No, and stores task (k) read destination address (adr + i-1) as a read address (adr) in step S89 the process proceeds to step S10. このようにしてタスク In this way, the task
(0)の第3スレッドが済むと、Cmp_And_Wait命令を含んでいないタスク(1)、タスク(2)、タスク(3)、タスク(4) (0) 3 When a thread requires a task that does not include a Cmp_And_Wait instructions (1), task (2), task (3), task (4)
についても、四命令の実行が順次行われて順々にタスクが切り換ってゆく。 For also, execution of the four-instruction Yuku I sequentially carried out by the task is cut conversion one after the other. タスク(5)についての四命令の実行が済んで変数kがゼロクリアされ、ステップS90に移行したとする。 It is completed by the variable k execution of the four instructions of task (5) are cleared to zero, and the process proceeds to step S90.

【0185】ステップS90では、タスク管理レジスタ13におけるタスク(k)に相当するビットを参照して、 [0185] At step S90, with reference to the bit corresponding to task (k) in the task management register 13,
タスク(k)がwait状態にあるかを判定する。 Task (k) it is determined whether or not there is in the wait state. この場合タスク(0)のwait状態は解除されたので、ステップS92 In this case the wait state of task (0) has been released, step S92
において変数Totalに4を設定してステップS2に移行する。 The process proceeds to step S2 to set the 4 variable Total at. このように変数Totalが4に戻ったので、タスク Since the variable Total has returned to the 4, the task
(0)の以降のスレッドは通常通りの四命令ずつ行われることになる。 (0) and later of the thread of it will be performed by four instruction as usual.

【0186】(第4実施形態における全体制御の説明) [0186] (Description of overall control in the fourth embodiment)
図48は、第4実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 Figure 48 is a flow showing the whole control of the I / O processor in the fourth embodiment - it is bets - tea. 図48のフロ−チャ−トにおけるステップS1〜ステップS9の手順は図4 Flow of FIG. 48 - Cha - procedure in step S1~ step S9 in metropolitan 4
6のフロ−チャ−トと同様である。 6 on the front - tea - is the same as the door. 図48において新規なのは、30番台の参照符号が付与されたステップS3 New Nanoha In FIG. 48, step S3, reference numerals of 30s was granted
0、ステップS31、ステップS32である。 0, step S31, a step S32. ステップS30は、緊急状態遷移許可信号がLow値であるか否かを判定し、High値ならばステップS31に移行してステップS31において緊急タスクを次に実行すべきタスクとして決定する。 Step S30 is the emergency state transition permission signal to determine whether the Low value is determined as a task to be executed next emergency task in step S31 and proceeds to step S31 if High value.

【0187】逆に緊急状態遷移許可信号がLow値ならば、ステップS32に移行してラウンド値taskneに基づいて、通常タスクの中から次に実行すべきタスクをプライオリティエンコーダ80に決定させる。 [0187] If conversely the emergency state transition permission signal is Low value, based on the transition to round value taskne to step S32, to determine from the normal task to be executed next task to the priority encoder 80. 図53は、第4実施形態におけるスレッド間の遷移を示す図である。 Figure 53 is a diagram illustrating transition between threads in the fourth embodiment.
本図は、通常状態が始まりにおいて、ステップS31の処理がスキップされて、図52のタスク(0)の第1スレッド、タスク(2)の第1スレッド、タスク(3)の第1スレッド、タスク(4)の第1スレッド、タスク(5)の第1スレッドが順次行われる。 This figure, the normal state is at the beginning, is skipping the step S31, the first thread of task (0) in FIG. 52, the first thread of task (2), the first thread of task (3), task (4) first thread, the first thread of task (5) are sequentially performed.

【0188】taskneの実行が一巡したところで、緊急状態遷移許可信号のHigh期間が発生したとすると、ステップS2〜ステップS9において一つのタスクが実行された後、ステップS30からステップS31への分岐が行われる。 [0188] When the execution of taskne is round, when the High period of the emergency state transition permission signal is generated, after a task is executed in step S2~ step S9, branch line from step S30 to step S31 divide. 分岐後、cstate記憶部85に示されたcstateの After branching, the cstate shown in cstate storage unit 85
High値、Low値に応じて緊急タスクの実行を行う。 High values, the execution of the emergency task depending on the Low value. (第5実施形態における全体制御)図49は第5実施形態におけるマルチタスク手順のフロ−チャ−トである。 Figure 49 (total control in the fifth embodiment) furo multitasking procedure in the fifth embodiment - a DOO - tea.
本図が第1実施形態におけるマルチタスク手順のフロ− Furo this figure is a multi-task procedure in the first embodiment -
チャ−トと異なるのは、ステップS4とステップS6との間にステップS41〜ステップS44、S46、S4 Cha - DOO differs from step S41~ step S44 between the steps S4 and S6, S46, S4
7が挿入されている点である。 7 is that it is inserted.

【0189】ステップS41は、命令メモリ100から読み出された命令がsleep命令であるかを判定する。 [0189] Step S41 judges whether the instruction read from the instruction memory 100 is a sleep instruction. もしsleep命令であれば、ステップS42へと移行する。 If it is sleep instruction, the process proceeds to step S42.
ステップS42では、タスク管理レジスタ13はタスク In step S42, the task management register 13 tasks
(k)に対応するビットを0に反転する。 A bit corresponding inverted to 0 (k). その後ステップS43において変数iを1インクリメントして、ステップS44においてタスク(k)の読出先アドレス(adr+i-1)を読出先アドレス(adr)として格納した後にステップS4 The variable i is incremented by 1 in the subsequent step S43, step after storing the read address of the task (k) to (adr + i-1) as a read address (adr) in step S44 S4
5に移行する。 5 to migrate. 移行後、ステップS45では、インバータ94及びOR回路95はタスク管理レジスタ13においてsleep状態が指定されたビット抜きのラウンド値を生成し、これをプライオリティエンコーダ74に出力して、次に実行すべきタスク(k)を決定させる。 After migration, in step S45, the inverter 94 and the OR circuit 95 produces a round value of the bit vent the sleep state is specified in the task management register 13, and outputs it to the priority encoder 74, to be executed next task (k) is to be determined. ここで留意すべきは、先に述べたように『変数k』は命令メモリ100に記憶されている6本のタスクのそれぞれを指示するための変数であり、これの決定はタスクからタスクへの切り換えを意味する。 Here should be noted, previously "variable k 'as stated is a variable for indicating the respective six tasks stored in the instruction memory 100, which decision to the task from the task It means switching.

【0190】ここでステップS45がステップS10と異なるのは、ステップS10は変数iが4になった時点で実行されるのに対して、ステップS45は変数iの値に拘らず、sleep命令が解読された時点で実行される点である。 [0190] Here, step S45 is different from step S10, step S10 for being executed when the variable i becomes 4, step S45 is irrespective of the value of the variable i, sleep instruction decode a point which is executed when it is. このようにステップS45が変数iの値に拘らずsleep命令の解読後に実行されるため、タスクからタスクへの切り換えは、四回の命令を待たずして行われることになる。 Thus, since Step S45 is executed after the decoding of the regardless sleep instruction value of the variable i, the switching from the task to the task will be performed without waiting for four times of the instruction.

【0191】ステップS46では、読出先アドレス(adr [0191] In the step S46, the read destination address (adr
+1)から読み出された命令がタスク管理レジスタ内の何れかのビットに対するwake命令であるかを判定する。 Read from +1) instruction determines whether the wake instructions for any of the bits in the task management register. もし異なれば、ステップS5において読み出された命令を解読して実行するがもしそうであれば、ステップS47 Different If it is if so performing decodes the instruction read in step S5, step S47
において当該wake命令において指定されたjビットを操作することにより、タスクjのsleep状態を解除してステップS6に移行する。 In by operating the j bits specified in the wake instruction, the process proceeds to step S6 to release the sleep state of the task j.

【0192】図54は、第5実施形態におけるスレッド間の遷移を示す図である。 [0192] Figure 54 is a diagram showing the transition between threads in the fifth embodiment. 本図においてタスク(1)の第1スレッドにおいて印を付しているのは、タスク(1)の第1スレッドの第2命令がsleep_task命令であることを示している。 What marked in the first thread of task (1) in the figure indicates that the second instruction of the first thread of task (1) is sleep_task instruction. sleep_task命令の実行時には、第2実施形態におけるCmp_And_Wait命令の実行時と同様、第2命令の解読においてステップS41〜ステップS44が実行されてタスク(1)がsleep状態に設定された後にタスク切り換えがなされ、第3命令及び第4命令は事実上廃棄されることになる。 During execution of sleep_task instruction, similarly to the execution of Cmp_And_Wait instruction in the second embodiment, task switching is performed after the step S41~ step S44 in decoding of the second instruction is executed the task (1) is set in sleep state , the third instruction and the fourth instruction will be effectively discarded.

【0193】第1実施形態に述べたようなタスク間の切り換えが順次行われて、タスク(2)、タスク(3)、タスク [0193] The first switching is performed sequentially between tasks as described in the embodiment, the task (2), task (3), task
(4)、タスク(5)というようにタスクの巡回が行われてステップS45に移行したとする。 (4), a cyclic task is shifted to step S45 is performed so that the task (5). ステップS45においてプライオリティエンコーダ74は、sleep状態にあるタスクのビットがマスクされたラウンド値tasknにより、次に実行すべきタスクを決定する。 Priority encoder 74 in step S45 is the round value taskn where the bit of the task is masked in the sleep state, determining a task to be executed next. ここでタスク管理レジスタ13においてタスク(1)に割り当てられているビットは、タスク(1)−第1スレッドの第2命令においてsleep状態に設定されている。 Here bit assigned to task (1) in the task management register 13, task (1) - is set to sleep state in the second instruction of the first thread. そのためタスク(1)の実行はスキップされ、タスク(2)の第2スレッドが続いて実行される。 Therefore execution of the task (1) is skipped is performed following the second thread of task (2).

【0194】同様のタスク間の切り換えが順次行われて、タスク(2)、タスク(3)、タスク(4)、タスク(5)というようにタスクの巡回が行われてステップS45に移行したとする。 [0194] taking place switching sequentially between similar tasks, task (2), task (3), task (4), a cyclic task has shifted been made to step S45 so that the task (5) to. この巡回において、タスク(5)の第2スレッドの第3命令がタスク(1)のsleep状態解除を指定した In this cyclic, the third instruction of the second thread of task (5) has specified a sleep state release of the task (1)
wake_task命令であり、命令メモリ100から読み出されたものとする。 It is a wake_task instruction, and what was read from the instruction memory 100. wake_task命令が命令メモリ100から読み出されると、ステップS46の判定においてYes When wake_task instruction is read from the instruction memory 100, Yes is determined in step S46
となり、ステップS47に移行する。 Next, the process proceeds to step S47. ステップS47では、タスク管理レジスタ13のタスク(1)に割り当られたビットをオフにすることにより、タスク(1)のsleep状態の解除を行う。 At step S47, the by turning off the bits hit assigned to task (1) of the task management register 13, to release the sleep state of the task (1). 解除後、残りの命令をも同様に実行して、第2スレッド分の処理を終える。 After release, running as well the rest of the instruction, completes the second thread portion of the process.

【0195】タスク(5)の終了後、タスクがタスク(0)への切り換えられたものとする。 [0195] After the completion of the task (5), the task is assumed to have been switched to the task (0). またタスク(0)の第3スレッドが実行されて、ステップS45へと移行したとする。 The third thread of task (0) is executed, and the process proceeds to step S45. ステップS45では、タスク管理レジスタ13においてタスク(1)に割り当られているビットがオフであるかの判定がなされる。 In step S45, bits in the task management register 13 are hit assigned to task (1) a determination is made whether or off. タスク(5)の第2スレッドにおいて、タスク(1)の割り当てビットがオンに設定されたのは先に述べた通りであるから、ステップS45からステップS2、S3への移行が行われて、タスク(1)の実行が再開される。 In the second thread of task (5), because the allocation bit of the task (1) is set to ON are as previously described, it is performed the transition from step S45 to step S2, S3, task (1) execution of is resumed.

【0196】 [0196]

【発明の効果】以上のように本発明によれば、 n個のタ According to the present invention as described above, according to the present invention, n number of data
スク識別子について、そのタスクに割り当てられた数の For disk identifier, the number of assigned to the task
命令が実行されると次のタスク識別子を出力する実行タ When an instruction is executed to output a next task identifier execution data
スク指示手段と、出力されたタスク識別子で特定される A disk instruction unit, identified by the outputted task identifier
タスク中の実行すべき命令を順次指定する命令指定手段 Instruction designating means for sequentially specifying the execution to be instruction in task
と、指定された命令を実行する実行手段とを備え、前記 When, and a means for executing a specified instruction, the
実行タスク指示手段は、n個のタスクにおいて、通常の Execution task indicating means, in the n tasks, normal
タスクに割り当てられる命令数よりも少ない命令数が割 The number of instructions less than the number of instructions to be assigned to the task is assigned
り当てられるタスクであるペナルティタスクの識別子を The identifier of the penalty task is a task devoted Ri
保持するペナルティタスク保持部と、次のタスク識別子 A penalty task holding portion for holding the next task identifier
を出力すると、前記ペナルティタスク保持部を参照し When outputting, by referring to the penalty task holding portion
て、当該タスク識別子で特定されるタスクがペナルティ Te, the task identified by the task identifier penalty
タスクか否かを判定し、ペナルティタスク以外ならば第 Determines whether the task or not, the if other penalty task
1の命令数を、ペナルティタスクならば第1の命令数よ 1 of the number of instructions, the first number of instructions, if the penalty task
りも少ない第2の命令数を、当該タスクに割り当てられ Remote less the second number of instructions assigned to the task
る命令数とする命令数選択手段とを含んでいるので、本プロセッサは割込信号の発行を待つのでは無く、オーディオアウトタスク、ビデオアウトタスクを含めたn個のタスクを所定の命令数ずつ順次実行する。 Because it contains a number of instructions selecting unit for the number of instructions that, the processor rather than waiting for issuance of the interrupt signal, the audio out tasks and video out tasks of n tasks by a predetermined number of instructions, including executed sequentially.

【0197】このように順次実行されるので、オーディオアウトタスク、ビデオアウトタスクの処理を完遂させるための動作クロック数の最適な下限値を、所定の周期において実行せねばならない命令の最低消化数と、実行周期と、タスク総数とから一義的に導出することができ、それらの最適な下限値から全タスクを動作させるための動作サイクル数の最適な下限値を一義的に計算することができる。 [0197] Since the sequentially executed, audio out task, the operating clock number of the optimum lower limit for causing complete the processing of the video out task, the minimum digestion number of instructions which must be executed in a predetermined cycle an execution cycle, can be derived uniquely from the task total, the optimum lower limit of the number of operation cycles for operating all tasks from their optimal lower limit can be uniquely computed.

【0198】動作クロック数の最適な下限値が一義的に計算されるため、動作クロック信号を一段と高いものに定めずとも、オーディオアウトタスク、ビデオアウトタスクのリアルタイム性を保証でき、動作クロックが低速なタイプが多い民生機器に搭載される場合でも、MPEGストリームを好適に復号することができる [0198] Since the optimal lower limit of the operation clock number is uniquely calculated, even without determining an operation clock signal to the further high, the audio-out task, can ensure real-time video out task, the operating clock is slow even if the type is mounted on many consumer devices, it is possible to suitably decode the MPEG stream.

【0199】 [0199]

【0200】 [0200]

【0201】 [0201]

【0202】 [0202]

【0203】 [0203]

【0204】 [0204]

【0205】 [0205]

【0206】 [0206]

【0207】 [0207]

【0208】 [0208]

【0209】 [0209]

【0210】 [0210]

【0211】 [0211]

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】AVデコーダの内部構成を示す図である。 1 is a diagram showing the internal structure of the AV decoder.

【図2】MPEGストリームの階層構造と、AVデコーダの構成要素間の動作タイミングとを示すタイミングチャートである。 [Figure 2] and the hierarchical structure of the MPEG stream, is a timing chart showing the operation timing between the components of the AV decoder.

【図3】第1実施形態におけるI/Oプロセッサの内部構成を示す図である。 3 is a diagram showing the internal configuration of the I / O processor in the first embodiment.

【図4】第1実施形態における命令読出回路10の内部構成を示す図である。 4 is a diagram showing the internal configuration of the instruction read circuit 10 in the first embodiment.

【図5】命令読出回路10内のセレクタ25の出力論理表を示す図である。 5 is a diagram showing an output logic table of the selector 25 in the instruction read circuit 10.

【図6】第1実施形態におけるタスク管理部15の内部構成を示す図である。 6 is a diagram showing the internal configuration of the task management unit 15 in the first embodiment.

【図7】(a)タスク識別子taskidのビット構成を示す図である。 7 (a) is a diagram showing a bit configuration of the task identifier taskid. (b)ラウンド値のビット構成を示す図である。 (B) is a diagram showing a bit configuration of the round value.

【図8】第1実施形態において命令メモリ100に記憶されている非同期イベントタスクがどのように構成されているかを示す図である。 8 is a diagram showing that it is configured to how the asynchronous event tasks stored in the instruction memory 100 in the first embodiment.

【図9】レジスタをオペランドに指定した算術演算命令の命令フォーマットを示す。 Figure 9 shows the instruction format of arithmetic instructions which specify a register as an operand.

【図10】レジスタにて読出先アドレス、書込先アドレスを指定したメモリロード命令/メモリストア命令の命令フォーマットを示す。 FIG. 10 is a read destination address in the register, showing the instruction format of the memory load instruction / memory store instruction to specify the write destination address.

【図11】8bit、11bitの即値の指定が可能な比較命令/演算命令/分岐命令の命令フォーマットを示す。 [11] 8bit, shows the instruction format of the comparison instruction / operation instruction / branch instructions which can specify the immediate 11bit.

【図12】第1実施形態において、IPC,IF1,IF2,DECPC [12] In the first embodiment, IPC, IF1, IF2, DECPC
がどのように更新されるかを示すタイミングチャートである。 There is a timing chart showing how to update.

【図13】タスク(0)からタスク(5)までにどのようにスレッドを割り当てるかを示す図である。 13 is a diagram showing how to allocate threads from task (0) to task (5).

【図14】第2実施形態において命令メモリ100に記憶されている非同期イベントタスクがどのような命令にて構成されているかを示す図である。 14 is a diagram showing how are composed of what instructions are asynchronous event tasks stored in the instruction memory 100 in the second embodiment.

【図15】wait_until_next命令の命令フォーマットの一例を示す。 Figure 15 shows an example instruction format of wait_until_next instructions.

【図16】第2実施形態において、IPC,IF1,IF2,DECPC [16] In the second embodiment, IPC, IF1, IF2, DECPC
がどのように更新されるかを示すタイミングチャートである。 There is a timing chart showing how to update.

【図17】第2実施形態においてタスク(0)からタスク [Figure 17] task from task (0) in the second embodiment
(5)までにどのようにスレッドを割り当てるかを示す図である。 (5) is a diagram showing how to allocate threads to.

【図18】第3実施形態におけるAVデコーダの内部構成を示す図である。 18 is a diagram showing the internal structure of the AV decoder in the third embodiment.

【図19】第3実施形態における命令読出回路10の内部構成を示す図である。 19 is a diagram showing the internal configuration of the instruction read circuit 10 in the third embodiment.

【図20】第3実施形態における命令読出回路10内のセレクタ25の出力論理表を示す図である。 20 is a diagram showing an output logic table of the selector 25 in the instruction read circuit 10 in the third embodiment.

【図21】第3実施形態におけるスレッドマネージャー61の内部構成を示す図である。 21 is a diagram showing the internal configuration of the thread manager 61 in the third embodiment.

【図22】タスク管理レジスタ13においてwait状態管理用に割り当られた6bitのビット構成を示す図である。 22 is a diagram showing a bit configuration of the split hit the 6bit for wait state management in the task management register 13.

【図23】第3実施形態における状態監視レジスタのビット構成を示す図である。 23 is a diagram showing the bit structure of the state monitoring register in the third embodiment.

【図24】(a)第3実施形態においてどのタスクにCm [Figure 24] (a) Cm in which tasks in the third embodiment
p_and_Wait命令が含まれているかを示す図である。 It illustrates how p_and_Wait instruction is included. (b)事象j0,j3,j4,j5が不成立である状態において、 (B) event j0, j3, j4, j5 is in the state is not established,
図24(a)に示す各タスクにどのようにスレッドが割り当てられるかを示す図である。 Is a diagram showing how the thread is assigned to each task shown in FIG. 24 (a). (c)事象j0のみが成立したフレームにおいて、図24 (C) In frame only event j0 is established, FIG. 24
(a)に示す各タスクにどのようにスレッドが割り当てられるかを示す図である。 Is a diagram showing how the thread is assigned to each task shown in (a). (d)事象j0が成立したフレーム以降において、図24 In (d) subsequent frame event j0 is established, FIG. 24
(a)に示す各タスクにどのようにスレッドが割り当てられるかを示す図である。 Is a diagram showing how the thread is assigned to each task shown in (a).

【図25】Cmp_and_Wait命令の命令フォーマットの一例を示す。 25 shows an example instruction format of Cmp_and_Wait instructions.

【図26】Cmp_and_Wait命令解読時においてIPC,IF1,IF In FIG. 26 Cmp_and_Wait instruction during the decoding IPC, IF1, IF
2,DECPCがどのように更新され、タスク管理レジスタ1 2, DECpc updated how the task management register 1
3のビット及びカウンタの上限値がどう設定されるかを示すタイミングチャートである。 The upper limit of the bit and the counter 3 is a timing chart showing how the set.

【図27】Cmp_and_Wait命令が待っていた事象の未成立時のフレームにおいて、IPC,IF1,IF2,DECPCがどのように更新され、タスク管理レジスタ13のビット及びカウンタの上限値がどう設定されるかを示すタイミングチャートである。 [27] In not met when the frame of events Cmp_and_Wait instruction was waiting, or IPC, IF1, IF2, DECpc how the updated upper limit value of the bit and the counter of the task management register 13 is what set is a timing chart showing the.

【図28】Cmp_and_Wait命令が待っていた事象の成立時のフレームにおいて、IPC,IF1,IF2,DECPCがどのように更新され、タスク管理レジスタ13のビット及びカウンタの上限値がどう設定されるかを示すタイミングチャートである。 [28] In established time frame of events Cmp_and_Wait instructions were waiting, IPC, IF1, IF2, DECpc updated how is whether the upper limit value of the bit and the counter of the task management register 13 is what set it is a timing chart showing.

【図29】事象の成立時以降のフレームにおいて、IPC, [29] In the following frame when the establishment of the event, IPC,
IF1,IF2,DECPCがどのように更新され、タスク管理レジスタ13のビット及びカウンタの上限値がどう設定されるかを示すタイミングチャートである。 IF1, IF2, DECpc updated how is a timing chart showing how the upper limit value of the bit and the counter of the task management register 13 is what set.

【図30】第3実施形態におけるタスク管理部15の内部構成を示す図である。 30 is a diagram showing the internal configuration of the task management unit 15 in the third embodiment.

【図31】第3実施形態におけるスケジューラ62の内部構成を示す図である。 31 is a diagram showing the internal configuration of the scheduler 62 in the third embodiment.

【図32】セレクタ82が緊急タスクの識別子を出力する条件を示す図である。 [Figure 32] selector 82 is a diagram showing the condition of outputting an identifier of the emergency task.

【図33】cstate記憶部85が記憶しているモードの状態遷移図である。 [Figure 33] cstate storage unit 85 is a state transition diagram of the mode stored therein.

【図34】緊急状態遷移許可信号、タスク切替信号chg_ [Figure 34] emergency state transition permission signal, the task switching signal chg_
task_ex、cstateの遷移に応じて、どのタスク識別子が出力されるかのタイミングを示すタイミングチャートである。 Task_ex, depending on the transition of cstate, is a timing chart indicating the timing which task identifier is outputted.

【図35】(a)通常状態において各タスクにどのようにスレッドを割り当てるかを示す図である。 [Figure 35 (a) In the normal state is a diagram showing how to allocate a thread to each task. (b)緊急状態において各タスクにどのようにスレッドを割り当てるかを示す図である。 (B) is a diagram showing how to allocate a thread in an emergency state to each task.

【図36】第4実施形態におけるタスク管理部15の内部構成を示す図である。 36 is a diagram showing the internal configuration of the task management unit 15 in the fourth embodiment.

【図37】タスク管理レジスタ13においてsleep状態に割り当られたビットの割り当てを示す図である。 37 is a diagram showing the allocation of bits hit split into sleep state in the task management register 13.

【図38】第4実施形態におけるスケジューラ62の内部構成を示す図である。 38 is a diagram showing the internal configuration of the scheduler 62 in the fourth embodiment.

【図39】第4実施形態において、sleep命令及びwake [39] In the fourth embodiment, sleep instructions and wake
命令が各タスクにどのように配置されているかを示す図である。 Instruction is a diagram showing how are arranged how each task.

【図40】sleep命令及びwake命令の命令フォーマットの一例を示す。 Figure 40 shows an example instruction format of sleep instruction and wake instructions.

【図41】第4実施形態においてIPC,IF1,IF2,DECPCがどのように更新されるかを示すタイミングチャートである。 41 is a timing chart showing how IPC, IF1, IF2, DECPC are updated how the in the fourth embodiment.

【図42】(a)〜(d)第4実施形態において、各タスクにどのようにスレッドを割り当てるかを示す図である。 [Figure 42] (a) ~ (d) In the fourth embodiment, showing how assigning a thread to each task.

【図43】第5実施形態におけるタスク管理部15の内部構成を示す図である。 43 is a diagram showing the internal configuration of the task management unit 15 in the fifth embodiment.

【図44】第5実施形態におけるスケジューラ62の内部構成を示す図である。 44 is a diagram showing the internal configuration of the scheduler 62 in the fifth embodiment.

【図45】第1実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 [Figure 45] flow showing the overall control of the I / O processor in the first embodiment - is bets - tea.

【図46】第2実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 [Figure 46] flow showing the overall control of the I / O processor in the second embodiment - is bets - tea.

【図47】第3実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 [Figure 47] flow showing the overall control of the I / O processor in the third embodiment - a DOO - tea.

【図48】第4実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 [Figure 48] flow showing the overall control of the I / O processor in the fourth embodiment - it is bets - tea.

【図49】第5実施形態におけるI/Oプロセッサの全体制御を示すフロ−チャ−トである。 [Figure 49] flow showing the overall control of the I / O processor in the fifth embodiment - a DOO - tea.

【図50】第1実施形態におけるスレッドの割り当てがどのように進行するかを示す図である。 50 is a diagram showing how the thread assignment of the first embodiment is how to proceed.

【図51】第2実施形態におけるスレッドの割り当てがどのように進行するかを示す図である。 51 is a diagram showing how the thread of the allocation in the second embodiment is how to proceed.

【図52】第3実施形態におけるスレッドの割り当てがどのように進行するかを示す図である。 52 is a view showing how the thread of the allocation in the third embodiment is how to proceed.

【図53】第4実施形態におけるスレッドの割り当てがどのように進行するかを示す図である。 FIG. 53 is a diagram showing how the thread assignment of the fourth embodiment is how to proceed.

【図54】第5実施形態におけるスレッドの割り当てがどのように進行するかを示す図である。 FIG. 54 is a diagram showing how the thread allocation in the fifth embodiment is how to proceed.

【図55】第1実施形態におけるスレッド割り当てにてビデオアウトタスク、オーディオアウトタスクを実行する場合に動画ストリーム、オーディオストリームがどのように処理されるかを示すタイミングチャートである。 [Figure 55] Video out tasks in a thread allocation in the first embodiment, is a timing chart showing how the video stream, audio stream how they are processed when executing the audio out task.

【図56】タスク別にサイクル数を可変にする場合のスレッドマネージャーの構成図である。 FIG. 56 is a configuration diagram of a thread manager in the case of the number of cycles for each task variable.

【図57】割込信号にてオーディオアウトタスク、ビデオアウトタスクを実行する場合に動画ストリーム、オーディオストリームの処理を何時までに完遂せねばならないかを示すタイミングチャートである。 [Figure 57] audio out tasks in the interrupt signal, which is a timing chart showing the video stream, or must be completed by the time what time the processing of the audio stream when you run a video-out task.

【符号の説明】 DESCRIPTION OF SYMBOLS

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 10 instruction read circuit 11 the instruction decode control unit 12 registers the set 13 task management register 14 operation performing unit 15 the task management unit 20 IF1 + 1 holding section 21 increment circuit 22 IF2 holding portion 23 DECpc holding section 24 by task PC storage unit 25 4 Input -1 output selector 26 2 input -1 output selector 52 the counter 53 converter 54 the comparator 55 the selector 61 slot manager 62 scheduler 71 task ID storage 72 task ID storage 73 the task round management unit 74 the priority encoder 75 the task round management unit 76 converter 77 emergency task masking unit 80 priority encoder 81 instruction decode control unit 82 the selector 83 the task ID storage unit 84 execution unit 85 CSTATE storage unit 93 task skip management circuit 94 inverter 100 instruction memory 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 コントロールバス Stream input unit 102 buffer memory 104 Setup section 105 VLD section 106 IQ / IDCT unit 107 a motion compensation unit 108 video output unit 109 audio output unit 110 BM buffer memory controller 111 RAM controller 112 FIFO controller 113 processor 115 a host I / O unit 121 buffers memory bus 122 SD-RAM bus 123 bitstream bus 124 control bus

───────────────────────────────────────────────────── フロントページの続き (72)発明者 平井 誠 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 清原 督三 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (56)参考文献 特開 平1−99132(JP,A) 特開 平6−202887(JP,A) 特開 平8−249194(JP,A) 特開 平6−187170(JP,A) 特開 平1−154237(JP,A) 特開 平7−110773(JP,A) 藤井茂樹,外4名,メディア処理用組 み込みOS,情報処理学会研究報告,日 本,社団法人情報処理学会,1998年2月 26日,第98巻,第15号(98−OS− 77),p. ────────────────────────────────────────────────── ─── of the front page continued (72) inventor Makoto Hirai Osaka Prefecture Kadoma Oaza Kadoma 1006 address Matsushita unit intra-industry Co., Ltd. (72) inventor Tadashi Kiyohara three Osaka Prefecture Kadoma Oaza Kadoma 1006 address Matsushita device industry shares within the company (56) reference Patent flat 1-99132 (JP, a) JP flat 6-202887 (JP, a) JP flat 8-249194 (JP, a) JP flat 6-187170 (JP, a ) Patent flat 1-154237 (JP, a) JP flat 7-110773 (JP, a) Shigeki Fujii, and four others, OS narrowing seen media processing for the set, IPSJ, Japan, Japan information processing Society, February 26, 1998, the first 98 vol., No. 15 (98-OS- 77), p. 61−66 菊田幸男,他1名,ディジタル衛星放 送 PerfecTV! 61-66 Yukio Kikuta, and one other person, a digital satellite broadcasting PerfecTV! 用受信機 CS R−P1,東芝レビュー,日本,株式会 社東芝,1997年2月1日,第52巻,第2 号,p. Use receiver CS R-P1, Toshiba Review, Japan, stock company Toshiba, February 1, 1997, Vol. 52, No. 2, p. 63−66 (58)調査した分野(Int.Cl. 7 ,DB名) G06F 9/46 - 9/54 G06F 9/30 - 9/355 G06F 9/40 - 9/42 H04N 7/12 H04N 7/24 - 7/68 63-66 (58) investigated the field (Int.Cl. 7, DB name) G06F 9/46 - 9/54 G06F 9/30 - 9/355 G06F 9/40 - 9/42 H04N 7/12 H04N 7 / 24 - 7/68

Claims (4)

    (57)【特許請求の範囲】 (57) [the claims]
  1. 【請求項1】 n個のタスクを実行対象タスクとしたプロセッサであって、 n個のタスク識別子について、そのタスクに割り当てられた数の命令が実行されると次のタスク識別子を出力する実行タスク指示手段と、 出力されたタスク識別子で特定されるタスク中の実行すべき命令を順次指定する命令指定手段と、 指定された命令を実行する実行手段とを備え、 前記実行タスク指示手段は、 n個のタスクにおいて、通常のタスクに割り当てられる命令数よりも少ない命令数が割り当てられるタスクであるペナルティタスクの識別子を保持するペナルティタスク保持部と、 次のタスク識別子を出力すると、前記ペナルティタスク保持部を参照して、当該タスク識別子で特定されるタスクがペナルティタスクか否かを判定し、ペナルティタスク以外な 1. A processor with an execution target task n number of tasks, the n for task identifier, execution task when the number of instructions assigned to the task is executed for outputting a next task identifier comprising an instruction unit, an instruction specifying means for specifying an instruction to be executed in the task specified by the outputted task identifier sequence, and execution means for executing a specified instruction, the execution task indicating means, n in this task, the penalty task holding portion for holding an identifier of a penalty task is the task instruction number smaller than the number of instructions to be allocated to the normal task is assigned, and outputs the next task identifier, the penalty task holding portion see, task specified by the task identifier to determine whether a penalty task, I except penalty task らば第1の命令数を、ペナルティタスクならば第1の命令数よりも少ない第2の命令数を、当該タスクに割り当てられる命令数とする命令数選択手段とを含むことを特徴とするプロセッサ。 Mule processor a first number of instructions, the second number of instructions less than the first number of instructions if the penalty task, characterized in that it comprises a number of instructions selecting unit for the number of instructions assigned to the task .
  2. 【請求項2】 n個のタスクを実行対象タスクとしたプロセッサであって、 n個のタスク識別子について、そのタスクに割り当てられた数の命令が実行されると次のタスク識別子を出力する実行タスク指示手段と、 出力されたタスク識別子で特定されるタスク中の実行すべき命令を順次指定する命令指定手段と、 指定された命令を実行する実行手段とを備え、 前記実行タスク指示手段は、 発行された命令数をカウントするカウンタと、 カウンタのカウント値を実行中タスクに割り当てられた命令数と比較し、一致するとタスク切替信号を出力すると共に前記カウンタのリセットを行う比較器と、 タスク切替信号が発される度に次順位のタスク識別子を生成して出力するタスク識別子出力部と、 第1の命令数と、第1の命令数より少ない第2 2. A processor that an execution target task n number of tasks, the n for task identifier, execution task when the number of instructions assigned to the task is executed for outputting a next task identifier an instruction unit, an instruction specifying means for specifying an instruction to be executed in the task specified by the outputted task identifier sequence, and a means for executing a specified instruction, the execution task indicating means issues a counter for counting the number of instructions that are, compared to the number of instructions counted value assigned to a running task counter, a matching comparator for resetting said counter and outputs a task switching signal, the task switching signal a task identifier outputting unit that generates the following order of task identifier outputting time in emitted, a first number of instructions, less than the first number of instructions the second 命令数を保持する命令数保持部と、 n個のタスクにおいて第2の命令数を割り当てるべきタスクであるペナルティタスクの識別子を保持するペナルティタスク保持部と、 タスク識別子出力部がタスク識別子を出力すると、当該タスク識別子がペナルティタスクの識別子であるかを判定する判定部と、 タスク識別子がペナルティタスクを示すと判定されれば、命令数保持部が保持する第2の命令数を、ペナルティタスクを示すと判定されなければ、第1の命令数を当該タスクに割り当てれられた命令数として、比較器に出力する命令数選択部とを備えることを特徴とするプロセッサ。 A number of instructions holding portion for holding the number of instructions, and the penalty task holding portion for holding an identifier of a penalty task is the task to be assigned a second number of instructions in the n tasks, the task identifier outputting unit outputs the task identifier or a a determination unit the task identifier is an identifier of a penalty task, if the task identifier is determined to indicate a penalty task, a second number of instructions held by the instruction number storing unit, indicating a penalty task if it is determined that the processor a first number of instructions as the number of instructions that are being assigned to the task, characterized in that it comprises a number of instructions selecting unit which outputs to the comparator.
  3. 【請求項3】 何れかのタスクには、事象成立の真偽条件の指定を含む事象監視命令が含まれており、 前記実行手段は前記命令指定手段によって指定された命令を解読する解読手段と、 解読手段による解読結果が事象監視命令であれば、事象監視命令において指定された事象成立の真偽を確認する旨の演算を実行する演算手段とを備え、 前記ペナルティタスク保持部は、 演算手段による演算結果が事象不成立を示すものならば、事象監視命令を含んでいたタスクのタスク識別子をペナルティタスクの識別子として保持することを特徴とする請求項1又は2記載のプロセッサ。 To 3. Any of tasks includes a event monitoring command including designation of authenticity conditions events satisfied, the executing means and decoding means for decoding the instruction specified by the instruction specifying means , if the decryption result is the event monitoring instruction by decoding means, and an arithmetic means for performing the calculation of the effect to confirm the authenticity of the specified event satisfied in the event monitoring instruction, the penalty task holding unit, the calculating means if the operation result indicates the event is not satisfied by the processor of claim 1, wherein retaining the task identifier of the task which included event monitoring instruction as an identifier of a penalty task.
  4. 【請求項4】 前記プロセッサは、その内部にバッファと、メモリとを有する情報処理システムに備えられ、 前記プロセッサは、内部バッファ及びメモリにおける状態を示す状態レジスタを複数有し、 前記事象監視命令は、複数の状態レジスタの何れかについての指定と、即値指定とを有し、 前記演算手段は、 解読手段による解読結果が事象監視命令であれば、事象監視命令において指定された状態監視レジスタの保持値と、当該命令において指定された即値とを用いた演算を行うことを特徴とする請求項3記載のプロセッサ。 Wherein said processor includes a buffer therein, provided in an information processing system having a memory, wherein the processor has a plurality of status register indicating the state of the internal buffer and the memory, the event monitoring instruction includes a designation of one of the plurality of status registers, and an immediate specification, the arithmetic means, decryption result of the decoding means is when the event monitoring instruction, the state monitoring register specified in the event monitoring instruction a holding value, the processor of claim 3, wherein the performing the operation using the immediate value specified in the instruction.
JP5207398A 1997-03-04 1998-03-04 Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently Expired - Lifetime JP3356677B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP4937097 1997-03-04
JP9-49370 1997-03-04
JP5207398A JP3356677B2 (en) 1997-03-04 1998-03-04 Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5207398A JP3356677B2 (en) 1997-03-04 1998-03-04 Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently

Publications (2)

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

Family

ID=26389754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5207398A Expired - Lifetime JP3356677B2 (en) 1997-03-04 1998-03-04 Even tasks to be executed asynchronously number, processor capable of executing the asynchronous event tasks efficiently

Country Status (1)

Country Link
JP (1) JP3356677B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4538161B2 (en) * 2000-03-08 2010-09-08 パナソニック株式会社 Video and audio processing apparatus
JP3813930B2 (en) 2002-01-09 2006-08-23 松下電器産業株式会社 Processor and program execution method
JP4750350B2 (en) 2003-03-13 2011-08-17 パナソニック株式会社 Task switching apparatus, method, and program
JP4982347B2 (en) * 2007-12-11 2012-07-25 株式会社東芝 Program for detecting an update of image information, method and image processing apparatus
JP5010492B2 (en) 2008-01-31 2012-08-29 株式会社東芝 Communication device, method, and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
菊田幸男,他1名,ディジタル衛星放送 PerfecTV!用受信機 CSR−P1,東芝レビュー,日本,株式会社東芝,1997年2月1日,第52巻,第2号,p.63−66
藤井茂樹,外4名,メディア処理用組み込みOS,情報処理学会研究報告,日本,社団法人情報処理学会,1998年2月26日,第98巻,第15号(98−OS−77),p.61−66

Also Published As

Publication number Publication date Type
JPH10307731A (en) 1998-11-17 application

Similar Documents

Publication Publication Date Title
US5774206A (en) Process for controlling an MPEG decoder
US5798719A (en) Parallel Huffman decoder
US5699117A (en) Moving picture decoding circuit
US6917652B2 (en) Device and method for decoding video signal
US4823201A (en) Processor for expanding a compressed video signal
US6389171B1 (en) Method and apparatus for a digital video cassette (DVC) decode system
US5646693A (en) Memory utilization for video decoding and display with 3:2 pull-down
US5990958A (en) Apparatus and method for MPEG video decompression
US6014095A (en) Variable length encoding system
US6041404A (en) Dual function system and method for shuffling packed data elements
US6963613B2 (en) Method of communicating between modules in a decoding system
US5961628A (en) Load and store unit for a vector processor
US6084911A (en) Transmission of coded and compressed voice and image data in fixed bit length data packets
US6842219B2 (en) Moving picture decoding processor for multimedia signal processing
US20060193383A1 (en) Method of operating a video decoding system
US5589885A (en) Moving picture coding and decoding circuit
US6173408B1 (en) Processor
US20060088286A1 (en) Information processing apparatus and method, recording medium, and program
US6119213A (en) Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
US20020031184A1 (en) Encoding apparatus and method of same and decoding apparatus and method of same
US20030002578A1 (en) System and method for timeshifting the encoding/decoding of audio/visual signals in real-time
US20050066330A1 (en) Method and system for performing real-time operation
US20080126812A1 (en) Integrated Architecture for the Unified Processing of Visual Media
US20060133770A1 (en) Information processing apparatus and method, recording medium, and program
US6654539B1 (en) Trick playback of digital video data

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

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

SZ02 Written request for trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z02

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

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