JP2007026095A - 並列演算装置 - Google Patents

並列演算装置 Download PDF

Info

Publication number
JP2007026095A
JP2007026095A JP2005207413A JP2005207413A JP2007026095A JP 2007026095 A JP2007026095 A JP 2007026095A JP 2005207413 A JP2005207413 A JP 2005207413A JP 2005207413 A JP2005207413 A JP 2005207413A JP 2007026095 A JP2007026095 A JP 2007026095A
Authority
JP
Japan
Prior art keywords
task
processing
processor
mode
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005207413A
Other languages
English (en)
Inventor
Manabu Kuroda
学 黒田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005207413A priority Critical patent/JP2007026095A/ja
Priority to US11/485,989 priority patent/US20070016908A1/en
Publication of JP2007026095A publication Critical patent/JP2007026095A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 優先度の異なる複数のタスクを時分割で処理しつつ、処理するタスクのリアルタイム性を確保することを可能とする並列演算装置を提供する。
【解決手段】 メインプロセッサは、時間の設定を受け付けてサブプロセッサからの処理完了通知を所定時間抑止する通知制御部を備え、サブプロセッサへ処理の開始を指示すると、優先度の異なるタスクを処理するよう処理タスクを切り替えるとともに通知制御部に所定時間を設定することで、サブプロセッサの処理時間にかかわらず、少なくとも所定時間は優先度の異なるタスクを処理することができ、優先度の異なるタスクを、リアルタイム性を確保しつつ処理することができる。
【選択図】図1

Description

