JP2014191621A - 情報処理装置およびメモリアクセス制御方法 - Google Patents

情報処理装置およびメモリアクセス制御方法 Download PDF

Info

Publication number
JP2014191621A
JP2014191621A JP2013067126A JP2013067126A JP2014191621A JP 2014191621 A JP2014191621 A JP 2014191621A JP 2013067126 A JP2013067126 A JP 2013067126A JP 2013067126 A JP2013067126 A JP 2013067126A JP 2014191621 A JP2014191621 A JP 2014191621A
Authority
JP
Japan
Prior art keywords
access
memory
bank
banks
statistical information
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
JP2013067126A
Other languages
English (en)
Other versions
JP2014191621A5 (ja
JP6195342B2 (ja
Inventor
Tomoya Honjo
智也 本條
Takahisa Yamamoto
貴久 山本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013067126A priority Critical patent/JP6195342B2/ja
Priority to US14/224,145 priority patent/US9946645B2/en
Publication of JP2014191621A publication Critical patent/JP2014191621A/ja
Publication of JP2014191621A5 publication Critical patent/JP2014191621A5/ja
Application granted granted Critical
Publication of JP6195342B2 publication Critical patent/JP6195342B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Image Analysis (AREA)

Abstract

【課題】複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段から前記メモリへのアクセスを制御する情報処理装置において、バンク・コンフリクトの発生を低減して処理速度を向上させる。
【解決手段】メモリへのアクセス対象データについて、メモリへのアクセスに関する統計的情報として、例えばメモリアクセス頻度を示すヒストグラムを入力する(S201)。このヒストグラムに基づき、アクセス対象データ(ヒストグラムのビン)毎に、複数のバンクのいずれかを割り当てる(S202)。そして、アクセス対象データが該割り当てられたバンクへのアクセスを行うように制御しながら、メイン処理を行う(S203)。このように、データのメモリアクセスにおける統計的情報に基づいてバンクを割り当てることで、複数の演算素子がメモリ内の同一バンクへ同時アクセスするバンク・コンフリクトの発生が低減される。
【選択図】図2

Description

本発明は、複数の演算素子と、複数のバンクを有するメモリを用いた処理を行う情報処理装置およびメモリアクセス制御方法に関する。
複数の演算素子と、複数のバンクを有するメモリを用いる情報処理装置において、該複数の演算素子がメモリにアクセスする場合、メモリ内の各バンクは一度に1か所へのアクセスしか対応できない。したがって、複数の演算素子から、同じメモリバンクに属する複数の箇所へのアクセスが同時に発生すると、これらは同時に処理できないため、処理速度が低下する。このような不具合はバンク・コンフリクトと呼ばれる。
一般にバンク・コンフリクトは、複数の演算素子を用いて共通メモリへのアクセスを並列に行う、比較的処理量の多い並列処理装置あるいはシステムにおいて発生しやすい。このようなシステムとしては例えば、工場の生産ライン等において部品群から部品のピッキング等のタスクを実行するロボットシステムが考えられる。該ロボットシステムにおいては、部品箱に山積みされている部品の位置姿勢を画像処理により認識する物体位置姿勢の認識処理が実行される(例えば、非特許文献1参照)。この物体位置姿勢の認識処理として大量の画像処理を並列に行う際に、バンク・コンフリクトが発生し、処理速度が低下してしまうことが考えられる。
バンク・コンフリクトを抑制するためのメモリアクセス制御方法として、様々な技術が提案されている。例えば、描画対象となる図形の形状を特定し、特定された図形の形状に適合するインターリーブパターンの種類を選定し、そのパターンに従ってメモリへのアクセスを行う技術が提案されている(例えば、特許文献1参照)。
特開2003-323339号公報
J.Gall and V.Lempitsky. Class-specific hough forests for object detection。In IEEE Conference on Computer Vision and Pattern Recognition,2009。
しかしながら上記特許文献1に記載された方法では、アクセス時に使用するインターリーブパターンを選定している。従って、パターンに当てはめることができないケース、例えば扱うデータのアクセス対象がメモリの複数の箇所にまたがり、それぞれ最適なインターリーブパターンが異なるケースの場合には、バンク・コンフリクトの低減効果が低いという課題があった。
本発明は上記課題を解決するために、メモリアクセスデータの統計的情報に基づき、アクセス対象データへのバンク割り当てを行うことで、複数の演算素子によるメモリ内の同一バンクへの同時アクセスの発生を低減させ、処理速度の向上を目的とする。
上記目的を達成するための一手段として、本発明の情報処理装置は以下の構成を備える。すなわち、複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段によるメモリアクセスを制御する情報処理装置であって、前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力する入力手段と、前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当てる割り当て設定手段と、前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御するアクセス制御手段と、を有することを特徴とする。
本発明によれば、メモリアクセスデータの統計的情報に基づき、アクセス対象データへのバンク割り当てを行うことで、複数の演算素子によるメモリ内の同一バンクへの同時アクセスの発生を低減し、処理速度を向上させることが可能となる。
第1実施形態における情報処理装置の構成を示す機能ブロック図、 第1実施形態における物体位置姿勢の認識処理を示すフローチャート、 第1実施形態において用いられる統計的情報例を示す図、 第1実施形態におけるバンク割り当て例を示す図、 第2実施形態における物体位置姿勢の認識処理を示すフローチャート、 第2実施形態における部品の位置姿勢認識結果および頻度分布予測結果を示す図、 第2実施形態におけるバンクを割り当て例を示す図、 第3実施形態におけるトラッキング処理を示すフローチャート、 第3実施形態において前回生成された物体位置姿勢ヒストグラム例を示す図、 第3実施形態において今回生成された物体位置姿勢ヒストグラム例を示す図、 第3実施形態における頻度分布予測により作成されたヒストグラム例を示す図、 第3実施形態におけるバンクを割り当ての例を示す図、 第4実施形態におけるトラッキング処理を示すフローチャート、 第4実施形態において用いられる統計的情報例を示す図、である。
本発明に係る各実施形態では、データのメモリアクセスにおける統計的情報に基づいてバンクの割り当てを設定することで、バンク・コンフリクト低減効果を高めることを特徴とする。そこで、本発明に係る各実施形態を説明するに先立ち、本実施形態において言及している統計的情報について、簡単に説明する。本実施形態における統計的情報とは、ある注目しているデータがメモリ領域に対してどのようにメモリアクセスを行うかを統計的に示した情報のことである。最も簡単な統計的情報の例が、後述する第1実施形態に記載されているような、ある一定期間におけるメモリアクセスの頻度分布である。それに対し、第2実施形態以降では、メモリアクセスの頻度分布を基に、その後に行われる処理を考慮した統計的情報を生成する例を説明する。
以下、添付の図面を用いて本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<第1実施形態>
本実施形態は、物体の位置姿勢を画像処理により認識する処理を行う情報処理装置における、メモリアクセス制御について説明する。この物体位置姿勢の認識処理は例えば、工場の生産ライン等で、部品群から部品のピッキング等のタスクを実行するロボットシステムにおいて実行され、部品箱に山積みされている部品の位置姿勢を画像処理により認識する。
はじめに、本実施形態における物体位置姿勢の認識処理、およびその前提条件について説明する。
まず、本実施形態における物体位置姿勢の認識処理について説明する。なお、本実施形態では、部品が撮影された画像等、画像処理の対象となるデータを画像データ、画像データ中から一部切り出された画像データを部分画像データ、画像処理において画像データ以外で必要なパラメータ等のデータを辞書データ、と定義する。なお、本実施形態における物体位置姿勢の認識処理は、上述した非特許文献1に記載の処理アルゴリズムをベースとした手法を使用することを想定している。物体位置姿勢の認識処理に関しては、既に非特許文献1、およびその他様々な文献で詳述されているため、以下では本実施形態の説明に必要な部分のみについて説明する。
本実施形態における物体位置姿勢の認識処理は、主に以下の2つの処理からなる。1つは、部分画像データから得られる情報を複数の辞書データと比較し、その結果を位置姿勢投票空間に投票する部分画像認識処理である。そしてもう1つは、全ての部分画像に対して部分画像認識処理を行った結果から物体の位置姿勢を認識する統計的情報算出処理である。
部分画像認識処理においては、部分画像データ中の、辞書データにより指定された複数の2点1組の輝度差を計算し、そこから導き出される対象物体の位置・姿勢認識結果を、共有メモリ上にある位置姿勢投票空間上に投票する。ここで、全ての部分画像に対して部分画像認識処理を行った後に残る位置姿勢投票空間上の投票結果を、物体位置姿勢ヒストグラムと定義する。本実施形態においては、共有メモリへのアクセス頻度分布を示す該ヒストグラムが、共有メモリへのアクセス対象データの統計的情報を示すことになる。
また統計的情報算出処理においては、物体位置姿勢ヒストグラムで最も得票数の多いビンに対応する位置・姿勢の組み合わせを対象物体の位置姿勢の第1候補として、その位置と姿勢情報を物体位置姿勢認識結果として出力する。以下、得票数の多い順に、第2候補、第3候補、…を出力する。
次に、本実施形態における前提条件について説明する。ここで、本実施形態における位置の投票ビン数が100、姿勢の投票ビン数が80であるとする。すなわち、位置・姿勢の組み合わせが100×80=8000通りある場合を考える。本実施形態では、部品を山積みした際に生じる部品の位置については、どの位置も同確率で出現するものとする。また、部品を山積みした際に生じる部品の姿勢については、ある程度偏りを持って出現するとする。その結果、投票され得るビンについても偏りが生じる。ただし、各姿勢の起こりうる確率は、部品の位置によらないものとする。すなわち、各ビンにおける投票されやすさのヒストグラムを取ると、図3のようになるケースを考える。図3中でピークが立っている部分が、投票されやすいビン、すなわち起こりやすい姿勢を示している。具体的には、座標(x,y)における投票されやすいビンは、ビン番号X-Y-20およびその周辺が最も起こりやすく、続いてビン番号X-Y-40周辺、ビン番号X-Y-60周辺となっている。ここで、位置についてはどの位置も同確率で出現し、かつ各姿勢の起こりやすさは位置にはよらないとしたので、座標(x+1,y)等の他の位置においても、各姿勢のビンへの投票のされやすさは同じであるとする。
また、本実施形態で用いる共有メモリのバンク数は4(バンクA,B,C,D)とする。各ビンに対するデフォルトのバンクの割り当ては、ビン番号順に、バンクA,B,C,D,A,…と循環的な割り当てとなっているものとする。
以下、本実施形態におけるメモリアクセス制御について、詳細に説明する。図1は、本実施形態における、並列画像処理を可能とする情報処理装置の構成を示すブロック図である。同図において、外部入出力部11は、外部から画像データを取得したり、外部へ処理結果を出力する等、外部とのデータのやり取りを行う。複数の演算部12(PE1,PE2,PE3,…)は、各々が個別記憶部13(LM1,LM2,LM3,…)を備えており、各個別記憶部13に保存されている部分画像データおよび辞書データを用いた画像処理を行う。共有メモリ14は、各演算部12による出力結果を保存するための領域を提供する。ホストプロセッサ15は、各演算部12への処理の割り当てや、外部入出力部11と個別記憶部13、または共有メモリ14と個別記憶部13との間のデータ転送指示を行うなど、装置全体を統括的に制御する。ホストプロセッサ15はさらに、各演算部12が共有メモリ14へ結果を出力する際に用いるバンクの割り当ての設定を行う。
なお本実施形態では以上のように、それぞれの機能を実現する構成を定義したが、これらの定義は本発明の趣旨を限定するものではない。例えば、本実施形態ではホストプロセッサ15がバンクの割り当ての設定を行うとして定義したが、ホストプロセッサ15とは別にバンク割り当て設定部が存在しても良い。また、演算部12は各個別記憶部13に保存されている部分画像データおよび辞書データを用いて画像処理を行うとして定義したが、部分画像データおよび辞書データは共有メモリ14に保存されていても良い。すなわち上述した各定義は、本実施形態に示す情報処理装置が、後述するメモリアクセス制御を実現する際に必要とする手段を説明するために設定したものであり、その他の定義を排除するものでは無い。
図2は、本実施形態の情報処理装置において行われる物体位置姿勢の認識処理を示すフローチャートである。まずS201で統計的情報入力処理を行う。すなわち、後段の物体位置姿勢の認識処理(S203)で出力される位置姿勢投票結果について、予め得られている統計的情報が、ホストプロセッサ15に入力される。ここでの統計的情報とは図3に示した情報に相当し、すなわち、事前に、所定期間内に各ビンに投票された数をヒストグラム化したものであり、各ビンに対応するメモリ領域における所定期間内のメモリアクセスの頻度分布を指している。
次にS202で、バンク割り当て設定処理を行う。この処理はホストプロセッサ15にて行われ、S201で入力された統計的情報に基づいて、共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。バンク割り当て設定前は、図4に示すように、各ビンに対してバンクA,B,C,Dが規則的に割り当てられている。その結果、図4から分かるように、頻度順位1,2,3位のビンに対して同じバンク(図4の例ではバンクA)が割り当てられているため、このままではバンク・コンフリクトの増大が見込まれる。
そこで本実施形態では、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散されるように、バンク割り当て設定を行う。なお、メモリアクセス頻度が同じ場合の割り当てについては特に限定せず、どのような割り当てであっても良い。
具体的には、バンク数がN(Nは自然数)のとき、頻度順位R(Rは自然数)のメモリ領域に対して、頻度順位Rをバンク数Nで除算した際に得られる剰余に対応するバンク番号BNのバンクを割り当てるものとする。すなわち、BN=(R mod N)となる。以下、本実施形態におけるバンクの割り当てを、具体例に則して説明する。なお、上記演算によるバンク番号BN=1,2,3,4がそれぞれ、本実施形態におけるバンクA,B,C,Dに対応するものとする。
図4のバンク割り当て設定後の欄に示すように、本実施形態のバンクの割り当て設定によれば、頻度順位が最も高い(R=1)ビン番号X-Y-20にはバンクAが、次に頻度順位が高い(R=2)ビン番号X-Y-40にはバンクBが、順次割り当てられる。なお、頻度順位Rが同値であるビンが複数ある場合には、ビン番号の若い順にバンクを割り当てるとする。本実施形態ではこのように、8000個の全てのビンに対してバンクを割り当てていく。このようなバンク割り当てが行われることによって、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散される。
上記S202において、全てのビンに対応するメモリ領域に対してバンクの割り当てが終了すると、次にS203で物体位置姿勢の認識処理が実行される。ここでは、S202によるバンク割り当て設定に従って、共有メモリ14に位置姿勢投票空間が展開され、その投票空間を用いて、上述した部分画像認識処理が各演算部12で実行される。そして統計的情報算出処理がホストプロセッサ15で実行されることで、部品の位置姿勢の認識結果が出力される。
以上説明したように本実施形態によれば、メモリアクセス頻度に基づいてバンクを割り当てることによって、メモリアクセス頻度が高いビン同士のバンク・コンフリクトが低減される。
<第2実施形態>
以下、本発明に係る第2実施形態について説明する。第2実施形態では、部品認識を行った後に部品のピッキングを行い、その処理を繰り返す場合について説明する。なおここでは、上述した第1実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については第1実施形態と同様であるとして説明を省略する。
図5は、第2実施形態の情報処理装置において行われる物体位置姿勢の認識処理を示すフローチャートである。まずS501で、上記図2のS201と同様に統計的情報入力処理を行う。すなわち、後段の物体位置姿勢の認識処理(S504)で出力される投票結果に関する統計的情報が、ホストプロセッサ15に入力される。ここで入力される統計的情報は第1実施形態と同様、所定期間内のメモリアクセスの頻度分布である。
次にS502でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S501で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S508)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
次にS503でホストプロセッサ15により、メモリアクセス監視処理が開始される。すなわち、次に行われる物体位置姿勢の認識処理(S504)における共有メモリ14に対するアクセスを監視し、各ビンに対応する各メモリ領域へのアクセス回数を記録する処理を開始する。なお、S504における物体位置姿勢の認識処理は上述した第1実施形態のS203と同様である。すなわちS504では、S502によるバンク割り当て設定に従って、共有メモリ14に位置姿勢投票空間が展開され、その投票空間を用いて、上述した部分画像認識処理、および統計的情報算出処理が実行され、部品の位置姿勢の認識結果が出力される。
そしてS505でホストプロセッサ15は、S503で開始したメモリアクセス監視処理を終了し、統計的情報の算出処理を行う。すなわち、S504の物体位置姿勢の認識処理における共有メモリ14へのアクセスの監視を終了し、共有メモリ14中の各ビンに対応する各メモリ領域へのアクセス頻度を示すヒストグラムを作成する。
そしてS506でホストプロセッサ15が、S504の物体位置姿勢の認識処理により出力される部品の位置姿勢認識結果に基づき、対象部品のピッキングを行う。
そしてS507で、処理を終了する、もしくは次のピッキングを行う、のいずれかをホストプロセッサ15で選択する。処理を継続するのであれば、S508の頻度分布予測処理に移行する。S508でホストプロセッサ15は、S504で出力された部品の位置姿勢認識結果と、S505で作成されたヒストグラムを用いて、次回のメモリアクセス頻度分布を予測する。そして、該予測されたメモリアクセス頻度分布を出力した後、S502へ戻ってバンク割り当て設定以降の処理を繰り返す。すなわち第2実施形態では、メモリアクセス頻度分布を動的に算出することで、バンク割り当てを動的に行うことができる。
以下、S508における、次回のメモリアクセス頻度分布を予測する頻度分布予測処理について、詳細に説明する。図6(a)に、物体位置姿勢の認識処理(S504)から出力される部品の位置姿勢認識結果を表す。同図においては、第1候補から第3候補(座標a,b,c)まで、3つの部品の位置姿勢が認識されている例を示す。なお、部品認識された座標a,b,c以外の位置のビン(位置・姿勢両方)についての頻度順位は、全て最下位であるとする。
直前の部品ピッキング処理(S506)において、最も得票数の多い座標a(x0,y0)の位置にある部品、すなわち第1候補の部品のピッキングが行われた後、ピッキングされた位置には、認識された部品は存在しない。すなわち、ピッキングされた部品の位置においてその姿勢に投票される可能性は統計的に低くなる。したがって第2実施形態では、ピッキング対象となった部品位置およびその周辺に対する次回の投票数を0とみなす。ここで周辺とは、座標a(x0,y0)を中心とする3×3ビンの矩形領域とする。換言すれば、この矩形領域に含まれるヒストグラムの頻度値を全て0にする。これは、ヒストグラムにマスク処理を施していることと同義である。S508では、このようにして得られたヒストグラムを、予測されるメモリアクセス頻度分布として出力する。図6(b)は、S504で図6(a)に示す認識結果が得られた場合における、S508での頻度分布予測結果を示す。同図によればすなわち、座標a(X0,Y0)についてのヒストグラムが0となっている。
S502のバンク割り当て設定処理においては、初回実行時を除き、S508で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、共有メモリ14中の各ビンに対応するメモリ領域のバンク割り当てを設定する。ここで、第2実施形態におけるバンクの割り当て設定について、詳細に説明する。
上述した第1実施形態では、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散されるように、バンクの割り当てを設定した。これに対し第2実施形態では、各バンクに対するアクセス頻度がどのバンクに対しても平均化されるように、バンクの割り当てを設定する。以下、該割り当ての具体例について図7を用いて説明する。
図7は、S502によるバンク割り当て結果に応じてS506でピッキングが行われた後に、S508で頻度分布予測が行われ、該予測結果に応じてS502による再度のバンク割り当てを行った例を示す。すなわち、図7における「バンク割り当て設定前」が例えばS502における初回割り当て結果を示し、「バンク割り当て設定後」がS502における次回の割り当て結果を示す。同図によれば、まず、初回のS502の時点で得られている「頻度順位」のうち、S506でのピッキングにより最上位の頻度順位であるビン番号X0-Y0-20の周辺はマスキングされて、頻度0となる。したがって、図7に示す例においてS508でのマスク適用後に頻度順位が最も高くなるのはビン番号X1-Y1-47であり、ここにバンクAを割り当てる。同様に、頻度順位が2〜4位までのビンに対し、バンクB,C,Dを順次割り当てる。このとき、各バンクに割り当てられたビン番号が持つ頻度値に注目する。図7に示す例によれば、頻度順位が4位までの各ビンが割り当てられた各バンクに対する頻度値の総和は、バンクAは6、バンクBは5、バンクCは4、バンクDは3となる。このバンク毎の頻度値の総和は、換言すれば、各バンクに対するアクセス頻度の総和に対応する。
以上のように頻度順位4位までのビン番号へのバンク割り当てが行われると、次に、頻度順位が5位のビン番号X1-Y1-48(頻度値は2)に対し、各バンクが有する各ビンの頻度値の総和が最も小さいバンク(この場合、バンクD)を割り当てるとする。次に、頻度順位が6位のビン番号X2-Y2-36に対しても同様に、この時点での各バンクA,B,C,Dが有する各ビンの頻度値の総和は、それぞれ6,5,4,5であるので、最も総和が小さいバンクCに割り当てられる。以下同様に、バンク割り当て設定処理を繰り返す。
以上説明したように第2実施形態では、バンク毎の頻度順位の総和に基づいてバンク割り当てを行うことにより、各バンクに対するアクセス頻度が平均化される。
また第2実施形態では、ピッキング時のマスク処理により不必要な統計的情報を取り除いた後にバンク割り当てを行うことで、次回のメモリアクセスをより効率良く行うことができる。仮に、マスクを適用せずに、上記頻度順位の総和に基づくバンク割り当てを実行すると、バンク・コンフリクトが起こりやすくなることが予想される。これは、次回から使用頻度が少なくなるであろう座標a(x0,y0)のビンに優先的にバンクが割り当てられる一方、使用頻度が多くなるであろう頻度順位4位と5位(X1-Y1-47,X2-Y2-35)のバンクが重なってしまうことからも分かる。第2実施形態ではさらに、最新の統計的情報を算出する処理(S508)を設けたことにより、メモリアクセス頻度が刻々と変わる状況においても動的に対応することが可能となる。
<第3実施形態>
以下、本発明に係る第3実施形態について説明する。第3実施形態では、動画像データ処理等において、画像上を移動する特定の対象物体を追尾して認識するトラッキングを行う場合について説明する。なおここでは、上述した第1および第2実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については説明を省略する。なお第3実施形態においては、説明を簡単にするため、追尾する対象物体は画面上での平行移動しか行わないものとする。また、対象物体は1つに限定する。
図8は、第3実施形態の情報処理装置において行われるトラッキング処理を示すフローチャートである。まずS801で、上記図2のS201と同様に統計的情報(メモリアクセス頻度分布)の入力を行う。
次にS802でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S801で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S805)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
そしてS803で、第3実施形態の特徴である物体追尾処理を行う。すなわち、第1実施形態で説明した物体位置姿勢の認識処理(S203)により対象物体の位置姿勢を認識し、その際に生成された物体位置姿勢ヒストグラムと物体位置姿勢認識結果を出力する。そして、同一の対象物体について、前回の物体位置姿勢認識結果との差分から、画面上での対象物体の移動量および移動方向、すなわち速度ベクトルをホストプロセッサ15により算出し、対象物体の移動情報として出力する。
そして、S804でトラッキング終了と判定されるまで、S805で頻度分布予測処理を行った後にS802に戻り、処理を繰り返す。S805ではすなわち、S803の物体追尾処理において出力される物体の位置姿勢認識結果と移動情報を用いて、次回のメモリアクセス頻度分布を予測する。なお、S804におけるトラッキング終了の判定は、例えばユーザによる終了指示入力や、対象物体のフレームアウト等による追尾不能状態の発生に応じて行えば良い。
以下、S803における物体追尾処理について詳細に説明する。図9は前回生成された物体位置姿勢ヒストグラム例、図10は今回生成された物体位置姿勢ヒストグラム例を示す。第1実施形態で示した物体位置姿勢認識結果の算出方法によれば、最も投票数の多いビンに対応する位置姿勢が対象物体の位置姿勢であるから、図9、図10の例では、対象物体は座標a(x0,y0)からf(x5,y5)へ移動していることが分かる。したがって、速度ベクトルvは(x5-x0,y5-y0)として求められる。
以下、S805における頻度分布予測処理について、詳細に説明する。S805では第2実施形態のS508と同様に、次回のメモリアクセス頻度分布を予測する。第3実施形態の追尾処理において、対象物体の次の認識処理が行われる際には、統計的に対象物体が移動している可能性が高い。よって、メモリアクセス頻度分布も、その移動に従って分布が変わることが予想される。そこでS805では、S803の物体追尾処理において出力される物体位置姿勢ヒストグラムを、同S803で算出される速度ベクトルと、前回の物体追尾処理からの経過時間に従って平行移動させて、これを頻度分布予測結果として出力する。すなわち、前の処理から経過した時間分、対象物体は速度ベクトルに従って等速直線運動したものと仮定している。ここで、物体位置姿勢ヒストグラムは常に一定のレートで出力されているものとする。
図11は、S805における頻度分布予測例、すなわち、既に得られている図9、図10のヒストグラムに基づき、上記平行移動を行うことで得られるヒストグラム例を示す。なお、多少の移動のずれを考慮するため、平行移動後のヒストグラムにガウシアンフィルタを適用してもよい。S805では、このようにして得られたヒストグラムを、予測されるメモリアクセス頻度分布として出力する。なお、図11中の座標k,l,m,n,o以外の位置のビン(位置・姿勢とも)の頻度順位については、全て最下位とする。
第3実施形態のバンク割り当て設定処理(S802)においては、S805で予測・出力されるメモリアクセス頻度分布を新たな統計的情報として用い、各ビンに対応するメモリ領域のバンク割り当てを設定する。この割り当ての様子を図12に示す。なお図12では第1実施形態と同様に、メモリアクセス頻度が同程度のメモリ領域に対するバンク割り当てを分散させた例を示す。このとき、頻度順位が最下位のビンについてはバンクの再割り当てを行わず、アクセスが生じる可能性の高いビンに対して優先的にバンクの再割り当てを行うとする。
以上説明したように第3実施形態によれば、過去2回のメモリアクセス頻度分布に基づいて次回のメモリアクセス頻度分布を予測し、バンク割り当てを行うことで、次回のメモリアクセスをより効率良く行うことができる。さらに、メモリアクセス頻度に基づいてバンク割り当てを行うメモリ領域を限定するようにしたので、バンクの再設定処理に関わる負荷を低減することができる。
<第4実施形態>
以下、本発明に係る第4実施形態について説明する。第4実施形態も上述した第3実施形態と同様に、画像上の特定の対象物体を追尾するトラッキングを行う場合について説明するが、使用ビン数がバンク数よりも少ない場合を示す。なおここでは、上述した第1乃至第3実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については説明を省略する。
図13は、第4実施形態の情報処理装置において行われるトラッキング処理を示すフローチャートである。まずS1101で、上記図2のS201と同様に統計的情報(メモリアクセス頻度分布)の入力を行う。
次にS1102でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S1101で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S1106)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
S1102では図14に示すように、入力される統計的情報において、投票されているビンの数がバンク数(この場合、A〜Dの4つ)よりも少ない場合における、バンク割り当て設定を行う。第3実施形態では、第1実施形態と同様にメモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てを分散させるが、第4実施形態では、メモリアクセスが集中しているメモリ領域を複数に分散させ、それぞれに異なるバンクを割り当てる。以下、第4実施形態におけるバンク割り当ての具体例を図14を用いて説明する。
図14に示すように、メモリアクセスがある2つのメモリ領域にのみ発生しており、それぞれビン番号X-Y-20、X-Y-40によるものとする。第4実施形態では、4つのバンクを最大限に用いてビンへのアクセスを行う。そのために、まずビン番号X-Y-20に対し新たに2つのメモリ領域を割り当て(メモリ領域番号1,2)、さらにビン番号X-Y-40に対し新たに2つのメモリ領域を割り当てる(メモリ領域番号3,4)。そして、4つのメモリ領域それぞれに対し、異なるバンクを割り当てる。すなわち、メモリ領域番号1〜4に対し、バンクA〜Dをそれぞれ割り当てる。
続いてS1103でホストプロセッサ15が各演算部12に対し、ビン番号X-Y-20,X-Y-40にアクセスする際のメモリ領域を指定する。具体的には、各演算部12に付された番号をNとすると、各演算部12に指定される、ビン番号X-Y-20へのアクセス時のメモリ領域番号MN20は、MN20=(N mod 2)と表される。同様に、ビン番号X-Y-40へのアクセス時のメモリ領域番号MN40は、MN40=(2+(N mod 2))と表される。このようにメモリアクセス領域を指定することによって、1つのビン番号へのアクセスを2つのバンクに分散して行うことが可能となる。
次にS1104で、第3実施形態のS803と同様に物体追尾処理を行うが、第4実施形態ではこのとき、S1102のバンク割り当て設定処理においてで複数のメモリ領域に分散されたビンの統合処理を行う。すなわち、ビン番号X-Y-20に割り当てられた2つのメモリ領域の投票結果の合計を算出し、それをビン番号X-Y-20の得票数とする。ビン番号X-Y-40についても同様である。この統合後の得票数を用いて統計的情報算出処理を実行し、対象物体の位置姿勢を認識する。
以降は第3実施形態と同様に、S1105で処理終了と判定されるまで、S1106で予測されたメモリアクセス頻度分布に従って、S1102でバンク割り当てを繰り返す。
以上説明したように第4実施形態によれば、メモリアクセスが集中するメモリ領域を複数に分散して異なるバンクを割り当てることで、バンク・コンフリクトが低減される。
<その他の実施形態>
上記各実施形態では、データのメモリアクセスにおける統計的情報に基づいてバンクの割り当てを設定することで、バンク・コンフリクト低減効果を高める例を示した。また統計的情報としては、メモリアクセス頻度と関連付けられる情報であれば、図3に示すヒストグラムに限らず、どのようなものであってもよい。例えば、メモリのアクセス頻度を直接計測する手段から出力される情報であっても良いし、メイン処理の過程で生じる情報を使用しても良い。
例えば第2実施形態においては、メモリアクセス監視処理の際に得られるメモリアクセス頻度分布と、物体位置姿勢の認識処理から出力される部品の位置姿勢認識結果に基づいた統計的情報を使用する例を示した。これに代えて、物体位置姿勢の認識処理内で生成される物体位置姿勢ヒストグラムと、部品の位置姿勢認識結果に基づいた統計的情報を使用してもよい。
また第2実施形態では、ピッキング対象となった部品位置およびその周辺領域を除くヒストグラムを作成するために予め設定された矩形領域を適用する例を示したが、部品の形状に応じて任意の領域形状を適用することも可能である。
また第3実施形態では、物体追尾処理から出力される物体位置姿勢ヒストグラムを、対象物体の移動情報に基づいて平行移動させたものを統計的情報として使用する例を示した。これに代えて、対象物体の姿勢情報から得られる姿勢ベクトルと速度ベクトルとを加算したベクトルに基づいて、物体位置姿勢ヒストグラムを平行移動したものを統計的情報として用いても良い。また、説明を簡単にするために対象物体は画面上での平行移動しか行わないとしたが、回転や拡大縮小、さらには3次元空間内での移動等にも対応することは可能である。例えば、回転が起こる場合、回転軸と回転方向、回転量が物体追尾処理から出力されることになるが、その情報を用いて物体位置姿勢ヒストグラムを回転させたものを統計的情報として使用することができる。
さらに、バンク割り当て設定方法は、統計的情報に基づいていればどのような方法であっても良い。例えば第1実施形態では、統計的情報の頻度分布の頻度順に順次バンクを割り当てる例を示したが、頻度値に閾値を設け、該閾値以上の頻度値を持つ箇所に対し、順次バンクを割り当てるようにしても良い。この場合、該閾値未満の頻度値となる個所については、予め定められたパターンに基づいてバンクを割り当てる、または所定の汎用バンクを割り当てる、またはバンク割り当てずに処理対象外とする、等の対応が考えられる。
さらに、第1実施形態ではメモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てを分散させる例を示し、また第2実施形態では各バンクに対するアクセス頻度を平均化する例を示したが、他の規則に従ってバンク割り当てを設定しても良い。例えば、頻度分布がある程度ブロードになっている場合は、ピーク周辺で各バンクができるだけ重ならないように設定しても良い。具体的には、ピーク位置を中心に所定の閾値以上の頻度値を持つビンに対し、隣り合うビンにはそれぞれ異なるバンクを適用する。なお、その場合の閾値は手動で与えても良いし、分布の平均や分散といった統計的情報等を用いて自動設定しても良い。
また第4実施形態では、アクセスが集中するメモリ領域が2か所である例を示したが、第4実施形態におけるバンクの割り当て方法は、アクセスが集中するメモリ領域がバンク数よりも少ない場合に適用可能である。なお、第4実施形態では各メモリ領域を均等に分散させる例を示したが、例えばアクセス頻度が高いビンをより多くのメモリ領域に分散させるようにしても良い。また、メモリアクセス頻度に閾値を設け、該閾値以上のビンについて、第4実施形態のバンクの割り当て方法を適用しても良い。
なお、上記各実施形態では、物体位置姿勢の認識処理に対し、バンク割り当て制御を行う例を示したが、バンク割り当て制御が適用される処理(メイン処理)としては、メモリアクセスを行う処理であればどのようなものであっても良い。例えば、複数の演算素子が同一のメモリからデータを読み出す辞書引き処理等、他の任意のメモリアクセス処理に対しても適用可能である。
また本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するコンピュータ読取り可能なソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段によるメモリアクセスを制御する情報処理装置であって、
    前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力する入力手段と、
    前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当てる割り当て設定手段と、
    前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御するアクセス制御手段と、
    を有することを特徴とする情報処理装置。
  2. さらに、前記統計的情報を動的に算出する算出手段を備え、
    前記入力手段は、前記算出手段で算出された前記統計的情報を入力し、
    前記割り当て設定手段は、前記算出手段で算出された前記統計的情報に基づいて、前記バンクを動的に割り当てることを特徴とする請求項1に記載の情報処理装置。
  3. 前記アクセス対象データは画面上を物体が移動する動画像データであり、
    前記算出手段は、前記物体の移動量および移動方向を示すベクトルに基づいて、前記統計的情報を算出することを特徴とする請求項2に記載の情報処理装置。
  4. 前記統計的情報は、前記複数のアクセス対象データに対する、所定期間の前記メモリへのアクセス頻度であることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記割り当て設定手段は、前記アクセス頻度が前記複数のバンクに分散するように割り当てることを特徴とする請求項4に記載の情報処理装置。
  6. 前記割り当て設定手段は、前記アクセス頻度が前記複数のバンクで平均化するように割り当てることを特徴とする請求項4に記載の情報処理装置。
  7. 前記割り当て手段は、前記アクセス対象データのうち、前記アクセス頻度が所定の閾値以上であるものに対して前記複数のバンクのいずれかを割り当て、前記アクセス頻度が前記閾値未満であるものに対しては所定のバンクを割り当てることを特徴とする請求項4乃至6のいずれか1項に記載の情報処理装置。
  8. 複数の演算手段と、複数のバンクを有するメモリ、および、入力手段、割り当て設定手段、アクセス制御手段を備え、該複数の演算手段から前記メモリへのアクセスを制御する情報処理装置におけるメモリアクセス制御方法であって、
    前記入力手段が、前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力し、
    前記割り当て設定手段が、前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当て、
    前記アクセス制御手段が、前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御する
    ことを特徴とするメモリアクセス制御方法。
  9. コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至7のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
