JP2006099336A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2006099336A
JP2006099336A JP2004283624A JP2004283624A JP2006099336A JP 2006099336 A JP2006099336 A JP 2006099336A JP 2004283624 A JP2004283624 A JP 2004283624A JP 2004283624 A JP2004283624 A JP 2004283624A JP 2006099336 A JP2006099336 A JP 2006099336A
Authority
JP
Japan
Prior art keywords
calculation
arithmetic
request
unit
execution
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.)
Withdrawn
Application number
JP2004283624A
Other languages
English (en)
Inventor
Isuke Karaki
伊助 唐木
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004283624A priority Critical patent/JP2006099336A/ja
Publication of JP2006099336A publication Critical patent/JP2006099336A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 プロセッサエレメントのデータエレメントに対する演算の指示を効率的に送信することによって演算処理にかかる時間を短縮できる演算処理装置を提供する。
【解決手段】 複数のスレッドを並行して処理可能なプロセッサ部1と、プロセッサ部1の依頼に応じて演算処理を実行する複数の演算機能を有する演算実行部150を備える演算処理部2とを備える演算処理装置において、複数のスレッドを並行して処理可能なプロセッサ部1が、複数のスレッドが発生した演算依頼をパケット送信するスレッド送受信部109a〜109dを備え、算処理部2が、演算依頼を受信する送受信部107、受信された演算依頼を調整し、複数の演算機能の各々に対して演算の実行を依頼したスレッドを特定するための情報及び依頼された演算を実行するための情報を含むデータを分配する演算依頼処理部105とを備える。
【選択図】 図1

Description

本発明は、演算処理装置に関する。
現在、プログラムをスレッドと呼ばれる実行単位に分割し、このスレッドを並列に実行するマルチスレッド方式のプロセッサがある。マルチスレッド方式は、演算にかかる総合的な時間を短縮することを主な目的としてなされたものである。近年、マルチスレッド方式における演算の効率を高め、いっそう演算処理にかかる時間を短縮することを目的とした技術も多数提案されている。
このようなマルチスレッドについての従来技術として、例えば、特許文献1、特許文献2が挙げられる。特許文献1に記載された発明は、マルチスレッド方式のプロセッサにおけるレジスタの承継にかかるものであり、レジスタの内容をコピーすることなくレジスタを承継可能にしたものである。このような技術によれば、プロセッサにおける演算処理を、in−order発行型、out−of−order発行型のいずれに対しても効率的に行うことができる。
また、特許文献2は、メインのCPUからサブ処理装置からサブ処理装置にマクロ命令を発行する。そして、マクロ命令の発行以前に指令されたマクロ命令の実行結果をサブ処理装置からメインCPUのバスサイクルに呼応して出力させ、メインCPUとサブ処理装置との演算効率を高めている。
特開2000−20326号公報 特開平6−131181号公報
しかしながら、上記した従来技術は、いずれもスレッドの処理を指示する側(例えばプロセッサエレメント)から処理にかかる演算を実行する構成(例えばデータエレメント)に対し、演算を指示するデータ(指示データ)をスレッドごとにデータバスによって送出している。このため、従来技術では、あるスレッドの指示データ送信中はバスがこのスレッドに占有され、他のスレッドの指示データをデータエレメントに送出することができないという不具合があった。
本発明は、上記した点に鑑みてなされたものであり、プロセッサエレメントのデータエレメントに対する演算の指示を効率的に送信し、データエレメントを有効に活用して全体的に演算処理にかかる時間を短縮可能な演算処理装置を提供することを目的とする。
以上の課題を解決するため、本発明の演算処理装置は、複数のスレッドを並行して処理可能なプロセッサ部と、前記プロセッサ部の依頼に応じて演算処理を実行する複数の演算実行手段を有する演算処理部と、を備える演算処理装置であって、前記プロセッサ部は、前記複数のスレッドが発生した前記演算実行手段に対する演算実行の依頼である演算依頼をパケット送信する演算依頼送信手段を備え、前記演算処理部は、前記演算依頼送信手段によって送信された演算依頼を受信する演算依頼受信手段と、前記演算依頼受信手段によって受信された演算依頼を調整し、複数の前記演算実行手段の各々に対し、演算の実行を依頼したスレッドを特定するための情報と、依頼された演算を実行するための情報とを含むデータを分配する演算依頼分配手段と、を備えることを特徴とする。
このような発明によれば、複数のスレッドを並行して処理する場合、複数のスレッドに係る演算の実行をパケット通信によって演算実行手段に依頼することができる。このため、演算依頼に用いられる通信網、あるいは回線を特定のデータが占有することがなく、効率的に演算の依頼を送信することができる。さらに、演算処理部において演算依頼分配手段が演算依頼を調整して分配するため、演算実行手段の側で演算の依頼が競合することがなく、演算実行手段の使用効率を高めることができる。このような本発明は、プロセッサエレメントのデータエレメントに対する演算の指示を効率的に送信し、データエレメントを有効に活用して全体的に演算処理にかかる時間を短縮可能な演算処理装置を提供することができる。
また、本発明の演算処理装置は、複数の前記演算実行手段が、各々が互いに異なる種別の演算を専用に実行することを特徴とする。
このような発明によれば、各演算実行手段の演算処理効率を高めることができる。また、プロセッサ部においても演算を依頼するためのデータを演算実行手段ごとにパケット化することができる。
また、本発明の演算処理装置は、複数の前記演算実行手段が、前記プロセッサ部における動作の最小単位で処理可能な処理以上の処理量を要する演算を実行するハードウェア構成であることを特徴とする。
このような発明によれば、1サイクルで処理できない処理量の演算を高速に動作できるハードウェア側で実行することができる。このため、プロセッサ部にかかる負荷を軽減すると共に装置全体の演算にかかる時間を短縮し、より高速に演算処理をすることができる。
また、本発明の演算処理装置は、前記演算依頼が、演算実行を依頼したスレッドを特定するための情報、演算の実行が依頼された演算実行部を特定するための情報を少なくとも含むことを特徴とする。
このような発明によれば、演算依頼に含まれる情報を利用して簡易に演算を依頼するデータを生成することができる。
また、本発明の演算処理装置は、前記演算依頼送信手段が、前記演算実行手段に対する演算依頼に係る情報の送信専用に設けられることを特徴とする。
このような発明によれば、演算依頼をいっそう円滑に送信することができ、演算の依頼の送信効率をいっそう高めることができる。
以下、図を参照して本発明の一実施形態に係る演算処理装置を説明する。
図1は、本実施形態の演算処理装置を説明するための図である。図示した演算処理装置は、複数のスレッドを並行して処理可能なプロセッサ部1と、プロセッサ部1の依頼に応じて演算処理を実行する演算処理部2とを備えている。また、本実施形態の演算処理装置は、演算処理装置の処理に使用されるプログラムやデータ、あるいは演算処理部2の演算結果を記憶するためのメモリエレメント3を備えている。
プロセッサ部1は、複数のスレッドが発生した演算実行の依頼(演算依頼)を演算処理部2の側に送信する演算依頼送信手段を備えている。本実施形態では、演算依頼送信手段を、スレッドの各々に対応するスレッド送受信部109a〜109dとした。なお、本実施形態では、図中にスレッドをTHと記し、スレッド1をTH1、スレッド2をTH2、スレッド3をTH3、スレッド4をTH4と記した。また、この表記方法に準じてスレッド送受信部をTH1送受信部等と記す。THの後に続く数字は、スレッド送受信部が対応するスレッドの番号であり、TH1送受信部109aは、スレッド1に対応した送受信部を示す。
プロセッサ部1は、主にソフトウェアによって動作する。なお、プロセッサ部1の動作タイミングは、サイクルと呼ばれる複数のクロックでなる単位時間を基準にして決定する。本実施形態では、1サイクルを動作の最小単位とする。
一方、演算処理部2は、送受信部109から送信されたデータを受信する送受信部107、送受信部107によって受信された演算依頼を調整する演算依頼処理部105、各々が互いに異なる種別の演算を専用に実行する複数の演算機能でなる演算実行部150を備えている。本実施形態では、演算実行部150が、平均値算出部111、差分絶対値和算出部113、半画素生成部115、イントラ処理部117、間引き処理部119、補間処理部121、比較処理部123でなるものとする。このような各演算機能は、いずれも画像処理のための演算を実行するものである。
以上述べた構成において、スレッド送受信部109a〜109dは、演算実行部150の各演算機能に対して演算依頼に係るデータをパケット送信する。演算依頼処理部105は、演算の依頼を調整し、各演算機能に対し、演算の実行を依頼したスレッドを特定するための情報と、依頼された演算を実行するための情報とを含むデータを演算実行部150の演算機能の各々に分配するものである。
このような演算処理部2は、ハードウェアで構成されている。このため、ソフトウェアで動作するプロセッサ部1よりも演算を高速に処理することが可能である。
また、本実施形態のスレッド送受信部109a〜109d及び送受信部107は、演算処理部2に対する演算依頼に係るデータの送受信用に設けられるものである。スレッド送受信部109a〜109d及び送受信部107を演算依頼専用に設けたことにより、本実施形態は、プロセッサ部1から演算処理部2へ演算依頼をよりスムーズに送信し、演算依頼が送信を待つ時間を短縮することができる。
以上の構成は、以下のように動作する。すなわち、プロセッサ部1においては、複数のスレッドがメモリエレメント3から読み出され、対応するスレッド送受信部109a〜109dのいずれかに演算依頼のコマンドを渡す。図1に示した例では、スレッド103a(TH1)、スレッド103b(TH2)、スレッド103c(TH3)、スレッド103d(TH4)がプロセッサ部1において並列に処理されている。
本実施形態では、この演算依頼のコマンドが、パケット式のデータとして構成されている。演算依頼のコマンドには、演算実行を依頼したスレッドを特定するための情報と、演算の実行が依頼された演算機能を特定するための情報が含まれている。
図2は、演算依頼のコマンドのパケットを例示した図である。図示した例は、スレッド103aの演算依頼を示したものであって、スレッド103aで行われる演算の種別を演算の実行順序にしたがって示すものである。なお、図2に示したDE3、DE2…は、データエレメント3、演算処理部2…を意味し、演算を実行する演算機能の種別を示している。
本実施形態では、DE1が平均値算出部111を、DE2が差分絶対値和算出部113を、DE3が半画素生成部115を、DE4がイントラ処理部117を、DE5が間引き処理部119を、DE6が補間処理部121を、DE7が比較処理部123をそれぞれ示している。したがって、図示したTH1では、先ず半画素生成部115に演算を依頼し、次に差分絶対値和算出部113に演算が依頼される。さらに、平均値算出部111に連続して2度の演算の依頼がなされ、イントラ処理部117に演算の依頼がなされる。
また、図2では、パケットに演算機能を特定するDE1、DE3等の文字を記し、スレッドが送出するパケットが演算の実行が依頼された演算機能を特定するための情報を含むことを示している。また、各パケットのデータには、演算機能ばかりでなく演算の実行を依頼したスレッドを特定するための情報が含まれている。このことを、図2のパケットの先頭にTH1の文字を記すことによって示す。
図2に示したデータは、スレッド送受信部109a〜109dによって送信され、演算処理部2の送受信部107によって受信される。演算依頼処理部105は、このようなパケットのデータを送受信部107から受け取って管理する。図3は、この管理に使用される管理テーブルを示した図である。図示した管理テーブルにおいては、パケットを平均値算出部111(DE1)、差分絶対値和算出部113(DE2)といった演算機能ごとに演算の実行を依頼したスレッドの番号(TH1、TH2…)と、依頼された演算を実行するためのデータ等とを管理する。そして、管理テーブルに基づいて、演算実行部150の各演算機能に演算依頼をするためのデータを生成する。
演算依頼をするためのデータは、演算処理部2における各演算機能の使用効率が最も高まるように生成される。すなわち、平均値算出部111、差分絶対値和算出部113、半画素生成部115、イントラ処理部117、間引き処理部119、補間処理部121、比較処理部123の各演算機能において、例えば、演算を行っていない待ち時間の合計が最小になる組合せを選択する。そして、この組合せに基づいてデータを生成することにより、演算機能の使用効率が高まるデータを生成することができる。
なお、演算依頼のデータの生成には、演算機能の使用効率ばかりでなく、スレッド間の優先順位等、他の条件が考慮される場合があることは言うまでもない。
図4は、演算依頼のためのデータを例示する図である。図示したデータは、パケットの単位で各演算機能に渡されるデータであって、平均値算出部111に対して行われる演算依頼のものである。図示したデータは、平均値算出部111に対して、先ず、TH1に依頼された演算を実行し、次にTH3に依頼された演算を実行するように指示する。さらに、以降、順次、TH2、TH7、TH4の順序で依頼された演算を実行するよう指示するものである。
なお、図4に示した各パケットのデータには、管理テーブルで管理されていた演算に必要なデータ等をも含まれている。また、コマンドに基づいて演算処理部2が、メモリエレメント3から読み出すものであってもよい。
演算処理部2では、演算依頼処理部105が、図4に示したデータを受け取り、データに含まれるDE1、DE2…の情報にしたがって平均値算出部111、差分絶対値和算出部113、半画素生成部115、イントラ処理部117、間引き処理部119、補間処理部121、比較処理部123のいずれかにデータをパケットごとに分配する。
平均値算出部111、差分絶対値和算出部113、半画素生成部115、イントラ処理部117、間引き処理部119、補間処理部121、比較処理部123は、各々依頼された演算を実行し、演算の結果をプロセッサ部1に返す、あるいはメモリエレメント3に書き込む。
以上述べた本実施形態によれば、送受信部109a〜109d、送受信部107間の通信において回線が占有されることがなく、プロセッサ部1から演算処理部2へ演算依頼が効率よく送信できる。また、このような効果は、1つのスレッドをより小さくして並行に処理されるスレッドの数を増やした場合により大きくなる。
ところで、演算にかかる時間を短縮するにあたり、並行して処理されるスレッドを増やす方法は、クロックを上げて処理速度を高めるよりも演算処理装置の消費電力を省力化ことに有利である。したがって、並行に処理されるスレッドを増やす場合に効果を奏する本実施形態は、高速であって、かつ、消費電力の小さい演算処理装置を構成することに適したものであるといえる。
また、本実施形態は、プロセッサ部が1サイクルで演算依頼を演算処理部2に送出できることから、演算処理部2が有する複数の演算機能(平均値算出部111、差分絶対値和算出部113等)を、いずれも、プロセッサ部1が1サイクルで処理可能な処理以上の処理量を要する演算を実行するハードウェア構成とした。このような構成により、本実施形態は、プロセッサ部1にかかる演算の負荷を軽減し、また、処理量の多い演算をハードウェア側で処理することができる。
図5は、以上述べた本実施形態の処理を説明するためのフローチャートである。図示したフローチャートに示すように、本実施形態では、プロセッサ部1のスレッド送受信部109a〜109dが、複数のスレッドの各々から演算処理部2(図中DEと記す)に依頼する演算(処理)を要求する(S501)。そして、演算依頼の送信が依頼されると(S502)、取得した演算依頼に基づいて演算を依頼するためのパケット式のデータを生成する(S503)。
次に、各スレッド送受信部109a〜109dは、演算処理部2へのデータ送信が終了したか否か判断する(S504)。この結果、終了していない場合(S504:No)、終了するまで待機する。また、データの送信が終了した場合(S504Yes)、演算処理部2側の送受信部107で演算依頼のデータが受信される(S505)。演算依頼処理部105は、パケット送信されてきたデータの内容を内部で判定する(S506)。続いて、演算実行部105が有する各演算機能のうち、演算を依頼すべき演算機能がビジー状態であるか否か判断する(S507)。この判断において、ビジーであると判断された場合(S507:Yes)、ビジー状態が解除されるまで待機する。
一方、演算を依頼すべき演算機能がビジー状態でない場合(S507:No)、演算依頼処理部105は、各処理機能の状態を管理、すなわち管理テーブルを更新する(S508)。そして、該当する演算機能に演算を依頼する(S509)。さらに、依頼されたすべての演算が終了したか否か判断し(S510)、終了していない場合には(S510:No)、次の処理機能がビジー状態であるか否か判断する。
また、全ての演算依頼が終了している場合(S510:Yes)、演算依頼処理部105は、演算依頼を送信したスレッドを特定する。そして、特定されたスレッドを、演算結果の返信先に決定する(S511)。そして、決定した返信先に演算結果を送信する。以上の処理により、演算処理部2からプロセッサ部1に演算の実行結果を示すデータが返信先のスレッドを示すデータと共に返信されてくる。
プロセッサ部1は、返信されてきたデータを送受信部107で受信する(S512)。スレッド送受信部109a〜109dは、受信したデータに含まれる返信先のスレッドを判定し、このスレッドに演算結果が送信されてきたことを通知する(S514)。さらに、返信されてきたデータを、演算依頼したスレッドに返信する(S515)。
本発明の一実施形態の演算処理装置を説明するための図である。 本発明の一実施形態の演算処理装置において生成される演算依頼のコマンドのパケットを例示した図である。 本発明の一実施形態の演算処理装置において演算依頼を管理する管理テーブルを示した図である。 本発明の一実施形態の演算依頼のためのデータを例示する図である。 本発明の一実施形態の演算処理装置においてなされる処理を示したフローチャートである。
符号の説明
1 プロセッサ部、2 演算処理部、3 メモリエレメント、
103a,103b,103c,103d スレッド、105 演算依頼処理部
107 送受信部、109a,109b,109c,109d スレッド送受信部
111 平均値算出部 113 差分絶対値和算出部、115 半画素生成部
117 イントラ処理部、119 間引き処理部、121 補間処理部
123 比較処理部、150 演算実行部

