(57)【特許請求の範囲】
【請求項１】
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭い第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１のバスを介して前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
前記第２の記憶手段の書き込みアドレスまたは前記第１の記憶手段の読み出しアドレスを、設定された初期値に基づき生成する生成手段と、
前記第１の記憶手段と前記第２の記憶手段との間のデータ転送を制御する第２の制御手段と、
を有し、
前記第２の制御手段は、前記第１の制御手段からの要求に応じて、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定し、前記生成手段は、前記初期値を、前記第２の記憶手段の書き込みアドレスとして前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして前記第１の記憶手段に出力し、１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力する、
ことを特徴とする情報処理装置。
【請求項２】
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭いビット幅の第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１のバスを介して前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
前記第２の記憶手段の書き込みアドレスまたは前記第１の記憶手段の読み出しアドレスを、設定された初期値に基づき生成する生成手段と、
前記第１の記憶手段と前記第２の記憶手段との間のデータ転送を制御する第２の制御手段と、
を有する情報処理装置の情報処理方法において、
前記第１の制御手段からの要求に応じて、前記第２の制御手段が、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定するステップと、
前記生成手段が、前記初期値を、前記第２の記憶手段の書き込みアドレスとして、前記第１のバスを介して前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして、前記第１のバスを介して前記第１の記憶手段に出力するステップと、
１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力するステップと、
を含むことを特徴とする情報処理方法。
【請求項３】
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭い第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
設定された初期値に基づき第２の記憶手段の書き込みアドレスを生成する生成手段と、
前記初期値を前記生成手段に設定する第２の制御手段と、
を有する情報処理装置に、
前記第１の制御手段からの要求に応じて、前記第２の制御手段が、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定するステップと、
前記生成手段が、前記初期値を、前記第２の記憶手段の書き込みアドレスとして、前記第１のバスを介して前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして、前記第１のバスを介して前記第１の記憶手段に出力するステップと、
１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力するステップと、
を含む処理を実行させるコンピュータ読み取り可能なプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びに提供媒体に関し、特に、例えば、エンタテイメント機において、プログラムやデータを効率的に転送できるようにした情報処理装置および方法、並びに提供媒体に関する。
【０００２】
【従来の技術】
DRAM(Dynamic Random Access Memory)は、特に１個のチップに内蔵される場合、データバスのビット幅を自由に取ることができ、さらに多ビット幅においても高いバンド幅を得ることができる特徴がある。しかしながら、CPU(Central Processing Unit)には、その能力以上に、大きいバスを接続することができず、かつ、CPUのビット幅は、通常、DRAMのビット幅より小さい。そのため、特に、DRAMとCPUを１つのチップに混載する場合、データバスは、CPUのビット幅に合わせざるを得なく、DRAMの特徴を生かすことができない。
【０００３】
そこで、例えば、DSP(Digital Signal Processor)がデータバスに接続され、DRAMとの間で高いバンド幅が必要となる場合、図５のエンタテイメント機６０の構成例に示すように、狭いビット幅のCPUバス１２と広いビット幅のシステムバス１３を個別に設け、CPUのビット幅より大きいビット幅のデータバス（システムバス１３）にDRAM４１を接続することができる。
【０００４】
すなわち、図５のエンタテイメント機６０においては、各装置においてプログラムまたはデータをやりとりするためのバスとして、例えば、３２ビットの幅のCPUバス１２および１２８ビットの幅のシステムバス１３の２種類のバスが形成されている。CPUバス１２には、CPU３１、ペリフェラル３２およびキャッシュメモリ５１が接続されている。システムバス１３には、キャッシュメモリ５１、DRAM４１、DMAコントローラ(DMAC)４２、およびDSP４３が接続されている。
【０００５】
CPU３１は、キャッシュメモリ５１を介してDRAM４１に記憶されているプログラムの転送を受け、それに従って、所定の処理を実行するようになされている。CPU３１はまた、データの供給を受ける必要がある場合、そのデータもキャッシュメモリ５１を介してDRAM４１から供給を受ける。
【０００６】
ペリフェラル３２は、例えば、時計動作を行うタイマ、設定された所定の周期で割り込みパルスを発生する割り込みコントローラなどで構成されている。
【０００７】
DRAM４１は、CPU３１およびDSP４３の動作上必要なデータや実行すべきプログラムを記憶するようになされている。キャッシュメモリ５１は、CPU３１に供給するプログラムおよびデータを、DRAM４１から読み出し記憶するようになされている。
【０００８】
DMAコントローラ４２は、CPU３１またはDSP４３からの要求に対応して、DRAM４１からプログラムまたはデータをキャッシュメモリ５１またはDSP４３に転送する処理を行う。
【０００９】
DSP４３は、DRAM４１から供給を受けた所定のプログラムを実行するようになされている。
【００１０】
以上のように構成されるエンタテイメント機６０において、CPU３１は、通常、CPUバス１２を介してキャッシュメモリ５１にアクセスし、必要とするプログラムおよびデータを読み取り、所定の処理を実行する。またDSP４３は、システムバス１３を介してDMAコントローラ４２により転送を受けたプログラムおよびデータを処理する。
【００１１】
このように、CPUバス１２とシステムバス１３を個別に設けることにより、DRAM４１に、CPU３１のビット幅に制限されることなく、高いビット幅のデータバス（システムバス１３）を接続することができ、その結果、DRAM４１とDSP４３との間で高速にデータ転送を行うことができる。
【００１２】
【発明が解決しようとする課題】
ところで、キャッシュメモリ５１は、CPU３１からのアクセスの頻度が高いプログラムおよびデータを記憶するが、CPU３１が必要とするプログラムまたはデータを記憶していない、いわゆる、キャッシュミスを発生する場合がある。通常、プログラムは、CPU３１により順番に読み出されるが、データはそれに比べ、ランダムに要求され読み出されることが多い。その結果、データに関し、キャッシュミスが多く発生する。キャッシュミスが発生すると、CPU３１は、例えば、DMAコントローラ４２に要求し、DRAM４１からキャッシュメモリ５１に、DMAによるデータの転送を行わせる必要があり、その分、CPU３１に負荷がかかり、CPU３１が処理を高速に実行できなくなる課題があった。
【００１３】
また、キャッシュミスが発生し、DRAM４１からキャッシュメモリ５１に、DMAによるデータの転送を行うとき、DMAコントローラ４２は、DRAM４１に、キャッシュメモリ５１に転送すべきデータの記憶位置を示すアドレス、そしてキャッシュメモリ５１には、そのデータを記憶すべき位置のアドレスを、それぞれ出力しながら、データ転送を制御しなければならない。図６は、DRAM４１からキャッシュメモリ５１へのDMAによるデータ転送を説明するタイミングチャートである。
【００１４】
この例の場合、DMAコントローラ４２は、所定のシステムクロックの第ｎ番目のクロックサイクルのタイミング（以下、第ｎクロックのタイミングと称する）に合わせて、DRAM４１からキャッシュメモリ５１に、DMAによるデータの転送を開始する。CPU３１からの要求には、キャッシュメモリ５１に転送するDRAM４１のデータの先頭のデータのアドレス（以下、DRAM先頭アドレスと称する）、および転送するデータ量（サイズ）、および転送されてくるDRAM４１の先頭のデータを記憶するキャッシュメモリ５１のアドレス（以下、キャッシュメモリ先頭アドレスと称する）が含まれる。
【００１５】
はじめに、図６に示すように、第ｎクロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３を介して、DRAM先頭アドレス（アドレスD1）をDRAM４１に出力するとともに、そのアドレスに記憶されているデータ（データA）の読み出しを指令する。
【００１６】
ところで、DRAM４１は、通常、ページ単位でプログラムおよびデータを記憶している。そのため、ページ内に記憶しているプログラムおよびデータを処理（例えば、データ読み出し処理）する場合、DRAM４１は比較的速くその処理を実行することができるが、複数のページにまたがって処理を行う場合、DRAM４１では、ページブレイクが発生し、このとき、所定の時間（いまの場合、４クロック分）の間、実質的に動作が停止している状態になる。
【００１７】
通常、DMAによるデータの転送を行うとき、DRAM４１が最初に転送するデータは、その前にDRAM４１が処理したデータとは何の関わりもない場合が多く、DRAM４１はベージブレイクを起こす。すなわち、いまの場合、DRAM４１は、第（ｎ＋４）クロックのタイミングの直前まで、ほぼ動作を停止している状態になり、キャッシュメモリ５１に、出力すべきデータ（データA）を出力しないでいる。
【００１８】
DMAコントローラ４２は、システムバス（アドレスバス）１３を介して、DRAM先頭アドレス（アドレスD1）をDRAM４１に出力しながら、DRAM４１からデータAがシステムバス（データバス）１３に出力されるまで待機する。図６に示すように、第（ｎ＋３）クロックのタイミングにおいて、DRAM４１がステムバス（データバス）１３を介して、データAをキャッシュメモリ５１に出力すると、DMAコントローラ４２は、第（ｎ＋４）クロックのタイミングにおいて、システムバス（アドレスバス）１３を介して、キャッシュメモリ５１にキャッシュメモリ先頭アドレス（書き込みアドレス）（アドレスC1）を出力する。それにより、キャッシュメモリ５１は、DRAM４１からのシステムバス（データバス）１３上のデータ（データA）をアドレスC1に記憶することができる。
【００１９】
次に、第（ｎ＋５）クロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３を介して、DRAM４１に、読み出しアドレスとして、DRAM先頭アドレスの次のアドレス（アドレスD2）を出力するとともに、アドレスD2に記憶されているデータBの読み出しを指令する。これにより、システムバス（データバス）１３には、データBが出力される。第（ｎ＋６）クロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３から、キャッシュメモリ５１に、書き込みアドレスとして、キャッシュメモリ先頭アドレスの次のアドレス（アドレスC2）を出力するとともに、書き込みを指令し、そこにDRAM４１からのシステムバス（データバス）１３上のデータ（データB）を記憶させる。
【００２０】
第（ｎ＋７）クロック，第（ｎ＋８）クロックのタイミングにおいては、第（ｎ＋５）クロック，第（ｎ＋６）クロックのタイミングの場合と同様の処理が行われ、データCがDRAM４１からキャッシュメモリ５１にDMA転送される。
【００２１】
このように、DMAコントローラ４２は、クロックのタイミングに合わせて、共通のアドレスバスを介して、DRAM４１とキャッシュメモリ５１に、読み出しアドレスと書き込みアドレスを交互に出力する必要があるので、２クロック分のタイミングで、１つのデータしか転送することしかできず、データを効率よく転送することができない課題がある。
【００２２】
本発明はこのような状況に鑑みてなされたものであり、より高速かつ効率的にデータやプログラムを転送することができるようにするものである。
【００２３】
【課題を解決するための手段】
本発明は、
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭い第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１のバスを介して前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
前記第２の記憶手段の書き込みアドレスまたは前記第１の記憶手段の読み出しアドレスを、設定された初期値に基づき生成する生成手段と、
前記第１の記憶手段と前記第２の記憶手段との間のデータ転送を制御する第２の制御手段と、
を有し、
前記第２の制御手段は、前記第１の制御手段からの要求に応じて、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定し、前記生成手段は、前記初期値を、前記第２の記憶手段の書き込みアドレスとして前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして前記第１の記憶手段に出力し、１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力する、
ことを特徴とする情報処理装置を提供する。
【００２６】
また、本発明は、
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭いビット幅の第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１のバスを介して前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
前記第２の記憶手段の書き込みアドレスまたは前記第１の記憶手段の読み出しアドレスを、設定された初期値に基づき生成する生成手段と、
前記第１の記憶手段と前記第２の記憶手段との間のデータ転送を制御する第２の制御手段と、
を有する情報処理装置の情報処理方法において、
前記第１の制御手段からの要求に応じて、前記第２の制御手段が、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定するステップと、
前記生成手段が、前記初期値を、前記第２の記憶手段の書き込みアドレスとして、前記第１のバスを介して前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして、前記第１のバスを介して前記第１の記憶手段に出力するステップと、
１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力するステップと、
を含むことを特徴とする情報処理方法を提供する。
【００２９】
さらに、本発明は、
所定のデータを記憶する記憶する第１の記憶手段と、
前記第１の記憶手段が接続されている第１のバスと、
前記第１の記憶手段を制御する、前記第１の記憶手段よりもビット幅の狭い第１の制御手段と、
前記第１の制御手段が接続されている、前記第１の制御手段のビット幅に対応したビット幅の第２のバスと、
前記第１のバスおよび前記第２のバスに接続され、前記第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段と、
設定された初期値に基づき第２の記憶手段の書き込みアドレスを生成する生成手段と、
前記初期値を前記生成手段に設定する第２の制御手段と、
を有する情報処理装置に、
前記第１の制御手段からの要求に応じて、前記第２の制御手段が、前記第１の記憶手段のページブレイク中に、前記初期値を、前記第１のバスを介して前記生成手段に設定するステップと、
前記生成手段が、前記初期値を、前記第２の記憶手段の書き込みアドレスとして、前記第１のバスを介して前記第２の記憶手段に、または、前記第１の記憶手段の読み出しアドレスとして、前記第１のバスを介して前記第１の記憶手段に出力するステップと、
１クロックごとに、前記書き込みアドレスに基づき得られる新たな書き込みアドレスを前記第２の記憶手段に、または、前記読み出しアドレスに基づき得られる新たな読み出しアドレスを前記第１の記憶手段に出力するステップと、
を含む処理を実行させるコンピュータ読み取り可能なプログラムが記録されたことを特徴とする記録媒体を提供する。
【００３８】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００３９】
情報処理装置は、プログラムとデータを記憶する第１の記憶手段（例えば、図１のＤＲＡＭ４１）と、第１の記憶手段が接続されている第１のバス（例えば、図１のシステムバス１３）と、第１の記憶手段を制御する制御手段（例えば、図１のＣＰＵ３１）と、制御手段が接続されている第２のバス（例えば、図１のＣＰＵバス１２）とを備え、第１のバスに接続されているとともに、第２のバスに接続され、第１の記憶手段に記憶されているデータのうち、制御手段に供給するデータを記憶する第２の記憶手段（例えば、図１のSRAM３３）と、第１のバスに接続されているとともに、第２のバスに接続され、第１の記憶手段に記憶されているプログラムのうち、制御手段に供給するプログラムを記憶する第３の記憶手段（例えば、図１の命令キャッシュ３４）とを備える。
【００４０】
情報処理装置は、第１のバス（例えば、図１のシステムバス１３）に接続されているとともに、第２のバス（例えば、図１のＣＰＵバス１２）に接続され、第１のバスを介して入力されるデータのビット幅を、第２のバスに対応するビット幅に変換する変換手段（例えば、図１のビット変換回路３５）とをさらに備える。
【００４１】
情報処理装置は、所定のデータを記憶する第１の記憶手段（例えば、図１のＤＲＡＭ４１）と、第１の記憶手段が接続されている第１のバス（例えば、図１のシステムバス１３）と、第１の記憶手段を制御する第１の制御手段（例えば、図１のＣＰＵ３１）と、制御手段が接続されている第２のバス（例えば、図１のＣＰＵバス１２）とを備え、第１のバスに接続されているとともに、第２のバスに接続され、第１の記憶手段から転送されてくるデータを記憶する第２の記憶手段（例えば、図１のSRAM３３）と、第１の記憶手段または第２の記憶手段のいずれか一方のアドレスを、初期値に基づいて生成する生成手段（例えば、図１のアドレスカウンタ３６）と、第１の制御手段から要求があったとき、生成手段にアドレス生成のための初期値を設定し、生成手段により生成されるアドレスを利用して、第１の記憶手段と第２の記憶手段との間のデータ転送を制御する第２の制御手段（例えば、図１のDMAコントローラ４２）とを備えることを特徴とする。
【００４２】
情報処理装置は、プログラムとデータを記憶する第１の記憶手段（例えば、図１のＤＲＡＭ４１）と、第１の記憶手段が接続されている第１のバス（例えば、図１のシステムバス１３）と、第１の記憶手段を制御する第１の制御手段（例えば、図１のＣＰＵ３１）と、第１の制御手段が接続されている第２のバス（例えば、図１のＣＰＵバス１２）と、第１の記憶手段と第１の制御手段を制御する第２の制御手段（例えば、図１のホストＣＰＵ２１）と、第２の制御手段が接続されている第３のバス（例えば、図１のホストバス１１）とを備え、第１のバスに接続されているとともに、第３のバスに接続され、第２の制御手段から出力される所定のデータを一時記憶し、出力のタイミングを調整する調整手段（例えば、図１のFIFO２２）と、第２の制御手段と第１の記憶手段との間のデータ転送を制御する第３の制御手段（例えば、図１のDMAC４２）と、第２のバスに接続されているとともに、第３のバスに接続され、第１の制御手段と第２の制御手段との通信に用いられる所定のデータを記憶する第２の記憶手段（例えば、図１のレジスタ２３）とを備える。
【００４３】
情報処理装置は、前記第２の制御手段と前記第１の記憶手段とを直接通信させる通信手段（例えば、図１のホストＣＰＵダイレクトパス２４）とをさらに備える。
【００４４】
図１は、本発明を適用したエンタテイメント機１の構成例を表している。なお、図中、図５における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【００４５】
エンタテイメント機１には、メインバス１０、ホストバス１１、CPUバス１２およびシステムバス１３の４種類のバスがあり、メインバス１０には、記録媒体２と接続されているドライブコントローラ３とメインメモリ４が接続されている。ホストバス１１には、ホストCPU２１とホストインタフェース２５が接続されている。ホストインタフェース２５は、FIFO２２、レジスタ２３、およびホストCPUダイレクトパス２４により構成されており、それぞれは、ホストバス１１に接続されている。メインバス１０とホストバス１１とは接続されている。
【００４６】
CPUバス１２には、レジスタ２３、ホストCPUダイレクトバス２４、CPU３１、ペリフェラル３２、SRAM３３、命令キャッシュ３４、およびビット変換回路３５が接続されている。システムバス１３には、FIFO２２、SRAM３３、命令キャッシュ３４、ビット変換回路３５、DRAM４１、DMAコントローラ４２、アドレスカウンタ３６、およびDSP４３が接続されている。
【００４７】
ホストCPU２１は、記録媒体２からドライブコントローラ３を介して、メインメモリ４に転送されたプログラムに従って、各種の処理を実行するようになされている。例えば、ホストCPU２１は、メインメモリ４からプログラムおよび必要なデータを、DRAM４１にロードしたり、DRAM４１に記憶されているプログラムおよびデータを取得することができる。このとき、ホストCPU２１は、レジスタ２３を介してCPU３１に要求すると、CPU３１がDMAコントローラ４２を起動し、FIFO２２とDRAM４１の間で、DMA転送を実行させる。ホストCPU２１はまた、ホストCPUダイレクトパス２４を介して、DRAM４１、その他の装置に直接アクセスすることもできる。なお、この例の場合、DMAコントローラ４２は、システムバス１３のアービタとしての機能も有している。
【００４８】
FIFO２２は、ホストCPU２１から出力されてくるデータを一時記憶し、システムバス１３を介して、DMAコントローラ４２に出力したり、また、DMAコントローラ４２から転送されてくるデータを一時記憶し、ホストCPU２１に出力する。レジスタ２３は、ホストCPU２１とCPU３１との間でハンドシェイクするときに用いられるレジスタで、コマンドや処理のステータスを表すデータなどをレジストする。
【００４９】
CPU３１は、命令キャッシュ３４にアクセスし、そこに記憶されているプログラムをロード、実行し、また、必要に応じて、SRAM３３にアクセスし、所定のデータの供給を受けるようになされている。CPU３１はまた、SRAM３３に必要とするデータがない場合、DMAコントローラ４２に要求し、DRAM４１からSRAM３３に、DMAによるデータの転送を実行させる。なお、CPU３１の必要とするプログラムが命令キャッシュ３４にない場合、命令キャッシュ３４がそのプログラムをDRAM４１から読み込む。
【００５０】
SRAM３３は、CPU３１とDMAコントローラ４２の両方から同時に、任意のアドレスにアクセスしてデータを読み書きすることができる、例えば、デュアルポートのSRAMであり、データキャッシュ用として設けられ、DRAM４１に記憶されているデータのうち、CPU３１からのアクセスの頻度が高いデータを、記憶するようになされている。SRAM３３は、２バンク構成にして、一方をCPUバス１２に接続し、他方をシステムバス１３に接続するようにしてもよい。SRAM３３はまた、アドレスカウンタ３６により生成されたアドレスにデータを記憶する。
【００５１】
命令キャッシュ３４は、任意のアドレスにアクセスしてデータを読み出すことができるキャッシュメモリであり、DRAM４１に記憶されているプログラムのうち、CPU３１からのアクセスの頻度が高いプログラムを、記憶するようになされている。
【００５２】
ビット変換回路３５は、CPUバス１２を介して入力されるデータのビット幅を、システムバス１３に対応するビット幅に変更して出力したり、システムバス１３を介して入力されるデータのビット幅を、CPUバス１２に対応するビット幅に変更して出力する。
【００５３】
アドレスカウンタ３６は、システムバス１３に接続されているとともに、SRAM３３に接続されている。アドレスカウンタ３６は、初期設定された先頭アドレスをインクリメントすることにより、SRAM３３のアドレスを生成し、SRAM３３に出力するようになされている。
【００５４】
このように、DRAM４１に記憶されているデータのうち、CPU３１からのアクセスの頻度の高いデータを、プログラムとは別に、SRAM３３に記憶させるようにしたので、CPU３１が必要とするデータを効率よく記憶させることができる。
【００５５】
次に、ホストCPU２１から、プログラムとデータをDRAM４１に転送する場合の処理手順を、図２のフローチャートを参照して説明する。
【００５６】
はじめに、ステップＳ１において、ホストCPU２１は、DMAコントローラ４２に、図示せぬメモリに記憶させておいた所定のプログラムとデータ（なお、以下においては、プログラムとデータを特に区別する必要がない場合、両者をまとめて単にデータと称する）の転送を指令する。ステップＳ２において、DMAコントローラ４２が、ホストCPU２１からの指令に対応して、CPU３１およびDSP４３との間で、システムバス１３の使用権の調停を行い、その使用権を獲得する。
【００５７】
次に、ステップＳ３において、ホストCPU２１は、DRAM４１に転送すべきデータを、FIFO２２に出力する。ステップＳ４において、DMAコントローラ４２は、FIFO２２のデータ、すなわち、ホストCPU２１から出力されたデータを、システムバス１３を介して、DRAM４１にDMA転送し、記憶させる。
【００５８】
このように、ホストCPU２１は、CPU３１を介することなく、データをDRAM４１に転送し、書き込むことができる。このことより、CPU３１に負荷をかけることなく、ホストCPU２１は、大量のデータをDRAM４１に高速に転送し記憶させることができる。なお、ホストCPU２１は、同様にして、DMAコントローラ４２に要求し、DRAM４１に記憶されているプログラムおよびデータを、DMAにより転送させ、FIFO２２を介して取得することもできる。
【００５９】
上記のようにして、DRAM４１に記憶されたプログラムとデータのうち、プログラムは、命令キャッシュ３４により読み込まれる。その後、CPU３１は、命令キャッシュ３４にアクセスし、必要なプログラムを読み出す。
【００６０】
またDRAM４１に記憶させたデータを読み出すとき、CPU３１はDMAコントローラ４２に要求し、DRAM４１に記憶させたデータのうち、所定のデータをSRAM３３にDMA転送させる。その後、CPU３１は、SRAM３３にアクセスし、必要なデータを読み出す。このことより、キャッシュミスが発生する確率は低減するが、キャッシュミスが完全に発生しないわけではない。キャッシュミスが発生した場合、例えば、CPU３１は、DRAM４１からSRAM３３に必要とするデータを転送させなければならない。次に、図３に示すタイミングチャートを参照して、DRAM４１からSRAM３３へのDMAによるデータ転送処理について説明する。
【００６１】
この例の場合、DMAコントローラ４２が、CPU３１からの要求に対応して、システムバス１３の使用権を取得し、第ｎクロックのタイミングに合わせて、DRAM４１からSRAM３３に、DMAによるデータの転送を開始する。なお、CPU３１からの要求には、SRAM３３に転送するDRAM４１のデータの先頭のデータのアドレス（以下、DRAM先頭アドレスと称する）（読み出しアドレス）および転送するデータのデータ量（この例の場合、７つのアドレス分のデータ）、並びに転送されてくるDRAM先頭アドレスのデータを記憶するSRAM３３のアドレス（以下、SRAM先頭アドレスと称する）（書き込みアドレス）が含まれている。
【００６２】
図３に示すように、第ｎクロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３を介して、DRAM先頭アドレス（アドレスD1）をDRAM４１に出力するとともに、そのアドレスに記憶されているデータ（データA）の読み出しを指令する。
【００６３】
DRAM４１は、このとき、ページブレイクを起こし、所定の時間（いまの場合、４クロック分の間）、ほぼ動作を停止する。すなわち、DRAM４１は、第（ｎ＋３）クロックのタイミングの直前まで、システムバス（データバス）１３に出力すべきデータ（データA）を出力しないでいる。
【００６４】
次に、第（ｎ＋１）クロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３を介して、アドレスカウンタ３６にSRAM先頭アドレス（アドレスS1）とデータサイズを出力する。アドレスカウンタ３６は、このアドレスS1を初期値として設定するとともに、SRAM３３に、アドレスS1を書き込みアドレスとして出力する。このことより、SRAM３３は、DRAM４１からデータを受信すると、これを書き込むことができる状態となる。
【００６５】
第（ｎ＋３）クロックのタイミングにおいて、DRAM４１は、ページブレイクから回復し、DRAM先頭アドレス（アドレスD1）に記憶しているデータAを読み出して、システムバス（データバス）１３に出力する。SRAM３３は、すでに、書き込みアドレスS1が供給されているので、このタイミングでデータAをアドレスS1に記憶する。
【００６６】
次に、第（ｎ＋４）クロックのタイミングにおいて、DMAコントローラ４２は、システムバス（アドレスバス）１３に、読み出しアドレスとして、DRAM先頭アドレスの次のアドレス（アドレスD2）を出力するとともに、DRAM４１にデータの読み出しを指令する。この指令に対応して、DRAM４１は、指定されたアドレスD2に記憶されているデータBを読み出し、システムバス（データバス）１３に出力する。同じタイミングで、アドレスカウンタ３６は、記憶しているアドレスS1をインクリメントしてアドレスS2とし、SRAM３３に出力する。さらに、同じタイミングで、DMAコントローラ４２は、SRAM３３に書き込みを指令するので、SRAM３３は、アドレスS2にデータBを記憶する。
【００６７】
なお、DMAコントローラ４２は、第（ｎ＋１）クロックのタイミングにおいて、アドレスS1を出力した後、第（ｎ＋４）クロックのタイミングにおいて、アドレスD2を出力するまで、アドレスを出力していないので、第（ｎ＋２），第（ｎ＋３）クロックのタイミングにおいて、システムバス（アドレスバス）１３には、有効なアドレスが存在しない。
【００６８】
第（ｎ＋５）クロック以降、各クロックのタイミングにおいて、第（ｎ＋４）クロックのタイミングの場合と同様に、DRAM４１からSRAM３３にデータが転送される。SRAM３３が、データサイズ分、この例の場合、７つのアドレス分のデータ（データA乃至データG）を記憶すると、DMAによるデータの転送処理が終了する。
【００６９】
このように、DMAコントローラ４２がアドレスカウンタ３６にSRAM先頭アドレスをセットすると、以後、アドレスカウンタ３６が、SRAM３３の書き込みアドレスを生成し、SRAM３３に出力するので、DMAコントローラ４２は、SRAM３３に書き込みアドレスを出力する必要がない。従って、DMAコントローラ４２は、システムバス（アドレスバス）１３に、DRAM４１の読み出しアドレスだけを出力すればよいことになる。このことより、DMAコントローラ４２は、１つのクロックのタイミングで、DRAM４１からSRAM３３に、DMAによるデータの転送を行うことができる。また、DRAM４１がページブレイクを起こしている間に、DMAコントローラ４２がSRAM先頭アドレスをアドレスカウンタ３６に出力するようにしたので、最初のデータ転送におけるオーバヘッドを最小限に抑えることができる。
【００７０】
なお、以上においては、アドレスカウンタ３６に、書き込みアドレス（SRAM３３のアドレス）を生成させるようにしたが、読み出しアドレス（DRAM４１のアドレス）を生成させるようにすることもできる。
【００７１】
このように、CPU３１は、必要とするデータをSRAM３３が記憶していない場合、そのデータをDRAM４１からSRAM３３にDMA転送させる。そしてその後、CPU３１がSRAM３３にアクセスし、そのデータを読み出すようにする。
【００７２】
しかしながら、CPU３１がSRAM３３（DRAM４１）に何度もアクセスする必要がない場合、つまり、CPU３１が必要とするデータが少量のとき、DRAM４１とSRAM３３との間のデータ転送に掛かる時間を考慮すると、CPU３１が、DRAM４１に直接アクセスし処理を実行した方が、SRAM３３を介してデータを読み出すより、速いときがある。
【００７３】
図４は、CPU３１が取り扱うデータ量が少ない場合において、CPU３１がSRAM３３を介してデータを読み出すときのタイミングチャート（図４（Ａ））、およびCPU３１が直接DRAM４１にアクセスし、データを読み出すときのタイミングチャート（図４（Ｂ））を表している。
【００７４】
図４（Ａ）のタイミングチャートは、CPU３１がSRAM３３にアクセスし、所定のプログラムを実行する様子を表しているが、この例において、CPU３１が実行するプログラムは、所定のデータを読み取り、それを演算処理し、演算結果をDRAM４１に記憶させるものとする。
【００７５】
時刻Ｔ1において、CPU３１は、DMAコントローラ４２に、DRAM４１からSRAM３３に、DMAによるデータの転送を要求する。DMAコントローラ４２は、CPU３１からの要求に対応して、システムバス１３の使用権を獲得し、DRAM４１からSRAM３３に、DMAによるデータの転送を開始する。
【００７６】
時刻Ｔ2において、DMAコントローラ４２が、DRAM４１からSRAM３３に、データの転送をし終えると、時刻Ｔ3において、CPU３１が、SRAM３３にアクセスして、DRAM４１から転送されたデータをCPUバス１２を介して読み取り始める。
【００７７】
時刻Ｔ4において、CPU３１は、SRAM３３からデータを読み取り終えると、読み取ったデータに基づいて、所定の演算処理を開始する。時刻Ｔ5において、その処理が終了すると直ちに、CPU３１は、CPUバス１２を介して、SRAM３３に、演算結果を記憶させる処理を開始する。時刻Ｔ6において、演算結果をSRAM３３に書き込み終えると、CPU３１は、DMAコントローラ４２に要求し、システムバス１３の使用権を獲得させ、時刻Ｔ7において、SRAM３３からDRAM４１に、DMAによるデータ（演算結果）の転送を開始させる。時刻Ｔ8において、DMAコントローラ４２は、SRAM３３からDRAM４１に、データの転送を終了する。
【００７８】
図４（Ｂ）に示すタイミングチャートは、CPU３１がビット変換回路３５を介して、DRAM４１に直接アクセスし、所定のプログラムを実行する様子を表している。なお、この例において実行されるプログラムは、図４（Ａ）の例における場合と同様のプログラムである。すなわち、CPU３１は所定のデータを読み取り、それを演算処理し、演算結果をDRAM４１に記憶させる。
【００７９】
時刻Ｔ11において、CPU３１は、ビット変換回路３５を介して、DRAM４１にアクセスして、所定のデータの読み取り始める。ビット変換回路３５は、DRAM４１から読み出されたデータのビット幅（１２８ビット）を、CPUバス１２に対応するビット幅（３２ビット）に変換する。なお、この例において、CPU３１がDRAM４１から読み出すデータは、図４（Ａ）の例において、CPU３１がSRAM３３から読み出すデータと同じである。
【００８０】
時刻Ｔ12において、CPU３１は、DRAM４１からデータを読み取り終えると、読み取ったデータを演算処理する。この例の場合におけるCPU３１の演算処理時間（時刻Ｔ12乃至時刻Ｔ13）および演算結果は、図４（Ａ）の例の場合におけるCPU３１の演算処理時間（時刻Ｔ4乃至時刻Ｔ5）および演算結果と同じである。
【００８１】
時刻Ｔ13において、CPU３１は、ビット変換回路３５を介して、DRAM４１に演算結果を出力し、記憶させる処理を開始する。ビット変換回路３５は、CPU３１からのデータのビット幅を、システムバス１３に対応するビット幅に変換して、DRAM４１に出力する。時刻Ｔ14において、CPU３１は、演算結果をDRAM４１に書き込み終える。
【００８２】
ここで、図４（Ａ）と図４（Ｂ）の例の場合における、プログラム全体の処理時間を比較する。図４（Ａ）の例の場合、処理時間は時間ｔ0（時刻Ｔ1から時刻Ｔ8までの時間）となり、図４（Ｂ）の場合、時間ｔ10（時刻Ｔ11から時刻Ｔ14までの時間）となる。いまの場合、時間ｔ0＞時間ｔ10となり、図４（Ｂ）の例の場合の方がプログラム全体の処理時間が短い。
【００８３】
このように、処理するデータが少量の場合（DRAM４１へのアクセス回数が少ない場合）、CPU３１は、ビット変換回路３５を介して、DRAM４１に直接アクセスして、処理を実行する方が、SRAM３３にアクセスして処理を実行する場合より、処理時間を短くすることができる。
【００８４】
以上においては、本発明をエンタテイメント機に応用した場合を例として説明したが、その他の情報処理装置に本発明を適用することもできる。
【００８５】
なお、上記したような処理を行うコンピュータプログラムをユーザに提供する提供媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【００８７】
【発明の効果】
本発明によれば、第１のバスと第２のバスの間において、初期値に基づいて生成したアドレスを利用してデータを転送するようにしたので、例えば、データを効率よく転送することができる。
【図面の簡単な説明】
【図１】本発明を適用したエンタテイメント機１の構成例を示すブロック図である。
【図２】  DMAによるデータ転送の処理手順を説明するフローチャートである。
【図３】  DMAによるデータ転送の様子を説明するタイミングチャートである。
【図４】  CPUバス１２およびシステムバス１３の状態を表す図である。
【図５】従来のエンタテイメント機６０の構成例を示すブロック図である。
【図６】従来のDMAによるデータ転送の様子を説明するタイミングチャートである。
【符号の説明】
１  エンタテイメント機，  ２  記録媒体，  ３  ドライブコントローラ，  ４  メインメモリ，  １０  メインバス，  １１  ホストバス，  １２  CPUバス，  １３  システムバス，２１  ホストCPU，  ２２  FIFO，  ２３  レジスト，  ２４  ホストCPUダイレクトバス，  ３１  CPU，  ３２  ペリフェラル，３３  SRAM，  ３４  命令キャッシュ，  ３５  ビット変換回路，  ３６  アドレスカウンタ，  ４１  DRAM，  ４２  DMAC，  ４３  DSP，  ５１  キャッシュメモリ，  ６０  エンタテイメント機
【図１】
0003803196.tif 000002
【図２】
0003803196.tif 000003
【図３】
0003803196.tif 000004
【図４】
0003803196.tif 000005
【図５】
0003803196.tif 000006
【図６】
0003803196.tif 000007