JP3878307B2 - プログラマブルなデータ処理装置 - Google Patents
プログラマブルなデータ処理装置 Download PDFInfo
- Publication number
- JP3878307B2 JP3878307B2 JP35098197A JP35098197A JP3878307B2 JP 3878307 B2 JP3878307 B2 JP 3878307B2 JP 35098197 A JP35098197 A JP 35098197A JP 35098197 A JP35098197 A JP 35098197A JP 3878307 B2 JP3878307 B2 JP 3878307B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- task
- pld
- data
- programmable logic
- 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 - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ、デジタルAV機器、デジタル通信装置などを構成するデータ処理装置に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ、デジタルAV機器、デジタル通信装置などのように、静止画、動画、音声などを含むマルチメディアデータを扱う種々のデータ処理装置が増加している。
従来のデータ処理装置ではシステム全体の処理を加速させるため、CPUで処理していた特定の機能の一部をASIC(Aplication Specific Integrated circuit)などの専用ハードウェアで実行していた。特定の機能というのは、画像処理(グラフィックスデータの描画、動画像のデコード/エンコードなど)や信号処理(モデム機能、通信機能など)であり、大量の演算処理を必要とする。
【0003】
従来のデータ処理装置がグラフィックス処理を加速する例を用いて説明する。図12は従来のデータ処理装置のブロック図を示す。同図において、101はCPU、102はメモリ、103はアクセラレータ、104は出力装置、105は入力装置である。
メモリ102は、CPU101で実行するアプリケーションを格納している。このアプリケーションは、二次元(以下2D)あるいは三次元(以下3D)グラフィックス処理用であるものとする。また、その処理内容は、キーボードやマウスなどの入力装置105から入力される情報によって変化するものとする。例えばゲーム機のコントローラ入力によって表示内容が異なるなどの状況があてはまる。処理の結果はコンピュータディスプレイなどの出力装置104を通して表示される。
【0004】
アクセラレータ103は、2Dあるいは3Dグラフィックス処理に特化したパイプラインや並列処理機構あるいはDMA(Direct Memory Access)機構を備える。
このように構成されたデータ処理装置において、CPU101は、2Dあるいは3Dグラフィックス処理の一部をアクセラレータ103に任せて処理を加速させる。
【0005】
一般に、2Dあるいは3Dグラフィックス処理がバイト単位の処理の繰り返しとメモリ処理で占められ、CPU101にとってはバイト単位の処理の非効率さとメモリ処理の期間演算不能になることから高速化が難しい。また、CPU101とアクセラレータ103とが同時に処理すれば機能分担によりシステム全体が効率よく機能する。
また、アクセラレータとして特化される機能は、上記の2Dあるいは3Dグラフィックス処理のほか、MPEGデコード・エンコードや、ディジタル信号処理を要する通信機能など種々のものがある。
以上のように従来のデータ処理装置は、専用機能に特化したアクセラレータを備えることにより、特定処理の加速を図っていた。
【0006】
【発明が解決しようとする課題】
ところで、上記従来技術の構成では、アクセラレータがサポートする特定の処理しか加速されないので、マルチメディアデータ全般に対応して加速することができないという問題があった。
【0007】
さらに、マルチメディアデータが浸透しつつある今日、マルチメディアデータの種類に応じて画像の圧縮/伸長、音声処理、グラフィックス処理、通信など様々な機能要求が増えてきている。これらの全部を加速するには、各々に別個のアクセラレータが必要になり、機能要求が増えるにつれハードウェア規模およびコストが増えることになる。
【0008】
本発明は上記問題点に鑑み、あらゆる機能要求に対応しかつ低コスト化を図ったデータ処理装置を提供することを目的とする。
【0009】
【発明を解決するための手段】
上記課題を解決するため本発明のデータ処理装置は、アプリケーションプログラムを実行するデータ処理装置であって、論理回路をプログラムにより形成可能なプログラマブルロジックデバイスと、プログラマブルロジックデバイス用の複数のプログラムデータを記憶する記憶手段と、プログラムデータを用いてプログラマブルロジックデバイスをプログラムするプログラミング手段と、前記アプリケーションプログラムの実行内容に応じて、プログラマブルロジックデバイスを更新するようプログラミング手段を制御する制御手段とを備えている。
【0010】
また、前記データ処理装置は、さらにデータ退避領域を有する退避記憶手段と、プログラミング手段によるプログラミングの前に、プログラマブルロジックデバイス内の記憶素子のデータを退避記憶手段に退避させる退避手段と、プログラミング手段によるプログラミングの後に、当該プログラムデータに関する退避データを退避領域からプログラマブルロジックデバイスに復元する復元手段とを備えて構成してもよい。
前記制御手段は、CPUのタスク切替えタイミングを検出する検出手段と、検出されたとき、切り替え後のタスクに対応するプログラムデータを選択する選択手段と、選択されたプログラムデータによりプログラマブルロジックデバイスを更新するようプログラミング手段に指示する指示手段とを備える構成としてもよい。
【0011】
【発明の実施の形態】
<実施の形態1>
図1は、本発明の第1の実施形態におけるデータ処理装置のハードウェア構成を示すブロック図である。
【0012】
このデータ処理装置は、CPU1、メモリ2、プログラマブルロジックデバイス(以下PLDと略す)3、出力装置4、入力装置5、変更部6からなり、PLD3を動的にプログラミングすることにより、PLD3を動的にプログラミングすることにより3Dグラフィックス描画やMPEGデコードなど各種のマルチメディアデータ処理を加速するように構成されている。
PLD3は、内部の論理回路を外部から与えられるプログラム情報に従って形成可能なプログラマブルロジックデバイスである。具体的には、PLD3は、内部にプログラム情報にしたがって配線可能な極めて多数の論理素子(ゲート)及び記憶素子(フリップフロップ、レジスタ、メモリ)と、与えられたプログラム情報によりそれらを配線するプログラミング回路とを有する。PLD3の一例としては、米国アルテラ社のFLEX 10KB ファミリ(ゲート数:10000〜250000)などを用いることができる。これ以外のPLDでも動的にプログラミング可能なデバイスであればよい。
【0013】
CPU1は、メモリ2に記憶されたOS(Operating System)プログラム及びアプリケーションプログラムを実行することに加えて、特定のプログラムを実行することにより、変更部6を通してPLD3を動的に変更(プログラミング)する。ここで特定のプログラムとは、タスクの切替え動作に合わせて、切替後のタスクの処理内容に応じてPLD3を変更するためのプログラムである。このプログラムは、タスクの1つとしてもよいが、本実施形態ではOSの一部として実行されるものとする。
例えば複数のアプリケーションを実行する場合、CPU1は、OSの下でアプリケーションをタスクとして時分割に切り替えて実行する。その際、CPU1は、上記特定のプログラムを実行することにより、タスクの切替えに併せてタスク毎に個別の処理を加速させるため、変更部6を通してPLD3を変更する。これにより、各タスクは、その処理内容に応じてPLD3により加速されることになる。
【0014】
メモリ2は、OSプログラム及びアプリケーションプログラムの他に、上記の特定プログラムと、PLD3に対する複数のプログラム情報と、プログラム情報テーブルとを記憶する。図2はメモリ2の記憶内容の具体例を示すメモリマップである。
同図に示すようにメモリ2は、OS領域、タスクA領域、タスクB領域、プログラム情報領域を有する。
【0015】
OS領域は、OSプログラムとタスク管理テーブルとを格納し、さらにOSデータエリアとからなる。
タスクA領域は、タスクA(3Dグラフィックス処理用のアプリケーション)用の領域であり、タスクA(プログラム本体とワークエリアを含む)を格納する領域21と、タスクAに関するPLD3内部データを退避するためのPLD退避領域22と、タスクAに関するCPU1内部のデータを退避するためのCPU退避領域23とを有する。タスクB領域も、タスクA領域と同様であるが、MPEGデコード処理用のアプリケーションである点が異なる。
【0016】
プログラム情報領域は、PLD3用のプログラム情報A(3Dグラフィックス処理用)と、プログラム情報B(MPEGデコード用)と、タスクとプログラム情報との対応関係を示すプログラム情報テーブルとを格納する。
図3は、プログラム情報テーブルの具体例を示す図である。同図に示すように、プログラム情報テーブルは、タスクと、タスクが必要とするプログラム情報の種別とを対応させて記憶している。
【0017】
図4は、CPU1によるPLD3の変更処理を示すフローチャートである。同図は、CPU1が上記の特定プログラムがOSの一部として実行される処理を示している。同図では、タスクA(3Dグラフィックス処理用)とタスクB(MPEGデコード処理用)との2つのタスクが交互に切り替えられながら処理される場合を示している。
同図のようにCPU1は、一番最初に又はタスクBの次に実行されるタスクA(3Dグラフィックス処理)用の論理回路を形成するようにPLD3を変更(プログラミング)する(ステップ41)。その後OSによりタスクBへのタスク切替えがあれば(ステップ42:YES)、MPEGデコード処理用の論理回路を形成するようにPLD3を変更(プログラミング)する(ステップ43)。さらにOSにより3Dグラフィックスタスクへのタスク切替えがあれば(ステップ44:YES)、MPEGデコード処理用の論理回路を形成するようにPLD3を変更(プログラミング)する(ステップ41)。
【0018】
このようにしてCPU1は、上記特定プログラムによりタスク切替えに際してPLD3を動的にプログラムミングする。
図5は、図4のステップ41に示した3Dグラフィックス処理への変更処理をより詳細に示すフローチャートである。
【0019】
図5において、CPU1は、タスクB(MPEGデコード)からタスクA(3Dグラフィックス処理)へのタスク切替えの直前に、PLD3のMPEGデコード処理を停止し、CPU1内部のレジスタ情報を読み出してメモリ2上のCPU退避領域26に退避する(ステップ51)。さらに、PLD3の内部情報(レジスタデータ、メモリデータなど記憶素子の記憶内容)をメモリ2上のPLD退避領域25に退避する(ステップ52)。これにより、停止したMPEGデコード処理に関するCPU1のレジスタ情報及びPLD3の内部情報が、図2に示したタスクB領域に格納される。
さらに、CPU1は図3に示したプログラム情報テーブルを参照して、3Dグラフィックス用のプログラム情報がプログラム情報#1であることを特定して、そのプログラム情報#1を読み出して変更部6に供給する。これを受けて変更部6は、タスクA(3Dグラフィックス)用の論理回路を形成するようPLD3を変更(プログラミング)する(ステップ53)。これにより、PLD3は新たに3Dグラフィックス用の論理回路を形成する。
【0020】
次いで、CPU1は、メモリ2のCPU退避領域23から3Dグラフィックス処理用に退避されていたレジスタ情報を読み出して、そのレジスタ情報をCPU1に復帰させ(ステップ54)、さらに、メモリ2のPLD退避領域22から3Dグラフィックス処理用に退避されていた内部情報を読み出して、その内部情報をPLD3に復帰させ(ステップ55)、PLD3の処理を再開(イネーブル)させる。これによりPLD3は、前回のタスク実行時に退避していた情報を復帰させ、再開することになる。
図6は、図4のステップ43に示したMPEGデコード処理への変更処理をより詳細に示すフローチャートである。
【0021】
図6において、CPU1は、タスクA(3Dグラフィックス処理)からタスクB(MPEGデコード)へのタスク切替えの直前に、PLD3の3Dグラフィックス処理を停止し、CPU1内部のレジスタ情報を読み出してメモリ2上のCPU退避領域23に退避する(ステップ61)。さらに、PLD3の内部情報をメモリ2上のPLD退避領域22に退避する(ステップ62)。これにより、停止した3Dグラフィックス処理に関するCPU1のレジスタ情報及びPLD3の内部情報が、図2に示したタスクA領域に格納される。
さらに、CPU1は図3に示したプログラム情報テーブルを参照して、MPEG用のプログラム情報がプログラム情報#2であることを特定して、そのプログラム情報#2を読み出して変更部6に供給する。これを受けて変更部6は、タスクB(MPEGデコード)用の論理回路を形成するようPLD3を変更(プログラミング)する(ステップ63)。これにより、PLD3はMPEGデコード用の論理回路を形成する。
【0022】
次いで、CPU1は、メモリ2のCPU退避領域26からMPEGデコードに退避されていたレジスタ情報を読み出して、そのレジスタ情報をCPU1に復帰させ(ステップ64)、さらに、メモリ2のPLD退避領域25からMPEGデコード処理用に退避されていた内部情報を読み出して、その内部情報をPLD3に復帰させ(ステップ65)、PLD3の処理を再開する。これによりPLD3は、前回のタスク実行時に退避していた情報が復帰され、MPEGデコード処理を再開することになる。
以上のように構成された本発明の第1実施形態におけるデータ処理装置について、その動作を説明する。
【0023】
まず、本データ処理装置においてタスクB(MPEGデコード処理)からタスクB(3Dグラフィックス処理)にタスク切替えが生じた場合の動作を説明する。図7(a)は、図5に示したMPEGデコード処理から3Dグラフィックス処理への変更動作を説明する図である。
同図(a)中の破線a1、a2に示すように、CPU1は、タスクBからタスクAへのタスク切替えの直前に、PLD3のMPEGデコード処理を停止し、CPU1内部のレジスタ情報、PLD3の内部情報をそれぞれCPU退避領域26、PLD退避領域25に退避する。
【0024】
次に、CPU1は、3Dグラフィックス用のプログラム情報#1を読み出して変更部6を通して、タスクA(3Dグラフィックス)用の論理回路を形成するようPLD3を変更(プログラミング)する。
らに、同図(a)中の破線a3、a4に示すように、CPU1は、メモリ2のCPU退避領域23のレジスタ情報、PLD退避領域22の内部情報を、それぞれCPU1、PLD3に復帰させる。PLD3の処理を再開(イネーブル)させる。これによりPLD3は、前回のタスク実行時に退避していた情報を復帰させ、再開することになる。
【0025】
CPU1自身のタスクBへの切替え後は、同図(b)に示すように、PLD3は3Dグラフィックス処理用の論理回路を形成するので、CPU1によるタスクAの処理と協動して3Dグラフィックス処理を行う。
図8は、PLD3がCPU1と協動して3Dグラフィックス処理を行う具体例を示す説明図である。
【0026】
同図において、31はビデオRAM(フレームメモリ)に格納された3Dグラフィックスの描画画像を示す。32はメモリ2のタスクAのワークメモリに作成される3Dグラフィックス画像の頂点の座標テーブルを示す。33は、外部(例えば図外の磁気ディスク装置)から与えられる3Dグラフィックス画像のデータベースを示す。
この場合CPU1とPLD3は、次のように機能分担する。すなわちCPU1は、外部からの描画すべき3Dグラフィックスデータを決定し、それを外部装置からタスクAのワークメモリ(3Dグラフィックス画像のデータベース33)に読みだし、さらに、3Dグラフィックスデータベースから3Dグラフィックス画像の各頂点の座標を算出して座標テーブルを作成し、各頂点で定まる多角形の塗り潰しをPLD3に指示する。
【0027】
PLD3は、CPU1から塗り潰し指示を受けて座標テーブルを参照して、個々の多角形を塗り潰す描画処理を行う。この描画処理は、いわゆるラスター変換やスキャンコンバージョン(座標データから表示データへ変換)、テクスチャー処理、ポリゴンの描画処理などである。描画処理では、大量の繰り返し演算を必要とするため、PLD3に形成された論理回路による加速の効果が大きい。
さらに、図7(b)は、図6に示したMPEGデコード処理から3Dグラフィックス処理への変更動作を示す説明図である。同図(a)と同様に、CPU1は、タスク切替えに際して、破線c1、c2に示すように3Dグラフィックス処理用のレジスタ情報、内部情報の退避を行った後、MPEGデコード処理用のプログラム情報#2を用いて変更部6を通してPLD3をプログラミングし、破線c3、c4に示すようにMPEGデコード処理用のレジスタ情報、内部情報を復帰させる。
【0028】
その後タスクBに切り替えられた後、CPU1とPLD3は協動してMPEGデコード処理を実行する。この場合の機能分担については、MPEGデコード処理に含まれる可変長符号の復号処理、逆離散余弦変換、逆量子化、動き補償処理のうち、定型的反復的な演算を要する逆離散余弦変換、逆量子化、動き補償処理又はその一部をPLD3が分担することが望ましい。これらの機能分担は、PLD3のゲート数及び処理能力と、CPU1の処理能力に応じて決定される。
以下MEPGデコードが実行され、タスク切替えにより上記タスクA、Bが交互に繰り返される。タスクのバランスはアプリケーションに重みを指定してやることで、任意の比率のタスク切り替えが可能である。これはOSのタスク管理能力に依存する。
【0029】
以上のようにPLD3はタイムシェアリングを行いながら汎用のアクセラレータとして使用されるため、プログラマブルでかつ高速かつ効率的なデータ処理が可能となる。
なお、上記実施形態において、特定プログラムによるOSの一部の機能としてCPU1が、タスク切替えに際してPLD3の動作を停止し、プログラミング後に再開させていたが、アプリケーション(タスクA、B)が停止と再開をさせるようにしてもよい。これは、CPU1(タスク)とPLD3とはマスターとスレーブという協動関係にあるので、タスクによりPLD3の動作を停止/再開させることは容易に実現可能である。
【0030】
<実施の形態2>
本実施形態におけるデータ処理装置のハードウェア構成は、第1実施形態の図1と同じであるので説明を省略する。以下、CPU1が特定のプログラムを実行することにより実現されるPLD3の動的な変更処理について、第1実施形態と同じ点は説明を省略し、異なる点を中心に説明する。
異なる点は、第1実施形態におけるデータ処理装置がタスクを切替える毎にPLD3を変更していたことに対して、本実施形態のデータ転送装置は、逐次実行される複数のタスクをタスクウィンドウとして扱い、タスクウィンドウの切替える毎に、当該複数のタスクに対応するプログラム情報を用いてPLD3を変更するように構成している点である。さらに、本実施例では、CPU1は、PLD3をプログラムする際に、複数の別個のプログラム情報により形成される論理回路を併存させるように変更部6を通してプログラミングする点が異なっている。そのため、メモリ2に記憶されている上記特定プログラムの内容及びプログラム情報テーブルが異なっている。
【0031】
以下、タスクウィンドウの具体例を用いて、本実施形態の特定プログラムにより実現されるCPU1の機能について説明する。
メモリ2は、OSプログラム及びアプリケーションプログラムの他に、上記の特定プログラムと、PLD3に対する複数のプログラム情報と、タスクウィンドウとプログラム情報の対応関係を示したプログラム情報テーブルとを記憶する。
図9はメモリ2の記憶内容の具体例を示すメモリマップである。
【0032】
同図に示すようにメモリ2は、OS領域、タスクウィンドウ#1〜#3、プログラム情報領域を有する。タスクウィンドウは、PLD3の変更なしで実行可能なタスクをグループ化したものである。
同図において、タスクA、D、G、Hは、それぞれ3Dグラフィックス処理の一部を分担して実行する。これに伴い各タスクに対応するプログラム情報a〜dが設けられている。以下、分担する各処理を3D#1〜#4と呼ぶ。
【0033】
また、タスクB、C、E、Fは、MPEGデコード処理の一部を分担して実行する。これに伴い各タスクに対応するプログラム情報e〜hが設けられている。以下、分担する各処理をMPEG#1〜#4と呼ぶ。
タスクウィンドウ#1は、タスクA、B、Cの各領域からなる。各タスク領域は、タスクのプログラム本体(ワークエリアを含む)と、退避領域とからなる。退避領域は、第1実施形態のPLD退避領域とCPU退避領域とからなり、本実施例ではそれらの総称としている。タスクウィンドウ#1におけるタスクA、B、Cは、それぞれ3D#1、MPEG#2、MPEG#3を実行する。
【0034】
同様にタスクウィンドウ#2は、タスクD、E、Fの各領域からなる。タスクD、E、Fは、それぞれ3D#2、MPEG#1、MPEG#4を実行する。
タスクウィンドウ#3は、タスクG、Hの各領域からなる。タスクG、Hは、それぞれ3D#3、3D#4を実行する。
【0035】
プログラム情報領域は、PLD3がタスクA〜Hと協動して動作するためのプログラム情報a〜hを記憶している。
図10は、本実施例におけるプログラム情報テーブルの具体例を示す図である。同図に示すように、プログラム情報テーブルは、タスクウィンドウと、タスクウィンドウ内のタスクが必要とするプログラム情報の種別とを対応させて記憶している。
【0036】
CPU1は、第1実施形態においてタスクの切替える毎にPLD3を変更していたことに対して、本実施形態では、タスクウィンドウの切替え毎にPLD3を変更するとして扱い、タスクウィンドウの切替える毎にPLD3を変更する点が異なっている。この動作は、図4に示したフローチャートにおいてステップ42の代わりに、タスクウィンドウの切替えを判断するステップを設けた構成となる点が異なる。ステップ44についても同様である。
さらに、図5、6に示したタスク及びPLD3のプログラミングについては、CPU1は、CPU1のレジスタ情報及びPLD3の内部情報の退避と復帰(ステップ51、52、54、55、61、62、64、65)を、タスクウィンドウ内の複数のタスクについて行う点が異なる。さらにCPU1は、ステップ53、63において、プログラム情報テーブルに指定されている個々のプログラム情報の全てをPLD3にプログラムする必要があるので、CPU1は、当該個々のプログラム情報を編集して新たな1つのプログラム情報にしてから変更部6を通して変更する。
【0037】
例えば、図10によればタスクウィンドウ#1に対応するのは、プログラム情報a、f、gの3つであり、他のタスクウィンドウからタスクウィンドウ#1への切替えに際してプログラム情報a、f、gを編集して新たなプログラム情報にする。具体的には、CPU1は、定められた記述言語により論理記述されている個々のプログラム情報をサブモジュールとして、サブモジュール全部を論理合成することにより新たなメインモジュールを作成する。この後、CPU1は作成されたメインモジュールを1つのプログラム情報として変更部6を通してPLD3をプログラミングする。
上記の構成により、本実施形態のデータ処理装置は、タスクウィンドウ単位でPLD3が変更されることになる。その結果、タスク単位でPLD3が変更されるよりも、その変更時間を短縮することができる。
【0038】
<第3実施形態>
本実施形態におけるデータ処理装置のハードウェア構成は、第1、第2実施形態の図1と同じであるので説明を省略する。以下、CPU1が特定のプログラムを実行することにより実現されるPLD3の動的な変更処理について、第2実施形態と同じ点は説明を省略し、異なる点を中心に説明する。図9に示したメモリマップは、本実施例においても同じであるものとする。
【0039】
異なる点は、本実施形態におけるデータ処理装置は、第2実施形態においてPLD3がタスクウィンドウの切替え毎に変更されていたのに対して、タスクの切替え毎に今後実行される複数のタスクに必要とされる複数のプログラム情報を用いて変更するように構成されている。そのため、メモリ2は、プログラム情報テーブルの代わりに、プログラム情報の使用状況を表すキャッシュテーブルが作成される。
より詳しくいうと、CPU1は、タスク切替えに際して、後に実行すべき複数のタスクを判定し、キャッシュテーブルを参照してそれらのタスクに必要なプログラム情報を選択し、それらのプログラム情報を上述したように論理合成して1つのプログラム情報を作成し、変更部6を通してPLD3をプログラミングする。
【0040】
図11にキャッシュテーブルの一例を示す。同図において、「プログラム情報種別」の欄は、図9に示したプログラム情報a〜hの種別を表す。「時刻」欄は、最後にCPU1により選択された時刻(従って最後にプログラミングされたときに選択された時刻)を表す。「サイズ」欄は、プログラム情報によりプログラムされたPLD3が占有されるサイズ(回路規模)を示す。サイズは、ゲート数や回路規模の割合でもよい。本実施例では説明の便宜上各プログラム情報がPLD3の30%を占有するものとする。「状態」欄は、現在PLD3に論理回路が形成されている(on)か否か(off)を表す。
CPU1は、例えばこれから実行されるタスクを順に判定し、それらに対応するプログラム情報のサイズの合計が100%(あるいは所定のしきい値)を越えない範囲内で、選択候補とする。その際、CPU1は、状態がon(現在PLD3に論理回路が形成されている)のプログラム情報については、LRU(Least Recently Used)方式を用いて選択候補を決める。こうして選択候補となったプログラム情報を最終的に選択する。
【0041】
選択されたプログラム情報は、タスク切替えに際してPLD3にプログラミングされる。タスクの変更及びプログラミングの動作については、第2実施例と同様である。このとき、CPU1は、上記キャッシュテーブルを更新する。
以上のように本実施形態によれば、タスク切替毎に、複数のプログラム情報を選択してPLD3を変更するので、タスクの生成、消滅が頻繁に生じる場合であっても、また、タスクスケジューリング(実行順序)が動的に変化する場合であっても、それぞれのタスク切替えに追従して適切なプログラム情報をPLD3にプログラムすることができる。
【0042】
その結果、CPUのキャッシュ動作と同じようにPLD3の加速機能の使用効率が高くなり、プログラマブルでかつ高速かつ効率的なデータ処理が可能となる。
なお、上記実施形態では、タスクの変化に応じてPLD3の論理回路が動的に変更されるが、タスクの中すなわちアプリケーションからPLD3のプログラムを変更するようにしてもよい。この場合、タスクの切り替えタイミングに関係なくアプリケーションから任意のタイミングでPLD3をプログラムすることになる。この結果、PLD3へのプログラムは静的なスケジューリングで実施される。従って、アプリケーションの処理の進行に従って、処理も加速されるので効率的である。また複数のアプリケーションが混在する場合、実施の形態3と4の動的スケジューリングと組み合わせれば効果を増す。
【0043】
また、上記各実施形態において、CPU1と変更部6とは、PLD3に組み込むようにしてもよい。この場合、図1からCPU1と変更部6を削った構成となる。この場合、PLD3は初期化時において、CPU1と同等の論理回路を形成するためのプログラム情報と、変更部6と同等の論理回路を形成するためのプログラム情報とを取り込んでプログラミングする初期化部を備えるように構成すればよい。この結果、簡単な構成で上記実施形態と同様に本発明をじっしすることができる。また、CPU1と変更部6の機能もプログラム情報が進化する度に機能向上する。
さらに、上記第2、第3実施形態では、CPU1が複数の個別プログラム情報を論理合成して新たな1つのプログラム情報を作成する例を示したが、PLD3自身が部分的にプログラム可能な構成であれば、論理合成しなくても個別プログラム情報を用いてプログラミングするようにしてもよい。
【0044】
また、上記各実施形態では、1個のPLDを用いる例を示したが、複数のPLDを用いる構成としてもよい。
【発明の効果】
【0045】
本発明のデータ処理装置は、アプリケーションプログラムを実行するデータ処理装置であって、論理回路をプログラムにより形成可能なプログラマブルロジックデバイスと、プログラマブルロジックデバイス用の複数のプログラムデータを記憶する記憶手段と、プログラムデータを用いてプログラマブルロジックデバイスをプログラムするプログラミング手段と、前記アプリケーションプログラムの実行内容に応じて、プログラマブルロジックデバイスを更新するようプログラミング手段を制御する制御手段とを備えている。
この構成によれば、汎用でかつ柔軟にデジタル処理全般に対応することができ、その結果、高速化と低コスト化を図ることができる。またプログラマブルロジックデバイスを用いているので、その交換で性能の向上が可能となるという有利な効果が得られる。
【0046】
また、前記データ処理装置は、さらにデータ退避領域を有する退避記憶手段と、プログラミング手段によるプログラミングの前に、プログラマブルロジックデバイス内の記憶素子のデータを退避記憶手段に退避させる退避手段と、プログラミング手段によるプログラミングの後に、当該プログラムデータに関する退避データを退避領域からプログラマブルロジックデバイスに復元する復元手段とを備えている。
この構成によれば、上記効果に加えて、処理の途中であっても、他のプログラムデータを用いて論理回路変更することができる。
【0047】
さらに前記制御手段は、CPUのタスク切替えタイミングを検出する検出手段と、検出されたとき、切り替え後のタスクに対応するプログラムデータを選択する選択手段と、選択されたプログラムデータによりプログラマブルロジックデバイスを更新するようプログラミング手段に指示する指示手段と備えている。
この構成によれば、上記効果に加えて、タスクという単位毎に、タスクと協動して実行するようプログラマブルロジックデバイスの論理回路を動的に変更することができる。
【0048】
また、前記制御手段は、複数の逐次実行される複数のタスクからなるタスクウィンドウの切替えタイミングを検出する検出手段と、検出されたとき、切り替え後のタスクウィンドウに含まれるタスクに対応するプログラムデータを選択する選択手段と、選択されたプログラムデータによりプログラマブルロジックデバイスを更新するようプログラミング手段に指示する指示手段とを備えている。
この構成によれば、タスクウィンドウの切替え毎に、プログラマブルロジックデバイスを更新するので、更新のために発生する時間を少なくすることができる。また、前記制御手段は、CPUのタスク切替えタイミングを検出する検出手段と、検出されたとき、切り替え後に逐次実行される複数のタスクに対応する複数のプログラムデータを選択する選択手段と、選択された複数のプログラムデータによりプログラマブルロジックデバイスを更新するようプログラミング手段に指示する指示手段とを備えている。
【0049】
この構成によれば、タスク切替毎に、複数のプログラムデータが選択されてプログラマブルロジックデバイスが変更されるので、タスクの生成、消滅が頻繁に生じる場合であっても、また、タスクスケジューリング(実行順序)が動的に変化する場合であっても、それぞれのタスク切替えに際して適切なプログラム情報をPLD3にプログラムすることができる。
前記制御手段は、さらに、記憶手段に記憶されたプログラムデータの使用状況を示すテーブル手段を備え、前記選択手段は、テーブル手段が示す使用状況に応じて複数のプログラムデータを選択するよう構成される。
【0050】
この構成によれば、タスク切替えに際して今後使用されるプログラム情報を効率良くPLD3にプログラムすることができる。
また、前記記憶手段は、プログラマブルロジックデバイスにプロセッサとしても論理回路を形成するための特定のプログラムデータを記憶し、前記プログラム手段は、さらに、前記特定のプログラムデータを用いてプログラマブルロジックデバイスをプログラムするよう構成されている。
【0051】
この構成によれば、ハードウェア構成を簡単にすることができる。
【図面の簡単な説明】
【図1】本発明の実施例におけるデータ処理装置の構成を示すブロック図である。
【図2】メモリ2の記憶内容の具体例を示すメモリマップである。
【図3】プログラム情報テーブルの具体例を示す図である。
【図4】CPU1によるPLD3の変更処理を示すフローチャートである。
【図5】3Dグラフィックス処理への変更処理をより詳細に示すフローチャートである。
【図6】MPEGデコード処理への変更処理をより詳細に示すフローチャートである。
【図7】MPEGデコード処理と3Dグラフィックス処理との変更動作を説明図である。
【図8】PLD3がCPU1と協動して3Dグラフィックス処理を行う具体例を示す説明図である。
【図9】メモリ2の記憶内容の具体例を示すメモリマップである。
【図10】プログラム情報テーブルの具体例を示す図である。
【図11】キャッシュテーブルの一例を示す。
【図12】従来のデータ処理装置のブロック図を示す。
【符号の説明】
1 CPU
2 メモリ
3 PLD
4 出力装置
5 入力装置
6 変更部
Claims (4)
- アプリケーションプログラムを実行するデータ処理装置であって、
論理回路をプログラムにより形成可能なプログラマブルロジックデバイスと、
前記プログラマブルロジックデバイス用の複数のプログラムデータを記憶する記憶手段と、
複数の逐次実行される複数のタスクからなるタスクウィンドウの切替えタイミングを検出する検出手段と、
前記検出手段が前記切替えタイミングを検出したとき、切替え後のタスクウィンドウに含まれるタスクに対応するプログラムデータを、前記記憶手段に記憶された複数のプログラムデータから選択する選択手段と、
前記選択手段が選択したプログラムデータを用いて前記プログラマブルロジックデバイスを更新するよう指示する指示手段と、
前記指示手段による指示を受付け、当該指示に係るプログラムデータを用いて、前記プログラマブルロジックデバイスをプログラムするプログラミング手段と
を備えることを特徴とするデータ処理装置。 - 前記データ処理装置は、さらに、
データ退避領域を有する退避記憶手段と、
プログラミング手段によるプログラミングの前に、プログラマブルロジックデバイス内の記憶素子のデータを退避記憶手段に退避させる退避手段と、
プログラミング手段によるプログラミングの後に、当該プログラムデータに関する退避データを退避領域からプログラマブルロジックデバイスに復元する復元手段と
を備えることを特徴とする請求項1記載のデータ処理装置。 - アプリケーションプログラムを実行するデータ処理装置であって、
論理回路をプログラムにより形成可能なプログラマブルロジックデバイスと、
前記プログラマブルロジックデバイス用の複数のプログラムデータを記憶する記憶手段と、
CPUのタスク切替えタイミングを検出する検出手段と、
前記検出手段が前記切替えタイミングを検出したとき、切替え後に逐次実行される複数のタスクに対応する複数のプログラムデータを選択する選択手段と、
前記選択手段が選択したプログラムデータを用いて前記プログラマブルロジックデバイスを更新するよう指示する指示手段と、
前記指示手段による指示を受付け、当該指示に係るプログラムデータを用いて、前記プログラマブルロジックデバイスをプログラムするプログラミング手段と
を備えることを特徴とするデータ処理装置。 - 前記データ処理装置は、さらに、
前記記憶手段に記憶されたプログラムデータの使用状況を示すテーブル手段を備え、
前記選択手段は、前記テーブル手段が示す使用状況に応じて複数のプログラムデータを選択すること
を特徴とする請求項3記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35098197A JP3878307B2 (ja) | 1997-12-19 | 1997-12-19 | プログラマブルなデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35098197A JP3878307B2 (ja) | 1997-12-19 | 1997-12-19 | プログラマブルなデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11184718A JPH11184718A (ja) | 1999-07-09 |
JP3878307B2 true JP3878307B2 (ja) | 2007-02-07 |
Family
ID=18414234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35098197A Expired - Fee Related JP3878307B2 (ja) | 1997-12-19 | 1997-12-19 | プログラマブルなデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3878307B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7092733B2 (en) | 2001-01-25 | 2006-08-15 | Kabushiki Kaisha Toshiba | Mobile radio communication apparatus capable to plurality of radio communication systems |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
JP4495873B2 (ja) * | 2001-03-08 | 2010-07-07 | 株式会社リコー | 画像処理装置 |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US20030097649A1 (en) * | 2001-10-31 | 2003-05-22 | Terrence Jones | Embedded language interpretation for configuration of fixturing applications |
KR100428803B1 (ko) * | 2001-11-20 | 2004-04-29 | 엘지전자 주식회사 | 주제어유니트 보드의 프로그램 다운로드 장치 및 그 방법 |
US20070011433A1 (en) * | 2003-04-04 | 2007-01-11 | Martin Vorbach | Method and device for data processing |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US8284844B2 (en) | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
US7603542B2 (en) | 2003-06-25 | 2009-10-13 | Nec Corporation | Reconfigurable electric computer, semiconductor integrated circuit and control method, program generation method, and program for creating a logic circuit from an application program |
JP2005182410A (ja) * | 2003-12-18 | 2005-07-07 | Fuji Xerox Co Ltd | 情報処理デバイス及び情報処理装置 |
JP4190476B2 (ja) | 2004-09-22 | 2008-12-03 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、制御用プロセッサおよび情報処理装置 |
JP2006338538A (ja) | 2005-06-03 | 2006-12-14 | Nec Electronics Corp | ストリームプロセッサ |
JP2007034392A (ja) | 2005-07-22 | 2007-02-08 | Nec Electronics Corp | 情報処理装置及びデータ処理方法 |
JP5018480B2 (ja) * | 2005-09-05 | 2012-09-05 | 日本電気株式会社 | 情報処理装置 |
JP2007219937A (ja) * | 2006-02-17 | 2007-08-30 | Toyota Infotechnology Center Co Ltd | タスク管理システム、タスク管理方法およびタスク管理プログラム |
JP4952116B2 (ja) * | 2006-07-31 | 2012-06-13 | 富士ゼロックス株式会社 | 演算処理システム、制御プログラム |
JP2009129000A (ja) * | 2007-11-20 | 2009-06-11 | Seiko Epson Corp | タスクディスパッチャプログラム及びタスクディスパッチャシステム |
JP6368434B2 (ja) * | 2016-05-19 | 2018-08-01 | 株式会社日立製作所 | Pld管理方法及びpld管理システム |
JP6694138B2 (ja) * | 2016-07-26 | 2020-05-13 | 富士通株式会社 | プログラマブルロジックデバイスの制御プログラム、制御方法及び情報処理装置 |
JP2021005771A (ja) * | 2019-06-26 | 2021-01-14 | 京セラドキュメントソリューションズ株式会社 | 電子機器 |
-
1997
- 1997-12-19 JP JP35098197A patent/JP3878307B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11184718A (ja) | 1999-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3878307B2 (ja) | プログラマブルなデータ処理装置 | |
Guttag et al. | A single-chip multiprocessor for multimedia: The MVP | |
US6624819B1 (en) | Method and system for providing a flexible and efficient processor for use in a graphics processing system | |
US9373308B2 (en) | Multi-viewport display of multi-resolution hierarchical image | |
US7450131B2 (en) | Memory layout for re-ordering instructions using pointers | |
US7079146B2 (en) | Image producing device | |
US20100122067A1 (en) | Across-thread out-of-order instruction dispatch in a multithreaded microprocessor | |
US8941669B1 (en) | Split push buffer rendering for scalability | |
US9563466B2 (en) | Method and apparatus for supporting programmable software context state execution during hardware context restore flow | |
WO2014190315A1 (en) | Graphics processing using dynamic resources | |
JP2013120438A (ja) | グラフィックスコマンド生成装置およびグラフィックスコマンド生成方法 | |
JPH10116346A (ja) | テクスチャの高速ダウンロード方法 | |
US8368704B2 (en) | Graphic processor and information processing device | |
EP1255227A1 (en) | Vertices index processor | |
US9129416B2 (en) | Digital art undo and redo | |
JPH06149757A (ja) | 並列処理装置 | |
WO2006123547A1 (ja) | 情報処理装置、システム、方法およびプロセッサ | |
JP4683384B2 (ja) | メモリ制御方法、グラフィックプロセッサおよび情報処理装置 | |
KR100371253B1 (ko) | 화상생성방법및장치 | |
EP4148571A1 (en) | Overlapped geometry processing in a multicore gpu | |
CN114218152B (zh) | 流处理方法、处理电路和电子设备 | |
US11189003B2 (en) | Graphics processing method and related apparatus, and device for unidirectionally transmitting calling information of a graphics API to a client | |
JP2005530246A (ja) | 画像片とサーキュラーアドレッシング構成を使用する画像データ処理方法及び装置 | |
JP4749824B2 (ja) | グラフィックスシステム | |
JPH06309349A (ja) | プログラム制御のプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060920 |
|
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: 20061017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061102 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060920 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091110 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131110 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |