(57)【特許請求の範囲】
【請求項１】
書込み又は読出しの第１制御信号と第１情報データとを含む第１アクセスを中継する第１インターフェースと、書込み又は読出しの第２制御信号と第２情報データとを含む第２アクセスを中継する第２インターフェースと、前記第１アクセス及び前記第２アクセスに応じてクロック信号に同期して前記第１情報データ及び前記第２情報データの書込み又は読出しを行なうＲＡＭと、を含むＲＡＭ記憶装置であって、
前記第１インターフェースからの待機指令信号に応じて、前記第２インターフェースに到来した前記第２アクセスを記憶する記憶動作をなす記憶部と、
前記第１制御信号に応じて、前記クロック信号による１のサイクル内において前記第１インターフェースに到来した前記第１アクセスを前記ＲＡＭに供給し、前記第２制御信号に応じて、前記１のサイクルに続く次のサイクル以降において前記記憶部に記憶されている前記第２アクセスを前記ＲＡＭに供給する選択供給動作をなす選択部と、
を含むことを特徴とするＲＡＭ記憶装置。
【請求項２】
前記第１及び第２制御信号の各々は、選択指令信号と前記待機指令信号とを含み、
前記選択部は前記選択指令信号に応じて前記選択供給動作をなし、前記記憶部は前記待機指令信号に応じて前記記憶動作をなすことを特徴とする請求項１に記載のＲＡＭ記憶装置。
【請求項３】
前記ＲＡＭは、シングルポートＲＡＭであることを特徴とする請求項１又は２に記載のＲＡＭ記憶装置。
【請求項４】
前記第１及び第２情報データの各々は、フラッシュメモリのページアドレスと前記フラッシュメモリの記憶データについてのエラー情報とを含むことを特徴とする請求項１乃至３のいずれか１つに記載のＲＡＭ記憶装置。
【請求項５】
半導体記憶装置を制御するメモリ制御装置に含まれ、
前記第１アクセス及び前記第２アクセスは、前記半導体記憶装置の制御に関連して前記メモリ制御装置から供給されたものであることを特徴とする請求項１乃至４のいずれか１つに記載のＲＡＭ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリなどの半導体記憶装置を制御するメモリ制御装置に含まれ、メモリアクセスに応じて書き込み／読出し自在なＲＡＭ記憶装置に関する。
【背景技術】
【０００２】
従来より、例えばフラッシュメモリなどの半導体記憶装置を制御するフラッシュコントローラなどのメモリ制御装置が知られている（例えば特許文献１）。この種の技術においては、一般的に、フラッシュメモリからの読出しデータに対する信頼性を向上させるために、ＥＣＣ（Error Check and Correct）すなわちエラー検出・訂正回路が用いられる。データエラーが発生している場合には、ＥＣＣ回路によりデータ訂正がなされる。この際、エラー情報がレジスタやＲＡＭに記憶され、データのリライトすなわち再書き込みやエラー発生のログ情報としての利用に供される。また、これとは別に、例えばこのエラー情報をメモリ制御装置が有するＲＡＭに一時的に格納する際にそのＲＡＭへのアクセス等の要求信号が競合する場合があることも従来から知られている。例えば特許文献２には、メモリへのリフレッシュ要求信号とダイレクトメモリアクセス要求信号とが競合することを前提としたダイナミックメモリの競合回路が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−７７０６６号公報
【特許文献２】特開平５−７４１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、エラー情報の書き込み先としてシングルポートのＲＡＭを用いた場合、当該ＲＡＭへのエラー情報の書き込みアクセスとその他のアクセスとが競合したときには、いずれか一方のアクセスしか有効にならないという問題がある。かといって、エラー情報の書き込み先をＣＰＵ内のレジスタとした場合には、書き込み先をＲＡＭとした場合に比較して回路面積が大きくなってしまうという問題がある。例えば、フラッシュメモリの複数ページのアドレスとエラー情報とを合わせて１Ｋバイトのデータを記憶する必要がある場合には、ＲＡＭを用いた場合に比較して約４倍も回路面積が大きくなってしまう。
【０００５】
本発明は上記した如き問題点に鑑みてなされたものであって、ＲＡＭへのアクセス競合が発生した場合であっても、両アクセスを有効なものとして応答可能なＲＡＭ記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によるＲＡＭ記憶装置は、書込み又は読出しの第１制御信号と第１情報データとを含む第１アクセスを中継する第１インターフェースと、書込み又は読出しの第２制御信号と第２情報データとを含む第２アクセスを中継する第２インターフェースと、前記第１アクセス及び前記第２アクセスに応じてクロック信号に同期して前記第１情報データ及び前記第２情報データの書込み又は読出しを行なうＲＡＭと、を含むＲＡＭ記憶装置であって、前記第１インターフェースからの待機指令信号に応じて、前記第２インターフェースに到来した前記第２アクセスを記憶する記憶動作をなす記憶部と、前記第１制御信号に応じて、前記クロック信号による１のサイクル内において前記第１インターフェースに到来した前記第１アクセスを前記ＲＡＭに供給し、前記第２制御信号に応じて、前記１のサイクルに続く次のサイクル以降において前記記憶部に記憶されている前記第２アクセスを前記ＲＡＭに供給する選択供給動作をなす選択部と、を含むことを特徴とする。                                                                            
【発明の効果】
【０００７】
本発明によるＲＡＭ記憶装置によれば、ＲＡＭへのアクセス競合が発生した場合であっても、両アクセスを有効なものとして応答可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例であるＲＡＭ記憶装置（ＲＡＭブロック）を含むフラッシュコントローラ、ホスト装置、及びフラッシュメモリの構成を示すブロック図である。
【図２】図１のＲＡＭブロックの構成例を示すブロック図である。
【図３】図１のシングルポートＲＡＭのライト／リード時におけるアクセス波形を示すタイムチャートである。
【図４】図１のシングルポートＲＡＭ内に記憶されるデータの一例を示す図である。
【図５】リード要求応答時における図１のフラッシュコントローラの動作を示すタイムチャートである。
【図６】シングルポートＲＡＭへのライトアクセス競合発生時におけるフラッシュＩＦ及びＣＰＵからのアクセス波形と、シングルポートＲＡＭの端子の入出力波形とを示すタイムチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
【００１０】
図１には、本発明の実施例であるＲＡＭ記憶装置１０（以下、ＲＡＭブロック１０と称する）を含むメモリ制御装置１００（以下、フラッシュコントローラ１００と称する）の構成が、ホスト装置２００及び半導体記憶装置３００（以下、フラッシュメモリ３００と称する）と共に示されている。
【００１１】
フラッシュコントローラ１００は、ホスト装置２００からの要求に応じて、フラッシュメモリ３００へのデータの書き込み（以下、ライトと称する）やフラッシュメモリ３００からのデータの読み出し（以下、リードと称する）を行なう。
【００１２】
フラッシュコントローラ１００について以下に説明する。
【００１３】
ＲＡＭブロック１０は、フラッシュメモリ３００へのライト動作時には、ライトデータのバッファとして用いられる。また、ＲＡＭブロック１０は、フラッシュメモリ３００からのリード動作時には、フラッシュメモリ３００の複数ページを連続してリードするために使用される複数のページアドレスを記憶する領域として用いられる。また、ＲＡＭブロック１０は、シングルポートＲＡＭ１１を有する。シングルポートＲＡＭ１１は、ライト又はリードのアクセスに応じて、クロック信号に同期してデータの書き込み又は読出しを行なうことができる。当該アクセスには、書き込み又は読出しの制御信号と情報データとが含まれる。シングルポートＲＡＭ１１の動作については後述する（図２）。
【００１４】
ホストインターフェース２０は、ホスト装置２００との間のインターフェースである。例えば、ホストインターフェース２０は、ホスト装置２００からライト要求やリード要求を受信して、これらの要求をＣＰＵ４０に与える。また、ホストインターフェース２０は、フラッシュメモリ３００から読み出されたリードデータをホスト装置２００に送信する。また、ホストインターフェース２０は、ホスト装置２００から受信したライトデータをフラッシュインターフェース３０に受け渡す。
【００１５】
フラッシュインターフェース３０は、フラッシュメモリ３００との間のインターフェースである。例えば、フラッシュインターフェース３０は、フラッシュメモリ３００へのライトデータの書き込み、及びフラッシュメモリ３００からのリードデータの読み出しを行なう。また、フラッシュインターフェース３０は、フラッシュメモリ３００から読み出したリードデータをＥＣＣ５０に与え、ＥＣＣ５０によるエラー検出・訂正後のリードデータをホストインターフェース２０に受け渡す。
【００１６】
ＣＰＵ４０は、ホストインターフェース２０からライト要求やリード要求を受け取り、これらの要求に応じてフラッシュインターフェース３０及びＲＡＭブロック１０を制御する。例えば、ＣＰＵ４０は、リード要求に応じて、ＲＡＭブロック１０内のシングルポートＲＡＭ１１の各番地に対してページアドレス設定を行なう。また、ＣＰＵ４０は、フラッシュインターフェース３０に対して、読み出しページ数を伴う連続リード指令を発することもできる。また、ＣＰＵ４０は、シングルポートＲＡＭ１１内に記憶されているエラー情報の検出を行なうこともできる。これらの動作詳細については後述する（図５）。
【００１７】
ＥＣＣ５０は、フラッシュインターフェース３０から与えられたデータに対してエラー検出・訂正処理を施す。ＥＣＣ５０は、フラッシュインターフェース３０から与えられたデータがライトデータである場合には当該データに対して誤り検出のためのパリティビットを付加し、与えられたデータがリードデータである場合には当該データに対してエラー検出及びエラー訂正処理を施す。また、ＥＣＣ５０は、１ページ分のリードデータについてのエラー検出・訂正処理を完了したときに、ＲＡＭブロック１０にアクセスを行ない、そのエラー検出の結果を示すエラー情報をシングルポートＲＡＭ１１の該当番地に記憶させる（ライトする）。
【００１８】
内部バス６０は、ＲＡＭブロック１０、ホストインターフェース２０、フラッシュインターフェース３０、及びＣＰＵ４０を相互に通信接続する通信路である。
【００１９】
図２には、ＲＡＭブロック１０の構成例が示されている。ＲＡＭブロック１０は、フラッシュインターフェース３０からのＲＡＭ制御信号と、ＣＰＵ４０からのＲＡＭ制御信号とを受けることができる。なお、図２においては、「インターフェース」を「ＩＦ」と標記している。
【００２０】
ＣＰＵ側ＩＦ１２は、ＣＰＵ４０からの書き込み又は読出しのアクセスを受け入れ自在なインターフェースである。ＣＰＵ側ＩＦ１２は、ＣＰＵ４０からのアクセスのデータ形式をシングルポートＲＡＭ１１に適合したデータ形式に変更する機能も有する。
【００２１】
ＲＡＭ制御信号記憶部１３は、フラッシュインターフェース３０から供給された記憶回路制御信号ＮＦＩ＿ＡＣＣに応じて、ＣＰＵ側ＩＦ１２により受信されたＲＡＭ制御信号を一時的に記憶する。
【００２２】
マルチプレクサ１４は、フラッシュインターフェース３０からのＲＡＭ制御信号と、ＲＡＭ制御信号記憶部１３に記憶されているＲＡＭ制御信号とのうちのいずれか一方を選択して、当該選択したＲＡＭ制御信号をシングルポートＲＡＭ１１に供給する。マルチプレクサ１４は、フラッシュインターフェース３０から供給されるＮＦＩ＿ＣＥＮ信号に応じてこれらのＲＡＭ制御信号の一方を選択する。以下、マルチプレクサ１４を選択部とも称する。また、ＮＦＩ＿ＣＥＮ信号を選択指令信号とも称する。
【００２３】
フラッシュ側ＩＦ１５は、フラッシュインターフェース３０からの書き込み又は読出しのアクセスを受け入れ自在なインターフェースである。
【００２４】
ＲＡＭ制御信号は、ＣＥＮ、ＯＥＮ、ＷＥＮ、ＷＥＭＮ、Ａ及びＤであり、図２においては、フラッシュインターフェース３０からのものについては「ＮＦＩ＿」が、ＣＰＵ４０からのものについては「ＣＰＵ＿」がそれぞれ信号名の先頭に付加されている。
【００２５】
シングルポートＲＡＭ１１は、クロック信号ＣＬＫに同期して動作する同期ＲＡＭである。同期には、例えば、クロック信号ＣＬＫの立ち上りエッジが用いられる。シングルポートＲＡＭ１１は、マルチプレクサ１４から供給されたＲＡＭ制御信号に応じて、該当アドレスへのデータのライト、及び該当アドレスからのデータのリードを行なう。
【００２６】
図３には、シングルポートＲＡＭ１１のライト／リード時におけるアクセス波形が示されている。
【００２７】
ライトアクセスは、チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮがアサートされる（すなわち有効になる）ことで有効になる。このアサート期間内においてアドレス信号Ａにより指定された領域ＡＤＤ０にデータ信号Ｄにより示されるデータＤＡＴＡ０がクロック信号ＣＬＫに同期して書き込まれる。
【００２８】
ライトイネーブルマスク信号ＷＥＭＮは、書き込みデータをバイト単位でマスクするための信号である。ライトイネーブルマスク信号ＷＥＭＮを用いることにより、ある番地に既に書き込まれているページアドレスのデータを残したまま、エラー情報を当該番地に書き込むことができる。なお、このように、エラー情報をページアドレスと同一の番地に対応付けて書き込むことにより、後に、例えばＣＰＵ４０がエラー情報を高速にサーチすることができるという利点がある。
【００２９】
リードアクセスは、チップイネーブル信号ＣＥＮ及びアウトプットイネーブル信号ＯＥＮがアサートされることで有効になる。このアサート期間内においてアドレス信号Ａにより指定された領域ＡＤＤ１に記憶されているデータＤＡＴＡ１を示す出力信号Ｑがクロック信号ＣＬＫに同期して出力される。データＤＡＴＡ１は、領域ＡＤＤ１が指定されたサイクルの次のサイクルにおいて出力される。
【００３０】
シングルポートＲＡＭ１１は、出力信号Ｑを出力信号ＮＦＩ＿Ｑとしてフラッシュインターフェース３０へ供給する。また、シングルポートＲＡＭ１１は、ＣＰＵ側ＩＦ１２を介して出力信号ＱをＣＰＵ４０へ供給する。
【００３１】
図４には、フラッシュメモリ３００から複数ページに亘って連続的にデータをリードする際にシングルポートＲＡＭ１１内に記憶されるデータが示されている。ｎ（ｎは２以上の整数）ページに亘って連続的にデータを読みだす際には、ＣＰＵ４０からの指令によって、ページアドレス「＃１」、「＃２」、「＃３」、・・・、「＃ｎ」が番地「０」から順に記憶される。また、ページアドレスが記憶される番地には、ＥＣＣ５０からの指令によって、エラー情報も記憶される。エラー情報の記憶動作については後述する（図５）。
【００３２】
図５を参照しつつ、以下に、ホスト装置２００からのリード要求応答時におけるフラッシュコントローラ１００の動作について説明する。
【００３３】
先ず、例えばホスト装置２００の起動完了時などの任意の時点において、ホスト装置２００がフラッシュコントローラ１００に対して１回目のリード要求を発する（ステップＳ１）。リード要求は、複数のページを連続的に読み出すための単一コマンドとして発せられる。ホストインターフェース２０は、リード要求を受信し、これをＣＰＵ４０に与える。
【００３４】
ＣＰＵ４０は、当該リード要求に応じてページアドレス設定を行なう（ステップＳ２）。詳細には、ＣＰＵ４０は、当該リード要求が示すページ数に相当するページアドレスを、ＲＡＭブロック１０内のシングルポートＲＡＭ１１の番地「０」から順に記憶させる。この際、ＣＰＵ４０は、何ページ分リードするのかを確認する処理、及び論理ページと物理ページの変換処理を実施することができる。
【００３５】
次に、ＣＰＵ４０は、フラッシュインターフェース３０に対して、読み出しページ数を伴う連続リード指令を発する（ステップＳ３）。
【００３６】
フラッシュインターフェース３０は、連続リード指令に応じて、先ずは、シングルポートＲＡＭ１１の番地「０」に記憶されているページアドレスを読出す。そして、フラッシュインターフェース３０は、当該ページアドレスを伴うリード命令をフラッシュメモリ３００に対して発して、当該ページアドレスに対応するデータをフラッシュメモリ３００からリードする（ステップＳ４）。フラッシュインターフェース３０は、リードデータをＥＣＣ５０に転送する。
【００３７】
ＥＣＣ５０は、当該リードデータに対してエラー検出処理を施す。ＥＣＣ５０は、エラーを検出した場合にはリードデータに対してエラー訂正処理を施し、エラーを検出しなかった場合にはエラー訂正処理を行なわずに、リードデータをフラッシュインターフェース３０に転送する。ＥＣＣ５０は、１ページ分のエラー検出・訂正処理を完了した時点において、そのエラー検出の結果を示すエラー情報をシングルポートＲＡＭ１１の番地「０」に記憶させる（ステップＳ５）。
【００３８】
エラー情報は、例えば、エラーが検出された場合には論理値「１」、エラーが検出されなかった場合には論理値「０」となる。なお、シングルポートＲＡＭ１１へのライトイネーブルマスク信号ＷＥＭＮを用いることにより、番地「０」に既に書き込まれているページアドレスのデータを残したまま、エラー情報を同じ番地「０」に書き込むことができる。かかる処理により、読出しページアドレスとエラー情報とが対応付けられる。
【００３９】
フラッシュインターフェース３０は、ＥＣＣ５０によるエラー検出訂正処理後、リードデータをホストインターフェース２０に転送する。ホストインターフェース２０は、当該リードデータをホスト装置２００に送信する（ステップＳ６）。
【００４０】
フラッシュインターフェース３０、ＥＣＣ５０、及びホストインターフェース２０は、ステップＳ４からＳ６までの処理を読出し対象ページ分だけ反復して実行する。この際、フラッシュインターフェース３０は、現在読み出し番地の番号を１つインクリメントして得られた番地に記憶されているページアドレスを次に読み出す。
【００４１】
例えば、現在読み出し番地が「０」である場合、フラッシュインターフェース３０が次に読み出し対象とするページアドレスは、シングルポートＲＡＭ１１の番地「０」を１つインクリメントして得られた番地「１」に記憶されているページアドレスとなる。フラッシュインターフェース３０は、リード要求が示す全ページ数のデータをリードし終えた場合には、ＣＰＵ４０に対してその旨を通知する。
【００４２】
ホスト装置２００は、ステップＳ１において発したリード要求が示す全ページのリードデータを取得した後、フラッシュコントローラ１００に対して２回目のリード要求を発する（ステップＳ７）。
【００４３】
ＣＰＵ４０は、当該要求に応じてシングルポートＲＡＭ１１にアクセスし、エラー情報が対応付けられているページアドレスを取得する（ステップＳ８）。
【００４４】
ＣＰＵ４０は、ページアドレスの取得完了後、上記ステップＳ２と同様にページアドレス設定を行なう（ステップＳ９）。ここで、ＣＰＵ４０は、ホスト装置２００からのリード要求受信後所定時間内にフラッシュインターフェース３０に対して連続リード指令を発することを要する。故に、ＣＰＵ４０は、最初の数ページ分のページアドレスを設定した後、連続リード指令し（ステップＳ１０）、その後、残りのページ分のページアドレスを設定する。
【００４５】
フラッシュインターフェース３０は、上記したのと同様に、連続リード指令に応じてフラッシュメモリ３００からデータをリードする（ステップＳ１１）。ＥＣＣ５０は、上記したのと同様に、リードデータに対してエラー検出処理を施してそのエラー検出の結果を示すエラー情報をシングルポートＲＡＭ１１の該当番地に記憶させる（ステップＳ１２）。
【００４６】
かかる動作により、ＣＰＵ４０によるページアドレス設定のためのライトアクセス（ステップＳ９）と、ＥＣＣ５０によるエラー情報記憶のためのライトアクセス（ステップＳ１２）とが、シングルポートＲＡＭ１１において競合する場合が生じる（図５の破線楕円で囲んだ部分）。
【００４７】
図６及び図２を参照しつつ、以下に、シングルポートＲＡＭへのライトアクセス競合発生時におけるＲＡＭブロック１０の動作について説明する。
【００４８】
フラッシュインターフェース３０からのＲＡＭ制御信号は、マルチプレクサ１４の一方の入力に供給される。当該ＲＡＭ制御信号は、例えばＥＣＣ５０により生成され、フラッシュインターフェース３０を介してＲＡＭブロック１０に与えられるものである。クロック信号ＣＬＫに基づく１のサイクルにおいてフラッシュインターフェース３０からのＮＦＩ＿ＣＥＮ信号がアサートされたときに（”Ｌ”レベルになったときに）、マルチプレクサ１４は、フラッシュインターフェース３０からのＲＡＭ制御信号を選択し、これをシングルポートＲＡＭ１１に供給する。なお、当該１のサイクル時点においては、ＲＡＭ制御信号記憶部１３からのＲＡＭ制御信号は、マルチプレクサ１４からは出力されない。すなわち、マルチプレクサ１４は、当該１のサイクル時点においては、フラッシュインターフェース３０からのアクセスの内容のみをシングルポートＲＡＭ１１に供給する。
【００４９】
ＣＰＵ４０からのライトアクセス信号は、ＣＰＵ側ＩＦ１２によって取り込まれる。ＲＡＭ制御信号記憶部１３は、フラッシュインターフェース３０から供給される待機指令信号ＮＦＩ＿ＡＣＣがアサートされた場合に（”Ｈ”レベルになったときに）、ＣＰＵ４０からのライトアクセス信号をＲＡＭ制御信号として保持する。ＲＡＭ制御信号記憶部１３は、ＲＡＭ制御信号を少なくとも当該１のサイクルに続く次のサイクルまで記憶する。例えば、ＲＡＭ制御信号記憶部１３は、フリップフロップ（図示せず）を含み、ＲＡＭ制御信号を当該フリップフロップに記憶する。ＲＡＭ制御信号記憶部１３は、当該記憶したＲＡＭ制御信号をマルチプレクサ１４の他方の入力に供給する。待機指令信号ＮＦＩ＿ＡＣＣは、フラッシュインターフェース３０がライトアクセスするサイクルよりも前のサイクルにおいて入力されるパルス信号である。すなわち、待機指令信号ＮＦＩ＿ＡＣＣは、ＮＦＩ＿ＣＥＮ信号のアサートに先立ってフラッシュインターフェース３０から発せられる。
【００５０】
シングルポートＲＡＭ１１は、マルチプレクサ１４から供給された、フラッシュインターフェース３０からのＲＡＭ制御信号に応じた処理を行なう。シングルポートＲＡＭ１１は、当該１のサイクル時点においては、アドレス信号Ａにより示される領域ＡＤＤ０に、データ信号Ｄにより示されるデータＤＡＴＡ０を記憶する。
【００５１】
続いて、当該１のサイクルに続く次のサイクル以降においてＮＦＩ＿ＣＥＮ信号がネゲートされたときに（すなわち無効になったときに）、マルチプレクサ１４は、ＲＡＭ制御信号記憶部１３からのＲＡＭ制御信号を選択し、これをシングルポートＲＡＭ１１に供給する。なお、ＮＦＩ＿ＣＥＮ信号が”Ｈ”レベルになったときがネゲート状態である。マルチプレクサ１４は、当該次のサイクル時点においては、フラッシュインターフェース３０からのアクセスの内容のみをシングルポートＲＡＭ１１に供給する。
【００５２】
この場合にも、シングルポートＲＡＭ１１は、マルチプレクサ１４から供給された、ＣＰＵ４０からのＲＡＭ制御信号に応じた処理を行なう。シングルポートＲＡＭ１１は、当該次のサイクル時点においては、アドレス信号Ａにより示される領域ＡＤＤ１に、データ信号Ｄにより示されるデータＤＡＴＡ１を記憶する。ＲＡＭ制御信号記憶部１３は、当該次のサイクル以降において、当該記憶していたＲＡＭ制御信号の内容を消去する。
【００５３】
かかる動作により、フラッシュインターフェース３０からのアクセスが優先的される。つまり、シングルポートＲＡＭ１１のアドレス端子Ａには、アドレスＡＤＤ０、アドレスＡＤＤ１の順に到来する。また、シングルポートＲＡＭ１１のデータ端子Ｄには、データＤＡＴＡ０、データＤＡＴＡ１の順に到来する。このように、シングルポートＲＡＭ１１に対してフラッシュインターフェース３０及びＣＰＵ４０の各々からライトアクセスがなされてライトアクセスの競合が生じた場合においても、ＲＡＭブロック１０はこれら両アクセスに応じた処理を適切に行なうことができる。
【００５４】
上記したように、本実施例によるＲＡＭブロック１０においては、フラッシュインターフェース３０から待機指令信号ＮＦＩ＿ＡＣＣを受信した場合にＣＰＵ４０からのライトアクセス信号を一時的に記憶する。そして、当該記憶しているライトアクセス信号と、フラッシュインターフェース３０からのライトアクセス信号とのうちの後者のライトアクセス信号を、外部からの選択指令信号（ＮＦＩ＿ＣＥＮ信号）のアサートに応じて選択する。当該選択したライトアクセス信号を、クロックサイクルの１のサイクルにおいてシングルポートＲＡＭ１１に供給し、更に当該１のサイクルに続く次のサイクル以降において当該記憶しているライトアクセス信号（すなわちＣＰＵ４０からのライトアクセス信号）をシングルポートＲＡＭ１１に供給する。
【００５５】
かかる動作により、本実施例によるＲＡＭブロック１０によれば、シングルポートＲＡＭ１１へのアクセス競合が発生した場合であっても、両アクセスを有効なものとして応答可能である。
【００５６】
上記の実施例は、データＤＡＴＡ１がデータＤＡＴＡ０の直後のサイクルにおいてマルチプレクサ１４から出力される場合の例であるが、これに限られない。例えば、データＤＡＴＡ１をデータＤＡＴＡ０の複数サイクル後において出力することも考えられる。アドレスＡＤＤ０及びＡＤＤ１についても同様である。
【００５７】
上記の実施例はライトアクセス競合時の例であるが、リードアクセス競合時も同様の動作により、同様の効果を奏することができる。
【００５８】
また、上記の実施例はアクセス対象をシングルポートＲＡＭとした場合の例であるが、デュアルポートＲＡＭとした場合にも同様の効果を奏することができる。シングルポートＲＡＭは、デュアルポートＲＡＭに比較して１／２の面積で済むので、シングルポートＲＡＭの方が実装面で有利である。
【符号の説明】
【００５９】
１０  ＲＡＭ記憶装置（ＲＡＭブロック）
１１  シングルポートＲＡＭ
１２  ＣＰＵ側ＩＦ
１３  ＲＡＭ制御信号記憶部
１４  マルチプレクサ（選択部）
１５  フラッシュ側ＩＦ
２０  ホストインターフェース
３０  フラッシュインターフェース
４０  ＣＰＵ
５０  ＥＣＣ
６０  内部バス
１００  メモリ制御装置（フラッシュコントローラ）
２００  ホスト装置
３００  半導体記憶装置（フラッシュメモリ）
【図１】
0005801158.tif 000002
【図２】
0005801158.tif 000003
【図３】
0005801158.tif 000004
【図４】
0005801158.tif 000005
【図５】
0005801158.tif 000006
【図６】
0005801158.tif 000007