(57)【要約】【課題】  システムの性能がデータ転送により低下することを防止するる。【解決手段】  メモリセルアレイＡＲＹは、複数のサブアレイＳＡＲＹを有する。データ転送部ＤＴＵは、サブアレイＳＡＲＹ間でデータを転送するためにサブアレイＳＡＲＹを交互にアクセスする。これにより、半導体メモリＭＥＭが接続されているバスにデータを出力することなく、サブアレイＳＡＲＹの１つに記憶されているデータを、他のサブアレイＳＡＲＹに転送できる。データ転送によりバスが使用されないため、例えば、システムＭＳＹＳ内のマイクロコントローラＣＮＴは、データ転送中にもバスを使用できる。この結果、システムＭＳＹＳの性能がデータ転送により低下することを防止できる。【選択図】    図１
2007219851.tif 000002
【特許請求の範囲】
【請求項１】
複数のサブアレイを有するメモリセルアレイと、
前記サブアレイ間でデータを転送するために前記サブアレイを交互にアクセスするデータ転送部とを備えていることを特徴とする半導体メモリ。
【請求項２】
請求項１記載の半導体メモリにおいて、
前記データ転送部により転送されるデータの転送元アドレスと、データの転送先アドレスを格納する転送レジスタを備えていることを特徴とする半導体メモリ。
【請求項３】
請求項１記載の半導体メモリにおいて、
半導体メモリに接続されるコントローラ毎に前記サブアレイのアクセス権を設定するためのアクセス権レジスタを備えていることを特徴とする半導体メモリ。
【請求項４】
請求項１記載の半導体メモリにおいて、
前記データ転送部による前記サブアレイのアクセス権を設定するアクセス権レジスタを備えていることを特徴とする半導体メモリ。
【請求項５】
請求項１記載の半導体メモリにおいて、
論理をプログラム可能なフィールドプログラマブル部と、
前記フィールドプログラマブル部の論理を構成するためのプログラムが格納される不揮発性のプログラム領域とを備え、
前記データ転送部は、前記フィールドプログラマブル部に形成されることを特徴とする半導体メモリ。
【請求項６】
請求項１記載の半導体メモリにおいて、
２つの前記サブアレイは、データを記憶する領域と、データのエラー訂正コードを記憶する領域とをそれぞれ有し、
２つの前記サブアレイに格納される前記エラー訂正コードの体系は、互いに異なることを特徴とする半導体メモリ。
【請求項７】
請求項６記載の半導体メモリにおいて、
データの格納先に応じて前記エラー訂正コードをそれぞれ生成するとともに、サブアレイから読み出したデータをエラー訂正コードを用いてエラー訂正するエラー制御回路を備えていることを特徴とする半導体メモリ。
【請求項８】
メモリセルアレイを有する半導体メモリと、
前記半導体メモリをアクセスする複数のコントローラと、
前記半導体メモリと前記コントローラとを接続するデータ線とを備え、
前記半導体メモリを介して前記コントローラ間でデータを転送するために、前記半導体メモリは、前記コントローラの一つから出力されるデータを受信し、受信したデータを別のコントローラに出力するデータ転送部を備えていることを特徴とするメモリシステム。
【請求項９】
請求項８記載のメモリシステムにおいて、
前記メモリセルアレイは、前記各コントローラによりアクセスされる通常記憶領域と、前記データ転送部により受信されたデータを一時的に保持するバッファ領域とに区画されていることを特徴とするメモリシステム。
【請求項１０】
請求項８記載のメモリシステムにおいて、
前記コントローラは、マスタコントローラと複数のサブコントローラとのいずれかであ
り、
前記データ線は、前記コントローラ毎に独立して配線され、
前記データ転送部は、前記マスタコントローラから受信したデータを複数の前記サブコントローラに出力することを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送機能を有する半導体メモリおよびこの半導体メモリを有するメモリシステムに関する。
【背景技術】
【０００２】
半導体メモリに対するデータの読み書きは、ＣＰＵ等のマイクロコントローラにより半導体メモリをアクセスすることで実施される。マイクロコントローラの負荷を軽減するために、半導体メモリは、ＤＭＡＣ（Direct Memory Access Controller）によりアクセスされる場合もある。しかし、マイクロコントローラとＤＭＡＣが同じバスに接続されている場合、マイクロコントローラは、ＤＭＡＣの動作中にバスを使用できない。これにより、システムの性能は低下する。そこで、ＤＭＡＣに接続されるバスとマイクロコントローラに接続されるバスとを互いに独立させ、ＤＭＡＣの動作中にマイクロコンピュータの動作を可能にする技術が提案されている（例えば、特許文献１参照）。
【０００３】
一方、半導体メモリの記憶容量は、年々増加している。このため、システムに搭載されている複数の半導体メモリチップは、１つの半導体メモリチップに置き換え可能になってきている。この場合、マイクロコントローラ用のデータの転送は、複数の半導体メモリチップの間ではなく、半導体メモリチップ内のメモリセルアレイの間で実施する必要がある。
【０００４】
また、一般に、複数のマイクロコントローラの間でデータを転送する場合、マイクロコントローラの間に専用の信号線を配線する等、転送のために特別の仕様を決める必要がある。さらに、マイクロコントローラの動作周波数やデータのビット幅が、互いに異なる場合、データを直接転送することは難しい。この場合、データは、バッファとして動作する半導体メモリを介して転送される。
【特許文献１】特開２０００−２３５５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
マイクロコントローラで使用するデータが、半導体メモリ内のメモリセルアレイの間で転送される場合、半導体メモリは、マイクロコントローラまたはＤＭＡＣによりアクセスされる。この場合、半導体メモリが接続されたバスは、データが転送されている間、他のアクセス等に使用できない。このため、バスの使用効率は低下し、システムの性能は低下する。
【０００６】
また、半導体メモリをバッファとして用いて、マイクロコントローラの間でデータを転送する場合、システム毎に転送仕様を決める必要がある。この場合、データの転送効率は、システム毎に異なるため、システムによっては、その性能が低下する場合がある。転送仕様を標準化し、システムの性能が低下することを防止するためには、複数のマイクロコントローラに共通に使用される半導体メモリに、マイクロコントローラの間でデータを転送するための制御回路を搭載すればよい。しかし、そのような制御回路は提案されていない。
【０００７】
本発明の目的は、システムの性能がデータ転送により低下することを防止することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の形態では、メモリセルアレイは、複数のサブアレイを有する。データ転送部は、サブアレイ間でデータを転送するためにサブアレイを交互にアクセスする。これにより、半導体メモリが接続されているバスにデータを出力することなく、サブアレイの１つに記憶されているデータを、他のサブアレイに転送できる。したがって、データ転送によりバスが使用されないため、例えば、システム内のマイクロコントローラは、データ転送中にもバスを使用できる。この結果、システムの性能がデータ転送により低下することを防止できる。
【０００９】
例えば、データ転送部は、マスタコントローラからの転送要求のみに応答して、データの転送を開始する。データ転送部は、半導体メモリに接続されるサブコントローラからの転送要求を受け付けない。これにより、サブコントローラによって不正なデータ転送が実施されることを防止できる。すなわち、半導体メモリを搭載するシステムの信頼性を向上できる。
【００１０】
本発明の第１の形態における好ましい例では、データ転送部により転送されるデータの転送元アドレスと、データの転送先アドレスが、転送レジスタに格納される。データ転送を簡易な設定により実施できるため、半導体メモリをアクセスするコントローラがデータ転送のために費やすバスサイクルを最小限にできる。したがって、システムの性能がデータ転送により低下することを防止できる。
【００１１】
本発明の第１の形態における好ましい例では、半導体メモリに接続されるコントローラによるサブアレイのアクセス権が、アクセス権レジスタに設定される。例えば、サブアレイの１つを書き込み禁止に設定し、別のサブアレイを読み書き可能に設定することで、これらサブアレイをＲＯＭとＲＡＭとしてそれぞれアクセスできる。すなわち、１つの半導体メモリを、異種の半導体メモリとしてアクセスできる。この結果、システムに搭載されている複数の半導体メモリチップを、１つの半導体メモリチップに置き換えることができる。
【００１２】
本発明の第１の形態における好ましい例では、データ転送部によるサブアレイのアクセス権が、アクセス権レジスタに設定される。例えば、データの書き換えを禁止するサブアレイがある場合、このサブアレイに対するデータ転送部のアクセスを禁止することで、データが書き換えられることを防止できる。これにより、半導体メモリを搭載するシステムの信頼性を向上できる。
【００１３】
本発明の第１の形態における好ましい例では、データ転送部は、論理をプログラム可能なフィールドプログラマブル部に形成される。不揮発性のプログラム領域は、フィールドプログラマブル部の論理を構成するためのプログラムが格納される。これにより、データ転送部の動作仕様をシステムの仕様に合わせてシステム上で変更できる。
【００１４】
本発明の第１の形態における好ましい例では、２つのサブアレイは、データを記憶する領域と、データのエラー訂正コードを記憶する領域とをそれぞれ有している。２つのサブアレイに格納されるエラー訂正コードの体系は、互いに異なる。したがって、２つのサブアレイを、エラー訂正コードの体系の異なる２つの半導体メモリとしてアクセスできる。すなわち、システムに搭載されている複数の半導体メモリチップを、１つの半導体メモリチップに置き換えることができる。
【００１５】
本発明の第１の形態における好ましい例では、エラー訂正コード生成部は、データの格納先に応じてエラー訂正コードをそれぞれ生成する。これにより、半導体メモリをアクセスするコントローラは、エラー訂正コードを生成することなく、データのみを半導体メモリに書き込めばよい。したがって、コントローラの処理を簡易にでき、半導体メモリに書
き込むデータ数を減らすことができる。この結果、システムの性能がデータ転送により低下することを防止できる。
【００１６】
例えば、エラー訂正コード生成部のコード変換部は、データ転送部により、サブアレイの１つからサブアレイの別の一つにデータが転送されるときに、転送元のサブアレイから読み出されたエラー訂正コードを転送先のサブアレイに対応するエラー訂正コードに変換する。これにより、半導体メモリをアクセスするコントローラの負荷を増やすことなく、データの転送時にエラー訂正コードを自動的に変換できる。
【００１７】
本発明の第２の形態では、メモリセルアレイを有する半導体メモリ、半導体メモリをアクセスする複数のコントローラ、および半導体メモリとコントローラとを接続するデータ線とによりメモリシステムが構成されている。半導体メモリのデータ転送部は、コントローラの一つから出力されるデータを受信し、受信したデータを別のコントローラに出力する。これにより、コントローラの動作仕様が互いに異なる場合にも、半導体メモリを介してコントローラ間でデータを転送できる。具体的には、例えば、コントローラのデータのビット幅が互いに異なる場合にも、コントローラ間でデータを転送できる。あるいは、コントローラの動作周波数が互いに異なる場合にも、コントローラ間でデータを転送できる。
【００１８】
例えば、データ転送部は、コントローラによる半導体メモリのアクセス状況を示すフラグを有している。これにより、コントローラによるアクセスの競合を防止できる。あるいは、データ転送部は、コントローラによる半導体メモリのアクセス状況を示す信号を出力する。コントローラは、アクセス状況の確認のために半導体メモリをアクセスする必要がない。半導体メモリのアクセス頻度が下がるため、メモリシステムの性能が低下することを防止できる。さらに、例えば、データ転送部は、受信したデータを別のコントローラに出力するための同期信号である転送クロックを出力する。これにより、各コントローラは、半導体メモリをアクセスすることなく、データを受信できる。半導体メモリのアクセス頻度が下がるため、メモリシステムの性能が低下することを防止できる。
【００１９】
あるいは、データ転送部を、フィールドプログラマブル部に形成し、不揮発性のプログラム領域に、フィールドプログラマブル部の論理を構成するためのプログラムを格納することで、データ転送部の動作仕様をシステムの仕様に合わせてシステム上で変更できる。
【００２０】
本発明の第２の形態における好ましい例では、メモリセルアレイは、通常記憶領域とバッファ領域とに区画されている。通常記憶領域は、各コントローラによりアクセスされる。バッファ領域は、データ転送部により受信されたデータを一時的に保持する。メモリセルアレイを、通常のアクセスで使用される通常メモリ領域とバッファ領域とに分けることで、データの転送量が多い場合にも、通常メモリ領域が誤って書き替えられることを防止できる。この結果、メモリシステムの信頼性を向上できる。
【００２１】
本発明の第２の形態における好ましい例では、コントローラは、マスタコントローラと複数のサブコントローラのいずれかである。データ線は、コントローラ毎に独立して配線されている。データ転送部は、マスタコントローラから受信したデータを複数のサブコントローラに出力する。すなわち、半導体メモリをバッファとして機能させることで、データを複数のサブコントローラに同時に出力できる。例えば、マスタコントローラから送られる転送先情報を格納する転送先レジスタを、データ転送部に形成することで、データ転送部は、データを出力すべきサブコントローラを容易に認識できる。
【発明の効果】
【００２２】
システムの性能がデータ転送により低下することを防止できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部端子を示している。図中、太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。外部端子を介して供給される信号には、端子名と同じ符号を使用する。また、信号が伝達される信号線には、信号名と同じ符号を使用する。
【００２４】
図１は、本発明の第１の実施形態を示している。この実施形態では、半導体メモリＭＥＭは、シリコン基板上にＣＭＯＳプロセスを使用してＦＲＡＭ（Ferroelectric RAM）等の不揮発性の半導体メモリとして形成されている。
【００２５】
半導体メモリＭＥＭは、ダイレクトメモリアクセスコントローラＤＭＡＣ、動作制御回路ＯＰＣおよびメモリセルアレイＡＲＹを有している。メモリＭＥＭは、複数のマスタコントローラＣＮＴ（ＣＮＴ０−１）によりアクセスされるために、マスタコントローラＣＮＴ０−１に共通のアドレス端子ＡＤ、共通のデータ端子ＤＴおよびコントローラＣＮＴ０−１にそれぞれ対応するコマンド端子ＣＭＤ１−２を有している。コントローラＣＮＴ０−１は、ＣＰＵ等のマイクロコントローラであり、データを一時的に記憶するためのバッファＢＵＦを有している。そして、メモリＭＥＭ、コントローラＣＮＴ０−１およびメモリＭＥＭとコントローラＣＮＴ０−１とを接続する外部バス（ＡＤ、ＤＴ、ＣＭＤ０−１）によりメモリシステムＭＳＹＳが形成されている。
【００２６】
コントローラＣＮＴ０は、メモリＭＥＭをＤＲＡＭとしてアクセスする。コントローラＣＮＴ１は、メモリＭＥＭをＮＯＲ型フラッシュメモリ（ＦＬＡＳＨ）としてアクセスする。このために、動作制御回路ＯＰＣは、ＤＲＡＭインタフェース（ＤＲＡＭのアクセス仕様）およびＦＬＡＳＨインタフェース（ＦＬＡＳＨのアクセス仕様）をＦＲＡＭインタフェース（ＦＲＡＭのアクセス仕様）に変換する機能を有する。
【００２７】
ＤＭＡＣは、外部から書き換え可能な転送レジスタＤＭＡＲＥＧおよびデータ転送部ＤＴＵを有している。転送レジスタＤＭＡＲＥＧは、例えば、コントローラＣＮＴ０のＩ／Ｏ空間に割り当てられており（メモリマップトＩ／Ｏ）、コントローラＣＮＴ０のみにより読み書き可能である。コントローラＣＮＴ０は、転送レジスタＤＭＡＲＥＧを読み書きするときに、コマンドＣＭＤ０（読み出しコマンドまたは書き込みコマンド）を、転送レジスタＤＭＡＲＥＧに割り当てられているアドレスＡＤとともにメモリＭＥＭに供給する。
【００２８】
転送レジスタＤＭＡＲＥＧは、転送すべきデータが格納されているメモリ領域の先頭アドレス（転送元アドレス）を記憶するソースアドレス領域と、データが転送されるメモリ領域の先頭アドレス（転送先アドレス）を記憶するディスティネーションアドレス領域と、データの転送数（例えば、バイト数）を記憶する転送バイト領域とを有している。データ転送を簡易なレジスタ設定により実施できるため、コントローラＣＮＴ０がデータ転送のために費やすバスサイクルを最小限にできる。したがって、メモリシステムＭＳＹＳの性能がデータ転送により低下することを防止できる。
【００２９】
データ転送部ＤＴＵは、コントローラＣＮＴ０からの転送要求コマンドＣＭＤ０（ＴＲＥＱ）に応答して、データの転送動作を開始する。コントローラＣＮＴ０は、ＤＭＡＣに転送要求を供給するマスタコントローラとして動作する。コントローラＣＮＴ１は、ＤＭＡＣに転送要求を供給できないサブコントローラとして動作する。これにより、コントローラＣＮＴ１によってデータが不正に転送されることを防止できる。すなわち、メモリシステムＭＳＹＳの信頼性を向上できる。
【００３０】
転送要求に応答して、データ転送部ＤＴＵは、転送レジスタＤＭＡＲＥＧからソースアドレス、ディスティネーションアドレスおよび転送数を読み出す。データ転送部ＤＴＵは、ソースアドレスに対する読み出し動作とディスティネーションアドレスに対する書き込み動作とを交互に実行するために、すなわち、後述するサブアレイＳＡＲＹを交互にアクセスするために、アドレスＴＡＤ、コマンドＴＣＭＤ（読み出しコマンドまたは書き込みコマンド）を動作制御回路ＯＰＣに順次に出力する。この際、アドレスＴＡＤは、転送数に対応する数だけ順次増加される。
【００３１】
動作制御回路ＯＰＣは、コマンド端子ＣＭＤ０−１を介してメモリＭＥＭの外部から供給されるコマンドＣＭＤ０−１（外部アクセス要求）と、ＤＭＡＣから供給されるコマンドＴＣＭＤ（ＤＭＡ転送要求）をデコードし、メモリセルアレイＡＲＹをアクセスするためのアクセス信号（内部アドレスＩＡＤ、内部コマンドＩＣＭＤ）を出力し、内部データＩＤＴを入力または出力する。また、動作制御回路ＯＰＣは、メモリセルアレイＡＲＹを複数のサブアレイＳＡＲＹ（この例では、ＳＡＲＹ０−４）に区画するための外部から書き換え可能なパーティションレジスタＰＡＲＴＲＥＧを有している。
【００３２】
パーティションレジスタＰＡＲＴＲＥＧは、例えば、コントローラＣＮＴ０のＩ／Ｏ空間に割り当てられている（メモリマップトＩ／Ｏ）。パーティションレジスタＰＡＲＴＲＥＧは、例えば、区画されるサブアレイＳＡＲＹの数、各サブアレイＳＡＲＹの先頭アドレスと最終アドレス、各サブアレイＳＡＲＹのアクセス権を記憶する領域を有する。ここで、アクセス権とは、コントローラＣＮＴ０−１による読み出し許可、書き込み許可と、ＤＭＡＣによる書き込み禁止である。読み出し許可、書き込み許可は、コントローラＣＮＴ０−１毎に設定できる。このように、パーティションレジスタＰＡＲＴＲＥＧは、サブアレイＳＡＲＹ０−４のアクセス権を設定するアクセス権レジスタとして機能する。
【００３３】
また、動作制御回路ＯＰＣは、コントローラＣＮＴ０−１によるアクセスが競合したときに、アクセスの順序を決めるアービタ（図示せず）を有している。アービタは、コマンドＣＭＤ０−１が競合したときに、予め設定されている優先権にしたがって、どちらのコマンドを優先させるかを決定する。この実施形態では、コントローラＣＮＴ１は、メモリセルアレイＡＲＹに記憶されているデータをプログラムとしてフェッチして動作する。このため、コマンドＣＭＤ１の優先権がコマンドＣＭＤ０の優先権より高く設定されている。
【００３４】
メモリセルアレイＡＲＹは、パーティションレジスタＰＲＴＲＥＧにより区画されるサブアレイＳＡＲＹ０−４、アドレスデコーダおよびメモリセルをアクセスするためのワード線、ビット線、センスアンプなどを有している。サブアレイＳＡＲＹ０−４は、ＦＲＡＭのメモリセル（不揮発性メモリセル）を有する。メモリセルアレイＡＲＹは、内部コマンドＩＣＭＤに応じて読み出し動作または書き込み動作を実行する。
【００３５】
図２は、図１に示したメモリセルアレイＡＲＹのメモリマップを示している。なお、Ｉ／Ｏ空間のメモリマップは、図示を省略している。メモリセルアレイＡＲＹは、サブアレイＳＡＲＹ０−４に区画された３２０ｋワードの記憶領域を有している。各サブアレイＳＡＲＹ０−４は、６４ｋワードの記憶領域を有している。サブアレイＳＡＲＹ０−４の記憶領域の大きさは、パーティションレジスタＰＡＲＴＲＥＧにより変更できる。
【００３６】
サブアレイＳＡＲＹ０は、ＲＯＭ領域であり、コントローラＣＮＴ１により読み出しのみ可能であり（Ｒ）、コントローラＣＮＴ０によりアクセスできない。サブアレイＳＡＲＹ０には、コントローラＣＮＴ１が実行するプログラムが格納される。プログラムが書き替わることを防止するために、サブアレイＳＡＲＹ０は、ＤＭＡＣによるサブアレイＳＡ
ＲＹ０の書き込みアクセスが禁止されている。この禁止は、パーティションレジスタＰＲＴＲＥＧにより設定可能である。不正なＤＭＡ動作によるデータの書き換えが防止されるため、メモリシステムＭＳＹＳの信頼性を向上できる。
【００３７】
サブアレイＳＡＲＹ１は、コントローラＣＮＴ０により読み書き可能であり（Ｒ／Ｗ）、コントローラＣＮＴ１によりアクセスできない。サブアレイＳＡＲＹ２は、コントローラＣＮＴ０−１により読み書き可能である（Ｒ／Ｗ）。サブアレイＳＡＲＹ３は、コントローラＣＮＴ０により読み書き可能であり（Ｒ／Ｗ）、コントローラＣＮＴ１によりアクセスできない。サブアレイＳＡＲＹ４は、ＲＯＭ領域であり、コントローラＣＮＴ１により読み出しのみ可能であり（Ｒ）、コントローラＣＮＴ０によってアクセスできない。
【００３８】
このように、本実施形態では、各サブアレイＳＡＲＹ０−４を複数のコントローラＣＮＴで共有な領域とするか、所定のコントローラＣＮＴに対して排他的な領域とするかを設定できる。すなわち、各サブアレイＳＡＲＹ０−４のアクセス権（読み書き許可、読み出し許可、読み出し禁止、書き込み禁止等）を設定できる。
【００３９】
上述したように、コントローラＣＮＴ０は、サブアレイＳＡＲＹ１−３をＤＲＡＭとしてアクセスする。コントローラＣＮＴ１は、サブアレイＳＡＲＹ０、４をＦＬＡＳＨとしてアクセスする。すなわち、１つのメモリＭＥＭを、従来のＤＲＡＭチップとＦＬＡＳＨチップの代わりに使用できる。換言すれば、コントローラＣＮＴ０−１毎に用意していた従来の半導体メモリ（ＤＲＡＭ、ＦＬＡＳＨ）を１つの半導体メモリＭＥＭに置き換えることができる。この結果、システムコストを削減できる。
【００４０】
メモリシステムＭＳＹＳは、例えばパワーオフ時に、ＤＲＡＭとしてアクセスされるサブアレイＳＡＲＹ３に記憶されているデータをＦＬＡＳＨとしてアクセスされるサブアレイＳＡＲＹ４に待避する。これにより、メモリシステムＭＳＹＳは、従来の半導体メモリチップ（ＤＲＡＭとＦＬＡＳＨ）のパワーオフ動作を、１つの半導体メモリＭＥＭで実現できる。さらに、ＤＲＡＭ機能とＦＬＡＳＨ機能を１チップで実現できるため、ＤＲＡＭとしてもアクセスでき、かつＦＬＡＳＨとしてもアクセスできる共有領域（例えば、サブアレイＳＡＲＹ２）を容易に実現できる。
【００４１】
以上、第１の実施形態では、サブアレイＳＡＲＹに記憶され、コントローラＣＮＴ０−１で使用するデータを、外部データ線ＤＴに出力することなく転送できる。コントローラＣＮＴ０−１は、データの転送中に外部バス（ＡＤ、ＤＴ）を使用できる。この結果、メモリシステムＭＳＹＳの性能がデータ転送により低下することを防止できる。
【００４２】
図３は、本発明の第２の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、ＤＭＡＣは、フィールドプログラマブル部ＦＰに形成される。その他の構成は、第１の実施形態と同じである。
【００４３】
フィールドプログラマブル部ＦＰは、例えば、多数の論理素子と、論理素子間を接続するための多数のスイッチング素子とで構成されている。スイッチング素子は、揮発性のメモリセルを用いて形成されている。フィールドプログラマブル部ＦＰのスイッチング素子は、プログラム記憶部ＰＲＧからロードされるプログラムに応じてプログラムされる。プログラムにより、所定のハードウエア機能が実現される。
【００４４】
プログラム記憶部ＰＲＧは、ＦＲＡＭの等の不揮発性のメモリセルを用いて構成されている。プログラム記憶部ＰＲＧは、プログラム入力端子ＰＩＮを介して外部から供給されるプログラムを記憶する。この例では、プログラム記憶部ＰＲＧは、２種類のプログラム
を記憶可能である。プログラム記憶部ＰＲＧは、例えば、モード端子ＭＤを介して外部から供給されるモード信号ＭＤの論理レベルに応じて、ＤＭＡＣを構成するためにプログラムの一方をフィールドプログラマブル部ＦＰに出力する。プログラムのフィールドプログラマブル部ＦＰへの転送は、例えば、ＪＴＡＧ（Joint Test Action Group）、Ｉ２Ｃ（Inter Integrated Circuit）などの規格の専用ポートを介して実施される。
【００４５】
以上、第２の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、ＤＭＡＣをフィールドプログラマブル部ＦＰに形成することにより、ＤＭＡＣの機能を半導体メモリＭＥＭを製造後に変更できる。ＤＭＡＣの動作仕様をメモリシステムＭＳＹＳの仕様に合わせてメモリシステムＭＳＹＳ上で変更できる。
【００４６】
図４は、本発明の第３の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリＭＥＭは、１つのマスタコントローラＣＮＴ０に接続するための端子ＡＤ、ＤＴ、ＣＭＤ０を有している。このため、動作制御回路ＯＰＣは、アービタを有していない。その他の構成は、第１の実施形態と同じである。第３の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。
【００４７】
図５は、本発明の第４の実施形態を示している。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣは、エラー制御回路ＥＣＣＣＮＴを有している。その他の構成は、メモリセルアレイＡＲＹがデータと共にエラー訂正コードを記憶することを除き、第１の実施形態とほぼ同じである。
【００４８】
この実施形態では、サブアレイＳＡＲＹ１−３は、コントローラＣＮＴ０によりＤＲＡＭとしてアクセスされる。サブアレイＳＡＲＹ０、ＳＡＲＹ４は、コントローラＣＮＴ１によりＦＬＡＳＨとしてアクセスされる。さらに、サブアレイＳＡＲＹ１−３は、データを記憶する領域とＤＲＡＭ用のエラー訂正コードを記憶する領域とを有している。サブアレイＳＡＲＹ０、ＳＡＲＹ４は、データを記憶する領域とＦＬＡＳＨ用のエラー訂正コードを記憶する領域とを有している。例えば、ＤＲＡＭ用のエラー訂正コードは、８バイト（６４ビット）のデータ毎に１バイト（８ビット）である。ＦＬＡＳＨ用のエラー訂正コードは、５１２バイトのデータ毎に１６バイトである。
【００４９】
エラー制御回路ＥＣＣＣＮＴは、ＤＲＡＭとしての書き込みデータおよびＦＬＡＳＨとして書き込みデータを用いて、エラー訂正コードをそれぞれ生成するエラー訂正コード生成部と、読み出しデータにエラーがあることを検出した場合に、対応するエラー訂正コードを用いてエラー訂正するエラー訂正部とを有している。さらに、エラー制御回路ＥＣＣＣＮＴは、ＤＭＡＣによるＤＲＡＭ領域からＦＬＡＳＨ領域へのデータ転送時に、ＤＲＡＭ用のエラー訂正コードをＦＬＡＳＨ用のエラー訂正コードに変換するコード変換部（図示せず）を有している。コード変換部は、ＤＭＡＣによるＦＬＡＳＨ領域からＤＲＡＭ領域へのデータ転送時に、ＦＬＡＳＨ用のエラー訂正コードをＤＲＡＭ用のエラー訂正コードに変換する。
【００５０】
具体的には、エラー制御回路ＥＣＣＣＮＴは、まず、ＤＲＡＭとして読み出したデータをエラー訂正した後にＦＬＡＳＨ用のエラー訂正コードを生成する。次に、動作制御回路ＯＰＣは、データおよびＦＬＡＳＨ用のエラー訂正コードをＦＬＡＳＨ領域に書き込む。なお、ＤＭＡ転送がＦＬＡＳＨ領域からＤＲＡＭ領域に行われる場合にも、データがエラー訂正され、ＦＬＡＳＨ用のエラー訂正コードがＤＲＡＭ用のエラー訂正コードに変換される。
【００５１】
この実施形態では、エラー訂正処理がメモリＭＥＭ内で実施されるため、コントローラＣＮＴ０−１は、エラー訂正コードを生成することなく、データのみをメモリＭＥＭに書き込めばよい。さらに、コントローラＣＮＴ０−１は、エラーを訂正する必要がない。したがって、コントローラＣＮＴ０−１の処理を簡易にでき、メモリＭＥＭに書き込むデータ数を減らすことができる。さらに、エラー訂正コードの変換を、メモリＭＥＭ内で自動的に実施できる。この結果、メモリＭＥＭをアクセスするときの外部バスの使用頻度を下げることができ、システムＳＹＳの性能が、エラー訂正処理を含むデータ転送により低下することを防止できる。
【００５２】
以上、第４の実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、サブアレイＳＡＲＹ１−３とサブアレイＳＡＲＹ０、ＳＡＲＹ４とを、エラー訂正コードの体系の異なるＤＲＡＭおよびＦＬＡＳＨとしてアクセスできる。すなわち、複数の半導体メモリチップを、１つの半導体メモリチップＭＥＭに置き換えることができる。
【００５３】
図６は、本発明の第５の実施形態を示している。この実施形態では、半導体メモリＭＥＭは、シリコン基板上にＣＭＯＳプロセスを使用してＦＲＡＭ（Ferroelectric RAM）等の不揮発性の半導体メモリとして形成されている。
【００５４】
メモリＭＥＭは、動作制御回路ＯＰＣおよびメモリセルアレイＡＲＹを有している。メモリＭＥＭは、複数のマスタコントローラＣＮＴ（ＣＮＴ０−１）によりアクセスされるために、マスタコントローラＣＮＴ０−１に共通のアドレス端子ＡＤ、共通のデータ端子ＤＴおよびコントローラＣＮＴ０−１にそれぞれ対応するコマンド端子ＣＭＤ０−１を有している。コントローラＣＮＴ０−１は、ＣＰＵ等のマイクロコントローラである。そして、メモリＭＥＭ、コントローラＣＮＴ０−１およびメモリＭＥＭとコントローラＣＮＴ０−１とを接続する外部バス（ＡＤ、ＤＴ、ＣＭＤ０−１）によりメモリシステムＭＳＹＳが形成されている。
【００５５】
なお、コントローラＣＮＴ０のデータ線ＤＴの幅は１６ビットであり、コントローラＣＮＴ１のデータ線の幅は８ビットである。このため、コントローラＣＮＴ１のデータ端子は、外部バスのデータ線ＤＴの下位８ビットに接続されている。
【００５６】
メモリセルアレイＡＲＹは、通常メモリ領域ＭＥＭＡおよびバッファ領域ＢＵＦ０−１を有している。通常メモリ領域ＭＥＭＡは、コントローラＣＮＴ０−１によりそれぞれ読み書きされるデータを記憶するメモリ領域である。バッファ領域ＢＵＦ０は、コントローラＣＮＴ０からコントローラＣＮＴ１に転送されるデータが一時的に保持される。バッファ領域ＢＵＦ１は、コントローラＣＮＴ１からコントローラＣＮＴ０に転送されるデータが一時的に保持される。通常のアクセスで使用される通常メモリ領域ＭＥＭＡと、コントローラＣＮＴ０−１の間で転送されるデータの保持のために使用されるバッファ領域ＢＵＦ０−１とを区別することで、データＤＴの転送量が多い場合にも、通常メモリ領域ＭＥＭＡが誤って書き替えられることを防止できる。このため、メモリシステムＭＳＹＳの信頼性を向上できる。
【００５７】
動作制御回路ＯＰＣは、通常のメモリ動作において、コマンド端子ＣＭＤ０−１を介してメモリＭＥＭの外部から供給されるコマンドＣＭＤ０−１（外部アクセス要求）をデコードし、メモリセルアレイＡＲＹをアクセスするためのアクセス信号（内部アドレスＩＡＤ、内部コマンドＩＣＭＤ）を出力し、内部データＩＤＴを入力または出力する。動作制御回路ＯＰＣは、例えば、メモリセルアレイＡＲＹを１６ビット単位でアクセスする。
【００５８】
この実施形態では、メモリＭＥＭに接続されるコントローラＣＮＴ０−１のデータ線ＤＴのバス幅が異なっている。コントローラＣＮＴ０による書き込み動作では、動作制御回路ＯＰＣは、コントローラＣＮＴ０から供給されたアドレスＡＤおよびデータＤＴを、内部アドレスＩＡＤおよび内部データＩＤＴとしてメモリセルアレイＡＲＹに出力する。コントローラＣＮＴ０による読み出し動作では、動作制御回路ＯＰＣは、コントローラＣＮＴ０から供給されたアドレスＡＤを内部アドレスＩＡＤとしてメモリセルアレイＡＲＹに出力し、メモリセルアレイＡＲＹから読み出された内部データＩＤＴ（１６ビット）をデータＤＴとしてコントローラＣＮＴ０に出力する。
【００５９】
一方、コントローラＣＮＴ１による書き込み動作では、動作制御回路ＯＰＣは、コントローラＣＮＴ１から偶数のアドレスＡＤおよびデータＤＴ（８ビット）を受けたときに、最下位ビットを除いたアドレスＡＤを内部アドレスＩＡＤとして出力し、データＤＴを下位８ビットの内部データＩＤＴとして出力する。同様に、動作制御回路ＯＰＣは、コントローラＣＮＴ１から奇数のアドレスＡＤおよびデータＤＴ（８ビット）を受けたときに、最下位ビットを除いたアドレスＡＤを内部アドレスＩＡＤとして出力し、データＤＴを上位８ビットの内部データＩＤＴとして出力する。
【００６０】
コントローラＣＮＴ１による読み出し動作では、動作制御回路ＯＰＣは、コントローラＣＮＴ１から偶数のアドレスＡＤを受けたときに、最下位ビットを除いたアドレスＡＤを内部アドレスＩＡＤとして出力する。動作制御回路ＯＰＣは、メモリセルアレイＡＲＹから読み出された内部データＩＤＴ（１６ビット）のうち８ビットを、アドレスＡＤの最下位ビットに応じて選択し、選択した内部データＩＤＴをデータＤＴとしてコントローラＣＮＴ１に出力する。
【００６１】
このように、動作制御回路ＯＰＣは、コントローラＣＮＴ１によるアクセスでは、アドレスＡＤの最下位ビットを削除するアドレス変換機能を有する。アドレスＡＤの最下位ビットは、データの上位バイト、下位バイトを決めるために使用される。
【００６２】
また、動作制御回路ＯＰＣは、コントローラＣＮＴ０−１の間で相互にデータを転送するときに、メモリセルアレイＡＲＹをバッファとして使用するためのデータ転送部ＤＴＵの機能を有している。このために、動作制御回路ＯＰＣは、メモリＭＥＭのアクセス状況を示す転送レディフラグＴＲＲＤＹ０−１および転送終了フラグＴＲＥＮＤ０−１を有している。
【００６３】
転送レディフラグＴＲＲＤＹ０および転送終了フラグＴＲＥＮＤ０は、例えば、Ｉ／Ｏ空間に割り当てられている（メモリマップトＩ／Ｏ）。転送レディフラグＴＲＲＤＹ０および転送終了フラグＴＲＥＮＤ０は、コントローラＣＮＴ０により書き込み可能であり、コントローラＣＮＴ０−１により読み出し可能である。
【００６４】
転送レディフラグＴＲＲＤＹ１および転送終了フラグＴＲＥＮＤ１は、例えば、Ｉ／Ｏ空間（メモリマップトＩ／Ｏ）に割り当てられている。転送レディフラグＴＲＲＤＹ１および転送終了フラグＴＲＥＮＤ１は、コントローラＣＮＴ１により書き込み可能であり、コントローラＣＮＴ０−１により読み出し可能である。
【００６５】
転送レディフラグＴＲＲＤＹ０−１は、コントローラＣＮＴ０−１がメモリＭＥＭをアクセスするときに”０”にそれぞれリセットされ、メモリＭＥＭをアクセスしないときに”１”にそれぞれセットされる。転送終了フラグＴＲＥＮＤ０−１は、コントローラＣＮＴ０−１からメモリＭＥＭへのデータ転送（書き込み）が終了したとき、またはメモリＭＥＭからコントローラＣＮＴ０−１へのデータ転送（読み出し）が終了したときに”１”にセットされ、それ以外のときに”０”にリセットされる。データ転送の詳細は、後述す
る図７で説明する。
【００６６】
図７は、図６に示したメモリシステムＭＳＹＳのデータ転送動作を示している。この例では、データＤＴは、メモリＭＥＭを介してコントローラＣＮＴ０からコントローラＣＮＴ１に転送される。図７に示す処理は、コントローラＣＮＴ０−１および動作制御回路ＯＰＣにより実施される。
【００６７】
まず、ステップＳ１において、コントローラＣＮＴ０は、転送レディフラグＴＲＲＤＹ１から”１”を読み出すことで、メモリＭＥＭがコントローラＣＮＴ１によりアクセスされていないことを確認する。次に、ステップＳ２において、コントローラＣＮＴ０は、コントローラＣＮＴ１に転送するデータをバッファ領域ＢＵＦ０に書き込むために、転送レディフラグＴＲＲＤＹ０および転送終了フラグＴＲＥＮＤ０を”０”にリセットする。
【００６８】
ステップＳ３において、コントローラＣＮＴ０は、メモリＭＥＭをアクセスしてデータをバッファ領域ＢＵＦ０に書き込む。ステップＳ４において、コントローラＣＮＴ０は、バッファ領域ＢＵＦ０へのデータの書き込み後、転送レディフラグＴＲＲＤＹ０および転送終了フラグＴＲＥＮＤ０を”１”にセットする。
【００６９】
次に、ステップＳ５において、コントローラＣＮＴ１は、転送レディフラグＴＲＲＤＹ０から”１”を読み出すことで、メモリＭＥＭがコントローラＣＮＴ０によりアクセスされていないことを確認する。さらに、コントローラＣＮＴ１は、転送終了フラグＴＲＥＮＤ０から”１”を読み出すことで、コントローラＣＮＴ０から転送されるべきデータがバッファ領域ＢＵＦ０に格納されていることを確認する。
【００７０】
ステップＳ６において、コントローラＣＮＴ１は、バッファ領域ＢＵＦ０からデータを読み出すために、転送レディフラグＴＲＲＤＹ１を”０”にリセットする。ステップＳ７において、コントローラＣＮＴ１は、バッファ領域ＢＵＦ０からデータを読み出した後、転送レディフラグＴＲＲＤＹ１を”１”にセットする。そして、コントローラＣＮＴ０からコントローラＣＮＴ１へのデータの転送が完了する。
【００７１】
なお、この例では、コントローラＣＮＴ０からコントローラＣＮＴ１にデータＤＴが転送される。このため、コントローラＣＮＴ１からの転送の完了を示す転送終了フラグＴＲＥＮＤ１は、常に”０”にリセットされている。コントローラＣＮＴ１からコントローラＣＮＴ０にデータを転送する動作は、特に図示していないが、図中のコントローラＣＮＴ０−１およびフラグＴＲＲＤＹ０−１、ＴＲＥＮＤ０−１の番号（０と１）を入れ替えたフローにより表される。
【００７２】
以上、第５の実施形態では、コントローラＣＮＴ０−１のデータＤＴのビット幅が互いに異なり、コントローラＣＮＴ０−１の間でデータＤＴを直接転送できない場合にも、半導体メモリＭＥＭをバッファとして機能させることで、コントローラＣＮＴ０−１の間でデータＤＴを転送できる。また、各コントローラＣＮＴ０−１は、フラグＴＲＲＤＹ０−１、ＴＲＥＮＤ０−１により、メモリＭＥＭのアクセス状況を確認できる。このため、コントローラＣＮＴ０−１によるアクセスの競合を防止できる。
【００７３】
図８は、本発明の第６の実施形態を示している。第５の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、コントローラＣＮＴ０−１のデータ線ＤＴの幅は、共に１６ビットである。このため、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、第５の実施形態のアドレス変換機能を有していない。コントローラＣＮＴ０−１の動作周波数は、それぞれ３３ＭＨｚ、１０ＭＨｚである。その他の構成は、第５の実施形態と同じである。
【００７４】
以上、第６の実施形態においても、上述した第５の実施形態と同様の効果を得ることができる。さらに、この実施形態では、コントローラＣＮＴ０−１の動作周波数が互いに異なり、コントローラＣＮＴ０−１の間でデータＤＴを直接転送できない場合にも、半導体メモリＭＥＭをバッファとして機能させることで、コントローラＣＮＴ０−１の間でデータＤＴを転送できる。
【００７５】
図９は、本発明の第７の実施形態を示している。第２および第５の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、フィールドプログラマブル部ＦＰに形成される。その他の構成は、第５の実施形態と同じである。第７の実施形態においても、上述した第２および第５の実施形態と同様の効果を得ることができる。
【００７６】
図１０は、本発明の第８の実施形態を示している。第５の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、第５の実施形態のフラグＴＲＲＤＹ０−１、ＴＲＥＮＤ０−１を有していない。動作制御回路ＯＰＣは、転送レディ信号ＴＲＲＤＹ１、転送終了信号ＴＲＥＮＤ１をコントローラＣＮＴ０に出力し、転送レディ信号ＴＲＲＤＹ０、転送終了信号ＴＲＥＮＤ０をコントローラＣＮＴ１に出力する。転送レディ信号ＴＲＲＤＹ０−１、転送終了信号ＴＲＥＮＤ０−１は、メモリＭＥＭのアクセス状況を示す信号である。
【００７７】
動作制御回路ＯＰＣは、メモリＭＥＭのアクセス状況を示すコントローラＣＮＴ０（またはＣＮＴ１）によりメモリＭＥＭがアクセスされるときに、転送レディ信号ＴＲＲＤＹ０（またはＴＲＲＤＹ１）を”０”にリセットする（ビジー状態）。動作制御回路ＯＰＣは、メモリＭＥＭがアクセスされないときに、転送レディ信号ＴＲＲＤＹ０−１を”１”にセットする（レディ状態）。動作制御回路ＯＰＣは、コントローラＣＮＴ０（またはＣＮＴ１）からバッファ領域ＢＵＦ０（またはＢＵＦ１）へのデータ転送が完了したときに、転送終了信号ＴＲＥＮＤ０（またはＴＲＥＮＤ１）を所定のクロックサイクルの間”１”にセットする。動作制御回路ＯＰＣは、データ転送の終了を、コントローラＣＮＴ０−１からメモリＭＥＭに供給される転送終了コマンドにより認識する。
【００７８】
コントローラＣＮＴ０（またはＣＮＴ１）は、転送レディ信号ＴＲＲＤＹ１（またはＴＲＲＤＹ０）をモニタすることによりコントローラＣＮＴ１（またはＣＮＴ０）のレディ状態を確認し、レディ状態中に、バッファ領域ＢＵＦ０（またはＢＵＦ１）にデータを書き込む。また、コントローラＣＮＴ０（またはＣＮＴ１）は、転送終了信号ＴＲＥＮＤ１（またはＴＲＥＮＤ０）をモニタすることによりコントローラＣＮＴ１（またはＣＮＴ０）によるバッファ領域ＢＵＦ１（またはＢＵＦ０）へのデータの転送終了を確認し、転送終了の確認後、バッファ領域ＢＵＦ１（またはＢＵＦ０）からデータを読み出す。
【００７９】
以上、第８の実施形態においても、上述した第５の実施形態と同様の効果を得ることができる。さらに、この実施形態では、コントローラＣＮＴ０−１は、フラグＴＲＲＤＹ０−１、ＴＲＥＮＤ０−１を読み出すことなく、メモリＭＥＭのアクセス状況（レディ状態および転送の終了）を確認できる。コントローラＣＮＴ０−１は、アクセス状況の確認のためにメモリＭＥＭをアクセスする必要がない。これにより、外部バスＡＤ、ＤＴ、ＣＭＤ０−１の使用頻度（メモリＭＥＭのアクセス頻度）を下げることができる。この結果、メモリシステムＭＳＹＳの性能が低下することを防止できる。
【００８０】
図１１は、本発明の第９の実施形態を示している。第５の実施形態で説明した要素と同
一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、転送レディフラグＴＲＲＤＹ０−１、スタートアドレスレジスタＳＴＡＤ０−１およびカウンタレジスタＣＯＵＮＴ０−１を有している。また、動作制御回路ＯＰＣは、コントローラＣＮＴ０−１に転送クロックＴＣＬＫ０−１（同期信号）を出力する。その他の構成は、第５の実施形態と同じである。
【００８１】
この実施形態では、動作制御回路ＯＰＣは、バッファ領域ＢＵＦ０からコントローラＣＮＴ１へのデータ転送機能と、バッファ領域ＢＵＦ１からコントローラＣＮＴ０へのデータ転送機能を有している。転送レディフラグＴＲＲＤＹ０−１、スタートアドレスレジスタＳＴＡＤ０−１およびカウンタレジスタＣＯＵＮＴ０−１は、例えば、Ｉ／Ｏ空間に割り当てられている（メモリマップトＩ／Ｏ）。
【００８２】
スタートアドレスレジスタＳＴＡＤ０は、コントローラＣＮＴ１に転送するデータを記憶しているバッファ領域ＢＵＦ０のスタートアドレスを記憶する。スタートアドレスレジスタＳＴＡＤ１は、コントローラＣＮＴ０に転送するデータを記憶しているバッファ領域ＢＵＦ１のスタートアドレスを記憶する。カウンタレジスタＣＯＵＮＴ０は、バッファ領域ＢＵＦ０からコントローラＣＮＴ１に転送するデータの転送数（例えば、バイト数）を記憶する。カウンタレジスタＣＯＵＮＴ１は、バッファ領域ＢＵＦ１からコントローラＣＮＴ０に転送するデータの転送数を記憶する。
【００８３】
スタートアドレスレジスタＳＴＡＤ０およびカウンタレジスタＣＯＵＮＴ０は、コントローラＣＮＴ０により書き込み可能である。スタートアドレスレジスタＳＴＡＤ１およびカウンタレジスタＣＯＵＮＴ１は、コントローラＣＮＴ１により書き込み可能である。
【００８４】
例えば、コントローラＣＮＴ０からバッファ領域ＢＵＦ０を介してコントローラＣＮＴ１にデータが転送される場合、まず、第５の実施形態と同様に、転送されるデータがコントローラＣＮＴ０からバッファ領域ＢＵＦ０に書き込まれる。次に、コントローラＣＮＴ０は、バッファ領域ＢＵＦ０の転送スタートアドレスおよび転送数を、スタートアドレスレジスタＳＴＡＤ０およびカウンタレジスタＣＯＵＮＴに書き込む。
【００８５】
この書き込みに応答して、動作制御回路ＯＰＣは、転送レディフラグＴＲＲＤＹ０−１が”１”（レディ状態）の期間、バッファ領域ＢＵＦ０を順次読み出しアクセスし、転送クロックＴＣＬＫ１に同期してデータ端子ＤＴからデータを出力する。動作制御回路ＯＰＣは、カウンタレジスタＣＯＵＮＴに格納された転送数と同じ数のパルスを有する転送クロックＴＣＬＫ１を生成する。コントローラＣＮＴ１は、転送クロックＴＣＬＫ１に同期してデータＤＴを受信する。すなわち、コントローラＣＮＴ０からコントローラＣＮＴ１へのデータ転送が、メモリＭＥＭを介して実行される。コントローラＣＮＴ１からコントローラ０へのデータ転送も、同様に実行される。
【００８６】
以上、第９の実施形態においても、上述した第５の実施形態と同様の効果を得ることができる。さらに、この実施形態では、データＤＴの転送完了に応答して転送クロックＴＣＬＫ０（またはＴＣＬＫ１）が出力されるため、各コントローラＣＮＴ０−１は、メモリＭＥＭをアクセスすることなく、データを受信できる。メモリＭＥＭのアクセス頻度が下がるため、メモリシステムＭＳＹＳの性能が低下することを防止できる。
【００８７】
図１２は、本発明の第１０の実施形態を示している。第５および第９の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、転送レディフラグＴＲＲＤＹ０−１およびカウンタレジスタＣＯＵＮＴ０−１を有しており、スタ
ートアドレスレジスタＳＴＡＤ０−１を有していない。その他の構成は、第５の実施形態と同じである。
【００８８】
この実施形態では、転送データは、常にバッファ領域ＢＵＦ０−１の先頭アドレスから書き込まれる。このため、スタートアドレスレジスタＳＴＡＤ０−１は不要である。以上、第１０の実施形態においても、上述した第５および第９の実施形態と同様の効果を得ることができる。
【００８９】
図１３は、本発明の第１１の実施形態を示している。第５の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリＭＥＭは、３つのコントローラＣＮＴ０−２に接続するために、互いに独立した外部端子ＣＭＤ０、ＡＤ０、ＤＴ０；ＣＭＤ１、ＡＤ１、ＤＴ１；ＣＭＤ２、ＡＤ２、ＤＴ２を有している。動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、コントローラＣＮＴ０−２に対応する転送終了フラグＴＲＥＮＤ０−２を有している。メモリセルアレイＡＲＹは、コントローラＣＮＴ０−２に対応するバッファ領域ＢＵＦ０−２を有している。その他の構成は、第５の実施形態と同じである。
【００９０】
この実施形態では、外部端子が独立しているため、例えば、コントローラＣＮＴ０は、他の２つのコントローラＣＮＴ１−２のアクセス状況を確認することなく、メモリＭＥＭをアクセスできる。このため、第５の実施形態の転送レディフラグＴＲＲＤＹは、不要である。コントローラＣＮＴ０−２のアクセス要求が重なることによるメモリセルアレイＡＲＹのアクセス順の決定は、動作制御回路ＯＰＣにより調整される。すなわち、動作制御回路ＯＰＣは、アービタの機能を有している。
【００９１】
例えば、コントローラＣＮＴ０からコントローラＣＮＴ２にデータが転送される場合、コントローラＣＮＴ０は、バッファ領域ＢＵＦ０にデータを書き込んだ後、転送終了フラグＴＲＥＮＤ０を”１”にセットする。コントローラＣＮＴ２は、転送終了フラグＴＲＥＮＤ０のセットを確認した後、バッファ領域ＢＵＦ０からデータを読み出す。すなわち、データ転送が実行される。この際、コントローラＣＮＴ０、２は、互いにデータを転送することを予め認識している。
【００９２】
以上、第１１の実施形態においても、上述した第５の実施形態と同様の効果を得ることができる。さらに、この実施形態では、互いに独立した外部端子（外部バス）を形成することにより、各コントローラＣＮＴ０−２は、他のコントローラのアクセス状況を確認することなく、メモリＭＥＭをアクセスでき、データを転送できる。
【００９３】
図１４は、本発明の第１２の実施形態を示している。第５、第９および第１１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、スタートアドレスレジスタＳＴＡＤ０−２、カウンタレジスタＣＯＵＮＴ０−２および転送先レジスタＤＥＳＴ０−２を有している。スタートアドレスレジスタＳＴＡＤ０−２、カウンタレジスタＣＯＵＮＴ０−２の機能は、第９の実施形態と同じである。動作制御回路ＯＰＣは、第９の実施形態と同様に、コントローラＣＮＴ０−２に転送クロックＴＣＬＫ０−２を出力する。その他の構成は、第１１の実施形態と同じである。
【００９４】
転送先レジスタＤＥＳＴ０−２は、データの転送先を示す情報を記憶する。例えば、各転送先レジスタＤＥＳＴ０−２は、３ビットで構成される。各転送先レジスタＤＥＳＴ０−２の下位ビット、中位ビット、上位ビットは、コントローラＣＮＴ０、ＣＮＴ１、ＣＮＴ２を示す。例えば、転送先レジスタＤＥＳＴ０が２進数で”１１０”に設定されているとき、バッファ領域ＢＵＦ０に書き込まれたデータは、コントローラＣＮＴ１−２に転送
される。このために、動作制御回路ＯＰＣは、転送クロックＴＣＬＫ１−２を、データＤＴ１−２とともに出力する。あるいは、転送先レジスタＤＥＳＴ１が２進数で”１００”に設定されているとき、バッファ領域ＢＵＦ１に書き込まれたデータは、コントローラＣＮＴ２のみに転送される。このために、動作制御回路ＯＰＣは、転送クロックＴＣＬＫ２を、データＤＴ２とともに出力する。
【００９５】
以上、第１２の実施形態においても、上述した第５、第９および第１１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、メモリＭＥＭを介して１つのコントローラＣＮＴから複数のコントローラＣＮＴにデータを転送できる（マルチキャスト）。データを出力すべきサブコントローラＣＮＴは、転送先レジスタＤＥＳＴ０−２のビット値により容易に認識できる。
【００９６】
図１５は、本発明の第１３の実施形態を示している。第１１の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、動作制御回路ＯＰＣ（データ転送部ＤＴＵ）は、フィールドプログラマブル部ＦＰに形成される。その他の構成は、第１１の実施形態と同じである。第１３の実施形態においても、上述した第２および第１１の実施形態と同様の効果を得ることができる。
【００９７】
なお、上述した第１−第４の実施形態では、ＤＭＡＣをコントローラＣＮＴ０のみにより起動する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、ＤＭＡＣをコントローラＣＮＴ１あるいはコントローラＣＮＴ０−１により起動できるようにしてもよい。
【００９８】
上述した第１−第４の実施形態では、半導体メモリＭＥＭを２つのコントローラＣＮＴ０−１に接続する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、半導体メモリＭＥＭを、３つ以上のコントローラＣＮＴに接続してもよい。
【００９９】
上述した第２の実施形態では、ＤＭＡＣをフィールドプログラマブル部ＦＰに形成する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、第３−第４の実施形態のＤＭＡＣをフィールドプログラマブル部ＦＰに形成してもよい。あるいは、第１−第４の実施形態の動作制御回路ＯＰＣを、フィールドプログラマブル部ＦＰに形成してもよい。
【０１００】
なお、第５−第１０の実施形態において、第１の実施形態と同様に、コントローラＣＮＴ０は、メモリＭＥＭをＤＲＡＭとしてアクセスし、コントローラＣＮＴ１は、メモリＭＥＭをＮＯＲ型フラッシュメモリ（ＦＬＡＳＨ）としてアクセスしてもよい。この場合、動作制御回路ＯＰＣは、ＤＲＡＭインタフェースおよびＦＬＡＳＨインタフェースをＦＲＡＭインタフェースに変換する機能を有する。第１１−第１３の実施形態でも同様である。
【０１０１】
上述した実施形態では、半導体メモリＭＥＭをＦＲＡＭで形成する例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、半導体メモリＭＥＭを他の不揮発性半導体メモリで形成してもよい。あるいは、半導体メモリＭＥＭをＤＲＡＭ、ＳＲＡＭ等の揮発性半導体メモリで形成してもよい。
【０１０２】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
複数のサブアレイを有するメモリセルアレイと、
前記サブアレイ間でデータを転送するために前記サブアレイを交互にアクセスするデー
タ転送部とを備えていることを特徴とする半導体メモリ。
（付記２）
付記１記載の半導体メモリにおいて、
前記データ転送部により転送されるデータの転送元アドレスと、データの転送先アドレスを格納する転送レジスタを備えていることを特徴とする半導体メモリ。
（付記３）
付記１記載の半導体メモリにおいて、
半導体メモリに接続されるコントローラ毎に前記サブアレイのアクセス権を設定するためのアクセス権レジスタを備えていることを特徴とする半導体メモリ。
（付記４）
付記１記載の半導体メモリにおいて、
前記データ転送部による前記サブアレイのアクセス権を設定するアクセス権レジスタを備えていることを特徴とする半導体メモリ。
（付記５）
付記１記載の半導体メモリにおいて、
マスタコントローラと少なくとも１つのサブコントローラとが接続される外部端子を備え、
前記データ転送部は、前記マスタコントローラからの転送要求のみに応答して、データの転送を開始することを特徴とする半導体メモリ。
（付記６）
付記１記載の半導体メモリにおいて、
論理をプログラム可能なフィールドプログラマブル部と、
前記フィールドプログラマブル部の論理を構成するためのプログラムが格納される不揮発性のプログラム領域とを備え、
前記データ転送部は、前記フィールドプログラマブル部に形成されることを特徴とする半導体メモリ。
（付記７）
付記１記載の半導体メモリにおいて、
前記データ転送部は、ダイレクトメモリアクセスコントローラとして構成されていることを特徴とする半導体メモリ。
（付記８）
付記１記載の半導体メモリにおいて、
２つの前記サブアレイは、データを記憶する領域と、データのエラー訂正コードを記憶する領域とをそれぞれ有し、
２つの前記サブアレイに格納される前記エラー訂正コードの体系は、互いに異なることを特徴とする半導体メモリ。
（付記９）
付記８記載の半導体メモリにおいて、
データの格納先に応じて前記エラー訂正コードをそれぞれ生成するとともに、サブアレイから読み出したデータをエラー訂正コードを用いてエラー訂正するエラー制御回路を備えていることを特徴とする半導体メモリ。
（付記１０）
付記９記載の半導体メモリにおいて、
前記エラー制御回路は、前記データ転送部により前記サブアレイの１つから前記サブアレイの別の一つにデータが転送されるときに、転送元のサブアレイから読み出されたエラー訂正コードを転送先のサブアレイに対応するエラー訂正コードに変換するコード変換部を備えていることを特徴とする半導体メモリ。
（付記１１）
メモリセルアレイを有する半導体メモリと、
前記半導体メモリをアクセスする複数のコントローラと、
前記半導体メモリと前記コントローラとを接続するデータ線とを備え、
前記半導体メモリを介して前記コントローラ間でデータを転送するために、前記半導体メモリは、前記コントローラの一つから出力されるデータを受信し、受信したデータを別のコントローラに出力するデータ転送部を備えていることを特徴とするメモリシステム。（付記１２）
付記１１記載のメモリシステムにおいて、
前記メモリセルアレイは、前記各コントローラによりアクセスされる通常記憶領域と、前記データ転送部により受信されたデータを一時的に保持するバッファ領域とに区画されていることを特徴とするメモリシステム。
（付記１３）
付記１２記載のメモリシステムにおいて、
前記データ転送部は、データのビット幅が相対的に大きいコントローラとデータのビット幅が相対的に小さいコントローラとの間でデータを転送するときに、前記バッファ領域を使用することを特徴とするメモリシステム。
（付記１４）
付記１２記載のメモリシステムにおいて、
前記データ転送部は、動作周波数が相対的に高いコントローラと動作周波数が相対的に低いコントローラとの間でデータを転送するときに、前記バッファ領域を使用することを特徴とするメモリシステム。
（付記１５）
付記１１記載のメモリシステムにおいて、
前記コントローラは、マスタコントローラと複数のサブコントローラとのいずれかであり、
前記データ線は、前記コントローラ毎に独立して配線され、
前記データ転送部は、前記マスタコントローラから受信したデータを複数の前記サブコントローラに出力することを特徴とするメモリシステム。
（付記１６）
付記１５記載のメモリシステムにおいて、
前記データ転送部は、前記マスタコントローラから送られる転送先情報を格納する転送先レジスタを備え、前記マスタコントローラから受信したデータを、転送先レジスタに格納された転送先情報に対応する前記サブコントローラに出力することを特徴とするメモリシステム。
（付記１７）
付記１１記載のメモリシステムにおいて、
前記データ転送部は、前記コントローラによる前記半導体メモリのアクセス状況を示すフラグを備えていることを特徴とするメモリシステム。
（付記１８）
付記１１記載のメモリシステムにおいて、
前記前記データ転送部は、前記コントローラによる前記半導体メモリのアクセス状況を示す信号を出力することを特徴とするメモリシステム。
（付記１９）
付記１１記載のメモリシステムにおいて、
前記前記データ転送部は、受信したデータを前記別のコントローラに出力するための同期信号である転送クロックを出力することを特徴とするメモリシステム。
（付記２０）
付記１１記載のメモリシステムにおいて、
前記半導体メモリは、
論理をプログラム可能なフィールドプログラマブル部と、
前記フィールドプログラマブル部の論理を構成するためのプログラムが格納される不揮発性のプログラム領域とを備え、
前記データ転送部は、前記フィールドプログラマブル部に形成されることを特徴とするメモリシステム。
【０１０３】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【産業上の利用可能性】
【０１０４】
本発明は、データ転送機能を有する半導体メモリおよびこの半導体メモリを有するメモリシステムに適用できる。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】図１に示したメモリセルアレイのメモリマップを示す説明図である。
【図３】本発明の第２の実施形態を示すブロック図である。
【図４】本発明の第３の実施形態を示すブロック図である。
【図５】本発明の第４の実施形態を示すブロック図である。
【図６】本発明の第５の実施形態を示すブロック図である。
【図７】図６に示したメモリシステムのデータ転送動作を示すフローチャートである。
【図８】本発明の第６の実施形態を示すブロック図である。
【図９】本発明の第７の実施形態を示すブロック図である。
【図１０】本発明の第８の実施形態を示すブロック図である。
【図１１】本発明の第９の実施形態を示すブロック図である。
【図１２】本発明の第１０の実施形態を示すブロック図である。
【図１３】本発明の第１１の実施形態を示すブロック図である。
【図１４】本発明の第１２の実施形態を示すブロック図である。
【図１５】本発明の第１３の実施形態を示すブロック図である。
【符号の説明】
【０１０６】
ＡＲＹ‥メモリセルアレイ；ＢＵＦ‥バッファ；ＢＵＦ０−２‥バッファ領域；ＣＮＴ０−２‥マスタコントローラ；ＣＯＵＮＴ０−１‥カウンタレジスタ；ＤＥＳＴ０−２‥転送先レジスタ；ＤＭＡＣ‥ダイレクトメモリアクセスコントローラ；ＤＭＡＲＥＧ‥転送レジスタ；データ転送部‥ＤＴＵ；ＥＣＣＣＮＴ‥エラー制御回路；ＦＰ‥フィールドプログラマブル部；ＭＥＭ‥半導体メモリ；ＭＥＭＡ‥通常メモリ領域；ＭＳＹＳ‥メモリシステム；ＯＰＣ‥動作制御回路；ＰＡＲＴＲＥＧ‥パーティションレジスタ；ＰＲＧ‥プログラム記憶部；ＳＡＲＹ０−４‥サブアレイ；ＳＴＡＤ０−２‥スタートアドレスレジスタ；ＴＣＬＫ０−２‥転送クロック；ＴＲＥＮＤ０−１‥転送終了フラグ、転送終了信号；ＴＲＲＤＹ０−１‥転送レディフラグ、転送レディ信号
【図１】
2007219851.tif 000003
【図２】
2007219851.tif 000004
【図３】
2007219851.tif 000005
【図４】
2007219851.tif 000006
【図５】
2007219851.tif 000007
【図６】
2007219851.tif 000008
【図７】
2007219851.tif 000009
【図８】
2007219851.tif 000010
【図９】
2007219851.tif 000011
【図１０】
2007219851.tif 000012
【図１１】
2007219851.tif 000013
【図１２】
2007219851.tif 000014
【図１３】
2007219851.tif 000015
【図１４】
2007219851.tif 000016
【図１５】
2007219851.tif 000017