JP6680454B2 - Lsiチップ積層システム - Google Patents

Lsiチップ積層システム Download PDF

Info

Publication number
JP6680454B2
JP6680454B2 JP2014053387A JP2014053387A JP6680454B2 JP 6680454 B2 JP6680454 B2 JP 6680454B2 JP 2014053387 A JP2014053387 A JP 2014053387A JP 2014053387 A JP2014053387 A JP 2014053387A JP 6680454 B2 JP6680454 B2 JP 6680454B2
Authority
JP
Japan
Prior art keywords
processor
communication
chip
image
memory
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
JP2014053387A
Other languages
English (en)
Other versions
JP2015176435A (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.)
Utsunomiya University
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Utsunomiya University
National Institute of Advanced Industrial Science and Technology AIST
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 Utsunomiya University, National Institute of Advanced Industrial Science and Technology AIST filed Critical Utsunomiya University
Priority to JP2014053387A priority Critical patent/JP6680454B2/ja
Publication of JP2015176435A publication Critical patent/JP2015176435A/ja
Application granted granted Critical
Publication of JP6680454B2 publication Critical patent/JP6680454B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Description

本発明に係るいくつかの態様は、LSIチップ積層システムに関する。
接続仕様を標準化したLSIチップを必要に応じて積層してシステムを構築する手法では、要求にあったシステムを容易に低コストで実現可能である。また、チップ積層によりシステムをコンパクトに実装すると、チップ間の信号の伝送容量や遅延、消費電力などをチップ内の値に近づけることが可能となるため、結果としてシステム全体の動作速度を向上させ、また消費電力を低減させることが可能となる。また、積層チップ間の接続を貫通バスで行うことにより、例えば1000本以上の信号線でLSI間を接続することができる。
このような1000本以上の多数の信号線を有効に活用してチップ間の通信を行うアプリケーションとしては、例えば画像データを複数のチップのプロセッサ間に対して受け渡して、それぞれのプロセッサで分散して並列処理することが考えられる。しかしながら、処理の全ての段階で全ての信号線を使用した通信が必要となることは稀である。
また、複数の処理のそれぞれを複数のプロセッサが分担する場合、各処理の稼働状況及び通信状況は、一般的にはアプリケーションの入力データに依存する。そのため、システム実行時には、処理量や通信量に不均衡が生じる。より具体的には、例えば、一部の通信量が増加してアプリケーションに要求される通信時間制約を満たせなくなる一方で、別の場所では通信に余裕があるという状況が起こり得る。
そのため、LSIチップ積層システムの処理対象アプリケーションにおいて、処理に応じて必要な通信路を割り当て、多数の信号線を有効に活用する方法が求められている。
チップ積層システムに関する先行技術としては、例えば特許文献1に開示されたものがある。特許文献1に記載されている技術は、チップ積層システムのチップ間のバス信号線とスイッチとの接続方法に関するものであって、論理的に複数の通信を同時に行うシステムについての技術である。
また、並列システムを実行する方法は、例えば特許文献2に開示されている。特許文献2に記載された技術は、ヘテロジニアス・マルチコアプロセッサにおけるソフトウェアの並列実行方式に関するものであって、ソフトウェアを実行するプロセッサの割り当てに関するものである。
並列システムを設計する際のプログラミングの方法としては、例えば非特許文献1及び非特許文献2において原理的なプログラミングモデルが示された、KPN(Kahn Process Network)モデルを用いた設計が考えられている。
非特許文献3においては、データフロー型プロセスネットワークの総説がなされており、それらの中でKPNの位置づけが示されている。
非特許文献4では、システム設計者がKPNを用いて容易にプロセスネットワークを設計し、実行可能なソフトウェアを出力することができる設計ツールについて述べられており、その設計手法はCompaan/Lauraのアプローチと名付けられている。このツールでは、C言語によるYAPIというプログラミングインタフェースを用いたプロセスネットワークの設計が可能であり、各プロセスの実装にはC言語のソフトウェアもしくはFPGA上のハードウェアを用いることが想定されている。更に、JPEG画像圧縮方式のアルゴリズムのKPNをFPGAにマッピングする事例も非特許文献4には開示されている。
非特許文献5では、車載用画像認識アプリケーションのKPNをFPGA上にマッピングして、高性能な画像認識処理を行う事例が示されている。当該非特許文献5では、各プロセスは固定的なデータフローのKPNだけではなく、制御のためのメッセージを伝えるためのControl BUSを持つことで、状況に応じたシステムのパラメータ調整が可能であることも示されている。
非特許文献6においては、KPNをNoC(ネットワークオンチップ)プラットフォームにマッピングする手法が示されており、ここでは4ステップでのマッピングが提案されている。当該マッピング手法では、1つ目のステップにおいて各プロセスの機能(入力に応じて出力を計算する)を実装し、2つ目のステップにおいて、通信路の論理的若しくは物理的な割り当てを行う。3つ目のステップにおいてNoCのトポロジ(各プロセッサの接続状況)を決定し、4つ目のステップにおいて、プロセス間通信用FIFOバッファの割り当てを行う。ただし、このアプローチは、アプリケーションのKPNに応じてNoCを設計するものである。また、ステップ2の通信路の割り当てや、ステップ4のFIFOバッファの割り当てについての具体的な手法は示されていない。
特開2011−113516号公報 特開2011−028705号公報 G. Kahn、 "The semantics of a simple language for parallel programming、" Proc. of the IFIP Congress 74. North-Holland Publishing Co.、 1974 Kahn、 Gilles、 and David MacQueen. "Coroutines and networks of parallel processes." (1976). Lee、 Edward A.、 and Thomas M. Parks. "Dataflow process networks." Proceedings of the IEEE 83.5 (1995): 773-801. Stefanov、 Todor、 et al. "System design using Khan process networks: the Compaan/Laura approach." Design、 Automation and Test in Europe Conference and Exhibition、 2004. Proceedings. Vol. 1. IEEE、 2004. Nikolov、 Hristo、 Todor Stefanov、 and Ed Deprettere. "Modeling and FPGA implementation of applications using parameterized process networks with non-static parameters." Field-Programmable Custom Computing Machines、 2005. FCCM 2005. 13th Annual IEEE Symposium on. IEEE、 2005. Nejad、 Ashkan Beyranvand、 et al. "Mapping kpn models of streaming applications on a network-on-chip platform." ProRISC 2009: Proceedings of the Workshop on Signal Processing、 Integrated Systems and Circuits. 2009.
しかしながら、LSIチップ積層システムは、複数のプロセッサとチップ間をつなぐ通信路を含んでいるが、通信路をどのように使用するかについて、従来は具体的な検討が十分になされていなかった。そのため、複数のチップに配置されたプロセッサ間の通信における、データ通信容量の保証や通信データの到達最大遅延時間の保証が難しく、大容量のデータ通信を行いながらもリアルタイム性が要求されるシステムの設計が困難であるという課題があった。
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、複数のプロセッサを含むLSIチップ積層システムにおいて、チップ間の多数の信号線を好適に利用することを可能とするLSIチップ積層システムを提供することを目的の1つとする。
本発明に係るLSIチップ積層システムは、画像データに対するプロセスを実行可能な1以上のプロセッサが搭載された複数のプロセッサチップと、前記プロセッサが入力及び出力する画像データを記憶することのできるメモリを含むメモリチップと、互いに積層された複数の前記プロセッサチップ及び前記メモリチップの間を、通信可能に接続する複数の信号線を含む貫通バスとを含むLSIチップ積層システムであって、複数の前記プロセッサチップは、前記貫通バスを介して前記メモリチップに記憶された画像データを同時に読み込み、複数の前記プロセッサチップ上の前記プロセッサで実行される各プロセスは、それぞれ前記画像データを処理する。
なお、本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や「手段」、「装置」、「システム」が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や「手段」、「装置」、「システム」の機能が1つの物理的手段や装置により実現されても良い。
本発明の実施形態に係る画像認識処理のプロセスネットワークの構成例を示す図である。 縮小画像の倍率と解像度の具体例を示す図である。 逐次反復による縮小処理のプロセスネットワークの構成例を示す図である。 個別倍率による縮小処理のプロセスネットワークの構成例を示す図である。 逐次反復による縮小処理のプロセスネットワークにおける通信量の例を示す図である。 個別倍率による縮小処理のプロセスネットワークにおける通信量の例を示す図である。 従来システムにおける縮小処理の各プロセスの処理時間の測定結果を示す図である。 従来システムにおけるデータの入出力の構成例を示す図である。 本実施形態に係るLSIチップ積層システムの概略構成の具体例を示す図である。 逐次反復による縮小処理を図9に示すLSIチップ積層システムにマッピングした例を示す図である。 画像データの読み取り順について説明するための図である。 超並列貫通バスへの画像通信の割当て例を示す図である。 仮想通信チャネルの時分割による割当て例を示す図である。 個別倍率による縮小処理を図9に示すLSIチップ積層システムにマッピングした例を示す図である。 個別倍率による縮小処理に係る超並列貫通バスへの画像通信の割当て例を示す図である。 個別倍率及びブロードキャストによる縮小処理のプロセスネットワークにおける通信量の例を示す図である。 個別倍率及びブロードキャストに係る超並列貫通バスへの画像通信の割当て例を示す図である。 各プロセスネットワークのLSIチップ積層システムへのマッピングにおける通信量の比較を示す図である。 各プロセスネットワークのLSIチップ積層システムへのマッピングにおける通信量の比較を示す図である。 同期処理を含む縮小処理のプロセスネットワークの具体例を示す図である。 各プロセスネットワークをLSIチップ積層システムへマッピングした際の消費電力の試算の比較を示す図である。
以下に本発明の実施形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
ここで説明する一実施形態は、1以上のプロセッサが搭載されたプロセッサチップが複数積層されたLSIチップ積層システムに係る。LSIチップ積層システムに含まれる各プロセッサチップは、各プロセッサチップ間を貫通する数千に及ぶビア(信号線)を介して高速に通信できる。以下では、これら貫通ビアからなる信号線の束を超並列貫通バスとも呼ぶ。
LSIチップ積層システムは、各層のプロセッサにより並列処理を行うとともに、各層のプロセッサ間で高速にデータを送受信することができることから、様々な用途に用いることができる。例えば、LSIチップ積層システムを用いれば、複数の静止画像の組み合わせにより構成される動画像に対する画像処理を、各層に含まれる各プロセッサを用いた並列処理により高速に、且つ超並列貫通バスの一特徴でもある低消費電力で、実行できる。当該画像処理においては、例えばKPN(Kahn Process Network)モデルを用いて、各プロセッサで独立して動作可能なプロセスの組み合わせが設計される。
画像処理の具体例としては、例えば画像認識処理がある。画像認識処理により、例えば自動車走行時に車載カメラの画像をもとに道路、歩行者、他車等を認識することができるようになるので、安全性を向上させることができる。また、動画像から特定の事象を検出するビデオマイニング処理、防犯カメラにおける異常事態の検知や、独居老人の見守りなどに、画像認識処理を用いることもできる。
画像認識処理にKPNモデルを用いる場合には、画像認識処理全体としては、図1に示すようなKPN構成が考えられる。図1において、丸で示されている処理P1乃至P6は、それぞれ独立して動作可能なプロセスに相当し、例えばプログラミングモジュールとしてLSIチップ積層システムに実装することができる。
この画像認識処理システムは、入力画像に対して前処理(P1)を行った後、様々なサイズの画像を生成する縮小画像生成(P2)を行う。その後、画像認識処理システムは、生成された様々なサイズの縮小画像から、例えば線の曲がり角等の画像中の特徴点の抽出(P3)を行い、それぞれの特徴点についてどのような特徴を持つかを示す特徴量を計算する(P4)。その結果得られた特徴量について、データベースとのマッチングや機械学習(P5)を行い、最終的な画像認識結果を出力する(P6)。それぞれのプロセスは、コントローラプロセス20から制御される。
コントローラプロセス20は、画像認識処理システムを構成する複数のプロセスの処理及びプロセス間の通信手順を記述することによりシステムの動作を記述する。また、コントローラプロセス20は、実行時に、LSIチップ積層システムに含まれる各プロセッサに対して各プロセスを割り当て、また、プロセス間の論理的な通信をLSIチップ積層システム内の物理的な通信チャネルに割り当てる。
プロセスP5における特徴量としては、例えば、スマートフォンにおけるAR(Augmented Reality:拡張現実)アプリケーションで用いられることの多いORB特徴量を用いることができる。ORB特徴量の計算においては、入力画像中の物体のサイズが違っても同じ物体であることを認識するために、画像認識処理システムは、入力画像を様々な倍率で縮小した画像を用意して特徴量を計算する。画像認識処理全体のうち、縮小画像生成は図1のプロセスP2に示されるようにKPN全体構成の一部にすぎない。動画像を対象とする画像認識処理では逐次画像が入力されるため、画像認識処理のうち一部に過ぎない縮小画像の生成処理(P2)では、超並列貫通バスの通信容量の全体を使用することはできない。よって、性能要求を満たすことが可能であれば、画像縮小処理にかかる通信量を節約すべきことが分かる。
そこで、本実施形態におけるLSIチップ積層システムの設計及びアプリケーションKPNのマッピングにおける目標は、性能、消費エネルギー、瞬時消費電力、ハードウェアコストといったパラメータを、要求にあわせて最適化することである。最終的には、図1に示すような対象アプリケーション(画像認識処理システム)の、KPN全体に対するトレードオフを見つけることが目標である。以下の議論では、上記の画像認識処理のうちP2の画像縮小処理の内部についての設計について検討する。
オープンソースのコンピュータビジョン向けライブラリOpenCVにはORB特徴量を計算する実装が含まれる。本実施形態における実装においては、画像認識処理システムは、8種類のサイズの縮小画像を作成する。すなわち元画像のサイズを1として、1.2倍ずつ繰り返し画像を縮小することで、計8つの縮小倍率の画像を作成する。作成した画像は、以降のORB特徴量の計算における入力データとして用いることができる。
なお、本実施形態では、画像を7段階に渡って縮小処理を行う場合を例に説明を行うが、これに限られるものではない。例えば、画像の変換処理は7段階に限られるものではなく、6以下若しくは8以上の段階で変換処理を行っても良い。また、変換処理は縮小処理に限られるものではなく、拡大処理を行っても良い。
図2は、ORB特徴量の計算に用いる8種類の縮小画像の倍率と解像度(幅(Width)及び高さ(Height))、並びにデータ量の具体例を示している。各画像サイズは縮小倍率1.2で等比的に並べたものとなっている。この例では、入力画像のサイズは幅4096画素、高さ2304画素としている。画像は8ビットのグレイスケールであることを想定し、データ量は1画素あたり1Byteとして計算している。画像サイズは入力画像が約9.4MBとなり、最も小さい画像で約0.7MBとなる。以下、必要に応じて元画像を1/1.2倍した画像を生成する処理を処理A(プロセスA)、1/1.2倍した画像の更に1/1.2倍した画像(元画像を1/1.44倍した画像)を生成する処理を処理B(プロセスB)とし、これを、元の画像の約1/3.58倍した画像を生成する処理G(プロセスG)まで同様とする。
このように8つの縮小倍率の縮小画像を生成する処理を行うプロセスネットワークの設計事例を以下に説明する。図3は、基本の処理単位として入力画像を1/1.2倍に縮小する「縮小変換 1/1.2」というプロセスA乃至Gを7つ繋ぎ、各段階で1/1.2倍の縮小を繰り返すことで、8種類の倍率の縮小画像を作成するプロセスネットワーク(以下、逐次反復によるプロセスネットワークとも呼ぶ。)を示している。プロセスネットワークを構成するプロセスA乃至Gの7つのプロセスは、画像データを入力し・縮小変換し・出力する処理を互いに独立して行う。
一方、図4は、7種類の縮小倍率のプロセスを繋ぎ、元画像から8種類の倍率の縮小画像を作成するプロセスネットワーク(以下、個別倍率によるプロセスネットワークとも呼ぶ。)を示している。当該プロセスネットワークはプロセスA乃至Gの7つのプロセスにより構成される。各プロセスは、画像データを入力し・縮小変換し・出力する処理を独立して行う。
図3及び図4の各プロセスネットワークにおいて、各プロセス間のFIFOは、メモリ要素として使用されるバッファである。各プロセスは入力バッファに処理対象の入力データがあれば処理を行い、出力バッファにデータを出力する。各プロセスは他のプロセスの状態には直接依存することはなく、バッファの状態のみに応じて処理を行う。そのため、適切なバッファ量(幅及び深さ)を選択することにより、各プロセスの並列動作可能性を向上させることが可能となる。
なお、画像データは数MBのサイズがあるため、プロセス間のFIFOは一般的にはプロセッサチップの外部チップ上メモリに配置することが多い。但し、画像を適切に分割し処理することによりプロセッサチップ上のメモリに格納することも可能である。本実施形態においては、FIFOは、プロセスチップ上のメモリと、LSIチップ積層システム内の別チップ上のメモリに割り当てることができる。
図5は、図3の構成の逐次反復による縮小処理のプロセスネットワークにおける、各プロセスの通信量を示したものである。この例では認識処理として要求される毎秒10フレームの処理を行うことを想定している。例えばプロセスAでは1秒間に9.4MBの画像を10枚読み込み、6.5MBの画像を10枚書き出すため、読込み速度(Read)94MB/s、書込み速度(Write)65MB/sという通信量となっている。他のプロセスも同様である。
図6は、図4の構成の個別倍率の縮小処理によるプロセスネットワークにおける、各プロセスの通信量を示したものである。この例においても毎秒10フレームの処理を行うことを前提としている。図5との違いは、各プロセス読込み(Read)のデータ量が全て94MB/sとなっていることである。各倍率の縮小画像を後の処理で用いるため、書込み(Write)のデータ量は、図5と同じである。
図5及び図6の通信量の比較から、プロセッサチップと外部チップメモリをプリント配線基板上で接続する形の従来のコンピュータシステムにおいては、図5に示す逐次反復による縮小処理のプロセスネットワーク型の処理の方が用いられることが好ましい。実際に、OpenCV2.4.6.1のORB特徴量計算における画像縮小の処理においては、逐次反復による縮小処理が行われている。
解像度:4096×2380の入力画像を用い、従来型のコンピュータシステム(CPU:AMD Phenom II 905e(2.5GHz))上でライブラリOpenC
V ver2.4.6.1を用いた逐次反復による縮小処理と、個別倍率による縮小処理の、プロセス毎の処理時間を個別に計測した結果を、図7に示す。縮小アルゴリズムは線形補間法である。いずれも小さい画像を出力するプロセスほど処理時間が短縮されていることが分かる。但し、全ての場合において逐次反復による縮小処理の方が、個別倍率による縮小処理よりも短時間で処理が完了している。これは、逐次反復による縮小処理において、入力画像の通信量が少ないためだと考えられる。
KPNを用いない従来型の画像処理システムにおいては、一般的にメモリから画像データを画素単位で読み出し、演算処理(ここでは縮小処理)を行い、メモリに処理結果の画像データを画素単位で書き込む、というプログラミング方法が取られることが一般的である。図8に示すように、プロセッサとメモリの間のバスに、入力データと出力データが交互に転送される。
ただし、通信量を削減して処理時間を短縮したいという要求から、画素単位でプロセッサチップとメモリチップの間の通信は削減するようなキャッシュ機構が設けられることが一般的である。すなわち、プロセッサチップ上のキャッシュメモリ上で画像データの読み書きを行って処理をして、メモリチップとキャッシュメモリの間の通信は適切なタイミングで、なるべくまとめて行う、という戦略の機構が搭載されていることが多い。しかしながら、プログラマからはキャッシュを制御することは難しいため、メモリアクセスに起因する遅延時間を削減して性能を向上するためには、様々なノウハウを駆使する必要があった。
一方、KPNを用いて画像処理を行う際には、プロセスの内部の処理はプロセッサチップ内で行われることが想定される。そしてプロセス間のFIFOをメモリチップにマッピングした場合には、プロセスの外部に処理結果を書きだす際に、メモリチップへの転送が行われる、と整理して考えることで、メモリアクセスのためのチップ間通信を意識しながら制御することが可能となる。一方、プロセス間のFIFOをプロセッサチップ内のチップ内メモリにマッピングした場合には、チップ間通信は発生しない。
ここまで説明した画像縮小処理のプロセスネットワークを、複数のLSIチップを含むLSIチップ積層システムにマッピングする方法を以下に述べる。マッピングにおいて最適化すべきパラメータは、性能、消費エネルギー、瞬時消費電力、ハードウェアコスト等である。
以下、図9を参照しながら、本実施形態におけるLSIチップ積層システムの概略構成の具体例を示す。図9は、本実施形態におけるLSIチップ積層システム100の概略構成を示す図である。図9の例において、LSIチップ積層システム100は、大きく分けて、プロセッサチップ110A乃至110G(プロセッサチップ110A乃至110Gを総称して、以下プロセッサチップ110とも呼ぶ。)と、メモリチップ120と、超並列貫通バス130A乃至130D(以下、超並列貫通バス130A乃至130Dを総称して超並列貫通バス130とも呼ぶ。)とを含む。
プロセッサチップ110は、プロセッサ140A乃至140D(以下、総称してプロセッサ140とも呼ぶ。)により各種演算処理を行うLSIである。プロセッサ140A乃至140Dは、それぞれチップ内メモリ150A乃至150D(以下、総称してチップ内メモリ150とも呼ぶ。)を一時記憶媒体として使用しながら演算処理を行うことができる。なお、各プロセッサチップ110に搭載されるプロセッサ140及びチップ内メモリ150の数は4つに限られるものではなく、3以下(単数でも良い)、あるいは5以上であっても良い。
また、本実施形態におけるLSIチップ積層システム100では、複数のプロセッサチップ110が積層し、超並列貫通バス130を介してそれぞれメモリチップ120と通信可能である。本実施形態において、プロセッサチップ110は7層積層しているがこれに限られるものではなく、6層以下であっても8層以上であっても良い。
メモリチップ120は、プロセッサチップ110がデータの入出力の際に使用することのできるメモリである。特に本実施形態においては、例えばあるプロセッサチップ110で実行されるプロセス(プログラムモジュール)との間でデータの入出力を行うバッファ(FIFO)は、例えばメモリチップ120上に確保することができる。各プロセッサチップ110のプロセッサ140は、メモリチップ120上に確保されるバッファ(FIFO)にデータが存在すればプロセスの実行を開始し、当該プロセスにより生成されたデータを、同じくメモリチップ120上に確保される別のバッファにデータを出力することができる。
超並列貫通バス130は、各プロセッサチップ110を貫通して設けられ、各プロセッサチップ110及びメモリチップ120を相互に通信可能とする。本実施形態に係るLSIチップ積層システム100において、超並列貫通バス130には千を超える多数の信号線が含まれる。更にLSIチップ積層システム100では、これらの信号線を4つの束に分け、それぞれを超並列貫通バス130A乃至130Dとして、物理的に異なるチャネルとして使用するようにしている。なお、超並列貫通バス130の物理的な分割数は4つに限られるものではなく、3以下や5以上であっても良い。
図10に、逐次反復による縮小アルゴリズムをLSIチップ積層システム100にマッピングした例を示す。図10におけるマッピングの特徴は、7つのプロセッサチップ110を使用すること、各プロセッサチップ110が完全に独立に動作可能であり各縮小変換プロセスの同期は不要であることである。
図10の例において、各プロセッサチップ110には、前述のとおり4つのプロセッサ140及び4つのチップ内メモリ150が搭載されている。各縮小処理プロセスは、各プロセッサチップ110に含まれるプロセッサ140を4つ使用しても1つだけ使用しても構わない。また、プロセッサ140は、画像処理のための専用ハードウェアであっても良い。
図10の構成において、各FIFOバッファは、メモリチップ120上に割り当てられる。FIFOがメモリチップ120上に割り当てられているので、FIFOから読み出す際にはメモリチップ120からプロセッサチップ110へのチップ間通信を、超並列貫通バス130を通じて行う必要がある。また、FIFOに書き込む際には、プロセッサチップ110からメモリチップ120への通信を、超並列貫通バス130を通じて行う必要がある。プロセッサチップ110間の通信量は図5と同等になる。
図10では、通信する画像データの量が示されている。最初の入力画像を入力とする縮小変換プロセスAにおいては、1枚当たりのデータ量は9.4MBとなる。現在の半導体LSI技術において、プロセッサチップ上に9.4MB以上のメモリ(特に高速なSRAM)を搭載するコストは極めて高い。これはDRAMやフラッシュメモリに特化したメモリチップ120において数GBのメモリを集積可能であることとは対照的である。そのため、プロセッサチップ110上に9.4MBを格納可能なメモリを搭載するのではなく、また処理対象の画像は一斉に読み出すのではなく、細分化して画像の一部のみをメモリチップ120からプロセッサチップ110に転送及び処理し、結果をメモリチップ120に転送することが望ましい。画像の細分化の方法は、処理の内容、すなわちどの画素を入力として出力画素を計算するかに依存する。画像縮小処理において画像を上から下に向かってスキャンして処理することを想定すると(図11参照)、細分化の単位としては水平方向の1ライン分すなわち4096(4KB)もしくは数ライン分が考えられる。
図12に、超並列貫通バス130を通じてチップ間通信を行う場合の、超並列貫通バス130への画像通信の割当て例を示す。プロセッサチップ110上で実行される各プロセスは、メモリチップ120上のFIFOにデータがあるかどうかを判断し、データがある場合には超並列貫通バス130を通じてデータをメモリチップ120上にあるFIFOから読み出す。プロセッサチップ110上の各プロセスは、FIFOから読み出したデータを処理し、処理結果は超並列貫通バス130を通じてメモリチップ120上にあるFIFOに書き込む。
この際、メモリチップ120上のFIFOにデータがあるかどうかの判断には、メモリチップ120上にFIFO集中管理テーブルを持たせて使用する方法、もしくは、各プロセッサチップ110上のチップ内メモリ150にFIFO管理テーブルを分散して持たせる方法が考えられる。
図12の超並列貫通バス130への画像通信の割当て例では、超並列貫通バス130を通じてチップ間通信を行う際に、8つの仮想通信チャネルを用いて、各プロセスが同時に通信を行えるように構成している。プログラムの書き方は、KPNに従って書くことで、各プロセスが独立に動作、並びに、必要なデータの入力、処理、及び出力を行えるようにする。これにより、各プロセスは逐次処理で独立に書くのでプログラムの書き方が分かりやすく、FIFOからの読み出し及びFIFOへの書き込みがメモリチップ120との通信に相当することから、メモリチップ120との通信を制御することが可能である。一方、図12に示されるように、各プロセスの入出力量にばらつきがある場合に待ち時間が生じるという問題点がある。
図9に示したような、4つの物理通信チャンネルを持つLSIチップ積層システム100において、8つの仮想通信チャンネルは、時分割多重方式により実現できる。図13に、時分割多重方式による割り当ての一例を示す。LSIチップ積層システム100では、4つの物理通信チャンネルに対して、第1の時間帯(タイムスロット#1)には仮想チャンネル1から4を、第2の時間帯(タイムスロット#2)には仮想チャンネル5から8を割り当てるとともに、それぞれの物理通信チャネルにおいて、適切な周期でタイムスロットを切り替える。これにより、8つの仮想通信チャンネルを実現することができる。
次に、図14を参照しながら、個別倍率による縮小アルゴリズムをLSIチップ積層システム100にマッピングした場合の処理の具体例について説明する。図14は、個別倍率による縮小アルゴリズムをLSIチップ積層システム100にマッピングした場合の具体例を示す図である。
図14の例では、共通の入力画像に対して、それぞれのプロセッサチップ110で異なる倍率(個別倍率)で縮小変換処理を行う。各プロセッサチップ110は同じ入力画像を読み出すため、チップ間をつなぐ超並列貫通バス130を用いて各プロセッサチップ110に入力画像のデータをブロードキャストすることも可能である。そのため、読み出しに必要なメモリ帯域を大幅に削減可能である。
図15に、個別倍率による縮小アルゴリズムを用いる際の超並列貫通バス130への画像通信の割当て例を示す。図15の例では、図12の場合と同様に、8つの仮想チャネルを用いて、各プロセスが独立に通信できるように構成している。入力画像は、各プロセスがそれぞれメモリチップ120から読み出す。図5及び図6の比較から分かるように、逐次反復による画像縮小の場合は段々と画像データサイズが小さくなるのに対し、個別倍率による画像縮小の場合には、入力画像の読み込みのためのデータ通信量が大きいことが分かる。
ここで、超並列貫通バス130は、データ通信の際にメモリチップ120から読みだしたデータを、各プロセッサチップ110に対して一斉配信(ブロードキャスト)することが可能であることから、ブロードキャストを活かした各プロセッサチップ110への画像データ配信が可能である。
図16は、個別倍率による縮小アルゴリズムを用い、かつ入力画像の読み込みにブロードキャストを用いる際のチップ間通信量を示す図である。図16において、ブロードキャスト時の通信量は、プロセスAの項目に代表して示している。本手法の各プロセスの通信量を他の手法(図5、図6参照)と比較すると、入力画像の通信量が大幅に減少している。図5や図6の手法において入力画像の通信量は全体の通信量に占める割合は最も大きいため、本手法では入力画像をブロードキャストすることにより、全体として大幅な通信量の削減を図ることができている。
図17に、ブロードキャストを活かした各プロセッサチップ110への画像データ通信の割当て例を示す。図17の例では仮想チャネル(論理的通信チャネル)#1乃至#7で画像データのプロセッサチップ110からメモリチップ120への出力を行い、仮想チャネル#8で同期のための制御メッセージ(制御信号)の通信を行っている。また、図16以降説明しているブロードキャストを用いる際には、超並列貫通バス130の多数の信号線を活用して全ての仮想チャネル(複数の論理的通信チャネル)を使用することにより、入力画像データを各プロセッサチップ110へ短時間で配信することが可能である。
ただし、ブロードキャストにより縮小画像処理を各プロセッサチップ110上で並列かつ一斉に行う場合には、各プロセッサチップ110上で実行される各画像縮小プロセスが入力画像データを待って同期して処理を行う必要がある。そのため、同期のための待ち時間のため、処理性能がある程度低下する場合がある。
各プロセスがメモリチップ120から個々に入力画像を読み出す場合には、各画像縮小プロセス間の同期は必要ない。但し、図6に示すデータ通信容量が必要となる。すなわち、7つのプロセスがそれぞれ94MB/sの通信帯域を必要とするため、合計で658MB/sの通信容量を必要とすることになる。これは、ブロードキャストする場合には、チップ間通信容量を削減することができるが、処理時間としては長くなるというトレードオフを選択することが可能であることを示している。
図18、図19に、各KPNのLSIチップ積層システム100へのマッピングにおける通信量の比較を示す。メモリチップ120への書込みのための転送量は変わらないが、読み出しのための転送量は各マッピング方法により大きく異なり、個別倍率縮小(一斉配信)の場合に最小の読み出し量94MBとなる。
各プロセスが待ち合わせを行うための同期制御を含むKPNの例を図20に示す。この構成においては、コントローラプロセス20と各プロセスとが同期制御メッセージをやりとりすることで処理の待ち合わせを行い、前処理済み画像(入力画像)を全ての縮小変換プロセスに一斉配信することを可能とする。一斉配信は、以下の手順で行う。
(1)各縮小変換処理プロセスは、前処理済画像から縮小画像を作成して出力し、コントローラプロセス20に終了を通知する。
(2)コントローラプロセス20は、全ての縮小変換処理プロセスの終了通知を待って前処理プロセスに出力開始を指示する。
(3)前処理プロセスは、コントローラの開始指示を待ってFIFOに前処理済み画像を出力する。
以上の手順により、前処理済み画像を各縮小変換プロセスに一斉配信することが可能となる。なお、コントローラプロセス20は、他のプロセスと同様に、各プロセッサチップ110のうちいずれかのプロセッサチップ110のプロセッサ140で実行することができる。或いは、LSIチップ積層システム100外の外部のプロセッサ上で実行することも考えられる。
図21には、これまで示した各KPNをLSIチップ積層システム100にマッピングした際の、消費電力を試算した結果を示す。TSV1つあたりの電気容量を0.3pF、信号電圧1.0Vとすると、1ビットの転送には0.3pJ必要である。10fpsの動画像に対する処理を想定すると、消費電力は通信量に比例するため、個別倍率縮小・一斉配信のマッピングにおいては、最小の消費エネルギーである691.2μWの消費電力(1フレームあたり69.12μJの消費エネルギー)となる。
以上説明したように、本実施形態によれば、図3や図4等の様々な形態のKPNをLSIチップ積層システム100にマッピングすることが可能となる。
特に、KPNにおけるプロセス間の通信用FIFOバッファをメモリチップ120に割り当てる場合には、超並列貫通バス130を経由した通信が必要となる。当該通信にリアルタイム性が必要な場合には時分割多重の通信方式を用いることで、専用の論理的な通信路(論理的通信チャネル)を確保できるようになるため、他の通信の影響を受けずに遅延時間が保証された通信が可能となる。
また本実施形態によれば、処理負荷の状況(例えばプロセッサ稼働率、通信チャネル利用率等)や、画像認識処理における処理の段階に応じて、プロセッサチップ110の使用構成を随時組み合わせることが可能となる。当該組み合わせには、各プロセスをどのプロセッサチップ110に割り当てるか、プロセッサチップ110上のどのプロセッサ140に割り当てるか、プロセス間のFIFOバッファをどのメモリ(メモリチップ120及びチップ内メモリ150を含む)に割り当てるか、という選択を含む。
また、本実施形態におけるLSIチップ積層システム100が有する超並列貫通バス130は1000本以上の信号線を持つことから、例えば100MHz程度の通信周波数であっても、1024本の信号線を用いることで、1クロックで128バイトのデータ転送が可能であり、12.8GBytes/sの通信容量を持つ。当該通信容量は、画像認識のための画像縮小処理に必要な通信容量(最大658MB/s)を十分にカバーすることができる。
加えて、図20で示したようなコントローラプロセス20からの制御メッセージにより制御可能なプロセスを用いることで、KPNの制御性を向上することができる。
また、制御メッセージを分散オブジェクトの標準的なプロトコルに準拠させることで、設計生産性と再利用性を大幅に向上させることが可能となる。より具体的には、CORBAやProtocol Buffersといった通信ミドルウェアを使用することで、設計生産性及び再利用性の向上を図ることができる。
また、特に一斉配信(ブロードキャスト)による個別倍率縮小処理を用いると、画像縮小処理にかかる消費電力等を他の手法に比べて大幅に低減させることが可能となる。通常のメモリ及びプロセッサ間では、たとえマルチコアプロセッサであったとしても、それぞれ独立に読込み及び書込み処理を行うため、図5及び図6で示したような通信量を必要とする。これに対して本実施形態に係るLSIチップ積層システム100では、一斉配信(ブロードキャスト)を行うことにより、データ量を大幅に削減させ、ひいては消費電力をも大幅に低減させることができる。すなわち、本実施形態に係るLSIチップ積層システム100は、プロセッサチップ110間の多数の信号線を好適に利用することが可能である。
なお、前述の実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。更に、本発明の用途は、画像認識処理に限定されるものではなく、スマートフォン等におけるタッチスクリーンにおけるGUI(グラフィカル・ユーザ・インターフェイス)実現のための画像拡大/縮小処理や、映像編集における画像拡大/縮小処理などにも用いることが可能である。
20 :コントローラプロセス
100 :LSIチップ積層システム
110 :プロセッサチップ
120 :メモリチップ
130 :超並列貫通バス
140 :プロセッサ
150 :チップ内メモリ

Claims (5)

  1. 画像データに対するプロセスを実行可能な1以上のプロセッサが搭載された複数のプロセッサチップと、
    前記プロセッサが入力及び出力する画像データを記憶し、前記プロセッサで実行される各プロセス間の通信用バッファが割り当てられるメモリを含むメモリチップと、
    互いに積層された複数の前記プロセッサチップ及び前記メモリチップの間を、通信可能に接続する複数の信号線を含む貫通バスと
    を含むLSIチップ積層システムであって、
    複数の前記プロセッサチップ上の前記プロセッサで実行される各プロセスは、
    前記貫通バスを介して、前記メモリチップに記憶された画像データを、論理的に異なる複数の通信チャネルを用いて同時に読み込み、
    他のプロセスの状態に直接依存することなくそれぞれ独立かつ並列に画像データに対する演算を処理
    前記貫通バスは、複数の物理的通信チャネルに分けられており、また、各物理的通信チャネルは、通信に使用するタイムスロットにより定義される複数の論理的通信チャネルに分けられる、
    LSIチップ積層システム。
  2. 前記プロセッサで実行される各プロセスは、制御プロセスとの間で制御メッセージを通信し、
    前記制御プロセスは、前記プロセッサで実行される各プロセスの同期を取る、
    請求項1記載のLSIチップ積層システム。
  3. 前記プロセッサで実行される各プロセスに対する制御メッセージの通信に対して、前記画像データの通信に用いられる論理的チャネルとは別の論理的通信チャネルが割り当てられる、
    請求項1又は請求項2記載のLSIチップ積層システム。
  4. 複数の前記プロセッサチップ上の前記プロセッサで実行される各プロセスはそれぞれ、異なる倍率により画像データを変換し、これにより複数のサイズの画像データが生成される、
    請求項1乃至請求項3のいずれか1項記載のLSIチップ積層システム。
  5. 前記プロセッサチップはチップ内メモリを有し、
    前記画像データが記憶されるバッファを、前記メモリチップに割り当てるか、前記チップ内メモリに割り当てるかを選択する、
    請求項1乃至請求項4のいずれか1項記載のLSIチップ積層システム。
JP2014053387A 2014-03-17 2014-03-17 Lsiチップ積層システム Active JP6680454B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014053387A JP6680454B2 (ja) 2014-03-17 2014-03-17 Lsiチップ積層システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014053387A JP6680454B2 (ja) 2014-03-17 2014-03-17 Lsiチップ積層システム

Publications (2)

Publication Number Publication Date
JP2015176435A JP2015176435A (ja) 2015-10-05
JP6680454B2 true JP6680454B2 (ja) 2020-04-15

Family

ID=54255557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014053387A Active JP6680454B2 (ja) 2014-03-17 2014-03-17 Lsiチップ積層システム

Country Status (1)

Country Link
JP (1) JP6680454B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6839395B2 (ja) * 2016-05-30 2021-03-10 国立研究開発法人産業技術総合研究所 半導体演算装置
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
KR102395463B1 (ko) * 2017-09-27 2022-05-09 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
GB201904267D0 (en) * 2019-03-27 2019-05-08 Graphcore Ltd A networked computer with multiple embedded rings
CN110291586B (zh) * 2019-05-17 2020-10-30 长江存储科技有限责任公司 具有静态随机存取存储器的三维存储器件的高速缓存程序操作
CN116830267A (zh) * 2021-02-10 2023-09-29 松下知识产权经营株式会社 Ai模块

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5626753B2 (ja) * 2009-11-30 2014-11-19 独立行政法人産業技術総合研究所 Lsiチップ積層システム
JP5626763B2 (ja) * 2010-03-31 2014-11-19 独立行政法人産業技術総合研究所 パケット交換システム
JP2012216109A (ja) * 2011-04-01 2012-11-08 Sony Corp 画像処理装置と画像処理方法
JP5677489B2 (ja) * 2013-03-07 2015-02-25 株式会社日立製作所 半導体装置

Also Published As

Publication number Publication date
JP2015176435A (ja) 2015-10-05

Similar Documents

Publication Publication Date Title
JP6680454B2 (ja) Lsiチップ積層システム
US11677662B2 (en) FPGA-efficient directional two-dimensional router
JP4327175B2 (ja) マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法
EP3298740B1 (en) Directional two-dimensional router and interconnection network for field programmable gate arrays
US10572225B1 (en) Circuit arrangements and methods for performing multiply-and-accumulate operations
US20170220499A1 (en) Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications
WO2020150728A1 (en) Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
US9378533B2 (en) Central processing unit, GPU simulation method thereof, and computing system including the same
US11803508B2 (en) Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
CN112970010A (zh) 流式传输平台流和架构
CN114529444B (zh) 图形处理模块、图形处理器以及图形处理方法
CN112805727A (zh) 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法
US20200225884A1 (en) Machine perception and dense algorithm integrated circuit
US20200082898A1 (en) Multi-lvel memory hierarchy
Ibrahim et al. Extending Data Flow Architectures for Convolutional Neural Networks to Multiple FPGAs
WO2023184754A1 (zh) 可配置实时视差点云计算装置及方法
US10209765B2 (en) Method for achieving low power consumption of three-dimensional measurement chip
WO2023115529A1 (zh) 芯片内的数据处理方法及芯片
CN112740193B (zh) 大数据运算加速系统执行运算的方法
Lee et al. Design of a distributed JPEG encoder on a scalable NoC platform
Essig et al. On-demand instantiation of co-processors on dynamically reconfigurable FPGAs
Keinert et al. Synthesis of multi-dimensional high-speed FIFOs for out-of-order communication
Goumas et al. Modeling the Scalability of the EuroExa Reconfigurable Accelerators-Preliminary Results
Wang et al. A pipelined reconfigurable architecture for real-time image processing of robot vision servoing
Hale Dynamic Reconfigurable CNN Accelerator for Embedded Edge Computing: A Hardware-Software Co-Design Approach to Minimize Power and Resource Consumption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181206

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190221

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200319

R150 Certificate of patent or registration of utility model

Ref document number: 6680454

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250