(57)【要約】【課題】データの信頼性及び動作スループットを向上させることができるメモリ装置を提供することを課題とする。【解決手段】メモリ装置は、第１のポート及び第２のポートのアクセスが可能なメモリ（１０４）と、データに対してエラー検出訂正コードを付与してメモリの第１のポートに書き込みを行うエラー検出訂正符号化回路（１０２）と、メモリの第１のポートから読み出されたデータ及びエラー検出訂正コードを入力し、入力したエラー検出訂正コードを基に入力したデータのエラーを検出した場合には、入力したデータを訂正するエラー検出訂正復号化回路（１０３）と、エラーが検出され、かつ、メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが異なる場合には、訂正されたデータ及びエラー検出訂正コードをメモリの第２のポートに書き込む制御回路（１０７）とを有する。【選択図】図１
2015122132.tif 000002
【特許請求の範囲】
【請求項１】
第１のポート及び第２のポートのアクセスが可能なメモリと、
データに対してエラー検出訂正コードを付与して前記メモリの第１のポートに書き込みを行うエラー検出訂正符号化回路と、
前記メモリの第１のポートから読み出されたデータ及びエラー検出訂正コードを入力し、前記入力したエラー検出訂正コードを基に前記入力したデータのエラーを検出した場合には、前記入力したデータを訂正するエラー検出訂正復号化回路と、
前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが同じ場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まず、前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが異なる場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込む制御回路と
を有することを特徴とするメモリ装置。
【請求項２】
前記エラー検出訂正復号化回路は、前記メモリの第１のポートの出力データが変化した場合に、前記出力データのエラーを検出し、エラーが検出された場合にはエラーフラグをセットし、エラーが検出されない場合にはエラーフラグをリセットし、
前記制御回路は、前記エラーフラグを基に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込むことを特徴とする請求項１記載のメモリ装置。
【請求項３】
前記メモリは、書き込みが指示されると、前記エラー検出訂正符号化回路から前記データ及び前記エラー検出訂正コードを前記第１のポートに入力し、前記入力したデータ及びエラー検出訂正コードを書き込み、前記入力したデータ及びエラー検出訂正コードを前記第１のポートから出力し、
前記制御回路は、前記エラーフラグがセットの状態である場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込み、前記エラーフラグがリセットの状態である場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まないことを特徴とする請求項２記載のメモリ装置。
【請求項４】
さらに、前記エラー検出訂正符号化回路から出力される前記データ及び前記エラー検出訂正コードを遅延して前記メモリの第２のポートに出力するディレイ回路を有することを特徴とする請求項３記載のメモリ装置。
【請求項５】
前記メモリは、書き込みが指示されると、前記エラー検出訂正符号化回路から前記データ及び前記エラー検出訂正コードを前記第１のポートに入力し、前記入力したデータ及びエラー検出訂正コードを書き込み、前記入力したデータ及びエラー検出訂正コードを前記第１のポートから出力せずに、前記第１のポートの出力データを維持し、
前記制御回路は、前記エラーフラグがリセットの状態からセットの状態に変化した場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込み、前記エラーフラグがセットの状態を維持している場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まないことを特徴とする請求項２記載のメモリ装置。
【請求項６】
さらに、前記エラー検出訂正符号化回路から出力される前記データ及び前記エラー検出訂正コードを遅延して前記メモリの第２のポートに出力するディレイ回路を有することを特徴とする請求項５記載のメモリ装置。
【請求項７】
前記メモリは、第１のタイプ又は第２のタイプのメモリであり、
前記第１のタイプのメモリは、書き込みが指示されると、前記エラー検出訂正符号化回路から前記データ及び前記エラー検出訂正コードを前記第１のポートに入力し、前記入力したデータ及びエラー検出訂正コードを書き込み、前記入力したデータ及びエラー検出訂正コードを前記第１のポートから出力し、
前記第２のタイプのメモリは、書き込みが指示されると、前記エラー検出訂正符号化回路から前記データ及び前記エラー検出訂正コードを前記第１のポートに入力し、前記入力したデータ及びエラー検出訂正コードを書き込み、前記入力したデータ及びエラー検出訂正コードを前記第１のポートから出力せずに、前記第１のポートの出力データを維持し、
さらに、前記メモリの第１のポートの出力データ及び前記エラー検出訂正符号化回路の出力データを基に、前記メモリが前記第１のタイプのメモリ及び前記第２のタイプのメモリのいずれであるのかを識別する識別回路を有し、
前記メモリが前記第１のタイプのメモリである場合には、前記エラーフラグがセットの状態である場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込み、前記エラーフラグがリセットの状態である場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まず、
前記メモリが前記第２のタイプのメモリである場合には、前記制御回路は、前記エラーフラグがリセットの状態からセットの状態に変化した場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込み、前記エラーフラグがセットの状態を維持している場合に、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まないことを特徴とする請求項２記載のメモリ装置。
【請求項８】
さらに、前記エラー検出訂正符号化回路から出力される前記データ及び前記エラー検出訂正コードを遅延して前記メモリの第２のポートに出力するディレイ回路を有することを特徴とする請求項７記載のメモリ装置。
【請求項９】
第１のポート及び第２のポートのアクセスが可能なメモリと、
データに対してエラー検出訂正コードを付与して前記メモリの第１のポートに書き込みを行うエラー検出訂正符号化回路と、
前記メモリの第１のポートから読み出されたデータ及びエラー検出訂正コードを入力し、前記入力したエラー検出訂正コードを基に前記入力したデータのエラーを検出した場合には、前記入力したデータを訂正するエラー検出訂正復号化回路とを有するメモリ装置の制御方法であって、
前記制御回路により、前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが同じ場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まず、
前記制御回路により、前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが異なる場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込むことを特徴とするメモリ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置及びメモリ装置の制御方法に関する。
【背景技術】
【０００２】
外部から入力されるアドレス及びデータに基づいて、記憶しているデータの更新が可能な記憶装置が知られている（例えば、特許文献１参照）。メモリは、データの読み出しを行う第１ポートとデータの書き込みを行う第２ポートとを有する。第１データ保持部は、外部から入力されるアドレスに基づいてメモリから第１ポートを介して読み出されたデータを保持する。アドレス保持部は、外部から入力されるアドレスを、第２ポートを介したデータの書き込み用のアドレスとして保持する。第２データ保持部は、外部から入力されるデータを保持する。データ生成部は、第１，第２データ保持部に保持されたデータに基づいて、第２ポートを介してメモリに書き込むデータを生成する。
【０００３】
データビットを格納するデータビット格納用メモリと、コードビットを格納するコードビット格納用メモリとを有する半導体集積回路装置が知られている（例えば、特許文献２参照）。ＥＣＣ（エラー検出訂正：Error Check and Correct）回路は、データビットとコードビットとを用いて、データビットまたはコードビット中の少なくとも１ビットの誤り訂正を実行する。データビット格納用メモリとコードビット格納用メモリとは独立に制御可能である。データ書き込み命令を受けた際、データビット格納用メモリへのデータビットの書き込みに対して少なくとも１サイクル後に、データビットに対応するコードビットがコードビット格納用メモリへ書き込まれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−５４２２１号公報
【特許文献２】特開２００５−２２２６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリに記憶されているデータにエラーが発生する場合がある。ＥＣＣ回路は、データ中の１ビットのエラーを訂正することができる。しかし、その後、さらにエラーが発生し、２ビット以上のエラーが存在する場合には、ＥＣＣ回路は、エラーを訂正することができず、データの信頼性が低下してしまう。
【０００６】
本発明の目的は、エラーが検出された場合には、訂正されたデータを自動的に書き込むことにより、データの信頼性及び動作スループットを向上させることができるメモリ装置及びメモリ装置の制御方法を提供することである。
【課題を解決するための手段】
【０００７】
メモリ装置は、第１のポート及び第２のポートのアクセスが可能なメモリと、データに対してエラー検出訂正コードを付与して前記メモリの第１のポートに書き込みを行うエラー検出訂正符号化回路と、前記メモリの第１のポートから読み出されたデータ及びエラー検出訂正コードを入力し、前記入力したエラー検出訂正コードを基に前記入力したデータのエラーを検出した場合には、前記入力したデータを訂正するエラー検出訂正復号化回路と、前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが同じ場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込まず、前記エラーが検出され、かつ、前記メモリの第１のポートに対する今回のアクセスアドレスと前回のアクセスアドレスが異なる場合には、前記訂正されたデータ及び前記エラー検出訂正コードを前記メモリの第２のポートに書き込む制御回路とを有する。
【発明の効果】
【０００８】
制御回路が訂正されたデータをメモリに書き込むので、データの信頼性及び動作スループットを向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態によるメモリ装置の構成例を示す図である。
【図２】図２は、第１のタイプの２ポートＲＡＭの一部の構成例を示す図である。
【図３】図３は、アドレス保持回路の構成例を示す図である。
【図４】図４は、アドレス比較回路の構成例を示す図である。
【図５】図５は、Ｂポート制御回路の構成例を示す図である。
【図６】図６は、レジスタの構成例を示す図である。
【図７】図７（Ａ）及び（Ｂ）は、図１のメモリ装置の動作例を示す図である。
【図８】図８は、第２の実施形態によるメモリ装置の構成例を示す図である。
【図９】図９は、Ｂポート制御回路の構成例を示す図である。
【図１０】図１０は、レジスタの構成例を示す図である。
【図１１】図１１は、ライトイネーブル制御回路の構成例を示す図である。
【図１２】図１２（Ａ）及び（Ｂ）は、図８のメモリ装置の動作例を示す図である。
【図１３】図１３（Ａ）及び（Ｂ）は、第３の実施形態によるメモリ装置の混載例を示す図である。
【図１４】図１４は、第３の実施形態によるメモリ装置の構成例を示す図である。
【図１５】図１５は、タイプ識別回路の構成例を示す図である。
【図１６】図１６は、レジスタの構成例を示す図である。
【図１７】図１７は、Ｂポート制御回路の構成例を示す図である。
【図１８】図１８（Ａ）〜（Ｃ）は、２ポートＲＡＭのメモリセルを示す図である。
【図１９】図１９は、第４の実施形態によるメモリ装置の構成例を示す図である。
【図２０】図２０は、ディレイ回路の構成例を示す図である。
【図２１】図２１は、第５の実施形態によるメモリ装置の構成例を示す図である。
【図２２】図２２は、第６の実施形態によるメモリ装置の構成例を示す図である。
【図２３】図２３は、第７の実施形態によるメモリ装置の構成例を示す図である。
【図２４】図２４は、２ポートＲＡＭの構成例を示す図である。
【図２５】図２５は、訂正データを書き込む場合のタイミングチャートである。
【図２６】図２６は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。
【図２７】図２７は、訂正データを書き込む場合のタイミングチャートである。
【図２８】図２８は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。
【図２９】図２９は、第８の実施形態によるメモリ装置の構成例を示す図である。
【図３０】図３０は、訂正データを書き込む場合のタイミングチャートである。
【図３１】図３１は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。
【図３２】図３２は、第９の実施形態によるメモリ装置の構成例を示す図である。
【図３３】図３３は、訂正データを書き込む場合のタイミングチャートである。
【図３４】図３４は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。
【図３５】図３５は、第１０の実施形態によるメモリ装置の構成例を示す図である。
【図３６】図３６は、訂正データを書き込む場合のタイミングチャートである。
【図３７】図３７は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、第１の実施形態によるメモリ装置の構成例を示す図である。メモリ装置は、ユーザ回路１０１、エラー検出訂正（ＥＣＣ：Error Check and Correct）符号化回路１０２、ＥＣＣ復号化回路１０３、第１のタイプの２ポートＲＡＭ（ランダムアクセスメモリ：Random Access Memory）１０４、アドレス保持回路１０５、アドレス比較回路１０６及びＢポート制御回路１０７を有する。２ポートＲＡＭ１０４は、Ａポート（第１のポート）及びＢポート（第２のポート）を有し、Ａポート及びＢポートのアクセスが可能なメモリである。Ａポートに関し、２ポートＲＡＭ１０４は、ＡポートのｍビットアドレスＩＡ［ｍ］の入力端子と、Ａポートのｎ＋αビット入力データＩ［ｎ＋α］の入力端子と、Ａポートのｎ＋αビット出力データＡ［ｎ＋α］の出力端子を有する。Ｂポートに関し、２ポートＲＡＭ１０４は、ＢポートのｍビットアドレスＪＢ［ｍ］の入力端子と、Ｂポートのｎ＋αビット入力データＪ［ｎ＋α］の入力端子と、Ｂポートの制御信号の入力端子を有する。
【００１１】
まず、書き込み動作について説明する。ユーザ回路１０１は、書き込みを行うためのｍビットアドレスＩＡ［ｍ］を２ポートＲＡＭ１０４のＡポートのアドレスの入力端子に出力し、書き込みを行うためのｎビットデータＩ’［ｎ］をＥＣＣ符号化回路１０２に出力する。ＥＣＣ符号化回路１０２は、データＩ’［ｎ］に対するαビットＥＣＣコードを生成し、データＩ’［ｎ］に対してαビットＥＣＣコードを付与したｎ＋αビットデータＩ［ｎ＋α］を２ポートＲＡＭ１０４のＡポートの入力データの入力端子に出力する。２ポートＲＡＭ１０４は、Ａポートにおいて、アドレスＩＡ［ｍ］にデータＩ［ｎ＋α］を書き込む。
【００１２】
次に、読み出し動作について説明する。ユーザ回路１０１は、読み出しを行うためのｍビットアドレスＩＡ［ｍ］を２ポートＲＡＭ１０４のＡポートのアドレスの入力端子に出力する。２ポートＲＡＭ１０４は、Ａポートにおいて、アドレスＩＡ［ｍ］に記憶されているｎ＋αビットデータＡ［ｎ＋α］を読み出し、読み出したｎ＋αビットデータＡ［ｎ＋α］をＡポートの出力データの端子からＥＣＣ復号化回路１０３に出力する。ｎ＋αビットデータＡ［ｎ＋α］は、上記と同様に、ｎビットデータ及びそれに対応するαビットＥＣＣコードを含む。ＥＣＣ復号化回路１０３は、２ポートＲＡＭ１０４のＡポートから読み出されたデータＡ［ｎ＋α］を入力し、データＡ［ｎ＋α］内のαビットＥＣＣコードを基にデータＡ［ｎ＋α］内のｎビットデータのエラーを検出する。ＥＣＣ復号化回路１０３は、エラーが検出された場合には、エラーフラグｃ＿ｆｌａｇを「１」にセットし、エラーが検出されない場合にはエラーフラグｃ＿ｆｌａｇを「０」にリセットする。また、ＥＣＣ復号化回路１０３は、エラーが検出された場合には、データＡ［ｎ＋α］内のαビットＥＣＣコードを基にデータＡ［ｎ＋α］内のｎビットデータのエラーを訂正し、訂正したｎビットデータＡ’［ｎ］を含むｎ＋αビットデータＪ［ｎ＋α］を出力する。ｎ＋αビットデータＪ［ｎ＋α］は、上記の訂正されたｎビットデータＡ’［ｎ］と、データＡ［ｎ＋α］内のαビットＥＣＣコードとを含む。ユーザ回路１０１は、訂正されたｎビットデータＡ’［ｎ］及びエラーフラグｃ＿ｆｌａｇを入力する。
【００１３】
アドレス保持回路１０５は、アドレスＩＡ［ｍ］を保持し、前回のアドレスＪＢ［ｍ］及び今回のアドレスＩＡ［ｍ］をアドレス比較回路１０６に出力する。アドレス比較回路１０６は、前回のアドレスＪＢ［ｍ］及び今回のアドレスＩＡ［ｍ］を比較し、両者が一致している場合には、「１」の一致信号ｃｏｍｐを出力し、両者が一致していない場合には、「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４は、前回のアドレスＪＢ［ｍ」をＢポートのアドレスの入力端子に入力し、訂正されたｎ＋αビットデータＪ［ｎ＋α］をＢポートの入力データの入力端子に入力する。Ｂポート制御回路１０７は、エラーフラグｃ＿ｆｌａｇが「１」であり、かつ、一致信号ｃｏｍｐが「０」である場合に、２ポートＲＡＭ１０４のＢポートの書き込みを可能にする信号を２ポートＲＡＭ１０４に出力し、それ以外の場合には、２ポートＲＡＭ１０４のＢポートの書き込みを不可にする信号を２ポートＲＡＭ１０４に出力する。２ポートＲＡＭ１０４は、Ｂポート制御回路１０７により書き込み可能の信号を入力すると、Ｂポートにおいて、前回のアドレスＪＢ［ｍ］に訂正されたｎ＋αビットデータＪ［ｎ＋α］を書き込む。
【００１４】
前回のアドレスＪＢ［ｍ］と今回のアドレスＩＡ［ｍ］が同じ場合には、同じサイクルにおいて、前回のアドレスＪＢ［ｍ］のＢポートの書き込みと今回のアドレスＩＡ［ｍ］のＡポートのアクセスが同じアドレスで衝突してしまうため、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートの書き込みを不可にし、衝突を回避する。
【００１５】
２ポートＲＡＭ１０４に記憶されているデータにエラーが発生する場合がある。ＥＣＣ復号化回路１０３は、データＡ［ｎ＋α］内のｎビットデータ中の１ビットのエラーを訂正することができる。しかし、その後、さらにエラーが発生し、２ビット以上のエラーが存在する場合には、ＥＣＣ復号化回路１０３は、エラーを訂正することができない。
【００１６】
本実施形態によれば、読み出し動作の場合に、２ポートＲＡＭ１０４から読み出したデータＡ［ｎ＋α］に対してエラーが検出された場合には、訂正したデータＪ［ｎ＋α］を書き込むことにより、２ビット以上のエラーを防止し、データの信頼性を向上させることができる。
【００１７】
また、Ｂポート制御回路１０７が２ポートＲＡＭ１０４のＢポートの書き込みを制御するので、ユーザが外部からメモリ装置を一度停止させて訂正データを書き込む場合に比べ、動作スループットを向上させることができる。
【００１８】
図２は、図１の第１のタイプの２ポートＲＡＭ１０４の一部の構成例を示す図である。まず、読み出し動作について説明する。読み出し指示の場合、トランスミッションゲート２０５がオフし、トランスミッションゲート２０６がオンする。メモリセル２０２は、指定アドレスから読み出したデータを、センスアンプ２０３及びトランスミッションゲート２０６を介して、出力ラッチ回路２０４に出力する。出力ラッチ回路２０４は、ラッチしたデータを出力データＡ［ｎ＋α］として出力する。
【００１９】
次に、書き込み動作について説明する。書き込み指示の場合、トランスミッションゲート２０５がオンし、トランスミッションゲート２０６がオフする。書き込みの場合、入力データＩ［ｎ＋α］は、ライトアンプ２０１を介して、メモリセル２０２に書き込まれる。また、入力データＩ［ｎ＋α］は、トランスミッションゲート２０５を介して、出力ラッチ回路２０４に出力される。出力ラッチ回路２０４は、ラッチしたデータを出力データＡ［ｎ＋α］として出力する。
【００２０】
以上のように、第１のタイプの２ポートＲＡＭ１０４は、読み出しの場合にはメモリセル２０２から読み出したデータを出力データＡ［ｎ＋α］として出力し、書き込みの場合には入力データＩ［ｎ＋α］を出力データＡ［ｎ＋α］として出力する。
【００２１】
図１のＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化した時のみエラー検出を行い、エラーフラグｃ＿ｆｌａｇを更新する。したがって、読み出し動作により出力データＡ［ｎ＋α］が変化すると、エラーフラグｃ＿ｆｌａｇが更新される。また、書き込み動作により出力データＡ［ｎ＋α］が変化すると、エラーフラグｃ＿ｆｌａｇが更新される。
【００２２】
図３は、図１のアドレス保持回路１０５の構成例を示す図である。インバータ３０１は、クロック信号ＣＫの論理反転信号を出力する。トランスミッションゲート３０５は、図１のアドレスＩＡ［ｍ」を入力データＤとして入力し、クロック信号ＣＫがローレベルの時にオンし、クロック信号ＣＫがハイレベルの時にオフする。マスターラッチ回路３０２は、２個のインバータを有し、トランスミッションゲート３０５の出力信号をラッチし、その出力信号の論理反転信号を出力する。トランスミッションゲート３０６は、マスターラッチ回路３０２の出力信号を入力し、クロック信号ＣＫがハイレベルの時にオンし、クロック信号ＣＫがローレベルの時にオフする。スレーブラッチ回路３０３は、２個のインバータを有し、トランスミッションゲート３０６の出力信号をラッチし、その出力信号の論理反転信号ＳＱを出力する。トランスミッションゲート３０７は、スレーブラッチ回路３０３の出力信号ＳＱを入力し、クロック信号ＣＫがローレベルの時にオンし、クロック信号ＣＫがハイレベルの時にオフする。ロックアップラッチ回路３０４は、２個のインバータを有し、トランスミッションゲート３０７の出力信号をラッチし、その出力信号の論理反転信号を出力する。インバータ３０８は、ロックアップラッチ回路３０４の出力信号の論理反転信号ＬＱを前回のアドレスＪＢ［ｍ］（図１）として出力する。インバータ３０９は、マスターラッチ回路３０２の出力信号の論理反転信号ＭＱを今回のアドレスとして出力する。図１のアドレス比較回路１０６は、前回のアドレスＬＱと今回のアドレスＭＱが一致しているか否かを比較する。
【００２３】
図４は、図１のアドレス比較回路１０６の構成例を示す図であり、説明の簡単のために４ビットアドレス（ｍ＝４）を比較する例を説明する。４ビットアドレスａ＜０＞，ａ＜１＞，ａ＜ｍ−２＞，ａ＜ｍ−１＞は、今回のアドレスＭＱに対応する。４ビットアドレスｂ＜０＞，ｂ＜１＞，ｂ＜ｍ−２＞，ｂ＜ｍ−１＞は、前回のアドレスＬＱに対応する。否定排他的論理和回路４０１は、アドレスａ＜０＞及びｂ＜０＞が同じ場合には「１」を出力し、異なる場合には「０」を出力する。否定排他的論理和回路４０２は、アドレスａ＜１＞及びｂ＜１＞が同じ場合には「１」を出力し、異なる場合には「０」を出力する。否定排他的論理和回路４０３は、アドレスａ＜ｍ−２＞及びｂ＜ｍ−２＞が同じ場合には「１」を出力し、異なる場合には「０」を出力する。否定排他的論理和回路４０４は、アドレスａ＜ｍ−１＞及びｂ＜ｍ−１＞が同じ場合には「１」を出力し、異なる場合には「０」を出力する。論理積（ＡＮＤ）回路４０５は、否定排他的論理和回路４０１及び４０２の出力信号の論理積信号を出力する。論理積回路４０６は、否定排他的論理和回路４０３及び４０４の出力信号の論理積信号を出力する。論理積回路４０７は、論理積回路４０５及び４０６の出力信号の論理積信号を一致信号ｃｏｍｐとして出力する。今回のアドレスａ＜０＞，ａ＜１＞，ａ＜ｍ−２＞，ａ＜ｍ−１＞と前回のアドレスｂ＜０＞，ｂ＜１＞，ｂ＜ｍ−２＞，ｂ＜ｍ−１＞が同じ場合には一致信号ｃｏｍｐが「１」になり、両者が異なる場合には一致信号ｃｏｍｐが「０」になる。
【００２４】
図５は、図１のＢポート制御回路１０７の構成例を示す図である。インバータ５０１は、Ａポートのライトイネーブル信号ＷＥＩの論理反転信号を出力する。レジスタ５０２は、Ａポートのクロック信号ＣＫＩＡに同期して、インバータ５０１の出力信号をラッチし、信号ｗｅｉ＿ｍｑを出力する。否定論理積（ＮＡＮＤ）回路５０３は、一致信号ｃｏｍｐ及び信号ｗｅｉ＿ｍｑの否定論理積信号ｗｅｉ＿ｃｏｍｐを出力する。否定論理積回路５０４は、エラーフラグｃ＿ｆｌａｇ及び信号ｗｅｉ＿ｃｏｍｐの否定論理積信号をＢポートのライトイネーブル信号ＷＥＪとして２ポートＲＡＭ１０４に出力する。一致信号ｃｏｍｐは、Ｂポートのチップイネーブル信号ＣＥＪＢとして２ポートＲＡＭ１０４に出力される。２ポートＲＡＭ１０４は、エラーフラグｃ＿ｆｌａｇが「１」であり、かつ、一致信号ｃｏｍｐが「０」の場合には、Ｂポートのライトイネーブル信号ＷＥＪが「０」になり、Ｂポートのチップイネーブル信号ＣＥＪＢが「０」になり、２ポートＲＡＭ１０４のＢポートにおいて、訂正データの書き込みを指示する。それ以外の場合には、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートにおいて、訂正データの書き込みを禁止する。
【００２５】
図６は、図５のレジスタ５０２の構成例を示す図である。クロック信号ＣＫは、図５のクロック信号ＣＫＩＡに対応する。入力データＤは、図５のインバータ５０１の出力信号に対応する。出力データＭＱは、図５の信号ｗｅｉ＿ｍｑに対応する。インバータ６０１は、クロック信号ＣＫの論理反転信号を出力する。トランスミッションゲート６０２は、入力データＤを入力し、クロック信号ＣＫがローレベルの時にオンし、クロック信号ＣＫがハイレベルの時にオフする。マスターラッチ回路６０３は、２個のインバータを有し、トランスミッションゲート６０２の出力信号をラッチし、その出力信号の論理反転信号を出力する。インバータ６０４は、マスターラッチ回路６０３の出力信号の論理反転信号ＭＱを出力する。
【００２６】
図７（Ａ）は、図１のメモリ装置の動作例を示す図である。まず、第１のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リード（読み出し）コマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。次回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、今回のサイクルでは２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わずに、次回のサイクルで訂正データ書き込みを行う準備をする。
【００２７】
次に、第２のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライト（書き込み）コマンドに応じてライト動作を行う。このライト動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。一致信号ｃｏｍｐが「１」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路１０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００２８】
次に、第３のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、次回のサイクルで訂正データ書き込みを行う準備をする。
【００２９】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。一致信号ｃｏｍｐが「０」であり、今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行う。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路１０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００３０】
次に、第５のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、次回のサイクルで訂正データ書き込みを行う準備をする。
【００３１】
次に、第６のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。一致信号ｃｏｍｐが「０」であり、今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行う。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路１０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００３２】
以上のように、２ポートＲＡＭ１０４のＡポートの出力データＡ［ｎ＋α］のエラーが検出された場合には、次回のサイクルで、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行う。その際、前回のアドレスと今回のアドレスが一致して一致信号ｃｏｍｐが「１」になった場合には、同じアドレスのアクセスの衝突を回避するために、訂正データの書き込みを行わない。これに対し、前回のアドレスと今回のアドレスが一致せずに一致信号ｃｏｍｐが「０」になった場合には、訂正データの書き込みを行う。
【００３３】
本実施形態によれば、２ポートＲＡＭ１０４の出力データＡ［ｎ＋α］のエラーが検出された場合には、訂正したデータＪ［ｎ＋α］を書き込むことにより、２ビット以上のエラーを防止し、データの信頼性を向上させることができる。
【００３４】
また、Ｂポート制御回路１０７が２ポートＲＡＭ１０４のＢポートの書き込みを制御するので、ユーザが外部からメモリ装置を一度停止させて訂正データを書き込む場合に比べ、動作スループットを向上させることができる。
【００３５】
（第２の実施形態）
図８は、第２の実施形態によるメモリ装置の構成例を示す図である。本実施形態（図８）は、第１の実施形態（図１）に対して、２ポートＲＡＭ１０４及びＢポート制御回路１０７の代わりに、２ポートＲＡＭ８０４及びＢポート制御回路８０７を設けたものである。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００３６】
第２のタイプの２ポートＲＡＭ８０４は、第１のタイプの２ポートＲＡＭ１０４の代わりに設けられる。第２のタイプの２ポートＲＡＭ８０４は、図２において、トランスミッションゲート２０５が削除されている。以下、第２のタイプの２ポートＲＡＭ８０４の動作を説明する。第２のタイプの２ポートＲＡＭ８０４の読み出し動作は、第１のタイプの２ポートＲＡＭ１０４と同じである。次に、書き込み動作について説明する。書き込み指示の場合、トランスミッションゲート２０５がないので、出力ラッチ回路２０４のラッチデータは変化せず、出力ラッチ回路２０４の出力データＡ［ｎ＋α］も変化しない。
【００３７】
図７（Ｂ）は、図１の２ポートＲＡＭ１０４を第２のタイプの２ポートＲＡＭ８０４に置き換えた場合の図１のメモリ装置の動作例を示す図である。まず、第１のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。次回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であるので、Ｂポート制御回路１０７は、今回のサイクルでは２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わずに、次回のサイクルで訂正データ書き込みを行う準備をする。
【００３８】
次に、第２のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライトコマンドに応じてライト動作を行う。ライト動作では、Ａポートの出力データＡ［ｎ＋α］は変化しない。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化しないので、出力データＡ［ｎ＋α］のエラー検出を行わず、「１」のエラーフラグｃ＿ｆｌａｇを維持する。一致信号ｃｏｍｐが「１」であるので、Ｂポート制御回路１０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、エラーフラグｃ＿ｆｌａｇが「１」を維持しているので、Ｂポート制御回路１０７は、次回のサイクルの訂正データ書き込みの準備を解除できない。
【００３９】
次に、第３のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であり、一致信号ｃｏｍｐが「０」であるので、Ｂポート制御回路１０７は、第２のサイクルでＡポートの書き込みを行ったデータのアドレスと同じアドレスに対して、第１のサイクルの読み出しデータの訂正データを上書きしてしまう。これでは、第２のサイクルの書き込みデータが消去されてしまうので、第３のサイクルのＢポートの訂正データの書き込みは誤ライトになる。
【００４０】
本実施形態（図８）のメモリ装置は、第２のタイプの２ポートＲＡＭ８０４に対して、適切な制御を行うことができる。
【００４１】
図９は、図８のＢポート制御回路８０７の構成例を示す図である。インバータ９０１は、一致信号ｃｏｍｐの論理反転信号を出力する。レジスタ９０２は、Ａポートのクロック信号ＣＫＩＡに同期して、インバータ９０１の出力信号をラッチし、一致信号ｃｏｍｐ＿２を出力する。一致信号ｃｏｍｐ＿２は、一致信号ｃｏｍｐの論理反転信号である。ライトイネーブル制御回路９０３は、エラーフラグｃ＿ｆｌａｇ及び信号ｃｏｍｐ＿２を入力し、信号ｃ＿ｆｌａｇ＿２をＢポートのライトイネーブル信号ＷＥＪとして２ポートＲＡＭ８０４に出力する。また、一致信号ｃｏｍｐは、Ｂポートのチップイネーブル信号ＣＥＪＢとして２ポートＲＡＭ８０４に出力される。
【００４２】
図１０は、図９のレジスタ９０２の構成例を示す図である。クロック信号ＣＫは、図９のクロック信号ＣＫＩＡに対応する。入力データＤは、図９のインバータ９０１の出力信号に対応する。出力データＳＱは、図９の一致信号ｃｏｍｐ＿２に対応する。インバータ１００１は、クロック信号ＣＫの論理反転信号を出力する。トランスミッションゲート１００４は、入力データＤを入力し、クロック信号ＣＫがローレベルの時にオンし、クロック信号ＣＫがハイレベルの時にオフする。マスターラッチ回路１００２は、２個のインバータを有し、トランスミッションゲート１００４の出力信号をラッチし、その出力信号の論理反転信号を出力する。トランスミッションゲート１００５は、マスターラッチ回路１００２の出力信号を入力し、クロック信号ＣＫがハイレベルの時にオンし、クロック信号ＣＫがローレベルの時にオフする。スレーブラッチ回路１００３は、２個のインバータを有し、トランスミッションゲート１００５の出力信号をラッチし、その出力信号の論理反転信号ＳＱを出力する。インバータ１００６は、マスターラッチ回路１００２の出力信号の論理反転信号ＭＱを出力する。
【００４３】
図１１は、図９のライトイネーブル制御回路９０３の構成例を示す図である。チョッパー回路１１０１は、奇数個のインバータ１１０２及び否定論理積回路１１０３を有し、エラーフラグｃ＿ｆｌａｇの立ち上がり時に、負のパルス信号ｎ＿ｐｕｌｓｅを発生させる。否定論理積回路１１０４は、エラーフラグｃ＿ｆｌａｇ及び一致信号ｃｏｍｐ＿２の否定論理積信号ｎｄｏを出力する。ｐチャネル電界効果トランジスタ１１０５は、ソースが電源電位ノードに接続され、ゲートがパルス信号ｎ＿ｐｕｌｓｅのノードに接続される。ｐチャネル電界効果トランジスタ１１０６は、ソースがトランジスタ１１０５のドレインに接続され、ゲートが信号ｎｄｏのノードに接続される。ｎチャネル電界効果トランジスタ１１０７は、ドレインがトランジスタ１１０６のドレインに接続され、ゲートが信号ｎｄｏのノードに接続され、ソースがグランド電位ノードに接続される。ラッチ回路１１０８は、２個のインバータを有し、トランジスタ１１０６のドレイン信号をラッチし、そのドレイン信号の論理反転信号ｃ＿ｆｌａｇ＿２をＢポートのライトイネーブル信号ＷＥＪとして２ポートＲＡＭ８０４に出力する。また、一致信号ｃｏｍｐは、Ｂポートのチップイネーブル信号ＣＥＪＢとして２ポートＲＡＭ８０４に出力される。
【００４４】
トランジスタ１１０５は、エラーフラグｃ＿ｆｌａｇの立ち上がり時のみオンする。１ビットエラーが発生していない状態では、エラーフラグｃ＿ｆｌａｇが「０」であり、信号ｎｄｏが「１」であり、信号ｃ＿ｆｌａｇ＿２が「１」である。この場合、Ｂポートのライトイネーブル信号ＷＥＪが「１」になり、２ポートＲＡＭ８０４は、Ｂポートの訂正データの書き込みを行わない。
【００４５】
また、アドレスが一致した状態では、一致信号ｃｏｍｐ＿２が「０」であり、信号ｎｄｏが「１」であり、信号ｃ＿ｆｌａｇ＿２が「１」である。この場合、Ｂポートのライトイネーブル信号ＷＥＪが「１」になり、２ポートＲＡＭ８０４は、Ｂポートの訂正データの書き込みを行わない。
【００４６】
また、アドレスが一致しない状態では、一致信号ｃｏｍｐ＿２が「１」であり、１ビットエラーが検出された時、エラーフラグｃ＿ｆｌａｇが「１」であり、信号ｎｄｏが「０」であり、トランジスタ１１０６がオン状態になる。また、エラーフラグｃ＿ｆｌａｇの立ち上がり時に、信号ｎ＿ｐｕｌｓｅが負パルスとなり、トランジスタ１１０５が短パルス期間オンする。トランジスタ１１０５及び１１０６がオンすると、信号ｃ＿ｆｌａｇ＿２が「０」になる。また、一致信号ｃｏｍｐが「０」になる。この場合、Ｂポートのライトイネーブル信号ＷＥＪが「０」になり、Ｂポートのチップイネーブル信号ＣＥＪＢが「０」になるので、２ポートＲＡＭ８０４は、Ｂポートで訂正データの書き込みを行う。
【００４７】
図１２（Ａ）は、図８の２ポートＲＡＭ８０４を第１のタイプの２ポートＲＡＭ１０４に置き換えた場合の図８のメモリ装置の動作例を示す図である。図１２（Ａ）の動作は、図７（Ａ）の動作と同じであり、正常な動作を行う。
【００４８】
図１２（Ｂ）は、第２のタイプの２ポートＲＡＭ８０４を用いた図８のメモリ装置の動作例を示す図である。まず、第１のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」から「１」に変化するので、Ｂポート制御回路８０７は、今回のサイクルでは２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わずに、次回のサイクルで訂正データ書き込みを行う準備をする。
【００４９】
次に、第２のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライトコマンドに応じてライト動作を行う。ライト動作では、Ａポートの出力データＡ［ｎ＋α］は変化しない。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化しないので、出力データＡ［ｎ＋α］のエラー検出を行わず、「１」のエラーフラグｃ＿ｆｌａｇを維持する。一致信号ｃｏｍｐが「１」であるので、Ｂポート制御回路８０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、エラーフラグｃ＿ｆｌａｇが「１」を維持しているので、Ｂポート制御回路８０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００５０】
次に、第３のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、「１」のエラーフラグｃ＿ｆｌａｇを維持する。エラーフラグｃ＿ｆｌａｇが「１」を維持しているので、Ｂポート制御回路８０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、エラーフラグｃ＿ｆｌａｇが「１」を維持しているので、Ｂポート制御回路８０７は、次回のサイクルの訂正データ書き込みの準備を解除する。このサイクルでは、図７（Ｂ）の第３のサイクルのような誤ライトを防止できる。
【００５１】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」を維持しているので、Ｂポート制御回路８０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路８０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００５２】
次に、第５のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路８０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行わない。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」から「１」に変化するので、Ｂポート制御回路８０７は、次回のサイクルで訂正データ書き込みを行う準備をする。
【００５３】
次に、第６のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。一致信号ｃｏｍｐが「０」であり、今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」から「１」に変化したので、Ｂポート制御回路８０７は、２ポートＲＡＭ１０４のＢポートで訂正データの書き込みを行う。また、次回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、Ｂポート制御回路８０７は、次回のサイクルの訂正データ書き込みの準備を解除する。
【００５４】
以上のように、第２のタイプの２ポートＲＡＭ８０４は、書き込み動作時に出力データＡ［ｎ＋α］が変化せず、ＥＣＣ復号化回路１０３はエラー検出を行わない。そのため、第２のサイクルの書き込み動作時には、前回の「１」のエラーフラグｃ＿ｆｌａｇが変化せずに維持される。本実施形態では、エラーフラグｃ＿ｆｌａｇが「０」から「１」に変化した時だけ、Ｂポートの訂正データの書き込みを許可するので、図７（Ｂ）のような誤ライトを防止することができる。
【００５５】
（第３の実施形態）
図１３（Ａ）は第３の実施形態によるメモリ装置の混載例を示す図であり、図１３（Ｂ）は第３の実施形態によるメモリ装置の他の混載例を示す図であり、第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ８０４が混載されている。本実施形態では、２ポートＲＡＭが第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ１０４のいずれであるのかを識別し、第１のタイプの２ポートＲＡＭ１０４の場合には第１の実施形態の動作を行い、第２のタイプの２ポートＲＡＭ８０４の場合には第２の実施形態の動作を行う。
【００５６】
図１４は、第３の実施形態によるメモリ装置の構成例を示す図である。本実施形態（図１４）は、第１の実施形態（図１）に対して、２ポートＲＡＭ１０４及びＢポート制御回路１０７の代わりに２ポートＲＡＭ１４０４及びＢポート制御回路１４０７を設け、タイプ識別回路１４０８を追加したものである。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００５７】
２ポートＲＡＭ１４０４は、第１のタイプの２ポートＲＡＭ１０４又は第２のタイプの２ポートＲＡＭ８０４である。タイプ識別回路１４０８は、２ポートＲＡＭ１４０４からＡポートの入力データＩ［ｎ＋α］及び出力データＡ［ｎ＋α］等を入力し、２ポートＲＡＭ１４０４が第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ８０４のいずれであるかを識別し、識別信号ｉｄｅｎｔｉｆｙ＿２を出力する。Ｂポート制御回路１４０７は、エラーフラグｃ＿ｆｌａｇ、一致信号ｃｏｍｐ及び識別信号ｉｄｅｎｔｉｆｙ＿２を入力し、識別信号ｉｄｅｎｔｉｆｙ＿２が第１のタイプの２ポートＲＡＭ１０４を示す場合には第１の実施形態のＢポート制御回路１０７と同様の制御を行い、識別信号ｉｄｅｎｔｉｆｙ＿２が第２のタイプの２ポートＲＡＭ８０４を示す場合には第２の実施形態のＢポート制御回路８０７と同様の制御を行う。
【００５８】
図１５は、図１４のタイプ識別回路１４０８の構成例を示す図である。４ビット入力データＩ＜０＞〜Ｉ＜３＞は、図１４の入力データＩ［ｎ＋α］に対応する。４ビット出力データＡ＜０＞〜Ａ＜３＞は、図１４の出力データＡ［ｎ＋α］に対応する。データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞は、２ポートＲＡＭ１４０４のＡポートの書き込みデータをビットマスクするための信号であり、「１」の場合にはマスクありを示し、「０」の場合にはマスクなしを示す。
【００５９】
入力データＩ＜０＞〜Ｉ＜３＞は、それぞれ、図３の回路と同様の構成のロックアップレジスタを介して、否定排他的論理和回路１５０１〜１５０４に入力される。出力データＡ＜０＞〜Ａ＜３＞は、それぞれ、図６の回路と同様の構成のレジスタを介して、否定排他的論理和回路１５０１〜１５０４に入力される。データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞は、それぞれ、図３の回路と同様の構成のロックアップレジスタを介して、論理和回路１５０５〜１５０８に入力される。
【００６０】
否定排他的論理和回路１５０１は、入力データＩ＜０＞及び出力データＡ＜０＞が同じ場合には「１」を出力し、両者が異なる場合には「０」を出力する。否定排他的論理和回路１５０２は、入力データＩ＜１＞及び出力データＡ＜１＞が同じ場合には「１」を出力し、両者が異なる場合には「０」を出力する。否定排他的論理和回路１５０３は、入力データＩ＜２＞及び出力データＡ＜２＞が同じ場合には「１」を出力し、両者が異なる場合には「０」を出力する。否定排他的論理和回路１５０４は、入力データＩ＜３＞及び出力データＡ＜３＞が同じ場合には「１」を出力し、両者が異なる場合には「０」を出力する。
【００６１】
論理和回路１５０５は、否定排他的論理和回路１５０１の出力信号及びデータマスク信号ＤＭＩ＜０＞の論理和信号を出力する。論理和回路１５０６は、否定排他的論理和回路１５０２の出力信号及びデータマスク信号ＤＭＩ＜１＞の論理和信号を出力する。論理和回路１５０７は、否定排他的論理和回路１５０３の出力信号及びデータマスク信号ＤＭＩ＜２＞の論理和信号を出力する。論理和回路１５０８は、否定排他的論理和回路１５０４の出力信号及びデータマスク信号ＤＭＩ＜３＞の論理和信号を出力する。
【００６２】
論理積回路１５０９は、論理和回路１５０５及び１５０６の出力信号の論理積信号を出力する。論理積回路１５１０は、論理和回路１５０７及び１５０８の出力信号の論理積信号を出力する。論理積回路１５１１は、論理積回路１５０９及び１５１０の出力信号の論理積信号ｄ＿ｃｏｍｐを出力する。
【００６３】
Ａポートのライトイネーブル信号ＷＥＩは、図３の回路と同様の構成のロックアップレジスタを介して、論理和回路１５１２に入力される。Ａポートのチップイネーブル信号ＣＥＩＡは、図３の回路と同様の構成のロックアップレジスタを介して、論理和回路１５１２に入力される。論理和回路１５１２は、ライトイネーブル信号ＷＥＩ及びチップイネーブル信号ＣＥＩＡの論理和信号を出力する。インバータ１５１３は、論理和回路１５１２の出力信号の論理反転信号を出力する。論理積回路１５１７は、インバータ１５１３の出力信号及びＡポートのクロック信号ＣＫＩＡの論理積信号を出力する。
【００６４】
トランスミッションゲート１５１４は、信号ｄ＿ｃｏｍｐをを入力し、論理和回路１５１２の出力信号が「０」の場合にオンし、論理和回路１５１２の出力信号が「１」の場合にオフする。ラッチ回路１５１５は、２個のインバータを有し、トランスミッションゲート１５１４の出力信号をラッチし、その出力信号の論理反転信号を出力する。インバータ１５１６は、ラッチ回路１５１５の出力信号の論理反転信号を識別信号ＩＤとして出力する。１０個のレジスタ１５１８は、シフトレジスタを構成する。レジスタ１５１８は、論理和回路１５１７の出力信号をクロック信号ＣＫとして入力し、識別信号ＩＤをラッチし、次段のレジスタ１５１８に出力する。また、レジスタ１５１８は、信号ＳＥＴが「１」になると、ラッチデータが「０」にリセットされる。１０個のレジスタ１５１８は、クロック信号ＣＫに同期して、識別信号ＩＤをシフトして記憶する。１０個のレジスタ１５１８には、１０サイクル分の識別信号ＩＤが記憶される。論理積回路１５１９は、１０個のレジスタ１５１８の出力信号の論理積信号を識別信号ｉｄｅｎｔｉｆｙ＿２として出力する。
【００６５】
図２に示したように、第１のタイプの２ポートＲＡＭ１０４では、書き込み動作時に、入力データＩ［ｎ＋α］がトランスミッションゲート２０５及び出力ラッチ回路２０４を介して出力データＡ［ｎ＋α］として出力される。すなわち、第１のタイプの２ポートＲＡＭ１０４では、書き込み動作時に、入力データＩ［ｎ＋α］及び出力データＡ［ｎ＋α］が同じになる。
【００６６】
これに対し、第２のタイプの２ポートＲＡＭ８０４では、トランスミッションゲート２０５がないので、書き込み動作時に、出力ラッチ回路２０４に記憶されているリードデータが出力データＡ［ｎ＋α］として出力される。すなわち、第２のタイプの２ポートＲＡＭ８０４では、書き込み動作時に、入力データＩ［ｎ＋α］及び出力データＡ［ｎ＋α］が同じとは限らず、両者が異なる場合が多い。
【００６７】
また、データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞のいずれかが「１」である場合には、書き込みデータがビットマスクされるので、そのマスクされたビットについて、入力データＩ［ｎ＋α］及び出力データＡ［ｎ＋α］の比較を行うことができない。
【００６８】
したがって、データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞がすべて「０」の場合、入力データＩ＜０＞〜Ｉ＜３＞及び出力データＡ＜０＞〜Ａ＜３＞が同じ場合には、識別信号ｄ＿ｃｏｍｐが「１」になる。この場合、２ポートＲＡＭ１４０４は、第１のタイプの２ポートＲＡＭ１０４であると推定される。
【００６９】
また、データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞がすべて「０」の場合、入力データＩ＜０＞〜Ｉ＜３＞及び出力データＡ＜０＞〜Ａ＜３＞が異なる場合には、識別信号ｄ＿ｃｏｍｐが「０」になる。この場合、２ポートＲＡＭ１４０４は、第２のタイプの２ポートＲＡＭ８０４であると推定される。
【００７０】
ここで、データマスク信号ＤＭＩ＜０＞〜ＤＭＩ＜３＞のいずれかが「１」である場合には、そのビットについては、入力データ及び出力データが一致しているとみなす。
【００７１】
また、トランスミッションゲート１５１４は、書き込み動作時にオンし、読み出し動作時にオフする。その結果、識別信号ＩＤは、「１」が第１のタイプの２ポートＲＡＭ１０４を示し、「０」が第２のタイプの２ポートＲＡＭ８０４を示す。
【００７２】
電源投入時に、信号ＳＥＴが正のパルスになり、１０個のレジスタ１５１８は、ラッチデータが「０」に初期化される。その後、１０個のレジスタ１５１８は、１０サイクル分の識別信号ＩＤを記憶する。論理積回路１５１９は、１０個のレジスタ１５１８の出力信号の論理積信号を識別信号ｉｄｅｎｔｉｆｙ＿２として出力する。識別信号ｉｄｅｎｔｉｆｙ＿２は、「１」が第１のタイプの２ポートＲＡＭ１０４を示し、「０」が第２のタイプの２ポートＲＡＭ８０４を示す。第２のタイプのＲＡＭ８０４でも、１サイクル分の識別信号ＩＤが「１」になることがあるが、１０サイクル分の識別信号ＩＤのすべてが「１」になる確率は極めて低い。そのために、１０個のレジスタ１５１８及び論理積回路１５１９が設けられる。１０サイクル分の識別信号ＩＤのすべてが「１」である場合には、識別信号ｉｄｅｎｔｉｆｙ＿２が「１」になり、２ポートＲＡＭ１４０４が第１のタイプの２ポートＲＡＭ１０４であると識別する。これに対し、１０サイクル分の識別信号ＩＤのすべてが「１」でない場合には、識別信号ｉｄｅｎｔｉｆｙ＿２が「０」になり、２ポートＲＡＭ１４０４が第２のタイプの２ポートＲＡＭ８０４であると識別する。
【００７３】
なお、電源投入直後は、１０個のレジスタ１５１８のラッチデータが「０」にリセットされるので、識別信号ｉｄｅｎｔｉｆｙ＿２は「０」になり、２ポートＲＡＭ１４０４は第２のタイプの２ポートＲＡＭ８０４として識別される。その場合、Ｂポート制御回路１４０７は、第２の実施形態のＢポート制御回路８０７と同様の動作を行う。図１２（Ａ）及び（Ｂ）に示したように、第２の実施形態のＢポート制御回路８０７は、第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ８０４の両方において正常に動作する。
【００７４】
図１６は、図１５のレジスタ１５１８の構成例を示す図である。インバータ１６０１は、クロック信号ＣＫの論理反転信号を出力する。インバータ１６０２は、信号ＳＥＴの論理反転信号を出力する。信号ＳＥＴは、電源投入時に短期間「１」になり、その後、「０」になる。信号ＳＥＴが「１」の場合、トランジスタ１６０７及び１６０８がオンし、マスターラッチ回路１６０３の入力ノードが「０」にリセットされ、スレーブラッチ回路１６０４の入力ノードが「１」にセットされる。その結果、出力データＳＱは、「０」になる。
【００７５】
信号ＳＥＴが「０」の場合、トランジスタ１６０７及び１６０８がオフする。トランスミッションゲート１６０５は、入力データＤを入力し、クロック信号ＣＫがローレベルの時にオンし、クロック信号ＣＫがハイレベルの時にオフする。マスターラッチ回路１６０３は、トランスミッションゲート１６０５の出力信号をラッチし、その出力信号の論理反転信号を出力する。トランスミッションゲート１６０６は、マスターラッチ回路１６０３の出力信号を入力し、クロック信号ＣＫがハイレベルの時にオンし、クロック信号ＣＫがローレベルの時にオフする。スレーブラッチ回路１６０４は、トランスミッションゲート１６０６の出力信号をラッチし、その出力信号の論理反転信号を出力データＳＱとして出力する。
【００７６】
図１７は、図１４のＢポート制御回路１４０７の構成例を示す図である。図１７のＢポート制御回路１４０７は、図１１のＢポート制御回路８０７に対して、インバータ１７０１及びセレクタ１７０２を追加したものである。以下、図１７のＢポート制御回路１４０７が図１１のＢポート制御回路８０７と異なる点を説明する。インバータ１７０１は、識別信号ｉｄｅｎｔｉｆｙ＿２の論理反転信号を出力する。セレクタ１７０２は、識別信号ｉｄｅｎｔｉｆｙ＿２が「１」の場合には「１」を出力し、識別信号ｉｄｅｎｔｉｆｙ＿２が「０」の場合には信号ｃｏｍｐ＿２を出力する。否定論理積信号１１０４は、セレクタ１７０２の出力信号及びエラーフラグｃ＿ｆｌａｇの否定論理積信号ｎｄｏを出力する。これにより、Ｂポート制御回路１４０７は、識別信号ｉｄｅｎｔｉｆｙ＿２が「１」の場合には第１の実施形態のＢポート制御回路１０７と同様の動作を行い、識別信号ｉｄｅｎｔｉｆｙ＿２が「０」の場合には第２の実施形態のＢポート制御回路８０７と同様の動作を行う。
【００７７】
本実施形態では、図１３（Ａ）又は（Ｂ）のように、第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ８０４が混載されている場合、タイプ識別回路１４０８は、２ポートＲＡＭ１４０４が第１のタイプの２ポートＲＡＭ１０４及び第２のタイプの２ポートＲＡＭ８０４のいずれであるのかを識別することができる。Ｂポート制御回路１４０７は、その識別結果に応じて、適切な制御を行うことができる。
【００７８】
（第４の実施形態）
図１８（Ａ）は、Ａポート及びＢポートの両方がアクセスしていない２ポートＲＡＭ１０４のメモリセルを示す図である。Ａポートは、一対のビット線ＢＬＡ，ＢＬＸＡ及びトランジスタｔｒ１，ｔｒ２を有する。Ｂポートは、一対のビット線ＢＬＢ，ＢＬＸＢ及びトランジスタｔｒ３，ｔｒ４を有する。ｐチャネル電界効果トランジスタｌｏ１，ｌｏ２及びｎチャネル電界効果トランジスタｄｒ１，ｄｒ２は、ラッチ回路を構成する。例えば、ノードＭＺは、ハイレベルを記憶し、ノードＭＸはローレベル（０Ｖ）を記憶している。Ａポートのアクセスがない場合、Ａポートのワード線ＷＬＡがローレベルになり、トランジスタｔｒ１及びｔｒ２はオフする。ビット線ＢＬＡ，ＢＬＸＡはハイレベルにプリチャージされている。Ｂポートのアクセスがない場合、Ｂポートのワード線ＷＬＢがローレベルになり、トランジスタｔｒ３及びｔｒ４はオフする。ビット線ＢＬＢ，ＢＬＸＢはハイレベルにプリチャージされている。トランジスタｔｒ１，ｔｒ２，ｔｒ３，ｔｒ４がオフしているので、ノードＭＺ及びＭＸのデータは保持される。
【００７９】
図１８（Ｂ）は、Ａポートのみアクセスしている２ポートＲＡＭ１０４のメモリセルを示す図である。例えば、ノードＭＺはハイレベルを記憶し、ノードＭＸはローレベル（０Ｖ）を記憶している。ビット線ＢＬＡ，ＢＬＸＡはハイレベルにプリチャージされている。Ａポートのリードアクセスがある場合、Ａポートのワード線ＷＬＡがハイレベルになり、トランジスタｔｒ１及びｔｒ２はオンする。すると、ビット線ＢＬＸＡはハイレベルから電位が下がり、ノードＭＸは０Ｖから少し電位が上昇するが、トランジスタｌｏ１，ｌｏ２，ｄｒ１，ｄｒ２のラッチ回路によりノードＭＸはローレベルに維持されるように、トランジスタのサイズが設定されている。以上のように、ノードＭＸのローレベルがビット線ＢＬＸＡに読み出される。
【００８０】
図１８（Ｃ）は、Ａポート及びＢポートの両方がアクセスしている２ポートＲＡＭ１０４のメモリセルを示す図である。例えば、ノードＭＺはハイレベルを記憶し、ノードＭＸはローレベル（０Ｖ）を記憶している。ビット線ＢＬＡ，ＢＬＸＡ，ＢＬＢ，ＢＬＸＢはハイレベルにプリチャージされている。Ａポートのリードアクセスがある場合、Ａポートのワード線ＷＬＡがハイレベルになり、トランジスタｔｒ１及びｔｒ２はオンする。また、Ｂポートの（ダミーリード）アクセスがある場合、Ｂポートのワード線ＷＬＢがハイレベルになり、トランジスタｔｒ３及びｔｒ４はオンする。すると、ノードＭＸがビット線ＢＬＸＡ及びＢＬＸＢの両方に接続され、ノードＭＸは、図１８（Ｂ）の場合に比べて、０Ｖから比較的大きく上昇する。すると、ノードＭＸの記憶データが破壊される場合がある。以下、このようなメモリセルの記憶データ破壊を防止するための実施形態を説明する。
【００８１】
図１９は、第４の実施形態によるメモリ装置の構成例を示す図である。本実施形態（図１９）は、第１の実施形態（図１）に対して、ディレイ回路１９０１を追加したものである。以下、本実施形態が第１の実施形態と異なる点を説明する。ディレイ回路１９０１は、Ｂポート制御回路１０７の出力信号、ＢポートのアドレスＪＢ［ｍ］及びＢポートの入力データＪ［ｎ＋α］を遅延させて２ポートＲＡＭ１０４に出力する。これにより、Ｂポートのアクセスは、Ａポートのアクセスに対して、遅らせることができる。図１８（Ｃ）の場合でも、Ａポートのワード線ＷＬＡ及びＢポートのワード線ＷＬＢがハイレベルになるタイミングをずらすことができ、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止できる。これにより、メモリセルの記憶データ破壊を防止することができる。また、記憶データ破壊防止のために、メモリセルのトランジスタのサイズを大きくする必要がないので、メモリセルを小型化することができる。
【００８２】
図２０は、図１９のディレイ回路１９０１の構成例を示す図である。ディレイ回路１９０１は、偶数個のインバータ２００１を有し、入力信号ＩＮを遅延させた信号ｏｕｔを出力する。ワード線ＷＬＡ及びＷＬＢは、１ｎｓのパルス幅の信号で制御される。ディレイ回路１９０１は、Ａポートのワード線ＷＬＡがハイレベルからローレベルになった後に、Ｂポートのワード線ＷＬＢがハイレベルになるように、タイミング調整する。
【００８３】
（第５の実施形態）
図２１は、第５の実施形態によるメモリ装置の構成例を示す図である。本実施形態（図２１）は、第２の実施形態（図８）に対して、ディレイ回路２１０１を追加したものである。以下、本実施形態が第２の実施形態と異なる点を説明する。ディレイ回路２１０１は、Ｂポート制御回路８０７の出力信号、ＢポートのアドレスＪＢ［ｍ］及びＢポートの入力データＪ［ｎ＋α］を遅延させて２ポートＲＡＭ８０４に出力する。これにより、Ｂポートのアクセスは、Ａポートのアクセスに対して、遅らせることができる。図１８（Ｃ）の場合でも、Ａポートのワード線ＷＬＡ及びＢポートのワード線ＷＬＢがハイレベルになるタイミングをずらすことができ、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止できる。これにより、メモリセルの記憶データ破壊を防止することができる。
【００８４】
（第６の実施形態）
図２２は、第６の実施形態によるメモリ装置の構成例を示す図である。本実施形態（図２２）は、第３の実施形態（図１４）に対して、ディレイ回路２２０１を追加したものである。以下、本実施形態が第３の実施形態と異なる点を説明する。ディレイ回路２２０１は、Ｂポート制御回路１４０７の出力信号、ＢポートのアドレスＪＢ［ｍ］及びＢポートの入力データＪ［ｎ＋α］を遅延させて２ポートＲＡＭ１４０４に出力する。これにより、Ｂポートのアクセスは、Ａポートのアクセスに対して、遅らせることができる。図１８（Ｃ）の場合でも、Ａポートのワード線ＷＬＡ及びＢポートのワード線ＷＬＢがハイレベルになるタイミングをずらすことができ、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止できる。これにより、メモリセルの記憶データ破壊を防止することができる。
【００８５】
（第７の実施形態）
図２３は、第７の実施形態によるメモリ装置の構成例を示す図であり、第１の実施形態のメモリ装置のより具体的な例を示す。以下、本実施形態が第１の実施形態と異なる点を説明する。２ポートＲＡＭ１０４は、Ａポートのクロック信号ＣＫＩＡ、Ａポートのチップイネーブル信号ＣＥＩＡ、Ａポートのライトイネーブル信号ＷＥＩ、ＡポートのアドレスＩＡ［ｍ］及びＡポートの入力データＩ［ｎ＋α］を入力し、Ａポートの出力データＡ［ｎ＋α］を出力する。また、２ポートＲＡＭ１０４は、Ｂポートのクロック信号ＣＫＪＢ、Ｂポートのチップイネーブル信号ＣＥＪＢ、Ｂポートのライトイネーブル信号ＷＥＪ、ＢポートのアドレスＪＢ［ｍ］及びＢポートの入力データＪ［ｎ＋α］を入力し、Ｂポートの出力データＢ［ｎ＋α］を出力する。Ｂポートのクロック信号ＣＫＪＢは、Ａポートのクロック信号ＣＫＩＡと同じである。
【００８６】
図２４は、図２３の２ポートＲＡＭ１０４の構成例を示す図である。クロック回路２４０１は、Ａポートのチップイネーブル信号ＣＥＩＡ、クロック信号ＣＫＩＡ及びライトイネーブル信号ＷＥＩを入力し、プリデコーダ（アドレスラッチ）２４０２、センスアンプ２４０６及びライトアンプ２４０５にクロック信号を出力する。プリデコーダ（アドレスラッチ）２４０２は、ＡポートのアドレスＩＡ［ｍ］をラッチし、プリデコード信号をロウデコーダ２４０３に出力し、カラム選択信号をカラムセレクタ２４０４に出力する。ロウデコーダ２４０３は、メモリセル２４０７のＡポートのワード線ｗｌａを制御する。メモリセル２４０７は、図１８（Ａ）〜（Ｃ）のメモリセルを複数有し、データを記憶する。ライトアンプ２４０５は、Ａポートの入力データＩ［ｎ＋α］を増幅する。カラムセレクタ２４０４は、その増幅された書き込みデータを、カラム選択したメモリセル２４０７に出力する。また、カラムセレクタ２４０４は、カラム選択したメモリセル２４０７から読み出されたデータをセンスアンプ２４０６に出力する。センスアンプ２４０６は、読み出されたデータを増幅し、Ａポートの出力データＡ［ｎ＋α］を出力する。
【００８７】
クロック回路２４１１は、Ｂポートのチップイネーブル信号ＣＥＪＢ、クロック信号ＣＫＪＢ及びライトイネーブル信号ＷＥＪを入力し、プリデコーダ（アドレスラッチ）２４１２、センスアンプ２４１６及びライトアンプ２４１５にクロック信号を出力する。プリデコーダ（アドレスラッチ）２４１２は、ＢポートのアドレスＪＢ［ｍ］をラッチし、プリデコード信号をロウデコーダ２４１３に出力し、カラム選択信号をカラムセレクタ２４１４に出力する。ロウデコーダ２４１３は、メモリセル２４０７のＢポートのワード線ｗｌｂを制御する。ライトアンプ２４１５は、Ｂポートの入力データＪ［ｎ＋α］を増幅する。カラムセレクタ２４１４は、その増幅された書き込みデータを、カラム選択したメモリセル２４０７に出力する。また、カラムセレクタ２４１４は、カラム選択したメモリセル２４０７から読み出されたデータをセンスアンプ２４１６に出力する。センスアンプ２４１６は、読み出されたデータを増幅し、Ｂポートの出力データＢ［ｎ＋α］を出力する。
【００８８】
図２５〜図２８は、図２３のメモリ装置の制御方法を示すタイミングチャートである。図２５及び図２６は、第１のタイプの２ポートＲＡＭ１０４を使用する場合のタイミングチャートである。
【００８９】
図２５は、訂正データを書き込む場合のタイミングチャートである。まず、第１のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９０】
次に、第２のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９１】
次に、第３のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であり、一致信号ｃｏｍｐが「０」であるので、２ポートＲＡＭ１０４のＢポートは、訂正データＪ［ｎ＋α］の書き込みを行う。
【００９２】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９３】
図２６は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。まず、第１のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９４】
次に、第２のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、１ビットエラーを検出し、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９５】
次に、第３のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライトコマンドに応じてライト動作を行う。このライト動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。一致信号ｃｏｍｐが「１」であるので、２ポートＲＡＭ１０４のＢポートは、ワード線がハイレベルにならず、訂正データＪ［ｎ＋α］の書き込みを行わず、スタンバイ状態になる。これにより、同じアドレスのメモリセルに対して、Ａポート及びＢポートのアクセスの衝突を防止することができる。
【００９６】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。
【００９７】
図２７及び図２８は、第２のタイプの２ポートＲＡＭ８０４を使用する場合のタイミングチャートである。
【００９８】
図２７は、訂正データを書き込む場合のタイミングチャートであり、Ａポートが図２５と同様の動作を行う場合を示す。図２７の動作は、Ａポートのみならず、Ｂポートについても、図２５の動作と同じになる。この場合、メモリ装置は、第２のタイプの２ポートＲＡＭ８０４を使用した場合の動作（図２７）が、第１のタイプの２ポートＲＡＭ１０４を使用した場合の動作（図２５）と同じになる。
【００９９】
図２８は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートであり、Ａポートが図２６と同様の動作を行う場合を示す。図２８は、図２６に対して、第３のサイクル及び第４のサイクルが異なる。以下、図２８が図２６と異なる点を説明する。
【０１００】
第３のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライトコマンドに応じてライト動作を行う。ライト動作では、Ａポートの出力データＡ［ｎ＋α］は変化しない。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化しないので、出力データＡ［ｎ＋α］のエラー検出を行わず、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを維持する。一致信号ｃｏｍｐが「１」であるので、２ポートＲＡＭ１０４のＢポートは、ワード線がハイレベルにならず、訂正データＪ［ｎ＋α］の書き込みを行わず、スタンバイ状態になる。これにより、同じアドレスのメモリセルに対して、Ａポート及びＢポートのアクセスの衝突を防止することができる。
【０１０１】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」であり、一致信号ｃｏｍｐが「０」であるので、２ポートＲＡＭ１０４のＢポートは、ワード線がハイレベルになり、第３のサイクルでＡポートの書き込みを行ったデータのアドレスと同じアドレスに対して、第２のサイクルの読み出しデータの訂正データＪ［ｎ＋α］を上書きしてしまう。これでは、第３のサイクルの書き込みデータが消去されてしまうので、第４のサイクルのＢポートの訂正データの書き込みは誤ライトになる。
【０１０２】
（第８の実施形態）
図２９は、第８の実施形態によるメモリ装置の構成例を示す図であり、第２の実施形態のメモリ装置のより具体的な例を示す。以下、本実施形態が第２の実施形態と異なる点を説明する。２ポートＲＡＭ８０４は、Ａポートのクロック信号ＣＫＩＡ、Ａポートのチップイネーブル信号ＣＥＩＡ、Ａポートのライトイネーブル信号ＷＥＩ、ＡポートのアドレスＩＡ［ｍ］及びＡポートの入力データＩ［ｎ＋α］を入力し、Ａポートの出力データＡ［ｎ＋α］を出力する。また、２ポートＲＡＭ８０４は、Ｂポートのクロック信号ＣＫＪＢ、Ｂポートのチップイネーブル信号ＣＥＪＢ、Ｂポートのライトイネーブル信号ＷＥＪ、ＢポートのアドレスＪＢ［ｍ］及びＢポートの入力データＪ［ｎ＋α］を入力し、Ｂポートの出力データＢ［ｎ＋α］を出力する。Ｂポートのクロック信号ＣＫＪＢは、Ａポートのクロック信号ＣＫＩＡと同じである。２ポートＲＡＭ８０４は、図２４の２ポートＲＡＭ１０４と同様の構成を有する。
【０１０３】
図３０及び図３１は、図２９のメモリ装置の制御方法を示すタイミングチャートである。図３０は、訂正データを書き込む場合のタイミングチャートである。図３０は、図２５に対して、信号ｃｏｍｐ＿２が追加されてる。信号ｃｏｍｐ＿２は、一致信号ｃｏｍｐの論理反転信号である。図３０の動作は、図２５の動作と同じである。
【０１０４】
図３１は、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートであり、Ａポートが図２６と同様の動作を行う場合を示す。図３１は、図２６に対して、第３のサイクル及び第４のサイクルが異なる。以下、図３１が図２６と異なる点を説明する。
【０１０５】
第３のサイクルでは、アドレス比較回路１０６は、アドレス一致として「１」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、ライトコマンドに応じてライト動作を行う。ライト動作では、Ａポートの出力データＡ［ｎ＋α］は変化しない。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化しないので、出力データＡ［ｎ＋α］のエラー検出を行わず、次回のサイクルで「１」のエラーフラグｃ＿ｆｌａｇを維持する。一致信号ｃｏｍｐが「１」であるので、２ポートＲＡＭ１０４のＢポートは、ワード線がハイレベルにならず、訂正データＪ［ｎ＋α］の書き込みを行わず、スタンバイ状態になる。これにより、同じアドレスのメモリセルに対して、Ａポート及びＢポートのアクセスの衝突を防止することができる。
【０１０６】
次に、第４のサイクルでは、アドレス比較回路１０６は、アドレス不一致として「０」の一致信号ｃｏｍｐを出力する。２ポートＲＡＭ１０４のＡポートは、リードコマンドに応じてリード動作を行う。このリード動作により、Ａポートの出力データＡ［ｎ＋α］は変化する。ＥＣＣ復号化回路１０３は、出力データＡ［ｎ＋α］が変化したので、出力データＡ［ｎ＋α］のエラー検出を行い、エラーなしと判定し、次回のサイクルで「０」のエラーフラグｃ＿ｆｌａｇを出力する。今回のサイクルのエラーフラグｃ＿ｆｌａｇが「１」を維持しており、「０」から「１」に変化していないので、Ｂポートのライトイネーブル信号ＷＥＪが「１」となる。これにより、２ポートＲＡＭ１０４のＢポートは、ダミーリード動作を行う。その結果、図２８の第４のサイクルのような誤ライトを防止することができる。
【０１０７】
（第９の実施形態）
図３２は、第９の実施形態によるメモリ装置の構成例を示す図であり、第４の実施形態のメモリ装置のより具体的な例を示す。以下、本実施形態が第４の実施形態と異なる点を説明する。図３２のメモリ装置は、図２３のメモリ装置に対して、ディレイ回路１９０１ａ〜１９０１ｃを追加したものである。ディレイ回路１９０１ａ〜１９０１ｃは、図１９のディレイ回路１９０１に対応する。ディレイ回路１９０１ａは、Ａポートのクロック信号ＣＫＩＡを遅延してＢポートのクロック信号ＣＫＪＢを出力する。ディレイ回路１９０１ｂは、一致信号ｃｏｍｐを遅延してＢポートのチップイネーブル信号ＣＥＪＢを出力する。ディレイ回路１９０１ｃは、ＥＣＣ復号化回路１０３が出力するデータＡ’［ｎ＋α］を遅延してＢポートの入力データＪ［ｎ＋α］を出力する。
【０１０８】
図３３及び図３４は、図３２のメモリ装置の制御方法を示すタイミングチャートである。図３３は、図２５に対応し、訂正データを書き込む場合のタイミングチャートである。以下、図３３が図２５と異なる点を説明する。ディレイ回路１９０１ａ〜１９０１ｃにより、Ｂポートのクロック信号ＣＫＪＢ、チップイネーブル信号ＣＥＪＢ及び入力データＪ［ｎ＋α］が遅延する。これにより、Ｂポートのワード線がハイレベルになる期間は、Ａポートのワード線がハイレベルになる期間よりも遅れる。両者のハイレベル期間は、相互にずれて重ならない。図１８（Ｃ）の場合でも、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止でき、メモリセルの記憶データ破壊を防止することができる。
【０１０９】
図３４は、図２６に対応し、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。以下、図３４が図２６と異なる点を説明する。ディレイ回路１９０１ａ〜１９０１ｃにより、Ｂポートのクロック信号ＣＫＪＢ、チップイネーブル信号ＣＥＪＢ及び入力データＪ［ｎ＋α］が遅延する。これにより、Ｂポートのワード線がハイレベルになる期間は、Ａポートのワード線がハイレベルになる期間よりも遅れる。両者のハイレベル期間は、相互にずれて重ならない。図１８（Ｃ）の場合でも、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止でき、メモリセルの記憶データ破壊を防止することができる。
【０１１０】
（第１０の実施形態）
図３５は、第１０の実施形態によるメモリ装置の構成例を示す図であり、第５の実施形態のメモリ装置のより具体的な例を示す。以下、本実施形態が第５の実施形態と異なる点を説明する。図３５のメモリ装置は、図２９のメモリ装置に対して、ディレイ回路２１０１ａ〜２１０１ｃを追加したものである。ディレイ回路２１０１ａ〜２１０１ｃは、図２１のディレイ回路２１０１に対応する。ディレイ回路２１０１ａは、Ａポートのクロック信号ＣＫＩＡを遅延してＢポートのクロック信号ＣＫＪＢを出力する。ディレイ回路２１０１ｂは、一致信号ｃｏｍｐを遅延してＢポートのチップイネーブル信号ＣＥＪＢを出力する。ディレイ回路２１０１ｃは、ＥＣＣ復号化回路１０３が出力するデータＡ’［ｎ＋α］を遅延してＢポートの入力データＪ［ｎ＋α］を出力する。
【０１１１】
図３６及び図３７は、図３５のメモリ装置の制御方法を示すタイミングチャートである。図３６は、図３０に対応し、訂正データを書き込む場合のタイミングチャートである。以下、図３６が図３０と異なる点を説明する。ディレイ回路２１０１ａ〜２１０１ｃにより、Ｂポートのクロック信号ＣＫＪＢ、チップイネーブル信号ＣＥＪＢ及び入力データＪ［ｎ＋α］が遅延する。これにより、Ｂポートのワード線がハイレベルになる期間は、Ａポートのワード線がハイレベルになる期間よりも遅れる。両者のハイレベル期間は、相互にずれて重ならない。図１８（Ｃ）の場合でも、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止でき、メモリセルの記憶データ破壊を防止することができる。
【０１１２】
図３７は、図３１に対応し、アドレス一致のため訂正データの書き込みを抑止する場合のタイミングチャートである。以下、図３７が図３１と異なる点を説明する。ディレイ回路２１０１ａ〜２１０１ｃにより、Ｂポートのクロック信号ＣＫＪＢ、チップイネーブル信号ＣＥＪＢ及び入力データＪ［ｎ＋α］が遅延する。これにより、Ｂポートのワード線がハイレベルになる期間は、Ａポートのワード線がハイレベルになる期間よりも遅れる。両者のハイレベル期間は、相互にずれて重ならない。図１８（Ｃ）の場合でも、トランジスタｔｒ１，ｔｒ２とトランジスタｔｒ３，ｔｒ４の同時オンを防止でき、メモリセルの記憶データ破壊を防止することができる。
【０１１３】
以上のように、第１〜第１０の実施形態では、２ポートＲＡＭのＡポートをユーザが使用して、２ポートＲＡＭのＢポートを訂正データ書き戻し用に使用する。２ポートＲＡＭは、Ａポート及びＢポートの同一アドレスアクセスの制限がある。そのため、同一アドレスの場合には、Ａポートの動作を妨げないように、Ｂポートを制御して、訂正データをＢポートに書き戻す。これにより、メモリ装置の記憶データの信頼性を向上させることができる。
【０１１４】
１ビットエラーが検出された場合、次回のサイクルでＢポートから２ポートＲＡＭに訂正データを書き戻す準備をする。次回のサイクルにおいて、同一アドレスアクセスの場合は、訂正データを書き戻さず、異なるアドレスアクセスの場合のみ、訂正データを書き戻す。
【０１１５】
１ビットエラーが検出された場合、外部からメモリ装置へのアクセスをいったん止めて、外部から訂正データを書き戻す場合には、動作スループットが低下してしまう。第１〜第１０の実施形態によれば、Ｂポート制御回路が訂正データの書き戻しを制御するので、外部からメモリ装置を停止させる必要はなく、動作スループットを向上させることができる。
【０１１６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１７】
１０１  ユーザ回路
１０２  ＥＣＣ符号化回路
１０３  ＥＣＣ復号化回路
１０４  ２ポートＲＡＭ
１０５  アドレス保持回路
１０６  アドレス比較回路
１０７  Ｂポート制御回路
【図１】
2015122132.tif 000003
【図２】
2015122132.tif 000004
【図３】
2015122132.tif 000005
【図４】
2015122132.tif 000006
【図５】
2015122132.tif 000007
【図６】
2015122132.tif 000008
【図７】
2015122132.tif 000009
【図８】
2015122132.tif 000010
【図９】
2015122132.tif 000011
【図１０】
2015122132.tif 000012
【図１１】
2015122132.tif 000013
【図１２】
2015122132.tif 000014
【図１３】
2015122132.tif 000015
【図１４】
2015122132.tif 000016
【図１５】
2015122132.tif 000017
【図１６】
2015122132.tif 000018
【図１７】
2015122132.tif 000019
【図１８】
2015122132.tif 000020
【図１９】
2015122132.tif 000021
【図２０】
2015122132.tif 000022
【図２１】
2015122132.tif 000023
【図２２】
2015122132.tif 000024
【図２３】
2015122132.tif 000025
【図２４】
2015122132.tif 000026
【図２５】
2015122132.tif 000027
【図２６】
2015122132.tif 000028
【図２７】
2015122132.tif 000029
【図２８】
2015122132.tif 000030
【図２９】
2015122132.tif 000031
【図３０】
2015122132.tif 000032
【図３１】
2015122132.tif 000033
【図３２】
2015122132.tif 000034
【図３３】
2015122132.tif 000035
【図３４】
2015122132.tif 000036
【図３５】
2015122132.tif 000037
【図３６】
2015122132.tif 000038
【図３７】
2015122132.tif 000039