Claims (5)

  1. 複数のスレッドを並行して処理可能なプロセッサ部と、
    前記プロセッサ部の依頼に応じて演算処理を実行する複数の演算実行手段を有する演算処理部と、を備える演算処理装置であって、
    前記プロセッサ部は、
    前記複数のスレッドが発生した前記演算実行手段に対する演算実行の依頼である演算依頼をパケット送信する演算依頼送信手段を備え、
    前記演算処理部は、
    前記演算依頼送信手段によって送信された演算依頼を受信する演算依頼受信手段と、
    前記演算依頼受信手段によって受信された演算依頼を調整し、複数の前記演算実行手段の各々に対し、演算の実行を依頼したスレッドを特定するための情報と、依頼された演算を実行するための情報とを含むデータを分配する演算依頼分配手段と、
    を備えることを特徴とする演算処理装置。
  2. 複数の前記演算実行手段は、各々が互いに異なる種別の演算を専用に実行することを特徴とする請求項1に記載の演算処理装置。
  3. 複数の前記演算実行手段は、前記プロセッサ部における動作の最小単位で処理可能な処理以上の処理量を要する演算を実行するハードウェア構成であることを特徴とする請求項2に記載の演算処理装置。
  4. 前記演算依頼は、演算実行を依頼したスレッドを特定するための情報、演算の実行が依頼された前記演算実行手段を特定するための情報を少なくとも含むことを特徴とする請求項1から3のいずれか1項に記載の演算処理装置。
  5. 前記演算依頼送信手段は、前記演算実行手段に対する演算依頼に係る情報の送信専用に設けられることを特徴とする請求項1から4のいずれか1項に記載の演算処理装置。