JP2013067126A 2013-03-27 2013-03-27 情報処理装置およびメモリアクセス制御方法 Active JP6195342B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013067126A JP6195342B2 (ja) 2013-03-27 2013-03-27 情報処理装置およびメモリアクセス制御方法
US14/224,145 US9946645B2 (en) 2013-03-27 2014-03-25 Information processing apparatus and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013067126A JP6195342B2 (ja) 2013-03-27 2013-03-27 情報処理装置およびメモリアクセス制御方法

Publications (3)

Publication Number Publication Date
JP2014191621A true JP2014191621A (ja) 2014-10-06
JP2014191621A5 JP2014191621A5 (ja) 2016-05-19
JP6195342B2 JP6195342B2 (ja) 2017-09-13

Family

ID=51622020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013067126A Active JP6195342B2 (ja) 2013-03-27 2013-03-27 情報処理装置およびメモリアクセス制御方法

Country Status (2)

Country Link
US (1) US9946645B2 (ja)
JP (1) JP6195342B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
KR102346629B1 (ko) * 2014-12-05 2022-01-03 삼성전자주식회사 메모리 접근 제어 방법 및 장치
JP6700712B2 (ja) 2015-10-21 2020-05-27 キヤノン株式会社 畳み込み演算装置
JP2019091191A (ja) * 2017-11-14 2019-06-13 ルネサスエレクトロニクス株式会社 半導体装置、データ処理システム、データ読取り方法、及びデータ読取りプログラム
JP7361551B2 (ja) 2019-09-20 2023-10-16 キヤノン株式会社 デバイス、制御方法、及びプログラム
JP2021047827A (ja) * 2019-09-20 2021-03-25 キヤノン株式会社 デバイス、システム、制御方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269348A (ja) * 2007-04-20 2008-11-06 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2009520295A (ja) * 2005-12-20 2009-05-21 エヌエックスピー ビー ヴィ 共有メモリバンクを有するマルチプロセッサ回路
JP2010205002A (ja) * 2009-03-04 2010-09-16 Seiko Epson Corp 画像処理装置
JP2012515381A (ja) * 2009-01-12 2012-07-05 マイクロン テクノロジー, インク. メモリシステムを監視するシステムおよび方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0727076B1 (en) * 1993-11-02 1997-10-22 Taligent, Inc. Object-oriented graphic system and method
JP2003323339A (ja) * 2002-03-01 2003-11-14 Sony Computer Entertainment Inc メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体
JP5820973B2 (ja) * 2010-12-28 2015-11-24 パナソニックIpマネジメント株式会社 データ記録装置
JP2012242821A (ja) * 2011-05-16 2012-12-10 Sony Mobile Communications Inc 表示画像生成方法
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009520295A (ja) * 2005-12-20 2009-05-21 エヌエックスピー ビー ヴィ 共有メモリバンクを有するマルチプロセッサ回路
JP2008269348A (ja) * 2007-04-20 2008-11-06 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2012515381A (ja) * 2009-01-12 2012-07-05 マイクロン テクノロジー, インク. メモリシステムを監視するシステムおよび方法
JP2010205002A (ja) * 2009-03-04 2010-09-16 Seiko Epson Corp 画像処理装置

