JP2012003315A - データ処理装置、データ処理方法及びプログラム - Google Patents

データ処理装置、データ処理方法及びプログラム Download PDF

Info

Publication number
JP2012003315A
JP2012003315A JP2010135067A JP2010135067A JP2012003315A JP 2012003315 A JP2012003315 A JP 2012003315A JP 2010135067 A JP2010135067 A JP 2010135067A JP 2010135067 A JP2010135067 A JP 2010135067A JP 2012003315 A JP2012003315 A JP 2012003315A
Authority
JP
Japan
Prior art keywords
processor
layer processor
executed
execution
data
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.)
Granted
Application number
JP2010135067A
Other languages
English (en)
Other versions
JP5457281B2 (ja
Inventor
Takashi Aoki
孝 青木
Akira Onozawa
晃 小野澤
Norihiko Maeda
典彦 前田
Yusuke Sekihara
悠介 関原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010135067A priority Critical patent/JP5457281B2/ja
Publication of JP2012003315A publication Critical patent/JP2012003315A/ja
Application granted granted Critical
Publication of JP5457281B2 publication Critical patent/JP5457281B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】システム規模の増大と複数の処理結果の間に矛盾が生じることとを回避しつつ、データ処理の性能を維持する。
【解決手段】階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付けて、実行順番が決められた複数の工程からなる所定の処理を施して出力するデータ処理装置であって、最上層プロセッサは、第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに多くとも第2の工程までを実行し、実行した最後の工程と第1の工程との実行順番の差分に応じて第1の工程を別の工程に変更し、中間層プロセッサは、第3の工程までを実行し、1つ下層のプロセッサが不可能状態にある場合、さらに多くとも第4の工程までを実行し、実行した最後の工程と第3の工程との実行順番の差分に応じて第3の工程を別の工程に変更し、最下層プロセッサは、最後の工程までを実行して出力する。
【選択図】図1

Description

本発明は、複数のデータを処理するデータ処理装置、データ処理方法及びプログラムに関する。
複数のデータを連続的に受け付け、受け付けた複数のデータのそれぞれに所定の処理を施す際、例えばデータが送られてくる頻度が変動すると、データを処理するための負荷も変動する。この場合、データを処理する機能の数を増減させることにより、データ処理の性能を維持する必要がある。データを処理する機能の数を増減させる場合には、負荷分散装置が利用されることが多い。
図10は、負荷分散装置を利用したデータ処理システムの構成の一例を示す図である。
図10に示すデータ処理システムは、複数のデータ処理装置と負荷分散装置とを備えている。複数のデータのそれぞれは、負荷分散装置にて受け付けられる。
そして、負荷分散装置は、受け付けた複数のデータのそれぞれを、複数のデータ処理装置の負荷に応じて分配する。例えば、負荷分散装置が複数のデータ処理装置の負荷を検出し、データを受け付けた際には、複数のデータ処理装置のうち軽負荷のデータ処理装置に受け付けたデータの処理を行わせる。これにより、複数のデータ処理装置の負荷を分散することができ、データが送られてくる頻度が変動する場合でも、データ処理の性能を維持することが可能となる。
なお、負荷分散装置に関する技術が例えば、非特許文献1に開示されている。
http://www.atmarkit.co.jp/fnetwork/rensai/lb01/lb01.html
図10に示したようなデータ処理システムの場合、複数のデータ処理装置とは別に、複数のデータのそれぞれを複数のデータ処理装置に分配するための負荷分散装置を別途用意する必要があり、システム規模が増大してしまうという問題点がある。
また、複数のデータのそれぞれを複数のデータ処理装置のいずれかに分配しているため、データの処理終了の時刻が、そのデータよりも前に負荷分散装置にて受け付けられたデータの処理終了の時刻よりも早くなる場合もある。この場合、複数の処理結果の間で矛盾が生じてしまうことを完全には回避できないという問題点がある。
本発明は、システム規模の増大と複数の処理結果の間に矛盾が生じることとを回避しつつ、データ処理の性能を維持することを可能とするデータ処理装置、データ処理方法及びプログラムを提供することを目的とする。
上記目的を達成するために本発明のデータ処理装置は、階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、該受け付けたデータに所定の処理を施した処理結果を出力するデータ処理装置であって、
前記所定の処理は、実行順番が決められた複数の工程からなり、
前記複数のプロセッサのうち最上層の最上層プロセッサは、前記複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け可能な可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力し、前記実行した工程のうち最後の工程の実行順番と、前記第1の工程の実行順番との差分に応じて前記第1の工程を別の工程に変更し、
前記複数のプロセッサのうち最下層の最下層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移し、実行済みの工程の次の工程から前記複数の工程の最後の工程までを実行し、該実行結果を前記処理結果として出力した後、前記可能状態に遷移し、
前記複数のプロセッサのうち、前記最上層及び最下層プロセッサ以外の中間層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移し、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが前記可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが前記不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力し、前記実行した工程のうち最後の工程の実行順番と、前記第3の工程の実行順番との差分に応じて前記第3の工程を別の工程に変更した後、前記可能状態に遷移する。
また、上記目的を達成するために本発明のデータ処理方法は、階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、実行順番が予め決められた複数の工程からなる所定の処理を、前記受け付けたデータに施した処理結果を出力するデータ処理装置におけるデータ処理方法であって、
前記複数のプロセッサのうち最上層の最上層プロセッサが、前記複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け可能な可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する処理と、
前記最上層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第1の工程の実行順番との差分に応じて前記第1の工程を別の工程に変更する第1の変更処理と、
前記複数のプロセッサのうち、前記最上層プロセッサ及び最下層の最下層プロセッサ以外の中間層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する処理と、
前記中間層プロセッサが、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが前記可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが前記不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する処理と、
前記中間層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第3の工程の実行順番との差分に応じて前記第3の工程を別の工程に変更する第2の変更処理と、
前記中間層プロセッサが、前記可能状態に遷移する処理と、
前記最下層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する処理と、
前記最下層プロセッサが、実行済みの工程の次の工程から前記複数の工程の最後の工程までを実行し、該実行結果を前記処理結果として出力する処理と、
前記最下層プロセッサが、前記可能状態に遷移する処理と、を有する。
また、上記目的を達成するために本発明のプログラムは、階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、実行順番が予め決められた複数の工程からなる所定の処理を、前記受け付けたデータに施した処理結果を出力するコンピュータに、
前記複数のプロセッサのうち最上層の最上層プロセッサが、前記複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け可能な可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する機能と、
前記最上層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第1の工程の実行順番との差分に応じて前記第1の工程を別の工程に変更する第1の変更機能と、
前記複数のプロセッサのうち、前記最上層プロセッサ及び最下層の最下層プロセッサ以外の中間層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する機能と、
前記中間層プロセッサが、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが前記可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが前記不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する機能と、
前記中間層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第3の工程の実行順番との差分に応じて前記第3の工程を別の工程に変更する第2の変更機能と、
前記中間層プロセッサが、前記可能状態に遷移する機能と、
前記最下層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する機能と、
前記最下層プロセッサが、実行済みの工程の次の工程から前記複数の工程の最後の工程までを実行し、該実行結果を前記処理結果として出力する機能と、
前記最下層プロセッサが、前記可能状態に遷移する機能と、を実現させる。
本発明は以上説明したように構成されているので、複数のデータのそれぞれは受け付けられた順番に従って処理される。そのため、データの処理終了の時刻が、そのデータよりも前に受け付けられたデータの処理終了の時刻よりも早くなることがない。また、複数のプロセッサのそれぞれが実行する工程が限定されるため、限定された工程の実行に特化したプロセッサを利用することにより、負荷分散装置を利用しなくても、複数のデータのそれぞれを高速に処理することができる。
従って、システム規模の増大と複数の処理結果の間に矛盾が生じることとを回避しつつ、データ処理の性能を維持することが可能となる。
本発明のデータ処理装置の実施の一形態の構成を示すブロック図である。 図1に示したプロセッサの構成の一例を示すブロック図である。 図2に示した記憶部が初期化されたときの状態の一例を示す図である。 図1〜図3に示したデータ処理装置がデータに所定の処理を施す場合の動作を説明するためのフローチャートである。 図1〜図3に示したデータ処理装置がデータに所定の処理を施す場合の動作を説明するためのフローチャートである。 図4及び図5に示したフローチャートの動作を擬似コードで表した図である。 図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子の一例を説明するための図である。 図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子の他の例を説明するための図である。 図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子の他の例を説明するための図である。 負荷分散装置を利用したデータ処理システムの構成の一例を示す図である。
以下に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明のデータ処理装置の実施の一形態の構成を示すブロック図である。
本実施形態のデータ処理装置10は図1に示すように、階層化されたプロセッサ(Processor)11−1〜11−nを備えている。
データ処理装置10は、複数のデータを1つずつ受け付け、受け付けたデータに所定の処理を施して処理結果を出力する。なお、この所定の処理は、実行順番が決められた複数の工程からなる。複数の工程のそれぞれは、工程番号によって識別される。工程番号は1から始まり、実行順番に従って1ずつ増加していく番号である。
プロセッサ11−1〜11−nのそれぞれは、複数の工程のうち少なくとも1つの工程を実行する。
図2は、図1に示したプロセッサ11−2の構成の一例を示すブロック図である。プロセッサ11−1,11−3〜11−nも同様の構成である。なお、プロセッサ11−2は、階層化された複数のプロセッサのうち最上層及び最下層のプロセッサ以外のプロセッサである中間層プロセッサの1つである。以降、最上層のプロセッサのことを最上層プロセッサといい、最下層のプロセッサのことを最下層プロセッサという。
図1に示したプロセッサ11−2は図2に示すように、入力部111と、実行部112と、記憶部113と、出力部114と、制御部115とを備えている。
入力部111は、1つ上層のプロセッサから出力され、工程を実行した結果である実行結果を受け付ける。なお、最上層プロセッサの場合、入力部111は、複数のデータを1つずつ受け付ける。
実行部112は、実行済みの工程の次の工程以降を少なくとも1つ実行する。
記憶部113は、実行部112が工程を実行するための情報等を記憶する。具体的には記憶部113は以下に示すpd、pl、busy、ixを記憶する。
pd:複数の工程のうち、必ず実行済みにする最後の工程である第3の工程(最上層プロセッサの場合は第1の工程)の工程番号を示す値
pl:複数の工程のうち、実行する可能性のある最後の工程である第4の工程(最上層プロセッサの場合は第2の工程)の工程番号を示す値
jx:実行済みとなった工程のうちの最後の工程の工程番号を示す値
busy:入力部111にて実行結果を受け付け可能な可能状態にある場合に0を示し、実行結果を受け付け不可能な不可能状態にある場合に1を示す論理変数
なお、pd,pl,jxは、工程番号を示す値であるため、1以上の整数となる。また、後述するように、pd及びplは、複数のプロセッサ毎に異なる値が設定される。また、最下層プロセッサにおいては、pd,pl,jxは参照されない。
出力部114は、実行部112が工程を実行した実行結果を、1つ下層のプロセッサへ出力する。なお、最下層プロセッサの場合、出力部114は、実行部112が実行した実行結果を所定の処理の処理結果として他の装置等へ出力する。
制御部115は、pdの値が示す工程番号の工程までが実行部112にて実行されると、1つ下層のプロセッサが可能状態にあるかどうかを問い合わせる。なお、問合せを受けた1つ下層のプロセッサの制御部115は、記憶部113に記憶されたbusyを確認し、確認した値に応じて応答を出力する。制御部115は、1つ下層のプロセッサからの受け付けが可能である旨の応答を受け付けるまで、pdの値が示す工程番号以降の工程を実行部112に実行させる。但し、この場合、多くともplの値が示す工程番号の工程までしか実行されない。そして、制御部115は、実行部112が実行した工程のうち最後の工程の実行順番と第1の工程の実行順番との差分に応じてpdの値を増減させる。以降、この差分のことを超過工程数という。なお、ここでは、複数の工程の実行順番に従って1つずつ増加していく番号を工程番号としている。従って、超過工程数は、jxとpdとの差分となる。なお、最下層プロセッサの場合、上述した制御部115における動作は実行されない。
以下に、上記のように構成されたデータ処理装置10がデータに所定の処理を施す場合の動作について説明する。なお、ここでは、プロセッサ11−1〜11−nの数をN個とし、複数の工程の数をM個(N<M)として説明する。また、以降の説明においては、最上層プロセッサから階層順に数えてi番目のプロセッサのことをプロセッサiと表記し、プロセッサiの記憶部113に記憶されたpd、pl、busyのそれぞれpd(i)、pl(i)、busy(i)と表記する。従って、最上層プロセッサはプロセッサ1と表記され、最上層プロセッサの記憶部113に記憶されたpd、pl、busyはそれぞれ、pd(1)、pl(1)、busy(1)と表記される。
データの受け付けを開始する前に、まず、記憶部113を初期化する。
図3は、図2に示した記憶部113が初期化されたときの状態の一例を示す図である。
記憶部113が初期化された状態では図3に示すように、pd(i)の値は、最上層プロセッサから階層順に、1,2,3・・・となっている。なお、pd(i)の値は、初期化されたときの値よりも小さな値になることはない。
図4及び図5は、図1〜図3に示したデータ処理装置10がデータに所定の処理を施す場合の動作を説明するためのフローチャートである。なお、ここでは、超過工程数が2以上である場合には、pd(i)の値を1つ増加させ、超過工程数が0である場合には、pd(i)の値を1つ減少させる場合を一例として説明する。また、ここで説明するのは、中間層プロセッサの動作であるが、最上層プロセッサ及び最下層プロセッサの動作が中間層プロセッサの動作と異なる部分については、その都度説明する。
入力部111は、1つ上層のプロセッサから出力された実行結果を受け付ける(ステップS1)。なお、入力部111は、記憶部113に記憶されたbusy(i)が0である場合、実行結果を受け付ける。また、この実行結果には1つ上層のプロセッサに記憶されたjxが付与されている。最上層プロセッサの場合、入力部111は、データを1つ受け付けるが、データにはjxは付与されていない。
次に、制御部115は、記憶部113に記憶されたbusyを1に設定する(ステップS2)。これにより、不可能状態に遷移する。
実行部112は、ステップS1にて受け付けた実行結果に付与されたjxの値が示す工程番号の次の工程番号の工程から、記憶部113に記憶されたpd(i)の値が示す工程番号の工程までを実行する(ステップS3)。なお、最上層プロセッサの場合、実行部112は、工程番号1の工程から実行する。また、最下層プロセッサの場合、実行部112は、最後の工程までを実行する。そして、最下層プロセッサは、後述するステップS4以降の動作を実行することなく、最後の工程を実行した実行結果を所定の処理の処理結果として出力部114から他の装置等へ出力する。そして、最下層プロセッサの制御部115は、記憶部113に記憶されたbusyを0に設定する。これにより、可能状態に遷移し、1つ上層のプロセッサから次の実行結果を受け付けることが可能となる。
次に、制御部115は、記憶部113に記憶されたpd(i)の値をjxの値として記憶部113に記憶させる(ステップS4)。
次に、制御部115は、1つ下層のプロセッサが可能状態にあるかどうかを判定する(ステップS5)。具体的には上述したように、制御部115は、可能状態にあるかどうかを1つ下層のプロセッサに問い合わせる。そして、制御部115は、その問合せに対する応答の内容により、1つ下層のプロセッサが可能状態にあるかどうかを判定する。
ステップS5における判定の結果、1つ下層のプロセッサが不可能状態にあると判定された場合、制御部115は、jxの値がpl(i)の値よりも小さいかどうかを判定する(ステップS6)。
ステップS6における判定の結果、jxの値がpl(i)の値よりも小さな場合、制御部115は、jxの値をインクリメントする(ステップS7)。
そして、制御部115は、jxの値が示す工程番号の工程を実行部112に実行させ(ステップS8)、ステップS5の動作へ遷移する。
一方、ステップS6における判定の結果、jxの値がpl(i)の値よりも小さくない場合には、ステップS5の動作へ遷移する。
ここで、ステップS5における判定の結果、1つ下層のプロセッサが可能状態にある場合には、制御部115は、実行部112にて実行された工程の実行結果に、記憶部113に記憶されたjxを付与する。
そして、出力部114は、jxが付与された実行結果を1つ下層のプロセッサへ出力する(ステップS9)。
次に、制御部115は、超過工程数が2以上かどうかを判定する(ステップS10)。具体的には、jxの値がpd(i)の値よりも2以上大きいかどうかが判定される。
ステップS10における判定の結果、超過工程数が2以上である場合、制御部115は、記憶部113に記憶されたpd(i)の値を1つ増加させる(ステップS11)。なお、pd(i)は、pl(i)よりも大きくならないようにする。
そして、制御部115は、記憶部113に記憶されたbusyを0に設定する(ステップS12)。これにより、可能状態に遷移し、1つ上層のプロセッサから次の実行結果を受け付けることが可能となる。
一方、ステップS10における判定の結果、超過工程数が2よりも小さな場合には、制御部115は、超過工程数が0であるかどうかを判定する(ステップS13)。具体的には、jxの値とpd(i)の値とが同じかどうかが判定される。
ステップS13における判定の結果、超過工程数が0である場合、制御部115は、記憶部113に記憶されたpd(i)の値を1つ減少させる(ステップS14)。そして、ステップS12の動作へ遷移する。
一方、ステップS13における判定の結果、超過工程数が0でない場合には、制御部115は、pd(i)の値を増減させずに、ステップS12の動作へ遷移する。
図4及び図5に示したフローチャートの動作を擬似コードで表したものを図6に示す。
次に、図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子を具体的な例を用いて説明する。
図7は、図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子の一例を説明するための図である。ここでは、7つの工程の実行を3つのプロセッサで分担する場合で、かつ、複数の工程のそれぞれを実行するのに必要なサイクル数が等しい場合について説明する。なお、以降の説明においては、最上層プロセッサ(プロセッサ1)にてj番目に受け付けられたデータのことをデータjと表記する。また、図7の図中の網掛け部分は、データ1〜7のそれぞれにおいて3つのプロセッサのそれぞれが実行した工程の工程番号を示している。
図7を参照すると、最上層プロセッサにて最初に受け付けられたデータ(データ1)は、最上層プロセッサ(プロセッサ1)にて工程番号1の工程がサイクル1で実行される。また、データ1は、プロセッサ2にて工程番号2の工程がサイクル2で実行され、プロセッサ3にて工程番号3〜7の工程が実行される。
次のデータ(データ2)は、最上層プロセッサにて工程番号1の工程がサイクル2で実行され、プロセッサ2にて工程番号2の工程がサイクル3で実行される。ここで、プロセッサ3は、サイクル7まで不可能状態にあるため、プロセッサ2にて工程番号3〜6の工程もさらに実行される。そして、プロセッサ3にて工程番号7の工程がサイクル8で実行される。
ここで、データ2が工程を実行される前には、pd(2)の値は2であったが、プロセッサ2にてデータ2が工程番号6の工程まで実行された。従って、超過工程数は4となり、pd(2)の値は1つ増加して3となる。
次のデータ(データ3)は、プロセッサ1にて工程番号5の工程まで実行される。従って、超過工程数は4となり、pd(1)の値は1つ増加して2になる。また、プロセッサ1にて工程番号5の工程まで実行された結果、プロセッサ2にて工程番号6の工程が実行される。従って、超過工程数は3となり、pd(2)の値も1つ増加して4となる。
次のデータ(データ4)は、プロセッサ1にて工程番号2の工程まで実行され、プロセッサ2にて工程番号4までの工程が実行される。この場合、プロセッサ1及びプロセッサ2は、pd(1)及びpd(2)の値が示す工程番号の工程まで実行したこととなる。従って、超過工程数が0となり、pd(1)及びpd(2)の値は1つ減算されて1及び3となる。
次のデータ(データ5)は、プロセッサ1にて工程番号2の工程まで実行される。従って、超過工程数は1となり、pd(1)の値に増減はない。また、プロセッサ2にて工程番号5までの工程が実行される。従って、超過工程数は2となり、pd(2)の値が1つ増加して4となる。
次のデータ(データ6)は、プロセッサ1にて工程番号3の工程まで実行される。従って、超過工程数は2となり、pd(1)の値が1つ増加して2となる。また、プロセッサ2にて工程番号5までの工程が実行される。従って、超過工程数は1となり、pd(2)の値に増減はない。
上述した動作において、データ3までは、プロセッサ1〜3にて工程番号1〜5の工程が実行された。一方、データ4以降は、プロセッサ1にて工程番号1〜3の工程が実行され、プロセッサ2にて工程番号3〜5の工程が実行され、プロセッサ3にて工程番号5〜7の工程が実行された。
また、データ7以降のデータについて、プロセッサ1〜3は、データ4〜6に実行した工程と同じ工程の実行を繰り返すこととなる。例えば、図7に示すように、データ7は、データ4と同様に、プロセッサ1にて工程番号2の工程まで実行され、プロセッサ2にて工程番号4までの工程が実行される。また、図7には示していないが、データ8は、データ5と同様に、プロセッサ1にて工程番号2の工程まで実行され、プロセッサ2にて工程番号5までの工程が実行される。
このように、データを受け付けていくに従い、プロセッサ1〜3のそれぞれにて実行される工程が限定される。これは、プロセッサの数を4つ以上にした場合でも同様である。つまり、複数の工程を何サイクルで実行できるかが予めわからない場合でも、複数の工程を複数のプロセッサで分担して実行することができる。
従って、命令キャッシュを使用してメモリの容量や消費電力を少なくしたり、専用のハードウェアに工程の実行を任せるように切り替えたりすることが可能となる。これにより、限定された工程の実行に特化したプロセッサを利用することができ、処理の高速化を実現することができる。
図8及び図9は、図4〜図6に示した動作フローに従い、複数の工程のそれぞれを複数のプロセッサが分担して実行する様子の他の例を説明するための図である。ここでは、図7を参照しながら説明した例と同様に、7つの工程の実行を3つのプロセッサで分担する場合について説明する。但し、ここでは、図7を参照しながら説明した例とは異なり、7つの工程のそれぞれを実行するのに必要なサイクル数が等しくない場合について説明する。7つの工程のそれぞれを実行するのに必要なサイクル数は、以下に示すとおりである。
工程番号1、2の工程:1サイクル
工程番号3、4の工程:2サイクル
工程番号5、6の工程:4サイクル
工程番号7の工程:8サイクル
なお、図8及び図9の図中の網掛け部分は、データ1〜11のそれぞれにおいて3つのプロセッサが実行した工程の工程番号を表している。また、図8はサイクル1〜51までを示しており、図9はサイクル52〜103を示している。
図8を参照すると、サイクル15においてプロセッサ2にて工程番号6の工程がデータ2に実行された後、pl(2)に達している。そのため、プロセッサ2は、工程番号7の工程を実行せず、ストールして、プロセッサ3が可能状態になるまで待機することとなる。なお、図8及び図9において、ストールはsで表記されている。
図9を参照すると、最終的には、工程番号1から工程番号4または工程番号5の工程までがプロセッサ1にて実行される。また、工程番号5または工程番号6までの工程がプロセッサ2にて実行され、プロセッサ3にて工程番号7の工程のみが実行されることとなる。
このように、複数の工程のそれぞれを実行するのに必要なサイクル数が異なる場合でも、データを受け付けていくに従い、複数のプロセッサのそれぞれにて実行される工程が限定される。
ここで、本実施形態においては、超過工程数が2以上である場合、pd(i)の値を1つ増加させ、超過工程数が0である場合には、pd(i)の値を1つ減少させるようにした。このようにpd(i)を増減させるために、超過工程数の閾値としてS1,S2を「0<S1<S2」となるように設定する。そして、pdの増加量および減少量Δpdを超過工程数xの関数pd(x)として、「Δpd(S2)=+D」、「Δpd(S1)=0」、「Δpd(0)=−D」とし、xの変域、すなわち、全工程数までの非負整数に対して、△pd(x)が単調増加となるように決めればよい。なお、Dの値は、全工程数を越えることはない。本実施形態では、S2=2、S1=1、D=1とした場合について説明した。
このように本実施形態においては、最上層プロセッサは、複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力する。一方、最上層プロセッサは、当該1つ下層のプロセッサが不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが可能状態に遷移すると、実行結果を当該1つ下層のプロセッサに出力する。そして、最上層プロセッサは、実行した工程のうち最後の工程の実行順番と、第1の工程の実行順番との差分に応じて第1の工程を別の工程に変更する。
また、最下層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、不可能状態に遷移し、実行済みの工程の次の工程から、複数の工程の最後の工程までを実行し、実行結果を所定の処理の処理結果として出力する。
また、中間層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、不可能状態に遷移し、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力する。一方、中間層プロセッサは、当該1つ下層のプロセッサが不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが可能状態に遷移すると、実行結果を当該1つ下層のプロセッサに出力する。そして、中間層プロセッサは、実行した工程のうち最後の工程の実行順番と、第3の工程の実行順番との差分に応じて第3の工程を別の工程に変更した後、可能状態に遷移する。
これにより、複数のデータのそれぞれは受け付けられた順番に従って処理される。そのため、データの処理終了の時刻が、そのデータよりも前に受け付けられたデータの処理終了の時刻よりも早くなることがない。また、複数のプロセッサのそれぞれが実行する工程が限定されるため、限定された工程の実行に特化したプロセッサを利用することにより、負荷分散装置を利用しなくても、複数のデータのそれぞれを高速に処理することができる。
従って、システム規模の増大と複数の処理結果の間に矛盾が生じることとを回避しつつ、データ処理の性能を維持することが可能となる。
なお、本発明においては、データ処理装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをデータ処理装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをデータ処理装置に読み込ませ、実行するものであっても良い。データ処理装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、データ処理装置に内蔵されたHDDなどを指す。また、この記録媒体に記録されたプログラムをネットワークを介して提供することも可能である。
10 データ処理装置
11−1〜11−n プロセッサ
111 入力部
112 実行部
113 記憶部
114 出力部
115 制御部

Claims (5)

  1. 階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、該受け付けたデータに所定の処理を施した処理結果を出力するデータ処理装置であって、
    前記所定の処理は、実行順番が決められた複数の工程からなり、
    前記複数のプロセッサのうち最上層の最上層プロセッサは、前記複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け可能な可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力し、前記実行した工程のうち最後の工程の実行順番と、前記第1の工程の実行順番との差分に応じて前記第1の工程を別の工程に変更し、
    前記複数のプロセッサのうち最下層の最下層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移し、実行済みの工程の次の工程から前記複数の工程の最後の工程までを実行し、該実行結果を前記処理結果として出力した後、前記可能状態に遷移し、
    前記複数のプロセッサのうち、前記最上層及び最下層プロセッサ以外の中間層プロセッサは、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移し、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが前記可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが前記不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力し、前記実行した工程のうち最後の工程の実行順番と、前記第3の工程の実行順番との差分に応じて前記第3の工程を別の工程に変更した後、前記可能状態に遷移するデータ処理装置。
  2. 請求項1に記載のデータ処理装置において、
    前記最上層プロセッサは、当該最上層プロセッサにおける前記差分が予め決められた数以上である場合、前記第1の工程を、該第1の工程よりも所定数後の工程に変更し、前記差分が0である場合、前記第1の工程を、該第1の工程よりも前記所定数前の工程に変更し、
    前記中間層プロセッサは、当該中間層プロセッサにおける前記差分が前記予め決められた数以上である場合、前記第3の工程を、該第3の工程よりも前記所定数後の工程に変更し、前記差分が0である場合、前記第3の工程を、該第3の工程よりも前記所定数前の工程に変更するデータ処理装置。
  3. 階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、実行順番が予め決められた複数の工程からなる所定の処理を、前記受け付けたデータに施した処理結果を出力するデータ処理装置におけるデータ処理方法であって、
    前記複数のプロセッサのうち最上層の最上層プロセッサが、前記複数の工程の最初の工程から、当該最上層プロセッサに設定された第1の工程までを実行し、1つ下層のプロセッサが実行結果を受け付け可能な可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが実行結果を受け付け不可能な不可能状態にある場合、さらに、多くとも当該最上層プロセッサに設定された第2の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する処理と、
    前記最上層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第1の工程の実行順番との差分に応じて前記第1の工程を別の工程に変更する第1の変更処理と、
    前記複数のプロセッサのうち、前記最上層プロセッサ及び最下層の最下層プロセッサ以外の中間層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する処理と、
    前記中間層プロセッサが、実行済みの工程の次の工程から、当該中間層プロセッサに設定された第3の工程までを実行し、1つ下層のプロセッサが前記可能状態にある場合、当該実行結果を当該1つ下層のプロセッサに出力し、当該1つ下層のプロセッサが前記不可能状態にある場合、さらに、多くとも当該中間層プロセッサに設定された第4の工程までを実行し、当該1つ下層のプロセッサが前記可能状態に遷移すると、当該実行結果を当該1つ下層のプロセッサに出力する処理と、
    前記中間層プロセッサが、前記実行した工程のうち最後の工程の実行順番と、前記第3の工程の実行順番との差分に応じて前記第3の工程を別の工程に変更する第2の変更処理と、
    前記中間層プロセッサが、前記可能状態に遷移する処理と、
    前記最下層プロセッサが、1つ上層のプロセッサから出力された実行結果を受け付けると、前記不可能状態に遷移する処理と、
    前記最下層プロセッサが、実行済みの工程の次の工程から前記複数の工程の最後の工程までを実行し、該実行結果を前記処理結果として出力する処理と、
    前記最下層プロセッサが、前記可能状態に遷移する処理と、を有するデータ処理方法。
  4. 請求項3に記載のデータ処理方法において、
    前記第1の変更処理は、前記最上層プロセッサが、当該最上層プロセッサにおける前記差分が予め決められた数以上である場合、前記第1の工程を、該第1の工程よりも所定数後の工程に変更し、前記差分が0である場合、前記第1の工程を、該第1の工程よりも前記所定数前の工程に変更する処理であり、
    前記第2の変更処理は、前記中間層プロセッサが、当該中間層プロセッサにおける前記差分が前記予め決められた数以上である場合、前記第3の工程を、該第3の工程よりも前記所定数後の工程に変更し、前記差分が0である場合、前記第3の工程を、該第3の工程よりも前記所定数前の工程に変更する処理であるデータ処理方法。
  5. 階層化された複数のプロセッサを有し、複数のデータを1つずつ受け付け、実行順番が予め決められた複数の工程からなる所定の処理を、前記受け付けたデータに施した処理結果を出力するコンピュータを、請求項1または請求項2に記載のデータ処理装置として機能させるためのプログラム。
JP2010135067A 2010-06-14 2010-06-14 データ処理装置、データ処理方法及びプログラム Expired - Fee Related JP5457281B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010135067A JP5457281B2 (ja) 2010-06-14 2010-06-14 データ処理装置、データ処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010135067A JP5457281B2 (ja) 2010-06-14 2010-06-14 データ処理装置、データ処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012003315A true JP2012003315A (ja) 2012-01-05
JP5457281B2 JP5457281B2 (ja) 2014-04-02

Family

ID=45535257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010135067A Expired - Fee Related JP5457281B2 (ja) 2010-06-14 2010-06-14 データ処理装置、データ処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5457281B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822440A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd 信号処理装置及びその負荷分散処理方法
JP2007026373A (ja) * 2005-07-21 2007-02-01 Hitachi Ltd ストリームデータ処理システムおよびストリームデータ処理方法
US20090282217A1 (en) * 2008-05-07 2009-11-12 International Business Machines Corporation Horizontal Scaling of Stream Processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0822440A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd 信号処理装置及びその負荷分散処理方法
JP2007026373A (ja) * 2005-07-21 2007-02-01 Hitachi Ltd ストリームデータ処理システムおよびストリームデータ処理方法
US20090282217A1 (en) * 2008-05-07 2009-11-12 International Business Machines Corporation Horizontal Scaling of Stream Processing

Also Published As

Publication number Publication date
JP5457281B2 (ja) 2014-04-02

Similar Documents

Publication Publication Date Title
US8745608B2 (en) Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus
US8707320B2 (en) Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications
US11347480B2 (en) Transpose operations using processing element array
US20110088022A1 (en) Dynamic Optimization Using A Resource Cost Registry
US20170185564A1 (en) Processor, method for controlling reconfigurable circuit and program
US10996985B2 (en) Dynamic queue depth management with non-volatile memory controllers
US11416762B1 (en) Selecting physical qubits for quantum error correction schemes
TW202134861A (zh) 交錯記憶體請求以加速記憶體存取
US10223269B2 (en) Method and apparatus for preventing bank conflict in memory
US9965343B2 (en) System and method for determining concurrency factors for dispatch size of parallel processor kernels
Beaumont et al. Optimal GPU-CPU offloading strategies for deep neural network training
US20080133899A1 (en) Context switching method, medium, and system for reconfigurable processors
US11615337B1 (en) Determining quantum error correction schemes
CN106990994B (zh) 树形原子状态机及其控制逻辑接口的实现方法及装置
US20100146242A1 (en) Data processing apparatus and method of controlling the data processing apparatus
Lu et al. A new data sieving approach for high performance I/O
JP5457281B2 (ja) データ処理装置、データ処理方法及びプログラム
KR101421054B1 (ko) 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
KR101862799B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤 방법
US9727528B2 (en) Reconfigurable processor with routing node frequency based on the number of routing nodes
CN111290701B (zh) 数据读写控制方法、装置、介质和电子设备
JP5835103B2 (ja) 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム
JP6333370B2 (ja) キャッシュ線中で動的配列データ構造を実装するための方法
US10503513B2 (en) Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US11875229B2 (en) Determining dynamic quantum error correction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120831

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131210

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: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140109

R150 Certificate of patent or registration of utility model

Ref document number: 5457281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees