(57)【要約】  複数のＣＰＵのためのメインメモリの共有化メモリ機構のメモリアクセス装置を提供する。  メモリをメインメモリとして使用する複数のＣＰＵと、メモリをバッファとして使用する他の機能ブロックと、ＣＰＵのバスに接続され、メモリへの複数のＣＰＵからのアクセス転送を制御するＣＰＵインターフェースと、メモリへのアクセス転送の調停を行うＤＲＡＭコントローラとを含み、ＣＰＵインターフェースは、複数のＣＰＵからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、ＤＲＡＭコントローラにアクセス要求を知らせ、アクセス要求に対して許可信号を受けた場合に、許可信号に応じて前記ＤＲＡＭコントローラに情報を送り、ＤＲＡＭコントローラは、アクセス要求信号を受取り、アクセス調停に基づいて転送を許可されたＣＰＵを指定して許可信号をＣＰＵインターフェースに送る。
2012070319.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるためのメモリアクセス装置であって、
メモリをメインメモリとして使用する複数のＣＰＵと、
メモリをバッファとして使用する他の機能ブロックと、
前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス要求を制御するＣＰＵインターフェースと、
前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのメモリへのアクセス要求の調停を行うメモリコントローラとを備え、
前記ＣＰＵインターフェースは、前記複数のＣＰＵからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、
前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送る、メモリアクセス装置。
【請求項２】
前記メモリはＤＲＡＭである請求項１に記載の装置。
【請求項３】
前記ＣＰＵインターフェースは、前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のＣＰＵからのアクセス要求を待機させる請求項２に記載の装置。
【請求項４】
前記メモリコントローラは、前記１回のバスサイクルで複数のＣＰＵアクセス転送フォ−マットを実行させることを特徴とする請求項３に記載の装置。
【請求項５】
前記メモリコントローラは、複数の異なるＣＰＵからのアクセス要求を受けたときに、他ブロック転送が実行中であれば前記複数のＣＰＵアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行する請求項４に記載の装置。
【請求項６】
前記メモリコントローラは、（ａ）  前記異なるＣＰＵのアクセス転送要求をＤＲＡＭのバンクインターリーブにより、１回の転送サイクルで実行する請求項５に記載の装置。
【請求項７】
前記メモリコントローラは、（ｂ）他ブロック転送が実行中に、待機されているＣＰＵアクセスと同じＣＰＵから次のアクセス要求が発行される場合、前記複数のＣＰＵアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行する請求項６に記載の装置。
【請求項８】
前記（ａ）の転送、及び前記（ｂ）の転送を組み合わせて実行させる請求項７に記載の装置。
【請求項９】
前記ＣＰＵインターフェースは、
転送モード及びアドレスをメモリコントローラに送るステップと、
複数のＣＰＵから転送要求を受け取り、かつそれらのバンクアドレスが異なる場合は、
バンクインターリーブモードにはいることを示すＢＩ信号を前記ＣＰＵコントローラに転送するステップと、
転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを前記カウントがそれぞれの転送の転送サイズに達するまで実行し、バンクインターリーブモードの時は、複数のＣＰＵからのそれぞれのアクセスが待機されているため、それらを実行するステップと、
次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、ＣＰＵインターフェース回路はContinue信号をメモリコントローラに送るステップを含み、
前記メモリコントローラは、
ＢＩ信号を受け取ったかチェックするステップと、
ＣＰＵインターフェースからの知らせでバースト転送を停止するステップと、
複数のＣＰＵにContinue信号が立っていることを確認し、ＣＰＵインターフェース回路に待機されている次の要求を実行し、バースト転送を停止するステップ３に移動し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、
Prechargeコマンドをメモリに発行し使用したバンククローズするステップとを含む請求項７に記載の装置。
【請求項１０】
前記メモリコントローラの前記ステップ２は、ＢＩ信号の場合、該当するバンクに対する複数のActivateコマンドをメモリに発行し、
ＢＩ信号でない場合、１つのActivateコマンドを発行するステップを含む請求項７に記載の装置。
【請求項１１】
メモリとしてＤＲＡＭを含む請求項１に記載の装置。
【請求項１２】
複数のＣＰＵのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるために、メモリをメインメモリとして使用する複数のＣＰＵと、
メモリをバッファとして使用する他の機能ブロックと、前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス要求を制御するＣＰＵインターフェースと、前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのメモリへのアクセス転送の調停を行うメモリコントローラとを含む装置におけるメモリアクセス方法において
前記複数のＣＰＵからのアクセス要求を待機するステップと、
各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせるステップと、アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送るステップと、
前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送る、ステップとを含むメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報装置の含む複数のプロセッサのためのメモリアクセスの制御に関する。
【背景技術】
【０００２】
ストレージデバイスにおいて、消費電力の削減やコストの削減は課題の一つである。例えば、使用しているＤＲＡＭメモリ点数を削減することは、消費電力、コスト、設置面積の削減に大きく貢献する。近年は、複数のＣＰＵを搭載したＳｏＣ  ＬＳＩが開発されている。一般的に複数のＣＰＵにはそれぞれメインメモリが必要である。この複数のＣＰＵメモリを同じＬＳＩにおける他のＤＲＡＭメモリと共有することにより、メインメモリとして使用するＤＲＡＭメモリを削減することが可能となる。【０００３】
図１は、ＣＰＵからのアクセス（ＣＰＵアクセス）とデータフロー転送とにおいて共有化されたＤＲＡＭメモリと、その共有化を可能とするアービタとを有すＡＳＩＣを示す。この共有メモリ構成では、データフローのデータバッファとＣＰＵのメインメモリは、同じＤＲＡＭメモリチップを共有する。共有化メモリでは、１つのＤＲＡＭメモリの使用領域は物理的に分離されている。【０００４】
ＣＰＵを使用するファームウェアは、データフローＡＳＩＣなどのハードウェアを制御して記録媒体とのデータ転送をしている。ファームウェアのコード本体はメインメモリ上に置かれるので、動作上、メインメモリアクセスが発生する。メインメモリアクセスの要求を出して、その要求が完了するまでの遅延はＣＰＵの処理待ち時間となる。この処理待ち時間が大きいとＣＰＵのパフォーマンスが低下する。【０００５】
この方法では、それぞれのデータ転送が滞ると、最終的にはホスト転送の中断やメディア転送パフォーマンスの低下につながる。データバッファアーキテクチャを考える場合、全てのブロックからのデータ転送要求が同時に発生するときに、それぞれの必要帯域を満す必要がある。メインメモリをデータバッファと共有する場合でも、データフロー転送及びＣＰＵアクセスのスループットを満たす必要がある。特に、デバイスが複数のＣＰＵを搭載しておいる場合、ＤＲＡＭメモリのバンド幅を確保する必要がある。しかしＤＲＡＭメモリでのバス幅と周波数で決まる物理的な帯域は限られる。【０００６】
更にメインメモリへのアクセスはアクセス応答時間が、ＣＰＵのパフォーマンスに影響する。現在のメインメモリへのアクセス以外の転送（例えばデータフロー転送）が行われているときにメインメモリアクセス要求が来ると、その要求は現在の転送が終わるまで待つ必要がある。以上から、メインメモリと他のＤＲＡＭメモリを共有する場合は、次の課題がある。【０００７】
１．限られた帯域の中で複数のＣＰＵのメインメモリへのアクセスの帯域をいかに確保するか。
帯域確保の簡単な対応は物理帯域そのものを向上することである。しかし、バス幅を広げて帯域を上げるのは使用チップ数が増えることになり本来のメモリ部品数の削減の目的に沿わない。また周波数を上げる場合は、それにより消費電力が増えるため、完全な解決策とはいえない。【０００８】
与えられた物理帯域の中で帯域を広げるには、転送のオーバーヘッドを削減することが効果的である。一般に使われているＤＤＲ３  ＳＤＲＡＭなどのＤＲＡＭ技術は１回のアクセスでバースト転送長を長くすればオーバーヘッドの比率を下げることができる。必要帯域を満たすメモリ・アーキテクチャでは、高い帯域が必要なブロックには長いバースト転送を許可し、そうでないブロックは短いバースト長の転送とする技術が有効である。実際ＩＢＭテープドライブのデータバッファはこのような思想で設計されており、高いデータ転送効率で、比較的低い動作周波数を実現している。【０００９】
しかし、応答時間が重要となるメインメモリアクセスの場合、メインメモリ要求が来たときに他のブロックのメモリアクセス中ならば、メインメモリアクセスは現在の転送が終わるまで待つ必要がある。現在の転送を中断してメインメモリ転送を許可する対応策も考えられるが、他のブロックのバンド幅を圧迫するためパフォーマンスを要求されるシステムでは採用できない。【００１０】
ＤＲＡＭ技術におけるオーバーヘッドとは、動作モード設定コマンド（MRS）、アクセスしたい行アドレスを有効にするコマンド（Activate）、使用した行を閉じるコマンド（Precharge）、リフレッシュコマンド（Refresh）などである。これらのコマンドではデータは転送されない。この仕様を応用して、連続アドレスへのアクセスはPrechargeコマンドを発行しないという既存技術もある。この記述はメインメモリ専用ＤＲＡＭでは有効であり、実際オーバーヘッドの短縮につながる。しかし、用途の異なるＣＰＵによる共有メモリの場合は、メモリの物理領域を分割して使用するためアドレスが連続せずこの方法は有効でない。【００１１】
また、ＣＰＵからのメインメモリアクセスはバイト単位かキャッシュラインによるアクセスである。組み込みシステムのＣＰＵの場合キャッシュラインは３２バイトや６４バイトの大きさである。この場合、ＤＲＡＭメモリのデータバスが３２ビットならば、４バーストや８バーストによる転送となる。したがって、ＣＰＵアクセスはバースト転送の点で効率がよくなく、オーバーヘッドが大きくなる。【００１２】
２．メインメモリ要求の応答時間をいかに短縮するか。
課題１で挙げたように、メインメモリアクセス要求が来たときに他のブロック（例えばデータフロー）の転送中であれば、その転送が終了するまでメインメモリ転送は待つ必要がある。その転送終了後、メインメモリアクセスが最優先されるアービタ設計ならば、アクセスが許可されてデータ転送する。他のブロックの転送サイクルは最低でもＤＲＡＭメモリのクロックで２０クロックほどであり、メインメモリアクセスのレイテンシが大きくなる主要因の一つである。他のブロックの転送を中断する方法は、中断分のペナルティの補償をシステムとして考える必要がある。またそれにより再転送サイクルが必要となり、転送オーバーヘッドが増加するため、そのブロックの帯域を保証するのは困難である。【００１３】
特許文献１は、ホスト側とＣＤメディア側のデータバッファアクセスというバスアクセス調停システムに関する。このバスアクセス調停システムは、ＣＤドライブにおいてデータバッファへの複数のブロックのアクセスを制御するときに、各ブロックからのアクセスに優先度と回数制限を設ける。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平１１−１２０１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献１のバス調停システムは、複数のＣＰＵのメインメモリとバッファメモリなどと共有されたメモリシステムにおいて、ＣＰＵアクセスの遅延やＣＰＵと複数転送ブロックのスループットを考慮したメモリの共有化を示さない。【００１６】
そこで、本発明の目的は、情報装置（例えばストレッジデバイス）の具備する複数のＣＰＵのためのメインメモリの共有化メモリ機構のメモリアクセス装置及びその方法を提供することである。
【課題を解決するための手段】
【００１７】
上記の目的を達成する本発明は、複数のＣＰＵのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるためのメモリアクセス装置である。このメモリアクセス装置は、メモリをメインメモリとして使用する複数のＣＰＵと、
メモリをバッファとして使用する他の機能ブロックと、
前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス転送を制御するＣＰＵインターフェースと、
前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのメモリへのアクセス転送の調停を行うメモリコントローラとを備え、
前記ＣＰＵインターフェースは、前記複数のＣＰＵからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、
前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送ることを特徴とする。【００１８】
このメモリアクセス装置の特徴は、メモリはＤＲＡＭであることである。【００１９】
このメモリアクセス装置の特徴は、前記ＣＰＵインターフェースが前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のＣＰＵからのアクセス要求を待機させることである。【００２０】
このメモリアクセス装置の特徴は、前記メモリコントローラが前記１回のバスサイクルで複数のＣＰＵアクセス転送フォーマットを実行させることである。【００２１】
このメモリアクセス装置の特徴は、前記メモリコントローラが（ａ）複数の異なるＣＰＵからのアクセス要求を受けたときに、他ブロック転送が実行中であれば前記複数のＣＰＵアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行することである。【００２２】
このメモリアクセス装置の特徴は、前記メモリコントローラが前記異なるＣＰＵのアクセス転送要求をＤＲＡＭのバンクインターリーブにより、１回の転送サイクルで実行することである。【００２３】
このメモリアクセス装置の特徴は、前記メモリコントローラが（ｂ）他ブロック転送が実行中に、待機されているＣＰＵアクセスと同じＣＰＵから次のアクセス要求が発行される場合、前記複数のＣＰＵアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行することである。【００２４】
このメモリアクセス装置の特徴は、他のブロックからの転送、前記（ａ）の転送、及び前記（ｂ）の転送を組み合わせて実行させることである。【００２５】
このメモリアクセス装置の特徴は、前記ＣＰＵインターフェースは、
転送モード（Ｒｅａｄ／Ｗｒｉｔｅ）及びアドレスをメモリコントローラに送る（Ｉｄｌｅ）ステップと、
複数のＣＰＵから転送要求を受け取り、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブモードにはいることを示すＢＩ信号を前記メモリコントローラに転送するステップと、
転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを実行し、バンクインターリーブモードの時は、２つのＣＰＵからのそれぞれのアクセスが待機されているため、それら２つを実行するステップと、
次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、ＣＰＵインターフェース回路はContinue信号をメモリコントローラに送るステップを含み、
前記メモリコントローラは、
ＢＩ信号を受け取ったかチェックするステップと、
ＣＰＵインターフェースがバースト転送を停止するステップと、
２つのＣＰＵにContinue信号が立っていることを確認し、２つのＣＰＵにContinue信号が立っている場合、ＣＰＵインターフェース回路に待機されている次の要求を実行し、１つのＣＰＵにContinue信号が立っている場合、バースト転送を停止するステップ３に移動し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、
Prechargeコマンドをメモリに発行しrowアクセスをクローズするステップとを含むことである。【００２６】
このメモリアクセス装置の特徴は、前記メモリコントローラの前記ステップがＢＩ信号の場合、該当するバンクアドレスに対する複数のActivateコマンドをメモリに発行し、
ＢＩ信号でない場合、１つのActivateコマンドを発行するステップを含むことである。【００２７】
このメモリアクセス装置の特徴は、メモリとしてＤＲＡＭを含むことである。【００２８】
更に上記の目的を達成する本発明は、複数のＣＰＵのためのメインメモリと他の機能ブロック（データフロー）のためのバッファとを共有化させるために、メモリをメインメモリとして使用する複数のＣＰＵと、メモリをバッファとして使用する他の機能（データフロー）ブロックと、前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス転送を制御するＣＰＵインターフェースと、前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのメモリへのアクセス転送の調停を行うＤＲＡＭコントローラとを含む装置においけるメモリアクセス方法である。
この方法は、前記複数のＣＰＵからのアクセス要求（信号）をキューするステップと、
各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記ＤＲＡＭコントローラに前記アクセス要求（信号）を知らせるステップと、アクセス要求（信号）に対して許可信号を受けた場合に、前記許可信号に応じて前記ＤＲＡＭコントローラに前記情報を送るステップと、
前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送るステップとを含むことを特徴とする。
【発明の効果】
【００２９】
以上のように本発明によれば、複数のＣＰＵのメインメモリが他のバッファメモリなどと共有されたメモリシステムにおいて、メインメモリアクセス要求が来た時にアクセス遅延を最小化し、かつ、データ転送のオーバーヘッドを小さくできる。
【図面の簡単な説明】
【００３０】
【図１】図１は、ＣＰＵからのアクセスとデータフロー転送とにおいて共有化されたＤＲＡＭメモリと、その共有化を可能とするアービタとを有すＡＳＩＣを示す。
【図２】複数のＣＰＵアクセス及びデータフローのアクセスするＤＲＡＭ構成における本発明のメモリ転送の概念図を示す。
【図３】テープ記録装置の構成図を示す。
【図４】テープドライブのコントローラ１６に含まれるＤＲＡＭコントローラやデータフロー制御などを行う回路ブロックの構成（ＡＳＩＣ）を示す。
【図５】複数のＣＰＵを含むアクセスブロックのためのローカルバス５１と、ＣＰＵインターフェースと、ＤＲＡＭコントローラとの接続関係を示す。
【図６】ＣＰＵインターフェースが複数のローカルバスとＤＲＡＭコントローラを接続する。
【図７】本発明を実行するコマンドシーケンスのフローチャートを示す。
【発明を実施するための形態】
【００３１】
以下において、記録装置におけるデータフローと複数のＣＰＵからのアクセスについてＤＲＡＭアクセス装置の本発明の実施形態（以下「実施例」という）が説明される。以下の実施例は、例示であり本発明の内容を限定するものではない。
【００３２】
複数のＣＰＵメインメモリと他のバッファメモリとが共有されるメモリシステムにおいて、ＣＰＵメモリアクセス要求が来た時に次の手法を行う。
（ａ）複数のメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればそれらの要求は待たされる。他ブロックの転送後、これらの２つの転送要求をＤＤＲ３ＳＤＲＡＭなどの仕様におけるバンクインターリーブ（Ｂａｎｋ  Ｉｎｔｅｒｌｅａｖｅ：以下ＢＩとも言う）により、１回のサイクルで実行する。
（ｂ）あるメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればその要求は待たされる。その間に同じＣＰＵから次のアクセス要求が発行される。ＤＲＡＭメモリコントローラ（Ａｒｂｉｔｏｒ：アービタ）は、メインメモリのアクセス許可を行い、既にキューされているＣＰＵ転送と共に次の転送要求がキューされていれば、条件を考慮して同じサイクルで次のデータ転送も行う。
（ｃ）上記２つの組み合わせ。
これら手法により、転送のオーバーヘッドを削減し、効率のよいＤＲＡＭ転送を行う。
【００３３】
（ａ）では、共有メモリの中で複数のＣＰＵメインメモリの領域を論理分割して持つアーキテクチャーでは、それぞれの領域をＤＤＲ３  ＳＤＲＡＭのバンクアドレス（Ｂａｎｋ  Ａｄｄｒｅｓｓ）でマップする。２つのＣＰＵアクセスが２つの領域のアクセス先で異なっても、バンク・アドレスによるバンクインターリーブを使って一度に２つの転送を実行する。これにより第２以降の転送要求に対して課題２が解決される。
（ｂ）では、最初の要求は進行中の他ブロックの転送終了まで待たされるが、以降の転送要求の応答時間は大幅に短縮される。これにより第２以降の転送要求に対して課題２が解決される。
（ｃ）では、（ａ）（ｂ）の２つ手法を合わせて使うことにより、複数のＣＰＵからの転送要求が１回の転送サイクルで終了する。複数のＣＰＵからのアクセスが1回の転送で済むため、転送オーバーヘッドが削減され、メモリの帯域使用効率が上がり、課題１が改善される。余った帯域を確保できるためメインメモリ帯域自身や他のブロック（例えばデータフロー・ブロック）の帯域に割り振ることが可能となる。このキューの数をシステムによって調整すれば、高使用効率の共有メモリコントローラが実現できる。
【００３４】
図２は、複数のＣＰＵアクセス及びデータフローのアクセスするＤＲＡＭ構成における本発明のメモリ転送の概念図を示す。本発明の手法（ａ）〜（ｃ）について図２を用いて説明する。（Ｂ）は、データバス４７とＣＰＵローカルバス４８が外部ＤＲＡＭ４５を要求化していることを示す。情報装置（例えばストレッジ装置）は、機能制御のための複数のＣＰＵとデータの読み出し書込みのためのデータバス４７を備えている。各ＣＰＵ４９からＤＲＡＭ４５にアクセス転送される。これらに並行してデータの読み出し書き込みのためのメモリをバッファ４５１として使用する。複数のＣＰＵ１，２，３，・・・からのＣＰＵ転送（ＣＰＵアクセス）はＤＲＡＭの４５２を使用する。このとき各ＣＰＵからのアクセスはバンクインターリーブによるアドレッシングにより異なるバンクアドレスが割り当てられる。（Ａ）は、データバス４７がデータフローのＲＥＱ１，２，・・・が５１２バイトの転送４１をそれぞれ一回転送されていることを示す。この転送中複数のＣＰＵ転送が待ち状態である。ＣＰＵ１・・・からの転送４３はデータ転送終了後に１回転送でまとめて実行される。ＣＰＵアクセスのオーバーヘッド３９を縮小化される。データフロー４１のごとに１回の転送サイクルで５１２バイトのデータが転送されるが、その間ＣＰＵ転送を待たされＣＰＵアクセスが遅延する。複数のＣＰＵアクセスが連続し集中するとデータ転送完了の遅延が各アクセス転送に及ぶ。ＣＰＵアクセス転送はＲｅａｄ／Ｗｒｉｔｅのコマンドを含む３２Ｂ（斜線部分）であり小さい。２つ又はそれ以上のＣＰＵアクセスが１回転転送にまとめることができれば、全体でＣＰＵアクセスのオーバーヘッドを小さくできる。一方、ＣＰＵアクセスが集約できればＣＰＵアクセスの転送だけでなく、データフローのために十分な転送帯域を確保できデータ転送のスループットが向上する。
【００３５】
図３は、テープドライブ１０の構成図を示す。実施例を適用するテープドライブについて説明する。テープドライブ１０は、インターフェース１１と、バッファ１２と、記録チャネル１３と、テープ２３と、ヘッド１４と、リール２１、２２と、カートリッジ２０と、モータ１５と、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。インターフェース１１は、ホスト３０と通信を行う。
【００３６】
インターフェース１１は、ホスト１０からバッファ１２へ転送されるデータの書込みを指示するコマンド、バッファ１２のデータをテープ２３への書込みを指示するコマンドを受け取る。例えばインターフェース１１の通信の規格はＳＣＳＩまたはファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）である。
【００３７】
バッファ１２は、テープ２３に書き込むべきデータを蓄積するメモリである。バッファ１２は、固定長のセグメントで区切られる。ひとつのセグメントは、テープ２３上の一つのデータセットに対応する。データセットは、Ｃ１パリティとＣ２パリティとからなる積符号が付加されたデータ構造である。データセット（ＤａｔａＳｅｔ）は、それが含む複数のレコード（データ）の区切れ情報などを属性情報としてＤＳＩＴ（Ｄａｔａ  Ｓｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ）に含む。コントローラ１６に含まれるＣＰＵがバッファ１２においてデータセットごとにＤＳＩＴを生成し、ＤＳＩＴは各データセットに含まれる。ＤＳＩＴの生成は、ＣＰＵが直接データバッファへアクセスしてファームウェアを実行してデータの管理情報を付加できることを意味する。
【００３８】
バッファ１２は、最後のセグメントまでデータを受け取り次は再び最初のセグメントからデータを受け取りはじめるという意味でリングバッファと呼ばれる。データは、任意の長さでホスト３０からドライブに転送される。また、固定長のデータをホストが転送したとしてもデータ圧縮が行われる場合には、データの長さがデータごとに異なる。これらの転送データは、順次バッファ１２のセグメントに順次蓄積される。記録チャネル１３は、いろいろな大きさのデータで充填されたセグメントのデータを、データセットとしてテープ媒体に書込む通信経路である。バッファ１２に蓄積されたデータは、セグメント毎にデータセットとして、テープ媒体に書込まれる。書込みのタイミングは、セグメントがデータにより完全に充填された場合である。
【００３９】
テープ２３は、データの記録手段としての記録媒体である。記録チャネル１３を介して渡されたデータをデータセットとしてヘッド１４によりテープ２３に書込まれる。テープ２３は、リール２１及び２２に巻かれ、これらの回転に伴い、リール２１からリール２３の方向へ、又は、その反対の方向へ、縦方向に移動する。カートリッジ２０は、テープ２３が巻きつけてあるリール２０を収容する容器である。２０と同じカートリッジにより、リール１４ｄを収容するものを設けてもよい。モータ１５は、リール２１及び２２を回転させる。
【００４０】
コントローラ１６は、テープドライブ１０の全体を制御する。コントローラ１６は、ホスト３０からインターフェース１１で受け付けたコマンドに従って、データのテープ２３への書込み読取りを制御する。また、コントローラは、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。ヘッド位置制御システム１７は、所望のトラックを追跡する。ヘッド１４は、トラックを切り換える必要が生じると、ヘッド位置制御システム１７が、ヘッド１４を電気的に切り換えの制御を行う。モータドライバ１８は、直接コントローラ１６に接続されていてもよい。
【００４１】
図４は、テープドライブのコントローラ１６に含まれるＤＲＡＭコントローラやデータフロー制御などを行う回路ブロックの構成（ＡＳＩＣ）を示す。コントローラ１６は、各種制御を行うプロセッサ８０、ファームウェアを保持するＦｌａｓｈＲＯＭ９０、バッファマネジャ４０、テープ転送７０、ホスト転送６０、Ｃ２ＥＣＣ計算機（エラー訂正）５０など機能ブロックを含む。テープ転送ブロック７０は、テープ２３および読書きヘッド１４を接続される。ホスト転送ブロック６０は、ホスト３０に接続される。コントローラ（ＡＳＩＣ）１６は、テープ媒体２３およびヘッド１４、ホスト３０および外部バッファ１２との関連を制御する。特にバッファマネジャ４０は、外部バッファ１２０と、テープ転送３０ブロック、ホスト転送６０ブロック、Ｃ２ＥＣＣ計算機ブロック５０及び２つのプロセッサ（ＣＰＵ１、ＣＰＵ２）８０との間メモリアクセスの仲介機能を有する。
【００４２】
ホスト３０からデータ転送されテープ書込が行われるデータ転送フローを説明する。ホスト転送ブロック６０からのデータは、ホストから書込まれたデータをバッファマネージャ・ブロック４０を介して外部バッファ１２に一旦書き込まれる。バッファマネージャ・ブロック４０は、各機能ブロック５０、６０、７０から外部バッファのデータ転送のアクセスを高速にパイプライン処理で実行するために高帯域を必要とする。外部バッファは、例えばバス幅は４バイト又は８バイトを有するＤＤＲ３ＳＤＲＡＭ１２である。また、外部バッファ１２に書き込まれたデ−タは、Ｃ２ＥＣＣ計算機５０のＳＲＡＭに転送される。Ｃ２ＥＣＣ５０では、全てのデータのエラー訂正をし、訂正データをＤＤＲ  ＳＤＲＡＭ１２に書き戻す。データフロー・コントローラの機能として、バッファマネジャ４０は、各機能ブロック５０、６０、７０が効率よくＤＤＲ３ＳＤＲＡＭ１２をアクセスできるよう、時分割でバスを切り換えている。Ｃ２ＥＣＣ５０にとっては、ＤＤＲ３ＳＤＲＡＭ１２から読んだデータをＤＤＲ３ＳＤＲＡＭ１２に書き戻している構造上、処理時間の要求も厳しい。
【００４３】
各機能ブロックからデータ転送を均一的にパイプライン処理できるように、各ブロック転送のために帯域確保を確保することが必要である。ＣＰＵがホストやメディアの転送を制御すると、データは外部バッファに一時的に格納され、順次処理される。例えばホストからストレージデバイスへの書き込みの場合、ホストからのデータは最初に外部バッファに格納される。次にエラー訂正コード（以下ＥＣＣ)付加のため、外部バッファから読み出されＥＣＣ計算機に送られる。ＥＣＣ計算機で計算されたＥＣＣパリティは再び外部バッファへ格納される。その後、メディア側への転送のため再び外部バッファから読み出される。１回のＷｒｉｔｅまたはＲｅａｄ処理みに関してバッファマネジャは、複数の機能ブロックを介して外部バッファに対して複数回のアクセスを実行する。更にこれらの処理はパイプラインとなり、同時に複数のアクセス要求が外部バッファに発生する。
【００４４】
図５は、複数のＣＰＵを含むアクセスブロック（図示せず）のためのローカルバス５１と、ＣＰＵインターフェースと、ＤＲＡＭコントローラとの接続関係を示す。図３において、これらＤＲＡＭアクセス回路はコントローラ１６に含まれる。ＤＲＡＭコントローラはバッファ１２を共有する。通常ＤＲＡＭコントローラは、ＤＤＲ３  ＳＤＲＡＭなどのＤＲＡＭにコマンドを発行するシーケンスを管理している。アクセスするブロックによって最適なコマンド発行順番が変わるため、コマンドシーケンスはハードウェア上にステートマシンで実装される。このＤＲＡＭコントローラにおけるコマンド制御回路とＣＰＵインターフェース回路の、２つの回路構成で実現できる。ＣＰＵのためのメインメモリとデータ転送のためのバッファなどの２つのメモリが共有されるシステムを想定している。メモリチップ（図示せず）との信号線は両方で共有され、ＤＲＡＭコントローラ５３は各アクセスブロックの調停を行いながら時分割でＤＲＡＭメモリとデータ転送を行う。ＣＰＵからのメインメモリアクセスを含んだアクセスブロックは転送要求（REQ信号）を上げ、許可されるとAllowed信号が上がり、転送を開始できる。ＤＲＡＭコントローラ５３では、アクセスを許可するブロック（図示せず）を決定すると、コマンド制御回路が動き出して転送ブロックに合わせたシーケンスでコマンドを発行する。
【００４５】
ＣＰＵインターフェース（「ＣＰＵインターフェース回路」または「ＣＰＵインタフェースブロック」とも言う。）について説明する。この回路は、複数のＣＰＵのローカルバスと接続されてアクセス要求とデータ転送を行う。ＤＲＡＭコントローラ側に対してはＤＲＡＭ転送要求と転送が許可された後のデータ転送を行う。ＣＰＵローカルバスとのインターフェースは、転送要求信号と共にアドレスやRead、Write方向、転送データサイズなどの信号が接続される。
【００４６】
図６はＣＰＵインターフェースが複数のローカルバスとＤＲＡＭコントローラを接続する。２つのインターフェースブロックとしてＣＰＵ１及びＣＰＵ２を与える。ＤＲＡＭアクセスブロック１及び２は、情報機器の他の機能させるブロックである。アクセスブロック６３及び６４は、例えばデータフローでのデータ書込み／読取りのためのブロックである。２つのＣＰＵから、共有されているそれぞれのメインメモリ領域へのアクセスをＣＰＵインターフェース５２の回路を経由して外部ＤＲＡＭメモリ６７に対して行う。転送要求信号（REQ信号）は、キューを管理する要求待ち制御（Request Queue Control）回路５４に送られる。最初の要求はこの制御回路５４により即座に処理されてＤＲＡＭコントローラ５３にＤＲＡＭ転送要求が送られる。ＤＲＡＭコントローラに含まれるアービタ６５は、他のブロックを含めた転送要求の調停を行う。ＤＲＡＭコントローラは、ＣＰＵ転送（ＣＰＵアクセス転送）を許可するときはAllowed信号を上げる。Allowed信号を受け取ったＤＲＡＭコントローラインターフェース回路５４は、メモリアドレスやWriteデータ、Readデータの転送をＤＲＡＭコントローラ５３との間で行う。
【００４７】
ＣＰＵからのＤＲＡＭ転送要求でAllowed信号が上がらないときは、他のブロック６３または６４がデータ転送中などでアクセスが許可されないときである。ＤＲＡＭコントローラインターフェース５４は、REQ信号は上げたまま許可されるのを待つ。このとき次の転送要求が来ると要求待ち制御（Request  Queue  Control）回路５４はその要求を受けつける。要求のキュー（要求待ち）のされ方により、上述した３つの手法ａ、ｂ、ｃを使い分ける。２つの要求キューが２つのＣＰＵからのアクセスの場合は、手法ａにより、Allowed信号が来たらbank  interleave信号（ＢＩ信号）を上げてバンクインターリーブによる転送を実行できる。ただし、２つのＣＰＵからの要求アドレスのBankアドレスが違う必要がある。２つの要求キューが同一のＣＰＵからの場合は、手法ｂにより、Allowed信号が来たらContinue信号を使って２つの要求を１回のサイクルで転送する。または手法ｃにより、転送効率を向上させることができる。つまり、動作ａの実行中に、処理しているＣＰＵから次の要求が来ると、そのサイクル実行中に動作ｂを行う。
【００４８】
次の転送要求をキューできるかどうかは、ＣＰＵの仕様に拠る。Write要求はWriteするデータを受け取ったらメインメモリに実際に転送してなくてもサイクルを終了させることができる。先読みが可能なＣＰＵではRead転送も要求だけキューしておいて後でReadデータを受け取ることが可能である。
【００４９】
ＤＲＡＭコントローラ５３について説明する。バンクインターリーブによる転送実行は、上記REQ信号がまだ受理されていないとき、つまりAllowed信号が上がってないときに複数のＣＰＵからのアクセス要求があるときに実行される。また、ＣＰＵインターフェース５２は、Allowed信号が上がって転送権を得ると、ＤＲＡＭコントローラのコマンド・シーケンス・コントローラ６６との間で適切なタイミングで転送モード情報、アドレス、データの転送を行う。データ転送が終わると適当なタイミングでPrechargeコマンドを発行するなど、サイクル終了となる。その前にＣＰＵインターフェース５２は、転送要求キューの状態を調べて次の転送が可能ならばContinue信号を上げて次の転送をＤＲＡＭコントローラに要求する。Continue信号を受けたＤＲＡＭコントローラは、次の転送コマンド（Write又はRead)を発行し、キューにある次の要求を処理する。なお、アービタ（arbiter）６５は、複数のブロックからのアクセス調停をする。
【００５０】
図７は、本発明を実行する、コマンドシーケンスのフローチャートを示す。このフローチャート（左図）は、複数（例えば２つ）のＣＰＵのメインメモリを共有するシステムにおける本発明の動きを、コマンドシーケンス制御のフローとして示す。右図は、各ステップにおけるＣＰＵインターフェース及びＤＲＡＭコントローラの機能を示す。
●ステップ０
・ＣＰＵインターフェース：
転送モード（Ｒｅａｄ／Ｗｒｉｔｅ）及びアドレスをＤＲＡＭコントローラに送る。
●ステップ１
・ＣＰＵインターフェース：
１つまたは２つのＣＰＵから転送要求を受け取る。２つのＣＰＵから要求があり、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブが可能である。ＤＲＡＭコントローラへBank  Interleaveモードにはいることを示すＢＩ信号を送る。
●ステップ２
・ＤＲＡＭコントローラ：
ＢＩ信号を受け取ったかチェックする。
ＢＩ信号の場合、ＢＩ信号を受け取り、該当するバンクに対する複数のActivateコマンドを発行する。
ＢＩ信号でない場合１つのActivateコマンドを発行する。
●ステップ３
・ＣＰＵインターフェース：
続いてキューされているメインメモリ転送、ReadまたはWriteを実行する。Bank  Interleaveモードの時は、複数（例えば２つ）のＣＰＵからのそれぞれのアクセスがキューされているため、それらを実行する。転送は、転送ワードをカウントしながら、ＣＰＵに指定されたサイズ分終了するまでバースト転送される。
・ＤＲＡＭコントローラ：
ＣＰＵインターフェースがバース転送を終了したらステップ４に移動する。
●ステップ４：
・ＣＰＵインターフェース：
この時点で次の転送要求が来ている場合かつそれらの要求アドレスがＢＩモード可能なアドレスの場合、Continue信号をＤＲＡＭコントローラに送る。
・ＤＲＡＭコントローラ：
Continue信号が立っていることをチェックする。
Continue信号が立っている場合は、ステップ３に移動する。
Continueがたっていない場合は、ステップ５に移動しこの転送サイクルは終了する。
●ステップ５：
・ＤＲＡＭコントローラ：
転送サイクルが終了の場合は、PrechargeコマンドがＲＯＷへのアクセスをクローズする処理を行う。
【００５１】
次に、ＢＩ信号とContinue信号をＣＰＵインターフェースが上げる条件を考える。ＤＲＡＭメモリでは連続したアドレスには追加のオーバーヘッドなしで連続アクセスできる。具体的にはＤＲＡＭメモリのバンクアドレスとRowアドレスが同じ場合である。ＤＲＡＭメモリは、ｂａｎｋ、ｒｏｗ、ｃｏｌｕｍｎのアドレスがある。ｂａｎｋ、ｒｏｗアドレスが同じならその中で任意のｃｏｌｕｍｎアドレスにアクセスできる。これは図７のステップ３を繰り返すことであり、したがってこの条件では複数個のアクセス要求を１回分のオーバーヘッドで転送できる。
【００５２】
Rowアドレスが異なるとActivateコマンドをその都度発行する必要がある。これは、図７のステップ２が必要となる。ステップ５のPrechargeコマンドは、Bankアドレスを指定してそのバンクに対して行うので、Rowアドレスが違ってもBankアドレスが同じなら１回のPrechargeですむ。
【００５３】
バンクアドレスが異なると、Activateコマンドを発行しなければならない。転送終了後のRechargeコマンドはすべてのバンクに対するコマンド発行が可能なためオーバーヘッドは増えない。このようにバンクインターリーブを使用して、複数のＣＰＵからのアクセスを１回の転送で実行することにより、Prechargeコマンド分のオーバーヘッドを削減できる。
【００５４】
本発明において最大の効果を得られるのは複数のＣＰＵからの転送要求で、バンクアドレスが異なり、さらにそれぞれがBankアドレス、Rowアドレスが同一の要求を連続して行う場合である。そこで上記実施例ではContinue信号を上げる条件はBank、Rowアドレスが前の転送と同じ場合とした。ここでBankアドレスなどはＤＲＡＭのアドレスである。ＣＰＵが使うアドレスは論理アドレスでありＤＲＡＭアドレスは物理アドレスであるので、ＣＰＵインターフェース回路がＣＰＵの論理アドレスからContinue条件を判断する方法が必要である。そこで、論理アドレスのどのビットがBankアドレスにマップされ、どのビットがRowアドレスにマップされているかを示すテーブルをＤＲＡＭコントローラからＣＰＵインターフェースに渡す。これにより、ＣＰＵインターフェースは前後の要求のアドレスが同じ物理アドレスかどうか判定してContinue条件とする。これは図６に、ＣＰＵインターフェースとＤＲＡＭコントローラの間にある”PADDR Table”信号で示している。
【００５５】
以上の本実施例では、ＣＰＵインターフェース、ＤＲＡＭコントローラ双方に以上の機能を実装することにより、複数のＣＰＵからの複数の要求を１回のＤＲＡＭアクセスサイクルで転送可能となり、帯域使用効率の向上が実現できる。例としてキャッシュサイズが３２バイトのＣＰＵのアクセスを考える。ＤＲＡＭのバス幅が３２ビットの場合、DDR3 ＳＤＲＡＭでは１ワードが4バイトなので8バーストで転送できる。DDRメモリは１クロックで２バーストするため、データ転送クロックは4クロックである。しかし、DDR3 ＳＤＲＡＭのACタイミング規定より、このサイクルはReadで２２クロックほどかかる。このクロック数は動作周波数などに依存する。このアクセスだけに限れば、オーバーヘッドの比率は８割以上となる。これを本特許の機能で例えば２つのＣＰＵからの２つの転送をまとめて１回のサイクルで転送すると、オーバーヘッドの比率を５０％ほどまで小さくしながら、合計６４バイトを転送できる。
【００５６】
本発明によれば、ＣＰＵ以外の転送として、データフロー転送があり、その合間にCPU転送を割り込ませるアービターシステムの枠組みの中で、複数の（バースト長の短い）CPUからのアクセスを効率よく転送する。バースト長が短いと相対的にDDRメモリの転送オーバーヘッドはおおきくなり、転送効率が落ちる。本発明の範囲は、かかる共有化メモリの利用環境で、なるべく多くのＣＰＵアクセスを最大効率で入れ込みたいというものである。
【符号の説明】
【００５７】
１０…テープドライブ、
１１…インターフェース
１２…バッファ、
１３…チャネル、
１４…ヘッド、
１５…モータ、
１６…コントローラ（ＡＳＩＣ）、
１７…ヘッド位置制御システム、
１８…モータドライバ
２０…カートリッジ
２１、２２…リール
３０…ホスト、
４０…バッファマネージャ・ブロック
５０…Ｃ２ＥＣＣ計算機
６０…ホスト転送ブロック
７０…テープ転送ブロック
８０…プロセッサ
９０…ファームウェア
【図１】
2012070319.tif 000003
【図２】
2012070319.tif 000004
【図３】
2012070319.tif 000005
【図４】
2012070319.tif 000006
【図５】
2012070319.tif 000007
【図６】
2012070319.tif 000008
【図７】
2012070319.tif 000009
【手続補正書】
【提出日】平成24年3月6日(2012.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のＣＰＵと他の機能ブロックとにメモリを共有化させるメモリアクセス装置であって、
前記メモリをバッファとして使用する他の機能ブロックと、
前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス（ＣＰＵアクセス）要求を制御するＣＰＵインターフェースと、
前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのアクセス（機能ブロックアクセス）要求の調停を行うメモリコントローラとを備え、
前記ＣＰＵインターフェースは、前記複数のＣＰＵアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、
前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のＣＰＵアクセス要求を待機させ、
前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送り、１回のバスサイクルで複数のＣＰＵアクセス要求を実行させ、
複数の異なるＣＰＵアクセス要求を受けたときに、他の前記機能ブロックアクセス要求の実行中であれば前記複数のＣＰＵアクセス要求を待機させて前記他の機能ブロックアクセス要求のデータフロー転送が終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行することを特徴とする、メモリアクセス装置。
【請求項２】
前記メモリはＤＲＡＭである請求項１に記載の装置。
【請求項３】
前記メモリコントローラは、（ａ）異なる前記複数のＣＰＵアクセス要求をＤＲＡＭのバンクインターリーブにより、１回の転送サイクルで実行する請求項１に記載の装置。
【請求項４】
前記メモリコントローラは、（ｂ）他の前記機能ブロックアクセス要求を実行中に、待機している前記ＣＰＵアクセス要求と同じＣＰＵから次のアクセス要求が発行される場合、前記複数のＣＰＵアクセス要求を待機させて前記機能ブロックアクセス要求のデータフロー転送の終了後に、前記複数のＣＰＵアクセス要求を１回の転送サイクルで実行する請求項３に記載の装置。
【請求項５】
前記（ａ）の転送、及び前記（ｂ）の転送を組み合わせて実行させる請求項４に記載の装置。
【請求項６】
前記ＣＰＵインターフェースは、
転送モード及びアドレスをメモリコントローラに送るステップと、
複数のＣＰＵアクセス要求を受け取り、かつそれらのバンクアドレスが異なる場合は、
バンクインターリーブモードにはいることを示すＢＩ信号を前記ＣＰＵコントローラに転送するステップと、
転送ワードをカウントし、続いて待機されているメインメモリ転送、ＲｅａｄまたはＷｒｉｔｅを前記カウントがそれぞれの転送の転送サイズに達するまで実行し、バンクインターリーブモードの時は、複数のＣＰＵからのそれぞれのアクセスが待機されているため、それらを実行するステップと、
次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、ＣＰＵインターフェース回路はＣｏｎｔｉｎｕｅ信号をメモリコントローラに送るステップとを含み、
前記メモリコントローラは、
ＢＩ信号を受け取ったかチェックするステップと、
ＣＰＵインターフェースからの知らせでバースト転送を停止するステップと、
複数のＣＰＵにＣｏｎｔｉｎｕｅ信号が立っていることを確認し、ＣＰＵインターフェース回路に待機されている次の要求を実行し、
バースト転送を停止し、Ｃｏｎｔｉｎｕｅ信号がたっていない場合、以下のクローズするステップで終了するステップと、
Ｐｒｅｃｈａｒｇｅコマンドをメモリに発行しバンククローズするステップとを含む請求項４に記載の装置。
【請求項７】
前記メモリコントローラのステップは、
ＢＩ信号を受取った場合、該当するバンクに対する複数のＡｃｔｉｖａｔｅコマンドをメモリに発行し、
ＢＩ信号を受取らない場合、１つのＡｃｔｉｖａｔｅコマンドを発行するステップを含む請求項６記載の装置。
【請求項８】
（削除）
【請求項９】
（削除）
【請求項１０】
（削除）
【請求項１１】
（削除）
【請求項１２】
（削除）
【手続補正書】
【提出日】平成25年10月15日(2013.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のＣＰＵと他の機能ブロックとにメモリを共有化させるメモリアクセス装置であって、
前記メモリをバッファとして使用する他の機能ブロックと、
前記ＣＰＵのバスに接続され、メモリへの前記複数のＣＰＵからのアクセス（CPUアクセス）要求を制御するＣＰＵインターフェースと、
前記ＣＰＵインターフェースに接続され、前記メモリへの前記ＣＰＵ及び前記機能ブロックからのアクセス（機能ブロックアクセス）要求の調停を行うメモリコントローラとを備え、
前記ＣＰＵインターフェースは、前記複数のCPUアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに情報を送り、
前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のＣＰＵアクセス要求を待機させ、
前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記ＣＰＵを指定して許可信号を前記ＣＰＵインターフェースに送り、１回のバスサイクルで複数のＣＰＵアクセス要求を実行させ、
複数の異なるＣＰＵアクセス要求を受けたときに、他の前記機能ブロックアクセス要求の実行中であれば前記複数のＣＰＵアクセス要求を待機させて前記他の機能ブロックアクセス要求のデータフロー転送が終了後に、前記複数のＣＰＵアクセスを１回の転送サイクルで実行することを特徴とする、メモリアクセス装置。
【請求項２】
前記メモリはＤＲＡＭである請求項１に記載の装置。
【請求項３】
前記メモリコントローラは、（ａ）異なる前記複数のＣＰＵアクセス要求をＤＲＡＭのバンクインターリーブにより、１回の転送サイクルで実行する請求項１に記載の装置。
【請求項４】
前記メモリコントローラは、（ｂ）他の前記機能ブロックアクセス要求を実行中に、待機している前記ＣＰＵアクセス要求と同じＣＰＵから次のアクセス要求が発行される場合、前記複数のＣＰＵアクセス要求を待機させて前記機能ブロックアクセス要求のデータフロー転送の終了後に、前記複数のＣＰＵアクセス要求を１回の転送サイクルで実行する請求項３に記載の装置。
【請求項５】
前記（ａ）の転送、及び前記（ｂ）の転送を組み合わせて実行させる請求項４に記載の装置。
【請求項６】
前記ＣＰＵインターフェースは、
転送モード及びアドレスを前記メモリコントローラに送るステップと、
複数のＣＰＵアクセス要求を受け取り、かつそれらのバンクアドレスが異なる場合は、  バンクインターリーブモードにはいることを示すＢＩ信号を前記メモリコントローラに転送するステップと、
転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを前記カウントがそれぞれの転送の転送サイズに達するまで実行し、バンクインターリーブモードの時は、複数のＣＰＵからのそれぞれのアクセスが待機されているため、それらを実行するステップと、
次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、ＣＰＵインターフェース回路はContinue信号を前記メモリコントローラに送るステップとを含み、
前記メモリコントローラは、
ＢＩ信号を受け取ったかチェックするステップと、
ＣＰＵインターフェースからの知らせでバースト転送を停止するステップと、
複数のＣＰＵにContinue信号が立っていることを確認し、ＣＰＵインターフェース回路に待機されている次の要求を実行し、
バースト転送を停止し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、
Prechargeコマンドをメモリに発行しバンククローズするステップとを含む請求項４に記載の装置。
【請求項７】
前記メモリコントローラのステップは、
ＢＩ信号を受取った場合、該当するバンクに対する複数のActivateコマンドをメモリに発行し、
ＢＩ信号を受取らない場合、１つのActivateコマンドを発行するステップを含む請求項６記載の装置。
【国際調査報告】
2012070319.tif 000010
2012070319.tif 000011
2012070319.tif 000012