(57)【要約】【課題】ＡＩ（人工知能）の演算処理が可能な新規な半導体装置を提供する。【解決手段】半導体装置は、第１プロセッサチップ、第２プロセッサチップ、メモリ部、およびデータバスを有する。第１プロセッサチップ、第２プロセッサチップ、およびメモリ部はそれぞれデータバスと電気的に接続されている。第１プロセッサチップはＡＩの演算を行う演算回路アレイを有し、演算回路アレイは複数の演算回路を有する。複数の演算回路はそれぞれ第１トランジスタ、第２トランジスタ、容量素子、および保持ノードを有する。第１トランジスタは保持ノードへのデータの書き込みを制御する機能をもち、そのチャネル形成領域は金属酸化物を有する。第２トランジスタのゲートは保持ノードに電気的に接続され、容量素子は、保持ノードに電気的に接続される。第２プロセッサチップは、ＣＰＵコアを有する。【選択図】図１
2019033234.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサチップと、
第２プロセッサチップと、
メモリ部と、
データバスと、を有し、
前記第１プロセッサチップ、前記第２プロセッサチップ、および前記メモリ部は、それぞれ、前記データバスと電気的に接続され、
前記第１プロセッサチップは、人工知能の演算を行う演算回路アレイを有し、
前記演算回路アレイは、複数の演算回路を有し、
前記演算回路は、第１トランジスタ、第２トランジスタ、容量素子、および保持ノードを有し、
前記第１トランジスタのチャネル形成領域は金属酸化物を有し、
前記第１トランジスタは前記保持ノードへのデータの書き込みを制御する機能をもち、
前記第２トランジスタのゲートは前記保持ノードに電気的に接続され、
前記容量素子は、前記保持ノードに電気的に接続され、
前記第２プロセッサチップは、ＣＰＵコアを有する半導体装置。
【請求項２】
請求項１において、
前記保持ノードは、アナログデータが書き込まれる半導体装置。
【請求項３】
第１プロセッサチップと、
第２プロセッサチップと、
メモリ部と、
データバスと、を有し、
前記第１プロセッサチップ、前記第２プロセッサチップ、および前記メモリ部は、それぞれ、前記データバスと電気的に接続され、
前記第１プロセッサチップは、人工知能の演算を行う演算回路アレイを有し、
前記演算回路アレイは、複数の演算回路を有し、
前記演算回路は、複数のメモリ回路を有し、
前記複数のメモリ回路は、それぞれ、複数のメモリセルを有し、
前記複数のメモリセルは、それぞれ、保持ノードと、前記保持ノードへのデータの書き込みを制御するトランジスタを有し、
前記トランジスタのチャネル形成領域は金属酸化物を有し、
前記第２プロセッサチップは、ＣＰＵコアを有することを特徴とする半導体装置。
【請求項４】
請求項３において、
前記保持ノードは、デジタルデータが書き込まれる半導体装置。
【請求項５】
請求項１乃至４の何れか１項において、
前記第２プロセッサチップは、ＦＰＧＡを有することを特徴とする半導体装置。
【請求項６】
請求項１乃至５の何れか１項に記載の半導体装置を有する評価ボード。
【請求項７】
請求項１乃至５の何れか１項に記載の半導体装置を有する電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
例えば、本発明の一態様は、半導体装置、半導体装置を有する電子機器に関する。
【０００２】
なお、本明細書において、半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。トランジスタ、半導体回路、演算装置、記憶装置等は半導体装置の一態様である。また、表示装置、撮像装置、電気光学装置、発電装置（薄膜太陽電池、有機薄膜太陽電池等を含む）、及び電子機器は半導体装置を有している場合がある。
【背景技術】
【０００３】
チャネル形成領域に金属酸化物を有するトランジスタ（以下、「金属酸化物トランジスタ」、「酸化物半導体トランジスタ」、または「ｏｘトランジスタ」と呼ぶ場合がある。）が知られている。ｏｘトランジスタはオフ電流が非常に小さい。メモリセルの書込みトランジスタをｏｘトランジスタで構成することで、保持特性の優れたメモリセルを提供することが可能である。例えば、非特許文献１には、ｏｘトランジスタを用いた多値ＮＯＳＲＡＭ（登録商標）が開示されている。
【０００４】
なお、本明細書では、ＮＯＳＲＡＭとは、メモリセルが２トランジスタ型（２Ｔ）、又は３トランジスタ型（３Ｔ）ゲインセルであり、メモリセルの書込みトランジスタがｏｘトランジスタであるメモリ装置のことをいう。なお、「ＮＯＳＲＡＭ」とは、「Ｎｏｎｖｏｌａｔｉｌｅ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ＲＡＭ」の略称である。
【０００５】
近年、人工知能（ＡＩ）分野の技術発展が著しい。特許文献１には、ｏｘトランジスタが用いられ、ニューラルネットワークを構成することが可能な半導体装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−２１９０１１号公報
【非特許文献】
【０００７】
【非特許文献１】Ｔ．Ｍａｔｓｕｚａｋｉ  ｅｔ  ａｌ．，“Ａ  １２８ｋｂ  ４ｂｉｔ／Ｃｅｌｌ  Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｃｒｙｓｔａｌｌｉｎｅ  Ｉｎ−Ｇａ−Ｚｎ  Ｏｘｉｄｅ  ＦＥＴ  Ｕｓｉｎｇ  Ｖｔ  Ｃａｎｃｅｌ  Ｗｒｉｔｅ  Ｍｅｔｈｏｄ，”ＩＳＳＣＣ  Ｄｉｇ．Ｔｅｃｈ．Ｐａｐｅｒｓ，２０１５，ｐｐ．３０６―３０７．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、本発明の一形態の課題は、ｏｘトランジスタを有する新規な半導体装置を提供すること、またはＡＩの演算が可能な低消費電力半導体装置を提供することである。
【０００９】
本発明の一形態は、例示した全ての課題を解決する必要はない。複数の課題の記載は互いの課題の存在を妨げるものではない。例示した以外の課題は本明細書等の記載から自ずと明らかになり、これらの課題も本発明の一形態の課題となり得る。
【００１０】
複数の課題の例示は、互いの課題の存在を妨げるものではない。本発明の一形態は、例示した全ての課題を解決する必要はない。また、列記した以外の課題が、本明細書等の記載から、自ずと明らかとなるものであり、このような課題も、本発明の一形態の課題となり得る。
【課題を解決するための手段】
【００１１】
（１）本発明の一形態は、第１プロセッサチップと、第２プロセッサチップと、メモリ部と、データバスとを有する半導体装置であり、第１プロセッサチップ、第２プロセッサチップ、およびメモリ部は、それぞれ、データバスと電気的に接続され、第１プロセッサチップは、人工知能の演算を行う演算回路アレイを有し、演算回路アレイは、複数の演算回路を有し、演算回路は、第１トランジスタ、第２トランジスタ、容量素子、および保持ノードを有し、第１トランジスタのチャネル形成領域は金属酸化物を有し、第１トランジスタは保持ノードへのデータの書き込みを制御する機能をもち、第２トランジスタのゲートは保持ノードに電気的に接続され、容量素子は、保持ノードに電気的に接続され、第２プロセッサチップは、ＣＰＵコアを有する。
【００１２】
（２）上記形態（１）において、保持ノードは、アナログデータが書き込まれる。
【００１３】
（３）本発明の一形態は、第１プロセッサチップと、第２プロセッサチップと、メモリ部と、データバスとを有する半導体装置であり、第１プロセッサチップ、第２プロセッサチップ、およびメモリ部は、それぞれ、データバスと電気的に接続され、第１プロセッサチップは、人工知能の演算を行う演算回路アレイを有し、演算回路アレイは、複数の演算回路を有し、演算回路は、複数のメモリ回路を有し、複数のメモリ回路は、それぞれ、複数のメモリセルを有し、複数のメモリセルは、それぞれ、保持ノードと、保持ノードへのデータの書き込みを制御するトランジスタを有し、トランジスタのチャネル形成領域は金属酸化物を有し、第２プロセッサチップは、ＣＰＵコアを有する。
【００１４】
（４）上記形態（３）において、保持ノードは、デジタルデータが書き込まれる。
【００１５】
本明細書等において、「第１」、「第２」、「第３」などの序数詞は、順序を表すために使用される場合がある。または、構成要素の混同を避けるために使用する場合がある。これらの場合、序数詞の使用は構成要素の個数を限定するものではない。例えば、「第１」を「第２」または「第３」に置き換えて、本発明の一形態を説明することができる。
【００１６】
本明細書等において、ＸとＹとが接続されていると記載されている場合は、ＸとＹとが電気的に接続されている場合と、ＸとＹとが機能的に接続されている場合と、ＸとＹとが直接接続されている場合とが、本明細書等に開示されているものとする。したがって、所定の接続関係、例えば、図または文章に示された接続関係に限定されず、図または文章に示された接続関係以外のものも、図または文章に記載されているものとする。Ｘ、Ｙは、対象物（例えば、装置、素子、回路、配線、電極、端子、導電膜、層など）であるとする。
【００１７】
トランジスタは、ゲート、ソース、およびドレインと呼ばれる３個の端子を有する。ゲートは、トランジスタの導通状態を制御する制御端子である。ソースまたはドレインとして機能する２個の端子は、トランジスタの入出力端子である。２つの入出力端子は、トランジスタの導電型（ｎチャネル型、ｐチャネル型）及びトランジスタの３個の端子に与えられる電位の高低によって、一方がソースとなり他方がドレインとなる。このため、本明細書等においては、ソースやドレインの用語は、入れ替えて用いることができるものとする。また、本明細書等では、ゲート以外の２個の入出力端子を第１端子、第２端子等と呼ぶ場合がある。
【００１８】
ノードは、回路構成やデバイス構造等に応じて、端子、配線、電極、導電層、導電体、不純物領域等と言い換えることが可能である。また、端子、配線等をノードと言い換えることが可能である。
【００１９】
電圧は、ある電位と、基準の電位（例えば接地電位（ＧＮＤ）またはソース電位）との電位差のことを示す場合が多い。よって、電圧を電位と言い換えることが可能である。なお、電位とは相対的なものである。よって、ＧＮＤと記載されていても、必ずしも０Ｖを意味しない場合もある。
【００２０】
本明細書において、「上に」、「下に」などの配置を示す語句は、構成同士の位置関係を、図面を参照して説明するために、便宜上用いている場合がある。また、構成同士の位置関係は、各構成を描写する方向に応じて適宜変化するものである。従って、明細書で説明した語句に限定されず、状況に応じて適切に言い換えることができる。
【００２１】
本明細書等において、「膜」という言葉と「層」という言葉とは、場合によっては、または、状況に応じて、互いに入れ替えることが可能である。例えば、「導電層」という用語を「導電膜」という用語に変更することが可能な場合がある。例えば、「絶縁膜」という用語を「絶縁層」という用語に変更することが可能な場合がある。
【発明の効果】
【００２２】
本発明の一形態によって、ｏｘトランジスタを有する新規な半導体装置を提供することが可能である。
【００２３】
複数の効果の記載は、他の効果の存在を妨げるものではない。また、本発明の一形態は、必ずしも、例示した効果の全てを有する必要はない。また、本発明の一形態について、上記以外の課題、効果、および新規な特徴については、本明細書の記載および図面から自ずと明らかになるものである。
【図面の簡単な説明】
【００２４】
【図１】半導体装置の構成例を示す機能ブロック図。
【図２】Ａ―Ｃ：ｏｘメモリ回路の構成例を示す回路図。
【図３】ｏｘＡＩチップの回路部の構成例を示す模式図。
【図４】Ａ、Ｂ：評価ボードの構成例を示す斜視模式図。
【図５】ｏｘＡＩチップによって構成される全結合型ニューラルネットワークの構造を示す図。
【図６】ｏｘＡＩチップの構成例を示す機能ブロック図。
【図７】ＭＡＣアレイの構成例を示す回路図。
【図８】ｏｘＡＩチップの構成例を示す機能ブロック図。
【図９】演算回路アレイの構成例を示すブロック図。
【図１０】演算回路の構成例を示す回路図。
【図１１】Ａ：メモリ回路の構成例を示す回路図。Ｂ：メモリセルの構成例を示す回路図。
【図１２】メモリ回路の構成例を示す回路図。
【図１３】Ａ、Ｂ：スイッチ回路の構成例を示す回路図。
【図１４】ｏｘＡＩチップによって構成される畳み込みニューラルネットワークの構造を示す。
【図１５】Ａ、Ｂ：半導体装置が組み込まれたコンピュータの斜視模式図。
【図１６】電子機器を例示する図。
【発明を実施するための形態】
【００２５】
以下に、本発明の実施の形態を説明する。ただし、本発明の一形態は、以下の説明に限定されず、本発明の趣旨およびその範囲から逸脱することなくその形態および詳細を様々に変更し得ることは、当業者であれば容易に理解される。したがって、本発明の一形態は、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【００２６】
以下に示される複数の実施の形態は適宜組み合わせることが可能である。また１の実施の形態の中に、複数の構成例（作製方法例、動作方法例、使用方法例等も含む。）が示される場合は、互いの構成例を適宜組み合わせること、および他の実施の形態に記載された１または複数の構成例と適宜組み合わせることも可能である。
【００２７】
図面において、大きさ、層の厚さ、又は領域は、明瞭化のために誇張されている場合がある。よって、必ずしもそのスケールに限定されない。なお図面は、理想的な例を模式的に示したものであり、図面に示す形状又は値などに限定されない。例えば、ノイズによる信号、電圧、若しくは電流のばらつき、又は、タイミングのずれによる信号、電圧、若しくは電流のばらつきなどを含むことが可能である。
【００２８】
〔実施の形態１〕
本実施の形態では、人工知能のための演算機能を有する半導体装置、および当該半導体装置が搭載される電子機器などについて説明する。人工知能の演算処理とは、例えば、機械学習、ニューラルネットワークなどのＡＩに関する数理モデルに基づく演算処理である。
【００２９】
図１は、半導体装置の構成例を示す機能ブロック図である。図１に示す半導体装置１００は、データバス１１０、入出力（Ｉ／Ｏ）インターフェース１１２、メモリ部１１４、ＦＰＧＡチップ１１５、ｏｘＡＩチップ１２０を有する。Ｉ／Ｏインターフェース１１２、メモリ部１１４、ＦＰＧＡチップ１１５、およびｏｘＡＩチップ１２０は、データバス１１０を介してデータを授受する。
【００３０】
Ｉ／Ｏインターフェース１１２は、各種の周辺機器１５０を接続するための複数種類のインターフェースを備えていることが好ましい。例えば、ＵＳＢコネクタ、ＨＤＭＩ、（登録商標）コネクタ、ｅＤＰコネクタ、ｅＰＣＩｅ、ＬＡＮコネクタなどが設けられる。
【００３１】
「ＵＳＢ」はＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略称である。「ＨＤＭＩ／ｅＤＰ」はＨｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ／の略称である。ことである。ｅＤＰはｅｍｂｅｄｄｅｄ  ＤｉｓｐｌａｙＰｏｒｔの略称である。「ｅＰＣＩｅ」はＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓの略称である。「ＬＡＮ」は、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称である。
【００３２】
メモリ部１１４は、１個または２個以上のメモリチップを有する。例えば、メモリ部１１４に複数種類のメモリチップを設けて、メモリ部１１４を階層化する。例えば、ＳＲＡＭチップ、ＤＲＡＭチップ、およびフラッシュメモリチップがメモリ部１１４に設けられる。ＤＲＡＭチップに代えて、ＮＯＳＲＡＭチップ、またはＤＯＳＲＡＭチップを設けてもよい。フラッシュメモリチップに代えて、ＮＯＳＲＡＭチップ、またはＤＯＳＲＡＭチップを設けてもよい。
【００３３】
「ＤＯＳＲＡＭ（登録商標）」とは、「Ｄｙｎａｍｉｃ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  ＲＡＭ」の略称であり、ｏｘトランジスタと容量素子とでなる１トランジスタ１容量型のメモリセルを有するＲＡＭを指す。ＮＯＳＲＡＭ、およびＤＯＳＲＡＭともメモリセルの書込みトランジスタがｏｘトランジスタであるので、不揮発性メモリとして用いることができる。
【００３４】
半導体装置１００にＦＰＧＡチップ１１５が搭載されているため、半導体装置１００は拡張性が高い。ＦＰＧＡチップ１１５には、ＣＰＵコア、およびメモリ装置が組み込まれている。
【００３５】
半導体装置１００の用途等によって、半導体装置１００に組み込まれるＩＣチップの種類は取捨される。少なくとも、ＣＰＵコアを内蔵するプロセッサチップと、ＡＩの演算を実行するプロセッサチップとを半導体装置１００に組み込むことが好ましい。ＦＰＧＡチップ１１５がＣＰＵコアを内蔵しているため、半導体装置１００は、エッジ側デバイス向けの組み込みシステムの開発に好適である。例えば、ユーザは、半導体装置１００にモニタ、キーボードなどの入出力装置を接続することで、エッジ側端末で動作するソフトウエアの開発を行うことができる。
【００３６】
＜ｏｘＡＩチップ１２０＞
ｏｘＡＩチップ１２０は、ｏｘトランジスタが用いられたＡＩの演算処理が可能なＩＣチップである。ｏｘＡＩチップ１２０が使用するデータには、重み係数データ（学習可能なデータ）、画像データ、教師データなどがある。ｏｘＡＩチップ１２０の演算結果は、例えば、推論データとして出力される。
【００３７】
ｏｘＡＩチップ１２０の特長には、演算に用いられるデータ（代表的には、重み係数データ）を記憶するメモリ回路が演算回路と近接して設けられていることである。このメモリ回路に、ｏｘトランジスタが用いられている。本明細書では、ｏｘトランジスタを有するメモリ回路を、「ｏｘメモリ回路」と呼ぶ場合がある。図２Ａ〜図２Ｃにｏｘメモリ回路の回路構成例を示す。
【００３８】
図２Ａに示すｏｘメモリ回路１１は、２Ｔゲインセルと同じ回路構成であり、書込みトランジスタＭＷ１、読出しトランジスタＭＲ１、容量素子ＣＳ１を有する。読出しトランジスタＭＲ１のゲートが保持ノードＳＮである。書込みトランジスタＭＷ１、読出しトランジスタＭＲ１はそれぞれｏｘトランジスタである。
【００３９】
金属酸化物のバンドギャップは２．５ｅＶ以上あるため、ｏｘトランジスタは極小のオフ電流をもつ。一例として、ソースとドレイン間の電圧が３．５Ｖ、室温（２５℃）下において、チャネル幅１μｍ当たりのオフ電流を１×１０−２０Ａ未満、１×１０−２２Ａ未満、あるいは１×１０−２４Ａ未満とすることができる。すなわち、ドレイン電流のオン／オフ電流比を２０桁以上１５０桁以下とすることができる。なお、書込みトランジスタＭＷ、読出しトランジスタＭＲの半導体層については後述する。
【００４０】
ｏｘメモリ回路１１のノードＳＮには、書込みトランジスタＭＷ１を介して電荷が充電される。ｏｘトランジスタが極小オフ電流であることから、書込みトランジスタＭＷ１は、ノードＳＮの電荷を殆んどリークさせない。従って、ｏｘメモリ回路１１は不揮発性メモリ回路として機能でき、かつ多値化が容易である。よって、ｏｘメモリ回路１１を不揮発性アナログメモリ回路として、ｏｘＡＩチップ１２０に設けることができる。
【００４１】
ｏｘトランジスタに適用される金属酸化物は、Ｚｎ酸化物、Ｚｎ‐Ｓｎ酸化物、Ｇａ‐Ｓｎ酸化物、Ｉｎ‐Ｇａ酸化物、Ｉｎ‐Ｚｎ酸化物、Ｉｎ‐Ｍ‐Ｚｎ酸化物（Ｍは、Ｔｉ、Ｇａ、Ｙ、Ｚｒ、Ｌａ、Ｃｅ、Ｎｄ、ＳｎまたはＨｆ）などがある。また、インジウムおよび亜鉛を含む酸化物に、アルミニウム、ガリウム、イットリウム、銅、バナジウム、ベリリウム、ホウ素、シリコン、チタン、鉄、ニッケル、ゲルマニウム、ジルコニウム、モリブデン、ランタン、セリウム、ネオジム、ハフニウム、タンタル、タングステン、またはマグネシウムなどから選ばれた一種、または複数種が含まれていてもよい。
【００４２】
ｏｘトランジスタの信頼性、電気特性の向上のため、半導体層に適用される金属酸化物は、ＣＡＡＣ‐ＯＳ、ＣＡＣ−ＯＳ、ｎｃ‐ＯＳなどの結晶部を有する金属酸化物であることが好ましい。ＣＡＡＣ‐ＯＳとは、ｃ‐ａｘｉｓ‐ａｌｉｇｎｅｄ  ｃｒｙｓｔａｌｌｉｎｅ  ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒの略称である。ＣＡＣ‐ＯＳとは、Ｃｌｏｕｄ‐Ａｌｉｇｎｅｄ  Ｃｏｍｐｏｓｉｔｅ  ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒの略称である。ｎｃ‐ＯＳとは、ｎａｎｏｃｒｙｓｔａｌｌｉｎｅ  ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒの略称である。
【００４３】
ＣＡＡＣ‐ＯＳは、ｃ軸配向性を有し、かつａ‐ｂ面方向において複数のナノ結晶が連結し、歪みを有した結晶構造となっている。なお、歪みとは、複数のナノ結晶が連結する領域において、格子配列の揃った領域と、別の格子配列の揃った領域との間で格子配列の向きが変化している箇所を指す。
【００４４】
ＣＡＣ‐ＯＳは、キャリアとなる電子（または正孔）を流す機能と、キャリアとなる電子を流さない機能とを有する。電子を流す機能と、電子を流さない機能とを分離させることで、双方の機能を最大限に高めることができる。つまり、ＣＡＣ‐ＯＳをｏｘトランジスタのチャネル形成領域に用いることで、高いオン電流と、極めて低いオフ電流との双方を実現できる。
【００４５】
書込みトランジスタＭＷ１のバックゲート電圧を変化させることで、書込みトランジスタＭＷ１のしきい値電圧を変化させることができる。書込みトランジスタＭＷ１はバックゲートの無いｏｘトランジスタでもよい。読出しトランジスタＭＲ１についても同様である。
【００４６】
金属酸化物は、エネルギーギャップが大きく、電子が励起されにくいこと、ホールの有効質量が大きいことなどから、ｏｘトランジスタは、一般的なＳｉトランジスタと比較して、アバランシェ崩壊等が生じにくい場合がある。従って、例えばアバランシェ崩壊に起因するホットキャリア劣化等を抑制できる場合がある。ホットキャリア劣化を抑制できることで、高いドレイン電圧でｏｘトランジスタを駆動することができる。従って、書込みトランジスタＭＷがＯＳトランジスタであることで、ノードＳＮに高い電圧を印加することが可能になるため、ｏｘメモリ回路１１の多値化が容易である。
【００４７】
ｏｘトランジスタは、電子を多数キャリアとする蓄積型トランジスタである。そのため、ｐｎ接合を有する反転型トランジスタ（代表的には、Ｓｉトランジスタ）と比較して短チャネル効果の一つであるＤＩＢＬ（Ｄｒａｉｎ‐Ｉｎｄｕｃｅｄ  Ｂａｒｒｉｅｒ  Ｌｏｗｅｒｉｎｇ）の影響が小さい。つまり、ｏｘランジスタは、Ｓｉトランジスタよりも短チャネル効果に対する高い耐性を有する。
【００４８】
ｏｘトランジスタは、短チャネル効果に対する耐性が高いために、ｏｘトランジスタの信頼性を劣化させずに、チャネル長を縮小できるので、ｏｘトランジスタを用いることで回路の集積度を高めることができる。チャネル長が微細化するのに伴いドレイン電界が強まるが、上掲したように、ｏｘトランジスタはＳｉトランジスタよりもアバランシェ崩壊が起きにくい。
【００４９】
また、ｏｘトランジスタは、短チャネル効果に対する耐性が高いために、Ｓｉシリコン等トランジスタよりもゲート絶縁物を厚くすることが可能となる。例えば、チャネル長及びチャネル幅が５０ｎｍ以下の微細なトランジスタにおいても、１０ｎｍ程度の厚いゲート絶縁物を設けることが可能な場合がある。ゲート絶縁物を厚くすることで、寄生容量を低減することができるので、回路の動作速度を向上できる。またゲート絶縁物を厚くすることにで、リーク電流が低減されるため、静的消費電流の低減につながる。
【００５０】
図２Ｂに示すｏｘメモリ回路１２はｏｘメモリ回路１１の変形例であり、読出しトランジスタＭＷ２がｎチャネル型Ｓｉトランジスタである。読出しトランジスタＭＷ２はｐチャネル型Ｓｉトランジスタでもよい。
【００５１】
図２Ｃに示すｏｘメモリ回路１３は、３トランジスタ型ゲインセルであり、書込みトランジスタＭＷ３、読出しトランジスタＭＲ３、選択トランジスタＭＳ３、容量素子ＣＳ３を有する。トランジスタＭＷ３、ＭＲ３、ＭＳ３はそれぞれバックゲートを有するｏｘトランジスタである。これらトランジスタの一部、または全てがバックゲートの無いｏｘトランジスタでもよい。
【００５２】
図２Ｄに示すｏｘメモリ回路１４は、ｏｘメモリ回路１３の変形例である。読出しトランジスタＭＲ４、選択トランジスタＭＳ４はそれぞれｎチャネル型Ｓｉトランジスタである。トランジスタＭＲ４、ＭＳ４の一方または双方はｐチャネル型Ｓｉトランジスタでもよい。
【００５３】
容量素子ＣＳ１の充放電によってデータを書き換えるため、ｏｘメモリ回路１１は原理的には書き換え回数に制約はなく、低エネルギーで、データの書き込みおよび読み出しが可能であり、データの保持に電力を消費しない。よって、ｏｘメモリ回路１１をｏｘＡＩチップ１２０に組み込むことで、低消費電力なＡＩチップを提供することが可能になる。ｏｘメモリ回路１２〜１４もｏｘメモリ回路１１と同様の特長を有する。
【００５４】
図３Ａに、ｏｘＡＩチップ１２０の回路部１２１Ａの積層構造を模式的に示す。回路部１２１Ａは積層構造をもち、Ｓｉトランジスタ層１０１１、配線層１０１２、ｏｘトランジスタ層１０１３に大別される。ｏｘトランジスタ層１０１３をＳｉトランジスタ層１０１１に積層して設けることができるため、ｏｘＡＩチップ１２０の面積を小さくすることができる。
【００５５】
回路部１２１Ｂ（図３Ｂ参照）、回路部１２１Ｃ（図３Ｃ参照）のように、複数のｏｘトランジスタ層１０１３を設けてもよい。回路部１２１Ｃは、回路部１２１Ａ、１２１Ｂと異なり、Ｓｉトランジスタ層１０１１が設けられていない。回路部１２１Ｃのｏｘトランジスタ層１０１３の数は、１層の場合がある。
【００５６】
ｏｘＡＩチップ１２０のより具体的な回路構成は、実施の形態２で説明する。後述するように、ｏｘＡＩチップ１２０の演算部を少ない素子数、配線数で演算部を構成することができるため、集積化に有利である。演算回路の集積化により、並列処理数を増やすことができるので、ｏｘＡＩチップ１２０は、市販のＧＰＵチップと同様、もしくはそれ以上の演算性能を実現できる可能性をもつ。
【００５７】
例えば、市販のＧＰＵチップの動作周波数が３ＧＨｚ、乗算の並列処理数が１０３である場合、ＧＰＵチップの演算性能は３×１０１２ＯＰＳ（Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）＝３Ｔｅｒａ  ＯＰＳ（ＴＯＰＳ）である。例えば、ｏｘＡＩチップ１２０は、１０６乃至１０８個程度の演算回路を設けることができ、乗算の並列処理数を１０６乃至１０８とすることができる。この場合、ｏｘＡＩの動作周波数を３ＭＨｚ又は３０ＭＨｚに低下しても、ｏｘＡＩチップ１２０の演算性能はＧＰＵと同程度である。動作周波数の低減は、ＩＣチップの動的消費電力の削減に非常に有効である。
【００５８】
また、ＡＩの演算など大規模な演算処理を行うため、ＧＰＵチップは高い周波数で駆動する。そのため、ことから，大電力を消費し、高温なる。ｏｘＡＩチップ１２０は、動作周波数を低減できるため、ｏｘＡＩチップ１２０の発熱を抑えることができる。したがって、半導体装置１００において、ｏｘＡＩチップ１２０の放熱機構をＧＰＵチップのものよりも簡素にすることができる。
【００５９】
上掲したように、ＧＰＵチップは、演算性能の向上と、省電力化および発熱抑制との関係はトレードオフの関係である。これに対して、ｏｘＡＩチップ１２０は、動作周波数を低減しても演算性能の劣化を少なくできる。したがって、ｏｘＡＩチップ１２０は、時間および電力に対して高効率に、大規模な演算処理を実行することができる。
【００６０】
＜＜評価ボード＞＞
例えば、半導体装置１００は、評価ボードとして用いることができる。図４Ａ、図４Ｂは、評価ボードの構成例の斜視模式図である。
【００６１】
図４Ａに示すように、評価ボード２００のボード２１０には、様々な電子部品が組み込まれている。図４Ａの例では、ｏｘＡＩチップ２２０、メモリチップ２３１、２３２、ＦＰＧＡチップ２３５、２３６、ＰＣＩｅコネクタ２４０、ＵＳＢコネクタ２４２、ＨＤＭＩ入力（ＲＸ）コネクタ２４４、ＨＤＭＩ出力（ＴＸ）コネクタ２４５を有する。
【００６２】
ＦＰＧＡチップ２３６は、メモリ装置、ＣＰＵコアを含む。ＨＤＭＩ入力コネクタ２４４、ＨＤＭＩ出力コネクタ２４５に代えて、ｅＤＰ入力コネクタ、ｅＤＰ出力コネクタを設けてもよい。
【００６３】
ｏｘＡＩチップ２２０は、コネクタ（図示されない）を使用して、ボード２１０と着脱可能となっている。例えば、別のアーキテクチャのｏｘＡＩチップ２２２、またはＧＰＵチップ２２５を付け替えることができる。評価ボード２００を用いて、ＡＩの演算処理機能を持つ、複数種類のチップの性能および機能の確認を行うことができる。
【００６４】
図４Ｂに示す評価ボード２０２においては、ｏｘＡＩチップは、専用のボード２１２に実装されている。ボード２１０には、コネクタ２５０Ａ、２５０Ｂが設けられ、ボード２１２にはコネクタ２５２Ａ、２５２Ｂが設けられている。コネクタ２５０Ａ、２５０Ｂはそれぞれコネクタ２５０Ａ、２５０Ｂと接続される。
【００６５】
＜＜電子機器＞＞
ここでは、ｏｘＡＩチップが組み込まれた電子機器について説明する。
【００６６】
図１５Ａ、図１５Ｂに、コンピュータ７０００の一例を示す。図１５Ａに示すように、コンピュータ７０００は、筐体７０１０、モニタ部７０１２、キーボード７０１３、ポート７０１５を有する。キーボード７０１３、ポート７０１５は筐体７０１０に設けられている。ポート７０１５としては、例えば、ＵＳＢポート、ＬＡＮポート、ＨＤＭＩポートなどがある。
【００６７】
モニタ部７０１２は、開閉可能に筐体７０１０に取り付けられている。図１５Ａには、モニタ部７０１２が開いている状態が示され、図１５Ｂには、モニタ部７０１２が閉じている状態を示す。例えば、モニタ部７０１２の最大開角度は１３５°程度である。
【００６８】
図１５Ｂに示すように、筐体７０１０には開閉可能なカバー７０１１が設けられている。筐体７０１０内部には、複数の半導体装置１００が着脱可能に組み込まれている。、筐体７０１０の内部には、半導体装置１００を冷却する装置、または放熱する装置が設けられていてもよい。カバー７０１１を開けて、半導体装置１００を交換することができるので、コンピュータ７０００の拡張性は高い。コンピュータ７０００に複数のｏｘＡＩチップを組み込むことで、様々なＡＩの処理を高速に行うことが可能になる。
【００６９】
図１６に、半導体装置１００が組み込まれた電子機器の他の例を示す。図１６に示すロボット７１００は、演算装置、照度センサ、マイクロフォン、カメラ、スピーカ、ディスプレイ、各種センサ（赤外線センサ、超音波センサ、加速度センサ、ピエゾセンサ、光センサ、ジャイロセンサなど）、および移動機構などを備える。演算装置の少なくとも半導体装置１００を使用することができる。
【００７０】
マイクロフォンは、使用者の音声および環境音などの音響信号を検知する機能を有する。また、スピーカは、音声および警告音などの音響信号を発する機能を有する。ロボット７１００は、マイクロフォンを介して入力された音響信号を演算装置で解析し、必要な音響信号をスピーカから発することができる。ロボット７１００は、マイクロフォン、演算装置、およびスピーカを用いて、使用者とコミュニケーションをとることが可能である。
【００７１】
カメラは、ロボット７１００の周囲を撮像する機能を有する。また、ロボット７１００は、移動機構を用いて移動する機能を有する。ロボット７１００は、カメラを用いて周囲の画像を撮像し、ＡＩを用いて画像を解析して移動する際の障害物の有無などを察知することができる。
【００７２】
図１６に示す飛行体７２００は、演算装置、プロペラ、カメラ、およびバッテリなどを有し、自立して飛行する機能を有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。
【００７３】
例えば、飛行体７２００は、カメラを用いて周囲の画像を撮像し、半導体装置１００を用いて画像を解析し、移動する際の障害物の有無などを察知することができる。また、ＡＩによってバッテリの蓄電容量の変化から、バッテリ残量を推定することができる。
【００７４】
図１６に示す掃除ロボット７３００は、演算装置、上面に配置されたディスプレイ、側面に配置された複数のカメラ、ブラシ、操作ボタン、各種センサなどを有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。図示されていないが、掃除ロボット７３００には、タイヤ、吸い込み口等が備えられている。掃除ロボット７３００は自走し、ゴミを検知し、下面に設けられた吸い込み口からゴミを吸引することができる。
【００７５】
例えば、掃除ロボット７３００はカメラが撮影した半導体装置１００で解析し、壁、家具または段差などの障害物の有無を判断することができる。また、画像解析により、配線などブラシに絡まりそうな物体を検知した場合は、ブラシ５１０３の回転を止めることができる。
【００７６】
掃除ロボット７３００は、半導体装置１００を用いて、バッテリの残量や吸引したゴミの量などから活動可能な残り時間などを推測することができる。また、掃除ロボット７３００は、走行を繰り返しながら自身の軌跡を学習し、効率の良い走行経路を導き出すことができる。
【００７７】
図１６に示すスマートフォン７４００（携帯情報端末）は、演算装置、マイクロフォン、カメラ、スピーカ、およびディスプレイを有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。また、スマートフォン７４００に各種センサを設けてもよい。
【００７８】
半導体装置１００はスマートフォン７４００の使用頻度、使用方法などを基に学習し、バッテリ残量などを推定する機能を有する。また、使用者の使用方法などを学習して使用者の動作を予測し、使い易さを高めることができる。
【００７９】
図１６に示す自動車７５００は、エンジン、タイヤ、ブレーキ、操舵装置などの他に、演算装置、各種センサなどを有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。例えば、半導体装置１００は、ナビゲーション情報、速度、エンジンの状態、ギアの選択状態、ブレーキの使用頻度などの情報を用いて学習することで、自動車７５００の走行状態を最適化するための制御を行う。
【００８０】
自動車７５００に進行方向を撮影するカメラを設け、撮影した画像を半導体装置１００で解析して障害物の有無を判断し、安全性を高めることができる。
【００８１】
図１６に示すゲーム機７６００は、演算装置、筐体、表示部、カメラ、マイクロフォン、スピーカ、操作キー等を有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。ゲーム機７６００は、使用者をカメラで撮影し、撮影した画像から使用者を特定することができる。
【００８２】
ゲーム機７６００は、使用者の使用状態を学習し、ソフトウエアと連動してゲームの進行などを変更できる。また、使用者をカメラで撮影し、撮影した画像から使用者の疲労具合を検出し、表示部に警告を表示することもできる。また、半導体装置１００はバッテリの蓄電容量の変化から、バッテリ残量を推定する機能を有する。
【００８３】
図１６に示すノート型パーソナルコンピュータ７７００は、演算装置、筐体、表示部、キーボード、ポインティングデバイスなどを有する。演算装置の少なくとも一部に半導体装置１００を使用することができる。
【００８４】
ｏｘＡＩチップ１２０は、大規模な並列演算処理を低消費電力で可能なため、使用できる電力に制約がある電子機器（例えば、スマートフォン）に組み込むことが容易である。
【００８５】
物体認識、音声認識、翻訳など、ＡＩが成果を上げている分野が広がっている。例えば、スマートフォンで音声認識を行う場合、通常、スマートフォンは音声データを取得するだけで、ＡＩを用いた音声認識処理はクラウド側のコンピューティングシステムが行う。つまり、クラウド側のコンピューティングシステムの処理が終わらないと、スマートフォンでの処理を行えない。よって、半導体装置１００を組み込むことで、スマートフォンにおいて、ＡＩによって音声データをリアルタイムで処理することが可能になる。このように、半導体装置１００は、エッジコンピューティングの発展に寄与することができる。
【００８６】
〔実施の形態２〕
本実施の形態では、ｏｘＡＩチップの具体的な構成例を説明する。
【００８７】
＜＜アナログｏｘＡＩチップ＞＞
ここでは、アナログ演算を利用した超並列コンピューティングが可能なｏｘＡＩチップ４００について説明する。ｏｘＡＩチップ４００は、全結合型ニューラルネットワーク（ＦＣＮＮ）に非常に有利である。ｏｘＡＩチップ４００の構成例、動作方法例の理解を容易にするため、図５に示すＦＣＮＮが回路によって構成されているとする。図５に示すＦＣＮＮは、１個の隠れ層をもつ。入力層、隠れ層、出力層のユニット数はそれぞれ１０２４、１２８、３２である。活性化関数にはＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅｒ  Ｕｎｉｔ）が用いられている。ｏｘＡＩチップ４００のＦＣＮＮは、例えば、手書き文字認識、汎用ＡＩに適用される。
【００８８】
図６は、ｏｘＡＩチップ４００の構成例を示す機能ブロック図である。図６に示すｏｘＡＩチップ４００は、レシーバ（ＲＸ）４０１、デジタル‐アナログコンバータ（ＤＡＣ）４０３、４０４、積和演算回路（ＭＡＣ）アレイ４０５、４０６、ゲートドライバ４０７、デジタル‐アナログコンバータ（ＤＡＣ）４０８、トランスミッタ（ＴＸ）４０９を有する。
【００８９】
ｏｘＡＩチップ４００のデータ伝送方式は差動伝送方式である。例えば、レシーバ４０１として、ＬＶＤＳ（小振幅差動伝送方式：Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌｉｎｇ）レシーバが用いられ、トランスミッタ４０９としてＬＶＤＳトランスミッタが用いられる。
【００９０】
リセット信号ｒｅｓｔ＿ｎは、ｏｘＡＩチップ４００をリセットする。
【００９１】
データｉｎ＿ｗ［７：０］は、学習済みデータである。例えば、重み係数を表す８ビットデジタル信号である。イネーブル信号ｅｎ＿ｌａ＿ｗ、クロック信号ｄｃｌｋ＿ｗに従い、ＤＡＣ４０４は、データｉｎ＿ｗ［７：０］をアナログデータに変換する。ゲートドライバ４０７は、ＭＡＣアレイ４０５、４０６へのアナログデータの書込みを制御する。ゲートドライバ４０７には、クロック信号ｇｃｌｋ、パルス幅制御信号ｇｐｗｃ、スタートパルス信号ｇｓｐが入力される。
【００９２】
ｏｘＡＩチップ４００が処理するデータは８ビットデジタルデータであり、差動伝送方式で入力される。例えば、レシーバ４０１として、ＬＶＤＳ（小振幅差動伝送方式：Ｌｏｗ  Ｖｏｌｔａｇｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌｉｎｇ）レシーバが用いられる。レシーバ４０１は、差動クロック信号ｒｘ＿ｃｌｐ、ｒｘ＿ｃｌｎに従い、入力データｒｘ＿ｄｐ［７：０］、ｒｘ＿ｄｎ［７：０］をシングルエンド形式の８ビットデータに変換する。ＤＡＣ４０３は、この８ビットデータをアナログデータに変換する。ＤＡＣ４０４から出力されるアナログデータは、逐次ＭＡＣアレイ４０５に書き込まれる。
【００９３】
＜ＭＡＣアレイ４０５、４０６＞
図７を参照して、ＭＡＣアレイ４０５の回路構成例を説明する。ＭＡＣアレイ４０５には、１０２４行１４４列の行列状に乗算回路４０が設けられている。乗算回路４０は、図２Ｂのｏｘメモリ回路１２と同じ回路構成である。つまり、乗算回路４０は、演算回路と、重み係数を記憶する不揮発性ローカルメモリ回路双方の機能を持つ。このことにより、ｏｘＡＩチップ４００は、ＧＰＵと比べて非常に少ないトランジスタ数によって、超並列演算を実現できる。トランジスタ数の低減は、ｏｘＡＩチップ４００の小型化、消費電力の低減につながる。
【００９４】
ＭＡＣアレイ４０５には、乗算回路４０の配列に応じて、ゲート線ＧＬ１、データ線ＶＸ１、ＷＤ１、ＲＤ１が設けられている。データ線ＷＤ１は重み係数データを乗算回路４０に入力するための配線である。データ線ＷＤ１には、ＤＡＣ４０３からアナログデータが入力される。ゲート線ＧＬ１は、重み係数データを入力する乗算回路４０を選択するための信号線である、ゲート線ＧＬ１は、ゲートドライバ４０７によって駆動される。
【００９５】
乗算回路４０に重み係数データｗ０を書き込むことで、乗算回路４０の保持ノード（読出しトランジスタのゲート）の電圧は、重み係数データに応じた電圧Ｖｗ０となる。
【００９６】
データ線ＶＸ１は、ＣＦＮＮが処理するデータの入力用配線である。データ線ＶＸ１には、ＤＡＣ４０２からアナログデータが入力される。データ線ＲＤ１には、乗算回路４０の演算結果が読みだされる。データ線ＲＤ１には、電流源４２、オフセット回路４３が電気的に接続されている。
【００９７】
乗算回路４０に流れる電流Ｉ０は、保持ノードの電圧Ｖｘ０とデータ線ＲＤ１の電圧Ｖｘ０の積に比例する。つまり、電流Ｉ０は、重み係数と入力データの積を表している。同様に、電流Ｉ１は、保持ノードの電圧Ｖｗ１と電圧Ｖｘ１との積に比例する。つまり乗算回路４０は、重み係数データと入力データとの積を計算することができる。
【００９８】
データ線ＲＤ１あたり１０２４個の乗算回路４０が電気的に接続されている。電流源４２は参照電流Ｉｒｅｆを生成する。オフセット回路４３に入力される電流Ｉｏｕｔは、参照電流Ｉｒｅｆと電流Ｉｍａｃとの差分である。電流Ｉｍａｃは、１０２４個の乗算回路４０を流れる電流の総和であり、重み係数と入力データとの積和した値を表す。参照電流ＩｒｅｆとＩｍａｃとの差分ととることで、電流Ｉｏｕｔのノイズ成分を低減できる。
【００９９】
オフセット回路４３は、電流Ｉｏｕｔを電圧Ｖｏｕｔに変換し、参照電圧Ｖｒｅｆと電圧Ｖｏｕｔとの差分をとる。これにより、電圧Ｖｏｕｔのノイズ成分が低減される。オフセット回路４３、ＶｒｅｆとＶｏｕｔとの差分電圧を増幅して、活性化関数回路４４に出力する。活性化関数回路４４は処理したデータをＭＡＣアレイ４０５に出力する。
【０１００】
なお、ＭＡＣアレイ４０５の１４４列のうちの１６列は、電流Ｉｏｕｔの生成に寄与せず積和演算に用いられる参照データを保持する。
【０１０１】
ＭＡＣアレイ４０６は、ＭＡＣアレイ４０５と同様の構成である。乗算回路４０が３６行１２８列の行列状に配置されている。ＭＡＣアレイ４０６において、３６行のうちの４行は、電流Ｉｏｕｔの生成に寄与せず、参照データの保持に用いられる。
【０１０２】
図６に示すイネーブル信号ｅｎ＿ｃｍは、ＭＡＣアレイ４０５、４０６の電流源４２用のイネーブル信号である。イネーブル信号ｅｎ＿ａｂｓは、ＭＡＣアレイ４０５、４０６のオフセット回路４３用のイネーブル信号であり、信号ｏｓｐ１、ｏｓｎ１、ｅｎ＿ｒｅｓ１はＭＡＣアレイ４０５のオフセット回路４３の制御信号であり、信号ｏｓｐ２、ｏｓｎ２、ｅｎ＿ｒｅｓ２はＭＡＣアレイ４０６のオフセット回路４３の制御信号である。
【０１０３】
＜ＡＤＣ４０８、ＴＸ４０９＞
ＡＤＣ４０８には、ＭＡＣアレイ４０６から３２のアナログデータが並列に入力される。ＡＤＣ４０８は、シリアルパラレル変換を行うため、出力段にレジスタを備える。ＡＤＣ４０８は、１チャネルの８ビットデジタルデータを出力する。
【０１０４】
信号ｃｌｋ＿ｓａｒ、ｒｅｓ＿ｓａｒ、ｇｏ、ｓｔｂｙ＿ａｄｃは、それぞれ、ＡＤＣ４０８用のクロック信号、リセット信号、イネーブル信号、スタンバイ信号である。信号ｄｃｌｋ＿ｐ２ｓ、ｅｎ＿ｐ２ｓ＿ｐｅｒ、ｅｎ＿ｐ２ｓ＿ｓｅｒは、それぞれ、レジスタ用のクロック信号、ラッチ信号、出力イネーブル信号である。ＡＤＣ４０８には、３２のアナログデータが入力され、８ビットデジタルデータをトランスミッタ４０９へ出力する。信号ｓｔｂｙ＿ｔｘはトランスミッタ４０９用のスタンバイ信号である。
【０１０５】
トランスミッタ４０９は、信号ｄｃｌｋ＿ｐ２ｓに応じて、８ビットデジタルデータを差分形式のデータｔｘ＿ｄｐ［７：０］、ｔｘ＿ｄｎ［７：０］に変換し、出力し、信号ｄｃｌｋ＿ｐ２ｓを差分形式のクロック信号ｔｘ＿ｃｌｐ、ｔｘ＿ｃｌｎに変換し、出力する。差分データｔｘ＿ｄｐ［７：０］、ｔｘ＿ｄｎ［７：０］は、ＦＣＮＮが取得した３２種類の推論データである。
【０１０６】
ＭＡＣアレイ４０５、４０６の入力および出力データはアナログデータであるので、入出力データがデジタルデータである場合と比較し、ＭＡＣアレイ４０５、４０６の配線数を大幅に低減することができる。乗算回路４０は、乗算機能と、重み係数データの保持機能双方を備えるため、演算時にデータを読み込むことがない。つまり、乗算回路４０は、データの授受の時間ペナルティーおよび電力ペナルティーが実質的にない。
【０１０７】
並列処理アーキテクチャをもつプロセッサとしてＧＰＵが知られている。ＧＰＵも、ＣＰＵと同様に、演算部とメモリ部間のデータ授受が演算効率のボトルネックとされている。これに対して、ｏｘＡＩチップ４００はこのような問題点がない。
【０１０８】
乗算回路４０は、２Ｔゲインセルと同じ回路構成であり、少ないトランジスタ数によって、アナログデータの掛け算を行うことができる。したがって、多数の乗算回路４０を用いて、積和演算部を構成することで、低消費電力で、超並列演算処理が可能なｏｘＡＩチップ４００を提供することができる。例えば、乗算回路４０の数が１０６乃至１０８個程度であり、動作周波数３ＭＨｚ又は３０ＭＨｚである場合、ｏｘＡＩチップ４００の演算性能は、３ＴＯＰＳ（Ｔｅｒｅ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）乃至３ＰＯＰＳ（Ｐｅｔａ  ＯＰＳ）程度である。
【０１０９】
＜＜プログラマブルｏｘＡＩチップ＞＞
ここで示すｏｘＡＩチップ４５０は、プログラマブルＮＮを構成できる。ｏｘＡＩチップ４５０が演算するデータの形式はデジタルである。ｏｘＡＩチップ４５０の演算回路は、専用の不揮発性ローカルメモリ回路を有し、不揮発性ローカルメモリはｏｘメモリ回路で構成されている。ｏｘＡＩチップ４５０のＮＮは、例えば、各種画像処理（例えば、ノイズ除去、高解像度化）、物体認識、汎用ＡＩとして用いることができる。
【０１１０】
図８は、ｏｘＡＩチップ４５０の構成例を示す機能ブロック図である。ｏｘＡＩチップ４５０は、コントローラ４６０、Ｉ２Ｃモジュール４６２、レシーバ（ＲＸ）４６３、トランスミッタ（ＴＸ）４６４、データドライバ４６６、ワードドライバ４６７を有する。コントローラ４６０は、演算回路アレイ４７０、演算部４７１、ＳＲＡＭ４７２、セレクタ４７４、４７５、デマルチプレクサ４７６を有する。
【０１１１】
ｏｘＡＩチップ４５０の入力データには、動作設定データ、学習済みデータ、パイプライン構造データ、演算回路アレイ４７０が処理するデータがある。学習済みデータ、パイプライン構造データは、コントローラ４６０のコンフィギュレーションデータとして、ｏｘＡＩチップ４５０に入力される。
【０１１２】
データｓｄａはシリアル形式の動作設定データであり、Ｉ２Ｃモジュール４６２に書き込まれる。Ｉ２Ｃモジュール４６２は、書き込まれた動作設定データをコントローラ４６０に出力する。信号ｉ２ｃ＿ｃｌｋ、ｉ２ｃ＿ｒｅｓｅｔｂ、ｓｃｌは、それぞれ、Ｉ２Ｃコントローラ用クロック信号、Ｉ２Ｃリセット信号、Ｉ２Ｃクロック信号である。信号Ｏ＿ＳＡＶＥ、Ｏ＿ＬＯＡＤ、ＯＳ＿ＵＳＥは、動作設定データのバックアップ制御に用いられる。
【０１１３】
データＤＡＴＡ０は、データドライバ４６６に入力される。データＤＡＴＡ０はコンフィグレーションデータである。データドライバ４６６からは信号ｎＳＴＡＴＵＳが出力される。信号ｎＳＴＡＴＵＳは、コンフィギュレーション状態をあらわす信号である。
【０１１４】
ｏｘＡＩチップ４５０へのデータ伝送方式には、シングルエンド方式と、ＬＶＤＳ方式とが可能である。データｄｉｎ［７：０］はシングルエンド方式の入力データであり、セレクタ４７４に入力される。レシーバ４６３は、ｏｘＡＩチップ４００のレシーバと同様の構成であり、差動クロック信号ｒｘ＿ｃｌｐ、ｒｘ＿ｃｌｎに従い、差動入力データｒｘ＿ｄｐ［７：０］、ｒｘ＿ｄｎ［７：０］をシングルエンド方式のデータｒｘ＿ｄｓ［７：０］に変換し、セレクタ４７４に出力する。信号ｓｔｂｙ＿ｒｘ、ｈｐｅ＿ｒｘはそれぞれ、はレシーバ４６３のスタンバイ信号である。
【０１１５】
信号ｎＣＯＮＦＩＧ、ＤＣＬＫがコントローラ４６０に入力され、コントローラ４６０は信号ＣＯＮＦ＿ＤＯＮＥを出力する。信号ｎＣＯＮＦＩＧ、ＤＣＬＫはそれぞれ、コンフィギュレーション開始信号、コンフィギュレーション用クロック信号である。信号ＣＯＮＦ＿ＤＯＮＥはコンフィギュレーションが完了したことを表す信号である。
【０１１６】
信号ｓｙｓ＿ｃｌｋ、ｓｙｓ＿ｒｅｓｅｔｂ、ｕｓｅｒ＿ｒｅｓｅｔｂ、ｃｏｎｔｅｘｔ＿ｅｘ［５：０］はシステムクロック信号、システムリセット信号、ユーザリセット信号、外部コンテキスト信号である。信号ｄａｔａ＿ｅｎは、コントローラ４６０への入力データの伝送を実行する期間を設定する信号である。これらの信号は、コントローラ４６０に入力される。コントローラ４６０は信号Ｓｔａｔｅ［２：０］、ｓａｂｓｔａｔｅ［２：０］を出力する。信号Ｓｔａｔｅ［２：０］、ｓａｂｓｔａｔｅ［２：０］はそれぞれコントローラ４６０内部の状態、サブ状態をあらわす。
【０１１７】
演算回路アレイ４７０には、セレクタ４７５の出力データが入力される。演算回路アレイ４７０は処理したデータを演算部４７１に出力する。演算部４７１の出力データはＳＲＡＭ４７２で一時的に記憶される。ＳＲＡＭ４７２から読み出されたデータは、セレクタ４７５、デマルチプレクサ４７６に出力される。セレクタ４７５は、セレクタ４７４の出力データ、ＳＲＡＭ４７３の出力データの何れか一方を演算回路アレイ４７０に出力する。
【０１１８】
デマルチプレクサ４７６は、データの出力形式を選択する機能をもつ。デマルチプレクサ４７６の一方の出力データは、シングルエンド形式のデータｄｏｕｔ［７：０］としてｏｘＡＩチップ４５０外部に出力される。他方の出力データはトランスミッタ４６４で処理され、差動形式のデータｔｘ＿ｄｐ［７：０］、ｔｘ＿ｄｎ［７：０］に変換され、ｏｘＡＩチップ４５０外部に出力される。
【０１１９】
＜演算回路アレイ４７０＞
図９〜図１３を参照して、演算回路アレイ４７０について説明する。図９に示すように、演算回路アレイ４７０は、複数の演算回路２１、複数のスイッチ回路２２が行列状に設けられている。演算回路２１、スイッチ回路２２はプログラマブル回路である。演算回路アレイ４７０の処理内容に合わせて、演算回路２１は回路構成される。演算回路アレイ４７０の処理内容に合わせて、スイッチ回路２２の回路構成を変更することにより、演算回路２１の接続関係が変更される。
【０１２０】
なお、図９中の「Ｕ」、「Ｄ、「Ｌ」、「Ｒ」はスイッチ回路２２の配線の名称であり、かつ接続方向（上、下、左、右）を表している。
【０１２１】
図１０に演算回路２１の構成例を示す。演算回路２１は、入力レジスタ５１、メモリ回路５２、乗算回路５３、加算回路５４、出力レジスタ５５Ａ、５５Ｂ、セレクタ５６Ａ〜５６Ｄ、メモリ回路５７Ａ〜５７Ｃを有する。メモリ回路５２、５７Ａ〜５７Ｃは、演算回路２１の不揮発性ローカルメモリ回路であり、ｏｘメモリ回路が適用されている。
【０１２２】
入力レジスタ５１には、データｓｉｎが入力される。入力レジスタ５１はラッチ信号ｓｌａｔの制御でデータｓｉｎを保持する。入力レジスタ５１は、保持データをデータｓｏｕｔとして、セレクタ５６Ａに出力する。メモリ回路５７Ａの出力信号に従い、セレクタ５６Ａは、データｓｉｎとデータｓｏｕｔの何れか一方を選択し、選択したデータを乗算回路５３に出力する。データｓｏｕｔは、演算回路２１の外部に出力される。入力レジスタ５１を設けることで、データｓｉｎを入力レジスタ５１で一時的に保持することで、データｓｉｎをシフトしたデータｓｏｕｔを出力することができる。
【０１２３】
メモリ回路５２は、コンテキスト信号ｃｏｎｔｅｘ＿Ｗ［１：０］が入力される。コンテキスト信号ｃｏｎｔｅｘ＿Ｗ［１：０］は、信号ｃｏｎｔｅｘ＿ｅｘ［５：０］をデコードすることで生成される内部信号である。メモリ回路５２は複数の重み係数データを記憶している。重み係数データは、コンフィギュレーションデータとして、メモリ回路５２に書き込まれている。コンフィギュレーションデータはデータドライバ４４６から伝送される。
【０１２４】
図１１Ａに示すように、メモリ回路５２は、フリップフロップ７１、デコーダ７２、メモリセル７３＿０〜７３＿３、トランジスタ７７、ラッチ回路７８を有する。メモリセル７３＿０〜７３＿３は、ｏｘメモリ回路１３（図２Ｃ参照）と同じ回路構成であり、３個のｏｘトランジスタでなるゲインセルである。
【０１２５】
信号ｗｏｒｄ０〜ｗｏｒｄ３はワードドライバ６７で生成される。信号ｗｏｒｄ０〜ｗｏｒｄ３によって１個のメモリセルが選択され、選択されたメモリセルにコンフィギュレーションデータが書き込まれる。
【０１２６】
フリップフロップ７１は、コンテキスト信号ｃｏｎｔｅｘｔ＿Ｗ［１：０］を保持するする。デコーダ７２は、コンテキスト信号ｃｏｎｔｅｘｔ＿Ｗ［１：０］をデコードして、切替え信号ｃｏｎｔｅｘｔ＿Ｗ０〜ｃｏｎｔｅｘｔ＿Ｗ３を生成し、出力する。機能を有する。切替え信号ｃｏｎｔｅｘｔ＿Ｗ０〜ｃｏｎｔｅｘｔ＿Ｗ３は、重み係数データを出力するメモリセルを選択する機能を持つ。選択されたメモリセルから読み出された重みデータは、データｃｍｏｕｔとして、乗算回路５３へ出力される。トランジスタ７７は、データｃｍｏｕｔが読みだされる配線を電圧Ｖｐｒｅにプリチャージする機能を持つ。信号ｐｒｃｈに従い、トランジスタ７７は当該配線をプリチャージする。
【０１２７】
図１１Ｂにメモリセルの他の構成例を示す。図１１Ｂに示すメモリセル７４は、メモリセル７３＿０の変形例であり、読出しトランジスタのゲートに２個のインバータ回路でなるラッチ回路が設けられている。例えば、これらインバータ回路は、ｎチャネル型Ｓｉトランジスタとｐチャネル型ＳｉトランジスタでなるＣＭＯＳ回路である。
【０１２８】
図１２にメモリ回路５７Ａの構成例を示す。メモリ回路５７Ａは、メモリセル９１＿０、９１＿１、トランジスタ９２＿０、９２＿１、９３を有する。メモリ回路５７Ａには、コンフィギュレーションデータ、切替え信号ｃｏｎｔｅｘｔ＿Ａ０、ｃｏｎｔｅｘｔ＿Ａ１、信号ｗｏｒｄＡ０、ｗｏｒｄＢ０、ｗｏｒｄＡ１、ｗｏｒｄＢ１が入力される。
【０１２９】
メモリセル９１＿０、９１＿１は、それぞれ、２個のｏｘメモリ回路１２（図２Ｂ）で構成される。メモリセル９１＿０にコンフィギュレーションデータ“１”を書き込む場合は、信号ｗｏｒｄＡ０を“Ｈ”にし、信号ｗｏｒｄＢ０、ｗｏｒｄＡ１、ｗｏｒｄＢ１を“Ｌ”にする。メモリセル９１＿１にコンフィギュレーションデータ“０”を書き込む場合は、信号ｗｏｒｄＢ０を“Ｈ”にし、信号ｗｏｒｄＡ０、ｗｏｒｄＡ１、ｗｏｒｄＢ１を“Ｌ”にする。
【０１３０】
セレクタ５６Ａへ制御信号する間は、トランジスタ９３はオフ状態である。切替え信号ｃｏｎｔｅｘｔ＿Ａ０、ｃｏｎｔｅｘｔ＿Ａ１により、トランジスタ９２＿０、９２＿１の何れか一方がオン状態になる。例えば、トランジスタ９２＿０がオンになると、メモリセル９１＿０の保持データに応じた論理の制御信号が、セレクタ５６Ａに出力される。
【０１３１】
メモリ回路５７Ｂ、５７Ｃは、メモリ回路５７Ａと同じ回路構成をもつ。
【０１３２】
乗算回路５３は、データｓｄａｔａとデータｃｍｏｕｔとの積を計算し、計算結果を表すデータｍｏｕｔを生成する。データｍｏｕｔは、加算回路５４およびセレクタ５６Ｂに出力される。
【０１３３】
データａｉｎは、他の演算回路２１の出力データ、または、セレクタ４７５の出力データである。加算回路５４は、データａｉｎとデータｍｏｕｔとの和を計算し、計算結果を表すデータａｏｕｔを生成する。データａｏｕｔはセレクタ５６Ｂに出力される。
【０１３４】
出力レジスタ５５Ａはセレクタ５６Ｂの出力データを保持し、出力レジスタ５５Ｂはセレクタ５６Ｃの出力データを保持する。出力レジスタ５５Ａ、５５Ｂを設けることで、信号遅延による演算エラーを防ぐことができる。信号ｒｅｓ＿ｒｇは、出力レジスタ５５Ａ、５５Ｂのリセット信号である。
【０１３５】
出力レジスタ５５Ａは保持データをセレクタ５６Ｄに出力する。セレクタ５６Ｄまたは出力レジスタ５５Ｂの出力データが、データｓｏｕｔとして演算回路２１から出力される。
【０１３６】
演算回路アレイ４７０には演算回路２１が行列状に配列されているので、演算回路アレイは、積和演算装置として機能させることができる。
【０１３７】
演算回路アレイ４７０の出力データは、演算部４７１に入力される。例えば、演算部４７１は、活性化関数の機能および／またはプーリング層の機能を持つ。
【０１３８】
＜スイッチ回路２２の構成＞
図１３Ａ、図１３Ｂを参照して、スイッチ回路２２を説明する。図１３Ａに示すように、スイッチ回路２２には、８個のスイッチ回路２５が設けられている。データｓｏｕｔの出力用配線２６Ｓは、配線Ｕ、Ｄ、Ｌ、Ｒのうちの何れか１に電気的に接続される。データａｃｏｕｔの出力用配線２６Ａについても同様である。
【０１３９】
図１３Ｂに示すように、スイッチ回路２５は、フリップフロップ８０、デコーダ８１、メモリセル８３＿０、８３＿１、配線８７を有する。配線８７は、配線Ｌ、Ｒ、ＵまたはＤのいずれかの配線である。図１３Ｂには、４ビットデータを伝えるためのスイッチ回路２５を図示している。
【０１４０】
フリップフロップ８０は、コンテキスト信号ｃｏｎｔｅｘｔ＿Ｃを保持する。デコーダ７２は、コンテキスト信号ｃｏｎｔｅｘｔ＿Ｃをデコードして、切替え信号ｃｏｎｔｅｘｔ＿Ｃ０、ｃｏｎｔｅｘｔ＿Ｃ１を生成する。メモリセル８３＿０には信号ｃｏｎｔｅｘｔ＿Ｃ０、ｗｏｒｄ０が入力され、メモリセル８３＿１には信号ｃｏｎｔｅｘｔ＿Ｃ０、ｗｏｒｄ１が入力される。
【０１４１】
メモリセル８３＿０の書込みトランジスタは、バックゲートを有するｏｘトランジスタである。メモリセル８３＿０において、バックゲートを有さないｎチャネル型トランジスタはＳｉトランジスタである。なお、メモリセル８３＿０の全てのトランジスタがｏｘトランジスタであってもよい。メモリセル８３＿１についても堂々である。
【０１４２】
信号ｗｏｒｄ０によって、書込みトランジスタをオン状態にすることで、メモリセル８３＿０へコンフィギュレーションデータが書き込まれる。切替え信号ｃｏｎｔｅｘｔ＿Ｃ０によって、メモリセル８３＿０が選択される場合、メモリセル８３＿０が保持しているコンフィギュレーションデータに応じて、配線８７と演算回路２１間の接続状態が決定される。
【０１４３】
演算回路２１およびスイッチ回路２２は不揮発性ローカルメモリ回路を内蔵しているため、回路２１、２２は、演算中にｏｘＡＩチップ４５０の外部のメモリ装置にアクセスする必要がない。よって、ｏｘＡＩチップ４５０もｏｘＡＩチップ４００と同様に演算部とメモリ部間のデータ授受が演算効率のボトルネックにならない。演算回路２１間でデータの受け渡しと、演算処理とが逐次実行されるため、演算を高効率に行える。
【０１４４】
演算回路２１およびスイッチ回路２２がマルチコンテキスト方式のプログラマブルな回路であるため、少ないハードウエハ資源で、超並列演算処理を効率よく実行することが可能である。また、様々なＮＮをｏｘＡＩチップ４５０のハードウエアによって実現することができる。例えば、図１４に示すような畳み込みＮＮをｏｘＡＩチップ４５０のハードウエハで実現することができる。図１４の数値は、層のサイズ、深さ（チャネル数）を表している。例えば、入力層の幅Ｗ、高さＨ、チャネル数Ｍは、それぞれ３８、２４、１である。入力層のフィルタのサイズＷ×Ｈ×Ｍは３×３×１である。
【符号の説明】
【０１４５】
１１、１２、１３、１４：ｏｘメモリ回路、
１００：半導体装置、  １１０：データバス、  １１２：Ｉ／Ｏ（入出力）インターフェース、  １１４：メモリ部、  １１５：ＦＰＧＡチップ、１２０：ｏｘＡＩチップ、
１２１Ａ、１２１Ｂ、１２１Ｃ：回路部、  １５０：周辺機器、
２００、２０２：評価ボード、  ２０２：評価ボード、  ２１０、２１２：ボード、
２２０、２２２：ｏｘＡＩチップ、  ２２５：ＧＰＵチップ、  ２３１、２３２：メモリチップ、  ２３５、２３６：ＦＰＧＡチップ、  ２４０：ＰＣＩｅコネクタ、  ２４２：ＵＳＢコネクタ、  ２４４：ＨＤＭＩ入力コネクタ、  ２４４：ＨＤＭＩ入力コネクタ、  ２４５：ＨＤＭＩ出力コネクタ、
２５０Ａ、２５０Ｂ、２５２Ａ、２５２Ｂ：コネクタ
【図１】
2019033234.tif 000003
【図２】
2019033234.tif 000004
【図３】
2019033234.tif 000005
【図４】
2019033234.tif 000006
【図５】
2019033234.tif 000007
【図６】
2019033234.tif 000008
【図７】
2019033234.tif 000009
【図８】
2019033234.tif 000010
【図９】
2019033234.tif 000011
【図１０】
2019033234.tif 000012
【図１１】
2019033234.tif 000013
【図１２】
2019033234.tif 000014
【図１３】
2019033234.tif 000015
【図１４】
2019033234.tif 000016
【図１５】
2019033234.tif 000017
【図１６】
2019033234.tif 000018