(57)【要約】  ＣＰＵからのメインメモリアクセスを減らし、データ処理の高速化を図る。  メインメモリ（６００）と、接続する再構成可能デバイス（２０）であって、再構成可能デバイス（２０）は、互いにアドレス線又はデータ線で接続する複数の論理部を備え、各論理部は、複数のアドレス線と、複数のデータ線と、複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、アドレスデコーダのデコード線により特定される複数のメモリセルを有し、特定されたメモリセルから読み出されたデータをデータ線に出力するメモリセルアレイユニットと、を有し、メモリセルアレイユニットのアドレス線が、メインメモリのデータ出力線（ＲＤ１）と接続されている、再構成可能デバイス（２０）が提供される。
2016063667.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリと、接続する再構成可能デバイスであって、  前記再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデータを前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのアドレス線が、前記メインメモリのデータ出力線と接続されている、再構成可能デバイス。
【請求項２】
前記メモリセルユニットは、マルチルックアップテーブルである、請求項１に記載の再構成可能デバイス。
【請求項３】
前記各論理部は、  前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、  前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、  前記第１アドレスデコーダのデコード線により特定される複数にメモリセルを有する第１メモリセルユニットと、  前記第２アドレスデコーダのデコード線により特定される複数のメモリセルを有する第２メモリセルユニットと、を備える請求項１又は２に記載の再構成可能デバイス。
【請求項４】
前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、請求項３に記載の半導体装置。
【請求項５】
メインメモリと、  前記メインメモリと接続する再構成可能デバイスであって、  前記再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデータを前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのデータ出力が、前記メインメモリのアドレス線と接続されている、再構成可能デバイスと、を備える半導体装置。
【請求項６】
第２の再構成可能デバイスをさらに備え、  前記第２の再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデータを前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのデータ出力が、前記メインメモリのアドレス線と接続されている、  請求項６に記載の半導体装置。
【請求項７】
前記メインメモリと、前記再構成可能デバイスの間に、両者の回路規模を調整する規模調整回路をさらに備える請求項５又は６に記載の半導体装置。 
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、再構成可能デバイス、及びそれを含む半導体装置に関する。
【背景技術】
【０００２】  ムーアの法則に基づき、半導体微細化に伴うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の演算速度は向上しているが、そのムーアの法則も終焉に向かっている。その理由は、微細化の限界にある。１０ｎｍがその限界だとされているが、現在の半導体製造技術が、その限界に近くになっており、ＣＰＵ向上によりデータ処理の高速化も鈍化してきた。【０００３】  ＣＰＵは、レジスタ内に保持されるデータを演算処理するが、演算対象のデータを、キャッシュからレジスタ内にプリフェッチし、キャッシュ内のデータが対象データではない場合、「キャッシュミス」として、メインメモリからデータを読み出す処理を行う。【０００４】  特に、データセンター等、大量のデータ処理が必要になる場合、演算処理よりも、メインメモリへのアクセスの時間が増え、これがデータ処理のボトルネックとなり、遅延化を招いている。また、データ転送における消費電力も高速化のニーズにより増加され、サーバの冷却も必要とし、データセンターの電力削減は課題となっている。なお、このようなＣＰＵアーキテクチャは、例えば、特許文献１の図１に示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１３−５１３１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】  上記のような、データ処理の遅延は、演算処理自体は、単純な演算の繰り返しであるにもかかわらず、データが大量にあるときにその傾向が強い。そのため、プロセッサが行うほどの高度な処理は、必要ない。そのため、ＣＰＵにデータを転送せず、メモリ側でデータ処理を行い、ＣＰＵはより高度な演算処理が必要なときに使用することで、データ処理の高速化が図れる。【０００７】  本実施形態に係る半導体装置は、メインメモリの側に配置され、単純な演算の繰り返しを担当することで、ＣＰＵからのメインメモリアクセスを減らし、データ処理の高速化を図る。上記課題を解決する形態は、以下の項目セットにより示されるように、半導体装置が実現される。【０００８】  １．メインメモリと、接続する再構成可能デバイスであって、  前記再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデータを前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのアドレス線が、前記メインメモリのデータ出力線と接続されている、再構成可能デバイス。【０００９】  ２．前記メモリセルユニットは、マルチルックアップテーブルである、項目１に記載の再構成可能デバイス。【００１０】  本半導体装置は、論理要素及び／又は接続要素としての動作を、マルチルックアップテーブルで行うため、配線接続を選択回路で実現するＦＰＧＡとは明確に異なる。【００１１】  ３．前記各論理部は、  前記複数のアドレス線の一部から入力されるアドレスをデコードする第１アドレスデコーダと、  前記複数のアドレス線の他の一部から入力されるアドレスをデコードする第２アドレスデコーダと、  前記第１アドレスデコーダのデコード線により特定される複数にメモリセルを有する第１メモリセルユニットと、  前記第２アドレスデコーダのデコード線により特定される複数のメモリセルを有する第２メモリセルユニットと、を備える項目１又は２に記載の再構成可能デバイス。【００１２】  ４．前記第１メモリセルユニット及び第２メモリセルユニットは、複数の真理値表データを記憶し、前記複数の真理値表データの何れか１つを特定するデータを出力する第２の複数アドレス線に接続する、項目３に記載の半導体装置。【００１３】  大容量メモリを活用し余剰アドレスをページ切替制御にして制御可能とした再構成可能な半導体装置が提供できる。【００１４】  ５．メインメモリと、  前記メインメモリと接続する再構成可能デバイスであって、  前記再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデー��を前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのデータ出力が、前記メインメモリのアドレス線と接続されている、再構成可能デバイスと、を備える半導体装置。【００１５】  ６．第２の再構成可能デバイスをさらに備え、  前記第２の再構成可能デバイスは、互いにアドレス線又はデータ線で接続する複数の論理部を備え、  前記各論理部は、    複数のアドレス線と、    複数のデータ線と、    前記複数のアドレス線の一部から入力されるアドレスをデコードするアドレスデコーダと、    前記アドレスデコーダのデコード線により特定される複数のメモリセルを有し、前記特定されたメモリセルから読み出されたデータを前記データ線に出力するメモリセルアレイユニットと、を有し、  前記メモリセルアレイユニットのデータ出力が、前記メインメモリのアドレス線と接続されている、  項目６に記載の半導体装置。【００１６】  ７．前記メインメモリと、前記再構成可能デバイスの間に、両者の回路規模を調整する規模調整回路をさらに備える項目５又は６に記載の半導体装置。
【発明の効果】
【００１７】  本実施形態は、ＣＰＵからのメインメモリアクセスを減らし、データ処理の高速化できる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態に係るコンピュータ装置の全体構成の第１例を示す図である。
【図２】本実施形態に係るコンピュータ装置の全体構成の第２例を示す図である。
【図３】構成される演算器の一例を示す図である。
【図４】ＭＲＬＤの一例を示す図である。
【図５】本実施形態に係るアドレス遷移検出部の回路図である。
【図６】図５に示したアドレス遷移検出の信号のタイミングチャートである。
【図７】２メモリセルユニットからなるＭＬＵＴを横積みして構成されるＭＬＵＴを概略的に示す図である。
【図８】大容量メモリを用いたＭＬＵＴの一例を示す図である。
【図９】図８に示すＭＬＵＴの回路例を示す図である。
【図１０】図８に示すＭＬＵＴを用いたＭＲＬＤを説明する図である。
【図１１】第２の実施形態に係る同期非同期切り替え可能なＭＬＵＴの回路例を示す図である。
【図１２】規模調整回路の一例を示す図である。
【図１３】ＭＬＵＴの一例を示す図である。
【図１４】論理回路として動作するＭＬＵＴの一例を示す図である。
【図１５】図１４に示す論理回路の真理値表を示す図である。
【図１６】接続要素として動作するＭＬＵＴの一例を示す図である。
【図１７】図１６に示す接続要素の真理値表を示す図である。
【図１８】４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。
【図１９】１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。
【図２０】図１９に示す論理要素及び接続要素の真理値表を示す。
【図２１】ＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。
【発明を実施するための形態】
【００１９】  以下、図面を参照して、１．コンピュータ装置及び半導体装置、２．ＭＲＬＤ、３．ＭＬＵＴ、４．ＭＬＵＴの論理動作、５．真理値表データの生成方法について、順に説明する。
【００２０】  １．コンピュータ装置及び半導体装置  プロセッサにとってメインメモリ上のデータは、逐次アドレスを照合しながら情報探しを実行することになるので極めて大きな時間と負担を伴う処理となる。従って効率的に情報処理を行うためには通常メモリ上のどのアドレスにどのような情報が存在するかなどを事前に整理加工し、プロセッサの情報探しの負担が軽減できるようにメタデータを用意する。例えば、ハッシュテーブルである。しかし、メタデータの準備には多大な時間を要するため、データメンテナンスを繰り返す必要があり、プロセッサを並列化するなど、装置を大型化して大電力を与える必要がある。以下に示す、コンピュータ装置又は半導体装置は、メタデータを要することなく、メモリに様々な機能を実現することができる。
【００２１】  １．１  コンピュータ装置  図１は、本実施形態に係るコンピュータ装置の全体構成の第１例を示す図である。図１に示すように、コンピュータ装置１０は、プロセッサ５１０、メインメモリ６００、通信部５３０、外部記憶装置５４０、ドライブ装置５５０、及びＩ／Ｏコントローラ５６０を有する。
【００２２】  プロセッサ５１０は、プロセッサコア５１１、Ｌ２キャッシュコントローラ５１２、Ｌ２キャッシュメモリ５１４、及びメモリコントローラ５１６を有する。また、プロセッサ５１０は、Ｉ／Ｏコントローラ５６０を介して、通信部５３０、及び外部記憶装置５４０に接続する。プロセッサ５１０は、メインメモリ６００に記憶されたプログラムを実行することで、メインメモリ６００からデータをロードし、ロードしたデータを演算して、メインメモリ６００に演算結果をストアする装置である。
【００２３】  メモリコントローラ５１６は、コンピュータ装置１０上でメインメモリ６００への、データの読み出し、書き出し、メインメモリ６００がＤＲＡＭであれば、それのリフレッシュなど、メインメモリのインタフェースを行う。例えば、メインメモリ６００からＬ２キャッシュメモリ５１４へのデータのロード、Ｌ２キャッシュコントローラ５１２からメインメモリ６００へのデータのストア等を行う。
【００２４】  Ｌ２キャッシュメモリ５１４は、メインメモリ６００が記憶するデータの一部を保持する。また、Ｌ２キャッシュメモリ５１４は、プロセッサコア５１１が有するＬ１キャッシュメモリ（Ｌ１  Ｃａｃｈｅ  Ｍｅｍｏｒｙ）が保持するデータを包含する。
【００２５】  Ｌ２キャッシュコントローラ５１２は、プロセッサコア５１１からのアクセス頻度が高いデータをＬ２キャッシュメモリ５１４に格納し、アクセス頻度が低いデータをＬ２キャッシュメモリ５１４からメインメモリ６００に追い出すように動作する。
【００２６】  プロセッサコア５１１は、例えばプロセッサコアであり、上記したプロセッサ５１０の演算機能を有する。なお、図１に示されるプロセッサコアの個数は、１個であるが、複数でもよい。プロセッサ５１０が複数のプロセッサコアを有する場合、１つのプロセッサコアがマスターとして動作し、プログラムを実行するとともに、スレーブとしての他のプロセッサコアに、プログラムを分担して実行させるように動作する。このようなマスターの動作は、プログラム内に命令列として記述され、その命令列を実行することで実現してもよい。
【００２７】  Ｉ／Ｏコントローラ５６０は、プロセッサ５１０と、他のユニットとの接続を制御する入出力制御装置である。Ｉ／Ｏコントローラ５６０は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）などの規格に従って動作する。
【００２８】  メインメモリ６００は、データやプログラムを記憶する装置である。プロセッサ５１０は、Ｉ／Ｏコントローラ５６０を介することなく、メインメモリ６００にアクセスすることができる。メインメモリ６００は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２９】  外部記憶装置５４０は、メインメモリ６００に格納されるプログラム及びデータを記憶する不揮発性の記憶装置である。外部記憶装置５４０は、磁気ディスクを用いたディスクアレイ、又は、フラッシュメモリを用いたＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。
【００３０】  通信部５３０は、通信経路としてのネットワーク１１００と接続し、ネットワーク１１００に接続された他のコンピュータ装置と、コンピュータ装置１０との間で、データを送受信する。通信部５３０は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ）である。
【００３１】  ドライブ装置５５０は、例えば、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体１２００を読み書きする装置である。ドライブ装置５５０は、記憶媒体１２００を回転させるモータや記憶媒体１２００上でデータを読み書きするヘッド等を含む。なお、記憶媒体１２００は、プログラムを格納することができる。例えば、記憶媒体１２００は、演算処理を規定するプログラムに加え、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語１２１０、真理値表データ１２３０を生成するための論理構成用プログラム１２２０を格納することができる。真理値表データ１２３０は、プロセッサコア５１１により生成されるが、図示されるように、記憶媒体１２００に格納され、運ばれてもよい。この場合、真理値表データ１２３０は、図示されない他のコンピュータ装置で生成される。ドライブ装置５５０は、ドライブ装置５５０にセットされた記憶媒体１２００からプログラムを読み出す。プロセッサ５１０は、ドライブ装置５５０により読み出されたプログラムを、メインメモリ６００又は外部記憶装置５４０に格納する。なお、真理値表データ１２３０は、再構成可能デバイス２０に書き込まれて、再構成可能デバイス２０に所望の演算処理を実行させるが、他のプログラムは、プロセッサコアにより実行される点で、両者は区別される。
【００３２】  １．１  半導体装置  １６は、メインメモリと再構成可能デバイスで少なくとも構成される半導体装置である。メインメモリ６００のデータ出力には、再構成可能デバイス２０が接続されている。再構成可能デバイスは、単純な演算を行う回路が実現されている。例えば、シーケンシャル比較機やオートマトンである。
【００３３】  メモリコントローラ５１６が、アドレスＡＤにより、所定のアドレス空間の読出しを行うと、再構成可能デバイス２０は、メインメモリ６００のアドレス空間から出力されるデータＲＤ１に対して、演算を行い、必要なデータＲＤ２をメモリコントローラ５１６に出力する。このとき、データＲＤ１に対して、演算処理を施したデータＲＤ２のデータ量は、従前のプロセッサが行うデータ処理を施した後のデータであるため、プロセッサ５１０の処理負荷を下げることができる。
【００３４】  プロセッサコア５１１は、図示しないＬ１キャッシュメモリから読み出した命令にしたがって、命令により特定される処理を、図示しないレジスタに保持されるデータに対して実行する。命令には、浮動小数点演算、整数演算、アドレス生成、分岐命令実行、及びストア又はロード動作などがある。つまり、プロセッサコア５１１は、プログラムに従って、どのような命令も動的に実行可能である。一方で、再構成可能デバイス２０は、後述するように、ＭＬＵＴ（Ｍｕｌｔｉ  Ｌｏｏｋ  ｕｐ  Ｔａｂｌｅ）で構成され、再構成にはメモリの書き換え処理を要するため、所定の命令に従って回路構成されているプロセッサコア５１１より、複数の演算処理を高速に実行することはできない。しかしながら、例えば、画像処理でのデータ検索処理や、データ検索処理の並列動作を行うことで、プロセッサ５１０からのメインメモリアクセスを劇的に低減し、コンピュータ装置１０のスループットを大幅に向上させることができる。
【００３５】  メインメモリ６００のデータ出力線は、再構成可能デバイス２０のアドレス入力線と接続される。メインメモリ６００は、高集積化されているため、再構成可能デバイス２０も同様に高集積化される方が好ましい。そのため、再構成可能デバイス２０のメモリも、メインメモリを構成するＤＲＡＭで構成されるのが好ましい。
【００３６】  図２は、本実施形態に係るコンピュータ装置の全体構成の第２例を示す図である。図１と異なり、メインメモリ６００のアドレス入力の前段に、再構成可能デバイス２０Ａが搭載されている。
【００３７】  メモリコントローラ５１６が、アドレスＡＤ１により、所定のアドレス空間の読出しを行うと、再構成可能デバイス２０Ａは、アドレスＡＤ１をアドレスＡＤ２に変換する。アドレスＡＤ２により、メインメモリ６００のアドレス空間から出力されるデータＲＤ１に対して、再構成可能デバイス２０Ｂは、演算を行い、データＲＤ２をメモリコントローラ５１６に出力する。
【００３８】  再構成可能デバイス２０Ａ及び２０Ｂは、メモリ不良救済や、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）等を実現する。メモリ不良救済とは、歩留向上のため、不良ビットを冗長ビットに置き換え不良を良品にするものである。メインメモリは、一般的に固定の救済回路を持つが、このメモリ不良救済を、再構成可能デバイス２０Ａでも実現できる。これにより、テストして不良を他のアドレスに切り替え、自立的に救済できる。
【００３９】  図３は、構成される演算器の一例を示す。再構成可能デバイス２０は、図３の演算器を、データ出力ごとに並列に構成することができる。メインメモリ６００から、選択され読み出されたワードアドレスのメモリデータは、フリップフロップに直接代入、フリップフロップの過去フラグとの論理積、論理和、排他論理、そしてメモリデータ並びにフリップフロップ出力の過去データの双方の論理否定が自由に選択されｎビット並列に任意の１ビット演算が出来る構成である。例えば８ビットのデータを演算する場合、１ビット演算を所定回繰り返すことにより実施する。現在の情報処理のデータは１ビットデータの集合体である、各１ビットが定義された情報であればこの演算方式で全ての情報処理が可能になる。
【００４０】  また、後述されるように、再構成可能デバイスは、ＭＬＵＴという論理ユニットで構成され、これらは、真理値表データを格納することで、論理要素及び／又は接続要素として構成されるので、構成可能な回路は、図３に示す演算器に限定されない。
【００４１】  また、再構成可能デバイス２０Ａ及び２０Ｂは、ＣＡＭを実現できる。ＣＡＭはメモリセル１つ１つに一致回路を持つので回路構成が極めて大掛かりになり、特殊なメモリで回路設計から作らなければならなく、メモリＩＰが使えない。しかし、再構成可能デバイス２０Ａが、メインメモリ６００にデータ登録の際に、索引のような形で登録すれば、データワードを格納するメインメモリ６００のアドレスを出力することも可能になる。
【００４２】  ２．ＭＲＬＤ  以下、再構成可能な論理デバイスを、ＭＲＬＤ（Ｍｅｍｏｒｙ  ｂａｓｅｄ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）（登録商標）とも呼び、同一の参照符号２０を用いて説明する。ＭＲＬＤは、各ＭＬＵＴ間が、配線要素を介在せずに直接接続するとともに、メモリＩＰとして供給される同期ＳＲＡＭの機能を有効に活用される。尚、以下の記述でのＭＬＵＴでは図示していないが、アドレス遷移検出部を備え、同期ＳＲＡＭでも非同期化している。これにより、非同期化すると同時に、論理を構成しないブロックには入力信号が入力されず、アドレス遷移が起こらず、電力が削減できる。論理を構成するブロックは入力信号が入力されるので、クロック生成がなされ、所定の論理値を出力できる。
【００４３】  図４に示す２０は、ＭＲＬＤの一例である。ＭＲＬＤ２０は、同期ＳＲＡＭを利用したＭＬＵＴ３０を複数個、アレイ状に配置したＭＬＵＴアレイ６０、ＭＬＵＴ３０のメモリ読出し動作、書込み動作対象となるメモリセルを特定する行デコーダ６１、及び、列デコーダ６２を有する。
【００４４】  ＭＬＵＴ３０は、同期ＳＲＡＭで構成される。メモリの記憶素子には、真理値表とみなされるデータがそれぞれ記憶されることで、ＭＬＵＴ３０は、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。
【００４５】  ＭＲＬＤ２０の論理動作では、実線で示される論理用アドレスＬＡ、及び論理用データＬＤの信号を使用する。論理用アドレスＬＡは、論理回路の入力信号として使用される。そして、論理用データＬＤは、論理回路の出力信号として使用される。ＭＬＵＴ３０の論理用アドレスＬＡは、隣接するＭＬＵＴの論理動作用データＬＤのデータ線と接続している。
【００４６】  ＭＲＬＤ２０の論理動作により実現される論理は、ＭＬＵＴ３０に記憶される真理値表データにより実現される。いくつかのＭＬＵＴ３０は、ＡＮＤ回路、加算器などの組み合わせ回路としての論理要素として動作する。他のＭＬＵＴは、組み合わせ回路を実現するＭＬＵＴ３０間を接続する接続要素として動作する。ＭＬＵＴ３０が、論理要素、及び接続要素を実現するための真理値表データの書き換えは、メモリへの書き込み動作によりなされる。
【００４７】  ＭＲＬＤ２０の書き込み動作は、書込用アドレスＡＤ、及び書込用データＷＤによりなされ、読出し動作は、書込用アドレスＡＤ、及び読出用データＲＤによりなされる。
【００４８】  書込用アドレスＡＤは、ＭＬＵＴ３０内のメモリセルを特定するアドレスである。書込用アドレスＡＤは、m本の信号線で、２のｍ乗の数ｎのメモリセルを特定する。行デコーダ６１は、m本の信号線を介してＭＬＵＴアドレスを受け取るとともに、ＭＬＵＴアドレスをデコードして、メモリ動作の対象となるＭＬＵＴ３０を選択し特定する。メモリ動作用アドレスは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、行デコーダ６１、列デコーダ６２でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、論理用アドレスＬＡのデコードは、ＭＬＵＴ内のデコーダにより行う。
【００４９】  行デコーダ６１は、リード・イネーブル信号ｒｅ、ライト・イネーブル信号ｗｅ等の制御信号に従って、書込用アドレスＡＤのｍビットのうちｘビットをデコードし、デコードアドレスｎをＭＬＵＴ３０に対して出力する。デコードアドレスｎは、ＭＬＵＴ３０内のメモリセルを特定するアドレスとして使用される。
【００５０】  列デコーダ６２は、書込用アドレスＡＤのｍビットのうちｙビットをデコードし、行デコーダ６１と同様の機能を有して、デコードアドレスｎをＭＬＵＴ３０に対して出力するとともに、書込用データＷＤの出力、及び、読出用データＲＤを入力する。
【００５１】  なお、ＭＬＵＴのアレイがｓ行ｔ列である場合、ＭＬＵＴアレイ６０からはｎ×ｔビットのデータが行デコーダ６１に入力される。ここで、各行毎のＭＬＵＴを選択するために行デコーダはｏ行分のｒｅ，ｗｅを出力する。つまり、ｏ行は、ＭＬＵＴのｓ行に相当する。ここでｏビットのうち、1ビットだけをアクティブにすることで、特定のメモリセルのワード線が選択される。そしてｔ個のＭＬＵＴがｎビットのデータを出力するため、ｎ×ｔビットのデータがＭＬＵＴアレイ６０から選択され、そのうち１列を選択するのに列デコーダ６２が使われる。
【００５２】  図１に示した再構成可能デバイス２０の場合、図４のＡＤは、図１のＲＤ１に相当し、図４のＲＤは、図１のＲＤ２に相当する。
【００５３】  図２に示した２０Ａの場合、図４のＡＤは、図２のＡＤ１に相当し、図４のＲＤは、図２のＡＤ２に相当する。図２に示した２０Ｂの場合、図４のＡＤは、図２のＲＤ１に相当し、図４のＲＤは、図２のＲＤ２に相当する。
【００５４】  ３．ＭＬＵＴ  図７は、図９に示す２メモリセルユニットからなるＭＬＵＴを横積みして構成されるＭＲＬＤを概略的に示す図である。図８は、ＭＬＵＴの入出力線を示す図である。図７に示すＭＬＵＴ３０は、左方向から図８に示すアドレスＡ０Ｌ〜Ａ７Ｌの入力があり、及び、右方向から図８に示すアドレスＡ０Ｒ〜Ａ７Ｒの入力があり、また、左方向へ図８に示すデータＤ０Ｌ〜Ｄ７Ｌの出力があり、右方向へ図８に示すデータＤ０Ｒ〜Ｄ７Ｒの出力がある。ｎ値＝８のＭＬＵＴは従来方式では１ＭビットとなりＣＬＢ相当が４Ｍビットと大規模化してしまう。それに対して本案では後述するように、８Ｋ（２５６ワード×１６ビット×ＭＬＵＴ２個）ビットで構成される。
【００５５】  図９は、図８に示すＭＬＵＴの回路例を示す図である。図９に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ、３１Ｂを有する。メモリセルユニットは、例えば、ＳＲＡＭである。
【００５６】  図９に示されるように、メモリセルユニット３１Ａは、一辺からの第１複数アドレス線により特定されて、第１複数アドレス線の２倍の数の第１複数データ線に出力する複数のメモリセルを有し、メモリセルユニット３１Ｂは、他辺からの第２複数アドレス線により特定されて、第２複数アドレス線の２倍の数の第２複数データ線に出力する複数のメモリセルを有し、ＭＬＵＴ３０は、第１複数データ線及び第２複数データ線の一部を、一辺へ出力するとともに、第１複数データ線及び第２複数データ線の他の一部を、他辺へ出力する。
【００５７】  各メモリセルユニットは、一方向毎に真理値表データをメモリセルに記憶する。そのため、メモリセルユニット３１Ａ及び３１Ｂの各々には、右から左方向用の真理値表データ、及び、左から右方向用の真理値表データを記憶する。すなわち、ＭＬＵＴは、それぞれが特定のデータ出力方向を規定する２つの真理値表データを記憶する。
【００５８】  各メモリセルユニットのデータ数を、アドレス数より増やすとともに、各メモリセルユニットからデータ出力の方向を双方向にすることで、必要なメモリセルの数を少なくし、且つ、双方向へのデータ出力を可能にすることができる。
【００５９】  図１０は、図９に示すＭＬＵＴより詳細な回路例を示す。図１０に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ、３１Ｂ、アドレスデコーダ１１Ａ、１１Ｂ、アドレスセレクタ１５Ａ、１５Ｂ、Ｉ／Ｏ（入出力）バッファ１２Ａ、１２Ｂ、及び、データセレクタ１３Ａ、１３Ｂを有する。ＭＬＵＴ３０のメモリセルユニット３１Ａ、３１Ｂは、それぞれ、アドレスデコーダ、アドレスセレクタ、及びＩ／Ｏバッファ、及び、データセレクタを有する。メモリセルユニット３１Ａ、３１Ｂへの入力アドレスが、それぞれ、アドレスＡ０Ｌ〜Ａ７Ｌ、Ａ８〜Ａ１５、及び、アドレスＡ０Ｒ〜Ａ７Ｒ、Ａ８〜Ａ１５となる。そのため、メモリセルユニット３１Ａ、３１Ｂは、２の１６乗（６５，５３６）ワード×８ビットの５１２Ｋの大容量となる。
【００６０】  図９では、メモリセルユニット３１Ａ、３１Ｂは、それぞれアドレスＡ０Ｌ〜Ａ７Ｌ、Ａ８〜Ａ１５、及び、アドレスアドレスＡ０Ｒ〜Ａ７Ｒ、Ａ８〜Ａ１５の入力を有する。
【００６１】  なお、図９は、概略図であり、メモリセルユニットの周辺回路であるデコーダ等は、示しておらず、デコーダは図１０で説明したアドレスデコーダ１１Ａ、１１Ｂが、各メモリセルユニット毎に用意され、アドレスセレクタ１５Ａ、１５Ｂと、メモリセルユニット３１Ａ、３１Ｂの間に配置される。よって、アドレスデコーダは、アドレスセレクタ１５Ａ、１５Ｂから出力される全てのアドレスをデコードしてもよい。
【００６２】  アドレスセレクタ１５Ａ、１５Ｂは、論理動作用のアドレス線か、書込み用のアドレスかを切り替えるための選択回路であり、メモリセルがシングルポートの場合、必要となる。メモリセルをデュアルポートとする場合、アドレスセレクタは不要である。データセレクタ１３Ａ、１３Ｂは、出力データ、又は、書込みデータＷＤを切り替える選択回路である。
【００６３】  ＭＲＬＤは専用の小型のＳＲＡＭに関する半導体設計試作、製造を経なくても、従来の大容量のメモリデバイスを利用できる。ＭＲＬＤをチップで構成する際、メモリＩＰ（Intellectual Property）を使うが、従来のＭＬＵＴが求めている微小メモリ容量では、アドレスデコーダやセンスアンプの面積が大きくメモリ自体の構成比率は５０％以下になる。このことは、ＭＲＬＤのオーバヘッドにもなり、効率が悪い。大容量メモリになるとアドレスデコーダやセンスアンプの比率は下がり、メモリ使用効率が上がる。そのため、大容量メモリにあった本案はＭＲＬＤチップの場合有効になる。
【００６４】  ３．２  同期／非同期動作用のメモリセルユニットを有するＭＬＵＴ  ここで説明するＭＬＵＴは、双方向配置ＭＬＵＴであり、図７及び図８で説明したＭＬＵＴと同じ機能構成を有する。しかし、上記の双方向配置ＭＬＵＴと異なり、同期動作用のメモリセルユニットと、非同期動作用のメモリセルユニットを備える。同期動作用のメモリセルユニット又は非同期動作用のメモリセルユニットは、ペアを構成するが、論理要素及び／又は接続要素として動作するメモリセルユニットは、何れか１つである。両者のデータ出力を、ワイヤードオア接続、又は、ＯＲ回路で接続されるため、動作しないメモリセルユニットには、全て「０」のデータが格納される。
【００６５】  図１１は、同期非同期切り替え可能なＭＬＵＴの回路例を示す図である。図１１に示すＭＬＵＴ３０は、メモリセルユニット３１Ａ〜３１Ｄ、アドレスデコーダ１１Ａ〜１１Ｄ、Ｉ／Ｏ（入出力）バッファ１３Ａ〜１３Ｄ、選択回路３２Ａ〜３２Ｄ、データ選択回路３３、及びアドレス遷移検出部３５を有する。アドレス遷移検出部３５は、ＡＴＤ（Address Transition Detector）回路を含み、クロックとともに、送信される論理アドレスが、前回送信の論理アドレスと比較して、アドレス遷移を検出する。
【００６６】  図５は、アドレス遷移検出部の一例を示す回路図である。図６は、アドレス遷移検出部のタイミングチャートである。アドレス遷移検出部３５は、否定論理和（ＮＯＲ）回路１１０Ａ、１１０Ｂ、論理和（ＯＲ）回路１２０、排他的論理和（ＥＯＲ）回路１３０、遅延回路１４０Ａ〜１４０Ｃ、フリップフロップ（ＦＦ）１５０、インバータ１６０Ａ、１６０Ｂ、及びＤラッチ１７０を有する。
【００６７】  信号Ｓ１は、プロセッサから出力されるアドレス入力信号である。信号Ｓ２は、Ｄラッチの出力である。Ｄラッチ１７０は、信号Ｓ１に変化があった場合、一定期間変化しないようにラッチする。これは、ノイズ等で後続のアドレス遷移を無視するためである。
【００６８】  信号Ｓ３は、Ｄラッチ１７０から出力される遅延信号である。遅延信号は、図５に示されるように、立ち上がりおよび立ち下がりでクロックを作って、信号Ｓ４のクロック幅を生成するために、遅延回路１４０Ｂで遅延される。
【００６９】  クロック信号として生成される信号Ｓ４は、変化を検出して、ＥＯＲ１３０から出力される。ＥＯＲ１３０では、遅延回路１４０Ｂの入力と、出力とが入力されるので、両者の信号レベルが異なると、信号レベル「ハイ」を出力する。これにより、アドレス遷移を検出することができる。図６に示すＳ４の時間Ｔ１は、論理アドレスの変化検出からＦＦ取り込みでの時間を示し、時間Ｔ２は、論理アドレス変化検出からメモリセルユニット読出しまでの時間を示す。
【００７０】  ＯＲ回路１２０では、信号Ｓ４とともに、他のアドレス遷移の信号が入力され、ＯＲ演算値を出力する。ＯＲ回路１２０の出力は、遅延回路１４０Ｃで遅延されて、信号Ｓ５が出力される。
【００７１】  信号Ｓ５は、遅延回路１４０Ｃから出力される遅延信号であり、Ｄラッチ１７０のイネーブル信号待ちしてクロック入力する。
【００７２】  信号Ｓ６は、信号Ｓ５の信号延長であり、イネーブル信号のパルス生成である。ＮＯＲ回路１１０Ａは、信号Ｓ５とＳ６のＮＯＲ演算値である信号Ｓ７を出力する。そして、信号Ｓ７は、Ｄラッチ１７０のイネーブル信号となる。信号Ｓ８は、信号Ｓ５をインバータ１６０Ａで反転した信号で、ＦＦ１５０で、アドレス信号のラッチのクロックとして使用される。信号Ｓ９は、後段にあるメモリセルユニット３１のイネーブル、信号Ｓ１０は、メモリセルユニット３１のクロック（ａｔｄ＿ｃｌｋ）、信号Ｓ１１は、メモリセルユニット３１のアドレスとして利用される。図５の信号Ｓ１０は、論理アドレスの変化検出からメモリからのリードまでの時間を示す。
【００７３】  このように、例えば、図１又は図２に示すプロセッサコア５１１がデータ要求をした場合、そのデータ要求の対象となるアドレスの変化を持ってクロックを生成し、メモリを駆動するので、必要なときにメモリが動作して、不必要なときにメモリ駆動させず、自律的に低消費電力化できる。
【００７４】  Ａ．信号線  図１１に示す信号線を、下記表１に説明する。
【００７５】
【表１】
2016063667.tif 000003
【００７６】  Ｂ．同期／非同期メモリセルユニット  メモリセルユニット３１Ａ〜３１Ｄは、同期ＳＲＡＭである。メモリセルユニット３１Ａ〜３１Ｄはそれぞれ、左方向および右方向へ接続するための真理値表データを記憶する。メモリセルユニット３１Ｂ及び３１Ｄは、システムクロックに同期して動作する。一方、メモリセルユニット３１Ａ及び３１Ｃは、後述するアドレス遷移回路３５が生成するＡＴＤ生成クロック（「内部クロック信号」とも言う）に同期して動作するために、クロック（システムクロック）に対して、非同期で動作する。ＡＴＤ生成クロックが、システムクロック信号より、高周波数で動作するために、メモリセルユニット３１Ａ、３１Ｃは、ＭＬＵＴ３０外部からは、非同期動作するようにみえることで、非同期の機能を提供する。
【００７７】  同期の機能要件を除けば、メモリセルユニット３１Ａ及び３１Ｃは、図９及び図１０に示すメモリセルユニット３１Ａ及び３１Ｂと同じ機能を有する。メモリセルユニット３１Ｂ及び３１Ｄも、同様である。
【００７８】  アドレスデコーダ１１Ａ及び１１Ｂはともに、左側から入力するアドレスＡ０〜Ａ３をデコードして、デコード信号を、それぞれ、メモリセルユニット３１Ａ及び３１Ｂに出力して、メモリセルユニット３１Ａ及び３１Ｂのワード線をアクティブにする。
【００７９】  アドレスデコーダ１１Ｃ及び１１Ｄは、右側から入力するアドレスＡ４〜Ａ７をデコードして、デコード信号を、それぞれ、メモリセルユニット３１Ｃ及び３１Ｄに出力して、メモリセルユニット３１Ｃ及び３１Ｄのワード線をアクティブにする。
【００８０】  また、アドレスデコーダ１１Ａ及び１１Ｃは、ＳＲＡＭアドレス非同期信号（ｓｒａｍ＿ａｄｄｒｅｓｓ（ａｓｙｎｃ））をデコードし、アドレスデコーダ１１Ａ及び１１Ｃは、ＳＲＡＭアドレス同期信号（ｓｒａｍ＿ａｄｄｒｅｓｓ（ｓｙｎｃ））をデコードして、デコード信号により特定されるメモリセルユニットのワード線を活性化する。
【００８１】  図１１に示す例では、各メモリセルユニットは、１６ｗｏｒｄｘ８ｂｉｔのメモリブロックである。メモリセルユニット３１Ａ及び３１Ｂは、１６ｗｏｒｄｘ８ｂｉｔｘ２は同期モードで使用し、１６ｗｏｒｄｘ８ｂｉｔｘ２は非同期モードで使用が可能である。同期と非同期は同時動作はできず、例えば同期動作メモリセルユニットに論理データをライトした場合、非同期動作メモリセルユニットには全て「０」を書き込む必要がある。
【００８２】  なお、メモリセルユニットのデータ出力は、図示のように、ワイヤードＯＲとしてもよいし、ＯＲ論理回路を設けてもよい。
【００８３】  Ｃ．選択回路  選択回路の選択条件を、以下の表に示す。【表２】
2016063667.tif 000004
【００８４】  選択回路３２Ａ〜３２Ｄは、非同期動作用のメモリセルユニット３１Ａ及び３１Ｃ、又は、同期動作用のメモリセルユニット３１Ｂ及び３１Ｄの動作を選択する回路である。
【００８５】  選択回路３２Ａは、選択信号（Ｓｅｌｅｃｔ）により、非同期動作が選択されると、アドレス遷移回路３５で生成されるａｔｄ＿ａｄラッチアドレス（図３に示すＳ１１）を選択して、ＳＲＡＭアドレス非同期信号（ｓｒａｍ＿ａｄｄｒｅｓｓ（ａｓｙｎｃ））として出力する。非同期動作が選択されない場合、論理アドレスをそのまま出力する。
【００８６】  選択回路３２Ｂは、選択信号（Ｓｅｌｅｃｔ）により、非同期動作が選択されると、アドレス遷移回路３５で生成されるＡＴＤ生成クロックを選択して、出力する。非同期動作が選択されない場合、クロックをそのまま出力する。
【００８７】  選択回路３２Ｃは、選択信号（Ｓｅｌｅｃｔ）により、非同期動作が選択されると、アドレス遷移回路３５で生成されるＡＴＤ生成チップセレクトを選択して、出力する。非同期動作が選択されない場合、ＳＲＡＭチップイネーブルをそのまま出力する。
【００８８】  選択回路３２Ｄは、選択信号（Ｓｅｌｅｃｔ）により、同期動作が選択されると、論理アドレスをそのまま出力する。
【００８９】  Ｄ．禁止論理  また、メモリ分割の特性として、禁止論理構成がある。表２に示す２つの真理値表を用いて、禁止論理の必要性を説明する。
【００９０】
【表３】
2016063667.tif 000005
【００９１】  真理値表１では、Ａ０，Ａ１を使用してＡＮＤ回路を構成し、Ｄ０に出力する真理値表が示される。真理値表２では、Ａ０，Ａ４を使用してＡＮＤ回路を構成し、Ｄ０に出力する真理値表が示される。真理値表１の場合の論理は、Ａ３−Ａ０使用のメモリセルユニット３１Ａだけで論理演算可能なので、他のメモリセルユニットに“０”を書き込んでいれば、ＯＲ演算により、他のメモリセルユニットの出力値の影響を受けないので、禁止論理の問題は生じない。
【００９２】  一方、真理値表２の論理の場合、Ａ３−Ａ０使用のメモリセルユニットはｃ、ｄの識別ができない。Ａ７−Ａ４使用のＳＲＡＭは、ｂ、ｄの識別がつかない。このように、２つのメモリセルユニットをまたがる論理演算は、２つの真理値表では正しい値を得られないため、２つのメモリセルユニットを跨ぐ論理演算を、禁止論理としている。よって、論理構成する場合、各メモリセルユニット内部で、論理を実現する必要がある。そのため、本実施形態に係る真理値表データでは、上記禁止論理を生成しないように生成される。
【００９３】  Ｅ．Ｉ／Ｏバッファ  Ｉ／Ｏ（入出力）バッファ１３Ａ〜１３Ｄは、クロックとＡＴＤ生成クロックの何れかに同期して、メモリセルユニットのデータ線からデータを読み出すことで、ＦＦの機能を提供している。なお、Ｉ／Ｏ（入出力）バッファ１３Ａ〜１３Ｄは、メモリセルのビット線から出力される電圧を増幅するセンスアンプを含んでいる。
【００９４】  選択回路３２は、ＳＲＡＭデータ出力（Ｏ＿ｍｄａｔａ）を、選択信号に従って、SRAMデータ出力、及び、論理データ出力の何れかとして出力する。
【００９５】  ３．３  回路規模調整回路  ＭＲＬＤ２０は、小さなメモリセルユニットで構成されるため、メインメモリ６００と比べて集積回路の規模が大きくなり、合わない。図１２は、規模調整回路の一例を示す図である。規模調整回路２１Ａは、メインメモリ６００とＭＲＬＤ２０Ａの間に配置され、回路規模調整回路２１Ｂは、メインメモリ６００とＭＲＬＤ２０Ｂの間に配置される。
【００９６】  ４．ＭＬＵＴの論理動作  Ａ．論理要素  図１３は、ＭＬＵＴの一例を示す図である。図１３では、論理動作の説明を行うために、アドレスセレクタ、Ｉ／Ｏバッファ及びデータセレクタの表記は、省略される。図１３に示すＭＬＵＴ３０ａ、３０ｂは、４つの論理用アドレス入力ＬＡ線Ａ０〜Ａ３と、４つの論理動作用データ線Ｄ０〜Ｄ３と、４×１６＝６４個の記憶素子４０と、アドレスデコーダ９とをそれぞれ有する。論理動作用データ線Ｄ０〜Ｄ３は、１６個の記憶素子４０をそれぞれ直列に接続する。アドレスデコーダ９は、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、１６本のワード線のいずれかに接続される４つの記憶素子を選択するように構成される。この４つの記憶素子はそれぞれ、論理動作用データ線Ｄ０〜Ｄ３に接続され、記憶素子に記憶されるデータを論理動作用データ線Ｄ０〜Ｄ３に出力する。例えば、論理用アドレス入力ＬＡ線Ａ０〜Ａ３に適当な信号が入力される場合は、４つの記憶素子４０Ａ、４０Ｂ、４０Ｃ、及び４０Ｄを選択するように構成することができる。ここで、記憶素子４０Ａは、論理動作用データ線Ｄ０に接続され、記憶素子４０Ｂは、論理動作用データ線Ｄ１に接続され、記憶素子４０Ｄは、論理動作用データ線Ｄ２に接続され、記憶素子４０Ｄは、論理動作用データ線Ｄ３に接続される。そして、論理動作用データ線Ｄ０〜Ｄ３には、記憶素子４０Ａ〜４０Ｄに記憶される信号が出力される。このように、ＭＬＵＴ３０Ａ、３０Ｂは、論理用アドレス入力ＬＡ線Ａ０〜Ａ３から論理用アドレス入力ＬＡを受け取り、その論理用アドレス入力ＬＡによってアドレスデコーダ９が選択する４つの記憶素子４０に記憶される値を、論理動作用データ線Ｄ０〜Ｄ３に論理動作用データとしてそれぞれ出力する。なお、ＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ２は、隣接するＭＬＵＴ３０Ｂの論理動作用データ線Ｄ０と接続しており、ＭＬＵＴ３０Ａは、ＭＬＵＴ３０Ｂから出力される論理動作用データを、論理用アドレス入力ＬＡとして受け取る。また、ＭＬＵＴ３０Ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡ線Ａ０と接続しており、ＭＬＵＴ３０Ａが出力する論理動作用データは、ＭＬＵＴ３０Ｂで論理用アドレス入力ＬＡとして受け取られる。例えば、ＭＬＵＴ３０Ａの論理動作用データ線Ｄ２は、ＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データＤ２に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡ線Ａ０に出力する。同様に、ＭＬＵＴ３０Ｂの論理動作用データ線Ｄ０は、ＭＬＵＴ３０Ｂの論理用アドレス入力ＬＡ線Ａ０〜Ａ３に入力される信号に基づき、論理動作用データ線Ｄ０に接続される１６個の記憶素子のいずれか１つに記憶される信号をＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ２に出力する。このように、ＭＬＵＴ同士の連結は、１対のアドレス線とデータ線とを用いる。以下、ＭＬＵＴ３０Ａの論理用アドレス入力ＬＡ線Ａ２と、論理動作用データ線Ｄ２のように、ＭＬＵＴの連結に使用されるアドレス線とデータ線の対を「ＡＤ対」という。
【００９７】  なお、図１３では、ＭＬＵＴ３０Ａ、３０Ｂが有するＡＤ対は４であるが、ＡＤ対の数は、特に後述するように４に限定されない。
【００９８】  図１４は、論理回路として動作するＭＬＵＴの一例を示す図である。本例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路７０１の入力とし、論理用アドレス入力ＬＡ線Ａ２及びＡ３を２入力ＮＡＮＤ回路７０２の入力とする。そして、２入力ＮＯＲ回路７０１の出力と、２入力ＮＡＮＤ回路７０２の出力を、２入力ＮＡＮＤ回路７０３に入力し、２入力ＮＡＮＤ回路７０３の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。
【００９９】  図１５は、図１４に示す論理回路の真理値表を示す図である。図１４の論理回路は、４入力のため、入力Ａ０〜Ａ３の全ての入力を入力として使用する。一方、出力は、１つのみなので、出力Ｄ０のみを出力として使用する。真理値表の出力Ｄ１〜Ｄ３の欄には「＊」が記載されている。これは、「０」又は「１」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをＭＬＵＴに書き込むときには、これらの欄には、「０」又は「１」のいずれかの値を書き込む必要がある。
【０１００】  Ｂ．接続要素  図１６は、接続要素として動作するＭＬＵＴの一例を示す図である。図１６では、接続要素としてのＭＬＵＴは、論理用アドレス入力ＬＡ線Ａ０の信号を論理動作用データ線Ｄ１に出力し、論理用アドレス入力ＬＡ線Ａ１の信号を論理動作用データ線Ｄ２に出力し、論理用アドレス入力ＬＡ線Ａ２の信号を論理動作用データ線Ｄ３に出力するように動作する。接続要素としてのＭＬＵＴはさらに、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ０に出力するように動作する。
【０１０１】  図１７は、図１６に示す接続要素の真理値表を示す図である。図１６に示す接続要素は、４入力４出力である。したがって、入力Ａ０〜Ａ３の全ての入力と、出力Ｄ０〜Ｄ３の全ての出力が使用される。図１７に示す真理値表によって、ＭＬＵＴは、入力Ａ０の信号を出力Ｄ１に出力し、入力Ａ１の信号を出力Ｄ２に出力し、入力Ａ２の信号を出力Ｄ３に出力し、入力Ａ３の信号を出力Ｄ０に出力する接続要素として動作する。
【０１０２】  図１８は、ＡＤ対０、ＡＤ対１、ＡＤ対２、及びＡＤ対３の４つのＡＤ対を有するＭＬＵＴによって実現される接続要素の一例を示す図である。ＡＤ０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ１は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。図１８において、２点鎖線は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０に入力された信号がＡＤ対１の論理動作用データ線Ｄ１に出力される信号の流れを示す。破線は、ＡＤ対１の論理用アドレス入力ＬＡ線Ａ１に入力された信号がＡＤ対２の論理動作用データ線Ｄ２に出力される信号の流れを示す。実線は、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２に入力された信号がＡＤ対３の論理動作用データ線Ｄ３に出力される信号の流れを示す。１点鎖線は、ＡＤ対３の論理用アドレス入力ＬＡ線Ａ３に入力された信号がＡＤ対０の論理動作用データ線Ｄ０に出力される信号の流れを示す。
【０１０３】  なお、図１８では、ＭＬＵＴ３０が有するＡＤ対は４であるが、ＡＤ対の数は、特に４に限定されない。
【０１０４】  Ｃ．論理要素と接続要素の組合せ機能  図１９は、１つのＭＬＵＴが、論理要素及び接続要素として動作する一例を示す図である。図１９に示す例では、論理用アドレス入力ＬＡ線Ａ０及びＡ１を２入力ＮＯＲ回路１２１の入力とし、２入力ＮＯＲ回路１２１の出力と、論理用アドレス入力ＬＡ線Ａ２とを２入力ＮＡＮＤ回路１２２の入力とし、２入力ＮＡＮＤ回路１２２の出力を論理動作用データ線Ｄ０に出力する論理回路を構成する。また同時に、論理用アドレス入力ＬＡ線Ａ３の信号を論理動作用データ線Ｄ２に出力する接続要素を構成する。
【０１０５】  図２０に、図１９に示す論理要素及び接続要素の真理値表を示す。図１９の論理動作は、入力Ｄ０〜Ｄ３の３つの入力を使用し、１つの出力Ｄ０を出力として使用する。一方、図２０の接続要素は、入力Ａ３の信号を出力Ｄ２に出力する接続要素が構成される。
【０１０６】  図２１は、ＡＤ０、ＡＤ１、ＡＤ２、及びＡＤ３の４つのＡＤ対を有するＭＬＵＴによって実現される論理動作及び接続要素の一例を示す図である。図１８に示すＭＬＵＴと同様に、ＡＤ０は、論理用アドレス入力ＬＡ線Ａ０と論理動作用データ線Ｄ０とを有する。ＡＤ１は、論理用アドレス入力ＬＡ線Ａ１と論理動作用データ線Ｄ１とを有する。ＡＤ２は、論理用アドレス入力ＬＡ線Ａ２と論理動作用データ線Ｄ２とを有する。そして、ＡＤ３は、論理用アドレス入力ＬＡ線Ａ３と論理動作用データ線Ｄ３とを有する。上述のように、ＭＬＵＴ３０は、３入力１出力の論理動作と、１入力１出力の接続要素との２つの動作を１つのＭＬＵＴ３０で実現する。具体的には、論理動作は、ＡＤ対０の論理用アドレス入力ＬＡ線Ａ０と、ＡＤ対１の論理用アドレス入力ＬＡ線Ａ１と、ＡＤ対２の論理用アドレス入力ＬＡ線Ａ２とを入力として使用する。そして、ＡＤ対０の論理動作用データ線Ｄ０のアドレス線を出力と使用する。また、接続要素は、破線で示すようにＡＤ対３の論理用アドレス入力ＬＡ線Ａ３に入力された信号をＡＤ対２の論理動作用データ線Ｄ２に出力する。
【０１０７】  ５．真理値表データの生成方法  第１及び第２実施形態を用いて説明した再構成可能な半導体装置に適用される真理値表データは、論理構成用のソフトウェアプログラムを実行する情報処理装置によって生成される。例えば、当該情報処理装置は、コンピュータ装置１０であってもよいし、また、コンピュータ装置１０と同様のハードウェア資源を有し、ネットワーク１１００に接続される他のコンピュータ装置であってもよい。
【０１０８】  図１又は図２を参照して、真理値表データを生成するコンピュータ装置の一例を説明する。コンピュータ装置１０は、プロセッサ５１０と、メインメモリ６００とドライブ装置５５０を有する。プロセッサ５１０は、通信部５３０や、ドライブ装置５５０からロードされた論理構成用のソフトウェア１２１０を実行後、集積回路を設計するためのＣ言語記述またはハードウェア記述言語（ＨＤＬ）などの回路記述言語１２２０から真理値表データ１２３０を生成し、メインメモリ６００に記憶する。プロセッサ５１０が、生成した真理値表データ１２３０を、再構成可能デバイス２０に書き込む。
【０１０９】  ドライブ装置５５０は、例えば、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、フラッシュメモリなどの記憶媒体１２００を読み書きする装置である。ドライブ装置５５０は、記憶媒体１２００を回転させるモータや記憶媒体１２００上でデータを読み書きするヘッド等を含む。ドライブ装置５５０は、セットされた記憶媒体１２００からプログラムを読み出す。プロセッサ５１０は、ドライブ装置５５０により読み出されたプログラム又は真理値表データを、メインメモリ６００に格納する。
【０１１０】  真理値表データ１２３０が再構成可能デバイス２０に読み込まれることにより、真理値表データとハードウェア資源とが協働した具体的手段によって、論理要素及び／又は接続要素としての機能が構築される。また、真理値表データは、真理値表という論理的構造を示す構造を有するデータともいえる。
【０１１１】  以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
【符号の説明】
【０１１２】  １０    コンピュータ装置  １１    アドレスデコーダ  １２    Ｉ／Ｏバッファ  １３    データセレクタ  ２０    再構成可能デバイス  ３０    ＭＬＵＴ  ３１    メモリセルユニット  ３２    選択回路  ３５    アドレス遷移検出部  ６０    ＭＬＵＴアレイ  ６１    行デコーダ  ６２    列デコーダ  ５１０    プロセッサ  ５３０    通信部  ５４０    外部記憶装置  ５５０    ドライブ装置  ６００    メインメモリ  １１００    ネットワーク  １２００    記憶媒体
【図１】
2016063667.tif 000006
【図２】
2016063667.tif 000007
【図３】
2016063667.tif 000008
【図４】
2016063667.tif 000009
【図５】
2016063667.tif 000010
【図６】
2016063667.tif 000011
【図７】
2016063667.tif 000012
【図８】
2016063667.tif 000013
【図９】
2016063667.tif 000014
【図１０】
2016063667.tif 000015
【図１１】
2016063667.tif 000016
【図１２】
2016063667.tif 000017
【図１３】
2016063667.tif 000018
【図１４】
2016063667.tif 000019
【図１５】
2016063667.tif 000020
【図１６】
2016063667.tif 000021
【図１７】
2016063667.tif 000022
【図１８】
2016063667.tif 000023
【図１９】
2016063667.tif 000024
【図２０】
2016063667.tif 000025
【図２１】
2016063667.tif 000026
【国際調査報告】
2016063667.tif 000027
2016063667.tif 000028