Also Published As

Publication number Publication date
US20140297989A1 (en) 2014-10-02
JP6195342B2 (ja) 2017-09-13
US9946645B2 (en) 2018-04-17

Similar Documents

Publication Publication Date Title
JP6195342B2 (ja) 情報処理装置およびメモリアクセス制御方法
CN107895191B (zh) 一种信息处理方法及相关产品
US11507382B2 (en) Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
KR102402111B1 (ko) 콘볼루션 신경망 정방향 연산 실행용 장치와 방법
EP3369045B1 (en) Determining orders of execution of a neural network
US11704553B2 (en) Neural network system for single processing common operation group of neural network models, application processor including the same, and operation method of neural network system
US10831547B2 (en) Accelerator control apparatus for analyzing big data, accelerator control method, and program
KR102610820B1 (ko) 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
US10013628B2 (en) Information processing apparatus and information processing method
JP2018077842A (ja) 畳み込み神経網処理方法及び装置
JP2011059819A (ja) 情報処理方法及び装置
JP5388835B2 (ja) 情報処理装置及び情報処理方法
CN111295675A (zh) 用于使用内核来处理卷积运算的设备和方法
US10782897B2 (en) Memory reduction for neural networks with fixed structures
US20200110609A1 (en) Computing device and method
US10078596B2 (en) Data processing method, computer readable medium and data processing device
CN111124644B (zh) 任务调度资源的确定方法、装置及系统
JP7402623B2 (ja) フィルタ処理装置及びその制御方法
CN111523642A (zh) 用于卷积运算的数据重用方法、运算方法及装置、芯片
US11500767B2 (en) Method and device for determining a global memory size of a global memory size for a neural network
CN116069480A (zh) 一种处理器及计算设备
Zhang et al. Online task scheduling for LiDAR data preprocessing on hybrid GPU/CPU devices: A reinforcement learning approach
JP6964969B2 (ja) 演算処理装置、演算処理方法及びプログラム
KR101204866B1 (ko) 윈도우 기반 영상 처리에서 고속으로 윈도우 영역 내 화소 연산을 수행하기 위한 방법 및 장치
CN114090466A (zh) 一种指令处理装置、方法、计算机设备及存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170810

R151 Written notification of patent or utility model registration

Ref document number: 6195342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151