半導体装置
【課題】可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、可変論理に対する機能設定の負担を部分的に軽減する。
【解決手段】可変論理機能を実現するために記憶回路と制御回路を有する機能再構成セルを複数個備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。更に演算回路を備え、演算回路は、記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【解決手段】可変論理機能を実現するために記憶回路と制御回路を有する機能再構成セルを複数個備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。更に演算回路を備え、演算回路は、記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は記憶回路を用いて可変可能に論理機能を実現することができる半導体装置に関し、例えばプログラマブルに周辺機能を実現することができる可変論理モジュールを備えた半導体データ処理装置に適用して有効な技術に関する。
【背景技術】
【0002】
可変論理モジュール若しくは可変論理デバイス(リコンフィギュラブルデバイス)としてPLD(プログラマブル・ロジック・デバイス)若しくはFPLD(フィールドPLD)が既に利用されている。代表的なPLDとしてはFPGA(フィールド・プログラマブル・ゲート・アレイ)などのプログラマブル・デバイスがある。FPGAはルックアップ・テーブルを基本にしてそれにフリップフロップを併せ持たせたCLB(コンフィギャラブル・ロジック・ブロック)をMOSスイッチでプログラマブルに接続させて大規模ロジックを構成するものである。FPGAは基本的に書き換え可能な論理回路と可変スイッチ回路を持たせた素子である。特許文献1にはFPGAについて記載がある。FPGAの基本である論理回路は例えば4入力のLUT(ルック・アップ・テーブル)で構成され、最終段にF/F(フリップ・フロップ)を有し、それを2段2層の論理構造で持っている。これをCLBと呼んでいる。例えば、1メガ(M)ゲート相当でプログラマブルに論理を構成するためには1キロ(k)以上のCLBを集合させ、このCLBの論理情報をSRAM(スタティック・ランダム・アクセス・メモリ)に持たせて書き換え可能にしている。これらのCLBはお互いの接続をプログラマブルにする為にスイッチマトリックスを有している。そのスイッチは方向性を持たせる為に、6MOSのスイッチMOSで構成され、このスイッチMOSのオン/オフ制御情報もSRAMに持たせているので、1Mゲート相当に対して1.7Mビット程度の情報量が必要である。また、特許文献2にはメモリに所定の真理値データを格納させることによって任意の論理を構成可能な複数の可変論理回路をマトリクス状に配置し、それらをX、Y方向の配線に可変スイッチ回路で可変可能に接続するようにした半導体装置について記載がある。
【0003】
【特許文献1】特開平04−242825号公報
【特許文献2】特開2003−149300号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記FPGAに代表されるように多数のCLBをスイッチマトリクスを用いて接続することによって可変論理モジュールを構成する場合には、必要な論理規模の増大にしたがってCLBの数やスイッチマトリクスのスイッチ素子が多くなり、実装面積の改善に限界のあることが本発明者によって見出された。すなわち、複雑な論理やシーケンスをプログラムする場合には必要な論理規模に比例して多数のスイッチマトリクスを用いて多数のCLBの接続を設定しなければならない。SRAMに論理構成用の真理値データを格納するとき、SRAMからリードした真理値データを単に論理構成のためのスタティックな情報としてしか利用しない場合には、必要な論理規模に比例してSRAMの記憶容量を増大しなければならない。また、従来技術においては、可変論理モジュールの論理構成をダイナミックに書き換えること、そして、周辺回路のような実回路に可変論理モジュールを適用することについて何ら着眼されていない。
【0005】
本発明の目的は、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【0006】
本発明の別の目的は、小さなチップ占有面積で可変論理機能を実現可能であって、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【0007】
本発明の更に別の目的は、論理機能をダイナミックに再構成することが容易であって、一部の再構成にかかる負担を軽減することができる半導体装置を提供することにある。
【0008】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【0010】
本発明に係る半導体装置は、可変論理機能を実現するためにそれぞれ記憶回路と制御回路を有する複数の機能再構成セルと、演算回路を備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。例えば前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。前記機能再構成セルはアクセス要求主体からのアクセス要求に応答するインタフェース制御回路の制御を受ける。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0011】
上記より、真理値データを格納する記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【0012】
また、前記記憶回路に対するランダムアクセス用のアドレスマッピングに対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレスマップを個別化する。これにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。特に、機能再構成セルに周辺機能が設定される場合、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を考慮する場合には、アクセス要求主体からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路と、機能設定された機能再構成セルへのアクセス経路とを分離すればよい。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0014】
すなわち、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる。
【発明を実施するための最良の形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕本発明の代表的な実施の形態に係る半導体装置は、記憶回路(23)と制御回路(24)を有する複数の機能再構成セル(20)と、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路(40,41,42)と、演算回路(50_1,50_2)とを備える。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールド(DFLD)と制御フィールド(CFLD)を有する。前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能である。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0017】
上記より、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【0018】
〔2〕項1の半導体装置において、例えば前記制御回路は前記次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する。
【0019】
〔3〕項2の半導体装置において、前記演算回路(50_1)は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部(52)と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部(51)とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0020】
〔4〕項2の半導体装置において、前記演算回路(50_2)は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部(53)と、メモリ部から読み出されたデータを演算する演算ロジック部(55)と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部(54)とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0021】
〔5〕本発明の別の実施の形態に係る半導体装置は、上記同様の複数の機能再構成セル、インタフェース制御回路、及び演算回路を有し、特に、前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。この構成においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項1と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【0022】
〔6〕項5の半導体装置は、一つの具体的な形態として、前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタ(30、32)を有する。
【0023】
〔7〕項6の半導体装置において、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である。
【0024】
〔8〕項7の半導体装置において、前記制御回路は前記アドレス演算を行うアドレス演算器(31)を有し、アドレス演算器の出力は前記セレクタの入力に接続され、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される。
【0025】
〔9〕項8の半導体装置において、前記複数個の機能再構成セルの記憶回路は、半導体装置のメモリ空間に割り当てられたアドレス範囲とIO空間に割り当てられたアドレス範囲との両方にアドレスがマッピングされる。前記インタフェース制御回路は、メモリ空間に割り当てられた第1のアドレス範囲(AA1)に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第1のアドレス範囲のアドレスを指定するメモリアクセスによって記憶回路に書き込みを行って機能再構成セルの論理構成を定義することができる。
【0026】
〔10〕項9の半導体装置において、前記インタフェース制御回路は、IO空間に割り当てられた第2のアドレス範囲(AA2)に対するライトアクセス要求に応答して当該アドレスの制御回路での処理に必要な情報を書き込むことが出来る。同様にリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す。これにより、アクセス要求主体は論理機能が設定された機能再構成セルによる論理動作に必要な情報を第2のアドレス範囲のアドレスを指定するライトアクセスによって供給し、論理動作の結果を第2のアドレス範囲のアドレスを指定するリードアクセスによって任意に取得することができる。
【0027】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【0028】
〔11〕項10の半導体装置は、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路(35)を更に有する。複数の機能再構成セルを直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。
【0029】
〔12〕項11の半導体装置において、前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路(36)と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路(37)とを有する。複数の機能再構成セル間でそれぞれの自律制御を連関させることが可能になる。
【0030】
〔13〕項12の半導体装置において、前記接続用記憶回路にはメモリ空間に割り当てられた第3のアドレス範囲(AA3)がマッピングされる。このとき、前記インタフェース制御回路は、第3のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第3のアドレス範囲のアドレスを指定するランダムアクセスにより接続用記憶回路に書き込みを行って機能再構成セル間の接続を任意に定義することができる。
【0031】
〔14〕項5の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0032】
〔15〕項5の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0033】
〔16〕本発明の更に別の実施の形態に係る半導体装置は、アクセス要求主体となり得るロジック回路(2,5)と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリ(8)とを有する。ロジック回路は例えば中央処理装置とされる。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを備える。前記記憶回路は半導体装置のアドレス空間のうち、メモリ空間にマッピングされたアドレス範囲とIO空間にマッピングされたアドレス範囲とがマッピングされる。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0034】
この半導体装置においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項1と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【0035】
〔17〕項16の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0036】
〔18〕項16の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0037】
〔19〕本発明の更に別の実施の形態に係る半導体装置は、中央処理装置と、前記中央処理装置が接続される第1内部バスと、前記第1内部バスにバスステートコントローラを介して接続される第2内部バスと、前記第1内部バス及び第2内部バスに接続される機能再構成メモリとを備える。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路を有する。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0038】
〔20〕項19の半導体装置において、前記複数個の機能再構成セルの記憶回路には半導体装置のメモリ空間において第1のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第1バスからの第1のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする。これにより、前記中央処理装置は前記機能再構成セルの記憶回路を前記第1バスを介して接続されるメモリ装置(例えばSRAMアレイ)としてアクセス可能となり、前記第1バスを介して機能再構成メモリにライトアクセスを要求して第1のアドレス範囲のアドレスと書き込むべきデータを出力することで、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を設定することができる。前記第1バスはアドレス専用のバス配線とデータ専用のバス配線とが物理的に分離して存在するものであっても、同一のバス配線を時分割に用い分けるものであっても良い。
【0039】
〔21〕項20の半導体装置において、前記複数個の機能再構成セルには半導体装置のIO空間において第2のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第2バスからの第2のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する。これにより、前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードすることができる。
【0040】
前記第2のアドレス範囲にマッピングされた前記複数個の機能再構成セルには、前記中央処理装置は前記第2バスを介して接続されるIO装置としてアクセス可能とされる。
【0041】
〔22〕項21の半導体装置において、前記接続用記憶回路には半導体装置のメモリ空間に第3のアドレス範囲のアドレスがマッピングされる。前記インタフェース制御回路は、前記第1バスからの第3のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする。
【0042】
〔23〕項22の半導体装置は、前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第3のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定することができる。
【0043】
〔24〕項23の半導体装置において、前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第1のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する。
【0044】
〔25〕項24の半導体装置において、前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする。
【0045】
上述のように、前記記憶回路と接続用記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲と第3のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セル及び接続選択回路に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。さらに、中央処理装置からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路(第1バス)と、機能設定された機能再構成セルへのアクセス経路(第2バス)とが分離されるから、機能再構成セルに周辺機能を設定して利用する場合には、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【0046】
〔26〕項19の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0047】
〔27〕項19の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0048】
〔28〕 項1、項5、項16、又は項19記載の半導体装置において、前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶回路に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。
【0049】
〔29〕項29の半導体装置において、前記所定の指示は、先に前記制御フィールドから読み出された情報を用いて前記制御フィールド及びデータフィールドの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【0050】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0051】
図2には本発明の一例に係るデータプロセッサ1が例示される。同図に示されるデータプロセッサは、特に制限されないが、相補型MOS集積回路製造技術により単結晶シリコンのような1個の半導体基板に形成されている。
【0052】
データプロセッサ1はプログラムに従って命令をフェッチして実行する中央処理装置(CPU)2、CPU2が実行するプログラム等が格納されたリード・オンリ・メモリ(ROM)3、CPU2のワーク領域等に用いられるランダム・アクセス・メモリ(RAM)4、及びCPU2による初期設定に従ってデータ転送を制御するダイレクト・メモリ・アクセス・コントローラ(DMAC)5を有し、それらはシステムバス(第1バス)SBUSに接続される。システムバスSBUSはバスステートコントローラ(BSC)6を介して周辺バス(第2バス)PBUSに接続する。システムバスSBUSはCPU2の動作周波数に同期してデータ、アドレス及びバスコマンド等が伝送される高速バスとして位置付けられる。これに対して、周辺バスPBUSは動作速度の遅い周辺回路が接続され、データ等が低速で伝送される。CPU2等が周辺回路に対するアクセス要求を発行すると、BSC6はそのアクセス要求に係る周辺回路のマッピングアドレスに応じて、周辺バスを介するアクセスに必要なバスサイクル数や並列データビット数等のバス制御を行う。
【0053】
前記システムバスSBUSと周辺バスPBUSの双方には機能再構成メモリ(RCFGM)8が接続される。機能再構成メモリ8はCPU2等によりシステムバスSBUSから書き込まれた論理機能設定情報(コンフィグレーション情報)に従って可変可能に論理機能が設定され、設定された論理機能に対して周辺バスPBUS経由でデータの入出力が可能にされる。
【0054】
周辺バスPBUSに接続された周辺回路として、ディジタル信号をアナログ信号に変換して外部に出力するディジタル・アナログ・コンバータ(DAC)10、CPU2の命令実行状態等を監視するウォッチドッグタイマ(WDT)11、インプットキャプチャ及びコンペアマッチ等のタイマ・カウンタ動作可能なタイマ(TMR)12、シリアルコミュニケーションインタフェースコントローラ(SCI)13、パルス幅変調回路(PWM)15、及び割込みコントローラ(INTC)16が例示される。同図には割込み信号としてINTa,INTbが代表的に示され、割込みコントローラ16は割込み信号に対する割り込みマスク制御や優先レベル制御を行って割込み信号を受け付け、受け付けた割込み信号に応ずるベクタを発行すると共に、CPU2に割込み要求信号IRQを発行し、前記ベクタが示す割込み処理プログラムをCPU2に実行させる。周辺回路として、その他に図示を省略するIOポート等が設けられている。
【0055】
機能再構成メモリ8は複数の機能再構成セル(ACMU)20、及び外部からのアクセス要求に応答して前記機能再構成セル20を制御するインタフェース制御回路(IFCNT)21、演算回路(ARTMT)50(50_1,50_2)等を備える。機能再構成セル20はCPU2等によりシステムバスSBUSから書き込まれたコンフィグレーション情報に従って可変可能に論理機能が設定される。図2において複数の機能再構成セル20の一部には、FIFOバッファ(FIFO_B)、16ビットパルス幅変調回路(PWM_16b)、8ビットパルス幅変調回路(PWM_8b)、シリアル送信ユニット(SCI_Tx)、シリアル受信ユニット(SCI_Rx)、及び24ビットタイマ(TMR_24b)の論理機能が設定されている。残りの機能再構成セル20はシステムバスSBUSを介してランダムアクセス可能な内部メモリ(ITNR_RAM)として利用可能にされる。設定された論理動作に用いるデータの書込み、論理動作の開始の指示、及び論理動作結果のデータリードは周辺バスPBUS経由で行われる。演算回路50は、演算機能がハードウェアによってある程度限定され、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに、可変論理に対する機能設定の負担を部分的に軽減している。
【0056】
図1には機能再構成セル20の一例が示される。機能再構成セル20は記憶回路(MRY)23と制御回路(MCNT)24を有する。記憶回路23は例えばシングルポートのスタティック・ランダム・アクセスメモリ(SRAM)25と、アドレスラッチ回路(ADRLAT)26によって構成される。SRAM25はメモリアレイ27、アドレスデコーダ(SDEC)28、及びタイミングコントローラ(TMCNT)29を備える。メモリアレイ27はアドレスラッチ回路26から供給されるアドレス信号によってアクセスされるデータフィールド(DFLD)27_Dと制御フィールド(CFLD)27_Cを有する。アドレスデコーダ(SDEC)28はアドレスラッチ回路(ADRLAT)26から出力されるアドレス信号をデコードして、データフィールド(DFLD)27_D及び制御フィールド(CFLD)27_Cの夫々からアクセス単位のメモリセルを選択する。タイミングコントローラ(TMCNT)29は選択されたアクセス単位のメモリセルに対してリード・ライト信号RW_j(j=0〜m)で指示されたリード動作又はライト動作を制御する。
【0057】
制御回路24はアドレスラッチ回路26にアドレス信号を供給するセレクタ(ADRSL)30、アドレスラッチ回路26がラッチしたアドレス信号を+1づつインクリメントするアドレスインクリメンタ(ICRM)31、及びアクセス制御デコーダ(ACDEC)32を有する。セレクタ30には、データフィールド27_Dから読み出された情報DAT_D、アドレスインクリメンタ31の出力、及びバスSBUS,PBUSから供給されたアクセスアドレス情報の一部のアドレス情報ADR_EXTが入力される。アクセス制御デコーダ32には制御フィールド27_Cから読み出された制御情報DAT_C、外部イベント信号EXEVT、当該機能再構成セル20に対するランダムアクセス選択信号RDMAE_j、ロジックイネーブル信号LOGE_j、及びIOアクセス選択信号IOAE_jが供給され、それに基づいてセレクタ30の出力動作等を制御する。メモリアレイ27には図示しないアドレスフィールド(AFLD)とアドレスフィールドの出力をセレクタ30への入力とするパス(DAT_A)を更に有し、メモリアレイ27にアクセスしアドレスフィールドからの出力をアクセス制御デコーダによりメモリアレイ27の次のアクセスアドレスとすることも可能である。
【0058】
ランダムアクセス選択信号RDMAE_jがアクティブにされたときアクセス制御デコーダ32はセレクタ30にアドレス情報ADR_EXTを選択させ、そのアドレス情報ADR_EXTに従ってタイミングコントローラ29にリード/ライト信号RW_jに従ったアクセス動作を指示する。これによってSRAM25はアドレス情報ADR_EXTで指定されるアドレスに対してランダムアクセス可能になる。
【0059】
IOアクセス選択信号IOAE_jがアクティブにされ、リード/ライト信号RW_jによりリード動作が指示されたとき、アクセス制御デコーダ32はそのときのアドレスラッチ回路26のアドレスラッチ状態を維持したままそのラッチアドレス情報に従ってタイミングコントローラ29にリードアクセス動作を指示する。これにより、機能再構成セル20のIOアクセス選択信号IOAE_jがアクティブにされると、そのときSRAM25で選択されている記憶領域に対してアクセス可能になり、SRAM25に対して一つのメモリマップドIOデータレジスタに対する読出しと等価なアクセス動作が可能になる。また、IOアクセス選択信号IOAE_jがアクティブにされ、リード・ライト信号RW_jによりライト動作が指示されたとき、アクセス制御デコーダ32はアドレス情報ADR_EXTをアドレスセレクタ30に選択させ、そのアドレス情報ADR_EXTをアドレスラッチ26にセットして、SRAM25に対する読出しアドレスを初期設定することができる。このように、IOアクセス選択信号IOAE_jがイネーブルにされたとき書込み対象とされるアドレスラッチ回路26は書込み対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをスタートアドレス設定用等価IOレジスタと称する。また、IOアクセス選択信号IOAE_jがイネーブルにされたとき読出し対象とされるSRAMのメモリ領域は読出し対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをデータリード用等価IOレジスタと称する。
【0060】
ロジックイネーブル信号LOGE_jがアクティブにされたとき、アクセス制御デコーダ32はそのときアドレスラッチ26が保持しているアドレスをスタートアドレスとして、そのアクティブ期間にSRAM25のメモリリードサイクルを繰り返し起動し、サイクル毎に、制御フィールド27_Cから読み出される制御情報DAT_Cに従ってセレクタ30の選択動作を制御する。外部イベント信号EXEVTがイネーブルにされたとき、アクセス制御デコーダ32は当該メモリリードサイクルにおいてアドレスセレクタ30に特定のアドレス(例えばSRAM25の先頭アドレス)を出力させる。ロジックイネーブル信号LOGE_jがイネーブルにされたときスタートアドレスを保持するアドレスラッチ26はロジック動作の開始を指示するイネーブルビットの書込み対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをロジックイネーブル用等価IOレジスタと称する。
【0061】
この機能再構成セル20によれば、記憶回路23の読み出しを機能再構成セル20それ自体で自律的に制御することができる。例えば、前記制御回路24はSRAM25の次の読出しアドレスを先にSRAM25から読出した制御フィールドCFLDの情報DAT_Cやアクセス制御デコーダ32に供給される外部イベント信号EXEVTの入力に基づいて自律的に制御することが可能である。これにより、可変論理機能を実現するための記憶回路23を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【0062】
また、機能再構成セル20の制御回路24は、外部からインタフェース制御回路21に与えられるロジックイネーブルのための指示に基づいて、前記記憶回路23のメモリアレイ27に対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶部に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。ロジックイネーブルのための指示は、先にメモリアレイ27から読み出した制御フィールド27_Cの情報を用いて前記メモリアレイの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【0063】
図3には複数の機能再構成セル20のアレイ構成が例示される。複数の機能再構成セル20はマトリクス配置され、左右に隣接する機能再構成セル20の間には接続経路選択回路(RSW)35が配置される。機能再構成セル20及び接続経路選択回路35は行単位で内部バスIBUS_i(i=0,1,…)に接続される。内部バスIBUS_iはアドレスバスIABUS_iとデータバスIDBUS_iに大別される。内部アドレスバスIABUS_iは制御回路24に前記アドレスADR_EXTを供給する。内部データバスIDBUS_iは記憶回路23との間で情報DAT_C,DAT_Dを伝達するために用いられる。接続経路選択回路35は、機能再構成セル20のデータDAT_C,DAT_Dの伝達経路を上下又は左右に隣接する機能再構成セル20、もしくは対応行の内部データバスIDBUS_iの間で選択的に接続するスイッチ回路36と、前記スイッチ回路36のスイッチ制御情報を保持するための接続用記憶回路37とを有する。接続用記憶回路37は内部バスIABUS_i,IDBUS_iを介してランダムアクセスされることによってスイッチ回路36のための所要のスイッチ制御情報が設定される。記憶回路23に対するランダムアクセスが指示されたときは、接続用記憶回路37の設定内容にかかわらず、スイッチ回路36は、ランダムアクセス選択信号RDMAE_jにより、ランダムアクセス対象にされる記憶回路23を内部データバスIDBUS_iに接続するように制御される。
【0064】
一の機能再構成セル20のデータDAT_C,DAT_Dを他の機能再構成セル20のデータDAT_C,DAT_Dに伝達することが可能であるから、複数の機能再構成セル20間でそれぞれの前記自律制御を連動させることが可能になる。複数の機能再構成セル20を直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。具体例は後で詳述する。
【0065】
機能再構成セル20の記憶回路23には論理機能を定義するためのコンフィギュレーション情報がランダムアクセス設定され、接続経路選択回路35の接続用記憶回路37には接続経路を定義するためのコンフィグレーション情報がランダムアクセスによって設定される。論理機能が設定された機能再構成セル20に論理動作の開始が指示されると、その論理動作によって得られる情報は左右又は上下に配置された別の機能再構成セル20に接続経路選択回路35を介して伝達可能にされ、また、機能再構成セル20の論理動作による情報は前記メモリマップドIOレジスタに対する読出しと等価なアクセス動作により対応するバスIBUS_iを介して外部に読み出し可能にされる。
【0066】
図4には機能再構成メモリ8の全体的な構成が例示される。バスSBUS,PBUSからのアクセス要求に応答して、図3で説明した複数個の機能再構成セル20と接続経路選択回路35のアレイに対する制御を行うインタフェース制御回路として、バスインタフェース回路(BUSIF)40、アドレスデコーダ(ADEC)41、及び内部バス選択回路(IBSL)42を有する。
【0067】
前記複数個の機能再構成セル20の記憶回路23のメモリエリア(SRAM25の記憶領域)には図6に例示されるように、第1のアドレス範囲AA1のアドレスがマッピングされる。第1のアドレス範囲AA1はシステムバスSBUSに接続するメモリ空間の一部のアドレス空間とされる。また、前記夫々の機能再構成セル20のための等価的なメモリマップドIOレジスタとして把握することができる前記スタートアドレス設定用等価IOレジスタ、データリード用等価IOレジスタ及びロジックイネーブル用等価IOレジスタには第2のアドレス範囲AA2のアドレスがマッピングされる。図6において1個の機能再構成セルにおけるSRAMのアドレスは256ワード分のアドレスとされ、1個の機能再構成セルにおける前記3個の等価的なメモリマップドIOレジスタのアドレスは3ワード分のアドレスとされる。第2のアドレス範囲AA2は周辺バスPBUSに接続される周辺回路のレジスタ等に割り当てられるメモリマップドIOアドレス空間の一部のアドレス空間とされる。前記接続用記憶回路37の記憶領域には第3のアドレス範囲AA3のアドレスがマッピングされる。第3のアドレス範囲AA3はシステムバスSBUS若しくは周辺バスPBUSに接続するメモリ空間の一部のアドレス空間とされる。
【0068】
バスステートコントローラ6は、第1又は第3のアドレス範囲AA1,AA3へのアクセス要求があったときデータプロセッサのアドレス空間中のメモリアドレス空間へのアクセスとしてアクセス制御を行い、第2のアドレス空間AA2へのアクセス要求があった時はデータプロセッサのアドレス空間中のIOアドレス空間へのアクセスとしてアクセス制御を行う。第1乃至第3のいずれのアドレス範囲へのアクセスであったとしても機能再構成メモリ8のバスインタフェース回路40がアクセスの受付をする。第1又は第3のアドレス範囲AA1,AA3へのアクセス要求があったときはバスインタフェース回路40はメモリウインドウイネーブル信号CMEをアクティブとし、第2のアドレス範囲AA2のアクセス要求があったときバスインタフェース回路40はロジックウインドウイネーブル信号CREをアクティブとする。アクセス要求に係るデータの方向はアクセス要求元から発行されるリード信号RD及びライト信号WTによって判別される。尚、メモリウインドウイネーブル信号CME及びロジックウインドウイネーブル信号CREは例えばアドレスデコーダ41に供給される。
【0069】
アドレスデコーダ41はアクセス要求に係るアドレス信号の上位側ビットをデコードして、アレイ状に配置された機能再構成セル20と接続経路選択回路35のうち何れの回路が指定されているかを判別する。接続経路選択回路35が指定されているときは当該回路の接続用記憶回路37をイネーブルとし、対応する内部バスIBUS_iをバス選択回路42に選択させてシステムバスSBUSに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路37をランダムアクセス可能にする。これにより、CPU2等は第3のアドレス範囲AA3のアドレスを指定するランダムアクセスにより接続用記憶回路37に書き込みを行って機能再構成セル20間の接続を任意に定義することができる。
【0070】
また、アドレスデコーダ41は、アドレスデコードにより、アドレス範囲AA1のアドレスにより機能再構成セル20が指定されていることを判別したときは、当該機能再構成セルに割り当てられたRDMAE_jをアクティブとし、対応する内部バスIBUS_iをバス選択回路42に選択させてシステムバスSBUSに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路37をランダムアクセス可能にする。これにより、CPU2等は第1のアドレス範囲AA1のアドレスを指定するランダムアクセスによって記憶回路23のSRAM25に書き込みを行って当該機能再構成セル20の論理構成を任意に定義することができる。
【0071】
アドレスデコーダ41は、アドレスデコードにより、アドレス範囲AA2のアドレスにより機能再構成セル20の前記等価的なメモリマップドIOレジスタが指定されていることを判別したときは、指定された等価的なメモリマップドIOレジスタに応じて、IOAE_j又はLOGE_jをアクティブとし、リード・ライト信号RW_jを生成する。
【0072】
即ち、そのとき、周辺バスPBUSから前記スタートアドレス設定用等価IOレジスタを指定してライト信号WTにより書き込み動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたIOAE_jをアクティブとする。更に、リード・ライト信号RW_jによってライト動作を指定する。これによって当該機能再構成セル20のADRSEL30を経由してADRLAT26に書き込みデータがセットされる。
【0073】
また、そのとき、周辺バスPBUSから前記ロジックイネーブル用等価IOレジスタを指定してリード信号RDにより読み出し動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたLOGE_jをアクティブとする。更に、リード・ライト信号RW_jによってリード動作を指定する。これによって当該機能再構成セル20のアクセス制御デコーダ32はそのときアドレスラッチ26が保持しているアドレスをスタートアドレスとしてそのアクティブ期間にSRAM25のメモリリードサイクルを繰り返し起動し、サイクル毎にデータフィールド27_Dから読み出されるデータ情報DAT_Dをセレクタに帰還させ、サイクル毎に、制御フィールド27_Cから読み出される制御情報DAT_Cに従ってセレクタ30の選択動作を制御して、論理動作を実現する。
【0074】
また、そのとき、周辺バスPBUSから前記データリード用等価IOレジスタを指定してリード信号RDにより読み出し動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたIOAE_jをアクティブとする。更に、バスインタフェース回路40はリード・ライト信号RW_jによってリード動作を指定する。これによって当該機能再構成セル20のADRLAT26が保持しているアドレス情報によって選択されるSRAM25の記憶領域からリードされる情報をバスインタフェース回路40が受け取って周辺バスPBUSにリードデータとして出力する。これにより、CPU2等は論理機能が設定された機能再構成セル20による論理動作の結果を第2のアドレス範囲AA2のアドレスを指定するリードアクセスによって任意に取得することができる。バスインタフェース回路40は論理動作の結果の一つとして論理動作完了のような要求を認識すると、割り込み信号を割り込みコントローラ16に供給することができる。これによる割り込みが与えられたCPU2は例えば前記データリード用等価IOレジスタに対するリード動作を指定することによって当該論理動作を終了した機能再構成セル20から論理動作の結果を取得する動作ルーチンに移行したりすることが可能になる。
【0075】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【0076】
機能再構成セル20における論理動作の基本概念が図7に示される。制御回路24は条件COND=1で外部アドレスADR_EXTであるアドレスYを記憶回路23のアクセスアドレスとし、条件COND=0の間は、制御情報DAT_Cで決まる内部シーケンスにしたがってデータ情報DAT_Dで指定されるアドレスによって記憶回路23をアクセスする。図8に例示されるように、内部シーケンスにしたがって処理Aを行っているとき、条件COND=0の間は内部シーケンスで規定されるデータ情報DAT_Dにより指定されるアドレスに応じて処理Bに分岐することが可能であり、また、条件COND=1の時に外部アドレスADR_EXTで指定される処理Cに分岐することも可能である。ここで、前記条件CONDは、前記CPU2などによる機能再構成メモリ8に対するアクセス形態によって決まる条件、更には、前記制御情報DAT_Cで決まる条件として把握すればよい。
【0077】
機能再構成セル20でリロード型ダウンカウンタを構成する場合の例が図9に示される。ここではTYPE、CFLAGは制御情報DAT_Cに含まれるものとする。図9の(B)には記憶回路23の保持情報が例示される。DataはデータフィールドDFLDの情報、addressはアドレスラッチ回路26に供給されるアドレス情報を意味する。例えば、CFLAG=1(COND=1)のとき外部アドレスADR_EXTとして“0110”が入力されると、これをアドレスとしてCFLAG=0、Data=“0101”が読み出され、読み出されたデータが次の読み出しアドレスとされ、以下同様の動作がCFLAG=1になるまで繰り返される。この間に出力されるデータ情報DAT_Dは“1010”から“0000”までのダウンカウント値とされる。COND=1のとき再度、カウント初期値をリロードしてダウンカウントを繰り返すことができる。図9の(C)には前記ダウンカウント動作におけるフローチャートが例示される。
【0078】
2個の機能再構成セル20でリロード型ダウンカウンタを構成する場合の例が図10に示される。下位バイトの出力データDAT_Dの全ビットがオール“0”になったとき、CFLAGを上位バイトの機能再構成セル20の制御回路に与えて上位バイトの動作を開始させる。上位バイトの出力データDAT_Dの全ビットがオール“0”になったときマルチバイトのダウンカウントが完了され、再度、下位バイトのカウント初期値をリロードすることによってマルチバイトのダウンカウントを再開することができる。
【0079】
図9の(A)の構成で3ビットカウンタを構成する場合の例を図11に示す。図11の(A)にはSRAMの記憶データが例示される。同図に示されるNext Address欄はアドレスラッチ回路26の値を意味する。最後に示された[Reg]はCFLAG=1によって外部から任意にアドレスが設定可能であることを意味する。図12には図11による3ビットカウンタ動作の動作シーケンスを例示する。ステップS11−1においてNにアドレスの初期値として“000”を設定し、ステップS11−2においてアドレス”000“のNext Addressフィールドに格納されている値”111“をNの値として設定し、ステップS11−3においてアドレス”111“のCFLAGフィールドに格納されている値”0“を判定する。以降、ステップS11−2とS11−3とをCFLAGフィールドの値が”1“になるまで繰り返す。この繰り返しの過程においてアドレスNのDataフィールドの値は値”111“から”000“までの1ダウンカウンタとして出力される。
【0080】
図6の論理動作基本概念図に対応する具体的な動作例が図13に示される。外部トリガとして、例えば前記スタートアドレス設定用等価IOレジスタの指定によって初期アドレス値として “111”がアドレスラッチ26に入力される(S1)。次いで、ロジックイネーブル用等価IOレジスタの指定によって、アドレスラッチ26のアドレス情報がSRAM25に供給開始されることにより論理動作が起動される(S2)。これにより、そのアドレスで指定されたデータフィールドDFLDからデータ情報DAT_Dとして“110”がセレクタ30に供給され(S3)、また、制御フィールドCFLDから制御情報DAT_Cとして情報“101”がアクセス制御デコーダ32に供給される(S4)。アクセス制御デコーダ32はその情報“101”をデコードし、S3により帰還された情報“110”を選択し(S5)、今度はこの情報“110”をアドレスとしてSRAM25のアクセスが行われる(S6)。以下同様に動作が繰り返されて所要の論理動作(3ビットダウンカウンタ動作)が行われる。CLKはSRAM25のメモリサイクル等を規定する、機能再構成セル20の動作基準クロック信号である。
【0081】
3ビットカウンタを夫々構成する機能再構成セル20を接続選択回路35で接続して6ビットカウンタを構成する例を図14に示す。本構成では夫々の機能再構成セルは3ビットアップカウンタ動作を行う例を示しており、データフィールドDFLDの設定値と外部から供給される初期アドレス値が図13の例と異なっている。機能再構成セル20_Lは下位3ビット、20_Uは上位3ビットを構成し、接続経路選択回路35は、下位3ビットを構成する機能再構成セル20_Lの制御フィールドCFLDの最下位ビットの反転値を、上位3ビットを構成する機能再構成セル20_Uのロジックイネーブル信号LOGE_jとして供給する。カウント動作を開始する前に機能再構成セル20_L、20_Uのアドレスラッチ回路26に初期アドレス値として“000”をセットし、その後、LOGE_iをアクティブとして機能再構成セル20_Lに下位3ビットのカウント動作を開始させる。下位3ビットの機能再構成セル20_Lによるアップカウントが終了して制御情報DAT_Cが“100”を出力する1サイクル期間だけLOGE_jをアクティブに変化させて、機能再構成セル20_Uに上位3ビットのカウント動作を行わせる。機能再構成セル20_Lの制御情報DAT_Cが“100”を出力した場合、20_Lのアドレス制御デコーダ32はセレクタ30に対して外部からの入力を選択してアドレスラッチ回路26にセットすることから、外部入力値としては“001”をセットしておけばよい。
【0082】
CPUによる機能再構成メモリ8のアクセス形態が図15に例示される。CPU2やDMAC5による機能再構成メモリ8に対するランダムアクセスは経路PAS_Sを用いて行われる。このアクセス動作は機能再構成セル20及び接続経路選択回路35に対して機能を設定するためのコンフィギュレーション情報の設定に用いられる。また、論理機能の設定に用いられなかった機能再構成セル20を内部RAM(ITNR_RAM)としてリード・ライトアクセスする場合である。また、CPU2やDMAC5による機能再構成メモリ8に対するメモリマップドIOレジスタアクセスは経路PAS_Pを用いて行われる。このアクセス動作は、例えば前記スタートアドレス設定用等価IOレジスタ、データリード用等かIOレジスタ、ロジックイネーブル用等価IOレジスタに対するアクセスに用いられる。ランダムアクセス用のアドレスマッピングとメモリマップドIOレジスタアクセス用のアドレスマッピングは相互に分離されている。
【0083】
以上の如く、機能再構成セル20及び接続経路選択回路35に所要のコンフィギュレーション情報を設定することにより、単数又は複数の機能再構成セル20を用いて所要の周辺機能を実現することができる。特に具体例は示していないが、この機能を用いることにより、単数又は複数の機能再構成セル20に、論理演算、算術演算、更には符号化/復号演算などの所要の演算機能を実現することも可能である。このとき、機能再構成メモリ8は、図2に例示されるように、演算機能がハードウェアによってある程度限定された演算回路50を備え、可変論理に対する演算機能設定の負担を軽減している。
【0084】
図4において、演算回路50_1は、単数又は複数の所定の機能再構成セル20_1,20_2のデータフィールド(DFLD)27_Dから出力される演算データを入力して演算を行う演算ロジック部52と、上記とは別の機能再構成セル20_3のデータフィールド(DFLD)27_Dから出力される演算制御データをデコードして前記演算ロジック部(ARTLGC)52の演算動作を制御する演算制御部(ARTCNT)51とを有する。例えば演算ロジック部52を算術論理演算器によって構成したとき、その論理動作や算術動作は前記演算制御データのデコード結果に従って制御される。演算回路50_1による演算データと演算動作に必要な演算制御データはランダムアクセスによって所要の機能再構成セル20の記憶回路23に予め書き込んでおけばよい。したがって、ALUのような演算回路50_1をコンフィギュレーション情報によっての機能記述することを要せず、所要の算術演算や論理演算を行うことができる。
【0085】
特に図示はしないが例えば演算動作は次の用に実行される。機能再構成セル20_1には、一方の演算データがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。機能再構成セル20_2には、他方の演算データがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。機能再構成セル20_3には、演算ロジック部52の演算制御のための制御コードがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。ランダムアクセスによって上記設定が行われた後、機能再構成セル20_1,20_2,20_3を同期的にロジックイネーブルにすることにより、機能再構成セル20_3から供給される演算制御データに従って、機能再構成セル20_1,20_2から供給される演算データが演算ロジック部52で演算される。演算結果は、ロジック部52内のデータレジスタに蓄積される。当該データレジスタには固有のIOアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するIOレジスタリードアクセスによって、内部バスIBUS_0を経由して外部に読出し可能にされる。
【0086】
図5には図4とは異なる演算回路50_2を採用した機能再構成メモリ8の全体的な構成が例示される。図5に示される演算回路50_2は、バスインタフェース回路40を介して外部からランダムアクセスされるメモリ部(ARTMRY)53と、メモリ部53から読み出されたデータを演算する演算ロジック部(ARTLGC)55と、所定の機能再構成セル20_4のデータフィールド(DFLD)27_Dから出力される演算制御データをデコードして前記メモリ部53の読出しと前記演算ロジック部55の演算動作を制御する演算制御部(ARTCNT)54とを有する。演算データは機能再構成メモリ8の外部からメモリ部53にランダムアクセスによって格納される。機能再構成セル20_4には、演算制御部54に与える演算制御データと、メモリ部53から演算データを読み出すためのメモリアドレスがランダムアクセスによって初期設定される。この後、機能再構成セル20_4がロジックイネーブルイにされることにより、機能再構成セル20_4から供給される演算制御データとメモリアドレスに従って、メモリ部53から供給される演算データが演算ロジック部55で演算される。演算結果は、ロジック部55内のデータレジスタに蓄積される。当該データレジスタには固有のIOアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するIOレジスタリードアクセスによって、内部バスIBUS_0を経由して外部に読出し可能にされる。その他の構成は図4と同じであり、その詳細な説明は省略する。図5の演算回路50_2の構成によれば、演算データの一時的な記憶には機能再構成セル20のとは別のメモリ部53を割当てることが可能になる。
【0087】
以下に、図5の演算回路50_2におけるメモリ部(ARTMRY)53及び演算ロジック部(ARTLGC)55の具体例を説明する。ここでは、メモリ部53及び演算ロジック部55をMRAMで構成する。
【0088】
図16には前記演算回路50_2の全体の構成が概略的に示される。演算回路50_2は、演算子セルアレイ100、行選択駆動回路120、メインアンプ回路140、データパス180、及び制御回路200を備える。演算子セルアレイ100は、複数の演算子セルサブアレイブロックOAR0−OAR31に分割される。演算子セルサブアレイブロックOAR0−OAR31の各々に対応して、複数のセンスアンプSAが設けられたセンスアンプ帯260が設けられる。行駆動回路120及び演算子セルサブアレイブロックOAR0−OAR31メモリ部53を構成する。センスアンプ帯260及びメインアンプ回路140は演算ロジック部55を構成する。制御回路200は演算制御部54を構成する。データパス180は内部バスIBUS_0に接続され、データ出力レジスタ、データ入力レジスタ等を備える。
【0089】
図17は、メモリ部53において用いられるメモリセルの断面構造を概略的に示す図である。以下では、演算子セルアレイ100において行列上に配置された複数のメモリセルのうち、i番目のメモリセル行<i>、j番目のメモリセル行<j>およびk番目のメモリセル行<k>の最大3つのメモリセル行が並行して選択される場合について説明する。そして、メモリセル行<i>、メモリセル行<j>およびメモリセル行<k>に対応するメモリセルMCI、MCJおよびMCKを代表的に図示する。これらのメモリセルMCI、MCJおよびMCKは、各々、1つのトランジスタおよび1つのMTJ素子で構成されるMRAMセルである。
【0090】
図17において、半導体基板領域SBS表面に、間をおいて、高濃度N型不純物領域2I,4I,2J,4J,2K,4Kが配置される。不純物領域2Iおよび4Iの間のチャネル形成領域3I上に、図示しないゲート絶縁膜を介してゲート電極5Iが形成される。同様、不純物領域2Jおよび4Jの間のチャネル形成領域3J上に、図示しないゲート絶縁膜を介してゲート電極5Jが形成される。また、不純物領域2Kおよび4Kの間のチャネル形成領域3K上に、図示しないゲート絶縁膜を介してゲート電極5Kが形成される。
【0091】
不純物領域2Iおよび4Iとゲート電極5Iとにより、メモリセルMCIのアクセストランジスタが形成される。ゲート電極5Iは、読出ワード線RWL<i>を構成する。メモリセルMCIにおいて、アクセストランジスタに対応してその上層に、可変抵抗素子として、可変磁気抵抗素子(MTJ素子)MTJIが設けられる。
【0092】
可変磁気抵抗素子MTJIは、磁化方向が固定される固定層FXLと、磁化方向が記憶データに応じて変更される自由層FRLと、これらの固定層FXLおよび自由層FRLの間のトンネルバリア層TBLとを有する。自由層FRLは、上部電極UELRを介してビット線BLに結合される。固定層FXLは、局所配線LIIに、図示しない下部電極を介して接続される。局所配線LIIは、プラグ6Iおよび7Iと中間層配線8Iとにより、不純物領域2Iに電気的に結合される。可変磁気抵抗素子MTJI下部において、中間層配線8Iと同一配線層に、導電線9Iが配置される。この導電線9Iは、書込ワード線WWL<i>を構成する。
【0093】
メモリセルMCJにおいては、不純物領域2Jおよび4Jとゲート電極5Jとにより、アクセストランジスタが形成される。ゲート電極5Jは、別の読出ワード線RWL<j>を構成する。
【0094】
このメモリセルMCJのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJJが設けられる。この可変磁気抵抗素子MTJJは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJJは、局所配線LIJ、プラグ6Jおよび7J、ならびに中間層配線8Jを介して不純物領域2Jに電気的に結合される。
【0095】
可変磁気抵抗素子MTJJの下部において、中間層配線8Jと同一配線層に、導電線9Jが配置される。導電線9Jは、別の書込ワード線WWL<j>を構成する。
【0096】
また、メモリセルMCKにおいては、不純物領域2Kおよび4Kとゲート電極5Kとにより、アクセストランジスタが形成される。ゲート電極5Kは、別の読出ワード線RWL<k>を構成する。
【0097】
このメモリセルMCKのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJKが設けられる。この可変磁気抵抗素子MTJKは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJKは、局所配線LIK、プラグ6Kおよび7K、ならびに中間層配線8Kを介して不純物領域2Kに電気的に結合される。
【0098】
可変磁気抵抗素子MTJKの下部において、中間層配線8Kと同一配線層に、導電線9Kが配置される。導電線9Kは、別の書込ワード線WWL<k>を構成する。
【0099】
図18は、図17に示すメモリセルMCI、MCJおよびMCKの電気的等価回路を示す図である。図18において、メモリセルMCIは、ビット線BLとソース線SLIの間に直列に接続されるアクセストランジスタATIおよび可変磁気抵抗素子MTJIを含む。メモリセルMCJは、ビット線BLとソース線SLJの間に直列に接続される可変磁気抵抗素子MTJJおよびアクセストランジスタATJを含む。メモリセルMCKは、ビット線BLとソース線SLKの間に直列に接続される可変磁気抵抗素子MTJKおよびアクセストランジスタATKを含む。図18においては、ソース線SLI、SLJおよびSLKは、ビット線BLと直交する方向に配設されるように示すが、これらのソース線SLI、SLJおよびSLKは、ビット線BLと並行に配設されてもよい。ソース線SLI、SLJおよびSLKは、接地ノードに結合される。
【0100】
アクセストランジスタATI、ATJおよびATKは、それぞれ、読出ワード線RWL<i>、RWL<j>およびRWL<k>の電位に応答して選択的にオンする。書込ワード線WWL<i>、WWL<j>およびWWL<k>は、それぞれ可変磁気抵抗素子MTJI、MTJJおよびMTJKと物理的に分離されかつ磁気的に結合される。
【0101】
ビット線BL、書込ワード線WWL<i>、WWL<j>およびWWL<k>を流れる電流が誘起する磁界により、可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層FRLの磁化方向が設定される。
【0102】
図19は、可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。図19においては、磁化方向を矢印で示す。
【0103】
図19(A)に示すように、固定層FXLおよび自由層FRLの磁化方向が異なる場合(反平行の場合)、磁気抵抗効果により、可変磁気抵抗素子を通して流れる電流に対する電気的抵抗が高くなる。このとき、この可変磁気抵抗素子は、電流に対して高抵抗状態となり、抵抗値Rmaxを有する。
【0104】
一方、図19(B)に示すように、固定層FXLと自由層FRLの磁化方向が一致するとき、すなわち平行 なときには、この可変磁気抵抗素子は、電流に対して低抵抗状態となり、抵抗値Rminを有する。
【0105】
アクセストランジスタAT(ATI,ATJ,ATK)がオン状態のとき、ビット線BLおよびソース線SL(SLI,SLJ)を流れる電流量は、可変磁気抵抗素子MTJ(MTJI,MTJJ,MTJK)の抵抗値に従って異なる。この電流量を、図示しないセンスアンプで検知することにより、このメモリセルMC(MCI,MCJ,MCK)の記憶データを読出す。一例として、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付ける。
【0106】
データ書込時においては、図18に示すアクセストランジスタATI、ATJおよびATKをオフ状態に維持する。書込ワード線WWL(WWL<i>、WWL<j>またはWWL<k>)を通して所定の方向に電流を流し、磁界を誘起する。ビット線BLを通して、書込データに応じた方向に電流を流す。ビット線BLを流れる電流が誘起する磁界と書込ワード線WWLを流れる電流が誘起する磁界の合成磁界により、可変磁気抵抗素子MTJの自由層FRLの磁化方向を、固定層の磁化方向に対し平行状態または反平行状態に設定する。この自由層の磁化方向により、可変磁気抵抗素子MTJの抵抗状態が設定され、データの書込が行なわれる。
【0107】
このメモリセルMCのデータは、可変磁気抵抗素子の自由層の磁化方向により設定される。外部から、自由層の磁化方向を反転させる原因が印加されない限り、自由層FRLの磁化方向は変化しない。したがって、メモリセルMCは、不揮発的にデータを記憶することができる。また、この自由層FRLの磁化方向は、ビット線電流および書込ワード線電流の誘起する磁界により決定され、書込時、たとえばフラッシュメモリのように、トンネル絶縁膜などを介して電流は流れない。したがって、層間絶縁膜の劣化の問題は回避することができ、可変磁気抵抗素子の書換回数は、ほぼ無限大である。
【0108】
また、この可変磁気抵抗素子の自由層の磁化方向は、ビット線BLおよび書込ワード線WWLを流れる電流により決定されるため、高速の書込を行なうことができる。また、データ読出も、ビット線BLを流れる電流量に従って行なわれるため、高速で読出を行なうことができる。また、可変磁気抵抗素子MTJI、MTJJおよびMTJKを通して流れる電流の大きさに応じてデータの読出が行なわれ、この可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層の磁化方向は、読出電流により反転しない。したがって、非破壊的にデータの読出を行なうことができ、DRAMセルおよび強誘電体キャパシタのようなリストア動作が不要となり、データ読出サイクルを短くすることができる。
【0109】
演算回路50_2においては、このMRAMセルの特長を利用して、メモリセルの記憶データと演算ロジック部55のセンスアンプの増幅動作とを利用して、演算操作を実行する。
【0110】
図20は、メモリブ53におけるメモリセルのアレイ内配置を概略的に示す図である。図20においては、2つのメモリセル列に対応する回路を代表的に示す。
【0111】
メモリセルMCI1およびMCI2に対しては、読出ワード線RWL<i>および書込ワード線WWL<i>が配設され、メモリセルMCJ1およびMCJ2に対しては、読出ワード線RWL<j>および書込ワード線WWL<j>が設けられ、メモリセルMCK1およびMCK2に対しては、読出ワード線RWL<k>および書込ワード線WWL<k>が設けられる。メモリセルMCI1およびMCI2に対しては、行方向に延在するソース線SL<i>が設けられる。メモリセルMCJ1およびMCJ2に対しては、行方向に延在するソース線SL<j>が設けられる。メモリセルMCK1およびMCK2に対しては、行方向に延在するソース線SL<k>が設けられる。これらのソース線SL<i>、SL<j>およびSL<k>は、共通ソース線SLCMを介して接地ノードに結合される。
【0112】
メモリセルMCI1、MCJ1およびMCK1が接続されているビット線BL<1>と対をなすビット線ZBL<1>に接続されたダミーセルDMCA1およびDMCB1が設けられる。メモリセルMCI2、MCJ2およびMCK2が接続されているビット線BL<2>と対をなすビット線ZBL<2>に接続されたダミーセルDMCA2およびDMCB2が設けられる。ダミーセルDMCA1およびDMCA2に対しては、ダミー読出ワード線DRWL1およびダミー書込ワード線DWWL1が設けられ、ダミーセルDMCB1およびDMCB2に対しては、ダミー読出ワード線DRWL2およびダミー書込ワード線DWWL2が設けられる。ダミーセルDMCA1およびDMCA2のダミーソース線DSL1は、基準電圧VREF1が供給される基準電位ノードVREF1または基準電圧VREF3が供給される基準電位ノードVREF3にスイッチSW1を介して結合される。ダミーセルDMCB1およびDMCB2のダミーソース線DSL2は、基準電圧VREF2が供給される基準電位ノードVREF2または基準電圧VREF4が供給される基準電位ノードVREF4にスイッチSW2を介して結合される。これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2は、ともに低抵抗状態に設定され、抵抗値Rminを有する。
【0113】
基準電位ノードVREF1およびVREF3のいずれをダミーソース線DSL1と接続するか、基準電位ノードVREF2およびVREF4のいずれをダミーソース線DSL2と接続するかは、後述するようにメモリセルMCから読み出したデータに対して行なわれる演算の種類によって決まる。
【0114】
メモリセルMCの列およびダミーセルDMCの列に対応してビット線BLおよびZBLがそれぞれ設けられる。メモリセルMCI1、MCJ1およびMCK1は、ビット線BL<1>に並列に結合され、ダミーセルDMCA1およびDMCB1は、補のビット線ZBL<1>に結合される。メモリセルMCI2、MCJ2およびMCK2は、ビット線BL<2>に並列に結合され、ダミーセルDMCA2およびDMCB2は、補のビット線ZBL<2>に結合される。
【0115】
読出ワード線RWL<i>、RWL<j>およびRWL<k>の一端に、読出ドライバRWDVI、RWDVJおよびRWDVKがそれぞれ設けられる。ダミー読出ワード線DRWL1およびDRWL2の一端に、読出ドライバDRWDV1およびDRWDV2がそれぞれ設けられる。書込ワード線WWL<i>、WWL<j>およびWWL<k>の一端に、書込ドライバWWDVI、WWDVJおよびWWDVKがそれぞれ設けられる。ダミー書込ワード線DWWL1およびDWWL2の一端に、書込ドライバDWWDV1およびDWWDV2がそれぞれ設けられる。
【0116】
読出ドライバRWDVI、RWDVJ、RWDVK、DRWDV1およびDRWDV2は、データ読み出し時、対応の読出ワード線を選択状態へ駆動する。書込ドライバWWDVI、WWDVJ、WWDVK、DWWDV1およびDWWDV2は、データ書込時、対応の書込ワード線を選択状態へ駆動する。
【0117】
ビット線BL<1>およびZBL<1>の一端に、センスアンプSA1が設けられる。センスアンプSA1は演算ロジック部55の一部である。ビット線BL<1>の両端に、書込ドライバWDVA1およびWDVA2がそれぞれ設けられ、また補のビット線ZBL<1>の両端に、書込ドライバDWDVA1およびDWDVA2がそれぞれ設けられる。書込ドライバWDVA1およびWDVA2は、データ書込時、相補データDおよび/Dに従ってビット線BL<1>に電流を流す。同様に、書込ドライバDWDVA1およびDWDVA2も、相補データDDおよび/DDに従って、補のビット線ZBL<1>に双方向に電流を流す。これらの書込ドライバWDVA1、WDVA2、DWDVA1、およびDWDVA2を双方向ドライバで構成することにより、ビット線BL<1>およびZBL<1>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI1、MCJ1およびMCK1に対し、データを書込むことができる。
【0118】
同様に、ビット線BL<2>およびZBL<2>の一端に、センスアンプSA2が設けられる。センスアンプSA2は演算ロジック部55の一部である。ビット線BL<2>の両端に、書込ドライバWDVB1およびWDVB2が設けられ、また補のビット線ZBL<2>の両端に、書込ドライバDWDVB1およびDWDVB2が設けられる。書込ドライバWDVB1およびWDVB2は、データ書込時、相補データDおよび/Dに従ってビット線BL<2>に電流を流す。同様に、書込ドライバDWDVB1およびDWDVB2も、相補データDDおよび/DDに従って、補のビット線ZBL<2>に双方向に電流を流す。これらの書込ドライバWDVB1、WDVB2、DWDVB1、およびDWDVB2を双方向ドライバで構成することにより、ビット線BL<2>およびZBL<2>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI2、MCJ2およびMCK2に対し、データを書込むことができる。
【0119】
ただし、ダミーセルDMCは、低抵抗状態に設定されるため、補のビット線ZBLに対して設けられる書込ドライバDWDVA1、DWDVA2、DWDVB1およびDWDVB2は、供給電流の方向が固定されることから、双方向に電流を供給することは、特に要求されない。
【0120】
このセンスアンプSA(SA1,SA2)、1対の書込ドライバWDVおよび1対の書込ドライバDWDVが、各ビット線対に対応して設けられる。
【0121】
なお、ダミーセルDMCA1、DMCA2、DMCB1およびDMCB2のダミーソース線DSL1およびDSL2が、接地ノードではなく、基準電位ノードVREF1〜VREF4に結合されるのは、以下の理由による。すなわち、データ読出時、これらの基準電位ノードの電圧VREF1〜VREF4を所望の値に設定した場合、これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2を通してそれぞれ流れる電流量を、メモリセルMCI、MCJおよびMCKを通して流れる電流の中間値またはそれより大きい値に設定することができる。演算処理時においては、後に詳細に説明するように、メモリセルMCI、MCJおよびMCKが並行して選択され、これらのメモリセルの記憶データに応じた電流がビット線BLを通して流れる。このビット線上の合成電流に対して基準電圧VREF1〜VREF4の電圧レベルを調整することにより、補のビット線ZBLを通して流れるダミーセル電流を調整することで、必要とされる演算を実行する。
【0122】
データ書込時においては、メモリセルMCI、MCJおよびMCKを順次選択して、1対の書込ドライバWDVによりデータを書込む。データ読出時においては、読出ワード線RWL<i>、RWL<j>およびRWL<k>を並行して選択状態へ駆動し、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKを並列にビット線BLに結合する。
【0123】
次に、メモリ部53で1つのメモリセル行<i>を選択した場合における読み出し動作について説明する。
【0124】
図21は、メモリセルMCIの記憶データの組み合わせを一覧にして示す図である。図21に示すように、メモリセルMCIの可変磁気抵抗素子MTJIの抵抗状態の組み合わせとして、2つの状態が存在する。状態S(0)は、メモリセルMCIの可変磁気抵抗素子MTJIが、高抵抗状態H(Rmax)である。状態S(1)は、可変磁気抵抗素子MTJIが、低抵抗状態L(Rmin)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態をデータ“1”に対応付けている。
【0125】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIを並行して選択し、各可変磁気抵抗素子MTJIの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>を選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0126】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCIを選択し、各可変磁気抵抗素子MTJIを並行して各ビット線BLに結合する。したがって、読出時においては、各可変磁気抵抗素子MTJIを通して流れる電流が各ビット線BLを通して流れる。
【0127】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。ここでは、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF1にダミーセルDMCAが接続される場合について説明する。
【0128】
図22は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図22において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。なお、データ読出前、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0129】
メモリセルMCIが状態S(0)のときには、メモリセルMCI(可変磁気抵抗素子MTJI)は高抵抗状態であり、メモリセルMCIを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。
【0130】
一方、状態S(1)においては、メモリセルMCI(可変磁気抵抗素子MTJI)は低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0131】
また、ダミーセルDMCAは低抵抗状態L(Rmin)である。メモリセルMCIのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0)のときにビット線BLを通して流れる電流よりも大きく、かつ状態S(1)のときにビット線BLを通して流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0)と状態S(1)の間の状態に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
【0132】
Il>Id1>Ihただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを通して流れる電流を示す。
【0133】
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCAを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIの1ビットの記憶データの論理値を示している。
【0134】
図23は、演算ロジック部55におけるセンスアンプの出力信号とメモリセルMCIの記憶状態との対応を一覧にして示す図である。
【0135】
図23に示すように、状態S(0)においては、可変磁気抵抗素子MTJIは高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、図22に示すようにビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0136】
状態S(1)においては、メモリセルMCIは低抵抗状態L(Rmin)であり、データ“1”を記憶している。この状態においては、図22に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は補のビット線ZBLよりも低い。このとき、センスアンプの出力信号は “0”となる。
【0137】
したがって、センスアンプからは、メモリセルMCIの記憶データのNOT演算結果が出力される。
【0138】
次に、演算回路50_2において、2つのメモリセル行<i>および<j>を選択した場合における読み出し動作について説明する。
【0139】
図24は、メモリセルMCIおよびMCJの記憶データの組み合わせを一覧にして示す図である。図24に示すように、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJの抵抗状態の組み合わせとして、4つの状態が存在する。状態S(0,0)は、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJが、ともに、高抵抗状態H(Rmax)である。状態S(1,0)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ低抵抗状態L(Rmin)および高抵抗状態H(Rmax)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
【0140】
状態S(0,1)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ高抵抗状態H(Rmax)および低抵抗状態L(Rmin)である。状態S(1,1)は、可変磁
気抵抗素子MTJIおよびMTJJが、ともに低抵抗状態L(Rmin)である。
【0141】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIとメモリセル行<j>に対応する複数のMCJとを個々に選択し、各可変磁気抵抗素子MTJIおよび各可変磁気抵抗素子MTJJの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>およびWWL<j>を順次選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0142】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCIおよびメモリセル行<j>に対応する複数のメモリセルMCJを並行して選択し、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を通して流れる電流の合成電流が各ビット線BLを通して流れる。
【0143】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。まず、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF1にダミーセルDMCAが接続される場合について説明する。
【0144】
図25は、データ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。図25において、メモリセルMCIおよびMCJが並列に接続される。データ読出時、アクセストランジスタATIおよびATJが並行して選択され、ビット線BLと接地ノードとの間に並列に可変磁気抵抗素子MTJIおよびMTJJが、記憶データに応じた電流IIおよびIJを流す。補のビット線ZBLには、ダミーセルDMC(DMCAまたはDMCB)が、基準電圧VREF(VREF1〜VREF4のいずれか)の電圧レベルに応じた電流IDを流す。これらのビット線の合成電流II+IJと補のビット線ZBLのダミーセル電流IDとの大小に応じて、データの読出を実行する。
【0145】
図26は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図26において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
【0146】
メモリセルMCIおよびMCJが状態S(0,0)のときには、メモリセルMCIおよびMCJは高抵抗状態であり、メモリセルMCIおよびMCJを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0147】
一方、状態S(1,1)においては、メモリセルMCIおよびMCJは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0148】
状態S(1,0)およびS(0,1)は、高抵抗状態と低抵抗状態の組み合わせであり、状態S(0,0)およびS(1,1)のビット線電流の中間の電流が流れる。したがって、状態S(1,0)およびS(0,1)の場合、ビット線の読出電位は、この状態S(0,0)およびS(1,1)の間となる。
【0149】
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCIおよびMCJのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(0,1)およびS(1,0)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0)と状態S(1,0)およびS(0,1)との間に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
2×Ih<Id1<Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
【0150】
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、また、基準電位ノードVREF2にダミーセルDMCBが接続される場合について説明する。
【0151】
ダミーセルDMCBを選択し、基準電圧VREF2を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを通して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,0)およびS(0,1)と状態S(1,1)との間に設定することができる。この場合のダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
2×Il>Id2>Ih+Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIおよびMCJの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIおよびMCJの2ビットの記憶データの組み合わせを2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCIおよびMCJの記憶データに対する論理演算を行なうことができる。
【0152】
図27は、演算回路50_2におけるセンスアンプの出力信号とメモリセルMCIおよびMCJの記憶状態との対応を一覧にして示す図である。
【0153】
図27に示すように、状態S(0,0)においては、可変磁気抵抗素子MTJIおよびMTJJがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF1)およびDMCB(基準電圧VREF2)のいずれを選択しても、図26に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0154】
状態S(1,0)および状態S(0,1)の場合、メモリセルMCIおよびMCJの一方が高抵抗状態H(Rmax)であり、他方が低抵抗状態L(Rmin)である。したがって、基準電圧VREF1を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF2を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
【0155】
状態S(1,1)の場合、メモリセルMCIおよびMCJはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF1およびVREF2のいずれを選択しても、図26に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。
【0156】
したがって、図27に示すように、基準電圧VREF1を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNOR演算結果が出力され、また、基準電圧VREF2を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNAND演算結果が出力される。
【0157】
なお、センスアンプとしては、交差結合ラッチ型センスアンプが用いられてもよい。しかしながら、この交差結合型ラッチセンスアンプは、ビット線BLおよびZBLの電位差を増幅する電圧検出型センスアンプである。したがって、より高速でセンス動作を行なうために、電流検出型センスアンプを利用することが好ましい。
【0158】
図28は、電流検出型のセンスアンプの構成の一例を示す図である。図28において、センスアンプSAは、カレントミラー段を構成するPチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)PT1−PT3と、ビット線BLへMOSトランジスタPT1からの電流を供給するNチャネルMOSトランジスタNT1と、別のカレントミラー段を構成するPチャネルMOSトランジスタPT4−PT6と、MOSトランジスタPT6から補のビット線ZBLへ電流を供給するNチャネルMOSトランジスタNT6とを含む。
【0159】
MOSトランジスタPT1およびNT1がビット線BLとノードND1の間の直列に接続される。MOSトランジスタPT1は、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作する。MOSトランジスタNT1は、そのゲートにセンス基準電圧Vrefsを受け、ビット線BLの電位の上昇を抑制しつつビット線電流を供給する。このセンス基準電圧Vrefsは、データ読出時、メモリセルMCのビット線BLの大きな電流が流れ、このビット線電流の誘起磁界によりメモリセルの記憶データが破壊されるのを防止する。
【0160】
MOSトランジスタPT6およびNT6は、ノードND1と補のビット線ZBLの間に直列に接続される。MOSトランジスタPT6は、ゲートおよびドレインが相互接続されカレントミラー段のマスタとして動作する。MOSトランジスタNT6は、センス基準電圧Vrefsをゲートに受け、MOSトランジスタPT6から供給される電流を補のビット線ZBLへ供給する。MOSトランジスタPT2−PT5は、それぞれのソースノードが電源ノードに結合される。
【0161】
センスアンプSAは、さらに、カレントミラー段を構成するNチャネルMOSトランジスタNT2およびNT3と、別のカレントミラー段を構成するNチャネルMOSトランジスタNT4およびNT5を含む。
【0162】
MOSトランジスタNT2は、MOSトランジスタPT2とノードNDとの間に接続され、そのゲートおよびドレインが相互接続される。MOSトランジスタNT3は、MOSトランジスタPT4とノードND2の間に接続され、そのゲートがMOSトランジスタNT2のゲートに接続される。MOSトランジスタNT4は、MOSトランジスタPT3とノードND2との間に接続され、そのゲートがMOSトランジスタNT5のゲートに接続される。MOSトランジスタNT5は、MOSトランジスタPT5とノードND2の間に接続され、かつそのゲートおよびドレインが相互接続される。
【0163】
MOSトランジスタNT2およびNT5により電流/電圧変換された信号が中間センス信号として出力される。
【0164】
センスアンプSAは、さらに、センスアンプ活性化信号/SEの活性化時導通し、ノードND1を電源ノードに接続するPチャネルMOSトランジスタPT7と、センスアンプ活性化信号SEの活性化時導通し、ノードND2を接地ノードGNDに結合するNチャネルMOSトランジスタNT7を含む。センスアンプ活性化信号/SEおよびSEは、それぞれ、活性化時、論理ローレベルおよび論理ハイレベルである。
【0165】
センスアンプSAは、さらに、MOSトランジスタNT2およびNT5により電流/電圧変換された中間センス出力信号SOTおよび/SOTを増幅して最終センス出力信号SOUTおよび/SOUTを生成する最終増幅回路SMPを含む。この最終増幅回路SMPは、センスアンプ活性化信号/SEの非活性化時、出力ハイインピーダンス状態である。この図28に示すセンスアンプSAの動作について説明する。
【0166】
センスアンプ活性化信号/SEおよびSEの非活性化時、MOSトランジスタPT7およびNT7は、オフ状態である。この状態においては、MOSトランジスタPT2およびPT5により、中間センス出力信号SOTおよび/SOTは、電源電圧VDDレベルに維持される。ノードND1は、MOSトランジスタPT1、NT1、およびPT6、NT1により、ビット線BLおよびZBLと同様の電位レベルに維持される。また、最終センス出力信号SOUTおよび/SOUTも出力ハイインピーダンス状態のプリチャージレベル(例えば論理ハイレベル)に維持される。
【0167】
センス動作時には、先ず、読出ワード線選択前に、センスアンプ活性化信号/SEを活性化し、MOSトランジスタPT7およびNT7をオン状態とする。応じて、ノードND1が電源ノードに結合され、MOSトランジスタPT1およびPT6が動作し、ビット線BLおよびZBLが充電される。この場合、またセンスアンプ活性化信号SEは、並行して活性化されてもよい。センス動作開始時までセンスアンプ活性化信号SEの活性化が遅延されても良い。読出ワード線RWLは、まだ、非選択状態であり、ビット線BLおよびZBLが、MOSトランジスタNT1およびNT6から供給される電流に従って所定電圧レベルにプリチャージされる。
【0168】
プリチャージ動作が完了すると、次いで、読出ワード線を選択状態へ駆動する。このときまでには、センスアンプ活性化信号SEが活性化される。応じて、選択メモリセルを介してビット線BLからソース線に、その記憶データに応じたセル電流Icellが流れる。一方、補のビット線ZBLにおいても、ダミーセルにより、ダミーセル電流Idummyが流れる。これらの電流IcellおよびIdummyは、MOSトランジスタPT1およびPT6により、それぞれ供給され、MOSトランジスタPT1を介して流れる電流のミラー電流が、MOSトランジスタPT2およびPT3を介して流れ、MOSトランジスタPT6を介して流れる電流のミラー電流がMOSトランジスタPT4およびPT5を介して流れる。従って、これらのビット線を介して流れるセル電流Icellおよびダミーセル電流Idummyのミラー電流が、それぞれ、MOSトランジスタNT2およびNT5を介してそれぞれ流れる。
【0169】
MOSトランジスタNT2およびNT5の電流/電圧変換動作により、セル電流Icellがダミーセル電流Idummyよりも大きい場合には、中間センス出力信号/SOTが論理ハイレベルとなり、中間センス出力信号SOTが論理ローレベルとなる。逆に、セル電流Icellがダミーセル電流Idummyよりも小さい場合には、中間センス出力信号/SOTが論理ローレベルとなり、中間センス出力信号SOTが論理ハイレベルとなる。これらの中間センス出力信号SOTおよび/SOTは、次段の最終増幅回路SMPによりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号SOUTおよび/SOUTが、生成される。
【0170】
なお、MOSトランジスタNT3およびNT4については、以下の動作が行なわれる。すなわち、MOSトランジスタNT2は、MOSトランジスタPT2からの電流を放電し、MOSトランジスタNT3は、MOSトランジスタNT2のミラー電流を放電することができる。同様、MOSトランジスタPT5を流れる電流のミラー電流が、MOSトランジスタNT5を介して流れ、MOSトランジスタNT4は、MOSトランジスタNT5を介して流れる電流のミラー電流を放電することができる。
【0171】
したがって、MOSトランジスタPT3およびNT4には、セル電流Icellとダミーセル電流Idummyのうちの小さいほうの電流が流れ、MOSトランジスタPT4およびNT3においても、ダミーセル電流Idummyとセル電流Icellの小さいほうの電流が流れる。MOSトランジスタNT7へは、セル電流Icellとダミーセル電流Idummyの合計電流とこれらの電流の小さいほうの電流の2倍の電流との和が常時流れる。従って、1ビットセルデータを読出して2値判定を行なう場合には、センス動作の安定化のために、これらのMOSトランジスタPT3、PT4、NT3、およびNT4は、MOSトランジスタNT7を介して流れる電流量を一定とする機能を有する。
【0172】
しかしながら、これらのMOSトランジスタPT3、NT4、NT3、およびNT4は、特に設けられなくてもよい。また、これに代えて、MOSトランジスタPT3およびNT4の接続ノードおよびMOSトランジスタPT4およびNT3の接続ノードから、センス出力信号SOUTおよび/SOUTが、それぞれ取り出される構成が用いられてもよい。
【0173】
上述のように、センスアンプSAが、複数のメモリセルの記憶データに対するNOR演算結果およびNAND演算結果を示す信号を生成している。また、メモリセルの記憶データの論理値を変更せずに読み出す場合、ならびにOR演算およびAND演算結果をセンスアンプにより生成する場合には、図28に示すセンス出力信号を後述するメインアンプ回路140またはデータパス180において反転すればよい。
【0174】
基準電圧VREF1〜VREF4によりダミーセル電流Idummyの電流レベルを調整することにより、NOR演算およびNAND演算を選択的に行なうことができる。
【0175】
次に、演算回路50_2において、3つのメモリセル行<i>、<j>および<k>を選択した場合における読み出し動作について説明する。
【0176】
図29は、メモリセルMCI、MCJおよびMCKの記憶データの組み合わせを一覧にして示す図である。図29に示すように、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKの抵抗状態の組み合わせとして、8つの状態が存在する。上記説明と同様に、状態S(A,B,C)のとき、AはメモリセルMCIの抵抗状態を表し、BはメモリセルMCJの抵抗状態を表し、CはメモリセルMCKの抵抗状態を表す。たとえば、状態S(0,0,0)は、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに、高抵抗状態H(Rmax)である。状態S(1,1,1)は、可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに低抵抗状態L(Rmin)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
【0177】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIと、メモリセル行<j>に対応する複数のMCJと、メモリセル行<k>に対応する複数のMCKとを個々に選択し、各可変磁気抵抗素子MTJI、各可変磁気抵抗素子MTJJおよび各可変磁気抵抗素子MTJKの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>、WWL<j>およびWWL<k>を順次選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0178】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCI、メモリセル行<j>に対応する複数のメモリセルMCJおよびメモリセル行<k>に対応する複数のメモリセルMCKを並行して選択し、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を通して流れる電流の合成電流が各ビット線BLを通して流れる。
【0179】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。まず、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF3にダミーセルDMCAが接続される場合について説明する。
【0180】
図30は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図30において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
【0181】
メモリセルMCI、MCJおよびMCKが状態S(0,0,0)のときには、メモリセルMCI、MCJおよびMCKは高抵抗状態であり、メモリセルMCI、MCJおよびMCKを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0182】
一方、状態S(1,1,1)においては、メモリセルMCI、MCJおよびMCKは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0183】
状態S(1,0,0)、S(0,1,0)およびS(0,0,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが高抵抗状態であり、他の1つが低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れる。したがって、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)では、ビット線の読出電位は、状態S(0,0,0)およびS(1,1,1)の間となる。
【0184】
また、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが低抵抗状態であり、他の1つが高低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れ、かつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と比べてビット線電流が大きくなる。したがって、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)では、ビット線の読出電位は、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と状態S(1,1,1)の間となる。
【0185】
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCI、MCJおよびMCKのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0,0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0,0)と状態S(1,0,0)、S(0,1,0)およびS(0,0,1)との間に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
3×Ih<Id1<2×Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
【0186】
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、基準電位ノードVREF4にダミーセルDMCBが接続される場合について説明する。
【0187】
ダミーセルDMCBを選択し、基準電圧VREF2を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを通して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)と状態S(1,1,1)との間に設定することができる。この場合の、ダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
3×Il>Id2>Ih+2×Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCI、MCJおよびMCKの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCI、MCJおよびMCKの3ビットの記憶データの組み合わせを2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCI、MCJおよびMCKの記憶データに対する論理演算を行なうことができる。
【0188】
図31は、演算回路50_2におけるセンスアンプの出力信号とメモリセルMCI、MCJおよびMCKの記憶状態との対応を一覧にして示す図である。
【0189】
図31に示すように、状態S(0,0,0)においては、可変磁気抵抗素子MTJI、MTJJおよびMTJKがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF3)およびDMCB(基準電圧VREF4)のいずれを選択しても、図30に示すようにビット線BLの流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0190】
状態S(1,0,0)、S(0,1,0)、S(0,0,1)、S(1,1,0)、S(1,0,1)およびS(0,1,1)では、メモリセルMCI、MCJおよびMCKのうちの少なくともいずれか1つが低抵抗状態L(Rmin)である。したがって、基準電圧VREF3を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF4を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
【0191】
状態S(1,1,1)の場合、メモリセルMCI、MCJおよびMCKはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF3およびVREF4のいずれを選択しても、図14に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、電圧検出型センスアンプの出力信号は“0”となる。
【0192】
したがって、図31に示すように、基準電圧VREF3を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNOR演算結果が出力され、また、基準電圧VREF4を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNAND演算を行なった結果が出力される。
【0193】
ここまでの説明では、ダミーセルDMCがメモリセル列ごとに2つ設けられる構成であるとしたが、これに限定するものではない。ダミーセルDMCがメモリセル列ごとに1つ設けられ、このダミーセルDMCに接続されたスイッチSWが、たとえば基準電位ノードVREF1〜VREF4のうちのいずれか1つとダミーセルDMCとを選択的に結合する構成であってもよい。
【0194】
以上の説明を踏まえて図16に示される演算回路50_2の構成について更に説明する。図16では、演算子セルアレイ100は、複数の演算子セルサブアレイブロックOAR0−OAR31に分割され、例えば32個の演算子セルサブアレイブロックに分割されているが、分割数は32に限定されない。演算子セルサブアレイブロックOAR0−OAR31の各々は、サブメモリアレイMLAを含む。サブメモリアレイMLAにおいて、メモリセルMCが行列状に配列され、また、各メモリセル列に対応して、ダミーセルが設けられる。1つの演算子セルサブアレイブロックにおいて1または複数のメモリセル行および複数のダミーセルを選択して、メモリセルの記憶データに対する演算処理を実行する。演算子セルサブアレイブロックOAR0−OAR31の各々に対応してセンスアンプ帯260が配置される。
【0195】
演算子セルアレイ100に対して設けられた行選択駆動回路120は、演算子セルサブアレイブロックOAR0−OAR31それぞれに対応して設けられる行ドライブ回路XDR0−XDR31を含む。これらの行ドライブ回路XDR0−XDR31の各々は、たとえば機能再構成セル20_4から供給される制御データに基づいて制御回路200が生成するアドレス信号に基づいて、対応する演算子セルサブアレイブロックにおけるメモリセル行を選択する。したがって、行ドライブ回路XDR0−XDR31は、行アドレス信号をデコードする行アドレスデコード回路と、データ読出時、デコードされた行アドレス信号に基づいて読出ワード線を選択状態に駆動する読出ワード線ドライブ回路と、データ書き込み時、デコードされた行アドレス信号に基づいて書込ワード線を選択状態に駆動する書込ワード線ドライブ回路とを含む。
【0196】
この演算子セルアレイ100のデータ入出力経路にデータパス180と共に設けられたメインアンプ回路140は、演算子セルサブアレイブロックOAR0−OAR31の各ビット線対BLおよびZBLに対応して設けられるメインアンプを含む。メインアンプ回路140において、各メインアンプが演算子セルアレイ100において選択された演算子セルサブアレイブロックから読出されたデータ(センスアンプ出力信号)を並列に増幅する。これにより、演算子セルアレイ100において選択された演算子セルサブアレイブロックのエントリ(1行のメモリセルで構成される)のデータに対するセンスアンプ出力をビットごとに並列に増幅する。
【0197】
データパス180は、メインアンプ回路140からの転送データの保持およびこの転送データに対応する外部へのデータの出力、ならびに外部からの入力データの保持および入力データに基づくメモリセルに対する書込データの生成を実行する。
【0198】
なお、図16において、選択された演算子セルサブアレイブロックに対するデータの書込を行なう回路は示していないが、同様、このデータ書込を行なうデータ書込回路も設けられる。また、指定された演算内容に応じてダミーセルの選択および基準電位ノードの選択を行なう回路も設けられる。このダミーセル選択回路は、行ドライブ回路XDRにおいて選択的にダミー読出ワード線を選択するダミーワード線駆動回路により実現される。また、行ドライブ回路XDRは、図20のスイッチSW1およびSW2をそれぞれ制御する基準電位ノード選択回路を含む。
【0199】
演算回路50_2における内部演算処理の設定および動作タイミング制御は、制御回路20により行なわれる。この制御回路20は、可変論理セル20_4から供給されるデータをデコードして内部の演算指定および内部タイミングの生成を行なう。
【0200】
図32には演算回路50_2による演算例が示される。図32を参照して、エントリiすなわちメモリセル行<i>における各メモリセルの記憶データ列が”1010101010101”であり、エントリjすなわちメモリセル行<j>における各メモリセルの記憶データ列が”0101010101010”であり、エントリkすなわちメモリセル行<k>における各メモリセルの記憶データ列が”0011001100110”である。
【0201】
エントリiを1つ選択する場合、データDOUTは”1010101010101”となる(OP1)。また、エントリiおよびjを選択し、AND演算を選択する場合、データDOUTは”0000000000000”となる(OP2)。また、エントリjおよびkを選択し、AND演算を選択する場合、データDOUTは”0001000100010”となる(OP3)。
【0202】
演算回路50_2において、演算子セルアレイ10における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとすると、生成されるデータ列は、m×n+m×n×(n−1)÷2×2+m×n×(n−1)×(n−2)÷(3×2)×2となる。
【0203】
但し、上記式において、第1項は1つの演算子セルサブアレイブロックOARにおけるnエントリから1エントリを選択する場合の組み合わせ数であり、第2項はnエントリから2エントリを選択する場合のAND演算およびOR演算の選択を含めた組み合わせ数であり、第3項はnエントリから3エントリを選択する場合のAND演算およびOR演算の選択を含めた組み合わせ数である。
【0204】
以上のように、演算回路50_2では、行選択駆動回路120は、受けたアドレス信号に基づいて1または複数のメモリセル行に対応する複数のメモリセルMCおよび複数のダミーセルDMCを並行して選択する。そして、センスアンプSAは、対応のビット線BLを通して流れる電流と対応のビット線ZBLを通して流れる電流とを比較し、比較結果を示す信号を出力する。これにより、選択されたメモリセル行の記憶データ列をそのまま読み出すことができる。また、複数メモリセル行を並行して選択し、各メモリセル行の記憶データに基づく電流を加算することにより、各メモリセル行の記憶データ列同士の論理演算をセンスアンプにおいて行ない、その演算結果を演算回路50_2の外部から読み出すこともできる。
【0205】
また、上記のように各メモリセル行の記憶データ列同士の論理演算を行なうことにより、演算子セルアレイ100が記憶する物理的な真理値データ列から、この真理値データ列で構成される実エントリ空間より遥かに大きい仮想エントリ空間を作り出すことができる。すなわち、従来のLUT演算器に比べて、はるかに高密度な論理情報を格納するLUT形態の演算回路を実現することができる。
【0206】
また、演算回路50−_2では、メモリセルMCにおいて、可変磁気抵抗素子を記憶素子として利用している。これにより、メモリセルの記憶データを破壊することなくその記憶データを読み出すことができるため、メモリセルの記データを繰り返し利用して演算を実行することができる。
【0207】
なお、演算回路50_2では、メモリセルとしてMRAMセルを用いたが、MRAMセルに限らず、バルクシリコン上に形成され、データを不揮発的に記憶する他のメモリセルであってもよい。たとえば、フラッシュメモリのような電流センス型の非破壊読み出しメモリであってもよい。
【0208】
また、図示はしないが、センスアンプ帯260の次段に、組み合わせ論理演算回路を配置してもよい。組み合わせ論理演算回路は、センスアンプ帯260から転送されたメモリセルの記憶データに対し、指定された論理演算および算術演算処理をさらに実行することにより、センスアンプ出力であるNOR演算結果およびNAND演算結果から、XOR等の別の演算処理結果等を生成することができる。また、組み合わせ論理演算回路は、センスアンプ帯260におけるセンスアンプの出力信号の論理レベルを反転してメインアンプ回路140へ出力することもできる。
【0209】
以上説明したマイクロコンピュータ1によれば以下の作用効果がある。
【0210】
(1)記憶回路23の読み出しを機能再構成セル20それ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路23を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【0211】
(2)CPU2等は第3のアドレス範囲AA3に対するライトアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路35をランダムアクセスして、機能再構成セル20の間の接続を定義するためのスイッチ制御情報を任意に書き込むことができる。
【0212】
(3)CPU2等は第1のアドレス範囲AA1に対してアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられている機能再構成セル20のSRAM25をランダムアクセスして、前記機能再構成セル20のSRAM25に所定の論理機能を実現するための情報を任意に定義することができる。
【0213】
(4)CPU2等は第2のアドレス範囲AA2に対してデータリード用等価IOレジスタアクセスを要求することにより、制御回路24がSRAM23から出力している情報を前記論理機能によって得られた結果としてリードすることができる。これにより、CPU2等は論理機能が設定された機能再構成セル20による論理動作の結果を第2のアドレス範囲AA2のアドレスを指定したリードアクセスによって任意に取得することができる。
【0214】
(5)ランダムアクセス用のAA1,AA3のアドレスマッピングに対し、機能設定された機能再構成セル20による論理動作結果を取得したりするために機能再構成セル20に割り当てたメモリマップドIOアドレスのようなAA2のアドレスマッピングを個別化することにより、機能再構成セル20及び接続選択回路35に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレス等に変更を生ぜず、機能再構成セル20に対する論理機能をダイナミックに再構成することが容易になる。
【0215】
(6)CPU2からバスインタフェース回路40に対する機能再構成セル20への機能設定用アクセス経路にシステムバスSBUSを用い、機能設定された機能再構成セル20への等価的メモリマップドレジスタアクセスのための経路に周辺バスを用い、双方の経路が分離されるから、機能再構成セル20に周辺機能を設定して利用する場合には、CPU2等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【0216】
(7)機能再構成メモリ8は、演算機能がハードウェアによってある程度限定された演算回路50を備えるから、可変論理に対する演算機能設定の負担を軽減することができる。要するに、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに済み、可変論理に対する機能設定のためのコンフィグレーション情報を生成し、また、これを設定する負担を軽減することができる。
【0217】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0218】
図2の機能再構成メモリ8はSRAMで構成した例を説明したが、例えばMRAMで構成しても良い。MRAMは高速の読出し/書込動作が可能とされる不揮発性メモリである。既知の他の不揮発性メモリであるFlashメモリや相変化メモリ等で構成することも可能である。MRAMとFlashメモリとを比較すると読出し/書込動作ともにMRAMが高速であり、Flashメモリの持つ書換え回数の制限がないという利点がある。相変化メモリと比較すると、読出し/書込動作速度はほぼ同等であるが、相変化メモリに比べて熱耐性が高いという利点がある。一方でMRAMは磁気記憶方式であることから、耐磁性が相変化メモリに比べて低い。使用環境に応じて機能再構成メモリ8を構成するメモリを選択すればよい。
【0219】
機能再構成メモリ8を不揮発性メモリで構成することで、一旦構成した論理機能は電源が遮断されたとしても維持されるとの利点を得ることができ、またROM3に格納しているプログラムを機能再構成メモリ8のランダムアクセス可能な内部メモリ(ITNR_RAM)の一部空間に格納することができる。MRAMや相変化メモリで構成することで中央処理装置のワーク領域としてのRAM4に代えて、ランダムアクセス可能な内部メモリ(ITNR_RAM)の他の空間を用いることも可能となる。
【0220】
また、等価的メモリマップドIOレジスタアクセスは一例であり、そのためのLOGE_j等のイネーブル信号や、等価的メモリマップドIOレジスタの種類は適宜変更可能である。また、システムバスと周辺バスを分けるアーキテクチャを採用しない場合には機能再構成セルに対するランダムアクセス経路と等価的メモリマップドIOレジスタアクセスの経路を分離しなくてもよい。マトリクス配置された機能再構成セルとバスの接続形態として、X,Y方向にバスを配置し、X,Yのそれぞれの方向からアドレシングしてバスに接続する接続形態を採用してもよい。機能再構成セルによって実現される周辺機能は上記に限定されず適宜変更可能である。また、CPUに対する所謂周辺機能に限定されない。アクセラレータのようにCPUの負担を軽減する演算機能等を割り当てることも可能である。機能再構成メモリと一緒に半導体装置に搭載される回路は図2に限定されず、半導体集積回路の機能や用途に応じて適宜変更可能である。半導体装置はシングルチップに限定されず、マルチチップをモジュール基板に搭載して封止したシステム・イン・パッケージのような半導体装置にも適用することができる。クロック発生制御、クロックイネーブル制御が付加された機能再構成セルはPWMやカウンタ以外の種々の回路機能の実現に広く適用することができる。
【0221】
本発明は可変論理モジュールを備えた半導体データ処理装置等の半導体装置に広く適用することができる。
【図面の簡単な説明】
【0222】
【図1】図1は機能再構成セルの一例を示すブロック図である。
【図2】図2は本発明の一例に係るデータプロセッサを全体的に示すブロック図である。
【図3】図3は複数の機能再構成セルのアレイ構成を例示するブロック図である。
【図4】図4は機能再構成メモリの全体的な構成を例示するブロック図である。
【図5】図5は図4とは異なる演算回を有する機能再構成メモリの全体的な構成を例示するブロック図である。
【図6】図6は機能再構成セルと経路選択回路のアドレスマッピングを例示するアドレスマップである。
【図7】図7は機能再構成セルにおける論理動作の基本概念を示す説明図である。
【図8】図8は図7の内部シーケンスを例示するフローチャートである。
【図9】図9は機能再構成セルでリロード型ダウンカウンタを構成する場合の例が示すブロック図である。
【図10】図10は2個の機能再構成セルでリロード型ダウンカウンタを構成する場合の例を示すブロック図である。
【図11】図11は図9の(A)の構成で3ビットカウンタを構成する場合の例を示すデータ例である。
【図12】図12は図11による3ビットカウンタ動作の動作シーケンスを例示するフローチャートである。
【図13】図13は図7の論理動作基本概念図に対応する具体的な動作例を示す動作説明図である。
【図14】図14は3ビットカウンタを夫々構成する機能再構成セルを接続選択回路で接続して6ビットカウンタを構成する例を示すブロック図である。
【図15】図15はCPUによる機能再構成メモリのアクセス形態を例示する説明図である。
【図16】図16は図5の演算回路の全体の構成を概略的に示す図である。
【図17】図17は図5の演算回路に使用可能なメモリセルの断面構造を概略的に示す図である。
【図18】図18は図17に示すメモリセルMCI、MCJおよびMCKの電気的等価回路を示す図である。
【図19】図19は可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。
【図20】図20は図5の演算回路のメモリセルのアレイ内配置を概略的に示す図である。
【図21】図21はメモリセルMCIの記憶データの組み合わせを一覧にして示す図である。
【図22】図22はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図23】図23は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCIの記憶状態との対応を一覧にして示す図である。
【図24】図24はメモリセルMCIおよびMCJの記憶データの組み合わせを一覧にして示す図である。
【図25】図25はデータ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。
【図26】図26はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図27】図27は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCIおよびMCJの記憶状態との対応を一覧にして示す図である。
【図28】図28は図5の演算回路に係る電流検出型センスアンプの構成の一例を示す図である。
【図29】図29はメモリセルMCI、MCJおよびMCKの記憶データの組み合わせを一覧にして示す図である。
【図30】図30はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図31】図31は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCI、MCJおよびMCKの記憶状態との対応を一覧にして示す図である。
【図32】図32は図5の演算回路を用いて行なうLUT演算を例示する図である。
【符号の説明】
【0223】
1 データプロセッサ
2 中央処理装置(CPU)
4 ランダム・アクセス・メモリ(RAM)
5 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
SBUS システムバス(第1バス)
6 バス・ステート・コントローラ(BSC)
PBUS 周辺バス(第2バス)
8 機能再構成メモリ(RCFGM)
16 割込みコントローラ(INTC)
20 機能再構成セル(ACMU)
21 インタフェース制御回路(IFCNT)
23 記憶回路(MRY)
24 制御回路(MCONT)
25 スタティック・ランダム・アクセスメモリ(SRAM)
26 アドレスラッチ回路(ADRLAT)
27 メモリアレイ27
28 アドレスデコーダ(SDEC)
29 タイミングコントローラ(TMCNT)
27_D データフィールド(DFLD)
27_C 制御フィールド(CFLD)
30 セレクタ(ADRSL)
31 アドレスインクリメンタ(ICRM)
32 アクセス制御デコーダ(ACDEC)
DAT_C 制御情報
EXEVT 外部イベント信号
RDMAE_j ランダムアクセス選択信号
IOAE_j IOアクセス選択信号
RW_j リード/ライト信号
LOGE_j ロジックイネーブル信号
35 接続経路選択回路
IBUS_i 内部バス
IABUS_i 内部アドレスバス
IDBUS_i 内部データバス
36 スイッチ回路
37 接続用記憶回路
40 バスインタフェース回路(BUSIF)
41 アドレスデコーダ(ADEC)
42 内部バス選択回路(IBSL)
AA1 第1のアドレス範囲
AA2 第2のアドレス範囲
AA3 第3のアドレス範囲
50(50_1,50_2) 演算回路
51 演算制御部
52 演算ロジック部
53 メモリ部
54 演算制御部
55 演算ロック部
【技術分野】
【0001】
本発明は記憶回路を用いて可変可能に論理機能を実現することができる半導体装置に関し、例えばプログラマブルに周辺機能を実現することができる可変論理モジュールを備えた半導体データ処理装置に適用して有効な技術に関する。
【背景技術】
【0002】
可変論理モジュール若しくは可変論理デバイス(リコンフィギュラブルデバイス)としてPLD(プログラマブル・ロジック・デバイス)若しくはFPLD(フィールドPLD)が既に利用されている。代表的なPLDとしてはFPGA(フィールド・プログラマブル・ゲート・アレイ)などのプログラマブル・デバイスがある。FPGAはルックアップ・テーブルを基本にしてそれにフリップフロップを併せ持たせたCLB(コンフィギャラブル・ロジック・ブロック)をMOSスイッチでプログラマブルに接続させて大規模ロジックを構成するものである。FPGAは基本的に書き換え可能な論理回路と可変スイッチ回路を持たせた素子である。特許文献1にはFPGAについて記載がある。FPGAの基本である論理回路は例えば4入力のLUT(ルック・アップ・テーブル)で構成され、最終段にF/F(フリップ・フロップ)を有し、それを2段2層の論理構造で持っている。これをCLBと呼んでいる。例えば、1メガ(M)ゲート相当でプログラマブルに論理を構成するためには1キロ(k)以上のCLBを集合させ、このCLBの論理情報をSRAM(スタティック・ランダム・アクセス・メモリ)に持たせて書き換え可能にしている。これらのCLBはお互いの接続をプログラマブルにする為にスイッチマトリックスを有している。そのスイッチは方向性を持たせる為に、6MOSのスイッチMOSで構成され、このスイッチMOSのオン/オフ制御情報もSRAMに持たせているので、1Mゲート相当に対して1.7Mビット程度の情報量が必要である。また、特許文献2にはメモリに所定の真理値データを格納させることによって任意の論理を構成可能な複数の可変論理回路をマトリクス状に配置し、それらをX、Y方向の配線に可変スイッチ回路で可変可能に接続するようにした半導体装置について記載がある。
【0003】
【特許文献1】特開平04−242825号公報
【特許文献2】特開2003−149300号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上記FPGAに代表されるように多数のCLBをスイッチマトリクスを用いて接続することによって可変論理モジュールを構成する場合には、必要な論理規模の増大にしたがってCLBの数やスイッチマトリクスのスイッチ素子が多くなり、実装面積の改善に限界のあることが本発明者によって見出された。すなわち、複雑な論理やシーケンスをプログラムする場合には必要な論理規模に比例して多数のスイッチマトリクスを用いて多数のCLBの接続を設定しなければならない。SRAMに論理構成用の真理値データを格納するとき、SRAMからリードした真理値データを単に論理構成のためのスタティックな情報としてしか利用しない場合には、必要な論理規模に比例してSRAMの記憶容量を増大しなければならない。また、従来技術においては、可変論理モジュールの論理構成をダイナミックに書き換えること、そして、周辺回路のような実回路に可変論理モジュールを適用することについて何ら着眼されていない。
【0005】
本発明の目的は、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【0006】
本発明の別の目的は、小さなチップ占有面積で可変論理機能を実現可能であって、可変論理に対する機能設定の負担を部分的に軽減することができる半導体装置を提供することにある。
【0007】
本発明の更に別の目的は、論理機能をダイナミックに再構成することが容易であって、一部の再構成にかかる負担を軽減することができる半導体装置を提供することにある。
【0008】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【0010】
本発明に係る半導体装置は、可変論理機能を実現するためにそれぞれ記憶回路と制御回路を有する複数の機能再構成セルと、演算回路を備え、真理値データを格納する記憶回路の読み出しアドレスを機能再構成セルそれ自体で自律的に制御する。例えば前記制御回路は記憶回路のデータフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とする。前記機能再構成セルはアクセス要求主体からのアクセス要求に応答するインタフェース制御回路の制御を受ける。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0011】
上記より、真理値データを格納する記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【0012】
また、前記記憶回路に対するランダムアクセス用のアドレスマッピングに対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレスマップを個別化する。これにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。特に、機能再構成セルに周辺機能が設定される場合、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を考慮する場合には、アクセス要求主体からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路と、機能設定された機能再構成セルへのアクセス経路とを分離すればよい。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0014】
すなわち、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができると共に、可変論理に対する機能設定の負担を部分的に軽減することができる。
【発明を実施するための最良の形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕本発明の代表的な実施の形態に係る半導体装置は、記憶回路(23)と制御回路(24)を有する複数の機能再構成セル(20)と、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路(40,41,42)と、演算回路(50_1,50_2)とを備える。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールド(DFLD)と制御フィールド(CFLD)を有する。前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能である。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0017】
上記より、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができるから、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。演算回路機能の全てを機能再構成セルに負担させずに、前記データフィールドから出力される演算制御データをデコードして演算を行う前記演算回路を備えるから、可変論理に対する機能設定の負担を部分的に軽減することができる。
【0018】
〔2〕項1の半導体装置において、例えば前記制御回路は前記次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する。
【0019】
〔3〕項2の半導体装置において、前記演算回路(50_1)は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部(52)と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部(51)とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0020】
〔4〕項2の半導体装置において、前記演算回路(50_2)は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部(53)と、メモリ部から読み出されたデータを演算する演算ロジック部(55)と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部(54)とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0021】
〔5〕本発明の別の実施の形態に係る半導体装置は、上記同様の複数の機能再構成セル、インタフェース制御回路、及び演算回路を有し、特に、前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。この構成においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項1と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【0022】
〔6〕項5の半導体装置は、一つの具体的な形態として、前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタ(30、32)を有する。
【0023】
〔7〕項6の半導体装置において、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である。
【0024】
〔8〕項7の半導体装置において、前記制御回路は前記アドレス演算を行うアドレス演算器(31)を有し、アドレス演算器の出力は前記セレクタの入力に接続され、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される。
【0025】
〔9〕項8の半導体装置において、前記複数個の機能再構成セルの記憶回路は、半導体装置のメモリ空間に割り当てられたアドレス範囲とIO空間に割り当てられたアドレス範囲との両方にアドレスがマッピングされる。前記インタフェース制御回路は、メモリ空間に割り当てられた第1のアドレス範囲(AA1)に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第1のアドレス範囲のアドレスを指定するメモリアクセスによって記憶回路に書き込みを行って機能再構成セルの論理構成を定義することができる。
【0026】
〔10〕項9の半導体装置において、前記インタフェース制御回路は、IO空間に割り当てられた第2のアドレス範囲(AA2)に対するライトアクセス要求に応答して当該アドレスの制御回路での処理に必要な情報を書き込むことが出来る。同様にリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す。これにより、アクセス要求主体は論理機能が設定された機能再構成セルによる論理動作に必要な情報を第2のアドレス範囲のアドレスを指定するライトアクセスによって供給し、論理動作の結果を第2のアドレス範囲のアドレスを指定するリードアクセスによって任意に取得することができる。
【0027】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【0028】
〔11〕項10の半導体装置は、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路(35)を更に有する。複数の機能再構成セルを直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。
【0029】
〔12〕項11の半導体装置において、前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路(36)と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路(37)とを有する。複数の機能再構成セル間でそれぞれの自律制御を連関させることが可能になる。
【0030】
〔13〕項12の半導体装置において、前記接続用記憶回路にはメモリ空間に割り当てられた第3のアドレス範囲(AA3)がマッピングされる。このとき、前記インタフェース制御回路は、第3のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をメモリとしてアクセス可能とする。これにより、アクセス要求主体は第3のアドレス範囲のアドレスを指定するランダムアクセスにより接続用記憶回路に書き込みを行って機能再構成セル間の接続を任意に定義することができる。
【0031】
〔14〕項5の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0032】
〔15〕項5の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0033】
〔16〕本発明の更に別の実施の形態に係る半導体装置は、アクセス要求主体となり得るロジック回路(2,5)と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリ(8)とを有する。ロジック回路は例えば中央処理装置とされる。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを備える。前記記憶回路は半導体装置のアドレス空間のうち、メモリ空間にマッピングされたアドレス範囲とIO空間にマッピングされたアドレス範囲とがマッピングされる。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0034】
この半導体装置においても、記憶回路の読み出しを機能再構成セルそれ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。項1と同様に、演算回路機能の全てを機能再構成セルに負担させずに済む。
【0035】
〔17〕項16の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0036】
〔18〕項16の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0037】
〔19〕本発明の更に別の実施の形態に係る半導体装置は、中央処理装置と、前記中央処理装置が接続される第1内部バスと、前記第1内部バスにバスステートコントローラを介して接続される第2内部バスと、前記第1内部バス及び第2内部バスに接続される機能再構成メモリとを備える。前記機能再構成メモリは、記憶回路と制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路を有する。前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有する。前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能である。前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する。前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う。
【0038】
〔20〕項19の半導体装置において、前記複数個の機能再構成セルの記憶回路には半導体装置のメモリ空間において第1のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第1バスからの第1のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする。これにより、前記中央処理装置は前記機能再構成セルの記憶回路を前記第1バスを介して接続されるメモリ装置(例えばSRAMアレイ)としてアクセス可能となり、前記第1バスを介して機能再構成メモリにライトアクセスを要求して第1のアドレス範囲のアドレスと書き込むべきデータを出力することで、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を設定することができる。前記第1バスはアドレス専用のバス配線とデータ専用のバス配線とが物理的に分離して存在するものであっても、同一のバス配線を時分割に用い分けるものであっても良い。
【0039】
〔21〕項20の半導体装置において、前記複数個の機能再構成セルには半導体装置のIO空間において第2のアドレス範囲のアドレスがマッピングされる。このとき、前記インタフェース制御回路は、前記第2バスからの第2のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する。これにより、前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードすることができる。
【0040】
前記第2のアドレス範囲にマッピングされた前記複数個の機能再構成セルには、前記中央処理装置は前記第2バスを介して接続されるIO装置としてアクセス可能とされる。
【0041】
〔22〕項21の半導体装置において、前記接続用記憶回路には半導体装置のメモリ空間に第3のアドレス範囲のアドレスがマッピングされる。前記インタフェース制御回路は、前記第1バスからの第3のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする。
【0042】
〔23〕項22の半導体装置は、前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第3のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定することができる。
【0043】
〔24〕項23の半導体装置において、前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第1のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する。
【0044】
〔25〕項24の半導体装置において、前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする。
【0045】
上述のように、前記記憶回路と接続用記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲と第3のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなリードアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セル及び接続選択回路に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。さらに、中央処理装置からインタフェース制御回路に対する機能再構成セルへの機能設定用アクセス経路(第1バス)と、機能設定された機能再構成セルへのアクセス経路(第2バス)とが分離されるから、機能再構成セルに周辺機能を設定して利用する場合には、中央処理装置等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【0046】
〔26〕項19の半導体装置において、前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶と演算制御の双方にデータフィールドを用いることができる。
【0047】
〔27〕項19の半導体装置において、前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する。演算データの一時的な記憶には機能再構成セルとは別のメモリ部を割当てることが可能になる。
【0048】
〔28〕 項1、項5、項16、又は項19記載の半導体装置において、前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶回路に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。
【0049】
〔29〕項29の半導体装置において、前記所定の指示は、先に前記制御フィールドから読み出された情報を用いて前記制御フィールド及びデータフィールドの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【0050】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0051】
図2には本発明の一例に係るデータプロセッサ1が例示される。同図に示されるデータプロセッサは、特に制限されないが、相補型MOS集積回路製造技術により単結晶シリコンのような1個の半導体基板に形成されている。
【0052】
データプロセッサ1はプログラムに従って命令をフェッチして実行する中央処理装置(CPU)2、CPU2が実行するプログラム等が格納されたリード・オンリ・メモリ(ROM)3、CPU2のワーク領域等に用いられるランダム・アクセス・メモリ(RAM)4、及びCPU2による初期設定に従ってデータ転送を制御するダイレクト・メモリ・アクセス・コントローラ(DMAC)5を有し、それらはシステムバス(第1バス)SBUSに接続される。システムバスSBUSはバスステートコントローラ(BSC)6を介して周辺バス(第2バス)PBUSに接続する。システムバスSBUSはCPU2の動作周波数に同期してデータ、アドレス及びバスコマンド等が伝送される高速バスとして位置付けられる。これに対して、周辺バスPBUSは動作速度の遅い周辺回路が接続され、データ等が低速で伝送される。CPU2等が周辺回路に対するアクセス要求を発行すると、BSC6はそのアクセス要求に係る周辺回路のマッピングアドレスに応じて、周辺バスを介するアクセスに必要なバスサイクル数や並列データビット数等のバス制御を行う。
【0053】
前記システムバスSBUSと周辺バスPBUSの双方には機能再構成メモリ(RCFGM)8が接続される。機能再構成メモリ8はCPU2等によりシステムバスSBUSから書き込まれた論理機能設定情報(コンフィグレーション情報)に従って可変可能に論理機能が設定され、設定された論理機能に対して周辺バスPBUS経由でデータの入出力が可能にされる。
【0054】
周辺バスPBUSに接続された周辺回路として、ディジタル信号をアナログ信号に変換して外部に出力するディジタル・アナログ・コンバータ(DAC)10、CPU2の命令実行状態等を監視するウォッチドッグタイマ(WDT)11、インプットキャプチャ及びコンペアマッチ等のタイマ・カウンタ動作可能なタイマ(TMR)12、シリアルコミュニケーションインタフェースコントローラ(SCI)13、パルス幅変調回路(PWM)15、及び割込みコントローラ(INTC)16が例示される。同図には割込み信号としてINTa,INTbが代表的に示され、割込みコントローラ16は割込み信号に対する割り込みマスク制御や優先レベル制御を行って割込み信号を受け付け、受け付けた割込み信号に応ずるベクタを発行すると共に、CPU2に割込み要求信号IRQを発行し、前記ベクタが示す割込み処理プログラムをCPU2に実行させる。周辺回路として、その他に図示を省略するIOポート等が設けられている。
【0055】
機能再構成メモリ8は複数の機能再構成セル(ACMU)20、及び外部からのアクセス要求に応答して前記機能再構成セル20を制御するインタフェース制御回路(IFCNT)21、演算回路(ARTMT)50(50_1,50_2)等を備える。機能再構成セル20はCPU2等によりシステムバスSBUSから書き込まれたコンフィグレーション情報に従って可変可能に論理機能が設定される。図2において複数の機能再構成セル20の一部には、FIFOバッファ(FIFO_B)、16ビットパルス幅変調回路(PWM_16b)、8ビットパルス幅変調回路(PWM_8b)、シリアル送信ユニット(SCI_Tx)、シリアル受信ユニット(SCI_Rx)、及び24ビットタイマ(TMR_24b)の論理機能が設定されている。残りの機能再構成セル20はシステムバスSBUSを介してランダムアクセス可能な内部メモリ(ITNR_RAM)として利用可能にされる。設定された論理動作に用いるデータの書込み、論理動作の開始の指示、及び論理動作結果のデータリードは周辺バスPBUS経由で行われる。演算回路50は、演算機能がハードウェアによってある程度限定され、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに、可変論理に対する機能設定の負担を部分的に軽減している。
【0056】
図1には機能再構成セル20の一例が示される。機能再構成セル20は記憶回路(MRY)23と制御回路(MCNT)24を有する。記憶回路23は例えばシングルポートのスタティック・ランダム・アクセスメモリ(SRAM)25と、アドレスラッチ回路(ADRLAT)26によって構成される。SRAM25はメモリアレイ27、アドレスデコーダ(SDEC)28、及びタイミングコントローラ(TMCNT)29を備える。メモリアレイ27はアドレスラッチ回路26から供給されるアドレス信号によってアクセスされるデータフィールド(DFLD)27_Dと制御フィールド(CFLD)27_Cを有する。アドレスデコーダ(SDEC)28はアドレスラッチ回路(ADRLAT)26から出力されるアドレス信号をデコードして、データフィールド(DFLD)27_D及び制御フィールド(CFLD)27_Cの夫々からアクセス単位のメモリセルを選択する。タイミングコントローラ(TMCNT)29は選択されたアクセス単位のメモリセルに対してリード・ライト信号RW_j(j=0〜m)で指示されたリード動作又はライト動作を制御する。
【0057】
制御回路24はアドレスラッチ回路26にアドレス信号を供給するセレクタ(ADRSL)30、アドレスラッチ回路26がラッチしたアドレス信号を+1づつインクリメントするアドレスインクリメンタ(ICRM)31、及びアクセス制御デコーダ(ACDEC)32を有する。セレクタ30には、データフィールド27_Dから読み出された情報DAT_D、アドレスインクリメンタ31の出力、及びバスSBUS,PBUSから供給されたアクセスアドレス情報の一部のアドレス情報ADR_EXTが入力される。アクセス制御デコーダ32には制御フィールド27_Cから読み出された制御情報DAT_C、外部イベント信号EXEVT、当該機能再構成セル20に対するランダムアクセス選択信号RDMAE_j、ロジックイネーブル信号LOGE_j、及びIOアクセス選択信号IOAE_jが供給され、それに基づいてセレクタ30の出力動作等を制御する。メモリアレイ27には図示しないアドレスフィールド(AFLD)とアドレスフィールドの出力をセレクタ30への入力とするパス(DAT_A)を更に有し、メモリアレイ27にアクセスしアドレスフィールドからの出力をアクセス制御デコーダによりメモリアレイ27の次のアクセスアドレスとすることも可能である。
【0058】
ランダムアクセス選択信号RDMAE_jがアクティブにされたときアクセス制御デコーダ32はセレクタ30にアドレス情報ADR_EXTを選択させ、そのアドレス情報ADR_EXTに従ってタイミングコントローラ29にリード/ライト信号RW_jに従ったアクセス動作を指示する。これによってSRAM25はアドレス情報ADR_EXTで指定されるアドレスに対してランダムアクセス可能になる。
【0059】
IOアクセス選択信号IOAE_jがアクティブにされ、リード/ライト信号RW_jによりリード動作が指示されたとき、アクセス制御デコーダ32はそのときのアドレスラッチ回路26のアドレスラッチ状態を維持したままそのラッチアドレス情報に従ってタイミングコントローラ29にリードアクセス動作を指示する。これにより、機能再構成セル20のIOアクセス選択信号IOAE_jがアクティブにされると、そのときSRAM25で選択されている記憶領域に対してアクセス可能になり、SRAM25に対して一つのメモリマップドIOデータレジスタに対する読出しと等価なアクセス動作が可能になる。また、IOアクセス選択信号IOAE_jがアクティブにされ、リード・ライト信号RW_jによりライト動作が指示されたとき、アクセス制御デコーダ32はアドレス情報ADR_EXTをアドレスセレクタ30に選択させ、そのアドレス情報ADR_EXTをアドレスラッチ26にセットして、SRAM25に対する読出しアドレスを初期設定することができる。このように、IOアクセス選択信号IOAE_jがイネーブルにされたとき書込み対象とされるアドレスラッチ回路26は書込み対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをスタートアドレス設定用等価IOレジスタと称する。また、IOアクセス選択信号IOAE_jがイネーブルにされたとき読出し対象とされるSRAMのメモリ領域は読出し対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをデータリード用等価IOレジスタと称する。
【0060】
ロジックイネーブル信号LOGE_jがアクティブにされたとき、アクセス制御デコーダ32はそのときアドレスラッチ26が保持しているアドレスをスタートアドレスとして、そのアクティブ期間にSRAM25のメモリリードサイクルを繰り返し起動し、サイクル毎に、制御フィールド27_Cから読み出される制御情報DAT_Cに従ってセレクタ30の選択動作を制御する。外部イベント信号EXEVTがイネーブルにされたとき、アクセス制御デコーダ32は当該メモリリードサイクルにおいてアドレスセレクタ30に特定のアドレス(例えばSRAM25の先頭アドレス)を出力させる。ロジックイネーブル信号LOGE_jがイネーブルにされたときスタートアドレスを保持するアドレスラッチ26はロジック動作の開始を指示するイネーブルビットの書込み対象とされるメモリマップドIOレジスタと等価のレジスタとして把握することができる。この等価レジスタをロジックイネーブル用等価IOレジスタと称する。
【0061】
この機能再構成セル20によれば、記憶回路23の読み出しを機能再構成セル20それ自体で自律的に制御することができる。例えば、前記制御回路24はSRAM25の次の読出しアドレスを先にSRAM25から読出した制御フィールドCFLDの情報DAT_Cやアクセス制御デコーダ32に供給される外部イベント信号EXEVTの入力に基づいて自律的に制御することが可能である。これにより、可変論理機能を実現するための記憶回路23を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を得ることができ、また、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【0062】
また、機能再構成セル20の制御回路24は、外部からインタフェース制御回路21に与えられるロジックイネーブルのための指示に基づいて、前記記憶回路23のメモリアレイ27に対するライトプロテクションを行う。これにより、論理機能を実現するために一旦記憶部に設定されたデータがランダムアクセスによって誤って消去又は書き換えされる虞を未然に防止することができる。ロジックイネーブルのための指示は、先にメモリアレイ27から読み出した制御フィールド27_Cの情報を用いて前記メモリアレイの次の読み出しアドレスを決める動作を行う指示である。設定された論理機能を実行する動作が指示されたとき、その論理機能が不所望に変更されることはない。
【0063】
図3には複数の機能再構成セル20のアレイ構成が例示される。複数の機能再構成セル20はマトリクス配置され、左右に隣接する機能再構成セル20の間には接続経路選択回路(RSW)35が配置される。機能再構成セル20及び接続経路選択回路35は行単位で内部バスIBUS_i(i=0,1,…)に接続される。内部バスIBUS_iはアドレスバスIABUS_iとデータバスIDBUS_iに大別される。内部アドレスバスIABUS_iは制御回路24に前記アドレスADR_EXTを供給する。内部データバスIDBUS_iは記憶回路23との間で情報DAT_C,DAT_Dを伝達するために用いられる。接続経路選択回路35は、機能再構成セル20のデータDAT_C,DAT_Dの伝達経路を上下又は左右に隣接する機能再構成セル20、もしくは対応行の内部データバスIDBUS_iの間で選択的に接続するスイッチ回路36と、前記スイッチ回路36のスイッチ制御情報を保持するための接続用記憶回路37とを有する。接続用記憶回路37は内部バスIABUS_i,IDBUS_iを介してランダムアクセスされることによってスイッチ回路36のための所要のスイッチ制御情報が設定される。記憶回路23に対するランダムアクセスが指示されたときは、接続用記憶回路37の設定内容にかかわらず、スイッチ回路36は、ランダムアクセス選択信号RDMAE_jにより、ランダムアクセス対象にされる記憶回路23を内部データバスIDBUS_iに接続するように制御される。
【0064】
一の機能再構成セル20のデータDAT_C,DAT_Dを他の機能再構成セル20のデータDAT_C,DAT_Dに伝達することが可能であるから、複数の機能再構成セル20間でそれぞれの前記自律制御を連動させることが可能になる。複数の機能再構成セル20を直列的に動作させ、あるいは並列的に動作させて、一単位の論理機能を実現することが可能になる。具体例は後で詳述する。
【0065】
機能再構成セル20の記憶回路23には論理機能を定義するためのコンフィギュレーション情報がランダムアクセス設定され、接続経路選択回路35の接続用記憶回路37には接続経路を定義するためのコンフィグレーション情報がランダムアクセスによって設定される。論理機能が設定された機能再構成セル20に論理動作の開始が指示されると、その論理動作によって得られる情報は左右又は上下に配置された別の機能再構成セル20に接続経路選択回路35を介して伝達可能にされ、また、機能再構成セル20の論理動作による情報は前記メモリマップドIOレジスタに対する読出しと等価なアクセス動作により対応するバスIBUS_iを介して外部に読み出し可能にされる。
【0066】
図4には機能再構成メモリ8の全体的な構成が例示される。バスSBUS,PBUSからのアクセス要求に応答して、図3で説明した複数個の機能再構成セル20と接続経路選択回路35のアレイに対する制御を行うインタフェース制御回路として、バスインタフェース回路(BUSIF)40、アドレスデコーダ(ADEC)41、及び内部バス選択回路(IBSL)42を有する。
【0067】
前記複数個の機能再構成セル20の記憶回路23のメモリエリア(SRAM25の記憶領域)には図6に例示されるように、第1のアドレス範囲AA1のアドレスがマッピングされる。第1のアドレス範囲AA1はシステムバスSBUSに接続するメモリ空間の一部のアドレス空間とされる。また、前記夫々の機能再構成セル20のための等価的なメモリマップドIOレジスタとして把握することができる前記スタートアドレス設定用等価IOレジスタ、データリード用等価IOレジスタ及びロジックイネーブル用等価IOレジスタには第2のアドレス範囲AA2のアドレスがマッピングされる。図6において1個の機能再構成セルにおけるSRAMのアドレスは256ワード分のアドレスとされ、1個の機能再構成セルにおける前記3個の等価的なメモリマップドIOレジスタのアドレスは3ワード分のアドレスとされる。第2のアドレス範囲AA2は周辺バスPBUSに接続される周辺回路のレジスタ等に割り当てられるメモリマップドIOアドレス空間の一部のアドレス空間とされる。前記接続用記憶回路37の記憶領域には第3のアドレス範囲AA3のアドレスがマッピングされる。第3のアドレス範囲AA3はシステムバスSBUS若しくは周辺バスPBUSに接続するメモリ空間の一部のアドレス空間とされる。
【0068】
バスステートコントローラ6は、第1又は第3のアドレス範囲AA1,AA3へのアクセス要求があったときデータプロセッサのアドレス空間中のメモリアドレス空間へのアクセスとしてアクセス制御を行い、第2のアドレス空間AA2へのアクセス要求があった時はデータプロセッサのアドレス空間中のIOアドレス空間へのアクセスとしてアクセス制御を行う。第1乃至第3のいずれのアドレス範囲へのアクセスであったとしても機能再構成メモリ8のバスインタフェース回路40がアクセスの受付をする。第1又は第3のアドレス範囲AA1,AA3へのアクセス要求があったときはバスインタフェース回路40はメモリウインドウイネーブル信号CMEをアクティブとし、第2のアドレス範囲AA2のアクセス要求があったときバスインタフェース回路40はロジックウインドウイネーブル信号CREをアクティブとする。アクセス要求に係るデータの方向はアクセス要求元から発行されるリード信号RD及びライト信号WTによって判別される。尚、メモリウインドウイネーブル信号CME及びロジックウインドウイネーブル信号CREは例えばアドレスデコーダ41に供給される。
【0069】
アドレスデコーダ41はアクセス要求に係るアドレス信号の上位側ビットをデコードして、アレイ状に配置された機能再構成セル20と接続経路選択回路35のうち何れの回路が指定されているかを判別する。接続経路選択回路35が指定されているときは当該回路の接続用記憶回路37をイネーブルとし、対応する内部バスIBUS_iをバス選択回路42に選択させてシステムバスSBUSに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路37をランダムアクセス可能にする。これにより、CPU2等は第3のアドレス範囲AA3のアドレスを指定するランダムアクセスにより接続用記憶回路37に書き込みを行って機能再構成セル20間の接続を任意に定義することができる。
【0070】
また、アドレスデコーダ41は、アドレスデコードにより、アドレス範囲AA1のアドレスにより機能再構成セル20が指定されていることを判別したときは、当該機能再構成セルに割り当てられたRDMAE_jをアクティブとし、対応する内部バスIBUS_iをバス選択回路42に選択させてシステムバスSBUSに接続し、そのアクセス要求に伴うアドレス信号の下位側アドレス情報を用いて当該接続用記憶回路37をランダムアクセス可能にする。これにより、CPU2等は第1のアドレス範囲AA1のアドレスを指定するランダムアクセスによって記憶回路23のSRAM25に書き込みを行って当該機能再構成セル20の論理構成を任意に定義することができる。
【0071】
アドレスデコーダ41は、アドレスデコードにより、アドレス範囲AA2のアドレスにより機能再構成セル20の前記等価的なメモリマップドIOレジスタが指定されていることを判別したときは、指定された等価的なメモリマップドIOレジスタに応じて、IOAE_j又はLOGE_jをアクティブとし、リード・ライト信号RW_jを生成する。
【0072】
即ち、そのとき、周辺バスPBUSから前記スタートアドレス設定用等価IOレジスタを指定してライト信号WTにより書き込み動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたIOAE_jをアクティブとする。更に、リード・ライト信号RW_jによってライト動作を指定する。これによって当該機能再構成セル20のADRSEL30を経由してADRLAT26に書き込みデータがセットされる。
【0073】
また、そのとき、周辺バスPBUSから前記ロジックイネーブル用等価IOレジスタを指定してリード信号RDにより読み出し動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたLOGE_jをアクティブとする。更に、リード・ライト信号RW_jによってリード動作を指定する。これによって当該機能再構成セル20のアクセス制御デコーダ32はそのときアドレスラッチ26が保持しているアドレスをスタートアドレスとしてそのアクティブ期間にSRAM25のメモリリードサイクルを繰り返し起動し、サイクル毎にデータフィールド27_Dから読み出されるデータ情報DAT_Dをセレクタに帰還させ、サイクル毎に、制御フィールド27_Cから読み出される制御情報DAT_Cに従ってセレクタ30の選択動作を制御して、論理動作を実現する。
【0074】
また、そのとき、周辺バスPBUSから前記データリード用等価IOレジスタを指定してリード信号RDにより読み出し動作が指示されたとき、アドレスデコーダ41はそのアクセス要求に伴うアドレス信号の下位側アドレス情報で指定される機能再構成セル20に割り当てられたIOAE_jをアクティブとする。更に、バスインタフェース回路40はリード・ライト信号RW_jによってリード動作を指定する。これによって当該機能再構成セル20のADRLAT26が保持しているアドレス情報によって選択されるSRAM25の記憶領域からリードされる情報をバスインタフェース回路40が受け取って周辺バスPBUSにリードデータとして出力する。これにより、CPU2等は論理機能が設定された機能再構成セル20による論理動作の結果を第2のアドレス範囲AA2のアドレスを指定するリードアクセスによって任意に取得することができる。バスインタフェース回路40は論理動作の結果の一つとして論理動作完了のような要求を認識すると、割り込み信号を割り込みコントローラ16に供給することができる。これによる割り込みが与えられたCPU2は例えば前記データリード用等価IOレジスタに対するリード動作を指定することによって当該論理動作を終了した機能再構成セル20から論理動作の結果を取得する動作ルーチンに移行したりすることが可能になる。
【0075】
上述のように、前記記憶回路に対するランダムアクセス用のアドレスマッピング(第1のアドレス範囲)に対し、機能設定された機能再構成セルによる論理動作結果を取得するために機能再構成セルに割り当てたメモリマップドI/Oアドレスのようなアドレス(第2のアドレス範囲のアドレス)を個別化することにより、機能再構成セルに対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレスに変更を生ぜず、機能再構成セルに対する論理機能をダイナミックに再構成することが容易になる。
【0076】
機能再構成セル20における論理動作の基本概念が図7に示される。制御回路24は条件COND=1で外部アドレスADR_EXTであるアドレスYを記憶回路23のアクセスアドレスとし、条件COND=0の間は、制御情報DAT_Cで決まる内部シーケンスにしたがってデータ情報DAT_Dで指定されるアドレスによって記憶回路23をアクセスする。図8に例示されるように、内部シーケンスにしたがって処理Aを行っているとき、条件COND=0の間は内部シーケンスで規定されるデータ情報DAT_Dにより指定されるアドレスに応じて処理Bに分岐することが可能であり、また、条件COND=1の時に外部アドレスADR_EXTで指定される処理Cに分岐することも可能である。ここで、前記条件CONDは、前記CPU2などによる機能再構成メモリ8に対するアクセス形態によって決まる条件、更には、前記制御情報DAT_Cで決まる条件として把握すればよい。
【0077】
機能再構成セル20でリロード型ダウンカウンタを構成する場合の例が図9に示される。ここではTYPE、CFLAGは制御情報DAT_Cに含まれるものとする。図9の(B)には記憶回路23の保持情報が例示される。DataはデータフィールドDFLDの情報、addressはアドレスラッチ回路26に供給されるアドレス情報を意味する。例えば、CFLAG=1(COND=1)のとき外部アドレスADR_EXTとして“0110”が入力されると、これをアドレスとしてCFLAG=0、Data=“0101”が読み出され、読み出されたデータが次の読み出しアドレスとされ、以下同様の動作がCFLAG=1になるまで繰り返される。この間に出力されるデータ情報DAT_Dは“1010”から“0000”までのダウンカウント値とされる。COND=1のとき再度、カウント初期値をリロードしてダウンカウントを繰り返すことができる。図9の(C)には前記ダウンカウント動作におけるフローチャートが例示される。
【0078】
2個の機能再構成セル20でリロード型ダウンカウンタを構成する場合の例が図10に示される。下位バイトの出力データDAT_Dの全ビットがオール“0”になったとき、CFLAGを上位バイトの機能再構成セル20の制御回路に与えて上位バイトの動作を開始させる。上位バイトの出力データDAT_Dの全ビットがオール“0”になったときマルチバイトのダウンカウントが完了され、再度、下位バイトのカウント初期値をリロードすることによってマルチバイトのダウンカウントを再開することができる。
【0079】
図9の(A)の構成で3ビットカウンタを構成する場合の例を図11に示す。図11の(A)にはSRAMの記憶データが例示される。同図に示されるNext Address欄はアドレスラッチ回路26の値を意味する。最後に示された[Reg]はCFLAG=1によって外部から任意にアドレスが設定可能であることを意味する。図12には図11による3ビットカウンタ動作の動作シーケンスを例示する。ステップS11−1においてNにアドレスの初期値として“000”を設定し、ステップS11−2においてアドレス”000“のNext Addressフィールドに格納されている値”111“をNの値として設定し、ステップS11−3においてアドレス”111“のCFLAGフィールドに格納されている値”0“を判定する。以降、ステップS11−2とS11−3とをCFLAGフィールドの値が”1“になるまで繰り返す。この繰り返しの過程においてアドレスNのDataフィールドの値は値”111“から”000“までの1ダウンカウンタとして出力される。
【0080】
図6の論理動作基本概念図に対応する具体的な動作例が図13に示される。外部トリガとして、例えば前記スタートアドレス設定用等価IOレジスタの指定によって初期アドレス値として “111”がアドレスラッチ26に入力される(S1)。次いで、ロジックイネーブル用等価IOレジスタの指定によって、アドレスラッチ26のアドレス情報がSRAM25に供給開始されることにより論理動作が起動される(S2)。これにより、そのアドレスで指定されたデータフィールドDFLDからデータ情報DAT_Dとして“110”がセレクタ30に供給され(S3)、また、制御フィールドCFLDから制御情報DAT_Cとして情報“101”がアクセス制御デコーダ32に供給される(S4)。アクセス制御デコーダ32はその情報“101”をデコードし、S3により帰還された情報“110”を選択し(S5)、今度はこの情報“110”をアドレスとしてSRAM25のアクセスが行われる(S6)。以下同様に動作が繰り返されて所要の論理動作(3ビットダウンカウンタ動作)が行われる。CLKはSRAM25のメモリサイクル等を規定する、機能再構成セル20の動作基準クロック信号である。
【0081】
3ビットカウンタを夫々構成する機能再構成セル20を接続選択回路35で接続して6ビットカウンタを構成する例を図14に示す。本構成では夫々の機能再構成セルは3ビットアップカウンタ動作を行う例を示しており、データフィールドDFLDの設定値と外部から供給される初期アドレス値が図13の例と異なっている。機能再構成セル20_Lは下位3ビット、20_Uは上位3ビットを構成し、接続経路選択回路35は、下位3ビットを構成する機能再構成セル20_Lの制御フィールドCFLDの最下位ビットの反転値を、上位3ビットを構成する機能再構成セル20_Uのロジックイネーブル信号LOGE_jとして供給する。カウント動作を開始する前に機能再構成セル20_L、20_Uのアドレスラッチ回路26に初期アドレス値として“000”をセットし、その後、LOGE_iをアクティブとして機能再構成セル20_Lに下位3ビットのカウント動作を開始させる。下位3ビットの機能再構成セル20_Lによるアップカウントが終了して制御情報DAT_Cが“100”を出力する1サイクル期間だけLOGE_jをアクティブに変化させて、機能再構成セル20_Uに上位3ビットのカウント動作を行わせる。機能再構成セル20_Lの制御情報DAT_Cが“100”を出力した場合、20_Lのアドレス制御デコーダ32はセレクタ30に対して外部からの入力を選択してアドレスラッチ回路26にセットすることから、外部入力値としては“001”をセットしておけばよい。
【0082】
CPUによる機能再構成メモリ8のアクセス形態が図15に例示される。CPU2やDMAC5による機能再構成メモリ8に対するランダムアクセスは経路PAS_Sを用いて行われる。このアクセス動作は機能再構成セル20及び接続経路選択回路35に対して機能を設定するためのコンフィギュレーション情報の設定に用いられる。また、論理機能の設定に用いられなかった機能再構成セル20を内部RAM(ITNR_RAM)としてリード・ライトアクセスする場合である。また、CPU2やDMAC5による機能再構成メモリ8に対するメモリマップドIOレジスタアクセスは経路PAS_Pを用いて行われる。このアクセス動作は、例えば前記スタートアドレス設定用等価IOレジスタ、データリード用等かIOレジスタ、ロジックイネーブル用等価IOレジスタに対するアクセスに用いられる。ランダムアクセス用のアドレスマッピングとメモリマップドIOレジスタアクセス用のアドレスマッピングは相互に分離されている。
【0083】
以上の如く、機能再構成セル20及び接続経路選択回路35に所要のコンフィギュレーション情報を設定することにより、単数又は複数の機能再構成セル20を用いて所要の周辺機能を実現することができる。特に具体例は示していないが、この機能を用いることにより、単数又は複数の機能再構成セル20に、論理演算、算術演算、更には符号化/復号演算などの所要の演算機能を実現することも可能である。このとき、機能再構成メモリ8は、図2に例示されるように、演算機能がハードウェアによってある程度限定された演算回路50を備え、可変論理に対する演算機能設定の負担を軽減している。
【0084】
図4において、演算回路50_1は、単数又は複数の所定の機能再構成セル20_1,20_2のデータフィールド(DFLD)27_Dから出力される演算データを入力して演算を行う演算ロジック部52と、上記とは別の機能再構成セル20_3のデータフィールド(DFLD)27_Dから出力される演算制御データをデコードして前記演算ロジック部(ARTLGC)52の演算動作を制御する演算制御部(ARTCNT)51とを有する。例えば演算ロジック部52を算術論理演算器によって構成したとき、その論理動作や算術動作は前記演算制御データのデコード結果に従って制御される。演算回路50_1による演算データと演算動作に必要な演算制御データはランダムアクセスによって所要の機能再構成セル20の記憶回路23に予め書き込んでおけばよい。したがって、ALUのような演算回路50_1をコンフィギュレーション情報によっての機能記述することを要せず、所要の算術演算や論理演算を行うことができる。
【0085】
特に図示はしないが例えば演算動作は次の用に実行される。機能再構成セル20_1には、一方の演算データがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。機能再構成セル20_2には、他方の演算データがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。機能再構成セル20_3には、演算ロジック部52の演算制御のための制御コードがデータフィールド27_Dに、これを順次読み出すためのシーケンス制御データが制御フィールド27_Cに書き込まれる。ランダムアクセスによって上記設定が行われた後、機能再構成セル20_1,20_2,20_3を同期的にロジックイネーブルにすることにより、機能再構成セル20_3から供給される演算制御データに従って、機能再構成セル20_1,20_2から供給される演算データが演算ロジック部52で演算される。演算結果は、ロジック部52内のデータレジスタに蓄積される。当該データレジスタには固有のIOアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するIOレジスタリードアクセスによって、内部バスIBUS_0を経由して外部に読出し可能にされる。
【0086】
図5には図4とは異なる演算回路50_2を採用した機能再構成メモリ8の全体的な構成が例示される。図5に示される演算回路50_2は、バスインタフェース回路40を介して外部からランダムアクセスされるメモリ部(ARTMRY)53と、メモリ部53から読み出されたデータを演算する演算ロジック部(ARTLGC)55と、所定の機能再構成セル20_4のデータフィールド(DFLD)27_Dから出力される演算制御データをデコードして前記メモリ部53の読出しと前記演算ロジック部55の演算動作を制御する演算制御部(ARTCNT)54とを有する。演算データは機能再構成メモリ8の外部からメモリ部53にランダムアクセスによって格納される。機能再構成セル20_4には、演算制御部54に与える演算制御データと、メモリ部53から演算データを読み出すためのメモリアドレスがランダムアクセスによって初期設定される。この後、機能再構成セル20_4がロジックイネーブルイにされることにより、機能再構成セル20_4から供給される演算制御データとメモリアドレスに従って、メモリ部53から供給される演算データが演算ロジック部55で演算される。演算結果は、ロジック部55内のデータレジスタに蓄積される。当該データレジスタには固有のIOアドレスが割当てられ、蓄積されたええた演算結果は、当該レジスタを指定するIOレジスタリードアクセスによって、内部バスIBUS_0を経由して外部に読出し可能にされる。その他の構成は図4と同じであり、その詳細な説明は省略する。図5の演算回路50_2の構成によれば、演算データの一時的な記憶には機能再構成セル20のとは別のメモリ部53を割当てることが可能になる。
【0087】
以下に、図5の演算回路50_2におけるメモリ部(ARTMRY)53及び演算ロジック部(ARTLGC)55の具体例を説明する。ここでは、メモリ部53及び演算ロジック部55をMRAMで構成する。
【0088】
図16には前記演算回路50_2の全体の構成が概略的に示される。演算回路50_2は、演算子セルアレイ100、行選択駆動回路120、メインアンプ回路140、データパス180、及び制御回路200を備える。演算子セルアレイ100は、複数の演算子セルサブアレイブロックOAR0−OAR31に分割される。演算子セルサブアレイブロックOAR0−OAR31の各々に対応して、複数のセンスアンプSAが設けられたセンスアンプ帯260が設けられる。行駆動回路120及び演算子セルサブアレイブロックOAR0−OAR31メモリ部53を構成する。センスアンプ帯260及びメインアンプ回路140は演算ロジック部55を構成する。制御回路200は演算制御部54を構成する。データパス180は内部バスIBUS_0に接続され、データ出力レジスタ、データ入力レジスタ等を備える。
【0089】
図17は、メモリ部53において用いられるメモリセルの断面構造を概略的に示す図である。以下では、演算子セルアレイ100において行列上に配置された複数のメモリセルのうち、i番目のメモリセル行<i>、j番目のメモリセル行<j>およびk番目のメモリセル行<k>の最大3つのメモリセル行が並行して選択される場合について説明する。そして、メモリセル行<i>、メモリセル行<j>およびメモリセル行<k>に対応するメモリセルMCI、MCJおよびMCKを代表的に図示する。これらのメモリセルMCI、MCJおよびMCKは、各々、1つのトランジスタおよび1つのMTJ素子で構成されるMRAMセルである。
【0090】
図17において、半導体基板領域SBS表面に、間をおいて、高濃度N型不純物領域2I,4I,2J,4J,2K,4Kが配置される。不純物領域2Iおよび4Iの間のチャネル形成領域3I上に、図示しないゲート絶縁膜を介してゲート電極5Iが形成される。同様、不純物領域2Jおよび4Jの間のチャネル形成領域3J上に、図示しないゲート絶縁膜を介してゲート電極5Jが形成される。また、不純物領域2Kおよび4Kの間のチャネル形成領域3K上に、図示しないゲート絶縁膜を介してゲート電極5Kが形成される。
【0091】
不純物領域2Iおよび4Iとゲート電極5Iとにより、メモリセルMCIのアクセストランジスタが形成される。ゲート電極5Iは、読出ワード線RWL<i>を構成する。メモリセルMCIにおいて、アクセストランジスタに対応してその上層に、可変抵抗素子として、可変磁気抵抗素子(MTJ素子)MTJIが設けられる。
【0092】
可変磁気抵抗素子MTJIは、磁化方向が固定される固定層FXLと、磁化方向が記憶データに応じて変更される自由層FRLと、これらの固定層FXLおよび自由層FRLの間のトンネルバリア層TBLとを有する。自由層FRLは、上部電極UELRを介してビット線BLに結合される。固定層FXLは、局所配線LIIに、図示しない下部電極を介して接続される。局所配線LIIは、プラグ6Iおよび7Iと中間層配線8Iとにより、不純物領域2Iに電気的に結合される。可変磁気抵抗素子MTJI下部において、中間層配線8Iと同一配線層に、導電線9Iが配置される。この導電線9Iは、書込ワード線WWL<i>を構成する。
【0093】
メモリセルMCJにおいては、不純物領域2Jおよび4Jとゲート電極5Jとにより、アクセストランジスタが形成される。ゲート電極5Jは、別の読出ワード線RWL<j>を構成する。
【0094】
このメモリセルMCJのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJJが設けられる。この可変磁気抵抗素子MTJJは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJJは、局所配線LIJ、プラグ6Jおよび7J、ならびに中間層配線8Jを介して不純物領域2Jに電気的に結合される。
【0095】
可変磁気抵抗素子MTJJの下部において、中間層配線8Jと同一配線層に、導電線9Jが配置される。導電線9Jは、別の書込ワード線WWL<j>を構成する。
【0096】
また、メモリセルMCKにおいては、不純物領域2Kおよび4Kとゲート電極5Kとにより、アクセストランジスタが形成される。ゲート電極5Kは、別の読出ワード線RWL<k>を構成する。
【0097】
このメモリセルMCKのアクセストランジスタ形成領域上部に、また、可変磁気抵抗素子MTJKが設けられる。この可変磁気抵抗素子MTJKは、可変磁気抵抗素子MTJIと同一の構成を有するため、その参照符号は省略する。可変磁気抵抗素子MTJKは、局所配線LIK、プラグ6Kおよび7K、ならびに中間層配線8Kを介して不純物領域2Kに電気的に結合される。
【0098】
可変磁気抵抗素子MTJKの下部において、中間層配線8Kと同一配線層に、導電線9Kが配置される。導電線9Kは、別の書込ワード線WWL<k>を構成する。
【0099】
図18は、図17に示すメモリセルMCI、MCJおよびMCKの電気的等価回路を示す図である。図18において、メモリセルMCIは、ビット線BLとソース線SLIの間に直列に接続されるアクセストランジスタATIおよび可変磁気抵抗素子MTJIを含む。メモリセルMCJは、ビット線BLとソース線SLJの間に直列に接続される可変磁気抵抗素子MTJJおよびアクセストランジスタATJを含む。メモリセルMCKは、ビット線BLとソース線SLKの間に直列に接続される可変磁気抵抗素子MTJKおよびアクセストランジスタATKを含む。図18においては、ソース線SLI、SLJおよびSLKは、ビット線BLと直交する方向に配設されるように示すが、これらのソース線SLI、SLJおよびSLKは、ビット線BLと並行に配設されてもよい。ソース線SLI、SLJおよびSLKは、接地ノードに結合される。
【0100】
アクセストランジスタATI、ATJおよびATKは、それぞれ、読出ワード線RWL<i>、RWL<j>およびRWL<k>の電位に応答して選択的にオンする。書込ワード線WWL<i>、WWL<j>およびWWL<k>は、それぞれ可変磁気抵抗素子MTJI、MTJJおよびMTJKと物理的に分離されかつ磁気的に結合される。
【0101】
ビット線BL、書込ワード線WWL<i>、WWL<j>およびWWL<k>を流れる電流が誘起する磁界により、可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層FRLの磁化方向が設定される。
【0102】
図19は、可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。図19においては、磁化方向を矢印で示す。
【0103】
図19(A)に示すように、固定層FXLおよび自由層FRLの磁化方向が異なる場合(反平行の場合)、磁気抵抗効果により、可変磁気抵抗素子を通して流れる電流に対する電気的抵抗が高くなる。このとき、この可変磁気抵抗素子は、電流に対して高抵抗状態となり、抵抗値Rmaxを有する。
【0104】
一方、図19(B)に示すように、固定層FXLと自由層FRLの磁化方向が一致するとき、すなわち平行 なときには、この可変磁気抵抗素子は、電流に対して低抵抗状態となり、抵抗値Rminを有する。
【0105】
アクセストランジスタAT(ATI,ATJ,ATK)がオン状態のとき、ビット線BLおよびソース線SL(SLI,SLJ)を流れる電流量は、可変磁気抵抗素子MTJ(MTJI,MTJJ,MTJK)の抵抗値に従って異なる。この電流量を、図示しないセンスアンプで検知することにより、このメモリセルMC(MCI,MCJ,MCK)の記憶データを読出す。一例として、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付ける。
【0106】
データ書込時においては、図18に示すアクセストランジスタATI、ATJおよびATKをオフ状態に維持する。書込ワード線WWL(WWL<i>、WWL<j>またはWWL<k>)を通して所定の方向に電流を流し、磁界を誘起する。ビット線BLを通して、書込データに応じた方向に電流を流す。ビット線BLを流れる電流が誘起する磁界と書込ワード線WWLを流れる電流が誘起する磁界の合成磁界により、可変磁気抵抗素子MTJの自由層FRLの磁化方向を、固定層の磁化方向に対し平行状態または反平行状態に設定する。この自由層の磁化方向により、可変磁気抵抗素子MTJの抵抗状態が設定され、データの書込が行なわれる。
【0107】
このメモリセルMCのデータは、可変磁気抵抗素子の自由層の磁化方向により設定される。外部から、自由層の磁化方向を反転させる原因が印加されない限り、自由層FRLの磁化方向は変化しない。したがって、メモリセルMCは、不揮発的にデータを記憶することができる。また、この自由層FRLの磁化方向は、ビット線電流および書込ワード線電流の誘起する磁界により決定され、書込時、たとえばフラッシュメモリのように、トンネル絶縁膜などを介して電流は流れない。したがって、層間絶縁膜の劣化の問題は回避することができ、可変磁気抵抗素子の書換回数は、ほぼ無限大である。
【0108】
また、この可変磁気抵抗素子の自由層の磁化方向は、ビット線BLおよび書込ワード線WWLを流れる電流により決定されるため、高速の書込を行なうことができる。また、データ読出も、ビット線BLを流れる電流量に従って行なわれるため、高速で読出を行なうことができる。また、可変磁気抵抗素子MTJI、MTJJおよびMTJKを通して流れる電流の大きさに応じてデータの読出が行なわれ、この可変磁気抵抗素子MTJI、MTJJおよびMTJKの自由層の磁化方向は、読出電流により反転しない。したがって、非破壊的にデータの読出を行なうことができ、DRAMセルおよび強誘電体キャパシタのようなリストア動作が不要となり、データ読出サイクルを短くすることができる。
【0109】
演算回路50_2においては、このMRAMセルの特長を利用して、メモリセルの記憶データと演算ロジック部55のセンスアンプの増幅動作とを利用して、演算操作を実行する。
【0110】
図20は、メモリブ53におけるメモリセルのアレイ内配置を概略的に示す図である。図20においては、2つのメモリセル列に対応する回路を代表的に示す。
【0111】
メモリセルMCI1およびMCI2に対しては、読出ワード線RWL<i>および書込ワード線WWL<i>が配設され、メモリセルMCJ1およびMCJ2に対しては、読出ワード線RWL<j>および書込ワード線WWL<j>が設けられ、メモリセルMCK1およびMCK2に対しては、読出ワード線RWL<k>および書込ワード線WWL<k>が設けられる。メモリセルMCI1およびMCI2に対しては、行方向に延在するソース線SL<i>が設けられる。メモリセルMCJ1およびMCJ2に対しては、行方向に延在するソース線SL<j>が設けられる。メモリセルMCK1およびMCK2に対しては、行方向に延在するソース線SL<k>が設けられる。これらのソース線SL<i>、SL<j>およびSL<k>は、共通ソース線SLCMを介して接地ノードに結合される。
【0112】
メモリセルMCI1、MCJ1およびMCK1が接続されているビット線BL<1>と対をなすビット線ZBL<1>に接続されたダミーセルDMCA1およびDMCB1が設けられる。メモリセルMCI2、MCJ2およびMCK2が接続されているビット線BL<2>と対をなすビット線ZBL<2>に接続されたダミーセルDMCA2およびDMCB2が設けられる。ダミーセルDMCA1およびDMCA2に対しては、ダミー読出ワード線DRWL1およびダミー書込ワード線DWWL1が設けられ、ダミーセルDMCB1およびDMCB2に対しては、ダミー読出ワード線DRWL2およびダミー書込ワード線DWWL2が設けられる。ダミーセルDMCA1およびDMCA2のダミーソース線DSL1は、基準電圧VREF1が供給される基準電位ノードVREF1または基準電圧VREF3が供給される基準電位ノードVREF3にスイッチSW1を介して結合される。ダミーセルDMCB1およびDMCB2のダミーソース線DSL2は、基準電圧VREF2が供給される基準電位ノードVREF2または基準電圧VREF4が供給される基準電位ノードVREF4にスイッチSW2を介して結合される。これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2は、ともに低抵抗状態に設定され、抵抗値Rminを有する。
【0113】
基準電位ノードVREF1およびVREF3のいずれをダミーソース線DSL1と接続するか、基準電位ノードVREF2およびVREF4のいずれをダミーソース線DSL2と接続するかは、後述するようにメモリセルMCから読み出したデータに対して行なわれる演算の種類によって決まる。
【0114】
メモリセルMCの列およびダミーセルDMCの列に対応してビット線BLおよびZBLがそれぞれ設けられる。メモリセルMCI1、MCJ1およびMCK1は、ビット線BL<1>に並列に結合され、ダミーセルDMCA1およびDMCB1は、補のビット線ZBL<1>に結合される。メモリセルMCI2、MCJ2およびMCK2は、ビット線BL<2>に並列に結合され、ダミーセルDMCA2およびDMCB2は、補のビット線ZBL<2>に結合される。
【0115】
読出ワード線RWL<i>、RWL<j>およびRWL<k>の一端に、読出ドライバRWDVI、RWDVJおよびRWDVKがそれぞれ設けられる。ダミー読出ワード線DRWL1およびDRWL2の一端に、読出ドライバDRWDV1およびDRWDV2がそれぞれ設けられる。書込ワード線WWL<i>、WWL<j>およびWWL<k>の一端に、書込ドライバWWDVI、WWDVJおよびWWDVKがそれぞれ設けられる。ダミー書込ワード線DWWL1およびDWWL2の一端に、書込ドライバDWWDV1およびDWWDV2がそれぞれ設けられる。
【0116】
読出ドライバRWDVI、RWDVJ、RWDVK、DRWDV1およびDRWDV2は、データ読み出し時、対応の読出ワード線を選択状態へ駆動する。書込ドライバWWDVI、WWDVJ、WWDVK、DWWDV1およびDWWDV2は、データ書込時、対応の書込ワード線を選択状態へ駆動する。
【0117】
ビット線BL<1>およびZBL<1>の一端に、センスアンプSA1が設けられる。センスアンプSA1は演算ロジック部55の一部である。ビット線BL<1>の両端に、書込ドライバWDVA1およびWDVA2がそれぞれ設けられ、また補のビット線ZBL<1>の両端に、書込ドライバDWDVA1およびDWDVA2がそれぞれ設けられる。書込ドライバWDVA1およびWDVA2は、データ書込時、相補データDおよび/Dに従ってビット線BL<1>に電流を流す。同様に、書込ドライバDWDVA1およびDWDVA2も、相補データDDおよび/DDに従って、補のビット線ZBL<1>に双方向に電流を流す。これらの書込ドライバWDVA1、WDVA2、DWDVA1、およびDWDVA2を双方向ドライバで構成することにより、ビット線BL<1>およびZBL<1>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI1、MCJ1およびMCK1に対し、データを書込むことができる。
【0118】
同様に、ビット線BL<2>およびZBL<2>の一端に、センスアンプSA2が設けられる。センスアンプSA2は演算ロジック部55の一部である。ビット線BL<2>の両端に、書込ドライバWDVB1およびWDVB2が設けられ、また補のビット線ZBL<2>の両端に、書込ドライバDWDVB1およびDWDVB2が設けられる。書込ドライバWDVB1およびWDVB2は、データ書込時、相補データDおよび/Dに従ってビット線BL<2>に電流を流す。同様に、書込ドライバDWDVB1およびDWDVB2も、相補データDDおよび/DDに従って、補のビット線ZBL<2>に双方向に電流を流す。これらの書込ドライバWDVB1、WDVB2、DWDVB1、およびDWDVB2を双方向ドライバで構成することにより、ビット線BL<2>およびZBL<2>に、書込データに応じて双方向に電流を流すことができ、メモリセルMCI2、MCJ2およびMCK2に対し、データを書込むことができる。
【0119】
ただし、ダミーセルDMCは、低抵抗状態に設定されるため、補のビット線ZBLに対して設けられる書込ドライバDWDVA1、DWDVA2、DWDVB1およびDWDVB2は、供給電流の方向が固定されることから、双方向に電流を供給することは、特に要求されない。
【0120】
このセンスアンプSA(SA1,SA2)、1対の書込ドライバWDVおよび1対の書込ドライバDWDVが、各ビット線対に対応して設けられる。
【0121】
なお、ダミーセルDMCA1、DMCA2、DMCB1およびDMCB2のダミーソース線DSL1およびDSL2が、接地ノードではなく、基準電位ノードVREF1〜VREF4に結合されるのは、以下の理由による。すなわち、データ読出時、これらの基準電位ノードの電圧VREF1〜VREF4を所望の値に設定した場合、これらのダミーセルDMCA1、DMCA2、DMCB1およびDMCB2を通してそれぞれ流れる電流量を、メモリセルMCI、MCJおよびMCKを通して流れる電流の中間値またはそれより大きい値に設定することができる。演算処理時においては、後に詳細に説明するように、メモリセルMCI、MCJおよびMCKが並行して選択され、これらのメモリセルの記憶データに応じた電流がビット線BLを通して流れる。このビット線上の合成電流に対して基準電圧VREF1〜VREF4の電圧レベルを調整することにより、補のビット線ZBLを通して流れるダミーセル電流を調整することで、必要とされる演算を実行する。
【0122】
データ書込時においては、メモリセルMCI、MCJおよびMCKを順次選択して、1対の書込ドライバWDVによりデータを書込む。データ読出時においては、読出ワード線RWL<i>、RWL<j>およびRWL<k>を並行して選択状態へ駆動し、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKを並列にビット線BLに結合する。
【0123】
次に、メモリ部53で1つのメモリセル行<i>を選択した場合における読み出し動作について説明する。
【0124】
図21は、メモリセルMCIの記憶データの組み合わせを一覧にして示す図である。図21に示すように、メモリセルMCIの可変磁気抵抗素子MTJIの抵抗状態の組み合わせとして、2つの状態が存在する。状態S(0)は、メモリセルMCIの可変磁気抵抗素子MTJIが、高抵抗状態H(Rmax)である。状態S(1)は、可変磁気抵抗素子MTJIが、低抵抗状態L(Rmin)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態をデータ“1”に対応付けている。
【0125】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIを並行して選択し、各可変磁気抵抗素子MTJIの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>を選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0126】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCIを選択し、各可変磁気抵抗素子MTJIを並行して各ビット線BLに結合する。したがって、読出時においては、各可変磁気抵抗素子MTJIを通して流れる電流が各ビット線BLを通して流れる。
【0127】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。ここでは、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF1にダミーセルDMCAが接続される場合について説明する。
【0128】
図22は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図22において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。なお、データ読出前、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0129】
メモリセルMCIが状態S(0)のときには、メモリセルMCI(可変磁気抵抗素子MTJI)は高抵抗状態であり、メモリセルMCIを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。
【0130】
一方、状態S(1)においては、メモリセルMCI(可変磁気抵抗素子MTJI)は低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0131】
また、ダミーセルDMCAは低抵抗状態L(Rmin)である。メモリセルMCIのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0)のときにビット線BLを通して流れる電流よりも大きく、かつ状態S(1)のときにビット線BLを通して流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0)と状態S(1)の間の状態に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
【0132】
Il>Id1>Ihただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを通して流れる電流を示す。
【0133】
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCAを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIの1ビットの記憶データの論理値を示している。
【0134】
図23は、演算ロジック部55におけるセンスアンプの出力信号とメモリセルMCIの記憶状態との対応を一覧にして示す図である。
【0135】
図23に示すように、状態S(0)においては、可変磁気抵抗素子MTJIは高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、図22に示すようにビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0136】
状態S(1)においては、メモリセルMCIは低抵抗状態L(Rmin)であり、データ“1”を記憶している。この状態においては、図22に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は補のビット線ZBLよりも低い。このとき、センスアンプの出力信号は “0”となる。
【0137】
したがって、センスアンプからは、メモリセルMCIの記憶データのNOT演算結果が出力される。
【0138】
次に、演算回路50_2において、2つのメモリセル行<i>および<j>を選択した場合における読み出し動作について説明する。
【0139】
図24は、メモリセルMCIおよびMCJの記憶データの組み合わせを一覧にして示す図である。図24に示すように、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJの抵抗状態の組み合わせとして、4つの状態が存在する。状態S(0,0)は、メモリセルMCIおよびMCJの可変磁気抵抗素子MTJIおよびMTJJが、ともに、高抵抗状態H(Rmax)である。状態S(1,0)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ低抵抗状態L(Rmin)および高抵抗状態H(Rmax)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
【0140】
状態S(0,1)は、可変磁気抵抗素子MTJIおよびMTJJが、それぞれ高抵抗状態H(Rmax)および低抵抗状態L(Rmin)である。状態S(1,1)は、可変磁
気抵抗素子MTJIおよびMTJJが、ともに低抵抗状態L(Rmin)である。
【0141】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIとメモリセル行<j>に対応する複数のMCJとを個々に選択し、各可変磁気抵抗素子MTJIおよび各可変磁気抵抗素子MTJJの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>およびWWL<j>を順次選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0142】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCIおよびメモリセル行<j>に対応する複数のメモリセルMCJを並行して選択し、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJIおよび可変磁気抵抗素子MTJJの各組を通して流れる電流の合成電流が各ビット線BLを通して流れる。
【0143】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。まず、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF1にダミーセルDMCAが接続される場合について説明する。
【0144】
図25は、データ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。図25において、メモリセルMCIおよびMCJが並列に接続される。データ読出時、アクセストランジスタATIおよびATJが並行して選択され、ビット線BLと接地ノードとの間に並列に可変磁気抵抗素子MTJIおよびMTJJが、記憶データに応じた電流IIおよびIJを流す。補のビット線ZBLには、ダミーセルDMC(DMCAまたはDMCB)が、基準電圧VREF(VREF1〜VREF4のいずれか)の電圧レベルに応じた電流IDを流す。これらのビット線の合成電流II+IJと補のビット線ZBLのダミーセル電流IDとの大小に応じて、データの読出を実行する。
【0145】
図26は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図26において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
【0146】
メモリセルMCIおよびMCJが状態S(0,0)のときには、メモリセルMCIおよびMCJは高抵抗状態であり、メモリセルMCIおよびMCJを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0147】
一方、状態S(1,1)においては、メモリセルMCIおよびMCJは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0148】
状態S(1,0)およびS(0,1)は、高抵抗状態と低抵抗状態の組み合わせであり、状態S(0,0)およびS(1,1)のビット線電流の中間の電流が流れる。したがって、状態S(1,0)およびS(0,1)の場合、ビット線の読出電位は、この状態S(0,0)およびS(1,1)の間となる。
【0149】
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCIおよびMCJのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(0,1)およびS(1,0)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0)と状態S(1,0)およびS(0,1)との間に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
2×Ih<Id1<Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
【0150】
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、また、基準電位ノードVREF2にダミーセルDMCBが接続される場合について説明する。
【0151】
ダミーセルDMCBを選択し、基準電圧VREF2を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを通して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,0)およびS(0,1)と状態S(1,1)との間に設定することができる。この場合のダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
2×Il>Id2>Ih+Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCIおよびMCJの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCIおよびMCJの2ビットの記憶データの組み合わせを2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCIおよびMCJの記憶データに対する論理演算を行なうことができる。
【0152】
図27は、演算回路50_2におけるセンスアンプの出力信号とメモリセルMCIおよびMCJの記憶状態との対応を一覧にして示す図である。
【0153】
図27に示すように、状態S(0,0)においては、可変磁気抵抗素子MTJIおよびMTJJがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF1)およびDMCB(基準電圧VREF2)のいずれを選択しても、図26に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0154】
状態S(1,0)および状態S(0,1)の場合、メモリセルMCIおよびMCJの一方が高抵抗状態H(Rmax)であり、他方が低抵抗状態L(Rmin)である。したがって、基準電圧VREF1を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF2を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
【0155】
状態S(1,1)の場合、メモリセルMCIおよびMCJはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF1およびVREF2のいずれを選択しても、図26に示すように、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。
【0156】
したがって、図27に示すように、基準電圧VREF1を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNOR演算結果が出力され、また、基準電圧VREF2を選択した場合、センスアンプからは、メモリセルMCIおよびMCJの記憶データのNAND演算結果が出力される。
【0157】
なお、センスアンプとしては、交差結合ラッチ型センスアンプが用いられてもよい。しかしながら、この交差結合型ラッチセンスアンプは、ビット線BLおよびZBLの電位差を増幅する電圧検出型センスアンプである。したがって、より高速でセンス動作を行なうために、電流検出型センスアンプを利用することが好ましい。
【0158】
図28は、電流検出型のセンスアンプの構成の一例を示す図である。図28において、センスアンプSAは、カレントミラー段を構成するPチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)PT1−PT3と、ビット線BLへMOSトランジスタPT1からの電流を供給するNチャネルMOSトランジスタNT1と、別のカレントミラー段を構成するPチャネルMOSトランジスタPT4−PT6と、MOSトランジスタPT6から補のビット線ZBLへ電流を供給するNチャネルMOSトランジスタNT6とを含む。
【0159】
MOSトランジスタPT1およびNT1がビット線BLとノードND1の間の直列に接続される。MOSトランジスタPT1は、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作する。MOSトランジスタNT1は、そのゲートにセンス基準電圧Vrefsを受け、ビット線BLの電位の上昇を抑制しつつビット線電流を供給する。このセンス基準電圧Vrefsは、データ読出時、メモリセルMCのビット線BLの大きな電流が流れ、このビット線電流の誘起磁界によりメモリセルの記憶データが破壊されるのを防止する。
【0160】
MOSトランジスタPT6およびNT6は、ノードND1と補のビット線ZBLの間に直列に接続される。MOSトランジスタPT6は、ゲートおよびドレインが相互接続されカレントミラー段のマスタとして動作する。MOSトランジスタNT6は、センス基準電圧Vrefsをゲートに受け、MOSトランジスタPT6から供給される電流を補のビット線ZBLへ供給する。MOSトランジスタPT2−PT5は、それぞれのソースノードが電源ノードに結合される。
【0161】
センスアンプSAは、さらに、カレントミラー段を構成するNチャネルMOSトランジスタNT2およびNT3と、別のカレントミラー段を構成するNチャネルMOSトランジスタNT4およびNT5を含む。
【0162】
MOSトランジスタNT2は、MOSトランジスタPT2とノードNDとの間に接続され、そのゲートおよびドレインが相互接続される。MOSトランジスタNT3は、MOSトランジスタPT4とノードND2の間に接続され、そのゲートがMOSトランジスタNT2のゲートに接続される。MOSトランジスタNT4は、MOSトランジスタPT3とノードND2との間に接続され、そのゲートがMOSトランジスタNT5のゲートに接続される。MOSトランジスタNT5は、MOSトランジスタPT5とノードND2の間に接続され、かつそのゲートおよびドレインが相互接続される。
【0163】
MOSトランジスタNT2およびNT5により電流/電圧変換された信号が中間センス信号として出力される。
【0164】
センスアンプSAは、さらに、センスアンプ活性化信号/SEの活性化時導通し、ノードND1を電源ノードに接続するPチャネルMOSトランジスタPT7と、センスアンプ活性化信号SEの活性化時導通し、ノードND2を接地ノードGNDに結合するNチャネルMOSトランジスタNT7を含む。センスアンプ活性化信号/SEおよびSEは、それぞれ、活性化時、論理ローレベルおよび論理ハイレベルである。
【0165】
センスアンプSAは、さらに、MOSトランジスタNT2およびNT5により電流/電圧変換された中間センス出力信号SOTおよび/SOTを増幅して最終センス出力信号SOUTおよび/SOUTを生成する最終増幅回路SMPを含む。この最終増幅回路SMPは、センスアンプ活性化信号/SEの非活性化時、出力ハイインピーダンス状態である。この図28に示すセンスアンプSAの動作について説明する。
【0166】
センスアンプ活性化信号/SEおよびSEの非活性化時、MOSトランジスタPT7およびNT7は、オフ状態である。この状態においては、MOSトランジスタPT2およびPT5により、中間センス出力信号SOTおよび/SOTは、電源電圧VDDレベルに維持される。ノードND1は、MOSトランジスタPT1、NT1、およびPT6、NT1により、ビット線BLおよびZBLと同様の電位レベルに維持される。また、最終センス出力信号SOUTおよび/SOUTも出力ハイインピーダンス状態のプリチャージレベル(例えば論理ハイレベル)に維持される。
【0167】
センス動作時には、先ず、読出ワード線選択前に、センスアンプ活性化信号/SEを活性化し、MOSトランジスタPT7およびNT7をオン状態とする。応じて、ノードND1が電源ノードに結合され、MOSトランジスタPT1およびPT6が動作し、ビット線BLおよびZBLが充電される。この場合、またセンスアンプ活性化信号SEは、並行して活性化されてもよい。センス動作開始時までセンスアンプ活性化信号SEの活性化が遅延されても良い。読出ワード線RWLは、まだ、非選択状態であり、ビット線BLおよびZBLが、MOSトランジスタNT1およびNT6から供給される電流に従って所定電圧レベルにプリチャージされる。
【0168】
プリチャージ動作が完了すると、次いで、読出ワード線を選択状態へ駆動する。このときまでには、センスアンプ活性化信号SEが活性化される。応じて、選択メモリセルを介してビット線BLからソース線に、その記憶データに応じたセル電流Icellが流れる。一方、補のビット線ZBLにおいても、ダミーセルにより、ダミーセル電流Idummyが流れる。これらの電流IcellおよびIdummyは、MOSトランジスタPT1およびPT6により、それぞれ供給され、MOSトランジスタPT1を介して流れる電流のミラー電流が、MOSトランジスタPT2およびPT3を介して流れ、MOSトランジスタPT6を介して流れる電流のミラー電流がMOSトランジスタPT4およびPT5を介して流れる。従って、これらのビット線を介して流れるセル電流Icellおよびダミーセル電流Idummyのミラー電流が、それぞれ、MOSトランジスタNT2およびNT5を介してそれぞれ流れる。
【0169】
MOSトランジスタNT2およびNT5の電流/電圧変換動作により、セル電流Icellがダミーセル電流Idummyよりも大きい場合には、中間センス出力信号/SOTが論理ハイレベルとなり、中間センス出力信号SOTが論理ローレベルとなる。逆に、セル電流Icellがダミーセル電流Idummyよりも小さい場合には、中間センス出力信号/SOTが論理ローレベルとなり、中間センス出力信号SOTが論理ハイレベルとなる。これらの中間センス出力信号SOTおよび/SOTは、次段の最終増幅回路SMPによりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号SOUTおよび/SOUTが、生成される。
【0170】
なお、MOSトランジスタNT3およびNT4については、以下の動作が行なわれる。すなわち、MOSトランジスタNT2は、MOSトランジスタPT2からの電流を放電し、MOSトランジスタNT3は、MOSトランジスタNT2のミラー電流を放電することができる。同様、MOSトランジスタPT5を流れる電流のミラー電流が、MOSトランジスタNT5を介して流れ、MOSトランジスタNT4は、MOSトランジスタNT5を介して流れる電流のミラー電流を放電することができる。
【0171】
したがって、MOSトランジスタPT3およびNT4には、セル電流Icellとダミーセル電流Idummyのうちの小さいほうの電流が流れ、MOSトランジスタPT4およびNT3においても、ダミーセル電流Idummyとセル電流Icellの小さいほうの電流が流れる。MOSトランジスタNT7へは、セル電流Icellとダミーセル電流Idummyの合計電流とこれらの電流の小さいほうの電流の2倍の電流との和が常時流れる。従って、1ビットセルデータを読出して2値判定を行なう場合には、センス動作の安定化のために、これらのMOSトランジスタPT3、PT4、NT3、およびNT4は、MOSトランジスタNT7を介して流れる電流量を一定とする機能を有する。
【0172】
しかしながら、これらのMOSトランジスタPT3、NT4、NT3、およびNT4は、特に設けられなくてもよい。また、これに代えて、MOSトランジスタPT3およびNT4の接続ノードおよびMOSトランジスタPT4およびNT3の接続ノードから、センス出力信号SOUTおよび/SOUTが、それぞれ取り出される構成が用いられてもよい。
【0173】
上述のように、センスアンプSAが、複数のメモリセルの記憶データに対するNOR演算結果およびNAND演算結果を示す信号を生成している。また、メモリセルの記憶データの論理値を変更せずに読み出す場合、ならびにOR演算およびAND演算結果をセンスアンプにより生成する場合には、図28に示すセンス出力信号を後述するメインアンプ回路140またはデータパス180において反転すればよい。
【0174】
基準電圧VREF1〜VREF4によりダミーセル電流Idummyの電流レベルを調整することにより、NOR演算およびNAND演算を選択的に行なうことができる。
【0175】
次に、演算回路50_2において、3つのメモリセル行<i>、<j>および<k>を選択した場合における読み出し動作について説明する。
【0176】
図29は、メモリセルMCI、MCJおよびMCKの記憶データの組み合わせを一覧にして示す図である。図29に示すように、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKの抵抗状態の組み合わせとして、8つの状態が存在する。上記説明と同様に、状態S(A,B,C)のとき、AはメモリセルMCIの抵抗状態を表し、BはメモリセルMCJの抵抗状態を表し、CはメモリセルMCKの抵抗状態を表す。たとえば、状態S(0,0,0)は、メモリセルMCI、MCJおよびMCKの可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに、高抵抗状態H(Rmax)である。状態S(1,1,1)は、可変磁気抵抗素子MTJI、MTJJおよびMTJKが、ともに低抵抗状態L(Rmin)である。ここで、高抵抗状態をデータ“0”に対応付け、低抵抗状態を、データ“1”に対応付けている。
【0177】
データ書込時において、メモリセル行<i>に対応する複数のメモリセルMCIと、メモリセル行<j>に対応する複数のMCJと、メモリセル行<k>に対応する複数のMCKとを個々に選択し、各可変磁気抵抗素子MTJI、各可変磁気抵抗素子MTJJおよび各可変磁気抵抗素子MTJKの抵抗状態を設定する。すなわち、書込時には、書込ワード線WWL<i>、WWL<j>およびWWL<k>を順次選択し、図20に示す1対の書込ドライバWDVを用いて、各ビット線BLを通して書込データに応じた方向に電流を流す。
【0178】
読出時においては、メモリセル行<i>に対応する複数のメモリセルMCI、メモリセル行<j>に対応する複数のメモリセルMCJおよびメモリセル行<k>に対応する複数のメモリセルMCKを並行して選択し、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を並行して各ビット線BLに結合する。したがって、読出時においては、可変磁気抵抗素子MTJI、可変磁気抵抗素子MTJJおよび可変磁気抵抗素子MTJKの各組を通して流れる電流の合成電流が各ビット線BLを通して流れる。
【0179】
一方、各メモリセル列において、ダミーセルDMCAおよびDMCBは、データ読出時、1つのダミーセルが選択される。すなわち、ダミー読出ワード線DRWL1およびDRWL2のいずれかが選択される。これらのダミーセルDMCAおよびDMCBは、低抵抗状態L(Rmin)であり、抵抗値Rminを有する。基準電圧VREF1〜VREF4の電圧レベルを選択することにより、ダミーセルDMCAおよびDMCBを流れる電流量を調整する。まず、ダミー読出ワード線DRWL1が選択されてダミーセルDMCAが選択され、また、基準電位ノードVREF3にダミーセルDMCAが接続される場合について説明する。
【0180】
図30は、データ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。図30において、縦軸にビット線BLおよびZBLの電位を示し、横軸に時間を示す。
【0181】
メモリセルMCI、MCJおよびMCKが状態S(0,0,0)のときには、メモリセルMCI、MCJおよびMCKは高抵抗状態であり、メモリセルMCI、MCJおよびMCKを流れる電流が最も小さい状態である。この場合、ビット線BLの電位低下は最も遅い。ここで、データ読出時においては、ビット線BLおよびZBLは、所定電圧レベル(読出電圧レベル)にプリチャージされる。
【0182】
一方、状態S(1,1,1)においては、メモリセルMCI、MCJおよびMCKは、ともに低抵抗状態であり、多くの電流をビット線BLからソース線SLへ流す。したがって、この場合、ビット線電位は最も早くかつ大きく低下する。
【0183】
状態S(1,0,0)、S(0,1,0)およびS(0,0,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが高抵抗状態であり、他の1つが低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れる。したがって、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)では、ビット線の読出電位は、状態S(0,0,0)およびS(1,1,1)の間となる。
【0184】
また、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)は、メモリセルMCI、MCJおよびMCKのうちの2つが低抵抗状態であり、他の1つが高低抵抗状態である。これらの状態では、状態S(0,0,0)およびS(1,1,1)のビット線電流の間の電流が流れ、かつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と比べてビット線電流が大きくなる。したがって、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)では、ビット線の読出電位は、状態S(1,0,0)、S(0,1,0)およびS(0,0,1)と状態S(1,1,1)の間となる。
【0185】
また、ダミーセルDMCAおよびDMCBは、ともに低抵抗状態L(Rmin)である。メモリセルMCI、MCJおよびMCKのソース線は接地電圧レベルに維持される。したがって、基準電圧VREF1を接地電圧以上の電圧レベルに設定することにより、ダミーセルDMCAを通して流れる電流を、状態S(0,0,0)のときにビット線BLを流れる電流よりも大きくかつ状態S(1,0,0)、S(0,1,0)およびS(0,0,1)のときにビット線BLを流れる電流よりも小さくすることができる。従って、ダミーセルDMCA選択時の補のビット線ZBLの電位を、状態S(0,0,0)と状態S(1,0,0)、S(0,1,0)およびS(0,0,1)との間に設定することができる。この場合のダミーセルDMCAを通して流れる電流Id1については、以下のように表わすことができる。
Il>Id1>Ih、
3×Ih<Id1<2×Ih+Il
ただし、IhおよびIlは、それぞれ、高抵抗状態および低抵抗状態のメモリセルMCを流れる電流を示す。
【0186】
次に、ダミー読出ワード線DRWL2が選択されてダミーセルDMCBが選択され、基準電位ノードVREF4にダミーセルDMCBが接続される場合について説明する。
【0187】
ダミーセルDMCBを選択し、基準電圧VREF2を負電圧に設定した場合、1つの低抵抗状態のメモリセルMCを通して流れる電流よりも大きな電流を、補のビット線ZBLに流すことができる。従って、ダミーセルDMCB選択時の補のビット線ZBLの電位を、状態S(1,1,0)、S(1,0,1)およびS(0,1,1)と状態S(1,1,1)との間に設定することができる。この場合の、ダミーセルDMCBを通して流れる電流Id2については、以下のように表わすことができる。
Il<Id2、
3×Il>Id2>Ih+2×Il
センスアンプSAによりビット線BLおよびZBLの電流を差動増幅してメモリセルMCI、MCJおよびMCKの記憶データの読出を行なう。この場合、センスアンプSAにおいては、ダミーセルDMCを通して流れる電流を基準値として用いて、ビット線電流の2値判断を行なっている。従って、センスアンプSAの出力は、メモリセルMCI、MCJおよびMCKの3ビットの記憶データの組み合わせを2分類したうちのいずれか一方を示しており、センスアンプSAにより、メモリセルMCI、MCJおよびMCKの記憶データに対する論理演算を行なうことができる。
【0188】
図31は、演算回路50_2におけるセンスアンプの出力信号とメモリセルMCI、MCJおよびMCKの記憶状態との対応を一覧にして示す図である。
【0189】
図31に示すように、状態S(0,0,0)においては、可変磁気抵抗素子MTJI、MTJJおよびMTJKがともに高抵抗状態H(Rmax)であり、データ“0”を記憶している。この状態においては、ダミーセルDMCA(基準電圧VREF3)およびDMCB(基準電圧VREF4)のいずれを選択しても、図30に示すようにビット線BLの流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位は補のビット線ZBLよりも高い。このとき、センスアンプの出力信号は“1”となる。
【0190】
状態S(1,0,0)、S(0,1,0)、S(0,0,1)、S(1,1,0)、S(1,0,1)およびS(0,1,1)では、メモリセルMCI、MCJおよびMCKのうちの少なくともいずれか1つが低抵抗状態L(Rmin)である。したがって、基準電圧VREF3を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位が補のビット線ZBLよりも低くなる。このとき、センスアンプの出力信号は“0”となる。また、基準電圧VREF4を選択した場合には、ビット線BLの電流は補のビット線ZBLの電流よりも小さく、ビット線BLの電位が補のビット線ZBLよりも高くなる。このとき、センスアンプの出力信号は“1”となる。
【0191】
状態S(1,1,1)の場合、メモリセルMCI、MCJおよびMCKはともに低抵抗状態L(Rmin)であり、データ“1”を記憶している。この場合、基準電圧VREF3およびVREF4のいずれを選択しても、図14に示すようにビット線BLの電流は補のビット線ZBLの電流よりも大きく、ビット線BLの電位は、補のビット線ZBLよりも低くなる。このとき、電圧検出型センスアンプの出力信号は“0”となる。
【0192】
したがって、図31に示すように、基準電圧VREF3を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNOR演算結果が出力され、また、基準電圧VREF4を選択した場合、センスアンプからは、メモリセルMCI、MCJおよびMCKの記憶データのNAND演算を行なった結果が出力される。
【0193】
ここまでの説明では、ダミーセルDMCがメモリセル列ごとに2つ設けられる構成であるとしたが、これに限定するものではない。ダミーセルDMCがメモリセル列ごとに1つ設けられ、このダミーセルDMCに接続されたスイッチSWが、たとえば基準電位ノードVREF1〜VREF4のうちのいずれか1つとダミーセルDMCとを選択的に結合する構成であってもよい。
【0194】
以上の説明を踏まえて図16に示される演算回路50_2の構成について更に説明する。図16では、演算子セルアレイ100は、複数の演算子セルサブアレイブロックOAR0−OAR31に分割され、例えば32個の演算子セルサブアレイブロックに分割されているが、分割数は32に限定されない。演算子セルサブアレイブロックOAR0−OAR31の各々は、サブメモリアレイMLAを含む。サブメモリアレイMLAにおいて、メモリセルMCが行列状に配列され、また、各メモリセル列に対応して、ダミーセルが設けられる。1つの演算子セルサブアレイブロックにおいて1または複数のメモリセル行および複数のダミーセルを選択して、メモリセルの記憶データに対する演算処理を実行する。演算子セルサブアレイブロックOAR0−OAR31の各々に対応してセンスアンプ帯260が配置される。
【0195】
演算子セルアレイ100に対して設けられた行選択駆動回路120は、演算子セルサブアレイブロックOAR0−OAR31それぞれに対応して設けられる行ドライブ回路XDR0−XDR31を含む。これらの行ドライブ回路XDR0−XDR31の各々は、たとえば機能再構成セル20_4から供給される制御データに基づいて制御回路200が生成するアドレス信号に基づいて、対応する演算子セルサブアレイブロックにおけるメモリセル行を選択する。したがって、行ドライブ回路XDR0−XDR31は、行アドレス信号をデコードする行アドレスデコード回路と、データ読出時、デコードされた行アドレス信号に基づいて読出ワード線を選択状態に駆動する読出ワード線ドライブ回路と、データ書き込み時、デコードされた行アドレス信号に基づいて書込ワード線を選択状態に駆動する書込ワード線ドライブ回路とを含む。
【0196】
この演算子セルアレイ100のデータ入出力経路にデータパス180と共に設けられたメインアンプ回路140は、演算子セルサブアレイブロックOAR0−OAR31の各ビット線対BLおよびZBLに対応して設けられるメインアンプを含む。メインアンプ回路140において、各メインアンプが演算子セルアレイ100において選択された演算子セルサブアレイブロックから読出されたデータ(センスアンプ出力信号)を並列に増幅する。これにより、演算子セルアレイ100において選択された演算子セルサブアレイブロックのエントリ(1行のメモリセルで構成される)のデータに対するセンスアンプ出力をビットごとに並列に増幅する。
【0197】
データパス180は、メインアンプ回路140からの転送データの保持およびこの転送データに対応する外部へのデータの出力、ならびに外部からの入力データの保持および入力データに基づくメモリセルに対する書込データの生成を実行する。
【0198】
なお、図16において、選択された演算子セルサブアレイブロックに対するデータの書込を行なう回路は示していないが、同様、このデータ書込を行なうデータ書込回路も設けられる。また、指定された演算内容に応じてダミーセルの選択および基準電位ノードの選択を行なう回路も設けられる。このダミーセル選択回路は、行ドライブ回路XDRにおいて選択的にダミー読出ワード線を選択するダミーワード線駆動回路により実現される。また、行ドライブ回路XDRは、図20のスイッチSW1およびSW2をそれぞれ制御する基準電位ノード選択回路を含む。
【0199】
演算回路50_2における内部演算処理の設定および動作タイミング制御は、制御回路20により行なわれる。この制御回路20は、可変論理セル20_4から供給されるデータをデコードして内部の演算指定および内部タイミングの生成を行なう。
【0200】
図32には演算回路50_2による演算例が示される。図32を参照して、エントリiすなわちメモリセル行<i>における各メモリセルの記憶データ列が”1010101010101”であり、エントリjすなわちメモリセル行<j>における各メモリセルの記憶データ列が”0101010101010”であり、エントリkすなわちメモリセル行<k>における各メモリセルの記憶データ列が”0011001100110”である。
【0201】
エントリiを1つ選択する場合、データDOUTは”1010101010101”となる(OP1)。また、エントリiおよびjを選択し、AND演算を選択する場合、データDOUTは”0000000000000”となる(OP2)。また、エントリjおよびkを選択し、AND演算を選択する場合、データDOUTは”0001000100010”となる(OP3)。
【0202】
演算回路50_2において、演算子セルアレイ10における演算子セルサブアレイブロックOARの数をmとし、各演算子セルサブアレイブロックOARにおけるエントリ数をnとすると、生成されるデータ列は、m×n+m×n×(n−1)÷2×2+m×n×(n−1)×(n−2)÷(3×2)×2となる。
【0203】
但し、上記式において、第1項は1つの演算子セルサブアレイブロックOARにおけるnエントリから1エントリを選択する場合の組み合わせ数であり、第2項はnエントリから2エントリを選択する場合のAND演算およびOR演算の選択を含めた組み合わせ数であり、第3項はnエントリから3エントリを選択する場合のAND演算およびOR演算の選択を含めた組み合わせ数である。
【0204】
以上のように、演算回路50_2では、行選択駆動回路120は、受けたアドレス信号に基づいて1または複数のメモリセル行に対応する複数のメモリセルMCおよび複数のダミーセルDMCを並行して選択する。そして、センスアンプSAは、対応のビット線BLを通して流れる電流と対応のビット線ZBLを通して流れる電流とを比較し、比較結果を示す信号を出力する。これにより、選択されたメモリセル行の記憶データ列をそのまま読み出すことができる。また、複数メモリセル行を並行して選択し、各メモリセル行の記憶データに基づく電流を加算することにより、各メモリセル行の記憶データ列同士の論理演算をセンスアンプにおいて行ない、その演算結果を演算回路50_2の外部から読み出すこともできる。
【0205】
また、上記のように各メモリセル行の記憶データ列同士の論理演算を行なうことにより、演算子セルアレイ100が記憶する物理的な真理値データ列から、この真理値データ列で構成される実エントリ空間より遥かに大きい仮想エントリ空間を作り出すことができる。すなわち、従来のLUT演算器に比べて、はるかに高密度な論理情報を格納するLUT形態の演算回路を実現することができる。
【0206】
また、演算回路50−_2では、メモリセルMCにおいて、可変磁気抵抗素子を記憶素子として利用している。これにより、メモリセルの記憶データを破壊することなくその記憶データを読み出すことができるため、メモリセルの記データを繰り返し利用して演算を実行することができる。
【0207】
なお、演算回路50_2では、メモリセルとしてMRAMセルを用いたが、MRAMセルに限らず、バルクシリコン上に形成され、データを不揮発的に記憶する他のメモリセルであってもよい。たとえば、フラッシュメモリのような電流センス型の非破壊読み出しメモリであってもよい。
【0208】
また、図示はしないが、センスアンプ帯260の次段に、組み合わせ論理演算回路を配置してもよい。組み合わせ論理演算回路は、センスアンプ帯260から転送されたメモリセルの記憶データに対し、指定された論理演算および算術演算処理をさらに実行することにより、センスアンプ出力であるNOR演算結果およびNAND演算結果から、XOR等の別の演算処理結果等を生成することができる。また、組み合わせ論理演算回路は、センスアンプ帯260におけるセンスアンプの出力信号の論理レベルを反転してメインアンプ回路140へ出力することもできる。
【0209】
以上説明したマイクロコンピュータ1によれば以下の作用効果がある。
【0210】
(1)記憶回路23の読み出しを機能再構成セル20それ自体で自律的に制御することができる。したがって、可変論理機能を実現するための記憶回路23を論理回路と等価な回路として扱うことができ、実現可能な論理構成に融通性があり、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能になる。
【0211】
(2)CPU2等は第3のアドレス範囲AA3に対するライトアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路35をランダムアクセスして、機能再構成セル20の間の接続を定義するためのスイッチ制御情報を任意に書き込むことができる。
【0212】
(3)CPU2等は第1のアドレス範囲AA1に対してアクセス要求を行なうことにより、そのアクセス要求に係るアドレスが割り当てられている機能再構成セル20のSRAM25をランダムアクセスして、前記機能再構成セル20のSRAM25に所定の論理機能を実現するための情報を任意に定義することができる。
【0213】
(4)CPU2等は第2のアドレス範囲AA2に対してデータリード用等価IOレジスタアクセスを要求することにより、制御回路24がSRAM23から出力している情報を前記論理機能によって得られた結果としてリードすることができる。これにより、CPU2等は論理機能が設定された機能再構成セル20による論理動作の結果を第2のアドレス範囲AA2のアドレスを指定したリードアクセスによって任意に取得することができる。
【0214】
(5)ランダムアクセス用のAA1,AA3のアドレスマッピングに対し、機能設定された機能再構成セル20による論理動作結果を取得したりするために機能再構成セル20に割り当てたメモリマップドIOアドレスのようなAA2のアドレスマッピングを個別化することにより、機能再構成セル20及び接続選択回路35に対する論理機能をダイナミックに再構成してもそれによる論理動作結果を取得するためのリードアドレス等に変更を生ぜず、機能再構成セル20に対する論理機能をダイナミックに再構成することが容易になる。
【0215】
(6)CPU2からバスインタフェース回路40に対する機能再構成セル20への機能設定用アクセス経路にシステムバスSBUSを用い、機能設定された機能再構成セル20への等価的メモリマップドレジスタアクセスのための経路に周辺バスを用い、双方の経路が分離されるから、機能再構成セル20に周辺機能を設定して利用する場合には、CPU2等によるメモリアクセス経路と、周辺回路に対するアクセス経路を分離しているアーキテクチャとの整合を容易に図ることができる。
【0216】
(7)機能再構成メモリ8は、演算機能がハードウェアによってある程度限定された演算回路50を備えるから、可変論理に対する演算機能設定の負担を軽減することができる。要するに、演算回路機能の全てを機能再構成セルのためのコンフィグレーション情報に負担させずに済み、可変論理に対する機能設定のためのコンフィグレーション情報を生成し、また、これを設定する負担を軽減することができる。
【0217】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0218】
図2の機能再構成メモリ8はSRAMで構成した例を説明したが、例えばMRAMで構成しても良い。MRAMは高速の読出し/書込動作が可能とされる不揮発性メモリである。既知の他の不揮発性メモリであるFlashメモリや相変化メモリ等で構成することも可能である。MRAMとFlashメモリとを比較すると読出し/書込動作ともにMRAMが高速であり、Flashメモリの持つ書換え回数の制限がないという利点がある。相変化メモリと比較すると、読出し/書込動作速度はほぼ同等であるが、相変化メモリに比べて熱耐性が高いという利点がある。一方でMRAMは磁気記憶方式であることから、耐磁性が相変化メモリに比べて低い。使用環境に応じて機能再構成メモリ8を構成するメモリを選択すればよい。
【0219】
機能再構成メモリ8を不揮発性メモリで構成することで、一旦構成した論理機能は電源が遮断されたとしても維持されるとの利点を得ることができ、またROM3に格納しているプログラムを機能再構成メモリ8のランダムアクセス可能な内部メモリ(ITNR_RAM)の一部空間に格納することができる。MRAMや相変化メモリで構成することで中央処理装置のワーク領域としてのRAM4に代えて、ランダムアクセス可能な内部メモリ(ITNR_RAM)の他の空間を用いることも可能となる。
【0220】
また、等価的メモリマップドIOレジスタアクセスは一例であり、そのためのLOGE_j等のイネーブル信号や、等価的メモリマップドIOレジスタの種類は適宜変更可能である。また、システムバスと周辺バスを分けるアーキテクチャを採用しない場合には機能再構成セルに対するランダムアクセス経路と等価的メモリマップドIOレジスタアクセスの経路を分離しなくてもよい。マトリクス配置された機能再構成セルとバスの接続形態として、X,Y方向にバスを配置し、X,Yのそれぞれの方向からアドレシングしてバスに接続する接続形態を採用してもよい。機能再構成セルによって実現される周辺機能は上記に限定されず適宜変更可能である。また、CPUに対する所謂周辺機能に限定されない。アクセラレータのようにCPUの負担を軽減する演算機能等を割り当てることも可能である。機能再構成メモリと一緒に半導体装置に搭載される回路は図2に限定されず、半導体集積回路の機能や用途に応じて適宜変更可能である。半導体装置はシングルチップに限定されず、マルチチップをモジュール基板に搭載して封止したシステム・イン・パッケージのような半導体装置にも適用することができる。クロック発生制御、クロックイネーブル制御が付加された機能再構成セルはPWMやカウンタ以外の種々の回路機能の実現に広く適用することができる。
【0221】
本発明は可変論理モジュールを備えた半導体データ処理装置等の半導体装置に広く適用することができる。
【図面の簡単な説明】
【0222】
【図1】図1は機能再構成セルの一例を示すブロック図である。
【図2】図2は本発明の一例に係るデータプロセッサを全体的に示すブロック図である。
【図3】図3は複数の機能再構成セルのアレイ構成を例示するブロック図である。
【図4】図4は機能再構成メモリの全体的な構成を例示するブロック図である。
【図5】図5は図4とは異なる演算回を有する機能再構成メモリの全体的な構成を例示するブロック図である。
【図6】図6は機能再構成セルと経路選択回路のアドレスマッピングを例示するアドレスマップである。
【図7】図7は機能再構成セルにおける論理動作の基本概念を示す説明図である。
【図8】図8は図7の内部シーケンスを例示するフローチャートである。
【図9】図9は機能再構成セルでリロード型ダウンカウンタを構成する場合の例が示すブロック図である。
【図10】図10は2個の機能再構成セルでリロード型ダウンカウンタを構成する場合の例を示すブロック図である。
【図11】図11は図9の(A)の構成で3ビットカウンタを構成する場合の例を示すデータ例である。
【図12】図12は図11による3ビットカウンタ動作の動作シーケンスを例示するフローチャートである。
【図13】図13は図7の論理動作基本概念図に対応する具体的な動作例を示す動作説明図である。
【図14】図14は3ビットカウンタを夫々構成する機能再構成セルを接続選択回路で接続して6ビットカウンタを構成する例を示すブロック図である。
【図15】図15はCPUによる機能再構成メモリのアクセス形態を例示する説明図である。
【図16】図16は図5の演算回路の全体の構成を概略的に示す図である。
【図17】図17は図5の演算回路に使用可能なメモリセルの断面構造を概略的に示す図である。
【図18】図18は図17に示すメモリセルMCI、MCJおよびMCKの電気的等価回路を示す図である。
【図19】図19は可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。
【図20】図20は図5の演算回路のメモリセルのアレイ内配置を概略的に示す図である。
【図21】図21はメモリセルMCIの記憶データの組み合わせを一覧にして示す図である。
【図22】図22はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図23】図23は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCIの記憶状態との対応を一覧にして示す図である。
【図24】図24はメモリセルMCIおよびMCJの記憶データの組み合わせを一覧にして示す図である。
【図25】図25はデータ読出時のビット線および補のビット線への可変磁気抵抗素子の接続態様を示す図である。
【図26】図26はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図27】図27は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCIおよびMCJの記憶状態との対応を一覧にして示す図である。
【図28】図28は図5の演算回路に係る電流検出型センスアンプの構成の一例を示す図である。
【図29】図29はメモリセルMCI、MCJおよびMCKの記憶データの組み合わせを一覧にして示す図である。
【図30】図30はデータ読出時におけるビット線BLおよびZBLを流れる電流に応じた読出電位の関係を示す図である。
【図31】図31は図5の演算回路におけるセンスアンプの出力信号とメモリセルMCI、MCJおよびMCKの記憶状態との対応を一覧にして示す図である。
【図32】図32は図5の演算回路を用いて行なうLUT演算を例示する図である。
【符号の説明】
【0223】
1 データプロセッサ
2 中央処理装置(CPU)
4 ランダム・アクセス・メモリ(RAM)
5 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
SBUS システムバス(第1バス)
6 バス・ステート・コントローラ(BSC)
PBUS 周辺バス(第2バス)
8 機能再構成メモリ(RCFGM)
16 割込みコントローラ(INTC)
20 機能再構成セル(ACMU)
21 インタフェース制御回路(IFCNT)
23 記憶回路(MRY)
24 制御回路(MCONT)
25 スタティック・ランダム・アクセスメモリ(SRAM)
26 アドレスラッチ回路(ADRLAT)
27 メモリアレイ27
28 アドレスデコーダ(SDEC)
29 タイミングコントローラ(TMCNT)
27_D データフィールド(DFLD)
27_C 制御フィールド(CFLD)
30 セレクタ(ADRSL)
31 アドレスインクリメンタ(ICRM)
32 アクセス制御デコーダ(ACDEC)
DAT_C 制御情報
EXEVT 外部イベント信号
RDMAE_j ランダムアクセス選択信号
IOAE_j IOアクセス選択信号
RW_j リード/ライト信号
LOGE_j ロジックイネーブル信号
35 接続経路選択回路
IBUS_i 内部バス
IABUS_i 内部アドレスバス
IDBUS_i 内部データバス
36 スイッチ回路
37 接続用記憶回路
40 バスインタフェース回路(BUSIF)
41 アドレスデコーダ(ADEC)
42 内部バス選択回路(IBSL)
AA1 第1のアドレス範囲
AA2 第2のアドレス範囲
AA3 第3のアドレス範囲
50(50_1,50_2) 演算回路
51 演算制御部
52 演算ロジック部
53 メモリ部
54 演算制御部
55 演算ロック部
【特許請求の範囲】
【請求項1】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項2】
前記制御回路は次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する、請求項1記載の半導体装置。
【請求項3】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項2記載の半導体装置。
【請求項4】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項2記載の半導体装置。
【請求項5】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項6】
前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタを有する、請求項5記載の半導体装置。
【請求項7】
前記別の情報は、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である、請求項6記載の半導体装置。
【請求項8】
前記制御回路は前記セレクタの入力に出力が接続され前記アドレス演算を行うアドレス演算器を更に有し、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される、請求項7記載の半導体装置。
【請求項9】
前記複数個の機能再構成セルの記憶回路には第1のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第1のアドレス範囲に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をランダムアクセス可能とする、請求項8記載の半導体装置。
【請求項10】
前記複数個の機能再構成セルには第2のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第2のアドレス範囲に対するリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す、請求項9記載の半導体装置。
【請求項11】
前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路を更に有する請求項10記載の半導体装置。
【請求項12】
前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路とを有する、請求項11記載の半導体装置。
【請求項13】
前記接続用記憶回路には第3のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第3のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能とする、請求項12記載の半導体装置。
【請求項14】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項5記載の半導体装置。
【請求項15】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項5記載の半導体装置。
【請求項16】
アクセス要求主体となり得るロジック回路と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項17】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項16記載の半導体装置。
【請求項18】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項16記載の半導体装置。
【請求項19】
中央処理装置と、前記中央処理装置が接続される第1内部バスと、前記第1内部バスにバスステートコントローラを介して接続される第2内部バスと、前記第1内部バス及び第2内部バスに接続される機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項20】
前記複数個の機能再構成セルの記憶回路には第1のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第1バスからの第1のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする、請求項19記載の半導体装置。
【請求項21】
前記複数個の機能再構成セルには第2のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第2バスからの第2のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する、請求項20記載の半導体装置。
【請求項22】
前記接続用記憶回路には第3のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第1バスからの第3のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする、請求項21記載の半導体装置。
【請求項23】
前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第3のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定する、請求項22記載の半導体装置。
【請求項24】
前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第1のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する、請求項23記載の半導体装置。
【請求項25】
前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする、請求項24記載の半導体装置。
【請求項26】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項19記載の半導体装置。
【請求項27】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項19記載の半導体装置。
【請求項28】
前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う、請求項1、請求項5、請求項16、又は請求項19記載の半導体装置。
【請求項29】
前記所定の指示は、先に制御フィールドから読み出した情報を用いて前記データフィールドと制御フィールドの次の読み出しアドレスを決める動作を行う指示である、請求項28記載の半導体装置。
【請求項1】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記記憶回路の次の読出しアドレスを先に前記記憶回路から読出した制御フィールドの情報又は外部イベント入力に基づいて自律的に制御することが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項2】
前記制御回路は次の読出しアドレスとして、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、先に記憶回路のデータフィールドから読み出された情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報を出力する、請求項1記載の半導体装置。
【請求項3】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項2記載の半導体装置。
【請求項4】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項2記載の半導体装置。
【請求項5】
記憶回路及び制御回路を有する複数の機能再構成セルと、アクセス要求に応答して前記機能再構成セルを制御するインタフェース制御回路と、演算回路と、を有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行う、半導体装置。
【請求項6】
前記制御回路は、前記制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をアドレス情報として選択するセレクタを有する、請求項5記載の半導体装置。
【請求項7】
前記別の情報は、前記アクセス要求に伴ってインタフェース制御回路に供給されるアドレス情報、所定の外部イベント入力を条件に前記制御回路が決定するアドレス情報、又は先に前記記憶回路に出力したアドレス情報のアドレス演算により得られるアドレス情報である、請求項6記載の半導体装置。
【請求項8】
前記制御回路は前記セレクタの入力に出力が接続され前記アドレス演算を行うアドレス演算器を更に有し、前記セレクタは前記制御フィールドからの帰還入力情報に基づいてアドレス演算器の出力を選択可能であり、前記アドレス演算器の入力は前記セレクタの出力に結合される、請求項7記載の半導体装置。
【請求項9】
前記複数個の機能再構成セルの記憶回路には第1のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第1のアドレス範囲に対するアクセス要求に応答して、当該アドレスが割り当てられた機能再構成セルの前記記憶回路をランダムアクセス可能とする、請求項8記載の半導体装置。
【請求項10】
前記複数個の機能再構成セルには第2のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第2のアドレス範囲に対するリードアクセス要求に応答して、当該アドレスの制御回路がそのとき記憶回路に出力させている情報を読み出す、請求項9記載の半導体装置。
【請求項11】
前記複数の機能再構成セルの間を可変可能に接続する接続経路選択回路を更に有する請求項10記載の半導体装置。
【請求項12】
前記接続経路選択回路は、一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持するための接続用記憶回路とを有する、請求項11記載の半導体装置。
【請求項13】
前記接続用記憶回路には第3のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、第3のアドレス範囲に対するライトアクセス要求に応答して、当該アドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能とする、請求項12記載の半導体装置。
【請求項14】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項5記載の半導体装置。
【請求項15】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項5記載の半導体装置。
【請求項16】
アクセス要求主体となり得るロジック回路と、前記ロジック回路からのアクセス要求に応答して動作する機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項17】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項16記載の半導体装置。
【請求項18】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項16記載の半導体装置。
【請求項19】
中央処理装置と、前記中央処理装置が接続される第1内部バスと、前記第1内部バスにバスステートコントローラを介して接続される第2内部バスと、前記第1内部バス及び第2内部バスに接続される機能再構成メモリとを有する半導体装置であって、
前記機能再構成メモリは、記憶回路及び制御回路を有する複数の機能再構成セルと、前記複数の機能再構成セルの間を可変化能に接続する接続経路選択回路と、アクセス要求に応答して前記機能再構成セル及び接続経路選択回路を制御するインタフェース制御回路と、演算回路とを有し、
前記記憶回路は前記制御回路から出力されるアドレス情報に基づいてアクセスされるデータフィールドと制御フィールドを有し、
前記制御回路は前記データフィールド及び制御フィールドから同期的に読み出された情報を帰還入力し、制御フィールドからの帰還入力情報に基づいて、データフィールドからの帰還入力情報又は別の情報をデータフィールド及び制御フィールドを次に同期的に読み出し制御するためのアドレス情報とすることが可能であり、
前記演算回路は、前記記憶回路の前記データフィールドから出力される演算制御データをデコードして演算を行い、
前記接続経路選択回路は一の機能再構成セルにおけるデータフィールドからの出力と制御フィールドからの出力とを他の機能再構成セルの制御回路に選択的に接続するスイッチ回路と、前記スイッチ回路のスイッチ制御情報を保持する接続用記憶回路とを有する、半導体装置。
【請求項20】
前記複数個の機能再構成セルの記憶回路には第1のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第1バスからの第1のアドレス範囲に対するアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられている機能再構成セルの前記記憶回路をランダムアクセス可能にする、請求項19記載の半導体装置。
【請求項21】
前記複数個の機能再構成セルには第2のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第2バスからの第2のアドレス範囲に対するリードアクセス要求に応答して、そのアクセス要求に係るアドレスの制御回路がそのとき記憶回路から読み出している情報を出力する、請求項20記載の半導体装置。
【請求項22】
前記接続用記憶回路には第3のアドレス範囲のアドレスがマッピングされ、
前記インタフェース制御回路は、前記第1バスからの第3のアドレス範囲に対するライトアクセス要求に応答して、そのアクセス要求に係るアドレスが割り当てられた前記接続用記憶回路をランダムアクセス可能にする、請求項21記載の半導体装置。
【請求項23】
前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第3のアドレス範囲に対するライトアクセスを要求して、前記接続用記憶回路に前記スイッチ制御情報を初期設定する、請求項22記載の半導体装置。
【請求項24】
前記中央処理装置は前記第1バスを介して機能再構成メモリに前記第1のアドレス範囲に対するライトアクセスを要求して、前記機能再構成セルの記憶回路に所定の論理機能を実現するためのコンフィグレーション情報を初期設定する、請求項23記載の半導体装置。
【請求項25】
前記中央処理装置は第2バスを介して前記機能再構成メモリに第2のアドレス範囲に対するリードアクセスを要求して、そのアクセス要求に係るアドレスの前記機能再構成セルが実現する前記論理機能により得られた結果をリードする、請求項24記載の半導体装置。
【請求項26】
前記演算回路は、単数又は複数の所定の機能再構成セルのデータフィールドから出力されるデータを入力して演算を行う演算ロジック部と、上記とは別の機能再構成セルのデータフィールドから出力されるデータをデコードして前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項19記載の半導体装置。
【請求項27】
前記演算回路は、前記インタフェース制御回路を介してランダムアクセスされるメモリ部と、メモリ部から読み出されたデータを演算する演算ロジック部と、所定の機能再構成セルのデータフィールドから出力されるデータをデコードして前記メモリ部の読出しと前記演算ロジック部の演算動作を制御する演算制御部とを有する、請求項19記載の半導体装置。
【請求項28】
前記制御部は、前記インタフェース制御部に与えられる所定の指示に基づいて、前記記憶回路のデータフィールドと制御フィールドに対するライトプロテクションを行う、請求項1、請求項5、請求項16、又は請求項19記載の半導体装置。
【請求項29】
前記所定の指示は、先に制御フィールドから読み出した情報を用いて前記データフィールドと制御フィールドの次の読み出しアドレスを決める動作を行う指示である、請求項28記載の半導体装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公開番号】特開2010−124373(P2010−124373A)
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2008−297914(P2008−297914)
【出願日】平成20年11月21日(2008.11.21)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願日】平成20年11月21日(2008.11.21)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
[ Back to top ]