(57)【要約】  メモリインターフェース（１００）は、バスマスタから受け付けた読み出し要求に対応するデータをメモリ（２０）から読み出してバースト転送した後も、その後続するアドレスにあるデータの読み出しを継続し、蓄積する。バスマスタから所定時間内に新たな読み出し要求を受け付けた場合に、メモリインターフェース（１００）は、前回の読み出し要求と、新たな読み出し要求とのそれぞれで指定されるアドレスの差分が所定の範囲内に収まっているかどうかを判定し、収まっている場合に、継続して読み出したデータの中からデータを転送する。収まっていない場合や、所定時間内に新たな読み出し要求を受け付けたなかった場合にメモリインターフェース（１００）は、継続していた読み出しを中止する。
2010061588.tif 000002
【特許請求の範囲】
【請求項１】
バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すメモリ制御装置であって、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、
前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするメモリ制御装置。
【請求項２】
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合であって、前記蓄積手段がまだ前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとするデータを読み出していないときに、前記蓄積手段による当該データの読み出しを待って、読み出されたデータを前記バスマスタに転送する
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記メモリ制御装置は、更に、
前記判定手段が所定範囲内にないと判定した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記メモリ制御装置は、更に、
前記第１読み出し要求を受けてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項５】
前記メモリ制御装置は、更に、
前記転送手段が前記第１読み出し要求に対応するデータを前記バスマスタに転送し終えてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項６】
バスマスタと、バースト転送機能を有するメモリから前記バスマスタからの読み出し要求に対応するデータを読み出すメモリインターフェースとを備えたデータプロセッサであって、
前記メモリインターフェースは、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、
前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするデータプロセッサ。
【請求項７】
バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すデータ読み出し方法であって、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出しステップと、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積ステップと、
前記読み出しステップにおいて読み出したデータを前記バスマスタに転送する転送ステップと、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定ステップとを含み、
前記転送ステップは、前記判定ステップにおいて前記所定の範囲内にあると判定された場合に、前記蓄積ステップにおいて読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするデータ読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリからのデータの読み出しの高速化に関する。
【背景技術】
【０００２】
メモリからのデータの読み出しに当たり、当該データの読み出しに要する時間が短ければ短いほど良い事は言うまでもない。特に、メモリにプログラムが格納されている場合に当該プログラムを速く読み出すことで、より速く実行に移ることができる。殊に携帯電話機などにおいては、メモリには、読み出せばそのまま直接実行できる実行形式のプログラムやコマンドが格納されているため、メモリからの読み出しの高速性がより有用になってくる。なお、メモリに実行形式のプログラムが記憶され、それを読み出してＲＡＭなどに展開することなく即実行する形式をＸＩＰ（eXecute In Place）という。【０００３】
メモリからのデータの読み出しの高速化に当たっては、バースト転送を行ってデータ転送の効率を高めるということが行なわれている。バースト転送においては、例えばＣＰＵからの読み出し要求に応じて、メモリインターフェース回路がメモリにアクセスし、当該読み出し要求で指定されたアドレスから、複数のアドレスに跨る予め定められた量のデータを一括して取得し、取得したデータをＣＰＵに転送するということが行なわれる。【０００４】
従来においては、メモリからの読み出しに当たっては、メモリインターフェース回路が、通常の読み出し方法と、バースト転送を行なうバーストモードとの制御を行って、メモリアクセスの平均時間の短縮が図られてきた。【０００５】
特許文献１には、バスマスタのアドレッシングモードとメモリのアドレッシングモードとの違いに基づき、バーストアクセスを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−５９５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、一般的に、バーストモードで動作するメモリに読み出し対象の開始アドレスを出力すると、すぐには対応するデータが読み出されず、一定の時間（以下、本明細書においては、チャージ時間と記載する）が経過してからデータの読み出しが開始される。上記特許文献１においても、当該チャージ時間は発生している。【０００８】
このチャージ時間はメモリデバイスに依存する固定の時間である。というのも、メモリの読み出し開始時にメモリを構成する記憶素子への電圧制御が行なわれるが、当該電圧制御にかかる時間が記憶素子に応じて一定であるためである。例えば、ＮＯＲ型フラッシュメモリでは、記憶素子であるトランジスタの電圧制御を行い、トランジスタの導通状態を変化させることでデータの読み出しを可能にするが、この導通状態を変化させるために要する時間が１００nsecとなる。当該時間は現状では、これ以上短縮することができないと言われている。【０００９】
その一方で、ＣＰＵやメモリインターフェースの動作クロック自体は、より一層、高速化しており、これによって、メモリから読み出したデータのＲＡＭなどへの書き込みなどが高速化して一定期間内におけるアクセス時間の短縮が行なわれているが、これに伴い、一定期間内のアクセス時間に占めるチャージ時間の割合もまた増加しており、当該チャージ時間を低減することが望まれている。【００１０】
そこで、本発明においては、一定期間内のアクセス時間に占めるチャージ時間の平均的割合を短縮しうるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すメモリ制御装置であって、前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送することを特徴とするメモリ制御装置。
【発明の効果】
【００１２】
上述のような構成によって、本発明に係るメモリ制御装置は、一度のバースト転送の後も、バスマスタからの読み出し要求の有無に拘らず、メモリからの読み出しを継続して、データを蓄積する。そして、バスマスタから新たな読み出し要求が到来した場合であって、当該新たな読み出し要求で指定されているアドレスが前回の読み出し要求で指定されたアドレスから所定範囲内のアドレスである場合に、その読み出し要求で指定されるアドレスのデータを蓄積手段が読み出して転送することができる。この場合には新たな読み出し要求に対するチャージ時間は発生しないことになるので、一定期間内のアクセス時間において発生しうるチャージ時間の割合を低減することができる。【００１３】
また、前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合であって、前記蓄積手段がまだ前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとするデータを読み出していないときに、前記蓄積手段による当該データの読み出しを待って、読み出されたデータを前記バスマスタに転送することとしてもよい。【００１４】
これにより、新たな読み出し要求を受け付けたタイミングにおいて、まだ、メモリ制御装置がメモリから新たな読み出し要求で指定されるデータを読み出していなくとも、蓄積手段がデータを読み出すのを待ってデータを転送することができる。新たな読み出し要求の指定するアドレスが前回のアドレスから所定範囲内に収まっている場合に、新たな読み出し要求を受け付けたタイミングにおいて、まだ蓄積手段が新たな読み出し要求で指定されるデータを読み出していなくとも、新たにメモリに対するアクセスの設定を実行してチャージ時間が発生してデータ転送を開始するよりも、蓄積手段がデータの読み出しを継続した方がデータの転送をより速く開始できる。【００１５】
また、前記メモリ制御装置は、更に、前記判定手段が所定範囲内にないと判定した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。【００１６】
あるいは、前記メモリ制御装置は、更に、前記第１読み出し要求を受けてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。【００１７】
更には、前記メモリ制御装置は、更に、前記転送手段が前記第１読み出し要求に対応するデータを前記バスマスタに転送し終えてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。【００１８】
これらの構成にあるように、メモリ制御装置は、中止手段を備えているので、無駄に延々とデータの読み出しを継続せずともよく、データの読み出しを継続し続けることによって消費される電力を低減することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に係るメモリインターフェースを備えたコンピュータシステムの構成を示したシステム図である。
【図２】メモリインターフェースの機能構成を示した機能ブロック図である。
【図３】実施の形態におけるバーストストップ設定部への設定方法の概要を示す図である。
【図４】メモリインターフェースのバーストアクセスリードにおける動作を示したフローチャートである。
【図５】メモリインターフェースが制御するバーストリードアクセスのタイミングの一例を示す図である。
【図６】時間経過により読み出しの継続を中止する場合のバーストアクセスリードのタイミングの一例を示す図である。
【図７】要求されたアドレスのデータが、まもなく読み出される場合のバーストアクセスリードのタイミングの一例を示す図である。
【図８】従来におけるバーストリードアクセスのタイミングの一例を示す図である。
【図９】バーストストップ設定部への他の設定方法の概要を示す図である。
【図１０】メモリ制御装置の実装形態を示す図である。
【発明を実施するための形態】
【００２０】
＜実施の形態＞
以下、本発明に係るメモリ制御装置の一実施形態であるメモリインターフェース及び当該メモリインターフェースを含むシステムについて図面を用いて説明する。
＜構成＞
図１は本発明に係るメモリインターフェース１００が含まれるコンピュータシステムのシステム構成を示す図である。
【００２１】
図１に示すようにコンピュータシステム１０は、メモリインターフェース１００と、ＣＰＵ１１１と、ＤＭＡＣ（Direct Memory Access Controler）１１２と、内部バス１３０とを含んで構成される。図１にあるように、ＣＰＵ１１１と、ＤＭＡＣ１１２と、メモリインターフェース１００とは相互に内部バス１３０により接続されている。また、メモリインターフェース１００とメモリ２０とは外部バスにより接続されており、メモリ２０はメモリインターフェース１００に対して着脱自在に構成される。
【００２２】
ＣＰＵ１１１は、バスマスタであり、内部バス１３０及びメモリインターフェース１００を介して、メモリ２０からデータを読み出す機能を有する。
【００２３】
ＣＰＵ１１１は、メモリ２０からデータを読み出したい場合に、リードリクエスト信号と、アドレス信号とを、内部バス１３０を介してメモリインターフェース１００に発行する。そして、アドレス信号に対応するデータを内部バス１３０を介してメモリインターフェース１００から受け取る機能を有する。
【００２４】
バースト転送を実行するバーストアクセスモードの場合、ＣＰＵ１１１は、アドレス信号で指定したアドレスを読み出し開始アドレスとして、所定量のデータをインターフェース１００から受け取ることになり、これに連続するデータを読み出したい場合には、ＣＰＵ１１１は、アドレス信号で指定するアドレスを、前回指定したアドレスに所定のアドレス値だけ加算したものにする。ここで所定のアドレス値は、バースト転送における転送量によって決定されるものである。例えば、バースト転送によって３２ビット（４ワード）のデータを４バーストで読み出している場合は、所定のアドレス値は、１６（４ワード×４バースト）となる。
【００２５】
ＤＭＡＣ１１２は、バスマスタであり、ＣＰＵ１１１と同様に、内部バス１３０及びメモリインターフェース１００を介して、メモリ２０からデータを読み出す機能を有する。
【００２６】
メモリインターフェース１００は、メモリ２０からのデータの読み出しを制御するメモリ制御装置であり、ＣＰＵ１１１やＤＭＡＣ１１２からのデータの読み出し要求を内部バス１３０を介して受け取り、メモリ２０から外部バス１４０を介してデータを読み出してＣＰＵ１１１やＤＭＡＣ１１２に転送する機能を有する。
【００２７】
図２は、メモリインターフェース１００の詳細な機能構成を示した機能ブロック図である。
【００２８】
図２に示すようにメモリインターフェース１００は、転送要求解析回路１０１と、ステートカウンタ１０２と、データバッファ制御部１０３と、バーストップ制御部１０４とを含んで構成される。
【００２９】
転送要求解析回路１０１は、バスマスタたるＣＰＵ１１１あるいはＤＭＡＣ１１２からのリードアドレスと転送サイズとを含む読み出し要求を受け取り、当該読み出し要求で指定されるリードアドレスをメモリアドレスに変換し、変換したメモリアドレスと読み出し要求に含まれる転送サイズとを、ステートカウンタ１０２及びバーストストップ制御部１０４に供給する機能を有する。ここで、読み出し要求に含まれるリードアドレスは、バースト転送における読み出しの開始アドレスのことである。
【００３０】
バーストストップ制御部１０４は、バーストストップ設定部１０５を含み、バーストストップ設定部１０５が保持している情報に基づいて生成したバーストストップ要求をステートカウンタ１０２に伝達する機能を有する。バーストストップ制御部１０４は、読み出し要求の連続性が途切れたと判定した場合に、バーストストップ要求を生成する。読み出し要求の連続性が途切れた場合というのは、
（１）１つの読み出し要求がバスマスタから発行され、当該読み出し要求に基づくメモリ２０からバスマスタへのデータ転送がなされた後に、その次に来た読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとのアドレス値の差分が所定範囲内に収まっていない場合と、
（２）１つの読み出し要求がバスマスタから発行され、当該読み出し要求に基づくメモリ２０からバスマスタへのデータ転送がなされた後、所定時間内に新たな読み出し要求を受け取らなかった場合
のことをいう。
【００３１】
バーストストップ設定部１０５はバーストストップ制御部１０４が上述の条件を判定するための各種の情報を保持するものであり、アドレス連続判定情報１５１と、要求中断サイクル情報１５２と、要求中断基準情報１５３とを保持している。
【００３２】
アドレス連続判定情報１５１は、２つの連続する読み出し要求で指定されるそれぞれのリードアドレスの連続性を判定するための情報であり、予め定められたアドレス値である。バーストストップ制御部１０４は、今回の読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとの差分値が、アドレス連続判定情報１５１で定められるアドレス値以下である場合に２つの読み出し要求が連続していると判定し、多い場合には２つの読み出し要求が連続していないと判定してバーストストップ要求をステートカウンタ１０２に伝達することになる。例えば、１具体例を示すと、仮にアドレス連続判定情報１５１で示されるアドレス値が「３２番地（１６進数表記で０ｘ２０番地）」で、前回の読み出し要求で指定されるリードアドレスが、「１０００番地」であったとする。そして、今回来た読み出し要求で指定されるリードアドレスが、「１０３２番地」であったとすれば、２つの読み出し要求は連続していると判定され、今回来た読み出し要求で指定されるリードアドレスが、「１０６４番地」であったとすれば、２つの読み出し要求は連続していなないと判定される。ここで、アドレス連続判定情報１５１のアドレス値を「３２番地」とするのは、バスマスタからのアクセスが３２ビット（４ワード）で８バーストとして計算した（４ワード×８バースト＝３２番地）場合の一例である。
【００３３】
要求中断サイクル情報１５２は、上述の（２）の条件における所定時間を定めた情報であり、ここでは、メモリインターフェース１００の動作クロックのサイクル数で定められており、例えば、「４００サイクル」などと設定される。４００サイクルとは、ＣＰＵの周波数を４００ＭＨｚで、１サイクル秒までカウントした一例である。
【００３４】
要求中断基準情報１５３は、上述の要求中断サイクル情報１５２で定めるサイクル数をカウントし始めるタイミングを定義する情報である。バーストストップ制御部１０４は、要求中断基準情報１５３で定められる状態になったときに、要求中断サイクル情報１５２で定められるサイクル数のカウントを開始し、メモリインターフェース１００が新たな読み出し要求を受け付けることなく、当該サイクル数のカウントを終えるとバーストストップ要求を生成する。ここでは、要求中断基準情報１５３で定められるタイミングは、読み出し要求に対するデータをバスマスタに転送し終えたタイミングとする。
【００３５】
バーストストップ設定部１０５に保持されている各情報は、図３に示されるように、内部バス１３０を介して、ＣＰＵ１１１により、データ転送を実行する前に予め設定される。この場合、バーストストップ設定部１０５は、フリップフロップ、ＳＲＡＭなどの書き込み可能な記憶デバイスにより実現される。
【００３６】
図２に戻って、ステートカウンタ１０２は、転送要求解析回路１０１から供給されたメモリアドレスと転送サイズを含む読み出し要求に応じて、転送制御信号出力回路１０６にステート情報とメモリアドレスとを供給する機能を有する。ステート情報とは、アクセス開始、チャージ時間中、データ読み出し開始などの情報のいずれかの情報を含む。また、ステートカウンタ１０２は、バーストストップ制御部１０４から、バーストストップ要求を受け付けた場合に、転送制御信号出力回路１０６にバーストストップを示すステート情報を伝達する機能も有する。
【００３７】
データバッファ制御部１０３は、外部データバス１４２を介してメモリ２０から受け取ったデータを格納しておき、ステートカウンタ１０２から受け取ったバッファリード要求に基づき、当該バッファリード要求で示されるアドレスに対応するリードデータを内部バス１３０を介してバスマスタに転送する機能を有する。データバッファ制御部１０３には、読み出し速度がメモリ２０からの読み出し速度よりも高速なものを使用することとする。
【００３８】
転送制御信号出力回路１０６は、ステートカウンタ１０２から受け取ったステート情報に基づき、バースト転送制御信号を外部転送制御信号バス１４１を介してメモリ２０に出力する機能と、データ読み出しを行なう場合に、そのアドレスを外部アドレスバス１４０を介して出力する機能を有する。転送制御信号出力回路１０６は、ステート情報がアクセス開始を示す場合に、メモリ２０の指定されたメモリアドレスに対するアクセスを開始する。転送制御信号出力回路１０６は、ステート情報がデータ読み出し開始を示す場合に、指定されたメモリアドレスを読み出し開始アドレスとして、それ以降のアドレスに格納されているデータを順次外部データバス１４２に出力させる。このとき、転送制御信号出力回路１０６は、バーストストップを示すステート情報を受け付けるまで、メモリアドレス値を１ずつ加算しながらメモリ２０にデータの出力を要求していくことにより、読み出し要求により指定されるデータ以降のデータをメモリ２０から順次出力させる。転送制御信号出力回路１０６は、ステート情報がバーストストップを示す場合に、データの外部データバス１４２への出力を停止させる。
【００３９】
図１に戻って、メモリ２０は、ＮＯＲ型フラッシュメモリであり、メモリインターフェース１００の制御のもと、指定されたアドレスのデータを順次外部データバス１４２に出力する機能と、メモリインターフェース１００からのバーストストップ信号に基づきデータの出力を停止する機能とを有する。
＜動作＞
まず、メモリインターフェース１００の基本的動作を図４に示すフローチャートを用いて説明し、その後に、当該フローチャートに従って動作する場合のデータ転送の具体例を説明する。
【００４０】
図４に示すフローチャートは、１つの読み出し要求をバスマスタから受け付けた場合のメモリインターフェース１００の動作を示すフローチャートである。
【００４１】
メモリインターフェース１００は、バスマスタから新たな読み出し要求を受け付ける（ステップＳ４０１）。
【００４２】
すると、転送要求解析回路１０１は、受け付けた読み出し要求を解析し、そのリードアドレスをメモリアドレスに変換して、当該メモリアドレスと転送サイズとを含む読み出し要求をバーストストップ制御部１０４とステートカウンタ１０２とに供給する。
【００４３】
バーストストップ制御部１０４は、メモリインターフェース１００がメモリ２０からデータの読み出し中であるかどうかを、転送制御信号出力回路１０６が最後にメモリ２０に出力した制御信号が読み出し開始の信号であるか、バーストストップ信号であるかに基づいて判定する（ステップＳ４０２）。
【００４４】
メモリインターフェース１００がメモリ２０からデータの読み出し中である場合、即ち、転送制御信号出力回路１０６が最後にメモリ２０に出力した制御信号が読み出し開始の信号である場合には（ステップＳ４０２のＹＥＳ）、バーストストップ制御部１０４は、受け付けた読み出し要求で指定されるリードアドレスと、前回受け付けた読み出し要求で指定されるリードアドレスとの差分が、アドレス連続判定情報１５１で指定されるアドレス値内に収まっているかどうかを判定する（ステップＳ４０３）。これにより、２つの読み出し要求のリードアドレスが連続しているかどうかを判定する。データが読み出し中でない場合には（ステップＳ４０２のＮＯ）、ステップＳ４０５に移行する。
【００４５】
アドレス値内に収まっている場合には（ステップＳ４０３のＹＥＳ）、供給された読み出し要求をそのままステートカウンタ１０２に転送する。ステートカウンタ１０２は、転送要求解析回路１０１と、バーストストップ制御部１０４とから読み出し要求を受け付けた場合には、メモリアドレスと、転送サイズとを含む信号をデータバッファ制御部１０３に伝達する。そして、データバッファ制御部１０３は、保持しているデータの中から指定されたメモリアドレスに対応するデータを転送サイズ分だけ内部バス１３０に出力する。なお、メモリアドレスに対応するデータを保持していなかった場合には、外部データバス１４２に該当するデータが出力されるのを待ち、当該データを取得してから、内部バス１３０に出力する（ステップＳ４０７）。
【００４６】
アドレス値内に収まっていなかった場合には（ステップＳ４０３のＮＯ）、バーストストップ制御部１０４は、ステートカウンタ１０２にバーストストップ要求を出力する。
【００４７】
ステートカウンタ１０２は、転送要求解析回路１０１から読み出し要求を、バーストストップ制御部１０４からバーストストップ要求を受け付けた場合には、まず、バーストストップを示すステート情報を含む信号を転送制御信号出力回路１０６に伝達する。転送制御信号出力回路１０６は、受け付けた信号のステート情報がバーストストップを示すことから、バーストストップ信号をメモリ２０に出力し、外部データバス１４２へのデータの出力を停止させる（ステップＳ４０４）。
【００４８】
次にステートカウンタ１０２は、転送要求解析回路１０１から受け付けた読み出し要求に基づき、アクセス開始を示すステート情報と、メモリアドレスと、転送サイズとを含む読み出し要求を転送制御信号出力回路１０６に伝達し、転送制御信号出力回路１０６は、メモリ２０にメモリアドレスで指定されるアドレスへのアクセスを開始する（ステップＳ４０５）。
【００４９】
そして、チャージ時間が経過すると、転送制御信号出力回路１０６は、メモリ２０に対して、指定したメモリアドレスを読み出し開始アドレスとして、アドレス順に格納されているデータの外部データバス１４２への出力を指示する（ステップＳ４０６）。
【００５０】
データバッファ制御部１０３は、外部データバス１４２に出力されたデータであって、受け付けた読み出し要求で指定されるデータを取得し、内部バス１３０に出力する（ステップＳ４０７）。バスマスタは、内部バス１３０に出力されたデータを受け取る。
【００５１】
バーストストップ制御部１０４は、要求中断基準情報１５３に示されるタイミングの情報に基づき、データバッファ制御部１０３が内部バス１０３にデータを出力したことをトリガに、要求中断サイクル情報で示されるサイクル数のカウントを開始する（ステップＳ４０８）。
【００５２】
当該サイクル数のカウント中に、新たな読み出し要求を受け付けた場合には（ステップＳ４０８のＮＯ、ステップＳ４０９のＹＥＳ）、ステップＳ４０２に移行する。
【００５３】
新たな読み出し要求を受け付けることなくサイクル数のカウントを終えた場合には（ステップＳ４０８のＹＥＳ）、バーストストップ制御部１０４は、バーストストップ要求をステートカウンタ１０２に伝達し、ステートカウンタ１０２から出力されるバーストストップを示すステート情報を含む信号を受け付けた転送制御信号出力回路１０６がメモリ２０に対して外部データバス１４２へのデータの出力を停止させて（ステップＳ４１０）、処理を終了する。
【００５４】
以上が、読み出し要求を受け付けたときのメモリインターフェース１００の動作である。
【００５５】
ここから、図４に示すフローチャートに従ってメモリインターフェース１００が動作した場合のデータ転送のタイミングの具体例を、図５から図７を用いて説明する。
【００５６】
図５から図７で示されるバースト転送においては、理解しやすくするために、バスマスタから発行されるリードアドレスと、メモリインターフェース１００から発行されるメモリアドレスとは、同じものとして記載している。当該アドレスはここでは、「Ａ０」、「Ａ１」・・・と、Ａに番号を付した形で表現するものとし、番号が異なればアドレスが異なるものとする。なお、アドレスはメモリ２０においてこの番号順にアドレスが設定されているものとする。
【００５７】
転送するデータについては、「Ｄ０」、「Ｄ１」・・・と、Ｄに番号を付した形で表現するものとする。当該データの番号はそれぞれアドレスの番号と対応する。つまり、アドレス「Ａ２」に対応するリードデータは「Ｄ２」となる。
【００５８】
また、バースト転送の転送サイズを４アドレス分のデータとする。つまり、メモリインターフェースは、バスマスタからアドレス「Ａ０」を読み出し開始アドレスとして指定された場合には、データ「Ｄ０」〜「Ｄ３」までをバースト転送する。
【００５９】
そして、アドレス連続判定情報１５１には、１２番地という情報が設定され、要求中断サイクル情報１５２には、４クロック分という情報が設定され、要求中断基準情報１５３には、読み出し要求に対応するリードデータを転送し終えてからという情報が設定されているとする。
【００６０】
また、図５〜図７においては、データの読み出しが実行されていない状態からの説明を行うものとする。
【００６１】
上記条件の下で、メモリインターフェース１００の動作の具体例を説明する。
【００６２】
図５は、本発明に係るバースト転送のデータ転送例を示す図である。図５の上４つの信号は、バスマスタ−メモリインターフェース１００間でやり取りされる信号を示しており、下５つの信号は、メモリインターフェース１００−メモリ２０間でやり取りされる信号を示している。内部クロック及び外部クロックはそれぞれ動作クロックを示しており、ここでは同一の周期に設定されているものとする。内部バス（リクエスト）は、バスマスタからのメモリインターフェース１００に対して発行された読み出し要求を示しており、ハイ（high）になっているタイミングが読み出し要求が発行されているタイミングを示す。内部バス（アドレス）は、バスマスタから発行された、バスマスタが読み出したいデータのアドレスを示すものであり、各アドレスが発行されているタイミングを示す。内部バス（データ）は、メモリインターフェース１００からバスマスタに対して転送されているデータとそのタイミングを示す。外部アドレスバスは、メモリインターフェース１００からメモリ２０に対して発行したアドレスとそのタイミングを示す。外部データバスは、メモリ２０からメモリインターフェースに対して外部データバス１４２に出力されたデータとそのタイミングを示す。転送ＡＣＫ信号は、転送が実行されていることを通知するための信号であり、ハイ（high）になっているタイミングではデータ転送が実行されていないことを示す。バーストストップ信号は、メモリインターフェース１００からメモリ２０に対して発行されるバーストストップ信号を示しており、メモリ２０はバーストストップ信号がハイ(high)になったことを検出すると外部データバス１４２へのデータの出力を中止する。
【００６３】
図５に示すデータ転送例では、データの読み出しを継続して、２回目以降の連続するアドレスへの読み出し要求が来た場合にチャージ時間の発生を抑制できていることを示し、また、新たな読み出し要求で示されるリードアドレスが前回の読み出し要求で示されるリードアドレスとの差分がアドレス連続判定情報１５１で示されるアドレス値よりも大きかった場合を示す。
【００６４】
メモリインターフェース１００は、時刻Ｔ５００に、バスマスタからアドレスＡ０を読み出し開始アドレスとする読み出し要求を受け付ける。
【００６５】
当該読み出し要求を受け付けて、メモリインターフェース１００は、時刻Ｔ５００の半クロック後の時刻Ｔ５０１にメモリ２０のアドレスＡ０に対してのアクセスを開始する。
【００６６】
すると、時刻Ｔ５０１〜時刻Ｔ５０２までの間で示されるチャージ時間が経過した後に、外部データバス１４２には、リードアドレスＡ０を読み出し開始アドレスとするデータ、すなわちデータＤ０、Ｄ１、・・・が出力され始める。
【００６７】
時刻Ｔ５０３においてバースト転送の転送サイズ分のデータＤ０〜Ｄ３が外部データバスに出力された後も、メモリ２０は、バーストストップ信号を受け付けていないので後続するデータ（Ｄ４、Ｄ５、・・・）を外部データバスに出力し続ける。
【００６８】
一方、リードアドレスＡ０を読み出し開始アドレスとするバースト転送単位分のデータＤ０〜Ｄ３を時刻Ｔ５０４に受け付け終えると、バスマスタは次の読み出し要求を発行し、メモリインターフェース１００は、時刻Ｔ５０５にリードアドレスＡ４を読み出し開始アドレスとするデータの読み出し要求を受け付ける。
【００６９】
この時点でアドレスＡ４に対応するデータＤ４は、既にデータバッファ制御部に蓄積されているので、次のクロックの時刻Ｔ５０６には、データＤ４からの転送サイズ分のデータが内部バス１３０に出力され始める。
【００７０】
時刻Ｔ５０７において、データＤ４を受け取ったバスマスタは、次のアドレスＡ８を読み出し開始アドレスとする読み出し要求をメモリインターフェース１００に発行する。
【００７１】
これを受けて、メモリインターフェース１００は、時刻Ｔ５０９から、アドレスＡ８に対応するデータＤ８以降のデータを内部バス１３０に出力する。
【００７２】
時刻Ｔ５１０でデータＤ１１を受け取ったバスマスタは次に、リードアドレスがＡ１００である読み出し要求をメモリインターフェース１００に発行する。
【００７３】
当該読み出し要求を受け付けたメモリインターフェース１００は、そのリードアドレスから、前回の読み出し要求のリードアドレスＡ８を減算して、その差分値９２が、アドレス連続判定情報１５１に定められている１２番地よりも大きいことから、その連続性が途切れたと判断し、時刻５１２においてバーストストップ信号をメモリ２０に発行して、時刻Ｔ５０２から継続していた読み出しを中止し、時刻Ｔ５１３から新たにアドレスＡ１００を読み出し開始アドレスとするアクセスを実行する。この場合、再び時刻Ｔ５１３〜時刻Ｔ５１４に示されるようにチャージ時間が発生する。
【００７４】
図５に示されるように、メモリインターフェース１００がメモリ２０からの読み出しを継続することによって、従来であれば、時刻Ｔ５０５の読み出し要求や、時刻Ｔ５０８の読み出し要求に対して発生していたチャージ時間を抑制できている。
【００７５】
図６に示すデータ転送例では、最後のデータ転送から所定時間経過した場合を示す。
【００７６】
図６に示すデータ転送例のうち、時刻Ｔ５１０までは、図５に示した状態に共通するのでそこまでの経緯についてはここでは説明を割愛する。
【００７７】
時刻Ｔ５１０でアドレスＡ８に対応するデータをバスマスタに転送し終えたメモリインターフェース１００のバーストストップ制御部は、要求中断サイクル情報１５２に示されるサイクル数のカウントを開始する。
【００７８】
そして、時刻Ｔ６１１までに、新たな読み出し要求を受け付けることなく、要求中断サイクル情報１５２に示される４クロックのサイクルが経過すると、バーストストップ制御部１０４は、バーストストップ要求を生成し、これにより、転送制御信号出力回路１０６からバーストストップ信号が時刻Ｔ６１２において出力され、データＤ１８までのデータを読み出した時点で、時刻Ｔ５０２から継続して行なっていたデータの読み出しを中止する。そして、この時点で、データバッファ制御部１０３は、保持していたデータを破棄する。
【００７９】
図６の場合、読み出したデータＤ１２〜Ｄ１８は、結果的に無駄になっているが、Ｔ５１０〜Ｔ６１１までの４クロックのサイクルのカウントを行なって、バーストストップを行なうことにより、無駄なデータの読み出しが多くなることを防いでいる。
【００８０】
図７に示すデータ転送例では、新たな読み出し要求で示されるリードアドレスが、前回の読み出し要求で示されるリードアドレスとの差分がアドレス連続判定情報１５１で示されるアドレス値よりも小さい場合であって、まだ、データがデータバッファ制御部１０３に蓄積されていない場合を示す。
【００８１】
図７に示すデータ転送例のうち、時刻Ｔ５１０までは、図５に示した状態に共通するのでそこまでの経緯についてはここでは説明を割愛する。
【００８２】
時刻Ｔ５１０において、バスマスタにアドレスＡ８に対応するデータを転送し終えたメモリインターフェース１００は、そこから、要求中断サイクル情報１５２に示される４クロックのサイクルのカウントを開始するが、当該カウントを終える前に、メモリインターフェース１００は、バスマスタからの新たな読み出し要求を時刻Ｔ７１１に受け付ける。時刻Ｔ７１１で受け付けた読み出し要求のリードアドレスＡ１９は、前回の読み出し要求のリードアドレスＡ８との差分が１１であり、アドレス連続判定情報１５１に定められているアドレス値の範囲内に収まっていることから、時刻Ｔ７１１の読み出し要求は、連続していると判定される。
【００８３】
しかしながら、時刻Ｔ７１１の時点においては、まだ、リードアドレスＡ１９に対応するデータＤ１９はメモリ２０から読み出されていない。
【００８４】
そこで、メモリインターフェース１００は、アドレス値を１ずつ加算しての読み出しを継続し、時刻Ｔ７１２において、データＤ１９が読み出されるので、時刻Ｔ７１３からバスマスタに読み出し要求Ａ１９に対応するデータＤ１９が転送され始める。
【００８５】
アドレス連続判定情報１５１のアドレス値を単純に転送サイズの次のアドレスとの差分値となる４番地よりも長めに設定することにより、読み出しを継続した方が、新たにアクセスを開始してチャージ時間を発生させるよりも、アクセス時間を短縮することができる。
【００８６】
図８には、本発明に係るデータ転送のタイミングとの差異を明確にするために、従来のバースト転送におけるデータ転送のタイミングの具体例を示す。なお、図８に示す従来例においても、チャージ時間は４クロックかかり、バースト転送の転送サイズも４アドレス分のデータであるとする。
【００８７】
図８に示されるように、時刻Ｔ８００において、アドレスＡ０からの読み出し要求を受け付けると、メモリインターフェースは、メモリへのアクセスを開始し、時刻Ｔ８０１〜時刻Ｔ８０２のチャージ時間を経て、時刻Ｔ８０２からメモリインターフェースはメモリからのデータの読み出しを開始する。時刻Ｔ８０３において、メモリインターフェースはバースト転送単位分のメモリからのデータの読み出しを終了し、時刻Ｔ８０４において、メモリインターフェースからバスマスタへのデータの転送が完了する。
【００８８】
そして、時刻Ｔ８０５において、新たな読み出し要求を受け付けると、時刻Ｔ８００〜Ｔ８０４までと同じ手順を踏んで、時刻Ｔ８０５の読み出し要求で指定されるデータの読み出しを、時刻Ｔ８０５〜時刻Ｔ８０９にかけて行なう。これは時刻Ｔ８１０において受け付けた読み出し要求においても同様である。
【００８９】
図８に示すように、従来であれば、アドレスＡ０、Ａ４、Ａ８をリードアドレスとする３つの読み出し要求を連続して受け付けた場合には、図８において都合２９クロックかかり、チャージ時間が３回（時刻Ｔ８０１〜時刻Ｔ８０２と、時刻Ｔ８０６〜時刻Ｔ８０８と、時刻Ｔ８１１〜時刻Ｔ８１２の３回）発生している。
【００９０】
対して、図５にあるように、本実施の形態に係るメモリインターフェース１００の場合、アドレスＡ０、Ａ４、Ａ８をリードアドレスとする３つの読み出し要求を連続して受け付けた場合には、図５において、都合２０クロックかかり、チャージ時間が１回のみ（時刻Ｔ５０２〜時刻Ｔ５０３）発生している。このことから、本実施の形態に係るメモリインターフェース１００は、バスマスタの所望のデータを確実に転送しつつ、チャージ時間を削減して、アクセス時間の短縮を実現していると言える。
【００９１】
また、図７に示す時刻Ｔ７１１におけるアドレスＡ１９に対する読み出し要求に対して、データＤ２２のデータ転送を終えるまでかかった時間は、都合６クロックかかっているが、これは従来の１の読み出し要求に対して発生する時間、例えば、図８を例にすると、時刻Ｔ８００の読み出し要求を受け付けてから、データＤ３を転送し終えた時刻Ｔ８０４までの９クロックよりも短縮されている。
＜まとめ＞
本発明に係るメモリインターフェースは、バスマスタから発行された１つの読み出し要求に対応するデータをメモリから読み出してバスマスタに転送した後にも、当該読み出し要求で転送したデータのアドレスに後続するアドレスにあるデータ以降の読み出しを継続する。当該読み出しの継続はメモリインターフェース１００が指定するアドレス値を１ずつ加算してそのたびに対応するデータを読み出すことで行なわれる。そして、新たな読み出し要求が来た場合に、当該新たな読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとの差分が所定範囲内に収まっている場合に、メモリインターフェースがバスマスタからの要求なく自主的に読み出していたデータを転送する。この場合、メモリインターフェースは、新たな読み出し要求で指定されるリードアドレスに基づく読み出しの設定をメモリに対して行なわないので、チャージ時間が発生することはない。これにより、２つの連続する読み出し要求が上述の条件を満たす場合に、一定時間内において発生するバスマスタからの読み出し要求に対して発生するチャージ時間の発生回数を抑制することができる。また、チャージ時間の発生回数を抑制することにより、メモリアクセスの時間が短縮されることになるので、消費電力の削減にもつながる。
【００９２】
近年、例えば、携帯電話機や、デジタルテレビ、ＢＤ(Blu-ray Disc)レコーダといったデジタル家電においては、高性能化・多機能化によって、プログラムとデータを格納するＮＯＲ型フラッシュＲＯＭに要求される動作クロックも年々高速化している。更に、ＣＰＵの高性能化も進んでおり、キャッシュのタ印サイズの増加により、従来の固定サイズのバーストアクセスでは、数回に分けないとライン分のデータを読み出せなくなってきている。即ち、従来では、ライン分のデータを読み出すにあたって、この数回分のチャージ時間が発生することになる。
【００９３】
そのため、本発明に係るメモリインターフェース１００を、図１０に示すように、例えばシステムＬＳＩ（Large Scale Integrated circuit）１０００として実現し、当該システムＬＳＩ１０００を回路基板１００１に設置し、当該回路基板１００１を、例えば、携帯電話機１００２、ＤＶＤ(Digital Versatile Disc)プレーヤやＢＤレコーダなどに代表される放送受信装置／蓄積再生装置１００３、デジタルテレビ１００４、自動車１００６に搭載されるカーナビに代表される車載端末１００５など各種のデジタル家電に搭載すると効果的である。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施の形態がこれに限られないことは勿論である。以下、上記実施の形態以外に本発明の思想として含まれる各種の変形例について説明する。
（１）上記実施の形態においては、メモリ２０は、コンピュータシステム１０のメモリインターフェース１００に対して着脱可能であるとしたが、メモリ２０は、メモリインターフェース１００によってデータの読み出しが行なわれるものであればよく、メモリ２０は、コンピュータシステム１００の内部に予め備え付けられていたものであってもよい。
（２）上記実施の形態においては、メモリ２０からのデータの読み出しについてのみ記載したが、バスマスタたるＣＰＵ１１１やＤＭＡＣ１１２は書き込み要求を書き込むべきデータとともにメモリインタフェース１００に転送する機能を有し、メモリインターフェース１００は、指定されたデータをメモリ２０に書き込む機能を有していてもよい。
（３）上記実施の形態においては、バーストストップ設定部１０５をバーストストップ制御部１０４内に設けるように構成したが、バーストストップ制御部１０４は、バーストストップ設定部１０５内の情報を読み出す機能があればよく、バーストストップ制御部１０４外にバーストストップ設定部１０５を設けてもよい。
（４）上記実施の形態においては、バーストストップ設定部１０５に設定されている情報はＣＰＵ１１１により設定されることとしたが、これは、ＣＰＵ１１１以外から設定されてもよい。
【００９４】
例えば、図９（ａ）に示すように、コンピュータシステム１０は、バーストストップ設定部１０５として、保持すべき各種の情報を記憶している不揮発デバイス１６０を備えてもよい。この構成は、接続するメモリ２０の種別が予め決まっており、バーストストップ信号発生タイミングの変更がない場合に、コスト的にも有利になると言える。
【００９５】
あるいは、図９（ｂ）に示すように、ジャンパピン、ディップスイッチなどにより実現される外部スイッチ１７０からバーストストップ設定部１０５が保持する各情報を設定してもよい。この構成はソフトウェアの変更なしで、バーストストップ設定部１０５が保持する情報の内容の変更が可能である。
（５）上記実施の形態においては、要求中断基準情報１５３で定められるタイミングは、読み出し要求で指定されるデータをバスマスタに転送し終えたタイミングとしたが、当該タイミングはこれに限定されるものではない。要求中断基準情報１５３は、上記実施の形態において、要求中断サイクル情報１５２で定められるサイクル数のカウントを開始するためのトリガとなる状態を規定するものであればよく、例えば、バスマスタから読み出し要求を受け付けたタイミングや、最初の読み出し要求のリードデータを転送し始めたタイミングなどであってもよい。なお、それぞれの定めたタイミングに応じて、チャージ時間や動作クロックを考慮して、要求中断サイクル情報１５２で定めるサイクル数を調節する必要がある。
（６）上記実施の形態においては、メモリ２０は、ＮＯＲ型フラッシュメモリであるとしたが、メモリ２０は、バースト転送機能を有し、データの読み出しにチャージ時間が発生するタイプのものであれば、ＮＯＲ型フラッシュメモリでなくともよい。
（７）上記実施の形態においては、特に記載しなかったが、バスマスタは、更に、最初の読み出し要求の段階において、メモリインターフェース１００に対して、バーストストップ信号を生成するタイミングを規定する情報も送信してもよい。
【００９６】
例えば、バスマスタは、読み出し要求を発行する際に、その後でアドレスが連続する回数を通知する構成をとってもよい。そして、メモリインターフェース１００は、当該回数の分だけ、データの順次読み出しを継続した後に、バーストストップ信号を生成して読み出しの継続を中止してもよい。
【００９７】
これにより、読み出し要求の対象外となるデータの読み出し（図６で言えば、データＤ１２〜Ｄ１８）を削減することができる。
（８）上記実施の形態においては、メモリインターフェース１００が、バスマスタからの要求なく、自身で読み出したデータについて、新たな読み出し要求が所定時間経過しても来なかった場合や、受け付けた新たな読み出し要求で指定されるリードアドレスが前回の読み出し要求で指定されるリードアドレスとの差分がアドレス連続判定情報で示されるアドレス値よりも大きかった場合は、読み出したデータを破棄することとした。
【００９８】
しかしながら、この読み出したデータを破棄することなく利用することとしてもよい。例えば、データバッファ制御部１０３は、バーストストップ信号が転送制御信号出力回路１０６から出力されたことをトリガに、その時点で保持していたデータであって、読み出し対象外となったデータを前回読み出し要求を発行したバスマスタに出力することとしてもよい。
【００９９】
そして、メモリインターフェース１００が出力したデータを受け取ったバスマスタは、当該データをキャッシュの普段使われないラインに格納しておき、当該バスマスタがそのデータを利用するタイミングでメモリインターフェース１００に読み出し要求を出力することなく、当該キャッシュからデータを読み出して利用してもよい。
（９）上記実施の形態においては、新たな読み出し要求と前回の読み出し要求とのそれぞれで指定されるリードアドレスの差分がアドレス連続判定情報１５１で示されるアドレス値内に収まるかどうかを判定した。しかし、連続で読み出し続けることにより、図７において示したように、新たな読み出し要求のリードアドレスと、実際に読み出しているデータの格納されていたアドレスとの差分が縮まることがある。これは、図７の場合でいえば、時刻Ｔ５０５や時刻Ｔ５０８において、バスマスタからの読み出し要求を受け付けていた間にもメモリ２０からデータを読み出し続けていたことに起因している。
【０１００】
そこで、上記実施の形態において示した構成に更に、以下のような構成を加えてもよい。即ち、新たな読み出し要求を受け付けた時点において、その時点で継続して読み出し、データバッファ制御部１０３が蓄積しているデータのうち、そのアドレスが最も大きいものとの差分が所定の番地内であるかを、図４のステップＳ４０３の前段において判定してもよい。そして、当該判定が肯定的な場合には、読み出しを中止せずに継続させて、読み出しを継続することによって得られたデータをデータバッファ制御部１０３が転送することとしてもよい。なお、当該所定の番地は、チャージ時間分を使ってデータを読み出したとした場合に、読み出しうるデータのアドレス分に相当する。
【０１０１】
そして、このときには、アドレス連続判定情報１５１は、上記実施の形態の図７に示したデータ転送を実現するために余裕を持たせていたアドレス値を、単純にバースト転送の転送サイズ分のアドレス値（図５〜図７の例で言えば、４アドレス）に設定できる。
（１０）上記実施の形態においては、データバッファ制御部１０３は、メモリインターフェース１００がメモリ２０に対してバーストストップ信号を発行すると、保持していたデータを破棄することとしたが、これは、破棄せずに残しておいてもよい。
【０１０２】
この場合、新たな読み出し要求に対するデータを外部データバス１４２から取得すると、これまでに保持していたデータのうち、古いもののから上書きすることとしてよい。また、新たな読み出し要求に対するデータを、データバッファ制御部１０３が既に保持していた場合には、メモリ２０からデータを読み出さずにそのままデータバッファ制御部１０３が保持していたデータを内部バス１３０に出力することとしてもよい。
（１１）上記実施の形態におけるメモリインターフェース１００の各機能部は、１または複数のＬＳＩによって実現されてもよく、複数の機能部が１のＬＳＩにより実現されてもよい。
【０１０３】
また、集積化の手法としてはＬＳＩに限定されるものではなく、専用回路または汎用プロセッサで実現することとしてもよい。さらには、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンイギュラブル・プロセッサを利用してもよい。また、半導体技術の進歩又は派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
（１２）上述の実施形態で示したバースト転送に係る動作、バースト転送を継続、中止する処理等を、コンピュータシステムのプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
【産業上の利用可能性】
【０１０４】
本発明は、チャージ時間を短縮することにより、メモリからのデータの読み出しを高速化することができるメモリ制御装置であって、例えば、携帯電話機、デジタルＴＶ、ＢＤレコーダ、ＤＶＤレコーダなど、各種デジタル家電に有用である。
【符号の説明】
【０１０５】
１０  コンピュータシステム（データプロセッサ）
２０  メモリ
１００  メモリインターフェース（メモリ制御装置）
１０１  転送要求解析回路
１０２  ステートカウンタ
１０３  データバッファ制御部
１０４  バーストストップ制御部
１０５  バーストストップ設定部
１０６  転送制御信号出力回路
１１１  ＣＰＵ（バスマスタ）
１１２  ＤＭＡＣ（バスマスタ）
１３０  内部バス
１４０  外部アドレスバス
１４１  外部転送制御信号バス
１４２  外部データバス
１６０  不揮発デバイス
１７０  外部スイッチ
【図１】
2010061588.tif 000003
【図２】
2010061588.tif 000004
【図３】
2010061588.tif 000005
【図４】
2010061588.tif 000006
【図５】
2010061588.tif 000007
【図６】
2010061588.tif 000008
【図７】
2010061588.tif 000009
【図８】
2010061588.tif 000010
【図９】
2010061588.tif 000011
【図１０】
2010061588.tif 000012
【手続補正書】
【提出日】平成22年7月23日(2010.7.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリからのデータの読み出しの高速化に関する。
【背景技術】
【０００２】
メモリからのデータの読み出しに当たり、当該データの読み出しに要する時間が短ければ短いほど良い事は言うまでもない。特に、メモリにプログラムが格納されている場合に当該プログラムを速く読み出すことで、より速く実行に移ることができる。殊に携帯電話機などにおいては、メモリには、読み出せばそのまま直接実行できる実行形式のプログラムやコマンドが格納されているため、メモリからの読み出しの高速性がより有用になってくる。なお、メモリに実行形式のプログラムが記憶され、それを読み出してＲＡＭなどに展開することなく即実行する形式をＸＩＰ（eXecute In Place）という。
【０００３】
メモリからのデータの読み出しの高速化に当たっては、バースト転送を行ってデータ転送の効率を高めるということが行なわれている。バースト転送においては、例えばＣＰＵからの読み出し要求に応じて、メモリインターフェース回路がメモリにアクセスし、当該読み出し要求で指定されたアドレスから、複数のアドレスに跨る予め定められた量のデータを一括して取得し、取得したデータをＣＰＵに転送するということが行なわれる。
【０００４】
従来においては、メモリからの読み出しに当たっては、メモリインターフェース回路が、通常の読み出し方法と、バースト転送を行なうバーストモードとの制御を行って、メモリアクセスの平均時間の短縮が図られてきた。
【０００５】
特許文献１には、バスマスタのアドレッシングモードとメモリのアドレッシングモードとの違いに基づき、バーストアクセスを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−５９５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、一般的に、バーストモードで動作するメモリに読み出し対象の開始アドレスを出力すると、すぐには対応するデータが読み出されず、一定の時間（以下、本明細書においては、チャージ時間と記載する）が経過してからデータの読み出しが開始される。上記特許文献１においても、当該チャージ時間は発生している。
【０００８】
このチャージ時間はメモリデバイスに依存する固定の時間である。というのも、メモリの読み出し開始時にメモリを構成する記憶素子への電圧制御が行なわれるが、当該電圧制御にかかる時間が記憶素子に応じて一定であるためである。例えば、ＮＯＲ型フラッシュメモリでは、記憶素子であるトランジスタの電圧制御を行い、トランジスタの導通状態を変化させることでデータの読み出しを可能にするが、この導通状態を変化させるために要する時間が１００nsecとなる。当該時間は現状では、これ以上短縮することができないと言われている。
【０００９】
その一方で、ＣＰＵやメモリインターフェースの動作クロック自体は、より一層、高速化しており、これによって、メモリから読み出したデータのＲＡＭなどへの書き込みなどが高速化して一定期間内におけるアクセス時間の短縮が行なわれているが、これに伴い、一定期間内のアクセス時間に占めるチャージ時間の割合もまた増加しており、当該チャージ時間を低減することが望まれている。
【００１０】
そこで、本発明においては、一定期間内のアクセス時間に占めるチャージ時間の平均的割合を短縮しうるメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すメモリ制御装置であって、前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送することを特徴とするメモリ制御装置。
【発明の効果】
【００１２】
上述のような構成によって、本発明に係るメモリ制御装置は、一度のバースト転送の後も、バスマスタからの読み出し要求の有無に拘らず、メモリからの読み出しを継続して、データを蓄積する。そして、バスマスタから新たな読み出し要求が到来した場合であって、当該新たな読み出し要求で指定されているアドレスが前回の読み出し要求で指定されたアドレスから所定範囲内のアドレスである場合に、その読み出し要求で指定されるアドレスのデータを蓄積手段が読み出して転送することができる。この場合には新たな読み出し要求に対するチャージ時間は発生しないことになるので、一定期間内のアクセス時間において発生しうるチャージ時間の割合を低減することができる。
【００１３】
また、前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合であって、前記蓄積手段がまだ前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとするデータを読み出していないときに、前記蓄積手段による当該データの読み出しを待って、読み出されたデータを前記バスマスタに転送することとしてもよい。
【００１４】
これにより、新たな読み出し要求を受け付けたタイミングにおいて、まだ、メモリ制御装置がメモリから新たな読み出し要求で指定されるデータを読み出していなくとも、蓄積手段がデータを読み出すのを待ってデータを転送することができる。新たな読み出し要求の指定するアドレスが前回のアドレスから所定範囲内に収まっている場合に、新たな読み出し要求を受け付けたタイミングにおいて、まだ蓄積手段が新たな読み出し要求で指定されるデータを読み出していなくとも、新たにメモリに対するアクセスの設定を実行してチャージ時間が発生してデータ転送を開始するよりも、蓄積手段がデータの読み出しを継続した方がデータの転送をより速く開始できる。
【００１５】
また、前記メモリ制御装置は、更に、前記判定手段が所定範囲内にないと判定した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。
【００１６】
あるいは、前記メモリ制御装置は、更に、前記第１読み出し要求を受けてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。
【００１７】
更には、前記メモリ制御装置は、更に、前記転送手段が前記第１読み出し要求に対応するデータを前記バスマスタに転送し終えてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備えることとしてもよい。
【００１８】
これらの構成にあるように、メモリ制御装置は、中止手段を備えているので、無駄に延々とデータの読み出しを継続せずともよく、データの読み出しを継続し続けることによって消費される電力を低減することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に係るメモリインターフェースを備えたコンピュータシステムの構成を示したシステム図である。
【図２】メモリインターフェースの機能構成を示した機能ブロック図である。
【図３】実施の形態におけるバーストストップ設定部への設定方法の概要を示す図である。
【図４】メモリインターフェースのバーストアクセスリードにおける動作を示したフローチャートである。
【図５】メモリインターフェースが制御するバーストリードアクセスのタイミングの一例を示す図である。
【図６】時間経過により読み出しの継続を中止する場合のバーストアクセスリードのタイミングの一例を示す図である。
【図７】要求されたアドレスのデータが、まもなく読み出される場合のバーストアクセスリードのタイミングの一例を示す図である。
【図８】従来におけるバーストリードアクセスのタイミングの一例を示す図である。
【図９】バーストストップ設定部への他の設定方法の概要を示す図である。
【図１０】メモリ制御装置の実装形態を示す図である。
【発明を実施するための形態】
【００２０】
＜実施の形態＞
以下、本発明に係るメモリ制御装置の一実施形態であるメモリインターフェース及び当該メモリインターフェースを含むシステムについて図面を用いて説明する。
＜構成＞
図１は本発明に係るメモリインターフェース１００が含まれるコンピュータシステムのシステム構成を示す図である。
【００２１】
図１に示すようにコンピュータシステム１０は、メモリインターフェース１００と、ＣＰＵ１１１と、ＤＭＡＣ（Direct Memory Access Controler）１１２と、内部バス１３０とを含んで構成される。図１にあるように、ＣＰＵ１１１と、ＤＭＡＣ１１２と、メモリインターフェース１００とは相互に内部バス１３０により接続されている。また、メモリインターフェース１００とメモリ２０とは外部バスにより接続されており、メモリ２０はメモリインターフェース１００に対して着脱自在に構成される。
【００２２】
ＣＰＵ１１１は、バスマスタであり、内部バス１３０及びメモリインターフェース１００を介して、メモリ２０からデータを読み出す機能を有する。
ＣＰＵ１１１は、メモリ２０からデータを読み出したい場合に、リードリクエスト信号と、アドレス信号とを、内部バス１３０を介してメモリインターフェース１００に発行する。そして、アドレス信号に対応するデータを内部バス１３０を介してメモリインターフェース１００から受け取る機能を有する。
【００２３】
バースト転送を実行するバーストアクセスモードの場合、ＣＰＵ１１１は、アドレス信号で指定したアドレスを読み出し開始アドレスとして、所定量のデータをインターフェース１００から受け取ることになり、これに連続するデータを読み出したい場合には、ＣＰＵ１１１は、アドレス信号で指定するアドレスを、前回指定したアドレスに所定のアドレス値だけ加算したものにする。ここで所定のアドレス値は、バースト転送における転送量によって決定されるものである。例えば、バースト転送によって３２ビット（４ワード）のデータを４バーストで読み出している場合は、所定のアドレス値は、１６（４ワード×４バースト）となる。
【００２４】
ＤＭＡＣ１１２は、バスマスタであり、ＣＰＵ１１１と同様に、内部バス１３０及びメモリインターフェース１００を介して、メモリ２０からデータを読み出す機能を有する。
メモリインターフェース１００は、メモリ２０からのデータの読み出しを制御するメモリ制御装置であり、ＣＰＵ１１１やＤＭＡＣ１１２からのデータの読み出し要求を内部バス１３０を介して受け取り、メモリ２０から外部バス１４０を介してデータを読み出してＣＰＵ１１１やＤＭＡＣ１１２に転送する機能を有する。
【００２５】
図２は、メモリインターフェース１００の詳細な機能構成を示した機能ブロック図である。
図２に示すようにメモリインターフェース１００は、転送要求解析回路１０１と、ステートカウンタ１０２と、データバッファ制御部１０３と、バーストップ制御部１０４とを含んで構成される。
【００２６】
転送要求解析回路１０１は、バスマスタたるＣＰＵ１１１あるいはＤＭＡＣ１１２からのリードアドレスと転送サイズとを含む読み出し要求を受け取り、当該読み出し要求で指定されるリードアドレスをメモリアドレスに変換し、変換したメモリアドレスと読み出し要求に含まれる転送サイズとを、ステートカウンタ１０２及びバーストストップ制御部１０４に供給する機能を有する。ここで、読み出し要求に含まれるリードアドレスは、バースト転送における読み出しの開始アドレスのことである。
【００２７】
バーストストップ制御部１０４は、バーストストップ設定部１０５を含み、バーストストップ設定部１０５が保持している情報に基づいて生成したバーストストップ要求をステートカウンタ１０２に伝達する機能を有する。バーストストップ制御部１０４は、読み出し要求の連続性が途切れたと判定した場合に、バーストストップ要求を生成する。読み出し要求の連続性が途切れた場合というのは、
（１）１つの読み出し要求がバスマスタから発行され、当該読み出し要求に基づくメモリ２０からバスマスタへのデータ転送がなされた後に、その次に来た読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとのアドレス値の差分が所定範囲内に収まっていない場合と、
（２）１つの読み出し要求がバスマスタから発行され、当該読み出し要求に基づくメモリ２０からバスマスタへのデータ転送がなされた後、所定時間内に新たな読み出し要求を受け取らなかった場合
のことをいう。
【００２８】
バーストストップ設定部１０５はバーストストップ制御部１０４が上述の条件を判定するための各種の情報を保持するものであり、アドレス連続判定情報１５１と、要求中断サイクル情報１５２と、要求中断基準情報１５３とを保持している。
【００２９】
アドレス連続判定情報１５１は、２つの連続する読み出し要求で指定されるそれぞれのリードアドレスの連続性を判定するための情報であり、予め定められたアドレス値である。バーストストップ制御部１０４は、今回の読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとの差分値が、アドレス連続判定情報１５１で定められるアドレス値以下である場合に２つの読み出し要求が連続していると判定し、多い場合には２つの読み出し要求が連続していないと判定してバーストストップ要求をステートカウンタ１０２に伝達することになる。例えば、１具体例を示すと、仮にアドレス連続判定情報１５１で示されるアドレス値が「３２番地（１６進数表記で０ｘ２０番地）」で、前回の読み出し要求で指定されるリードアドレスが、「１０００番地」であったとする。そして、今回来た読み出し要求で指定されるリードアドレスが、「１０３２番地」であったとすれば、２つの読み出し要求は連続していると判定され、今回来た読み出し要求で指定されるリードアドレスが、「１０６４番地」であったとすれば、２つの読み出し要求は連続していなないと判定される。ここで、アドレス連続判定情報１５１のアドレス値を「３２番地」とするのは、バスマスタからのアクセスが３２ビット（４ワード）で８バーストとして計算した（４ワード×８バースト＝３２番地）場合の一例である。
【００３０】
要求中断サイクル情報１５２は、上述の（２）の条件における所定時間を定めた情報であり、ここでは、メモリインターフェース１００の動作クロックのサイクル数で定められており、例えば、「４００サイクル」などと設定される。４００サイクルとは、ＣＰＵの周波数を４００ＭＨｚで、１サイクル秒までカウントした一例である。
【００３１】
要求中断基準情報１５３は、上述の要求中断サイクル情報１５２で定めるサイクル数をカウントし始めるタイミングを定義する情報である。バーストストップ制御部１０４は、要求中断基準情報１５３で定められる状態になったときに、要求中断サイクル情報１５２で定められるサイクル数のカウントを開始し、メモリインターフェース１００が新たな読み出し要求を受け付けることなく、当該サイクル数のカウントを終えるとバーストストップ要求を生成する。ここでは、要求中断基準情報１５３で定められるタイミングは、読み出し要求に対するデータをバスマスタに転送し終えたタイミングとする。
【００３２】
バーストストップ設定部１０５に保持されている各情報は、図３に示されるように、内部バス１３０を介して、ＣＰＵ１１１により、データ転送を実行する前に予め設定される。この場合、バーストストップ設定部１０５は、フリップフロップ、ＳＲＡＭなどの書き込み可能な記憶デバイスにより実現される。
【００３３】
図２に戻って、ステートカウンタ１０２は、転送要求解析回路１０１から供給されたメモリアドレスと転送サイズを含む読み出し要求に応じて、転送制御信号出力回路１０６にステート情報とメモリアドレスとを供給する機能を有する。ステート情報とは、アクセス開始、チャージ時間中、データ読み出し開始などの情報のいずれかの情報を含む。また、ステートカウンタ１０２は、バーストストップ制御部１０４から、バーストストップ要求を受け付けた場合に、転送制御信号出力回路１０６にバーストストップを示すステート情報を伝達する機能も有する。
【００３４】
データバッファ制御部１０３は、外部データバス１４２を介してメモリ２０から受け取ったデータを格納しておき、ステートカウンタ１０２から受け取ったバッファリード要求に基づき、当該バッファリード要求で示されるアドレスに対応するリードデータを内部バス１３０を介してバスマスタに転送する機能を有する。データバッファ制御部１０３には、読み出し速度がメモリ２０からの読み出し速度よりも高速なものを使用することとする。
【００３５】
転送制御信号出力回路１０６は、ステートカウンタ１０２から受け取ったステート情報に基づき、バースト転送制御信号を外部転送制御信号バス１４１を介してメモリ２０に出力する機能と、データ読み出しを行なう場合に、そのアドレスを外部アドレスバス１４０を介して出力する機能を有する。転送制御信号出力回路１０６は、ステート情報がアクセス開始を示す場合に、メモリ２０の指定されたメモリアドレスに対するアクセスを開始する。転送制御信号出力回路１０６は、ステート情報がデータ読み出し開始を示す場合に、指定されたメモリアドレスを読み出し開始アドレスとして、それ以降のアドレスに格納されているデータを順次外部データバス１４２に出力させる。このとき、転送制御信号出力回路１０６は、バーストストップを示すステート情報を受け付けるまで、メモリアドレス値を１ずつ加算しながらメモリ２０にデータの出力を要求していくことにより、読み出し要求により指定されるデータ以降のデータをメモリ２０から順次出力させる。転送制御信号出力回路１０６は、ステート情報がバーストストップを示す場合に、データの外部データバス１４２への出力を停止させる。
【００３６】
図１に戻って、メモリ２０は、ＮＯＲ型フラッシュメモリであり、メモリインターフェース１００の制御のもと、指定されたアドレスのデータを順次外部データバス１４２に出力する機能と、メモリインターフェース１００からのバーストストップ信号に基づきデータの出力を停止する機能とを有する。
＜動作＞
まず、メモリインターフェース１００の基本的動作を図４に示すフローチャートを用いて説明し、その後に、当該フローチャートに従って動作する場合のデータ転送の具体例を説明する。
【００３７】
図４に示すフローチャートは、１つの読み出し要求をバスマスタから受け付けた場合のメモリインターフェース１００の動作を示すフローチャートである。
メモリインターフェース１００は、バスマスタから新たな読み出し要求を受け付ける（ステップＳ４０１）。
【００３８】
すると、転送要求解析回路１０１は、受け付けた読み出し要求を解析し、そのリードアドレスをメモリアドレスに変換して、当該メモリアドレスと転送サイズとを含む読み出し要求をバーストストップ制御部１０４とステートカウンタ１０２とに供給する。
【００３９】
バーストストップ制御部１０４は、メモリインターフェース１００がメモリ２０からデータの読み出し中であるかどうかを、転送制御信号出力回路１０６が最後にメモリ２０に出力した制御信号が読み出し開始の信号であるか、バーストストップ信号であるかに基づいて判定する（ステップＳ４０２）。
【００４０】
メモリインターフェース１００がメモリ２０からデータの読み出し中である場合、即ち、転送制御信号出力回路１０６が最後にメモリ２０に出力した制御信号が読み出し開始の信号である場合には（ステップＳ４０２のＹＥＳ）、バーストストップ制御部１０４は、受け付けた読み出し要求で指定されるリードアドレスと、前回受け付けた読み出し要求で指定されるリードアドレスとの差分が、アドレス連続判定情報１５１で指定されるアドレス値内に収まっているかどうかを判定する（ステップＳ４０３）。これにより、２つの読み出し要求のリードアドレスが連続しているかどうかを判定する。データが読み出し中でない場合には（ステップＳ４０２のＮＯ）、ステップＳ４０５に移行する。
【００４１】
アドレス値内に収まっている場合には（ステップＳ４０３のＹＥＳ）、供給された読み出し要求をそのままステートカウンタ１０２に転送する。ステートカウンタ１０２は、転送要求解析回路１０１と、バーストストップ制御部１０４とから読み出し要求を受け付けた場合には、メモリアドレスと、転送サイズとを含む信号をデータバッファ制御部１０３に伝達する。そして、データバッファ制御部１０３は、保持しているデータの中から指定されたメモリアドレスに対応するデータを転送サイズ分だけ内部バス１３０に出力する。なお、メモリアドレスに対応するデータを保持していなかった場合には、外部データバス１４２に該当するデータが出力されるのを待ち、当該データを取得してから、内部バス１３０に出力する（ステップＳ４０７）。
【００４２】
アドレス値内に収まっていなかった場合には（ステップＳ４０３のＮＯ）、バーストストップ制御部１０４は、ステートカウンタ１０２にバーストストップ要求を出力する。
ステートカウンタ１０２は、転送要求解析回路１０１から読み出し要求を、バーストストップ制御部１０４からバーストストップ要求を受け付けた場合には、まず、バーストストップを示すステート情報を含む信号を転送制御信号出力回路１０６に伝達する。転送制御信号出力回路１０６は、受け付けた信号のステート情報がバーストストップを示すことから、バーストストップ信号をメモリ２０に出力し、外部データバス１４２へのデータの出力を停止させる（ステップＳ４０４）。
【００４３】
次にステートカウンタ１０２は、転送要求解析回路１０１から受け付けた読み出し要求に基づき、アクセス開始を示すステート情報と、メモリアドレスと、転送サイズとを含む読み出し要求を転送制御信号出力回路１０６に伝達し、転送制御信号出力回路１０６は、メモリ２０にメモリアドレスで指定されるアドレスへのアクセスを開始する（ステップＳ４０５）。
【００４４】
そして、チャージ時間が経過すると、転送制御信号出力回路１０６は、メモリ２０に対して、指定したメモリアドレスを読み出し開始アドレスとして、アドレス順に格納されているデータの外部データバス１４２への出力を指示する（ステップＳ４０６）。
【００４５】
データバッファ制御部１０３は、外部データバス１４２に出力されたデータであって、受け付けた読み出し要求で指定されるデータを取得し、内部バス１３０に出力する（ステップＳ４０７）。バスマスタは、内部バス１３０に出力されたデータを受け取る。
【００４６】
バーストストップ制御部１０４は、要求中断基準情報１５３に示されるタイミングの情報に基づき、データバッファ制御部１０３が内部バス１０３にデータを出力したことをトリガに、要求中断サイクル情報で示されるサイクル数のカウントを開始する（ステップＳ４０８）。
【００４７】
当該サイクル数のカウント中に、新たな読み出し要求を受け付けた場合には（ステップＳ４０８のＮＯ、ステップＳ４０９のＹＥＳ）、ステップＳ４０２に移行する。
新たな読み出し要求を受け付けることなくサイクル数のカウントを終えた場合には（ステップＳ４０８のＹＥＳ）、バーストストップ制御部１０４は、バーストストップ要求をステートカウンタ１０２に伝達し、ステートカウンタ１０２から出力されるバーストストップを示すステート情報を含む信号を受け付けた転送制御信号出力回路１０６がメモリ２０に対して外部データバス１４２へのデータの出力を停止させて（ステップＳ４１０）、処理を終了する。
【００４８】
以上が、読み出し要求を受け付けたときのメモリインターフェース１００の動作である。
ここから、図４に示すフローチャートに従ってメモリインターフェース１００が動作した場合のデータ転送のタイミングの具体例を、図５から図７を用いて説明する。
【００４９】
図５から図７で示されるバースト転送においては、理解しやすくするために、バスマスタから発行されるリードアドレスと、メモリインターフェース１００から発行されるメモリアドレスとは、同じものとして記載している。当該アドレスはここでは、「Ａ０」、「Ａ１」・・・と、Ａに番号を付した形で表現するものとし、番号が異なればアドレスが異なるものとする。なお、アドレスはメモリ２０においてこの番号順にアドレスが設定されているものとする。
【００５０】
転送するデータについては、「Ｄ０」、「Ｄ１」・・・と、Ｄに番号を付した形で表現するものとする。当該データの番号はそれぞれアドレスの番号と対応する。つまり、アドレス「Ａ２」に対応するリードデータは「Ｄ２」となる。
【００５１】
また、バースト転送の転送サイズを４アドレス分のデータとする。つまり、メモリインターフェースは、バスマスタからアドレス「Ａ０」を読み出し開始アドレスとして指定された場合には、データ「Ｄ０」〜「Ｄ３」までをバースト転送する。
【００５２】
そして、アドレス連続判定情報１５１には、１２番地という情報が設定され、要求中断サイクル情報１５２には、４クロック分という情報が設定され、要求中断基準情報１５３には、読み出し要求に対応するリードデータを転送し終えてからという情報が設定されているとする。
【００５３】
また、図５〜図７においては、データの読み出しが実行されていない状態からの説明を行うものとする。
上記条件の下で、メモリインターフェース１００の動作の具体例を説明する。
【００５４】
図５は、本発明に係るバースト転送のデータ転送例を示す図である。図５の上４つの信号は、バスマスタ−メモリインターフェース１００間でやり取りされる信号を示しており、下５つの信号は、メモリインターフェース１００−メモリ２０間でやり取りされる信号を示している。内部クロック及び外部クロックはそれぞれ動作クロックを示しており、ここでは同一の周期に設定されているものとする。内部バス（リクエスト）は、バスマスタからのメモリインターフェース１００に対して発行された読み出し要求を示しており、ハイ（high）になっているタイミングが読み出し要求が発行されているタイミングを示す。内部バス（アドレス）は、バスマスタから発行された、バスマスタが読み出したいデータのアドレスを示すものであり、各アドレスが発行されているタイミングを示す。内部バス（データ）は、メモリインターフェース１００からバスマスタに対して転送されているデータとそのタイミングを示す。外部アドレスバスは、メモリインターフェース１００からメモリ２０に対して発行したアドレスとそのタイミングを示す。外部データバスは、メモリ２０からメモリインターフェースに対して外部データバス１４２に出力されたデータとそのタイミングを示す。転送ＡＣＫ信号は、転送が実行されていることを通知するための信号であり、ハイ（high）になっているタイミングではデータ転送が実行されていないことを示す。バーストストップ信号は、メモリインターフェース１００からメモリ２０に対して発行されるバーストストップ信号を示しており、メモリ２０はバーストストップ信号がハイ(high)になったことを検出すると外部データバス１４２へのデータの出力を中止する。
【００５５】
図５に示すデータ転送例では、データの読み出しを継続して、２回目以降の連続するアドレスへの読み出し要求が来た場合にチャージ時間の発生を抑制できていることを示し、また、新たな読み出し要求で示されるリードアドレスが前回の読み出し要求で示されるリードアドレスとの差分がアドレス連続判定情報１５１で示されるアドレス値よりも大きかった場合を示す。
【００５６】
メモリインターフェース１００は、時刻Ｔ５００に、バスマスタからアドレスＡ０を読み出し開始アドレスとする読み出し要求を受け付ける。
当該読み出し要求を受け付けて、メモリインターフェース１００は、時刻Ｔ５００の半クロック後の時刻Ｔ５０１にメモリ２０のアドレスＡ０に対してのアクセスを開始する。
【００５７】
すると、時刻Ｔ５０１〜時刻Ｔ５０２までの間で示されるチャージ時間が経過した後に、外部データバス１４２には、リードアドレスＡ０を読み出し開始アドレスとするデータ、すなわちデータＤ０、Ｄ１、・・・が出力され始める。
【００５８】
時刻Ｔ５０３においてバースト転送の転送サイズ分のデータＤ０〜Ｄ３が外部データバスに出力された後も、メモリ２０は、バーストストップ信号を受け付けていないので後続するデータ（Ｄ４、Ｄ５、・・・）を外部データバスに出力し続ける。
【００５９】
一方、リードアドレスＡ０を読み出し開始アドレスとするバースト転送単位分のデータＤ０〜Ｄ３を時刻Ｔ５０４に受け付け終えると、バスマスタは次の読み出し要求を発行し、メモリインターフェース１００は、時刻Ｔ５０５にリードアドレスＡ４を読み出し開始アドレスとするデータの読み出し要求を受け付ける。
【００６０】
この時点でアドレスＡ４に対応するデータＤ４は、既にデータバッファ制御部に蓄積されているので、次のクロックの時刻Ｔ５０６には、データＤ４からの転送サイズ分のデータが内部バス１３０に出力され始める。
【００６１】
時刻Ｔ５０７において、データＤ４を受け取ったバスマスタは、次のアドレスＡ８を読み出し開始アドレスとする読み出し要求をメモリインターフェース１００に発行する。
これを受けて、メモリインターフェース１００は、時刻Ｔ５０９から、アドレスＡ８に対応するデータＤ８以降のデータを内部バス１３０に出力する。
【００６２】
時刻Ｔ５１０でデータＤ１１を受け取ったバスマスタは次に、リードアドレスがＡ１００である読み出し要求をメモリインターフェース１００に発行する。
当該読み出し要求を受け付けたメモリインターフェース１００は、そのリードアドレスから、前回の読み出し要求のリードアドレスＡ８を減算して、その差分値９２が、アドレス連続判定情報１５１に定められている１２番地よりも大きいことから、その連続性が途切れたと判断し、時刻５１２においてバーストストップ信号をメモリ２０に発行して、時刻Ｔ５０２から継続していた読み出しを中止し、時刻Ｔ５１３から新たにアドレスＡ１００を読み出し開始アドレスとするアクセスを実行する。この場合、再び時刻Ｔ５１３〜時刻Ｔ５１４に示されるようにチャージ時間が発生する。
【００６３】
図５に示されるように、メモリインターフェース１００がメモリ２０からの読み出しを継続することによって、従来であれば、時刻Ｔ５０５の読み出し要求や、時刻Ｔ５０８の読み出し要求に対して発生していたチャージ時間を抑制できている。
【００６４】
図６に示すデータ転送例では、最後のデータ転送から所定時間経過した場合を示す。
図６に示すデータ転送例のうち、時刻Ｔ５１０までは、図５に示した状態に共通するのでそこまでの経緯についてはここでは説明を割愛する。
【００６５】
時刻Ｔ５１０でアドレスＡ８に対応するデータをバスマスタに転送し終えたメモリインターフェース１００のバーストストップ制御部は、要求中断サイクル情報１５２に示されるサイクル数のカウントを開始する。
【００６６】
そして、時刻Ｔ６１１までに、新たな読み出し要求を受け付けることなく、要求中断サイクル情報１５２に示される４クロックのサイクルが経過すると、バーストストップ制御部１０４は、バーストストップ要求を生成し、これにより、転送制御信号出力回路１０６からバーストストップ信号が時刻Ｔ６１２において出力され、データＤ１８までのデータを読み出した時点で、時刻Ｔ５０２から継続して行なっていたデータの読み出しを中止する。そして、この時点で、データバッファ制御部１０３は、保持していたデータを破棄する。
【００６７】
図６の場合、読み出したデータＤ１２〜Ｄ１８は、結果的に無駄になっているが、Ｔ５１０〜Ｔ６１１までの４クロックのサイクルのカウントを行なって、バーストストップを行なうことにより、無駄なデータの読み出しが多くなることを防いでいる。
【００６８】
図７に示すデータ転送例では、新たな読み出し要求で示されるリードアドレスが、前回の読み出し要求で示されるリードアドレスとの差分がアドレス連続判定情報１５１で示されるアドレス値よりも小さい場合であって、まだ、データがデータバッファ制御部１０３に蓄積されていない場合を示す。
【００６９】
図７に示すデータ転送例のうち、時刻Ｔ５１０までは、図５に示した状態に共通するのでそこまでの経緯についてはここでは説明を割愛する。
時刻Ｔ５１０において、バスマスタにアドレスＡ８に対応するデータを転送し終えたメモリインターフェース１００は、そこから、要求中断サイクル情報１５２に示される４クロックのサイクルのカウントを開始するが、当該カウントを終える前に、メモリインターフェース１００は、バスマスタからの新たな読み出し要求を時刻Ｔ７１１に受け付ける。時刻Ｔ７１１で受け付けた読み出し要求のリードアドレスＡ１９は、前回の読み出し要求のリードアドレスＡ８との差分が１１であり、アドレス連続判定情報１５１に定められているアドレス値の範囲内に収まっていることから、時刻Ｔ７１１の読み出し要求は、連続していると判定される。
【００７０】
しかしながら、時刻Ｔ７１１の時点においては、まだ、リードアドレスＡ１９に対応するデータＤ１９はメモリ２０から読み出されていない。
そこで、メモリインターフェース１００は、アドレス値を１ずつ加算しての読み出しを継続し、時刻Ｔ７１２において、データＤ１９が読み出されるので、時刻Ｔ７１３からバスマスタに読み出し要求Ａ１９に対応するデータＤ１９が転送され始める。
【００７１】
アドレス連続判定情報１５１のアドレス値を単純に転送サイズの次のアドレスとの差分値となる４番地よりも長めに設定することにより、読み出しを継続した方が、新たにアクセスを開始してチャージ時間を発生させるよりも、アクセス時間を短縮することができる。
【００７２】
図８には、本発明に係るデータ転送のタイミングとの差異を明確にするために、従来のバースト転送におけるデータ転送のタイミングの具体例を示す。なお、図８に示す従来例においても、チャージ時間は４クロックかかり、バースト転送の転送サイズも４アドレス分のデータであるとする。
【００７３】
図８に示されるように、時刻Ｔ８００において、アドレスＡ０からの読み出し要求を受け付けると、メモリインターフェースは、メモリへのアクセスを開始し、時刻Ｔ８０１〜時刻Ｔ８０２のチャージ時間を経て、時刻Ｔ８０２からメモリインターフェースはメモリからのデータの読み出しを開始する。時刻Ｔ８０３において、メモリインターフェースはバースト転送単位分のメモリからのデータの読み出しを終了し、時刻Ｔ８０４において、メモリインターフェースからバスマスタへのデータの転送が完了する。
【００７４】
そして、時刻Ｔ８０５において、新たな読み出し要求を受け付けると、時刻Ｔ８００〜Ｔ８０４までと同じ手順を踏んで、時刻Ｔ８０５の読み出し要求で指定されるデータの読み出しを、時刻Ｔ８０５〜時刻Ｔ８０９にかけて行なう。これは時刻Ｔ８１０において受け付けた読み出し要求においても同様である。
【００７５】
図８に示すように、従来であれば、アドレスＡ０、Ａ４、Ａ８をリードアドレスとする３つの読み出し要求を連続して受け付けた場合には、図８において都合２９クロックかかり、チャージ時間が３回（時刻Ｔ８０１〜時刻Ｔ８０２と、時刻Ｔ８０６〜時刻Ｔ８０８と、時刻Ｔ８１１〜時刻Ｔ８１２の３回）発生している。
【００７６】
対して、図５にあるように、本実施の形態に係るメモリインターフェース１００の場合、アドレスＡ０、Ａ４、Ａ８をリードアドレスとする３つの読み出し要求を連続して受け付けた場合には、図５において、都合２０クロックかかり、チャージ時間が１回のみ（時刻Ｔ５０２〜時刻Ｔ５０３）発生している。このことから、本実施の形態に係るメモリインターフェース１００は、バスマスタの所望のデータを確実に転送しつつ、チャージ時間を削減して、アクセス時間の短縮を実現していると言える。
【００７７】
また、図７に示す時刻Ｔ７１１におけるアドレスＡ１９に対する読み出し要求に対して、データＤ２２のデータ転送を終えるまでかかった時間は、都合６クロックかかっているが、これは従来の１の読み出し要求に対して発生する時間、例えば、図８を例にすると、時刻Ｔ８００の読み出し要求を受け付けてから、データＤ３を転送し終えた時刻Ｔ８０４までの９クロックよりも短縮されている。
＜まとめ＞
本発明に係るメモリインターフェースは、バスマスタから発行された１つの読み出し要求に対応するデータをメモリから読み出してバスマスタに転送した後にも、当該読み出し要求で転送したデータのアドレスに後続するアドレスにあるデータ以降の読み出しを継続する。当該読み出しの継続はメモリインターフェース１００が指定するアドレス値を１ずつ加算してそのたびに対応するデータを読み出すことで行なわれる。そして、新たな読み出し要求が来た場合に、当該新たな読み出し要求で指定されるリードアドレスと、前回の読み出し要求で指定されるリードアドレスとの差分が所定範囲内に収まっている場合に、メモリインターフェースがバスマスタからの要求なく自主的に読み出していたデータを転送する。この場合、メモリインターフェースは、新たな読み出し要求で指定されるリードアドレスに基づく読み出しの設定をメモリに対して行なわないので、チャージ時間が発生することはない。これにより、２つの連続する読み出し要求が上述の条件を満たす場合に、一定時間内において発生するバスマスタからの読み出し要求に対して発生するチャージ時間の発生回数を抑制することができる。また、チャージ時間の発生回数を抑制することにより、メモリアクセスの時間が短縮されることになるので、消費電力の削減にもつながる。
【００７８】
近年、例えば、携帯電話機や、デジタルテレビ、ＢＤ(Blu-ray Disc)レコーダといったデジタル家電においては、高性能化・多機能化によって、プログラムとデータを格納するＮＯＲ型フラッシュＲＯＭに要求される動作クロックも年々高速化している。更に、ＣＰＵの高性能化も進んでおり、キャッシュのタ印サイズの増加により、従来の固定サイズのバーストアクセスでは、数回に分けないとライン分のデータを読み出せなくなってきている。即ち、従来では、ライン分のデータを読み出すにあたって、この数回分のチャージ時間が発生することになる。
【００７９】
そのため、本発明に係るメモリインターフェース１００を、図１０に示すように、例えばシステムＬＳＩ（Large Scale Integrated circuit）１０００として実現し、当該システムＬＳＩ１０００を回路基板１００１に設置し、当該回路基板１００１を、例えば、携帯電話機１００２、ＤＶＤ(Digital Versatile Disc)プレーヤやＢＤレコーダなどに代表される放送受信装置／蓄積再生装置１００３、デジタルテレビ１００４、自動車１００６に搭載されるカーナビに代表される車載端末１００５など各種のデジタル家電に搭載すると効果的である。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施の形態がこれに限られないことは勿論である。以下、上記実施の形態以外に本発明の思想として含まれる各種の変形例について説明する。
（１）上記実施の形態においては、メモリ２０は、コンピュータシステム１０のメモリインターフェース１００に対して着脱可能であるとしたが、メモリ２０は、メモリインターフェース１００によってデータの読み出しが行なわれるものであればよく、メモリ２０は、コンピュータシステム１００の内部に予め備え付けられていたものであってもよい。
（２）上記実施の形態においては、メモリ２０からのデータの読み出しについてのみ記載したが、バスマスタたるＣＰＵ１１１やＤＭＡＣ１１２は書き込み要求を書き込むべきデータとともにメモリインタフェース１００に転送する機能を有し、メモリインターフェース１００は、指定されたデータをメモリ２０に書き込む機能を有していてもよい。
（３）上記実施の形態においては、バーストストップ設定部１０５をバーストストップ制御部１０４内に設けるように構成したが、バーストストップ制御部１０４は、バーストストップ設定部１０５内の情報を読み出す機能があればよく、バーストストップ制御部１０４外にバーストストップ設定部１０５を設けてもよい。
（４）上記実施の形態においては、バーストストップ設定部１０５に設定されている情報はＣＰＵ１１１により設定されることとしたが、これは、ＣＰＵ１１１以外から設定されてもよい。
【００８０】
例えば、図９（ａ）に示すように、コンピュータシステム１０は、バーストストップ設定部１０５として、保持すべき各種の情報を記憶している不揮発デバイス１６０を備えてもよい。この構成は、接続するメモリ２０の種別が予め決まっており、バーストストップ信号発生タイミングの変更がない場合に、コスト的にも有利になると言える。
【００８１】
あるいは、図９（ｂ）に示すように、ジャンパピン、ディップスイッチなどにより実現される外部スイッチ１７０からバーストストップ設定部１０５が保持する各情報を設定してもよい。この構成はソフトウェアの変更なしで、バーストストップ設定部１０５が保持する情報の内容の変更が可能である。
（５）上記実施の形態においては、要求中断基準情報１５３で定められるタイミングは、読み出し要求で指定されるデータをバスマスタに転送し終えたタイミングとしたが、当該タイミングはこれに限定されるものではない。要求中断基準情報１５３は、上記実施の形態において、要求中断サイクル情報１５２で定められるサイクル数のカウントを開始するためのトリガとなる状態を規定するものであればよく、例えば、バスマスタから読み出し要求を受け付けたタイミングや、最初の読み出し要求のリードデータを転送し始めたタイミングなどであってもよい。なお、それぞれの定めたタイミングに応じて、チャージ時間や動作クロックを考慮して、要求中断サイクル情報１５２で定めるサイクル数を調節する必要がある。
（６）上記実施の形態においては、メモリ２０は、ＮＯＲ型フラッシュメモリであるとしたが、メモリ２０は、バースト転送機能を有し、データの読み出しにチャージ時間が発生するタイプのものであれば、ＮＯＲ型フラッシュメモリでなくともよい。
（７）上記実施の形態においては、特に記載しなかったが、バスマスタは、更に、最初の読み出し要求の段階において、メモリインターフェース１００に対して、バーストストップ信号を生成するタイミングを規定する情報も送信してもよい。
【００８２】
例えば、バスマスタは、読み出し要求を発行する際に、その後でアドレスが連続する回数を通知する構成をとってもよい。そして、メモリインターフェース１００は、当該回数の分だけ、データの順次読み出しを継続した後に、バーストストップ信号を生成して読み出しの継続を中止してもよい。
【００８３】
これにより、読み出し要求の対象外となるデータの読み出し（図６で言えば、データＤ１２〜Ｄ１８）を削減することができる。
（８）上記実施の形態においては、メモリインターフェース１００が、バスマスタからの要求なく、自身で読み出したデータについて、新たな読み出し要求が所定時間経過しても来なかった場合や、受け付けた新たな読み出し要求で指定されるリードアドレスが前回の読み出し要求で指定されるリードアドレスとの差分がアドレス連続判定情報で示されるアドレス値よりも大きかった場合は、読み出したデータを破棄することとした。
【００８４】
しかしながら、この読み出したデータを破棄することなく利用することとしてもよい。例えば、データバッファ制御部１０３は、バーストストップ信号が転送制御信号出力回路１０６から出力されたことをトリガに、その時点で保持していたデータであって、読み出し対象外となったデータを前回読み出し要求を発行したバスマスタに出力することとしてもよい。
【００８５】
そして、メモリインターフェース１００が出力したデータを受け取ったバスマスタは、当該データをキャッシュの普段使われないラインに格納しておき、当該バスマスタがそのデータを利用するタイミングでメモリインターフェース１００に読み出し要求を出力することなく、当該キャッシュからデータを読み出して利用してもよい。
（９）上記実施の形態においては、新たな読み出し要求と前回の読み出し要求とのそれぞれで指定されるリードアドレスの差分がアドレス連続判定情報１５１で示されるアドレス値内に収まるかどうかを判定した。しかし、連続で読み出し続けることにより、図７において示したように、新たな読み出し要求のリードアドレスと、実際に読み出しているデータの格納されていたアドレスとの差分が縮まることがある。これは、図７の場合でいえば、時刻Ｔ５０５や時刻Ｔ５０８において、バスマスタからの読み出し要求を受け付けていた間にもメモリ２０からデータを読み出し続けていたことに起因している。
【００８６】
そこで、上記実施の形態において示した構成に更に、以下のような構成を加えてもよい。即ち、新たな読み出し要求を受け付けた時点において、その時点で継続して読み出し、データバッファ制御部１０３が蓄積しているデータのうち、そのアドレスが最も大きいものとの差分が所定の番地内であるかを、図４のステップＳ４０３の前段において判定してもよい。そして、当該判定が肯定的な場合には、読み出しを中止せずに継続させて、読み出しを継続することによって得られたデータをデータバッファ制御部１０３が転送することとしてもよい。なお、当該所定の番地は、チャージ時間分を使ってデータを読み出したとした場合に、読み出しうるデータのアドレス分に相当する。
【００８７】
そして、このときには、アドレス連続判定情報１５１は、上記実施の形態の図７に示したデータ転送を実現するために余裕を持たせていたアドレス値を、単純にバースト転送の転送サイズ分のアドレス値（図５〜図７の例で言えば、４アドレス）に設定できる。
（１０）上記実施の形態においては、データバッファ制御部１０３は、メモリインターフェース１００がメモリ２０に対してバーストストップ信号を発行すると、保持していたデータを破棄することとしたが、これは、破棄せずに残しておいてもよい。
【００８８】
この場合、新たな読み出し要求に対するデータを外部データバス１４２から取得すると、これまでに保持していたデータのうち、古いもののから上書きすることとしてよい。また、新たな読み出し要求に対するデータを、データバッファ制御部１０３が既に保持していた場合には、メモリ２０からデータを読み出さずにそのままデータバッファ制御部１０３が保持していたデータを内部バス１３０に出力することとしてもよい。
（１１）上記実施の形態におけるメモリインターフェース１００の各機能部は、１または複数のＬＳＩによって実現されてもよく、複数の機能部が１のＬＳＩにより実現されてもよい。
【００８９】
また、集積化の手法としてはＬＳＩに限定されるものではなく、専用回路または汎用プロセッサで実現することとしてもよい。さらには、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンイギュラブル・プロセッサを利用してもよい。また、半導体技術の進歩又は派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
（１２）上述の実施形態で示したバースト転送に係る動作、バースト転送を継続、中止する処理等を、コンピュータシステムのプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
【産業上の利用可能性】
【００９０】
本発明は、チャージ時間を短縮することにより、メモリからのデータの読み出しを高速化することができるメモリ制御装置であって、例えば、携帯電話機、デジタルＴＶ、ＢＤレコーダ、ＤＶＤレコーダなど、各種デジタル家電に有用である。
【符号の説明】
【００９１】
１０  コンピュータシステム（データプロセッサ）
２０  メモリ
１００  メモリインターフェース（メモリ制御装置）
１０１  転送要求解析回路
１０２  ステートカウンタ
１０３  データバッファ制御部
１０４  バーストストップ制御部
１０５  バーストストップ設定部
１０６  転送制御信号出力回路
１１１  ＣＰＵ（バスマスタ）
１１２  ＤＭＡＣ（バスマスタ）
１３０  内部バス
１４０  外部アドレスバス
１４１  外部転送制御信号バス
１４２  外部データバス
１６０  不揮発デバイス
１７０  外部スイッチ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すメモリ制御装置であって、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、
前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするメモリ制御装置。
【請求項２】
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合であって、前記蓄積手段がまだ前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとするデータを読み出していないときに、前記蓄積手段による当該データの読み出しを待って、読み出されたデータを前記バスマスタに転送する
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記メモリ制御装置は、更に、
前記判定手段が所定範囲内にないと判定した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記メモリ制御装置は、更に、
前記第１読み出し要求を受けてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項５】
前記メモリ制御装置は、更に、
前記転送手段が前記第１読み出し要求に対応するデータを前記バスマスタに転送し終えてから、前記バスマスタから新たな読み出し要求を受け付けることなく所定の時間が経過した場合に、前記蓄積手段によるデータの読み出しを中止させる中止手段を備える
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項６】
バスマスタと、バースト転送機能を有するメモリから前記バスマスタからの読み出し要求に対応するデータを読み出すメモリインターフェースとを備えたデータプロセッサであって、
前記メモリインターフェースは、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出し手段と、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積手段と、
前記読み出し手段が読み出したデータを前記バスマスタに転送する転送手段と、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定手段とを備え、
前記転送手段は、前記判定手段が前記所定の範囲内にあると判定した場合に、前記蓄積手段が読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするデータプロセッサ。
【請求項７】
バースト転送機能を有するメモリから、バスマスタからの読み出し要求に対応するデータを読み出すデータ読み出し方法であって、
前記バスマスタから発行された第１読み出し要求に基づいて読み出し命令を前記メモリに発行し、当該読み出し命令で指定される前記メモリのアドレスを読み出し開始アドレスとして所定単位のデータ量だけ前記メモリから読み出す読み出しステップと、
前記バスマスタからの前記第１読み出し要求に対応するデータを前記メモリから読み出した後に、当該データが格納されているアドレスに後続するアドレス以降のデータを順次読み出して蓄積する蓄積ステップと、
前記読み出しステップにおいて読み出したデータを前記バスマスタに転送する転送ステップと、
前記バスマスタから新たな第２読み出し要求を受け付けた場合に、当該第２読み出し要求により指定されるアドレスと、前記第１読み出し要求で指定されるアドレスとの差分が所定の範囲内にあるか否かを判定する判定ステップとを含み、
前記転送ステップは、前記判定ステップにおいて前記所定の範囲内にあると判定された場合に、前記蓄積ステップにおいて読み出した、前記第２読み出し要求により指定されるアドレスを読み出し開始アドレスとする所定単位のデータを前記バスマスタに転送する
ことを特徴とするデータ読み出し方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010061588.tif 000013
【図２】
2010061588.tif 000014
【図３】
2010061588.tif 000015
【図４】
2010061588.tif 000016
【図５】
2010061588.tif 000017
【図６】
2010061588.tif 000018
【図７】
2010061588.tif 000019
【図８】
2010061588.tif 000020
【図９】
2010061588.tif 000021
【図１０】
2010061588.tif 000022
【国際調査報告】
2010061588.tif 000023
2010061588.tif 000024