(57)【要約】  三次元集積回路の層間配線を複数の演算器間の通信路として用いて、広帯域なＮｏＣを可能とした半導体演算装置を提供する。その半導体演算装置１０は、演算器１１1〜１１3の各々が縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に配置され、かつ、２以上の演算器１１1〜１１3が同一層内で二次元アレイ状に配置された素子層を有する。各素子層１２1〜１２Aは積層されている。また、積層方向に相隣る第１及び第２の素子層１２1及び１２2において、それぞれ配置位置が重なる演算器同士が、互いに素子層の一つの演算器の対角線方向に相対的にずれて配置されるように素子層が積層されている。
2017208901.tif 000002
【特許請求の範囲】
【請求項１】
演算器が縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に配置され、かつ、２以上の前記演算器が同一層内で二次元アレイ状に配置された素子層が複数積層されており、
前記複数の素子層の積層方向に相隣る素子層において、それぞれ配置位置が重なる前記演算器同士が、互いに前記演算器の一つの対角線方向に相対的にずれて配置されるように前記複数の素子層を積層するとともに、前記相隣る素子層においてそれぞれ配置位置が重なる前記演算器同士を配線により接続し、層間の前記配線を通信路として用いることを特徴とする半導体演算装置。
【請求項２】
前記複数の素子層は、少なくとも(ｍ／４)層(ただし、ｍはメニーコアプロセッサにおいて、近接する演算器と１タイムスロットで同時通信可能な演算器の数)積層されており、積層方向に相隣る素子層それぞれに配置された前記演算器は、互いに素子層表面において縦方向にＬv／(ｍ／４)、横方向にＬh／(ｍ／４)の各寸法だけ相対的にずれて配置されていることを特徴とする請求項１記載の半導体演算装置。
【請求項３】
前記複数の素子層のうち、それぞれ３以上の異なる素子層の配置位置が重なる各演算器の、配線領域位置が重なる配線領域同士を直線状に貫通して接続する貫通配線を有し、前記貫通配線を通信路として使用することを特徴とする請求項１又は２記載の半導体演算装置。
【請求項４】
前記演算器を構成するロジックセルの中に、前記複数の素子層の中間配線層の配線ピッチのｎ倍(ただし、ｎは１以上の自然数)の幅の素子層貫通用配線領域が、前記横方向に帯状に形成されていることを特徴とする請求項１乃至３のうちいずれか一項記載の半導体演算装置。
【請求項５】
前記素子層貫通用配線領域は、前記複数の素子層の互いに同じ位置に前記横方向に帯状に形成されていることを特徴とする請求項４記載の半導体演算装置。
【請求項６】
前記素子層貫通用配線領域は、前記ロジックセルの電源用配線領域に隣接して平行に形成されていることを特徴とする請求項４又は５記載の半導体演算装置。
【請求項７】
前記演算器は、各々縦方向の寸法が中間配線層の配線ピッチＦのｊ倍、横方向の寸法が前記配線ピッチＦのｋ倍の大きさのロジックセルが複数、前記縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に規則的に配置された構成であることを特徴とする請求項１乃至６のうちいずれか一項記載の半導体演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体演算装置に係り、特に多数の演算器を三次元集積してこれらを並列に動作させて効率的な演算を実現する半導体演算装置に関する。
【背景技術】
【０００２】
並列に動作させる多数の演算器が単一チップに集積された半導体演算装置はいわゆるメニーコアプロセッサを構成し、それを構成する演算器の数は半導体微細加工技術の進展によって年々増加してきた。近年では、このメニーコアプロセッサの構造は、汎用の画像処理演算装置(ＧＰＧＰＵ：General Purpose Graphical Processing Unit)などに見られ、深層学習などの計算における畳み込み演算の高速化に貢献している。【０００３】
しかし、同時に半導体微細加工技術の進展が困難な状況となれば、単一チップに集積される演算器数を増加させることが難しくなる。単一チップに集積される演算器数を増加させることは、半導体演算装置の演算性能の向上に欠かせない。【０００４】
そこで、半導体微細加工の困難性を解決し、単一チップに集積可能な演算器の数を増加させる方法として、従来より半導体素子の三次元集積が検討されている。より具体的には主として二つの方法が知られている。第一の方法は、シリコン基板上に作製した集積回路を薄層化し張り合わせ、シリコン基板を貫通する縦穴(ビア)によって層間の配線を行うＴＳＶ(Through Silicon Via)方式である(例えば、非特許文献１参照)。第二の方法は、半導体基板上にトランジスタを形成後に続けて絶縁層、半導体薄膜を複数積層し、これらの層を二層目以降のトランジスタ形成層として利用するビルドアップ三次元集積、もしくはモノリシック三次元集積と呼ばれる方式である(例えば、非特許文献２参照)。【０００５】
これらの方式のいずれかによれば、最小の配線ピッチが０.５μｍをきるような０.１５μｍプロセス以細の半導体集積回路作製技術を使って、これと同等のピッチで素子形成層間の配線を行えることができるようになると期待される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】F.Furuta,et al.,“Scalable 3D-FPGA using wafer-to-wafer TSV interconnect of 15 Tbps/W,3.3 Tbps/mm2”,Proceedings of 2013 Symposium on VLSI Circuits,pp.C24-C25 (2013)
【非特許文献２】T.Irisawa,et al.,“Demonstration of ultimate CMOS based on 3D stacked InGaAs-OI/SGOI wire channel MOSFETs with independent back gate”,Proceedings of 2014 Symposium on VLSI Technology,pp.1-2,(2014)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述した三次元集積方法を使ってメニーコアプロセッサにおける演算器の数、もしくは単一チップに集積される演算器と第二乃至第三レベルキャッシュの数を増加させたとしても、層間貫通配線を有効に活用した演算器乃至キャッシュ間の通信路、すなわちネットワーク・オン・チップ(ＮｏＣ：Network on Chip)が提供されなければ、結局層内に配置される通信路の帯域幅が半導体演算装置全体の性能を律速し、三次元集積の有効性は限定されてしまう。【０００８】
本発明は以上の点に鑑みなされたもので、三次元集積回路の層間配線を複数の演算器間の通信路として用いて、広帯域なＮｏＣを可能とした半導体演算装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１実施形態の半導体演算装置は、演算器が縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に配置され、かつ、２以上の前記演算器が同一層内で二次元アレイ状に配置された素子層が複数積層されており、前記複数の素子層の積層方向に相隣る素子層において、それぞれ配置位置が重なる前記演算器同士が、互いに前記演算器の一つの対角線方向に相対的にずれて配置されるように前記複数の素子層を積層するとともに、前記相隣る素子層においてそれぞれ配置位置が重なる前記演算器同士を配線により接続し、層間の前記配線を通信路として用いることを特徴とする。【００１０】
本発明の第２実施形態の半導体演算装置は、第１実施形態において、複数の素子層が、少なくとも(ｍ／４)層(ただし、ｍはメニーコアプロセッサにおいて、近接する演算器と１タイムスロットで同時通信可能な演算器の数)積層されており、積層方向に相隣る素子層それぞれに配置された演算器が、互いに素子層表面において縦方向にＬv／(ｍ／４)、横方向にＬh／(ｍ／４)の各寸法だけ相対的にずれて配置されていることを特徴とする。【００１１】
本発明の第３実施形態の半導体演算装置は、第１又は第２の実施形態において、複数の素子層のうち、それぞれ３以上の異なる素子層の配置位置が重なる各演算器の、配線領域位置が重なる配線領域同士を直線状に貫通して接続する貫通配線を有し、前記貫通配線を通信路として使用することを特徴とする。【００１２】
本発明の第４実施形態の半導体演算装置は、第１乃至第３の実施形態のいずれかの実施形態において、演算器を構成するロジックセルの中に、複数の素子層の中間配線層の配線ピッチのｎ倍(ただし、ｎは１以上の自然数)の幅の素子層貫通用配線領域が、横方向に帯状に形成されていることを特徴とする。【００１３】
本発明の第５実施形態の半導体演算装置は、第４の実施形態において、素子層貫通用配線領域は、複数の素子層の互いに同じ位置に横方向に帯状に形成されていることを特徴とする。【００１４】
本発明の第６実施形態の半導体演算装置は、第４又は第５の実施形態において、素子層貫通用配線領域が、ロジックセルの電源用配線領域に隣接して平行に形成されていることを特徴とする。【００１５】
本発明の第７実施形態の半導体演算装置は、第１乃至第６の実施形態のいずれかの実施形態において、演算器は、各々縦方向の寸法が中間配線層の配線ピッチＦのｊ倍、横方向の寸法が前記配線ピッチＦのｋ倍の大きさのロジックセルが複数、縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に規則的に配置された構成であることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、積層方向に相隣る素子層の層間配線を、素子層が異なる複数の演算器間の通信路として用いることができ、三次元集積回路における広帯域なＮｏＣを可能とすることができる。その結果、本発明によれば、素子層が例えば２層積層の場合であれば、１対４の多対１結合をすべての演算器で対称に実現でき、更に層内の通信路も含めれば、１対８の多対１結合をすべての演算器で実現できる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係る半導体演算装置の第１の実施形態の概略の平面図及び断面図である。
【図２】本発明に係る半導体演算装置の第１の実施形態の相隣る２つの素子層の演算器の位置関係の説明用平面図である。
【図３】本発明に係る半導体演算装置の第１の実施形態の層間配線の説明用断面図である。
【図４】(Ａ)は本発明に係る半導体演算装置における演算器を構成する一つのロジックセルの第１の実施形態の平面図、(Ｂ)は(Ａ)のI−I’線に沿う断面図である。
【図５】本発明に係る半導体演算装置の第１の実施形態における一つの演算器の一例の模式的平面図である。
【図６】ロジックセルによって構成される演算器の最適配置の一例の模式的平面図である。
【図７】本発明に係る半導体演算装置を用いたニューラルネットワークの畳み込み演算装置の一例の回路構成図である。
【図８】図７に示した畳み込み演算装置におけるニューラルネットワークの計算処理について説明する図である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照して説明する。
【００１９】
(第１の実施形態)
図１(Ａ)及び(Ｂ)は、本発明に係る半導体演算装置の第１の実施形態の概略の平面図及び断面図を示す。同図(Ａ)、(Ｂ)において、本実施形態の半導体演算装置１０は、各々異なる第１、第２、第３の素子層に実装される演算器１１1〜１１3の各々が縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に重なり配置され、かつ、２以上の演算器１１1〜１１3がそれぞれ第１、第２、第３の同一層内で二次元アレイ状に配置された素子層を有する。以上は、素子層数が３の場合であるが、更に、素子層数をＡと拡張して演算器の対角線方向に沿った演算器の断面図を示せば、図１(Ｂ)に１２1〜１２Aで模式的に示すように素子層はＡ層(ただし、Ａは２以上の自然数)積層されている。なお、図示の便宜上、図１(Ａ)は３つの素子層１２1〜１２3が積層された状態(Ａ＝３の場合)の平面図を模式的に示している。また、図１(Ａ)は図示の便宜上、一例として同一素子層に９つの演算器が二次元アレイ状に配置された平面図を模式的に示しており、演算器１１1は素子層１２1に二次元アレイ状に配置された９つの演算器、演算器１１2は素子層１２2に二次元アレイ状に配置された９つの演算器、演算器１１3は素子層１２3に二次元アレイ状に配置された９つの演算器を示している。
【００２０】
次に、本実施形態の積層方向に相隣る２つの素子層の演算器の位置関係について更に詳細に説明する。図２は、本発明に係る半導体演算装置の第１の実施形態の相隣る２つの素子層の演算器の位置関係の説明用平面図を示す。本実施形態の半導体演算装置１０では、積層された複数の素子層のうち、図２に示すように、積層方向に相隣る第１及び第２の素子層１２１及び１２２(図１(Ａ)の１２1及び１２2、又は１２2及び１２3に相当)において、第１の素子層１２１の第１の演算器１１１の配置位置と第２の素子層１２２の第２の演算器１１２の配置位置同士が、互いに素子層の一つの演算器の対角線１４方向に相対的にずれて配置されるように素子層１２１及び１２２が積層されている。
【００２１】
すなわち、図２に示すようにそれぞれ配置位置が重なる演算器１１１及び１１２は、それぞれ互いに素子層表面において縦方向にＬv／(ｍ／４)、横方向にＬh／(ｍ／４)の各寸法だけ相対的にずれて配置されている(ただし、ｍは近接する演算器と１タイムスロットで同時通信が可能な演算器数を示す)。ここで、演算器１１１、１１２の各々は縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に構成されているので、積層方向に相隣る素子層１２１及び１２２のそれぞれ配置位置が重なる演算器１１１及び１１２の配置位置同士は、図２に模式的に示すように互いに演算器の一つの対角線１４上に相対的にずれて配置されていることとなる。
【００２２】
また、本実施形態の半導体演算装置１０では、図１(Ｂ)に模式的に示すように素子層１２1〜１２Aのそれぞれの演算器のうち積層方向に重なる演算器同士がＢ本(ただし、Ｂは任意の自然数)の層間配線１３1〜１３Bにより接続されている。層間配線１３1〜１３Bは素子層１２1〜１２Aの各演算器間の通信路として用いられる。なお、層間配線１３1〜１３Bは、２以上の異なる素子層１２1〜１２Aの積層方向に重なる演算器の配線領域位置を直線状に貫通する貫通配線を示している。ただし、層間配線は後述するように、相隣る２つの素子層の積層方向に重なる演算器の、積層方向に重ならない各配線領域同士を接続することもある。
【００２３】
本実施形態における層間配線について更に詳細に説明する。図３は、本発明に係る半導体演算装置の第１の実施形態の層間配線の説明用断面図を示す。同図中、図２と同一構成部分には同一符号を付してある。図３は、積層された複数の素子層のうち、積層方向に相隣る３つの素子層１２１、１２２及び１２３(図１(Ａ)の１２1、１２2、１２3に相当)の、１つの演算器の対角線(図２の１４に相当)に沿った断面図を示す。図３において、配線２０１は、積層方向に重なる位置にある第２の素子層１２２の第２の演算器１１２1と、第３の素子層１２３の第３の演算器１１３1の各配線領域を接続する層間配線である。
【００２４】
また、配線２０２は、積層方向に重なる位置にある第１の素子層１２１の第１の演算器１１１2と、第２の素子層１２２の第２の演算器１１２2と、第３の素子層１２３の第３の演算器１１３1の各配線領域を接続する層間配線である。配線２０２は、第１の演算器１１１2と、第２の演算器１１２2と、第３の演算器１１３1の各配線領域が積層方向に重なっており、これらをそれぞれ貫通し、かつ接続する直線状の貫通配線である。配線２０１及び２０２は、図１(Ｂ)の層間配線１３1〜１３Aのいずれかに相当し、異なる素子層の各演算器間の通信路として用いられる。なお、配線２０３は同一の素子層の演算器間を結ぶ配線を示している。
【００２５】
本実施形態の半導体演算装置１０によれば、三次元集積回路において層間配線１３1〜１３A、２０１及び２０２を複数の素子層の各演算器間の通信路として用いることで、広帯域のＮｏＣを実現できる。例えば２つの素子層積層の場合は一方の素子層の１つの演算器がもう一方の素子層の隣接する４つの演算器との通信が可能で、１対４の多対１結合を実現できる。また、素子層内の通信路を含めると１対８の多対１結合を実現できる。図３の断面図に示す構成では、面内方向に関しては４回対称性を持ち、対角線方向には層間方向に(ｍ／４)でサイクルをなすため、すべての層を貫きデータを共有することによって、ネットワークトポロジーで最も近接するｍ個の演算器は対称性をもって１タイムスロットで同時に通信を行うことが可能となる。すなわち、層内・層間を合わせて最大でｍ個の近接する他の演算器と１タイムスロットでデータ交換をどの演算器においても対称で、かつ、最短の配線長で実現できる。図３は、ｍ＝１２の例を示す。
【００２６】
次に、本発明に係る半導体演算装置を構成する演算器とそれを構成するロジックセルについて説明する。図４(Ａ)は、本発明に係る半導体演算装置における演算器を構成する一つのロジックセルの第１の実施形態の平面図、図４(Ｂ)は、同図(Ａ)のI−I’線に沿う断面図を示す。本発明に係る半導体演算装置に用いられる演算器を構成するロジックセルは各種あるが、図４(Ａ)、(Ｂ)に示すロジックセル３０は一例として４トランジスタ論理回路であるＮＡＮＤゲートを示す。
【００２７】
一つのロジックセル３０は、図４(Ａ)の平面図に示すように、下端部に横方向に帯状の素子層貫通用配線領域３１が設けられている構成に特徴がある。素子層貫通用配線領域３１の縦方向の寸法である配線幅は、例えば各素子層の第ニ配線層の配線ピッチ(以下、中距離配線層のハーフピッチともいう)と同等の幅で、例えば１層目の素子層の貫通ビアと同じ径の貫通ビアが２箇所の位置３２ａ、３２ｂに穿設される。なお、素子層貫通用配線領域３１は、ロジックセル３０の上下端部の両方あるいは上端部側に設けられていてもよい。
【００２８】
図４(Ａ)において、素子層貫通用配線領域３１は、ロジックセル３０の電源用配線層３３ａ、３３ｂのうち電源用配線層３３ｂに隣接して平行に形成されている。電源用配線層３３ａは高電圧側電源用配線層であり、電源用配線層３３ｂは低電圧側電源用配線層であり、これらはいずれも第１層配線層である。また、ロジックセル３０は、ＮＡＮＤゲートの２本の入力用配線と１本の出力用配線とを有する。ロジックセル３０の素子層貫通用配線領域３１以外のＮＡＮＤゲートのレイアウト構成は公知であるので、その詳細な説明は省略し概略のみ説明する。図４(Ａ)、(Ｂ)において、ゲート電極３４ａは直列に接続された２つのＮチャネルトランジスタの一方のゲート電極と、並列に接続された２つのＰチャネルトランジスタの一方のゲート電極とを示し、これらは２本の入力用配線の一方に接続される。また、図４(Ａ)において、ゲート電極３４ｂは、直列に接続された２つのＮチャネルトランジスタの他方のゲート電極と、並列に接続された２つのＰチャネルトランジスタの他方のゲート電極とを示し、これらは２本の入力用配線の他方に接続される。
【００２９】
また、図４(Ａ)において、第１の不純物拡散層３５は上記の２つのＰチャネルトランジスタのドレイン又はソースを構成しており、第２の不純物拡散層３６は上記の２つのＮチャネルトランジスタのドレイン又はソースを構成している。また、第１の不純物拡散層３５の２つのＰチャネルトランジスタの共通ドレイン領域３５１と、２つのＮチャネルトランジスタのうちゲート電極３４ｂと共に他方のＮチャネルトランジスタを構成する第２の不純物拡散層３５のドレイン領域とが出力配線層３７に接続されている。第１の不純物拡散層３５の２つのＰチャネルトランジスタの各ソース領域は電源用配線層３３ａに接続される。また、第２の不純物拡散層３６のうち他方のＮチャネルトランジスタのソース領域は電源用配線層３３ｂに接続される。更に、図４(Ａ)、(Ｂ)に示すように、素子層貫通用配線領域３１を貫通する素子層貫通配線３８が第２層配線層３９を介してゲート電極３４ａの上方の第１層配線層４０に接続されている。また、図４(Ｂ)に示すように、素子層１２の基板上には素子分離領域４１が形成されており、またゲート絶縁膜４２の上にゲート電極３４ａが形成されている。
【００３０】
ここで、中距離配線として用いられる配線層で、演算器モジュール間の通信路を実装するとき、この中距離配線用配線層は２層目から５層目までの４層と仮定する。従来知られている６５ｎｍ技術世代の典型的な寸法例として、通常の定義とは異なり中距離配線層のハーフピッチをＦと定義し、典型的な４トランジスタ論理回路で換算すると、ロジックセルの寸法は素子層平面上の縦方向(南北)の寸法Ｈが１８Ｆ、横方向(東西)の寸法Ｗが５Ｆとなり、配線トラック数は縦方向に４トラック(＝２トラック×２層)、横方向に１８トラック(＝９トラック×２層)となる。
【００３１】
一方、演算器一つが約１００００論理ゲート(ＮＡＮＤ換算、約４００００トランジスタ)からなると仮定する。従来技術では、約１００００論理ゲートをほぼ正方に並べて実装したと仮定すると、演算器一つの縦横の等価的なセル数は約５２セル(約９５μｍ)×約１９０セル(約９５μｍ)となり、周囲のうち約９５μｍの一辺から引き出されるポート数は、最大で約５００［〜９５μｍ/｛(０.１μｍ/１Ｆ)×２Ｆ｝×２層×５０％］ポート程度となる。なお、１Ｆ＝０.１μｍで、配線の最大使用率は５０％であるものとする。また、上記の２Ｆは配線ピッチである。
【００３２】
これに対し、図４(Ａ)、(Ｂ)に示す本実施形態のロジックセル３０は、素子層平面上の縦方向(南北)の寸法Ｈが２０Ｆ、横方向(東西)の寸法Ｗが５Ｆの領域内に形成されており、上記の従来のロジックセルと比較して、横方向の寸法Ｗは従来と同じ５Ｆであるが、縦方向の寸法Ｈが、従来の１８Ｆに比べて素子層貫通用配線領域３１の配線幅である２Ｆ分大きな２０Ｆの構成とされている。これは現在の論理合成技術で所望の演算器を効率的に構成するためである。よって、本実施形態のロジックセル３０の面積の増加分は従来の１.１１(＝２０Ｆ／１８Ｆ)倍となり、１１％の面積増加によって素子層貫通用配線領域３１による貫通配線を２トラック、素子層の積層方向に配置可能となる。
【００３３】
したがって、素子層の積層方向に貫通・引き出されるポート数は、本実施形態では１つのロジックセル３０の素子層貫通用配線領域３１には２箇所の貫通ビアを穿設できるので、約１００００論理ゲート(ロジックセル)からなる１つの演算器あたり最大で約１００００(＝２×０.５×１００００)ポート程度となる(配線の最大使用率を従来と同じ５０％とした場合)。すなわち、積層方向の貫通ポート数は層内一辺の約２０倍程度となる。寄生容量は従来と同程度で、信号伝送速度と信号伝送に必要なエネルギーも従来と同等であるため、物理的に伝送帯域幅が本実施形態の方が従来に比べて２０倍増えることとなる。
【００３４】
図５は、本発明に係る半導体演算装置の第１の実施形態における一つの演算器の一例の模式的平面図を示す。図５に示す一つの演算器５０は、６５ｎｍ技術世代の約１００００ロジックセル(論理ゲート)で構成され、また、最近接の１タイムスロットで同時に通信可能な演算器数ｍを「３６」とした場合の、９層(＝ｍ／４＝３６／４)積層される素子層のそれぞれに形成される複数の演算器の一つを示す。演算器５０は、縦方向の寸法Ｌv、横方向の寸法Ｌhの方形領域内に配置される約１００００個のロジックセル３０から構成されている。すなわち、演算器５０は、縦方向の寸法Ｌv内に５４行分(＝６行×９)配置されたロジックセルと、横方向の寸法Ｌh内に１８９列分(＝２１列×９)配置されたロジックセルの計１０２０６個のロジックセルからなる。実寸では縦方向の寸法Ｌvは１０８μｍ(＝２０Ｆ×６行×９×０.１μｍ／Ｆ)、横方向の寸法Ｌhは９４.５μｍ(＝５Ｆ×２１列×９×０.１μｍ／Ｆ)である。
【００３５】
演算器５０は９層の素子層のそれぞれにおいて複数個、二次元アレイ状に配置され、そのうち、積層方向に相隣る２層の素子層に配置された演算器は、素子層表面上の縦方向に１２(＝Ｌv／(ｍ／４)＝１０８／９)μｍ、横方向に１０.５(＝Ｌh／(ｍ／４)＝９４.５／９)μｍ相対的にずらして配置される。これは、図２に示した１つの演算器１１１又は１１２(いずれも図５の５０に相当)の対角線１４の方向にずらして配置されることに等しい。このように、演算器を配置、実装することによって各素子層の演算器の素子層貫通用配線領域(図４の３１)を図６に示すように積層方向に重ねて配置することが可能となり、素子層貫通配線を積層方向に直線状に伸ばす効率的で最短の配線長の配線が可能となる。
【００３６】
図６は、ロジックセルによって構成される演算器の最適配置の一例の模式的平面図を示す。同図中、図２、図４と同一構成部分には同一符号を付してある。図６は、行方向のシフト量Ｌv／(ｍ／４)をロジックセルの縦幅×２の場合として例示した２つの素子層の第１の演算器１１１と第２の演算器１１２の模式的平面図を示す。図６において、第１の演算器１１１は同じ行にロジックセル３０、３０１、３０２等が配置されている。ロジックセル３０１、３０２は、それぞれ素子層貫通用配線領域３１１、３１２を有する。
【００３７】
本実施形態では、第１の演算器１１１を構成するすべてのロジックセル中の素子層貫通用配線領域が図６に４０１で模式的に示すように、同じ行のすべてのロジックセルの素子層貫通用配線領域の位置が一致して(すなわち、横方向に帯状に)配置されている。同様に、第２の演算器１１２を構成するすべてのロジックセル中の素子層貫通用配線領域が図６に４０２で模式的に示すように、同じ行のすべてのロジックセルの素子層貫通用配線領域の位置が一致して(すなわち、横方向に帯状に)配置されている。
【００３８】
更に、第１の演算器１１１の素子層貫通用配線領域４０１と、第２の演算器１１２の素子層貫通用配線領域４０２とは、図６に４０３で模式的に示すように積層方向に相隣る位置で重なって配置される。行方向のシフト量がロジックセルの縦幅で割り切れるように、演算器を実装することによって、素子層貫通用配線領域が４０３で模式的に示すように完全に重なるようになる。これにより、素子層間の通信路として用いる複数の素子層の間の層間配線を、複数の素子層を直線的に貫通する貫通配線とすることができ、効率的な配線ができる。
【００３９】
(第２の実施形態)
次に、本発明に係る半導体演算装置の第２の実施形態として、例えば深層学習における畳み込み演算に用いる例について説明する。
【００４０】
画像処理演算装置などにおける深層学習における畳み込み演算は、平面上に配置された画素について、例えば最近接のｍ画素(ｍ＝１２１＝１１×１１、あるいはｍ＝２５＝５×５)からデータを取り、それぞれのデータに適切な重み係数を乗算して積算する方法が公知の非特許文献(Alex Krizhevsky et al.,“ImageNet Classification with Deep Convolutional Neural Networks”,Proceedings of Neural Information Processing Systems(NIPS),pp.1-9,(2012))により知られている。
【００４１】
ここで、上記の画素数ｍを「３６」(＝６×６)とすると、上記の公知の深層学習における畳み込みの大きさは偶数となるが、５×５を包含する畳み込みが実現される。すなわち、本発明に係る半導体演算装置の演算器の配置方法を利用することにより、ｍ／４(＝３６／４＝９)層の素子層積層の実装によって１回ですべての素子層の演算器がデータの収集を終了することができる。
【００４２】
隣接する３６個の演算器間でのデータ交換を例にとり、より正確に比較する。一平面上にすべての演算器が実装された場合、他の演算器と隣接する一辺を横切るデータは３６演算器上にあるものを相互に通過させなければならない。したがって、すべての通信が終わるまでには、一つの演算器が送出すべきデータを相隣る演算器に対して送出する時間を１タイムスロットと定義すると３６タイムスロットが必要となる。
【００４３】
これに対して、本発明に係る半導体演算装置の第２の実施形態では、同一平面上での通信を同一層内の相隣る４つの演算器とのみ交換するものとすると、残る３２個の演算器に存在するデータを積層方向の３２個の演算器間の層間通信により２０倍の帯域幅を使って相互に通信することになる。したがって、１タイムスロットを上記の１.６倍(＝３２／２０)に伸ばして相互の通信を行うことで、１タイムスロットで全通信を終了することとなる。結果として、本実施形態によれば、実時間で２２.５倍(＝１×３６／(１.６×１))の高速化が達成されたことになる。すなわち、本実施形態では、図５に示したような構成の演算器が複数二次元アレイ状に配置された素子層を９(＝ｍ／４＝３６／４)層積層し、かつ、前述した層間配線を通信路とすることで、１タイムスロットで３６(＝ｍ)個の最近接の演算器の間で同時に通信して畳み込み演算することができる。この傾向は中距離配線の配線幅が０.５μｍ程度の１５０ｎｍプロセスでも同様となる。
【００４４】
より具体的には、図７に示すような、畳み込み演算をパイプライン処理により実行する演算器を多並列に動作させる本発明に係る半導体演算装置を用いて、図８に例示するようなニューラルネットワークを計算する。図７は、本発明に係る半導体演算装置を用いたニューラルネットワークの畳み込み演算装置の一例の回路構成図を示す。同図において、畳み込み演算装置５００は、入力セレクタ５０１、演算器５０２、ネットワーク５０３、及び出力セレクタ５０４から構成され、演算器５０２を構成するＮ個の演算器５０２1〜５０２Nを多並列に動作させて畳み込み演算をパイプライン処理により実行する。なお、パイプライン処理を行う演算器５０２1〜５０２Nのそれぞれは、例えば図５に示す一つの演算器５０の構成である。
【００４５】
入力セレクタ５０１は入力データＤをＮ分割して各分割データを演算器５０２1〜５０２Nに別々に供給する。演算器５０２1〜５０２Nはそれぞれ同一の回路構成で、入力セレクタ５１１、重み係数格納用キャッシュメモリ５１２1〜５１２3、バッファメモリ５１３1〜５１３3、セレクタ５１４1〜５１４3、乗算器５１５1〜５１５3、入力層データ格納用レジスタ５１６、加算器５１７1〜５１７2、第１層計算用レジスタ５１８1、第２層計算用レジスタ５１８2、第１層計算結果格納用レジスタ５１９1〜第Ｌ層計算結果格納用レジスタ５１９L、出力セレクタ５２０から構成されている。ネットワーク５０３はＮ個の演算器５０２1〜５０２Nから出力されたデータをＮ個の演算器５０２1〜５０２Nに選択入力する。更に出力セレクタ５０４はＮ個の演算器５０２1〜５０２Nから出力されたデータを選択しＭ個の出力とする。
【００４６】
次に、畳み込み演算装置５００の動作について詳細に説明する。以下、演算器５０２1〜５０２Nのうち一つの演算器５０２1の動作について説明するが、他の(Ｎ−１)個の演算器５０２2〜５０２Nも同様の動作を行う。まず、入力セレクタ５０１は入力データＤをＮ分割し、Ｎ個の各分割データを演算器５０２1〜５０２Nの各入力層データ格納用レジスタファイル５１６にそれぞれ格納する。
【００４７】
続いて、乗算器５１５1が、セレクタ５１４1を通して入力される入力層データ格納用レジスタファイル５１６からの入力分割データと、重み係数格納用キャッシュメモリ５１２1から読み出された第１層重み係数Ｗ(1)ijとを乗算して加算器５１７1に供給する。加算器５１７1は第１層計算用レジスタ５１８1に蓄えられていた第１層のデータと乗算器５１５1からの乗算結果とを加算し、その加算結果を第１層計算用レジスタ５１８1に帰還入力する。また、乗算器５１５1は、他の演算器からネットワーク５０３を介して入力セレクタ５１１により選択されてバッファメモリ５１３1に保持されたデータも同様に、重み係数格納用キャッシュメモリ５１２1から読み出された第１層重み係数Ｗ(1)ijと乗算し、その乗算結果を加算器５１７1において第１層計算用レジスタ５１８1からの第１層のデータと加算させる。
【００４８】
第１層重み係数Ｗ(1)ijのすべてについて上記の乗算器５１５1による分割データ又は他の演算器からのデータとの乗算が行われ、それぞれの乗算結果の加算器５１７1の加算と第１層計算用レジスタ５１８1への格納が終了すると、入力層データ格納用レジスタファイル５１６が次の新たな分割データを格納すると共に、第１層計算用レジスタ５１８1の累積加算結果の格納データが第１層計算結果格納用レジスタ５１９1にコピーされる。入力層データ格納用レジスタファイル５１６に格納された次の新たな分割データに対しては、上記の最初に格納された分割データに対する処理と同様の処理が繰り返される。
【００４９】
一方、乗算器５１５2は、セレクタ５１４2を通して入力される第１層計算結果格納用レジスタ５１９1にコピーされた第１層の計算データと、重み係数格納用キャッシュメモリ５１２2から読み出された第２層重み係数Ｗ(2)ijとを乗算して加算器５１７2に供給する。加算器５１７2は第２層計算用レジスタ５１８2に蓄えられていた第２層のデータと乗算器５１５2からの乗算結果とを加算し、その加算結果を第２層計算用レジスタ５１８2に帰還入力する。また、乗算器５１５2は、他の演算器からネットワーク５０３を介して入力セレクタ５１１により選択されてバッファメモリ５１３2に保持されたデータも同様に、重み係数格納用キャッシュメモリ５１２2から読み出された第２層重み係数Ｗ(2)ijと乗算し、その乗算結果を加算器５１７2において第２層計算用レジスタ５１８2からの第２層のデータと加算する。
【００５０】
第２層重み係数Ｗ(1)ijのすべてについて上記の乗算器５１５2による分割データ又は他の演算器からのデータとの乗算が行われ、それぞれの乗算結果の加算器５１７2の加算と第２層計算用レジスタ５１８2への格納が終了すると、入力層データ格納用レジスタファイル５１６が更に次の新たな分割データを格納すると共に、第２層計算用レジスタ５１８2の累積加算結果の格納データが第２層計算結果格納用レジスタ５１９2にコピーされる。以下同様に、各層において入力層データ格納用レジスタファイル５１６に格納される新たな分割データに対して、上記と同様の処理が繰り返される。上記の図７の演算装置５００による畳み込み演算の上記の処理はニューラルネットワークのパイプライン処理により実行されており、これについて更に説明する。
【００５１】
図８は、図７に示した畳み込み演算装置におけるニューラルネットワークの計算処理について説明する図である。図８において、図７と同一構成部分には同一符号を付してある。図８において、図７のＮ個の演算器５０２1〜５０２Nのそれぞれの演算処理を破線で囲んだ部分６０２1〜６０２Nで模式的に示す。また、図８において、ｘ1〜ｘDはＤ個の入力データを示す。例えば、演算器５０２1においては、図８に破線で囲んだ部分６０２1内に模式的に示すように、入力データＤをＮ分割して入力されて入力層データ格納用レジスタファイル５１６に格納された分割データｘ1、ｘ2、ｘ3、ｘ4に対して、乗算器５１５1において第１層の重み係数Ｗ(1)11、Ｗ(1)21、Ｗ(1)31、Ｗ(1)41と乗算して、それらの乗算結果を加算器５１７1に供給する。また、乗算器５１５1はネットワーク５０３を介して他の演算器から入力されたデータｘ5と第１層の重み係数Ｗ(1)51とを乗算して、その乗算結果を加算器５１７1に供給する。加算器５１７1は供給された上記の各乗算結果を加算して第１層の加算値ｙ(1)1を得て、それを第１層計算結果格納用レジスタ５１９1にコピーする。
【００５２】
続いて、第２層の乗算器５１５2は、第１層計算結果格納用レジスタ５１９1から入力された第１層の加算値ｙ(1)と第２層の重み係数Ｗ(2)11と乗算して得た乗算結果を得る。更に第２層の乗算器５１５2は、他の乗算器５１５2から入力された加算値ｙ(1)2と第２層の重み係数Ｗ(2)21との乗算結果、及び他の乗算器５１５3から入力された加算値ｙ(1)3と第２層の重み係数Ｗ(2)31との乗算結果をそれぞれ得る。加算器５１７2は第２層の乗算器５１５2により得られた上記の各乗算結果を加算して第２層の加算値ｙ(2)1を得る。ここで、第２層の乗算器５１５2では上記のように演算器５０２1〜５０２3との間で通信を行って得た加算値ｙ(1)2、ｙ(1)3と自演算器に格納されている第２層の重み係数との乗算を行う。他の演算器５０２2〜５０２Nにおいても乗算器５１５1と同様に他の演算器との通信を行って第１層の加算値を取得してその演算器内の第２層の重み係数との乗算を行う。以下、演算器５０２1〜５０２Nのそれぞれにおいて第３層以上についても他の演算器との通信を行って上記と同様の処理を行う。
【００５３】
図８の例では、Ｎ個の演算器５０２1〜５０２Nがｍ／４層の各素子層に分けて実装されているものとすると、各層のニューラルネットワークにおいて、ｍ対１の通信がＮ組存在する。このように、演算器間でｍ対１の通信が必要となる場合には、平面上に実装されたＮ個の演算器からなる演算装置に対して、前述したように素子層がｍ層積層された本実施形態の演算装置によれば通信に必要なタイムスロットを１／ｍとすることができる。
【符号の説明】
【００５４】
１０  半導体演算装置
１１1〜１１3、５０、５０２、５０２1〜５０２N  演算器
１２、１２1〜１２A  素子層
１３、１３1〜１３A、２０１、２０２  層間配線
１４  演算器の対角線
３０、３０１、３０２  ロジックセル
３１  素子層貫通用配線領域
３３ａ  高電圧側電源用配線層
３３ｂ  低電圧側電源用配線層
３４ａ、３４ｂ  ゲート電極
３５  第１の不純物拡散層
３６  第２の不純物拡散層
３７  出力配線層
３８  素子層貫通配線
３９  第２層配線層
４０  第１層配線層
４１  素子分離領域
４２  ゲート絶縁膜
１１１  第１の演算器
１１２  第２の演算器
１２１  第１の素子層
１２２  第２の素子層
２０３  同一の素子層の演算器間を結ぶ配線
３１１、３１２、４０１、４０２  素子層貫通用配線領域
４０３  素子層１１１及び１１２の重なる位置にある素子層貫通用配線領域
５００  畳み込み演算装置
５０１  入力セレクタ
５０３  ネットワーク
５０４  出力セレクタ
５１２1〜５１２3  重み係数格納用キャッシュメモリ
５１３1〜５１３3  バッファメモリ
５１４1〜５１４3  セレクタ
５１５1〜５１５3  乗算器
５１６  入力層データ格納用レジスタファイル
５１７1〜５１７3  加算器
５１８1  第１層計算用レジスタ
５１８2  第２層計算用レジスタ
５１９1  第１層計算結果格納用レジスタ
５１９2  第２層計算結果格納用レジスタ
５２０  出力セレクタ
【図１】
2017208901.tif 000003
【図２】
2017208901.tif 000004
【図３】
2017208901.tif 000005
【図４】
2017208901.tif 000006
【図５】
2017208901.tif 000007
【図６】
2017208901.tif 000008
【図７】
2017208901.tif 000009
【図８】
2017208901.tif 000010
【国際調査報告】
2017208901.tif 000011
2017208901.tif 000012