(57)【要約】【課題】回路規模を低減させることが可能な半導体装置、半導体装置の制御方法、及び、制御プログラムを提供すること。【解決手段】半導体装置１は、半導体集積回路１１と、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報が少なくとも格納されているメモリ１２と、を備え、半導体集積回路１１は、複数の基本論理素子間の接続関係を切り替えることによって回路構成の変更が可能な演算処理部１１２と、メモリ１２に格納された関数の単位の回路構成情報に基づいて複数の基本論理素子間の接続関係を切り替えることにより、演算処理部１１２における関数に対応する回路部分の構成を変更する、構成管理部１１１と、を有する。【選択図】図１
2020188096.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路と、
回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報が少なくとも格納されているメモリと、
を備え、
前記半導体集積回路は、
複数の基本論理素子間の接続関係を切り替えることによって回路構成の変更が可能な演算処理部と、
前記メモリに格納された関数の単位の前記回路構成情報に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更する、構成管理部と、
を有する、半導体装置。
【請求項２】
前記構成管理部は、状態遷移マシンにおいて状態が遷移するタイミングに合わせて、前記演算処理部における前記関数に対応する回路部分の構成を変更するように構成されている、
請求項１に記載の半導体装置。
【請求項３】
前記半導体集積回路は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である、
請求項１又は２に記載の半導体装置。
【請求項４】
前記半導体集積回路は、動的再構成プロセッサである、
請求項１又は２に記載の半導体装置。
【請求項５】
前記メモリは、前記半導体集積回路の外部に設けられた外部メモリである、
請求項１〜４の何れか一項に記載の半導体装置。
【請求項６】
演算処理部に設けられた複数の基本論理素子間の接続関係を切り替えることによって所定の演算処理を行う回路を構成するステップと、
メモリに格納された、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報、に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更するステップと、
を備えた、半導体装置の制御方法。
【請求項７】
前記回路の動作に関する記述に含まれる前記関数の単位で動作合成を行うステップと、
前記回路の動作に関する記述のうち前記関数以外の記述の動作合成を行うステップと、
前記関数の単位で動作合成した結果と、前記回路の動作に関する記述のうち前記関数以外の記述を動作合成した結果と、を用いて回路全体の論理合成を行うステップと、
前記関数の単位で動作合成した結果を用いて前記関数の単位の論理合成を行うステップと、
前記回路全体の論理合成によって生成された回路構成情報と、前記関数の単位の論理合成によって生成された回路構成情報と、を前記メモリに格納するステップと、
をさらに備え、
前記所定の演算処理を行う回路を構成するステップでは、
前記回路全体の論理合成によって生成された回路構成情報に基づいて、前記所定の演算処理を行う回路を構成し、
前記関数に対応する回路部分の構成を変更するステップでは、
前記関数の単位の論理合成によって生成された回路構成情報に基づいて、前記関数に対応する回路部分の構成を変更する、
請求項６に記載の半導体装置の制御方法。
【請求項８】
演算処理部に設けられた複数の基本論理素子間の接続関係を切り替えることによって所定の演算処理を行う回路を構成する処理と、
メモリに格納された、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報、に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更する処理と、
をコンピュータに実行させる制御プログラム。
【請求項９】
前記回路の動作に関する記述に含まれる前記関数の単位で動作合成を行う処理と、
前記回路の動作に関する記述のうち前記関数以外の記述の動作合成を行う処理と、
前記関数の単位で動作合成した結果と、前記回路の動作に関する記述のうち前記関数以外の記述を動作合成した結果と、を用いて回路全体の論理合成を行う処理と、
前記関数の単位で動作合成した結果を用いて前記関数の単位の論理合成を行う処理と、
前記回路全体の論理合成によって生成された回路構成情報と、前記関数の単位の論理合成によって生成された回路構成情報と、を前記メモリに格納する処理と、
をさらにコンピュータに実行させ、
前記所定の演算処理を行う回路を構成する処理では、
前記回路全体の論理合成によって生成された回路構成情報に基づいて、前記所定の演算処理を行う回路を構成し、
前記関数に対応する回路部分の構成を変更する処理では、
前記関数の単位の論理合成によって生成された回路構成情報に基づいて、前記関数に対応する回路部分の構成を変更する、
請求項８に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、半導体装置の制御方法、及び、制御プログラムに関する。
【背景技術】
【０００２】
回路構成を書き換え可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）には、回路規模の低減が求められている。特に高い耐放射線性が求められる宇宙機搭載用ＦＰＧＡでは、回路規模に関する制約が厳しく、かつ、価格も高額であるため、回路規模の低減に対する要求が高い。
【０００３】
回路規模の低減に関する技術は、例えば非特許文献１に開示されている。非特許文献１では、回路の動作に関する記述に含まれる関数の単位で動作合成（高位合成）を行い、生成されたＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）コードを用いて回路全体の論理合成を行うことで、回路規模の最適化（低減）が行われる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Hiroki Hihara, Akira Iwasaki, Masanori Hashimoto, Hiroyuki Ochi, Yukio Mitsuyama, Hidetoshi Onodera, Hiroyuki Kanbara, Kazutoshi Wakabayashi, Tadahiko Sugibayashi, Takashi Takenaka, Hiromitsu Hada, Munehiro Tada, Makoto Miyamura, Toshitsugu Sakamoto, "Sensor Signal Processing Using High-Level Synthesis With a Layered Architecture", IEEE Embedded Systems Letters, 2018, Vol. 10, Issue 4, pp. 119-122, IEEE Journals & Magazines
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１には、ＦＰＧＡにおいて特に有効な回路規模の低減手法については開示されていない。そのため、回路構成を書き換え可能なＦＰＧＡ等では、引き続き回路規模を低減することが求められている。
【０００６】
本開示の目的は、上述した課題を解決する半導体装置、半導体装置の制御方法、及び、制御プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、半導体集積回路と、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報が少なくとも格納されているメモリと、を備え、前記半導体集積回路は、複数の基本論理素子間の接続関係を切り替えることによって回路構成の変更が可能な演算処理部と、前記メモリに格納された関数の単位の前記回路構成情報に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更する、構成管理部と、を有する。
【０００８】
一実施の形態によれば、半導体装置の制御方法は、演算処理部に設けられた複数の基本論理素子間の接続関係を切り替えることによって所定の演算処理を行う回路を構成するステップと、メモリに格納された、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更するステップと、を備える。
【０００９】
一実施の形態によれば、制御プログラムは、演算処理部に設けられた複数の基本論理素子間の接続関係を切り替えることによって所定の演算処理を行う回路を構成する処理と、メモリに格納された、回路の動作に関する記述に含まれる関数の単位で動作合成及び論理合成した結果である回路構成情報に基づいて前記複数の基本論理素子間の接続関係を切り替えることにより、前記演算処理部における前記関数に対応する回路部分の構成を変更する処理と、をコンピュータに実行させる。
【発明の効果】
【００１０】
前記一実施の形態によれば、回路規模を低減させることが可能な半導体装置、半導体装置の制御方法、及び、制御プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる半導体装置の構成例を示すブロック図である。
【図２】図１に示すメモリに格納される回路構成情報の生成方法を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。ただし、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１４】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１５】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体装置１の構成例を示すブロック図である。
図１に示す半導体装置１は、半導体集積回路１１と、メモリ１２と、を備える。
半導体集積回路１１は、例えばＦＰＧＡであって、構成管理部１１１と、演算処理部１１２と、を有する。演算処理部１１２は、複数の基本論理素子（Ｂａｓｉｃ  Ｌｏｇｉｃ  Ｅｌｅｍｅｎｔ：ＢＬＥ）によって構成されている。構成管理部１１１は、演算処理部１１２に設けられた複数の基本論理素子間の接続関係を切り換えることにより、演算処理部１１２において所定の演算処理を行う回路構成を実現している。
【００１６】
メモリ１２には、詳しくは後述するが、少なくとも関数単位の複数の回路構成情報（例えばゲートレベルのネットリスト）ＮＴ１〜ＮＴｎが格納されている。メモリ１２は、例えば、書き換え不可能なＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、書き換え可能なＲＡＭ、及び、これらの組み合わせのいずれかであって、ＦＰＧＡである半導体集積回路１１の外部に設けられている。
【００１７】
構成管理部１１１は、メモリ１２に格納された何れかの回路構成情報に基づいて演算処理部１１２に設けられた複数の基本論理素子間の接続関係を切り換えることにより、演算処理部１１２における回路構成の一部又は全部を書き換える。
【００１８】
図２は、メモリ１２に格納される回路構成情報の生成方法を説明するための図である。
図２に示すように、まず、回路全体の動作に関する記述（例えばＣ言語）のうち関数部分の動作記述についての動作合成（高位合成を含む）を行う。それにより、関数単位のＲＴＬコードが生成される。また、回路全体の動作に関する記述のうち関数以外の動作記述についての動作合成を行う。それにより、関数部分がブラックボックス化された回路全体のＲＴＬコードが生成される。
【００１９】
その後、関数部分がブラックボックス化された回路全体のＲＴＬコードと、関数単位のＲＴＬコードと、を用いて、論理合成を行う。それにより、回路全体のゲートレベルのネットリストが生成される。また、関数単位のＲＴＬコードを用いて論理合成を行う。それにより、関数単位のゲートレベルのネットリストが生成される。これらのネットリストは、回路構成情報としてメモリ１２に格納される。
【００２０】
構成管理部１１１は、例えば、メモリ１２に格納された回路全体の回路構成情報に基づいて演算処理部１１２に設けられた複数の基本論理素子間の接続関係を切り換えることにより、演算処理部１１２において所定の演算処理を行う回路構成を実現する。
【００２１】
このように、半導体集積回路１１は、関数部分がブラックボックス化された回路全体のＲＴＬコードと、関数単位のＲＴＬコードと、を用いて論理合成を行った結果である回路構成情報を用いて、演算処理部１１２において所定の回路構成を実現している。それにより、半導体集積回路１１は、非特許文献１の場合と同様に回路構成を最適化（即ち、回路規模を低減）することができる。また、メモリ１２には最適化された回路構成情報が格納されるため、メモリ１２の効率的な利用が可能となる。特に高い耐放射線性が求められる宇宙機搭載用ＦＰＧＡ及びメモリでは、回路規模に関する制約が厳しく、かつ、価格も高額であるため、回路規模の低減に対する要求が高い。そのため、宇宙機搭載用ＦＰＧＡ及びメモリには、本実施の形態に係る半導体装置１は有効である。
【００２２】
さらに、構成管理部１１１は、メモリ１２に格納された関数単位の回路構成情報に基づいて演算処理部１１２に設けられた複数の基本論理素子間の接続関係を切り換えることにより、演算処理部１１２における関数に対応する回路部分の構成を変更可能である。それにより、半導体集積回路１１は、回路構成の最適化（即ち、回路規模の低減）を維持することができる。
【００２３】
例えば、構成管理部１１１は、状態遷移マシンの状態が遷移するタイミングに合わせて（換言すると、書き換え対象の回路部分が動作を停止させたタイミングで）、当該状態遷移マシンの状態に応じた関数単位の回路構成情報をメモリ１２から読み出す。そして、構成管理部１１１は、メモリ１２から読み出した関数単位の回路構成情報に基づいて演算処理部１１２の回路構成を書き換える。なお、状態遷移マシンの状態に応じた回路構成が演算処理部１１２において既に実現されている場合には、メモリ１２からの回路構成情報の読み出し、及び、演算処理部１１２の回路構成の書き換えは行われない。
【００２４】
このように、半導体集積回路１１は、状態遷移マシンの各状態の回路構成情報を外部のメモリ１２に格納しておけばよく、状態遷移マシンの各状態の回路構成を自己に備えておく必要がないため、実質的に回路規模を低減させることができる。ここで、メモリ１２の容量が大きくなるほど、多くの回路構成情報をメモリ１２に格納しておくことができる。そのため、半導体集積回路１１は、自己の回路規模を増大させることなく、メモリ１２に格納された複数の回路構成情報の何れかを状態に応じて選択的に読み出して大規模な回路構成を実現することができる。
【００２５】
本実施の形態では、半導体集積回路１１がＦＰＧＡである場合を例に説明したが、これに限られない。半導体集積回路１１は、例えば、動的再構成プロセッサ（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：ＤＲＰ）であっても良い。
【００２６】
本実施の形態では、メモリ１２が半導体集積回路１１に外付けされている場合を例に説明したが、これに限られない。メモリ１２は、半導体集積回路１１とネットワークを介して接続されていてもよい。或いは、メモリ１２は、半導体集積回路１１の内部に設けられた記憶部であってもよい。
【００２７】
以上、図面を参照して、本開示の実施の形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、本開示の要旨を逸脱しない範囲内において様々な設計変更等が可能である。
【００２８】
例えば、ＦＰＧＡや動的再構成プロセッサに設けられた複数の基本論理素子間の接続関係を切り替えて所定の回路構成を実現する処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることで実現可能である。或いは、動作合成（高位合成）及び論理合成の処理を、ＣＰＵにコンピュータプログラムを実行させることで実現可能である。
【００２９】
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体は、例えば、磁気記録媒体、光磁気記録媒体、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリを含む。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などである。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００３０】
１  半導体装置
１１  半導体集積回路
１２  メモリ
１１１  構成管理部
１１２  演算処理部
ＮＴ１〜ＮＴｎ  関数単位の回路構成情報
【図１】
2020188096.tif 000003
【図２】
2020188096.tif 000004