JP2004283624A 2004-09-29 2004-09-29 演算処理装置 Withdrawn JP2006099336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004283624A JP2006099336A (ja) 2004-09-29 2004-09-29 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004283624A JP2006099336A (ja) 2004-09-29 2004-09-29 演算処理装置

Publications (1)

Publication Number Publication Date
JP2006099336A true JP2006099336A (ja) 2006-04-13

Family

ID=36239096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004283624A Withdrawn JP2006099336A (ja) 2004-09-29 2004-09-29 演算処理装置

Country Status (1)

Country Link
JP (1) JP2006099336A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015122063A (ja) * 2013-12-20 2015-07-02 三星電子株式会社Samsung Electronics Co.,Ltd. マルチスレッディングを支援するための演算ユニット、それを含むプロセッサ及びプロセッサの動作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015122063A (ja) * 2013-12-20 2015-07-02 三星電子株式会社Samsung Electronics Co.,Ltd. マルチスレッディングを支援するための演算ユニット、それを含むプロセッサ及びプロセッサの動作方法

Similar Documents

Publication Publication Date Title
US10768989B2 (en) Virtual vector processing
JP4678623B2 (ja) 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive)
JP5137434B2 (ja) データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
JP2010050970A (ja) 中央処理装置と画像処理装置との間で通信するための機器および方法
JP5354458B2 (ja) 画像処理装置、画像出力制御システム、画像形成システムおよびプログラム
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
EP1365321A2 (en) Multiprocessor system
JP2006318176A (ja) コマンド実行制御装置、コマンド実行指示装置およびコマンド実行制御方法
US20140160138A1 (en) Memory based semaphores
TW201732545A (zh) 異構計算系統和方法
CN102495726B (zh) 机会多线程方法及处理器
JPWO2014002412A1 (ja) プログラム変換装置及び方法、処理切替方法、実行方式決定方法及びプログラム記憶媒体、プロセッサシステム並びに並列実行方法
US20150121392A1 (en) Scheduling in job execution
JP2008250370A (ja) 情報処理装置及び情報処理用プログラム
JP2006099336A (ja) 演算処理装置
JP2006099337A (ja) 演算処理装置
JP7073403B2 (ja) 高スループット内部通信プロトコルを用いる画像処理プロセッサ
JP2007133493A (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
KR101332839B1 (ko) 병렬 컴퓨팅 프레임워크 기반 클러스터 시스템의 호스트 노드 및 메모리 관리 방법
JP2006302168A (ja) コプロセッサ、および、その演算制御方法
US20140201505A1 (en) Prediction-based thread selection in a multithreading processor
JP2006195705A (ja) プロセッサ
CN103257943A (zh) 集中式中断控制器
JP2010020683A (ja) スレッド制御方法およびスレッド制御装置ならびにリアルタイムシステム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071204