本発明は、特定の処理を行うための専用プロセッサを備える並列演算装置に関し、特に、複数のタスクを時分割で処理する技術に関する。
従来、汎用プロセッサの他に、特定の処理を行う専用プロセッサを備えて複数のタスクを時分割で処理する並列演算装置がある。この並列演算装置は、特定の一部の処理を専用プロセッサに処理させることで演算の高速化を実現している(特許文献1参照)。
特に、リアルタイム性を要求される処理を実行する場合においては、並列演算装置は、逐次生成される複数のタスクを、リアルタイム性を維持するために高速で処理することが要求されるため、この場合において専用プロセッサを備えることによる演算の高速化の効果は極めて大きい。
リアルタイム性を要求される処理とは、例えば、動画と音声からなる映像データを実時間で記録し再生する場合の処理などである。汎用プロセッサのみではリアルタイム性を維持しつつタスクの処理を行うことが困難な処理であっても、例えばMPEG(Moving Picture Experts Group)動画の符号化や復号化処理におけるDCT(Discrete Cosine Transform)処理やME(Motion Estimation)処理など、汎用プロセッサでは演算量が大きくなる特定の処理を、処理に特化した専用プロセッサに行わせることで、処理に要するクロックサイクルの数を低減することが可能となる。これにより、並列演算装置は、逐次生成される複数のタスクを高速で処理してリアルタイム性を維持することができる。
ところで、上述した並列演算装置における汎用プロセッサは、特定の処理を要する際に専用プロセッサにその処理の開始を指示する第1種タスクと、汎用プロセッサのみで処理を行う第2種タスクとを時分割で処理するが、この際に、専用プロセッサによる特定の処理を要する第1種タスクを、第2種タスクよりも高い優先度で処理し、第1種タスクにおける特定の処理の開始を専用プロセッサに指示してから専用プロセッサによる実行完了が通知されるまでの間に第2種タスクを処理し、実行完了が通知されると、ハードウェアによる割り込み等を行って第1種タスクの処理を開始する場合がある。
例えば、映像データの再生を行う場合において、MPEGの動画データの再生処理を第1種タスク、音声データの再生処理を第2種タスクとしたときに、最低限動画データの再生処理はリアルタイム性を確保したい場合がある。この場合、汎用プロセッサは、専用プロセッサによる特定の処理が完了次第、動画データの再生処理を音声データの再生処理よりも優先して実行することで、動画の再生処理が破綻しないようにすることができる。
一般的なOS(Operating System)によるタスクの切り替えでは、タスク切り替え時に発生するオーバヘッドのために第1種タスクをリアルタイムに処理できない可能性がある場合であっても、この場合のように、ハードウェアによる割り込み等によってタスク切り替え時に発生するオーバヘッドを極力小さくすることで、汎用プロセッサは、リアルタイム性を確保しつつ第1種タスクの処理を行うことが出来る。
例えば、リアルタイム性を維持するためには汎用プロセッサにおいて約24マイクロ秒程度の時間粒度でのタスク切り替えを要求される場合において、100〜1000マイクロ秒程度の周期が限度の一般的なOSのラウンドロビン型のスケジューリングによるタスク切り替えを用いると、タスクの切り替え時に発生するオーバヘッドが大きすぎて第1種タスクをリアルタイムに処理できない場合であっても、上述の構成を備えることで、タスク処理を実行するにあたってリアルタイム性を維持することができる。
このように、汎用プロセッサにおいて、第1種タスクの処理を優先して行うことで、並列演算装置は、第1種タスクのリアルタイム性を確保しつつタスクの処理を行うことができる。
特許第3007612号公報
しかしながら、上述の構成では、第1種タスクのリアルタイム性は確保できるものの、第2種タスクの処理についてもリアルタイム性を要する場合に、第2種タスクのリアルタイム性を確保できないおそれがある。
なぜなら、上述の構成における汎用プロセッサは、第1種タスクの処理を、第2種タスクよりも高い優先度で実行しており、また、第1種タスクの特定の処理を専用プロセッサに行わせている間に第2種タスクを汎用プロセッサによって処理し、専用プロセッサが処理を終えて出力した実行完了の通知を受け付けると再び第1種タスクを優先して処理することとしているため、汎用プロセッサにおける第2種タスクの処理時間が、第1種タスクの特定の処理を専用プロセッサによって実行させている時間に依存するからである。
すなわち、専用プロセッサにおいてタスクの処理が実行されている間に汎用プロセッサにおいて第2種タスクの処理を行うため、専用プロセッサにおけるタスクの処理時間が汎用プロセッサにおける第2種タスクのリアルタイム性を維持するために必要な演算を行うのに十分な時間でない場合は、汎用プロセッサは、第2種タスクを、リアルタイム性を維持しつつ処理することが困難となる。
そこで、本発明は、複数のタスクを時分割で処理しつつ、各々のタスクのリアルタイム性を確保することを可能とする並列演算装置を提供することを目的とする。
上記課題を解決するため、本発明にかかる並列演算装置は、第1プロセッサと、前記第1プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第2プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置であって、前記第1プロセッサは、第1の処理を行った後に第2の処理を前記第2プロセッサによって開始させる第1種タスクを優先して処理する第1モードと、自プロセッサでのみ処理する第2種タスクがあるときに前記第1種タスクの有無にかかわらず前記第2種タスクを処理する第2モードとを選択的に適用して処理タスクを切り替えるタスク切り替え制御手段を備え、前記タスク切り替え制御手段は、前記第1種タスクを実行して前記第2プロセッサに前記第2の処理を開始させる指示を行うと、前記第2モードの適用を開始し、前記第2モードを適用してから少なくとも所定時間が経過するまで前記第1モードの適用を抑止し、前記第2の処理が完了し、かつ、前記所定時間が経過すると、前記第1モードの適用を開始することを特徴とする。
これにより、第1プロセッサは、第1種タスクの第2の処理を実行させるための指示を第2プロセッサへ行ってから所定時間が経過する前に第2プロセッサによる処理が完了した場合であっても、所定時間が経過するまで第2種タスクの処理を行うので、リアルタイム性を維持しつつ第2種タスクを処理する必要がある場合において、第2種タスクの処理時間を少なくとも所定時間は確保することができる。そのため、第1プロセッサは、リアルタイム性を確保するのに必要な処理時間を第2種タスクの実行に割り当てることができる。
また、例えば、予め定められたタイムスライスでタスクの優先度を定めてタスクの処理を行うラウンドロビン方式のタスクスケジューリングでは、各々のタスクは、一般的に、定められた順序およびタイムスライスで切り替わって処理される。そのため、一般的に、予めあるタスクの処理を所定時間実行させるようスケジューリングすることは可能であるが、所定時間経過前にタスクの処理が完了した場合に、所定時間が経過するまでに他のスケジューリングされていないタスクを処理することはできない。
これに対し、本発明の並列演算装置における第1プロセッサは、第2プロセッサへの指示開始から少なくとも所定時間が経過するまでは第2モードを適用して第2種タスクを処理することとしている。
したがって、所定時間が経過する前に第2種タスクのうちの、あるタスクの処理が完了していれば、処理が完了した時点から他の第2種タスクの処理を実行開始させることができ、処理を要する第2種タスクが何ら存在しなければ第1種タスクの処理の実行も開始させることができるので、リアルタイム性を確保するためのタスク切り替えを行いつつ、従来の、所定のタイムスライスで切り替えるタスクスケジューリング方式と比べて、プロセッサの利用率およびタスク処理効率を向上させ得る。
また、前記タスク切り替え制御手段は、前記所定時間の設定を受け付けて、設定された時間が経過するまで前記実行完了の通知が前記第1プロセッサによって受け付けられるのを抑止し、前記設定された時間が経過すると、前記抑止を解除する通知制御部を含み、前記タスク切り替え制御手段は、前記第2モードの適用を開始した後に前記実行完了の通知を受け付けると前記第1モードの適用を開始し、前記指示を行うと、前記通知制御部に所定時間を設定するとともに前記第2モードの適用を開始し、当該所定時間が経過するまでは前記通知制御部によって前記抑止を行って前記第1モードの適用を抑止することとしてもよい。
また、前記タスク切り替え制御手段は、さらに、前記第1プロセッサにおいて処理するタスクの優先度を制御する優先度制御部を含み、前記タスク切り替え制御手段は、前記第2モードの適用を開始した後に前記実行完了の通知を受け付けるとタスクの優先度に従って第1種タスクの処理を開始し、前記指示を行うと、前記優先度制御部によって前記第2種タスクの優先度を前記第1種タスクよりも高くしてタスクの処理を行うことで前記第2モードの適用を開始し、前記第2モードを適用してから前記所定時間が経過するまでは前記第2種タスクの優先度を第1種タスクよりも高くして前記第1モードの適用を抑止し、前記所定時間経過後は前記第1種タスクの優先度を前記第2種タスクよりも高くして前記第1モードの適用を開始することとしてもよい。
これにより、第1プロセッサ自身が所定時間を設定するので、第1プロセッサは、第1プロセッサにおいて実行した処理内容に応じて所定時間の設定を行うことができる。
したがって、例えば第1プロセッサにおいて実行した処理と、リアルタイム性を確保するのに必要な第2種タスクの処理時間とに関連がある場合において、第2種タスクの処理時間を必要な時間だけ確保することができる。
また、前記タスク切り替え制御手段は、前記所定時間を、所定の固定値として前記第1モードおよび前記第2モードを選択的に適用することとしてもよい。
これにより、第2モードの適用後、第1モードの適用を抑止する期間が固定されるので、抑止する期間を算出する処理を省くことができる。
また、前記第1プロセッサは、前記第1モードが適用されている適用期間を計測する計測手段を備え、前記タスク切り替え制御手段は、前記指示を行うときまで適用していた前記適用期間に応じて前記所定時間を決定することとしてもよい。
これにより、第1モードが適用されて第1種タスクの処理が実行されている期間に応じて所定時間を決定するので、第1プロセッサにおける第1種タスクの処理時間の変動に応じて第2種タスクの処理時間を長くしたり短くしたりすることができる。
したがって、例えば、第1種タスクの処理時間に応じてリアルタイム性を維持するために必要な第2種タスクの処理時間が変動する場合において、第1プロセッサにおける第1種タスクの処理時間が変動したとしても、その変動に応じて、第2種タスクの処理に必要な処理時間を確保して所定時間を決定することができる。
また、前記タスク切り替え制御手段は、前記所定時間を、前記適用期間と一定比率になるように決定することとしてもよい。
これにより、第1プロセッサにおいて、第1種タスクの処理を行っている時間と第2種タスクの処理を行っている時間とを一定の比率にしてタスクの処理を行うので、予め第1種タスクの処理量と第2種タスクの処理量との比率が判明している場合等において、第1プロセッサにおけるタスク切り替えを従来より適切に行い得る。
また、前記タスク切り替え制御手段は、さらに、所定の遅延時間の設定を受け付けて、前記第1プロセッサが前記指示を行ってから、所定の遅延時間が経過するまで前記第2プロセッサによる処理の実行の開始を遅らせる処理要求遅延部を含み、前記タスク切り替え制御手段は、前記指示を行うときに前記処理要求遅延部に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始することとしてもよい。
また、前記タスク切り替え制御手段は、さらに、所定の遅延時間の設定を受け付けて、前記第2プロセッサが実行完了を通知してから当該通知を受け付けるのを所定の遅延時間が経過するまで遅らせる完了通知遅延部を含み、前記タスク切り替え制御手段は、前記指示を行うときに前記完了通知遅延部に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始することとしてもよい。
また、前記第1プロセッサは、さらに、所定の遅延時間の設定を受け付けて、前記第2プロセッサが処理を実行しているときに前記処理の実行を所定の遅延時間だけ停止させるサブプロセッサ制御手段を備え、前記タスク切り替え手段は、前記指示を行うときに前記サブプロセッサ制御手段に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記指示を行って前記第2プロセッサに処理を実行させると、当該処理を前記サブプロセッサ制御手段によって所定の遅延時間だけ停止させ、前記第2プロセッサから前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始することとしてもよい。
これにより、専用プロセッサによる第2の処理の実行時間が、第1プロセッサにおいて第2種タスクをリアルタイム性を確保しつつ処理するのに必要な時間より短い場合であっても、第2プロセッサによる処理の実行開始、または第2プロセッサによる実行完了の通知、またはサブプロセッサによる処理の実行完了を所定の遅延時間分だけ遅らせるので、第1プロセッサは、第2種タスクを、リアルタイム性を確保しつつ処理するのに必要な時間だけ実行し得る。
また、前記タスク切り替え制御手段は、前記遅延時間を、所定の固定値として前記第1モードおよび前記第2モードを選択的に適用することとしてもよい。
これにより、第2プロセッサへの指示が第2プロセッサによって受け付けられるのを遅延させる遅延時間が固定されるので、遅延時間の算出に要する処理を省くことが出来る。
遅延時間は、リアルタイム性を確保するために第2種タスクの実行に要する時間と、第2プロセッサにおける第2の処理の実行時間との差分だけ設定することが望ましいが、例えば、第2種タスクを実行するのに必要な処理時間が判明しており、さらに、第2プロセッサによる第2の処理の実行に要する時間の変動が小さい場合においては、上述のように遅延時間を固定としてもリアルタイム性を確保したタスク処理を実行でき、並列演算装置の性能をより向上させることができる。
また、前記第1プロセッサは、前記第1モードが適用されている適用期間を計測する計測手段と、前記指示と、前記実行完了の通知と、前記遅延時間とに基づいて、前記第2プロセッサが処理を行う期間である処理期間を推定する処理期間推定手段を備え、前記タスク切り替え制御手段は、前記指示を行うときまで適用していた前記適用期間に応じて所定時間を決定し、決定した所定時間と、推定された前記処理期間との差分を、前記遅延時間として前記設定を行うこととしてもよい。
これにより、第1モードが適用されて第1種タスクの処理が実行されている期間に応じて遅延時間を決定するので、第1プロセッサにおける第1種タスクの処理時間の変動に応じて第2種タスクの処理時間を長くしたり短くしたりすることができる。
したがって、例えば、第1種タスクの処理時間に応じてリアルタイム性を維持するために必要な第2種タスクの処理時間が変動する場合において、第1プロセッサにおける第1種タスクの処理時間が変動したとしても、その変動に応じて、第2種タスクの処理に必要な処理時間を確保して遅延時間を決定することができる。
また、第2プロセッサへ指示を行う毎に、推定した第2プロセッサの処理時間に基づいて第2プロセッサへの指示を遅延させる時間を決定するので、第2プロセッサの処理時間に変動がある場合においても、第2種タスクの処理時間を所定時間だけ実行できるよう、遅延時間を逐次補正しつつ決定することができる。
また、第1プロセッサと、前記第1プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第2プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置のタスク切り替え方法であって、前記タスク切り替え方法は、前記第1プロセッサにおいて、第1の処理を行った後に第2の処理を前記第2プロセッサによって開始させる第1種タスクを、優先して処理する第1モードと、自プロセッサでのみ処理する第2種タスクがあるときに前記第1種タスクの有無にかかわらず前記第2種タスクを処理する第2モードとを選択的に適用して処理タスクを切り替えるタスク切り替え制御ステップを含み、前記タスク切り替え制御ステップは、前記第1種タスクを実行して前記第2プロセッサに前記第2の処理を開始させる指示を行うと、前記第2モードの適用を開始し、前記第2モードを適用してから少なくとも所定時間が経過するまで前記第1モードの適用を抑止し、前記第2の処理が完了し、かつ、前記所定時間が経過すると、前記第1モードの適用を開始することとしてもよい。
上述したタスク切り替え方法を用いることにより、従来の、所定のタイムスライスで切り替えるタスクスケジューリング方式と比べて、プロセッサの利用率およびタスク処理効率を向上させ得る。
また、上述した並列演算装置または上述したタスク切り替え方法のいずれかを用いた情報処理装置であってもよい。
これにより、複数のタスクを時分割で処理しつつ、各々のタスクのリアルタイム性を確保することを可能とする情報処理装置を実現できる。
<実施の形態1>
以下、本発明の実施の形態にかかる並列演算装置について図面を用いて説明する。
<構成>
本発明にかかる並列演算装置は、処理全体を管理するメインプロセッサ(以下、「MP」と言う。)と、MPからの指示に基づいて特定の処理を実行するサブプロセッサ(以下、「SP」と言う。)とからなる。
MPは、SPによる処理の実行を必要とする第1種タスクを優先して実行し、SPに特定の処理を行わせるにあたって、SPへ処理の実行開始を要求する処理要求を出力する。処理要求を出力すると、MPのみで処理を実行できる第2種タスクの実行を開始する。SPは、処理要求を受け付けると、特定の処理を実行し、実行が完了すると、完了通知をMPへ出力する。MPは、完了通知を受け付けると、割り込みハンドラによって処理しているタスクに対して割り込みを行って第1種タスクを優先して実行する。
本実施形態では、並列演算装置は、例えば、MPEG(Moving Picture Experts Group)で規格化されている動画処理を行い、MPは、映像データの再生を行う際に、動画のエンコード処理における特定の処理をSPに行わせる。そして、特定の処理をSPに行わせている間に、MPでは、例えばMPのみで処理を実行できる音声データの再生処理等を行うこととする。上述の例における特定の処理とは、具体的には、ME(Motion Estimation)処理やDCT(Discrete Cosine Transform)処理であり、第2種タスクとは、上述した音声データの処理や、字幕の表示に伴う処理などである。
図1は、本実施形態の並列演算装置の構成を示す機能ブロック図である。
同図に示すように、並列演算装置は、MP100と、SP500とからなり、MP100は、処理要求出力部11と、完了通知受付部12と、通知制御部13と、制御部14と、処理時間計測部15とを含む演算装置である。
処理要求出力部11は、制御部14の指示に従って、SP500に、特定の処理を開始させるための所定の信号である処理要求を出力する。
完了通知受付部12は、SP500から出力された完了通知を受け付けて制御部14へ所定の信号を出力する。
通知制御部13は、ダウンカウンタを備え、SP500から出力された完了通知を受け付けるとともに、制御部14による時間の設定の指示を受け付けて、所定時間の間、SP500から出力された完了通知が完了通知受付部12によって受け付けられるのを抑止する回路である。例えば、AND回路を用いて、SP500から完了通知を受け付けたことを示す信号と、制御部14がダウンカウンタに設定した時間が経過したことを示す信号とがともに有効であるときに、所定の信号を完了通知受付部12へ出力する。
制御部14は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)を備え、ROMに格納されているプログラムにしたがって、MP100が行う処理やタスク処理の実行を制御する。SP500によって特定の処理を行わせる際に、処理要求出力部11に処理要求を出力するよう指示を行い、完了通知受付部12を介してSP500から出力された完了通知を受け付ける。また、通知制御部13に対し、時間の設定を行う。
処理時間計測部15は、カウンタを備え、制御部14による処理要求出力の指示および完了通知受付部12が完了通知を受け付けて出力した所定の信号をもとに、制御部14において第1種タスクが処理された時間を計測する回路であり、計測された時間を制御部14へ出力する。
例えば、完了通知受付部12が出力した信号を受け付けた時点を開始時点とし、制御部14による処理要求出力の指示があった時点を終了時点として計測する。計測された開始時点と終了時点との差分を、制御部14において第1種タスクが処理された時間として制御部14へ出力する。
SP500は、例えばME処理を行うのに特化された専用のプロセッサであり、MP100から出力される処理要求を受け付けて処理を開始し、処理を終えると完了通知をMP100へ出力する。
<動作>
次に、並列演算装置が行う処理について図面を用いて説明する。
<SP500の処理>
図2は、SP500が行う処理を示すフローチャートである。
SP500は、MP100から出力された処理要求を受け付けると(ステップS21:YES)、特定の処理の実行を開始し(ステップS22)、実行を終えると、完了通知をMP100へ出力する(ステップS23)。以後、処理要求を受け付ける毎に(ステップS21)、所定の処理を実行する(ステップS22、S23)。
<MP100の処理>
図3は、MP100の制御部14が行う処理を示すフローチャートである。
制御部14は、第1種タスクの優先度を他のタスクより高くしてタスクの処理を実行する(ステップS31)。第1種タスクの処理を実行しているときに、SP500による特定の処理の実行が必要になると、SP500へ処理要求を出力するよう処理要求出力部11に指示する(ステップS32)。このとき、SP500から出力される完了通知が完了通知受付部12によって受け付けられるのを抑止する時間を決定し、決定した時間の設定を通知制御部13に行う(ステップS33)。通知制御部13の処理および設定する時間を決定する処理については後述する。
制御部14は、処理要求の出力指示を行うと、完了通知受付部12を介して処理完了通知を受け付けるまでの間に(ステップS35:NO)、第2種タスクがあれば、第2種タスクの処理を実行する(ステップS34)。処理完了通知を受け付けると(ステップS35:YES)、第1種タスクがあれば第1種タスクの処理を優先して実行する(ステップS31)。
<通知制御部13の処理>
図4は、通知制御部13が行う処理を示すフローチャートである。
通知制御部13は、制御部14から時間の設定を受け付けると、自身の備えるダウンカウンタに所定時間を設定する(ステップS41:YES)。
SP500から完了通知を受け付けた場合であっても、ダウンカウンタに設定した所定時間が経過していない間は完了通知受付部12によって完了通知が受け付けられないよう完了通知の出力を抑止し(ステップS42:NO)、ダウンカウンタに設定した所定時間が経過した後は、既にSP500から完了通知を受け付けている場合は(ステップS42:YES)直ちに完了通知を完了通知受付部12へ出力し(ステップS43)、SP500から完了通知を受け付けていなければ、完了通知を受け付け次第(ステップS42:YES)、完了通知受付部12へ完了通知を出力する(ステップS43)。
完了通知を出力すると、再び制御部14から時間の設定を受け付けるまで待機する(ステップS41:NO)。
<所定時間決定処理>
図3のステップS33においては、制御部14は、通知制御部13に対して所定時間の設定を行うが、この所定時間を決定する方法について説明する。
図5は、制御部14が、通知制御部13に設定する所定時間を決定する処理を示すフローチャートである。
制御部14は、処理要求出力部11へ処理要求を出力するよう指示を行うと(ステップS51)、当該指示を終了時点として処理時間計測部15によって計測され、制御部14へ出力された第1種タスクの処理時間をRAMに保持し(ステップS52)、保持した第1種タスクの処理時間に応じて、通知制御部13に設定する所定時間を決定する(ステップS53)。所定時間を決定すると、決定した所定時間を通知制御部13に設定する(ステップS54)。
なお、ステップS53においては、保持した第1種タスクの処理時間に応じて、通知制御部13に設定する所定時間を決定することとしているが、MP100において、第1種タスクの処理に要する演算量と第2種タスクの処理に要する演算量との比が判明している場合などにおいては、通知制御部13に設定する所定時間は、保持している第1種タスクの処理時間の一定比率とすることが望ましい。細かい時間粒度における第1種タスクの処理時間と第2種タスクの処理時間との比率を一定にすることで、第1種タスクの処理時間が変動する場合であっても、長期的には第1種タスクと第2種タスクの処理時間の比率を一定に近づけることができるからである。
例えば、映像データの再生を行う場合に、動画データの再生処理を第1種タスクとし、音声データの再生処理を第2種タスクとすると、MP100において動画データの再生処理に要する演算量と、音声データの再生処理に要する演算量との比率が予め判明している場合には、第1種タスクと第2種タスクの処理時間の比率を一定にすると良い。
また、ステップS53において、通知制御部13に設定する所定時間は、固定値としてもよい。例えば、第1種タスクの処理に要する演算量と第2種タスクの処理に要する演算量との比が判明しており、MP100において第1種タスクの処理時間の変動が顕著でない場合においては、所定時間を固定値とすることで、所定時間を決定する処理を省くことができ、これにより、MP100で行う演算量を減らすことができるからである。
以上のように本発明の実施の形態1にかかる並列演算装置が行う処理について説明してきたが、MP100において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図6は、MP100において、処理が実行されるタスクの変遷を示した図である。
同図においては、MP100で処理されるタスクのうち、A1、A2、・・・で示されるタスクAを第1種タスクとし、タスクA以外のタスクを第2種タスクとする。すなわち、B1、B2、・・・で示されるタスクBや、タスクCは第2種タスクである。タスクA、タスクBは、リアルタイム性を要する処理を行うタスクとする。
また、SP500で処理されるタスクは、X1、X2、・・・で示されるタスクXであり、MP100から出力された処理要求を受け付けてタスクの処理の実行を開始し、処理が終了すると、実行完了をMP100へ出力する。
同図に示した例で説明すると、MP100は、タスクA1の処理を実行し、SP500へ処理要求を出力すると、処理するタスクを切り替えてタスクB1の処理を実行する。このとき、通知制御部13に所定時間の設定を行う。処理要求を受け付けてSP500においてタスクX1の処理の実行が開始され、通知制御部13に設定された所定時間が経過する前にその処理が完了した場合は、所定時間が経過するまで完了通知の出力が通知制御部13によって抑止される。
所定時間が経過して、完了通知がMP100によって受け付けられると、MP100は、タスクA2の処理を開始する。そして、SP500へ処理要求を出力すると、MP100は、新たに所定時間を決定して通知制御部13に決定した所定時間を設定するとともに、MP100において処理するタスクを切り替えてタスクB2の処理を実行する。
タスクB2は、所定時間が経過するより前にMP100において処理が完了している。また、SP500は、MP100から出力された処理要求を受け付けてタスクX2の処理を開始するが、同図に示した場合のように、SP500におけるタスクX2の処理時間が、決定した所定時間よりも長引く場合がある。
このように、MP100において、所定時間よりも早くタスクBの処理が終了した場合や、SP500において、タスクXの処理に要する時間が所定時間よりも長い場合は、MP100は、タスクBの処理完了後、SP500から出力される完了通知を受け付けるまでの間、タスクB以外のタスクCの処理を実行することができる。
これにより、本発明の並列演算装置は、SP500におけるタスクXの処理時間が所定時間より短い場合はMP100におけるタスクBの処理時間を少なくとも所定時間は確保し、また、SP500におけるタスクXの処理時間が所定時間よりも長い場合は、MP100は、SP500から出力される完了通知を受け付けるまでの間、タスクBの処理を実行できるとともに、タスクBの処理が完了していれば、他のタスクの処理を実行することもできるので、予め定められたタイムスライスごとにタスクAとタスクBの処理を実行する場合に比べて、MP100において実行する演算量をより増加させ得る。
<実施の形態2>
次に、本発明の別の実施形態について、実施の形態1との相違点を主眼に置きつつ説明する。なお、実施の形態1と同一の構成で同一の動作を行う部分については説明を省略する。実施の形態2においては、MPは、完了通知を受け付けると、タスクの優先度に従って第1種タスクの実行を開始する。
<構成>
図7は、本発明の実施の形態2にかかる並列演算装置の機能ブロック図である。
同図に示すように、実施の形態2にかかる並列演算装置は、MP110と、SP500とからなり、MP110は、優先度制御部16を含む。
制御部14は、SP500へ処理要求を出力する指示を行う際に、優先度制御部16に対し、処理するタスクの優先度を切り替える時間の設定を行う。また、設定した時間についての情報は、優先度制御部16の他に処理時間計測部15へも出力する。
優先度制御部16は、制御部14において処理するタスクの優先度を制御する。制御部14による時間の設定があると、優先度を切り替える時間を設定し、設定した所定時間が経過するまで第2種タスクを優先して実行するよう制御部14において処理するタスクの優先度を切り替える。所定時間経過後は、第1種タスクを優先して実行するよう優先度を切り替える。
処理時間計測部15は、制御部14において第1種タスクが処理された時間を計測する。また、制御部14が優先度制御部16に対して設定した時間についての情報を受け付ける。
例えば、制御部14がSP500へ処理要求を出力するよう指示した後に、制御部14によって設定された所定時間が経過する前にSP500からの完了通知を受け付けた場合は所定時間が経過した時点を開始時点とし、また、制御部14によって設定された所定時間が経過した後でSP500からの完了通知を受け付けた場合はその完了通知を受け付けた時点を開始時点とする。そして、制御部14が第1種タスクの処理を実行して処理要求を出力した時点を終了時点とする。
計測された開始時点と終了時点との差分を、制御部14において第1種タスクが処理された時間として制御部14へ出力する。
<動作>
次に、実施の形態2の並列演算装置が行う処理について説明する。
<優先度制御部16の処理>
図8は、優先度制御部16が優先度を切り替える処理を示すフローチャートである。
優先度制御部16は、制御部14による所定時間の設定があるまで(ステップS82:NO)第1種タスクを優先して処理するよう、制御部14において処理するタスクの優先度を制御し(ステップS81)、所定時間の設定があると(ステップS82:YES)、第2種タスクを優先して実行するよう制御部14において処理するタスクの優先度を切り替える(ステップS83)。
設定を受け付けてから所定時間が経過するまでは(ステップS84:NO)第2種タスクを優先して処理し、所定時間が経過すると(ステップS84:YES)、第1種タスクを優先して実行するよう制御部14において処理するタスクの優先度を切り替える(ステップS81)。
<制御部14の処理>
図9は、実施の形態2における制御部14が優先度に従ってタスクの処理を実行する動作を示すフローチャートである。
制御部14は、優先度に従ってタスクの処理を実行し(ステップS91)、処理要求をSP500へ出力する指示を行うと(ステップS92:YES)、優先度制御部16に対して所定時間の設定を行う(ステップS93)。所定時間の設定を行うと、優先度に従ってタスクの処理を実行する(ステップS91)。
なお、優先度制御部16に設定する所定時間の決定方法については、実施の形態1と同様に、処理時間計測部15によって計測された第1種タスクの処理時間をもとに、第1種タスクの処理時間と所定時間とが一定比率となるように所定時間を決定することとする。
なお、実施の形態1と同様に、所定時間を固定値としてもよい。
上述した実施の形態2にかかる並列演算装置のMP110において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図10は、MP110において、処理が実行されるタスクの変遷を示した図である。
実施の形態1で説明したように、MP110で処理されるタスクのうち、タスクAを第1種タスクとし、タスクA以外のタスクを第2種タスクとする。SP500で処理されるタスクは、タスクXであるとする。タスクA、タスクBはリアルタイム性を要する処理を行うタスクとし、MP110は、SP500から完了通知を受け付けると、優先度に従って、第1種タスクの実行を開始する。
同図に示した例で説明すると、MP110は、タスクA1の処理を実行し、SP500へ処理要求を出力すると、優先度制御部16に所定時間の設定を行う。
優先度制御部16による優先度の切り替え制御によって、第2種タスクを優先して実行するようMP110において処理するタスクの優先度が切り替えられると、MP110は、タスクB1を実行する。処理要求出力後、所定時間が経過するまでは、第2種タスクを優先して実行するので、MP110は、所定時間経過前にタスクA2が生成されたとしても、タスクB1を所定時間実行した後にタスクA2の実行を開始する。
そして、MP110は、タスクA2の処理を終えて処理要求をSP500へ出力すると、優先度制御部16に所定時間の設定を行う。SP500では、MP110から出力された処理要求を受け付けてタスクX2の処理を開始するが、同図に示すように、SP500におけるタスクX2の処理時間が、優先度制御部16に設定された所定時間より長くなる場合がある。
この場合は、所定時間が経過すると、優先度制御部16による優先度制御によって第1種タスクを優先して実行するよう処理するタスクの優先度が切り替えられるが、所定時間経過後であっても、第1種タスクが存在しなければ、第2種タスクを実行することができる。
<実施の形態3>
次に、本発明の別の実施形態について、実施の形態1との相違点を主眼に置きつつ説明する。なお、実施の形態1と同一構成で同一の動作を行う部分については説明を省略する。
<構成>
図11は、本発明の実施の形態3にかかる並列演算装置の機能ブロック図である。
同図に示すように、実施の形態3にかかる並列演算装置は、MP120とSP500とからなり、処理要求遅延部17を備える。
制御部14は、処理要求出力部11に処理要求を出力するよう指示する際に、処理要求遅延部17に対して時間の設定を行う。また、設定した時間についての情報は、処理要求遅延部17の他に処理時間計測部15へも出力する。
処理時間計測部15は、制御部14による処理要求出力の指示、および完了通知受付部12が完了通知を受け付けて出力した所定の信号をもとに、制御部14において第1種タスクが処理された時間を制御部14へ出力するとともに、さらに、制御部14から、処理要求遅延部17に設定した時間についての情報を受け付けて、設定した時間の情報と、処理要求と、完了通知とに基づいて、SP500が処理を行った時間を推定し、推定したSP処理時間を制御部14へ出力する。
例えば、MP120が処理要求を出力してから完了通知を受け付けるまでの時間を第2種タスク占有時間とすると、第2種タスク占有時間から処理要求遅延部17に設定した時間を減ずることで、SP500の処理時間を推定することができる。
処理要求遅延部17は、ダウンカウンタを備え、処理要求出力部11から出力された処理要求を受け付けるとともに、制御部14による時間の設定の指示を受け付けて、所定時間の間、処理要求出力部11から出力された処理要求がSP500によって受け付けられるのを抑止する回路である。設定された時間が経過すると、処理要求をSP500へ出力し、出力した後は、再び時間の設定が行われて所定時間が経過するまで処理要求の出力を抑止する。
<動作>
次に、並列演算装置が行う処理について図面を用いて説明する。
<MP120の処理>
図12は、実施の形態3における制御部14が行う処理を示すフローチャートである。
制御部14は、第1種タスクの優先度を他のタスクより高くしてタスクの処理を実行する(ステップS121)。第1種タスクの処理を実行しているときに、SP500による特定の処理の実行が必要になると、処理要求遅延部17によって処理要求がSP500によって受け付けられるのを遅延させる時間を決定し、決定した時間の設定を処理要求遅延部17に行い(ステップS122)、時間の設定を行うと、処理要求を出力するよう処理要求出力部11に指示する(ステップS123)。設定する時間を決定する処理については後述する。
制御部14は、処理要求の出力指示を行うと(ステップS123)、完了通知受付部12を介して処理完了通知を受け付けるまでの間に(ステップS125:NO)、他のタスクを処理し、第2種タスクがあれば、処理するタスクを切り替えて第2種タスクの処理を実行する(ステップS124)。処理完了通知を受け付けると(ステップS125:YES)、第1種タスクがあれば第1種タスクの処理を優先して実行する(ステップS121)。
<処理要求遅延部17の処理>
図13は、処理要求遅延部17が行う処理を示すフローチャートである。
処理要求遅延部17は、制御部14から所定時間の設定を受け付けると、自身の備えるダウンカウンタに所定時間を設定する(ステップS131:YES)。処理要求を受け付けて、ダウンカウンタに設定された所定時間が経過すると、処理要求をSP500へ出力する(ステップS132)。
<所定時間決定処理>
図12のステップS122においては、制御部14は、処理要求遅延部17に対して所定時間の設定を行うが、この際の、所定時間を決定する方法について説明する。
図14は、制御部14が、処理要求遅延部17に設定する所定時間を決定する処理を示すフローチャートである。
制御部14は、処理要求を出力するよう指示を行うと(ステップS141)、処理時間計測部15によって計測された第1種タスクの処理時間をもとに制御部14において第2種タスクを実行する時間である第2種タスク占有目標時間を決定する(ステップS142)。例えば、第1種タスクの処理時間と第2種タスク占有目標時間とが一定比率となるように決定する。
決定した第2種タスク占有目標時間と、当該指示を行う時点で処理時間計測部15によって出力されているSP処理時間との差分を計算し、計算した差分を、所定時間として決定する(ステップS143)。所定時間を決定すると、決定した所定時間を処理要求遅延部17に設定する(ステップS144)。
このようにして、制御部14は、第1種タスクの処理時間をもとに、制御部14において第2種タスク占有目標時間を決定し、決定した第2種タスク占有目標時間に基づいて所定時間を決定し、さらに、SP500の処理時間の変動があった場合でも、推定したSP処理時間をもとに、所定時間をより正確に決定することができる。
上述した実施の形態3にかかる並列演算装置のMP120において処理されるタスクがどのように切り替わるかについて図を用いて補足説明する。
図15は、MP120において、処理が実行されるタスクの変遷を示した図である。
実施の形態1で説明したように、MP120で処理されるタスクのうち、タスクAを第1種タスクとし、タスクA以外のタスクを第2種タスクとする。SP500で処理されるタスクは、タスクXであるとする。
なお、MP120は、はじめにタスクA1から処理の実行を開始するものとし、予めSP500の処理時間の見積もり値Txを保持しているものとする。
また、MP120およびSP500における各タスクの処理時間を、例えばタスクA1の処理時間はTA1、タスクA2の処理時間はTA2、・・・と表記する。タスクXについても、TX1、TX2、・・・とする。
また、タスクBの、MP120における占有目標時間をTB1、TB2、・・・とする。
また、処理要求遅延部17に設定する所定時間については、タスクA1を実行して処理要求を出力する際に設定する遅延時間はTd1、タスクA2を実行して処理要求を出力する際に設定する遅延時間はTd2、・・・とする。
同図に示した例で説明すると、MP120は、タスクA1の処理を実行し、SP500へ処理要求を出力する際に、タスクA1のMP120における処理時間TA1をもとに、第2種タスク占有目標時間TB1を決定する。TB1を決定すると、予め保持しているSP500の処理見積もり値Txを読み出して、Td1=TB1−Txとして所定時間を決定する。
タスクX1の処理が完了して完了通知をMP120が受け付けると、タスクA2の処理の実行を開始する。このとき、処理時間計測部15によって、SP500におけるタスクX1の処理時間X1が推定される。
MP120は、タスクA2の処理を実行してSP500へ処理要求を出力する際に、タスクA2のMP120における処理時間TA2をもとに、第2種タスク占有目標時間TB2を決定する。TB2を決定すると、Txに代えて処理時間計測部15によって推定されたTX1を用いて、Td2を、Td2=TB1−TX1によって求め、求めたTd2を所定時間として決定する。
このように、SP500における処理時間の推定値を逐次求めて、推定された値をもとに所定時間を決定することで、SP500の処理時間が変動する場合であっても、第2種タスク占有目標時間に基づいて算出する所定時間を、SP500の処理時間の変動に対応して逐次補正することができる。例えば、上述の例で言えば、TB1を算出して、TB1とTxとの差分をTd1としたが、実際のSP500の処理時間TX1はTxよりも大きかったために、Td1とTX1との和がTB1よりも大きかった場合において、次にTd2を決定する際に、SP500の実際の処理時間TX1をもとにTd2を決定することで、MP120における第2種タスクの処理時間を、第2種タスク占有目標時間に近づけることができる。
<補足>
以上のように本発明の実施の形態について説明してきたが、本発明は、上述の実施形態に限られない。以下の場合も本発明に含まれる。
(1)実施の形態1においては、通知制御部13は、MP100の一部として説明したが、これに限らず、MP100の外部に備えることとしてもよい。
また、実施の形態2においては、優先度制御部16は、MP110の一部として説明したが、これに限らず、MP110の外部に備えることとしてもよい。
また、実施の形態3においては、処理要求遅延部17は、MP120の一部として説明したが、これに限らず、MP120の外部に備えることとしてもよい。
(2)上述の実施の形態においては、処理時間計測部15は、MP100、MP110、MP120の一部として説明したが、これに限らず、MP100、MP110、MP120の外部に備えることとしてもよい。
(3)実施の形態2においては、優先度制御部16は、制御部14とは別の構成とし、制御部14とは別に処理を行うこととして説明しているが、これにかえて、制御部14によって優先度制御部16の行う処理を実行することとしてもよい。
(4)実施の形態3においては、処理要求遅延部17に設定する所定時間は、第2種タスク占有目標時間と、SP処理時間との差分としているが、これに限らず、所定の固定値としてもよい。
(5)実施の形態1においては、処理要求を出力する毎に、第1種タスクの処理時間に応じて通知制御部13に設定する所定時間を決定することとしているが、これに限らず、複数回にわたる第1種タスクの処理時間をもとにして通知制御部13に設定する所定時間を決定することとしてもよい。
また、実施の形態2において優先度制御部16に行う所定時間も、複数回にわたる第1種タスクの処理時間を元にして決定することとしてもよい。
また、実施の形態3においては、処理要求を出力する毎に、処理時間計測部15によって推定されたSP処理時間を用いて処理要求遅延部17に設定する所定時間を決定することとしているが、これに限らず、複数回にわたるSP処理時間の推定値をもとに所定時間を決定することとしてもよい。
(6)実施の形態1および3では、通知制御部13や処理要求遅延部17によって、SPから出力される完了通知をMPが受け付けるタイミングを制御していたが、これに限らず、SP上のソフトウェアを用いて完了通知を出力するタイミングを制御することとしてもよい。
(7)上述の実施の形態においては、SP500は、ME処理等の、演算処理の高速化を目的とした専用プロセッサであるとして説明しているが、これに限らず、DMA(Direct Memory Access)でのデータ転送処理など、MPによる処理依頼によって処理を開始するプロセッサ全般に適用可能である。例えば、通信処理や、データの多重化処理、多重分離処理や、転送処理、解析処理などを外部の処理装置によって行わせる場合にも適用可能である。
(8)実施の形態1においては、通知制御部13に設定した時間が経過するまでは、MP100において第2種タスクの処理が完了している場合であってもMP100への完了通知の出力を抑止することとしているが、これに限らず、MP100において第2種タスクの処理が完了した場合は、通知制御部13による処理を停止させることとしてもよい。
これにより、MP100において、所定時間経過前に第2種タスクの処理が完了していれば、MP100は、所定時間の経過を待つことなく、完了通知を受け付けることができる。
(9)上述の実施の形態においては、SPは1つとして説明してきたが、これに限らず、SPが複数存在していてもよい。例えば、全てのSPが処理を終えたときに、完了通知をMPへ出力することで本発明を適用できる。
(10)実施形態3においては、MPがSPへ処理要求を出力する際に、処理要求がSPによって受け付けられるのを所定時間遅延させることとしていたが、これに限らず、SPによって出力された処理完了通知がMPによって受け付けられるのを所定時間だけ遅延させることとしてもよい。例えば、ダウンカウンタを備え、SP500から出力された完了通知を受け付けるとともに、制御部14による時間の設定の指示を受け付けて、完了通知を受け付けてから所定時間の間、完了通知受付部12が完了通知を受け付けるのを遅延させ、完了通知を受け付けてから所定時間が経過すると完了通知を完了通知受付部12へ出力する回路である完了通知遅延部を、SP500と完了通知受付部12との間に設けることで実現できる。
また、MPがSPの動作を制御することが可能な場合においては、SPが処理を行っているときに、SPの行う処理を所定時間だけ停止させることとしてもよい。
(11)実施の形態1および実施の形態2では、図6および図10を用いて、並列演算装置において処理が実行されるタスクの変遷について説明したが、タスクB、タスクCがラウンドロビンで定期的に切り替わる場合は、タスクBが終了しなくとも、切り替わりタイミングに来たときにタスクCに切り替わる。(12)本発明は、上記に示すタスク切り替え方法であるとしてもよい。
(13)上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
(14)上述の並列演算装置または上述のタスク切り替え方法を用いた情報処理装置も、本発明に含まれる。
本発明は、汎用のプロセッサとは別に専用のプロセッサを備えてタスクの処理を行う並列演算装置において有用である。
実施の形態1における並列演算装置の構成を示す機能ブロック図である。 SP500が行う処理を示すフローチャートである。 MP100の制御部14が行う処理を示すフローチャートである。 通知制御部13が行う処理を示すフローチャートである。 制御部14が、通知制御部13に設定する所定時間を決定する処理を示すフローチャートである。 MP100において、処理が実行されるタスクの変遷を示した図である。 本発明の実施の形態2にかかる並列演算装置の機能ブロック図である。 優先度制御部16が優先度を切り替える処理を示すフローチャートである。 実施の形態2における制御部14が優先度に従ってタスクの処理を実行する動作を示すフローチャートである。 実施の形態2のMP110において、処理が実行されるタスクの変遷を示した図である。 本発明の実施の形態3にかかる並列演算装置の機能ブロック図である。 実施の形態3における制御部14が行う処理を示すフローチャートである。 処理要求遅延部17が行う処理を示すフローチャートである。 制御部14が、処理要求遅延部17に設定する所定時間を決定する処理を示すフローチャートである。 実施の形態3のMP120において、処理が実行されるタスクの変遷を示した図である。
符号の説明
11 処理要求出力部
12 完了通知受付部
13 通知制御部
14 制御部
15 処理時間計測部
16 優先度制御部
17 処理要求遅延部
100 MP
110 MP
120 MP
500 SP

