(57)【要約】【課題】任意の転送制御部をリセットした場合に、その他の転送制御部に影響を与えずにデータ転送を継続させること。【解決手段】コマンド発行とデータ転送とを独立して制御する１又は複数のデータ転送制御手段２０と、データ転送制御手段から発行されたコマンドの優先順を決定し、優先順の高い順にコマンドを発行するコマンド発行手段２１と、コマンド発行手段から発行されたコマンドに対するデータ転送をメモリと行うメモリ通信制御手段２６と、メモリ通信制御手段からのデータ転送要求に対するデータ転送制御手段のデータ転送が正常に完了した場合、完了信号を出力する信号出力手段２３とを備えるデータ転送装置であって、コマンド発行手段は、リセット要求を受けた場合、リセット要求に対応するコマンドの優先順を低くし、信号出力手段は、リセット要求が出されたデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を出力する。【選択図】図６
2010128803.tif 000002
【特許請求の範囲】
【請求項１】
コマンド発行とデータ転送とを独立して制御する１又は複数のデータ転送制御手段と、
前記データ転送制御手段から発行されたコマンドの優先順を決定し、前記優先順の高い順に前記コマンドを発行するコマンド発行手段と、
前記コマンド発行手段から発行されたコマンドに対するデータ転送をメモリとの間で行うメモリ通信制御手段と、
前記メモリ通信制御手段からのデータ転送要求に対する前記データ転送制御手段のデータ転送が正常に完了した場合、該完了を示す完了信号を前記メモリ通信制御手段に出力する信号出力手段とを備えるデータ転送装置であって、
前記コマンド発行手段は、前記データ転送制御手段に対するリセット要求を受けた場合、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くし、
前記信号出力手段は、前記リセット要求が出されたデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を前記メモリ通信制御手段に出力するデータ転送装置。
【請求項２】
前記コマンドが読み出し要求である場合、
前記読み出し要求により前記メモリから読み出されたデータの転送先が、前記リセット要求が出されたデータ転送制御手段であるとき、前記読み出されたデータを破棄する破棄手段を備える請求項１記載のデータ転送装置。
【請求項３】
前記コマンドが書き込み要求である場合、
前記書き込み要求を出したデータ転送制御手段から書き込みデータを取得する前に、該データ転送制御手段に前記リセット要求が出されたとき、ダミーデータを前記メモリ通信制御手段に出力するダミーデータ出力手段を備える請求項１又は２記載のデータ転送装置。
【請求項４】
前記コマンドに対して、該コマンドを発行したデータ転送制御手段を示すタグを割付け、前記リセット要求に対して、該リセット要求が出されたデータ転送制御手段を示すリセットタグを割付ける割付け手段を備える請求項１乃至３いずれか１項に記載のデータ転送装置。
【請求項５】
前記コマンド発行手段は、
前記データ転送制御手段が発行したコマンドに対するデータ転送が終了する前に、該データ転送制御手段に前記リセット要求が出された場合にのみ、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くする請求項１乃至４いずれか１項に記載のデータ転送装置。
【請求項６】
前記コマンド発行手段は、
前記リセット要求に対応するコマンドの優先順を、該リセット要求が出されたデータ転送制御手段により発行されたコマンドよりも低くする請求項１乃至５いずれか１項に記載のデータ転送装置。
【請求項７】
前記１又は複数のデータ転送制御手段を複数のグループに分類した場合、
前記コマンド発行手段は、前記グループに対するリセット要求を受けた場合、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くし、
前記信号出力手段は、前記リセット要求が出されたグループに含まれるデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を前記メモリ通信制御手段に出力する請求項１記載のデータ転送装置。
【請求項８】
コマンド発行とデータ転送とを独立して制御する１又は複数のデータ転送制御手段と、
前記データ転送制御手段から発行されたコマンドの優先順を決定し、前記優先順の高い順に前記コマンドを発行するコマンド発行手段と、
前記コマンド発行手段から発行されたコマンドに対するデータ転送をメモリとの間で行うメモリ通信制御手段と、
前記メモリ通信制御手段からのデータ転送要求に対する前記データ転送制御手段のデータ転送が正常に完了した場合、該完了を示す完了信号を前記メモリ通信制御手段に出力する信号出力手段とを備えるデータ転送装置におけるデータ転送方法であって、
前記コマンド発行手段は、前記データ転送制御手段に対するリセット要求を受けた場合、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くするステップと、
前記信号出力手段は、前記リセット要求が出されたデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を前記メモリ通信制御手段に出力するステップとを有するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
近年、データ転送効率向上の観点から、コマンドとデータのフェーズを分離し、コマンドを先に送ることが可能な技術が研究されている（特許文献１）。
【０００３】
例えば、特許文献１のような機能を持つＤＭＡＣ（Direct Memory Access Controller）を複数備え、Ａｒｂｉｔｅｒ（アービタ）の調停によってＤＲＡＭＣ（Dynamic Random Access Memory Controller）との間でデータの送受信を行うデータ転送装置を考えた場合、ある任意のＤＭＡＣに不具合が発生した場合、データ転送装置全体をリセットするのではなく、不具合が発生したＤＭＡＣのみをリセットしたいという要望がある。
【０００４】
一方、アービトレーション又はセレクション動作の終了を待って動作停止を行わせ、相手方との接続が不良な状態での停止を防止する技術が開示されている（特許文献２）。
【特許文献１】特開２００５−１５８１２７号公報
【特許文献２】特開平５−１５１１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のようにコマンドを先に送るＤＭＡＣに対して、特許文献２のようにリセット制御を行ったとしても、データ転送装置全体のデータ転送が継続できない状態になるという問題点がある。
【０００６】
以下、この問題点について説明する。まず、コマンドを先に送るＤＭＡＣとアービタ間のＲＥＡＤ（リード）におけるタイミングチャート例について説明する。図１は、ＤＭＡＣとアービタ間におけるタイミングチャート例を示す図である。
【０００７】
ＤＭＡＣのコマンド要求（com_req）に対し、ＤＲＡＭＣはアービタを介してコマンド受付（com_ack）をアサートする。次に、ＤＲＡＭＣは、アービタを介してＤＭＡＣにリードデータを出力し、ＤＭＡＣは、データ受付（data_ack）をアサートすることでリードデータを受け取る。
【０００８】
次に、アービタとＤＲＡＭＣ間のリードにおけるタイミングチャート例について説明する。図２は、アービタとＤＲＡＭＣ間のタイミングチャート例を示す図である。アービタはＤＭＡＣ毎に、どのＤＭＡＣであるかを識別するためにタグを割付けてＤＲＡＭＣに対してコマンドを発行する。次に、ＤＲＡＭＣは、データフェーズでタグをアービタに返し、アービタはタグによってリードデータをＤＭＡＣに振り分ける。
【０００９】
次に、上記問題点が発生する場合のタイミングチャート例について説明する。図３は、データ転送継続不能となる場合のタイミングチャート例を示す図である。ＤＭＡＣはコマンドを発行した後、データの送受信を行う前にリセットが要求されると、リセットされたＤＭＡＣは、ＤＲＡＭＣからのデータフェーズの要求に応答することができず、ＤＲＡＭＣが応答待ち状態となってしまうという問題が発生する。つまり、コマンドフェーズからデータフェーズの間（ｔ期間）にコマンドを発行したＤＭＡＣをリセットすると、データ転送装置全体が転送を継続できない状態になってしまう。
【００１０】
本発明は、上記問題に鑑みてなされたものであり、コマンド発行とデータ転送を独立して制御するデータ転送制御手段を複数備えるデータ転送装置において、任意のデータ転送制御手段をリセットした場合に、その他のデータ転送制御手段に影響を与えずにデータ転送を継続させることができるデータ転送装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一局面のデータ転送装置は、コマンド発行とデータ転送とを独立して制御する１又は複数のデータ転送制御手段と、前記データ転送制御手段から発行されたコマンドの優先順を決定し、前記優先順の高い順に前記コマンドを発行するコマンド発行手段と、前記コマンド発行手段から発行されたコマンドに対するデータ転送をメモリとの間で行うメモリ通信制御手段と、前記メモリ通信制御手段からのデータ転送要求に対する前記データ転送制御手段のデータ転送が正常に完了した場合、該完了を示す完了信号を前記メモリ通信制御手段に出力する信号出力手段とを備えるデータ転送装置であって、前記コマンド発行手段は、前記データ転送制御手段に対するリセット要求を受けた場合、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くし、前記信号出力手段は、前記リセット要求が出されたデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を前記メモリ通信制御手段に出力する。
【００１２】
また、本発明の他の局面のデータ転送方法は、コマンド発行とデータ転送とを独立して制御する１又は複数のデータ転送制御手段と、前記データ転送制御手段から発行されたコマンドの優先順を決定し、前記優先順の高い順に前記コマンドを発行するコマンド発行手段と、前記コマンド発行手段から発行されたコマンドに対するデータ転送をメモリとの間で行うメモリ通信制御手段と、前記メモリ通信制御手段からのデータ転送要求に対する前記データ転送制御手段のデータ転送が正常に完了した場合、該完了を示す完了信号を前記メモリ通信制御手段に出力する信号出力手段とを備えるデータ転送装置におけるデータ転送方法であって、前記コマンド発行手段は、前記データ転送制御手段に対するリセット要求を受けた場合、該リセット要求に対応するコマンドの優先順を各データ転送制御手段からのコマンドよりも低くするステップと、前記信号出力手段は、前記リセット要求が出されたデータ転送制御手段に対するデータ転送要求の応答信号として、ダミーの完了信号を前記メモリ通信制御手段に出力するステップとを有する。
【発明の効果】
【００１３】
本発明によれば、コマンド発行とデータ転送を独立して制御するデータ転送制御手段を複数備えるデータ転送装置において、任意のデータ転送制御手段をリセットした場合に、その他のデータ転送制御手段に影響を与えずにデータ転送を継続させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施例を図面に基づいて説明する。
［実施例１］
＜回路構成＞
図４は、本発明におけるデータ転送装置の回路構成例を示す図である。図４に示すように、データ転送装置１０は、ＤＭＡＣ１〜ｎ、アービタ１４、ＤＲＡＭＣ１５を含む。
【００１５】
各ＤＭＡＣ１〜ｎは、ＣＰＵ（Central Processing Unit）１１に接続され、ＣＰＵ１１内部の記憶領域に直接アクセスし、データを読み込んだり書き込んだりすることができる。また、各ＤＭＡＣ１〜ｎは、コマンド発行とデータ転送を独立して制御することができるため、アービタ１４に対して先にコマンドを送り、後からデータの転送を行うことができる。
【００１６】
なお、各ＤＭＡＣ１〜ｎに接続されるＣＰＵ１１は、ＣＰＵ１１である必要はなく、例えばＵＳＢ（Universal Serial Bus）などの通信インタフェースであってもよい。また、データ転送制御手段についてはＤＭＡＣを例に説明するが、これに限られず上述したようにコマンド発行とデータ転送とを独立して制御できるものであればよい。
【００１７】
アービタ１４は、各ＤＭＡＣ１〜ｎからのコマンドを受け付け、受け付けたコマンドの優先順を決定する。また、アービタ１４は、どのＤＭＡＣからのコマンドであるかを示すタグを、受け付けたコマンドに割付け、ＤＲＡＭＣに対して送る。また、アービタ１４は、データを受け取る場合は、データ受け取り（data_ack）を示す完了信号（ack信号）を出力する。アービタ１４の詳細については、図５を用いて後述する。
【００１８】
ＤＲＡＭＣ１５は、アービタ１４とＤＲＡＭ１２との間に接続され、受け取ったコマンドに対するデータ転送を行う。また、ＤＲＡＭＣ１５は、コマンドに対応して、ＤＲＡＭ１２にデータを書き込んだり、ＤＲＡＭ１２にデータを読み込んだりもする。
【００１９】
なお、ＤＲＡＭ１２は、ＤＲＡＭに限られず記憶領域を有するメモリであればよく、同様に、ＤＲＡＭＣ１５は、ＤＲＡＭＣに限られずメモリとのデータ通信を制御するメモリコントローラ（メモリ通信制御手段）であってもよい。
【００２０】
次に、アービタ１４について説明する。図５は、アービタ１４の主要回路構成例を示す図である。図５に示すように、アービタ１４は、コマンド発行部１４１、データ受取制御部１４２を含む。
【００２１】
コマンド発行部１４１は、各ＤＭＡＣ１〜ｎからのコマンド要求（com_req*(* = 1,2,…,n)）を受け、各コマンドの優先順位を判断して要求を選択し、ＤＲＡＭＣ１５にコマンド（com_req）を発行する。このとき、コマンドには、どのＤＭＡＣからのコマンドであるかを示すタグ（com_tag）を割付ける。なお、コマンドの優先順の決定方法は、例えばラウンドロビン方式などがあるが、この方式に限られるものではない。
【００２２】
また、コマンド発行部１４１は、各ＤＭＡＣ１〜ｎに対するリセット要求に対応するコマンドも優先順を判断して制御する。リセット要求に対応するコマンドの優先順は、各ＤＭＡＣ１〜ｎが発行したコマンドよりも優先順が低くなるように制御する。これより、リセット要求に対応するコマンドがＤＲＡＭＣ１５に送られるのは、各コマンドが全て発行された後になる。また、リセット要求に対応するコマンドの優先順は、リセット要求が出されたＤＭＡＣにより発行されたコマンドの優先順よりも低くなるようにしてもよい。
【００２３】
また、コマンド発行部１４１は、リセット要求が出されたＤＭＡＣがリードコマンド（読み出し要求）を発行していれば擬似リードコマンド（リセット要求に対応するコマンド）を発行し、ライトコマンド（書き込み要求）を発行していれば擬似ライトコマンドを発行する。
【００２４】
データ受取制御部１４２は、データ受取制御を行い、各ＤＭＡＣ１〜ｎからのデータ受取が完了したことを示す完了信号（data_ack_dm*(* = 1,2,…,n)信号）と、アービタ１４内でリセット時に生成するダミー完了信号（dummy_ack*(* = 1,2,…,n)信号）とを各ＤＭＡＣ１〜ｎからのリセット要求（reset_dm*(* = 1,2,…,n)）で選択する。具体的には、リセット要求が出されている場合はダミー完了信号（dummy_ack*信号）を選択し、リセット要求が出されていない場合は完了信号（data_ack_dm*信号）を選択する。
【００２５】
次に、データ受取制御部１４２は、選択した各信号をＤＲＡＭＣ１５により返されたタグ（data_tag）で選択して、完了信号（data_ack信号）をＤＲＡＭＣ１５に出力する。
＜主要機能構成＞
次に、データ転送装置１０の主要機能構成について説明する。図６は、データ転送装置１０の主要機能構成例を示す図である。図６に示すように、データ転送装置１０は、データ転送制御手段２０（ＤＭＡＣ）、メモリ通信制御手段２６（ＤＲＡＭＣ）、アービタ１４内で機能するコマンド発行手段２１（コマンド発行部１４１）、割付手段２２、信号出力手段２３（データ受取制御部１４２）、破棄手段２４、ダミーデータ出力手段２５を含む。なお、データ転送制御手段２０、メモリ通信制御手段２６はそれぞれ図４に示す各ＤＭＡＣ１〜ｎ、ＤＲＡＭ１２に相当するためその説明を省略する。
【００２６】
次に、アービタ１４内の主要機能について説明する。コマンド発行手段２１は、図５に示すコマンド発行部１４１と同様の機能を有し、各ＤＭＡＣ１〜ｎからのコマンドを受け取って、コマンドの優先順を決定し、優先順に従ってコマンドをメモリ通信制御手段２６に発行する。
【００２７】
なお、リセット要求に対応するコマンドの優先順は、各ＤＭＡＣ１〜ｎからのコマンドの優先順よりも低くなるように決定する。また、リセット要求に対応するコマンドの優先順は、リセット要求が出されたデータ転送制御手段２０により発行されたコマンドの優先順よりも低くなるように決定してもよい。
【００２８】
また、リセット要求に対するコマンドの優先順制御について、装置全体のデータ転送に問題が発生するときのみ制御するようにしてもよい。問題が発生するときとは、コマンドを発生したデータ転送制御手段のデータ転送処理が完了する前にリセットがかけられたときのことを言う。つまり、発行したコマンドに対するメモリ通信制御手段からのデータ転送要求に対して、応答信号を出力することができなくなるときである。
【００２９】
割付手段２２は、各ＤＭＡＣ１〜ｎからのコマンドに対して、どのＤＭＡＣから発行されたかを示すタグを割付ける。また、割付手段２２は、各ＤＭＡＣ１〜ｎのリセット要求に対して、リセットタグを割付ける。
【００３０】
信号出力手段２３は、メモリ通信制御手段２６からのデータ転送要求に対するデータ転送制御手段２０のデータ転送が完了した場合に、完了信号（data_ack信号）を出力する。また、リセット要求（reset_dm）が出されたデータ転送制御手段２０に対し、メモリ通信制御手段２６からのデータ転送要求がある場合に、ダミーの完了信号（dummy_ack信号）を出力する。
【００３１】
破棄手段２４は、コマンドがリードコマンドである場合、リードコマンドを発行したデータ転送制御手段２０にリセット要求が出されたとき、このデータ転送制御手段２０は読み出されたデータを受け取ることはできないため、データを破棄する。具体的には、アービタ１４が、dummy_ack信号をアサートすることによりメモリ通信制御手段２６から受け取ったデータを破棄する。
【００３２】
ダミーデータ出力手段２５は、コマンドがライトコマンドである場合、ライトコマンドを発行したデータ転送制御手段２０にリセット要求が出されたとき、このデータ転送制御手段２０は、書き込みデータを出力することはできないため、ダミーデータを生成して又は用意しておいてメモリ通信制御手段２６に出力する。メモリ通信制御手段２６は、ダミーデータを受け取った場合は、このダミーデータを破棄する。
【００３３】
データ転送制御手段２０のリセット処理については、アービタ１４が、メモリ通信制御手段２６より返されたリセットタグを受け取ったとき、リセット要求が出されているデータ転送制御手段２０のreset_dm信号をネゲートする。これより、データ転送制御手段２０のリセット処理が完了する。
【００３４】
以上より、アービタ１４は、データ転送制御手段（ＤＭＡＣ）に対してリセット要求が出された場合、リセット要求の優先順を各コマンドの優先順よりも低くし、リセット要求が出されたデータ転送制御手段に対するデータ転送要求がきた場合に、ダミーの完了信号を出力する。よって、リセット要求が出されたデータ転送制御手段から応答信号を出力することができるため、他のデータ転送制御手段に影響を与えずにデータ転送を継続させることができる。
【００３５】
また、割付手段２２によりリセットタグをコマンドに割付けてメモリ通信制御手段（ＤＲＡＭＣ）に発行することで、アービタ１４は、このリセットタグがデータフェーズでメモリ通信制御手段から返されたときにリセット処理を完了することができる。
【００３６】
また、アービタ１４はリセット要求の優先順を、リセット要求が出されたデータ転送制御手段により発行されたコマンドの優先順よりも低くすることで、このデータ転送制御手段により発行されたコマンドの処理が終了した後に、リセット処理を完了することができる。これより、各データ転送制御手段により発行されたコマンドの優先順よりも低くするときよりも、リセット処理が完了するまでにかかる時間を短縮することができる。
＜リード要求におけるリセット処理＞
次に、実施例１におけるデータ転送装置１０において、リード要求が出されていたときリセットがかかった場合について説明する。図７は、リード要求が出されていたときＤＭＡＣ２に対してリセットをかけた場合のタイミングチャート例を示す図である。
【００３７】
図７に示すように、ＤＭＡＣ２にリセットがかかるとreset_dm2信号がアービタ１４内でアサートされる。その後、ＤＭＡＣ２のデータフェーズにおいて、ＤＲＡＭＣ１５からread_data="D2-1"が入力されているが、このとき、ＤＭＡＣ２はリセットがかけられているため応答できない(data_ack_dm2が"L"のまま)。
【００３８】
よって、アービタ１４内でdummy_ack2信号を生成し、この信号をdata_ack信号としてＤＲＡＭＣ１５に出力することで、アービタ１４は、ＤＲＡＭＣ１５からのデータをＤＭＡＣ２の代わりに擬似的に受け取ることができる。なお、受け取ったデータは不要のため破棄される。
【００３９】
次に、アービタ１４は、擬似リードによりＤＭＡＣ２のデータを引き取ることが出来たので、その後のＤＭＡＣnの通信を継続することが可能となる。
【００４０】
また、アービタ１４は、ＤＡＭＣ２のリセット要求に対して、Reset2というタグ(com_tag)を付加して、リード要求に対するコマンド（command=C2-2）をＤＲＡＭＣ１５に発行する。このコマンドは先に説明したとおり、優先順が各ＤＭＡＣからの要求よりも低く設定してあるので、各ＤＭＡＣの要求処理後に発行されることになる。
【００４１】
次に、このコマンドのリードデータ又はリセットタグ（Reset2）がＤＲＡＭＣ１５より返ってきたとき（read_data = D2-2）は、ＤＭＡＣ２が発行したコマンドはすべて処理されたということになり、この時点でＤＭＡＣ２のリセット処理を完了する(reset_dm2をネゲートする)。
【００４２】
これより、コマンドがリード要求である場合に、リセット要求が出されたＤＭＡＣをリセットしつつ、他のＤＭＡＣに影響を与えることなくデータ転送を継続させることができる。
【００４３】
また、図７に示す例では、リセット要求に対するコマンドは、各コマンドの優先順よりも低くしたが、リセットがかかったＤＭＡＣ（ここではＤＭＡＣ２）により発行されたコマンドよりも優先順を低くするようにしても本発明の目的を達成できる。この場合、各ＤＭＡＣにより発行されたコマンドの優先順よりも低くする場合に比べて、リセット処理が完了するまでにかかる時間を短縮することができる。
＜ライト要求におけるリセット処理＞
次に、実施例１におけるデータ転送装置１０において、ライト要求が出されていたときにリセットがかかった場合について説明する。図８は、ライト要求が出されていたときＤＭＡＣ２に対してリセットをかけた場合のタイミングチャート例を示す図である。
【００４４】
図８に示すようにライト要求の場合も基本的にはリード要求と同様であり、異なるところについて説明する。コマンドがライト要求の場合は、ＤＡＭＣ２がライト要求に対するコマンドを発行した後に、ＤＭＡＣ２にリセットがかけられた場合、アービタ１４は、書き込みデータをＤＭＡＣ２から受け取ることができないので、ダミーデータ（dummy）を生成して、又は用意しておいて、ＤＲＡＭＣ１５に出力する。
【００４５】
これより、コマンドがライト要求である場合であっても、コマンドがリード要求である場合と同様に、リセット要求が出されたＤＭＡＣをリセットしつつ、他のＤＭＡＣに影響を与えることなくデータ転送を継続させることができる。
＜動作＞
実施例１におけるデータ転送装置１０の動作について説明する。まず、アービタ１４によるコマンド発行に関する動作について説明する。図９は、アービタ１４のコマンド発行に関する処理の一例を示すフローチャートである。
【００４６】
ステップＳ１１において、各ＤＭＡＣ１〜ｎによってコマンドが発行される。次のステップＳ１２において、アービタ１４（コマンド発行手段２１）は、各ＤＭＡＣ１〜ｎからコマンドを受け取り、受け取ったコマンドに対して優先順を決め、優先順の高い順にＤＲＭＡＣ１５にコマンドを発行する。このとき、各ＤＭＡＣ１〜ｎに対してリセット要求が出されている場合は、このリセット要求に対応するコマンドの優先順を各コマンドの優先順よりも低くする。
【００４７】
次のステップＳ１３において、アービタ１４（割付手段２２）は、各ＤＭＡＣ１〜ｎにリセット要求に対するコマンドか否かを判定する。ステップＳ１３における判定結果がＮＯ（リセット要求に対応するコマンドでない）であればステップＳ１４に進み、ＹＥＳ（リセット要求に対応するコマンドである）であればステップＳ１５に進む。
【００４８】
次のステップＳ１４において、アービタ１４（割付手段２２）は、コマンドに対して、どのＤＭＡＣが発行したかを示すタグを割付ける。ステップＳ１５において、アービタ１４（割付手段２２）は、リセット要求に対するコマンドに対して、リセットタグを割付ける。
【００４９】
次のステップＳ１６において、アービタ１４は、優先順にしたがってＤＲＡＭＣ１５に対してコマンドを発行する。
【００５０】
以上より、リセット要求に対するコマンドは、各ＤＭＡＣ１〜ｎからのコマンドよりも優先順が低くなり、各コマンドの発行後にリセット要求に対するコマンドを発行することができる。また、リセット要求に対するコマンドは、各ＤＭＡＣ１〜ｎからのコマンドよりも優先順を低くするまでもなく、リセット要求が出されたＤＭＡＣによって発行されたコマンドの優先順よりも低くすることでも本発明の目的を達成できる。
【００５１】
次に、アービタ１４におけるデータ転送処理の動作について説明する。図１０は、リード要求におけるデータ転送処理の一例を示すフローチャートである。ステップＳ２１において、アービタ１４は、ＤＲＡＭＣ１５からデータとタグとを取得する。
【００５２】
次のステップＳ２２において、アービタ１４は、取得したタグがリセットタグであるか否かを判定する。ステップＳ２２における判定結果がＹＥＳ（リセットタグである）である場合ステップＳ２７に進み、ＮＯ（リセットタグでない）である場合ステップＳ２３に進む。
【００５３】
ステップＳ２３において、アービタ１４は、タグに示されたＤＭＡＣにリセット要求が出されているか否かを判定する。具体的には、reset_dm*信号がアサートされているか否かで判断することができる。ステップＳ２３における判定結果がＹＥＳ（リセット要求が出されている）である場合ステップＳ２５に進み、ＮＯである場合（リセット要求が出されていない）である場合ステップＳ２４に進む。
【００５４】
ステップＳ２４において、アービタ１４（信号出力手段２３）は、データをＤＭＡＣに転送し、ＤＭＡＣからdata_ack_dm*信号を取得することで、data_ack信号をＤＲＡＭＣ１５に出力する。
【００５５】
ステップＳ２５において、アービタ１４（信号出力手段２３）は、ＤＭＡＣがdata_ack_dm*信号を出力できないのでdummy_ack信号をＤＲＡＭＣ１５に出力し、ＤＲＡＭ１２から読み出されたデータを破棄手段２４により破棄する。ステップＳ２４及びステップＳ２５の次はステップＳ２１に戻る。
【００５６】
ステップＳ２６において、ステップＳ２５同様、アービタ１４は、dummy_ack信号を出力し、ＤＲＡＭ１２から読み出されたデータを破棄手段２４により破棄する。
【００５７】
次のステップＳ２７において、アービタ１４は、リセット要求が出されているＤＭＡＣをリセットする。具体的には、reset_dm信号をネゲートすることでリセット処理が完了する。
【００５８】
以上より、リード要求を行ったＤＭＡＣにリセットがかけられた場合、擬似リードを行うことにより他のＤＭＡＣへのデータ転送に影響を与えず、装置全体のデータ転送を継続させることができる。
【００５９】
図１１は、ライト要求におけるデータ転送処理の一例を示すフローチャートである。なお、図１１に示す処理において、図１０と同様の処理を行うものは同じ符号を付し、その説明を省略する。
【００６０】
ステップＳ３０において、アービタ１４は、ＤＲＡＭＣ１５からタグを取得する。
【００６１】
ステップＳ３１において、アービタ１４は、タグに示されるＤＭＡＣからＤＲＡＭ１２に書き込むためのデータを取得しているか否かを判断する。判定結果がＹＥＳ（データあり）である場合、ステップＳ３２に進み、ＮＯ（データなし）である場合ステップＳ３３に進む。
【００６２】
ステップＳ３２において、アービタ１４は、タグに示されたＤＭＡＣから取得したデータをＤＲＡＭＣ１５に出力する。ステップＳ３２において、アービタ１４（ダミーデータ出力手段２５）は、タグに示されたＤＭＡＣのデータがない（リセット要求が出されたため）のでダミーデータをＤＲＡＭＣ１５に出力する。
【００６３】
ステップＳ３２、ステップＳ３３の処理後、ステップＳ２１に戻る。なお、出力されたダミーデータはＤＲＭＡＣ１５により破棄される。
【００６４】
ステップＳ３４において、ステップＳ３３同様、アービタ１４は、リセットタグをＤＲＡＭＣ１５から受けると、ダミーデータをＤＲＡＭＣ１５に出力する。
【００６５】
次のステップＳ３５において、アービタ１４は、リセット要求が出されているＤＭＡＣをリセットする。具体的には、reset_dm信号をネゲートすることでリセット処理が完了する。
【００６６】
以上、実施例１にかかるデータ転送装置によれば、コマンド発行とデータ転送を独立して制御するデータ転送制御手段を複数備えるデータ転送装置において、任意のデータ転送制御手段をリセットした場合に、その他のデータ転送制御手段に影響を与えずにデータ転送を継続させることができる。
［実施例２］
実施例２にかかるデータ転送装置は、ＤＭＡＣをグループ化して、グループ毎にリセットをかけるところが実施例１と異なる。
＜アービタの主要回路構成＞
図１２は、実施例２におけるアービタ３０の主要回路構成例を示す図である。図１２に示すように、アービタ３０は、コマンド発行部３０１、データ受取制御部３０２を含む。
【００６７】
コマンド発行部３０１は、各ＤＭＡＣ１〜５からのコマンド要求（com_req*(* = 1,2,…,5)）を受け、各コマンドの優先順を判断して要求を選択し、ＤＲＡＭＣ１５にコマンド（com_req）を発行する。図１２に示す例では、ＤＭＡＣ１〜３はグループ１に、ＤＭＡＣ４，５はグループ２に分類する。優先順の決定の仕方としては、グループに優先順を設け、グループ毎にコマンドの優先順を決定する等の方法がある。
【００６８】
また、実施例２では、コマンド発行部３０１は、グループ毎にリセットがかけられるため、グループ毎のリセットを示すreset_gr*（*=1,2）に対するリセットコマンドを発行する。
【００６９】
また、コマンド発行部３０１は、グループのリセット要求に対するコマンドの優先順は、グループを問わず各コマンドよりも優先順が低くなるように制御する。これより、リセット要求がＤＲＡＭＣ１５に送られるのは、各コマンドが全て発行された後になる。また、リセット要求の優先順は、リセット要求が出されたグループに含まれるＤＭＡＣにより発行されたコマンドの優先順よりも低くなるようにしてもよい。これよりリセットに係る時間を短縮することができる。
【００７０】
データ受取制御部３０２は、データ受取制御を行う。コマンドがライト要求の場合、各ＤＭＡＣ１〜５からの書き込みデータ取得完了を示す完了信号（data_wack_dm*(* = 1,2,…,5)信号）と、アービタ３０内でグループのリセット時に生成するダミーの完了信号（dummy_wack*(* = 1,2,…,5)信号）とをグループのリセット要求（reset_gr*(* = 1,2,…,n)）で選択する。
【００７１】
具体的には、リセット要求が出されている場合はダミー完了信号（dummy_wack*信号）を選択し、リセット要求が出されていない場合は完了信号（data_wack_dm*信号）を選択する。
【００７２】
次に、データ受取制御部３０２は、選択した各信号をＤＲＡＭＣ１５により返されたタグ（data_write_tag）で選択して、完了信号（data_write_ack信号）をＤＲＡＭＣ１５に出力する。
【００７３】
次にコマンドがリード要求の場合、各ＤＭＡＣ１〜５によるデータ受取が完了したことを示す完了信号（data_rack_dm*(* = 1,2,…,5)信号）と、アービタ３０内でリセット時に生成するダミー完了信号（dummy_rack*(* = 1,2,…,5)信号）とをグループのリセット要求（reset_gr*(* = 1,2,…,n)）で選択する。
【００７４】
具体的には、リセット要求が出されている場合はダミー完了信号（dummy_rack*信号）を選択し、リセット要求が出されていない場合は完了信号（data_rack_dm*信号）を選択する。
【００７５】
次に、データ受取制御部３０２は、選択した各信号をＤＲＡＭＣ１５により返されたタグ（data_read_tag）で選択して、完了信号（data_read_ack信号）をＤＲＡＭＣ１５に出力する。
【００７６】
また、リード要求の場合には、data_read_ackを生成するための回路は、reset_gr*発行の際に行われる擬似リードのデータを受け取るための応答信号dummy_ack_gr1、dummy_ack_gr2を含む。
＜リセット処理＞
図１３は、実施例２におけるリセット処理の一例を示すタイミングチャート例を示す図である。図１３に示すように、ＤＭＡＣ１がリード要求、ＤＭＡＣ３がライト要求、ＤＭＡＣ４がリード要求に対するコマンドをそれぞれ発行している例を示している。
【００７７】
ＤＭＡＣ３のライトコマンド発行タイミングで、グループ１にリセットがかけられたとする。つまり、reset_gr1がアサートされる。これによりグループ１に含まれるＤＭＡＣ１〜３は、応答信号を出力できなくなる。
【００７８】
まず、コマンドフェーズについて説明する。グループ１にリセットがかかった場合、グループ１のリセットに対するコマンド「Ｃｒｇ１」は、優先順が一番低くなるため、最後に発行される。このとき、コマンド「Ｃｒｇ１」にはタグ「Ｒｇ１」が割付けられる。
【００７９】
次に、データフェーズについて説明する。アービタ３０は、ＤＲＡＭＣ１５からライトリクエスト（data_write_req）を受け取った場合、タグ「ＤＭＡ３」が示すＤＡＭＣ３は、リセット中のグループ１に含まれるため応答信号を出力することができない。よって、アービタ３０はＤＲＡＭＣ１５に対し、ダミーの完了信号（dummy_wack3）を応答信号として出力することでダミーデータをＤＲＡＭＣ３に出力することができる。
【００８０】
次に、アービタ３０は、ＤＲＡＭＣ１５から読み出しデータ「Ｄ１」をタグ「ＤＭＡ１」とともに取得する。しかし、タグ「ＤＭＡ１」が示すＤＭＡＣ１は、リセット中のグループ１に含まれるため、応答信号を出力することができない。よって、アービタ３０はＤＲＡＭＣ１５に対し、ダミーの完了信号（dummy_rack1）を応答信号として出力することでデータ「Ｄ１」をＤＭＡＣ１の代わりに受け取ることができる。なお、このデータ「Ｄ１」は破棄される。
【００８１】
次に、アービタ３０は、ＤＲＡＭＣ１５から読み出しデータ「Ｄ４」とタグ「ＤＭＡ４」とともに取得する。タグ「ＤＭＡ４」が示すＤＭＡＣ４は、リセット中ではないグループ２に含まれるため、データ「Ｄ４」を取得し、応答信号（data_rack4_dm4）を出力することができる。
【００８２】
次に、アービタ３０は、ＤＲＡＭＣ１５からデータ「Ｒｇ１」とともにタグ「Ｒｇ１」を取得するが、タグ「Ｒｇ１」が示すＤＭＡＣは存在しないため、応答信号（dummy_ack_g1）を出力し、データ「Ｒｇ１」を取得し破棄する。
【００８３】
このとき、アービタ３０は、データ「Ｒｇ１」を取得した段階で、他のコマンドに対するデータ転送がないことが分かるのでグループ１のＤＭＡＣをリセットする。具体的には、reset_gr1をネゲートすることでグループ１のリセット処理が完了する。
【００８４】
以上、実施例２にかかるデータ転送装置によれば、アービタ３０は、グループ化されたデータ転送制御手段（ＤＭＡＣ）に対してリセット要求が出された場合、リセット要求に対するコマンドの優先順を各コマンドの優先順よりも低くし、リセット要求が出されたグループに含まれるデータ転送制御手段に対するデータ転送要求がきたときに、ダミーの完了信号を出力する。よって、リセット要求が出されたグループに含まれるデータ転送制御手段から応答信号を出力することができるため、他のデータ転送制御手段に影響を与えずにデータ転送を継続させることができる。
【００８５】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、上記実施例以外にも種々の変形・変更が可能である。
【００８６】
なお、各実施例において説明した処理内容をコンピュータに実行させるためのプログラムとし、このプログラムをコンピュータに実行させて前述した処理をデータ転送装置に実現させることも可能である。また、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した処理をデータ転送装置に実現させることも可能である。
【図面の簡単な説明】
【００８７】
【図１】ＤＭＡＣとアービタ間におけるタイミングチャート例を示す図。
【図２】アービタとＤＲＡＭＣ間のタイミングチャート例を示す図。
【図３】データ転送継続不能となる場合のタイミングチャート例を示す図。
【図４】本発明におけるデータ転送装置の回路構成例を示す図。
【図５】アービタ１４の主要回路構成例を示す図。
【図６】データ転送装置１０の主要機能構成例を示す図。
【図７】リード要求が出されていたときＤＭＡＣ２に対してリセットをかけた場合のタイミングチャート例を示す図。
【図８】ライト要求が出されていたときＤＭＡＣ２に対してリセットをかけた場合のタイミングチャート例を示す図。
【図９】アービタ１４のコマンド発行に関する処理の一例を示すフローチャート。
【図１０】リード要求におけるデータ転送処理の一例を示すフローチャート。
【図１１】ライト要求におけるデータ転送処理の一例を示すフローチャート。
【図１２】実施例２におけるアービタ３０の主要回路構成例を示す図。
【図１３】実施例２におけるリセット処理の一例を示すタイミングチャート例を示す図。
【符号の説明】
【００８８】
１、３、ｎ  ＤＭＡＣ
１０  データ転送装置
１１  ＣＰＵ
１２  ＤＲＡＭ
１４、３０  アービタ
１５  ＤＲＡＭＣ
２０  データ転送制御手段
２１  コマンド発行手段
２２  割付手段
２３  信号出力手段
２４  破棄手段
２５  ダミーデータ出力手段
２６  メモリ通信制御手段
１４１、３０１  コマンド発行部
１４２、３０２  データ受取制御部
【図１】
2010128803.tif 000003
【図２】
2010128803.tif 000004
【図３】
2010128803.tif 000005
【図４】
2010128803.tif 000006
【図５】
2010128803.tif 000007
【図６】
2010128803.tif 000008
【図７】
2010128803.tif 000009
【図８】
2010128803.tif 000010
【図９】
2010128803.tif 000011
【図１０】
2010128803.tif 000012
【図１１】
2010128803.tif 000013
【図１２】
2010128803.tif 000014
【図１３】
2010128803.tif 000015