(57)【要約】【課題】可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、可変論理に対する機能設定の負担を部分的に軽減する。【解決手段】可変論理機能を実現するために記憶回路と制御回路を有する機能再構成セルを複数個備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。更に演算回路を備え、演算回路は、記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。【選択図】図１
2010124373.tif 000002
【特許請求の範囲】
【請求項１】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項２】
前記制御回路は次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する、請求項１記載の半導体装置。
【請求項３】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項２記載の半導体装置。
【請求項４】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項２記載の半導体装置。
【請求項５】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項６】
前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタを有する、請求項５記載の半導体装置。
【請求項７】
前記別の情報は、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である、請求項６記載の半導体装置。
【請求項８】
前記制御回路は前記セレクタの入力に出力が接続され前記アドレス演算を行うアドレス演算器を更に有し、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される、請求項７記載の半導体装置。
【請求項９】
前記複数個の機能再構成セルの記憶回路には第１のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第１のアドレス範囲に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をランダムアクセス可能とする、請求項８記載の半導体装置。
【請求項１０】
前記複数個の機能再構成セルには第２のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第２のアドレス範囲に対するリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す、請求項９記載の半導体装置。
【請求項１１】
前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路を更に有する請求項１０記載の半導体装置。
【請求項１２】
前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路とを有する、請求項１１記載の半導体装置。
【請求項１３】
前記接続用記憶回路には第３のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第３のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能とする、請求項１２記載の半導体装置。
【請求項１４】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項５記載の半導体装置。
【請求項１５】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項５記載の半導体装置。
【請求項１６】
アクセス要求主体となり得るロジック回路と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項１７】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項１６記載の半導体装置。
【請求項１８】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項１６記載の半導体装置。
【請求項１９】
中央処理装置と、前記中央処理装置が接続される第１内部バスと、前記第１内部バスにバスステートコントローラを介して接続される第２内部バスと、前記第１内部バス及び第２内部バスに接続される機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項２０】
前記複数個の機能再構成セルの記憶回路には第１のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第１バスからの第１のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする、請求項１９記載の半導体装置。
【請求項２１】
前記複数個の機能再構成セルには第２のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第２バスからの第２のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する、請求項２０記載の半導体装置。
【請求項２２】
前記接続用記憶回路には第３のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第１バスからの第３のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする、請求項２１記載の半導体装置。
【請求項２３】
前記中央処理装置は前記第１バスを介して機能再構成メモリに前記第３のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定する、請求項２２記載の半導体装置。
【請求項２４】
前記中央処理装置は前記第１バスを介して機能再構成メモリに前記第１のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する、請求項２３記載の半導体装置。
【請求項２５】
前記中央処理装置は第２バスを介して前記機能再構成メモリに第２のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする、請求項２４記載の半導体装置。
【請求項２６】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項１９記載の半導体装置。
【請求項２７】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項１９記載の半導体装置。
【請求項２８】
前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う、請求項１、請求項５、請求項１６、又は請求項１９記載の半導体装置。
【請求項２９】
前記所定の指示は、先に制御フィールドから読み出した情報を用いて前記データフィールドと制御フィールドの次の読み出しアドレスを決める動作を行う指示である、請求項２８記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶回路を用いて可変可能に論理機能を実現することができる半導体装置に関し、例えばプログラマブルに周辺機能を実現することができる可変論理モジュールを備えた半導体データ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
可変論理モジュール若しくは可変論理デバイス（リコンフィギュラブルデバイス）としてＰＬＤ（プログラマブル・ロジック・デバイス）若しくはＦＰＬＤ（フィールドＰＬＤ）が既に利用されている。代表的なＰＬＤとしてはＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）などのプログラマブル・デバイスがある。ＦＰＧＡはルックアップ・テーブルを基本にしてそれにフリップフロップを併せ持たせたＣＬＢ(コンフィギャラブル・ロジック・ブロック)をＭＯＳスイッチでプログラマブルに接続させて大規模ロジックを構成するものである。ＦＰＧＡは基本的に書き換え可能な論理回路と可変スイッチ回路を持たせた素子である。特許文献１にはＦＰＧＡについて記載がある。ＦＰＧＡの基本である論理回路は例えば４入力のＬＵＴ(ルック・アップ・テーブル)で構成され、最終段にＦ／Ｆ（フリップ・フロップ）を有し、それを２段２層の論理構造で持っている。これをＣＬＢと呼んでいる。例えば、1メガ（Ｍ）ゲート相当でプログラマブルに論理を構成するためには１キロ（ｋ）以上のＣＬＢを集合させ、このＣＬＢの論理情報をＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）に持たせて書き換え可能にしている。これらのＣＬＢはお互いの接続をプログラマブルにする為にスイッチマトリックスを有している。そのスイッチは方向性を持たせる為に、６ＭＯＳのスイッチＭＯＳで構成され、このスイッチＭＯＳのオン／オフ制御情報もＳＲＡＭに持たせているので、１Ｍゲート相当に対して１．７Ｍビット程度の情報量が必要である。また、特許文献２にはメモリに所定の真理値データを格納させることによって任意の論理を構成可能な複数の可変論理回路をマトリクス状に配置し、それらをＸ、Ｙ方向の配線に可変スイッチ回路で可変可能に接続するようにした半導体装置について記載がある。
【０００３】
【特許文献１】特開平０４−２４２８２５号公報
【特許文献２】特開２００３−１４９３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記ＦＰＧＡに代表されるように多数のＣＬＢをスイッチマトリクスを用いて接続することによって可変論理モジュールを構成する場合には、必要な論理規模の増大にしたがってＣＬＢの数やスイッチマトリクスのスイッチ素子が多くなり、実装面積の改善に限界のあることが本発明者によって見出された。すなわち、複雑な論理やシーケンスをプログラムする場合には必要な論理規模に比例して多数のスイッチマトリクスを用いて多数のＣＬＢの接続を設定しなければならない。ＳＲＡＭに論理構成用の真理値データを格納するとき、ＳＲＡＭからリードした真理値データを単に論理構成のためのスタティックな情報としてしか利用しない場合には、必要な論理規模に比例してＳＲＡＭの記憶容量を増大しなければならない。また、従来技術においては、可変論理モジュールの論理構成をダイナミックに書き換えること、そして、周辺回路のような実回路に可変論理モジュールを適用することについて何ら着眼されていない。
【０００５】
本発明の目的は、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【０００６】
本発明の別の目的は、小さなチップ占有面積で可変論理機能を実現可能であって、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【０００７】
本発明の更に別の目的は、論理機能をダイナミックに再構成することが容易であって、一部の再構成にかかる負担を軽減することができる半導体装置を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１０】
本発明に係る半導体装置は、可変論理機能を実現するためにそれぞれ記憶回路と制御回路を有する複数の機能再構成セルと、演算回路を備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。例えば前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。前記機能再構成セルはアクセス要求主体からのアクセス要求に応答するインタフェース制御回路の制御を受ける。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【００１１】
上記より、真理値データを格納する記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【００１２】
また、前記記憶回路に対するランダムアクセス用のアドレスマッピングに対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドＩ／Ｏアドレスのようなリードアドレスマップを個別化する。これにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。特に、機能再構成セルに周辺機能が設定される場合、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を考慮する場合には、アクセス要求主体からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路と、機能設定された機能再構成セルへのアクセス経路とを分離すればよい。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１４】
すなわち、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる。
【発明を実施するための最良の形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体装置は、記憶回路（２３）と制御回路（２４）を有する複数の機能再構成セル（２０）と、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路（４０，４１，４２）と、演算回路（５０＿１，５０＿２）とを備える。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールド（ＤＦＬＤ）と制御フィールド（ＣＦＬＤ）を有する。前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能である。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【００１７】
上記より、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【００１８】
〔２〕項１の半導体装置において、例えば前記制御回路は前記次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する。
【００１９】
〔３〕項２の半導体装置において、前記演算回路（５０＿１）は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部（５２）と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部（５１）とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【００２０】
〔４〕項２の半導体装置において、前記演算回路（５０＿２）は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部（５３）と、メモリ部から読み出されたデータを演算する演算ロジック部（５５）と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部（５４）とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【００２１】
〔５〕本発明の別の実施の形態に係る半導体装置は、上記同様の複数の機能再構成セル、インタフェース制御回路、及び演算回路を有し、特に、前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。この構成においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項１と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【００２２】
〔６〕項５の半導体装置は、一つの具体的な形態として、前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタ（３０、３２）を有する。
【００２３】
〔７〕項６の半導体装置において、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である。
【００２４】
〔８〕項７の半導体装置において、前記制御回路は前記アドレス演算を行うアドレス演算器（３１）を有し、アドレス演算器の出力は前記セレクタの入力に接続され、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される。
【００２５】
〔９〕項８の半導体装置において、前記複数個の機能再構成セルの記憶回路は、半導体装置のメモリ空間に割り当てられたアドレス範囲とＩＯ空間に割り当てられたアドレス範囲との両方にアドレスがマッピングされる。前記インタフェース制御回路は、メモリ空間に割り当てられた第１のアドレス範囲（ＡＡ１）に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第１のアドレス範囲のアドレスを指定するメモリアクセスによって記憶回路に書き込みを行って機能再構成セルの論理構成を定義することができる。
【００２６】
〔１０〕項９の半導体装置において、前記インタフェース制御回路は、ＩＯ空間に割り当てられた第２のアドレス範囲（ＡＡ２）に対するライトアクセス要求に応答して当該アドレスの制御回路での処理に必要な情報を書き込むことが出来る。同様にリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す。これにより、アクセス要求主体は論理機能が設定された機能再構成セルによる論理動作に必要な情報を第２のアドレス範囲のアドレスを指定するライトアクセスによって供給し、論理動作の結果を第２のアドレス範囲のアドレスを指定するリードアクセスによって任意に取得することができる。
【００２７】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第１のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドＩ／Ｏアドレスのようなリードアドレス（第２のアドレス範囲のアドレス）を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【００２８】
〔１１〕項１０の半導体装置は、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路（３５）を更に有する。複数の機能再構成セルを直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。
【００２９】
〔１２〕項１１の半導体装置において、前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路（３６）と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路（３７）とを有する。複数の機能再構成セル間でそれぞれの自律制御を連関させることが可能になる。
【００３０】
〔１３〕項１２の半導体装置において、前記接続用記憶回路にはメモリ空間に割り当てられた第３のアドレス範囲（ＡＡ３）がマッピングされる。このとき、前記インタフェース制御回路は、第３のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第３のアドレス範囲のアドレスを指定するランダムアクセスにより接続用記憶回路に書き込みを行って機能再構成セル間の接続を任意に定義することができる。
【００３１】
〔１４〕項５の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【００３２】
〔１５〕項５の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【００３３】
〔１６〕本発明の更に別の実施の形態に係る半導体装置は、アクセス要求主体となり得るロジック回路（２，５）と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリ（８）とを有する。ロジック回路は例えば中央処理装置とされる。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを備える。前記記憶回路は半導体装置のアドレス空間のうち、メモリ空間にマッピングされたアドレス範囲とＩＯ空間にマッピングされたアドレス範囲とがマッピングされる。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【００３４】
この半導体装置においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項１と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【００３５】
〔１７〕項１６の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【００３６】
〔１８〕項１６の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【００３７】
〔１９〕本発明の更に別の実施の形態に係る半導体装置は、中央処理装置と、前記中央処理装置が接続される第１内部バスと、前記第１内部バスにバスステートコントローラを介して接続される第２内部バスと、前記第１内部バス及び第２内部バスに接続される機能再構成メモリとを備える。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路を有する。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【００３８】
〔２０〕項１９の半導体装置において、前記複数個の機能再構成セルの記憶回路には半導体装置のメモリ空間において第１のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第１バスからの第１のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする。これにより、前記中央処理装置は前記機能再構成セルの記憶回路を前記第１バスを介して接続されるメモリ装置（例えばSRAMアレイ）としてアクセス可能となり、前記第１バスを介して機能再構成メモリにライトアクセスを要求して第１のアドレス範囲のアドレスと書き込むべきデータを出力することで、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を設定することができる。前記第１バスはアドレス専用のバス配線とデータ専用のバス配線とが物理的に分離して存在するものであっても、同一のバス配線を時分割に用い分けるものであっても良い。
【００３９】
〔２１〕項２０の半導体装置において、前記複数個の機能再構成セルには半導体装置のＩＯ空間において第２のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第２バスからの第２のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する。これにより、前記中央処理装置は第２バスを介して前記機能再構成メモリに第２のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードすることができる。
【００４０】
前記第２のアドレス範囲にマッピングされた前記複数個の機能再構成セルには、前記中央処理装置は前記第２バスを介して接続されるＩＯ装置としてアクセス可能とされる。
【００４１】
〔２２〕項２１の半導体装置において、前記接続用記憶回路には半導体装置のメモリ空間に第３のアドレス範囲のアドレスがマッピングされる。前記インタフェース制御回路は、前記第１バスからの第３のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする。
【００４２】
〔２３〕項２２の半導体装置は、前記中央処理装置は前記第１バスを介して機能再構成メモリに前記第３のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定することができる。
【００４３】
〔２４〕項２３の半導体装置において、前記中央処理装置は前記第１バスを介して機能再構成メモリに前記第１のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する。
【００４４】
〔２５〕項２４の半導体装置において、前記中央処理装置は第２バスを介して前記機能再構成メモリに第２のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする。
【００４５】
上述のように、前記記憶回路と接続用記憶回路に対するランダムアクセス用のアドレスマッピング(第１のアドレス範囲と第３のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドＩ／Ｏアドレスのようなリードアドレス（第２のアドレス範囲のアドレス）を個別化することにより、機能再構成セル及び接続選択回路に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。さらに、中央処理装置からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路（第1バス）と、機能設定された機能再構成セルへのアクセス経路（第２バス）とが分離されるから、機能再構成セルに周辺機能を設定して利用する場合には、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【００４６】
〔２６〕項１９の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【００４７】
〔２７〕項１９の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【００４８】
〔２８〕  項１、項５、項１６、又は項１９記載の半導体装置において、前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶回路に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。
【００４９】
〔２９〕項２９の半導体装置において、前記所定の指示は、先に前記制御フィールドから読み出された情報を用いて前記制御フィールド及びデータフィールドの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【００５０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５１】
図２には本発明の一例に係るデータプロセッサ1が例示される。同図に示されるデータプロセッサは、特に制限されないが、相補型ＭＯＳ集積回路製造技術により単結晶シリコンのような1個の半導体基板に形成されている。
【００５２】
データプロセッサ１はプログラムに従って命令をフェッチして実行する中央処理装置（ＣＰＵ）２、ＣＰＵ２が実行するプログラム等が格納されたリード・オンリ・メモリ（ＲＯＭ）３、ＣＰＵ２のワーク領域等に用いられるランダム・アクセス・メモリ（ＲＡＭ）４、及びＣＰＵ２による初期設定に従ってデータ転送を制御するダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）５を有し、それらはシステムバス（第１バス）ＳＢＵＳに接続される。システムバスＳＢＵＳはバスステートコントローラ（ＢＳＣ）６を介して周辺バス(第２バス)ＰＢＵＳに接続する。システムバスＳＢＵＳはＣＰＵ２の動作周波数に同期してデータ、アドレス及びバスコマンド等が伝送される高速バスとして位置付けられる。これに対して、周辺バスＰＢＵＳは動作速度の遅い周辺回路が接続され、データ等が低速で伝送される。ＣＰＵ２等が周辺回路に対するアクセス要求を発行すると、ＢＳＣ６はそのアクセス要求に係る周辺回路のマッピングアドレスに応じて、周辺バスを介するアクセスに必要なバスサイクル数や並列データビット数等のバス制御を行う。
【００５３】
前記システムバスＳＢＵＳと周辺バスＰＢＵＳの双方には機能再構成メモリ（ＲＣＦＧＭ）８が接続される。機能再構成メモリ８はＣＰＵ２等によりシステムバスＳＢＵＳから書き込まれた論理機能設定情報（コンフィグレーション情報）に従って可変可能に論理機能が設定され、設定された論理機能に対して周辺バスＰＢＵＳ経由でデータの入出力が可能にされる。
【００５４】
周辺バスＰＢＵＳに接続された周辺回路として、ディジタル信号をアナログ信号に変換して外部に出力するディジタル・アナログ・コンバータ（ＤＡＣ）１０、ＣＰＵ２の命令実行状態等を監視するウォッチドッグタイマ（ＷＤＴ）１１、インプットキャプチャ及びコンペアマッチ等のタイマ・カウンタ動作可能なタイマ（ＴＭＲ）１２、シリアルコミュニケーションインタフェースコントローラ（ＳＣＩ）１３、パルス幅変調回路（ＰＷＭ）１５、及び割込みコントローラ（ＩＮＴＣ）１６が例示される。同図には割込み信号としてＩＮＴａ，ＩＮＴｂが代表的に示され、割込みコントローラ１６は割込み信号に対する割り込みマスク制御や優先レベル制御を行って割込み信号を受け付け、受け付けた割込み信号に応ずるベクタを発行すると共に、ＣＰＵ２に割込み要求信号ＩＲＱを発行し、前記ベクタが示す割込み処理プログラムをＣＰＵ２に実行させる。周辺回路として、その他に図示を省略するＩＯポート等が設けられている。
【００５５】
機能再構成メモリ８は複数の機能再構成セル（ＡＣＭＵ）２０、及び外部からのアクセス要求に応答して前記機能再構成セル２０を制御するインタフェース制御回路（ＩＦＣＮＴ）２１、演算回路（ＡＲＴＭＴ）５０（５０＿１，５０＿２）等を備える。機能再構成セル２０はＣＰＵ２等によりシステムバスＳＢＵＳから書き込まれたコンフィグレーション情報に従って可変可能に論理機能が設定される。図２において複数の機能再構成セル２０の一部には、ＦＩＦＯバッファ（ＦＩＦＯ＿Ｂ）、１６ビットパルス幅変調回路（ＰＷＭ＿１６ｂ）、８ビットパルス幅変調回路（ＰＷＭ＿８ｂ）、シリアル送信ユニット（ＳＣＩ＿Ｔｘ）、シリアル受信ユニット（ＳＣＩ＿Ｒｘ）、及び２４ビットタイマ（ＴＭＲ＿２４ｂ）の論理機能が設定されている。残りの機能再構成セル２０はシステムバスＳＢＵＳを介してランダムアクセス可能な内部メモリ（ＩＴＮＲ＿ＲＡＭ）として利用可能にされる。設定された論理動作に用いるデータの書込み、論理動作の開始の指示、及び論理動作結果のデータリードは周辺バスＰＢＵＳ経由で行われる。演算回路５０は、演算機能がハードウェアによってある程度限定され、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに、可変論理に対する機能設定の負担を部分的に軽減している。
【００５６】
図１には機能再構成セル２０の一例が示される。機能再構成セル２０は記憶回路（ＭＲＹ）２３と制御回路（ＭＣＮＴ）２４を有する。記憶回路２３は例えばシングルポートのスタティック・ランダム・アクセスメモリ（ＳＲＡＭ）２５と、アドレスラッチ回路（ＡＤＲＬＡＴ）２６によって構成される。ＳＲＡＭ２５はメモリアレイ２７、アドレスデコーダ（ＳＤＥＣ）２８、及びタイミングコントローラ（ＴＭＣＮＴ）２９を備える。メモリアレイ２７はアドレスラッチ回路２６から供給されるアドレス信号によってアクセスされるデータフィールド（ＤＦＬＤ）２７＿Ｄと制御フィールド（ＣＦＬＤ）２７＿Ｃを有する。アドレスデコーダ（ＳＤＥＣ）２８はアドレスラッチ回路（ＡＤＲＬＡＴ）２６から出力されるアドレス信号をデコードして、データフィールド（ＤＦＬＤ）２７＿Ｄ及び制御フィールド（ＣＦＬＤ）２７＿Ｃの夫々からアクセス単位のメモリセルを選択する。タイミングコントローラ（ＴＭＣＮＴ）２９は選択されたアクセス単位のメモリセルに対してリード・ライト信号ＲＷ＿ｊ（ｊ＝０〜ｍ）で指示されたリード動作又はライト動作を制御する。
【００５７】
制御回路２４はアドレスラッチ回路２６にアドレス信号を供給するセレクタ（ＡＤＲＳＬ）３０、アドレスラッチ回路２６がラッチしたアドレス信号を＋１づつインクリメントするアドレスインクリメンタ（ＩＣＲＭ）３１、及びアクセス制御デコーダ（ＡＣＤＥＣ）３２を有する。セレクタ３０には、データフィールド２７＿Ｄから読み出された情報ＤＡＴ＿Ｄ、アドレスインクリメンタ３１の出力、及びバスＳＢＵＳ，ＰＢＵＳから供給されたアクセスアドレス情報の一部のアドレス情報ＡＤＲ＿ＥＸＴが入力される。アクセス制御デコーダ３２には制御フィールド２７＿Ｃから読み出された制御情報ＤＡＴ＿Ｃ、外部イベント信号ＥＸＥＶＴ、当該機能再構成セル２０に対するランダムアクセス選択信号ＲＤＭＡＥ＿ｊ、ロジックイネーブル信号ＬＯＧＥ＿ｊ、及びＩＯアクセス選択信号ＩＯＡＥ＿ｊが供給され、それに基づいてセレクタ３０の出力動作等を制御する。メモリアレイ２７には図示しないアドレスフィールド（ＡＦＬＤ）とアドレスフィールドの出力をセレクタ３０への入力とするパス（ＤＡＴ＿Ａ）を更に有し、メモリアレイ２７にアクセスしアドレスフィールドからの出力をアクセス制御デコーダによりメモリアレイ２７の次のアクセスアドレスとすることも可能である。
【００５８】
ランダムアクセス選択信号ＲＤＭＡＥ＿ｊがアクティブにされたときアクセス制御デコーダ３２はセレクタ３０にアドレス情報ＡＤＲ＿ＥＸＴを選択させ、そのアドレス情報ＡＤＲ＿ＥＸＴに従ってタイミングコントローラ２９にリード／ライト信号ＲＷ＿ｊに従ったアクセス動作を指示する。これによってＳＲＡＭ２５はアドレス情報ＡＤＲ＿ＥＸＴで指定されるアドレスに対してランダムアクセス可能になる。
【００５９】
ＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされ、リード／ライト信号ＲＷ＿ｊによりリード動作が指示されたとき、アクセス制御デコーダ３２はそのときのアドレスラッチ回路２６のアドレスラッチ状態を維持したままそのラッチアドレス情報に従ってタイミングコントローラ２９にリードアクセス動作を指示する。これにより、機能再構成セル２０のＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされると、そのときＳＲＡＭ２５で選択されている記憶領域に対してアクセス可能になり、ＳＲＡＭ２５に対して一つのメモリマップドＩＯデータレジスタに対する読出しと等価なアクセス動作が可能になる。また、ＩＯアクセス選択信号ＩＯＡＥ＿ｊがアクティブにされ、リード・ライト信号ＲＷ＿ｊによりライト動作が指示されたとき、アクセス制御デコーダ３２はアドレス情報ＡＤＲ＿ＥＸＴをアドレスセレクタ３０に選択させ、そのアドレス情報ＡＤＲ＿ＥＸＴをアドレスラッチ２６にセットして、ＳＲＡＭ２５に対する読出しアドレスを初期設定することができる。このように、ＩＯアクセス選択信号ＩＯＡＥ＿ｊがイネーブルにされたとき書込み対象とされるアドレスラッチ回路２６は書込み対象とされるメモリマップドＩＯレジスタと等価のレジスタとして把握することができる。この等価レジスタをスタートアドレス設定用等価ＩＯレジスタと称する。また、ＩＯアクセス選択信号ＩＯＡＥ＿ｊがイネーブルにされたとき読出し対象とされるＳＲＡＭのメモリ領域は読出し対象とされるメモリマップドＩＯレジスタと等価のレジスタとして把握することができる。この等価レジスタをデータリード用等価ＩＯレジスタと称する。
【００６０】
ロジックイネーブル信号ＬＯＧＥ＿ｊがアクティブにされたとき、アクセス制御デコーダ３２はそのときアドレスラッチ２６が保持しているアドレスをスタートアドレスとして、そのアクティブ期間にＳＲＡＭ２５のメモリリードサイクルを繰り返し起動し、サイクル毎に、制御フィールド２７＿Ｃから読み出される制御情報ＤＡＴ＿Ｃに従ってセレクタ３０の選択動作を制御する。外部イベント信号ＥＸＥＶＴがイネーブルにされたとき、アクセス制御デコーダ３２は当該メモリリードサイクルにおいてアドレスセレクタ３０に特定のアドレス（例えばＳＲＡＭ２５の先頭アドレス）を出力させる。ロジックイネーブル信号ＬＯＧＥ＿ｊがイネーブルにされたときスタートアドレスを保持するアドレスラッチ２６はロジック動作の開始を指示するイネーブルビットの書込み対象とされるメモリマップドＩＯレジスタと等価のレジスタとして把握することができる。この等価レジスタをロジックイネーブル用等価ＩＯレジスタと称する。
【００６１】
この機能再構成セル２０によれば、記憶回路２３の読み出しを機能再構成セル２０それ自体で自律的に制御することができる。例えば、前記制御回路２４はＳＲＡＭ２５の次の読出しアドレスを先にＳＲＡＭ２５から読出した制御フィールドＣＦＬＤの情報ＤＡＴ＿Ｃやアクセス制御デコーダ３２に供給される外部イベント信号ＥＸＥＶＴの入力に基づいて自律的に制御することが可能である。これにより、可変論理機能を実現するための記憶回路２３を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【００６２】
また、機能再構成セル２０の制御回路２４は、外部からインタフェース制御回路２１に与えられるロジックイネーブルのための指示に基づいて、前記記憶回路２３のメモリアレイ２７に対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶部に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。ロジックイネーブルのための指示は、先にメモリアレイ２７から読み出した制御フィールド２７＿Ｃの情報を用いて前記メモリアレイの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【００６３】
図３には複数の機能再構成セル２０のアレイ構成が例示される。複数の機能再構成セル２０はマトリクス配置され、左右に隣接する機能再構成セル２０の間には接続経路選択回路（ＲＳＷ）３５が配置される。機能再構成セル２０及び接続経路選択回路３５は行単位で内部バスＩＢＵＳ＿ｉ（ｉ＝０，１，…）に接続される。内部バスＩＢＵＳ＿ｉはアドレスバスＩＡＢＵＳ＿ｉとデータバスＩＤＢＵＳ＿ｉに大別される。内部アドレスバスＩＡＢＵＳ＿ｉは制御回路２４に前記アドレスＡＤＲ＿ＥＸＴを供給する。内部データバスＩＤＢＵＳ＿ｉは記憶回路２３との間で情報ＤＡＴ＿Ｃ，ＤＡＴ＿Ｄを伝達するために用いられる。接続経路選択回路３５は、機能再構成セル２０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄの伝達経路を上下又は左右に隣接する機能再構成セル２０、もしくは対応行の内部データバスＩＤＢＵＳ＿ｉの間で選択的に接続するスイッチ回路３６と、前記スイッチ回路３６のスイッチ制御情報を保持するための接続用記憶回路３７とを有する。接続用記憶回路３７は内部バスＩＡＢＵＳ＿ｉ，ＩＤＢＵＳ＿ｉを介してランダムアクセスされることによってスイッチ回路３６のための所要のスイッチ制御情報が設定される。記憶回路２３に対するランダムアクセスが指示されたときは、接続用記憶回路３７の設定内容にかかわらず、スイッチ回路３６は、ランダムアクセス選択信号ＲＤＭＡＥ＿ｊにより、ランダムアクセス対象にされる記憶回路２３を内部データバスＩＤＢＵＳ＿ｉに接続するように制御される。
【００６４】
一の機能再構成セル２０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄを他の機能再構成セル２０のデータＤＡＴ＿Ｃ，ＤＡＴ＿Ｄに伝達することが可能であるから、複数の機能再構成セル２０間でそれぞれの前記自律制御を連動させることが可能になる。複数の機能再構成セル２０を直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。具体例は後で詳述する。
【００６５】
機能再構成セル２０の記憶回路２３には論理機能を定義するためのコンフィギュレーション情報がランダムアクセス設定され、接続経路選択回路３５の接続用記憶回路３７には接続経路を定義するためのコンフィグレーション情報がランダムアクセスによって設定される。論理機能が設定された機能再構成セル２０に論理動作の開始が指示されると、その論理動作によって得られる情報は左右又は上下に配置された別の機能再構成セル２０に接続経路選択回路３５を介して伝達可能にされ、また、機能再構成セル２０の論理動作による情報は前記メモリマップドＩＯレジスタに対する読出しと等価なアクセス動作により対応するバスＩＢＵＳ＿ｉを介して外部に読み出し可能にされる。
【００６６】
図４には機能再構成メモリ８の全体的な構成が例示される。バスＳＢＵＳ，ＰＢＵＳからのアクセス要求に応答して、図３で説明した複数個の機能再構成セル２０と接続経路選択回路３５のアレイに対する制御を行うインタフェース制御回路として、バスインタフェース回路（ＢＵＳＩＦ）４０、アドレスデコーダ（ＡＤＥＣ）４１、及び内部バス選択回路（ＩＢＳＬ）４２を有する。
【００６７】
前記複数個の機能再構成セル２０の記憶回路２３のメモリエリア（ＳＲＡＭ２５の記憶領域）には図６に例示されるように、第１のアドレス範囲ＡＡ１のアドレスがマッピングされる。第１のアドレス範囲ＡＡ１はシステムバスＳＢＵＳに接続するメモリ空間の一部のアドレス空間とされる。また、前記夫々の機能再構成セル２０のための等価的なメモリマップドＩＯレジスタとして把握することができる前記スタートアドレス設定用等価ＩＯレジスタ、データリード用等価ＩＯレジスタ及びロジックイネーブル用等価ＩＯレジスタには第２のアドレス範囲ＡＡ２のアドレスがマッピングされる。図６において1個の機能再構成セルにおけるＳＲＡＭのアドレスは２５６ワード分のアドレスとされ、１個の機能再構成セルにおける前記３個の等価的なメモリマップドＩＯレジスタのアドレスは３ワード分のアドレスとされる。第２のアドレス範囲ＡＡ２は周辺バスＰＢＵＳに接続される周辺回路のレジスタ等に割り当てられるメモリマップドＩＯアドレス空間の一部のアドレス空間とされる。前記接続用記憶回路３７の記憶領域には第３のアドレス範囲ＡＡ３のアドレスがマッピングされる。第３のアドレス範囲ＡＡ３はシステムバスＳＢＵＳ若しくは周辺バスＰＢＵＳに接続するメモリ空間の一部のアドレス空間とされる。
【００６８】
バスステートコントローラ６は、第１又は第３のアドレス範囲ＡＡ１，ＡＡ３へのアクセス要求があったときデータプロセッサのアドレス空間中のメモリアドレス空間へのアクセスとしてアクセス制御を行い、第２のアドレス空間ＡＡ２へのアクセス要求があった時はデータプロセッサのアドレス空間中のＩＯアドレス空間へのアクセスとしてアクセス制御を行う。第１乃至第３のいずれのアドレス範囲へのアクセスであったとしても機能再構成メモリ８のバスインタフェース回路４０がアクセスの受付をする。第１又は第３のアドレス範囲ＡＡ１，ＡＡ３へのアクセス要求があったときはバスインタフェース回路４０はメモリウインドウイネーブル信号ＣＭＥをアクティブとし、第２のアドレス範囲ＡＡ２のアクセス要求があったときバスインタフェース回路４０はロジックウインドウイネーブル信号ＣＲＥをアクティブとする。アクセス要求に係るデータの方向はアクセス要求元から発行されるリード信号ＲＤ及びライト信号ＷＴによって判別される。尚、メモリウインドウイネーブル信号ＣＭＥ及びロジックウインドウイネーブル信号ＣＲＥは例えばアドレスデコーダ４１に供給される。
【００６９】
アドレスデコーダ４１はアクセス要求に係るアドレス信号の上位側ビットをデコードして、アレイ状に配置された機能再構成セル２０と接続経路選択回路３５のうち何れの回路が指定されているかを判別する。接続経路選択回路３５が指定されているときは当該回路の接続用記憶回路３７をイネーブルとし、対応する内部バスＩＢＵＳ＿ｉをバス選択回路４２に選択させてシステムバスＳＢＵＳに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路３７をランダムアクセス可能にする。これにより、ＣＰＵ２等は第３のアドレス範囲ＡＡ３のアドレスを指定するランダムアクセスにより接続用記憶回路３７に書き込みを行って機能再構成セル２０間の接続を任意に定義することができる。
【００７０】
また、アドレスデコーダ４１は、アドレスデコードにより、アドレス範囲ＡＡ１のアドレスにより機能再構成セル２０が指定されていることを判別したときは、当該機能再構成セルに割り当てられたＲＤＭＡＥ＿ｊをアクティブとし、対応する内部バスＩＢＵＳ＿ｉをバス選択回路４２に選択させてシステムバスＳＢＵＳに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路３７をランダムアクセス可能にする。これにより、ＣＰＵ２等は第１のアドレス範囲ＡＡ１のアドレスを指定するランダムアクセスによって記憶回路２３のＳＲＡＭ２５に書き込みを行って当該機能再構成セル２０の論理構成を任意に定義することができる。
【００７１】
アドレスデコーダ４１は、アドレスデコードにより、アドレス範囲ＡＡ２のアドレスにより機能再構成セル２０の前記等価的なメモリマップドＩＯレジスタが指定されていることを判別したときは、指定された等価的なメモリマップドＩＯレジスタに応じて、ＩＯＡＥ＿ｊ又はＬＯＧＥ＿ｊをアクティブとし、リード・ライト信号ＲＷ＿ｊを生成する。
【００７２】
即ち、そのとき、周辺バスＰＢＵＳから前記スタートアドレス設定用等価ＩＯレジスタを指定してライト信号ＷＴにより書き込み動作が指示されたとき、アドレスデコーダ４１はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル２０に割り当てられたＩＯＡＥ＿ｊをアクティブとする。更に、リード・ライト信号ＲＷ＿ｊによってライト動作を指定する。これによって当該機能再構成セル２０のＡＤＲＳＥＬ３０を経由してＡＤＲＬＡＴ２６に書き込みデータがセットされる。
【００７３】
また、そのとき、周辺バスＰＢＵＳから前記ロジックイネーブル用等価ＩＯレジスタを指定してリード信号ＲＤにより読み出し動作が指示されたとき、アドレスデコーダ４１はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル２０に割り当てられたＬＯＧＥ＿ｊをアクティブとする。更に、リード・ライト信号ＲＷ＿ｊによってリード動作を指定する。これによって当該機能再構成セル２０のアクセス制御デコーダ３２はそのときアドレスラッチ２６が保持しているアドレスをスタートアドレスとしてそのアクティブ期間にＳＲＡＭ２５のメモリリードサイクルを繰り返し起動し、サイクル毎にデータフィールド２７＿Ｄから読み出されるデータ情報ＤＡＴ＿Ｄをセレクタに帰還させ、サイクル毎に、制御フィールド２７＿Ｃから読み出される制御情報ＤＡＴ＿Ｃに従ってセレクタ３０の選択動作を制御して、論理動作を実現する。
【００７４】
また、そのとき、周辺バスＰＢＵＳから前記データリード用等価ＩＯレジスタを指定してリード信号ＲＤにより読み出し動作が指示されたとき、アドレスデコーダ４１はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル２０に割り当てられたＩＯＡＥ＿ｊをアクティブとする。更に、バスインタフェース回路４０はリード・ライト信号ＲＷ＿ｊによってリード動作を指定する。これによって当該機能再構成セル２０のＡＤＲＬＡＴ２６が保持しているアドレス情報によって選択されるＳＲＡＭ２５の記憶領域からリードされる情報をバスインタフェース回路４０が受け取って周辺バスＰＢＵＳにリードデータとして出力する。これにより、ＣＰＵ２等は論理機能が設定された機能再構成セル２０による論理動作の結果を第２のアドレス範囲ＡＡ２のアドレスを指定するリードアクセスによって任意に取得することができる。バスインタフェース回路４０は論理動作の結果の一つとして論理動作完了のような要求を認識すると、割り込み信号を割り込みコントローラ１６に供給することができる。これによる割り込みが与えられたＣＰＵ２は例えば前記データリード用等価ＩＯレジスタに対するリード動作を指定することによって当該論理動作を終了した機能再構成セル２０から論理動作の結果を取得する動作ルーチンに移行したりすることが可能になる。
【００７５】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第１のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドＩ／Ｏアドレスのようなアドレス（第２のアドレス範囲のアドレス）を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【００７６】
機能再構成セル２０における論理動作の基本概念が図７に示される。制御回路２４は条件ＣＯＮＤ＝１で外部アドレスＡＤＲ＿ＥＸＴであるアドレスＹを記憶回路２３のアクセスアドレスとし、条件ＣＯＮＤ＝０の間は、制御情報ＤＡＴ＿Ｃで決まる内部シーケンスにしたがってデータ情報ＤＡＴ＿Ｄで指定されるアドレスによって記憶回路２３をアクセスする。図８に例示されるように、内部シーケンスにしたがって処理Ａを行っているとき、条件ＣＯＮＤ＝０の間は内部シーケンスで規定されるデータ情報ＤＡＴ＿Ｄにより指定されるアドレスに応じて処理Ｂに分岐することが可能であり、また、条件ＣＯＮＤ＝１の時に外部アドレスＡＤＲ＿ＥＸＴで指定される処理Ｃに分岐することも可能である。ここで、前記条件ＣＯＮＤは、前記ＣＰＵ２などによる機能再構成メモリ８に対するアクセス形態によって決まる条件、更には、前記制御情報ＤＡＴ＿Ｃで決まる条件として把握すればよい。
【００７７】
機能再構成セル２０でリロード型ダウンカウンタを構成する場合の例が図９に示される。ここではＴＹＰＥ、ＣＦＬＡＧは制御情報ＤＡＴ＿Ｃに含まれるものとする。図９の（Ｂ）には記憶回路２３の保持情報が例示される。ＤａｔａはデータフィールドＤＦＬＤの情報、ａｄｄｒｅｓｓはアドレスラッチ回路２６に供給されるアドレス情報を意味する。例えば、ＣＦＬＡＧ＝１（ＣＯＮＤ＝１）のとき外部アドレスＡＤＲ＿ＥＸＴとして“０１１０”が入力されると、これをアドレスとしてＣＦＬＡＧ＝０、Ｄａｔａ＝“０１０１”が読み出され、読み出されたデータが次の読み出しアドレスとされ、以下同様の動作がＣＦＬＡＧ＝１になるまで繰り返される。この間に出力されるデータ情報ＤＡＴ＿Ｄは“１０１０”から“００００”までのダウンカウント値とされる。ＣＯＮＤ＝１のとき再度、カウント初期値をリロードしてダウンカウントを繰り返すことができる。図９の（Ｃ）には前記ダウンカウント動作におけるフローチャートが例示される。
【００７８】
２個の機能再構成セル２０でリロード型ダウンカウンタを構成する場合の例が図１０に示される。下位バイトの出力データＤＡＴ＿Ｄの全ビットがオール“０”になったとき、ＣＦＬＡＧを上位バイトの機能再構成セル２０の制御回路に与えて上位バイトの動作を開始させる。上位バイトの出力データＤＡＴ＿Ｄの全ビットがオール“０”になったときマルチバイトのダウンカウントが完了され、再度、下位バイトのカウント初期値をリロードすることによってマルチバイトのダウンカウントを再開することができる。
【００７９】
図９の（Ａ）の構成で３ビットカウンタを構成する場合の例を図１１に示す。図１１の（Ａ）にはＳＲＡＭの記憶データが例示される。同図に示されるＮｅｘｔ Ａｄｄｒｅｓｓ欄はアドレスラッチ回路２６の値を意味する。最後に示された[Reg]はＣＦＬＡＧ＝１によって外部から任意にアドレスが設定可能であることを意味する。図１２には図１１による３ビットカウンタ動作の動作シーケンスを例示する。ステップＳ１１−１においてＮにアドレスの初期値として“０００”を設定し、ステップＳ１１−２においてアドレス”０００“のＮｅｘｔ Ａｄｄｒｅｓｓフィールドに格納されている値”１１１“をＮの値として設定し、ステップＳ１１−３においてアドレス”１１１“のＣＦＬＡＧフィールドに格納されている値”０“を判定する。以降、ステップＳ１１−２とＳ１１−３とをＣＦＬＡＧフィールドの値が”１“になるまで繰り返す。この繰り返しの過程においてアドレスNのＤａｔａフィールドの値は値”１１１“から”０００“までの１ダウンカウンタとして出力される。
【００８０】
図６の論理動作基本概念図に対応する具体的な動作例が図１３に示される。外部トリガとして、例えば前記スタートアドレス設定用等価ＩＯレジスタの指定によって初期アドレス値として “１１１”がアドレスラッチ２６に入力される（Ｓ１）。次いで、ロジックイネーブル用等価ＩＯレジスタの指定によって、アドレスラッチ２６のアドレス情報がＳＲＡＭ２５に供給開始されることにより論理動作が起動される（Ｓ２）。これにより、そのアドレスで指定されたデータフィールドＤＦＬＤからデータ情報ＤＡＴ＿Ｄとして“１１０”がセレクタ３０に供給され（Ｓ３）、また、制御フィールドＣＦＬＤから制御情報ＤＡＴ＿Ｃとして情報“１０１”がアクセス制御デコーダ３２に供給される（Ｓ４）。アクセス制御デコーダ３２はその情報“１０１”をデコードし、Ｓ３により帰還された情報“１１０”を選択し（Ｓ５）、今度はこの情報“１１０”をアドレスとしてＳＲＡＭ２５のアクセスが行われる（Ｓ６）。以下同様に動作が繰り返されて所要の論理動作（３ビットダウンカウンタ動作）が行われる。ＣＬＫはＳＲＡＭ２５のメモリサイクル等を規定する、機能再構成セル２０の動作基準クロック信号である。
【００８１】
３ビットカウンタを夫々構成する機能再構成セル２０を接続選択回路３５で接続して６ビットカウンタを構成する例を図１４に示す。本構成では夫々の機能再構成セルは３ビットアップカウンタ動作を行う例を示しており、データフィールドＤＦＬＤの設定値と外部から供給される初期アドレス値が図１３の例と異なっている。機能再構成セル２０＿Ｌは下位３ビット、２０＿Ｕは上位３ビットを構成し、接続経路選択回路３５は、下位３ビットを構成する機能再構成セル２０＿Ｌの制御フィールドＣＦＬＤの最下位ビットの反転値を、上位３ビットを構成する機能再構成セル２０＿Ｕのロジックイネーブル信号ＬＯＧＥ＿ｊとして供給する。カウント動作を開始する前に機能再構成セル２０＿Ｌ、２０＿Ｕのアドレスラッチ回路２６に初期アドレス値として“０００”をセットし、その後、ＬＯＧＥ＿ｉをアクティブとして機能再構成セル２０＿Ｌに下位３ビットのカウント動作を開始させる。下位３ビットの機能再構成セル２０＿Ｌによるアップカウントが終了して制御情報ＤＡＴ＿Ｃが“１００”を出力する１サイクル期間だけＬＯＧＥ＿ｊをアクティブに変化させて、機能再構成セル２０＿Uに上位３ビットのカウント動作を行わせる。機能再構成セル２０＿Ｌの制御情報ＤＡＴ＿Ｃが“１００”を出力した場合、２０＿Ｌのアドレス制御デコーダ３２はセレクタ３０に対して外部からの入力を選択してアドレスラッチ回路２６にセットすることから、外部入力値としては“００１”をセットしておけばよい。
【００８２】
ＣＰＵによる機能再構成メモリ８のアクセス形態が図１５に例示される。ＣＰＵ２やＤＭＡＣ５による機能再構成メモリ８に対するランダムアクセスは経路ＰＡＳ＿Ｓを用いて行われる。このアクセス動作は機能再構成セル２０及び接続経路選択回路３５に対して機能を設定するためのコンフィギュレーション情報の設定に用いられる。また、論理機能の設定に用いられなかった機能再構成セル２０を内部ＲＡＭ（ＩＴＮＲ＿ＲＡＭ）としてリード・ライトアクセスする場合である。また、ＣＰＵ２やＤＭＡＣ５による機能再構成メモリ８に対するメモリマップドＩＯレジスタアクセスは経路ＰＡＳ＿Ｐを用いて行われる。このアクセス動作は、例えば前記スタートアドレス設定用等価ＩＯレジスタ、データリード用等かＩＯレジスタ、ロジックイネーブル用等価ＩＯレジスタに対するアクセスに用いられる。ランダムアクセス用のアドレスマッピングとメモリマップドＩＯレジスタアクセス用のアドレスマッピングは相互に分離されている。
【００８３】
以上の如く、機能再構成セル２０及び接続経路選択回路３５に所要のコンフィギュレーション情報を設定することにより、単数又は複数の機能再構成セル２０を用いて所要の周辺機能を実現することができる。特に具体例は示していないが、この機能を用いることにより、単数又は複数の機能再構成セル２０に、論理演算、算術演算、更には符号化／復号演算などの所要の演算機能を実現することも可能である。このとき、機能再構成メモリ８は、図２に例示されるように、演算機能がハードウェアによってある程度限定された演算回路５０を備え、可変論理に対する演算機能設定の負担を軽減している。
【００８４】
図４において、演算回路５０＿１は、単数又は複数の所定の機能再構成セル２０＿１，２０＿２のデータフィールド（ＤＦＬＤ）２７＿Ｄから出力される演算データを入力して演算を行う演算ロジック部５２と、上記とは別の機能再構成セル２０＿３のデータフィールド（ＤＦＬＤ）２７＿Ｄから出力される演算制御データをデコードして前記演算ロジック部（ＡＲＴＬＧＣ）５２の演算動作を制御する演算制御部（ＡＲＴＣＮＴ）５１とを有する。例えば演算ロジック部５２を算術論理演算器によって構成したとき、その論理動作や算術動作は前記演算制御データのデコード結果に従って制御される。演算回路５０＿１による演算データと演算動作に必要な演算制御データはランダムアクセスによって所要の機能再構成セル２０の記憶回路２３に予め書き込んでおけばよい。したがって、ＡＬＵのような演算回路５０＿１をコンフィギュレーション情報によっての機能記述することを要せず、所要の算術演算や論理演算を行うことができる。
【００８５】
特に図示はしないが例えば演算動作は次の用に実行される。機能再構成セル２０＿１には、一方の演算データがデータフィールド２７＿Ｄに、これを順次読み出すためのシーケンス制御データが制御フィールド２７＿Ｃに書き込まれる。機能再構成セル２０＿２には、他方の演算データがデータフィールド２７＿Ｄに、これを順次読み出すためのシーケンス制御データが制御フィールド２７＿Ｃに書き込まれる。機能再構成セル２０＿３には、演算ロジック部５２の演算制御のための制御コードがデータフィールド２７＿Ｄに、これを順次読み出すためのシーケンス制御データが制御フィールド２７＿Ｃに書き込まれる。ランダムアクセスによって上記設定が行われた後、機能再構成セル２０＿１，２０＿２，２０＿３を同期的にロジックイネーブルにすることにより、機能再構成セル２０＿３から供給される演算制御データに従って、機能再構成セル２０＿１，２０＿２から供給される演算データが演算ロジック部５２で演算される。演算結果は、ロジック部５２内のデータレジスタに蓄積される。当該データレジスタには固有のＩＯアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するＩＯレジスタリードアクセスによって、内部バスＩＢＵＳ＿０を経由して外部に読出し可能にされる。
【００８６】
図５には図４とは異なる演算回路５０＿２を採用した機能再構成メモリ８の全体的な構成が例示される。図５に示される演算回路５０＿２は、バスインタフェース回路４０を介して外部からランダムアクセスされるメモリ部（ＡＲＴＭＲＹ）５３と、メモリ部５３から読み出されたデータを演算する演算ロジック部（ＡＲＴＬＧＣ）５５と、所定の機能再構成セル２０＿４のデータフィールド（ＤＦＬＤ）２７＿Ｄから出力される演算制御データをデコードして前記メモリ部５３の読出しと前記演算ロジック部５５の演算動作を制御する演算制御部（ＡＲＴＣＮＴ）５４とを有する。演算データは機能再構成メモリ８の外部からメモリ部５３にランダムアクセスによって格納される。機能再構成セル２０＿４には、演算制御部５４に与える演算制御データと、メモリ部５３から演算データを読み出すためのメモリアドレスがランダムアクセスによって初期設定される。この後、機能再構成セル２０＿４がロジックイネーブルイにされることにより、機能再構成セル２０＿４から供給される演算制御データとメモリアドレスに従って、メモリ部５３から供給される演算データが演算ロジック部５５で演算される。演算結果は、ロジック部５５内のデータレジスタに蓄積される。当該データレジスタには固有のＩＯアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するＩＯレジスタリードアクセスによって、内部バスＩＢＵＳ＿０を経由して外部に読出し可能にされる。その他の構成は図４と同じであり、その詳細な説明は省略する。図５の演算回路５０＿２の構成によれば、演算データの一時的な記憶には機能再構成セル２０のとは別のメモリ部５３を割当てることが可能になる。
【００８７】
以下に、図５の演算回路５０＿２におけるメモリ部（ＡＲＴＭＲＹ）５３及び演算ロジック部（ＡＲＴＬＧＣ）５５の具体例を説明する。ここでは、メモリ部５３及び演算ロジック部５５をＭＲＡＭで構成する。
【００８８】
図１６には前記演算回路５０＿２の全体の構成が概略的に示される。演算回路５０＿２は、演算子セルアレイ１００、行選択駆動回路１２０、メインアンプ回路１４０、データパス１８０、及び制御回路２００を備える。演算子セルアレイ１００は、複数の演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１に分割される。演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１の各々に対応して、複数のセンスアンプＳＡが設けられたセンスアンプ帯２６０が設けられる。行駆動回路１２０及び演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１メモリ部５３を構成する。センスアンプ帯２６０及びメインアンプ回路１４０は演算ロジック部５５を構成する。制御回路２００は演算制御部５４を構成する。データパス１８０は内部バスＩＢＵＳ＿０に接続され、データ出力レジスタ、データ入力レジスタ等を備える。
【００８９】
図１７は、メモリ部５３において用いられるメモリセルの断面構造を概略的に示す図である。以下では、演算子セルアレイ１００において行列上に配置された複数のメモリセルのうち、ｉ番目のメモリセル行＜ｉ＞、ｊ番目のメモリセル行＜ｊ＞およびｋ番目のメモリセル行＜ｋ＞の最大３つのメモリセル行が並行して選択される場合について説明する。そして、メモリセル行＜ｉ＞、メモリセル行＜ｊ＞およびメモリセル行＜ｋ＞に対応するメモリセルＭＣＩ、ＭＣＪおよびＭＣＫを代表的に図示する。これらのメモリセルＭＣＩ、ＭＣＪおよびＭＣＫは、各々、１つのトランジスタおよび１つのＭＴＪ素子で構成されるＭＲＡＭセルである。
【００９０】
図１７において、半導体基板領域ＳＢＳ表面に、間をおいて、高濃度Ｎ型不純物領域２Ｉ，４Ｉ，２Ｊ，４Ｊ，２Ｋ，４Ｋが配置される。不純物領域２Ｉおよび４Ｉの間のチャネル形成領域３Ｉ上に、図示しないゲート絶縁膜を介してゲート電極５Ｉが形成される。同様、不純物領域２Ｊおよび４Ｊの間のチャネル形成領域３Ｊ上に、図示しないゲート絶縁膜を介してゲート電極５Ｊが形成される。また、不純物領域２Ｋおよび４Ｋの間のチャネル形成領域３Ｋ上に、図示しないゲート絶縁膜を介してゲート電極５Ｋが形成される。
【００９１】
不純物領域２Ｉおよび４Ｉとゲート電極５Ｉとにより、メモリセルＭＣＩのアクセストランジスタが形成される。ゲート電極５Ｉは、読出ワード線ＲＷＬ＜ｉ＞を構成する。メモリセルＭＣＩにおいて、アクセストランジスタに対応してその上層に、可変抵抗素子として、可変磁気抵抗素子（ＭＴＪ素子）ＭＴＪＩが設けられる。
【００９２】
可変磁気抵抗素子ＭＴＪＩは、磁化方向が固定される固定層ＦＸＬと、磁化方向が記憶データに応じて変更される自由層ＦＲＬと、これらの固定層ＦＸＬおよび自由層ＦＲＬの間のトンネルバリア層ＴＢＬとを有する。自由層ＦＲＬは、上部電極ＵＥＬＲを介してビット線ＢＬに結合される。固定層ＦＸＬは、局所配線ＬＩＩに、図示しない下部電極を介して接続される。局所配線ＬＩＩは、プラグ６Ｉおよび７Ｉと中間層配線８Ｉとにより、不純物領域２Ｉに電気的に結合される。可変磁気抵抗素子ＭＴＪＩ下部において、中間層配線８Ｉと同一配線層に、導電線９Ｉが配置される。この導電線９Ｉは、書込ワード線ＷＷＬ＜ｉ＞を構成する。
【００９３】
メモリセルＭＣＪにおいては、不純物領域２Ｊおよび４Ｊとゲート電極５Ｊとにより、アクセストランジスタが形成される。ゲート電極５Ｊは、別の読出ワード線ＲＷＬ＜ｊ＞を構成する。
【００９４】
このメモリセルＭＣＪのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子ＭＴＪＪが設けられる。この可変磁気抵抗素子ＭＴＪＪは、可変磁気抵抗素子ＭＴＪＩと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子ＭＴＪＪは、局所配線ＬＩＪ、プラグ６Ｊおよび７Ｊ、ならびに中間層配線８Ｊを介して不純物領域２Ｊに電気的に結合される。
【００９５】
可変磁気抵抗素子ＭＴＪＪの下部において、中間層配線８Ｊと同一配線層に、導電線９Ｊが配置される。導電線９Ｊは、別の書込ワード線ＷＷＬ＜ｊ＞を構成する。
【００９６】
また、メモリセルＭＣＫにおいては、不純物領域２Ｋおよび４Ｋとゲート電極５Ｋとにより、アクセストランジスタが形成される。ゲート電極５Ｋは、別の読出ワード線ＲＷＬ＜ｋ＞を構成する。
【００９７】
このメモリセルＭＣＫのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子ＭＴＪＫが設けられる。この可変磁気抵抗素子ＭＴＪＫは、可変磁気抵抗素子ＭＴＪＩと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子ＭＴＪＫは、局所配線ＬＩＫ、プラグ６Ｋおよび７Ｋ、ならびに中間層配線８Ｋを介して不純物領域２Ｋに電気的に結合される。
【００９８】
可変磁気抵抗素子ＭＴＪＫの下部において、中間層配線８Ｋと同一配線層に、導電線９Ｋが配置される。導電線９Ｋは、別の書込ワード線ＷＷＬ＜ｋ＞を構成する。
【００９９】
図１８は、図１７に示すメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの電気的等価回路を示す図である。図１８において、メモリセルＭＣＩは、ビット線ＢＬとソース線ＳＬＩの間に直列に接続されるアクセストランジスタＡＴＩおよび可変磁気抵抗素子ＭＴＪＩを含む。メモリセルＭＣＪは、ビット線ＢＬとソース線ＳＬＪの間に直列に接続される可変磁気抵抗素子ＭＴＪＪおよびアクセストランジスタＡＴＪを含む。メモリセルＭＣＫは、ビット線ＢＬとソース線ＳＬＫの間に直列に接続される可変磁気抵抗素子ＭＴＪＫおよびアクセストランジスタＡＴＫを含む。図１８においては、ソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、ビット線ＢＬと直交する方向に配設されるように示すが、これらのソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、ビット線ＢＬと並行に配設されてもよい。ソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、接地ノードに結合される。
【０１００】
アクセストランジスタＡＴＩ、ＡＴＪおよびＡＴＫは、それぞれ、読出ワード線ＲＷＬ＜ｉ＞、ＲＷＬ＜ｊ＞およびＲＷＬ＜ｋ＞の電位に応答して選択的にオンする。書込ワード線ＷＷＬ＜ｉ＞、ＷＷＬ＜ｊ＞およびＷＷＬ＜ｋ＞は、それぞれ可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫと物理的に分離されかつ磁気的に結合される。
【０１０１】
ビット線ＢＬ、書込ワード線ＷＷＬ＜ｉ＞、ＷＷＬ＜ｊ＞およびＷＷＬ＜ｋ＞を流れる電流が誘起する磁界により、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫの自由層ＦＲＬの磁化方向が設定される。
【０１０２】
図１９は、可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。図１９においては、磁化方向を矢印で示す。
【０１０３】
図１９（Ａ）に示すように、固定層ＦＸＬおよび自由層ＦＲＬの磁化方向が異なる場合（反平行の場合）、磁気抵抗効果により、可変磁気抵抗素子を通して流れる電流に対する電気的抵抗が高くなる。このとき、この可変磁気抵抗素子は、電流に対して高抵抗状態となり、抵抗値Ｒｍａｘを有する。
【０１０４】
一方、図１９（Ｂ）に示すように、固定層ＦＸＬと自由層ＦＲＬの磁化方向が一致するとき、すなわち平行  なときには、この可変磁気抵抗素子は、電流に対して低抵抗状態となり、抵抗値Ｒｍｉｎを有する。
【０１０５】
アクセストランジスタＡＴ（ＡＴＩ，ＡＴＪ，ＡＴＫ）がオン状態のとき、ビット線ＢＬおよびソース線ＳＬ（ＳＬＩ，ＳＬＪ）を流れる電流量は、可変磁気抵抗素子ＭＴＪ（ＭＴＪＩ，ＭＴＪＪ，ＭＴＪＫ）の抵抗値に従って異なる。この電流量を、図示しないセンスアンプで検知することにより、このメモリセルＭＣ（ＭＣＩ，ＭＣＪ，ＭＣＫ）の記憶データを読出す。一例として、高抵抗状態をデータ“０”に対応付け、低抵抗状態を、データ“１”に対応付ける。
【０１０６】
データ書込時においては、図１８に示すアクセストランジスタＡＴＩ、ＡＴＪおよびＡＴＫをオフ状態に維持する。書込ワード線ＷＷＬ（ＷＷＬ＜ｉ＞、ＷＷＬ＜ｊ＞またはＷＷＬ＜ｋ＞）を通して所定の方向に電流を流し、磁界を誘起する。ビット線ＢＬを通して、書込データに応じた方向に電流を流す。ビット線ＢＬを流れる電流が誘起する磁界と書込ワード線ＷＷＬを流れる電流が誘起する磁界の合成磁界により、可変磁気抵抗素子ＭＴＪの自由層ＦＲＬの磁化方向を、固定層の磁化方向に対し平行状態または反平行状態に設定する。この自由層の磁化方向により、可変磁気抵抗素子ＭＴＪの抵抗状態が設定され、データの書込が行なわれる。
【０１０７】
このメモリセルＭＣのデータは、可変磁気抵抗素子の自由層の磁化方向により設定される。外部から、自由層の磁化方向を反転させる原因が印加されない限り、自由層ＦＲＬの磁化方向は変化しない。したがって、メモリセルＭＣは、不揮発的にデータを記憶することができる。また、この自由層ＦＲＬの磁化方向は、ビット線電流および書込ワード線電流の誘起する磁界により決定され、書込時、たとえばフラッシュメモリのように、トンネル絶縁膜などを介して電流は流れない。したがって、層間絶縁膜の劣化の問題は回避することができ、可変磁気抵抗素子の書換回数は、ほぼ無限大である。
【０１０８】
また、この可変磁気抵抗素子の自由層の磁化方向は、ビット線ＢＬおよび書込ワード線ＷＷＬを流れる電流により決定されるため、高速の書込を行なうことができる。また、データ読出も、ビット線ＢＬを流れる電流量に従って行なわれるため、高速で読出を行なうことができる。また、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫを通して流れる電流の大きさに応じてデータの読出が行なわれ、この可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫの自由層の磁化方向は、読出電流により反転しない。したがって、非破壊的にデータの読出を行なうことができ、ＤＲＡＭセルおよび強誘電体キャパシタのようなリストア動作が不要となり、データ読出サイクルを短くすることができる。
【０１０９】
演算回路５０＿２においては、このＭＲＡＭセルの特長を利用して、メモリセルの記憶データと演算ロジック部５５のセンスアンプの増幅動作とを利用して、演算操作を実行する。
【０１１０】
図２０は、メモリブ５３におけるメモリセルのアレイ内配置を概略的に示す図である。図２０においては、２つのメモリセル列に対応する回路を代表的に示す。
【０１１１】
メモリセルＭＣＩ１およびＭＣＩ２に対しては、読出ワード線ＲＷＬ＜ｉ＞および書込ワード線ＷＷＬ＜ｉ＞が配設され、メモリセルＭＣＪ１およびＭＣＪ２に対しては、読出ワード線ＲＷＬ＜ｊ＞および書込ワード線ＷＷＬ＜ｊ＞が設けられ、メモリセルＭＣＫ１およびＭＣＫ２に対しては、読出ワード線ＲＷＬ＜ｋ＞および書込ワード線ＷＷＬ＜ｋ＞が設けられる。メモリセルＭＣＩ１およびＭＣＩ２に対しては、行方向に延在するソース線ＳＬ＜ｉ＞が設けられる。メモリセルＭＣＪ１およびＭＣＪ２に対しては、行方向に延在するソース線ＳＬ＜ｊ＞が設けられる。メモリセルＭＣＫ１およびＭＣＫ２に対しては、行方向に延在するソース線ＳＬ＜ｋ＞が設けられる。これらのソース線ＳＬ＜ｉ＞、ＳＬ＜ｊ＞およびＳＬ＜ｋ＞は、共通ソース線ＳＬＣＭを介して接地ノードに結合される。
【０１１２】
メモリセルＭＣＩ１、ＭＣＪ１およびＭＣＫ１が接続されているビット線ＢＬ＜１＞と対をなすビット線ＺＢＬ＜１＞に接続されたダミーセルＤＭＣＡ１およびＤＭＣＢ１が設けられる。メモリセルＭＣＩ２、ＭＣＪ２およびＭＣＫ２が接続されているビット線ＢＬ＜２＞と対をなすビット線ＺＢＬ＜２＞に接続されたダミーセルＤＭＣＡ２およびＤＭＣＢ２が設けられる。ダミーセルＤＭＣＡ１およびＤＭＣＡ２に対しては、ダミー読出ワード線ＤＲＷＬ１およびダミー書込ワード線ＤＷＷＬ１が設けられ、ダミーセルＤＭＣＢ１およびＤＭＣＢ２に対しては、ダミー読出ワード線ＤＲＷＬ２およびダミー書込ワード線ＤＷＷＬ２が設けられる。ダミーセルＤＭＣＡ１およびＤＭＣＡ２のダミーソース線ＤＳＬ１は、基準電圧ＶＲＥＦ１が供給される基準電位ノードＶＲＥＦ１または基準電圧ＶＲＥＦ３が供給される基準電位ノードＶＲＥＦ３にスイッチＳＷ１を介して結合される。ダミーセルＤＭＣＢ１およびＤＭＣＢ２のダミーソース線ＤＳＬ２は、基準電圧ＶＲＥＦ２が供給される基準電位ノードＶＲＥＦ２または基準電圧ＶＲＥＦ４が供給される基準電位ノードＶＲＥＦ４にスイッチＳＷ２を介して結合される。これらのダミーセルＤＭＣＡ１、ＤＭＣＡ２、ＤＭＣＢ１およびＤＭＣＢ２は、ともに低抵抗状態に設定され、抵抗値Ｒｍｉｎを有する。
【０１１３】
基準電位ノードＶＲＥＦ１およびＶＲＥＦ３のいずれをダミーソース線ＤＳＬ１と接続するか、基準電位ノードＶＲＥＦ２およびＶＲＥＦ４のいずれをダミーソース線ＤＳＬ２と接続するかは、後述するようにメモリセルＭＣから読み出したデータに対して行なわれる演算の種類によって決まる。
【０１１４】
メモリセルＭＣの列およびダミーセルＤＭＣの列に対応してビット線ＢＬおよびＺＢＬがそれぞれ設けられる。メモリセルＭＣＩ１、ＭＣＪ１およびＭＣＫ１は、ビット線ＢＬ＜１＞に並列に結合され、ダミーセルＤＭＣＡ１およびＤＭＣＢ１は、補のビット線ＺＢＬ＜１＞に結合される。メモリセルＭＣＩ２、ＭＣＪ２およびＭＣＫ２は、ビット線ＢＬ＜２＞に並列に結合され、ダミーセルＤＭＣＡ２およびＤＭＣＢ２は、補のビット線ＺＢＬ＜２＞に結合される。
【０１１５】
読出ワード線ＲＷＬ＜ｉ＞、ＲＷＬ＜ｊ＞およびＲＷＬ＜ｋ＞の一端に、読出ドライバＲＷＤＶＩ、ＲＷＤＶＪおよびＲＷＤＶＫがそれぞれ設けられる。ダミー読出ワード線ＤＲＷＬ１およびＤＲＷＬ２の一端に、読出ドライバＤＲＷＤＶ１およびＤＲＷＤＶ２がそれぞれ設けられる。書込ワード線ＷＷＬ＜ｉ＞、ＷＷＬ＜ｊ＞およびＷＷＬ＜ｋ＞の一端に、書込ドライバＷＷＤＶＩ、ＷＷＤＶＪおよびＷＷＤＶＫがそれぞれ設けられる。ダミー書込ワード線ＤＷＷＬ１およびＤＷＷＬ２の一端に、書込ドライバＤＷＷＤＶ１およびＤＷＷＤＶ２がそれぞれ設けられる。
【０１１６】
読出ドライバＲＷＤＶＩ、ＲＷＤＶＪ、ＲＷＤＶＫ、ＤＲＷＤＶ１およびＤＲＷＤＶ２は、データ読み出し時、対応の読出ワード線を選択状態へ駆動する。書込ドライバＷＷＤＶＩ、ＷＷＤＶＪ、ＷＷＤＶＫ、ＤＷＷＤＶ１およびＤＷＷＤＶ２は、データ書込時、対応の書込ワード線を選択状態へ駆動する。
【０１１７】
ビット線ＢＬ＜１＞およびＺＢＬ＜１＞の一端に、センスアンプＳＡ１が設けられる。センスアンプＳＡ１は演算ロジック部５５の一部である。ビット線ＢＬ＜１＞の両端に、書込ドライバＷＤＶＡ１およびＷＤＶＡ２がそれぞれ設けられ、また補のビット線ＺＢＬ＜１＞の両端に、書込ドライバＤＷＤＶＡ１およびＤＷＤＶＡ２がそれぞれ設けられる。書込ドライバＷＤＶＡ１およびＷＤＶＡ２は、データ書込時、相補データＤおよび／Ｄに従ってビット線ＢＬ＜１＞に電流を流す。同様に、書込ドライバＤＷＤＶＡ１およびＤＷＤＶＡ２も、相補データＤＤおよび／ＤＤに従って、補のビット線ＺＢＬ＜１＞に双方向に電流を流す。これらの書込ドライバＷＤＶＡ１、ＷＤＶＡ２、ＤＷＤＶＡ１、およびＤＷＤＶＡ２を双方向ドライバで構成することにより、ビット線ＢＬ＜１＞およびＺＢＬ＜１＞に、書込データに応じて双方向に電流を流すことができ、メモリセルＭＣＩ１、ＭＣＪ１およびＭＣＫ１に対し、データを書込むことができる。
【０１１８】
同様に、ビット線ＢＬ＜２＞およびＺＢＬ＜２＞の一端に、センスアンプＳＡ２が設けられる。センスアンプＳＡ２は演算ロジック部５５の一部である。ビット線ＢＬ＜２＞の両端に、書込ドライバＷＤＶＢ１およびＷＤＶＢ２が設けられ、また補のビット線ＺＢＬ＜２＞の両端に、書込ドライバＤＷＤＶＢ１およびＤＷＤＶＢ２が設けられる。書込ドライバＷＤＶＢ１およびＷＤＶＢ２は、データ書込時、相補データＤおよび／Ｄに従ってビット線ＢＬ＜２＞に電流を流す。同様に、書込ドライバＤＷＤＶＢ１およびＤＷＤＶＢ２も、相補データＤＤおよび／ＤＤに従って、補のビット線ＺＢＬ＜２＞に双方向に電流を流す。これらの書込ドライバＷＤＶＢ１、ＷＤＶＢ２、ＤＷＤＶＢ１、およびＤＷＤＶＢ２を双方向ドライバで構成することにより、ビット線ＢＬ＜２＞およびＺＢＬ＜２＞に、書込データに応じて双方向に電流を流すことができ、メモリセルＭＣＩ２、ＭＣＪ２およびＭＣＫ２に対し、データを書込むことができる。
【０１１９】
ただし、ダミーセルＤＭＣは、低抵抗状態に設定されるため、補のビット線ＺＢＬに対して設けられる書込ドライバＤＷＤＶＡ１、ＤＷＤＶＡ２、ＤＷＤＶＢ１およびＤＷＤＶＢ２は、供給電流の方向が固定されることから、双方向に電流を供給することは、特に要求されない。
【０１２０】
このセンスアンプＳＡ（ＳＡ１，ＳＡ２）、１対の書込ドライバＷＤＶおよび１対の書込ドライバＤＷＤＶが、各ビット線対に対応して設けられる。
【０１２１】
なお、ダミーセルＤＭＣＡ１、ＤＭＣＡ２、ＤＭＣＢ１およびＤＭＣＢ２のダミーソース線ＤＳＬ１およびＤＳＬ２が、接地ノードではなく、基準電位ノードＶＲＥＦ１〜ＶＲＥＦ４に結合されるのは、以下の理由による。すなわち、データ読出時、これらの基準電位ノードの電圧ＶＲＥＦ１〜ＶＲＥＦ４を所望の値に設定した場合、これらのダミーセルＤＭＣＡ１、ＤＭＣＡ２、ＤＭＣＢ１およびＤＭＣＢ２を通してそれぞれ流れる電流量を、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫを通して流れる電流の中間値またはそれより大きい値に設定することができる。演算処理時においては、後に詳細に説明するように、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫが並行して選択され、これらのメモリセルの記憶データに応じた電流がビット線ＢＬを通して流れる。このビット線上の合成電流に対して基準電圧ＶＲＥＦ１〜ＶＲＥＦ４の電圧レベルを調整することにより、補のビット線ＺＢＬを通して流れるダミーセル電流を調整することで、必要とされる演算を実行する。
【０１２２】
データ書込時においては、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫを順次選択して、１対の書込ドライバＷＤＶによりデータを書込む。データ読出時においては、読出ワード線ＲＷＬ＜ｉ＞、ＲＷＬ＜ｊ＞およびＲＷＬ＜ｋ＞を並行して選択状態へ駆動し、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫを並列にビット線ＢＬに結合する。
【０１２３】
次に、メモリ部５３で１つのメモリセル行＜ｉ＞を選択した場合における読み出し動作について説明する。
【０１２４】
図２１は、メモリセルＭＣＩの記憶データの組み合わせを一覧にして示す図である。図２１に示すように、メモリセルＭＣＩの可変磁気抵抗素子ＭＴＪＩの抵抗状態の組み合わせとして、２つの状態が存在する。状態Ｓ（０）は、メモリセルＭＣＩの可変磁気抵抗素子ＭＴＪＩが、高抵抗状態Ｈ（Ｒｍａｘ）である。状態Ｓ（１）は、可変磁気抵抗素子ＭＴＪＩが、低抵抗状態Ｌ（Ｒｍｉｎ）である。ここで、高抵抗状態をデータ“０”に対応付け、低抵抗状態をデータ“１”に対応付けている。
【０１２５】
データ書込時において、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩを並行して選択し、各可変磁気抵抗素子ＭＴＪＩの抵抗状態を設定する。すなわち、書込時には、書込ワード線ＷＷＬ＜ｉ＞を選択し、図２０に示す１対の書込ドライバＷＤＶを用いて、各ビット線ＢＬを通して書込データに応じた方向に電流を流す。
【０１２６】
読出時においては、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩを選択し、各可変磁気抵抗素子ＭＴＪＩを並行して各ビット線ＢＬに結合する。したがって、読出時においては、各可変磁気抵抗素子ＭＴＪＩを通して流れる電流が各ビット線ＢＬを通して流れる。
【０１２７】
一方、各メモリセル列において、ダミーセルＤＭＣＡおよびＤＭＣＢは、データ読出時、１つのダミーセルが選択される。すなわち、ダミー読出ワード線ＤＲＷＬ１およびＤＲＷＬ２のいずれかが選択される。これらのダミーセルＤＭＣＡおよびＤＭＣＢは、低抵抗状態Ｌ（Ｒｍｉｎ）であり、抵抗値Ｒｍｉｎを有する。基準電圧ＶＲＥＦ１〜ＶＲＥＦ４の電圧レベルを選択することにより、ダミーセルＤＭＣＡおよびＤＭＣＢを流れる電流量を調整する。ここでは、ダミー読出ワード線ＤＲＷＬ１が選択されてダミーセルＤＭＣＡが選択され、また、基準電位ノードＶＲＥＦ１にダミーセルＤＭＣＡが接続される場合について説明する。
【０１２８】
図２２は、データ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。図２２において、縦軸にビット線ＢＬおよびＺＢＬの電位を示し、横軸に時間を示す。なお、データ読出前、ビット線ＢＬおよびＺＢＬは、所定電圧レベル（読出電圧レベル）にプリチャージされる。
【０１２９】
メモリセルＭＣＩが状態Ｓ（０）のときには、メモリセルＭＣＩ（可変磁気抵抗素子ＭＴＪＩ）は高抵抗状態であり、メモリセルＭＣＩを流れる電流が最も小さい状態である。この場合、ビット線ＢＬの電位低下は最も遅い。
【０１３０】
一方、状態Ｓ（１）においては、メモリセルＭＣＩ（可変磁気抵抗素子ＭＴＪＩ）は低抵抗状態であり、多くの電流をビット線ＢＬからソース線ＳＬへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【０１３１】
また、ダミーセルＤＭＣＡは低抵抗状態Ｌ（Ｒｍｉｎ）である。メモリセルＭＣＩのソース線は接地電圧レベルに維持される。したがって、基準電圧ＶＲＥＦ１を接地電圧以上の電圧レベルに設定することにより、ダミーセルＤＭＣＡを通して流れる電流を、状態Ｓ（０）のときにビット線ＢＬを通して流れる電流よりも大きく、かつ状態Ｓ（１）のときにビット線ＢＬを通して流れる電流よりも小さくすることができる。従って、ダミーセルＤＭＣＡ選択時の補のビット線ＺＢＬの電位を、状態Ｓ（０）と状態Ｓ（１）の間の状態に設定することができる。この場合のダミーセルＤＭＣＡを通して流れる電流Ｉｄ１については、以下のように表わすことができる。
【０１３２】
Ｉｌ＞Ｉｄ１＞Ｉｈただし、ＩｈおよびＩｌは、それぞれ、高抵抗状態および低抵抗状態のメモリセルＭＣを通して流れる電流を示す。
【０１３３】
センスアンプＳＡによりビット線ＢＬおよびＺＢＬの電流を差動増幅してメモリセルＭＣＩの記憶データの読出を行なう。この場合、センスアンプＳＡにおいては、ダミーセルＤＭＣＡを通して流れる電流を基準値として用いて、ビット線電流の２値判断を行なっている。従って、センスアンプＳＡの出力は、メモリセルＭＣＩの１ビットの記憶データの論理値を示している。
【０１３４】
図２３は、演算ロジック部５５におけるセンスアンプの出力信号とメモリセルＭＣＩの記憶状態との対応を一覧にして示す図である。
【０１３５】
図２３に示すように、状態Ｓ（０）においては、可変磁気抵抗素子ＭＴＪＩは高抵抗状態Ｈ（Ｒｍａｘ）であり、データ“０”を記憶している。この状態においては、図２２に示すようにビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも小さく、ビット線ＢＬの電位は補のビット線ＺＢＬよりも高い。このとき、センスアンプの出力信号は“１”となる。
【０１３６】
状態Ｓ（１）においては、メモリセルＭＣＩは低抵抗状態Ｌ（Ｒｍｉｎ）であり、データ“１”を記憶している。この状態においては、図２２に示すようにビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも大きく、ビット線ＢＬの電位は補のビット線ＺＢＬよりも低い。このとき、センスアンプの出力信号は “０”となる。
【０１３７】
したがって、センスアンプからは、メモリセルＭＣＩの記憶データのＮＯＴ演算結果が出力される。
【０１３８】
次に、演算回路５０＿２において、２つのメモリセル行＜ｉ＞および＜ｊ＞を選択した場合における読み出し動作について説明する。
【０１３９】
図２４は、メモリセルＭＣＩおよびＭＣＪの記憶データの組み合わせを一覧にして示す図である。図２４に示すように、メモリセルＭＣＩおよびＭＣＪの可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪの抵抗状態の組み合わせとして、４つの状態が存在する。状態Ｓ（０，０）は、メモリセルＭＣＩおよびＭＣＪの可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪが、ともに、高抵抗状態Ｈ（Ｒｍａｘ）である。状態Ｓ（１，０）は、可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪが、それぞれ低抵抗状態Ｌ（Ｒｍｉｎ）および高抵抗状態Ｈ（Ｒｍａｘ）である。ここで、高抵抗状態をデータ“０”に対応付け、低抵抗状態を、データ“１”に対応付けている。
【０１４０】
状態Ｓ（０，１）は、可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪが、それぞれ高抵抗状態Ｈ（Ｒｍａｘ）および低抵抗状態Ｌ（Ｒｍｉｎ）である。状態Ｓ（１，１）は、可変磁
気抵抗素子ＭＴＪＩおよびＭＴＪＪが、ともに低抵抗状態Ｌ（Ｒｍｉｎ）である。
【０１４１】
データ書込時において、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩとメモリセル行＜ｊ＞に対応する複数のＭＣＪとを個々に選択し、各可変磁気抵抗素子ＭＴＪＩおよび各可変磁気抵抗素子ＭＴＪＪの抵抗状態を設定する。すなわち、書込時には、書込ワード線ＷＷＬ＜ｉ＞およびＷＷＬ＜ｊ＞を順次選択し、図２０に示す１対の書込ドライバＷＤＶを用いて、各ビット線ＢＬを通して書込データに応じた方向に電流を流す。
【０１４２】
読出時においては、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩおよびメモリセル行＜ｊ＞に対応する複数のメモリセルＭＣＪを並行して選択し、可変磁気抵抗素子ＭＴＪＩおよび可変磁気抵抗素子ＭＴＪＪの各組を並行して各ビット線ＢＬに結合する。したがって、読出時においては、可変磁気抵抗素子ＭＴＪＩおよび可変磁気抵抗素子ＭＴＪＪの各組を通して流れる電流の合成電流が各ビット線ＢＬを通して流れる。
【０１４３】
一方、各メモリセル列において、ダミーセルＤＭＣＡおよびＤＭＣＢは、データ読出時、１つのダミーセルが選択される。すなわち、ダミー読出ワード線ＤＲＷＬ１およびＤＲＷＬ２のいずれかが選択される。これらのダミーセルＤＭＣＡおよびＤＭＣＢは、低抵抗状態Ｌ（Ｒｍｉｎ）であり、抵抗値Ｒｍｉｎを有する。基準電圧ＶＲＥＦ１〜ＶＲＥＦ４の電圧レベルを選択することにより、ダミーセルＤＭＣＡおよびＤＭＣＢを流れる電流量を調整する。まず、ダミー読出ワード線ＤＲＷＬ１が選択されてダミーセルＤＭＣＡが選択され、また、基準電位ノードＶＲＥＦ１にダミーセルＤＭＣＡが接続される場合について説明する。
【０１４４】
図２５は、データ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。図２５において、メモリセルＭＣＩおよびＭＣＪが並列に接続される。データ読出時、アクセストランジスタＡＴＩおよびＡＴＪが並行して選択され、ビット線ＢＬと接地ノードとの間に並列に可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪが、記憶データに応じた電流ＩＩおよびＩＪを流す。補のビット線ＺＢＬには、ダミーセルＤＭＣ（ＤＭＣＡまたはＤＭＣＢ）が、基準電圧ＶＲＥＦ（ＶＲＥＦ１〜ＶＲＥＦ４のいずれか）の電圧レベルに応じた電流ＩＤを流す。これらのビット線の合成電流ＩＩ＋ＩＪと補のビット線ＺＢＬのダミーセル電流ＩＤとの大小に応じて、データの読出を実行する。
【０１４５】
図２６は、データ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。図２６において、縦軸にビット線ＢＬおよびＺＢＬの電位を示し、横軸に時間を示す。
【０１４６】
メモリセルＭＣＩおよびＭＣＪが状態Ｓ（０，０）のときには、メモリセルＭＣＩおよびＭＣＪは高抵抗状態であり、メモリセルＭＣＩおよびＭＣＪを流れる電流が最も小さい状態である。この場合、ビット線ＢＬの電位低下は最も遅い。ここで、データ読出時においては、ビット線ＢＬおよびＺＢＬは、所定電圧レベル（読出電圧レベル）にプリチャージされる。
【０１４７】
一方、状態Ｓ（１，１）においては、メモリセルＭＣＩおよびＭＣＪは、ともに低抵抗状態であり、多くの電流をビット線ＢＬからソース線ＳＬへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【０１４８】
状態Ｓ（１，０）およびＳ（０，１）は、高抵抗状態と低抵抗状態の組み合わせであり、状態Ｓ（０，０）およびＳ（１，１）のビット線電流の中間の電流が流れる。したがって、状態Ｓ（１，０）およびＳ（０，１）の場合、ビット線の読出電位は、この状態Ｓ（０，０）およびＳ（１，１）の間となる。
【０１４９】
また、ダミーセルＤＭＣＡおよびＤＭＣＢは、ともに低抵抗状態Ｌ（Ｒｍｉｎ）である。メモリセルＭＣＩおよびＭＣＪのソース線は接地電圧レベルに維持される。したがって、基準電圧ＶＲＥＦ１を接地電圧以上の電圧レベルに設定することにより、ダミーセルＤＭＣＡを通して流れる電流を、状態Ｓ（０，０）のときにビット線ＢＬを流れる電流よりも大きくかつ状態Ｓ（０，１）およびＳ（１，０）のときにビット線ＢＬを流れる電流よりも小さくすることができる。従って、ダミーセルＤＭＣＡ選択時の補のビット線ＺＢＬの電位を、状態Ｓ（０，０）と状態Ｓ（１，０）およびＳ（０，１）との間に設定することができる。この場合のダミーセルＤＭＣＡを通して流れる電流Ｉｄ１については、以下のように表わすことができる。
Ｉｌ＞Ｉｄ１＞Ｉｈ、
２×Ｉｈ＜Ｉｄ１＜Ｉｈ＋Ｉｌ
ただし、ＩｈおよびＩｌは、それぞれ、高抵抗状態および低抵抗状態のメモリセルＭＣを流れる電流を示す。
【０１５０】
次に、ダミー読出ワード線ＤＲＷＬ２が選択されてダミーセルＤＭＣＢが選択され、また、基準電位ノードＶＲＥＦ２にダミーセルＤＭＣＢが接続される場合について説明する。
【０１５１】
ダミーセルＤＭＣＢを選択し、基準電圧ＶＲＥＦ２を負電圧に設定した場合、１つの低抵抗状態のメモリセルＭＣを通して流れる電流よりも大きな電流を、補のビット線ＺＢＬに流すことができる。従って、ダミーセルＤＭＣＢ選択時の補のビット線ＺＢＬの電位を、状態Ｓ（１，０）およびＳ（０，１）と状態Ｓ（１，１）との間に設定することができる。この場合のダミーセルＤＭＣＢを通して流れる電流Ｉｄ２については、以下のように表わすことができる。
Ｉｌ＜Ｉｄ２、
２×Ｉｌ＞Ｉｄ２＞Ｉｈ＋Ｉｌ
センスアンプＳＡによりビット線ＢＬおよびＺＢＬの電流を差動増幅してメモリセルＭＣＩおよびＭＣＪの記憶データの読出を行なう。この場合、センスアンプＳＡにおいては、ダミーセルＤＭＣを通して流れる電流を基準値として用いて、ビット線電流の２値判断を行なっている。従って、センスアンプＳＡの出力は、メモリセルＭＣＩおよびＭＣＪの２ビットの記憶データの組み合わせを２分類したうちのいずれか一方を示しており、センスアンプＳＡにより、メモリセルＭＣＩおよびＭＣＪの記憶データに対する論理演算を行なうことができる。
【０１５２】
図２７は、演算回路５０＿２におけるセンスアンプの出力信号とメモリセルＭＣＩおよびＭＣＪの記憶状態との対応を一覧にして示す図である。
【０１５３】
図２７に示すように、状態Ｓ（０，０）においては、可変磁気抵抗素子ＭＴＪＩおよびＭＴＪＪがともに高抵抗状態Ｈ（Ｒｍａｘ）であり、データ“０”を記憶している。この状態においては、ダミーセルＤＭＣＡ（基準電圧ＶＲＥＦ１）およびＤＭＣＢ（基準電圧ＶＲＥＦ２）のいずれを選択しても、図２６に示すように、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも小さく、ビット線ＢＬの電位は補のビット線ＺＢＬよりも高い。このとき、センスアンプの出力信号は“１”となる。
【０１５４】
状態Ｓ（１，０）および状態Ｓ（０，１）の場合、メモリセルＭＣＩおよびＭＣＪの一方が高抵抗状態Ｈ（Ｒｍａｘ）であり、他方が低抵抗状態Ｌ（Ｒｍｉｎ）である。したがって、基準電圧ＶＲＥＦ１を選択した場合には、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも大きく、ビット線ＢＬの電位が補のビット線ＺＢＬよりも低くなる。このとき、センスアンプの出力信号は“０”となる。また、基準電圧ＶＲＥＦ２を選択した場合には、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも小さく、ビット線ＢＬの電位が補のビット線ＺＢＬよりも高くなる。このとき、センスアンプの出力信号は“１”となる。
【０１５５】
状態Ｓ（１，１）の場合、メモリセルＭＣＩおよびＭＣＪはともに低抵抗状態Ｌ（Ｒｍｉｎ）であり、データ“１”を記憶している。この場合、基準電圧ＶＲＥＦ１およびＶＲＥＦ２のいずれを選択しても、図２６に示すように、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも大きく、ビット線ＢＬの電位は、補のビット線ＺＢＬよりも低くなる。このとき、センスアンプの出力信号は“０”となる。
【０１５６】
したがって、図２７に示すように、基準電圧ＶＲＥＦ１を選択した場合、センスアンプからは、メモリセルＭＣＩおよびＭＣＪの記憶データのＮＯＲ演算結果が出力され、また、基準電圧ＶＲＥＦ２を選択した場合、センスアンプからは、メモリセルＭＣＩおよびＭＣＪの記憶データのＮＡＮＤ演算結果が出力される。
【０１５７】
なお、センスアンプとしては、交差結合ラッチ型センスアンプが用いられてもよい。しかしながら、この交差結合型ラッチセンスアンプは、ビット線ＢＬおよびＺＢＬの電位差を増幅する電圧検出型センスアンプである。したがって、より高速でセンス動作を行なうために、電流検出型センスアンプを利用することが好ましい。
【０１５８】
図２８は、電流検出型のセンスアンプの構成の一例を示す図である。図２８において、センスアンプＳＡは、カレントミラー段を構成するＰチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）ＰＴ１−ＰＴ３と、ビット線ＢＬへＭＯＳトランジスタＰＴ１からの電流を供給するＮチャネルＭＯＳトランジスタＮＴ１と、別のカレントミラー段を構成するＰチャネルＭＯＳトランジスタＰＴ４−ＰＴ６と、ＭＯＳトランジスタＰＴ６から補のビット線ＺＢＬへ電流を供給するＮチャネルＭＯＳトランジスタＮＴ６とを含む。
【０１５９】
ＭＯＳトランジスタＰＴ１およびＮＴ１がビット線ＢＬとノードＮＤ１の間の直列に接続される。ＭＯＳトランジスタＰＴ１は、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作する。ＭＯＳトランジスタＮＴ１は、そのゲートにセンス基準電圧Ｖｒｅｆｓを受け、ビット線ＢＬの電位の上昇を抑制しつつビット線電流を供給する。このセンス基準電圧Ｖｒｅｆｓは、データ読出時、メモリセルＭＣのビット線ＢＬの大きな電流が流れ、このビット線電流の誘起磁界によりメモリセルの記憶データが破壊されるのを防止する。
【０１６０】
ＭＯＳトランジスタＰＴ６およびＮＴ６は、ノードＮＤ１と補のビット線ＺＢＬの間に直列に接続される。ＭＯＳトランジスタＰＴ６は、ゲートおよびドレインが相互接続されカレントミラー段のマスタとして動作する。ＭＯＳトランジスタＮＴ６は、センス基準電圧Ｖｒｅｆｓをゲートに受け、ＭＯＳトランジスタＰＴ６から供給される電流を補のビット線ＺＢＬへ供給する。ＭＯＳトランジスタＰＴ２−ＰＴ５は、それぞれのソースノードが電源ノードに結合される。
【０１６１】
センスアンプＳＡは、さらに、カレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＴ２およびＮＴ３と、別のカレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＴ４およびＮＴ５を含む。
【０１６２】
ＭＯＳトランジスタＮＴ２は、ＭＯＳトランジスタＰＴ２とノードＮＤとの間に接続され、そのゲートおよびドレインが相互接続される。ＭＯＳトランジスタＮＴ３は、ＭＯＳトランジスタＰＴ４とノードＮＤ２の間に接続され、そのゲートがＭＯＳトランジスタＮＴ２のゲートに接続される。ＭＯＳトランジスタＮＴ４は、ＭＯＳトランジスタＰＴ３とノードＮＤ２との間に接続され、そのゲートがＭＯＳトランジスタＮＴ５のゲートに接続される。ＭＯＳトランジスタＮＴ５は、ＭＯＳトランジスタＰＴ５とノードＮＤ２の間に接続され、かつそのゲートおよびドレインが相互接続される。
【０１６３】
ＭＯＳトランジスタＮＴ２およびＮＴ５により電流／電圧変換された信号が中間センス信号として出力される。
【０１６４】
センスアンプＳＡは、さらに、センスアンプ活性化信号／ＳＥの活性化時導通し、ノードＮＤ１を電源ノードに接続するＰチャネルＭＯＳトランジスタＰＴ７と、センスアンプ活性化信号ＳＥの活性化時導通し、ノードＮＤ２を接地ノードＧＮＤに結合するＮチャネルＭＯＳトランジスタＮＴ７を含む。センスアンプ活性化信号／ＳＥおよびＳＥは、それぞれ、活性化時、論理ローレベルおよび論理ハイレベルである。
【０１６５】
センスアンプＳＡは、さらに、ＭＯＳトランジスタＮＴ２およびＮＴ５により電流／電圧変換された中間センス出力信号ＳＯＴおよび／ＳＯＴを増幅して最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴを生成する最終増幅回路ＳＭＰを含む。この最終増幅回路ＳＭＰは、センスアンプ活性化信号／ＳＥの非活性化時、出力ハイインピーダンス状態である。この図２８に示すセンスアンプＳＡの動作について説明する。
【０１６６】
センスアンプ活性化信号／ＳＥおよびＳＥの非活性化時、ＭＯＳトランジスタＰＴ７およびＮＴ７は、オフ状態である。この状態においては、ＭＯＳトランジスタＰＴ２およびＰＴ５により、中間センス出力信号ＳＯＴおよび／ＳＯＴは、電源電圧ＶＤＤレベルに維持される。ノードＮＤ１は、ＭＯＳトランジスタＰＴ１、ＮＴ１、およびＰＴ６、ＮＴ１により、ビット線ＢＬおよびＺＢＬと同様の電位レベルに維持される。また、最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴも出力ハイインピーダンス状態のプリチャージレベル（例えば論理ハイレベル）に維持される。
【０１６７】
センス動作時には、先ず、読出ワード線選択前に、センスアンプ活性化信号／ＳＥを活性化し、ＭＯＳトランジスタＰＴ７およびＮＴ７をオン状態とする。応じて、ノードＮＤ１が電源ノードに結合され、ＭＯＳトランジスタＰＴ１およびＰＴ６が動作し、ビット線ＢＬおよびＺＢＬが充電される。この場合、またセンスアンプ活性化信号ＳＥは、並行して活性化されてもよい。センス動作開始時までセンスアンプ活性化信号ＳＥの活性化が遅延されても良い。読出ワード線ＲＷＬは、まだ、非選択状態であり、ビット線ＢＬおよびＺＢＬが、ＭＯＳトランジスタＮＴ１およびＮＴ６から供給される電流に従って所定電圧レベルにプリチャージされる。
【０１６８】
プリチャージ動作が完了すると、次いで、読出ワード線を選択状態へ駆動する。このときまでには、センスアンプ活性化信号ＳＥが活性化される。応じて、選択メモリセルを介してビット線ＢＬからソース線に、その記憶データに応じたセル電流Ｉｃｅｌｌが流れる。一方、補のビット線ＺＢＬにおいても、ダミーセルにより、ダミーセル電流Ｉｄｕｍｍｙが流れる。これらの電流ＩｃｅｌｌおよびＩｄｕｍｍｙは、ＭＯＳトランジスタＰＴ１およびＰＴ６により、それぞれ供給され、ＭＯＳトランジスタＰＴ１を介して流れる電流のミラー電流が、ＭＯＳトランジスタＰＴ２およびＰＴ３を介して流れ、ＭＯＳトランジスタＰＴ６を介して流れる電流のミラー電流がＭＯＳトランジスタＰＴ４およびＰＴ５を介して流れる。従って、これらのビット線を介して流れるセル電流Ｉｃｅｌｌおよびダミーセル電流Ｉｄｕｍｍｙのミラー電流が、それぞれ、ＭＯＳトランジスタＮＴ２およびＮＴ５を介してそれぞれ流れる。
【０１６９】
ＭＯＳトランジスタＮＴ２およびＮＴ５の電流／電圧変換動作により、セル電流Ｉｃｅｌｌがダミーセル電流Ｉｄｕｍｍｙよりも大きい場合には、中間センス出力信号／ＳＯＴが論理ハイレベルとなり、中間センス出力信号ＳＯＴが論理ローレベルとなる。逆に、セル電流Ｉｃｅｌｌがダミーセル電流Ｉｄｕｍｍｙよりも小さい場合には、中間センス出力信号／ＳＯＴが論理ローレベルとなり、中間センス出力信号ＳＯＴが論理ハイレベルとなる。これらの中間センス出力信号ＳＯＴおよび／ＳＯＴは、次段の最終増幅回路ＳＭＰによりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴが、生成される。
【０１７０】
なお、ＭＯＳトランジスタＮＴ３およびＮＴ４については、以下の動作が行なわれる。すなわち、ＭＯＳトランジスタＮＴ２は、ＭＯＳトランジスタＰＴ２からの電流を放電し、ＭＯＳトランジスタＮＴ３は、ＭＯＳトランジスタＮＴ２のミラー電流を放電することができる。同様、ＭＯＳトランジスタＰＴ５を流れる電流のミラー電流が、ＭＯＳトランジスタＮＴ５を介して流れ、ＭＯＳトランジスタＮＴ４は、ＭＯＳトランジスタＮＴ５を介して流れる電流のミラー電流を放電することができる。
【０１７１】
したがって、ＭＯＳトランジスタＰＴ３およびＮＴ４には、セル電流Ｉｃｅｌｌとダミーセル電流Ｉｄｕｍｍｙのうちの小さいほうの電流が流れ、ＭＯＳトランジスタＰＴ４およびＮＴ３においても、ダミーセル電流Ｉｄｕｍｍｙとセル電流Ｉｃｅｌｌの小さいほうの電流が流れる。ＭＯＳトランジスタＮＴ７へは、セル電流Ｉｃｅｌｌとダミーセル電流Ｉｄｕｍｍｙの合計電流とこれらの電流の小さいほうの電流の２倍の電流との和が常時流れる。従って、１ビットセルデータを読出して２値判定を行なう場合には、センス動作の安定化のために、これらのＭＯＳトランジスタＰＴ３、ＰＴ４、ＮＴ３、およびＮＴ４は、ＭＯＳトランジスタＮＴ７を介して流れる電流量を一定とする機能を有する。
【０１７２】
しかしながら、これらのＭＯＳトランジスタＰＴ３、ＮＴ４、ＮＴ３、およびＮＴ４は、特に設けられなくてもよい。また、これに代えて、ＭＯＳトランジスタＰＴ３およびＮＴ４の接続ノードおよびＭＯＳトランジスタＰＴ４およびＮＴ３の接続ノードから、センス出力信号ＳＯＵＴおよび／ＳＯＵＴが、それぞれ取り出される構成が用いられてもよい。
【０１７３】
上述のように、センスアンプＳＡが、複数のメモリセルの記憶データに対するＮＯＲ演算結果およびＮＡＮＤ演算結果を示す信号を生成している。また、メモリセルの記憶データの論理値を変更せずに読み出す場合、ならびにＯＲ演算およびＡＮＤ演算結果をセンスアンプにより生成する場合には、図２８に示すセンス出力信号を後述するメインアンプ回路１４０またはデータパス１８０において反転すればよい。
【０１７４】
基準電圧ＶＲＥＦ１〜ＶＲＥＦ４によりダミーセル電流Ｉｄｕｍｍｙの電流レベルを調整することにより、ＮＯＲ演算およびＮＡＮＤ演算を選択的に行なうことができる。
【０１７５】
次に、演算回路５０＿２において、３つのメモリセル行＜ｉ＞、＜ｊ＞および＜ｋ＞を選択した場合における読み出し動作について説明する。
【０１７６】
図２９は、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データの組み合わせを一覧にして示す図である。図２９に示すように、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫの抵抗状態の組み合わせとして、８つの状態が存在する。上記説明と同様に、状態Ｓ（Ａ，Ｂ，Ｃ）のとき、ＡはメモリセルＭＣＩの抵抗状態を表し、ＢはメモリセルＭＣＪの抵抗状態を表し、ＣはメモリセルＭＣＫの抵抗状態を表す。たとえば、状態Ｓ（０，０，０）は、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫが、ともに、高抵抗状態Ｈ（Ｒｍａｘ）である。状態Ｓ（１，１，１）は、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫが、ともに低抵抗状態Ｌ（Ｒｍｉｎ）である。ここで、高抵抗状態をデータ“０”に対応付け、低抵抗状態を、データ“１”に対応付けている。
【０１７７】
データ書込時において、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩと、メモリセル行＜ｊ＞に対応する複数のＭＣＪと、メモリセル行＜ｋ＞に対応する複数のＭＣＫとを個々に選択し、各可変磁気抵抗素子ＭＴＪＩ、各可変磁気抵抗素子ＭＴＪＪおよび各可変磁気抵抗素子ＭＴＪＫの抵抗状態を設定する。すなわち、書込時には、書込ワード線ＷＷＬ＜ｉ＞、ＷＷＬ＜ｊ＞およびＷＷＬ＜ｋ＞を順次選択し、図２０に示す１対の書込ドライバＷＤＶを用いて、各ビット線ＢＬを通して書込データに応じた方向に電流を流す。
【０１７８】
読出時においては、メモリセル行＜ｉ＞に対応する複数のメモリセルＭＣＩ、メモリセル行＜ｊ＞に対応する複数のメモリセルＭＣＪおよびメモリセル行＜ｋ＞に対応する複数のメモリセルＭＣＫを並行して選択し、可変磁気抵抗素子ＭＴＪＩ、可変磁気抵抗素子ＭＴＪＪおよび可変磁気抵抗素子ＭＴＪＫの各組を並行して各ビット線ＢＬに結合する。したがって、読出時においては、可変磁気抵抗素子ＭＴＪＩ、可変磁気抵抗素子ＭＴＪＪおよび可変磁気抵抗素子ＭＴＪＫの各組を通して流れる電流の合成電流が各ビット線ＢＬを通して流れる。
【０１７９】
一方、各メモリセル列において、ダミーセルＤＭＣＡおよびＤＭＣＢは、データ読出時、１つのダミーセルが選択される。すなわち、ダミー読出ワード線ＤＲＷＬ１およびＤＲＷＬ２のいずれかが選択される。これらのダミーセルＤＭＣＡおよびＤＭＣＢは、低抵抗状態Ｌ（Ｒｍｉｎ）であり、抵抗値Ｒｍｉｎを有する。基準電圧ＶＲＥＦ１〜ＶＲＥＦ４の電圧レベルを選択することにより、ダミーセルＤＭＣＡおよびＤＭＣＢを流れる電流量を調整する。まず、ダミー読出ワード線ＤＲＷＬ１が選択されてダミーセルＤＭＣＡが選択され、また、基準電位ノードＶＲＥＦ３にダミーセルＤＭＣＡが接続される場合について説明する。
【０１８０】
図３０は、データ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。図３０において、縦軸にビット線ＢＬおよびＺＢＬの電位を示し、横軸に時間を示す。
【０１８１】
メモリセルＭＣＩ、ＭＣＪおよびＭＣＫが状態Ｓ（０，０，０）のときには、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫは高抵抗状態であり、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫを流れる電流が最も小さい状態である。この場合、ビット線ＢＬの電位低下は最も遅い。ここで、データ読出時においては、ビット線ＢＬおよびＺＢＬは、所定電圧レベル（読出電圧レベル）にプリチャージされる。
【０１８２】
一方、状態Ｓ（１，１，１）においては、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫは、ともに低抵抗状態であり、多くの電流をビット線ＢＬからソース線ＳＬへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【０１８３】
状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）は、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫのうちの２つが高抵抗状態であり、他の１つが低抵抗状態である。これらの状態では、状態Ｓ（０，０，０）およびＳ（１，１，１）のビット線電流の間の電流が流れる。したがって、状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）では、ビット線の読出電位は、状態Ｓ（０，０，０）およびＳ（１，１，１）の間となる。
【０１８４】
また、状態Ｓ（１，１，０）、Ｓ（１，０，１）およびＳ（０，１，１）は、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫのうちの２つが低抵抗状態であり、他の１つが高低抵抗状態である。これらの状態では、状態Ｓ（０，０，０）およびＳ（１，１，１）のビット線電流の間の電流が流れ、かつ状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）と比べてビット線電流が大きくなる。したがって、状態Ｓ（１，１，０）、Ｓ（１，０，１）およびＳ（０，１，１）では、ビット線の読出電位は、状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）と状態Ｓ（１，１，１）の間となる。
【０１８５】
また、ダミーセルＤＭＣＡおよびＤＭＣＢは、ともに低抵抗状態Ｌ（Ｒｍｉｎ）である。メモリセルＭＣＩ、ＭＣＪおよびＭＣＫのソース線は接地電圧レベルに維持される。したがって、基準電圧ＶＲＥＦ１を接地電圧以上の電圧レベルに設定することにより、ダミーセルＤＭＣＡを通して流れる電流を、状態Ｓ（０，０，０）のときにビット線ＢＬを流れる電流よりも大きくかつ状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）のときにビット線ＢＬを流れる電流よりも小さくすることができる。従って、ダミーセルＤＭＣＡ選択時の補のビット線ＺＢＬの電位を、状態Ｓ（０，０，０）と状態Ｓ（１，０，０）、Ｓ（０，１，０）およびＳ（０，０，１）との間に設定することができる。この場合のダミーセルＤＭＣＡを通して流れる電流Ｉｄ１については、以下のように表わすことができる。
Ｉｌ＞Ｉｄ１＞Ｉｈ、
３×Ｉｈ＜Ｉｄ１＜２×Ｉｈ＋Ｉｌ
ただし、ＩｈおよびＩｌは、それぞれ、高抵抗状態および低抵抗状態のメモリセルＭＣを流れる電流を示す。
【０１８６】
次に、ダミー読出ワード線ＤＲＷＬ２が選択されてダミーセルＤＭＣＢが選択され、基準電位ノードＶＲＥＦ４にダミーセルＤＭＣＢが接続される場合について説明する。
【０１８７】
ダミーセルＤＭＣＢを選択し、基準電圧ＶＲＥＦ２を負電圧に設定した場合、１つの低抵抗状態のメモリセルＭＣを通して流れる電流よりも大きな電流を、補のビット線ＺＢＬに流すことができる。従って、ダミーセルＤＭＣＢ選択時の補のビット線ＺＢＬの電位を、状態Ｓ（１，１，０）、Ｓ（１，０，１）およびＳ（０，１，１）と状態Ｓ（１，１，１）との間に設定することができる。この場合の、ダミーセルＤＭＣＢを通して流れる電流Ｉｄ２については、以下のように表わすことができる。
Ｉｌ＜Ｉｄ２、
３×Ｉｌ＞Ｉｄ２＞Ｉｈ＋２×Ｉｌ
センスアンプＳＡによりビット線ＢＬおよびＺＢＬの電流を差動増幅してメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データの読出を行なう。この場合、センスアンプＳＡにおいては、ダミーセルＤＭＣを通して流れる電流を基準値として用いて、ビット線電流の２値判断を行なっている。従って、センスアンプＳＡの出力は、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの３ビットの記憶データの組み合わせを２分類したうちのいずれか一方を示しており、センスアンプＳＡにより、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データに対する論理演算を行なうことができる。
【０１８８】
図３１は、演算回路５０＿２におけるセンスアンプの出力信号とメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶状態との対応を一覧にして示す図である。
【０１８９】
図３１に示すように、状態Ｓ（０，０，０）においては、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫがともに高抵抗状態Ｈ（Ｒｍａｘ）であり、データ“０”を記憶している。この状態においては、ダミーセルＤＭＣＡ（基準電圧ＶＲＥＦ３）およびＤＭＣＢ（基準電圧ＶＲＥＦ４）のいずれを選択しても、図３０に示すようにビット線ＢＬの流は補のビット線ＺＢＬの電流よりも小さく、ビット線ＢＬの電位は補のビット線ＺＢＬよりも高い。このとき、センスアンプの出力信号は“１”となる。
【０１９０】
状態Ｓ（１，０，０）、Ｓ（０，１，０）、Ｓ（０，０，１）、Ｓ（１，１，０）、Ｓ（１，０，１）およびＳ（０，１，１）では、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫのうちの少なくともいずれか１つが低抵抗状態Ｌ（Ｒｍｉｎ）である。したがって、基準電圧ＶＲＥＦ３を選択した場合には、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも大きく、ビット線ＢＬの電位が補のビット線ＺＢＬよりも低くなる。このとき、センスアンプの出力信号は“０”となる。また、基準電圧ＶＲＥＦ４を選択した場合には、ビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも小さく、ビット線ＢＬの電位が補のビット線ＺＢＬよりも高くなる。このとき、センスアンプの出力信号は“１”となる。
【０１９１】
状態Ｓ（１，１，１）の場合、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫはともに低抵抗状態Ｌ（Ｒｍｉｎ）であり、データ“１”を記憶している。この場合、基準電圧ＶＲＥＦ３およびＶＲＥＦ４のいずれを選択しても、図１４に示すようにビット線ＢＬの電流は補のビット線ＺＢＬの電流よりも大きく、ビット線ＢＬの電位は、補のビット線ＺＢＬよりも低くなる。このとき、電圧検出型センスアンプの出力信号は“０”となる。
【０１９２】
したがって、図３１に示すように、基準電圧ＶＲＥＦ３を選択した場合、センスアンプからは、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データのＮＯＲ演算結果が出力され、また、基準電圧ＶＲＥＦ４を選択した場合、センスアンプからは、メモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データのＮＡＮＤ演算を行なった結果が出力される。
【０１９３】
ここまでの説明では、ダミーセルＤＭＣがメモリセル列ごとに２つ設けられる構成であるとしたが、これに限定するものではない。ダミーセルＤＭＣがメモリセル列ごとに１つ設けられ、このダミーセルＤＭＣに接続されたスイッチＳＷが、たとえば基準電位ノードＶＲＥＦ１〜ＶＲＥＦ４のうちのいずれか１つとダミーセルＤＭＣとを選択的に結合する構成であってもよい。
【０１９４】
以上の説明を踏まえて図１６に示される演算回路５０＿２の構成について更に説明する。図１６では、演算子セルアレイ１００は、複数の演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１に分割され、例えば３２個の演算子セルサブアレイブロックに分割されているが、分割数は３２に限定されない。演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１の各々は、サブメモリアレイＭＬＡを含む。サブメモリアレイＭＬＡにおいて、メモリセルＭＣが行列状に配列され、また、各メモリセル列に対応して、ダミーセルが設けられる。１つの演算子セルサブアレイブロックにおいて１または複数のメモリセル行および複数のダミーセルを選択して、メモリセルの記憶データに対する演算処理を実行する。演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１の各々に対応してセンスアンプ帯２６０が配置される。
【０１９５】
演算子セルアレイ１００に対して設けられた行選択駆動回路１２０は、演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１それぞれに対応して設けられる行ドライブ回路ＸＤＲ０−ＸＤＲ３１を含む。これらの行ドライブ回路ＸＤＲ０−ＸＤＲ３１の各々は、たとえば機能再構成セル２０＿４から供給される制御データに基づいて制御回路２００が生成するアドレス信号に基づいて、対応する演算子セルサブアレイブロックにおけるメモリセル行を選択する。したがって、行ドライブ回路ＸＤＲ０−ＸＤＲ３１は、行アドレス信号をデコードする行アドレスデコード回路と、データ読出時、デコードされた行アドレス信号に基づいて読出ワード線を選択状態に駆動する読出ワード線ドライブ回路と、データ書き込み時、デコードされた行アドレス信号に基づいて書込ワード線を選択状態に駆動する書込ワード線ドライブ回路とを含む。
【０１９６】
この演算子セルアレイ１００のデータ入出力経路にデータパス１８０と共に設けられたメインアンプ回路１４０は、演算子セルサブアレイブロックＯＡＲ０−ＯＡＲ３１の各ビット線対ＢＬおよびＺＢＬに対応して設けられるメインアンプを含む。メインアンプ回路１４０において、各メインアンプが演算子セルアレイ１００において選択された演算子セルサブアレイブロックから読出されたデータ（センスアンプ出力信号）を並列に増幅する。これにより、演算子セルアレイ１００において選択された演算子セルサブアレイブロックのエントリ（１行のメモリセルで構成される）のデータに対するセンスアンプ出力をビットごとに並列に増幅する。
【０１９７】
データパス１８０は、メインアンプ回路１４０からの転送データの保持およびこの転送データに対応する外部へのデータの出力、ならびに外部からの入力データの保持および入力データに基づくメモリセルに対する書込データの生成を実行する。
【０１９８】
なお、図１６において、選択された演算子セルサブアレイブロックに対するデータの書込を行なう回路は示していないが、同様、このデータ書込を行なうデータ書込回路も設けられる。また、指定された演算内容に応じてダミーセルの選択および基準電位ノードの選択を行なう回路も設けられる。このダミーセル選択回路は、行ドライブ回路ＸＤＲにおいて選択的にダミー読出ワード線を選択するダミーワード線駆動回路により実現される。また、行ドライブ回路ＸＤＲは、図２０のスイッチＳＷ１およびＳＷ２をそれぞれ制御する基準電位ノード選択回路を含む。
【０１９９】
演算回路５０＿２における内部演算処理の設定および動作タイミング制御は、制御回路２０により行なわれる。この制御回路２０は、可変論理セル２０＿４から供給されるデータをデコードして内部の演算指定および内部タイミングの生成を行なう。
【０２００】
図３２には演算回路５０＿２による演算例が示される。図３２を参照して、エントリｉすなわちメモリセル行＜ｉ＞における各メモリセルの記憶データ列が”１０１０１０１０１０１０１”であり、エントリｊすなわちメモリセル行＜ｊ＞における各メモリセルの記憶データ列が”０１０１０１０１０１０１０”であり、エントリｋすなわちメモリセル行＜ｋ＞における各メモリセルの記憶データ列が”００１１００１１００１１０”である。
【０２０１】
エントリｉを１つ選択する場合、データＤＯＵＴは”１０１０１０１０１０１０１”となる（ＯＰ１）。また、エントリｉおよびｊを選択し、ＡＮＤ演算を選択する場合、データＤＯＵＴは”０００００００００００００”となる（ＯＰ２）。また、エントリｊおよびｋを選択し、ＡＮＤ演算を選択する場合、データＤＯＵＴは”０００１０００１０００１０”となる（ＯＰ３）。
【０２０２】
演算回路５０＿２において、演算子セルアレイ１０における演算子セルサブアレイブロックＯＡＲの数をｍとし、各演算子セルサブアレイブロックＯＡＲにおけるエントリ数をｎとすると、生成されるデータ列は、ｍ×ｎ＋ｍ×ｎ×（ｎ−１）÷２×２＋ｍ×ｎ×（ｎ−１）×（ｎ−２）÷（３×２）×２となる。
【０２０３】
但し、上記式において、第１項は１つの演算子セルサブアレイブロックＯＡＲにおけるｎエントリから１エントリを選択する場合の組み合わせ数であり、第２項はｎエントリから２エントリを選択する場合のＡＮＤ演算およびＯＲ演算の選択を含めた組み合わせ数であり、第３項はｎエントリから３エントリを選択する場合のＡＮＤ演算およびＯＲ演算の選択を含めた組み合わせ数である。
【０２０４】
以上のように、演算回路５０＿２では、行選択駆動回路１２０は、受けたアドレス信号に基づいて１または複数のメモリセル行に対応する複数のメモリセルＭＣおよび複数のダミーセルＤＭＣを並行して選択する。そして、センスアンプＳＡは、対応のビット線ＢＬを通して流れる電流と対応のビット線ＺＢＬを通して流れる電流とを比較し、比較結果を示す信号を出力する。これにより、選択されたメモリセル行の記憶データ列をそのまま読み出すことができる。また、複数メモリセル行を並行して選択し、各メモリセル行の記憶データに基づく電流を加算することにより、各メモリセル行の記憶データ列同士の論理演算をセンスアンプにおいて行ない、その演算結果を演算回路５０＿２の外部から読み出すこともできる。
【０２０５】
また、上記のように各メモリセル行の記憶データ列同士の論理演算を行なうことにより、演算子セルアレイ１００が記憶する物理的な真理値データ列から、この真理値データ列で構成される実エントリ空間より遥かに大きい仮想エントリ空間を作り出すことができる。すなわち、従来のＬＵＴ演算器に比べて、はるかに高密度な論理情報を格納するＬＵＴ形態の演算回路を実現することができる。
【０２０６】
また、演算回路５０−＿２では、メモリセルＭＣにおいて、可変磁気抵抗素子を記憶素子として利用している。これにより、メモリセルの記憶データを破壊することなくその記憶データを読み出すことができるため、メモリセルの記データを繰り返し利用して演算を実行することができる。
【０２０７】
なお、演算回路５０＿２では、メモリセルとしてＭＲＡＭセルを用いたが、ＭＲＡＭセルに限らず、バルクシリコン上に形成され、データを不揮発的に記憶する他のメモリセルであってもよい。たとえば、フラッシュメモリのような電流センス型の非破壊読み出しメモリであってもよい。
【０２０８】
また、図示はしないが、センスアンプ帯２６０の次段に、組み合わせ論理演算回路を配置してもよい。組み合わせ論理演算回路は、センスアンプ帯２６０から転送されたメモリセルの記憶データに対し、指定された論理演算および算術演算処理をさらに実行することにより、センスアンプ出力であるＮＯＲ演算結果およびＮＡＮＤ演算結果から、ＸＯＲ等の別の演算処理結果等を生成することができる。また、組み合わせ論理演算回路は、センスアンプ帯２６０におけるセンスアンプの出力信号の論理レベルを反転してメインアンプ回路１４０へ出力することもできる。
【０２０９】
以上説明したマイクロコンピュータ１によれば以下の作用効果がある。
【０２１０】
（１）記憶回路２３の読み出しを機能再構成セル２０それ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路２３を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【０２１１】
（２）ＣＰＵ２等は第３のアドレス範囲ＡＡ３に対するライトアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路３５をランダムアクセスして、機能再構成セル２０の間の接続を定義するためのスイッチ制御情報を任意に書き込むことができる。
【０２１２】
（３）ＣＰＵ２等は第１のアドレス範囲ＡＡ１に対してアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられている機能再構成セル２０のＳＲＡＭ２５をランダムアクセスして、前記機能再構成セル２０のＳＲＡＭ２５に所定の論理機能を実現するための情報を任意に定義することができる。
【０２１３】
（４）ＣＰＵ２等は第２のアドレス範囲ＡＡ２に対してデータリード用等価ＩＯレジスタアクセスを要求することにより、制御回路２４がＳＲＡＭ２３から出力している情報を前記論理機能によって得られた結果としてリードすることができる。これにより、ＣＰＵ２等は論理機能が設定された機能再構成セル２０による論理動作の結果を第２のアドレス範囲ＡＡ２のアドレスを指定したリードアクセスによって任意に取得することができる。
【０２１４】
（５）ランダムアクセス用のＡＡ１，ＡＡ３のアドレスマッピングに対し、機能設定された機能再構成セル２０による論理動作結果を取得したりするために機能再構成セル２０に割り当てたメモリマップドＩＯアドレスのようなＡＡ２のアドレスマッピングを個別化することにより、機能再構成セル２０及び接続選択回路３５に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレス等に変更を生ぜず、機能再構成セル２０に対する論理機能をダイナミックに再構成することが容易になる。
【０２１５】
（６）ＣＰＵ２からバスインタフェース回路４０に対する機能再構成セル２０への機能設定用アクセス経路にシステムバスＳＢＵＳを用い、機能設定された機能再構成セル２０への等価的メモリマップドレジスタアクセスのための経路に周辺バスを用い、双方の経路が分離されるから、機能再構成セル２０に周辺機能を設定して利用する場合には、ＣＰＵ２等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【０２１６】
（７）機能再構成メモリ８は、演算機能がハードウェアによってある程度限定された演算回路５０を備えるから、可変論理に対する演算機能設定の負担を軽減することができる。要するに、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに済み、可変論理に対する機能設定のためのコンフィグレーション情報を生成し、また、これを設定する負担を軽減することができる。
【０２１７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０２１８】
図２の機能再構成メモリ８はＳＲＡＭで構成した例を説明したが、例えばＭＲＡＭで構成しても良い。ＭＲＡＭは高速の読出し／書込動作が可能とされる不揮発性メモリである。既知の他の不揮発性メモリであるＦｌａｓｈメモリや相変化メモリ等で構成することも可能である。ＭＲＡＭとＦｌａｓｈメモリとを比較すると読出し／書込動作ともにＭＲＡＭが高速であり、Ｆｌａｓｈメモリの持つ書換え回数の制限がないという利点がある。相変化メモリと比較すると、読出し／書込動作速度はほぼ同等であるが、相変化メモリに比べて熱耐性が高いという利点がある。一方でＭＲＡＭは磁気記憶方式であることから、耐磁性が相変化メモリに比べて低い。使用環境に応じて機能再構成メモリ８を構成するメモリを選択すればよい。
【０２１９】
機能再構成メモリ８を不揮発性メモリで構成することで、一旦構成した論理機能は電源が遮断されたとしても維持されるとの利点を得ることができ、またＲＯＭ３に格納しているプログラムを機能再構成メモリ８のランダムアクセス可能な内部メモリ（ＩＴＮＲ＿ＲＡＭ）の一部空間に格納することができる。ＭＲＡＭや相変化メモリで構成することで中央処理装置のワーク領域としてのＲＡＭ４に代えて、ランダムアクセス可能な内部メモリ（ＩＴＮＲ＿ＲＡＭ）の他の空間を用いることも可能となる。
【０２２０】
また、等価的メモリマップドＩＯレジスタアクセスは一例であり、そのためのＬＯＧＥ＿ｊ等のイネーブル信号や、等価的メモリマップドＩＯレジスタの種類は適宜変更可能である。また、システムバスと周辺バスを分けるアーキテクチャを採用しない場合には機能再構成セルに対するランダムアクセス経路と等価的メモリマップドＩＯレジスタアクセスの経路を分離しなくてもよい。マトリクス配置された機能再構成セルとバスの接続形態として、Ｘ，Ｙ方向にバスを配置し、Ｘ，Ｙのそれぞれの方向からアドレシングしてバスに接続する接続形態を採用してもよい。機能再構成セルによって実現される周辺機能は上記に限定されず適宜変更可能である。また、ＣＰＵに対する所謂周辺機能に限定されない。アクセラレータのようにＣＰＵの負担を軽減する演算機能等を割り当てることも可能である。機能再構成メモリと一緒に半導体装置に搭載される回路は図２に限定されず、半導体集積回路の機能や用途に応じて適宜変更可能である。半導体装置はシングルチップに限定されず、マルチチップをモジュール基板に搭載して封止したシステム・イン・パッケージのような半導体装置にも適用することができる。クロック発生制御、クロックイネーブル制御が付加された機能再構成セルはＰＷＭやカウンタ以外の種々の回路機能の実現に広く適用することができる。
【０２２１】
本発明は可変論理モジュールを備えた半導体データ処理装置等の半導体装置に広く適用することができる。
【図面の簡単な説明】
【０２２２】
【図１】図１は機能再構成セルの一例を示すブロック図である。
【図２】図２は本発明の一例に係るデータプロセッサを全体的に示すブロック図である。
【図３】図３は複数の機能再構成セルのアレイ構成を例示するブロック図である。
【図４】図４は機能再構成メモリの全体的な構成を例示するブロック図である。
【図５】図５は図４とは異なる演算回を有する機能再構成メモリの全体的な構成を例示するブロック図である。
【図６】図６は機能再構成セルと経路選択回路のアドレスマッピングを例示するアドレスマップである。
【図７】図７は機能再構成セルにおける論理動作の基本概念を示す説明図である。
【図８】図８は図７の内部シーケンスを例示するフローチャートである。
【図９】図９は機能再構成セルでリロード型ダウンカウンタを構成する場合の例が示すブロック図である。
【図１０】図１０は２個の機能再構成セルでリロード型ダウンカウンタを構成する場合の例を示すブロック図である。
【図１１】図１１は図９の（Ａ）の構成で３ビットカウンタを構成する場合の例を示すデータ例である。
【図１２】図１２は図１１による３ビットカウンタ動作の動作シーケンスを例示するフローチャートである。
【図１３】図１３は図７の論理動作基本概念図に対応する具体的な動作例を示す動作説明図である。
【図１４】図１４は３ビットカウンタを夫々構成する機能再構成セルを接続選択回路で接続して６ビットカウンタを構成する例を示すブロック図である。
【図１５】図１５はＣＰＵによる機能再構成メモリのアクセス形態を例示する説明図である。
【図１６】図１６は図５の演算回路の全体の構成を概略的に示す図である。
【図１７】図１７は図５の演算回路に使用可能なメモリセルの断面構造を概略的に示す図である。
【図１８】図１８は図１７に示すメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの電気的等価回路を示す図である。
【図１９】図１９は可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。
【図２０】図２０は図５の演算回路のメモリセルのアレイ内配置を概略的に示す図である。
【図２１】図２１はメモリセルＭＣＩの記憶データの組み合わせを一覧にして示す図である。
【図２２】図２２はデータ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。
【図２３】図２３は図５の演算回路におけるセンスアンプの出力信号とメモリセルＭＣＩの記憶状態との対応を一覧にして示す図である。
【図２４】図２４はメモリセルＭＣＩおよびＭＣＪの記憶データの組み合わせを一覧にして示す図である。
【図２５】図２５はデータ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。
【図２６】図２６はデータ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。
【図２７】図２７は図５の演算回路におけるセンスアンプの出力信号とメモリセルＭＣＩおよびＭＣＪの記憶状態との対応を一覧にして示す図である。
【図２８】図２８は図５の演算回路に係る電流検出型センスアンプの構成の一例を示す図である。
【図２９】図２９はメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶データの組み合わせを一覧にして示す図である。
【図３０】図３０はデータ読出時におけるビット線ＢＬおよびＺＢＬを流れる電流に応じた読出電位の関係を示す図である。
【図３１】図３１は図５の演算回路におけるセンスアンプの出力信号とメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの記憶状態との対応を一覧にして示す図である。
【図３２】図３２は図５の演算回路を用いて行なうＬＵＴ演算を例示する図である。
【符号の説明】
【０２２３】
１  データプロセッサ
２  中央処理装置（ＣＰＵ）
４  ランダム・アクセス・メモリ（ＲＡＭ）
５  ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）
ＳＢＵＳ  システムバス（第１バス）
６  バス・ステート・コントローラ（ＢＳＣ）
ＰＢＵＳ  周辺バス(第２バス)
８  機能再構成メモリ（ＲＣＦＧＭ）
１６  割込みコントローラ（ＩＮＴＣ）
２０  機能再構成セル（ＡＣＭＵ）
２１  インタフェース制御回路（ＩＦＣＮＴ）
２３  記憶回路（ＭＲＹ）
２４  制御回路（ＭＣＯＮＴ）
２５  スタティック・ランダム・アクセスメモリ（ＳＲＡＭ）
２６  アドレスラッチ回路（ＡＤＲＬＡＴ）
２７  メモリアレイ２７
２８  アドレスデコーダ（ＳＤＥＣ）
２９  タイミングコントローラ（ＴＭＣＮＴ）
２７＿Ｄ  データフィールド（ＤＦＬＤ）
２７＿Ｃ  制御フィールド（ＣＦＬＤ）
３０  セレクタ（ＡＤＲＳＬ）
３１  アドレスインクリメンタ（ＩＣＲＭ）
３２  アクセス制御デコーダ（ＡＣＤＥＣ）
ＤＡＴ＿Ｃ  制御情報
ＥＸＥＶＴ  外部イベント信号
ＲＤＭＡＥ＿ｊ  ランダムアクセス選択信号
ＩＯＡＥ＿ｊ  ＩＯアクセス選択信号
ＲＷ＿ｊ  リード／ライト信号
ＬＯＧＥ＿ｊ  ロジックイネーブル信号
３５  接続経路選択回路
ＩＢＵＳ＿ｉ  内部バス
ＩＡＢＵＳ＿ｉ  内部アドレスバス
ＩＤＢＵＳ＿ｉ  内部データバス
３６  スイッチ回路
３７  接続用記憶回路
４０  バスインタフェース回路（ＢＵＳＩＦ）
４１  アドレスデコーダ（ＡＤＥＣ）
４２  内部バス選択回路（ＩＢＳＬ）
ＡＡ１  第１のアドレス範囲
ＡＡ２  第２のアドレス範囲
ＡＡ３  第３のアドレス範囲
５０（５０＿１，５０＿２）  演算回路
５１  演算制御部
５２  演算ロジック部
５３  メモリ部
５４  演算制御部
５５  演算ロック部
【図１】
2010124373.tif 000003
【図２】
2010124373.tif 000004
【図３】
2010124373.tif 000005
【図４】
2010124373.tif 000006
【図５】
2010124373.tif 000007
【図６】
2010124373.tif 000008
【図７】
2010124373.tif 000009
【図８】
2010124373.tif 000010
【図９】
2010124373.tif 000011
【図１０】
2010124373.tif 000012
【図１１】
2010124373.tif 000013
【図１２】
2010124373.tif 000014
【図１３】
2010124373.tif 000015
【図１４】
2010124373.tif 000016
【図１５】
2010124373.tif 000017
【図１６】
2010124373.tif 000018
【図１７】
2010124373.tif 000019
【図１８】
2010124373.tif 000020
【図１９】
2010124373.tif 000021
【図２０】
2010124373.tif 000022
【図２１】
2010124373.tif 000023
【図２２】
2010124373.tif 000024
【図２３】
2010124373.tif 000025
【図２４】
2010124373.tif 000026
【図２５】
2010124373.tif 000027
【図２６】
2010124373.tif 000028
【図２７】
2010124373.tif 000029
【図２８】
2010124373.tif 000030
【図２９】
2010124373.tif 000031
【図３０】
2010124373.tif 000032
【図３１】
2010124373.tif 000033
【図３２】
2010124373.tif 000034