Claims (13)

  1. 第1プロセッサと、前記第1プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第2プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置であって、
    前記第1プロセッサは、
    第1の処理を行った後に第2の処理を前記第2プロセッサによって開始させる第1種タスクを優先して処理する第1モードと、自プロセッサでのみ処理する第2種タスクがあるときに前記第1種タスクの有無にかかわらず前記第2種タスクを処理する第2モードと、を選択的に適用して処理タスクを切り替えるタスク切り替え制御手段を備え、
    前記タスク切り替え制御手段は、
    前記第1種タスクを実行して前記第2プロセッサに前記第2の処理を開始させる指示を行うと、前記第2モードの適用を開始し、前記第2モードを適用してから少なくとも所定時間が経過するまで前記第1モードの適用を抑止し、前記第2の処理が完了し、かつ、前記所定時間が経過すると、前記第1モードの適用を開始する
    ことを特徴とする並列演算装置。
  2. 前記タスク切り替え制御手段は、
    前記所定時間の設定を受け付けて、設定された時間が経過するまで前記実行完了の通知が前記第1プロセッサによって受け付けられるのを抑止し、前記設定された時間が経過すると、前記抑止を解除する通知制御部を含み、
    前記タスク切り替え制御手段は、
    前記第2モードの適用を開始した後に前記実行完了の通知を受け付けると前記第1モードの適用を開始し、前記指示を行うと、前記通知制御部に所定時間を設定するとともに前記第2モードの適用を開始し、当該所定時間が経過するまでは前記通知制御部によって前記抑止を行って前記第1モードの適用を抑止する
    ことを特徴とする請求項1記載の並列演算装置。
  3. 前記タスク切り替え制御手段は、さらに、
    前記第1プロセッサにおいて処理するタスクの優先度を制御する優先度制御部を含み、
    前記タスク切り替え制御手段は、
    前記第2モードの適用を開始した後に前記実行完了の通知を受け付けるとタスクの優先度に従って第1種タスクの処理を開始し、前記指示を行うと、前記優先度制御部によって前記第2種タスクの優先度を前記第1種タスクよりも高くしてタスクの処理を行うことで前記第2モードの適用を開始し、前記第2モードを適用してから前記所定時間が経過するまでは前記第2種タスクの優先度を第1種タスクよりも高くして前記第1モードの適用を抑止し、前記所定時間経過後は前記第1種タスクの優先度を前記第2種タスクよりも高くして前記第1モードの適用を開始する
    ことを特徴とする請求項1記載の並列演算装置。
  4. 前記タスク切り替え制御手段は、
    前記所定時間を、所定の固定値として前記第1モードおよび前記第2モードを選択的に適用する
    ことを特徴とする請求項2または3記載の並列演算装置。
  5. 前記第1プロセッサは、
    前記第1モードが適用されている適用期間を計測する計測手段を備え、
    前記タスク切り替え制御手段は、
    前記指示を行うときまで適用していた前記適用期間に応じて前記所定時間を決定する
    ことを特徴とする請求項2または3記載の並列演算装置。
  6. 前記タスク切り替え制御手段は、
    前記所定時間を、前記適用期間と一定比率になるように決定する
    ことを特徴とする請求項5記載の並列演算装置。
  7. 前記タスク切り替え制御手段は、さらに、
    所定の遅延時間の設定を受け付けて、前記第1プロセッサが前記指示を行ってから、所定の遅延時間が経過するまで前記第2プロセッサによる処理の実行の開始を遅らせる処理要求遅延部を含み、
    前記タスク切り替え制御手段は、
    前記指示を行うときに前記処理要求遅延部に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始する
    ことを特徴とする請求項1記載の並列演算装置。
  8. 前記タスク切り替え制御手段は、さらに、
    所定の遅延時間の設定を受け付けて、前記第2プロセッサが実行完了を通知してから当該通知を受け付けるのを所定の遅延時間が経過するまで遅らせる完了通知遅延部を含み、
    前記タスク切り替え制御手段は、
    前記指示を行うときに前記完了通知遅延部に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始する
    ことを特徴とする請求項1記載の並列演算装置。
  9. 前記第1プロセッサは、さらに、
    所定の遅延時間の設定を受け付けて、前記第2プロセッサが処理を実行しているときに前記処理の実行を所定の遅延時間だけ停止させるサブプロセッサ制御手段を備え、
    前記タスク切り替え手段は、
    前記指示を行うときに前記サブプロセッサ制御手段に前記遅延時間を設定するとともに前記第2モードの適用を開始し、前記指示を行って前記第2プロセッサに処理を実行させると、当該処理を前記サブプロセッサ制御手段によって所定の遅延時間だけ停止させ、前記第2プロセッサから前記実行完了の通知を受け付けるまで前記第1モードの適用を抑止し、前記実行完了の通知を受け付けると前記第1モードの適用を開始する
    ことを特徴とする請求項1記載の並列演算装置。
  10. 前記タスク切り替え制御手段は、
    前記遅延時間を、所定の固定値として前記第1モードおよび前記第2モードを選択的に適用する
    ことを特徴とする請求項7から請求項9のうちいずれか1項記載の並列演算装置。
  11. 前記第1プロセッサは、
    前記第1モードが適用されている適用期間を計測する計測手段と、
    前記指示と、前記実行完了の通知と、前記遅延時間とに基づいて、前記第2プロセッサが処理を行う期間である処理期間を推定する処理期間推定手段を備え、
    前記タスク切り替え制御手段は、
    前記指示を行うときまで適用していた前記適用期間に応じて所定時間を決定し、決定した所定時間と、推定された前記処理期間との差分を、前記遅延時間として前記設定を行う
    ことを特徴とする請求項7から請求項9のうちいずれか1項記載の並列演算装置。
  12. 第1プロセッサと、前記第1プロセッサの指示を受け付けて処理を実行しその実行完了を通知する第2プロセッサとからなり、逐次生成される複数のタスクを時分割で処理する並列演算装置のタスク切り替え方法であって、
    前記タスク切り替え方法は、
    前記第1プロセッサにおいて、第1の処理を行った後に第2の処理を前記第2プロセッサによって開始させる第1種タスクを、優先して処理する第1モードと、自プロセッサでのみ処理する第2種タスクがあるときに前記第1種タスクの有無にかかわらず前記第2種タスクを処理する第2モードと、を選択的に適用して処理タスクを切り替えるタスク切り替え制御ステップを含み、
    前記タスク切り替え制御ステップは、
    前記第1種タスクを実行して前記第2プロセッサに前記第2の処理を開始させる指示を行うと、前記第2モードの適用を開始し、前記第2モードを適用してから少なくとも所定時間が経過するまで前記第1モードの適用を抑止し、前記第2の処理が完了し、かつ、前記所定時間が経過すると、前記第1モードの適用を開始する
    ことを特徴とするタスク切り替え方法。
  13. 請求項1から11の並列演算装置または請求項12のタスク切り替え方法いずれかを用いた情報処理装置。
