JP5452125B2 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
JP5452125B2
JP5452125B2 JP2009186562A JP2009186562A JP5452125B2 JP 5452125 B2 JP5452125 B2 JP 5452125B2 JP 2009186562 A JP2009186562 A JP 2009186562A JP 2009186562 A JP2009186562 A JP 2009186562A JP 5452125 B2 JP5452125 B2 JP 5452125B2
Authority
JP
Japan
Prior art keywords
thread
control thread
control
data processing
application
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.)
Active
Application number
JP2009186562A
Other languages
English (en)
Other versions
JP2011039775A (ja
JP2011039775A5 (ja
Inventor
靖 永井
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.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Clarion 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 Clarion Co Ltd filed Critical Clarion Co Ltd
Priority to JP2009186562A priority Critical patent/JP5452125B2/ja
Priority to US12/826,093 priority patent/US20110041135A1/en
Priority to EP10167783A priority patent/EP2287737A3/en
Publication of JP2011039775A publication Critical patent/JP2011039775A/ja
Publication of JP2011039775A5 publication Critical patent/JP2011039775A5/ja
Priority to US13/781,578 priority patent/US9176771B2/en
Application granted granted Critical
Publication of JP5452125B2 publication Critical patent/JP5452125B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Navigation (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Description

本発明は、データ処理装置及びデータ処理方法に係り、特に複数のデバイスでデータ処理を実現するものに関する。
近年、カーナビゲーションシステムで取り扱われるデータは、地図だけにとどまらず、マルチメディアデータ(動画、及び音楽、音声等)が利用されるようになった。このため、主たる経路案内と同時に、テレビ放送等の動画をリアルタイムに動画用コーデックで変換してハードディスクに録画する機能や、DVD等の光ディスクにデジタルデータとして記録されている動画コンテンツデータをディスプレイ装置に表示する機能、CDや携帯音楽プレーヤに記録されている音楽データをハードディスクに記録する機能等のアプリケーションプログラムが同時に動作する。また、これらの機能を実現するために、カーナビゲーションシステムのCPUには、テレビチューナ、動画用コーデック回路、ハードディスクIF回路、DVD等の光ディスクIF回路、表示装置IF回路、携帯音楽プレーヤIF回路等様々な高機能周辺デバイスが接続されている。
この様に、一つのアプリケーションプログラムが複数の周辺デバイスを利用するため、その制御が複雑になり、応答速度やスループットが悪くなる問題があった。また、複数のアプリケーションプログラムで周辺デバイスを共用し、各々のアプリケーションプログラムの高い応答速度やスループットを実現できない問題がある。
これに対し、特許文献1では、各デバイスで処理されるデータの依存関係からデバイス間をFIFOで接続し、各デバイスでパイプライン的にデータを処理させる事によってスループットを高める技術を開示している。
また、特許文献2は、アプリケーションプログラムの優先順位を決め、優先制御を行うことで、複数アプリケーションプログラムを同時に実行する技術を開示している。たとえば、優先順位がレベル1のスレッドを、レベル2、レベル3のスレッドよりも優先して実行する。
また、組み込みOSでは、レベル1のスレッドによって実行されるレベル3のスレッドが、レベル1の要求によって処理を始める場合にはレベル1の優先順位を継承できる仕組みを設けている。
特開平11−272627号公報 特開平5−250188号公報
特許文献1記載の技術では、各デバイスの用途が固定されている場合、アプリケーションの切替によるデバイスの使用順序の変更が出来ない問題がある。さらに、デバイスの使用順序の異なるアプリケーションを同時に実行すること出来ない。
また、特許文献2記載の技術では、優先制御は優先順位の高いスレッドが結果的に優先順位の低いスレッドに待たされる現象(プライオリティ・インバージョン)などの問題がある。たとえば、優先順位がレベル1のスレッドが、レベル3のスレッドの処理結果を用いる必要があり、レベル2のスレッドを待たせて処理を始める場合を考える。レベル3のスレッドは、レベル2のスレッドより優先順位が低いので、レベル3のスレッドは実行待ちのレベル2のスレッドの処理を待ってから開始することになる。この結果、レベル1のスレッドは、自分より優先順位の低いレベル2の処理に待たされてしまう。
また、組み込みOSでは、レベル1のスレッドによって実行されるレベル3のスレッドが、レベル1の要求によって処理を始める場合にはレベル1の優先順位を継承できる仕組みを設けている。これによって、レベル1のスレッドがレベル2のスレッドに待たされることがないようにしている。しかし、入出力デバイスを使用するアプリケーションでは問題がある。2つのスレッドを入出力それぞれのデバイスを制御する構成した場合、出力デバイス用スレッドの優先順位を高くする。これは、出力側の処理が進まず、入力側の処理ばかりが進み、メモリを多く消費し、レイテンシ、スループットが低下することを防ぐためである。入力デバイス用スレッドの優先順位を3、出力デバイス用スレッドの優先順位を1とする。このとき出力デバイス用スレッドは優先順位の低い入力用スレッドに対する入力を契機に動作するため、入力用スレッドの優先順位を上げることができない。このため、レベル2のスレッドを持つ他のアプリケーションの実行によって、入出デバイスを使用するアプリケーションの処理が待たされてしまう。
解決しようとする第一の問題点は、応答速度と、スループットが高く、複数デバイスを共有するアプリケーションプログラムを実現に当たって、デバイスの使用順序の切替が出来ない点である。この問題点により、デバイスの使用順序の異なるアプリケーションを同時に実行することが出来ない。
第二の問題は、優先制御は優先順位の高いスレッドが結果的に優先順位の低いスレッドに待たされる点である。
上記課題を解決するために、開示されるデータ処理装置は、処理データの依存関係から、周辺デバイスの動作指示タイミングを決定し、パイプライン処理を実現する。
開示されるデータ処理装置のより具体的な態様は次のような構成である。独立動作可能な周辺デバイスの各々に対応したデバイス制御スレッドと、CPUで実行する所定のデータ処理の各々に対応したCPU処理スレッドと、デバイス制御スレッドとCPU処理スレッドを使用してアプリケーションを構築するための複数の処理部を備える制御スレッドと、複数の処理部の組合せで、アプリケーションを定義し、実行管理するアプリケーション管理テーブルとを備え、制御スレッドは、複数の処理部の各々に関連付けられた、デバイス制御スレッド及びCPU処理スレッドの各スレッドからの出力データを確認し、出力データが存在するデバイス制御スレッド及びCPU処理スレッドに対応する複数の処理部の中で、アプリケーション管理テーブルで定義されるアプリケーションの処理の終端に近い処理部から優先的に実行して、デバイス制御スレッド及びCPU処理スレッドの実行およびデータの入出力を指示し、デバイス制御スレッドの各々は指示に従い、対応する周辺デバイスを制御し、周辺デバイスからの完了通知に応答して、周辺デバイスの処理結果と完了通知を制御スレッドに送り、CPU処理スレッドの各々は指示に従い、所定のデータ処理を実行し、所定のデータ処理の処理結果と通知を制御スレッドに送る。
開示されるデータ処理装置の他の態様は、複数の周辺デバイスを動作順序に従って動作させるアプリケーションを定義したアプリケーション管理テーブル、複数の周辺デバイスの各々に対応して、周辺デバイスを制御するデバイス制御スレッド、及び、デバイス制御スレッドより高い優先度を有し、周辺デバイスで処理すべき入力データを有するデバイス制御スレッドの中で、アプリケーション管理テーブルで定義された動作順序が後のデバイス制御スレッドを選択して、実行させる制御スレッドを備える。
開示されるデータ処理装置のさらに他の態様は、デバイス制御スレッドは、複数の周辺デバイスの中で複数の動作種別を有する周辺デバイスの各々の動作種別に対応して設けられる。
本発明のデータ処理装置及びその方法によれば、応答速度とスループットが高く、複数デバイスを共有するアプリケーションプログラムを実行できる。
データ処理装置のブロック図である。 データ処理装置のアプリケーション管理テーブルの構成例である。 データ処理装置のCPU、周辺デバイスの動作タイミングチャートである。 データ処理装置のアプリケーション管理テーブルの他の構成例である。
以下、実施例を図面を用いて説明する。
図1は、実施例1のデータ処理装置のブロック図である。図2は、アプリケーション管理テーブルの構成例であり、図3は、CPU、周辺デバイスの動作タイミングチャートである。
図1において、データ処理装置は、CPU101、メモリ102、並びに、入力装置103、テレビチューナ104、デコーダ105、ネットワークインタフェース106、DVD/CD107、暗号回路108、HDD/不揮発メモリ109、及びディスプレイ110の周辺デバイスがバスにより接続された構成である。CPU101は、後述する各処理を実行する。メモリ102は、CPU101の実行するプログラム、CPU101及び各周辺デバイス103〜110の入出力データを格納する。周辺デバイスとしての入力装置103は、スイッチ、ボタン、タッチパネル、マウスなどである。デコーダ105は、テレビチューナやネットワーク、DVD、HDDから送られる映像、音楽などのコンテンツデータのデコードを行う。ネットワークインタフェース106は、携帯電話、CANなどのネットワークインタフェース回路である。DVD/CD107は、更新地図、映像、音楽、写真などが格納されたDVD/CDメディア及びDVD/CDインタフェース回路である。暗号回路108は、暗号化されたデータの復号やデータの暗号化を行う。HDD/不揮発メモリ109は、HDD/不揮発メモリなどのストレージとのインタフェース回路およびHDD/不揮発メモリである。ディスプレイ110は、本データ処理装置の処理結果を表示する。
CPU101は、プログラム(処理部、スレッド)の組み合わせを実行することにより、アプリケーションを実行することになる。処理部及びスレッドは、いずれも処理部またはスレッドと呼んでも良いが、ここでは説明を分かり易くするために、2種の呼称を用いる。処理部については後述する。
スレッドには、各周辺デバイスの動作を制御するデバイス制御スレッド112、113、115、及び117、CPU101により所定の機能を実行するCPU処理スレッド114、及び116、並びに制御スレッド111がある。制御スレッド111は、デバイス制御スレッド112、113、115及び117、並びにCPU処理スレッド114及び116の並列実行を、各々に対応する処理部を介して制御する。すなわち、各処理部は、制御スレッド111に含まれる。デバイス制御スレッド112、113、115、117は、制御スレッド111による制御の下で、各周辺デバイスを並列に動作させる。以上のように、制御スレッド111による制御を実現するために、制御スレッド111の優先度を他のスレッドより高く設定しておく。
本実施例のデバイス制御スレッド112、113、115及び117、並びに、CPU処理スレッド114及び116は、次のとおりである。DVD制御スレッド112は、制御スレッド111の指示に従い、DVD/CD107の制御と入出力データの管理を行う。暗号回路制御スレッド113は、制御スレッド111の指示に従い、暗号回路108の制御と入出力データの管理を行う。伸張スレッド114は、制御スレッド111の指示に従い、CPU101の処理として、圧縮されているデータの伸張処理を行う。HDD制御スレッド115は、制御スレッド111の指示に従い、HDD/不揮発メモリ109の制御と入出力データの管理を行う。地図表示データ作成スレッド116は、CPU101の処理として、地図データをディスプレイ110で表示可能な形式のデータへ変換する。ディスプレイ制御スレッド117は、ディスプレイ110の制御と入力データの管理を行う。
図2に、アプリケーション管理テーブル118の構成例を示す。アプリケーション管理テーブル118は、デバイス制御スレッド112、113、115及び117とCPU処理スレッド114及び116との各スレッドを組み合わた構成及び動作順序によりアプリケーションを定義し、制御スレッド111が、アプリケーション管理テーブル118を参照して、CPU101、周辺デバイスの並列動作制御を管理する。
アプリケーション管理テーブル118は、アプリケーションID、処理部ID、処理部関連スレッドID、前処理部ID、前処理部出力バッファフラグの項目をもつ。なお、図2では、アプリケーションIDとしてアプリケーションの名称を示すが、各処理部のID及び各処理部に関連するスレッドIDは、図面の複雑化を避けるために、図1に示す各処理部及びスレッドの符号で示している。アプリケーションID欄には、地図更新アプリケーション201のID、、ルート案内アプリケーション202のIDを図示している。アプリケーション管理テーブル118の、地図更新アプリケーション201及びルート案内アプリケーション202の各行は各アプリケーションの構成を表している。
地図更新アプリケーション201の行の処理部IDは、地図更新アプリケーション201を構成するDVDリード部143、復号部144、伸張部145、及びHDDライト部146の各処理部である。処理関連スレッドIDは、地図更新アプリケーション201を構成する各処理部が利用するスレッドを表している。。図2は、DVDリード部143はDVD制御スレッド112を、復号部144は暗号回路制御スレッド113を、伸張部145は伸張スレッド114を、HDDライト部146はHDD制御スレッド115を、各々利用することを表している。
前処理部IDは、アプリケーションを構成している処理部の依存関係を表している。地図更新アプリケーション201の処理部の依存関係として、DVDリード部143の実行順序が、地図更新アプリケーション201の処理の先頭であり、DVDリード部143の処理結果を復号部144が利用し、復号部144の出力を伸張部145が利用し、伸張部145の出力をHDDライト部146が利用することを表している。これは、DVDリード部143でDVD制御スレッド112を介して、DVD/CD107からリードしたデータを、復号部144が暗号回路制御スレッド113を介して暗号回路108を使って復号し、復号されたデータを伸張部145が伸張スレッド114を使って伸張し、伸張されたデータをHDDライト部146がHDD制御スレッド115を介してHDD/不揮発メモリ109に書き込むアプリケーションであることを表している。つまり、データはDVDリード部143、復号部144、伸張部145、HDDライト部146の順で処理される。
本実施形態では、複数の処理部の一連の処理をスムーズに実行するため処理の終端に近い処理部を優先的に実行する。このため、地図更新アプリケーション201の実行において、処理部の優先順位は、DVDリード部143、復号部144、伸張部145、HDDライト部146の順で高くなり、HDDライト部146の優先順位が最も高い。
前処理部出力バッファフラグは、前処理部の出力データの有無を表す。つまり、地図更新アプリケーションD201の暗号回路制御スレッド113の行の前処理部出力バッファフラグは、暗号回路制御スレッド113が処理すべきデータが存在するかを表し、図2の「無」は処理すべきデータが存在しないことを表している。このフラグが「有」の場合は、処理部の優先順位に従って、暗号回路制御スレッド113が実行される。
制御スレッド111と、デバイス制御スレッド112、113、115及び117)並びにCPU処理スレッド114及び116とのデータの受け渡しについて説明する。このデータの受け渡しには、メモリ102を介した通信を利用する。
DVD制御スレッド制御キュー119には、制御スレッド111がDVD制御スレッド112に対する制御情報を格納する。DVD制御スレッド入力バッファキュー120は、制御スレッド111がDVD制御スレッド112に与える入力バッファが設定される。DVD制御スレッド出力バッファキュー121には、DVD制御スレッド112の出力データが格納される。DVD制御スレッド通知122は、DVD制御スレッド112から制御スレッド111に処理完了などを通知する信号線(メモリ102上のフラグ)である。
123は、暗号回路制御スレッド制御キュー123は、制御スレッド111が暗号回路制御スレッド113に対する制御情報を格納する。暗号回路制御スレッド入力バッファキュー124は、制御スレッド111が暗号回路制御スレッド113に与える入力データが格納されるバッファが設定される。暗号回路制御スレッド出力バッファキュー125には、暗号回路制御スレッド113が暗号回路108を利用して暗復号した結果の出力データが格納される。暗号回路制御スレッド通知126は、暗号回路制御スレッド113から制御スレッド111に処理完了などを通知する信号線である。
伸張スレッド制御キュー127は、制御スレッド111が伸張スレッド114に対する制御情報を格納する。伸張スレッド入力バッファキュー128は、制御スレッド111が伸張スレッド114に与える伸張対象である入力データの格納されたバッファが設定される。伸張スレッド出力バッファキュー129には、伸張スレッド114が伸張した結果の出力データが格納される。伸張スレッド通知130は、伸張スレッド114から制御スレッド111に処理完了などを通知する信号線である。
HDD制御スレッド制御キュー131は、制御スレッド111がHDD制御スレッド115に対する制御情報を格納する。HDD制御スレッド入力バッファキュー132は、制御スレッド111が、HDD/不揮発メモリ109に書き込むデータを格納するバッファが設定される。HDD制御スレッド出力バッファキュー133には、HDD制御スレッド115がHDD/不揮発メモリ109から読み出したデータが格納される。HDD制御スレッド通知134は、HDD制御スレッド115から制御スレッド111に処理完了などを通知する信号線である。
地図表示データ作成スレッド制御キュー135は、制御スレッド111が地図表示データ作成スレッド116に対する制御情報を格納する。地図表示データ作成スレッド入力バッファキュー136は、制御スレッド111が、地図表示データ作成スレッド116に地図データを格納する入力バッファが設定される。地図表示データ作成スレッド出力バッファキュー137には、地図表示データ作成スレッド116が入力された地図データを基に作成した表示用データが格納される。地図表示データ作成スレッド通知138は、地図表示データ作成スレッド116から制御スレッド111に処理完了などを通知する信号線である。
ディスプレイ制御スレッド制御キュー139は、制御スレッド111がディスプレイ制御スレッド117に対する制御情報を格納する。ディスプレイ制御スレッド入力バッファキュー140は、制御スレッド111が、ディスプレイ110に表示する表示データを格納するバッファが設定される。ディスプレイ制御スレッド出力バッファキュー141には、ディスプレイ制御スレッド117が制御スレッド111に送るデータが格納される。ディスプレイ制御スレッド通知142は、ディスプレイ制御スレッド117から制御スレッド111に処理完了などを通知する信号線である。
制御スレッド111内の処理部の1つである制御部150によって制御され、デバイス制御スレッド112、113、115及び117、並びに、CPU処理スレッド114及び116を制御する処理部を説明する。
DVDリード部143は、DVD制御スレッド112を介して、DVD/CD107に格納されている地図、映像、音楽などのデータを読み出す。復号部144は、暗号回路制御スレッド113を介して、暗号回路108を制御し、暗号化されたデータを復号する。伸張部145は、伸張スレッド114をCPU101で実行することによって、圧縮されたデータを伸張する。HDDライト部146は、HDD制御スレッド115を介して、HDD/不揮発メモリ109を制御し、更新地図、更新地図関連情報、映像、音楽、動作記録などのデータをHDD/不揮発メモリ109に書き込む。HDDリード部147は、HDD制御スレッド115を介して、HDD/不揮発メモリ109を制御し、地図、地図関連情報、映像、音楽、動作記録などのデータをHDD/不揮発メモリ109から読み出す。地図表示データ作成部148は、地図表示データ作成スレッド116をCPU101で実行させることによって、地図および地図関連情報を、ディスプレイ制御スレッド117がディスプレイ110へ表示可能なデータ列に変換する。表示部149は、ディスプレイ制御スレッド117を介して、ディスプレイ110を制御し、入力された表示データを表示する。
制御部150は、アプリケーション管理テーブル118で定義されるアプリケーションの構成に従って、処理部143〜149の各々に関連するスレッドを順に制御する。指示ID151は、制御部150が制御中の処理部143〜149を指し、制御部150によって更新される。
地図更新アプリケーション201を例にアプリケーションの動作を説明する。図3は、横軸を時間として、DVD/CD107、暗号回路108、CPU101、暗号回路108の動作を示している。まず、時刻T1(以下、時刻Tnを単にTnで示す。)で制御スレッド111は、CPU101で実行される。制御スレッド111の制御部150は各処理部に関連付けられたスレッドからの出力を確認する。つまり、アプリケーション管理テーブル118の地図更新アプリケーション201の行の前処理部出力バッファフラグを確認する。図2は初期状態を表しており、どの処理部も処理できるデータを持っていないため、前処理部出力バッファフラグはすべて「無」となっている。DVDリード部143は、入力データを必要としない処理のため、前処理部出力バッファフラグは‘−(ハイフォン)’となっており、実行可能である。このため、制御部150は、DVDリード部143を実行する。DVDリード部143は、DVD制御スレッド制御キュー119に読み込み指示を与え、DVD制御スレッド入力バッファキュー120に読み込み結果データを格納するバッファを与えて、DVD制御スレッド出力バッファキュー121にデータが届いていないことを確認し処理を終了する。DVD制御スレッド112は、DVD制御スレッド制御キュー119より読み込み指示を受取ると、DVD制御スレッド入力バッファキュー120で示されているバッファにデータを格納するようDVD/CD107を制御し、DVD/CD107の処理が完了するまで、CPU101を利用せず待機する。T2で、DVD/CD107は、DVDリード部143からの制御で読み込みを開始し、T3で読み込みを完了する。図3に示す301は、T2の制御で、DVD/CD107が動作している期間(T2〜T3)を表している。
T3で、DVD制御スレッド112は、アプリケーション管理テーブル118の処理部IDが復号部144の行の前処理出力バッファフラグを「無」に戻して、DVD制御スレッド出力バッファキュー121に読み込み結果データを格納し、DVD制御スレッド通知122でDVDリード部143に通知する。この通知を受け、DVDリード部143は、アプリケーション管理テーブル118の地図更新アプリケーション201の前処理IDがDVDリード部143である行の前処理出力バッファフラグを有に変更し、制御部150に処理を移す。
T3での制御内容を説明したが、DVD制御スレッド112、制御スレッド111のDVDリード部143などの制御主体の遷移について、説明する。T3において、DVD/CD107が所定の動作を完了すると、動作完了に伴いCPU101に対して完了割り込みを発生する。CPU101に対する割り込みは、説明を省略しているOSの割込み処理ルーチンで解析され、所定の処理を実行する。ここでは、DVD/CD107からの割り込みであると解析し、所定の処理としてDVD制御スレッド112を実行する。DVD制御スレッド112からのDVD制御スレッド通知122も、CPUに対する割り込み(ソフトウェア割込み)である。OSの割込み処理ルーチンは、DVD制御スレッド通知122の割り込みであると解析し、DVD制御スレッド通知122であることをパラメータとし、所定の処理として制御スレッド111を実行する。制御スレッド111は、パラメータを参照して、DVDリード部143を実行する。DVDリード部143から制御部150への制御主体の遷移は、制御スレッド111の処理シーケンスによって決定される。たとえば、パラメータが設定されていないときは、制御部150を実行するようにする。
制御部150は、T1の処理と同様に、前処理出力バッファフラグを確認する。処理部IDが復号部144の行の前処理出力バッファフラグが「有」となっており、復号部144とDVDリード部143が実行可能である。前処理部IDを確認すると、復号部144の処理がDVDリード部143のデータを利用しているため、復号部144の処理を優先して実行する。復号部144は、DVDリード部143と同様に暗号回路制御スレッド制御キュー123に復号指示、暗号回路制御スレッド入力バッファキュー124にDVD制御スレッド出力バッファキュー121から受取ったデータを格納する。DVDリード部143は、T1からT2の期間と同様の動作をする。
T4から、DVD/CD107と暗号回路108が並列に動作し、T5でDVD/CD107と暗号回路108の処理が完了する(図3の305及び302)。また、T5でDVD制御スレッド112、暗号回路制御スレッド113の処理が再開される。DVD制御スレッド112、暗号回路制御スレッド113の処理が再開されると、アプリケーション管理テーブル118の処理部IDの復号部144と伸張部145との行の前処理部出力バッファフラグが「有」となり、DVD制御スレッド出力バッファキュー121に読み込んだデータが格納され、、DVD制御スレッド通知122に読み込み完了通知が出力され、暗号回路制御スレッド出力バッファキュー125に復号されたデータが格納され、暗号回路制御スレッド通知126に復号完了通知が出力される。
簡単のため、並列して動作する各デバイスの動作開始時間と完了時間が一致する例を示したが、これらが一致している必要はない。これらの通知を受け、制御部150は、アプリケーション管理テーブル118を確認して、DVDリード部143、復号部144、伸張部145を実行する。アプリケーション管理テーブル118の示す各処理部の依存関係から、伸張部145がもっとも優先順位が高く、DVDリード部143がもっとも優先順位が低くなる。
これによって、DVD制御スレッド112、暗号回路制御スレッド113、伸張スレッド114が実行され、T6より、DVD/CD107、暗号回路108、CPU101が並列に動作し、T7でこれらのデバイスの処理が完了する(図3の309、306及び303)。T7でこれらのデバイスの処理が完了すると、アプリケーション管理テーブル118の地図更新アプリケーション201の処理IDが復号部144、伸張部145、HDDライト部146の行の前処理部出力バッファフラグが「有」になる。このフラグを参照して制御部150が制御を行うので、T8より、DVD/CD107、暗号回路108、CPU101、HDD/不揮発メモリ109が並列して動作し、T9でこれらのデバイスの処理が完了する(図3の313、310、307及び304)。T8より、304の期間でHDD/不揮発メモリ109により処理されるデータは、301の期間でDVD/CD107から読み出され、302の期間で暗号回路108で復号化され、303の期間で伸張されたデータである。
スレッドの優先順位としては、CPU101と周辺デバイス103〜110の並列動作のため、CPU処理スレッド114及び116より、デバイス制御スレッド112、113、115、及び117の優先順位を高くする。また、これらのスレッドの動作タイミングを正しく決定するため、制御スレッド111の優先順位は、CPU処理スレッド114及び116と、デバイス制御スレッド112、113、115、及び117より高くする。
並列して動作する各デバイスの動作開始時間と完了時間が一致しない場合において、上述の優先順位による制御を実現するための制御主体の遷移について説明する。各デバイスの動作開始時間と完了時間が一致しない場合、デバイス制御スレッド112、113、115及び117、並びに、CPU処理スレッド114及び116のいずれかが実行中に、実行中以外のスレッドの実行開始のトリガーが発生する。このトリガーは、DVD/CD107などの周辺デバイスからの割込みとデバイス制御スレッド112、113、115及び117からの割り込みである。周辺デバイスからの割込みに関しては、対応するデバイス制御スレッド112、113、115及び117のいずれかへのトリガーであるが、このトリガーにより実行開始すべきデバイス制御スレッドと実行中のスレッドとの、アプリケーション管理テーブル118で定義される優先順位(同じデータを順次処理する下流側にあるスレッドの方が優先順位が高い)に従って、実行順序が制御される。デバイス制御スレッド112、113、115及び117からの割り込みに関しては、前述したようにデバイス制御スレッド112、113、115及び117からの終了通知であるので、制御スレッド111の優先順位が他のスレッドより優先度が高いので、制御スレッド111を実行するように制御される。
以上の構造と制御で、各周辺デバイスが並列に動作できるタイミングで制御可能になり、高い応答速度とスループットを実現できる。
また、この様なしくみにより、同じ装置で、ルート案内アプリケーション202のような、HDDリード部147、地図表示データ作成部148、表示部149の順でデータを処理するアプリケーションも実現できる。アプリケーション管理テーブル118に示すようにルート案内アプリケーション202は定義できる。ルート案内アプリケーション202の定義に従って、同様の制御をすることで、HDD/不揮発メモリ109、CPU101、ディスプレイ110を並列に動作させることができる。地図更新アプリケーション201では、HDD/不揮発メモリ109を優先して動作さていたところを、ルート案内アプリケーション202では、HDD/不揮発メモリ109をもっとも低い優先順位で動作させている。この様に、アプリケーション管理テーブル118の定義で、柔軟に周辺デバイスの使用順序(動作順序)を変更することができる。
ここまで、地図更新アプリケーション201、ルート案内アプリケーション202の動作について説明してきたが、地図検索アプリケーションでも同様である。地図検索アプリケーションは、データをHDD/不揮発メモリ109から読み出して、CPU101で読み出したデータから条件に一致するデータを表示用データに変換し、ディスプレイ110で表示する。このとき、HDD/不揮発メモリ109、CPU101、ディスプレイ110を並列に動作させる。同様に、ルート案内アプリケーション、テレビ録画アプリケーション、音楽再生アプリケーション、映像再生アプリケーション、CDリッピングアプリケーションなども実現でき、自由に切替できる。
地図更新アプリケーション201とルート案内アプリケーション202を並列に動作させることもできる。この場合、制御部150は、指示ID151で最後に制御したアプリケーションIDを記録する。次に制御部150に制御が戻ったとき、指示ID151に記録されているアプリケーションIDの処理の優先順位を低くすることで、地図更新アプリケーション201とルート案内アプリケーション202が共有するHDD/不揮発メモリ109、CPU101をどちらかのアプリケーションが占有し、他のアプリケーションの動作を阻害することを防ぐことができる。HDD/不揮発メモリ109を共有する、HDDライト部146、HDDリード部147で行われるようなデータに依存関係が無い処理に関しては、優先順位を持たせず、動作タイミングが重なった場合は、交互に動作させることになる。地図更新アプリケーション201とルート案内アプリケーション202でHDD/不揮発メモリ109を使用する処理で優先順位の逆転があるが、データに依存関係の無い処理であるので、他の処理を待たせることが無い。これによって、周辺デバイスの使用順序の異なるアプリケーションプログラムを並列に実行することが可能になる。
HDDは、処理スループットの揺らぎの大きいデバイスである。この様な、揺らぎの大きいデバイスを利用し、複数のアプリケーション利用時にその揺らぎが並列動作中の全アプリケーション影響があると問題の有るケースがある。たとえば、地図更新アプリケーション201とルート案内アプリケーション202で更新より、ルート案内を優先する場合を考える。この場合、図4のように、アプリケーション管理テーブル118にアプリケーション優先順位を追加して制御することで、ルート案内のタイミングを守ることが出来る。制御部150に制御が戻ったとき、優先順位の高いアプリケーションID行の処理部IDに関連付けられているデバイスに、前処理部によって用意されたデータ処理させる。優先順位が同じアプリケーションに関しては、実施例2同様、指示ID151で記録している最後に制御したアプリケーションの優先順位を低くすることで、効率よく並列化する。この様にすることで、スループットを保証したいルート案内アプリケーション202と、可能な限り高いスループットで処理できれば良い地図更新アプリケーション201を共存させることが出来る。
本実施形態によれば、データ処理装置は、アプリケーションプログラムで使用する入力から、出力までに使用する各周辺デバイスの処理順序をソフトウェアで管理する。そして、データに依存関係がある処理に関しては、処理待ちのデータが存在し、かつ、出力デバイス等の終端に近い処理を優先的に実行する。このため、スムーズに各周辺デバイスが並列に動作できるタイミングで制御可能になり、高い応答速度とスループットを実現しながら、柔軟に周辺デバイスの使用順序を変更することが出来る。
さらに、データに依存関係が無い処理に関しては、優先順位を持たせない。これによって、優先順位の逆転があったとしても、データに依存関係の無い処理であれば、他の処理を待たせることが無い。これによって、周辺デバイスの使用順序の異なるアプリケーションプログラムを並列に実行することが可能になる。たとえば、ルート案内のタイミングを守らなければならないルーと案内のアプリケーションプログラムと、データを取りこぼすことが許されないTV放送の録画アプリケーションプログラムの並列実行が可能になる。
同じ、仕組みで処理グループ毎に優先順位を持たせることもできる。この場合、スループットを保証する処理と、可能な限り高いスループットで処理できれば良い処理を共存させることができる。スループットを保証したい処理の優先順位を高くすることで、スループットの低い処理を待たせることができる。重要な処理のスループット保証を実現しながら、優先順位の低い処理を、実行可能な最大のスループットで動作させることができる。たとえば、ルート案内のタイミングを守らなければならないルーと案内のアプリケーションプログラムと、できる限り短時間で実行したい、新しい地図などのダウンロードアプリケーションプログラムの並列実行が可能になる。ルート案内処理負荷が低い期間はダウンロード処理スループットを上げ、ダウンロード時間を短縮する。負荷が高い期間は、ダウンロード処理スループットを下げ、ルート案内処理タイミングを保証することができる。
テレビ、レコーダ、セットトップボックス、携帯電話、複合機など、複数の周辺デバイスを利用するシステムに適用できる。
101:CPU、102:メモリ、103:入力装置、104:テレビチューナ、105:デコーダ、106:ネットワーク、107:DVD/CD、108:暗号回路、109:HDD/不揮発メモリ、110:ディスプレイ、111:制御スレッド、112:DVD制御スレッド、113:暗号回路制御スレッド、114:伸張スレッド、115:HDD制御スレッド、116:地図表示データ作成スレッド、117:ディスプレイ制御スレッド、118:アプリケーション管理テーブル、119:DVD制御スレッド制御キュー、120:DVD制御スレッド入力バッファキュー、121:DVD制御スレッド出力バッファキュー、122:DVD制御スレッド通知、123:暗号回路制御スレッド制御キュー、124:暗号回路制御スレッド入力バッファキュー、125:暗号回路制御スレッド出力バッファキュー、126:暗号回路制御スレッド通知、127:伸張スレッド制御キュー、128:伸張スレッド入力バッファキュー、129:伸張スレッド出力バッファキュー、130:伸張スレッド通知、131:HDD制御スレッド制御キュー、132:HDD制御スレッド入力バッファキュー、133:HDD制御スレッド出力バッファキュー、134:HDD制御スレッド通知、135:地図表示データ作成スレッド制御キュー、136:地図表示データ作成スレッド入力バッファキュー、137:地図表示データ作成スレッド出力バッファキュー、138:地図表示データ作成スレッド通知、139:ディスプレイ制御スレッド制御キュー、140:ディスプレイ制御スレッド入力バッファキュー、141:ディスプレイ制御スレッド出力バッファキュー、142:ディスプレイ制御スレッド通知、143:DVDリード部、144:復号部、145:伸張部、146:HDDライト部、147:HDDリード部、148:地図表示データ作成部、149:表示部、150:制御部、151:指示ID。

Claims (11)

  1. デバイス制御、および/または所定のデータ処理を行う、複数のスレッドと、
    前記複数のスレッドを使用してアプリケーションを構成する制御スレッドと、を備えるデータ処理装置において、
    各々の前記スレッドの組合せと、一つの前記スレッドの実行に他のスレッドの処理結果を必要とするか否かの依存関係と、で、前記アプリケーションを定義し、
    前記制御スレッドは、
    所定の間隔で、および/または、各スレッドの処理完了時点で、繰り返し、前記スレッドの実行可否を調べ、
    実行可能な前記スレッドが複数ある場合、前記依存関係に基づく実行順序が遅い順に前記スレッドの実行を指示する
    ことを特徴とするデータ処理装置。
  2. 請求項1記載のデータ処理装置において、
    前記アプリケーションが複数定義され、
    前記制御スレッドは、
    各々の前記アプリケーションに与えられた優先順位に従い制御対象となった前記アプリケーションを定義する前記スレッドに実行を指示し、
    前記指示を与えた前記アプリケーションの制御が前記制御スレッドに戻ったとき、当該アプリケーションの優先順位を、他の前記アプリケーションより低くする
    ことを特徴とするデータ処理装置。
  3. 請求項2記載のデータ処理装置において、
    前記優先順位が等しいアプリケーション間では、最後に実行を指示した前記スレッドに対応するアプリケーションの前記優先順位を低くする
    ことを特徴とするデータ処理装置。
  4. 請求項1から3のいずれか一に記載のデータ処理装置において、
    前記スレッドは、
    周辺デバイスを制御するデバイス制御スレッドと、
    CPUで実行する所定のデータ処理の各々に対応したCPU処理スレッドと、を含み、
    前記実行の指示を受けた前記デバイス制御スレッドは、
    前記指示に従い、対応する前記周辺デバイスを制御し、
    前記周辺デバイスからの完了通知に応答して、前記周辺デバイスの処理結果と前記完了通知を前記制御スレッドに送り、
    前記実行の指示を受けた前記CPU処理スレッドの各々は
    前記指示に従い、前記所定のデータ処理を実行し、
    前記所定のデータ処理の処理結果と通知を前記制御スレッドに送る
    ことを特徴とするデータ処理装置。
  5. 複数の周辺デバイスを動作順序に従って動作させるアプリケーションを定義したアプリケーション管理テーブル、
    前記複数の周辺デバイスの各々に対応して、前記周辺デバイスに処理すべき入力データを用意し、前記周辺デバイスに動作指示するデバイス制御スレッド、及び、
    前記デバイス制御スレッドより高い優先度を有し、前記周辺デバイスで処理すべき前記入力データを有する前記デバイス制御スレッドの中で、前記アプリケーション管理テーブルで定義された前記動作順序が後の前記デバイス制御スレッドを選択して、実行させる制御スレッドを備え
    前記デバイス制御スレッドからの実行に応答して、選択された前記デバイス制御スレッドは、前記周辺デバイスに動作指示した後、前記周辺デバイスによる前記入力データの処理が完了するまで、前記制御スレッドに制御を戻
    ことを特徴とするデータ処理装置。
  6. 請求項記載のデータ処理装置において、
    前記制御スレッドは、
    前記制御の戻りに応答して、前記周辺デバイスで処理すべき入力データを有する前記デバイス制御スレッドの中で、前記動作順序が、実行中の前記デバイス制御スレッドより前で、かつ最も後の前記デバイス制御スレッドを新たに選択して、実行させる
    ことを特徴とするデータ処理装置。
  7. 請求項記載のデータ処理装置において、
    前記制御スレッドは、
    実行中の前記デバイス制御スレッドに対応する前記周辺デバイスと、新たに選択した前記デバイス制御スレッドに対応する前記周辺デバイスとを並列動作させる
    ことを特徴とするデータ処理装置。
  8. 請求項5記載のデータ処理装置において、
    前記デバイス制御スレッドは、
    前記複数の周辺デバイスの中で複数の動作種別を有する周辺デバイスの各々の動作種別に対応して設けられる
    ことを特徴とするデータ処理装置。
  9. 請求項記載のデータ処理装置において、
    前記制御スレッドは、
    前記アプリケーション管理テーブルで定義された第1のアプリケーションを処理するための、前記周辺デバイスの第1の動作種別の動作を制御する第1のデバイス制御スレッドと、前記アプリケーション管理テーブルで定義された第2のアプリケーションを処理するための、前記周辺デバイスの第2の動作種別の動作を制御する第2のデバイス制御スレッドとの動作タイミングが重なったとき、前記周辺デバイスが前記第1の動作種別と前記第2の動作種別との動作が交互に制御されるように、前記第1のデバイス制御スレッドと前記第2のデバイス制御スレッドとの実行を制御する
    ことを特徴とするデータ処理装置。
  10. 複数の周辺デバイスを動作順序に従って動作させるアプリケーションを定義したアプリケーション管理テーブルと、前記複数の周辺デバイスの各々対応して、前記周辺デバイスを制御するデバイス制御スレッドと、制御スレッドとを有するデータ処理装置におけるデータ処理方法であって、
    前記デバイス制御スレッドは、前記周辺デバイスに処理すべき入力データを用意し、
    前記制御スレッドは、
    前記周辺デバイスで処理すべき前記入力データを有する前記デバイス制御スレッドの中で、前記アプリケーション管理テーブルで定義された前記動作順序が後の前記デバイス制御スレッドを選択し、選択した前記デバイス制御スレッドを実行し、
    前記デバイス制御スレッドからの実行に応答して、選択された前記デバイス制御スレッドは、
    前記周辺デバイスに動作指示した後、前記周辺デバイスによる前記入力データの処理が完了するまで、前記制御スレッドに制御を戻す
    ことを特徴とするデータ処理方法。
  11. 請求項1記載のデータ処理方法において、
    前記制御スレッドは、
    前記制御の戻りに応答して、前記周辺デバイスで処理すべき入力データを有する前記デバイス制御スレッドの中で、前記動作順序が、実行中の前記デバイス制御スレッドより前で、かつ最も後の前記デバイス制御スレッドを新たに選択して、新たに選択した前記デバイス制御スレッドを実行する
    ことを特徴とするデータ処理方法。
JP2009186562A 2009-08-11 2009-08-11 データ処理装置及びデータ処理方法 Active JP5452125B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009186562A JP5452125B2 (ja) 2009-08-11 2009-08-11 データ処理装置及びデータ処理方法
US12/826,093 US20110041135A1 (en) 2009-08-11 2010-06-29 Data processor and data processing method
EP10167783A EP2287737A3 (en) 2009-08-11 2010-06-29 Data processor and data processing method
US13/781,578 US9176771B2 (en) 2009-08-11 2013-02-28 Priority scheduling of threads for applications sharing peripheral devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186562A JP5452125B2 (ja) 2009-08-11 2009-08-11 データ処理装置及びデータ処理方法

Publications (3)

Publication Number Publication Date
JP2011039775A JP2011039775A (ja) 2011-02-24
JP2011039775A5 JP2011039775A5 (ja) 2012-08-23
JP5452125B2 true JP5452125B2 (ja) 2014-03-26

Family

ID=43127278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186562A Active JP5452125B2 (ja) 2009-08-11 2009-08-11 データ処理装置及びデータ処理方法

Country Status (3)

Country Link
US (2) US20110041135A1 (ja)
EP (1) EP2287737A3 (ja)
JP (1) JP5452125B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050815B1 (ko) * 2013-01-07 2020-01-08 삼성전자주식회사 휴대 단말기에서 근접 통신 기능을 제공하는 장치 및 방법
JP6905454B2 (ja) * 2017-11-10 2021-07-21 フォルシアクラリオン・エレクトロニクス株式会社 ナビゲーションシステム、ナビゲーション方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250188A (ja) 1992-03-05 1993-09-28 Hitachi Ltd プロセスのプライオリティ制御方式
JPH11272627A (ja) 1998-03-23 1999-10-08 Nec Corp パイプライン型マルチプロセッサシステム
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
AU1375101A (en) * 1999-11-09 2001-06-06 University Of Victoria Innovation And Development Corporation Modified move to rear list system and methods for thread scheduling
US20010027464A1 (en) * 2000-03-27 2001-10-04 General Instrument Corporation Operating system abstraction interface for broadband terminal platform firmware
US6675285B1 (en) * 2000-04-21 2004-01-06 Ati International, Srl Geometric engine including a computational module without memory contention
US7111156B1 (en) * 2000-04-21 2006-09-19 Ati Technologies, Inc. Method and apparatus for multi-thread accumulation buffering in a computation engine
US7039770B1 (en) * 2002-03-05 2006-05-02 Juniper Networks, Inc. Low latency request dispatcher
US6952214B2 (en) * 2002-07-12 2005-10-04 Sun Microsystems, Inc. Method for context switching a graphics accelerator comprising multiple rendering pipelines
JP3880942B2 (ja) * 2003-03-24 2007-02-14 株式会社東芝 プロセッサ、計算機及び優先度決定方法
US20040139441A1 (en) 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
WO2004072796A2 (en) * 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
US7039914B2 (en) * 2003-03-07 2006-05-02 Cisco Technology, Inc. Message processing in network forwarding engine by tracking order of assigned thread in order group
US7278141B2 (en) * 2003-04-23 2007-10-02 International Business Machines Corporation System and method for adding priority change value corresponding with a lock to a thread during lock processing
JP2004334537A (ja) 2003-05-07 2004-11-25 Sony Corp プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
US20050071841A1 (en) * 2003-09-30 2005-03-31 Hoflehner Gerolf F. Methods and apparatuses for thread management of mult-threading
US7676809B2 (en) * 2003-10-09 2010-03-09 International Business Machines Corporation System, apparatus and method of enhancing priority boosting of scheduled threads
JP2004163963A (ja) 2003-12-15 2004-06-10 Casio Electronics Co Ltd 画像形成装置
EP1569104A3 (en) * 2004-01-09 2006-05-03 Interuniversitair Microelektronica Centrum Vzw An automated method for performing parallelization of sequential code and a computerized system adapted therefore
US7634776B2 (en) * 2004-05-13 2009-12-15 Ittiam Systems (P) Ltd. Multi-threaded processing design in architecture with multiple co-processors
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US20060161582A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Application object as primitive of operating system
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
US7802256B2 (en) * 2005-06-27 2010-09-21 Microsoft Corporation Class scheduler for increasing the probability of processor access by time-sensitive processes
US7861060B1 (en) * 2005-12-15 2010-12-28 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
GB0605349D0 (en) * 2006-03-17 2006-04-26 Imec Inter Uni Micro Electr Reconfigurable multi-processing coarse-grain array
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US7853950B2 (en) * 2007-04-05 2010-12-14 International Business Machines Corporarion Executing multiple threads in a processor
US8117618B2 (en) * 2007-10-12 2012-02-14 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
US8245232B2 (en) * 2007-11-27 2012-08-14 Microsoft Corporation Software-configurable and stall-time fair memory access scheduling mechanism for shared memory systems
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
WO2009076654A1 (en) * 2007-12-12 2009-06-18 University Of Washington Deterministic multiprocessing
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
US20090165007A1 (en) * 2007-12-19 2009-06-25 Microsoft Corporation Task-level thread scheduling and resource allocation
TWI462011B (zh) * 2007-12-28 2014-11-21 Accton Technology Corp 程序之執行緒群組管理方法
US20090320021A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies
US8285973B2 (en) * 2008-08-04 2012-10-09 International Business Machines Corporation Thread completion rate controlled scheduling
US8650554B2 (en) * 2010-04-27 2014-02-11 International Business Machines Corporation Single thread performance in an in-order multi-threaded processor

Also Published As

Publication number Publication date
US9176771B2 (en) 2015-11-03
US20130174173A1 (en) 2013-07-04
JP2011039775A (ja) 2011-02-24
EP2287737A2 (en) 2011-02-23
EP2287737A3 (en) 2012-01-04
US20110041135A1 (en) 2011-02-17

Similar Documents

Publication Publication Date Title
TWI578225B (zh) 移動裝置和使用交換其的資料管理方法
JP4667108B2 (ja) データ処理装置
JP2009502050A (ja) レンダリング済待ち行列を伴うgpuタイムライン
JP5338306B2 (ja) データ記憶装置およびデータ記憶装置におけるデータ管理方法
WO2011128957A1 (ja) スクリーンショット表示制御装置、スクリーンショット表示制御方法、スクリーンショット表示制御用集積回路、サーバ装置
JP2006259898A (ja) I/oコントローラ、信号処理システム、およびデータ転送方法
WO2006120821A1 (ja) 画像処理システム
JP4466507B2 (ja) 画像表示システム,画像表示方法および画像データ処理装置
JP4789777B2 (ja) タスクの分配方法および情報処理装置
US20080294802A1 (en) Stream processing device and storage device
JP5405663B2 (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム、メモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
JP5452125B2 (ja) データ処理装置及びデータ処理方法
JP4141457B2 (ja) 情報記録装置、情報再生装置、プログラム、及び記録媒体
JP6685869B2 (ja) 表示装置、表示システム、および表示方法
JP2009175880A (ja) 情報処理装置及びプログラム
JP5159721B2 (ja) メモリ割り当て装置およびメモリ割り当て方法
JP4584324B2 (ja) データ処理システム、及びコンポーネント管理方法
JP2014106546A (ja) レジューム方法及び情報処理装置
JP5787129B2 (ja) リモート接続画面のデータ転送方法及びプログラム
JP2005189975A (ja) 画像処理装置、画像処理方法およびプログラム
JP2006059340A (ja) 実時間処理ソフトウェア制御装置及び方法
JP2006039604A (ja) 情報処理装置および方法、並びにプログラム
JP3644950B2 (ja) ストリームデータ処理装置
JP2010087556A (ja) 録画再生装置、録画再生プログラム、録画再生方法
JP2020118980A (ja) 表示装置及び制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131227

R150 Certificate of patent or registration of utility model

Ref document number: 5452125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250