(57)【要約】【課題】メモリに接続されている関連性のない複数のアクセス要因が交互にあった場合でも連続性を失うことがなくデータを読み出すことができる回路を提供する。【解決手段】複数の要因ごとにメモリのデータを記憶するデータバッファを設け、要求されたデータがデータバッファにある場合は、データバッファに記憶されているデータを出力する。【選択図】図１
2009266173.tif 000002
【特許請求の範囲】
【請求項１】
複数のアクセス要因の各アクセス要因に対応するデータを半導体記憶装置から読み出す制御回路であって、
前記半導体記憶装置との間でデータの受け渡しを行うメモリ制御手段と、
複数のアクセス要因毎に前記半導体記憶装置とのデータの受け渡しを制御するデータ制御手段と、
前記メモリ制御手段が前記半導体記憶装置から読み出したデータを前記アクセス要因毎に記憶するデータ記憶手段と、
を備え、
前記データ制御手段は、
前記アクセス要因に対応するデータが前記データ記憶手段に記憶されているか否かを判断し、
前記データ記憶手段に当該対応するデータが記憶されている場合には、
前記データ記憶手段に記憶された当該対応するデータを前記アクセス要因に対し出力し、
前記データ記憶手段に当該対応するデータが記憶されていない場合には、
前記メモリ制御手段によって当該対応するデータを読み出し、
当該対応するデータを前記データ記憶手段に記憶させるとともに前記アクセス要因に対し出力する、
ことを特徴とする制御回路。
【請求項２】
前記データ制御手段は、
今回のアクセス要求を受けると、前記メモリ制御手段が前回のアクセス要因による前記半導体記憶装置からの読み出しを行っており、かつ、当該前回のアクセス要因が今回のアクセス要因と同じであり、かつ、今回要求されたデータが前回のアクセス要因による読み出し対象に含まれているか否かを判断し、
これら全ての条件が満たされている場合は、
前記メモリ制御手段に今回の要求に基づく前記半導体記憶装置からのデータの読み出しを行わせることなく、
前記今回要求されたデータが、前回のアクセス要因によって前記半導体記憶装置から読み出されて前記データ記憶手段に記憶されると、当該データを出力する、
ことを特徴とする請求項１に記載の制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置からデータを読み出す制御回路に関する。
【背景技術】
【０００２】
従来、半導体記憶装置（以下メモリという）のデータを読み出す方法は、非同期で指定したアドレスのデータを読み出すランダムアクセスや、非同期に連続したアドレスを指定してデータを読み出すページモードアクセスや１回のアドレス指定により連続したデータを同期して読み出すバーストアクセスがある。いずれの方法も最初にアドレスを指定してから最初のデータが読み出されるまでに初期の遅延時間が発生する。
【０００３】
バーストアクセスは、１回のアドレス指定でクロックに同期して複数の連続したデータを読み出す方法であり、最初のアクセスでは初期の遅延時間が発生するが、その後は連続してデータが読み出されるため、メモリからのデータ読み出し速度を向上させることが可能である。特許文献１では、メモリの中に複数のレジスタを設け、メモリに接続されている複数のプロセッサからのバーストアクセスで読み出されたデータを一旦レジスタに保持し、メモリを読み出す際に対応するレジスタを指定することでメモリの速度を落とすことなく複数のバーストアクセスを実現する方法が開示されている。
【特許文献１】特表２００５−５０３６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、バーストアクセスは、最初に指定するアドレスに対して連続したアドレスのデータが読み出されるため、指定するアドレスが連続している必要があり、メモリにアクセスする複数の要因が交互に行われることにより、アドレスの連続性が保てない場合は、再度アドレスを指定する必要が生じ、メモリを高速に読み出せるバーストアクセスの特性を生かすことができないという問題がある。
【０００５】
また、特許文献１では、複数のプロセッサからのメモリアクセスが交互にあった場合でも、メモリの速度を落とすことなく複数のアクセスに対応可能であるが、対応するレジスタを指定する方法が新たに追加されるため、レジスタを内蔵したメモリを使用してシステムを構築することが前提となり、容易にシステム変更に対応することができないという問題がある。
【０００６】
本発明は、上記の課題認識に基づいてなされたものであり、連続して読み出したデータを保持して、メモリに接続されている関連性のない複数のアクセス要因が交互にあった場合でも連続性を失うことがなくデータを読み出すことができ、また、メモリの指定方法を特別に追加することなくシステム変更に容易に対応することができる回路を提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明の半導体記憶装置の制御回路は、半導体記憶装置へのアクセスを制御する制御回路であって、前記半導体記憶装置との間でデータの受け渡しを行うメモリ制御手段と、複数のアクセス要因毎に前記半導体記憶装置とのデータの受け渡しを制御するデータ制御手段と、前記メモリ制御手段が前記半導体記憶装置から読み出したデータを前記アクセス要因毎に記憶する複数のデータ記憶手段と、を備え、前記データ制御手段は、いずれかのアクセス要因によって要求されたデータが前記データ記憶手段に記憶されているか否かを判断し、前記データ記憶手段に当該要求されたデータがある場合は、前記データ記憶手段に記憶された当該データを出力し、前記データ記憶手段に当該要求されたデータがない場合は、前記メモリ制御手段に前記半導体記憶装置から当該データの読み出しを行わせ、読み出したデータを当該要求に対応する前記データ記憶手段に記憶させ、当該データ記憶手段に前記要求にかかるデータが記憶されたら、当該データを出力する、ことを特徴とする。
【０００８】
また、本発明のデータ制御手段は、今回のアクセス要求を受けると、前記メモリ制御手段が前回のアクセス要因による前記半導体記憶装置からの読み出しを行っており、かつ、当該前回のアクセス要因が今回のアクセス要因と同じであり、かつ、今回要求されたデータが前回のアクセス要因による読み出し対象に含まれているか否かを判断し、これら全ての条件が満たされている場合は、前記メモリ制御手段に今回の要求に基づく前記半導体記憶装置からのデータの読み出しを行わせることなく、前記今回要求されたデータが、前回のアクセス要因によって前記半導体記憶装置から読み出されて前記データ記憶手段に記憶されると、当該データを出力する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、制御回路が半導体記憶装置から複数のデータを読み出して記憶する機能を設け、連続性のあるアクセス要因に対しては制御回路が記憶しているデータを外部に出力するようにしたので、メモリに接続された関連性のない複数のアクセス要因から要求があった場合でもメモリの制御の連続性を失うことがなく、高速にデータを読み出せるという効果が得られる。また、汎用のメモリを使うことができるため、システム変更に容易に対応することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態によるバーストリードデータバッファリング回路の構成を示したブロック図である。図１において、本実施形態によるバーストリードデータバッファリング回路は、データ制御部１０、第１のデータバッファ２０、第２のデータバッファ３０、メモリ制御部４０、から構成される。本実施形態によるバーストリードデータバッファリング回路は、メモリアクセス要因１からアドレス１、リクエスト１信号、データが入力され、メモリアクセス要因１にアクノリッジ１信号、データ、ストローブ１信号を出力する。メモリアクセス要因２からアドレス２、リクエスト２信号、データが入力され、メモリアクセス要因２にアクノリッジ２信号、データ、ストローブ２信号を出力する。また、外部のメモリにメモリアドレス、メモリ制御信号、メモリデータを出力し、メモリからメモリデータが入力される。
【００１１】
本実施形態におけるバーストリードデータバッファリング回路は、ＬＳＩ内部に備わるものである。また、本実施形態におけるバーストリードデータバッファリング回路の動作は、ＬＳＩの外部に設けられたメモリに対してデータの読み出しまたは、書き込みの処理を行う同一ＬＳＩ内の複数のブロック（以下アクセス要因という）からメモリをアクセスするための要求があると、当該アクセス要求に対するデータがデータバッファにあるか否かの判断を行い、本実施形態におけるバーストリードデータバッファリング回路内のデータバッファにデータがある場合は、すぐにデータバッファから当該データをアクセス要因に出力し、データバッファにデータがない場合は、外部のメモリに対してアクセス要因からのアクセス要求をするとともに、次の当該アクセス要因からのアクセス要求に備えてバースト境界までのデータをデータバッファに準備する。
【００１２】
本実施形態におけるバーストリードデータバッファリング回路は、対応するアクセス要因が２個（例えば動画処理と音声処理）あり、それぞれ、アクセス要因１に対応するメモリアクセス要求は、アドレス１と、リクエスト１信号と、データと、が入力され、本実施形態におけるバーストリードデータバッファリング回路からは、アクノリッジ１信号と、データと、ストローブ１信号と、を出力し、アクセス要因２に対応するメモリアクセス要求は、アドレス２と、リクエスト２信号と、データと、が入力され、本実施形態におけるバーストリードデータバッファリング回路からは、アクノリッジ２信号と、データと、ストローブ２信号と、を出力する。
【００１３】
また、本実施形態におけるバーストリードデータバッファリング回路が搭載するアクセス要因に対応したデータバッファは２個（例えば動画処理用と音声処理用）あり、それぞれ、アクセス要因１に対応するバッファは、第１のデータバッファ２０、アクセス要因２に対応するバッファは、第２のデータバッファ３０、である。
【００１４】
また、外部のメモリはフラッシュメモリが１個（例えばメモリカード）接続されており、メモリアドレス、メモリ制御信号、メモリデータを出力し、フラッシュメモリからはメモリデータが入力される。
【００１５】
なお、本実施形態においては、データ制御部１０には、アクセス要因１または、アクセス要因２のどちらか一方のみからメモリアクセス要求があり、アクセス要因１および、アクセス要因２の両方から同時にメモリアクセス要求が来ることはないとして説明する。
【００１６】
本実施形態におけるバーストリードデータバッファリング回路の説明に際して、本実施形態におけるバーストリードデータバッファリング回路の動作は、外部フラッシュメモリに対してアクセス要因１からメモリアクセス要求があり、対応するバッファは、第１のデータバッファ２０とし、データバッファの記憶するバースト長は８バーストとして説明を行う。
【００１７】
データ制御部１０は、２個のアクセス要因と搭載されている２個のデータバッファまたは、メモリ制御部４０とのインタフェースを行うブロックである。
データ制御部１０は、アクセス要因１からのアクセス要求の処理に対してリクエスト内容がフラッシュメモリに対する書き込み要求であれば、アクセス要因１およびアクセス要因２からの以前のアクセス要求が残っているか否かを判断し、アクセス要求が残っている場合は、残りのアクセス要求が完了するまで待ち、残りのアクセス要求が完了した後に当該アクセス要求の処理を開始する。
【００１８】
データ制御部１０は、当該アクセス要求の処理として、アクセス要因１に対してアクノリッジ１信号を出力するとともに、全てのデータバッファ（第１のデータバッファ２０および、第２のデータバッファ３０）を初期化し、フラッシュメモリに対して書き込みを行うためにメモリ制御部４０にアドレス１に対応したアドレスと、ライトデータと、メモリライト要求を出力する。
【００１９】
リクエスト内容がフラッシュメモリに対する読み出し要求であれば、第１のデータバッファ２０が保持している格納アドレス１を確認するため、アドレス１と格納アドレス１との比較を行い、指定されたアドレス１に対応するデータが、第１のデータバッファ２０に保持されているかを判断し、要求されたデータが第１のデータバッファ２０保持されている場合は、アクセス要因１に対してアクノリッジ１信号を出力するとともに、データが保持されている第１のデータバッファ２０からデータを読み出してアクセス要因１にデータと、アクセス要因１がデータを取り込むタイミングを表すストローブ１信号を出力する。
【００２０】
要求されたデータが第１のデータバッファ２０に保持されていない場合は、フラッシュメモリの読み出しを行うためにメモリ制御部４０にアドレス１に対応したアドレスと、メモリリード要求を出力するとともに、バッファセレクト１信号をメモリから書き込み可能状態にする。第１のデータバッファ２０にフラッシュメモリからのデータが書き込まれた後、アクセス要因１に対してアクノリッジ１信号を出力するとともに、書き込まれた第１のデータバッファ２０からデータを読み出してアクセス要因１にデータとストローブ１信号を出力する。
【００２１】
なお、要求されたデータが第１のデータバッファ２０に保持されていない場合でも、フラッシュメモリからの読み出されたデータが第１のデータバッファ２０に記憶されると同時にデータ制御部１０を経由してアクセス要因１にデータとストローブ１信号が出力される。
【００２２】
また、要求されたデータが第１のデータバッファ２０に保持されていないが、要求されたデータが前回のフラッシュメモリに対する読み出し要求によって読み出しを行っている予め定められたバースト長（８バースト）内に含まれる場合は、前回のフラッシュメモリに対する読み出し要求が完了していない場合でも、第１のデータバッファ２０にフラッシュメモリからのデータが書き込まれ次第、アクセス要因１に対してアクノリッジ１信号を出力するとともに、書き込まれた第１のデータバッファ２０からデータを読み出してアクセス要因１にデータとストローブ１信号を出力する。
【００２３】
データ制御部１０は、アクセス要因２に対しても同様の動作を行い、それぞれ対応する信号とデータを用いて処理を行う。
データ制御部１０は、アクセス要因１とアクセス要因２からのアクセス要求が重複した場合は、予め定められた優先順位に従って、順次処理を行う。
【００２４】
第１のデータバッファ２０は、当該第１のデータバッファ２０が保持しているデータのアドレスを示すとともに、予め定められたバースト長のフラッシュメモリのデータを保持するブロックである。
第１のデータバッファ２０は、バッファリセット１信号が初期化を行う状態になると保持しているデータを初期化する。
第１のデータバッファ２０は、バッファリード１信号が保持しているデータを読み出す状態になるとバッファアドレスで指定されたデータを出力するとともに、データを取り込むタイミングを表すバッファストローブ１信号を出力する。
【００２５】
第１のデータバッファ２０は、データ制御部１０で作成されたバッファセレクト１信号とメモリ制御部４０で制御されたバッファライト信号によりバッファに書き込む状態になるとバッファアドレスで指定されたアドレスを記憶し、当該アドレスを格納アドレスとして格納アドレス１を更新するとともに、メモリ制御部４０が出力するバッファライト信号に従い、外部のフラッシュメモリから読み出したリードデータを記憶する。
【００２６】
第２のデータバッファ３０は、第１のデータバッファ２０と同じ構成であり、それぞれ対応する信号で、同じ動作をする。
【００２７】
メモリ制御部４０は、外部のフラッシュメモリに対するアクセス信号を生成し、外部のフラッシュメモリとのデータ授受を行うブロックである。
メモリ制御部４０は、データ制御部１０よりのフラッシュメモリへの書き込みを表すメモリライト信号が入力されると、外部のフラッシュメモリに対してデータ制御部１０から入力されたアドレスに対応するメモリアドレスと、データ制御部１０から入力されたライトデータをメモリデータとして出力し、また、フラッシュメモリのメモリ制御信号を出力する。
【００２８】
メモリ制御部４０は、データ制御部１０よりのフラッシュメモリからの読み出しを表すメモリリード信号が入力されると、外部のフラッシュメモリに対してデータ制御部１０から入力されたアドレスに対応するメモリアドレスおよび、フラッシュメモリのメモリ制御信号を出力し、外部のフラッシュメモリから読み出されたデータをメモリデータとして受け入れて第１のデータバッファ２０と第２のデータバッファ３０にリードデータとして出力するとともに、データバッファに書き込むために外部のフラッシュメモリから読み出されたデータの書き込みタイミングを表すバッファライト信号を出力する。
【００２９】
以下、本発明の実施形態のデータバッファについて説明する。図２は、図１に示したバーストリードデータバッファリング回路に搭載されているデータバッファ回路の構成を示したブロック図である。図２において、本実施形態によるデータバッファ回路は、アドレスデコード部１１０、アドレス記憶部１２０、データ記憶部１３０、ステータス記憶部１４０、データセレクト部１５０、から構成される。本実施形態によるデータバッファ回路は、データ制御部１０からバッファリセット信号、バッファアドレス、バッファリード信号が入力され、データ制御部１０にバッファデータ、格納アドレス、バッファストローブが出力される。また、メモリ制御部４０からデータバッファ回路にリードデータが入力される。そして、データ制御部１０から出力されたバッファセレクト信号でセレクトされたデータバッファ回路に対しメモリ制御部４０が出力するバッファライト信号が入力される。
【００３０】
本実施形態におけるデータバッファ回路は、データ記憶部１３０が保持しているデータの格納アドレスを示すとともに、予め定められたバースト長（８バースト）のフラッシュメモリのデータを保持するブロックである。
本実施形態におけるデータバッファ回路は、バッファリセット信号が初期化を行う状態になるとアドレス記憶部１２０が記憶している格納アドレスと、データ記憶部１３０が記憶している８個のデータ記憶領域と、ステータス記憶１４０が記憶しているデータ記憶部１３０に内蔵されている８個のデータの状態を示すステータス状態と、を初期化する。
【００３１】
本実施形態におけるデータバッファ回路は、バッファリード信号が保持しているデータを読み出す状態になるとデータ記憶部１３０の８個のデータ記憶領域の内、バッファアドレスで指定されたアドレスに対応する１個のデータをデータセレクタ部１５０で選択して、データを出力するとともに、データ制御部１０がデータを取り込むタイミングを示すバッファストローブ信号を出力する。
【００３２】
また、本実施形態におけるデータバッファ回路は、バッファライト信号がデータ記憶部１３０にデータを書き込む状態になるとバッファアドレスで指定されたアドレスをアドレス記憶部１２０に記憶し、格納アドレスとして出力するとともに、データ記憶部１３０の８個のデータ記憶領域の内１個をアドレスデコード部１１０で指定し、リードデータを当該指定されたデータ記憶領域に記憶する。
【００３３】
アドレスデコード部１１０は、データ制御部１０から入力されたバッファアドレスに従って、本実施形態におけるデータバッファ回路がデータ記憶部１３０に保持している８個のデータ記憶領域の内、１個を選択する選択ブロックである。
アドレスデコード部１１０は、バッファアドレスに従って、データ記憶部１３０の８個のデータ記憶領域および、データセレクト部１５０に選択信号を出力するとともに、バッファライト信号がデータ記憶部１３０にデータを書き込む状態のときは、データ記憶部１３０の８個のデータ記憶領域の内、選択されたデータ記憶領域に対して書き込み信号を出力する。
【００３４】
アドレス記憶部１２０は、データ記憶部１３０に記憶されたデータのアドレスを記憶するブロックである。
アドレス記憶部１２０には、アクセス要因が指定したアドレス（フラッシュメモリのアドレス）が記憶される。
【００３５】
アドレス記憶部１２０は、バッファライト信号がデータ記憶部１３０にデータを書き込む状態のとき、バッファアドレスを記憶し、当該記憶されたアドレスと後述するステータス記憶部１４０のステータス信号を格納アドレスとして出力する。
【００３６】
データ記憶部１３０は、８個のデータ記憶領域を内蔵するレジスタブロックである。
データ記憶部１３０の８個のデータ記憶領域には、アドレス記憶部１２０に記憶されたアドレスに＋１から＋８を加算したアドレスのデータを記憶する。例えば、データ記憶部１３０のレジスタブロック０（データ０）には、アドレス記憶部１２０に記憶されたアドレスに＋１を加算したアドレスのデータを記憶し、データ記憶部１３０のレジスタブロック７（データ７）には、アドレス記憶部１２０に記憶されたアドレスに＋８を加算したアドレスのデータを記憶する。
【００３７】
データ記憶部１３０は、バッファライト信号がデータ記憶部１３０にデータを書き込む状態のときは、アドレスデコード部１１０から入力された書き込み信号に従って、指定されたデータ記憶領域にリードデータを書き込み、記憶する。記憶されたデータは、常にデータセレクト部１５０に出力する。
【００３８】
ステータス記憶部１４０は、データ記憶部に内蔵されている８個のデータ記憶領域にデータが書き込まれているか否かを示すステータスを保持するブロックである。
ステータス記憶部１４０は、バッファライト信号がデータ記憶部１３０にデータを書き込む状態で、アドレスデコード部１１０から入力された書き込み信号に従って、指定されたデータ記憶領域にリードデータが書き込まれたときにステータス信号（例えば、データ記憶領域にデータが書き込まれていないときは“０”を出力し、データ記憶領域にデータが書き込まれているときは“１”を出力する）を更新し、アドレス記憶部１２０に記憶されたバッファアドレスとともに格納アドレスとして出力する。
【００３９】
データセレクト部１５０は、データ記憶部１３０に内蔵されたデータ記憶領域のデータからアドレスデコード部１１０で指定されたデータ記憶領域のデータを選択するブロックである。
データセレクト部１５０は、バッファリード信号がデータを読み出す状態のときに、ステータス記憶部１４０の出力するステータス信号がデータ記憶領域にデータが書き込まれていることを示しているとき（例えば、ステータス信号が“１”になっているとき）にアドレスデコード部１１０で指定されたデータ記憶領域のデータを出力するとともに、データ制御部１０がデータを取り込むタイミングを示すバッファストローブ信号を出力する。
【００４０】
また、データセレクト部１５０は、バッファリード信号がデータを読み出す状態のときに、アドレスデコード部１１０で指定されているデータ記憶領域のデータ書き込み状況を示すステータス信号が“０”のときは出力を行わず、ステータス信号が“１”になり次第、当該データ記憶領域のデータを出力するとともに、バッファストローブ信号を出力する。
【００４１】
次に、バーストリードデータバッファリング回路の処理手順について説明する。図３は、本実施形態によるバーストリードデータバッファリング回路の処理手順を示したフローチャートである。
【００４２】
まず、データ制御部１０は、ステップＳ１において、アクセス要因１からフラッシュメモリに対するアクセス要求があるかを判断し、アクセス要因１からのフラッシュメモリに対するアクセス要求がある場合は、次のステップＳ２に進む。アクセス要因１からのフラッシュメモリに対するアクセス要求がない場合は、ステップＳ１を繰り返す。
【００４３】
次に、データ制御部１０は、ステップＳ２において、アクセス要因１からのフラッシュメモリに対するアクセス要求がフラッシュメモリに対して書き込みを要求しているか読み出しを要求しているかを判断し、フラッシュメモリに対して書き込みを要求している場合は、ステップＳ２１に進む。フラッシュメモリに対して読み出しを要求している場合は、ステップＳ３に進む。
【００４４】
アクセス要因１がフラッシュメモリに対して書き込みを要求している場合（ステップＳ２の判断結果がＹＥＳの場合）、データ制御部１０は、ステップＳ２１において、アクセス要因１およびアクセス要因２からの以前のアクセス要求が完了しているか否かを判断し、以前のアクセス要求が完了している場合は、ステップＳ２２に進む。以前のアクセス要求が完了していない場合は、以前のアクセス要求が完了するまでステップＳ２１を繰り返す。
【００４５】
次に、データ制御部１０は、ステップＳ２２において、アクセス要因１からのフラッシュメモリに対する書き込み要求を受け付けたことを示すアクノリッジ信号を出力し、ステップＳ２３において、全てのデータバッファ（第１のデータバッファ２０および、第２のデータバッファ３０）を初期化するためのバッファリセット信号（バッファリセット１信号および、バッファリセット２信号）を出力する。
【００４６】
次に、データ制御部１０は、ステップＳ２４において、アクセス要因１からのフラッシュメモリに対する書き込み要求で指定されたフラッシュメモリのアドレスと、ライトデータと、メモリライト信号をメモリ制御部４０に出力し、メモリ制御部４０はフラッシュメモリに対してメモリアドレスと、メモリデータとメモリ制御信号を出力してフラッシュメモリへの書き込みを行い、処理を完了する。
【００４７】
アクセス要因１がフラッシュメモリに対して読み出しを要求している場合（ステップＳ２の判断結果がＮＯの場合）、データ制御部１０は、ステップＳ３において、格納アドレス１を確認し、第１のデータバッファ２０にアクセス要因１が要求しているデータがあるか否かを判断し、第１のデータバッファ２０にアクセス要因１が要求しているデータがある場合は、ステップＳ３１に進む。第１のデータバッファ２０にアクセス要因１が要求しているデータがない場合は、ステップＳ４に進む。
【００４８】
第１のデータバッファ２０にアクセス要因１が要求しているデータがある場合（ステップＳ３の判断結果がＹＥＳの場合）、データ制御部１０は、ステップＳ３１において、アクセス要因１のフラッシュメモリに対する読み出し要求を受け付けたことを示すアクノリッジ信号を出力し、ステップＳ３２において、第１のデータバッファ２０から当該データを取得し、ステップＳ３３において、第１のデータバッファ２０から取得したデータとアクセス要因１がデータを取り込むタイミングを表すストローブ１信号を出力し、処理を完了する。
【００４９】
第１のデータバッファ２０にアクセス要因１が要求しているデータがない場合（ステップＳ３の判断結果がＮＯの場合）、データ制御部１０は、ステップＳ４において、フラッシュメモリに対するバーストリードのアクセス中であるか否かを確認し、フラッシュメモリに対するバーストリードのアクセスがある場合は、ステップＳ４１に進む。フラッシュメモリに対するバーストリードのアクセス中でない場合は、ステップＳ５に進む。
【００５０】
前回のアクセス要因１の要求により、フラッシュメモリに対するバーストリードのアクセス中である場合（ステップＳ４の判断結果がＹＥＳの場合）、データ制御部１０は、ステップＳ４１において、アクセス要因１の要求が同一のデータバッファを示すリクエスト（第１のデータバッファ２０を指定するリクエスト）で、アクセス要因１の指定するアドレスが前回のバースト長（８バースト）内であり第１のデータバッファ２０にデータが保持されているまたは、現在のバーストリードアクセスで第１のデータバッファ２０にデータが保持される予定であるか否かを判断し、第１のデータバッファ２０にデータが保持されているまたは、保持される予定である場合は、ステップ４２に進む。第１のデータバッファ２０にデータが保持されていないまたは、保持される予定でない場合は、ステップＳ５に進む。
【００５１】
前回のアクセス要因１の要求により、フラッシュメモリに対するバーストリードのアクセス中であるが、第１のデータバッファ２０にデータが保持されているまたは、保持される予定である場合（ステップＳ４１の判断結果がＹＥＳの場合）、データ制御部１０は、ステップＳ４２において、アクセス要因１のフラッシュメモリに対する読み出し要求を受け付けたことを示すアクノリッジ信号を出力し、ステップＳ４３において、第１のデータバッファ２０が当該データの取得を完了したか否かを判断し、当該データの取得が完了した場合は、ステップＳ４４において、第１のデータバッファ２０から取得したデータとアクセス要因１がデータを取り込むタイミングを表すストローブ１信号を出力し、処理を完了する。当該データの取得が完了していない場合は、当該データの取得が完了するまでステップＳ４３を繰り返す。
【００５２】
アクセス要因１の要求により、フラッシュメモリに対するバーストリードのアクセス中でない場合（ステップＳ４の判断結果がＮＯの場合）、または、前回のアクセス要因１の要求により、フラッシュメモリに対するバーストリードのアクセス中であるが、第１のデータバッファ２０にデータが保持されていないまたは、保持される予定でない場合（ステップＳ４１の判断結果がＮＯの場合）、データ制御部１０は、ステップＳ５において、前回のアクセス要因１または、アクセス要因２の要求によるフラッシュメモリに対するアクセスが終了しているか否かを判断し、フラッシュメモリに対するアクセスが終了していない場合は、フラッシュメモリに対するアクセスの終了するまでステップＳ５を繰り返す。
【００５３】
フラッシュメモリに対するアクセスが終了した場合は、ステップＳ５１において、アクセス要因１のフラッシュメモリに対する読み出し要求を受け付けたことを示すアクノリッジ信号を出力し、ステップＳ５２において、アクセス要因１からの要求された当該リクエストに対応するデータバッファ（第１のデータバッファ２０）を初期化するためのバッファリセット信号（バッファリセット１信号）を出力する。
【００５４】
次に、データ制御部１０は、ステップＳ５３において、アクセス要因１からのフラッシュメモリに対する読み出し要求で指定されたフラッシュメモリのアドレスとメモリリード信号をメモリ制御部４０に出力し、メモリ制御部４０はフラッシュメモリに対してメモリアドレスと、メモリ制御信号を出力してフラッシュメモリからのバースト読み出しを行う。
【００５５】
次に、データ制御部１０は、ステップＳ５４において、アクセス要因１からのフラッシュメモリに対する読み出し要求で指定されたフラッシュメモリのアドレスに対応するデータの読み出しが完了し、第１のデータバッファ２０に当該データが記憶されたか否かを確認し、第１のデータバッファ２０に当該データが記憶された場合は、ステップ５５において、当該データを第１のデータバッファ２０から取得し、当該データとアクセス要因１がデータを取り込むタイミングを表すストローブ１信号を出力し、処理を完了する。第１のデータバッファ２０に当該データが記憶されていない場合は、当該データが記憶されるまでステップＳ５４を繰り返す。
【００５６】
上記に述べたとおり、本発明を実施するための最良の形態によれば、メモリ（例えばメモリカード）に接続されている複数のアクセス要因が交互にあった場合（例えば、メモリカードに記録された音声付動画を再生するときに動画の画像データと音声データを交互にアクセスする場合）でもメモリ制御の連続性を失うことがなく、高速にデータを読み出すことが可能となる。
【００５７】
また、本発明を実施するための最良の形態によれば、制御回路に備わるデータバッファに要求されたデータがある場合は、メモリからの読み出しが不要となるため、速いタイミングでアクセス要因に対してデータを出力でき、システム全体の処理を高速化することが可能となる。
【００５８】
また、メモリからの読み出しが必要となった場合でも予め設定されたバースト長のデータの読み出しが完了しておらず、メモリの読み出し制御が継続している状態でも要求されたデータを出力することができるため、メモリからの読み出しが関係する遅延時間を最小にすることができる。
【００５９】
なお、本実施例において、アクセス要因にそれぞれ１個データバッファを対応させているが、１つのアクセス要因に対して複数のデータバッファを対応させて、アクセス要因のアドレス毎にデータバッファを切り換えることも可能である。また、同時にメモリへのアクセスが発生しない複数のアクセス要因がある場合は、複数のアクセス要因で１個のデータバッファを共有することも可能である。
【００６０】
なお、本実施形態において、データバッファは、バースト長（８バースト）分のデータをメモリから読み出す構成としたが、メモリに記憶されているデータに境界（バウンダリー）が存在する場合は、バースト長に加えて、または、代わりにバウンダリーを設定してデータバッファがメモリから読み出すデータを設定されたバウンダリーまでとすることも可能である。この場合、アクセス要因によりメモリを読み出すアドレスがバウンダリーの最初のアドレスでなく、途中のアドレスであった場合は、データバッファに内蔵されている全てのデータ記憶領域にデータが記憶されない可能性もあるが、本発明の趣旨を逸脱することはなく、また、ステップＳ４１において、アクセス要因のメモリ読み出しの要求が同一のデータバッファおよび、同一のバウンダリー内を示すリクエストであり、前回の要求されたアドレスよりも後のアドレスを指定していることを判断することで実現が可能となる。
【００６１】
なお、上述した実施形態におけるバーストリードデータバッファリング回路の機能をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６２】
上記に述べたとおり、本発明を実施するための最良の形態によれば、メモリに接続されている関連性のない複数のアクセス要因が交互にあった場合でもメモリ制御の連続性を失うことがなく、高速にデータを読み出すことが可能となる。また、汎用メモリを使用するため、システム変更に容易に対応可能となる。
【００６３】
なお、本実施形態において、バーストリードデータバッファリング回路は、同一ＬＳＩ内のメモリアクセス要因からＬＳＩ外部のメモリに対するアクセスとしたが、具体的な構成はこの実施形態に限定されるものではなく、本発明のバーストリードデータバッファリング回路をメモリアクセス要因と別のＬＳＩで構成することも本発明の趣旨を逸脱しない。また、本発明のバーストリードデータバッファリング回路をメモリと同じＬＳＩ内部で構成することも本発明の趣旨を逸脱しない。
【００６４】
以上、本発明の実施形態について、図１乃至図３を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施形態によるバーストリードデータバッファリング回路の構成を示したブロック図である。
【図２】本発明の実施形態によるデータバッファ回路の構成を示したブロック図である。
【図３】本発明の実施形態によるバーストリードデータバッファリング回路の処理手順を示したフローチャートである。
【符号の説明】
【００６６】
１０  データ制御部  ２０  第１のデータバッファ  ３０第２のデータバッファ  ４０  メモリ制御部  １１０  アドレスデコード部  １２０  アドレス記憶部  １３０  データ記憶部  １４０  ステータス記憶部  １５０  データセレクト部
【図１】
2009266173.tif 000003
【図２】
2009266173.tif 000004
【図３】
2009266173.tif 000005