JP2005207413A 2005-07-15 2005-07-15 並列演算装置 Pending JP2007026095A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005207413A JP2007026095A (ja) 2005-07-15 2005-07-15 並列演算装置
US11/485,989 US20070016908A1 (en) 2005-07-15 2006-07-14 Parallel operation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005207413A JP2007026095A (ja) 2005-07-15 2005-07-15 並列演算装置

Publications (1)

Publication Number Publication Date
JP2007026095A true JP2007026095A (ja) 2007-02-01

Family

ID=37663040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005207413A Pending JP2007026095A (ja) 2005-07-15 2005-07-15 並列演算装置

Country Status (2)

Country Link
US (1) US20070016908A1 (ja)
JP (1) JP2007026095A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140012320A (ko) * 2012-07-19 2014-02-03 삼성전자주식회사 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법
JP2015507809A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する
JP2015507808A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 警告追跡割り込みファシリティ
CN105955815A (zh) * 2016-06-17 2016-09-21 电子科技大学 多功能组网雷达任务规划方法
JP2017215655A (ja) * 2016-05-30 2017-12-07 京セラドキュメントソリューションズ株式会社 電子機器および処理実行プログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152470A (ja) * 2006-12-15 2008-07-03 Hitachi Ltd データ処理システム及び半導体集積回路
US8146065B2 (en) * 2007-08-13 2012-03-27 International Business Machines Corporation Running time of short running applications by effectively interleaving compilation with computation in a just-in-time environment
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US8788782B2 (en) * 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
JP4965638B2 (ja) * 2009-12-25 2012-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション タスクの切り換えを制御するシステムおよび方法
JP5376042B2 (ja) * 2010-03-18 2013-12-25 富士通株式会社 マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
KR101773166B1 (ko) * 2011-02-21 2017-08-30 삼성전자주식회사 가상 머신 스케줄 시점 조절 장치 및 방법
JP2020144606A (ja) * 2019-03-06 2020-09-10 株式会社リコー 情報処理システム、情報処理方法、情報処理装置及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512040A (ja) * 1991-07-04 1993-01-22 Mitsubishi Electric Corp タスクの実行制御方式
JPH07129414A (ja) * 1993-11-08 1995-05-19 Fujitsu Ltd データ処理装置
JPH08328881A (ja) * 1995-05-29 1996-12-13 Nec Corp タスクのスケジューリング方式
JPH11239348A (ja) * 1997-11-28 1999-08-31 Matsushita Electric Ind Co Ltd 映像音声処理装置
JP2002229807A (ja) * 2001-01-30 2002-08-16 Fujitsu Ltd 応答制御装置およびコンピュータ・プログラム
JP2005018610A (ja) * 2003-06-27 2005-01-20 Toshiba Corp スケジューリング方法および情報処理システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69429204T2 (de) * 1993-03-26 2002-07-25 Cabletron Systems Inc Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
US6581089B1 (en) * 1998-04-16 2003-06-17 Sony Corporation Parallel processing apparatus and method of the same
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US6931641B1 (en) * 2000-04-04 2005-08-16 International Business Machines Corporation Controller for multiple instruction thread processors
US6963554B1 (en) * 2000-12-27 2005-11-08 National Semiconductor Corporation Microwire dynamic sequencer pipeline stall
US20050055594A1 (en) * 2003-09-05 2005-03-10 Doering Andreas C. Method and device for synchronizing a processor and a coprocessor
JP4072503B2 (ja) * 2004-02-04 2008-04-09 シャープ株式会社 補助演算用コプロセッサ内蔵型icカード及びその制御方法
EP1820100B1 (en) * 2004-11-30 2008-08-27 Koninklijke Philips Electronics N.V. Efficient switching between prioritized tasks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512040A (ja) * 1991-07-04 1993-01-22 Mitsubishi Electric Corp タスクの実行制御方式
JPH07129414A (ja) * 1993-11-08 1995-05-19 Fujitsu Ltd データ処理装置
JPH08328881A (ja) * 1995-05-29 1996-12-13 Nec Corp タスクのスケジューリング方式
JPH11239348A (ja) * 1997-11-28 1999-08-31 Matsushita Electric Ind Co Ltd 映像音声処理装置
JP2002229807A (ja) * 2001-01-30 2002-08-16 Fujitsu Ltd 応答制御装置およびコンピュータ・プログラム
JP2005018610A (ja) * 2003-06-27 2005-01-20 Toshiba Corp スケジューリング方法および情報処理システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507809A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する
JP2015507808A (ja) * 2012-01-18 2015-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 警告追跡割り込みファシリティ
KR20140012320A (ko) * 2012-07-19 2014-02-03 삼성전자주식회사 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법
KR101984635B1 (ko) * 2012-07-19 2019-05-31 삼성전자주식회사 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법
JP2017215655A (ja) * 2016-05-30 2017-12-07 京セラドキュメントソリューションズ株式会社 電子機器および処理実行プログラム
CN105955815A (zh) * 2016-06-17 2016-09-21 电子科技大学 多功能组网雷达任务规划方法
CN105955815B (zh) * 2016-06-17 2019-03-15 电子科技大学 多功能组网雷达任务规划方法

