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