(57)【特許請求の範囲】
【請求項１】
アドレス情報が入力される端子と、所定の周期で変化するクロック信号が入力される端子と、リードコマンド又はライトコマンドが入力される端子と、前記リードコマンドに応じて、前記クロック信号が一方のレベルから他方のレベルへ変化する第１のタイミングで前記アドレス情報により特定されるアドレスに記憶されているデータを出力する端子と、前記ライトコマンドに応じて、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する第２のタイミングで前記アドレス情報により特定されるアドレスに記憶されるデータが入力される端子と、を有するメモリにデータの読み書きを行うメモリアクセス装置であって、
前記第１のタイミングで前記メモリからデータを出力させるために、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第１のタイミングの１周期前の第３のタイミングで、前記データのアドレス情報である読み出しアドレス情報、及び前記データを読み出すための読出しコマンドを出力するデータ読み出し部と、前記第２のタイミングで前記メモリへデータを書き込むために、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第２のタイミングの２周期前の第４のタイミングで前記データのアドレス情報である書き込みアドレス情報を出力し、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第２のタイミングの１周期前の第５のタイミングで、前記データ及び前記データを書き込むための書き込みコマンドを出力するデータ書き込み部と、を有するメモリアクセス要求装置と、
前記第４のタイミングで前記メモリアクセス要求装置から出力された前記書き込みアドレス情報を入力し、前記第５のタイミングで前記書き込みアドレス情報を出力するアドレスラッチ部と、
前記メモリアクセス要求装置から前記第３のタイミングで出力された前記読出しコマンドに応じて、当該第３のタイミングで、前記メモリに、リードコマンド及び前記メモリアクセス要求装置から出力された読み出しアドレス情報を出力する読み出し制御部と、前記メモリアクセス要求装置から前記第５のタイミングで出力された前記書き込みコマンドに応じて、当該第５のタイミングで、前記メモリに、ライトコマンド、前記アドレスラッチ部から出力された書き込みアドレス情報及び前記データを出力する書き込み制御部と、を有するメモリアクセス制御装置と、
を備え、
前記メモリアクセス要求装置から前記読み出しコマンド及び前記書き込みコマンドの両方が出力されている場合には、前記書き込み制御部は、前記ライトコマンド、前記アドレスラッチ部から出力された前記書き込みアドレス情報及び前記データを前記メモリに出力しない
ことを特徴とするメモリアクセス装置。
【請求項２】
請求項１に記載のメモリアクセス装置であって、
前記アドレスラッチ部から出力される書き込みアドレス情報を記憶するアドレス記憶部と、
前記メモリアクセス要求装置から出力されるデータを記憶するデータ記憶部と、
を備え、
前記メモリアクセス要求装置から前記読み出しコマンド及び前記書き込みコマンドの両方が出力されている場合には、前記書き込み制御部は、前記アドレスラッチ部から出力された書き込みアドレス情報を前記アドレス記憶部に記憶し、前記メモリアクセス要求装置から出力されたデータを前記データ記憶部に記憶する
ことを特徴とするメモリアクセス装置。
【請求項３】
請求項２に記載のメモリアクセス装置であって、
前記メモリアクセス要求装置から読み出しコマンド及び書き込みコマンドのいずれもが出力されていない場合には、前記書き込み制御部は、前記メモリにライトコマンドを出力すると共に、前記アドレス記憶部に記憶した書き込みアドレス情報、及び前記データ記憶部に記憶したデータを、前記メモリに出力する
ことを特徴とするメモリアクセス装置。
【請求項４】
請求項２に記載のメモリアクセス装置であって、
前記メモリアクセス要求装置から読み出しコマンドが出力されている場合において、前記メモリアクセス要求装置から出力された読み出しアドレス情報が、前記アドレス記憶部に記憶した書き込みアドレス情報と一致する場合には、前記読み出し制御部は、前記データ記憶部に記憶したデータを、前記メモリアクセス要求装置に出力する
ことを特徴とするメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセスの高速化を可能とするメモリアクセス装置に関する。
【背景技術】
【０００２】
近年、テレビやオーディオ機器などの様々な電気製品がディジタル制御化されている。そして技術の進歩と共に、これらの電気製品を構成する電子回路を制御するクロック信号の高速化が図られている。
【０００３】
またこのために、様々な技術が開発されている（例えば特許文献１参照）。
【特許文献１】特開２００２−６４３６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、クロック信号を高速化するためには、ＣＰＵ（Central Processing Unit）やメモリ、その他の電子回路が全体としてクロック信号の高速化に適応することが必要である。
【０００５】
図１０に示すメモリシステム１０１０を例に説明する。図１０に示すメモリシステム１０１０は、メモリ１１０と、ＤＳＰ（Digital Signal Processor）２１０と、リードライトコントローラ３１０と、アドレスラッチ部５００と、アドレスデコーダ４００と、クロック回路１２００を備える。
【０００６】
クロック回路１２００は、ＤＳＰ２１０とメモリ１１０とに入力されるクロック信号を出力する回路である。なお、メモリ１１０にはＤＳＰ２１０に入力されるクロック信号を反転したものが入力される。
【０００７】
ＤＳＰ２１０は、ＤＶＤプレーヤ等に広く用いられ、音楽データや画像データのディジタル処理を行うディジタル信号処理装置であり、メモリ１１０にデータを書き込んだり、メモリ１１０からデータを読み出したりする装置である。  
ＤＳＰ２１０は、”CLK”端子、”n_BDAA”端子、”XBDAWR”端子、”XBDARD”端子、”BDA_W”端子、”BDA_R”端子を有している。
【０００８】
”CLK”端子は、外部からのクロック信号を取り込む端子である。ＤＳＰ２１０は、このクロック信号の立ち上がりに同期してメモリ１１０へのアクセスのための制御を行う。”n_BDAA”端子は、メモリ１１０に記憶されるデータのアドレスを示すアドレス情報を出力する端子である。”XBDAWR”端子は、メモリ１１０へのデータの書き込みを指示するコマンド（書き込みコマンド）を出力する端子である。”XBDARD”端子は、メモリ１１０からのデータの読み出しを指示するコマンド（読み出しコマンド）を出力する端子である。”BDA_W”端子は、メモリ１１０への書き込みデータを出力する端子である。”BDA_R”端子は、メモリ１１０からの読み出しデータを取り込む端子である。
【０００９】
メモリ１１０は、”／CLK”端子、”A”端子、”CEN”端子、”WEN”端子、”D”端子、”Q”端子を有している。
【００１０】
”／CLK”端子は、外部からのクロック信号を取り込む端子である。図１０に示すように、メモリ１１０に入力されるクロック信号は、ＤＳＰ２１０に入力されるクロック信号が反転されたものである。メモリ１１０は、この”／CLK”端子に入力されるクロック信号の立ち上がりに同期してデータの書き込み又は読み出しの制御を行う。”A”端子は、メモリ１１０に記憶されるデータのアドレス情報が入力される端子である。”CEN”端子は、チップイネーブル信号が入力される端子である。”WEN”端子は、ライトイネーブル信号が入力される端子である。”D”端子は、メモリ１１０への書き込みデータが入力される端子である。”Q”端子はメモリ１１０からの読み出しデータが出力される端子である。
【００１１】
メモリ１１０は、”CEN”端子＝L、かつ、”WEN”端子＝Lの場合に、”／CLK”端子に入力されるクロック信号の立ち上がりのタイミングで、”D”端子に入力されているデータを、アドレス情報により特定されるアドレスへ書き込む。またメモリ１１０は、”CEN”端子＝L、かつ、”WEN”端子＝Hの場合に、”／CLK”端子に入力されるクロック信号の立ち上がりのタイミングで、アドレス情報により特定されるアドレスに記憶されているデータを”Q”端子から出力する。
【００１２】
アドレスラッチ部５００は、図示されていないが、ＤＳＰ２１０に入力されるクロック信号と同一のクロック信号が入力され、ＤＳＰ２１０から出力されたアドレス情報を取り込んで、クロック信号の１周期の間ラッチした後、メモリ１１０の”A”端子に出力する回路である。アドレスラッチ部５００を設けることにより、ＤＳＰ２１０によるメモリアクセスをパイプライン化することができる。メモリアクセスがパイプライン化されている様子を図１１に示す。メモリアクセスがパイプライン化されることによって、ＤＳＰ２１０は、メモリ１１０におけるデータの読み書き処理の完了を待たずに、クロック信号の立ち上がりのタイミング毎に次々とアドレス情報を出力することが可能となる。これにより高速なメモリアクセスを実現している。
【００１３】
アドレスデコーダ４００は、アドレスラッチ部５００に記憶されているアドレス情報をデコードしてリードライトコントローラ３１０に出力する回路である。  
リードライトコントローラ３１０は、ＤＳＰ２１０から出力される読み出しコマンドや書き込みコマンドに応じて、メモリ１１０へチップイネーブル信号やライトイネーブル信号を出力する回路である。
【００１４】
図１０に示すメモリシステム１０１０において、ＤＳＰ２１０がメモリ１１０からデータを読み出す場合のタイムチャートを図１２に示す。
【００１５】
上述したように、メモリシステム１０１０は、データ読み出しの高速化を実現するためにメモリアクセスをパイプライン化しているため、図１２に示すように、ＤＳＰ２１０は、アドレスラッチ部５００からアドレス情報がメモリ１１０に出力されるタイミングで、読み出しコマンドを出力している。つまりＤＳＰ２１０は、”n_BDAA”端子からアドレス情報を出力したクロック信号の立ち上がりのタイミングの次のタイミングで、”XBDARD”端子から読出しコマンドを出力する。
【００１６】
一方メモリ１１０においては、メモリ１１０の”／CLK”端子に入力されるクロック信号がＤＳＰ２１０に入力されるクロック信号と反転されているため、ＤＳＰ２１０が読み出しコマンドを出力したタイミングからから１／２サイクル後のタイミングで、メモリ１１０の”Q”端子に読み出しデータが出力される。そのため、ＤＳＰ２１０が読み出しコマンドを出力したタイミングからから１サイクル後のタイミングで、ＤＳＰ２１０は”BDA_R”端子から読み出しデータを取り込むことが可能なのである。
【００１７】
次に、図１０に示すメモリシステム１０１０において、メモリ１１０へデータを書き込む場合のタイムチャートを図１３に示す。
【００１８】
図１３に示すように、パイプライン制御のため、ＤＳＰ２１０は、アドレスラッチ部５００からアドレス情報がメモリ１１０に出力されるタイミングで、書き込みコマンドを出力する共に、”BDA_W”端子から書き込みデータを出力している。つまりＤＳＰ２１０は、”n_BDAA”端子からアドレス情報を出力したクロック信号の立ち上がりのタイミングの次のタイミングで、書き込みコマンド及び書き込みデータを出力する。
【００１９】
一方、メモリ１１０においては、メモリ１１０の”／CLK”端子に入力されるクロック信号がＤＳＰ２１０に入力されるクロック信号と反転されているため、ＤＳＰ２１０が書き込みコマンド及び書き込みデータを出力してから１／２サイクル後には、メモリ１１０の”D”端子に書き込みデータが取り込まれることになる。
【００２０】
このように、メモリシステム１０１０は、メモリアクセスのパイプライン化と、ＤＳＰ２１０に入力されるクロック信号を反転させたクロック信号をメモリ１１０に入力することにより、メモリアクセスの高速化を図っている。
【００２１】
しかしながら、データの読み出しの場合には、図１２に示すように、メモリ１１０の”Q”端子に読み出しデータが出力されてから、ＤＳＰ２１０の”BDA_R”端子にその読み出しデータが取り込まれるまでの時間はT1しかない。T1はおよそクロック信号の１／２周期程度である。また、データの書き込みの場合には、図１３に示すように、ＤＳＰ２１０の”BDA_W”端子に書き込みデータが出力されてからメモリ１１０の”D”端子にその書き込みデータが取り込まれるまでの時間はT3しかない。T3もおよそクロック信号の１／２周期程度である。
【００２２】
このことは、メモリシステム１０１０のクロック信号を高速化させることを妨げる要因となるのである。つまりクロック信号を高速化するにつれ、T1及びT3の値は小さくなってゆくが、クロック信号の高速化は、T1>0及びT3>0となる周波数の範囲内でしか行うことができない。そのため、T1やT3が小さいことはクロック信号の高速化を妨げ、メモリアクセスの高速化を妨げる要因となるのである。
【００２３】
本発明は上記課題を鑑みてなされたものであり、メモリアクセスの高速化を可能とするメモリアクセス装置を提供することを主たる目的とする。
【課題を解決するための手段】
【００２８】
上記課題を解決するために、本発明は、アドレス情報が入力される端子と、所定の周期で変化するクロック信号が入力される端子と、リードコマンド又はライトコマンドが入力される端子と、前記リードコマンドに応じて、前記クロック信号が一方のレベルから他方のレベルへ変化する第１のタイミングで前記アドレス情報により特定されるアドレスに記憶されているデータを出力する端子と、前記ライトコマンドに応じて、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する第２のタイミングで前記アドレス情報により特定されるアドレスに記憶されるデータが入力される端子と、を有するメモリにデータの読み書きを行うメモリアクセス装置であって、前記第１のタイミングで前記メモリからデータを出力させるために、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第１のタイミングの１周期前の第３のタイミングで、前記データのアドレス情報である読み出しアドレス情報、及び前記データを読み出すための読出しコマンドを出力するデータ読み出し部と、前記第２のタイミングで前記メモリへデータを書き込むために、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第２のタイミングの２周期前の第４のタイミングで前記データのアドレス情報である書き込みアドレス情報を出力し、前記クロック信号が前記一方のレベルから前記他方のレベルへ変化する前記第２のタイミングの１周期前の第５のタイミングで、前記データ及び前記データを書き込むための書き込みコマンドを出力するデータ書き込み部と、を有するメモリアクセス要求装置と、前記第４のタイミングで前記メモリアクセス要求装置から出力された前記書き込みアドレス情報を入力し、前記第５のタイミングで前記書き込みアドレス情報を出力するアドレスラッチ部と、前記メモリアクセス要求装置から前記第３のタイミングで出力された前記読出しコマンドに応じて、当該第３のタイミングで、前記メモリに、リードコマンド及び前記メモリアクセス要求装置から出力された読み出しアドレス情報を出力する読み出し制御部と、前記メモリアクセス要求装置から前記第５のタイミングで出力された前記書き込みコマンドに応じて、当該第５のタイミングで、前記メモリに、ライトコマンド、前記アドレスラッチ部から出力された書き込みアドレス情報及び前記データを出力する書き込み制御部と、を有するメモリアクセス制御装置と、を備え、前記メモリアクセス要求装置から前記読み出しコマンド及び前記書き込みコマンドの両方が出力されている場合には、前記書き込み制御部は、前記ライトコマンド、前記アドレスラッチ部から出力された前記書き込みアドレス情報及び前記データを前記メモリに出力しないことを特徴とするメモリアクセス装置に関する。
【００２９】
このように、メモリアクセス装置によって、メモリアクセス要求装置から読み出しコマンドと書き込みコマンドとの両方が出力されていることが検知された場合には、メモリからのデータの読み出しのタイミング（第１のタイミング）とメモリへのデータの書き込みのタイミング（第２のタイミング）とが同時であることを事前に検知することができる。そしてその場合には、本発明のメモリアクセス装置は、メモリへのデータの書き込みは行わず、メモリからのデータの読み出しを行うようにする。このように、データの読み出しを優先することによって、遅延なくデータの読み出しを行うことが可能となる。そしてこれにより、メモリシステム全体のデータ処理の高速化を図ることが可能となる。
【００３０】
また前記メモリアクセス装置は、前記アドレスラッチ部から出力される書き込みアドレス情報を記憶するアドレス記憶部と、前記メモリアクセス要求装置から出力されるデータを記憶するデータ記憶部と、を備え、前記メモリアクセス要求装置から前記読み出しコマンド及び前記書き込みコマンドの両方が出力されている場合には、前記書き込み制御部は、前記アドレスラッチ部から出力された書き込みアドレス情報を前記アドレス記憶部に記憶し、前記メモリアクセス要求装置から出力されたデータを前記データ記憶部に記憶するようにすることもできる。
【００３１】
このような態様によって、メモリからのデータの読み出しのタイミングとメモリへのデータの書き込みのタイミングとの重複を回避するために、データの読み出しを優先させる処理を行うようにした場合であっても、メモリへ書き込まれるデータとそのアドレス情報を消失させることなく、それぞれデータ記憶部とアドレス記憶部に記憶しておくことができる。
【００３２】
また、前記メモリアクセス要求装置から読み出しコマンド及び書き込みコマンドのいずれもが出力されていない場合には、前記書き込み制御部は、前記メモリにライトコマンドを出力すると共に、前記アドレス記憶部に記憶した書き込みアドレス情報、及び前記データ記憶部に記憶したデータを、前記メモリに出力するようにすることもできる。
【００３３】
このような態様によって、メモリへのデータの書き込みも読出しもなされていないときに、データ記憶部に記憶しておいた書き込みデータをメモリに書き込んでしまうことが可能となる。これにより、メモリアクセス装置のハードウェア資源を有効に使用することが可能となる。また、メモリからのデータの読出しやメモリへのデータの書き込みの処理がなされている間は、データ記憶部に記憶させておいたデータはそのまま記憶させておく。これによって、後続の読出し処理や書き込み処理を止めることなく行うことができるため、データ処理の高速化を図ることが可能となる。
【００３４】
また前記メモリアクセス要求装置から読み出しコマンドが出力されている場合において、前記メモリアクセス要求装置から出力された読み出しアドレス情報が、前記アドレス記憶部に記憶した書き込みアドレス情報と一致する場合には、前記読み出し制御部は、前記データ記憶部に記憶したデータを、前記メモリアクセス要求装置に出力するようにすることもできる。
【００３５】
このような態様によって、メモリアクセス要求装置から読み出し要求のあったデータがデータ記憶部に記憶されている場合には、そのデータをメモリから読み出す処理を省略してメモリアクセス要求装置に供給することが可能となる。このため、データの読み出しを高速に行うことが可能となる。
【００３６】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００３７】
メモリアクセスの高速化を可能とする。
【発明を実施するための最良の形態】
【００３８】
＝＝＝全体の構成＝＝＝
本実施の形態に係るメモリシステム１０００の全体構成を図１に示す。メモリシステム１０００は、広くディジタルデータを処理する情報処理装置、特にＤＶＤプレーヤ等のディジタルオーディオ機器など、大量のディジタルデータを処理する電子機器に好適である。
【００３９】
メモリシステム１０００は、メモリ１００と、ＤＳＰ２００と、リードライトコントローラ３００と、アドレスラッチ部５００と、アドレスデコーダ４００と、データ記憶部６００と、アドレス記憶部７００と、アドレスコンパレータ８００と、アドレスセレクト部１１００と、アドレス情報セレクト部１１１０と、書き込みデータセレクト部１１２０と、読み出しデータセレクト部１１３０と、データ記憶セレクト部１１４０と、アドレス記憶セレクト部１１５０と、クロック回路１２００とを備える。
【００４０】
なお、ＤＳＰ２００と、リードライトコントローラ３００と、アドレスデコーダ４００と、アドレスコンパレータ８００と、アドレスセレクト部１１００と、アドレス情報セレクト部１１１０と、書き込みデータセレクト部１１２０と、読み出しデータセレクト部１１３０と、は、特許請求の範囲に記載のメモリアクセス装置を構成する。
【００４１】
＜クロック回路＞
クロック回路１２００は、所定の周期で電圧が一方のレベルから他方のレベルへ変化するクロック信号を出力する回路である。クロック信号は、ＤＳＰ２００、メモリ１００、アドレスラッチ部５００，アドレス記憶部７００、データ記憶部６００に入力されている。
【００４２】
＜ＤＳＰ＞
ＤＳＰ２００は、ＤＶＤプレーヤ等に広く用いられ、音楽データや画像データのディジタル処理を行うディジタル信号処理装置であり、メモリ１００にデータを書き込んだり、メモリ１００からデータを読み出したりする。ＤＳＰ２００は、特許請求の範囲のメモリアクセス要求装置に相当する。
【００４３】
ＤＳＰ２００は、”CLK”端子、”n_BDAA”端子、”XBDAWR”端子、”n_XBDARD”端子、”BDA_W”端子、”BDA_R”端子を有している。  
”CLK”端子は、クロック信号を取り込む端子である。クロック信号はクロック回路１２００から出力される。ＤＳＰ２００は、このクロック信号の立ち上がりに同期してメモリ１００へのアクセスのための制御を行う。  
”n_BDAA”端子は、メモリ１００に記憶されるデータのアドレスを示すアドレス情報を出力する端子である。このアドレス情報はクロック信号の立ち上がりに同期して出力される。”n_BDAA”端子から出力されたアドレス情報は、アドレスラッチ部５００、アドレス情報セレクト部１１１０、及びアドレスデコーダ４００に入力される。  
”XBDAWR”端子は、メモリ１００へのデータの書き込みを指示するコマンド（書き込みコマンド）を出力する端子である。この書き込みコマンドはクロック信号の立ち上がりに同期して出力される。”XBDAWR”端子から出力された書き込みコマンドは、リードライトコントローラ３００に入力される。  
”n_XBDARD”端子は、メモリ１００からのデータの読み出しを指示するコマンド（読み出しコマンド）を出力する端子である。この読み出しコマンドはクロック信号の立ち上がりに同期して出力される。”n_XBDARD”端子から出力された読出しコマンドは、リードライトコントローラ３００に入力される。  
”BDA_W”端子は、メモリ１００への書き込みデータを出力する端子である。書き込みデータはクロック信号の立ち上がりに同期して出力される。”BDA_W”端子から出力された書き込みデータは、書き込みデータセレクト部１１２０か、データ記憶セレクト部１１４０に入力される。  
”BDA_R”端子は、メモリ１００からの読み出しデータを取り込む端子である。この読み出しデータの取り込みはクロック信号の立ち上がりに同期して行われる。読み出しデータは、データ記憶部６００あるいはメモリ１００から、読み出しデータセレクト部１１３０を介して取り込まれる。
【００４４】
＜メモリ＞
メモリ１００は、”CLK”端子、”A”端子、”CEN”端子、”WEN”端子、”D”端子、”Q”端子を有している。  
”CLK”端子は、外部からのクロック信号を取り込む端子である。メモリ１００に入力されるクロック信号は、ＤＳＰ２００に入力されるクロック信号と同一である。そしてメモリ１００は、このクロック信号の立ち上がりに同期してデータの読み込み又は書き出しの制御を行う。つまり、ＤＳＰ２００とメモリ１００は、同位相のクロック信号の立ち上がりに同期して制御が行われる。  
”A”端子はメモリ１００に記憶されるデータのアドレス情報が入力される端子である。”A”端子にはアドレス情報セレクト部１１１０から出力されたアドレス情報が入力される。  
”CEN”端子は、チップイネーブル信号が入力される端子である。チップイネーブル信号は、リードライトコントローラ３００から出力される。  
”WEN”端子は、ライトイネーブル信号が入力される端子である。ライトイネーブル信号も、リードライトコントローラ３００から出力される。
【００４５】
なお、チップイネーブル信号及びライトイネーブル信号は、特許請求の範囲に記載のリードコマンド及びライトコマンドを構成する。つまり具体的には、チップイネーブル信号＝L、かつ、ライトイネーブル信号＝Lの組合せがライトコマンドに相当し、チップイネーブル信号＝L、かつ、ライトイネーブル信号＝Hの組合せがリードコマンドに相当する。
【００４６】
”D”端子は、メモリ１００への書き込みデータが入力される端子である。”D”端子に入力された書き込みデータは、”CEN”端子＝L、かつ、”WEN”端子＝Lの場合に、クロック信号の立ち上がりに同期して、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶される。書き込みデータは、ＤＳＰ２００又はデータ記憶部６００から、書き込みデータセレクト部１１２０を介して入力される。
【００４７】
”Q”端子はメモリ１００からの読み出しデータが出力される端子である。メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Hの場合に、クロック信号の立ち上がりに同期して、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶されているデータを”Q”端子から出力する。読み出しデータは、読み出しデータセレクト部１１３０を介して、ＤＳＰ２００に入力される。
【００４８】
＜アドレスラッチ部＞
アドレスラッチ部５００は、ＤＳＰ２００に入力されるクロック信号と同一のクロック信号が入力され、ＤＳＰ２００から出力されたアドレス情報を取り込んで、クロック信号の１周期の間ラッチした後に出力する回路である。アドレスラッチ部５００からは、アドレスセレクト部１１００やアドレスデコーダ４００、アドレス記憶セレクト部１１５０、アドレスコンパレータ８００にアドレス情報が出力される。アドレスラッチ部５００を設けることによって、ＤＳＰ２００によるメモリアクセスのパイプライン化が図られている。
【００４９】
＜アドレスデコーダ＞
アドレスデコーダ４００は、アドレスラッチ部５００に記憶されているアドレス情報及びＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報をデコードして、リードライトコントローラ３００に出力する回路である。
【００５０】
＜アドレス記憶部＞
アドレス記憶部７００は、アドレスラッチ部５００から出力されるアドレス情報を記憶する回路である。またアドレス記憶部７００に記憶されているアドレス情報は、アドレスセレクト部１１００に出力される。なお、アドレスラッチ部５００から出力されるアドレス情報は、アドレス記憶セレクト部１１５０を介してアドレス記憶部７００に入力される。
【００５１】
＜アドレス記憶セレクト部＞
アドレス記憶セレクト部１１５０は、リードライトコントローラ３００から出力されるアドレス記憶信号に応じて、アドレスラッチ部５００から出力されるアドレス情報と、アドレス記憶部７００から出力されるアドレス情報と、のいずれか一方を出力する回路である。
【００５２】
＜アドレスセレクト部＞
アドレスセレクト部１１００は、リードライトコントローラ３００から出力されるアドレスセレクト信号に応じて、アドレスラッチ部５００からのアドレス情報か、アドレス記憶部７００からのアドレス情報かのいずれか一方を出力する回路である。アドレスセレクト部１１００から出力されたアドレス情報は、アドレス情報セレクト部１１１０に入力される。
【００５３】
＜アドレス情報セレクト部＞
アドレス情報セレクト部１１１０は、リードライトコントローラ３００から出力されるリードライトセレクト信号に応じて、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報か、アドレスセレクト部１１００から出力されたアドレス情報かのいずれか一方を出力する回路である。アドレス情報セレクト部１１１０から出力されたアドレス情報は、メモリ１００の”A”端子に入力される。
【００５４】
＜アドレスコンパレータ＞
アドレスコンパレータ８００は、アドレスラッチ部５００から出力されたアドレス情報と、アドレス記憶部７００から出力されたアドレス情報と、を比較し、それらのアドレス情報が一致するか否かを示す信号を、リードライトコントローラ３００に出力する回路である。
【００５５】
＜データ記憶部＞
データ記憶部６００は、ＤＳＰ２００から出力される書き込みデータを取り込んで記憶する回路である。またデータ記憶部６００に記憶されている書き込みデータは、書き込みデータセレクト部１１２０及び読み出しデータセレクト部１１３０に入力され、リードライトコントローラ３００から出力される書き込みデータセレクト信号、又は読み出しデータセレクト信号に応じて、メモリ１００又はＤＳＰ２００に出力される。なお、ＤＳＰ２００から出力される書き込みデータは、データ記憶セレクト部１１４０を介してデータ記憶部６００に入力される。
【００５６】
＜データ記憶セレクト部＞
データ記憶セレクト部１１４０は、リードライトコントローラ３００から出力される書き込みデータ記憶信号に応じて、ＤＳＰ２００から出力される書き込みデータと、データ記憶部６００から出力される書き込みデータと、のいずれか一方を出力する回路である。
【００５７】
＜リードライトコントローラ＞
リードライトコントローラ３００は、メモリシステム１０００において行われるメモリアクセスを制御する回路である。例えば、ＤＳＰ２００から出力される読み出しコマンドや書き込みコマンドに応じて、メモリ１００へチップイネーブル信号やライトイネーブル信号を出力する。詳細は後述する。
【００５８】
＝＝＝読み出し制御＝＝＝
次に、本実施形態にかかるメモリシステム１０００において、ＤＳＰ２００がメモリ１００からデータを読み出す場合のタイムチャートを図２に示す。
【００５９】
図２に示すように、本実施形態にかかるＤＳＰ２００は、”n_BDAA”端子からアドレス情報を出力するタイミングで、”n_XBDARD”端子から読み出しコマンドを出力する。  
一方リードライトコントローラ３００は、ＤＳＰ２００からの読み出しコマンドに応じて、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報がメモリ１００の”A”端子に入力される。
【００６０】
さらにリードライトコントローラ３００は、ＤＳＰ２００からの読み出しコマンドに応じて、チップイネーブル信号＝L、ライトイネーブル信号=H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Hとなるため、メモリ１００は、次のクロック信号の立ち上がり（つまり、ＤＳＰ２００が読み出しコマンドを出力してから１周期後）に同期して、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶されているデータを”Q”端子から出力する。
【００６１】
またリードライトコントローラ３００は、ＤＳＰ２００からの読み出しコマンドに応じて、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力しておく。  
これにより、メモリ１００の”Q”端子から出力された読み出しデータは、ＤＳＰ２００の”BDA_R”端子に入力される。  
そしてＤＳＰ２００は、次のクロック信号の立ち上がり（つまり、メモリ１００から読み出しデータが出力されたタイミングの１周期後）に同期して、”BDA_R”端子に入力された読み出しデータを記憶する。
【００６２】
このように、本実施形態に係るメモリシステム１０００においては、メモリ１００の”Q”端子に読み出しデータが出力されてから、ＤＳＰ２００の”BDA_R”端子にその読み出しデータが記憶されるまでの時間はT2となる。T2はおよそクロック信号の１周期程度である。そしてメモリ１００に読み出しデータが出力されてから、ＤＳＰ２００にその読み出しデータが記憶されるまでの時間を長くすることができるため、クロック信号を高速化することが可能となる。
【００６３】
＝＝＝書き込み制御＝＝＝
次に、本実施形態にかかるメモリシステム１０００において、ＤＳＰ２００がメモリ１００にデータを書き込む場合のタイムチャートを図３に示す。
【００６４】
図３に示すように、本実施形態にかかるＤＳＰ２００は、”n_BDAA”端子からアドレス情報を出力したタイミングの次のタイミングで、”XBDAWR”端子から書き込みコマンドを出力し、”BDA_W”端子から書き込みデータを出力するようにしている。
【００６５】
一方リードライトコントローラ３００は、ＤＳＰ２００からの書き込みコマンドに応じて、アドレスラッチ部５００から出力されたアドレス情報を選択するアドレスセレクト信号をアドレスセレクト部１１００に出力すると共に、アドレスセレクト部１１００から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、アドレスラッチ部５００から出力されたアドレス情報が、メモリ１００の”A”端子に入力される。またリードライトコントローラ３００は、ＤＳＰ２００からの書き込みコマンドに応じて、ＤＳＰ２００から出力された書き込みデータを選択する書き込みデータセレクト信号を書き込みデータセレクト部１１２０に出力する。これにより、ＤＳＰ２００からの書き込みデータがメモリ１００の”D”端子に入力される。
【００６６】
さらにリードライトコントローラ３００は、ＤＳＰ２００からの書き込みコマンドに応じて、チップイネーブル信号＝L及びライトイネーブル信号＝L（ライトコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Lとなるため、次のクロック信号の立ち上がり（つまり、ＤＳＰ２００が書き込みコマンドを出力してから１周期後）に同期して、”D”端子に入力されている書き込みデータを、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶する。  
このように、本実施形態に係るメモリシステム１０００においては、メモリ１００の”D”端子に書き込みデータが入力されてから、記憶されるまでの時間はT4となる。T4はおよそクロック信号の１周期程度である。
【００６７】
このように、メモリ１００に入力されるクロック信号とＤＳＰ２００に入力されるクロック信号とを同位相とし、書き込みデータがメモリ１００に記憶されるタイミングの１周期前のタイミングでＤＳＰ２００から書き込みデータを出力することにより、書き込みデータがＤＳＰ２００から出力されてからメモリ１００に取り込まれるまでの時間を延ばすことが可能となる。これによりクロック信号を高速化することが可能となる。
【００６８】
＝＝＝読み出し優先制御＝＝＝
次に、本実施形態にかかる読み出し優先制御について説明する。なお読み出し優先制御とは、メモリ１００におけるデータの読出しのタイミングが書き込みのタイミングと重複する場合に、読出し処理を優先して実行する制御をいう。
【００６９】
上述したように、本メモリシステム１０００においては、ＤＳＰ２００から読み出しデータのアドレス情報が出力されてから読み出しデータがメモリ１００から出力されるまでの時間はクロック信号１周期分であり、ＤＳＰ２００から書き込みデータのアドレス情報が出力されてからメモリ１００に書き込みデータが記憶されるまでの時間はクロック信号２周期分である。そのためＤＳＰ２００は、たとえ読み出しデータのアドレス情報と書き込みデータのアドレス情報とを異なるタイミングで出力したとしても、メモリ１００におけるデータの読み出しのタイミングと書き込みのタイミングとが同一となってしまう場合があるのである。
【００７０】
そこでリードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドが出力されるタイミングと書き込みコマンドが出力されるタイミングとに基づいて、メモリ１００からのデータの読み出しとメモリ１００へのデータの書き込みとの重複を事前に検知し、重複を回避する制御を行う。
【００７１】
具体的には、リードライトコントローラ３００は、図４に示すように、ＤＳＰ２００の”n_XBDARD”端子から出力される読み出しコマンドと、”XBDAWR”端子から出力される書き込みコマンドとの両方が、同時に入力されることを検知することにより、メモリ１００からのデータの読み出しのタイミングとメモリ１００へのデータの書き込みのタイミングとが重複することを事前に検知する。  
以下に、具体的な例に基づいて、詳細に説明する。
【００７２】
＜書き込みと読み出しが交互に起きる場合＞
図５（Ａ）に示すように、ＤＳＰ２００がデータの書き込み（Ｗ０）と、データの読み出し（Ｒ１）と、データの書き込み（Ｗ１）を連続して行おうとすると、メモリ１００において、データの読出しと書き込みの重複が起きる。この場合に行われる読み出し優先制御を図６のタイムチャートを参照しながら説明する。
【００７３】
なお説明の簡単化のために、データの書き込みや読出しを、「Ｗi」（iは整数）や「Ｒj」（jは整数）で識別する。またデータの書き込み（Ｗｉ）の際に、そのデータが書き込まれるメモリ１００のアドレスをＷＡiで表す。またメモリ１００に書き込まれるデータをＤｉで表す。同様にデータの読み出し（Ｒｊ）の際に、データが記憶されているメモリ１００のアドレスをＲＡｊで表す。また、メモリ１００から読み出されるデータをＱｊで表す。
【００７４】
まず、図６に示すタイムチャートにおいて、クロック信号の（２）のタイミングでＤＳＰ２００が、”n_BDAA”端子から書き込みデータのアドレス情報（ＷＡ０）を出力する。ＤＳＰ２００は、その次のクロック信号の立ち上がりのタイミング（３）で読み出しデータのアドレス情報（ＲＡ１）を出力する。そしてさらにその次のクロック信号の立ち上がりのタイミング（４）で書き込みデータのアドレス情報（ＷＡ１）を出力する。  
これらのアドレス情報は、それぞれ、クロック１周期後にアドレスラッチ部５００から出力される。
【００７５】
ＤＳＰ２００は、アドレス情報ＷＡ０を出力した次のタイミング（３）で、”XBDAWR”端子から書き込みコマンドを出力する。一方、ＤＳＰ２００は、アドレス情報ＲＡ１を出力したタイミング（３）で、”n_XBDARD”端子から読み出しコマンドを出力する。  
ここで、リードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドと書き込みコマンドの両方が出力されたことを検知する（条件Ａ）。  
そうすると、リードライトコントローラ３００は、ＤＳＰ２００の”BDA_W”端子から出力されている書き込みデータ（Ｄ０）をデータ記憶部６００に記憶させるために、データ記憶セレクト部１１４０に書き込みデータ記憶信号を出力する。これにより書き込みデータ（Ｄ０）は、メモリ１００に書き込まれるのではなく、データ記憶部６００に記憶される。
【００７６】
またリードライトコントローラ３００は、アドレスラッチ部５００に記憶されているアドレス情報（ＷＡ０）をアドレス記憶部７００に記憶させるために、アドレス記憶セレクト部１１５０に、アドレス記憶信号を出力する。これによりアドレス情報（ＷＡ０）がアドレス記憶部７００に記憶される。
【００７７】
また、リードライトコントローラ３００は、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報（ＲＡ１）は、そのままメモリ１００の”A”端子に入力される。
【００７８】
さらにリードライトコントローラ３００は、チップイネーブル信号＝L、ライトイネーブル信号＝H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Hとなるため、次のクロック信号の立ち上がりのタイミング（４）で、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶されているデータ（Ｑ１）を”Q”端子から出力する。
【００７９】
またリードライトコントローラ３００は、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力する。  
これにより、メモリ１００からの読み出しデータ（Ｑ１）は、ＤＳＰ２００の”BDA_R”端子に入力される。この読み出しデータ（Ｑ１）は、次のクロック信号の立ち上がりのタイミング（５）で、ＤＳＰ２００に記憶される。
【００８０】
一方で、クロック信号の（４）のタイミングでは、ＤＳＰ２００からは、読み出しコマンドも書き込みコマンドも出力されない（条件Ｂ）。そのためリードライトコントローラ３００は、データ記憶部６００に記憶しておいた書き込みデータ（Ｄ０）をメモリ１００に書き込むための処理を実行する。
【００８１】
すなわち、リードライトコントローラ３００は、書き込みデータセレクト部１１２０に対して、データ記憶部６００からの書き込みデータを出力させるための書き込みデータセレクト信号を出力すると共に、アドレスセレクト部１１００に対して、アドレス記憶部７００に記憶されているアドレス情報を選択させるためのアドレスセレクト信号を出力する。さらにリードライトコントローラ３００は、アドレス情報セレクト部１１１０に対して、アドレスセレクト部１１００から出力されるアドレス情報を選択するためのリードライトセレクト信号を出力する。
【００８２】
またリードライトコントローラ３００は、メモリ１００に対して、チップイネーブル信号＝Lとライトイネーブル信号＝Lと（ライトコマンド）を出力する。これによって、次のクロック信号の立ち上がりのタイミング（５）で、データ記憶部６００に記憶しておいた書き込みデータ（Ｄ０）がメモリ１００に記憶される。  
一方ＤＳＰ２００は、クロック信号の（５）のタイミングで、”BDA_W”端子から書き込みデータ（Ｄ１）を出力すると共に、”XBDAWR”端子から書き込みコマンドを出力する。
【００８３】
リードライトコントローラ３００は、ＤＳＰ２００から書き込みコマンドのみが出力されていることを検知する（条件Ｄ）。その場合、リードライトコントローラ３００は、アドレスラッチ部５００から出力されたアドレス情報を選択するアドレスセレクト信号をアドレスセレクト部１１００に出力すると共に、アドレスセレクト部１１００から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、アドレスラッチ部５００から出力されたアドレス情報が、メモリ１００の”A”端子に入力される。
【００８４】
またリードライトコントローラ３００は、ＤＳＰ２００から出力された書き込みデータ（Ｄ１）を選択する書き込みデータセレクト信号を書き込みデータセレクト部１１２０に出力する。これにより、ＤＳＰ２００からの書き込みデータがメモリ１００の”D”端子に入力される。  
そしてリードライトコントローラ３００は、チップイネーブル信号＝L及びライトイネーブル信号＝L（ライトコマンド）をメモリ１００に出力する。  
これにより、メモリ１００は、次のクロック信号の立ち上がりのタイミング（６）で、”D”端子に入力されている書き込みデータ（Ｄ１）を、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶する。
【００８５】
このようにして、データのメモリ１００からの読出しのタイミングが書き込みのタイミングと重複した場合であっても、読出し処理を継続することが可能となるため、データの読み出し処理を遅延させないようにすることが可能となる。そして、いち早く読み出しデータをＤＳＰ２００に供給することによって、メモリシステム１０００全体ひいてはＤＶＤプレーヤ全体のデータ処理の一層の高速化を達成することが可能となる。
【００８６】
＜書き込みの後読み出しが連続する場合＞
次に、図５（Ｂ）に示すように、データの書き込み（Ｗ０）の後、データの読み出し（Ｒ１、Ｒ２、Ｒ３）が連続し、その後にデータの書き込み（Ｗ１）が行われる場合について説明する。この場合に行われる読み出し優先制御を図７のタイムチャートを参照しながら説明する。
【００８７】
まず、図７に示すクロック信号の（２）のタイミングでＤＳＰ２００が、”n_BDAA”端子から書き込みデータのアドレス情報（ＷＡ０）を出力する。ＤＳＰ２００は、その次のクロック信号の立ち上がりのタイミング（３）で読み出しデータのアドレス情報（ＲＡ１）を出力する。その後順次、アドレス情報ＲＡ２、ＲＡ３、ＷＡ１を出力する。  
これらのアドレス情報は、それぞれ、クロック１周期後にアドレスラッチ部５００から出力される。
【００８８】
ＤＳＰ２００は、アドレス情報ＷＡ０を出力した次のタイミング（３）で、”XBDAWR”端子から書き込みコマンドを出力する。一方、ＤＳＰ２００は、アドレス情報ＲＡ１を出力したタイミング（３）で、”n_XBDARD”端子から読み出しコマンドを出力する。  
ここで、リードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドと書き込みコマンドの両方が出力されたことを検知する（条件Ａ）。  
そうすると、リードライトコントローラ３００は、ＤＳＰ２００の”BDA_W”端子から出力されている書き込みデータ（Ｄ０）をデータ記憶部６００に記憶させるために、データ記憶セレクト部１１４０に書き込みデータ記憶信号を出力する。これにより書き込みデータ（Ｄ０）がデータ記憶部６００に記憶される。
【００８９】
またリードライトコントローラ３００は、アドレスラッチ部５００に記憶されているアドレス情報（ＷＡ０）をアドレス記憶部７００に記憶させるために、アドレス記憶セレクト部１１５０に、アドレス記憶信号を出力する。これによりアドレス情報（ＷＡ０）がアドレス記憶部７００に記憶される。
【００９０】
また、リードライトコントローラ３００は、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報（ＲＡ１）は、そのままメモリ１００の”A”端子に入力される。
【００９１】
さらにリードライトコントローラ３００は、チップイネーブル信号＝L、ライトイネーブル信号＝H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Hとなるため、メモリ１００は、次のクロック信号の立ち上がりのタイミング（４）で、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶されているデータ（Ｑ１）を”Q”端子から出力する。
【００９２】
またリードライトコントローラ３００は、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力する。  
これにより、メモリ１００からの読み出しデータ（Ｑ１）は、ＤＳＰ２００の”BDA_R”端子に入力される。この読み出しデータ（Ｑ１）は、次のクロック信号の立ち上がりのタイミング（５）で、ＤＳＰ２００によって記憶される。
【００９３】
一方で、クロック信号の（４）のタイミングでは、ＤＳＰ２００は、”n_BDAA”端子からアドレス情報（ＲＡ２）を出力するタイミングで、”n_XBDARD”端子から読み出しコマンドを出力する。
【００９４】
リードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドのみが出力されているのを検知し（条件Ｃ）、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報（ＲＡ２）を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報は、そのままメモリ１００の”A”端子に入力される。  
さらにリードライトコントローラ３００は、チップイネーブル信号＝L、ライトイネーブル信号＝H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、次のクロック信号の立ち上がりのタイミング（５）で、”A”端子に入力されているアドレス情報（ＲＡ２）により特定されるアドレスに記憶されているデータ（Ｑ２）を”Q”端子から出力する。
【００９５】
またリードライトコントローラ３００は、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力する。  
これにより、メモリ１００からの読み出しデータ（Ｑ２）は、ＤＳＰ２００の”BDA_R”端子に入力される。この読み出しデータ（Ｑ２）は、次のクロック信号の立ち上がりのタイミング（６）で、ＤＳＰ２００によって記憶される。  
このように、データの読み出しが連続する（Ｒ１、Ｒ２…）場合にはデータの読み出しを優先させ、データ記憶部６００に記憶させておいた書き込みデータ（Ｄ０）は、そのまま記憶させておくのである。
【００９６】
なお、図７における以降のステップは、図６において詳細に説明した場合と同様である。すなわち、図７におけるクロック信号の（６）のタイミングで、ＤＳＰ２００から読み出しコマンドも書き込みコマンドも出力されない状態になった際に、データ記憶部６００に記憶させておいた書き込みデータ（Ｄ０）をメモリ１００に書き込むのである。
【００９７】
このように、データのメモリ１００からの読出しのタイミングが書き込みのタイミングと重複した場合には、読出し処理を優先させることによって、データの読み出し処理を遅延させないようにすることが可能となる。そして、いち早く読み出しデータをＤＳＰ２００に供給することを可能とすることによって、メモリシステム１０００全体、ＤＶＤプレーヤ全体のデータ処理の一層の高速化を達成することが可能となるのである。
【００９８】
＝＝＝データ記憶部に記憶させた書き込みデータを読み出す制御＝＝＝
次に、データ記憶部６００に記憶させた書き込みデータを読み出す制御について説明する。図５（Ｃ）に示すように、データの書き込み（Ｗ０）の後、データの読み出し（Ｒ１、Ｒ２、Ｒ０）が連続し、その後にデータの書き込み（Ｗ１）が行われる場合について説明する。なおここで、Ｒ０は、Ｗ０によって書き込まれたデータを読み出すことを示す。この場合に行われる制御を図８のタイムチャートを参照しながら説明する。
【００９９】
まず、図８に示すクロック信号の（２）のタイミングでＤＳＰ２００が、”n_BDAA”端子から書き込みデータのアドレス情報（ＷＡ０）を出力する。ＤＳＰ２００は、その次のクロック信号の立ち上がりのタイミング（３）で読み出しデータのアドレス情報（ＲＡ１）を出力する。その後順次、アドレス情報ＲＡ２、ＲＡ０、ＷＡ１を出力する。なおここで、ＲＡ０は、ＷＡ０と同一のアドレス情報である。  
これらのアドレス情報は、それぞれ、クロック１周期後にアドレスラッチ部５００から出力される。
【０１００】
ＤＳＰ２００は、アドレス情報ＷＡ０を出力した次のタイミング（３）で、”XBDAWR”端子から書き込みコマンドを出力する。一方、ＤＳＰ２００は、アドレス情報ＲＡ１を出力したタイミング（３）で、”n_XBDARD”端子から読み出しコマンドを出力する。  
ここで、リードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドと書き込みコマンドとの両方が出力されたことを検知する（条件Ａ）。  
そうすると、リードライトコントローラ３００は、ＤＳＰ２００の”BDA_W”端子から出力されている書き込みデータ（Ｄ０）をデータ記憶部６００に記憶させるために、データ記憶セレクト部１１４０に書き込みデータ記憶信号を出力する。これにより書き込みデータ（Ｄ０）がデータ記憶部６００に記憶される。
【０１０１】
またリードライトコントローラ３００は、アドレスラッチ部５００に記憶されているアドレス情報（ＷＡ０）をアドレス記憶部７００に記憶させるために、アドレス記憶セレクト部１１５０に、アドレス記憶信号を出力する。これによりアドレス情報（ＷＡ０）がアドレス記憶部７００に記憶される。
【０１０２】
また、リードライトコントローラ３００は、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報（ＲＡ１）は、そのままメモリ１００の”A”端子に入力される。
【０１０３】
さらにリードライトコントローラ３００は、チップイネーブル信号＝L、ライトイネーブル信号＝H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、”CEN”端子＝L、かつ、”WEN”端子＝Hとなるため、メモリ１００は、次のクロック信号の立ち上がりのタイミング（４）で、”A”端子に入力されているアドレス情報により特定されるアドレスに記憶されているデータ（Ｑ１）を”Q”端子から出力する。
【０１０４】
またリードライトコントローラ３００は、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力する。  
これにより、メモリ１００からの読み出しデータ（Ｑ１）は、ＤＳＰ２００の”BDA_R”端子に入力される。この読み出しデータ（Ｑ１）は、次のクロック信号の立ち上がりのタイミング（５）で、ＤＳＰ２００に記憶される。
【０１０５】
一方で、クロック信号の（４）のタイミングでは、ＤＳＰ２００は、”n_BDAA”端子からアドレス情報（ＲＡ２）を出力するタイミングで、”n_XBDARD”端子から読み出しコマンドを出力する。
【０１０６】
リードライトコントローラ３００は、ＤＳＰ２００から読み出しコマンドのみが出力されているのを検知し（条件Ｃ）、ＤＳＰ２００の”n_BDAA”端子から出力されたアドレス情報（ＲＡ２）を選択するリードライトセレクト信号をアドレス情報セレクト部１１１０に出力する。これにより、”n_BDAA”端子から出力されたアドレス情報（ＲＡ２）は、そのままメモリ１００の”A”端子に入力される。  
さらにリードライトコントローラ３００は、チップイネーブル信号＝L、ライトイネーブル信号＝H（リードコマンド）をメモリ１００に出力する。  
そうすると、メモリ１００は、次のクロック信号の立ち上がりのタイミング（５）で、”A”端子に入力されているアドレス情報（ＲＡ２）により特定されるアドレスに記憶されているデータ（Ｑ２）を”Q”端子から出力する。
【０１０７】
またリードライトコントローラ３００は、読み出しデータセレクト部１１３０に対して、メモリ１００から出力された方のデータを選択する読み出しデータセレクト信号を出力する。  
これにより、メモリ１００からの読み出しデータ（Ｑ２）は、ＤＳＰ２００の”BDA_R”端子に入力される。この読み出しデータ（Ｑ２）は、次のクロック信号の立ち上がりのタイミング（６）で、ＤＳＰ２００に記憶される。
【０１０８】
次に、クロック信号の（５）のタイミングでは、ＤＳＰ２００は、”n_BDAA”端子からアドレス情報（ＲＡ０）を出力するタイミングで、”n_XBDARD”端子から読み出しコマンドを出力する。
【０１０９】
ところで、”n_BDAA”端子から出力されたアドレス情報（ＲＡ０）は、クロック信号の（６）のタイミングでアドレスラッチ回路５００から出力され、アドレスコンパレータ８００に入力される。またアドレスコンパレータ８００には、アドレス記憶部７００に記憶されているアドレス情報（ＷＡ０）も入力されている。上述したようにＲＡ０とＷＡ０とは同一であるので、アドレスコンパレータ８００は、これらのアドレス情報が一致することを示す情報を、リードライトコントローラ３００に出力する。
【０１１０】
リードライトコントローラ３００は、ＤＳＰ２００からの読み出しコマンド及びアドレスコンパレータ８００からの上記情報を検知する（条件Ｅ）。この場合ＤＳＰ２００は、クロック信号の（６）のタイミングで、読み出しデータセレクト部１１３０に対して、データ記憶部６００に記憶されているデータを選択する読み出しデータセレクト信号を出力する。  
そうすると、データ記憶部６００に記憶されているデータ（Ｄ０）は、ＤＳＰ２００の”BDA_R”端子に入力される。このデータ（Ｄ０）は、次のクロック信号の立ち上がりのタイミング（７）で、ＤＳＰ２００に記憶される。  
このようにして、ＤＳＰ２００から読み出し要求のあったデータがデータ記憶部６００に記憶されている場合には、そのデータをメモリ１００から読み出す処理を省略してＤＳＰ２００に供給する事が可能となる。このため、データの読み出しを高速に行うことが可能となるのである。
【０１１１】
ところで、クロック信号の（６）のタイミングでは、ＤＳＰ２００からは、読み出しコマンドも書き込みコマンドも出力されない（条件Ｂ）。そのためリードライトコントローラ３００は、データ記憶部６００に記憶しておいた書き込みデータ（Ｄ０）をメモリ１００に書き込むための処理を実行する。
【０１１２】
リードライトコントローラ３００は、書き込みデータセレクト部１１２０に対して、データ記憶部６００からの書き込みデータを出力させるための書き込みデータセレクト信号を出力すると共に、アドレスセレクト部１１００に対して、アドレス記憶部７００に記憶されているアドレス情報を選択させるためのアドレスセレクト信号を出力する。さらにリードライトコントローラ３００は、アドレス情報セレクト部１１１０に対して、アドレスセレクト部１１００から出力されるアドレス情報を選択するためのリードライトセレクト信号を出力する。
【０１１３】
そしてリードライトコントローラ３００は、メモリ１００に対して、チップイネーブル信号＝Lとライトイネーブル信号＝Lと（ライトコマンド）を出力する。これによって、次のクロック信号の立ち上がりのタイミング（７）で、データ記憶部６００に記憶しておいた書き込みデータ（Ｄ０）がメモリ１００に記憶される。
【０１１４】
なお、以降のステップは、図６において詳細に説明した場合と同様である。すなわち、図８におけるクロック信号の（７）のタイミングで、ＤＳＰ２００から書き込みコマンドのみが出力された状態になった事を検知し、ＤＳＰ２００から出力される書き込みデータ（Ｄ１）をメモリ１００に書き込むのである。
【０１１５】
このように、データのメモリ１００からの読出しのタイミングが書き込みのタイミングと重複した場合には、読出し処理を優先させることによって、データの読み出し処理を遅延させないようにすることが可能となる。そして、いち早く読み出しデータをＤＳＰ２００に供給することを可能とすることによって、メモリシステム１０００全体のデータ処理の高速化を達成することが可能となる。さらに、読み出しデータがデータ記憶部６００に記憶されている場合には、メモリ１００からではなくデータ記憶部６００から読み出すようにすることによって、さらに早いタイミングで読み出しデータをＤＳＰ２００に供給することが可能になるのである。
【０１１６】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１１７】
例えば図９に示すように、メモリシステム１０００において、ＤＳＰ２００とメモリ１００との間に制御回路９００を設けるようにすることもできる。この制御回路９００は、図１において示したリードライトコントローラ３００や、データ記憶部６００、アドレス記憶部７００、アドレスデコーダ４００、アドレスコンパレータ８００、アドレスセレクト部１１００、アドレス情報セレクト部１１１０、書き込みデータセレクト部１１２０、読み出しデータセレクト部１１３０を含み、集積回路として構成することもできるし、ディスクリートの回路により構成することもできる。また、メモリシステム１０００全体が一つの集積回路として構成されてもよい。
【０１１８】
また、上記メモリシステム１０００を構成する各回路が、クロック信号の立ち上がりに同期して動作するものとして実施の形態を説明したが、クロック信号の立ち下がりに同期して動作する場合も同様である。
【図面の簡単な説明】
【０１１９】
【図１】本実施の形態に係るメモリシステムを示す図である。
【図２】本実施の形態に係るメモリシステムにおいてデータを読み出す際のタイムチャートを示す図である。
【図３】本実施の形態に係るメモリシステムにおいてデータを書き込む際のタイムチャートを示す図である。
【図４】データの読出しと書き込みが重複する場合を示す図である。
【図５】データの読出しと書き込みが重複する場合の具体例を示す図である。
【図６】データの書き込みと読出しとが交互に起こる場合のタイムチャートを示す図である。
【図７】データの書き込みの後、読み出しが連続して起こる場合のタイムチャートを示す図である。
【図８】データ記憶部に記憶したデータを読み出す場合のタイムチャートを示す図である。
【図９】本実施の形態にかかるメモリシステムを示す図である。
【図１０】メモリシステムを示す図である。
【図１１】メモリアクセスのパイプライン制御を示す図である。
【図１２】メモリシステムにおいてデータを読み出す際のタイムチャートを示す図である。
【図１３】メモリシステムにおいてデータを書き込む際のタイムチャートを示す図である。
【符号の説明】
【０１２０】
１００    メモリ
２００    ＤＳＰ
３００    リードライトコントローラ
４００    アドレスデコーダ
５００    アドレスラッチ部
６００    データ記憶部
７００    アドレス記憶部
８００    アドレスコンパレータ
９００    制御回路
１０００  メモリシステム
１１００  アドレスセレクト部
１１１０  アドレス情報セレクト部
１１２０  書き込みデータセレクト部
１１３０  読み出しデータセレクト部
１２００  クロック回路
【図１】
0005132074.tif 000002
【図２】
0005132074.tif 000003
【図３】
0005132074.tif 000004
【図４】
0005132074.tif 000005
【図５】
0005132074.tif 000006
【図６】
0005132074.tif 000007
【図７】
0005132074.tif 000008
【図８】
0005132074.tif 000009
【図９】
0005132074.tif 000010
【図１０】
0005132074.tif 000011
【図１１】
0005132074.tif 000012
【図１２】
0005132074.tif 000013
【図１３】
0005132074.tif 000014