Also Published As

Publication number Publication date
US20070016908A1 (en) 2007-01-18

Similar Documents

Publication Publication Date Title
JP2007026095A (ja) 並列演算装置
US8161491B2 (en) Soft real-time load balancer
JP4580845B2 (ja) タスク実行装置
JP6539236B2 (ja) 効果的なニューラルネットワークの配置に用いるシステム及び方法
JP5853216B2 (ja) 集積回路、コンピュータシステム、制御方法
US9430283B2 (en) Information processing apparatus and job scheduling method
US9323571B2 (en) Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
JP2748822B2 (ja) 情報処理装置
US8612661B2 (en) Interrupt-notification control unit, semiconductor integrated circuit and methods therefor
JP2010286898A (ja) マルチスレッド実行装置、マルチスレッド実行方法
JP2009025939A (ja) タスク制御方法及び半導体集積回路
US7653906B2 (en) Apparatus and method for reducing power consumption on simultaneous multi-threading systems
JP2006285350A (ja) Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
WO2012113232A1 (zh) 调整时钟中断周期的方法和装置
JP2010108086A (ja) Cpuエミュレーションシステム、cpuエミュレーション方法及びcpuエミュレーションプログラム
WO2019187719A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US7321945B2 (en) Interrupt control device sending data to a processor at an optimized time
Wu et al. Dynamic acceleration of parallel applications in cloud platforms by adaptive time-slice control
US7246220B1 (en) Architecture for hardware-assisted context switching between register groups dedicated to time-critical or non-time critical tasks without saving state
JP2006085428A (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
US8615165B2 (en) Video-recording and replaying apparatus, I/O scheduling method, and program
KR101674324B1 (ko) 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법
Klusáček et al. Walltime prediction and its impact on job scheduling performance and predictability
CN113032098B (zh) 一种虚拟机调度方法、装置、设备及可读存储介质
US20150066175A1 (en) Audio processing in multiple latency domains

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110222