"複数のCPUのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるためのメモリアクセス装置であって、メモリをメインメモリとして使用する複数のCPUと、メモリをバッファとして使用する他の機能ブロックと、前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス要求を制御するCPUインターフェースと、前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス要求の調停を行うメモリコントローラとを備え、前記CPUインターフェースは、前記複数のCPUからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送る、メモリアクセス装置。前記メモリはDRAMである請求項1に記載の装置。前記CPUインターフェースは、前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のCPUからのアクセス要求を待機させる請求項2に記載の装置。前記メモリコントローラは、前記1回のバスサイクルで複数のCPUアクセス転送フォ-マットを実行させることを特徴とする請求項3に記載の装置。前記メモリコントローラは、複数の異なるCPUからのアクセス要求を受けたときに、他ブロック転送が実行中であれば前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行する請求項4に記載の装置。前記メモリコントローラは、a前記異なるCPUのアクセス転送要求をDRAMのバンクインターリーブにより、1回の転送サイクルで実行する請求項5に記載の装置。前記メモリコントローラは、b他ブロック転送が実行中に、待機されているCPUアクセスと同じCPUから次のアクセス要求が発行される場合、前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行する請求項6に記載の装置。前記aの転送、及び前記bの転送を組み合わせて実行させる請求項7に記載の装置。前記CPUインターフェースは、転送モード及びアドレスをメモリコントローラに送るステップと、複数のCPUから転送要求を受け取り、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブモードにはいることを示すBI信号を前記CPUコントローラに転送するステップと、転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを前記カウントがそれぞれの転送の転送サイズに達するまで実行し、バンクインターリーブモードの時は、複数のCPUからのそれぞれのアクセスが待機されているため、それらを実行するステップと、次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、CPUインターフェース回路はContinue信号をメモリコントローラに送るステップを含み、前記メモリコントローラは、BI信号を受け取ったかチェックするステップと、CPUインターフェースからの知らせでバースト転送を停止するステップと、複数のCPUにContinue信号が立っていることを確認し、CPUインターフェース回路に待機されている次の要求を実行し、バースト転送を停止するステップ3に移動し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、Prechargeコマンドをメモリに発行し使用したバンククローズするステップとを含む請求項7に記載の装置。前記メモリコントローラの前記ステップ2は、BI信号の場合、該当するバンクに対する複数のActivateコマンドをメモリに発行し、BI信号でない場合、1つのActivateコマンドを発行するステップを含む請求項7に記載の装置。メモリとしてDRAMを含む請求項1に記載の装置。複数のCPUのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるために、メモリをメインメモリとして使用する複数のCPUと、メモリをバッファとして使用する他の機能ブロックと、前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス要求を制御するCPUインターフェースと、前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス転送の調停を行うメモリコントローラとを含む装置におけるメモリアクセス方法において前記複数のCPUからのアクセス要求を待機するステップと、各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせるステップと、アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送るステップと、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送る、ステップとを含むメモリアクセス方法。しかしながら、特許文献1のバス調停システムは、複数のCPUのメインメモリとバッファメモリなどと共有されたメモリシステムにおいて、CPUアクセスの遅延やCPUと複数転送ブロックのスループットを考慮したメモリの共有化を示さない。そこで、本発明の目的は、情報装置例えばストレッジデバイスの具備する複数のCPUのためのメインメモリの共有化メモリ機構のメモリアクセス装置及びその方法を提供することである。上記の目的を達成する本発明は、複数のCPUのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるためのメモリアクセス装置である。このメモリアクセス装置は、メモリをメインメモリとして使用する複数のCPUと、メモリをバッファとして使用する他の機能ブロックと、前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス転送を制御するCPUインターフェースと、前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス転送の調停を行うメモリコントローラとを備え、前記CPUインターフェースは、前記複数のCPUからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送ることを特徴とする。このメモリアクセス装置の特徴は、メモリはDRAMであることである。このメモリアクセス装置の特徴は、前記CPUインターフェースが前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のCPUからのアクセス要求を待機させることである。このメモリアクセス装置の特徴は、前記メモリコントローラが前記1回のバスサイクルで複数のCPUアクセス転送フォーマットを実行させることである。このメモリアクセス装置の特徴は、前記メモリコントローラがa複数の異なるCPUからのアクセス要求を受けたときに、他ブロック転送が実行中であれば前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行することである。このメモリアクセス装置の特徴は、前記メモリコントローラが前記異なるCPUのアクセス転送要求をDRAMのバンクインターリーブにより、1回の転送サイクルで実行することである。このメモリアクセス装置の特徴は、前記メモリコントローラがb他ブロック転送が実行中に、待機されているCPUアクセスと同じCPUから次のアクセス要求が発行される場合、前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行することである。このメモリアクセス装置の特徴は、他のブロックからの転送、前記aの転送、及び前記bの転送を組み合わせて実行させることである。このメモリアクセス装置の特徴は、前記CPUインターフェースは、転送モードRead/Write及びアドレスをメモリコントローラに送るIdleステップと、複数のCPUから転送要求を受け取り、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブモードにはいることを示すBI信号を前記メモリコントローラに転送するステップと、転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを実行し、バンクインターリーブモードの時は、2つのCPUからのそれぞれのアクセスが待機されているため、それら2つを実行するステップと、次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、CPUインターフェース回路はContinue信号をメモリコントローラに送るステップを含み、前記メモリコントローラは、BI信号を受け取ったかチェックするステップと、CPUインターフェースがバースト転送を停止するステップと、2つのCPUにContinue信号が立っていることを確認し、2つのCPUにContinue信号が立っている場合、CPUインターフェース回路に待機されている次の要求を実行し、1つのCPUにContinue信号が立っている場合、バースト転送を停止するステップ3に移動し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、Prechargeコマンドをメモリに発行しrowアクセスをクローズするステップとを含むことである。このメモリアクセス装置の特徴は、前記メモリコントローラの前記ステップがBI信号の場合、該当するバンクアドレスに対する複数のActivateコマンドをメモリに発行し、BI信号でない場合、1つのActivateコマンドを発行するステップを含むことである。このメモリアクセス装置の特徴は、メモリとしてDRAMを含むことである。更に上記の目的を達成する本発明は、複数のCPUのためのメインメモリと他の機能ブロックデータフローのためのバッファとを共有化させるために、メモリをメインメモリとして使用する複数のCPUと、メモリをバッファとして使用する他の機能データフローブロックと、前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス転送を制御するCPUインターフェースと、前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス転送の調停を行うDRAMコントローラとを含む装置においけるメモリアクセス方法である。この方法は、前記複数のCPUからのアクセス要求信号をキューするステップと、各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記DRAMコントローラに前記アクセス要求信号を知らせるステップと、アクセス要求信号に対して許可信号を受けた場合に、前記許可信号に応じて前記DRAMコントローラに前記情報を送るステップと、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送るステップとを含むことを特徴とする。以上のように本発明によれば、複数のCPUのメインメモリが他のバッファメモリなどと共有されたメモリシステムにおいて、メインメモリアクセス要求が来た時にアクセス遅延を最小化し、かつ、データ転送のオーバーヘッドを小さくできる。以下において、記録装置におけるデータフローと複数のCPUからのアクセスについてDRAMアクセス装置の本発明の実施形態以下実施例というが説明される。以下の実施例は、例示であり本発明の内容を限定するものではない。複数のCPUメインメモリと他のバッファメモリとが共有されるメモリシステムにおいて、CPUメモリアクセス要求が来た時に次の手法を行う。a複数のメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればそれらの要求は待たされる。他ブロックの転送後、これらの2つの転送要求をDDR3SDRAMなどの仕様におけるバンクインターリーブBankInterleave:以下BIとも言うにより、1回のサイクルで実行する。bあるメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればその要求は待たされる。その間に同じCPUから次のアクセス要求が発行される。DRAMメモリコントローラArbitor:アービタは、メインメモリのアクセス許可を行い、既にキューされているCPU転送と共に次の転送要求がキューされていれば、条件を考慮して同じサイクルで次のデータ転送も行う。c上記2つの組み合わせ。これら手法により、転送のオーバーヘッドを削減し、効率のよいDRAM転送を行う。aでは、共有メモリの中で複数のCPUメインメモリの領域を論理分割して持つアーキテクチャーでは、それぞれの領域をDDR3SDRAMのバンクアドレスBankAddressでマップする。2つのCPUアクセスが2つの領域のアクセス先で異なっても、バンクアドレスによるバンクインターリーブを使って一度に2つの転送を実行する。これにより第2以降の転送要求に対して課題2が解決される。bでは、最初の要求は進行中の他ブロックの転送終了まで待たされるが、以降の転送要求の応答時間は大幅に短縮される。これにより第2以降の転送要求に対して課題2が解決される。cでは、abの2つ手法を合わせて使うことにより、複数のCPUからの転送要求が1回の転送サイクルで終了する。複数のCPUからのアクセスが1回の転送で済むため、転送オーバーヘッドが削減され、メモリの帯域使用効率が上がり、課題1が改善される。余った帯域を確保できるためメインメモリ帯域自身や他のブロック例えばデータフローブロックの帯域に割り振ることが可能となる。このキューの数をシステムによって調整すれば、高使用効率の共有メモリコントローラが実現できる。図2は、複数のCPUアクセス及びデータフローのアクセスするDRAM構成における本発明のメモリ転送の概念図を示す。本発明の手法a~cについて図2を用いて説明する。Bは、データバス47とCPUローカルバス48が外部DRAM45を要求化していることを示す。情報装置例えばストレッジ装置は、機能制御のための複数のCPUとデータの読み出し書込みのためのデータバス47を備えている。各CPU49からDRAM45にアクセス転送される。これらに並行してデータの読み出し書き込みのためのメモリをバッファ451として使用する。複数のCPU1,2,3,からのCPU転送CPUアクセスはDRAMの452を使用する。このとき各CPUからのアクセスはバンクインターリーブによるアドレッシングにより異なるバンクアドレスが割り当てられる。Aは、データバス47がデータフローのREQ1,2,が512バイトの転送41をそれぞれ一回転送されていることを示す。この転送中複数のCPU転送が待ち状態である。CPU1からの転送43はデータ転送終了後に1回転送でまとめて実行される。CPUアクセスのオーバーヘッド39を縮小化される。データフロー41のごとに1回の転送サイクルで512バイトのデータが転送されるが、その間CPU転送を待たされCPUアクセスが遅延する。複数のCPUアクセスが連続し集中するとデータ転送完了の遅延が各アクセス転送に及ぶ。CPUアクセス転送はRead/Writeのコマンドを含む32B斜線部分であり小さい。2つ又はそれ以上のCPUアクセスが1回転転送にまとめることができれば、全体でCPUアクセスのオーバーヘッドを小さくできる。一方、CPUアクセスが集約できればCPUアクセスの転送だけでなく、データフローのために十分な転送帯域を確保できデータ転送のスループットが向上する。図3は、テープドライブ10の構成図を示す。実施例を適用するテープドライブについて説明する。テープドライブ10は、インターフェース11と、バッファ12と、記録チャネル13と、テープ23と、ヘッド14と、リール21、22と、カートリッジ20と、モータ15と、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。インターフェース11は、ホスト30と通信を行う。インターフェース11は、ホスト10からバッファ12へ転送されるデータの書込みを指示するコマンド、バッファ12のデータをテープ23への書込みを指示するコマンドを受け取る。例えばインターフェース11の通信の規格はSCSIまたはファイバーチャネルFibreChannelである。バッファ12は、テープ23に書き込むべきデータを蓄積するメモリである。バッファ12は、固定長のセグメントで区切られる。ひとつのセグメントは、テープ23上の一つのデータセットに対応する。データセットは、C1パリティとC2パリティとからなる積符号が付加されたデータ構造である。データセットDataSetは、それが含む複数のレコードデータの区切れ情報などを属性情報としてDSITDataSetInformationTableに含む。コントローラ16に含まれるCPUがバッファ12においてデータセットごとにDSITを生成し、DSITは各データセットに含まれる。DSITの生成は、CPUが直接データバッファへアクセスしてファームウェアを実行してデータの管理情報を付加できることを意味する。バッファ12は、最後のセグメントまでデータを受け取り次は再び最初のセグメントからデータを受け取りはじめるという意味でリングバッファと呼ばれる。データは、任意の長さでホスト30からドライブに転送される。また、固定長のデータをホストが転送したとしてもデータ圧縮が行われる場合には、データの長さがデータごとに異なる。これらの転送データは、順次バッファ12のセグメントに順次蓄積される。記録チャネル13は、いろいろな大きさのデータで充填されたセグメントのデータを、データセットとしてテープ媒体に書込む通信経路である。バッファ12に蓄積されたデータは、セグメント毎にデータセットとして、テープ媒体に書込まれる。書込みのタイミングは、セグメントがデータにより完全に充填された場合である。テープ23は、データの記録手段としての記録媒体である。記録チャネル13を介して渡されたデータをデータセットとしてヘッド14によりテープ23に書込まれる。テープ23は、リール21及び22に巻かれ、これらの回転に伴い、リール21からリール23の方向へ、又は、その反対の方向へ、縦方向に移動する。カートリッジ20は、テープ23が巻きつけてあるリール20を収容する容器である。20と同じカートリッジにより、リール14dを収容するものを設けてもよい。モータ15は、リール21及び22を回転させる。コントローラ16は、テープドライブ10の全体を制御する。コントローラ16は、ホスト30からインターフェース11で受け付けたコマンドに従って、データのテープ23への書込み読取りを制御する。また、コントローラは、ヘッド位置制御システム17やモータドライバ18の制御も行う。ヘッド位置制御システム17は、所望のトラックを追跡する。ヘッド14は、トラックを切り換える必要が生じると、ヘッド位置制御システム17が、ヘッド14を電気的に切り換えの制御を行う。モータドライバ18は、直接コントローラ16に接続されていてもよい。図4は、テープドライブのコントローラ16に含まれるDRAMコントローラやデータフロー制御などを行う回路ブロックの構成ASICを示す。コントローラ16は、各種制御を行うプロセッサ80、ファームウェアを保持するFlashROM90、バッファマネジャ40、テープ転送70、ホスト転送60、C2ECC計算機エラー訂正50など機能ブロックを含む。テープ転送ブロック70は、テープ23および読書きヘッド14を接続される。ホスト転送ブロック60は、ホスト30に接続される。コントローラASIC16は、テープ媒体23およびヘッド14、ホスト30および外部バッファ12との関連を制御する。特にバッファマネジャ40は、外部バッファ120と、テープ転送30ブロック、ホスト転送60ブロック、C2ECC計算機ブロック50及び2つのプロセッサCPU1、CPU280との間メモリアクセスの仲介機能を有する。ホスト30からデータ転送されテープ書込が行われるデータ転送フローを説明する。ホスト転送ブロック60からのデータは、ホストから書込まれたデータをバッファマネージャブロック40を介して外部バッファ12に一旦書き込まれる。バッファマネージャブロック40は、各機能ブロック50、60、70から外部バッファのデータ転送のアクセスを高速にパイプライン処理で実行するために高帯域を必要とする。外部バッファは、例えばバス幅は4バイト又は8バイトを有するDDR3SDRAM12である。また、外部バッファ12に書き込まれたデ-タは、C2ECC計算機50のSRAMに転送される。C2ECC50では、全てのデータのエラー訂正をし、訂正データをDDRSDRAM12に書き戻す。データフローコントローラの機能として、バッファマネジャ40は、各機能ブロック50、60、70が効率よくDDR3SDRAM12をアクセスできるよう、時分割でバスを切り換えている。C2ECC50にとっては、DDR3SDRAM12から読んだデータをDDR3SDRAM12に書き戻している構造上、処理時間の要求も厳しい。各機能ブロックからデータ転送を均一的にパイプライン処理できるように、各ブロック転送のために帯域確保を確保することが必要である。CPUがホストやメディアの転送を制御すると、データは外部バッファに一時的に格納され、順次処理される。例えばホストからストレージデバイスへの書き込みの場合、ホストからのデータは最初に外部バッファに格納される。次にエラー訂正コード以下ECC付加のため、外部バッファから読み出されECC計算機に送られる。ECC計算機で計算されたECCパリティは再び外部バッファへ格納される。その後、メディア側への転送のため再び外部バッファから読み出される。1回のWriteまたはRead処理みに関してバッファマネジャは、複数の機能ブロックを介して外部バッファに対して複数回のアクセスを実行する。更にこれらの処理はパイプラインとなり、同時に複数のアクセス要求が外部バッファに発生する。図5は、複数のCPUを含むアクセスブロック図示せずのためのローカルバス51と、CPUインターフェースと、DRAMコントローラとの接続関係を示す。図3において、これらDRAMアクセス回路はコントローラ16に含まれる。DRAMコントローラはバッファ12を共有する。通常DRAMコントローラは、DDR3SDRAMなどのDRAMにコマンドを発行するシーケンスを管理している。アクセスするブロックによって最適なコマンド発行順番が変わるため、コマンドシーケンスはハードウェア上にステートマシンで実装される。このDRAMコントローラにおけるコマンド制御回路とCPUインターフェース回路の、2つの回路構成で実現できる。CPUのためのメインメモリとデータ転送のためのバッファなどの2つのメモリが共有されるシステムを想定している。メモリチップ図示せずとの信号線は両方で共有され、DRAMコントローラ53は各アクセスブロックの調停を行いながら時分割でDRAMメモリとデータ転送を行う。CPUからのメインメモリアクセスを含んだアクセスブロックは転送要求REQ信号を上げ、許可されるとAllowed信号が上がり、転送を開始できる。DRAMコントローラ53では、アクセスを許可するブロック図示せずを決定すると、コマンド制御回路が動き出して転送ブロックに合わせたシーケンスでコマンドを発行する。CPUインターフェースCPUインターフェース回路またはCPUインタフェースブロックとも言う。について説明する。この回路は、複数のCPUのローカルバスと接続されてアクセス要求とデータ転送を行う。DRAMコントローラ側に対してはDRAM転送要求と転送が許可された後のデータ転送を行う。CPUローカルバスとのインターフェースは、転送要求信号と共にアドレスやRead、Write方向、転送データサイズなどの信号が接続される。図6はCPUインターフェースが複数のローカルバスとDRAMコントローラを接続する。2つのインターフェースブロックとしてCPU1及びCPU2を与える。DRAMアクセスブロック1及び2は、情報機器の他の機能させるブロックである。アクセスブロック63及び64は、例えばデータフローでのデータ書込み/読取りのためのブロックである。2つのCPUから、共有されているそれぞれのメインメモリ領域へのアクセスをCPUインターフェース52の回路を経由して外部DRAMメモリ67に対して行う。転送要求信号REQ信号は、キューを管理する要求待ち制御RequestQueueControl回路54に送られる。最初の要求はこの制御回路54により即座に処理されてDRAMコントローラ53にDRAM転送要求が送られる。DRAMコントローラに含まれるアービタ65は、他のブロックを含めた転送要求の調停を行う。DRAMコントローラは、CPU転送CPUアクセス転送を許可するときはAllowed信号を上げる。Allowed信号を受け取ったDRAMコントローラインターフェース回路54は、メモリアドレスやWriteデータ、Readデータの転送をDRAMコントローラ53との間で行う。CPUからのDRAM転送要求でAllowed信号が上がらないときは、他のブロック63または64がデータ転送中などでアクセスが許可されないときである。DRAMコントローラインターフェース54は、REQ信号は上げたまま許可されるのを待つ。このとき次の転送要求が来ると要求待ち制御RequestQueueControl回路54はその要求を受けつける。要求のキュー要求待ちのされ方により、上述した3つの手法a、b、cを使い分ける。2つの要求キューが2つのCPUからのアクセスの場合は、手法aにより、Allowed信号が来たらbankinterleave信号BI信号を上げてバンクインターリーブによる転送を実行できる。ただし、2つのCPUからの要求アドレスのBankアドレスが違う必要がある。2つの要求キューが同一のCPUからの場合は、手法bにより、Allowed信号が来たらContinue信号を使って2つの要求を1回のサイクルで転送する。または手法cにより、転送効率を向上させることができる。つまり、動作aの実行中に、処理しているCPUから次の要求が来ると、そのサイクル実行中に動作bを行う。次の転送要求をキューできるかどうかは、CPUの仕様に拠る。Write要求はWriteするデータを受け取ったらメインメモリに実際に転送してなくてもサイクルを終了させることができる。先読みが可能なCPUではRead転送も要求だけキューしておいて後でReadデータを受け取ることが可能である。DRAMコントローラ53について説明する。バンクインターリーブによる転送実行は、上記REQ信号がまだ受理されていないとき、つまりAllowed信号が上がってないときに複数のCPUからのアクセス要求があるときに実行される。また、CPUインターフェース52は、Allowed信号が上がって転送権を得ると、DRAMコントローラのコマンドシーケンスコントローラ66との間で適切なタイミングで転送モード情報、アドレス、データの転送を行う。データ転送が終わると適当なタイミングでPrechargeコマンドを発行するなど、サイクル終了となる。その前にCPUインターフェース52は、転送要求キューの状態を調べて次の転送が可能ならばContinue信号を上げて次の転送をDRAMコントローラに要求する。Continue信号を受けたDRAMコントローラは、次の転送コマンドWrite又はReadを発行し、キューにある次の要求を処理する。なお、アービタarbiter65は、複数のブロックからのアクセス調停をする。図7は、本発明を実行する、コマンドシーケンスのフローチャートを示す。このフローチャート左図は、複数例えば2つのCPUのメインメモリを共有するシステムにおける本発明の動きを、コマンドシーケンス制御のフローとして示す。右図は、各ステップにおけるCPUインターフェース及びDRAMコントローラの機能を示す。●ステップ0CPUインターフェース:転送モードRead/Write及びアドレスをDRAMコントローラに送る。●ステップ1CPUインターフェース:1つまたは2つのCPUから転送要求を受け取る。2つのCPUから要求があり、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブが可能である。DRAMコントローラへBankInterleaveモードにはいることを示すBI信号を送る。●ステップ2DRAMコントローラ:BI信号を受け取ったかチェックする。BI信号の場合、BI信号を受け取り、該当するバンクに対する複数のActivateコマンドを発行する。BI信号でない場合1つのActivateコマンドを発行する。●ステップ3CPUインターフェース:続いてキューされているメインメモリ転送、ReadまたはWriteを実行する。BankInterleaveモードの時は、複数例えば2つのCPUからのそれぞれのアクセスがキューされているため、それらを実行する。転送は、転送ワードをカウントしながら、CPUに指定されたサイズ分終了するまでバースト転送される。DRAMコントローラ:CPUインターフェースがバース転送を終了したらステップ4に移動する。●ステップ4:CPUインターフェース:この時点で次の転送要求が来ている場合かつそれらの要求アドレスがBIモード可能なアドレスの場合、Continue信号をDRAMコントローラに送る。DRAMコントローラ:Continue信号が立っていることをチェックする。Continue信号が立っている場合は、ステップ3に移動する。Continueがたっていない場合は、ステップ5に移動しこの転送サイクルは終了する。●ステップ5:DRAMコントローラ:転送サイクルが終了の場合は、PrechargeコマンドがROWへのアクセスをクローズする処理を行う。次に、BI信号とContinue信号をCPUインターフェースが上げる条件を考える。DRAMメモリでは連続したアドレスには追加のオーバーヘッドなしで連続アクセスできる。具体的にはDRAMメモリのバンクアドレスとRowアドレスが同じ場合である。DRAMメモリは、bank、row、columnのアドレスがある。bank、rowアドレスが同じならその中で任意のcolumnアドレスにアクセスできる。これは図7のステップ3を繰り返すことであり、したがってこの条件では複数個のアクセス要求を1回分のオーバーヘッドで転送できる。Rowアドレスが異なるとActivateコマンドをその都度発行する必要がある。これは、図7のステップ2が必要となる。ステップ5のPrechargeコマンドは、Bankアドレスを指定してそのバンクに対して行うので、Rowアドレスが違ってもBankアドレスが同じなら1回のPrechargeですむ。バンクアドレスが異なると、Activateコマンドを発行しなければならない。転送終了後のRechargeコマンドはすべてのバンクに対するコマンド発行が可能なためオーバーヘッドは増えない。このようにバンクインターリーブを使用して、複数のCPUからのアクセスを1回の転送で実行することにより、Prechargeコマンド分のオーバーヘッドを削減できる。本発明において最大の効果を得られるのは複数のCPUからの転送要求で、バンクアドレスが異なり、さらにそれぞれがBankアドレス、Rowアドレスが同一の要求を連続して行う場合である。そこで上記実施例ではContinue信号を上げる条件はBank、Rowアドレスが前の転送と同じ場合とした。ここでBankアドレスなどはDRAMのアドレスである。CPUが使うアドレスは論理アドレスでありDRAMアドレスは物理アドレスであるので、CPUインターフェース回路がCPUの論理アドレスからContinue条件を判断する方法が必要である。そこで、論理アドレスのどのビットがBankアドレスにマップされ、どのビットがRowアドレスにマップされているかを示すテーブルをDRAMコントローラからCPUインターフェースに渡す。これにより、CPUインターフェースは前後の要求のアドレスが同じ物理アドレスかどうか判定してContinue条件とする。これは図6に、CPUインターフェースとDRAMコントローラの間にあるPADDRTable信号で示している。以上の本実施例では、CPUインターフェース、DRAMコントローラ双方に以上の機能を実装することにより、複数のCPUからの複数の要求を1回のDRAMアクセスサイクルで転送可能となり、帯域使用効率の向上が実現できる。例としてキャッシュサイズが32バイトのCPUのアクセスを考える。DRAMのバス幅が32ビットの場合、DDR3SDRAMでは1ワードが4バイトなので8バーストで転送できる。DDRメモリは1クロックで2バーストするため、データ転送クロックは4クロックである。しかし、DDR3SDRAMのACタイミング規定より、このサイクルはReadで22クロックほどかかる。このクロック数は動作周波数などに依存する。このアクセスだけに限れば、オーバーヘッドの比率は8割以上となる。これを本特許の機能で例えば2つのCPUからの2つの転送をまとめて1回のサイクルで転送すると、オーバーヘッドの比率を50ほどまで小さくしながら、合計64バイトを転送できる。本発明によれば、CPU以外の転送として、データフロー転送があり、その合間にCPU転送を割り込ませるアービターシステムの枠組みの中で、複数のバースト長の短いCPUからのアクセスを効率よく転送する。バースト長が短いと相対的にDDRメモリの転送オーバーヘッドはおおきくなり、転送効率が落ちる。本発明の範囲は、かかる共有化メモリの利用環境で、なるべく多くのCPUアクセスを最大効率で入れ込みたいというものである。"